diff --git a/.cargo/config b/.cargo/config deleted file mode 100644 index 73f7b9a505b09..0000000000000 --- a/.cargo/config +++ /dev/null @@ -1,22 +0,0 @@ -[target.x86_64-unknown-linux-gnu] -rustflags = ["-C", "link-args=-rdynamic"] - -[target.aarch64-unknown-linux-gnu] -rustflags = ["-C", "link-args=-rdynamic"] - - -[target.'cfg(target_env = "musl")'] -# Turn off self-contained linking mode. This makes rustc rely on the installed musl toolchain to -# find and link against C and C++ runtime objects, instead of linking against the bundled C ones. -rustflags = "-Clink-self-contained=no" - -# for these musl targets libstdc++ will be linked statically (that's configured in e.g. leveldb-sys) -# we provide the location of that library here -[target.x86_64-unknown-linux-musl] -rustflags = "-Lnative=/usr/local/x86_64-linux-musl/lib" - -[target.i686-unknown-linux-musl] -rustflags = "-Lnative=/usr/local/i686-linux-musl/lib" - -[target.aarch64-unknown-linux-musl] -rustflags = "-Lnative=/usr/local/aarch64-linux-musl/lib" diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000000000..2d2f4cbf67086 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,38 @@ +[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", + "-Dclippy::print_stderr", + "-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" + +[target.aarch64-unknown-linux-musl] +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/.config/nextest.toml b/.config/nextest.toml new file mode 100644 index 0000000000000..b21c53f67f28d --- /dev/null +++ b/.config/nextest.toml @@ -0,0 +1,22 @@ +[profile.default] +# "retries" defines the number of times a test should be retried. If set to a +# non-zero value, tests that succeed on a subsequent attempt will be marked as +# non-flaky. +retries = 3 + +# shows all test statuses in output +status-level = "all" + +# output failures as soon as they happen and at the end of the test run +failure-output = "immediate-final" + +# don't cancel the test run on the first failure +fail-fast = false + +# timeout tests after 2 minutes +slow-timeout = { period = "30s", terminate-after = 4 } + +[profile.default.junit] +# output test results at target/nextest/default/junit.xml +path = "junit.xml" +store-failure-output = true diff --git a/.dockerignore b/.dockerignore index 7e128117c2be0..f8bae8f065c5c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,11 +1,12 @@ * -!scripts/Gemfile -!scripts/Gemfile.lock -!scripts/ci-docker-images/verifier-nixos/Gemfile -!rust-toolchain -!target/x86_64-unknown-linux-musl/debug/vector -!shell.nix -!default.nix -!scripts/environment -!.envrc +!benches +!lib +!proto +!src !tests +!build.rs +!Cargo.lock +!Cargo.toml +!rust-toolchain.toml +!scripts +!vdev diff --git a/.editorconfig b/.editorconfig index 99a967b705cdb..1db07e24846db 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,6 +8,10 @@ end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true +max_line_length = 100 + +[website/layouts/**/*.html] +insert_final_newline = false [*.rs] indent_style = space @@ -20,3 +24,6 @@ indent_size = 4 [*.cue] indent_style = tab indent_size = 4 + +[*.svg] +insert_final_newline = false diff --git a/.gitattributes b/.gitattributes index 34df3ae250fae..55ac0957f9d70 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,9 +1,15 @@ *.erb linguist-detectable=false +cue.mod/* linguist-detectable=false distribution/* linguist-detectable=false +docs/* linguist-detectable=false lib/* linguist-vendored +rfcs/* linguist-detectable=false scripts/* linguist-detectable=false +soaks/* linguist-detectable=false +website/* linguist-detectable=false Makefile linguist-detectable=false distribution/helm/*/charts/*.tgz filter=lfs diff=lfs merge=lfs -text +lib/codecs/tests/data/** linguist-generated=true tests/helm-snapshots/**/snapshot.yaml linguist-generated=true diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3582b6e2ae319..13843265c352b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,223 +1,6 @@ -# https://help.github.com/articles/about-codeowners/ -# -# This file is sorted alpgabetically by the path +* @vectordotdev/vector -# -# Root -# - -/*.md @timberio/vector-admin -/.* @timberio/vector-support -/.graphqlconfig @timberio/vector-enterprise -/build.rs @timberio/vector-core @timberio/vector-support -/Cargo* @timberio/vector-support -/CONTRIBUTING.md @timberio/vector-admin @timberio/vector-core @timberio/vector-support -/Cross.toml @timberio/vector-releasing -/deny.toml @timberio/vector-support -/kustomization.yaml @timberio/vector-kubernetes -/LICENSE @timberio/vector-admin -/Makefile @timberio/vector-support -/NOTICE @timberio/vector-admin @timberio/vector-support -/RELEASING.md @timberio/vector-releasing -/rust-toolchain @timberio/vector-core @timberio/vector-support -/skaffold.yaml @timberio/vector-kubernetes - -# -# .github -# - -/.github/**/* @timberio/vector-admin @timberio/vector-support -/.github/ISSUE_TEMPLATE/ @timberio/vector-admin -/.github/workflows/ @timberio/vector-support @timberio/vector-releasing -/.github/workflows/**/k8s* @timberio/vector-kubernetes - -# -# docs -# - -/docs/reference/components/sinks.cue @timberio/vector-integrations -/docs/reference/components/sinks/ @timberio/vector-integrations -/docs/reference/components/sinks/aws* @timberio/vector-aws -/docs/reference/components/sinks/datadog* @timberio/vector-core @timberio/vector-integrations -/docs/reference/components/sinks/gcp* @timberio/vector-gcp -/docs/reference/components/sinks/http.cue @timberio/vector-core @timberio/vector-integrations -/docs/reference/components/sinks/kubernetes* @timberio/vector-kubernetes -/docs/reference/components/sinks/socket.cue @timberio/vector-core @timberio/vector-integrations -/docs/reference/components/sinks/vector.cue @timberio/vector-core @timberio/vector-integrations - -/docs/reference/components/sources.cue @timberio/vector-integrations -/docs/reference/components/sources/ @timberio/vector-integrations -/docs/reference/components/sources/aws* @timberio/vector-aws -/docs/reference/components/sources/datadog* @timberio/vector-core @timberio/vector-integrations -/docs/reference/components/sources/gcp* @timberio/vector-gcp -/docs/reference/components/sources/host* @timberio/vector-core @timberio/vector-integrations -/docs/reference/components/sources/http.cue @timberio/vector-core @timberio/vector-integrations -/docs/reference/components/sources/internal_* @timberio/vector-core @timberio/vector-integrations -/docs/reference/components/sources/kubernetes* @timberio/vector-kubernetes -/docs/reference/components/sources/socket.cue @timberio/vector-core @timberio/vector-integrations -/docs/reference/components/sources/vector.cue @timberio/vector-core @timberio/vector-integrations - -/docs/reference/components/transforms.cue @timberio/vector-processing -/docs/reference/components/transforms/* @timberio/vector-processing -/docs/reference/components/transforms/aws* @timberio/vector-aws -/docs/reference/components/transforms/gcp* @timberio/vector-gcp -/docs/reference/components/transforms/kubernetes* @timberio/vector-kubernetes - -/docs/reference/data_model.cue @timberio/vector-core @timberio/vector-processing -/docs/reference/data_model/ @timberio/vector-core @timberio/vector-processing - -/docs/reference/installation.cue @timberio/vector-integrations -/docs/reference/installation/ @timberio/vector-integrations -/docs/reference/installation/**/kubectl* @timberio/vector-kubernetes -/docs/reference/installation/**/helm* @timberio/vector-kubernetes -/docs/reference/installation/**/kubernetes* @timberio/vector-kubernetes - -/docs/reference/releases.cue @timberio/vector-releasing -/docs/reference/releases/ @timberio/vector-releasing - -/docs/reference/remap.cue @timberio/vector-processing -/docs/reference/remap/ @timberio/vector-processing - -# -# distribution -# - -/distribution/ @timberio/vector-releasing -/distribution/docker* @timberio/vector-kubernetes @timberio/vector-releasing -/distribution/helm* @timberio/vector-kubernetes @timberio/vector-releasing -/distribution/kubernetes* @timberio/vector-kubernetes @timberio/vector-releasing - -# -# lib -# - -/lib/ @timberio/vector-support -/lib/file-source/ @timberio/vector-core -/lib/k8s-*/ @timberio/vector-kubernetes -/lib/prometheus-parser/ @timberio/vector-integrations -/lib/remap-*/ @timberio/vector-processing -/lib/vector-api-*/ @timberio/vector-enterprise - -# -# proto -# - -/proto/ @timberio/vector-core - -# -# skaffold -# - -/skaffold/ @timberio/vector-kubernetes - -# -# scripts -# - -/scripts/ @timberio/vector-releasing @timberio/vector-support -/scripts/docker* @timberio/vector-kubernetes -/scripts/*helm* @timberio/vector-kubernetes -/scripts/*kubernetes* @timberio/vector-kubernetes -/scripts/*minikube* @timberio/vector-kubernetes - -# -# Src -# - -/src/* @timberio/vector-core -/src/api/ @timberio/vector-enterprise -/src/buffers/ @timberio/vector-core -/src/conditions/ @timberio/vector-processing -/src/config/ @timberio/vector-core -/src/event/ @timberio/vector-core @timberio/vector-processing -/src/generate.rs @timberio/vector-support -/src/internal_events/adaptive_concurrency* @timberio/vector-core -/src/internal_events/apache_* @timberio/vector-integrations -/src/internal_events/api* @timberio/vector-enterprise -/src/internal_events/aws* @timberio/vector-aws -/src/internal_events/blackhole.rs @timberio/vector-support -/src/internal_events/console.rs @timberio/vector-integrations -/src/internal_events/datadog* @timberio/vector-core @timberio/vector-integrations -/src/internal_events/dedupe.rs @timberio/vector-processing -/src/internal_events/docker* @timberio/vector-integrations -/src/internal_events/elasticsearch.rs @timberio/vector-integrations -/src/internal_events/gcp* @timberio/vector-gcp -/src/internal_events/file.rs @timberio/vector-core @timberio/vector-integrations -/src/internal_events/filter.rs @timberio/vector-processing -/src/internal_events/generator.rs @timberio/vector-support -/src/internal_events/geoip.rs @timberio/vector-processing -/src/internal_events/heartbeat.rs @timberio/vector-core -/src/internal_events/host_*.rs @timberio/vector-integrations -/src/internal_events/http* @timberio/vector-core @timberio/vector-integrations -/src/internal_events/journald.rs @timberio/vector-integrations -/src/internal_events/kafka.rs @timberio/vector-integrations -/src/internal_events/kubernetes* @timberio/vector-kubernetes -/src/internal_events/log_to_metric.rs @timberio/vector-processing -/src/internal_events/logplex.rs @timberio/vector-integrations -/src/internal_events/lua.rs @timberio/vector-processing -/src/internal_events/metric_to_log.rs @timberio/vector-processing -/src/internal_events/mod.rs @timberio/vector-core -/src/internal_events/mongodb_*.rs @timberio/vector-integrations -/src/internal_events/nats.rs @timberio/vector-integrations -/src/internal_events/nginx_*.rs @timberio/vector-integrations -/src/internal_events/postgresql_*.rs @timberio/vector-integrations -/src/internal_events/process.rs @timberio/vector-core -/src/internal_events/prometheus.rs @timberio/vector-integrations -/src/internal_events/pulsar.rs @timberio/vector-integrations -/src/internal_events/reduce.rs @timberio/vector-processing -/src/internal_events/remap.rs @timberio/vector-processing -/src/internal_events/route.rs @timberio/vector-processing -/src/internal_events/sample.rs @timberio/vector-processing -/src/internal_events/sematext_*.rs @timberio/vector-core @timberio/vector-integrations -/src/internal_events/socket.rs @timberio/vector-core @timberio/vector-integrations -/src/internal_events/splunk_*.rs @timberio/vector-integrations -/src/internal_events/statsd_*.rs @timberio/vector-integrations -/src/internal_events/stdin.rs @timberio/vector-integrations -/src/internal_events/syslog.rs @timberio/vector-integrations -/src/internal_events/tcp.rs @timberio/vector-core @timberio/vector-integrations -/src/internal_events/topology.rs @timberio/vector-core -/src/internal_events/udp.rs @timberio/vector-core @timberio/vector-integrations -/src/internal_events/unix.rs @timberio/vector-core @timberio/vector-integrations -/src/internal_events/vector.rs @timberio/vector-core @timberio/vector-integrations -/src/internal_events/windows.rs @timberio/vector-integrations -/src/kafka.rs @timberio/vector-integrations -/src/kubernetes/ @timberio/vector-kubernetes -/src/mapping/ @timberio/vector-processing -/src/metrics.rs @timberio/vector-core @timberio/vector-processing -/src/prometheus.rs @timberio/vector-integrations -/src/rusoto/ @timberio/vector-aws -/src/sinks/ @timberio/vector-integrations -/src/sinks/aws* @timberio/vector-aws -/src/sinks/datadog* @timberio/vector-core -/src/sinks/gcp* @timberio/vector-gcp -/src/sinks/http* @timberio/vector-core @timberio/vector-integrations -/src/sinks/kubernetes* @timberio/vector-kubernetes -/src/sinks/socket* @timberio/vector-core @timberio/vector-integrations -/src/sinks/vector* @timberio/vector-core @timberio/vector-integrations -/src/sinks/util/ @timberio/vector-core @timberio/vector-integrations -/src/sources/ @timberio/vector-integrations -/src/sources/aws* @timberio/vector-aws -/src/sources/datadog* @timberio/vector-core -/src/sources/gcp* @timberio/vector-gcp -/src/sources/http* @timberio/vector-core @timberio/vector-integrations -/src/sources/kubernetes* @timberio/vector-core @timberio/vector-kubernetes -/src/sources/socket* @timberio/vector-core @timberio/vector-integrations -/src/sources/vector* @timberio/vector-core @timberio/vector-integrations -/src/sources/util/ @timberio/vector-core @timberio/vector-integrations -/src/test_util/ @timberio/vector-support -/src/tls/ @timberio/vector-core @timberio/vector-integrations -/src/top/ @timberio/vector-enterprise -/src/topology/ @timberio/vector-core -/src/transforms/ @timberio/vector-processing -/src/transforms/aws* @timberio/vector-aws -/src/transforms/datadog* @timberio/vector-core -/src/transforms/gcp* @timberio/vector-gcp -/src/transforms/kubernetes* @timberio/vector-core @timberio/vector-kubernetes - -# -# tests -# - -/tests/ @timberio/vector-core -/tests/behavior @timberio/vector-processing -/tests/helm* @timberio/vector-kubernetes +.github/workflows/regression.yml @vectordotdev/vector @vectordotdev/single-machine-performance +regression/config.yaml @vectordotdev/vector @vectordotdev/single-machine-performance +docs/ @vectordotdev/ux-team @vectordotdev/documentation +website/ @vectordotdev/ux-team @vectordotdev/documentation diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md deleted file mode 100644 index 1536992f283c7..0000000000000 --- a/.github/ISSUE_TEMPLATE/bug.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -name: Bug -about: Let us know about an unexpected error, a crash, or an incorrect behavior. -labels: 'type: bug' -assignees: '' -title: '' - ---- - - - -### Vector Version - - - -``` -... -``` - -### Vector Configuration File - - - -```toml -... -``` - -### Debug Output - - - - -### Expected Behavior - - - -### Actual Behavior - - - -### Example Data - - - -### Additional Context - - - -### References - - diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000000000..7a9ef223e45b1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,96 @@ +name: Bug +description: 🐛 Let us know about an unexpected error, a crash, or an incorrect behavior. +type: 'Bug' +labels: + - 'type: bug' +body: +- type: markdown + attributes: + value: | + Thank you for opening 🐛 bug report! + +- type: textarea + attributes: + label: A note for the community + value: | + + * Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request + * If you are interested in working on this issue or have submitted a pull request, please leave a comment + + +- type: textarea + id: problem + attributes: + label: Problem + description: > + Please provide a clear and concise description of what the bug is, + including what currently happens and what you expected to happen. + validations: + required: true + +- type: textarea + id: config + attributes: + label: Configuration + description: | + Paste the relevant parts of your Vector configuration file. + + !! If your config files contain sensitive information please remove it !! + render: text + +- type: input + id: version + attributes: + label: Version + description: | + Please paste the output of running `vector --version`. + + If you are not running the latest version of Vector, please try upgrading + because your issue may have already been fixed. + validations: + required: true + +- type: textarea + id: debug + attributes: + label: Debug Output + description: | + Full debug output can be obtained by running Vector with the following: + + ``` + RUST_BACKTRACE=full vector -vvv + ``` + + If the debug output is long, please create a GitHub Gist containing the debug output and paste the link here. + + !! Debug output may contain sensitive information. Please review it before posting publicly. !! + render: text + +- type: textarea + id: data + attributes: + label: Example Data + description: | + Please provide any example data that will help debug the issue, for example: + + ``` + 201.69.207.46 - kemmer6752 [07/06/2019:14:53:55 -0400] "PATCH /innovative/interfaces" 301 669 + ``` + +- type: textarea + id: context + attributes: + label: Additional Context + description: | + Is there anything atypical about your situation that we should know? For + example: is Vector running in Kubernetes? Are you passing any unusual command + line options or environment variables to opt-in to non-default behavior? + +- type: textarea + id: references + attributes: + label: References + description: | + Are there any other GitHub issues (open or closed) or Pull Requests that should be linked here? For example: + + - #6017 diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index e67753ec11c59..ea44ff1b06562 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,4 +1,4 @@ -blank_issues_enabled: false +blank_issues_enabled: true contact_links: - name: Support diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md deleted file mode 100644 index a07f6aeb19a8e..0000000000000 --- a/.github/ISSUE_TEMPLATE/enhancement.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -name: Enhancement -about: Suggest an enhancement to an existing feature. -labels: 'type: enhancement' -assignees: '' -title: '' - ---- - - - -### Current Vector Version - - - -``` -... -``` - -### Use-cases - - - -### Attempted Solutions - - - -### Proposal - - - -### References - - diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md deleted file mode 100644 index c0026e13837ea..0000000000000 --- a/.github/ISSUE_TEMPLATE/feature.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -name: Feature -about: Suggest a new feature. -labels: 'type: feature' -assignees: '' -title: '' - ---- - - - -### Current Vector Version - - - -``` -... -``` - -### Use-cases - - - -### Attempted Solutions - - - -### Proposal - - - -### References - - diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000000000..ed43f6891b3ce --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,89 @@ +name: Feature +type: 'Feature' +description: 🚀 Suggest a new feature. +labels: +- 'type: feature' +body: +- type: markdown + attributes: + value: | + Thank you for opening 🚀 feature request! + + For general questions about Vector usage, please see + https://discussions.vector.dev. + +- type: textarea + attributes: + label: A note for the community + value: | + + * Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request + * If you are interested in working on this issue or have submitted a pull request, please leave a comment + + +- type: textarea + id: use-cases + attributes: + label: Use Cases + description: | + In order to properly evaluate a feature request, it is necessary to + understand the use-cases for it. + + Please describe below the _end goal_ you are trying to achieve that has + led you to request this feature. + + Please keep this section focused on the problem and not on the suggested + solution. We'll get to that in a moment, below! + + +- type: textarea + id: attempted-solutions + attributes: + label: Attempted Solutions + description: | + If you've already tried to solve the problem within Vector's existing + features and found a limitation that prevented you from succeeding, please + describe it below in as much detail as possible. + + Ideally, this would include real configuration snippets that you tried + and what results you got in each case. + + Please remove any sensitive information such as passwords before sharing + configuration snippets and command lines. + +- type: textarea + id: proposal + attributes: + label: Proposal + description: | + If you have an idea for a way to address the problem via a change to + Vector features, please describe it below. + + In this section, it's helpful to include specific examples of how what + you are suggesting might look in configuration files, or on the command line, + since that allows us to understand the full picture of what you are proposing. + + If you're not sure of some details, don't worry! When we evaluate the + feature request we may suggest modifications as necessary to work within the + design constraints of Vector. + +- type: textarea + id: references + attributes: + label: References + description: | + Are there any other GitHub issues, whether open or closed, that are + related to the problem you've described above or to the suggested solution? If + so, please create a list below that mentions each of them. For example: + + - #7023 + +- type: input + id: version + attributes: + label: Version + description: | + Please paste the output of running `vector --version`. + + This will record which version was current at the time of your feature request, + to help manage the request backlog. diff --git a/.github/ISSUE_TEMPLATE/minor-release.md b/.github/ISSUE_TEMPLATE/minor-release.md new file mode 100644 index 0000000000000..50dabfcc72139 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/minor-release.md @@ -0,0 +1,66 @@ +--- +name: Vector minor release +about: Use this template for a new minor release. +title: "Vector [version] release" +labels: "domain: releasing" +--- + +The week before the release: + +- [ ] Cut a new release of [VRL](https://github.com/vectordotdev/vrl) if needed +- [ ] Check for any outstanding deprecation actions in [DEPRECATIONS.md](https://github.com/vectordotdev/vector/blob/master/docs/DEPRECATIONS.md) and + take them (or have someone help you take them) +- [ ] Create a new release branch from master to freeze commits + - `git fetch && git checkout origin/master && git checkout -b v0. && git push -u` +- [ ] Create a new release preparation branch from `master` + - `git checkout -b website-prepare-v0. && git push -u` +- [ ] Pin VRL to latest released version rather than `main` +- [ ] Check if there is a newer version of [Alpine](https://alpinelinux.org/releases/) or + [Debian](https://www.debian.org/releases/) available to update the release images in + `distribution/docker/`. Update if so. +- [ ] Run `cargo vdev build release-cue` to generate a new cue file for the release + - [ ] Add description key to the generated cue file with a description of the release (see + previous releases for examples). + - [ ] Ensure any breaking changes are highlighted in the release upgrade guide + - [ ] Ensure any deprecations are highlighted in the release upgrade guide + - [ ] Review generated changelog entries to ensure they are understandable to end-users + - [ ] Copy VRL changelogs from the VRL version in the last Vector release as a new changelog entry + ([example](https://github.com/vectordotdev/vector/blob/9c67bba358195f5018febca2f228dfcb2be794b5/website/cue/reference/releases/0.41.0.cue#L33-L64)) +- [ ] Update version number in `website/cue/reference/administration/interfaces/kubectl.cue` +- [ ] Update version number in `distribution/install.sh` +- [ ] Add new version to `website/cue/reference/versions.cue` +- [ ] Create new release md file by copying an existing one in `./website/content/en/releases/` and + updating version number +- [ ] Commit these changes +- [ ] Open PR against the release branch (`v0.`) for review +- [ ] PR approval + +On the day of release: + +- [ ] Rebase the release preparation branch on the release branch + - [ ] Squash the release preparation commits (but not the cherry-picked commits!) to a single + commit. This makes it easier to cherry-pick to master after the release.  + - [ ] Ensure release date in cue matches current date. +- [ ] Merge release preparation branch into the release branch + - `git co v0. && git merge --ff-only prepare-v0.` +- [ ] Tag new release + - [ ] `git tag v0..0 -a -m v0..0` + - [ ] `git push origin v0..0` +- [ ] Wait for release workflow to complete + - Discoverable via [https://github.com/timberio/vector/actions/workflows/release.yml](https://github.com/timberio/vector/actions/workflows/release.yml) +- [ ] Reset the `website` branch to the `HEAD` of the release branch to update https://vector.dev + - [ ] `git checkout website && git reset --hard origin/v0. && git push` + - [ ] Confirm that the release changelog was published to https://vector.dev/releases/ + - The deployment is done by Amplify. You can see + the [deployment logs here](https://dd-corpsite.datadoghq.com/logs?query=service%3Awebsites-vector%20branch%3Awebsite&agg_m=count&agg_m_source=base&agg_t=count&cols=host%2Cservice&fromUser=true&messageDisplay=inline&refresh_mode=sliding&storage=hot&stream_sort=time%2Casc&viz=stream). +- [ ] Release Linux packages. See [`vector-release` usage](https://github.com/DataDog/vector-release#usage). + - Note: the pipeline inputs are the version number `v0.` and a personal GitHub token. + - [ ] Manually trigger the `trigger-package-release-pipeline-prod-stable` job. +- [ ] Release updated Helm chart. See [releasing Helm chart](https://github.com/vectordotdev/helm-charts#releasing). +- [ ] Once Helm chart is released, updated Vector manifests + - Run `cargo vdev build manifests` and open a PR with changes +- [ ] Add docker images to [https://github.com/DataDog/images](https://github.com/DataDog/images/tree/master/vector) to have them available internally. +- [ ] Cherry-pick any release commits from the release branch that are not on `master`, to `master` +- [ ] Bump the release number in the `Cargo.toml` on master to the next major release. + - Also, update `Cargo.lock` with: `cargo update -p vector` +- [ ] Kick-off post-mortems for any regressions resolved by the release diff --git a/.github/ISSUE_TEMPLATE/patch-release.md b/.github/ISSUE_TEMPLATE/patch-release.md new file mode 100644 index 0000000000000..440f7a24bb3e6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/patch-release.md @@ -0,0 +1,54 @@ +--- +name: Vector patch release +about: Use this template for a new patch release. +title: "Vector [version] release" +labels: "domain: releasing" +--- + +Before the release: + +- [ ] Create a new release preparation branch from the current release branch + - `git fetch && git checkout v0. && git checkout -b website-prepare-v0.` +- [ ] Cherry-pick in all commits to be released from the associated release milestone + - If any merge conflicts occur, attempt to solve them and if needed enlist the aid of those familiar with the conflicting commits. +- [ ] Bump the release number in the `Cargo.toml` to the current version number +- [ ] Run `cargo vdev build release-cue` to generate a new cue file for the release + - [ ] Add description key to the generated cue file with a description of the release (see + previous releases for examples). +- [ ] Update version number in `distribution/install.sh` +- [ ] Add new version to `website/cue/reference/versions.cue` +- [ ] Create new release md file by copying an existing one in `./website/content/en/releases/` and + updating version number +- [ ] Run `cargo check` to regenerate `Cargo.lock` file +- [ ] Commit these changes +- [ ] Open PR against the release branch (`v0.`) for review +- [ ] PR approval + +On the day of release: + +- [ ] Ensure release date in cue matches current date. +- [ ] Rebase the release preparation branch on the release branch + - Squash the release preparation commits (but not the cherry-picked commits!) to a single + commit. This makes it easier to cherry-pick to master after the release. + - `git checkout prepare-v0. && git rebase -i v0.` +- [ ] Merge release preparation branch into the release branch + - `git co v0. && git merge --ff-only prepare-v0..` +- [ ] Tag new release + - [ ] `git tag v0.. -a -m v0..` + - [ ] `git push origin v0..` +- [ ] Wait for release workflow to complete + - Discoverable via [https://github.com/timberio/vector/actions/workflows/release.yml](https://github.com/timberio/vector/actions/workflows/release.yml) +- [ ] Release Linux packages. See [`vector-release` usage](https://github.com/DataDog/vector-release#usage). + - Note: the pipeline inputs are the version number `v0.` and a personal GitHub token. + - [ ] Manually trigger the `trigger-package-release-pipeline-prod-stable` job. +- [ ] Push the release branch to update the remote (This should close the preparation branch PR). + - `git checkout v0. && git push` +- [ ] Release updated Helm chart. See [releasing Helm chart](https://github.com/vectordotdev/helm-charts#releasing). +- [ ] Once Helm chart is released, updated Vector manifests + - Run `cargo vdev build manifests` and open a PR with changes +- [ ] Add docker images to [https://github.com/DataDog/images](https://github.com/DataDog/images/tree/master/vector) to have them available internally. + - Follow the [instructions at the top of the mirror.yaml file](https://github.com/DataDog/images/blob/fbf12868e90d52e513ebca0389610dea8a3c7e1a/mirror.yaml#L33-L49). +- [ ] Cherry-pick any release commits from the release branch that are not on `master`, to `master` +- [ ] Reset the `website` branch to the `HEAD` of the release branch to update https://vector.dev + - [ ] `git checkout website && git reset --hard origin/v0.. && git push` +- [ ] Kick-off post-mortems for any regressions resolved by the release diff --git a/.github/ISSUE_TEMPLATE/task.md b/.github/ISSUE_TEMPLATE/task.md deleted file mode 100644 index 45246a9bac283..0000000000000 --- a/.github/ISSUE_TEMPLATE/task.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: Task -about: Record a general task that needs to be done. -labels: 'type: task' -assignees: '' -title: '' - ---- diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 154ba74fdd962..043530c977586 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,18 +1,63 @@ + +## Summary + + +## Change Type +- [ ] Bug fix +- [ ] New feature +- [ ] Non-functional (chore, refactoring, docs) +- [ ] Performance + +## Is this a breaking change? +- [ ] Yes +- [ ] No + +## How did you test this PR? + + +## Does this PR include user facing changes? + +- [ ] Yes. Please add a changelog fragment based on our [guidelines](https://github.com/vectordotdev/vector/blob/master/changelog.d/README.md). +- [ ] No. A maintainer will apply the "no-changelog" label to this PR. + +## Checklist +- [ ] Please read our [Vector contributor resources](https://github.com/vectordotdev/vector/tree/master/docs#getting-started). + - `make check-all` is a good command to run locally. This check is + defined [here](https://github.com/vectordotdev/vector/blob/1ef01aeeef592c21d32ba4d663e199f0608f615b/Makefile#L450-L454). Some of these + checks might not be relevant to your PR. For Rust changes, at the very least you should run: + - `cargo fmt --all` + - `cargo clippy --workspace --all-targets -- -D warnings` + - `cargo nextest run --workspace` (alternatively, you can run `cargo test --all`) +- [ ] If this PR introduces changes Vector dependencies (modifies `Cargo.lock`), please + run `dd-rust-license-tool write` to regenerate the [license inventory](https://github.com/vectordotdev/vrl/blob/main/LICENSE-3rdparty.csv) and commit the changes (if any). More details [here](https://crates.io/crates/dd-rust-license-tool). + +## References + + + + + + diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md index 13ba56a410f21..009ce3d96cd9e 100644 --- a/.github/SUPPORT.md +++ b/.github/SUPPORT.md @@ -1,5 +1,113 @@ # Support -Vector is a growing open source project with a variety of people willing to help you through various mediums. +Vector is a growing open source project with a variety of people willing to help +you through various mediums. -Take a look at those mediums listed at https://vector.dev/community +Take a look at those mediums listed at + +## How to ask a question about Vector + +Framing your question well and providing the right level of details will improve your chances of getting +your question answered. Here are some tips: + +### Before asking + +Check the [Vector documentation](https://vector.dev/docs/) first to see if it answers your question. If you use a search +engine +and provide a query like the following +`site:vector.dev releases`, you might get better results than the built-in search. +If your question is about [VRL](https://vector.dev/docs/reference/vrl/#learn), you can also try out +the [VRL playground][vrl_playground]. + +If the docs do not answer your question, try the following: + +* Use the search feature on [GitHub][vector], to search for keywords related to your issue. It is + quite possible someone has +already asked your question before. This is especially useful if you have a specific error message +you are observing. +* You can also search [Discord][discord] threads. Note that the #support channel is no longer active because we migrated + to GitHub Issues/Discussions. + +### Provide details + +Essential details to include: + +- Errors: for each error, please provide the full error message snippet, and + details such as where the error is observed, at what stage in the process + (e.g. at boot time, after some specific condition etc.). +- What is the version of Vector (and the Helm chart if deploying via Helm) and + the versions of any other systems in use (like Elasticsearch, NATS, etc.). +- What is your Vector configuration. See the below section on [how to format + your config](#formatting). +- How are you [deploying](https://vector.dev/docs/setup/deployment/) Vector? +- What is your complete deployment architecture? For example: I have Logstash + agents sending to Vector over syslog that is being forwarded to Loki. + +Situation specific (not exhaustive): + +- Did it occur after upgrading to a new version of Vector? +- Are you trying out Vector for the first time, or did you have a previous + working configuration? + +These are just some examples of questions that may or may not apply to your +situation. + +### Formatting + +When providing snippets of configuration files, or log messages, format these with backticks to +improve the legibility for readers. + +#### Blocks + +Blocks should be formatted with three backticks (\`\`\`) + +This should be used for any configuration snippets of Vector, Helm values, etc. +and for Vector console log messages. + +See the [markdown documentation](https://www.markdownguide.org/basic-syntax/#fenced-code-blocks) +for an explanation. + +For example: + +[sinks.sink0] + +inputs = ["source0"] + +target = "stdout" + +type = "console" + +should be written as + +```toml +[sinks.sink0] +inputs = ["source0"] +target = "stdout" +type = "console" +``` + +#### Single word or phrase + +Formatting things like component names, versions etc. is done with single +backticks (\`) around the word or phrase. + +This is less critical but also helps readability a lot and is greatly +appreciated. + +See the [markdown documentation](https://www.markdownguide.org/basic-syntax/#code) +for an explanation. + +For example: + +> We upgraded from v24 to 25.1 and are seeing the following error output from +> kafka. + +should be written as + +> We upgraded from `v0.24.0` to `v0.25.1` and are seeing the following error +> output from the `kafka` sink. + +[discord]: https://chat.vector.dev +[discussions]: https://github.com/vectordotdev/vector/discussions +[vector]: https://github.com/vectordotdev/vector +[vrl_playground]: https://playground.vrl.dev diff --git a/.github/actions/spelling/README.md b/.github/actions/spelling/README.md new file mode 100644 index 0000000000000..1f699f3de3d27 --- /dev/null +++ b/.github/actions/spelling/README.md @@ -0,0 +1,17 @@ +# check-spelling/check-spelling configuration + +File | Purpose | Format | Info +-|-|-|- +[dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary) +[allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow) +[reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject) +[excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes) +[only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only) +[patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) +[candidate.patterns](candidate.patterns) | Patterns that might be worth adding to [patterns.txt](patterns.txt) | perl regular expression with optional comment block introductions (all matches will be suggested) | [candidates](https://github.com/check-spelling/check-spelling/wiki/Feature:-Suggest-patterns) +[line_forbidden.patterns](line_forbidden.patterns) | Patterns to flag in checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) +[expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect) +[advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice) + +Note: you can replace any of these files with a directory by the same name (minus the suffix) +and then include multiple files inside that directory (with that suffix) to merge multiple files together. diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md new file mode 100644 index 0000000000000..4e45731a123e7 --- /dev/null +++ b/.github/actions/spelling/advice.md @@ -0,0 +1,33 @@ + +
If flagged items are :speaking_head: proper nouns + +* You can add them to `allow.txt`. + +* If they could be written in `lowercase`, feel free to add them in `lowercase` instead of `Initial` or `UPPERCASE`. + +
+ +
If flagged items are :exploding_head: false positives + +If items relate to a ... +* binary file (or some other file you wouldn't want to check at all). + + Please add a file path to the `excludes.txt` file matching the containing file. + + File paths are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files. + + `^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md]( +../tree/HEAD/README.md) (on whichever branch you're using). + +* well-formed pattern. + + If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it, + try adding it to the `patterns.txt` file. + + Patterns are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines. + + Note that patterns can't match multiline strings. + +
diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt new file mode 100644 index 0000000000000..b4afc463a99a6 --- /dev/null +++ b/.github/actions/spelling/allow.txt @@ -0,0 +1,527 @@ +ANSIX +APAC +APPSIGNAL +Acro +Ainol +Airis +Airpad +Alcatel +Alexey +alertmanager +Alibaba +Allfine +Allview +Allwinner +Amarok +Amaway +Amoi +Aoc +Aoson +Apanda +Appsignal +Archos +Arival +Arnova +Asus +Atlassian +atleastonce +atmostonce +Attab +Audiosonic +avsc +Axioo +Azend +Bedove +Benss +Blaupunkt +Blusens +Casio +Cantarell +Celkon +Ceph +Chromecast +Citrix +Cloudflare +Cloudfone +Cmx +Coby +Collectd +Comcast +Consolas +Coolpad +BADDCAFE +DEBHELPER +Danew +dkr +Dockerfiles +DOOV +Douban +emqx +eventloop +Enot +Evercoss +exactlyonce +Explay +FAQs +FDO +FQDNs +Fabro +Figma +Flipboard +Foto +Freescale +Galapad +Garmin +Geeksphone +Gfive +Ghemawat +Gionee +HMACs +HTTPDATE +Haier +Haipad +Hannspree +Hena +Hisense +Huawei +Hyundai +Ideapad +Infinix +Instacart +Intenso +Itamar +Ivio +JXD +Jacq +Jameel +Jaytech +Jia +Jiayu +Joda +KBytes +KDL +KTtech +Karbonn +Kingcom +Kolkata +Kruno +Ktouch +Kurio +Kyros +LGE +LYF +Lenco +Lexibook +Lifetab +Lifetouch +Lumia +Malata +manden +Maxthon +Mediacom +Medion +Meizu +Mertz +metakey +Metakey +Micromax +Mito +Mobistel +Modecom +Moto +Mpman +Multilaser +Mumbai +musleabi +Mytab +NLB +Nabi +Netflix +Neue +Nextbook +Nextcloud +OVH +Odys +Openpeak +Oppo +Ovi +Owncloud +PHILIPSTV +POCs +Panasonic +Papyre +pbs +Phicomm +Phototechnik +Pingdom +Pinterest +Pinterestbot +Pipo +Ployer +Podcast +Podkicker +Positivo +Prestigio +pront +Proscan +Qmobilevn +RPZ +RRSIGs +Rackspace +Rathi +Regza +Rijs +Roboto +Rockchip +Roku +Roundcube +Rowling +rumqttc +SBT +SKtelesys +Salesforce +Samsung +Sega +Segoe +Shopify +SIGINTs +Simvalley +Skype +Skytex +Smartbitt +Snapchat +Softbank +Sogou +Soref +Tagi +Tecmobile +Telstra +Tencent +Texet +Thl +Tizen +Tmobile +Tomtec +Tooky +Touchmate +Traefik +Trekstor +Treq +Umeox +Verizon +Videocon +Viewsonic +Wellcom +Wii +Wiko +Woxter +Xeon +Xianghe +Xolo +Xoro +Xperia +Yarvik +Yifang +ZTE +Zopo +Zync +acmecorp +addonmanager +aiohttp +algoliasearch +alpinejs +altostrat +amazonlinux +ansible +apachectl +apachepulsar +apikey +apimachinery +apiserver +appsignal +archlinux +armhf +backpressure +backticks +bigendian +bindir +binfmt +bitcast +bitcode +bitflags +bitnami +bitwidth +blackbox +buildname +buildroot +bytestream +callsites +cdnskey +cncf +codepath +codepaths +commandline +compiletime +coredns +corejs +coreutils +csync +curta +daemonset +dalek +databend +datacenter +datadog +datadoghq +datanode +ddog +debian +demuxing +dfs +discriminants +distro +distroless +dnslookup +dnssec +dnstap +dnsutils +dockercmd +downsides +downwardapi +ede +emoji +esbuild +etld +fakeintake +fargate +fibonacci +fileapi +filebeat +finalizers +findstring +firefox +fluentbit +fluentd +fuzzers +gce +gcloud +gcp +gcr +gcs +gdpr +github +gnueabi +gnueabihf +gnupg +gnuplot +goauth +googleapi +goproto +goroutines +gostring +goversion +gpg +gql +grafana +graphiql +greptime +greptimecloud +greptimedb +gvisor +gws +hadoop +hdfs +healthcheck +healthchecks +heroicon +heroicons +heroku +herokuapp +hitech +hogwarts +htc +htmltest +https +humungus +icecream +idn +ifeq +ifneq +imobile +influxd +ionik +ipallowlist +ipod +ircd +jemalloc +jemallocator +jndi +journalctl +jsonnet +jsontag +jvm +kenton +keepappkey +keephq +konqueror +kube +kubeadm +kubeconfig +kubectl +kubelet +kubernetes +kubeval +kustomization +kustomize +kyocera +lenovo +levenstein +linkerd +localdomain +localstack +lucene +macbook +maxmind +maxminddb +messagebird +minikube +minimalistic +minio +minishift +mkfile +mongod +motorola +mountpoint +mozilla +msiexec +namenode +netcat +netdata +netlify +nintendo +nio +nixos +nixpkg +nixpkgs +nokia +nslookup +nsupdate +ntapi +ntfs +opendal +opensearch +opentelemetry +oss +pacman +pantech +papertrail +papertrailapp +petabytes +philips +podinfo +podman +postgresql +proxyuser +pseudocode +psl +pushgateway +qwerty +rabbitmq +rclone +rfcs +roadmap +rootfs +roundrobin +rpmbuild +rpms +rstest +rsyslog +rsyslogd +scriptblock +servlet +Sinjo +shannon +sublocation +sundar +svcb +snyk +socketaddr +solarwinds +splunk +ssh +staticuser +statsd +symbian +tanushri +timeframe +timeseries +timespan +timestamped +typesense +tzdata +ubuntu +unchunked +upstreaminfo +useragents +usergroups +userguide +urlencoding +webhdfs +winapi +workarounds +XCHACHA +XSALSA +yandex +zeek +zookeeper +zst +zstandard +otel +otelcol +siv +onig +aviv +dammam +doha +mumbai +paulo +turin +AIXM +AUTOSAR +CDMA +cksum +contactless +DECT +DNP +DVB +EPC +FLEXRAY +FUJITSU +GENIBUS +GSM +hitag +INTERLAKEN +JAMCRC +MCRF +MEF +microcontroller +MIFARE +modbus +NRSC +OPENPGP +OPENSAFETY +PROFIBUS +RFID +riello +ROHC +SMBUS +teledisk +UMTS +WCDMA +XMODEM +cbor +requestline +jetbrains +JetBrains +gifs +meme diff --git a/.github/actions/spelling/candidate.patterns b/.github/actions/spelling/candidate.patterns new file mode 100644 index 0000000000000..017c8f4487db5 --- /dev/null +++ b/.github/actions/spelling/candidate.patterns @@ -0,0 +1,555 @@ +# marker to ignore all code on line +^.*/\* #no-spell-check-line \*/.*$ +# marker to ignore all code on line +^.*\bno-spell-check(?:-line|)(?:\s.*|)$ + +# https://cspell.org/configuration/document-settings/ +# cspell inline +^.*\b[Cc][Ss][Pp][Ee][Ll]{2}:\s*[Dd][Ii][Ss][Aa][Bb][Ll][Ee]-[Ll][Ii][Nn][Ee]\b + +# patch hunk comments +^\@\@ -\d+(?:,\d+|) \+\d+(?:,\d+|) \@\@ .* +# git index header +index (?:[0-9a-z]{7,40},|)[0-9a-z]{7,40}\.\.[0-9a-z]{7,40} + +# css url wrappings +\burl\([^)]*\) + +# cid urls +(['"])cid:.*?\g{-1} + +# data url in parens +\(data:(?:[^) ][^)]*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})[^)]*\) +# data url in quotes +([`'"])data:(?:[^ `'"].*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}).*\g{-1} +# data url +#data:[-a-zA-Z=;:/0-9+]*,\S* + +# https/http/file urls +(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|] + +# mailto urls +mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,} + +# magnet urls +magnet:[?=:\w]+ + +# magnet urls +"magnet:[^"]+" + +# obs: +"obs:[^"]*" + +# The `\b` here means a break, it's the fancy way to handle urls, but it makes things harder to read +# In this examples content, I'm using a number of different ways to match things to show various approaches +# asciinema +\basciinema\.org/a/[0-9a-zA-Z]+ + +# asciinema v2 +^\[\d+\.\d+, "[io]", ".*"\]$ + +# apple +\bdeveloper\.apple\.com/[-\w?=/]+ +# Apple music +\bembed\.music\.apple\.com/fr/playlist/usr-share/[-\w.]+ + +# appveyor api +\bci\.appveyor\.com/api/projects/status/[0-9a-z]+ +# appveyor project +\bci\.appveyor\.com/project/(?:[^/\s"]*/){2}builds?/\d+/job/[0-9a-z]+ + +# Amazon + +# Amazon +\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|) +# AWS S3 +\b\w*\.s3[^.]*\.amazonaws\.com/[-\w/&#%_?:=]* +# AWS execute-api +\b[0-9a-z]{10}\.execute-api\.[-0-9a-z]+\.amazonaws\.com\b +# AWS ELB +\b\w+\.[-0-9a-z]+\.elb\.amazonaws\.com\b +# AWS SNS +\bsns\.[-0-9a-z]+.amazonaws\.com/[-\w/&#%_?:=]* +# AWS VPC +vpc-\w+ + +# While you could try to match `http://` and `https://` by using `s?` in `https?://`, sometimes there +# YouTube url +\b(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|user/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_%]* +# YouTube music +\bmusic\.youtube\.com/youtubei/v1/browse(?:[?&]\w+=[-a-zA-Z0-9?&=_]*) +# YouTube tag +<\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"] +# YouTube image +\bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]* +# Google Accounts +\baccounts.google.com/[-_/?=.:;+%&0-9a-zA-Z]* +# Google Analytics +\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]* +# Google APIs +\bgoogleapis\.(?:com|dev)/[a-z]+/(?:v\d+/|)[a-z]+/[-@:./?=\w+|&]+ +# Google Storage +\b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|) +# Google Calendar +\bcalendar\.google\.com/calendar(?:/u/\d+|)/embed\?src=[@./?=\w&%]+ +\w+\@group\.calendar\.google\.com\b +# Google DataStudio +\bdatastudio\.google\.com/(?:(?:c/|)u/\d+/|)(?:embed/|)(?:open|reporting|datasources|s)/[-0-9a-zA-Z]+(?:/page/[-0-9a-zA-Z]+|) +# The leading `/` here is as opposed to the `\b` above +# ... a short way to match `https://` or `http://` since most urls have one of those prefixes +# Google Docs +/docs\.google\.com/[a-z]+/(?:ccc\?key=\w+|(?:u/\d+|d/(?:e/|)[0-9a-zA-Z_-]+/)?(?:edit\?[-\w=#.]*|/\?[\w=&]*|)) +# Google Drive +\bdrive\.google\.com/(?:file/d/|open)[-0-9a-zA-Z_?=]* +# Google Groups +\bgroups\.google\.com(?:/[a-z]+/(?:#!|)[^/\s"]+)* +# Google Maps +\bmaps\.google\.com/maps\?[\w&;=]* +# Google themes +themes\.googleusercontent\.com/static/fonts/[^/\s"]+/v\d+/[^.]+. +# Google CDN +\bclients2\.google(?:usercontent|)\.com[-0-9a-zA-Z/.]* +# Goo.gl +/goo\.gl/[a-zA-Z0-9]+ +# Google Chrome Store +\bchrome\.google\.com/webstore/detail/[-\w]*(?:/\w*|) +# Google Books +\bgoogle\.(?:\w{2,4})/books(?:/\w+)*\?[-\w\d=&#.]* +# Google Fonts +\bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]* +# Google Forms +\bforms\.gle/\w+ +# Google Scholar +\bscholar\.google\.com/citations\?user=[A-Za-z0-9_]+ +# Google Colab Research Drive +\bcolab\.research\.google\.com/drive/[-0-9a-zA-Z_?=]* + +# GitHub SHAs (api) +\bapi.github\.com/repos(?:/[^/\s"]+){3}/[0-9a-f]+\b +# GitHub SHAs (markdown) +(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|) +# GitHub SHAs +\bgithub\.com(?:/[^/\s"]+){2}[@#][0-9a-f]+\b +# GitHub wiki +\bgithub\.com/(?:[^/]+/){2}wiki/(?:(?:[^/]+/|)_history|[^/]+(?:/_compare|)/[0-9a-f.]{40,})\b +# githubusercontent +/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]* +# githubassets +\bgithubassets.com/[0-9a-f]+(?:[-/\w.]+) +# gist github +\bgist\.github\.com/[^/\s"]+/[0-9a-f]+ +# git.io +\bgit\.io/[0-9a-zA-Z]+ +# GitHub JSON +"node_id": "[-a-zA-Z=;:/0-9+]*" +# Contributor +\[[^\]]+\]\(https://github\.com/[^/\s"]+\) +# GHSA +GHSA(?:-[0-9a-z]{4}){3} + +# GitLab commit +\bgitlab\.[^/\s"]*/\S+/\S+/commit/[0-9a-f]{7,16}#[0-9a-f]{40}\b +# GitLab merge requests +\bgitlab\.[^/\s"]*/\S+/\S+/-/merge_requests/\d+/diffs#[0-9a-f]{40}\b +# GitLab uploads +\bgitlab\.[^/\s"]*/uploads/[-a-zA-Z=;:/0-9+]* +# GitLab commits +\bgitlab\.[^/\s"]*/(?:[^/\s"]+/){2}commits?/[0-9a-f]+\b + +# binanace +accounts\.binance\.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]* + +# bitbucket diff +\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}diff(?:stat|)(?:/[^/\s"]+){2}:[0-9a-f]+ +# bitbucket repositories commits +\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}commits?/[0-9a-f]+ +# bitbucket commits +\bbitbucket\.org/(?:[^/\s"]+/){2}commits?/[0-9a-f]+ + +# bit.ly +\bbit\.ly/\w+ + +# bitrise +\bapp\.bitrise\.io/app/[0-9a-f]*/[\w.?=&]* + +# bootstrapcdn.com +\bbootstrapcdn\.com/[-./\w]+ + +# cdn.cloudflare.com +\bcdnjs\.cloudflare\.com/[./\w]+ + +# circleci +\bcircleci\.com/gh(?:/[^/\s"]+){1,5}.[a-z]+\?[-0-9a-zA-Z=&]+ + +# gitter +\bgitter\.im(?:/[^/\s"]+){2}\?at=[0-9a-f]+ + +# gravatar +\bgravatar\.com/avatar/[0-9a-f]+ + +# ibm +[a-z.]*ibm\.com/[-_#=:%!?~.\\/\d\w]* + +# imgur +\bimgur\.com/[^.]+ + +# Internet Archive +\barchive\.org/web/\d+/(?:[-\w.?,'/\\+&%$#_:]*) + +# discord +/discord(?:app\.com|\.gg)/(?:invite/)?[a-zA-Z0-9]{7,} + +# Disqus +\bdisqus\.com/[-\w/%.()!?&=_]* + +# medium link +\blink\.medium\.com/[a-zA-Z0-9]+ +# medium +\bmedium\.com/\@?[^/\s"]+/[-\w]+ + +# microsoft +\b(?:https?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com/[-_a-zA-Z0-9()=./%]* +# powerbi +\bapp\.powerbi\.com/reportEmbed/[^"' ]* +# vs devops +\bvisualstudio.com(?::443|)/[-\w/?=%&.]* +# microsoft store +\bmicrosoft\.com/store/apps/\w+ + +# mvnrepository.com +\bmvnrepository\.com/[-0-9a-z./]+ + +# now.sh +/[0-9a-z-.]+\.now\.sh\b + +# oracle +\bdocs\.oracle\.com/[-0-9a-zA-Z./_?#&=]* + +# chromatic.com +/\S+.chromatic.com\S*[")] + +# codacy +\bapi\.codacy\.com/project/badge/Grade/[0-9a-f]+ + +# compai +\bcompai\.pub/v1/png/[0-9a-f]+ + +# mailgun api +\.api\.mailgun\.net/v3/domains/[0-9a-z]+\.mailgun.org/messages/[0-9a-zA-Z=@]* +# mailgun +\b[0-9a-z]+.mailgun.org + +# /message-id/ +/message-id/[-\w@./%]+ + +# Reddit +\breddit\.com/r/[/\w_]* + +# requestb.in +\brequestb\.in/[0-9a-z]+ + +# sched +\b[a-z0-9]+\.sched\.com\b + +# Slack url +slack://[a-zA-Z0-9?&=]+ +# Slack +\bslack\.com/[-0-9a-zA-Z/_~?&=.]* +# Slack edge +\bslack-edge\.com/[-a-zA-Z0-9?&=%./]+ +# Slack images +\bslack-imgs\.com/[-a-zA-Z0-9?&=%.]+ + +# shields.io +\bshields\.io/[-\w/%?=&.:+;,]* + +# stackexchange -- https://stackexchange.com/feeds/sites +\b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/) + +# Sentry +[0-9a-f]{32}\@o\d+\.ingest\.sentry\.io\b + +# Twitter markdown +\[\@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\) +# Twitter hashtag +\btwitter\.com/hashtag/[\w?_=&]* +# Twitter status +\btwitter\.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|) +# Twitter profile images +\btwimg\.com/profile_images/[_\w./]* +# Twitter media +\btwimg\.com/media/[-_\w./?=]* +# Twitter link shortened +\bt\.co/\w+ + +# facebook +\bfburl\.com/[0-9a-z_]+ +# facebook CDN +\bfbcdn\.net/[\w/.,]* +# facebook watch +\bfb\.watch/[0-9A-Za-z]+ + +# dropbox +\bdropbox\.com/sh?/[^/\s"]+/[-0-9A-Za-z_.%?=&;]+ + +# ipfs protocol +ipfs://[0-9a-zA-Z]{3,} +# ipfs url +/ipfs/[0-9a-zA-Z]{3,} + +# w3 +\bw3\.org/[-0-9a-zA-Z/#.]+ + +# loom +\bloom\.com/embed/[0-9a-f]+ + +# regex101 +\bregex101\.com/r/[^/\s"]+/\d+ + +# figma +\bfigma\.com/file(?:/[0-9a-zA-Z]+/)+ + +# freecodecamp.org +\bfreecodecamp\.org/[-\w/.]+ + +# image.tmdb.org +\bimage\.tmdb\.org/[/\w.]+ + +# mermaid +\bmermaid\.ink/img/[-\w]+|\bmermaid-js\.github\.io/mermaid-live-editor/#/edit/[-\w]+ + +# Wikipedia +\ben\.wikipedia\.org/wiki/[-\w%.#]+ + +# gitweb +[^"\s]+/gitweb/\S+;h=[0-9a-f]+ + +# HyperKitty lists +/archives/list/[^@/]+\@[^/\s"]*/message/[^/\s"]*/ + +# lists +/thread\.html/[^"\s]+ + +# list-management +\blist-manage\.com/subscribe(?:[?&](?:u|id)=[0-9a-f]+)+ + +# kubectl.kubernetes.io/last-applied-configuration +"kubectl.kubernetes.io/last-applied-configuration": ".*" + +# pgp +\bgnupg\.net/pks/lookup[?&=0-9a-zA-Z]* + +# Spotify +\bopen\.spotify\.com/embed/playlist/\w+ + +# Mastodon +\bmastodon\.[-a-z.]*/(?:media/|\@)[?&=0-9a-zA-Z_]* + +# scastie +\bscastie\.scala-lang\.org/[^/]+/\w+ + +# images.unsplash.com +\bimages\.unsplash\.com/(?:(?:flagged|reserve)/|)[-\w./%?=%&.;]+ + +# pastebin +\bpastebin\.com/[\w/]+ + +# heroku +\b\w+\.heroku\.com/source/archive/\w+ + +# quip +\b\w+\.quip\.com/\w+(?:(?:#|/issues/)\w+)? + +# badgen.net +\bbadgen\.net/badge/[^")\]'\s]+ + +# statuspage.io +\w+\.statuspage\.io\b + +# media.giphy.com +\bmedia\.giphy\.com/media/[^/]+/[\w.?&=]+ + +# tinyurl +\btinyurl\.com/\w+ + +# codepen +\bcodepen\.io/[\w/]+ + +# registry.npmjs.org +\bregistry\.npmjs\.org/(?:@[^/"']+/|)[^/"']+/-/[-\w@.]+ + +# getopts +\bgetopts\s+(?:"[^"]+"|'[^']+') + +# ANSI color codes +(?:\\(?:u00|x)1[Bb]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+|)m + +# URL escaped characters +\%[0-9A-F][A-F] +# IPv6 +\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b +# c99 hex digits (not the full format, just one I've seen) +0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP] +# Punycode +\bxn--[-0-9a-z]+ +# sha +sha\d+:[0-9]*[a-f]{3,}[0-9a-f]* +# sha-... -- uses a fancy capture +(\\?['"]|")[0-9a-f]{40,}\g{-1} +# hex runs +\b[0-9a-fA-F]{16,}\b +# hex in url queries +=[0-9a-fA-F]*?(?:[A-F]{3,}|[a-f]{3,})[0-9a-fA-F]*?& +# ssh +(?:ssh-\S+|-nistp256) [-a-zA-Z=;:/0-9+]{12,} + +# PGP +\b(?:[0-9A-F]{4} ){9}[0-9A-F]{4}\b +# GPG keys +\b(?:[0-9A-F]{4} ){5}(?: [0-9A-F]{4}){5}\b +# Well known gpg keys +.well-known/openpgpkey/[\w./]+ + +# uuid: +\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b +# hex digits including css/html color classes: +#(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|u\d+)\b + +# integrity +integrity=(['"])sha\d+-[-a-zA-Z=;:/0-9+]{40,}\g{-1} + +# https://www.gnu.org/software/groff/manual/groff.html +# man troff content +\\f[BCIPR] +# '/" +\\\([ad]q + +# .desktop mime types +^MimeTypes?=.*$ +# .desktop localized entries +^[A-Z][a-z]+\[[a-z]+\]=.*$ +# Localized .desktop content +Name\[[^\]]+\]=.* + +# IServiceProvider +\bI(?=(?:[A-Z][a-z]{2,})+\b) + +# crypt +(['"])\$2[ayb]\$.{56}\g{-1} + +# scrypt / argon +\$(?:scrypt|argon\d+[di]*)\$\S+ + +# Input to GitHub JSON +content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1} + +# printf +#%(?:(?:hh?|ll?|[jzt])?[diuoxXn]|l?[cs]|L?[fFeEgGaA]|p)(?=[a-zA-Z]{2,}) + +# Python stringprefix / binaryprefix +# Note that there's a high false positive rate, remove the `?=` and search for the regex to see if the matches seem like reasonable strings +(?v# +(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_])) +# Compiler flags (Scala) +(?:^|[\t ,>"'`=(])-J-[DPWXY](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) +# Compiler flags +#(?:^|[\t ,>"'`=(])-[DPWXYLlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) + +# Compiler flags (linker) +,-B +# curl arguments +\b(?:\\n|)curl(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)* +# set arguments +\bset(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)* +# tar arguments +\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+ +# tput arguments -- https://man7.org/linux/man-pages/man5/terminfo.5.html -- technically they can be more than 5 chars long... +\btput\s+(?:(?:-[SV]|-T\s*\w+)\s+)*\w{3,5}\b +# macOS temp folders +/var/folders/\w\w/[+\w]+/(?:T|-Caches-)/ diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt new file mode 100644 index 0000000000000..bfa9af201496a --- /dev/null +++ b/.github/actions/spelling/excludes.txt @@ -0,0 +1,4 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes +^\.github/actions/spelling/ +^\Qbenches/codecs/moby_dick.txt\E$ +^\Qwebsite/layouts/shortcodes/config/unit-tests.html\E$ diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt new file mode 100644 index 0000000000000..2753d37cd1d3d --- /dev/null +++ b/.github/actions/spelling/expect.txt @@ -0,0 +1,690 @@ +abcd +acking +acp +aimd +amqps +amz +amzn +anchore +andy +apievent +apipodspec +apk +apm +appcypher +appname +aqf +architecting +archs +assertverify +atag +aton +authpriv +authsvc +autodiscovered +autodiscovery +autospawn +autotools +avro +awsec +awslabs +BAAAAX +backcompat +backoffs +BADALG +BADCOOKIE +BADKEY +BADMODE +BADSIG +BADTIME +BADTRUNC +barfoo +barieom +basearch +baseof +bazqux +benefritz +bev +bfb +bgwriter +binarylogic +Bincode +blem +blkio +blks +Bloblang +Blockfi +blockmanager +blt +bonzai +bottlenecked +Brandur +breadcrumb +bringustogether +bruceg +bsd +btag +btime +BTreemap +buffercreated +buffererror +buffereventsdropped +buffereventsreceived +buffereventssent +bufferpin +bvalue +bwsnrn +bytesize +califrag +califragilistic +CAROOT +cbor +cddl +cdylib +cef +centiseconds +cernan +CFFI +CGP +cgroups +chartmuseum +chronosphere +cicd +Claranet +CLF +clickhouse +clonable +cmds +CMK +cnf +CODEOWNERS +coldline +componenterror +componenteventsdropped +componenteventsreceived +componenteventssent +composability +conffiles +configmap +confl +connid +consigliere +cooldown +copytruncate +corechecks +crds +cri +Cribl +crt +cruft +csb +csvlog +customise +customizability +CVS +cwl +daschl +dataflows +datafuselabs +datasources +datid +datname +DBserver +ddagent +ddev +ddmetrics +ddsketch +ddsketches +ddsktech +ddsource +ddtags +debuggability +deciseconds +decommit +dedot +deduped +delaycompress +deliverystream +demoing +demux +dependant +dereferenceable +desync +developerguide +DFm +dhost +diffs +disintermediate +DNSKEY +dnsmsg +dogstatsd +downcasted +dsl +dstaddr +dstat +dstport +dufs +dummyhttp +duser +dynamicwireless +dyno +ebfcee +edenhill +edns +eeyun +efgh +Elhage +emerg +Enableable +endianess +endler +eni +enp +EOL'ed +errorf +esque +etsy +eventsdropped +eventstore +eventstoredb +eventstreamsink +evictingpages +evmap +ewma +Exabytes +examplegroup +exitcodes +extendedstatus +extrepo +Failable +falco +fanatid +fanouts +fastcc +fastmod +fcontext +feeney +FFF +fffffffff +ffi +fhpt +Fingerprinter +fipsmodule +firewalls +flakey +flamegraph +Flatbuffers +flatmaps +fns +Fomichev +foobarfoobarfoo +footgunning +Forcepoint +freelist +fuzzcheck +GC'ing +gcra +gelf +geoffleyland +geolite +getelementptr +getmores +GFM +glog +Godbolt +goldberg +gpgcheck +gpgkey +gqlgen +graphviz +GREEDYDATA +Gregorys +groks +groupedstats +guenter +gzip'ed +hashring +hbb +hec +heka +hfs +highlighters +Hobden +hostagent +hostcall +hostpath +hoverable +hoverbear +httpdeliveryrequestresponse +httpdump +httpevent +hugepages +hugops +humio +hyperthreading +iai +iana +idhack +IDML +ietf +imds +IMO +IMSD +incentivizes +indexmap +inodes +installdeb +interpretervm +invtrapezium +ionicon +iostat +iouring +iowait +IPORHOST +isdst +issie +iut +ixm +jamtur +janky +JINSPIRED +jmxrmi +jmxtrans +Jolokia +JSONAs +jsonify +jsonlines +jszwedko +kartar +kebabcase +kernelmode +keybase +keyclock +keyxxxxx +Khal +khvzak +killall +kinesisfirehose +kinit +Kirill +klog +ktff +labelmap +lalrpop +Lamport +landingpad +leebenson +leveldb +libcrypto +librdkafka +libvector +lld +loadbalancer +logdna +logevents +logfmt +lognamespacing +logplex +logsense +logsev +logseverity +logtypes +lpop +lpush +Luc +lucperkins +lukesteensen +lvl +maj +majorly +makecache +Makefiles +mallocs +markdownify +marketo +maxbin +maxes +maxwritten +mba +mcache +meln +memmem +memstats +memsw +messagededuplicationid +metamethod +mezmo +mfoo +mgmt +MIDP +mingrammer +mkto +mlua +mmdb +Mmm +moosh +Mooshing +mortems +Motivatingly +mountpoints +MOZGIII +MPM +mre +msgpack +mskv +mspan +MSRV +msv +multitenant +munging +musleabihf +muslueabihf +mustprogress +mutiple +myannotation +mycie +mycorp +mydatabase +mylabel +mypod +myvalue +Namazu +nats +ndjson +nearline +nextest +ngx +nindent +nkey +nocapture +nofree +nomac +norc +norecurse +nosync +noundef +nounwind +nowin +npipe +nsecs +ntoa +ntp +nullishness +NUMA +numbackends +NXRR +OIDC +OKD +oneof +ONEZONE +opcounters +openstring +opinsights +oplog +optimisation +optimizable +OSSL +otherhost +otlm +otlp +OTP +outputspatterns +overriden +oyaml +Paa +pageheap +parallelizable +pascalcase +PEMS +percpu +pgo +PIDs +PII +plainify +ple +podspec +Ponge +POSINT +preceeded +precpu +preds +prereqs +primaryfont +procid +promhttp +promtail +proptest +protobufs +protoc +protofbuf +Prt +purgecss +qqq +quickcheck +rande +rawconfig +rcode +rdkafka +rdparty +readnone +rediss +redoctober +regexes +regexset +reinstantiate +reloadable +remotehost +reorganisation +replicaset +rereleased +resharding +resolv +restorecon +retryable +rhel +rmem +rmi +rolledback +rpush +RRs +RRSIG +rtt +runc +runhcs +runtimes +rusoto +rustc +rustdoc +Rustexp +RUSTFLAGS +rustfmt +Rustinomicon +rustls +RUSTSEC +rustup +sandboxing +sccache +schemaless +schemars +screamingsnakecase +sda +SDID +seahash +semanage +sematext +SEO +serverlogs +serviceaccount +servicebus +sev +sghall +shane +shortcode +shost +shutsdown +SIEM +SIGHUPs +sinkbuilder +sinknetworkbytessent +slideover +smartphone +Smol +smtracking +snakecase +somehost +somejob +sourced +sourcenetworkbytesreceived +sourcetype +sourcing +spencergilbert +spinlock +SPOF +spog +srcaddr +srcport +SREs +sret +sse +ssekms +ssn +stabilises +stackdrive +stackdriver +stakeholders +Statds +statefulset +Steensen +streamsink +strng +subfooter +subsecond +subtagline +summ +Supercalifragilisticexpialidocious +suser +sustainability +Swich +syscalls +sysfs +sysinit +syslogng +sysv +Syu +Szwedko +tagline +tagset +Takeaways +targetgroup +tarpit +tcmalloc +telecom +templatable +templateable +terabytes +terraform +Tful +thang +ther +thicc +thiserror +threatmanager +Throughputs +Tiltfile +timberio +TKEY +tlh +tmpfs +tocbot +TOCs +TODOs +tokio +Tomola +tonydanza +toolbars +toproto +towncrier +Toxiproxy +Tpng +transitioning +Trauring +Treemap +trialled +Trivago +trivy +trl +Troutwine +TSIG +Tsvg +typechecked +typetag +tzdb +uap +undertagline +underutilized +underutilizing +unevictable +unflatten +unioning +unnested +upgradable +urql +usecase +userdata +userinfo +usermode +uucp +UVY +uwtable +Uyuni +vdev +VECTORCFG +vectordotdev +vendored +versionable +viceversa +visualising +VMs +vrl +vsize +vts +Wakely +waninfo +wasmtime +watchexec +wayfor +wday +webgraphviz +websites +wensite +whostheboss +willreturn +wiredtiger +wkkmmawf +wmem +woooooow +woothee +workstreams +writeback +wtcache +wtime +wtimeout +WTS +xact +xlarge +XMODEM +xxs +YAMLs +YBv +yday +Yellowdog +yippeee +ytt +YXRR +yyy +zieme +zoog +zork +zorp +zsherman +zulip diff --git a/.github/actions/spelling/line_forbidden.patterns b/.github/actions/spelling/line_forbidden.patterns new file mode 100644 index 0000000000000..7059eca259d85 --- /dev/null +++ b/.github/actions/spelling/line_forbidden.patterns @@ -0,0 +1,73 @@ +# reject `m_data` as there's a certain OS which has evil defines that break things if it's used elsewhere +# \bm_data\b + +# If you have a framework that uses `it()` for testing and `fit()` for debugging a specific test, +# you might not want to check in code where you were debugging w/ `fit()`, in which case, you might want +# to use this: +#\bfit\( + +# s.b. GitHub +\bGithub\b + +# s.b. GitLab +\bGitlab\b + +# s.b. JavaScript +\bJavascript\b + +# s.b. Microsoft +\bMicroSoft\b + +# s.b. another +\ban[- ]other\b + +# s.b. greater than +\bgreater then\b + +# s.b. into +# when not phrasal and when `in order to` would be wrong: +# https://thewritepractice.com/into-vs-in-to/ +#\sin to\s + +# s.b. opt-in +#\sopt in\s + +# s.b. less than +\bless then\b + +# s.b. otherwise +\bother[- ]wise\b + +# s.b. nonexistent +\bnon existing\b +\b[Nn]o[nt][- ]existent\b + +# s.b. preexisting +[Pp]re[- ]existing + +# s.b. preempt +[Pp]re[- ]empt\b + +# s.b. preemptively +[Pp]re[- ]emptively + +# s.b. reentrancy +[Rr]e[- ]entrancy + +# s.b. reentrant +[Rr]e[- ]entrant + +# s.b. understand +\bunder stand\b + +# s.b. workarounds +\bwork[- ]arounds\b + +# s.b. workaround +(?:(?:[Aa]|[Tt]he|ugly)\swork[- ]around\b|\swork[- ]around\s+for) + +# s.b. (coarse|fine)-grained +\b(?:coarse|fine) grained\b + +# Reject duplicate words +\s([A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})\s\g{-1}\s diff --git a/.github/actions/spelling/only.txt b/.github/actions/spelling/only.txt new file mode 100644 index 0000000000000..bd5a16374cf1d --- /dev/null +++ b/.github/actions/spelling/only.txt @@ -0,0 +1,5 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-only +\.md$ +\.cue$ +\.html$ +\.txt$ diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt new file mode 100644 index 0000000000000..db0c21c4feb10 --- /dev/null +++ b/.github/actions/spelling/patterns.txt @@ -0,0 +1,238 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns + +# Automatically suggested patterns +# hit-count: 5753 file-count: 170 +# hex runs +\b[0-9a-fA-F]{16,}\b + +# hit-count: 5370 file-count: 70 +# sha-... -- uses a fancy capture +(['"]|")[0-9a-f]{40,}\g{-1} + +# hit-count: 2011 file-count: 538 +# https/http/file urls +(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|] + +# hit-count: 936 file-count: 350 +# GitHub SHAs (markdown) +(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|) + +# hit-count: 302 file-count: 82 +# version suffix v# +(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_])) + +# hit-count: 176 file-count: 21 +# hex digits including css/html color classes: +(?:\\[xX])[0-9a-fA-F]{2}\b +(?:0[xX])[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|u\d+)\b +(?:\\u|[uU]\+|#x?|\%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|u\d+)\b + +# hit-count: 152 file-count: 2 +# ANSI color codes +(?:\\(?:u00|x)1[Bb]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+|)m + +# hit-count: 141 file-count: 23 +# Non-English +[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,} + +# hit-count: 115 file-count: 53 +# IPv6 +\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b + +# hit-count: 78 file-count: 23 +# URL escaped characters +\%[0-9A-F][A-F] +\%2b(?=[a-z]{2,}) + +# hit-count: 66 file-count: 12 +# IServiceProvider +\bI(?=(?:[A-Z][a-z]{2,})+\b) + +# hit-count: 64 file-count: 24 +# uuid: +\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b + +# hit-count: 36 file-count: 36 +# set arguments +\bset(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)* + +# hit-count: 27 file-count: 14 +# tar arguments +\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+ + +# hit-count: 16 file-count: 5 +# curl arguments +\b(?:\\n|)curl(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)* + +# hit-count: 15 file-count: 6 +# Compiler flags +(?:^|[\t,>"'`=(])-[D](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) +(?:^|[\t ,>"'`=(])-[XL](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) +[^-\\|a-zA-Z0-9]-C(?!lass)(?=[a-z]{3,}) + +# hit-count: 15 file-count: 2 +# AWS VPC +vpc-\w+ + +# hit-count: 10 file-count: 6 +# Python stringprefix / binaryprefix +# Note that there's a high false positive rate, remove the `?=` and search for the regex to see if the matches seem like reasonable strings +(?]*>|[^<]*)\s*$ + +# Autogenerated revert commit message +^This reverts commit [0-9a-f]{40}\.$ + +# ignore long runs of a single character: +\b([A-Za-z])\g{-1}{3,}\b + +# ignore comment in package-msi.sh +[#].*custom\.a28ecdc.* + +# ignore specific user:password string containing special chars for unit testing +user:P@ssw0rd + +# Ignore base64 encoded values in Prometheus Pushgateway URL paths +/.+@base64/.+ + +# Ignore base64 encoded values in VRL examples (requires padding to avoid false positives) +"[A-Za-z0-9+\/]*==" + +# ignore uuid_from_friendly_id argument +uuid_from_friendly_id!\(".*"\) + +# Ignore punycode +\bxn--[-0-9a-z]+ + +# changelog.d fragment authors line +^authors: .*$ diff --git a/.github/actions/spelling/reject.txt b/.github/actions/spelling/reject.txt new file mode 100644 index 0000000000000..e5e4c3eef82e4 --- /dev/null +++ b/.github/actions/spelling/reject.txt @@ -0,0 +1,11 @@ +^attache$ +^bellow$ +benefitting +occurences? +^dependan.* +^oer$ +Sorce +^[Ss]pae.* +^untill$ +^untilling$ +^wether.* diff --git a/.github/audit.yml b/.github/audit.yml new file mode 100644 index 0000000000000..83db5d60151bd --- /dev/null +++ b/.github/audit.yml @@ -0,0 +1,17 @@ +name: Security audit + +on: + schedule: + - cron: '0 * * * *' + push: + branches: + - master + +jobs: + security_audit: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/audit-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d98ed9c9182e8..a69c5aaf4d8e6 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,21 +4,94 @@ updates: directory: "/" schedule: interval: "weekly" - day: "saturday" time: "04:00" # UTC - reviewers: - - "fanatid" - assignees: - - "fanatid" labels: - "domain: deps" + - "no-changelog" commit-message: prefix: "chore(deps)" + open-pull-requests-limit: 100 + groups: + patches: + applies-to: version-updates + patterns: + - "*" + update-types: + - "patch" + + amq: + patterns: + - "amq-*" + aws: + patterns: + - "aws-*" + azure: + patterns: + - "azure_*" + clap: + patterns: + - "clap*" + crossbeam: + patterns: + - "crossbeam*" + csv: + patterns: + - "csv*" + futures: + patterns: + - "futures" + - "futures-util" + metrics: + patterns: + - "metrics" + - "metrics-tracing-context" + - "metrics-util" + graphql: + patterns: + - "async-graphql*" + phf: + patterns: + - "phf*" + prost: + patterns: + - "prost" + - "prost-*" + tonic: + patterns: + - "tonic" + - "tonic-*" + tower: + patterns: + - "tower" + - "tower-*" + wasm-bindgen: + patterns: + - "wasm-bindgen-*" + zstd: + patterns: + - "zstd*" + - package-ecosystem: "docker" + directory: "/distribution/docker/" + schedule: + interval: "daily" + time: "04:00" # UTC + labels: + - "domain: releasing" + - "no-changelog" + commit-message: + prefix: "chore(deps)" + open-pull-requests-limit: 100 - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly" labels: - "domain: ci" + - "no-changelog" commit-message: prefix: "chore(ci)" + groups: + artifact: + patterns: + - "actions/download-artifact" + - "actions/upload-artifact" diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000000000..c6754678ef94b --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,48 @@ +# Generic component-level labels and high-level groupings. +"domain: sources": + - changed-files: + - any-glob-to-any-file: ["src/sources/**/*"] + +"domain: sinks": + - changed-files: + - any-glob-to-any-file: ["src/sinks/**/*"] + +"domain: transforms": + - changed-files: + - any-glob-to-any-file: ["src/transforms/**/*"] + +"domain: topology": + - changed-files: + - any-glob-to-any-file: ["src/topology/**/*"] + +"domain: codecs": + - changed-files: + - any-glob-to-any-file: ["src/codecs/**/*"] + +"domain: core": + - changed-files: + - any-glob-to-any-file: ["lib/vector-core/**/*"] + +"domain: vrl": + - changed-files: + - any-glob-to-any-file: ["lib/vrl/**/*"] + +"domain: ci": + - changed-files: + - any-glob-to-any-file: ["scripts/**/*"] + +"domain: vdev": + - changed-files: + - any-glob-to-any-file: ["vdev/**/*"] + +"domain: releasing": + - changed-files: + - any-glob-to-any-file: ["distribution/**/*", "scripts/package-*", "scripts/release-*"] + +"domain: rfc": + - changed-files: + - any-glob-to-any-file: ["rfcs/**/*"] + +"domain: external docs": + - changed-files: + - any-glob-to-any-file: ["website/cue/**/*"] diff --git a/.github/semantic.yml b/.github/semantic.yml deleted file mode 100644 index a209c99f677bd..0000000000000 --- a/.github/semantic.yml +++ /dev/null @@ -1,209 +0,0 @@ -# WARNING! THIS FILE IS AUTOGENERATED! DO NOT EDIT! -# Orginal file: https://github.com/timberio/resources/tree/master/vector/github/semantic_pull_requests.tf -# ------------------------------------------------------------------------------ -# -# Configuration for probot/semantic-pull-requests GitHub check bot -# -# Installation/configuration docs here -# https://github.com/probot/semantic-pull-requests#configuration -# -# Always validate the PR title, and ignore the commits -titleOnly: true - -types: - - chore # An internal change this is not observable by users. - - enhancement # Any user observable enhancement to an existing feature. - - feat # Any user observable new feature, such as a new platform, source, transform, or sink. - - fix # Any user observable bug fix. - -scopes: - - new source - - new transform - - new sink - - # domains - - administration # Anything related to administration/operation - - architecture # Anything related to architecture - - auth # Anything related to authentication/authorization - - buffers # Anything related to Vector's memory/disk buffers - - ci # Anything related to Vector's CI environment - - cli # Anything related to Vector's CLI - - codecs # Anything related to Vector's codecs (encoding/decoding) - - compression # Anything related to compressing data within Vector - - config # Anything related to configuring Vector - - data model # Anything related to Vector's internal data model - - deps # Anything related to Vector's dependencies - - dev # Anything related to Vector's development environment - - enriching # Anything related to enriching Vector's events with context data - - exceptions # Anything related to Vector's exception events. - - extensions # Anything related to extending Vector (WASM, plugins, etc.) - - external docs # Anything related to Vector's external, public documentation - - filtering # Anything related to filtering within Vector - - graphql api # Anything related to Vector's GraphQL API - - healthchecks # Anything related to Vector's healtchecks - - internal docs # Anything related to Vector's internal documentation - - logs # Anything related to Vector's log events - - metrics # Anything related to Vector's metrics events - - networking # Anything related to Vector's networking - - observability # Anything related to monitoring/observing Vector - - parsing # Anything related to parsing within Vector - - performance # Anything related to Vector's performance - - platforms # Anything related to Vector's supported platforms - - privacy # Anything related to privacy/compliance - - processing # Anything related to processing Vector's events (parsing, merging, reducing, etc.) - - releasing # Anything related to releasing Vector - - reliability # Anything related to Vector's reliability - - reload # Anything related to reloading Vector (updating configuration) - - remap # Anything related to the Vector Remap Language - - schemas # Anything related to internal Vector event schemas - - security # Anything related to security - - setup # Anything related to setting up or installing Vector - - shutdown # Anything related to the shutdown of Vector - - sinks # Anything related to the Vector's sinks - - sources # Anything related to the Vector's sources - - startup # Anything related to the startup of Vector - - templating # Anything related to templating Vector's configuration values - - tests # Anything related to Vector's internal tests - - topology # Anything related to Vector's topology code - - traces # Anything related to Vectors' trace events - - transforms # Anything related to Vector's transform components - - # platforms - - amazon-linux platform # Anything `amazon-linux` platform related - - apt platform # Anything `apt` platform related - - arm64 platform # Anything `arm64` platform related - - centos platform # Anything `centos` platform related - - debian platform # Anything `debian` platform related - - docker platform # Anything `docker` platform related - - dpkg platform # Anything `dpkg` platform related - - heroku platform # Anything `heroku` platform related - - homebrew platform # Anything `homebrew` platform related - - kubernetes platform # Anything `kubernetes` platform related - - macos platform # Anything `macos` platform related - - msi platform # Anything `msi` platform related - - nix platform # Anything `nix` platform related - - nixos platform # Anything `nixos` platform related - - raspbian platform # Anything `raspbian` platform related - - rhel platform # Anything `rhel` platform related - - rpm platform # Anything `rpm` platform related - - ubuntu platform # Anything `ubuntu` platform related - - windows platform # Anything `windows` platform related - - x86_64 platform # Anything `x86_64` platform related - - yum platform # Anything `yum` platform related - - # service providers - - aws service # Anything `aws` service provider related - - azure service # Anything `azure` service provider related - - confluent service # Anything `confluent` service provider related - - datadog service # Anything `datadog` service provider related - - elastic service # Anything `elastic` service provider related - - gcp service # Anything `gcp` service provider related - - grafana service # Anything `grafana` service provider related - - heroku service # Anything `heroku` service provider related - - honeycomb service # Anything `honeycomb` service provider related - - humio service # Anything `humio` service provider related - - influxdata service # Anything `influxdata` service provider related - - logdna service # Anything `logdna` service provider related - - new relic service # Anything `new relic` service provider related - - papertrail service # Anything `papertrail` service provider related - - sematext service # Anything `sematext` service provider related - - splunk service # Anything `splunk` service provider related - - yandex service # Anything `yandex` service provider related - - # sources - - apache_metrics source # Anything `apache_metrics` source related - - aws_ecs_metrics source # Anything `aws_ecs_metrics` source related - - aws_kinesis_firehose source # Anything `aws_kinesis_firehose` source related - - aws_s3 source # Anything `aws_s3` source related - - docker_logs source # Anything `docker_logs` source related - - file source # Anything `file` source related - - generator source # Anything `generator` source related - - heroku_logs source # Anything `heroku_logs` source related - - host_metrics source # Anything `host_metrics` source related - - http source # Anything `http` source related - - internal_logs source # Anything `internal_logs` source related - - internal_metrics source # Anything `internal_metrics` source related - - journald source # Anything `journald` source related - - kafka source # Anything `kafka` source related - - kubernetes_logs source # Anything `kubernetes_logs` source related - - mongodb_metrics source # Anything `mongodb_metrics` source related - - nginx_metrics source # Anything `nginx_metrics` source related - - postgresql_metrics source # Anything `postgresql_metrics` source related - - prometheus_remote_write source # Anything `prometheus_remote_write` source related - - prometheus_scrape source # Anything `prometheus_scrape` source related - - socket source # Anything `socket` source related - - splunk_hec source # Anything `splunk_hec` source related - - statsd source # Anything `statsd` source related - - stdin source # Anything `stdin` source related - - syslog source # Anything `syslog` source related - - vector source # Anything `vector` source related - - # transforms - - add_fields transform # Anything `add_fields` transform related - - add_tags transform # Anything `add_tags` transform related - - ansi_stripper transform # Anything `ansi_stripper` transform related - - aws_ec2_metadata transform # Anything `aws_ec2_metadata` transform related - - coercer transform # Anything `coercer` transform related - - concat transform # Anything `concat` transform related - - dedupe transform # Anything `dedupe` transform related - - filter transform # Anything `filter` transform related - - geoip transform # Anything `geoip` transform related - - grok_parser transform # Anything `grok_parser` transform related - - json_parser transform # Anything `json_parser` transform related - - log_to_metric transform # Anything `log_to_metric` transform related - - logfmt_parser transform # Anything `logfmt_parser` transform related - - lua transform # Anything `lua` transform related - - merge transform # Anything `merge` transform related - - metric_to_log transform # Anything `metric_to_log` transform related - - reduce transform # Anything `reduce` transform related - - regex_parser transform # Anything `regex_parser` transform related - - remap transform # Anything `remap` transform related - - remove_fields transform # Anything `remove_fields` transform related - - remove_tags transform # Anything `remove_tags` transform related - - rename_fields transform # Anything `rename_fields` transform related - - sample transform # Anything `sample` transform related - - split transform # Anything `split` transform related - - route transform # Anything `route` transform related - - tag_cardinality_limit transform # Anything `tag_cardinality_limit` transform related - - tokenizer transform # Anything `tokenizer` transform related - - wasm transform # Anything `wasm` transform related - - # sinks - - aws_cloudwatch_logs sink # Anything `aws_cloudwatch_logs` sink related - - aws_cloudwatch_metrics sink # Anything `aws_cloudwatch_metrics` sink related - - aws_kinesis_firehose sink # Anything `aws_kinesis_firehose` sink related - - aws_kinesis_streams sink # Anything `aws_kinesis_streams` sink related - - aws_s3 sink # Anything `aws_s3` sink related - - aws_sqs sink # Anything `aws_sqs` sink related - - azure_monitor_logs sink # Anything `azure_monitor_logs` sink related - - blackhole sink # Anything `blackhole` sink related - - clickhouse sink # Anything `clickhouse` sink related - - console sink # Anything `console` sink related - - datadog_logs sink # Anything `datadog_logs` sink related - - datadog_metrics sink # Anything `datadog_metrics` sink related - - elasticsearch sink # Anything `elasticsearch` sink related - - file sink # Anything `file` sink related - - gcp_cloud_storage sink # Anything `gcp_cloud_storage` sink related - - gcp_pubsub sink # Anything `gcp_pubsub` sink related - - gcp_stackdriver_logs sink # Anything `gcp_stackdriver_logs` sink related - - honeycomb sink # Anything `honeycomb` sink related - - http sink # Anything `http` sink related - - humio_logs sink # Anything `humio_logs` sink related - - humio_metrics sink # Anything `humio_metrics` sink related - - influxdb_logs sink # Anything `influxdb_logs` sink related - - influxdb_metrics sink # Anything `influxdb_metrics` sink related - - kafka sink # Anything `kafka` sink related - - logdna sink # Anything `logdna` sink related - - loki sink # Anything `loki` sink related - - nats sink # Anything `nats` sink related - - new_relic_logs sink # Anything `new_relic_logs` sink related - - papertrail sink # Anything `papertrail` sink related - - prometheus_exporter sink # Anything `prometheus_exporter` sink related - - prometheus_remote_write sink # Anything `prometheus_remote_write` sink related - - pulsar sink # Anything `pulsar` sink related - - sematext_logs sink # Anything `sematext_logs` sink related - - sematext_metrics sink # Anything `sematext_metrics` sink related - - socket sink # Anything `socket` sink related - - splunk_hec sink # Anything `splunk_hec` sink related - - statsd sink # Anything `statsd` sink related - - vector sink # Anything `vector` sink related diff --git a/.github/workflows/benches.yml b/.github/workflows/benches.yml deleted file mode 100644 index 04b6dc1c92602..0000000000000 --- a/.github/workflows/benches.yml +++ /dev/null @@ -1,113 +0,0 @@ -name: Benchmark Suite - -on: - pull_request: {} - push: - branches: - - master - paths: - - ".github/workflows/benches.yml" - - ".cargo/**" - - "benches/**" - - "lib/**" - - "proto/**" - - "src/**" - - "tests/**" - - "build.rs" - - "Cargo.lock" - - "Cargo.toml" - - "rust-toolchain" - workflow_dispatch: - -env: - VERBOSE: true - AWS_ACCESS_KEY_ID: "dummy" - AWS_SECRET_ACCESS_KEY: "dummy" - CI: true - AWS_REGION: us-east-1 - -jobs: - cancel-previous: - runs-on: ubuntu-20.04 - timeout-minutes: 3 - if: github.ref != 'refs/heads/master' - steps: - - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ secrets.GITHUB_TOKEN }} - - bench: - name: Bench - Linux - runs-on: [self-hosted, linux, x64, benchmarks] - # Allow benchmarks show regressions until we can refine the thresholds for - # regression to reduce false positives. - continue-on-error: true - steps: - - uses: actions/checkout@v2 - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - - name: Checkout master to build first - run: | - git fetch --depth 1 origin master - git checkout --force origin/master - # build benchmarks on all CPUs, including isolated benchmarking CPU - - name: Prebuild master benchmarks - run: taskset -c "0-$(nproc)" make bench-all CARGO_BENCH_FLAGS="--no-run" - # run benchmarks on isolated CPU and with address randomization - # disabled - - name: Run master benchmarks - run: setarch $(uname -m) -R taskset -c "$(cat /sys/devices/system/cpu/isolated)" make bench-all - - - name: Checkout current SHA - run: git clean --force && git checkout --force $GITHUB_SHA - # build benchmarks on all CPUs, including isolated benchmarking CPU - - name: Prebuild benchmarks - run: taskset -c "0-$(nproc)" make bench-all CARGO_BENCH_FLAGS="--no-run" - # run benchmarks on isolated CPU and with address randomization - # disabled - - name: Run benchmarks - run: | - mkdir -p target/criterion - setarch $(uname -m) -R taskset -c "$(cat /sys/devices/system/cpu/isolated)" make bench-all | tee target/criterion/out - - - run: zip --recurse-paths target/criterion.zip target/criterion - - uses: actions/upload-artifact@v2 - with: - name: "criterion" - path: "./target/criterion.zip" - - name: Upload criterion data to S3 - run: scripts/upload-benchmarks-s3.sh - if: github.ref == 'refs/heads/master' - env: - AWS_ACCESS_KEY_ID: "${{ secrets.CI_AWS_ACCESS_KEY_ID }}" - AWS_SECRET_ACCESS_KEY: "${{ secrets.CI_AWS_SECRET_ACCESS_KEY }}" - # note: should run last to flag regressions - - name: Compare benchmarks - run: | - echo "Comparing $(git rev-parse HEAD) with $(git rev-parse origin/master)" - cat target/criterion/out | scripts/check-criterion-output.sh - - master-failure: - name: master-failure - if: failure() && github.ref == 'refs/heads/master' - needs: - - cancel-previous - - bench - runs-on: ubuntu-20.04 - steps: - - name: Discord notification - env: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@0.3.0 - with: - args: "Master benchmarks failed: " diff --git a/.github/workflows/build_preview_sites.yml b/.github/workflows/build_preview_sites.yml new file mode 100644 index 0000000000000..ea3c8b203529b --- /dev/null +++ b/.github/workflows/build_preview_sites.yml @@ -0,0 +1,46 @@ +name: Deploy Vector Preview Sites + +on: + workflow_run: + workflows: ["Call Build Preview"] + types: + - completed + +permissions: + issues: write + pull-requests: write + statuses: write + +jobs: + deploy_vector_preview_site: + if: ${{ github.event.workflow_run.conclusion == 'success' && contains(github.event.workflow_run.head_branch, 'website') }} + uses: ./.github/workflows/create_preview_sites.yml + with: + APP_ID: "d1a7j77663uxsc" + APP_NAME: "vector.dev" + secrets: + REQUEST_TOKEN: ${{ secrets.REQUEST_TOKEN }} + REQUEST_MESSAGE: ${{ secrets.REQUEST_MESSAGE }} + ENDPOINT: ${{ secrets.BUILDER_ENDPOINT }} + + deploy_rust_doc_preview_site: + if: ${{ github.event.workflow_run.conclusion == 'success' && contains(github.event.workflow_run.head_branch, 'website') }} + uses: ./.github/workflows/create_preview_sites.yml + with: + APP_ID: "d1hoyoksbulg25" + APP_NAME: "Rust Doc" + secrets: + REQUEST_TOKEN: ${{ secrets.REQUEST_TOKEN }} + REQUEST_MESSAGE: ${{ secrets.REQUEST_MESSAGE }} + ENDPOINT: ${{ secrets.BUILDER_ENDPOINT }} + + deploy_vrl_playground_preview_site: + if: ${{ github.event.workflow_run.conclusion == 'success' && contains(github.event.workflow_run.head_branch, 'website') }} + uses: ./.github/workflows/create_preview_sites.yml + with: + APP_ID: "d2lr4eds605rpz" + APP_NAME: "VRL Playground" + secrets: + REQUEST_TOKEN: ${{ secrets.REQUEST_TOKEN }} + REQUEST_MESSAGE: ${{ secrets.REQUEST_MESSAGE }} + ENDPOINT: ${{ secrets.BUILDER_ENDPOINT }} diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml new file mode 100644 index 0000000000000..57d7013f3b2d6 --- /dev/null +++ b/.github/workflows/changelog.yaml @@ -0,0 +1,68 @@ +# Changelog +# +# Validates that a changelog entry was added. +# Runs on PRs when: +# - opened/re-opened +# - new commits pushed +# - label is added or removed +# Runs on merge queues, but just passes, because it is a required check. + +name: Changelog + +on: + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] + # Due to merge queue requiring same status checks as PRs, must pass by default + merge_group: + types: [checks_requested] + +jobs: + validate-changelog: + runs-on: ubuntu-24.04 + if: github.event_name == 'pull_request' + env: + PR_HAS_LABEL: ${{ contains( github.event.pull_request.labels.*.name, 'no-changelog') }} + steps: + # Checkout full depth because in the check_changelog_fragments script, we need to specify a + # merge base. If we only shallow clone the repo, git may not have enough history to determine + # the base. + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Generate authentication token + # Don't run this step if the PR is from a fork or dependabot since the secrets won't exist + if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' }} + id: generate_token + uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a + with: + app_id: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_ID }} + private_key: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_PRIVATE_KEY }} + + - run: | + if [[ $PR_HAS_LABEL == 'true' ]] ; then + echo "'no-changelog' label detected." + exit 0 + fi + + # Helper script needs to reference the master branch to compare against + git fetch origin master:refs/remotes/origin/master + + ./scripts/check_changelog_fragments.sh + + check-changelog: + name: Changelog + runs-on: ubuntu-24.04 + needs: validate-changelog + if: always() + env: + FAILED: ${{ contains(needs.*.result, 'failure') }} + steps: + - name: exit + run: | + echo "failed=${{ env.FAILED }}" + if [[ "$FAILED" == "true" ]] ; then + exit 1 + else + exit 0 + fi diff --git a/.github/workflows/changes.yml b/.github/workflows/changes.yml new file mode 100644 index 0000000000000..d82a3e79d0fd3 --- /dev/null +++ b/.github/workflows/changes.yml @@ -0,0 +1,335 @@ +# This workflow identifies changes between the base and the head ref, for use in +# other workflows to decide if they should be executed. + +name: Identify Changes + +on: + workflow_call: + # These inputs allow the filter action to be able to access the correct refs for + # comparison in changes detection, it is required as this is called from the + # merge_group context. + inputs: + base_ref: + required: true + type: string + head_ref: + required: true + type: string + int_tests: + required: false + type: boolean + default: false + e2e_tests: + required: false + type: boolean + default: false + source: + required: false + type: boolean + default: true + outputs: + source: + value: ${{ jobs.source.outputs.source }} + dependencies: + value: ${{ jobs.source.outputs.dependencies }} + internal_events: + value: ${{ jobs.source.outputs.internal_events }} + cue: + value: ${{ jobs.source.outputs.cue }} + component_docs: + value: ${{ jobs.source.outputs.component_docs }} + markdown: + value: ${{ jobs.source.outputs.markdown }} + install: + value: ${{ jobs.source.outputs.install }} + k8s: + value: ${{ jobs.source.outputs.k8s }} + all-int: + value: ${{ jobs.int_tests.outputs.all-tests }} + amqp: + value: ${{ jobs.int_tests.outputs.amqp }} + appsignal: + value: ${{ jobs.int_tests.outputs.appsignal }} + aws: + value: ${{ jobs.int_tests.outputs.aws }} + axiom: + value: ${{ jobs.int_tests.outputs.axiom }} + azure: + value: ${{ jobs.int_tests.outputs.azure }} + clickhouse: + value: ${{ jobs.int_tests.outputs.clickhouse }} + databend: + value: ${{ jobs.int_tests.outputs.databend }} + datadog-agent: + value: ${{ jobs.int_tests.outputs.datadog-agent }} + datadog-logs: + value: ${{ jobs.int_tests.outputs.datadog-logs }} + datadog-metrics: + value: ${{ jobs.int_tests.outputs.datadog-metrics }} + datadog-traces: + value: ${{ jobs.int_tests.outputs.datadog-traces }} + dnstap: + value: ${{ jobs.int_tests.outputs.dnstap }} + docker-logs: + value: ${{ jobs.int_tests.outputs.docker-logs }} + elasticsearch: + value: ${{ jobs.int_tests.outputs.elasticsearch }} + eventstoredb: + value: ${{ jobs.int_tests.outputs.eventstoredb }} + fluent: + value: ${{ jobs.int_tests.outputs.fluent }} + gcp: + value: ${{ jobs.int_tests.outputs.gcp }} + greptimedb: + value: ${{ jobs.int_tests.outputs.greptimedb }} + humio: + value: ${{ jobs.int_tests.outputs.humio }} + http-client: + value: ${{ jobs.int_tests.outputs.http-client }} + influxdb: + value: ${{ jobs.int_tests.outputs.influxdb }} + kafka: + value: ${{ jobs.int_tests.outputs.kafka }} + logstash: + value: ${{ jobs.int_tests.outputs.logstash }} + loki: + value: ${{ jobs.int_tests.outputs.loki }} + mongodb: + value: ${{ jobs.int_tests.outputs.mongodb }} + mqtt: + value: ${{ jobs.int_tests.outputs.mqtt }} + nats: + value: ${{ jobs.int_tests.outputs.nats }} + nginx: + value: ${{ jobs.int_tests.outputs.nginx }} + opentelemetry: + value: ${{ jobs.int_tests.outputs.opentelemetry }} + postgres: + value: ${{ jobs.int_tests.outputs.postgres }} + prometheus: + value: ${{ jobs.int_tests.outputs.prometheus }} + pulsar: + value: ${{ jobs.int_tests.outputs.pulsar }} + redis: + value: ${{ jobs.int_tests.outputs.redis }} + splunk: + value: ${{ jobs.int_tests.outputs.splunk }} + webhdfs: + value: ${{ jobs.int_tests.outputs.webhdfs }} + all-changes-json: + value: ${{ jobs.int_tests.outputs.all-changes-json }} + # e2e tests + all-e2e: + value: ${{ jobs.e2e_tests.outputs.all-tests }} + e2e-datadog-logs: + value: ${{ jobs.e2e_tests.outputs.datadog-logs }} + e2e-datadog-metrics: + value: ${{ jobs.e2e_tests.outputs.datadog-metrics }} + +jobs: + # Detects changes that are not specific to integration tests + source: + runs-on: ubuntu-20.04 + timeout-minutes: 5 + if: ${{ inputs.source }} + outputs: + source: ${{ steps.filter.outputs.source }} + dependencies: ${{ steps.filter.outputs.dependencies }} + internal_events: ${{ steps.filter.outputs.internal_events }} + cue: ${{ steps.filter.outputs.cue }} + component_docs: ${{ steps.filter.outputs.component_docs }} + markdown: ${{ steps.filter.outputs.markdown }} + install: ${{ steps.filter.outputs.install }} + k8s: ${{ steps.filter.outputs.k8s }} + steps: + - uses: actions/checkout@v4 + + - uses: dorny/paths-filter@v3 + id: filter + with: + base: ${{ inputs.base_ref }} + ref: ${{ inputs.head_ref }} + filters: | + source: + - ".github/workflows/test.yml" + - ".cargo/**" + - "benches/**" + - "lib/**" + - "proto/**" + - "scripts/**" + - "src/**" + - "tests/**" + - "build.rs" + - "Cargo.lock" + - "Cargo.toml" + - "Makefile" + - "rust-toolchain.toml" + - "vdev/**" + dependencies: + - ".cargo/**" + - 'Cargo.toml' + - 'Cargo.lock' + - 'rust-toolchain.toml' + - '.github/workflows/pr.yml' + - 'Makefile' + - 'scripts/cross/**' + - "vdev/**" + cue: + - 'website/cue/**' + - "vdev" + component_docs: + - 'scripts/generate-component-docs.rb' + - "vdev/**" + - 'website/cue/**/base/**.cue' + markdown: + - '**/**.md' + - "vdev/**" + internal_events: + - 'src/internal_events/**' + - "vdev/**" + docker: + - 'distribution/docker/**' + - "vdev/**" + install: + - ".github/workflows/install-sh.yml" + - "distribution/install.sh" + k8s: + - "src/sources/kubernetes_logs/**" + + # Detects changes that are specific to integration tests + int_tests: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: ${{ inputs.int_tests }} + outputs: + all-tests: ${{ steps.filter.outputs.all-tests}} + amqp: ${{ steps.filter.outputs.amqp }} + appsignal: ${{ steps.filter.outputs.appsignal}} + aws: ${{ steps.filter.outputs.aws }} + axiom: ${{ steps.filter.outputs.axiom }} + azure: ${{ steps.filter.outputs.azure }} + clickhouse: ${{ steps.filter.outputs.clickhouse }} + databend: ${{ steps.filter.outputs.databend }} + datadog-agent: ${{ steps.filter.outputs.datadog-agent }} + datadog-logs: ${{ steps.filter.outputs.datadog-logs }} + datadog-metrics: ${{ steps.filter.outputs.datadog-metrics }} + datadog-traces: ${{ steps.filter.outputs.datadog-traces }} + dnstap: ${{ steps.filter.outputs.dnstap }} + docker-logs: ${{ steps.filter.outputs.docker-logs }} + elasticsearch: ${{ steps.filter.outputs.elasticsearch }} + eventstoredb: ${{ steps.filter.outputs.eventstoredb }} + fluent: ${{ steps.filter.outputs.fluent }} + gcp: ${{ steps.filter.outputs.gcp }} + greptimedb: ${{ steps.filter.outputs.greptimedb }} + humio: ${{ steps.filter.outputs.humio }} + http-client: ${{ steps.filter.outputs.http-client }} + influxdb: ${{ steps.filter.outputs.influxdb }} + kafka: ${{ steps.filter.outputs.kafka }} + logstash: ${{ steps.filter.outputs.logstash }} + loki: ${{ steps.filter.outputs.loki }} + mongodb: ${{ steps.filter.outputs.mongodb }} + mqtt: ${{ steps.filter.outputs.mqtt }} + nats: ${{ steps.filter.outputs.nats }} + nginx: ${{ steps.filter.outputs.nginx }} + opentelemetry: ${{ steps.filter.outputs.opentelemetry }} + postgres: ${{ steps.filter.outputs.postgres }} + prometheus: ${{ steps.filter.outputs.prometheus }} + pulsar: ${{ steps.filter.outputs.pulsar }} + redis: ${{ steps.filter.outputs.redis }} + splunk: ${{ steps.filter.outputs.splunk }} + webhdfs: ${{ steps.filter.outputs.webhdfs }} + all-changes-json: ${{ steps.aggregate.outputs.all-changes-json }} + steps: + - uses: actions/checkout@v4 + + # creates a yaml file that contains the filters for each integration, + # extracted from the output of the `vdev int ci-paths` command, which + # sources the paths from the scripts/integration/.../test.yaml files + - name: Create filter rules for integrations + run: cargo vdev int ci-paths > int_test_filters.yaml + + - uses: dorny/paths-filter@v3 + id: filter + with: + base: ${{ inputs.base_ref }} + ref: ${{ inputs.head_ref }} + filters: int_test_filters.yaml + + # This JSON hack was introduced because GitHub Actions does not support dynamic expressions in the + # `if` section of a job or step. In return, we can reduce a lot of redundant job configuration in integration.yml. + - name: Generate JSON for all outputs + id: aggregate + run: | + json=$(cat < int_tests_changes.json + + - name: Upload JSON artifact + uses: actions/upload-artifact@v4 + with: + name: int_tests_changes + path: int_tests_changes.json + + # Detects changes that are specific to e2e tests + e2e_tests: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: ${{ inputs.e2e_tests }} + outputs: + all-tests: ${{ steps.filter.outputs.all-tests}} + datadog-logs: ${{ steps.filter.outputs.datadog-logs }} + datadog-metrics: ${{ steps.filter.outputs.datadog-metrics }} + steps: + - uses: actions/checkout@v4 + + # creates a yaml file that contains the filters for each test, + # extracted from the output of the `vdev int ci-paths` command, which + # sources the paths from the scripts/integration/.../test.yaml files + - name: Create filter rules for e2e tests + run: cargo vdev e2e ci-paths > int_test_filters.yaml + + - uses: dorny/paths-filter@v3 + id: filter + with: + base: ${{ inputs.base_ref }} + ref: ${{ inputs.head_ref }} + filters: int_test_filters.yaml diff --git a/.github/workflows/ci-integration-review.yml b/.github/workflows/ci-integration-review.yml new file mode 100644 index 0000000000000..b97e89ca93e4d --- /dev/null +++ b/.github/workflows/ci-integration-review.yml @@ -0,0 +1,191 @@ +# Integration CI Review Trigger +# +# This workflow runs one or more integration tests triggered by a comment in a PR. +# The comment must include '/ci-run-integration'. +# More than one can be specified. +# +# Examples: +# +# 1. Run a single integration test: +# +# /ci-run-integration-amqp +# +# 2. Run two integration tests: +# +# /ci-run-integration-datadog-logs +# /ci-run-integration-splunk +# +# 3. Run all integration tests: +# +# /ci-run-integration-all +# +# 4. Run all CI (including all integration tests) +# +# /ci-run-all +# +# NOTE: This workflow runs on Pull Request Review Comments rather than normal comments to be able to +# capture the SHA that the comment is associated with. + +name: CI Integration Review Trigger + +on: + pull_request_review: + types: [submitted] + +permissions: + statuses: write + +env: + AWS_ACCESS_KEY_ID: "dummy" + AWS_SECRET_ACCESS_KEY: "dummy" + AXIOM_TOKEN: ${{ secrets.AXIOM_TOKEN }} + TEST_APPSIGNAL_PUSH_API_KEY: ${{ secrets.TEST_APPSIGNAL_PUSH_API_KEY }} + TEST_DATADOG_API_KEY: ${{ secrets.CI_TEST_DATADOG_API_KEY }} + CONTAINER_TOOL: "docker" + DD_ENV: "ci" + DD_API_KEY: ${{ secrets.DD_API_KEY }} + RUST_BACKTRACE: full + TEST_LOG: vector=debug + VERBOSE: true + CI: true + PROFILE: debug + +jobs: + prep-pr: + name: (PR review) Signal pending to PR + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: startsWith(github.event.review.body, '/ci-run-integration') || startsWith(github.event.review.body, '/ci-run-e2e') || contains(github.event.review.body, '/ci-run-all') + steps: + - name: Generate authentication token + id: generate_token + uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a + with: + app_id: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_ID }} + private_key: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_PRIVATE_KEY }} + - name: Get PR review author + id: comment + uses: tspascoal/get-user-teams-membership@v3 + with: + username: ${{ github.actor }} + team: 'Vector' + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + + - name: Validate author membership + if: steps.comment.outputs.isTeamMember == 'false' + run: exit 1 + + - name: (PR review) Set latest commit status as pending + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + status: pending + + integration-tests: + needs: prep-pr + runs-on: ubuntu-20.04 + timeout-minutes: 90 + strategy: + matrix: + service: [ + "amqp", "appsignal", "aws", "axiom", "azure", "clickhouse", "databend", "datadog-agent", + "datadog-logs", "datadog-metrics", "datadog-traces", "dnstap", "docker-logs", "elasticsearch", + "eventstoredb", "fluent", "gcp", "greptimedb", "http-client", "influxdb", "kafka", "logstash", + "loki", "mongodb", "nats", "nginx", "opentelemetry", "postgres", "prometheus", "pulsar", + "redis", "splunk", "webhdfs" + ] + steps: + - uses: actions/checkout@v4 + with: + submodules: "recursive" + ref: ${{ github.event.review.commit_id }} + + - run: sudo npm -g install @datadog/datadog-ci + + - run: docker image prune -af ; docker container prune -f + + - name: Integration Tests - ${{ matrix.service }} + if: ${{ startsWith(github.event.review.body, '/ci-run-integration-all') + || startsWith(github.event.review.body, '/ci-run-all') + || startsWith(github.event.review.body, format('/ci-run-integration-{0}', matrix.service)) }} + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + max_attempts: 3 + command: bash scripts/ci-int-e2e-test.sh int ${{ matrix.service }} + + e2e-tests: + needs: prep-pr + runs-on: ubuntu-20.04-8core + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + with: + submodules: "recursive" + ref: ${{ github.event.review.commit_id }} + + - run: sudo npm -g install @datadog/datadog-ci + + - run: docker image prune -af ; docker container prune -f + - name: e2e-datadog-logs + if: ${{ startsWith(github.event.review.body, '/ci-run-e2e-datadog-logs') + || startsWith(github.event.review.body, '/ci-run-integration-all') + || startsWith(github.event.review.body, '/ci-run-all') }} + uses: nick-fields/retry@v3 + with: + timeout_minutes: 35 + max_attempts: 3 + command: bash scripts/ci-int-e2e-test.sh e2e datadog-logs + + - name: datadog-e2e-metrics + if: ${{ startsWith(github.event.review.body, '/ci-run-e2e-datadog-metrics') + || startsWith(github.event.review.body, '/ci-run-e2e-all') + || startsWith(github.event.review.body, '/ci-run-all') }} + uses: nick-fields/retry@v3 + with: + timeout_minutes: 35 + max_attempts: 3 + command: bash scripts/ci-int-e2e-test.sh e2e datadog-metrics + + update-pr-status: + name: Signal result to PR + runs-on: ubuntu-24.04 + timeout-minutes: 5 + needs: + - integration-tests + - e2e-tests + if: always() && (startsWith(github.event.review.body, '/ci-run-integration') || contains(github.event.review.body, '/ci-run-all')) + env: + FAILED: ${{ contains(needs.*.result, 'failure') }} + steps: + - name: Generate authentication token + id: generate_token + uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a + with: + app_id: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_ID }} + private_key: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_PRIVATE_KEY }} + + - name: Validate issue comment + if: github.event_name == 'pull_request_review' + uses: tspascoal/get-user-teams-membership@v3 + with: + username: ${{ github.actor }} + team: 'Vector' + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + + - name: (PR review) Submit PR result as success + if: github.event_name == 'pull_request_review' && env.FAILED != 'true' + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + status: 'success' + + - run: | + echo "failed=${{ env.FAILED }}" + if [[ "$FAILED" == "true" ]] ; then + exit 1 + else + exit 0 + fi diff --git a/.github/workflows/ci-review-trigger.yml b/.github/workflows/ci-review-trigger.yml new file mode 100644 index 0000000000000..06f638da5fbab --- /dev/null +++ b/.github/workflows/ci-review-trigger.yml @@ -0,0 +1,138 @@ +# CI Review Trigger +# +# This workflow is a central point for triggering workflow runs that normally run only as part of the merge queue, +# on demand by a comment. The exception being the integration tests, which have their own workflow file for +# comment triggers as the logic is a bit more complex. +# +# NOTE: This workflow runs on Pull Request Review Comments rather than normal comments to be able to +# capture the SHA that the comment is associated with. +# +# The available triggers are: +# +# /ci-run-all : runs all of the below +# /ci-run-cli : runs CLI - Linux +# /ci-run-misc : runs Miscellaneous - Linux +# /ci-run-deny : runs Deny - Linux +# /ci-run-component-features : runs Component Features - Linux +# /ci-run-cross : runs Cross +# /ci-run-unit-mac : runs Unit - Mac +# /ci-run-unit-windows : runs Unit - Windows +# /ci-run-environment : runs Environment Suite +# /ci-run-k8s : runs K8s E2E Suite + +name: CI Review Trigger + +on: + pull_request_review: + types: [submitted] + +permissions: + statuses: write + +env: + DD_ENV: "ci" + RUST_BACKTRACE: full + TEST_LOG: vector=debug + VERBOSE: true + CI: true + PROFILE: debug + # observing issues fetching boringssl via HTTPS in the OSX build, seeing if this helps + # can be removed when we switch back to the upstream openssl-sys crate + CARGO_NET_GIT_FETCH_WITH_CLI: true + +# The below concurrency group settings would let us cancel in progress runs that were triggered with the +# same comment on a given PR, which could save on time consuming runs. +# But GH does not currently support the github.event.review.body as part of the concurrency name, this +# appears to be due to the potential length of it. +#concurrency: +# group: ${{ github.workflow }}-${{ github.event.issue.id }}-${{ github.event.review.body }} +# cancel-in-progress: true + +jobs: + validate: + name: Validate review + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: | + startsWith(github.event.review.body, '/ci-run-all') + || startsWith(github.event.review.body, '/ci-run-cli') + || startsWith(github.event.review.body, '/ci-run-misc') + || startsWith(github.event.review.body, '/ci-run-deny') + || startsWith(github.event.review.body, '/ci-run-component-features') + || startsWith(github.event.review.body, '/ci-run-cross') + || startsWith(github.event.review.body, '/ci-run-unit-mac') + || startsWith(github.event.review.body, '/ci-run-unit-windows') + || startsWith(github.event.review.body, '/ci-run-environment') + || startsWith(github.event.review.body, '/ci-run-k8s') + steps: + - name: Generate authentication token + id: generate_token + uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a + with: + app_id: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_ID }} + private_key: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_PRIVATE_KEY }} + - name: Get PR review author + id: comment + uses: tspascoal/get-user-teams-membership@v3 + with: + username: ${{ github.actor }} + team: 'Vector' + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + + - name: Validate author membership + if: steps.comment.outputs.isTeamMember == 'false' + run: exit 1 + + cli: + needs: validate + if: startsWith(github.event.review.body, '/ci-run-all') || contains(github.event.review.body, '/ci-run-cli') + uses: ./.github/workflows/cli.yml + secrets: inherit + + misc: + needs: validate + if: startsWith(github.event.review.body, '/ci-run-all') || contains(github.event.review.body, '/ci-run-misc') + uses: ./.github/workflows/misc.yml + secrets: inherit + + deny: + needs: validate + if: startsWith(github.event.review.body, '/ci-run-all') || contains(github.event.review.body, '/ci-run-deny') + uses: ./.github/workflows/deny.yml + secrets: inherit + + component-features: + needs: validate + if: startsWith(github.event.review.body, '/ci-run-all') || contains(github.event.review.body, '/ci-run-component-features') + uses: ./.github/workflows/component_features.yml + secrets: inherit + + cross: + needs: validate + if: startsWith(github.event.review.body, '/ci-run-all') || contains(github.event.review.body, '/ci-run-cross') + uses: ./.github/workflows/cross.yml + secrets: inherit + + unit-mac: + needs: validate + if: startsWith(github.event.review.body, '/ci-run-all') || contains(github.event.review.body, '/ci-run-unit-mac') + uses: ./.github/workflows/unit_mac.yml + secrets: inherit + + unit-windows: + needs: validate + if: startsWith(github.event.review.body, '/ci-run-all') || contains(github.event.review.body, '/ci-run-unit-windows') + uses: ./.github/workflows/unit_windows.yml + secrets: inherit + + environment: + needs: validate + if: startsWith(github.event.review.body, '/ci-run-all') || contains(github.event.review.body, '/ci-run-environment') + uses: ./.github/workflows/environment.yml + secrets: inherit + + k8s: + needs: validate + if: startsWith(github.event.review.body, '/ci-run-all') || contains(github.event.review.body, '/ci-run-k8s') + uses: ./.github/workflows/k8s_e2e.yml + secrets: inherit diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml new file mode 100644 index 0000000000000..e797a7abddd23 --- /dev/null +++ b/.github/workflows/cli.yml @@ -0,0 +1,62 @@ +name: CLI - Linux + +on: + workflow_call: + +permissions: + statuses: write + +jobs: + test-cli: + runs-on: ubuntu-20.04 + timeout-minutes: 30 + env: + CARGO_INCREMENTAL: 0 + steps: + - name: (PR review) Set latest commit status as pending + if: ${{ github.event_name == 'pull_request_review' }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: CLI - Linux + status: pending + + - name: (PR review) Checkout review SHA + if: ${{ github.event_name == 'pull_request_review' }} + uses: actions/checkout@v4 + with: + ref: ${{ github.event.review.commit_id }} + + - name: Checkout branch + if: ${{ github.event_name != 'pull_request_review' }} + uses: actions/checkout@v4 + + - name: Cache Cargo registry + index + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: bash scripts/environment/prepare.sh + - run: echo "::add-matcher::.github/matchers/rust.json" + - run: make test-cli + - name: Upload test results + run: scripts/upload-test-results.sh + if: always() + + - name: (PR review) Set latest commit status as ${{ job.status }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + if: always() && github.event_name == 'pull_request_review' + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: CLI - Linux + status: ${{ job.status }} diff --git a/.github/workflows/compilation-timings.yml b/.github/workflows/compilation-timings.yml new file mode 100644 index 0000000000000..1404abb64c107 --- /dev/null +++ b/.github/workflows/compilation-timings.yml @@ -0,0 +1,74 @@ +# Executes various builds of vector to time the results in order to track compilation times. +# +# This workflow is unrelated to the Regression workflow. + +name: Compilation Timings + +on: + workflow_dispatch: + +env: + CI: true + +jobs: + release-build-optimized: + name: "Release Build (optimized)" + runs-on: ubuntu-20.04-8core + steps: + - uses: colpal/actions-clean@v1 + - uses: actions/checkout@v4 + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: bash scripts/environment/prepare.sh + - run: cargo clean + - run: cargo build --release + + release-build-normal: + name: "Release Build (normal)" + runs-on: ubuntu-20.04-8core + env: + # We're not actually doing a debug build, we're just turning off the logic + # in release-flags.sh so that we don't override the Cargo "release" profile + # with full LTO / single codegen unit. + PROFILE: debug + steps: + - uses: colpal/actions-clean@v1 + - uses: actions/checkout@v4 + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: bash scripts/environment/prepare.sh + - run: cargo clean + - run: cargo build --release + + debug-build: + name: "Debug Build" + runs-on: ubuntu-20.04-8core + steps: + - uses: colpal/actions-clean@v1 + - uses: actions/checkout@v4 + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: bash scripts/environment/prepare.sh + - run: cargo clean + - run: cargo build + + debug-rebuild: + name: "Debug Rebuild" + runs-on: ubuntu-20.04-8core + steps: + - uses: colpal/actions-clean@v1 + - uses: actions/checkout@v4 + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: bash scripts/environment/prepare.sh + - run: cargo clean + - run: cargo build + - run: touch src/app.rs + - run: cargo build + + check: + name: "Cargo Check" + runs-on: ubuntu-20.04-8core + steps: + - uses: colpal/actions-clean@v1 + - uses: actions/checkout@v4 + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: bash scripts/environment/prepare.sh + - run: cargo clean + - run: cargo check diff --git a/.github/workflows/component_features.yml b/.github/workflows/component_features.yml new file mode 100644 index 0000000000000..a8a05af06d42f --- /dev/null +++ b/.github/workflows/component_features.yml @@ -0,0 +1,59 @@ +# Component Features - Linux +# +# Validates that each component feature compiles +# +# Runs on: +# - scheduled UTC midnight Tues-Sat +# - on PR review (see comment-trigger.yml) +# - on demand from github actions UI + +name: Component Features - Linux + +on: + workflow_call: + workflow_dispatch: + schedule: + # At midnight UTC Tue-Sat + - cron: '0 0 * * 2-6' + +permissions: + statuses: write + +jobs: + check-component-features: + # use free tier on schedule and 8 core to expedite results on demand invocation + runs-on: ${{ github.event_name == 'schedule' && 'ubuntu-20.04' || 'ubuntu-20.04-8core' }} + if: github.event_name == 'pull_request_review' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' + steps: + - name: (PR review) Set latest commit status as pending + if: github.event_name == 'pull_request_review' + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Component Features - Linux + status: pending + + - name: (PR review) Checkout PR branch + if: github.event_name == 'pull_request_review' + uses: actions/checkout@v4 + with: + ref: ${{ github.event.review.commit_id }} + + - name: Checkout branch + if: github.event_name != 'pull_request_review' + uses: actions/checkout@v4 + + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: bash scripts/environment/prepare.sh + - run: echo "::add-matcher::.github/matchers/rust.json" + - run: make check-component-features + + - name: (PR review) Set latest commit status as ${{ job.status }} + if: always() && github.event_name == 'pull_request_review' + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Component Features - Linux + status: ${{ job.status }} diff --git a/.github/workflows/create_preview_sites.yml b/.github/workflows/create_preview_sites.yml new file mode 100644 index 0000000000000..1e79c621a7932 --- /dev/null +++ b/.github/workflows/create_preview_sites.yml @@ -0,0 +1,109 @@ +name: Create Preview Sites + +on: + workflow_call: + inputs: + APP_ID: + description: "App ID for the associated website" + required: true + type: string + APP_NAME: + description: "Application name for the comment" + required: true + type: string + secrets: + REQUEST_TOKEN: + description: "Token for the request" + required: true + REQUEST_MESSAGE: + description: "Message for the request" + required: true + ENDPOINT: + description: "Request endpoint" + required: true + +permissions: + issues: write + pull-requests: write + statuses: write + +jobs: + create_preview_site: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + steps: + + # Get the artifacts with the PR number and branch name + - name: Download artifact + uses: actions/github-script@v7.0.1 + with: + script: | + const fs = require('fs'); + const artifacts = await github.rest.actions.listWorkflowRunArtifacts({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: ${{ github.event.workflow_run.id }}, + }); + const matchArtifact = artifacts.data.artifacts.filter(artifact => artifact.name == "pr")[0]; + const download = await github.rest.actions.downloadArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: matchArtifact.id, + archive_format: 'zip', + }); + fs.writeFileSync('${{ github.workspace }}/pr.zip', Buffer.from(download.data)); + + # Extract the info from the artifact and set variables + - name: Extract PR info from artifact + run: | + unzip pr.zip -d pr + BRANCH_NAME=$(cat ./pr/branch) + SANITIZED_BRANCH_NAME=$(echo "$BRANCH_NAME" | sed 's/[\/\.]/-/g') + echo "SANITIZED_BRANCH_NAME=$SANITIZED_BRANCH_NAME" >> $GITHUB_ENV + echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV + + # Kick off the job in amplify + - name: Deploy Site + env: + APP_ID: ${{ inputs.APP_ID }} + APP_NAME: ${{ inputs.APP_NAME }} + REQUEST_TOKEN: ${{ secrets.REQUEST_TOKEN }} + REQUEST_MESSAGE: ${{ secrets.REQUEST_MESSAGE }} + ENDPOINT: ${{ secrets.ENDPOINT }} + run: | + sleep 20 + HMAC_KEY=$(echo -n $REQUEST_MESSAGE | openssl dgst -sha256 -hmac "$REQUEST_TOKEN" | cut -d" " -f2) + SIGNATURE="sha256=$HMAC_KEY" + RESPONSE_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \ + -H "Content-Type: application/json" \ + -H "X-Hub-Signature: $SIGNATURE" \ + -d "{\"app_id\": \"$APP_ID\", \"branch_name\": \"$BRANCH_NAME\"}" \ + "$ENDPOINT") + + # check the response code and fail if not 200 + if [ "$RESPONSE_CODE" != "200" ]; then + echo "Request failed with response code $RESPONSE_CODE" + exit 1 + fi + + # Add preview link to comment if all 3 sites successfully start + - name: Comment Preview Link + if: success() + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + APP_ID: ${{ inputs.APP_ID }} + APP_NAME: ${{ inputs.APP_NAME }} + uses: actions/github-script@v7.0.1 + with: + script: | + const fs = require('fs'); + const prNumber = fs.readFileSync('./pr/number', 'utf8'); + const issueNumber = parseInt(prNumber); + const { APP_ID, APP_NAME, SANITIZED_BRANCH_NAME } = process.env + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + body: `Your preview site for the **${APP_NAME}** will be ready in a few minutes, please allow time for it to build. \n \n Heres your preview link: \n [${APP_NAME} preview](https://${SANITIZED_BRANCH_NAME}.${APP_ID}.amplifyapp.com)` + }); diff --git a/.github/workflows/cross.yml b/.github/workflows/cross.yml new file mode 100644 index 0000000000000..d9040040ff1a2 --- /dev/null +++ b/.github/workflows/cross.yml @@ -0,0 +1,92 @@ +name: Cross + +on: + workflow_call: + +permissions: + statuses: write + +jobs: + cross-linux: + name: Cross - ${{ matrix.target }} + runs-on: ubuntu-20.04 + timeout-minutes: 45 + env: + CARGO_INCREMENTAL: 0 + strategy: + matrix: + target: + - x86_64-unknown-linux-gnu + - x86_64-unknown-linux-musl + - aarch64-unknown-linux-gnu + - aarch64-unknown-linux-musl + - armv7-unknown-linux-gnueabihf + - armv7-unknown-linux-musleabihf + - arm-unknown-linux-gnueabi + - arm-unknown-linux-musleabi + steps: + - name: (PR review) Set latest commit status as pending + if: ${{ github.event_name == 'pull_request_review' }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Cross + status: pending + + - name: (PR review) Checkout PR branch + if: ${{ github.event_name == 'pull_request_review' }} + uses: actions/checkout@v4 + with: + ref: ${{ github.event.review.commit_id }} + + - name: Checkout branch + if: ${{ github.event_name != 'pull_request_review' }} + uses: actions/checkout@v4 + + - uses: actions/cache@v4 + name: Cache Cargo registry + index + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - run: echo "::add-matcher::.github/matchers/rust.json" + - run: 'cargo install cross --version 0.2.4 --force --locked' + # Why is this build, not check? Because we need to make sure the linking phase works. + # aarch64 and musl in particular are notoriously hard to link. + # While it may be tempting to slot a `check` in here for quickness, please don't. + - run: make cross-build-${{ matrix.target }} + - uses: actions/upload-artifact@v4 + with: + name: "vector-debug-${{ matrix.target }}" + path: "./target/${{ matrix.target }}/debug/vector" + + - name: (PR review) Set latest commit status as failed + uses: myrotvorets/set-commit-status-action@v2.0.1 + if: failure() && github.event_name == 'pull_request_review' + with: + sha: ${{ steps.comment-branch.outputs.head_sha }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Cross + status: 'failure' + + update-pr-status: + name: (PR review) Signal result to PR + runs-on: ubuntu-20.04 + timeout-minutes: 5 + needs: cross-linux + if: needs.cross-linux.result == 'success' && github.event_name == 'pull_request_review' + steps: + - name: (PR review) Submit PR result as success + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Cross + status: 'success' diff --git a/.github/workflows/custom_builds.yml b/.github/workflows/custom_builds.yml new file mode 100644 index 0000000000000..b20b80c8330d9 --- /dev/null +++ b/.github/workflows/custom_builds.yml @@ -0,0 +1,16 @@ +name: Custom Builds + +permissions: + contents: write + packages: write + +on: + workflow_dispatch: {} + +jobs: + Custom: + uses: ./.github/workflows/publish.yml + with: + git_ref: ${{ github.ref }} + channel: custom + secrets: inherit diff --git a/.github/workflows/deny.yml b/.github/workflows/deny.yml new file mode 100644 index 0000000000000..c69828a53744c --- /dev/null +++ b/.github/workflows/deny.yml @@ -0,0 +1,73 @@ +# Deny - Linux +# +# Checks for security vulnerabilities or license incompatibilities +# +# Runs on: +# - scheduled UTC midnight +# - on PR review (see comment-trigger.yml) +# - on demand from github actions UI + +name: Deny - Linux + +on: + workflow_call: + workflow_dispatch: + schedule: + # At midnight UTC + - cron: '0 0 * * *' + +permissions: + statuses: write + +jobs: + test-deny: + runs-on: ubuntu-20.04 + timeout-minutes: 30 + env: + CARGO_INCREMENTAL: 0 + steps: + - name: (PR review) Set latest commit status as pending + if: ${{ github.event_name == 'pull_request_review' }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Deny - Linux + status: pending + + - name: (PR review) Checkout PR branch + if: ${{ github.event_name == 'pull_request_review' }} + uses: actions/checkout@v4 + with: + ref: ${{ github.event.review.commit_id }} + + - name: Checkout branch + if: ${{ github.event_name != 'pull_request_review' }} + uses: actions/checkout@v4 + + - uses: actions/cache@v4 + name: Cache Cargo registry + index + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: bash scripts/environment/prepare.sh + - run: echo "::add-matcher::.github/matchers/rust.json" + - name: Check cargo deny advisories/licenses + run: make check-deny + + - name: (PR review) Set latest commit status as ${{ job.status }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + if: always() && github.event_name == 'pull_request_review' + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Deny - Linux + status: ${{ job.status }} diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 0000000000000..a660339f27121 --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,119 @@ +# End to End Suite +# +# Runs on: +# - PRs if there are code changes to the source files that are noted in `vdev e2e ci_paths` +# - MQ (always pass) +# - Scheduled: at midnight UTC Tues-Sat + +name: E2E Test Suite + +on: + pull_request: + # Needs to pass by default in MQ + merge_group: + types: [checks_requested] + schedule: + # At midnight UTC Tue-Sat + - cron: '0 0 * * 2-6' + +permissions: + statuses: write + +concurrency: + # `github.event.number` exists for pull requests, otherwise fall back to SHA for merge queue + group: ${{ github.workflow }}-${{ github.event.number || github.event.merge_group.head_sha }} + cancel-in-progress: true + +env: + CONTAINER_TOOL: "docker" + DD_ENV: "ci" + DD_API_KEY: ${{ secrets.DD_API_KEY }} + TEST_DATADOG_API_KEY: ${{ secrets.CI_TEST_DATADOG_API_KEY }} + RUST_BACKTRACE: full + TEST_LOG: vector=debug + VERBOSE: true + CI: true + PROFILE: debug + # observing issues fetching boringssl via HTTPS in the OSX build, seeing if this helps + # can be removed when we switch back to the upstream openssl-sys crate + CARGO_NET_GIT_FETCH_WITH_CLI: true + +jobs: + + changes: + if: github.event_name == 'pull_request' + uses: ./.github/workflows/changes.yml + with: + base_ref: ${{ github.event.pull_request.base.ref }} + head_ref: ${{ github.event.pull_request.head.ref }} + source: false + e2e_tests: true + secrets: inherit + + e2e-tests: + name: E2E Tests + runs-on: ubuntu-20.04-8core + timeout-minutes: 45 + needs: changes + if: always() && ( + github.event_name == 'schedule' || ( + needs.changes.outputs.all-e2e == 'true' + || needs.changes.outputs.e2e-datadog-logs == 'true' + || needs.changes.outputs.e2e-datadog-metrics == 'true' + ) + ) + steps: + - uses: actions/checkout@v4 + with: + submodules: "recursive" + + - run: sudo npm -g install @datadog/datadog-ci + + - run: docker image prune -af ; docker container prune -f + + - name: Determine if secrets are defined (PR author is team member). + if: github.event_name == 'pull_request' + env: + GH_APP_DATADOG_VECTOR_CI_APP_ID: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_ID }} + run: | + if [[ "$GH_APP_DATADOG_VECTOR_CI_APP_ID" != "" ]] ; then + echo "PR_HAS_ACCESS_TO_SECRETS=true" >> "$GITHUB_ENV" + else + echo "PR_HAS_ACCESS_TO_SECRETS=false" >> "$GITHUB_ENV" + fi + + - if: (github.event_name == 'schedule' || needs.changes.outputs.all-e2e == 'true' || needs.changes.outputs.e2e-datadog-logs == 'true') && + (github.event_name != 'pull_request' || env.PR_HAS_ACCESS_TO_SECRETS == 'true') + name: e2e-datadog-logs + uses: nick-fields/retry@v3 + with: + timeout_minutes: 35 + max_attempts: 3 + command: bash scripts/ci-int-e2e-test.sh e2e datadog-logs + + - if: (github.event_name == 'schedule' || needs.changes.outputs.all-e2e == 'true' || needs.changes.outputs.e2e-datadog-metrics == 'true') && + (github.event_name != 'pull_request' || env.PR_HAS_ACCESS_TO_SECRETS == 'true') + name: e2e-datadog-metrics + uses: nick-fields/retry@v3 + with: + timeout_minutes: 35 + max_attempts: 3 + command: bash scripts/ci-int-e2e-test.sh e2e datadog-metrics + + + e2e-test-suite: + name: E2E Test Suite + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: always() + needs: e2e-tests + env: + FAILED: ${{ contains(needs.*.result, 'failure') }} + steps: + - run: | + echo "failed=${{ env.FAILED }}" + if [[ "$FAILED" == "true" ]] ; then + exit 1 + else + exit 0 + fi diff --git a/.github/workflows/environment.yml b/.github/workflows/environment.yml index b01de4c274188..f598ba55be9b6 100644 --- a/.github/workflows/environment.yml +++ b/.github/workflows/environment.yml @@ -1,33 +1,80 @@ name: Environment Suite on: - push: - branches: master + workflow_call: workflow_dispatch: + push: + branches: + - master env: VERBOSE: true CI: true +permissions: + statuses: write + jobs: publish-new-environment: runs-on: ubuntu-20.04 + timeout-minutes: 30 steps: - - name: Checkout - uses: actions/checkout@v2 + - name: (PR review) Set latest commit status as pending + if: ${{ github.event_name == 'pull_request_review' }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Environment Suite + status: pending + + - name: (PR review) Checkout PR branch + if: ${{ github.event_name == 'pull_request_review' }} + uses: actions/checkout@v4 + with: + ref: ${{ github.event.review.commit_id }} + + - name: Checkout branch + if: ${{ github.event_name != 'pull_request_review' }} + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v3.4.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v3.9.0 - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v3 + if: github.ref == 'refs/heads/master' with: username: ${{ secrets.CI_DOCKER_USERNAME }} password: ${{ secrets.CI_DOCKER_PASSWORD }} + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 + with: + images: timberio/vector-dev + flavor: | + latest=true + tags: type=sha, format=long + labels: | + org.opencontainers.image.description=Image for Vector's Docker development environment + org.opencontainers.image.source=https://github.com/vectordotdev/vector/tree/master/scripts/environment/Dockerfile + org.opencontainers.image.title=Vector development environment + org.opencontainers.image.url=https://github.com/vectordotdev/vector - name: Build and push - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v6.13.0 with: context: . file: ./scripts/environment/Dockerfile - push: true - tags: timberio/ci_image:latest + push: ${{ github.ref == 'refs/heads/master' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + - name: (PR review) Set latest commit status as ${{ job.status }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + if: always() && github.event_name == 'pull_request_review' + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Environment Suite + status: ${{ job.status }} diff --git a/.github/workflows/gardener_issue_comment.yml b/.github/workflows/gardener_issue_comment.yml new file mode 100644 index 0000000000000..1e38590b7ca7d --- /dev/null +++ b/.github/workflows/gardener_issue_comment.yml @@ -0,0 +1,131 @@ +# Gardener Issue Comment +# +# This workflow moves GH issues from the Gardener board's "Blocked / Waiting" column +# to "Triage", when a comment is posted on an issue from a non-team member +# so that the Gardener can assess the issue in light of new information. + +name: Gardener Issue Comment + +on: + issue_comment: + types: [created] + +jobs: + move-to-backlog: + name: Move issues back to Gardener project board Triage + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: ${{ !github.event.issue.pull_request }} + steps: + - name: Generate authentication token + id: generate_token + uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a + with: + app_id: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_ID }} + private_key: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_PRIVATE_KEY }} + + - name: Get PR comment author + id: comment + uses: tspascoal/get-user-teams-membership@v3 + with: + username: ${{ github.actor }} + team: 'Vector' + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + + - name: Move issue back to Triage if status is Blocked/Waiting + if: steps.comment.outputs.isTeamMember == 'false' + env: + GH_TOKEN: ${{ secrets.GH_PROJECT_PAT }} + run: | + issue_id=${{ github.event.issue.node_id }} + echo "issue_id: $issue_id" + + # IDs fetched from https://docs.github.com/en/graphql/overview/explorer + project_id="PVT_kwDOAQFeYs4AAsTr" # Gardener + status_field_id="PVTF_lADOAQFeYs4AAsTrzgAXRuU" # Status + triage_option_id="2a08fafa" + + # Query for project items for the given issue + project_items="$(gh api graphql -f query=' + query($item_id: ID!) { + node(id: $item_id) { + ... on Issue { + projectItems(first: 50) { + ... on ProjectV2ItemConnection { + nodes { + fieldValueByName(name: "Status") { + ... on ProjectV2ItemFieldSingleSelectValue { + name + } + } + ... on ProjectV2Item { + id + project { + ... on ProjectV2 { + id + } + } + } + } + } + } + } + ... on PullRequest { + projectItems(first: 50) { + ... on ProjectV2ItemConnection { + nodes { + fieldValueByName(name: "Status") { + ... on ProjectV2ItemFieldSingleSelectValue { + name + } + } + ... on ProjectV2Item { + id + project { + ... on ProjectV2 { + id + } + } + } + } + } + } + } + } + }' -f item_id="$issue_id" + )" + + # Extract the item in the Gardener project + project=$(echo $project_items | jq -c -r --arg project_id $project_id '.data.node.projectItems.nodes[] | select(.project.id == $project_id)') + current_status=$(echo $project | jq -c -r '.fieldValueByName.name') + item_id=$(echo $project | jq -c '.id') + + if [ -z "$current_status" ] ; then + echo "Issue not found in Gardener board" + exit 0 + else + echo "Found issue on Gardener board. Current issue status is: '${current_status}'" + fi + + if [ "$current_status" = "Blocked / Waiting" ] ; then + echo "Moving issue from 'Blocked / Waiting' to 'Triage'" + gh api graphql -f query=' + mutation($project_id: ID!, $item_id: ID!, $field_id: ID!, $option_id: String) { + updateProjectV2ItemFieldValue( + input: { + projectId: $project_id + itemId: $item_id + fieldId: $field_id + value: { + singleSelectOptionId: $option_id + } + } + ) { + projectV2Item { + id + } + } + }' -f project_id="$project_id" -f item_id="$item_id" -f field_id="$status_field_id" -f option_id="$triage_option_id" + else + echo "Issue is in '${current_status}', not moving." + fi diff --git a/.github/workflows/gardener_open_issue.yml b/.github/workflows/gardener_open_issue.yml new file mode 100644 index 0000000000000..303e8d5147fce --- /dev/null +++ b/.github/workflows/gardener_open_issue.yml @@ -0,0 +1,18 @@ +# Add new issues Gardener project board for triage +name: Add issue to Gardener board + +on: + issues: + types: + - opened + +jobs: + add-to-project: + name: Add issue to Gardener project board + runs-on: ubuntu-24.04 + timeout-minutes: 5 + steps: + - uses: actions/add-to-project@v1.0.2 + with: + project-url: https://github.com/orgs/vectordotdev/projects/49 + github-token: ${{ secrets.GH_PROJECT_PAT }} diff --git a/.github/workflows/gardener_open_pr.yml b/.github/workflows/gardener_open_pr.yml new file mode 100644 index 0000000000000..c299c9318a42a --- /dev/null +++ b/.github/workflows/gardener_open_pr.yml @@ -0,0 +1,43 @@ +# Add new pull requests to Gardener project board for triage +name: Add PR to Gardener board + +on: + pull_request_target: + types: + - opened + - reopened + +jobs: + add-contributor-to-project: + name: Add contributor PR to Gardener project board + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: ${{ github.actor != 'dependabot[bot]' }} + steps: + - name: Generate authentication token + id: generate_token + uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a + with: + app_id: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_ID }} + private_key: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_PRIVATE_KEY }} + - uses: tspascoal/get-user-teams-membership@v3 + id: checkVectorMember + with: + username: ${{ github.actor }} + team: vector + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + - uses: actions/add-to-project@v1.0.2 + if: ${{ steps.checkVectorMember.outputs.isTeamMember == 'false' }} + with: + project-url: https://github.com/orgs/vectordotdev/projects/49 + github-token: ${{ secrets.GH_PROJECT_PAT }} + add-dependabot-to-project: + name: Add dependabot PR to Gardener project board + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: ${{ github.actor == 'dependabot[bot]' }} + steps: + - uses: actions/add-to-project@v1.0.2 + with: + project-url: https://github.com/orgs/vectordotdev/projects/49 + github-token: ${{ secrets.GH_PROJECT_PAT }} diff --git a/.github/workflows/gardener_remove_waiting_author.yml b/.github/workflows/gardener_remove_waiting_author.yml new file mode 100644 index 0000000000000..a9e7f52cb3660 --- /dev/null +++ b/.github/workflows/gardener_remove_waiting_author.yml @@ -0,0 +1,15 @@ +name: Remove Awaiting Author Label + +on: + pull_request: + types: [synchronize, review_requested] + +jobs: + remove_label: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + steps: + - uses: actions/checkout@v4 + - uses: actions-ecosystem/action-remove-labels@v1 + with: + labels: "meta: awaiting author" diff --git a/.github/workflows/install-sh.yml b/.github/workflows/install-sh.yml index 87d67c57cf705..d33a10e4d08d1 100644 --- a/.github/workflows/install-sh.yml +++ b/.github/workflows/install-sh.yml @@ -1,47 +1,50 @@ name: Update install.sh Suite on: - push: - branches: - - master - paths: - - '.github/workflows/install-sh.yml' - - 'distribution/install.sh' + workflow_call: workflow_dispatch: +permissions: + statuses: write jobs: - sync-install: - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v1 - - run: sudo apt-get install --yes python3-setuptools python3.6-dev - - run: pip3 install awscli --upgrade --user - - env: - AWS_ACCESS_KEY_ID: "${{ secrets.CI_AWS_ACCESS_KEY_ID }}" - AWS_SECRET_ACCESS_KEY: "${{ secrets.CI_AWS_SECRET_ACCESS_KEY }}" - run: make sync-install - test-install: - needs: - - sync-install runs-on: ubuntu-20.04 + timeout-minutes: 5 steps: - - run: sudo apt-get install --yes curl bc - - run: curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | bash -s -- -y + - name: (PR comment) Get PR branch + if: ${{ github.event_name == 'issue_comment' }} + uses: xt0rted/pull-request-comment-branch@v3 + id: comment-branch + + - name: (PR comment) Set latest commit status as pending + if: ${{ github.event_name == 'issue_comment' }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ steps.comment-branch.outputs.head_sha }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Update install.sh Suite + status: pending + + - name: (PR comment) Checkout PR branch + if: ${{ github.event_name == 'issue_comment' }} + uses: actions/checkout@v4 + with: + ref: ${{ steps.comment-branch.outputs.head_ref }} + + - name: Checkout branch + if: ${{ github.event_name != 'issue_comment' }} + uses: actions/checkout@v4 + + - run: sudo apt-get install --yes bc + - run: bash distribution/install.sh -- -y - run: ~/.vector/bin/vector --version - install-shell-failure: - name: install-shell-failure - if: failure() - needs: - - sync-install - - test-install - runs-on: ubuntu-20.04 - steps: - - name: Discord notification - env: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@0.3.0 - with: - args: "Update of sh.vector.dev failed: " + - name: (PR comment) Set latest commit status as ${{ job.status }} + if: github.event_name == 'issue_comment' + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ steps.comment-branch.outputs.head_sha }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Update install.sh Suite + status: ${{ job.status }} diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 1d293e914bb33..737884eb37bce 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -1,339 +1,65 @@ -name: Integration Test Suite +# Integration Test +# +# This workflow is used to run an integration test on demand. +# An input for the test name needs to be provided. +# TODO: check if the input is "all" , and run all, without a timeout? + +name: Integration Test on: - push: - branches: - - master - paths: - - ".github/workflows/integration-test.yml" - - ".cargo/**" - - "benches/**" - - "lib/**" - - "proto/**" - - "scripts/**" - - "skaffold/**" - - "src/**" - - "tests/**" - - "build.rs" - - "Cargo.lock" - - "Cargo.toml" - - "Makefile" - - "rust-toolchain" workflow_dispatch: + inputs: + test_name: + description: "Which integration to test." + required: true + type: string env: - AUTOINSTALL: true AWS_ACCESS_KEY_ID: "dummy" AWS_SECRET_ACCESS_KEY: "dummy" + AXIOM_TOKEN: ${{ secrets.AXIOM_TOKEN }} + TEST_APPSIGNAL_PUSH_API_KEY: ${{ secrets.TEST_APPSIGNAL_PUSH_API_KEY }} CONTAINER_TOOL: "docker" + DD_ENV: "ci" + DD_API_KEY: ${{ secrets.DD_API_KEY }} RUST_BACKTRACE: full - RUST_TEST_THREADS: 1 TEST_LOG: vector=debug VERBOSE: true CI: true PROFILE: debug jobs: - cancel-previous: - name: Cancel redundant jobs - runs-on: ubuntu-20.04 - timeout-minutes: 3 - if: github.ref != 'refs/heads/master' - steps: - - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ secrets.GITHUB_TOKEN }} - - test-integration-aws: - name: Integration - Linux, AWS - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-aws - - test-integration-clickhouse: - name: Integration - Linux, Clickhouse - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: make slim-builds - - run: make test-integration-clickhouse - - test-integration-docker-logs: - name: Integration - Linux, Docker - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-docker-logs - - test-integration-elasticsearch: - name: Integration - Linux, ES - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-elasticsearch - - test-integration-gcp: - name: Integration - Linux, GCP - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-gcp - - test-integration-humio: - name: Integration - Linux, Humio - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-humio - - test-integration-influxdb: - name: Integration - Linux, Influx + test-integration: runs-on: ubuntu-20.04 + timeout-minutes: 40 + if: inputs.if || github.event_name == 'workflow_dispatch' steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-influxdb + - name: (PR comment) Get PR branch + if: ${{ github.event_name == 'issue_comment' }} + uses: xt0rted/pull-request-comment-branch@v3 + id: comment-branch - test-integration-kafka: - name: Integration - Linux, Kafka - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 + - name: (PR comment) Checkout PR branch + if: ${{ github.event_name == 'issue_comment' }} + uses: actions/checkout@v4 with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-kafka + ref: ${{ steps.comment-branch.outputs.head_ref }} - test-integration-loki: - name: Integration - Linux, Loki - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-loki + - name: Checkout branch + if: ${{ github.event_name != 'issue_comment' }} + uses: actions/checkout@v4 - test-integration-mongodb_metrics: - name: Integration - Linux, MongoDB Metrics - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-mongodb_metrics + - run: sudo npm -g install @datadog/datadog-ci - test-integration-nats: - name: Integration - Linux, NATS - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-nats + - run: make test-integration-${{ inputs.test_name }} + env: + TEST_DATADOG_API_KEY: ${{ secrets.CI_TEST_DATADOG_API_KEY }} - test-integration-nginx: - name: Integration - Linux, Nginx Metrics - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-nginx + - name: Upload test results + run: scripts/upload-test-results.sh + if: always() - test-integration-prometheus: - name: Integration - Linux, Prometheus - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-prometheus - - test-integration-pulsar: - name: Integration - Linux, Pulsar - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-pulsar - - test-integration-splunk: - name: Integration - Linux, Splunk - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-integration-splunk - - master-failure: - name: master-failure - if: failure() && github.ref == 'refs/heads/master' - needs: - - cancel-previous - - test-integration-aws - - test-integration-clickhouse - - test-integration-docker-logs - - test-integration-elasticsearch - - test-integration-gcp - - test-integration-humio - - test-integration-influxdb - - test-integration-kafka - - test-integration-loki - - test-integration-pulsar - - test-integration-splunk - runs-on: ubuntu-20.04 - steps: - - name: Discord notification - env: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@0.3.0 - with: - args: "Master integration tests failed: " + - run: make test-integration-${{ inputs.test_name }}-cleanup + if: ${{ always() }} + env: + TEST_DATADOG_API_KEY: ${{ secrets.CI_TEST_DATADOG_API_KEY }} diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml new file mode 100644 index 0000000000000..42101b9f68e0b --- /dev/null +++ b/.github/workflows/integration.yml @@ -0,0 +1,175 @@ +# Integration Test Suite +# +# This workflow runs the integration tests. If the workflow is triggered in the merge queue, all integration tests +# are run. If the workflow is triggered in a PR commit, then the files changed in the PR are evaluated to determine +# if any integration tests will run. + +name: Integration Test Suite + +on: + workflow_dispatch: + pull_request: + merge_group: + types: [checks_requested] + +concurrency: + # `github.event.number` exists for pull requests, otherwise fall back to SHA for merge queue + group: ${{ github.workflow }}-${{ github.event.number || github.event.merge_group.head_sha }} + cancel-in-progress: true + +env: + AWS_ACCESS_KEY_ID: "dummy" + AWS_SECRET_ACCESS_KEY: "dummy" + CONTAINER_TOOL: "docker" + DD_ENV: "ci" + DD_API_KEY: ${{ secrets.DD_API_KEY }} + TEST_DATADOG_API_KEY: ${{ secrets.CI_TEST_DATADOG_API_KEY }} + TEST_APPSIGNAL_PUSH_API_KEY: ${{ secrets.TEST_APPSIGNAL_PUSH_API_KEY }} + AXIOM_TOKEN: ${{ secrets.AXIOM_TOKEN }} + RUST_BACKTRACE: full + TEST_LOG: vector=debug + VERBOSE: true + CI: true + PROFILE: debug + # observing issues fetching boringssl via HTTPS in the OSX build, seeing if this helps + # can be removed when we switch back to the upstream openssl-sys crate + CARGO_NET_GIT_FETCH_WITH_CLI: true + +jobs: + changes: + if: github.event_name == 'pull_request' || github.event_name == 'merge_group' + uses: ./.github/workflows/changes.yml + with: + base_ref: ${{ github.event.pull_request.base.ref || github.event.merge_group.base_ref }} + head_ref: ${{ github.event.pull_request.head.ref || github.event.merge_group.head_ref }} + source: false + int_tests: true + secrets: inherit + + check-all: + runs-on: ubuntu-latest + needs: changes + outputs: + should_run: ${{ steps.check.outputs.should_run }} + steps: + - name: Download JSON artifact from changes.yml + uses: actions/download-artifact@v4 + with: + name: int_tests_changes + + - name: Check if all values are false + id: check + run: | + # Always run the suite when the PR is in the merge queue + if [[ "${{ github.event_name }}" == "merge_group" ]] ; then + echo "should_run=true" >> $GITHUB_OUTPUT + exit 0 + fi + + # Check if all values are 'false' + json=$(cat int_tests_changes.json) + all_false=$(echo "$json" | jq -r 'to_entries | all(.value == false)') + + if [[ "$all_false" == "true" ]]; then + echo "No changes detected. Skipping integration tests." + echo "should_run=false" >> $GITHUB_OUTPUT + else + echo "Detected changes. Proceeding with integration tests." + echo "should_run=true" >> $GITHUB_OUTPUT + fi + + setup: + runs-on: ubuntu-latest + needs: check-all + if: ${{ needs.check-all.outputs.should_run == 'true' }} + outputs: + can_access_secrets: ${{ steps.secret_access_check.outputs.can_access_secrets }} + steps: + - uses: actions/checkout@v4 + + - run: sudo npm -g install @datadog/datadog-ci + - run: sudo -E bash scripts/ci-free-disk-space.sh + - run: docker image prune -af ; docker container prune -f + + - name: Determine if secrets are defined (PR author is team member) + id: secret_access_check + if: github.event_name == 'pull_request' + env: + GH_APP_DATADOG_VECTOR_CI_APP_ID: ${{ secrets.GH_APP_DATADOG_VECTOR_CI_APP_ID }} + run: | + if [[ "$GH_APP_DATADOG_VECTOR_CI_APP_ID" != "" ]] ; then + echo "can_access_secrets=true" >> $GITHUB_OUTPUT + else + echo "can_access_secrets=false" >> $GITHUB_OUTPUT + fi + + integration-tests: + runs-on: ubuntu-20.04 + needs: + - changes + - setup + if: ${{ needs.setup.outputs.can_access_secrets == 'true' }} + strategy: + matrix: + # TODO: Add "splunk" back once https://github.com/vectordotdev/vector/issues/22379 is fixed. + # If you modify this list, please also update the `int_tests` job in changes.yml. + service: [ + "amqp", "appsignal", "aws", "axiom", "azure", "clickhouse", "databend", "datadog-agent", + "datadog-logs", "datadog-metrics", "datadog-traces", "dnstap", "docker-logs", "elasticsearch", + "eventstoredb", "fluent", "gcp", "greptimedb", "http-client", "influxdb", "kafka", "logstash", + "loki", "mongodb", "nats", "nginx", "opentelemetry", "postgres", "prometheus", "pulsar", + "redis", "webhdfs" + ] + timeout-minutes: 90 + steps: + - uses: actions/checkout@v4 + with: + submodules: "recursive" + + - run: docker image prune -af ; docker container prune -f + + - name: Download JSON artifact from changes.yml + uses: actions/download-artifact@v4 + with: + name: int_tests_changes + + - name: Run Integration Tests for ${{ matrix.service }} + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + max_attempts: 3 + command: | + # Parse the JSON and check if the specific integration test should run. + should_run=$(jq '."${{ matrix.service }}"' int_tests_changes.json) + + # Check if any of the three conditions is true + if [[ "${{ github.event_name }}" == "merge_group" || \ + "${{ needs.changes.outputs.all-int }}" == "true" || \ + "$should_run" == "true" ]]; then + echo "Running test for ${{ matrix.service }}" + bash scripts/ci-int-e2e-test.sh int ${{ matrix.service }} + else + echo "Skipping ${{ matrix.service }} test as the value is false or conditions not met." + fi + + + integration-test-suite: + name: Integration Test Suite + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: always() + needs: + - changes + - check-all + - setup + - integration-tests + env: + FAILED: ${{ contains(needs.*.result, 'failure') }} + steps: + - run: | + echo "failed=${{ env.FAILED }}" + if [[ "$FAILED" == "true" ]] ; then + exit 1 + else + exit 0 + fi diff --git a/.github/workflows/k8s_e2e.yml b/.github/workflows/k8s_e2e.yml index 766359c792b99..cd8085b3f28e4 100644 --- a/.github/workflows/k8s_e2e.yml +++ b/.github/workflows/k8s_e2e.yml @@ -1,78 +1,123 @@ +# K8s E2E Suite +# +# This workflow runs under any of the following conditions: +# - manual dispatch in GH UI +# - on a PR commit if the kubernetes_logs source was changed +# - in the merge queue +# - on a schedule at midnight UTC Tue-Sat +# - on demand by either of the following comments in a PR: +# - '/ci-run-k8s' +# - '/ci-run-all' +# +# If the workflow trigger is the nightly schedule, all the k8s versions +# are run in the matrix, otherwise, only the latest is run. + name: K8S E2E Suite +permissions: + statuses: write + on: workflow_dispatch: - push: - branches: - - master - paths: - - ".github/workflows/k8s_e2e.yml" - - ".cargo/**" - - "benches/**" - - "lib/**" - - "proto/**" - - "scripts/**" - - "skaffold/**" - - "src/**" - - "tests/**" - - "build.rs" - - "Cargo.lock" - - "Cargo.toml" - - "Makefile" - - "rust-toolchain" - - "distribution/**" + workflow_call: pull_request: + merge_group: + types: [checks_requested] + schedule: + # At midnight UTC Tue-Sat + - cron: '0 0 * * 2-6' + +concurrency: + # In flight runs will be canceled through re-trigger in the merge queue, scheduled run, or if + # additional PR commits are pushed. The comment.html_url should always be unique. + # + # Note that technically this workflow can run on PRs which have code changes that affect K8s. Choosing not to add the PR commit to + # the concurrency group settings- since that would result in new PR commits canceling out manual runs on any PR that doesn't flag + # change detection. This is a "conservative" approach that means we may have some runs that could be canceled, but it's safer than + # having user's runs canceled when they shouldn't be. In practice this shouldn't happen very often given this component does not change + # often so any increased cost from the conservative approach should be negligible. + group: ${{ github.workflow }}-${{ github.event.comment.html_url || github.ref || github.event.schedule }} + cancel-in-progress: true env: - AUTOINSTALL: true AWS_ACCESS_KEY_ID: "dummy" AWS_SECRET_ACCESS_KEY: "dummy" CONTAINER_TOOL: "docker" RUST_BACKTRACE: full - RUST_TEST_THREADS: 1 TEST_LOG: vector=debug VERBOSE: true + DISABLE_MOLD: true CI: true PROFILE: debug jobs: - cancel-previous: - name: Cancel redundant jobs - runs-on: ubuntu-20.04 - timeout-minutes: 3 - if: github.ref != 'refs/heads/master' - steps: - - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ secrets.GITHUB_TOKEN }} + changes: + # Only evaluate files changed on pull request trigger + if: github.event_name == 'pull_request' + uses: ./.github/workflows/changes.yml + with: + base_ref: ${{ github.event.pull_request.base.ref }} + head_ref: ${{ github.event.pull_request.head.ref }} + secrets: inherit build-x86_64-unknown-linux-gnu: name: Build - x86_64-unknown-linux-gnu runs-on: ubuntu-20.04 - if: | - !github.event.pull_request - || contains(github.event.pull_request.labels.*.name, 'ci-condition: k8s e2e tests enable') - || contains(github.event.pull_request.labels.*.name, 'ci-condition: k8s e2e all targets') + timeout-minutes: 45 + needs: changes + # Run this job even if `changes` job is skipped (non- pull request trigger) + if: ${{ !failure() && !cancelled() && (github.event_name != 'pull_request' || needs.changes.outputs.k8s == 'true') }} + # cargo-deb requires a release build, but we don't need optimizations for tests + env: + CARGO_PROFILE_RELEASE_OPT_LEVEL: 0 + CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 256 + CARGO_INCREMENTAL: 0 steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 + - name: (PR review) Set latest commit status as pending + if: ${{ github.event_name == 'pull_request_review' }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + status: pending + + - name: (PR review) Checkout PR branch + if: ${{ github.event_name == 'pull_request_review' }} + uses: actions/checkout@v4 + with: + ref: ${{ github.event.review.commit_id }} + + - name: Checkout branch + if: ${{ github.event_name != 'pull_request_review' }} + uses: actions/checkout@v4 + + - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh + + - run: sudo -E bash scripts/ci-free-disk-space.sh + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh - run: bash scripts/environment/prepare.sh - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make package-deb-x86_64-unknown-linux-gnu - - uses: actions/upload-artifact@v2 + - run: VECTOR_VERSION="$(cargo vdev version)" make package-deb-x86_64-unknown-linux-gnu + + - uses: actions/upload-artifact@v4 with: name: e2e-test-deb-package path: target/artifacts/* - # Github Actions don't support `matrix` at the job-level `if:` condition. + - name: (PR review) Set latest commit status as 'failure' + uses: myrotvorets/set-commit-status-action@v2.0.1 + if: failure() && github.event_name == 'pull_request_review' + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + status: 'failure' + + # GitHub Actions don't support `matrix` at the job-level `if:` condition. # We apply this workaround - compute `matrix` in a preceding job, and assign # it's value dynamically at the actual test job. # This approach can be advanced further by, for instance, dynamically @@ -80,44 +125,44 @@ jobs: # See https://github.community/t/feature-request-and-use-case-example-to-allow-matrix-in-if-s/126067 compute-k8s-test-plan: name: Compute K8s test plan - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 + timeout-minutes: 5 + needs: changes + # Run this job even if `changes` job is skipped + if: ${{ !failure() && !cancelled() && (github.event_name != 'pull_request' || needs.changes.outputs.k8s == 'true') }} outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} - if: | - !github.event.pull_request - || contains(github.event.pull_request.labels.*.name, 'ci-condition: k8s e2e tests enable') - || contains(github.event.pull_request.labels.*.name, 'ci-condition: k8s e2e all targets') steps: - - uses: actions/github-script@v3.1 + - uses: actions/github-script@v7.0.1 id: set-matrix with: script: | // Parameters. const minikube_version = [ - "v1.15.1", + "v1.33.1", ] + + // Aim to test against oldest supported k8s cloud-provider versions + // https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html + // https://cloud.google.com/kubernetes-engine/docs/release-notes + // https://docs.microsoft.com/en-us/azure/aks/supported-kubernetes-versions?tabs=azure-cli#aks-kubernetes-release-calendar const kubernetes_version = [ - { version: "v1.19.2", is_essential: true }, - { version: "v1.18.9" }, - { version: "v1.17.12" }, - { version: "v1.16.15" }, // v1.16.13 is broken, see https://github.com/kubernetes/kubernetes/issues/93194 - { version: "v1.15.12" }, - { version: "v1.14.10" }, + { version: "v1.23.3", is_essential: true }, + { version: "v1.22.5", is_essential: false }, + { version: "v1.21.8", is_essential: false }, + { version: "v1.20.14", is_essential: false }, + { version: "v1.19.8", is_essential: false }, ] const container_runtime = [ "docker", "containerd", - "crio", + // https://github.com/kubernetes/minikube/issues/12928 + // "crio", ] - const ci_condition_label = 'ci-condition: k8s e2e all targets' - // Planing. - const is_in_pull_request = !!context.payload.pull_request; - const should_test_all_targets = ( - !is_in_pull_request || - context.payload.pull_request.labels.some(label => label.name === ci_condition_label) - ) - const filter_targets = array => array.filter(val => should_test_all_targets || val.is_essential) + // Run all versions if triggered by nightly schedule. Otherwise only run latest. + const run_all = context.eventName == "schedule"; + const filter_targets = array => array.filter(val => run_all || val.is_essential) const matrix = { minikube_version, @@ -136,44 +181,87 @@ jobs: test-e2e-kubernetes: name: K8s ${{ matrix.kubernetes_version.version }} / ${{ matrix.container_runtime }} (${{ matrix.kubernetes_version.role }}) runs-on: ubuntu-20.04 + timeout-minutes: 45 needs: - build-x86_64-unknown-linux-gnu - compute-k8s-test-plan + # because `changes` job might be skipped + if: always() && needs.build-x86_64-unknown-linux-gnu.result == 'success' && needs.compute-k8s-test-plan.result == 'success' strategy: matrix: ${{ fromJson(needs.compute-k8s-test-plan.outputs.matrix) }} fail-fast: false steps: - - name: Checkout - uses: actions/checkout@v2 - - uses: actions/download-artifact@v2 + - name: (PR review) Get PR branch + if: ${{ github.event_name == 'pull_request_review' }} + uses: xt0rted/pull-request-comment-branch@v3 + id: comment-branch + + - name: (PR review) Checkout PR branch + if: ${{ github.event_name == 'pull_request_review' }} + uses: actions/checkout@v4 + with: + ref: ${{ steps.comment-branch.outputs.head_ref }} + + - name: Checkout branch + if: ${{ github.event_name != 'pull_request_review' }} + uses: actions/checkout@v4 + + - uses: actions/download-artifact@v4 with: name: e2e-test-deb-package path: target/artifacts + - name: Setup Minikube run: scripts/ci-setup-minikube.sh env: KUBERNETES_VERSION: ${{ matrix.kubernetes_version.version }} MINIKUBE_VERSION: ${{ matrix.minikube_version }} CONTAINER_RUNTIME: ${{ matrix.container_runtime }} - - run: make slim-builds + - run: make test-e2e-kubernetes env: USE_MINIKUBE_CACHE: "true" SKIP_PACKAGE_DEB: "true" + CARGO_INCREMENTAL: 0 + + - name: (PR review) Set latest commit status as failure + uses: myrotvorets/set-commit-status-action@v2.0.1 + if: failure() && github.event_name == 'pull_request_review' + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + status: 'failure' - master-failure: - name: master-failure - if: failure() && github.ref == 'refs/heads/master' + final-result: + name: K8s E2E Suite + runs-on: ubuntu-24.04 + timeout-minutes: 5 needs: - - cancel-previous + - changes - build-x86_64-unknown-linux-gnu - compute-k8s-test-plan - test-e2e-kubernetes - runs-on: ubuntu-20.04 + if: always() + env: + FAILED: ${{ contains(needs.*.result, 'failure') }} steps: - - name: Discord notification - env: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@0.3.0 - with: - args: "Master k8s e2e tests failed: " + - name: (PR review) Get PR branch + if: github.event_name == 'pull_request_review' && env.FAILED != 'true' + uses: xt0rted/pull-request-comment-branch@v3 + id: comment-branch + + - name: (PR review) Submit PR result as success + if: github.event_name == 'pull_request_review' && env.FAILED != 'true' + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + status: 'success' + + - run: | + echo "failed=${{ env.FAILED }}" + if [[ "$FAILED" == "true" ]] ; then + exit 1 + else + exit 0 + fi diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 0000000000000..68baa1a388104 --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,16 @@ +name: "Pull Request Labeler" +on: +- pull_request_target + +jobs: + label: + runs-on: ubuntu-20.04 + timeout-minutes: 5 + permissions: + contents: read + pull-requests: write + steps: + - uses: actions/labeler@v5 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + sync-labels: true diff --git a/.github/workflows/master_merge_queue.yml b/.github/workflows/master_merge_queue.yml new file mode 100644 index 0000000000000..c09a317bd2deb --- /dev/null +++ b/.github/workflows/master_merge_queue.yml @@ -0,0 +1,132 @@ +# Master Merge Queue Test Suite +# +# This workflow orchestrates a collection of workflows that are required for the merge queue check. +# +# Most of the workflows that are jobs within this one, are able to be run on demand +# by issuing a PR comment with the respective command to trigger said workflow. +# +# The design of this workflow relies on the first real job "changes" to detect file +# changes against the base, and each downstream workflow after that will only be +# called if the files for that area have changed. +# + +name: Master Merge Queue Test Suite + +on: + # Only want to run this on merge queue, but because GH doesn't allow specifying different required checks + # for pull request and merge queue, we need to "run" it in pull request, but in the jobs we will just auto pass. + pull_request: + merge_group: + types: [checks_requested] + +permissions: + statuses: write + +concurrency: + # `github.ref` is unique for MQ runs and PRs + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + AWS_ACCESS_KEY_ID: "dummy" + AWS_SECRET_ACCESS_KEY: "dummy" + CONTAINER_TOOL: "docker" + DD_ENV: "ci" + DD_API_KEY: ${{ secrets.DD_API_KEY }} + RUST_BACKTRACE: full + TEST_LOG: vector=debug + VERBOSE: true + CI: true + PROFILE: debug + # observing issues fetching boringssl via HTTPS in the OSX build, seeing if this helps + # can be removed when we switch back to the upstream openssl-sys crate + CARGO_NET_GIT_FETCH_WITH_CLI: true + +jobs: + # This is the entry job which is required for all the actual tests in this workflow. + # If we don't run this job (such as in a pull request), then by consequence all downstream + # test jobs are not run. This allows us to not have to check for merge group in each job. + changes: + if: ${{ github.event_name == 'merge_group' }} + uses: ./.github/workflows/changes.yml + with: + base_ref: ${{ github.event.merge_group.base_ref }} + head_ref: ${{ github.event.merge_group.head_ref }} + secrets: inherit + + test-cli: + if: needs.changes.outputs.source == 'true' + uses: ./.github/workflows/cli.yml + needs: changes + secrets: inherit + + test-misc: + if: needs.changes.outputs.source == 'true' + uses: ./.github/workflows/misc.yml + needs: changes + secrets: inherit + + test-environment: + uses: ./.github/workflows/environment.yml + needs: changes + secrets: inherit + + check-msrv: + if: needs.changes.outputs.source == 'true' + uses: ./.github/workflows/msrv.yml + needs: changes + secrets: inherit + + cross-linux: + # We run cross checks when dependencies change to ensure they still build. + # This helps us avoid adopting dependencies that aren't compatible with other architectures. + if: needs.changes.outputs.dependencies == 'true' + uses: ./.github/workflows/cross.yml + needs: changes + secrets: inherit + + unit-mac: + if: needs.changes.outputs.source == 'true' + uses: ./.github/workflows/unit_mac.yml + needs: changes + secrets: inherit + + unit-windows: + if: needs.changes.outputs.source == 'true' + uses: ./.github/workflows/unit_windows.yml + needs: changes + secrets: inherit + + install-sh: + if: needs.changes.outputs.install == 'true' + uses: ./.github/workflows/install-sh.yml + needs: changes + secrets: inherit + + master-merge-queue-check: + name: Master Merge Queue Suite + # Always run this so that pull_request triggers are marked as success. + if: always() + runs-on: ubuntu-20.04 + timeout-minutes: 5 + needs: + - changes + - test-cli + - test-misc + - test-environment + - check-msrv + - cross-linux + - unit-mac + - unit-windows + - install-sh + env: + FAILED: ${{ contains(needs.*.result, 'failure') }} + steps: + - name: exit + run: | + echo "failed=${{ env.FAILED }}" + if [[ "$FAILED" == "true" ]] ; then + exit 1 + else + exit 0 + fi diff --git a/.github/workflows/misc.yml b/.github/workflows/misc.yml new file mode 100644 index 0000000000000..271893191a1b6 --- /dev/null +++ b/.github/workflows/misc.yml @@ -0,0 +1,62 @@ +name: Miscellaneous - Linux + +on: + workflow_call: + +permissions: + statuses: write + +jobs: + test-misc: + runs-on: ubuntu-20.04 + timeout-minutes: 60 + env: + CARGO_INCREMENTAL: 0 + steps: + - name: (PR review) Set latest commit status as pending + if: ${{ github.event_name == 'pull_request_review' }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Miscellaneous - Linux + status: pending + + - name: (PR review) Checkout review SHA + if: ${{ github.event_name == 'pull_request_review' }} + uses: actions/checkout@v4 + with: + ref: ${{ github.event.review.commit_id }} + + - name: Checkout branch + if: ${{ github.event_name != 'pull_request_review' }} + uses: actions/checkout@v4 + + - uses: actions/cache@v4 + name: Cache Cargo registry + index + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - run: sudo -E bash scripts/ci-free-disk-space.sh + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: bash scripts/environment/prepare.sh + - run: echo "::add-matcher::.github/matchers/rust.json" + - run: make test-behavior + - run: make check-examples + - run: make test-docs + + - name: (PR review) Set latest commit status as ${{ job.status }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + if: always() && github.event_name == 'pull_request_review' + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Miscellaneous - Linux + status: ${{ job.status }} diff --git a/.github/workflows/msrv.yml b/.github/workflows/msrv.yml new file mode 100644 index 0000000000000..baa2b5c2ed70e --- /dev/null +++ b/.github/workflows/msrv.yml @@ -0,0 +1,22 @@ +name: Check minimum supported Rust version + +on: + workflow_call: + +env: + RUST_BACKTRACE: full + CI: true + PROFILE: debug + # observing issues fetching boringssl via HTTPS in the OSX build, seeing if this helps + # can be removed when we switch back to the upstream openssl-sys crate + CARGO_NET_GIT_FETCH_WITH_CLI: true + +jobs: + check-msrv: + runs-on: ubuntu-20.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - run: cargo install cargo-msrv --version 0.15.1 + - run: cargo msrv verify diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 9173cde9867d9..ec200153b318c 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,586 +1,18 @@ -name: nightly +name: Nightly + +permissions: + contents: write + packages: write on: workflow_dispatch: schedule: - - cron: "0 4 * * *" - -env: - AUTOINSTALL: true - CHANNEL: nightly - VERBOSE: true - CI: true - DEBIAN_FRONTEND: noninteractive + - cron: "0 5 * * 2-6" # Runs at 5:00 AM UTC, Tuesday through Saturday jobs: - build-x86_64-unknown-linux-musl-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - run: make ci-sweep - - env: - PASS_FEATURES: "default-cmake" - run: make package-x86_64-unknown-linux-musl-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl.tar.gz" - - build-x86_64-unknown-linux-gnu-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: make ci-sweep - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - env: - PASS_FEATURES: "default" - run: make package-x86_64-unknown-linux-gnu-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu.tar.gz" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm" - - build-aarch64-unknown-linux-musl-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: make ci-sweep - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - env: - DOCKER_PRIVILEGED: "true" - PASS_FEATURES: "default-cmake" - run: make package-aarch64-unknown-linux-musl-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl.tar.gz" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-arm64.deb - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-arm64.deb" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm" - - build-aarch64-unknown-linux-gnu-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: make ci-sweep - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - env: - DOCKER_PRIVILEGED: "true" - PASS_FEATURES: "default" - run: make package-aarch64-unknown-linux-gnu-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu.tar.gz" - - build-armv7-unknown-linux-gnueabihf-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: make ci-sweep - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - env: - DOCKER_PRIVILEGED: "true" - run: make package-armv7-unknown-linux-gnueabihf-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf.tar.gz" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-armhf.deb - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-armhf.deb" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm" - - build-armv7-unknown-linux-musleabihf-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - run: make ci-sweep - - env: - DOCKER_PRIVILEGED: "true" - run: make package-armv7-unknown-linux-musleabihf - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf.tar.gz" - - build-x86_64-apple-darwin-packages: - runs-on: macos-10.15 - steps: - - uses: actions/checkout@v1 - - name: "Upgrade bash" - run: brew install bash - - name: "Install realpath dependency" - run: brew install coreutils - - name: Add version variable - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - shell: bash - - name: "Build archive" - env: - TARGET: "x86_64-apple-darwin" - NATIVE_BUILD: true - run: | - export PATH="$HOME/.cargo/bin:$PATH" - make package - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz" - - build-x86_64-pc-windows-msvc-packages: - runs-on: windows-2019 - steps: - - uses: actions/checkout@v1 - - name: "Add Vector version" - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - shell: bash - - name: "Download Perl" - shell: bash - env: - VERSION: "5.32.0.1" - run: | - curl -sSf https://strawberryperl.com/download/$VERSION/strawberry-perl-$VERSION-64bit.msi > perl-installer.msi - - name: "Install Perl" - shell: cmd # msiexec fails when called from bash - run: | - msiexec /quiet /i perl-installer.msi - del perl-installer.msi - - name: "Download CMake" - shell: bash - env: - VERSION: "3.15.5" - run: | - curl -sSfL https://github.com/Kitware/CMake/releases/download/v$VERSION/cmake-$VERSION-win64-x64.msi > cmake-installer.msi - - name: "Install CMake" - shell: cmd # msiexec fails when called from bash - run: | - msiexec /quiet /i cmake-installer.msi - del cmake-installer.msi - - name: "Install Wix" - shell: bash - run: | - mkdir -p /c/wix - cd /c/wix - curl -sSfL https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip > wix-binaries.zip - unzip wix-binaries.zip - rm wix-binaries.zip - - name: "Build archive" - shell: bash - run: | - export PATH="$HOME/.cargo/bin:/c/Strawberry/perl/bin:/c/Program Files/CMake/bin:$PATH" - export RUSTFLAGS=-Ctarget-feature=+crt-static - export FEATURES="default-msvc" - export ARCHIVE_TYPE="zip" - export KEEP_SYMBOLS="true" - export RUST_LTO="" - export TARGET="x86_64-pc-windows-msvc" - export NATIVE_BUILD="true" - make package - - name: "Build package" - shell: bash - run: | - export PATH="/c/wix:$PATH" - ./scripts/package-msi.sh - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc.zip - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc.zip" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x64.msi - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x64.msi" - - deb-verify: - needs: - - build-x86_64-unknown-linux-gnu-packages - runs-on: ubuntu-20.04 - strategy: - matrix: - container: ["ubuntu:14.04","ubuntu:16.04","ubuntu:18.04","ubuntu:20.04","debian:8","debian:9","debian:10"] - container: - image: ${{ matrix.container }} - steps: - - name: checkout - uses: actions/checkout@v1 - - run: | - apt-get update && \ - apt-get install -y \ - ca-certificates \ - curl \ - git \ - systemd \ - make - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: target/artifacts - - name: First install of DEB package. - run: | - dpkg -i target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb && vector --version - - name: Second install of DEB package. - run: | - dpkg -i target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb && vector --version - - rpm-verify: - needs: - - build-x86_64-unknown-linux-gnu-packages - runs-on: ubuntu-20.04 - strategy: - matrix: - container: ["centos:7","centos:8","amazonlinux:1","amazonlinux:2","fedora:33"] - container: - image: ${{ matrix.container }} - steps: - - name: checkout - uses: actions/checkout@v1 - - run: | - yum update -y && \ - yum install -y \ - ca-certificates \ - curl \ - git \ - systemd \ - tar \ - make - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm - path: target/artifacts - - name: First install of RPM package. - run: | - rpm -i --replacepkgs target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm && vector --version - - name: Second install of RPM package. - run: | - rpm -i --replacepkgs target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm && vector --version - - osx-verify: - runs-on: macos-10.15 - needs: - - build-x86_64-apple-darwin-packages - steps: - - name: checkout - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz - path: target/artifacts - - run: | - tar -xvf target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz && vector-x86_64-apple-darwin/bin/vector --version - - release-docker: - runs-on: ubuntu-18.04 - needs: - - build-aarch64-unknown-linux-musl-packages - - build-x86_64-unknown-linux-gnu-packages - - build-x86_64-unknown-linux-musl-packages - - build-armv7-unknown-linux-musleabihf-packages - - build-armv7-unknown-linux-gnueabihf-packages - - deb-verify - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.CI_DOCKER_USERNAME }} - password: ${{ secrets.CI_DOCKER_PASSWORD }} - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - with: - platforms: all - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v1 - with: - version: latest - install: true - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-arm64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armhf.deb - path: target/artifacts - - env: - PLATFORM: "linux/amd64,linux/arm64,linux/arm/v7" - run: | - make release-docker - - release-s3: - runs-on: ubuntu-18.04 - needs: - - build-x86_64-unknown-linux-gnu-packages - - build-x86_64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-gnu-packages - - build-x86_64-apple-darwin-packages - - build-x86_64-pc-windows-msvc-packages - - build-armv7-unknown-linux-musleabihf-packages - - build-armv7-unknown-linux-gnueabihf-packages - - deb-verify - - rpm-verify - - osx-verify - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-arm64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armhf.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc.zip - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x64.msi - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm - path: target/artifacts - - env: - AWS_ACCESS_KEY_ID: "${{ secrets.CI_AWS_ACCESS_KEY_ID }}" - AWS_SECRET_ACCESS_KEY: "${{ secrets.CI_AWS_SECRET_ACCESS_KEY }}" - run: make release-s3 - - release-cloudsmith: - runs-on: ubuntu-20.04 - needs: - - build-x86_64-unknown-linux-gnu-packages - - build-aarch64-unknown-linux-musl-packages - - build-armv7-unknown-linux-gnueabihf-packages - - deb-verify - - rpm-verify - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-arm64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armhf.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm - path: target/artifacts - - name: Push amd64 deb - id: push-deb-amd64 - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "deb" - owner: "timber" - repo: "vector-nightly" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb" - - name: Push arm64 deb - id: push-deb-arm64 - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "deb" - owner: "timber" - repo: "vector-nightly" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-arm64.deb" - - name: Push armhf deb - id: push-deb-armhf - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "deb" - owner: "timber" - repo: "vector-nightly" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-armhf.deb" - - name: Push x86_64 GNU RPM - id: push-rpm-x86_64-gnu - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "rpm" - owner: "timber" - repo: "vector-nightly" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm" - - name: Push aarch64 RPM - id: push-rpm-aarch64 - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "rpm" - owner: "timber" - repo: "vector-nightly" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm" - - name: Push armv7-gnu RPM - id: push-rpm-armv7-gnu - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "rpm" - owner: "timber" - repo: "vector-nightly" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm" - - release-helm: - runs-on: ubuntu-18.04 - needs: - # This is not strictly required, but ensures that Helm Chart doesn't - # appear before the image it refers to. - - release-docker - steps: - - uses: actions/checkout@v1 - - name: Install Helm - run: scripts/environment/setup-helm.sh - - name: Release Helm Chart - env: - AWS_ACCESS_KEY_ID: "${{ secrets.CI_AWS_ACCESS_KEY_ID }}" - AWS_SECRET_ACCESS_KEY: "${{ secrets.CI_AWS_SECRET_ACCESS_KEY }}" - run: make release-helm - - nightly-failure: - name: nightly-failure - if: failure() && github.ref == 'refs/heads/master' - needs: - - build-x86_64-unknown-linux-gnu-packages - - build-x86_64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-gnu-packages - - build-x86_64-apple-darwin-packages - - build-x86_64-pc-windows-msvc-packages - - build-armv7-unknown-linux-gnueabihf-packages - - build-armv7-unknown-linux-musleabihf-packages - - release-docker - - release-s3 - - release-cloudsmith - - release-helm - - deb-verify - - rpm-verify - - osx-verify - runs-on: ubuntu-20.04 - steps: - - name: Discord notification - env: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@0.3.0 - with: - args: "Master nightly failed: " + Nightly: + uses: ./.github/workflows/publish.yml + with: + git_ref: ${{ github.ref }} + channel: nightly + secrets: inherit diff --git a/.github/workflows/preview_site_trigger.yml b/.github/workflows/preview_site_trigger.yml new file mode 100644 index 0000000000000..3ec4da8d034ee --- /dev/null +++ b/.github/workflows/preview_site_trigger.yml @@ -0,0 +1,29 @@ +name: Call Build Preview + +on: + pull_request: + types: [opened, reopened, synchronize] + +jobs: + approval_check: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: ${{ contains(github.head_ref, 'website') }} + steps: + - name: Echo approval + run: | + echo "Workflow has been allowed to run for PR ${{ github.event.number }}. Setting artifacts and then continuing workflow runs" + + # Save the PR number and branch name to an artifact for use in subsequent jobs + - name: Save PR number and Branch name + run: | + mkdir -p ./pr + echo "${{ github.event.number }}" > ./pr/number + echo "${{ github.head_ref }}" >> ./pr/branch + + # Upload the artifact + - name: Upload PR information artifact + uses: actions/upload-artifact@v4 + with: + name: pr + path: pr/ diff --git a/.github/workflows/protobuf.yml b/.github/workflows/protobuf.yml new file mode 100644 index 0000000000000..20fa9f864f351 --- /dev/null +++ b/.github/workflows/protobuf.yml @@ -0,0 +1,28 @@ +name: Protobuf Compatibility + +on: + pull_request: + paths: + - "proto/**" + - "lib/vector-core/proto/**" + merge_group: + types: [checks_requested] + +concurrency: + # `github.ref` is unique for MQ runs and PRs + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + validate-protos: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + steps: + # Run `git checkout` + - uses: actions/checkout@v4 + # Install the `buf` CLI + - uses: bufbuild/buf-setup-action@v1.50.0 + # Perform breaking change detection against the `master` branch + - uses: bufbuild/buf-breaking-action@v1.1.4 + with: + against: "https://github.com/vectordotdev/vector.git#branch=master" diff --git a/.github/workflows/publish-docs.yml.bak b/.github/workflows/publish-docs.yml.bak deleted file mode 100644 index dfe6bd0c1380f..0000000000000 --- a/.github/workflows/publish-docs.yml.bak +++ /dev/null @@ -1,110 +0,0 @@ -name: Publish Docs If Updated - -on: - pull_request: - types: [closed, synchronize, opened, reopened] - branches: - - master - -jobs: - check-docs-diff: - runs-on: macos-latest - outputs: - diff: ${{ steps.git-diff.outputs.diff }} - steps: - - name: Checkout Vector - uses: actions/checkout@v2 - - - name: Check MD Diff - id: git-diff - uses: technote-space/get-diff-action@v3 - with: - PREFIX_FILTER: | - docs - - build: - runs-on: macos-latest - needs: check-docs-diff - if: ${{ needs.check-docs-diff.outputs.diff }} - steps: - - name: Clone Vector - uses: actions/checkout@v2 - with: - repository: timberio/vector - ref: ${{ github.ref }} - path: vector - - - name: Clone Vector Website - uses: actions/checkout@v2 - with: - # timberio/vector-website and gatsby-docs respectively - repository: timberio/vector-website - ref: gatsby-docs - path: vector-website - token: ${{ secrets.GH_ACCESS_TOKEN }} - - - name: Setup Cue - run: brew install cuelang/tap/cue - - - name: Setup Node - uses: actions/setup-node@v1 - - - name: Install Dependencies - working-directory: ./vector-website - run: | - npm config set '//registry.npmjs.org/:_authToken' "${{ secrets.NPM_TOKEN }}" - yarn install - cd ./plugins/gatsby-plugin-graphql-codegen && yarn install - - - name: Build Site - run: cd ./vector-website && yarn run build - - - name: Upload Artifact - uses: actions/upload-artifact@v2 - with: - name: gatsby-build - path: ./vector-website/public - - preview: - runs-on: macos-latest - needs: build - if: github.event.action != 'closed' - steps: - - name: Download Build Artifact - uses: actions/download-artifact@v2 - with: - name: gatsby-build - - - name: Setup Node - uses: actions/setup-node@v1 - - - name: Install Dependencies - run: npm install -g netlify-cli - - - name: Deploy Preview - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - run: netlify deploy --dir=./ --message="Preview from vector:${{ github.head_ref }}@${{ github.sha }} With timberio/vector-website@gatsby-docs" - - publish: - runs-on: macos-latest - needs: build - if: github.event.action == 'closed' && github.event.pull_request.merged == true - steps: - - name: Download Build Artifact - uses: actions/download-artifact@v2 - with: - name: gatsby-build - - - name: Setup Node - uses: actions/setup-node@v1 - - - name: Install Dependencies - run: npm install -g netlify-cli - - - name: Deploy Production - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - run: netlify deploy --dir=./ --prod --message="Deploy from vector:${{ github.head_ref }}@${{ github.sha }} With timberio/vector-website@gatsby-docs" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000000000..bf0c98b555b9e --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,868 @@ +name: Publish + +permissions: + contents: write + packages: write + +on: + workflow_call: + inputs: + git_ref: + type: string + required: true + # channel is the dir/namespace packages are organized into. + # Options are release/nightly/custom. + channel: + type: string + required: true + +env: + VERBOSE: true + CI: true + DISABLE_MOLD: true + DEBIAN_FRONTEND: noninteractive + CONTAINER_TOOL: docker + CARGO_PROFILE_RELEASE_LTO: fat + CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 1 + # observing issues fetching boringssl via HTTPS in the OSX build, seeing if this helps + # can be removed when we switch back to the upstream openssl-sys crate + CARGO_NET_GIT_FETCH_WITH_CLI: true + CHANNEL: ${{ inputs.channel }} + +jobs: + generate-publish-metadata: + name: Generate Publish-related Metadata + runs-on: ubuntu-20.04 + timeout-minutes: 5 + outputs: + vector_version: ${{ steps.generate-publish-metadata.outputs.vector_version }} + vector_build_desc: ${{ steps.generate-publish-metadata.outputs.vector_build_desc }} + vector_release_channel: ${{ steps.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Generate publish metadata + id: generate-publish-metadata + run: make ci-generate-publish-metadata + + build-x86_64-unknown-linux-musl-packages: + name: Build Vector for x86_64-unknown-linux-musl (.tar.gz) + runs-on: release-builder-linux + timeout-minutes: 60 + needs: generate-publish-metadata + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (Ubuntu-specific) + run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - name: Bootstrap runner environment (generic) + run: bash scripts/environment/prepare.sh + - name: Build Vector + run: make package-x86_64-unknown-linux-musl-all + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl + path: target/artifacts/vector* + + build-x86_64-unknown-linux-gnu-packages: + name: Build Vector for x86_64-unknown-linux-gnu (.tar.gz, DEB, RPM) + runs-on: release-builder-linux + needs: generate-publish-metadata + timeout-minutes: 60 + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (Ubuntu-specific) + run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - name: Bootstrap runner environment (generic) + run: bash scripts/environment/prepare.sh + - name: Build Vector + run: make package-x86_64-unknown-linux-gnu-all + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu + path: target/artifacts/vector* + + build-aarch64-unknown-linux-musl-packages: + name: Build Vector for aarch64-unknown-linux-musl (.tar.gz) + runs-on: release-builder-linux + timeout-minutes: 60 + needs: generate-publish-metadata + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (Ubuntu-specific) + run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - name: Bootstrap runner environment (generic) + run: bash scripts/environment/prepare.sh + - name: Build Vector + env: + DOCKER_PRIVILEGED: "true" + run: make package-aarch64-unknown-linux-musl-all + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl + path: target/artifacts/vector* + + build-aarch64-unknown-linux-gnu-packages: + name: Build Vector for aarch64-unknown-linux-gnu (.tar.gz) + runs-on: release-builder-linux + timeout-minutes: 60 + needs: generate-publish-metadata + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (Ubuntu-specific) + run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - name: Bootstrap runner environment (generic) + run: bash scripts/environment/prepare.sh + - name: Build Vector + env: + DOCKER_PRIVILEGED: "true" + run: make package-aarch64-unknown-linux-gnu-all + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu + path: target/artifacts/vector* + + build-armv7-unknown-linux-gnueabihf-packages: + name: Build Vector for armv7-unknown-linux-gnueabihf (.tar.gz) + runs-on: release-builder-linux + timeout-minutes: 60 + needs: generate-publish-metadata + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (Ubuntu-specific) + run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - name: Bootstrap runner environment (generic) + run: bash scripts/environment/prepare.sh + - name: Build Vector + env: + DOCKER_PRIVILEGED: "true" + run: make package-armv7-unknown-linux-gnueabihf-all + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf + path: target/artifacts/vector* + + build-armv7-unknown-linux-musleabihf-packages: + name: Build Vector for armv7-unknown-linux-musleabihf (.tar.gz) + runs-on: release-builder-linux + timeout-minutes: 60 + needs: generate-publish-metadata + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (Ubuntu-specific) + run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - name: Bootstrap runner environment (generic) + run: bash scripts/environment/prepare.sh + - name: Build Vector + env: + DOCKER_PRIVILEGED: "true" + run: make package-armv7-unknown-linux-musleabihf + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf + path: target/artifacts/vector* + + build-arm-unknown-linux-gnueabi-packages: + name: Build Vector for arm-unknown-linux-gnueabi (.tar.gz) + runs-on: release-builder-linux + timeout-minutes: 60 + needs: generate-publish-metadata + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (Ubuntu-specific) + run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - name: Bootstrap runner environment (generic) + run: bash scripts/environment/prepare.sh + - name: Build Vector + env: + DOCKER_PRIVILEGED: "true" + run: make package-arm-unknown-linux-gnueabi-all + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-gnueabi + path: target/artifacts/vector* + + build-arm-unknown-linux-musleabi-packages: + name: Build Vector for arm-unknown-linux-musleabi (.tar.gz) + runs-on: release-builder-linux + needs: generate-publish-metadata + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (Ubuntu-specific) + run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh + - name: Bootstrap runner environment (generic) + run: bash scripts/environment/prepare.sh + - name: Build Vector + env: + DOCKER_PRIVILEGED: "true" + run: make package-arm-unknown-linux-musleabi + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-musleabi + path: target/artifacts/vector* + + build-apple-darwin-packages: + name: Build Vector for ${{ matrix.architecture }}-apple-darwin (.tar.gz) + runs-on: ${{ matrix.runner }} + timeout-minutes: 90 + needs: generate-publish-metadata + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + strategy: + matrix: + include: + # Refer to https://docs.github.com/en/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners#about-macos-larger-runners. + - architecture: x86_64 + runner: macos-latest-large + - architecture: arm64 + runner: macos-latest-xlarge + steps: + - name: Verify Runner Architecture + run: | + ARCH=$(uname -m) + echo "Detected architecture: $ARCH" + if [ "$ARCH" != "${{ matrix.architecture }}" ]; then + echo "Error: Expected ${{ matrix.architecture }} architecture, but got $ARCH!" + exit 1 + fi + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (macOS-specific) + run: bash scripts/environment/bootstrap-macos.sh + - name: Build Vector + env: + TARGET: "${{ matrix.architecture }}-apple-darwin" + NATIVE_BUILD: true + run: | + export PATH="$HOME/.cargo/bin:$PATH" + make package + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-${{ matrix.architecture }}-apple-darwin + path: target/artifacts/vector* + + + build-x86_64-pc-windows-msvc-packages: + name: Build Vector for x86_64-pc-windows-msvc (.zip) + runs-on: release-builder-windows-2022 + timeout-minutes: 90 + needs: generate-publish-metadata + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + RUSTFLAGS: "-D warnings -Ctarget-feature=+crt-static" + RELEASE_BUILDER: "true" + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Bootstrap runner environment (Windows-specific) + run: .\scripts\environment\bootstrap-windows-2022.ps1 + - name: Install Wix + shell: bash + run: | + mkdir -p /c/wix + cd /c/wix + curl -sSfL https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314-binaries.zip > wix-binaries.zip + unzip -o wix-binaries.zip + rm wix-binaries.zip + - name: Build Vector + shell: bash + run: | + export FEATURES="default-msvc" + export ARCHIVE_TYPE="zip" + export KEEP_SYMBOLS="true" + export RUST_LTO="" + export TARGET="x86_64-pc-windows-msvc" + export NATIVE_BUILD="true" + make package + - name: Build MSI package + shell: bash + run: | + export PATH="/c/wix:$PATH" + ./scripts/package-msi.sh + - name: Stage package artifacts for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc + path: target/artifacts/vector* + + deb-verify: + name: Verify DEB Packages + runs-on: ubuntu-20.04 + timeout-minutes: 5 + needs: + - generate-publish-metadata + - build-x86_64-unknown-linux-gnu-packages + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + DD_PKG_VERSION: "latest" + strategy: + matrix: + container: + - ubuntu:20.04 + - ubuntu:22.04 + - ubuntu:24.04 + - debian:10 + - debian:11 + - debian:12 + container: + image: ${{ matrix.container }} + steps: + - run: | + apt-get update && \ + apt-get install -y \ + ca-certificates \ + curl \ + git \ + systemd \ + make + - name: Install dd-pkg for linting + run: | + curl -sSL "https://dd-package-tools.s3.amazonaws.com/dd-pkg/${DD_PKG_VERSION}/dd-pkg_Linux_x86_64.tar.gz" | tar -xz -C /usr/local/bin dd-pkg + - name: Fix Git safe directories issue when in containers (actions/checkout#760) + run: git config --global --add safe.directory /__w/vector/vector + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Download staged package artifacts (x86_64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu + path: target/artifacts + - name: Verify install of DEB package. + run: | + ./scripts/verify-install.sh target/artifacts/vector_${{ env.VECTOR_VERSION }}-1_amd64.deb + + rpm-verify: + name: Verify RPM Packages + runs-on: ubuntu-20.04 + timeout-minutes: 5 + needs: + - generate-publish-metadata + - build-x86_64-unknown-linux-gnu-packages + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + DD_PKG_VERSION: "latest" + strategy: + matrix: + container: + - "quay.io/centos/centos:stream9" + - "amazonlinux:2023" + - "fedora:39" + - "fedora:40" + container: + image: ${{ matrix.container }} + steps: + - run: | + yum update -y + yum install -y \ + ca-certificates \ + git \ + systemd \ + tar \ + make + # conflicts with curl-minimal on some distros and --allowerased is not + # supported on some distros + if ! command -v curl &> /dev/null ; then + yum install -y curl + fi + - name: Install dd-pkg for linting + run: | + curl -sSL "https://dd-package-tools.s3.amazonaws.com/dd-pkg/${DD_PKG_VERSION}/dd-pkg_Linux_x86_64.tar.gz" | tar -xz -C /usr/local/bin dd-pkg + - name: Fix Git safe directories issue when in containers (actions/checkout#760) + run: git config --global --add safe.directory /__w/vector/vector + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Download staged package artifacts (x86_64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu + path: target/artifacts + - name: Verify install of RPM package. + run: | + ./scripts/verify-install.sh target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm + + macos-verify: + name: Verify macOS Package + runs-on: ${{ matrix.runner }} + timeout-minutes: 5 + needs: + - generate-publish-metadata + - build-apple-darwin-packages + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + strategy: + matrix: + include: + - target: x86_64-apple-darwin + runner: macos-latest-large + - target: arm64-apple-darwin + runner: macos-latest-xlarge + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Download staged package artifacts (${{ matrix.target }}) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-${{ matrix.target }} + path: target/artifacts + - name: Verify macOS package + run: | + tar -xvf target/artifacts/vector-${{ env.VECTOR_VERSION }}-${{ matrix.target }}.tar.gz \ + && vector-${{ matrix.target }}/bin/vector --version + + publish-docker: + name: Publish to Docker + runs-on: ubuntu-20.04 + timeout-minutes: 15 + needs: + - generate-publish-metadata + - build-aarch64-unknown-linux-gnu-packages + - build-aarch64-unknown-linux-musl-packages + - build-x86_64-unknown-linux-gnu-packages + - build-x86_64-unknown-linux-musl-packages + - build-armv7-unknown-linux-musleabihf-packages + - build-armv7-unknown-linux-gnueabihf-packages + - build-arm-unknown-linux-gnueabi-packages + - build-arm-unknown-linux-musleabi-packages + - deb-verify + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + VECTOR_BUILD_DESC: ${{ needs.generate-publish-metadata.outputs.vector_build_desc }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.CI_DOCKER_USERNAME }} + password: ${{ secrets.CI_DOCKER_PASSWORD }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v3.4.0 + with: + platforms: all + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3.9.0 + with: + version: latest + install: true + - name: Download staged package artifacts (aarch64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu + path: target/artifacts + - name: Download staged package artifacts (aarch64-unknown-linux-musl) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl + path: target/artifacts + - name: Download staged package artifacts (x86_64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu + path: target/artifacts + - name: Download staged package artifacts (x86_64-unknown-linux-musl) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl + path: target/artifacts + - name: Download staged package artifacts (armv7-unknown-linux-gnueabihf) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf + path: target/artifacts + - name: Download staged package artifacts (armv7-unknown-linux-musleabihf) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf + path: target/artifacts + - name: Download staged package artifacts (arm-unknown-linux-gnueabi) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-gnueabi + path: target/artifacts + - name: Download staged package artifacts (arm-unknown-linux-musleabi) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-musleabi + path: target/artifacts + - name: Build and publish Docker images + env: + PLATFORM: "linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6" + uses: nick-fields/retry@v3 + with: + timeout_minutes: 15 + max_attempts: 3 + retry_wait_seconds: 60 + command: make release-docker + + publish-s3: + name: Publish to S3 + runs-on: ubuntu-20.04 + timeout-minutes: 10 + needs: + - generate-publish-metadata + - build-x86_64-unknown-linux-gnu-packages + - build-x86_64-unknown-linux-musl-packages + - build-aarch64-unknown-linux-musl-packages + - build-aarch64-unknown-linux-gnu-packages + - build-apple-darwin-packages + - build-x86_64-pc-windows-msvc-packages + - build-armv7-unknown-linux-musleabihf-packages + - build-armv7-unknown-linux-gnueabihf-packages + - build-arm-unknown-linux-gnueabi-packages + - build-arm-unknown-linux-musleabi-packages + - deb-verify + - rpm-verify + - macos-verify + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + CHANNEL: ${{ needs.generate-publish-metadata.outputs.vector_release_channel }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Download staged package artifacts (aarch64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu + path: target/artifacts + - name: Download staged package artifacts (aarch64-unknown-linux-musl) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl + path: target/artifacts + - name: Download staged package artifacts (x86_64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu + path: target/artifacts + - name: Download staged package artifacts (x86_64-unknown-linux-musl) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl + path: target/artifacts + - name: Download staged package artifacts (x86_64-apple-darwin) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin + path: target/artifacts + - name: Download staged package artifacts (arm64-apple-darwin) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm64-apple-darwin + path: target/artifacts + - name: Download staged package artifacts (x86_64-pc-windows-msvc) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc + path: target/artifacts + - name: Download staged package artifacts (armv7-unknown-linux-gnueabihf) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf + path: target/artifacts + - name: Download staged package artifacts (armv7-unknown-linux-musleabihf) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf + path: target/artifacts + - name: Download staged package artifacts (arm-unknown-linux-gnueabi) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-gnueabi + path: target/artifacts + - name: Download staged package artifacts (arm-unknown-linux-musleabi) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-musleabi + path: target/artifacts + - name: Publish artifacts to S3 + env: + AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_SECRET_ACCESS_KEY }} + run: make release-s3 + + publish-github: + name: Publish to GitHub + # We only publish to GitHub for versioned releases, not nightlies. + if: inputs.channel == 'release' + runs-on: ubuntu-20.04 + timeout-minutes: 10 + needs: + - generate-publish-metadata + - build-x86_64-unknown-linux-gnu-packages + - build-x86_64-unknown-linux-musl-packages + - build-aarch64-unknown-linux-musl-packages + - build-aarch64-unknown-linux-gnu-packages + - build-apple-darwin-packages + - build-x86_64-pc-windows-msvc-packages + - build-armv7-unknown-linux-gnueabihf-packages + - build-armv7-unknown-linux-musleabihf-packages + - build-arm-unknown-linux-gnueabi-packages + - build-arm-unknown-linux-musleabi-packages + - deb-verify + - rpm-verify + - macos-verify + - generate-sha256sum + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Download staged package artifacts (aarch64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu + path: target/artifacts + - name: Download staged package artifacts (aarch64-unknown-linux-musl) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl + path: target/artifacts + - name: Download staged package artifacts (x86_64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu + path: target/artifacts + - name: Download staged package artifacts (x86_64-unknown-linux-musl) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl + path: target/artifacts + - name: Download staged package artifacts (x86_64-apple-darwin) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin + path: target/artifacts + - name: Download staged package artifacts (arm64-apple-darwin) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm64-apple-darwin + path: target/artifacts + - name: Download staged package artifacts (x86_64-pc-windows-msvc) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc + path: target/artifacts + - name: Download staged package artifacts (armv7-unknown-linux-gnueabihf) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf + path: target/artifacts + - name: Download staged package artifacts (armv7-unknown-linux-musleabihf) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf + path: target/artifacts + - name: Download artifact checksums + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-SHA256SUMS + path: target/artifacts + - name: Download staged package artifacts (arm-unknown-linux-gnueabi) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-gnueabi + path: target/artifacts + - name: Download staged package artifacts (arm-unknown-linux-musleabi) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-musleabi + path: target/artifacts + - name: Publish release to GitHub + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: make release-github + + publish-homebrew: + name: Publish to Homebrew + # We only publish to Homebrew for versioned releases, not nightlies. + if: inputs.channel == 'release' + runs-on: ubuntu-20.04 + timeout-minutes: 10 + needs: + - generate-publish-metadata + - publish-s3 + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Publish update to Homebrew tap + env: + GITHUB_TOKEN: ${{ secrets.GH_PACKAGE_PUBLISHER_TOKEN }} + run: make release-homebrew + + generate-sha256sum: + name: Generate SHA256 checksums + runs-on: ubuntu-20.04 + timeout-minutes: 5 + needs: + - generate-publish-metadata + - build-x86_64-unknown-linux-gnu-packages + - build-x86_64-unknown-linux-musl-packages + - build-aarch64-unknown-linux-musl-packages + - build-aarch64-unknown-linux-gnu-packages + - build-apple-darwin-packages + - build-x86_64-pc-windows-msvc-packages + - build-armv7-unknown-linux-gnueabihf-packages + - build-armv7-unknown-linux-musleabihf-packages + - build-arm-unknown-linux-gnueabi-packages + - build-arm-unknown-linux-musleabi-packages + env: + VECTOR_VERSION: ${{ needs.generate-publish-metadata.outputs.vector_version }} + steps: + - name: Checkout Vector + uses: actions/checkout@v4 + with: + ref: ${{ inputs.git_ref }} + - name: Download staged package artifacts (aarch64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu + path: target/artifacts + - name: Download staged package artifacts (aarch64-unknown-linux-musl) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl + path: target/artifacts + - name: Download staged package artifacts (x86_64-unknown-linux-gnu) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu + path: target/artifacts + - name: Download staged package artifacts (x86_64-unknown-linux-musl) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl + path: target/artifacts + - name: Download staged package artifacts (x86_64-apple-darwin) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin + path: target/artifacts + - name: Download staged package artifacts (arm64-apple-darwin) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm64-apple-darwin + path: target/artifacts + - name: Download staged package artifacts (x86_64-pc-windows-msvc) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc + path: target/artifacts + - name: Download staged package artifacts (armv7-unknown-linux-gnueabihf) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf + path: target/artifacts + - name: Download staged package artifacts (armv7-unknown-linux-musleabihf) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf + path: target/artifacts + - name: Download staged package artifacts (arm-unknown-linux-gnueabi) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-gnueabi + path: target/artifacts + - name: Download staged package artifacts (arm-unknown-linux-musleabi) + uses: actions/download-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-arm-unknown-linux-musleabi + path: target/artifacts + - name: Generate SHA256 checksums for artifacts + run: make sha256sum + - name: Stage checksum for publish + uses: actions/upload-artifact@v4 + with: + name: vector-${{ env.VECTOR_VERSION }}-SHA256SUMS + path: target/artifacts/vector-${{ env.VECTOR_VERSION }}-SHA256SUMS diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml new file mode 100644 index 0000000000000..330d69cb12c91 --- /dev/null +++ b/.github/workflows/regression.yml @@ -0,0 +1,573 @@ +# Regression Detection Suite +# +# This workflow runs under the following conditions: +# - Once per day, based on a schedule +# - On demand, triggered from https://github.com/vectordotdev/vector/actions/workflows/regression_v2.yml +# +# The workflow accepts two optional inputs: +# - The baseline SHA: +# - If not specified, the SHA from 7 days ago on origin/master is used. +# - The comparison SHA: +# - If not specified, the current HEAD of origin/master is used. +# +# This workflow runs regression detection experiments, performing relative +# evaluations of the baseline SHA and comparison SHA. The exact SHAs are determined +# by how the workflow is triggered. +# +# The goal is to provide quick feedback on Vector's performance across a variety +# of configurations, checking if throughput performance has degraded or become +# more variable in the comparison SHA relative to the baseline SHA. +# +# Docker image tags are based on the resolved SHAs. + +name: Regression Detection Suite + +on: + workflow_dispatch: + inputs: + baseline-sha: + description: "The SHA to use as the baseline (optional). If not provided, it defaults to the SHA from 7 days ago." + required: false + comparison-sha: + description: "The SHA to use for comparison (optional). If not provided, it defaults to the current HEAD of the origin/master branch." + required: false + schedule: + - cron: '0 7 * * 1' # Runs at 7 AM UTC on Mondays + +env: + SINGLE_MACHINE_PERFORMANCE_API: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_API }} + SMP_WARMUP_SECONDS: 70 # default is 45 seconds + SMP_REPLICAS: 100 # default is 10 + +jobs: + + resolve-inputs: + runs-on: ubuntu-24.04 + outputs: + baseline-sha: ${{ steps.set_and_validate_shas.outputs.BASELINE_SHA }} + comparison-sha: ${{ steps.set_and_validate_shas.outputs.COMPARISON_SHA }} + baseline-tag: ${{ steps.set_and_validate_shas.outputs.BASELINE_TAG }} + comparison-tag: ${{ steps.set_and_validate_shas.outputs.COMPARISON_TAG }} + smp-version: ${{ steps.experimental-meta.outputs.SMP_CRATE_VERSION }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 # need to pull repository history to find merge bases + + - name: Set and Validate SHAs + id: set_and_validate_shas + run: | + # Set baseline SHA + if [ -z "${{ github.event.inputs.baseline-sha }}" ]; then + BASELINE_SHA=$(git rev-list -n 1 --before="7 days ago" origin/master) + echo "Using baseline SHA from 7 days ago: ${BASELINE_SHA}" + else + BASELINE_SHA="${{ github.event.inputs.baseline-sha }}" + echo "Using provided baseline SHA: ${BASELINE_SHA}" + fi + + # Validate baseline SHA + if [ -n "${BASELINE_SHA}" ] && git cat-file -e "${BASELINE_SHA}^{commit}"; then + echo "Baseline SHA is valid." + else + echo "Invalid baseline SHA: ${BASELINE_SHA}." + exit 1 + fi + + # Set comparison SHA + if [ -z "${{ github.event.inputs.comparison-sha }}" ]; then + COMPARISON_SHA=$(git rev-parse origin/master) + echo "Using current HEAD for comparison SHA: ${COMPARISON_SHA}" + else + COMPARISON_SHA="${{ github.event.inputs.comparison-sha }}" + echo "Using provided comparison SHA: ${COMPARISON_SHA}" + fi + + # Validate comparison SHA + if [ -n "${COMPARISON_SHA}" ] && git cat-file -e "${COMPARISON_SHA}^{commit}"; then + echo "Comparison SHA is valid." + else + echo "Invalid comparison SHA: ${COMPARISON_SHA}." + exit 1 + fi + + # Set tags and export them + BASELINE_TAG="workflow_dispatch-${COMPARISON_SHA}-${BASELINE_SHA}" + COMPARISON_TAG="workflow_dispatch-${COMPARISON_SHA}-${COMPARISON_SHA}" + + echo "BASELINE_SHA=${BASELINE_SHA}" >> $GITHUB_OUTPUT + echo "COMPARISON_SHA=${COMPARISON_SHA}" >> $GITHUB_OUTPUT + + echo "BASELINE_TAG=${BASELINE_TAG}" >> $GITHUB_OUTPUT + echo "COMPARISON_TAG=${COMPARISON_TAG}" >> $GITHUB_OUTPUT + + - name: Set SMP version + id: experimental-meta + run: | + export SMP_CRATE_VERSION="0.20.2" + echo "smp crate version: ${SMP_CRATE_VERSION}" + echo "SMP_CRATE_VERSION=${SMP_CRATE_VERSION}" >> $GITHUB_OUTPUT + + # Only run this workflow if files changed in areas that could possibly introduce a regression. + check-source-changed: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + needs: resolve-inputs + outputs: + source_changed: ${{ steps.filter.outputs.SOURCE_CHANGED }} + steps: + - uses: actions/checkout@v4 + + - name: Collect file changes + id: changes + uses: dorny/paths-filter@v3 + with: + base: ${{ needs.resolve-inputs.outputs.baseline-sha }} + ref: ${{ needs.resolve-inputs.outputs.comparison-sha }} + list-files: shell + filters: | + all_changed: + - added|deleted|modified: "**" + ignore: + - "./.github/**/!(regression.yml)" + - "./.gitignore" + - "distribution/**" + - "rust-doc/**" + - "docs/**" + - "rfcs/**" + - "testing/**" + - "tilt/**" + - "website/**" + - "*.md" + - "Tiltfile" + - "NOTICE" + - "LICENSE-3rdparty.csv" + - "LICENSE" + - "lib/codecs/tests/data/**" + + # This step allows us to conservatively run the tests if we added a new + # file or directory for source code, but forgot to add it to this workflow. + # Instead, we may unnecessarily run the test on new file or dir additions that + # wouldn't likely introduce regressions. + - name: Determine if should not run due to irrelevant file changes + id: filter + env: + ALL: ${{ steps.changes.outputs.all_changed_files }} + IGNORE: ${{ steps.changes.outputs.ignore_files }} + run: | + echo "ALL='${{ env.ALL }}'" + echo "IGNORE='${{ env.IGNORE }}'" + export SOURCE_CHANGED=$(comm -2 -3 <(printf "%s\n" "${{ env.ALL }}") <(printf "%s\n" "${{ env.IGNORE }}")) + echo "SOURCE_CHANGED='${SOURCE_CHANGED}'" + + if [ "${SOURCE_CHANGED}" == "" ]; then + export SOURCE_CHANGED="false" + else + export SOURCE_CHANGED="true" + fi + + echo "SOURCE_CHANGED='${SOURCE_CHANGED}'" + echo "SOURCE_CHANGED=${SOURCE_CHANGED}" >> $GITHUB_OUTPUT + + should-run-gate: + runs-on: ubuntu-24.04 + needs: check-source-changed + if: ${{ needs.check-source-changed.outputs.source_changed }} + steps: + - name: Gate check passed + run: echo "Source code changes detected, proceeding with regression tests" + + ## + ## BUILD + ## + + build-baseline: + name: Build baseline Vector container + runs-on: ubuntu-20.04 + timeout-minutes: 30 + needs: + - should-run-gate + - resolve-inputs + steps: + - uses: colpal/actions-clean@v1 + + - uses: actions/checkout@v4 + + - uses: actions/checkout@v4 + with: + ref: ${{ needs.resolve-inputs.outputs.baseline-sha }} + path: baseline-vector + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3.9.0 + + - name: Build 'vector' target image + uses: docker/build-push-action@v6.13.0 + with: + context: baseline-vector/ + cache-from: type=gha + cache-to: type=gha,mode=max + file: regression/Dockerfile + builder: ${{ steps.buildx.outputs.name }} + outputs: type=docker,dest=${{ runner.temp }}/baseline-image.tar + tags: | + vector:${{ needs.resolve-inputs.outputs.baseline-tag }} + + - name: Upload image as artifact + uses: actions/upload-artifact@v4 + with: + name: baseline-image + path: "${{ runner.temp }}/baseline-image.tar" + + build-comparison: + name: Build comparison Vector container + runs-on: ubuntu-20.04 + timeout-minutes: 30 + needs: + - should-run-gate + - resolve-inputs + steps: + - uses: colpal/actions-clean@v1 + + - uses: actions/checkout@v4 + + - uses: actions/checkout@v4 + with: + ref: ${{ needs.resolve-inputs.outputs.comparison-sha }} + path: comparison-vector + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3.9.0 + + - name: Build 'vector' target image + uses: docker/build-push-action@v6.13.0 + with: + context: comparison-vector/ + cache-from: type=gha + cache-to: type=gha,mode=max + file: regression/Dockerfile + builder: ${{ steps.buildx.outputs.name }} + outputs: type=docker,dest=${{ runner.temp }}/comparison-image.tar + tags: | + vector:${{ needs.resolve-inputs.outputs.comparison-tag }} + + - name: Upload image as artifact + uses: actions/upload-artifact@v4 + with: + name: comparison-image + path: "${{ runner.temp }}/comparison-image.tar" + + confirm-valid-credentials: + name: Confirm AWS credentials are minimally valid + runs-on: ubuntu-22.04 + timeout-minutes: 5 + needs: + - should-run-gate + - resolve-inputs + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4.1.0 + with: + aws-access-key-id: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_SECRET_ACCESS_KEY }} + aws-region: us-west-2 + + - name: Download SMP binary + run: | + aws s3 cp s3://smp-cli-releases/v${{ needs.resolve-inputs.outputs.smp-version }}/x86_64-unknown-linux-gnu/smp ${{ runner.temp }}/bin/smp + + ## + ## SUBMIT + ## + + upload-baseline-image-to-ecr: + name: Upload baseline images to ECR + runs-on: ubuntu-22.04 + timeout-minutes: 5 + needs: + - should-run-gate + - resolve-inputs + - confirm-valid-credentials + - build-baseline + steps: + - name: 'Download baseline image' + uses: actions/download-artifact@v4 + with: + name: baseline-image + + - name: Load baseline image + run: | + docker load --input baseline-image.tar + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4.1.0 + with: + aws-access-key-id: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_SECRET_ACCESS_KEY }} + aws-region: us-west-2 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Docker Login to ECR + uses: docker/login-action@v3 + with: + registry: ${{ steps.login-ecr.outputs.registry }} + + - name: Tag & push baseline image + run: | + docker tag vector:${{ needs.resolve-inputs.outputs.baseline-tag }} ${{ steps.login-ecr.outputs.registry }}/${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }}-vector:${{ needs.resolve-inputs.outputs.baseline-tag }} + docker push ${{ steps.login-ecr.outputs.registry }}/${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }}-vector:${{ needs.resolve-inputs.outputs.baseline-tag }} + + upload-comparison-image-to-ecr: + name: Upload comparison images to ECR + runs-on: ubuntu-22.04 + timeout-minutes: 5 + needs: + - should-run-gate + - resolve-inputs + - confirm-valid-credentials + - build-comparison + steps: + - name: 'Download comparison image' + uses: actions/download-artifact@v4 + with: + name: comparison-image + + - name: Load comparison image + run: | + docker load --input comparison-image.tar + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4.1.0 + with: + aws-access-key-id: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_SECRET_ACCESS_KEY }} + aws-region: us-west-2 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Docker Login to ECR + uses: docker/login-action@v3 + with: + registry: ${{ steps.login-ecr.outputs.registry }} + + - name: Tag & push comparison image + run: | + docker tag vector:${{ needs.resolve-inputs.outputs.comparison-tag }} ${{ steps.login-ecr.outputs.registry }}/${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }}-vector:${{ needs.resolve-inputs.outputs.comparison-tag }} + docker push ${{ steps.login-ecr.outputs.registry }}/${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }}-vector:${{ needs.resolve-inputs.outputs.comparison-tag }} + + submit-job: + name: Submit regression job + runs-on: ubuntu-22.04 + timeout-minutes: 120 + needs: + - should-run-gate + - resolve-inputs + - upload-baseline-image-to-ecr + - upload-comparison-image-to-ecr + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ needs.resolve-inputs.outputs.comparison-sha }} + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4.1.0 + with: + aws-access-key-id: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_SECRET_ACCESS_KEY }} + aws-region: us-west-2 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Download SMP binary + run: | + aws s3 cp s3://smp-cli-releases/v${{ needs.resolve-inputs.outputs.smp-version }}/x86_64-unknown-linux-gnu/smp ${{ runner.temp }}/bin/smp + + - name: Submit job + env: + RUST_LOG: info + run: | + chmod +x ${{ runner.temp }}/bin/smp + + ${{ runner.temp }}/bin/smp --team-id ${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }} job submit \ + --baseline-image ${{ steps.login-ecr.outputs.registry }}/${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }}-vector:${{ needs.resolve-inputs.outputs.baseline-tag }} \ + --comparison-image ${{ steps.login-ecr.outputs.registry }}/${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }}-vector:${{ needs.resolve-inputs.outputs.comparison-tag }} \ + --baseline-sha ${{ needs.resolve-inputs.outputs.baseline-sha }} \ + --comparison-sha ${{ needs.resolve-inputs.outputs.comparison-sha }} \ + --target-config-dir ${{ github.workspace }}/regression/ \ + --warmup-seconds ${{ env.SMP_WARMUP_SECONDS }} \ + --submission-metadata ${{ runner.temp }}/submission-metadata \ + --replicas ${{ env.SMP_REPLICAS }} + + - uses: actions/upload-artifact@v4 + with: + name: vector-submission-metadata + path: ${{ runner.temp }}/submission-metadata + + - name: Await job + timeout-minutes: 120 + env: + RUST_LOG: info + run: | + chmod +x ${{ runner.temp }}/bin/smp + + ${{ runner.temp }}/bin/smp --team-id ${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }} job status \ + --wait \ + --wait-delay-seconds 60 \ + --wait-timeout-minutes 120 \ + --submission-metadata ${{ runner.temp }}/submission-metadata + + - name: Handle cancellation if necessary + if: ${{ cancelled() }} + env: + RUST_LOG: info + run: | + chmod +x ${{ runner.temp }}/bin/smp + ${{ runner.temp }}/bin/smp --team-id ${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }} job cancel \ + --submission-metadata ${{ runner.temp }}/submission-metadata + + ## + ## ANALYZE + ## + + detect-regression: + name: Determine regression status + runs-on: ubuntu-22.04 + timeout-minutes: 5 + needs: + - submit-job + - should-run-gate + - resolve-inputs + steps: + - uses: actions/checkout@v4 + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4.1.0 + with: + aws-access-key-id: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_SECRET_ACCESS_KEY }} + aws-region: us-west-2 + + - name: Download SMP binary + run: | + aws s3 cp s3://smp-cli-releases/v${{ needs.resolve-inputs.outputs.smp-version }}/x86_64-unknown-linux-gnu/smp ${{ runner.temp }}/bin/smp + + - name: Download submission metadata + uses: actions/download-artifact@v4 + with: + name: vector-submission-metadata + path: ${{ runner.temp }}/ + + - name: Determine SMP job result + env: + RUST_LOG: info + run: | + chmod +x ${{ runner.temp }}/bin/smp + + ${{ runner.temp }}/bin/smp --team-id ${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }} job result \ + --submission-metadata ${{ runner.temp }}/submission-metadata + + analyze-experiment: + name: Download regression analysis & upload report + runs-on: ubuntu-22.04 + timeout-minutes: 5 + needs: + - should-run-gate + - submit-job + - resolve-inputs + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ needs.resolve-inputs.outputs.comparison-sha }} + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4.1.0 + with: + aws-access-key-id: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.SINGLE_MACHINE_PERFORMANCE_BOT_SECRET_ACCESS_KEY }} + aws-region: us-west-2 + + - name: Download SMP binary + run: | + aws s3 cp s3://smp-cli-releases/v${{ needs.resolve-inputs.outputs.smp-version }}/x86_64-unknown-linux-gnu/smp ${{ runner.temp }}/bin/smp + + - name: Download submission metadata + uses: actions/download-artifact@v4 + with: + name: vector-submission-metadata + path: ${{ runner.temp }}/ + + - name: Sync regression report to local system + env: + RUST_LOG: info + run: | + chmod +x ${{ runner.temp }}/bin/smp + + ${{ runner.temp }}/bin/smp --team-id ${{ secrets.SINGLE_MACHINE_PERFORMANCE_TEAM_ID }} job sync \ + --submission-metadata ${{ runner.temp }}/submission-metadata \ + --output-path "${{ runner.temp }}/outputs" + + - name: Read regression report + id: read-analysis + uses: juliangruber/read-file-action@v1 + with: + path: ${{ runner.temp }}/outputs/report.md + + - name: Upload regression report to artifacts + uses: actions/upload-artifact@v4 + with: + name: capture-artifacts + path: ${{ runner.temp }}/outputs/* + + regression-detection-suite: + name: Set final result + runs-on: ubuntu-latest + timeout-minutes: 5 + if: always() + needs: + - should-run-gate + - resolve-inputs + - build-baseline + - build-comparison + - confirm-valid-credentials + - upload-baseline-image-to-ecr + - upload-comparison-image-to-ecr + - submit-job + - detect-regression + - analyze-experiment + env: + FAILED: ${{ contains(needs.*.result, 'failure') }} + steps: + - name: Download capture-artifacts + continue-on-error: true + uses: actions/download-artifact@v4 + with: + name: capture-artifacts + + - name: Display Markdown Summary + continue-on-error: true + run: | + REPORT_MD=report.md + if [ -f ${REPORT_MD} ]; then + cat ${REPORT_MD} >> $GITHUB_STEP_SUMMARY + else + echo "Did not find ${REPORT_MD} file." + fi + + - name: exit + run: | + echo "failed=${{ env.FAILED }}" + if [[ "$FAILED" == "true" ]] ; then + exit 1 + else + exit 0 + fi diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9a77c1dfff5d6..d49db554965e4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,689 +1,19 @@ name: Release Suite +permissions: + contents: write + packages: write + on: push: tags: - v0.* - v1.* - -env: - AUTOINSTALL: true - VERBOSE: true - CI: true - DEBIAN_FRONTEND: noninteractive - jobs: - build-x86_64-unknown-linux-musl-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - run: make ci-sweep - - env: - PASS_FEATURES: "default-cmake" - run: make package-x86_64-unknown-linux-musl-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl.tar.gz" - - build-x86_64-unknown-linux-gnu-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: make ci-sweep - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - env: - PASS_FEATURES: "default" - run: make package-x86_64-unknown-linux-gnu-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu.tar.gz" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm" - - build-aarch64-unknown-linux-musl-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: make ci-sweep - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - env: - DOCKER_PRIVILEGED: "true" - PASS_FEATURES: "default-cmake" - run: make package-aarch64-unknown-linux-musl-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl.tar.gz" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-arm64.deb - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-arm64.deb" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm" - - build-aarch64-unknown-linux-gnu-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: make ci-sweep - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - env: - DOCKER_PRIVILEGED: "true" - PASS_FEATURES: "default" - run: make package-aarch64-unknown-linux-gnu-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu.tar.gz" - - build-armv7-unknown-linux-gnueabihf-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: make ci-sweep - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - env: - DOCKER_PRIVILEGED: "true" - run: make package-armv7-unknown-linux-gnueabihf-all - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf.tar.gz" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-armhf.deb - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-armhf.deb" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm" - - build-armv7-unknown-linux-musleabihf-packages: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - run: make ci-sweep - - env: - DOCKER_PRIVILEGED: "true" - run: make package-armv7-unknown-linux-musleabihf - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf.tar.gz" - - build-x86_64-apple-darwin-packages: - runs-on: macos-10.15 - steps: - - uses: actions/checkout@v1 - - name: "Upgrade bash" - run: brew install bash - - name: "Install realpath dependency" - run: brew install coreutils - - name: Add version variable - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - shell: bash - - name: "Build archive" - env: - TARGET: "x86_64-apple-darwin" - NATIVE_BUILD: true - run: | - export PATH="$HOME/.cargo/bin:$PATH" - make package - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz" - - build-x86_64-pc-windows-msvc-packages: - runs-on: windows-2019 - steps: - - uses: actions/checkout@v1 - - name: "Add Vector version" - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - shell: bash - - name: "Download Perl" - shell: bash - env: - VERSION: "5.32.0.1" - run: | - curl -sSf https://strawberryperl.com/download/$VERSION/strawberry-perl-$VERSION-64bit.msi > perl-installer.msi - - name: "Install Perl" - shell: cmd # msiexec fails when called from bash - run: | - msiexec /quiet /i perl-installer.msi - del perl-installer.msi - - name: "Download CMake" - shell: bash - env: - VERSION: "3.15.5" - run: | - curl -sSfL https://github.com/Kitware/CMake/releases/download/v$VERSION/cmake-$VERSION-win64-x64.msi > cmake-installer.msi - - name: "Install CMake" - shell: cmd # msiexec fails when called from bash - run: | - msiexec /quiet /i cmake-installer.msi - del cmake-installer.msi - - name: "Install Wix" - shell: bash - run: | - mkdir -p /c/wix - cd /c/wix - curl -sSfL https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip > wix-binaries.zip - unzip wix-binaries.zip - rm wix-binaries.zip - - name: "Build archive" - shell: bash - run: | - export PATH="$HOME/.cargo/bin:/c/Strawberry/perl/bin:/c/Program Files/CMake/bin:$PATH" - export RUSTFLAGS=-Ctarget-feature=+crt-static - export FEATURES="default-msvc" - export ARCHIVE_TYPE="zip" - export KEEP_SYMBOLS="true" - export RUST_LTO="" - export TARGET="x86_64-pc-windows-msvc" - export NATIVE_BUILD="true" - make package - - name: "Build package" - shell: bash - run: | - export PATH="/c/wix:$PATH" - ./scripts/package-msi.sh - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc.zip - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc.zip" - - uses: actions/upload-artifact@v1 - with: - name: vector-${{ env.VECTOR_VERSION }}-x64.msi - path: "./target/artifacts/vector-${{ env.VECTOR_VERSION }}-x64.msi" - - deb-verify: - needs: - - build-x86_64-unknown-linux-gnu-packages - runs-on: ubuntu-20.04 - strategy: - matrix: - container: ["ubuntu:14.04","ubuntu:16.04","ubuntu:18.04","ubuntu:20.04","debian:8","debian:9","debian:10"] - container: - image: ${{ matrix.container }} - steps: - - name: checkout - uses: actions/checkout@v1 - - run: | - apt-get update && \ - apt-get install -y \ - ca-certificates \ - curl \ - git \ - systemd \ - make - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: target/artifacts - - name: First install of DEB package. - run: | - dpkg -i target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb && vector --version - - name: Second install of DEB package. - run: | - dpkg -i target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb && vector --version - - rpm-verify: - needs: - - build-x86_64-unknown-linux-gnu-packages - runs-on: ubuntu-20.04 - strategy: - matrix: - container: ["centos:7","centos:8","amazonlinux:1","amazonlinux:2","fedora:33"] - container: - image: ${{ matrix.container }} - steps: - - name: checkout - uses: actions/checkout@v1 - - run: | - yum update -y && \ - yum install -y \ - ca-certificates \ - curl \ - git \ - systemd \ - tar \ - make - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm - path: target/artifacts - - name: First install of RPM package. - run: | - rpm -i --replacepkgs target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm && vector --version - - name: Second install of RPM package. - run: | - rpm -i --replacepkgs target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm && vector --version - - osx-verify: - runs-on: macos-10.15 - needs: - - build-x86_64-apple-darwin-packages - steps: - - name: checkout - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz - path: target/artifacts - - run: | - tar -xvf target/artifacts/vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz && vector-x86_64-apple-darwin/bin/vector --version - - release-docker: - runs-on: ubuntu-20.04 - needs: - - build-aarch64-unknown-linux-musl-packages - - build-x86_64-unknown-linux-gnu-packages - - build-x86_64-unknown-linux-musl-packages - - build-armv7-unknown-linux-musleabihf-packages - - build-armv7-unknown-linux-gnueabihf-packages - - deb-verify - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.CI_DOCKER_USERNAME }} - password: ${{ secrets.CI_DOCKER_PASSWORD }} - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - with: - platforms: all - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v1 - with: - version: latest - install: true - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-arm64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armhf.deb - path: target/artifacts - - env: - PLATFORM: "linux/amd64,linux/arm64,linux/arm/v7" - run: | - make release-docker - - release-s3: - runs-on: ubuntu-18.04 - needs: - - build-x86_64-unknown-linux-gnu-packages - - build-x86_64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-gnu-packages - - build-x86_64-apple-darwin-packages - - build-x86_64-pc-windows-msvc-packages - - build-armv7-unknown-linux-musleabihf-packages - - build-armv7-unknown-linux-gnueabihf-packages - - deb-verify - - rpm-verify - - osx-verify - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-arm64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armhf.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc.zip - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x64.msi - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm - path: target/artifacts - - env: - AWS_ACCESS_KEY_ID: "${{ secrets.CI_AWS_ACCESS_KEY_ID }}" - AWS_SECRET_ACCESS_KEY: "${{ secrets.CI_AWS_SECRET_ACCESS_KEY }}" - run: make release-s3 - - release-github: - runs-on: ubuntu-20.04 - needs: - - build-x86_64-unknown-linux-gnu-packages - - build-x86_64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-gnu-packages - - build-x86_64-apple-darwin-packages - - build-x86_64-pc-windows-msvc-packages - - build-armv7-unknown-linux-gnueabihf-packages - - build-armv7-unknown-linux-musleabihf-packages - - deb-verify - - rpm-verify - - osx-verify - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-gnu.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-musl.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-aarch64-unknown-linux-gnu.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-gnueabihf.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armv7-unknown-linux-musleabihf.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-arm64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-pc-windows-msvc.zip - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x64.msi - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armhf.deb - path: target/artifacts - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: | - export SHA1="${{ github.sha }}" - export GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" - make release-github - - release-homebrew: - runs-on: ubuntu-20.04 - needs: - - build-x86_64-apple-darwin-packages - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-x86_64-apple-darwin.tar.gz - path: target/artifacts - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: | - export GITHUB_TOKEN="${{ secrets.GH_PACKAGE_PUBLISHER_TOKEN }}" - make release-homebrew - - release-cloudsmith: - runs-on: ubuntu-20.04 - needs: - - build-x86_64-unknown-linux-gnu-packages - - build-aarch64-unknown-linux-musl-packages - - build-armv7-unknown-linux-gnueabihf-packages - - deb-verify - - rpm-verify - steps: - - uses: actions/checkout@v1 - - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-amd64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-arm64.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-armhf.deb - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm - path: target/artifacts - - uses: actions/download-artifact@v2 - with: - name: vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm - path: target/artifacts - - name: Push amd64 deb - id: push-deb-amd64 - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "deb" - owner: "timber" - repo: "vector" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb" - - name: Push arm64 deb - id: push-deb-arm64 - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "deb" - owner: "timber" - repo: "vector" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-arm64.deb" - - name: Push armhf deb - id: push-deb-armhf - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "deb" - owner: "timber" - repo: "vector" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-armhf.deb" - - name: Push x86_64 RPM - id: push-rpm-x86_64 - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "rpm" - owner: "timber" - repo: "vector" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.x86_64.rpm" - - name: Push aarch64 RPM - id: push-rpm-aarch64 - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "rpm" - owner: "timber" - repo: "vector" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.aarch64.rpm" - - name: Push armv7-gnu RPM - id: push-rpm-armv7-gnu - uses: cloudsmith-io/action@master - with: - api-key: ${{ secrets.CLOUDSMITH_API_KEY }} - command: "push" - format: "rpm" - owner: "timber" - repo: "vector" - distro: "any-distro" - release: "any-version" - republish: "true" - file: "target/artifacts/vector-${{ env.VECTOR_VERSION }}-1.armv7.rpm" - - release-helm: - runs-on: ubuntu-18.04 - needs: - # This is not strictly required, but ensures that Helm Chart doesn't - # appear before the image it refers to. - - release-docker - steps: - - uses: actions/checkout@v1 - - name: Install Helm - run: scripts/environment/setup-helm.sh - - name: Release Helm Chart - env: - AWS_ACCESS_KEY_ID: "${{ secrets.CI_AWS_ACCESS_KEY_ID }}" - AWS_SECRET_ACCESS_KEY: "${{ secrets.CI_AWS_SECRET_ACCESS_KEY }}" - run: make release-helm - - release-failure: - name: release-failure - if: failure() - needs: - - build-x86_64-unknown-linux-gnu-packages - - build-x86_64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-musl-packages - - build-aarch64-unknown-linux-gnu-packages - - build-x86_64-apple-darwin-packages - - build-x86_64-pc-windows-msvc-packages - - build-armv7-unknown-linux-gnueabihf-packages - - build-armv7-unknown-linux-musleabihf-packages - - deb-verify - - rpm-verify - - osx-verify - - release-docker - - release-s3 - - release-cloudsmith - - release-github - - release-helm - runs-on: ubuntu-20.04 - steps: - - name: Discord notification - env: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@0.3.0 - with: - args: "Release failed: " + Release: + uses: ./.github/workflows/publish.yml + with: + git_ref: ${{ github.ref }} + channel: release + secrets: inherit diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml new file mode 100644 index 0000000000000..472ed4e9ae07b --- /dev/null +++ b/.github/workflows/scorecard.yml @@ -0,0 +1,73 @@ +# This workflow uses actions that are not certified by GitHub. They are provided +# by a third-party and are governed by separate terms of service, privacy +# policy, and support documentation. + +name: Scorecard supply-chain security +on: + # For Branch-Protection check. Only the default branch is supported. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection + branch_protection_rule: + # To guarantee Maintained check is occasionally updated. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained + schedule: + - cron: '0 6 * * 1' # 6 AM UTC every Monday + push: + branches: [ "master" ] + +# Declare default permissions as read only. +permissions: read-all + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-24.04 + permissions: + # Needed to upload the results to code-scanning dashboard. + security-events: write + # Needed to publish results and get a badge (see publish_results below). + id-token: write + # Uncomment the permissions below if installing in a private repository. + # contents: read + # actions: read + + steps: + - name: "Checkout code" + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: "Run analysis" + uses: ossf/scorecard-action@v2.4.0 + with: + results_file: results.sarif + results_format: sarif + # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: + # - you want to enable the Branch-Protection check on a *public* repository, or + # - you are installing Scorecard on a *private* repository + # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional. + # repo_token: ${{ secrets.SCORECARD_TOKEN }} + + # Public repositories: + # - Publish results to OpenSSF REST API for easy access by consumers + # - Allows the repository to include the Scorecard badge. + # - See https://github.com/ossf/scorecard-action#publishing-results. + # For private repositories: + # - `publish_results` will always be set to `false`, regardless + # of the value entered here. + publish_results: true + + # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF + # format to the repository Actions tab. + - name: "Upload artifact" + uses: actions/upload-artifact@v4 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard (optional). + # Commenting out will disable upload of results to your repo's Code Scanning dashboard + - name: "Upload to code-scanning" + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: results.sarif diff --git a/.github/workflows/semantic.yml b/.github/workflows/semantic.yml new file mode 100644 index 0000000000000..175c5d86e67ab --- /dev/null +++ b/.github/workflows/semantic.yml @@ -0,0 +1,247 @@ +# This is a GitHub Action that ensures that the PR titles match the Conventional Commits spec. +# See: https://www.conventionalcommits.org/en/v1.0.0/ + +name: "PR Title Semantic Check" + +on: + pull_request: + types: + - opened + - edited + - synchronize + +jobs: + main: + name: Check Semantic PR + runs-on: ubuntu-24.04 + steps: + - uses: amannn/action-semantic-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + requireScope: true + types: | + chore + enhancement + feat + fix + docs + revert + + scopes: | + new source + new transform + new sink + ARC + administration + api + architecture + auth + buffers + ci + cli + codecs + compression + config + core + data model + delivery + deployment + deps + dev + durability + enriching + enterprise + exceptions + external + external docs + filtering + healthchecks + internal + internal docs + logs + metrics + networking + observability + parsing + performance + platforms + privacy + processing + releasing + reliability + reload + replay + schemas + security + setup + shutdown + sinks + soak tests + sources + startup + templating + tests + topology + traces + transforms + unit tests + vrl + amazon-linux platform + apt platform + arm platform + arm64 platform + centos platform + debian platform + docker platform + dpkg platform + helm platform + heroku platform + homebrew platform + kubernetes platform + macos platform + msi platform + nix platform + nixos platform + raspbian platform + rhel platform + rpm platform + ubuntu platform + windows platform + x86_64 platform + yum platform + + service providers + aws service + azure service + confluent service + datadog service + elastic service + gcp service + grafana service + heroku service + honeycomb service + humio service + influxdata service + logdna service + new relic service + papertrail service + sematext service + splunk service + yandex service + apache_metrics source + aws_ecs_metrics source + aws_kinesis_firehose source + aws_s3 source + aws_sqs source + datadog_agent source + demo_logs source + dnstap source + docker_logs source + exec source + file source + file_descriptor source + fluent source + gcp_pubsub source + heroku_logs source + host_metrics source + http source + http_scrape source + internal_logs source + internal_metrics source + journald source + kafka source + kubernetes_logs source + logstash source + mongodb_metrics source + new source + nginx_metrics source + opentelemetry source + postgresql_metrics source + prometheus_remote_write source + prometheus_scrape source + redis source + socket source + splunk_hec source + static_metrics source + statsd source + stdin source + syslog source + vector source + aws_ec2_metadata transform + dedupe transform + filter transform + geoip transform + log_to_metric transform + lua transform + metric_to_log transform + new transform + pipelines transform + reduce transform + remap transform + route transform + exclusive_route transform + sample transform + tag_cardinality_limit transform + throttle transform + amqp sink + apex sink + aws_cloudwatch_logs sink + aws_cloudwatch_metrics sink + aws_kinesis_firehose sink + aws_kinesis_streams sink + aws_s3 sink + aws_sqs sink + azure_blob sink + azure_monitor_logs sink + blackhole sink + clickhouse sink + console sink + datadog_archives sink + datadog_events sink + datadog_logs sink + datadog_metrics sink + elasticsearch sink + file sink + gcp_chronicle sink + gcp_cloud_storage sink + gcp_pubsub sink + gcp_stackdriver_logs sink + gcp_stackdriver_metrics sink + greptimedb_metrics sink + greptimedb_logs sink + honeycomb sink + http sink + humio_logs sink + humio_metrics sink + influxdb_logs sink + influxdb_metrics sink + kafka sink + logdna sink + loki sink + nats sink + new sink + new_relic sink + new_relic_logs sink + opentelemetry sink + papertrail sink + prometheus_exporter sink + prometheus_remote_write sink + pulsar sink + redis sink + sematext_logs sink + sematext_metrics sink + socket sink + splunk_hec sink + statsd sink + vector sink + websocket sink + websocket_server sink + blog website + css website + guides website + highlights website + javascript website + search website + template website + website diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml new file mode 100644 index 0000000000000..5976f1a9fedb4 --- /dev/null +++ b/.github/workflows/spelling.yml @@ -0,0 +1,135 @@ +name: Check Spelling + +# Comment management is handled through a secondary job, for details see: +# https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Restricted-Permissions +# +# `jobs.comment-push` runs when a push is made to a repository and the `jobs.spelling` job needs to make a comment +# (in odd cases, it might actually run just to collapse a comment, but that's fairly rare) +# it needs `contents: write` in order to add a comment. +# +# `jobs.comment-pr` runs when a pull_request is made to a repository and the `jobs.spelling` job needs to make a comment +# or collapse a comment (in the case where it had previously made a comment and now no longer needs to show a comment) +# it needs `pull-requests: write` in order to manipulate those comments. + +# Updating pull request branches is managed via comment handling. +# For details, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-expect-list +# +# These elements work together to make it happen: +# +# `on.issue_comment` +# This event listens to comments by users asking to update the metadata. +# +# `jobs.update` +# This job runs in response to an issue_comment and will push a new commit +# to update the spelling metadata. +# +# `with.experimental_apply_changes_via_bot` +# Tells the action to support and generate messages that enable it +# to make a commit to update the spelling metadata. +# +# `with.ssh_key` +# In order to trigger workflows when the commit is made, you can provide a +# secret (typically, a write-enabled github deploy key). +# +# For background, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-with-deploy-key + +# Sarif reporting +# +# Access to Sarif reports is generally restricted (by GitHub) to members of the repository. +# +# Requires enabling `security-events: write` +# and configuring the action with `use_sarif: 1` +# +# For information on the feature, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Sarif-output + +# Minimal workflow structure: +# +# on: +# push: +# ... +# pull_request_target: +# ... +# jobs: +# # you only want the spelling job, all others should be omitted +# spelling: +# # remove `security-events: write` and `use_sarif: 1` +# # remove `experimental_apply_changes_via_bot: 1` +# ... otherwise adjust the `with:` as you wish + +on: + pull_request_target: + branches: + - "**" + tags-ignore: + - "**" + types: + - 'opened' + - 'reopened' + - 'synchronize' + +jobs: + spelling: + name: Check Spelling + permissions: + contents: read + pull-requests: read + actions: read + security-events: write + outputs: + followup: ${{ steps.spelling.outputs.followup }} + runs-on: ubuntu-24.04 + timeout-minutes: 5 + if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'" + concurrency: + group: spelling-${{ github.event.pull_request.number || github.ref }} + # note: If you use only_check_changed_files, you do not want cancel-in-progress + cancel-in-progress: true + steps: + - name: check-spelling + id: spelling + uses: check-spelling/check-spelling@v0.0.24 + with: + suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }} + checkout: true + check_file_names: 1 + spell_check_this: check-spelling/spell-check-this@prerelease + post_comment: 0 + use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }} + extra_dictionary_limit: 20 + extra_dictionaries: + cspell:aws/aws.txt + cspell:cpp/src/compiler-clang-attributes.txt + cspell:cpp/src/compiler-msvc.txt + cspell:cpp/src/ecosystem.txt + cspell:cpp/src/lang-jargon.txt + cspell:cpp/src/stdlib-cpp.txt + cspell:css/dict/css.txt + cspell:django/dict/django.txt + cspell:docker/src/docker-words.txt + cspell:dotnet/dict/dotnet.txt + cspell:elixir/dict/elixir.txt + cspell:filetypes/filetypes.txt + cspell:fullstack/dict/fullstack.txt + cspell:golang/dict/go.txt + cspell:html-symbol-entities/entities.txt + cspell:html/dict/html.txt + cspell:java/src/java-terms.txt + cspell:java/src/java.txt + cspell:k8s/dict/k8s.txt + cspell:lorem-ipsum/dictionary.txt + cspell:lua/dict/lua.txt + cspell:node/dict/node.txt + cspell:npm/dict/npm.txt + cspell:php/dict/php.txt + cspell:public-licenses/src/generated/public-licenses.txt + cspell:python/src/common/extra.txt + cspell:python/src/python/python-lib.txt + cspell:python/src/python/python.txt + cspell:r/src/r.txt + cspell:ruby/dict/ruby.txt + cspell:rust/dict/rust.txt + cspell:shell/dict/shell-all-words.txt + cspell:software-terms/dict/softwareTerms.txt + cspell:swift/src/swift.txt + cspell:typescript/dict/typescript.txt + check_extra_dictionaries: '' diff --git a/.github/workflows/test-harness.yml b/.github/workflows/test-harness.yml deleted file mode 100644 index b7d7d71a63a5a..0000000000000 --- a/.github/workflows/test-harness.yml +++ /dev/null @@ -1,146 +0,0 @@ -name: Test Harness - -on: - workflow_dispatch: - -jobs: - test-harness: - - runs-on: ubuntu-18.04 - - needs: version - - # Only run if we're invoked with a new command comment on a pull request. - if: | - github.event_name == 'issue_comment' && github.event.action == 'created' - && github.event.issue.pull_request != null - && startsWith(github.event.comment.body, '/test') - - steps: - - name: Indicate that we picked up the command with a comment reaction - uses: actions/github-script@v3.1 - with: - github-token: '${{secrets.GITHUB_TOKEN}}' - script: | - github.reactions.createForIssueComment({ - owner: context.repo.owner, - repo: context.repo.repo, - comment_id: context.payload.comment.id, - content: "rocket" - }) - - - name: Check user permissions - uses: lannonbr/repo-permission-check-action@2.0.1 - with: - permission: write - env: - GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' - - - name: Get Pull Request info - id: pr-info - uses: actions/github-script@v3.1 - with: - script: | - const pr_info_response = await github.pulls.get({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: context.issue.number - }); - const pr_info = pr_info_response.data; - core.setOutput("head_ref", pr_info.head.ref); - core.setOutput("head_sha", pr_info.head.sha); - core.setOutput("base_ref", pr_info.base.ref); - core.setOutput("base_sha", pr_info.base.sha); - return pr_info; - - # Clone vector source and build .deb - - name: Clone the PR branch - uses: actions/checkout@v2 - with: - lfs: true - ref: '${{ steps.pr-info.outputs.head_sha }}' - - - name: Set the Vector version - run: echo VECTOR_VERSION=$(make version) >> $GITHUB_ENV - - - name: Complete repo clone and gather info on the cloned code - id: cloned-repo-info - run: | - git fetch --no-tags --prune --depth=350 origin \ - +refs/heads/${{ steps.pr-info.outputs.head_ref }}:refs/remotes/origin/${{ steps.pr-info.outputs.head_ref }} \ - +refs/heads/${{ steps.pr-info.outputs.base_ref }}:refs/remotes/origin/${{ steps.pr-info.outputs.base_ref }} - echo "::set-output name=test_harness_vector_version::dev-${{ steps.pr-info.outputs.head_ref }}-$(git rev-list --count '${{ steps.pr-info.outputs.base_sha }}..${{ steps.pr-info.outputs.head_sha }}')-$(git rev-parse --short HEAD)" - # Doesn't work yet, see https://github.com/actions/cache/issues/176 - - name: Cache deb - id: deb-cache - uses: actions/cache@v2.1.4 - with: - path: target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb - key: vector-test-harness-packaged-deb-${{ steps.pr-info.outputs.head_sha }} - - name: Make deb - if: steps.deb-cache.outputs.cache-hit != 'true' - run: PASS_FEATURES=default ./scripts/docker-run.sh builder-x86_64-unknown-linux-gnu make build-archive package-deb - - - name: Invoke test harness - uses: docker://timberiodev/vector-test-harness:latest - with: - args: | - bash -o pipefail -xc "cd /vector-test-harness \ - && bin/test $(echo '${{ github.event.comment.body }}' | head -n 1 | sed 's|^/test ||')" - env: - GENERATE_SSH_KEY: true - VECTOR_TEST_VECTOR_DEB_PATH: '${{ github.workspace }}/target/artifacts/vector-${{ env.VECTOR_VERSION }}-amd64.deb' - VECTOR_TEST_USER_ID: 'gha_${{ github.event.issue.number }}' - VECTOR_TEST_RESULTS_S3_BUCKET_NAME: test-results.vector.dev - VECTOR_TEST_SUBJECT: vector - VECTOR_VERSION_TO_TEST: '${{ steps.cloned-repo-info.outputs.test_harness_vector_version }}' - AWS_ACCESS_KEY_ID: '${{ secrets.TEST_HARNESS_AWS_ACCESS_KEY_ID }}' - AWS_SECRET_ACCESS_KEY: '${{ secrets.TEST_HARNESS_AWS_SECRET_ACCESS_KEY }}' - AWS_DEFAULT_REGION: '${{ secrets.AWS_DEFAULT_REGION }}' - - name: Gather test harness execution results - uses: docker://timberiodev/vector-test-harness:latest - with: - args: | - bash -o pipefail -xc "cd /vector-test-harness \ - && bin/compare -s vector -c default -v nightly/latest -v ${{ steps.cloned-repo-info.outputs.test_harness_vector_version }} $(echo '${{ github.event.comment.body }}' | head -n 1 | sed 's|^/test ||') | tee \"$GITHUB_WORKSPACE/output\"" - env: - GENERATE_SSH_KEY: true - VECTOR_TEST_RESULTS_S3_BUCKET_NAME: test-results.vector.dev - AWS_ACCESS_KEY_ID: '${{ secrets.TEST_HARNESS_RESULTS_AWS_ACCESS_KEY_ID }}' - AWS_SECRET_ACCESS_KEY: '${{ secrets.TEST_HARNESS_RESULTS_AWS_SECRET_ACCESS_KEY }}' - AWS_DEFAULT_REGION: '${{ secrets.TEST_HARNESS_AWS_DEFAULT_REGION }}' - - - name: Post a comment with the results - uses: actions/github-script@v3.1 - with: - github-token: '${{secrets.GITHUB_TOKEN}}' - script: | - const fs = require('fs'); - const { promisify } = require('util'); - const readFileAsync = promisify(fs.readFile); - - console.log(process.env); - console.log(context); - - let output; - try { - output = await readFileAsync(`${process.env.GITHUB_WORKSPACE}/output`); - output = '```\n' + output + '\n```\n'; - } catch { - output = "Something went wrong, see log for more details.\n" - } - - const body = - `Test harness invocation requested by ${context.payload.comment.html_url} is complete!\n` + - '\n' + - output + - '\n' + - `You can check the [execution log](${context.payload.repository.html_url}/actions/runs/${process.env.GITHUB_RUN_ID}) to learn more!`; - - github.issues.createComment({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body - }) - if: always() diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 380572a0bdfce..418c272c63686 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,297 +1,147 @@ name: Test Suite on: - pull_request: {} - push: - branches: - - master + pull_request: + merge_group: + types: [checks_requested] + +concurrency: + # `github.ref` is unique for MQ runs and PRs + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true env: - AUTOINSTALL: true AWS_ACCESS_KEY_ID: "dummy" AWS_SECRET_ACCESS_KEY: "dummy" CONTAINER_TOOL: "docker" + DD_ENV: "ci" + DD_API_KEY: ${{ secrets.DD_API_KEY }} RUST_BACKTRACE: full - RUST_TEST_THREADS: 1 TEST_LOG: vector=debug VERBOSE: true CI: true PROFILE: debug + # observing issues fetching boringssl via HTTPS in the OSX build, seeing if this helps + # can be removed when we switch back to the upstream openssl-sys crate + CARGO_NET_GIT_FETCH_WITH_CLI: true jobs: - cancel-previous: - name: Cancel redundant jobs - runs-on: ubuntu-20.04 - timeout-minutes: 3 - if: github.ref != 'refs/heads/master' - steps: - - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ secrets.GITHUB_TOKEN }} - changes: - runs-on: ubuntu-20.04 - # Set job outputs to values from filter step - outputs: - source: ${{ steps.filter.outputs.source }} - docs: ${{ steps.filter.outputs.docs }} - markdown: ${{ steps.filter.outputs.markdown }} - dependencies: ${{ steps.filter.outputs.dependencies }} - internal_events: ${{ steps.filter.outputs.internal_events }} - helm: ${{ steps.filter.outputs.helm }} - steps: - - uses: actions/checkout@v2 - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: | - source: - - ".github/workflows/test.yml" - - ".cargo/**" - - "benches/**" - - "lib/**" - - "proto/**" - - "scripts/**" - - "skaffold/**" - - "src/**" - - "tests/**" - - "build.rs" - - "Cargo.lock" - - "Cargo.toml" - - "Makefile" - - "rust-toolchain" - docs: - - 'docs/**' - markdown: - - '**/**.md' - dependencies: - - 'Cargo.toml' - - 'Cargo.lock' - - 'rust-toolchain' - - '.github/workflows/pr.yml' - - 'Makefile' - - 'scripts/cross/**' - internal_events: - - 'src/internal_events/**' - helm: - - 'distribution/helm/**' - docker: - - 'distribution/docker/**' + uses: ./.github/workflows/changes.yml + secrets: inherit + with: + base_ref: ${{ github.event.merge_group.base_ref || github.event.pull_request.base.ref }} + head_ref: ${{ github.event.merge_group.head_ref || github.event.pull_request.head.ref }} - # Remove this once https://github.com/timberio/vector/issues/3771 is closed. - # Then, modify the `cross-linux` job to run `test` instead of `build`. - test-linux: - name: Unit - x86_64-unknown-linux-gnu - runs-on: [self-hosted, linux, x64, general] + checks: + name: Checks + runs-on: ubuntu-20.04-8core + timeout-minutes: 60 needs: changes - if: ${{ needs.changes.outputs.source == 'true' }} + env: + CARGO_INCREMENTAL: 0 steps: - - uses: actions/checkout@v2 - - uses: actions/cache@v2.1.4 + - uses: actions/checkout@v4 with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-components + # check-version needs tags + fetch-depth: 0 # fetch everything - test-misc: - name: Miscellaneous - Linux - runs-on: ubuntu-20.04 - needs: changes - if: ${{ needs.changes.outputs.source == 'true' }} - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 + - uses: actions/cache@v4 + name: Cache Cargo registry + index with: path: | - ~/.cargo/registry - ~/.cargo/git + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: sudo bash scripts/environment/bootstrap-ubuntu-20.04.sh - - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test-shutdown - - run: make test-cli - - run: make test-behavior - - run: make check-examples + restore-keys: | + ${{ runner.os }}-cargo- - cross-linux: - name: Cross - ${{ matrix.target }} - runs-on: ubuntu-20.04 - needs: changes - strategy: - matrix: - target: - - x86_64-unknown-linux-gnu - - x86_64-unknown-linux-musl - - aarch64-unknown-linux-gnu - - aarch64-unknown-linux-musl - - armv7-unknown-linux-gnueabihf - - armv7-unknown-linux-musleabihf + - run: sudo -E bash scripts/environment/bootstrap-ubuntu-20.04.sh - # We run cross checks when dependencies change to ensure they still build. - # This helps us avoid adopting dependencies that aren't compatible with other architectures. - if: ${{ needs.changes.outputs.dependencies == 'true' }} - steps: - - uses: actions/checkout@v2 - - run: make ci-sweep - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - # Why is this build, not check? Because we need to make sure the linking phase works. - # aarch64 and musl in particular are notoriously hard to link. - # While it may be tempting to slot a `check` in here for quickness, please don't. - - run: make cross-build-${{ matrix.target }} - - uses: actions/upload-artifact@v2 - with: - name: "vector-debug-${{ matrix.target }}" - path: "./target/${{ matrix.target }}/debug/vector" + - uses: ruby/setup-ruby@v1 - test-mac: - name: Unit - Mac - # Full CI suites for this platform were only recently introduced. - # Some failures are permitted until we can properly correct them. - continue-on-error: true - runs-on: macos-latest - needs: changes - if: ${{ needs.changes.outputs.source == 'true' }} - steps: - - uses: actions/checkout@v2 - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - run: bash scripts/environment/bootstrap-macos-10.sh - run: bash scripts/environment/prepare.sh - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: make test - - run: make test-behavior - test-windows: - name: Unit - Windows - # Full CI suites for this platform were only recently introduced. - # Some failures are permitted until we can properly correct them. - continue-on-error: true - runs-on: [self-hosted, windows, x64, general] - needs: changes - if: ${{ needs.changes.outputs.source == 'true' }} - steps: - - uses: actions/checkout@v2 - - env: - RUSTFLAGS: "-D warnings" - run: cargo test --no-fail-fast --no-default-features --features default-msvc - - check-component-features: - name: Component Features - Linux - needs: changes - if: ${{ needs.changes.outputs.source == 'true' }} - runs-on: ubuntu-20.04 - container: timberio/ci_image - steps: - - uses: actions/checkout@v2 - - run: echo "::add-matcher::.github/matchers/rust.json" - - run: make slim-builds - - run: echo "home/runner/.local/bin" >> "$GITHUB_PATH" - - run: make check-component-features - env: - RUSTFLAGS: "-D warnings" - - checks: - name: Checks - runs-on: ubuntu-20.04 - container: timberio/ci_image - needs: changes - steps: - - uses: actions/checkout@v2 - with: - # check-version needs tags - fetch-depth: 0 # fetch everything - - uses: actions/cache@v2.1.4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Enable Rust matcher run: echo "::add-matcher::.github/matchers/rust.json" - - name: Make slim-builds - run: make slim-builds - - name: Check markdown - if: needs.changes.outputs.markdown == 'true' - run: make check-markdown - - name: Check Cue docs - if: needs.changes.outputs.docs == 'true' - run: make check-docs + - name: Check code format - if: needs.changes.outputs.source == 'true' run: make check-fmt + - name: Check clippy if: needs.changes.outputs.source == 'true' run: make check-clippy + + - name: Unit - x86_64-unknown-linux-gnu + if: needs.changes.outputs.source == 'true' + run: make test + env: + CARGO_BUILD_JOBS: 5 + + # Validates components for adherence to the Component Specification + - name: Check Component Spec + run: make test-component-validation + + - name: Upload test results + run: scripts/upload-test-results.sh + if: always() + - name: Check version run: make check-version + - name: Check scripts run: make check-scripts - - name: Check helm dependencies - if: needs.changes.outputs.helm == 'true' - run: make check-helm-dependencies - - name: Check helm lint - if: needs.changes.outputs.helm == 'true' - run: make check-helm-lint - - name: Check that Helm template snapshots don't diverge from Helm - if: needs.changes.outputs.helm == 'true' - run: make check-helm-snapshots - - name: Check that generated Kubernetes YAMLs don't diverge from Helm - if: needs.changes.outputs.helm == 'true' - run: make check-kubernetes-yaml + - name: Check events if: needs.changes.outputs.source == 'true' run: make check-events - - name: Check cargo deny advisories - if: needs.changes.outputs.dependencies == 'true' - uses: EmbarkStudios/cargo-deny-action@v1 - with: - command: check advisories - - name: Check cargo deny licenses + + - name: Check that the 3rd-party license file is up to date if: needs.changes.outputs.dependencies == 'true' - uses: EmbarkStudios/cargo-deny-action@v1 - with: - command: check licenses + run: make check-licenses + + - name: Check Cue docs + if: needs.changes.outputs.cue == 'true' + run: make check-docs + + - name: Check Markdown + if: needs.changes.outputs.markdown == 'true' + run: make check-markdown + + - name: Check Component Docs + if: needs.changes.outputs.source == 'true' || needs.changes.outputs.component_docs == 'true' + run: make check-component-docs + + - name: Check Rust Docs + if: needs.changes.outputs.source == 'true' + run: cd rust-doc && make docs + + - name: VRL - Linux + if: needs.changes.outputs.source == 'true' || needs.changes.outputs.cue == 'true' + run: cargo vdev test-vrl + + - name: Build VRL Playground + if: needs.changes.outputs.source == 'true' || needs.changes.outputs.dependencies == 'true' + run: | + cd lib/vector-vrl/web-playground/ + wasm-pack build --target web --out-dir public/pkg - master-failure: - name: master-failure - if: failure() && github.ref == 'refs/heads/master' - needs: - - cancel-previous - - changes - - cross-linux - - test-misc - - test-linux - - test-mac - - test-windows - - check-component-features - - checks + # This is a required status check, so it always needs to run if prior jobs failed, in order to mark the status correctly. + all-checks: + name: Test Suite runs-on: ubuntu-20.04 + timeout-minutes: 5 + if: always() + needs: [changes, checks] + env: + FAILED: ${{ contains(needs.*.result, 'failure') }} steps: - - name: Discord notification - env: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@0.3.0 - with: - args: "Master tests failed: " + - run: | + echo "failed=${{ env.FAILED }}" + if [[ "$FAILED" == "true" ]] ; then + exit 1 + else + exit 0 + fi diff --git a/.github/workflows/unit_mac.yml b/.github/workflows/unit_mac.yml new file mode 100644 index 0000000000000..5426f6bc51b40 --- /dev/null +++ b/.github/workflows/unit_mac.yml @@ -0,0 +1,68 @@ +name: Unit - Mac + +on: + workflow_call: + +permissions: + statuses: write + +jobs: + unit-mac: + runs-on: macos-13 + timeout-minutes: 90 + env: + CARGO_INCREMENTAL: 0 + steps: + - name: (PR review) Set latest commit status as pending + if: ${{ github.event_name == 'pull_request_review' }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Unit - Mac + status: pending + + - name: (PR review) Checkout PR branch + if: ${{ github.event_name == 'pull_request_review' }} + uses: actions/checkout@v4 + with: + ref: ${{ github.event.review.commit_id }} + + - name: Checkout branch + if: ${{ github.event_name != 'pull_request_review' }} + uses: actions/checkout@v4 + + - uses: actions/cache@v4 + name: Cache Cargo registry + index + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - run: bash scripts/environment/bootstrap-macos.sh + - run: bash scripts/environment/prepare.sh + - run: echo "::add-matcher::.github/matchers/rust.json" + + # Some tests e.g. `reader_exits_cleanly_when_writer_done_and_in_flight_acks` are flaky. + - name: Run tests + uses: nick-fields/retry@v3 + with: + timeout_minutes: 45 + max_attempts: 3 + command: make test + + - run: make test-behavior + + - name: (PR review) Set latest commit status as ${{ job.status }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + if: always() && github.event_name == 'pull_request_review' + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Unit - Mac + status: ${{ job.status }} diff --git a/.github/workflows/unit_windows.yml b/.github/workflows/unit_windows.yml new file mode 100644 index 0000000000000..357ce89557a74 --- /dev/null +++ b/.github/workflows/unit_windows.yml @@ -0,0 +1,44 @@ +name: Unit - Windows + +on: + workflow_call: + +permissions: + statuses: write + +jobs: + + test-windows: + runs-on: windows-2022-8core + timeout-minutes: 60 + steps: + - name: (PR review) Set latest commit status as pending + if: ${{ github.event_name == 'pull_request_review' }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Unit - Windows + status: pending + + - name: (PR review) Checkout PR branch + if: ${{ github.event_name == 'pull_request_review' }} + uses: actions/checkout@v4 + with: + ref: ${{ github.event.review.commit_id }} + + - name: Checkout branch + if: ${{ github.event_name != 'pull_request_review' }} + uses: actions/checkout@v4 + + - run: .\scripts\environment\bootstrap-windows-2022.ps1 + - run: make test + + - name: (PR review) Set latest commit status as ${{ job.status }} + uses: myrotvorets/set-commit-status-action@v2.0.1 + if: always() && github.event_name == 'pull_request_review' + with: + sha: ${{ github.event.review.commit_id }} + token: ${{ secrets.GITHUB_TOKEN }} + context: Unit - Windows + status: ${{ job.status }} diff --git a/.gitignore b/.gitignore index 81c6992b41d0c..24b0593d51d6c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,12 @@ +cargo-timing*.html +*.pyc *.iml *.tmp +*~ **/*.rs.bk .DS_Store -.idea/ -.vscode/ +.dir-locals.el checkpoints/* -logs*/ miniodat bench_output.txt sample.log @@ -13,3 +14,11 @@ scripts/package-lock.json target node_modules tests/data/wasm/*/target +heaptrack.* +massif.* + +# tilt +tilt_modules/ + +# Jetbrains +.idea/ diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000000000..0aec50e6ede78 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.1.4 diff --git a/.rustfmt.toml b/.rustfmt.toml index 88ece5e1e4485..3d8af21ab6c20 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -1,5 +1,9 @@ -# Using defaults. -# Not stable yet. -# indent_style = "Block" +edition = "2021" +newline_style = "unix" reorder_imports = true -edition = "2018" + +# Nightly only features +# unstable_features = true +# imports_granularity = "Crate" +# group_imports = "StdExternalCrate" +# indent_style = "Block" diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000000..cd54fcdcfb07d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6 @@ +# Changelog + +Vector maintains [release notes] for each Vector release. Within the notes you +can find a summary of the release, highlights, and a comprehensive changelog. + +[release notes]: https://vector.dev/releases/ diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d0058742be721..def0c0266ffa4 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,16 +1,11 @@ # Code of Conduct - - -1. [Our Pledge](#our-pledge) -1. [Our Standards](#our-standards) -1. [Our Responsibilities](#our-responsibilities) -1. [Scope](#scope) -1. [Enforcement](#enforcement) -1. [Attribution](#attribution) - - - +- [Our Pledge](#our-pledge) +- [Our Standards](#our-standards) +- [Our Responsibilities](#our-responsibilities) +- [Scope](#scope) +- [Enforcement](#enforcement) +- [Attribution](#attribution) ## Our Pledge @@ -26,21 +21,21 @@ orientation. Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or +- The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities @@ -67,7 +62,7 @@ further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at [vector@timber.io](mailto:vector@timber.io). +reported by contacting the project team at [vector@datadoghq.com](mailto:vector@datadoghq.com). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d1611bcd09398..d15a6dbdcc26b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,84 +3,38 @@ First, thank you for contributing to Vector! The goal of this document is to provide everything you need to start contributing to Vector. The following TOC is sorted progressively, starting with the basics and -expanding into more specifics. - - - -1. [Introduction](#introduction) -1. [Your First Contribution](#your-first-contribution) - 1. [New sources, sinks, and transforms](#new-sources-sinks-and-transforms) -1. [Change Control](#change-control) - 1. [Git Branches](#git-branches) - 1. [Git Commits](#git-commits) - 1. [Style](#style) - 1. [Signing-off](#signing-off) - 1. [Github Pull Requests](#github-pull-requests) - 1. [Title](#title) - 1. [Reviews & Approvals](#reviews--approvals) - 1. [Bors review process](#bors-review-process) - 1. [Merge Style](#merge-style) - 1. [CI](#ci) - 1. [Releasing](#releasing) - 1. [Testing](#testing) - 1. [Skipping tests](#skipping-tests) - 1. [Daily tests](#daily-tests) - 1. [Flakey tests](#flakey-tests) - 1. [Test harness](#test-harness) -1. [Development](#development) - 1. [Setup](#setup) - 1. [Using a Docker or Podman environment](#using-a-docker-or-podman-environment) - 1. [Bring your own toolbox](#bring-your-own-toolbox) - 1. [The Basics](#the-basics) - 1. [Directory Structure](#directory-structure) - 1. [Makefile](#makefile) - 1. [Code Style](#code-style) - 1. [Logging style](#logging-style) - 1. [Feature flags](#feature-flags) - 1. [Dependencies](#dependencies) - 1. [Guidelines](#guidelines) - 1. [Sink Healthchecks](#sink-healthchecks) - 1. [Metric naming convention](#metric-naming-convention) - 1. [Option naming](#option-naming) - 1. [Testing](#testing-1) - 1. [Unit Tests](#unit-tests) - 1. [Integration Tests](#integration-tests) - 1. [Blackbox Tests](#blackbox-tests) - 1. [Tips and Tricks](#tips-and-tricks) - 1. [Testing Specific Components](#testing-specific-components) - 1. [Generating Sample Logs](#generating-sample-logs) - 1. [Benchmarking](#benchmarking) - 1. [Profiling](#profiling) - 1. [Kubernetes](#kubernetes) - 1. [Kubernetes Dev Flow](#kubernetes-dev-flow) - 1. [Requirements](#requirements) - 1. [The dev flow](#the-dev-flow) - 1. [Troubleshooting](#troubleshooting) - 1. [Going through the dev flow manually](#going-through-the-dev-flow-manually) - 1. [Kubernetes E2E tests](#kubernetes-e2e-tests) - 1. [Requirements](#requirements-1) - 1. [Running the E2E tests](#running-the-e2e-tests) -1. [Humans](#humans) - 1. [Documentation](#documentation) - 1. [Changelog](#changelog) - 1. [What makes a highlight noteworthy?](#what-makes-a-highlight-noteworthy) - 1. [How is a highlight different from a blog post?](#how-is-a-highlight-different-from-a-blog-post) -1. [Security](#security) -1. [Legal](#legal) - 1. [DCO](#dco) - 1. [Trivial changes](#trivial-changes) - 1. [Granted rights and copyright assignment](#granted-rights-and-copyright-assignment) -1. [FAQ](#faq) - 1. [Why a DCO instead of a CLA?](#why-a-dco-instead-of-a-cla) - 1. [If I’m contributing while an employee, do I still need my employer to sign something?](#if-i%E2%80%99m-contributing-while-an-employee-do-i-still-need-my-employer-to-sign-something) - 1. [What if I forgot to sign my commits?](#what-if-i-forgot-to-sign-my-commits) -1. [Contact](#contact) - - +expanding into more specifics. Everyone from a first time contributor to a +Vector team member will find this document useful. + +- [Introduction](#introduction) +- [Your First Contribution](#your-first-contribution) + - [New sources, sinks, and transforms](#new-sources-sinks-and-transforms) +- [Workflow](#workflow) + - [Git Branches](#git-branches) + - [Git Commits](#git-commits) + - [Style](#style) + - [GitHub Pull Requests](#github-pull-requests) + - [Title](#title) + - [Reviews & Approvals](#reviews--approvals) + - [Merge Style](#merge-style) + - [CI](#ci) + - [Releasing](#releasing) + - [Testing](#testing) + - [Skipping tests](#skipping-tests) + - [Daily tests](#daily-tests) + - [Flakey tests](#flakey-tests) + - [Test harness](#test-harness) + - [Running Tests Locally](#running-tests-locally) + - [Deprecations](#deprecations) + - [Dependencies](#dependencies) +- [Next steps](#next-steps) +- [Legal](#legal) + - [Contributor License Agreement](#contributor-license-agreement) + - [Granted rights and copyright assignment](#granted-rights-and-copyright-assignment) ## Introduction -1. **You're familiar with [Github](https://github.com) and the pull request +1. **You're familiar with [GitHub](https://github.com) and the pull request workflow.** 2. **You've read Vector's [docs](https://vector.dev/docs/).** 3. **You know about the [Vector community](https://vector.dev/community/). @@ -88,37 +42,70 @@ expanding into more specifics. ## Your First Contribution -1. Ensure your change has an issue! Find an +1. For large PRs or for breaking changes, ensure your change has an issue! Find an [existing issue][urls.existing_issues] or [open a new issue][urls.new_issue]. - This is where you can get a feel if the change will be accepted or not. - Changes that are questionable will have a `needs: approval` label. 2. Once approved, [fork the Vector repository][urls.fork_repo] in your own - Github account. + GitHub account (only applicable to outside contributors). 3. [Create a new Git branch][urls.create_branch]. -4. Review the Vector [change control](#change-control) and [development](#development) workflows. -5. Make your changes. -6. [Submit the branch as a pull request][urls.submit_pr] to the main Vector +4. Make your changes. +5. [Submit the branch as a pull request][urls.submit_pr] to the main Vector repo. A Vector team member should comment and/or review your pull request within a few days. Although, depending on the circumstances, it may take longer. ### New sources, sinks, and transforms -If you're contributing a new source, sink, or transform to Vector, thank you that's way cool! There's a few steps you need think about if you want to make sure we can merge your contribution. We're here to help you along with these steps but they are a blocker to getting a new integration released. - -To merge a new source, sink, or transform, you need to: +If you're thinking of contributing a new source, sink, or transform to Vector, thank you that's way cool! The answers to +the below questions are required for each newly proposed component and depending on the answers, we may elect to not +include the proposed component. If you're having trouble with any of the questions, we're available to help you. + +**Prior to beginning work on a new source or sink if a GitHub Issue does not already exist, please open one to discuss +the introduction of the new integration.** Maintainers will review the proposal with the following checklist in mind, +try and consider them when sharing your proposal to reduce the amount of time it takes to review your proposal. This +list is not exhaustive, and may be updated over time. + +- [ ] Can the proposed component’s functionality be replicated by an existing component, with a specific configuration? +(ex: Azure Event Hub as a `kafka` sink configuration) + - [ ] Alternatively implemented as a wrapper around an existing component. (ex. `axiom` wrapping `elasticsearch`) +- [ ] Can an existing component replicate the proposed component’s functionality, with non-breaking changes? +- [ ] Can an existing component be rewritten in a more generic fashion to cover both the existing and proposed functions? +- [ ] Is the proposed component generically usable or is it specific to a particular service? + - [ ] How established is the target of the integration, what is the relative market share of the integrated service? +- [ ] Is there sufficient demand for the component? + - [ ] If the integration can be served with a workaround or more generic component, how painful is this for users? +- [ ] Is the contribution from an individual or the organization owning the integrated service? (examples of +organization backed integrations: `databend` sink, `axiom` sink) + - [ ] Is the contributor committed to maintaining the integration if it is accepted? +- [ ] What is the overall complexity of the proposed design of this integration from a technical and functional +standpoint, and what is the expected ongoing maintenance burden? +- [ ] How will this integration be tested and QA’d for any changes and fixes? + - [ ] Will we have access to an account with the service if the integration is not open source? + +To merge a new source, sink, or transform, the pull request is required to: - [ ] Add tests, especially integration tests if your contribution connects to an external service. -- [ ] Add instrumentation so folks using your integration can get insight into how it's working and performing. You can see some [example of instrumentation in existing integrations](https://github.com/timberio/vector/tree/master/src/internal_events). -- [ ] Add documentation. You can see [examples in the `docs` directory](https://github.com/timberio/vector/blob/master/docs). -- [ ] Update [`.github/CODEOWNERS`](https://github.com/timberio/vector/blob/master/.github/CODEOWNERS) or talk to us about identifying someone on the team to help look after the new integration. +- [ ] Add instrumentation so folks using your integration can get insight into how it's working and performing. You can +see some [example of instrumentation in existing integrations](https://github.com/vectordotdev/vector/tree/master/src/internal_events). +- [ ] Add documentation. You can see [examples in the `docs` directory](https://github.com/vectordotdev/vector/blob/master/docs). + +When adding new integration tests, the following changes are needed in the GitHub Workflows: -## Change Control +- in `.github/workflows/integration.yml`, add another entry in the matrix definition for the new integration. +- in `.github/workflows/integration-comment.yml`, add another entry in the matrix definition for the new integration. +- in `.github/workflows/changes.yml`, add a new filter definition for files changed, and update the `changes` job +outputs to reference the filter, and finally update the outputs of `workflow_call` to include the new filter. + +## Workflow ### Git Branches -_All_ changes must be made in a branch and submitted as [pull requests](#pull-requests). -Vector does not adopt any type of branch naming style, but please use something +_All_ changes must be made in a branch and submitted as [pull requests](#github-pull-requests). + +If you want your branch to have a website preview build created, include the word `website` in the +branch. + +Otherwise, Vector does not adopt any type of branch naming style, but please use something descriptive of your changes. ### Git Commits @@ -129,34 +116,13 @@ Please ensure your commits are small and focused; they should tell a story of your change. This helps reviewers to follow your changes, especially for more complex changes. -#### Signing-off - -Your commits must include a [DCO](https://developercertificate.org/) signature. -This is simpler than it sounds; it just means that all of your commits -must contain: - -```text -Signed-off-by: Joe Smith -``` - -Git makes this easy by adding the `-s` or `--signoff` flags when you commit: - -```bash -git commit -sm 'My commit message' -``` - -We also included a `make signoff` target that handles this for you if -you forget. - -### Github Pull Requests +### GitHub Pull Requests -Once your changes are ready you must submit your branch as a [pull \ -request](https://github.com/timberio/vector/pulls). +Once your changes are ready you must submit your branch as a [pull request](https://github.com/vectordotdev/vector/pulls). #### Title -The pull request title must follow the format outlined in the [conventional \ -commits spec](https://www.conventionalcommits.org). +The pull request title must follow the format outlined in the [conventional commits spec](https://www.conventionalcommits.org). [Conventional commits](https://www.conventionalcommits.org) is a standardized format for commit messages. Vector only requires this format for commits on the `master` branch. And because Vector squashes commits before merging @@ -165,7 +131,7 @@ format. Vector performs a pull request check to verify the pull request title in case you forget. A list of allowed sub-categories is defined -[here](https://github.com/timberio/vector/tree/master/.github). +[here](https://github.com/vectordotdev/vector/blob/master/.github/semantic.yml#L21). The following are all good examples of pull request titles: @@ -187,36 +153,7 @@ All pull requests should be reviewed by: - Two Vector team members for major changes - Three Vector team members for RFCs -If there are any CODEOWNERs automatically assigned, you should also wait for -their review. - -#### Bors review process - -[![Bors enabled](https://bors.tech/images/badge_small.svg)](https://app.bors.tech/repositories/28346) - -Once you’ve reviewed the PR, instead of clicking the green “Merge Button”, leave a comment like this on the pull request: - -```text -bors r+ -``` - -Equivalently, you can comment the following: - -```text -bors merge -``` - -The pull request, as well as any other pull requests that are reviewed around the same time, will be merged into a branch called `staging`. CI will run there and report the result back. If that result is “OK”, `master` gets fast-forwarded to reach it. - -There’s also: - -```text -bors try -``` - -When this is run, your branch and master get merged into `trying`, and bors will report the results just like the `staging` branch would. Only reviewers can push to this. - -The review process is outlined in the [Review guide](REVIEWING.md). +If CODEOWNERS are assigned, a review from an individual from each of the sets of owners is required. #### Merge Style @@ -228,14 +165,23 @@ discuss if a change that large is even needed! This will produce a quicker response to the change and likely produce code that aligns better with our process. +#### Changelog + +By default, all pull requests are assumed to include user-facing changes that +need to be communicated in the project's changelog. If your pull request does +not contain user-facing changes that warrant describing in the changelog, add +the label 'no-changelog' to your PR. When in doubt, consult the vector team +for guidance. The details on how to add a changelog entry for your PR are +outlined in detail in [changelog.d/README.md](changelog.d/README.md). + ### CI -Currently Vector uses Github Actions to run tests. The workflows are defined in +Currently, Vector uses GitHub Actions to run tests. The workflows are defined in `.github/workflows`. #### Releasing -Github Actions is responsible for releasing updated versions of Vector through +GitHub Actions is responsible for releasing updated versions of Vector through various channels. #### Testing @@ -250,10 +196,10 @@ ci-condition: skip ##### Daily tests -Some long running tests are only run daily, rather than on every pull request. +Some long-running tests are only run daily, rather than on every pull request. If needed, an administrator can kick off these tests manually via the button on the [nightly build action -page](https://github.com/timberio/vector/actions?query=workflow%3Anightly) +page](https://github.com/vectordotdev/vector/actions?query=workflow%3Anightly) #### Flakey tests @@ -265,7 +211,7 @@ not have passing tests: - Does it fail if you rerun CI? - Can you reproduce locally? - Find or open an issue for the test failure - ([example](https://github.com/timberio/vector/issues/3781)) + ([example](https://github.com/vectordotdev/vector/issues/3781)) - Link the PR in the issue for the failing test so that there are more examples ##### Test harness @@ -277,745 +223,88 @@ any pull request with: /test -t ``` -## Development - -### Setup - -We're super excited to have you interested in working on Vector! Before you start you should pick how you want to develop. - -For small or first-time contributions, we recommend the Docker method. Prefer to do it yourself? That's fine too! - -#### Using a Docker or Podman environment - -> **Targets:** You can use this method to produce AARCH64, Arm6/7, as well as x86/64 Linux builds. - -Since not everyone has a full working native environment, we took our environment and stuffed it into a Docker (or Podman) container! - -This is ideal for users who want it to "Just work" and just want to start contributing. It's also what we use for our CI, so you know if it breaks we can't do anything else until we fix it. 😉 - -**Before you go farther, install Docker or Podman through your official package manager, or from the [Docker](https://docs.docker.com/get-docker/) or [Podman](https://podman.io/) sites.** - -```bash -# Optional: Only if you use `podman` -export CONTAINER_TOOL="podman" -``` - -By default, `make environment` style tasks will do a `docker pull` from Github's container repository, you can **optionally** build your own environment while you make your morning coffee ☕: - -```bash -# Optional: Only if you want to go make a coffee -make environment-prepare -``` - -Now that you have your coffee, you can enter the shell! - -```bash -# Enter a shell with optimized mounts for interactive processes. -# Inside here, you can use Vector like you have full toolchain (See below!) -make environment -# Try out a specific container tool. (Docker/Podman) -make environment CONTAINER_TOOL="podman" -# Add extra cli opts -make environment CLI_OPTS="--publish 3000:2000" -``` - -Now you can use the jobs detailed in **"Bring your own toolbox"** below. - -Want to run from outside of the environment? _Clever. Good thinking._ You can run any of the following: - -```bash -# Validate your code can compile -make check ENVIRONMENT=true -# Validate your code actually does compile (in dev mode) -make build-dev ENVIRONMENT=true -# Validate your test pass -make test SCOPE="sources::example" ENVIRONMENT=true -# Validate tests (that do not require other services) pass -make test ENVIRONMENT=true -# Validate your tests pass (starting required services in Docker) -make test-integration SCOPE="sources::example" ENVIRONMENT=true -# Validate your tests pass against a live service. -make test-integration SCOPE="sources::example" AUTOSPAWN=false ENVIRONMENT=true -# Validate all tests pass (starting required services in Docker) -make test-integration ENVIRONMENT=true -# Run your benchmarks -make bench SCOPE="transforms::example" ENVIRONMENT=true -# Format your code before pushing! -make fmt ENVIRONMENT=true -``` - -We use explicit environment opt-in as many contributors choose to keep their Rust toolchain local. - -#### Bring your own toolbox - -> **Targets:** This option is required for MSVC/Mac/FreeBSD toolchains. It can be used to build for any environment or OS. - -To build Vector on your own host will require a fairly complete development environment! - -We keep an up to date list of all dependencies used in our CI environment inside our `default.nix` file. Loosely, you'll need the following: - -- **To build Vector:** Have working Rustup, Protobuf tools, C++/C build tools (LLVM, GCC, or MSVC), Python, and Perl, `make` (the GNU one preferably), `bash`, `cmake`, and `autotools`. (Full list in [`scripts/environment/definition.nix`](./scripts/environment/definition.nix). -- **To run integration tests:** Have `docker` available, or a real live version of that service. (Use `AUTOSPAWN=false`) -- **To run `make check-component-features`:** Have `remarshal` installed. - -If you find yourself needing to run something inside the Docker environment described above, that's totally fine, they won't collide or hurt each other. In this case, you'd just run `make environment-generate`. - -We're interested in reducing our dependencies if simple options exist. Got an idea? Try it out, we'd to hear of your successes and failures! - -In order to do your development on Vector, you'll primarily use a few commands, such as `cargo` and `make` tasks you can use ordered from most to least frequently run: - -```bash -# Validate your code can compile -cargo check -make check -# Validate your code actually does compile (in dev mode) -cargo build -make build-dev -# Validate your test pass -cargo test sources::example -make test scope="sources::example" -# Validate tests (that do not require other services) pass -cargo test -make test -# Validate your tests pass (starting required services in Docker) -make test-integration scope="sources::example" autospawn=false -# Validate your tests pass against a live service. -make test-integration scope="sources::example" autospawn=false -cargo test --features docker sources::example -# Validate all tests pass (starting required services in Docker) -make test-integration -# Run your benchmarks -make bench scope="transforms::example" -cargo bench transforms::example -# Format your code before pushing! -make fmt -cargo fmt -``` - -If you run `make` you'll see a full list of all our tasks. Some of these will start Docker containers, sign commits, or even make releases. These are not common development commands and your mileage may vary. - -### The Basics - -#### Directory Structure - -- [`/.meta`](/.meta) - Project metadata used to generate documentation. -- [`/benches`](/benches) - Internal benchmarks. -- [`/config`](/config) - Public facing Vector config, included in releases. -- [`/distribution`](/distribution) - Distribution artifacts for various targets. -- [`/lib`](/lib) - External libraries that do not depend on `vector` but are used within the project. -- [`/proto`](/proto) - Protobuf definitions. -- [`/scripts`](/scripts) - Scripts used to generate docs and maintain the repo. -- [`/src`](/src) - Vector source. -- [`/tests`](/tests) - Various high-level test cases. - -#### Makefile - -Vector includes a [`Makefile`](/Makefile) in the root of the repo. This serves -as a high-level interface for common commands. Running `make` will produce -a list of make targets with descriptions. These targets will be referenced -throughout this document. - -#### Code Style - -We use `rustfmt` on `stable` to format our code and CI will verify that your -code follows -this format style. To run the following command make sure `rustfmt` has been -installed on the stable toolchain locally. - -```bash -# To install rustfmt -rustup component add rustfmt - -# To format the code -make fmt -``` - -##### Logging style - - -- Always use the [Tracing crate](https://tracing.rs/tracing/)'s key/value style for log events. -- Events should be capitalized and end with a period, `.`. -- Never use `e` or `err` - always spell out `error` to enrich logs and make it - clear what the output is. -- Prefer Display over Debug, `%error` and not `?error`. - -Nope! - -```rust -warn!("Failed to merge value: {}.", err); -``` - -Yep! - -```rust -warn!(message = "Failed to merge value.", %error); -``` - -#### Feature flags - -When a new component (a source, transform, or sink) is added, it has to be put -behind a feature flag with the corresponding name. This ensures that it is -possible to customize Vector builds. See the `features` section in `Cargo.toml` -for examples. - -In addition, during development of a particular component it is useful to -disable all other components to speed up compilation. For example, it is -possible to build and run tests only for `console` sink using - -```bash -cargo test --lib --no-default-features --features sinks-console sinks::console -``` - -In case if the tests are already built and only the component file changed, it -is around 4 times faster than rebuilding tests with all features. - -#### Dependencies - -Dependencies should be _carefully_ selected and avoided if possible. You can -see how dependencies are reviewed in the -[Reviewing guide](/REVIEWING.md#dependencies). - -If a dependency is required only by one or multiple components, but not by -Vector's core, make it optional and add it to the list of dependencies of -the features corresponding to these components in `Cargo.toml`. - -### Guidelines - -#### Sink Healthchecks - -Sinks may implement a health check as a means for validating their configuration -against the environment and external systems. Ideally, this allows the system to -inform users of problems such as insufficient credentials, unreachable -endpoints, non-existent tables, etc. They're not perfect, however, since it's -impossible to exhaustively check for issues that may happen at runtime. - -When implementing health checks, we prefer false positives to false negatives. -This means we would prefer that a health check pass and the sink then fail than -to have the health check fail when the sink would have been able to run -successfully. - -A common cause of false negatives in health checks is performing an operation -that the sink itself does not need. For example, listing all of the available S3 -buckets and checking that the configured bucket is on that list. The S3 sink -doesn't need the ability to list all buckets, and a user that knows that may not -have permitted it to do so. In that case, the health check will fail due -to bad credentials even through its credentials are sufficient for normal -operation. - -This leads to a general strategy of mimicking what the sink itself does. -Unfortunately, the fact that health checks don't have real events available to -them leads to some limitations here. The most obvious example of this is with -sinks where the exact target of a write depends on the value of some field in -the event (e.g. an interpolated Kinesis stream name). It also pops up for sinks -where incoming events are expected to conform to a specific schema. In both -cases, random test data is reasonably likely to trigger a potentially -false-negative result. Even in simpler cases, we need to think about the effects -of writing test data and whether the user would find that surprising or -invasive. The answer usually depends on the system we're interfacing with. - -In some cases, like the Kinesis example above, the right thing to do might be -nothing at all. If we require dynamic information to figure out what entity -(i.e. Kinesis stream in this case) that we're even dealing with, odds are very -low that we'll be able to come up with a way to meaningfully validate that it's -in working order. It's perfectly valid to have a health check that falls back to -doing nothing when there is a data dependency like this. - -With all that in mind, here is a simple checklist to go over when writing a new -health check: - -- [ ] Does this check perform different fallible operations from the sink itself? -- [ ] Does this check have side effects the user would consider undesirable (e.g. data pollution)? -- [ ] Are there situations where this check would fail but the sink would operate normally? - -Not all of the answers need to be a hard "no", but we should think about the -likelihood that any "yes" would lead to false negatives and balance that against -the usefulness of the check as a whole for finding problems. Because we have the -option to disable individual health checks, there's an escape hatch for users -that fall into a false negative circumstance. Our goal should be to minimize the -likelihood of users needing to pull that lever while still making a good effort -to detect common problems. - -#### Metric naming convention - -For metrics naming, Vector broadly follows the [Prometheus metric naming standards](https://prometheus.io/docs/practices/naming/). Hence, a metric name: - -- Must only contain valid characters, which are ASCII letters and digits, as well as underscores. It should match the regular expression: `[a-z_][a-z0-9_]*`. -- Metrics have a broad template: - - `___[total]` - - - The `namespace` is a single word prefix that groups metrics from a specific source, for example host-based metrics like CPU, disk, and memory are prefixed with `host`, Apache metrics are prefixed with `apache`, etc. - - The `name` describes what the metric measures. - - The `unit` is a [single base unit](https://en.wikipedia.org/wiki/SI_base_unit), for example seconds, bytes, metrics. - - The suffix should describe the unit in plural form: seconds, bytes. Accumulating counts, both with units or without, should end in `total`, for example `disk_written_bytes_total` and `http_requests_total`. - -- Where required, use tags to differentiate the characteristic of the measurement. For example, whilst `host_cpu_seconds_total` is name of the metric, we also record the `mode` that is being used for each CPU. The `mode` and the specific CPU then become tags on the metric: - -```text -host_cpu_seconds_total{cpu="0",mode="idle"} -host_cpu_seconds_total{cpu="0",mode="idle"} -host_cpu_seconds_total{cpu="0",mode="nice"} -host_cpu_seconds_total{cpu="0",mode="system"} -host_cpu_seconds_total{cpu="0",mode="user"} -host_cpu_seconds_total -``` - -#### Option naming - -When naming options for sinks, sources, and transforms it's important to keep in mind these guidelines: - -- Suffix options with their unit. Ex: `_seconds`, `_bytes`, etc. -- Don't repeat the name space in the option name, ex. `fingerprinting.fingerprint_bytes`. -- Normalize around time units where relevant and possible, for example using seconds consistently rather than seconds and milliseconds. -- Use nouns as category names, for example `fingerprint` instead of `fingerprinting`. - -### Testing - -Testing is very important since Vector's primary design principle is reliability. -You can read more about how Vector tests in our -[testing blog post](https://vector.dev/blog/how-we-test-vector/). - -#### Unit Tests - -Unit tests refer to the majority of inline tests throughout Vector's code. A -defining characteristic of unit tests is that they do not require external -services to run, therfore they should be much quicker. You can run them with: - -```bash -cargo test -``` - -#### Integration Tests - -Integration tests verify that Vector actually works with the services it -integrates with. Unlike unit tests, integration tests require external services -to run. A few rules when setting up integration tests: - -- [ ] To ensure all contributors can run integration tests, the service must - run in a Docker container. -- [ ] The service must be configured on a unique port that is configured through - an environment variable. -- [ ] Add a `test-integration-` to Vector's [`Makefile`](/Makefile) and - ensure that it starts the service before running the integration test. -- [ ] Add a `test-integration-` job to Vector's - [`.github/workflows/test.yml`](.github/workflows/test.yml) workflow and - call your make target accordingly. - -Once complete, you can run your integration tests with: - -```bash -make test-integration- -``` - -#### Blackbox Tests - -Vector also offers blackbox testing via -[Vector's test harness][urls.vector_test_harness]. This is a complex testing -suite that tests Vector's performance in real-world environments. It is -typically used for benchmarking, but also correctness testing. - -You can run these tests within a PR as described in the [CI section](#ci). - -#### Tips and Tricks +### Running Tests Locally -##### Testing Specific Components +To run tests locally, use [cargo vdev](https://github.com/vectordotdev/vector/blob/master/vdev/README.md). -If you are developing a particular component and want to quickly iterate on unit -tests related only to this component, the following approach can reduce waiting -times: +Unit tests can be run by calling `cargo vdev test`. -1. Install [cargo-watch](https://github.com/passcod/cargo-watch). -2. (Only for GNU/Linux) Install LLVM 9 (for example, package `llvm-9` on Debian) - and set `RUSTFLAGS` environment variable to use `lld` as the linker: +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. - ```sh - export RUSTFLAGS='-Clinker=clang-9 -Clink-arg=-fuse-ld=lld' - ``` +### Running other checks -3. Run in the root directory of Vector's source - - ```sh - cargo watch -s clear -s \ - 'cargo test --lib --no-default-features --features=- ::' - ``` - - For example, if the component is `add_fields` transform, the command above - turns into - - ```sh - cargo watch -s clear -s \ - 'cargo test --lib --no-default-features --features=transforms-add_fields transforms::add_fields' - ``` - -##### Generating Sample Logs - -We use `flog` to build a sample set of log files to test sending logs from a -file. This can be done with the following commands on mac with homebrew. -Installation instruction for flog can be found -[here](https://github.com/mingrammer/flog#installation). - -```bash -flog --bytes $((100 * 1024 * 1024)) > sample.log -``` - -This will create a `100MiB` sample log file in the `sample.log` file. - -### Benchmarking - -All benchmarks are placed in the [`/benches`](/benches) folder. You can -run benchmarks via the `make bench` command. In addition, Vector -maintains a full [test harness][urls.vector_test_harness] for complex -end-to-end integration and performance testing. - -### Profiling - -If you're trying to improve Vector's performance (or understand why your change -made it worse), profiling is a useful tool for seeing where time is being spent. - -While there are a bunch of useful profiling tools, a simple place to get started -is with Linux's `perf`. Before getting started, you'll likely need to give -yourself access to collect stats: +There are other checks that are run by CI before the PR can be merged. These should be run locally +first to ensure they pass. ```sh -echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid +# Run the Clippy linter to catch common mistakes. +cargo vdev check rust --clippy +# Ensure all code is properly formatted. Code can be run through `rustfmt` using `cargo fmt` to ensure it is properly formatted. +cargo vdev check fmt +# Ensure the internal metrics that Vector emits conform to standards. +cargo vdev check events +# Ensure the `LICENSE-3rdparty.csv` file is up to date with the licenses each of Vector's dependencies are published under. +cargo vdev check licenses +# Vector's documentation for each component is generated from the comments attached to the Component structs and members. +# Running this ensures that the generated docs are up to date. +make check-component-docs +# Generate the code documentation for the Vector project. +# Run this to ensure the docs can be generated without errors (warnings are acceptable at the minute). +cd rust-doc && make docs ``` -You'll also want to edit `Cargo.toml` and make sure that Vector is being built -with debug symbols in release mode. This ensures that you'll get human-readable -info in the eventual output: - -```toml -[profile.release] -debug = true -``` - -Then you can start up a release build of Vector with whatever config you're -interested in profiling. +### Updating licences ```sh -cargo run --release -- --config my_test_config.toml -``` - -Once it's started, use the `ps` tool (or equivalent) to make a note of its PID. -We'll use this to tell `perf` which process we would like it to collect data -about. - -The next step is somewhat dependent on the config you're testing. For this -example, let's assume you're using a simple TCP-mode socket source listening on -port 9000. Let's also assume that you have a large file of example input in -`access.log` (you can use a tool like `flog` to generate this). - -With all that prepared, we can send our test input to Vector and collect data -while it is under load: - -```sh -perf record -F99 --call-graph dwarf -p $VECTOR_PID socat -dd OPEN:access.log TCP:localhost:9000 -``` - -This instructs `perf` to collect data from our already-running Vector process -for the duration of the `socat` command. The `-F` argument is the frequency at -which `perf` should sample the Vector call stack. Higher frequencies will -collect more data and produce more detailed output, but can produce enormous -amounts of data that take a very long time to process. Using `-F99` works well -when your input data is large enough to take a minute or more to process, but -feel free to adjust both input size and sampling frequency for your setup. - -It's worth noting that this is not the normal way to profile programs with -`perf`. Usually you would simply run something like `perf record my_program` and -not have to worry about PIDs and such. We differ from this because we're only -interested in data about what Vector is doing while under load. Running it -directly under `perf` would collect data for the entire lifetime of the process, -including startup, shutdown, and idle time. By telling `perf` to collect data -only while the load generation command is running we get a more focused dataset -and don't have to worry about timing different commands in quick succession. - -You'll now find a `perf.data` file in your current directory with all of the -information that was collected. There are different ways to process this, but -one of the most useful is to create -a [flamegraph](http://www.brendangregg.com/flamegraphs.html). For this we can -use the `inferno` tool (available via `cargo install`): - -```sh -perf script | inferno-collapse-perf > stacks.folded -cat stacks.folded | inferno-flamegraph > flamegraph.svg -``` - -And that's it! You now have a flamegraph SVG file that can be opened and -navigated in your favorite web browser. - -### Kubernetes - -#### Kubernetes Dev Flow - -There is a special flow for when you develop portions of Vector that are -designed to work with Kubernetes, like `kubernetes_logs` source or the -`deployment/kubernetes/*.yaml` configs. - -This flow facilitates building Vector and deploying it into a cluster. - -##### Requirements - -There are some extra requirements besides what you'd normally need to work on -Vector: - -- `linux` system (create an issue if you want to work with another OS and we'll - help); -- [`skaffold`](https://skaffold.dev/) -- [`docker`](https://www.docker.com/) -- [`kubectl`](https://kubernetes.io/docs/tasks/tools/install-kubectl/) -- [`kustomize`](https://kustomize.io/) -- [`minikube`](https://minikube.sigs.k8s.io/)-powered or other k8s cluster -- [`cargo watch`](https://github.com/passcod/cargo-watch) - -##### The dev flow - -Once you have the requirements, use the `scripts/skaffold.sh dev` command. - -That's it, just one command should take care of everything! - -It will: - -1. build the `vector` binary in development mode, -2. build a docker image from this binary via `skaffold/docker/Dockerfile`, -3. deploy `vector` into the Kubernetes cluster at your current kubectl context - using the built docker image and a mix of our production deployment - configuration from the `distribution/kubernetes/*.yaml` and the special - dev-flow configuration at `skaffold/manifests/*.yaml`; see - `kustomization.yaml` for the exact specification. - -As the result of invoking the `scripts/skaffold.sh dev`, you should see -a `skaffold` process running on your local machine, printing the logs from the -deployed `vector` instance. - -To stop the process, press `Ctrl+C`, and wait for `skaffold` to clean up -the cluster state and exit. - -`scripts/skaffold.sh` wraps `skaffold`, you can use other `skaffold` subcommands -if it fits you better. - -##### Troubleshooting - -You might need to tweak `skaffold`, here are some hints: - -- `skaffold` will try to detect whether a local cluster is used; if a local - cluster is used, `skaffold` won't push the docker images it builds to a - registry. - See [this page](https://skaffold.dev/docs/environment/local-cluster/) - for how you can troubleshoot and tweak this behavior. - -- `skaffold` can rewrite the image name so that you don't try to push a docker - image to a repo that you don't have access to. - See [this page](https://skaffold.dev/docs/environment/image-registries/) - for more info. - -- For the rest of the `skaffold` tweaks you might want to apply check out - [this page](https://skaffold.dev/docs/environment/). - -##### Going through the dev flow manually - -Is some cases `skaffold` may not work. It's possible to go through the dev flow -manually, without `skaffold`. - -One of the important thing `skaffold` does is it patches the configuration to -tie things together. If you want to go without it, you'll have to take care of -that yourself, thus some additional knowledge of Kubernetes inner workings is -required. - -Essentially, the steps you have to take to deploy manually are the same that -`skaffold` will perform, and they're outlined at the previous section. - -#### Kubernetes E2E tests - -Kubernetes integration has a lot of parts that can go wrong. - -To cope with the complexity and ensure we maintain high quality, we use -E2E (end-to-end) tests. - -> E2E tests normally run at CI, so there's typically no need to run them -> manually. - -##### Requirements - -- `kubernetes` cluster (`minikube` has special support, but any cluster should - work) -- `docker` -- `kubectl` -- `bash` - -Vector release artifacts are prepared for E2E tests, so the ability to do that -is required too, see Vector [docs](https://vector.dev) for more details. - -> Note: `minikube` had a bug in the versions `1.12.x` that affected our test -> process - see https://github.com/kubernetes/minikube/issues/8799. -> Use version `1.13.0+` that has this bug fixed. - -Also: - -> Note: `minikube` has troubles running on ZFS systems. If you're using ZFS, we -> suggest using a cloud cluster or [`minik8s`](https://microk8s.io/) with local -> registry. - -##### Running the E2E tests - -To run the E2E tests, use the following command: - -```shell -CONTAINER_IMAGE_REPO=/vector-test make test-e2e-kubernetes +cargo install dd-rust-license-tool --locked +dd-rust-license-tool write +git commit -am "dd-rust-license-tool write" +git push ``` -Where `CONTAINER_IMAGE_REPO` is the docker image repo name to use, without part -after the `:`. Replace `` with your Docker Hub username. - -You can also pass additional parameters to adjust the behavior of the test: - -- `QUICK_BUILD=true` - use development build and a skaffold image from the dev - flow instead of a production docker image. Significantly speeds up the - preparation process, but doesn't guarantee the correctness in the release - build. Useful for development of the tests or Vector code to speed up the - iteration cycles. - -- `USE_MINIKUBE_CACHE=true` - instead of pushing the built docker image to the - registry under the specified name, directly load the image into - a `minikube`-controlled cluster node. - Requires you to test against a `minikube` cluster. Eliminates the need to have - a registry to run tests. - When `USE_MINIKUBE_CACHE=true` is set, we provide a default value for the - `CONTAINER_IMAGE_REPO` so it can be omitted. - Can be set to `auto` (default) to automatically detect whether to use - `minikube cache` or not, based on the current `kubectl` context. To opt-out, - set `USE_MINIKUBE_CACHE=false`. - -- `CONTAINER_IMAGE=/vector-test:tag` - completely skip the step - of building the Vector docker image, and use the specified image instead. - Useful to speed up the iterations speed when you already have a Vector docker - image you want to test against. - -- `SKIP_CONTAINER_IMAGE_PUBLISHING=true` - completely skip the image publishing - step. Useful when you want to speed up the iteration speed and when you know - the Vector image you want to test is already available to the cluster you're - testing against. - -- `SCOPE` - pass a filter to the `cargo test` command to filter out the tests, - effectively equivalent to `cargo test -- $SCOPE`. - -Passing additional commands is done like so: - -```shell -QUICK_BUILD=true USE_MINIKUBE_CACHE=true make test-e2e-kubernetes -``` - -or - -```shell -QUICK_BUILD=true CONTAINER_IMAGE_REPO=/vector-test make test-e2e-kubernetes -``` - -## Humans - -After making your change, you'll want to prepare it for Vector's users -(mostly humans). This usually entails updating documentation and announcing -your feature. - -### Documentation - -Documentation is very important to the Vector project! All documentation is -located in the `/docs` folder. To ensure your change is valid, you can run -`make check-docs`, which validates your changes to the `/docs` directory. +### Deprecations -### Changelog +When deprecating functionality in Vector, see [DEPRECATION.md](docs/DEPRECATION.md). -Developers do not need to maintain the [`Changelog`](/CHANGELOG.md). This is -automatically generated via the `make release` command. This is made possible -by the use of [conventional commit](#title) titles. +### Dependencies -#### What makes a highlight noteworthy? +When adding, modifying, or removing a dependency in Vector you may find that you need to update the +inventory of third-party licenses maintained in `LICENSE-3rdparty.csv`. This file is generated using +[dd-rust-license-tool](https://github.com/DataDog/rust-license-tool.git) and can be updated using +`cargo vdev build licenses`. -It should offer meaningful value to users. This is inherently subjective and -it is impossible to define exact rules for this distinction. But we should be -cautious not to dilute the meaning of a highlight by producing low values -highlights. +## Next steps -#### How is a highlight different from a blog post? +As discussed in the [`README`](README.md), you should continue to the following +documents: -Highlights are not blog posts. They are short one, maybe two, paragraph -announcements. Highlights should allude to, or link to, a blog post if -relevant. - -For example, [this performance increase announcement][urls.performance_highlight] -is noteworthy, but also deserves an in-depth blog post covering the work that -resulted in the performance benefit. Notice that the highlight alludes to an -upcoming blog post. This allows us to communicate a high-value performance -improvement without being blocked by an in-depth blog post. - -## Security - -Please see the [`SECURITY.md` file](/SECURITY.md). +1. **[DEVELOPING.md](docs/DEVELOPING.md)** - Everything necessary to develop +2. **[DOCUMENTING.md](docs/DOCUMENTING.md)** - Preparing your change for Vector users +3. **[DEPRECATION.md](docs/DEPRECATION.md)** - Deprecating functionality in Vector ## Legal To protect all users of Vector, the following legal requirements are made. -If you have additional questions, please [contact us](#contact). - -### DCO +If you have additional questions, please [contact us]. -Vector requires all contributors to agree to the DCO. DCO stands for Developer -Certificate of Origin and is maintained by the -[Linux Foundation](https://www.linuxfoundation.org). It is an attestation -attached to every commit made by every developer. All contributions are covered -by, and fall under, the DCO. +### Contributor License Agreement -#### Trivial changes +Vector requires all contributors to sign the Contributor License Agreement +(CLA). This gives Vector the right to use your contribution as well as ensuring +that you own your contributions and can use them for other purposes. -Trivial changes, such as spelling fixes, do not need to be signed. +The full text of the CLA can be found at [https://cla.datadoghq.com/vectordotdev/vector](https://cla.datadoghq.com/vectordotdev/vector). ### Granted rights and copyright assignment -This is covered by the DCO. Contributions are covered by the DCO and do not -require a CLA. - -## FAQ - -### Why a DCO instead of a CLA? - -It's simpler, clearer, and still protects users of Vector. We believe the DCO -more accurately embodies the principles of open-source. More info can be found -here: - -- [Gitlab's switch to DCO](https://about.gitlab.com/2017/11/01/gitlab-switches-to-dco-license/) -- [DCO vs CLA](https://opensource.com/article/18/3/cla-vs-dco-whats-difference) - -### If I’m contributing while an employee, do I still need my employer to sign something? - -Nope! The DCO confirms that you are entitled to submit the code, which assumes -that you are authorized to do so. It treats you like an adult and relies on -your accurate statement about your rights to submit a contribution. - -### What if I forgot to sign my commits? - -No problem! We made this simple with the [`signoff` Makefile target](Makefile): - -```bash -make signoff -``` - -If you prefer to do this manually: - -```bash -git commit --amend --signoff -``` - -## Contact - -If you have questions about this document or the project as a whole, please -contact us at vector@timber.io. +This is covered by the CLA. -[urls.aws_announcements]: https://aws.amazon.com/new/?whats-new-content-all.sort-by=item.additionalFields.postDateTime&whats-new-content-all.sort-order=desc&wn-featured-announcements.sort-by=item.additionalFields.numericSort&wn-featured-announcements.sort-order=asc +[contact us]: https://vector.dev/community [urls.create_branch]: https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository -[urls.existing_issues]: https://github.com/timberio/vector/issues +[urls.existing_issues]: https://github.com/vectordotdev/vector/issues [urls.fork_repo]: https://help.github.com/en/github/getting-started-with-github/fork-a-repo -[urls.github_sign_commits]: https://help.github.com/en/github/authenticating-to-github/signing-commits -[urls.new_issue]: https://github.com/timberio/vector/issues/new -[urls.push_it_to_the_limit]: https://www.youtube.com/watch?v=ueRzA9GUj9c -[urls.performance_highlight]: https://vector.dev/highlights/2020-04-11-overall-performance-increase +[urls.new_issue]: https://github.com/vectordotdev/vector/issues/new [urls.submit_pr]: https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork -[urls.vector_test_harness]: https://github.com/timberio/vector-test-harness/ +[urls.vector_test_harness]: https://github.com/vectordotdev/vector-test-harness/ diff --git a/Cargo.lock b/Cargo.lock index c1b5362a4cc1a..b7c99f5c29008 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "Inflector" version = "0.11.4" @@ -10,20 +12,32 @@ dependencies = [ "regex", ] +[[package]] +name = "RustyXML" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b5ace29ee3216de37c0546865ad08edef58b0f9e76838ed8959a84a990e58c5" + [[package]] name = "addr2line" -version = "0.14.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "gimli 0.23.0", + "gimli", ] [[package]] name = "adler" -version = "0.2.3" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "adler32" @@ -31,101 +45,303 @@ 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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-siv" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e08d0cdb774acd1e4dac11478b1a0c0d203134b2aab0ba25eb430de9b18f8b9" +dependencies = [ + "aead", + "aes", + "cipher", + "cmac", + "ctr", + "dbl", + "digest", + "zeroize", +] + [[package]] name = "ahash" -version = "0.3.8" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ - "const-random", + "getrandom 0.2.15", + "once_cell", + "version_check", ] [[package]] name = "ahash" -version = "0.4.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom 0.2.15", + "once_cell", + "version_check", + "zerocopy 0.7.31", +] [[package]] name = "aho-corasick" -version = "0.7.15" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] -name = "ansi_term" -version = "0.9.0" +name = "alloc-no-stdlib" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" [[package]] -name = "ansi_term" -version = "0.11.0" +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "amq-protocol" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0234884b3641db74d22ccc20fc2594db5f23d7d41ade5c93d7ee33d200960c" +dependencies = [ + "amq-protocol-tcp", + "amq-protocol-types", + "amq-protocol-uri", + "cookie-factory", + "nom", + "serde", +] + +[[package]] +name = "amq-protocol-tcp" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "265dca43d9dbb3d5bbb0b3ef1b0cd9044ce3aa5d697d5b66cde974d1f6063f09" +dependencies = [ + "amq-protocol-uri", + "tcp-stream", + "tracing 0.1.41", +] + +[[package]] +name = "amq-protocol-types" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7412353b58923fa012feb9a64ccc0c811747babee2e5a2fd63eb102dc8054c3" +dependencies = [ + "cookie-factory", + "nom", + "serde", + "serde_json", +] + +[[package]] +name = "amq-protocol-uri" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2be91352c805d5704784e079117d5291fd5bf2569add53c914ebce6d1a795d33" +dependencies = [ + "amq-protocol-types", + "percent-encoding", + "url", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ - "winapi 0.3.9", + "libc", ] +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + [[package]] name = "ansi_term" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ - "winapi 0.3.9", + "winapi", +] + +[[package]] +name = "anstream" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", ] [[package]] -name = "antidote" +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34fde25430d87a9388dadbe6e34d7f72a462c8b43ac8d309b42b0a8505d7e2a5" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] [[package]] name = "anyhow" -version = "1.0.38" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" + +[[package]] +name = "apache-avro" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" +checksum = "ceb7c683b2f8f40970b70e39ff8be514c95b96fcb9c4af87e1ed2cb2e10801a0" +dependencies = [ + "digest", + "lazy_static", + "libflate", + "log", + "num-bigint", + "quad-rand", + "rand 0.8.5", + "regex-lite", + "serde", + "serde_json", + "strum 0.25.0", + "strum_macros 0.25.3", + "thiserror 1.0.68", + "typed-builder 0.16.2", + "uuid", +] [[package]] name = "approx" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" dependencies = [ "num-traits", ] +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "arc-swap" -version = "0.4.8" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabe5a181f83789739c194cbe5a897dde195078fac08568d09221fd6137a7ba8" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] -name = "arrayref" -version = "0.3.6" +name = "arr_macro" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "c49336e062fa2ae8aca17a2f99c34d9c1a5d30827e8aff1cb4c294f253afe992" +dependencies = [ + "arr_macro_impl", + "proc-macro-hack", + "proc-macro-nested", +] [[package]] -name = "arrayvec" -version = "0.4.12" +name = "arr_macro_impl" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +checksum = "9c6368f9ae5c6ec403ca910327ae0c9437b0a85255b6950c90d497e6177f6e5e" dependencies = [ - "nodrop", + "proc-macro-hack", + "quote 1.0.38", + "syn 1.0.109", ] [[package]] name = "arrayvec" -version = "0.5.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ascii" @@ -135,188 +351,207 @@ checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" [[package]] name = "ascii-canvas" -version = "2.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8eb72df928aafb99fe5d37b383f2fe25bd2a765e3e5f7c365916b6f2463a29" +checksum = "ef1e3e699d84ab1b0911a1010c5c106aa34ae89aeac103be5ce0c3859db1e891" dependencies = [ - "term", + "term 1.0.1", ] [[package]] name = "assert-json-diff" -version = "1.1.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4259cbe96513d2f1073027a259fc2ca917feb3026a5a8d984e3628e490255cc0" +checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" dependencies = [ - "extend", "serde", "serde_json", ] [[package]] name = "assert_cmd" -version = "1.0.2" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc1679af9a1ab4bea16f228b05d18f8363f8327b1fa8db00d2760cfafc6b61e" +checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" dependencies = [ + "anstyle", + "bstr 1.11.3", "doc-comment", + "libc", "predicates", "predicates-core", "predicates-tree", "wait-timeout", ] +[[package]] +name = "async-broadcast" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +dependencies = [ + "event-listener 5.3.1", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + [[package]] name = "async-channel" -version = "1.5.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59740d83946db6a5af71ae25ddf9562c2b176b2ca42cf99a455f09f4a220d6b9" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", - "event-listener", + "event-listener 2.5.3", "futures-core", ] [[package]] name = "async-compression" -version = "0.3.7" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72c1f1154e234325b50864a349b9c8e56939e266a4c307c0f159812df2f9537" +checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" dependencies = [ + "brotli", "flate2", "futures-core", "memchr", - "pin-project-lite 0.2.4", - "tokio 0.2.24", - "zstd", - "zstd-safe", + "pin-project-lite", + "tokio", + "zstd 0.13.2", + "zstd-safe 7.2.1", ] [[package]] name = "async-executor" -version = "1.4.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb877970c7b440ead138f6321a3b5395d6061183af779340b65e20c0fede9146" +checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" dependencies = [ + "async-lock 2.8.0", "async-task", "concurrent-queue", - "fastrand", + "fastrand 2.3.0", "futures-lite", - "once_cell", - "vec-arena", + "slab", ] [[package]] name = "async-fs" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b3ca4f8ff117c37c278a2f7415ce9be55560b846b5bc4412aaa5d29c1c3dae2" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" dependencies = [ - "async-lock", + "async-lock 2.8.0", + "autocfg", "blocking", "futures-lite", ] [[package]] name = "async-global-executor" -version = "2.0.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6" +checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" dependencies = [ "async-channel", "async-executor", - "async-io", - "async-mutex", + "async-io 1.13.0", + "async-lock 2.8.0", "blocking", "futures-lite", - "num_cpus", "once_cell", ] +[[package]] +name = "async-global-executor-trait" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33dd14c5a15affd2abcff50d84efd4009ada28a860f01c14f9d654f3e81b3f75" +dependencies = [ + "async-global-executor", + "async-trait", + "executor-trait", +] + [[package]] name = "async-graphql" -version = "2.5.0" +version = "7.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82833e5a5a5c77b8f9ecbc003db996df7432e8afffd6ad8de2fb0dc1436d1f35" +checksum = "bfff2b17d272a5e3e201feda444e2c24b011fa722951268d1bd8b9b5bc6dc449" dependencies = [ "async-graphql-derive", "async-graphql-parser", "async-graphql-value", "async-stream", "async-trait", - "blocking", - "bson", + "base64 0.22.1", + "bytes 1.10.0", "chrono", - "chrono-tz", "fnv", - "futures-channel", "futures-timer", "futures-util", - "http", - "indexmap", - "log", - "lru", + "http 1.1.0", + "indexmap 2.7.1", + "mime", "multer", "num-traits", - "once_cell", - "pin-project-lite 0.2.4", + "pin-project-lite", "regex", "serde", "serde_json", - "sha2 0.9.2", - "spin 0.7.1", - "static_assertions", - "tempfile", - "thiserror", - "tracing 0.1.22", - "url", - "uuid 0.8.2", + "serde_urlencoded", + "static_assertions_next", + "thiserror 1.0.68", ] [[package]] name = "async-graphql-derive" -version = "2.5.0" +version = "7.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ddce4448d5f5f7c5a8ace5f8273725cb904011df9b8a8933345aad333fcbfbd" +checksum = "d8e5d0c6697def2f79ccbd972fb106b633173a6066e430b480e1ff9376a7561a" dependencies = [ "Inflector", "async-graphql-parser", - "darling", - "proc-macro-crate", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "thiserror", + "darling 0.20.10", + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.93", + "quote 1.0.38", + "strum 0.26.3", + "syn 2.0.98", + "thiserror 1.0.68", ] [[package]] name = "async-graphql-parser" -version = "2.4.6" +version = "7.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a33dd3bc63cff9e57ab8c1fb3d6a396d277fb051937ec0298281d8ad0ea39dd" +checksum = "8531ee6d292c26df31c18c565ff22371e7bdfffe7f5e62b69537db0b8fd554dc" dependencies = [ "async-graphql-value", "pest", - "pest_derive", "serde", "serde_json", ] [[package]] name = "async-graphql-value" -version = "2.0.5" +version = "7.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d3aa3cd3696ffd8decb10f5053affc78cb33ecfc545e480072bbc600e6723d" +checksum = "741110dda927420a28fbc1c310543d3416f789a6ba96859c2c265843a0a96887" dependencies = [ + "bytes 1.10.0", + "indexmap 2.7.1", "serde", "serde_json", ] [[package]] name = "async-graphql-warp" -version = "2.5.0" +version = "7.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05242b044bfb1bebf1a3f7e980f8f408d421a60df1d3fd6831b8fe8a2d43416" +checksum = "cbf737ca044361961395853a419116e35bd0adf35e1c2e8096d384521fe8f2f8" dependencies = [ "async-graphql", "futures-util", @@ -326,8405 +561,11778 @@ dependencies = [ [[package]] name = "async-io" -version = "1.3.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9315f8f07556761c3e48fec2e6b276004acf426e6dc068b2c2251854d65ee0fd" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", "concurrent-queue", - "fastrand", "futures-lite", - "libc", "log", - "nb-connect", - "once_cell", "parking", - "polling", - "vec-arena", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", "waker-fn", - "winapi 0.3.9", ] [[package]] -name = "async-lock" -version = "2.3.0" +name = "async-io" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1996609732bde4a9988bc42125f55f2af5f3c36370e27c778d5191a4a1b63bfb" +checksum = "10da8f3146014722c89e7859e1d7bb97873125d7346d10ca642ffab794355828" dependencies = [ - "event-listener", + "async-lock 2.8.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling 3.3.0", + "rustix 0.38.40", + "slab", + "tracing 0.1.41", + "waker-fn", + "windows-sys 0.48.0", ] [[package]] -name = "async-mutex" -version = "1.4.0" +name = "async-lock" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ - "event-listener", + "event-listener 2.5.3", ] [[package]] -name = "async-net" -version = "1.5.0" +name = "async-lock" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06de475c85affe184648202401d7622afb32f0f74e02192857d0201a16defbe5" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "async-io", - "blocking", - "fastrand", - "futures-lite", + "event-listener 5.3.1", + "event-listener-strategy", + "pin-project-lite", ] [[package]] -name = "async-object-pool" -version = "0.1.4" +name = "async-nats" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeb901c30ebc2fc4ab46395bbfbdba9542c16559d853645d75190c3056caf3bc" +checksum = "dbc1f1a75fd07f0f517322d103211f12d757658e91676def9a2e688774656c60" dependencies = [ - "async-std", + "base64 0.21.7", + "bytes 1.10.0", + "futures 0.3.31", + "http 0.2.9", + "memchr", + "nkeys 0.3.2", + "nuid", + "once_cell", + "rand 0.8.5", + "regex", + "ring", + "rustls 0.21.11", + "rustls-native-certs 0.6.3", + "rustls-pemfile 1.0.4", + "rustls-webpki 0.101.7", + "serde", + "serde_json", + "serde_nanos", + "serde_repr", + "thiserror 1.0.68", + "time", + "tokio", + "tokio-retry", + "tokio-rustls 0.24.1", + "tracing 0.1.41", + "url", ] [[package]] -name = "async-process" -version = "1.0.1" +name = "async-net" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8cea09c1fb10a317d1b5af8024eeba256d6554763e85ecd90ff8df31c7bbda" +checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" dependencies = [ - "async-io", + "async-io 1.13.0", "blocking", - "cfg-if 0.1.10", - "event-listener", "futures-lite", - "once_cell", - "signal-hook", - "winapi 0.3.9", ] [[package]] -name = "async-rustls" -version = "0.1.2" +name = "async-process" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f38092e8f467f47aadaff680903c7cbfeee7926b058d7f40af2dd4c878fbdee" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.0.1", "futures-lite", - "rustls 0.18.1", - "webpki", + "rustix 0.38.40", + "windows-sys 0.48.0", ] [[package]] -name = "async-std" -version = "1.9.0" +name = "async-reactor-trait" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f06685bad74e0570f5213741bea82158279a4103d988e57bfada11ad230341" +checksum = "7a6012d170ad00de56c9ee354aef2e358359deb1ec504254e0e5a3774771de0e" dependencies = [ - "async-channel", - "async-global-executor", - "async-io", - "async-lock", - "async-process", - "crossbeam-utils 0.8.1", - "futures-channel", + "async-io 1.13.0", + "async-trait", "futures-core", - "futures-io", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "num_cpus", - "once_cell", - "pin-project-lite 0.2.4", - "pin-utils", - "slab", - "wasm-bindgen-futures", + "reactor-trait", ] [[package]] -name = "async-stream" -version = "0.3.0" +name = "async-recursion" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3670df70cbc01729f901f94c887814b3c68db038aad1329a418bae178bc5295c" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ - "async-stream-impl", - "futures-core", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "async-stream-impl" -version = "0.3.0" +name = "async-signal" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3548b8efc9f8e8a5a0a2808c5bd8451a9031b9e5b879a79590304ae928b0a70" +checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "async-io 2.1.0", + "async-lock 2.8.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.40", + "signal-hook-registry", + "slab", + "windows-sys 0.48.0", ] [[package]] -name = "async-task" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" - -[[package]] -name = "async-trait" -version = "0.1.42" +name = "async-stream" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "async-stream-impl", + "futures-core", + "pin-project-lite", ] [[package]] -name = "atomic-shim" -version = "0.1.0" +name = "async-stream-impl" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20fdac7156779a1a30d970e838195558b4810dd06aa69e7c7461bdc518edf9b" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ - "crossbeam", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "atomic-waker" -version = "1.0.0" +name = "async-task" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" +checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" [[package]] -name = "atty" -version = "0.2.14" +name = "async-trait" +version = "0.1.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ - "hermit-abi", - "libc", - "winapi 0.3.9", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "autocfg" -version = "0.1.7" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] -name = "avro-rs" -version = "0.13.0" +name = "aws-config" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece550dd6710221de9bcdc1697424d8eee4fc4ca7e017479ea9d50c348465e37" -dependencies = [ - "byteorder", - "digest 0.9.0", - "lazy_static", - "libflate", - "num-bigint 0.2.6", - "rand 0.7.3", - "serde", - "serde_json", - "strum", - "strum_macros", - "thiserror", - "typed-builder 0.5.1", - "uuid 0.8.2", - "zerocopy", +checksum = "80c950a809d39bc9480207cb1cfc879ace88ea7e3a4392a8e9999e45d6e5692e" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-sdk-sso", + "aws-sdk-ssooidc", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "fastrand 2.3.0", + "hex", + "http 0.2.9", + "hyper 0.14.28", + "ring", + "time", + "tokio", + "tracing 0.1.41", + "zeroize", ] [[package]] -name = "backtrace" -version = "0.3.55" +name = "aws-credential-types" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598" +checksum = "60e8f6b615cb5fc60a98132268508ad104310f0cfb25a1c22eee76efdf9154da" dependencies = [ - "addr2line", - "cfg-if 1.0.0", - "libc", - "miniz_oxide", - "object 0.22.0", - "rustc-demangle", + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "zeroize", ] [[package]] -name = "base-x" -version = "0.2.8" +name = "aws-http" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" +checksum = "361c4310fdce94328cc2d1ca0c8a48c13f43009c61d3367585685a50ca8c66b6" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "http 0.2.9", + "http-body 0.4.5", + "pin-project-lite", + "tracing 0.1.41", +] [[package]] -name = "base64" -version = "0.11.0" +name = "aws-runtime" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" +checksum = "ce0953f7fc1c4428511345e28ea3e98c8b59c9e91eafae30bf76d71d70642693" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-eventstream", + "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "fastrand 2.3.0", + "http 0.2.9", + "percent-encoding", + "tracing 0.1.41", + "uuid", +] [[package]] -name = "base64" -version = "0.12.3" +name = "aws-sdk-cloudwatch" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" +checksum = "043546afc3d129d3d487c2fd121aabe4208300293f541a5c8adffdc919a603b0" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "http 0.2.9", + "regex", + "tracing 0.1.41", +] [[package]] -name = "base64" -version = "0.13.0" +name = "aws-sdk-cloudwatchlogs" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "67a5bcf460e098cf49292d216fe520b28a5d9c8dae10db0ff9a97bb2c95dd386" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "fastrand 2.3.0", + "http 0.2.9", + "regex", + "tracing 0.1.41", +] [[package]] -name = "base64-url" -version = "1.4.8" +name = "aws-sdk-elasticsearch" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8a7558a139be0909d407d70873248681e70bac73595c3ded9dba98a625c8acb" -dependencies = [ - "base64 0.13.0", +checksum = "3090fdd5bf46d4097af7f560cb7305e1ef6f3f743bb7a4531246113e823309b0" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "http 0.2.9", + "regex", + "tracing 0.1.41", ] [[package]] -name = "basic-cookies" -version = "0.1.4" +name = "aws-sdk-firehose" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb53b6b315f924c7f113b162e53b3901c05fc9966baf84d201dfcc7432a4bb38" -dependencies = [ - "lalrpop", - "lalrpop-util", +checksum = "8789c5a2d55cb3ed24d8f0635498c53e0f6413c0f9839e9cb54e130e96a81b53" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "http 0.2.9", "regex", + "tracing 0.1.41", ] [[package]] -name = "bimap" -version = "0.2.0" +name = "aws-sdk-kinesis" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505e45beaf0a1462f5548fe885edf2d83e62022b2ce8b10fef0f7686b48c9266" -dependencies = [ - "cfg-if 0.1.10", +checksum = "cbcd6e94c56f1b4881b405c0953a82d50e110311100cf2355e50fdab79d73f44" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "http 0.2.9", + "regex", + "tracing 0.1.41", ] [[package]] -name = "bincode" -version = "1.3.1" +name = "aws-sdk-kms" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d" -dependencies = [ - "byteorder", - "serde", +checksum = "374513bec90ddc64288c1f1e5cb4b95e6df6e42a47d9e332a713f97f66cf9043" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "http 0.2.9", + "regex", + "tracing 0.1.41", ] [[package]] -name = "bindgen" -version = "0.51.1" +name = "aws-sdk-s3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd71393f1ec0509b553aa012b9b58e81dadbdff7130bd3b8cba576e69b32f75" -dependencies = [ - "bitflags", - "cexpr", - "cfg-if 0.1.10", - "clang-sys", - "lazy_static", - "peeking_take_while", - "proc-macro2 1.0.24", - "quote 1.0.8", +checksum = "9dcafc2fe52cc30b2d56685e2fa6a879ba50d79704594852112337a472ddbd24" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-checksums", + "aws-smithy-eventstream", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "bytes 1.10.0", + "http 0.2.9", + "http-body 0.4.5", + "once_cell", + "percent-encoding", "regex", - "rustc-hash", - "shlex", + "tracing 0.1.41", + "url", ] [[package]] -name = "bit-set" -version = "0.5.2" +name = "aws-sdk-secretsmanager" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" -dependencies = [ - "bit-vec 0.6.3", +checksum = "14d4c6f85ab6cf9b833b2d69af57c412990a1266be5ed02bcb6c4564522cd679" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "fastrand 2.3.0", + "http 0.2.9", + "regex", + "tracing 0.1.41", ] [[package]] -name = "bit-vec" -version = "0.4.4" +name = "aws-sdk-sns" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f" +checksum = "683e4cecb5fd7500b4fce010206e0dba496b669c5fe9bbe9962c900c02a35203" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "http 0.2.9", + "regex", + "tracing 0.1.41", +] [[package]] -name = "bit-vec" -version = "0.6.3" +name = "aws-sdk-sqs" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "5736d9255f65f36df4f0812665c33fa36042b96192e6bba843ef5fcc75187cd8" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "http 0.2.9", + "regex", + "tracing 0.1.41", +] [[package]] -name = "bitflags" -version = "1.2.1" +name = "aws-sdk-sso" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "86575c7604dcdb583aba3390200e5333d8e4fe597bad54f57b190aaf4fac9771" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "http 0.2.9", + "regex", + "tracing 0.1.41", +] [[package]] -name = "bitvec" -version = "0.19.4" +name = "aws-sdk-ssooidc" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7ba35e9565969edb811639dbebfe34edc0368e472c5018474c8eb2543397f81" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", +checksum = "bef0d7c1d0730adb5e85407174483a579e39576e0f4350ecd0fac69ec1217b1b" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes 1.10.0", + "http 0.2.9", + "regex", + "tracing 0.1.41", ] [[package]] -name = "blake2b_simd" -version = "0.5.11" +name = "aws-sdk-sts" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "constant_time_eq", +checksum = "f45778089751d5aa8645a02dd60865fa0eea39f00be5db2c7779bc50b83db19a" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "http 0.2.9", + "regex", + "tracing 0.1.41", ] [[package]] -name = "block-buffer" -version = "0.7.3" +name = "aws-sigv4" +version = "1.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +checksum = "0bc5bbd1e4a2648fd8c5982af03935972c24a2f9846b396de661d351ee3ce837" dependencies = [ - "block-padding 0.1.5", - "byte-tools", - "byteorder", - "generic-array 0.12.3", + "aws-credential-types", + "aws-smithy-eventstream", + "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes 1.10.0", + "form_urlencoded", + "hex", + "hmac", + "http 0.2.9", + "http 1.1.0", + "once_cell", + "percent-encoding", + "sha2", + "time", + "tracing 0.1.41", ] [[package]] -name = "block-buffer" -version = "0.9.0" +name = "aws-smithy-async" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +checksum = "fa59d1327d8b5053c54bf2eaae63bf629ba9e904434d0835a28ed3c0ed0a614e" dependencies = [ - "block-padding 0.2.1", - "generic-array 0.14.4", + "futures-util", + "pin-project-lite", + "tokio", ] [[package]] -name = "block-padding" -version = "0.1.5" +name = "aws-smithy-checksums" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +checksum = "c5a373ec01aede3dd066ec018c1bc4e8f5dd11b2c11c59c8eef1a5c68101f397" dependencies = [ - "byte-tools", + "aws-smithy-http", + "aws-smithy-types", + "bytes 1.10.0", + "crc32c", + "crc32fast", + "hex", + "http 0.2.9", + "http-body 0.4.5", + "md-5", + "pin-project-lite", + "sha1", + "sha2", + "tracing 0.1.41", ] [[package]] -name = "block-padding" -version = "0.2.1" +name = "aws-smithy-eventstream" +version = "0.60.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +checksum = "8b18559a41e0c909b77625adf2b8c50de480a8041e5e4a3f5f7d177db70abc5a" +dependencies = [ + "aws-smithy-types", + "bytes 1.10.0", + "crc32fast", +] [[package]] -name = "blocking" -version = "1.0.2" +name = "aws-smithy-http" +version = "0.60.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9" +checksum = "7809c27ad8da6a6a68c454e651d4962479e81472aa19ae99e59f9aba1f9713cc" dependencies = [ - "async-channel", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", + "aws-smithy-eventstream", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes 1.10.0", + "bytes-utils", + "futures-core", + "http 0.2.9", + "http-body 0.4.5", "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing 0.1.41", ] [[package]] -name = "bloom" -version = "0.3.2" +name = "aws-smithy-json" +version = "0.60.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00ac8e5056d6d65376a3c1aa5c7c34850d6949ace17f0266953a254eb3d6fe8" +checksum = "4683df9469ef09468dad3473d129960119a0d3593617542b7d52086c8486f2d6" dependencies = [ - "bit-vec 0.4.4", + "aws-smithy-types", ] [[package]] -name = "bollard" -version = "0.9.1" +name = "aws-smithy-query" +version = "0.60.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcee456f2103b858b1ca8eb2edd35e413ebba1f32f04b1db52cd366b9ad4fe40" +checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb" dependencies = [ - "base64 0.12.3", - "bollard-stubs", - "bytes 0.5.6", - "chrono", - "ct-logs", - "dirs-next 1.0.2", - "futures-core", - "futures-util", - "hex", - "http", - "hyper 0.13.10", - "hyper-rustls", - "hyper-unix-connector", - "log", - "mio-named-pipes", - "pin-project 0.4.27", - "rustls 0.18.1", - "rustls-native-certs", - "serde", - "serde_derive", - "serde_json", - "serde_urlencoded 0.6.1", - "thiserror", - "tokio 0.2.24", - "tokio-util", - "url", - "webpki-roots 0.20.0", - "winapi 0.3.9", + "aws-smithy-types", + "urlencoding", ] [[package]] -name = "bollard-stubs" -version = "1.40.6" +name = "aws-smithy-runtime" +version = "1.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf72b3eeb9a5cce41979def2c7522cb830356c0621ca29c0b766128c4e7fded" +checksum = "d526a12d9ed61fadefda24abe2e682892ba288c2018bcb38b1b4c111d13f6d92" dependencies = [ - "chrono", - "serde", - "serde_with", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes 1.10.0", + "fastrand 2.3.0", + "h2 0.3.26", + "http 0.2.9", + "http-body 0.4.5", + "http-body 1.0.0", + "httparse", + "hyper 0.14.28", + "hyper-rustls 0.24.2", + "once_cell", + "pin-project-lite", + "pin-utils", + "rustls 0.21.11", + "tokio", + "tracing 0.1.41", ] [[package]] -name = "bson" -version = "1.1.0" +name = "aws-smithy-runtime-api" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11f16001d679cb13d14b2c93c7d0fa13bb484a87c34a6c4c39707ad936499b5" +checksum = "92165296a47a812b267b4f41032ff8069ab7ff783696d217f0994a0d7ab585cd" dependencies = [ - "base64 0.12.3", - "chrono", - "hex", - "lazy_static", - "linked-hash-map", - "rand 0.7.3", - "serde", - "serde_json", + "aws-smithy-async", + "aws-smithy-types", + "bytes 1.10.0", + "http 0.2.9", + "http 1.1.0", + "pin-project-lite", + "tokio", + "tracing 0.1.41", + "zeroize", ] [[package]] -name = "bstr" -version = "0.2.14" +name = "aws-smithy-types" +version = "1.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf" +checksum = "c7b8a53819e42f10d0821f56da995e1470b199686a1809168db6ca485665f042" dependencies = [ - "lazy_static", - "memchr", - "regex-automata", + "base64-simd", + "bytes 1.10.0", + "bytes-utils", + "futures-core", + "http 0.2.9", + "http 1.1.0", + "http-body 0.4.5", + "http-body 1.0.0", + "http-body-util", + "itoa", + "num-integer", + "pin-project-lite", + "pin-utils", + "ryu", "serde", + "time", + "tokio", + "tokio-util", ] [[package]] -name = "build_const" -version = "0.2.1" +name = "aws-smithy-xml" +version = "0.60.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" +checksum = "ab0b0166827aa700d3dc519f72f8b3a91c35d0b8d042dc5d643a91e6f80648fc" +dependencies = [ + "xmlparser", +] [[package]] -name = "built" -version = "0.4.4" +name = "aws-types" +version = "1.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f1b029cb3929cb0c99780b0c10fe512f60be5438adf5f757e4afa1bc75a984" +checksum = "dfbd0a668309ec1f66c0f6bda4840dd6d4796ae26d699ebc266d7cc95c6d040f" dependencies = [ - "cargo-lock", - "chrono", - "git2", + "aws-credential-types", + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "rustc_version 0.4.1", + "tracing 0.1.41", ] [[package]] -name = "bumpalo" -version = "3.4.0" +name = "axum" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core 0.3.4", + "bitflags 1.3.2", + "bytes 1.10.0", + "futures-util", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.28", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 0.1.2", + "tokio", + "tower", + "tower-layer", + "tower-service", +] [[package]] -name = "byte-tools" -version = "0.3.1" +name = "axum" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +dependencies = [ + "async-trait", + "axum-core 0.4.5", + "bytes 1.10.0", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 1.0.1", + "tower", + "tower-layer", + "tower-service", +] [[package]] -name = "byteorder" -version = "1.4.2" +name = "axum-core" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes 1.10.0", + "futures-util", + "http 0.2.9", + "http-body 0.4.5", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] [[package]] -name = "bytes" -version = "0.4.12" +name = "axum-core" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ - "byteorder", - "iovec", + "async-trait", + "bytes 1.10.0", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 1.0.1", + "tower-layer", + "tower-service", ] [[package]] -name = "bytes" -version = "0.5.6" +name = "azure_core" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" +checksum = "4ccd63c07d1fbfb3d4543d7ea800941bf5a30db1911b9b9e4db3b2c4210a434f" dependencies = [ + "async-trait", + "base64 0.21.7", + "bytes 1.10.0", + "dyn-clone", + "futures 0.3.31", + "getrandom 0.2.15", + "http-types", + "log", + "paste", + "pin-project", + "quick-xml", + "rand 0.8.5", + "reqwest 0.11.26", + "rustc_version 0.4.1", "serde", + "serde_json", + "time", + "url", + "uuid", ] [[package]] -name = "bytes" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" - -[[package]] -name = "bytesize" -version = "1.0.1" +name = "azure_identity" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a18687293a1546b67c246452202bbbf143d239cb43494cc163da14979082da" +checksum = "8bd7ea32ca7eb66ff4757f83baac702ff11d469e5de365b6bc6f79f9c25d3436" +dependencies = [ + "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 = "cache-padded" -version = "1.1.1" +name = "azure_storage" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" +checksum = "83ca0a07f89fd72a006da4713e93af3d6c44a693e61a1c3c2e7985de39c182e8" +dependencies = [ + "RustyXML", + "async-trait", + "azure_core", + "bytes 1.10.0", + "futures 0.3.31", + "hmac", + "log", + "serde", + "serde_derive", + "serde_json", + "sha2", + "time", + "url", + "uuid", +] [[package]] -name = "cargo-lock" -version = "4.0.1" +name = "azure_storage_blobs" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8504b63dd1249fd1745b7b4ef9b6f7b107ddeb3c95370043c7dbcc38653a2679" +checksum = "8096c04d370118323c42b2752aa1883e4880a56ef65239f317b359f263b6e194" dependencies = [ - "semver 0.9.0", + "RustyXML", + "azure_core", + "azure_storage", + "bytes 1.10.0", + "futures 0.3.31", + "log", "serde", - "toml", + "serde_derive", + "serde_json", + "time", "url", + "uuid", ] [[package]] -name = "cassowary" -version = "0.3.0" +name = "backoff" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "getrandom 0.2.15", + "instant", + "rand 0.8.5", +] [[package]] -name = "cast" -version = "0.2.3" +name = "backon" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0" +checksum = "0c1a6197b2120bb2185a267f6515038558b019e92b832bb0320e96d66268dcf9" dependencies = [ - "rustc_version", + "fastrand 1.9.0", + "futures-core", + "pin-project", + "tokio", ] [[package]] -name = "cc" -version = "1.0.66" +name = "backtrace" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ - "jobserver", + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide 0.7.1", + "object", + "rustc-demangle", ] [[package]] -name = "cexpr" -version = "0.3.6" +name = "base16" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27c3610c36aee21ce8ac510e6224498de4228ad772a171ed65643a24693a5a8" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base62" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fce5b5fb86b0c57c20c834c1b412fd09c77c8a59b9473f86272709e78874cd1d" +checksum = "10e52a7bcb1d6beebee21fb5053af9e3cbb7a7ed1a4909e534040e676437ab1f" dependencies = [ - "nom 4.2.3", + "rustversion", ] [[package]] -name = "cfg-if" -version = "0.1.10" +name = "base64" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] -name = "cfg-if" -version = "1.0.0" +name = "base64" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] -name = "chrono" -version = "0.4.19" +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 = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" dependencies = [ - "libc", - "num-integer", - "num-traits", - "serde", - "time 0.1.44", - "winapi 0.3.9", + "outref", + "vsimd", ] [[package]] -name = "chrono-tz" -version = "0.5.3" +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bit-set" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2554a3155fec064362507487171dcc4edc3df60cb10f3a1fb10ed8094822b120" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "chrono", - "parse-zoneinfo", + "bit-vec 0.8.0", ] [[package]] -name = "cidr-utils" -version = "0.5.0" +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" + +[[package]] +name = "bitmask-enum" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89f7b6372f3c783f6d44c0da283d3694af4104967bf2371cb3bdc9d09e1cfe00" +checksum = "e6cbbb8f56245b5a479b30a62cdc86d26e2f35c2b9f594bc4671654b03851380" dependencies = [ - "debug-helper", - "num-bigint 0.3.1", - "num-traits", - "once_cell", - "regex", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "cipher" -version = "0.2.5" +name = "bitvec" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ - "generic-array 0.14.4", + "funty", + "radium", + "tap", + "wyz", ] [[package]] -name = "clang-sys" -version = "0.28.1" +name = "block-buffer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81de550971c976f176130da4b2978d3b524eaa0fd9ac31f3ceb5ae1231fb4853" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "glob 0.3.0", - "libc", - "libloading 0.5.2", + "generic-array", ] [[package]] -name = "clap" -version = "2.33.3" +name = "block-padding" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" dependencies = [ - "ansi_term 0.11.0", - "atty", - "bitflags", - "strsim 0.8.0", - "textwrap", - "unicode-width", - "vec_map", + "generic-array", ] [[package]] -name = "cloudabi" -version = "0.0.3" +name = "blocking" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" dependencies = [ - "bitflags", + "async-channel", + "async-lock 2.8.0", + "async-task", + "fastrand 2.3.0", + "futures-io", + "futures-lite", + "piper", + "tracing 0.1.41", ] [[package]] -name = "cmake" -version = "0.1.45" +name = "bloomy" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb6210b637171dfba4cda12e579ac6dc73f5165ad56133e5d72ef3131f320855" +checksum = "489d2af57852b78a86478273ac6a1ef912061b6af3a439694c49f309f6ea3bdd" dependencies = [ - "cc", + "siphasher", ] [[package]] -name = "codec" -version = "0.1.0" +name = "bollard" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aed08d3adb6ebe0eff737115056652670ae290f177759aac19c30456135f94c" dependencies = [ - "bytes 0.5.6", + "base64 0.22.1", + "bollard-stubs", + "bytes 1.10.0", + "chrono", + "futures-core", + "futures-util", + "hex", + "home", + "http 1.1.0", + "http-body-util", + "hyper 1.4.1", + "hyper-named-pipe", + "hyper-rustls 0.26.0", + "hyper-util", + "hyperlocal-next", + "log", + "pin-project-lite", + "rustls 0.22.4", + "rustls-native-certs 0.7.0", + "rustls-pemfile 2.1.0", + "rustls-pki-types", + "serde", + "serde_derive", "serde_json", + "serde_repr", + "serde_urlencoded", + "thiserror 1.0.68", + "tokio", "tokio-util", - "tracing 0.1.22", + "tower-service", + "url", + "winapi", ] [[package]] -name = "codespan-reporting" -version = "0.11.0" +name = "bollard-stubs" +version = "1.44.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ce42b8998a383572e0a802d859b1f00c79b7b7474e62fff88ee5c2845d9c13" +checksum = "709d9aa1c37abb89d40f19f5d0ad6f0d88cb1581264e571c9350fc5bb89cf1c5" dependencies = [ - "termcolor", - "unicode-width", + "chrono", + "serde", + "serde_repr", + "serde_with 3.12.0", ] [[package]] -name = "colored" -version = "2.0.0" +name = "borsh" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" +checksum = "bf617fabf5cdbdc92f774bfe5062d870f228b80056d41180797abf48bed4056e" dependencies = [ - "atty", - "lazy_static", - "winapi 0.3.9", + "borsh-derive", + "cfg_aliases 0.1.1", ] [[package]] -name = "combine" -version = "3.8.1" +name = "borsh-derive" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +checksum = "f404657a7ea7b5249e36808dff544bc88a28f26e0ac40009f674b7a009d14be3" dependencies = [ - "ascii", - "byteorder", - "either", - "memchr", - "unreachable", + "once_cell", + "proc-macro-crate 2.0.0", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", + "syn_derive", ] [[package]] -name = "concurrent-queue" -version = "1.2.2" +name = "brotli" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ - "cache-padded", + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", ] [[package]] -name = "const-random" -version = "0.1.13" +name = "brotli-decompressor" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f590d95d011aa80b063ffe3253422ed5aa462af4e9867d43ce8337562bac77c4" +checksum = "e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76" dependencies = [ - "const-random-macro", - "proc-macro-hack", + "alloc-no-stdlib", + "alloc-stdlib", ] [[package]] -name = "const-random-macro" -version = "0.1.13" +name = "bson" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61570f4de0cc9c03b481c96057b3ae7c6ff7b5b35da8b0832c44f0131987a718" +dependencies = [ + "ahash 0.8.11", + "base64 0.13.1", + "bitvec", + "hex", + "indexmap 1.9.3", + "js-sys", + "once_cell", + "rand 0.8.5", + "serde", + "serde_bytes", + "serde_json", + "time", + "uuid", +] + +[[package]] +name = "bstr" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615f6e27d000a2bffbc7f2f6a8669179378fa27ee4d0a509e985dfc0a7defb40" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ - "getrandom 0.2.1", "lazy_static", - "proc-macro-hack", - "tiny-keccak", + "memchr", + "regex-automata 0.1.10", ] [[package]] -name = "const_fn" -version = "0.4.5" +name = "bstr" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +dependencies = [ + "memchr", + "regex-automata 0.4.8", + "serde", +] [[package]] -name = "constant_time_eq" -version = "0.1.5" +name = "bumpalo" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] -name = "core-foundation" -version = "0.7.0" +name = "bytecheck" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" dependencies = [ - "core-foundation-sys 0.7.0", - "libc", + "bytecheck_derive", + "ptr_meta", + "simdutf8", ] [[package]] -name = "core-foundation" -version = "0.9.1" +name = "bytecheck_derive" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" +checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" dependencies = [ - "core-foundation-sys 0.8.2", - "libc", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", ] [[package]] -name = "core-foundation-sys" -version = "0.7.0" +name = "bytemuck" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] -name = "core-foundation-sys" -version = "0.8.2" +name = "byteorder" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] -name = "cpu-time" -version = "1.0.0" +name = "bytes" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" dependencies = [ - "libc", - "winapi 0.3.9", + "byteorder", + "iovec", ] [[package]] -name = "cpuid-bool" -version = "0.1.2" +name = "bytes" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" - -[[package]] -name = "cranelift-bforest" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" dependencies = [ - "cranelift-entity", + "serde", ] [[package]] -name = "cranelift-codegen" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "bytes-utils" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e47d3a8076e283f3acd27400535992edb3ba4b5bb72f8891ad8fbe7932a7d4b9" dependencies = [ - "byteorder", - "cranelift-bforest", - "cranelift-codegen-meta", - "cranelift-codegen-shared", - "cranelift-entity", - "gimli 0.21.0", - "log", - "regalloc", - "smallvec", - "target-lexicon", - "thiserror", + "bytes 1.10.0", + "either", ] [[package]] -name = "cranelift-codegen-meta" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" + +[[package]] +name = "cargo-lock" +version = "10.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06acb4f71407ba205a07cb453211e0e6a67b21904e47f6ba1f9589e38f2e454" dependencies = [ - "cranelift-codegen-shared", - "cranelift-entity", + "semver 1.0.25", + "serde", + "toml", + "url", ] [[package]] -name = "cranelift-codegen-shared" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] -name = "cranelift-entity" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] -name = "cranelift-frontend" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "castaway" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5" dependencies = [ - "cranelift-codegen", - "log", - "smallvec", - "target-lexicon", + "rustversion", ] [[package]] -name = "cranelift-module" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "anyhow", - "cranelift-codegen", - "cranelift-entity", - "log", - "thiserror", + "cipher", ] [[package]] -name = "cranelift-native" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ - "cranelift-codegen", - "raw-cpuid 7.0.4", - "target-lexicon", + "jobserver", + "libc", ] [[package]] -name = "cranelift-object" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" -dependencies = [ - "anyhow", - "cranelift-codegen", - "cranelift-module", - "object 0.20.0", - "target-lexicon", -] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] -name = "cranelift-wasm" -version = "0.65.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "cfb-mode" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "738b8d467867f80a71351933f70461f5b56f24d5c93e0cf216e59229c968d330" dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "log", - "thiserror", - "wasmparser 0.58.0", + "cipher", ] [[package]] -name = "crc" -version = "1.8.1" +name = "cfg-if" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" -dependencies = [ - "build_const", -] +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "crc32fast" -version = "1.2.1" +name = "cfg_aliases" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" -dependencies = [ - "cfg-if 1.0.0", -] +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] -name = "criterion" -version = "0.3.3" +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70daa7ceec6cf143990669a04c7df13391d55fb27bd4079d252fca774ba244d8" -dependencies = [ - "atty", - "cast", - "clap", - "criterion-plot", - "csv", - "itertools 0.9.0", - "lazy_static", - "num-traits", - "oorandom", - "plotters", - "rayon", - "regex", - "serde", - "serde_cbor", - "serde_derive", - "serde_json", - "tinytemplate", - "walkdir", -] +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] -name = "criterion-plot" -version = "0.4.3" +name = "chacha20" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ - "cast", - "itertools 0.9.0", + "cfg-if", + "cipher", + "cpufeatures", ] [[package]] -name = "crossbeam" -version = "0.7.3" +name = "chacha20poly1305" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ - "cfg-if 0.1.10", - "crossbeam-channel 0.4.4", - "crossbeam-deque 0.7.3", - "crossbeam-epoch 0.8.2", - "crossbeam-queue", - "crossbeam-utils 0.7.2", + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", ] [[package]] -name = "crossbeam-channel" -version = "0.4.4" +name = "charset" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" +checksum = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46" dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", + "base64 0.13.1", + "encoding_rs", ] [[package]] -name = "crossbeam-channel" -version = "0.5.0" +name = "chrono" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.1", + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.6", ] [[package]] -name = "crossbeam-deque" -version = "0.7.3" +name = "chrono-tz" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" +checksum = "9c6ac4f2c0bf0f44e9161aec9675e1050aa4a530663c4a9e37e108fa948bca9f" dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "chrono", + "chrono-tz-build", + "phf", + "serde", ] [[package]] -name = "crossbeam-deque" -version = "0.8.0" +name = "chrono-tz-build" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +checksum = "e94fea34d77a245229e7746bd2beb786cd2a896f306ff491fb8cecb3074b10a7" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch 0.9.1", - "crossbeam-utils 0.8.1", + "parse-zoneinfo", + "phf_codegen", ] [[package]] -name = "crossbeam-epoch" -version = "0.8.2" +name = "ciborium" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" dependencies = [ - "autocfg 1.0.1", - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "lazy_static", - "maybe-uninit", - "memoffset 0.5.6", - "scopeguard", + "ciborium-io", + "ciborium-ll", + "serde", ] [[package]] -name = "crossbeam-epoch" -version = "0.9.1" +name = "ciborium-io" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d" -dependencies = [ - "cfg-if 1.0.0", - "const_fn", - "crossbeam-utils 0.8.1", - "lazy_static", - "memoffset 0.6.1", - "scopeguard", -] +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" [[package]] -name = "crossbeam-queue" -version = "0.2.3" +name = "ciborium-ll" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "ciborium-io", + "half", ] [[package]] -name = "crossbeam-utils" -version = "0.7.2" +name = "cidr" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg 1.0.1", - "cfg-if 0.1.10", - "lazy_static", -] +checksum = "8d18b093eba54c9aaa1e3784d4361eb2ba944cf7d0a932a830132238f483e8d8" [[package]] -name = "crossbeam-utils" -version = "0.8.1" +name = "cidr-utils" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" +checksum = "25c0a9fb70c2c2cc2a520aa259b1d1345650046a07df1b6da1d3cefcd327f43e" dependencies = [ - "autocfg 1.0.1", - "cfg-if 1.0.0", - "lazy_static", + "cidr", + "num-bigint", + "num-traits", ] [[package]] -name = "crossterm" -version = "0.18.2" +name = "cipher" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e86d73f2a0b407b5768d10a8c720cf5d2df49a9efc10ca09176d201ead4b7fb" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "bitflags", - "crossterm_winapi 0.6.2", - "lazy_static", - "libc", - "mio 0.7.7", - "parking_lot 0.11.1", - "signal-hook", - "winapi 0.3.9", + "crypto-common", + "inout", + "zeroize", ] [[package]] -name = "crossterm" -version = "0.19.0" +name = "clap" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c36c10130df424b2f3552fcc2ddcd9b28a27b1e54b358b45874f88d1ca6888c" +checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" dependencies = [ - "bitflags", - "crossterm_winapi 0.7.0", - "lazy_static", - "libc", - "mio 0.7.7", - "parking_lot 0.11.1", - "signal-hook", - "winapi 0.3.9", + "clap_builder", + "clap_derive", ] [[package]] -name = "crossterm_winapi" -version = "0.6.2" +name = "clap-verbosity-flag" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2265c3f8e080075d9b6417aa72293fc71662f34b4af2612d8d1b074d29510db" +checksum = "2678fade3b77aa3a8ff3aae87e9c008d3fb00473a41c71fbf74e91c8c7b37e84" dependencies = [ - "winapi 0.3.9", + "clap", + "log", ] [[package]] -name = "crossterm_winapi" -version = "0.7.0" +name = "clap_builder" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da8964ace4d3e4a044fd027919b2237000b24315a37c916f61809f1ff2140b9" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ - "winapi 0.3.9", + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", + "terminal_size", ] [[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-mac" -version = "0.7.0" +name = "clap_complete" +version = "4.5.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +checksum = "375f9d8255adeeedd51053574fd8d4ba875ea5fa558e86617b07f09f1680c8b6" dependencies = [ - "generic-array 0.12.3", - "subtle 1.0.0", + "clap", ] [[package]] -name = "crypto-mac" -version = "0.8.0" +name = "clap_derive" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" dependencies = [ - "generic-array 0.14.4", - "subtle 2.4.0", + "heck 0.5.0", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "crypto-mac" -version = "0.9.1" +name = "clap_lex" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca" -dependencies = [ - "generic-array 0.14.4", - "subtle 2.4.0", -] +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] -name = "crypto-mac" -version = "0.10.0" +name = "clipboard-win" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6" +checksum = "c57002a5d9be777c1ef967e33674dac9ebd310d8893e4e3437b14d5f0f6372cc" dependencies = [ - "generic-array 0.14.4", - "subtle 2.4.0", + "error-code", ] [[package]] -name = "csv" -version = "1.1.5" +name = "cmac" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d58633299b24b515ac72a3f869f8b91306a3cec616a602843a383acd6f9e97" +checksum = "8543454e3c3f5126effff9cd44d562af4e31fb8ce1cc0d3dcd8f084515dbc1aa" dependencies = [ - "bstr", - "csv-core", - "itoa", - "ryu", - "serde", + "cipher", + "dbl", + "digest", ] [[package]] -name = "csv-core" -version = "0.1.10" +name = "cmake" +version = "0.1.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" dependencies = [ - "memchr", + "cc", ] [[package]] -name = "ct-logs" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c8e13110a84b6315df212c045be706af261fd364791cad863285439ebba672e" +name = "codecs" +version = "0.1.0" dependencies = [ - "sct", + "apache-avro", + "bytes 1.10.0", + "chrono", + "csv-core", + "derivative", + "dyn-clone", + "flate2", + "futures 0.3.31", + "indoc", + "influxdb-line-protocol", + "memchr", + "ordered-float 4.6.0", + "prost 0.12.6", + "prost-reflect", + "rand 0.8.5", + "regex", + "rstest", + "serde", + "serde_json", + "serde_with 3.12.0", + "similar-asserts", + "smallvec", + "snafu 0.7.5", + "syslog_loose", + "tokio", + "tokio-util", + "tracing 0.1.41", + "tracing-test", + "uuid", + "vector-common", + "vector-config", + "vector-config-macros", + "vector-core", + "vector-lookup", + "vrl", ] [[package]] -name = "ctor" -version = "0.1.18" +name = "codespan-reporting" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10bcb9d7dcbf7002aaffbb53eac22906b64cdcc127971dcc387d8eb7c95d5560" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ - "quote 1.0.8", - "syn 1.0.58", + "termcolor", + "unicode-width 0.1.13", ] [[package]] -name = "curl" -version = "0.4.34" +name = "colorchoice" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e268162af1a5fe89917ae25ba3b0a77c8da752bdc58e7dbb4f15b91fbd33756e" -dependencies = [ - "curl-sys", - "libc", - "openssl-probe", - "openssl-sys", - "schannel", - "socket2", - "winapi 0.3.9", -] +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] -name = "curl-sys" -version = "0.4.40+curl-7.75.0" +name = "colored" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffafc1c35958318bd7fdd0582995ce4c72f4f461a8e70499ccee83a619fd562" +checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" dependencies = [ - "cc", - "libc", - "libnghttp2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", - "winapi 0.3.9", + "windows-sys 0.59.0", ] [[package]] -name = "curve25519-dalek" -version = "3.0.2" +name = "combine" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f627126b946c25a4638eec0ea634fc52506dea98db118aae985118ce7c3d723f" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" dependencies = [ + "ascii", "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle 2.4.0", - "zeroize", + "either", + "memchr", + "unreachable", ] [[package]] -name = "cvt" -version = "0.1.1" +name = "combine" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac344c7efccb80cd25bc61b2170aec26f2f693fd40e765a539a1243db48c71" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" dependencies = [ - "cfg-if 0.1.10", + "bytes 1.10.0", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", + "tokio-util", ] [[package]] -name = "darling" -version = "0.10.2" +name = "community-id" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +checksum = "9c9e701443040497976ce85ba641ef0c4a6b319307b9d93718fc76bb77540bff" dependencies = [ - "darling_core", - "darling_macro", + "anyhow", + "base64 0.21.7", + "hex", + "lazy_static", + "num_enum 0.6.1", + "sha1", ] [[package]] -name = "darling_core" -version = "0.10.2" +name = "compact_str" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +checksum = "6050c3a16ddab2e412160b31f2c871015704239bca62f72f6e5f0be631d3f644" dependencies = [ - "fnv", - "ident_case", - "proc-macro2 1.0.24", - "quote 1.0.8", - "strsim 0.9.3", - "syn 1.0.58", + "castaway", + "cfg-if", + "itoa", + "rustversion", + "ryu", + "static_assertions", ] [[package]] -name = "darling_macro" -version = "0.10.2" +name = "concurrent-queue" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ - "darling_core", - "quote 1.0.8", - "syn 1.0.58", + "crossbeam-utils", ] [[package]] -name = "darwin-libproc" -version = "0.2.0" +name = "confy" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc629b7cf42586fee31dae31f9ab73fa5ff5f0170016aa61be5fcbc12a90c516" +checksum = "45b1f4c00870f07dc34adcac82bb6a72cc5aabca8536ba1797e01df51d2ce9a0" dependencies = [ - "darwin-libproc-sys", - "libc", - "memchr", + "directories 5.0.1", + "serde", + "thiserror 1.0.68", + "toml", ] [[package]] -name = "darwin-libproc-sys" -version = "0.2.0" +name = "console" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef0aa083b94c54aa4cfd9bbfd37856714c139d1dc511af80270558c7ba3b4816" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" dependencies = [ + "encode_unicode 0.3.6", + "lazy_static", "libc", + "unicode-width 0.1.13", + "windows-sys 0.45.0", ] [[package]] -name = "dashmap" -version = "3.11.10" +name = "console-api" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f260e2fc850179ef410018660006951c1b55b79e8087e87111a2c388994b9b5" +checksum = "8030735ecb0d128428b64cd379809817e620a40e5001c54465b99ec5feec2857" dependencies = [ - "ahash 0.3.8", - "cfg-if 0.1.10", - "num_cpus", + "futures-core", + "prost 0.13.3", + "prost-types 0.13.3", + "tonic 0.12.3", + "tracing-core 0.1.33", ] [[package]] -name = "dashmap" -version = "4.0.2" +name = "console-subscriber" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" +checksum = "6539aa9c6a4cd31f4b1c040f860a1eac9aa80e7df6b05d506a6e7179936d6a01" dependencies = [ - "cfg-if 1.0.0", - "num_cpus", + "console-api", + "crossbeam-channel", + "crossbeam-utils", + "futures-task", + "hdrhistogram", + "humantime", + "hyper-util", + "prost 0.13.3", + "prost-types 0.13.3", + "serde", + "serde_json", + "thread_local", + "tokio", + "tokio-stream", + "tonic 0.12.3", + "tracing 0.1.41", + "tracing-core 0.1.33", + "tracing-subscriber", ] [[package]] -name = "data-encoding" -version = "2.3.1" +name = "const-oid" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993a608597367c6377b258c25d7120740f00ed23a2252b729b1932dd7866f908" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" [[package]] -name = "db-key" -version = "0.0.5" +name = "const_fn" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72465f46d518f6015d9cf07f7f3013a95dd6b9c2747c3d65ae0cce43929d14f" +checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" [[package]] -name = "debug-helper" -version = "0.3.10" +name = "convert_case" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8a5bb894f24f42c247f19b25928a88e31867c0f84552c05df41a9dd527435e" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] -name = "derivative" -version = "1.0.4" +name = "convert_case" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6d883546668a3e2011b6a716a7330b82eabb0151b138217f632c8243e17135" +checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", + "unicode-segmentation", ] [[package]] -name = "derivative" -version = "2.1.3" +name = "cookie-factory" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b" + +[[package]] +name = "core-foundation" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaed5874effa6cde088c644ddcdcb4ffd1511391c5be4fdd7a5ccd02c7e4a183" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "core-foundation-sys", + "libc", ] [[package]] -name = "derive_is_enum_variant" -version = "1.0.0" +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" dependencies = [ - "heck", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "memchr", ] [[package]] -name = "derive_more" -version = "0.99.11" +name = "cpufeatures" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "libc", ] [[package]] -name = "diff" -version = "0.1.12" +name = "crc" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] [[package]] -name = "difference" -version = "2.0.0" +name = "crc-catalog" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] -name = "digest" -version = "0.8.1" +name = "crc32c" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +checksum = "d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74" dependencies = [ - "generic-array 0.12.3", + "rustc_version 0.4.1", ] [[package]] -name = "digest" -version = "0.9.0" +name = "crc32fast" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ - "generic-array 0.14.4", + "cfg-if", ] [[package]] -name = "dirs" -version = "1.0.5" +name = "criterion" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" dependencies = [ - "libc", - "redox_users 0.3.5", - "winapi 0.3.9", + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "futures 0.3.31", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", ] [[package]] -name = "dirs" -version = "2.0.2" +name = "criterion-plot" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ - "cfg-if 0.1.10", - "dirs-sys", + "cast", + "itertools 0.10.5", ] [[package]] -name = "dirs-next" -version = "1.0.2" +name = "crossbeam-channel" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf36e65a80337bea855cd4ef9b8401ffce06a7baedf2e85ec467b1ac3f6e82b6" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", + "cfg-if", + "crossbeam-utils", ] [[package]] -name = "dirs-next" -version = "2.0.0" +name = "crossbeam-deque" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] -name = "dirs-sys" -version = "0.3.5" +name = "crossbeam-epoch" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ - "libc", - "redox_users 0.3.5", - "winapi 0.3.9", + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.9.0", + "scopeguard", ] [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "crossbeam-queue" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ - "libc", - "redox_users 0.4.0", - "winapi 0.3.9", + "crossbeam-utils", ] [[package]] -name = "discard" -version = "1.0.4" +name = "crossbeam-utils" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] -name = "doc-comment" -version = "0.3.3" +name = "crossterm" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" +checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" +dependencies = [ + "bitflags 2.8.0", + "crossterm_winapi", + "futures-core", + "mio", + "parking_lot", + "rustix 0.38.40", + "signal-hook", + "signal-hook-mio", + "winapi", +] [[package]] -name = "dtoa" -version = "0.4.7" +name = "crossterm_winapi" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d7ed2934d741c6b37e33e3832298e8850b53fd2d2bea03873375596c7cea4e" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] [[package]] -name = "duct" -version = "0.13.4" +name = "crunchy" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90a9c3a25aafbd538c7d40a53f83c4487ee8216c12d1c8ef2c01eb2f6ea1553" -dependencies = [ - "libc", - "once_cell", - "os_pipe", - "shared_child", -] +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] -name = "dyn-clone" -version = "1.0.4" +name = "crypto-bigint" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] [[package]] -name = "ed25519" -version = "1.0.3" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c66a534cbb46ab4ea03477eae19d5c22c01da8258030280b7bd9d8433fb6ef" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "signature", + "generic-array", + "rand_core 0.6.4", + "typenum", ] [[package]] -name = "ed25519-dalek" -version = "1.0.1" +name = "crypto_secretbox" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" dependencies = [ - "curve25519-dalek", - "ed25519", - "rand 0.7.3", - "serde", - "sha2 0.9.2", + "aead", + "cipher", + "generic-array", + "poly1305", + "salsa20", + "subtle", "zeroize", ] [[package]] -name = "either" -version = "1.6.1" +name = "csv" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] [[package]] -name = "ena" -version = "0.14.0" +name = "csv-core" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" dependencies = [ - "log", + "memchr", ] [[package]] -name = "encode_unicode" -version = "0.3.6" +name = "ctr" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] [[package]] -name = "encoding_rs" -version = "0.8.26" +name = "curl-sys" +version = "0.4.74+curl-8.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283" +checksum = "8af10b986114528fcdc4b63b6f5f021b7057618411046a4de2ba0f0149a097bf" dependencies = [ - "cfg-if 1.0.0", - "serde", + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.52.0", ] [[package]] -name = "enum-as-inner" -version = "0.3.3" +name = "curve25519-dalek" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "heck", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "rustc_version 0.4.1", + "subtle", + "zeroize", ] [[package]] -name = "env_logger" -version = "0.6.2" +name = "curve25519-dalek-derive" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "env_logger" -version = "0.8.2" +name = "darling" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26ecb66b4bdca6c1409b40fb255eefc2bd4f6d135dab3c3124f80ffa2a9661e" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" dependencies = [ - "log", - "regex", + "darling_core 0.13.4", + "darling_macro 0.13.4", ] [[package]] -name = "erased-serde" -version = "0.3.13" +name = "darling" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0465971a8cc1fa2455c8465aaa377131e1f1cf4983280f474a13e68793aa770c" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "serde", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] -name = "err-derive" -version = "0.2.4" +name = "darling_core" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22deed3a8124cff5fa835713fa105621e43bbdc46690c3a6b68328a012d350d4" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ - "proc-macro-error", - "proc-macro2 1.0.24", - "quote 1.0.8", - "rustversion", - "syn 1.0.58", - "synstructure", + "fnv", + "ident_case", + "proc-macro2 1.0.93", + "quote 1.0.38", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] -name = "error-chain" -version = "0.12.4" +name = "darling_core" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ - "version_check 0.9.2", + "fnv", + "ident_case", + "proc-macro2 1.0.93", + "quote 1.0.38", + "strsim 0.11.1", + "syn 2.0.98", ] [[package]] -name = "event-listener" -version = "2.5.1" +name = "darling_macro" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote 1.0.38", + "syn 1.0.109", +] [[package]] -name = "evmap" -version = "10.0.2" +name = "darling_macro" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e3ea06a83f97d3dc2eb06e51e7a729b418f0717a5558a5c870e3d5156dc558d" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "bytes 0.5.6", - "hashbag", - "slab", - "smallvec", + "darling_core 0.20.10", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "exitcode" -version = "1.1.2" +name = "dary_heap" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193" +checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" [[package]] -name = "extend" -version = "0.1.2" +name = "dashmap" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f47da3a72ec598d9c8937a7ebca8962a5c7a1f28444e38c2b33c771ba3f55f05" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ - "proc-macro-error", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] -name = "failure" -version = "0.1.8" +name = "dashmap" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ - "backtrace", - "failure_derive", + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] -name = "failure_derive" -version = "0.1.8" +name = "data-encoding" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "synstructure", -] +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] -name = "fake-simd" -version = "0.1.2" +name = "data-url" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" [[package]] -name = "fakedata_generator" -version = "0.2.4" +name = "databend-client" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6815202b22ccd0dd16957e52e254c52392c84edafb4d3cc0161b9f30a85dbb88" +checksum = "bd8770a1c49fa21e62a768a0de442cc3f77998a357303d56ddd3485cb7c58d3a" dependencies = [ - "rand 0.7.3", + "async-trait", + "log", + "once_cell", + "parking_lot", + "percent-encoding", + "reqwest 0.12.4", "serde", "serde_json", + "tokio", + "tokio-retry", + "tokio-stream", + "tokio-util", + "url", + "uuid", ] [[package]] -name = "fallible-iterator" -version = "0.2.0" +name = "dbl" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +checksum = "bd2735a791158376708f9347fe8faba9667589d82427ef3aed6794a8981de3d9" +dependencies = [ + "generic-array", +] [[package]] -name = "fastrand" -version = "1.4.0" +name = "deadpool" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3" +checksum = "fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490" dependencies = [ - "instant", + "async-trait", + "deadpool-runtime", + "num_cpus", + "tokio", ] [[package]] -name = "file-source" -version = "0.1.0" +name = "deadpool-runtime" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63dfa964fe2a66f3fde91fc70b267fe193d822c7e603e2a675a49a7f46ad3f49" + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ - "bstr", - "bytes 0.5.6", - "chrono", - "crc", - "dashmap 4.0.2", - "flate2", - "futures 0.3.12", - "glob 0.3.0", - "indexmap", - "libc", - "quickcheck", - "scan_fmt", + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", "serde", - "serde_json", - "tempfile", - "tokio 0.2.24", - "tracing 0.1.22", - "winapi 0.3.9", ] [[package]] -name = "filetime" -version = "0.2.13" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c122a393ea57648015bf06fbd3d372378992e86b9ff5a7a497b076a28c79efe" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall 0.1.57", - "winapi 0.3.9", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", ] [[package]] -name = "fixedbitset" -version = "0.2.0" +name = "derive_arbitrary" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] [[package]] -name = "flate2" -version = "1.0.19" +name = "derive_builder" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129" +checksum = "0350b5cb0331628a5916d6c5c0b72e97393b8b6b03b47a9284f4e7f5a405ffd7" dependencies = [ - "cfg-if 1.0.0", - "crc32fast", - "libc", - "miniz_oxide", + "derive_builder_macro", ] [[package]] -name = "flume" -version = "0.10.2" +name = "derive_builder_core" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531a685ab99b8f60a271b44d5dd1a76e55124a8c9fa0407b7a8e9cd172d5b588" +checksum = "d48cda787f839151732d396ac69e3473923d54312c070ee21e9effcaa8ca0b1d" dependencies = [ - "futures-core", - "futures-sink", - "pin-project 1.0.4", - "spinning_top", + "darling 0.20.10", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "fnv" -version = "1.0.7" +name = "derive_builder_macro" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b" +dependencies = [ + "derive_builder_core", + "syn 2.0.98", +] [[package]] -name = "foreign-types" -version = "0.3.2" +name = "derive_more" +version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ - "foreign-types-shared", + "convert_case 0.4.0", + "proc-macro2 1.0.93", + "quote 1.0.38", + "rustc_version 0.4.1", + "syn 1.0.109", ] [[package]] -name = "foreign-types-shared" -version = "0.1.1" +name = "difflib" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" [[package]] -name = "form_urlencoded" -version = "1.0.0" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "matches", - "percent-encoding", + "block-buffer", + "const-oid", + "crypto-common", + "subtle", ] [[package]] -name = "fs2" -version = "0.4.3" +name = "directories" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" dependencies = [ - "libc", - "winapi 0.3.9", + "dirs-sys 0.4.1", ] [[package]] -name = "fs_extra" -version = "1.2.0" +name = "directories" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" +checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" +dependencies = [ + "dirs-sys 0.5.0", +] [[package]] -name = "fsevent" -version = "0.4.0" +name = "dirs-next" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "bitflags", - "fsevent-sys", + "cfg-if", + "dirs-sys-next", ] [[package]] -name = "fsevent-sys" -version = "2.0.1" +name = "dirs-sys" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", + "option-ext", + "redox_users 0.4.3", + "windows-sys 0.48.0", ] [[package]] -name = "fuchsia-cprng" -version = "0.1.1" +name = "dirs-sys" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.0", + "windows-sys 0.59.0", +] [[package]] -name = "fuchsia-zircon" -version = "0.3.3" +name = "dirs-sys-next" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ - "bitflags", - "fuchsia-zircon-sys", + "libc", + "redox_users 0.4.3", + "winapi", ] [[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" +name = "displaydoc" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] [[package]] -name = "funty" -version = "1.1.0" +name = "dns-lookup" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" +checksum = "e5766087c2235fec47fafa4cfecc81e494ee679d0fd4a59887ea0919bfb0e4fc" +dependencies = [ + "cfg-if", + "libc", + "socket2 0.5.8", + "windows-sys 0.48.0", +] [[package]] -name = "futures" -version = "0.1.30" +name = "dnsmsg-parser" +version = "0.1.0" +dependencies = [ + "criterion", + "data-encoding", + "hickory-proto", + "snafu 0.7.5", +] + +[[package]] +name = "dnstap-parser" +version = "0.1.0" +dependencies = [ + "anyhow", + "base64 0.22.1", + "bytes 1.10.0", + "chrono", + "chrono-tz", + "dnsmsg-parser", + "hickory-proto", + "prost 0.12.6", + "prost-build 0.12.6", + "snafu 0.7.5", + "tracing 0.1.41", + "vector-lib", + "vrl", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] -name = "futures" -version = "0.3.12" +name = "docs-renderer" +version = "0.1.0" +dependencies = [ + "anyhow", + "serde", + "serde_json", + "snafu 0.7.5", + "tracing 0.1.41", + "vector-config", + "vector-config-common", +] + +[[package]] +name = "domain" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9052a1a50244d8d5aa9bf55cbc2fb6f357c86cc52e46c62ed390a7180cf150" +checksum = "64008666d9f3b6a88a63cd28ad8f3a5a859b8037e11bfb680c1b24945ea1c28d" dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", + "bytes 1.10.0", "futures-util", + "moka", + "octseq", + "rand 0.8.5", + "serde", + "smallvec", + "time", + "tokio", + "tracing 0.1.41", ] [[package]] -name = "futures-channel" -version = "0.3.12" +name = "duct" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846" +checksum = "37ae3fc31835f74c2a7ceda3aeede378b0ae2e74c8f1c36559fcc9ae2a4e7d3e" dependencies = [ - "futures-core", - "futures-sink", + "libc", + "once_cell", + "os_pipe", + "shared_child", ] [[package]] -name = "futures-core" -version = "0.3.12" +name = "dunce" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] -name = "futures-executor" -version = "0.3.12" +name = "dyn-clone" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e59fdc009a4b3096bf94f740a0f2424c082521f20a9b08c5c07c48d90fd9b9" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] +checksum = "feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35" [[package]] -name = "futures-intrusive" -version = "0.3.1" +name = "ecdsa" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc1529d07bd55fa54fc6c2d8460f621cfde0ae3fd2b96b2fa7eb4883478e1703" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "futures-core", - "lock_api 0.3.4", - "parking_lot 0.10.2", + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", ] [[package]] -name = "futures-io" -version = "0.3.12" +name = "ed25519" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] [[package]] -name = "futures-lite" -version = "1.11.3" +name = "ed25519-dalek" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite 0.2.4", - "waker-fn", + "curve25519-dalek", + "ed25519", + "serde", + "sha2", + "signature", + "zeroize", ] [[package]] -name = "futures-macro" -version = "0.3.12" +name = "either" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd" -dependencies = [ - "proc-macro-hack", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", -] +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] -name = "futures-sink" -version = "0.3.12" +name = "elliptic-curve" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "hkdf", + "pem-rfc7468", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] [[package]] -name = "futures-task" -version = "0.3.12" +name = "ena" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86" +checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" dependencies = [ - "once_cell", + "log", ] [[package]] -name = "futures-timer" -version = "3.0.2" +name = "encode_unicode" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] -name = "futures-util" -version = "0.3.12" +name = "encode_unicode" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b" -dependencies = [ - "futures 0.1.30", - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite 0.2.4", - "pin-utils", - "proc-macro-hack", - "proc-macro-nested", - "slab", - "tokio-io", -] +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] -name = "generic-array" -version = "0.12.3" +name = "encoding_rs" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ - "typenum", + "cfg-if", + "serde", ] [[package]] -name = "generic-array" -version = "0.14.4" +name = "endian-type" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + +[[package]] +name = "enrichment" +version = "0.1.0" dependencies = [ - "typenum", - "version_check 0.9.2", + "arc-swap", + "chrono", + "dyn-clone", + "vrl", ] [[package]] -name = "getrandom" -version = "0.1.16" +name = "enum-as-inner" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73" dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "heck 0.4.1", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", ] [[package]] -name = "getrandom" -version = "0.2.1" +name = "enum-as-inner" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6" +checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", + "heck 0.4.1", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "getset" -version = "0.1.1" +name = "enum_dispatch" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b328c01a4d71d2d8173daa93562a73ab0fe85616876f02500f53d82948c504" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" dependencies = [ - "proc-macro-error", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "once_cell", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "ghost" -version = "0.1.2" +name = "enumflags2" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "enumflags2_derive", ] [[package]] -name = "gimli" -version = "0.21.0" +name = "enumflags2_derive" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ - "indexmap", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "gimli" -version = "0.23.0" +name = "env-test-util" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" +checksum = "62a61b2faff777e62dbccd7f82541d873f96264d050c5dd7e95194f79fc4de29" [[package]] -name = "git2" -version = "0.13.15" +name = "env_filter" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f267c9da8a4de3c615b59e23606c75f164f84896e97f4dd6c15a4294de4359" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" dependencies = [ - "bitflags", - "libc", - "libgit2-sys", "log", - "url", + "regex", ] [[package]] -name = "glob" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "gloo-timers" -version = "0.2.1" +name = "env_logger" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", - "web-sys", + "log", + "regex", ] [[package]] -name = "goauth" -version = "0.8.1" +name = "env_logger" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c55b7ac37895bd6e4ca0b357c074248358c95e20cf1cf2b462603121f7b87" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" dependencies = [ - "arc-swap", - "futures 0.3.12", + "anstream", + "anstyle", + "env_filter", + "humantime", "log", - "reqwest", - "serde", - "serde_derive", - "serde_json", - "simpl", - "smpl_jwt", - "time 0.2.24", - "tokio 0.2.24", ] [[package]] -name = "graphql-introspection-query" -version = "0.1.0" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610aac641dbd2a457ad4cef34aa2827dae3f035fd214cb38c2d62d8543f3973f" -dependencies = [ - "serde", -] +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "graphql-parser" -version = "0.2.3" +name = "erased-serde" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5613c31f18676f164112732202124f373bb2103ff017b3b85ca954ea6a66ada" +checksum = "a3286168faae03a0e583f6fde17c02c8b8bba2dcc2061d0f7817066e5b0af706" dependencies = [ - "combine", - "failure", + "serde", ] [[package]] -name = "graphql_client" -version = "0.9.0" +name = "errno" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0bb4f09181e4f80018d01c612125b07e0156f3753bfac37055fe2a25e031ca8" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "doc-comment", - "graphql_query_derive", - "serde", - "serde_json", + "libc", + "windows-sys 0.52.0", ] [[package]] -name = "graphql_client_codegen" -version = "0.9.0" +name = "error-chain" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e304c223c809b3bff4614018f8e6d9edb176b31d64ed9ea48b6ae8b1a03abb9" +checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" dependencies = [ - "failure", - "graphql-introspection-query", - "graphql-parser", - "heck", - "lazy_static", - "proc-macro2 1.0.24", - "quote 1.0.8", - "serde", - "serde_json", - "syn 1.0.58", + "version_check", ] [[package]] -name = "graphql_query_derive" -version = "0.9.0" +name = "error-code" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1f6b14d5ce549227aa9e649cd9d36d008b91021275a8e0a67d71cef815adc2f" -dependencies = [ - "failure", - "graphql_client_codegen", - "proc-macro2 1.0.24", - "syn 1.0.58", -] +checksum = "281e452d3bad4005426416cdba5ccfd4f5c1280e10099e21db27f7c1c28347fc" [[package]] -name = "grok" -version = "1.0.1" +name = "event-listener" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb3589fd11536d94f647547a58d9f5165959dc72cc561e7fcdf99ef935171b9" -dependencies = [ - "glob 0.3.0", - "onig", -] +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] -name = "h2" -version = "0.2.7" +name = "event-listener" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" +checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1" dependencies = [ - "bytes 0.5.6", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio 0.2.24", - "tokio-util", - "tracing 0.1.22", - "tracing-futures 0.2.4", + "concurrent-queue", + "parking", + "pin-project-lite", ] [[package]] -name = "half" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3" - -[[package]] -name = "hashbag" -version = "0.1.3" +name = "event-listener" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9be661681f30f8ef0f5bd6a2bff28b16cbcffc0e1b79d18558b74d5e1817fbb" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] [[package]] -name = "hashbrown" -version = "0.9.1" +name = "event-listener-strategy" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "ahash 0.4.7", + "event-listener 5.3.1", + "pin-project-lite", ] [[package]] -name = "headers" -version = "0.3.3" +name = "evmap" +version = "10.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62689dc57c7456e69712607ffcbd0aa1dfcccf9af73727e9b25bc1825375cac3" +checksum = "6e3ea06a83f97d3dc2eb06e51e7a729b418f0717a5558a5c870e3d5156dc558d" dependencies = [ - "base64 0.13.0", - "bitflags", - "bytes 1.0.1", - "headers-core", - "http", - "mime", - "sha-1 0.8.2", - "time 0.1.44", + "hashbag", + "slab", + "smallvec", ] [[package]] -name = "headers-core" +name = "evmap-derive" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +checksum = "332b1937705b7ed2fce76837024e9ae6f41cd2ad18a32c052de081f89982561b" dependencies = [ - "http", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", ] [[package]] -name = "heck" -version = "0.3.2" +name = "executor-trait" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" +checksum = "1a1052dd43212a7777ec6a69b117da52f5e52f07aec47d00c1a2b33b85d06b08" dependencies = [ - "unicode-segmentation", + "async-trait", ] [[package]] -name = "heim" -version = "0.1.0-rc.1" +name = "exitcode" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a653442b9bdd11a77d3753a60443c60c4437d3acac8e6c3d4a6a9acd7cceed" +checksum = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193" + +[[package]] +name = "fakedata" +version = "0.1.0" dependencies = [ - "heim-common", - "heim-cpu", - "heim-disk", - "heim-host", - "heim-memory", - "heim-net", - "heim-process", - "heim-runtime", - "heim-sensors", - "heim-virt", + "chrono", + "fakedata_generator", + "rand 0.8.5", ] [[package]] -name = "heim-common" -version = "0.1.0-rc.1" +name = "fakedata_generator" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767e6e47cf88abe7c9a5ebb4df82f180d30d9c0ba0269b6d166482461765834" +checksum = "57b82fba4b485b819fde74012109688a9d2bd4ce7b22583ac12c9fa239f74a02" dependencies = [ - "cfg-if 1.0.0", - "core-foundation 0.9.1", - "futures-core", - "futures-util", - "lazy_static", - "libc", - "mach", - "nix 0.19.1", - "pin-utils", - "uom", - "winapi 0.3.9", + "passt", + "rand 0.8.5", + "serde", + "serde_json", ] [[package]] -name = "heim-cpu" -version = "0.1.0-rc.1" +name = "fallible-iterator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba5fb13a3b90581d22b4edf99e87c54316444622ae123d36816a227a7caa6df" -dependencies = [ - "cfg-if 1.0.0", - "futures 0.3.12", - "glob 0.3.0", - "heim-common", - "heim-runtime", - "lazy_static", - "libc", - "mach", - "ntapi", - "smol", - "winapi 0.3.9", -] +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] -name = "heim-disk" -version = "0.1.0-rc.1" +name = "fancy-regex" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75603ff3868851c04954ee86bf610a6bd45be2732a0e81c35fd72b2b90fa4718" +checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "core-foundation 0.9.1", - "heim-common", - "heim-runtime", - "libc", - "mach", - "widestring", - "winapi 0.3.9", + "bit-set", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] -name = "heim-host" -version = "0.1.0-rc.1" +name = "fastrand" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9abf6cd02bc4f6e6aa31a7f80702a2d0e574f4f2c6156a93c3550eb036304722" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ - "cfg-if 1.0.0", - "heim-common", - "heim-runtime", - "lazy_static", - "libc", - "log", - "mach", - "ntapi", - "platforms", - "winapi 0.3.9", + "instant", ] [[package]] -name = "heim-memory" -version = "0.1.0-rc.1" +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "ff" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa81bccc5e81ab0c68f520ecba5cb42817bacabfc6120160de886754ad0e3e1" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "cfg-if 1.0.0", - "heim-common", - "heim-runtime", - "lazy_static", - "libc", - "mach", - "winapi 0.3.9", + "rand_core 0.6.4", + "subtle", ] [[package]] -name = "heim-net" -version = "0.1.0-rc.1" +name = "fiat-crypto" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d13afa5e9b71c813c1e087bb27f51ae87d3a6d68a2bdd045bae4322dfae4948b" +checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7" + +[[package]] +name = "file-source" +version = "0.1.0" dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "heim-common", - "heim-runtime", + "bstr 1.11.3", + "bytes 1.10.0", + "chrono", + "crc", + "criterion", + "dashmap 6.1.0", + "flate2", + "futures 0.3.31", + "glob", + "indexmap 2.7.1", "libc", - "macaddr", - "nix 0.19.1", + "quickcheck", + "scan_fmt", + "serde", + "serde_json", + "similar-asserts", + "tempfile", + "tokio", + "tracing 0.1.41", + "vector-common", + "vector-config", + "winapi", ] [[package]] -name = "heim-process" -version = "0.1.1-rc.1" +name = "filetime" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "386870aac75d29b817fe709f1ef4303553e0af369e3c71d04beceeb50ae2cf39" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ - "async-trait", - "cfg-if 1.0.0", - "darwin-libproc", - "futures 0.3.12", - "heim-common", - "heim-cpu", - "heim-host", - "heim-net", - "heim-runtime", - "lazy_static", + "cfg-if", "libc", - "mach", - "memchr", - "ntapi", - "ordered-float", - "smol", - "winapi 0.3.9", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", ] [[package]] -name = "heim-runtime" -version = "0.1.0-rc.1" +name = "finl_unicode" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ec7e5238c8f0dd0cc60914d31a5a7aadd4cde74c966a76c1caed1f5224e9b8" -dependencies = [ - "futures 0.3.12", - "futures-timer", - "once_cell", - "smol", -] +checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" [[package]] -name = "heim-sensors" -version = "0.1.0-rc.1" +name = "fixedbitset" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82de7f0784d3b0c53f2e8875c63f430bf6718b03ec8ddce905c12887031158f5" -dependencies = [ - "cfg-if 1.0.0", - "heim-common", - "heim-runtime", -] +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] -name = "heim-virt" -version = "0.1.0-rc.1" +name = "flagset" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7616c8db704e85495952fc1350da7624ebf1d459feab1b7f01d43944b7412744" -dependencies = [ - "cfg-if 1.0.0", - "futures 0.3.12", - "heim-common", - "heim-runtime", - "raw-cpuid 8.1.2", -] +checksum = "d52a7e408202050813e6f1d9addadcaafef3dca7530c7ddfb005d4081cce6779" [[package]] -name = "hermit-abi" -version = "0.1.18" +name = "flate2" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ - "libc", + "crc32fast", + "miniz_oxide 0.8.0", ] [[package]] -name = "hex" -version = "0.4.2" +name = "float_eq" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" +checksum = "28a80e3145d8ad11ba0995949bbcf48b9df2be62772b3d351ef017dff6ecb853" [[package]] -name = "hmac" -version = "0.7.1" +name = "fluent-uri" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" +checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" dependencies = [ - "crypto-mac 0.7.0", - "digest 0.8.1", + "bitflags 1.3.2", ] [[package]] -name = "hmac" -version = "0.8.1" +name = "flume" +version = "0.10.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" dependencies = [ - "crypto-mac 0.8.0", - "digest 0.9.0", + "spin 0.9.8", ] [[package]] -name = "hmac" -version = "0.9.0" +name = "flume" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" dependencies = [ - "crypto-mac 0.9.1", - "digest 0.9.0", + "futures-core", + "futures-sink", + "spin 0.9.8", ] [[package]] -name = "hmac" -version = "0.10.1" +name = "fnv" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" -dependencies = [ - "crypto-mac 0.10.0", - "digest 0.9.0", -] +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "hostname" -version = "0.3.1" +name = "foldhash" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" -dependencies = [ - "libc", - "match_cfg", - "winapi 0.3.9", -] +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" [[package]] -name = "http" -version = "0.2.3" +name = "foreign-types" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "bytes 1.0.1", - "fnv", - "itoa", + "foreign-types-shared", ] [[package]] -name = "http-body" -version = "0.3.1" +name = "foreign-types-shared" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" -dependencies = [ - "bytes 0.5.6", - "http", -] +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] -name = "http-body" -version = "0.4.0" +name = "form_urlencoded" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2861bd27ee074e5ee891e8b539837a9430012e249d7f0ca2d795650f579c1994" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ - "bytes 1.0.1", - "http", + "percent-encoding", ] [[package]] -name = "httparse" -version = "1.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" - -[[package]] -name = "httpdate" -version = "0.3.2" +name = "fsevent-sys" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] [[package]] -name = "httpmock" -version = "0.5.5" +name = "fslock" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a02d342ce934f890fa39865cf7d2f3485d19a805b7c570ea33819106df1c21" +checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb" dependencies = [ - "assert-json-diff", - "async-object-pool", - "async-trait", - "base64 0.13.0", - "basic-cookies", - "crossbeam-utils 0.8.1", - "difference", - "futures-util", - "hyper 0.14.4", - "isahc", - "lazy_static", - "levenshtein", - "log", - "qstring", - "regex", - "serde", - "serde_json", - "serde_regex", - "tokio 1.2.0", + "libc", + "winapi", ] [[package]] -name = "human-size" -version = "0.4.1" +name = "funty" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90b9d206a509fdc5034ea8ffb4d6ca080dd61883cfa222c480cfcba8c570368" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] -name = "humantime" -version = "1.3.0" +name = "futures" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error", -] +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] -name = "hyper" -version = "0.13.10" -source = "git+https://github.com/hyperium/hyper?rev=d7495a75abca34646b1d6d047589c1b8110d0fa5#d7495a75abca34646b1d6d047589c1b8110d0fa5" +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ - "bytes 0.5.6", "futures-channel", "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", "futures-util", - "h2", - "http", - "http-body 0.3.1", - "httparse", - "httpdate", - "itoa", - "pin-project 1.0.4", - "socket2", - "tokio 0.2.24", - "tower-service", - "tracing 0.1.22", - "want", ] [[package]] -name = "hyper" -version = "0.14.4" +name = "futures-channel" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e946c2b1349055e0b72ae281b238baf1a3ea7307c7e9f9d64673bdd9c26ac7" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ - "bytes 1.0.1", - "futures-channel", "futures-core", - "futures-util", - "http", - "http-body 0.4.0", - "httparse", - "httpdate", - "itoa", - "pin-project 1.0.4", - "socket2", - "tokio 1.2.0", - "tower-service", - "tracing 0.1.22", - "want", + "futures-sink", ] [[package]] -name = "hyper-openssl" -version = "0.8.1" +name = "futures-core" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90705b797966f4774ffbc5e4dbda9e5b95f2a49991a3187f753171cdd7db3c58" -dependencies = [ - "antidote", - "bytes 0.5.6", - "http", - "hyper 0.13.10", - "linked_hash_set", - "once_cell", - "openssl", - "openssl-sys", - "tokio 0.2.24", - "tokio-openssl", - "tower-layer", -] +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] -name = "hyper-rustls" -version = "0.21.0" +name = "futures-executor" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ - "bytes 0.5.6", - "ct-logs", + "futures-core", + "futures-task", "futures-util", - "hyper 0.13.10", - "log", - "rustls 0.18.1", - "rustls-native-certs", - "tokio 0.2.24", - "tokio-rustls 0.14.1", - "webpki", ] [[package]] -name = "hyper-tls" -version = "0.4.3" +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-lite" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ - "bytes 0.5.6", - "hyper 0.13.10", - "native-tls", - "tokio 0.2.24", - "tokio-tls", + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", ] [[package]] -name = "hyper-unix-connector" -version = "0.1.5" +name = "futures-macro" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42b66be14087ec25c5150c9d1228a1e9bbbfe7fe2506ff85daed350724980319" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "anyhow", - "futures-util", - "hex", - "hyper 0.13.10", - "pin-project 0.4.27", - "tokio 0.2.24", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "ident_case" -version = "1.0.1" +name = "futures-sink" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] -name = "idna" -version = "0.2.0" +name = "futures-task" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] -name = "indexmap" -version = "1.6.1" +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" + +[[package]] +name = "futures-util" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "autocfg 1.0.1", - "hashbrown", - "serde", + "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 = "indoc" -version = "1.0.3" +name = "generic-array" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a75aeaaef0ce18b58056d306c27b07436fbb34b8816c53094b76dd81803136" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "unindent", + "typenum", + "version_check", + "zeroize", ] [[package]] -name = "inotify" -version = "0.7.1" +name = "getrandom" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "bitflags", - "inotify-sys", + "cfg-if", "libc", + "wasi 0.9.0+wasi-snapshot-preview1", ] [[package]] -name = "inotify-sys" -version = "0.1.5" +name = "getrandom" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ + "cfg-if", + "js-sys", "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] -name = "input_buffer" +name = "getrandom" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a8a95243d5a0398cae618ec29477c6e3cb631152be5c19481f80bc71559754" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ - "bytes 0.5.6", + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] -name = "instant" -version = "0.1.9" +name = "gimli" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" -dependencies = [ - "cfg-if 1.0.0", -] +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] -name = "inventory" -version = "0.1.10" +name = "glob" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0f7efb804ec95e33db9ad49e4252f049e37e8b0a4652e3cd61f7999f2eff7f" -dependencies = [ - "ctor", - "ghost", - "inventory-impl", -] +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] -name = "inventory-impl" -version = "0.1.10" +name = "gloo-utils" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c094e94816723ab936484666968f5b58060492e880f3c8d00489a1e244fa51" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", ] [[package]] -name = "iovec" -version = "0.1.4" +name = "goauth" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +checksum = "d351469a584f3b3565e2e740d4da60839bddc4320dadd7d61da8bdd77ffb373b" dependencies = [ - "libc", + "arc-swap", + "futures 0.3.31", + "log", + "reqwest 0.11.26", + "serde", + "serde_derive", + "serde_json", + "simpl", + "smpl_jwt", + "time", + "tokio", ] [[package]] -name = "ipconfig" -version = "0.2.2" +name = "governor" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7" +checksum = "0746aa765db78b521451ef74221663b57ba595bf83f75d0ce23cc09447c8139f" dependencies = [ - "socket2", - "widestring", - "winapi 0.3.9", - "winreg 0.6.2", + "cfg-if", + "dashmap 6.1.0", + "futures-sink", + "futures-timer", + "futures-util", + "no-std-compat", + "nonzero_ext", + "parking_lot", + "portable-atomic", + "rand 0.8.5", + "smallvec", + "spinning_top", ] [[package]] -name = "ipnet" -version = "2.3.0" +name = "graphql-introspection-query" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" +checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" +dependencies = [ + "serde", +] [[package]] -name = "isahc" -version = "1.1.0" +name = "graphql-parser" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3d0a62435883f745c825ec06a03a38d24bf5fa65c43e2c083b6a60ce0058ae" +checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" dependencies = [ - "crossbeam-utils 0.8.1", - "curl", - "curl-sys", - "encoding_rs", - "flume", - "futures-lite", - "http", - "log", - "mime", - "once_cell", - "slab", - "sluice", - "tracing 0.1.22", - "tracing-futures 0.2.4", - "url", - "waker-fn", + "combine 3.8.1", + "thiserror 1.0.68", ] [[package]] -name = "itertools" -version = "0.8.2" +name = "graphql_client" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +checksum = "a50cfdc7f34b7f01909d55c2dcb71d4c13cbcbb4a1605d6c8bd760d654c1144b" dependencies = [ - "either", + "graphql_query_derive", + "serde", + "serde_json", ] [[package]] -name = "itertools" -version = "0.9.0" +name = "graphql_client_codegen" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +checksum = "5e27ed0c2cf0c0cc52c6bcf3b45c907f433015e580879d14005386251842fb0a" dependencies = [ - "either", + "graphql-introspection-query", + "graphql-parser", + "heck 0.4.1", + "lazy_static", + "proc-macro2 1.0.93", + "quote 1.0.38", + "serde", + "serde_json", + "syn 1.0.109", ] [[package]] -name = "itertools" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319" +name = "graphql_query_derive" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83febfa838f898cfa73dfaa7a8eb69ff3409021ac06ee94cfb3d622f6eeb1a97" dependencies = [ - "either", + "graphql_client_codegen", + "proc-macro2 1.0.93", + "syn 1.0.109", ] [[package]] -name = "itoa" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" +name = "greptime-proto" +version = "0.1.0" +source = "git+https://github.com/GreptimeTeam/greptime-proto.git?tag=v0.7.0#4bc0d17577dbea47396a064c1ccf229a4c9539fa" +dependencies = [ + "prost 0.12.6", + "serde", + "serde_json", + "strum 0.25.0", + "strum_macros 0.25.3", + "tonic 0.11.0", + "tonic-build 0.11.0", +] [[package]] -name = "jemalloc-sys" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3b9f3f5c9b31aa0f5ed3260385ac205db665baa41d49bb8338008ae94ede45" +name = "greptimedb-ingester" +version = "0.1.0" +source = "git+https://github.com/GreptimeTeam/greptimedb-ingester-rust?rev=2e6b0c5eb6a5e7549c3100e4d356b07d15cce66d#2e6b0c5eb6a5e7549c3100e4d356b07d15cce66d" dependencies = [ - "cc", - "fs_extra", - "libc", + "dashmap 5.5.3", + "derive_builder", + "enum_dispatch", + "futures 0.3.31", + "futures-util", + "greptime-proto", + "parking_lot", + "prost 0.12.6", + "rand 0.8.5", + "snafu 0.7.5", + "tokio", + "tokio-stream", + "tonic 0.11.0", + "tonic-build 0.9.2", + "tower", ] [[package]] -name = "jemallocator" -version = "0.3.2" +name = "grok" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43ae63fcfc45e99ab3d1b29a46782ad679e98436c3169d15a167a1108a724b69" +checksum = "273797968160270573071022613fc4aa28b91fe68f3eef6c96a1b2a1947ddfbd" dependencies = [ - "jemalloc-sys", - "libc", + "glob", + "onig", ] [[package]] -name = "jobserver" -version = "0.1.21" +name = "group" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "libc", + "ff", + "rand_core 0.6.4", + "subtle", ] [[package]] -name = "js-sys" -version = "0.3.46" +name = "h2" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "wasm-bindgen", + "bytes 1.10.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.9", + "indexmap 2.7.1", + "slab", + "tokio", + "tokio-util", + "tracing 0.1.41", ] [[package]] -name = "json" -version = "0.12.4" +name = "h2" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" - -[[package]] -name = "k8s-e2e-tests" -version = "0.1.0" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ - "futures 0.3.12", - "k8s-openapi", - "k8s-test-framework", - "regex", - "reqwest", - "serde_json", - "tokio 0.2.24", + "atomic-waker", + "bytes 1.10.0", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.7.1", + "slab", + "tokio", + "tokio-util", + "tracing 0.1.41", ] [[package]] -name = "k8s-openapi" -version = "0.11.0" +name = "half" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc1f973542059e6d5a6d63de6a9539d0ec784f82b2327f3c1915d33200bc6a4" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" dependencies = [ - "base64 0.13.0", - "bytes 1.0.1", - "chrono", - "http", - "percent-encoding", - "serde", - "serde-value", - "serde_json", - "url", + "cfg-if", + "crunchy", ] [[package]] -name = "k8s-test-framework" -version = "0.1.0" -dependencies = [ - "k8s-openapi", - "once_cell", - "serde_json", - "tempfile", - "tokio 0.2.24", -] +name = "hash_hasher" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74721d007512d0cb3338cd20f0654ac913920061a4c4d0d8708edb3f2a698c0c" [[package]] -name = "keccak" -version = "0.1.0" +name = "hashbag" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "98f494b2060b2a8f5e63379e1e487258e014cee1b1725a735816c0107a2e9d93" [[package]] -name = "kernel32-sys" -version = "0.2.2" +name = "hashbrown" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "ahash 0.7.7", ] [[package]] -name = "krb5-src" -version = "0.2.4+1.18.2" +name = "hashbrown" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01c2b7c3b70ca41646dafc8fc3b6053a8a0da9301251e8da8548fb067462d81" +checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" dependencies = [ - "duct", - "openssl-sys", + "ahash 0.8.11", ] [[package]] -name = "kv-log-macro" -version = "1.0.7" +name = "hashbrown" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "log", + "ahash 0.8.11", + "allocator-api2", ] [[package]] -name = "lalrpop" -version = "0.19.4" +name = "hashbrown" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a71d75b267b3299da9ccff4dd80d73325b5d8adcd76fe97cf92725eb7c6f122" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "ascii-canvas", - "atty", - "bit-set", - "diff", - "ena", - "itertools 0.9.0", - "lalrpop-util", - "petgraph", - "pico-args", - "regex", - "regex-syntax", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid 0.2.1", + "allocator-api2", + "equivalent", + "foldhash", ] [[package]] -name = "lalrpop-util" -version = "0.19.4" +name = "hdrhistogram" +version = "7.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ebbd90154472db6267a7d28ca08fea7788e5619fef10f2398155cb74c08f77a" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" dependencies = [ - "regex", + "base64 0.21.7", + "byteorder", + "crossbeam-channel", + "flate2", + "nom", + "num-traits", ] [[package]] -name = "lazy_static" -version = "1.4.0" +name = "headers" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes 1.10.0", + "headers-core", + "http 0.2.9", + "httpdate", + "mime", + "sha1", +] [[package]] -name = "lazycell" -version = "1.3.0" +name = "headers-core" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http 0.2.9", +] [[package]] -name = "leb128" -version = "0.2.4" +name = "heck" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "leveldb" -version = "0.8.6" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32651baaaa5596b3a6e0bee625e73fd0334c167db0ea5ac68750ef9a629a2d6a" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "heim" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" +dependencies = [ + "heim-common", + "heim-cpu", + "heim-disk", + "heim-host", + "heim-memory", + "heim-net", + "heim-runtime", +] + +[[package]] +name = "heim-common" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "db-key", - "leveldb-sys", + "cfg-if", + "core-foundation", + "futures-core", + "futures-util", + "lazy_static", "libc", + "mach", + "nix 0.23.2", + "pin-utils", + "uom", + "winapi", ] [[package]] -name = "leveldb-sys" -version = "2.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "618aee5ba3d32cb8456420a9a454aa71c1af5b3e9c7a2ec20a0f3cbbe47246cb" +name = "heim-cpu" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "cmake", + "cfg-if", + "futures 0.3.31", + "glob", + "heim-common", + "heim-runtime", + "lazy_static", "libc", - "num_cpus", + "mach", + "ntapi 0.3.7", + "smol", + "winapi", ] [[package]] -name = "levenshtein" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66189c12161c65c0023ceb53e2fccc0013311bcb36a7cbd0f9c5e938b408ac96" +name = "heim-disk" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "core-foundation", + "heim-common", + "heim-runtime", + "libc", + "mach", + "widestring 0.4.3", + "winapi", +] [[package]] -name = "lexical-core" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616" +name = "heim-host" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "arrayvec 0.5.2", - "bitflags", - "cfg-if 0.1.10", - "ryu", - "static_assertions", + "cfg-if", + "heim-common", + "heim-runtime", + "lazy_static", + "libc", + "log", + "mach", + "ntapi 0.3.7", + "platforms", + "winapi", ] [[package]] -name = "libc" -version = "0.2.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929" +name = "heim-memory" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" +dependencies = [ + "cfg-if", + "heim-common", + "heim-runtime", + "lazy_static", + "libc", + "mach", + "winapi", +] [[package]] -name = "libflate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389de7875e06476365974da3e7ff85d55f1972188ccd9f6020dd7c8156e17914" +name = "heim-net" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" dependencies = [ - "adler32", - "crc32fast", - "libflate_lz77", - "rle-decode-fast", + "bitflags 1.3.2", + "cfg-if", + "heim-common", + "heim-runtime", + "libc", + "macaddr", + "nix 0.23.2", + "widestring 0.4.3", + "winapi", ] [[package]] -name = "libflate_lz77" -version = "1.0.0" +name = "heim-runtime" +version = "0.1.0-rc.1" +source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#f3537d9b32e69a2a8ab19a0d42a1e6f5577a5a45" +dependencies = [ + "futures 0.3.31", + "futures-timer", + "once_cell", + "smol", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3286f09f7d4926fc486334f28d8d2e6ebe4f7f9994494b6dab27ddfad2c9b11b" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] -name = "libgit2-sys" -version = "0.12.17+1.1.0" +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hickory-proto" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ebdf65ca745126df8824688637aa0535a88900b83362d8ca63893bcf4e8841" +checksum = "2ad3d6d98c648ed628df039541a5577bee1a7c83e9e16fe3dbedeea4cdfeb971" dependencies = [ - "cc", - "libc", - "libz-sys", - "pkg-config", + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.6.0", + "futures-channel", + "futures-io", + "futures-util", + "idna 1.0.3", + "ipnet", + "once_cell", + "rand 0.8.5", + "thiserror 1.0.68", + "tinyvec", + "tracing 0.1.41", + "url", ] [[package]] -name = "libloading" -version = "0.5.2" +name = "hkdf" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" dependencies = [ - "cc", - "winapi 0.3.9", + "hmac", ] [[package]] -name = "libloading" -version = "0.6.7" +name = "hmac" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "cfg-if 1.0.0", - "winapi 0.3.9", + "digest", ] [[package]] -name = "libm" -version = "0.2.1" +name = "home" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] [[package]] -name = "libnghttp2-sys" -version = "0.1.6+1.43.0" +name = "hostname" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0af55541a8827e138d59ec9e5877fb6095ece63fb6f4da45e7491b4fbd262855" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ - "cc", "libc", + "match_cfg", + "winapi", ] [[package]] -name = "libz-sys" -version = "1.1.2" +name = "hostname" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" dependencies = [ - "cc", + "cfg-if", "libc", - "pkg-config", - "vcpkg", + "windows 0.52.0", ] [[package]] -name = "linked-hash-map" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" - -[[package]] -name = "linked_hash_set" -version = "0.1.4" +name = "http" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ - "linked-hash-map", + "bytes 1.10.0", + "fnv", + "itoa", ] [[package]] -name = "listenfd" -version = "0.3.3" +name = "http" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "492158e732f2e2de81c592f0a2427e57e12cd3d59877378fe7af624b6bbe0ca1" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ - "libc", - "uuid 0.6.5", - "winapi 0.3.9", + "bytes 1.10.0", + "fnv", + "itoa", ] [[package]] -name = "lock_api" -version = "0.3.4" +name = "http-body" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "scopeguard", + "bytes 1.10.0", + "http 0.2.9", + "pin-project-lite", ] [[package]] -name = "lock_api" -version = "0.4.2" +name = "http-body" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" dependencies = [ - "scopeguard", + "bytes 1.10.0", + "http 1.1.0", ] [[package]] -name = "log" -version = "0.4.13" +name = "http-body-util" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf3805d4480bb5b86070dcfeb9e2cb2ebc148adb753c5cca5f884d1d65a42b2" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "cfg-if 0.1.10", + "bytes 1.10.0", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "pin-project-lite", ] [[package]] -name = "logfmt" -version = "0.0.2" +name = "http-range-header" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879777f0cc6f3646a044de60e4ab98c75617e3f9580f7a2032e6ad7ea0cd3054" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] -name = "lru" -version = "0.6.3" +name = "http-serde" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aae342b73d57ad0b8b364bd12584819f2c1fe9114285dfcf8b0722607671635" +checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee" dependencies = [ - "hashbrown", + "http 0.2.9", + "serde", ] [[package]] -name = "lru-cache" -version = "0.1.2" +name = "http-types" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "lucet-module" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" dependencies = [ "anyhow", - "bincode", - "byteorder", - "cranelift-entity", - "derivative 1.0.4", - "memoffset 0.5.6", - "minisign", - "object 0.20.0", + "async-channel", + "base64 0.13.1", + "futures-lite", + "infer", + "pin-project-lite", + "rand 0.7.3", "serde", - "serde-big-array", "serde_json", - "thiserror", + "serde_qs", + "serde_urlencoded", + "url", ] [[package]] -name = "lucet-runtime" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" -dependencies = [ - "cc", - "cfg-if 0.1.10", - "libc", - "lucet-module", - "lucet-runtime-internals", - "num-derive", - "num-traits", -] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] -name = "lucet-runtime-internals" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" -dependencies = [ - "anyhow", - "bincode", - "bitflags", - "byteorder", - "cc", - "cfg-if 0.1.10", - "lazy_static", - "libc", - "libloading 0.6.7", - "lucet-module", - "lucet-runtime-macros", - "memoffset 0.5.6", - "nix 0.17.0", - "num-derive", - "num-traits", - "rand 0.7.3", - "raw-cpuid 6.1.0", - "thiserror", - "tracing 0.1.22", - "userfaultfd", -] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] -name = "lucet-runtime-macros" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ - "quote 1.0.8", - "syn 1.0.58", + "bytes 1.10.0", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.9", + "http-body 0.4.5", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.10", + "tokio", + "tower-service", + "tracing 0.1.41", + "want", ] [[package]] -name = "lucet-wasi" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "hyper" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ - "anyhow", - "cast", - "clap", - "human-size", - "libc", - "lucet-module", - "lucet-runtime", - "lucet-runtime-internals", - "lucet-wasi-generate", - "lucet-wiggle", - "nix 0.17.0", - "rand 0.6.5", - "wasi-common", + "bytes 1.10.0", + "futures-channel", + "futures-util", + "h2 0.4.7", + "http 1.1.0", + "http-body 1.0.0", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", ] [[package]] -name = "lucet-wasi-generate" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "hyper-named-pipe" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" dependencies = [ - "lucet-wiggle", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "wasi-common", - "wiggle-generate", + "hex", + "hyper 1.4.1", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", + "winapi", ] [[package]] -name = "lucet-wiggle" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "hyper-openssl" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b" dependencies = [ - "lucet-runtime", - "lucet-wiggle-generate", - "lucet-wiggle-macro", - "wiggle", + "http 0.2.9", + "hyper 0.14.28", + "linked_hash_set", + "once_cell", + "openssl", + "openssl-sys", + "parking_lot", + "tokio", + "tokio-openssl", + "tower-layer", ] [[package]] -name = "lucet-wiggle-generate" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "hyper-openssl" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527d4d619ca2c2aafa31ec139a3d1d60bf557bf7578a1f20f743637eccd9ca19" dependencies = [ - "heck", - "lucet-module", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "wiggle-generate", - "witx", + "http 1.1.0", + "hyper 1.4.1", + "hyper-util", + "linked_hash_set", + "once_cell", + "openssl", + "openssl-sys", + "parking_lot", + "pin-project", + "tower-layer", + "tower-service", ] [[package]] -name = "lucet-wiggle-macro" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "hyper-proxy" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc" dependencies = [ - "lucet-wiggle-generate", - "quote 1.0.8", - "syn 1.0.58", - "wiggle-generate", - "witx", + "bytes 1.10.0", + "futures 0.3.31", + "headers", + "http 0.2.9", + "hyper 0.14.28", + "openssl", + "tokio", + "tokio-openssl", + "tower-service", ] [[package]] -name = "lucetc" -version = "0.7.0-dev" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ - "anyhow", - "bimap", - "bincode", - "byteorder", - "clap", - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "cranelift-module", - "cranelift-native", - "cranelift-object", - "cranelift-wasm", - "env_logger 0.6.2", - "human-size", + "futures-util", + "http 0.2.9", + "hyper 0.14.28", "log", - "lucet-module", - "lucet-wiggle-generate", - "memoffset 0.5.6", - "minisign", - "object 0.20.0", - "raw-cpuid 6.1.0", - "serde", - "serde_json", - "target-lexicon", - "tempfile", - "thiserror", - "wabt", - "wasmparser 0.58.0", - "witx", + "rustls 0.21.11", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.24.1", ] [[package]] -name = "macaddr" -version = "1.0.1" +name = "hyper-rustls" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baee0bbc17ce759db233beb01648088061bf678383130602a298e6998eedb2d8" +checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.4.1", + "hyper-util", + "log", + "rustls 0.22.4", + "rustls-native-certs 0.7.0", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.25.0", + "tower-service", +] [[package]] -name = "mach" -version = "0.3.2" +name = "hyper-timeout" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "libc", + "hyper 0.14.28", + "pin-project-lite", + "tokio", + "tokio-io-timeout", ] [[package]] -name = "maplit" -version = "1.0.2" +name = "hyper-timeout" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +dependencies = [ + "hyper 1.4.1", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] [[package]] -name = "match_cfg" -version = "0.1.0" +name = "hyper-tls" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes 1.10.0", + "hyper 0.14.28", + "native-tls", + "tokio", + "tokio-native-tls", +] [[package]] -name = "matchers" -version = "0.0.1" +name = "hyper-util" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ - "regex-automata", + "bytes 1.10.0", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "hyper 1.4.1", + "pin-project-lite", + "socket2 0.5.8", + "tokio", + "tower-service", + "tracing 0.1.41", ] [[package]] -name = "matches" -version = "0.1.8" +name = "hyperlocal-next" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" +checksum = "acf569d43fa9848e510358c07b80f4adf34084ddc28c6a4a651ee8474c070dcc" +dependencies = [ + "hex", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] [[package]] -name = "maxminddb" -version = "0.17.1" +name = "iana-time-zone" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e726b02f46b503921729f640c8e9b98167b87f7b640ce44fbd879ed23bc4b7" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ - "log", - "serde", + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", ] [[package]] -name = "maybe-uninit" -version = "2.0.0" +name = "iana-time-zone-haiku" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] [[package]] -name = "md-5" -version = "0.8.0" +name = "icu_collections" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18af3dcaf2b0219366cdb4e2af65a6101457b415c3d1a5c71dd9c2b7c77b9c8" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "opaque-debug 0.2.3", + "displaydoc", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "md-5" -version = "0.9.1" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "opaque-debug 0.3.0", + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "md5" -version = "0.7.0" +name = "icu_locid_transform" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] [[package]] -name = "memchr" -version = "2.3.4" +name = "icu_locid_transform_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" [[package]] -name = "memoffset" -version = "0.5.6" +name = "icu_normalizer" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ - "autocfg 1.0.1", + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", ] [[package]] -name = "memoffset" -version = "0.6.1" +name = "icu_normalizer_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" -dependencies = [ - "autocfg 1.0.1", -] +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] -name = "metrics" -version = "0.13.0-alpha.13" +name = "icu_properties" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efcf562c6940683fdd0dad97c99a0cef222d3738283d3396a735e8d21190e685" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ - "metrics-macros", - "proc-macro-hack", + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", ] [[package]] -name = "metrics-macros" -version = "0.1.0-alpha.9" +name = "icu_properties_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0197e48db63aa8c28f9fbae021585b8f1b299a0b21640cf98853211ac39eb294" -dependencies = [ - "lazy_static", - "proc-macro-hack", - "proc-macro2 1.0.24", - "quote 1.0.8", - "regex", - "syn 1.0.58", -] +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] -name = "metrics-tracing-context" -version = "0.1.0-alpha.7" +name = "icu_provider" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0b8dc2ecc84c1a248ee1d7f08e8bc537b406aab1c74c1a85d78634517ecddac" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ - "itoa", - "metrics", - "metrics-util", - "tracing 0.1.22", - "tracing-core 0.1.17", - "tracing-subscriber", + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "metrics-util" -version = "0.4.0-alpha.10" +name = "icu_provider_macros" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee65f4f3f55b356086562ebfe47e76b61de5ed305ae86f1b65fb7f068f8b1546" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ - "aho-corasick", - "atomic-shim", - "crossbeam-epoch 0.9.1", - "crossbeam-utils 0.8.1", - "dashmap 3.11.10", - "indexmap", - "metrics", - "parking_lot 0.11.1", - "quanta", - "sketches-ddsketch", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "mime" -version = "0.3.16" +name = "ident_case" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] -name = "mime_guess" -version = "2.0.3" +name = "idna" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" dependencies = [ - "mime", - "unicase", + "matches", + "unicode-bidi", + "unicode-normalization", ] [[package]] -name = "minisign" -version = "0.5.23" +name = "idna" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80db40007b46085d83469f71912d95526791038200e1c00afc6a5494d7dc8a4f" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "getrandom 0.2.1", - "rpassword", - "scrypt", + "idna_adapter", + "smallvec", + "utf8_iter", ] [[package]] -name = "miniz_oxide" -version = "0.4.3" +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "adler", - "autocfg 1.0.1", + "icu_normalizer", + "icu_properties", ] [[package]] -name = "mio" -version = "0.6.23" +name = "indexmap" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 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", + "autocfg", + "hashbrown 0.12.3", + "serde", ] [[package]] -name = "mio" -version = "0.7.7" +name = "indexmap" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e50ae3f04d169fcc9bde0b547d1c205219b7157e07ded9c5aff03e0637cb3ed7" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ - "libc", - "log", - "miow 0.3.6", - "ntapi", - "winapi 0.3.9", + "equivalent", + "hashbrown 0.15.2", + "serde", ] [[package]] -name = "mio-extras" -version = "2.0.6" +name = "indicatif" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ - "lazycell", - "log", - "mio 0.6.23", - "slab", + "console", + "number_prefix", + "portable-atomic", + "unicode-segmentation", + "unicode-width 0.2.0", + "web-time", ] [[package]] -name = "mio-named-pipes" -version = "0.1.7" +name = "indoc" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" + +[[package]] +name = "infer" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" + +[[package]] +name = "influxdb-line-protocol" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" +checksum = "22fa7ee6be451ea0b1912b962c91c8380835e97cf1584a77e18264e908448dcb" dependencies = [ + "bytes 1.10.0", "log", - "mio 0.6.23", - "miow 0.3.6", - "winapi 0.3.9", + "nom", + "smallvec", + "snafu 0.7.5", ] [[package]] -name = "mio-uds" -version = "0.6.8" +name = "inotify" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "iovec", + "bitflags 2.8.0", + "inotify-sys", "libc", - "mio 0.6.23", ] [[package]] -name = "miow" -version = "0.2.2" +name = "inotify-sys" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", + "libc", ] [[package]] -name = "miow" -version = "0.3.6" +name = "inout" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "socket2", - "winapi 0.3.9", + "block-padding", + "generic-array", ] [[package]] -name = "mongodb" -version = "1.1.1" +name = "instability" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a726495d7418c4579ecc9465b53ddade8187c0299e5db0e7250672b67d196913" +checksum = "b23a0c8dfe501baac4adf6ebbfa6eddf8f0c07f56b058cc1288017e32397846c" dependencies = [ - "async-trait", - "base64 0.11.0", - "bitflags", - "bson", - "chrono", - "derivative 2.1.3", - "err-derive", - "futures 0.3.12", - "futures-intrusive", - "hex", - "hmac 0.7.1", - "lazy_static", - "md-5 0.8.0", - "os_info", - "pbkdf2 0.3.0", - "percent-encoding", - "rand 0.7.3", - "reqwest", - "rustls 0.17.0", - "serde", - "serde_bytes", - "serde_with", - "sha-1 0.8.2", - "sha2 0.8.2", - "socket2", - "stringprep", - "strsim 0.10.0", - "take_mut", - "time 0.1.44", - "tokio 0.2.24", - "tokio-rustls 0.13.1", - "trust-dns-proto", - "trust-dns-resolver", - "typed-builder 0.3.0", - "uuid 0.8.2", - "version_check 0.9.2", - "webpki", - "webpki-roots 0.18.0", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "multer" -version = "1.2.2" +name = "instant" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99851e6ad01b0fbe086dda2dea00d68bb84fc7d7eae2c39ca7313da9197f4d31" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "bytes 0.5.6", - "derive_more", - "encoding_rs", - "futures 0.3.12", - "http", - "httparse", - "lazy_static", - "log", - "mime", - "regex", - "twoway", + "cfg-if", ] [[package]] -name = "multimap" -version = "0.8.2" +name = "inventory" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" +checksum = "54b12ebb6799019b044deaf431eadfe23245b259bba5a2c0796acec3943a3cdb" +dependencies = [ + "rustversion", +] [[package]] -name = "native-tls" -version = "0.2.7" +name = "io-lifetimes" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "lazy_static", + "hermit-abi", "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework 2.0.0", - "security-framework-sys 2.0.0", - "tempfile", + "windows-sys 0.48.0", ] [[package]] -name = "nats" -version = "0.8.6" +name = "iovec" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b716f15b711daea70d5da9195f5c10063d2a14d74b8dba256f8eb6d45d8b29" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" dependencies = [ - "async-channel", - "async-executor", - "async-io", - "async-lock", - "async-net", - "async-rustls", - "base64 0.13.0", - "base64-url", - "fastrand", - "futures-lite", - "itoa", - "json", - "log", - "nkeys", - "nuid", - "once_cell", - "regex", - "rustls-native-certs", + "libc", ] [[package]] -name = "nb-connect" -version = "1.0.2" +name = "ipconfig" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8123a81538e457d44b933a02faf885d3fe8408806b23fa700e8f01c6c3a98998" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "libc", - "winapi 0.3.9", + "socket2 0.5.8", + "widestring 1.0.2", + "windows-sys 0.48.0", + "winreg 0.50.0", ] [[package]] -name = "net2" -version = "0.2.37" +name = "ipnet" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", + "serde", ] [[package]] -name = "new_debug_unreachable" -version = "1.0.4" +name = "ipnetwork" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +checksum = "cf370abdafd54d13e54a620e8c3e1145f28e46cc9d704bc6d94414559df41763" [[package]] -name = "ngrammatic" -version = "0.3.2" +name = "is-terminal" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b79e6be1c04bda2ef26e4258fb09ee3675519ba5f60dc9c80bfd559fdaa08188" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi", + "rustix 0.38.40", + "windows-sys 0.48.0", +] [[package]] -name = "nix" -version = "0.17.0" +name = "is_ci" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" -dependencies = [ - "bitflags", - "cc", - "cfg-if 0.1.10", - "libc", - "void", -] +checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" [[package]] -name = "nix" -version = "0.19.1" +name = "itertools" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ - "bitflags", - "cc", - "cfg-if 1.0.0", - "libc", + "either", ] [[package]] -name = "nkeys" -version = "0.0.11" +name = "itertools" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0aa1a33567887c95af653f9f88e482e34df8eaabb98df92cf5c81dfd882b0a" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ - "byteorder", - "data-encoding", - "ed25519-dalek", - "log", - "rand 0.7.3", - "signatory", + "either", ] [[package]] -name = "nodrop" -version = "0.1.14" +name = "itertools" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] [[package]] -name = "nom" -version = "4.2.3" +name = "itertools" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ - "memchr", - "version_check 0.1.5", + "either", ] [[package]] -name = "nom" -version = "5.1.2" +name = "itertools" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ - "lexical-core", - "memchr", - "version_check 0.9.2", + "either", ] [[package]] -name = "nom" -version = "6.0.1" +name = "itoa" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88034cfd6b4a0d54dd14f4a507eceee36c0b70e5a02236c4e4df571102be17f0" -dependencies = [ - "bitvec", - "lexical-core", - "memchr", - "version_check 0.9.2", -] +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] -name = "notify" -version = "4.0.15" +name = "jni" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ - "bitflags", - "filetime", - "fsevent", - "fsevent-sys", - "inotify", - "libc", - "mio 0.6.23", - "mio-extras", + "cesu8", + "cfg-if", + "combine 4.6.6", + "jni-sys", + "log", + "thiserror 1.0.68", "walkdir", - "winapi 0.3.9", + "windows-sys 0.45.0", ] [[package]] -name = "ntapi" -version = "0.3.6" +name = "jni-sys" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" -dependencies = [ - "winapi 0.3.9", -] +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] -name = "nuid" -version = "0.2.2" +name = "jobserver" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8061bec52f76dc109f1a392ee03afcf2fae4c7950953de6388bc2f5a57b61979" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ - "lazy_static", - "rand 0.7.3", + "libc", ] [[package]] -name = "num-bigint" -version = "0.2.6" +name = "js-sys" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" dependencies = [ - "autocfg 1.0.1", - "num-integer", - "num-traits", + "wasm-bindgen", ] [[package]] -name = "num-bigint" -version = "0.3.1" +name = "json-patch" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9a41747ae4633fce5adffb4d2e81ffc5e89593cb19917f8fb2cc5ff76507bf" +checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" dependencies = [ - "autocfg 1.0.1", - "num-integer", - "num-traits", + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.68", ] [[package]] -name = "num-derive" -version = "0.3.3" +name = "jsonpath-rust" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +checksum = "19d8fe85bd70ff715f31ce8c739194b423d79811a19602115d611a3ec85d6200" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "lazy_static", + "once_cell", + "pest", + "pest_derive", + "regex", + "serde_json", + "thiserror 1.0.68", ] [[package]] -name = "num-format" -version = "0.4.0" +name = "jsonptr" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465" +checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" dependencies = [ - "arrayvec 0.4.12", - "itoa", + "fluent-uri", + "serde", + "serde_json", ] [[package]] -name = "num-integer" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +name = "k8s-e2e-tests" +version = "0.1.0" dependencies = [ - "autocfg 1.0.1", - "num-traits", + "env_logger 0.11.6", + "futures 0.3.31", + "indoc", + "k8s-openapi 0.16.0", + "k8s-test-framework", + "rand 0.8.5", + "regex", + "reqwest 0.11.26", + "serde_json", + "tokio", + "tracing 0.1.41", ] [[package]] -name = "num-rational" -version = "0.3.2" +name = "k8s-openapi" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +checksum = "6d9455388f4977de4d0934efa9f7d36296295537d774574113a20f6082de03da" dependencies = [ - "autocfg 1.0.1", - "num-integer", - "num-traits", + "base64 0.13.1", + "bytes 1.10.0", + "chrono", + "serde", + "serde-value", + "serde_json", ] [[package]] -name = "num-traits" -version = "0.2.14" +name = "k8s-openapi" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +checksum = "19501afb943ae5806548bc3ebd7f3374153ca057a38f480ef30adfde5ef09755" dependencies = [ - "autocfg 1.0.1", - "libm", + "base64 0.22.1", + "chrono", + "serde", + "serde-value", + "serde_json", ] [[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +name = "k8s-test-framework" +version = "0.1.0" dependencies = [ - "hermit-abi", - "libc", + "k8s-openapi 0.16.0", + "log", + "serde_json", + "tempfile", + "tokio", ] [[package]] -name = "num_enum" -version = "0.5.1" +name = "keccak" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b45a5c2ac4dd696ed30fa6b94b057ad909c7b7fc2e0d0808192bced894066" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" dependencies = [ - "derivative 2.1.3", - "num_enum_derive", + "cpufeatures", ] [[package]] -name = "num_enum_derive" -version = "0.5.1" +name = "kqueue" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "kqueue-sys", + "libc", ] [[package]] -name = "number_prefix" -version = "0.4.0" +name = "kqueue-sys" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] [[package]] -name = "object" -version = "0.20.0" +name = "krb5-src" +version = "0.3.2+1.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5" +checksum = "44cd3b7e7735d48bc3793837041294f2eb747bd0f63bbc081e89972abb9e48fb" dependencies = [ - "crc32fast", - "flate2", - "indexmap", - "wasmparser 0.57.0", + "duct", ] [[package]] -name = "object" -version = "0.22.0" +name = "kube" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" +checksum = "0365920075af1a2d23619c1ca801c492f2400157de42627f041a061716e76416" +dependencies = [ + "k8s-openapi 0.22.0", + "kube-client", + "kube-core", + "kube-runtime", +] [[package]] -name = "once_cell" -version = "1.5.2" +name = "kube-client" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" +checksum = "d81336eb3a5b10a40c97a5a97ad66622e92bad942ce05ee789edd730aa4f8603" +dependencies = [ + "base64 0.22.1", + "bytes 1.10.0", + "chrono", + "either", + "futures 0.3.31", + "home", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.4.1", + "hyper-openssl 0.10.2", + "hyper-timeout 0.5.1", + "hyper-util", + "jsonpath-rust", + "k8s-openapi 0.22.0", + "kube-core", + "openssl", + "pem", + "secrecy", + "serde", + "serde_json", + "serde_yaml 0.9.34+deprecated", + "thiserror 1.0.68", + "tokio", + "tokio-util", + "tower", + "tower-http 0.5.2", + "tracing 0.1.41", +] [[package]] -name = "onig" -version = "4.3.3" +name = "kube-core" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8518fcb2b1b8c2f45f0ad499df4fda6087fc3475ca69a185c173b8315d2fb383" +checksum = "cce373a74d787d439063cdefab0f3672860bd7bac01a38e39019177e764a0fe6" dependencies = [ - "bitflags", - "lazy_static", - "libc", - "onig_sys", + "chrono", + "form_urlencoded", + "http 1.1.0", + "json-patch", + "k8s-openapi 0.22.0", + "serde", + "serde_json", + "thiserror 1.0.68", ] [[package]] -name = "onig_sys" -version = "69.1.0" +name = "kube-runtime" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388410bf5fa341f10e58e6db3975f4bea1ac30247dd79d37a9e5ced3cb4cc3b0" +checksum = "3b84733c0fed6085c9210b43ffb96248676c1e800d0ba38d15043275a792ffa4" dependencies = [ - "cc", - "pkg-config", + "ahash 0.8.11", + "async-broadcast", + "async-stream", + "async-trait", + "backoff", + "derivative", + "futures 0.3.31", + "hashbrown 0.14.5", + "json-patch", + "jsonptr", + "k8s-openapi 0.22.0", + "kube-client", + "parking_lot", + "pin-project", + "serde", + "serde_json", + "thiserror 1.0.68", + "tokio", + "tokio-util", + "tracing 0.1.41", ] [[package]] -name = "oorandom" -version = "11.1.3" +name = "lalrpop" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +checksum = "06093b57658c723a21da679530e061a8c25340fa5a6f98e313b542268c7e2a1f" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.13.0", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.8.5", + "sha3", + "string_cache", + "term 1.0.1", + "unicode-xid 0.2.4", + "walkdir", +] [[package]] -name = "opaque-debug" -version = "0.2.3" +name = "lalrpop-util" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +checksum = "feee752d43abd0f4807a921958ab4131f692a44d4d599733d4419c5d586176ce" +dependencies = [ + "regex-automata 0.4.8", + "rustversion", +] [[package]] -name = "opaque-debug" -version = "0.3.0" +name = "lapin" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "209b09a06f4bd4952a0fd0594f90d53cf4496b062f59acc838a2823e1bb7d95c" +dependencies = [ + "amq-protocol", + "async-global-executor-trait", + "async-reactor-trait", + "async-trait", + "executor-trait", + "flume 0.11.0", + "futures-core", + "futures-io", + "parking_lot", + "pinky-swear", + "reactor-trait", + "serde", + "tracing 0.1.41", + "waker-fn", +] [[package]] -name = "openssl" -version = "0.10.32" +name = "lazy_static" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "foreign-types", - "lazy_static", - "libc", - "openssl-sys", + "spin 0.5.2", ] [[package]] -name = "openssl-probe" -version = "0.1.2" +name = "libc" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] -name = "openssl-src" -version = "111.13.0+1.1.1i" +name = "libflate" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045e4dc48af57aad93d665885789b43222ae26f4886494da12d1ed58d309dcb6" +checksum = "9f7d5654ae1795afc7ff76f4365c2c8791b0feb18e8996a96adad8ffd7c3b2bf" dependencies = [ - "cc", + "adler32", + "core2", + "crc32fast", + "dary_heap", + "libflate_lz77", ] [[package]] -name = "openssl-sys" -version = "0.9.60" +name = "libflate_lz77" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6" +checksum = "be5f52fb8c451576ec6b79d3f4deb327398bc05bbdbd99021a6e77a4c855d524" dependencies = [ - "autocfg 1.0.1", - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", + "core2", + "hashbrown 0.13.1", + "rle-decode-fast", ] [[package]] -name = "ordered-float" -version = "2.0.1" +name = "libm" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dacdec97876ef3ede8c50efc429220641a0b11ba0048b4b0c357bccbc47c5204" -dependencies = [ - "num-traits", -] +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] -name = "os_info" -version = "2.0.8" +name = "libredox" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc1b4330bb29087e791ae2a5cf56be64fb8946a4ff5aec2ba11c6ca51f5d60" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "log", - "winapi 0.3.9", + "bitflags 2.8.0", + "libc", ] [[package]] -name = "os_pipe" -version = "0.9.2" +name = "libz-sys" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb233f06c2307e1f5ce2ecad9f8121cffbbee2c95428f44ea85222e460d0d213" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ + "cc", "libc", - "winapi 0.3.9", + "pkg-config", + "vcpkg", ] [[package]] -name = "output_vt100" -version = "0.1.2" +name = "linked-hash-map" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9" -dependencies = [ - "winapi 0.3.9", -] +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] -name = "parking" -version = "2.0.0" +name = "linked_hash_set" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +dependencies = [ + "linked-hash-map", +] [[package]] -name = "parking_lot" -version = "0.10.2" +name = "linux-raw-sys" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.7.2", -] +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] -name = "parking_lot" -version = "0.11.1" +name = "linux-raw-sys" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" -dependencies = [ - "instant", - "lock_api 0.4.2", - "parking_lot_core 0.8.2", -] +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] -name = "parking_lot_core" -version = "0.7.2" +name = "listenfd" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" +checksum = "b87bc54a4629b4294d0b3ef041b64c40c611097a677d9dc07b2c67739fe39dba" dependencies = [ - "cfg-if 0.1.10", - "cloudabi", "libc", - "redox_syscall 0.1.57", - "smallvec", - "winapi 0.3.9", + "uuid", + "winapi", ] [[package]] -name = "parking_lot_core" -version = "0.8.2" +name = "litemap" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.1.57", - "smallvec", - "winapi 0.3.9", -] +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" [[package]] -name = "parse-zoneinfo" -version = "0.3.0" +name = "lock_api" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ - "regex", + "autocfg", + "scopeguard", ] [[package]] -name = "paste" -version = "1.0.4" +name = "lockfree-object-pool" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d65c4d95931acda4498f675e332fcbdc9a06705cd07086c510e9b6009cd1c1" +checksum = "3a69c0481fc2424cb55795de7da41add33372ea75a94f9b6588ab6a2826dfebc" [[package]] -name = "pbkdf2" -version = "0.3.0" +name = "log" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" + +[[package]] +name = "loki-logproto" +version = "0.1.0" dependencies = [ - "byteorder", - "crypto-mac 0.7.0", + "chrono", + "prost 0.12.6", + "prost-build 0.12.6", + "prost-types 0.12.6", ] [[package]] -name = "pbkdf2" -version = "0.6.0" +name = "lru" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b8c0d71734018084da0c0354193a5edfb81b20d2d57a92c5b154aefc554a4a" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "crypto-mac 0.10.0", + "hashbrown 0.15.2", ] [[package]] -name = "peeking_take_while" -version = "0.1.2" +name = "lru" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" [[package]] -name = "pem" -version = "0.8.2" +name = "lru-cache" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c220d01f863d13d96ca82359d1e81e64a7c6bf0637bcde7b2349630addf0c6" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" dependencies = [ - "base64 0.13.0", - "once_cell", - "regex", + "linked-hash-map", ] [[package]] -name = "percent-encoding" -version = "2.1.0" +name = "lua-src" +version = "547.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "1edaf29e3517b49b8b746701e5648ccb5785cde1c119062cbabbc5d5cd115e42" +dependencies = [ + "cc", +] [[package]] -name = "pest" -version = "2.1.3" +name = "luajit-src" +version = "210.5.2+113a168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "823ec7bedb1819b11633bd583ae981b0082db08492b0c3396412b85dd329ffee" dependencies = [ - "ucd-trie", + "cc", + "which 5.0.0", ] [[package]] -name = "pest_derive" -version = "2.1.0" +name = "lz4" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" dependencies = [ - "pest", - "pest_generator", + "libc", + "lz4-sys", ] [[package]] -name = "pest_generator" -version = "2.1.3" +name = "lz4-sys" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" dependencies = [ - "pest", - "pest_meta", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "cc", + "libc", ] [[package]] -name = "pest_meta" -version = "2.1.3" +name = "macaddr" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" -dependencies = [ - "maplit", - "pest", - "sha-1 0.8.2", -] +checksum = "baee0bbc17ce759db233beb01648088061bf678383130602a298e6998eedb2d8" [[package]] -name = "petgraph" -version = "0.5.1" +name = "mach" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" dependencies = [ - "fixedbitset", - "indexmap", + "libc", ] [[package]] -name = "phf" -version = "0.8.0" +name = "malloc_buf" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" dependencies = [ - "phf_shared", + "libc", ] [[package]] -name = "phf_shared" -version = "0.8.0" +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "matchers" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "siphasher", + "regex-automata 0.1.10", ] [[package]] -name = "pico-args" -version = "0.3.4" +name = "matches" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b9b4df73455c861d7cbf8be42f01d3b373ed7f02e378d55fa84eafc6f638b1" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] -name = "pin-project" -version = "0.4.27" +name = "matchit" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" -dependencies = [ - "pin-project-internal 0.4.27", -] +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] -name = "pin-project" -version = "1.0.4" +name = "matrixmultiply" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b70b68509f17aa2857863b6fa00bf21fc93674c7a8893de2f469f6aa7ca2f2" +checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" dependencies = [ - "pin-project-internal 1.0.4", + "autocfg", + "rawpointer", ] [[package]] -name = "pin-project-internal" -version = "0.4.27" +name = "maxminddb" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" +checksum = "144de2546bf4846c6c84b7f76be035f7ebbc1e7d40cfb05810ba45c129508321" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "ipnetwork", + "log", + "memchr", + "serde", + "simdutf8", ] [[package]] -name = "pin-project-internal" -version = "1.0.4" +name = "md-5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "cfg-if", + "digest", ] [[package]] -name = "pin-project-lite" -version = "0.1.11" +name = "memchr" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] -name = "pin-project-lite" -version = "0.2.4" +name = "memmap2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +dependencies = [ + "libc", +] [[package]] -name = "pin-utils" -version = "0.1.0" +name = "memoffset" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] [[package]] -name = "pkg-config" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" - -[[package]] -name = "platforms" -version = "1.0.3" +name = "memoffset" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc77a3fc329982cbf3ea772aa265b742a550998bad65747c630406ee52dac425" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] [[package]] -name = "plotters" -version = "0.2.15" +name = "memoffset" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d1685fbe7beba33de0330629da9d955ac75bd54f33d7b79f9a895590124f6bb" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ - "js-sys", - "num-traits", - "wasm-bindgen", - "web-sys", + "autocfg", ] [[package]] -name = "polling" -version = "2.0.2" +name = "metrics" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4" +checksum = "7a7deb012b3b2767169ff203fadb4c6b0b82b947512e5eb9e0b78c2e186ad9e3" dependencies = [ - "cfg-if 0.1.10", - "libc", - "log", - "wepoll-sys", - "winapi 0.3.9", + "ahash 0.8.11", + "portable-atomic", ] [[package]] -name = "portpicker" -version = "1.0.0" +name = "metrics-tracing-context" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1ada651cd6bdffe01e5f35067df53491f1fe853d2b154008ca2bd30b3d3fcf6" dependencies = [ - "rand 0.8.2", + "indexmap 2.7.1", + "itoa", + "lockfree-object-pool", + "metrics", + "metrics-util", + "once_cell", + "tracing 0.1.41", + "tracing-core 0.1.33", + "tracing-subscriber", ] [[package]] -name = "postgres-openssl" -version = "0.3.0" +name = "metrics-util" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f10ea2d77c744e1846d03b58362679e51c6647acf0e6a65a1f1e5f0d5e99387" +checksum = "15b482df36c13dd1869d73d14d28cd4855fbd6cfc32294bee109908a9f4a4ed7" dependencies = [ - "bytes 0.5.6", - "futures 0.3.12", - "openssl", - "tokio 0.2.24", - "tokio-openssl", - "tokio-postgres", + "aho-corasick", + "crossbeam-epoch", + "crossbeam-utils", + "hashbrown 0.15.2", + "indexmap 2.7.1", + "metrics", + "ordered-float 4.6.0", + "quanta", + "radix_trie", + "sketches-ddsketch", ] [[package]] -name = "postgres-protocol" -version = "0.5.3" +name = "mime" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4888a0e36637ab38d76cace88c1476937d617ad015f07f6b669cec11beacc019" -dependencies = [ - "base64 0.13.0", - "byteorder", - "bytes 0.5.6", - "fallible-iterator", - "hmac 0.9.0", - "md5", - "memchr", - "rand 0.7.3", - "sha2 0.9.2", - "stringprep", -] +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] -name = "postgres-types" -version = "0.1.3" +name = "mime_guess" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfc08a7d94a80665de4a83942fa8db2fdeaf2f123fc0535e384dc4fff251efae" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" dependencies = [ - "bytes 0.5.6", - "chrono", - "fallible-iterator", - "postgres-protocol", + "mime", + "unicase", ] [[package]] -name = "ppv-lite86" -version = "0.2.10" +name = "minimal-lexical" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] -name = "precomputed-hash" -version = "0.1.1" +name = "miniz_oxide" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] [[package]] -name = "predicates" -version = "1.0.6" +name = "miniz_oxide" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73dd9b7b200044694dfede9edf907c1ca19630908443e9447e624993700c6932" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "difference", - "predicates-core", + "adler2", ] [[package]] -name = "predicates-core" +name = "mio" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3dbeaaf793584e29c58c7e3a82bbb3c7c06b63cea68d13b0e3cddc124104dc" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +dependencies = [ + "hermit-abi", + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] [[package]] -name = "predicates-tree" -version = "1.0.1" +name = "mlua" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aee95d988ee893cb35c06b148c80ed2cd52c8eea927f50ba7a0be1a786aeab73" +checksum = "d3f763c1041eff92ffb5d7169968a327e1ed2ebfe425dac0ee5a35f29082534b" dependencies = [ - "predicates-core", - "treeline", + "bstr 1.11.3", + "either", + "mlua-sys", + "mlua_derive", + "num-traits", + "parking_lot", + "rustc-hash", ] [[package]] -name = "pretty_assertions" -version = "0.6.1" +name = "mlua-sys" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f81e1644e1b54f5a68959a29aa86cde704219254669da328ecfdf6a1f09d427" +checksum = "63a11d485edf0f3f04a508615d36c7d50d299cf61a7ee6d3e2530651e0a31771" dependencies = [ - "ansi_term 0.11.0", - "ctor", - "difference", - "output_vt100", + "cc", + "cfg-if", + "lua-src", + "luajit-src", + "pkg-config", ] [[package]] -name = "prettydiff" -version = "0.4.0" +name = "mlua_derive" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bc9e8bdfe446d34975ff774fbb4a2b944d17054f6b5845ec132d4fb9ff8f559" +checksum = "870d71c172fcf491c6b5fb4c04160619a2ee3e5a42a1402269c66bcbf1dd4deb" dependencies = [ - "ansi_term 0.9.0", - "prettytable-rs", - "structopt 0.2.18", + "itertools 0.13.0", + "once_cell", + "proc-macro-error2", + "proc-macro2 1.0.93", + "quote 1.0.38", + "regex", + "syn 2.0.98", ] [[package]] -name = "prettytable-rs" -version = "0.8.0" +name = "mock_instant" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fd04b170004fa2daccf418a7f8253aaf033c27760b5f225889024cf66d7ac2e" -dependencies = [ - "atty", - "csv", - "encode_unicode", - "lazy_static", - "term", - "unicode-width", -] +checksum = "15dce1a197fd6e12d773d7e4e7e1681fa5de6eb689ecaae824dc3cd1f643e7dc" [[package]] -name = "proc-macro-crate" -version = "0.1.5" +name = "moka" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08" dependencies = [ - "toml", + "async-lock 3.4.0", + "async-trait", + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "event-listener 5.3.1", + "futures-util", + "once_cell", + "parking_lot", + "quanta", + "rustc_version 0.4.1", + "smallvec", + "tagptr", + "thiserror 1.0.68", + "triomphe", + "uuid", ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "mongodb" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "ef206acb1b72389b49bc9985efe7eb1f8a9bb18e5680d262fac26c07f44025f1" dependencies = [ - "proc-macro-error-attr", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "version_check 0.9.2", + "async-trait", + "base64 0.13.1", + "bitflags 1.3.2", + "bson", + "chrono", + "derivative", + "derive_more", + "futures-core", + "futures-executor", + "futures-io", + "futures-util", + "hex", + "hmac", + "lazy_static", + "md-5", + "pbkdf2", + "percent-encoding", + "rand 0.8.5", + "rustc_version_runtime", + "rustls 0.21.11", + "rustls-pemfile 1.0.4", + "serde", + "serde_bytes", + "serde_with 1.14.0", + "sha-1", + "sha2", + "socket2 0.4.10", + "stringprep", + "strsim 0.10.0", + "take_mut", + "thiserror 1.0.68", + "tokio", + "tokio-rustls 0.24.1", + "tokio-util", + "trust-dns-proto", + "trust-dns-resolver", + "typed-builder 0.10.0", + "uuid", + "webpki-roots 0.25.2", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "multer" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "a15d522be0a9c3e46fd2632e272d178f56387bdb5c9fbb3a36c649062e9b5219" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "version_check 0.9.2", + "bytes 1.10.0", + "encoding_rs", + "futures-util", + "http 1.1.0", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", ] [[package]] -name = "proc-macro-hack" -version = "0.5.19" +name = "multimap" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] -name = "proc-macro-nested" -version = "0.1.7" +name = "native-tls" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] [[package]] -name = "proc-macro2" -version = "0.4.30" +name = "ndarray" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +checksum = "882ed72dce9365842bf196bdeedf5055305f11fc8c03dee7bb0194a6cad34841" dependencies = [ - "unicode-xid 0.1.0", + "matrixmultiply", + "num-complex", + "num-integer", + "num-traits", + "portable-atomic", + "portable-atomic-util", + "rawpointer", ] [[package]] -name = "proc-macro2" -version = "1.0.24" +name = "ndarray-stats" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +checksum = "17ebbe97acce52d06aebed4cd4a87c0941f4b2519b59b82b4feb5bd0ce003dfd" dependencies = [ - "unicode-xid 0.2.1", + "indexmap 2.7.1", + "itertools 0.13.0", + "ndarray", + "noisy_float", + "num-integer", + "num-traits", + "rand 0.8.5", ] [[package]] -name = "prometheus-parser" -version = "0.1.0" -dependencies = [ - "indexmap", - "nom 6.0.1", - "num_enum", - "prost", - "prost-build", - "prost-types", - "shared", - "snafu", -] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" [[package]] -name = "proptest" -version = "0.10.1" +name = "netlink-packet-core" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12e6c80c1139113c28ee4670dc50cc42915228b51f56a9e407f0ec60f966646f" +checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" dependencies = [ - "bit-set", - "bitflags", + "anyhow", "byteorder", - "lazy_static", - "num-traits", - "quick-error", - "rand 0.7.3", - "rand_chacha 0.2.2", - "rand_xorshift 0.2.0", - "regex-syntax", - "rusty-fork", - "tempfile", + "netlink-packet-utils", ] [[package]] -name = "proptests" -version = "0.1.0" +name = "netlink-packet-sock-diag" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a495cb1de50560a7cd12fdcf023db70eec00e340df81be31cedbbfd4aadd6b76" dependencies = [ - "chrono", - "ordered-float", - "proptest", - "vrl-diagnostic", - "vrl-parser", + "anyhow", + "bitflags 1.3.2", + "byteorder", + "libc", + "netlink-packet-core", + "netlink-packet-utils", + "smallvec", ] [[package]] -name = "prost" -version = "0.6.1" +name = "netlink-packet-utils" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ - "bytes 0.5.6", - "prost-derive", + "anyhow", + "byteorder", + "paste", + "thiserror 1.0.68", ] [[package]] -name = "prost-build" -version = "0.6.1" +name = "netlink-sys" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26" +checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" dependencies = [ - "bytes 0.5.6", - "heck", - "itertools 0.8.2", + "bytes 1.10.0", + "futures 0.3.31", + "libc", "log", - "multimap", - "petgraph", - "prost", - "prost-types", - "tempfile", - "which", + "tokio", ] [[package]] -name = "prost-derive" -version = "0.6.1" +name = "new_debug_unreachable" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72" -dependencies = [ - "anyhow", - "itertools 0.8.2", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", -] +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" [[package]] -name = "prost-types" -version = "0.6.1" +name = "nibble_vec" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" dependencies = [ - "bytes 0.5.6", - "prost", + "smallvec", ] [[package]] -name = "pulsar" -version = "1.0.1" +name = "nix" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9735d0f95aba0c46c0f7cb84962d27a668cbc52e93264bab6ba510dead01913f" +checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" dependencies = [ - "bit-vec 0.6.3", - "bytes 0.5.6", - "chrono", - "crc", - "futures 0.3.12", - "futures-io", - "futures-timer", - "log", - "native-tls", - "nom 5.1.2", - "pem", - "prost", - "prost-build", - "prost-derive", - "rand 0.7.3", - "regex", - "tokio 0.2.24", - "tokio-native-tls", - "tokio-util", - "url", + "bitflags 1.3.2", + "cc", + "cfg-if", + "libc", + "memoffset 0.6.5", ] [[package]] -name = "qstring" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" +name = "nix" +version = "0.26.2" +source = "git+https://github.com/vectordotdev/nix.git?branch=memfd/gnu/musl#6c53a918d2d5bf4307fd60a19d9e10913ae71eeb" dependencies = [ - "percent-encoding", + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", + "static_assertions", ] [[package]] -name = "quanta" -version = "0.6.5" +name = "nix" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9a7776952c6405aab84c51621523a5e053aa6fd63c8f8e8eeaaed79ad6d2dc" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "atomic-shim", - "ctor", + "bitflags 2.8.0", + "cfg-if", + "cfg_aliases 0.2.1", "libc", - "mach", - "once_cell", - "raw-cpuid 8.1.2", - "winapi 0.3.9", ] [[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quickcheck" -version = "1.0.3" +name = "nkeys" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" +checksum = "aad178aad32087b19042ee36dfd450b73f5f934fbfb058b59b198684dfec4c47" dependencies = [ - "env_logger 0.8.2", + "byteorder", + "data-encoding", + "ed25519", + "ed25519-dalek", + "getrandom 0.2.15", "log", - "rand 0.8.2", + "rand 0.8.5", + "signatory", ] [[package]] -name = "quote" -version = "0.6.13" +name = "nkeys" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +checksum = "9f49e787f4c61cbd0f9320b31cc26e58719f6aa5068e34697dd3aea361412fe3" dependencies = [ - "proc-macro2 0.4.30", + "data-encoding", + "ed25519", + "ed25519-dalek", + "getrandom 0.2.15", + "log", + "rand 0.8.5", + "signatory", ] [[package]] -name = "quote" -version = "1.0.8" +name = "no-proxy" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" +checksum = "6d688d11967f7f52e273fb8f8f07ecb094254fed630e22a0cab60cc98047a5db" dependencies = [ - "proc-macro2 1.0.24", + "cidr-utils", + "serde", ] [[package]] -name = "radium" -version = "0.5.3" +name = "no-std-compat" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" [[package]] -name = "rand" -version = "0.6.5" +name = "noisy_float" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +checksum = "978fe6e6ebc0bf53de533cd456ca2d9de13de13856eda1518a285d7705a213af" dependencies = [ - "autocfg 0.1.7", - "libc", - "rand_chacha 0.1.1", - "rand_core 0.4.2", - "rand_hc 0.1.0", - "rand_isaac", - "rand_jitter", - "rand_os", - "rand_pcg", - "rand_xorshift 0.1.1", - "winapi 0.3.9", + "num-traits", ] [[package]] -name = "rand" -version = "0.7.3" +name = "nom" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc 0.2.0", + "memchr", + "minimal-lexical", ] [[package]] -name = "rand" -version = "0.8.2" +name = "nonzero_ext" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18519b42a40024d661e1714153e9ad0c3de27cd495760ceb09710920f1098b1e" -dependencies = [ - "libc", - "rand_chacha 0.3.0", - "rand_core 0.6.1", - "rand_hc 0.3.0", -] +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" [[package]] -name = "rand_chacha" -version = "0.1.1" +name = "notify" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" dependencies = [ - "autocfg 0.1.7", - "rand_core 0.3.1", + "bitflags 2.8.0", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "notify-types", + "walkdir", + "windows-sys 0.59.0", ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "notify-types" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] +checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" [[package]] -name = "rand_chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +name = "ntapi" +version = "0.3.7" +source = "git+https://github.com/MSxDOS/ntapi.git?rev=24fc1e47677fc9f6e38e5f154e6011dc9b270da6#24fc1e47677fc9f6e38e5f154e6011dc9b270da6" dependencies = [ - "ppv-lite86", - "rand_core 0.6.1", + "winapi", ] [[package]] -name = "rand_core" -version = "0.3.1" +name = "ntapi" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ - "rand_core 0.4.2", + "winapi", ] [[package]] -name = "rand_core" -version = "0.4.2" +name = "nu-ansi-term" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] [[package]] -name = "rand_core" -version = "0.5.1" +name = "nuid" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "fc895af95856f929163a0aa20c26a78d26bfdc839f51b9d5aa7a5b79e52b7e83" dependencies = [ - "getrandom 0.1.16", + "rand 0.8.5", ] [[package]] -name = "rand_core" -version = "0.6.1" +name = "num-bigint" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ - "getrandom 0.2.1", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "rand_distr" -version = "0.4.0" +name = "num-bigint-dig" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9e8f32ad24fb80d07d2323a9a2ce8b30d68a62b8cb4df88119ff49a698f038" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", "num-traits", - "rand 0.8.2", + "rand 0.8.5", + "smallvec", + "zeroize", ] [[package]] -name = "rand_hc" -version = "0.1.0" +name = "num-complex" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ - "rand_core 0.3.1", + "num-traits", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] -name = "rand_hc" -version = "0.3.0" +name = "num-format" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "rand_core 0.6.1", + "arrayvec", + "itoa", + "num-bigint", ] [[package]] -name = "rand_isaac" -version = "0.1.1" +name = "num-integer" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ - "rand_core 0.3.1", + "autocfg", + "num-traits", ] [[package]] -name = "rand_jitter" -version = "0.1.4" +name = "num-iter" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ - "libc", - "rand_core 0.4.2", - "winapi 0.3.9", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "rand_os" -version = "0.1.3" +name = "num-rational" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ - "cloudabi", - "fuchsia-cprng", - "libc", - "rand_core 0.4.2", - "rdrand", - "winapi 0.3.9", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "rand_pcg" -version = "0.1.2" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ - "autocfg 0.1.7", - "rand_core 0.4.2", + "autocfg", + "libm", ] [[package]] -name = "rand_xorshift" -version = "0.1.1" +name = "num_cpus" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "rand_core 0.3.1", + "hermit-abi", + "libc", ] [[package]] -name = "rand_xorshift" -version = "0.2.0" +name = "num_enum" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" dependencies = [ - "rand_core 0.5.1", + "num_enum_derive 0.6.1", ] [[package]] -name = "raw-cpuid" -version = "6.1.0" +name = "num_enum" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a9d219c32c9132f7be513c18be77c9881c7107d2ab5569d205a6a0f0e6dc7d" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "bitflags", - "cc", - "rustc_version", + "num_enum_derive 0.7.3", ] [[package]] -name = "raw-cpuid" -version = "7.0.4" +name = "num_enum_derive" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beb71f708fe39b2c5e98076204c3cc094ee5a4c12c4cdb119a2b72dc34164f41" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ - "bitflags", - "cc", - "rustc_version", + "proc-macro-crate 1.3.1", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "raw-cpuid" -version = "8.1.2" +name = "num_enum_derive" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fdf7d9dbd43f3d81d94a49c1c3df73cc2b3827995147e6cf7f89d4ec5483e73" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "bitflags", - "cc", - "rustc_version", + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "rayon" -version = "1.5.0" +name = "num_threads" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" dependencies = [ - "autocfg 1.0.1", - "crossbeam-deque 0.8.0", - "either", - "rayon-core", + "libc", ] [[package]] -name = "rayon-core" -version = "1.9.0" +name = "number_prefix" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" -dependencies = [ - "crossbeam-channel 0.5.0", - "crossbeam-deque 0.8.0", - "crossbeam-utils 0.8.1", - "lazy_static", - "num_cpus", -] +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] -name = "rdkafka" -version = "0.24.0" +name = "oauth2" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db594dc221933be6f2ad804b997b48a57a63436c26ab924222c28e9a36ad210a" +checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" dependencies = [ - "futures 0.3.12", - "libc", - "log", - "rdkafka-sys", + "base64 0.13.1", + "chrono", + "getrandom 0.2.15", + "http 0.2.9", + "rand 0.8.5", + "reqwest 0.11.26", "serde", - "serde_derive", "serde_json", - "tokio 0.2.24", + "serde_path_to_error", + "sha2", + "thiserror 1.0.68", + "url", ] [[package]] -name = "rdkafka-sys" -version = "2.1.0+1.5.0" +name = "objc" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d3f17044cba41c7309facedc72ca9bf25f177bf1e06756318e010f043713017" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ - "cmake", - "libc", - "libz-sys", - "num_enum", - "openssl-sys", - "pkg-config", - "sasl2-sys", - "zstd-sys", + "malloc_buf", ] [[package]] -name = "rdrand" -version = "0.4.0" +name = "object" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ - "rand_core 0.3.1", + "memchr", ] [[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.2.4" +name = "octseq" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570" +checksum = "126c3ca37c9c44cec575247f43a3e4374d8927684f129d2beeb0d2cef262fe12" dependencies = [ - "bitflags", + "bytes 1.10.0", + "serde", + "smallvec", ] [[package]] -name = "redox_users" -version = "0.3.5" +name = "ofb" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" +checksum = "2cc40678e045ff4eb1666ea6c0f994b133c31f673c09aed292261b6d5b6963a0" dependencies = [ - "getrandom 0.1.16", - "redox_syscall 0.1.57", - "rust-argon2", + "cipher", ] [[package]] -name = "redox_users" -version = "0.4.0" +name = "once_cell" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" -dependencies = [ - "getrandom 0.2.1", - "redox_syscall 0.2.4", -] +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] -name = "regalloc" -version = "0.0.26" +name = "onig" +version = "6.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c03092d79e0fd610932d89ed53895a38c0dd3bcd317a0046e69940de32f1d95" +checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" dependencies = [ - "log", - "rustc-hash", - "smallvec", + "bitflags 1.3.2", + "libc", + "once_cell", + "onig_sys", ] [[package]] -name = "regex" -version = "1.4.3" +name = "onig_sys" +version = "69.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" +checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", - "thread_local", + "cc", + "pkg-config", ] [[package]] -name = "regex-automata" -version = "0.1.9" +name = "oorandom" +version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" -dependencies = [ - "byteorder", - "regex-syntax", -] +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] -name = "regex-syntax" -version = "0.6.22" +name = "opaque-debug" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "opendal" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +checksum = "52c17c077f23fa2d2c25d9d22af98baa43b8bbe2ef0de80cf66339aa70401467" dependencies = [ - "winapi 0.3.9", + "anyhow", + "async-trait", + "backon", + "base64 0.21.7", + "bytes 1.10.0", + "chrono", + "flagset", + "futures 0.3.31", + "getrandom 0.2.15", + "http 0.2.9", + "log", + "md-5", + "once_cell", + "percent-encoding", + "quick-xml", + "reqwest 0.11.26", + "serde", + "serde_json", + "tokio", + "uuid", ] [[package]] -name = "reqwest" -version = "0.10.10" +name = "openidconnect" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c" +checksum = "62d6050f6a84b81f23c569f5607ad883293e57491036e318fafe6fc4895fadb1" dependencies = [ - "base64 0.13.0", - "bytes 0.5.6", - "encoding_rs", - "futures-core", - "futures-util", - "http", - "http-body 0.3.1", - "hyper 0.13.10", - "hyper-rustls", - "hyper-tls", - "ipnet", - "js-sys", - "lazy_static", + "base64 0.13.1", + "chrono", + "dyn-clone", + "ed25519-dalek", + "hmac", + "http 0.2.9", + "itertools 0.10.5", "log", - "mime", - "mime_guess", - "native-tls", - "percent-encoding", - "pin-project-lite 0.2.4", - "rustls 0.18.1", + "oauth2", + "p256", + "p384", + "rand 0.8.5", + "rsa", "serde", + "serde-value", + "serde_derive", "serde_json", - "serde_urlencoded 0.7.0", - "tokio 0.2.24", - "tokio-rustls 0.14.1", - "tokio-tls", + "serde_path_to_error", + "serde_plain", + "serde_with 3.12.0", + "sha2", + "subtle", + "thiserror 1.0.68", "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.20.0", - "winreg 0.7.0", ] [[package]] -name = "resolv-conf" -version = "0.7.0" +name = "openssl" +version = "0.10.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" dependencies = [ - "hostname", - "quick-error", + "bitflags 2.8.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", ] [[package]] -name = "ring" -version = "0.16.19" +name = "openssl-macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "024a1e66fea74c66c66624ee5622a7ff0e4b73a13b4f5c326ddb50c708944226" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted", - "web-sys", - "winapi 0.3.9", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "rle-decode-fast" -version = "1.0.1" +name = "openssl-probe" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] -name = "rlua" -version = "0.17.1-alpha.0" -source = "git+https://github.com/kyren/rlua?rev=25bd7e6bffef9597466a98bfca80a3056c9e6320#25bd7e6bffef9597466a98bfca80a3056c9e6320" +name = "openssl-src" +version = "300.4.1+3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c" dependencies = [ - "bitflags", - "bstr", "cc", - "libc", - "num-traits", ] [[package]] -name = "rpassword" -version = "5.0.0" +name = "openssl-sys" +version = "0.9.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9" +checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" dependencies = [ + "cc", "libc", - "winapi 0.3.9", + "openssl-src", + "pkg-config", + "vcpkg", ] [[package]] -name = "rusoto_cloudwatch" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5057642d3b77125bdae53ac923ed46c931a4387a9409d192dedd6ae03926dc6" +name = "opentelemetry-proto" +version = "0.1.0" dependencies = [ - "async-trait", - "bytes 0.5.6", - "futures 0.3.12", - "rusoto_core", - "serde_urlencoded 0.6.1", - "xml-rs", + "bytes 1.10.0", + "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 = "rusoto_core" -version = "0.45.0" +name = "option-ext" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e977941ee0658df96fca7291ecc6fc9a754600b21ad84b959eb1dbbc9d5abcc7" -dependencies = [ - "async-trait", - "base64 0.12.3", - "bytes 0.5.6", - "crc32fast", - "flate2", - "futures 0.3.12", - "http", - "hyper 0.13.10", - "hyper-tls", - "lazy_static", - "log", - "md5", - "percent-encoding", - "pin-project 0.4.27", - "rusoto_credential", - "rusoto_signature", - "rustc_version", - "serde", - "serde_json", - "tokio 0.2.24", - "xml-rs", -] +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] -name = "rusoto_credential" -version = "0.45.0" +name = "ordered-float" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac05563f83489b19b4d413607a30821ab08bbd9007d14fa05618da3ef09d8b" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" dependencies = [ - "async-trait", - "chrono", - "dirs 2.0.2", - "futures 0.3.12", - "hyper 0.13.10", - "pin-project 0.4.27", - "regex", - "serde", - "serde_json", - "shlex", - "tokio 0.2.24", - "zeroize", + "num-traits", ] [[package]] -name = "rusoto_es" -version = "0.45.0" +name = "ordered-float" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12a49c8259ada24cb2c64d2a2aee0ca150eed3aef91d102063d8efca747ccaa3" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" dependencies = [ - "async-trait", - "bytes 0.5.6", - "futures 0.3.12", - "rusoto_core", - "serde", - "serde_derive", - "serde_json", + "num-traits", ] [[package]] -name = "rusoto_firehose" -version = "0.45.0" +name = "os_pipe" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3c0c212bda09bad1e6b34cf2cdc9b6960214ff52935300567984c80389e29a" +checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" dependencies = [ - "async-trait", - "bytes 0.5.6", - "futures 0.3.12", - "rusoto_core", - "serde", - "serde_json", + "libc", + "windows-sys 0.48.0", ] [[package]] -name = "rusoto_kinesis" -version = "0.45.0" +name = "outref" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb8a3baabc67851ca472d25c9fe848b229969a1412cbc50ad00ce3af00e9aeae" -dependencies = [ - "async-trait", - "bytes 0.5.6", - "futures 0.3.12", - "rusoto_core", - "serde", - "serde_json", -] +checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" [[package]] -name = "rusoto_logs" -version = "0.45.0" +name = "overload" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47079cf81cf7301d96195e495f2649cd731bedfe592925741997eb5a02d253e6" -dependencies = [ - "async-trait", - "bytes 0.5.6", - "futures 0.3.12", - "rusoto_core", - "serde", - "serde_json", -] +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] -name = "rusoto_s3" -version = "0.45.0" +name = "owo-colors" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1146e37a7c1df56471ea67825fe09bbbd37984b5f6e201d8b2e0be4ee15643d8" +checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" dependencies = [ - "async-trait", - "bytes 0.5.6", - "futures 0.3.12", - "rusoto_core", - "xml-rs", + "supports-color 2.1.0", + "supports-color 3.0.1", ] [[package]] -name = "rusoto_signature" -version = "0.45.0" +name = "p256" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a740a88dde8ded81b6f2cff9cd5e054a5a2e38a38397260f7acdd2c85d17dd" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ - "base64 0.12.3", - "bytes 0.5.6", - "futures 0.3.12", - "hex", - "hmac 0.8.1", - "http", - "hyper 0.13.10", - "log", - "md5", - "percent-encoding", - "pin-project 0.4.27", - "rusoto_credential", - "rustc_version", - "serde", - "sha2 0.9.2", - "time 0.2.24", - "tokio 0.2.24", + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", ] [[package]] -name = "rusoto_sqs" -version = "0.45.0" +name = "p384" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcd228a1b4ce3f3a40541ee8cef526ff3702b58a4779fb05c31e739174efda5e" +checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" dependencies = [ - "async-trait", - "bytes 0.5.6", - "futures 0.3.12", - "rusoto_core", - "serde_urlencoded 0.6.1", - "xml-rs", + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", ] [[package]] -name = "rusoto_sts" -version = "0.45.0" +name = "pad" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3815b8c0fc1c50caf9e87603f23daadfedb18d854de287b361c69f68dc9d49e0" +checksum = "d2ad9b889f1b12e0b9ee24db044b5129150d5eada288edc800f789928dc8c0e3" dependencies = [ - "async-trait", - "bytes 0.5.6", - "chrono", - "futures 0.3.12", - "rusoto_core", - "serde_urlencoded 0.6.1", - "tempfile", - "xml-rs", + "unicode-width 0.1.13", ] [[package]] -name = "rust-argon2" -version = "0.8.3" +name = "parking" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" -dependencies = [ - "base64 0.13.0", - "blake2b_simd", - "constant_time_eq", - "crossbeam-utils 0.8.1", -] +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] -name = "rust_decimal" -version = "1.9.0" +name = "parking_lot" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5c739ba050709eae138f053356d27ff818d71fe54ce5a8d9f4c7a660bfb6684" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ - "num-traits", - "serde", + "lock_api", + "parking_lot_core", ] [[package]] -name = "rustc-demangle" -version = "0.1.18" +name = "parking_lot_core" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "smallvec", + "windows-targets 0.48.5", +] [[package]] -name = "rustc-hash" +name = "parse-size" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "487f2ccd1e17ce8c1bfab3a65c89525af41cfad4c8659021a1e9a2aacd73b89b" [[package]] -name = "rustc_version" -version = "0.2.3" +name = "parse-zoneinfo" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41" dependencies = [ - "semver 0.9.0", + "regex", ] [[package]] -name = "rustls" -version = "0.17.0" +name = "passt" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0d4a31f5d68413404705d6982529b0e11a9aacd4839d1d6222ee3b8cb4015e1" -dependencies = [ - "base64 0.11.0", - "log", - "ring", - "sct", - "webpki", -] +checksum = "13242a5ce97f39a8095d03c8b273e91d09f2690c0b7d69a2af844941115bab24" [[package]] -name = "rustls" -version = "0.18.1" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" -dependencies = [ - "base64 0.12.3", - "log", - "ring", - "sct", - "webpki", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] -name = "rustls-native-certs" -version = "0.4.0" +name = "pbkdf2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629d439a7672da82dd955498445e496ee2096fe2117b9f796558a43fdb9e59b8" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "openssl-probe", - "rustls 0.18.1", - "schannel", - "security-framework 1.0.0", + "digest", ] [[package]] -name = "rustversion" -version = "1.0.4" +name = "peeking_take_while" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd" +checksum = "9e9ed2178b0575fff8e1b83b58ba6f75e727aafac2e1b6c795169ad3b17eb518" [[package]] -name = "rusty-fork" -version = "0.3.0" +name = "pem" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923" dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", + "base64 0.21.7", + "serde", ] [[package]] -name = "rustyline" -version = "7.1.0" +name = "pem-rfc7468" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8227301bfc717136f0ecbd3d064ba8199e44497a0bdd46bb01ede4387cfd2cec" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "fs2", - "libc", - "log", - "memchr", - "nix 0.19.1", - "scopeguard", - "unicode-segmentation", - "unicode-width", - "utf8parse 0.2.0", - "winapi 0.3.9", + "base64ct", ] [[package]] -name = "ryu" -version = "1.0.5" +name = "percent-encoding" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] -name = "salsa20" -version = "0.7.2" +name = "pest" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399f290ffc409596022fce5ea5d4138184be4784f2b28c62c59f0d8389059a15" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ - "cipher", + "memchr", + "thiserror 1.0.68", + "ucd-trie", ] [[package]] -name = "same-file" -version = "1.0.6" +name = "pest_derive" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" dependencies = [ - "winapi-util", + "pest", + "pest_generator", ] [[package]] -name = "sasl2-sys" -version = "0.1.14" +name = "pest_generator" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "067d1f7cad609ce2046016915d48caf20d6fc35469b0dae17579eea927c3b1f8" +checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" dependencies = [ - "cc", - "duct", - "krb5-src", - "libc", - "pkg-config", + "pest", + "pest_meta", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "scan_fmt" -version = "0.2.5" +name = "pest_meta" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248286eec0f55678879ef1caec3d76276643ebcb5460d8cb6e732ef40f50aabe" +checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" dependencies = [ - "regex", + "once_cell", + "pest", + "sha2", ] [[package]] -name = "schannel" -version = "0.1.19" +name = "petgraph" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ - "lazy_static", - "winapi 0.3.9", + "fixedbitset", + "indexmap 2.7.1", ] [[package]] -name = "scoped-tls" -version = "1.0.0" +name = "phf" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_shared 0.11.2", +] [[package]] -name = "scopeguard" -version = "1.1.0" +name = "phf_codegen" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", +] [[package]] -name = "scrypt" -version = "0.5.0" +name = "phf_generator" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da492dab03f925d977776a0b7233d7b934d6dc2b94faead48928e2e9bacedb9" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ - "hmac 0.10.1", - "pbkdf2 0.6.0", - "salsa20", - "sha2 0.9.2", + "phf_shared 0.11.2", + "rand 0.8.5", ] [[package]] -name = "sct" -version = "0.6.0" +name = "phf_shared" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "ring", - "untrusted", + "siphasher", ] [[package]] -name = "seahash" -version = "4.1.0" +name = "phf_shared" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] [[package]] -name = "security-framework" -version = "1.0.0" +name = "pin-project" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad502866817f0575705bd7be36e2b2535cc33262d493aa733a2ec862baa2bc2b" +checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" dependencies = [ - "bitflags", - "core-foundation 0.7.0", - "core-foundation-sys 0.7.0", - "libc", - "security-framework-sys 1.0.0", + "pin-project-internal", ] [[package]] -name = "security-framework" -version = "2.0.0" +name = "pin-project-internal" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69" +checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" dependencies = [ - "bitflags", - "core-foundation 0.9.1", - "core-foundation-sys 0.8.2", - "libc", - "security-framework-sys 2.0.0", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "security-framework-sys" -version = "1.0.0" +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[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.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ceb04988b17b6d1dcd555390fa822ca5637b4a14e1f5099f13d351bed4d6c7" +checksum = "d894b67aa7a4bf295db5e85349078c604edaa6fa5c8721e8eca3c7729a27f2ac" dependencies = [ - "core-foundation-sys 0.7.0", - "libc", + "doc-comment", + "flume 0.10.14", + "parking_lot", + "tracing 0.1.41", ] [[package]] -name = "security-framework-sys" -version = "2.0.0" +name = "piper" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" dependencies = [ - "core-foundation-sys 0.8.2", - "libc", + "atomic-waker", + "fastrand 2.3.0", + "futures-io", ] [[package]] -name = "semver" -version = "0.9.0" +name = "pkcs1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" dependencies = [ - "semver-parser 0.7.0", - "serde", + "der", + "pkcs8", + "spki", ] [[package]] -name = "semver" -version = "0.11.0" +name = "pkcs8" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "semver-parser 0.10.2", - "serde", + "der", + "spki", ] [[package]] -name = "semver-parser" -version = "0.7.0" +name = "pkg-config" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] -name = "semver-parser" -version = "0.10.2" +name = "platforms" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] +checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] -name = "serde" -version = "1.0.119" +name = "plotters" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bdd36f49e35b61d49efd8aa7fc068fd295961fd2286d0b2ee9a4c7a14e99cc3" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ - "serde_derive", + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", ] [[package]] -name = "serde-big-array" -version = "0.2.0" +name = "plotters-backend" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883eee5198ea51720eab8be52a36cf6c0164ac90eea0ed95b649d5e35382404e" -dependencies = [ - "serde", - "serde_derive", -] +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" [[package]] -name = "serde-value" -version = "0.7.0" +name = "plotters-svg" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" dependencies = [ - "ordered-float", - "serde", + "plotters-backend", ] [[package]] -name = "serde_bytes" -version = "0.11.5" +name = "polling" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ - "serde", + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", ] [[package]] -name = "serde_cbor" -version = "0.11.1" +name = "polling" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622" +checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531" dependencies = [ - "half", - "serde", + "cfg-if", + "concurrent-queue", + "pin-project-lite", + "rustix 0.38.40", + "tracing 0.1.41", + "windows-sys 0.48.0", ] [[package]] -name = "serde_derive" -version = "1.0.119" +name = "poly1305" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552954ce79a059ddd5fd68c271592374bd15cab2274970380c000118aeffe1cd" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "cpufeatures", + "opaque-debug", + "universal-hash", ] [[package]] -name = "serde_json" -version = "1.0.61" +name = "portable-atomic" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", -] +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" [[package]] -name = "serde_regex" -version = "1.1.0" +name = "portable-atomic-util" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf" +checksum = "fcdd8420072e66d54a407b3316991fe946ce3ab1083a7f575b2463866624704d" dependencies = [ - "regex", - "serde", + "portable-atomic", ] [[package]] -name = "serde_urlencoded" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" +name = "portpicker" +version = "1.0.0" dependencies = [ - "dtoa", - "itoa", - "serde", - "url", + "rand 0.8.5", ] [[package]] -name = "serde_urlencoded" -version = "0.7.0" +name = "postgres-openssl" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" +checksum = "fb14e4bbc2c0b3d165bf30b79c7a9c10412dff9d98491ffdd64ed810ab891d21" dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", + "openssl", + "tokio", + "tokio-openssl", + "tokio-postgres", ] [[package]] -name = "serde_with" -version = "1.6.0" +name = "postgres-protocol" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f6201e064705553ece353a736a64be975680bd244908cf63e8fa71e478a51a" +checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54" dependencies = [ - "serde", - "serde_with_macros", + "base64 0.22.1", + "byteorder", + "bytes 1.10.0", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand 0.9.0", + "sha2", + "stringprep", ] [[package]] -name = "serde_with_macros" -version = "1.3.0" +name = "postgres-types" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1197ff7de45494f290c1e3e1a6f80e108974681984c87a3e480991ef3d0f1950" +checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" dependencies = [ - "darling", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "bytes 1.10.0", + "chrono", + "fallible-iterator", + "postgres-protocol", ] [[package]] -name = "serde_yaml" -version = "0.8.15" +name = "powerfmt" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "971be8f6e4d4a47163b405a3df70d14359186f9ab0f3a3ec37df144ca1ce089f" -dependencies = [ - "dtoa", - "linked-hash-map", - "serde", - "yaml-rust", -] +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] -name = "sha-1" -version = "0.8.2" +name = "ppv-lite86" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] -name = "sha-1" -version = "0.9.2" +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "predicates" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c" +checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpuid-bool", - "digest 0.9.0", - "opaque-debug 0.3.0", + "anstyle", + "difflib", + "itertools 0.11.0", + "predicates-core", ] [[package]] -name = "sha1" -version = "0.6.0" +name = "predicates-core" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] -name = "sha2" -version = "0.8.2" +name = "predicates-tree" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", + "predicates-core", + "termtree", ] [[package]] -name = "sha2" -version = "0.9.2" +name = "prettydiff" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8" +checksum = "bf0668e945d7caa9b3e3a4cb360d7dd1f2613d62233f8846dbfb7ea3c3df0910" dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpuid-bool", - "digest 0.9.0", - "opaque-debug 0.3.0", + "owo-colors", + "pad", ] [[package]] -name = "sha3" -version = "0.9.1" +name = "prettyplease" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug 0.3.0", + "proc-macro2 1.0.93", + "syn 1.0.109", ] [[package]] -name = "sharded-slab" -version = "0.1.1" +name = "prettyplease" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ - "lazy_static", + "proc-macro2 1.0.93", + "syn 2.0.98", ] [[package]] -name = "shared" -version = "0.1.0" +name = "prettytable-rs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a" dependencies = [ - "bytes 0.5.6", - "chrono", - "nom 6.0.1", - "serde", - "snafu", - "tracing 0.1.22", + "encode_unicode 1.0.0", + "is-terminal", + "lazy_static", + "term 0.7.0", + "unicode-width 0.1.13", ] [[package]] -name = "shared_child" -version = "0.3.4" +name = "primeorder" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cebcf3a403e4deafaf34dc882c4a1b6a648b43e5670aa2e4bb985914eaeb2d2" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" dependencies = [ - "libc", - "winapi 0.3.9", + "elliptic-curve", ] [[package]] -name = "shlex" -version = "0.1.1" +name = "proc-macro-crate" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] [[package]] -name = "signal-hook" -version = "0.1.17" +name = "proc-macro-crate" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "libc", - "mio 0.7.7", - "signal-hook-registry", + "toml_edit 0.20.7", ] [[package]] -name = "signal-hook-registry" -version = "1.3.0" +name = "proc-macro-crate" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "libc", + "toml_edit 0.22.23", ] [[package]] -name = "signatory" -version = "0.21.0" +name = "proc-macro-error" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eaebd4be561a7d8148803baa108092f85090189c4b8c3ffb81602b15b5c1771" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ - "getrandom 0.1.16", - "signature", - "subtle-encoding", - "zeroize", + "proc-macro-error-attr", + "proc-macro2 1.0.93", + "quote 1.0.38", + "version_check", ] [[package]] -name = "signature" -version = "1.3.0" +name = "proc-macro-error-attr" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "version_check", +] [[package]] -name = "simpl" -version = "0.1.0" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a30f10c911c0355f80f1c2faa8096efc4a58cdf8590b954d5b395efa071c711" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", +] [[package]] -name = "siphasher" -version = "0.3.3" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8f3741c7372e75519bd9346068370c9cdaabcc1f9599cbcf2a2719352286b7" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] [[package]] -name = "sketches-ddsketch" -version = "0.1.2" +name = "proc-macro-hack" +version = "0.5.20+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a77a8fd93886010f05e7ea0720e569d6d16c65329dbe3ec033bbbccccb017b" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] -name = "slab" -version = "0.4.2" +name = "proc-macro-nested" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] -name = "sluice" -version = "0.5.4" +name = "proc-macro2" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fa0333a60ff2e3474a6775cc611840c2a55610c831dd366503474c02f1a28f5" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" dependencies = [ - "futures-channel", - "futures-core", - "futures-io", + "unicode-xid 0.1.0", ] [[package]] -name = "smallvec" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" - -[[package]] -name = "smol" -version = "1.2.5" +name = "proc-macro2" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cf3b5351f3e783c1d79ab5fc604eeed8b8ae9abd36b166e8b87a089efd85e4" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ - "async-channel", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-net", - "async-process", - "blocking", - "futures-lite", - "once_cell", + "unicode-ident", ] [[package]] -name = "smpl_jwt" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "547e9c1059500ce0fe6cfa325f868b5621214957922be60a49d86e3e844ee9dc" +name = "prometheus-parser" +version = "0.1.0" dependencies = [ - "base64 0.12.3", - "log", - "openssl", - "serde", - "serde_derive", - "serde_json", - "simpl", - "time 0.2.24", + "indexmap 2.7.1", + "nom", + "prost 0.12.6", + "prost-build 0.12.6", + "prost-types 0.12.6", + "snafu 0.7.5", + "vector-common", ] [[package]] -name = "snafu" -version = "0.6.10" +name = "proptest" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab12d3c261b2308b0d80c26fffb58d17eba81a4be97890101f416b478c79ca7" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ - "doc-comment", - "futures 0.1.30", - "futures-core", - "pin-project 0.4.27", - "snafu-derive", + "bit-set", + "bit-vec 0.8.0", + "bitflags 2.8.0", + "lazy_static", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax 0.8.5", + "rusty-fork", + "tempfile", + "unarray", ] [[package]] -name = "snafu-derive" -version = "0.6.10" +name = "proptest-derive" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b" +checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "snap" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98d3306e84bf86710d6cd8b4c9c3b721d5454cc91a603180f8f8cd06cfd317b4" - -[[package]] -name = "socket2" -version = "0.3.19" +name = "prost" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ - "cfg-if 1.0.0", - "libc", - "winapi 0.3.9", + "bytes 1.10.0", + "prost-derive 0.11.9", ] [[package]] -name = "spin" -version = "0.5.2" +name = "prost" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes 1.10.0", + "prost-derive 0.12.6", +] [[package]] -name = "spin" -version = "0.7.1" +name = "prost" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13287b4da9d1207a4f4929ac390916d64eacfe236a487e9a9f5b3be392be5162" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +dependencies = [ + "bytes 1.10.0", + "prost-derive 0.13.3", +] [[package]] -name = "spinning_top" -version = "0.2.2" +name = "prost-build" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e529d73e80d64b5f2631f9035113347c578a1c9c7774b83a2b880788459ab36" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ - "lock_api 0.4.2", + "bytes 1.10.0", + "heck 0.4.1", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap", + "petgraph", + "prettyplease 0.1.25", + "prost 0.11.9", + "prost-types 0.11.9", + "regex", + "syn 1.0.109", + "tempfile", + "which 4.4.2", ] [[package]] -name = "standback" -version = "0.2.14" +name = "prost-build" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66a8cff4fa24853fdf6b51f75c6d7f8206d7c75cab4e467bcd7f25c2b1febe0" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" dependencies = [ - "version_check 0.9.2", + "bytes 1.10.0", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease 0.2.15", + "prost 0.12.6", + "prost-types 0.12.6", + "regex", + "syn 2.0.98", + "tempfile", ] [[package]] -name = "static_assertions" -version = "1.1.0" +name = "prost-derive" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", +] [[package]] -name = "stdweb" -version = "0.4.20" +name = "prost-derive" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ - "discard", - "rustc_version", - "stdweb-derive", - "stdweb-internal-macros", - "stdweb-internal-runtime", - "wasm-bindgen", + "anyhow", + "itertools 0.12.1", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "stdweb-derive" -version = "0.5.3" +name = "prost-derive" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "serde", - "serde_derive", - "syn 1.0.58", + "anyhow", + "itertools 0.10.5", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "stdweb-internal-macros" -version = "0.2.9" +name = "prost-reflect" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" +checksum = "a7b318f733603136dcc61aa9e77c928d67f87d2436c34ec052ba3f1b5ca219de" dependencies = [ - "base-x", - "proc-macro2 1.0.24", - "quote 1.0.8", + "base64 0.22.1", + "once_cell", + "prost 0.13.3", + "prost-types 0.13.3", "serde", - "serde_derive", - "serde_json", - "sha1", - "syn 1.0.58", + "serde-value", ] [[package]] -name = "stdweb-internal-runtime" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" - -[[package]] -name = "stream-cancel" -version = "0.6.2" +name = "prost-types" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcbeca004dfaec7b6fd818d8ae6359eaea21770d134f137c4cb8fb5fa92b5a33" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "futures-core", - "futures-util", - "pin-project 0.4.27", - "tokio 0.2.24", + "prost 0.11.9", ] [[package]] -name = "string_cache" -version = "0.8.1" +name = "prost-types" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ddb1139b5353f96e429e1a5e19fbaf663bddedaa06d1dbd49f82e352601209a" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" dependencies = [ - "lazy_static", - "new_debug_unreachable", - "phf_shared", - "precomputed-hash", + "prost 0.12.6", ] [[package]] -name = "stringprep" -version = "0.1.2" +name = "prost-types" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" +checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "prost 0.13.3", ] [[package]] -name = "strip-ansi-escapes" -version = "0.1.0" +name = "psl" +version = "2.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d63676e2abafa709460982ddc02a3bb586b6d15a49b75c212e06edd3933acee" +checksum = "dc74a6e6a56708be1cf5c4c4d1a0dc21d33b2dcaa24e731b7fa9c287ce4f916f" dependencies = [ - "vte", + "psl-types", ] [[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "strsim" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" - -[[package]] -name = "strsim" -version = "0.10.0" +name = "psl-types" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" [[package]] -name = "structopt" -version = "0.2.18" +name = "ptr_meta" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" dependencies = [ - "clap", - "structopt-derive 0.2.18", + "ptr_meta_derive", ] [[package]] -name = "structopt" -version = "0.3.21" +name = "ptr_meta_derive" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" dependencies = [ - "clap", - "lazy_static", - "structopt-derive 0.4.14", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", ] [[package]] -name = "structopt-derive" -version = "0.2.18" +name = "publicsuffix" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107" +checksum = "6f42ea446cab60335f76979ec15e12619a2165b5ae2c12166bef27d283a9fadf" dependencies = [ - "heck", - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", + "idna 1.0.3", + "psl-types", ] [[package]] -name = "structopt-derive" -version = "0.4.14" +name = "pulsar" +version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" +checksum = "d7f3541ff84e39da334979ac4bf171e0f277f4f782603aeae65bf5795dc7275a" dependencies = [ - "heck", - "proc-macro-error", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "async-trait", + "bit-vec 0.6.3", + "bytes 1.10.0", + "chrono", + "crc", + "data-url", + "flate2", + "futures 0.3.31", + "futures-io", + "futures-timer", + "log", + "lz4", + "native-tls", + "nom", + "oauth2", + "openidconnect", + "pem", + "prost 0.11.9", + "prost-build 0.11.9", + "prost-derive 0.11.9", + "rand 0.8.5", + "regex", + "serde", + "serde_json", + "snap", + "tokio", + "tokio-native-tls", + "tokio-util", + "url", + "uuid", + "zstd 0.12.4", ] [[package]] -name = "strum" -version = "0.18.0" +name = "quad-rand" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b" +checksum = "658fa1faf7a4cc5f057c9ee5ef560f717ad9d8dc66d975267f709624d6e1ab88" [[package]] -name = "strum_macros" -version = "0.18.0" +name = "quanta" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c" +checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" dependencies = [ - "heck", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", ] [[package]] -name = "subtle" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" - -[[package]] -name = "subtle" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" - -[[package]] -name = "subtle-encoding" -version = "0.5.1" +name = "quick-error" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" -dependencies = [ - "zeroize", -] +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] -name = "syn" -version = "0.15.44" +name = "quick-xml" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", + "memchr", + "serde", ] [[package]] -name = "syn" -version = "1.0.58" +name = "quickcheck" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5" +checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "unicode-xid 0.2.1", + "env_logger 0.8.4", + "log", + "rand 0.8.5", ] [[package]] -name = "synstructure" -version = "0.12.4" +name = "quickcheck_macros" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" +checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "unicode-xid 0.2.1", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", ] [[package]] -name = "syslog" -version = "5.0.0" +name = "quote" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a5d8ef1b679c07976f3ee336a436453760c470f54b5e7237556728b8589515d" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" dependencies = [ - "error-chain", - "libc", - "log", - "time 0.1.44", + "proc-macro2 0.4.30", ] [[package]] -name = "syslog_loose" -version = "0.10.0" +name = "quote" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b87c43adeba9354cdb8527ad333bae41caf5cad5ce5cbeb8b11eafcf9de5e07a" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ - "chrono", - "nom 6.0.1", + "proc-macro2 1.0.93", ] [[package]] -name = "take_mut" -version = "0.2.2" +name = "quoted_printable" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" +checksum = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0" [[package]] -name = "tap" -version = "1.0.0" +name = "radium" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] -name = "target-lexicon" -version = "0.10.0" +name = "radix_trie" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab0e7238dcc7b40a7be719a25365910f6807bd864f4cce6b2e6b873658e2b19d" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] [[package]] -name = "tempfile" -version = "3.2.0" +name = "rand" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "cfg-if 1.0.0", + "getrandom 0.1.16", "libc", - "rand 0.8.2", - "redox_syscall 0.2.4", - "remove_dir_all", - "winapi 0.3.9", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", ] [[package]] -name = "term" -version = "0.5.2" +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "byteorder", - "dirs 1.0.5", - "winapi 0.3.9", + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", ] [[package]] -name = "termcolor" -version = "1.1.2" +name = "rand" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ - "winapi-util", + "rand_chacha 0.9.0", + "rand_core 0.9.0", + "zerocopy 0.8.16", ] [[package]] -name = "test-case" -version = "1.1.0" +name = "rand_chacha" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956044ef122917dde830c19dec5f76d0670329fde4104836d62ebcb14f4865f1" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" dependencies = [ - "cfg-if 1.0.0", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "version_check 0.9.2", + "ppv-lite86", + "rand_core 0.5.1", ] [[package]] -name = "textwrap" -version = "0.11.0" +name = "rand_chacha" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ - "unicode-width", + "ppv-lite86", + "rand_core 0.6.4", ] [[package]] -name = "thiserror" -version = "1.0.23" +name = "rand_chacha" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ - "thiserror-impl", + "ppv-lite86", + "rand_core 0.9.0", ] [[package]] -name = "thiserror-impl" -version = "1.0.23" +name = "rand_core" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "getrandom 0.1.16", ] [[package]] -name = "thread_local" -version = "1.0.1" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "lazy_static", + "getrandom 0.2.15", ] [[package]] -name = "time" -version = "0.1.44" +name = "rand_core" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", + "getrandom 0.3.1", + "zerocopy 0.8.16", ] [[package]] -name = "time" -version = "0.2.24" +name = "rand_distr" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "273d3ed44dca264b0d6b3665e8d48fb515042d42466fad93d2a45b90ec4058f7" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ - "const_fn", - "libc", - "standback", - "stdweb", - "time-macros", - "version_check 0.9.2", - "winapi 0.3.9", + "num-traits", + "rand 0.8.5", ] [[package]] -name = "time-macros" -version = "0.1.1" +name = "rand_hc" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" dependencies = [ - "proc-macro-hack", - "time-macros-impl", + "rand_core 0.5.1", ] [[package]] -name = "time-macros-impl" -version = "0.1.1" +name = "rand_xorshift" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "proc-macro-hack", - "proc-macro2 1.0.24", - "quote 1.0.8", - "standback", - "syn 1.0.58", + "rand_core 0.6.4", ] [[package]] -name = "tiny-keccak" -version = "2.0.2" +name = "ratatui" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "crunchy", + "bitflags 2.8.0", + "cassowary", + "compact_str", + "crossterm", + "indoc", + "instability", + "itertools 0.13.0", + "lru 0.12.5", + "paste", + "strum 0.26.3", + "unicode-segmentation", + "unicode-truncate", + "unicode-width 0.2.0", ] [[package]] -name = "tinytemplate" -version = "1.2.0" +name = "raw-cpuid" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ada8616fad06a2d0c455adc530de4ef57605a8120cc65da9653e0e9623ca74" +checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1" dependencies = [ - "serde", - "serde_json", + "bitflags 2.8.0", ] [[package]] -name = "tinyvec" -version = "1.1.0" +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ - "tinyvec_macros", + "either", + "rayon-core", ] [[package]] -name = "tinyvec_macros" -version = "0.1.0" +name = "rayon-core" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] [[package]] -name = "tokio" -version = "0.2.24" +name = "rdkafka" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48" +checksum = "14b52c81ac3cac39c9639b95c20452076e74b8d9a71bc6fc4d83407af2ea6fff" dependencies = [ - "bytes 0.5.6", - "fnv", - "futures-core", - "iovec", - "lazy_static", + "futures-channel", + "futures-util", "libc", - "memchr", - "mio 0.6.23", - "mio-named-pipes", - "mio-uds", - "num_cpus", - "pin-project-lite 0.1.11", - "signal-hook-registry", + "log", + "rdkafka-sys", + "serde", + "serde_derive", + "serde_json", "slab", - "tokio-macros 0.2.6", - "winapi 0.3.9", + "tokio", ] [[package]] -name = "tokio" -version = "1.2.0" +name = "rdkafka-sys" +version = "4.8.0+2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8190d04c665ea9e6b6a0dc45523ade572c088d2e6566244c1122671dbf4ae3a" +checksum = "ced38182dc436b3d9df0c77976f37a67134df26b050df1f0006688e46fc4c8be" dependencies = [ - "autocfg 1.0.1", + "cmake", + "curl-sys", "libc", - "mio 0.7.7", - "num_cpus", - "pin-project-lite 0.2.4", - "tokio-macros 1.1.0", + "libz-sys", + "num_enum 0.7.3", + "openssl-sys", + "pkg-config", + "sasl2-sys", + "zstd-sys", ] [[package]] -name = "tokio-executor" -version = "0.1.10" +name = "reactor-trait" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" +checksum = "438a4293e4d097556730f4711998189416232f009c137389e0f961d2bc0ddc58" dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.30", + "async-trait", + "futures-core", + "futures-io", ] [[package]] -name = "tokio-io" -version = "0.1.13" +name = "redis" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +checksum = "c580d9cbbe1d1b479e8d67cf9daf6a62c957e6846048408b80b43ac3f6af84cd" dependencies = [ - "bytes 0.4.12", - "futures 0.1.30", - "log", + "arc-swap", + "async-trait", + "bytes 1.10.0", + "combine 4.6.6", + "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 = "tokio-macros" -version = "0.2.6" +name = "redox_syscall" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "bitflags 1.3.2", ] [[package]] -name = "tokio-macros" -version = "1.1.0" +name = "redox_syscall" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf7b11a536f46a809a8a9f0bb4237020f70ecbf115b842360afb127ea2fda57" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "bitflags 1.3.2", ] [[package]] -name = "tokio-native-tls" -version = "0.1.0" +name = "redox_syscall" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd608593a919a8e05a7d1fc6df885e40f6a88d3a70a3a7eff23ff27964eda069" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "native-tls", - "tokio 0.2.24", + "bitflags 1.3.2", ] [[package]] -name = "tokio-openssl" -version = "0.4.0" +name = "redox_users" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c4b08c5f4208e699ede3df2520aca2e82401b2de33f45e96696a074480be594" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "openssl", - "tokio 0.2.24", + "getrandom 0.2.15", + "redox_syscall 0.2.16", + "thiserror 1.0.68", ] [[package]] -name = "tokio-postgres" -version = "0.5.5" +name = "redox_users" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55a2482c9fe4dd481723cf5c0616f34afc710e55dcda0944e12e7b3316117892" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" dependencies = [ - "async-trait", - "byteorder", - "bytes 0.5.6", - "fallible-iterator", - "futures 0.3.12", - "log", - "parking_lot 0.11.1", - "percent-encoding", - "phf", - "pin-project-lite 0.1.11", - "postgres-protocol", - "postgres-types", - "tokio 0.2.24", - "tokio-util", + "getrandom 0.2.15", + "libredox", + "thiserror 2.0.3", ] [[package]] -name = "tokio-rustls" -version = "0.13.1" +name = "regex" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15cb62a0d2770787abc96e99c1cd98fcf17f94959f3af63ca85bdfb203f051b4" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ - "futures-core", - "rustls 0.17.0", - "tokio 0.2.24", - "webpki", + "aho-corasick", + "memchr", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] -name = "tokio-rustls" -version = "0.14.1" +name = "regex-automata" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "futures-core", - "rustls 0.18.1", - "tokio 0.2.24", - "webpki", + "regex-syntax 0.6.29", ] [[package]] -name = "tokio-test" -version = "0.2.1" +name = "regex-automata" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed0049c119b6d505c4447f5c64873636c7af6c75ab0d45fd9f618d82acb8016d" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ - "bytes 0.5.6", - "futures-core", - "tokio 0.2.24", + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", ] [[package]] -name = "tokio-timer" -version = "0.2.13" +name = "regex-lite" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.30", - "slab", - "tokio-executor", -] +checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e" [[package]] -name = "tokio-tls" -version = "0.3.1" +name = "regex-syntax" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "relative-path" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" + +[[package]] +name = "rend" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd" dependencies = [ - "native-tls", - "tokio 0.2.24", + "bytecheck", ] [[package]] -name = "tokio-tungstenite" -version = "0.11.0" +name = "reqwest" +version = "0.11.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9e878ad426ca286e4dcae09cbd4e1973a7f8987d97570e2469703dd7f5720c" +checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2" dependencies = [ + "base64 0.21.7", + "bytes 1.10.0", + "encoding_rs", + "futures-core", "futures-util", + "h2 0.3.26", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.28", + "hyper-rustls 0.24.2", + "hyper-tls", + "ipnet", + "js-sys", "log", + "mime", "native-tls", - "pin-project 0.4.27", - "tokio 0.2.24", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.11", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", "tokio-native-tls", - "tungstenite", + "tokio-rustls 0.24.1", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots 0.25.2", + "winreg 0.50.0", ] [[package]] -name = "tokio-util" -version = "0.3.1" +name = "reqwest" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" dependencies = [ - "bytes 0.5.6", + "base64 0.22.1", + "bytes 1.10.0", "futures-core", - "futures-sink", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.4.1", + "hyper-rustls 0.26.0", + "hyper-util", + "ipnet", + "js-sys", "log", - "pin-project-lite 0.1.11", - "tokio 0.2.24", + "mime", + "mime_guess", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.22.4", + "rustls-pemfile 2.1.0", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "tokio", + "tokio-rustls 0.25.0", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots 0.26.1", + "winreg 0.52.0", ] [[package]] -name = "tokio01-test" -version = "0.1.1" +name = "resolv-conf" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f552746ce9d11b2f7d175bfff335a8d7bd0e965d9e2974ce2c19b508bd0c1bb9" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" dependencies = [ - "futures 0.1.30", - "tokio-executor", - "tokio-timer", + "hostname 0.3.1", + "quick-error", ] [[package]] -name = "toml" -version = "0.5.8" +name = "rfc6979" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "serde", + "hmac", + "subtle", ] [[package]] -name = "tower" -version = "0.3.1" -source = "git+https://github.com/tower-rs/tower?rev=43168944220ed32dab83cb4f11f7b97abc5818d5#43168944220ed32dab83cb4f11f7b97abc5818d5" +name = "ring" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" dependencies = [ - "futures-core", - "futures-util", - "pin-project 0.4.27", - "tokio 0.2.24", - "tower-layer", - "tower-service", - "tracing 0.1.22", + "cc", + "getrandom 0.2.15", + "libc", + "spin 0.9.8", + "untrusted", + "windows-sys 0.48.0", ] [[package]] -name = "tower-layer" -version = "0.3.0" +name = "rkyv" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35d656f2638b288b33495d1053ea74c40dc05ec0b92084dd71ca5566c4ed1dc" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" +dependencies = [ + "bitvec", + "bytecheck", + "bytes 1.10.0", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] [[package]] -name = "tower-make" -version = "0.3.0" +name = "rkyv_derive" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce50370d644a0364bf4877ffd4f76404156a248d104e2cc234cd391ea5cdc965" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" dependencies = [ - "tower-service", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", ] [[package]] -name = "tower-service" -version = "0.3.0" +name = "rle-decode-fast" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" [[package]] -name = "tower-test" -version = "0.3.0" +name = "rmp" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba4bbc2c1e4a8543c30d4c13a4c8314ed72d6e07581910f665aa13fde0153c8" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" dependencies = [ - "futures-util", - "pin-project 0.4.27", - "tokio 0.2.24", - "tokio-test", - "tower-layer", - "tower-service", + "byteorder", + "num-traits", + "paste", ] [[package]] -name = "tracing" -version = "0.1.19" -source = "git+https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231#f470db1b0354b368f62f9ee4d763595d16373231" +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" dependencies = [ - "cfg-if 0.1.10", - "tracing-attributes 0.1.11 (git+https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231)", - "tracing-core 0.1.15", + "byteorder", + "rmp", + "serde", ] [[package]] -name = "tracing" -version = "0.1.22" +name = "rmpv" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3" +checksum = "58450723cd9ee93273ce44a20b6ec4efe17f8ed2e3631474387bfdecf18bb2a9" dependencies = [ - "cfg-if 1.0.0", - "log", - "pin-project-lite 0.2.4", - "tracing-attributes 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing-core 0.1.17", + "num-traits", + "rmp", + "serde", + "serde_bytes", ] [[package]] -name = "tracing-attributes" -version = "0.1.11" +name = "roaring" +version = "0.10.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada" +checksum = "a652edd001c53df0b3f96a36a8dc93fce6866988efc16808235653c6bcac8bf2" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "bytemuck", + "byteorder", ] [[package]] -name = "tracing-attributes" -version = "0.1.11" -source = "git+https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231#f470db1b0354b368f62f9ee4d763595d16373231" -dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", -] +name = "roxmltree" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" [[package]] -name = "tracing-core" -version = "0.1.15" -source = "git+https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231#f470db1b0354b368f62f9ee4d763595d16373231" +name = "rsa" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ef35bf3e7fe15a53c4ab08a998e42271eab13eb0db224126bc7bc4c4bad96d" dependencies = [ - "lazy_static", + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", ] [[package]] -name = "tracing-core" -version = "0.1.17" +name = "rstest" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" +checksum = "03e905296805ab93e13c1ec3a03f4b6c4f35e9498a3d5fa96dc626d22c03cd89" dependencies = [ - "lazy_static", + "futures-timer", + "futures-util", + "rstest_macros", + "rustc_version 0.4.1", ] [[package]] -name = "tracing-futures" -version = "0.2.4" +name = "rstest_macros" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" +checksum = "ef0053bbffce09062bee4bcc499b0fbe7a57b879f1efe088d6d8d4c7adcdef9b" dependencies = [ - "futures 0.1.30", - "futures 0.3.12", - "futures-task", - "pin-project 0.4.27", - "tracing 0.1.22", + "cfg-if", + "glob", + "proc-macro-crate 3.2.0", + "proc-macro2 1.0.93", + "quote 1.0.38", + "regex", + "relative-path", + "rustc_version 0.4.1", + "syn 2.0.98", + "unicode-ident", ] [[package]] -name = "tracing-futures" -version = "0.2.6" -source = "git+https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231#f470db1b0354b368f62f9ee4d763595d16373231" +name = "rumqttc" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1568e15fab2d546f940ed3a21f48bbbd1c494c90c99c4481339364a497f94a9" dependencies = [ - "pin-project 0.4.27", - "tracing 0.1.19", + "bytes 1.10.0", + "flume 0.11.0", + "futures-util", + "log", + "rustls-native-certs 0.7.0", + "rustls-pemfile 2.1.0", + "rustls-webpki 0.102.8", + "thiserror 1.0.68", + "tokio", + "tokio-rustls 0.25.0", ] [[package]] -name = "tracing-limit" -version = "0.1.0" +name = "rust_decimal" +version = "1.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4" dependencies = [ - "ansi_term 0.12.1", - "criterion", - "tracing 0.1.22", - "tracing-core 0.1.17", - "tracing-subscriber", + "arrayvec", + "borsh", + "bytes 1.10.0", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", ] [[package]] -name = "tracing-log" -version = "0.1.1" +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + +[[package]] +name = "rustc_version" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0f8c7178e13481ff6765bd169b33e8d554c5d2bbede5e32c356194be02b9b9" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "lazy_static", - "log", - "tracing-core 0.1.17", + "semver 0.9.0", ] [[package]] -name = "tracing-serde" -version = "0.1.2" +name = "rustc_version" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "serde", - "tracing-core 0.1.17", + "semver 1.0.25", ] [[package]] -name = "tracing-subscriber" -version = "0.2.15" +name = "rustc_version_runtime" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1fa8f0c8f4c594e4fc9debc1990deab13238077271ba84dd853d54902ee3401" +checksum = "d31b7153270ebf48bf91c65ae5b0c00e749c4cfad505f66530ac74950249582f" dependencies = [ - "ansi_term 0.12.1", - "chrono", - "lazy_static", - "matchers", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing 0.1.22", - "tracing-core 0.1.17", - "tracing-log", - "tracing-serde", + "rustc_version 0.2.3", + "semver 0.9.0", ] [[package]] -name = "tracing-tower" -version = "0.1.0" -source = "git+https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231#f470db1b0354b368f62f9ee4d763595d16373231" +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" dependencies = [ - "futures 0.3.12", - "http", - "pin-project 0.4.27", - "tower-layer", - "tower-make", - "tower-service", - "tracing 0.1.19", - "tracing-futures 0.2.6", + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", ] [[package]] -name = "treeline" -version = "0.1.0" +name = "rustix" +version = "0.38.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" +checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" +dependencies = [ + "bitflags 2.8.0", + "errno", + "libc", + "linux-raw-sys 0.4.14", + "windows-sys 0.52.0", +] [[package]] -name = "trust-dns-proto" -version = "0.19.6" +name = "rustls" +version = "0.21.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53861fcb288a166aae4c508ae558ed18b53838db728d4d310aad08270a7d4c2b" +checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4" dependencies = [ - "async-trait", - "backtrace", - "enum-as-inner", - "futures 0.3.12", - "idna", - "lazy_static", "log", - "rand 0.7.3", - "smallvec", - "thiserror", - "tokio 0.2.24", - "url", + "ring", + "rustls-webpki 0.101.7", + "sct", ] [[package]] -name = "trust-dns-resolver" -version = "0.19.6" +name = "rustls" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6759e8efc40465547b0dfce9500d733c65f969a4cbbfbe3ccf68daaa46ef179e" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ - "backtrace", - "cfg-if 0.1.10", - "futures 0.3.12", - "ipconfig", - "lazy_static", "log", - "lru-cache", - "resolv-conf", - "smallvec", - "thiserror", - "tokio 0.2.24", - "trust-dns-proto", + "ring", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", ] [[package]] -name = "try-lock" -version = "0.2.3" +name = "rustls-native-certs" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] [[package]] -name = "tui" -version = "0.14.0" +name = "rustls-native-certs" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ced152a8e9295a5b168adc254074525c17ac4a83c90b2716274cc38118bddc9" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" dependencies = [ - "bitflags", - "cassowary", - "crossterm 0.18.2", - "unicode-segmentation", - "unicode-width", + "openssl-probe", + "rustls-pemfile 2.1.0", + "rustls-pki-types", + "schannel", + "security-framework", ] [[package]] -name = "tungstenite" -version = "0.11.1" +name = "rustls-pemfile" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0308d80d86700c5878b9ef6321f020f29b1bb9d5ff3cab25e75e23f3a492a23" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.12.3", - "byteorder", - "bytes 0.5.6", - "http", - "httparse", - "input_buffer", - "log", - "native-tls", - "rand 0.7.3", - "sha-1 0.9.2", - "url", - "utf-8", + "base64 0.21.7", ] [[package]] -name = "twoway" -version = "0.2.1" +name = "rustls-pemfile" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b40075910de3a912adbd80b5d8bad6ad10a23eeb1f5bf9d4006839e899ba5bc" +checksum = "3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b" dependencies = [ - "memchr", - "unchecked-index", + "base64 0.21.7", + "rustls-pki-types", ] [[package]] -name = "typed-builder" -version = "0.3.0" +name = "rustls-pki-types" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e38507a437aef3b8ead39616219615ff9320d0eb0907f0dce51ea0474889cc6" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", + "ring", + "untrusted", ] [[package]] -name = "typed-builder" -version = "0.5.1" +name = "rustls-webpki" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cea224ddd4282dfc40d1edabbd0c020a12e946e3a48e2c2b8f6ff167ad29fe" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "ring", + "rustls-pki-types", + "untrusted", ] [[package]] -name = "typenum" -version = "1.12.0" +name = "rustversion" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] -name = "typetag" -version = "0.1.6" +name = "rusty-fork" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b97b107d25d29de6879ac4f676ac5bfea92bdd01f206e995794493f1fc2e32" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" dependencies = [ - "erased-serde", - "inventory", - "lazy_static", - "serde", - "typetag-impl", + "fnv", + "quick-error", + "tempfile", + "wait-timeout", ] [[package]] -name = "typetag-impl" -version = "0.1.6" +name = "rustyline" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2466fc87b07b800a5060f89ba579d6882f7a03ac21363e4737764aaf9f99f9" +checksum = "2ee1e066dc922e513bda599c6ccb5f3bb2b0ea5870a579448f2622993f0a9a2f" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "bitflags 2.8.0", + "cfg-if", + "clipboard-win", + "libc", + "log", + "memchr", + "nix 0.29.0", + "unicode-segmentation", + "unicode-width 0.2.0", + "utf8parse", + "windows-sys 0.59.0", ] [[package]] -name = "ucd-trie" -version = "0.1.3" +name = "ryu" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] -name = "unchecked-index" -version = "0.2.2" +name = "salsa20" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeba86d422ce181a719445e51872fa30f1f7413b62becb52e95ec91aa262d85c" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] [[package]] -name = "unicase" -version = "2.6.0" +name = "same-file" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ - "version_check 0.9.2", + "winapi-util", ] [[package]] -name = "unicode-bidi" -version = "0.3.4" +name = "sasl2-sys" +version = "0.1.22+2.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +checksum = "05f2a7f7efd9fc98b3a9033272df10709f5ee3fa0eabbd61a527a3a1ed6bd3c6" dependencies = [ - "matches", + "cc", + "duct", + "krb5-src", + "libc", + "pkg-config", ] [[package]] -name = "unicode-normalization" -version = "0.1.16" +name = "scan_fmt" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" +checksum = "0b53b0a5db882a8e2fdaae0a43f7b39e7e9082389e978398bdf223a55b581248" dependencies = [ - "tinyvec", + "regex", ] [[package]] -name = "unicode-segmentation" -version = "1.7.1" +name = "schannel" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] [[package]] -name = "unicode-width" -version = "0.1.8" +name = "scoped-tls" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] -name = "unicode-xid" -version = "0.1.0" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "unicode-xid" -version = "0.2.1" +name = "sct" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] [[package]] -name = "unindent" -version = "0.1.7" +name = "seahash" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] -name = "unreachable" -version = "1.0.0" +name = "sec1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ - "void", + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", ] [[package]] -name = "untrusted" -version = "0.7.1" +name = "secrecy" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "serde", + "zeroize", +] [[package]] -name = "uom" -version = "0.30.0" +name = "security-framework" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e76503e636584f1e10b9b3b9498538279561adcef5412927ba00c2b32c4ce5ed" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" dependencies = [ - "num-rational", - "num-traits", - "typenum", + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", ] [[package]] -name = "url" -version = "2.2.0" +name = "security-framework-sys" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" dependencies = [ - "form_urlencoded", - "idna", - "matches", - "percent-encoding", + "core-foundation-sys", + "libc", ] [[package]] -name = "urlencoding" -version = "1.1.1" +name = "semver" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9232eb53352b4442e40d7900465dfc534e8cb2dc8f18656fcb2ac16112b5593" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] [[package]] -name = "userfaultfd" -version = "0.2.1" +name = "semver" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4865e0b536ef0eae67cd7576075ac7212fe23a9e190dbbcabc2e7895fa379a9a" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" dependencies = [ - "bitflags", - "libc", - "nix 0.17.0", - "thiserror", - "userfaultfd-sys", + "serde", ] [[package]] -name = "userfaultfd-sys" -version = "0.2.1" +name = "semver-parser" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374fd9b3dc9209285e8cb1f05ac0b5b6b5e6d6e7b80927e1a6b9a08c367f16a3" -dependencies = [ - "bindgen", - "cc", - "cfg-if 0.1.10", -] +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] -name = "utf-8" -version = "0.7.5" +name = "serde" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +dependencies = [ + "serde_derive", +] [[package]] -name = "utf8parse" -version = "0.1.1" +name = "serde-toml-merge" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8772a4ccbb4e89959023bc5b7cb8623a795caa7092d99f3aa9501b9484d4557d" +checksum = "93b4e415d6bff989e5e48649ca9b8b4d4997cb069a0c90a84bfd38c7df5e3968" +dependencies = [ + "toml", +] [[package]] -name = "utf8parse" -version = "0.2.0" +name = "serde-value" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float 2.10.1", + "serde", +] [[package]] -name = "uuid" +name = "serde-wasm-bindgen" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" dependencies = [ - "cfg-if 0.1.10", + "js-sys", + "serde", + "wasm-bindgen", ] [[package]] -name = "uuid" -version = "0.8.2" +name = "serde_bytes" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" dependencies = [ - "getrandom 0.2.1", "serde", ] [[package]] -name = "vcpkg" -version = "0.2.11" +name = "serde_derive" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] [[package]] -name = "vec-arena" -version = "1.0.0" +name = "serde_derive_internals" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] [[package]] -name = "vec_map" -version = "0.8.2" +name = "serde_json" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" +checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" +dependencies = [ + "indexmap 2.7.1", + "itoa", + "memchr", + "ryu", + "serde", +] [[package]] -name = "vector" -version = "0.12.0" +name = "serde_nanos" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae801b7733ca8d6a2b580debe99f67f36826a0f5b8a36055dc6bc40f8d6bc71" dependencies = [ - "anyhow", - "approx", - "assert_cmd", - "async-compression", - "async-graphql", - "async-graphql-warp", - "async-stream", - "async-trait", - "atty", - "avro-rs", - "base64 0.13.0", - "bloom", - "bollard", - "built", - "bytes 0.5.6", - "bytesize", - "chrono", - "cidr-utils", - "codec", - "colored", - "criterion", - "crossterm 0.19.0", - "dashmap 3.11.10", - "db-key", - "derivative 2.1.3", - "derive_is_enum_variant", - "dirs-next 2.0.0", - "dyn-clone", - "encoding_rs", - "evmap", - "exitcode", - "fakedata_generator", - "file-source", - "flate2", - "futures 0.1.30", - "futures 0.3.12", - "getset", - "glob 0.3.0", - "goauth", - "grok", - "headers", - "heim", - "hostname", - "http", - "httpmock", - "hyper 0.13.10", - "hyper-openssl", - "indexmap", - "indoc", - "inventory", - "itertools 0.10.0", - "jemallocator", - "k8s-openapi", - "lazy_static", - "leveldb", - "libc", - "libz-sys", - "listenfd", - "logfmt", - "lru", - "lucet-runtime", - "lucet-wasi", - "lucetc", - "matches", - "maxminddb", - "metrics", - "metrics-macros", - "metrics-tracing-context", - "metrics-util", - "mongodb", - "nats", - "nix 0.19.1", - "nom 6.0.1", - "notify", - "num-format", - "num_cpus", - "number_prefix", - "once_cell", - "openssl", - "openssl-probe", - "percent-encoding", - "pest", - "pest_derive", - "pin-project 1.0.4", - "portpicker", - "postgres-openssl", - "pretty_assertions", - "prometheus-parser", - "prost", - "prost-build", - "prost-types", - "pulsar", - "rand 0.8.2", - "rand_distr", - "rdkafka", - "regex", - "reqwest", - "rlua", - "rusoto_cloudwatch", - "rusoto_core", - "rusoto_credential", - "rusoto_es", - "rusoto_firehose", - "rusoto_kinesis", - "rusoto_logs", - "rusoto_s3", - "rusoto_signature", - "rusoto_sqs", - "rusoto_sts", - "rusty-fork", - "schannel", - "seahash", - "security-framework 2.0.0", - "semver 0.11.0", "serde", - "serde_json", - "serde_yaml", - "shared", - "smpl_jwt", - "snafu", - "snap", - "socket2", - "stream-cancel", - "strip-ansi-escapes", - "structopt 0.3.21", - "syslog", - "syslog_loose", - "tempfile", - "thread_local", - "tokio 0.2.24", - "tokio-openssl", - "tokio-postgres", - "tokio-test", - "tokio-util", - "tokio01-test", - "toml", - "tower", - "tower-test", - "tracing 0.1.22", - "tracing-core 0.1.17", - "tracing-futures 0.2.4", - "tracing-limit", - "tracing-log", - "tracing-subscriber", - "tracing-tower", - "tui", - "typetag", - "url", - "uuid 0.8.2", - "vector-api-client", - "vector-wasm", - "vrl", - "vrl-cli", - "vrl-stdlib", - "walkdir", - "warp", - "windows-service", ] [[package]] -name = "vector-api-client" -version = "0.1.1" +name = "serde_path_to_error" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335" dependencies = [ - "anyhow", - "async-trait", - "chrono", - "futures 0.3.12", - "graphql_client", - "reqwest", + "itoa", "serde", - "serde_json", - "tokio 0.2.24", - "tokio-tungstenite", - "url", - "uuid 0.8.2", - "weak-table", ] [[package]] -name = "vector-wasm" -version = "0.1.0" +name = "serde_plain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50" dependencies = [ - "anyhow", "serde", - "serde_json", - "tracing 0.1.22", ] [[package]] -name = "version_check" -version = "0.1.5" +name = "serde_qs" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" +checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" +dependencies = [ + "percent-encoding", + "serde", + "thiserror 1.0.68", +] [[package]] -name = "version_check" -version = "0.9.2" +name = "serde_repr" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] [[package]] -name = "void" -version = "1.0.2" +name = "serde_spanned" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] [[package]] -name = "vrl" -version = "0.1.0" +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ - "bytes 0.5.6", - "indoc", - "ordered-float", - "thiserror", - "vrl-compiler", - "vrl-diagnostic", - "vrl-parser", + "form_urlencoded", + "itoa", + "ryu", + "serde", ] [[package]] -name = "vrl-cli" -version = "0.1.0" +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" dependencies = [ - "bytes 0.5.6", - "exitcode", - "prettytable-rs", - "regex", - "rustyline", - "serde_json", - "structopt 0.3.21", - "thiserror", - "vrl", - "vrl-stdlib", - "webbrowser", + "serde", + "serde_with_macros 1.5.2", ] [[package]] -name = "vrl-compiler" -version = "0.1.0" +name = "serde_with" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ - "bitflags", - "bytes 0.5.6", + "base64 0.22.1", "chrono", - "dyn-clone", - "lalrpop-util", - "ngrammatic", - "ordered-float", - "paste", - "regex", + "hex", + "indexmap 1.9.3", + "indexmap 2.7.1", "serde", - "thiserror", - "vrl-diagnostic", - "vrl-parser", + "serde_derive", + "serde_json", + "serde_with_macros 3.12.0", + "time", ] [[package]] -name = "vrl-diagnostic" -version = "0.1.0" +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ - "codespan-reporting", - "termcolor", + "darling 0.13.4", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", ] [[package]] -name = "vrl-parser" -version = "0.1.0" +name = "serde_with_macros" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "lalrpop", - "lalrpop-util", - "ordered-float", - "paste", - "test-case", - "thiserror", - "vrl-diagnostic", + "darling 0.20.10", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "vrl-stdlib" -version = "0.1.0" +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ - "anyhow", - "base64 0.13.0", - "bytes 0.5.6", - "chrono", - "cidr-utils", - "grok", - "hex", - "hostname", - "lazy_static", - "md-5 0.9.1", - "nom 6.0.1", - "regex", - "rust_decimal", - "serde_json", - "sha-1 0.9.2", - "sha2 0.9.2", - "sha3", - "shared", - "strip-ansi-escapes", - "syslog_loose", - "tracing 0.1.22", - "url", - "uuid 0.8.2", - "vrl", + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", ] [[package]] -name = "vrl-tests" -version = "0.1.0" +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "ansi_term 0.12.1", - "chrono", - "glob 0.3.0", - "prettydiff", - "regex", - "serde_json", - "structopt 0.3.21", - "vrl", - "vrl-parser", - "vrl-stdlib", + "indexmap 2.7.1", + "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 = "shared_child" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +dependencies = [ + "libc", + "winapi", +] + +[[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", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signatory" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e303f8205714074f6068773f0e29527e0453937fe837c9717d066635b65f31" +dependencies = [ + "pkcs8", + "rand_core 0.6.4", + "signature", + "zeroize", +] + +[[package]] +name = "signature" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "similar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" +dependencies = [ + "bstr 0.2.17", + "unicode-segmentation", +] + +[[package]] +name = "similar-asserts" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f08357795f0d604ea7d7130f22c74b03838c959bdb14adde3142aab4d18a293" +dependencies = [ + "console", + "similar", +] + +[[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 = "sketches-ddsketch" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e9a774a6c28142ac54bb25d25562e6bcf957493a184f15ad4eebccb23e410a" + +[[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", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-net", + "async-process", + "blocking", + "futures-lite", +] + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d342c51730e54029130d7dc9fd735d28c4cd360f1368c01981d4f03ff207f096" +dependencies = [ + "snafu-derive 0.8.0", +] + +[[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 1.0.93", + "quote 1.0.38", + "syn 1.0.109", +] + +[[package]] +name = "snafu-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "080c44971436b1af15d6f61ddd8b543995cf63ab8e677d46b00cc06f4ef267a0" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[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.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[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 = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der", +] + +[[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.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "stringprep" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6" +dependencies = [ + "finl_unicode", + "unicode-bidi", + "unicode-normalization", +] + +[[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 1.0.93", + "quote 1.0.38", + "rustversion", + "syn 2.0.98", +] + +[[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 1.0.93", + "quote 1.0.38", + "rustversion", + "syn 2.0.98", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8775305acf21c96926c900ad056abeef436701108518cf890020387236ac5a77" +dependencies = [ + "is_ci", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "unicode-ident", +] + +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[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 0.57.0", +] + +[[package]] +name = "syslog" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc7e95b5b795122fafe6519e27629b5ab4232c73ebb2428f568e82b1a457ad3" +dependencies = [ + "error-chain", + "hostname 0.3.1", + "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", + "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 = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + +[[package]] +name = "take_mut" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" + +[[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.1.0", +] + +[[package]] +name = "temp-dir" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc1ee6eef34f12f765cb94725905c6312b6610ab2b0940889cfe58dae7bc3c72" + +[[package]] +name = "tempfile" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a40f762a77d2afa88c2d919489e390a12bdd261ed568e60cfa7e48d4e20f0d33" +dependencies = [ + "cfg-if", + "fastrand 2.3.0", + "getrandom 0.3.1", + "once_cell", + "rustix 0.38.40", + "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 = "term" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3bb6001afcea98122260987f8b7b5da969ecad46dbf0b5453702f776b491a41" +dependencies = [ + "home", + "windows-sys 0.52.0", +] + +[[package]] +name = "termcolor" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef" +dependencies = [ + "rustix 0.38.40", + "windows-sys 0.59.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-generator" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b23be2add79223226e1cb6446cb3e37506a5927089870687a0f1149bb7a073a" +dependencies = [ + "glob", + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "thiserror" +version = "1.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +dependencies = [ + "thiserror-impl 1.0.68", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[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.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "tikv-jemallocator" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865" +dependencies = [ + "libc", + "tikv-jemalloc-sys", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "js-sys", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +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.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" +dependencies = [ + "backtrace", + "bytes 1.10.0", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.8", + "tokio-macros", + "tracing 0.1.41", + "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 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[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.0", + "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.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.11", + "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-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-test" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" +dependencies = [ + "async-stream", + "bytes 1.10.0", + "futures-core", + "tokio", + "tokio-stream", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.11", + "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.13" +source = "git+https://github.com/vectordotdev/tokio?branch=tokio-util-0.7.13-framed-read-continue-on-error#b4bdfda8fe8aa24eba36de0d60063b14f30c7fe7" +dependencies = [ + "bytes 1.10.0", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite", + "slab", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.23", +] + +[[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.7.1", + "toml_datetime", + "winnow 0.5.18", +] + +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.7.1", + "toml_datetime", + "winnow 0.5.18", +] + +[[package]] +name = "toml_edit" +version = "0.22.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" +dependencies = [ + "indexmap 2.7.1", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.7.1", +] + +[[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.0", + "flate2", + "h2 0.3.26", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.28", + "hyper-timeout 0.4.1", + "percent-encoding", + "pin-project", + "prost 0.12.6", + "rustls-native-certs 0.7.0", + "rustls-pemfile 2.1.0", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.25.0", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing 0.1.41", + "zstd 0.12.4", +] + +[[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.5", + "base64 0.22.1", + "bytes 1.10.0", + "h2 0.4.7", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.4.1", + "hyper-timeout 0.5.1", + "hyper-util", + "percent-encoding", + "pin-project", + "prost 0.13.3", + "socket2 0.5.8", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing 0.1.41", +] + +[[package]] +name = "tonic-build" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" +dependencies = [ + "prettyplease 0.1.25", + "proc-macro2 1.0.93", + "prost-build 0.11.9", + "quote 1.0.38", + "syn 1.0.109", +] + +[[package]] +name = "tonic-build" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" +dependencies = [ + "prettyplease 0.2.15", + "proc-macro2 1.0.93", + "prost-build 0.12.6", + "quote 1.0.38", + "syn 2.0.98", +] + +[[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-http" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +dependencies = [ + "async-compression", + "bitflags 2.8.0", + "bytes 1.10.0", + "futures-core", + "futures-util", + "http 0.2.9", + "http-body 0.4.5", + "http-range-header", + "pin-project-lite", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing 0.1.41", +] + +[[package]] +name = "tower-http" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" +dependencies = [ + "base64 0.21.7", + "bitflags 2.8.0", + "bytes 1.10.0", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "mime", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing 0.1.41", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tower-test" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4546773ffeab9e4ea02b8872faa49bb616a80a7da66afc2f32688943f97efa7" +dependencies = [ + "futures-util", + "pin-project", + "tokio", + "tokio-test", + "tower-layer", + "tower-service", +] + +[[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 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[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-fluent-assertions" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12de1a8c6bcfee614305e836308b596bbac831137a04c61f7e5b0b0bf2cfeaf6" +dependencies = [ + "tracing 0.1.41", + "tracing-core 0.1.33", + "tracing-subscriber", +] + +[[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" +dependencies = [ + "criterion", + "dashmap 6.1.0", + "mock_instant", + "tracing 0.1.41", + "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", + "smallvec", + "thread_local", + "tracing 0.1.41", + "tracing-core 0.1.33", + "tracing-log", + "tracing-serde", +] + +[[package]] +name = "tracing-test" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557b891436fe0d5e0e363427fc7f217abf9ccd510d5136549847bdcbcd011d68" +dependencies = [ + "tracing-core 0.1.33", + "tracing-subscriber", + "tracing-test-macro", +] + +[[package]] +name = "tracing-test-macro" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" +dependencies = [ + "quote 1.0.38", + "syn 2.0.98", +] + +[[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 = "triomphe" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b2cb4fbb9995eeb36ac86fadf24031ccd58f99d6b4b2d7b911db70bddb80d90" + +[[package]] +name = "trust-dns-proto" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c31f240f59877c3d4bb3b3ea0ec5a6a0cff07323580ff8c7a605cd7d08b255d" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.4.0", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.2.3", + "ipnet", + "lazy_static", + "log", + "rand 0.8.5", + "smallvec", + "thiserror 1.0.68", + "tinyvec", + "tokio", + "url", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ba72c2ea84515690c9fcef4c6c660bb9df3036ed1051686de84605b74fd558" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lazy_static", + "log", + "lru-cache", + "parking_lot", + "resolv-conf", + "smallvec", + "thiserror 1.0.68", + "tokio", + "trust-dns-proto", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes 1.10.0", + "data-encoding", + "http 0.2.9", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror 1.0.68", + "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.0", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror 1.0.68", + "url", + "utf-8", +] + +[[package]] +name = "twox-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908" + +[[package]] +name = "typed-builder" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89851716b67b937e393b3daa8423e67ddfc4bbbf1654bcf05488e95e0828db0c" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 1.0.109", +] + +[[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 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "typetag" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "044fc3365ddd307c297fe0fe7b2e70588cdab4d0f62dc52055ca0d11b174cf0e" +dependencies = [ + "erased-serde", + "inventory", + "once_cell", + "serde", + "typetag-impl", +] + +[[package]] +name = "typetag-impl" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9d30226ac9cbd2d1ff775f74e8febdab985dab14fb14aa2582c29a92d5555dc" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf694e7b0434d4fad6c879e984e8fdc3a62f5533c3d421762244f9e9d03f6927" +dependencies = [ + "derive_more", + "lazy_static", + "regex", + "serde", + "serde_derive", + "serde_yaml 0.8.26", +] + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[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.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5fbabedabe362c618c714dbefda9927b5afc8e2a8102f47f081089a9019226" +dependencies = [ + "itertools 0.12.1", + "unicode-width 0.1.13", +] + +[[package]] +name = "unicode-width" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" + +[[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.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[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 = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[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 1.0.3", + "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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "uuid" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744018581f9a3454a9e15beb8a33b017183f1e7c0cd170232a2d1453b23a51c4" +dependencies = [ + "getrandom 0.2.15", + "rand 0.8.5", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[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", + "chrono", + "clap", + "clap-verbosity-flag", + "clap_complete", + "confy", + "directories 6.0.0", + "dunce", + "glob", + "hex", + "indexmap 2.7.1", + "indicatif", + "itertools 0.14.0", + "log", + "owo-colors", + "paste", + "regex", + "reqwest 0.11.26", + "semver 1.0.25", + "serde", + "serde_json", + "serde_yaml 0.9.34+deprecated", + "sha2", + "tempfile", + "toml", +] + +[[package]] +name = "vector" +version = "0.45.0" +dependencies = [ + "apache-avro", + "approx", + "arc-swap", + "arr_macro", + "assert_cmd", + "async-compression", + "async-graphql", + "async-graphql-warp", + "async-nats", + "async-stream", + "async-trait", + "aws-config", + "aws-credential-types", + "aws-sdk-cloudwatch", + "aws-sdk-cloudwatchlogs", + "aws-sdk-elasticsearch", + "aws-sdk-firehose", + "aws-sdk-kinesis", + "aws-sdk-kms", + "aws-sdk-s3", + "aws-sdk-secretsmanager", + "aws-sdk-sns", + "aws-sdk-sqs", + "aws-sdk-sts", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-http", + "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", + "byteorder", + "bytes 1.10.0", + "bytesize", + "cfg-if", + "chrono", + "chrono-tz", + "clap", + "colored", + "console-subscriber", + "criterion", + "crossterm", + "csv", + "databend-client", + "derivative", + "dirs-next", + "dnsmsg-parser", + "dnstap-parser", + "dyn-clone", + "encoding_rs", + "enum_dispatch", + "evmap", + "evmap-derive", + "exitcode", + "fakedata", + "flate2", + "futures 0.3.31", + "futures-util", + "glob", + "goauth", + "governor", + "greptimedb-ingester", + "h2 0.4.7", + "hash_hasher", + "hashbrown 0.14.5", + "headers", + "heim", + "hex", + "hickory-proto", + "hostname 0.4.0", + "http 0.2.9", + "http 1.1.0", + "http-body 0.4.5", + "http-serde", + "hyper 0.14.28", + "hyper-openssl 0.9.2", + "hyper-proxy", + "indexmap 2.7.1", + "indoc", + "inventory", + "ipnet", + "itertools 0.14.0", + "k8s-openapi 0.22.0", + "kube", + "lapin", + "libc", + "listenfd", + "loki-logproto", + "lru 0.13.0", + "maxminddb", + "md-5", + "metrics", + "metrics-tracing-context", + "mlua", + "mongodb", + "netlink-packet-core", + "netlink-packet-sock-diag", + "netlink-packet-utils", + "netlink-sys", + "nix 0.26.2", + "nkeys 0.4.4", + "nom", + "notify", + "num-format", + "number_prefix", + "opendal", + "openssl", + "openssl-probe", + "openssl-src", + "ordered-float 4.6.0", + "paste", + "percent-encoding", + "pin-project", + "portpicker", + "postgres-openssl", + "proptest", + "proptest-derive", + "prost 0.12.6", + "prost-build 0.12.6", + "prost-reflect", + "prost-types 0.12.6", + "pulsar", + "quickcheck", + "rand 0.8.5", + "rand_distr", + "ratatui", + "rdkafka", + "redis", + "regex", + "reqwest 0.11.26", + "rmp-serde", + "rmpv", + "roaring", + "rstest", + "rumqttc", + "seahash", + "semver 1.0.25", + "serde", + "serde-toml-merge", + "serde_bytes", + "serde_json", + "serde_with 3.12.0", + "serde_yaml 0.9.34+deprecated", + "similar-asserts", + "smallvec", + "smpl_jwt", + "snafu 0.7.5", + "snap", + "socket2 0.5.8", + "stream-cancel", + "strip-ansi-escapes", + "sysinfo", + "syslog", + "tempfile", + "test-generator", + "thread_local", + "tikv-jemallocator", + "tokio", + "tokio-openssl", + "tokio-postgres", + "tokio-stream", + "tokio-test", + "tokio-tungstenite 0.20.1", + "tokio-util", + "toml", + "tonic 0.11.0", + "tonic-build 0.11.0", + "tower", + "tower-http 0.4.4", + "tower-test", + "tracing 0.1.41", + "tracing-core 0.1.33", + "tracing-futures 0.2.5", + "tracing-limit", + "tracing-subscriber", + "tracing-tower", + "typetag", + "url", + "uuid", + "vector-common", + "vector-config", + "vector-config-common", + "vector-config-macros", + "vector-lib", + "vector-vrl-functions", + "vrl", + "warp", + "windows-service", + "wiremock", + "zstd 0.13.2", +] + +[[package]] +name = "vector-api-client" +version = "0.1.2" +dependencies = [ + "anyhow", + "chrono", + "clap", + "futures 0.3.31", + "graphql_client", + "reqwest 0.11.26", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tokio-tungstenite 0.20.1", + "url", + "uuid", +] + +[[package]] +name = "vector-buffers" +version = "0.1.0" +dependencies = [ + "async-recursion", + "async-stream", + "async-trait", + "bytecheck", + "bytes 1.10.0", + "clap", + "crc32fast", + "criterion", + "crossbeam-queue", + "crossbeam-utils", + "derivative", + "fslock", + "futures 0.3.31", + "hdrhistogram", + "memmap2", + "metrics", + "metrics-tracing-context", + "metrics-util", + "num-traits", + "paste", + "proptest", + "quickcheck", + "rand 0.8.5", + "rkyv", + "serde", + "serde_yaml 0.9.34+deprecated", + "snafu 0.7.5", + "temp-dir", + "tokio", + "tokio-test", + "tokio-util", + "tracing 0.1.41", + "tracing-fluent-assertions", + "tracing-subscriber", + "vector-common", + "vector-config", +] + +[[package]] +name = "vector-common" +version = "0.1.0" +dependencies = [ + "async-stream", + "bytes 1.10.0", + "chrono", + "crossbeam-utils", + "derivative", + "futures 0.3.31", + "indexmap 2.7.1", + "metrics", + "paste", + "pin-project", + "serde", + "serde_json", + "smallvec", + "stream-cancel", + "tokio", + "tracing 0.1.41", + "vector-config", + "vrl", +] + +[[package]] +name = "vector-config" +version = "0.1.0" +dependencies = [ + "assert-json-diff", + "chrono", + "chrono-tz", + "encoding_rs", + "http 0.2.9", + "indexmap 2.7.1", + "inventory", + "no-proxy", + "num-traits", + "serde", + "serde_json", + "serde_with 3.12.0", + "snafu 0.7.5", + "toml", + "tracing 0.1.41", + "url", + "vector-config-common", + "vector-config-macros", + "vrl", +] + +[[package]] +name = "vector-config-common" +version = "0.1.0" +dependencies = [ + "convert_case 0.7.1", + "darling 0.20.10", + "proc-macro2 1.0.93", + "quote 1.0.38", + "serde", + "serde_json", + "syn 2.0.98", + "tracing 0.1.41", +] + +[[package]] +name = "vector-config-macros" +version = "0.1.0" +dependencies = [ + "darling 0.20.10", + "proc-macro2 1.0.93", + "quote 1.0.38", + "serde", + "serde_derive_internals", + "syn 2.0.98", + "vector-config", + "vector-config-common", +] + +[[package]] +name = "vector-core" +version = "0.1.0" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bitmask-enum", + "bytes 1.10.0", + "cfg-if", + "chrono", + "chrono-tz", + "criterion", + "crossbeam-utils", + "derivative", + "dyn-clone", + "enumflags2", + "env-test-util", + "float_eq", + "futures 0.3.31", + "futures-util", + "headers", + "http 0.2.9", + "hyper-proxy", + "indexmap 2.7.1", + "inventory", + "ipnet", + "metrics", + "metrics-tracing-context", + "metrics-util", + "mlua", + "ndarray", + "ndarray-stats", + "no-proxy", + "noisy_float", + "openssl", + "ordered-float 4.6.0", + "parking_lot", + "pin-project", + "proptest", + "prost 0.12.6", + "prost-build 0.12.6", + "prost-types 0.12.6", + "quanta", + "quickcheck", + "quickcheck_macros", + "rand 0.8.5", + "rand_distr", + "regex", + "ryu", + "schannel", + "security-framework", + "serde", + "serde_json", + "serde_with 3.12.0", + "serde_yaml 0.9.34+deprecated", + "similar-asserts", + "smallvec", + "snafu 0.7.5", + "socket2 0.5.8", + "tokio", + "tokio-openssl", + "tokio-stream", + "tokio-test", + "tokio-util", + "toml", + "tonic 0.11.0", + "tracing 0.1.41", + "tracing-subscriber", + "url", + "urlencoding", + "uuid", + "vector-buffers", + "vector-common", + "vector-config", + "vector-config-common", + "vector-lookup", + "vrl", +] + +[[package]] +name = "vector-lib" +version = "0.1.0" +dependencies = [ + "codecs", + "enrichment", + "file-source", + "opentelemetry-proto", + "prometheus-parser", + "vector-api-client", + "vector-buffers", + "vector-common", + "vector-config", + "vector-core", + "vector-lookup", + "vector-stream", + "vector-tap", + "vrl", +] + +[[package]] +name = "vector-lookup" +version = "0.1.0" +dependencies = [ + "proptest", + "proptest-derive", + "serde", + "vector-config", + "vector-config-macros", + "vrl", +] + +[[package]] +name = "vector-stream" +version = "0.1.0" +dependencies = [ + "async-stream", + "futures 0.3.31", + "futures-util", + "pin-project", + "proptest", + "rand 0.8.5", + "rand_distr", + "tokio", + "tokio-util", + "tower", + "tracing 0.1.41", + "twox-hash", + "vector-common", + "vector-core", +] + +[[package]] +name = "vector-tap" +version = "0.1.0" +dependencies = [ + "async-graphql", + "chrono", + "colored", + "futures 0.3.31", + "futures-util", + "glob", + "portpicker", + "serde_json", + "serde_yaml 0.9.34+deprecated", + "tokio", + "tokio-stream", + "tokio-tungstenite 0.20.1", + "tracing 0.1.41", + "url", + "uuid", + "vector-api-client", + "vector-buffers", + "vector-common", + "vector-core", +] + +[[package]] +name = "vector-vrl-cli" +version = "0.1.0" +dependencies = [ + "clap", + "vector-vrl-functions", + "vrl", +] + +[[package]] +name = "vector-vrl-functions" +version = "0.1.0" +dependencies = [ + "vrl", +] + +[[package]] +name = "vector-vrl-tests" +version = "0.1.0" +dependencies = [ + "chrono-tz", + "clap", + "dnstap-parser", + "enrichment", + "glob", + "serde", + "serde_json", + "tikv-jemallocator", + "tracing-subscriber", + "vector-vrl-functions", + "vrl", +] + +[[package]] +name = "vector-vrl-web-playground" +version = "0.1.0" +dependencies = [ + "cargo-lock", + "enrichment", + "gloo-utils", + "serde", + "serde-wasm-bindgen", + "vector-vrl-functions", + "vrl", + "wasm-bindgen", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "vrl" +version = "0.22.0" +source = "git+https://github.com/vectordotdev/vrl?branch=main#fd95f9d041053dda99afcd01e666d4c8a9d2d449" +dependencies = [ + "aes", + "aes-siv", + "ansi_term", + "arbitrary", + "base16", + "base62", + "base64 0.22.1", + "bytes 1.10.0", + "cbc", + "cfb-mode", + "cfg-if", + "chacha20poly1305", + "charset", + "chrono", + "chrono-tz", + "ciborium", + "cidr-utils", + "clap", + "codespan-reporting", + "community-id", + "convert_case 0.7.1", + "crc", + "crypto_secretbox", + "csv", + "ctr", + "data-encoding", + "digest", + "dns-lookup", + "domain", + "dyn-clone", + "encoding_rs", + "exitcode", + "fancy-regex", + "flate2", + "grok", + "hex", + "hmac", + "hostname 0.4.0", + "iana-time-zone", + "idna 1.0.3", + "indexmap 2.7.1", + "indoc", + "influxdb-line-protocol", + "itertools 0.14.0", + "lalrpop", + "lalrpop-util", + "md-5", + "mlua", + "nom", + "ofb", + "onig", + "ordered-float 4.6.0", + "parse-size", + "paste", + "peeking_take_while", + "percent-encoding", + "pest", + "pest_derive", + "prettydiff", + "prettytable-rs", + "proptest", + "proptest-derive", + "prost 0.13.3", + "prost-reflect", + "psl", + "psl-types", + "publicsuffix", + "quickcheck", + "quoted_printable", + "rand 0.8.5", + "regex", + "roxmltree", + "rust_decimal", + "rustyline", + "seahash", + "serde", + "serde_json", + "sha-1", + "sha2", + "sha3", + "simdutf8", + "snafu 0.8.0", + "snap", + "strip-ansi-escapes", + "syslog_loose", + "termcolor", + "thiserror 2.0.3", + "tokio", + "tracing 0.1.41", + "uaparser", + "unicode-segmentation", + "url", + "utf8-width", + "uuid", + "webbrowser", + "woothee", + "zstd 0.13.2", +] + +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "vte" -version = "0.3.3" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" +dependencies = [ + "memchr", +] + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "waker-fn" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" + +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "warp" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" +dependencies = [ + "bytes 1.10.0", + "futures-channel", + "futures-util", + "headers", + "http 0.2.9", + "hyper 0.14.28", + "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.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +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 1.0.93", + "quote 1.0.38", + "syn 2.0.98", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +dependencies = [ + "cfg-if", + "js-sys", + "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 1.0.38", + "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 1.0.93", + "quote 1.0.38", + "syn 2.0.98", + "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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +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 = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b6f804e41d0852e16d2eaee61c7e4f7d3e8ffdb7b8ed85886aeb0791fe9fcd" +dependencies = [ + "core-foundation", + "home", + "jni", + "log", + "ndk-context", + "objc", + "raw-window-handle", + "url", + "web-sys", +] + +[[package]] +name = "webpki-roots" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" + +[[package]] +name = "webpki-roots" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.40", +] + +[[package]] +name = "which" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.40", + "windows-sys 0.48.0", +] + +[[package]] +name = "whoami" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fec781d48b41f8163426ed18e8fc2864c12937df9ce54c88ede7bd47270893e" +dependencies = [ + "redox_syscall 0.4.1", + "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.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f42f536e22f7fcbb407639765c8fd78707a33109301f834a594758bedd6e8cf" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "utf8parse 0.1.1", + "windows-core 0.52.0", + "windows-targets 0.52.6", ] [[package]] -name = "wabt" -version = "0.9.1" +name = "windows" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b5f5d6984ca42df66280baa8a15ac188a173ddaf4580b574a98931c01920e7" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" dependencies = [ - "serde", - "serde_derive", - "serde_json", - "wabt-sys", + "windows-core 0.57.0", + "windows-targets 0.52.6", ] [[package]] -name = "wabt-sys" -version = "0.6.1" +name = "windows-core" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b064c81821100adb4b71923cecfc67fef083db21c3bbd454b0162c7ffe63eeaa" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "cc", - "cmake", - "glob 0.2.11", + "windows-targets 0.52.6", ] [[package]] -name = "wait-timeout" -version = "0.2.0" +name = "windows-core" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" dependencies = [ - "libc", + "windows-implement", + "windows-interface", + "windows-result", + "windows-targets 0.52.6", ] [[package]] -name = "waker-fn" -version = "1.1.0" +name = "windows-implement" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] [[package]] -name = "walkdir" -version = "2.3.1" +name = "windows-interface" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ - "same-file", - "winapi 0.3.9", - "winapi-util", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] -name = "want" -version = "0.3.0" +name = "windows-result" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ - "log", - "try-lock", + "windows-targets 0.52.6", ] [[package]] -name = "warp" -version = "0.2.5" +name = "windows-service" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f41be6df54c97904af01aa23e613d4521eed7ab23537cede692d4058f6449407" +checksum = "d24d6bcc7f734a4091ecf8d7a64c5f7d7066f45585c1861eba06449909609c8a" dependencies = [ - "bytes 0.5.6", - "futures 0.3.12", - "headers", - "http", - "hyper 0.13.10", - "log", - "mime", - "mime_guess", - "pin-project 0.4.27", - "scoped-tls", - "serde", - "serde_json", - "serde_urlencoded 0.6.1", - "tokio 0.2.24", - "tokio-tungstenite", - "tower-service", - "tracing 0.1.22", - "tracing-futures 0.2.4", - "urlencoding", + "bitflags 2.8.0", + "widestring 1.0.2", + "windows-sys 0.52.0", ] [[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +name = "windows-sys" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] [[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasi-common" -version = "0.18.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "anyhow", - "cfg-if 0.1.10", - "cpu-time", - "filetime", - "getrandom 0.1.16", - "lazy_static", - "libc", - "log", - "thiserror", - "wig", - "wiggle", - "winapi 0.3.9", - "winx", - "yanix", + "windows-targets 0.48.5", ] [[package]] -name = "wasm-bindgen" -version = "0.2.69" +name = "windows-sys" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "cfg-if 1.0.0", - "serde", - "serde_json", - "wasm-bindgen-macro", + "windows-targets 0.52.6", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.69" +name = "windows-sys" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "bumpalo", - "lazy_static", - "log", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "wasm-bindgen-shared", + "windows-targets 0.52.6", ] [[package]] -name = "wasm-bindgen-futures" -version = "0.4.19" +name = "windows-targets" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "wasm-bindgen", - "web-sys", + "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 = "wasm-bindgen-macro" -version = "0.2.69" +name = "windows-targets" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "quote 1.0.8", - "wasm-bindgen-macro-support", + "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 = "wasm-bindgen-macro-support" -version = "0.2.69" +name = "windows-targets" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "wasm-bindgen-backend", - "wasm-bindgen-shared", + "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 = "wasm-bindgen-shared" -version = "0.2.69" +name = "windows_aarch64_gnullvm" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] -name = "wasmparser" -version = "0.57.0" +name = "windows_aarch64_gnullvm" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32fddd575d477c6e9702484139cf9f23dcd554b06d185ed0f56c857dd3a47aa6" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] -name = "wasmparser" -version = "0.58.0" +name = "windows_aarch64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721a8d79483738d7aef6397edcf8f04cd862640b1ad5973adf5bb50fc10e86db" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "wast" -version = "11.0.0" +name = "windows_aarch64_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df4d67ba9266f4fcaf2e8a1afadc5e2a959e51aecc07b1ecbdf85a6ddaf08bde" -dependencies = [ - "leb128", -] +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] -name = "weak-table" -version = "0.3.0" +name = "windows_aarch64_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8f3bf74f2d43500dea6a8291b6ac943e3465ea9936b94bd017e61b7b21dd01" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] -name = "web-sys" -version = "0.3.46" +name = "windows_aarch64_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3" -dependencies = [ - "js-sys", - "wasm-bindgen", -] +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] -name = "webbrowser" -version = "0.5.5" +name = "windows_i686_gnu" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecad156490d6b620308ed411cfee90d280b3cbd13e189ea0d3fada8acc89158a" -dependencies = [ - "web-sys", - "widestring", - "winapi 0.3.9", -] +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] -name = "webpki" -version = "0.21.4" +name = "windows_i686_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] -name = "webpki-roots" -version = "0.18.0" +name = "windows_i686_gnu" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cd5736df7f12a964a5067a12c62fa38e1bd8080aff1f80bc29be7c80d19ab4" -dependencies = [ - "webpki", -] +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] -name = "webpki-roots" -version = "0.20.0" +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f" -dependencies = [ - "webpki", -] +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] -name = "wepoll-sys" -version = "3.0.1" +name = "windows_i686_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff" -dependencies = [ - "cc", -] +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] -name = "which" -version = "3.1.1" +name = "windows_i686_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724" -dependencies = [ - "libc", -] +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] -name = "widestring" -version = "0.4.3" +name = "windows_i686_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] -name = "wig" -version = "0.18.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" -dependencies = [ - "heck", - "proc-macro2 1.0.24", - "quote 1.0.8", - "witx", -] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] -name = "wiggle" -version = "0.18.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" -dependencies = [ - "thiserror", - "tracing 0.1.22", - "wiggle-macro", - "witx", -] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] -name = "wiggle-generate" -version = "0.18.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" -dependencies = [ - "anyhow", - "heck", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "witx", -] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] -name = "wiggle-macro" -version = "0.18.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" -dependencies = [ - "quote 1.0.8", - "syn 1.0.58", - "wiggle-generate", - "witx", -] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] -name = "winapi" -version = "0.2.8" +name = "windows_x86_64_gnullvm" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] -name = "winapi" -version = "0.3.9" +name = "windows_x86_64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] -name = "winapi-build" -version = "0.1.1" +name = "windows_x86_64_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "windows_x86_64_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] -name = "winapi-util" -version = "0.1.5" +name = "windows_x86_64_msvc" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi 0.3.9", -] +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "winnow" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32" +dependencies = [ + "memchr", +] [[package]] -name = "windows-service" -version = "0.3.1" +name = "winnow" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdfb0437cd780b66551aa81b466470f1159b1878ed45438b738de8bc6e5012b6" +checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" dependencies = [ - "bitflags", - "err-derive", - "widestring", - "winapi 0.3.9", + "memchr", ] [[package]] name = "winreg" -version = "0.6.2" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi 0.3.9", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] name = "winreg" -version = "0.7.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ - "winapi 0.3.9", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] -name = "winx" -version = "0.18.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "wiremock" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fff469918e7ca034884c7fd8f93fe27bacb7fcb599fd879df6c7b429a29b646" dependencies = [ - "bitflags", - "cvt", - "winapi 0.3.9", + "assert-json-diff", + "async-trait", + "base64 0.22.1", + "deadpool", + "futures 0.3.31", + "http 1.1.0", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "log", + "once_cell", + "regex", + "serde", + "serde_json", + "tokio", + "url", ] [[package]] -name = "witx" -version = "0.8.5" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "anyhow", - "log", - "thiserror", - "wast", + "bitflags 2.8.0", ] [[package]] -name = "ws2_32-sys" -version = "0.2.1" +name = "woothee" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +checksum = "896174c6a4779d4d7d4523dd27aef7d46609eda2497e370f6c998325c6bf6971" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "lazy_static", + "regex", ] +[[package]] +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.2.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] [[package]] -name = "xml-rs" -version = "0.8.3" +name = "xmlparser" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" [[package]] name = "yaml-rust" @@ -8736,86 +12344,161 @@ dependencies = [ ] [[package]] -name = "yanix" -version = "0.18.0" -source = "git+https://github.com/bytecodealliance/lucet.git?rev=b1863dacc8c92c11e5434fc8815d9b9a26cfe3db#b1863dacc8c92c11e5434fc8815d9b9a26cfe3db" +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" dependencies = [ - "bitflags", - "cfg-if 0.1.10", - "filetime", - "libc", - "log", + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", + "synstructure", ] [[package]] name = "zerocopy" -version = "0.3.0" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6580539ad917b7c026220c4b3f2c08d52ce54d6ce0dc491e66002e35388fab46" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" dependencies = [ - "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.31", +] + +[[package]] +name = "zerocopy" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b8c07a70861ce02bad1607b5753ecb2501f67847b9f9ada7c160fff0ec6300c" +dependencies = [ + "zerocopy-derive 0.8.16", ] [[package]] name = "zerocopy-derive" -version = "0.2.0" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5226bc9a9a9836e7428936cde76bb6b22feea1a8bfdbc0d241136e4d13417e25" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d498dbd1fd7beb83c86709ae1c33ca50942889473473d287d56ce4770a18edfb" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ - "proc-macro2 1.0.24", - "syn 1.0.58", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", "synstructure", ] [[package]] name = "zeroize" -version = "1.2.0" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ - "zeroize_derive", + "yoke", + "zerofrom", + "zerovec-derive", ] [[package]] -name = "zeroize_derive" -version = "1.0.1" +name = "zerovec-derive" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", - "synstructure", + "proc-macro2 1.0.93", + "quote 1.0.38", + "syn 2.0.98", ] [[package]] name = "zstd" -version = "0.6.0+zstd.1.4.8" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", +] + +[[package]] +name = "zstd" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e44664feba7f2f1a9f300c1f6157f2d1bfc3c15c6f3cf4beabf3f5abe9c237" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" dependencies = [ - "zstd-safe", + "zstd-safe 7.2.1", ] [[package]] name = "zstd-safe" -version = "3.0.0+zstd.1.4.8" +version = "6.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9447afcd795693ad59918c7bbffe42fdd6e467d708f3537e3dc14dc598c573f" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" dependencies = [ "libc", "zstd-sys", ] +[[package]] +name = "zstd-safe" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +dependencies = [ + "zstd-sys", +] + [[package]] name = "zstd-sys" -version = "1.4.19+zstd.1.4.8" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec24a9273d24437afb8e71b16f3d9a5d569193cccdb7896213b59f552f387674" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", - "glob 0.3.0", - "itertools 0.9.0", - "libc", + "pkg-config", ] diff --git a/Cargo.toml b/Cargo.toml index 4593e403bc9f2..c867abd55efc7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "vector" -version = "0.12.0" -authors = ["Vector Contributors "] -edition = "2018" +version = "0.45.0" +authors = ["Vector Contributors "] +edition = "2021" description = "A lightweight and ultra-fast tool for building observability pipelines" homepage = "https://vector.dev" license = "MPL-2.0" @@ -10,339 +10,567 @@ readme = "README.md" publish = false default-run = "vector" autobenches = false # our benchmarks are not runnable on their own either way +# Minimum supported rust version +# See docs/DEVELOPING.md for policy +rust-version = "1.81" + +[[bin]] +name = "vector" +test = false +bench = false [[bin]] name = "graphql-schema" path = "src/api/schema/gen.rs" +test = false +bench = false required-features = ["default-no-api-client"] +[[bin]] +name = "secret-backend-example" +path = "src/config/loading/secret_backend_example.rs" +test = false +bench = false +required-features = ["secret-backend-example"] + +[[test]] +name = "integration" +path = "tests/integration/lib.rs" + +[[test]] +name = "e2e" +path = "tests/e2e/mod.rs" + +# CI-based builds use full release optimization. See scripts/environment/release-flags.sh. +# This results in roughly a 5% reduction in performance when compiling locally vs when +# compiled via the CI pipeline. [profile.release] -lto = true -codegen-units = 1 +debug = false # Do not include debug symbols in the executable. [profile.bench] debug = true +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] } + [package.metadata.deb] +name = "vector" +section = "admin" maintainer-scripts = "distribution/debian/scripts/" -conf-files = ["/etc/vector/vector.toml"] +conf-files = ["/etc/vector/vector.yaml", "/etc/default/vector"] assets = [ ["target/release/vector", "/usr/bin/", "755"], - ["config/vector.toml", "/etc/vector/vector.toml", "644"], + ["config/vector.yaml", "/etc/vector/vector.yaml", "644"], ["config/examples/*", "/etc/vector/examples/", "644"], - ["distribution/systemd/vector.service", "/etc/systemd/system/vector.service", "644"], - ["distribution/systemd/vector.default", "/etc/default/vector", "600"] + ["distribution/systemd/vector.service", "/lib/systemd/system/vector.service", "644"], + ["distribution/systemd/vector.default", "/etc/default/vector", "600"], + ["licenses/*", "/usr/share/vector/licenses/", "644"], + ["NOTICE", "/usr/share/vector/NOTICE", "644"], + ["LICENSE-3rdparty.csv", "/usr/share/vector/LICENSE-3rdparty.csv", "644"], ] license-file = ["target/debian-license.txt"] extended-description-file = "target/debian-extended-description.txt" -depends = "libc6 (>= 2.17)" +recommends = "datadog-signing-keys (>= 1:1.4.0)" + +[package.metadata.deb.systemd-units] +unit-scripts = "distribution/systemd/" +enable = false +start = false + +# libc requirements are defined by `cross` +# https://github.com/rust-embedded/cross#supported-targets +# Though, it seems like aarch64 libc is actually 2.18 and not 2.19 +[package.metadata.deb.variants.arm-unknown-linux-gnueabi] +depends = "libc6 (>= 2.15)" + +[package.metadata.deb.variants.armv7-unknown-linux-gnueabihf] +depends = "libc6 (>= 2.15)" + +[package.metadata.deb.variants.x86_64-unknown-linux-gnu] +depends = "libc6 (>= 2.15)" + +[package.metadata.deb.variants.x86_64-unknown-linux-musl] +depends = "" + +[package.metadata.deb.variants.aarch64-unknown-linux-gnu] +depends = "libc6 (>= 2.18)" + +[package.metadata.deb.variants.aarch64-unknown-linux-musl] +depends = "" [workspace] members = [ ".", - "lib/codec", - "lib/derive_is_enum_variant", + "lib/codecs", + "lib/dnsmsg-parser", + "lib/dnstap-parser", + "lib/docs-renderer", + "lib/enrichment", + "lib/fakedata", "lib/file-source", "lib/k8s-e2e-tests", "lib/k8s-test-framework", + "lib/loki-logproto", "lib/portpicker", "lib/prometheus-parser", - "lib/shared", + "lib/opentelemetry-proto", "lib/tracing-limit", "lib/vector-api-client", - "lib/vector-wasm", - "lib/vrl/cli", - "lib/vrl/compiler", - "lib/vrl/core", - "lib/vrl/diagnostic", - "lib/vrl/parser", - "lib/vrl/stdlib", - "lib/vrl/tests", - "lib/vrl/proptests", + "lib/vector-buffers", + "lib/vector-common", + "lib/vector-config", + "lib/vector-config-common", + "lib/vector-config-macros", + "lib/vector-core", + "lib/vector-lib", + "lib/vector-lookup", + "lib/vector-stream", + "lib/vector-tap", + "lib/vector-vrl/cli", + "lib/vector-vrl/functions", + "lib/vector-vrl/tests", + "lib/vector-vrl/web-playground", + "vdev", ] +[workspace.dependencies] +anyhow = "1.0.95" +cfg-if = { version = "1.0.0", default-features = false } +chrono = { version = "0.4.39", default-features = false, features = ["clock", "serde"] } +chrono-tz = { version = "0.10.1", default-features = false, features = ["serde"] } +clap = { version = "4.5.28", default-features = false, features = ["derive", "error-context", "env", "help", "std", "string", "usage", "wrap_help"] } +flate2 = { version = "1.0.35", default-features = false, features = ["default"] } +futures = { version = "0.3.31", default-features = false, features = ["compat", "io-compat", "std"], package = "futures" } +glob = { version = "0.3.2", default-features = false } +hickory-proto = { version = "0.24.3", default-features = false, features = ["dnssec"] } +indexmap = { version = "2.7.1", default-features = false, features = ["serde", "std"] } +inventory = { version = "0.3" } +metrics = "0.24.1" +metrics-tracing-context = { version = "0.17.0", default-features = false } +metrics-util = { version = "0.18.0", default-features = false, features = ["registry"] } +pin-project = { version = "1.1.9", default-features = false } +proptest = { version = "1.6" } +proptest-derive = { version = "0.5.1" } +prost = { version = "0.12", default-features = false, features = ["std"] } +prost-build = { version = "0.12", default-features = false } +prost-reflect = { version = "0.14", features = ["serde"], default-features = false } +prost-types = { version = "0.12", default-features = false } +rand = { version = "0.8.5", default-features = false, features = ["small_rng"] } +semver = { version = "1.0.25", default-features = false, features = ["serde", "std"] } +serde_json = { version = "1.0.138", default-features = false, features = ["raw_value", "std"] } +serde = { version = "1.0.217", default-features = false, features = ["alloc", "derive", "rc"] } +snafu = { version = "0.7.5", default-features = false, features = ["futures", "std"] } +tokio = { version = "1.43.0", default-features = false, features = ["full"] } +toml = { version = "0.8.20", default-features = false, features = ["display", "parse"] } +tonic = { version = "0.11", default-features = false, features = ["transport", "codegen", "prost", "tls", "tls-roots", "gzip"] } +tonic-build = { version = "0.11", default-features = false, features = ["transport", "prost"] } +uuid = { version = "1.12.0", features = ["v4", "v7", "serde"] } +vector-lib = { path = "lib/vector-lib", default-features = false, features = ["vrl"] } +vector-config = { path = "lib/vector-config" } +vector-config-common = { path = "lib/vector-config-common" } +vector-config-macros = { path = "lib/vector-config-macros" } +vrl = { git = "https://github.com/vectordotdev/vrl", branch = "main", features = ["arbitrary", "cli", "test", "test_framework"] } + [dependencies] +pin-project.workspace = true +clap.workspace = true +uuid.workspace = true +vrl.workspace = true +proptest = { workspace = true, optional = true } +proptest-derive = { workspace = true, optional = true } +snafu.workspace = true +cfg-if.workspace = true +semver.workspace = true + # Internal libs -codec = { path = "lib/codec" } -derive_is_enum_variant = { path = "lib/derive_is_enum_variant" } -file-source = { path = "lib/file-source", optional = true } +dnsmsg-parser = { path = "lib/dnsmsg-parser", optional = true } +dnstap-parser = { path = "lib/dnstap-parser", optional = true } +fakedata = { path = "lib/fakedata", optional = true } portpicker = { path = "lib/portpicker" } -prometheus-parser = { path = "lib/prometheus-parser", optional = true } -shared = { path = "lib/shared" } tracing-limit = { path = "lib/tracing-limit" } -vector-api-client = { path = "lib/vector-api-client", optional = true } -vrl-cli = { path = "lib/vrl/cli", optional = true } +vector-common = { path = "lib/vector-common", default-features = false} +vector-lib.workspace = true +vector-config.workspace = true +vector-config-common.workspace = true +vector-config-macros.workspace = true +vector-vrl-functions = { path = "lib/vector-vrl/functions" } +loki-logproto = { path = "lib/loki-logproto", optional = true } # Tokio / Futures -async-trait = "0.1" -futures = { version = "0.3", default-features = false, features = ["compat", "io-compat"] } -futures01 = { package = "futures", version = "0.1.25" } -tokio = { version = "0.2.13", features = ["blocking", "fs", "io-std", "macros", "process", "rt-core", "rt-threaded", "signal", "stream", "sync", "time", "udp", "uds"] } -tokio-openssl = "0.4.0" -tokio-util = { version = "0.3.1", features = ["codec"] } +async-stream = { version = "0.3.6", default-features = false } +async-trait = { version = "0.1.86", default-features = false } +futures.workspace = true +tokio = { version = "1.43.0", default-features = false, features = ["full"] } +tokio-openssl = { version = "0.6.5", default-features = false } +tokio-stream = { version = "0.1.17", default-features = false, features = ["net", "sync", "time"] } +tokio-util = { version = "0.7", default-features = false, features = ["io", "time"] } +console-subscriber = { version = "0.4.1", default-features = false, optional = true } # Tracing -tracing = "0.1.15" -tracing-core = "0.1.17" -tracing-futures = { version = "0.2", features = ["futures-01", "futures-03"]} -tracing-log = "0.1.0" -tracing-subscriber = "0.2.15" -tracing-tower = { git = "https://github.com/tokio-rs/tracing", rev = "f470db1b0354b368f62f9ee4d763595d16373231" } +tracing = { version = "0.1.34", default-features = false } +tracing-core = { version = "0.1.26", default-features = false } +tracing-futures = { version = "0.2.5", default-features = false, features = ["futures-03"] } +tracing-subscriber = { version = "0.3.19", default-features = false, features = ["ansi", "env-filter", "fmt", "json", "registry", "tracing-log"] } +tracing-tower = { git = "https://github.com/tokio-rs/tracing", default-features = false, rev = "e0642d949891546a3bb7e47080365ee7274f05cd" } # Metrics -metrics = "=0.13.0-alpha.13" -metrics-tracing-context = "=0.1.0-alpha.7" -metrics-util = "=0.4.0-alpha.10" -# Indirect dependency; benchmark regression detected; pinning until -# https://github.com/timberio/vector/issues/6412 is resolved -metrics-macros = "=0.1.0-alpha.9" - -# Aws -rusoto_cloudwatch = { version = "0.45.0", optional = true } -rusoto_core = { version = "0.45.0", features = ["encoding"], optional = true } -rusoto_credential = { version = "0.45.0", optional = true } -rusoto_es = { version = "0.45.0", optional = true } -rusoto_firehose = { version = "0.45.0", optional = true } -rusoto_kinesis = { version = "0.45.0", optional = true } -rusoto_logs = { version = "0.45.0", optional = true } -rusoto_s3 = { version = "0.45.0", optional = true } -rusoto_signature = { version = "0.45.0", optional = true } -rusoto_sqs = { version = "0.45.0", optional = true } -rusoto_sts = { version = "0.45.0", optional = true } +metrics.workspace = true +metrics-tracing-context.workspace = true -# Tower -tower = { version = "0.3.1", git = "https://github.com/tower-rs/tower", rev = "43168944220ed32dab83cb4f11f7b97abc5818d5", features = ["buffer", "limit", "retry", "timeout", "util"] } +# AWS - Official SDK +aws-sdk-s3 = { version = "1.4.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-sdk-sqs = { version = "1.3.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-sdk-sns = { version = "1.6.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-sdk-cloudwatch = { version = "1.3.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-sdk-cloudwatchlogs = { version = "1.3.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-sdk-kms = { version = "1.3.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-sdk-elasticsearch = { version = "1.3.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-sdk-firehose = { version = "1.3.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-sdk-kinesis = { version = "1.3.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-sdk-secretsmanager = { version = "1.6.0", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +# The sts crate is needed despite not being referred to anywhere in the code because we need to set the +# `behavior-version-latest` feature. Without this we get a runtime panic when `auth.assume_role` authentication +# is configured. +aws-sdk-sts = { version = "1.3.1", default-features = false, features = ["behavior-version-latest", "rt-tokio"], optional = true } +aws-types = { version = "1.3.5", default-features = false, optional = true } +aws-sigv4 = { version = "1.2.8", default-features = false, features = ["sign-http"], optional = true } +aws-config = { version = "~1.0.1", default-features = false, features = ["behavior-version-latest", "credentials-process", "sso", "rt-tokio"], optional = true } +aws-credential-types = { version = "1.2.1", default-features = false, features = ["hardcoded-credentials"], optional = true } +aws-smithy-http = { version = "0.60", default-features = false, features = ["event-stream", "rt-tokio"], optional = true } +aws-smithy-types = { version = "1.2.11", default-features = false, features = ["rt-tokio"], optional = true } +aws-smithy-runtime-api = { version = "1.7.3", default-features = false, optional = true } +aws-smithy-runtime = { version = "1.7.8", default-features = false, features = ["client", "connector-hyper-0-14-x", "rt-tokio"], optional = true } +aws-smithy-async = { version = "1.2.4", default-features = false, features = ["rt-tokio"], optional = true } + +# Azure +azure_core = { version = "0.17", default-features = false, features = ["enable_reqwest"], optional = true } +azure_identity = { version = "0.17", default-features = false, features = ["enable_reqwest"], optional = true } +azure_storage = { version = "0.17", default-features = false, optional = true } +azure_storage_blobs = { version = "0.17", default-features = false, optional = true } +# OpenDAL +opendal = { version = "0.45", default-features = false, features = ["native-tls", "services-webhdfs"], optional = true } + +# Tower +tower = { version = "0.4.13", default-features = false, features = ["buffer", "limit", "retry", "timeout", "util", "balance", "discover"] } +tower-http = { version = "0.4.4", default-features = false, features = ["compression-full", "decompression-gzip", "trace"] } # Serde -serde = { version = "1.0.117", features = ["derive"] } -serde_json = { version = "1.0.33", features = ["raw_value"] } -serde_yaml = "0.8.13" +serde.workspace = true +serde-toml-merge = { version = "0.3.8", default-features = false } +serde_bytes = { version = "0.11.15", default-features = false, features = ["std"], optional = true } +serde_json.workspace = true +serde_with = { version = "3.12.0", default-features = false, features = ["macros", "std"] } +serde_yaml = { version = "0.9.34", default-features = false } -# Prost -prost = "0.6.1" -prost-types = "0.6.1" +# Messagepack +rmp-serde = { version = "1.3.0", default-features = false, optional = true } +rmpv = { version = "1.3.0", default-features = false, features = ["with-serde"], optional = true } + +# Prost / Protocol Buffers +prost = { workspace = true, optional = true } +prost-reflect = { workspace = true, optional = true } +prost-types = { workspace = true, optional = true } # GCP -goauth = { version = "0.8.1", optional = true } -smpl_jwt = { version = "0.5.0", optional = true } +goauth = { version = "0.14.0", optional = true } +smpl_jwt = { version = "0.8.0", default-features = false, optional = true } + +# AMQP +lapin = { version = "2.5.0", default-features = false, features = ["native-tls"], optional = true } # API -async-graphql = { version = "=2.5.0", optional = true } -async-graphql-warp = { version = "=2.5.0", optional = true } -itertools = { version = "0.10.0", optional = true } +async-graphql = { version = "7.0.15", default-features = false, optional = true, features = ["chrono", "playground"] } +async-graphql-warp = { version = "7.0.15", default-features = false, optional = true } # API client -crossterm = { version = "0.19.0", optional = true } -num-format = { version = "0.4.0", optional = true } -number_prefix = { version = "0.4", optional = true } -tui = { version = "0.14.0", optional = true, default-features = false, features = ["crossterm"] } +crossterm = { version = "0.28.1", default-features = false, features = ["event-stream", "windows"], optional = true } +num-format = { version = "0.4.4", default-features = false, features = ["with-num-bigint"], optional = true } +number_prefix = { version = "0.4.0", default-features = false, features = ["std"], optional = true } +ratatui = { version = "0.29.0", optional = true, default-features = false, features = ["crossterm"] } + +# Opentelemetry -# VRL Lang -vrl = { path = "lib/vrl/core" } -vrl-stdlib = { path = "lib/vrl/stdlib" } +hex = { version = "0.4.3", default-features = false, optional = true } + +# GreptimeDB +greptimedb-ingester = { git = "https://github.com/GreptimeTeam/greptimedb-ingester-rust", rev = "2e6b0c5eb6a5e7549c3100e4d356b07d15cce66d", optional = true } # External libs -anyhow = "1.0.37" -async-compression = { version = "0.3.7", features = ["tokio-02", "gzip", "zstd"] } -avro-rs = { version = "0.13.0", optional = true } -base64 = { version = "0.13.0", optional = true } -bloom = { version = "0.3.2", optional = true } -bollard = { version = "0.9.1", features = ["ssl"], optional = true } -bytes = { version = "0.5.6", features = ["serde"] } -bytesize = { version = "1.0.0", optional = true } -chrono = { version = "0.4.19", features = ["serde"] } -cidr-utils = "0.5.0" -colored = "2.0" -dashmap = "3" -db-key = "0.0.5" -derivative = "2.1.1" -dirs-next = { version = "2.0.0", optional = true } -dyn-clone = "1.0.3" -encoding_rs = { version = "0.8", features = ["serde"] } -evmap = { version = "10.0.2", features = ["bytes"], optional = true } -exitcode = "1.1.2" -fakedata_generator = { version = "0.2.4", optional = true } -flate2 = "1.0.19" -getset = "0.1.1" -glob = "0.3.0" -grok = { version = "~1.0.1", optional = true } -headers = "0.3" -heim = { version = "0.1.0-rc.1", features = ["full"], optional = true } -hostname = "0.3.1" -http = "0.2" -hyper = "0.13" -hyper-openssl = "0.8" -indexmap = {version = "1.5.1", features = ["serde-1"]} -indoc = "1.0.3" -inventory = "0.1.10" -jemallocator = { version = "0.3.0", optional = true } -k8s-openapi = { version = "0.11.0", features = ["v1_16"], optional = true } -lazy_static = "1.3.0" -leveldb = { version = "0.8", optional = true, default-features = false } -listenfd = { version = "0.3.3", optional = true } -logfmt = { version = "0.0.2", optional = true } -lru = { version = "0.6.3", optional = true } -maxminddb = { version = "0.17.0", optional = true } -mongodb = { version = "1.1.1", optional = true } -nats = { version = "0.8.6", optional = true } -nom = { version = "6.0.1", optional = true } -notify = "4.0.14" -num_cpus = "1.10.0" -once_cell = "1.3" -openssl = "0.10.32" -openssl-probe = "0.1.2" -percent-encoding = "2.1.0" -pest = "2.1.3" -pest_derive = "2.1.0" -pin-project = "1.0.1" -postgres-openssl = { version = "0.3.0", optional = true } -pulsar = { version = "1.0.0", default-features = false, features = ["tokio-runtime"], optional = true } -rand = { version = "0.8.0", features = ["small_rng"] } -rand_distr = "0.4.0" -rdkafka = { version = "0.24.0", features = ["libz", "ssl", "zstd"], optional = true } -regex = "1.3.9" -rlua = { git = "https://github.com/kyren/rlua", rev = "25bd7e6bffef9597466a98bfca80a3056c9e6320", optional = true } -seahash = { version = "4.0.1", optional = true } -semver = { version = "0.11.0", features = ["serde"], optional = true } -snafu = { version = "0.6.10", features = ["futures", "futures-01"] } -snap = { version = "1.0.3", optional = true } -socket2 = { version = "0.3.19", optional = true } -stream-cancel = "0.6.2" -strip-ansi-escapes = "0.1.0" -structopt = "0.3.21" -syslog = { version = "5", optional = true } -syslog_loose = { version = "0.10.0", optional = true } -# Indirect dependency; pinning until -# https://github.com/timberio/vector/issues/6005 is resolved -thread_local = "=1.0.1" -tokio-postgres = { version = "0.5.5", features = ["runtime", "with-chrono-0_4"], optional = true } -toml = "0.5.8" -typetag = "0.1.6" -url = "2.2.0" -uuid = { version = "0.8", features = ["serde", "v4"], optional = true } -warp = { version = "0.2.5", default-features = false, optional = true } - -# For WASM -async-stream = "0.3.0" -lucet-runtime = { git = "https://github.com/bytecodealliance/lucet.git", rev = "b1863dacc8c92c11e5434fc8815d9b9a26cfe3db", optional = true } -lucet-wasi = { git = "https://github.com/bytecodealliance/lucet.git", rev = "b1863dacc8c92c11e5434fc8815d9b9a26cfe3db", optional = true } -lucetc = { git = "https://github.com/bytecodealliance/lucet.git", rev = "b1863dacc8c92c11e5434fc8815d9b9a26cfe3db", optional = true } -vector-wasm = { path = "lib/vector-wasm", optional = true } +arc-swap = { version = "1.7", default-features = false, optional = true } +async-compression = { version = "0.4.18", default-features = false, features = ["tokio", "gzip", "zstd"], optional = true } +apache-avro = { version = "0.16.0", default-features = false, optional = true } +axum = { version = "0.6.20", default-features = false } +base64 = { version = "0.22.1", default-features = false, optional = true } +bloomy = { version = "1.2.0", default-features = false, optional = true } +bollard = { version = "0.16.1", default-features = false, features = ["ssl", "chrono"], optional = true } +bytes = { version = "1.10.0", default-features = false, features = ["serde"] } +bytesize = { version = "1.3.0", default-features = false } +chrono.workspace = true +chrono-tz.workspace = true +colored = { version = "3.0.0", default-features = false } +csv = { version = "1.3", default-features = false } +databend-client = { version = "0.22.2", default-features = false, features = ["rustls"], optional = true } +derivative = { version = "2.2.0", default-features = false } +dirs-next = { version = "2.0.0", default-features = false, optional = true } +dyn-clone = { version = "1.0.18", default-features = false } +encoding_rs = { version = "0.8.35", default-features = false, features = ["serde"] } +enum_dispatch = { version = "0.3.13", default-features = false } +evmap = { version = "10.0.2", default-features = false, optional = true } +evmap-derive = { version = "0.2.0", default-features = false, optional = true } +exitcode = { version = "1.1.2", default-features = false } +flate2.workspace = true +futures-util = { version = "0.3.29", default-features = false } +glob.workspace = true +governor = { version = "0.7.0", default-features = false, features = ["dashmap", "jitter", "std"], optional = true } +h2 = { version = "0.4.7", default-features = false, optional = true } +hash_hasher = { version = "2.0.0", default-features = false } +hashbrown = { version = "0.14.5", default-features = false, optional = true, features = ["ahash"] } +headers = { version = "0.3.9", default-features = false } +hostname = { version = "0.4.0", default-features = false } +http = { version = "0.2.9", default-features = false } +http-1 = { package = "http", version = "1.0", default-features = false, features = ["std"] } +http-serde = "1.1.3" +http-body = { version = "0.4.5", default-features = false } +hyper = { version = "0.14.28", default-features = false, features = ["client", "runtime", "http1", "http2", "server", "stream"] } +hyper-openssl = { version = "0.9.2", default-features = false } +hyper-proxy = { version = "0.9.1", default-features = false, features = ["openssl-tls"] } +indexmap.workspace = true +indoc = { version = "2.0.5", default-features = false } +inventory = { version = "0.3.19", default-features = false } +ipnet = { version = "2", default-features = false, optional = true, features = ["serde", "std"] } +itertools = { version = "0.14.0", default-features = false, optional = false, features = ["use_alloc"] } +k8s-openapi = { version = "0.22.0", default-features = false, features = ["v1_26"], optional = true } +kube = { version = "0.93.0", default-features = false, features = ["client", "openssl-tls", "runtime"], optional = true } +listenfd = { version = "1.0.2", default-features = false, optional = true } +lru = { version = "0.13.0", default-features = false, optional = true } +maxminddb = { version = "0.25.0", default-features = false, optional = true, features = ["simdutf8"] } +md-5 = { version = "0.10", default-features = false, optional = true } +mongodb = { version = "2.8.2", default-features = false, features = ["tokio-runtime"], optional = true } +async-nats = { version = "0.33.0", default-features = false, optional = true } +nkeys = { version = "0.4.4", default-features = false, optional = true } +nom = { version = "7.1.3", default-features = false, optional = true } +notify = { version = "8.0.0", default-features = false, features = ["macos_fsevent"] } +openssl = { version = "0.10.70", default-features = false, features = ["vendored"] } +openssl-probe = { version = "0.1.6", default-features = false } +ordered-float = { version = "4.6.0", default-features = false } +paste = "1.0.15" +percent-encoding = { version = "2.3.1", default-features = false } +postgres-openssl = { version = "0.5.1", default-features = false, features = ["runtime"], optional = true } +pulsar = { version = "6.3.0", default-features = false, features = ["tokio-runtime", "auth-oauth2", "flate2", "lz4", "snap", "zstd"], optional = true } +rand.workspace = true +rand_distr = { version = "0.4.3", default-features = false } +rdkafka = { version = "0.37.0", default-features = false, features = ["curl-static", "tokio", "libz", "ssl", "zstd"], optional = true } +redis = { version = "0.24.0", default-features = false, features = ["connection-manager", "tokio-comp", "tokio-native-tls-comp"], optional = true } +regex = { version = "1.11.1", default-features = false, features = ["std", "perf"] } +roaring = { version = "0.10.10", default-features = false, features = ["std"], optional = true } +rumqttc = { version = "0.24.0", default-features = false, features = ["use-rustls"], optional = true } +seahash = { version = "4.1.0", default-features = false } +smallvec = { version = "1", default-features = false, features = ["union", "serde"] } +snap = { version = "1.1.1", default-features = false } +socket2 = { version = "0.5.8", default-features = false } +stream-cancel = { version = "0.8.2", default-features = false } +strip-ansi-escapes = { version = "0.2.1", default-features = false } +syslog = { version = "6.1.1", default-features = false, optional = true } +tikv-jemallocator = { version = "0.6.0", default-features = false, features = ["unprefixed_malloc_on_supported_platforms"], optional = true } +tokio-postgres = { version = "0.7.13", default-features = false, features = ["runtime", "with-chrono-0_4"], optional = true } +tokio-tungstenite = { version = "0.20.1", default-features = false, features = ["connect"], optional = true } +toml.workspace = true +tonic = { workspace = true, optional = true } +hickory-proto = { workspace = true, optional = true } +thread_local = { version = "1.1.8", default-features = false, optional = true } +typetag = { version = "0.2.19", default-features = false } +url = { version = "2.5.4", default-features = false, features = ["serde"] } +warp = { version = "0.3.7", default-features = false } +zstd = { version = "0.13.0", default-features = false } +arr_macro = { version = "0.2.1" } -[target.'cfg(windows)'.dependencies] -schannel = "0.1" -windows-service = "0.3.1" +# depending on fork for bumped nix dependency +# https://github.com/heim-rs/heim/pull/360 +heim = { git = "https://github.com/vectordotdev/heim.git", branch = "update-nix", default-features = false, features = ["disk"] } -[target.'cfg(target_os = "macos")'.dependencies] -security-framework = "2.0" +# make sure to update the external docs when the Lua version changes +mlua = { version = "0.10.3", default-features = false, features = ["lua54", "send", "vendored", "macros"], optional = true } +sysinfo = "0.32.1" +byteorder = "1.5.0" + +[target.'cfg(windows)'.dependencies] +windows-service = "0.7.0" [target.'cfg(unix)'.dependencies] -atty = "0.2" -nix = "0.19.0" +nix = { version = "0.26.2", default-features = false, features = ["socket", "signal"] } + +[target.'cfg(target_os = "linux")'.dependencies] +netlink-packet-utils = "0.5.2" +netlink-packet-sock-diag = "0.4.2" +netlink-packet-core = "0.7.0" +netlink-sys = { version = "0.8.7", features = ["tokio_socket"] } [build-dependencies] -prost-build = "0.6.1" -built = { version = "0.4.4", features = ["chrono", "git2"] } +prost-build = { workspace = true, optional = true } +tonic-build = { workspace = true, optional = true } +# update 'openssl_version' in website/config.toml whenever version changes +openssl-src = { version = "300", default-features = false, features = ["force-engine", "legacy"] } [dev-dependencies] -approx = "0.4.0" -assert_cmd = "1.0.2" -base64 = "0.13" -criterion = "0.3" -httpmock = "0.5.2" -libc = "0.2.80" -libz-sys = "1.1.2" -matches = "0.1.8" -pretty_assertions = "0.6.1" -reqwest = { version = "0.10.9", features = ["json"] } -rusty-fork = "0.3.0" -tempfile = "3.0.6" -tokio = { version = "0.2", features = ["test-util"] } -tokio-test = "0.2" -tokio01-test = "0.1.1" -tower-test = "0.3.0" -walkdir = "2.2.7" +approx = "0.5.1" +assert_cmd = { version = "2.0.16", default-features = false } +aws-smithy-runtime = { version = "1.7.8", default-features = false, features = ["tls-rustls"] } +azure_core = { version = "0.17", default-features = false, features = ["enable_reqwest", "azurite_workaround"] } +azure_identity = { version = "0.17", default-features = false, features = ["enable_reqwest"] } +azure_storage_blobs = { version = "0.17", default-features = false, features = ["azurite_workaround"] } +azure_storage = { version = "0.17", default-features = false } +base64 = "0.22.1" +criterion = { version = "0.5.1", features = ["html_reports", "async_tokio"] } +itertools = { version = "0.14.0", default-features = false, features = ["use_alloc"] } +libc = "0.2.167" +similar-asserts = "1.6.1" +proptest.workspace = true +quickcheck = "1.0.3" +reqwest = { version = "0.11", features = ["json"] } +rstest = { version = "0.24.0" } +tempfile = "3.17.0" +test-generator = "0.3.1" +tokio = { version = "1.43.0", features = ["test-util"] } +tokio-test = "0.4.4" +tower-test = "0.4.0" +vector-lib = { workspace = true, features = ["test"] } +vrl.workspace = true + +wiremock = "0.6.2" +zstd = { version = "0.13.0", default-features = false } + +[patch.crates-io] +# 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", branch = "tokio-util-0.7.13-framed-read-continue-on-error" } +nix = { git = "https://github.com/vectordotdev/nix.git", branch = "memfd/gnu/musl" } +# The `heim` crates depend on `ntapi` 0.3.7 on Windows, but that version has an +# unaligned access bug fixed in the following revision. +ntapi = { git = "https://github.com/MSxDOS/ntapi.git", rev = "24fc1e47677fc9f6e38e5f154e6011dc9b270da6" } [features] # Default features for *-unknown-linux-gnu and *-apple-darwin -default = ["api", "api-client", "leveldb", "rdkafka-plain", "sinks", "sources", "transforms", "unix", "vendor-all", "vrl-cli"] +default = ["api", "api-client", "enrichment-tables", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi-vendored", "secrets"] +# Default features for `cargo docs`. The same as `default` but without `rdkafka?/gssapi-vendored` which would require installing libsasl in our doc build environment. +docs = ["api", "api-client", "enrichment-tables", "sinks", "sources", "sources-dnstap", "transforms", "unix", "secrets"] # Default features for *-unknown-linux-* which make use of `cmake` for dependencies -default-cmake = ["api", "api-client", "leveldb", "rdkafka-cmake", "sinks", "sources", "transforms", "unix", "vendor-all", "vrl-cli"] +default-cmake = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi-vendored", "secrets"] # Default features for *-pc-windows-msvc -# TODO: Enable SASL https://github.com/timberio/vector/pull/3081#issuecomment-659298042 -default-msvc = ["api", "api-client", "leveldb", "rdkafka-cmake", "sinks", "sources", "transforms", "vendor-libz", "vendor-openssl", "vrl-cli"] -default-musl = ["api", "api-client", "leveldb", "rdkafka-cmake", "sinks", "sources", "transforms", "unix", "vendor-all", "vrl-cli"] -default-no-api-client = ["api", "leveldb", "rdkafka-plain", "sinks", "sources", "transforms", "unix", "vendor-all", "vrl-cli"] -default-no-vrl-cli = ["api", "leveldb", "rdkafka-plain", "sinks", "sources", "transforms", "unix", "vendor-all"] -docs = ["api", "sinks", "sources", "transforms"] - -all-logs = ["sinks-logs", "sources-logs", "transforms-logs"] +# TODO: Enable SASL https://github.com/vectordotdev/vector/pull/3081#issuecomment-659298042 +default-msvc = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "transforms", "secrets"] +default-musl = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi-vendored", "secrets"] +default-no-api-client = ["api", "enrichment-tables", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi-vendored", "secrets"] +default-no-vrl-cli = ["api", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi-vendored", "secrets"] +tokio-console = ["dep:console-subscriber", "tokio/tracing"] + +# Enables the binary secret-backend-example +secret-backend-example = ["transforms"] + +all-logs = ["sinks-logs", "sources-logs", "sources-dnstap", "transforms-logs"] all-metrics = ["sinks-metrics", "sources-metrics", "transforms-metrics"] # Target specific release features. # The `make` tasks will select this according to the appropriate triple. # Use this section to turn off or on specific features for specific triples. -target-aarch64-unknown-linux-gnu = ["api", "api-client", "leveldb", "rdkafka-cmake", "sinks", "sources", "transforms", "unix", "vendor-libz", "vendor-openssl"] -target-aarch64-unknown-linux-musl = ["api", "api-client", "leveldb", "rdkafka-cmake", "sinks", "sources", "transforms", "unix", "vendor-libz", "vendor-openssl"] -# TODO: Enable leveldb here for armv7-unknown-linux-musleabihf -target-armv7-unknown-linux-gnueabihf = ["api", "api-client", "leveldb", "rdkafka-cmake", "sinks", "sources", "transforms", "unix", "vendor-libz", "vendor-openssl"] -target-armv7-unknown-linux-musleabihf = ["api", "api-client", "rdkafka-cmake", "sinks", "sources", "transforms", "vendor-libz", "vendor-openssl"] -target-x86_64-unknown-linux-gnu = ["api", "api-client", "leveldb", "rdkafka-cmake", "sinks", "sources", "transforms", "unix", "vendor-all"] -target-x86_64-unknown-linux-musl = ["api", "api-client", "leveldb", "rdkafka-cmake", "sinks", "sources", "transforms", "unix", "vendor-libz", "vendor-openssl"] - -# Enables `rdkafka` dependency. -# This feature is more portable, but requires `cmake` as build dependency. Use it if `rdkafka-plain` doesn't work. -# The `sasl` feature has to be added because of the limitations of `librdkafka` build scripts for `cmake`. -rdkafka-cmake = ["rdkafka", "rdkafka/cmake_build"] -# This feature is less portable, but doesn't require `cmake` as build dependency -rdkafka-plain = ["rdkafka"] -rusoto = ["rusoto_core", "rusoto_credential", "rusoto_signature", "rusoto_sts"] -sasl = ["rdkafka/gssapi"] +target-aarch64-unknown-linux-gnu = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "sources-dnstap", "transforms", "unix", "secrets"] +target-aarch64-unknown-linux-musl = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "sources-dnstap", "transforms", "unix", "secrets"] +target-armv7-unknown-linux-gnueabihf = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "sources-dnstap", "transforms", "unix", "secrets"] +target-armv7-unknown-linux-musleabihf = ["api", "api-client", "rdkafka?/cmake_build", "enrichment-tables", "sinks", "sources", "sources-dnstap", "transforms", "secrets"] +target-arm-unknown-linux-gnueabi = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "sources-dnstap", "transforms", "unix", "secrets"] +target-arm-unknown-linux-musleabi = ["api", "api-client", "rdkafka?/cmake_build", "enrichment-tables", "sinks", "sources", "sources-dnstap", "transforms", "secrets"] +target-x86_64-unknown-linux-gnu = ["api", "api-client", "rdkafka?/cmake_build", "enrichment-tables", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi-vendored", "secrets"] +target-x86_64-unknown-linux-musl = ["api", "api-client", "rdkafka?/cmake_build", "enrichment-tables", "sinks", "sources", "sources-dnstap", "transforms", "unix", "secrets"] +# Does not currently build +target-powerpc64le-unknown-linux-gnu = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "sources-dnstap", "transforms", "unix", "secrets"] +# Currently doesn't build due to lack of support for 64-bit atomics +target-powerpc-unknown-linux-gnu = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "sources-dnstap", "transforms", "unix", "secrets"] + # Enables features that work only on systems providing `cfg(unix)` -unix = ["jemallocator"] -# These are **very** useful on Cross compilations! -vendor-all = ["vendor-libz", "vendor-openssl", "vendor-sasl"] -vendor-sasl = ["rdkafka/gssapi-vendored"] -vendor-openssl = ["openssl/vendored"] -vendor-libz = ["libz-sys/static"] -# This feature enables the WASM foreign module support. -wasm = ["lucet-runtime", "lucet-wasi", "lucetc", "vector-wasm"] +unix = ["tikv-jemallocator", "allocation-tracing"] +allocation-tracing = [] # Enables kubernetes dependencies and shared code. Kubernetes-related sources, # transforms and sinks should depend on this feature. -kubernetes = ["evmap", "k8s-openapi"] +kubernetes = ["dep:k8s-openapi", "dep:kube"] + +docker = ["dep:bollard", "dep:dirs-next"] # API api = [ - "async-graphql", - "async-graphql-warp", - "base64", - "itertools", + "dep:async-graphql", + "dep:async-graphql-warp", + "dep:base64", + "vector-lib/api", ] # API client api-client = [ - "crossterm", - "num-format", - "number_prefix", - "tui", - "vector-api-client", + "dep:crossterm", + "dep:num-format", + "dep:number_prefix", + "dep:ratatui", + "vector-lib/api", + "vector-lib/api-client", +] + +aws-core = [ + "aws-config", + "dep:aws-credential-types", + "dep:aws-sigv4", + "dep:aws-types", + "dep:aws-smithy-async", + "dep:aws-smithy-http", + "dep:aws-smithy-types", + "dep:aws-smithy-runtime", + "dep:aws-smithy-runtime-api", + "dep:aws-sdk-sts", ] +# Anything that requires Protocol Buffers. +protobuf-build = ["dep:tonic-build", "dep:prost-build"] + +gcp = ["dep:base64", "dep:goauth", "dep:smpl_jwt"] + +# Enrichment Tables +enrichment-tables = ["enrichment-tables-geoip", "enrichment-tables-mmdb", "enrichment-tables-memory"] +enrichment-tables-geoip = ["dep:maxminddb"] +enrichment-tables-mmdb = ["dep:maxminddb"] +enrichment-tables-memory = ["dep:evmap", "dep:evmap-derive", "dep:thread_local"] + +# Codecs +codecs-syslog = ["vector-lib/syslog"] + +# Secrets +secrets = ["secrets-aws-secrets-manager"] + +secrets-aws-secrets-manager = ["aws-core", "dep:aws-sdk-secretsmanager"] + # Sources sources = ["sources-logs", "sources-metrics"] sources-logs = [ + "sources-amqp", "sources-aws_kinesis_firehose", "sources-aws_s3", + "sources-aws_sqs", + "sources-datadog_agent", + "sources-demo_logs", "sources-docker_logs", + "sources-exec", "sources-file", - "sources-generator", + "sources-fluent", + "sources-gcp_pubsub", "sources-heroku_logs", - "sources-http", + "sources-http_server", + "sources-http_client", "sources-internal_logs", "sources-journald", "sources-kafka", - "sources-kubernetes-logs", + "sources-kubernetes_logs", + "sources-logstash", + "sources-nats", + "sources-opentelemetry", + "sources-pulsar", + "sources-file_descriptor", + "sources-redis", "sources-socket", "sources-splunk_hec", "sources-stdin", @@ -350,229 +578,294 @@ sources-logs = [ "sources-vector", ] sources-metrics = [ + "dep:prost", "sources-apache_metrics", "sources-aws_ecs_metrics", + "sources-eventstoredb_metrics", "sources-host_metrics", "sources-internal_metrics", "sources-mongodb_metrics", "sources-nginx_metrics", "sources-postgresql_metrics", "sources-prometheus", + "sources-static_metrics", "sources-statsd", "sources-vector", ] -sources-apache_metrics = [] -sources-aws_ecs_metrics = [] -sources-aws_kinesis_firehose = ["base64", "sources-utils-tls", "warp"] -sources-aws_s3 = ["rusoto", "rusoto_s3", "rusoto_sqs", "semver", "uuid"] -sources-docker_logs = ["bollard", "dirs-next"] -sources-file = ["bytesize", "file-source"] -sources-generator = ["sources-utils-fake"] -sources-heroku_logs = ["sources-utils-http"] -sources-host_metrics = ["heim"] -sources-http = ["sources-utils-http"] +sources-amqp = ["lapin"] +sources-apache_metrics = ["sources-utils-http-client"] +sources-aws_ecs_metrics = ["sources-utils-http-client"] +sources-aws_kinesis_firehose = ["dep:base64"] +sources-aws_s3 = ["aws-core", "dep:aws-sdk-sqs", "dep:aws-sdk-s3", "dep:async-compression", "sources-aws_sqs", "tokio-util/io"] +sources-aws_sqs = ["aws-core", "dep:aws-sdk-sqs"] +sources-datadog_agent = ["sources-utils-http-error", "protobuf-build", "dep:prost"] +sources-demo_logs = ["dep:fakedata"] +sources-dnstap = ["sources-utils-net-tcp", "dep:base64", "dep:hickory-proto", "dep:dnsmsg-parser", "dep:dnstap-parser", "protobuf-build", "dep:prost"] +sources-docker_logs = ["docker"] +sources-eventstoredb_metrics = [] +sources-exec = [] +sources-file = ["vector-lib/file-source"] +sources-file_descriptor = ["tokio-util/io"] +sources-fluent = ["dep:base64", "sources-utils-net-tcp", "tokio-util/net", "dep:rmpv", "dep:rmp-serde", "dep:serde_bytes"] +sources-gcp_pubsub = ["gcp", "dep:h2", "dep:prost", "dep:prost-types", "protobuf-build", "dep:tonic"] +sources-heroku_logs = ["sources-utils-http", "sources-utils-http-query", "sources-http_server"] +sources-host_metrics = ["heim/cpu", "heim/host", "heim/memory", "heim/net"] +sources-http_client = ["sources-utils-http-client"] +sources-http_server = ["sources-utils-http", "sources-utils-http-headers", "sources-utils-http-query"] sources-internal_logs = [] sources-internal_metrics = [] +sources-static_metrics = [] sources-journald = [] -sources-kafka = ["rdkafka"] -sources-kubernetes-logs = ["file-source", "kubernetes", "transforms-merge", "transforms-regex_parser"] -sources-mongodb_metrics = ["mongodb"] -sources-nginx_metrics = ["nom"] -sources-postgresql_metrics = ["postgres-openssl", "tokio-postgres"] -sources-prometheus = ["prometheus-parser", "sinks-prometheus", "sources-utils-http", "warp"] -sources-socket = ["bytesize", "listenfd", "tokio-util/udp", "sources-utils-udp", "sources-utils-tcp-keepalive", "sources-utils-tcp-socket", "sources-utils-tls", "sources-utils-unix"] -sources-splunk_hec = ["bytesize", "sources-utils-tls", "warp"] -sources-statsd = ["listenfd", "sources-utils-tcp-keepalive", "sources-utils-tcp-socket", "sources-utils-tls", "sources-utils-udp", "sources-utils-unix", "tokio-util/udp"] -sources-stdin = ["bytesize"] -sources-syslog = ["bytesize", "listenfd", "tokio-util/udp", "sources-utils-udp", "sources-utils-tcp-keepalive", "sources-utils-tcp-socket", "sources-utils-tls", "sources-utils-unix", "syslog_loose"] -sources-utils-fake = ["fakedata_generator"] -sources-utils-http = ["snap", "sources-utils-tls", "warp"] -sources-utils-tcp-keepalive = [] -sources-utils-tcp-socket = [] -sources-utils-tls = [] -sources-utils-udp = ["socket2"] -sources-utils-unix = [] -sources-vector = ["listenfd", "sources-utils-tcp-keepalive", "sources-utils-tcp-socket", "sources-utils-tls"] +sources-kafka = ["dep:rdkafka"] +sources-kubernetes_logs = ["vector-lib/file-source", "kubernetes", "transforms-reduce"] +sources-logstash = ["sources-utils-net-tcp", "tokio-util/net"] +sources-mongodb_metrics = ["dep:mongodb"] +sources-nats = ["dep:async-nats", "dep:nkeys"] +sources-nginx_metrics = ["dep:nom"] +sources-opentelemetry = ["dep:hex", "vector-lib/opentelemetry", "dep:prost", "dep:prost-types", "sources-http_server", "sources-utils-http", "sources-utils-http-headers", "sources-vector"] +sources-postgresql_metrics = ["dep:postgres-openssl", "dep:tokio-postgres"] +sources-prometheus = ["sources-prometheus-scrape", "sources-prometheus-remote-write", "sources-prometheus-pushgateway"] +sources-prometheus-scrape = ["sinks-prometheus", "sources-utils-http-client", "vector-lib/prometheus"] +sources-prometheus-remote-write = ["sinks-prometheus", "sources-utils-http", "vector-lib/prometheus"] +sources-prometheus-pushgateway = ["sinks-prometheus", "sources-utils-http", "vector-lib/prometheus"] +sources-pulsar = ["dep:apache-avro", "dep:pulsar"] +sources-redis = ["dep:redis"] +sources-socket = ["sources-utils-net", "tokio-util/net"] +sources-splunk_hec = ["dep:roaring"] +sources-statsd = ["sources-utils-net", "tokio-util/net"] +sources-stdin = ["tokio-util/io"] +sources-syslog = ["codecs-syslog", "sources-utils-net", "tokio-util/net"] +sources-utils-http = ["sources-utils-http-auth", "sources-utils-http-encoding", "sources-utils-http-error", "sources-utils-http-prelude"] +sources-utils-http-auth = ["sources-utils-http-error"] +sources-utils-http-encoding = ["sources-utils-http-error"] +sources-utils-http-error = [] +sources-utils-http-headers = [] +sources-utils-http-prelude = ["sources-utils-http", "sources-utils-http-auth", "sources-utils-http-encoding", "sources-utils-http-error"] +sources-utils-http-query = [] +sources-utils-http-client = ["sources-utils-http", "sources-http_server"] +sources-utils-net = ["sources-utils-net-tcp", "sources-utils-net-udp", "sources-utils-net-unix"] +sources-utils-net-tcp = ["listenfd", "dep:ipnet"] +sources-utils-net-udp = ["listenfd"] +sources-utils-net-unix = [] + +sources-vector = ["dep:prost", "dep:tonic", "protobuf-build"] # Transforms transforms = ["transforms-logs", "transforms-metrics"] transforms-logs = [ - "transforms-add_fields", - "transforms-ansi_stripper", - "transforms-aws_cloudwatch_logs_subscription_parser", "transforms-aws_ec2_metadata", - "transforms-coercer", - "transforms-concat", "transforms-dedupe", - "transforms-field_filter", "transforms-filter", - "transforms-geoip", - "transforms-grok_parser", - "transforms-json_parser", - "transforms-key_value_parser", "transforms-log_to_metric", - "transforms-logfmt_parser", "transforms-lua", - "transforms-merge", "transforms-metric_to_log", "transforms-reduce", - "transforms-regex_parser", "transforms-remap", - "transforms-remove_fields", - "transforms-rename_fields", "transforms-route", + "transforms-exclusive-route", "transforms-sample", - "transforms-split", - "transforms-tokenizer", + "transforms-throttle", ] transforms-metrics = [ - "transforms-add_tags", + "transforms-aggregate", "transforms-filter", "transforms-log_to_metric", "transforms-lua", "transforms-metric_to_log", "transforms-remap", - "transforms-remove_tags", "transforms-tag_cardinality_limit", + "transforms-throttle", ] -transforms-add_fields = [] -transforms-add_tags = [] -transforms-ansi_stripper = [] -transforms-aws_cloudwatch_logs_subscription_parser= [] -transforms-aws_ec2_metadata = ["evmap"] -transforms-coercer = [] -transforms-concat = [] -transforms-dedupe = ["lru"] -transforms-field_filter = [] +transforms-aggregate = [] +transforms-aws_ec2_metadata = ["dep:arc-swap"] +transforms-dedupe = ["transforms-impl-dedupe"] transforms-filter = [] -transforms-geoip = ["maxminddb"] -transforms-grok_parser = ["grok"] -transforms-json_parser = [] -transforms-key_value_parser = [] transforms-log_to_metric = [] -transforms-logfmt_parser = ["logfmt"] -transforms-lua = ["rlua"] -transforms-merge = [] +transforms-lua = ["dep:mlua", "vector-lib/lua"] transforms-metric_to_log = [] -transforms-reduce = [] -transforms-regex_parser = [] +transforms-reduce = ["transforms-impl-reduce"] transforms-remap = [] -transforms-remove_fields = [] -transforms-remove_tags = [] -transforms-rename_fields = [] transforms-route = [] -transforms-sample = ["seahash"] -transforms-split = [] -transforms-tag_cardinality_limit = ["bloom"] -transforms-tokenizer = [] -transforms-wasm = ["wasm"] +transforms-exclusive-route = [] +transforms-sample = ["transforms-impl-sample"] +transforms-tag_cardinality_limit = ["dep:bloomy", "dep:hashbrown"] +transforms-throttle = ["dep:governor"] + +# Implementations of transforms +transforms-impl-sample = [] +transforms-impl-dedupe = ["dep:lru"] +transforms-impl-reduce = [] # Sinks sinks = ["sinks-logs", "sinks-metrics"] sinks-logs = [ + "sinks-amqp", + "sinks-appsignal", "sinks-aws_cloudwatch_logs", "sinks-aws_kinesis_firehose", "sinks-aws_kinesis_streams", "sinks-aws_s3", + "sinks-aws_sns", "sinks-aws_sqs", + "sinks-axiom", + "sinks-azure_blob", "sinks-azure_monitor_logs", "sinks-blackhole", + "sinks-chronicle", "sinks-clickhouse", "sinks-console", - "sinks-datadog", + "sinks-databend", + "sinks-datadog_events", + "sinks-datadog_logs", + "sinks-datadog_traces", "sinks-elasticsearch", "sinks-file", "sinks-gcp", + "sinks-greptimedb_logs", "sinks-honeycomb", "sinks-http", "sinks-humio", "sinks-influxdb", "sinks-kafka", - "sinks-logdna", + "sinks-keep", "sinks-loki", + "sinks-mezmo", + "sinks-mqtt", "sinks-nats", + "sinks-new_relic", "sinks-new_relic_logs", + "sinks-opentelemetry", "sinks-papertrail", "sinks-pulsar", + "sinks-redis", "sinks-sematext", "sinks-socket", "sinks-splunk_hec", - "sinks-vector" + "sinks-vector", + "sinks-webhdfs", + "sinks-websocket", + "sinks-websocket-server", ] sinks-metrics = [ + "sinks-appsignal", "sinks-aws_cloudwatch_metrics", "sinks-blackhole", "sinks-console", - "sinks-datadog", + "sinks-datadog_metrics", + "sinks-greptimedb_metrics", "sinks-humio", "sinks-influxdb", "sinks-kafka", "sinks-prometheus", "sinks-sematext", "sinks-statsd", - "sinks-vector" + "sinks-vector", + "sinks-splunk_hec" ] -sinks-aws_cloudwatch_logs = ["rusoto", "rusoto_logs"] -sinks-aws_cloudwatch_metrics = ["rusoto", "rusoto_cloudwatch"] -sinks-aws_kinesis_firehose = ["rusoto", "rusoto_firehose"] -sinks-aws_kinesis_streams = ["rusoto", "rusoto_kinesis"] -sinks-aws_s3 = ["bytesize", "rusoto", "rusoto_s3", "uuid"] -sinks-aws_sqs = ["rusoto", "rusoto_sqs"] -sinks-azure_monitor_logs = ["bytesize"] +sinks-amqp = ["lapin"] +sinks-appsignal = [] +sinks-aws_cloudwatch_logs = ["aws-core", "dep:aws-sdk-cloudwatchlogs", "dep:aws-sdk-kms"] +sinks-aws_cloudwatch_metrics = ["aws-core", "dep:aws-sdk-cloudwatch"] +sinks-aws_kinesis_firehose = ["aws-core", "dep:aws-sdk-firehose"] +sinks-aws_kinesis_streams = ["aws-core", "dep:aws-sdk-kinesis"] +sinks-aws_s3 = ["dep:base64", "dep:md-5", "aws-core", "dep:aws-sdk-s3"] +sinks-aws_sqs = ["aws-core", "dep:aws-sdk-sqs"] +sinks-aws_sns = ["aws-core", "dep:aws-sdk-sns"] +sinks-axiom = ["sinks-http"] +sinks-azure_blob = ["dep:azure_core", "dep:azure_identity", "dep:azure_storage", "dep:azure_storage_blobs"] +sinks-azure_monitor_logs = [] sinks-blackhole = [] -sinks-clickhouse = ["bytesize"] +sinks-chronicle = [] +sinks-clickhouse = [] sinks-console = [] -sinks-datadog = ["bytesize"] -sinks-elasticsearch = ["bytesize", "rusoto"] -sinks-file = [] -sinks-gcp = ["base64", "bytesize", "goauth", "smpl_jwt", "uuid"] -sinks-honeycomb = ["bytesize"] -sinks-http = ["bytesize"] +sinks-databend = ["dep:databend-client"] +sinks-datadog_events = [] +sinks-datadog_logs = [] +sinks-datadog_metrics = ["protobuf-build", "dep:prost", "dep:prost-reflect"] +sinks-datadog_traces = ["protobuf-build", "dep:prost", "dep:rmpv", "dep:rmp-serde", "dep:serde_bytes"] +sinks-elasticsearch = ["transforms-metric_to_log"] +sinks-file = ["dep:async-compression"] +sinks-gcp = ["sinks-gcp-chronicle", "dep:base64", "gcp"] +sinks-gcp-chronicle = ["gcp"] +sinks-greptimedb_metrics = ["dep:greptimedb-ingester"] +sinks-greptimedb_logs = ["dep:greptimedb-ingester"] +sinks-honeycomb = [] +sinks-http = [] sinks-humio = ["sinks-splunk_hec", "transforms-metric_to_log"] -sinks-influxdb = ["bytesize"] -sinks-kafka = [] -sinks-logdna = ["bytesize"] -sinks-loki = ["bytesize", "uuid"] -sinks-nats = ["nats"] -sinks-new_relic_logs = ["bytesize", "sinks-http"] -sinks-papertrail = ["syslog"] -sinks-prometheus = ["prometheus-parser", "snap", "sources-utils-tls"] -sinks-pulsar = ["avro-rs", "pulsar"] +sinks-influxdb = [] +sinks-kafka = ["dep:rdkafka"] +sinks-keep = [] +sinks-mezmo = [] +sinks-loki = ["loki-logproto"] +sinks-mqtt = ["dep:rumqttc"] +sinks-nats = ["dep:async-nats", "dep:nkeys"] +sinks-new_relic_logs = ["sinks-http"] +sinks-new_relic = [] +sinks-opentelemetry = ["sinks-http"] +sinks-papertrail = ["dep:syslog"] +sinks-prometheus = ["dep:base64", "dep:prost", "vector-lib/prometheus"] +sinks-pulsar = ["dep:apache-avro", "dep:pulsar", "dep:lru"] +sinks-redis = ["dep:redis"] sinks-sematext = ["sinks-elasticsearch", "sinks-influxdb"] sinks-socket = ["sinks-utils-udp"] -sinks-splunk_hec = ["bytesize"] -sinks-statsd = ["sinks-utils-udp", "tokio-util/udp"] -sinks-utils-udp = ["socket2"] -sinks-vector = ["sinks-utils-udp"] +sinks-splunk_hec = [] +sinks-statsd = ["sinks-utils-udp", "tokio-util/net"] +sinks-utils-udp = [] +sinks-vector = ["sinks-utils-udp", "dep:tonic", "protobuf-build", "dep:prost"] +sinks-websocket = ["dep:tokio-tungstenite"] +sinks-websocket-server = ["dep:tokio-tungstenite", "sources-utils-http-auth", "sources-utils-http-error", "sources-utils-http-prelude"] +sinks-webhdfs = ["dep:opendal"] # Identifies that the build is a nightly build nightly = [] -# Testing-related features +# Integration testing-related features all-integration-tests = [ + "amqp-integration-tests", + "appsignal-integration-tests", "aws-integration-tests", + "axiom-integration-tests", + "azure-integration-tests", + "chronicle-integration-tests", "clickhouse-integration-tests", + "databend-integration-tests", + "datadog-agent-integration-tests", + "datadog-logs-integration-tests", + "datadog-metrics-integration-tests", + "datadog-traces-integration-tests", + "dnstap-integration-tests", "docker-logs-integration-tests", "es-integration-tests", + "eventstoredb_metrics-integration-tests", + "fluent-integration-tests", "gcp-cloud-storage-integration-tests", "gcp-integration-tests", "gcp-pubsub-integration-tests", + "greptimedb-integration-tests", + "http-client-integration-tests", "humio-integration-tests", "influxdb-integration-tests", "kafka-integration-tests", + "logstash-integration-tests", "loki-integration-tests", "mongodb_metrics-integration-tests", "nats-integration-tests", "nginx-integration-tests", + "opentelemetry-integration-tests", "postgresql_metrics-integration-tests", "prometheus-integration-tests", "pulsar-integration-tests", + "redis-integration-tests", "splunk-integration-tests", + "webhdfs-integration-tests", ] +amqp-integration-tests = ["sources-amqp", "sinks-amqp"] +appsignal-integration-tests = ["sinks-appsignal"] + aws-integration-tests = [ "aws-cloudwatch-logs-integration-tests", "aws-cloudwatch-metrics-integration-tests", @@ -582,45 +875,125 @@ aws-integration-tests = [ "aws-kinesis-streams-integration-tests", "aws-s3-integration-tests", "aws-sqs-integration-tests", + "aws-sns-integration-tests", +] + +azure-integration-tests = [ + "azure-blob-integration-tests" ] aws-cloudwatch-logs-integration-tests = ["sinks-aws_cloudwatch_logs"] aws-cloudwatch-metrics-integration-tests = ["sinks-aws_cloudwatch_metrics"] aws-ec2-metadata-integration-tests = ["transforms-aws_ec2_metadata"] aws-ecs-metrics-integration-tests = ["sources-aws_ecs_metrics"] -aws-kinesis-firehose-integration-tests = ["rusoto_es", "sinks-aws_kinesis_firehose", "sinks-elasticsearch"] +aws-kinesis-firehose-integration-tests = ["sinks-aws_kinesis_firehose", "dep:aws-sdk-elasticsearch", "sinks-elasticsearch"] aws-kinesis-streams-integration-tests = ["sinks-aws_kinesis_streams"] aws-s3-integration-tests = ["sinks-aws_s3", "sources-aws_s3"] aws-sqs-integration-tests = ["sinks-aws_sqs"] -clickhouse-integration-tests = ["sinks-clickhouse", "warp"] +aws-sns-integration-tests = ["sinks-aws_sns"] +axiom-integration-tests = ["sinks-axiom"] +azure-blob-integration-tests = ["sinks-azure_blob"] +chronicle-integration-tests = ["sinks-gcp"] +clickhouse-integration-tests = ["sinks-clickhouse"] +databend-integration-tests = ["sinks-databend"] +datadog-agent-integration-tests = ["sources-datadog_agent"] +datadog-logs-integration-tests = ["sinks-datadog_logs"] +datadog-metrics-integration-tests = ["sinks-datadog_metrics", "dep:prost"] +datadog-traces-integration-tests = ["sources-datadog_agent", "sinks-datadog_traces", "axum/tokio"] docker-logs-integration-tests = ["sources-docker_logs", "unix"] -es-integration-tests = ["sinks-elasticsearch"] +es-integration-tests = ["sinks-elasticsearch", "aws-core"] +eventstoredb_metrics-integration-tests = ["sources-eventstoredb_metrics"] +fluent-integration-tests = ["docker", "sources-fluent"] gcp-cloud-storage-integration-tests = ["sinks-gcp"] gcp-integration-tests = ["sinks-gcp"] -gcp-pubsub-integration-tests = ["sinks-gcp"] +gcp-pubsub-integration-tests = ["sinks-gcp", "sources-gcp_pubsub"] +greptimedb-integration-tests = ["sinks-greptimedb_metrics", "sinks-greptimedb_logs"] humio-integration-tests = ["sinks-humio"] +http-client-integration-tests = ["sources-http_client"] influxdb-integration-tests = ["sinks-influxdb"] kafka-integration-tests = ["sinks-kafka", "sources-kafka"] +logstash-integration-tests = ["docker", "sources-logstash"] loki-integration-tests = ["sinks-loki"] mongodb_metrics-integration-tests = ["sources-mongodb_metrics"] -nats-integration-tests = ["sinks-nats"] +mqtt-integration-tests = ["sinks-mqtt"] +nats-integration-tests = ["sinks-nats", "sources-nats"] nginx-integration-tests = ["sources-nginx_metrics"] +opentelemetry-integration-tests = ["sources-opentelemetry", "dep:prost"] postgresql_metrics-integration-tests = ["sources-postgresql_metrics"] -prometheus-integration-tests = ["bytesize", "sinks-prometheus", "sources-prometheus"] -pulsar-integration-tests = ["sinks-pulsar"] -splunk-integration-tests = ["sinks-splunk_hec", "warp"] - +prometheus-integration-tests = ["sinks-prometheus", "sources-prometheus", "sinks-influxdb"] +pulsar-integration-tests = ["sinks-pulsar", "sources-pulsar"] +redis-integration-tests = ["sinks-redis", "sources-redis"] +splunk-integration-tests = ["sinks-splunk_hec"] +dnstap-integration-tests = ["sources-dnstap", "dep:bollard"] +webhdfs-integration-tests = ["sinks-webhdfs"] disable-resolv-conf = [] -shutdown-tests = ["rdkafka", "sinks-blackhole", "sinks-console", "sinks-prometheus", "sources", "transforms-log_to_metric", "transforms-lua", "unix"] +shutdown-tests = ["api", "sinks-blackhole", "sinks-console", "sinks-prometheus", "sources", "transforms-lua", "transforms-remap", "unix"] +cli-tests = ["sinks-blackhole", "sinks-socket", "sources-demo_logs", "sources-file"] +test-utils = [] + +# End-to-End testing-related features +all-e2e-tests = [ + "e2e-tests-datadog" +] + +e2e-tests-datadog = [ + "sources-datadog_agent", + "sinks-datadog_logs", + "sinks-datadog_metrics", + "dep:async-compression" +] + +vector-api-tests = [ + "sources-demo_logs", + "transforms-log_to_metric", + "transforms-remap", + "sinks-blackhole" +] +vector-unit-test-tests = [ + "sources-demo_logs", + "transforms-remap", + "transforms-route", + "transforms-filter", + "transforms-reduce", + "sinks-console" +] -# grouping together features for benchmarks -# excluing API client due to running out of memory during linking in Github Actions -benches = ["leveldb", "rdkafka-plain", "sinks", "sources", "transforms", "unix", "vendor-all"] -language-benches = ["sinks-socket", "sources-socket", "transforms-add_fields", "transforms-json_parser", "transforms-lua", "transforms-regex_parser", "transforms-remap", "transforms-wasm"] +component-validation-runner = ["dep:tonic", "sources-internal_logs", "sources-internal_metrics", "sources-vector", "sinks-vector"] +# For now, only include components that implement ValidatableComponent. +# In the future, this can change to simply reference the targets `sources`, `transforms`, `sinks` +component-validation-tests = [ + "component-validation-runner", + "sources-http_client", + "sources-http_server", + "sinks-http", + "sinks-splunk_hec", + "sources-splunk_hec", + "sinks-datadog_logs", + "sources-datadog_agent", +] + +# Grouping together features for benchmarks. We exclude the API client due to it causing the build process to run out +# of memory when those additional dependencies are built in CI. +benches = [ + "sinks-file", + "sinks-http", + "sinks-socket", + "sources-file", + "sources-socket", + "sources-syslog", + "transforms-lua", + "transforms-sample", +] +dnstap-benches = ["sources-dnstap"] +language-benches = ["sinks-socket", "sources-socket", "transforms-lua", "transforms-remap"] # Separate benching process for metrics due to the nature of the bootstrap procedures. -metrics-benches = ["sinks-socket", "sources-socket"] -remap-benches = ["transforms-add_fields", "transforms-coercer", "transforms-json_parser", "transforms-remap"] -wasm-benches = ["transforms-add_fields", "transforms-field_filter", "transforms-lua", "transforms-remap", "transforms-wasm"] +statistic-benches = [] +remap-benches = ["transforms-remap"] +transform-benches = ["transforms-filter", "transforms-dedupe", "transforms-reduce", "transforms-route"] +codecs-benches = [] +loki-benches = ["sinks-loki"] +enrichment-tables-benches = ["enrichment-tables-geoip", "enrichment-tables-mmdb", "enrichment-tables-memory"] +proptest = ["dep:proptest", "dep:proptest-derive", "vrl/proptest"] [[bench]] name = "default" @@ -628,39 +1001,45 @@ harness = false required-features = ["benches"] [[bench]] -name = "wasm" -path = "benches/wasm/mod.rs" +name = "dnstap" +path = "benches/dnstap/mod.rs" harness = false -required-features = ["wasm-benches"] +required-features = ["dnstap-benches"] [[bench]] name = "remap" harness = false required-features = ["remap-benches"] +[[bench]] +name = "enrichment_tables" +harness = false +required-features = ["enrichment-tables-benches"] + [[bench]] name = "languages" harness = false required-features = ["language-benches"] [[bench]] -name = "metrics_on" +name = "loki" harness = false -required-features = ["metrics-benches"] +required-features = ["loki-benches"] [[bench]] -name = "metrics_no_tracing_integration" +name = "distribution_statistic" harness = false -required-features = ["metrics-benches"] +required-features = ["statistic-benches"] [[bench]] -name = "metrics_off" +name = "transform" +path = "benches/transform/main.rs" harness = false -required-features = ["metrics-benches"] - -[patch.'https://github.com/tower-rs/tower'] -tower-layer = "=0.3.0" +test = false +required-features = ["transform-benches"] -[patch.crates-io] -# TODO: update to the next 0.13.x (after 0.13.10, if any) or 0.14 (or higher) -hyper = { version = "0.13", git = "https://github.com/hyperium/hyper", rev = "d7495a75abca34646b1d6d047589c1b8110d0fa5" } +[[bench]] +name = "codecs" +path = "benches/codecs/main.rs" +harness = false +required-features = ["codecs-benches"] diff --git a/Cross.toml b/Cross.toml index 29582a41f7eda..96e97d7ff64dc 100644 --- a/Cross.toml +++ b/Cross.toml @@ -1,7 +1,14 @@ [build.env] passthrough = [ + "BUILD_DIR", + "CARGO_INCREMENTAL", + "CARGO_PROFILE_RELEASE_OPT_LEVEL", + "CARGO_PROFILE_RELEASE_CODEGEN_UNITS", "RUST_BACKTRACE", "RUST_LOG", + "VECTOR_BUILD_DESC", + "JEMALLOC_SYS_WITH_LG_PAGE", + "JEMALLOC_SYS_WITH_LG_HUGEPAGE", ] [target.x86_64-unknown-linux-gnu] @@ -15,3 +22,15 @@ image = "vector-cross-env:x86_64-unknown-linux-musl" [target.aarch64-unknown-linux-musl] image = "vector-cross-env:aarch64-unknown-linux-musl" + +[target.armv7-unknown-linux-gnueabihf] +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-3rdparty.csv b/LICENSE-3rdparty.csv new file mode 100644 index 0000000000000..6680ccc513e38 --- /dev/null +++ b/LICENSE-3rdparty.csv @@ -0,0 +1,734 @@ +Component,Origin,License,Copyright +Inflector,https://github.com/whatisinternet/inflector,BSD-2-Clause,Josh Teeter +RustyXML,https://github.com/Florob/RustyXML,MIT OR Apache-2.0,Florian Zeitz +addr2line,https://github.com/gimli-rs/addr2line,Apache-2.0 OR MIT,The addr2line Authors +adler,https://github.com/jonas-schievink/adler,0BSD OR MIT OR Apache-2.0,Jonas Schievink +adler2,https://github.com/oyvindln/adler2,0BSD OR MIT OR Apache-2.0,"Jonas Schievink , oyvindln " +adler32,https://github.com/remram44/adler32-rs,Zlib,Remi Rampin +aead,https://github.com/RustCrypto/traits,MIT OR Apache-2.0,RustCrypto Developers +aes,https://github.com/RustCrypto/block-ciphers,MIT OR Apache-2.0,RustCrypto Developers +aes-siv,https://github.com/RustCrypto/AEADs,Apache-2.0 OR MIT,RustCrypto Developers +ahash,https://github.com/tkaitchuck/ahash,MIT OR Apache-2.0,Tom Kaitchuck +aho-corasick,https://github.com/BurntSushi/aho-corasick,Unlicense OR MIT,Andrew Gallant +alloc-no-stdlib,https://github.com/dropbox/rust-alloc-no-stdlib,BSD-3-Clause,Daniel Reiter Horn +allocator-api2,https://github.com/zakarumych/allocator-api2,MIT OR Apache-2.0,Zakarum +amq-protocol,https://github.com/amqp-rs/amq-protocol,BSD-2-Clause,Marc-Antoine Perennou <%arc-Antoine@Perennou.com> +android-tzdata,https://github.com/RumovZ/android-tzdata,MIT OR Apache-2.0,RumovZ +android_system_properties,https://github.com/nical/android_system_properties,MIT OR Apache-2.0,Nicolas Silva +ansi_term,https://github.com/ogham/rust-ansi-term,MIT,"ogham@bsago.me, Ryan Scheel (Havvy) , Josh Triplett " +anstream,https://github.com/rust-cli/anstyle,MIT OR Apache-2.0,The anstream Authors +anstyle,https://github.com/rust-cli/anstyle,MIT OR Apache-2.0,The anstyle Authors +anstyle-parse,https://github.com/rust-cli/anstyle,MIT OR Apache-2.0,The anstyle-parse Authors +anstyle-query,https://github.com/rust-cli/anstyle,MIT OR Apache-2.0,The anstyle-query Authors +anstyle-wincon,https://github.com/rust-cli/anstyle,MIT OR Apache-2.0,The anstyle-wincon Authors +anyhow,https://github.com/dtolnay/anyhow,MIT OR Apache-2.0,David Tolnay +apache-avro,https://github.com/apache/avro,Apache-2.0,Apache Avro team +arbitrary,https://github.com/rust-fuzz/arbitrary,MIT OR Apache-2.0,"The Rust-Fuzz Project Developers, Nick Fitzgerald , Manish Goregaokar , Simonas Kazlauskas , Brian L. Troutwine , Corey Farwell " +arc-swap,https://github.com/vorner/arc-swap,MIT OR Apache-2.0,Michal 'vorner' Vaner +arr_macro,https://github.com/JoshMcguigan/arr_macro,MIT OR Apache-2.0,Josh Mcguigan +arrayvec,https://github.com/bluss/arrayvec,MIT OR Apache-2.0,bluss +ascii,https://github.com/tomprogrammer/rust-ascii,Apache-2.0 OR MIT,"Thomas Bahn , Torbjørn Birch Moltu , Simon Sapin " +async-broadcast,https://github.com/smol-rs/async-broadcast,MIT OR Apache-2.0,"Stjepan Glavina , Yoshua Wuyts , Zeeshan Ali Khan " +async-channel,https://github.com/smol-rs/async-channel,Apache-2.0 OR MIT,Stjepan Glavina +async-compression,https://github.com/Nullus157/async-compression,MIT OR Apache-2.0,"Wim Looman , Allen Bui " +async-executor,https://github.com/smol-rs/async-executor,Apache-2.0 OR MIT,Stjepan Glavina +async-fs,https://github.com/smol-rs/async-fs,Apache-2.0 OR MIT,Stjepan Glavina +async-global-executor,https://github.com/Keruspe/async-global-executor,Apache-2.0 OR MIT,Marc-Antoine Perennou +async-graphql,https://github.com/async-graphql/async-graphql,MIT OR Apache-2.0,"sunli , Koxiaet" +async-io,https://github.com/smol-rs/async-io,Apache-2.0 OR MIT,Stjepan Glavina +async-lock,https://github.com/smol-rs/async-lock,Apache-2.0 OR MIT,Stjepan Glavina +async-nats,https://github.com/nats-io/nats.rs,Apache-2.0,"Tomasz Pietrek , Casper Beyer " +async-net,https://github.com/smol-rs/async-net,Apache-2.0 OR MIT,Stjepan Glavina +async-process,https://github.com/smol-rs/async-process,Apache-2.0 OR MIT,Stjepan Glavina +async-reactor-trait,https://github.com/amqp-rs/reactor-trait,Apache-2.0 OR MIT,Marc-Antoine Perennou +async-recursion,https://github.com/dcchut/async-recursion,MIT OR Apache-2.0,Robert Usher <266585+dcchut@users.noreply.github.com> +async-signal,https://github.com/smol-rs/async-signal,Apache-2.0 OR MIT,John Nunley +async-stream,https://github.com/tokio-rs/async-stream,MIT,Carl Lerche +async-task,https://github.com/smol-rs/async-task,Apache-2.0 OR MIT,Stjepan Glavina +async-trait,https://github.com/dtolnay/async-trait,MIT OR Apache-2.0,David Tolnay +atomic-waker,https://github.com/smol-rs/atomic-waker,Apache-2.0 OR MIT,"Stjepan Glavina , Contributors to futures-rs" +aws-config,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-credential-types,https://github.com/smithy-lang/smithy-rs,Apache-2.0,AWS Rust SDK Team +aws-http,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-runtime,https://github.com/smithy-lang/smithy-rs,Apache-2.0,AWS Rust SDK Team +aws-sdk-cloudwatch,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-cloudwatchlogs,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-firehose,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-kinesis,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-kms,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-s3,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-secretsmanager,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-sns,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-sqs,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-sso,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-ssooidc,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sdk-sts,https://github.com/awslabs/aws-sdk-rust,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-sigv4,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , David Barsky " +aws-smithy-async,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , John DiSanti " +aws-smithy-checksums,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Zelda Hessler " +aws-smithy-eventstream,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , John DiSanti " +aws-smithy-http,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-smithy-json,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , John DiSanti " +aws-smithy-query,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , John DiSanti " +aws-smithy-runtime,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Zelda Hessler " +aws-smithy-runtime-api,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Zelda Hessler " +aws-smithy-types,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-smithy-xml,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +aws-types,https://github.com/smithy-lang/smithy-rs,Apache-2.0,"AWS Rust SDK Team , Russell Cohen " +axum,https://github.com/tokio-rs/axum,MIT,The axum Authors +axum-core,https://github.com/tokio-rs/axum,MIT,The axum-core Authors +azure_core,https://github.com/azure/azure-sdk-for-rust,MIT,Microsoft Corp. +azure_identity,https://github.com/azure/azure-sdk-for-rust,MIT,Microsoft Corp. +azure_storage,https://github.com/azure/azure-sdk-for-rust,MIT,Microsoft Corp. +azure_storage_blobs,https://github.com/azure/azure-sdk-for-rust,MIT,Microsoft Corp. +backoff,https://github.com/ihrwein/backoff,MIT OR Apache-2.0,Tibor Benke +backon,https://github.com/Xuanwo/backon,Apache-2.0,Xuanwo +backtrace,https://github.com/rust-lang/backtrace-rs,MIT OR Apache-2.0,The Rust Project Developers +base16,https://github.com/thomcc/rust-base16,CC0-1.0,Thom Chiovoloni +base16ct,https://github.com/RustCrypto/formats/tree/master/base16ct,Apache-2.0 OR MIT,RustCrypto Developers +base62,https://github.com/fbernier/base62,MIT,"François Bernier , Chai T. Rex " +base64,https://github.com/marshallpierce/rust-base64,MIT OR Apache-2.0,"Alice Maz , Marshall Pierce " +base64,https://github.com/marshallpierce/rust-base64,MIT OR Apache-2.0,Marshall Pierce +base64-simd,https://github.com/Nugine/simd,MIT,The base64-simd Authors +base64ct,https://github.com/RustCrypto/formats/tree/master/base64ct,Apache-2.0 OR MIT,RustCrypto Developers +bit-set,https://github.com/contain-rs/bit-set,Apache-2.0 OR MIT,Alexis Beingessner +bit-vec,https://github.com/contain-rs/bit-vec,Apache-2.0 OR MIT,Alexis Beingessner +bit-vec,https://github.com/contain-rs/bit-vec,MIT OR Apache-2.0,Alexis Beingessner +bitflags,https://github.com/bitflags/bitflags,MIT OR Apache-2.0,The Rust Project Developers +bitmask-enum,https://github.com/Lukas3674/rust-bitmask-enum,MIT OR Apache-2.0,Lukas3674 +bitvec,https://github.com/bitvecto-rs/bitvec,MIT,The bitvec Authors +block-buffer,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers +block-padding,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers +blocking,https://github.com/smol-rs/blocking,Apache-2.0 OR MIT,Stjepan Glavina +bloomy,https://docs.rs/bloomy/,MIT,"Aleksandr Bezobchuk , Alexis Sellier " +bollard,https://github.com/fussybeaver/bollard,Apache-2.0,Bollard contributors +borsh,https://github.com/near/borsh-rs,MIT OR Apache-2.0,Near Inc +borsh-derive,https://github.com/nearprotocol/borsh,Apache-2.0,Near Inc +brotli,https://github.com/dropbox/rust-brotli,BSD-3-Clause AND MIT,"Daniel Reiter Horn , The Brotli Authors" +brotli-decompressor,https://github.com/dropbox/rust-brotli-decompressor,BSD-3-Clause OR MIT,"Daniel Reiter Horn , The Brotli Authors" +bson,https://github.com/mongodb/bson-rust,MIT,"Y. T. Chung , Kevin Yeh , Saghm Rossi , Patrick Freed , Isabel Atkinson , Abraham Egnor " +bstr,https://github.com/BurntSushi/bstr,MIT OR Apache-2.0,Andrew Gallant +bumpalo,https://github.com/fitzgen/bumpalo,MIT OR Apache-2.0,Nick Fitzgerald +bytecheck,https://github.com/djkoloski/bytecheck,MIT,David Koloski +bytemuck,https://github.com/Lokathor/bytemuck,Zlib OR Apache-2.0 OR MIT,Lokathor +byteorder,https://github.com/BurntSushi/byteorder,Unlicense OR MIT,Andrew Gallant +bytes,https://github.com/carllerche/bytes,MIT,Carl Lerche +bytes,https://github.com/tokio-rs/bytes,MIT,"Carl Lerche , Sean McArthur " +bytes-utils,https://github.com/vorner/bytes-utils,Apache-2.0 OR MIT,Michal 'vorner' Vaner +bytesize,https://github.com/hyunsik/bytesize,Apache-2.0,Hyunsik Choi +cassowary,https://github.com/dylanede/cassowary-rs,MIT OR Apache-2.0,Dylan Ede +castaway,https://github.com/sagebind/castaway,MIT,Stephen M. Coakley +cbc,https://github.com/RustCrypto/block-modes,MIT OR Apache-2.0,RustCrypto Developers +cesu8,https://github.com/emk/cesu8-rs,Apache-2.0 OR MIT,Eric Kidd +cfb-mode,https://github.com/RustCrypto/block-modes,MIT OR Apache-2.0,RustCrypto Developers +cfg-if,https://github.com/alexcrichton/cfg-if,MIT OR Apache-2.0,Alex Crichton +chacha20,https://github.com/RustCrypto/stream-ciphers,Apache-2.0 OR MIT,RustCrypto Developers +chacha20poly1305,https://github.com/RustCrypto/AEADs/tree/master/chacha20poly1305,Apache-2.0 OR MIT,RustCrypto Developers +charset,https://github.com/hsivonen/charset,MIT OR Apache-2.0,Henri Sivonen +chrono,https://github.com/chronotope/chrono,MIT OR Apache-2.0,The chrono Authors +chrono-tz,https://github.com/chronotope/chrono-tz,MIT OR Apache-2.0,The chrono-tz Authors +ciborium,https://github.com/enarx/ciborium,Apache-2.0,Nathaniel McCallum +cidr,https://github.com/stbuehler/rust-cidr,MIT,Stefan Bühler +cidr-utils,https://github.com/magiclen/cidr-utils,MIT,Magic Len +cipher,https://github.com/RustCrypto/traits,MIT OR Apache-2.0,RustCrypto Developers +clap,https://github.com/clap-rs/clap,MIT OR Apache-2.0,The clap Authors +clap_builder,https://github.com/clap-rs/clap,MIT OR Apache-2.0,The clap_builder Authors +clap_derive,https://github.com/clap-rs/clap,MIT OR Apache-2.0,The clap_derive Authors +clap_lex,https://github.com/clap-rs/clap,MIT OR Apache-2.0,The clap_lex Authors +clipboard-win,https://github.com/DoumanAsh/clipboard-win,BSL-1.0,Douman +cmac,https://github.com/RustCrypto/MACs,MIT OR Apache-2.0,RustCrypto Developers +codespan-reporting,https://github.com/brendanzab/codespan,Apache-2.0,Brendan Zabarauskas +colorchoice,https://github.com/rust-cli/anstyle,MIT OR Apache-2.0,The colorchoice Authors +colored,https://github.com/mackwic/colored,MPL-2.0,Thomas Wickham +combine,https://github.com/Marwes/combine,MIT,Markus Westerlind +community-id,https://github.com/traceflight/rs-community-id,MIT OR Apache-2.0,Julian Wang +compact_str,https://github.com/ParkMyCar/compact_str,MIT,Parker Timmerman +concurrent-queue,https://github.com/smol-rs/concurrent-queue,Apache-2.0 OR MIT,"Stjepan Glavina , Taiki Endo , John Nunley " +const-oid,https://github.com/RustCrypto/formats/tree/master/const-oid,Apache-2.0 OR MIT,RustCrypto Developers +const_fn,https://github.com/taiki-e/const_fn,Apache-2.0 OR MIT,The const_fn Authors +convert_case,https://github.com/rutrum/convert-case,MIT,David Purdum +convert_case,https://github.com/rutrum/convert-case,MIT,rutrum +cookie-factory,https://github.com/rust-bakery/cookie-factory,MIT,"Geoffroy Couprie , Pierre Chifflier " +core-foundation,https://github.com/servo/core-foundation-rs,MIT OR Apache-2.0,The Servo Project Developers +core2,https://github.com/bbqsrc/core2,Apache-2.0 OR MIT,Brendan Molloy +cpufeatures,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers +crc,https://github.com/mrhooray/crc-rs,MIT OR Apache-2.0,"Rui Hu , Akhil Velagapudi <4@4khil.com>" +crc-catalog,https://github.com/akhilles/crc-catalog,MIT OR Apache-2.0,Akhil Velagapudi +crc32c,https://github.com/zowens/crc32c,Apache-2.0 OR MIT,Zack Owens +crc32fast,https://github.com/srijs/rust-crc32fast,MIT OR Apache-2.0,"Sam Rijs , Alex Crichton " +crossbeam-channel,https://github.com/crossbeam-rs/crossbeam,MIT OR Apache-2.0,The crossbeam-channel Authors +crossbeam-deque,https://github.com/crossbeam-rs/crossbeam,MIT OR Apache-2.0,The crossbeam-deque Authors +crossbeam-epoch,https://github.com/crossbeam-rs/crossbeam,MIT OR Apache-2.0,The crossbeam-epoch Authors +crossbeam-queue,https://github.com/crossbeam-rs/crossbeam,MIT OR Apache-2.0,The crossbeam-queue Authors +crossbeam-utils,https://github.com/crossbeam-rs/crossbeam,MIT OR Apache-2.0,The crossbeam-utils Authors +crossterm,https://github.com/crossterm-rs/crossterm,MIT,T. Post +crossterm_winapi,https://github.com/crossterm-rs/crossterm-winapi,MIT,T. Post +crunchy,https://github.com/eira-fransham/crunchy,MIT,Vurich +crypto-bigint,https://github.com/RustCrypto/crypto-bigint,Apache-2.0 OR MIT,RustCrypto Developers +crypto-common,https://github.com/RustCrypto/traits,MIT OR Apache-2.0,RustCrypto Developers +crypto_secretbox,https://github.com/RustCrypto/nacl-compat/tree/master/crypto_secretbox,Apache-2.0 OR MIT,RustCrypto Developers +csv,https://github.com/BurntSushi/rust-csv,Unlicense OR MIT,Andrew Gallant +ctr,https://github.com/RustCrypto/block-modes,MIT OR Apache-2.0,RustCrypto Developers +curl-sys,https://github.com/alexcrichton/curl-rust,MIT,Alex Crichton +curve25519-dalek,https://github.com/dalek-cryptography/curve25519-dalek/tree/main/curve25519-dalek,BSD-3-Clause,"Isis Lovecruft , Henry de Valence " +curve25519-dalek-derive,https://github.com/dalek-cryptography/curve25519-dalek,MIT OR Apache-2.0,The curve25519-dalek-derive Authors +darling,https://github.com/TedDriggs/darling,MIT,Ted Driggs +dary_heap,https://github.com/hanmertens/dary_heap,MIT OR Apache-2.0,Han Mertens +dashmap,https://github.com/xacrimon/dashmap,MIT,Acrimon +data-encoding,https://github.com/ia0/data-encoding,MIT,Julien Cretin +data-url,https://github.com/servo/rust-url,MIT OR Apache-2.0,Simon Sapin +databend-client,https://github.com/databendlabs/bendsql,Apache-2.0,Databend Authors +dbl,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers +der,https://github.com/RustCrypto/formats/tree/master/der,Apache-2.0 OR MIT,RustCrypto Developers +deranged,https://github.com/jhpratt/deranged,MIT OR Apache-2.0,Jacob Pratt +derivative,https://github.com/mcarton/rust-derivative,MIT OR Apache-2.0,mcarton +derive_arbitrary,https://github.com/rust-fuzz/arbitrary,MIT OR Apache-2.0,"The Rust-Fuzz Project Developers, Nick Fitzgerald , Manish Goregaokar , Andre Bogus , Corey Farwell " +derive_builder,https://github.com/colin-kiegel/rust-derive-builder,MIT OR Apache-2.0,"Colin Kiegel , Pascal Hertleif , Jan-Erik Rediger , Ted Driggs " +derive_builder_core,https://github.com/colin-kiegel/rust-derive-builder,MIT OR Apache-2.0,"Colin Kiegel , Pascal Hertleif , Jan-Erik Rediger , Ted Driggs " +derive_builder_macro,https://github.com/colin-kiegel/rust-derive-builder,MIT OR Apache-2.0,"Colin Kiegel , Pascal Hertleif , Jan-Erik Rediger , Ted Driggs " +derive_more,https://github.com/JelteF/derive_more,MIT,Jelte Fennema +digest,https://github.com/RustCrypto/traits,MIT OR Apache-2.0,RustCrypto Developers +dirs-next,https://github.com/xdg-rs/dirs,MIT OR Apache-2.0,The @xdg-rs members +dirs-sys-next,https://github.com/xdg-rs/dirs/tree/master/dirs-sys,MIT OR Apache-2.0,The @xdg-rs members +displaydoc,https://github.com/yaahc/displaydoc,MIT OR Apache-2.0,Jane Lusby +dns-lookup,https://github.com/keeperofdakeys/dns-lookup,MIT OR Apache-2.0,Josh Driver +doc-comment,https://github.com/GuillaumeGomez/doc-comment,MIT,Guillaume Gomez +domain,https://github.com/nlnetlabs/domain,BSD-3-Clause,NLnet Labs +dyn-clone,https://github.com/dtolnay/dyn-clone,MIT OR Apache-2.0,David Tolnay +ecdsa,https://github.com/RustCrypto/signatures/tree/master/ecdsa,Apache-2.0 OR MIT,RustCrypto Developers +ed25519,https://github.com/RustCrypto/signatures/tree/master/ed25519,Apache-2.0 OR MIT,RustCrypto Developers +ed25519-dalek,https://github.com/dalek-cryptography/ed25519-dalek,BSD-3-Clause,"isis lovecruft , Tony Arcieri , Michael Rosenberg " +either,https://github.com/bluss/either,MIT OR Apache-2.0,bluss +elliptic-curve,https://github.com/RustCrypto/traits/tree/master/elliptic-curve,Apache-2.0 OR MIT,RustCrypto Developers +encode_unicode,https://github.com/tormol/encode_unicode,Apache-2.0 OR MIT,Torbjørn Birch Moltu +encoding_rs,https://github.com/hsivonen/encoding_rs,(Apache-2.0 OR MIT) AND BSD-3-Clause,Henri Sivonen +endian-type,https://github.com/Lolirofle/endian-type,MIT,Lolirofle +enum-as-inner,https://github.com/bluejekyll/enum-as-inner,MIT OR Apache-2.0,Benjamin Fry +enum_dispatch,https://gitlab.com/antonok/enum_dispatch,MIT OR Apache-2.0,Anton Lazarev +enumflags2,https://github.com/meithecatte/enumflags2,MIT OR Apache-2.0,"maik klein , Maja Kądziołka " +env_logger,https://github.com/env-logger-rs/env_logger,MIT OR Apache-2.0,The Rust Project Developers +equivalent,https://github.com/cuviper/equivalent,Apache-2.0 OR MIT,The equivalent Authors +erased-serde,https://github.com/dtolnay/erased-serde,MIT OR Apache-2.0,David Tolnay +errno,https://github.com/lambda-fairy/rust-errno,MIT OR Apache-2.0,Chris Wong +error-chain,https://github.com/rust-lang-nursery/error-chain,MIT OR Apache-2.0,"Brian Anderson , Paul Colomiets , Colin Kiegel , Yamakaky , Andrew Gauger " +error-code,https://github.com/DoumanAsh/error-code,BSL-1.0,Douman +event-listener,https://github.com/smol-rs/event-listener,Apache-2.0 OR MIT,Stjepan Glavina +event-listener,https://github.com/smol-rs/event-listener,Apache-2.0 OR MIT,"Stjepan Glavina , John Nunley " +event-listener-strategy,https://github.com/smol-rs/event-listener-strategy,Apache-2.0 OR MIT,John Nunley +evmap,https://github.com/jonhoo/rust-evmap,MIT OR Apache-2.0,Jon Gjengset +executor-trait,https://github.com/amqp-rs/executor-trait,Apache-2.0 OR MIT,Marc-Antoine Perennou +exitcode,https://github.com/benwilber/exitcode,Apache-2.0,Ben Wilber +fakedata_generator,https://github.com/kevingimbel/fakedata_generator,MIT,Kevin Gimbel +fallible-iterator,https://github.com/sfackler/rust-fallible-iterator,MIT OR Apache-2.0,Steven Fackler +fancy-regex,https://github.com/fancy-regex/fancy-regex,MIT,"Raph Levien , Robin Stocker " +fastrand,https://github.com/smol-rs/fastrand,Apache-2.0 OR MIT,Stjepan Glavina +ff,https://github.com/zkcrypto/ff,MIT OR Apache-2.0,"Sean Bowe , Jack Grigg " +fiat-crypto,https://github.com/mit-plv/fiat-crypto,MIT OR Apache-2.0 OR BSD-1-Clause,Fiat Crypto library authors +filetime,https://github.com/alexcrichton/filetime,MIT OR Apache-2.0,Alex Crichton +finl_unicode,https://github.com/dahosek/finl_unicode,MIT OR Apache-2.0,The finl_unicode Authors +flagset,https://github.com/enarx/flagset,Apache-2.0,Nathaniel McCallum +flate2,https://github.com/rust-lang/flate2-rs,MIT OR Apache-2.0,"Alex Crichton , Josh Triplett " +float_eq,https://github.com/jtempest/float_eq-rs,MIT OR Apache-2.0,jtempest +fluent-uri,https://github.com/yescallop/fluent-uri-rs,MIT,Scallop Ye +flume,https://github.com/zesterer/flume,Apache-2.0 OR MIT,Joshua Barretto +fnv,https://github.com/servo/rust-fnv,Apache-2.0 OR MIT,Alex Crichton +foldhash,https://github.com/orlp/foldhash,Zlib,Orson Peters +foreign-types,https://github.com/sfackler/foreign-types,MIT OR Apache-2.0,Steven Fackler +fsevent-sys,https://github.com/octplane/fsevent-rust/tree/master/fsevent-sys,MIT,Pierre Baillet +fslock,https://github.com/brunoczim/fslock,MIT,The fslock Authors +funty,https://github.com/myrrlyn/funty,MIT,myrrlyn +futures,https://github.com/rust-lang-nursery/futures-rs,MIT OR Apache-2.0,Alex Crichton +futures,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures Authors +futures-channel,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-channel Authors +futures-core,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-core Authors +futures-executor,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-executor Authors +futures-io,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-io Authors +futures-lite,https://github.com/smol-rs/futures-lite,Apache-2.0 OR MIT,"Stjepan Glavina , Contributors to futures-rs" +futures-macro,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-macro Authors +futures-sink,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-sink Authors +futures-task,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-task Authors +futures-timer,https://github.com/async-rs/futures-timer,MIT OR Apache-2.0,Alex Crichton +futures-util,https://github.com/rust-lang/futures-rs,MIT OR Apache-2.0,The futures-util Authors +generic-array,https://github.com/fizyk20/generic-array,MIT,"Bartłomiej Kamiński , Aaron Trent " +getrandom,https://github.com/rust-random/getrandom,MIT OR Apache-2.0,The Rand Project Developers +gimli,https://github.com/gimli-rs/gimli,MIT OR Apache-2.0,The gimli Authors +glob,https://github.com/rust-lang/glob,MIT OR Apache-2.0,The Rust Project Developers +goauth,https://github.com/durch/rust-goauth,MIT,Drazen Urch +governor,https://github.com/boinkor-net/governor,MIT,Andreas Fuchs +graphql-introspection-query,https://github.com/graphql-rust/graphql-client,Apache-2.0 OR MIT,Tom Houlé +graphql-parser,https://github.com/graphql-rust/graphql-parser,MIT OR Apache-2.0,Paul Colomiets +graphql_client,https://github.com/graphql-rust/graphql-client,Apache-2.0 OR MIT,Tom Houlé +graphql_client_codegen,https://github.com/graphql-rust/graphql-client,Apache-2.0 OR MIT,Tom Houlé +graphql_query_derive,https://github.com/graphql-rust/graphql-client,Apache-2.0 OR MIT,Tom Houlé +greptime-proto,https://github.com/GreptimeTeam/greptime-proto,Apache-2.0,The greptime-proto Authors +greptimedb-ingester,https://github.com/GreptimeTeam/greptimedb-ingester-rust,Apache-2.0,The greptimedb-ingester Authors +grok,https://github.com/daschl/grok,Apache-2.0,Michael Nitschinger +group,https://github.com/zkcrypto/group,MIT OR Apache-2.0,"Sean Bowe , Jack Grigg " +h2,https://github.com/hyperium/h2,MIT,"Carl Lerche , Sean McArthur " +half,https://github.com/starkat99/half-rs,MIT OR Apache-2.0,Kathryn Long +hash_hasher,https://github.com/Fraser999/Hash-Hasher,Apache-2.0 OR MIT,Fraser Hutchison +hashbag,https://github.com/jonhoo/hashbag,MIT OR Apache-2.0,Jon Gjengset +hashbrown,https://github.com/rust-lang/hashbrown,MIT OR Apache-2.0,Amanieu d'Antras +headers,https://github.com/hyperium/headers,MIT,Sean McArthur +heck,https://github.com/withoutboats/heck,MIT OR Apache-2.0,The heck Authors +heck,https://github.com/withoutboats/heck,MIT OR Apache-2.0,Without Boats +heim,https://github.com/heim-rs/heim,Apache-2.0 OR MIT,svartalf +hermit-abi,https://github.com/hermit-os/hermit-rs,MIT OR Apache-2.0,Stefan Lankes +hex,https://github.com/KokaKiwi/rust-hex,MIT OR Apache-2.0,KokaKiwi +hickory-proto,https://github.com/hickory-dns/hickory-dns,MIT OR Apache-2.0,The contributors to Hickory DNS +hkdf,https://github.com/RustCrypto/KDFs,MIT OR Apache-2.0,RustCrypto Developers +hmac,https://github.com/RustCrypto/MACs,MIT OR Apache-2.0,RustCrypto Developers +home,https://github.com/rust-lang/cargo,MIT OR Apache-2.0,Brian Anderson +hostname,https://github.com/svartalf/hostname,MIT,"fengcen , svartalf " +http,https://github.com/hyperium/http,MIT OR Apache-2.0,"Alex Crichton , Carl Lerche , Sean McArthur " +http-body,https://github.com/hyperium/http-body,MIT,"Carl Lerche , Lucio Franco , Sean McArthur " +http-range-header,https://github.com/MarcusGrass/parse-range-headers,MIT,The http-range-header Authors +http-serde,https://gitlab.com/kornelski/http-serde,Apache-2.0 OR MIT,Kornel +http-types,https://github.com/http-rs/http-types,MIT OR Apache-2.0,Yoshua Wuyts +httparse,https://github.com/seanmonstar/httparse,MIT OR Apache-2.0,Sean McArthur +httpdate,https://github.com/pyfisch/httpdate,MIT OR Apache-2.0,Pyfisch +hyper,https://github.com/hyperium/hyper,MIT,Sean McArthur +hyper-named-pipe,https://github.com/fussybeaver/hyper-named-pipe,Apache-2.0,The hyper-named-pipe Authors +hyper-openssl,https://github.com/sfackler/hyper-openssl,MIT OR Apache-2.0,Steven Fackler +hyper-proxy,https://github.com/tafia/hyper-proxy,MIT,Johann Tuffe +hyper-rustls,https://github.com/rustls/hyper-rustls,Apache-2.0 OR ISC OR MIT,The hyper-rustls Authors +hyper-timeout,https://github.com/hjr3/hyper-timeout,MIT OR Apache-2.0,Herman J. Radtke III +hyper-tls,https://github.com/hyperium/hyper-tls,MIT OR Apache-2.0,Sean McArthur +hyper-util,https://github.com/hyperium/hyper-util,MIT,Sean McArthur +hyperlocal-next,https://github.com/softprops/hyperlocal,MIT,softprops +iana-time-zone,https://github.com/strawlab/iana-time-zone,MIT OR Apache-2.0,"Andrew Straw , René Kijewski , Ryan Lopopolo " +iana-time-zone-haiku,https://github.com/strawlab/iana-time-zone,MIT OR Apache-2.0,René Kijewski +icu_collections,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_locid,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_locid_transform,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_locid_transform_data,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_normalizer,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_normalizer_data,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_properties,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_properties_data,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_provider,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +icu_provider_macros,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +ident_case,https://github.com/TedDriggs/ident_case,MIT OR Apache-2.0,Ted Driggs +idna_adapter,https://github.com/hsivonen/idna_adapter,Apache-2.0 OR MIT,The rust-url developers +indexmap,https://github.com/bluss/indexmap,Apache-2.0 OR MIT,The indexmap Authors +indexmap,https://github.com/indexmap-rs/indexmap,Apache-2.0 OR MIT,The indexmap Authors +indoc,https://github.com/dtolnay/indoc,MIT OR Apache-2.0,David Tolnay +infer,https://github.com/bojand/infer,MIT,Bojan +influxdb-line-protocol,https://github.com/influxdata/influxdb_iox/tree/main/influxdb_line_protocol,MIT OR Apache-2.0,InfluxDB IOx Project Developers +inotify,https://github.com/hannobraun/inotify,ISC,"Hanno Braun , Félix Saparelli , Cristian Kubis , Frank Denis " +inotify-sys,https://github.com/hannobraun/inotify-sys,ISC,Hanno Braun +inout,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers +instability,https://github.com/ratatui-org/instability,MIT,"Stephen M. Coakley , Joshka" +instant,https://github.com/sebcrozet/instant,BSD-3-Clause,sebcrozet +inventory,https://github.com/dtolnay/inventory,MIT OR Apache-2.0,David Tolnay +io-lifetimes,https://github.com/sunfishcode/io-lifetimes,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,Dan Gohman +iovec,https://github.com/carllerche/iovec,MIT OR Apache-2.0,Carl Lerche +ipconfig,https://github.com/liranringel/ipconfig,MIT OR Apache-2.0,Liran Ringel +ipnet,https://github.com/krisprice/ipnet,MIT OR Apache-2.0,Kris Price +ipnetwork,https://github.com/achanda/ipnetwork,MIT OR Apache-2.0,"Abhishek Chanda , Linus Färnstrand " +is-terminal,https://github.com/sunfishcode/is-terminal,MIT,"softprops , Dan Gohman " +is_ci,https://github.com/zkat/is_ci,ISC,Kat Marchán +itertools,https://github.com/rust-itertools/itertools,MIT OR Apache-2.0,bluss +itoa,https://github.com/dtolnay/itoa,MIT OR Apache-2.0,David Tolnay +jni,https://github.com/jni-rs/jni-rs,MIT OR Apache-2.0,Josh Chase +jni-sys,https://github.com/sfackler/rust-jni-sys,MIT OR Apache-2.0,Steven Fackler +js-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys,MIT OR Apache-2.0,The wasm-bindgen Developers +json-patch,https://github.com/idubrov/json-patch,MIT OR Apache-2.0,Ivan Dubrov +jsonpath-rust,https://github.com/besok/jsonpath-rust,MIT,BorisZhguchev +jsonptr,https://github.com/chanced/jsonptr,MIT OR Apache-2.0,chance dinkins +k8s-openapi,https://github.com/Arnavion/k8s-openapi,Apache-2.0,Arnav Singh +keccak,https://github.com/RustCrypto/sponges/tree/master/keccak,Apache-2.0 OR MIT,RustCrypto Developers +kqueue,https://gitlab.com/rust-kqueue/rust-kqueue,MIT,William Orr +kqueue-sys,https://gitlab.com/rust-kqueue/rust-kqueue-sys,MIT,"William Orr , Daniel (dmilith) Dettlaff " +krb5-src,https://github.com/MaterializeInc/rust-krb5-src,Apache-2.0,"Materialize, Inc." +kube,https://github.com/kube-rs/kube,Apache-2.0,"clux , Natalie Klestrup Röijezon , kazk " +lalrpop-util,https://github.com/lalrpop/lalrpop,Apache-2.0 OR MIT,Niko Matsakis +lapin,https://github.com/amqp-rs/lapin,MIT,"Geoffroy Couprie , Marc-Antoine Perennou " +lazy_static,https://github.com/rust-lang-nursery/lazy-static.rs,MIT OR Apache-2.0,Marvin Löbel +libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The Rust Project Developers +libflate,https://github.com/sile/libflate,MIT,Takeru Ohta +libm,https://github.com/rust-lang/libm,MIT OR Apache-2.0,Jorge Aparicio +libz-sys,https://github.com/rust-lang/libz-sys,MIT OR Apache-2.0,"Alex Crichton , Josh Triplett , Sebastian Thiel " +linked-hash-map,https://github.com/contain-rs/linked-hash-map,MIT OR Apache-2.0,"Stepan Koltsov , Andrew Paseltiner " +linked_hash_set,https://github.com/alexheretic/linked-hash-set,Apache-2.0,Alex Butler +linux-raw-sys,https://github.com/sunfishcode/linux-raw-sys,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,Dan Gohman +listenfd,https://github.com/mitsuhiko/listenfd,Apache-2.0,Armin Ronacher +litemap,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +lockfree-object-pool,https://github.com/EVaillant/lockfree-object-pool,BSL-1.0,Etienne Vaillant +log,https://github.com/rust-lang/log,MIT OR Apache-2.0,The Rust Project Developers +lru,https://github.com/jeromefroe/lru-rs,MIT,Jerome Froelich +lru-cache,https://github.com/contain-rs/lru-cache,MIT OR Apache-2.0,Stepan Koltsov +lz4,https://github.com/10xGenomics/lz4-rs,MIT,"Jens Heyens , Artem V. Navrotskiy , Patrick Marks " +macaddr,https://github.com/svartalf/rust-macaddr,Apache-2.0 OR MIT,svartalf +mach,https://github.com/fitzgen/mach,BSD-2-Clause,"Nick Fitzgerald , David Cuddeback , Gonzalo Brito Gadeschi " +malloc_buf,https://github.com/SSheldon/malloc_buf,MIT,Steven Sheldon +match_cfg,https://github.com/gnzlbg/match_cfg,MIT OR Apache-2.0,gnzlbg +matchers,https://github.com/hawkw/matchers,MIT,Eliza Weisman +matches,https://github.com/SimonSapin/rust-std-candidates,MIT,The matches Authors +matchit,https://github.com/ibraheemdev/matchit,MIT AND BSD-3-Clause,Ibraheem Ahmed +maxminddb,https://github.com/oschwald/maxminddb-rust,ISC,Gregory J. Oschwald +md-5,https://github.com/RustCrypto/hashes,MIT OR Apache-2.0,RustCrypto Developers +memchr,https://github.com/BurntSushi/memchr,Unlicense OR MIT,"Andrew Gallant , bluss" +memmap2,https://github.com/RazrFalcon/memmap2-rs,MIT OR Apache-2.0,"Dan Burkert , Yevhenii Reizner " +memoffset,https://github.com/Gilnaa/memoffset,MIT,Gilad Naaman +metrics,https://github.com/metrics-rs/metrics,MIT,Toby Lawrence +metrics-tracing-context,https://github.com/metrics-rs/metrics,MIT,MOZGIII +mime,https://github.com/hyperium/mime,MIT OR Apache-2.0,Sean McArthur +mime_guess,https://github.com/abonander/mime_guess,MIT,Austin Bonander +minimal-lexical,https://github.com/Alexhuszagh/minimal-lexical,MIT OR Apache-2.0,Alex Huszagh +miniz_oxide,https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide,MIT OR Zlib OR Apache-2.0,"Frommi , oyvindln " +mio,https://github.com/tokio-rs/mio,MIT,"Carl Lerche , Thomas de Zeeuw , Tokio Contributors " +mlua,https://github.com/khvzak/mlua,MIT,"Aleksandr Orlenko , kyren " +mlua-sys,https://github.com/khvzak/mlua,MIT,Aleksandr Orlenko +mlua_derive,https://github.com/khvzak/mlua,MIT,Aleksandr Orlenko +moka,https://github.com/moka-rs/moka,MIT OR Apache-2.0,The moka Authors +mongodb,https://github.com/mongodb/mongo-rust-driver,Apache-2.0,"Saghm Rossi , Patrick Freed , Isabel Atkinson , Abraham Egnor , Kaitlin Mahar " +multer,https://github.com/rousan/multer-rs,MIT,Rousan Ali +native-tls,https://github.com/sfackler/rust-native-tls,MIT OR Apache-2.0,Steven Fackler +ndk-context,https://github.com/rust-windowing/android-ndk-rs,MIT OR Apache-2.0,The Rust Windowing contributors +netlink-packet-core,https://github.com/rust-netlink/netlink-packet-core,MIT,Corentin Henry +netlink-packet-sock-diag,https://github.com/rust-netlink/netlink-packet-sock-diag,MIT,"Flier Lu , Corentin Henry " +netlink-packet-utils,https://github.com/rust-netlink/netlink-packet-utils,MIT,Corentin Henry +netlink-sys,https://github.com/rust-netlink/netlink-sys,MIT,Corentin Henry +nibble_vec,https://github.com/michaelsproul/rust_nibble_vec,MIT,Michael Sproul +nix,https://github.com/nix-rust/nix,MIT,The nix-rust Project Developers +nkeys,https://github.com/wasmcloud/nkeys,Apache-2.0,wasmCloud Team +no-proxy,https://github.com/jdrouet/no-proxy,MIT,Jérémie Drouet +no-std-compat,https://gitlab.com/jD91mZM2/no-std-compat,MIT,jD91mZM2 +nom,https://github.com/Geal/nom,MIT,contact@geoffroycouprie.com +nonzero_ext,https://github.com/antifuchs/nonzero_ext,Apache-2.0,Andreas Fuchs +notify,https://github.com/notify-rs/notify,CC0-1.0,"Félix Saparelli , Daniel Faust , Aron Heinecke " +notify-types,https://github.com/notify-rs/notify,MIT OR Apache-2.0,Daniel Faust +ntapi,https://github.com/MSxDOS/ntapi,Apache-2.0 OR MIT,MSxDOS +nu-ansi-term,https://github.com/nushell/nu-ansi-term,MIT,"ogham@bsago.me, Ryan Scheel (Havvy) , Josh Triplett , The Nushell Project Developers" +nuid,https://github.com/casualjim/rs-nuid,Apache-2.0,Ivan Porto Carrero +num-bigint,https://github.com/rust-num/num-bigint,MIT OR Apache-2.0,The Rust Project Developers +num-bigint-dig,https://github.com/dignifiedquire/num-bigint,MIT OR Apache-2.0,"dignifiedquire , The Rust Project Developers" +num-conv,https://github.com/jhpratt/num-conv,MIT OR Apache-2.0,Jacob Pratt +num-format,https://github.com/bcmyers/num-format,MIT OR Apache-2.0,Brian Myers +num-integer,https://github.com/rust-num/num-integer,MIT OR Apache-2.0,The Rust Project Developers +num-iter,https://github.com/rust-num/num-iter,MIT OR Apache-2.0,The Rust Project Developers +num-rational,https://github.com/rust-num/num-rational,MIT OR Apache-2.0,The Rust Project Developers +num-traits,https://github.com/rust-num/num-traits,MIT OR Apache-2.0,The Rust Project Developers +num_enum,https://github.com/illicitonion/num_enum,BSD-3-Clause OR MIT OR Apache-2.0,"Daniel Wagner-Hall , Daniel Henry-Mantilla , Vincent Esche " +num_threads,https://github.com/jhpratt/num_threads,MIT OR Apache-2.0,Jacob Pratt +number_prefix,https://github.com/ogham/rust-number-prefix,MIT,Benjamin Sago +oauth2,https://github.com/ramosbugs/oauth2-rs,MIT OR Apache-2.0,"Alex Crichton , Florin Lipan , David A. Ramos " +objc,http://github.com/SSheldon/rust-objc,MIT,Steven Sheldon +object,https://github.com/gimli-rs/object,Apache-2.0 OR MIT,The object Authors +octseq,https://github.com/NLnetLabs/octets/,BSD-3-Clause,NLnet Labs +ofb,https://github.com/RustCrypto/block-modes,MIT OR Apache-2.0,RustCrypto Developers +once_cell,https://github.com/matklad/once_cell,MIT OR Apache-2.0,Aleksey Kladov +onig,http://github.com/iwillspeak/rust-onig,MIT,"Will Speak , Ivan Ivashchenko " +opaque-debug,https://github.com/RustCrypto/utils,MIT OR Apache-2.0,RustCrypto Developers +opendal,https://github.com/apache/opendal,Apache-2.0,Apache OpenDAL +openidconnect,https://github.com/ramosbugs/openidconnect-rs,MIT,David A. Ramos +openssl,https://github.com/sfackler/rust-openssl,Apache-2.0,Steven Fackler +openssl-macros,https://github.com/sfackler/rust-openssl,MIT OR Apache-2.0,The openssl-macros Authors +openssl-probe,https://github.com/alexcrichton/openssl-probe,MIT OR Apache-2.0,Alex Crichton +openssl-sys,https://github.com/sfackler/rust-openssl,MIT,"Alex Crichton , Steven Fackler " +ordered-float,https://github.com/reem/rust-ordered-float,MIT,"Jonathan Reem , Matt Brubeck " +outref,https://github.com/Nugine/outref,MIT,The outref Authors +overload,https://github.com/danaugrs/overload,MIT,Daniel Salvadori +owo-colors,https://github.com/jam1garner/owo-colors,MIT,jam1garner <8260240+jam1garner@users.noreply.github.com> +p256,https://github.com/RustCrypto/elliptic-curves/tree/master/p256,Apache-2.0 OR MIT,RustCrypto Developers +p384,https://github.com/RustCrypto/elliptic-curves/tree/master/p384,Apache-2.0 OR MIT,"RustCrypto Developers, Frank Denis " +pad,https://github.com/ogham/rust-pad,MIT,Ben S +parking,https://github.com/smol-rs/parking,Apache-2.0 OR MIT,"Stjepan Glavina , The Rust Project Developers" +parking_lot,https://github.com/Amanieu/parking_lot,MIT OR Apache-2.0,Amanieu d'Antras +parse-size,https://github.com/kennytm/parse-size,MIT,kennytm +passt,https://github.com/kevingimbel/passt,MIT OR Apache-2.0,Kevin Gimbel +paste,https://github.com/dtolnay/paste,MIT OR Apache-2.0,David Tolnay +pbkdf2,https://github.com/RustCrypto/password-hashes/tree/master/pbkdf2,MIT OR Apache-2.0,RustCrypto Developers +peeking_take_while,https://github.com/fitzgen/peeking_take_while,MIT OR Apache-2.0,Nick Fitzgerald +pem,https://github.com/jcreekmore/pem-rs,MIT,Jonathan Creekmore +pem-rfc7468,https://github.com/RustCrypto/formats/tree/master/pem-rfc7468,Apache-2.0 OR MIT,RustCrypto Developers +pest,https://github.com/pest-parser/pest,MIT OR Apache-2.0,Dragoș Tiselice +phf,https://github.com/rust-phf/rust-phf,MIT,Steven Fackler +pin-project,https://github.com/taiki-e/pin-project,Apache-2.0 OR MIT,The pin-project Authors +pin-project-internal,https://github.com/taiki-e/pin-project,Apache-2.0 OR MIT,The pin-project-internal Authors +pin-project-lite,https://github.com/taiki-e/pin-project-lite,Apache-2.0 OR MIT,The pin-project-lite Authors +pin-utils,https://github.com/rust-lang-nursery/pin-utils,MIT OR Apache-2.0,Josef Brandl +pinky-swear,https://github.com/amqp-rs/pinky-swear,BSD-2-Clause,Marc-Antoine Perennou +piper,https://github.com/notgull/piper,MIT OR Apache-2.0,"Stjepan Glavina , John Nunley " +pkcs1,https://github.com/RustCrypto/formats/tree/master/pkcs1,Apache-2.0 OR MIT,RustCrypto Developers +pkcs8,https://github.com/RustCrypto/formats/tree/master/pkcs8,Apache-2.0 OR MIT,RustCrypto Developers +platforms,https://github.com/RustSec/platforms-crate,Apache-2.0 OR MIT,Tony Arcieri +polling,https://github.com/smol-rs/polling,Apache-2.0 OR MIT,Stjepan Glavina +polling,https://github.com/smol-rs/polling,Apache-2.0 OR MIT,"Stjepan Glavina , John Nunley " +poly1305,https://github.com/RustCrypto/universal-hashes,Apache-2.0 OR MIT,RustCrypto Developers +portable-atomic,https://github.com/taiki-e/portable-atomic,Apache-2.0 OR MIT,The portable-atomic Authors +postgres-openssl,https://github.com/sfackler/rust-postgres,MIT OR Apache-2.0,Steven Fackler +postgres-protocol,https://github.com/sfackler/rust-postgres,MIT OR Apache-2.0,Steven Fackler +postgres-types,https://github.com/sfackler/rust-postgres,MIT OR Apache-2.0,Steven Fackler +powerfmt,https://github.com/jhpratt/powerfmt,MIT OR Apache-2.0,Jacob Pratt +ppv-lite86,https://github.com/cryptocorrosion/cryptocorrosion,MIT OR Apache-2.0,The CryptoCorrosion Contributors +prettydiff,https://github.com/romankoblov/prettydiff,MIT,Roman Koblov +prettytable-rs,https://github.com/phsym/prettytable-rs,BSD-3-Clause,Pierre-Henri Symoneaux +primeorder,https://github.com/RustCrypto/elliptic-curves/tree/master/primeorder,Apache-2.0 OR MIT,RustCrypto Developers +proc-macro-crate,https://github.com/bkchr/proc-macro-crate,MIT OR Apache-2.0,Bastian Köcher +proc-macro-error,https://gitlab.com/CreepySkeleton/proc-macro-error,MIT OR Apache-2.0,CreepySkeleton +proc-macro-error-attr2,https://github.com/GnomedDev/proc-macro-error-2,MIT OR Apache-2.0,"CreepySkeleton , GnomedDev " +proc-macro-error2,https://github.com/GnomedDev/proc-macro-error-2,MIT OR Apache-2.0,"CreepySkeleton , GnomedDev " +proc-macro-hack,https://github.com/dtolnay/proc-macro-hack,MIT OR Apache-2.0,David Tolnay +proc-macro2,https://github.com/dtolnay/proc-macro2,MIT OR Apache-2.0,"David Tolnay , Alex Crichton " +proptest,https://github.com/proptest-rs/proptest,MIT OR Apache-2.0,Jason Lingle +prost,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert , Lucio Franco " +prost,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert , Lucio Franco , Casper Meijn , Tokio Contributors " +prost-derive,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert , Lucio Franco , Tokio Contributors " +prost-reflect,https://github.com/andrewhickman/prost-reflect,MIT OR Apache-2.0,Andrew Hickman +psl,https://github.com/addr-rs/psl,MIT OR Apache-2.0,rushmorem +psl-types,https://github.com/addr-rs/psl-types,MIT OR Apache-2.0,rushmorem +ptr_meta,https://github.com/djkoloski/ptr_meta,MIT,David Koloski +publicsuffix,https://github.com/rushmorem/publicsuffix,MIT OR Apache-2.0,rushmorem +pulsar,https://github.com/streamnative/pulsar-rs,MIT OR Apache-2.0,"Colin Stearns , Kevin Stenerson , Geoffroy Couprie " +quad-rand,https://github.com/not-fl3/quad-rand,MIT,not-fl3 +quanta,https://github.com/metrics-rs/quanta,MIT,Toby Lawrence +quick-error,http://github.com/tailhook/quick-error,MIT OR Apache-2.0,"Paul Colomiets , Colin Kiegel " +quick-xml,https://github.com/tafia/quick-xml,MIT,The quick-xml Authors +quickcheck,https://github.com/BurntSushi/quickcheck,Unlicense OR MIT,Andrew Gallant +quote,https://github.com/dtolnay/quote,MIT OR Apache-2.0,David Tolnay +quoted_printable,https://github.com/staktrace/quoted-printable,0BSD,Kartikaya Gupta +radium,https://github.com/bitvecto-rs/radium,MIT,"Nika Layzell , myrrlyn " +radix_trie,https://github.com/michaelsproul/rust_radix_trie,MIT,Michael Sproul +rand,https://github.com/rust-random/rand,MIT OR Apache-2.0,"The Rand Project Developers, The Rust Project Developers" +rand_chacha,https://github.com/rust-random/rand,MIT OR Apache-2.0,"The Rand Project Developers, The Rust Project Developers, The CryptoCorrosion Contributors" +rand_distr,https://github.com/rust-random/rand,MIT OR Apache-2.0,The Rand Project Developers +rand_hc,https://github.com/rust-random/rand,MIT OR Apache-2.0,The Rand Project Developers +rand_xorshift,https://github.com/rust-random/rngs,MIT OR Apache-2.0,"The Rand Project Developers, The Rust Project Developers" +ratatui,https://github.com/ratatui/ratatui,MIT,"Florian Dehau , The Ratatui Developers" +raw-cpuid,https://github.com/gz/rust-cpuid,MIT,Gerd Zellweger +raw-window-handle,https://github.com/rust-windowing/raw-window-handle,MIT OR Apache-2.0 OR Zlib,Osspial +rayon,https://github.com/rayon-rs/rayon,MIT OR Apache-2.0,"Niko Matsakis , Josh Stone " +rdkafka,https://github.com/fede1024/rust-rdkafka,MIT,Federico Giraud +redis,https://github.com/redis-rs/redis-rs,BSD-3-Clause,The redis Authors +redox_syscall,https://gitlab.redox-os.org/redox-os/syscall,MIT,Jeremy Soller +redox_users,https://gitlab.redox-os.org/redox-os/users,MIT,"Jose Narvaez , Wesley Hershberger " +regex,https://github.com/rust-lang/regex,MIT OR Apache-2.0,"The Rust Project Developers, Andrew Gallant " +regex-automata,https://github.com/BurntSushi/regex-automata,Unlicense OR MIT,Andrew Gallant +regex-automata,https://github.com/rust-lang/regex/tree/master/regex-automata,MIT OR Apache-2.0,"The Rust Project Developers, Andrew Gallant " +regex-lite,https://github.com/rust-lang/regex/tree/master/regex-lite,MIT OR Apache-2.0,"The Rust Project Developers, Andrew Gallant " +regex-syntax,https://github.com/rust-lang/regex,MIT OR Apache-2.0,The Rust Project Developers +regex-syntax,https://github.com/rust-lang/regex/tree/master/regex-syntax,MIT OR Apache-2.0,"The Rust Project Developers, Andrew Gallant " +rend,https://github.com/djkoloski/rend,MIT,David Koloski +reqwest,https://github.com/seanmonstar/reqwest,MIT OR Apache-2.0,Sean McArthur +resolv-conf,http://github.com/tailhook/resolv-conf,MIT OR Apache-2.0,paul@colomiets.name +rfc6979,https://github.com/RustCrypto/signatures/tree/master/rfc6979,Apache-2.0 OR MIT,RustCrypto Developers +ring,https://github.com/briansmith/ring,ISC AND Custom,Brian Smith +rkyv,https://github.com/rkyv/rkyv,MIT,David Koloski +rle-decode-fast,https://github.com/WanzenBug/rle-decode-helper,MIT OR Apache-2.0,Moritz Wanzenböck +rmp,https://github.com/3Hren/msgpack-rust,MIT,Evgeny Safronov +rmp-serde,https://github.com/3Hren/msgpack-rust,MIT,Evgeny Safronov +rmpv,https://github.com/3Hren/msgpack-rust,MIT,Evgeny Safronov +roaring,https://github.com/RoaringBitmap/roaring-rs,MIT OR Apache-2.0,"Wim Looman , Kerollmops " +roxmltree,https://github.com/RazrFalcon/roxmltree,MIT OR Apache-2.0,Yevhenii Reizner +rsa,https://github.com/RustCrypto/RSA,MIT OR Apache-2.0,"RustCrypto Developers, dignifiedquire " +rumqttc,https://github.com/bytebeamio/rumqtt,Apache-2.0,tekjar +rust_decimal,https://github.com/paupino/rust-decimal,MIT,Paul Mason +rustc-demangle,https://github.com/alexcrichton/rustc-demangle,MIT OR Apache-2.0,Alex Crichton +rustc-hash,https://github.com/rust-lang/rustc-hash,Apache-2.0 OR MIT,The Rust Project Developers +rustc_version,https://github.com/Kimundi/rustc-version-rs,MIT OR Apache-2.0,Marvin Löbel +rustc_version_runtime,https://github.com/seppo0010/rustc-version-runtime-rs,MIT,Sebastian Waisbrot +rustix,https://github.com/bytecodealliance/rustix,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,"Dan Gohman , Jakub Konka " +rustls,https://github.com/rustls/rustls,Apache-2.0 OR ISC OR MIT,The rustls Authors +rustls-native-certs,https://github.com/ctz/rustls-native-certs,Apache-2.0 OR ISC OR MIT,The rustls-native-certs Authors +rustls-native-certs,https://github.com/rustls/rustls-native-certs,Apache-2.0 OR ISC OR MIT,The rustls-native-certs Authors +rustls-pemfile,https://github.com/rustls/pemfile,Apache-2.0 OR ISC OR MIT,The rustls-pemfile Authors +rustls-pki-types,https://github.com/rustls/pki-types,MIT OR Apache-2.0,The rustls-pki-types Authors +rustls-webpki,https://github.com/rustls/webpki,ISC,The rustls-webpki Authors +rustversion,https://github.com/dtolnay/rustversion,MIT OR Apache-2.0,David Tolnay +rusty-fork,https://github.com/altsysrq/rusty-fork,MIT OR Apache-2.0,Jason Lingle +rustyline,https://github.com/kkawakam/rustyline,MIT,Katsu Kawakami +ryu,https://github.com/dtolnay/ryu,Apache-2.0 OR BSL-1.0,David Tolnay +salsa20,https://github.com/RustCrypto/stream-ciphers,MIT OR Apache-2.0,RustCrypto Developers +same-file,https://github.com/BurntSushi/same-file,Unlicense OR MIT,Andrew Gallant +sasl2-sys,https://github.com/MaterializeInc/rust-sasl,Apache-2.0,"Materialize, Inc." +scan_fmt,https://github.com/wlentz/scan_fmt,MIT,wlentz +schannel,https://github.com/steffengy/schannel-rs,MIT,"Steven Fackler , Steffen Butzer " +scoped-tls,https://github.com/alexcrichton/scoped-tls,MIT OR Apache-2.0,Alex Crichton +scopeguard,https://github.com/bluss/scopeguard,MIT OR Apache-2.0,bluss +sct,https://github.com/rustls/sct.rs,Apache-2.0 OR ISC OR MIT,Joseph Birr-Pixton +seahash,https://gitlab.redox-os.org/redox-os/seahash,MIT,"ticki , Tom Almeida " +sec1,https://github.com/RustCrypto/formats/tree/master/sec1,Apache-2.0 OR MIT,RustCrypto Developers +secrecy,https://github.com/iqlusioninc/crates/tree/main/secrecy,Apache-2.0 OR MIT,Tony Arcieri +security-framework,https://github.com/kornelski/rust-security-framework,MIT OR Apache-2.0,"Steven Fackler , Kornel " +semver,https://github.com/dtolnay/semver,MIT OR Apache-2.0,David Tolnay +semver,https://github.com/steveklabnik/semver,MIT OR Apache-2.0,"Steve Klabnik , The Rust Project Developers" +semver-parser,https://github.com/steveklabnik/semver-parser,MIT OR Apache-2.0,Steve Klabnik +serde,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " +serde-toml-merge,https://github.com/jdrouet/serde-toml-merge,MIT,Jeremie Drouet +serde-value,https://github.com/arcnmx/serde-value,MIT,arcnmx +serde_bytes,https://github.com/serde-rs/bytes,MIT OR Apache-2.0,David Tolnay +serde_json,https://github.com/serde-rs/json,MIT OR Apache-2.0,"Erick Tryzelaar , David Tolnay " +serde_nanos,https://github.com/caspervonb/serde_nanos,MIT OR Apache-2.0,Casper Beyer +serde_path_to_error,https://github.com/dtolnay/path-to-error,MIT OR Apache-2.0,David Tolnay +serde_plain,https://github.com/mitsuhiko/serde-plain,MIT OR Apache-2.0,Armin Ronacher +serde_qs,https://github.com/samscott89/serde_qs,MIT OR Apache-2.0,Sam Scott +serde_repr,https://github.com/dtolnay/serde-repr,MIT OR Apache-2.0,David Tolnay +serde_spanned,https://github.com/toml-rs/toml,MIT OR Apache-2.0,The serde_spanned Authors +serde_urlencoded,https://github.com/nox/serde_urlencoded,MIT OR Apache-2.0,Anthony Ramine +serde_with,https://github.com/jonasbb/serde_with,MIT OR Apache-2.0,"Jonas Bushart, Marcin Kaźmierczak" +serde_with_macros,https://github.com/jonasbb/serde_with,MIT OR Apache-2.0,Jonas Bushart +serde_yaml,https://github.com/dtolnay/serde-yaml,MIT OR Apache-2.0,David Tolnay +sha-1,https://github.com/RustCrypto/hashes,MIT OR Apache-2.0,RustCrypto Developers +sha1,https://github.com/RustCrypto/hashes,MIT OR Apache-2.0,RustCrypto Developers +sha2,https://github.com/RustCrypto/hashes,MIT OR Apache-2.0,RustCrypto Developers +sha3,https://github.com/RustCrypto/hashes,MIT OR Apache-2.0,RustCrypto Developers +sharded-slab,https://github.com/hawkw/sharded-slab,MIT,Eliza Weisman +signal-hook,https://github.com/vorner/signal-hook,Apache-2.0 OR MIT,"Michal 'vorner' Vaner , Thomas Himmelstoss " +signal-hook-registry,https://github.com/vorner/signal-hook,Apache-2.0 OR MIT,"Michal 'vorner' Vaner , Masaki Hara " +signatory,https://github.com/iqlusioninc/crates/tree/main/signatory,Apache-2.0 OR MIT,Tony Arcieri +signature,https://github.com/RustCrypto/traits/tree/master/signature,Apache-2.0 OR MIT,RustCrypto Developers +simdutf8,https://github.com/rusticstuff/simdutf8,MIT OR Apache-2.0,Hans Kratz +simpl,https://github.com/durch/simplerr,MIT,Drazen Urch +siphasher,https://github.com/jedisct1/rust-siphash,MIT OR Apache-2.0,Frank Denis +sketches-ddsketch,https://github.com/mheffner/rust-sketches-ddsketch,Apache-2.0,Mike Heffner +slab,https://github.com/tokio-rs/slab,MIT,Carl Lerche +smallvec,https://github.com/servo/rust-smallvec,MIT OR Apache-2.0,The Servo Project Developers +smol,https://github.com/smol-rs/smol,Apache-2.0 OR MIT,Stjepan Glavina +smpl_jwt,https://github.com/durch/rust-jwt,MIT,Drazen Urch +snafu,https://github.com/shepmaster/snafu,MIT OR Apache-2.0,Jake Goulding +snap,https://github.com/BurntSushi/rust-snappy,BSD-3-Clause,Andrew Gallant +socket2,https://github.com/rust-lang/socket2,MIT OR Apache-2.0,"Alex Crichton , Thomas de Zeeuw " +spin,https://github.com/mvdnes/spin-rs,MIT,"Mathijs van de Nes , John Ericson " +spin,https://github.com/mvdnes/spin-rs,MIT,"Mathijs van de Nes , John Ericson , Joshua Barretto " +spinning_top,https://github.com/rust-osdev/spinning_top,MIT OR Apache-2.0,Philipp Oppermann +spki,https://github.com/RustCrypto/formats/tree/master/spki,Apache-2.0 OR MIT,RustCrypto Developers +stable_deref_trait,https://github.com/storyyeller/stable_deref_trait,MIT OR Apache-2.0,Robert Grosse +static_assertions,https://github.com/nvzqz/static-assertions-rs,MIT OR Apache-2.0,Nikolai Vazquez +static_assertions_next,https://github.com/scuffletv/static-assertions,MIT OR Apache-2.0,Nikolai Vazquez +stream-cancel,https://github.com/jonhoo/stream-cancel,MIT OR Apache-2.0,Jon Gjengset +stringprep,https://github.com/sfackler/rust-stringprep,MIT OR Apache-2.0,Steven Fackler +strip-ansi-escapes,https://github.com/luser/strip-ansi-escapes,Apache-2.0 OR MIT,Ted Mielczarek +strsim,https://github.com/dguo/strsim-rs,MIT,Danny Guo +strsim,https://github.com/rapidfuzz/strsim-rs,MIT,"Danny Guo , maxbachmann " +strum,https://github.com/Peternator7/strum,MIT,Peter Glotfelty +subtle,https://github.com/dalek-cryptography/subtle,BSD-3-Clause,"Isis Lovecruft , Henry de Valence " +supports-color,https://github.com/zkat/supports-color,Apache-2.0,Kat Marchán +syn,https://github.com/dtolnay/syn,MIT OR Apache-2.0,David Tolnay +syn_derive,https://github.com/Kyuuhachi/syn_derive,MIT OR Apache-2.0,Kyuuhachi +sync_wrapper,https://github.com/Actyx/sync_wrapper,Apache-2.0,Actyx AG +synstructure,https://github.com/mystor/synstructure,MIT,Nika Layzell +sysinfo,https://github.com/GuillaumeGomez/sysinfo,MIT,Guillaume Gomez +syslog,https://github.com/Geal/rust-syslog,MIT,contact@geoffroycouprie.com +syslog_loose,https://github.com/FungusHumungus/syslog-loose,MIT,Stephen Wakely +system-configuration,https://github.com/mullvad/system-configuration-rs,MIT OR Apache-2.0,Mullvad VPN +tagptr,https://github.com/oliver-giersch/tagptr,MIT OR Apache-2.0,Oliver Giersch +take_mut,https://github.com/Sgeo/take_mut,MIT,Sgeo +tap,https://github.com/myrrlyn/tap,MIT,"Elliott Linder , myrrlyn " +tcp-stream,https://github.com/amqp-rs/tcp-stream,BSD-2-Clause,Marc-Antoine Perennou +tempfile,https://github.com/Stebalien/tempfile,MIT OR Apache-2.0,"Steven Allen , The Rust Project Developers, Ashley Mannix , Jason White " +term,https://github.com/Stebalien/term,MIT OR Apache-2.0,"The Rust Project Developers, Steven Allen" +termcolor,https://github.com/BurntSushi/termcolor,Unlicense OR MIT,Andrew Gallant +terminal_size,https://github.com/eminence/terminal-size,MIT OR Apache-2.0,Andrew Chin +thiserror,https://github.com/dtolnay/thiserror,MIT OR Apache-2.0,David Tolnay +thread_local,https://github.com/Amanieu/thread_local-rs,MIT OR Apache-2.0,Amanieu d'Antras +tikv-jemalloc-sys,https://github.com/tikv/jemallocator,MIT OR Apache-2.0,"Alex Crichton , Gonzalo Brito Gadeschi , The TiKV Project Developers" +tikv-jemallocator,https://github.com/tikv/jemallocator,MIT OR Apache-2.0,"Alex Crichton , Gonzalo Brito Gadeschi , Simon Sapin , Steven Fackler , The TiKV Project Developers" +time,https://github.com/time-rs/time,MIT OR Apache-2.0,"Jacob Pratt , Time contributors" +tinystr,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +tinyvec,https://github.com/Lokathor/tinyvec,Zlib OR Apache-2.0 OR MIT,Lokathor +tinyvec_macros,https://github.com/Soveu/tinyvec_macros,MIT OR Apache-2.0 OR Zlib,Soveu +tokio,https://github.com/tokio-rs/tokio,MIT,Tokio Contributors +tokio-io,https://github.com/tokio-rs/tokio,MIT,Carl Lerche +tokio-io-timeout,https://github.com/sfackler/tokio-io-timeout,MIT OR Apache-2.0,Steven Fackler +tokio-native-tls,https://github.com/tokio-rs/tls,MIT,Tokio Contributors +tokio-openssl,https://github.com/tokio-rs/tokio-openssl,MIT OR Apache-2.0,Alex Crichton +tokio-postgres,https://github.com/sfackler/rust-postgres,MIT OR Apache-2.0,Steven Fackler +tokio-retry,https://github.com/srijs/rust-tokio-retry,MIT,Sam Rijs +tokio-rustls,https://github.com/rustls/tokio-rustls,MIT OR Apache-2.0,The tokio-rustls Authors +tokio-tungstenite,https://github.com/snapview/tokio-tungstenite,MIT,"Daniel Abramov , Alexey Galakhov " +toml,https://github.com/toml-rs/toml,MIT OR Apache-2.0,Alex Crichton +toml_edit,https://github.com/toml-rs/toml,MIT OR Apache-2.0,"Andronik Ordian , Ed Page " +tonic,https://github.com/hyperium/tonic,MIT,Lucio Franco +tower,https://github.com/tower-rs/tower,MIT,Tower Maintainers +tower-http,https://github.com/tower-rs/tower-http,MIT,Tower Maintainers +tracing,https://github.com/tokio-rs/tracing,MIT,"Eliza Weisman , Tokio Contributors " +tracing-attributes,https://github.com/tokio-rs/tracing,MIT,"Tokio Contributors , Eliza Weisman , David Barsky " +tracing-core,https://github.com/tokio-rs/tracing,MIT,Tokio Contributors +tracing-log,https://github.com/tokio-rs/tracing,MIT,Tokio Contributors +tracing-serde,https://github.com/tokio-rs/tracing,MIT,Tokio Contributors +tracing-subscriber,https://github.com/tokio-rs/tracing,MIT,"Eliza Weisman , David Barsky , Tokio Contributors " +tracing-tower,https://github.com/tokio-rs/tracing,MIT,Eliza Weisman +triomphe,https://github.com/Manishearth/triomphe,MIT OR Apache-2.0,"Manish Goregaokar , The Servo Project Developers" +trust-dns-proto,https://github.com/bluejekyll/trust-dns,MIT OR Apache-2.0,Benjamin Fry +trust-dns-resolver,https://github.com/bluejekyll/trust-dns,MIT OR Apache-2.0,Benjamin Fry +try-lock,https://github.com/seanmonstar/try-lock,MIT,Sean McArthur +tungstenite,https://github.com/snapview/tungstenite-rs,MIT OR Apache-2.0,"Alexey Galakhov, Daniel Abramov" +twox-hash,https://github.com/shepmaster/twox-hash,MIT,Jake Goulding +typed-builder,https://github.com/idanarye/rust-typed-builder,MIT OR Apache-2.0,"IdanArye , Chris Morgan " +typenum,https://github.com/paholg/typenum,MIT OR Apache-2.0,"Paho Lurie-Gregg , Andre Bogus " +typetag,https://github.com/dtolnay/typetag,MIT OR Apache-2.0,David Tolnay +tz-rs,https://github.com/x-hgg-x/tz-rs,MIT OR Apache-2.0,x-hgg-x +uaparser,https://github.com/davidarmstronglewis/uap-rs,MIT,David Lewis +ucd-trie,https://github.com/BurntSushi/ucd-generate,MIT OR Apache-2.0,Andrew Gallant +unarray,https://github.com/cameron1024/unarray,MIT OR Apache-2.0,The unarray Authors +unicase,https://github.com/seanmonstar/unicase,MIT OR Apache-2.0,Sean McArthur +unicode-bidi,https://github.com/servo/unicode-bidi,MIT OR Apache-2.0,The Servo Project Developers +unicode-ident,https://github.com/dtolnay/unicode-ident,(MIT OR Apache-2.0) AND Unicode-DFS-2016,David Tolnay +unicode-normalization,https://github.com/unicode-rs/unicode-normalization,MIT OR Apache-2.0,"kwantam , Manish Goregaokar " +unicode-segmentation,https://github.com/unicode-rs/unicode-segmentation,MIT OR Apache-2.0,"kwantam , Manish Goregaokar " +unicode-truncate,https://github.com/Aetf/unicode-truncate,MIT OR Apache-2.0,Aetf +unicode-width,https://github.com/unicode-rs/unicode-width,MIT OR Apache-2.0,"kwantam , Manish Goregaokar " +universal-hash,https://github.com/RustCrypto/traits,MIT OR Apache-2.0,RustCrypto Developers +unreachable,https://github.com/reem/rust-unreachable,MIT OR Apache-2.0,Jonathan Reem +unsafe-libyaml,https://github.com/dtolnay/unsafe-libyaml,MIT,David Tolnay +untrusted,https://github.com/briansmith/untrusted,ISC,Brian Smith +uom,https://github.com/iliekturtles/uom,Apache-2.0 OR MIT,Mike Boutin +url,https://github.com/servo/rust-url,MIT OR Apache-2.0,The rust-url developers +urlencoding,https://github.com/kornelski/rust_urlencoding,MIT,"Kornel , Bertram Truong " +utf-8,https://github.com/SimonSapin/rust-utf8,MIT OR Apache-2.0,Simon Sapin +utf16_iter,https://github.com/hsivonen/utf16_iter,Apache-2.0 OR MIT,Henri Sivonen +utf8-width,https://github.com/magiclen/utf8-width,MIT,Magic Len +utf8_iter,https://github.com/hsivonen/utf8_iter,Apache-2.0 OR MIT,Henri Sivonen +uuid,https://github.com/uuid-rs/uuid,Apache-2.0 OR MIT,"Ashley Mannix, Dylan DPC, Hunar Roop Kahlon" +valuable,https://github.com/tokio-rs/valuable,MIT,The valuable Authors +void,https://github.com/reem/rust-void,MIT,Jonathan Reem +vrl,https://github.com/vectordotdev/vrl,MPL-2.0,Vector Contributors +vsimd,https://github.com/Nugine/simd,MIT,The vsimd Authors +vte,https://github.com/alacritty/vte,Apache-2.0 OR MIT,"Joe Wilm , Christian Duerr " +wait-timeout,https://github.com/alexcrichton/wait-timeout,MIT OR Apache-2.0,Alex Crichton +waker-fn,https://github.com/smol-rs/waker-fn,Apache-2.0 OR MIT,Stjepan Glavina +walkdir,https://github.com/BurntSushi/walkdir,Unlicense OR MIT,Andrew Gallant +want,https://github.com/seanmonstar/want,MIT,Sean McArthur +warp,https://github.com/seanmonstar/warp,MIT,Sean McArthur +wasi,https://github.com/bytecodealliance/wasi,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,The Cranelift Project Developers +wasi,https://github.com/bytecodealliance/wasi-rs,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,The Cranelift Project Developers +wasite,https://github.com/ardaku/wasite,Apache-2.0 OR BSL-1.0 OR MIT,The wasite Authors +wasm-bindgen,https://github.com/rustwasm/wasm-bindgen,MIT OR Apache-2.0,The wasm-bindgen Developers +wasm-bindgen-backend,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/backend,MIT OR Apache-2.0,The wasm-bindgen Developers +wasm-bindgen-futures,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/futures,MIT OR Apache-2.0,The wasm-bindgen Developers +wasm-bindgen-macro,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro,MIT OR Apache-2.0,The wasm-bindgen Developers +wasm-bindgen-macro-support,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro-support,MIT OR Apache-2.0,The wasm-bindgen Developers +wasm-bindgen-shared,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/shared,MIT OR Apache-2.0,The wasm-bindgen Developers +wasm-streams,https://github.com/MattiasBuelens/wasm-streams,MIT OR Apache-2.0,Mattias Buelens +web-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/web-sys,MIT OR Apache-2.0,The wasm-bindgen Developers +webbrowser,https://github.com/amodm/webbrowser-rs,MIT OR Apache-2.0,Amod Malviya @amodm +webpki-roots,https://github.com/rustls/webpki-roots,MPL-2.0,The webpki-roots Authors +whoami,https://github.com/ardaku/whoami,Apache-2.0 OR BSL-1.0 OR MIT,The whoami Authors +widestring,https://github.com/starkat99/widestring-rs,MIT OR Apache-2.0,Kathryn Long +widestring,https://github.com/starkat99/widestring-rs,MIT OR Apache-2.0,The widestring Authors +winapi,https://github.com/retep998/winapi-rs,MIT OR Apache-2.0,Peter Atashian +winapi-util,https://github.com/BurntSushi/winapi-util,Unlicense OR MIT,Andrew Gallant +windows,https://github.com/microsoft/windows-rs,MIT OR Apache-2.0,Microsoft +windows-service,https://github.com/mullvad/windows-service-rs,MIT OR Apache-2.0,Mullvad VPN +winnow,https://github.com/winnow-rs/winnow,MIT,The winnow Authors +winreg,https://github.com/gentoo90/winreg-rs,MIT,Igor Shaula +wit-bindgen-rt,https://github.com/bytecodealliance/wasi-rs,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,The wit-bindgen-rt Authors +woothee,https://github.com/woothee/woothee-rust,Apache-2.0,hhatto +write16,https://github.com/hsivonen/write16,Apache-2.0 OR MIT,The write16 Authors +writeable,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +wyz,https://github.com/myrrlyn/wyz,MIT,myrrlyn +xmlparser,https://github.com/RazrFalcon/xmlparser,MIT OR Apache-2.0,Yevhenii Reizner +yaml-rust,https://github.com/chyh1990/yaml-rust,MIT OR Apache-2.0,Yuheng Chen +yoke,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar +yoke-derive,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar +zerocopy,https://github.com/google/zerocopy,BSD-2-Clause OR Apache-2.0 OR MIT,Joshua Liebow-Feeser +zerofrom,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar +zerofrom-derive,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar +zeroize,https://github.com/RustCrypto/utils/tree/master/zeroize,Apache-2.0 OR MIT,The RustCrypto Project Developers +zerovec,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers +zerovec-derive,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar +zstd,https://github.com/gyscos/zstd-rs,MIT,Alexandre Bury +zstd-safe,https://github.com/gyscos/zstd-rs,MIT OR Apache-2.0,Alexandre Bury +zstd-sys,https://github.com/gyscos/zstd-rs,MIT OR Apache-2.0,Alexandre Bury diff --git a/Makefile b/Makefile index 46636c8bc472b..afe737044b878 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,28 @@ # .PHONY: $(MAKECMDGOALS) all .DEFAULT_GOAL := help +mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) +mkfile_dir := $(dir $(mkfile_path)) + # Begin OS detection ifeq ($(OS),Windows_NT) # is Windows_NT on XP, 2000, 7, Vista, 10... export OPERATING_SYSTEM := Windows - export RUST_TARGET ?= "x86_64-unknown-windows-msvc" - export DEFAULT_FEATURES = default-msvc + export RUST_TARGET ?= "x86_64-unknown-windows-msvc" + export FEATURES ?= default-msvc + undefine DNSTAP_BENCHES else export OPERATING_SYSTEM := $(shell uname) # same as "uname -s" - export RUST_TARGET ?= "x86_64-unknown-linux-gnu" - export DEFAULT_FEATURES = default + export RUST_TARGET ?= "x86_64-unknown-linux-gnu" + export FEATURES ?= default + export DNSTAP_BENCHES := dnstap-benches endif # Override this with any scopes for testing/benching. -export SCOPE ?= "" +export SCOPE ?= # Override this with any extra flags for cargo bench -export CARGO_BENCH_FLAGS ?= "" +export CARGO_BENCH_FLAGS ?= +# override this to put criterion output elsewhere +export CRITERION_HOME ?= $(mkfile_dir)target/criterion # Override to false to disable autospawning services on integration tests. export AUTOSPAWN ?= true # Override to control if services are turned off after integration tests. @@ -24,12 +31,16 @@ export AUTODESPAWN ?= ${AUTOSPAWN} export AUTOINSTALL ?= false # Override to true for a bit more log output in your environment building (more coming!) export VERBOSE ?= false -# Override to set a different Rust toolchain -export RUST_TOOLCHAIN ?= $(shell cat rust-toolchain) # Override the container tool. Tries docker first and then tries podman. export CONTAINER_TOOL ?= auto ifeq ($(CONTAINER_TOOL),auto) - override CONTAINER_TOOL = $(shell docker version >/dev/null 2>&1 && echo docker || echo podman) + ifeq ($(shell docker version >/dev/null 2>&1 && echo docker), docker) + override CONTAINER_TOOL = docker + else ifeq ($(shell podman version >/dev/null 2>&1 && echo podman), podman) + override CONTAINER_TOOL = podman + else + override CONTAINER_TOOL = unknown + endif endif # If we're using podman create pods else if we're using docker create networks. export CURRENT_DIR = $(shell pwd) @@ -37,27 +48,32 @@ export CURRENT_DIR = $(shell pwd) # Override this to automatically enter a container containing the correct, full, official build environment for Vector, ready for development export ENVIRONMENT ?= false # The upstream container we publish artifacts to on a successful master build. -export ENVIRONMENT_UPSTREAM ?= timberio/ci_image -# Override to disable building the container, having it pull from the Github packages repo instead -# TODO: Disable this by default. Blocked by `docker pull` from Github Packages requiring authenticated login +export ENVIRONMENT_UPSTREAM ?= docker.io/timberio/vector-dev:sha-3eadc96742a33754a5859203b58249f6a806972a +# Override to disable building the container, having it pull from the GitHub packages repo instead +# TODO: Disable this by default. Blocked by `docker pull` from GitHub Packages requiring authenticated login export ENVIRONMENT_AUTOBUILD ?= true +# Override to disable force pulling the image, leaving the container tool to pull it only when necessary instead +export ENVIRONMENT_AUTOPULL ?= true # Override this when appropriate to disable a TTY being available in commands with `ENVIRONMENT=true` export ENVIRONMENT_TTY ?= true -# A list of WASM modules by name -export WASM_MODULES = $(patsubst tests/data/wasm/%/,%,$(wildcard tests/data/wasm/*/)) -# The same WASM modules, by output path. -export WASM_MODULE_OUTPUTS = $(patsubst %,/target/wasm32-wasi/%,$(WASM_MODULES)) +# Override to specify which network the environment will be connected to (leave empty to use the container tool default) +export ENVIRONMENT_NETWORK ?= host +# Override to specify environment port(s) to publish to the host (leave empty to not configure any port publishing) +# Multiple port publishing can be provided using spaces, for example: 8686:8686 8080:8080/udp +export ENVIRONMENT_PUBLISH ?= # Set dummy AWS credentials if not present - used for AWS and ES integration tests export AWS_ACCESS_KEY_ID ?= "dummy" export AWS_SECRET_ACCESS_KEY ?= "dummy" # Set version -export VERSION ?= $(shell scripts/version.sh) +export VERSION ?= $(shell command -v cargo >/dev/null && cargo vdev version || echo unknown) # Set if you are on the CI and actually want the things to happen. (Non-CI users should never set this.) export CI ?= false +export RUST_VERSION ?= $(shell grep channel rust-toolchain.toml | cut -d '"' -f 2) + FORMATTING_BEGIN_YELLOW = \033[0;33m FORMATTING_BEGIN_BLUE = \033[36m FORMATTING_END = \033[0m @@ -65,6 +81,7 @@ FORMATTING_END = \033[0m # "One weird trick!" https://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions EMPTY:= SPACE:= ${EMPTY} ${EMPTY} +COMMA:= , help: @printf -- "${FORMATTING_BEGIN_BLUE} __ __ __${FORMATTING_END}\n" @@ -114,15 +131,18 @@ define ENVIRONMENT_EXEC --init \ --interactive \ --env INSIDE_ENVIRONMENT=true \ - --network host \ - --mount type=bind,source=${CURRENT_DIR},target=/git/timberio/vector \ - --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ - --mount type=volume,source=vector-target,target=/git/timberio/vector/target \ + $(if $(ENVIRONMENT_NETWORK),--network $(ENVIRONMENT_NETWORK),) \ + --mount type=bind,source=${CURRENT_DIR},target=/git/vectordotdev/vector \ + $(if $(findstring docker,$(CONTAINER_TOOL)),--mount type=bind$(COMMA)source=/var/run/docker.sock$(COMMA)target=/var/run/docker.sock,) \ + --mount type=volume,source=vector-target,target=/git/vectordotdev/vector/target \ --mount type=volume,source=vector-cargo-cache,target=/root/.cargo \ + --mount type=volume,source=vector-rustup-cache,target=/root/.rustup \ + $(foreach publish,$(ENVIRONMENT_PUBLISH),--publish $(publish)) \ $(ENVIRONMENT_UPSTREAM) endef +ifneq ($(CONTAINER_TOOL), unknown) ifeq ($(ENVIRONMENT_AUTOBUILD), true) define ENVIRONMENT_PREPARE @echo "Building the environment. (ENVIRONMENT_AUTOBUILD=true) This may take a few minutes..." @@ -132,11 +152,17 @@ define ENVIRONMENT_PREPARE --file scripts/environment/Dockerfile \ . endef -else +else ifeq ($(ENVIRONMENT_AUTOPULL), true) define ENVIRONMENT_PREPARE + @echo "Pulling the environment image. (ENVIRONMENT_AUTOPULL=true)" $(CONTAINER_TOOL) pull $(ENVIRONMENT_UPSTREAM) endef endif +else +define ENVIRONMENT_PREPARE +$(error "Please install a container tool such as Docker or Podman") +endef +endif .PHONY: check-container-tool check-container-tool: ## Checks what container tool is installed @@ -154,7 +180,7 @@ environment-prepare: ## Prepare the Vector dev shell using $CONTAINER_TOOL. .PHONY: environment-clean environment-clean: ## Clean the Vector dev shell using $CONTAINER_TOOL. - @$(CONTAINER_TOOL) volume rm -f vector-target vector-cargo-cache + @$(CONTAINER_TOOL) volume rm -f vector-target vector-cargo-cache vector-rustup-cache @$(CONTAINER_TOOL) rmi $(ENVIRONMENT_UPSTREAM) || true .PHONY: environment-push @@ -163,14 +189,15 @@ environment-push: environment-prepare ## Publish a new version of the container ##@ Building .PHONY: build +build: check-build-tools build: export CFLAGS += -g0 -O3 build: ## Build the project in release mode (Supports `ENVIRONMENT=true`) - ${MAYBE_ENVIRONMENT_EXEC} cargo build --release --no-default-features --features ${DEFAULT_FEATURES} + ${MAYBE_ENVIRONMENT_EXEC} cargo build --release --no-default-features --features ${FEATURES} ${MAYBE_ENVIRONMENT_COPY_ARTIFACTS} .PHONY: build-dev build-dev: ## Build the project in development mode (Supports `ENVIRONMENT=true`) - ${MAYBE_ENVIRONMENT_EXEC} cargo build --no-default-features --features ${DEFAULT_FEATURES} + ${MAYBE_ENVIRONMENT_EXEC} cargo build --no-default-features --features ${FEATURES} .PHONY: build-x86_64-unknown-linux-gnu build-x86_64-unknown-linux-gnu: target/x86_64-unknown-linux-gnu/release/vector ## Build a release binary for the x86_64-unknown-linux-gnu triple. @@ -181,11 +208,11 @@ build-aarch64-unknown-linux-gnu: target/aarch64-unknown-linux-gnu/release/vector @echo "Output to ${<}" .PHONY: build-x86_64-unknown-linux-musl -build-x86_64-unknown-linux-musl: target/x86_64-unknown-linux-musl/release/vector ## Build a release binary for the aarch64-unknown-linux-gnu triple. +build-x86_64-unknown-linux-musl: target/x86_64-unknown-linux-musl/release/vector ## Build a release binary for the x86_64-unknown-linux-musl triple. @echo "Output to ${<}" .PHONY: build-aarch64-unknown-linux-musl -build-aarch64-unknown-linux-musl: target/aarch64-unknown-linux-musl/release/vector ## Build a release binary for the aarch64-unknown-linux-gnu triple. +build-aarch64-unknown-linux-musl: target/aarch64-unknown-linux-musl/release/vector ## Build a release binary for the aarch64-unknown-linux-musl triple. @echo "Output to ${<}" .PHONY: build-armv7-unknown-linux-gnueabihf @@ -196,10 +223,26 @@ build-armv7-unknown-linux-gnueabihf: target/armv7-unknown-linux-gnueabihf/releas build-armv7-unknown-linux-musleabihf: target/armv7-unknown-linux-musleabihf/release/vector ## Build a release binary for the armv7-unknown-linux-musleabihf triple. @echo "Output to ${<}" +.PHONY: build-arm-unknown-linux-gnueabi +build-arm-unknown-linux-gnueabi: target/arm-unknown-linux-gnueabi/release/vector ## Build a release binary for the arm-unknown-linux-gnueabi triple. + @echo "Output to ${<}" + +.PHONY: build-arm-unknown-linux-musleabi +build-arm-unknown-linux-musleabi: target/arm-unknown-linux-musleabi/release/vector ## Build a release binary for the arm-unknown-linux-musleabi triple. + @echo "Output to ${<}" + .PHONY: build-graphql-schema build-graphql-schema: ## Generate the `schema.json` for Vector's GraphQL API ${MAYBE_ENVIRONMENT_EXEC} cargo run --bin graphql-schema --no-default-features --features=default-no-api-client +.PHONY: check-build-tools +check-build-tools: +ifneq ($(ENVIRONMENT), true) +ifeq ($(shell command -v cargo >/dev/null || echo not-found), not-found) + $(error "Please install Rust: https://www.rust-lang.org/tools/install") +endif +endif + ##@ Cross Compiling .PHONY: cross-enable cross-enable: cargo-install-cross @@ -208,6 +251,16 @@ cross-enable: cargo-install-cross CARGO_HANDLES_FRESHNESS: ${EMPTY} +# GNU Make < 3.82 pattern matching priority depends on the definition order +# so cross-image-% must be defined before cross-% +.PHONY: cross-image-% +cross-image-%: export TRIPLE =$($(strip @):cross-image-%=%) +cross-image-%: + $(CONTAINER_TOOL) build \ + --tag vector-cross-env:${TRIPLE} \ + --file scripts/cross/${TRIPLE}.dockerfile \ + . + # This is basically a shorthand for folks. # `cross-anything-triple` will call `cross anything --target triple` with the right features. .PHONY: cross-% @@ -242,15 +295,18 @@ target/%/vector.tar.gz: export PROFILE ?=$(word 2,${PAIR}) target/%/vector.tar.gz: target/%/vector CARGO_HANDLES_FRESHNESS rm -rf target/scratch/vector-${TRIPLE} || true mkdir -p target/scratch/vector-${TRIPLE}/bin target/scratch/vector-${TRIPLE}/etc - cp --recursive --force --verbose \ + cp -R -f -v \ target/${TRIPLE}/${PROFILE}/vector \ target/scratch/vector-${TRIPLE}/bin/vector - cp --recursive --force --verbose \ + cp -R -f -v \ README.md \ LICENSE \ + licenses \ + NOTICE \ + LICENSE-3rdparty.csv \ config \ target/scratch/vector-${TRIPLE}/ - cp --recursive --force --verbose \ + cp -R -f -v \ distribution/systemd \ target/scratch/vector-${TRIPLE}/etc/ tar --create \ @@ -261,29 +317,29 @@ target/%/vector.tar.gz: target/%/vector CARGO_HANDLES_FRESHNESS ./vector-${TRIPLE} rm -rf target/scratch/ -.PHONY: cross-image-% -cross-image-%: export TRIPLE =$($(strip @):cross-image-%=%) -cross-image-%: - $(CONTAINER_TOOL) build \ - --tag vector-cross-env:${TRIPLE} \ - --file scripts/cross/${TRIPLE}.dockerfile \ - scripts/cross - ##@ Testing (Supports `ENVIRONMENT=true`) +# nextest doesn't support running doc tests yet so this is split out as +# `test-docs` +# https://github.com/nextest-rs/nextest/issues/16 +# +# criterion doesn't support the flags needed by nextest to run so these are left +# out for now +# https://github.com/bheisler/criterion.rs/issues/562 +# +# `cargo test` lacks support for testing _just_ benches otherwise we'd have +# a target for that +# https://github.com/rust-lang/cargo/issues/6454 .PHONY: test test: ## Run the unit test suite - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --workspace --features ${DEFAULT_FEATURES} ${SCOPE} --all-targets -- --nocapture + ${MAYBE_ENVIRONMENT_EXEC} cargo nextest run --workspace --no-fail-fast --no-default-features --features "${FEATURES}" ${SCOPE} -.PHONY: test-components -test-components: ## Test with all components enabled -# TODO(jesse) add `wasm-benches` when https://github.com/timberio/vector/issues/5106 is fixed -# test-components: $(WASM_MODULE_OUTPUTS) -test-components: export DEFAULT_FEATURES:="${DEFAULT_FEATURES} benches remap-benches" -test-components: test +.PHONY: test-docs +test-docs: ## Run the docs test suite + ${MAYBE_ENVIRONMENT_EXEC} cargo test --doc --workspace --no-fail-fast --no-default-features --features "${FEATURES}" ${SCOPE} .PHONY: test-all -test-all: test test-behavior test-integration ## Runs all tests, unit, behaviorial, and integration. +test-all: test test-docs test-behavior test-integration test-component-validation ## Runs all tests: unit, docs, behavioral, integration, and component validation. .PHONY: test-x86_64-unknown-linux-gnu test-x86_64-unknown-linux-gnu: cross-test-x86_64-unknown-linux-gnu ## Runs unit tests on the x86_64-unknown-linux-gnu triple @@ -293,243 +349,49 @@ test-x86_64-unknown-linux-gnu: cross-test-x86_64-unknown-linux-gnu ## Runs unit test-aarch64-unknown-linux-gnu: cross-test-aarch64-unknown-linux-gnu ## Runs unit tests on the aarch64-unknown-linux-gnu triple ${EMPTY} +.PHONY: test-behavior-config +test-behavior-config: ## Runs configuration related behavioral tests + ${MAYBE_ENVIRONMENT_EXEC} cargo build --no-default-features --features secret-backend-example --bin secret-backend-example + ${MAYBE_ENVIRONMENT_EXEC} cargo run --no-default-features --features transforms -- test tests/behavior/config/* + +.PHONY: test-behavior-% +test-behavior-%: ## Runs behavioral test for a given category + ${MAYBE_ENVIRONMENT_EXEC} cargo run --no-default-features --features transforms -- test tests/behavior/$*/* + .PHONY: test-behavior -test-behavior: ## Runs behaviorial test - ${MAYBE_ENVIRONMENT_EXEC} cargo run -- test tests/behavior/**/* +test-behavior: ## Runs all behavioral tests +test-behavior: test-behavior-transforms test-behavior-formats test-behavior-config .PHONY: test-integration test-integration: ## Runs all integration tests -test-integration: test-integration-aws test-integration-clickhouse test-integration-docker-logs test-integration-elasticsearch -test-integration: test-integration-gcp test-integration-humio test-integration-influxdb test-integration-kafka -test-integration: test-integration-loki test-integration-mongodb_metrics test-integration-nats -test-integration: test-integration-nginx test-integration-postgresql_metrics test-integration-prometheus test-integration-pulsar -test-integration: test-integration-splunk - -.PHONY: test-integration-aws -test-integration-aws: ## Runs AWS integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh aws stop - @scripts/setup_integration_env.sh aws start - sleep 10 # Many services are very slow... Give them a sec... -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features aws-integration-tests --lib ::aws_ -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh aws stop -endif - -.PHONY: test-integration-clickhouse -test-integration-clickhouse: ## Runs Clickhouse integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh clickhouse stop - @scripts/setup_integration_env.sh clickhouse start - sleep 5 # Many services are very slow... Give them a sec... -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features clickhouse-integration-tests --lib ::clickhouse:: -- --nocapture +test-integration: test-integration-amqp test-integration-appsignal test-integration-aws test-integration-axiom test-integration-azure test-integration-chronicle test-integration-clickhouse +test-integration: test-integration-databend test-integration-docker-logs test-integration-elasticsearch +test-integration: test-integration-eventstoredb test-integration-fluent test-integration-gcp test-integration-greptimedb test-integration-humio test-integration-http-client test-integration-influxdb +test-integration: test-integration-kafka test-integration-logstash test-integration-loki test-integration-mongodb test-integration-nats +test-integration: test-integration-nginx test-integration-opentelemetry test-integration-postgres test-integration-prometheus test-integration-pulsar +test-integration: test-integration-redis test-integration-splunk test-integration-dnstap test-integration-datadog-agent test-integration-datadog-logs test-integration-e2e-datadog-logs +test-integration: test-integration-datadog-traces test-integration-shutdown + +test-integration-%-cleanup: + cargo vdev --verbose integration stop $* + +test-integration-%: + cargo vdev --verbose integration test $* ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh clickhouse stop -endif - -.PHONY: test-integration-docker-logs -test-integration-docker-logs: ## Runs Docker Logs integration tests - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features docker-logs-integration-tests --lib ::docker_logs:: -- --nocapture - - -.PHONY: test-integration-elasticsearch -test-integration-elasticsearch: ## Runs Elasticsearch integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh elasticsearch stop - @scripts/setup_integration_env.sh elasticsearch start - sleep 60 # Many services are very slow... Give them a sec... -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features es-integration-tests --lib ::elasticsearch:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh elasticsearch stop -endif - -.PHONY: test-integration-gcp -test-integration-gcp: ## Runs GCP integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh gcp stop - @scripts/setup_integration_env.sh gcp start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features "gcp-integration-tests gcp-pubsub-integration-tests gcp-cloud-storage-integration-tests" \ - --lib ::gcp:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh gcp stop -endif - -.PHONY: test-integration-humio -test-integration-humio: ## Runs Humio integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh humio stop - @scripts/setup_integration_env.sh humio start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features humio-integration-tests --lib "::humio::.*::integration_tests::" -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh humio stop -endif -.PHONY: test-integration-influxdb -test-integration-influxdb: ## Runs InfluxDB integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh influxdb stop - @scripts/setup_integration_env.sh influxdb start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features influxdb-integration-tests --lib integration_tests:: -- ::influxdb --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh influxdb stop -endif - -.PHONY: test-integration-kafka -test-integration-kafka: ## Runs Kafka integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh kafka stop - @scripts/setup_integration_env.sh kafka start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features "kafka-integration-tests rdkafka-plain" --lib ::kafka:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh kafka stop -endif - -.PHONY: test-integration-loki -test-integration-loki: ## Runs Loki integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh loki stop - @scripts/setup_integration_env.sh loki start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features loki-integration-tests --lib ::loki:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh loki stop -endif - -.PHONY: test-integration-mongodb_metrics -test-integration-mongodb_metrics: ## Runs MongoDB Metrics integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh mongodb_metrics stop - @scripts/setup_integration_env.sh mongodb_metrics start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features mongodb_metrics-integration-tests --lib ::mongodb_metrics:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh mongodb_metrics stop -endif - -.PHONY: test-integration-nats -test-integration-nats: ## Runs NATS integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh nats stop - @scripts/setup_integration_env.sh nats start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features nats-integration-tests --lib ::nats:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh nats stop -endif - -.PHONY: test-integration-nginx -test-integration-nginx: ## Runs nginx integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh nginx stop - @scripts/setup_integration_env.sh nginx start -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features nginx-integration-tests --lib ::nginx:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh nginx stop -endif - -.PHONY: test-integration-postgresql_metrics -test-integration-postgresql_metrics: ## Runs postgresql_metrics integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh postgresql_metrics stop - @scripts/setup_integration_env.sh postgresql_metrics start - sleep 5 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features postgresql_metrics-integration-tests --lib ::postgresql_metrics:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh postgresql_metrics stop -endif - -.PHONY: test-integration-prometheus -test-integration-prometheus: ## Runs Prometheus integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh influxdb stop - @scripts/setup_integration_env.sh prometheus stop - @scripts/setup_integration_env.sh influxdb start - @scripts/setup_integration_env.sh prometheus start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features prometheus-integration-tests --lib ::prometheus:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh influxdb stop - @scripts/setup_integration_env.sh prometheus stop -endif - -.PHONY: test-integration-pulsar -test-integration-pulsar: ## Runs Pulsar integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh pulsar stop - @scripts/setup_integration_env.sh pulsar start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features pulsar-integration-tests --lib ::pulsar:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh pulsar stop -endif - -.PHONY: test-integration-splunk -test-integration-splunk: ## Runs Splunk integration tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh splunk stop - @scripts/setup_integration_env.sh splunk start - sleep 10 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features splunk-integration-tests --lib ::splunk_hec:: -- --nocapture -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh splunk stop + make test-integration-$*-cleanup endif .PHONY: test-e2e-kubernetes test-e2e-kubernetes: ## Runs Kubernetes E2E tests (Sorry, no `ENVIRONMENT=true` support) - @scripts/test-e2e-kubernetes.sh - -.PHONY: test-shutdown -test-shutdown: ## Runs shutdown tests -ifeq ($(AUTOSPAWN), true) - @scripts/setup_integration_env.sh kafka stop - @scripts/setup_integration_env.sh kafka start - sleep 30 # Many services are very slow... Give them a sec.. -endif - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --features shutdown-tests --test shutdown -- --test-threads 4 -ifeq ($(AUTODESPAWN), true) - @scripts/setup_integration_env.sh kafka stop -endif + RUST_VERSION=${RUST_VERSION} scripts/test-e2e-kubernetes.sh .PHONY: test-cli test-cli: ## Runs cli tests - ${MAYBE_ENVIRONMENT_EXEC} cargo test --no-fail-fast --no-default-features --test cli -- --test-threads 4 - -.PHONY: test-wasm-build-modules -test-wasm-build-modules: $(WASM_MODULE_OUTPUTS) ### Build all WASM test modules - -$(WASM_MODULE_OUTPUTS): MODULE = $(notdir $@) -$(WASM_MODULE_OUTPUTS): export CFLAGS += -g0 -O3 -$(WASM_MODULE_OUTPUTS): ### Build a specific WASM module - @echo "# Building WASM module ${MODULE}, requires Rustc for wasm32-wasi." - ${MAYBE_ENVIRONMENT_EXEC} cargo build \ - --manifest-path tests/data/wasm/${MODULE}/Cargo.toml \ - --target wasm32-wasi \ - --release \ - --package ${MODULE} - -.PHONY: test-wasm -test-wasm: export TEST_THREADS=1 -test-wasm: export TEST_LOG=vector=trace -test-wasm: $(WASM_MODULE_OUTPUTS) ### Run engine tests - ${MAYBE_ENVIRONMENT_EXEC} cargo test wasm --no-fail-fast --no-default-features --features "transforms-field_filter transforms-wasm transforms-lua transforms-add_fields" --lib --all-targets -- --nocapture + ${MAYBE_ENVIRONMENT_EXEC} cargo nextest run --no-fail-fast --no-default-features --features cli-tests --test integration --test-threads 4 + +.PHONY: test-component-validation +test-component-validation: ## Runs component validation tests + ${MAYBE_ENVIRONMENT_EXEC} cargo nextest run --no-fail-fast --no-default-features --features component-validation-tests --status-level pass --test-threads 4 components::validation::tests ##@ Benching (Supports `ENVIRONMENT=true`) @@ -538,18 +400,33 @@ bench: ## Run benchmarks in /benches ${MAYBE_ENVIRONMENT_EXEC} cargo bench --no-default-features --features "benches" ${CARGO_BENCH_FLAGS} ${MAYBE_ENVIRONMENT_COPY_ARTIFACTS} +.PHONY: bench-dnstap +bench-dnstap: ## Run dnstap benches + ${MAYBE_ENVIRONMENT_EXEC} cargo bench --no-default-features --features "dnstap-benches" --bench dnstap ${CARGO_BENCH_FLAGS} + ${MAYBE_ENVIRONMENT_COPY_ARTIFACTS} + +.PHONY: bench-dnsmsg-parser +bench-dnsmsg-parser: ## Run dnsmsg-parser benches + ${MAYBE_ENVIRONMENT_EXEC} CRITERION_HOME="$(CRITERION_HOME)" cargo bench --manifest-path lib/dnsmsg-parser/Cargo.toml ${CARGO_BENCH_FLAGS} + ${MAYBE_ENVIRONMENT_COPY_ARTIFACTS} + +.PHONY: bench-remap-functions +bench-remap-functions: ## Run remap-functions benches + ${MAYBE_ENVIRONMENT_EXEC} CRITERION_HOME="$(CRITERION_HOME)" cargo bench --manifest-path lib/vrl/stdlib/Cargo.toml ${CARGO_BENCH_FLAGS} + ${MAYBE_ENVIRONMENT_COPY_ARTIFACTS} + .PHONY: bench-remap bench-remap: ## Run remap benches ${MAYBE_ENVIRONMENT_EXEC} cargo bench --no-default-features --features "remap-benches" --bench remap ${CARGO_BENCH_FLAGS} ${MAYBE_ENVIRONMENT_COPY_ARTIFACTS} -.PHONY: bench-wasm -bench-wasm: $(WASM_MODULE_OUTPUTS) ### Run WASM benches - ${MAYBE_ENVIRONMENT_EXEC} cargo bench --no-default-features --features "wasm-benches" --bench wasm wasm ${CARGO_BENCH_FLAGS} +.PHONY: bench-transform +bench-transform: ## Run transform benches + ${MAYBE_ENVIRONMENT_EXEC} cargo bench --no-default-features --features "transform-benches" --bench transform ${CARGO_BENCH_FLAGS} ${MAYBE_ENVIRONMENT_COPY_ARTIFACTS} .PHONY: bench-languages -bench-languages: $(WASM_MODULE_OUTPUTS) ### Run language comparison benches +bench-languages: ### Run language comparison benches ${MAYBE_ENVIRONMENT_EXEC} cargo bench --no-default-features --features "language-benches" --bench languages ${CARGO_BENCH_FLAGS} ${MAYBE_ENVIRONMENT_COPY_ARTIFACTS} @@ -560,78 +437,74 @@ bench-metrics: ## Run metrics benches .PHONY: bench-all bench-all: ### Run all benches -bench-all: $(WASM_MODULE_OUTPUTS) - ${MAYBE_ENVIRONMENT_EXEC} cargo bench --no-default-features --features "benches remap-benches wasm-benches metrics-benches language-benches" ${CARGO_BENCH_FLAGS} +bench-all: bench-remap-functions + ${MAYBE_ENVIRONMENT_EXEC} cargo bench --no-default-features --features "benches remap-benches metrics-benches language-benches ${DNSTAP_BENCHES}" ${CARGO_BENCH_FLAGS} ${MAYBE_ENVIRONMENT_COPY_ARTIFACTS} ##@ Checking .PHONY: check check: ## Run prerequisite code checks - ${MAYBE_ENVIRONMENT_EXEC} cargo check --all --no-default-features --features ${DEFAULT_FEATURES} + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check rust .PHONY: check-all check-all: ## Check everything -check-all: check-fmt check-clippy check-style check-markdown check-docs +check-all: check-fmt check-clippy check-docs check-all: check-version check-examples check-component-features -check-all: check-scripts -check-all: check-helm-lint check-helm-dependencies check-helm-snapshots -check-all: check-kubernetes-yaml +check-all: check-scripts check-deny check-component-docs check-licenses .PHONY: check-component-features check-component-features: ## Check that all component features are setup properly - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-component-features.sh + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check component-features .PHONY: check-clippy check-clippy: ## Check code with Clippy - ${MAYBE_ENVIRONMENT_EXEC} cargo clippy --workspace --all-targets --features all-integration-tests -- -D warnings + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check rust --clippy .PHONY: check-docs check-docs: ## Check that all /docs file are valid - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-docs.sh + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check docs .PHONY: check-fmt check-fmt: ## Check that all files are formatted properly - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-fmt.sh + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check fmt -.PHONY: check-style -check-style: ## Check that all files are styled properly - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-style.sh +.PHONY: check-licenses +check-licenses: ## Check that the 3rd-party license file is up to date + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check licenses .PHONY: check-markdown check-markdown: ## Check that markdown is styled properly - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-markdown.sh + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check markdown .PHONY: check-version check-version: ## Check that Vector's version is correct accounting for recent changes - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-version.rb + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check version .PHONY: check-examples check-examples: ## Check that the config/examples files are valid - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-examples.sh + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check examples .PHONY: check-scripts -check-scripts: ## Check that scipts do not have common mistakes - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-scripts.sh - -.PHONY: check-helm-lint -check-helm-lint: ## Check that Helm charts pass helm lint - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-helm-lint.sh +check-scripts: ## Check that scripts do not have common mistakes + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check scripts -.PHONY: check-helm-dependencies -check-helm-dependencies: ## Check that Helm charts have up-to-date dependencies - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/helm-dependencies.sh validate +.PHONY: check-deny +check-deny: ## Check advisories licenses and sources for crate dependencies + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check deny -.PHONY: check-helm-snapshots -check-helm-snapshots: ## Check that the Helm template snapshots do not diverge from the Helm charts - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/helm-template-snapshot.sh check +.PHONY: check-events +check-events: ## Check that events satisfy patterns set in https://github.com/vectordotdev/vector/blob/master/rfcs/2020-03-17-2064-event-driven-observability.md + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check events -.PHONY: check-kubernetes-yaml -check-kubernetes-yaml: ## Check that the generated Kubernetes YAML configs are up to date - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/kubernetes-yaml.sh check +.PHONY: check-component-docs +check-component-docs: generate-component-docs ## Checks that the machine-generated component Cue docs are up-to-date. + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev check component-docs -check-events: ## Check that events satisfy patterns set in https://github.com/timberio/vector/blob/master/rfcs/2020-03-17-2064-event-driven-observability.md - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-events.sh +##@ Rustdoc +build-rustdoc: ## Build Vector's Rustdocs + # This command is mostly intended for use by the build process in vectordotdev/vector-rustdoc + ${MAYBE_ENVIRONMENT_EXEC} cargo doc --no-deps --workspace ##@ Packaging @@ -647,7 +520,7 @@ target/artifacts/vector-${VERSION}-%.tar.gz: target/%/release/vector.tar.gz .PHONY: package package: build ## Build the Vector archive - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/package-archive.sh + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev package archive .PHONY: package-x86_64-unknown-linux-gnu-all package-x86_64-unknown-linux-gnu-all: package-x86_64-unknown-linux-gnu package-deb-x86_64-unknown-linux-gnu package-rpm-x86_64-unknown-linux-gnu # Build all x86_64 GNU packages @@ -656,13 +529,16 @@ package-x86_64-unknown-linux-gnu-all: package-x86_64-unknown-linux-gnu package-d package-x86_64-unknown-linux-musl-all: package-x86_64-unknown-linux-musl # Build all x86_64 MUSL packages .PHONY: package-aarch64-unknown-linux-musl-all -package-aarch64-unknown-linux-musl-all: package-aarch64-unknown-linux-musl package-deb-aarch64 package-rpm-aarch64 # Build all aarch64 MUSL packages +package-aarch64-unknown-linux-musl-all: package-aarch64-unknown-linux-musl # Build all aarch64 MUSL packages .PHONY: package-aarch64-unknown-linux-gnu-all -package-aarch64-unknown-linux-gnu-all: package-aarch64-unknown-linux-gnu # Build all aarch64 GNU packages +package-aarch64-unknown-linux-gnu-all: package-aarch64-unknown-linux-gnu package-deb-aarch64 package-rpm-aarch64 # Build all aarch64 GNU packages .PHONY: package-armv7-unknown-linux-gnueabihf-all -package-armv7-unknown-linux-gnueabihf-all: package-armv7-unknown-linux-gnueabihf package-deb-armv7-gnu package-rpm-armv7-gnu # Build all armv7-unknown-linux-gnueabihf MUSL packages +package-armv7-unknown-linux-gnueabihf-all: package-armv7-unknown-linux-gnueabihf package-deb-armv7-gnu package-rpm-armv7hl-gnu # Build all armv7-unknown-linux-gnueabihf MUSL packages + +.PHONY: package-arm-unknown-linux-gnueabi-all +package-arm-unknown-linux-gnueabi-all: package-arm-unknown-linux-gnueabi package-deb-arm-gnu # Build all arm-unknown-linux-gnueabihf GNU packages .PHONY: package-x86_64-unknown-linux-gnu package-x86_64-unknown-linux-gnu: target/artifacts/vector-${VERSION}-x86_64-unknown-linux-gnu.tar.gz ## Build an archive suitable for the `x86_64-unknown-linux-gnu` triple. @@ -688,41 +564,53 @@ package-armv7-unknown-linux-gnueabihf: target/artifacts/vector-${VERSION}-armv7- package-armv7-unknown-linux-musleabihf: target/artifacts/vector-${VERSION}-armv7-unknown-linux-musleabihf.tar.gz ## Build an archive suitable for the `armv7-unknown-linux-musleabihf triple. @echo "Output to ${<}." +.PHONY: package-arm-unknown-linux-gnueabi +package-arm-unknown-linux-gnueabi: target/artifacts/vector-${VERSION}-arm-unknown-linux-gnueabi.tar.gz ## Build an archive suitable for the `arm-unknown-linux-gnueabi` triple. + @echo "Output to ${<}." + +.PHONY: package-arm-unknown-linux-musleabi +package-arm-unknown-linux-musleabi: target/artifacts/vector-${VERSION}-arm-unknown-linux-musleabi.tar.gz ## Build an archive suitable for the `arm-unknown-linux-musleabi` triple. + @echo "Output to ${<}." + # debs .PHONY: package-deb-x86_64-unknown-linux-gnu package-deb-x86_64-unknown-linux-gnu: package-x86_64-unknown-linux-gnu ## Build the x86_64 GNU deb package - $(CONTAINER_TOOL) run -v $(PWD):/git/timberio/vector/ -e TARGET=x86_64-unknown-linux-gnu timberio/ci_image ./scripts/package-deb.sh + $(CONTAINER_TOOL) run -v $(PWD):/git/vectordotdev/vector/ -e TARGET=x86_64-unknown-linux-gnu -e VECTOR_VERSION $(ENVIRONMENT_UPSTREAM) cargo vdev package deb .PHONY: package-deb-x86_64-unknown-linux-musl package-deb-x86_64-unknown-linux-musl: package-x86_64-unknown-linux-musl ## Build the x86_64 GNU deb package - $(CONTAINER_TOOL) run -v $(PWD):/git/timberio/vector/ -e TARGET=x86_64-unknown-linux-musl timberio/ci_image ./scripts/package-deb.sh + $(CONTAINER_TOOL) run -v $(PWD):/git/vectordotdev/vector/ -e TARGET=x86_64-unknown-linux-musl -e VECTOR_VERSION $(ENVIRONMENT_UPSTREAM) cargo vdev package deb .PHONY: package-deb-aarch64 -package-deb-aarch64: package-aarch64-unknown-linux-musl ## Build the aarch64 deb package - $(CONTAINER_TOOL) run -v $(PWD):/git/timberio/vector/ -e TARGET=aarch64-unknown-linux-musl timberio/ci_image ./scripts/package-deb.sh +package-deb-aarch64: package-aarch64-unknown-linux-gnu ## Build the aarch64 deb package + $(CONTAINER_TOOL) run -v $(PWD):/git/vectordotdev/vector/ -e TARGET=aarch64-unknown-linux-gnu -e VECTOR_VERSION $(ENVIRONMENT_UPSTREAM) cargo vdev package deb .PHONY: package-deb-armv7-gnu package-deb-armv7-gnu: package-armv7-unknown-linux-gnueabihf ## Build the armv7-unknown-linux-gnueabihf deb package - $(CONTAINER_TOOL) run -v $(PWD):/git/timberio/vector/ -e TARGET=armv7-unknown-linux-gnueabihf timberio/ci_image ./scripts/package-deb.sh + $(CONTAINER_TOOL) run -v $(PWD):/git/vectordotdev/vector/ -e TARGET=armv7-unknown-linux-gnueabihf -e VECTOR_VERSION $(ENVIRONMENT_UPSTREAM) cargo vdev package deb + +.PHONY: package-deb-arm-gnu +package-deb-arm-gnu: package-arm-unknown-linux-gnueabi ## Build the arm-unknown-linux-gnueabi deb package + $(CONTAINER_TOOL) run -v $(PWD):/git/vectordotdev/vector/ -e TARGET=arm-unknown-linux-gnueabi -e VECTOR_VERSION $(ENVIRONMENT_UPSTREAM) cargo vdev package deb # rpms .PHONY: package-rpm-x86_64-unknown-linux-gnu package-rpm-x86_64-unknown-linux-gnu: package-x86_64-unknown-linux-gnu ## Build the x86_64 rpm package - $(CONTAINER_TOOL) run -v $(PWD):/git/timberio/vector/ -e TARGET=x86_64-unknown-linux-gnu timberio/ci_image ./scripts/package-rpm.sh + $(CONTAINER_TOOL) run -v $(PWD):/git/vectordotdev/vector/ -e TARGET=x86_64-unknown-linux-gnu -e VECTOR_VERSION $(ENVIRONMENT_UPSTREAM) cargo vdev package rpm .PHONY: package-rpm-x86_64-unknown-linux-musl package-rpm-x86_64-unknown-linux-musl: package-x86_64-unknown-linux-musl ## Build the x86_64 musl rpm package - $(CONTAINER_TOOL) run -v $(PWD):/git/timberio/vector/ -e TARGET=x86_64-unknown-linux-musl timberio/ci_image ./scripts/package-rpm.sh + $(CONTAINER_TOOL) run -v $(PWD):/git/vectordotdev/vector/ -e TARGET=x86_64-unknown-linux-musl -e VECTOR_VERSION $(ENVIRONMENT_UPSTREAM) cargo vdev package rpm .PHONY: package-rpm-aarch64 -package-rpm-aarch64: package-aarch64-unknown-linux-musl ## Build the aarch64 rpm package - $(CONTAINER_TOOL) run -v $(PWD):/git/timberio/vector/ -e TARGET=aarch64-unknown-linux-musl timberio/ci_image ./scripts/package-rpm.sh +package-rpm-aarch64: package-aarch64-unknown-linux-gnu ## Build the aarch64 rpm package + $(CONTAINER_TOOL) run -v $(PWD):/git/vectordotdev/vector/ -e TARGET=aarch64-unknown-linux-gnu -e VECTOR_VERSION $(ENVIRONMENT_UPSTREAM) cargo vdev package rpm -.PHONY: package-rpm-armv7-gnu -package-rpm-armv7-gnu: package-armv7-unknown-linux-gnueabihf ## Build the armv7-unknown-linux-gnueabihf rpm package - $(CONTAINER_TOOL) run -v $(PWD):/git/timberio/vector/ -e TARGET=armv7-unknown-linux-gnueabihf timberio/ci_image ./scripts/package-rpm.sh +.PHONY: package-rpm-armv7hl-gnu +package-rpm-armv7hl-gnu: package-armv7-unknown-linux-gnueabihf ## Build the armv7hl-unknown-linux-gnueabihf rpm package + $(CONTAINER_TOOL) run -v $(PWD):/git/vectordotdev/vector/ -e TARGET=armv7-unknown-linux-gnueabihf -e ARCH=armv7hl -e VECTOR_VERSION $(ENVIRONMENT_UPSTREAM) cargo vdev package rpm ##@ Releasing @@ -731,49 +619,47 @@ release: release-prepare generate release-commit ## Release a new Vector version .PHONY: release-commit release-commit: ## Commits release changes - @scripts/release-commit.rb + @cargo vdev release commit .PHONY: release-docker release-docker: ## Release to Docker Hub - @scripts/build-docker.sh + @cargo vdev release docker .PHONY: release-github -release-github: ## Release to Github - @scripts/release-github.sh +release-github: ## Release to GitHub + @cargo vdev release github .PHONY: release-homebrew -release-homebrew: ## Release to timberio Homebrew tap - @scripts/release-homebrew.sh +release-homebrew: ## Release to vectordotdev Homebrew tap + @cargo vdev release homebrew .PHONY: release-prepare release-prepare: ## Prepares the release with metadata and highlights - @scripts/release-prepare.rb + @cargo vdev release prepare .PHONY: release-push release-push: ## Push new Vector version - @scripts/release-push.sh - -.PHONY: release-rollback -release-rollback: ## Rollback pending release changes - @scripts/release-rollback.rb + @cargo vdev release push .PHONY: release-s3 release-s3: ## Release artifacts to S3 - @scripts/release-s3.sh + @cargo vdev release s3 -.PHONY: release-helm -release-helm: ## Package and release Helm Chart - @scripts/release-helm.sh +.PHONY: sha256sum +sha256sum: ## Generate SHA256 checksums of CI artifacts + scripts/checksum.sh -.PHONY: sync-install -sync-install: ## Sync the install.sh script for access via sh.vector.dev - @aws s3 cp distribution/install.sh s3://sh.vector.dev --sse --acl public-read +##@ Vector Remap Language -##@ Utility +.PHONY: test-vrl +test-vrl: ## Run the VRL test suite + @cargo vdev test-vrl + +.PHONY: compile-vrl-wasm +compile-vrl-wasm: ## Compile VRL crates to WASM target + cargo vdev build vrl-wasm -.PHONY: build-ci-docker-images -build-ci-docker-images: ## Rebuilds all Docker images used in CI - @scripts/build-ci-docker-images.sh +##@ Utility .PHONY: clean clean: environment-clean ## Clean everything @@ -782,59 +668,35 @@ clean: environment-clean ## Clean everything .PHONY: fmt fmt: ## Format code ${MAYBE_ENVIRONMENT_EXEC} cargo fmt - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/check-style.sh --fix + +.PHONY: generate-kubernetes-manifests +generate-kubernetes-manifests: ## Generate Kubernetes manifests from latest Helm chart + cargo vdev build manifests + +.PHONY: generate-component-docs +generate-component-docs: ## Generate per-component Cue docs from the configuration schema. + ${MAYBE_ENVIRONMENT_EXEC} cargo build $(if $(findstring true,$(CI)),--quiet,) + target/debug/vector generate-schema > /tmp/vector-config-schema.json 2>/dev/null + ${MAYBE_ENVIRONMENT_EXEC} cargo vdev build component-docs /tmp/vector-config-schema.json \ + $(if $(findstring true,$(CI)),>/dev/null,) .PHONY: signoff signoff: ## Signsoff all previous commits since branch creation scripts/signoff.sh -.PHONY: slim-builds -slim-builds: ## Updates the Cargo config to product disk optimized builds (for CI, not for users) - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/slim-builds.sh - -ifeq (${CI}, true) -.PHONY: ci-sweep -ci-sweep: ## Sweep up the CI to try to get more disk space. - @echo "Preparing the CI for build by sweeping up disk space a bit..." - df -h - sudo apt-get --purge autoremove --yes - sudo apt-get clean - sudo rm -rf "/opt/*" "/usr/local/*" - sudo rm -rf "/usr/local/share/boost" && sudo rm -rf "${AGENT_TOOLSDIRECTORY}" - docker system prune --force - df -h -endif - .PHONY: version version: ## Get the current Vector version - @scripts/version.sh + @cargo vdev version .PHONY: git-hooks git-hooks: ## Add Vector-local git hooks for commit sign-off @scripts/install-git-hooks.sh -.PHONY: update-helm-dependencies -update-helm-dependencies: ## Recursively update the dependencies of the Helm charts in the proper order - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/helm-dependencies.sh update - -.PHONY: update-helm-snapshots -update-helm-snapshots: ## Update the Helm template snapshots from the Helm charts - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/helm-template-snapshot.sh update - -.PHONY: update-kubernetes-yaml -update-kubernetes-yaml: ## Regenerate the Kubernetes YAML configs - ${MAYBE_ENVIRONMENT_EXEC} ./scripts/kubernetes-yaml.sh update - .PHONY: cargo-install-% cargo-install-%: override TOOL = $(@:cargo-install-%=%) cargo-install-%: $(if $(findstring true,$(AUTOINSTALL)),cargo install ${TOOL} --quiet; cargo clean,) -.PHONY: ensure-has-wasm-toolchain ### Configures a wasm toolchain for test artifact building, if required -ensure-has-wasm-toolchain: target/wasm32-wasi/.obtained -target/wasm32-wasi/.obtained: - @echo "# You should also install WABT for WASM module development!" - @echo "# You can use your package manager or check https://github.com/WebAssembly/wabt" - ${MAYBE_ENVIRONMENT_EXEC} rustup target add wasm32-wasi - @mkdir -p target/wasm32-wasi - @touch target/wasm32-wasi/.obtained +.PHONY: ci-generate-publish-metadata +ci-generate-publish-metadata: ## Generates the necessary metadata required for building/publishing Vector. + cargo vdev build publish-metadata diff --git a/NOTICE b/NOTICE index c93528a493b1c..1c1d999241f54 100644 --- a/NOTICE +++ b/NOTICE @@ -1,6 +1,9 @@ +Unless explicitly stated otherwise all files in this repository are licensed under the Mozilla +Public License, version 2.0 (MPL-2.0). +This product includes software developed at Datadog (https://www.datadoghq.com/) - Copyright (c) 2020 Vector Authors + Copyright (c) 2020 Vector Authors ADDITIONAL NOTICES FOR DISTRIBUTIONS IN OBJECT FORM diff --git a/PRIVACY.md b/PRIVACY.md index 20dcf0964a826..5e3d210233bd7 100644 --- a/PRIVACY.md +++ b/PRIVACY.md @@ -6,28 +6,24 @@ of your most sensitive data, and therefore, Vector strives to be as transparent as possible with our privacy efforts. This document clarifies how the Vector project thinks about privacy now and in the future. - - -1. [Vector Itself](#vector-itself) - 1. [Downloads](#downloads) - 1. [Phoning Home](#phoning-home) -1. [Vector Website & Docs](#vector-website--docs) -1. [Vector Community](#vector-community) - 1. [Vector Repository](#vector-repository) - 1. [Vector Chat](#vector-chat) - - +- [Vector Itself](#vector-itself) + - [Downloads](#downloads) + - [Phoning Home](#phoning-home) +- [Vector Website & Docs](#vector-website--docs) +- [Vector Community](#vector-community) + - [Vector Repository](#vector-repository) + - [Vector Chat](#vector-chat) ## Vector Itself ### Downloads -Vector uses AWS S3, Github assets, [Cloudsmith][cloudsmith], and Docker Hub to host -release artifacts. Vector does track download counts in aggregate. For Github, Cloudsmith, -and Docker this data is anonymous, but for AWS S3 IP addresses are logged. There is no -way to disable IP address tracking within the AWS S3 logs. If you are concerned about -sharing your IP address we recommend using a proxy, or downloading Vector from a -different channel. +Vector uses AWS S3, GitHub assets, and Docker Hub to host release artifacts. +Vector does track download counts in aggregate. For GitHub, and Docker this data +is anonymous, but for AWS S3 IP addresses are logged. There is no way to disable +IP address tracking within the AWS S3 logs. If you are concerned about sharing +your IP address we recommend using a proxy, or downloading Vector from +a different channel. ### Phoning Home @@ -45,9 +41,9 @@ derived from backend server logs which are anonymized. Vector uses ### Vector Repository -The Vector repository is hosted on Github. You can review their privacy policy +The Vector repository is hosted on GitHub. You can review their privacy policy [here][github_pp]. Additionally, Vector will not attempt to mine information -about users that interact with Vector on Github. Vector team members will +about users that interact with Vector on GitHub. Vector team members will occasionally reach out to active users offer help debugging or learn about ways Vector can improve. @@ -60,5 +56,3 @@ privacy policy [here][discord_pp]. [discord_pp]: https://discord.com/privacy/ [netlify_analytics]: https://www.netlify.com/products/analytics/ [vero_pp]: https://www.getvero.com/privacy/ -[cloudsmith]: https://cloudsmith.com/ - diff --git a/README.md b/README.md index 66a0cfb3754d0..ae93fa4d6ddca 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,37 @@

- Get Started  •   - Docs  •   - Guides  •   - Integrations  •   - Chat  •   - Download + Quickstart  •   + Docs  •   + Guides  •   + Integrations  •   + Chat  •   + Download  •   + Rust Crate Docs

- Vector + Vector

## What is Vector? Vector is a high-performance, end-to-end (agent & aggregator) observability data -platform that puts you in control of your observability data. +pipeline that puts you in control of your observability data. [Collect][docs.sources], [transform][docs.transforms], and [route][docs.sinks] -all your logs, metrics, and traces to any vendors you want today and any other -vendors you may want tomorrow. Vector enables cost reduction, novel data -enrichment, and data security when you need it, not when is most convenient for -your vendors. 100% open source and up to 10x faster than every alternative. +all your logs and metrics to any vendors you want today and any other +vendors you may want tomorrow. Vector enables dramatic cost reduction, novel +data enrichment, and data security where you need it, not where it is most +convenient for your vendors. Additionally, it is open source and up to 10x +faster than every alternative in the space. -To get started, follow our [**getting started guides**][urls.getting_started] -or [**install Vector**][docs.installation]. +To get started, follow our [**quickstart guide**][docs.quickstart] or [**install +Vector**][docs.installation]. ### Principles * **Reliable** - Built in [Rust][urls.rust], Vector's primary design goal is reliability. * **End-to-end** - Deploys as an [agent][docs.roles#agent] or [aggregator][docs.roles#aggregator]. Vector is a complete platform. -* **Unified** - [Logs][docs.data-model.log], [metrics][docs.data-model.metric], and traces (coming soon). One tool for all of your data. +* **Unified** - [Logs][docs.data-model.log], [metrics][docs.data-model.metric] (beta), and traces (coming soon). One tool for all of your data. ### Use cases @@ -53,40 +55,41 @@ or [**install Vector**][docs.installation]. ### About -* [**Concepts**][docs.concepts] -* [**Guarantees**][docs.guarantees] -* [**Architecture**][docs.architecture] - [data model][docs.data-model] ([log][docs.data-model.log], [metric][docs.data-model.metric]), [topology model][docs.topology-model], [concurrency model][docs.concurrency-model], [runtime model][docs.runtime-model] +* [**Concepts**][docs.about.concepts] +* [**Under the hood**][docs.about.under-the-hood] + * [**Architecture**][docs.under-the-hood.architecture] - [data model][docs.architecture.data-model] ([log][docs.data-model.log], [metric][docs.data-model.metric]), [pipeline model][docs.architecture.pipeline-model], [concurrency model][docs.architecture.concurrency-model], [runtime model][docs.architecture.runtime-model] + * [**Networking**][docs.under-the-hood.networking] - [ARC][docs.networking.adaptive-request-concurrency] + * [**Guarantees**][docs.under-the-hood.guarantees] ### Setup -* [**Installation**][docs.installation] - [operating systems][docs.operating_systems], [package managers][docs.package_managers], [platforms][docs.platforms] ([Kubernetes][docs.kubernetes]), [manual][docs.manual] -* [**Configuration**][docs.setup.configuration] -* [**Deployment**][docs.deployment] - [roles][docs.roles], [topologies][docs.topologies] +* [**Quickstart**][docs.setup.quickstart] +* [**Installation**][docs.setup.installation] - [operating systems][docs.installation.operating_systems], [package managers][docs.installation.package_managers], [platforms][docs.installation.platforms] ([Kubernetes][docs.platforms.kubernetes]), [manual][docs.installation.manual] +* [**Deployment**][docs.deployment] - [roles][docs.deployment.roles], [topologies][docs.deployment.topologies] ### Reference * **Configuration** - * [**Sources**][docs.sources] - [docker_logs][docs.sources.docker_logs], [file][docs.sources.file], [http][docs.sources.http], [journald][docs.sources.journald], [kafka][docs.sources.kafka], [socket][docs.sources.socket], and [dozens more...][docs.sources] - * [**Transforms**][docs.transforms] - [filter][docs.transforms.filter], [json_parser][docs.transforms.json_parser], [log_to_metric][docs.transforms.log_to_metric], [logfmt_parser][docs.transforms.logfmt_parser], [lua][docs.transforms.lua], [regex_parser][docs.transforms.regex_parser], and [dozens more...][docs.transforms] - * [**Sinks**][docs.sinks] - [aws_cloudwatch_logs][docs.sinks.aws_cloudwatch_logs], [aws_s3][docs.sinks.aws_s3], [clickhouse][docs.sinks.clickhouse], [elasticsearch][docs.sinks.elasticsearch], [gcp_cloud_storage][docs.sinks.gcp_cloud_storage], and [dozens more...][docs.sinks] - * [**Vector Remap Language**][docs.remap] - * [**Unit tests**][docs.unit-tests] -* [**API**][docs.api] -* [**CLI**][docs.cli] + * [**Sources**][docs.configuration.sources] - [docker_logs][docs.sources.docker_logs], [file][docs.sources.file], [http][docs.sources.http], [journald][docs.sources.journald], [kafka][docs.sources.kafka], [socket][docs.sources.socket], and [many more...][docs.sources] + * [**Transforms**][docs.configuration.transforms] - [dedupe][docs.transforms.dedupe], [filter][docs.transforms.filter], [geoip][docs.transforms.geoip], [log_to_metric][docs.transforms.log_to_metric], [lua][docs.transforms.lua], [remap][docs.transforms.remap], and [many more...][docs.transforms] + * [**Sinks**][docs.configuration.sinks] - [aws_cloudwatch_logs][docs.sinks.aws_cloudwatch_logs], [aws_s3][docs.sinks.aws_s3], [clickhouse][docs.sinks.clickhouse], [elasticsearch][docs.sinks.elasticsearch], [gcp_cloud_storage][docs.sinks.gcp_cloud_storage], and [many more...][docs.sinks] + * [**Unit tests**][docs.configuration.tests] +* [**Remap Language**][docs.reference.vrl] +* [**API**][docs.reference.api] +* [**CLI**][docs.reference.cli] ### Administration -* [**Process management**][docs.process-management] -* [**Monitoring & observing**][docs.monitoring] -* [**Updating**][docs.updating] -* [**Validating**][docs.validating] +* [**Management**][docs.administration.management] +* [**Monitoring & observing**][docs.administration.monitoring] +* [**Upgrading**][docs.administration.upgrading] +* [**Validating**][docs.administration.validating] ### Resources -* [**Community**][urls.vector_community] - [chat][urls.vector_chat], [@vectordotdev][urls.vector_twitter] -* [**Releases**][urls.vector_releases] - [latest][urls.latest] -* [**Roadmap**][urls.vector_roadmap] - [vote on new features][urls.vote_feature] -* **Policies** - [Security][urls.vector_security_policy], [Privacy][urls.vector_privacy_policy], [Code of Conduct][urls.vector_code_of_conduct] +* [**Community**][urls.vector_community] - [chat][urls.vector_chat], [calendar][urls.vector_calendar], [@vectordotdev][urls.vector_twitter] +* [**Releases**][urls.vector_releases] +* **Policies** - [Code of Conduct][urls.vector_code_of_conduct], [Privacy][urls.vector_privacy_policy], [Releases][urls.vector_releases_policy], [Security][urls.vector_security_policy], [Versioning][urls.vector_versioning_policy] ## Comparisons @@ -95,13 +98,13 @@ or [**install Vector**][docs.installation]. The following performance tests demonstrate baseline performance between common protocols with the exception of the Regex Parsing test. -| Test | Vector | Filebeat | FluentBit | FluentD | Logstash | SplunkUF | SplunkHF | -|-------------------------------------------------------------------------------------------------------------------:|:---------------:|:--------:|:---------------:|:---------:|:---------:|:---------------:|:--------:| -| [TCP to Blackhole](https://github.com/timberio/vector-test-harness/tree/master/cases/tcp_to_blackhole_performance) | _**86mib/s**_ | n/a | 64.4mib/s | 27.7mib/s | 40.6mib/s | n/a | n/a | -| [File to TCP](https://github.com/timberio/vector-test-harness/tree/master/cases/file_to_tcp_performance) | _**76.7mib/s**_ | 7.8mib/s | 35mib/s | 26.1mib/s | 3.1mib/s | 40.1mib/s | 39mib/s | -| [Regex Parsing](https://github.com/timberio/vector-test-harness/tree/master/cases/regex_parsing_performance) | 13.2mib/s | n/a | _**20.5mib/s**_ | 2.6mib/s | 4.6mib/s | n/a | 7.8mib/s | -| [TCP to HTTP](https://github.com/timberio/vector-test-harness/tree/master/cases/tcp_to_http_performance) | _**26.7mib/s**_ | n/a | 19.6mib/s | <1mib/s | 2.7mib/s | n/a | n/a | -| [TCP to TCP](https://github.com/timberio/vector-test-harness/tree/master/cases/tcp_to_tcp_performance) | 69.9mib/s | 5mib/s | 67.1mib/s | 3.9mib/s | 10mib/s | _**70.4mib/s**_ | 7.6mib/s | +| Test | Vector | Filebeat | FluentBit | FluentD | Logstash | SplunkUF | SplunkHF | +| ---------------------------------------------------------------------------------------------------------------------- | --------------- | -------- | --------------- | --------- | --------- | --------------- | -------- | +| [TCP to Blackhole](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/tcp_to_blackhole_performance) | _**86mib/s**_ | n/a | 64.4mib/s | 27.7mib/s | 40.6mib/s | n/a | n/a | +| [File to TCP](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/file_to_tcp_performance) | _**76.7mib/s**_ | 7.8mib/s | 35mib/s | 26.1mib/s | 3.1mib/s | 40.1mib/s | 39mib/s | +| [Regex Parsing](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/regex_parsing_performance) | 13.2mib/s | n/a | _**20.5mib/s**_ | 2.6mib/s | 4.6mib/s | n/a | 7.8mib/s | +| [TCP to HTTP](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/tcp_to_http_performance) | _**26.7mib/s**_ | n/a | 19.6mib/s | <1mib/s | 2.7mib/s | n/a | n/a | +| [TCP to TCP](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/tcp_to_tcp_performance) | 69.9mib/s | 5mib/s | 67.1mib/s | 3.9mib/s | 10mib/s | _**70.4mib/s**_ | 7.6mib/s | To learn more about our performance tests, please see the [Vector test harness][urls.vector_test_harness]. @@ -110,14 +113,14 @@ To learn more about our performance tests, please see the [Vector test harness][ The following correctness tests are not exhaustive, but they demonstrate fundamental differences in quality and attention to detail: -| Test | Vector | Filebeat | FluentBit | FluentD | Logstash | Splunk UF | Splunk HF | -|---------------------------------------------------------------------------------------------------------------------------------:|:------:|:--------:|:---------:|:-------:|:--------:|:---------:|:---------:| -| [Disk Buffer Persistence](https://github.com/timberio/vector-test-harness/tree/master/cases/disk_buffer_persistence_correctness) | **✓** | ✓ | | | ⚠ | ✓ | ✓ | -| [File Rotate (create)](https://github.com/timberio/vector-test-harness/tree/master/cases/file_rotate_create_correctness) | **✓** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [File Rotate (copytruncate)](https://github.com/timberio/vector-test-harness/tree/master/cases/file_rotate_truncate_correctness) | **✓** | | | | | ✓ | ✓ | -| [File Truncation](https://github.com/timberio/vector-test-harness/tree/master/cases/file_truncate_correctness) | **✓** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [Process (SIGHUP)](https://github.com/timberio/vector-test-harness/tree/master/cases/sighup_correctness) | **✓** | | | | ⚠ | ✓ | ✓ | -| [JSON (wrapped)](https://github.com/timberio/vector-test-harness/tree/master/cases/wrapped_json_correctness) | **✓** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| Test | Vector | Filebeat | FluentBit | FluentD | Logstash | Splunk UF | Splunk HF | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------ | -------- | --------- | ------- | -------- | --------- | --------- | +| [Disk Buffer Persistence](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/disk_buffer_persistence_correctness) | **✓** | ✓ | | | ⚠ | ✓ | ✓ | +| [File Rotate (create)](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/file_rotate_create_correctness) | **✓** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [File Rotate (copytruncate)](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/file_rotate_truncate_correctness) | **✓** | | | | | ✓ | ✓ | +| [File Truncation](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/file_truncate_correctness) | **✓** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [Process (SIGHUP)](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/sighup_correctness) | **✓** | | | | ⚠ | ✓ | ✓ | +| [JSON (wrapped)](https://github.com/vectordotdev/vector-test-harness/tree/master/cases/wrapped_json_correctness) | **✓** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | To learn more about our correctness tests, please see the [Vector test harness][urls.vector_test_harness]. @@ -125,22 +128,22 @@ To learn more about our correctness tests, please see the [Vector test harness][ Vector is an end-to-end, unified, open data platform. -| | **Vector** | Beats | Fluentbit | Fluentd | Logstash | Splunk UF | Splunk HF | -|--------------------:|:----------:|:-----:|:---------:|:-------:|:--------:|:---------:|:---------:| -| **End-to-end** | **✓** | | | | | | | -| Agent | **✓** | ✓ | ✓ | | | ✓ | | -| Aggregator | **✓** | | | ✓ | ✓ | | ✓ | -| **Unified** | **✓** | | | | | | | -| Logs | **✓** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| Metrics | **✓** | ⚠ | ⚠ | ⚠ | ⚠ | ⚠ | ⚠ | -| Traces | 🚧 | | | | | | | -| **Open** | **✓** | | ✓ | ✓ | | | | -| Open-source | **✓** | ✓ | ✓ | ✓ | ✓ | | | -| Vendor-neutral | **✓** | | ✓ | ✓ | | | | -| **Reliability** | **✓** | | | | | | | -| Memory-safe | **✓** | | | | | | | -| Delivery guarantees | **✓** | | | | | ✓ | ✓ | -| Multi-core | **✓** | ✓ | | ✓ | ✓ | ✓ | ✓ | +| | **Vector** | Beats | Fluentbit | Fluentd | Logstash | Splunk UF | Splunk HF | Telegraf | +| ------------------- | ---------- | ----- | --------- | ------- | -------- | --------- | --------- | -------- | +| **End-to-end** | **✓** | | | | | | | ✓ | +| Agent | **✓** | ✓ | ✓ | | | ✓ | | ✓ | +| Aggregator | **✓** | | | ✓ | ✓ | | ✓ | ✓ | +| **Unified** | **✓** | | | | | | | ✓ | +| Logs | **✓** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| Metrics | **✓** | ⚠ | ⚠ | ⚠ | ⚠ | ⚠ | ⚠ | ✓ | +| Traces | 🚧 | | | | | | | | +| **Open** | **✓** | | ✓ | ✓ | | | | ✓ | +| Open-source | **✓** | ✓ | ✓ | ✓ | ✓ | | | ✓ | +| Vendor-neutral | **✓** | | ✓ | ✓ | | | | ✓ | +| **Reliability** | **✓** | | | | | | | | +| Memory-safe | **✓** | | | | | | | ✓ | +| Delivery guarantees | **✓** | | | | | ✓ | ✓ | | +| Multi-core | **✓** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ⚠ = Not interoperable, metrics are represented as structured logs @@ -148,99 +151,78 @@ Vector is an end-to-end, unified, open data platform. ---

- Developed with ❤️ by Timber.io - Security Policy - Privacy Policy + Developed with ❤️ by Datadog - Security Policy - Privacy Policy

-[docs.administration.process-management]: https://vector.dev/docs/administration/process-management/ +[docs.about.concepts]: https://vector.dev/docs/about/concepts/ +[docs.about.under-the-hood]: https://vector.dev/docs/about/under-the-hood/ +[docs.administration.monitoring]: https://vector.dev/docs/administration/monitoring/ +[docs.administration.management]: https://vector.dev/docs/administration/management/ +[docs.administration.upgrading]: https://vector.dev/docs/administration/upgrading/ [docs.administration.validating]: https://vector.dev/docs/administration/validating/ -[docs.api]: https://vector.dev/docs/reference/api/ -[docs.architecture]: https://vector.dev/docs/about/under-the-hood/architecture/ -[docs.cli]: https://vector.dev/docs/reference/cli/ -[docs.concepts]: https://vector.dev/docs/about/concepts/ -[docs.concurrency-model]: https://vector.dev/docs/about/under-the-hood/architecture/concurrency-model/ -[docs.setup.configuration]: https://vector.dev/docs/setup/configuration/ -[docs.data-model]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/ -[docs.data-model.log#timestamps]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/log/#timestamps -[docs.data-model.log#types]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/log/#types +[docs.architecture.concurrency-model]: https://vector.dev/docs/about/under-the-hood/architecture/concurrency-model/ +[docs.architecture.data-model]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/ +[docs.architecture.pipeline-model]: https://vector.dev/docs/about/under-the-hood/architecture/pipeline-model/ +[docs.architecture.runtime-model]: https://vector.dev/docs/about/under-the-hood/architecture/runtime-model/ +[docs.configuration.sinks]: https://vector.dev/docs/reference/configuration/sinks/ +[docs.configuration.sources]: https://vector.dev/docs/reference/configuration/sources/ +[docs.configuration.tests]: https://vector.dev/docs/reference/configuration/tests/ +[docs.configuration.transforms]: https://vector.dev/docs/reference/configuration/transforms/ [docs.data-model.log]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/log/ -[docs.data-model.metric#aggregated_histogram]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/metric/#aggregated_histogram -[docs.data-model.metric#aggregated_summary]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/metric/#aggregated_summary [docs.data-model.metric]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/metric/ -[docs.data_model]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/ +[docs.deployment.roles]: https://vector.dev/docs/setup/deployment/roles/ +[docs.deployment.topologies]: https://vector.dev/docs/setup/deployment/topologies/ [docs.deployment]: https://vector.dev/docs/setup/deployment/ -[docs.global-options#log_schema]: https://vector.dev/docs/reference/global-options/#log_schema -[docs.guarantees]: https://vector.dev/docs/about/guarantees/ +[docs.installation.manual]: https://vector.dev/docs/setup/installation/manual/ +[docs.installation.operating_systems]: https://vector.dev/docs/setup/installation/operating-systems/ +[docs.installation.package_managers]: https://vector.dev/docs/setup/installation/package-managers/ +[docs.installation.platforms]: https://vector.dev/docs/setup/installation/platforms/ [docs.installation]: https://vector.dev/docs/setup/installation/ -[docs.kubernetes]: https://vector.dev/docs/setup/installation/platforms/kubernetes/ -[docs.manual]: https://vector.dev/docs/setup/installation/manual/ -[docs.monitoring]: https://vector.dev/docs/administration/monitoring/ -[docs.operating_systems]: https://vector.dev/docs/setup/installation/operating-systems/ -[docs.package_managers]: https://vector.dev/docs/setup/installation/package-managers/ -[docs.platforms]: https://vector.dev/docs/setup/installation/platforms/ -[docs.process-management#reloading]: https://vector.dev/docs/administration/process-management/#reloading -[docs.process-management#starting]: https://vector.dev/docs/administration/process-management/#starting -[docs.process-management]: https://vector.dev/docs/administration/process-management/ -[docs.reference.templating]: https://vector.dev/docs/reference/templating/ -[docs.remap]: https://vector.dev/docs/reference/remap/ +[docs.networking.adaptive-request-concurrency]: https://vector.dev/docs/about/under-the-hood/networking/arc/ +[docs.platforms.kubernetes]: https://vector.dev/docs/setup/installation/platforms/kubernetes/ +[docs.quickstart]: https://vector.dev/docs/setup/quickstart/ +[docs.reference.api]: https://vector.dev/docs/reference/api/ +[docs.reference.cli]: https://vector.dev/docs/reference/cli/ +[docs.reference.vrl]: https://vector.dev/docs/reference/vrl/ [docs.roles#agent]: https://vector.dev/docs/setup/deployment/roles/#agent [docs.roles#aggregator]: https://vector.dev/docs/setup/deployment/roles/#aggregator -[docs.roles#sidecar]: https://vector.dev/docs/setup/deployment/roles/#sidecar -[docs.roles]: https://vector.dev/docs/setup/deployment/roles/ -[docs.runtime-model]: https://vector.dev/docs/about/under-the-hood/architecture/runtime-model/ -[docs.sinks.aws_cloudwatch_logs]: https://vector.dev/docs/reference/sinks/aws_cloudwatch_logs/ -[docs.sinks.aws_s3#partitioning]: https://vector.dev/docs/reference/sinks/aws_s3/#partitioning -[docs.sinks.aws_s3]: https://vector.dev/docs/reference/sinks/aws_s3/ -[docs.sinks.clickhouse]: https://vector.dev/docs/reference/sinks/clickhouse/ -[docs.sinks.elasticsearch]: https://vector.dev/docs/reference/sinks/elasticsearch/ -[docs.sinks.gcp_cloud_storage]: https://vector.dev/docs/reference/sinks/gcp_cloud_storage/ -[docs.sinks.gcp_pubsub]: https://vector.dev/docs/reference/sinks/gcp_pubsub/ -[docs.sinks]: https://vector.dev/docs/reference/sinks/ -[docs.sources.docker_logs]: https://vector.dev/docs/reference/sources/docker_logs/ -[docs.sources.file#multiline]: https://vector.dev/docs/reference/sources/file/#multiline -[docs.sources.file]: https://vector.dev/docs/reference/sources/file/ -[docs.sources.http]: https://vector.dev/docs/reference/sources/http/ -[docs.sources.journald]: https://vector.dev/docs/reference/sources/journald/ -[docs.sources.kafka]: https://vector.dev/docs/reference/sources/kafka/ -[docs.sources.socket]: https://vector.dev/docs/reference/sources/socket/ -[docs.sources]: https://vector.dev/docs/reference/sources/ -[docs.topologies]: https://vector.dev/docs/setup/deployment/topologies/ -[docs.topology-model]: https://vector.dev/docs/about/under-the-hood/architecture/topology-model/ -[docs.transforms.filter]: https://vector.dev/docs/reference/transforms/filter/ -[docs.transforms.grok_parser]: https://vector.dev/docs/reference/transforms/grok_parser/ -[docs.transforms.json_parser]: https://vector.dev/docs/reference/transforms/json_parser/ -[docs.transforms.log_to_metric]: https://vector.dev/docs/reference/transforms/log_to_metric/ -[docs.transforms.logfmt_parser]: https://vector.dev/docs/reference/transforms/logfmt_parser/ -[docs.transforms.lua]: https://vector.dev/docs/reference/transforms/lua/ -[docs.transforms.regex_parser#types]: https://vector.dev/docs/reference/transforms/regex_parser/#types -[docs.transforms.regex_parser]: https://vector.dev/docs/reference/transforms/regex_parser/ -[docs.transforms.route]: https://vector.dev/docs/reference/transforms/route/ -[docs.transforms]: https://vector.dev/docs/reference/transforms/ -[docs.unit-tests]: https://vector.dev/docs/reference/tests/ -[docs.updating]: https://vector.dev/docs/administration/updating/ -[docs.validating]: https://vector.dev/docs/administration/validating/ -[docs.what-is-vector]: https://vector.dev/docs/about/what-is-vector/ -[guides.advanced.unit-testing]: https://vector.dev/guides/advanced/unit-testing/ -[pages.releases]: https://vector.dev/releases/ -[urls.getting_started]: https://vector.dev/guides/getting-started/ -[urls.issue_1802]: https://github.com/timberio/vector/issues/1802 -[urls.latest]: https://vector.dev/releases/latest/ -[urls.pr_721]: https://github.com/timberio/vector/pull/721 -[urls.production_users]: https://github.com/timberio/vector/issues/790 +[docs.setup.installation]: https://vector.dev/docs/setup/installation/ +[docs.setup.quickstart]: https://vector.dev/docs/setup/quickstart/ +[docs.sinks.aws_cloudwatch_logs]: https://vector.dev/docs/reference/configuration/sinks/aws_cloudwatch_logs/ +[docs.sinks.aws_s3]: https://vector.dev/docs/reference/configuration/sinks/aws_s3/ +[docs.sinks.clickhouse]: https://vector.dev/docs/reference/configuration/sinks/clickhouse/ +[docs.sinks.elasticsearch]: https://vector.dev/docs/reference/configuration/sinks/elasticsearch/ +[docs.sinks.gcp_cloud_storage]: https://vector.dev/docs/reference/configuration/sinks/gcp_cloud_storage/ +[docs.sinks]: https://vector.dev/docs/reference/configuration/sinks/ +[docs.sources.docker_logs]: https://vector.dev/docs/reference/configuration/sources/docker_logs/ +[docs.sources.file]: https://vector.dev/docs/reference/configuration/sources/file/ +[docs.sources.http]: https://vector.dev/docs/reference/configuration/sources/http/ +[docs.sources.journald]: https://vector.dev/docs/reference/configuration/sources/journald/ +[docs.sources.kafka]: https://vector.dev/docs/reference/configuration/sources/kafka/ +[docs.sources.socket]: https://vector.dev/docs/reference/configuration/sources/socket/ +[docs.sources]: https://vector.dev/docs/reference/configuration/sources/ +[docs.transforms.dedupe]: https://vector.dev/docs/reference/configuration/transforms/dedupe/ +[docs.transforms.filter]: https://vector.dev/docs/reference/configuration/transforms/filter/ +[docs.transforms.log_to_metric]: https://vector.dev/docs/reference/configuration/transforms/log_to_metric/ +[docs.transforms.lua]: https://vector.dev/docs/reference/configuration/transforms/lua/ +[docs.transforms.remap]: https://vector.dev/docs/reference/configuration/transforms/remap/ +[docs.transforms]: https://vector.dev/docs/reference/configuration/transforms/ +[docs.under-the-hood.architecture]: https://vector.dev/docs/about/under-the-hood/architecture/ +[docs.under-the-hood.guarantees]: https://vector.dev/docs/about/under-the-hood/guarantees/ +[docs.under-the-hood.networking]: https://vector.dev/docs/about/under-the-hood/networking/ +[urls.production_users]: https://github.com/vectordotdev/vector/issues/790 [urls.rust]: https://www.rust-lang.org/ -[urls.rust_memory_safety]: https://hacks.mozilla.org/2019/01/fearless-security-memory-safety/ +[urls.vector_calendar]: https://calendar.vector.dev [urls.vector_chat]: https://chat.vector.dev -[urls.vector_code_of_conduct]: https://github.com/timberio/vector/blob/master/CODE_OF_CONDUCT.md +[urls.vector_code_of_conduct]: https://github.com/vectordotdev/vector/blob/master/CODE_OF_CONDUCT.md [urls.vector_community]: https://vector.dev/community/ -[urls.vector_download]: https://vector.dev/releases/latest/download/ -[urls.vector_enriching_transforms]: https://vector.dev/components/?functions%5B%5D=enrich -[urls.vector_highlights]: https://vector.dev/highlights/ -[urls.vector_parsing_transforms]: https://vector.dev/components/?functions%5B%5D=parse -[urls.vector_performance]: https://vector.dev/#performance -[urls.vector_privacy_policy]: https://github.com/timberio/vector/blob/master/PRIVACY.md -[urls.vector_releases]: https://vector.dev/releases/latest/ -[urls.vector_repo]: https://github.com/timberio/vector -[urls.vector_roadmap]: https://roadmap.vector.dev -[urls.vector_security_policy]: https://github.com/timberio/vector/security/policy -[urls.vector_test_harness]: https://github.com/timberio/vector-test-harness/ +[urls.vector_privacy_policy]: https://github.com/vectordotdev/vector/blob/master/PRIVACY.md +[urls.vector_release_policy]: https://github.com/vectordotdev/vector/blob/master/RELEASING.md +[urls.vector_releases]: https://vector.dev/releases/ +[urls.vector_releases_policy]: https://github.com/vectordotdev/vector/blob/master/RELEASES.md +[urls.vector_security_policy]: https://github.com/vectordotdev/vector/security/policy +[urls.vector_test_harness]: https://github.com/vectordotdev/vector-test-harness/ [urls.vector_twitter]: https://twitter.com/vectordotdev -[urls.vote_feature]: https://github.com/timberio/vector/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc +[urls.vector_versioning_policy]: https://github.com/vectordotdev/vector/blob/master/VERSIONING.md +[urls.vote_feature]: https://github.com/vectordotdev/vector/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3A%22type%3A+feature%22 + diff --git a/RELEASES.md b/RELEASES.md new file mode 100644 index 0000000000000..506981c1e99d4 --- /dev/null +++ b/RELEASES.md @@ -0,0 +1,103 @@ +# Releases + +This document covers Vector's releases and the relevant aspect for Vector users. + + + +1. [Channels](#channels) + 1. [Stable channel](#stable-channel) + 1. [Nightly channel](#nightly-channel) +1. [Tracking](#tracking) + 1. [Stable channel](#stable-channel-1) + 1. [Nightly channel](#nightly-channel-1) +1. [Downloading](#downloading) +1. [Cadence](#cadence) + 1. [Stable channel](#stable-channel-2) + 1. [Nightly channel](#nightly-channel-2) +1. [Support Policy](#support-policy) +1. [Guarantees](#guarantees) +1. [FAQ](#faq) + 1. [Which release type should I be using?](#which-release-type-should-i-be-using) + + + +## Channels + +### Stable channel + +The stable release channel includes official Vector releases with a semantic +version. + +### Nightly channel + +The nightly channel is released nightly, based off of the current state of the +[`master` branch]. No guarantees are made with this branch. It may include +experimental or breaking changes. + +## Tracking + +### Stable channel + +- Go to our [GitHub repository] and click the "watch" button in the top right. + Click "Custom" and then "Releases" to only be notified for new releases. + See the [GitHub subscription docs] for more info. +- Subscribe to the [Vector public calendar], release events are added. +- Follow [@vectordotdev] on Twitter. +- Head to our [chat], watch the `#announcements` channel, and configure + notifications accordingly. +- If you are using a [package manager], you should be able to see the update + available when updating your package lists. + +### Nightly channel + +Releases will appear in our [nightly artifact list] every night. + +## Downloading + +Please head over to Vector's [download page]. + +## Cadence + +### Stable channel + +- **Every 6 weeks** +- Release patch fixes as needed to fix high-priority bugs and regressions from the last major or minor release +- Release daily builds representing the latest state of Vector for feedback + +### Nightly channel + +- **Every night** + +## Support Policy + +Vector currently supports only the latest minor release, as it remains in the 0.x version series. This support policy will be reviewed and may change with the release of version 1.0.0. + +## Guarantees + +Please see the [versioning policy]. + +## FAQ + +### Which release type should I be using? + +We always appreciate early feedback on Vector as we are developing it to help +ensure the highest quality releases. + +If you are able to, running a nightly release of Vector allows you to +test out unreleased features and fixes and provide feedback to guide our +development. We aim to keep nightly as stable as possible through integration +testing, but there will occasionally be issues that slip through and are fixed +for the next nightly release. For example, you could choose to run the nightly +version in your development environments and save stable for production. +Otherwise, the stable release is your best bet. + +[Vector public calendar]: https://calendar.vector.dev +[chat]: https://chat.vector.dev +[package manager]: https://vector.dev/docs/setup/installation/package-managers/ +[download page]: https://vector.dev/download/ +[nightly artifact list]: https://packages.timber.io/vector/nightly/ +[@vectordotdev]: https://twitter.com/vectordotdev +[GitHub repository]: https://github.com/vectordotdev/vector +[GitHub subscription docs]: https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions +[`master` branch]: https://github.com/vectordotdev/vector/tree/master +[versioning policy]: https://github.com/vectordotdev/vector/blob/master/VERSIONING.md diff --git a/RELEASING.md b/RELEASING.md deleted file mode 100644 index 1c3da1bb83a72..0000000000000 --- a/RELEASING.md +++ /dev/null @@ -1,72 +0,0 @@ -# Releasing - -This document will cover how to properly release Vector. - -Vector adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) and the release -process is dependent on the version change. - - - -- [Releasing](#releasing) - - [Quick Start](#quick-start) - - [Patch Releases](#patch-releases) - - [Major/Minor Releases](#majorminor-releases) - - [Fixing Up a Release](#fixing-up-a-release) - - [Github Actions Self-hosted runners](#github-actions-self-hosted-runners) - - [Windows runner](#windows-runner) - - - - -## Quick Start - -### Patch Releases - -1. Create a new branch from the latest `vMAJOR.MINOR.PATCH` tag. Ex: `git checkout -b v1.2.3 v1.2.2` -2. Make the appropriate changes/fixes. -3. Update the `version` key in [`/Cargo.toml`] and run `cargo build` to get the version bump in the `Cargo.lock` file. -4. Update the [`/CHANGELOG.md`] header to reflect the new version `vMAJOR.MINOR.PATCH - 2019-05-02` -5. Commit the changes above with message "Release vMAJOR.MINOR.PATCH" -6. Create a new tag named `vMAJOR.MINOR.PATCH` -7. Push the new tag -8. Delete the temporary branch you created. -9. [All done](https://i.giphy.com/media/3ohzdIvnUKKjiAZTSU/giphy.webp) - -### Major/Minor Releases - -1. Switch to the `master` branch, this should be reflective of the new version's changes. -2. Update the `version` key in [`/Cargo.toml`] and run `cargo build` to get the version bump in the `Cargo.lock` file. -3. Update the [`/CHANGELOG.md`] header to reflect the new version `vMAJOR.MINOR.0 - 2019-05-02` -4. Commit the changes above with message `"Release vMAJOR.MINOR.PATCH"` -5. Create a new tag named `vMAJOR.MINOR.PATCH` -6. Push the new tag. -7. Update the [`/CHANGELOG.md`] header to reflect the new upcoming version `vNEW_MAJOR.NEW_MINOR-dev` -8. Commit the changes above with message `"Start vNEW_MAJOR.NEW_MINOR+1"` -9. [All done](https://i.giphy.com/media/3ohzdIvnUKKjiAZTSU/giphy.webp) - -## Fixing Up a Release - -If you tried to cut a release and the CI failed for some unexpected reason, you can follow these steps to recover: - -1. Switch to the `v$VERSION` branch. -1. Delete the `v$VERSION` tag. -1. Cherry pick the commits directly to the branch. -1. Run `make release` while still on that branch. -1. Commit and tag accordingly. -1. Cherry pick that commit back to master so that the release is carried over. - -[All done]: https://i.giphy.com/media/3ohzdIvnUKKjiAZTSU/giphy.webp -[`/Cargo.toml`]: /Cargo.toml -[`/CHANGELOG.md`]: /CHANGELOG.md - -## Github Actions Self-hosted runners - -We use self-hosted runners for Windows builds. You can see our [self-hosted runners here](https://github.com/timberio/vector/settings/actions). - -### Windows runner - -The current Windows runner is an Amazon EC2 instance running Windows 2019. To prep the install, use RDP to connect and then: - -1. Install [Chocolatey](https://chocolatey.org/install). -2. Install openssl, Perl, and make. (`choco install openssl strawberryperl make`). -3. Install [Visual Studio 2019](https://visualstudio.microsoft.com/downloads/). Ensure you select C++ for Linux as an optional feature. diff --git a/REVIEWING.md b/REVIEWING.md deleted file mode 100644 index a7a50b913efe2..0000000000000 --- a/REVIEWING.md +++ /dev/null @@ -1,99 +0,0 @@ -# Reviewing - -Pull request reviews are required before merging code into Vector. This document -will outline Vector's pull request review requirements. The following checklist -should be used for all pull requests: - -- [ ] Are you the code owner for the files that have changed? If not, please involve the appropriate code owner(s). (see [Code Owners](#code-owners)) -- [ ] Is the code addressing a single purpose? If not, the pull request should be broken up. (see [Single Purpose](#single-purpose)) -- [ ] Is the code readable and maintainable? If not, suggest ways to improve this. (see [Readability](#readability)) -- [ ] Is the code reasonably tested? If not, tests should be improved. (see [Testing](#testing)) -- [ ] Is code marked as unsafe? If so, verify that this is necessary. (see [Safe Code](#safe-code)) -- [ ] Is backward compatibility broken? If so, can it be avoided or deprecated? (see [Backwards compatibility](#backwards-compatibility)) -- [ ] Have dependencies changed? (see [Dependencies](#dependencies)) -- [ ] Has the code been explicitly reviewed for security issues? Dependencies included. (see [Security](#security)) -- [ ] Is there a risk of performance regressions? If so, have run the [Vector test harness](https://github.com/timberio/vector-test-harness)? (see [Performance Testing](#performance-testing)) -- [ ] Should documentation be adjusted to reflect any of these changes? (see [Documentation](#documentation)) - -## Expectations - -We endeavour to review all PRs within 2 working days (Monday to Friday - broadly Eastern Time) of submission. - -## Backward Compatibility - -All changes should strive to retain backward compatibility. If a change breaks -backward compatibility, it is much less likely to be approved. It is highly -recommended you discuss this change with a Vector team member before investing -development time. - -## Code Of Conduct - -If you have not, please review Vector's [Code of Conduct](CODE_OF_CONDUCT.md) -to ensure reviews are welcoming, open, and respectful. - -## Code Owners - -Code owners should be involved in reviews that touch their code. This is -defined in the [`.github/CODEOWNERS`](.github/CODEOWNERS) file. Involving code -owners ensures all context is applied to reviews since they have intimate -knowledge of the code. - -## Dependencies - -Dependencies should be _carefully_ selected. Before adding a dependency, we -should ask the following questions: - -1. Is the dependency worth the cost? -2. Is the dependency actively and professionally maintained? -3. Is the dependency experimental or in the development phase? -4. How large is the community? -5. Does this dependency have a history of security vulnerabilities? -6. Will this affect the portability of Vector? -7. Does the dependency have a compatible license? - -## Documentation - -Documentation is incredibly important to Vector; it is a feature and -differentiator for Vector. Pull requests should not be merged without adequate -documentation, nor should they be merged with "TODOs" opened for documentation. - -## Performance Testing - -Vector currently offers 2 methods for performance testing: - -1. Internal benchmarks located in the [`/benches` folder](benches). -2. A full end-to-end [test harness][urls.vector_test_harness] for complex - integration and performance testing. - -## Single Concern - -Changes in a pull request should address a single concern. This promotes quality -reviews through focus. If a pull request addresses multiple concerns, it should -be closed and followed up with multiple pull requests addresses each concern -separately. If you are unsure about your change, please open an issue and the -Vector maintainers will help guide you through the scope of the change. - -## Readability - -Code is read more than it is written. Code must be documented and readable. - -## Safe Code - -Unsafe code should be reviewed carefully and avoided if possible. If code is -marked as `unsafe`, a detailed comment should be added explaining why. - -## Security - -Security is incredibly important to Vector. Users rely on Vector ship -mission-critical and sensitive data. Please review the code explicitly for -security issues. See [Vector's Security guide for more info](SECURITY.md). - -## Testing - -Code should be reasonably tested. Vector does not require 100% test coverage. -We believe this level of coverage is unnecessary. As a general rule of thumb, -we strive for 80% coverage, beyond this returns are diminishing. Please use -your best judgment, some code requires more testing than others depending -on its importance. - -[urls.vector_test_harness]: https://github.com/timberio/vector-test-harness/ diff --git a/SECURITY.md b/SECURITY.md index d22fbefe72f76..03a55e393ada2 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -14,51 +14,46 @@ That's why we apply widely accepted best practices when it comes to security. This document will describe these practices and aims to be as transparent as possible on our security efforts. - - -- [Security Policy](#security-policy) - - [Project Structure](#project-structure) - - [Transparency](#transparency) - - [Open Source](#open-source) - - [Workflow](#workflow) - - [Version Control](#version-control) - - [Git](#git) - - [Signed Commits](#signed-commits) - - [Protected Branches](#protected-branches) - - [Personnel](#personnel) - - [Education](#education) - - [Policies](#policies) - - [Two-factor Authentication](#two-factor-authentication) - - [Privilege Model](#privilege-model) - - [Third-Parties](#third-parties) - - [Development & Code](#development--code) - - [Design & Architecture](#design--architecture) - - [Rust](#rust) - - [Unsafe Code](#unsafe-code) - - [User Privileges](#user-privileges) - - [Dependencies](#dependencies) - - [Change Control](#change-control) - - [Pull Requests](#pull-requests) - - [Reviews & Approvals](#reviews--approvals) - - [Merge Policies](#merge-policies) - - [Automated Checks](#automated-checks) - - [Vulnerability Scans & Security Advisories](#vulnerability-scans--security-advisories) - - [Vulnerability Remediation](#vulnerability-remediation) - - [Fuzz Testing](#fuzz-testing) - - [Infrastructure](#infrastructure) - - [CI/CD](#cicd) - - [Runtime Isolation](#runtime-isolation) - - [Network Security](#network-security) - - [Penetration Testing](#penetration-testing) - - [Protocols](#protocols) - - [Release Artifacts & Channels](#release-artifacts--channels) - - [Asset Audit Logging](#asset-audit-logging) - - [Asset Signatures & Checksums](#asset-signatures--checksums) - - [Meta](#meta) - - [Review Schedule](#review-schedule) - - [Vulnerability Reporting](#vulnerability-reporting) - - +- [Project Structure](#project-structure) + - [Transparency](#transparency) + - [Open Source](#open-source) + - [Workflow](#workflow) + - [Version Control](#version-control) + - [Git](#git) + - [Signed Commits](#signed-commits) + - [Protected Branches](#protected-branches) +- [Personnel](#personnel) + - [Education](#education) + - [Policies](#policies) + - [Two-factor Authentication](#two-factor-authentication) + - [Privilege Model](#privilege-model) + - [Third-Parties](#third-parties) +- [Development & Code](#development--code) + - [Design & Architecture](#design--architecture) + - [Rust](#rust) + - [Unsafe Code](#unsafe-code) + - [User Privileges](#user-privileges) + - [Dependencies](#dependencies) + - [Change Control](#change-control) + - [Pull Requests](#pull-requests) + - [Reviews & Approvals](#reviews--approvals) + - [Merge Policies](#merge-policies) + - [Automated Checks](#automated-checks) + - [Vulnerability Scans & Security Advisories](#vulnerability-scans--security-advisories) + - [Vulnerability Remediation](#vulnerability-remediation) + - [Fuzz Testing](#fuzz-testing) +- [Infrastructure](#infrastructure) + - [CI/CD](#cicd) + - [Runtime Isolation](#runtime-isolation) + - [Network Security](#network-security) + - [Penetration Testing](#penetration-testing) + - [Protocols](#protocols) + - [Release Artifacts & Channels](#release-artifacts--channels) + - [Asset Audit Logging](#asset-audit-logging) + - [Asset Signatures & Checksums](#asset-signatures--checksums) +- [Meta](#meta) + - [Review Schedule](#review-schedule) + - [Vulnerability Reporting](#vulnerability-reporting) ## Project Structure @@ -74,7 +69,7 @@ otherwise undermine security. #### Open Source Vector and its dependencies are open-source. All code and changes are publicly -available at [our Github repo][urls.vector_repo]. While the transparent nature +available at [our GitHub repo][urls.vector_repo]. While the transparent nature open source helps to improve security, so does the large collaborative community behind Vector. @@ -97,7 +92,7 @@ changes are audited and traceable. #### Signed Commits Because of Vector's [merge style](CONTRIBUTING.md#merge-style), commits to -release branches are signed by Github itself during the squash and merge +release branches are signed by GitHub itself during the squash and merge process. Commits to development branches are encouraged to be signed but not required since changes must go through a [review process](#reviews--approvals). @@ -127,7 +122,7 @@ team members. ### Two-factor Authentication All Vector team members are required to enable two-factor authentication -for their Github accounts. +for their GitHub accounts. ### Privilege Model @@ -171,7 +166,7 @@ the [Reviewing guide](REVIEWING.md#dependencies). ### Change Control -As noted above Vector uses the Git version control system on Github. +As noted above Vector uses the Git version control system on GitHub. #### Pull Requests @@ -203,8 +198,8 @@ When possible, we'll create automated checks to enforce security policies. [on every incoming PR][urls.cargo_deny_schedule] to the Vector project. - Vector implements [Dependabot][urls.dependabot] which performs automated upgrades on dependencies and [alerts][urls.dependabot_alerts] about any - dependency-related security vulernerabilities. -- We verify the security of our Docker images using [Synk's][urls.snyk] vulnerability + dependency-related security vulnerabilities. +- We verify the security of our Docker images using [Snyk's][urls.snyk] vulnerability scanning. #### Vulnerability Remediation @@ -238,7 +233,7 @@ All builds run in an isolated sandbox that is destroyed after each use. #### Penetration Testing -Vector performs quarterly pen tests on timber.io and vector.dev. +Vector performs quarterly pen tests on vector.dev. #### Protocols @@ -269,7 +264,7 @@ We deeply appreciate any effort to discover and disclose security vulnerabilities responsibly. If you would like to report a vulnerability or have any security concerns with -Vector, please e-mail vector@timber.io. +Vector, please e-mail security@datadoghq.com. For non-critical matters, we prefer users [open an issue][urls.new_security_report]. For us to best investigate your request, please include any of the @@ -285,19 +280,19 @@ our initial reply to your disclosure, which should be directly after receiving it, we will periodically update you with the status of the fix. [urls.cargo_deny]: https://github.com/EmbarkStudios/cargo-deny -[urls.cargo_deny_configuration]: https://github.com/timberio/vector/blob/master/deny.toml -[urls.cargo_deny_schedule]: https://github.com/timberio/vector/blob/master/.github/workflows/test.yml#L267 +[urls.cargo_deny_configuration]: https://github.com/vectordotdev/vector/blob/master/deny.toml +[urls.cargo_deny_schedule]: https://github.com/vectordotdev/vector/blob/master/.github/workflows/test.yml#L267 [urls.dependabot]: https://github.com/marketplace/dependabot-preview -[urls.dependabot_alerts]: https://github.com/timberio/vector/network/alerts +[urls.dependabot_alerts]: https://github.com/vectordotdev/vector/network/alerts [urls.git]: https://git-scm.com/ [urls.github_protected_branches]: https://help.github.com/en/github/administering-a-repository/about-protected-branches [urls.least_privilege]: https://en.wikipedia.org/wiki/Principle_of_least_privilege -[urls.new_security_report]: https://github.com/timberio/vector/issues/new?labels=domain%3A+security +[urls.new_security_report]: https://github.com/vectordotdev/vector/issues/new?labels=domain%3A+security [urls.rust]: https://www.rust-lang.org/ [urls.rust_sec]: https://rustsec.org/ [urls.snyk]: https://www.snyk.io [urls.vector_chat]: https://chat.vector.dev -[urls.vector_issues]: https://github.com/timberio/vector/issues -[urls.vector_pull_requests]: https://github.com/timberio/vector/pulls -[urls.vector_repo]: https://github.com/timberio/vector -[urls.vector_roadmap]: https://github.com/timberio/vector/milestones?direction=asc&sort=due_date&state=open +[urls.vector_issues]: https://github.com/vectordotdev/vector/issues +[urls.vector_pull_requests]: https://github.com/vectordotdev/vector/pulls +[urls.vector_repo]: https://github.com/vectordotdev/vector +[urls.vector_roadmap]: https://github.com/vectordotdev/vector/milestones?direction=asc&sort=due_date&state=open diff --git a/STYLE.md b/STYLE.md new file mode 100644 index 0000000000000..58e79ae4cd2b0 --- /dev/null +++ b/STYLE.md @@ -0,0 +1,345 @@ +# Vector Style Guide + +As a large, open-source project, it can be a struggle to ensure a consistent level of code quality. +This style guide is meant to be the canonical reference for all things style: code comments, +formatting, acceptable (or unacceptable) crates, data structures, or algorithms, and so on. + +In essence, we hope to turn pull request review comments like "why did you do it this way?" or "I +think you could try doing it this way" into "we always do X this way: ". + +## Formatting + +At a high-level, code formatting is straightforward: we use the native `rustfmt` exclusively, and +comprehensively. All Rust source code within the repository should be formatted using `rustfmt`. + +You can acquire `rustfmt` -- which is invoked as `cargo fmt` -- by following the directions listed +out [in the rustfmt repository](https://github.com/rust-lang/rustfmt#on-the-stable-toolchain). + +Vector has its own formatting rules (`.rustfmt.toml`) that will automatically be used when you run +`cargo fmt` within the repository. If you're ever in doubt, you can also run `make check-fmt` which +will invoke `cargo fmt` in a dry-run mode, checking to see if any changed files are not currently +formatted correctly. + +As an additional note, `rustfmt` sometimes can fail to format code within macros, so if you happen +to see such code that doesn't look like it's formatted correctly, you may need to manually tweak it +if `rustfmt` cannot be persuaded to format it correctly for you. :) + +### Const strings + +When re-typing the same raw string literal more than once, this can lead to typo +errors, especially when names ares similar. In general, when reasonable, it is +preferred to use [Compile-time constants](https://doc.rust-lang.org/std/keyword.const.html) +when dealing with non-dynamic strings. For example, when working with field names +for event metadata. + +As this has not always been a consistently enforced code style for the project, +please take the opportunity to update existing raw strings to use constants +when modifying existing code + +## Code Organization + +Code is primarily split into two main directories: `lib/` and `src/`. + +### `lib/`: shared libraries, etc + +We use `lib` almost entirely for shared libraries and for isolating specific pieces of code. As +Vector itself involves a large number of dependencies, it can be beneficial to move code into +isolated crates under `lib/` in order to allow them not only to be shared, but also to reduce the +amount of code that must be processed by helper tools like `cargo check` and `rust-analyzer` during +normal development, which in turn speeds up the feedback loop between writing code and getting +informed about errors, warnings, and so on. + +### `src/`: main binary and all related functionality + +The bulk of functional code resides in the `src/` directory/crate. When we refer to functional +code, we're talking about code that powers user-visible aspects of Vector, such as the sources, +transforms, and sinks themselves. There is also, of course, the requisite glue code such as parsing +command-line arguments, reading the configuration, constructing and configuring components, and +wiring them together. + +## Internal telemetry: logging, metrics, traces + +As a tool for ingesting, transforming, enriching, and shipping observability data, Vector has a +significant amount of its own internal telemetry. This telemetry is primarily logging and metrics, +but also includes some amount of tracing. + +### Logging + +For logging, we use **[`tracing`](https://docs.rs/tracing/latest/tracing)**, which doubles as both a +way to emit logs but also a way to use distributed tracing techniques to add nested and contextual +metadata by utilizing [spans](https://docs.rs/tracing/latest/tracing/#spans). + +#### Basic Usage + +For logging, we use `tracing`'s event macros which should look very similar to almost all other +logging libraries, with names that emulate the logging level being used i.e. `info!("A wild log has +appeared.");`. + +All of tracing's event macros -- `trace!`, `debug!`, `info!`, `warn!`, and `error!` -- support the +same argument format, which allows logging in some common ways: + +```rust +// Basic string literal message, no formatting: +info!("Server has started."); + +// A formatted message, with the same formatting support as `println!`/`format!`: +debug!("User connected: {}", username); + +// Adding structured fields to the even, mixing and matching the message format: +trace!(bytes_sent = 22, "Sent heartbeat packet to client.")` +error!(client_addr = %conn.get_ref().peer_addr, "Client actor received malformed packet: {}", parse_err.to_string()) +``` + +While this does not cover all the permutations of what the macros in `tracing` support, these +examples represent the preferred style of using the macros. + +#### Passing in the event message + +The `tracing` event macros support passing the event message itself in a few ways, but we prefer the +**fields/message/message arguments** order: + +```rust +// Don't do this: +info!(message = "Something happened."); +// Do this instead: +info!("Something happened."); + +// Don't do this: +debug!(%client_id, message = "Client entered authentication phase."); +debug!(message = "Client entered authentication phase.", %client_id); +// Do this instead: +debug!(%client_id, "Client entered authentication phase."); +``` + +#### Writing a good log message + +In general, there are both a few rules and a few suggestions to follow when it comes to writing a +(good) log message: + +- Messages must be written in English. No preference on which specific English dialect is used e.g. + American English, British English, Canadian English, etc. +- Sentences must be capitalized, and end with a period. +- Proper spelling and grammar when possible. Not all of us are native English speakers, and so this + is simply an ask, but not a hard requirement. +- Identifiers, or passages of note, should be called out by some means i.e. wrapping them in + backticks or quotes. Wrapping with special characters can be helpful in drawing the users eye to + anything of importance. +- If it's longer than one or two sentences, it's probably better suited as a single sentence briefly + explaining the event, with a link to external documentation that explains further. + +#### Choosing the right log level + +Similarly, choosing the right level can be important, both from the perspective of making it easy +for users to grok what they should pay attention to, but also to avoid the performance overhead of +excess logging (even if we filter it out and it never makes it to the console). + +- **TRACE**: Typically contains a high level of detail for deep/rich debugging. + + As trace logging is typically reached for when instrumenting algorithms and core pieces of logic, + care should be taken to avoid trace logging being added to tight loops, or commonly used + codepaths, where possible. Even when disabled, there can still be a small overhead associated with + logging an event at all. +- **DEBUG**: Basic information that can be helpful for initially debugging issues. + + Should typically not be used for things that happen per-event, or scales with event throughput, + but in some cases -- i.e. if it happens every 1000th event, etc -- it can safely be used. +- **INFO**: Common information about normal processes. + + This includes logical/temporal events such as notifications when components are stopped and + started, or other high-level events that, crucially, do not represent an event that an operator + needs to worry about. + + Said another way, **INFO** is primarily there for information that lets them know that an action + they just took completed successfully, whether that's the server initially starting up + successfully, or reloading a configuration successfully, or exiting Vector after receiving + SIGTERM. +- **WARN**: Something unexpected happened, but no data has been lost, nothing has crashed, and we + can recover from it without an issue. An operator might be interested in something at the **WARN** + level, but it shouldn't be informing them of things serious enough to require immediate attention. +- **ERROR**: Data loss, unrecoverable errors, and anything else that will require an operator to + intervene and recover from. These should be rare so that they maintain a high signal-to-noise + ratio in the observability tooling that operators themselves are using. + +### Metrics + +For metrics, we use **[`metrics`](https://docs.rs/metrics/latest/metrics/)**, which like `tracing`, +provides macros for emitting counters, gauges, and histograms. + +#### Basic Usage + +There are three basic metric types: counters, gauges, and histograms. **Counters** are meant for +counting things, such as the total number of requests processed, where the count only grows over +time. This is also sometimes called a *monotonic counter*, or a *monotonically increasing* counter. +**Gauges** are for tracking a single value that changes over time, and can go up and down, such as +the number of current connections. **Histograms** are for tracking multiple observations of the same +logical event, such as the time it takes to serve a request. + +Emitting metrics always involves a metric name and a value being measured. They can optionally +accept descriptive labels: + +```rust +// Counters can be incremented by an arbitrary amount, or `increment_counter!` +// can be used to simply increment by one: +counter!("bytes_sent_total", 212); +increment_counter!("requests_processed_total", "service" => "admin_grpc"); + +// Gauges can be set to an absolute value, such as setting it to the latest value of an +// external measurement, or it can be incremented and decremented by an arbitrary amount: +gauge!("bytes_allocated", 42.0); +increment_gauge!("bytes_allocated", 2048.0, "table_name" => self.table_name.to_string()); +increment_gauge!("bytes_allocated", 512.0, "table_name" => self.table_name.to_string()); +decrement_gauge!("bytes_allocated", 2560.0, "table_name" => self.table_name.to_string()) + +// Histograms simply record a measurement, but there's a fun little trait that `metrics` +// uses called `IntoF64` that lets custom types provide a way to convert themselves to a +// `f64`, which there's a default implementation of for `Duration`: +let delta = Duration::from_micros(750); +histogram!("request_duration_ns", delta); +histogram!("request_duration_ns", 742_130, "endpoint" => "frontend"); +``` + +#### Avoiding pitfalls with gauges + +Many values can appear, at first, to be best tracked as a gauge: current connection count, in-flight +request count, and so on. However, in some cases, the value being measured may change too frequently +to be reliably tracked. Metrics are typically collected on an interval, which is fine for counters +and histograms: they're purely additive. However, since a gauge is simply the _latest_ value, you +cannot know _how_ it's changed since the last time you've observed it. + +This is a common problem where a gauge tracks something like a queue size. If there's an event where +the queue grows rapidly but drains back down quickly, you may not ever observe the gauge having +changed if your collection interval is greater than the duration of such events. + +A simple pattern to follow to handle these scenarios is to use two counters -- one for the +increments, one for the decrements -- so that you can graph the difference between them, giving you +the equivalent of the "current" value. In our example above, we might have `queue_items_pushed` and +`queued_items_popped`, and if `queue_items_pushed` equals 100, and `queued_items_popped` equals 80, +we know our queue size is 20. More importantly, if we queried both of them at the same time, and +they were both zero, and then queried them both a second later, and saw that both were 100,000, we +would know that the queue size was _currently_ zero but we'd also know that we just processed +100,000 items in the past second. + +#### Best Practices + +- **Do** attempt to limit the cardinality, or number of unique values, of label values. If the + number of unique values for a label grows over time, this can represent a large amount of consumed + memory. This is a problem we expect to be fixed in the medium-term + ([#11995](https://github.com/vectordotdev/vector/issues/11995)) but is a good rule to follow + unless there's a competing reason to do so, such as when following the guidelines in the + [Component + Specification](https://github.com/vectordotdev/vector/blob/master/docs/specs/component.md). +- **Don't** emit metrics in tight loops. Each metric emission carries an overhead, and emitting them + in tight loops can cause that overhead to become noticeable in terms of CPU usage and throughput + reduction. Instead of incrementing a counter every time a loop iteration occurs, you might + consider incrementing a local variable instead, and then emitting that sum after the loop is over. +- **Don't** update a counter to measure the total number of operations/events/etc if you're already + tracking a histogram of those operations/events/etc. Histograms have a `count` property that + counts how many samples the histogram has recorded, as well as a `sum` property that is a sum of + the value of all samples the histogram has recorded. This means you can potentially get three + metrics for the cost of emitting one. + +## Dependencies + +### Error handling + +For error handling, there are two parts: _creating errors_ and _working with errors_. + +For **creating errors**, we prefer **[`snafu`](https://docs.rs/snafu)**. The `snafu` crate provides +a derive for generating the boilerplate `std::error::Error` implementation on your custom error +struct or enum. It additionally provides helpers for defining the `Display` output for your error +(potentially on a per-variant basis when working with enums). + +While there are popular alternatives such as [`failure`](https://docs.rs/failure) and +[`thiserror`](https://docs.rs/thiserror), they generally lack either the thoroughness in +documentation or the flexibility of `snafu`. + +For **working with errors**, we have a more lax approach. At the highest level, we use a boxed trait +approach -- `Box` -- for maximum flexibility. This +allows developers to avoid needing to _always_ derive custom error types in order to return errors +back up the call stack. This does not prevent, and indeed, should not discourage developers from +using `snafu` to create rich error types that provide additional context, whether through +descriptive error messages, source errors, or backtraces. + +### Concurrency and synchronization + +#### Atomics + +In general, we strive to use the atomic types in the [standard +library](https://doc.rust-lang.org/stable/std/sync/atomic/index.html) when possible, as they are the +most portable and well-tested. In cases where the standard library atomics cannot be used, such as +when using a 64-bit atomic but wanting to support a 32-bit platform, or support a platform without +atomic instructions at all, we prefer to use +**[`crossbeam-utils`](https://docs.rs/crossbeam-utils)** and its `AtomicCell` helper. This type will +automatically handle either using native atomic support or ensuring mutually exclusive access, and +handle it in a transparent way. It uses a fixed acquire/release ordering that generally provides the +expected behavior when using atomics, but may not be suitable for usages which require stronger +ordering. + +#### Global state + +When there is a need or desire to share global state, there are a few options depending on the +required constraints. + +If you're working with data that _never changes after initialization_, +we prefer `std::sync::OnceLock` over **[`once_cell`](https://docs.rs/once_cell)** or +[`lazy_static`](https://docs.rs/lazy-static). It is slightly faster and provides a richer API than +`lazy_static`, and has equivalent features to the `once_cell` version. + +If you're working with data that _changes over time_, but has a very high read-to-write ratio, such +as _many readers_, but _one writer_ and infrequent writes, we prefer +**[`arc-swap`](https://docs.rs/arc-swap)**. The main feature of this crate is allowing a piece of +data to be atomically updated while being shared concurrently. It does this by wrapping all data in +`Arc` to provide the safe, concurrent access, while adding the ability to atomically swap the +`Arc` itself. As it cannot be constructed in a const fashion, `arc-swap` pairs well with +`once_cell` for actually storing it in a global static variable. + +#### Concurrent data structures + +When there is a need for a concurrent and _indexable_ storage, we prefer +**[`sharded-slab`](https://docs.rs/sharded-slab)**. This crate provides a means to insert items +such that the caller gets back to the index by which it can access the item again in the future. +Additionally, when an item is removed, its storage can be reused by future inserts, making +`sharded-slab` a good choice for long-running processes where memory allocation reduction is +paramount. There is also a pool data structure based on the same underlying design of the slab +itself for use cases where pooling is desired. + +### Synchronization + +Synchronization can be a very common sight when writing multi-threaded code in any language, and +this document does not aim to familiarize you with all of the common synchronization primitives and +their intended usage. Instead, however, there are some caveats that you must be aware of when using +synchronization primitives in synchronous versus asynchronous code. + +Generally speaking, developers will lean on the synchronization primitives in `std::sync`, such as +`Mutex`, `RwLock`, and so on. These are typically the right choice -- in terms of using the ones +provided by `std`, vs alternative implementations of the same primitives -- as they're well-tested, +and have been improving over time in terms of performance. However, developers must be careful when +using these primitives in asynchronous code, as their behavior can sometimes adversely affect the +performance and correctness of Vector. + +To wit, developers must exercise caution when using synchronous (i.e. `std::sync`, `parking_lot`, +etc) synchronization primitives in asynchronous code, as they can be used in a way that deadlocks +the asynchronous runtime even though the code compiles and appears to be correct. In some cases, +you'll need to use an asynchronous-specific synchronization primitives, namely the ones from `tokio` +itself. The documentation on `tokio`'s own +[`Mutex`](https://docs.rs/tokio/latest/tokio/sync/struct.Mutex.html), for example, calls out the +specifics of when and where you might need to use it vs the one from `std::sync`. + + +## New Configuration Fields vs CLI flags + +Vector makes the distinction between configuration items that are essential to understand data +pipelines and runtime flags that determine the details of the runtime behavior. The main configuration +generally lives in a file in the current directory or in `/etc/vector`. + +Examples of main configuration fields are source, transformation, and sink declaration, as well as +information about where any disk buffers should be persisted. + +For configuration items that purely inform details of Vector's runtime behavior, CLI flags without +corresponding configuration fields should be used. + +An example of a runtime flag is +`vector run --no-graceful-shutdown-limit`, which tells Vector to ignore SIGINTs and to continue running +as normal until a SIGKILL is received. In this case, as the configuration describes the desired runtime +behavior in a specific environment and not to the underlying data pipeline, no corresponding field in +the configuration file should exist. diff --git a/Tiltfile b/Tiltfile new file mode 100644 index 0000000000000..2140d61407481 --- /dev/null +++ b/Tiltfile @@ -0,0 +1,27 @@ +################### +# VECTOR TILTFILE # +################### + +load('ext://helm_resource', 'helm_resource', 'helm_repo') + +docker_build( + ref='timberio/vector', + context='.', + build_args={'RUST_VERSION': '1.83.0'}, + dockerfile='tilt/Dockerfile' + ) + +helm_repo(name='vectordotdev', url='https://helm.vector.dev') +helm_resource( + name='vector', + chart='vectordotdev/vector', + image_deps=['timberio/vector'], + image_keys=[('image.repository', 'image.tag')], + flags=[ + '--set', 'role=Agent', + '--set', 'env[0].name=VECTOR_LOG', + '--set', 'env[0].value=trace' + ] + ) + +k8s_resource(workload='vector', port_forwards=9090) diff --git a/VERSIONING.md b/VERSIONING.md new file mode 100644 index 0000000000000..33d37b8aa7277 --- /dev/null +++ b/VERSIONING.md @@ -0,0 +1,149 @@ +# Versioning + +This document covers Vector's versioning and what it means as a user of Vector. + +**Please note, Vector is currently in its pre-1.0 phase and quickly approaching +1.0. Minor version increments can introduce breaking changes during this phase. +Please see the [FAQ](#faq) section for more info.** + + + +1. [Convention](#convention) +1. [Public API](#public-api) + 1. [Areas that *are* covered](#areas-that-are-covered) + 1. [Intended for *public* consumption](#intended-for-public-consumption) + 1. [Intended for *private* consumption](#intended-for-private-consumption) + 1. [Areas that are *NOT* covered](#areas-that-are-not-covered) +1. [FAQ](#faq) + 1. [How often is Vector released?](#how-often-is-vector-released) + 1. [How does Vector treat patch and minor versions?](#how-does-vector-treat-patch-and-minor-versions) + 1. [How does Vector treat major versions \(breaking changes\)?](#how-does-vector-treat-major-versions-breaking-changes) + 1. [How does Vector treat pre-1.0 versions?](#how-does-vector-treat-pre-10-versions) + + + +## Convention + +Vector adheres to the [Semantic Versioning 2.0] convention. In summary: + +* Versions follow the `MAJOR.MINOR.PATCH` format (i.e., `2.5.1`) +* `PATCH` increments only when backward compatible bug fixes are introduced. +* `MINOR` increments only when new, backward compatible functionality is introduced. +* `MAJOR` increments if any backwards incompatible changes are introduced. +* Pre `1.0` (major version `0`) is for initial development and `MINOR` version bumps can introduce breaking changes. + +## Public API + +Semantic Versioning hinges on Vector's definition of "public API". By the nature +of Vector -- a tool that collects, processes, and routes data from disparate +systems -- it has a very large public surface area. It's not immediately obvious +which parts are covered under our versioning contract and how they're covered. +This section aims to remove all ambiguity in this area. + +### Areas that *are* covered + +The following Vector areas are covered in Vector's definition of public API. + +#### Intended for *public* consumption + +The follow Vector areas are intended for *public* consumption (consumption by +anything other than Vector itself). Backward incompatible changes will trigger +a major version increment. + +* [CLI] + * Flags + * Exit codes +* [Data model] + * As output in all sinks except the [`vector` sink] + * As exposed in the source of the [`lua` transform] +* [GraphQL API] +* Telemetry + * Vector's internal metrics as provided by the [`internal_metrics` source] +* [VRL] + +#### Intended for *private* consumption + +The following Vector areas are intended for *private* consumption (consumption by +Vector only). Backward incompatible changes will trigger a major version +increment only if Vector itself is not compatible with previous versions. + +* [Configuration schema] +* [Data directory] and its contents +* [Data model] + * As output in the [`vector` sink] + +### Areas that are *NOT* covered + +The following Vector areas are *not* covered in Vector's definition of Public +API. Breaking changes in these areas will *not* trigger a major version +increment. + +* [CLI] + * The standard output (`STDOUT` and `STDERR`). +* [Installation workflows] +* Telemetry + * Vector's internal logs as provided through `STDOUT`, `STDERR`, and the [`internal_logs` source] + +## FAQ + +### How often is Vector released? + +Please see the [release policy]. + +### How does Vector treat patch and minor versions? + +As defined by [Semantic Versioning], you can expect no breaking changes. Users +will be able to seamlessly upgrade without any action. + +### How does Vector treat major versions (breaking changes)? + +Major versions break backward compatibility. Vector takes breaking changes very +seriously. We understand that Vector is a critical part of your infrastructure +and breaking changes introduce downtime. We will make every effort necessary +to avoid them. If we introduce them we will make the upgrade process as painless +as possible. Every major release will come with a single, step-by-step upgrade +guide in the [release notes]. + +### How does Vector treat pre-1.0 versions? + +As defined by [Semantic Versioning]: + +> major version zero (0.y.z) is for initial development. Anything MAY change at +> any time. + +And while this is true to the spec, Vector takes breaking changes *very* +seriously during this phase. What's outlined in the +[major versions](#major-versions-breaking-changes) section still holds true +here. Each minor release bump will include an upgrade guide in the +[release notes] if necessary. + +[@vectordotdev]: https://twitter.com/vectordotdev +[chat]: https://chat.vector.dev +[CLI]: https://vector.dev/docs/reference/cli/ +[configuration schema]: https://vector.dev/docs/reference/configuration/ +[data directory]: https://vector.dev/docs/reference/configuration/global-options/#data_dir +[data model]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/ +[GitHub repository]: https://github.com/vectordotdev/vector +[GraphQL API]: https://vector.dev/docs/reference/api/ +[Installation workflows]: https://vector.dev/docs/setup/installation/ +[`internal_logs_` source]: https://vector.dev/docs/reference/configuration/sources/internal_logs/ +[`internal_metrics` source]: https://vector.dev/docs/reference/configuration/sources/internal_metrics/ +[`lua` transform]: https://vector.dev/docs/reference/configuration/transforms/lua/ +[`master` branch]: https://github.com/vectordotdev/vector/tree/master +[nightly artifact list]: https://packages.timber.io/vector/nightly/ +[package manager]: https://vector.dev/docs/setup/installation/package-managers/ +[release notes]: https://vector.dev/releases/ +[release policy]: https://github.com/vectordotdev/vector/blob/master/RELEASES.md +[Semantic Versioning]: https://semver.org/spec/v2.0.0.html +[`vector` command]: https://vector.dev/docs/reference/cli/#vector +[`vector generate` subcommand]: https://vector.dev/docs/reference/cli/#generate +[`vector graph` subcommand]: https://vector.dev/docs/reference/cli/#graph +[`vector help` subcommand]: https://vector.dev/docs/reference/cli/#help +[`vector list` subcommand]: https://vector.dev/docs/reference/cli/#list +[Vector public calendar]: https://calendar.vector.dev +[`vector` sink]: https://vector.dev/docs/reference/configuration/sinks/vector/ +[`vector tap` subcommand]: https://vector.dev/docs/reference/cli/#tap +[`vector top` subcommand]: https://vector.dev/docs/reference/cli/#top +[`vector validate` subcommand]: https://vector.dev/docs/reference/cli/#validate +[`vector vrl` subcommand]: https://vector.dev/docs/reference/cli/#vrl +[VRL]: https://vector.dev/docs/reference/vrl/ diff --git a/aqua/aqua.yaml b/aqua/aqua.yaml new file mode 100644 index 0000000000000..e72564f079e00 --- /dev/null +++ b/aqua/aqua.yaml @@ -0,0 +1,14 @@ +--- +# aqua - Declarative CLI Version Manager +# https://aquaproj.github.io/ +registries: + - type: standard + ref: v4.268.0 # renovate: depName=aquaproj/aqua-registry +packages: + - name: rustwasm/wasm-pack@v0.13.1 + - name: crates.io/cargo-deb@2.9.1 + - name: cross-rs/cross@v0.2.5 + - name: nextest-rs/nextest/cargo-nextest@cargo-nextest-0.9.47 + - name: EmbarkStudios/cargo-deny@0.16.1 + - name: foresterre/cargo-msrv@v0.15.1 + - name: crates.io/dd-rust-license-tool@1.0.1 diff --git a/benches/batch.rs b/benches/batch.rs index ff7e7533c468f..02e9fc071aead 100644 --- a/benches/batch.rs +++ b/benches/batch.rs @@ -1,104 +1,111 @@ -use bytes::Bytes; +use std::{convert::Infallible, time::Duration}; + +use bytes::{BufMut, Bytes, BytesMut}; use criterion::{criterion_group, Criterion, SamplingMode, Throughput}; use futures::{future, stream, SinkExt, StreamExt}; -use std::{convert::Infallible, time::Duration}; use vector::{ - buffers::Acker, sinks::util::{ batch::{Batch, BatchConfig, BatchError, BatchSettings, BatchSize, PushResult}, - BatchSink, Buffer, Compression, Partition, PartitionBatchSink, + BatchSink, Buffer, Compression, EncodedEvent, Merged, Partition, PartitionBatchSink, + SinkBatchSettings, }, test_util::{random_lines, runtime}, }; +use vector_lib::json_size::JsonSize; -fn benchmark_batching(c: &mut Criterion) { +fn benchmark_batch(c: &mut Criterion) { let event_len: usize = 100; let num_events: usize = 100_000; - let mut group = c.benchmark_group("partitioned_batching"); + let mut group = c.benchmark_group("batch"); group.throughput(Throughput::Bytes((event_len * num_events) as u64)); group.sampling_mode(SamplingMode::Flat); let cases = [ - (Compression::None, bytesize::mib(2u64)), - (Compression::None, bytesize::kib(500u64)), - (Compression::gzip_default(), bytesize::mib(2u64)), - (Compression::gzip_default(), bytesize::kib(500u64)), + (Compression::None, 2_000_000), + (Compression::None, 500_000), + (Compression::gzip_default(), 2_000_000), + (Compression::gzip_default(), 500_000), ]; let input: Vec<_> = random_lines(event_len) .take(num_events) - .map(|s| s.into_bytes()) + .map(|s| { + let mut bytes = BytesMut::new(); + bytes.put_slice(s.as_bytes()); + bytes + }) .collect(); for (compression, batch_size) in cases.iter() { + group.bench_function(format!("partitioned/{}_{}", compression, batch_size), |b| { + b.iter_batched( + || { + let rt = runtime(); + let mut batch = BatchSettings::default(); + batch.size.bytes = *batch_size; + batch.size.events = num_events; + + let batch_sink = PartitionBatchSink::new( + tower::service_fn(|_| future::ok::<_, Infallible>(())), + PartitionedBuffer::new(batch.size, *compression), + Duration::from_secs(1), + ) + .sink_map_err(|error| panic!("{}", error)); + + ( + rt, + stream::iter(input.clone().into_iter().map(|b| InnerBuffer { + inner: b, + key: Bytes::from("key"), + })) + .map(|item| Ok(EncodedEvent::new(item, 0, JsonSize::zero()))), + batch_sink, + ) + }, + |(rt, input, batch_sink)| rt.block_on(input.forward(batch_sink)).unwrap(), + criterion::BatchSize::LargeInput, + ) + }); + group.bench_function( - format!("partitioned_batching_{}_{}", compression, batch_size), + format!("unpartitioned/{}_{}", compression, batch_size), |b| { b.iter_batched( || { let rt = runtime(); - let (acker, _) = Acker::new_for_testing(); - let batch = BatchSettings::default() - .bytes(*batch_size as u64) - .events(num_events) - .size; - let batch_sink = PartitionBatchSink::new( + let mut batch = BatchSettings::default(); + batch.size.bytes = *batch_size; + batch.size.events = num_events; + + let batch_sink = BatchSink::new( tower::service_fn(|_| future::ok::<_, Infallible>(())), - PartitionedBuffer::new(batch, *compression), + Buffer::new(batch.size, *compression), Duration::from_secs(1), - acker, ) - .sink_map_err(|error| panic!(error)); + .sink_map_err(|error| panic!("{}", error)); ( rt, - stream::iter(input.clone().into_iter().map(|b| InnerBuffer { - inner: b, - key: Bytes::from("key"), - })) - .map(Ok), + stream::iter(input.clone()) + .map(|item| Ok(EncodedEvent::new(item, 0, JsonSize::zero()))), batch_sink, ) }, - |(mut rt, input, batch_sink)| rt.block_on(input.forward(batch_sink)).unwrap(), + |(rt, input, batch_sink)| rt.block_on(input.forward(batch_sink)).unwrap(), criterion::BatchSize::LargeInput, ) }, ); - - group.bench_function(format!("batching_{}_{}", compression, batch_size), |b| { - b.iter_batched( - || { - let rt = runtime(); - let (acker, _) = Acker::new_for_testing(); - let batch = BatchSettings::default() - .bytes(*batch_size as u64) - .events(num_events) - .size; - let batch_sink = BatchSink::new( - tower::service_fn(|_| future::ok::<_, Infallible>(())), - Buffer::new(batch, *compression), - Duration::from_secs(1), - acker, - ) - .sink_map_err(|error| panic!(error)); - - (rt, stream::iter(input.clone()).map(Ok), batch_sink) - }, - |(mut rt, input, batch_sink)| rt.block_on(input.forward(batch_sink)).unwrap(), - criterion::BatchSize::LargeInput, - ) - }); } } criterion_group!( name = benches; // noisy benchmarks; 10% encapsulates what we saw in - // https://github.com/timberio/vector/issues/5394 + // https://github.com/vectordotdev/vector/issues/5394 config = Criterion::default().noise_threshold(0.10); - targets = benchmark_batching + targets = benchmark_batch ); pub struct PartitionedBuffer { @@ -108,7 +115,7 @@ pub struct PartitionedBuffer { #[derive(Clone)] pub struct InnerBuffer { - pub(self) inner: Vec, + pub(self) inner: BytesMut, key: Bytes, } @@ -131,11 +138,10 @@ impl Batch for PartitionedBuffer { type Input = InnerBuffer; type Output = InnerBuffer; - fn get_settings_defaults( - config: BatchConfig, - defaults: BatchSettings, - ) -> Result, BatchError> { - Ok(Buffer::get_settings_defaults(config, defaults.into())?.into()) + fn get_settings_defaults( + config: BatchConfig, + ) -> Result, BatchError> { + Buffer::get_settings_defaults(config) } fn push(&mut self, item: Self::Input) -> PushResult { diff --git a/benches/buffering.rs b/benches/buffering.rs deleted file mode 100644 index b02fabf6b7ad5..0000000000000 --- a/benches/buffering.rs +++ /dev/null @@ -1,164 +0,0 @@ -use criterion::{criterion_group, BatchSize, Criterion, SamplingMode, Throughput}; -use tempfile::tempdir; -use vector::test_util::{ - next_addr, random_lines, runtime, send_lines, start_topology, wait_for_tcp, CountReceiver, -}; -use vector::{buffers::BufferConfig, config, sinks, sources}; - -fn benchmark_buffers(c: &mut Criterion) { - let num_lines: usize = 10_000; - let line_size: usize = 100; - - let in_addr = next_addr(); - let out_addr = next_addr(); - - let mut group = c.benchmark_group("buffers"); - group.throughput(Throughput::Bytes((num_lines * line_size) as u64)); - group.sampling_mode(SamplingMode::Flat); - - group.bench_function("in-memory", |b| { - b.iter_batched( - || { - let mut config = config::Config::builder(); - config.add_source( - "in", - sources::socket::SocketConfig::make_basic_tcp_config(in_addr), - ); - config.add_sink( - "out", - &["in"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config(out_addr.to_string()), - ); - config.sinks["out"].buffer = BufferConfig::Memory { - max_events: 100, - when_full: Default::default(), - }; - - let mut rt = runtime(); - let (output_lines, topology) = rt.block_on(async move { - let output_lines = CountReceiver::receive_lines(out_addr); - let (topology, _crash) = start_topology(config.build().unwrap(), false).await; - wait_for_tcp(in_addr).await; - (output_lines, topology) - }); - - (rt, topology, output_lines) - }, - |(mut rt, topology, output_lines)| { - rt.block_on(async move { - let lines = random_lines(line_size).take(num_lines); - send_lines(in_addr, lines).await.unwrap(); - - topology.stop().await; - - let output_lines = output_lines.await; - - debug_assert_eq!(num_lines, output_lines.len()); - - output_lines - }); - }, - BatchSize::PerIteration, - ); - }); - - group.bench_function("on-disk", |b| { - b.iter_batched( - || { - let data_dir = tempdir().unwrap(); - - let mut config = config::Config::builder(); - config.add_source( - "in", - sources::socket::SocketConfig::make_basic_tcp_config(in_addr), - ); - config.add_sink( - "out", - &["in"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config(out_addr.to_string()), - ); - config.sinks["out"].buffer = BufferConfig::Disk { - max_size: 1_000_000, - when_full: Default::default(), - }; - config.global.data_dir = Some(data_dir.path().to_path_buf()); - let mut rt = runtime(); - let (output_lines, topology) = rt.block_on(async move { - let output_lines = CountReceiver::receive_lines(out_addr); - let (topology, _crash) = start_topology(config.build().unwrap(), false).await; - wait_for_tcp(in_addr).await; - (output_lines, topology) - }); - (rt, topology, output_lines) - }, - |(mut rt, topology, output_lines)| { - rt.block_on(async move { - let lines = random_lines(line_size).take(num_lines); - send_lines(in_addr, lines).await.unwrap(); - topology.stop().await; - - // TODO: shutdown after flush - // assert_eq!(num_lines, output_lines.await.len()); - output_lines.await - }); - }, - BatchSize::PerIteration, - ); - }); - - // TODO(jesse): reenable - // This benchmark hangs in CI sometimes - // https://github.com/timberio/vector/issues/5389 - // - //group.bench_function("low-limit-on-disk", |b| { - //b.iter_batched( - //|| { - //let data_dir = tempdir().unwrap(); - - //let mut config = config::Config::builder(); - //config.add_source( - //"in", - //sources::socket::SocketConfig::make_basic_tcp_config(in_addr), - //); - //config.add_sink( - //"out", - //&["in"], - //sinks::socket::SocketSinkConfig::make_basic_tcp_config(out_addr.to_string()), - //); - //config.sinks["out"].buffer = BufferConfig::Disk { - //max_size: 10_000, - //when_full: Default::default(), - //}; - //config.global.data_dir = Some(data_dir.path().to_path_buf()); - //let mut rt = runtime(); - //let (output_lines, topology) = rt.block_on(async move { - //let output_lines = CountReceiver::receive_lines(out_addr); - //let (topology, _crash) = start_topology(config.build().unwrap(), false).await; - //wait_for_tcp(in_addr).await; - //(output_lines, topology) - //}); - //(rt, topology, output_lines) - //}, - //|(mut rt, topology, output_lines)| { - //rt.block_on(async move { - //let lines = random_lines(line_size).take(num_lines); - //send_lines(in_addr, lines).await.unwrap(); - //topology.stop().await; - - //// TODO: shutdown after flush - //// assert_eq!(num_lines, output_lines.await.len()); - //output_lines.await - //}); - //}, - //BatchSize::PerIteration, - //); - //}); -} - -criterion_group!( - name = benches; - // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 - config = Criterion::default().noise_threshold(0.05); - targets = benchmark_buffers -); diff --git a/benches/codecs/character_delimited_bytes.rs b/benches/codecs/character_delimited_bytes.rs new file mode 100644 index 0000000000000..9714937960b70 --- /dev/null +++ b/benches/codecs/character_delimited_bytes.rs @@ -0,0 +1,94 @@ +use std::{fmt, time::Duration}; + +use bytes::BytesMut; +use criterion::{ + criterion_group, measurement::WallTime, BatchSize, BenchmarkGroup, BenchmarkId, Criterion, + SamplingMode, Throughput, +}; +use tokio_util::codec::Decoder; +use vector_lib::codecs::{ + decoding::{Deserializer, Framer}, + BytesDeserializer, CharacterDelimitedDecoder, +}; + +#[derive(Debug)] +struct Param { + slug: &'static str, + input: BytesMut, + max_length: Option, +} + +impl fmt::Display for Param { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.slug) + } +} + +fn decoding(c: &mut Criterion) { + let mut group: BenchmarkGroup = + c.benchmark_group("vector::codecs::decoding::Decoder"); + group.sampling_mode(SamplingMode::Auto); + + for param in &[ + Param { + slug: "no_max", + input: BytesMut::from(include_str!("moby_dick.txt")), + max_length: None, + }, + Param { + slug: "small_max", + input: BytesMut::from(include_str!("moby_dick.txt")), + max_length: Some(10), + }, + ] { + group.throughput(Throughput::Bytes(param.input.len() as u64)); + group.bench_with_input( + BenchmarkId::new("character_delimited_bytes", param), + ¶m, + |b, param| { + b.iter_batched( + || { + let framer = Framer::CharacterDelimited( + param + .max_length + .map(|ml| CharacterDelimitedDecoder::new_with_max_length(b'a', ml)) + .unwrap_or(CharacterDelimitedDecoder::new(b'a')), + ); + let deserializer = Deserializer::Bytes(BytesDeserializer); + let decoder = vector::codecs::Decoder::new(framer, deserializer); + + (Box::new(decoder), param.input.clone()) + }, + |(mut decoder, mut input)| loop { + match decoder.decode_eof(&mut input) { + Ok(Some(_)) => continue, + Ok(None) => break, + Err(_) => { + unreachable!() + } + } + }, + BatchSize::SmallInput, + ) + }, + ); + } +} + +criterion_group!( + name = benches; + config = Criterion::default() + .warm_up_time(Duration::from_secs(5)) + .measurement_time(Duration::from_secs(120)) + // degree of noise to ignore in measurements, here 1% + .noise_threshold(0.01) + // likelihood of noise registering as difference, here 5% + .significance_level(0.05) + // likelihood of capturing the true runtime, here 95% + .confidence_level(0.95) + // total number of bootstrap resamples, higher is less noisy but slower + .nresamples(100_000) + // total samples to collect within the set measurement time + .sample_size(150); + targets = decoding +); diff --git a/benches/codecs/encoder.rs b/benches/codecs/encoder.rs new file mode 100644 index 0000000000000..47f9d9ae25110 --- /dev/null +++ b/benches/codecs/encoder.rs @@ -0,0 +1,124 @@ +use std::time::Duration; + +use bytes::{BufMut, BytesMut}; +use criterion::{ + criterion_group, measurement::WallTime, BatchSize, BenchmarkGroup, Criterion, SamplingMode, + Throughput, +}; +use tokio_util::codec::Encoder; +use vector::event::{Event, LogEvent}; +use vector_lib::codecs::{encoding::Framer, JsonSerializerConfig, NewlineDelimitedEncoder}; +use vector_lib::{btreemap, byte_size_of::ByteSizeOf}; + +#[derive(Debug, Clone)] +pub struct JsonLogSerializer; + +impl Encoder for JsonLogSerializer { + type Error = vector_lib::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let writer = buffer.writer(); + let log = event.as_log(); + serde_json::to_writer(writer, log)?; + Ok(()) + } +} + +#[derive(Debug, Clone)] +pub struct JsonLogVecSerializer; + +impl Encoder for JsonLogVecSerializer { + type Error = vector_lib::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let log = event.as_log(); + let vec = serde_json::to_vec(log)?; + buffer.put_slice(&vec); + Ok(()) + } +} + +fn encoder(c: &mut Criterion) { + let mut group: BenchmarkGroup = c.benchmark_group("encoder"); + group.sampling_mode(SamplingMode::Auto); + + let input: Event = Event::Log(LogEvent::from(btreemap! { + "key1" => "value1", + "key2" => "value2", + "key3" => "value3" + })); + + group.throughput(Throughput::Bytes(input.size_of() as u64)); + group.bench_with_input("JsonLogVecSerializer::encode", &(), |b, ()| { + b.iter_batched( + || JsonLogVecSerializer, + |mut encoder| { + let mut bytes = BytesMut::new(); + encoder.encode(input.clone(), &mut bytes).unwrap(); + bytes.put_u8(b'\n'); + }, + BatchSize::SmallInput, + ) + }); + + group.throughput(Throughput::Bytes(input.size_of() as u64)); + group.bench_with_input("JsonLogSerializer::encode", &(), |b, ()| { + b.iter_batched( + || JsonLogSerializer, + |mut encoder| { + let mut bytes = BytesMut::new(); + encoder.encode(input.clone(), &mut bytes).unwrap(); + bytes.put_u8(b'\n'); + }, + BatchSize::SmallInput, + ) + }); + + group.throughput(Throughput::Bytes(input.size_of() as u64)); + group.bench_with_input("codecs::JsonSerializer::encode", &(), |b, ()| { + b.iter_batched( + || JsonSerializerConfig::default().build(), + |mut encoder| { + let mut bytes = BytesMut::new(); + encoder.encode(input.clone(), &mut bytes).unwrap(); + bytes.put_u8(b'\n'); + }, + BatchSize::SmallInput, + ) + }); + + group.throughput(Throughput::Bytes(input.size_of() as u64)); + group.bench_with_input("vector::codecs::Encoder::encode", &(), |b, ()| { + b.iter_batched( + || { + vector::codecs::Encoder::::new( + NewlineDelimitedEncoder::new().into(), + JsonSerializerConfig::default().build().into(), + ) + }, + |mut encoder| { + let mut bytes = BytesMut::new(); + encoder.encode(input.clone(), &mut bytes).unwrap(); + }, + BatchSize::SmallInput, + ) + }); +} + +criterion_group!( + name = benches; + config = Criterion::default() + .warm_up_time(Duration::from_secs(5)) + .measurement_time(Duration::from_secs(120)) + // degree of noise to ignore in measurements, here 1% + .noise_threshold(0.01) + // likelihood of noise registering as difference, here 5% + .significance_level(0.05) + // likelihood of capturing the true runtime, here 95% + .confidence_level(0.95) + // total number of bootstrap resamples, higher is less noisy but slower + .nresamples(100_000) + // total samples to collect within the set measurement time + .sample_size(150); + targets = encoder +); diff --git a/benches/codecs/main.rs b/benches/codecs/main.rs new file mode 100644 index 0000000000000..a51c30c97c8a8 --- /dev/null +++ b/benches/codecs/main.rs @@ -0,0 +1,11 @@ +use criterion::criterion_main; + +mod character_delimited_bytes; +mod encoder; +mod newline_bytes; + +criterion_main!( + character_delimited_bytes::benches, + newline_bytes::benches, + encoder::benches, +); diff --git a/benches/codecs/moby_dick.txt b/benches/codecs/moby_dick.txt new file mode 100644 index 0000000000000..99a37f0e24497 --- /dev/null +++ b/benches/codecs/moby_dick.txt @@ -0,0 +1,23243 @@ +**The Project Gutenberg Etext of Moby Dick, by Herman Melville** +#3 in our series by Herman Melville + +This Project Gutenberg version of Moby Dick is based on a combination +of the etext from the ERIS project at Virginia Tech and another from +Project Gutenberg's archives, as compared to a public-domain hard copy. + +Copyright laws are changing all over the world, be sure to check +the copyright laws for your country before posting these files!! + +Please take a look at the important information in this header. +We encourage you to keep this file on your own disk, keeping an +electronic path open for the next readers. Do not remove this. + + +**Welcome To The World of Free Plain Vanilla Electronic Texts** + +**Etexts Readable By Both Humans and By Computers, Since 1971** + +*These Etexts Prepared By Hundreds of Volunteers and Donations* + +Information on contacting Project Gutenberg to get Etexts, and +further information is included below. We need your donations. + + +Title: Moby Dick; or The Whale + +Author: Herman Melville + +June, 2001 [Etext #2701] + +**The Project Gutenberg Etext of Moby Dick, by Herman Melville** +******This file should be named moby10b.txt or moby10b.zip****** + +Corrected EDITIONS of our etexts get a new NUMBER, moby11b.txt +VERSIONS based on separate sources get new LETTER, moby10c.txt + +This etext was prepared by Daniel Lazarus and Jonesey + +Project Gutenberg Etexts are usually created from multiple editions, +all of which are in the Public Domain in the United States, unless a +copyright notice is included. Therefore, we usually do NOT keep any +of these books in compliance with any particular paper edition. + + +We are now trying to release all our books one month in advance +of the official release dates, leaving time for better editing. + +Please note: neither this list nor its contents are final till +midnight of the last day of the month of any such announcement. +The official release date of all Project Gutenberg Etexts is at +Midnight, Central Time, of the last day of the stated month. A +preliminary version may often be posted for suggestion, comment +and editing by those who wish to do so. To be sure you have an +up to date first edition [xxxxx10x.xxx] please check file sizes +in the first week of the next month. Since our ftp program has +a bug in it that scrambles the date [tried to fix and failed] a +look at the file size will have to do, but we will try to see a +new copy has at least one byte more or less. + + +Information about Project Gutenberg (one page) + +We produce about two million dollars for each hour we work. The +time it takes us, a rather conservative estimate, is fifty hours +to get any etext selected, entered, proofread, edited, copyright +searched and analyzed, the copyright letters written, etc. This +projected audience is one hundred million readers. If our value +per text is nominally estimated at one dollar then we produce $2 +million dollars per hour this year as we release thirty-six text +files per month, or 432 more Etexts in 1999 for a total of 2000+ +If these reach just 10% of the computerized population, then the +total should reach over 200 billion Etexts given away this year. + +The Goal of Project Gutenberg is to Give Away One Trillion Etext +Files by December 31, 2001. [10,000 x 100,000,000 = 1 Trillion] +This is ten thousand titles each to one hundred million readers, +which is only ~5% of the present number of computer users. + +At our revised rates of production, we will reach only one-third +of that goal by the end of 2001, or about 3,333 Etexts unless we +manage to get some real funding; currently our funding is mostly +from Michael Hart's salary at Carnegie-Mellon University, and an +assortment of sporadic gifts; this salary is only good for a few +more years, so we are looking for something to replace it, as we +don't want Project Gutenberg to be so dependent on one person. + +We need your donations more than ever! + + +All donations should be made to "Project Gutenberg/CMU": and are +tax deductible to the extent allowable by law. (CMU = Carnegie- +Mellon University). + +For these and other matters, please mail to: + +Project Gutenberg +P. O. Box 2782 +Champaign, IL 61825 + +When all other email fails. . .try our Executive Director: +Michael S. Hart +hart@pobox.com forwards to hart@prairienet.org and archive.org +if your mail bounces from archive.org, I will still see it, if +it bounces from prairienet.org, better resend later on. . . . + +We would prefer to send you this information by email. + +****** + +To access Project Gutenberg etexts, use any Web browser +to view http://promo.net/pg. This site lists Etexts by +author and by title, and includes information about how +to get involved with Project Gutenberg. You could also +download our past Newsletters, or subscribe here. This +is one of our major sites, please email hart@pobox.com, +for a more complete list of our various sites. + +To go directly to the etext collections, use FTP or any +Web browser to visit a Project Gutenberg mirror (mirror +sites are available on 7 continents; mirrors are listed +at http://promo.net/pg). + +Mac users, do NOT point and click, typing works better. + +Example FTP session: + +ftp sunsite.unc.edu +login: anonymous +password: your@login +cd pub/docs/books/gutenberg +cd etext90 through etext99 +dir [to see files] +get or mget [to get files. . .set bin for zip files] +GET GUTINDEX.?? [to get a year's listing of books, e.g., GUTINDEX.99] +GET GUTINDEX.ALL [to get a listing of ALL books] + +*** + +**Information prepared by the Project Gutenberg legal advisor** + +(Three Pages) + + +***START**THE SMALL PRINT!**FOR PUBLIC DOMAIN ETEXTS**START*** +Why is this "Small Print!" statement here? You know: lawyers. +They tell us you might sue us if there is something wrong with +your copy of this etext, even if you got it for free from +someone other than us, and even if what's wrong is not our +fault. So, among other things, this "Small Print!" statement +disclaims most of our liability to you. It also tells you how +you can distribute copies of this etext if you want to. + +*BEFORE!* YOU USE OR READ THIS ETEXT +By using or reading any part of this PROJECT GUTENBERG-tm +etext, you indicate that you understand, agree to and accept +this "Small Print!" statement. If you do not, you can receive +a refund of the money (if any) you paid for this etext by +sending a request within 30 days of receiving it to the person +you got it from. If you received this etext on a physical +medium (such as a disk), you must return it with your request. + +ABOUT PROJECT GUTENBERG-TM ETEXTS +This PROJECT GUTENBERG-tm etext, like most PROJECT GUTENBERG- +tm etexts, is a "public domain" work distributed by Professor +Michael S. Hart through the Project Gutenberg Association at +Carnegie-Mellon University (the "Project"). Among other +things, this means that no one owns a United States copyright +on or for this work, so the Project (and you!) can copy and +distribute it in the United States without permission and +without paying copyright royalties. Special rules, set forth +below, apply if you wish to copy and distribute this etext +under the Project's "PROJECT GUTENBERG" trademark. + +To create these etexts, the Project expends considerable +efforts to identify, transcribe and proofread public domain +works. Despite these efforts, the Project's etexts and any +medium they may be on may contain "Defects". Among other +things, Defects may take the form of incomplete, inaccurate or +corrupt data, transcription errors, a copyright or other +intellectual property infringement, a defective or damaged +disk or other etext medium, a computer virus, or computer +codes that damage or cannot be read by your equipment. + +LIMITED WARRANTY; DISCLAIMER OF DAMAGES +But for the "Right of Replacement or Refund" described below, +[1] the Project (and any other party you may receive this +etext from as a PROJECT GUTENBERG-tm etext) disclaims all +liability to you for damages, costs and expenses, including +legal fees, and [2] YOU HAVE NO REMEDIES FOR NEGLIGENCE OR +UNDER STRICT LIABILITY, OR FOR BREACH OF WARRANTY OR CONTRACT, +INCLUDING BUT NOT LIMITED TO INDIRECT, CONSEQUENTIAL, PUNITIVE +OR INCIDENTAL DAMAGES, EVEN IF YOU GIVE NOTICE OF THE +POSSIBILITY OF SUCH DAMAGES. + +If you discover a Defect in this etext within 90 days of +receiving it, you can receive a refund of the money (if any) +you paid for it by sending an explanatory note within that +time to the person you received it from. If you received it +on a physical medium, you must return it with your note, and +such person may choose to alternatively give you a replacement +copy. If you received it electronically, such person may +choose to alternatively give you a second opportunity to +receive it electronically. + +THIS ETEXT IS OTHERWISE PROVIDED TO YOU "AS-IS". NO OTHER +WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, ARE MADE TO YOU AS +TO THE ETEXT OR ANY MEDIUM IT MAY BE ON, INCLUDING BUT NOT +LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. + +Some states do not allow disclaimers of implied warranties or +the exclusion or limitation of consequential damages, so the +above disclaimers and exclusions may not apply to you, and you +may have other legal rights. + +INDEMNITY +You will indemnify and hold the Project, its directors, +officers, members and agents harmless from all liability, cost +and expense, including legal fees, that arise directly or +indirectly from any of the following that you do or cause: +[1] distribution of this etext, [2] alteration, modification, +or addition to the etext, or [3] any Defect. + +DISTRIBUTION UNDER "PROJECT GUTENBERG-tm" +You may distribute copies of this etext electronically, or by +disk, book or any other medium if you either delete this +"Small Print!" and all other references to Project Gutenberg, +or: + +[1] Only give exact copies of it. Among other things, this + requires that you do not remove, alter or modify the + etext or this "small print!" statement. You may however, + if you wish, distribute this etext in machine readable + binary, compressed, mark-up, or proprietary form, + including any form resulting from conversion by word pro- + cessing or hypertext software, but only so long as + *EITHER*: + + [*] The etext, when displayed, is clearly readable, and + does *not* contain characters other than those + intended by the author of the work, although tilde + (~), asterisk (*) and underline (_) characters may + be used to convey punctuation intended by the + author, and additional characters may be used to + indicate hypertext links; OR + + [*] The etext may be readily converted by the reader at + no expense into plain ASCII, EBCDIC or equivalent + form by the program that displays the etext (as is + the case, for instance, with most word processors); + OR + + [*] You provide, or agree to also provide on request at + no additional cost, fee or expense, a copy of the + etext in its original plain ASCII form (or in EBCDIC + or other equivalent proprietary form). + +[2] Honor the etext refund and replacement provisions of this + "Small Print!" statement. + +[3] Pay a trademark license fee to the Project of 20% of the + net profits you derive calculated using the method you + already use to calculate your applicable taxes. If you + don't derive profits, no royalty is due. Royalties are + payable to "Project Gutenberg Association/Carnegie-Mellon + University" within the 60 days following each + date you prepare (or were legally required to prepare) + your annual (or equivalent periodic) tax return. + +WHAT IF YOU *WANT* TO SEND MONEY EVEN IF YOU DON'T HAVE TO? +The Project gratefully accepts contributions in money, time, +scanning machines, OCR software, public domain etexts, royalty +free copyright licenses, and every other sort of contribution +you can think of. Money should be paid to "Project Gutenberg +Association / Carnegie-Mellon University". + +We are planning on making some changes in our donation structure +in 2000, so you might want to email me, hart@pobox.com beforehand. + + + + +*END THE SMALL PRINT! FOR PUBLIC DOMAIN ETEXTS*Ver.04.29.93*END* + + + + + +This etext was prepared by Daniel Lazarus and Jonesey + + + + + +Notes on this etext of Moby Dick: + +This text is a combination of etexts, one from the now-defunct ERIS +project at Virginia Tech and one from Project Gutenberg's archives. +The proofreaders of this version are indebted to The University of +Adelaide Library for preserving the Virginia Tech version. The +resulting etext was compared with a public domain hard copy version of +the text. + +In chapters 24, 89, and 90, we substituted a capital L for the symbol +for the British pound, a unit of currency. + + + + + +MOBY DICK; OR THE WHALE + +by Herman Melville + + + + +ETYMOLOGY. + +(Supplied by a Late Consumptive Usher to a Grammar School) + +The pale Usher--threadbare in coat, heart, body, and brain; I see him +now. He was ever dusting his old lexicons and grammars, with a queer +handkerchief, mockingly embellished with all the gay flags of all the +known nations of the world. He loved to dust his old grammars; it +somehow mildly reminded him of his mortality. + +"While you take in hand to school others, and to teach them by what +name a whale-fish is to be called in our tongue leaving out, through +ignorance, the letter H, which almost alone maketh the signification +of the word, you deliver that which is not true." --HACKLUYT + +"WHALE. ... Sw. and Dan. HVAL. This animal is named from roundness +or rolling; for in Dan. HVALT is arched or vaulted." --WEBSTER'S +DICTIONARY + +"WHALE. ... It is more immediately from the Dut. and Ger. WALLEN; +A.S. WALW-IAN, to roll, to wallow." --RICHARDSON'S DICTIONARY + +KETOS, GREEK. +CETUS, LATIN. +WHOEL, ANGLO-SAXON. +HVALT, DANISH. +WAL, DUTCH. +HWAL, SWEDISH. +WHALE, ICELANDIC. +WHALE, ENGLISH. +BALEINE, FRENCH. +BALLENA, SPANISH. +PEKEE-NUEE-NUEE, FEGEE. +PEKEE-NUEE-NUEE, ERROMANGOAN. + + + + +EXTRACTS (Supplied by a Sub-Sub-Librarian). + +It will be seen that this mere painstaking burrower and grub-worm of +a poor devil of a Sub-Sub appears to have gone through the long +Vaticans and street-stalls of the earth, picking up whatever random +allusions to whales he could anyways find in any book whatsoever, +sacred or profane. Therefore you must not, in every case at least, +take the higgledy-piggledy whale statements, however authentic, in +these extracts, for veritable gospel cetology. Far from it. As +touching the ancient authors generally, as well as the poets here +appearing, these extracts are solely valuable or entertaining, as +affording a glancing bird's eye view of what has been promiscuously +said, thought, fancied, and sung of Leviathan, by many nations and +generations, including our own. + +So fare thee well, poor devil of a Sub-Sub, whose commentator I am. +Thou belongest to that hopeless, sallow tribe which no wine of this +world will ever warm; and for whom even Pale Sherry would be too +rosy-strong; but with whom one sometimes loves to sit, and feel +poor-devilish, too; and grow convivial upon tears; and say to them +bluntly, with full eyes and empty glasses, and in not altogether +unpleasant sadness--Give it up, Sub-Subs! For by how much the more +pains ye take to please the world, by so much the more shall ye for +ever go thankless! Would that I could clear out Hampton Court and +the Tuileries for ye! But gulp down your tears and hie aloft to the +royal-mast with your hearts; for your friends who have gone before +are clearing out the seven-storied heavens, and making refugees of +long-pampered Gabriel, Michael, and Raphael, against your coming. +Here ye strike but splintered hearts together--there, ye shall strike +unsplinterable glasses! + + +EXTRACTS. + +"And God created great whales." --GENESIS. + +"Leviathan maketh a path to shine after him; One would think the deep +to be hoary." --JOB. + +"Now the Lord had prepared a great fish to swallow up Jonah." +--JONAH. + +"There go the ships; there is that Leviathan whom thou hast made to +play therein." --PSALMS. + +"In that day, the Lord with his sore, and great, and strong sword, +shall punish Leviathan the piercing serpent, even Leviathan that +crooked serpent; and he shall slay the dragon that is in the sea." +--ISAIAH + +"And what thing soever besides cometh within the chaos of this +monster's mouth, be it beast, boat, or stone, down it goes all +incontinently that foul great swallow of his, and perisheth in the +bottomless gulf of his paunch." --HOLLAND'S PLUTARCH'S MORALS. + +"The Indian Sea breedeth the most and the biggest fishes that are: +among which the Whales and Whirlpooles called Balaene, take up as +much in length as four acres or arpens of land." --HOLLAND'S PLINY. + +"Scarcely had we proceeded two days on the sea, when about sunrise a +great many Whales and other monsters of the sea, appeared. Among the +former, one was of a most monstrous size. ... This came towards us, +open-mouthed, raising the waves on all sides, and beating the sea +before him into a foam." --TOOKE'S LUCIAN. "THE TRUE HISTORY." + +"He visited this country also with a view of catching horse-whales, +which had bones of very great value for their teeth, of which he +brought some to the king. ... The best whales were catched in his +own country, of which some were forty-eight, some fifty yards long. +He said that he was one of six who had killed sixty in two days." +--OTHER OR OCTHER'S VERBAL NARRATIVE TAKEN DOWN FROM HIS MOUTH BY +KING ALFRED, A.D. 890. + +"And whereas all the other things, whether beast or vessel, that +enter into the dreadful gulf of this monster's (whale's) mouth, are +immediately lost and swallowed up, the sea-gudgeon retires into it in +great security, and there sleeps." --MONTAIGNE. --APOLOGY FOR +RAIMOND SEBOND. + +"Let us fly, let us fly! Old Nick take me if is not Leviathan +described by the noble prophet Moses in the life of patient Job." +--RABELAIS. + +"This whale's liver was two cartloads." --STOWE'S ANNALS. + +"The great Leviathan that maketh the seas to seethe like boiling +pan." --LORD BACON'S VERSION OF THE PSALMS. + +"Touching that monstrous bulk of the whale or ork we have received +nothing certain. They grow exceeding fat, insomuch that an +incredible quantity of oil will be extracted out of one whale." +--IBID. "HISTORY OF LIFE AND DEATH." + +"The sovereignest thing on earth is parmacetti for an inward bruise." +--KING HENRY. + +"Very like a whale." --HAMLET. + +"Which to secure, no skill of leach's art +Mote him availle, but to returne againe +To his wound's worker, that with lowly dart, +Dinting his breast, had bred his restless paine, +Like as the wounded whale to shore flies thro' the maine." +--THE FAERIE QUEEN. + +"Immense as whales, the motion of whose vast bodies can in a peaceful +calm trouble the ocean til it boil." --SIR WILLIAM DAVENANT. PREFACE +TO GONDIBERT. + +"What spermacetti is, men might justly doubt, since the learned +Hosmannus in his work of thirty years, saith plainly, Nescio quid +sit." --SIR T. BROWNE. OF SPERMA CETI AND THE SPERMA CETI WHALE. +VIDE HIS V. E. + +"Like Spencer's Talus with his modern flail +He threatens ruin with his ponderous tail. +... +Their fixed jav'lins in his side he wears, +And on his back a grove of pikes appears." --WALLER'S BATTLE OF THE +SUMMER ISLANDS. + +"By art is created that great Leviathan, called a Commonwealth or +State--(in Latin, Civitas) which is but an artificial man." --OPENING +SENTENCE OF HOBBES'S LEVIATHAN. + +"Silly Mansoul swallowed it without chewing, as if it had been a +sprat in the mouth of a whale." --PILGRIM'S PROGRESS. + +"That sea beast +Leviathan, which God of all his works +Created hugest that swim the ocean stream." --PARADISE LOST. + +---"There Leviathan, +Hugest of living creatures, in the deep +Stretched like a promontory sleeps or swims, +And seems a moving land; and at his gills +Draws in, and at his breath spouts out a sea." --IBID. + +"The mighty whales which swim in a sea of water, and have a sea of +oil swimming in them." --FULLLER'S PROFANE AND HOLY STATE. + +"So close behind some promontory lie +The huge Leviathan to attend their prey, +And give no chance, but swallow in the fry, +Which through their gaping jaws mistake the way." +--DRYDEN'S ANNUS MIRABILIS. + +"While the whale is floating at the stern of the ship, they cut off +his head, and tow it with a boat as near the shore as it will come; +but it will be aground in twelve or thirteen feet water." --THOMAS +EDGE'S TEN VOYAGES TO SPITZBERGEN, IN PURCHAS. + +"In their way they saw many whales sporting in the ocean, and in +wantonness fuzzing up the water through their pipes and vents, which +nature has placed on their shoulders." --SIR T. HERBERT'S VOYAGES +INTO ASIA AND AFRICA. HARRIS COLL. + +"Here they saw such huge troops of whales, that they were forced to +proceed with a great deal of caution for fear they should run their +ship upon them." --SCHOUTEN'S SIXTH CIRCUMNAVIGATION. + +"We set sail from the Elbe, wind N.E. in the ship called The +Jonas-in-the-Whale. ... Some say the whale can't open his mouth, but +that is a fable. ... They frequently climb up the masts to see +whether they can see a whale, for the first discoverer has a ducat +for his pains. ... I was told of a whale taken near Shetland, that +had above a barrel of herrings in his belly. ... One of our +harpooneers told me that he caught once a whale in Spitzbergen that +was white all over." --A VOYAGE TO GREENLAND, A.D. 1671 HARRIS COLL. + +"Several whales have come in upon this coast (Fife) Anno 1652, one +eighty feet in length of the whale-bone kind came in, which (as I was +informed), besides a vast quantity of oil, did afford 500 weight of +baleen. The jaws of it stand for a gate in the garden of Pitferren." +--SIBBALD'S FIFE AND KINROSS. + +"Myself have agreed to try whether I can master and kill this +Sperma-ceti whale, for I could never hear of any of that sort that +was killed by any man, such is his fierceness and swiftness." +--RICHARD STRAFFORD'S LETTER FROM THE BERMUDAS. PHIL. TRANS. A.D. +1668. + +"Whales in the sea God's voice obey." --N. E. PRIMER. + +"We saw also abundance of large whales, there being more in those +southern seas, as I may say, by a hundred to one; than we have to the +northward of us." --CAPTAIN COWLEY'S VOYAGE ROUND THE GLOBE, A.D. +1729. + +"... and the breath of the whale is frequendy attended with such an +insupportable smell, as to bring on a disorder of the brain." +--ULLOA'S SOUTH AMERICA. + +"To fifty chosen sylphs of special note, +We trust the important charge, the petticoat. +Oft have we known that seven-fold fence to fail, +Tho' stuffed with hoops and armed with ribs of whale." --RAPE +OF THE LOCK. + +"If we compare land animals in respect to magnitude, with those that +take up their abode in the deep, we shall find they will appear +contemptible in the comparison. The whale is doubtless the largest +animal in creation." --GOLDSMITH, NAT. HIST. + +"If you should write a fable for little fishes, you would make them +speak like great wales." --GOLDSMITH TO JOHNSON. + +"In the afternoon we saw what was supposed to be a rock, but it was +found to be a dead whale, which some Asiatics had killed, and were +then towing ashore. They seemed to endeavor to conceal themselves +behind the whale, in order to avoid being seen by us." --COOK'S +VOYAGES. + +"The larger whales, they seldom venture to attack. They stand in so +great dread of some of them, that when out at sea they are afraid to +mention even their names, and carry dung, lime-stone, juniper-wood, +and some other articles of the same nature in their boats, in order +to terrify and prevent their too near approach." --UNO VON TROIL'S +LETTERS ON BANKS'S AND SOLANDER'S VOYAGE TO ICELAND IN 1772. + +"The Spermacetti Whale found by the Nantuckois, is an active, fierce +animal, and requires vast address and boldness in the fishermen." +--THOMAS JEFFERSON'S WHALE MEMORIAL TO THE FRENCH MINISTER IN 1778. + +"And pray, sir, what in the world is equal to it?" --EDMUND BURKE'S +REFERENCE IN PARLIAMENT TO THE NANTUCKET WHALE-FISHERY. + +"Spain--a great whale stranded on the shores of Europe." --EDMUND +BURKE. (SOMEWHERE.) + +"A tenth branch of the king's ordinary revenue, said to be grounded +on the consideration of his guarding and protecting the seas from +pirates and robbers, is the right to royal fish, which are whale and +sturgeon. And these, when either thrown ashore or caught near the +coast, are the property of the king." --BLACKSTONE. + +"Soon to the sport of death the crews repair: +Rodmond unerring o'er his head suspends +The barbed steel, and every turn attends." +--FALCONER'S SHIPWRECK. + +"Bright shone the roofs, the domes, the spires, +And rockets blew self driven, +To hang their momentary fire +Around the vault of heaven. + +"So fire with water to compare, +The ocean serves on high, +Up-spouted by a whale in air, +To express unwieldy joy." --COWPER, ON THE QUEEN'S +VISIT TO LONDON. + +"Ten or fifteen gallons of blood are thrown out of the heart at a +stroke, with immense velocity." --JOHN HUNTER'S ACCOUNT OF THE +DISSECTION OF A WHALE. (A SMALL SIZED ONE.) + +"The aorta of a whale is larger in the bore than the main pipe of the +water-works at London Bridge, and the water roaring in its passage +through that pipe is inferior in impetus and velocity to the blood +gushing from the whale's heart." --PALEY'S THEOLOGY. + +"The whale is a mammiferous animal without hind feet." --BARON +CUVIER. + +"In 40 degrees south, we saw Spermacetti Whales, but did not take any +till the first of May, the sea being then covered with them." +--COLNETT'S VOYAGE FOR THE PURPOSE OF EXTENDING THE SPERMACETI WHALE +FISHERY. + +"In the free element beneath me swam, +Floundered and dived, in play, in chace, in battle, +Fishes of every colour, form, and kind; +Which language cannot paint, and mariner +Had never seen; from dread Leviathan +To insect millions peopling every wave: +Gather'd in shoals immense, like floating islands, +Led by mysterious instincts through that waste +And trackless region, though on every side +Assaulted by voracious enemies, +Whales, sharks, and monsters, arm'd in front or jaw, +With swords, saws, spiral horns, or hooked fangs." +--MONTGOMERY'S WORLD BEFORE THE FLOOD. + +"Io! Paean! Io! sing. +To the finny people's king. +Not a mightier whale than this +In the vast Atlantic is; +Not a fatter fish than he, +Flounders round the Polar Sea." --CHARLES LAMB'S TRIUMPH OF THE +WHALE. + +"In the year 1690 some persons were on a high hill observing the +whales spouting and sporting with each other, when one observed: +there--pointing to the sea--is a green pasture where our children's +grand-children will go for bread." --OBED MACY'S HISTORY OF +NANTUCKET. + +"I built a cottage for Susan and myself and made a gateway in the +form of a Gothic Arch, by setting up a whale's jaw bones." +--HAWTHORNE'S TWICE TOLD TALES. + +"She came to bespeak a monument for her first love, who had been +killed by a whale in the Pacific ocean, no less than forty years +ago." --IBID. + +"No, Sir, 'tis a Right Whale," answered Tom; "I saw his sprout; he +threw up a pair of as pretty rainbows as a Christian would wish to +look at. He's a raal oil-butt, that fellow!" --COOPER'S PILOT. + +"The papers were brought in, and we saw in the Berlin Gazette that +whales had been introduced on the stage there." --ECKERMANN'S +CONVERSATIONS WITH GOETHE. + +"My God! Mr. Chace, what is the matter?" I answered, "we have been +stove by a whale." --"NARRATIVE OF THE SHIPWRECK OF THE WHALE SHIP +ESSEX OF NANTUCKET, WHICH WAS ATTACKED AND FINALLY DESTROYED BY A +LARGE SPERM WHALE IN THE PACIFIC OCEAN." BY OWEN CHACE OF NANTUCKET, +FIRST MATE OF SAID VESSEL. NEW YORK, 1821. + +"A mariner sat in the shrouds one night, +The wind was piping free; +Now bright, now dimmed, was the moonlight pale, +And the phospher gleamed in the wake of the whale, +As it floundered in the sea." --ELIZABETH OAKES SMITH. + +"The quantity of line withdrawn from the boats engaged in the capture +of this one whale, amounted altogether to 10,440 yards or nearly six +English miles. ... + +"Sometimes the whale shakes its tremendous tail in the air, which, +cracking like a whip, resounds to the distance of three or four +miles." --SCORESBY. + +"Mad with the agonies he endures from these fresh attacks, the +infuriated Sperm Whale rolls over and over; he rears his enormous +head, and with wide expanded jaws snaps at everything around him; he +rushes at the boats with his head; they are propelled before him with +vast swiftness, and sometimes utterly destroyed. ... It is a matter +of great astonishment that the consideration of the habits of so +interesting, and, in a commercial point of view, so important an +animal (as the Sperm Whale) should have been so entirely neglected, +or should have excited so little curiosity among the numerous, and +many of them competent observers, that of late years, must have +possessed the most abundant and the most convenient opportunities of +witnessing their habitudes." --THOMAS BEALE'S HISTORY OF THE SPERM +WHALE, 1839. + +"The Cachalot" (Sperm Whale) "is not only better armed than the True +Whale" (Greenland or Right Whale) "in possessing a formidable weapon +at either extremity of its body, but also more frequently displays a +disposition to employ these weapons offensively and in manner at once +so artful, bold, and mischievous, as to lead to its being regarded as +the most dangerous to attack of all the known species of the whale +tribe." --FREDERICK DEBELL BENNETT'S WHALING VOYAGE ROUND THE GLOBE, +1840. + +October 13. "There she blows," was sung out from the mast-head. +"Where away?" demanded the captain. +"Three points off the lee bow, sir." +"Raise up your wheel. Steady!" "Steady, sir." +"Mast-head ahoy! Do you see that whale now?" +"Ay ay, sir! A shoal of Sperm Whales! There she blows! There she +breaches!" +"Sing out! sing out every time!" +"Ay Ay, sir! There she blows! there--there--THAR she +blows--bowes--bo-o-os!" +"How far off?" +"Two miles and a half." +"Thunder and lightning! so near! Call all hands." --J. ROSS BROWNE'S +ETCHINGS OF A WHALING CRUIZE. 1846. + +"The Whale-ship Globe, on board of which vessel occurred the horrid +transactions we are about to relate, belonged to the island of +Nantucket." --"NARRATIVE OF THE GLOBE," BY LAY AND HUSSEY SURVIVORS. +A.D. 1828. + +Being once pursued by a whale which he had wounded, he parried the +assault for some time with a lance; but the furious monster at length +rushed on the boat; himself and comrades only being preserved by +leaping into the water when they saw the onset was inevitable." +--MISSIONARY JOURNAL OF TYERMAN AND BENNETT. + +"Nantucket itself," said Mr. Webster, "is a very striking and +peculiar portion of the National interest. There is a population of +eight or nine thousand persons living here in the sea, adding largely +every year to the National wealth by the boldest and most persevering +industry." --REPORT OF DANIEL WEBSTER'S SPEECH IN THE U. S. SENATE, +ON THE APPLICATION FOR THE ERECTION OF A BREAKWATER AT NANTUCKET. +1828. + +"The whale fell directly over him, and probably killed him in a +moment." --"THE WHALE AND HIS CAPTORS, OR THE WHALEMAN'S ADVENTURES +AND THE WHALE'S BIOGRAPHY, GATHERED ON THE HOMEWARD CRUISE OF THE +COMMODORE PREBLE." BY REV. HENRY T. CHEEVER. + +"If you make the least damn bit of noise," replied Samuel, "I will +send you to hell." --LIFE OF SAMUEL COMSTOCK (THE MUTINEER), BY HIS +BROTHER, WILLIAM COMSTOCK. ANOTHER VERSION OF THE WHALE-SHIP GLOBE +NARRATIVE. + +"The voyages of the Dutch and English to the Northern Ocean, in +order, if possible, to discover a passage through it to India, though +they failed of their main object, laid-open the haunts of the whale." +--MCCULLOCH'S COMMERCIAL DICTIONARY. + +"These things are reciprocal; the ball rebounds, only to bound +forward again; for now in laying open the haunts of the whale, the +whalemen seem to have indirectly hit upon new clews to that same +mystic North-West Passage." --FROM "SOMETHING" UNPUBLISHED. + +"It is impossible to meet a whale-ship on the ocean without being +struck by her near appearance. The vessel under short sail, with +look-outs at the mast-heads, eagerly scanning the wide expanse around +them, has a totally different air from those engaged in regular +voyage." --CURRENTS AND WHALING. U.S. EX. EX. + +"Pedestrians in the vicinity of London and elsewhere may recollect +having seen large curved bones set upright in the earth, either to +form arches over gateways, or entrances to alcoves, and they may +perhaps have been told that these were the ribs of whales." --TALES +OF A WHALE VOYAGER TO THE ARCTIC OCEAN. + +"It was not till the boats returned from the pursuit of these whales, +that the whites saw their ship in bloody possession of the savages +enrolled among the crew." --NEWSPAPER ACCOUNT OF THE TAKING AND +RETAKING OF THE WHALE-SHIP HOBOMACK. + +"It is generally well known that out of the crews of Whaling vessels +(American) few ever return in the ships on board of which they +departed." --CRUISE IN A WHALE BOAT. + +"Suddenly a mighty mass emerged from the water, and shot up +perpendicularly into the air. It was the while." --MIRIAM COFFIN OR +THE WHALE FISHERMAN. + +"The Whale is harpooned to be sure; but bethink you, how you would +manage a powerful unbroken colt, with the mere appliance of a rope +tied to the root of his tail." --A CHAPTER ON WHALING IN RIBS AND +TRUCKS. + +"On one occasion I saw two of these monsters (whales) probably male +and female, slowly swimming, one after the other, within less than a +stone's throw of the shore" (Terra Del Fuego), "over which the beech +tree extended its branches." --DARWIN'S VOYAGE OF A NATURALIST. + +"'Stern all!' exclaimed the mate, as upon turning his head, he saw +the distended jaws of a large Sperm Whale close to the head of the +boat, threatening it with instant destruction;--'Stern all, for your +lives!'" --WHARTON THE WHALE KILLER. + +"So be cheery, my lads, let your hearts never fail, +While the bold harpooneer is striking the whale!" --NANTUCKET SONG. + +"Oh, the rare old Whale, mid storm and gale +In his ocean home will be +A giant in might, where might is right, +And King of the boundless sea." --WHALE SONG. + + + +CHAPTER 1 + +Loomings. + + +Call me Ishmael. Some years ago--never mind how long +precisely--having little or no money in my purse, and nothing +particular to interest me on shore, I thought I would sail about a +little and see the watery part of the world. It is a way I have of +driving off the spleen and regulating the circulation. Whenever I +find myself growing grim about the mouth; whenever it is a damp, +drizzly November in my soul; whenever I find myself involuntarily +pausing before coffin warehouses, and bringing up the rear of every +funeral I meet; and especially whenever my hypos get such an upper +hand of me, that it requires a strong moral principle to prevent me +from deliberately stepping into the street, and methodically knocking +people's hats off--then, I account it high time to get to sea as soon +as I can. This is my substitute for pistol and ball. With a +philosophical flourish Cato throws himself upon his sword; I quietly +take to the ship. There is nothing surprising in this. If they but +knew it, almost all men in their degree, some time or other, cherish +very nearly the same feelings towards the ocean with me. + +There now is your insular city of the Manhattoes, belted round by +wharves as Indian isles by coral reefs--commerce surrounds it with +her surf. Right and left, the streets take you waterward. Its +extreme downtown is the battery, where that noble mole is washed by +waves, and cooled by breezes, which a few hours previous were out of +sight of land. Look at the crowds of water-gazers there. + +Circumambulate the city of a dreamy Sabbath afternoon. Go from +Corlears Hook to Coenties Slip, and from thence, by Whitehall, +northward. What do you see?--Posted like silent sentinels all around +the town, stand thousands upon thousands of mortal men fixed in ocean +reveries. Some leaning against the spiles; some seated upon the +pier-heads; some looking over the bulwarks of ships from China; some +high aloft in the rigging, as if striving to get a still better +seaward peep. But these are all landsmen; of week days pent up in +lath and plaster--tied to counters, nailed to benches, clinched to +desks. How then is this? Are the green fields gone? What do they +here? + +But look! here come more crowds, pacing straight for the water, and +seemingly bound for a dive. Strange! Nothing will content them but +the extremest limit of the land; loitering under the shady lee of +yonder warehouses will not suffice. No. They must get just as nigh +the water as they possibly can without falling in. And there they +stand--miles of them--leagues. Inlanders all, they come from lanes +and alleys, streets and avenues--north, east, south, and west. Yet +here they all unite. Tell me, does the magnetic virtue of the +needles of the compasses of all those ships attract them thither? + +Once more. Say you are in the country; in some high land of lakes. +Take almost any path you please, and ten to one it carries you down +in a dale, and leaves you there by a pool in the stream. There is +magic in it. Let the most absent-minded of men be plunged in his +deepest reveries--stand that man on his legs, set his feet a-going, +and he will infallibly lead you to water, if water there be in all +that region. Should you ever be athirst in the great American +desert, try this experiment, if your caravan happen to be supplied +with a metaphysical professor. Yes, as every one knows, meditation +and water are wedded for ever. + +But here is an artist. He desires to paint you the dreamiest, +shadiest, quietest, most enchanting bit of romantic landscape in all +the valley of the Saco. What is the chief element he employs? There +stand his trees, each with a hollow trunk, as if a hermit and a +crucifix were within; and here sleeps his meadow, and there sleep his +cattle; and up from yonder cottage goes a sleepy smoke. Deep into +distant woodlands winds a mazy way, reaching to overlapping spurs of +mountains bathed in their hill-side blue. But though the picture +lies thus tranced, and though this pine-tree shakes down its sighs +like leaves upon this shepherd's head, yet all were vain, unless the +shepherd's eye were fixed upon the magic stream before him. Go visit +the Prairies in June, when for scores on scores of miles you wade +knee-deep among Tiger-lilies--what is the one charm +wanting?--Water--there is not a drop of water there! Were Niagara +but a cataract of sand, would you travel your thousand miles to see +it? Why did the poor poet of Tennessee, upon suddenly receiving two +handfuls of silver, deliberate whether to buy him a coat, which he +sadly needed, or invest his money in a pedestrian trip to Rockaway +Beach? Why is almost every robust healthy boy with a robust healthy +soul in him, at some time or other crazy to go to sea? Why upon your +first voyage as a passenger, did you yourself feel such a mystical +vibration, when first told that you and your ship were now out of +sight of land? Why did the old Persians hold the sea holy? Why did +the Greeks give it a separate deity, and own brother of Jove? Surely +all this is not without meaning. And still deeper the meaning of +that story of Narcissus, who because he could not grasp the +tormenting, mild image he saw in the fountain, plunged into it and +was drowned. But that same image, we ourselves see in all rivers and +oceans. It is the image of the ungraspable phantom of life; and this +is the key to it all. + +Now, when I say that I am in the habit of going to sea whenever I +begin to grow hazy about the eyes, and begin to be over conscious of +my lungs, I do not mean to have it inferred that I ever go to sea as +a passenger. For to go as a passenger you must needs have a purse, +and a purse is but a rag unless you have something in it. Besides, +passengers get sea-sick--grow quarrelsome--don't sleep of nights--do +not enjoy themselves much, as a general thing;--no, I never go as a +passenger; nor, though I am something of a salt, do I ever go to sea +as a Commodore, or a Captain, or a Cook. I abandon the glory and +distinction of such offices to those who like them. For my part, I +abominate all honourable respectable toils, trials, and tribulations +of every kind whatsoever. It is quite as much as I can do to take +care of myself, without taking care of ships, barques, brigs, +schooners, and what not. And as for going as cook,--though I confess +there is considerable glory in that, a cook being a sort of officer +on ship-board--yet, somehow, I never fancied broiling fowls;--though +once broiled, judiciously buttered, and judgmatically salted and +peppered, there is no one who will speak more respectfully, not to +say reverentially, of a broiled fowl than I will. It is out of the +idolatrous dotings of the old Egyptians upon broiled ibis and roasted +river horse, that you see the mummies of those creatures in their +huge bake-houses the pyramids. + +No, when I go to sea, I go as a simple sailor, right before the mast, +plumb down into the forecastle, aloft there to the royal mast-head. +True, they rather order me about some, and make me jump from spar to +spar, like a grasshopper in a May meadow. And at first, this sort of +thing is unpleasant enough. It touches one's sense of honour, +particularly if you come of an old established family in the land, +the Van Rensselaers, or Randolphs, or Hardicanutes. And more than +all, if just previous to putting your hand into the tar-pot, you have +been lording it as a country schoolmaster, making the tallest boys +stand in awe of you. The transition is a keen one, I assure you, +from a schoolmaster to a sailor, and requires a strong decoction of +Seneca and the Stoics to enable you to grin and bear it. But even +this wears off in time. + +What of it, if some old hunks of a sea-captain orders me to get a +broom and sweep down the decks? What does that indignity amount to, +weighed, I mean, in the scales of the New Testament? Do you think +the archangel Gabriel thinks anything the less of me, because I +promptly and respectfully obey that old hunks in that particular +instance? Who ain't a slave? Tell me that. Well, then, however the +old sea-captains may order me about--however they may thump and punch +me about, I have the satisfaction of knowing that it is all right; +that everybody else is one way or other served in much the same +way--either in a physical or metaphysical point of view, that is; and +so the universal thump is passed round, and all hands should rub each +other's shoulder-blades, and be content. + +Again, I always go to sea as a sailor, because they make a point of +paying me for my trouble, whereas they never pay passengers a single +penny that I ever heard of. On the contrary, passengers themselves +must pay. And there is all the difference in the world between +paying and being paid. The act of paying is perhaps the most +uncomfortable infliction that the two orchard thieves entailed upon +us. But BEING PAID,--what will compare with it? The urbane activity +with which a man receives money is really marvellous, considering +that we so earnestly believe money to be the root of all earthly +ills, and that on no account can a monied man enter heaven. Ah! how +cheerfully we consign ourselves to perdition! + +Finally, I always go to sea as a sailor, because of the wholesome +exercise and pure air of the fore-castle deck. For as in this world, +head winds are far more prevalent than winds from astern (that is, if +you never violate the Pythagorean maxim), so for the most part the +Commodore on the quarter-deck gets his atmosphere at second hand from +the sailors on the forecastle. He thinks he breathes it first; but +not so. In much the same way do the commonalty lead their leaders in +many other things, at the same time that the leaders little suspect +it. But wherefore it was that after having repeatedly smelt the sea +as a merchant sailor, I should now take it into my head to go on a +whaling voyage; this the invisible police officer of the Fates, who +has the constant surveillance of me, and secretly dogs me, and +influences me in some unaccountable way--he can better answer than +any one else. And, doubtless, my going on this whaling voyage, +formed part of the grand programme of Providence that was drawn up a +long time ago. It came in as a sort of brief interlude and solo +between more extensive performances. I take it that this part of the +bill must have run something like this: + + +"GRAND CONTESTED ELECTION FOR THE PRESIDENCY OF THE UNITED STATES. +"WHALING VOYAGE BY ONE ISHMAEL. +"BLOODY BATTLE IN AFFGHANISTAN." + + +Though I cannot tell why it was exactly that those stage managers, +the Fates, put me down for this shabby part of a whaling voyage, when +others were set down for magnificent parts in high tragedies, and +short and easy parts in genteel comedies, and jolly parts in +farces--though I cannot tell why this was exactly; yet, now that I +recall all the circumstances, I think I can see a little into the +springs and motives which being cunningly presented to me under +various disguises, induced me to set about performing the part I did, +besides cajoling me into the delusion that it was a choice resulting +from my own unbiased freewill and discriminating judgment. + +Chief among these motives was the overwhelming idea of the great +whale himself. Such a portentous and mysterious monster roused all +my curiosity. Then the wild and distant seas where he rolled his +island bulk; the undeliverable, nameless perils of the whale; these, +with all the attending marvels of a thousand Patagonian sights and +sounds, helped to sway me to my wish. With other men, perhaps, such +things would not have been inducements; but as for me, I am tormented +with an everlasting itch for things remote. I love to sail forbidden +seas, and land on barbarous coasts. Not ignoring what is good, I am +quick to perceive a horror, and could still be social with it--would +they let me--since it is but well to be on friendly terms with all +the inmates of the place one lodges in. + +By reason of these things, then, the whaling voyage was welcome; the +great flood-gates of the wonder-world swung open, and in the wild +conceits that swayed me to my purpose, two and two there floated into +my inmost soul, endless processions of the whale, and, mid most of +them all, one grand hooded phantom, like a snow hill in the air. + + + +CHAPTER 2 + +The Carpet-Bag. + + +I stuffed a shirt or two into my old carpet-bag, tucked it under my +arm, and started for Cape Horn and the Pacific. Quitting the good +city of old Manhatto, I duly arrived in New Bedford. It was a +Saturday night in December. Much was I disappointed upon learning +that the little packet for Nantucket had already sailed, and that no +way of reaching that place would offer, till the following Monday. + +As most young candidates for the pains and penalties of whaling stop +at this same New Bedford, thence to embark on their voyage, it may as +well be related that I, for one, had no idea of so doing. For my +mind was made up to sail in no other than a Nantucket craft, because +there was a fine, boisterous something about everything connected +with that famous old island, which amazingly pleased me. Besides +though New Bedford has of late been gradually monopolising the +business of whaling, and though in this matter poor old Nantucket is +now much behind her, yet Nantucket was her great original--the Tyre +of this Carthage;--the place where the first dead American whale was +stranded. Where else but from Nantucket did those aboriginal +whalemen, the Red-Men, first sally out in canoes to give chase to the +Leviathan? And where but from Nantucket, too, did that first +adventurous little sloop put forth, partly laden with imported +cobblestones--so goes the story--to throw at the whales, in order to +discover when they were nigh enough to risk a harpoon from the +bowsprit? + +Now having a night, a day, and still another night following before +me in New Bedford, ere I could embark for my destined port, it +became a matter of concernment where I was to eat and sleep +meanwhile. It was a very dubious-looking, nay, a very dark and +dismal night, bitingly cold and cheerless. I knew no one in the +place. With anxious grapnels I had sounded my pocket, and only +brought up a few pieces of silver,--So, wherever you go, Ishmael, +said I to myself, as I stood in the middle of a dreary street +shouldering my bag, and comparing the gloom towards the north with +the darkness towards the south--wherever in your wisdom you may +conclude to lodge for the night, my dear Ishmael, be sure to inquire +the price, and don't be too particular. + +With halting steps I paced the streets, and passed the sign of "The +Crossed Harpoons"--but it looked too expensive and jolly there. +Further on, from the bright red windows of the "Sword-Fish Inn," +there came such fervent rays, that it seemed to have melted the +packed snow and ice from before the house, for everywhere else the +congealed frost lay ten inches thick in a hard, asphaltic +pavement,--rather weary for me, when I struck my foot against the +flinty projections, because from hard, remorseless service the soles +of my boots were in a most miserable plight. Too expensive and +jolly, again thought I, pausing one moment to watch the broad glare +in the street, and hear the sounds of the tinkling glasses within. +But go on, Ishmael, said I at last; don't you hear? get away from +before the door; your patched boots are stopping the way. So on I +went. I now by instinct followed the streets that took me waterward, +for there, doubtless, were the cheapest, if not the cheeriest inns. + +Such dreary streets! blocks of blackness, not houses, on either +hand, and here and there a candle, like a candle moving about in a +tomb. At this hour of the night, of the last day of the week, that +quarter of the town proved all but deserted. But presently I came to +a smoky light proceeding from a low, wide building, the door of which +stood invitingly open. It had a careless look, as if it were meant +for the uses of the public; so, entering, the first thing I did was +to stumble over an ash-box in the porch. Ha! thought I, ha, as the +flying particles almost choked me, are these ashes from that +destroyed city, Gomorrah? But "The Crossed Harpoons," and "The +Sword-Fish?"--this, then must needs be the sign of "The Trap." +However, I picked myself up and hearing a loud voice within, pushed +on and opened a second, interior door. + +It seemed the great Black Parliament sitting in Tophet. A hundred +black faces turned round in their rows to peer; and beyond, a black +Angel of Doom was beating a book in a pulpit. It was a negro church; +and the preacher's text was about the blackness of darkness, and the +weeping and wailing and teeth-gnashing there. Ha, Ishmael, muttered +I, backing out, Wretched entertainment at the sign of 'The Trap!' + +Moving on, I at last came to a dim sort of light not far from the +docks, and heard a forlorn creaking in the air; and looking up, saw a +swinging sign over the door with a white painting upon it, faintly +representing a tall straight jet of misty spray, and these words +underneath--"The Spouter Inn:--Peter Coffin." + +Coffin?--Spouter?--Rather ominous in that particular connexion, +thought I. But it is a common name in Nantucket, they say, and I +suppose this Peter here is an emigrant from there. As the light +looked so dim, and the place, for the time, looked quiet enough, and +the dilapidated little wooden house itself looked as if it might have +been carted here from the ruins of some burnt district, and as the +swinging sign had a poverty-stricken sort of creak to it, I thought +that here was the very spot for cheap lodgings, and the best of pea +coffee. + +It was a queer sort of place--a gable-ended old house, one side +palsied as it were, and leaning over sadly. It stood on a sharp +bleak corner, where that tempestuous wind Euroclydon kept up a worse +howling than ever it did about poor Paul's tossed craft. Euroclydon, +nevertheless, is a mighty pleasant zephyr to any one in-doors, with +his feet on the hob quietly toasting for bed. "In judging of that +tempestuous wind called Euroclydon," says an old writer--of whose +works I possess the only copy extant--"it maketh a marvellous +difference, whether thou lookest out at it from a glass window where +the frost is all on the outside, or whether thou observest it from +that sashless window, where the frost is on both sides, and of which +the wight Death is the only glazier." True enough, thought I, as +this passage occurred to my mind--old black-letter, thou reasonest +well. Yes, these eyes are windows, and this body of mine is the +house. What a pity they didn't stop up the chinks and the crannies +though, and thrust in a little lint here and there. But it's too +late to make any improvements now. The universe is finished; the +copestone is on, and the chips were carted off a million years ago. +Poor Lazarus there, chattering his teeth against the curbstone for +his pillow, and shaking off his tatters with his shiverings, he might +plug up both ears with rags, and put a corn-cob into his mouth, and +yet that would not keep out the tempestuous Euroclydon. Euroclydon! +says old Dives, in his red silken wrapper--(he had a redder one +afterwards) pooh, pooh! What a fine frosty night; how Orion +glitters; what northern lights! Let them talk of their oriental +summer climes of everlasting conservatories; give me the privilege of +making my own summer with my own coals. + +But what thinks Lazarus? Can he warm his blue hands by holding them +up to the grand northern lights? Would not Lazarus rather be in +Sumatra than here? Would he not far rather lay him down lengthwise +along the line of the equator; yea, ye gods! go down to the fiery pit +itself, in order to keep out this frost? + +Now, that Lazarus should lie stranded there on the curbstone before +the door of Dives, this is more wonderful than that an iceberg should +be moored to one of the Moluccas. Yet Dives himself, he too lives +like a Czar in an ice palace made of frozen sighs, and being a +president of a temperance society, he only drinks the tepid tears of +orphans. + +But no more of this blubbering now, we are going a-whaling, and there +is plenty of that yet to come. Let us scrape the ice from our +frosted feet, and see what sort of a place this "Spouter" may be. + + + +CHAPTER 3 + +The Spouter-Inn. + + +Entering that gable-ended Spouter-Inn, you found yourself in a wide, +low, straggling entry with old-fashioned wainscots, reminding one of +the bulwarks of some condemned old craft. On one side hung a very +large oilpainting so thoroughly besmoked, and every way defaced, +that in the unequal crosslights by which you viewed it, it was only +by diligent study and a series of systematic visits to it, and +careful inquiry of the neighbors, that you could any way arrive at an +understanding of its purpose. Such unaccountable masses of shades +and shadows, that at first you almost thought some ambitious young +artist, in the time of the New England hags, had endeavored to +delineate chaos bewitched. But by dint of much and earnest +contemplation, and oft repeated ponderings, and especially by +throwing open the little window towards the back of the entry, you at +last come to the conclusion that such an idea, however wild, might +not be altogether unwarranted. + +But what most puzzled and confounded you was a long, limber, +portentous, black mass of something hovering in the centre of the +picture over three blue, dim, perpendicular lines floating in a +nameless yeast. A boggy, soggy, squitchy picture truly, enough to +drive a nervous man distracted. Yet was there a sort of indefinite, +half-attained, unimaginable sublimity about it that fairly froze you +to it, till you involuntarily took an oath with yourself to find out +what that marvellous painting meant. Ever and anon a bright, but, +alas, deceptive idea would dart you through.--It's the Black Sea in a +midnight gale.--It's the unnatural combat of the four primal +elements.--It's a blasted heath.--It's a Hyperborean winter +scene.--It's the breaking-up of the icebound stream of Time. But at +last all these fancies yielded to that one portentous something in +the picture's midst. THAT once found out, and all the rest were +plain. But stop; does it not bear a faint resemblance to a gigantic +fish? even the great leviathan himself? + +In fact, the artist's design seemed this: a final theory of my own, +partly based upon the aggregated opinions of many aged persons with +whom I conversed upon the subject. The picture represents a +Cape-Horner in a great hurricane; the half-foundered ship weltering +there with its three dismantled masts alone visible; and an +exasperated whale, purposing to spring clean over the craft, is in +the enormous act of impaling himself upon the three mast-heads. + +The opposite wall of this entry was hung all over with a heathenish +array of monstrous clubs and spears. Some were thickly set with +glittering teeth resembling ivory saws; others were tufted with knots +of human hair; and one was sickle-shaped, with a vast handle sweeping +round like the segment made in the new-mown grass by a long-armed +mower. You shuddered as you gazed, and wondered what monstrous +cannibal and savage could ever have gone a death-harvesting with such +a hacking, horrifying implement. Mixed with these were rusty old +whaling lances and harpoons all broken and deformed. Some were +storied weapons. With this once long lance, now wildly elbowed, +fifty years ago did Nathan Swain kill fifteen whales between a +sunrise and a sunset. And that harpoon--so like a corkscrew now--was +flung in Javan seas, and run away with by a whale, years afterwards +slain off the Cape of Blanco. The original iron entered nigh the +tail, and, like a restless needle sojourning in the body of a man, +travelled full forty feet, and at last was found imbedded in the +hump. + +Crossing this dusky entry, and on through yon low-arched way--cut +through what in old times must have been a great central chimney with +fireplaces all round--you enter the public room. A still duskier +place is this, with such low ponderous beams above, and such old +wrinkled planks beneath, that you would almost fancy you trod some +old craft's cockpits, especially of such a howling night, when this +corner-anchored old ark rocked so furiously. On one side stood a +long, low, shelf-like table covered with cracked glass cases, filled +with dusty rarities gathered from this wide world's remotest nooks. +Projecting from the further angle of the room stands a dark-looking +den--the bar--a rude attempt at a right whale's head. Be that how it +may, there stands the vast arched bone of the whale's jaw, so wide, a +coach might almost drive beneath it. Within are shabby shelves, +ranged round with old decanters, bottles, flasks; and in those jaws +of swift destruction, like another cursed Jonah (by which name indeed +they called him), bustles a little withered old man, who, for their +money, dearly sells the sailors deliriums and death. + +Abominable are the tumblers into which he pours his poison. Though +true cylinders without--within, the villanous green goggling glasses +deceitfully tapered downwards to a cheating bottom. Parallel +meridians rudely pecked into the glass, surround these footpads' +goblets. Fill to THIS mark, and your charge is but a penny; to THIS +a penny more; and so on to the full glass--the Cape Horn measure, +which you may gulp down for a shilling. + +Upon entering the place I found a number of young seamen gathered +about a table, examining by a dim light divers specimens of +SKRIMSHANDER. I sought the landlord, and telling him I desired to be +accommodated with a room, received for answer that his house was +full--not a bed unoccupied. "But avast," he added, tapping his +forehead, "you haint no objections to sharing a harpooneer's blanket, +have ye? I s'pose you are goin' a-whalin', so you'd better get used +to that sort of thing." + +I told him that I never liked to sleep two in a bed; that if I should +ever do so, it would depend upon who the harpooneer might be, and +that if he (the landlord) really had no other place for me, and the +harpooneer was not decidedly objectionable, why rather than wander +further about a strange town on so bitter a night, I would put up +with the half of any decent man's blanket. + +"I thought so. All right; take a seat. Supper?--you want supper? +Supper'll be ready directly." + +I sat down on an old wooden settle, carved all over like a bench on +the Battery. At one end a ruminating tar was still further adorning +it with his jack-knife, stooping over and diligently working away at +the space between his legs. He was trying his hand at a ship under +full sail, but he didn't make much headway, I thought. + +At last some four or five of us were summoned to our meal in an +adjoining room. It was cold as Iceland--no fire at all--the landlord +said he couldn't afford it. Nothing but two dismal tallow candles, +each in a winding sheet. We were fain to button up our monkey +jackets, and hold to our lips cups of scalding tea with our half +frozen fingers. But the fare was of the most substantial kind--not +only meat and potatoes, but dumplings; good heavens! dumplings for +supper! One young fellow in a green box coat, addressed himself to +these dumplings in a most direful manner. + +"My boy," said the landlord, "you'll have the nightmare to a dead +sartainty." + +"Landlord," I whispered, "that aint the harpooneer is it?" + +"Oh, no," said he, looking a sort of diabolically funny, "the +harpooneer is a dark complexioned chap. He never eats dumplings, he +don't--he eats nothing but steaks, and he likes 'em rare." + +"The devil he does," says I. "Where is that harpooneer? Is he +here?" + +"He'll be here afore long," was the answer. + +I could not help it, but I began to feel suspicious of this "dark +complexioned" harpooneer. At any rate, I made up my mind that if it +so turned out that we should sleep together, he must undress and get +into bed before I did. + +Supper over, the company went back to the bar-room, when, knowing not +what else to do with myself, I resolved to spend the rest of the +evening as a looker on. + +Presently a rioting noise was heard without. Starting up, the +landlord cried, "That's the Grampus's crew. I seed her reported in +the offing this morning; a three years' voyage, and a full ship. +Hurrah, boys; now we'll have the latest news from the Feegees." + +A tramping of sea boots was heard in the entry; the door was flung +open, and in rolled a wild set of mariners enough. Enveloped in +their shaggy watch coats, and with their heads muffled in woollen +comforters, all bedarned and ragged, and their beards stiff with +icicles, they seemed an eruption of bears from Labrador. They had +just landed from their boat, and this was the first house they +entered. No wonder, then, that they made a straight wake for the +whale's mouth--the bar--when the wrinkled little old Jonah, there +officiating, soon poured them out brimmers all round. One complained +of a bad cold in his head, upon which Jonah mixed him a pitch-like +potion of gin and molasses, which he swore was a sovereign cure for +all colds and catarrhs whatsoever, never mind of how long standing, +or whether caught off the coast of Labrador, or on the weather side +of an ice-island. + +The liquor soon mounted into their heads, as it generally does even +with the arrantest topers newly landed from sea, and they began +capering about most obstreperously. + +I observed, however, that one of them held somewhat aloof, and though +he seemed desirous not to spoil the hilarity of his shipmates by his +own sober face, yet upon the whole he refrained from making as much +noise as the rest. This man interested me at once; and since the +sea-gods had ordained that he should soon become my shipmate (though +but a sleeping-partner one, so far as this narrative is concerned), +I will here venture upon a little description of him. He stood full +six feet in height, with noble shoulders, and a chest like a +coffer-dam. I have seldom seen such brawn in a man. His face was +deeply brown and burnt, making his white teeth dazzling by the +contrast; while in the deep shadows of his eyes floated some +reminiscences that did not seem to give him much joy. His voice at +once announced that he was a Southerner, and from his fine stature, I +thought he must be one of those tall mountaineers from the +Alleghanian Ridge in Virginia. When the revelry of his companions +had mounted to its height, this man slipped away unobserved, and I +saw no more of him till he became my comrade on the sea. In a few +minutes, however, he was missed by his shipmates, and being, it +seems, for some reason a huge favourite with them, they raised a cry +of "Bulkington! Bulkington! where's Bulkington?" and darted out of +the house in pursuit of him. + +It was now about nine o'clock, and the room seeming almost +supernaturally quiet after these orgies, I began to congratulate +myself upon a little plan that had occurred to me just previous to +the entrance of the seamen. + +No man prefers to sleep two in a bed. In fact, you would a good deal +rather not sleep with your own brother. I don't know how it is, but +people like to be private when they are sleeping. And when it comes +to sleeping with an unknown stranger, in a strange inn, in a strange +town, and that stranger a harpooneer, then your objections +indefinitely multiply. Nor was there any earthly reason why I as a +sailor should sleep two in a bed, more than anybody else; for sailors +no more sleep two in a bed at sea, than bachelor Kings do ashore. To +be sure they all sleep together in one apartment, but you have your +own hammock, and cover yourself with your own blanket, and sleep in +your own skin. + +The more I pondered over this harpooneer, the more I abominated the +thought of sleeping with him. It was fair to presume that being a +harpooneer, his linen or woollen, as the case might be, would not be +of the tidiest, certainly none of the finest. I began to twitch all +over. Besides, it was getting late, and my decent harpooneer ought +to be home and going bedwards. Suppose now, he should tumble in upon +me at midnight--how could I tell from what vile hole he had been +coming? + +"Landlord! I've changed my mind about that harpooneer.--I shan't +sleep with him. I'll try the bench here." + +"Just as you please; I'm sorry I cant spare ye a tablecloth for a +mattress, and it's a plaguy rough board here"--feeling of the knots +and notches. "But wait a bit, Skrimshander; I've got a carpenter's +plane there in the bar--wait, I say, and I'll make ye snug enough." +So saying he procured the plane; and with his old silk handkerchief +first dusting the bench, vigorously set to planing away at my bed, +the while grinning like an ape. The shavings flew right and left; +till at last the plane-iron came bump against an indestructible knot. +The landlord was near spraining his wrist, and I told him for +heaven's sake to quit--the bed was soft enough to suit me, and I did +not know how all the planing in the world could make eider down of a +pine plank. So gathering up the shavings with another grin, and +throwing them into the great stove in the middle of the room, he went +about his business, and left me in a brown study. + +I now took the measure of the bench, and found that it was a foot too +short; but that could be mended with a chair. But it was a foot too +narrow, and the other bench in the room was about four inches higher +than the planed one--so there was no yoking them. I then placed the +first bench lengthwise along the only clear space against the wall, +leaving a little interval between, for my back to settle down in. +But I soon found that there came such a draught of cold air over me +from under the sill of the window, that this plan would never do at +all, especially as another current from the rickety door met the one +from the window, and both together formed a series of small +whirlwinds in the immediate vicinity of the spot where I had thought +to spend the night. + +The devil fetch that harpooneer, thought I, but stop, couldn't I +steal a march on him--bolt his door inside, and jump into his bed, +not to be wakened by the most violent knockings? It seemed no bad +idea; but upon second thoughts I dismissed it. For who could tell +but what the next morning, so soon as I popped out of the room, the +harpooneer might be standing in the entry, all ready to knock me +down! + +Still, looking round me again, and seeing no possible chance of +spending a sufferable night unless in some other person's bed, I +began to think that after all I might be cherishing unwarrantable +prejudices against this unknown harpooneer. Thinks I, I'll wait +awhile; he must be dropping in before long. I'll have a good look at +him then, and perhaps we may become jolly good bedfellows after +all--there's no telling. + +But though the other boarders kept coming in by ones, twos, and +threes, and going to bed, yet no sign of my harpooneer. + +"Landlord! said I, "what sort of a chap is he--does he always keep +such late hours?" It was now hard upon twelve o'clock. + +The landlord chuckled again with his lean chuckle, and seemed to be +mightily tickled at something beyond my comprehension. "No," he +answered, "generally he's an early bird--airley to bed and airley to +rise--yes, he's the bird what catches the worm. But to-night he +went out a peddling, you see, and I don't see what on airth keeps him +so late, unless, may be, he can't sell his head." + +"Can't sell his head?--What sort of a bamboozingly story is this you +are telling me?" getting into a towering rage. "Do you pretend to +say, landlord, that this harpooneer is actually engaged this blessed +Saturday night, or rather Sunday morning, in peddling his head around +this town?" + +"That's precisely it," said the landlord, "and I told him he couldn't +sell it here, the market's overstocked." + +"With what?" shouted I. + +"With heads to be sure; ain't there too many heads in the world?" + +"I tell you what it is, landlord," said I quite calmly, "you'd better +stop spinning that yarn to me--I'm not green." + +"May be not," taking out a stick and whittling a toothpick, "but I +rayther guess you'll be done BROWN if that ere harpooneer hears you a +slanderin' his head." + +"I'll break it for him," said I, now flying into a passion again at +this unaccountable farrago of the landlord's. + +"It's broke a'ready," said he. + +"Broke," said I--"BROKE, do you mean?" + +"Sartain, and that's the very reason he can't sell it, I guess." + +"Landlord," said I, going up to him as cool as Mt. Hecla in a +snow-storm--"landlord, stop whittling. You and I must understand one +another, and that too without delay. I come to your house and want a +bed; you tell me you can only give me half a one; that the other half +belongs to a certain harpooneer. And about this harpooneer, whom I +have not yet seen, you persist in telling me the most mystifying and +exasperating stories tending to beget in me an uncomfortable feeling +towards the man whom you design for my bedfellow--a sort of +connexion, landlord, which is an intimate and confidential one in the +highest degree. I now demand of you to speak out and tell me who and +what this harpooneer is, and whether I shall be in all respects safe +to spend the night with him. And in the first place, you will be so +good as to unsay that story about selling his head, which if true I +take to be good evidence that this harpooneer is stark mad, and I've +no idea of sleeping with a madman; and you, sir, YOU I mean, +landlord, YOU, sir, by trying to induce me to do so knowingly, would +thereby render yourself liable to a criminal prosecution." + +"Wall," said the landlord, fetching a long breath, "that's a purty +long sarmon for a chap that rips a little now and then. But be easy, +be easy, this here harpooneer I have been tellin' you of has just +arrived from the south seas, where he bought up a lot of 'balmed New +Zealand heads (great curios, you know), and he's sold all on 'em but +one, and that one he's trying to sell to-night, cause to-morrow's +Sunday, and it would not do to be sellin' human heads about the +streets when folks is goin' to churches. He wanted to, last Sunday, +but I stopped him just as he was goin' out of the door with four +heads strung on a string, for all the airth like a string of inions." + +This account cleared up the otherwise unaccountable mystery, and +showed that the landlord, after all, had had no idea of fooling +me--but at the same time what could I think of a harpooneer who +stayed out of a Saturday night clean into the holy Sabbath, engaged +in such a cannibal business as selling the heads of dead idolators? + +"Depend upon it, landlord, that harpooneer is a dangerous man." + +"He pays reg'lar," was the rejoinder. "But come, it's getting +dreadful late, you had better be turning flukes--it's a nice bed; +Sal and me slept in that ere bed the night we were spliced. There's +plenty of room for two to kick about in that bed; it's an almighty +big bed that. Why, afore we give it up, Sal used to put our Sam and +little Johnny in the foot of it. But I got a dreaming and sprawling +about one night, and somehow, Sam got pitched on the floor, and came +near breaking his arm. Arter that, Sal said it wouldn't do. Come +along here, I'll give ye a glim in a jiffy;" and so saying he lighted +a candle and held it towards me, offering to lead the way. But I +stood irresolute; when looking at a clock in the corner, he exclaimed +"I vum it's Sunday--you won't see that harpooneer to-night; he's come +to anchor somewhere--come along then; DO come; WON'T ye come?" + +I considered the matter a moment, and then up stairs we went, and I +was ushered into a small room, cold as a clam, and furnished, sure +enough, with a prodigious bed, almost big enough indeed for any four +harpooneers to sleep abreast. + +"There," said the landlord, placing the candle on a crazy old sea +chest that did double duty as a wash-stand and centre table; "there, +make yourself comfortable now, and good night to ye." I turned +round from eyeing the bed, but he had disappeared. + +Folding back the counterpane, I stooped over the bed. Though none of +the most elegant, it yet stood the scrutiny tolerably well. I then +glanced round the room; and besides the bedstead and centre table, +could see no other furniture belonging to the place, but a rude +shelf, the four walls, and a papered fireboard representing a man +striking a whale. Of things not properly belonging to the room, +there was a hammock lashed up, and thrown upon the floor in one +corner; also a large seaman's bag, containing the harpooneer's +wardrobe, no doubt in lieu of a land trunk. Likewise, there was a +parcel of outlandish bone fish hooks on the shelf over the +fire-place, and a tall harpoon standing at the head of the bed. + +But what is this on the chest? I took it up, and held it close to +the light, and felt it, and smelt it, and tried every way possible to +arrive at some satisfactory conclusion concerning it. I can compare +it to nothing but a large door mat, ornamented at the edges with +little tinkling tags something like the stained porcupine quills +round an Indian moccasin. There was a hole or slit in the middle of +this mat, as you see the same in South American ponchos. But could +it be possible that any sober harpooneer would get into a door mat, +and parade the streets of any Christian town in that sort of guise? +I put it on, to try it, and it weighed me down like a hamper, being +uncommonly shaggy and thick, and I thought a little damp, as though +this mysterious harpooneer had been wearing it of a rainy day. I +went up in it to a bit of glass stuck against the wall, and I never +saw such a sight in my life. I tore myself out of it in such a hurry +that I gave myself a kink in the neck. + +I sat down on the side of the bed, and commenced thinking about this +head-peddling harpooneer, and his door mat. After thinking some time +on the bed-side, I got up and took off my monkey jacket, and then +stood in the middle of the room thinking. I then took off my coat, +and thought a little more in my shirt sleeves. But beginning to feel +very cold now, half undressed as I was, and remembering what the +landlord said about the harpooneer's not coming home at all that +night, it being so very late, I made no more ado, but jumped out of +my pantaloons and boots, and then blowing out the light tumbled into +bed, and commended myself to the care of heaven. + +Whether that mattress was stuffed with corn-cobs or broken crockery, +there is no telling, but I rolled about a good deal, and could not +sleep for a long time. At last I slid off into a light doze, and had +pretty nearly made a good offing towards the land of Nod, when I +heard a heavy footfall in the passage, and saw a glimmer of light +come into the room from under the door. + +Lord save me, thinks I, that must be the harpooneer, the infernal +head-peddler. But I lay perfectly still, and resolved not to say a +word till spoken to. Holding a light in one hand, and that identical +New Zealand head in the other, the stranger entered the room, and +without looking towards the bed, placed his candle a good way off +from me on the floor in one corner, and then began working away at +the knotted cords of the large bag I before spoke of as being in the +room. I was all eagerness to see his face, but he kept it averted +for some time while employed in unlacing the bag's mouth. This +accomplished, however, he turned round--when, good heavens! what a +sight! Such a face! It was of a dark, purplish, yellow colour, here +and there stuck over with large blackish looking squares. Yes, it's +just as I thought, he's a terrible bedfellow; he's been in a fight, +got dreadfully cut, and here he is, just from the surgeon. But at +that moment he chanced to turn his face so towards the light, that I +plainly saw they could not be sticking-plasters at all, those black +squares on his cheeks. They were stains of some sort or other. At +first I knew not what to make of this; but soon an inkling of the +truth occurred to me. I remembered a story of a white man--a +whaleman too--who, falling among the cannibals, had been tattooed by +them. I concluded that this harpooneer, in the course of his distant +voyages, must have met with a similar adventure. And what is it, +thought I, after all! It's only his outside; a man can be honest in +any sort of skin. But then, what to make of his unearthly +complexion, that part of it, I mean, lying round about, and +completely independent of the squares of tattooing. To be sure, it +might be nothing but a good coat of tropical tanning; but I never +heard of a hot sun's tanning a white man into a purplish yellow one. +However, I had never been in the South Seas; and perhaps the sun +there produced these extraordinary effects upon the skin. Now, while +all these ideas were passing through me like lightning, this +harpooneer never noticed me at all. But, after some difficulty +having opened his bag, he commenced fumbling in it, and presently +pulled out a sort of tomahawk, and a seal-skin wallet with the hair +on. Placing these on the old chest in the middle of the room, he +then took the New Zealand head--a ghastly thing enough--and crammed +it down into the bag. He now took off his hat--a new beaver +hat--when I came nigh singing out with fresh surprise. There was no +hair on his head--none to speak of at least--nothing but a small +scalp-knot twisted up on his forehead. His bald purplish head now +looked for all the world like a mildewed skull. Had not the stranger +stood between me and the door, I would have bolted out of it quicker +than ever I bolted a dinner. + +Even as it was, I thought something of slipping out of the window, +but it was the second floor back. I am no coward, but what to make +of this head-peddling purple rascal altogether passed my +comprehension. Ignorance is the parent of fear, and being completely +nonplussed and confounded about the stranger, I confess I was now as +much afraid of him as if it was the devil himself who had thus broken +into my room at the dead of night. In fact, I was so afraid of him +that I was not game enough just then to address him, and demand a +satisfactory answer concerning what seemed inexplicable in him. + +Meanwhile, he continued the business of undressing, and at last +showed his chest and arms. As I live, these covered parts of him +were checkered with the same squares as his face; his back, too, was +all over the same dark squares; he seemed to have been in a Thirty +Years' War, and just escaped from it with a sticking-plaster shirt. +Still more, his very legs were marked, as if a parcel of dark green +frogs were running up the trunks of young palms. It was now quite +plain that he must be some abominable savage or other shipped aboard +of a whaleman in the South Seas, and so landed in this Christian +country. I quaked to think of it. A peddler of heads too--perhaps +the heads of his own brothers. He might take a fancy to +mine--heavens! look at that tomahawk! + +But there was no time for shuddering, for now the savage went about +something that completely fascinated my attention, and convinced me +that he must indeed be a heathen. Going to his heavy grego, or +wrapall, or dreadnaught, which he had previously hung on a chair, he +fumbled in the pockets, and produced at length a curious little +deformed image with a hunch on its back, and exactly the colour of a +three days' old Congo baby. Remembering the embalmed head, at first +I almost thought that this black manikin was a real baby preserved +in some similar manner. But seeing that it was not at all limber, +and that it glistened a good deal like polished ebony, I concluded +that it must be nothing but a wooden idol, which indeed it proved to +be. For now the savage goes up to the empty fire-place, and removing +the papered fire-board, sets up this little hunch-backed image, like +a tenpin, between the andirons. The chimney jambs and all the bricks +inside were very sooty, so that I thought this fire-place made a very +appropriate little shrine or chapel for his Congo idol. + +I now screwed my eyes hard towards the half hidden image, feeling but +ill at ease meantime--to see what was next to follow. First he takes +about a double handful of shavings out of his grego pocket, and +places them carefully before the idol; then laying a bit of ship +biscuit on top and applying the flame from the lamp, he kindled the +shavings into a sacrificial blaze. Presently, after many hasty +snatches into the fire, and still hastier withdrawals of his fingers +(whereby he seemed to be scorching them badly), he at last succeeded +in drawing out the biscuit; then blowing off the heat and ashes a +little, he made a polite offer of it to the little negro. But the +little devil did not seem to fancy such dry sort of fare at all; he +never moved his lips. All these strange antics were accompanied by +still stranger guttural noises from the devotee, who seemed to be +praying in a sing-song or else singing some pagan psalmody or other, +during which his face twitched about in the most unnatural manner. +At last extinguishing the fire, he took the idol up very +unceremoniously, and bagged it again in his grego pocket as +carelessly as if he were a sportsman bagging a dead woodcock. + +All these queer proceedings increased my uncomfortableness, and +seeing him now exhibiting strong symptoms of concluding his business +operations, and jumping into bed with me, I thought it was high time, +now or never, before the light was put out, to break the spell in +which I had so long been bound. + +But the interval I spent in deliberating what to say, was a fatal +one. Taking up his tomahawk from the table, he examined the head of +it for an instant, and then holding it to the light, with his mouth +at the handle, he puffed out great clouds of tobacco smoke. The next +moment the light was extinguished, and this wild cannibal, tomahawk +between his teeth, sprang into bed with me. I sang out, I could not +help it now; and giving a sudden grunt of astonishment he began +feeling me. + +Stammering out something, I knew not what, I rolled away from him +against the wall, and then conjured him, whoever or whatever he might +be, to keep quiet, and let me get up and light the lamp again. But +his guttural responses satisfied me at once that he but ill +comprehended my meaning. + +"Who-e debel you?"--he at last said--"you no speak-e, dam-me, I +kill-e." And so saying the lighted tomahawk began flourishing about +me in the dark. + +"Landlord, for God's sake, Peter Coffin!" shouted I. "Landlord! +Watch! Coffin! Angels! save me!" + +"Speak-e! tell-ee me who-ee be, or dam-me, I kill-e!" again growled +the cannibal, while his horrid flourishings of the tomahawk scattered +the hot tobacco ashes about me till I thought my linen would get on +fire. But thank heaven, at that moment the landlord came into the +room light in hand, and leaping from the bed I ran up to him. + +"Don't be afraid now," said he, grinning again, "Queequeg here +wouldn't harm a hair of your head." + +"Stop your grinning," shouted I, "and why didn't you tell me that +that infernal harpooneer was a cannibal?" + +"I thought ye know'd it;--didn't I tell ye, he was a peddlin' heads +around town?--but turn flukes again and go to sleep. Queequeg, look +here--you sabbee me, I sabbee--you this man sleepe you--you sabbee?" + +"Me sabbee plenty"--grunted Queequeg, puffing away at his pipe and +sitting up in bed. + +"You gettee in," he added, motioning to me with his tomahawk, and +throwing the clothes to one side. He really did this in not only a +civil but a really kind and charitable way. I stood looking at him a +moment. For all his tattooings he was on the whole a clean, comely +looking cannibal. What's all this fuss I have been making about, +thought I to myself--the man's a human being just as I am: he has +just as much reason to fear me, as I have to be afraid of him. +Better sleep with a sober cannibal than a drunken Christian. + +"Landlord," said I, "tell him to stash his tomahawk there, or pipe, +or whatever you call it; tell him to stop smoking, in short, and I +will turn in with him. But I don't fancy having a man smoking in bed +with me. It's dangerous. Besides, I ain't insured." + +This being told to Queequeg, he at once complied, and again politely +motioned me to get into bed--rolling over to one side as much as to +say--I won't touch a leg of ye." + +"Good night, landlord," said I, "you may go." + +I turned in, and never slept better in my life. + + + +CHAPTER 4 + +The Counterpane. + + +Upon waking next morning about daylight, I found Queequeg's arm +thrown over me in the most loving and affectionate manner. You had +almost thought I had been his wife. The counterpane was of +patchwork, full of odd little parti-coloured squares and triangles; +and this arm of his tattooed all over with an interminable Cretan +labyrinth of a figure, no two parts of which were of one precise +shade--owing I suppose to his keeping his arm at sea unmethodically +in sun and shade, his shirt sleeves irregularly rolled up at various +times--this same arm of his, I say, looked for all the world like a +strip of that same patchwork quilt. Indeed, partly lying on it as +the arm did when I first awoke, I could hardly tell it from the +quilt, they so blended their hues together; and it was only by the +sense of weight and pressure that I could tell that Queequeg was +hugging me. + +My sensations were strange. Let me try to explain them. When I was +a child, I well remember a somewhat similar circumstance that befell +me; whether it was a reality or a dream, I never could entirely +settle. The circumstance was this. I had been cutting up some caper +or other--I think it was trying to crawl up the chimney, as I had +seen a little sweep do a few days previous; and my stepmother who, +somehow or other, was all the time whipping me, or sending me to bed +supperless,--my mother dragged me by the legs out of the chimney and +packed me off to bed, though it was only two o'clock in the afternoon +of the 21st June, the longest day in the year in our hemisphere. I +felt dreadfully. But there was no help for it, so up stairs I went +to my little room in the third floor, undressed myself as slowly as +possible so as to kill time, and with a bitter sigh got between the +sheets. + +I lay there dismally calculating that sixteen entire hours must +elapse before I could hope for a resurrection. Sixteen hours in bed! +the small of my back ached to think of it. And it was so light too; +the sun shining in at the window, and a great rattling of coaches in +the streets, and the sound of gay voices all over the house. I felt +worse and worse--at last I got up, dressed, and softly going down in +my stockinged feet, sought out my stepmother, and suddenly threw +myself at her feet, beseeching her as a particular favour to give me a +good slippering for my misbehaviour; anything indeed but condemning +me to lie abed such an unendurable length of time. But she was the +best and most conscientious of stepmothers, and back I had to go to +my room. For several hours I lay there broad awake, feeling a great +deal worse than I have ever done since, even from the greatest +subsequent misfortunes. At last I must have fallen into a troubled +nightmare of a doze; and slowly waking from it--half steeped in +dreams--I opened my eyes, and the before sun-lit room was now wrapped +in outer darkness. Instantly I felt a shock running through all my +frame; nothing was to be seen, and nothing was to be heard; but a +supernatural hand seemed placed in mine. My arm hung over the +counterpane, and the nameless, unimaginable, silent form or phantom, +to which the hand belonged, seemed closely seated by my bed-side. +For what seemed ages piled on ages, I lay there, frozen with the most +awful fears, not daring to drag away my hand; yet ever thinking that +if I could but stir it one single inch, the horrid spell would be +broken. I knew not how this consciousness at last glided away from +me; but waking in the morning, I shudderingly remembered it all, and +for days and weeks and months afterwards I lost myself in confounding +attempts to explain the mystery. Nay, to this very hour, I often +puzzle myself with it. + +Now, take away the awful fear, and my sensations at feeling the +supernatural hand in mine were very similar, in their strangeness, +to those which I experienced on waking up and seeing Queequeg's pagan +arm thrown round me. But at length all the past night's events +soberly recurred, one by one, in fixed reality, and then I lay only +alive to the comical predicament. For though I tried to move his +arm--unlock his bridegroom clasp--yet, sleeping as he was, he still +hugged me tightly, as though naught but death should part us twain. +I now strove to rouse him--"Queequeg!"--but his only answer was a +snore. I then rolled over, my neck feeling as if it were in a +horse-collar; and suddenly felt a slight scratch. Throwing aside the +counterpane, there lay the tomahawk sleeping by the savage's side, as +if it were a hatchet-faced baby. A pretty pickle, truly, thought I; +abed here in a strange house in the broad day, with a cannibal and a +tomahawk! "Queequeg!--in the name of goodness, Queequeg, wake!" At +length, by dint of much wriggling, and loud and incessant +expostulations upon the unbecomingness of his hugging a fellow male +in that matrimonial sort of style, I succeeded in extracting a grunt; +and presently, he drew back his arm, shook himself all over like a +Newfoundland dog just from the water, and sat up in bed, stiff as a +pike-staff, looking at me, and rubbing his eyes as if he did not +altogether remember how I came to be there, though a dim +consciousness of knowing something about me seemed slowly dawning +over him. Meanwhile, I lay quietly eyeing him, having no serious +misgivings now, and bent upon narrowly observing so curious a +creature. When, at last, his mind seemed made up touching the +character of his bedfellow, and he became, as it were, reconciled to +the fact; he jumped out upon the floor, and by certain signs and +sounds gave me to understand that, if it pleased me, he would dress +first and then leave me to dress afterwards, leaving the whole +apartment to myself. Thinks I, Queequeg, under the circumstances, +this is a very civilized overture; but, the truth is, these savages +have an innate sense of delicacy, say what you will; it is marvellous +how essentially polite they are. I pay this particular compliment to +Queequeg, because he treated me with so much civility and +consideration, while I was guilty of great rudeness; staring at him +from the bed, and watching all his toilette motions; for the time my +curiosity getting the better of my breeding. Nevertheless, a man +like Queequeg you don't see every day, he and his ways were well +worth unusual regarding. + +He commenced dressing at top by donning his beaver hat, a very tall +one, by the by, and then--still minus his trowsers--he hunted up his +boots. What under the heavens he did it for, I cannot tell, but his +next movement was to crush himself--boots in hand, and hat on--under +the bed; when, from sundry violent gaspings and strainings, I +inferred he was hard at work booting himself; though by no law of +propriety that I ever heard of, is any man required to be private +when putting on his boots. But Queequeg, do you see, was a creature +in the transition stage--neither caterpillar nor butterfly. He was +just enough civilized to show off his outlandishness in the strangest +possible manners. His education was not yet completed. He was an +undergraduate. If he had not been a small degree civilized, he very +probably would not have troubled himself with boots at all; but then, +if he had not been still a savage, he never would have dreamt of +getting under the bed to put them on. At last, he emerged with his +hat very much dented and crushed down over his eyes, and began +creaking and limping about the room, as if, not being much accustomed +to boots, his pair of damp, wrinkled cowhide ones--probably not made +to order either--rather pinched and tormented him at the first go off +of a bitter cold morning. + +Seeing, now, that there were no curtains to the window, and that the +street being very narrow, the house opposite commanded a plain view +into the room, and observing more and more the indecorous figure that +Queequeg made, staving about with little else but his hat and boots +on; I begged him as well as I could, to accelerate his toilet +somewhat, and particularly to get into his pantaloons as soon as +possible. He complied, and then proceeded to wash himself. At that +time in the morning any Christian would have washed his face; but +Queequeg, to my amazement, contented himself with restricting his +ablutions to his chest, arms, and hands. He then donned his +waistcoat, and taking up a piece of hard soap on the wash-stand +centre table, dipped it into water and commenced lathering his face. +I was watching to see where he kept his razor, when lo and behold, he +takes the harpoon from the bed corner, slips out the long wooden +stock, unsheathes the head, whets it a little on his boot, and +striding up to the bit of mirror against the wall, begins a vigorous +scraping, or rather harpooning of his cheeks. Thinks I, Queequeg, +this is using Rogers's best cutlery with a vengeance. Afterwards I +wondered the less at this operation when I came to know of what fine +steel the head of a harpoon is made, and how exceedingly sharp the +long straight edges are always kept. + +The rest of his toilet was soon achieved, and he proudly marched out +of the room, wrapped up in his great pilot monkey jacket, and +sporting his harpoon like a marshal's baton. + + + +CHAPTER 5 + +Breakfast. + + +I quickly followed suit, and descending into the bar-room accosted +the grinning landlord very pleasantly. I cherished no malice towards +him, though he had been skylarking with me not a little in the matter +of my bedfellow. + +However, a good laugh is a mighty good thing, and rather too scarce a +good thing; the more's the pity. So, if any one man, in his own +proper person, afford stuff for a good joke to anybody, let him not +be backward, but let him cheerfully allow himself to spend and be +spent in that way. And the man that has anything bountifully +laughable about him, be sure there is more in that man than you +perhaps think for. + +The bar-room was now full of the boarders who had been dropping in +the night previous, and whom I had not as yet had a good look at. +They were nearly all whalemen; chief mates, and second mates, and +third mates, and sea carpenters, and sea coopers, and sea +blacksmiths, and harpooneers, and ship keepers; a brown and brawny +company, with bosky beards; an unshorn, shaggy set, all wearing +monkey jackets for morning gowns. + +You could pretty plainly tell how long each one had been ashore. +This young fellow's healthy cheek is like a sun-toasted pear in hue, +and would seem to smell almost as musky; he cannot have been three +days landed from his Indian voyage. That man next him looks a few +shades lighter; you might say a touch of satin wood is in him. In +the complexion of a third still lingers a tropic tawn, but slightly +bleached withal; HE doubtless has tarried whole weeks ashore. But +who could show a cheek like Queequeg? which, barred with various +tints, seemed like the Andes' western slope, to show forth in one +array, contrasting climates, zone by zone. + +"Grub, ho!" now cried the landlord, flinging open a door, and in we +went to breakfast. + +They say that men who have seen the world, thereby become quite at +ease in manner, quite self-possessed in company. Not always, though: +Ledyard, the great New England traveller, and Mungo Park, the Scotch +one; of all men, they possessed the least assurance in the parlor. +But perhaps the mere crossing of Siberia in a sledge drawn by dogs as +Ledyard did, or the taking a long solitary walk on an empty stomach, +in the negro heart of Africa, which was the sum of poor Mungo's +performances--this kind of travel, I say, may not be the very best +mode of attaining a high social polish. Still, for the most part, +that sort of thing is to be had anywhere. + +These reflections just here are occasioned by the circumstance that +after we were all seated at the table, and I was preparing to hear +some good stories about whaling; to my no small surprise, nearly +every man maintained a profound silence. And not only that, but they +looked embarrassed. Yes, here were a set of sea-dogs, many of whom +without the slightest bashfulness had boarded great whales on the +high seas--entire strangers to them--and duelled them dead without +winking; and yet, here they sat at a social breakfast table--all of +the same calling, all of kindred tastes--looking round as sheepishly +at each other as though they had never been out of sight of some +sheepfold among the Green Mountains. A curious sight; these bashful +bears, these timid warrior whalemen! + +But as for Queequeg--why, Queequeg sat there among them--at the head +of the table, too, it so chanced; as cool as an icicle. To be sure I +cannot say much for his breeding. His greatest admirer could not +have cordially justified his bringing his harpoon into breakfast with +him, and using it there without ceremony; reaching over the table +with it, to the imminent jeopardy of many heads, and grappling the +beefsteaks towards him. But THAT was certainly very coolly done by +him, and every one knows that in most people's estimation, to do +anything coolly is to do it genteelly. + +We will not speak of all Queequeg's peculiarities here; how he +eschewed coffee and hot rolls, and applied his undivided attention to +beefsteaks, done rare. Enough, that when breakfast was over he +withdrew like the rest into the public room, lighted his +tomahawk-pipe, and was sitting there quietly digesting and smoking +with his inseparable hat on, when I sallied out for a stroll. + + + +CHAPTER 6 + +The Street. + + +If I had been astonished at first catching a glimpse of so outlandish +an individual as Queequeg circulating among the polite society of a +civilized town, that astonishment soon departed upon taking my first +daylight stroll through the streets of New Bedford. + +In thoroughfares nigh the docks, any considerable seaport will +frequently offer to view the queerest looking nondescripts from +foreign parts. Even in Broadway and Chestnut streets, Mediterranean +mariners will sometimes jostle the affrighted ladies. Regent Street +is not unknown to Lascars and Malays; and at Bombay, in the Apollo +Green, live Yankees have often scared the natives. But New Bedford +beats all Water Street and Wapping. In these last-mentioned haunts +you see only sailors; but in New Bedford, actual cannibals stand +chatting at street corners; savages outright; many of whom yet carry +on their bones unholy flesh. It makes a stranger stare. + +But, besides the Feegeeans, Tongatobooarrs, Erromanggoans, +Pannangians, and Brighggians, and, besides the wild specimens of the +whaling-craft which unheeded reel about the streets, you will see +other sights still more curious, certainly more comical. There +weekly arrive in this town scores of green Vermonters and New +Hampshire men, all athirst for gain and glory in the fishery. They +are mostly young, of stalwart frames; fellows who have felled +forests, and now seek to drop the axe and snatch the whale-lance. +Many are as green as the Green Mountains whence they came. In some +things you would think them but a few hours old. Look there! that +chap strutting round the corner. He wears a beaver hat and +swallow-tailed coat, girdled with a sailor-belt and sheath-knife. +Here comes another with a sou'-wester and a bombazine cloak. + +No town-bred dandy will compare with a country-bred one--I mean a +downright bumpkin dandy--a fellow that, in the dog-days, will mow his +two acres in buckskin gloves for fear of tanning his hands. Now when +a country dandy like this takes it into his head to make a +distinguished reputation, and joins the great whale-fishery, you +should see the comical things he does upon reaching the seaport. In +bespeaking his sea-outfit, he orders bell-buttons to his waistcoats; +straps to his canvas trowsers. Ah, poor Hay-Seed! how bitterly will +burst those straps in the first howling gale, when thou art driven, +straps, buttons, and all, down the throat of the tempest. + +But think not that this famous town has only harpooneers, cannibals, +and bumpkins to show her visitors. Not at all. Still New Bedford is +a queer place. Had it not been for us whalemen, that tract of land +would this day perhaps have been in as howling condition as the coast +of Labrador. As it is, parts of her back country are enough to +frighten one, they look so bony. The town itself is perhaps the +dearest place to live in, in all New England. It is a land of oil, +true enough: but not like Canaan; a land, also, of corn and wine. +The streets do not run with milk; nor in the spring-time do they pave +them with fresh eggs. Yet, in spite of this, nowhere in all America +will you find more patrician-like houses; parks and gardens more +opulent, than in New Bedford. Whence came they? how planted upon +this once scraggy scoria of a country? + +Go and gaze upon the iron emblematical harpoons round yonder lofty +mansion, and your question will be answered. Yes; all these brave +houses and flowery gardens came from the Atlantic, Pacific, and +Indian oceans. One and all, they were harpooned and dragged up +hither from the bottom of the sea. Can Herr Alexander perform a feat +like that? + +In New Bedford, fathers, they say, give whales for dowers to their +daughters, and portion off their nieces with a few porpoises a-piece. +You must go to New Bedford to see a brilliant wedding; for, they +say, they have reservoirs of oil in every house, and every night +recklessly burn their lengths in spermaceti candles. + +In summer time, the town is sweet to see; full of fine maples--long +avenues of green and gold. And in August, high in air, the beautiful +and bountiful horse-chestnuts, candelabra-wise, proffer the passer-by +their tapering upright cones of congregated blossoms. So omnipotent +is art; which in many a district of New Bedford has superinduced +bright terraces of flowers upon the barren refuse rocks thrown aside +at creation's final day. + +And the women of New Bedford, they bloom like their own red roses. +But roses only bloom in summer; whereas the fine carnation of their +cheeks is perennial as sunlight in the seventh heavens. Elsewhere +match that bloom of theirs, ye cannot, save in Salem, where they tell +me the young girls breathe such musk, their sailor sweethearts smell +them miles off shore, as though they were drawing nigh the odorous +Moluccas instead of the Puritanic sands. + + + +CHAPTER 7 + +The Chapel. + + +In this same New Bedford there stands a Whaleman's Chapel, and few +are the moody fishermen, shortly bound for the Indian Ocean or +Pacific, who fail to make a Sunday visit to the spot. I am sure that +I did not. + +Returning from my first morning stroll, I again sallied out upon this +special errand. The sky had changed from clear, sunny cold, to +driving sleet and mist. Wrapping myself in my shaggy jacket of the +cloth called bearskin, I fought my way against the stubborn storm. +Entering, I found a small scattered congregation of sailors, and +sailors' wives and widows. A muffled silence reigned, only broken at +times by the shrieks of the storm. Each silent worshipper seemed +purposely sitting apart from the other, as if each silent grief were +insular and incommunicable. The chaplain had not yet arrived; and +there these silent islands of men and women sat steadfastly eyeing +several marble tablets, with black borders, masoned into the wall on +either side the pulpit. Three of them ran something like the +following, but I do not pretend to quote:-- + +SACRED +TO THE MEMORY +OF +JOHN TALBOT, +Who, at the age of eighteen, was lost overboard, +Near the Isle of Desolation, off Patagonia, +November 1st, 1836. +THIS TABLET +Is erected to his Memory +BY HIS +SISTER. +_____________ + +SACRED +TO THE MEMORY +OF +ROBERT LONG, WILLIS ELLERY, +NATHAN COLEMAN, WALTER CANNY, SETH MACY, +AND SAMUEL GLEIG, +Forming one of the boats' crews +OF +THE SHIP ELIZA +Who were towed out of sight by a Whale, +On the Off-shore Ground in the +PACIFIC, +December 31st, 1839. +THIS MARBLE +Is here placed by their surviving +SHIPMATES. +_____________ + +SACRED +TO THE MEMORY +OF +The late +CAPTAIN EZEKIEL HARDY, +Who in the bows of his boat was killed by a +Sperm Whale on the coast of Japan, +AUGUST 3d, 1833. +THIS TABLET +Is erected to his Memory +BY +HIS WIDOW. + +Shaking off the sleet from my ice-glazed hat and jacket, I seated +myself near the door, and turning sideways was surprised to see +Queequeg near me. Affected by the solemnity of the scene, there was +a wondering gaze of incredulous curiosity in his countenance. This +savage was the only person present who seemed to notice my entrance; +because he was the only one who could not read, and, therefore, was +not reading those frigid inscriptions on the wall. Whether any of +the relatives of the seamen whose names appeared there were now among +the congregation, I knew not; but so many are the unrecorded +accidents in the fishery, and so plainly did several women present +wear the countenance if not the trappings of some unceasing grief, +that I feel sure that here before me were assembled those, in whose +unhealing hearts the sight of those bleak tablets sympathetically +caused the old wounds to bleed afresh. + +Oh! ye whose dead lie buried beneath the green grass; who standing +among flowers can say--here, HERE lies my beloved; ye know not the +desolation that broods in bosoms like these. What bitter blanks in +those black-bordered marbles which cover no ashes! What despair in +those immovable inscriptions! What deadly voids and unbidden +infidelities in the lines that seem to gnaw upon all Faith, and +refuse resurrections to the beings who have placelessly perished +without a grave. As well might those tablets stand in the cave of +Elephanta as here. + +In what census of living creatures, the dead of mankind are included; +why it is that a universal proverb says of them, that they tell no +tales, though containing more secrets than the Goodwin Sands; how it +is that to his name who yesterday departed for the other world, we +prefix so significant and infidel a word, and yet do not thus entitle +him, if he but embarks for the remotest Indies of this living earth; +why the Life Insurance Companies pay death-forfeitures upon +immortals; in what eternal, unstirring paralysis, and deadly, +hopeless trance, yet lies antique Adam who died sixty round centuries +ago; how it is that we still refuse to be comforted for those who we +nevertheless maintain are dwelling in unspeakable bliss; why all the +living so strive to hush all the dead; wherefore but the rumor of a +knocking in a tomb will terrify a whole city. All these things are +not without their meanings. + +But Faith, like a jackal, feeds among the tombs, and even from these +dead doubts she gathers her most vital hope. + +It needs scarcely to be told, with what feelings, on the eve of a +Nantucket voyage, I regarded those marble tablets, and by the murky +light of that darkened, doleful day read the fate of the whalemen who +had gone before me. Yes, Ishmael, the same fate may be thine. But +somehow I grew merry again. Delightful inducements to embark, fine +chance for promotion, it seems--aye, a stove boat will make me an +immortal by brevet. Yes, there is death in this business of +whaling--a speechlessly quick chaotic bundling of a man into +Eternity. But what then? Methinks we have hugely mistaken this +matter of Life and Death. Methinks that what they call my shadow +here on earth is my true substance. Methinks that in looking at +things spiritual, we are too much like oysters observing the sun +through the water, and thinking that thick water the thinnest of air. +Methinks my body is but the lees of my better being. In fact take +my body who will, take it I say, it is not me. And therefore three +cheers for Nantucket; and come a stove boat and stove body when they +will, for stave my soul, Jove himself cannot. + + + +CHAPTER 8 + +The Pulpit. + + +I had not been seated very long ere a man of a certain venerable +robustness entered; immediately as the storm-pelted door flew back +upon admitting him, a quick regardful eyeing of him by all the +congregation, sufficiently attested that this fine old man was the +chaplain. Yes, it was the famous Father Mapple, so called by the +whalemen, among whom he was a very great favourite. He had been a +sailor and a harpooneer in his youth, but for many years past had +dedicated his life to the ministry. At the time I now write of, +Father Mapple was in the hardy winter of a healthy old age; that sort +of old age which seems merging into a second flowering youth, for +among all the fissures of his wrinkles, there shone certain mild +gleams of a newly developing bloom--the spring verdure peeping forth +even beneath February's snow. No one having previously heard his +history, could for the first time behold Father Mapple without the +utmost interest, because there were certain engrafted clerical +peculiarities about him, imputable to that adventurous maritime life +he had led. When he entered I observed that he carried no umbrella, +and certainly had not come in his carriage, for his tarpaulin hat ran +down with melting sleet, and his great pilot cloth jacket seemed +almost to drag him to the floor with the weight of the water it had +absorbed. However, hat and coat and overshoes were one by one +removed, and hung up in a little space in an adjacent corner; when, +arrayed in a decent suit, he quietly approached the pulpit. + +Like most old fashioned pulpits, it was a very lofty one, and since a +regular stairs to such a height would, by its long angle with the +floor, seriously contract the already small area of the chapel, the +architect, it seemed, had acted upon the hint of Father Mapple, and +finished the pulpit without a stairs, substituting a perpendicular +side ladder, like those used in mounting a ship from a boat at sea. +The wife of a whaling captain had provided the chapel with a handsome +pair of red worsted man-ropes for this ladder, which, being itself +nicely headed, and stained with a mahogany colour, the whole +contrivance, considering what manner of chapel it was, seemed by no +means in bad taste. Halting for an instant at the foot of the +ladder, and with both hands grasping the ornamental knobs of the +man-ropes, Father Mapple cast a look upwards, and then with a truly +sailor-like but still reverential dexterity, hand over hand, mounted +the steps as if ascending the main-top of his vessel. + +The perpendicular parts of this side ladder, as is usually the case +with swinging ones, were of cloth-covered rope, only the rounds were +of wood, so that at every step there was a joint. At my first +glimpse of the pulpit, it had not escaped me that however convenient +for a ship, these joints in the present instance seemed unnecessary. +For I was not prepared to see Father Mapple after gaining the height, +slowly turn round, and stooping over the pulpit, deliberately drag up +the ladder step by step, till the whole was deposited within, leaving +him impregnable in his little Quebec. + +I pondered some time without fully comprehending the reason for this. +Father Mapple enjoyed such a wide reputation for sincerity and +sanctity, that I could not suspect him of courting notoriety by any +mere tricks of the stage. No, thought I, there must be some sober +reason for this thing; furthermore, it must symbolize something +unseen. Can it be, then, that by that act of physical isolation, he +signifies his spiritual withdrawal for the time, from all outward +worldly ties and connexions? Yes, for replenished with the meat and +wine of the word, to the faithful man of God, this pulpit, I see, is +a self-containing stronghold--a lofty Ehrenbreitstein, with a +perennial well of water within the walls. + +But the side ladder was not the only strange feature of the place, +borrowed from the chaplain's former sea-farings. Between the marble +cenotaphs on either hand of the pulpit, the wall which formed its +back was adorned with a large painting representing a gallant ship +beating against a terrible storm off a lee coast of black rocks and +snowy breakers. But high above the flying scud and dark-rolling +clouds, there floated a little isle of sunlight, from which beamed +forth an angel's face; and this bright face shed a distinct spot of +radiance upon the ship's tossed deck, something like that silver +plate now inserted into the Victory's plank where Nelson fell. "Ah, +noble ship," the angel seemed to say, "beat on, beat on, thou noble +ship, and bear a hardy helm; for lo! the sun is breaking through; the +clouds are rolling off--serenest azure is at hand." + +Nor was the pulpit itself without a trace of the same sea-taste that +had achieved the ladder and the picture. Its panelled front was in +the likeness of a ship's bluff bows, and the Holy Bible rested on a +projecting piece of scroll work, fashioned after a ship's +fiddle-headed beak. + +What could be more full of meaning?--for the pulpit is ever this +earth's foremost part; all the rest comes in its rear; the pulpit +leads the world. From thence it is the storm of God's quick wrath is +first descried, and the bow must bear the earliest brunt. From +thence it is the God of breezes fair or foul is first invoked for +favourable winds. Yes, the world's a ship on its passage out, and not +a voyage complete; and the pulpit is its prow. + + + +CHAPTER 9 + +The Sermon. + + +Father Mapple rose, and in a mild voice of unassuming authority +ordered the scattered people to condense. "Starboard gangway, +there! side away to larboard--larboard gangway to starboard! +Midships! midships!" + +There was a low rumbling of heavy sea-boots among the benches, and a +still slighter shuffling of women's shoes, and all was quiet again, +and every eye on the preacher. + +He paused a little; then kneeling in the pulpit's bows, folded his +large brown hands across his chest, uplifted his closed eyes, and +offered a prayer so deeply devout that he seemed kneeling and praying +at the bottom of the sea. + +This ended, in prolonged solemn tones, like the continual tolling of +a bell in a ship that is foundering at sea in a fog--in such tones he +commenced reading the following hymn; but changing his manner towards +the concluding stanzas, burst forth with a pealing exultation and +joy-- + +"The ribs and terrors in the whale, +Arched over me a dismal gloom, +While all God's sun-lit waves rolled by, +And lift me deepening down to doom. + +"I saw the opening maw of hell, +With endless pains and sorrows there; +Which none but they that feel can tell-- +Oh, I was plunging to despair. + +"In black distress, I called my God, +When I could scarce believe him mine, +He bowed his ear to my complaints-- +No more the whale did me confine. + +"With speed he flew to my relief, +As on a radiant dolphin borne; +Awful, yet bright, as lightning shone +The face of my Deliverer God. + +"My song for ever shall record +That terrible, that joyful hour; +I give the glory to my God, +His all the mercy and the power. + + +Nearly all joined in singing this hymn, which swelled high above the +howling of the storm. A brief pause ensued; the preacher slowly +turned over the leaves of the Bible, and at last, folding his hand +down upon the proper page, said: "Beloved shipmates, clinch the last +verse of the first chapter of Jonah--'And God had prepared a great +fish to swallow up Jonah.'" + +"Shipmates, this book, containing only four chapters--four yarns--is +one of the smallest strands in the mighty cable of the Scriptures. +Yet what depths of the soul does Jonah's deep sealine sound! what a +pregnant lesson to us is this prophet! What a noble thing is that +canticle in the fish's belly! How billow-like and boisterously +grand! We feel the floods surging over us; we sound with him to the +kelpy bottom of the waters; sea-weed and all the slime of the sea is +about us! But WHAT is this lesson that the book of Jonah teaches? +Shipmates, it is a two-stranded lesson; a lesson to us all as sinful +men, and a lesson to me as a pilot of the living God. As sinful men, +it is a lesson to us all, because it is a story of the sin, +hard-heartedness, suddenly awakened fears, the swift punishment, +repentance, prayers, and finally the deliverance and joy of Jonah. +As with all sinners among men, the sin of this son of Amittai was in +his wilful disobedience of the command of God--never mind now what +that command was, or how conveyed--which he found a hard command. +But all the things that God would have us do are hard for us to +do--remember that--and hence, he oftener commands us than endeavors +to persuade. And if we obey God, we must disobey ourselves; and it +is in this disobeying ourselves, wherein the hardness of obeying God +consists. + +"With this sin of disobedience in him, Jonah still further flouts at +God, by seeking to flee from Him. He thinks that a ship made by men +will carry him into countries where God does not reign, but only the +Captains of this earth. He skulks about the wharves of Joppa, and +seeks a ship that's bound for Tarshish. There lurks, perhaps, a +hitherto unheeded meaning here. By all accounts Tarshish could have +been no other city than the modern Cadiz. That's the opinion of +learned men. And where is Cadiz, shipmates? Cadiz is in Spain; as +far by water, from Joppa, as Jonah could possibly have sailed in +those ancient days, when the Atlantic was an almost unknown sea. +Because Joppa, the modern Jaffa, shipmates, is on the most easterly +coast of the Mediterranean, the Syrian; and Tarshish or Cadiz more +than two thousand miles to the westward from that, just outside the +Straits of Gibraltar. See ye not then, shipmates, that Jonah sought +to flee world-wide from God? Miserable man! Oh! most contemptible +and worthy of all scorn; with slouched hat and guilty eye, skulking +from his God; prowling among the shipping like a vile burglar +hastening to cross the seas. So disordered, self-condemning is his +look, that had there been policemen in those days, Jonah, on the mere +suspicion of something wrong, had been arrested ere he touched a +deck. How plainly he's a fugitive! no baggage, not a hat-box, +valise, or carpet-bag,--no friends accompany him to the wharf with +their adieux. At last, after much dodging search, he finds the +Tarshish ship receiving the last items of her cargo; and as he steps +on board to see its Captain in the cabin, all the sailors for the +moment desist from hoisting in the goods, to mark the stranger's evil +eye. Jonah sees this; but in vain he tries to look all ease and +confidence; in vain essays his wretched smile. Strong intuitions of +the man assure the mariners he can be no innocent. In their gamesome +but still serious way, one whispers to the other--"Jack, he's robbed +a widow;" or, "Joe, do you mark him; he's a bigamist;" or, "Harry +lad, I guess he's the adulterer that broke jail in old Gomorrah, or +belike, one of the missing murderers from Sodom." Another runs to +read the bill that's stuck against the spile upon the wharf to which +the ship is moored, offering five hundred gold coins for the +apprehension of a parricide, and containing a description of his +person. He reads, and looks from Jonah to the bill; while all his +sympathetic shipmates now crowd round Jonah, prepared to lay their +hands upon him. Frighted Jonah trembles, and summoning all his +boldness to his face, only looks so much the more a coward. He will +not confess himself suspected; but that itself is strong suspicion. +So he makes the best of it; and when the sailors find him not to be +the man that is advertised, they let him pass, and he descends into +the cabin. + +"'Who's there?' cries the Captain at his busy desk, hurriedly making +out his papers for the Customs--'Who's there?' Oh! how that harmless +question mangles Jonah! For the instant he almost turns to flee +again. But he rallies. 'I seek a passage in this ship to Tarshish; +how soon sail ye, sir?' Thus far the busy Captain had not looked up +to Jonah, though the man now stands before him; but no sooner does he +hear that hollow voice, than he darts a scrutinizing glance. 'We +sail with the next coming tide,' at last he slowly answered, still +intently eyeing him. 'No sooner, sir?'--'Soon enough for any honest +man that goes a passenger.' Ha! Jonah, that's another stab. But he +swiftly calls away the Captain from that scent. 'I'll sail with +ye,'--he says,--'the passage money how much is that?--I'll pay now.' +For it is particularly written, shipmates, as if it were a thing not +to be overlooked in this history, 'that he paid the fare thereof' ere +the craft did sail. And taken with the context, this is full of +meaning. + +"Now Jonah's Captain, shipmates, was one whose discernment detects +crime in any, but whose cupidity exposes it only in the penniless. +In this world, shipmates, sin that pays its way can travel freely, +and without a passport; whereas Virtue, if a pauper, is stopped at +all frontiers. So Jonah's Captain prepares to test the length of +Jonah's purse, ere he judge him openly. He charges him thrice the +usual sum; and it's assented to. Then the Captain knows that Jonah +is a fugitive; but at the same time resolves to help a flight that +paves its rear with gold. Yet when Jonah fairly takes out his purse, +prudent suspicions still molest the Captain. He rings every coin to +find a counterfeit. Not a forger, any way, he mutters; and Jonah is +put down for his passage. 'Point out my state-room, Sir,' says Jonah +now, 'I'm travel-weary; I need sleep.' 'Thou lookest like it,' says +the Captain, 'there's thy room.' Jonah enters, and would lock the +door, but the lock contains no key. Hearing him foolishly fumbling +there, the Captain laughs lowly to himself, and mutters something +about the doors of convicts' cells being never allowed to be locked +within. All dressed and dusty as he is, Jonah throws himself into +his berth, and finds the little state-room ceiling almost resting on +his forehead. The air is close, and Jonah gasps. Then, in that +contracted hole, sunk, too, beneath the ship's water-line, Jonah +feels the heralding presentiment of that stifling hour, when the +whale shall hold him in the smallest of his bowels' wards. + +"Screwed at its axis against the side, a swinging lamp slightly +oscillates in Jonah's room; and the ship, heeling over towards the +wharf with the weight of the last bales received, the lamp, flame and +all, though in slight motion, still maintains a permanent obliquity +with reference to the room; though, in truth, infallibly straight +itself, it but made obvious the false, lying levels among which it +hung. The lamp alarms and frightens Jonah; as lying in his berth his +tormented eyes roll round the place, and this thus far successful +fugitive finds no refuge for his restless glance. But that +contradiction in the lamp more and more appals him. The floor, the +ceiling, and the side, are all awry. 'Oh! so my conscience hangs in +me!' he groans, 'straight upwards, so it burns; but the chambers of +my soul are all in crookedness!' + +"Like one who after a night of drunken revelry hies to his bed, still +reeling, but with conscience yet pricking him, as the plungings of +the Roman race-horse but so much the more strike his steel tags into +him; as one who in that miserable plight still turns and turns in +giddy anguish, praying God for annihilation until the fit be passed; +and at last amid the whirl of woe he feels, a deep stupor steals over +him, as over the man who bleeds to death, for conscience is the +wound, and there's naught to staunch it; so, after sore wrestlings in +his berth, Jonah's prodigy of ponderous misery drags him drowning +down to sleep. + +"And now the time of tide has come; the ship casts off her cables; +and from the deserted wharf the uncheered ship for Tarshish, all +careening, glides to sea. That ship, my friends, was the first of +recorded smugglers! the contraband was Jonah. But the sea rebels; he +will not bear the wicked burden. A dreadful storm comes on, the +ship is like to break. But now when the boatswain calls all hands to +lighten her; when boxes, bales, and jars are clattering overboard; +when the wind is shrieking, and the men are yelling, and every plank +thunders with trampling feet right over Jonah's head; in all this +raging tumult, Jonah sleeps his hideous sleep. He sees no black sky +and raging sea, feels not the reeling timbers, and little hears he or +heeds he the far rush of the mighty whale, which even now with open +mouth is cleaving the seas after him. Aye, shipmates, Jonah was gone +down into the sides of the ship--a berth in the cabin as I have taken +it, and was fast asleep. But the frightened master comes to him, and +shrieks in his dead ear, 'What meanest thou, O, sleeper! arise!' +Startled from his lethargy by that direful cry, Jonah staggers to his +feet, and stumbling to the deck, grasps a shroud, to look out upon +the sea. But at that moment he is sprung upon by a panther billow +leaping over the bulwarks. Wave after wave thus leaps into the ship, +and finding no speedy vent runs roaring fore and aft, till the +mariners come nigh to drowning while yet afloat. And ever, as the +white moon shows her affrighted face from the steep gullies in the +blackness overhead, aghast Jonah sees the rearing bowsprit pointing +high upward, but soon beat downward again towards the tormented deep. + +"Terrors upon terrors run shouting through his soul. In all his +cringing attitudes, the God-fugitive is now too plainly known. The +sailors mark him; more and more certain grow their suspicions of him, +and at last, fully to test the truth, by referring the whole matter +to high Heaven, they fall to casting lots, to see for whose +cause this great tempest was upon them. The lot is Jonah's; that +discovered, then how furiously they mob him with their questions. +'What is thine occupation? Whence comest thou? Thy country? What +people? But mark now, my shipmates, the behavior of poor Jonah. The +eager mariners but ask him who he is, and where from; whereas, they +not only receive an answer to those questions, but likewise another +answer to a question not put by them, but the unsolicited answer is +forced from Jonah by the hard hand of God that is upon him. + +"'I am a Hebrew,' he cries--and then--'I fear the Lord the God of +Heaven who hath made the sea and the dry land!' Fear him, O Jonah? +Aye, well mightest thou fear the Lord God THEN! Straightway, he now +goes on to make a full confession; whereupon the mariners became more +and more appalled, but still are pitiful. For when Jonah, not yet +supplicating God for mercy, since he but too well knew the darkness +of his deserts,--when wretched Jonah cries out to them to take him +and cast him forth into the sea, for he knew that for HIS sake this +great tempest was upon them; they mercifully turn from him, and seek +by other means to save the ship. But all in vain; the indignant gale +howls louder; then, with one hand raised invokingly to God, with the +other they not unreluctantly lay hold of Jonah. + +"And now behold Jonah taken up as an anchor and dropped into the sea; +when instantly an oily calmness floats out from the east, and the sea +is still, as Jonah carries down the gale with him, leaving smooth +water behind. He goes down in the whirling heart of such a +masterless commotion that he scarce heeds the moment when he drops +seething into the yawning jaws awaiting him; and the whale shoots-to +all his ivory teeth, like so many white bolts, upon his prison. Then +Jonah prayed unto the Lord out of the fish's belly. But observe his +prayer, and learn a weighty lesson. For sinful as he is, Jonah does +not weep and wail for direct deliverance. He feels that his dreadful +punishment is just. He leaves all his deliverance to God, contenting +himself with this, that spite of all his pains and pangs, he will +still look towards His holy temple. And here, shipmates, is true and +faithful repentance; not clamorous for pardon, but grateful for +punishment. And how pleasing to God was this conduct in Jonah, is +shown in the eventual deliverance of him from the sea and the whale. +Shipmates, I do not place Jonah before you to be copied for his sin +but I do place him before you as a model for repentance. Sin not; +but if you do, take heed to repent of it like Jonah." + +While he was speaking these words, the howling of the shrieking, +slanting storm without seemed to add new power to the preacher, who, +when describing Jonah's sea-storm, seemed tossed by a storm himself. +His deep chest heaved as with a ground-swell; his tossed arms seemed +the warring elements at work; and the thunders that rolled away from +off his swarthy brow, and the light leaping from his eye, made all +his simple hearers look on him with a quick fear that was strange to +them. + +There now came a lull in his look, as he silently turned over the +leaves of the Book once more; and, at last, standing motionless, with +closed eyes, for the moment, seemed communing with God and himself. + +But again he leaned over towards the people, and bowing his head +lowly, with an aspect of the deepest yet manliest humility, he spake +these words: + +"Shipmates, God has laid but one hand upon you; both his hands press +upon me. I have read ye by what murky light may be mine the lesson +that Jonah teaches to all sinners; and therefore to ye, and still +more to me, for I am a greater sinner than ye. And now how gladly +would I come down from this mast-head and sit on the hatches there +where you sit, and listen as you listen, while some one of you reads +ME that other and more awful lesson which Jonah teaches to ME, as a +pilot of the living God. How being an anointed pilot-prophet, or +speaker of true things, and bidden by the Lord to sound those +unwelcome truths in the ears of a wicked Nineveh, Jonah, appalled at +the hostility he should raise, fled from his mission, and sought to +escape his duty and his God by taking ship at Joppa. But God is +everywhere; Tarshish he never reached. As we have seen, God came +upon him in the whale, and swallowed him down to living gulfs of +doom, and with swift slantings tore him along 'into the midst of the +seas,' where the eddying depths sucked him ten thousand fathoms down, +and 'the weeds were wrapped about his head,' and all the watery world +of woe bowled over him. Yet even then beyond the reach of any +plummet--'out of the belly of hell'--when the whale grounded upon the +ocean's utmost bones, even then, God heard the engulphed, repenting +prophet when he cried. Then God spake unto the fish; and from the +shuddering cold and blackness of the sea, the whale came breeching up +towards the warm and pleasant sun, and all the delights of air and +earth; and 'vomited out Jonah upon the dry land;' when the word of +the Lord came a second time; and Jonah, bruised and beaten--his ears, +like two sea-shells, still multitudinously murmuring of the +ocean--Jonah did the Almighty's bidding. And what was that, +shipmates? To preach the Truth to the face of Falsehood! That was +it! + +"This, shipmates, this is that other lesson; and woe to that pilot of +the living God who slights it. Woe to him whom this world charms +from Gospel duty! Woe to him who seeks to pour oil upon the waters +when God has brewed them into a gale! Woe to him who seeks to please +rather than to appal! Woe to him whose good name is more to him than +goodness! Woe to him who, in this world, courts not dishonour! Woe +to him who would not be true, even though to be false were salvation! +Yea, woe to him who, as the great Pilot Paul has it, while preaching +to others is himself a castaway!" + +He dropped and fell away from himself for a moment; then lifting his +face to them again, showed a deep joy in his eyes, as he cried out +with a heavenly enthusiasm,--"But oh! shipmates! on the starboard +hand of every woe, there is a sure delight; and higher the top of +that delight, than the bottom of the woe is deep. Is not the +main-truck higher than the kelson is low? Delight is to him--a far, +far upward, and inward delight--who against the proud gods and +commodores of this earth, ever stands forth his own inexorable self. +Delight is to him whose strong arms yet support him, when the ship of +this base treacherous world has gone down beneath him. Delight is to +him, who gives no quarter in the truth, and kills, burns, and +destroys all sin though he pluck it out from under the robes of +Senators and Judges. Delight,--top-gallant delight is to him, who +acknowledges no law or lord, but the Lord his God, and is only a +patriot to heaven. Delight is to him, whom all the waves of the +billows of the seas of the boisterous mob can never shake from this +sure Keel of the Ages. And eternal delight and deliciousness will be +his, who coming to lay him down, can say with his final breath--O +Father!--chiefly known to me by Thy rod--mortal or immortal, here I +die. I have striven to be Thine, more than to be this world's, or +mine own. Yet this is nothing: I leave eternity to Thee; for what +is man that he should live out the lifetime of his God?" + +He said no more, but slowly waving a benediction, covered his face +with his hands, and so remained kneeling, till all the people had +departed, and he was left alone in the place. + + + +CHAPTER 10 + +A Bosom Friend. + + +Returning to the Spouter-Inn from the Chapel, I found Queequeg there +quite alone; he having left the Chapel before the benediction some +time. He was sitting on a bench before the fire, with his feet on +the stove hearth, and in one hand was holding close up to his face +that little negro idol of his; peering hard into its face, and with a +jack-knife gently whittling away at its nose, meanwhile humming to +himself in his heathenish way. + +But being now interrupted, he put up the image; and pretty soon, +going to the table, took up a large book there, and placing it on his +lap began counting the pages with deliberate regularity; at every +fiftieth page--as I fancied--stopping a moment, looking vacantly +around him, and giving utterance to a long-drawn gurgling whistle of +astonishment. He would then begin again at the next fifty; seeming +to commence at number one each time, as though he could not count +more than fifty, and it was only by such a large number of fifties +being found together, that his astonishment at the multitude of pages +was excited. + +With much interest I sat watching him. Savage though he was, and +hideously marred about the face--at least to my taste--his +countenance yet had a something in it which was by no means +disagreeable. You cannot hide the soul. Through all his unearthly +tattooings, I thought I saw the traces of a simple honest heart; and +in his large, deep eyes, fiery black and bold, there seemed tokens of +a spirit that would dare a thousand devils. And besides all this, +there was a certain lofty bearing about the Pagan, which even his +uncouthness could not altogether maim. He looked like a man who had +never cringed and never had had a creditor. Whether it was, too, +that his head being shaved, his forehead was drawn out in freer and +brighter relief, and looked more expansive than it otherwise would, +this I will not venture to decide; but certain it was his head was +phrenologically an excellent one. It may seem ridiculous, but it +reminded me of General Washington's head, as seen in the popular +busts of him. It had the same long regularly graded retreating slope +from above the brows, which were likewise very projecting, like two +long promontories thickly wooded on top. Queequeg was George +Washington cannibalistically developed. + +Whilst I was thus closely scanning him, half-pretending meanwhile to +be looking out at the storm from the casement, he never heeded my +presence, never troubled himself with so much as a single glance; but +appeared wholly occupied with counting the pages of the marvellous +book. Considering how sociably we had been sleeping together the +night previous, and especially considering the affectionate arm I had +found thrown over me upon waking in the morning, I thought this +indifference of his very strange. But savages are strange beings; at +times you do not know exactly how to take them. At first they are +overawing; their calm self-collectedness of simplicity seems a +Socratic wisdom. I had noticed also that Queequeg never consorted at +all, or but very little, with the other seamen in the inn. He made +no advances whatever; appeared to have no desire to enlarge the +circle of his acquaintances. All this struck me as mighty singular; +yet, upon second thoughts, there was something almost sublime in it. +Here was a man some twenty thousand miles from home, by the way of +Cape Horn, that is--which was the only way he could get there--thrown +among people as strange to him as though he were in the planet +Jupiter; and yet he seemed entirely at his ease; preserving the +utmost serenity; content with his own companionship; always equal to +himself. Surely this was a touch of fine philosophy; though no doubt +he had never heard there was such a thing as that. But, perhaps, to +be true philosophers, we mortals should not be conscious of so living +or so striving. So soon as I hear that such or such a man gives +himself out for a philosopher, I conclude that, like the dyspeptic +old woman, he must have "broken his digester." + +As I sat there in that now lonely room; the fire burning low, in that +mild stage when, after its first intensity has warmed the air, it +then only glows to be looked at; the evening shades and phantoms +gathering round the casements, and peering in upon us silent, +solitary twain; the storm booming without in solemn swells; I began +to be sensible of strange feelings. I felt a melting in me. No more +my splintered heart and maddened hand were turned against the wolfish +world. This soothing savage had redeemed it. There he sat, his very +indifference speaking a nature in which there lurked no civilized +hypocrisies and bland deceits. Wild he was; a very sight of sights +to see; yet I began to feel myself mysteriously drawn towards him. +And those same things that would have repelled most others, they were +the very magnets that thus drew me. I'll try a pagan friend, thought +I, since Christian kindness has proved but hollow courtesy. I drew +my bench near him, and made some friendly signs and hints, doing my +best to talk with him meanwhile. At first he little noticed these +advances; but presently, upon my referring to his last night's +hospitalities, he made out to ask me whether we were again to be +bedfellows. I told him yes; whereat I thought he looked pleased, +perhaps a little complimented. + +We then turned over the book together, and I endeavored to explain to +him the purpose of the printing, and the meaning of the few pictures +that were in it. Thus I soon engaged his interest; and from that we +went to jabbering the best we could about the various outer sights to +be seen in this famous town. Soon I proposed a social smoke; and, +producing his pouch and tomahawk, he quietly offered me a puff. And +then we sat exchanging puffs from that wild pipe of his, and keeping +it regularly passing between us. + +If there yet lurked any ice of indifference towards me in the Pagan's +breast, this pleasant, genial smoke we had, soon thawed it out, and +left us cronies. He seemed to take to me quite as naturally and +unbiddenly as I to him; and when our smoke was over, he pressed his +forehead against mine, clasped me round the waist, and said that +henceforth we were married; meaning, in his country's phrase, that we +were bosom friends; he would gladly die for me, if need should be. +In a countryman, this sudden flame of friendship would have seemed +far too premature, a thing to be much distrusted; but in this simple +savage those old rules would not apply. + +After supper, and another social chat and smoke, we went to our room +together. He made me a present of his embalmed head; took out his +enormous tobacco wallet, and groping under the tobacco, drew out some +thirty dollars in silver; then spreading them on the table, and +mechanically dividing them into two equal portions, pushed one of +them towards me, and said it was mine. I was going to remonstrate; +but he silenced me by pouring them into my trowsers' pockets. I let +them stay. He then went about his evening prayers, took out his +idol, and removed the paper fireboard. By certain signs and +symptoms, I thought he seemed anxious for me to join him; but well +knowing what was to follow, I deliberated a moment whether, in case +he invited me, I would comply or otherwise. + +I was a good Christian; born and bred in the bosom of the infallible +Presbyterian Church. How then could I unite with this wild idolator +in worshipping his piece of wood? But what is worship? thought I. +Do you suppose now, Ishmael, that the magnanimous God of heaven and +earth--pagans and all included--can possibly be jealous of an +insignificant bit of black wood? Impossible! But what is +worship?--to do the will of God--THAT is worship. And what is the +will of God?--to do to my fellow man what I would have my fellow man +to do to me--THAT is the will of God. Now, Queequeg is my fellow +man. And what do I wish that this Queequeg would do to me? Why, +unite with me in my particular Presbyterian form of worship. +Consequently, I must then unite with him in his; ergo, I must turn +idolator. So I kindled the shavings; helped prop up the innocent +little idol; offered him burnt biscuit with Queequeg; salamed before +him twice or thrice; kissed his nose; and that done, we undressed and +went to bed, at peace with our own consciences and all the world. +But we did not go to sleep without some little chat. + +How it is I know not; but there is no place like a bed for +confidential disclosures between friends. Man and wife, they say, +there open the very bottom of their souls to each other; and some old +couples often lie and chat over old times till nearly morning. Thus, +then, in our hearts' honeymoon, lay I and Queequeg--a cosy, loving +pair. + + + +CHAPTER 11 + +Nightgown. + + +We had lain thus in bed, chatting and napping at short intervals, and +Queequeg now and then affectionately throwing his brown tattooed legs +over mine, and then drawing them back; so entirely sociable and free +and easy were we; when, at last, by reason of our confabulations, +what little nappishness remained in us altogether departed, and we +felt like getting up again, though day-break was yet some way down +the future. + +Yes, we became very wakeful; so much so that our recumbent position +began to grow wearisome, and by little and little we found ourselves +sitting up; the clothes well tucked around us, leaning against the +head-board with our four knees drawn up close together, and our two +noses bending over them, as if our kneepans were warming-pans. We +felt very nice and snug, the more so since it was so chilly out of +doors; indeed out of bed-clothes too, seeing that there was no fire +in the room. The more so, I say, because truly to enjoy bodily +warmth, some small part of you must be cold, for there is no quality +in this world that is not what it is merely by contrast. Nothing +exists in itself. If you flatter yourself that you are all over +comfortable, and have been so a long time, then you cannot be said to +be comfortable any more. But if, like Queequeg and me in the bed, +the tip of your nose or the crown of your head be slightly chilled, +why then, indeed, in the general consciousness you feel most +delightfully and unmistakably warm. For this reason a sleeping +apartment should never be furnished with a fire, which is one of the +luxurious discomforts of the rich. For the height of this sort of +deliciousness is to have nothing but the blanket between you and +your snugness and the cold of the outer air. Then there you lie like +the one warm spark in the heart of an arctic crystal. + +We had been sitting in this crouching manner for some time, when all +at once I thought I would open my eyes; for when between sheets, +whether by day or by night, and whether asleep or awake, I have a way +of always keeping my eyes shut, in order the more to concentrate the +snugness of being in bed. Because no man can ever feel his own +identity aright except his eyes be closed; as if darkness were +indeed the proper element of our essences, though light be more +congenial to our clayey part. Upon opening my eyes then, and coming +out of my own pleasant and self-created darkness into the imposed and +coarse outer gloom of the unilluminated twelve-o'clock-at-night, I +experienced a disagreeable revulsion. Nor did I at all object to the +hint from Queequeg that perhaps it were best to strike a light, +seeing that we were so wide awake; and besides he felt a strong +desire to have a few quiet puffs from his Tomahawk. Be it said, that +though I had felt such a strong repugnance to his smoking in the bed +the night before, yet see how elastic our stiff prejudices grow when +love once comes to bend them. For now I liked nothing better than +to have Queequeg smoking by me, even in bed, because he seemed to be +full of such serene household joy then. I no more felt unduly +concerned for the landlord's policy of insurance. I was only alive +to the condensed confidential comfortableness of sharing a pipe and a +blanket with a real friend. With our shaggy jackets drawn about our +shoulders, we now passed the Tomahawk from one to the other, till +slowly there grew over us a blue hanging tester of smoke, illuminated +by the flame of the new-lit lamp. + +Whether it was that this undulating tester rolled the savage away to +far distant scenes, I know not, but he now spoke of his native +island; and, eager to hear his history, I begged him to go on and +tell it. He gladly complied. Though at the time I but ill +comprehended not a few of his words, yet subsequent disclosures, when +I had become more familiar with his broken phraseology, now enable me +to present the whole story such as it may prove in the mere skeleton +I give. + + + +CHAPTER 12 + +Biographical. + + +Queequeg was a native of Rokovoko, an island far away to the West +and South. It is not down in any map; true places never are. + +When a new-hatched savage running wild about his native woodlands in +a grass clout, followed by the nibbling goats, as if he were a green +sapling; even then, in Queequeg's ambitious soul, lurked a strong +desire to see something more of Christendom than a specimen whaler or +two. His father was a High Chief, a King; his uncle a High Priest; +and on the maternal side he boasted aunts who were the wives of +unconquerable warriors. There was excellent blood in his +veins--royal stuff; though sadly vitiated, I fear, by the cannibal +propensity he nourished in his untutored youth. + +A Sag Harbor ship visited his father's bay, and Queequeg sought a +passage to Christian lands. But the ship, having her full complement +of seamen, spurned his suit; and not all the King his father's +influence could prevail. But Queequeg vowed a vow. Alone in his +canoe, he paddled off to a distant strait, which he knew the ship +must pass through when she quitted the island. On one side was a +coral reef; on the other a low tongue of land, covered with mangrove +thickets that grew out into the water. Hiding his canoe, still +afloat, among these thickets, with its prow seaward, he sat down in +the stern, paddle low in hand; and when the ship was gliding by, like +a flash he darted out; gained her side; with one backward dash of his +foot capsized and sank his canoe; climbed up the chains; and throwing +himself at full length upon the deck, grappled a ring-bolt there, and +swore not to let it go, though hacked in pieces. + +In vain the captain threatened to throw him overboard; suspended a +cutlass over his naked wrists; Queequeg was the son of a King, and +Queequeg budged not. Struck by his desperate dauntlessness, and his +wild desire to visit Christendom, the captain at last relented, and +told him he might make himself at home. But this fine young +savage--this sea Prince of Wales, never saw the Captain's cabin. +They put him down among the sailors, and made a whaleman of him. But +like Czar Peter content to toil in the shipyards of foreign cities, +Queequeg disdained no seeming ignominy, if thereby he might happily +gain the power of enlightening his untutored countrymen. For at +bottom--so he told me--he was actuated by a profound desire to learn +among the Christians, the arts whereby to make his people still +happier than they were; and more than that, still better than they +were. But, alas! the practices of whalemen soon convinced him that +even Christians could be both miserable and wicked; infinitely more +so, than all his father's heathens. Arrived at last in old Sag +Harbor; and seeing what the sailors did there; and then going on to +Nantucket, and seeing how they spent their wages in that place also, +poor Queequeg gave it up for lost. Thought he, it's a wicked world +in all meridians; I'll die a pagan. + +And thus an old idolator at heart, he yet lived among these +Christians, wore their clothes, and tried to talk their gibberish. +Hence the queer ways about him, though now some time from home. + +By hints, I asked him whether he did not propose going back, and +having a coronation; since he might now consider his father dead and +gone, he being very old and feeble at the last accounts. He answered +no, not yet; and added that he was fearful Christianity, or rather +Christians, had unfitted him for ascending the pure and undefiled +throne of thirty pagan Kings before him. But by and by, he said, he +would return,--as soon as he felt himself baptized again. For the +nonce, however, he proposed to sail about, and sow his wild oats in +all four oceans. They had made a harpooneer of him, and that barbed +iron was in lieu of a sceptre now. + +I asked him what might be his immediate purpose, touching his future +movements. He answered, to go to sea again, in his old vocation. +Upon this, I told him that whaling was my own design, and informed +him of my intention to sail out of Nantucket, as being the most +promising port for an adventurous whaleman to embark from. He at +once resolved to accompany me to that island, ship aboard the same +vessel, get into the same watch, the same boat, the same mess with +me, in short to share my every hap; with both my hands in his, boldly +dip into the Potluck of both worlds. To all this I joyously +assented; for besides the affection I now felt for Queequeg, he was +an experienced harpooneer, and as such, could not fail to be of great +usefulness to one, who, like me, was wholly ignorant of the mysteries +of whaling, though well acquainted with the sea, as known to merchant +seamen. + +His story being ended with his pipe's last dying puff, Queequeg +embraced me, pressed his forehead against mine, and blowing out the +light, we rolled over from each other, this way and that, and very +soon were sleeping. + + +CHAPTER 13 + +Wheelbarrow. + + +Next morning, Monday, after disposing of the embalmed head to a +barber, for a block, I settled my own and comrade's bill; using, +however, my comrade's money. The grinning landlord, as well as the +boarders, seemed amazingly tickled at the sudden friendship which had +sprung up between me and Queequeg--especially as Peter Coffin's cock +and bull stories about him had previously so much alarmed me +concerning the very person whom I now companied with. + +We borrowed a wheelbarrow, and embarking our things, including my own +poor carpet-bag, and Queequeg's canvas sack and hammock, away we went +down to "the Moss," the little Nantucket packet schooner moored at +the wharf. As we were going along the people stared; not at Queequeg +so much--for they were used to seeing cannibals like him in their +streets,--but at seeing him and me upon such confidential terms. But +we heeded them not, going along wheeling the barrow by turns, and +Queequeg now and then stopping to adjust the sheath on his harpoon +barbs. I asked him why he carried such a troublesome thing with him +ashore, and whether all whaling ships did not find their own +harpoons. To this, in substance, he replied, that though what I +hinted was true enough, yet he had a particular affection for his own +harpoon, because it was of assured stuff, well tried in many a mortal +combat, and deeply intimate with the hearts of whales. In short, +like many inland reapers and mowers, who go into the farmers' meadows +armed with their own scythes--though in no wise obliged to furnish +them--even so, Queequeg, for his own private reasons, preferred his +own harpoon. + +Shifting the barrow from my hand to his, he told me a funny story +about the first wheelbarrow he had ever seen. It was in Sag Harbor. +The owners of his ship, it seems, had lent him one, in which to carry +his heavy chest to his boarding house. Not to seem ignorant about +the thing--though in truth he was entirely so, concerning the precise +way in which to manage the barrow--Queequeg puts his chest upon it; +lashes it fast; and then shoulders the barrow and marches up the +wharf. "Why," said I, "Queequeg, you might have known better than +that, one would think. Didn't the people laugh?" + +Upon this, he told me another story. The people of his island of +Rokovoko, it seems, at their wedding feasts express the fragrant +water of young cocoanuts into a large stained calabash like a +punchbowl; and this punchbowl always forms the great central ornament +on the braided mat where the feast is held. Now a certain grand +merchant ship once touched at Rokovoko, and its commander--from all +accounts, a very stately punctilious gentleman, at least for a sea +captain--this commander was invited to the wedding feast of +Queequeg's sister, a pretty young princess just turned of ten. Well; +when all the wedding guests were assembled at the bride's bamboo +cottage, this Captain marches in, and being assigned the post of +honour, placed himself over against the punchbowl, and between the +High Priest and his majesty the King, Queequeg's father. Grace being +said,--for those people have their grace as well as we--though +Queequeg told me that unlike us, who at such times look downwards to +our platters, they, on the contrary, copying the ducks, glance +upwards to the great Giver of all feasts--Grace, I say, being said, +the High Priest opens the banquet by the immemorial ceremony of the +island; that is, dipping his consecrated and consecrating fingers +into the bowl before the blessed beverage circulates. Seeing himself +placed next the Priest, and noting the ceremony, and thinking +himself--being Captain of a ship--as having plain precedence over a +mere island King, especially in the King's own house--the Captain +coolly proceeds to wash his hands in the punchbowl;--taking it I +suppose for a huge finger-glass. "Now," said Queequeg, "what you +tink now?--Didn't our people laugh?" + +At last, passage paid, and luggage safe, we stood on board the +schooner. Hoisting sail, it glided down the Acushnet river. On one +side, New Bedford rose in terraces of streets, their ice-covered +trees all glittering in the clear, cold air. Huge hills and +mountains of casks on casks were piled upon her wharves, and side by +side the world-wandering whale ships lay silent and safely moored at +last; while from others came a sound of carpenters and coopers, with +blended noises of fires and forges to melt the pitch, all betokening +that new cruises were on the start; that one most perilous and long +voyage ended, only begins a second; and a second ended, only begins a +third, and so on, for ever and for aye. Such is the endlessness, +yea, the intolerableness of all earthly effort. + +Gaining the more open water, the bracing breeze waxed fresh; the +little Moss tossed the quick foam from her bows, as a young colt his +snortings. How I snuffed that Tartar air!--how I spurned that +turnpike earth!--that common highway all over dented with the marks +of slavish heels and hoofs; and turned me to admire the magnanimity +of the sea which will permit no records. + +At the same foam-fountain, Queequeg seemed to drink and reel with me. +His dusky nostrils swelled apart; he showed his filed and pointed +teeth. On, on we flew; and our offing gained, the Moss did homage to +the blast; ducked and dived her bows as a slave before the Sultan. +Sideways leaning, we sideways darted; every ropeyarn tingling like a +wire; the two tall masts buckling like Indian canes in land +tornadoes. So full of this reeling scene were we, as we stood by the +plunging bowsprit, that for some time we did not notice the jeering +glances of the passengers, a lubber-like assembly, who marvelled that +two fellow beings should be so companionable; as though a white man +were anything more dignified than a whitewashed negro. But there +were some boobies and bumpkins there, who, by their intense +greenness, must have come from the heart and centre of all verdure. +Queequeg caught one of these young saplings mimicking him behind his +back. I thought the bumpkin's hour of doom was come. Dropping his +harpoon, the brawny savage caught him in his arms, and by an almost +miraculous dexterity and strength, sent him high up bodily into the +air; then slightly tapping his stern in mid-somerset, the fellow +landed with bursting lungs upon his feet, while Queequeg, turning his +back upon him, lighted his tomahawk pipe and passed it to me for a +puff. + +"Capting! Capting! yelled the bumpkin, running towards that officer; +"Capting, Capting, here's the devil." + +"Hallo, YOU sir," cried the Captain, a gaunt rib of the sea, stalking +up to Queequeg, "what in thunder do you mean by that? Don't you know +you might have killed that chap?" + +"What him say?" said Queequeg, as he mildly turned to me. + +"He say," said I, "that you came near kill-e that man there," +pointing to the still shivering greenhorn. + +"Kill-e," cried Queequeg, twisting his tattooed face into an +unearthly expression of disdain, "ah! him bevy small-e fish-e; +Queequeg no kill-e so small-e fish-e; Queequeg kill-e big whale!" + +"Look you," roared the Captain, "I'll kill-e YOU, you cannibal, if +you try any more of your tricks aboard here; so mind your eye." + +But it so happened just then, that it was high time for the Captain +to mind his own eye. The prodigious strain upon the main-sail had +parted the weather-sheet, and the tremendous boom was now flying from +side to side, completely sweeping the entire after part of the deck. +The poor fellow whom Queequeg had handled so roughly, was swept +overboard; all hands were in a panic; and to attempt snatching at the +boom to stay it, seemed madness. It flew from right to left, and +back again, almost in one ticking of a watch, and every instant +seemed on the point of snapping into splinters. Nothing was done, +and nothing seemed capable of being done; those on deck rushed +towards the bows, and stood eyeing the boom as if it were the lower +jaw of an exasperated whale. In the midst of this consternation, +Queequeg dropped deftly to his knees, and crawling under the path of +the boom, whipped hold of a rope, secured one end to the bulwarks, +and then flinging the other like a lasso, caught it round the boom as +it swept over his head, and at the next jerk, the spar was that way +trapped, and all was safe. The schooner was run into the wind, and +while the hands were clearing away the stern boat, Queequeg, stripped +to the waist, darted from the side with a long living arc of a leap. +For three minutes or more he was seen swimming like a dog, throwing +his long arms straight out before him, and by turns revealing his +brawny shoulders through the freezing foam. I looked at the grand +and glorious fellow, but saw no one to be saved. The greenhorn had +gone down. Shooting himself perpendicularly from the water, +Queequeg, now took an instant's glance around him, and seeming to see +just how matters were, dived down and disappeared. A few minutes +more, and he rose again, one arm still striking out, and with the +other dragging a lifeless form. The boat soon picked them up. The +poor bumpkin was restored. All hands voted Queequeg a noble trump; +the captain begged his pardon. From that hour I clove to Queequeg +like a barnacle; yea, till poor Queequeg took his last long dive. + +Was there ever such unconsciousness? He did not seem to think that +he at all deserved a medal from the Humane and Magnanimous Societies. +He only asked for water--fresh water--something to wipe the brine +off; that done, he put on dry clothes, lighted his pipe, and leaning +against the bulwarks, and mildly eyeing those around him, seemed to +be saying to himself--"It's a mutual, joint-stock world, in all +meridians. We cannibals must help these Christians." + + + +CHAPTER 14 + +Nantucket. + + +Nothing more happened on the passage worthy the mentioning; so, after +a fine run, we safely arrived in Nantucket. + +Nantucket! Take out your map and look at it. See what a real corner +of the world it occupies; how it stands there, away off shore, more +lonely than the Eddystone lighthouse. Look at it--a mere hillock, +and elbow of sand; all beach, without a background. There is more +sand there than you would use in twenty years as a substitute for +blotting paper. Some gamesome wights will tell you that they have to +plant weeds there, they don't grow naturally; that they import Canada +thistles; that they have to send beyond seas for a spile to stop a +leak in an oil cask; that pieces of wood in Nantucket are carried +about like bits of the true cross in Rome; that people there plant +toadstools before their houses, to get under the shade in summer +time; that one blade of grass makes an oasis, three blades in a day's +walk a prairie; that they wear quicksand shoes, something like +Laplander snow-shoes; that they are so shut up, belted about, every +way inclosed, surrounded, and made an utter island of by the ocean, +that to their very chairs and tables small clams will sometimes be +found adhering, as to the backs of sea turtles. But these +extravaganzas only show that Nantucket is no Illinois. + +Look now at the wondrous traditional story of how this island was +settled by the red-men. Thus goes the legend. In olden times an +eagle swooped down upon the New England coast, and carried off an +infant Indian in his talons. With loud lament the parents saw their +child borne out of sight over the wide waters. They resolved to +follow in the same direction. Setting out in their canoes, after a +perilous passage they discovered the island, and there they found an +empty ivory casket,--the poor little Indian's skeleton. + +What wonder, then, that these Nantucketers, born on a beach, should +take to the sea for a livelihood! They first caught crabs and +quohogs in the sand; grown bolder, they waded out with nets for +mackerel; more experienced, they pushed off in boats and captured +cod; and at last, launching a navy of great ships on the sea, +explored this watery world; put an incessant belt of +circumnavigations round it; peeped in at Behring's Straits; and in +all seasons and all oceans declared everlasting war with the +mightiest animated mass that has survived the flood; most monstrous +and most mountainous! That Himmalehan, salt-sea Mastodon, clothed +with such portentousness of unconscious power, that his very panics +are more to be dreaded than his most fearless and malicious assaults! + +And thus have these naked Nantucketers, these sea hermits, issuing +from their ant-hill in the sea, overrun and conquered the watery +world like so many Alexanders; parcelling out among them the +Atlantic, Pacific, and Indian oceans, as the three pirate powers did +Poland. Let America add Mexico to Texas, and pile Cuba upon Canada; +let the English overswarm all India, and hang out their blazing +banner from the sun; two thirds of this terraqueous globe are the +Nantucketer's. For the sea is his; he owns it, as Emperors own +empires; other seamen having but a right of way through it. Merchant +ships are but extension bridges; armed ones but floating forts; even +pirates and privateers, though following the sea as highwaymen the +road, they but plunder other ships, other fragments of the land like +themselves, without seeking to draw their living from the bottomless +deep itself. The Nantucketer, he alone resides and riots on the sea; +he alone, in Bible language, goes down to it in ships; to and fro +ploughing it as his own special plantation. THERE is his home; THERE +lies his business, which a Noah's flood would not interrupt, though +it overwhelmed all the millions in China. He lives on the sea, as +prairie cocks in the prairie; he hides among the waves, he climbs +them as chamois hunters climb the Alps. For years he knows not the +land; so that when he comes to it at last, it smells like another +world, more strangely than the moon would to an Earthsman. With the +landless gull, that at sunset folds her wings and is rocked to sleep +between billows; so at nightfall, the Nantucketer, out of sight of +land, furls his sails, and lays him to his rest, while under his very +pillow rush herds of walruses and whales. + + + +CHAPTER 15 + +Chowder. + + +It was quite late in the evening when the little Moss came snugly to +anchor, and Queequeg and I went ashore; so we could attend to no +business that day, at least none but a supper and a bed. The +landlord of the Spouter-Inn had recommended us to his cousin Hosea +Hussey of the Try Pots, whom he asserted to be the proprietor of one +of the best kept hotels in all Nantucket, and moreover he had assured +us that Cousin Hosea, as he called him, was famous for his chowders. +In short, he plainly hinted that we could not possibly do better than +try pot-luck at the Try Pots. But the directions he had given us +about keeping a yellow warehouse on our starboard hand till we opened +a white church to the larboard, and then keeping that on the larboard +hand till we made a corner three points to the starboard, and that +done, then ask the first man we met where the place was: these +crooked directions of his very much puzzled us at first, especially +as, at the outset, Queequeg insisted that the yellow warehouse--our +first point of departure--must be left on the larboard hand, whereas +I had understood Peter Coffin to say it was on the starboard. +However, by dint of beating about a little in the dark, and now and +then knocking up a peaceable inhabitant to inquire the way, we at +last came to something which there was no mistaking. + +Two enormous wooden pots painted black, and suspended by asses' ears, +swung from the cross-trees of an old top-mast, planted in front of an +old doorway. The horns of the cross-trees were sawed off on the +other side, so that this old top-mast looked not a little like a +gallows. Perhaps I was over sensitive to such impressions at the +time, but I could not help staring at this gallows with a vague +misgiving. A sort of crick was in my neck as I gazed up to the two +remaining horns; yes, TWO of them, one for Queequeg, and one for me. +It's ominous, thinks I. A Coffin my Innkeeper upon landing in my +first whaling port; tombstones staring at me in the whalemen's +chapel; and here a gallows! and a pair of prodigious black pots too! +Are these last throwing out oblique hints touching Tophet? + +I was called from these reflections by the sight of a freckled woman +with yellow hair and a yellow gown, standing in the porch of the inn, +under a dull red lamp swinging there, that looked much like an +injured eye, and carrying on a brisk scolding with a man in a purple +woollen shirt. + +"Get along with ye," said she to the man, "or I'll be combing ye!" + +"Come on, Queequeg," said I, "all right. There's Mrs. Hussey." + +And so it turned out; Mr. Hosea Hussey being from home, but leaving +Mrs. Hussey entirely competent to attend to all his affairs. Upon +making known our desires for a supper and a bed, Mrs. Hussey, +postponing further scolding for the present, ushered us into a little +room, and seating us at a table spread with the relics of a recently +concluded repast, turned round to us and said--"Clam or Cod?" + +"What's that about Cods, ma'am?" said I, with much politeness. + +"Clam or Cod?" she repeated. + +"A clam for supper? a cold clam; is THAT what you mean, Mrs. Hussey?" +says I, "but that's a rather cold and clammy reception in the winter +time, ain't it, Mrs. Hussey?" + +But being in a great hurry to resume scolding the man in the purple +Shirt, who was waiting for it in the entry, and seeming to hear +nothing but the word "clam," Mrs. Hussey hurried towards an open door +leading to the kitchen, and bawling out "clam for two," disappeared. + +"Queequeg," said I, "do you think that we can make out a supper for +us both on one clam?" + +However, a warm savory steam from the kitchen served to belie the +apparently cheerless prospect before us. But when that smoking +chowder came in, the mystery was delightfully explained. Oh, sweet +friends! hearken to me. It was made of small juicy clams, scarcely +bigger than hazel nuts, mixed with pounded ship biscuit, and salted +pork cut up into little flakes; the whole enriched with butter, and +plentifully seasoned with pepper and salt. Our appetites being +sharpened by the frosty voyage, and in particular, Queequeg seeing +his favourite fishing food before him, and the chowder being +surpassingly excellent, we despatched it with great expedition: when +leaning back a moment and bethinking me of Mrs. Hussey's clam and cod +announcement, I thought I would try a little experiment. Stepping to +the kitchen door, I uttered the word "cod" with great emphasis, and +resumed my seat. In a few moments the savoury steam came forth +again, but with a different flavor, and in good time a fine +cod-chowder was placed before us. + +We resumed business; and while plying our spoons in the bowl, thinks +I to myself, I wonder now if this here has any effect on the head? +What's that stultifying saying about chowder-headed people? "But +look, Queequeg, ain't that a live eel in your bowl? Where's your +harpoon?" + +Fishiest of all fishy places was the Try Pots, which well deserved +its name; for the pots there were always boiling chowders. Chowder +for breakfast, and chowder for dinner, and chowder for supper, till +you began to look for fish-bones coming through your clothes. The +area before the house was paved with clam-shells. Mrs. Hussey wore a +polished necklace of codfish vertebra; and Hosea Hussey had his +account books bound in superior old shark-skin. There was a fishy +flavor to the milk, too, which I could not at all account for, till +one morning happening to take a stroll along the beach among some +fishermen's boats, I saw Hosea's brindled cow feeding on fish +remnants, and marching along the sand with each foot in a cod's +decapitated head, looking very slip-shod, I assure ye. + +Supper concluded, we received a lamp, and directions from Mrs. Hussey +concerning the nearest way to bed; but, as Queequeg was about to +precede me up the stairs, the lady reached forth her arm, and +demanded his harpoon; she allowed no harpoon in her chambers. "Why +not? said I; "every true whaleman sleeps with his harpoon--but why +not?" "Because it's dangerous," says she. "Ever since young Stiggs +coming from that unfort'nt v'y'ge of his, when he was gone four years +and a half, with only three barrels of ILE, was found dead in my +first floor back, with his harpoon in his side; ever since then I +allow no boarders to take sich dangerous weepons in their rooms at +night. So, Mr. Queequeg" (for she had learned his name), "I will +just take this here iron, and keep it for you till morning. But the +chowder; clam or cod to-morrow for breakfast, men?" + +"Both," says I; "and let's have a couple of smoked herring by way of +variety." + + + +CHAPTER 16 + +The Ship. + + +In bed we concocted our plans for the morrow. But to my surprise and +no small concern, Queequeg now gave me to understand, that he had +been diligently consulting Yojo--the name of his black little +god--and Yojo had told him two or three times over, and strongly +insisted upon it everyway, that instead of our going together among +the whaling-fleet in harbor, and in concert selecting our craft; +instead of this, I say, Yojo earnestly enjoined that the selection of +the ship should rest wholly with me, inasmuch as Yojo purposed +befriending us; and, in order to do so, had already pitched upon a +vessel, which, if left to myself, I, Ishmael, should infallibly light +upon, for all the world as though it had turned out by chance; and in +that vessel I must immediately ship myself, for the present +irrespective of Queequeg. + +I have forgotten to mention that, in many things, Queequeg placed +great confidence in the excellence of Yojo's judgment and surprising +forecast of things; and cherished Yojo with considerable esteem, as a +rather good sort of god, who perhaps meant well enough upon the +whole, but in all cases did not succeed in his benevolent designs. + +Now, this plan of Queequeg's, or rather Yojo's, touching the +selection of our craft; I did not like that plan at all. I had not a +little relied upon Queequeg's sagacity to point out the whaler best +fitted to carry us and our fortunes securely. But as all my +remonstrances produced no effect upon Queequeg, I was obliged to +acquiesce; and accordingly prepared to set about this business with a +determined rushing sort of energy and vigor, that should quickly +settle that trifling little affair. Next morning early, leaving +Queequeg shut up with Yojo in our little bedroom--for it seemed that +it was some sort of Lent or Ramadan, or day of fasting, humiliation, +and prayer with Queequeg and Yojo that day; HOW it was I never could +find out, for, though I applied myself to it several times, I never +could master his liturgies and XXXIX Articles--leaving Queequeg, +then, fasting on his tomahawk pipe, and Yojo warming himself at his +sacrificial fire of shavings, I sallied out among the shipping. +After much prolonged sauntering and many random inquiries, I learnt +that there were three ships up for three-years' voyages--The +Devil-dam, the Tit-bit, and the Pequod. DEVIL-DAM, I do not know +the origin of; TIT-BIT is obvious; PEQUOD, you will no doubt +remember, was the name of a celebrated tribe of Massachusetts +Indians; now extinct as the ancient Medes. I peered and pryed about +the Devil-dam; from her, hopped over to the Tit-bit; and finally, +going on board the Pequod, looked around her for a moment, and then +decided that this was the very ship for us. + +You may have seen many a quaint craft in your day, for aught I +know;--square-toed luggers; mountainous Japanese junks; butter-box +galliots, and what not; but take my word for it, you never saw such a +rare old craft as this same rare old Pequod. She was a ship of the +old school, rather small if anything; with an old-fashioned +claw-footed look about her. Long seasoned and weather-stained in the +typhoons and calms of all four oceans, her old hull's complexion was +darkened like a French grenadier's, who has alike fought in Egypt and +Siberia. Her venerable bows looked bearded. Her masts--cut +somewhere on the coast of Japan, where her original ones were lost +overboard in a gale--her masts stood stiffly up like the spines of +the three old kings of Cologne. Her ancient decks were worn and +wrinkled, like the pilgrim-worshipped flag-stone in Canterbury +Cathedral where Becket bled. But to all these her old antiquities, +were added new and marvellous features, pertaining to the wild +business that for more than half a century she had followed. Old +Captain Peleg, many years her chief-mate, before he commanded another +vessel of his own, and now a retired seaman, and one of the principal +owners of the Pequod,--this old Peleg, during the term of his +chief-mateship, had built upon her original grotesqueness, and inlaid +it, all over, with a quaintness both of material and device, +unmatched by anything except it be Thorkill-Hake's carved buckler or +bedstead. She was apparelled like any barbaric Ethiopian emperor, +his neck heavy with pendants of polished ivory. She was a thing of +trophies. A cannibal of a craft, tricking herself forth in the +chased bones of her enemies. All round, her unpanelled, open +bulwarks were garnished like one continuous jaw, with the long sharp +teeth of the sperm whale, inserted there for pins, to fasten her old +hempen thews and tendons to. Those thews ran not through base blocks +of land wood, but deftly travelled over sheaves of sea-ivory. +Scorning a turnstile wheel at her reverend helm, she sported there a +tiller; and that tiller was in one mass, curiously carved from the +long narrow lower jaw of her hereditary foe. The helmsman who +steered by that tiller in a tempest, felt like the Tartar, when he +holds back his fiery steed by clutching its jaw. A noble craft, but +somehow a most melancholy! All noble things are touched with that. + +Now when I looked about the quarter-deck, for some one having +authority, in order to propose myself as a candidate for the voyage, +at first I saw nobody; but I could not well overlook a strange sort +of tent, or rather wigwam, pitched a little behind the main-mast. It +seemed only a temporary erection used in port. It was of a conical +shape, some ten feet high; consisting of the long, huge slabs of +limber black bone taken from the middle and highest part of the jaws +of the right-whale. Planted with their broad ends on the deck, a +circle of these slabs laced together, mutually sloped towards each +other, and at the apex united in a tufted point, where the loose +hairy fibres waved to and fro like the top-knot on some old +Pottowottamie Sachem's head. A triangular opening faced towards the +bows of the ship, so that the insider commanded a complete view +forward. + +And half concealed in this queer tenement, I at length found one who +by his aspect seemed to have authority; and who, it being noon, and +the ship's work suspended, was now enjoying respite from the burden +of command. He was seated on an old-fashioned oaken chair, wriggling +all over with curious carving; and the bottom of which was formed of +a stout interlacing of the same elastic stuff of which the wigwam was +constructed. + +There was nothing so very particular, perhaps, about the appearance +of the elderly man I saw; he was brown and brawny, like most old +seamen, and heavily rolled up in blue pilot-cloth, cut in the Quaker +style; only there was a fine and almost microscopic net-work of the +minutest wrinkles interlacing round his eyes, which must have arisen +from his continual sailings in many hard gales, and always looking to +windward;--for this causes the muscles about the eyes to become +pursed together. Such eye-wrinkles are very effectual in a scowl. + +"Is this the Captain of the Pequod?" said I, advancing to the door of +the tent. + +"Supposing it be the captain of the Pequod, what dost thou want of +him?" he demanded. + +"I was thinking of shipping." + +"Thou wast, wast thou? I see thou art no Nantucketer--ever been in +a stove boat?" + +"No, Sir, I never have." + +"Dost know nothing at all about whaling, I dare say--eh? + +"Nothing, Sir; but I have no doubt I shall soon learn. I've been +several voyages in the merchant service, and I think that--" + +"Merchant service be damned. Talk not that lingo to me. Dost see +that leg?--I'll take that leg away from thy stern, if ever thou +talkest of the marchant service to me again. Marchant service +indeed! I suppose now ye feel considerable proud of having served in +those marchant ships. But flukes! man, what makes thee want to go a +whaling, eh?--it looks a little suspicious, don't it, eh?--Hast not +been a pirate, hast thou?--Didst not rob thy last Captain, didst +thou?--Dost not think of murdering the officers when thou gettest to +sea?" + +I protested my innocence of these things. I saw that under the mask +of these half humorous innuendoes, this old seaman, as an insulated +Quakerish Nantucketer, was full of his insular prejudices, and rather +distrustful of all aliens, unless they hailed from Cape Cod or the +Vineyard. + +"But what takes thee a-whaling? I want to know that before I think +of shipping ye." + +"Well, sir, I want to see what whaling is. I want to see the world." + +"Want to see what whaling is, eh? Have ye clapped eye on Captain +Ahab?" + +"Who is Captain Ahab, sir?" + +"Aye, aye, I thought so. Captain Ahab is the Captain of this ship." + +"I am mistaken then. I thought I was speaking to the Captain +himself." + +"Thou art speaking to Captain Peleg--that's who ye are speaking to, +young man. It belongs to me and Captain Bildad to see the Pequod +fitted out for the voyage, and supplied with all her needs, including +crew. We are part owners and agents. But as I was going to say, if +thou wantest to know what whaling is, as thou tellest ye do, I can +put ye in a way of finding it out before ye bind yourself to it, past +backing out. Clap eye on Captain Ahab, young man, and thou wilt find +that he has only one leg." + +"What do you mean, sir? Was the other one lost by a whale?" + +"Lost by a whale! Young man, come nearer to me: it was devoured, +chewed up, crunched by the monstrousest parmacetty that ever chipped +a boat!--ah, ah!" + +I was a little alarmed by his energy, perhaps also a little touched +at the hearty grief in his concluding exclamation, but said as calmly +as I could, "What you say is no doubt true enough, sir; but how could +I know there was any peculiar ferocity in that particular whale, +though indeed I might have inferred as much from the simple fact of +the accident." + +"Look ye now, young man, thy lungs are a sort of soft, d'ye see; thou +dost not talk shark a bit. SURE, ye've been to sea before now; sure +of that?" + +"Sir," said I, "I thought I told you that I had been four voyages in +the merchant--" + +"Hard down out of that! Mind what I said about the marchant +service--don't aggravate me--I won't have it. But let us understand +each other. I have given thee a hint about what whaling is; do ye +yet feel inclined for it?" + +"I do, sir." + +"Very good. Now, art thou the man to pitch a harpoon down a live +whale's throat, and then jump after it? Answer, quick!" + +"I am, sir, if it should be positively indispensable to do so; not to +be got rid of, that is; which I don't take to be the fact." + +"Good again. Now then, thou not only wantest to go a-whaling, to +find out by experience what whaling is, but ye also want to go in +order to see the world? Was not that what ye said? I thought so. +Well then, just step forward there, and take a peep over the +weather-bow, and then back to me and tell me what ye see there." + +For a moment I stood a little puzzled by this curious request, not +knowing exactly how to take it, whether humorously or in earnest. +But concentrating all his crow's feet into one scowl, Captain Peleg +started me on the errand. + +Going forward and glancing over the weather bow, I perceived that the +ship swinging to her anchor with the flood-tide, was now obliquely +pointing towards the open ocean. The prospect was unlimited, but +exceedingly monotonous and forbidding; not the slightest variety that +I could see. + +"Well, what's the report?" said Peleg when I came back; "what did ye +see?" + +"Not much," I replied--"nothing but water; considerable horizon +though, and there's a squall coming up, I think." + +"Well, what does thou think then of seeing the world? Do ye wish to +go round Cape Horn to see any more of it, eh? Can't ye see the world +where you stand?" + +I was a little staggered, but go a-whaling I must, and I would; and +the Pequod was as good a ship as any--I thought the best--and all +this I now repeated to Peleg. Seeing me so determined, he expressed +his willingness to ship me. + +"And thou mayest as well sign the papers right off," he added--"come +along with ye." And so saying, he led the way below deck into the +cabin. + +Seated on the transom was what seemed to me a most uncommon and +surprising figure. It turned out to be Captain Bildad, who along +with Captain Peleg was one of the largest owners of the vessel; the +other shares, as is sometimes the case in these ports, being held by +a crowd of old annuitants; widows, fatherless children, and chancery +wards; each owning about the value of a timber head, or a foot of +plank, or a nail or two in the ship. People in Nantucket invest +their money in whaling vessels, the same way that you do yours in +approved state stocks bringing in good interest. + +Now, Bildad, like Peleg, and indeed many other Nantucketers, was a +Quaker, the island having been originally settled by that sect; and +to this day its inhabitants in general retain in an uncommon measure +the peculiarities of the Quaker, only variously and anomalously +modified by things altogether alien and heterogeneous. For some of +these same Quakers are the most sanguinary of all sailors and +whale-hunters. They are fighting Quakers; they are Quakers with a +vengeance. + +So that there are instances among them of men, who, named with +Scripture names--a singularly common fashion on the island--and in +childhood naturally imbibing the stately dramatic thee and thou of +the Quaker idiom; still, from the audacious, daring, and boundless +adventure of their subsequent lives, strangely blend with these +unoutgrown peculiarities, a thousand bold dashes of character, not +unworthy a Scandinavian sea-king, or a poetical Pagan Roman. And +when these things unite in a man of greatly superior natural force, +with a globular brain and a ponderous heart; who has also by the +stillness and seclusion of many long night-watches in the remotest +waters, and beneath constellations never seen here at the north, been +led to think untraditionally and independently; receiving all +nature's sweet or savage impressions fresh from her own virgin +voluntary and confiding breast, and thereby chiefly, but with some +help from accidental advantages, to learn a bold and nervous lofty +language--that man makes one in a whole nation's census--a mighty +pageant creature, formed for noble tragedies. Nor will it at all +detract from him, dramatically regarded, if either by birth or other +circumstances, he have what seems a half wilful overruling morbidness +at the bottom of his nature. For all men tragically great are made +so through a certain morbidness. Be sure of this, O young ambition, +all mortal greatness is but disease. But, as yet we have not to do +with such an one, but with quite another; and still a man, who, if +indeed peculiar, it only results again from another phase of the +Quaker, modified by individual circumstances. + +Like Captain Peleg, Captain Bildad was a well-to-do, retired +whaleman. But unlike Captain Peleg--who cared not a rush for what +are called serious things, and indeed deemed those self-same serious +things the veriest of all trifles--Captain Bildad had not only been +originally educated according to the strictest sect of Nantucket +Quakerism, but all his subsequent ocean life, and the sight of many +unclad, lovely island creatures, round the Horn--all that had not +moved this native born Quaker one single jot, had not so much as +altered one angle of his vest. Still, for all this immutableness, +was there some lack of common consistency about worthy Captain +Peleg. Though refusing, from conscientious scruples, to bear arms +against land invaders, yet himself had illimitably invaded the +Atlantic and Pacific; and though a sworn foe to human bloodshed, yet +had he in his straight-bodied coat, spilled tuns upon tuns of +leviathan gore. How now in the contemplative evening of his days, +the pious Bildad reconciled these things in the reminiscence, I do +not know; but it did not seem to concern him much, and very probably +he had long since come to the sage and sensible conclusion that a +man's religion is one thing, and this practical world quite another. +This world pays dividends. Rising from a little cabin-boy in short +clothes of the drabbest drab, to a harpooneer in a broad shad-bellied +waistcoat; from that becoming boat-header, chief-mate, and captain, +and finally a ship owner; Bildad, as I hinted before, had concluded +his adventurous career by wholly retiring from active life at the +goodly age of sixty, and dedicating his remaining days to the quiet +receiving of his well-earned income. + +Now, Bildad, I am sorry to say, had the reputation of being an +incorrigible old hunks, and in his sea-going days, a bitter, hard +task-master. They told me in Nantucket, though it certainly seems a +curious story, that when he sailed the old Categut whaleman, his +crew, upon arriving home, were mostly all carried ashore to the +hospital, sore exhausted and worn out. For a pious man, especially +for a Quaker, he was certainly rather hard-hearted, to say the +least. He never used to swear, though, at his men, they said; but +somehow he got an inordinate quantity of cruel, unmitigated hard work +out of them. When Bildad was a chief-mate, to have his drab-coloured +eye intently looking at you, made you feel completely nervous, till +you could clutch something--a hammer or a marling-spike, and go to +work like mad, at something or other, never mind what. Indolence and +idleness perished before him. His own person was the exact +embodiment of his utilitarian character. On his long, gaunt body, he +carried no spare flesh, no superfluous beard, his chin having a soft, +economical nap to it, like the worn nap of his broad-brimmed hat. + +Such, then, was the person that I saw seated on the transom when I +followed Captain Peleg down into the cabin. The space between the +decks was small; and there, bolt-upright, sat old Bildad, who always +sat so, and never leaned, and this to save his coat tails. His +broad-brim was placed beside him; his legs were stiffly crossed; his +drab vesture was buttoned up to his chin; and spectacles on nose, he +seemed absorbed in reading from a ponderous volume. + +"Bildad," cried Captain Peleg, "at it again, Bildad, eh? Ye have +been studying those Scriptures, now, for the last thirty years, to my +certain knowledge. How far ye got, Bildad?" + +As if long habituated to such profane talk from his old shipmate, +Bildad, without noticing his present irreverence, quietly looked up, +and seeing me, glanced again inquiringly towards Peleg. + +"He says he's our man, Bildad," said Peleg, "he wants to ship." + +"Dost thee?" said Bildad, in a hollow tone, and turning round to me. + +"I dost," said I unconsciously, he was so intense a Quaker. + +"What do ye think of him, Bildad?" said Peleg. + +"He'll do," said Bildad, eyeing me, and then went on spelling away at +his book in a mumbling tone quite audible. + +I thought him the queerest old Quaker I ever saw, especially as +Peleg, his friend and old shipmate, seemed such a blusterer. But I +said nothing, only looking round me sharply. Peleg now threw open a +chest, and drawing forth the ship's articles, placed pen and ink +before him, and seated himself at a little table. I began to think +it was high time to settle with myself at what terms I would be +willing to engage for the voyage. I was already aware that in the +whaling business they paid no wages; but all hands, including the +captain, received certain shares of the profits called lays, and that +these lays were proportioned to the degree of importance pertaining +to the respective duties of the ship's company. I was also aware +that being a green hand at whaling, my own lay would not be very +large; but considering that I was used to the sea, could steer a +ship, splice a rope, and all that, I made no doubt that from all I +had heard I should be offered at least the 275th lay--that is, the +275th part of the clear net proceeds of the voyage, whatever that +might eventually amount to. And though the 275th lay was what they +call a rather LONG LAY, yet it was better than nothing; and if we had +a lucky voyage, might pretty nearly pay for the clothing I would wear +out on it, not to speak of my three years' beef and board, for which +I would not have to pay one stiver. + +It might be thought that this was a poor way to accumulate a princely +fortune--and so it was, a very poor way indeed. But I am one of +those that never take on about princely fortunes, and am quite +content if the world is ready to board and lodge me, while I am +putting up at this grim sign of the Thunder Cloud. Upon the whole, I +thought that the 275th lay would be about the fair thing, but would not +have been surprised had I been offered the 200th, considering I was +of a broad-shouldered make. + +But one thing, nevertheless, that made me a little distrustful about +receiving a generous share of the profits was this: Ashore, I had +heard something of both Captain Peleg and his unaccountable old crony +Bildad; how that they being the principal proprietors of the Pequod, +therefore the other and more inconsiderable and scattered owners, +left nearly the whole management of the ship's affairs to these two. +And I did not know but what the stingy old Bildad might have a mighty +deal to say about shipping hands, especially as I now found him on +board the Pequod, quite at home there in the cabin, and reading his +Bible as if at his own fireside. Now while Peleg was vainly trying +to mend a pen with his jack-knife, old Bildad, to my no small +surprise, considering that he was such an interested party in these +proceedings; Bildad never heeded us, but went on mumbling to himself +out of his book, "LAY not up for yourselves treasures upon earth, +where moth--" + +"Well, Captain Bildad," interrupted Peleg, "what d'ye say, what lay +shall we give this young man?" + +"Thou knowest best," was the sepulchral reply, "the seven hundred and +seventy-seventh wouldn't be too much, would it?--'where moth and rust +do corrupt, but LAY--'" + +LAY, indeed, thought I, and such a lay! the seven hundred and +seventy-seventh! Well, old Bildad, you are determined that I, for +one, shall not LAY up many LAYS here below, where moth and rust do +corrupt. It was an exceedingly LONG LAY that, indeed; and though +from the magnitude of the figure it might at first deceive a +landsman, yet the slightest consideration will show that though seven +hundred and seventy-seven is a pretty large number, yet, when you +come to make a TEENTH of it, you will then see, I say, that the seven +hundred and seventy-seventh part of a farthing is a good deal less +than seven hundred and seventy-seven gold doubloons; and so I thought +at the time. + +"Why, blast your eyes, Bildad," cried Peleg, "thou dost not want to +swindle this young man! he must have more than that." + +"Seven hundred and seventy-seventh," again said Bildad, without +lifting his eyes; and then went on mumbling--"for where your treasure +is, there will your heart be also." + +"I am going to put him down for the three hundredth," said Peleg, "do +ye hear that, Bildad! The three hundredth lay, I say." + +Bildad laid down his book, and turning solemnly towards him said, +"Captain Peleg, thou hast a generous heart; but thou must consider +the duty thou owest to the other owners of this ship--widows and +orphans, many of them--and that if we too abundantly reward the +labors of this young man, we may be taking the bread from those +widows and those orphans. The seven hundred and seventy-seventh lay, +Captain Peleg." + +"Thou Bildad!" roared Peleg, starting up and clattering about the +cabin. "Blast ye, Captain Bildad, if I had followed thy advice in +these matters, I would afore now had a conscience to lug about that +would be heavy enough to founder the largest ship that ever sailed +round Cape Horn." + +"Captain Peleg," said Bildad steadily, "thy conscience may be drawing +ten inches of water, or ten fathoms, I can't tell; but as thou art +still an impenitent man, Captain Peleg, I greatly fear lest thy +conscience be but a leaky one; and will in the end sink thee +foundering down to the fiery pit, Captain Peleg." + +"Fiery pit! fiery pit! ye insult me, man; past all natural bearing, +ye insult me. It's an all-fired outrage to tell any human creature +that he's bound to hell. Flukes and flames! Bildad, say that again +to me, and start my soul-bolts, but I'll--I'll--yes, I'll swallow a +live goat with all his hair and horns on. Out of the cabin, ye +canting, drab-coloured son of a wooden gun--a straight wake with ye!" + +As he thundered out this he made a rush at Bildad, but with a +marvellous oblique, sliding celerity, Bildad for that time eluded +him. + +Alarmed at this terrible outburst between the two principal and +responsible owners of the ship, and feeling half a mind to give up +all idea of sailing in a vessel so questionably owned and temporarily +commanded, I stepped aside from the door to give egress to Bildad, +who, I made no doubt, was all eagerness to vanish from before the +awakened wrath of Peleg. But to my astonishment, he sat down again +on the transom very quietly, and seemed to have not the slightest +intention of withdrawing. He seemed quite used to impenitent Peleg +and his ways. As for Peleg, after letting off his rage as he had, +there seemed no more left in him, and he, too, sat down like a lamb, +though he twitched a little as if still nervously agitated. "Whew!" +he whistled at last--"the squall's gone off to leeward, I think. +Bildad, thou used to be good at sharpening a lance, mend that pen, +will ye. My jack-knife here needs the grindstone. That's he; thank +ye, Bildad. Now then, my young man, Ishmael's thy name, didn't ye +say? Well then, down ye go here, Ishmael, for the three hundredth +lay." + +"Captain Peleg," said I, "I have a friend with me who wants to ship +too--shall I bring him down to-morrow?" + +"To be sure," said Peleg. "Fetch him along, and we'll look at him." + +"What lay does he want?" groaned Bildad, glancing up from the book +in which he had again been burying himself. + +"Oh! never thee mind about that, Bildad," said Peleg. "Has he ever +whaled it any?" turning to me. + +"Killed more whales than I can count, Captain Peleg." + +"Well, bring him along then." + +And, after signing the papers, off I went; nothing doubting but that +I had done a good morning's work, and that the Pequod was the +identical ship that Yojo had provided to carry Queequeg and me round +the Cape. + +But I had not proceeded far, when I began to bethink me that the +Captain with whom I was to sail yet remained unseen by me; though, +indeed, in many cases, a whale-ship will be completely fitted out, +and receive all her crew on board, ere the captain makes himself +visible by arriving to take command; for sometimes these voyages are +so prolonged, and the shore intervals at home so exceedingly brief, +that if the captain have a family, or any absorbing concernment of +that sort, he does not trouble himself much about his ship in port, +but leaves her to the owners till all is ready for sea. However, it +is always as well to have a look at him before irrevocably committing +yourself into his hands. Turning back I accosted Captain Peleg, +inquiring where Captain Ahab was to be found. + +"And what dost thou want of Captain Ahab? It's all right enough; +thou art shipped." + +"Yes, but I should like to see him." + +"But I don't think thou wilt be able to at present. I don't know +exactly what's the matter with him; but he keeps close inside the +house; a sort of sick, and yet he don't look so. In fact, he ain't +sick; but no, he isn't well either. Any how, young man, he won't +always see me, so I don't suppose he will thee. He's a queer man, +Captain Ahab--so some think--but a good one. Oh, thou'lt like him +well enough; no fear, no fear. He's a grand, ungodly, god-like man, +Captain Ahab; doesn't speak much; but, when he does speak, then you +may well listen. Mark ye, be forewarned; Ahab's above the common; +Ahab's been in colleges, as well as 'mong the cannibals; been used to +deeper wonders than the waves; fixed his fiery lance in mightier, +stranger foes than whales. His lance! aye, the keenest and the surest +that out of all our isle! Oh! he ain't Captain Bildad; no, and he +ain't Captain Peleg; HE'S AHAB, boy; and Ahab of old, thou knowest, +was a crowned king!" + +"And a very vile one. When that wicked king was slain, the dogs, did +they not lick his blood?" + +"Come hither to me--hither, hither," said Peleg, with a significance +in his eye that almost startled me. "Look ye, lad; never say that on +board the Pequod. Never say it anywhere. Captain Ahab did not name +himself. 'Twas a foolish, ignorant whim of his crazy, widowed +mother, who died when he was only a twelvemonth old. And yet the old +squaw Tistig, at Gayhead, said that the name would somehow prove +prophetic. And, perhaps, other fools like her may tell thee the +same. I wish to warn thee. It's a lie. I know Captain Ahab well; +I've sailed with him as mate years ago; I know what he is--a good +man--not a pious, good man, like Bildad, but a swearing good +man--something like me--only there's a good deal more of him. Aye, +aye, I know that he was never very jolly; and I know that on the +passage home, he was a little out of his mind for a spell; but it was +the sharp shooting pains in his bleeding stump that brought that +about, as any one might see. I know, too, that ever since he lost +his leg last voyage by that accursed whale, he's been a kind of +moody--desperate moody, and savage sometimes; but that will all pass +off. And once for all, let me tell thee and assure thee, young man, +it's better to sail with a moody good captain than a laughing bad +one. So good-bye to thee--and wrong not Captain Ahab, because he +happens to have a wicked name. Besides, my boy, he has a wife--not +three voyages wedded--a sweet, resigned girl. Think of that; by that +sweet girl that old man has a child: hold ye then there can be any +utter, hopeless harm in Ahab? No, no, my lad; stricken, blasted, if +he be, Ahab has his humanities!" + +As I walked away, I was full of thoughtfulness; what had been +incidentally revealed to me of Captain Ahab, filled me with a certain +wild vagueness of painfulness concerning him. And somehow, at the +time, I felt a sympathy and a sorrow for him, but for I don't know +what, unless it was the cruel loss of his leg. And yet I also felt a +strange awe of him; but that sort of awe, which I cannot at all +describe, was not exactly awe; I do not know what it was. But I felt +it; and it did not disincline me towards him; though I felt +impatience at what seemed like mystery in him, so imperfectly as he +was known to me then. However, my thoughts were at length carried in +other directions, so that for the present dark Ahab slipped my mind. + + + +CHAPTER 17 + +The Ramadan. + + +As Queequeg's Ramadan, or Fasting and Humiliation, was to continue +all day, I did not choose to disturb him till towards night-fall; for +I cherish the greatest respect towards everybody's religious +obligations, never mind how comical, and could not find it in my +heart to undervalue even a congregation of ants worshipping a +toad-stool; or those other creatures in certain parts of our earth, +who with a degree of footmanism quite unprecedented in other planets, +bow down before the torso of a deceased landed proprietor merely on +account of the inordinate possessions yet owned and rented in his +name. + +I say, we good Presbyterian Christians should be charitable in these +things, and not fancy ourselves so vastly superior to other mortals, +pagans and what not, because of their half-crazy conceits on these +subjects. There was Queequeg, now, certainly entertaining the most +absurd notions about Yojo and his Ramadan;--but what of that? +Queequeg thought he knew what he was about, I suppose; he seemed to +be content; and there let him rest. All our arguing with him would +not avail; let him be, I say: and Heaven have mercy on us +all--Presbyterians and Pagans alike--for we are all somehow +dreadfully cracked about the head, and sadly need mending. + +Towards evening, when I felt assured that all his performances and +rituals must be over, I went up to his room and knocked at the door; +but no answer. I tried to open it, but it was fastened inside. +"Queequeg," said I softly through the key-hole:--all silent. "I say, +Queequeg! why don't you speak? It's I--Ishmael." But all remained +still as before. I began to grow alarmed. I had allowed him such +abundant time; I thought he might have had an apoplectic fit. I +looked through the key-hole; but the door opening into an odd corner +of the room, the key-hole prospect was but a crooked and sinister +one. I could only see part of the foot-board of the bed and a line +of the wall, but nothing more. I was surprised to behold resting +against the wall the wooden shaft of Queequeg's harpoon, which the +landlady the evening previous had taken from him, before our mounting +to the chamber. That's strange, thought I; but at any rate, since +the harpoon stands yonder, and he seldom or never goes abroad without +it, therefore he must be inside here, and no possible mistake. + +"Queequeg!--Queequeg!"--all still. Something must have happened. +Apoplexy! I tried to burst open the door; but it stubbornly +resisted. Running down stairs, I quickly stated my suspicions to the +first person I met--the chamber-maid. "La! la!" she cried, "I +thought something must be the matter. I went to make the bed after +breakfast, and the door was locked; and not a mouse to be heard; and +it's been just so silent ever since. But I thought, may be, you had +both gone off and locked your baggage in for safe keeping. La! la, +ma'am!--Mistress! murder! Mrs. Hussey! apoplexy!"--and with these +cries, she ran towards the kitchen, I following. + +Mrs. Hussey soon appeared, with a mustard-pot in one hand and a +vinegar-cruet in the other, having just broken away from the +occupation of attending to the castors, and scolding her little black +boy meantime. + +"Wood-house!" cried I, "which way to it? Run for God's sake, and +fetch something to pry open the door--the axe!--the axe! he's had a +stroke; depend upon it!"--and so saying I was unmethodically rushing +up stairs again empty-handed, when Mrs. Hussey interposed the +mustard-pot and vinegar-cruet, and the entire castor of her +countenance. + +"What's the matter with you, young man?" + +"Get the axe! For God's sake, run for the doctor, some one, while I +pry it open!" + +"Look here," said the landlady, quickly putting down the +vinegar-cruet, so as to have one hand free; "look here; are you +talking about prying open any of my doors?"--and with that she seized +my arm. "What's the matter with you? What's the matter with you, +shipmate?" + +In as calm, but rapid a manner as possible, I gave her to understand +the whole case. Unconsciously clapping the vinegar-cruet to one side +of her nose, she ruminated for an instant; then exclaimed--"No! I +haven't seen it since I put it there." Running to a little closet +under the landing of the stairs, she glanced in, and returning, told +me that Queequeg's harpoon was missing. "He's killed himself," she +cried. "It's unfort'nate Stiggs done over again there goes another +counterpane--God pity his poor mother!--it will be the ruin of my +house. Has the poor lad a sister? Where's that girl?--there, Betty, +go to Snarles the Painter, and tell him to paint me a sign, with--"no +suicides permitted here, and no smoking in the parlor;"--might as +well kill both birds at once. Kill? The Lord be merciful to his +ghost! What's that noise there? You, young man, avast there!" + +And running up after me, she caught me as I was again trying to force +open the door. + +"I don't allow it; I won't have my premises spoiled. Go for the +locksmith, there's one about a mile from here. But avast!" putting +her hand in her side-pocket, "here's a key that'll fit, I guess; +let's see." And with that, she turned it in the lock; but, alas! +Queequeg's supplemental bolt remained unwithdrawn within. + +"Have to burst it open," said I, and was running down the entry a +little, for a good start, when the landlady caught at me, again +vowing I should not break down her premises; but I tore from her, and +with a sudden bodily rush dashed myself full against the mark. + +With a prodigious noise the door flew open, and the knob slamming +against the wall, sent the plaster to the ceiling; and there, good +heavens! there sat Queequeg, altogether cool and self-collected; +right in the middle of the room; squatting on his hams, and holding +Yojo on top of his head. He looked neither one way nor the other +way, but sat like a carved image with scarce a sign of active life. + +"Queequeg," said I, going up to him, "Queequeg, what's the matter +with you?" + +"He hain't been a sittin' so all day, has he?" said the landlady. + +But all we said, not a word could we drag out of him; I almost felt +like pushing him over, so as to change his position, for it was +almost intolerable, it seemed so painfully and unnaturally +constrained; especially, as in all probability he had been sitting so +for upwards of eight or ten hours, going too without his regular +meals. + +"Mrs. Hussey," said I, "he's ALIVE at all events; so leave us, if you +please, and I will see to this strange affair myself." + +Closing the door upon the landlady, I endeavored to prevail upon +Queequeg to take a chair; but in vain. There he sat; and all he +could do--for all my polite arts and blandishments--he would not move +a peg, nor say a single word, nor even look at me, nor notice my +presence in the slightest way. + +I wonder, thought I, if this can possibly be a part of his Ramadan; +do they fast on their hams that way in his native island. It must be +so; yes, it's part of his creed, I suppose; well, then, let him +rest; he'll get up sooner or later, no doubt. It can't last for +ever, thank God, and his Ramadan only comes once a year; and I don't +believe it's very punctual then. + +I went down to supper. After sitting a long time listening to the +long stories of some sailors who had just come from a plum-pudding +voyage, as they called it (that is, a short whaling-voyage in a +schooner or brig, confined to the north of the line, in the Atlantic +Ocean only); after listening to these plum-puddingers till nearly +eleven o'clock, I went up stairs to go to bed, feeling quite sure by +this time Queequeg must certainly have brought his Ramadan to a +termination. But no; there he was just where I had left him; he had +not stirred an inch. I began to grow vexed with him; it seemed so +downright senseless and insane to be sitting there all day and half +the night on his hams in a cold room, holding a piece of wood on his +head. + +"For heaven's sake, Queequeg, get up and shake yourself; get up and +have some supper. You'll starve; you'll kill yourself, Queequeg." +But not a word did he reply. + +Despairing of him, therefore, I determined to go to bed and to sleep; +and no doubt, before a great while, he would follow me. But previous +to turning in, I took my heavy bearskin jacket, and threw it over +him, as it promised to be a very cold night; and he had nothing but +his ordinary round jacket on. For some time, do all I would, I could +not get into the faintest doze. I had blown out the candle; and the +mere thought of Queequeg--not four feet off--sitting there in that +uneasy position, stark alone in the cold and dark; this made me +really wretched. Think of it; sleeping all night in the same room +with a wide awake pagan on his hams in this dreary, unaccountable +Ramadan! + +But somehow I dropped off at last, and knew nothing more till break +of day; when, looking over the bedside, there squatted Queequeg, as +if he had been screwed down to the floor. But as soon as the first +glimpse of sun entered the window, up he got, with stiff and grating +joints, but with a cheerful look; limped towards me where I lay; +pressed his forehead again against mine; and said his Ramadan was +over. + +Now, as I before hinted, I have no objection to any person's +religion, be it what it may, so long as that person does not kill or +insult any other person, because that other person don't believe it +also. But when a man's religion becomes really frantic; when it is a +positive torment to him; and, in fine, makes this earth of ours an +uncomfortable inn to lodge in; then I think it high time to take that +individual aside and argue the point with him. + +And just so I now did with Queequeg. "Queequeg," said I, "get into +bed now, and lie and listen to me." I then went on, beginning with +the rise and progress of the primitive religions, and coming down to +the various religions of the present time, during which time I +labored to show Queequeg that all these Lents, Ramadans, and +prolonged ham-squattings in cold, cheerless rooms were stark +nonsense; bad for the health; useless for the soul; opposed, in +short, to the obvious laws of Hygiene and common sense. I told him, +too, that he being in other things such an extremely sensible and +sagacious savage, it pained me, very badly pained me, to see him now +so deplorably foolish about this ridiculous Ramadan of his. Besides, +argued I, fasting makes the body cave in; hence the spirit caves in; +and all thoughts born of a fast must necessarily be half-starved. +This is the reason why most dyspeptic religionists cherish such +melancholy notions about their hereafters. In one word, Queequeg, +said I, rather digressively; hell is an idea first born on an +undigested apple-dumpling; and since then perpetuated through the +hereditary dyspepsias nurtured by Ramadans. + +I then asked Queequeg whether he himself was ever troubled with +dyspepsia; expressing the idea very plainly, so that he could take it +in. He said no; only upon one memorable occasion. It was after a +great feast given by his father the king, on the gaining of a great +battle wherein fifty of the enemy had been killed by about two +o'clock in the afternoon, and all cooked and eaten that very evening. + +"No more, Queequeg," said I, shuddering; "that will do;" for I knew +the inferences without his further hinting them. I had seen a sailor +who had visited that very island, and he told me that it was the +custom, when a great battle had been gained there, to barbecue all +the slain in the yard or garden of the victor; and then, one by one, +they were placed in great wooden trenchers, and garnished round like +a pilau, with breadfruit and cocoanuts; and with some parsley in +their mouths, were sent round with the victor's compliments to all +his friends, just as though these presents were so many Christmas +turkeys. + +After all, I do not think that my remarks about religion made much +impression upon Queequeg. Because, in the first place, he somehow +seemed dull of hearing on that important subject, unless considered +from his own point of view; and, in the second place, he did not more +than one third understand me, couch my ideas simply as I would; and, +finally, he no doubt thought he knew a good deal more about the true +religion than I did. He looked at me with a sort of condescending +concern and compassion, as though he thought it a great pity that +such a sensible young man should be so hopelessly lost to evangelical +pagan piety. + +At last we rose and dressed; and Queequeg, taking a prodigiously +hearty breakfast of chowders of all sorts, so that the landlady +should not make much profit by reason of his Ramadan, we sallied out +to board the Pequod, sauntering along, and picking our teeth with +halibut bones. + + + +CHAPTER 18 + +His Mark. + + +As we were walking down the end of the wharf towards the ship, +Queequeg carrying his harpoon, Captain Peleg in his gruff voice +loudly hailed us from his wigwam, saying he had not suspected my +friend was a cannibal, and furthermore announcing that he let no +cannibals on board that craft, unless they previously produced their +papers. + +"What do you mean by that, Captain Peleg?" said I, now jumping on the +bulwarks, and leaving my comrade standing on the wharf. + +"I mean," he replied, "he must show his papers." + +"Yes," said Captain Bildad in his hollow voice, sticking his head +from behind Peleg's, out of the wigwam. "He must show that he's +converted. Son of darkness," he added, turning to Queequeg, "art +thou at present in communion with any Christian church?" + +"Why," said I, "he's a member of the first Congregational Church." +Here be it said, that many tattooed savages sailing in Nantucket +ships at last come to be converted into the churches. + +"First Congregational Church," cried Bildad, "what! that worships in +Deacon Deuteronomy Coleman's meeting-house?" and so saying, taking +out his spectacles, he rubbed them with his great yellow bandana +handkerchief, and putting them on very carefully, came out of the +wigwam, and leaning stiffly over the bulwarks, took a good long look +at Queequeg. + +"How long hath he been a member?" he then said, turning to me; "not +very long, I rather guess, young man." + +"No," said Peleg, "and he hasn't been baptized right either, or it +would have washed some of that devil's blue off his face." + +"Do tell, now," cried Bildad, "is this Philistine a regular member of +Deacon Deuteronomy's meeting? I never saw him going there, and I +pass it every Lord's day." + +"I don't know anything about Deacon Deuteronomy or his meeting," said +I; "all I know is, that Queequeg here is a born member of the First +Congregational Church. He is a deacon himself, Queequeg is." + +"Young man," said Bildad sternly, "thou art skylarking with +me--explain thyself, thou young Hittite. What church dost thee mean? +answer me." + +Finding myself thus hard pushed, I replied. "I mean, sir, the same +ancient Catholic Church to which you and I, and Captain Peleg there, +and Queequeg here, and all of us, and every mother's son and soul of +us belong; the great and everlasting First Congregation of this whole +worshipping world; we all belong to that; only some of us cherish +some queer crotchets no ways touching the grand belief; in THAT we +all join hands." + +"Splice, thou mean'st SPLICE hands," cried Peleg, drawing nearer. +"Young man, you'd better ship for a missionary, instead of a +fore-mast hand; I never heard a better sermon. Deacon +Deuteronomy--why Father Mapple himself couldn't beat it, and he's +reckoned something. Come aboard, come aboard; never mind about the +papers. I say, tell Quohog there--what's that you call him? tell +Quohog to step along. By the great anchor, what a harpoon he's got +there! looks like good stuff that; and he handles it about right. I +say, Quohog, or whatever your name is, did you ever stand in the head +of a whale-boat? did you ever strike a fish?" + +Without saying a word, Queequeg, in his wild sort of way, jumped upon +the bulwarks, from thence into the bows of one of the whale-boats +hanging to the side; and then bracing his left knee, and poising his +harpoon, cried out in some such way as this:-- + +"Cap'ain, you see him small drop tar on water dere? You see him? +well, spose him one whale eye, well, den!" and taking sharp aim at +it, he darted the iron right over old Bildad's broad brim, clean +across the ship's decks, and struck the glistening tar spot out of +sight. + +"Now," said Queequeg, quietly hauling in the line, "spos-ee him +whale-e eye; why, dad whale dead." + +"Quick, Bildad," said Peleg, his partner, who, aghast at the close +vicinity of the flying harpoon, had retreated towards the cabin +gangway. "Quick, I say, you Bildad, and get the ship's papers. We +must have Hedgehog there, I mean Quohog, in one of our boats. Look +ye, Quohog, we'll give ye the ninetieth lay, and that's more than +ever was given a harpooneer yet out of Nantucket." + +So down we went into the cabin, and to my great joy Queequeg was soon +enrolled among the same ship's company to which I myself belonged. + +When all preliminaries were over and Peleg had got everything ready +for signing, he turned to me and said, "I guess, Quohog there don't +know how to write, does he? I say, Quohog, blast ye! dost thou sign +thy name or make thy mark? + +But at this question, Queequeg, who had twice or thrice before taken +part in similar ceremonies, looked no ways abashed; but taking the +offered pen, copied upon the paper, in the proper place, an exact +counterpart of a queer round figure which was tattooed upon his arm; +so that through Captain Peleg's obstinate mistake touching his +appellative, it stood something like this:-- + +Quohog. +his X mark. + +Meanwhile Captain Bildad sat earnestly and steadfastly eyeing +Queequeg, and at last rising solemnly and fumbling in the huge +pockets of his broad-skirted drab coat, took out a bundle of tracts, +and selecting one entitled "The Latter Day Coming; or No Time to +Lose," placed it in Queequeg's hands, and then grasping them and the +book with both his, looked earnestly into his eyes, and said, "Son of +darkness, I must do my duty by thee; I am part owner of this ship, +and feel concerned for the souls of all its crew; if thou still +clingest to thy Pagan ways, which I sadly fear, I beseech thee, +remain not for aye a Belial bondsman. Spurn the idol Bell, and the +hideous dragon; turn from the wrath to come; mind thine eye, I say; +oh! goodness gracious! steer clear of the fiery pit!" + +Something of the salt sea yet lingered in old Bildad's language, +heterogeneously mixed with Scriptural and domestic phrases. + +"Avast there, avast there, Bildad, avast now spoiling our +harpooneer," Peleg. "Pious harpooneers never make good voyagers--it +takes the shark out of 'em; no harpooneer is worth a straw who aint +pretty sharkish. There was young Nat Swaine, once the bravest +boat-header out of all Nantucket and the Vineyard; he joined the +meeting, and never came to good. He got so frightened about his +plaguy soul, that he shrinked and sheered away from whales, for fear +of after-claps, in case he got stove and went to Davy Jones." + +"Peleg! Peleg!" said Bildad, lifting his eyes and hands, "thou +thyself, as I myself, hast seen many a perilous time; thou knowest, +Peleg, what it is to have the fear of death; how, then, can'st thou +prate in this ungodly guise. Thou beliest thine own heart, Peleg. +Tell me, when this same Pequod here had her three masts overboard in +that typhoon on Japan, that same voyage when thou went mate with +Captain Ahab, did'st thou not think of Death and the Judgment then?" + +"Hear him, hear him now," cried Peleg, marching across the cabin, and +thrusting his hands far down into his pockets,--"hear him, all of ye. +Think of that! When every moment we thought the ship would sink! +Death and the Judgment then? What? With all three masts making such +an everlasting thundering against the side; and every sea breaking +over us, fore and aft. Think of Death and the Judgment then? No! +no time to think about Death then. Life was what Captain Ahab and I +was thinking of; and how to save all hands--how to rig +jury-masts--how to get into the nearest port; that was what I was +thinking of." + +Bildad said no more, but buttoning up his coat, stalked on deck, +where we followed him. There he stood, very quietly overlooking some +sailmakers who were mending a top-sail in the waist. Now and then he +stooped to pick up a patch, or save an end of tarred twine, which +otherwise might have been wasted. + + + +CHAPTER 19 + +The Prophet. + + +"Shipmates, have ye shipped in that ship?" + +Queequeg and I had just left the Pequod, and were sauntering away from +the water, for the moment each occupied with his own thoughts, when +the above words were put to us by a stranger, who, pausing before us, +levelled his massive forefinger at the vessel in question. He was +but shabbily apparelled in faded jacket and patched trowsers; a rag +of a black handkerchief investing his neck. A confluent small-pox +had in all directions flowed over his face, and left it like the +complicated ribbed bed of a torrent, when the rushing waters have +been dried up. + +"Have ye shipped in her?" he repeated. + +"You mean the ship Pequod, I suppose," said I, trying to gain a +little more time for an uninterrupted look at him. + +"Aye, the Pequod--that ship there," he said, drawing back his whole +arm, and then rapidly shoving it straight out from him, with the +fixed bayonet of his pointed finger darted full at the object. + +"Yes," said I, "we have just signed the articles." + +"Anything down there about your souls?" + +"About what?" + +"Oh, perhaps you hav'n't got any," he said quickly. "No matter +though, I know many chaps that hav'n't got any,--good luck to 'em; +and they are all the better off for it. A soul's a sort of a fifth +wheel to a wagon." + +"What are you jabbering about, shipmate?" said I. + +"HE'S got enough, though, to make up for all deficiencies of that +sort in other chaps," abruptly said the stranger, placing a nervous +emphasis upon the word HE. + +"Queequeg," said I, "let's go; this fellow has broken loose from +somewhere; he's talking about something and somebody we don't know." + +"Stop!" cried the stranger. "Ye said true--ye hav'n't seen Old +Thunder yet, have ye?" + +"Who's Old Thunder?" said I, again riveted with the insane +earnestness of his manner. + +"Captain Ahab." + +"What! the captain of our ship, the Pequod?" + +"Aye, among some of us old sailor chaps, he goes by that name. Ye +hav'n't seen him yet, have ye?" + +"No, we hav'n't. He's sick they say, but is getting better, and will +be all right again before long." + +"All right again before long!" laughed the stranger, with a solemnly +derisive sort of laugh. "Look ye; when Captain Ahab is all right, +then this left arm of mine will be all right; not before." + +"What do you know about him?" + +"What did they TELL you about him? Say that!" + +"They didn't tell much of anything about him; only I've heard that +he's a good whale-hunter, and a good captain to his crew." + +"That's true, that's true--yes, both true enough. But you must jump +when he gives an order. Step and growl; growl and go--that's the +word with Captain Ahab. But nothing about that thing that happened +to him off Cape Horn, long ago, when he lay like dead for three days +and nights; nothing about that deadly skrimmage with the Spaniard +afore the altar in Santa?--heard nothing about that, eh? Nothing +about the silver calabash he spat into? And nothing about his losing +his leg last voyage, according to the prophecy. Didn't ye hear a +word about them matters and something more, eh? No, I don't think ye +did; how could ye? Who knows it? Not all Nantucket, I guess. But +hows'ever, mayhap, ye've heard tell about the leg, and how he lost +it; aye, ye have heard of that, I dare say. Oh yes, THAT every one +knows a'most--I mean they know he's only one leg; and that a +parmacetti took the other off." + +"My friend," said I, "what all this gibberish of yours is about, I +don't know, and I don't much care; for it seems to me that you must +be a little damaged in the head. But if you are speaking of Captain +Ahab, of that ship there, the Pequod, then let me tell you, that I +know all about the loss of his leg." + +"ALL about it, eh--sure you do?--all?" + +"Pretty sure." + +With finger pointed and eye levelled at the Pequod, the beggar-like +stranger stood a moment, as if in a troubled reverie; then starting a +little, turned and said:--"Ye've shipped, have ye? Names down on the +papers? Well, well, what's signed, is signed; and what's to be, will +be; and then again, perhaps it won't be, after all. Anyhow, it's +all fixed and arranged a'ready; and some sailors or other must go +with him, I suppose; as well these as any other men, God pity 'em! +Morning to ye, shipmates, morning; the ineffable heavens bless ye; +I'm sorry I stopped ye." + +"Look here, friend," said I, "if you have anything important to tell +us, out with it; but if you are only trying to bamboozle us, you are +mistaken in your game; that's all I have to say." + +"And it's said very well, and I like to hear a chap talk up that way; +you are just the man for him--the likes of ye. Morning to ye, +shipmates, morning! Oh! when ye get there, tell 'em I've concluded +not to make one of 'em." + +"Ah, my dear fellow, you can't fool us that way--you can't fool us. +It is the easiest thing in the world for a man to look as if he had a +great secret in him." + +"Morning to ye, shipmates, morning." + +"Morning it is," said I. "Come along, Queequeg, let's leave this +crazy man. But stop, tell me your name, will you?" + +"Elijah." + +Elijah! thought I, and we walked away, both commenting, after each +other's fashion, upon this ragged old sailor; and agreed that he was +nothing but a humbug, trying to be a bugbear. But we had not gone +perhaps above a hundred yards, when chancing to turn a corner, and +looking back as I did so, who should be seen but Elijah following us, +though at a distance. Somehow, the sight of him struck me so, that I +said nothing to Queequeg of his being behind, but passed on with my +comrade, anxious to see whether the stranger would turn the same +corner that we did. He did; and then it seemed to me that he was +dogging us, but with what intent I could not for the life of me +imagine. This circumstance, coupled with his ambiguous, +half-hinting, half-revealing, shrouded sort of talk, now begat in me +all kinds of vague wonderments and half-apprehensions, and all +connected with the Pequod; and Captain Ahab; and the leg he had lost; +and the Cape Horn fit; and the silver calabash; and what Captain +Peleg had said of him, when I left the ship the day previous; and the +prediction of the squaw Tistig; and the voyage we had bound ourselves +to sail; and a hundred other shadowy things. + +I was resolved to satisfy myself whether this ragged Elijah was +really dogging us or not, and with that intent crossed the way with +Queequeg, and on that side of it retraced our steps. But Elijah +passed on, without seeming to notice us. This relieved me; and once +more, and finally as it seemed to me, I pronounced him in my heart, a +humbug. + + + +CHAPTER 20 + +All Astir. + + +A day or two passed, and there was great activity aboard the Pequod. +Not only were the old sails being mended, but new sails were coming +on board, and bolts of canvas, and coils of rigging; in short, +everything betokened that the ship's preparations were hurrying to a +close. Captain Peleg seldom or never went ashore, but sat in his +wigwam keeping a sharp look-out upon the hands: Bildad did all the +purchasing and providing at the stores; and the men employed in the +hold and on the rigging were working till long after night-fall. + +On the day following Queequeg's signing the articles, word was given +at all the inns where the ship's company were stopping, that their +chests must be on board before night, for there was no telling how +soon the vessel might be sailing. So Queequeg and I got down our +traps, resolving, however, to sleep ashore till the last. But it +seems they always give very long notice in these cases, and the ship +did not sail for several days. But no wonder; there was a good deal +to be done, and there is no telling how many things to be thought of, +before the Pequod was fully equipped. + +Every one knows what a multitude of things--beds, sauce-pans, knives +and forks, shovels and tongs, napkins, nut-crackers, and what not, +are indispensable to the business of housekeeping. Just so with +whaling, which necessitates a three-years' housekeeping upon the wide +ocean, far from all grocers, costermongers, doctors, bakers, and +bankers. And though this also holds true of merchant vessels, yet +not by any means to the same extent as with whalemen. For besides +the great length of the whaling voyage, the numerous articles +peculiar to the prosecution of the fishery, and the impossibility of +replacing them at the remote harbors usually frequented, it must be +remembered, that of all ships, whaling vessels are the most exposed +to accidents of all kinds, and especially to the destruction and loss +of the very things upon which the success of the voyage most depends. +Hence, the spare boats, spare spars, and spare lines and harpoons, +and spare everythings, almost, but a spare Captain and duplicate +ship. + +At the period of our arrival at the Island, the heaviest storage of +the Pequod had been almost completed; comprising her beef, bread, +water, fuel, and iron hoops and staves. But, as before hinted, for +some time there was a continual fetching and carrying on board of +divers odds and ends of things, both large and small. + +Chief among those who did this fetching and carrying was Captain +Bildad's sister, a lean old lady of a most determined and +indefatigable spirit, but withal very kindhearted, who seemed +resolved that, if SHE could help it, nothing should be found wanting +in the Pequod, after once fairly getting to sea. At one time she +would come on board with a jar of pickles for the steward's pantry; +another time with a bunch of quills for the chief mate's desk, where +he kept his log; a third time with a roll of flannel for the small of +some one's rheumatic back. Never did any woman better deserve her +name, which was Charity--Aunt Charity, as everybody called her. And +like a sister of charity did this charitable Aunt Charity bustle +about hither and thither, ready to turn her hand and heart to +anything that promised to yield safety, comfort, and consolation to +all on board a ship in which her beloved brother Bildad was +concerned, and in which she herself owned a score or two of +well-saved dollars. + +But it was startling to see this excellent hearted Quakeress coming +on board, as she did the last day, with a long oil-ladle in one hand, +and a still longer whaling lance in the other. Nor was Bildad himself +nor Captain Peleg at all backward. As for Bildad, he carried about +with him a long list of the articles needed, and at every fresh +arrival, down went his mark opposite that article upon the paper. +Every once in a while Peleg came hobbling out of his whalebone den, +roaring at the men down the hatchways, roaring up to the riggers at +the mast-head, and then concluded by roaring back into his wigwam. + +During these days of preparation, Queequeg and I often visited the +craft, and as often I asked about Captain Ahab, and how he was, and +when he was going to come on board his ship. To these questions they +would answer, that he was getting better and better, and was expected +aboard every day; meantime, the two captains, Peleg and Bildad, could +attend to everything necessary to fit the vessel for the voyage. If +I had been downright honest with myself, I would have seen very +plainly in my heart that I did but half fancy being committed this +way to so long a voyage, without once laying my eyes on the man who +was to be the absolute dictator of it, so soon as the ship sailed out +upon the open sea. But when a man suspects any wrong, it sometimes +happens that if he be already involved in the matter, he insensibly +strives to cover up his suspicions even from himself. And much this +way it was with me. I said nothing, and tried to think nothing. + +At last it was given out that some time next day the ship would +certainly sail. So next morning, Queequeg and I took a very early +start. + + + +CHAPTER 21 + +Going Aboard. + + +It was nearly six o'clock, but only grey imperfect misty dawn, when +we drew nigh the wharf. + +"There are some sailors running ahead there, if I see right," said I +to Queequeg, "it can't be shadows; she's off by sunrise, I guess; +come on!" + +"Avast!" cried a voice, whose owner at the same time coming close +behind us, laid a hand upon both our shoulders, and then insinuating +himself between us, stood stooping forward a little, in the uncertain +twilight, strangely peering from Queequeg to me. It was Elijah. + +"Going aboard?" + +"Hands off, will you," said I. + +"Lookee here," said Queequeg, shaking himself, "go 'way!" + +"Ain't going aboard, then?" + +"Yes, we are," said I, "but what business is that of yours? Do you +know, Mr. Elijah, that I consider you a little impertinent?" + +"No, no, no; I wasn't aware of that," said Elijah, slowly and +wonderingly looking from me to Queequeg, with the most unaccountable +glances. + +"Elijah," said I, "you will oblige my friend and me by withdrawing. +We are going to the Indian and Pacific Oceans, and would prefer not +to be detained." + +"Ye be, be ye? Coming back afore breakfast?" + +"He's cracked, Queequeg," said I, "come on." + +"Holloa!" cried stationary Elijah, hailing us when we had removed a +few paces. + +"Never mind him," said I, "Queequeg, come on." + +But he stole up to us again, and suddenly clapping his hand on my +shoulder, said--"Did ye see anything looking like men going towards +that ship a while ago?" + +Struck by this plain matter-of-fact question, I answered, saying, +"Yes, I thought I did see four or five men; but it was too dim to be +sure." + +"Very dim, very dim," said Elijah. "Morning to ye." + +Once more we quitted him; but once more he came softly after us; and +touching my shoulder again, said, "See if you can find 'em now, will +ye? + +"Find who?" + +"Morning to ye! morning to ye!" he rejoined, again moving off. "Oh! +I was going to warn ye against--but never mind, never mind--it's all +one, all in the family too;--sharp frost this morning, ain't it? +Good-bye to ye. Shan't see ye again very soon, I guess; unless it's +before the Grand Jury." And with these cracked words he finally +departed, leaving me, for the moment, in no small wonderment at his +frantic impudence. + +At last, stepping on board the Pequod, we found everything in +profound quiet, not a soul moving. The cabin entrance was locked +within; the hatches were all on, and lumbered with coils of rigging. +Going forward to the forecastle, we found the slide of the scuttle +open. Seeing a light, we went down, and found only an old rigger +there, wrapped in a tattered pea-jacket. He was thrown at whole +length upon two chests, his face downwards and inclosed in his folded +arms. The profoundest slumber slept upon him. + +"Those sailors we saw, Queequeg, where can they have gone to?" said +I, looking dubiously at the sleeper. But it seemed that, when on the +wharf, Queequeg had not at all noticed what I now alluded to; hence I +would have thought myself to have been optically deceived in that +matter, were it not for Elijah's otherwise inexplicable question. +But I beat the thing down; and again marking the sleeper, jocularly +hinted to Queequeg that perhaps we had best sit up with the body; +telling him to establish himself accordingly. He put his hand upon +the sleeper's rear, as though feeling if it was soft enough; and +then, without more ado, sat quietly down there. + +"Gracious! Queequeg, don't sit there," said I. + +"Oh! perry dood seat," said Queequeg, "my country way; won't hurt +him face." + +"Face!" said I, "call that his face? very benevolent countenance +then; but how hard he breathes, he's heaving himself; get off, +Queequeg, you are heavy, it's grinding the face of the poor. Get +off, Queequeg! Look, he'll twitch you off soon. I wonder he don't +wake." + +Queequeg removed himself to just beyond the head of the sleeper, and +lighted his tomahawk pipe. I sat at the feet. We kept the pipe +passing over the sleeper, from one to the other. Meanwhile, upon +questioning him in his broken fashion, Queequeg gave me to understand +that, in his land, owing to the absence of settees and sofas of all +sorts, the king, chiefs, and great people generally, were in the +custom of fattening some of the lower orders for ottomans; and to +furnish a house comfortably in that respect, you had only to buy up +eight or ten lazy fellows, and lay them round in the piers and +alcoves. Besides, it was very convenient on an excursion; much +better than those garden-chairs which are convertible into +walking-sticks; upon occasion, a chief calling his attendant, and +desiring him to make a settee of himself under a spreading tree, +perhaps in some damp marshy place. + +While narrating these things, every time Queequeg received the +tomahawk from me, he flourished the hatchet-side of it over the +sleeper's head. + +"What's that for, Queequeg?" + +"Perry easy, kill-e; oh! perry easy! + +He was going on with some wild reminiscences about his tomahawk-pipe, +which, it seemed, had in its two uses both brained his foes and +soothed his soul, when we were directly attracted to the sleeping +rigger. The strong vapour now completely filling the contracted hole, +it began to tell upon him. He breathed with a sort of muffledness; +then seemed troubled in the nose; then revolved over once or twice; +then sat up and rubbed his eyes. + +"Holloa!" he breathed at last, "who be ye smokers?" + +"Shipped men," answered I, "when does she sail?" + +"Aye, aye, ye are going in her, be ye? She sails to-day. The +Captain came aboard last night." + +"What Captain?--Ahab?" + +"Who but him indeed?" + +I was going to ask him some further questions concerning Ahab, when +we heard a noise on deck. + +"Holloa! Starbuck's astir," said the rigger. "He's a lively chief +mate, that; good man, and a pious; but all alive now, I must turn +to." And so saying he went on deck, and we followed. + +It was now clear sunrise. Soon the crew came on board in twos and +threes; the riggers bestirred themselves; the mates were actively +engaged; and several of the shore people were busy in bringing +various last things on board. Meanwhile Captain Ahab remained +invisibly enshrined within his cabin. + + + +CHAPTER 22 + +Merry Christmas. + + +At length, towards noon, upon the final dismissal of the ship's +riggers, and after the Pequod had been hauled out from the wharf, and +after the ever-thoughtful Charity had come off in a whale-boat, with +her last gift--a night-cap for Stubb, the second mate, her +brother-in-law, and a spare Bible for the steward--after all this, +the two Captains, Peleg and Bildad, issued from the cabin, and +turning to the chief mate, Peleg said: + +"Now, Mr. Starbuck, are you sure everything is right? Captain Ahab +is all ready--just spoke to him--nothing more to be got from shore, +eh? Well, call all hands, then. Muster 'em aft here--blast 'em!" + +"No need of profane words, however great the hurry, Peleg," said +Bildad, "but away with thee, friend Starbuck, and do our bidding." + +How now! Here upon the very point of starting for the voyage, +Captain Peleg and Captain Bildad were going it with a high hand on +the quarter-deck, just as if they were to be joint-commanders at sea, +as well as to all appearances in port. And, as for Captain Ahab, no +sign of him was yet to be seen; only, they said he was in the cabin. +But then, the idea was, that his presence was by no means necessary +in getting the ship under weigh, and steering her well out to sea. +Indeed, as that was not at all his proper business, but the pilot's; +and as he was not yet completely recovered--so they said--therefore, +Captain Ahab stayed below. And all this seemed natural enough; +especially as in the merchant service many captains never show +themselves on deck for a considerable time after heaving up the +anchor, but remain over the cabin table, having a farewell +merry-making with their shore friends, before they quit the ship for +good with the pilot. + +But there was not much chance to think over the matter, for Captain +Peleg was now all alive. He seemed to do most of the talking and +commanding, and not Bildad. + +"Aft here, ye sons of bachelors," he cried, as the sailors lingered +at the main-mast. "Mr. Starbuck, drive'em aft." + +"Strike the tent there!"--was the next order. As I hinted before, +this whalebone marquee was never pitched except in port; and on board +the Pequod, for thirty years, the order to strike the tent was well +known to be the next thing to heaving up the anchor. + +"Man the capstan! Blood and thunder!--jump!"--was the next command, +and the crew sprang for the handspikes. + +Now in getting under weigh, the station generally occupied by the +pilot is the forward part of the ship. And here Bildad, who, with +Peleg, be it known, in addition to his other officers, was one of the +licensed pilots of the port--he being suspected to have got himself +made a pilot in order to save the Nantucket pilot-fee to all the +ships he was concerned in, for he never piloted any other +craft--Bildad, I say, might now be seen actively engaged in looking +over the bows for the approaching anchor, and at intervals singing +what seemed a dismal stave of psalmody, to cheer the hands at the +windlass, who roared forth some sort of a chorus about the girls in +Booble Alley, with hearty good will. Nevertheless, not three days +previous, Bildad had told them that no profane songs would be allowed +on board the Pequod, particularly in getting under weigh; and +Charity, his sister, had placed a small choice copy of Watts in each +seaman's berth. + +Meantime, overseeing the other part of the ship, Captain Peleg ripped +and swore astern in the most frightful manner. I almost thought he +would sink the ship before the anchor could be got up; involuntarily +I paused on my handspike, and told Queequeg to do the same, thinking +of the perils we both ran, in starting on the voyage with such a +devil for a pilot. I was comforting myself, however, with the +thought that in pious Bildad might be found some salvation, spite of +his seven hundred and seventy-seventh lay; when I felt a sudden sharp +poke in my rear, and turning round, was horrified at the apparition +of Captain Peleg in the act of withdrawing his leg from my immediate +vicinity. That was my first kick. + +"Is that the way they heave in the marchant service?" he roared. +"Spring, thou sheep-head; spring, and break thy backbone! Why don't +ye spring, I say, all of ye--spring! Quohog! spring, thou chap with +the red whiskers; spring there, Scotch-cap; spring, thou green +pants. Spring, I say, all of ye, and spring your eyes out!" And so +saying, he moved along the windlass, here and there using his leg +very freely, while imperturbable Bildad kept leading off with his +psalmody. Thinks I, Captain Peleg must have been drinking something +to-day. + +At last the anchor was up, the sails were set, and off we glided. It +was a short, cold Christmas; and as the short northern day merged +into night, we found ourselves almost broad upon the wintry ocean, +whose freezing spray cased us in ice, as in polished armor. The long +rows of teeth on the bulwarks glistened in the moonlight; and like +the white ivory tusks of some huge elephant, vast curving icicles +depended from the bows. + +Lank Bildad, as pilot, headed the first watch, and ever and anon, as +the old craft deep dived into the green seas, and sent the shivering +frost all over her, and the winds howled, and the cordage rang, his +steady notes were heard,-- + +"Sweet fields beyond the swelling flood, +Stand dressed in living green. +So to the Jews old Canaan stood, +While Jordan rolled between." + + +Never did those sweet words sound more sweetly to me than then. They +were full of hope and fruition. Spite of this frigid winter night in +the boisterous Atlantic, spite of my wet feet and wetter jacket, +there was yet, it then seemed to me, many a pleasant haven in store; +and meads and glades so eternally vernal, that the grass shot up by +the spring, untrodden, unwilted, remains at midsummer. + +At last we gained such an offing, that the two pilots were needed no +longer. The stout sail-boat that had accompanied us began ranging +alongside. + +It was curious and not unpleasing, how Peleg and Bildad were affected +at this juncture, especially Captain Bildad. For loath to depart, +yet; very loath to leave, for good, a ship bound on so long and +perilous a voyage--beyond both stormy Capes; a ship in which some +thousands of his hard earned dollars were invested; a ship, in which +an old shipmate sailed as captain; a man almost as old as he, once +more starting to encounter all the terrors of the pitiless jaw; loath +to say good-bye to a thing so every way brimful of every interest to +him,--poor old Bildad lingered long; paced the deck with anxious +strides; ran down into the cabin to speak another farewell word +there; again came on deck, and looked to windward; looked towards the +wide and endless waters, only bounded by the far-off unseen Eastern +Continents; looked towards the land; looked aloft; looked right and +left; looked everywhere and nowhere; and at last, mechanically +coiling a rope upon its pin, convulsively grasped stout Peleg by the +hand, and holding up a lantern, for a moment stood gazing heroically +in his face, as much as to say, "Nevertheless, friend Peleg, I can +stand it; yes, I can." + +As for Peleg himself, he took it more like a philosopher; but for all +his philosophy, there was a tear twinkling in his eye, when the +lantern came too near. And he, too, did not a little run from cabin +to deck--now a word below, and now a word with Starbuck, the chief +mate. + +But, at last, he turned to his comrade, with a final sort of look +about him,--"Captain Bildad--come, old shipmate, we must go. Back +the main-yard there! Boat ahoy! Stand by to come close alongside, +now! Careful, careful!--come, Bildad, boy--say your last. Luck to +ye, Starbuck--luck to ye, Mr. Stubb--luck to ye, Mr. Flask--good-bye +and good luck to ye all--and this day three years I'll have a hot +supper smoking for ye in old Nantucket. Hurrah and away!" + +"God bless ye, and have ye in His holy keeping, men," murmured old +Bildad, almost incoherently. "I hope ye'll have fine weather now, so +that Captain Ahab may soon be moving among ye--a pleasant sun is all +he needs, and ye'll have plenty of them in the tropic voyage ye go. +Be careful in the hunt, ye mates. Don't stave the boats needlessly, +ye harpooneers; good white cedar plank is raised full three per cent. +within the year. Don't forget your prayers, either. Mr. Starbuck, +mind that cooper don't waste the spare staves. Oh! the sail-needles +are in the green locker! Don't whale it too much a' Lord's days, +men; but don't miss a fair chance either, that's rejecting Heaven's +good gifts. Have an eye to the molasses tierce, Mr. Stubb; it was a +little leaky, I thought. If ye touch at the islands, Mr. Flask, +beware of fornication. Good-bye, good-bye! Don't keep that cheese +too long down in the hold, Mr. Starbuck; it'll spoil. Be careful +with the butter--twenty cents the pound it was, and mind ye, if--" + +"Come, come, Captain Bildad; stop palavering,--away!" and with that, +Peleg hurried him over the side, and both dropt into the boat. + +Ship and boat diverged; the cold, damp night breeze blew between; a +screaming gull flew overhead; the two hulls wildly rolled; we gave +three heavy-hearted cheers, and blindly plunged like fate into the +lone Atlantic. + + + +CHAPTER 23 + +The Lee Shore. + + +Some chapters back, one Bulkington was spoken of, a tall, newlanded +mariner, encountered in New Bedford at the inn. + +When on that shivering winter's night, the Pequod thrust her +vindictive bows into the cold malicious waves, who should I see +standing at her helm but Bulkington! I looked with sympathetic awe +and fearfulness upon the man, who in mid-winter just landed from a +four years' dangerous voyage, could so unrestingly push off again for +still another tempestuous term. The land seemed scorching to his +feet. Wonderfullest things are ever the unmentionable; deep memories +yield no epitaphs; this six-inch chapter is the stoneless grave of +Bulkington. Let me only say that it fared with him as with the +storm-tossed ship, that miserably drives along the leeward land. The +port would fain give succor; the port is pitiful; in the port is +safety, comfort, hearthstone, supper, warm blankets, friends, all +that's kind to our mortalities. But in that gale, the port, the +land, is that ship's direst jeopardy; she must fly all hospitality; +one touch of land, though it but graze the keel, would make her +shudder through and through. With all her might she crowds all sail +off shore; in so doing, fights 'gainst the very winds that fain would +blow her homeward; seeks all the lashed sea's landlessness again; for +refuge's sake forlornly rushing into peril; her only friend her +bitterest foe! + +Know ye now, Bulkington? Glimpses do ye seem to see of that mortally +intolerable truth; that all deep, earnest thinking is but the +intrepid effort of the soul to keep the open independence of her sea; +while the wildest winds of heaven and earth conspire to cast her on +the treacherous, slavish shore? + +But as in landlessness alone resides highest truth, shoreless, +indefinite as God--so, better is it to perish in that howling +infinite, than be ingloriously dashed upon the lee, even if that were +safety! For worm-like, then, oh! who would craven crawl to land! +Terrors of the terrible! is all this agony so vain? Take heart, take +heart, O Bulkington! Bear thee grimly, demigod! Up from the spray +of thy ocean-perishing--straight up, leaps thy apotheosis! + + + +CHAPTER 24 + +The Advocate. + + +As Queequeg and I are now fairly embarked in this business of +whaling; and as this business of whaling has somehow come to be +regarded among landsmen as a rather unpoetical and disreputable +pursuit; therefore, I am all anxiety to convince ye, ye landsmen, of +the injustice hereby done to us hunters of whales. + +In the first place, it may be deemed almost superfluous to establish +the fact, that among people at large, the business of whaling is not +accounted on a level with what are called the liberal professions. +If a stranger were introduced into any miscellaneous metropolitan +society, it would but slightly advance the general opinion of his +merits, were he presented to the company as a harpooneer, say; and if +in emulation of the naval officers he should append the initials +S.W.F. (Sperm Whale Fishery) to his visiting card, such a procedure +would be deemed pre-eminently presuming and ridiculous. + +Doubtless one leading reason why the world declines honouring us +whalemen, is this: they think that, at best, our vocation amounts to +a butchering sort of business; and that when actively engaged +therein, we are surrounded by all manner of defilements. Butchers we +are, that is true. But butchers, also, and butchers of the bloodiest +badge have been all Martial Commanders whom the world invariably +delights to honour. And as for the matter of the alleged +uncleanliness of our business, ye shall soon be initiated into +certain facts hitherto pretty generally unknown, and which, upon the +whole, will triumphantly plant the sperm whale-ship at least among +the cleanliest things of this tidy earth. But even granting the +charge in question to be true; what disordered slippery decks of a +whale-ship are comparable to the unspeakable carrion of those +battle-fields from which so many soldiers return to drink in all +ladies' plaudits? And if the idea of peril so much enhances the +popular conceit of the soldier's profession; let me assure ye that +many a veteran who has freely marched up to a battery, would quickly +recoil at the apparition of the sperm whale's vast tail, fanning into +eddies the air over his head. For what are the comprehensible +terrors of man compared with the interlinked terrors and wonders of +God! + +But, though the world scouts at us whale hunters, yet does it +unwittingly pay us the profoundest homage; yea, an all-abounding +adoration! for almost all the tapers, lamps, and candles that burn +round the globe, burn, as before so many shrines, to our glory! + +But look at this matter in other lights; weigh it in all sorts of +scales; see what we whalemen are, and have been. + +Why did the Dutch in De Witt's time have admirals of their whaling +fleets? Why did Louis XVI. of France, at his own personal expense, +fit out whaling ships from Dunkirk, and politely invite to that town +some score or two of families from our own island of Nantucket? Why +did Britain between the years 1750 and 1788 pay to her whalemen in +bounties upwards of L1,000,000? And lastly, how comes it that we +whalemen of America now outnumber all the rest of the banded whalemen +in the world; sail a navy of upwards of seven hundred vessels; manned +by eighteen thousand men; yearly consuming 4,000,000 of dollars; the +ships worth, at the time of sailing, $20,000,000! and every year +importing into our harbors a well reaped harvest of $7,000,000. How +comes all this, if there be not something puissant in whaling? + +But this is not the half; look again. + +I freely assert, that the cosmopolite philosopher cannot, for his +life, point out one single peaceful influence, which within the last +sixty years has operated more potentially upon the whole broad world, +taken in one aggregate, than the high and mighty business of whaling. +One way and another, it has begotten events so remarkable in +themselves, and so continuously momentous in their sequential issues, +that whaling may well be regarded as that Egyptian mother, who bore +offspring themselves pregnant from her womb. It would be a hopeless, +endless task to catalogue all these things. Let a handful suffice. +For many years past the whale-ship has been the pioneer in ferreting +out the remotest and least known parts of the earth. She has +explored seas and archipelagoes which had no chart, where no Cook or +Vancouver had ever sailed. If American and European men-of-war +now peacefully ride in once savage harbors, let them fire salutes to +the honour and glory of the whale-ship, which originally showed them +the way, and first interpreted between them and the savages. They +may celebrate as they will the heroes of Exploring Expeditions, your +Cooks, your Krusensterns; but I say that scores of anonymous +Captains have sailed out of Nantucket, that were as great, and +greater than your Cook and your Krusenstern. For in their +succourless empty-handedness, they, in the heathenish sharked waters, +and by the beaches of unrecorded, javelin islands, battled with +virgin wonders and terrors that Cook with all his marines and +muskets would not willingly have dared. All that is made such a +flourish of in the old South Sea Voyages, those things were but the +life-time commonplaces of our heroic Nantucketers. Often, +adventures which Vancouver dedicates three chapters to, these men +accounted unworthy of being set down in the ship's common log. Ah, +the world! Oh, the world! + +Until the whale fishery rounded Cape Horn, no commerce but colonial, +scarcely any intercourse but colonial, was carried on between Europe +and the long line of the opulent Spanish provinces on the Pacific +coast. It was the whaleman who first broke through the jealous +policy of the Spanish crown, touching those colonies; and, if space +permitted, it might be distinctly shown how from those whalemen at +last eventuated the liberation of Peru, Chili, and Bolivia from the +yoke of Old Spain, and the establishment of the eternal democracy in +those parts. + +That great America on the other side of the sphere, Australia, was +given to the enlightened world by the whaleman. After its first +blunder-born discovery by a Dutchman, all other ships long shunned +those shores as pestiferously barbarous; but the whale-ship touched +there. The whale-ship is the true mother of that now mighty colony. +Moreover, in the infancy of the first Australian settlement, the +emigrants were several times saved from starvation by the benevolent +biscuit of the whale-ship luckily dropping an anchor in their waters. +The uncounted isles of all Polynesia confess the same truth, and do +commercial homage to the whale-ship, that cleared the way for the +missionary and the merchant, and in many cases carried the primitive +missionaries to their first destinations. If that double-bolted +land, Japan, is ever to become hospitable, it is the whale-ship alone +to whom the credit will be due; for already she is on the threshold. + +But if, in the face of all this, you still declare that whaling has +no aesthetically noble associations connected with it, then am I +ready to shiver fifty lances with you there, and unhorse you with a +split helmet every time. + +The whale has no famous author, and whaling no famous chronicler, you +will say. + +THE WHALE NO FAMOUS AUTHOR, AND WHALING NO FAMOUS CHRONICLER? Who +wrote the first account of our Leviathan? Who but mighty Job! And +who composed the first narrative of a whaling-voyage? Who, but no +less a prince than Alfred the Great, who, with his own royal pen, +took down the words from Other, the Norwegian whale-hunter of those +times! And who pronounced our glowing eulogy in Parliament? Who, +but Edmund Burke! + +True enough, but then whalemen themselves are poor devils; they have +no good blood in their veins. + +NO GOOD BLOOD IN THEIR VEINS? They have something better than royal +blood there. The grandmother of Benjamin Franklin was Mary Morrel; +afterwards, by marriage, Mary Folger, one of the old settlers of +Nantucket, and the ancestress to a long line of Folgers and +harpooneers--all kith and kin to noble Benjamin--this day darting the +barbed iron from one side of the world to the other. + +Good again; but then all confess that somehow whaling is not +respectable. + +WHALING NOT RESPECTABLE? Whaling is imperial! By old English +statutory law, the whale is declared "a royal fish."* + +Oh, that's only nominal! The whale himself has never figured in any +grand imposing way. + +THE WHALE NEVER FIGURED IN ANY GRAND IMPOSING WAY? In one of the +mighty triumphs given to a Roman general upon his entering the +world's capital, the bones of a whale, brought all the way from the +Syrian coast, were the most conspicuous object in the cymballed +procession.* + + +*See subsequent chapters for something more on this head. + + +Grant it, since you cite it; but, say what you will, there is no real +dignity in whaling. + +NO DIGNITY IN WHALING? The dignity of our calling the very heavens +attest. Cetus is a constellation in the South! No more! Drive +down your hat in presence of the Czar, and take it off to Queequeg! +No more! I know a man that, in his lifetime, has taken three hundred +and fifty whales. I account that man more honourable than that great +captain of antiquity who boasted of taking as many walled towns. + +And, as for me, if, by any possibility, there be any as yet +undiscovered prime thing in me; if I shall ever deserve any real +repute in that small but high hushed world which I might not be +unreasonably ambitious of; if hereafter I shall do anything that, upon +the whole, a man might rather have done than to have left undone; if, +at my death, my executors, or more properly my creditors, find any +precious MSS. in my desk, then here I prospectively ascribe all the +honour and the glory to whaling; for a whale-ship was my Yale College +and my Harvard. + + + +CHAPTER 25 + +Postscript. + + +In behalf of the dignity of whaling, I would fain advance naught but +substantiated facts. But after embattling his facts, an advocate who +should wholly suppress a not unreasonable surmise, which might tell +eloquently upon his cause--such an advocate, would he not be +blameworthy? + +It is well known that at the coronation of kings and queens, even +modern ones, a certain curious process of seasoning them for their +functions is gone through. There is a saltcellar of state, so +called, and there may be a castor of state. How they use the salt, +precisely--who knows? Certain I am, however, that a king's head is +solemnly oiled at his coronation, even as a head of salad. Can it +be, though, that they anoint it with a view of making its interior +run well, as they anoint machinery? Much might be ruminated here, +concerning the essential dignity of this regal process, because in +common life we esteem but meanly and contemptibly a fellow who +anoints his hair, and palpably smells of that anointing. In truth, a +mature man who uses hair-oil, unless medicinally, that man has +probably got a quoggy spot in him somewhere. As a general rule, he +can't amount to much in his totality. + +But the only thing to be considered here, is this--what kind of oil +is used at coronations? Certainly it cannot be olive oil, nor +macassar oil, nor castor oil, nor bear's oil, nor train oil, nor +cod-liver oil. What then can it possibly be, but sperm oil in +its unmanufactured, unpolluted state, the sweetest of all oils? + +Think of that, ye loyal Britons! we whalemen supply your kings and +queens with coronation stuff! + + + +CHAPTER 26 + +Knights and Squires. + + +The chief mate of the Pequod was Starbuck, a native of Nantucket, and +a Quaker by descent. He was a long, earnest man, and though born on +an icy coast, seemed well adapted to endure hot latitudes, his flesh +being hard as twice-baked biscuit. Transported to the Indies, his +live blood would not spoil like bottled ale. He must have been born +in some time of general drought and famine, or upon one of those fast +days for which his state is famous. Only some thirty arid summers +had he seen; those summers had dried up all his physical +superfluousness. But this, his thinness, so to speak, seemed no more +the token of wasting anxieties and cares, than it seemed the +indication of any bodily blight. It was merely the condensation of +the man. He was by no means ill-looking; quite the contrary. His +pure tight skin was an excellent fit; and closely wrapped up in it, +and embalmed with inner health and strength, like a revivified +Egyptian, this Starbuck seemed prepared to endure for long ages to +come, and to endure always, as now; for be it Polar snow or torrid +sun, like a patent chronometer, his interior vitality was warranted +to do well in all climates. Looking into his eyes, you seemed to +see there the yet lingering images of those thousand-fold perils he +had calmly confronted through life. A staid, steadfast man, whose +life for the most part was a telling pantomime of action, and not a +tame chapter of sounds. Yet, for all his hardy sobriety and +fortitude, there were certain qualities in him which at times +affected, and in some cases seemed well nigh to overbalance all the +rest. Uncommonly conscientious for a seaman, and endued with a deep +natural reverence, the wild watery loneliness of his life did +therefore strongly incline him to superstition; but to that sort of +superstition, which in some organizations seems rather to spring, +somehow, from intelligence than from ignorance. Outward portents and +inward presentiments were his. And if at times these things bent the +welded iron of his soul, much more did his far-away domestic memories +of his young Cape wife and child, tend to bend him still more from +the original ruggedness of his nature, and open him still further to +those latent influences which, in some honest-hearted men, restrain +the gush of dare-devil daring, so often evinced by others in the more +perilous vicissitudes of the fishery. "I will have no man in my +boat," said Starbuck, "who is not afraid of a whale." By this, he +seemed to mean, not only that the most reliable and useful courage +was that which arises from the fair estimation of the encountered +peril, but that an utterly fearless man is a far more dangerous +comrade than a coward. + +"Aye, aye," said Stubb, the second mate, "Starbuck, there, is as +careful a man as you'll find anywhere in this fishery." But we shall +ere long see what that word "careful" precisely means when used by a +man like Stubb, or almost any other whale hunter. + +Starbuck was no crusader after perils; in him courage was not a +sentiment; but a thing simply useful to him, and always at hand upon +all mortally practical occasions. Besides, he thought, perhaps, that +in this business of whaling, courage was one of the great staple +outfits of the ship, like her beef and her bread, and not to be +foolishly wasted. Wherefore he had no fancy for lowering for whales +after sun-down; nor for persisting in fighting a fish that too much +persisted in fighting him. For, thought Starbuck, I am here in this +critical ocean to kill whales for my living, and not to be killed by +them for theirs; and that hundreds of men had been so killed Starbuck +well knew. What doom was his own father's? Where, in the bottomless +deeps, could he find the torn limbs of his brother? + +With memories like these in him, and, moreover, given to a certain +superstitiousness, as has been said; the courage of this Starbuck +which could, nevertheless, still flourish, must indeed have been +extreme. But it was not in reasonable nature that a man so +organized, and with such terrible experiences and remembrances as he +had; it was not in nature that these things should fail in latently +engendering an element in him, which, under suitable circumstances, +would break out from its confinement, and burn all his courage up. +And brave as he might be, it was that sort of bravery chiefly, +visible in some intrepid men, which, while generally abiding firm in +the conflict with seas, or winds, or whales, or any of the ordinary +irrational horrors of the world, yet cannot withstand those more +terrific, because more spiritual terrors, which sometimes menace you +from the concentrating brow of an enraged and mighty man. + +But were the coming narrative to reveal in any instance, the complete +abasement of poor Starbuck's fortitude, scarce might I have the heart +to write it; for it is a thing most sorrowful, nay shocking, to +expose the fall of valour in the soul. Men may seem detestable as +joint stock-companies and nations; knaves, fools, and murderers there +may be; men may have mean and meagre faces; but man, in the ideal, +is so noble and so sparkling, such a grand and glowing creature, that +over any ignominious blemish in him all his fellows should run to +throw their costliest robes. That immaculate manliness we feel +within ourselves, so far within us, that it remains intact though all +the outer character seem gone; bleeds with keenest anguish at the +undraped spectacle of a valor-ruined man. Nor can piety itself, at +such a shameful sight, completely stifle her upbraidings against the +permitting stars. But this august dignity I treat of, is not the +dignity of kings and robes, but that abounding dignity which has no +robed investiture. Thou shalt see it shining in the arm that wields +a pick or drives a spike; that democratic dignity which, on all +hands, radiates without end from God; Himself! The great God +absolute! The centre and circumference of all democracy! His +omnipresence, our divine equality! + +If, then, to meanest mariners, and renegades and castaways, I shall +hereafter ascribe high qualities, though dark; weave round them +tragic graces; if even the most mournful, perchance the most abased, +among them all, shall at times lift himself to the exalted mounts; if +I shall touch that workman's arm with some ethereal light; if I shall +spread a rainbow over his disastrous set of sun; then against all +mortal critics bear me out in it, thou Just Spirit of Equality, +which hast spread one royal mantle of humanity over all my kind! +Bear me out in it, thou great democratic God! who didst not refuse to +the swart convict, Bunyan, the pale, poetic pearl; Thou who didst +clothe with doubly hammered leaves of finest gold, the stumped and +paupered arm of old Cervantes; Thou who didst pick up Andrew Jackson +from the pebbles; who didst hurl him upon a war-horse; who didst +thunder him higher than a throne! Thou who, in all Thy mighty, +earthly marchings, ever cullest Thy selectest champions from the +kingly commons; bear me out in it, O God! + + + +CHAPTER 27 + +Knights and Squires. + + +Stubb was the second mate. He was a native of Cape Cod; and hence, +according to local usage, was called a Cape-Cod-man. A +happy-go-lucky; neither craven nor valiant; taking perils as they +came with an indifferent air; and while engaged in the most imminent +crisis of the chase, toiling away, calm and collected as a journeyman +joiner engaged for the year. Good-humored, easy, and careless, he +presided over his whale-boat as if the most deadly encounter were but +a dinner, and his crew all invited guests. He was as particular +about the comfortable arrangement of his part of the boat, as an +old stage-driver is about the snugness of his box. When close to the +whale, in the very death-lock of the fight, he handled his unpitying +lance coolly and off-handedly, as a whistling tinker his hammer. He +would hum over his old rigadig tunes while flank and flank with the +most exasperated monster. Long usage had, for this Stubb, converted +the jaws of death into an easy chair. What he thought of death +itself, there is no telling. Whether he ever thought of it at all, +might be a question; but, if he ever did chance to cast his mind that +way after a comfortable dinner, no doubt, like a good sailor, he took +it to be a sort of call of the watch to tumble aloft, and bestir +themselves there, about something which he would find out when he +obeyed the order, and not sooner. + +What, perhaps, with other things, made Stubb such an easy-going, +unfearing man, so cheerily trudging off with the burden of life in a +world full of grave pedlars, all bowed to the ground with their +packs; what helped to bring about that almost impious good-humor of +his; that thing must have been his pipe. For, like his nose, his +short, black little pipe was one of the regular features of his face. +You would almost as soon have expected him to turn out of his bunk +without his nose as without his pipe. He kept a whole row of pipes +there ready loaded, stuck in a rack, within easy reach of his hand; +and, whenever he turned in, he smoked them all out in succession, +lighting one from the other to the end of the chapter; then loading +them again to be in readiness anew. For, when Stubb dressed, instead +of first putting his legs into his trowsers, he put his pipe into his +mouth. + +I say this continual smoking must have been one cause, at least, of +his peculiar disposition; for every one knows that this earthly air, +whether ashore or afloat, is terribly infected with the nameless +miseries of the numberless mortals who have died exhaling it; and as +in time of the cholera, some people go about with a camphorated +handkerchief to their mouths; so, likewise, against all mortal +tribulations, Stubb's tobacco smoke might have operated as a sort of +disinfecting agent. + +The third mate was Flask, a native of Tisbury, in Martha's Vineyard. +A short, stout, ruddy young fellow, very pugnacious concerning +whales, who somehow seemed to think that the great leviathans had +personally and hereditarily affronted him; and therefore it was a +sort of point of honour with him, to destroy them whenever +encountered. So utterly lost was he to all sense of reverence for +the many marvels of their majestic bulk and mystic ways; and so dead +to anything like an apprehension of any possible danger from +encountering them; that in his poor opinion, the wondrous whale was +but a species of magnified mouse, or at least water-rat, requiring +only a little circumvention and some small application of time and +trouble in order to kill and boil. This ignorant, unconscious +fearlessness of his made him a little waggish in the matter of +whales; he followed these fish for the fun of it; and a three years' +voyage round Cape Horn was only a jolly joke that lasted that length +of time. As a carpenter's nails are divided into wrought nails and +cut nails; so mankind may be similarly divided. Little Flask was one +of the wrought ones; made to clinch tight and last long. They called +him King-Post on board of the Pequod; because, in form, he could be +well likened to the short, square timber known by that name in Arctic +whalers; and which by the means of many radiating side timbers +inserted into it, serves to brace the ship against the icy +concussions of those battering seas. + +Now these three mates--Starbuck, Stubb, and Flask, were momentous +men. They it was who by universal prescription commanded three of the +Pequod's boats as headsmen. In that grand order of battle in which +Captain Ahab would probably marshal his forces to descend on the +whales, these three headsmen were as captains of companies. Or, +being armed with their long keen whaling spears, they were as a +picked trio of lancers; even as the harpooneers were flingers of +javelins. + +And since in this famous fishery, each mate or headsman, like a +Gothic Knight of old, is always accompanied by his boat-steerer or +harpooneer, who in certain conjunctures provides him with a fresh +lance, when the former one has been badly twisted, or elbowed in the +assault; and moreover, as there generally subsists between the two, a +close intimacy and friendliness; it is therefore but meet, that in +this place we set down who the Pequod's harpooneers were, and to what +headsman each of them belonged. + +First of all was Queequeg, whom Starbuck, the chief mate, had +selected for his squire. But Queequeg is already known. + +Next was Tashtego, an unmixed Indian from Gay Head, the most westerly +promontory of Martha's Vineyard, where there still exists the last +remnant of a village of red men, which has long supplied the +neighboring island of Nantucket with many of her most daring +harpooneers. In the fishery, they usually go by the generic name of +Gay-Headers. Tashtego's long, lean, sable hair, his high cheek +bones, and black rounding eyes--for an Indian, Oriental in their +largeness, but Antarctic in their glittering expression--all this +sufficiently proclaimed him an inheritor of the unvitiated blood of +those proud warrior hunters, who, in quest of the great New England +moose, had scoured, bow in hand, the aboriginal forests of the main. +But no longer snuffing in the trail of the wild beasts of the +woodland, Tashtego now hunted in the wake of the great whales of the +sea; the unerring harpoon of the son fitly replacing the infallible +arrow of the sires. To look at the tawny brawn of his lithe snaky +limbs, you would almost have credited the superstitions of some of +the earlier Puritans, and half-believed this wild Indian to be a son +of the Prince of the Powers of the Air. Tashtego was Stubb the +second mate's squire. + +Third among the harpooneers was Daggoo, a gigantic, coal-black +negro-savage, with a lion-like tread--an Ahasuerus to behold. +Suspended from his ears were two golden hoops, so large that the +sailors called them ring-bolts, and would talk of securing the +top-sail halyards to them. In his youth Daggoo had voluntarily +shipped on board of a whaler, lying in a lonely bay on his native +coast. And never having been anywhere in the world but in Africa, +Nantucket, and the pagan harbors most frequented by whalemen; and +having now led for many years the bold life of the fishery in the +ships of owners uncommonly heedful of what manner of men they +shipped; Daggoo retained all his barbaric virtues, and erect as a +giraffe, moved about the decks in all the pomp of six feet five in +his socks. There was a corporeal humility in looking up at him; and +a white man standing before him seemed a white flag come to beg truce +of a fortress. Curious to tell, this imperial negro, Ahasuerus +Daggoo, was the Squire of little Flask, who looked like a chess-man +beside him. As for the residue of the Pequod's company, be it said, +that at the present day not one in two of the many thousand men +before the mast employed in the American whale fishery, are Americans +born, though pretty nearly all the officers are. Herein it is the +same with the American whale fishery as with the American army and +military and merchant navies, and the engineering forces employed in +the construction of the American Canals and Railroads. The same, I +say, because in all these cases the native American liberally +provides the brains, the rest of the world as generously supplying +the muscles. No small number of these whaling seamen belong to the +Azores, where the outward bound Nantucket whalers frequently touch to +augment their crews from the hardy peasants of those rocky shores. +In like manner, the Greenland whalers sailing out of Hull or London, +put in at the Shetland Islands, to receive the full complement of +their crew. Upon the passage homewards, they drop them there again. +How it is, there is no telling, but Islanders seem to make the best +whalemen. They were nearly all Islanders in the Pequod, ISOLATOES +too, I call such, not acknowledging the common continent of men, but +each ISOLATO living on a separate continent of his own. Yet now, +federated along one keel, what a set these Isolatoes were! An +Anacharsis Clootz deputation from all the isles of the sea, and all +the ends of the earth, accompanying Old Ahab in the Pequod to lay the +world's grievances before that bar from which not very many of them +ever come back. Black Little Pip--he never did--oh, no! he went +before. Poor Alabama boy! On the grim Pequod's forecastle, ye shall +ere long see him, beating his tambourine; prelusive of the eternal +time, when sent for, to the great quarter-deck on high, he was bid +strike in with angels, and beat his tambourine in glory; called a +coward here, hailed a hero there! + + + +CHAPTER 28 + +Ahab. + + +For several days after leaving Nantucket, nothing above hatches was +seen of Captain Ahab. The mates regularly relieved each other at the +watches, and for aught that could be seen to the contrary, they +seemed to be the only commanders of the ship; only they sometimes +issued from the cabin with orders so sudden and peremptory, that +after all it was plain they but commanded vicariously. Yes, their +supreme lord and dictator was there, though hitherto unseen by any +eyes not permitted to penetrate into the now sacred retreat of the +cabin. + +Every time I ascended to the deck from my watches below, I instantly +gazed aft to mark if any strange face were visible; for my first +vague disquietude touching the unknown captain, now in the seclusion +of the sea, became almost a perturbation. This was strangely +heightened at times by the ragged Elijah's diabolical incoherences +uninvitedly recurring to me, with a subtle energy I could not have +before conceived of. But poorly could I withstand them, much as in +other moods I was almost ready to smile at the solemn whimsicalities +of that outlandish prophet of the wharves. But whatever it was of +apprehensiveness or uneasiness--to call it so--which I felt, yet +whenever I came to look about me in the ship, it seemed against all +warrantry to cherish such emotions. For though the harpooneers, with +the great body of the crew, were a far more barbaric, heathenish, and +motley set than any of the tame merchant-ship companies which my +previous experiences had made me acquainted with, still I ascribed +this--and rightly ascribed it--to the fierce uniqueness of the very +nature of that wild Scandinavian vocation in which I had so +abandonedly embarked. But it was especially the aspect of the three +chief officers of the ship, the mates, which was most forcibly +calculated to allay these colourless misgivings, and induce confidence +and cheerfulness in every presentment of the voyage. Three better, +more likely sea-officers and men, each in his own different way, +could not readily be found, and they were every one of them +Americans; a Nantucketer, a Vineyarder, a Cape man. Now, it being +Christmas when the ship shot from out her harbor, for a space we had +biting Polar weather, though all the time running away from it to the +southward; and by every degree and minute of latitude which we +sailed, gradually leaving that merciless winter, and all its +intolerable weather behind us. It was one of those less lowering, +but still grey and gloomy enough mornings of the transition, when +with a fair wind the ship was rushing through the water with a +vindictive sort of leaping and melancholy rapidity, that as I mounted +to the deck at the call of the forenoon watch, so soon as I levelled +my glance towards the taffrail, foreboding shivers ran over me. +Reality outran apprehension; Captain Ahab stood upon his +quarter-deck. + +There seemed no sign of common bodily illness about him, nor of the +recovery from any. He looked like a man cut away from the stake, +when the fire has overrunningly wasted all the limbs without +consuming them, or taking away one particle from their compacted aged +robustness. His whole high, broad form, seemed made of solid bronze, +and shaped in an unalterable mould, like Cellini's cast Perseus. +Threading its way out from among his grey hairs, and continuing right +down one side of his tawny scorched face and neck, till it +disappeared in his clothing, you saw a slender rod-like mark, lividly +whitish. It resembled that perpendicular seam sometimes made in the +straight, lofty trunk of a great tree, when the upper lightning +tearingly darts down it, and without wrenching a single twig, peels +and grooves out the bark from top to bottom, ere running off into the +soil, leaving the tree still greenly alive, but branded. Whether +that mark was born with him, or whether it was the scar left by some +desperate wound, no one could certainly say. By some tacit consent, +throughout the voyage little or no allusion was made to it, +especially by the mates. But once Tashtego's senior, an old Gay-Head +Indian among the crew, superstitiously asserted that not till he was +full forty years old did Ahab become that way branded, and then it +came upon him, not in the fury of any mortal fray, but in an +elemental strife at sea. Yet, this wild hint seemed inferentially +negatived, by what a grey Manxman insinuated, an old sepulchral man, +who, having never before sailed out of Nantucket, had never ere this +laid eye upon wild Ahab. Nevertheless, the old sea-traditions, the +immemorial credulities, popularly invested this old Manxman with +preternatural powers of discernment. So that no white sailor +seriously contradicted him when he said that if ever Captain Ahab +should be tranquilly laid out--which might hardly come to pass, so he +muttered--then, whoever should do that last office for the dead, +would find a birth-mark on him from crown to sole. + +So powerfully did the whole grim aspect of Ahab affect me, and the +livid brand which streaked it, that for the first few moments I +hardly noted that not a little of this overbearing grimness was owing +to the barbaric white leg upon which he partly stood. It had +previously come to me that this ivory leg had at sea been fashioned +from the polished bone of the sperm whale's jaw. "Aye, he was +dismasted off Japan," said the old Gay-Head Indian once; "but like +his dismasted craft, he shipped another mast without coming home for +it. He has a quiver of 'em." + +I was struck with the singular posture he maintained. Upon each side +of the Pequod's quarter deck, and pretty close to the mizzen shrouds, +there was an auger hole, bored about half an inch or so, into the +plank. His bone leg steadied in that hole; one arm elevated, and +holding by a shroud; Captain Ahab stood erect, looking straight out +beyond the ship's ever-pitching prow. There was an infinity of +firmest fortitude, a determinate, unsurrenderable wilfulness, in the +fixed and fearless, forward dedication of that glance. Not a word he +spoke; nor did his officers say aught to him; though by all their +minutest gestures and expressions, they plainly showed the uneasy, if +not painful, consciousness of being under a troubled master-eye. And +not only that, but moody stricken Ahab stood before them with a +crucifixion in his face; in all the nameless regal overbearing +dignity of some mighty woe. + +Ere long, from his first visit in the air, he withdrew into his +cabin. But after that morning, he was every day visible to the crew; +either standing in his pivot-hole, or seated upon an ivory stool he +had; or heavily walking the deck. As the sky grew less gloomy; +indeed, began to grow a little genial, he became still less and less +a recluse; as if, when the ship had sailed from home, nothing but the +dead wintry bleakness of the sea had then kept him so secluded. And, +by and by, it came to pass, that he was almost continually in the +air; but, as yet, for all that he said, or perceptibly did, on the at +last sunny deck, he seemed as unnecessary there as another mast. But +the Pequod was only making a passage now; not regularly cruising; +nearly all whaling preparatives needing supervision the mates were +fully competent to, so that there was little or nothing, out of +himself, to employ or excite Ahab, now; and thus chase away, for that +one interval, the clouds that layer upon layer were piled upon his +brow, as ever all clouds choose the loftiest peaks to pile themselves +upon. + +Nevertheless, ere long, the warm, warbling persuasiveness of the +pleasant, holiday weather we came to, seemed gradually to charm him +from his mood. For, as when the red-cheeked, dancing girls, April +and May, trip home to the wintry, misanthropic woods; even the +barest, ruggedest, most thunder-cloven old oak will at least send +forth some few green sprouts, to welcome such glad-hearted visitants; +so Ahab did, in the end, a little respond to the playful allurings of +that girlish air. More than once did he put forth the faint blossom +of a look, which, in any other man, would have soon flowered out in a +smile. + + + +CHAPTER 29 + +Enter Ahab; to Him, Stubb. + + +Some days elapsed, and ice and icebergs all astern, the Pequod now +went rolling through the bright Quito spring, which, at sea, almost +perpetually reigns on the threshold of the eternal August of the +Tropic. The warmly cool, clear, ringing, perfumed, overflowing, +redundant days, were as crystal goblets of Persian sherbet, heaped +up--flaked up, with rose-water snow. The starred and stately nights +seemed haughty dames in jewelled velvets, nursing at home in lonely +pride, the memory of their absent conquering Earls, the golden +helmeted suns! For sleeping man, 'twas hard to choose between such +winsome days and such seducing nights. But all the witcheries of +that unwaning weather did not merely lend new spells and potencies to +the outward world. Inward they turned upon the soul, especially when +the still mild hours of eve came on; then, memory shot her crystals +as the clear ice most forms of noiseless twilights. And all these +subtle agencies, more and more they wrought on Ahab's texture. + +Old age is always wakeful; as if, the longer linked with life, the +less man has to do with aught that looks like death. Among +sea-commanders, the old greybeards will oftenest leave their berths +to visit the night-cloaked deck. It was so with Ahab; only that now, +of late, he seemed so much to live in the open air, that truly +speaking, his visits were more to the cabin, than from the cabin to +the planks. "It feels like going down into one's tomb,"--he would +mutter to himself--"for an old captain like me to be descending this +narrow scuttle, to go to my grave-dug berth." + +So, almost every twenty-four hours, when the watches of the night +were set, and the band on deck sentinelled the slumbers of the band +below; and when if a rope was to be hauled upon the forecastle, the +sailors flung it not rudely down, as by day, but with some +cautiousness dropt it to its place for fear of disturbing their +slumbering shipmates; when this sort of steady quietude would begin +to prevail, habitually, the silent steersman would watch the +cabin-scuttle; and ere long the old man would emerge, gripping at the +iron banister, to help his crippled way. Some considering touch of +humanity was in him; for at times like these, he usually abstained +from patrolling the quarter-deck; because to his wearied mates, +seeking repose within six inches of his ivory heel, such would have +been the reverberating crack and din of that bony step, that their +dreams would have been on the crunching teeth of sharks. But once, +the mood was on him too deep for common regardings; and as with +heavy, lumber-like pace he was measuring the ship from taffrail to +mainmast, Stubb, the old second mate, came up from below, with a +certain unassured, deprecating humorousness, hinted that if Captain +Ahab was pleased to walk the planks, then, no one could say nay; but +there might be some way of muffling the noise; hinting something +indistinctly and hesitatingly about a globe of tow, and the insertion +into it, of the ivory heel. Ah! Stubb, thou didst not know Ahab +then. + +"Am I a cannon-ball, Stubb," said Ahab, "that thou wouldst wad me +that fashion? But go thy ways; I had forgot. Below to thy nightly +grave; where such as ye sleep between shrouds, to use ye to the +filling one at last.--Down, dog, and kennel!" + +Starting at the unforseen concluding exclamation of the so suddenly +scornful old man, Stubb was speechless a moment; then said excitedly, +"I am not used to be spoken to that way, sir; I do but less than half +like it, sir." + +"Avast! gritted Ahab between his set teeth, and violently moving +away, as if to avoid some passionate temptation. + +"No, sir; not yet," said Stubb, emboldened, "I will not tamely be +called a dog, sir." + +"Then be called ten times a donkey, and a mule, and an ass, and +begone, or I'll clear the world of thee!" + +As he said this, Ahab advanced upon him with such overbearing terrors +in his aspect, that Stubb involuntarily retreated. + +"I was never served so before without giving a hard blow for it," +muttered Stubb, as he found himself descending the cabin-scuttle. +"It's very queer. Stop, Stubb; somehow, now, I don't well know +whether to go back and strike him, or--what's that?--down here on my +knees and pray for him? Yes, that was the thought coming up in me; +but it would be the first time I ever DID pray. It's queer; very +queer; and he's queer too; aye, take him fore and aft, he's about the +queerest old man Stubb ever sailed with. How he flashed at me!--his +eyes like powder-pans! is he mad? Anyway there's something on his +mind, as sure as there must be something on a deck when it cracks. +He aint in his bed now, either, more than three hours out of the +twenty-four; and he don't sleep then. Didn't that Dough-Boy, the +steward, tell me that of a morning he always finds the old man's +hammock clothes all rumpled and tumbled, and the sheets down at the +foot, and the coverlid almost tied into knots, and the pillow a sort +of frightful hot, as though a baked brick had been on it? A hot old +man! I guess he's got what some folks ashore call a conscience; it's +a kind of Tic-Dolly-row they say--worse nor a toothache. Well, well; +I don't know what it is, but the Lord keep me from catching it. He's +full of riddles; I wonder what he goes into the after hold for, every +night, as Dough-Boy tells me he suspects; what's that for, I should +like to know? Who's made appointments with him in the hold? Ain't +that queer, now? But there's no telling, it's the old game--Here +goes for a snooze. Damn me, it's worth a fellow's while to be born +into the world, if only to fall right asleep. And now that I think +of it, that's about the first thing babies do, and that's a sort of +queer, too. Damn me, but all things are queer, come to think of 'em. +But that's against my principles. Think not, is my eleventh +commandment; and sleep when you can, is my twelfth--So here goes +again. But how's that? didn't he call me a dog? blazes! he called me +ten times a donkey, and piled a lot of jackasses on top of THAT! He +might as well have kicked me, and done with it. Maybe he DID kick +me, and I didn't observe it, I was so taken all aback with his brow, +somehow. It flashed like a bleached bone. What the devil's the +matter with me? I don't stand right on my legs. Coming afoul of +that old man has a sort of turned me wrong side out. By the Lord, I +must have been dreaming, though--How? how? how?--but the only way's +to stash it; so here goes to hammock again; and in the morning, I'll +see how this plaguey juggling thinks over by daylight." + + + +CHAPTER 30 + +The Pipe. + + +When Stubb had departed, Ahab stood for a while leaning over the +bulwarks; and then, as had been usual with him of late, calling a +sailor of the watch, he sent him below for his ivory stool, and also +his pipe. Lighting the pipe at the binnacle lamp and planting the +stool on the weather side of the deck, he sat and smoked. + +In old Norse times, the thrones of the sea-loving Danish kings were +fabricated, saith tradition, of the tusks of the narwhale. How could +one look at Ahab then, seated on that tripod of bones, without +bethinking him of the royalty it symbolized? For a Khan of the +plank, and a king of the sea, and a great lord of Leviathans was +Ahab. + +Some moments passed, during which the thick vapour came from his mouth +in quick and constant puffs, which blew back again into his face. +"How now," he soliloquized at last, withdrawing the tube, "this +smoking no longer soothes. Oh, my pipe! hard must it go with me if +thy charm be gone! Here have I been unconsciously toiling, not +pleasuring--aye, and ignorantly smoking to windward all the while; to +windward, and with such nervous whiffs, as if, like the dying whale, +my final jets were the strongest and fullest of trouble. What +business have I with this pipe? This thing that is meant for +sereneness, to send up mild white vapours among mild white hairs, not +among torn iron-grey locks like mine. I'll smoke no more--" + +He tossed the still lighted pipe into the sea. The fire hissed in +the waves; the same instant the ship shot by the bubble the sinking +pipe made. With slouched hat, Ahab lurchingly paced the planks. + + + +CHAPTER 31 + +Queen Mab. + + +Next morning Stubb accosted Flask. + +"Such a queer dream, King-Post, I never had. You know the old man's +ivory leg, well I dreamed he kicked me with it; and when I tried to +kick back, upon my soul, my little man, I kicked my leg right off! +And then, presto! Ahab seemed a pyramid, and I, like a blazing fool, +kept kicking at it. But what was still more curious, Flask--you know +how curious all dreams are--through all this rage that I was in, I +somehow seemed to be thinking to myself, that after all, it was not +much of an insult, that kick from Ahab. 'Why,' thinks I, 'what's the +row? It's not a real leg, only a false leg.' And there's a mighty +difference between a living thump and a dead thump. That's what +makes a blow from the hand, Flask, fifty times more savage to bear +than a blow from a cane. The living member--that makes the living +insult, my little man. And thinks I to myself all the while, mind, +while I was stubbing my silly toes against that cursed pyramid--so +confoundedly contradictory was it all, all the while, I say, I was +thinking to myself, 'what's his leg now, but a cane--a whalebone +cane. Yes,' thinks I, 'it was only a playful cudgelling--in fact, +only a whaleboning that he gave me--not a base kick. Besides,' +thinks I, 'look at it once; why, the end of it--the foot part--what a +small sort of end it is; whereas, if a broad footed farmer kicked me, +THERE'S a devilish broad insult. But this insult is whittled down to +a point only.' But now comes the greatest joke of the dream, Flask. +While I was battering away at the pyramid, a sort of badger-haired +old merman, with a hump on his back, takes me by the shoulders, and +slews me round. 'What are you 'bout?' says he. Slid! man, but I was +frightened. Such a phiz! But, somehow, next moment I was over the +fright. 'What am I about?' says I at last. 'And what business is +that of yours, I should like to know, Mr. Humpback? Do YOU want a +kick?' By the lord, Flask, I had no sooner said that, than he turned +round his stern to me, bent over, and dragging up a lot of seaweed he +had for a clout--what do you think, I saw?--why thunder alive, man, +his stern was stuck full of marlinspikes, with the points out. Says +I, on second thoughts, 'I guess I won't kick you, old fellow.' 'Wise +Stubb,' said he, 'wise Stubb;' and kept muttering it all the time, a +sort of eating of his own gums like a chimney hag. Seeing he wasn't +going to stop saying over his 'wise Stubb, wise Stubb,' I thought I +might as well fall to kicking the pyramid again. But I had only just +lifted my foot for it, when he roared out, 'Stop that kicking!' +'Halloa,' says I, 'what's the matter now, old fellow?' 'Look ye +here,' says he; 'let's argue the insult. Captain Ahab kicked ye, +didn't he?' 'Yes, he did,' says I--'right HERE it was.' 'Very +good,' says he--'he used his ivory leg, didn't he?' 'Yes, he did,' +says I. 'Well then,' says he, 'wise Stubb, what have you to complain +of? Didn't he kick with right good will? it wasn't a common pitch +pine leg he kicked with, was it? No, you were kicked by a great man, +and with a beautiful ivory leg, Stubb. It's an honour; I consider it +an honour. Listen, wise Stubb. In old England the greatest lords +think it great glory to be slapped by a queen, and made +garter-knights of; but, be YOUR boast, Stubb, that ye were kicked by +old Ahab, and made a wise man of. Remember what I say; BE kicked by +him; account his kicks honours; and on no account kick back; for you +can't help yourself, wise Stubb. Don't you see that pyramid?' With +that, he all of a sudden seemed somehow, in some queer fashion, to +swim off into the air. I snored; rolled over; and there I was in my +hammock! Now, what do you think of that dream, Flask?" + +"I don't know; it seems a sort of foolish to me, tho.'" + +"May be; may be. But it's made a wise man of me, Flask. D'ye see +Ahab standing there, sideways looking over the stern? Well, the best +thing you can do, Flask, is to let the old man alone; never speak to +him, whatever he says. Halloa! What's that he shouts? Hark!" + +"Mast-head, there! Look sharp, all of ye! There are whales +hereabouts! + +If ye see a white one, split your lungs for him! + +"What do you think of that now, Flask? ain't there a small drop of +something queer about that, eh? A white whale--did ye mark that, +man? Look ye--there's something special in the wind. Stand by for +it, Flask. Ahab has that that's bloody on his mind. But, mum; he +comes this way." + + + +CHAPTER 32 + +Cetology. + + +Already we are boldly launched upon the deep; but soon we shall be +lost in its unshored, harbourless immensities. Ere that come to pass; +ere the Pequod's weedy hull rolls side by side with the barnacled +hulls of the leviathan; at the outset it is but well to attend to a +matter almost indispensable to a thorough appreciative understanding +of the more special leviathanic revelations and allusions of all +sorts which are to follow. + +It is some systematized exhibition of the whale in his broad genera, +that I would now fain put before you. Yet is it no easy task. The +classification of the constituents of a chaos, nothing less is here +essayed. Listen to what the best and latest authorities have laid +down. + +"No branch of Zoology is so much involved as that which is entitled +Cetology," says Captain Scoresby, A.D. 1820. + +"It is not my intention, were it in my power, to enter into the +inquiry as to the true method of dividing the cetacea into groups and +families.... Utter confusion exists among the historians of this +animal" (sperm whale), says Surgeon Beale, A.D. 1839. + +"Unfitness to pursue our research in the unfathomable waters." +"Impenetrable veil covering our knowledge of the cetacea." "A field +strewn with thorns." "All these incomplete indications but serve to +torture us naturalists." + +Thus speak of the whale, the great Cuvier, and John Hunter, and +Lesson, those lights of zoology and anatomy. Nevertheless, though of +real knowledge there be little, yet of books there are a plenty; and +so in some small degree, with cetology, or the science of whales. +Many are the men, small and great, old and new, landsmen and seamen, +who have at large or in little, written of the whale. Run over a +few:--The Authors of the Bible; Aristotle; Pliny; Aldrovandi; Sir +Thomas Browne; Gesner; Ray; Linnaeus; Rondeletius; Willoughby; Green; +Artedi; Sibbald; Brisson; Marten; Lacepede; Bonneterre; Desmarest; +Baron Cuvier; Frederick Cuvier; John Hunter; Owen; Scoresby; Beale; +Bennett; J. Ross Browne; the Author of Miriam Coffin; Olmstead; and +the Rev. T. Cheever. But to what ultimate generalizing purpose all +these have written, the above cited extracts will show. + +Of the names in this list of whale authors, only those following Owen +ever saw living whales; and but one of them was a real professional +harpooneer and whaleman. I mean Captain Scoresby. On the separate +subject of the Greenland or right-whale, he is the best existing +authority. But Scoresby knew nothing and says nothing of the great +sperm whale, compared with which the Greenland whale is almost +unworthy mentioning. And here be it said, that the Greenland whale +is an usurper upon the throne of the seas. He is not even by any +means the largest of the whales. Yet, owing to the long priority of +his claims, and the profound ignorance which, till some seventy years +back, invested the then fabulous or utterly unknown sperm-whale, and +which ignorance to this present day still reigns in all but some few +scientific retreats and whale-ports; this usurpation has been every +way complete. Reference to nearly all the leviathanic allusions in +the great poets of past days, will satisfy you that the Greenland +whale, without one rival, was to them the monarch of the seas. But +the time has at last come for a new proclamation. This is Charing +Cross; hear ye! good people all,--the Greenland whale is +deposed,--the great sperm whale now reigneth! + +There are only two books in being which at all pretend to put the +living sperm whale before you, and at the same time, in the remotest +degree succeed in the attempt. Those books are Beale's and +Bennett's; both in their time surgeons to English South-Sea +whale-ships, and both exact and reliable men. The original matter +touching the sperm whale to be found in their volumes is necessarily +small; but so far as it goes, it is of excellent quality, though +mostly confined to scientific description. As yet, however, the +sperm whale, scientific or poetic, lives not complete in any +literature. Far above all other hunted whales, his is an unwritten +life. + +Now the various species of whales need some sort of popular +comprehensive classification, if only an easy outline one for the +present, hereafter to be filled in all its departments by subsequent +laborers. As no better man advances to take this matter in hand, I +hereupon offer my own poor endeavors. I promise nothing complete; +because any human thing supposed to be complete, must for that very +reason infallibly be faulty. I shall not pretend to a minute +anatomical description of the various species, or--in this place at +least--to much of any description. My object here is simply to +project the draught of a systematization of cetology. I am the +architect, not the builder. + +But it is a ponderous task; no ordinary letter-sorter in the +Post-Office is equal to it. To grope down into the bottom of the sea +after them; to have one's hands among the unspeakable foundations, +ribs, and very pelvis of the world; this is a fearful thing. What am +I that I should essay to hook the nose of this leviathan! The awful +tauntings in Job might well appal me. "Will he the (leviathan) make +a covenant with thee? Behold the hope of him is vain! But I have +swam through libraries and sailed through oceans; I have had to do +with whales with these visible hands; I am in earnest; and I will +try. There are some preliminaries to settle. + +First: The uncertain, unsettled condition of this science of Cetology +is in the very vestibule attested by the fact, that in some quarters +it still remains a moot point whether a whale be a fish. In his +System of Nature, A.D. 1776, Linnaeus declares, "I hereby separate +the whales from the fish." But of my own knowledge, I know that down +to the year 1850, sharks and shad, alewives and herring, against +Linnaeus's express edict, were still found dividing the possession of +the same seas with the Leviathan. + +The grounds upon which Linnaeus would fain have banished the whales +from the waters, he states as follows: "On account of their warm +bilocular heart, their lungs, their movable eyelids, their hollow +ears, penem intrantem feminam mammis lactantem," and finally, "ex +lege naturae jure meritoque." I submitted all this to my friends +Simeon Macey and Charley Coffin, of Nantucket, both messmates of mine +in a certain voyage, and they united in the opinion that the reasons +set forth were altogether insufficient. Charley profanely hinted +they were humbug. + +Be it known that, waiving all argument, I take the good old fashioned +ground that the whale is a fish, and call upon holy Jonah to back me. +This fundamental thing settled, the next point is, in what internal +respect does the whale differ from other fish. Above, Linnaeus has +given you those items. But in brief, they are these: lungs and warm +blood; whereas, all other fish are lungless and cold blooded. + +Next: how shall we define the whale, by his obvious externals, so as +conspicuously to label him for all time to come? To be short, then, +a whale is A SPOUTING FISH WITH A HORIZONTAL TAIL. There you have +him. However contracted, that definition is the result of expanded +meditation. A walrus spouts much like a whale, but the walrus is not +a fish, because he is amphibious. But the last term of the +definition is still more cogent, as coupled with the first. Almost +any one must have noticed that all the fish familiar to landsmen have +not a flat, but a vertical, or up-and-down tail. Whereas, among +spouting fish the tail, though it may be similarly shaped, invariably +assumes a horizontal position. + +By the above definition of what a whale is, I do by no means exclude +from the leviathanic brotherhood any sea creature hitherto identified +with the whale by the best informed Nantucketers; nor, on the other +hand, link with it any fish hitherto authoritatively regarded as +alien.* Hence, all the smaller, spouting, and horizontal tailed fish +must be included in this ground-plan of Cetology. Now, then, come +the grand divisions of the entire whale host. + + +*I am aware that down to the present time, the fish styled Lamatins +and Dugongs (Pig-fish and Sow-fish of the Coffins of Nantucket) are +included by many naturalists among the whales. But as these pig-fish +are a noisy, contemptible set, mostly lurking in the mouths of +rivers, and feeding on wet hay, and especially as they do not spout, +I deny their credentials as whales; and have presented them with +their passports to quit the Kingdom of Cetology. + + +First: According to magnitude I divide the whales into three primary +BOOKS (subdivisible into CHAPTERS), and these shall comprehend them +all, both small and large. + +I. THE FOLIO WHALE; II. the OCTAVO WHALE; III. the DUODECIMO WHALE. + +As the type of the FOLIO I present the SPERM WHALE; of the OCTAVO, +the GRAMPUS; of the DUODECIMO, the PORPOISE. + +FOLIOS. Among these I here include the following chapters:--I. The +SPERM WHALE; II. the RIGHT WHALE; III. the FIN-BACK WHALE; IV. the +HUMP-BACKED WHALE; V. the RAZOR-BACK WHALE; VI. the SULPHUR-BOTTOM +WHALE. + +BOOK I. (FOLIO), CHAPTER I. (SPERM WHALE).--This whale, among the +English of old vaguely known as the Trumpa whale, and the Physeter +whale, and the Anvil Headed whale, is the present Cachalot of the +French, and the Pottsfich of the Germans, and the Macrocephalus of +the Long Words. He is, without doubt, the largest inhabitant of the +globe; the most formidable of all whales to encounter; the most +majestic in aspect; and lastly, by far the most valuable in commerce; +he being the only creature from which that valuable substance, +spermaceti, is obtained. All his peculiarities will, in many other +places, be enlarged upon. It is chiefly with his name that I now +have to do. Philologically considered, it is absurd. Some centuries +ago, when the Sperm whale was almost wholly unknown in his own +proper individuality, and when his oil was only accidentally obtained +from the stranded fish; in those days spermaceti, it would seem, was +popularly supposed to be derived from a creature identical with the +one then known in England as the Greenland or Right Whale. It was +the idea also, that this same spermaceti was that quickening humor of +the Greenland Whale which the first syllable of the word literally +expresses. In those times, also, spermaceti was exceedingly scarce, +not being used for light, but only as an ointment and medicament. It +was only to be had from the druggists as you nowadays buy an ounce of +rhubarb. When, as I opine, in the course of time, the true nature of +spermaceti became known, its original name was still retained by the +dealers; no doubt to enhance its value by a notion so strangely +significant of its scarcity. And so the appellation must at last +have come to be bestowed upon the whale from which this spermaceti +was really derived. + +BOOK I. (FOLIO), CHAPTER II. (RIGHT WHALE).--In one respect this is +the most venerable of the leviathans, being the one first regularly +hunted by man. It yields the article commonly known as whalebone or +baleen; and the oil specially known as "whale oil," an inferior +article in commerce. Among the fishermen, he is indiscriminately +designated by all the following titles: The Whale; the Greenland +Whale; the Black Whale; the Great Whale; the True Whale; the Right +Whale. There is a deal of obscurity concerning the identity of the +species thus multitudinously baptised. What then is the whale, which +I include in the second species of my Folios? It is the Great +Mysticetus of the English naturalists; the Greenland Whale of the +English whalemen; the Baliene Ordinaire of the French whalemen; the +Growlands Walfish of the Swedes. It is the whale which for more than +two centuries past has been hunted by the Dutch and English in the +Arctic seas; it is the whale which the American fishermen have long +pursued in the Indian ocean, on the Brazil Banks, on the Nor' West +Coast, and various other parts of the world, designated by them Right +Whale Cruising Grounds. + +Some pretend to see a difference between the Greenland whale of the +English and the right whale of the Americans. But they precisely +agree in all their grand features; nor has there yet been presented a +single determinate fact upon which to ground a radical distinction. +It is by endless subdivisions based upon the most inconclusive +differences, that some departments of natural history become so +repellingly intricate. The right whale will be elsewhere treated of +at some length, with reference to elucidating the sperm whale. + +BOOK I. (FOLIO), CHAPTER III. (FIN-BACK).--Under this head I reckon a +monster which, by the various names of Fin-Back, Tall-Spout, and +Long-John, has been seen almost in every sea and is commonly the +whale whose distant jet is so often descried by passengers crossing +the Atlantic, in the New York packet-tracks. In the length he +attains, and in his baleen, the Fin-back resembles the right whale, +but is of a less portly girth, and a lighter colour, approaching to +olive. His great lips present a cable-like aspect, formed by the +intertwisting, slanting folds of large wrinkles. His grand +distinguishing feature, the fin, from which he derives his name, is +often a conspicuous object. This fin is some three or four feet +long, growing vertically from the hinder part of the back, of an +angular shape, and with a very sharp pointed end. Even if not the +slightest other part of the creature be visible, this isolated fin +will, at times, be seen plainly projecting from the surface. When +the sea is moderately calm, and slightly marked with spherical +ripples, and this gnomon-like fin stands up and casts shadows upon +the wrinkled surface, it may well be supposed that the watery circle +surrounding it somewhat resembles a dial, with its style and wavy +hour-lines graved on it. On that Ahaz-dial the shadow often goes +back. The Fin-Back is not gregarious. He seems a whale-hater, as +some men are man-haters. Very shy; always going solitary; +unexpectedly rising to the surface in the remotest and most sullen +waters; his straight and single lofty jet rising like a tall +misanthropic spear upon a barren plain; gifted with such wondrous +power and velocity in swimming, as to defy all present pursuit from +man; this leviathan seems the banished and unconquerable Cain of his +race, bearing for his mark that style upon his back. From having the +baleen in his mouth, the Fin-Back is sometimes included with the +right whale, among a theoretic species denominated WHALEBONE WHALES, +that is, whales with baleen. Of these so called Whalebone whales, +there would seem to be several varieties, most of which, however, are +little known. Broad-nosed whales and beaked whales; pike-headed +whales; bunched whales; under-jawed whales and rostrated whales, are +the fishermen's names for a few sorts. + +In connection with this appellative of "Whalebone whales," it is of +great importance to mention, that however such a nomenclature may be +convenient in facilitating allusions to some kind of whales, yet it +is in vain to attempt a clear classification of the Leviathan, +founded upon either his baleen, or hump, or fin, or teeth; +notwithstanding that those marked parts or features very obviously +seem better adapted to afford the basis for a regular system of +Cetology than any other detached bodily distinctions, which the +whale, in his kinds, presents. How then? The baleen, hump, +back-fin, and teeth; these are things whose peculiarities are +indiscriminately dispersed among all sorts of whales, without any +regard to what may be the nature of their structure in other and +more essential particulars. Thus, the sperm whale and the humpbacked +whale, each has a hump; but there the similitude ceases. Then, this +same humpbacked whale and the Greenland whale, each of these has +baleen; but there again the similitude ceases. And it is just the +same with the other parts above mentioned. In various sorts of +whales, they form such irregular combinations; or, in the case of any +one of them detached, such an irregular isolation; as utterly to defy +all general methodization formed upon such a basis. On this rock +every one of the whale-naturalists has split. + +But it may possibly be conceived that, in the internal parts of the +whale, in his anatomy--there, at least, we shall be able to hit the +right classification. Nay; what thing, for example, is there in the +Greenland whale's anatomy more striking than his baleen? Yet we have +seen that by his baleen it is impossible correctly to classify the +Greenland whale. And if you descend into the bowels of the various +leviathans, why there you will not find distinctions a fiftieth part +as available to the systematizer as those external ones already +enumerated. What then remains? nothing but to take hold of the +whales bodily, in their entire liberal volume, and boldly sort them +that way. And this is the Bibliographical system here adopted; and +it is the only one that can possibly succeed, for it alone is +practicable. To proceed. + +BOOK I. (FOLIO) CHAPTER IV. (HUMP-BACK).--This whale is often seen on +the northern American coast. He has been frequently captured there, +and towed into harbor. He has a great pack on him like a peddler; or +you might call him the Elephant and Castle whale. At any rate, the +popular name for him does not sufficiently distinguish him, since the +sperm whale also has a hump though a smaller one. His oil is not +very valuable. He has baleen. He is the most gamesome and +light-hearted of all the whales, making more gay foam and white water +generally than any other of them. + +BOOK I. (FOLIO), CHAPTER V. (RAZOR-BACK).--Of this whale little is +known but his name. I have seen him at a distance off Cape Horn. Of +a retiring nature, he eludes both hunters and philosophers. Though +no coward, he has never yet shown any part of him but his back, which +rises in a long sharp ridge. Let him go. I know little more of him, +nor does anybody else. + +BOOK I. (FOLIO), CHAPTER VI. (SULPHUR-BOTTOM).--Another retiring +gentleman, with a brimstone belly, doubtless got by scraping along +the Tartarian tiles in some of his profounder divings. He is seldom +seen; at least I have never seen him except in the remoter southern +seas, and then always at too great a distance to study his +countenance. He is never chased; he would run away with rope-walks +of line. Prodigies are told of him. Adieu, Sulphur Bottom! I can +say nothing more that is true of ye, nor can the oldest Nantucketer. + +Thus ends BOOK I. (FOLIO), and now begins BOOK II. (OCTAVO). + +OCTAVOES.*--These embrace the whales of middling magnitude, among +which present may be numbered:--I., the GRAMPUS; II., the BLACK FISH; +III., the NARWHALE; IV., the THRASHER; V., the KILLER. + + +*Why this book of whales is not denominated the Quarto is very plain. +Because, while the whales of this order, though smaller than those +of the former order, nevertheless retain a proportionate likeness to +them in figure, yet the bookbinder's Quarto volume in its dimensioned +form does not preserve the shape of the Folio volume, but the Octavo +volume does. + + +BOOK II. (OCTAVO), CHAPTER I. (GRAMPUS).--Though this fish, whose +loud sonorous breathing, or rather blowing, has furnished a proverb +to landsmen, is so well known a denizen of the deep, yet is he not +popularly classed among whales. But possessing all the grand +distinctive features of the leviathan, most naturalists have +recognised him for one. He is of moderate octavo size, varying from +fifteen to twenty-five feet in length, and of corresponding +dimensions round the waist. He swims in herds; he is never regularly +hunted, though his oil is considerable in quantity, and pretty good +for light. By some fishermen his approach is regarded as premonitory +of the advance of the great sperm whale. + +BOOK II. (OCTAVO), CHAPTER II. (BLACK FISH).--I give the popular +fishermen's names for all these fish, for generally they are the +best. Where any name happens to be vague or inexpressive, I shall +say so, and suggest another. I do so now, touching the Black Fish, +so-called, because blackness is the rule among almost all whales. +So, call him the Hyena Whale, if you please. His voracity is well +known, and from the circumstance that the inner angles of his lips +are curved upwards, he carries an everlasting Mephistophelean grin on +his face. This whale averages some sixteen or eighteen feet in +length. He is found in almost all latitudes. He has a peculiar way +of showing his dorsal hooked fin in swimming, which looks something +like a Roman nose. When not more profitably employed, the sperm +whale hunters sometimes capture the Hyena whale, to keep up the +supply of cheap oil for domestic employment--as some frugal +housekeepers, in the absence of company, and quite alone by +themselves, burn unsavory tallow instead of odorous wax. Though +their blubber is very thin, some of these whales will yield you +upwards of thirty gallons of oil. + +BOOK II. (OCTAVO), CHAPTER III. (NARWHALE), that is, NOSTRIL +WHALE.--Another instance of a curiously named whale, so named I +suppose from his peculiar horn being originally mistaken for a peaked +nose. The creature is some sixteen feet in length, while its horn +averages five feet, though some exceed ten, and even attain to +fifteen feet. Strictly speaking, this horn is but a lengthened tusk, +growing out from the jaw in a line a little depressed from the +horizontal. But it is only found on the sinister side, which has an +ill effect, giving its owner something analogous to the aspect of a +clumsy left-handed man. What precise purpose this ivory horn or +lance answers, it would be hard to say. It does not seem to be used +like the blade of the sword-fish and bill-fish; though some sailors +tell me that the Narwhale employs it for a rake in turning over the +bottom of the sea for food. Charley Coffin said it was used for an +ice-piercer; for the Narwhale, rising to the surface of the Polar +Sea, and finding it sheeted with ice, thrusts his horn up, and so +breaks through. But you cannot prove either of these surmises to be +correct. My own opinion is, that however this one-sided horn may +really be used by the Narwhale--however that may be--it would +certainly be very convenient to him for a folder in reading +pamphlets. The Narwhale I have heard called the Tusked whale, the +Horned whale, and the Unicorn whale. He is certainly a curious +example of the Unicornism to be found in almost every kingdom of +animated nature. From certain cloistered old authors I have gathered +that this same sea-unicorn's horn was in ancient days regarded as the +great antidote against poison, and as such, preparations of it +brought immense prices. It was also distilled to a volatile salts +for fainting ladies, the same way that the horns of the male deer are +manufactured into hartshorn. Originally it was in itself accounted +an object of great curiosity. Black Letter tells me that Sir Martin +Frobisher on his return from that voyage, when Queen Bess did +gallantly wave her jewelled hand to him from a window of Greenwich +Palace, as his bold ship sailed down the Thames; "when Sir Martin +returned from that voyage," saith Black Letter, "on bended knees he +presented to her highness a prodigious long horn of the Narwhale, +which for a long period after hung in the castle at Windsor." An +Irish author avers that the Earl of Leicester, on bended knees, did +likewise present to her highness another horn, pertaining to a land +beast of the unicorn nature. + +The Narwhale has a very picturesque, leopard-like look, being of a +milk-white ground colour, dotted with round and oblong spots of black. +His oil is very superior, clear and fine; but there is little of it, +and he is seldom hunted. He is mostly found in the circumpolar seas. + +BOOK II. (OCTAVO), CHAPTER IV. (KILLER).--Of this whale little is +precisely known to the Nantucketer, and nothing at all to the +professed naturalist. From what I have seen of him at a distance, +I should say that he was about the bigness of a grampus. He is very +savage--a sort of Feegee fish. He sometimes takes the great Folio +whales by the lip, and hangs there like a leech, till the mighty +brute is worried to death. The Killer is never hunted. I never +heard what sort of oil he has. Exception might be taken to the name +bestowed upon this whale, on the ground of its indistinctness. For +we are all killers, on land and on sea; Bonapartes and Sharks +included. + +BOOK II. (OCTAVO), CHAPTER V. (THRASHER).--This gentleman is famous +for his tail, which he uses for a ferule in thrashing his foes. He +mounts the Folio whale's back, and as he swims, he works his passage +by flogging him; as some schoolmasters get along in the world by a +similar process. Still less is known of the Thrasher than of the +Killer. Both are outlaws, even in the lawless seas. + +Thus ends BOOK II. (OCTAVO), and begins BOOK III. (DUODECIMO). + +DUODECIMOES.--These include the smaller whales. I. The Huzza +Porpoise. II. The Algerine Porpoise. III. The Mealy-mouthed +Porpoise. + +To those who have not chanced specially to study the subject, it may +possibly seem strange, that fishes not commonly exceeding four or +five feet should be marshalled among WHALES--a word, which, in the +popular sense, always conveys an idea of hugeness. But the creatures +set down above as Duodecimoes are infallibly whales, by the terms of +my definition of what a whale is--i.e. a spouting fish, with a +horizontal tail. + +BOOK III. (DUODECIMO), CHAPTER 1. (HUZZA PORPOISE).--This is the +common porpoise found almost all over the globe. The name is of my +own bestowal; for there are more than one sort of porpoises, and +something must be done to distinguish them. I call him thus, because +he always swims in hilarious shoals, which upon the broad sea keep +tossing themselves to heaven like caps in a Fourth-of-July crowd. +Their appearance is generally hailed with delight by the mariner. +Full of fine spirits, they invariably come from the breezy billows to +windward. They are the lads that always live before the wind. They +are accounted a lucky omen. If you yourself can withstand three +cheers at beholding these vivacious fish, then heaven help ye; the +spirit of godly gamesomeness is not in ye. A well-fed, plump Huzza +Porpoise will yield you one good gallon of good oil. But the fine +and delicate fluid extracted from his jaws is exceedingly valuable. +It is in request among jewellers and watchmakers. Sailors put it on +their hones. Porpoise meat is good eating, you know. It may never +have occurred to you that a porpoise spouts. Indeed, his spout is so +small that it is not very readily discernible. But the next time you +have a chance, watch him; and you will then see the great Sperm whale +himself in miniature. + +BOOK III. (DUODECIMO), CHAPTER II. (ALGERINE PORPOISE).--A pirate. +Very savage. He is only found, I think, in the Pacific. He is +somewhat larger than the Huzza Porpoise, but much of the same general +make. Provoke him, and he will buckle to a shark. I have lowered +for him many times, but never yet saw him captured. + +BOOK III. (DUODECIMO), CHAPTER III. (MEALY-MOUTHED PORPOISE).--The +largest kind of Porpoise; and only found in the Pacific, so far as it +is known. The only English name, by which he has hitherto been +designated, is that of the fishers--Right-Whale Porpoise, from the +circumstance that he is chiefly found in the vicinity of that Folio. +In shape, he differs in some degree from the Huzza Porpoise, being of +a less rotund and jolly girth; indeed, he is of quite a neat and +gentleman-like figure. He has no fins on his back (most other +porpoises have), he has a lovely tail, and sentimental Indian eyes of +a hazel hue. But his mealy-mouth spoils all. Though his entire +back down to his side fins is of a deep sable, yet a boundary line, +distinct as the mark in a ship's hull, called the "bright waist," +that line streaks him from stem to stern, with two separate colours, +black above and white below. The white comprises part of his head, +and the whole of his mouth, which makes him look as if he had just +escaped from a felonious visit to a meal-bag. A most mean and mealy +aspect! His oil is much like that of the common porpoise. + + +Beyond the DUODECIMO, this system does not proceed, inasmuch as the +Porpoise is the smallest of the whales. Above, you have all the +Leviathans of note. But there are a rabble of uncertain, fugitive, +half-fabulous whales, which, as an American whaleman, I know by +reputation, but not personally. I shall enumerate them by their +fore-castle appellations; for possibly such a list may be valuable to +future investigators, who may complete what I have here but begun. +If any of the following whales, shall hereafter be caught and marked, +then he can readily be incorporated into this System, according to +his Folio, Octavo, or Duodecimo magnitude:--The Bottle-Nose Whale; +the Junk Whale; the Pudding-Headed Whale; the Cape Whale; the Leading +Whale; the Cannon Whale; the Scragg Whale; the Coppered Whale; the +Elephant Whale; the Iceberg Whale; the Quog Whale; the Blue Whale; etc. +From Icelandic, Dutch, and old English authorities, there might +be quoted other lists of uncertain whales, blessed with all manner of +uncouth names. But I omit them as altogether obsolete; and can +hardly help suspecting them for mere sounds, full of Leviathanism, +but signifying nothing. + +Finally: It was stated at the outset, that this system would not be +here, and at once, perfected. You cannot but plainly see that I have +kept my word. But I now leave my cetological System standing thus +unfinished, even as the great Cathedral of Cologne was left, with the +crane still standing upon the top of the uncompleted tower. For +small erections may be finished by their first architects; grand +ones, true ones, ever leave the copestone to posterity. God keep me +from ever completing anything. This whole book is but a +draught--nay, but the draught of a draught. Oh, Time, Strength, +Cash, and Patience! + + + +CHAPTER 33 + +The Specksynder. + + +Concerning the officers of the whale-craft, this seems as good a +place as any to set down a little domestic peculiarity on ship-board, +arising from the existence of the harpooneer class of officers, a +class unknown of course in any other marine than the whale-fleet. + +The large importance attached to the harpooneer's vocation is evinced +by the fact, that originally in the old Dutch Fishery, two centuries +and more ago, the command of a whale ship was not wholly lodged in +the person now called the captain, but was divided between him and an +officer called the Specksynder. Literally this word means +Fat-Cutter; usage, however, in time made it equivalent to Chief +Harpooneer. In those days, the captain's authority was restricted to +the navigation and general management of the vessel; while over the +whale-hunting department and all its concerns, the Specksynder or +Chief Harpooneer reigned supreme. In the British Greenland Fishery, +under the corrupted title of Specksioneer, this old Dutch official is +still retained, but his former dignity is sadly abridged. At present +he ranks simply as senior Harpooneer; and as such, is but one of the +captain's more inferior subalterns. Nevertheless, as upon the good +conduct of the harpooneers the success of a whaling voyage largely +depends, and since in the American Fishery he is not only an +important officer in the boat, but under certain circumstances (night +watches on a whaling ground) the command of the ship's deck is also +his; therefore the grand political maxim of the sea demands, that he +should nominally live apart from the men before the mast, and be in +some way distinguished as their professional superior; though always, +by them, familiarly regarded as their social equal. + +Now, the grand distinction drawn between officer and man at sea, is +this--the first lives aft, the last forward. Hence, in whale-ships +and merchantmen alike, the mates have their quarters with the +captain; and so, too, in most of the American whalers the harpooneers +are lodged in the after part of the ship. That is to say, they take +their meals in the captain's cabin, and sleep in a place indirectly +communicating with it. + +Though the long period of a Southern whaling voyage (by far the +longest of all voyages now or ever made by man), the peculiar perils +of it, and the community of interest prevailing among a company, all +of whom, high or low, depend for their profits, not upon fixed wages, +but upon their common luck, together with their common vigilance, +intrepidity, and hard work; though all these things do in some cases +tend to beget a less rigorous discipline than in merchantmen +generally; yet, never mind how much like an old Mesopotamian family +these whalemen may, in some primitive instances, live together; for +all that, the punctilious externals, at least, of the quarter-deck +are seldom materially relaxed, and in no instance done away. Indeed, +many are the Nantucket ships in which you will see the skipper +parading his quarter-deck with an elated grandeur not surpassed in +any military navy; nay, extorting almost as much outward homage as if +he wore the imperial purple, and not the shabbiest of pilot-cloth. + +And though of all men the moody captain of the Pequod was the least +given to that sort of shallowest assumption; and though the only +homage he ever exacted, was implicit, instantaneous obedience; though +he required no man to remove the shoes from his feet ere stepping +upon the quarter-deck; and though there were times when, owing to +peculiar circumstances connected with events hereafter to be +detailed, he addressed them in unusual terms, whether of +condescension or IN TERROREM, or otherwise; yet even Captain Ahab was +by no means unobservant of the paramount forms and usages of the sea. + +Nor, perhaps, will it fail to be eventually perceived, that behind +those forms and usages, as it were, he sometimes masked himself; +incidentally making use of them for other and more private ends than +they were legitimately intended to subserve. That certain sultanism +of his brain, which had otherwise in a good degree remained +unmanifested; through those forms that same sultanism became +incarnate in an irresistible dictatorship. For be a man's +intellectual superiority what it will, it can never assume the +practical, available supremacy over other men, without the aid of +some sort of external arts and entrenchments, always, in themselves, +more or less paltry and base. This it is, that for ever keeps God's +true princes of the Empire from the world's hustings; and leaves the +highest honours that this air can give, to those men who become famous +more through their infinite inferiority to the choice hidden handful +of the Divine Inert, than through their undoubted superiority over +the dead level of the mass. Such large virtue lurks in these small +things when extreme political superstitions invest them, that in some +royal instances even to idiot imbecility they have imparted potency. +But when, as in the case of Nicholas the Czar, the ringed crown of +geographical empire encircles an imperial brain; then, the plebeian +herds crouch abased before the tremendous centralization. Nor, will +the tragic dramatist who would depict mortal indomitableness in its +fullest sweep and direct swing, ever forget a hint, incidentally so +important in his art, as the one now alluded to. + +But Ahab, my Captain, still moves before me in all his Nantucket +grimness and shagginess; and in this episode touching Emperors and +Kings, I must not conceal that I have only to do with a poor old +whale-hunter like him; and, therefore, all outward majestical +trappings and housings are denied me. Oh, Ahab! what shall be grand +in thee, it must needs be plucked at from the skies, and dived for in +the deep, and featured in the unbodied air! + + + +CHAPTER 34 + +The Cabin-Table. + + +It is noon; and Dough-Boy, the steward, thrusting his pale +loaf-of-bread face from the cabin-scuttle, announces dinner to his +lord and master; who, sitting in the lee quarter-boat, has just been +taking an observation of the sun; and is now mutely reckoning the +latitude on the smooth, medallion-shaped tablet, reserved for that +daily purpose on the upper part of his ivory leg. From his complete +inattention to the tidings, you would think that moody Ahab had not +heard his menial. But presently, catching hold of the mizen shrouds, +he swings himself to the deck, and in an even, unexhilarated voice, +saying, "Dinner, Mr. Starbuck," disappears into the cabin. + +When the last echo of his sultan's step has died away, and Starbuck, +the first Emir, has every reason to suppose that he is seated, then +Starbuck rouses from his quietude, takes a few turns along the +planks, and, after a grave peep into the binnacle, says, with some +touch of pleasantness, "Dinner, Mr. Stubb," and descends the scuttle. +The second Emir lounges about the rigging awhile, and then slightly +shaking the main brace, to see whether it will be all right with +that important rope, he likewise takes up the old burden, and with a +rapid "Dinner, Mr. Flask," follows after his predecessors. + +But the third Emir, now seeing himself all alone on the quarter-deck, +seems to feel relieved from some curious restraint; for, tipping all +sorts of knowing winks in all sorts of directions, and kicking off +his shoes, he strikes into a sharp but noiseless squall of a hornpipe +right over the Grand Turk's head; and then, by a dexterous sleight, +pitching his cap up into the mizentop for a shelf, he goes down +rollicking so far at least as he remains visible from the deck, +reversing all other processions, by bringing up the rear with music. +But ere stepping into the cabin doorway below, he pauses, ships a new +face altogether, and, then, independent, hilarious little Flask +enters King Ahab's presence, in the character of Abjectus, or the +Slave. + +It is not the least among the strange things bred by the intense +artificialness of sea-usages, that while in the open air of the deck +some officers will, upon provocation, bear themselves boldly and +defyingly enough towards their commander; yet, ten to one, let those +very officers the next moment go down to their customary dinner in +that same commander's cabin, and straightway their inoffensive, not +to say deprecatory and humble air towards him, as he sits at the head +of the table; this is marvellous, sometimes most comical. Wherefore +this difference? A problem? Perhaps not. To have been Belshazzar, +King of Babylon; and to have been Belshazzar, not haughtily but +courteously, therein certainly must have been some touch of mundane +grandeur. But he who in the rightly regal and intelligent spirit +presides over his own private dinner-table of invited guests, that +man's unchallenged power and dominion of individual influence for the +time; that man's royalty of state transcends Belshazzar's, for +Belshazzar was not the greatest. Who has but once dined his friends, +has tasted what it is to be Caesar. It is a witchery of social +czarship which there is no withstanding. Now, if to this +consideration you superadd the official supremacy of a ship-master, +then, by inference, you will derive the cause of that peculiarity of +sea-life just mentioned. + +Over his ivory-inlaid table, Ahab presided like a mute, maned +sea-lion on the white coral beach, surrounded by his warlike but +still deferential cubs. In his own proper turn, each officer waited +to be served. They were as little children before Ahab; and yet, in +Ahab, there seemed not to lurk the smallest social arrogance. With +one mind, their intent eyes all fastened upon the old man's knife, as +he carved the chief dish before him. I do not suppose that for the +world they would have profaned that moment with the slightest +observation, even upon so neutral a topic as the weather. No! And +when reaching out his knife and fork, between which the slice of beef +was locked, Ahab thereby motioned Starbuck's plate towards him, the +mate received his meat as though receiving alms; and cut it tenderly; +and a little started if, perchance, the knife grazed against the +plate; and chewed it noiselessly; and swallowed it, not without +circumspection. For, like the Coronation banquet at Frankfort, where +the German Emperor profoundly dines with the seven Imperial +Electors, so these cabin meals were somehow solemn meals, eaten in +awful silence; and yet at table old Ahab forbade not conversation; +only he himself was dumb. What a relief it was to choking Stubb, +when a rat made a sudden racket in the hold below. And poor little +Flask, he was the youngest son, and little boy of this weary family +party. His were the shinbones of the saline beef; his would have +been the drumsticks. For Flask to have presumed to help himself, +this must have seemed to him tantamount to larceny in the first +degree. Had he helped himself at that table, doubtless, never more +would he have been able to hold his head up in this honest world; +nevertheless, strange to say, Ahab never forbade him. And had Flask +helped himself, the chances were Ahab had never so much as noticed +it. Least of all, did Flask presume to help himself to butter. +Whether he thought the owners of the ship denied it to him, on +account of its clotting his clear, sunny complexion; or whether he +deemed that, on so long a voyage in such marketless waters, butter +was at a premium, and therefore was not for him, a subaltern; however +it was, Flask, alas! was a butterless man! + +Another thing. Flask was the last person down at the dinner, and +Flask is the first man up. Consider! For hereby Flask's dinner was +badly jammed in point of time. Starbuck and Stubb both had the start +of him; and yet they also have the privilege of lounging in the rear. +If Stubb even, who is but a peg higher than Flask, happens to have +but a small appetite, and soon shows symptoms of concluding his +repast, then Flask must bestir himself, he will not get more than +three mouthfuls that day; for it is against holy usage for Stubb to +precede Flask to the deck. Therefore it was that Flask once admitted +in private, that ever since he had arisen to the dignity of an +officer, from that moment he had never known what it was to be +otherwise than hungry, more or less. For what he ate did not so much +relieve his hunger, as keep it immortal in him. Peace and +satisfaction, thought Flask, have for ever departed from my stomach. +I am an officer; but, how I wish I could fish a bit of old-fashioned +beef in the forecastle, as I used to when I was before the mast. +There's the fruits of promotion now; there's the vanity of glory: +there's the insanity of life! Besides, if it were so that any mere +sailor of the Pequod had a grudge against Flask in Flask's official +capacity, all that sailor had to do, in order to obtain ample +vengeance, was to go aft at dinner-time, and get a peep at Flask +through the cabin sky-light, sitting silly and dumfoundered before +awful Ahab. + +Now, Ahab and his three mates formed what may be called the first +table in the Pequod's cabin. After their departure, taking place in +inverted order to their arrival, the canvas cloth was cleared, or +rather was restored to some hurried order by the pallid steward. And +then the three harpooneers were bidden to the feast, they being its +residuary legatees. They made a sort of temporary servants' hall of +the high and mighty cabin. + +In strange contrast to the hardly tolerable constraint and nameless +invisible domineerings of the captain's table, was the entire +care-free license and ease, the almost frantic democracy of those +inferior fellows the harpooneers. While their masters, the mates, +seemed afraid of the sound of the hinges of their own jaws, the +harpooneers chewed their food with such a relish that there was a +report to it. They dined like lords; they filled their bellies like +Indian ships all day loading with spices. Such portentous appetites +had Queequeg and Tashtego, that to fill out the vacancies made by the +previous repast, often the pale Dough-Boy was fain to bring on a +great baron of salt-junk, seemingly quarried out of the solid ox. +And if he were not lively about it, if he did not go with a nimble +hop-skip-and-jump, then Tashtego had an ungentlemanly way of +accelerating him by darting a fork at his back, harpoon-wise. And +once Daggoo, seized with a sudden humor, assisted Dough-Boy's memory +by snatching him up bodily, and thrusting his head into a great empty +wooden trencher, while Tashtego, knife in hand, began laying out the +circle preliminary to scalping him. He was naturally a very nervous, +shuddering sort of little fellow, this bread-faced steward; the +progeny of a bankrupt baker and a hospital nurse. And what with the +standing spectacle of the black terrific Ahab, and the periodical +tumultuous visitations of these three savages, Dough-Boy's whole life +was one continual lip-quiver. Commonly, after seeing the harpooneers +furnished with all things they demanded, he would escape from their +clutches into his little pantry adjoining, and fearfully peep out at +them through the blinds of its door, till all was over. + +It was a sight to see Queequeg seated over against Tashtego, opposing +his filed teeth to the Indian's: crosswise to them, Daggoo seated on +the floor, for a bench would have brought his hearse-plumed head to +the low carlines; at every motion of his colossal limbs, making the +low cabin framework to shake, as when an African elephant goes +passenger in a ship. But for all this, the great negro was +wonderfully abstemious, not to say dainty. It seemed hardly possible +that by such comparatively small mouthfuls he could keep up the +vitality diffused through so broad, baronial, and superb a person. +But, doubtless, this noble savage fed strong and drank deep of the +abounding element of air; and through his dilated nostrils snuffed in +the sublime life of the worlds. Not by beef or by bread, are giants +made or nourished. But Queequeg, he had a mortal, barbaric smack of +the lip in eating--an ugly sound enough--so much so, that the +trembling Dough-Boy almost looked to see whether any marks of teeth +lurked in his own lean arms. And when he would hear Tashtego singing +out for him to produce himself, that his bones might be picked, the +simple-witted steward all but shattered the crockery hanging round +him in the pantry, by his sudden fits of the palsy. Nor did the +whetstone which the harpooneers carried in their pockets, for their +lances and other weapons; and with which whetstones, at dinner, they +would ostentatiously sharpen their knives; that grating sound did not +at all tend to tranquillize poor Dough-Boy. How could he forget that +in his Island days, Queequeg, for one, must certainly have been +guilty of some murderous, convivial indiscretions. Alas! Dough-Boy! +hard fares the white waiter who waits upon cannibals. Not a napkin +should he carry on his arm, but a buckler. In good time, though, to +his great delight, the three salt-sea warriors would rise and depart; +to his credulous, fable-mongering ears, all their martial bones +jingling in them at every step, like Moorish scimetars in scabbards. + +But, though these barbarians dined in the cabin, and nominally lived +there; still, being anything but sedentary in their habits, they were +scarcely ever in it except at mealtimes, and just before +sleeping-time, when they passed through it to their own peculiar +quarters. + +In this one matter, Ahab seemed no exception to most American whale +captains, who, as a set, rather incline to the opinion that by rights +the ship's cabin belongs to them; and that it is by courtesy alone +that anybody else is, at any time, permitted there. So that, in real +truth, the mates and harpooneers of the Pequod might more properly be +said to have lived out of the cabin than in it. For when they did +enter it, it was something as a street-door enters a house; turning +inwards for a moment, only to be turned out the next; and, as a +permanent thing, residing in the open air. Nor did they lose much +hereby; in the cabin was no companionship; socially, Ahab was +inaccessible. Though nominally included in the census of +Christendom, he was still an alien to it. He lived in the world, as +the last of the Grisly Bears lived in settled Missouri. And as when +Spring and Summer had departed, that wild Logan of the woods, burying +himself in the hollow of a tree, lived out the winter there, sucking +his own paws; so, in his inclement, howling old age, Ahab's soul, +shut up in the caved trunk of his body, there fed upon the sullen +paws of its gloom! + + + +CHAPTER 35 + +The Mast-Head. + + +It was during the more pleasant weather, that in due rotation with +the other seamen my first mast-head came round. + +In most American whalemen the mast-heads are manned almost +simultaneously with the vessel's leaving her port; even though she +may have fifteen thousand miles, and more, to sail ere reaching her +proper cruising ground. And if, after a three, four, or five years' +voyage she is drawing nigh home with anything empty in her--say, an +empty vial even--then, her mast-heads are kept manned to the last; +and not till her skysail-poles sail in among the spires of the port, +does she altogether relinquish the hope of capturing one whale more. + +Now, as the business of standing mast-heads, ashore or afloat, is a +very ancient and interesting one, let us in some measure expatiate +here. I take it, that the earliest standers of mast-heads were the +old Egyptians; because, in all my researches, I find none prior to +them. For though their progenitors, the builders of Babel, must +doubtless, by their tower, have intended to rear the loftiest +mast-head in all Asia, or Africa either; yet (ere the final truck was +put to it) as that great stone mast of theirs may be said to have +gone by the board, in the dread gale of God's wrath; therefore, we +cannot give these Babel builders priority over the Egyptians. And +that the Egyptians were a nation of mast-head standers, is an +assertion based upon the general belief among archaeologists, that +the first pyramids were founded for astronomical purposes: a theory +singularly supported by the peculiar stair-like formation of all four +sides of those edifices; whereby, with prodigious long upliftings of +their legs, those old astronomers were wont to mount to the apex, and +sing out for new stars; even as the look-outs of a modern ship sing +out for a sail, or a whale just bearing in sight. In Saint Stylites, +the famous Christian hermit of old times, who built him a lofty stone +pillar in the desert and spent the whole latter portion of his life +on its summit, hoisting his food from the ground with a tackle; in +him we have a remarkable instance of a dauntless +stander-of-mast-heads; who was not to be driven from his place by +fogs or frosts, rain, hail, or sleet; but valiantly facing everything +out to the last, literally died at his post. Of modern +standers-of-mast-heads we have but a lifeless set; mere stone, iron, +and bronze men; who, though well capable of facing out a stiff gale, +are still entirely incompetent to the business of singing out upon +discovering any strange sight. There is Napoleon; who, upon the top +of the column of Vendome, stands with arms folded, some one hundred +and fifty feet in the air; careless, now, who rules the decks below; +whether Louis Philippe, Louis Blanc, or Louis the Devil. Great +Washington, too, stands high aloft on his towering main-mast in +Baltimore, and like one of Hercules' pillars, his column marks that +point of human grandeur beyond which few mortals will go. Admiral +Nelson, also, on a capstan of gun-metal, stands his mast-head in +Trafalgar Square; and ever when most obscured by that London smoke, +token is yet given that a hidden hero is there; for where there is +smoke, must be fire. But neither great Washington, nor Napoleon, nor +Nelson, will answer a single hail from below, however madly invoked +to befriend by their counsels the distracted decks upon which they +gaze; however it may be surmised, that their spirits penetrate +through the thick haze of the future, and descry what shoals and what +rocks must be shunned. + +It may seem unwarrantable to couple in any respect the mast-head +standers of the land with those of the sea; but that in truth it is +not so, is plainly evinced by an item for which Obed Macy, the sole +historian of Nantucket, stands accountable. The worthy Obed tells +us, that in the early times of the whale fishery, ere ships were +regularly launched in pursuit of the game, the people of that island +erected lofty spars along the sea-coast, to which the look-outs +ascended by means of nailed cleats, something as fowls go upstairs in +a hen-house. A few years ago this same plan was adopted by the Bay +whalemen of New Zealand, who, upon descrying the game, gave notice to +the ready-manned boats nigh the beach. But this custom has now +become obsolete; turn we then to the one proper mast-head, that of a +whale-ship at sea. The three mast-heads are kept manned from +sun-rise to sun-set; the seamen taking their regular turns (as at the +helm), and relieving each other every two hours. In the serene +weather of the tropics it is exceedingly pleasant the mast-head; nay, +to a dreamy meditative man it is delightful. There you stand, a +hundred feet above the silent decks, striding along the deep, as if +the masts were gigantic stilts, while beneath you and between your +legs, as it were, swim the hugest monsters of the sea, even as ships +once sailed between the boots of the famous Colossus at old Rhodes. +There you stand, lost in the infinite series of the sea, with nothing +ruffled but the waves. The tranced ship indolently rolls; the drowsy +trade winds blow; everything resolves you into languor. For the most +part, in this tropic whaling life, a sublime uneventfulness invests +you; you hear no news; read no gazettes; extras with startling +accounts of commonplaces never delude you into unnecessary +excitements; you hear of no domestic afflictions; bankrupt +securities; fall of stocks; are never troubled with the thought of +what you shall have for dinner--for all your meals for three years +and more are snugly stowed in casks, and your bill of fare is +immutable. + +In one of those southern whalesmen, on a long three or four years' +voyage, as often happens, the sum of the various hours you spend at +the mast-head would amount to several entire months. And it is much +to be deplored that the place to which you devote so considerable a +portion of the whole term of your natural life, should be so sadly +destitute of anything approaching to a cosy inhabitiveness, or +adapted to breed a comfortable localness of feeling, such as pertains +to a bed, a hammock, a hearse, a sentry box, a pulpit, a coach, or +any other of those small and snug contrivances in which men +temporarily isolate themselves. Your most usual point of perch is +the head of the t' gallant-mast, where you stand upon two thin +parallel sticks (almost peculiar to whalemen) called the t' gallant +cross-trees. Here, tossed about by the sea, the beginner feels about +as cosy as he would standing on a bull's horns. To be sure, in cold +weather you may carry your house aloft with you, in the shape of a +watch-coat; but properly speaking the thickest watch-coat is no more +of a house than the unclad body; for as the soul is glued inside of +its fleshy tabernacle, and cannot freely move about in it, nor even +move out of it, without running great risk of perishing (like an +ignorant pilgrim crossing the snowy Alps in winter); so a watch-coat +is not so much of a house as it is a mere envelope, or additional +skin encasing you. You cannot put a shelf or chest of drawers in +your body, and no more can you make a convenient closet of your +watch-coat. + +Concerning all this, it is much to be deplored that the mast-heads of +a southern whale ship are unprovided with those enviable little tents +or pulpits, called CROW'S-NESTS, in which the look-outs of a +Greenland whaler are protected from the inclement weather of the +frozen seas. In the fireside narrative of Captain Sleet, entitled +"A Voyage among the Icebergs, in quest of the Greenland Whale, and +incidentally for the re-discovery of the Lost Icelandic Colonies of +Old Greenland;" in this admirable volume, all standers of mast-heads +are furnished with a charmingly circumstantial account of the then +recently invented CROW'S-NEST of the Glacier, which was the name of +Captain Sleet's good craft. He called it the SLEET'S CROW'S-NEST, in +honour of himself; he being the original inventor and patentee, and +free from all ridiculous false delicacy, and holding that if we call +our own children after our own names (we fathers being the original +inventors and patentees), so likewise should we denominate after +ourselves any other apparatus we may beget. In shape, the Sleet's +crow's-nest is something like a large tierce or pipe; it is open +above, however, where it is furnished with a movable side-screen to +keep to windward of your head in a hard gale. Being fixed on the +summit of the mast, you ascend into it through a little trap-hatch in +the bottom. On the after side, or side next the stern of the ship, +is a comfortable seat, with a locker underneath for umbrellas, +comforters, and coats. In front is a leather rack, in which to keep +your speaking trumpet, pipe, telescope, and other nautical +conveniences. When Captain Sleet in person stood his mast-head in +this crow's-nest of his, he tells us that he always had a rifle with +him (also fixed in the rack), together with a powder flask and shot, +for the purpose of popping off the stray narwhales, or vagrant sea +unicorns infesting those waters; for you cannot successfully shoot at +them from the deck owing to the resistance of the water, but to shoot +down upon them is a very different thing. Now, it was plainly a +labor of love for Captain Sleet to describe, as he does, all the +little detailed conveniences of his crow's-nest; but though he so +enlarges upon many of these, and though he treats us to a very +scientific account of his experiments in this crow's-nest, with a +small compass he kept there for the purpose of counteracting the +errors resulting from what is called the "local attraction" of all +binnacle magnets; an error ascribable to the horizontal vicinity of +the iron in the ship's planks, and in the Glacier's case, perhaps, to +there having been so many broken-down blacksmiths among her crew; I +say, that though the Captain is very discreet and scientific here, +yet, for all his learned "binnacle deviations," "azimuth compass +observations," and "approximate errors," he knows very well, Captain +Sleet, that he was not so much immersed in those profound magnetic +meditations, as to fail being attracted occasionally towards that +well replenished little case-bottle, so nicely tucked in on one side +of his crow's nest, within easy reach of his hand. Though, upon the +whole, I greatly admire and even love the brave, the honest, and +learned Captain; yet I take it very ill of him that he should so +utterly ignore that case-bottle, seeing what a faithful friend and +comforter it must have been, while with mittened fingers and hooded +head he was studying the mathematics aloft there in that bird's nest +within three or four perches of the pole. + +But if we Southern whale-fishers are not so snugly housed aloft as +Captain Sleet and his Greenlandmen were; yet that disadvantage is +greatly counter-balanced by the widely contrasting serenity of those +seductive seas in which we South fishers mostly float. For one, I +used to lounge up the rigging very leisurely, resting in the top to +have a chat with Queequeg, or any one else off duty whom I might find +there; then ascending a little way further, and throwing a lazy leg +over the top-sail yard, take a preliminary view of the watery +pastures, and so at last mount to my ultimate destination. + +Let me make a clean breast of it here, and frankly admit that I kept +but sorry guard. With the problem of the universe revolving in me, +how could I--being left completely to myself at such a +thought-engendering altitude--how could I but lightly hold my +obligations to observe all whale-ships' standing orders, "Keep your +weather eye open, and sing out every time." + +And let me in this place movingly admonish you, ye ship-owners of +Nantucket! Beware of enlisting in your vigilant fisheries any lad +with lean brow and hollow eye; given to unseasonable meditativeness; +and who offers to ship with the Phaedon instead of Bowditch in his +head. Beware of such an one, I say; your whales must be seen before +they can be killed; and this sunken-eyed young Platonist will tow you +ten wakes round the world, and never make you one pint of sperm the +richer. Nor are these monitions at all unneeded. For nowadays, the +whale-fishery furnishes an asylum for many romantic, melancholy, and +absent-minded young men, disgusted with the carking cares of earth, +and seeking sentiment in tar and blubber. Childe Harold not +unfrequently perches himself upon the mast-head of some luckless +disappointed whale-ship, and in moody phrase ejaculates:-- + +"Roll on, thou deep and dark blue ocean, roll! Ten thousand +blubber-hunters sweep over thee in vain." + +Very often do the captains of such ships take those absent-minded +young philosophers to task, upbraiding them with not feeling +sufficient "interest" in the voyage; half-hinting that they are so +hopelessly lost to all honourable ambition, as that in their secret +souls they would rather not see whales than otherwise. But all in +vain; those young Platonists have a notion that their vision is +imperfect; they are short-sighted; what use, then, to strain the +visual nerve? They have left their opera-glasses at home. + +"Why, thou monkey," said a harpooneer to one of these lads, "we've +been cruising now hard upon three years, and thou hast not raised a +whale yet. Whales are scarce as hen's teeth whenever thou art up +here." Perhaps they were; or perhaps there might have been shoals of +them in the far horizon; but lulled into such an opium-like +listlessness of vacant, unconscious reverie is this absent-minded +youth by the blending cadence of waves with thoughts, that at last he +loses his identity; takes the mystic ocean at his feet for the +visible image of that deep, blue, bottomless soul, pervading mankind +and nature; and every strange, half-seen, gliding, beautiful thing +that eludes him; every dimly-discovered, uprising fin of some +undiscernible form, seems to him the embodiment of those elusive +thoughts that only people the soul by continually flitting through +it. In this enchanted mood, thy spirit ebbs away to whence it came; +becomes diffused through time and space; like Crammer's sprinkled +Pantheistic ashes, forming at last a part of every shore the round +globe over. + +There is no life in thee, now, except that rocking life imparted by a +gently rolling ship; by her, borrowed from the sea; by the sea, from +the inscrutable tides of God. But while this sleep, this dream is on +ye, move your foot or hand an inch; slip your hold at all; and your +identity comes back in horror. Over Descartian vortices you hover. +And perhaps, at mid-day, in the fairest weather, with one +half-throttled shriek you drop through that transparent air into the +summer sea, no more to rise for ever. Heed it well, ye Pantheists! + + + +CHAPTER 36 + +The Quarter-Deck. + + +(ENTER AHAB: THEN, ALL) + + +It was not a great while after the affair of the pipe, that one +morning shortly after breakfast, Ahab, as was his wont, ascended the +cabin-gangway to the deck. There most sea-captains usually walk at +that hour, as country gentlemen, after the same meal, take a few +turns in the garden. + +Soon his steady, ivory stride was heard, as to and fro he paced his +old rounds, upon planks so familiar to his tread, that they were all +over dented, like geological stones, with the peculiar mark of his +walk. Did you fixedly gaze, too, upon that ribbed and dented brow; +there also, you would see still stranger foot-prints--the foot-prints +of his one unsleeping, ever-pacing thought. + +But on the occasion in question, those dents looked deeper, even as +his nervous step that morning left a deeper mark. And, so full of +his thought was Ahab, that at every uniform turn that he made, now at +the main-mast and now at the binnacle, you could almost see that +thought turn in him as he turned, and pace in him as he paced; so +completely possessing him, indeed, that it all but seemed the inward +mould of every outer movement. + +"D'ye mark him, Flask?" whispered Stubb; "the chick that's in him +pecks the shell. 'Twill soon be out." + +The hours wore on;--Ahab now shut up within his cabin; anon, pacing +the deck, with the same intense bigotry of purpose in his aspect. + +It drew near the close of day. Suddenly he came to a halt by the +bulwarks, and inserting his bone leg into the auger-hole there, and +with one hand grasping a shroud, he ordered Starbuck to send +everybody aft. + +"Sir!" said the mate, astonished at an order seldom or never given on +ship-board except in some extraordinary case. + +"Send everybody aft," repeated Ahab. "Mast-heads, there! come down!" + +When the entire ship's company were assembled, and with curious and +not wholly unapprehensive faces, were eyeing him, for he looked not +unlike the weather horizon when a storm is coming up, Ahab, after +rapidly glancing over the bulwarks, and then darting his eyes among +the crew, started from his standpoint; and as though not a soul were +nigh him resumed his heavy turns upon the deck. With bent head and +half-slouched hat he continued to pace, unmindful of the wondering +whispering among the men; till Stubb cautiously whispered to Flask, +that Ahab must have summoned them there for the purpose of witnessing +a pedestrian feat. But this did not last long. Vehemently pausing, +he cried:-- + +"What do ye do when ye see a whale, men?" + +"Sing out for him!" was the impulsive rejoinder from a score of +clubbed voices. + +"Good!" cried Ahab, with a wild approval in his tones; observing the +hearty animation into which his unexpected question had so +magnetically thrown them. + +"And what do ye next, men?" + +"Lower away, and after him!" + +"And what tune is it ye pull to, men?" + +"A dead whale or a stove boat!" + +More and more strangely and fiercely glad and approving, grew the +countenance of the old man at every shout; while the mariners began +to gaze curiously at each other, as if marvelling how it was that +they themselves became so excited at such seemingly purposeless +questions. + +But, they were all eagerness again, as Ahab, now half-revolving in +his pivot-hole, with one hand reaching high up a shroud, and tightly, +almost convulsively grasping it, addressed them thus:-- + +"All ye mast-headers have before now heard me give orders about a +white whale. Look ye! d'ye see this Spanish ounce of gold?"--holding +up a broad bright coin to the sun--"it is a sixteen dollar piece, +men. D'ye see it? Mr. Starbuck, hand me yon top-maul." + +While the mate was getting the hammer, Ahab, without speaking, was +slowly rubbing the gold piece against the skirts of his jacket, as if +to heighten its lustre, and without using any words was meanwhile +lowly humming to himself, producing a sound so strangely muffled and +inarticulate that it seemed the mechanical humming of the wheels of +his vitality in him. + +Receiving the top-maul from Starbuck, he advanced towards the +main-mast with the hammer uplifted in one hand, exhibiting the gold +with the other, and with a high raised voice exclaiming: "Whosoever +of ye raises me a white-headed whale with a wrinkled brow and a +crooked jaw; whosoever of ye raises me that white-headed whale, with +three holes punctured in his starboard fluke--look ye, whosoever of +ye raises me that same white whale, he shall have this gold ounce, my +boys!" + +"Huzza! huzza!" cried the seamen, as with swinging tarpaulins they +hailed the act of nailing the gold to the mast. + +"It's a white whale, I say," resumed Ahab, as he threw down the +topmaul: "a white whale. Skin your eyes for him, men; look sharp for +white water; if ye see but a bubble, sing out." + +All this while Tashtego, Daggoo, and Queequeg had looked on with even +more intense interest and surprise than the rest, and at the mention +of the wrinkled brow and crooked jaw they had started as if each was +separately touched by some specific recollection. + +"Captain Ahab," said Tashtego, "that white whale must be the same +that some call Moby Dick." + +"Moby Dick?" shouted Ahab. "Do ye know the white whale then, Tash?" + +"Does he fan-tail a little curious, sir, before he goes down?" said +the Gay-Header deliberately. + +"And has he a curious spout, too," said Daggoo, "very bushy, even for +a parmacetty, and mighty quick, Captain Ahab?" + +"And he have one, two, three--oh! good many iron in him hide, too, +Captain," cried Queequeg disjointedly, "all twiske-tee be-twisk, like +him--him--" faltering hard for a word, and screwing his hand round +and round as though uncorking a bottle--"like him--him--" + +"Corkscrew!" cried Ahab, "aye, Queequeg, the harpoons lie all twisted +and wrenched in him; aye, Daggoo, his spout is a big one, like a +whole shock of wheat, and white as a pile of our Nantucket wool after +the great annual sheep-shearing; aye, Tashtego, and he fan-tails like +a split jib in a squall. Death and devils! men, it is Moby Dick ye +have seen--Moby Dick--Moby Dick!" + +"Captain Ahab," said Starbuck, who, with Stubb and Flask, had thus +far been eyeing his superior with increasing surprise, but at last +seemed struck with a thought which somewhat explained all the wonder. +"Captain Ahab, I have heard of Moby Dick--but it was not Moby Dick +that took off thy leg?" + +"Who told thee that?" cried Ahab; then pausing, "Aye, Starbuck; aye, +my hearties all round; it was Moby Dick that dismasted me; Moby Dick +that brought me to this dead stump I stand on now. Aye, aye," he +shouted with a terrific, loud, animal sob, like that of a +heart-stricken moose; "Aye, aye! it was that accursed white whale +that razeed me; made a poor pegging lubber of me for ever and a day!" +Then tossing both arms, with measureless imprecations he shouted +out: "Aye, aye! and I'll chase him round Good Hope, and round the +Horn, and round the Norway Maelstrom, and round perdition's flames +before I give him up. And this is what ye have shipped for, men! to +chase that white whale on both sides of land, and over all sides of +earth, till he spouts black blood and rolls fin out. What say ye, +men, will ye splice hands on it, now? I think ye do look brave." + +"Aye, aye!" shouted the harpooneers and seamen, running closer to the +excited old man: "A sharp eye for the white whale; a sharp lance for +Moby Dick!" + +"God bless ye," he seemed to half sob and half shout. "God bless ye, +men. Steward! go draw the great measure of grog. But what's this +long face about, Mr. Starbuck; wilt thou not chase the white whale? +art not game for Moby Dick?" + +"I am game for his crooked jaw, and for the jaws of Death too, +Captain Ahab, if it fairly comes in the way of the business we +follow; but I came here to hunt whales, not my commander's vengeance. +How many barrels will thy vengeance yield thee even if thou gettest +it, Captain Ahab? it will not fetch thee much in our Nantucket +market." + +"Nantucket market! Hoot! But come closer, Starbuck; thou requirest +a little lower layer. If money's to be the measurer, man, and the +accountants have computed their great counting-house the globe, by +girdling it with guineas, one to every three parts of an inch; then, +let me tell thee, that my vengeance will fetch a great premium HERE!" + +"He smites his chest," whispered Stubb, "what's that for? methinks it +rings most vast, but hollow." + +"Vengeance on a dumb brute!" cried Starbuck, "that simply smote thee +from blindest instinct! Madness! To be enraged with a dumb thing, +Captain Ahab, seems blasphemous." + +"Hark ye yet again--the little lower layer. All visible objects, +man, are but as pasteboard masks. But in each event--in the living +act, the undoubted deed--there, some unknown but still reasoning +thing puts forth the mouldings of its features from behind the +unreasoning mask. If man will strike, strike through the mask! How +can the prisoner reach outside except by thrusting through the wall? +To me, the white whale is that wall, shoved near to me. Sometimes I +think there's naught beyond. But 'tis enough. He tasks me; he heaps +me; I see in him outrageous strength, with an inscrutable malice +sinewing it. That inscrutable thing is chiefly what I hate; and be +the white whale agent, or be the white whale principal, I will wreak +that hate upon him. Talk not to me of blasphemy, man; I'd strike the +sun if it insulted me. For could the sun do that, then could I do +the other; since there is ever a sort of fair play herein, jealousy +presiding over all creations. But not my master, man, is even that +fair play. Who's over me? Truth hath no confines. Take off thine +eye! more intolerable than fiends' glarings is a doltish stare! So, +so; thou reddenest and palest; my heat has melted thee to anger-glow. +But look ye, Starbuck, what is said in heat, that thing unsays +itself. There are men from whom warm words are small indignity. I +meant not to incense thee. Let it go. Look! see yonder Turkish +cheeks of spotted tawn--living, breathing pictures painted by the +sun. The Pagan leopards--the unrecking and unworshipping things, +that live; and seek, and give no reasons for the torrid life they +feel! The crew, man, the crew! Are they not one and all with Ahab, +in this matter of the whale? See Stubb! he laughs! See yonder +Chilian! he snorts to think of it. Stand up amid the general +hurricane, thy one tost sapling cannot, Starbuck! And what is it? +Reckon it. 'Tis but to help strike a fin; no wondrous feat for +Starbuck. What is it more? From this one poor hunt, then, the best +lance out of all Nantucket, surely he will not hang back, when every +foremast-hand has clutched a whetstone? Ah! constrainings seize +thee; I see! the billow lifts thee! Speak, but speak!--Aye, aye! thy +silence, then, THAT voices thee. (ASIDE) Something shot from my +dilated nostrils, he has inhaled it in his lungs. Starbuck now is +mine; cannot oppose me now, without rebellion." + +"God keep me!--keep us all!" murmured Starbuck, lowly. + +But in his joy at the enchanted, tacit acquiescence of the mate, Ahab +did not hear his foreboding invocation; nor yet the low laugh from +the hold; nor yet the presaging vibrations of the winds in the +cordage; nor yet the hollow flap of the sails against the masts, as +for a moment their hearts sank in. For again Starbuck's downcast +eyes lighted up with the stubbornness of life; the subterranean laugh +died away; the winds blew on; the sails filled out; the ship heaved +and rolled as before. Ah, ye admonitions and warnings! why stay ye +not when ye come? But rather are ye predictions than warnings, ye +shadows! Yet not so much predictions from without, as verifications +of the foregoing things within. For with little external to +constrain us, the innermost necessities in our being, these still +drive us on. + +"The measure! the measure!" cried Ahab. + +Receiving the brimming pewter, and turning to the harpooneers, he +ordered them to produce their weapons. Then ranging them before him +near the capstan, with their harpoons in their hands, while his three +mates stood at his side with their lances, and the rest of the ship's +company formed a circle round the group; he stood for an instant +searchingly eyeing every man of his crew. But those wild eyes met +his, as the bloodshot eyes of the prairie wolves meet the eye of +their leader, ere he rushes on at their head in the trail of the +bison; but, alas! only to fall into the hidden snare of the Indian. + +"Drink and pass!" he cried, handing the heavy charged flagon to the +nearest seaman. "The crew alone now drink. Round with it, round! +Short draughts--long swallows, men; 'tis hot as Satan's hoof. So, +so; it goes round excellently. It spiralizes in ye; forks out at the +serpent-snapping eye. Well done; almost drained. That way it went, +this way it comes. Hand it me--here's a hollow! Men, ye seem the +years; so brimming life is gulped and gone. Steward, refill! + +"Attend now, my braves. I have mustered ye all round this capstan; +and ye mates, flank me with your lances; and ye harpooneers, stand +there with your irons; and ye, stout mariners, ring me in, that I may +in some sort revive a noble custom of my fisherman fathers before +me. O men, you will yet see that--Ha! boy, come back? bad pennies +come not sooner. Hand it me. Why, now, this pewter had run brimming +again, were't not thou St. Vitus' imp--away, thou ague! + +"Advance, ye mates! Cross your lances full before me. Well done! +Let me touch the axis." So saying, with extended arm, he grasped the +three level, radiating lances at their crossed centre; while so +doing, suddenly and nervously twitched them; meanwhile, glancing +intently from Starbuck to Stubb; from Stubb to Flask. It seemed as +though, by some nameless, interior volition, he would fain have +shocked into them the same fiery emotion accumulated within the +Leyden jar of his own magnetic life. The three mates quailed before +his strong, sustained, and mystic aspect. Stubb and Flask looked +sideways from him; the honest eye of Starbuck fell downright. + +"In vain!" cried Ahab; "but, maybe, 'tis well. For did ye three but +once take the full-forced shock, then mine own electric thing, THAT +had perhaps expired from out me. Perchance, too, it would have +dropped ye dead. Perchance ye need it not. Down lances! And now, +ye mates, I do appoint ye three cupbearers to my three pagan kinsmen +there--yon three most honourable gentlemen and noblemen, my valiant +harpooneers. Disdain the task? What, when the great Pope washes the +feet of beggars, using his tiara for ewer? Oh, my sweet cardinals! +your own condescension, THAT shall bend ye to it. I do not order ye; +ye will it. Cut your seizings and draw the poles, ye harpooneers!" + +Silently obeying the order, the three harpooneers now stood with the +detached iron part of their harpoons, some three feet long, held, +barbs up, before him. + +"Stab me not with that keen steel! Cant them; cant them over! know +ye not the goblet end? Turn up the socket! So, so; now, ye +cup-bearers, advance. The irons! take them; hold them while I fill!" +Forthwith, slowly going from one officer to the other, he brimmed +the harpoon sockets with the fiery waters from the pewter. + +"Now, three to three, ye stand. Commend the murderous chalices! +Bestow them, ye who are now made parties to this indissoluble league. +Ha! Starbuck! but the deed is done! Yon ratifying sun now waits to +sit upon it. Drink, ye harpooneers! drink and swear, ye men that man +the deathful whaleboat's bow--Death to Moby Dick! God hunt us all, +if we do not hunt Moby Dick to his death!" The long, barbed steel +goblets were lifted; and to cries and maledictions against the white +whale, the spirits were simultaneously quaffed down with a hiss. +Starbuck paled, and turned, and shivered. Once more, and finally, +the replenished pewter went the rounds among the frantic crew; when, +waving his free hand to them, they all dispersed; and Ahab retired +within his cabin. + + + +CHAPTER 37 + +Sunset. + + +THE CABIN; BY THE STERN WINDOWS; AHAB SITTING ALONE, AND GAZING OUT. + + +I leave a white and turbid wake; pale waters, paler cheeks, where'er +I sail. The envious billows sidelong swell to whelm my track; let +them; but first I pass. + +Yonder, by ever-brimming goblet's rim, the warm waves blush like +wine. The gold brow plumbs the blue. The diver sun--slow dived from +noon--goes down; my soul mounts up! she wearies with her endless +hill. Is, then, the crown too heavy that I wear? this Iron Crown of +Lombardy. Yet is it bright with many a gem; I the wearer, see not +its far flashings; but darkly feel that I wear that, that dazzlingly +confounds. 'Tis iron--that I know--not gold. 'Tis split, too--that +I feel; the jagged edge galls me so, my brain seems to beat against +the solid metal; aye, steel skull, mine; the sort that needs no +helmet in the most brain-battering fight! + +Dry heat upon my brow? Oh! time was, when as the sunrise nobly +spurred me, so the sunset soothed. No more. This lovely light, it +lights not me; all loveliness is anguish to me, since I can ne'er +enjoy. Gifted with the high perception, I lack the low, enjoying +power; damned, most subtly and most malignantly! damned in the midst +of Paradise! Good night--good night! (WAVING HIS HAND, HE MOVES FROM +THE WINDOW.) + +'Twas not so hard a task. I thought to find one stubborn, at the +least; but my one cogged circle fits into all their various wheels, +and they revolve. Or, if you will, like so many ant-hills of powder, +they all stand before me; and I their match. Oh, hard! that to fire +others, the match itself must needs be wasting! What I've dared, +I've willed; and what I've willed, I'll do! They think me +mad--Starbuck does; but I'm demoniac, I am madness maddened! That +wild madness that's only calm to comprehend itself! The prophecy was +that I should be dismembered; and--Aye! I lost this leg. I now +prophesy that I will dismember my dismemberer. Now, then, be the +prophet and the fulfiller one. That's more than ye, ye great gods, +ever were. I laugh and hoot at ye, ye cricket-players, ye pugilists, +ye deaf Burkes and blinded Bendigoes! I will not say as schoolboys +do to bullies--Take some one of your own size; don't pommel ME! No, +ye've knocked me down, and I am up again; but YE have run and hidden. +Come forth from behind your cotton bags! I have no long gun to +reach ye. Come, Ahab's compliments to ye; come and see if ye can +swerve me. Swerve me? ye cannot swerve me, else ye swerve +yourselves! man has ye there. Swerve me? The path to my fixed +purpose is laid with iron rails, whereon my soul is grooved to run. +Over unsounded gorges, through the rifled hearts of mountains, under +torrents' beds, unerringly I rush! Naught's an obstacle, naught's an +angle to the iron way! + + + +CHAPTER 38 + +Dusk. + + +BY THE MAINMAST; STARBUCK LEANING AGAINST IT. + + +My soul is more than matched; she's overmanned; and by a madman! +Insufferable sting, that sanity should ground arms on such a field! +But he drilled deep down, and blasted all my reason out of me! I +think I see his impious end; but feel that I must help him to it. +Will I, nill I, the ineffable thing has tied me to him; tows me with +a cable I have no knife to cut. Horrible old man! Who's over him, +he cries;--aye, he would be a democrat to all above; look, how he +lords it over all below! Oh! I plainly see my miserable office,--to +obey, rebelling; and worse yet, to hate with touch of pity! For in +his eyes I read some lurid woe would shrivel me up, had I it. Yet is +there hope. Time and tide flow wide. The hated whale has the round +watery world to swim in, as the small gold-fish has its glassy globe. +His heaven-insulting purpose, God may wedge aside. I would up +heart, were it not like lead. But my whole clock's run down; my +heart the all-controlling weight, I have no key to lift again. + + +[A BURST OF REVELRY FROM THE FORECASTLE.] + + +Oh, God! to sail with such a heathen crew that have small touch of +human mothers in them! Whelped somewhere by the sharkish sea. The +white whale is their demigorgon. Hark! the infernal orgies! that +revelry is forward! mark the unfaltering silence aft! Methinks it +pictures life. Foremost through the sparkling sea shoots on the gay, +embattled, bantering bow, but only to drag dark Ahab after it, where +he broods within his sternward cabin, builded over the dead water of +the wake, and further on, hunted by its wolfish gurglings. The long +howl thrills me through! Peace! ye revellers, and set the watch! +Oh, life! 'tis in an hour like this, with soul beat down and held to +knowledge,--as wild, untutored things are forced to feed--Oh, life! +'tis now that I do feel the latent horror in thee! but 'tis not me! +that horror's out of me! and with the soft feeling of the human in +me, yet will I try to fight ye, ye grim, phantom futures! Stand by +me, hold me, bind me, O ye blessed influences! + + + +CHAPTER 39 + +First Night Watch. + +Fore-Top. + +(STUBB SOLUS, AND MENDING A BRACE.) + + +Ha! ha! ha! ha! hem! clear my throat!--I've been thinking over it +ever since, and that ha, ha's the final consequence. Why so? +Because a laugh's the wisest, easiest answer to all that's queer; and +come what will, one comfort's always left--that unfailing comfort is, +it's all predestinated. I heard not all his talk with Starbuck; but +to my poor eye Starbuck then looked something as I the other evening +felt. Be sure the old Mogul has fixed him, too. I twigged it, knew +it; had had the gift, might readily have prophesied it--for when I +clapped my eye upon his skull I saw it. Well, Stubb, WISE +Stubb--that's my title--well, Stubb, what of it, Stubb? Here's a +carcase. I know not all that may be coming, but be it what it will, +I'll go to it laughing. Such a waggish leering as lurks in all your +horribles! I feel funny. Fa, la! lirra, skirra! What's my juicy +little pear at home doing now? Crying its eyes out?--Giving a party +to the last arrived harpooneers, I dare say, gay as a frigate's +pennant, and so am I--fa, la! lirra, skirra! Oh-- + +We'll drink to-night with hearts as light, +To love, as gay and fleeting +As bubbles that swim, on the beaker's brim, +And break on the lips while meeting. + + +A brave stave that--who calls? Mr. Starbuck? Aye, aye, sir--(ASIDE) +he's my superior, he has his too, if I'm not mistaken.--Aye, aye, +sir, just through with this job--coming. + + + +CHAPTER 40 + +Midnight, Forecastle. + +HARPOONEERS AND SAILORS. + +(FORESAIL RISES AND DISCOVERS THE WATCH STANDING, LOUNGING, LEANING, +AND LYING IN VARIOUS ATTITUDES, ALL SINGING IN CHORUS.) + +Farewell and adieu to you, Spanish ladies! +Farewell and adieu to you, ladies of Spain! +Our captain's commanded.-- + +1ST NANTUCKET SAILOR. +Oh, boys, don't be sentimental; it's bad for the digestion! Take a +tonic, follow me! +(SINGS, AND ALL FOLLOW) + +Our captain stood upon the deck, +A spy-glass in his hand, +A viewing of those gallant whales +That blew at every strand. +Oh, your tubs in your boats, my boys, +And by your braces stand, +And we'll have one of those fine whales, +Hand, boys, over hand! +So, be cheery, my lads! may your hearts never fail! +While the bold harpooner is striking the whale! + +MATE'S VOICE FROM THE QUARTER-DECK. +Eight bells there, forward! + +2ND NANTUCKET SAILOR. +Avast the chorus! Eight bells there! d'ye hear, bell-boy? Strike +the bell eight, thou Pip! thou blackling! and let me call the watch. +I've the sort of mouth for that--the hogshead mouth. So, so, +(THRUSTS HIS HEAD DOWN THE SCUTTLE,) Star-bo-l-e-e-n-s, a-h-o-y! +Eight bells there below! Tumble up! + +DUTCH SAILOR. +Grand snoozing to-night, maty; fat night for that. I mark this in +our old Mogul's wine; it's quite as deadening to some as filliping to +others. We sing; they sleep--aye, lie down there, like ground-tier +butts. At 'em again! There, take this copper-pump, and hail 'em +through it. Tell 'em to avast dreaming of their lasses. Tell 'em +it's the resurrection; they must kiss their last, and come to +judgment. That's the way--THAT'S it; thy throat ain't spoiled with +eating Amsterdam butter. + +FRENCH SAILOR. +Hist, boys! let's have a jig or two before we ride to anchor in +Blanket Bay. What say ye? There comes the other watch. Stand by +all legs! Pip! little Pip! hurrah with your tambourine! + +PIP. +(SULKY AND SLEEPY) +Don't know where it is. + +FRENCH SAILOR. +Beat thy belly, then, and wag thy ears. Jig it, men, I say; merry's +the word; hurrah! Damn me, won't you dance? Form, now, Indian-file, +and gallop into the double-shuffle? Throw yourselves! Legs! legs! + +ICELAND SAILOR. +I don't like your floor, maty; it's too springy to my taste. I'm +used to ice-floors. I'm sorry to throw cold water on the subject; +but excuse me. + +MALTESE SAILOR. +Me too; where's your girls? Who but a fool would take his left hand +by his right, and say to himself, how d'ye do? Partners! I must +have partners! + +SICILIAN SAILOR. +Aye; girls and a green!--then I'll hop with ye; yea, turn +grasshopper! + +LONG-ISLAND SAILOR. +Well, well, ye sulkies, there's plenty more of us. Hoe corn when you +may, say I. All legs go to harvest soon. Ah! here comes the music; +now for it! + +AZORE SAILOR. +(ASCENDING, AND PITCHING THE TAMBOURINE UP THE SCUTTLE.) +Here you are, Pip; and there's the windlass-bitts; up you mount! +Now, boys! +(THE HALF OF THEM DANCE TO THE TAMBOURINE; SOME GO BELOW; SOME SLEEP +OR LIE AMONG THE COILS OF RIGGING. OATHS A-PLENTY.) + +AZORE SAILOR. +(DANCING) +Go it, Pip! Bang it, bell-boy! Rig it, dig it, stig it, quig it, +bell-boy! Make fire-flies; break the jinglers! + +PIP. +Jinglers, you say?--there goes another, dropped off; I pound it so. + +CHINA SAILOR. +Rattle thy teeth, then, and pound away; make a pagoda of thyself. + + +FRENCH SAILOR. +Merry-mad! Hold up thy hoop, Pip, till I jump through it! Split +jibs! tear yourselves! + +TASHTEGO. +(QUIETLY SMOKING) +That's a white man; he calls that fun: humph! I save my sweat. + +OLD MANX SAILOR. +I wonder whether those jolly lads bethink them of what they are +dancing over. I'll dance over your grave, I will--that's the +bitterest threat of your night-women, that beat head-winds round +corners. O Christ! to think of the green navies and the +green-skulled crews! Well, well; belike the whole world's a ball, as +you scholars have it; and so 'tis right to make one ballroom of it. +Dance on, lads, you're young; I was once. + +3D NANTUCKET SAILOR. +Spell oh!--whew! this is worse than pulling after whales in a +calm--give us a whiff, Tash. + +(THEY CEASE DANCING, AND GATHER IN CLUSTERS. MEANTIME THE SKY +DARKENS--THE WIND RISES.) + +LASCAR SAILOR. +By Brahma! boys, it'll be douse sail soon. The sky-born, high-tide +Ganges turned to wind! Thou showest thy black brow, Seeva! + +MALTESE SAILOR. +(RECLINING AND SHAKING HIS CAP.) +It's the waves--the snow's caps turn to jig it now. They'll shake +their tassels soon. Now would all the waves were women, then I'd go +drown, and chassee with them evermore! There's naught so sweet on +earth--heaven may not match it!--as those swift glances of warm, wild +bosoms in the dance, when the over-arboring arms hide such ripe, +bursting grapes. + +SICILIAN SAILOR. +(RECLINING.) +Tell me not of it! Hark ye, lad--fleet interlacings of the +limbs--lithe swayings--coyings--flutterings! lip! heart! hip! all +graze: unceasing touch and go! not taste, observe ye, else come +satiety. Eh, Pagan? (NUDGING.) + +TAHITAN SAILOR. +(RECLINING ON A MAT.) +Hail, holy nakedness of our dancing girls!--the Heeva-Heeva! Ah! low +veiled, high palmed Tahiti! I still rest me on thy mat, but the soft +soil has slid! I saw thee woven in the wood, my mat! green the first +day I brought ye thence; now worn and wilted quite. Ah me!--not thou +nor I can bear the change! How then, if so be transplanted to yon +sky? Hear I the roaring streams from Pirohitee's peak of spears, +when they leap down the crags and drown the villages?--The blast! the +blast! Up, spine, and meet it! (LEAPS TO HIS FEET.) + +PORTUGUESE SAILOR. +How the sea rolls swashing 'gainst the side! Stand by for reefing, +hearties! the winds are just crossing swords, pell-mell they'll go +lunging presently. + +DANISH SAILOR. +Crack, crack, old ship! so long as thou crackest, thou holdest! Well +done! The mate there holds ye to it stiffly. He's no more afraid +than the isle fort at Cattegat, put there to fight the Baltic with +storm-lashed guns, on which the sea-salt cakes! + +4TH NANTUCKET SAILOR. +He has his orders, mind ye that. I heard old Ahab tell him he must +always kill a squall, something as they burst a waterspout with a +pistol--fire your ship right into it! + +ENGLISH SAILOR. +Blood! but that old man's a grand old cove! We are the lads to hunt +him up his whale! + +ALL. +Aye! aye! + +OLD MANX SAILOR. +How the three pines shake! Pines are the hardest sort of tree to +live when shifted to any other soil, and here there's none but the +crew's cursed clay. Steady, helmsman! steady. This is the sort of +weather when brave hearts snap ashore, and keeled hulls split at sea. +Our captain has his birthmark; look yonder, boys, there's another in +the sky--lurid-like, ye see, all else pitch black. + +DAGGOO. +What of that? Who's afraid of black's afraid of me! I'm quarried +out of it! + +SPANISH SAILOR. +(ASIDE.) He wants to bully, ah!--the old grudge makes me touchy +(ADVANCING.) Aye, harpooneer, thy race is the undeniable dark side of +mankind--devilish dark at that. No offence. + +DAGGOO (GRIMLY). +None. + +ST. JAGO'S SAILOR. +That Spaniard's mad or drunk. But that can't be, or else in his one +case our old Mogul's fire-waters are somewhat long in working. + +5TH NANTUCKET SAILOR. +What's that I saw--lightning? Yes. + +SPANISH SAILOR. +No; Daggoo showing his teeth. + +DAGGOO (SPRINGING). +Swallow thine, mannikin! White skin, white liver! + +SPANISH SAILOR (MEETING HIM). +Knife thee heartily! big frame, small spirit! + +ALL. +A row! a row! a row! + +TASHTEGO (WITH A WHIFF). +A row a'low, and a row aloft--Gods and men--both brawlers! Humph! + +BELFAST SAILOR. +A row! arrah a row! The Virgin be blessed, a row! Plunge in with +ye! + +ENGLISH SAILOR. +Fair play! Snatch the Spaniard's knife! A ring, a ring! + +OLD MANX SAILOR. +Ready formed. There! the ringed horizon. In that ring Cain struck +Abel. Sweet work, right work! No? Why then, God, mad'st thou the +ring? + +MATE'S VOICE FROM THE QUARTER-DECK. +Hands by the halyards! in top-gallant sails! Stand by to reef +topsails! + +ALL. +The squall! the squall! jump, my jollies! (THEY SCATTER.) + + +PIP (SHRINKING UNDER THE WINDLASS). +Jollies? Lord help such jollies! Crish, crash! there goes the +jib-stay! Blang-whang! God! Duck lower, Pip, here comes the royal +yard! It's worse than being in the whirled woods, the last day of +the year! Who'd go climbing after chestnuts now? But there they +go, all cursing, and here I don't. Fine prospects to 'em; they're on +the road to heaven. Hold on hard! Jimmini, what a squall! But +those chaps there are worse yet--they are your white squalls, they. +White squalls? white whale, shirr! shirr! Here have I heard all +their chat just now, and the white whale--shirr! shirr!--but spoken +of once! and only this evening--it makes me jingle all over like my +tambourine--that anaconda of an old man swore 'em in to hunt him! +Oh, thou big white God aloft there somewhere in yon darkness, have +mercy on this small black boy down here; preserve him from all men +that have no bowels to feel fear! + + + +CHAPTER 41 + +Moby Dick. + + +I, Ishmael, was one of that crew; my shouts had gone up with the +rest; my oath had been welded with theirs; and stronger I shouted, +and more did I hammer and clinch my oath, because of the dread in my +soul. A wild, mystical, sympathetical feeling was in me; Ahab's +quenchless feud seemed mine. With greedy ears I learned the history +of that murderous monster against whom I and all the others had taken +our oaths of violence and revenge. + +For some time past, though at intervals only, the unaccompanied, +secluded White Whale had haunted those uncivilized seas mostly +frequented by the Sperm Whale fishermen. But not all of them knew of +his existence; only a few of them, comparatively, had knowingly seen +him; while the number who as yet had actually and knowingly given +battle to him, was small indeed. For, owing to the large number of +whale-cruisers; the disorderly way they were sprinkled over the +entire watery circumference, many of them adventurously pushing their +quest along solitary latitudes, so as seldom or never for a whole +twelvemonth or more on a stretch, to encounter a single news-telling +sail of any sort; the inordinate length of each separate voyage; the +irregularity of the times of sailing from home; all these, with other +circumstances, direct and indirect, long obstructed the spread +through the whole world-wide whaling-fleet of the special +individualizing tidings concerning Moby Dick. It was hardly to be +doubted, that several vessels reported to have encountered, at such +or such a time, or on such or such a meridian, a Sperm Whale of +uncommon magnitude and malignity, which whale, after doing great +mischief to his assailants, had completely escaped them; to some +minds it was not an unfair presumption, I say, that the whale in +question must have been no other than Moby Dick. Yet as of late the +Sperm Whale fishery had been marked by various and not unfrequent +instances of great ferocity, cunning, and malice in the monster +attacked; therefore it was, that those who by accident ignorantly +gave battle to Moby Dick; such hunters, perhaps, for the most part, +were content to ascribe the peculiar terror he bred, more, as it +were, to the perils of the Sperm Whale fishery at large, than to the +individual cause. In that way, mostly, the disastrous encounter +between Ahab and the whale had hitherto been popularly regarded. + +And as for those who, previously hearing of the White Whale, by +chance caught sight of him; in the beginning of the thing they had +every one of them, almost, as boldly and fearlessly lowered for him, +as for any other whale of that species. But at length, such +calamities did ensue in these assaults--not restricted to sprained +wrists and ankles, broken limbs, or devouring amputations--but fatal +to the last degree of fatality; those repeated disastrous repulses, +all accumulating and piling their terrors upon Moby Dick; those +things had gone far to shake the fortitude of many brave hunters, to +whom the story of the White Whale had eventually come. + +Nor did wild rumors of all sorts fail to exaggerate, and still the +more horrify the true histories of these deadly encounters. For not +only do fabulous rumors naturally grow out of the very body of all +surprising terrible events,--as the smitten tree gives birth to its +fungi; but, in maritime life, far more than in that of terra firma, +wild rumors abound, wherever there is any adequate reality for them +to cling to. And as the sea surpasses the land in this matter, so +the whale fishery surpasses every other sort of maritime life, in the +wonderfulness and fearfulness of the rumors which sometimes circulate +there. For not only are whalemen as a body unexempt from that +ignorance and superstitiousness hereditary to all sailors; but of all +sailors, they are by all odds the most directly brought into contact +with whatever is appallingly astonishing in the sea; face to face +they not only eye its greatest marvels, but, hand to jaw, give battle +to them. Alone, in such remotest waters, that though you sailed a +thousand miles, and passed a thousand shores, you would not come to +any chiseled hearth-stone, or aught hospitable beneath that part of +the sun; in such latitudes and longitudes, pursuing too such a +calling as he does, the whaleman is wrapped by influences all tending +to make his fancy pregnant with many a mighty birth. + +No wonder, then, that ever gathering volume from the mere transit +over the widest watery spaces, the outblown rumors of the White Whale +did in the end incorporate with themselves all manner of morbid +hints, and half-formed foetal suggestions of supernatural agencies, +which eventually invested Moby Dick with new terrors unborrowed from +anything that visibly appears. So that in many cases such a panic +did he finally strike, that few who by those rumors, at least, had +heard of the White Whale, few of those hunters were willing to +encounter the perils of his jaw. + +But there were still other and more vital practical influences at +work. Not even at the present day has the original prestige of the +Sperm Whale, as fearfully distinguished from all other species of the +leviathan, died out of the minds of the whalemen as a body. There +are those this day among them, who, though intelligent and courageous +enough in offering battle to the Greenland or Right whale, would +perhaps--either from professional inexperience, or incompetency, or +timidity, decline a contest with the Sperm Whale; at any rate, there +are plenty of whalemen, especially among those whaling nations not +sailing under the American flag, who have never hostilely encountered +the Sperm Whale, but whose sole knowledge of the leviathan is +restricted to the ignoble monster primitively pursued in the North; +seated on their hatches, these men will hearken with a childish +fireside interest and awe, to the wild, strange tales of Southern +whaling. Nor is the pre-eminent tremendousness of the great Sperm +Whale anywhere more feelingly comprehended, than on board of those +prows which stem him. + +And as if the now tested reality of his might had in former legendary +times thrown its shadow before it; we find some book +naturalists--Olassen and Povelson--declaring the Sperm Whale not only +to be a consternation to every other creature in the sea, but also to +be so incredibly ferocious as continually to be athirst for human +blood. Nor even down to so late a time as Cuvier's, were these or +almost similar impressions effaced. For in his Natural History, the +Baron himself affirms that at sight of the Sperm Whale, all fish +(sharks included) are "struck with the most lively terrors," and +"often in the precipitancy of their flight dash themselves against +the rocks with such violence as to cause instantaneous death." And +however the general experiences in the fishery may amend such reports +as these; yet in their full terribleness, even to the bloodthirsty +item of Povelson, the superstitious belief in them is, in some +vicissitudes of their vocation, revived in the minds of the hunters. + +So that overawed by the rumors and portents concerning him, not a few +of the fishermen recalled, in reference to Moby Dick, the earlier +days of the Sperm Whale fishery, when it was oftentimes hard to +induce long practised Right whalemen to embark in the perils of this +new and daring warfare; such men protesting that although other +leviathans might be hopefully pursued, yet to chase and point lance +at such an apparition as the Sperm Whale was not for mortal man. +That to attempt it, would be inevitably to be torn into a quick +eternity. On this head, there are some remarkable documents that may +be consulted. + +Nevertheless, some there were, who even in the face of these things +were ready to give chase to Moby Dick; and a still greater number +who, chancing only to hear of him distantly and vaguely, without the +specific details of any certain calamity, and without superstitious +accompaniments, were sufficiently hardy not to flee from the battle +if offered. + +One of the wild suggestions referred to, as at last coming to be +linked with the White Whale in the minds of the superstitiously +inclined, was the unearthly conceit that Moby Dick was ubiquitous; +that he had actually been encountered in opposite latitudes at one +and the same instant of time. + +Nor, credulous as such minds must have been, was this conceit +altogether without some faint show of superstitious probability. For +as the secrets of the currents in the seas have never yet been +divulged, even to the most erudite research; so the hidden ways of +the Sperm Whale when beneath the surface remain, in great part, +unaccountable to his pursuers; and from time to time have originated +the most curious and contradictory speculations regarding them, +especially concerning the mystic modes whereby, after sounding to a +great depth, he transports himself with such vast swiftness to the +most widely distant points. + +It is a thing well known to both American and English whale-ships, +and as well a thing placed upon authoritative record years ago by +Scoresby, that some whales have been captured far north in the +Pacific, in whose bodies have been found the barbs of harpoons darted +in the Greenland seas. Nor is it to be gainsaid, that in some of +these instances it has been declared that the interval of time +between the two assaults could not have exceeded very many days. +Hence, by inference, it has been believed by some whalemen, that the +Nor' West Passage, so long a problem to man, was never a problem to +the whale. So that here, in the real living experience of living +men, the prodigies related in old times of the inland Strello +mountain in Portugal (near whose top there was said to be a lake in +which the wrecks of ships floated up to the surface); and that still +more wonderful story of the Arethusa fountain near Syracuse (whose +waters were believed to have come from the Holy Land by an +underground passage); these fabulous narrations are almost fully +equalled by the realities of the whalemen. + +Forced into familiarity, then, with such prodigies as these; and +knowing that after repeated, intrepid assaults, the White Whale had +escaped alive; it cannot be much matter of surprise that some +whalemen should go still further in their superstitions; declaring +Moby Dick not only ubiquitous, but immortal (for immortality is but +ubiquity in time); that though groves of spears should be planted in +his flanks, he would still swim away unharmed; or if indeed he should +ever be made to spout thick blood, such a sight would be but a +ghastly deception; for again in unensanguined billows hundreds of +leagues away, his unsullied jet would once more be seen. + +But even stripped of these supernatural surmisings, there was enough +in the earthly make and incontestable character of the monster to +strike the imagination with unwonted power. For, it was not so much +his uncommon bulk that so much distinguished him from other sperm +whales, but, as was elsewhere thrown out--a peculiar snow-white +wrinkled forehead, and a high, pyramidical white hump. These were +his prominent features; the tokens whereby, even in the limitless, +uncharted seas, he revealed his identity, at a long distance, to +those who knew him. + +The rest of his body was so streaked, and spotted, and marbled with +the same shrouded hue, that, in the end, he had gained his +distinctive appellation of the White Whale; a name, indeed, literally +justified by his vivid aspect, when seen gliding at high noon through +a dark blue sea, leaving a milky-way wake of creamy foam, all +spangled with golden gleamings. + +Nor was it his unwonted magnitude, nor his remarkable hue, nor yet +his deformed lower jaw, that so much invested the whale with natural +terror, as that unexampled, intelligent malignity which, according to +specific accounts, he had over and over again evinced in his +assaults. More than all, his treacherous retreats struck more of +dismay than perhaps aught else. For, when swimming before his +exulting pursuers, with every apparent symptom of alarm, he had +several times been known to turn round suddenly, and, bearing down +upon them, either stave their boats to splinters, or drive them back +in consternation to their ship. + +Already several fatalities had attended his chase. But though +similar disasters, however little bruited ashore, were by no means +unusual in the fishery; yet, in most instances, such seemed the White +Whale's infernal aforethought of ferocity, that every dismembering or +death that he caused, was not wholly regarded as having been +inflicted by an unintelligent agent. + +Judge, then, to what pitches of inflamed, distracted fury the minds +of his more desperate hunters were impelled, when amid the chips of +chewed boats, and the sinking limbs of torn comrades, they swam out +of the white curds of the whale's direful wrath into the serene, +exasperating sunlight, that smiled on, as if at a birth or a bridal. + +His three boats stove around him, and oars and men both whirling in +the eddies; one captain, seizing the line-knife from his broken prow, +had dashed at the whale, as an Arkansas duellist at his foe, blindly +seeking with a six inch blade to reach the fathom-deep life of the +whale. That captain was Ahab. And then it was, that suddenly +sweeping his sickle-shaped lower jaw beneath him, Moby Dick had +reaped away Ahab's leg, as a mower a blade of grass in the field. No +turbaned Turk, no hired Venetian or Malay, could have smote him with +more seeming malice. Small reason was there to doubt, then, that +ever since that almost fatal encounter, Ahab had cherished a wild +vindictiveness against the whale, all the more fell for that in his +frantic morbidness he at last came to identify with him, not only all +his bodily woes, but all his intellectual and spiritual +exasperations. The White Whale swam before him as the monomaniac +incarnation of all those malicious agencies which some deep men feel +eating in them, till they are left living on with half a heart and +half a lung. That intangible malignity which has been from the +beginning; to whose dominion even the modern Christians ascribe +one-half of the worlds; which the ancient Ophites of the east +reverenced in their statue devil;--Ahab did not fall down and worship +it like them; but deliriously transferring its idea to the abhorred +white whale, he pitted himself, all mutilated, against it. All that +most maddens and torments; all that stirs up the lees of things; all +truth with malice in it; all that cracks the sinews and cakes the +brain; all the subtle demonisms of life and thought; all evil, to +crazy Ahab, were visibly personified, and made practically assailable +in Moby Dick. He piled upon the whale's white hump the sum of all +the general rage and hate felt by his whole race from Adam down; and +then, as if his chest had been a mortar, he burst his hot heart's +shell upon it. + +It is not probable that this monomania in him took its instant rise +at the precise time of his bodily dismemberment. Then, in darting at +the monster, knife in hand, he had but given loose to a sudden, +passionate, corporal animosity; and when he received the stroke that +tore him, he probably but felt the agonizing bodily laceration, but +nothing more. Yet, when by this collision forced to turn towards +home, and for long months of days and weeks, Ahab and anguish lay +stretched together in one hammock, rounding in mid winter that +dreary, howling Patagonian Cape; then it was, that his torn body and +gashed soul bled into one another; and so interfusing, made him mad. +That it was only then, on the homeward voyage, after the encounter, +that the final monomania seized him, seems all but certain from the +fact that, at intervals during the passage, he was a raving lunatic; +and, though unlimbed of a leg, yet such vital strength yet lurked in +his Egyptian chest, and was moreover intensified by his delirium, +that his mates were forced to lace him fast, even there, as he +sailed, raving in his hammock. In a strait-jacket, he swung to the +mad rockings of the gales. And, when running into more sufferable +latitudes, the ship, with mild stun'sails spread, floated across the +tranquil tropics, and, to all appearances, the old man's delirium +seemed left behind him with the Cape Horn swells, and he came forth +from his dark den into the blessed light and air; even then, when he +bore that firm, collected front, however pale, and issued his calm +orders once again; and his mates thanked God the direful madness was +now gone; even then, Ahab, in his hidden self, raved on. Human +madness is oftentimes a cunning and most feline thing. When you +think it fled, it may have but become transfigured into some still +subtler form. Ahab's full lunacy subsided not, but deepeningly +contracted; like the unabated Hudson, when that noble Northman flows +narrowly, but unfathomably through the Highland gorge. But, as in +his narrow-flowing monomania, not one jot of Ahab's broad madness had +been left behind; so in that broad madness, not one jot of his great +natural intellect had perished. That before living agent, now became +the living instrument. If such a furious trope may stand, his +special lunacy stormed his general sanity, and carried it, and turned +all its concentred cannon upon its own mad mark; so that far from +having lost his strength, Ahab, to that one end, did now possess a +thousand fold more potency than ever he had sanely brought to bear +upon any one reasonable object. + +This is much; yet Ahab's larger, darker, deeper part remains +unhinted. But vain to popularize profundities, and all truth is +profound. Winding far down from within the very heart of this spiked +Hotel de Cluny where we here stand--however grand and wonderful, now +quit it;--and take your way, ye nobler, sadder souls, to those vast +Roman halls of Thermes; where far beneath the fantastic towers of +man's upper earth, his root of grandeur, his whole awful essence sits +in bearded state; an antique buried beneath antiquities, and throned +on torsoes! So with a broken throne, the great gods mock that +captive king; so like a Caryatid, he patient sits, upholding on his +frozen brow the piled entablatures of ages. Wind ye down there, ye +prouder, sadder souls! question that proud, sad king! A family +likeness! aye, he did beget ye, ye young exiled royalties; and from +your grim sire only will the old State-secret come. + +Now, in his heart, Ahab had some glimpse of this, namely: all my +means are sane, my motive and my object mad. Yet without power to +kill, or change, or shun the fact; he likewise knew that to mankind +he did long dissemble; in some sort, did still. But that thing of +his dissembling was only subject to his perceptibility, not to his +will determinate. Nevertheless, so well did he succeed in that +dissembling, that when with ivory leg he stepped ashore at last, no +Nantucketer thought him otherwise than but naturally grieved, and +that to the quick, with the terrible casualty which had overtaken +him. + +The report of his undeniable delirium at sea was likewise popularly +ascribed to a kindred cause. And so too, all the added moodiness +which always afterwards, to the very day of sailing in the Pequod on +the present voyage, sat brooding on his brow. Nor is it so very +unlikely, that far from distrusting his fitness for another whaling +voyage, on account of such dark symptoms, the calculating people of +that prudent isle were inclined to harbor the conceit, that for those +very reasons he was all the better qualified and set on edge, for a +pursuit so full of rage and wildness as the bloody hunt of whales. +Gnawed within and scorched without, with the infixed, unrelenting +fangs of some incurable idea; such an one, could he be found, would +seem the very man to dart his iron and lift his lance against the +most appalling of all brutes. Or, if for any reason thought to be +corporeally incapacitated for that, yet such an one would seem +superlatively competent to cheer and howl on his underlings to the +attack. But be all this as it may, certain it is, that with the mad +secret of his unabated rage bolted up and keyed in him, Ahab had +purposely sailed upon the present voyage with the one only and +all-engrossing object of hunting the White Whale. Had any one of his +old acquaintances on shore but half dreamed of what was lurking in +him then, how soon would their aghast and righteous souls have +wrenched the ship from such a fiendish man! They were bent on +profitable cruises, the profit to be counted down in dollars from the +mint. He was intent on an audacious, immitigable, and supernatural +revenge. + +Here, then, was this grey-headed, ungodly old man, chasing with +curses a Job's whale round the world, at the head of a crew, too, +chiefly made up of mongrel renegades, and castaways, and +cannibals--morally enfeebled also, by the incompetence of mere +unaided virtue or right-mindedness in Starbuck, the invunerable +jollity of indifference and recklessness in Stubb, and the pervading +mediocrity in Flask. Such a crew, so officered, seemed specially +picked and packed by some infernal fatality to help him to his +monomaniac revenge. How it was that they so aboundingly responded to +the old man's ire--by what evil magic their souls were possessed, +that at times his hate seemed almost theirs; the White Whale as much +their insufferable foe as his; how all this came to be--what the +White Whale was to them, or how to their unconscious understandings, +also, in some dim, unsuspected way, he might have seemed the gliding +great demon of the seas of life,--all this to explain, would be to +dive deeper than Ishmael can go. The subterranean miner that works +in us all, how can one tell whither leads his shaft by the ever +shifting, muffled sound of his pick? Who does not feel the +irresistible arm drag? What skiff in tow of a seventy-four can stand +still? For one, I gave myself up to the abandonment of the time and +the place; but while yet all a-rush to encounter the whale, could see +naught in that brute but the deadliest ill. + + + +CHAPTER 42 + +The Whiteness of The Whale. + + +What the white whale was to Ahab, has been hinted; what, at times, he +was to me, as yet remains unsaid. + +Aside from those more obvious considerations touching Moby Dick, +which could not but occasionally awaken in any man's soul some alarm, +there was another thought, or rather vague, nameless horror +concerning him, which at times by its intensity completely +overpowered all the rest; and yet so mystical and well nigh ineffable +was it, that I almost despair of putting it in a comprehensible form. +It was the whiteness of the whale that above all things appalled me. +But how can I hope to explain myself here; and yet, in some dim, +random way, explain myself I must, else all these chapters might be +naught. + +Though in many natural objects, whiteness refiningly enhances beauty, +as if imparting some special virtue of its own, as in marbles, +japonicas, and pearls; and though various nations have in some way +recognised a certain royal preeminence in this hue; even the +barbaric, grand old kings of Pegu placing the title "Lord of the +White Elephants" above all their other magniloquent ascriptions of +dominion; and the modern kings of Siam unfurling the same snow-white +quadruped in the royal standard; and the Hanoverian flag bearing the +one figure of a snow-white charger; and the great Austrian Empire, +Caesarian, heir to overlording Rome, having for the imperial colour +the same imperial hue; and though this pre-eminence in it applies to +the human race itself, giving the white man ideal mastership over +every dusky tribe; and though, besides, all this, whiteness has been +even made significant of gladness, for among the Romans a white stone +marked a joyful day; and though in other mortal sympathies and +symbolizings, this same hue is made the emblem of many touching, +noble things--the innocence of brides, the benignity of age; though +among the Red Men of America the giving of the white belt of wampum +was the deepest pledge of honour; though in many climes, whiteness +typifies the majesty of Justice in the ermine of the Judge, and +contributes to the daily state of kings and queens drawn by +milk-white steeds; though even in the higher mysteries of the most +august religions it has been made the symbol of the divine +spotlessness and power; by the Persian fire worshippers, the white +forked flame being held the holiest on the altar; and in the Greek +mythologies, Great Jove himself being made incarnate in a snow-white +bull; and though to the noble Iroquois, the midwinter sacrifice of +the sacred White Dog was by far the holiest festival of their +theology, that spotless, faithful creature being held the purest +envoy they could send to the Great Spirit with the annual tidings of +their own fidelity; and though directly from the Latin word for +white, all Christian priests derive the name of one part of their +sacred vesture, the alb or tunic, worn beneath the cassock; and +though among the holy pomps of the Romish faith, white is specially +employed in the celebration of the Passion of our Lord; though in the +Vision of St. John, white robes are given to the redeemed, and the +four-and-twenty elders stand clothed in white before the great-white +throne, and the Holy One that sitteth there white like wool; yet for +all these accumulated associations, with whatever is sweet, and +honourable, and sublime, there yet lurks an elusive something in the +innermost idea of this hue, which strikes more of panic to the soul +than that redness which affrights in blood. + +This elusive quality it is, which causes the thought of whiteness, +when divorced from more kindly associations, and coupled with any +object terrible in itself, to heighten that terror to the furthest +bounds. Witness the white bear of the poles, and the white shark of +the tropics; what but their smooth, flaky whiteness makes them the +transcendent horrors they are? That ghastly whiteness it is which +imparts such an abhorrent mildness, even more loathsome than +terrific, to the dumb gloating of their aspect. So that not the +fierce-fanged tiger in his heraldic coat can so stagger courage as +the white-shrouded bear or shark.* + + +*With reference to the Polar bear, it may possibly be urged by him +who would fain go still deeper into this matter, that it is not the +whiteness, separately regarded, which heightens the intolerable +hideousness of that brute; for, analysed, that heightened +hideousness, it might be said, only rises from the circumstance, that +the irresponsible ferociousness of the creature stands invested in +the fleece of celestial innocence and love; and hence, by bringing +together two such opposite emotions in our minds, the Polar bear +frightens us with so unnatural a contrast. But even assuming all +this to be true; yet, were it not for the whiteness, you would not +have that intensified terror. + +As for the white shark, the white gliding ghostliness of repose in +that creature, when beheld in his ordinary moods, strangely tallies +with the same quality in the Polar quadruped. This peculiarity is +most vividly hit by the French in the name they bestow upon that +fish. The Romish mass for the dead begins with "Requiem eternam" +(eternal rest), whence REQUIEM denominating the mass itself, and any +other funeral music. Now, in allusion to the white, silent stillness +of death in this shark, and the mild deadliness of his habits, the +French call him REQUIN. + + +Bethink thee of the albatross, whence come those clouds of spiritual +wonderment and pale dread, in which that white phantom sails in all +imaginations? Not Coleridge first threw that spell; but God's great, +unflattering laureate, Nature.* + + +*I remember the first albatross I ever saw. It was during a +prolonged gale, in waters hard upon the Antarctic seas. From my +forenoon watch below, I ascended to the overclouded deck; and there, +dashed upon the main hatches, I saw a regal, feathery thing of +unspotted whiteness, and with a hooked, Roman bill sublime. At +intervals, it arched forth its vast archangel wings, as if to embrace +some holy ark. Wondrous flutterings and throbbings shook it. Though +bodily unharmed, it uttered cries, as some king's ghost in +supernatural distress. Through its inexpressible, strange eyes, +methought I peeped to secrets which took hold of God. As Abraham +before the angels, I bowed myself; the white thing was so white, its +wings so wide, and in those for ever exiled waters, I had lost the +miserable warping memories of traditions and of towns. Long I gazed +at that prodigy of plumage. I cannot tell, can only hint, the things +that darted through me then. But at last I awoke; and turning, asked +a sailor what bird was this. A goney, he replied. Goney! never had +heard that name before; is it conceivable that this glorious thing is +utterly unknown to men ashore! never! But some time after, I learned +that goney was some seaman's name for albatross. So that by no +possibility could Coleridge's wild Rhyme have had aught to do with +those mystical impressions which were mine, when I saw that bird upon +our deck. For neither had I then read the Rhyme, nor knew the bird +to be an albatross. Yet, in saying this, I do but indirectly burnish +a little brighter the noble merit of the poem and the poet. + +I assert, then, that in the wondrous bodily whiteness of the bird +chiefly lurks the secret of the spell; a truth the more evinced in +this, that by a solecism of terms there are birds called grey +albatrosses; and these I have frequently seen, but never with such +emotions as when I beheld the Antarctic fowl. + +But how had the mystic thing been caught? Whisper it not, and I will +tell; with a treacherous hook and line, as the fowl floated on the +sea. At last the Captain made a postman of it; tying a lettered, +leathern tally round its neck, with the ship's time and place; and +then letting it escape. But I doubt not, that leathern tally, meant +for man, was taken off in Heaven, when the white fowl flew to join +the wing-folding, the invoking, and adoring cherubim! + + +Most famous in our Western annals and Indian traditions is that of +the White Steed of the Prairies; a magnificent milk-white charger, +large-eyed, small-headed, bluff-chested, and with the dignity of a +thousand monarchs in his lofty, overscorning carriage. He was the +elected Xerxes of vast herds of wild horses, whose pastures in those +days were only fenced by the Rocky Mountains and the Alleghanies. At +their flaming head he westward trooped it like that chosen star which +every evening leads on the hosts of light. The flashing cascade of +his mane, the curving comet of his tail, invested him with housings +more resplendent than gold and silver-beaters could have furnished +him. A most imperial and archangelical apparition of that unfallen, +western world, which to the eyes of the old trappers and hunters +revived the glories of those primeval times when Adam walked majestic +as a god, bluff-browed and fearless as this mighty steed. Whether +marching amid his aides and marshals in the van of countless cohorts +that endlessly streamed it over the plains, like an Ohio; or whether +with his circumambient subjects browsing all around at the horizon, +the White Steed gallopingly reviewed them with warm nostrils +reddening through his cool milkiness; in whatever aspect he presented +himself, always to the bravest Indians he was the object of trembling +reverence and awe. Nor can it be questioned from what stands on +legendary record of this noble horse, that it was his spiritual +whiteness chiefly, which so clothed him with divineness; and that +this divineness had that in it which, though commanding worship, at +the same time enforced a certain nameless terror. + +But there are other instances where this whiteness loses all that +accessory and strange glory which invests it in the White Steed and +Albatross. + +What is it that in the Albino man so peculiarly repels and often +shocks the eye, as that sometimes he is loathed by his own kith and +kin! It is that whiteness which invests him, a thing expressed by +the name he bears. The Albino is as well made as other men--has no +substantive deformity--and yet this mere aspect of all-pervading +whiteness makes him more strangely hideous than the ugliest abortion. +Why should this be so? + +Nor, in quite other aspects, does Nature in her least palpable but +not the less malicious agencies, fail to enlist among her forces this +crowning attribute of the terrible. From its snowy aspect, the +gauntleted ghost of the Southern Seas has been denominated the White +Squall. Nor, in some historic instances, has the art of human malice +omitted so potent an auxiliary. How wildly it heightens the effect +of that passage in Froissart, when, masked in the snowy symbol of +their faction, the desperate White Hoods of Ghent murder their +bailiff in the market-place! + +Nor, in some things, does the common, hereditary experience of all +mankind fail to bear witness to the supernaturalism of this hue. It +cannot well be doubted, that the one visible quality in the aspect of +the dead which most appals the gazer, is the marble pallor lingering +there; as if indeed that pallor were as much like the badge of +consternation in the other world, as of mortal trepidation here. And +from that pallor of the dead, we borrow the expressive hue of the +shroud in which we wrap them. Nor even in our superstitions do we +fail to throw the same snowy mantle round our phantoms; all ghosts +rising in a milk-white fog--Yea, while these terrors seize us, let us +add, that even the king of terrors, when personified by the +evangelist, rides on his pallid horse. + +Therefore, in his other moods, symbolize whatever grand or gracious +thing he will by whiteness, no man can deny that in its profoundest +idealized significance it calls up a peculiar apparition to the soul. + +But though without dissent this point be fixed, how is mortal man to +account for it? To analyse it, would seem impossible. Can we, +then, by the citation of some of those instances wherein this thing +of whiteness--though for the time either wholly or in great part +stripped of all direct associations calculated to impart to it aught +fearful, but nevertheless, is found to exert over us the same +sorcery, however modified;--can we thus hope to light upon some +chance clue to conduct us to the hidden cause we seek? + +Let us try. But in a matter like this, subtlety appeals to subtlety, +and without imagination no man can follow another into these halls. +And though, doubtless, some at least of the imaginative impressions +about to be presented may have been shared by most men, yet few +perhaps were entirely conscious of them at the time, and therefore +may not be able to recall them now. + +Why to the man of untutored ideality, who happens to be but loosely +acquainted with the peculiar character of the day, does the bare +mention of Whitsuntide marshal in the fancy such long, dreary, +speechless processions of slow-pacing pilgrims, down-cast and hooded +with new-fallen snow? Or, to the unread, unsophisticated Protestant +of the Middle American States, why does the passing mention of a +White Friar or a White Nun, evoke such an eyeless statue in the soul? + +Or what is there apart from the traditions of dungeoned warriors and +kings (which will not wholly account for it) that makes the White +Tower of London tell so much more strongly on the imagination of an +untravelled American, than those other storied structures, its +neighbors--the Byward Tower, or even the Bloody? And those sublimer +towers, the White Mountains of New Hampshire, whence, in peculiar +moods, comes that gigantic ghostliness over the soul at the bare +mention of that name, while the thought of Virginia's Blue Ridge is +full of a soft, dewy, distant dreaminess? Or why, irrespective of +all latitudes and longitudes, does the name of the White Sea exert +such a spectralness over the fancy, while that of the Yellow Sea +lulls us with mortal thoughts of long lacquered mild afternoons on +the waves, followed by the gaudiest and yet sleepiest of sunsets? +Or, to choose a wholly unsubstantial instance, purely addressed to +the fancy, why, in reading the old fairy tales of Central Europe, +does "the tall pale man" of the Hartz forests, whose changeless +pallor unrustlingly glides through the green of the groves--why is +this phantom more terrible than all the whooping imps of the +Blocksburg? + +Nor is it, altogether, the remembrance of her cathedral-toppling +earthquakes; nor the stampedoes of her frantic seas; nor the +tearlessness of arid skies that never rain; nor the sight of her +wide field of leaning spires, wrenched cope-stones, and crosses all +adroop (like canted yards of anchored fleets); and her suburban +avenues of house-walls lying over upon each other, as a tossed pack +of cards;--it is not these things alone which make tearless Lima, the +strangest, saddest city thou can'st see. For Lima has taken the +white veil; and there is a higher horror in this whiteness of her +woe. Old as Pizarro, this whiteness keeps her ruins for ever new; +admits not the cheerful greenness of complete decay; spreads over her +broken ramparts the rigid pallor of an apoplexy that fixes its own +distortions. + +I know that, to the common apprehension, this phenomenon of whiteness +is not confessed to be the prime agent in exaggerating the terror of +objects otherwise terrible; nor to the unimaginative mind is there +aught of terror in those appearances whose awfulness to another mind +almost solely consists in this one phenomenon, especially when +exhibited under any form at all approaching to muteness or +universality. What I mean by these two statements may perhaps be +respectively elucidated by the following examples. + +First: The mariner, when drawing nigh the coasts of foreign lands, if +by night he hear the roar of breakers, starts to vigilance, and feels +just enough of trepidation to sharpen all his faculties; but under +precisely similar circumstances, let him be called from his hammock +to view his ship sailing through a midnight sea of milky +whiteness--as if from encircling headlands shoals of combed white +bears were swimming round him, then he feels a silent, superstitious +dread; the shrouded phantom of the whitened waters is horrible to him +as a real ghost; in vain the lead assures him he is still off +soundings; heart and helm they both go down; he never rests till blue +water is under him again. Yet where is the mariner who will tell +thee, "Sir, it was not so much the fear of striking hidden rocks, as +the fear of that hideous whiteness that so stirred me?" + +Second: To the native Indian of Peru, the continual sight of the +snowhowdahed Andes conveys naught of dread, except, perhaps, in the +mere fancying of the eternal frosted desolateness reigning at such +vast altitudes, and the natural conceit of what a fearfulness it +would be to lose oneself in such inhuman solitudes. Much the same is +it with the backwoodsman of the West, who with comparative +indifference views an unbounded prairie sheeted with driven snow, no +shadow of tree or twig to break the fixed trance of whiteness. Not +so the sailor, beholding the scenery of the Antarctic seas; where at +times, by some infernal trick of legerdemain in the powers of frost +and air, he, shivering and half shipwrecked, instead of rainbows +speaking hope and solace to his misery, views what seems a boundless +churchyard grinning upon him with its lean ice monuments and +splintered crosses. + +But thou sayest, methinks that white-lead chapter about whiteness is +but a white flag hung out from a craven soul; thou surrenderest to a +hypo, Ishmael. + +Tell me, why this strong young colt, foaled in some peaceful valley +of Vermont, far removed from all beasts of prey--why is it that upon +the sunniest day, if you but shake a fresh buffalo robe behind him, +so that he cannot even see it, but only smells its wild animal +muskiness--why will he start, snort, and with bursting eyes paw the +ground in phrensies of affright? There is no remembrance in him of +any gorings of wild creatures in his green northern home, so that the +strange muskiness he smells cannot recall to him anything associated +with the experience of former perils; for what knows he, this New +England colt, of the black bisons of distant Oregon? + +No; but here thou beholdest even in a dumb brute, the instinct of the +knowledge of the demonism in the world. Though thousands of miles +from Oregon, still when he smells that savage musk, the rending, +goring bison herds are as present as to the deserted wild foal of the +prairies, which this instant they may be trampling into dust. + +Thus, then, the muffled rollings of a milky sea; the bleak rustlings +of the festooned frosts of mountains; the desolate shiftings of the +windrowed snows of prairies; all these, to Ishmael, are as the +shaking of that buffalo robe to the frightened colt! + +Though neither knows where lie the nameless things of which the +mystic sign gives forth such hints; yet with me, as with the colt, +somewhere those things must exist. Though in many of its aspects +this visible world seems formed in love, the invisible spheres were +formed in fright. + +But not yet have we solved the incantation of this whiteness, and +learned why it appeals with such power to the soul; and more strange +and far more portentous--why, as we have seen, it is at once the most +meaning symbol of spiritual things, nay, the very veil of the +Christian's Deity; and yet should be as it is, the intensifying agent +in things the most appalling to mankind. + +Is it that by its indefiniteness it shadows forth the heartless voids +and immensities of the universe, and thus stabs us from behind with +the thought of annihilation, when beholding the white depths of the +milky way? Or is it, that as in essence whiteness is not so much a +colour as the visible absence of colour; and at the same time the +concrete of all colours; is it for these reasons that there is such a +dumb blankness, full of meaning, in a wide landscape of snows--a +colourless, all-colour of atheism from which we shrink? And when we +consider that other theory of the natural philosophers, that all +other earthly hues--every stately or lovely emblazoning--the sweet +tinges of sunset skies and woods; yea, and the gilded velvets of +butterflies, and the butterfly cheeks of young girls; all these are +but subtile deceits, not actually inherent in substances, but only +laid on from without; so that all deified Nature absolutely paints +like the harlot, whose allurements cover nothing but the +charnel-house within; and when we proceed further, and consider that +the mystical cosmetic which produces every one of her hues, the great +principle of light, for ever remains white or colourless in itself, +and if operating without medium upon matter, would touch all objects, +even tulips and roses, with its own blank tinge--pondering all this, +the palsied universe lies before us a leper; and like wilful +travellers in Lapland, who refuse to wear coloured and colouring +glasses upon their eyes, so the wretched infidel gazes himself blind +at the monumental white shroud that wraps all the prospect around +him. And of all these things the Albino whale was the symbol. +Wonder ye then at the fiery hunt? + + + +CHAPTER 43 + +Hark! + + +"HIST! Did you hear that noise, Cabaco? + +It was the middle-watch; a fair moonlight; the seamen were standing +in a cordon, extending from one of the fresh-water butts in the +waist, to the scuttle-butt near the taffrail. In this manner, they +passed the buckets to fill the scuttle-butt. Standing, for the most +part, on the hallowed precincts of the quarter-deck, they were +careful not to speak or rustle their feet. From hand to hand, the +buckets went in the deepest silence, only broken by the occasional +flap of a sail, and the steady hum of the unceasingly advancing keel. + +It was in the midst of this repose, that Archy, one of the cordon, +whose post was near the after-hatches, whispered to his neighbor, a +Cholo, the words above. + +"Hist! did you hear that noise, Cabaco?" + +"Take the bucket, will ye, Archy? what noise d'ye mean?" + +"There it is again--under the hatches--don't you hear it--a cough--it +sounded like a cough." + +"Cough be damned! Pass along that return bucket." + +"There again--there it is!--it sounds like two or three sleepers +turning over, now!" + +"Caramba! have done, shipmate, will ye? It's the three soaked +biscuits ye eat for supper turning over inside of ye--nothing else. +Look to the bucket!" + +"Say what ye will, shipmate; I've sharp ears." + +"Aye, you are the chap, ain't ye, that heard the hum of the old +Quakeress's knitting-needles fifty miles at sea from Nantucket; +you're the chap." + +"Grin away; we'll see what turns up. Hark ye, Cabaco, there is +somebody down in the after-hold that has not yet been seen on deck; +and I suspect our old Mogul knows something of it too. I heard Stubb +tell Flask, one morning watch, that there was something of that sort +in the wind." + +"Tish! the bucket!" + + + +CHAPTER 44 + +The Chart. + + +Had you followed Captain Ahab down into his cabin after the squall +that took place on the night succeeding that wild ratification of his +purpose with his crew, you would have seen him go to a locker in the +transom, and bringing out a large wrinkled roll of yellowish sea +charts, spread them before him on his screwed-down table. Then +seating himself before it, you would have seen him intently study the +various lines and shadings which there met his eye; and with slow but +steady pencil trace additional courses over spaces that before were +blank. At intervals, he would refer to piles of old log-books beside +him, wherein were set down the seasons and places in which, on +various former voyages of various ships, sperm whales had been +captured or seen. + +While thus employed, the heavy pewter lamp suspended in chains over +his head, continually rocked with the motion of the ship, and for +ever threw shifting gleams and shadows of lines upon his wrinkled +brow, till it almost seemed that while he himself was marking out +lines and courses on the wrinkled charts, some invisible pencil was +also tracing lines and courses upon the deeply marked chart of his +forehead. + +But it was not this night in particular that, in the solitude of his +cabin, Ahab thus pondered over his charts. Almost every night they +were brought out; almost every night some pencil marks were effaced, +and others were substituted. For with the charts of all four oceans +before him, Ahab was threading a maze of currents and eddies, with a +view to the more certain accomplishment of that monomaniac thought of +his soul. + +Now, to any one not fully acquainted with the ways of the leviathans, +it might seem an absurdly hopeless task thus to seek out one solitary +creature in the unhooped oceans of this planet. But not so did it +seem to Ahab, who knew the sets of all tides and currents; and +thereby calculating the driftings of the sperm whale's food; and, +also, calling to mind the regular, ascertained seasons for hunting +him in particular latitudes; could arrive at reasonable surmises, +almost approaching to certainties, concerning the timeliest day to be +upon this or that ground in search of his prey. + +So assured, indeed, is the fact concerning the periodicalness of the +sperm whale's resorting to given waters, that many hunters believe +that, could he be closely observed and studied throughout the world; +were the logs for one voyage of the entire whale fleet carefully +collated, then the migrations of the sperm whale would be found to +correspond in invariability to those of the herring-shoals or the +flights of swallows. On this hint, attempts have been made to +construct elaborate migratory charts of the sperm whale.* + + +*Since the above was written, the statement is happily borne out by +an official circular, issued by Lieutenant Maury, of the National +Observatory, Washington, April 16th, 1851. By that circular, it +appears that precisely such a chart is in course of completion; and +portions of it are presented in the circular. "This chart divides +the ocean into districts of five degrees of latitude by five degrees +of longitude; perpendicularly through each of which districts are +twelve columns for the twelve months; and horizontally through each +of which districts are three lines; one to show the number of days +that have been spent in each month in every district, and the two +others to show the number of days in which whales, sperm or right, +have been seen." + + +Besides, when making a passage from one feeding-ground to another, +the sperm whales, guided by some infallible instinct--say, rather, +secret intelligence from the Deity--mostly swim in VEINS, as they are +called; continuing their way along a given ocean-line with such +undeviating exactitude, that no ship ever sailed her course, by any +chart, with one tithe of such marvellous precision. Though, in these +cases, the direction taken by any one whale be straight as a +surveyor's parallel, and though the line of advance be strictly +confined to its own unavoidable, straight wake, yet the arbitrary +VEIN in which at these times he is said to swim, generally embraces +some few miles in width (more or less, as the vein is presumed to +expand or contract); but never exceeds the visual sweep from the +whale-ship's mast-heads, when circumspectly gliding along this magic +zone. The sum is, that at particular seasons within that breadth and +along that path, migrating whales may with great confidence be looked +for. + +And hence not only at substantiated times, upon well known separate +feeding-grounds, could Ahab hope to encounter his prey; but in +crossing the widest expanses of water between those grounds he could, +by his art, so place and time himself on his way, as even then not to +be wholly without prospect of a meeting. + +There was a circumstance which at first sight seemed to entangle his +delirious but still methodical scheme. But not so in the reality, +perhaps. Though the gregarious sperm whales have their regular +seasons for particular grounds, yet in general you cannot conclude +that the herds which haunted such and such a latitude or longitude +this year, say, will turn out to be identically the same with those +that were found there the preceding season; though there are peculiar +and unquestionable instances where the contrary of this has proved +true. In general, the same remark, only within a less wide limit, +applies to the solitaries and hermits among the matured, aged sperm +whales. So that though Moby Dick had in a former year been seen, for +example, on what is called the Seychelle ground in the Indian ocean, +or Volcano Bay on the Japanese Coast; yet it did not follow, that +were the Pequod to visit either of those spots at any subsequent +corresponding season, she would infallibly encounter him there. So, +too, with some other feeding grounds, where he had at times revealed +himself. But all these seemed only his casual stopping-places and +ocean-inns, so to speak, not his places of prolonged abode. And +where Ahab's chances of accomplishing his object have hitherto been +spoken of, allusion has only been made to whatever way-side, +antecedent, extra prospects were his, ere a particular set time or +place were attained, when all possibilities would become +probabilities, and, as Ahab fondly thought, every possibility the +next thing to a certainty. That particular set time and place were +conjoined in the one technical phrase--the Season-on-the-Line. For +there and then, for several consecutive years, Moby Dick had been +periodically descried, lingering in those waters for awhile, as the +sun, in its annual round, loiters for a predicted interval in any one +sign of the Zodiac. There it was, too, that most of the deadly +encounters with the white whale had taken place; there the waves were +storied with his deeds; there also was that tragic spot where the +monomaniac old man had found the awful motive to his vengeance. But +in the cautious comprehensiveness and unloitering vigilance with +which Ahab threw his brooding soul into this unfaltering hunt, he +would not permit himself to rest all his hopes upon the one crowning +fact above mentioned, however flattering it might be to those hopes; +nor in the sleeplessness of his vow could he so tranquillize his +unquiet heart as to postpone all intervening quest. + +Now, the Pequod had sailed from Nantucket at the very beginning of +the Season-on-the-Line. No possible endeavor then could enable her +commander to make the great passage southwards, double Cape Horn, and +then running down sixty degrees of latitude arrive in the equatorial +Pacific in time to cruise there. Therefore, he must wait for the +next ensuing season. Yet the premature hour of the Pequod's sailing +had, perhaps, been correctly selected by Ahab, with a view to this +very complexion of things. Because, an interval of three hundred and +sixty-five days and nights was before him; an interval which, instead +of impatiently enduring ashore, he would spend in a miscellaneous +hunt; if by chance the White Whale, spending his vacation in seas far +remote from his periodical feeding-grounds, should turn up his +wrinkled brow off the Persian Gulf, or in the Bengal Bay, or China +Seas, or in any other waters haunted by his race. So that Monsoons, +Pampas, Nor'-Westers, Harmattans, Trades; any wind but the Levanter +and Simoon, might blow Moby Dick into the devious zig-zag +world-circle of the Pequod's circumnavigating wake. + +But granting all this; yet, regarded discreetly and coolly, seems it +not but a mad idea, this; that in the broad boundless ocean, one +solitary whale, even if encountered, should be thought capable of +individual recognition from his hunter, even as a white-bearded Mufti +in the thronged thoroughfares of Constantinople? Yes. For the +peculiar snow-white brow of Moby Dick, and his snow-white hump, could +not but be unmistakable. And have I not tallied the whale, Ahab +would mutter to himself, as after poring over his charts till long +after midnight he would throw himself back in reveries--tallied him, +and shall he escape? His broad fins are bored, and scalloped out +like a lost sheep's ear! And here, his mad mind would run on in a +breathless race; till a weariness and faintness of pondering came +over him; and in the open air of the deck he would seek to recover +his strength. Ah, God! what trances of torments does that man endure +who is consumed with one unachieved revengeful desire. He sleeps +with clenched hands; and wakes with his own bloody nails in his +palms. + +Often, when forced from his hammock by exhausting and intolerably +vivid dreams of the night, which, resuming his own intense thoughts +through the day, carried them on amid a clashing of phrensies, and +whirled them round and round and round in his blazing brain, till +the very throbbing of his life-spot became insufferable anguish; and +when, as was sometimes the case, these spiritual throes in him heaved +his being up from its base, and a chasm seemed opening in him, from +which forked flames and lightnings shot up, and accursed fiends +beckoned him to leap down among them; when this hell in himself +yawned beneath him, a wild cry would be heard through the ship; and +with glaring eyes Ahab would burst from his state room, as though +escaping from a bed that was on fire. Yet these, perhaps, instead of +being the unsuppressable symptoms of some latent weakness, or fright +at his own resolve, were but the plainest tokens of its intensity. +For, at such times, crazy Ahab, the scheming, unappeasedly steadfast +hunter of the white whale; this Ahab that had gone to his hammock, +was not the agent that so caused him to burst from it in horror +again. The latter was the eternal, living principle or soul in him; +and in sleep, being for the time dissociated from the characterizing +mind, which at other times employed it for its outer vehicle or +agent, it spontaneously sought escape from the scorching contiguity +of the frantic thing, of which, for the time, it was no longer an +integral. But as the mind does not exist unless leagued with the +soul, therefore it must have been that, in Ahab's case, yielding up +all his thoughts and fancies to his one supreme purpose; that +purpose, by its own sheer inveteracy of will, forced itself against +gods and devils into a kind of self-assumed, independent being of its +own. Nay, could grimly live and burn, while the common vitality to +which it was conjoined, fled horror-stricken from the unbidden and +unfathered birth. Therefore, the tormented spirit that glared out of +bodily eyes, when what seemed Ahab rushed from his room, was for the +time but a vacated thing, a formless somnambulistic being, a ray of +living light, to be sure, but without an object to colour, and +therefore a blankness in itself. God help thee, old man, thy +thoughts have created a creature in thee; and he whose intense +thinking thus makes him a Prometheus; a vulture feeds upon that heart +for ever; that vulture the very creature he creates. + + + +CHAPTER 45 + +The Affidavit. + + +So far as what there may be of a narrative in this book; and, indeed, +as indirectly touching one or two very interesting and curious +particulars in the habits of sperm whales, the foregoing chapter, in +its earlier part, is as important a one as will be found in this +volume; but the leading matter of it requires to be still further and +more familiarly enlarged upon, in order to be adequately understood, +and moreover to take away any incredulity which a profound ignorance +of the entire subject may induce in some minds, as to the natural +verity of the main points of this affair. + +I care not to perform this part of my task methodically; but shall be +content to produce the desired impression by separate citations of +items, practically or reliably known to me as a whaleman; and from +these citations, I take it--the conclusion aimed at will naturally +follow of itself. + +First: I have personally known three instances where a whale, after +receiving a harpoon, has effected a complete escape; and, after an +interval (in one instance of three years), has been again struck by +the same hand, and slain; when the two irons, both marked by the same +private cypher, have been taken from the body. In the instance where +three years intervened between the flinging of the two harpoons; and +I think it may have been something more than that; the man who darted +them happening, in the interval, to go in a trading ship on a voyage +to Africa, went ashore there, joined a discovery party, and +penetrated far into the interior, where he travelled for a period of +nearly two years, often endangered by serpents, savages, tigers, +poisonous miasmas, with all the other common perils incident to +wandering in the heart of unknown regions. Meanwhile, the whale he +had struck must also have been on its travels; no doubt it had thrice +circumnavigated the globe, brushing with its flanks all the coasts of +Africa; but to no purpose. This man and this whale again came +together, and the one vanquished the other. I say I, myself, have +known three instances similar to this; that is in two of them I saw +the whales struck; and, upon the second attack, saw the two irons +with the respective marks cut in them, afterwards taken from the dead +fish. In the three-year instance, it so fell out that I was in the +boat both times, first and last, and the last time distinctly +recognised a peculiar sort of huge mole under the whale's eye, which +I had observed there three years previous. I say three years, but I +am pretty sure it was more than that. Here are three instances, +then, which I personally know the truth of; but I have heard of many +other instances from persons whose veracity in the matter there is no +good ground to impeach. + +Secondly: It is well known in the Sperm Whale Fishery, however +ignorant the world ashore may be of it, that there have been several +memorable historical instances where a particular whale in the ocean +has been at distant times and places popularly cognisable. Why such +a whale became thus marked was not altogether and originally owing to +his bodily peculiarities as distinguished from other whales; for +however peculiar in that respect any chance whale may be, they soon +put an end to his peculiarities by killing him, and boiling him down +into a peculiarly valuable oil. No: the reason was this: that from +the fatal experiences of the fishery there hung a terrible prestige +of perilousness about such a whale as there did about Rinaldo +Rinaldini, insomuch that most fishermen were content to recognise him +by merely touching their tarpaulins when he would be discovered +lounging by them on the sea, without seeking to cultivate a more +intimate acquaintance. Like some poor devils ashore that happen to +know an irascible great man, they make distant unobtrusive +salutations to him in the street, lest if they pursued the +acquaintance further, they might receive a summary thump for their +presumption. + +But not only did each of these famous whales enjoy great individual +celebrity--Nay, you may call it an ocean-wide renown; not only was he +famous in life and now is immortal in forecastle stories after death, +but he was admitted into all the rights, privileges, and distinctions +of a name; had as much a name indeed as Cambyses or Caesar. Was it +not so, O Timor Tom! thou famed leviathan, scarred like an iceberg, +who so long did'st lurk in the Oriental straits of that name, whose +spout was oft seen from the palmy beach of Ombay? Was it not so, O +New Zealand Jack! thou terror of all cruisers that crossed their +wakes in the vicinity of the Tattoo Land? Was it not so, O Morquan! +King of Japan, whose lofty jet they say at times assumed the +semblance of a snow-white cross against the sky? Was it not so, O +Don Miguel! thou Chilian whale, marked like an old tortoise with +mystic hieroglyphics upon the back! In plain prose, here are four +whales as well known to the students of Cetacean History as Marius or +Sylla to the classic scholar. + +But this is not all. New Zealand Tom and Don Miguel, after at +various times creating great havoc among the boats of different +vessels, were finally gone in quest of, systematically hunted out, +chased and killed by valiant whaling captains, who heaved up their +anchors with that express object as much in view, as in setting out +through the Narragansett Woods, Captain Butler of old had it in his +mind to capture that notorious murderous savage Annawon, the headmost +warrior of the Indian King Philip. + +I do not know where I can find a better place than just here, to make +mention of one or two other things, which to me seem important, as in +printed form establishing in all respects the reasonableness of the +whole story of the White Whale, more especially the catastrophe. For +this is one of those disheartening instances where truth requires +full as much bolstering as error. So ignorant are most landsmen of +some of the plainest and most palpable wonders of the world, that +without some hints touching the plain facts, historical and +otherwise, of the fishery, they might scout at Moby Dick as a +monstrous fable, or still worse and more detestable, a hideous and +intolerable allegory. + +First: Though most men have some vague flitting ideas of the general +perils of the grand fishery, yet they have nothing like a fixed, +vivid conception of those perils, and the frequency with which they +recur. One reason perhaps is, that not one in fifty of the actual +disasters and deaths by casualties in the fishery, ever finds a +public record at home, however transient and immediately forgotten +that record. Do you suppose that that poor fellow there, who this +moment perhaps caught by the whale-line off the coast of New Guinea, +is being carried down to the bottom of the sea by the sounding +leviathan--do you suppose that that poor fellow's name will appear in +the newspaper obituary you will read to-morrow at your breakfast? +No: because the mails are very irregular between here and New Guinea. +In fact, did you ever hear what might be called regular news direct +or indirect from New Guinea? Yet I tell you that upon one particular +voyage which I made to the Pacific, among many others we spoke thirty +different ships, every one of which had had a death by a whale, some +of them more than one, and three that had each lost a boat's crew. +For God's sake, be economical with your lamps and candles! not a +gallon you burn, but at least one drop of man's blood was spilled for +it. + +Secondly: People ashore have indeed some indefinite idea that a whale +is an enormous creature of enormous power; but I have ever found that +when narrating to them some specific example of this two-fold +enormousness, they have significantly complimented me upon my +facetiousness; when, I declare upon my soul, I had no more idea of +being facetious than Moses, when he wrote the history of the plagues +of Egypt. + +But fortunately the special point I here seek can be established upon +testimony entirely independent of my own. That point is this: The +Sperm Whale is in some cases sufficiently powerful, knowing, and +judiciously malicious, as with direct aforethought to stave in, +utterly destroy, and sink a large ship; and what is more, the Sperm +Whale HAS done it. + +First: In the year 1820 the ship Essex, Captain Pollard, of +Nantucket, was cruising in the Pacific Ocean. One day she saw +spouts, lowered her boats, and gave chase to a shoal of sperm whales. +Ere long, several of the whales were wounded; when, suddenly, a very +large whale escaping from the boats, issued from the shoal, and bore +directly down upon the ship. Dashing his forehead against her hull, +he so stove her in, that in less than "ten minutes" she settled down +and fell over. Not a surviving plank of her has been seen since. +After the severest exposure, part of the crew reached the land in +their boats. Being returned home at last, Captain Pollard once more +sailed for the Pacific in command of another ship, but the gods +shipwrecked him again upon unknown rocks and breakers; for the second +time his ship was utterly lost, and forthwith forswearing the sea, he +has never tempted it since. At this day Captain Pollard is a +resident of Nantucket. I have seen Owen Chace, who was chief mate of +the Essex at the time of the tragedy; I have read his plain and +faithful narrative; I have conversed with his son; and all this +within a few miles of the scene of the catastrophe.* + + +*The following are extracts from Chace's narrative: "Every fact +seemed to warrant me in concluding that it was anything but chance +which directed his operations; he made two several attacks upon the +ship, at a short interval between them, both of which, according to +their direction, were calculated to do us the most injury, by being +made ahead, and thereby combining the speed of the two objects for +the shock; to effect which, the exact manoeuvres which he made were +necessary. His aspect was most horrible, and such as indicated +resentment and fury. He came directly from the shoal which we had +just before entered, and in which we had struck three of his +companions, as if fired with revenge for their sufferings." Again: +"At all events, the whole circumstances taken together, all happening +before my own eyes, and producing, at the time, impressions in my +mind of decided, calculating mischief, on the part of the whale (many +of which impressions I cannot now recall), induce me to be satisfied +that I am correct in my opinion." + +Here are his reflections some time after quitting the ship, during a +black night an open boat, when almost despairing of reaching any +hospitable shore. "The dark ocean and swelling waters were nothing; +the fears of being swallowed up by some dreadful tempest, or dashed +upon hidden rocks, with all the other ordinary subjects of fearful +contemplation, seemed scarcely entitled to a moment's thought; the +dismal looking wreck, and THE HORRID ASPECT AND REVENGE OF THE WHALE, +wholly engrossed my reflections, until day again made its +appearance." + +In another place--p. 45,--he speaks of "THE MYSTERIOUS AND MORTAL +ATTACK OF THE ANIMAL." + + +Secondly: The ship Union, also of Nantucket, was in the year 1807 +totally lost off the Azores by a similar onset, but the authentic +particulars of this catastrophe I have never chanced to encounter, +though from the whale hunters I have now and then heard casual +allusions to it. + +Thirdly: Some eighteen or twenty years ago Commodore J---, then +commanding an American sloop-of-war of the first class, happened to +be dining with a party of whaling captains, on board a Nantucket ship +in the harbor of Oahu, Sandwich Islands. Conversation turning upon +whales, the Commodore was pleased to be sceptical touching the +amazing strength ascribed to them by the professional gentlemen +present. He peremptorily denied for example, that any whale could so +smite his stout sloop-of-war as to cause her to leak so much as a +thimbleful. Very good; but there is more coming. Some weeks after, +the Commodore set sail in this impregnable craft for Valparaiso. But +he was stopped on the way by a portly sperm whale, that begged a few +moments' confidential business with him. That business consisted in +fetching the Commodore's craft such a thwack, that with all his pumps +going he made straight for the nearest port to heave down and repair. +I am not superstitious, but I consider the Commodore's interview +with that whale as providential. Was not Saul of Tarsus converted +from unbelief by a similar fright? I tell you, the sperm whale will +stand no nonsense. + +I will now refer you to Langsdorff's Voyages for a little +circumstance in point, peculiarly interesting to the writer hereof. +Langsdorff, you must know by the way, was attached to the Russian +Admiral Krusenstern's famous Discovery Expedition in the beginning of +the present century. Captain Langsdorff thus begins his seventeenth +chapter: + +"By the thirteenth of May our ship was ready to sail, and the next +day we were out in the open sea, on our way to Ochotsh. The weather +was very clear and fine, but so intolerably cold that we were obliged +to keep on our fur clothing. For some days we had very little wind; +it was not till the nineteenth that a brisk gale from the northwest +sprang up. An uncommon large whale, the body of which was larger +than the ship itself, lay almost at the surface of the water, but was +not perceived by any one on board till the moment when the ship, +which was in full sail, was almost upon him, so that it was +impossible to prevent its striking against him. We were thus placed +in the most imminent danger, as this gigantic creature, setting up +its back, raised the ship three feet at least out of the water. The +masts reeled, and the sails fell altogether, while we who were below +all sprang instantly upon the deck, concluding that we had struck +upon some rock; instead of this we saw the monster sailing off with +the utmost gravity and solemnity. Captain D'Wolf applied immediately +to the pumps to examine whether or not the vessel had received any +damage from the shock, but we found that very happily it had escaped +entirely uninjured." + +Now, the Captain D'Wolf here alluded to as commanding the ship in +question, is a New Englander, who, after a long life of unusual +adventures as a sea-captain, this day resides in the village of +Dorchester near Boston. I have the honour of being a nephew of his. +I have particularly questioned him concerning this passage in +Langsdorff. He substantiates every word. The ship, however, was by +no means a large one: a Russian craft built on the Siberian coast, +and purchased by my uncle after bartering away the vessel in which he +sailed from home. + +In that up and down manly book of old-fashioned adventure, so full, +too, of honest wonders--the voyage of Lionel Wafer, one of ancient +Dampier's old chums--I found a little matter set down so like that +just quoted from Langsdorff, that I cannot forbear inserting it here +for a corroborative example, if such be needed. + +Lionel, it seems, was on his way to "John Ferdinando," as he calls +the modern Juan Fernandes. "In our way thither," he says, "about +four o'clock in the morning, when we were about one hundred and fifty +leagues from the Main of America, our ship felt a terrible shock, +which put our men in such consternation that they could hardly tell +where they were or what to think; but every one began to prepare for +death. And, indeed, the shock was so sudden and violent, that we +took it for granted the ship had struck against a rock; but when the +amazement was a little over, we cast the lead, and sounded, but found +no ground. .... The suddenness of the shock made the guns leap in +their carriages, and several of the men were shaken out of their +hammocks. Captain Davis, who lay with his head on a gun, was thrown +out of his cabin!" Lionel then goes on to impute the shock to an +earthquake, and seems to substantiate the imputation by stating that +a great earthquake, somewhere about that time, did actually do great +mischief along the Spanish land. But I should not much wonder if, in +the darkness of that early hour of the morning, the shock was after +all caused by an unseen whale vertically bumping the hull from +beneath. + +I might proceed with several more examples, one way or another known +to me, of the great power and malice at times of the sperm whale. In +more than one instance, he has been known, not only to chase the +assailing boats back to their ships, but to pursue the ship itself, +and long withstand all the lances hurled at him from its decks. The +English ship Pusie Hall can tell a story on that head; and, as for +his strength, let me say, that there have been examples where the +lines attached to a running sperm whale have, in a calm, been +transferred to the ship, and secured there; the whale towing her +great hull through the water, as a horse walks off with a cart. +Again, it is very often observed that, if the sperm whale, once +struck, is allowed time to rally, he then acts, not so often with +blind rage, as with wilful, deliberate designs of destruction to his +pursuers; nor is it without conveying some eloquent indication of his +character, that upon being attacked he will frequently open his +mouth, and retain it in that dread expansion for several consecutive +minutes. But I must be content with only one more and a concluding +illustration; a remarkable and most significant one, by which you +will not fail to see, that not only is the most marvellous event in +this book corroborated by plain facts of the present day, but that +these marvels (like all marvels) are mere repetitions of the ages; so +that for the millionth time we say amen with Solomon--Verily there is +nothing new under the sun. + +In the sixth Christian century lived Procopius, a Christian +magistrate of Constantinople, in the days when Justinian was Emperor +and Belisarius general. As many know, he wrote the history of his +own times, a work every way of uncommon value. By the best +authorities, he has always been considered a most trustworthy and +unexaggerating historian, except in some one or two particulars, not +at all affecting the matter presently to be mentioned. + +Now, in this history of his, Procopius mentions that, during the term +of his prefecture at Constantinople, a great sea-monster was captured +in the neighboring Propontis, or Sea of Marmora, after having +destroyed vessels at intervals in those waters for a period of more +than fifty years. A fact thus set down in substantial history cannot +easily be gainsaid. Nor is there any reason it should be. Of what +precise species this sea-monster was, is not mentioned. But as he +destroyed ships, as well as for other reasons, he must have been a +whale; and I am strongly inclined to think a sperm whale. And I will +tell you why. For a long time I fancied that the sperm whale had +been always unknown in the Mediterranean and the deep waters +connecting with it. Even now I am certain that those seas are not, +and perhaps never can be, in the present constitution of things, a +place for his habitual gregarious resort. But further investigations +have recently proved to me, that in modern times there have been +isolated instances of the presence of the sperm whale in the +Mediterranean. I am told, on good authority, that on the Barbary +coast, a Commodore Davis of the British navy found the skeleton of a +sperm whale. Now, as a vessel of war readily passes through the +Dardanelles, hence a sperm whale could, by the same route, pass out +of the Mediterranean into the Propontis. + +In the Propontis, as far as I can learn, none of that peculiar +substance called BRIT is to be found, the aliment of the right whale. +But I have every reason to believe that the food of the sperm +whale--squid or cuttle-fish--lurks at the bottom of that sea, because +large creatures, but by no means the largest of that sort, have been +found at its surface. If, then, you properly put these statements +together, and reason upon them a bit, you will clearly perceive that, +according to all human reasoning, Procopius's sea-monster, that for +half a century stove the ships of a Roman Emperor, must in all +probability have been a sperm whale. + + + +CHAPTER 46 + +Surmises. + + +Though, consumed with the hot fire of his purpose, Ahab in all his +thoughts and actions ever had in view the ultimate capture of Moby +Dick; though he seemed ready to sacrifice all mortal interests to +that one passion; nevertheless it may have been that he was by nature +and long habituation far too wedded to a fiery whaleman's ways, +altogether to abandon the collateral prosecution of the voyage. Or +at least if this were otherwise, there were not wanting other motives +much more influential with him. It would be refining too much, +perhaps, even considering his monomania, to hint that his +vindictiveness towards the White Whale might have possibly extended +itself in some degree to all sperm whales, and that the more monsters +he slew by so much the more he multiplied the chances that each +subsequently encountered whale would prove to be the hated one he +hunted. But if such an hypothesis be indeed exceptionable, there +were still additional considerations which, though not so strictly +according with the wildness of his ruling passion, yet were by no +means incapable of swaying him. + +To accomplish his object Ahab must use tools; and of all tools used +in the shadow of the moon, men are most apt to get out of order. He +knew, for example, that however magnetic his ascendency in some +respects was over Starbuck, yet that ascendency did not cover the +complete spiritual man any more than mere corporeal superiority +involves intellectual mastership; for to the purely spiritual, the +intellectual but stand in a sort of corporeal relation. Starbuck's +body and Starbuck's coerced will were Ahab's, so long as Ahab kept +his magnet at Starbuck's brain; still he knew that for all this the +chief mate, in his soul, abhorred his captain's quest, and could he, +would joyfully disintegrate himself from it, or even frustrate it. +It might be that a long interval would elapse ere the White Whale was +seen. During that long interval Starbuck would ever be apt to fall +into open relapses of rebellion against his captain's leadership, +unless some ordinary, prudential, circumstantial influences were +brought to bear upon him. Not only that, but the subtle insanity of +Ahab respecting Moby Dick was noways more significantly manifested +than in his superlative sense and shrewdness in foreseeing that, for +the present, the hunt should in some way be stripped of that strange +imaginative impiousness which naturally invested it; that the full +terror of the voyage must be kept withdrawn into the obscure +background (for few men's courage is proof against protracted +meditation unrelieved by action); that when they stood their long +night watches, his officers and men must have some nearer things to +think of than Moby Dick. For however eagerly and impetuously the +savage crew had hailed the announcement of his quest; yet all sailors +of all sorts are more or less capricious and unreliable--they live in +the varying outer weather, and they inhale its fickleness--and when +retained for any object remote and blank in the pursuit, however +promissory of life and passion in the end, it is above all things +requisite that temporary interests and employments should intervene +and hold them healthily suspended for the final dash. + +Nor was Ahab unmindful of another thing. In times of strong emotion +mankind disdain all base considerations; but such times are +evanescent. The permanent constitutional condition of the +manufactured man, thought Ahab, is sordidness. Granting that the +White Whale fully incites the hearts of this my savage crew, and +playing round their savageness even breeds a certain generous +knight-errantism in them, still, while for the love of it they give +chase to Moby Dick, they must also have food for their more common, +daily appetites. For even the high lifted and chivalric Crusaders of +old times were not content to traverse two thousand miles of land to +fight for their holy sepulchre, without committing burglaries, +picking pockets, and gaining other pious perquisites by the way. Had +they been strictly held to their one final and romantic object--that +final and romantic object, too many would have turned from in +disgust. I will not strip these men, thought Ahab, of all hopes of +cash--aye, cash. They may scorn cash now; but let some months go by, +and no perspective promise of it to them, and then this same +quiescent cash all at once mutinying in them, this same cash would +soon cashier Ahab. + +Nor was there wanting still another precautionary motive more related +to Ahab personally. Having impulsively, it is probable, and perhaps +somewhat prematurely revealed the prime but private purpose of the +Pequod's voyage, Ahab was now entirely conscious that, in so doing, +he had indirectly laid himself open to the unanswerable charge of +usurpation; and with perfect impunity, both moral and legal, his crew +if so disposed, and to that end competent, could refuse all further +obedience to him, and even violently wrest from him the command. +From even the barely hinted imputation of usurpation, and the +possible consequences of such a suppressed impression gaining ground, +Ahab must of course have been most anxious to protect himself. That +protection could only consist in his own predominating brain and +heart and hand, backed by a heedful, closely calculating attention to +every minute atmospheric influence which it was possible for his crew +to be subjected to. + +For all these reasons then, and others perhaps too analytic to be +verbally developed here, Ahab plainly saw that he must still in a +good degree continue true to the natural, nominal purpose of the +Pequod's voyage; observe all customary usages; and not only that, but +force himself to evince all his well known passionate interest in the +general pursuit of his profession. + +Be all this as it may, his voice was now often heard hailing the +three mast-heads and admonishing them to keep a bright look-out, and +not omit reporting even a porpoise. This vigilance was not long +without reward. + + + +CHAPTER 47 + +The Mat-Maker. + + +It was a cloudy, sultry afternoon; the seamen were lazily lounging +about the decks, or vacantly gazing over into the lead-coloured +waters. Queequeg and I were mildly employed weaving what is called a +sword-mat, for an additional lashing to our boat. So still and +subdued and yet somehow preluding was all the scene, and such an +incantation of reverie lurked in the air, that each silent sailor +seemed resolved into his own invisible self. + +I was the attendant or page of Queequeg, while busy at the mat. As I +kept passing and repassing the filling or woof of marline between the +long yarns of the warp, using my own hand for the shuttle, and as +Queequeg, standing sideways, ever and anon slid his heavy oaken sword +between the threads, and idly looking off upon the water, carelessly +and unthinkingly drove home every yarn: I say so strange a +dreaminess did there then reign all over the ship and all over the +sea, only broken by the intermitting dull sound of the sword, that it +seemed as if this were the Loom of Time, and I myself were a shuttle +mechanically weaving and weaving away at the Fates. There lay the +fixed threads of the warp subject to but one single, ever returning, +unchanging vibration, and that vibration merely enough to admit of +the crosswise interblending of other threads with its own. This warp +seemed necessity; and here, thought I, with my own hand I ply my own +shuttle and weave my own destiny into these unalterable threads. +Meantime, Queequeg's impulsive, indifferent sword, sometimes hitting +the woof slantingly, or crookedly, or strongly, or weakly, as the +case might be; and by this difference in the concluding blow +producing a corresponding contrast in the final aspect of the +completed fabric; this savage's sword, thought I, which thus finally +shapes and fashions both warp and woof; this easy, indifferent sword +must be chance--aye, chance, free will, and necessity--nowise +incompatible--all interweavingly working together. The straight warp +of necessity, not to be swerved from its ultimate course--its every +alternating vibration, indeed, only tending to that; free will still +free to ply her shuttle between given threads; and chance, though +restrained in its play within the right lines of necessity, and +sideways in its motions directed by free will, though thus prescribed +to by both, chance by turns rules either, and has the last featuring +blow at events. + + +Thus we were weaving and weaving away when I started at a sound so +strange, long drawn, and musically wild and unearthly, that the ball +of free will dropped from my hand, and I stood gazing up at the +clouds whence that voice dropped like a wing. High aloft in the +cross-trees was that mad Gay-Header, Tashtego. His body was reaching +eagerly forward, his hand stretched out like a wand, and at brief +sudden intervals he continued his cries. To be sure the same sound +was that very moment perhaps being heard all over the seas, from +hundreds of whalemen's look-outs perched as high in the air; but from +few of those lungs could that accustomed old cry have derived such a +marvellous cadence as from Tashtego the Indian's. + +As he stood hovering over you half suspended in air, so wildly and +eagerly peering towards the horizon, you would have thought him some +prophet or seer beholding the shadows of Fate, and by those wild +cries announcing their coming. + +"There she blows! there! there! there! she blows! she blows!" + +"Where-away?" + +"On the lee-beam, about two miles off! a school of them!" + +Instantly all was commotion. + +The Sperm Whale blows as a clock ticks, with the same undeviating and +reliable uniformity. And thereby whalemen distinguish this fish from +other tribes of his genus. + +"There go flukes!" was now the cry from Tashtego; and the whales +disappeared. + +"Quick, steward!" cried Ahab. "Time! time!" + +Dough-Boy hurried below, glanced at the watch, and reported the exact +minute to Ahab. + +The ship was now kept away from the wind, and she went gently rolling +before it. Tashtego reporting that the whales had gone down heading +to leeward, we confidently looked to see them again directly in +advance of our bows. For that singular craft at times evinced by the +Sperm Whale when, sounding with his head in one direction, he +nevertheless, while concealed beneath the surface, mills round, and +swiftly swims off in the opposite quarter--this deceitfulness of his +could not now be in action; for there was no reason to suppose that +the fish seen by Tashtego had been in any way alarmed, or indeed knew +at all of our vicinity. One of the men selected for +shipkeepers--that is, those not appointed to the boats, by this time +relieved the Indian at the main-mast head. The sailors at the fore +and mizzen had come down; the line tubs were fixed in their places; +the cranes were thrust out; the mainyard was backed, and the three +boats swung over the sea like three samphire baskets over high +cliffs. Outside of the bulwarks their eager crews with one hand +clung to the rail, while one foot was expectantly poised on the +gunwale. So look the long line of man-of-war's men about to throw +themselves on board an enemy's ship. + +But at this critical instant a sudden exclamation was heard that took +every eye from the whale. With a start all glared at dark Ahab, who +was surrounded by five dusky phantoms that seemed fresh formed out of +air. + + + +CHAPTER 48 + +The First Lowering. + + +The phantoms, for so they then seemed, were flitting on the other +side of the deck, and, with a noiseless celerity, were casting loose +the tackles and bands of the boat which swung there. This boat had +always been deemed one of the spare boats, though technically called +the captain's, on account of its hanging from the starboard quarter. +The figure that now stood by its bows was tall and swart, with one +white tooth evilly protruding from its steel-like lips. A rumpled +Chinese jacket of black cotton funereally invested him, with wide +black trowsers of the same dark stuff. But strangely crowning this +ebonness was a glistening white plaited turban, the living hair +braided and coiled round and round upon his head. Less swart in +aspect, the companions of this figure were of that vivid, +tiger-yellow complexion peculiar to some of the aboriginal natives of +the Manillas;--a race notorious for a certain diabolism of subtilty, +and by some honest white mariners supposed to be the paid spies and +secret confidential agents on the water of the devil, their lord, +whose counting-room they suppose to be elsewhere. + +While yet the wondering ship's company were gazing upon these +strangers, Ahab cried out to the white-turbaned old man at their +head, "All ready there, Fedallah?" + +"Ready," was the half-hissed reply. + +"Lower away then; d'ye hear?" shouting across the deck. "Lower away +there, I say." + +Such was the thunder of his voice, that spite of their amazement the +men sprang over the rail; the sheaves whirled round in the blocks; +with a wallow, the three boats dropped into the sea; while, with a +dexterous, off-handed daring, unknown in any other vocation, the +sailors, goat-like, leaped down the rolling ship's side into the +tossed boats below. + +Hardly had they pulled out from under the ship's lee, when a fourth +keel, coming from the windward side, pulled round under the stern, +and showed the five strangers rowing Ahab, who, standing erect in the +stern, loudly hailed Starbuck, Stubb, and Flask, to spread themselves +widely, so as to cover a large expanse of water. But with all their +eyes again riveted upon the swart Fedallah and his crew, the inmates +of the other boats obeyed not the command. + +"Captain Ahab?--" said Starbuck. + +"Spread yourselves," cried Ahab; "give way, all four boats. Thou, +Flask, pull out more to leeward!" + +"Aye, aye, sir," cheerily cried little King-Post, sweeping round his +great steering oar. "Lay back!" addressing his crew. +"There!--there!--there again! There she blows right ahead, +boys!--lay back!" + +"Never heed yonder yellow boys, Archy." + +"Oh, I don't mind'em, sir," said Archy; "I knew it all before now. +Didn't I hear 'em in the hold? And didn't I tell Cabaco here of it? +What say ye, Cabaco? They are stowaways, Mr. Flask." + +"Pull, pull, my fine hearts-alive; pull, my children; pull, my little +ones," drawlingly and soothingly sighed Stubb to his crew, some of +whom still showed signs of uneasiness. "Why don't you break your +backbones, my boys? What is it you stare at? Those chaps in yonder +boat? Tut! They are only five more hands come to help us--never +mind from where--the more the merrier. Pull, then, do pull; never +mind the brimstone--devils are good fellows enough. So, so; there +you are now; that's the stroke for a thousand pounds; that's the +stroke to sweep the stakes! Hurrah for the gold cup of sperm oil, my +heroes! Three cheers, men--all hearts alive! Easy, easy; don't be +in a hurry--don't be in a hurry. Why don't you snap your oars, you +rascals? Bite something, you dogs! So, so, so, then:--softly, +softly! That's it--that's it! long and strong. Give way there, give +way! The devil fetch ye, ye ragamuffin rapscallions; ye are all +asleep. Stop snoring, ye sleepers, and pull. Pull, will ye? pull, +can't ye? pull, won't ye? Why in the name of gudgeons and +ginger-cakes don't ye pull?--pull and break something! pull, and +start your eyes out! Here!" whipping out the sharp knife from his +girdle; "every mother's son of ye draw his knife, and pull with the +blade between his teeth. That's it--that's it. Now ye do something; +that looks like it, my steel-bits. Start her--start her, my +silver-spoons! Start her, marling-spikes!" + +Stubb's exordium to his crew is given here at large, because he had +rather a peculiar way of talking to them in general, and especially +in inculcating the religion of rowing. But you must not suppose from +this specimen of his sermonizings that he ever flew into downright +passions with his congregation. Not at all; and therein consisted +his chief peculiarity. He would say the most terrific things to his +crew, in a tone so strangely compounded of fun and fury, and the fury +seemed so calculated merely as a spice to the fun, that no oarsman +could hear such queer invocations without pulling for dear life, and +yet pulling for the mere joke of the thing. Besides he all the time +looked so easy and indolent himself, so loungingly managed his +steering-oar, and so broadly gaped--open-mouthed at times--that the +mere sight of such a yawning commander, by sheer force of contrast, +acted like a charm upon the crew. Then again, Stubb was one of those +odd sort of humorists, whose jollity is sometimes so curiously +ambiguous, as to put all inferiors on their guard in the matter of +obeying them. + +In obedience to a sign from Ahab, Starbuck was now pulling obliquely +across Stubb's bow; and when for a minute or so the two boats were +pretty near to each other, Stubb hailed the mate. + +"Mr. Starbuck! larboard boat there, ahoy! a word with ye, sir, if ye +please!" + +"Halloa!" returned Starbuck, turning round not a single inch as he +spoke; still earnestly but whisperingly urging his crew; his face set +like a flint from Stubb's. + +"What think ye of those yellow boys, sir! + +"Smuggled on board, somehow, before the ship sailed. (Strong, strong, +boys!)" in a whisper to his crew, then speaking out loud again: "A +sad business, Mr. Stubb! (seethe her, seethe her, my lads!) but never +mind, Mr. Stubb, all for the best. Let all your crew pull strong, +come what will. (Spring, my men, spring!) There's hogsheads of sperm +ahead, Mr. Stubb, and that's what ye came for. (Pull, my boys!) +Sperm, sperm's the play! This at least is duty; duty and profit hand +in hand." + +"Aye, aye, I thought as much," soliloquized Stubb, when the boats +diverged, "as soon as I clapt eye on 'em, I thought so. Aye, and +that's what he went into the after hold for, so often, as Dough-Boy +long suspected. They were hidden down there. The White Whale's at +the bottom of it. Well, well, so be it! Can't be helped! All +right! Give way, men! It ain't the White Whale to-day! Give way!" + +Now the advent of these outlandish strangers at such a critical +instant as the lowering of the boats from the deck, this had not +unreasonably awakened a sort of superstitious amazement in some of +the ship's company; but Archy's fancied discovery having some time +previous got abroad among them, though indeed not credited then, this +had in some small measure prepared them for the event. It took off +the extreme edge of their wonder; and so what with all this and +Stubb's confident way of accounting for their appearance, they were +for the time freed from superstitious surmisings; though the affair +still left abundant room for all manner of wild conjectures as to +dark Ahab's precise agency in the matter from the beginning. For me, +I silently recalled the mysterious shadows I had seen creeping on +board the Pequod during the dim Nantucket dawn, as well as the +enigmatical hintings of the unaccountable Elijah. + +Meantime, Ahab, out of hearing of his officers, having sided the +furthest to windward, was still ranging ahead of the other boats; a +circumstance bespeaking how potent a crew was pulling him. Those +tiger yellow creatures of his seemed all steel and whalebone; like +five trip-hammers they rose and fell with regular strokes of +strength, which periodically started the boat along the water like a +horizontal burst boiler out of a Mississippi steamer. As for +Fedallah, who was seen pulling the harpooneer oar, he had thrown +aside his black jacket, and displayed his naked chest with the whole +part of his body above the gunwale, clearly cut against the +alternating depressions of the watery horizon; while at the other end +of the boat Ahab, with one arm, like a fencer's, thrown half backward +into the air, as if to counterbalance any tendency to trip; Ahab was +seen steadily managing his steering oar as in a thousand boat +lowerings ere the White Whale had torn him. All at once the +outstretched arm gave a peculiar motion and then remained fixed, +while the boat's five oars were seen simultaneously peaked. Boat and +crew sat motionless on the sea. Instantly the three spread boats in +the rear paused on their way. The whales had irregularly settled +bodily down into the blue, thus giving no distantly discernible token +of the movement, though from his closer vicinity Ahab had observed +it. + +"Every man look out along his oars!" cried Starbuck. "Thou, +Queequeg, stand up!" + +Nimbly springing up on the triangular raised box in the bow, the +savage stood erect there, and with intensely eager eyes gazed off +towards the spot where the chase had last been descried. Likewise +upon the extreme stern of the boat where it was also triangularly +platformed level with the gunwale, Starbuck himself was seen coolly +and adroitly balancing himself to the jerking tossings of his chip of +a craft, and silently eyeing the vast blue eye of the sea. + +Not very far distant Flask's boat was also lying breathlessly still; +its commander recklessly standing upon the top of the loggerhead, a +stout sort of post rooted in the keel, and rising some two feet above +the level of the stern platform. It is used for catching turns with +the whale line. Its top is not more spacious than the palm of a +man's hand, and standing upon such a base as that, Flask seemed +perched at the mast-head of some ship which had sunk to all but her +trucks. But little King-Post was small and short, and at the same +time little King-Post was full of a large and tall ambition, so that +this loggerhead stand-point of his did by no means satisfy King-Post. + +"I can't see three seas off; tip us up an oar there, and let me on to +that." + +Upon this, Daggoo, with either hand upon the gunwale to steady his +way, swiftly slid aft, and then erecting himself volunteered his +lofty shoulders for a pedestal. + +"Good a mast-head as any, sir. Will you mount?" + +"That I will, and thank ye very much, my fine fellow; only I wish you +fifty feet taller." + +Whereupon planting his feet firmly against two opposite planks of the +boat, the gigantic negro, stooping a little, presented his flat palm +to Flask's foot, and then putting Flask's hand on his hearse-plumed +head and bidding him spring as he himself should toss, with one +dexterous fling landed the little man high and dry on his shoulders. +And here was Flask now standing, Daggoo with one lifted arm +furnishing him with a breastband to lean against and steady himself +by. + +At any time it is a strange sight to the tyro to see with what +wondrous habitude of unconscious skill the whaleman will maintain an +erect posture in his boat, even when pitched about by the most +riotously perverse and cross-running seas. Still more strange to see +him giddily perched upon the loggerhead itself, under such +circumstances. But the sight of little Flask mounted upon gigantic +Daggoo was yet more curious; for sustaining himself with a cool, +indifferent, easy, unthought of, barbaric majesty, the noble negro to +every roll of the sea harmoniously rolled his fine form. On his +broad back, flaxen-haired Flask seemed a snow-flake. The bearer +looked nobler than the rider. Though truly vivacious, tumultuous, +ostentatious little Flask would now and then stamp with impatience; +but not one added heave did he thereby give to the negro's lordly +chest. So have I seen Passion and Vanity stamping the living +magnanimous earth, but the earth did not alter her tides and her +seasons for that. + +Meanwhile Stubb, the third mate, betrayed no such far-gazing +solicitudes. The whales might have made one of their regular +soundings, not a temporary dive from mere fright; and if that were +the case, Stubb, as his wont in such cases, it seems, was resolved to +solace the languishing interval with his pipe. He withdrew it from +his hatband, where he always wore it aslant like a feather. He +loaded it, and rammed home the loading with his thumb-end; but hardly +had he ignited his match across the rough sandpaper of his hand, +when Tashtego, his harpooneer, whose eyes had been setting to +windward like two fixed stars, suddenly dropped like light from his +erect attitude to his seat, crying out in a quick phrensy of hurry, +"Down, down all, and give way!--there they are!" + +To a landsman, no whale, nor any sign of a herring, would have been +visible at that moment; nothing but a troubled bit of greenish white +water, and thin scattered puffs of vapour hovering over it, and +suffusingly blowing off to leeward, like the confused scud from white +rolling billows. The air around suddenly vibrated and tingled, as it +were, like the air over intensely heated plates of iron. Beneath +this atmospheric waving and curling, and partially beneath a thin +layer of water, also, the whales were swimming. Seen in advance of +all the other indications, the puffs of vapour they spouted, seemed +their forerunning couriers and detached flying outriders. + +All four boats were now in keen pursuit of that one spot of troubled +water and air. But it bade fair to outstrip them; it flew on and on, +as a mass of interblending bubbles borne down a rapid stream from the +hills. + +"Pull, pull, my good boys," said Starbuck, in the lowest possible but +intensest concentrated whisper to his men; while the sharp fixed +glance from his eyes darted straight ahead of the bow, almost seemed +as two visible needles in two unerring binnacle compasses. He did +not say much to his crew, though, nor did his crew say anything to +him. Only the silence of the boat was at intervals startlingly +pierced by one of his peculiar whispers, now harsh with command, now +soft with entreaty. + +How different the loud little King-Post. "Sing out and say +something, my hearties. Roar and pull, my thunderbolts! Beach me, +beach me on their black backs, boys; only do that for me, and I'll +sign over to you my Martha's Vineyard plantation, boys; including +wife and children, boys. Lay me on--lay me on! O Lord, Lord! but I +shall go stark, staring mad! See! see that white water!" And so +shouting, he pulled his hat from his head, and stamped up and down on +it; then picking it up, flirted it far off upon the sea; and finally +fell to rearing and plunging in the boat's stern like a crazed colt +from the prairie. + +"Look at that chap now," philosophically drawled Stubb, who, with his +unlighted short pipe, mechanically retained between his teeth, at a +short distance, followed after--"He's got fits, that Flask has. +Fits? yes, give him fits--that's the very word--pitch fits into 'em. +Merrily, merrily, hearts-alive. Pudding for supper, you +know;--merry's the word. Pull, babes--pull, sucklings--pull, all. +But what the devil are you hurrying about? Softly, softly, and +steadily, my men. Only pull, and keep pulling; nothing more. Crack +all your backbones, and bite your knives in two--that's all. Take it +easy--why don't ye take it easy, I say, and burst all your livers and +lungs!" + +But what it was that inscrutable Ahab said to that tiger-yellow crew +of his--these were words best omitted here; for you live under the +blessed light of the evangelical land. Only the infidel sharks in +the audacious seas may give ear to such words, when, with tornado +brow, and eyes of red murder, and foam-glued lips, Ahab leaped after +his prey. + +Meanwhile, all the boats tore on. The repeated specific allusions of +Flask to "that whale," as he called the fictitious monster which he +declared to be incessantly tantalizing his boat's bow with its +tail--these allusions of his were at times so vivid and life-like, +that they would cause some one or two of his men to snatch a fearful +look over the shoulder. But this was against all rule; for the +oarsmen must put out their eyes, and ram a skewer through their +necks; usage pronouncing that they must have no organs but ears, and +no limbs but arms, in these critical moments. + +It was a sight full of quick wonder and awe! The vast swells of the +omnipotent sea; the surging, hollow roar they made, as they rolled +along the eight gunwales, like gigantic bowls in a boundless +bowling-green; the brief suspended agony of the boat, as it would tip +for an instant on the knife-like edge of the sharper waves, that +almost seemed threatening to cut it in two; the sudden profound dip +into the watery glens and hollows; the keen spurrings and goadings to +gain the top of the opposite hill; the headlong, sled-like slide down +its other side;--all these, with the cries of the headsmen and +harpooneers, and the shuddering gasps of the oarsmen, with the +wondrous sight of the ivory Pequod bearing down upon her boats with +outstretched sails, like a wild hen after her screaming brood;--all +this was thrilling. + +Not the raw recruit, marching from the bosom of his wife into the +fever heat of his first battle; not the dead man's ghost encountering +the first unknown phantom in the other world;--neither of these can +feel stranger and stronger emotions than that man does, who for the +first time finds himself pulling into the charmed, churned circle of +the hunted sperm whale. + +The dancing white water made by the chase was now becoming more and +more visible, owing to the increasing darkness of the dun +cloud-shadows flung upon the sea. The jets of vapour no longer +blended, but tilted everywhere to right and left; the whales seemed +separating their wakes. The boats were pulled more apart; Starbuck +giving chase to three whales running dead to leeward. Our sail was +now set, and, with the still rising wind, we rushed along; the boat +going with such madness through the water, that the lee oars could +scarcely be worked rapidly enough to escape being torn from the +row-locks. + +Soon we were running through a suffusing wide veil of mist; neither +ship nor boat to be seen. + +"Give way, men," whispered Starbuck, drawing still further aft the +sheet of his sail; "there is time to kill a fish yet before the +squall comes. There's white water again!--close to! Spring!" + +Soon after, two cries in quick succession on each side of us denoted +that the other boats had got fast; but hardly were they overheard, +when with a lightning-like hurtling whisper Starbuck said: "Stand +up!" and Queequeg, harpoon in hand, sprang to his feet. + +Though not one of the oarsmen was then facing the life and death +peril so close to them ahead, yet with their eyes on the intense +countenance of the mate in the stern of the boat, they knew that the +imminent instant had come; they heard, too, an enormous wallowing +sound as of fifty elephants stirring in their litter. Meanwhile the +boat was still booming through the mist, the waves curling and +hissing around us like the erected crests of enraged serpents. + +"That's his hump. THERE, THERE, give it to him!" whispered Starbuck. + +A short rushing sound leaped out of the boat; it was the darted iron +of Queequeg. Then all in one welded commotion came an invisible push +from astern, while forward the boat seemed striking on a ledge; the +sail collapsed and exploded; a gush of scalding vapour shot up near +by; something rolled and tumbled like an earthquake beneath us. The +whole crew were half suffocated as they were tossed helter-skelter +into the white curdling cream of the squall. Squall, whale, and +harpoon had all blended together; and the whale, merely grazed by the +iron, escaped. + +Though completely swamped, the boat was nearly unharmed. Swimming +round it we picked up the floating oars, and lashing them across the +gunwale, tumbled back to our places. There we sat up to our knees in +the sea, the water covering every rib and plank, so that to our +downward gazing eyes the suspended craft seemed a coral boat grown up +to us from the bottom of the ocean. + +The wind increased to a howl; the waves dashed their bucklers +together; the whole squall roared, forked, and crackled around us +like a white fire upon the prairie, in which, unconsumed, we were +burning; immortal in these jaws of death! In vain we hailed the +other boats; as well roar to the live coals down the chimney of a +flaming furnace as hail those boats in that storm. Meanwhile the +driving scud, rack, and mist, grew darker with the shadows of night; +no sign of the ship could be seen. The rising sea forbade all +attempts to bale out the boat. The oars were useless as propellers, +performing now the office of life-preservers. So, cutting the +lashing of the waterproof match keg, after many failures Starbuck +contrived to ignite the lamp in the lantern; then stretching it on a +waif pole, handed it to Queequeg as the standard-bearer of this +forlorn hope. There, then, he sat, holding up that imbecile candle +in the heart of that almighty forlornness. There, then, he sat, the +sign and symbol of a man without faith, hopelessly holding up hope in +the midst of despair. + +Wet, drenched through, and shivering cold, despairing of ship or +boat, we lifted up our eyes as the dawn came on. The mist still +spread over the sea, the empty lantern lay crushed in the bottom of +the boat. Suddenly Queequeg started to his feet, hollowing his hand +to his ear. We all heard a faint creaking, as of ropes and yards +hitherto muffled by the storm. The sound came nearer and nearer; the +thick mists were dimly parted by a huge, vague form. Affrighted, we +all sprang into the sea as the ship at last loomed into view, bearing +right down upon us within a distance of not much more than its +length. + +Floating on the waves we saw the abandoned boat, as for one instant +it tossed and gaped beneath the ship's bows like a chip at the base +of a cataract; and then the vast hull rolled over it, and it was seen +no more till it came up weltering astern. Again we swam for it, were +dashed against it by the seas, and were at last taken up and safely +landed on board. Ere the squall came close to, the other boats had +cut loose from their fish and returned to the ship in good time. The +ship had given us up, but was still cruising, if haply it might light +upon some token of our perishing,--an oar or a lance pole. + + + +CHAPTER 49 + +The Hyena. + + +There are certain queer times and occasions in this strange mixed +affair we call life when a man takes this whole universe for a vast +practical joke, though the wit thereof he but dimly discerns, and +more than suspects that the joke is at nobody's expense but his own. +However, nothing dispirits, and nothing seems worth while disputing. +He bolts down all events, all creeds, and beliefs, and persuasions, +all hard things visible and invisible, never mind how knobby; as an +ostrich of potent digestion gobbles down bullets and gun flints. And +as for small difficulties and worryings, prospects of sudden +disaster, peril of life and limb; all these, and death itself, seem +to him only sly, good-natured hits, and jolly punches in the side +bestowed by the unseen and unaccountable old joker. That odd sort of +wayward mood I am speaking of, comes over a man only in some time of +extreme tribulation; it comes in the very midst of his earnestness, +so that what just before might have seemed to him a thing most +momentous, now seems but a part of the general joke. There is +nothing like the perils of whaling to breed this free and easy sort +of genial, desperado philosophy; and with it I now regarded this +whole voyage of the Pequod, and the great White Whale its object. + +"Queequeg," said I, when they had dragged me, the last man, to the +deck, and I was still shaking myself in my jacket to fling off the +water; "Queequeg, my fine friend, does this sort of thing often +happen?" Without much emotion, though soaked through just like me, +he gave me to understand that such things did often happen. + +"Mr. Stubb," said I, turning to that worthy, who, buttoned up in his +oil-jacket, was now calmly smoking his pipe in the rain; "Mr. Stubb, +I think I have heard you say that of all whalemen you ever met, our +chief mate, Mr. Starbuck, is by far the most careful and prudent. I +suppose then, that going plump on a flying whale with your sail set +in a foggy squall is the height of a whaleman's discretion?" + +"Certain. I've lowered for whales from a leaking ship in a gale off +Cape Horn." + +"Mr. Flask," said I, turning to little King-Post, who was standing +close by; "you are experienced in these things, and I am not. Will +you tell me whether it is an unalterable law in this fishery, Mr. +Flask, for an oarsman to break his own back pulling himself +back-foremost into death's jaws?" + +"Can't you twist that smaller?" said Flask. "Yes, that's the law. I +should like to see a boat's crew backing water up to a whale face +foremost. Ha, ha! the whale would give them squint for squint, mind +that!" + +Here then, from three impartial witnesses, I had a deliberate +statement of the entire case. Considering, therefore, that squalls +and capsizings in the water and consequent bivouacks on the deep, +were matters of common occurrence in this kind of life; considering +that at the superlatively critical instant of going on to the whale I +must resign my life into the hands of him who steered the +boat--oftentimes a fellow who at that very moment is in his +impetuousness upon the point of scuttling the craft with his own +frantic stampings; considering that the particular disaster to our +own particular boat was chiefly to be imputed to Starbuck's driving +on to his whale almost in the teeth of a squall, and considering that +Starbuck, notwithstanding, was famous for his great heedfulness in +the fishery; considering that I belonged to this uncommonly prudent +Starbuck's boat; and finally considering in what a devil's chase I +was implicated, touching the White Whale: taking all things together, +I say, I thought I might as well go below and make a rough draft of +my will. "Queequeg," said I, "come along, you shall be my lawyer, +executor, and legatee." + +It may seem strange that of all men sailors should be tinkering at +their last wills and testaments, but there are no people in the world +more fond of that diversion. This was the fourth time in my nautical +life that I had done the same thing. After the ceremony was +concluded upon the present occasion, I felt all the easier; a stone +was rolled away from my heart. Besides, all the days I should now +live would be as good as the days that Lazarus lived after his +resurrection; a supplementary clean gain of so many months or weeks +as the case might be. I survived myself; my death and burial were +locked up in my chest. I looked round me tranquilly and contentedly, +like a quiet ghost with a clean conscience sitting inside the bars of +a snug family vault. + +Now then, thought I, unconsciously rolling up the sleeves of my +frock, here goes for a cool, collected dive at death and destruction, +and the devil fetch the hindmost. + + + +CHAPTER 50 + +Ahab's Boat and Crew. Fedallah. + + +"Who would have thought it, Flask!" cried Stubb; "if I had but one +leg you would not catch me in a boat, unless maybe to stop the +plug-hole with my timber toe. Oh! he's a wonderful old man!" + +"I don't think it so strange, after all, on that account," said +Flask. "If his leg were off at the hip, now, it would be a different +thing. That would disable him; but he has one knee, and good part of +the other left, you know." + +"I don't know that, my little man; I never yet saw him kneel." + + +Among whale-wise people it has often been argued whether, considering +the paramount importance of his life to the success of the voyage, it +is right for a whaling captain to jeopardize that life in the active +perils of the chase. So Tamerlane's soldiers often argued with tears +in their eyes, whether that invaluable life of his ought to be +carried into the thickest of the fight. + +But with Ahab the question assumed a modified aspect. Considering +that with two legs man is but a hobbling wight in all times of +danger; considering that the pursuit of whales is always under great +and extraordinary difficulties; that every individual moment, indeed, +then comprises a peril; under these circumstances is it wise for any +maimed man to enter a whale-boat in the hunt? As a general thing, +the joint-owners of the Pequod must have plainly thought not. + +Ahab well knew that although his friends at home would think little +of his entering a boat in certain comparatively harmless vicissitudes +of the chase, for the sake of being near the scene of action and +giving his orders in person, yet for Captain Ahab to have a boat +actually apportioned to him as a regular headsman in the hunt--above +all for Captain Ahab to be supplied with five extra men, as that same +boat's crew, he well knew that such generous conceits never entered the +heads of the owners of the Pequod. Therefore he had not solicited a +boat's crew from them, nor had he in any way hinted his desires on +that head. Nevertheless he had taken private measures of his own +touching all that matter. Until Cabaco's published discovery, the +sailors had little foreseen it, though to be sure when, after being a +little while out of port, all hands had concluded the customary +business of fitting the whaleboats for service; when some time after +this Ahab was now and then found bestirring himself in the matter of +making thole-pins with his own hands for what was thought to be one +of the spare boats, and even solicitously cutting the small wooden +skewers, which when the line is running out are pinned over the +groove in the bow: when all this was observed in him, and +particularly his solicitude in having an extra coat of sheathing in +the bottom of the boat, as if to make it better withstand the pointed +pressure of his ivory limb; and also the anxiety he evinced in +exactly shaping the thigh board, or clumsy cleat, as it is sometimes +called, the horizontal piece in the boat's bow for bracing the knee +against in darting or stabbing at the whale; when it was observed how +often he stood up in that boat with his solitary knee fixed in the +semi-circular depression in the cleat, and with the carpenter's +chisel gouged out a little here and straightened it a little there; +all these things, I say, had awakened much interest and curiosity at +the time. But almost everybody supposed that this particular +preparative heedfulness in Ahab must only be with a view to the +ultimate chase of Moby Dick; for he had already revealed his +intention to hunt that mortal monster in person. But such a +supposition did by no means involve the remotest suspicion as to any +boat's crew being assigned to that boat. + +Now, with the subordinate phantoms, what wonder remained soon waned +away; for in a whaler wonders soon wane. Besides, now and then such +unaccountable odds and ends of strange nations come up from the +unknown nooks and ash-holes of the earth to man these floating +outlaws of whalers; and the ships themselves often pick up such queer +castaway creatures found tossing about the open sea on planks, bits +of wreck, oars, whaleboats, canoes, blown-off Japanese junks, and +what not; that Beelzebub himself might climb up the side and step +down into the cabin to chat with the captain, and it would not create +any unsubduable excitement in the forecastle. + +But be all this as it may, certain it is that while the subordinate +phantoms soon found their place among the crew, though still as it +were somehow distinct from them, yet that hair-turbaned Fedallah +remained a muffled mystery to the last. Whence he came in a mannerly +world like this, by what sort of unaccountable tie he soon evinced +himself to be linked with Ahab's peculiar fortunes; nay, so far as to +have some sort of a half-hinted influence; Heaven knows, but it might +have been even authority over him; all this none knew. But one +cannot sustain an indifferent air concerning Fedallah. He was such a +creature as civilized, domestic people in the temperate zone only see +in their dreams, and that but dimly; but the like of whom now and +then glide among the unchanging Asiatic communities, especially the +Oriental isles to the east of the continent--those insulated, +immemorial, unalterable countries, which even in these modern days +still preserve much of the ghostly aboriginalness of earth's primal +generations, when the memory of the first man was a distinct +recollection, and all men his descendants, unknowing whence he came, +eyed each other as real phantoms, and asked of the sun and the moon +why they were created and to what end; when though, according to +Genesis, the angels indeed consorted with the daughters of men, the +devils also, add the uncanonical Rabbins, indulged in mundane amours. + + + +CHAPTER 51 + +The Spirit-Spout. + + +Days, weeks passed, and under easy sail, the ivory Pequod had slowly +swept across four several cruising-grounds; that off the Azores; off +the Cape de Verdes; on the Plate (so called), being off the mouth of +the Rio de la Plata; and the Carrol Ground, an unstaked, watery +locality, southerly from St. Helena. + +It was while gliding through these latter waters that one serene and +moonlight night, when all the waves rolled by like scrolls of silver; +and, by their soft, suffusing seethings, made what seemed a silvery +silence, not a solitude; on such a silent night a silvery jet was +seen far in advance of the white bubbles at the bow. Lit up by the +moon, it looked celestial; seemed some plumed and glittering god +uprising from the sea. Fedallah first descried this jet. For of +these moonlight nights, it was his wont to mount to the main-mast +head, and stand a look-out there, with the same precision as if it +had been day. And yet, though herds of whales were seen by night, +not one whaleman in a hundred would venture a lowering for them. You +may think with what emotions, then, the seamen beheld this old +Oriental perched aloft at such unusual hours; his turban and the +moon, companions in one sky. But when, after spending his uniform +interval there for several successive nights without uttering a +single sound; when, after all this silence, his unearthly voice was +heard announcing that silvery, moon-lit jet, every reclining mariner +started to his feet as if some winged spirit had lighted in the +rigging, and hailed the mortal crew. "There she blows!" Had the +trump of judgment blown, they could not have quivered more; yet still +they felt no terror; rather pleasure. For though it was a most +unwonted hour, yet so impressive was the cry, and so deliriously +exciting, that almost every soul on board instinctively desired a +lowering. + +Walking the deck with quick, side-lunging strides, Ahab commanded the +t'gallant sails and royals to be set, and every stunsail spread. The +best man in the ship must take the helm. Then, with every mast-head +manned, the piled-up craft rolled down before the wind. The strange, +upheaving, lifting tendency of the taffrail breeze filling the +hollows of so many sails, made the buoyant, hovering deck to feel +like air beneath the feet; while still she rushed along, as if two +antagonistic influences were struggling in her--one to mount direct +to heaven, the other to drive yawingly to some horizontal goal. And +had you watched Ahab's face that night, you would have thought that +in him also two different things were warring. While his one live +leg made lively echoes along the deck, every stroke of his dead limb +sounded like a coffin-tap. On life and death this old man walked. +But though the ship so swiftly sped, and though from every eye, like +arrows, the eager glances shot, yet the silvery jet was no more seen +that night. Every sailor swore he saw it once, but not a second +time. + +This midnight-spout had almost grown a forgotten thing, when, some +days after, lo! at the same silent hour, it was again announced: +again it was descried by all; but upon making sail to overtake it, +once more it disappeared as if it had never been. And so it served +us night after night, till no one heeded it but to wonder at it. +Mysteriously jetted into the clear moonlight, or starlight, as the +case might be; disappearing again for one whole day, or two days, or +three; and somehow seeming at every distinct repetition to be +advancing still further and further in our van, this solitary jet +seemed for ever alluring us on. + +Nor with the immemorial superstition of their race, and in accordance +with the preternaturalness, as it seemed, which in many things +invested the Pequod, were there wanting some of the seamen who swore +that whenever and wherever descried; at however remote times, or in +however far apart latitudes and longitudes, that unnearable spout was +cast by one self-same whale; and that whale, Moby Dick. For a time, +there reigned, too, a sense of peculiar dread at this flitting +apparition, as if it were treacherously beckoning us on and on, in +order that the monster might turn round upon us, and rend us at last +in the remotest and most savage seas. + +These temporary apprehensions, so vague but so awful, derived a +wondrous potency from the contrasting serenity of the weather, in +which, beneath all its blue blandness, some thought there lurked a +devilish charm, as for days and days we voyaged along, through seas +so wearily, lonesomely mild, that all space, in repugnance to our +vengeful errand, seemed vacating itself of life before our urn-like +prow. + +But, at last, when turning to the eastward, the Cape winds began +howling around us, and we rose and fell upon the long, troubled seas +that are there; when the ivory-tusked Pequod sharply bowed to the +blast, and gored the dark waves in her madness, till, like showers of +silver chips, the foam-flakes flew over her bulwarks; then all this +desolate vacuity of life went away, but gave place to sights more +dismal than before. + +Close to our bows, strange forms in the water darted hither and +thither before us; while thick in our rear flew the inscrutable +sea-ravens. And every morning, perched on our stays, rows of these +birds were seen; and spite of our hootings, for a long time +obstinately clung to the hemp, as though they deemed our ship some +drifting, uninhabited craft; a thing appointed to desolation, and +therefore fit roosting-place for their homeless selves. And heaved +and heaved, still unrestingly heaved the black sea, as if its vast +tides were a conscience; and the great mundane soul were in anguish +and remorse for the long sin and suffering it had bred. + +Cape of Good Hope, do they call ye? Rather Cape Tormentoto, as +called of yore; for long allured by the perfidious silences that +before had attended us, we found ourselves launched into this +tormented sea, where guilty beings transformed into those fowls and +these fish, seemed condemned to swim on everlastingly without any +haven in store, or beat that black air without any horizon. But +calm, snow-white, and unvarying; still directing its fountain of +feathers to the sky; still beckoning us on from before, the solitary +jet would at times be descried. + +During all this blackness of the elements, Ahab, though assuming for +the time the almost continual command of the drenched and dangerous +deck, manifested the gloomiest reserve; and more seldom than ever +addressed his mates. In tempestuous times like these, after +everything above and aloft has been secured, nothing more can be done +but passively to await the issue of the gale. Then Captain and crew +become practical fatalists. So, with his ivory leg inserted into its +accustomed hole, and with one hand firmly grasping a shroud, Ahab for +hours and hours would stand gazing dead to windward, while an +occasional squall of sleet or snow would all but congeal his very +eyelashes together. Meantime, the crew driven from the forward part +of the ship by the perilous seas that burstingly broke over its bows, +stood in a line along the bulwarks in the waist; and the better to +guard against the leaping waves, each man had slipped himself into a +sort of bowline secured to the rail, in which he swung as in a +loosened belt. Few or no words were spoken; and the silent ship, as +if manned by painted sailors in wax, day after day tore on through +all the swift madness and gladness of the demoniac waves. By night +the same muteness of humanity before the shrieks of the ocean +prevailed; still in silence the men swung in the bowlines; still +wordless Ahab stood up to the blast. Even when wearied nature seemed +demanding repose he would not seek that repose in his hammock. +Never could Starbuck forget the old man's aspect, when one night +going down into the cabin to mark how the barometer stood, he saw him +with closed eyes sitting straight in his floor-screwed chair; the +rain and half-melted sleet of the storm from which he had some time +before emerged, still slowly dripping from the unremoved hat and +coat. On the table beside him lay unrolled one of those charts of +tides and currents which have previously been spoken of. His lantern +swung from his tightly clenched hand. Though the body was erect, the +head was thrown back so that the closed eyes were pointed towards the +needle of the tell-tale that swung from a beam in the ceiling.* + + +*The cabin-compass is called the tell-tale, because without going to +the compass at the helm, the Captain, while below, can inform himself +of the course of the ship. + + +Terrible old man! thought Starbuck with a shudder, sleeping in this +gale, still thou steadfastly eyest thy purpose. + + + +CHAPTER 52 + +The Albatross. + + +South-eastward from the Cape, off the distant Crozetts, a good +cruising ground for Right Whalemen, a sail loomed ahead, the Goney +(Albatross) by name. As she slowly drew nigh, from my lofty perch at +the fore-mast-head, I had a good view of that sight so remarkable to +a tyro in the far ocean fisheries--a whaler at sea, and long absent +from home. + +As if the waves had been fullers, this craft was bleached like the +skeleton of a stranded walrus. All down her sides, this spectral +appearance was traced with long channels of reddened rust, while all +her spars and her rigging were like the thick branches of trees +furred over with hoar-frost. Only her lower sails were set. A wild +sight it was to see her long-bearded look-outs at those three +mast-heads. They seemed clad in the skins of beasts, so torn and +bepatched the raiment that had survived nearly four years of +cruising. Standing in iron hoops nailed to the mast, they swayed and +swung over a fathomless sea; and though, when the ship slowly glided +close under our stern, we six men in the air came so nigh to each +other that we might almost have leaped from the mast-heads of one +ship to those of the other; yet, those forlorn-looking fishermen, +mildly eyeing us as they passed, said not one word to our own +look-outs, while the quarter-deck hail was being heard from below. + +"Ship ahoy! Have ye seen the White Whale?" + +But as the strange captain, leaning over the pallid bulwarks, was in +the act of putting his trumpet to his mouth, it somehow fell from his +hand into the sea; and the wind now rising amain, he in vain strove +to make himself heard without it. Meantime his ship was still +increasing the distance between. While in various silent ways +the seamen of the Pequod were evincing their observance of this +ominous incident at the first mere mention of the White Whale's name +to another ship, Ahab for a moment paused; it almost seemed as though +he would have lowered a boat to board the stranger, had not the +threatening wind forbade. But taking advantage of his windward +position, he again seized his trumpet, and knowing by her aspect that +the stranger vessel was a Nantucketer and shortly bound home, he +loudly hailed--"Ahoy there! This is the Pequod, bound round the +world! Tell them to address all future letters to the Pacific ocean! +and this time three years, if I am not at home, tell them to address +them to--" + +At that moment the two wakes were fairly crossed, and instantly, +then, in accordance with their singular ways, shoals of small +harmless fish, that for some days before had been placidly swimming +by our side, darted away with what seemed shuddering fins, and ranged +themselves fore and aft with the stranger's flanks. Though in the +course of his continual voyagings Ahab must often before have noticed +a similar sight, yet, to any monomaniac man, the veriest trifles +capriciously carry meanings. + +"Swim away from me, do ye?" murmured Ahab, gazing over into the +water. There seemed but little in the words, but the tone conveyed +more of deep helpless sadness than the insane old man had ever before +evinced. But turning to the steersman, who thus far had been holding +the ship in the wind to diminish her headway, he cried out in his old +lion voice,--"Up helm! Keep her off round the world!" + +Round the world! There is much in that sound to inspire proud +feelings; but whereto does all that circumnavigation conduct? Only +through numberless perils to the very point whence we started, where +those that we left behind secure, were all the time before us. + +Were this world an endless plain, and by sailing eastward we could +for ever reach new distances, and discover sights more sweet and +strange than any Cyclades or Islands of King Solomon, then there were +promise in the voyage. But in pursuit of those far mysteries we +dream of, or in tormented chase of that demon phantom that, some time +or other, swims before all human hearts; while chasing such over this +round globe, they either lead us on in barren mazes or midway leave +us whelmed. + + + +CHAPTER 53 + +The Gam. + + +The ostensible reason why Ahab did not go on board of the whaler we +had spoken was this: the wind and sea betokened storms. But even had +this not been the case, he would not after all, perhaps, have boarded +her--judging by his subsequent conduct on similar occasions--if so it +had been that, by the process of hailing, he had obtained a negative +answer to the question he put. For, as it eventually turned out, he +cared not to consort, even for five minutes, with any stranger +captain, except he could contribute some of that information he so +absorbingly sought. But all this might remain inadequately +estimated, were not something said here of the peculiar usages of +whaling-vessels when meeting each other in foreign seas, and +especially on a common cruising-ground. + +If two strangers crossing the Pine Barrens in New York State, or the +equally desolate Salisbury Plain in England; if casually encountering +each other in such inhospitable wilds, these twain, for the life of +them, cannot well avoid a mutual salutation; and stopping for a +moment to interchange the news; and, perhaps, sitting down for a +while and resting in concert: then, how much more natural that upon +the illimitable Pine Barrens and Salisbury Plains of the sea, two +whaling vessels descrying each other at the ends of the earth--off +lone Fanning's Island, or the far away King's Mills; how much more +natural, I say, that under such circumstances these ships should not +only interchange hails, but come into still closer, more friendly and +sociable contact. And especially would this seem to be a matter of +course, in the case of vessels owned in one seaport, and whose +captains, officers, and not a few of the men are personally known to +each other; and consequently, have all sorts of dear domestic things +to talk about. + +For the long absent ship, the outward-bounder, perhaps, has letters +on board; at any rate, she will be sure to let her have some papers +of a date a year or two later than the last one on her blurred and +thumb-worn files. And in return for that courtesy, the outward-bound +ship would receive the latest whaling intelligence from the +cruising-ground to which she may be destined, a thing of the utmost +importance to her. And in degree, all this will hold true concerning +whaling vessels crossing each other's track on the cruising-ground +itself, even though they are equally long absent from home. For one +of them may have received a transfer of letters from some third, and +now far remote vessel; and some of those letters may be for the +people of the ship she now meets. Besides, they would exchange the +whaling news, and have an agreeable chat. For not only would they +meet with all the sympathies of sailors, but likewise with all the +peculiar congenialities arising from a common pursuit and mutually +shared privations and perils. + +Nor would difference of country make any very essential difference; +that is, so long as both parties speak one language, as is the case +with Americans and English. Though, to be sure, from the small +number of English whalers, such meetings do not very often occur, and +when they do occur there is too apt to be a sort of shyness between +them; for your Englishman is rather reserved, and your Yankee, he +does not fancy that sort of thing in anybody but himself. Besides, +the English whalers sometimes affect a kind of metropolitan +superiority over the American whalers; regarding the long, lean +Nantucketer, with his nondescript provincialisms, as a sort of +sea-peasant. But where this superiority in the English whalemen +does really consist, it would be hard to say, seeing that the Yankees +in one day, collectively, kill more whales than all the English, +collectively, in ten years. But this is a harmless little foible in +the English whale-hunters, which the Nantucketer does not take much +to heart; probably, because he knows that he has a few foibles +himself. + +So, then, we see that of all ships separately sailing the sea, the +whalers have most reason to be sociable--and they are so. Whereas, +some merchant ships crossing each other's wake in the mid-Atlantic, +will oftentimes pass on without so much as a single word of +recognition, mutually cutting each other on the high seas, like a +brace of dandies in Broadway; and all the time indulging, perhaps, in +finical criticism upon each other's rig. As for Men-of-War, when +they chance to meet at sea, they first go through such a string of +silly bowings and scrapings, such a ducking of ensigns, that there +does not seem to be much right-down hearty good-will and brotherly +love about it at all. As touching Slave-ships meeting, why, they are +in such a prodigious hurry, they run away from each other as soon as +possible. And as for Pirates, when they chance to cross each other's +cross-bones, the first hail is--"How many skulls?"--the same way that +whalers hail--"How many barrels?" And that question once answered, +pirates straightway steer apart, for they are infernal villains on +both sides, and don't like to see overmuch of each other's villanous +likenesses. + +But look at the godly, honest, unostentatious, hospitable, sociable, +free-and-easy whaler! What does the whaler do when she meets another +whaler in any sort of decent weather? She has a "GAM," a thing so +utterly unknown to all other ships that they never heard of the name +even; and if by chance they should hear of it, they only grin at it, +and repeat gamesome stuff about "spouters" and "blubber-boilers," and +such like pretty exclamations. Why it is that all Merchant-seamen, +and also all Pirates and Man-of-War's men, and Slave-ship sailors, +cherish such a scornful feeling towards Whale-ships; this is a +question it would be hard to answer. Because, in the case of +pirates, say, I should like to know whether that profession of theirs +has any peculiar glory about it. It sometimes ends in uncommon +elevation, indeed; but only at the gallows. And besides, when a man +is elevated in that odd fashion, he has no proper foundation for his +superior altitude. Hence, I conclude, that in boasting himself to be +high lifted above a whaleman, in that assertion the pirate has no +solid basis to stand on. + +But what is a GAM? You might wear out your index-finger running up +and down the columns of dictionaries, and never find the word. Dr. +Johnson never attained to that erudition; Noah Webster's ark does not +hold it. Nevertheless, this same expressive word has now for many +years been in constant use among some fifteen thousand true born +Yankees. Certainly, it needs a definition, and should be +incorporated into the Lexicon. With that view, let me learnedly +define it. + +GAM. NOUN--A SOCIAL MEETING OF TWO (OR MORE) WHALESHIPS, GENERALLY +ON A CRUISING-GROUND; WHEN, AFTER EXCHANGING HAILS, THEY EXCHANGE +VISITS BY BOATS' CREWS; THE TWO CAPTAINS REMAINING, FOR THE TIME, ON +BOARD OF ONE SHIP, AND THE TWO CHIEF MATES ON THE OTHER. + +There is another little item about Gamming which must not be +forgotten here. All professions have their own little peculiarities +of detail; so has the whale fishery. In a pirate, man-of-war, or +slave ship, when the captain is rowed anywhere in his boat, he always +sits in the stern sheets on a comfortable, sometimes cushioned seat +there, and often steers himself with a pretty little milliner's +tiller decorated with gay cords and ribbons. But the whale-boat has +no seat astern, no sofa of that sort whatever, and no tiller at all. +High times indeed, if whaling captains were wheeled about the water +on castors like gouty old aldermen in patent chairs. And as for a +tiller, the whale-boat never admits of any such effeminacy; and +therefore as in gamming a complete boat's crew must leave the ship, +and hence as the boat steerer or harpooneer is of the number, that +subordinate is the steersman upon the occasion, and the captain, +having no place to sit in, is pulled off to his visit all standing +like a pine tree. And often you will notice that being conscious of +the eyes of the whole visible world resting on him from the sides of +the two ships, this standing captain is all alive to the importance +of sustaining his dignity by maintaining his legs. Nor is this any +very easy matter; for in his rear is the immense projecting steering +oar hitting him now and then in the small of his back, the after-oar +reciprocating by rapping his knees in front. He is thus completely +wedged before and behind, and can only expand himself sideways by +settling down on his stretched legs; but a sudden, violent pitch of +the boat will often go far to topple him, because length of +foundation is nothing without corresponding breadth. Merely make a +spread angle of two poles, and you cannot stand them up. Then, +again, it would never do in plain sight of the world's riveted eyes, +it would never do, I say, for this straddling captain to be seen +steadying himself the slightest particle by catching hold of anything +with his hands; indeed, as token of his entire, buoyant self-command, +he generally carries his hands in his trowsers' pockets; but perhaps +being generally very large, heavy hands, he carries them there for +ballast. Nevertheless there have occurred instances, well +authenticated ones too, where the captain has been known for an +uncommonly critical moment or two, in a sudden squall say--to seize +hold of the nearest oarsman's hair, and hold on there like grim +death. + + + +CHAPTER 54 + +The Town-Ho's Story. + + +(AS TOLD AT THE GOLDEN INN) + + +The Cape of Good Hope, and all the watery region round about there, +is much like some noted four corners of a great highway, where you +meet more travellers than in any other part. + +It was not very long after speaking the Goney that another +homeward-bound whaleman, the Town-Ho,* was encountered. She was +manned almost wholly by Polynesians. In the short gam that ensued +she gave us strong news of Moby Dick. To some the general interest +in the White Whale was now wildly heightened by a circumstance of the +Town-Ho's story, which seemed obscurely to involve with the whale a +certain wondrous, inverted visitation of one of those so called +judgments of God which at times are said to overtake some men. This +latter circumstance, with its own particular accompaniments, forming +what may be called the secret part of the tragedy about to be +narrated, never reached the ears of Captain Ahab or his mates. For +that secret part of the story was unknown to the captain of the +Town-Ho himself. It was the private property of three confederate +white seamen of that ship, one of whom, it seems, communicated it to +Tashtego with Romish injunctions of secrecy, but the following night +Tashtego rambled in his sleep, and revealed so much of it in that +way, that when he was wakened he could not well withhold the rest. +Nevertheless, so potent an influence did this thing have on those +seamen in the Pequod who came to the full knowledge of it, and by +such a strange delicacy, to call it so, were they governed in this +matter, that they kept the secret among themselves so that it never +transpired abaft the Pequod's main-mast. Interweaving in its proper +place this darker thread with the story as publicly narrated on the +ship, the whole of this strange affair I now proceed to put on +lasting record. + + +*The ancient whale-cry upon first sighting a whale from the +mast-head, still used by whalemen in hunting the famous Gallipagos +terrapin. + + +For my humor's sake, I shall preserve the style in which I once +narrated it at Lima, to a lounging circle of my Spanish friends, one +saint's eve, smoking upon the thick-gilt tiled piazza of the Golden +Inn. Of those fine cavaliers, the young Dons, Pedro and Sebastian, +were on the closer terms with me; and hence the interluding questions +they occasionally put, and which are duly answered at the time. + +"Some two years prior to my first learning the events which I am +about rehearsing to you, gentlemen, the Town-Ho, Sperm Whaler of +Nantucket, was cruising in your Pacific here, not very many days' +sail eastward from the eaves of this good Golden Inn. She was +somewhere to the northward of the Line. One morning upon handling +the pumps, according to daily usage, it was observed that she made +more water in her hold than common. They supposed a sword-fish had +stabbed her, gentlemen. But the captain, having some unusual reason +for believing that rare good luck awaited him in those latitudes; and +therefore being very averse to quit them, and the leak not being then +considered at all dangerous, though, indeed, they could not find it +after searching the hold as low down as was possible in rather heavy +weather, the ship still continued her cruisings, the mariners working +at the pumps at wide and easy intervals; but no good luck came; more +days went by, and not only was the leak yet undiscovered, but it +sensibly increased. So much so, that now taking some alarm, the +captain, making all sail, stood away for the nearest harbor among the +islands, there to have his hull hove out and repaired. + +"Though no small passage was before her, yet, if the commonest chance +favoured, he did not at all fear that his ship would founder by the +way, because his pumps were of the best, and being periodically +relieved at them, those six-and-thirty men of his could easily keep +the ship free; never mind if the leak should double on her. In +truth, well nigh the whole of this passage being attended by very +prosperous breezes, the Town-Ho had all but certainly arrived in +perfect safety at her port without the occurrence of the least +fatality, had it not been for the brutal overbearing of Radney, the +mate, a Vineyarder, and the bitterly provoked vengeance of Steelkilt, +a Lakeman and desperado from Buffalo. + +"'Lakeman!--Buffalo! Pray, what is a Lakeman, and where is Buffalo?' +said Don Sebastian, rising in his swinging mat of grass. + +"On the eastern shore of our Lake Erie, Don; but--I crave your +courtesy--may be, you shall soon hear further of all that. Now, +gentlemen, in square-sail brigs and three-masted ships, well-nigh as +large and stout as any that ever sailed out of your old Callao to far +Manilla; this Lakeman, in the land-locked heart of our America, had +yet been nurtured by all those agrarian freebooting impressions +popularly connected with the open ocean. For in their interflowing +aggregate, those grand fresh-water seas of ours,--Erie, and Ontario, +and Huron, and Superior, and Michigan,--possess an ocean-like +expansiveness, with many of the ocean's noblest traits; with many of +its rimmed varieties of races and of climes. They contain round +archipelagoes of romantic isles, even as the Polynesian waters do; in +large part, are shored by two great contrasting nations, as the +Atlantic is; they furnish long maritime approaches to our numerous +territorial colonies from the East, dotted all round their banks; +here and there are frowned upon by batteries, and by the goat-like +craggy guns of lofty Mackinaw; they have heard the fleet thunderings +of naval victories; at intervals, they yield their beaches to wild +barbarians, whose red painted faces flash from out their peltry +wigwams; for leagues and leagues are flanked by ancient and unentered +forests, where the gaunt pines stand like serried lines of kings in +Gothic genealogies; those same woods harboring wild Afric beasts of +prey, and silken creatures whose exported furs give robes to Tartar +Emperors; they mirror the paved capitals of Buffalo and Cleveland, as +well as Winnebago villages; they float alike the full-rigged merchant +ship, the armed cruiser of the State, the steamer, and the beech +canoe; they are swept by Borean and dismasting blasts as direful as +any that lash the salted wave; they know what shipwrecks are, for out +of sight of land, however inland, they have drowned full many a +midnight ship with all its shrieking crew. Thus, gentlemen, though +an inlander, Steelkilt was wild-ocean born, and wild-ocean nurtured; +as much of an audacious mariner as any. And for Radney, though in +his infancy he may have laid him down on the lone Nantucket beach, to +nurse at his maternal sea; though in after life he had long followed +our austere Atlantic and your contemplative Pacific; yet was he quite +as vengeful and full of social quarrel as the backwoods seaman, fresh +from the latitudes of buck-horn handled bowie-knives. Yet was this +Nantucketer a man with some good-hearted traits; and this Lakeman, a +mariner, who though a sort of devil indeed, might yet by inflexible +firmness, only tempered by that common decency of human recognition +which is the meanest slave's right; thus treated, this Steelkilt had +long been retained harmless and docile. At all events, he had proved +so thus far; but Radney was doomed and made mad, and Steelkilt--but, +gentlemen, you shall hear. + +"It was not more than a day or two at the furthest after pointing her +prow for her island haven, that the Town-Ho's leak seemed again +increasing, but only so as to require an hour or more at the pumps +every day. You must know that in a settled and civilized ocean like +our Atlantic, for example, some skippers think little of pumping +their whole way across it; though of a still, sleepy night, should +the officer of the deck happen to forget his duty in that respect, +the probability would be that he and his shipmates would never again +remember it, on account of all hands gently subsiding to the bottom. +Nor in the solitary and savage seas far from you to the westward, +gentlemen, is it altogether unusual for ships to keep clanging at +their pump-handles in full chorus even for a voyage of considerable +length; that is, if it lie along a tolerably accessible coast, or if +any other reasonable retreat is afforded them. It is only when a +leaky vessel is in some very out of the way part of those waters, +some really landless latitude, that her captain begins to feel a +little anxious. + +"Much this way had it been with the Town-Ho; so when her leak was +found gaining once more, there was in truth some small concern +manifested by several of her company; especially by Radney the mate. +He commanded the upper sails to be well hoisted, sheeted home anew, +and every way expanded to the breeze. Now this Radney, I suppose, +was as little of a coward, and as little inclined to any sort of +nervous apprehensiveness touching his own person as any fearless, +unthinking creature on land or on sea that you can conveniently +imagine, gentlemen. Therefore when he betrayed this solicitude about +the safety of the ship, some of the seamen declared that it was only +on account of his being a part owner in her. So when they were +working that evening at the pumps, there was on this head no small +gamesomeness slily going on among them, as they stood with their feet +continually overflowed by the rippling clear water; clear as any +mountain spring, gentlemen--that bubbling from the pumps ran across +the deck, and poured itself out in steady spouts at the lee +scupper-holes. + +"Now, as you well know, it is not seldom the case in this +conventional world of ours--watery or otherwise; that when a person +placed in command over his fellow-men finds one of them to be very +significantly his superior in general pride of manhood, straightway +against that man he conceives an unconquerable dislike and +bitterness; and if he have a chance he will pull down and pulverize +that subaltern's tower, and make a little heap of dust of it. Be +this conceit of mine as it may, gentlemen, at all events Steelkilt +was a tall and noble animal with a head like a Roman, and a flowing +golden beard like the tasseled housings of your last viceroy's +snorting charger; and a brain, and a heart, and a soul in him, +gentlemen, which had made Steelkilt Charlemagne, had he been born son +to Charlemagne's father. But Radney, the mate, was ugly as a mule; +yet as hardy, as stubborn, as malicious. He did not love Steelkilt, +and Steelkilt knew it. + +"Espying the mate drawing near as he was toiling at the pump with the +rest, the Lakeman affected not to notice him, but unawed, went on +with his gay banterings. + +"'Aye, aye, my merry lads, it's a lively leak this; hold a cannikin, +one of ye, and let's have a taste. By the Lord, it's worth bottling! +I tell ye what, men, old Rad's investment must go for it! he had +best cut away his part of the hull and tow it home. The fact is, +boys, that sword-fish only began the job; he's come back again with a +gang of ship-carpenters, saw-fish, and file-fish, and what not; and +the whole posse of 'em are now hard at work cutting and slashing at +the bottom; making improvements, I suppose. If old Rad were here +now, I'd tell him to jump overboard and scatter 'em. They're playing +the devil with his estate, I can tell him. But he's a simple old +soul,--Rad, and a beauty too. Boys, they say the rest of his +property is invested in looking-glasses. I wonder if he'd give a +poor devil like me the model of his nose.' + +"'Damn your eyes! what's that pump stopping for?' roared Radney, +pretending not to have heard the sailors' talk. 'Thunder away at +it!' + +'Aye, aye, sir,' said Steelkilt, merry as a cricket. 'Lively, boys, +lively, now!' And with that the pump clanged like fifty +fire-engines; the men tossed their hats off to it, and ere long that +peculiar gasping of the lungs was heard which denotes the fullest +tension of life's utmost energies. + +"Quitting the pump at last, with the rest of his band, the Lakeman +went forward all panting, and sat himself down on the windlass; his +face fiery red, his eyes bloodshot, and wiping the profuse sweat from +his brow. Now what cozening fiend it was, gentlemen, that possessed +Radney to meddle with such a man in that corporeally exasperated +state, I know not; but so it happened. Intolerably striding along +the deck, the mate commanded him to get a broom and sweep down the +planks, and also a shovel, and remove some offensive matters +consequent upon allowing a pig to run at large. + +"Now, gentlemen, sweeping a ship's deck at sea is a piece of +household work which in all times but raging gales is regularly +attended to every evening; it has been known to be done in the case +of ships actually foundering at the time. Such, gentlemen, is the +inflexibility of sea-usages and the instinctive love of neatness in +seamen; some of whom would not willingly drown without first washing +their faces. But in all vessels this broom business is the +prescriptive province of the boys, if boys there be aboard. Besides, +it was the stronger men in the Town-Ho that had been divided into +gangs, taking turns at the pumps; and being the most athletic seaman +of them all, Steelkilt had been regularly assigned captain of one of +the gangs; consequently he should have been freed from any trivial +business not connected with truly nautical duties, such being the +case with his comrades. I mention all these particulars so that you +may understand exactly how this affair stood between the two men. + +"But there was more than this: the order about the shovel was almost +as plainly meant to sting and insult Steelkilt, as though Radney had +spat in his face. Any man who has gone sailor in a whale-ship will +understand this; and all this and doubtless much more, the Lakeman +fully comprehended when the mate uttered his command. But as he sat +still for a moment, and as he steadfastly looked into the mate's +malignant eye and perceived the stacks of powder-casks heaped up in +him and the slow-match silently burning along towards them; as he +instinctively saw all this, that strange forbearance and +unwillingness to stir up the deeper passionateness in any already +ireful being--a repugnance most felt, when felt at all, by really +valiant men even when aggrieved--this nameless phantom feeling, +gentlemen, stole over Steelkilt. + +"Therefore, in his ordinary tone, only a little broken by the bodily +exhaustion he was temporarily in, he answered him saying that +sweeping the deck was not his business, and he would not do it. And +then, without at all alluding to the shovel, he pointed to three +lads as the customary sweepers; who, not being billeted at the +pumps, had done little or nothing all day. To this, Radney replied +with an oath, in a most domineering and outrageous manner +unconditionally reiterating his command; meanwhile advancing upon the +still seated Lakeman, with an uplifted cooper's club hammer which he +had snatched from a cask near by. + +"Heated and irritated as he was by his spasmodic toil at the pumps, +for all his first nameless feeling of forbearance the sweating +Steelkilt could but ill brook this bearing in the mate; but somehow +still smothering the conflagration within him, without speaking he +remained doggedly rooted to his seat, till at last the incensed +Radney shook the hammer within a few inches of his face, furiously +commanding him to do his bidding. + +"Steelkilt rose, and slowly retreating round the windlass, steadily +followed by the mate with his menacing hammer, deliberately repeated +his intention not to obey. Seeing, however, that his forbearance had +not the slightest effect, by an awful and unspeakable intimation with +his twisted hand he warned off the foolish and infatuated man; but it +was to no purpose. And in this way the two went once slowly round +the windlass; when, resolved at last no longer to retreat, bethinking +him that he had now forborne as much as comported with his humor, the +Lakeman paused on the hatches and thus spoke to the officer: + +"'Mr. Radney, I will not obey you. Take that hammer away, or look to +yourself.' But the predestinated mate coming still closer to him, +where the Lakeman stood fixed, now shook the heavy hammer within an +inch of his teeth; meanwhile repeating a string of insufferable +maledictions. Retreating not the thousandth part of an inch; +stabbing him in the eye with the unflinching poniard of his glance, +Steelkilt, clenching his right hand behind him and creepingly drawing +it back, told his persecutor that if the hammer but grazed his cheek +he (Steelkilt) would murder him. But, gentlemen, the fool had been +branded for the slaughter by the gods. Immediately the hammer +touched the cheek; the next instant the lower jaw of the mate was +stove in his head; he fell on the hatch spouting blood like a whale. + +"Ere the cry could go aft Steelkilt was shaking one of the backstays +leading far aloft to where two of his comrades were standing their +mastheads. They were both Canallers. + +"'Canallers!' cried Don Pedro. 'We have seen many whale-ships in our +harbours, but never heard of your Canallers. Pardon: who and what are +they?' + +"'Canallers, Don, are the boatmen belonging to our grand Erie Canal. +You must have heard of it.' + +"'Nay, Senor; hereabouts in this dull, warm, most lazy, and +hereditary land, we know but little of your vigorous North.' + +"'Aye? Well then, Don, refill my cup. Your chicha's very fine; and +ere proceeding further I will tell ye what our Canallers are; for +such information may throw side-light upon my story.' + +"For three hundred and sixty miles, gentlemen, through the entire +breadth of the state of New York; through numerous populous cities +and most thriving villages; through long, dismal, uninhabited swamps, +and affluent, cultivated fields, unrivalled for fertility; by +billiard-room and bar-room; through the holy-of-holies of great +forests; on Roman arches over Indian rivers; through sun and shade; +by happy hearts or broken; through all the wide contrasting scenery +of those noble Mohawk counties; and especially, by rows of snow-white +chapels, whose spires stand almost like milestones, flows one +continual stream of Venetianly corrupt and often lawless life. +There's your true Ashantee, gentlemen; there howl your pagans; where +you ever find them, next door to you; under the long-flung shadow, +and the snug patronising lee of churches. For by some curious +fatality, as it is often noted of your metropolitan freebooters that +they ever encamp around the halls of justice, so sinners, gentlemen, +most abound in holiest vicinities. + +"'Is that a friar passing?' said Don Pedro, looking downwards into +the crowded plazza, with humorous concern. + +"'Well for our northern friend, Dame Isabella's Inquisition wanes in +Lima,' laughed Don Sebastian. 'Proceed, Senor.' + +"'A moment! Pardon!' cried another of the company. 'In the name of +all us Limeese, I but desire to express to you, sir sailor, that we +have by no means overlooked your delicacy in not substituting present +Lima for distant Venice in your corrupt comparison. Oh! do not bow +and look surprised; you know the proverb all along this +coast--"Corrupt as Lima." It but bears out your saying, too; +churches more plentiful than billiard-tables, and for ever open--and +"Corrupt as Lima." So, too, Venice; I have been there; the holy city +of the blessed evangelist, St. Mark!--St. Dominic, purge it! Your +cup! Thanks: here I refill; now, you pour out again.' + +"Freely depicted in his own vocation, gentlemen, the Canaller would +make a fine dramatic hero, so abundantly and picturesquely wicked is +he. Like Mark Antony, for days and days along his green-turfed, +flowery Nile, he indolently floats, openly toying with his +red-cheeked Cleopatra, ripening his apricot thigh upon the sunny +deck. But ashore, all this effeminacy is dashed. The brigandish +guise which the Canaller so proudly sports; his slouched and +gaily-ribboned hat betoken his grand features. A terror to the +smiling innocence of the villages through which he floats; his swart +visage and bold swagger are not unshunned in cities. Once a vagabond +on his own canal, I have received good turns from one of these +Canallers; I thank him heartily; would fain be not ungrateful; but it +is often one of the prime redeeming qualities of your man of +violence, that at times he has as stiff an arm to back a poor +stranger in a strait, as to plunder a wealthy one. In sum, +gentlemen, what the wildness of this canal life is, is emphatically +evinced by this; that our wild whale-fishery contains so many of its +most finished graduates, and that scarce any race of mankind, except +Sydney men, are so much distrusted by our whaling captains. Nor does +it at all diminish the curiousness of this matter, that to many +thousands of our rural boys and young men born along its line, the +probationary life of the Grand Canal furnishes the sole transition +between quietly reaping in a Christian corn-field, and recklessly +ploughing the waters of the most barbaric seas. + +"'I see! I see!' impetuously exclaimed Don Pedro, spilling his +chicha upon his silvery ruffles. 'No need to travel! The world's +one Lima. I had thought, now, that at your temperate North the +generations were cold and holy as the hills.--But the story.' + +"I left off, gentlemen, where the Lakeman shook the backstay. +Hardly had he done so, when he was surrounded by the three junior +mates and the four harpooneers, who all crowded him to the deck. But +sliding down the ropes like baleful comets, the two Canallers rushed +into the uproar, and sought to drag their man out of it towards the +forecastle. Others of the sailors joined with them in this attempt, +and a twisted turmoil ensued; while standing out of harm's way, the +valiant captain danced up and down with a whale-pike, calling upon +his officers to manhandle that atrocious scoundrel, and smoke him +along to the quarter-deck. At intervals, he ran close up to the +revolving border of the confusion, and prying into the heart of it +with his pike, sought to prick out the object of his resentment. But +Steelkilt and his desperadoes were too much for them all; they +succeeded in gaining the forecastle deck, where, hastily slewing +about three or four large casks in a line with the windlass, these +sea-Parisians entrenched themselves behind the barricade. + +"'Come out of that, ye pirates!' roared the captain, now menacing +them with a pistol in each hand, just brought to him by the steward. +'Come out of that, ye cut-throats!' + +"Steelkilt leaped on the barricade, and striding up and down there, +defied the worst the pistols could do; but gave the captain to +understand distinctly, that his (Steelkilt's) death would be the +signal for a murderous mutiny on the part of all hands. Fearing in +his heart lest this might prove but too true, the captain a little +desisted, but still commanded the insurgents instantly to return to +their duty. + +"'Will you promise not to touch us, if we do?' demanded their +ringleader. + +"'Turn to! turn to!--I make no promise;--to your duty! Do you want +to sink the ship, by knocking off at a time like this? Turn to!' and +he once more raised a pistol. + +"'Sink the ship?' cried Steelkilt. 'Aye, let her sink. Not a man of +us turns to, unless you swear not to raise a rope-yarn against us. +What say ye, men?' turning to his comrades. A fierce cheer was their +response. + +"The Lakeman now patrolled the barricade, all the while keeping his +eye on the Captain, and jerking out such sentences as these:--'It's +not our fault; we didn't want it; I told him to take his hammer away; +it was boy's business; he might have known me before this; I told him +not to prick the buffalo; I believe I have broken a finger here +against his cursed jaw; ain't those mincing knives down in the +forecastle there, men? look to those handspikes, my hearties. +Captain, by God, look to yourself; say the word; don't be a fool; +forget it all; we are ready to turn to; treat us decently, and we're +your men; but we won't be flogged.' + +"'Turn to! I make no promises, turn to, I say!' + +"'Look ye, now,' cried the Lakeman, flinging out his arm towards him, +'there are a few of us here (and I am one of them) who have shipped +for the cruise, d'ye see; now as you well know, sir, we can claim our +discharge as soon as the anchor is down; so we don't want a row; it's +not our interest; we want to be peaceable; we are ready to work, but +we won't be flogged.' + +"'Turn to!' roared the Captain. + +"Steelkilt glanced round him a moment, and then said:--'I tell you +what it is now, Captain, rather than kill ye, and be hung for such a +shabby rascal, we won't lift a hand against ye unless ye attack us; +but till you say the word about not flogging us, we don't do a hand's +turn.' + +"'Down into the forecastle then, down with ye, I'll keep ye there +till ye're sick of it. Down ye go.' + +"'Shall we?' cried the ringleader to his men. Most of them were +against it; but at length, in obedience to Steelkilt, they preceded +him down into their dark den, growlingly disappearing, like bears +into a cave. + +"As the Lakeman's bare head was just level with the planks, the +Captain and his posse leaped the barricade, and rapidly drawing over +the slide of the scuttle, planted their group of hands upon it, and +loudly called for the steward to bring the heavy brass padlock +belonging to the companionway. + +Then opening the slide a little, the Captain whispered something down +the crack, closed it, and turned the key upon them--ten in +number--leaving on deck some twenty or more, who thus far had +remained neutral. + +"All night a wide-awake watch was kept by all the officers, forward +and aft, especially about the forecastle scuttle and fore hatchway; +at which last place it was feared the insurgents might emerge, after +breaking through the bulkhead below. But the hours of darkness +passed in peace; the men who still remained at their duty toiling +hard at the pumps, whose clinking and clanking at intervals through +the dreary night dismally resounded through the ship. + +"At sunrise the Captain went forward, and knocking on the deck, +summoned the prisoners to work; but with a yell they refused. Water +was then lowered down to them, and a couple of handfuls of biscuit +were tossed after it; when again turning the key upon them and +pocketing it, the Captain returned to the quarter-deck. Twice every +day for three days this was repeated; but on the fourth morning a +confused wrangling, and then a scuffling was heard, as the customary +summons was delivered; and suddenly four men burst up from the +forecastle, saying they were ready to turn to. The fetid closeness +of the air, and a famishing diet, united perhaps to some fears of +ultimate retribution, had constrained them to surrender at +discretion. Emboldened by this, the Captain reiterated his demand to +the rest, but Steelkilt shouted up to him a terrific hint to stop his +babbling and betake himself where he belonged. On the fifth morning +three others of the mutineers bolted up into the air from the +desperate arms below that sought to restrain them. Only three were +left. + +"'Better turn to, now?' said the Captain with a heartless jeer. + +"'Shut us up again, will ye!' cried Steelkilt. + +"'Oh certainly,' the Captain, and the key clicked. + +"It was at this point, gentlemen, that enraged by the defection of +seven of his former associates, and stung by the mocking voice that +had last hailed him, and maddened by his long entombment in a place +as black as the bowels of despair; it was then that Steelkilt +proposed to the two Canallers, thus far apparently of one mind with +him, to burst out of their hole at the next summoning of the +garrison; and armed with their keen mincing knives (long, crescentic, +heavy implements with a handle at each end) run amuck from the +bowsprit to the taffrail; and if by any devilishness of desperation +possible, seize the ship. For himself, he would do this, he said, +whether they joined him or not. That was the last night he should +spend in that den. But the scheme met with no opposition on the part +of the other two; they swore they were ready for that, or for any +other mad thing, for anything in short but a surrender. And what was +more, they each insisted upon being the first man on deck, when the +time to make the rush should come. But to this their leader as +fiercely objected, reserving that priority for himself; particularly +as his two comrades would not yield, the one to the other, in the +matter; and both of them could not be first, for the ladder would but +admit one man at a time. And here, gentlemen, the foul play of these +miscreants must come out. + +"Upon hearing the frantic project of their leader, each in his own +separate soul had suddenly lighted, it would seem, upon the same +piece of treachery, namely: to be foremost in breaking out, in +order to be the first of the three, though the last of the ten, to +surrender; and thereby secure whatever small chance of pardon such +conduct might merit. But when Steelkilt made known his determination +still to lead them to the last, they in some way, by some subtle +chemistry of villany, mixed their before secret treacheries together; +and when their leader fell into a doze, verbally opened their souls +to each other in three sentences; and bound the sleeper with cords, +and gagged him with cords; and shrieked out for the Captain at +midnight. + +"Thinking murder at hand, and smelling in the dark for the blood, he +and all his armed mates and harpooneers rushed for the forecastle. +In a few minutes the scuttle was opened, and, bound hand and foot, +the still struggling ringleader was shoved up into the air by his +perfidious allies, who at once claimed the honour of securing a man +who had been fully ripe for murder. But all these were collared, and +dragged along the deck like dead cattle; and, side by side, were +seized up into the mizzen rigging, like three quarters of meat, and +there they hung till morning. 'Damn ye,' cried the Captain, pacing +to and fro before them, 'the vultures would not touch ye, ye +villains!' + +"At sunrise he summoned all hands; and separating those who had +rebelled from those who had taken no part in the mutiny, he told the +former that he had a good mind to flog them all round--thought, upon +the whole, he would do so--he ought to--justice demanded it; but for +the present, considering their timely surrender, he would let them go +with a reprimand, which he accordingly administered in the vernacular. + +"'But as for you, ye carrion rogues,' turning to the three men in the +rigging--'for you, I mean to mince ye up for the try-pots;' and, +seizing a rope, he applied it with all his might to the backs of the +two traitors, till they yelled no more, but lifelessly hung their +heads sideways, as the two crucified thieves are drawn. + +"'My wrist is sprained with ye!' he cried, at last; 'but there is +still rope enough left for you, my fine bantam, that wouldn't give +up. Take that gag from his mouth, and let us hear what he can say +for himself.' + +"For a moment the exhausted mutineer made a tremulous motion of his +cramped jaws, and then painfully twisting round his head, said in a +sort of hiss, 'What I say is this--and mind it well--if you flog me, +I murder you!' + +"'Say ye so? then see how ye frighten me'--and the Captain drew off +with the rope to strike. + +"'Best not,' hissed the Lakeman. + +"'But I must,'--and the rope was once more drawn back for the stroke. + +"Steelkilt here hissed out something, inaudible to all but the +Captain; who, to the amazement of all hands, started back, paced the +deck rapidly two or three times, and then suddenly throwing down his +rope, said, 'I won't do it--let him go--cut him down: d'ye hear?' + +But as the junior mates were hurrying to execute the order, a pale +man, with a bandaged head, arrested them--Radney the chief mate. +Ever since the blow, he had lain in his berth; but that morning, +hearing the tumult on the deck, he had crept out, and thus far had +watched the whole scene. Such was the state of his mouth, that he +could hardly speak; but mumbling something about his being willing +and able to do what the captain dared not attempt, he snatched the +rope and advanced to his pinioned foe. + +"'You are a coward!' hissed the Lakeman. + +"'So I am, but take that.' The mate was in the very act of striking, +when another hiss stayed his uplifted arm. He paused: and then +pausing no more, made good his word, spite of Steelkilt's threat, +whatever that might have been. The three men were then cut down, all +hands were turned to, and, sullenly worked by the moody seamen, the +iron pumps clanged as before. + +"Just after dark that day, when one watch had retired below, a clamor +was heard in the forecastle; and the two trembling traitors running +up, besieged the cabin door, saying they durst not consort with the +crew. Entreaties, cuffs, and kicks could not drive them back, so at +their own instance they were put down in the ship's run for +salvation. Still, no sign of mutiny reappeared among the rest. On +the contrary, it seemed, that mainly at Steelkilt's instigation, they +had resolved to maintain the strictest peacefulness, obey all orders +to the last, and, when the ship reached port, desert her in a body. +But in order to insure the speediest end to the voyage, they all +agreed to another thing--namely, not to sing out for whales, in case +any should be discovered. For, spite of her leak, and spite of all her +other perils, the Town-Ho still maintained her mast-heads, and her +captain was just as willing to lower for a fish that moment, as on +the day his craft first struck the cruising ground; and Radney the mate +was quite as ready to change his berth for a boat, and with his +bandaged mouth seek to gag in death the vital jaw of the whale. + +"But though the Lakeman had induced the seamen to adopt this sort of +passiveness in their conduct, he kept his own counsel (at least till +all was over) concerning his own proper and private revenge upon the +man who had stung him in the ventricles of his heart. He was in +Radney the chief mate's watch; and as if the infatuated man sought to +run more than half way to meet his doom, after the scene at the +rigging, he insisted, against the express counsel of the captain, +upon resuming the head of his watch at night. Upon this, and one or +two other circumstances, Steelkilt systematically built the plan of +his revenge. + +"During the night, Radney had an unseamanlike way of sitting on the +bulwarks of the quarter-deck, and leaning his arm upon the gunwale of +the boat which was hoisted up there, a little above the ship's side. +In this attitude, it was well known, he sometimes dozed. There was a +considerable vacancy between the boat and the ship, and down between +this was the sea. Steelkilt calculated his time, and found that his +next trick at the helm would come round at two o'clock, in the +morning of the third day from that in which he had been betrayed. At +his leisure, he employed the interval in braiding something very +carefully in his watches below. + +"'What are you making there?' said a shipmate. + +"'What do you think? what does it look like?' + +"'Like a lanyard for your bag; but it's an odd one, seems to me.' + +'Yes, rather oddish,' said the Lakeman, holding it at arm's length +before him; 'but I think it will answer. Shipmate, I haven't enough +twine,--have you any?' + +"But there was none in the forecastle. + +"'Then I must get some from old Rad;' and he rose to go aft. + +"'You don't mean to go a begging to HIM!' said a sailor. + +"'Why not? Do you think he won't do me a turn, when it's to help +himself in the end, shipmate?' and going to the mate, he looked at +him quietly, and asked him for some twine to mend his hammock. It +was given him--neither twine nor lanyard were seen again; but the +next night an iron ball, closely netted, partly rolled from the +pocket of the Lakeman's monkey jacket, as he was tucking the coat +into his hammock for a pillow. Twenty-four hours after, his trick at +the silent helm--nigh to the man who was apt to doze over the grave +always ready dug to the seaman's hand--that fatal hour was then to +come; and in the fore-ordaining soul of Steelkilt, the mate was +already stark and stretched as a corpse, with his forehead crushed +in. + +"But, gentlemen, a fool saved the would-be murderer from the bloody +deed he had planned. Yet complete revenge he had, and without being +the avenger. For by a mysterious fatality, Heaven itself seemed to +step in to take out of his hands into its own the damning thing he +would have done. + +"It was just between daybreak and sunrise of the morning of the +second day, when they were washing down the decks, that a stupid +Teneriffe man, drawing water in the main-chains, all at once shouted +out, 'There she rolls! there she rolls!' Jesu, what a whale! It was +Moby Dick. + +"'Moby Dick!' cried Don Sebastian; 'St. Dominic! Sir sailor, but do +whales have christenings? Whom call you Moby Dick?' + +"'A very white, and famous, and most deadly immortal monster, +Don;--but that would be too long a story.' + +"'How? how?' cried all the young Spaniards, crowding. + +"'Nay, Dons, Dons--nay, nay! I cannot rehearse that now. Let me get +more into the air, Sirs.' + +"'The chicha! the chicha!' cried Don Pedro; 'our vigorous friend looks +faint;--fill up his empty glass!' + +"No need, gentlemen; one moment, and I proceed.--Now, gentlemen, so +suddenly perceiving the snowy whale within fifty yards of the +ship--forgetful of the compact among the crew--in the excitement of +the moment, the Teneriffe man had instinctively and involuntarily +lifted his voice for the monster, though for some little time past it +had been plainly beheld from the three sullen mast-heads. All was +now a phrensy. 'The White Whale--the White Whale!' was the cry from +captain, mates, and harpooneers, who, undeterred by fearful rumours, +were all anxious to capture so famous and precious a fish; while the +dogged crew eyed askance, and with curses, the appalling beauty of +the vast milky mass, that lit up by a horizontal spangling sun, +shifted and glistened like a living opal in the blue morning sea. +Gentlemen, a strange fatality pervades the whole career of these +events, as if verily mapped out before the world itself was charted. +The mutineer was the bowsman of the mate, and when fast to a fish, it +was his duty to sit next him, while Radney stood up with his lance in +the prow, and haul in or slacken the line, at the word of command. +Moreover, when the four boats were lowered, the mate's got the start; +and none howled more fiercely with delight than did Steelkilt, as he +strained at his oar. After a stiff pull, their harpooneer got fast, +and, spear in hand, Radney sprang to the bow. He was always a +furious man, it seems, in a boat. And now his bandaged cry was, to +beach him on the whale's topmost back. Nothing loath, his bowsman +hauled him up and up, through a blinding foam that blent two +whitenesses together; till of a sudden the boat struck as against a +sunken ledge, and keeling over, spilled out the standing mate. That +instant, as he fell on the whale's slippery back, the boat righted, +and was dashed aside by the swell, while Radney was tossed over into +the sea, on the other flank of the whale. He struck out through the +spray, and, for an instant, was dimly seen through that veil, wildly +seeking to remove himself from the eye of Moby Dick. But the whale +rushed round in a sudden maelstrom; seized the swimmer between his +jaws; and rearing high up with him, plunged headlong again, and went +down. + +"Meantime, at the first tap of the boat's bottom, the Lakeman had +slackened the line, so as to drop astern from the whirlpool; calmly +looking on, he thought his own thoughts. But a sudden, terrific, +downward jerking of the boat, quickly brought his knife to the line. +He cut it; and the whale was free. But, at some distance, Moby Dick +rose again, with some tatters of Radney's red woollen shirt, caught +in the teeth that had destroyed him. All four boats gave chase +again; but the whale eluded them, and finally wholly disappeared. + +"In good time, the Town-Ho reached her port--a savage, solitary +place--where no civilized creature resided. There, headed by the +Lakeman, all but five or six of the foremastmen deliberately +deserted among the palms; eventually, as it turned out, seizing a +large double war-canoe of the savages, and setting sail for some +other harbor. + +"The ship's company being reduced to but a handful, the captain +called upon the Islanders to assist him in the laborious business of +heaving down the ship to stop the leak. But to such unresting +vigilance over their dangerous allies was this small band of whites +necessitated, both by night and by day, and so extreme was the hard +work they underwent, that upon the vessel being ready again for sea, +they were in such a weakened condition that the captain durst not put +off with them in so heavy a vessel. After taking counsel with his +officers, he anchored the ship as far off shore as possible; loaded +and ran out his two cannon from the bows; stacked his muskets on the +poop; and warning the Islanders not to approach the ship at their +peril, took one man with him, and setting the sail of his best +whale-boat, steered straight before the wind for Tahiti, five hundred +miles distant, to procure a reinforcement to his crew. + +"On the fourth day of the sail, a large canoe was descried, which +seemed to have touched at a low isle of corals. He steered away from +it; but the savage craft bore down on him; and soon the voice of +Steelkilt hailed him to heave to, or he would run him under water. +The captain presented a pistol. With one foot on each prow of the +yoked war-canoes, the Lakeman laughed him to scorn; assuring him that +if the pistol so much as clicked in the lock, he would bury him in +bubbles and foam. + +"'What do you want of me?' cried the captain. + +"'Where are you bound? and for what are you bound?' demanded +Steelkilt; 'no lies.' + +"'I am bound to Tahiti for more men.' + +"'Very good. Let me board you a moment--I come in peace.' With that +he leaped from the canoe, swam to the boat; and climbing the gunwale, +stood face to face with the captain. + +"'Cross your arms, sir; throw back your head. Now, repeat after me. +As soon as Steelkilt leaves me, I swear to beach this boat on yonder +island, and remain there six days. If I do not, may lightning strike +me!' + +"'A pretty scholar,' laughed the Lakeman. 'Adios, Senor!' and +leaping into the sea, he swam back to his comrades. + +"Watching the boat till it was fairly beached, and drawn up to the +roots of the cocoa-nut trees, Steelkilt made sail again, and in due +time arrived at Tahiti, his own place of destination. There, luck +befriended him; two ships were about to sail for France, and were +providentially in want of precisely that number of men which the +sailor headed. They embarked; and so for ever got the start of +their former captain, had he been at all minded to work them legal +retribution. + +"Some ten days after the French ships sailed, the whale-boat arrived, +and the captain was forced to enlist some of the more civilized +Tahitians, who had been somewhat used to the sea. Chartering a small +native schooner, he returned with them to his vessel; and finding all +right there, again resumed his cruisings. + +"Where Steelkilt now is, gentlemen, none know; but upon the island of +Nantucket, the widow of Radney still turns to the sea which refuses +to give up its dead; still in dreams sees the awful white whale that +destroyed him. + +"'Are you through?' said Don Sebastian, quietly. + +"'I am, Don.' + +"'Then I entreat you, tell me if to the best of your own convictions, +this your story is in substance really true? It is so passing +wonderful! Did you get it from an unquestionable source? Bear with +me if I seem to press.' + +"'Also bear with all of us, sir sailor; for we all join in Don +Sebastian's suit,' cried the company, with exceeding interest. + +"'Is there a copy of the Holy Evangelists in the Golden Inn, +gentlemen?' + +"'Nay,' said Don Sebastian; 'but I know a worthy priest near by, who +will quickly procure one for me. I go for it; but are you well +advised? this may grow too serious.' + +"'Will you be so good as to bring the priest also, Don?' + +"'Though there are no Auto-da-Fe's in Lima now,' said one of the +company to another; 'I fear our sailor friend runs risk of the +archiepiscopacy. Let us withdraw more out of the moonlight. I see +no need of this.' + +"'Excuse me for running after you, Don Sebastian; but may I also beg +that you will be particular in procuring the largest sized +Evangelists you can.' + + +'This is the priest, he brings you the Evangelists,' said Don +Sebastian, gravely, returning with a tall and solemn figure. + +"'Let me remove my hat. Now, venerable priest, further into the +light, and hold the Holy Book before me that I may touch it. + +"'So help me Heaven, and on my honour the story I have told ye, +gentlemen, is in substance and its great items, true. I know it to +be true; it happened on this ball; I trod the ship; I knew the crew; +I have seen and talked with Steelkilt since the death of Radney.'" + + + +CHAPTER 55 + +Of the Monstrous Pictures of Whales. + + +I shall ere long paint to you as well as one can without canvas, +something like the true form of the whale as he actually appears to +the eye of the whaleman when in his own absolute body the whale is +moored alongside the whale-ship so that he can be fairly stepped upon +there. It may be worth while, therefore, previously to advert to +those curious imaginary portraits of him which even down to the +present day confidently challenge the faith of the landsman. It is +time to set the world right in this matter, by proving such pictures +of the whale all wrong. + +It may be that the primal source of all those pictorial delusions +will be found among the oldest Hindoo, Egyptian, and Grecian +sculptures. For ever since those inventive but unscrupulous times +when on the marble panellings of temples, the pedestals of statues, +and on shields, medallions, cups, and coins, the dolphin was drawn in +scales of chain-armor like Saladin's, and a helmeted head like St. +George's; ever since then has something of the same sort of license +prevailed, not only in most popular pictures of the whale, but in +many scientific presentations of him. + +Now, by all odds, the most ancient extant portrait anyways purporting +to be the whale's, is to be found in the famous cavern-pagoda of +Elephanta, in India. The Brahmins maintain that in the almost +endless sculptures of that immemorial pagoda, all the trades and +pursuits, every conceivable avocation of man, were prefigured ages +before any of them actually came into being. No wonder then, that in +some sort our noble profession of whaling should have been there +shadowed forth. The Hindoo whale referred to, occurs in a separate +department of the wall, depicting the incarnation of Vishnu in the +form of leviathan, learnedly known as the Matse Avatar. But though +this sculpture is half man and half whale, so as only to give the +tail of the latter, yet that small section of him is all wrong. It +looks more like the tapering tail of an anaconda, than the broad palms +of the true whale's majestic flukes. + +But go to the old Galleries, and look now at a great Christian +painter's portrait of this fish; for he succeeds no better than the +antediluvian Hindoo. It is Guido's picture of Perseus rescuing +Andromeda from the sea-monster or whale. Where did Guido get the +model of such a strange creature as that? Nor does Hogarth, in +painting the same scene in his own "Perseus Descending," make out one +whit better. The huge corpulence of that Hogarthian monster +undulates on the surface, scarcely drawing one inch of water. It has +a sort of howdah on its back, and its distended tusked mouth into +which the billows are rolling, might be taken for the Traitors' Gate +leading from the Thames by water into the Tower. Then, there are the +Prodromus whales of old Scotch Sibbald, and Jonah's whale, as +depicted in the prints of old Bibles and the cuts of old primers. +What shall be said of these? As for the book-binder's whale winding +like a vine-stalk round the stock of a descending anchor--as stamped +and gilded on the backs and title-pages of many books both old and +new--that is a very picturesque but purely fabulous creature, +imitated, I take it, from the like figures on antique vases. Though +universally denominated a dolphin, I nevertheless call this +book-binder's fish an attempt at a whale; because it was so intended +when the device was first introduced. It was introduced by an old +Italian publisher somewhere about the 15th century, during the +Revival of Learning; and in those days, and even down to a +comparatively late period, dolphins were popularly supposed to be a +species of the Leviathan. + +In the vignettes and other embellishments of some ancient books you +will at times meet with very curious touches at the whale, where all +manner of spouts, jets d'eau, hot springs and cold, Saratoga and +Baden-Baden, come bubbling up from his unexhausted brain. In the +title-page of the original edition of the "Advancement of Learning" +you will find some curious whales. + +But quitting all these unprofessional attempts, let us glance at +those pictures of leviathan purporting to be sober, scientific +delineations, by those who know. In old Harris's collection of +voyages there are some plates of whales extracted from a Dutch book +of voyages, A.D. 1671, entitled "A Whaling Voyage to Spitzbergen in +the ship Jonas in the Whale, Peter Peterson of Friesland, master." +In one of those plates the whales, like great rafts of logs, are +represented lying among ice-isles, with white bears running over +their living backs. In another plate, the prodigious blunder is made +of representing the whale with perpendicular flukes. + +Then again, there is an imposing quarto, written by one Captain +Colnett, a Post Captain in the English navy, entitled "A Voyage round +Cape Horn into the South Seas, for the purpose of extending the +Spermaceti Whale Fisheries." In this book is an outline purporting +to be a "Picture of a Physeter or Spermaceti whale, drawn by scale +from one killed on the coast of Mexico, August, 1793, and hoisted on +deck." I doubt not the captain had this veracious picture taken for +the benefit of his marines. To mention but one thing about it, let +me say that it has an eye which applied, according to the +accompanying scale, to a full grown sperm whale, would make the eye +of that whale a bow-window some five feet long. Ah, my gallant +captain, why did ye not give us Jonah looking out of that eye! + +Nor are the most conscientious compilations of Natural History for +the benefit of the young and tender, free from the same heinousness +of mistake. Look at that popular work "Goldsmith's Animated Nature." +In the abridged London edition of 1807, there are plates of an +alleged "whale" and a "narwhale." I do not wish to seem inelegant, +but this unsightly whale looks much like an amputated sow; and, as +for the narwhale, one glimpse at it is enough to amaze one, that in +this nineteenth century such a hippogriff could be palmed for genuine +upon any intelligent public of schoolboys. + +Then, again, in 1825, Bernard Germain, Count de Lacepede, a great +naturalist, published a scientific systemized whale book, wherein are +several pictures of the different species of the Leviathan. All +these are not only incorrect, but the picture of the Mysticetus or +Greenland whale (that is to say, the Right whale), even Scoresby, a +long experienced man as touching that species, declares not to have +its counterpart in nature. + +But the placing of the cap-sheaf to all this blundering business was +reserved for the scientific Frederick Cuvier, brother to the famous +Baron. In 1836, he published a Natural History of Whales, in which +he gives what he calls a picture of the Sperm Whale. Before showing +that picture to any Nantucketer, you had best provide for your +summary retreat from Nantucket. In a word, Frederick Cuvier's Sperm +Whale is not a Sperm Whale, but a squash. Of course, he never had +the benefit of a whaling voyage (such men seldom have), but whence he +derived that picture, who can tell? Perhaps he got it as his +scientific predecessor in the same field, Desmarest, got one of his +authentic abortions; that is, from a Chinese drawing. And what sort +of lively lads with the pencil those Chinese are, many queer cups and +saucers inform us. + +As for the sign-painters' whales seen in the streets hanging over the +shops of oil-dealers, what shall be said of them? They are generally +Richard III. whales, with dromedary humps, and very savage; +breakfasting on three or four sailor tarts, that is whaleboats full +of mariners: their deformities floundering in seas of blood and blue +paint. + +But these manifold mistakes in depicting the whale are not so very +surprising after all. Consider! Most of the scientific drawings +have been taken from the stranded fish; and these are about as +correct as a drawing of a wrecked ship, with broken back, would +correctly represent the noble animal itself in all its undashed pride +of hull and spars. Though elephants have stood for their +full-lengths, the living Leviathan has never yet fairly floated +himself for his portrait. The living whale, in his full majesty and +significance, is only to be seen at sea in unfathomable waters; and +afloat the vast bulk of him is out of sight, like a launched +line-of-battle ship; and out of that element it is a thing eternally +impossible for mortal man to hoist him bodily into the air, so as to +preserve all his mighty swells and undulations. And, not to speak of +the highly presumable difference of contour between a young sucking +whale and a full-grown Platonian Leviathan; yet, even in the case of +one of those young sucking whales hoisted to a ship's deck, such is +then the outlandish, eel-like, limbered, varying shape of him, that +his precise expression the devil himself could not catch. + +But it may be fancied, that from the naked skeleton of the stranded +whale, accurate hints may be derived touching his true form. Not at +all. For it is one of the more curious things about this Leviathan, +that his skeleton gives very little idea of his general shape. +Though Jeremy Bentham's skeleton, which hangs for candelabra in the +library of one of his executors, correctly conveys the idea of a +burly-browed utilitarian old gentleman, with all Jeremy's other +leading personal characteristics; yet nothing of this kind could be +inferred from any leviathan's articulated bones. In fact, as the +great Hunter says, the mere skeleton of the whale bears the same +relation to the fully invested and padded animal as the insect does +to the chrysalis that so roundingly envelopes it. This peculiarity +is strikingly evinced in the head, as in some part of this book will +be incidentally shown. It is also very curiously displayed in the +side fin, the bones of which almost exactly answer to the bones of the +human hand, minus only the thumb. This fin has four regular +bone-fingers, the index, middle, ring, and little finger. But all +these are permanently lodged in their fleshy covering, as the human +fingers in an artificial covering. "However recklessly the whale may +sometimes serve us," said humorous Stubb one day, "he can never be +truly said to handle us without mittens." + +For all these reasons, then, any way you may look at it, you must +needs conclude that the great Leviathan is that one creature in the +world which must remain unpainted to the last. True, one portrait +may hit the mark much nearer than another, but none can hit it with +any very considerable degree of exactness. So there is no earthly +way of finding out precisely what the whale really looks like. And +the only mode in which you can derive even a tolerable idea of his +living contour, is by going a whaling yourself; but by so doing, you +run no small risk of being eternally stove and sunk by him. +Wherefore, it seems to me you had best not be too fastidious in your +curiosity touching this Leviathan. + + + +CHAPTER 56 + +Of the Less Erroneous Pictures of Whales, and the True Pictures of +Whaling Scenes. + + +In connexion with the monstrous pictures of whales, I am strongly +tempted here to enter upon those still more monstrous stories of them +which are to be found in certain books, both ancient and modern, +especially in Pliny, Purchas, Hackluyt, Harris, Cuvier, etc. But I +pass that matter by. + +I know of only four published outlines of the great Sperm Whale; +Colnett's, Huggins's, Frederick Cuvier's, and Beale's. In the +previous chapter Colnett and Cuvier have been referred to. Huggins's +is far better than theirs; but, by great odds, Beale's is the best. +All Beale's drawings of this whale are good, excepting the middle +figure in the picture of three whales in various attitudes, capping +his second chapter. His frontispiece, boats attacking Sperm Whales, +though no doubt calculated to excite the civil scepticism of some +parlor men, is admirably correct and life-like in its general effect. +Some of the Sperm Whale drawings in J. Ross Browne are pretty +correct in contour; but they are wretchedly engraved. That is not +his fault though. + +Of the Right Whale, the best outline pictures are in Scoresby; but +they are drawn on too small a scale to convey a desirable impression. +He has but one picture of whaling scenes, and this is a sad +deficiency, because it is by such pictures only, when at all well +done, that you can derive anything like a truthful idea of the living +whale as seen by his living hunters. + +But, taken for all in all, by far the finest, though in some details +not the most correct, presentations of whales and whaling scenes to +be anywhere found, are two large French engravings, well executed, +and taken from paintings by one Garnery. Respectively, they +represent attacks on the Sperm and Right Whale. In the first +engraving a noble Sperm Whale is depicted in full majesty of might, +just risen beneath the boat from the profundities of the ocean, and +bearing high in the air upon his back the terrific wreck of the +stoven planks. The prow of the boat is partially unbroken, and is +drawn just balancing upon the monster's spine; and standing in that +prow, for that one single incomputable flash of time, you behold an +oarsman, half shrouded by the incensed boiling spout of the whale, +and in the act of leaping, as if from a precipice. The action of the +whole thing is wonderfully good and true. The half-emptied line-tub +floats on the whitened sea; the wooden poles of the spilled harpoons +obliquely bob in it; the heads of the swimming crew are scattered +about the whale in contrasting expressions of affright; while in the +black stormy distance the ship is bearing down upon the scene. +Serious fault might be found with the anatomical details of this +whale, but let that pass; since, for the life of me, I could not draw +so good a one. + +In the second engraving, the boat is in the act of drawing alongside +the barnacled flank of a large running Right Whale, that rolls his +black weedy bulk in the sea like some mossy rock-slide from the +Patagonian cliffs. His jets are erect, full, and black like soot; so +that from so abounding a smoke in the chimney, you would think there +must be a brave supper cooking in the great bowels below. Sea fowls +are pecking at the small crabs, shell-fish, and other sea candies and +maccaroni, which the Right Whale sometimes carries on his pestilent +back. And all the while the thick-lipped leviathan is rushing +through the deep, leaving tons of tumultuous white curds in his wake, +and causing the slight boat to rock in the swells like a skiff caught +nigh the paddle-wheels of an ocean steamer. Thus, the foreground is +all raging commotion; but behind, in admirable artistic contrast, is +the glassy level of a sea becalmed, the drooping unstarched sails of +the powerless ship, and the inert mass of a dead whale, a conquered +fortress, with the flag of capture lazily hanging from the whale-pole +inserted into his spout-hole. + +Who Garnery the painter is, or was, I know not. But my life for it +he was either practically conversant with his subject, or else +marvellously tutored by some experienced whaleman. The French are +the lads for painting action. Go and gaze upon all the paintings of +Europe, and where will you find such a gallery of living and +breathing commotion on canvas, as in that triumphal hall at +Versailles; where the beholder fights his way, pell-mell, through the +consecutive great battles of France; where every sword seems a flash +of the Northern Lights, and the successive armed kings and Emperors +dash by, like a charge of crowned centaurs? Not wholly unworthy of a +place in that gallery, are these sea battle-pieces of Garnery. + +The natural aptitude of the French for seizing the picturesqueness of +things seems to be peculiarly evinced in what paintings and +engravings they have of their whaling scenes. With not one tenth of +England's experience in the fishery, and not the thousandth part of +that of the Americans, they have nevertheless furnished both nations +with the only finished sketches at all capable of conveying the real +spirit of the whale hunt. For the most part, the English and +American whale draughtsmen seem entirely content with presenting the +mechanical outline of things, such as the vacant profile of the +whale; which, so far as picturesqueness of effect is concerned, is +about tantamount to sketching the profile of a pyramid. Even +Scoresby, the justly renowned Right whaleman, after giving us a stiff +full length of the Greenland whale, and three or four delicate +miniatures of narwhales and porpoises, treats us to a series of +classical engravings of boat hooks, chopping knives, and grapnels; +and with the microscopic diligence of a Leuwenhoeck submits to the +inspection of a shivering world ninety-six fac-similes of magnified +Arctic snow crystals. I mean no disparagement to the excellent +voyager (I honour him for a veteran), but in so important a matter it +was certainly an oversight not to have procured for every crystal a +sworn affidavit taken before a Greenland Justice of the Peace. + +In addition to those fine engravings from Garnery, there are two +other French engravings worthy of note, by some one who subscribes +himself "H. Durand." One of them, though not precisely adapted to +our present purpose, nevertheless deserves mention on other accounts. +It is a quiet noon-scene among the isles of the Pacific; a French +whaler anchored, inshore, in a calm, and lazily taking water on +board; the loosened sails of the ship, and the long leaves of the +palms in the background, both drooping together in the breezeless +air. The effect is very fine, when considered with reference to its +presenting the hardy fishermen under one of their few aspects of +oriental repose. The other engraving is quite a different affair: +the ship hove-to upon the open sea, and in the very heart of the +Leviathanic life, with a Right Whale alongside; the vessel (in the +act of cutting-in) hove over to the monster as if to a quay; and a +boat, hurriedly pushing off from this scene of activity, is about +giving chase to whales in the distance. The harpoons and lances lie +levelled for use; three oarsmen are just setting the mast in its +hole; while from a sudden roll of the sea, the little craft stands +half-erect out of the water, like a rearing horse. From the ship, +the smoke of the torments of the boiling whale is going up like the +smoke over a village of smithies; and to windward, a black cloud, +rising up with earnest of squalls and rains, seems to quicken the +activity of the excited seamen. + + + +CHAPTER 57 + +Of Whales in Paint; in Teeth; in Wood; in Sheet-Iron; in Stone; in +Mountains; in Stars. + + +On Tower-hill, as you go down to the London docks, you may have seen +a crippled beggar (or KEDGER, as the sailors say) holding a painted +board before him, representing the tragic scene in which he lost his +leg. There are three whales and three boats; and one of the boats +(presumed to contain the missing leg in all its original integrity) +is being crunched by the jaws of the foremost whale. Any time these +ten years, they tell me, has that man held up that picture, and +exhibited that stump to an incredulous world. But the time of his +justification has now come. His three whales are as good whales as +were ever published in Wapping, at any rate; and his stump as +unquestionable a stump as any you will find in the western clearings. +But, though for ever mounted on that stump, never a stump-speech +does the poor whaleman make; but, with downcast eyes, stands ruefully +contemplating his own amputation. + +Throughout the Pacific, and also in Nantucket, and New Bedford, and +Sag Harbor, you will come across lively sketches of whales and +whaling-scenes, graven by the fishermen themselves on Sperm +Whale-teeth, or ladies' busks wrought out of the Right Whale-bone, +and other like skrimshander articles, as the whalemen call the +numerous little ingenious contrivances they elaborately carve out of +the rough material, in their hours of ocean leisure. Some of them +have little boxes of dentistical-looking implements, specially +intended for the skrimshandering business. But, in general, they +toil with their jack-knives alone; and, with that almost omnipotent +tool of the sailor, they will turn you out anything you please, in +the way of a mariner's fancy. + +Long exile from Christendom and civilization inevitably restores a +man to that condition in which God placed him, i.e. what is called +savagery. Your true whale-hunter is as much a savage as an Iroquois. +I myself am a savage, owning no allegiance but to the King of the +Cannibals; and ready at any moment to rebel against him. + +Now, one of the peculiar characteristics of the savage in his +domestic hours, is his wonderful patience of industry. An ancient +Hawaiian war-club or spear-paddle, in its full multiplicity and +elaboration of carving, is as great a trophy of human perseverance as +a Latin lexicon. For, with but a bit of broken sea-shell or a +shark's tooth, that miraculous intricacy of wooden net-work has been +achieved; and it has cost steady years of steady application. + +As with the Hawaiian savage, so with the white sailor-savage. With +the same marvellous patience, and with the same single shark's tooth, +of his one poor jack-knife, he will carve you a bit of bone +sculpture, not quite as workmanlike, but as close packed in its +maziness of design, as the Greek savage, Achilles's shield; and full +of barbaric spirit and suggestiveness, as the prints of that fine old +Dutch savage, Albert Durer. + +Wooden whales, or whales cut in profile out of the small dark slabs +of the noble South Sea war-wood, are frequently met with in the +forecastles of American whalers. Some of them are done with much +accuracy. + +At some old gable-roofed country houses you will see brass whales +hung by the tail for knockers to the road-side door. When the porter +is sleepy, the anvil-headed whale would be best. But these knocking +whales are seldom remarkable as faithful essays. On the spires of +some old-fashioned churches you will see sheet-iron whales placed +there for weather-cocks; but they are so elevated, and besides that +are to all intents and purposes so labelled with "HANDS OFF!" you +cannot examine them closely enough to decide upon their merit. + +In bony, ribby regions of the earth, where at the base of high broken +cliffs masses of rock lie strewn in fantastic groupings upon the +plain, you will often discover images as of the petrified forms of +the Leviathan partly merged in grass, which of a windy day breaks +against them in a surf of green surges. + +Then, again, in mountainous countries where the traveller is +continually girdled by amphitheatrical heights; here and there from +some lucky point of view you will catch passing glimpses of the +profiles of whales defined along the undulating ridges. But you must +be a thorough whaleman, to see these sights; and not only that, but +if you wish to return to such a sight again, you must be sure and +take the exact intersecting latitude and longitude of your first +stand-point, else so chance-like are such observations of the hills, +that your precise, previous stand-point would require a laborious +re-discovery; like the Soloma Islands, which still remain incognita, +though once high-ruffed Mendanna trod them and old Figuera +chronicled them. + +Nor when expandingly lifted by your subject, can you fail to trace +out great whales in the starry heavens, and boats in pursuit of them; +as when long filled with thoughts of war the Eastern nations saw +armies locked in battle among the clouds. Thus at the North have I +chased Leviathan round and round the Pole with the revolutions of the +bright points that first defined him to me. And beneath the +effulgent Antarctic skies I have boarded the Argo-Navis, and joined +the chase against the starry Cetus far beyond the utmost stretch of +Hydrus and the Flying Fish. + +With a frigate's anchors for my bridle-bitts and fasces of harpoons +for spurs, would I could mount that whale and leap the topmost skies, +to see whether the fabled heavens with all their countless tents +really lie encamped beyond my mortal sight! + + + +CHAPTER 58 + +Brit. + + +Steering north-eastward from the Crozetts, we fell in with vast +meadows of brit, the minute, yellow substance, upon which the Right +Whale largely feeds. For leagues and leagues it undulated round us, +so that we seemed to be sailing through boundless fields of ripe and +golden wheat. + +On the second day, numbers of Right Whales were seen, who, secure +from the attack of a Sperm Whaler like the Pequod, with open jaws +sluggishly swam through the brit, which, adhering to the fringing +fibres of that wondrous Venetian blind in their mouths, was in that +manner separated from the water that escaped at the lip. + +As morning mowers, who side by side slowly and seethingly advance +their scythes through the long wet grass of marshy meads; even so +these monsters swam, making a strange, grassy, cutting sound; and +leaving behind them endless swaths of blue upon the yellow sea.* + + +*That part of the sea known among whalemen as the "Brazil Banks" does +not bear that name as the Banks of Newfoundland do, because of there +being shallows and soundings there, but because of this remarkable +meadow-like appearance, caused by the vast drifts of brit continually +floating in those latitudes, where the Right Whale is often chased. + + +But it was only the sound they made as they parted the brit which at +all reminded one of mowers. Seen from the mast-heads, especially +when they paused and were stationary for a while, their vast black +forms looked more like lifeless masses of rock than anything else. +And as in the great hunting countries of India, the stranger at a +distance will sometimes pass on the plains recumbent elephants +without knowing them to be such, taking them for bare, blackened +elevations of the soil; even so, often, with him, who for the first +time beholds this species of the leviathans of the sea. And even +when recognised at last, their immense magnitude renders it very +hard really to believe that such bulky masses of overgrowth can +possibly be instinct, in all parts, with the same sort of life that +lives in a dog or a horse. + +Indeed, in other respects, you can hardly regard any creatures of the +deep with the same feelings that you do those of the shore. For +though some old naturalists have maintained that all creatures of the +land are of their kind in the sea; and though taking a broad general +view of the thing, this may very well be; yet coming to specialties, +where, for example, does the ocean furnish any fish that in +disposition answers to the sagacious kindness of the dog? The +accursed shark alone can in any generic respect be said to bear +comparative analogy to him. + +But though, to landsmen in general, the native inhabitants of the +seas have ever been regarded with emotions unspeakably unsocial and +repelling; though we know the sea to be an everlasting terra +incognita, so that Columbus sailed over numberless unknown worlds to +discover his one superficial western one; though, by vast odds, the +most terrific of all mortal disasters have immemorially and +indiscriminately befallen tens and hundreds of thousands of those who +have gone upon the waters; though but a moment's consideration will +teach, that however baby man may brag of his science and skill, and +however much, in a flattering future, that science and skill may +augment; yet for ever and for ever, to the crack of doom, the sea +will insult and murder him, and pulverize the stateliest, stiffest +frigate he can make; nevertheless, by the continual repetition of +these very impressions, man has lost that sense of the full awfulness +of the sea which aboriginally belongs to it. + +The first boat we read of, floated on an ocean, that with Portuguese +vengeance had whelmed a whole world without leaving so much as a +widow. That same ocean rolls now; that same ocean destroyed the +wrecked ships of last year. Yea, foolish mortals, Noah's flood is +not yet subsided; two thirds of the fair world it yet covers. + +Wherein differ the sea and the land, that a miracle upon one is not a +miracle upon the other? Preternatural terrors rested upon the +Hebrews, when under the feet of Korah and his company the live ground +opened and swallowed them up for ever; yet not a modern sun ever +sets, but in precisely the same manner the live sea swallows up ships +and crews. + +But not only is the sea such a foe to man who is an alien to it, but +it is also a fiend to its own off-spring; worse than the Persian host +who murdered his own guests; sparing not the creatures which itself +hath spawned. Like a savage tigress that tossing in the jungle +overlays her own cubs, so the sea dashes even the mightiest whales +against the rocks, and leaves them there side by side with the split +wrecks of ships. No mercy, no power but its own controls it. +Panting and snorting like a mad battle steed that has lost its rider, +the masterless ocean overruns the globe. + +Consider the subtleness of the sea; how its most dreaded creatures +glide under water, unapparent for the most part, and treacherously +hidden beneath the loveliest tints of azure. Consider also the +devilish brilliance and beauty of many of its most remorseless +tribes, as the dainty embellished shape of many species of sharks. +Consider, once more, the universal cannibalism of the sea; all whose +creatures prey upon each other, carrying on eternal war since the +world began. + +Consider all this; and then turn to this green, gentle, and most +docile earth; consider them both, the sea and the land; and do you +not find a strange analogy to something in yourself? For as this +appalling ocean surrounds the verdant land, so in the soul of man +there lies one insular Tahiti, full of peace and joy, but encompassed +by all the horrors of the half known life. God keep thee! Push not +off from that isle, thou canst never return! + + +CHAPTER 59 + +Squid. + + +Slowly wading through the meadows of brit, the Pequod still held on +her way north-eastward towards the island of Java; a gentle air +impelling her keel, so that in the surrounding serenity her three +tall tapering masts mildly waved to that languid breeze, as three +mild palms on a plain. And still, at wide intervals in the silvery +night, the lonely, alluring jet would be seen. + +But one transparent blue morning, when a stillness almost +preternatural spread over the sea, however unattended with any +stagnant calm; when the long burnished sun-glade on the waters seemed +a golden finger laid across them, enjoining some secrecy; when the +slippered waves whispered together as they softly ran on; in this +profound hush of the visible sphere a strange spectre was seen by +Daggoo from the main-mast-head. + +In the distance, a great white mass lazily rose, and rising higher +and higher, and disentangling itself from the azure, at last gleamed +before our prow like a snow-slide, new slid from the hills. Thus +glistening for a moment, as slowly it subsided, and sank. Then once +more arose, and silently gleamed. It seemed not a whale; and yet is +this Moby Dick? thought Daggoo. Again the phantom went down, but on +re-appearing once more, with a stiletto-like cry that startled every +man from his nod, the negro yelled out--"There! there again! there +she breaches! right ahead! The White Whale, the White Whale!" + +Upon this, the seamen rushed to the yard-arms, as in swarming-time +the bees rush to the boughs. Bare-headed in the sultry sun, Ahab +stood on the bowsprit, and with one hand pushed far behind in +readiness to wave his orders to the helmsman, cast his eager glance +in the direction indicated aloft by the outstretched motionless arm +of Daggoo. + +Whether the flitting attendance of the one still and solitary jet had +gradually worked upon Ahab, so that he was now prepared to connect +the ideas of mildness and repose with the first sight of the +particular whale he pursued; however this was, or whether his +eagerness betrayed him; whichever way it might have been, no sooner +did he distinctly perceive the white mass, than with a quick +intensity he instantly gave orders for lowering. + +The four boats were soon on the water; Ahab's in advance, and all +swiftly pulling towards their prey. Soon it went down, and while, +with oars suspended, we were awaiting its reappearance, lo! in the +same spot where it sank, once more it slowly rose. Almost forgetting +for the moment all thoughts of Moby Dick, we now gazed at the most +wondrous phenomenon which the secret seas have hitherto revealed to +mankind. A vast pulpy mass, furlongs in length and breadth, of a +glancing cream-colour, lay floating on the water, innumerable long +arms radiating from its centre, and curling and twisting like a nest +of anacondas, as if blindly to clutch at any hapless object within +reach. No perceptible face or front did it have; no conceivable +token of either sensation or instinct; but undulated there on the +billows, an unearthly, formless, chance-like apparition of life. + +As with a low sucking sound it slowly disappeared again, Starbuck +still gazing at the agitated waters where it had sunk, with a wild +voice exclaimed--"Almost rather had I seen Moby Dick and fought him, +than to have seen thee, thou white ghost!" + +"What was it, Sir?" said Flask. + +"The great live squid, which, they say, few whale-ships ever beheld, +and returned to their ports to tell of it." + +But Ahab said nothing; turning his boat, he sailed back to the +vessel; the rest as silently following. + +Whatever superstitions the sperm whalemen in general have connected +with the sight of this object, certain it is, that a glimpse of it +being so very unusual, that circumstance has gone far to invest it +with portentousness. So rarely is it beheld, that though one and all +of them declare it to be the largest animated thing in the ocean, yet +very few of them have any but the most vague ideas concerning its +true nature and form; notwithstanding, they believe it to furnish to +the sperm whale his only food. For though other species of whales +find their food above water, and may be seen by man in the act of +feeding, the spermaceti whale obtains his whole food in unknown zones +below the surface; and only by inference is it that any one can tell +of what, precisely, that food consists. At times, when closely +pursued, he will disgorge what are supposed to be the detached arms +of the squid; some of them thus exhibited exceeding twenty and thirty +feet in length. They fancy that the monster to which these arms +belonged ordinarily clings by them to the bed of the ocean; and that +the sperm whale, unlike other species, is supplied with teeth in +order to attack and tear it. + +There seems some ground to imagine that the great Kraken of Bishop +Pontoppodan may ultimately resolve itself into Squid. The manner in +which the Bishop describes it, as alternately rising and sinking, +with some other particulars he narrates, in all this the two +correspond. But much abatement is necessary with respect to the +incredible bulk he assigns it. + +By some naturalists who have vaguely heard rumors of the mysterious +creature, here spoken of, it is included among the class of +cuttle-fish, to which, indeed, in certain external respects it would +seem to belong, but only as the Anak of the tribe. + + + +CHAPTER 60 + +The Line. + + +With reference to the whaling scene shortly to be described, as well +as for the better understanding of all similar scenes elsewhere +presented, I have here to speak of the magical, sometimes horrible +whale-line. + +The line originally used in the fishery was of the best hemp, +slightly vapoured with tar, not impregnated with it, as in the case of +ordinary ropes; for while tar, as ordinarily used, makes the hemp +more pliable to the rope-maker, and also renders the rope itself more +convenient to the sailor for common ship use; yet, not only would the +ordinary quantity too much stiffen the whale-line for the close +coiling to which it must be subjected; but as most seamen are +beginning to learn, tar in general by no means adds to the rope's +durability or strength, however much it may give it compactness and +gloss. + +Of late years the Manilla rope has in the American fishery almost +entirely superseded hemp as a material for whale-lines; for, though +not so durable as hemp, it is stronger, and far more soft and +elastic; and I will add (since there is an aesthetics in all things), +is much more handsome and becoming to the boat, than hemp. Hemp is a +dusky, dark fellow, a sort of Indian; but Manilla is as a +golden-haired Circassian to behold. + +The whale-line is only two-thirds of an inch in thickness. At first +sight, you would not think it so strong as it really is. By +experiment its one and fifty yarns will each suspend a weight of one +hundred and twenty pounds; so that the whole rope will bear a strain +nearly equal to three tons. In length, the common sperm whale-line +measures something over two hundred fathoms. Towards the stern of +the boat it is spirally coiled away in the tub, not like the +worm-pipe of a still though, but so as to form one round, +cheese-shaped mass of densely bedded "sheaves," or layers of +concentric spiralizations, without any hollow but the "heart," or +minute vertical tube formed at the axis of the cheese. As the least +tangle or kink in the coiling would, in running out, infallibly take +somebody's arm, leg, or entire body off, the utmost precaution is +used in stowing the line in its tub. Some harpooneers will consume +almost an entire morning in this business, carrying the line high +aloft and then reeving it downwards through a block towards the tub, +so as in the act of coiling to free it from all possible wrinkles and +twists. + +In the English boats two tubs are used instead of one; the same line +being continuously coiled in both tubs. There is some advantage in +this; because these twin-tubs being so small they fit more readily +into the boat, and do not strain it so much; whereas, the American +tub, nearly three feet in diameter and of proportionate depth, makes +a rather bulky freight for a craft whose planks are but one half-inch +in thickness; for the bottom of the whale-boat is like critical ice, +which will bear up a considerable distributed weight, but not very +much of a concentrated one. When the painted canvas cover is clapped +on the American line-tub, the boat looks as if it were pulling off +with a prodigious great wedding-cake to present to the whales. + +Both ends of the line are exposed; the lower end terminating in an +eye-splice or loop coming up from the bottom against the side of the +tub, and hanging over its edge completely disengaged from everything. +This arrangement of the lower end is necessary on two accounts. +First: In order to facilitate the fastening to it of an additional +line from a neighboring boat, in case the stricken whale should sound +so deep as to threaten to carry off the entire line originally +attached to the harpoon. In these instances, the whale of course is +shifted like a mug of ale, as it were, from the one boat to the +other; though the first boat always hovers at hand to assist its +consort. Second: This arrangement is indispensable for common +safety's sake; for were the lower end of the line in any way attached +to the boat, and were the whale then to run the line out to the end +almost in a single, smoking minute as he sometimes does, he would not +stop there, for the doomed boat would infallibly be dragged down +after him into the profundity of the sea; and in that case no +town-crier would ever find her again. + +Before lowering the boat for the chase, the upper end of the line is +taken aft from the tub, and passing round the loggerhead there, is +again carried forward the entire length of the boat, resting +crosswise upon the loom or handle of every man's oar, so that it jogs +against his wrist in rowing; and also passing between the men, as +they alternately sit at the opposite gunwales, to the leaded chocks +or grooves in the extreme pointed prow of the boat, where a wooden +pin or skewer the size of a common quill, prevents it from slipping +out. From the chocks it hangs in a slight festoon over the bows, and +is then passed inside the boat again; and some ten or twenty fathoms +(called box-line) being coiled upon the box in the bows, it continues +its way to the gunwale still a little further aft, and is then +attached to the short-warp--the rope which is immediately connected +with the harpoon; but previous to that connexion, the short-warp goes +through sundry mystifications too tedious to detail. + +Thus the whale-line folds the whole boat in its complicated coils, +twisting and writhing around it in almost every direction. All the +oarsmen are involved in its perilous contortions; so that to the +timid eye of the landsman, they seem as Indian jugglers, with the +deadliest snakes sportively festooning their limbs. Nor can any son +of mortal woman, for the first time, seat himself amid those hempen +intricacies, and while straining his utmost at the oar, bethink him +that at any unknown instant the harpoon may be darted, and all these +horrible contortions be put in play like ringed lightnings; he cannot +be thus circumstanced without a shudder that makes the very marrow in +his bones to quiver in him like a shaken jelly. Yet habit--strange +thing! what cannot habit accomplish?--Gayer sallies, more merry +mirth, better jokes, and brighter repartees, you never heard over +your mahogany, than you will hear over the half-inch white cedar of +the whale-boat, when thus hung in hangman's nooses; and, like the six +burghers of Calais before King Edward, the six men composing the crew +pull into the jaws of death, with a halter around every neck, as you +may say. + +Perhaps a very little thought will now enable you to account for +those repeated whaling disasters--some few of which are casually +chronicled--of this man or that man being taken out of the boat by +the line, and lost. For, when the line is darting out, to be seated +then in the boat, is like being seated in the midst of the manifold +whizzings of a steam-engine in full play, when every flying beam, and +shaft, and wheel, is grazing you. It is worse; for you cannot sit +motionless in the heart of these perils, because the boat is rocking +like a cradle, and you are pitched one way and the other, without the +slightest warning; and only by a certain self-adjusting buoyancy and +simultaneousness of volition and action, can you escape being made a +Mazeppa of, and run away with where the all-seeing sun himself could +never pierce you out. + +Again: as the profound calm which only apparently precedes and +prophesies of the storm, is perhaps more awful than the storm itself; +for, indeed, the calm is but the wrapper and envelope of the storm; +and contains it in itself, as the seemingly harmless rifle holds the +fatal powder, and the ball, and the explosion; so the graceful repose +of the line, as it silently serpentines about the oarsmen before +being brought into actual play--this is a thing which carries more of +true terror than any other aspect of this dangerous affair. But why +say more? All men live enveloped in whale-lines. All are born with +halters round their necks; but it is only when caught in the swift, +sudden turn of death, that mortals realize the silent, subtle, +ever-present perils of life. And if you be a philosopher, though +seated in the whale-boat, you would not at heart feel one whit more +of terror, than though seated before your evening fire with a poker, +and not a harpoon, by your side. + + + +CHAPTER 61 + +Stubb Kills a Whale. + + +If to Starbuck the apparition of the Squid was a thing of portents, +to Queequeg it was quite a different object. + +"When you see him 'quid," said the savage, honing his harpoon in the +bow of his hoisted boat, "then you quick see him 'parm whale." + +The next day was exceedingly still and sultry, and with nothing +special to engage them, the Pequod's crew could hardly resist the +spell of sleep induced by such a vacant sea. For this part of the +Indian Ocean through which we then were voyaging is not what whalemen +call a lively ground; that is, it affords fewer glimpses of +porpoises, dolphins, flying-fish, and other vivacious denizens of +more stirring waters, than those off the Rio de la Plata, or the +in-shore ground off Peru. + +It was my turn to stand at the foremast-head; and with my shoulders +leaning against the slackened royal shrouds, to and fro I idly swayed +in what seemed an enchanted air. No resolution could withstand it; +in that dreamy mood losing all consciousness, at last my soul went +out of my body; though my body still continued to sway as a pendulum +will, long after the power which first moved it is withdrawn. + +Ere forgetfulness altogether came over me, I had noticed that the +seamen at the main and mizzen-mast-heads were already drowsy. So +that at last all three of us lifelessly swung from the spars, and for +every swing that we made there was a nod from below from the +slumbering helmsman. The waves, too, nodded their indolent crests; +and across the wide trance of the sea, east nodded to west, and the +sun over all. + +Suddenly bubbles seemed bursting beneath my closed eyes; like vices +my hands grasped the shrouds; some invisible, gracious agency +preserved me; with a shock I came back to life. And lo! close under +our lee, not forty fathoms off, a gigantic Sperm Whale lay rolling in +the water like the capsized hull of a frigate, his broad, glossy +back, of an Ethiopian hue, glistening in the sun's rays like a +mirror. But lazily undulating in the trough of the sea, and ever and +anon tranquilly spouting his vapoury jet, the whale looked like a +portly burgher smoking his pipe of a warm afternoon. But that pipe, +poor whale, was thy last. As if struck by some enchanter's wand, the +sleepy ship and every sleeper in it all at once started into +wakefulness; and more than a score of voices from all parts of the +vessel, simultaneously with the three notes from aloft, shouted forth +the accustomed cry, as the great fish slowly and regularly spouted +the sparkling brine into the air. + +"Clear away the boats! Luff!" cried Ahab. And obeying his own +order, he dashed the helm down before the helmsman could handle the +spokes. + +The sudden exclamations of the crew must have alarmed the whale; and +ere the boats were down, majestically turning, he swam away to the +leeward, but with such a steady tranquillity, and making so few +ripples as he swam, that thinking after all he might not as yet be +alarmed, Ahab gave orders that not an oar should be used, and no man +must speak but in whispers. So seated like Ontario Indians on the +gunwales of the boats, we swiftly but silently paddled along; the +calm not admitting of the noiseless sails being set. Presently, as +we thus glided in chase, the monster perpendicularly flitted his tail +forty feet into the air, and then sank out of sight like a tower +swallowed up. + +"There go flukes!" was the cry, an announcement immediately followed +by Stubb's producing his match and igniting his pipe, for now a +respite was granted. After the full interval of his sounding had +elapsed, the whale rose again, and being now in advance of the +smoker's boat, and much nearer to it than to any of the others, Stubb +counted upon the honour of the capture. It was obvious, now, that the +whale had at length become aware of his pursuers. All silence of +cautiousness was therefore no longer of use. Paddles were dropped, +and oars came loudly into play. And still puffing at his pipe, Stubb +cheered on his crew to the assault. + +Yes, a mighty change had come over the fish. All alive to his +jeopardy, he was going "head out"; that part obliquely projecting +from the mad yeast which he brewed.* + + +*It will be seen in some other place of what a very light substance +the entire interior of the sperm whale's enormous head consists. +Though apparently the most massive, it is by far the most buoyant +part about him. So that with ease he elevates it in the air, and +invariably does so when going at his utmost speed. Besides, such is +the breadth of the upper part of the front of his head, and such the +tapering cut-water formation of the lower part, that by obliquely +elevating his head, he thereby may be said to transform himself from +a bluff-bowed sluggish galliot into a sharppointed New York +pilot-boat. + + +"Start her, start her, my men! Don't hurry yourselves; take plenty +of time--but start her; start her like thunder-claps, that's all," +cried Stubb, spluttering out the smoke as he spoke. "Start her, now; +give 'em the long and strong stroke, Tashtego. Start her, Tash, my +boy--start her, all; but keep cool, keep cool--cucumbers is the +word--easy, easy--only start her like grim death and grinning devils, +and raise the buried dead perpendicular out of their graves, +boys--that's all. Start her!" + +"Woo-hoo! Wa-hee!" screamed the Gay-Header in reply, raising some +old war-whoop to the skies; as every oarsman in the strained boat +involuntarily bounced forward with the one tremendous leading stroke +which the eager Indian gave. + +But his wild screams were answered by others quite as wild. +"Kee-hee! Kee-hee!" yelled Daggoo, straining forwards and backwards +on his seat, like a pacing tiger in his cage. + +"Ka-la! Koo-loo!" howled Queequeg, as if smacking his lips over a +mouthful of Grenadier's steak. And thus with oars and yells the +keels cut the sea. Meanwhile, Stubb retaining his place in the +van, still encouraged his men to the onset, all the while puffing the +smoke from his mouth. Like desperadoes they tugged and they +strained, till the welcome cry was heard--"Stand up, Tashtego!--give +it to him!" The harpoon was hurled. "Stern all!" The oarsmen +backed water; the same moment something went hot and hissing along +every one of their wrists. It was the magical line. An instant +before, Stubb had swiftly caught two additional turns with it round +the loggerhead, whence, by reason of its increased rapid circlings, a +hempen blue smoke now jetted up and mingled with the steady fumes +from his pipe. As the line passed round and round the loggerhead; so +also, just before reaching that point, it blisteringly passed through +and through both of Stubb's hands, from which the hand-cloths, or +squares of quilted canvas sometimes worn at these times, had +accidentally dropped. It was like holding an enemy's sharp two-edged +sword by the blade, and that enemy all the time striving to wrest it +out of your clutch. + +"Wet the line! wet the line!" cried Stubb to the tub oarsman (him +seated by the tub) who, snatching off his hat, dashed sea-water into +it.* More turns were taken, so that the line began holding its place. +The boat now flew through the boiling water like a shark all fins. +Stubb and Tashtego here changed places--stem for stern--a staggering +business truly in that rocking commotion. + + +*Partly to show the indispensableness of this act, it may here be +stated, that, in the old Dutch fishery, a mop was used to dash the +running line with water; in many other ships, a wooden piggin, or +bailer, is set apart for that purpose. Your hat, however, is the +most convenient. + + +From the vibrating line extending the entire length of the upper part +of the boat, and from its now being more tight than a harpstring, you +would have thought the craft had two keels--one cleaving the water, +the other the air--as the boat churned on through both opposing +elements at once. A continual cascade played at the bows; a +ceaseless whirling eddy in her wake; and, at the slightest motion +from within, even but of a little finger, the vibrating, cracking +craft canted over her spasmodic gunwale into the sea. Thus they +rushed; each man with might and main clinging to his seat, to prevent +being tossed to the foam; and the tall form of Tashtego at the +steering oar crouching almost double, in order to bring down his +centre of gravity. Whole Atlantics and Pacifics seemed passed as +they shot on their way, till at length the whale somewhat slackened +his flight. + +"Haul in--haul in!" cried Stubb to the bowsman! and, facing round +towards the whale, all hands began pulling the boat up to him, while +yet the boat was being towed on. Soon ranging up by his flank, +Stubb, firmly planting his knee in the clumsy cleat, darted dart +after dart into the flying fish; at the word of command, the boat +alternately sterning out of the way of the whale's horrible wallow, +and then ranging up for another fling. + +The red tide now poured from all sides of the monster like brooks +down a hill. His tormented body rolled not in brine but in blood, +which bubbled and seethed for furlongs behind in their wake. The +slanting sun playing upon this crimson pond in the sea, sent back +its reflection into every face, so that they all glowed to each other +like red men. And all the while, jet after jet of white smoke was +agonizingly shot from the spiracle of the whale, and vehement puff +after puff from the mouth of the excited headsman; as at every dart, +hauling in upon his crooked lance (by the line attached to it), Stubb +straightened it again and again, by a few rapid blows against the +gunwale, then again and again sent it into the whale. + +"Pull up--pull up!" he now cried to the bowsman, as the waning whale +relaxed in his wrath. "Pull up!--close to!" and the boat ranged +along the fish's flank. When reaching far over the bow, Stubb slowly +churned his long sharp lance into the fish, and kept it there, +carefully churning and churning, as if cautiously seeking to feel +after some gold watch that the whale might have swallowed, and which +he was fearful of breaking ere he could hook it out. But that gold +watch he sought was the innermost life of the fish. And now it is +struck; for, starting from his trance into that unspeakable thing +called his "flurry," the monster horribly wallowed in his blood, +overwrapped himself in impenetrable, mad, boiling spray, so that the +imperilled craft, instantly dropping astern, had much ado blindly to +struggle out from that phrensied twilight into the clear air of the +day. + +And now abating in his flurry, the whale once more rolled out into +view; surging from side to side; spasmodically dilating and +contracting his spout-hole, with sharp, cracking, agonized +respirations. At last, gush after gush of clotted red gore, as if it +had been the purple lees of red wine, shot into the frighted air; and +falling back again, ran dripping down his motionless flanks into +the sea. His heart had burst! + +"He's dead, Mr. Stubb," said Daggoo. + +"Yes; both pipes smoked out!" and withdrawing his own from his mouth, +Stubb scattered the dead ashes over the water; and, for a moment, +stood thoughtfully eyeing the vast corpse he had made. + + + +CHAPTER 62 + +The Dart. + + +A word concerning an incident in the last chapter. + +According to the invariable usage of the fishery, the whale-boat +pushes off from the ship, with the headsman or whale-killer as +temporary steersman, and the harpooneer or whale-fastener pulling the +foremost oar, the one known as the harpooneer-oar. Now it needs a +strong, nervous arm to strike the first iron into the fish; for +often, in what is called a long dart, the heavy implement has to be +flung to the distance of twenty or thirty feet. But however +prolonged and exhausting the chase, the harpooneer is expected to +pull his oar meanwhile to the uttermost; indeed, he is expected to +set an example of superhuman activity to the rest, not only by +incredible rowing, but by repeated loud and intrepid exclamations; +and what it is to keep shouting at the top of one's compass, while +all the other muscles are strained and half started--what that is +none know but those who have tried it. For one, I cannot bawl very +heartily and work very recklessly at one and the same time. In this +straining, bawling state, then, with his back to the fish, all at +once the exhausted harpooneer hears the exciting cry--"Stand up, and +give it to him!" He now has to drop and secure his oar, turn round +on his centre half way, seize his harpoon from the crotch, and with +what little strength may remain, he essays to pitch it somehow into +the whale. No wonder, taking the whole fleet of whalemen in a body, +that out of fifty fair chances for a dart, not five are successful; +no wonder that so many hapless harpooneers are madly cursed and +disrated; no wonder that some of them actually burst their +blood-vessels in the boat; no wonder that some sperm whalemen are +absent four years with four barrels; no wonder that to many ship +owners, whaling is but a losing concern; for it is the harpooneer +that makes the voyage, and if you take the breath out of his body how +can you expect to find it there when most wanted! + +Again, if the dart be successful, then at the second critical +instant, that is, when the whale starts to run, the boatheader and +harpooneer likewise start to running fore and aft, to the imminent +jeopardy of themselves and every one else. It is then they change +places; and the headsman, the chief officer of the little craft, +takes his proper station in the bows of the boat. + +Now, I care not who maintains the contrary, but all this is both +foolish and unnecessary. The headsman should stay in the bows from +first to last; he should both dart the harpoon and the lance, and no +rowing whatever should be expected of him, except under circumstances +obvious to any fisherman. I know that this would sometimes involve a +slight loss of speed in the chase; but long experience in various +whalemen of more than one nation has convinced me that in the vast +majority of failures in the fishery, it has not by any means been so +much the speed of the whale as the before described exhaustion of the +harpooneer that has caused them. + +To insure the greatest efficiency in the dart, the harpooneers of +this world must start to their feet from out of idleness, and not +from out of toil. + + + +CHAPTER 63 + +The Crotch. + + +Out of the trunk, the branches grow; out of them, the twigs. So, in +productive subjects, grow the chapters. + +The crotch alluded to on a previous page deserves independent +mention. It is a notched stick of a peculiar form, some two feet in +length, which is perpendicularly inserted into the starboard gunwale +near the bow, for the purpose of furnishing a rest for the wooden +extremity of the harpoon, whose other naked, barbed end slopingly +projects from the prow. Thereby the weapon is instantly at hand to +its hurler, who snatches it up as readily from its rest as a +backwoodsman swings his rifle from the wall. It is customary to have +two harpoons reposing in the crotch, respectively called the first +and second irons. + +But these two harpoons, each by its own cord, are both connected with +the line; the object being this: to dart them both, if possible, one +instantly after the other into the same whale; so that if, in the +coming drag, one should draw out, the other may still retain a hold. +It is a doubling of the chances. But it very often happens that +owing to the instantaneous, violent, convulsive running of the whale +upon receiving the first iron, it becomes impossible for the +harpooneer, however lightning-like in his movements, to pitch the +second iron into him. Nevertheless, as the second iron is already +connected with the line, and the line is running, hence that weapon +must, at all events, be anticipatingly tossed out of the boat, +somehow and somewhere; else the most terrible jeopardy would involve +all hands. Tumbled into the water, it accordingly is in such cases; +the spare coils of box line (mentioned in a preceding chapter) making +this feat, in most instances, prudently practicable. But this +critical act is not always unattended with the saddest and most fatal +casualties. + +Furthermore: you must know that when the second iron is thrown +overboard, it thenceforth becomes a dangling, sharp-edged terror, +skittishly curvetting about both boat and whale, entangling the +lines, or cutting them, and making a prodigious sensation in all +directions. Nor, in general, is it possible to secure it again until +the whale is fairly captured and a corpse. + +Consider, now, how it must be in the case of four boats all engaging +one unusually strong, active, and knowing whale; when owing to these +qualities in him, as well as to the thousand concurring accidents of +such an audacious enterprise, eight or ten loose second irons may be +simultaneously dangling about him. For, of course, each boat is +supplied with several harpoons to bend on to the line should the +first one be ineffectually darted without recovery. All these +particulars are faithfully narrated here, as they will not fail to +elucidate several most important, however intricate passages, in +scenes hereafter to be painted. + + + +CHAPTER 64 + +Stubb's Supper. + + +Stubb's whale had been killed some distance from the ship. It was a +calm; so, forming a tandem of three boats, we commenced the slow +business of towing the trophy to the Pequod. And now, as we eighteen +men with our thirty-six arms, and one hundred and eighty thumbs and +fingers, slowly toiled hour after hour upon that inert, sluggish +corpse in the sea; and it seemed hardly to budge at all, except at +long intervals; good evidence was hereby furnished of the +enormousness of the mass we moved. For, upon the great canal of +Hang-Ho, or whatever they call it, in China, four or five laborers on +the foot-path will draw a bulky freighted junk at the rate of a mile +an hour; but this grand argosy we towed heavily forged along, as if +laden with pig-lead in bulk. + +Darkness came on; but three lights up and down in the Pequod's +main-rigging dimly guided our way; till drawing nearer we saw Ahab +dropping one of several more lanterns over the bulwarks. Vacantly +eyeing the heaving whale for a moment, he issued the usual orders for +securing it for the night, and then handing his lantern to a seaman, +went his way into the cabin, and did not come forward again until +morning. + +Though, in overseeing the pursuit of this whale, Captain Ahab had +evinced his customary activity, to call it so; yet now that the +creature was dead, some vague dissatisfaction, or impatience, or +despair, seemed working in him; as if the sight of that dead body +reminded him that Moby Dick was yet to be slain; and though a +thousand other whales were brought to his ship, all that would not +one jot advance his grand, monomaniac object. Very soon you would +have thought from the sound on the Pequod's decks, that all hands +were preparing to cast anchor in the deep; for heavy chains are being +dragged along the deck, and thrust rattling out of the port-holes. +But by those clanking links, the vast corpse itself, not the ship, is +to be moored. Tied by the head to the stern, and by the tail to the +bows, the whale now lies with its black hull close to the vessel's +and seen through the darkness of the night, which obscured the spars +and rigging aloft, the two--ship and whale, seemed yoked together +like colossal bullocks, whereof one reclines while the other remains +standing.* + + +*A little item may as well be related here. The strongest and most +reliable hold which the ship has upon the whale when moored +alongside, is by the flukes or tail; and as from its greater density +that part is relatively heavier than any other (excepting the +side-fins), its flexibility even in death, causes it to sink low +beneath the surface; so that with the hand you cannot get at it from +the boat, in order to put the chain round it. But this difficulty is +ingeniously overcome: a small, strong line is prepared with a wooden +float at its outer end, and a weight in its middle, while the other +end is secured to the ship. By adroit management the wooden float is +made to rise on the other side of the mass, so that now having +girdled the whale, the chain is readily made to follow suit; and +being slipped along the body, is at last locked fast round the +smallest part of the tail, at the point of junction with its broad +flukes or lobes. + + +If moody Ahab was now all quiescence, at least so far as could be +known on deck, Stubb, his second mate, flushed with conquest, +betrayed an unusual but still good-natured excitement. Such an +unwonted bustle was he in that the staid Starbuck, his official +superior, quietly resigned to him for the time the sole management of +affairs. One small, helping cause of all this liveliness in Stubb, +was soon made strangely manifest. Stubb was a high liver; he was +somewhat intemperately fond of the whale as a flavorish thing to his +palate. + +"A steak, a steak, ere I sleep! You, Daggoo! overboard you go, and +cut me one from his small!" + +Here be it known, that though these wild fishermen do not, as a +general thing, and according to the great military maxim, make the +enemy defray the current expenses of the war (at least before +realizing the proceeds of the voyage), yet now and then you find some +of these Nantucketers who have a genuine relish for that particular +part of the Sperm Whale designated by Stubb; comprising the tapering +extremity of the body. + +About midnight that steak was cut and cooked; and lighted by two +lanterns of sperm oil, Stubb stoutly stood up to his spermaceti +supper at the capstan-head, as if that capstan were a sideboard. Nor +was Stubb the only banqueter on whale's flesh that night. Mingling +their mumblings with his own mastications, thousands on thousands of +sharks, swarming round the dead leviathan, smackingly feasted on its +fatness. The few sleepers below in their bunks were often startled +by the sharp slapping of their tails against the hull, within a few +inches of the sleepers' hearts. Peering over the side you could just +see them (as before you heard them) wallowing in the sullen, black +waters, and turning over on their backs as they scooped out huge +globular pieces of the whale of the bigness of a human head. This +particular feat of the shark seems all but miraculous. How at such +an apparently unassailable surface, they contrive to gouge out such +symmetrical mouthfuls, remains a part of the universal problem of all +things. The mark they thus leave on the whale, may best be likened +to the hollow made by a carpenter in countersinking for a screw. + +Though amid all the smoking horror and diabolism of a sea-fight, +sharks will be seen longingly gazing up to the ship's decks, like +hungry dogs round a table where red meat is being carved, ready to +bolt down every killed man that is tossed to them; and though, while +the valiant butchers over the deck-table are thus cannibally carving +each other's live meat with carving-knives all gilded and tasselled, +the sharks, also, with their jewel-hilted mouths, are quarrelsomely +carving away under the table at the dead meat; and though, were you +to turn the whole affair upside down, it would still be pretty much +the same thing, that is to say, a shocking sharkish business enough +for all parties; and though sharks also are the invariable outriders +of all slave ships crossing the Atlantic, systematically trotting +alongside, to be handy in case a parcel is to be carried anywhere, or +a dead slave to be decently buried; and though one or two other like +instances might be set down, touching the set terms, places, and +occasions, when sharks do most socially congregate, and most +hilariously feast; yet is there no conceivable time or occasion when +you will find them in such countless numbers, and in gayer or more +jovial spirits, than around a dead sperm whale, moored by night to a +whaleship at sea. If you have never seen that sight, then suspend +your decision about the propriety of devil-worship, and the +expediency of conciliating the devil. + +But, as yet, Stubb heeded not the mumblings of the banquet that was +going on so nigh him, no more than the sharks heeded the smacking of +his own epicurean lips. + +"Cook, cook!--where's that old Fleece?" he cried at length, widening +his legs still further, as if to form a more secure base for his +supper; and, at the same time darting his fork into the dish, as if +stabbing with his lance; "cook, you cook!--sail this way, cook!" + +The old black, not in any very high glee at having been previously +roused from his warm hammock at a most unseasonable hour, came +shambling along from his galley, for, like many old blacks, there was +something the matter with his knee-pans, which he did not keep well +scoured like his other pans; this old Fleece, as they called him, +came shuffling and limping along, assisting his step with his tongs, +which, after a clumsy fashion, were made of straightened iron hoops; +this old Ebony floundered along, and in obedience to the word of +command, came to a dead stop on the opposite side of Stubb's +sideboard; when, with both hands folded before him, and resting on +his two-legged cane, he bowed his arched back still further over, at +the same time sideways inclining his head, so as to bring his best +ear into play. + +"Cook," said Stubb, rapidly lifting a rather reddish morsel to his +mouth, "don't you think this steak is rather overdone? You've been +beating this steak too much, cook; it's too tender. Don't I always +say that to be good, a whale-steak must be tough? There are those +sharks now over the side, don't you see they prefer it tough and +rare? What a shindy they are kicking up! Cook, go and talk to 'em; +tell 'em they are welcome to help themselves civilly, and in +moderation, but they must keep quiet. Blast me, if I can hear my own +voice. Away, cook, and deliver my message. Here, take this +lantern," snatching one from his sideboard; "now then, go and preach +to 'em!" + +Sullenly taking the offered lantern, old Fleece limped across the +deck to the bulwarks; and then, with one hand dropping his light low +over the sea, so as to get a good view of his congregation, with the +other hand he solemnly flourished his tongs, and leaning far over the +side in a mumbling voice began addressing the sharks, while Stubb, +softly crawling behind, overheard all that was said. + +"Fellow-critters: I'se ordered here to say dat you must stop dat dam +noise dare. You hear? Stop dat dam smackin' ob de lips! Massa +Stubb say dat you can fill your dam bellies up to de hatchings, but +by Gor! you must stop dat dam racket!" + +"Cook," here interposed Stubb, accompanying the word with a sudden +slap on the shoulder,--"Cook! why, damn your eyes, you mustn't swear +that way when you're preaching. That's no way to convert sinners, +cook!" + +"Who dat? Den preach to him yourself," sullenly turning to go. + +"No, cook; go on, go on." + +"Well, den, Belubed fellow-critters:"- + +"Right!" exclaimed Stubb, approvingly, "coax 'em to it; try that," +and Fleece continued. + +"Do you is all sharks, and by natur wery woracious, yet I zay to you, +fellow-critters, dat dat woraciousness--'top dat dam slappin' ob de +tail! How you tink to hear, spose you keep up such a dam slappin' +and bitin' dare?" + +"Cook," cried Stubb, collaring him, "I won't have that swearing. +Talk to 'em gentlemanly." + +Once more the sermon proceeded. + +"Your woraciousness, fellow-critters, I don't blame ye so much for; +dat is natur, and can't be helped; but to gobern dat wicked natur, +dat is de pint. You is sharks, sartin; but if you gobern de shark in +you, why den you be angel; for all angel is not'ing more dan de shark +well goberned. Now, look here, bred'ren, just try wonst to be cibil, +a helping yourselbs from dat whale. Don't be tearin' de blubber out +your neighbour's mout, I say. Is not one shark dood right as toder +to dat whale? And, by Gor, none on you has de right to dat whale; +dat whale belong to some one else. I know some o' you has berry brig +mout, brigger dan oders; but den de brig mouts sometimes has de +small bellies; so dat de brigness of de mout is not to swaller wid, +but to bit off de blubber for de small fry ob sharks, dat can't get +into de scrouge to help demselves." + +"Well done, old Fleece!" cried Stubb, "that's Christianity; go on." + +"No use goin' on; de dam willains will keep a scougin' and slappin' +each oder, Massa Stubb; dey don't hear one word; no use a-preaching +to such dam g'uttons as you call 'em, till dare bellies is full, and +dare bellies is bottomless; and when dey do get 'em full, dey wont +hear you den; for den dey sink in the sea, go fast to sleep on de +coral, and can't hear noting at all, no more, for eber and eber." + +"Upon my soul, I am about of the same opinion; so give the +benediction, Fleece, and I'll away to my supper." + +Upon this, Fleece, holding both hands over the fishy mob, raised his +shrill voice, and cried-- + +"Cussed fellow-critters! Kick up de damndest row as ever you can; +fill your dam bellies 'till dey bust--and den die." + +"Now, cook," said Stubb, resuming his supper at the capstan; "stand +just where you stood before, there, over against me, and pay +particular attention." + +"All 'dention," said Fleece, again stooping over upon his tongs in +the desired position. + +"Well," said Stubb, helping himself freely meanwhile; "I shall now go +back to the subject of this steak. In the first place, how old are +you, cook?" + +"What dat do wid de 'teak," said the old black, testily. + +"Silence! How old are you, cook?" + +"'Bout ninety, dey say," he gloomily muttered. + +"And you have lived in this world hard upon one hundred years, cook, +and don't know yet how to cook a whale-steak?" rapidly bolting +another mouthful at the last word, so that morsel seemed a +continuation of the question. "Where were you born, cook?" + +"'Hind de hatchway, in ferry-boat, goin' ober de Roanoke." + +"Born in a ferry-boat! That's queer, too. But I want to know what +country you were born in, cook!" + +"Didn't I say de Roanoke country?" he cried sharply. + +"No, you didn't, cook; but I'll tell you what I'm coming to, cook. +You must go home and be born over again; you don't know how to cook a +whale-steak yet." + +"Bress my soul, if I cook noder one," he growled, angrily, turning +round to depart. + +"Come back here, cook;--here, hand me those tongs;--now take that bit +of steak there, and tell me if you think that steak cooked as it +should be? Take it, I say"--holding the tongs towards him--"take it, +and taste it." + +Faintly smacking his withered lips over it for a moment, the old +negro muttered, "Best cooked 'teak I eber taste; joosy, berry joosy." + +"Cook," said Stubb, squaring himself once more; "do you belong to the +church?" + +"Passed one once in Cape-Down," said the old man sullenly. + +"And you have once in your life passed a holy church in Cape-Town, +where you doubtless overheard a holy parson addressing his hearers as +his beloved fellow-creatures, have you, cook! And yet you come here, +and tell me such a dreadful lie as you did just now, eh?" said Stubb. +"Where do you expect to go to, cook?" + +"Go to bed berry soon," he mumbled, half-turning as he spoke. + +"Avast! heave to! I mean when you die, cook. It's an awful +question. Now what's your answer?" + +"When dis old brack man dies," said the negro slowly, changing his +whole air and demeanor, "he hisself won't go nowhere; but some +bressed angel will come and fetch him." + +"Fetch him? How? In a coach and four, as they fetched Elijah? And +fetch him where?" + +"Up dere," said Fleece, holding his tongs straight over his head, and +keeping it there very solemnly. + +"So, then, you expect to go up into our main-top, do you, cook, when +you are dead? But don't you know the higher you climb, the colder it +gets? Main-top, eh?" + +"Didn't say dat t'all," said Fleece, again in the sulks. + +"You said up there, didn't you? and now look yourself, and see where +your tongs are pointing. But, perhaps you expect to get into heaven +by crawling through the lubber's hole, cook; but, no, no, cook, you +don't get there, except you go the regular way, round by the rigging. +It's a ticklish business, but must be done, or else it's no go. But +none of us are in heaven yet. Drop your tongs, cook, and hear my +orders. Do ye hear? Hold your hat in one hand, and clap t'other +a'top of your heart, when I'm giving my orders, cook. What! that +your heart, there?--that's your gizzard! Aloft! aloft!--that's +it--now you have it. Hold it there now, and pay attention." + +"All 'dention," said the old black, with both hands placed as +desired, vainly wriggling his grizzled head, as if to get both ears +in front at one and the same time. + +"Well then, cook, you see this whale-steak of yours was so very bad, +that I have put it out of sight as soon as possible; you see that, +don't you? Well, for the future, when you cook another whale-steak +for my private table here, the capstan, I'll tell you what to do so +as not to spoil it by overdoing. Hold the steak in one hand, and +show a live coal to it with the other; that done, dish it; d'ye hear? +And now to-morrow, cook, when we are cutting in the fish, be sure +you stand by to get the tips of his fins; have them put in pickle. +As for the ends of the flukes, have them soused, cook. There, now ye +may go." + +But Fleece had hardly got three paces off, when he was recalled. + +"Cook, give me cutlets for supper to-morrow night in the mid-watch. +D'ye hear? away you sail, then.--Halloa! stop! make a bow before you +go.--Avast heaving again! Whale-balls for breakfast--don't forget." + +"Wish, by gor! whale eat him, 'stead of him eat whale. I'm bressed +if he ain't more of shark dan Massa Shark hisself," muttered the old +man, limping away; with which sage ejaculation he went to his +hammock. + + + +CHAPTER 65 + +The Whale as a Dish. + + +That mortal man should feed upon the creature that feeds his lamp, +and, like Stubb, eat him by his own light, as you may say; this seems +so outlandish a thing that one must needs go a little into the +history and philosophy of it. + +It is upon record, that three centuries ago the tongue of the Right +Whale was esteemed a great delicacy in France, and commanded large +prices there. Also, that in Henry VIIIth's time, a certain cook of +the court obtained a handsome reward for inventing an admirable sauce +to be eaten with barbacued porpoises, which, you remember, are a +species of whale. Porpoises, indeed, are to this day considered fine +eating. The meat is made into balls about the size of billiard +balls, and being well seasoned and spiced might be taken for +turtle-balls or veal balls. The old monks of Dunfermline were very +fond of them. They had a great porpoise grant from the crown. + +The fact is, that among his hunters at least, the whale would by all +hands be considered a noble dish, were there not so much of him; but +when you come to sit down before a meat-pie nearly one hundred feet +long, it takes away your appetite. Only the most unprejudiced of men +like Stubb, nowadays partake of cooked whales; but the Esquimaux are +not so fastidious. We all know how they live upon whales, and have +rare old vintages of prime old train oil. Zogranda, one of their +most famous doctors, recommends strips of blubber for infants, as +being exceedingly juicy and nourishing. And this reminds me that +certain Englishmen, who long ago were accidentally left in Greenland +by a whaling vessel--that these men actually lived for several months +on the mouldy scraps of whales which had been left ashore after +trying out the blubber. Among the Dutch whalemen these scraps are +called "fritters"; which, indeed, they greatly resemble, being brown +and crisp, and smelling something like old Amsterdam housewives' +dough-nuts or oly-cooks, when fresh. They have such an eatable look +that the most self-denying stranger can hardly keep his hands off. + +But what further depreciates the whale as a civilized dish, is his +exceeding richness. He is the great prize ox of the sea, too fat to +be delicately good. Look at his hump, which would be as fine eating +as the buffalo's (which is esteemed a rare dish), were it not such a +solid pyramid of fat. But the spermaceti itself, how bland and +creamy that is; like the transparent, half-jellied, white meat of a +cocoanut in the third month of its growth, yet far too rich to supply +a substitute for butter. Nevertheless, many whalemen have a method +of absorbing it into some other substance, and then partaking of it. +In the long try watches of the night it is a common thing for the +seamen to dip their ship-biscuit into the huge oil-pots and let them +fry there awhile. Many a good supper have I thus made. + +In the case of a small Sperm Whale the brains are accounted a fine +dish. The casket of the skull is broken into with an axe, and the +two plump, whitish lobes being withdrawn (precisely resembling two +large puddings), they are then mixed with flour, and cooked into a +most delectable mess, in flavor somewhat resembling calves' head, +which is quite a dish among some epicures; and every one knows that +some young bucks among the epicures, by continually dining upon +calves' brains, by and by get to have a little brains of their own, +so as to be able to tell a calf's head from their own heads; which, +indeed, requires uncommon discrimination. And that is the reason why +a young buck with an intelligent looking calf's head before him, is +somehow one of the saddest sights you can see. The head looks a sort +of reproachfully at him, with an "Et tu Brute!" expression. + +It is not, perhaps, entirely because the whale is so excessively +unctuous that landsmen seem to regard the eating of him with +abhorrence; that appears to result, in some way, from the +consideration before mentioned: i.e. that a man should eat a newly +murdered thing of the sea, and eat it too by its own light. But no +doubt the first man that ever murdered an ox was regarded as a +murderer; perhaps he was hung; and if he had been put on his trial by +oxen, he certainly would have been; and he certainly deserved it if +any murderer does. Go to the meat-market of a Saturday night and see +the crowds of live bipeds staring up at the long rows of dead +quadrupeds. Does not that sight take a tooth out of the cannibal's +jaw? Cannibals? who is not a cannibal? I tell you it will be more +tolerable for the Fejee that salted down a lean missionary in his +cellar against a coming famine; it will be more tolerable for that +provident Fejee, I say, in the day of judgment, than for thee, +civilized and enlightened gourmand, who nailest geese to the ground +and feastest on their bloated livers in thy pate-de-foie-gras. + +But Stubb, he eats the whale by its own light, does he? and that is +adding insult to injury, is it? Look at your knife-handle, there, my +civilized and enlightened gourmand dining off that roast beef, what +is that handle made of?--what but the bones of the brother of the +very ox you are eating? And what do you pick your teeth with, after +devouring that fat goose? With a feather of the same fowl. And with +what quill did the Secretary of the Society for the Suppression of +Cruelty to Ganders formally indite his circulars? It is only within +the last month or two that that society passed a resolution to +patronise nothing but steel pens. + + + +CHAPTER 66 + +The Shark Massacre. + + +When in the Southern Fishery, a captured Sperm Whale, after long and +weary toil, is brought alongside late at night, it is not, as a +general thing at least, customary to proceed at once to the business +of cutting him in. For that business is an exceedingly laborious +one; is not very soon completed; and requires all hands to set about +it. Therefore, the common usage is to take in all sail; lash the +helm a'lee; and then send every one below to his hammock till +daylight, with the reservation that, until that time, anchor-watches +shall be kept; that is, two and two for an hour, each couple, the +crew in rotation shall mount the deck to see that all goes well. + +But sometimes, especially upon the Line in the Pacific, this plan +will not answer at all; because such incalculable hosts of sharks +gather round the moored carcase, that were he left so for six hours, +say, on a stretch, little more than the skeleton would be visible by +morning. In most other parts of the ocean, however, where these fish +do not so largely abound, their wondrous voracity can be at times +considerably diminished, by vigorously stirring them up with sharp +whaling-spades, a procedure notwithstanding, which, in some +instances, only seems to tickle them into still greater activity. +But it was not thus in the present case with the Pequod's sharks; +though, to be sure, any man unaccustomed to such sights, to have +looked over her side that night, would have almost thought the whole +round sea was one huge cheese, and those sharks the maggots in it. + +Nevertheless, upon Stubb setting the anchor-watch after his supper +was concluded; and when, accordingly, Queequeg and a forecastle +seaman came on deck, no small excitement was created among the +sharks; for immediately suspending the cutting stages over the side, +and lowering three lanterns, so that they cast long gleams of light +over the turbid sea, these two mariners, darting their long +whaling-spades, kept up an incessant murdering of the sharks,* by +striking the keen steel deep into their skulls, seemingly their only +vital part. But in the foamy confusion of their mixed and struggling +hosts, the marksmen could not always hit their mark; and this brought +about new revelations of the incredible ferocity of the foe. They +viciously snapped, not only at each other's disembowelments, but like +flexible bows, bent round, and bit their own; till those entrails +seemed swallowed over and over again by the same mouth, to be +oppositely voided by the gaping wound. Nor was this all. It was +unsafe to meddle with the corpses and ghosts of these creatures. A +sort of generic or Pantheistic vitality seemed to lurk in their very +joints and bones, after what might be called the individual life had +departed. Killed and hoisted on deck for the sake of his skin, one +of these sharks almost took poor Queequeg's hand off, when he tried +to shut down the dead lid of his murderous jaw. + + +*The whaling-spade used for cutting-in is made of the very best +steel; is about the bigness of a man's spread hand; and in general +shape, corresponds to the garden implement after which it is named; +only its sides are perfectly flat, and its upper end considerably +narrower than the lower. This weapon is always kept as sharp as +possible; and when being used is occasionally honed, just like a +razor. In its socket, a stiff pole, from twenty to thirty feet long, +is inserted for a handle. + + +"Queequeg no care what god made him shark," said the savage, +agonizingly lifting his hand up and down; "wedder Fejee god or +Nantucket god; but de god wat made shark must be one dam Ingin." + + + +CHAPTER 67 + +Cutting In. + + +It was a Saturday night, and such a Sabbath as followed! Ex officio +professors of Sabbath breaking are all whalemen. The ivory Pequod +was turned into what seemed a shamble; every sailor a butcher. You +would have thought we were offering up ten thousand red oxen to the +sea gods. + +In the first place, the enormous cutting tackles, among other +ponderous things comprising a cluster of blocks generally painted +green, and which no single man can possibly lift--this vast bunch of +grapes was swayed up to the main-top and firmly lashed to the lower +mast-head, the strongest point anywhere above a ship's deck. The end +of the hawser-like rope winding through these intricacies, was then +conducted to the windlass, and the huge lower block of the tackles +was swung over the whale; to this block the great blubber hook, +weighing some one hundred pounds, was attached. And now suspended in +stages over the side, Starbuck and Stubb, the mates, armed with their +long spades, began cutting a hole in the body for the insertion of +the hook just above the nearest of the two side-fins. This done, a +broad, semicircular line is cut round the hole, the hook is inserted, +and the main body of the crew striking up a wild chorus, now commence +heaving in one dense crowd at the windlass. When instantly, the +entire ship careens over on her side; every bolt in her starts like +the nail-heads of an old house in frosty weather; she trembles, +quivers, and nods her frighted mast-heads to the sky. More and more +she leans over to the whale, while every gasping heave of the +windlass is answered by a helping heave from the billows; till at +last, a swift, startling snap is heard; with a great swash the ship +rolls upwards and backwards from the whale, and the triumphant tackle +rises into sight dragging after it the disengaged semicircular end of +the first strip of blubber. Now as the blubber envelopes the whale +precisely as the rind does an orange, so is it stripped off from the +body precisely as an orange is sometimes stripped by spiralizing it. +For the strain constantly kept up by the windlass continually keeps +the whale rolling over and over in the water, and as the blubber in +one strip uniformly peels off along the line called the "scarf," +simultaneously cut by the spades of Starbuck and Stubb, the mates; +and just as fast as it is thus peeled off, and indeed by that very +act itself, it is all the time being hoisted higher and higher aloft +till its upper end grazes the main-top; the men at the windlass then +cease heaving, and for a moment or two the prodigious blood-dripping +mass sways to and fro as if let down from the sky, and every one +present must take good heed to dodge it when it swings, else it may +box his ears and pitch him headlong overboard. + +One of the attending harpooneers now advances with a long, keen +weapon called a boarding-sword, and watching his chance he +dexterously slices out a considerable hole in the lower part of the +swaying mass. Into this hole, the end of the second alternating +great tackle is then hooked so as to retain a hold upon the blubber, +in order to prepare for what follows. Whereupon, this accomplished +swordsman, warning all hands to stand off, once more makes a +scientific dash at the mass, and with a few sidelong, desperate, +lunging slicings, severs it completely in twain; so that while the +short lower part is still fast, the long upper strip, called a +blanket-piece, swings clear, and is all ready for lowering. The +heavers forward now resume their song, and while the one tackle is +peeling and hoisting a second strip from the whale, the other is +slowly slackened away, and down goes the first strip through the main +hatchway right beneath, into an unfurnished parlor called the +blubber-room. Into this twilight apartment sundry nimble hands keep +coiling away the long blanket-piece as if it were a great live mass +of plaited serpents. And thus the work proceeds; the two tackles +hoisting and lowering simultaneously; both whale and windlass +heaving, the heavers singing, the blubber-room gentlemen coiling, the +mates scarfing, the ship straining, and all hands swearing +occasionally, by way of assuaging the general friction. + + + +CHAPTER 68 + +The Blanket. + + +I have given no small attention to that not unvexed subject, the skin +of the whale. I have had controversies about it with experienced +whalemen afloat, and learned naturalists ashore. My original opinion +remains unchanged; but it is only an opinion. + +The question is, what and where is the skin of the whale? Already +you know what his blubber is. That blubber is something of the +consistence of firm, close-grained beef, but tougher, more elastic +and compact, and ranges from eight or ten to twelve and fifteen +inches in thickness. + +Now, however preposterous it may at first seem to talk of any +creature's skin as being of that sort of consistence and thickness, +yet in point of fact these are no arguments against such a +presumption; because you cannot raise any other dense enveloping +layer from the whale's body but that same blubber; and the outermost +enveloping layer of any animal, if reasonably dense, what can that be +but the skin? True, from the unmarred dead body of the whale, you +may scrape off with your hand an infinitely thin, transparent +substance, somewhat resembling the thinnest shreds of isinglass, only +it is almost as flexible and soft as satin; that is, previous to +being dried, when it not only contracts and thickens, but becomes +rather hard and brittle. I have several such dried bits, which I use +for marks in my whale-books. It is transparent, as I said before; +and being laid upon the printed page, I have sometimes pleased myself +with fancying it exerted a magnifying influence. At any rate, it is +pleasant to read about whales through their own spectacles, as you +may say. But what I am driving at here is this. That same +infinitely thin, isinglass substance, which, I admit, invests the +entire body of the whale, is not so much to be regarded as the skin +of the creature, as the skin of the skin, so to speak; for it were +simply ridiculous to say, that the proper skin of the tremendous +whale is thinner and more tender than the skin of a new-born child. +But no more of this. + +Assuming the blubber to be the skin of the whale; then, when this +skin, as in the case of a very large Sperm Whale, will yield the bulk +of one hundred barrels of oil; and, when it is considered that, in +quantity, or rather weight, that oil, in its expressed state, is only +three fourths, and not the entire substance of the coat; some idea +may hence be had of the enormousness of that animated mass, a mere +part of whose mere integument yields such a lake of liquid as that. +Reckoning ten barrels to the ton, you have ten tons for the net +weight of only three quarters of the stuff of the whale's skin. + +In life, the visible surface of the Sperm Whale is not the least +among the many marvels he presents. Almost invariably it is all over +obliquely crossed and re-crossed with numberless straight marks in +thick array, something like those in the finest Italian line +engravings. But these marks do not seem to be impressed upon the +isinglass substance above mentioned, but seem to be seen through it, +as if they were engraved upon the body itself. Nor is this all. In +some instances, to the quick, observant eye, those linear marks, as +in a veritable engraving, but afford the ground for far other +delineations. These are hieroglyphical; that is, if you call those +mysterious cyphers on the walls of pyramids hieroglyphics, then that +is the proper word to use in the present connexion. By my retentive +memory of the hieroglyphics upon one Sperm Whale in particular, I was +much struck with a plate representing the old Indian characters +chiselled on the famous hieroglyphic palisades on the banks of the +Upper Mississippi. Like those mystic rocks, too, the mystic-marked +whale remains undecipherable. This allusion to the Indian rocks +reminds me of another thing. Besides all the other phenomena which +the exterior of the Sperm Whale presents, he not seldom displays the +back, and more especially his flanks, effaced in great part of the +regular linear appearance, by reason of numerous rude scratches, +altogether of an irregular, random aspect. I should say that those +New England rocks on the sea-coast, which Agassiz imagines to bear +the marks of violent scraping contact with vast floating icebergs--I +should say, that those rocks must not a little resemble the Sperm +Whale in this particular. It also seems to me that such scratches in +the whale are probably made by hostile contact with other whales; for +I have most remarked them in the large, full-grown bulls of the +species. + +A word or two more concerning this matter of the skin or blubber of +the whale. It has already been said, that it is stript from him in +long pieces, called blanket-pieces. Like most sea-terms, this one is +very happy and significant. For the whale is indeed wrapt up in his +blubber as in a real blanket or counterpane; or, still better, an +Indian poncho slipt over his head, and skirting his extremity. It is +by reason of this cosy blanketing of his body, that the whale is +enabled to keep himself comfortable in all weathers, in all seas, +times, and tides. What would become of a Greenland whale, say, in +those shuddering, icy seas of the North, if unsupplied with his cosy +surtout? True, other fish are found exceedingly brisk in those +Hyperborean waters; but these, be it observed, are your cold-blooded, +lungless fish, whose very bellies are refrigerators; creatures, that +warm themselves under the lee of an iceberg, as a traveller in winter +would bask before an inn fire; whereas, like man, the whale has lungs +and warm blood. Freeze his blood, and he dies. How wonderful is it +then--except after explanation--that this great monster, to whom +corporeal warmth is as indispensable as it is to man; how wonderful +that he should be found at home, immersed to his lips for life in +those Arctic waters! where, when seamen fall overboard, they are +sometimes found, months afterwards, perpendicularly frozen into the +hearts of fields of ice, as a fly is found glued in amber. But more +surprising is it to know, as has been proved by experiment, that the +blood of a Polar whale is warmer than that of a Borneo negro in +summer. + +It does seem to me, that herein we see the rare virtue of a strong +individual vitality, and the rare virtue of thick walls, and the rare +virtue of interior spaciousness. Oh, man! admire and model thyself +after the whale! Do thou, too, remain warm among ice. Do thou, too, +live in this world without being of it. Be cool at the equator; keep +thy blood fluid at the Pole. Like the great dome of St. Peter's, and +like the great whale, retain, O man! in all seasons a temperature of +thine own. + +But how easy and how hopeless to teach these fine things! Of +erections, how few are domed like St. Peter's! of creatures, how few +vast as the whale! + + + +CHAPTER 69 + +The Funeral. + + +Haul in the chains! Let the carcase go astern! + +The vast tackles have now done their duty. The peeled white body of +the beheaded whale flashes like a marble sepulchre; though changed in +hue, it has not perceptibly lost anything in bulk. It is still +colossal. Slowly it floats more and more away, the water round it +torn and splashed by the insatiate sharks, and the air above vexed +with rapacious flights of screaming fowls, whose beaks are like so +many insulting poniards in the whale. The vast white headless +phantom floats further and further from the ship, and every rod that +it so floats, what seem square roods of sharks and cubic roods of +fowls, augment the murderous din. For hours and hours from the +almost stationary ship that hideous sight is seen. Beneath the +unclouded and mild azure sky, upon the fair face of the pleasant sea, +wafted by the joyous breezes, that great mass of death floats on and +on, till lost in infinite perspectives. + +There's a most doleful and most mocking funeral! The sea-vultures +all in pious mourning, the air-sharks all punctiliously in black or +speckled. In life but few of them would have helped the whale, I +ween, if peradventure he had needed it; but upon the banquet of his +funeral they most piously do pounce. Oh, horrible vultureism of +earth! from which not the mightiest whale is free. + +Nor is this the end. Desecrated as the body is, a vengeful ghost +survives and hovers over it to scare. Espied by some timid +man-of-war or blundering discovery-vessel from afar, when the +distance obscuring the swarming fowls, nevertheless still shows the +white mass floating in the sun, and the white spray heaving high +against it; straightway the whale's unharming corpse, with trembling +fingers is set down in the log--SHOALS, ROCKS, AND BREAKERS +HEREABOUTS: BEWARE! And for years afterwards, perhaps, ships shun +the place; leaping over it as silly sheep leap over a vacuum, because +their leader originally leaped there when a stick was held. There's +your law of precedents; there's your utility of traditions; there's +the story of your obstinate survival of old beliefs never bottomed on +the earth, and now not even hovering in the air! There's orthodoxy! + +Thus, while in life the great whale's body may have been a real +terror to his foes, in his death his ghost becomes a powerless panic +to a world. + +Are you a believer in ghosts, my friend? There are other ghosts than +the Cock-Lane one, and far deeper men than Doctor Johnson who believe +in them. + + + +CHAPTER 70 + +The Sphynx. + + +It should not have been omitted that previous to completely stripping +the body of the leviathan, he was beheaded. Now, the beheading of +the Sperm Whale is a scientific anatomical feat, upon which +experienced whale surgeons very much pride themselves: and not +without reason. + +Consider that the whale has nothing that can properly be called a +neck; on the contrary, where his head and body seem to join, there, +in that very place, is the thickest part of him. Remember, also, +that the surgeon must operate from above, some eight or ten feet +intervening between him and his subject, and that subject almost +hidden in a discoloured, rolling, and oftentimes tumultuous and +bursting sea. Bear in mind, too, that under these untoward +circumstances he has to cut many feet deep in the flesh; and in that +subterraneous manner, without so much as getting one single peep into +the ever-contracting gash thus made, he must skilfully steer clear +of all adjacent, interdicted parts, and exactly divide the spine at a +critical point hard by its insertion into the skull. Do you not +marvel, then, at Stubb's boast, that he demanded but ten minutes to +behead a sperm whale? + +When first severed, the head is dropped astern and held there by a +cable till the body is stripped. That done, if it belong to a small +whale it is hoisted on deck to be deliberately disposed of. But, +with a full grown leviathan this is impossible; for the sperm whale's +head embraces nearly one third of his entire bulk, and completely to +suspend such a burden as that, even by the immense tackles of a +whaler, this were as vain a thing as to attempt weighing a Dutch barn +in jewellers' scales. + +The Pequod's whale being decapitated and the body stripped, the head +was hoisted against the ship's side--about half way out of the sea, +so that it might yet in great part be buoyed up by its native +element. And there with the strained craft steeply leaning over to it, +by reason of the enormous downward drag from the lower mast-head, and +every yard-arm on that side projecting like a crane over the waves; +there, that blood-dripping head hung to the Pequod's waist like the +giant Holofernes's from the girdle of Judith. + +When this last task was accomplished it was noon, and the seamen went +below to their dinner. Silence reigned over the before tumultuous +but now deserted deck. An intense copper calm, like a universal +yellow lotus, was more and more unfolding its noiseless measureless +leaves upon the sea. + +A short space elapsed, and up into this noiselessness came Ahab alone +from his cabin. Taking a few turns on the quarter-deck, he paused to +gaze over the side, then slowly getting into the main-chains he took +Stubb's long spade--still remaining there after the whale's +Decapitation--and striking it into the lower part of the +half-suspended mass, placed its other end crutch-wise under one arm, +and so stood leaning over with eyes attentively fixed on this head. + +It was a black and hooded head; and hanging there in the midst of so +intense a calm, it seemed the Sphynx's in the desert. "Speak, thou +vast and venerable head," muttered Ahab, "which, though ungarnished +with a beard, yet here and there lookest hoary with mosses; speak, +mighty head, and tell us the secret thing that is in thee. Of all +divers, thou hast dived the deepest. That head upon which the upper +sun now gleams, has moved amid this world's foundations. Where +unrecorded names and navies rust, and untold hopes and anchors rot; +where in her murderous hold this frigate earth is ballasted with +bones of millions of the drowned; there, in that awful water-land, +there was thy most familiar home. Thou hast been where bell or diver +never went; hast slept by many a sailor's side, where sleepless +mothers would give their lives to lay them down. Thou saw'st the +locked lovers when leaping from their flaming ship; heart to heart +they sank beneath the exulting wave; true to each other, when heaven +seemed false to them. Thou saw'st the murdered mate when tossed by +pirates from the midnight deck; for hours he fell into the deeper +midnight of the insatiate maw; and his murderers still sailed on +unharmed--while swift lightnings shivered the neighboring ship that +would have borne a righteous husband to outstretched, longing arms. +O head! thou hast seen enough to split the planets and make an +infidel of Abraham, and not one syllable is thine!" + +"Sail ho!" cried a triumphant voice from the main-mast-head. + +"Aye? Well, now, that's cheering," cried Ahab, suddenly erecting +himself, while whole thunder-clouds swept aside from his brow. "That +lively cry upon this deadly calm might almost convert a better +man.--Where away?" + +"Three points on the starboard bow, sir, and bringing down her breeze +to us! + +"Better and better, man. Would now St. Paul would come along that +way, and to my breezelessness bring his breeze! O Nature, and O soul +of man! how far beyond all utterance are your linked analogies! not +the smallest atom stirs or lives on matter, but has its cunning +duplicate in mind." + + + +CHAPTER 71 + +The Jeroboam's Story. + + +Hand in hand, ship and breeze blew on; but the breeze came faster +than the ship, and soon the Pequod began to rock. + +By and by, through the glass the stranger's boats and manned +mast-heads proved her a whale-ship. But as she was so far to +windward, and shooting by, apparently making a passage to some other +ground, the Pequod could not hope to reach her. So the signal was +set to see what response would be made. + +Here be it said, that like the vessels of military marines, the ships +of the American Whale Fleet have each a private signal; all which +signals being collected in a book with the names of the respective +vessels attached, every captain is provided with it. Thereby, the +whale commanders are enabled to recognise each other upon the ocean, +even at considerable distances and with no small facility. + +The Pequod's signal was at last responded to by the stranger's +setting her own; which proved the ship to be the Jeroboam of +Nantucket. Squaring her yards, she bore down, ranged abeam under the +Pequod's lee, and lowered a boat; it soon drew nigh; but, as the +side-ladder was being rigged by Starbuck's order to accommodate the +visiting captain, the stranger in question waved his hand from his +boat's stern in token of that proceeding being entirely unnecessary. +It turned out that the Jeroboam had a malignant epidemic on board, +and that Mayhew, her captain, was fearful of infecting the Pequod's +company. For, though himself and boat's crew remained untainted, and +though his ship was half a rifle-shot off, and an incorruptible sea +and air rolling and flowing between; yet conscientiously adhering to +the timid quarantine of the land, he peremptorily refused to come +into direct contact with the Pequod. + +But this did by no means prevent all communications. Preserving an +interval of some few yards between itself and the ship, the +Jeroboam's boat by the occasional use of its oars contrived to keep +parallel to the Pequod, as she heavily forged through the sea (for by +this time it blew very fresh), with her main-topsail aback; though, +indeed, at times by the sudden onset of a large rolling wave, the +boat would be pushed some way ahead; but would be soon skilfully +brought to her proper bearings again. Subject to this, and other the +like interruptions now and then, a conversation was sustained between +the two parties; but at intervals not without still another +interruption of a very different sort. + +Pulling an oar in the Jeroboam's boat, was a man of a singular +appearance, even in that wild whaling life where individual +notabilities make up all totalities. He was a small, short, youngish +man, sprinkled all over his face with freckles, and wearing redundant +yellow hair. A long-skirted, cabalistically-cut coat of a faded +walnut tinge enveloped him; the overlapping sleeves of which were +rolled up on his wrists. A deep, settled, fanatic delirium was in +his eyes. + +So soon as this figure had been first descried, Stubb had +exclaimed--"That's he! that's he!--the long-togged scaramouch the +Town-Ho's company told us of!" Stubb here alluded to a strange story +told of the Jeroboam, and a certain man among her crew, some time +previous when the Pequod spoke the Town-Ho. According to this +account and what was subsequently learned, it seemed that the +scaramouch in question had gained a wonderful ascendency over almost +everybody in the Jeroboam. His story was this: + +He had been originally nurtured among the crazy society of Neskyeuna +Shakers, where he had been a great prophet; in their cracked, secret +meetings having several times descended from heaven by the way of a +trap-door, announcing the speedy opening of the seventh vial, which +he carried in his vest-pocket; but, which, instead of containing +gunpowder, was supposed to be charged with laudanum. A strange, +apostolic whim having seized him, he had left Neskyeuna for +Nantucket, where, with that cunning peculiar to craziness, he assumed +a steady, common-sense exterior, and offered himself as a green-hand +candidate for the Jeroboam's whaling voyage. They engaged him; but +straightway upon the ship's getting out of sight of land, his +insanity broke out in a freshet. He announced himself as the +archangel Gabriel, and commanded the captain to jump overboard. He +published his manifesto, whereby he set himself forth as the +deliverer of the isles of the sea and vicar-general of all Oceanica. +The unflinching earnestness with which he declared these things;--the +dark, daring play of his sleepless, excited imagination, and all the +preternatural terrors of real delirium, united to invest this Gabriel +in the minds of the majority of the ignorant crew, with an atmosphere +of sacredness. Moreover, they were afraid of him. As such a man, +however, was not of much practical use in the ship, especially as he +refused to work except when he pleased, the incredulous captain would +fain have been rid of him; but apprised that that individual's +intention was to land him in the first convenient port, the archangel +forthwith opened all his seals and vials--devoting the ship and all +hands to unconditional perdition, in case this intention was carried +out. So strongly did he work upon his disciples among the crew, that +at last in a body they went to the captain and told him if Gabriel +was sent from the ship, not a man of them would remain. He was +therefore forced to relinquish his plan. Nor would they permit +Gabriel to be any way maltreated, say or do what he would; so that it +came to pass that Gabriel had the complete freedom of the ship. The +consequence of all this was, that the archangel cared little or +nothing for the captain and mates; and since the epidemic had broken +out, he carried a higher hand than ever; declaring that the plague, +as he called it, was at his sole command; nor should it be stayed but +according to his good pleasure. The sailors, mostly poor devils, +cringed, and some of them fawned before him; in obedience to his +instructions, sometimes rendering him personal homage, as to a god. +Such things may seem incredible; but, however wondrous, they are +true. Nor is the history of fanatics half so striking in respect to +the measureless self-deception of the fanatic himself, as his +measureless power of deceiving and bedevilling so many others. But +it is time to return to the Pequod. + +"I fear not thy epidemic, man," said Ahab from the bulwarks, to +Captain Mayhew, who stood in the boat's stern; "come on board." + +But now Gabriel started to his feet. + +"Think, think of the fevers, yellow and bilious! Beware of the +horrible plague!" + +"Gabriel! Gabriel!" cried Captain Mayhew; "thou must either--" But +that instant a headlong wave shot the boat far ahead, and its +seethings drowned all speech. + +"Hast thou seen the White Whale?" demanded Ahab, when the boat +drifted back. + +"Think, think of thy whale-boat, stoven and sunk! Beware of the +horrible tail!" + +"I tell thee again, Gabriel, that--" But again the boat tore ahead +as if dragged by fiends. Nothing was said for some moments, while a +succession of riotous waves rolled by, which by one of those +occasional caprices of the seas were tumbling, not heaving it. +Meantime, the hoisted sperm whale's head jogged about very violently, +and Gabriel was seen eyeing it with rather more apprehensiveness than +his archangel nature seemed to warrant. + +When this interlude was over, Captain Mayhew began a dark story +concerning Moby Dick; not, however, without frequent interruptions +from Gabriel, whenever his name was mentioned, and the crazy sea that +seemed leagued with him. + +It seemed that the Jeroboam had not long left home, when upon +speaking a whale-ship, her people were reliably apprised of the +existence of Moby Dick, and the havoc he had made. Greedily sucking +in this intelligence, Gabriel solemnly warned the captain against +attacking the White Whale, in case the monster should be seen; in his +gibbering insanity, pronouncing the White Whale to be no less a being +than the Shaker God incarnated; the Shakers receiving the Bible. But +when, some year or two afterwards, Moby Dick was fairly sighted from +the mast-heads, Macey, the chief mate, burned with ardour to encounter +him; and the captain himself being not unwilling to let him have the +opportunity, despite all the archangel's denunciations and +forewarnings, Macey succeeded in persuading five men to man his boat. +With them he pushed off; and, after much weary pulling, and many +perilous, unsuccessful onsets, he at last succeeded in getting one +iron fast. Meantime, Gabriel, ascending to the main-royal mast-head, +was tossing one arm in frantic gestures, and hurling forth prophecies +of speedy doom to the sacrilegious assailants of his divinity. Now, +while Macey, the mate, was standing up in his boat's bow, and with +all the reckless energy of his tribe was venting his wild +exclamations upon the whale, and essaying to get a fair chance for +his poised lance, lo! a broad white shadow rose from the sea; by its +quick, fanning motion, temporarily taking the breath out of the +bodies of the oarsmen. Next instant, the luckless mate, so full of +furious life, was smitten bodily into the air, and making a long arc +in his descent, fell into the sea at the distance of about fifty +yards. Not a chip of the boat was harmed, nor a hair of any +oarsman's head; but the mate for ever sank. + +It is well to parenthesize here, that of the fatal accidents in the +Sperm-Whale Fishery, this kind is perhaps almost as frequent as any. +Sometimes, nothing is injured but the man who is thus annihilated; +oftener the boat's bow is knocked off, or the thigh-board, in which +the headsman stands, is torn from its place and accompanies the body. +But strangest of all is the circumstance, that in more instances +than one, when the body has been recovered, not a single mark of +violence is discernible; the man being stark dead. + +The whole calamity, with the falling form of Macey, was plainly +descried from the ship. Raising a piercing shriek--"The vial! the +vial!" Gabriel called off the terror-stricken crew from the further +hunting of the whale. This terrible event clothed the archangel with +added influence; because his credulous disciples believed that he had +specifically fore-announced it, instead of only making a general +prophecy, which any one might have done, and so have chanced to hit +one of many marks in the wide margin allowed. He became a nameless +terror to the ship. + +Mayhew having concluded his narration, Ahab put such questions to +him, that the stranger captain could not forbear inquiring whether he +intended to hunt the White Whale, if opportunity should offer. To +which Ahab answered--"Aye." Straightway, then, Gabriel once more +started to his feet, glaring upon the old man, and vehemently +exclaimed, with downward pointed finger--"Think, think of the +blasphemer--dead, and down there!--beware of the blasphemer's end!" + +Ahab stolidly turned aside; then said to Mayhew, "Captain, I have +just bethought me of my letter-bag; there is a letter for one of thy +officers, if I mistake not. Starbuck, look over the bag." + +Every whale-ship takes out a goodly number of letters for various +ships, whose delivery to the persons to whom they may be addressed, +depends upon the mere chance of encountering them in the four oceans. +Thus, most letters never reach their mark; and many are only +received after attaining an age of two or three years or more. + +Soon Starbuck returned with a letter in his hand. It was sorely +tumbled, damp, and covered with a dull, spotted, green mould, in +consequence of being kept in a dark locker of the cabin. Of such a +letter, Death himself might well have been the post-boy. + +"Can'st not read it?" cried Ahab. "Give it me, man. Aye, aye, it's +but a dim scrawl;--what's this?" As he was studying it out, Starbuck +took a long cutting-spade pole, and with his knife slightly split the +end, to insert the letter there, and in that way, hand it to the +boat, without its coming any closer to the ship. + +Meantime, Ahab holding the letter, muttered, "Mr. Har--yes, Mr. +Harry--(a woman's pinny hand,--the man's wife, I'll wager)--Aye--Mr. +Harry Macey, Ship Jeroboam;--why it's Macey, and he's dead!" + +"Poor fellow! poor fellow! and from his wife," sighed Mayhew; "but +let me have it." + +"Nay, keep it thyself," cried Gabriel to Ahab; "thou art soon going +that way." + +"Curses throttle thee!" yelled Ahab. "Captain Mayhew, stand by now +to receive it"; and taking the fatal missive from Starbuck's hands, +he caught it in the slit of the pole, and reached it over towards the +boat. But as he did so, the oarsmen expectantly desisted from +rowing; the boat drifted a little towards the ship's stern; so that, +as if by magic, the letter suddenly ranged along with Gabriel's eager +hand. He clutched it in an instant, seized the boat-knife, and +impaling the letter on it, sent it thus loaded back into the ship. +It fell at Ahab's feet. Then Gabriel shrieked out to his comrades to +give way with their oars, and in that manner the mutinous boat +rapidly shot away from the Pequod. + +As, after this interlude, the seamen resumed their work upon the +jacket of the whale, many strange things were hinted in reference to +this wild affair. + + + +CHAPTER 72 + +The Monkey-Rope. + + +In the tumultuous business of cutting-in and attending to a whale, +there is much running backwards and forwards among the crew. Now +hands are wanted here, and then again hands are wanted there. There +is no staying in any one place; for at one and the same time +everything has to be done everywhere. It is much the same with him +who endeavors the description of the scene. We must now retrace our +way a little. It was mentioned that upon first breaking ground in +the whale's back, the blubber-hook was inserted into the original +hole there cut by the spades of the mates. But how did so clumsy and +weighty a mass as that same hook get fixed in that hole? It was +inserted there by my particular friend Queequeg, whose duty it was, +as harpooneer, to descend upon the monster's back for the special +purpose referred to. But in very many cases, circumstances require +that the harpooneer shall remain on the whale till the whole tensing +or stripping operation is concluded. The whale, be it observed, lies +almost entirely submerged, excepting the immediate parts operated +upon. So down there, some ten feet below the level of the deck, the +poor harpooneer flounders about, half on the whale and half in the +water, as the vast mass revolves like a tread-mill beneath him. On +the occasion in question, Queequeg figured in the Highland costume--a +shirt and socks--in which to my eyes, at least, he appeared to +uncommon advantage; and no one had a better chance to observe him, as +will presently be seen. + +Being the savage's bowsman, that is, the person who pulled the +bow-oar in his boat (the second one from forward), it was my cheerful +duty to attend upon him while taking that hard-scrabble scramble upon +the dead whale's back. You have seen Italian organ-boys holding a +dancing-ape by a long cord. Just so, from the ship's steep side, did +I hold Queequeg down there in the sea, by what is technically called +in the fishery a monkey-rope, attached to a strong strip of canvas +belted round his waist. + +It was a humorously perilous business for both of us. For, before we +proceed further, it must be said that the monkey-rope was fast at +both ends; fast to Queequeg's broad canvas belt, and fast to my +narrow leather one. So that for better or for worse, we two, for the +time, were wedded; and should poor Queequeg sink to rise no more, +then both usage and honour demanded, that instead of cutting the cord, +it should drag me down in his wake. So, then, an elongated Siamese +ligature united us. Queequeg was my own inseparable twin brother; +nor could I any way get rid of the dangerous liabilities which the +hempen bond entailed. + +So strongly and metaphysically did I conceive of my situation then, +that while earnestly watching his motions, I seemed distinctly to +perceive that my own individuality was now merged in a joint stock +company of two; that my free will had received a mortal wound; and +that another's mistake or misfortune might plunge innocent me into +unmerited disaster and death. Therefore, I saw that here was a sort +of interregnum in Providence; for its even-handed equity never could +have so gross an injustice. And yet still further pondering--while I +jerked him now and then from between the whale and ship, which would +threaten to jam him--still further pondering, I say, I saw that this +situation of mine was the precise situation of every mortal that +breathes; only, in most cases, he, one way or other, has this Siamese +connexion with a plurality of other mortals. If your banker breaks, +you snap; if your apothecary by mistake sends you poison in your +pills, you die. True, you may say that, by exceeding caution, you +may possibly escape these and the multitudinous other evil chances of +life. But handle Queequeg's monkey-rope heedfully as I would, +sometimes he jerked it so, that I came very near sliding overboard. +Nor could I possibly forget that, do what I would, I only had the +management of one end of it.* + + +*The monkey-rope is found in all whalers; but it was only in the +Pequod that the monkey and his holder were ever tied together. This +improvement upon the original usage was introduced by no less a man +than Stubb, in order to afford the imperilled harpooneer the strongest +possible guarantee for the faithfulness and vigilance of his +monkey-rope holder. + + +I have hinted that I would often jerk poor Queequeg from between the +whale and the ship--where he would occasionally fall, from the +incessant rolling and swaying of both. But this was not the only +jamming jeopardy he was exposed to. Unappalled by the massacre made +upon them during the night, the sharks now freshly and more keenly +allured by the before pent blood which began to flow from the +carcass--the rabid creatures swarmed round it like bees in a beehive. + +And right in among those sharks was Queequeg; who often pushed them +aside with his floundering feet. A thing altogether incredible were +it not that attracted by such prey as a dead whale, the otherwise +miscellaneously carnivorous shark will seldom touch a man. + +Nevertheless, it may well be believed that since they have such a +ravenous finger in the pie, it is deemed but wise to look sharp to +them. Accordingly, besides the monkey-rope, with which I now and +then jerked the poor fellow from too close a vicinity to the maw of +what seemed a peculiarly ferocious shark--he was provided with still +another protection. Suspended over the side in one of the stages, +Tashtego and Daggoo continually flourished over his head a couple of +keen whale-spades, wherewith they slaughtered as many sharks as they +could reach. This procedure of theirs, to be sure, was very +disinterested and benevolent of them. They meant Queequeg's best +happiness, I admit; but in their hasty zeal to befriend him, and from +the circumstance that both he and the sharks were at times half +hidden by the blood-muddled water, those indiscreet spades of theirs +would come nearer amputating a leg than a tall. But poor Queequeg, I +suppose, straining and gasping there with that great iron hook--poor +Queequeg, I suppose, only prayed to his Yojo, and gave up his life +into the hands of his gods. + +Well, well, my dear comrade and twin-brother, thought I, as I drew in +and then slacked off the rope to every swell of the sea--what matters +it, after all? Are you not the precious image of each and all of us +men in this whaling world? That unsounded ocean you gasp in, is +Life; those sharks, your foes; those spades, your friends; and what +between sharks and spades you are in a sad pickle and peril, poor +lad. + +But courage! there is good cheer in store for you, Queequeg. For +now, as with blue lips and blood-shot eyes the exhausted savage at +last climbs up the chains and stands all dripping and involuntarily +trembling over the side; the steward advances, and with a benevolent, +consolatory glance hands him--what? Some hot Cognac? No! hands him, +ye gods! hands him a cup of tepid ginger and water! + +"Ginger? Do I smell ginger?" suspiciously asked Stubb, coming near. +"Yes, this must be ginger," peering into the as yet untasted cup. +Then standing as if incredulous for a while, he calmly walked towards +the astonished steward slowly saying, "Ginger? ginger? and will you +have the goodness to tell me, Mr. Dough-Boy, where lies the virtue of +ginger? Ginger! is ginger the sort of fuel you use, Dough-boy, to +kindle a fire in this shivering cannibal? Ginger!--what the devil is +ginger?--sea-coal? firewood?--lucifer +matches?--tinder?--gunpowder?--what the devil is ginger, I say, that +you offer this cup to our poor Queequeg here." + +"There is some sneaking Temperance Society movement about this +business," he suddenly added, now approaching Starbuck, who had just +come from forward. "Will you look at that kannakin, sir; smell of +it, if you please." Then watching the mate's countenance, he added, +"The steward, Mr. Starbuck, had the face to offer that calomel and +jalap to Queequeg, there, this instant off the whale. Is the steward +an apothecary, sir? and may I ask whether this is the sort of bitters +by which he blows back the life into a half-drowned man?" + +"I trust not," said Starbuck, "it is poor stuff enough." + +"Aye, aye, steward," cried Stubb, "we'll teach you to drug it +harpooneer; none of your apothecary's medicine here; you want to +poison us, do ye? You have got out insurances on our lives and want +to murder us all, and pocket the proceeds, do ye?" + +"It was not me," cried Dough-Boy, "it was Aunt Charity that brought +the ginger on board; and bade me never give the harpooneers any +spirits, but only this ginger-jub--so she called it." + +"Ginger-jub! you gingerly rascal! take that! and run along with ye to +the lockers, and get something better. I hope I do no wrong, Mr. +Starbuck. It is the captain's orders--grog for the harpooneer on a +whale." + +"Enough," replied Starbuck, "only don't hit him again, but--" + +"Oh, I never hurt when I hit, except when I hit a whale or something +of that sort; and this fellow's a weazel. What were you about +saying, sir?" + +"Only this: go down with him, and get what thou wantest thyself." + +When Stubb reappeared, he came with a dark flask in one hand, and a +sort of tea-caddy in the other. The first contained strong spirits, +and was handed to Queequeg; the second was Aunt Charity's gift, and +that was freely given to the waves. + + + +CHAPTER 73 + +Stubb and Flask Kill a Right Whale; and Then Have a Talk Over Him. + + +It must be borne in mind that all this time we have a Sperm Whale's +prodigious head hanging to the Pequod's side. But we must let it +continue hanging there a while till we can get a chance to attend to +it. For the present other matters press, and the best we can do now +for the head, is to pray heaven the tackles may hold. + +Now, during the past night and forenoon, the Pequod had gradually +drifted into a sea, which, by its occasional patches of yellow brit, +gave unusual tokens of the vicinity of Right Whales, a species of the +Leviathan that but few supposed to be at this particular time lurking +anywhere near. And though all hands commonly disdained the capture +of those inferior creatures; and though the Pequod was not +commissioned to cruise for them at all, and though she had passed +numbers of them near the Crozetts without lowering a boat; yet now +that a Sperm Whale had been brought alongside and beheaded, to the +surprise of all, the announcement was made that a Right Whale should +be captured that day, if opportunity offered. + +Nor was this long wanting. Tall spouts were seen to leeward; and two +boats, Stubb's and Flask's, were detached in pursuit. Pulling +further and further away, they at last became almost invisible to the +men at the mast-head. But suddenly in the distance, they saw a great +heap of tumultuous white water, and soon after news came from aloft +that one or both the boats must be fast. An interval passed and the +boats were in plain sight, in the act of being dragged right towards +the ship by the towing whale. So close did the monster come to the +hull, that at first it seemed as if he meant it malice; but suddenly +going down in a maelstrom, within three rods of the planks, he wholly +disappeared from view, as if diving under the keel. "Cut, cut!" was +the cry from the ship to the boats, which, for one instant, seemed on +the point of being brought with a deadly dash against the vessel's +side. But having plenty of line yet in the tubs, and the whale not +sounding very rapidly, they paid out abundance of rope, and at the +same time pulled with all their might so as to get ahead of the ship. +For a few minutes the struggle was intensely critical; for while +they still slacked out the tightened line in one direction, and still +plied their oars in another, the contending strain threatened to take +them under. But it was only a few feet advance they sought to gain. +And they stuck to it till they did gain it; when instantly, a swift +tremor was felt running like lightning along the keel, as the +strained line, scraping beneath the ship, suddenly rose to view under +her bows, snapping and quivering; and so flinging off its drippings, +that the drops fell like bits of broken glass on the water, while the +whale beyond also rose to sight, and once more the boats were free to +fly. But the fagged whale abated his speed, and blindly altering his +course, went round the stern of the ship towing the two boats after +him, so that they performed a complete circuit. + +Meantime, they hauled more and more upon their lines, till close +flanking him on both sides, Stubb answered Flask with lance for +lance; and thus round and round the Pequod the battle went, while the +multitudes of sharks that had before swum round the Sperm Whale's +body, rushed to the fresh blood that was spilled, thirstily drinking +at every new gash, as the eager Israelites did at the new bursting +fountains that poured from the smitten rock. + +At last his spout grew thick, and with a frightful roll and vomit, he +turned upon his back a corpse. + +While the two headsmen were engaged in making fast cords to his +flukes, and in other ways getting the mass in readiness for towing, +some conversation ensued between them. + +"I wonder what the old man wants with this lump of foul lard," said +Stubb, not without some disgust at the thought of having to do with +so ignoble a leviathan. + +"Wants with it?" said Flask, coiling some spare line in the boat's +bow, "did you never hear that the ship which but once has a Sperm +Whale's head hoisted on her starboard side, and at the same time a +Right Whale's on the larboard; did you never hear, Stubb, that that +ship can never afterwards capsize?" + +"Why not? + +"I don't know, but I heard that gamboge ghost of a Fedallah saying +so, and he seems to know all about ships' charms. But I sometimes +think he'll charm the ship to no good at last. I don't half like +that chap, Stubb. Did you ever notice how that tusk of his is a sort +of carved into a snake's head, Stubb?" + +"Sink him! I never look at him at all; but if ever I get a chance of +a dark night, and he standing hard by the bulwarks, and no one by; +look down there, Flask"--pointing into the sea with a peculiar motion +of both hands--"Aye, will I! Flask, I take that Fedallah to be the +devil in disguise. Do you believe that cock and bull story about his +having been stowed away on board ship? He's the devil, I say. The +reason why you don't see his tail, is because he tucks it up out of +sight; he carries it coiled away in his pocket, I guess. Blast him! +now that I think of it, he's always wanting oakum to stuff into the +toes of his boots." + +"He sleeps in his boots, don't he? He hasn't got any hammock; but +I've seen him lay of nights in a coil of rigging." + +"No doubt, and it's because of his cursed tail; he coils it down, do +ye see, in the eye of the rigging." + +"What's the old man have so much to do with him for?" + +"Striking up a swap or a bargain, I suppose." + +"Bargain?--about what?" + +"Why, do ye see, the old man is hard bent after that White Whale, and +the devil there is trying to come round him, and get him to swap away +his silver watch, or his soul, or something of that sort, and then +he'll surrender Moby Dick." + +"Pooh! Stubb, you are skylarking; how can Fedallah do that?" + +"I don't know, Flask, but the devil is a curious chap, and a wicked +one, I tell ye. Why, they say as how he went a sauntering into the +old flag-ship once, switching his tail about devilish easy and +gentlemanlike, and inquiring if the old governor was at home. Well, +he was at home, and asked the devil what he wanted. The devil, +switching his hoofs, up and says, 'I want John.' 'What for?' says +the old governor. 'What business is that of yours,' says the devil, +getting mad,--'I want to use him.' 'Take him,' says the +governor--and by the Lord, Flask, if the devil didn't give John the +Asiatic cholera before he got through with him, I'll eat this whale +in one mouthful. But look sharp--ain't you all ready there? Well, +then, pull ahead, and let's get the whale alongside." + +"I think I remember some such story as you were telling," said Flask, +when at last the two boats were slowly advancing with their burden +towards the ship, "but I can't remember where." + +"Three Spaniards? Adventures of those three bloody-minded soladoes? +Did ye read it there, Flask? I guess ye did?" + +"No: never saw such a book; heard of it, though. But now, tell me, +Stubb, do you suppose that that devil you was speaking of just now, +was the same you say is now on board the Pequod?" + +"Am I the same man that helped kill this whale? Doesn't the devil +live for ever; who ever heard that the devil was dead? Did you ever +see any parson a wearing mourning for the devil? And if the devil +has a latch-key to get into the admiral's cabin, don't you suppose he +can crawl into a porthole? Tell me that, Mr. Flask?" + +"How old do you suppose Fedallah is, Stubb?" + +"Do you see that mainmast there?" pointing to the ship; "well, that's +the figure one; now take all the hoops in the Pequod's hold, and +string along in a row with that mast, for oughts, do you see; well, +that wouldn't begin to be Fedallah's age. Nor all the coopers in +creation couldn't show hoops enough to make oughts enough." + +"But see here, Stubb, I thought you a little boasted just now, that +you meant to give Fedallah a sea-toss, if you got a good chance. +Now, if he's so old as all those hoops of yours come to, and if he is +going to live for ever, what good will it do to pitch him +overboard--tell me that? + +"Give him a good ducking, anyhow." + +"But he'd crawl back." + +"Duck him again; and keep ducking him." + +"Suppose he should take it into his head to duck you, though--yes, +and drown you--what then?" + +"I should like to see him try it; I'd give him such a pair of black +eyes that he wouldn't dare to show his face in the admiral's cabin +again for a long while, let alone down in the orlop there, where he +lives, and hereabouts on the upper decks where he sneaks so much. +Damn the devil, Flask; so you suppose I'm afraid of the devil? Who's +afraid of him, except the old governor who daresn't catch him and put +him in double-darbies, as he deserves, but lets him go about +kidnapping people; aye, and signed a bond with him, that all the +people the devil kidnapped, he'd roast for him? There's a governor!" + +"Do you suppose Fedallah wants to kidnap Captain Ahab?" + +"Do I suppose it? You'll know it before long, Flask. But I am going +now to keep a sharp look-out on him; and if I see anything very +suspicious going on, I'll just take him by the nape of his neck, and +say--Look here, Beelzebub, you don't do it; and if he makes any fuss, +by the Lord I'll make a grab into his pocket for his tail, take it to +the capstan, and give him such a wrenching and heaving, that his tail +will come short off at the stump--do you see; and then, I rather +guess when he finds himself docked in that queer fashion, he'll sneak +off without the poor satisfaction of feeling his tail between his +legs." + +"And what will you do with the tail, Stubb?" + +"Do with it? Sell it for an ox whip when we get home;--what else?" + +"Now, do you mean what you say, and have been saying all along, +Stubb?" + +"Mean or not mean, here we are at the ship." + +The boats were here hailed, to tow the whale on the larboard side, +where fluke chains and other necessaries were already prepared for +securing him. + +"Didn't I tell you so?" said Flask; "yes, you'll soon see this right +whale's head hoisted up opposite that parmacetti's." + +In good time, Flask's saying proved true. As before, the Pequod +steeply leaned over towards the sperm whale's head, now, by the +counterpoise of both heads, she regained her even keel; though sorely +strained, you may well believe. So, when on one side you hoist in +Locke's head, you go over that way; but now, on the other side, hoist +in Kant's and you come back again; but in very poor plight. Thus, +some minds for ever keep trimming boat. Oh, ye foolish! throw all +these thunder-heads overboard, and then you will float light and +right. + +In disposing of the body of a right whale, when brought alongside the +ship, the same preliminary proceedings commonly take place as in the +case of a sperm whale; only, in the latter instance, the head is cut +off whole, but in the former the lips and tongue are separately +removed and hoisted on deck, with all the well known black bone +attached to what is called the crown-piece. But nothing like this, +in the present case, had been done. The carcases of both whales had +dropped astern; and the head-laden ship not a little resembled a mule +carrying a pair of overburdening panniers. + +Meantime, Fedallah was calmly eyeing the right whale's head, and ever +and anon glancing from the deep wrinkles there to the lines in his +own hand. And Ahab chanced so to stand, that the Parsee occupied his +shadow; while, if the Parsee's shadow was there at all it seemed only +to blend with, and lengthen Ahab's. As the crew toiled on, +Laplandish speculations were bandied among them, concerning all these +passing things. + + + +CHAPTER 74 + +The Sperm Whale's Head--Contrasted View. + + +Here, now, are two great whales, laying their heads together; let us +join them, and lay together our own. + +Of the grand order of folio leviathans, the Sperm Whale and the Right +Whale are by far the most noteworthy. They are the only whales +regularly hunted by man. To the Nantucketer, they present the two +extremes of all the known varieties of the whale. As the external +difference between them is mainly observable in their heads; and as a +head of each is this moment hanging from the Pequod's side; and as we +may freely go from one to the other, by merely stepping across the +deck:--where, I should like to know, will you obtain a better chance +to study practical cetology than here? + +In the first place, you are struck by the general contrast between +these heads. Both are massive enough in all conscience; but there +is a certain mathematical symmetry in the Sperm Whale's which the +Right Whale's sadly lacks. There is more character in the Sperm +Whale's head. As you behold it, you involuntarily yield the immense +superiority to him, in point of pervading dignity. In the present +instance, too, this dignity is heightened by the pepper and salt +colour of his head at the summit, giving token of advanced age and +large experience. In short, he is what the fishermen technically +call a "grey-headed whale." + +Let us now note what is least dissimilar in these heads--namely, the +two most important organs, the eye and the ear. Far back on the side +of the head, and low down, near the angle of either whale's jaw, if +you narrowly search, you will at last see a lashless eye, which you +would fancy to be a young colt's eye; so out of all proportion is it +to the magnitude of the head. + +Now, from this peculiar sideway position of the whale's eyes, it is +plain that he can never see an object which is exactly ahead, no more +than he can one exactly astern. In a word, the position of the +whale's eyes corresponds to that of a man's ears; and you may fancy, +for yourself, how it would fare with you, did you sideways survey +objects through your ears. You would find that you could only +command some thirty degrees of vision in advance of the straight +side-line of sight; and about thirty more behind it. If your +bitterest foe were walking straight towards you, with dagger uplifted +in broad day, you would not be able to see him, any more than if he +were stealing upon you from behind. In a word, you would have two +backs, so to speak; but, at the same time, also, two fronts (side +fronts): for what is it that makes the front of a man--what, indeed, +but his eyes? + +Moreover, while in most other animals that I can now think of, the +eyes are so planted as imperceptibly to blend their visual power, so +as to produce one picture and not two to the brain; the peculiar +position of the whale's eyes, effectually divided as they are by many +cubic feet of solid head, which towers between them like a great +mountain separating two lakes in valleys; this, of course, must +wholly separate the impressions which each independent organ imparts. +The whale, therefore, must see one distinct picture on this side, +and another distinct picture on that side; while all between must be +profound darkness and nothingness to him. Man may, in effect, be +said to look out on the world from a sentry-box with two joined +sashes for his window. But with the whale, these two sashes are +separately inserted, making two distinct windows, but sadly impairing +the view. This peculiarity of the whale's eyes is a thing always to +be borne in mind in the fishery; and to be remembered by the reader +in some subsequent scenes. + +A curious and most puzzling question might be started concerning this +visual matter as touching the Leviathan. But I must be content with +a hint. So long as a man's eyes are open in the light, the act of +seeing is involuntary; that is, he cannot then help mechanically +seeing whatever objects are before him. Nevertheless, any one's +experience will teach him, that though he can take in an +undiscriminating sweep of things at one glance, it is quite +impossible for him, attentively, and completely, to examine any two +things--however large or however small--at one and the same instant +of time; never mind if they lie side by side and touch each other. +But if you now come to separate these two objects, and surround each +by a circle of profound darkness; then, in order to see one of them, +in such a manner as to bring your mind to bear on it, the other will +be utterly excluded from your contemporary consciousness. How is it, +then, with the whale? True, both his eyes, in themselves, must +simultaneously act; but is his brain so much more comprehensive, +combining, and subtle than man's, that he can at the same moment of +time attentively examine two distinct prospects, one on one side of +him, and the other in an exactly opposite direction? If he can, then +is it as marvellous a thing in him, as if a man were able +simultaneously to go through the demonstrations of two distinct +problems in Euclid. Nor, strictly investigated, is there any +incongruity in this comparison. + +It may be but an idle whim, but it has always seemed to me, that the +extraordinary vacillations of movement displayed by some whales when +beset by three or four boats; the timidity and liability to queer +frights, so common to such whales; I think that all this indirectly +proceeds from the helpless perplexity of volition, in which their +divided and diametrically opposite powers of vision must involve +them. + +But the ear of the whale is full as curious as the eye. If you are +an entire stranger to their race, you might hunt over these two heads +for hours, and never discover that organ. The ear has no external +leaf whatever; and into the hole itself you can hardly insert a +quill, so wondrously minute is it. It is lodged a little behind the +eye. With respect to their ears, this important difference is to be +observed between the sperm whale and the right. While the ear of +the former has an external opening, that of the latter is entirely +and evenly covered over with a membrane, so as to be quite +imperceptible from without. + +Is it not curious, that so vast a being as the whale should see the +world through so small an eye, and hear the thunder through an ear +which is smaller than a hare's? But if his eyes were broad as the +lens of Herschel's great telescope; and his ears capacious as the +porches of cathedrals; would that make him any longer of sight, or +sharper of hearing? Not at all.--Why then do you try to "enlarge" +your mind? Subtilize it. + +Let us now with whatever levers and steam-engines we have at hand, +cant over the sperm whale's head, that it may lie bottom up; +then, ascending by a ladder to the summit, have a peep down the +mouth; and were it not that the body is now completely separated from +it, with a lantern we might descend into the great Kentucky Mammoth +Cave of his stomach. But let us hold on here by this tooth, and look +about us where we are. What a really beautiful and chaste-looking +mouth! from floor to ceiling, lined, or rather papered with a +glistening white membrane, glossy as bridal satins. + +But come out now, and look at this portentous lower jaw, which seems +like the long narrow lid of an immense snuff-box, with the hinge at +one end, instead of one side. If you pry it up, so as to get it +overhead, and expose its rows of teeth, it seems a terrific +portcullis; and such, alas! it proves to many a poor wight in the +fishery, upon whom these spikes fall with impaling force. But far +more terrible is it to behold, when fathoms down in the sea, you see +some sulky whale, floating there suspended, with his prodigious jaw, +some fifteen feet long, hanging straight down at right-angles with +his body, for all the world like a ship's jib-boom. This whale is +not dead; he is only dispirited; out of sorts, perhaps; +hypochondriac; and so supine, that the hinges of his jaw have +relaxed, leaving him there in that ungainly sort of plight, a +reproach to all his tribe, who must, no doubt, imprecate lock-jaws +upon him. + +In most cases this lower jaw--being easily unhinged by a practised +artist--is disengaged and hoisted on deck for the purpose of +extracting the ivory teeth, and furnishing a supply of that hard +white whalebone with which the fishermen fashion all sorts of curious +articles, including canes, umbrella-stocks, and handles to +riding-whips. + +With a long, weary hoist the jaw is dragged on board, as if it were +an anchor; and when the proper time comes--some few days after the +other work--Queequeg, Daggoo, and Tashtego, being all accomplished +dentists, are set to drawing teeth. With a keen cutting-spade, +Queequeg lances the gums; then the jaw is lashed down to ringbolts, +and a tackle being rigged from aloft, they drag out these teeth, as +Michigan oxen drag stumps of old oaks out of wild wood lands. There +are generally forty-two teeth in all; in old whales, much worn down, +but undecayed; nor filled after our artificial fashion. The jaw is +afterwards sawn into slabs, and piled away like joists for building +houses. + + + +CHAPTER 75 + +The Right Whale's Head--Contrasted View. + + +Crossing the deck, let us now have a good long look at the Right +Whale's head. + +As in general shape the noble Sperm Whale's head may be compared to a +Roman war-chariot (especially in front, where it is so broadly +rounded); so, at a broad view, the Right Whale's head bears a rather +inelegant resemblance to a gigantic galliot-toed shoe. Two hundred +years ago an old Dutch voyager likened its shape to that of a +shoemaker's last. And in this same last or shoe, that old woman of +the nursery tale, with the swarming brood, might very comfortably be +lodged, she and all her progeny. + +But as you come nearer to this great head it begins to assume +different aspects, according to your point of view. If you stand on +its summit and look at these two F-shaped spoutholes, you would take +the whole head for an enormous bass-viol, and these spiracles, the +apertures in its sounding-board. Then, again, if you fix your eye +upon this strange, crested, comb-like incrustation on the top of the +mass--this green, barnacled thing, which the Greenlanders call the +"crown," and the Southern fishers the "bonnet" of the Right Whale; +fixing your eyes solely on this, you would take the head for the +trunk of some huge oak, with a bird's nest in its crotch. At any +rate, when you watch those live crabs that nestle here on this +bonnet, such an idea will be almost sure to occur to you; unless, +indeed, your fancy has been fixed by the technical term "crown" also +bestowed upon it; in which case you will take great interest in +thinking how this mighty monster is actually a diademed king of the +sea, whose green crown has been put together for him in this +marvellous manner. But if this whale be a king, he is a very sulky +looking fellow to grace a diadem. Look at that hanging lower lip! +what a huge sulk and pout is there! a sulk and pout, by carpenter's +measurement, about twenty feet long and five feet deep; a sulk and +pout that will yield you some 500 gallons of oil and more. + +A great pity, now, that this unfortunate whale should be hare-lipped. +The fissure is about a foot across. Probably the mother during an +important interval was sailing down the Peruvian coast, when +earthquakes caused the beach to gape. Over this lip, as over a +slippery threshold, we now slide into the mouth. Upon my word were I +at Mackinaw, I should take this to be the inside of an Indian wigwam. +Good Lord! is this the road that Jonah went? The roof is about +twelve feet high, and runs to a pretty sharp angle, as if there were +a regular ridge-pole there; while these ribbed, arched, hairy sides, +present us with those wondrous, half vertical, scimetar-shaped slats +of whalebone, say three hundred on a side, which depending from the +upper part of the head or crown bone, form those Venetian blinds +which have elsewhere been cursorily mentioned. The edges of these +bones are fringed with hairy fibres, through which the Right Whale +strains the water, and in whose intricacies he retains the small +fish, when openmouthed he goes through the seas of brit in feeding +time. In the central blinds of bone, as they stand in their natural +order, there are certain curious marks, curves, hollows, and ridges, +whereby some whalemen calculate the creature's age, as the age of an +oak by its circular rings. Though the certainty of this criterion is +far from demonstrable, yet it has the savor of analogical +probability. At any rate, if we yield to it, we must grant a far +greater age to the Right Whale than at first glance will seem +reasonable. + +In old times, there seem to have prevailed the most curious fancies +concerning these blinds. One voyager in Purchas calls them the +wondrous "whiskers" inside of the whale's mouth;* another, "hogs' +bristles"; a third old gentleman in Hackluyt uses the following +elegant language: "There are about two hundred and fifty fins growing +on each side of his upper CHOP, which arch over his tongue on each +side of his mouth." + + +*This reminds us that the Right Whale really has a sort of whisker, +or rather a moustache, consisting of a few scattered white hairs on +the upper part of the outer end of the lower jaw. Sometimes these +tufts impart a rather brigandish expression to his otherwise solemn +countenance. + + +As every one knows, these same "hogs' bristles," "fins," "whiskers," +"blinds," or whatever you please, furnish to the ladies their busks +and other stiffening contrivances. But in this particular, the +demand has long been on the decline. It was in Queen Anne's time +that the bone was in its glory, the farthingale being then all the +fashion. And as those ancient dames moved about gaily, though in the +jaws of the whale, as you may say; even so, in a shower, with the +like thoughtlessness, do we nowadays fly under the same jaws for +protection; the umbrella being a tent spread over the same bone. + +But now forget all about blinds and whiskers for a moment, and, +standing in the Right Whale's mouth, look around you afresh. Seeing +all these colonnades of bone so methodically ranged about, would you +not think you were inside of the great Haarlem organ, and gazing +upon its thousand pipes? For a carpet to the organ we have a rug of +the softest Turkey--the tongue, which is glued, as it were, to the +floor of the mouth. It is very fat and tender, and apt to tear in +pieces in hoisting it on deck. This particular tongue now before us; +at a passing glance I should say it was a six-barreler; that is, it +will yield you about that amount of oil. + +Ere this, you must have plainly seen the truth of what I started +with--that the Sperm Whale and the Right Whale have almost entirely +different heads. To sum up, then: in the Right Whale's there is no +great well of sperm; no ivory teeth at all; no long, slender mandible +of a lower jaw, like the Sperm Whale's. Nor in the Sperm Whale are +there any of those blinds of bone; no huge lower lip; and scarcely +anything of a tongue. Again, the Right Whale has two external +spout-holes, the Sperm Whale only one. + +Look your last, now, on these venerable hooded heads, while they yet +lie together; for one will soon sink, unrecorded, in the sea; the +other will not be very long in following. + +Can you catch the expression of the Sperm Whale's there? It is the +same he died with, only some of the longer wrinkles in the forehead +seem now faded away. I think his broad brow to be full of a +prairie-like placidity, born of a speculative indifference as to +death. But mark the other head's expression. See that amazing lower +lip, pressed by accident against the vessel's side, so as firmly to +embrace the jaw. Does not this whole head seem to speak of an +enormous practical resolution in facing death? This Right Whale I +take to have been a Stoic; the Sperm Whale, a Platonian, who might +have taken up Spinoza in his latter years. + + + +CHAPTER 76 + +The Battering-Ram. + + +Ere quitting, for the nonce, the Sperm Whale's head, I would have +you, as a sensible physiologist, simply--particularly remark its +front aspect, in all its compacted collectedness. I would have you +investigate it now with the sole view of forming to yourself some +unexaggerated, intelligent estimate of whatever battering-ram power +may be lodged there. Here is a vital point; for you must either +satisfactorily settle this matter with yourself, or for ever remain +an infidel as to one of the most appalling, but not the less true +events, perhaps anywhere to be found in all recorded history. + +You observe that in the ordinary swimming position of the Sperm +Whale, the front of his head presents an almost wholly vertical plane +to the water; you observe that the lower part of that front slopes +considerably backwards, so as to furnish more of a retreat for the +long socket which receives the boom-like lower jaw; you observe that +the mouth is entirely under the head, much in the same way, indeed, +as though your own mouth were entirely under your chin. Moreover you +observe that the whale has no external nose; and that what nose he +has--his spout hole--is on the top of his head; you observe that his +eyes and ears are at the sides of his head, nearly one third of his +entire length from the front. Wherefore, you must now have perceived +that the front of the Sperm Whale's head is a dead, blind wall, +without a single organ or tender prominence of any sort whatsoever. +Furthermore, you are now to consider that only in the extreme, lower, +backward sloping part of the front of the head, is there the +slightest vestige of bone; and not till you get near twenty feet from +the forehead do you come to the full cranial development. So that +this whole enormous boneless mass is as one wad. Finally, though, as +will soon be revealed, its contents partly comprise the most delicate +oil; yet, you are now to be apprised of the nature of the substance +which so impregnably invests all that apparent effeminacy. In some +previous place I have described to you how the blubber wraps the body +of the whale, as the rind wraps an orange. Just so with the head; +but with this difference: about the head this envelope, though not so +thick, is of a boneless toughness, inestimable by any man who has not +handled it. The severest pointed harpoon, the sharpest lance darted +by the strongest human arm, impotently rebounds from it. It is as +though the forehead of the Sperm Whale were paved with horses' hoofs. +I do not think that any sensation lurks in it. + +Bethink yourself also of another thing. When two large, loaded +Indiamen chance to crowd and crush towards each other in the +docks, what do the sailors do? They do not suspend between them, at +the point of coming contact, any merely hard substance, like iron or +wood. No, they hold there a large, round wad of tow and cork, +enveloped in the thickest and toughest of ox-hide. That bravely and +uninjured takes the jam which would have snapped all their oaken +handspikes and iron crow-bars. By itself this sufficiently +illustrates the obvious fact I drive at. But supplementary to this, +it has hypothetically occurred to me, that as ordinary fish possess +what is called a swimming bladder in them, capable, at will, of +distension or contraction; and as the Sperm Whale, as far as I know, +has no such provision in him; considering, too, the otherwise +inexplicable manner in which he now depresses his head altogether +beneath the surface, and anon swims with it high elevated out of the +water; considering the unobstructed elasticity of its envelope; +considering the unique interior of his head; it has hypothetically +occurred to me, I say, that those mystical lung-celled honeycombs +there may possibly have some hitherto unknown and unsuspected +connexion with the outer air, so as to be susceptible to atmospheric +distension and contraction. If this be so, fancy the +irresistibleness of that might, to which the most impalpable and +destructive of all elements contributes. + +Now, mark. Unerringly impelling this dead, impregnable, uninjurable +wall, and this most buoyant thing within; there swims behind it all a +mass of tremendous life, only to be adequately estimated as piled +wood is--by the cord; and all obedient to one volition, as the +smallest insect. So that when I shall hereafter detail to you all +the specialities and concentrations of potency everywhere lurking in +this expansive monster; when I shall show you some of his more +inconsiderable braining feats; I trust you will have renounced all +ignorant incredulity, and be ready to abide by this; that though the +Sperm Whale stove a passage through the Isthmus of Darien, and mixed +the Atlantic with the Pacific, you would not elevate one hair of your +eye-brow. For unless you own the whale, you are but a provincial and +sentimentalist in Truth. But clear Truth is a thing for salamander +giants only to encounter; how small the chances for the provincials +then? What befell the weakling youth lifting the dread goddess's +veil at Lais? + + + +CHAPTER 77 + +The Great Heidelburgh Tun. + + +Now comes the Baling of the Case. But to comprehend it aright, you +must know something of the curious internal structure of the thing +operated upon. + +Regarding the Sperm Whale's head as a solid oblong, you may, on an +inclined plane, sideways divide it into two quoins,* whereof the +lower is the bony structure, forming the cranium and jaws, and the +upper an unctuous mass wholly free from bones; its broad forward end +forming the expanded vertical apparent forehead of the whale. At the +middle of the forehead horizontally subdivide this upper quoin, and +then you have two almost equal parts, which before were naturally +divided by an internal wall of a thick tendinous substance. + + +*Quoin is not a Euclidean term. It belongs to the pure nautical +mathematics. I know not that it has been defined before. A quoin is +a solid which differs from a wedge in having its sharp end formed by +the steep inclination of one side, instead of the mutual tapering of +both sides. + + +The lower subdivided part, called the junk, is one immense honeycomb +of oil, formed by the crossing and recrossing, into ten thousand +infiltrated cells, of tough elastic white fibres throughout its whole +extent. The upper part, known as the Case, may be regarded as the +great Heidelburgh Tun of the Sperm Whale. And as that famous great +tierce is mystically carved in front, so the whale's vast plaited +forehead forms innumerable strange devices for the emblematical +adornment of his wondrous tun. Moreover, as that of Heidelburgh was +always replenished with the most excellent of the wines of the +Rhenish valleys, so the tun of the whale contains by far the most +precious of all his oily vintages; namely, the highly-prized +spermaceti, in its absolutely pure, limpid, and odoriferous state. +Nor is this precious substance found unalloyed in any other part of +the creature. Though in life it remains perfectly fluid, yet, upon +exposure to the air, after death, it soon begins to concrete; sending +forth beautiful crystalline shoots, as when the first thin delicate +ice is just forming in water. A large whale's case generally yields +about five hundred gallons of sperm, though from unavoidable +circumstances, considerable of it is spilled, leaks, and dribbles +away, or is otherwise irrevocably lost in the ticklish business of +securing what you can. + +I know not with what fine and costly material the Heidelburgh Tun was +coated within, but in superlative richness that coating could not +possibly have compared with the silken pearl-coloured membrane, like +the lining of a fine pelisse, forming the inner surface of the Sperm +Whale's case. + +It will have been seen that the Heidelburgh Tun of the Sperm Whale +embraces the entire length of the entire top of the head; and +since--as has been elsewhere set forth--the head embraces one third +of the whole length of the creature, then setting that length down at +eighty feet for a good sized whale, you have more than twenty-six +feet for the depth of the tun, when it is lengthwise hoisted up and +down against a ship's side. + +As in decapitating the whale, the operator's instrument is brought +close to the spot where an entrance is subsequently forced into the +spermaceti magazine; he has, therefore, to be uncommonly heedful, +lest a careless, untimely stroke should invade the sanctuary and +wastingly let out its invaluable contents. It is this decapitated +end of the head, also, which is at last elevated out of the water, +and retained in that position by the enormous cutting tackles, whose +hempen combinations, on one side, make quite a wilderness of ropes in +that quarter. + +Thus much being said, attend now, I pray you, to that marvellous +and--in this particular instance--almost fatal operation whereby the +Sperm Whale's great Heidelburgh Tun is tapped. + + + +CHAPTER 78 + +Cistern and Buckets. + + +Nimble as a cat, Tashtego mounts aloft; and without altering his +erect posture, runs straight out upon the overhanging mainyard-arm, +to the part where it exactly projects over the hoisted Tun. He has +carried with him a light tackle called a whip, consisting of only two +parts, travelling through a single-sheaved block. Securing this +block, so that it hangs down from the yard-arm, he swings one end of +the rope, till it is caught and firmly held by a hand on deck. +Then, hand-over-hand, down the other part, the Indian drops through +the air, till dexterously he lands on the summit of the head. +There--still high elevated above the rest of the company, to whom he +vivaciously cries--he seems some Turkish Muezzin calling the good +people to prayers from the top of a tower. A short-handled sharp +spade being sent up to him, he diligently searches for the proper +place to begin breaking into the Tun. In this business he proceeds +very heedfully, like a treasure-hunter in some old house, sounding +the walls to find where the gold is masoned in. By the time this +cautious search is over, a stout iron-bound bucket, precisely like a +well-bucket, has been attached to one end of the whip; while the +other end, being stretched across the deck, is there held by two or +three alert hands. These last now hoist the bucket within grasp of +the Indian, to whom another person has reached up a very long pole. +Inserting this pole into the bucket, Tashtego downward guides the +bucket into the Tun, till it entirely disappears; then giving the +word to the seamen at the whip, up comes the bucket again, all +bubbling like a dairy-maid's pail of new milk. Carefully lowered +from its height, the full-freighted vessel is caught by an appointed +hand, and quickly emptied into a large tub. Then remounting aloft, +it again goes through the same round until the deep cistern will +yield no more. Towards the end, Tashtego has to ram his long pole +harder and harder, and deeper and deeper into the Tun, until some +twenty feet of the pole have gone down. + +Now, the people of the Pequod had been baling some time in this way; +several tubs had been filled with the fragrant sperm; when all at +once a queer accident happened. Whether it was that Tashtego, that +wild Indian, was so heedless and reckless as to let go for a moment +his one-handed hold on the great cabled tackles suspending the head; +or whether the place where he stood was so treacherous and oozy; or +whether the Evil One himself would have it to fall out so, without +stating his particular reasons; how it was exactly, there is no +telling now; but, on a sudden, as the eightieth or ninetieth bucket +came suckingly up--my God! poor Tashtego--like the twin reciprocating +bucket in a veritable well, dropped head-foremost down into this +great Tun of Heidelburgh, and with a horrible oily gurgling, went +clean out of sight! + +"Man overboard!" cried Daggoo, who amid the general consternation +first came to his senses. "Swing the bucket this way!" and putting +one foot into it, so as the better to secure his slippery hand-hold +on the whip itself, the hoisters ran him high up to the top of the +head, almost before Tashtego could have reached its interior bottom. +Meantime, there was a terrible tumult. Looking over the side, they +saw the before lifeless head throbbing and heaving just below the +surface of the sea, as if that moment seized with some momentous +idea; whereas it was only the poor Indian unconsciously revealing by +those struggles the perilous depth to which he had sunk. + +At this instant, while Daggoo, on the summit of the head, was +clearing the whip--which had somehow got foul of the great cutting +tackles--a sharp cracking noise was heard; and to the unspeakable +horror of all, one of the two enormous hooks suspending the head tore +out, and with a vast vibration the enormous mass sideways swung, till +the drunk ship reeled and shook as if smitten by an iceberg. The one +remaining hook, upon which the entire strain now depended, seemed +every instant to be on the point of giving way; an event still more +likely from the violent motions of the head. + +"Come down, come down!" yelled the seamen to Daggoo, but with one +hand holding on to the heavy tackles, so that if the head should +drop, he would still remain suspended; the negro having cleared the +foul line, rammed down the bucket into the now collapsed well, +meaning that the buried harpooneer should grasp it, and so be hoisted +out. + +"In heaven's name, man," cried Stubb, "are you ramming home a +cartridge there?--Avast! How will that help him; jamming that +iron-bound bucket on top of his head? Avast, will ye!" + +"Stand clear of the tackle!" cried a voice like the bursting of a +rocket. + +Almost in the same instant, with a thunder-boom, the enormous mass +dropped into the sea, like Niagara's Table-Rock into the whirlpool; +the suddenly relieved hull rolled away from it, to far down her +glittering copper; and all caught their breath, as half swinging--now +over the sailors' heads, and now over the water--Daggoo, through a +thick mist of spray, was dimly beheld clinging to the pendulous +tackles, while poor, buried-alive Tashtego was sinking utterly down +to the bottom of the sea! But hardly had the blinding vapour cleared +away, when a naked figure with a boarding-sword in his hand, was for +one swift moment seen hovering over the bulwarks. The next, a loud +splash announced that my brave Queequeg had dived to the rescue. One +packed rush was made to the side, and every eye counted every ripple, +as moment followed moment, and no sign of either the sinker or the +diver could be seen. Some hands now jumped into a boat alongside, +and pushed a little off from the ship. + +"Ha! ha!" cried Daggoo, all at once, from his now quiet, swinging +perch overhead; and looking further off from the side, we saw an arm +thrust upright from the blue waves; a sight strange to see, as an arm +thrust forth from the grass over a grave. + +"Both! both!--it is both!"--cried Daggoo again with a joyful shout; +and soon after, Queequeg was seen boldly striking out with one hand, +and with the other clutching the long hair of the Indian. Drawn into +the waiting boat, they were quickly brought to the deck; but Tashtego +was long in coming to, and Queequeg did not look very brisk. + +Now, how had this noble rescue been accomplished? Why, diving after +the slowly descending head, Queequeg with his keen sword had made +side lunges near its bottom, so as to scuttle a large hole there; +then dropping his sword, had thrust his long arm far inwards and +upwards, and so hauled out poor Tash by the head. He averred, that +upon first thrusting in for him, a leg was presented; but well +knowing that that was not as it ought to be, and might occasion great +trouble;--he had thrust back the leg, and by a dexterous heave and +toss, had wrought a somerset upon the Indian; so that with the next +trial, he came forth in the good old way--head foremost. As for the +great head itself, that was doing as well as could be expected. + +And thus, through the courage and great skill in obstetrics of +Queequeg, the deliverance, or rather, delivery of Tashtego, was +successfully accomplished, in the teeth, too, of the most untoward +and apparently hopeless impediments; which is a lesson by no means to +be forgotten. Midwifery should be taught in the same course with +fencing and boxing, riding and rowing. + +I know that this queer adventure of the Gay-Header's will be sure to +seem incredible to some landsmen, though they themselves may have +either seen or heard of some one's falling into a cistern ashore; an +accident which not seldom happens, and with much less reason too than +the Indian's, considering the exceeding slipperiness of the curb of +the Sperm Whale's well. + +But, peradventure, it may be sagaciously urged, how is this? We +thought the tissued, infiltrated head of the Sperm Whale, was the +lightest and most corky part about him; and yet thou makest it sink +in an element of a far greater specific gravity than itself. We have +thee there. Not at all, but I have ye; for at the time poor Tash +fell in, the case had been nearly emptied of its lighter contents, +leaving little but the dense tendinous wall of the well--a double +welded, hammered substance, as I have before said, much heavier than +the sea water, and a lump of which sinks in it like lead almost. But +the tendency to rapid sinking in this substance was in the present +instance materially counteracted by the other parts of the head +remaining undetached from it, so that it sank very slowly and +deliberately indeed, affording Queequeg a fair chance for performing +his agile obstetrics on the run, as you may say. Yes, it was a +running delivery, so it was. + +Now, had Tashtego perished in that head, it had been a very precious +perishing; smothered in the very whitest and daintiest of fragrant +spermaceti; coffined, hearsed, and tombed in the secret inner chamber +and sanctum sanctorum of the whale. Only one sweeter end can readily +be recalled--the delicious death of an Ohio honey-hunter, who seeking +honey in the crotch of a hollow tree, found such exceeding store of +it, that leaning too far over, it sucked him in, so that he died +embalmed. How many, think ye, have likewise fallen into Plato's +honey head, and sweetly perished there? + + + +CHAPTER 79 + +The Prairie. + + +To scan the lines of his face, or feel the bumps on the head of this +Leviathan; this is a thing which no Physiognomist or Phrenologist has +as yet undertaken. Such an enterprise would seem almost as hopeful +as for Lavater to have scrutinized the wrinkles on the Rock of +Gibraltar, or for Gall to have mounted a ladder and manipulated the +Dome of the Pantheon. Still, in that famous work of his, Lavater +not only treats of the various faces of men, but also attentively +studies the faces of horses, birds, serpents, and fish; and dwells in +detail upon the modifications of expression discernible therein. Nor +have Gall and his disciple Spurzheim failed to throw out some hints +touching the phrenological characteristics of other beings than man. +Therefore, though I am but ill qualified for a pioneer, in the +application of these two semi-sciences to the whale, I will do my +endeavor. I try all things; I achieve what I can. + +Physiognomically regarded, the Sperm Whale is an anomalous creature. +He has no proper nose. And since the nose is the central and most +conspicuous of the features; and since it perhaps most modifies and +finally controls their combined expression; hence it would seem that +its entire absence, as an external appendage, must very largely +affect the countenance of the whale. For as in landscape gardening, +a spire, cupola, monument, or tower of some sort, is deemed almost +indispensable to the completion of the scene; so no face can be +physiognomically in keeping without the elevated open-work belfry of +the nose. Dash the nose from Phidias's marble Jove, and what a sorry +remainder! Nevertheless, Leviathan is of so mighty a magnitude, all +his proportions are so stately, that the same deficiency which in the +sculptured Jove were hideous, in him is no blemish at all. Nay, it +is an added grandeur. A nose to the whale would have been +impertinent. As on your physiognomical voyage you sail round his +vast head in your jolly-boat, your noble conceptions of him are never +insulted by the reflection that he has a nose to be pulled. A +pestilent conceit, which so often will insist upon obtruding even +when beholding the mightiest royal beadle on his throne. + +In some particulars, perhaps the most imposing physiognomical view +to be had of the Sperm Whale, is that of the full front of his head. +This aspect is sublime. + +In thought, a fine human brow is like the East when troubled with +the morning. In the repose of the pasture, the curled brow of the +bull has a touch of the grand in it. Pushing heavy cannon up +mountain defiles, the elephant's brow is majestic. Human or animal, +the mystical brow is as that great golden seal affixed by the German +Emperors to their decrees. It signifies--"God: done this day by my +hand." But in most creatures, nay in man himself, very often the +brow is but a mere strip of alpine land lying along the snow line. +Few are the foreheads which like Shakespeare's or Melancthon's rise +so high, and descend so low, that the eyes themselves seem clear, +eternal, tideless mountain lakes; and all above them in the forehead's +wrinkles, you seem to track the antlered thoughts descending there to +drink, as the Highland hunters track the snow prints of the deer. +But in the great Sperm Whale, this high and mighty god-like dignity +inherent in the brow is so immensely amplified, that gazing on it, in +that full front view, you feel the Deity and the dread powers more +forcibly than in beholding any other object in living nature. For +you see no one point precisely; not one distinct feature is revealed; +no nose, eyes, ears, or mouth; no face; he has none, proper; nothing +but that one broad firmament of a forehead, pleated with riddles; +dumbly lowering with the doom of boats, and ships, and men. Nor, in +profile, does this wondrous brow diminish; though that way viewed its +grandeur does not domineer upon you so. In profile, you plainly +perceive that horizontal, semi-crescentic depression in the +forehead's middle, which, in man, is Lavater's mark of genius. + +But how? Genius in the Sperm Whale? Has the Sperm Whale ever +written a book, spoken a speech? No, his great genius is declared in +his doing nothing particular to prove it. It is moreover declared in +his pyramidical silence. And this reminds me that had the great +Sperm Whale been known to the young Orient World, he would have been +deified by their child-magian thoughts. They deified the crocodile +of the Nile, because the crocodile is tongueless; and the Sperm Whale +has no tongue, or at least it is so exceedingly small, as to be +incapable of protrusion. If hereafter any highly cultured, poetical +nation shall lure back to their birth-right, the merry May-day gods +of old; and livingly enthrone them again in the now egotistical sky; +in the now unhaunted hill; then be sure, exalted to Jove's high seat, +the great Sperm Whale shall lord it. + +Champollion deciphered the wrinkled granite hieroglyphics. But there +is no Champollion to decipher the Egypt of every man's and every +being's face. Physiognomy, like every other human science, is but a +passing fable. If then, Sir William Jones, who read in thirty +languages, could not read the simplest peasant's face in its +profounder and more subtle meanings, how may unlettered Ishmael hope +to read the awful Chaldee of the Sperm Whale's brow? I but put that +brow before you. Read it if you can. + + + +CHAPTER 80 + +The Nut. + + +If the Sperm Whale be physiognomically a Sphinx, to the phrenologist +his brain seems that geometrical circle which it is impossible to +square. + +In the full-grown creature the skull will measure at least twenty +feet in length. Unhinge the lower jaw, and the side view of this +skull is as the side of a moderately inclined plane resting +throughout on a level base. But in life--as we have elsewhere +seen--this inclined plane is angularly filled up, and almost squared +by the enormous superincumbent mass of the junk and sperm. At the +high end the skull forms a crater to bed that part of the mass; while +under the long floor of this crater--in another cavity seldom +exceeding ten inches in length and as many in depth--reposes the +mere handful of this monster's brain. The brain is at least twenty +feet from his apparent forehead in life; it is hidden away behind its +vast outworks, like the innermost citadel within the amplified +fortifications of Quebec. So like a choice casket is it secreted in +him, that I have known some whalemen who peremptorily deny that the +Sperm Whale has any other brain than that palpable semblance of one +formed by the cubic-yards of his sperm magazine. Lying in strange +folds, courses, and convolutions, to their apprehensions, it seems +more in keeping with the idea of his general might to regard that +mystic part of him as the seat of his intelligence. + +It is plain, then, that phrenologically the head of this Leviathan, +in the creature's living intact state, is an entire delusion. As for +his true brain, you can then see no indications of it, nor feel any. +The whale, like all things that are mighty, wears a false brow to the +common world. + +If you unload his skull of its spermy heaps and then take a rear view +of its rear end, which is the high end, you will be struck by its +resemblance to the human skull, beheld in the same situation, and +from the same point of view. Indeed, place this reversed skull +(scaled down to the human magnitude) among a plate of men's skulls, +and you would involuntarily confound it with them; and remarking the +depressions on one part of its summit, in phrenological phrase you +would say--This man had no self-esteem, and no veneration. And by +those negations, considered along with the affirmative fact of his +prodigious bulk and power, you can best form to yourself the truest, +though not the most exhilarating conception of what the most exalted +potency is. + +But if from the comparative dimensions of the whale's proper brain, +you deem it incapable of being adequately charted, then I have +another idea for you. If you attentively regard almost any +quadruped's spine, you will be struck with the resemblance of its +vertebrae to a strung necklace of dwarfed skulls, all bearing +rudimental resemblance to the skull proper. It is a German conceit, +that the vertebrae are absolutely undeveloped skulls. But the +curious external resemblance, I take it the Germans were not the +first men to perceive. A foreign friend once pointed it out to me, +in the skeleton of a foe he had slain, and with the vertebrae of +which he was inlaying, in a sort of basso-relievo, the beaked prow +of his canoe. Now, I consider that the phrenologists have omitted an +important thing in not pushing their investigations from the +cerebellum through the spinal canal. For I believe that much of a +man's character will be found betokened in his backbone. I would +rather feel your spine than your skull, whoever you are. A thin +joist of a spine never yet upheld a full and noble soul. I rejoice +in my spine, as in the firm audacious staff of that flag which I +fling half out to the world. + +Apply this spinal branch of phrenology to the Sperm Whale. His +cranial cavity is continuous with the first neck-vertebra; and in +that vertebra the bottom of the spinal canal will measure ten inches +across, being eight in height, and of a triangular figure with the +base downwards. As it passes through the remaining vertebrae the +canal tapers in size, but for a considerable distance remains of +large capacity. Now, of course, this canal is filled with much the +same strangely fibrous substance--the spinal cord--as the brain; and +directly communicates with the brain. And what is still more, for +many feet after emerging from the brain's cavity, the spinal cord +remains of an undecreasing girth, almost equal to that of the brain. +Under all these circumstances, would it be unreasonable to survey and +map out the whale's spine phrenologically? For, viewed in this +light, the wonderful comparative smallness of his brain proper is +more than compensated by the wonderful comparative magnitude of his +spinal cord. + +But leaving this hint to operate as it may with the phrenologists, I +would merely assume the spinal theory for a moment, in reference to +the Sperm Whale's hump. This august hump, if I mistake not, rises +over one of the larger vertebrae, and is, therefore, in some sort, +the outer convex mould of it. From its relative situation then, I +should call this high hump the organ of firmness or indomitableness +in the Sperm Whale. And that the great monster is indomitable, you +will yet have reason to know. + + + +CHAPTER 81 + +The Pequod Meets The Virgin. + + +The predestinated day arrived, and we duly met the ship Jungfrau, +Derick De Deer, master, of Bremen. + +At one time the greatest whaling people in the world, the Dutch and +Germans are now among the least; but here and there at very wide +intervals of latitude and longitude, you still occasionally meet with +their flag in the Pacific. + +For some reason, the Jungfrau seemed quite eager to pay her respects. +While yet some distance from the Pequod, she rounded to, and +dropping a boat, her captain was impelled towards us, impatiently +standing in the bows instead of the stern. + +"What has he in his hand there?" cried Starbuck, pointing to +something wavingly held by the German. "Impossible!--a lamp-feeder!" + +"Not that," said Stubb, "no, no, it's a coffee-pot, Mr. Starbuck; +he's coming off to make us our coffee, is the Yarman; don't you see +that big tin can there alongside of him?--that's his boiling water. +Oh! he's all right, is the Yarman." + +"Go along with you," cried Flask, "it's a lamp-feeder and an oil-can. +He's out of oil, and has come a-begging." + +However curious it may seem for an oil-ship to be borrowing oil on +the whale-ground, and however much it may invertedly contradict the +old proverb about carrying coals to Newcastle, yet sometimes such a +thing really happens; and in the present case Captain Derick De Deer +did indubitably conduct a lamp-feeder as Flask did declare. + +As he mounted the deck, Ahab abruptly accosted him, without at all +heeding what he had in his hand; but in his broken lingo, the German +soon evinced his complete ignorance of the White Whale; immediately +turning the conversation to his lamp-feeder and oil can, with some +remarks touching his having to turn into his hammock at night in +profound darkness--his last drop of Bremen oil being gone, and not a +single flying-fish yet captured to supply the deficiency; concluding +by hinting that his ship was indeed what in the Fishery is +technically called a CLEAN one (that is, an empty one), well +deserving the name of Jungfrau or the Virgin. + +His necessities supplied, Derick departed; but he had not gained his +ship's side, when whales were almost simultaneously raised from the +mast-heads of both vessels; and so eager for the chase was Derick, +that without pausing to put his oil-can and lamp-feeder aboard, he +slewed round his boat and made after the leviathan lamp-feeders. + +Now, the game having risen to leeward, he and the other three German +boats that soon followed him, had considerably the start of the +Pequod's keels. There were eight whales, an average pod. Aware of +their danger, they were going all abreast with great speed straight +before the wind, rubbing their flanks as closely as so many spans of +horses in harness. They left a great, wide wake, as though +continually unrolling a great wide parchment upon the sea. + +Full in this rapid wake, and many fathoms in the rear, swam a huge, +humped old bull, which by his comparatively slow progress, as well as +by the unusual yellowish incrustations overgrowing him, seemed +afflicted with the jaundice, or some other infirmity. Whether this +whale belonged to the pod in advance, seemed questionable; for it is +not customary for such venerable leviathans to be at all social. +Nevertheless, he stuck to their wake, though indeed their back water +must have retarded him, because the white-bone or swell at his broad +muzzle was a dashed one, like the swell formed when two hostile +currents meet. His spout was short, slow, and laborious; coming +forth with a choking sort of gush, and spending itself in torn +shreds, followed by strange subterranean commotions in him, which +seemed to have egress at his other buried extremity, causing the +waters behind him to upbubble. + +"Who's got some paregoric?" said Stubb, "he has the stomach-ache, I'm +afraid. Lord, think of having half an acre of stomach-ache! Adverse +winds are holding mad Christmas in him, boys. It's the first foul +wind I ever knew to blow from astern; but look, did ever whale yaw +so before? it must be, he's lost his tiller." + +As an overladen Indiaman bearing down the Hindostan coast with a deck +load of frightened horses, careens, buries, rolls, and wallows on her +way; so did this old whale heave his aged bulk, and now and then +partly turning over on his cumbrous rib-ends, expose the cause of his +devious wake in the unnatural stump of his starboard fin. Whether he +had lost that fin in battle, or had been born without it, it were +hard to say. + +"Only wait a bit, old chap, and I'll give ye a sling for that wounded +arm," cried cruel Flask, pointing to the whale-line near him. + +"Mind he don't sling thee with it," cried Starbuck. "Give way, or +the German will have him." + +With one intent all the combined rival boats were pointed for this +one fish, because not only was he the largest, and therefore the most +valuable whale, but he was nearest to them, and the other whales were +going with such great velocity, moreover, as almost to defy pursuit +for the time. At this juncture the Pequod's keels had shot by the +three German boats last lowered; but from the great start he had had, +Derick's boat still led the chase, though every moment neared by his +foreign rivals. The only thing they feared, was, that from being +already so nigh to his mark, he would be enabled to dart his iron +before they could completely overtake and pass him. As for Derick, +he seemed quite confident that this would be the case, and +occasionally with a deriding gesture shook his lamp-feeder at the +other boats. + +"The ungracious and ungrateful dog!" cried Starbuck; "he mocks and +dares me with the very poor-box I filled for him not five minutes +ago!"--then in his old intense whisper--"Give way, greyhounds! Dog +to it!" + +"I tell ye what it is, men"--cried Stubb to his crew--"it's against +my religion to get mad; but I'd like to eat that villainous +Yarman--Pull--won't ye? Are ye going to let that rascal beat ye? Do +ye love brandy? A hogshead of brandy, then, to the best man. Come, +why don't some of ye burst a blood-vessel? Who's that been dropping +an anchor overboard--we don't budge an inch--we're becalmed. Halloo, +here's grass growing in the boat's bottom--and by the Lord, the mast +there's budding. This won't do, boys. Look at that Yarman! The +short and long of it is, men, will ye spit fire or not?" + +"Oh! see the suds he makes!" cried Flask, dancing up and down--"What +a hump--Oh, DO pile on the beef--lays like a log! Oh! my lads, DO +spring--slap-jacks and quahogs for supper, you know, my lads--baked +clams and muffins--oh, DO, DO, spring,--he's a hundred barreller--don't +lose him now--don't oh, DON'T!--see that Yarman--Oh, +won't ye pull for your duff, my lads--such a sog! such a sogger! +Don't ye love sperm? There goes three thousand dollars, men!--a +bank!--a whole bank! The bank of England!--Oh, DO, DO, DO!--What's +that Yarman about now?" + +At this moment Derick was in the act of pitching his lamp-feeder at +the advancing boats, and also his oil-can; perhaps with the double +view of retarding his rivals' way, and at the same time economically +accelerating his own by the momentary impetus of the backward toss. + +"The unmannerly Dutch dogger!" cried Stubb. "Pull now, men, like +fifty thousand line-of-battle-ship loads of red-haired devils. What +d'ye say, Tashtego; are you the man to snap your spine in +two-and-twenty pieces for the honour of old Gayhead? What d'ye say?" + +"I say, pull like god-dam,"--cried the Indian. + +Fiercely, but evenly incited by the taunts of the German, the +Pequod's three boats now began ranging almost abreast; and, so +disposed, momentarily neared him. In that fine, loose, chivalrous +attitude of the headsman when drawing near to his prey, the three +mates stood up proudly, occasionally backing the after oarsman with +an exhilarating cry of, "There she slides, now! Hurrah for the +white-ash breeze! Down with the Yarman! Sail over him!" + +But so decided an original start had Derick had, that spite of all +their gallantry, he would have proved the victor in this race, had +not a righteous judgment descended upon him in a crab which caught +the blade of his midship oarsman. While this clumsy lubber was +striving to free his white-ash, and while, in consequence, Derick's +boat was nigh to capsizing, and he thundering away at his men in a +mighty rage;--that was a good time for Starbuck, Stubb, and Flask. +With a shout, they took a mortal start forwards, and slantingly +ranged up on the German's quarter. An instant more, and all four +boats were diagonically in the whale's immediate wake, while +stretching from them, on both sides, was the foaming swell that he +made. + +It was a terrific, most pitiable, and maddening sight. The whale was +now going head out, and sending his spout before him in a continual +tormented jet; while his one poor fin beat his side in an agony of +fright. Now to this hand, now to that, he yawed in his faltering +flight, and still at every billow that he broke, he spasmodically +sank in the sea, or sideways rolled towards the sky his one beating +fin. So have I seen a bird with clipped wing making affrighted +broken circles in the air, vainly striving to escape the piratical +hawks. But the bird has a voice, and with plaintive cries will make +known her fear; but the fear of this vast dumb brute of the sea, was +chained up and enchanted in him; he had no voice, save that choking +respiration through his spiracle, and this made the sight of him +unspeakably pitiable; while still, in his amazing bulk, portcullis +jaw, and omnipotent tail, there was enough to appal the stoutest man +who so pitied. + +Seeing now that but a very few moments more would give the Pequod's +boats the advantage, and rather than be thus foiled of his game, +Derick chose to hazard what to him must have seemed a most unusually +long dart, ere the last chance would for ever escape. + +But no sooner did his harpooneer stand up for the stroke, than all +three tigers--Queequeg, Tashtego, Daggoo--instinctively sprang to +their feet, and standing in a diagonal row, simultaneously pointed +their barbs; and darted over the head of the German harpooneer, their +three Nantucket irons entered the whale. Blinding vapours of foam and +white-fire! The three boats, in the first fury of the whale's +headlong rush, bumped the German's aside with such force, that both +Derick and his baffled harpooneer were spilled out, and sailed over +by the three flying keels. + +"Don't be afraid, my butter-boxes," cried Stubb, casting a passing +glance upon them as he shot by; "ye'll be picked up presently--all +right--I saw some sharks astern--St. Bernard's dogs, you +know--relieve distressed travellers. Hurrah! this is the way to sail +now. Every keel a sunbeam! Hurrah!--Here we go like three tin +kettles at the tail of a mad cougar! This puts me in mind of +fastening to an elephant in a tilbury on a plain--makes the +wheel-spokes fly, boys, when you fasten to him that way; and there's +danger of being pitched out too, when you strike a hill. Hurrah! +this is the way a fellow feels when he's going to Davy Jones--all a +rush down an endless inclined plane! Hurrah! this whale carries the +everlasting mail!" + +But the monster's run was a brief one. Giving a sudden gasp, he +tumultuously sounded. With a grating rush, the three lines flew +round the loggerheads with such a force as to gouge deep grooves in +them; while so fearful were the harpooneers that this rapid sounding +would soon exhaust the lines, that using all their dexterous might, +they caught repeated smoking turns with the rope to hold on; till at +last--owing to the perpendicular strain from the lead-lined chocks of +the boats, whence the three ropes went straight down into the +blue--the gunwales of the bows were almost even with the water, while +the three sterns tilted high in the air. And the whale soon ceasing +to sound, for some time they remained in that attitude, fearful of +expending more line, though the position was a little ticklish. But +though boats have been taken down and lost in this way, yet it is +this "holding on," as it is called; this hooking up by the sharp +barbs of his live flesh from the back; this it is that often torments +the Leviathan into soon rising again to meet the sharp lance of his +foes. Yet not to speak of the peril of the thing, it is to be +doubted whether this course is always the best; for it is but +reasonable to presume, that the longer the stricken whale stays under +water, the more he is exhausted. Because, owing to the enormous +surface of him--in a full grown sperm whale something less than 2000 +square feet--the pressure of the water is immense. We all know what +an astonishing atmospheric weight we ourselves stand up under; even +here, above-ground, in the air; how vast, then, the burden of a +whale, bearing on his back a column of two hundred fathoms of ocean! +It must at least equal the weight of fifty atmospheres. One whaleman +has estimated it at the weight of twenty line-of-battle ships, with +all their guns, and stores, and men on board. + +As the three boats lay there on that gently rolling sea, gazing down +into its eternal blue noon; and as not a single groan or cry of any +sort, nay, not so much as a ripple or a bubble came up from its +depths; what landsman would have thought, that beneath all that +silence and placidity, the utmost monster of the seas was writhing +and wrenching in agony! Not eight inches of perpendicular rope were +visible at the bows. Seems it credible that by three such thin +threads the great Leviathan was suspended like the big weight to an +eight day clock. Suspended? and to what? To three bits of board. +Is this the creature of whom it was once so triumphantly said--"Canst +thou fill his skin with barbed irons? or his head with fish-spears? +The sword of him that layeth at him cannot hold, the spear, the dart, +nor the habergeon: he esteemeth iron as straw; the arrow cannot make +him flee; darts are counted as stubble; he laugheth at the shaking of +a spear!" This the creature? this he? Oh! that unfulfilments should +follow the prophets. For with the strength of a thousand thighs in +his tail, Leviathan had run his head under the mountains of the sea, +to hide him from the Pequod's fish-spears! + +In that sloping afternoon sunlight, the shadows that the three boats +sent down beneath the surface, must have been long enough and broad +enough to shade half Xerxes' army. Who can tell how appalling to the +wounded whale must have been such huge phantoms flitting over his +head! + +"Stand by, men; he stirs," cried Starbuck, as the three lines +suddenly vibrated in the water, distinctly conducting upwards to +them, as by magnetic wires, the life and death throbs of the whale, +so that every oarsman felt them in his seat. The next moment, +relieved in great part from the downward strain at the bows, the +boats gave a sudden bounce upwards, as a small icefield will, when a +dense herd of white bears are scared from it into the sea. + +"Haul in! Haul in!" cried Starbuck again; "he's rising." + +The lines, of which, hardly an instant before, not one hand's breadth +could have been gained, were now in long quick coils flung back all +dripping into the boats, and soon the whale broke water within two +ship's lengths of the hunters. + +His motions plainly denoted his extreme exhaustion. In most land +animals there are certain valves or flood-gates in many of their +veins, whereby when wounded, the blood is in some degree at least +instantly shut off in certain directions. Not so with the whale; one +of whose peculiarities it is to have an entire non-valvular structure +of the blood-vessels, so that when pierced even by so small a point +as a harpoon, a deadly drain is at once begun upon his whole +arterial system; and when this is heightened by the extraordinary +pressure of water at a great distance below the surface, his life may +be said to pour from him in incessant streams. Yet so vast is the +quantity of blood in him, and so distant and numerous its interior +fountains, that he will keep thus bleeding and bleeding for a +considerable period; even as in a drought a river will flow, whose +source is in the well-springs of far-off and undiscernible hills. +Even now, when the boats pulled upon this whale, and perilously drew +over his swaying flukes, and the lances were darted into him, they +were followed by steady jets from the new made wound, which kept +continually playing, while the natural spout-hole in his head was +only at intervals, however rapid, sending its affrighted moisture +into the air. From this last vent no blood yet came, because no +vital part of him had thus far been struck. His life, as they +significantly call it, was untouched. + +As the boats now more closely surrounded him, the whole upper part of +his form, with much of it that is ordinarily submerged, was plainly +revealed. His eyes, or rather the places where his eyes had been, +were beheld. As strange misgrown masses gather in the knot-holes of +the noblest oaks when prostrate, so from the points which the whale's +eyes had once occupied, now protruded blind bulbs, horribly pitiable +to see. But pity there was none. For all his old age, and his one +arm, and his blind eyes, he must die the death and be murdered, in +order to light the gay bridals and other merry-makings of men, and +also to illuminate the solemn churches that preach unconditional +inoffensiveness by all to all. Still rolling in his blood, at last +he partially disclosed a strangely discoloured bunch or protuberance, +the size of a bushel, low down on the flank. + +"A nice spot," cried Flask; "just let me prick him there once." + +"Avast!" cried Starbuck, "there's no need of that!" + +But humane Starbuck was too late. At the instant of the dart an +ulcerous jet shot from this cruel wound, and goaded by it into more +than sufferable anguish, the whale now spouting thick blood, with +swift fury blindly darted at the craft, bespattering them and their +glorying crews all over with showers of gore, capsizing Flask's boat +and marring the bows. It was his death stroke. For, by this time, +so spent was he by loss of blood, that he helplessly rolled away from +the wreck he had made; lay panting on his side, impotently flapped +with his stumped fin, then over and over slowly revolved like a +waning world; turned up the white secrets of his belly; lay like a +log, and died. It was most piteous, that last expiring spout. As +when by unseen hands the water is gradually drawn off from some +mighty fountain, and with half-stifled melancholy gurglings the +spray-column lowers and lowers to the ground--so the last long dying +spout of the whale. + +Soon, while the crews were awaiting the arrival of the ship, the body +showed symptoms of sinking with all its treasures unrifled. +Immediately, by Starbuck's orders, lines were secured to it at +different points, so that ere long every boat was a buoy; the sunken +whale being suspended a few inches beneath them by the cords. By +very heedful management, when the ship drew nigh, the whale was +transferred to her side, and was strongly secured there by the +stiffest fluke-chains, for it was plain that unless artificially +upheld, the body would at once sink to the bottom. + +It so chanced that almost upon first cutting into him with the +spade, the entire length of a corroded harpoon was found imbedded in +his flesh, on the lower part of the bunch before described. But as +the stumps of harpoons are frequently found in the dead bodies of +captured whales, with the flesh perfectly healed around them, and no +prominence of any kind to denote their place; therefore, there must +needs have been some other unknown reason in the present case fully +to account for the ulceration alluded to. But still more curious was +the fact of a lance-head of stone being found in him, not far from +the buried iron, the flesh perfectly firm about it. Who had darted +that stone lance? And when? It might have been darted by some Nor' +West Indian long before America was discovered. + +What other marvels might have been rummaged out of this monstrous +cabinet there is no telling. But a sudden stop was put to further +discoveries, by the ship's being unprecedentedly dragged over +sideways to the sea, owing to the body's immensely increasing +tendency to sink. However, Starbuck, who had the ordering of +affairs, hung on to it to the last; hung on to it so resolutely, +indeed, that when at length the ship would have been capsized, if +still persisting in locking arms with the body; then, when the +command was given to break clear from it, such was the immovable +strain upon the timber-heads to which the fluke-chains and cables +were fastened, that it was impossible to cast them off. Meantime +everything in the Pequod was aslant. To cross to the other side of +the deck was like walking up the steep gabled roof of a house. The +ship groaned and gasped. Many of the ivory inlayings of her bulwarks +and cabins were started from their places, by the unnatural +dislocation. In vain handspikes and crows were brought to bear upon +the immovable fluke-chains, to pry them adrift from the timberheads; +and so low had the whale now settled that the submerged ends could +not be at all approached, while every moment whole tons of +ponderosity seemed added to the sinking bulk, and the ship seemed on +the point of going over. + +"Hold on, hold on, won't ye?" cried Stubb to the body, "don't be in +such a devil of a hurry to sink! By thunder, men, we must do +something or go for it. No use prying there; avast, I say with your +handspikes, and run one of ye for a prayer book and a pen-knife, and +cut the big chains." + +"Knife? Aye, aye," cried Queequeg, and seizing the carpenter's heavy +hatchet, he leaned out of a porthole, and steel to iron, began +slashing at the largest fluke-chains. But a few strokes, full of +sparks, were given, when the exceeding strain effected the rest. +With a terrific snap, every fastening went adrift; the ship righted, +the carcase sank. + +Now, this occasional inevitable sinking of the recently killed Sperm +Whale is a very curious thing; nor has any fisherman yet adequately +accounted for it. Usually the dead Sperm Whale floats with great +buoyancy, with its side or belly considerably elevated above the +surface. If the only whales that thus sank were old, meagre, and +broken-hearted creatures, their pads of lard diminished and all their +bones heavy and rheumatic; then you might with some reason assert +that this sinking is caused by an uncommon specific gravity in the +fish so sinking, consequent upon this absence of buoyant matter in +him. But it is not so. For young whales, in the highest health, and +swelling with noble aspirations, prematurely cut off in the warm +flush and May of life, with all their panting lard about them; even +these brawny, buoyant heroes do sometimes sink. + +Be it said, however, that the Sperm Whale is far less liable to this +accident than any other species. Where one of that sort go down, +twenty Right Whales do. This difference in the species is no doubt +imputable in no small degree to the greater quantity of bone in the +Right Whale; his Venetian blinds alone sometimes weighing more than a +ton; from this incumbrance the Sperm Whale is wholly free. But there +are instances where, after the lapse of many hours or several days, +the sunken whale again rises, more buoyant than in life. But the +reason of this is obvious. Gases are generated in him; he swells to +a prodigious magnitude; becomes a sort of animal balloon. A +line-of-battle ship could hardly keep him under then. In the Shore +Whaling, on soundings, among the Bays of New Zealand, when a Right +Whale gives token of sinking, they fasten buoys to him, with plenty +of rope; so that when the body has gone down, they know where to look +for it when it shall have ascended again. + +It was not long after the sinking of the body that a cry was heard +from the Pequod's mast-heads, announcing that the Jungfrau was again +lowering her boats; though the only spout in sight was that of a +Fin-Back, belonging to the species of uncapturable whales, because of +its incredible power of swimming. Nevertheless, the Fin-Back's spout +is so similar to the Sperm Whale's, that by unskilful fishermen it is +often mistaken for it. And consequently Derick and all his host were +now in valiant chase of this unnearable brute. The Virgin crowding +all sail, made after her four young keels, and thus they all +disappeared far to leeward, still in bold, hopeful chase. + +Oh! many are the Fin-Backs, and many are the Dericks, my friend. + + + +CHAPTER 82 + +The Honour and Glory of Whaling. + + +There are some enterprises in which a careful disorderliness is the +true method. + +The more I dive into this matter of whaling, and push my researches +up to the very spring-head of it so much the more am I impressed with +its great honourableness and antiquity; and especially when I find so +many great demi-gods and heroes, prophets of all sorts, who one way +or other have shed distinction upon it, I am transported with the +reflection that I myself belong, though but subordinately, to so +emblazoned a fraternity. + +The gallant Perseus, a son of Jupiter, was the first whaleman; and to +the eternal honour of our calling be it said, that the first whale +attacked by our brotherhood was not killed with any sordid intent. +Those were the knightly days of our profession, when we only bore +arms to succor the distressed, and not to fill men's lamp-feeders. +Every one knows the fine story of Perseus and Andromeda; how the +lovely Andromeda, the daughter of a king, was tied to a rock on the +sea-coast, and as Leviathan was in the very act of carrying her off, +Perseus, the prince of whalemen, intrepidly advancing, harpooned the +monster, and delivered and married the maid. It was an admirable +artistic exploit, rarely achieved by the best harpooneers of the +present day; inasmuch as this Leviathan was slain at the very first +dart. And let no man doubt this Arkite story; for in the ancient +Joppa, now Jaffa, on the Syrian coast, in one of the Pagan temples, +there stood for many ages the vast skeleton of a whale, which the +city's legends and all the inhabitants asserted to be the identical +bones of the monster that Perseus slew. When the Romans took Joppa, +the same skeleton was carried to Italy in triumph. What seems most +singular and suggestively important in this story, is this: it was +from Joppa that Jonah set sail. + +Akin to the adventure of Perseus and Andromeda--indeed, by some +supposed to be indirectly derived from it--is that famous story of +St. George and the Dragon; which dragon I maintain to have been a +whale; for in many old chronicles whales and dragons are strangely +jumbled together, and often stand for each other. "Thou art as a +lion of the waters, and as a dragon of the sea," saith Ezekiel; +hereby, plainly meaning a whale; in truth, some versions of the Bible +use that word itself. Besides, it would much subtract from the glory +of the exploit had St. George but encountered a crawling reptile of +the land, instead of doing battle with the great monster of the deep. +Any man may kill a snake, but only a Perseus, a St. George, a +Coffin, have the heart in them to march boldly up to a whale. + +Let not the modern paintings of this scene mislead us; for though the +creature encountered by that valiant whaleman of old is vaguely +represented of a griffin-like shape, and though the battle is +depicted on land and the saint on horseback, yet considering the +great ignorance of those times, when the true form of the whale was +unknown to artists; and considering that as in Perseus' case, St. +George's whale might have crawled up out of the sea on the beach; and +considering that the animal ridden by St. George might have been only +a large seal, or sea-horse; bearing all this in mind, it will not +appear altogether incompatible with the sacred legend and the +ancientest draughts of the scene, to hold this so-called dragon no +other than the great Leviathan himself. In fact, placed before the +strict and piercing truth, this whole story will fare like that fish, +flesh, and fowl idol of the Philistines, Dagon by name; who being +planted before the ark of Israel, his horse's head and both the palms +of his hands fell off from him, and only the stump or fishy part of +him remained. Thus, then, one of our own noble stamp, even a +whaleman, is the tutelary guardian of England; and by good rights, we +harpooneers of Nantucket should be enrolled in the most noble order +of St. George. And therefore, let not the knights of that honourable +company (none of whom, I venture to say, have ever had to do with a +whale like their great patron), let them never eye a Nantucketer with +disdain, since even in our woollen frocks and tarred trowsers we are +much better entitled to St. George's decoration than they. + +Whether to admit Hercules among us or not, concerning this I long +remained dubious: for though according to the Greek mythologies, that +antique Crockett and Kit Carson--that brawny doer of rejoicing good +deeds, was swallowed down and thrown up by a whale; still, whether +that strictly makes a whaleman of him, that might be mooted. It +nowhere appears that he ever actually harpooned his fish, unless, +indeed, from the inside. Nevertheless, he may be deemed a sort of +involuntary whaleman; at any rate the whale caught him, if he did not +the whale. I claim him for one of our clan. + +But, by the best contradictory authorities, this Grecian story of +Hercules and the whale is considered to be derived from the still +more ancient Hebrew story of Jonah and the whale; and vice versa; +certainly they are very similar. If I claim the demigod then, why +not the prophet? + +Nor do heroes, saints, demigods, and prophets alone comprise the +whole roll of our order. Our grand master is still to be named; for +like royal kings of old times, we find the head waters of our +fraternity in nothing short of the great gods themselves. That +wondrous oriental story is now to be rehearsed from the Shaster, +which gives us the dread Vishnoo, one of the three persons in the +godhead of the Hindoos; gives us this divine Vishnoo himself for our +Lord;--Vishnoo, who, by the first of his ten earthly incarnations, +has for ever set apart and sanctified the whale. When Brahma, or the +God of Gods, saith the Shaster, resolved to recreate the world after +one of its periodical dissolutions, he gave birth to Vishnoo, to +preside over the work; but the Vedas, or mystical books, whose +perusal would seem to have been indispensable to Vishnoo before +beginning the creation, and which therefore must have contained +something in the shape of practical hints to young architects, these +Vedas were lying at the bottom of the waters; so Vishnoo became +incarnate in a whale, and sounding down in him to the uttermost +depths, rescued the sacred volumes. Was not this Vishnoo a whaleman, +then? even as a man who rides a horse is called a horseman? + +Perseus, St. George, Hercules, Jonah, and Vishnoo! there's a +member-roll for you! What club but the whaleman's can head off like +that? + + + +CHAPTER 83 + +Jonah Historically Regarded. + + +Reference was made to the historical story of Jonah and the whale in +the preceding chapter. Now some Nantucketers rather distrust this +historical story of Jonah and the whale. But then there were some +sceptical Greeks and Romans, who, standing out from the orthodox +pagans of their times, equally doubted the story of Hercules and the +whale, and Arion and the dolphin; and yet their doubting those +traditions did not make those traditions one whit the less facts, for +all that. + +One old Sag-Harbor whaleman's chief reason for questioning the Hebrew +story was this:--He had one of those quaint old-fashioned Bibles, +embellished with curious, unscientific plates; one of which +represented Jonah's whale with two spouts in his head--a peculiarity +only true with respect to a species of the Leviathan (the Right +Whale, and the varieties of that order), concerning which the +fishermen have this saying, "A penny roll would choke him"; his +swallow is so very small. But, to this, Bishop Jebb's anticipative +answer is ready. It is not necessary, hints the Bishop, that we +consider Jonah as tombed in the whale's belly, but as temporarily +lodged in some part of his mouth. And this seems reasonable enough +in the good Bishop. For truly, the Right Whale's mouth would +accommodate a couple of whist-tables, and comfortably seat all the +players. Possibly, too, Jonah might have ensconced himself in a +hollow tooth; but, on second thoughts, the Right Whale is toothless. + +Another reason which Sag-Harbor (he went by that name) urged for his +want of faith in this matter of the prophet, was something obscurely +in reference to his incarcerated body and the whale's gastric juices. +But this objection likewise falls to the ground, because a German +exegetist supposes that Jonah must have taken refuge in the floating +body of a DEAD whale--even as the French soldiers in the Russian +campaign turned their dead horses into tents, and crawled into them. +Besides, it has been divined by other continental commentators, that +when Jonah was thrown overboard from the Joppa ship, he straightway +effected his escape to another vessel near by, some vessel with a +whale for a figure-head; and, I would add, possibly called "The +Whale," as some craft are nowadays christened the "Shark," the +"Gull," the "Eagle." Nor have there been wanting learned exegetists +who have opined that the whale mentioned in the book of Jonah merely +meant a life-preserver--an inflated bag of wind--which the endangered +prophet swam to, and so was saved from a watery doom. Poor +Sag-Harbor, therefore, seems worsted all round. But he had still +another reason for his want of faith. It was this, if I remember +right: Jonah was swallowed by the whale in the Mediterranean Sea, and +after three days he was vomited up somewhere within three days' +journey of Nineveh, a city on the Tigris, very much more than three +days' journey across from the nearest point of the Mediterranean +coast. How is that? + +But was there no other way for the whale to land the prophet within +that short distance of Nineveh? Yes. He might have carried him +round by the way of the Cape of Good Hope. But not to speak of the +passage through the whole length of the Mediterranean, and another +passage up the Persian Gulf and Red Sea, such a supposition would +involve the complete circumnavigation of all Africa in three days, +not to speak of the Tigris waters, near the site of Nineveh, being +too shallow for any whale to swim in. Besides, this idea of Jonah's +weathering the Cape of Good Hope at so early a day would wrest the +honour of the discovery of that great headland from Bartholomew Diaz, +its reputed discoverer, and so make modern history a liar. + +But all these foolish arguments of old Sag-Harbor only evinced his +foolish pride of reason--a thing still more reprehensible in him, +seeing that he had but little learning except what he had picked up +from the sun and the sea. I say it only shows his foolish, impious +pride, and abominable, devilish rebellion against the reverend +clergy. For by a Portuguese Catholic priest, this very idea of +Jonah's going to Nineveh via the Cape of Good Hope was advanced as a +signal magnification of the general miracle. And so it was. +Besides, to this day, the highly enlightened Turks devoutly believe +in the historical story of Jonah. And some three centuries ago, an +English traveller in old Harris's Voyages, speaks of a Turkish Mosque +built in honour of Jonah, in which Mosque was a miraculous lamp that +burnt without any oil. + + + +CHAPTER 84 + +Pitchpoling. + + +To make them run easily and swiftly, the axles of carriages are +anointed; and for much the same purpose, some whalers perform an +analogous operation upon their boat; they grease the bottom. Nor is +it to be doubted that as such a procedure can do no harm, it may +possibly be of no contemptible advantage; considering that oil and +water are hostile; that oil is a sliding thing, and that the object +in view is to make the boat slide bravely. Queequeg believed +strongly in anointing his boat, and one morning not long after the +German ship Jungfrau disappeared, took more than customary pains in +that occupation; crawling under its bottom, where it hung over the +side, and rubbing in the unctuousness as though diligently seeking to +insure a crop of hair from the craft's bald keel. He seemed to be +working in obedience to some particular presentiment. Nor did it +remain unwarranted by the event. + +Towards noon whales were raised; but so soon as the ship sailed down +to them, they turned and fled with swift precipitancy; a disordered +flight, as of Cleopatra's barges from Actium. + +Nevertheless, the boats pursued, and Stubb's was foremost. By great +exertion, Tashtego at last succeeded in planting one iron; but the +stricken whale, without at all sounding, still continued his +horizontal flight, with added fleetness. Such unintermitted +strainings upon the planted iron must sooner or later inevitably +extract it. It became imperative to lance the flying whale, or be +content to lose him. But to haul the boat up to his flank was +impossible, he swam so fast and furious. What then remained? + +Of all the wondrous devices and dexterities, the sleights of hand and +countless subtleties, to which the veteran whaleman is so often +forced, none exceed that fine manoeuvre with the lance called +pitchpoling. Small sword, or broad sword, in all its exercises +boasts nothing like it. It is only indispensable with an inveterate +running whale; its grand fact and feature is the wonderful distance +to which the long lance is accurately darted from a violently +rocking, jerking boat, under extreme headway. Steel and wood +included, the entire spear is some ten or twelve feet in length; the +staff is much slighter than that of the harpoon, and also of a +lighter material--pine. It is furnished with a small rope called a +warp, of considerable length, by which it can be hauled back to the +hand after darting. + +But before going further, it is important to mention here, that +though the harpoon may be pitchpoled in the same way with the lance, +yet it is seldom done; and when done, is still less frequently +successful, on account of the greater weight and inferior length of +the harpoon as compared with the lance, which in effect become +serious drawbacks. As a general thing, therefore, you must first +get fast to a whale, before any pitchpoling comes into play. + +Look now at Stubb; a man who from his humorous, deliberate coolness +and equanimity in the direst emergencies, was specially qualified to +excel in pitchpoling. Look at him; he stands upright in the tossed +bow of the flying boat; wrapt in fleecy foam, the towing whale is +forty feet ahead. Handling the long lance lightly, glancing twice or +thrice along its length to see if it be exactly straight, Stubb +whistlingly gathers up the coil of the warp in one hand, so as to +secure its free end in his grasp, leaving the rest unobstructed. +Then holding the lance full before his waistband's middle, he levels +it at the whale; when, covering him with it, he steadily depresses +the butt-end in his hand, thereby elevating the point till the weapon +stands fairly balanced upon his palm, fifteen feet in the air. He +minds you somewhat of a juggler, balancing a long staff on his chin. +Next moment with a rapid, nameless impulse, in a superb lofty arch the +bright steel spans the foaming distance, and quivers in the life spot +of the whale. Instead of sparkling water, he now spouts red blood. + +"That drove the spigot out of him!" cried Stubb. "'Tis July's +immortal Fourth; all fountains must run wine today! Would now, it +were old Orleans whiskey, or old Ohio, or unspeakable old +Monongahela! Then, Tashtego, lad, I'd have ye hold a canakin to the +jet, and we'd drink round it! Yea, verily, hearts alive, we'd brew +choice punch in the spread of his spout-hole there, and from that +live punch-bowl quaff the living stuff." + +Again and again to such gamesome talk, the dexterous dart is +repeated, the spear returning to its master like a greyhound held in +skilful leash. The agonized whale goes into his flurry; the tow-line +is slackened, and the pitchpoler dropping astern, folds his hands, +and mutely watches the monster die. + + + +CHAPTER 85 + +The Fountain. + + +That for six thousand years--and no one knows how many millions of +ages before--the great whales should have been spouting all over the +sea, and sprinkling and mistifying the gardens of the deep, as with +so many sprinkling or mistifying pots; and that for some centuries +back, thousands of hunters should have been close by the fountain of +the whale, watching these sprinklings and spoutings--that all this +should be, and yet, that down to this blessed minute (fifteen and a +quarter minutes past one o'clock P.M. of this sixteenth day of +December, A.D. 1851), it should still remain a problem, whether these +spoutings are, after all, really water, or nothing but vapour--this is +surely a noteworthy thing. + +Let us, then, look at this matter, along with some interesting items +contingent. Every one knows that by the peculiar cunning of their +gills, the finny tribes in general breathe the air which at all times +is combined with the element in which they swim; hence, a herring or +a cod might live a century, and never once raise its head above the +surface. But owing to his marked internal structure which gives him +regular lungs, like a human being's, the whale can only live by +inhaling the disengaged air in the open atmosphere. Wherefore the +necessity for his periodical visits to the upper world. But he +cannot in any degree breathe through his mouth, for, in his ordinary +attitude, the Sperm Whale's mouth is buried at least eight feet +beneath the surface; and what is still more, his windpipe has no +connexion with his mouth. No, he breathes through his spiracle +alone; and this is on the top of his head. + +If I say, that in any creature breathing is only a function +indispensable to vitality, inasmuch as it withdraws from the air a +certain element, which being subsequently brought into contact with +the blood imparts to the blood its vivifying principle, I do not +think I shall err; though I may possibly use some superfluous +scientific words. Assume it, and it follows that if all the blood in +a man could be aerated with one breath, he might then seal up his +nostrils and not fetch another for a considerable time. That is to +say, he would then live without breathing. Anomalous as it may seem, +this is precisely the case with the whale, who systematically lives, +by intervals, his full hour and more (when at the bottom) without +drawing a single breath, or so much as in any way inhaling a particle +of air; for, remember, he has no gills. How is this? Between his +ribs and on each side of his spine he is supplied with a remarkable +involved Cretan labyrinth of vermicelli-like vessels, which vessels, +when he quits the surface, are completely distended with oxygenated +blood. So that for an hour or more, a thousand fathoms in the sea, +he carries a surplus stock of vitality in him, just as the camel +crossing the waterless desert carries a surplus supply of drink for +future use in its four supplementary stomachs. The anatomical fact +of this labyrinth is indisputable; and that the supposition founded +upon it is reasonable and true, seems the more cogent to me, when I +consider the otherwise inexplicable obstinacy of that leviathan in +HAVING HIS SPOUTINGS OUT, as the fishermen phrase it. This is what I +mean. If unmolested, upon rising to the surface, the Sperm Whale +will continue there for a period of time exactly uniform with all his +other unmolested risings. Say he stays eleven minutes, and jets +seventy times, that is, respires seventy breaths; then whenever he +rises again, he will be sure to have his seventy breaths over again, +to a minute. Now, if after he fetches a few breaths you alarm him, +so that he sounds, he will be always dodging up again to make good +his regular allowance of air. And not till those seventy breaths are +told, will he finally go down to stay out his full term below. +Remark, however, that in different individuals these rates are +different; but in any one they are alike. Now, why should the whale +thus insist upon having his spoutings out, unless it be to replenish +his reservoir of air, ere descending for good? How obvious is it, +too, that this necessity for the whale's rising exposes him to all +the fatal hazards of the chase. For not by hook or by net could +this vast leviathan be caught, when sailing a thousand fathoms +beneath the sunlight. Not so much thy skill, then, O hunter, as the +great necessities that strike the victory to thee! + +In man, breathing is incessantly going on--one breath only serving +for two or three pulsations; so that whatever other business he has +to attend to, waking or sleeping, breathe he must, or die he will. +But the Sperm Whale only breathes about one seventh or Sunday of his +time. + +It has been said that the whale only breathes through his spout-hole; +if it could truthfully be added that his spouts are mixed with water, +then I opine we should be furnished with the reason why his sense of +smell seems obliterated in him; for the only thing about him that at +all answers to his nose is that identical spout-hole; and being so +clogged with two elements, it could not be expected to have the power +of smelling. But owing to the mystery of the spout--whether it be +water or whether it be vapour--no absolute certainty can as yet be +arrived at on this head. Sure it is, nevertheless, that the Sperm +Whale has no proper olfactories. But what does he want of them? No +roses, no violets, no Cologne-water in the sea. + +Furthermore, as his windpipe solely opens into the tube of his +spouting canal, and as that long canal--like the grand Erie Canal--is +furnished with a sort of locks (that open and shut) for the downward +retention of air or the upward exclusion of water, therefore the +whale has no voice; unless you insult him by saying, that when he so +strangely rumbles, he talks through his nose. But then again, what +has the whale to say? Seldom have I known any profound being that +had anything to say to this world, unless forced to stammer out +something by way of getting a living. Oh! happy that the world is +such an excellent listener! + +Now, the spouting canal of the Sperm Whale, chiefly intended as it is +for the conveyance of air, and for several feet laid along, +horizontally, just beneath the upper surface of his head, and a +little to one side; this curious canal is very much like a gas-pipe +laid down in a city on one side of a street. But the question +returns whether this gas-pipe is also a water-pipe; in other words, +whether the spout of the Sperm Whale is the mere vapour of the exhaled +breath, or whether that exhaled breath is mixed with water taken in +at the mouth, and discharged through the spiracle. It is certain +that the mouth indirectly communicates with the spouting canal; but +it cannot be proved that this is for the purpose of discharging water +through the spiracle. Because the greatest necessity for so doing +would seem to be, when in feeding he accidentally takes in water. +But the Sperm Whale's food is far beneath the surface, and there he +cannot spout even if he would. Besides, if you regard him very +closely, and time him with your watch, you will find that when +unmolested, there is an undeviating rhyme between the periods of his +jets and the ordinary periods of respiration. + +But why pester one with all this reasoning on the subject? Speak +out! You have seen him spout; then declare what the spout is; can +you not tell water from air? My dear sir, in this world it is not so +easy to settle these plain things. I have ever found your plain +things the knottiest of all. And as for this whale spout, you might +almost stand in it, and yet be undecided as to what it is precisely. + +The central body of it is hidden in the snowy sparkling mist +enveloping it; and how can you certainly tell whether any water falls +from it, when, always, when you are close enough to a whale to get a +close view of his spout, he is in a prodigious commotion, the water +cascading all around him. And if at such times you should think that +you really perceived drops of moisture in the spout, how do you know +that they are not merely condensed from its vapour; or how do you know +that they are not those identical drops superficially lodged in the +spout-hole fissure, which is countersunk into the summit of the +whale's head? For even when tranquilly swimming through the mid-day +sea in a calm, with his elevated hump sun-dried as a dromedary's in +the desert; even then, the whale always carries a small basin of +water on his head, as under a blazing sun you will sometimes see a +cavity in a rock filled up with rain. + +Nor is it at all prudent for the hunter to be over curious touching +the precise nature of the whale spout. It will not do for him to be +peering into it, and putting his face in it. You cannot go with your +pitcher to this fountain and fill it, and bring it away. For even +when coming into slight contact with the outer, vapoury shreds of the +jet, which will often happen, your skin will feverishly smart, from +the acridness of the thing so touching it. And I know one, who +coming into still closer contact with the spout, whether with some +scientific object in view, or otherwise, I cannot say, the skin +peeled off from his cheek and arm. Wherefore, among whalemen, the +spout is deemed poisonous; they try to evade it. Another thing; I +have heard it said, and I do not much doubt it, that if the jet is +fairly spouted into your eyes, it will blind you. The wisest thing +the investigator can do then, it seems to me, is to let this deadly +spout alone. + +Still, we can hypothesize, even if we cannot prove and establish. My +hypothesis is this: that the spout is nothing but mist. And besides +other reasons, to this conclusion I am impelled, by considerations +touching the great inherent dignity and sublimity of the Sperm Whale; +I account him no common, shallow being, inasmuch as it is an +undisputed fact that he is never found on soundings, or near shores; +all other whales sometimes are. He is both ponderous and profound. +And I am convinced that from the heads of all ponderous profound +beings, such as Plato, Pyrrho, the Devil, Jupiter, Dante, and so on, +there always goes up a certain semi-visible steam, while in the act +of thinking deep thoughts. While composing a little treatise on +Eternity, I had the curiosity to place a mirror before me; and ere +long saw reflected there, a curious involved worming and undulation +in the atmosphere over my head. The invariable moisture of my hair, +while plunged in deep thought, after six cups of hot tea in my thin +shingled attic, of an August noon; this seems an additional argument +for the above supposition. + +And how nobly it raises our conceit of the mighty, misty monster, to +behold him solemnly sailing through a calm tropical sea; his vast, +mild head overhung by a canopy of vapour, engendered by his +incommunicable contemplations, and that vapour--as you will sometimes +see it--glorified by a rainbow, as if Heaven itself had put its seal +upon his thoughts. For, d'ye see, rainbows do not visit the clear +air; they only irradiate vapour. And so, through all the thick mists +of the dim doubts in my mind, divine intuitions now and then shoot, +enkindling my fog with a heavenly ray. And for this I thank God; for +all have doubts; many deny; but doubts or denials, few along with +them, have intuitions. Doubts of all things earthly, and intuitions +of some things heavenly; this combination makes neither believer nor +infidel, but makes a man who regards them both with equal eye. + + + +CHAPTER 86 + +The Tail. + + +Other poets have warbled the praises of the soft eye of the antelope, +and the lovely plumage of the bird that never alights; less +celestial, I celebrate a tail. + +Reckoning the largest sized Sperm Whale's tail to begin at that point +of the trunk where it tapers to about the girth of a man, it +comprises upon its upper surface alone, an area of at least fifty +square feet. The compact round body of its root expands into two +broad, firm, flat palms or flukes, gradually shoaling away to less +than an inch in thickness. At the crotch or junction, these flukes +slightly overlap, then sideways recede from each other like wings, +leaving a wide vacancy between. In no living thing are the lines of +beauty more exquisitely defined than in the crescentic borders of +these flukes. At its utmost expansion in the full grown whale, the +tail will considerably exceed twenty feet across. + +The entire member seems a dense webbed bed of welded sinews; but cut +into it, and you find that three distinct strata compose it:--upper, +middle, and lower. The fibres in the upper and lower layers, are +long and horizontal; those of the middle one, very short, and running +crosswise between the outside layers. This triune structure, as much +as anything else, imparts power to the tail. To the student of old +Roman walls, the middle layer will furnish a curious parallel to the +thin course of tiles always alternating with the stone in those +wonderful relics of the antique, and which undoubtedly contribute so +much to the great strength of the masonry. + +But as if this vast local power in the tendinous tail were not +enough, the whole bulk of the leviathan is knit over with a warp and +woof of muscular fibres and filaments, which passing on either side +the loins and running down into the flukes, insensibly blend with +them, and largely contribute to their might; so that in the tail the +confluent measureless force of the whole whale seems concentrated to +a point. Could annihilation occur to matter, this were the thing to +do it. + +Nor does this--its amazing strength, at all tend to cripple the +graceful flexion of its motions; where infantileness of ease +undulates through a Titanism of power. On the contrary, those +motions derive their most appalling beauty from it. Real strength +never impairs beauty or harmony, but it often bestows it; and in +everything imposingly beautiful, strength has much to do with the +magic. Take away the tied tendons that all over seem bursting from +the marble in the carved Hercules, and its charm would be gone. As +devout Eckerman lifted the linen sheet from the naked corpse of +Goethe, he was overwhelmed with the massive chest of the man, that +seemed as a Roman triumphal arch. When Angelo paints even God the +Father in human form, mark what robustness is there. And whatever +they may reveal of the divine love in the Son, the soft, curled, +hermaphroditical Italian pictures, in which his idea has been most +successfully embodied; these pictures, so destitute as they are of +all brawniness, hint nothing of any power, but the mere negative, +feminine one of submission and endurance, which on all hands it is +conceded, form the peculiar practical virtues of his teachings. + +Such is the subtle elasticity of the organ I treat of, that whether +wielded in sport, or in earnest, or in anger, whatever be the mood it +be in, its flexions are invariably marked by exceeding grace. +Therein no fairy's arm can transcend it. + +Five great motions are peculiar to it. First, when used as a fin for +progression; Second, when used as a mace in battle; Third, in +sweeping; Fourth, in lobtailing; Fifth, in peaking flukes. + +First: Being horizontal in its position, the Leviathan's tail acts in +a different manner from the tails of all other sea creatures. It +never wriggles. In man or fish, wriggling is a sign of inferiority. +To the whale, his tail is the sole means of propulsion. Scroll-wise +coiled forwards beneath the body, and then rapidly sprung backwards, +it is this which gives that singular darting, leaping motion to the +monster when furiously swimming. His side-fins only serve to steer +by. + +Second: It is a little significant, that while one sperm whale only +fights another sperm whale with his head and jaw, nevertheless, in +his conflicts with man, he chiefly and contemptuously uses his tail. +In striking at a boat, he swiftly curves away his flukes from it, and +the blow is only inflicted by the recoil. If it be made in the +unobstructed air, especially if it descend to its mark, the stroke is +then simply irresistible. No ribs of man or boat can withstand it. +Your only salvation lies in eluding it; but if it comes sideways +through the opposing water, then partly owing to the light buoyancy +of the whale boat, and the elasticity of its materials, a cracked +rib or a dashed plank or two, a sort of stitch in the side, is +generally the most serious result. These submerged side blows are so +often received in the fishery, that they are accounted mere child's +play. Some one strips off a frock, and the hole is stopped. + +Third: I cannot demonstrate it, but it seems to me, that in the whale +the sense of touch is concentrated in the tail; for in this respect +there is a delicacy in it only equalled by the daintiness of the +elephant's trunk. This delicacy is chiefly evinced in the action of +sweeping, when in maidenly gentleness the whale with a certain soft +slowness moves his immense flukes from side to side upon the surface of +the sea; and if he feel but a sailor's whisker, woe to that sailor, +whiskers and all. What tenderness there is in that preliminary +touch! Had this tail any prehensile power, I should straightway +bethink me of Darmonodes' elephant that so frequented the +flower-market, and with low salutations presented nosegays to +damsels, and then caressed their zones. On more accounts than one, a +pity it is that the whale does not possess this prehensile virtue in +his tail; for I have heard of yet another elephant, that when wounded +in the fight, curved round his trunk and extracted the dart. + +Fourth: Stealing unawares upon the whale in the fancied security of +the middle of solitary seas, you find him unbent from the vast +corpulence of his dignity, and kitten-like, he plays on the ocean as +if it were a hearth. But still you see his power in his play. The +broad palms of his tail are flirted high into the air; then smiting +the surface, the thunderous concussion resounds for miles. You would +almost think a great gun had been discharged; and if you noticed the +light wreath of vapour from the spiracle at his other extremity, you +would think that that was the smoke from the touch-hole. + +Fifth: As in the ordinary floating posture of the leviathan the +flukes lie considerably below the level of his back, they are then +completely out of sight beneath the surface; but when he is about to +plunge into the deeps, his entire flukes with at least thirty feet of +his body are tossed erect in the air, and so remain vibrating a +moment, till they downwards shoot out of view. Excepting the sublime +BREACH--somewhere else to be described--this peaking of the whale's +flukes is perhaps the grandest sight to be seen in all animated +nature. Out of the bottomless profundities the gigantic tail seems +spasmodically snatching at the highest heaven. So in dreams, have I +seen majestic Satan thrusting forth his tormented colossal claw from +the flame Baltic of Hell. But in gazing at such scenes, it is all in +all what mood you are in; if in the Dantean, the devils will occur to +you; if in that of Isaiah, the archangels. Standing at the mast-head +of my ship during a sunrise that crimsoned sky and sea, I once saw a +large herd of whales in the east, all heading towards the sun, and +for a moment vibrating in concert with peaked flukes. As it seemed +to me at the time, such a grand embodiment of adoration of the gods +was never beheld, even in Persia, the home of the fire worshippers. +As Ptolemy Philopater testified of the African elephant, I then +testified of the whale, pronouncing him the most devout of all +beings. For according to King Juba, the military elephants of +antiquity often hailed the morning with their trunks uplifted in the +profoundest silence. + +The chance comparison in this chapter, between the whale and the +elephant, so far as some aspects of the tail of the one and the trunk +of the other are concerned, should not tend to place those two +opposite organs on an equality, much less the creatures to which they +respectively belong. For as the mightiest elephant is but a terrier +to Leviathan, so, compared with Leviathan's tail, his trunk is but +the stalk of a lily. The most direful blow from the elephant's trunk +were as the playful tap of a fan, compared with the measureless crush +and crash of the sperm whale's ponderous flukes, which in repeated +instances have one after the other hurled entire boats with all their +oars and crews into the air, very much as an Indian juggler tosses +his balls.* + + +*Though all comparison in the way of general bulk between the whale +and the elephant is preposterous, inasmuch as in that particular the +elephant stands in much the same respect to the whale that a dog does +to the elephant; nevertheless, there are not wanting some points of +curious similitude; among these is the spout. It is well known that +the elephant will often draw up water or dust in his trunk, and then +elevating it, jet it forth in a stream. + + +The more I consider this mighty tail, the more do I deplore my +inability to express it. At times there are gestures in it, which, +though they would well grace the hand of man, remain wholly +inexplicable. In an extensive herd, so remarkable, occasionally, are +these mystic gestures, that I have heard hunters who have declared +them akin to Free-Mason signs and symbols; that the whale, indeed, by +these methods intelligently conversed with the world. Nor are there +wanting other motions of the whale in his general body, full of +strangeness, and unaccountable to his most experienced assailant. +Dissect him how I may, then, I but go skin deep; I know him not, +and never will. But if I know not even the tail of this whale, how +understand his head? much more, how comprehend his face, when face he +has none? Thou shalt see my back parts, my tail, he seems to say, +but my face shall not be seen. But I cannot completely make out his +back parts; and hint what he will about his face, I say again he has +no face. + + + +CHAPTER 87 + +The Grand Armada. + + +The long and narrow peninsula of Malacca, extending south-eastward +from the territories of Birmah, forms the most southerly point of all +Asia. In a continuous line from that peninsula stretch the long +islands of Sumatra, Java, Bally, and Timor; which, with many others, +form a vast mole, or rampart, lengthwise connecting Asia with +Australia, and dividing the long unbroken Indian ocean from the +thickly studded oriental archipelagoes. This rampart is pierced by +several sally-ports for the convenience of ships and whales; +conspicuous among which are the straits of Sunda and Malacca. By the +straits of Sunda, chiefly, vessels bound to China from the west, +emerge into the China seas. + +Those narrow straits of Sunda divide Sumatra from Java; and standing +midway in that vast rampart of islands, buttressed by that bold green +promontory, known to seamen as Java Head; they not a little +correspond to the central gateway opening into some vast walled +empire: and considering the inexhaustible wealth of spices, and +silks, and jewels, and gold, and ivory, with which the thousand +islands of that oriental sea are enriched, it seems a significant +provision of nature, that such treasures, by the very formation of +the land, should at least bear the appearance, however ineffectual, +of being guarded from the all-grasping western world. The shores of +the Straits of Sunda are unsupplied with those domineering fortresses +which guard the entrances to the Mediterranean, the Baltic, and the +Propontis. Unlike the Danes, these Orientals do not demand the +obsequious homage of lowered top-sails from the endless procession of +ships before the wind, which for centuries past, by night and by day, +have passed between the islands of Sumatra and Java, freighted with +the costliest cargoes of the east. But while they freely waive a +ceremonial like this, they do by no means renounce their claim to +more solid tribute. + +Time out of mind the piratical proas of the Malays, lurking among the +low shaded coves and islets of Sumatra, have sallied out upon the +vessels sailing through the straits, fiercely demanding tribute at +the point of their spears. Though by the repeated bloody +chastisements they have received at the hands of European cruisers, +the audacity of these corsairs has of late been somewhat repressed; +yet, even at the present day, we occasionally hear of English and +American vessels, which, in those waters, have been remorselessly +boarded and pillaged. + +With a fair, fresh wind, the Pequod was now drawing nigh to these +straits; Ahab purposing to pass through them into the Javan sea, and +thence, cruising northwards, over waters known to be frequented here +and there by the Sperm Whale, sweep inshore by the Philippine +Islands, and gain the far coast of Japan, in time for the great +whaling season there. By these means, the circumnavigating Pequod +would sweep almost all the known Sperm Whale cruising grounds of the +world, previous to descending upon the Line in the Pacific; where +Ahab, though everywhere else foiled in his pursuit, firmly counted +upon giving battle to Moby Dick, in the sea he was most known to +frequent; and at a season when he might most reasonably be presumed +to be haunting it. + +But how now? in this zoned quest, does Ahab touch no land? does his +crew drink air? Surely, he will stop for water. Nay. For a long +time, now, the circus-running sun has raced within his fiery ring, +and needs no sustenance but what's in himself. So Ahab. Mark this, +too, in the whaler. While other hulls are loaded down with alien +stuff, to be transferred to foreign wharves; the world-wandering +whale-ship carries no cargo but herself and crew, their weapons and +their wants. She has a whole lake's contents bottled in her ample +hold. She is ballasted with utilities; not altogether with unusable +pig-lead and kentledge. She carries years' water in her. Clear old +prime Nantucket water; which, when three years afloat, the +Nantucketer, in the Pacific, prefers to drink before the brackish +fluid, but yesterday rafted off in casks, from the Peruvian or Indian +streams. Hence it is, that, while other ships may have gone to China +from New York, and back again, touching at a score of ports, the +whale-ship, in all that interval, may not have sighted one grain of +soil; her crew having seen no man but floating seamen like +themselves. So that did you carry them the news that another flood +had come; they would only answer--"Well, boys, here's the ark!" + +Now, as many Sperm Whales had been captured off the western coast of +Java, in the near vicinity of the Straits of Sunda; indeed, as most +of the ground, roundabout, was generally recognised by the fishermen +as an excellent spot for cruising; therefore, as the Pequod gained +more and more upon Java Head, the look-outs were repeatedly hailed, +and admonished to keep wide awake. But though the green palmy cliffs +of the land soon loomed on the starboard bow, and with delighted +nostrils the fresh cinnamon was snuffed in the air, yet not a single +jet was descried. Almost renouncing all thought of falling in with +any game hereabouts, the ship had well nigh entered the straits, when +the customary cheering cry was heard from aloft, and ere long a +spectacle of singular magnificence saluted us. + +But here be it premised, that owing to the unwearied activity with +which of late they have been hunted over all four oceans, the Sperm +Whales, instead of almost invariably sailing in small detached +companies, as in former times, are now frequently met with in +extensive herds, sometimes embracing so great a multitude, that it +would almost seem as if numerous nations of them had sworn solemn +league and covenant for mutual assistance and protection. To this +aggregation of the Sperm Whale into such immense caravans, may be +imputed the circumstance that even in the best cruising grounds, you +may now sometimes sail for weeks and months together, without being +greeted by a single spout; and then be suddenly saluted by what +sometimes seems thousands on thousands. + +Broad on both bows, at the distance of some two or three miles, and +forming a great semicircle, embracing one half of the level horizon, +a continuous chain of whale-jets were up-playing and sparkling in the +noon-day air. Unlike the straight perpendicular twin-jets of the +Right Whale, which, dividing at top, fall over in two branches, like +the cleft drooping boughs of a willow, the single forward-slanting +spout of the Sperm Whale presents a thick curled bush of white mist, +continually rising and falling away to leeward. + +Seen from the Pequod's deck, then, as she would rise on a high hill +of the sea, this host of vapoury spouts, individually curling up into +the air, and beheld through a blending atmosphere of bluish haze, +showed like the thousand cheerful chimneys of some dense metropolis, +descried of a balmy autumnal morning, by some horseman on a height. + +As marching armies approaching an unfriendly defile in the mountains, +accelerate their march, all eagerness to place that perilous passage +in their rear, and once more expand in comparative security upon the +plain; even so did this vast fleet of whales now seem hurrying +forward through the straits; gradually contracting the wings of their +semicircle, and swimming on, in one solid, but still crescentic +centre. + +Crowding all sail the Pequod pressed after them; the harpooneers +handling their weapons, and loudly cheering from the heads of their +yet suspended boats. If the wind only held, little doubt had they, +that chased through these Straits of Sunda, the vast host would only +deploy into the Oriental seas to witness the capture of not a few of +their number. And who could tell whether, in that congregated +caravan, Moby Dick himself might not temporarily be swimming, like +the worshipped white-elephant in the coronation procession of the +Siamese! So with stun-sail piled on stun-sail, we sailed along, +driving these leviathans before us; when, of a sudden, the voice of +Tashtego was heard, loudly directing attention to something in our +wake. + +Corresponding to the crescent in our van, we beheld another in our +rear. It seemed formed of detached white vapours, rising and falling +something like the spouts of the whales; only they did not so +completely come and go; for they constantly hovered, without finally +disappearing. Levelling his glass at this sight, Ahab quickly +revolved in his pivot-hole, crying, "Aloft there, and rig whips and +buckets to wet the sails;--Malays, sir, and after us!" + +As if too long lurking behind the headlands, till the Pequod should +fairly have entered the straits, these rascally Asiatics were now in +hot pursuit, to make up for their over-cautious delay. But when the +swift Pequod, with a fresh leading wind, was herself in hot chase; +how very kind of these tawny philanthropists to assist in speeding +her on to her own chosen pursuit,--mere riding-whips and rowels to +her, that they were. As with glass under arm, Ahab to-and-fro paced +the deck; in his forward turn beholding the monsters he chased, and +in the after one the bloodthirsty pirates chasing him; some such +fancy as the above seemed his. And when he glanced upon the green +walls of the watery defile in which the ship was then sailing, and +bethought him that through that gate lay the route to his vengeance, +and beheld, how that through that same gate he was now both chasing +and being chased to his deadly end; and not only that, but a herd of +remorseless wild pirates and inhuman atheistical devils were +infernally cheering him on with their curses;--when all these +conceits had passed through his brain, Ahab's brow was left gaunt and +ribbed, like the black sand beach after some stormy tide has been +gnawing it, without being able to drag the firm thing from its place. + +But thoughts like these troubled very few of the reckless crew; and +when, after steadily dropping and dropping the pirates astern, the +Pequod at last shot by the vivid green Cockatoo Point on the Sumatra +side, emerging at last upon the broad waters beyond; then, the +harpooneers seemed more to grieve that the swift whales had been +gaining upon the ship, than to rejoice that the ship had so +victoriously gained upon the Malays. But still driving on in the +wake of the whales, at length they seemed abating their speed; +gradually the ship neared them; and the wind now dying away, word was +passed to spring to the boats. But no sooner did the herd, by some +presumed wonderful instinct of the Sperm Whale, become notified of +the three keels that were after them,--though as yet a mile in their +rear,--than they rallied again, and forming in close ranks and +battalions, so that their spouts all looked like flashing lines of +stacked bayonets, moved on with redoubled velocity. + +Stripped to our shirts and drawers, we sprang to the white-ash, and +after several hours' pulling were almost disposed to renounce the +chase, when a general pausing commotion among the whales gave +animating token that they were now at last under the influence of +that strange perplexity of inert irresolution, which, when the +fishermen perceive it in the whale, they say he is gallied. The +compact martial columns in which they had been hitherto rapidly and +steadily swimming, were now broken up in one measureless rout; and +like King Porus' elephants in the Indian battle with Alexander, they +seemed going mad with consternation. In all directions expanding in +vast irregular circles, and aimlessly swimming hither and thither, by +their short thick spoutings, they plainly betrayed their distraction +of panic. This was still more strangely evinced by those of their +number, who, completely paralysed as it were, helplessly floated like +water-logged dismantled ships on the sea. Had these Leviathans been +but a flock of simple sheep, pursued over the pasture by three fierce +wolves, they could not possibly have evinced such excessive dismay. +But this occasional timidity is characteristic of almost all herding +creatures. Though banding together in tens of thousands, the +lion-maned buffaloes of the West have fled before a solitary +horseman. Witness, too, all human beings, how when herded together +in the sheepfold of a theatre's pit, they will, at the slightest +alarm of fire, rush helter-skelter for the outlets, crowding, +trampling, jamming, and remorselessly dashing each other to death. +Best, therefore, withhold any amazement at the strangely gallied +whales before us, for there is no folly of the beasts of the earth +which is not infinitely outdone by the madness of men. + +Though many of the whales, as has been said, were in violent motion, +yet it is to be observed that as a whole the herd neither advanced +nor retreated, but collectively remained in one place. As is +customary in those cases, the boats at once separated, each making +for some one lone whale on the outskirts of the shoal. In about +three minutes' time, Queequeg's harpoon was flung; the stricken fish +darted blinding spray in our faces, and then running away with us like +light, steered straight for the heart of the herd. Though such a +movement on the part of the whale struck under such circumstances, is +in no wise unprecedented; and indeed is almost always more or less +anticipated; yet does it present one of the more perilous +vicissitudes of the fishery. For as the swift monster drags you +deeper and deeper into the frantic shoal, you bid adieu to +circumspect life and only exist in a delirious throb. + +As, blind and deaf, the whale plunged forward, as if by sheer power +of speed to rid himself of the iron leech that had fastened to him; +as we thus tore a white gash in the sea, on all sides menaced as we +flew, by the crazed creatures to and fro rushing about us; our beset +boat was like a ship mobbed by ice-isles in a tempest, and striving +to steer through their complicated channels and straits, knowing not at +what moment it may be locked in and crushed. + +But not a bit daunted, Queequeg steered us manfully; now sheering off +from this monster directly across our route in advance; now edging +away from that, whose colossal flukes were suspended overhead, while +all the time, Starbuck stood up in the bows, lance in hand, pricking +out of our way whatever whales he could reach by short darts, for +there was no time to make long ones. Nor were the oarsmen quite +idle, though their wonted duty was now altogether dispensed with. +They chiefly attended to the shouting part of the business. "Out of +the way, Commodore!" cried one, to a great dromedary that of a sudden +rose bodily to the surface, and for an instant threatened to swamp +us. "Hard down with your tail, there!" cried a second to another, +which, close to our gunwale, seemed calmly cooling himself with his +own fan-like extremity. + +All whaleboats carry certain curious contrivances, originally +invented by the Nantucket Indians, called druggs. Two thick squares +of wood of equal size are stoutly clenched together, so that they +cross each other's grain at right angles; a line of considerable +length is then attached to the middle of this block, and the other +end of the line being looped, it can in a moment be fastened to a +harpoon. It is chiefly among gallied whales that this drugg is used. +For then, more whales are close round you than you can possibly +chase at one time. But sperm whales are not every day encountered; +while you may, then, you must kill all you can. And if you cannot +kill them all at once, you must wing them, so that they can be +afterwards killed at your leisure. Hence it is, that at times like +these the drugg, comes into requisition. Our boat was furnished with +three of them. The first and second were successfully darted, and we +saw the whales staggeringly running off, fettered by the enormous +sidelong resistance of the towing drugg. They were cramped like +malefactors with the chain and ball. But upon flinging the third, in +the act of tossing overboard the clumsy wooden block, it caught under +one of the seats of the boat, and in an instant tore it out and +carried it away, dropping the oarsman in the boat's bottom as the +seat slid from under him. On both sides the sea came in at the +wounded planks, but we stuffed two or three drawers and shirts in, +and so stopped the leaks for the time. + +It had been next to impossible to dart these drugged-harpoons, were +it not that as we advanced into the herd, our whale's way greatly +diminished; moreover, that as we went still further and further from +the circumference of commotion, the direful disorders seemed waning. +So that when at last the jerking harpoon drew out, and the towing +whale sideways vanished; then, with the tapering force of his parting +momentum, we glided between two whales into the innermost heart of +the shoal, as if from some mountain torrent we had slid into a serene +valley lake. Here the storms in the roaring glens between the +outermost whales, were heard but not felt. In this central expanse +the sea presented that smooth satin-like surface, called a sleek, +produced by the subtle moisture thrown off by the whale in his more +quiet moods. Yes, we were now in that enchanted calm which they say +lurks at the heart of every commotion. And still in the distracted +distance we beheld the tumults of the outer concentric circles, and +saw successive pods of whales, eight or ten in each, swiftly going +round and round, like multiplied spans of horses in a ring; and so +closely shoulder to shoulder, that a Titanic circus-rider might +easily have over-arched the middle ones, and so have gone round on +their backs. Owing to the density of the crowd of reposing whales, +more immediately surrounding the embayed axis of the herd, no +possible chance of escape was at present afforded us. We must watch +for a breach in the living wall that hemmed us in; the wall that had +only admitted us in order to shut us up. Keeping at the centre of +the lake, we were occasionally visited by small tame cows and calves; +the women and children of this routed host. + +Now, inclusive of the occasional wide intervals between the revolving +outer circles, and inclusive of the spaces between the various pods +in any one of those circles, the entire area at this juncture, +embraced by the whole multitude, must have contained at least two or +three square miles. At any rate--though indeed such a test at such a +time might be deceptive--spoutings might be discovered from our low +boat that seemed playing up almost from the rim of the horizon. I +mention this circumstance, because, as if the cows and calves had +been purposely locked up in this innermost fold; and as if the wide +extent of the herd had hitherto prevented them from learning the +precise cause of its stopping; or, possibly, being so young, +unsophisticated, and every way innocent and inexperienced; however it +may have been, these smaller whales--now and then visiting our +becalmed boat from the margin of the lake--evinced a wondrous +fearlessness and confidence, or else a still becharmed panic which it +was impossible not to marvel at. Like household dogs they came +snuffling round us, right up to our gunwales, and touching them; till +it almost seemed that some spell had suddenly domesticated them. +Queequeg patted their foreheads; Starbuck scratched their backs with +his lance; but fearful of the consequences, for the time refrained +from darting it. + +But far beneath this wondrous world upon the surface, another and +still stranger world met our eyes as we gazed over the side. For, +suspended in those watery vaults, floated the forms of the nursing +mothers of the whales, and those that by their enormous girth seemed +shortly to become mothers. The lake, as I have hinted, was to a +considerable depth exceedingly transparent; and as human infants +while suckling will calmly and fixedly gaze away from the breast, as +if leading two different lives at the time; and while yet drawing +mortal nourishment, be still spiritually feasting upon some unearthly +reminiscence;--even so did the young of these whales seem looking up +towards us, but not at us, as if we were but a bit of Gulfweed in +their new-born sight. Floating on their sides, the mothers also +seemed quietly eyeing us. One of these little infants, that from +certain queer tokens seemed hardly a day old, might have measured +some fourteen feet in length, and some six feet in girth. He was a +little frisky; though as yet his body seemed scarce yet recovered +from that irksome position it had so lately occupied in the maternal +reticule; where, tail to head, and all ready for the final spring, +the unborn whale lies bent like a Tartar's bow. The delicate +side-fins, and the palms of his flukes, still freshly retained the +plaited crumpled appearance of a baby's ears newly arrived from +foreign parts. + +"Line! line!" cried Queequeg, looking over the gunwale; "him fast! +him fast!--Who line him! Who struck?--Two whale; one big, one +little!" + +"What ails ye, man?" cried Starbuck. + +"Look-e here," said Queequeg, pointing down. + +As when the stricken whale, that from the tub has reeled out hundreds +of fathoms of rope; as, after deep sounding, he floats up again, and +shows the slackened curling line buoyantly rising and spiralling +towards the air; so now, Starbuck saw long coils of the umbilical +cord of Madame Leviathan, by which the young cub seemed still +tethered to its dam. Not seldom in the rapid vicissitudes of the +chase, this natural line, with the maternal end loose, becomes +entangled with the hempen one, so that the cub is thereby trapped. +Some of the subtlest secrets of the seas seemed divulged to us in +this enchanted pond. We saw young Leviathan amours in the deep.* + + +*The sperm whale, as with all other species of the Leviathan, but +unlike most other fish, breeds indifferently at all seasons; after a +gestation which may probably be set down at nine months, producing +but one at a time; though in some few known instances giving birth to +an Esau and Jacob:--a contingency provided for in suckling by two +teats, curiously situated, one on each side of the anus; but the +breasts themselves extend upwards from that. When by chance these +precious parts in a nursing whale are cut by the hunter's lance, the +mother's pouring milk and blood rivallingly discolour the sea for +rods. The milk is very sweet and rich; it has been tasted by man; it +might do well with strawberries. When overflowing with mutual +esteem, the whales salute MORE HOMINUM. + + +And thus, though surrounded by circle upon circle of consternations +and affrights, did these inscrutable creatures at the centre freely +and fearlessly indulge in all peaceful concernments; yea, serenely +revelled in dalliance and delight. But even so, amid the tornadoed +Atlantic of my being, do I myself still for ever centrally disport in +mute calm; and while ponderous planets of unwaning woe revolve round +me, deep down and deep inland there I still bathe me in eternal +mildness of joy. + +Meanwhile, as we thus lay entranced, the occasional sudden frantic +spectacles in the distance evinced the activity of the other boats, +still engaged in drugging the whales on the frontier of the host; or +possibly carrying on the war within the first circle, where abundance +of room and some convenient retreats were afforded them. But the +sight of the enraged drugged whales now and then blindly darting to +and fro across the circles, was nothing to what at last met our eyes. +It is sometimes the custom when fast to a whale more than commonly +powerful and alert, to seek to hamstring him, as it were, by +sundering or maiming his gigantic tail-tendon. It is done by darting +a short-handled cutting-spade, to which is attached a rope for +hauling it back again. A whale wounded (as we afterwards learned) in +this part, but not effectually, as it seemed, had broken away from +the boat, carrying along with him half of the harpoon line; and in +the extraordinary agony of the wound, he was now dashing among the +revolving circles like the lone mounted desperado Arnold, at the +battle of Saratoga, carrying dismay wherever he went. + +But agonizing as was the wound of this whale, and an appalling +spectacle enough, any way; yet the peculiar horror with which he +seemed to inspire the rest of the herd, was owing to a cause which at +first the intervening distance obscured from us. But at length we +perceived that by one of the unimaginable accidents of the fishery, +this whale had become entangled in the harpoon-line that he towed; he +had also run away with the cutting-spade in him; and while the free +end of the rope attached to that weapon, had permanently caught in +the coils of the harpoon-line round his tail, the cutting-spade +itself had worked loose from his flesh. So that tormented to +madness, he was now churning through the water, violently flailing +with his flexible tail, and tossing the keen spade about him, +wounding and murdering his own comrades. + +This terrific object seemed to recall the whole herd from their +stationary fright. First, the whales forming the margin of our lake +began to crowd a little, and tumble against each other, as if lifted +by half spent billows from afar; then the lake itself began faintly +to heave and swell; the submarine bridal-chambers and nurseries +vanished; in more and more contracting orbits the whales in the more +central circles began to swim in thickening clusters. Yes, the long +calm was departing. A low advancing hum was soon heard; and then +like to the tumultuous masses of block-ice when the great river +Hudson breaks up in Spring, the entire host of whales came tumbling +upon their inner centre, as if to pile themselves up in one common +mountain. Instantly Starbuck and Queequeg changed places; Starbuck +taking the stern. + +"Oars! Oars!" he intensely whispered, seizing the helm--"gripe your +oars, and clutch your souls, now! My God, men, stand by! Shove him +off, you Queequeg--the whale there!--prick him!--hit him! Stand +up--stand up, and stay so! Spring, men--pull, men; never mind their +backs--scrape them!--scrape away!" + +The boat was now all but jammed between two vast black bulks, leaving +a narrow Dardanelles between their long lengths. But by desperate +endeavor we at last shot into a temporary opening; then giving way +rapidly, and at the same time earnestly watching for another outlet. +After many similar hair-breadth escapes, we at last swiftly glided +into what had just been one of the outer circles, but now crossed by +random whales, all violently making for one centre. This lucky +salvation was cheaply purchased by the loss of Queequeg's hat, who, +while standing in the bows to prick the fugitive whales, had his hat +taken clean from his head by the air-eddy made by the sudden tossing +of a pair of broad flukes close by. + +Riotous and disordered as the universal commotion now was, it soon +resolved itself into what seemed a systematic movement; for having +clumped together at last in one dense body, they then renewed their +onward flight with augmented fleetness. Further pursuit was useless; +but the boats still lingered in their wake to pick up what drugged +whales might be dropped astern, and likewise to secure one which +Flask had killed and waifed. The waif is a pennoned pole, two or +three of which are carried by every boat; and which, when additional +game is at hand, are inserted upright into the floating body of a +dead whale, both to mark its place on the sea, and also as token of +prior possession, should the boats of any other ship draw near. + +The result of this lowering was somewhat illustrative of that +sagacious saying in the Fishery,--the more whales the less fish. Of +all the drugged whales only one was captured. The rest contrived to +escape for the time, but only to be taken, as will hereafter be seen, +by some other craft than the Pequod. + + + +CHAPTER 88 + +Schools and Schoolmasters. + + +The previous chapter gave account of an immense body or herd of Sperm +Whales, and there was also then given the probable cause inducing +those vast aggregations. + +Now, though such great bodies are at times encountered, yet, as must +have been seen, even at the present day, small detached bands are +occasionally observed, embracing from twenty to fifty individuals +each. Such bands are known as schools. They generally are of two +sorts; those composed almost entirely of females, and those mustering +none but young vigorous males, or bulls, as they are familiarly +designated. + +In cavalier attendance upon the school of females, you invariably see +a male of full grown magnitude, but not old; who, upon any alarm, +evinces his gallantry by falling in the rear and covering the flight +of his ladies. In truth, this gentleman is a luxurious Ottoman, +swimming about over the watery world, surroundingly accompanied by +all the solaces and endearments of the harem. The contrast between +this Ottoman and his concubines is striking; because, while he is +always of the largest leviathanic proportions, the ladies, even at +full growth, are not more than one-third of the bulk of an +average-sized male. They are comparatively delicate, indeed; I dare +say, not to exceed half a dozen yards round the waist. Nevertheless, +it cannot be denied, that upon the whole they are hereditarily +entitled to EMBONPOINT. + +It is very curious to watch this harem and its lord in their indolent +ramblings. Like fashionables, they are for ever on the move in +leisurely search of variety. You meet them on the Line in time for +the full flower of the Equatorial feeding season, having just +returned, perhaps, from spending the summer in the Northern seas, and +so cheating summer of all unpleasant weariness and warmth. By the +time they have lounged up and down the promenade of the Equator +awhile, they start for the Oriental waters in anticipation of the +cool season there, and so evade the other excessive temperature of +the year. + +When serenely advancing on one of these journeys, if any strange +suspicious sights are seen, my lord whale keeps a wary eye on his +interesting family. Should any unwarrantably pert young Leviathan +coming that way, presume to draw confidentially close to one of the +ladies, with what prodigious fury the Bashaw assails him, and chases +him away! High times, indeed, if unprincipled young rakes like him +are to be permitted to invade the sanctity of domestic bliss; though +do what the Bashaw will, he cannot keep the most notorious Lothario +out of his bed; for, alas! all fish bed in common. As ashore, the +ladies often cause the most terrible duels among their rival +admirers; just so with the whales, who sometimes come to deadly +battle, and all for love. They fence with their long lower jaws, +sometimes locking them together, and so striving for the supremacy +like elks that warringly interweave their antlers. Not a few are +captured having the deep scars of these encounters,--furrowed heads, +broken teeth, scolloped fins; and in some instances, wrenched and +dislocated mouths. + +But supposing the invader of domestic bliss to betake himself away at +the first rush of the harem's lord, then is it very diverting to +watch that lord. Gently he insinuates his vast bulk among them again +and revels there awhile, still in tantalizing vicinity to young +Lothario, like pious Solomon devoutly worshipping among his thousand +concubines. Granting other whales to be in sight, the fishermen +will seldom give chase to one of these Grand Turks; for these Grand +Turks are too lavish of their strength, and hence their unctuousness +is small. As for the sons and the daughters they beget, why, those sons +and daughters must take care of themselves; at least, with only the +maternal help. For like certain other omnivorous roving lovers that +might be named, my Lord Whale has no taste for the nursery, however +much for the bower; and so, being a great traveller, he leaves his +anonymous babies all over the world; every baby an exotic. In good +time, nevertheless, as the ardour of youth declines; as years and +dumps increase; as reflection lends her solemn pauses; in short, as a +general lassitude overtakes the sated Turk; then a love of ease and +virtue supplants the love for maidens; our Ottoman enters upon the +impotent, repentant, admonitory stage of life, forswears, disbands +the harem, and grown to an exemplary, sulky old soul, goes about all +alone among the meridians and parallels saying his prayers, and +warning each young Leviathan from his amorous errors. + +Now, as the harem of whales is called by the fishermen a school, so +is the lord and master of that school technically known as the +schoolmaster. It is therefore not in strict character, however +admirably satirical, that after going to school himself, he should +then go abroad inculcating not what he learned there, but the folly +of it. His title, schoolmaster, would very naturally seem derived +from the name bestowed upon the harem itself, but some have surmised +that the man who first thus entitled this sort of Ottoman whale, must +have read the memoirs of Vidocq, and informed himself what sort of a +country-schoolmaster that famous Frenchman was in his younger days, +and what was the nature of those occult lessons he inculcated into +some of his pupils. + +The same secludedness and isolation to which the schoolmaster whale +betakes himself in his advancing years, is true of all aged Sperm +Whales. Almost universally, a lone whale--as a solitary Leviathan is +called--proves an ancient one. Like venerable moss-bearded Daniel +Boone, he will have no one near him but Nature herself; and her he +takes to wife in the wilderness of waters, and the best of wives she +is, though she keeps so many moody secrets. + +The schools composing none but young and vigorous males, previously +mentioned, offer a strong contrast to the harem schools. For while +those female whales are characteristically timid, the young males, or +forty-barrel-bulls, as they call them, are by far the most pugnacious +of all Leviathans, and proverbially the most dangerous to encounter; +excepting those wondrous grey-headed, grizzled whales, sometimes met, +and these will fight you like grim fiends exasperated by a penal +gout. + +The Forty-barrel-bull schools are larger than the harem schools. +Like a mob of young collegians, they are full of fight, fun, and +wickedness, tumbling round the world at such a reckless, rollicking +rate, that no prudent underwriter would insure them any more than he +would a riotous lad at Yale or Harvard. They soon relinquish this +turbulence though, and when about three-fourths grown, break up, and +separately go about in quest of settlements, that is, harems. + +Another point of difference between the male and female schools is +still more characteristic of the sexes. Say you strike a +Forty-barrel-bull--poor devil! all his comrades quit him. But strike +a member of the harem school, and her companions swim around her with +every token of concern, sometimes lingering so near her and so long, +as themselves to fall a prey. + + + +CHAPTER 89 + +Fast-Fish and Loose-Fish. + + +The allusion to the waif and waif-poles in the last chapter but one, +necessitates some account of the laws and regulations of the whale +fishery, of which the waif may be deemed the grand symbol and badge. + +It frequently happens that when several ships are cruising in +company, a whale may be struck by one vessel, then escape, and be +finally killed and captured by another vessel; and herein are +indirectly comprised many minor contingencies, all partaking of this +one grand feature. For example,--after a weary and perilous chase +and capture of a whale, the body may get loose from the ship by +reason of a violent storm; and drifting far away to leeward, be +retaken by a second whaler, who, in a calm, snugly tows it alongside, +without risk of life or line. Thus the most vexatious and violent +disputes would often arise between the fishermen, were there not some +written or unwritten, universal, undisputed law applicable to all +cases. + +Perhaps the only formal whaling code authorized by legislative +enactment, was that of Holland. It was decreed by the States-General +in A.D. 1695. But though no other nation has ever had any written +whaling law, yet the American fishermen have been their own +legislators and lawyers in this matter. They have provided a system +which for terse comprehensiveness surpasses Justinian's Pandects and +the By-laws of the Chinese Society for the Suppression of Meddling +with other People's Business. Yes; these laws might be engraven on a +Queen Anne's forthing, or the barb of a harpoon, and worn round the +neck, so small are they. + +I. A Fast-Fish belongs to the party fast to it. + +II. A Loose-Fish is fair game for anybody who can soonest catch it. + +But what plays the mischief with this masterly code is the admirable +brevity of it, which necessitates a vast volume of commentaries to +expound it. + +First: What is a Fast-Fish? Alive or dead a fish is technically +fast, when it is connected with an occupied ship or boat, by any +medium at all controllable by the occupant or occupants,--a mast, an +oar, a nine-inch cable, a telegraph wire, or a strand of cobweb, it +is all the same. Likewise a fish is technically fast when it bears a +waif, or any other recognised symbol of possession; so long as the +party waifing it plainly evince their ability at any time to take it +alongside, as well as their intention so to do. + +These are scientific commentaries; but the commentaries of the +whalemen themselves sometimes consist in hard words and harder +knocks--the Coke-upon-Littleton of the fist. True, among the more +upright and honourable whalemen allowances are always made for +peculiar cases, where it would be an outrageous moral injustice for +one party to claim possession of a whale previously chased or killed +by another party. But others are by no means so scrupulous. + +Some fifty years ago there was a curious case of whale-trover +litigated in England, wherein the plaintiffs set forth that after a +hard chase of a whale in the Northern seas; and when indeed they (the +plaintiffs) had succeeded in harpooning the fish; they were at last, +through peril of their lives, obliged to forsake not only their +lines, but their boat itself. Ultimately the defendants (the crew of +another ship) came up with the whale, struck, killed, seized, and +finally appropriated it before the very eyes of the plaintiffs. And +when those defendants were remonstrated with, their captain snapped +his fingers in the plaintiffs' teeth, and assured them that by way of +doxology to the deed he had done, he would now retain their line, +harpoons, and boat, which had remained attached to the whale at the +time of the seizure. Wherefore the plaintiffs now sued for the +recovery of the value of their whale, line, harpoons, and boat. + +Mr. Erskine was counsel for the defendants; Lord Ellenborough was the +judge. In the course of the defence, the witty Erskine went on to +illustrate his position, by alluding to a recent crim. con. case, +wherein a gentleman, after in vain trying to bridle his wife's +viciousness, had at last abandoned her upon the seas of life; but in +the course of years, repenting of that step, he instituted an action +to recover possession of her. Erskine was on the other side; and he +then supported it by saying, that though the gentleman had originally +harpooned the lady, and had once had her fast, and only by reason of +the great stress of her plunging viciousness, had at last abandoned +her; yet abandon her he did, so that she became a loose-fish; and +therefore when a subsequent gentleman re-harpooned her, the lady then +became that subsequent gentleman's property, along with whatever +harpoon might have been found sticking in her. + +Now in the present case Erskine contended that the examples of the +whale and the lady were reciprocally illustrative of each other. + +These pleadings, and the counter pleadings, being duly heard, the +very learned Judge in set terms decided, to wit,--That as for the +boat, he awarded it to the plaintiffs, because they had merely +abandoned it to save their lives; but that with regard to the +controverted whale, harpoons, and line, they belonged to the +defendants; the whale, because it was a Loose-Fish at the time of the +final capture; and the harpoons and line because when the fish made +off with them, it (the fish) acquired a property in those articles; +and hence anybody who afterwards took the fish had a right to them. +Now the defendants afterwards took the fish; ergo, the aforesaid +articles were theirs. + +A common man looking at this decision of the very learned Judge, +might possibly object to it. But ploughed up to the primary rock of +the matter, the two great principles laid down in the twin whaling +laws previously quoted, and applied and elucidated by Lord +Ellenborough in the above cited case; these two laws touching +Fast-Fish and Loose-Fish, I say, will, on reflection, be found the +fundamentals of all human jurisprudence; for notwithstanding its +complicated tracery of sculpture, the Temple of the Law, like the +Temple of the Philistines, has but two props to stand on. + +Is it not a saying in every one's mouth, Possession is half of the +law: that is, regardless of how the thing came into possession? But +often possession is the whole of the law. What are the sinews and +souls of Russian serfs and Republican slaves but Fast-Fish, whereof +possession is the whole of the law? What to the rapacious landlord +is the widow's last mite but a Fast-Fish? What is yonder undetected +villain's marble mansion with a door-plate for a waif; what is that +but a Fast-Fish? What is the ruinous discount which Mordecai, the +broker, gets from poor Woebegone, the bankrupt, on a loan to +keep Woebegone's family from starvation; what is that ruinous +discount but a Fast-Fish? What is the Archbishop of Savesoul's +income of L100,000 seized from the scant bread and cheese of +hundreds of thousands of broken-backed laborers (all sure of heaven +without any of Savesoul's help) what is that globular L100,000 but a +Fast-Fish? What are the Duke of Dunder's hereditary towns and +hamlets but Fast-Fish? What to that redoubted harpooneer, John Bull, +is poor Ireland, but a Fast-Fish? What to that apostolic lancer, +Brother Jonathan, is Texas but a Fast-Fish? And concerning all +these, is not Possession the whole of the law? + +But if the doctrine of Fast-Fish be pretty generally applicable, the +kindred doctrine of Loose-Fish is still more widely so. That is +internationally and universally applicable. + +What was America in 1492 but a Loose-Fish, in which Columbus struck +the Spanish standard by way of waifing it for his royal master and +mistress? What was Poland to the Czar? What Greece to the Turk? +What India to England? What at last will Mexico be to the United +States? All Loose-Fish. + +What are the Rights of Man and the Liberties of the World but +Loose-Fish? What all men's minds and opinions but Loose-Fish? What +is the principle of religious belief in them but a Loose-Fish? What +to the ostentatious smuggling verbalists are the thoughts of thinkers +but Loose-Fish? What is the great globe itself but a Loose-Fish? +And what are you, reader, but a Loose-Fish and a Fast-Fish, too? + + + +CHAPTER 90 + +Heads or Tails. + + +"De balena vero sufficit, si rex habeat caput, et regina caudam." +BRACTON, L. 3, C. 3. + + +Latin from the books of the Laws of England, which taken along with +the context, means, that of all whales captured by anybody on the +coast of that land, the King, as Honourary Grand Harpooneer, must have +the head, and the Queen be respectfully presented with the tail. A +division which, in the whale, is much like halving an apple; there is +no intermediate remainder. Now as this law, under a modified form, +is to this day in force in England; and as it offers in various +respects a strange anomaly touching the general law of Fast and +Loose-Fish, it is here treated of in a separate chapter, on the same +courteous principle that prompts the English railways to be at the +expense of a separate car, specially reserved for the accommodation +of royalty. In the first place, in curious proof of the fact that +the above-mentioned law is still in force, I proceed to lay before +you a circumstance that happened within the last two years. + +It seems that some honest mariners of Dover, or Sandwich, or some one +of the Cinque Ports, had after a hard chase succeeded in killing and +beaching a fine whale which they had originally descried afar off +from the shore. Now the Cinque Ports are partially or somehow under +the jurisdiction of a sort of policeman or beadle, called a Lord +Warden. Holding the office directly from the crown, I believe, all +the royal emoluments incident to the Cinque Port territories become +by assignment his. By some writers this office is called a sinecure. +But not so. Because the Lord Warden is busily employed at times in +fobbing his perquisites; which are his chiefly by virtue of that same +fobbing of them. + +Now when these poor sun-burnt mariners, bare-footed, and with their +trowsers rolled high up on their eely legs, had wearily hauled their +fat fish high and dry, promising themselves a good L150 from the +precious oil and bone; and in fantasy sipping rare tea with their +wives, and good ale with their cronies, upon the strength of their +respective shares; up steps a very learned and most Christian and +charitable gentleman, with a copy of Blackstone under his arm; and +laying it upon the whale's head, he says--"Hands off! this fish, my +masters, is a Fast-Fish. I seize it as the Lord Warden's." Upon +this the poor mariners in their respectful consternation--so truly +English--knowing not what to say, fall to vigorously scratching their +heads all round; meanwhile ruefully glancing from the whale to the +stranger. But that did in nowise mend the matter, or at all soften +the hard heart of the learned gentleman with the copy of Blackstone. +At length one of them, after long scratching about for his ideas, +made bold to speak, + +"Please, sir, who is the Lord Warden?" + +"The Duke." + +"But the duke had nothing to do with taking this fish?" + +"It is his." + +"We have been at great trouble, and peril, and some expense, and is +all that to go to the Duke's benefit; we getting nothing at all for +our pains but our blisters?" + +"It is his." + +"Is the Duke so very poor as to be forced to this desperate mode of +getting a livelihood?" + +"It is his." + +"I thought to relieve my old bed-ridden mother by part of my share of +this whale." + +"It is his." + +"Won't the Duke be content with a quarter or a half?" + +"It is his." + +In a word, the whale was seized and sold, and his Grace the Duke of +Wellington received the money. Thinking that viewed in some +particular lights, the case might by a bare possibility in some small +degree be deemed, under the circumstances, a rather hard one, an +honest clergyman of the town respectfully addressed a note to his +Grace, begging him to take the case of those unfortunate mariners +into full consideration. To which my Lord Duke in substance replied +(both letters were published) that he had already done so, and +received the money, and would be obliged to the reverend gentleman if +for the future he (the reverend gentleman) would decline meddling +with other people's business. Is this the still militant old man, +standing at the corners of the three kingdoms, on all hands coercing +alms of beggars? + +It will readily be seen that in this case the alleged right of the +Duke to the whale was a delegated one from the Sovereign. We must +needs inquire then on what principle the Sovereign is originally +invested with that right. The law itself has already been set forth. +But Plowdon gives us the reason for it. Says Plowdon, the whale so +caught belongs to the King and Queen, "because of its superior +excellence." And by the soundest commentators this has ever been +held a cogent argument in such matters. + +But why should the King have the head, and the Queen the tail? A +reason for that, ye lawyers! + +In his treatise on "Queen-Gold," or Queen-pinmoney, an old King's +Bench author, one William Prynne, thus discourseth: "Ye tail is ye +Queen's, that ye Queen's wardrobe may be supplied with ye whalebone." +Now this was written at a time when the black limber bone of the +Greenland or Right whale was largely used in ladies' bodices. But +this same bone is not in the tail; it is in the head, which is a sad +mistake for a sagacious lawyer like Prynne. But is the Queen a +mermaid, to be presented with a tail? An allegorical meaning may +lurk here. + +There are two royal fish so styled by the English law writers--the +whale and the sturgeon; both royal property under certain +limitations, and nominally supplying the tenth branch of the crown's +ordinary revenue. I know not that any other author has hinted of the +matter; but by inference it seems to me that the sturgeon must be +divided in the same way as the whale, the King receiving the highly +dense and elastic head peculiar to that fish, which, symbolically +regarded, may possibly be humorously grounded upon some presumed +congeniality. And thus there seems a reason in all things, even in +law. + + + +CHAPTER 91 + +The Pequod Meets The Rose-Bud. + + +"In vain it was to rake for Ambergriese in the paunch of this +Leviathan, insufferable fetor denying not inquiry." +SIR T. BROWNE, V.E. + + +It was a week or two after the last whaling scene recounted, and when +we were slowly sailing over a sleepy, vapoury, mid-day sea, that the +many noses on the Pequod's deck proved more vigilant discoverers than +the three pairs of eyes aloft. A peculiar and not very pleasant +smell was smelt in the sea. + +"I will bet something now," said Stubb, "that somewhere hereabouts +are some of those drugged whales we tickled the other day. I thought +they would keel up before long." + +Presently, the vapours in advance slid aside; and there in the +distance lay a ship, whose furled sails betokened that some sort of +whale must be alongside. As we glided nearer, the stranger showed +French colours from his peak; and by the eddying cloud of vulture +sea-fowl that circled, and hovered, and swooped around him, it was +plain that the whale alongside must be what the fishermen call a +blasted whale, that is, a whale that has died unmolested on the sea, +and so floated an unappropriated corpse. It may well be conceived, +what an unsavory odor such a mass must exhale; worse than an Assyrian +city in the plague, when the living are incompetent to bury the +departed. So intolerable indeed is it regarded by some, that no +cupidity could persuade them to moor alongside of it. Yet are there +those who will still do it; notwithstanding the fact that the oil +obtained from such subjects is of a very inferior quality, and by no +means of the nature of attar-of-rose. + +Coming still nearer with the expiring breeze, we saw that the +Frenchman had a second whale alongside; and this second whale seemed +even more of a nosegay than the first. In truth, it turned out to be +one of those problematical whales that seem to dry up and die with a +sort of prodigious dyspepsia, or indigestion; leaving their defunct +bodies almost entirely bankrupt of anything like oil. Nevertheless, +in the proper place we shall see that no knowing fisherman will ever +turn up his nose at such a whale as this, however much he may shun +blasted whales in general. + +The Pequod had now swept so nigh to the stranger, that Stubb vowed he +recognised his cutting spade-pole entangled in the lines that were +knotted round the tail of one of these whales. + +"There's a pretty fellow, now," he banteringly laughed, standing in +the ship's bows, "there's a jackal for ye! I well know that these +Crappoes of Frenchmen are but poor devils in the fishery; sometimes +lowering their boats for breakers, mistaking them for Sperm Whale +spouts; yes, and sometimes sailing from their port with their hold +full of boxes of tallow candles, and cases of snuffers, foreseeing +that all the oil they will get won't be enough to dip the Captain's +wick into; aye, we all know these things; but look ye, here's a +Crappo that is content with our leavings, the drugged whale there, I +mean; aye, and is content too with scraping the dry bones of that +other precious fish he has there. Poor devil! I say, pass round a +hat, some one, and let's make him a present of a little oil for dear +charity's sake. For what oil he'll get from that drugged whale +there, wouldn't be fit to burn in a jail; no, not in a condemned +cell. And as for the other whale, why, I'll agree to get more oil by +chopping up and trying out these three masts of ours, than he'll get +from that bundle of bones; though, now that I think of it, it may +contain something worth a good deal more than oil; yes, ambergris. I +wonder now if our old man has thought of that. It's worth trying. +Yes, I'm for it;" and so saying he started for the quarter-deck. + +By this time the faint air had become a complete calm; so that +whether or no, the Pequod was now fairly entrapped in the smell, with +no hope of escaping except by its breezing up again. Issuing from +the cabin, Stubb now called his boat's crew, and pulled off for the +stranger. Drawing across her bow, he perceived that in accordance +with the fanciful French taste, the upper part of her stem-piece was +carved in the likeness of a huge drooping stalk, was painted green, +and for thorns had copper spikes projecting from it here and there; +the whole terminating in a symmetrical folded bulb of a bright red +colour. Upon her head boards, in large gilt letters, he read "Bouton +de Rose,"--Rose-button, or Rose-bud; and this was the romantic name +of this aromatic ship. + +Though Stubb did not understand the BOUTON part of the inscription, +yet the word ROSE, and the bulbous figure-head put together, +sufficiently explained the whole to him. + +"A wooden rose-bud, eh?" he cried with his hand to his nose, "that +will do very well; but how like all creation it smells!" + +Now in order to hold direct communication with the people on deck, he +had to pull round the bows to the starboard side, and thus come close +to the blasted whale; and so talk over it. + +Arrived then at this spot, with one hand still to his nose, he +bawled--"Bouton-de-Rose, ahoy! are there any of you Bouton-de-Roses +that speak English?" + +"Yes," rejoined a Guernsey-man from the bulwarks, who turned out to +be the chief-mate. + +"Well, then, my Bouton-de-Rose-bud, have you seen the White Whale?" + +"WHAT whale?" + +"The WHITE Whale--a Sperm Whale--Moby Dick, have ye seen him? + +"Never heard of such a whale. Cachalot Blanche! White Whale--no." + +"Very good, then; good bye now, and I'll call again in a minute." + +Then rapidly pulling back towards the Pequod, and seeing Ahab leaning +over the quarter-deck rail awaiting his report, he moulded his two +hands into a trumpet and shouted--"No, Sir! No!" Upon which Ahab +retired, and Stubb returned to the Frenchman. + +He now perceived that the Guernsey-man, who had just got into the +chains, and was using a cutting-spade, had slung his nose in a sort +of bag. + +"What's the matter with your nose, there?" said Stubb. "Broke it?" + +"I wish it was broken, or that I didn't have any nose at all!" +answered the Guernsey-man, who did not seem to relish the job he was +at very much. "But what are you holding YOURS for?" + +"Oh, nothing! It's a wax nose; I have to hold it on. Fine day, +ain't it? Air rather gardenny, I should say; throw us a bunch of +posies, will ye, Bouton-de-Rose?" + +"What in the devil's name do you want here?" roared the Guernseyman, +flying into a sudden passion. + +"Oh! keep cool--cool? yes, that's the word! why don't you pack those +whales in ice while you're working at 'em? But joking aside, though; +do you know, Rose-bud, that it's all nonsense trying to get any oil +out of such whales? As for that dried up one, there, he hasn't a +gill in his whole carcase." + +"I know that well enough; but, d'ye see, the Captain here won't +believe it; this is his first voyage; he was a Cologne manufacturer +before. But come aboard, and mayhap he'll believe you, if he won't +me; and so I'll get out of this dirty scrape." + +"Anything to oblige ye, my sweet and pleasant fellow," rejoined +Stubb, and with that he soon mounted to the deck. There a queer +scene presented itself. The sailors, in tasselled caps of red +worsted, were getting the heavy tackles in readiness for the whales. +But they worked rather slow and talked very fast, and seemed in +anything but a good humor. All their noses upwardly projected from +their faces like so many jib-booms. Now and then pairs of them would +drop their work, and run up to the mast-head to get some fresh air. +Some thinking they would catch the plague, dipped oakum in coal-tar, +and at intervals held it to their nostrils. Others having broken the +stems of their pipes almost short off at the bowl, were vigorously +puffing tobacco-smoke, so that it constantly filled their +olfactories. + +Stubb was struck by a shower of outcries and anathemas proceeding +from the Captain's round-house abaft; and looking in that direction +saw a fiery face thrust from behind the door, which was held ajar +from within. This was the tormented surgeon, who, after in vain +remonstrating against the proceedings of the day, had betaken himself +to the Captain's round-house (CABINET he called it) to avoid the +pest; but still, could not help yelling out his entreaties and +indignations at times. + +Marking all this, Stubb argued well for his scheme, and turning to +the Guernsey-man had a little chat with him, during which the +stranger mate expressed his detestation of his Captain as a conceited +ignoramus, who had brought them all into so unsavory and unprofitable +a pickle. Sounding him carefully, Stubb further perceived that the +Guernsey-man had not the slightest suspicion concerning the +ambergris. He therefore held his peace on that head, but otherwise +was quite frank and confidential with him, so that the two quickly +concocted a little plan for both circumventing and satirizing the +Captain, without his at all dreaming of distrusting their sincerity. +According to this little plan of theirs, the Guernsey-man, under +cover of an interpreter's office, was to tell the Captain what he +pleased, but as coming from Stubb; and as for Stubb, he was to utter +any nonsense that should come uppermost in him during the interview. + +By this time their destined victim appeared from his cabin. He was a +small and dark, but rather delicate looking man for a sea-captain, +with large whiskers and moustache, however; and wore a red cotton +velvet vest with watch-seals at his side. To this gentleman, Stubb +was now politely introduced by the Guernsey-man, who at once +ostentatiously put on the aspect of interpreting between them. + +"What shall I say to him first?" said he. + +"Why," said Stubb, eyeing the velvet vest and the watch and seals, +"you may as well begin by telling him that he looks a sort of babyish +to me, though I don't pretend to be a judge." + +"He says, Monsieur," said the Guernsey-man, in French, turning to his +captain, "that only yesterday his ship spoke a vessel, whose captain +and chief-mate, with six sailors, had all died of a fever caught from +a blasted whale they had brought alongside." + +Upon this the captain started, and eagerly desired to know more. + +"What now?" said the Guernsey-man to Stubb. + +"Why, since he takes it so easy, tell him that now I have eyed him +carefully, I'm quite certain that he's no more fit to command a +whale-ship than a St. Jago monkey. In fact, tell him from me he's a +baboon." + +"He vows and declares, Monsieur, that the other whale, the dried one, +is far more deadly than the blasted one; in fine, Monsieur, he +conjures us, as we value our lives, to cut loose from these fish." + +Instantly the captain ran forward, and in a loud voice commanded his +crew to desist from hoisting the cutting-tackles, and at once cast +loose the cables and chains confining the whales to the ship. + +"What now?" said the Guernsey-man, when the Captain had returned to +them. + +"Why, let me see; yes, you may as well tell him now that--that--in +fact, tell him I've diddled him, and (aside to himself) perhaps +somebody else." + +"He says, Monsieur, that he's very happy to have been of any service +to us." + +Hearing this, the captain vowed that they were the grateful parties +(meaning himself and mate) and concluded by inviting Stubb down +into his cabin to drink a bottle of Bordeaux. + +"He wants you to take a glass of wine with him," said the +interpreter. + +"Thank him heartily; but tell him it's against my principles to drink +with the man I've diddled. In fact, tell him I must go." + +"He says, Monsieur, that his principles won't admit of his drinking; +but that if Monsieur wants to live another day to drink, then +Monsieur had best drop all four boats, and pull the ship away from +these whales, for it's so calm they won't drift." + +By this time Stubb was over the side, and getting into his boat, +hailed the Guernsey-man to this effect,--that having a long tow-line +in his boat, he would do what he could to help them, by pulling out +the lighter whale of the two from the ship's side. While the +Frenchman's boats, then, were engaged in towing the ship one way, +Stubb benevolently towed away at his whale the other way, +ostentatiously slacking out a most unusually long tow-line. + +Presently a breeze sprang up; Stubb feigned to cast off from the +whale; hoisting his boats, the Frenchman soon increased his distance, +while the Pequod slid in between him and Stubb's whale. Whereupon +Stubb quickly pulled to the floating body, and hailing the Pequod to +give notice of his intentions, at once proceeded to reap the fruit of +his unrighteous cunning. Seizing his sharp boat-spade, he commenced +an excavation in the body, a little behind the side fin. You would +almost have thought he was digging a cellar there in the sea; and +when at length his spade struck against the gaunt ribs, it was like +turning up old Roman tiles and pottery buried in fat English loam. +His boat's crew were all in high excitement, eagerly helping their +chief, and looking as anxious as gold-hunters. + +And all the time numberless fowls were diving, and ducking, and +screaming, and yelling, and fighting around them. Stubb was +beginning to look disappointed, especially as the horrible nosegay +increased, when suddenly from out the very heart of this plague, +there stole a faint stream of perfume, which flowed through the tide +of bad smells without being absorbed by it, as one river will flow +into and then along with another, without at all blending with it for +a time. + +"I have it, I have it," cried Stubb, with delight, striking something +in the subterranean regions, "a purse! a purse!" + +Dropping his spade, he thrust both hands in, and drew out handfuls of +something that looked like ripe Windsor soap, or rich mottled old +cheese; very unctuous and savory withal. You might easily dent it +with your thumb; it is of a hue between yellow and ash colour. And +this, good friends, is ambergris, worth a gold guinea an ounce to any +druggist. Some six handfuls were obtained; but more was unavoidably +lost in the sea, and still more, perhaps, might have been secured +were it not for impatient Ahab's loud command to Stubb to desist, and +come on board, else the ship would bid them good bye. + + + +CHAPTER 92 + +Ambergris. + + +Now this ambergris is a very curious substance, and so important as +an article of commerce, that in 1791 a certain Nantucket-born Captain +Coffin was examined at the bar of the English House of Commons on +that subject. For at that time, and indeed until a comparatively +late day, the precise origin of ambergris remained, like amber +itself, a problem to the learned. Though the word ambergris is but +the French compound for grey amber, yet the two substances are quite +distinct. For amber, though at times found on the sea-coast, is also +dug up in some far inland soils, whereas ambergris is never found +except upon the sea. Besides, amber is a hard, transparent, brittle, +odorless substance, used for mouth-pieces to pipes, for beads and +ornaments; but ambergris is soft, waxy, and so highly fragrant and +spicy, that it is largely used in perfumery, in pastiles, precious +candles, hair-powders, and pomatum. The Turks use it in cooking, and +also carry it to Mecca, for the same purpose that frankincense is +carried to St. Peter's in Rome. Some wine merchants drop a few +grains into claret, to flavor it. + +Who would think, then, that such fine ladies and gentlemen should +regale themselves with an essence found in the inglorious bowels of a +sick whale! Yet so it is. By some, ambergris is supposed to be the +cause, and by others the effect, of the dyspepsia in the whale. How +to cure such a dyspepsia it were hard to say, unless by administering +three or four boat loads of Brandreth's pills, and then running out +of harm's way, as laborers do in blasting rocks. + +I have forgotten to say that there were found in this ambergris, +certain hard, round, bony plates, which at first Stubb thought might +be sailors' trowsers buttons; but it afterwards turned out that they +were nothing more than pieces of small squid bones embalmed in that +manner. + +Now that the incorruption of this most fragrant ambergris should be +found in the heart of such decay; is this nothing? Bethink thee of +that saying of St. Paul in Corinthians, about corruption and +incorruption; how that we are sown in dishonour, but raised in glory. +And likewise call to mind that saying of Paracelsus about what it is +that maketh the best musk. Also forget not the strange fact that of +all things of ill-savor, Cologne-water, in its rudimental +manufacturing stages, is the worst. + +I should like to conclude the chapter with the above appeal, but +cannot, owing to my anxiety to repel a charge often made against +whalemen, and which, in the estimation of some already biased minds, +might be considered as indirectly substantiated by what has been said +of the Frenchman's two whales. Elsewhere in this volume the +slanderous aspersion has been disproved, that the vocation of whaling +is throughout a slatternly, untidy business. But there is another +thing to rebut. They hint that all whales always smell bad. Now how +did this odious stigma originate? + +I opine, that it is plainly traceable to the first arrival of the +Greenland whaling ships in London, more than two centuries ago. +Because those whalemen did not then, and do not now, try out their +oil at sea as the Southern ships have always done; but cutting up the +fresh blubber in small bits, thrust it through the bung holes of +large casks, and carry it home in that manner; the shortness of the +season in those Icy Seas, and the sudden and violent storms to which +they are exposed, forbidding any other course. The consequence is, +that upon breaking into the hold, and unloading one of these whale +cemeteries, in the Greenland dock, a savor is given forth somewhat +similar to that arising from excavating an old city grave-yard, for +the foundations of a Lying-in-Hospital. + +I partly surmise also, that this wicked charge against whalers may be +likewise imputed to the existence on the coast of Greenland, in +former times, of a Dutch village called Schmerenburgh or Smeerenberg, +which latter name is the one used by the learned Fogo Von Slack, in +his great work on Smells, a text-book on that subject. As its name +imports (smeer, fat; berg, to put up), this village was founded in +order to afford a place for the blubber of the Dutch whale fleet to +be tried out, without being taken home to Holland for that purpose. +It was a collection of furnaces, fat-kettles, and oil sheds; and when +the works were in full operation certainly gave forth no very +pleasant savor. But all this is quite different with a South Sea +Sperm Whaler; which in a voyage of four years perhaps, after +completely filling her hold with oil, does not, perhaps, consume +fifty days in the business of boiling out; and in the state that it +is casked, the oil is nearly scentless. The truth is, that living or +dead, if but decently treated, whales as a species are by no means +creatures of ill odor; nor can whalemen be recognised, as the people +of the middle ages affected to detect a Jew in the company, by the +nose. Nor indeed can the whale possibly be otherwise than fragrant, +when, as a general thing, he enjoys such high health; taking +abundance of exercise; always out of doors; though, it is true, +seldom in the open air. I say, that the motion of a Sperm Whale's +flukes above water dispenses a perfume, as when a musk-scented lady +rustles her dress in a warm parlor. What then shall I liken the +Sperm Whale to for fragrance, considering his magnitude? Must it not +be to that famous elephant, with jewelled tusks, and redolent with +myrrh, which was led out of an Indian town to do honour to Alexander +the Great? + + + +CHAPTER 93 + +The Castaway. + + +It was but some few days after encountering the Frenchman, that a +most significant event befell the most insignificant of the Pequod's +crew; an event most lamentable; and which ended in providing the +sometimes madly merry and predestinated craft with a living and ever +accompanying prophecy of whatever shattered sequel might prove her +own. + +Now, in the whale ship, it is not every one that goes in the boats. +Some few hands are reserved called ship-keepers, whose province it is +to work the vessel while the boats are pursuing the whale. As a +general thing, these ship-keepers are as hardy fellows as the men +comprising the boats' crews. But if there happen to be an unduly +slender, clumsy, or timorous wight in the ship, that wight is certain +to be made a ship-keeper. It was so in the Pequod with the little +negro Pippin by nick-name, Pip by abbreviation. Poor Pip! ye have +heard of him before; ye must remember his tambourine on that dramatic +midnight, so gloomy-jolly. + +In outer aspect, Pip and Dough-Boy made a match, like a black pony +and a white one, of equal developments, though of dissimilar colour, +driven in one eccentric span. But while hapless Dough-Boy was by +nature dull and torpid in his intellects, Pip, though over +tender-hearted, was at bottom very bright, with that pleasant, +genial, jolly brightness peculiar to his tribe; a tribe, which ever +enjoy all holidays and festivities with finer, freer relish than any +other race. For blacks, the year's calendar should show naught but +three hundred and sixty-five Fourth of Julys and New Year's Days. +Nor smile so, while I write that this little black was brilliant, for +even blackness has its brilliancy; behold yon lustrous ebony, +panelled in king's cabinets. But Pip loved life, and all life's +peaceable securities; so that the panic-striking business in which he +had somehow unaccountably become entrapped, had most sadly blurred +his brightness; though, as ere long will be seen, what was thus +temporarily subdued in him, in the end was destined to be luridly +illumined by strange wild fires, that fictitiously showed him off to +ten times the natural lustre with which in his native Tolland County +in Connecticut, he had once enlivened many a fiddler's frolic on the +green; and at melodious even-tide, with his gay ha-ha! had turned the +round horizon into one star-belled tambourine. So, though in the +clear air of day, suspended against a blue-veined neck, the +pure-watered diamond drop will healthful glow; yet, when the cunning +jeweller would show you the diamond in its most impressive lustre, he +lays it against a gloomy ground, and then lights it up, not by the +sun, but by some unnatural gases. Then come out those fiery +effulgences, infernally superb; then the evil-blazing diamond, once +the divinest symbol of the crystal skies, looks like some crown-jewel +stolen from the King of Hell. But let us to the story. + +It came to pass, that in the ambergris affair Stubb's after-oarsman +chanced so to sprain his hand, as for a time to become quite maimed; +and, temporarily, Pip was put into his place. + +The first time Stubb lowered with him, Pip evinced much nervousness; +but happily, for that time, escaped close contact with the whale; and +therefore came off not altogether discreditably; though Stubb +observing him, took care, afterwards, to exhort him to cherish his +courageousness to the utmost, for he might often find it needful. + +Now upon the second lowering, the boat paddled upon the whale; and as +the fish received the darted iron, it gave its customary rap, which +happened, in this instance, to be right under poor Pip's seat. The +involuntary consternation of the moment caused him to leap, paddle in +hand, out of the boat; and in such a way, that part of the slack +whale line coming against his chest, he breasted it overboard with +him, so as to become entangled in it, when at last plumping into the +water. That instant the stricken whale started on a fierce run, the +line swiftly straightened; and presto! poor Pip came all foaming up +to the chocks of the boat, remorselessly dragged there by the line, +which had taken several turns around his chest and neck. + +Tashtego stood in the bows. He was full of the fire of the hunt. He +hated Pip for a poltroon. Snatching the boat-knife from its sheath, +he suspended its sharp edge over the line, and turning towards Stubb, +exclaimed interrogatively, "Cut?" Meantime Pip's blue, choked face +plainly looked, Do, for God's sake! All passed in a flash. In less +than half a minute, this entire thing happened. + +"Damn him, cut!" roared Stubb; and so the whale was lost and Pip was +saved. + +So soon as he recovered himself, the poor little negro was assailed +by yells and execrations from the crew. Tranquilly permitting these +irregular cursings to evaporate, Stubb then in a plain, +business-like, but still half humorous manner, cursed Pip officially; +and that done, unofficially gave him much wholesome advice. The +substance was, Never jump from a boat, Pip, except--but all the rest +was indefinite, as the soundest advice ever is. Now, in general, +STICK TO THE BOAT, is your true motto in whaling; but cases will +sometimes happen when LEAP FROM THE BOAT, is still better. Moreover, +as if perceiving at last that if he should give undiluted +conscientious advice to Pip, he would be leaving him too wide a +margin to jump in for the future; Stubb suddenly dropped all advice, +and concluded with a peremptory command, "Stick to the boat, Pip, or +by the Lord, I won't pick you up if you jump; mind that. We can't +afford to lose whales by the likes of you; a whale would sell for +thirty times what you would, Pip, in Alabama. Bear that in mind, and +don't jump any more." Hereby perhaps Stubb indirectly hinted, that +though man loved his fellow, yet man is a money-making animal, which +propensity too often interferes with his benevolence. + +But we are all in the hands of the Gods; and Pip jumped again. It +was under very similar circumstances to the first performance; but +this time he did not breast out the line; and hence, when the whale +started to run, Pip was left behind on the sea, like a hurried +traveller's trunk. Alas! Stubb was but too true to his word. It +was a beautiful, bounteous, blue day; the spangled sea calm and +cool, and flatly stretching away, all round, to the horizon, like +gold-beater's skin hammered out to the extremest. Bobbing up and +down in that sea, Pip's ebon head showed like a head of cloves. No +boat-knife was lifted when he fell so rapidly astern. Stubb's +inexorable back was turned upon him; and the whale was winged. In +three minutes, a whole mile of shoreless ocean was between Pip and +Stubb. Out from the centre of the sea, poor Pip turned his crisp, +curling, black head to the sun, another lonely castaway, though the +loftiest and the brightest. + +Now, in calm weather, to swim in the open ocean is as easy to the +practised swimmer as to ride in a spring-carriage ashore. But the +awful lonesomeness is intolerable. The intense concentration of self +in the middle of such a heartless immensity, my God! who can tell it? +Mark, how when sailors in a dead calm bathe in the open sea--mark +how closely they hug their ship and only coast along her sides. + +But had Stubb really abandoned the poor little negro to his fate? +No; he did not mean to, at least. Because there were two boats in +his wake, and he supposed, no doubt, that they would of course come +up to Pip very quickly, and pick him up; though, indeed, such +considerations towards oarsmen jeopardized through their own +timidity, is not always manifested by the hunters in all similar +instances; and such instances not unfrequently occur; almost +invariably in the fishery, a coward, so called, is marked with the +same ruthless detestation peculiar to military navies and armies. + +But it so happened, that those boats, without seeing Pip, suddenly +spying whales close to them on one side, turned, and gave chase; and +Stubb's boat was now so far away, and he and all his crew so intent +upon his fish, that Pip's ringed horizon began to expand around him +miserably. By the merest chance the ship itself at last rescued him; +but from that hour the little negro went about the deck an idiot; +such, at least, they said he was. The sea had jeeringly kept his +finite body up, but drowned the infinite of his soul. Not drowned +entirely, though. Rather carried down alive to wondrous depths, +where strange shapes of the unwarped primal world glided to and fro +before his passive eyes; and the miser-merman, Wisdom, revealed his +hoarded heaps; and among the joyous, heartless, ever-juvenile +eternities, Pip saw the multitudinous, God-omnipresent, coral +insects, that out of the firmament of waters heaved the colossal +orbs. He saw God's foot upon the treadle of the loom, and spoke it; +and therefore his shipmates called him mad. So man's insanity is +heaven's sense; and wandering from all mortal reason, man comes at +last to that celestial thought, which, to reason, is absurd and +frantic; and weal or woe, feels then uncompromised, indifferent as +his God. + +For the rest, blame not Stubb too hardly. The thing is common in +that fishery; and in the sequel of the narrative, it will then be +seen what like abandonment befell myself. + + + +CHAPTER 94 + +A Squeeze of the Hand. + + +That whale of Stubb's, so dearly purchased, was duly brought to the +Pequod's side, where all those cutting and hoisting operations +previously detailed, were regularly gone through, even to the baling +of the Heidelburgh Tun, or Case. + +While some were occupied with this latter duty, others were employed +in dragging away the larger tubs, so soon as filled with the sperm; +and when the proper time arrived, this same sperm was carefully +manipulated ere going to the try-works, of which anon. + +It had cooled and crystallized to such a degree, that when, with +several others, I sat down before a large Constantine's bath of it, I +found it strangely concreted into lumps, here and there rolling about +in the liquid part. It was our business to squeeze these lumps back +into fluid. A sweet and unctuous duty! No wonder that in old times +this sperm was such a favourite cosmetic. Such a clearer! such a +sweetener! such a softener! such a delicious molifier! After +having my hands in it for only a few minutes, my fingers felt like +eels, and began, as it were, to serpentine and spiralise. + +As I sat there at my ease, cross-legged on the deck; after the bitter +exertion at the windlass; under a blue tranquil sky; the ship under +indolent sail, and gliding so serenely along; as I bathed my hands +among those soft, gentle globules of infiltrated tissues, woven +almost within the hour; as they richly broke to my fingers, and +discharged all their opulence, like fully ripe grapes their wine; as +I snuffed up that uncontaminated aroma,--literally and truly, like +the smell of spring violets; I declare to you, that for the time I +lived as in a musky meadow; I forgot all about our horrible oath; in +that inexpressible sperm, I washed my hands and my heart of it; I +almost began to credit the old Paracelsan superstition that sperm is +of rare virtue in allaying the heat of anger; while bathing in that +bath, I felt divinely free from all ill-will, or petulance, or +malice, of any sort whatsoever. + +Squeeze! squeeze! squeeze! all the morning long; I squeezed that +sperm till I myself almost melted into it; I squeezed that sperm till +a strange sort of insanity came over me; and I found myself +unwittingly squeezing my co-laborers' hands in it, mistaking their +hands for the gentle globules. Such an abounding, affectionate, +friendly, loving feeling did this avocation beget; that at last I was +continually squeezing their hands, and looking up into their eyes +sentimentally; as much as to say,--Oh! my dear fellow beings, why +should we longer cherish any social acerbities, or know the slightest +ill-humor or envy! Come; let us squeeze hands all round; nay, let us +all squeeze ourselves into each other; let us squeeze ourselves +universally into the very milk and sperm of kindness. + +Would that I could keep squeezing that sperm for ever! For now, +since by many prolonged, repeated experiences, I have perceived that +in all cases man must eventually lower, or at least shift, his +conceit of attainable felicity; not placing it anywhere in the +intellect or the fancy; but in the wife, the heart, the bed, the +table, the saddle, the fireside, the country; now that I have +perceived all this, I am ready to squeeze case eternally. In +thoughts of the visions of the night, I saw long rows of angels in +paradise, each with his hands in a jar of spermaceti. + +Now, while discoursing of sperm, it behooves to speak of other things +akin to it, in the business of preparing the sperm whale for the +try-works. + +First comes white-horse, so called, which is obtained from the +tapering part of the fish, and also from the thicker portions of his +flukes. It is tough with congealed tendons--a wad of muscle--but +still contains some oil. After being severed from the whale, the +white-horse is first cut into portable oblongs ere going to the +mincer. They look much like blocks of Berkshire marble. + +Plum-pudding is the term bestowed upon certain fragmentary parts of +the whale's flesh, here and there adhering to the blanket of blubber, +and often participating to a considerable degree in its unctuousness. +It is a most refreshing, convivial, beautiful object to behold. As +its name imports, it is of an exceedingly rich, mottled tint, with a +bestreaked snowy and golden ground, dotted with spots of the deepest +crimson and purple. It is plums of rubies, in pictures of citron. +Spite of reason, it is hard to keep yourself from eating it. I +confess, that once I stole behind the foremast to try it. It tasted +something as I should conceive a royal cutlet from the thigh of Louis +le Gros might have tasted, supposing him to have been killed the +first day after the venison season, and that particular venison +season contemporary with an unusually fine vintage of the vineyards +of Champagne. + +There is another substance, and a very singular one, which turns up +in the course of this business, but which I feel it to be very +puzzling adequately to describe. It is called slobgollion; an +appellation original with the whalemen, and even so is the nature of +the substance. It is an ineffably oozy, stringy affair, most +frequently found in the tubs of sperm, after a prolonged squeezing, +and subsequent decanting. I hold it to be the wondrously thin, +ruptured membranes of the case, coalescing. + +Gurry, so called, is a term properly belonging to right whalemen, but +sometimes incidentally used by the sperm fishermen. It designates +the dark, glutinous substance which is scraped off the back of the +Greenland or right whale, and much of which covers the decks of those +inferior souls who hunt that ignoble Leviathan. + +Nippers. Strictly this word is not indigenous to the whale's +vocabulary. But as applied by whalemen, it becomes so. A whaleman's +nipper is a short firm strip of tendinous stuff cut from the tapering +part of Leviathan's tail: it averages an inch in thickness, and for +the rest, is about the size of the iron part of a hoe. Edgewise +moved along the oily deck, it operates like a leathern squilgee; and +by nameless blandishments, as of magic, allures along with it all +impurities. + +But to learn all about these recondite matters, your best way is at +once to descend into the blubber-room, and have a long talk with its +inmates. This place has previously been mentioned as the receptacle +for the blanket-pieces, when stript and hoisted from the whale. When +the proper time arrives for cutting up its contents, this apartment +is a scene of terror to all tyros, especially by night. On one side, +lit by a dull lantern, a space has been left clear for the workmen. +They generally go in pairs,--a pike-and-gaffman and a spade-man. +The whaling-pike is similar to a frigate's boarding-weapon of the +same name. The gaff is something like a boat-hook. With his gaff, +the gaffman hooks on to a sheet of blubber, and strives to hold it +from slipping, as the ship pitches and lurches about. Meanwhile, the +spade-man stands on the sheet itself, perpendicularly chopping it +into the portable horse-pieces. This spade is sharp as hone can make +it; the spademan's feet are shoeless; the thing he stands on will +sometimes irresistibly slide away from him, like a sledge. If he +cuts off one of his own toes, or one of his assistants', would you be +very much astonished? Toes are scarce among veteran blubber-room +men. + + + +CHAPTER 95 + +The Cassock. + + +Had you stepped on board the Pequod at a certain juncture of this +post-mortemizing of the whale; and had you strolled forward nigh the +windlass, pretty sure am I that you would have scanned with no small +curiosity a very strange, enigmatical object, which you would have +seen there, lying along lengthwise in the lee scuppers. Not the +wondrous cistern in the whale's huge head; not the prodigy of his +unhinged lower jaw; not the miracle of his symmetrical tail; none of +these would so surprise you, as half a glimpse of that unaccountable +cone,--longer than a Kentuckian is tall, nigh a foot in diameter at +the base, and jet-black as Yojo, the ebony idol of Queequeg. And an +idol, indeed, it is; or, rather, in old times, its likeness was. +Such an idol as that found in the secret groves of Queen Maachah in +Judea; and for worshipping which, King Asa, her son, did depose her, +and destroyed the idol, and burnt it for an abomination at the brook +Kedron, as darkly set forth in the 15th chapter of the First Book of +Kings. + +Look at the sailor, called the mincer, who now comes along, and +assisted by two allies, heavily backs the grandissimus, as the +mariners call it, and with bowed shoulders, staggers off with it as +if he were a grenadier carrying a dead comrade from the field. +Extending it upon the forecastle deck, he now proceeds cylindrically +to remove its dark pelt, as an African hunter the pelt of a boa. +This done he turns the pelt inside out, like a pantaloon leg; gives +it a good stretching, so as almost to double its diameter; and at +last hangs it, well spread, in the rigging, to dry. Ere long, it is +taken down; when removing some three feet of it, towards the pointed +extremity, and then cutting two slits for arm-holes at the other end, +he lengthwise slips himself bodily into it. The mincer now stands +before you invested in the full canonicals of his calling. +Immemorial to all his order, this investiture alone will adequately +protect him, while employed in the peculiar functions of his office. + +That office consists in mincing the horse-pieces of blubber for the +pots; an operation which is conducted at a curious wooden horse, +planted endwise against the bulwarks, and with a capacious tub +beneath it, into which the minced pieces drop, fast as the sheets +from a rapt orator's desk. Arrayed in decent black; occupying a +conspicuous pulpit; intent on bible leaves; what a candidate for an +archbishopric, what a lad for a Pope were this mincer!* + + +*Bible leaves! Bible leaves! This is the invariable cry from the +mates to the mincer. It enjoins him to be careful, and cut his work +into as thin slices as possible, inasmuch as by so doing the business +of boiling out the oil is much accelerated, and its quantity +considerably increased, besides perhaps improving it in quality. + + + +CHAPTER 96 + +The Try-Works. + + +Besides her hoisted boats, an American whaler is outwardly +distinguished by her try-works. She presents the curious anomaly of +the most solid masonry joining with oak and hemp in constituting the +completed ship. It is as if from the open field a brick-kiln were +transported to her planks. + +The try-works are planted between the foremast and mainmast, the +most roomy part of the deck. The timbers beneath are of a peculiar +strength, fitted to sustain the weight of an almost solid mass of +brick and mortar, some ten feet by eight square, and five in height. +The foundation does not penetrate the deck, but the masonry is firmly +secured to the surface by ponderous knees of iron bracing it on all +sides, and screwing it down to the timbers. On the flanks it is +cased with wood, and at top completely covered by a large, sloping, +battened hatchway. Removing this hatch we expose the great try-pots, +two in number, and each of several barrels' capacity. When not in +use, they are kept remarkably clean. Sometimes they are polished +with soapstone and sand, till they shine within like silver +punch-bowls. During the night-watches some cynical old sailors will +crawl into them and coil themselves away there for a nap. While +employed in polishing them--one man in each pot, side by side--many +confidential communications are carried on, over the iron lips. It +is a place also for profound mathematical meditation. It was in the +left hand try-pot of the Pequod, with the soapstone diligently +circling round me, that I was first indirectly struck by the +remarkable fact, that in geometry all bodies gliding along the +cycloid, my soapstone for example, will descend from any point in +precisely the same time. + +Removing the fire-board from the front of the try-works, the bare +masonry of that side is exposed, penetrated by the two iron mouths of +the furnaces, directly underneath the pots. These mouths are fitted +with heavy doors of iron. The intense heat of the fire is prevented +from communicating itself to the deck, by means of a shallow +reservoir extending under the entire inclosed surface of the works. +By a tunnel inserted at the rear, this reservoir is kept replenished +with water as fast as it evaporates. There are no external chimneys; +they open direct from the rear wall. And here let us go back for a +moment. + +It was about nine o'clock at night that the Pequod's try-works were +first started on this present voyage. It belonged to Stubb to +oversee the business. + +"All ready there? Off hatch, then, and start her. You cook, fire +the works." This was an easy thing, for the carpenter had been +thrusting his shavings into the furnace throughout the passage. Here +be it said that in a whaling voyage the first fire in the try-works has +to be fed for a time with wood. After that no wood is used, except +as a means of quick ignition to the staple fuel. In a word, after +being tried out, the crisp, shrivelled blubber, now called scraps or +fritters, still contains considerable of its unctuous properties. +These fritters feed the flames. Like a plethoric burning martyr, or +a self-consuming misanthrope, once ignited, the whale supplies his +own fuel and burns by his own body. Would that he consumed his own +smoke! for his smoke is horrible to inhale, and inhale it you must, +and not only that, but you must live in it for the time. It has an +unspeakable, wild, Hindoo odor about it, such as may lurk in the +vicinity of funereal pyres. It smells like the left wing of the day +of judgment; it is an argument for the pit. + +By midnight the works were in full operation. We were clear from the +carcase; sail had been made; the wind was freshening; the wild ocean +darkness was intense. But that darkness was licked up by the fierce +flames, which at intervals forked forth from the sooty flues, and +illuminated every lofty rope in the rigging, as with the famed Greek +fire. The burning ship drove on, as if remorselessly commissioned to +some vengeful deed. So the pitch and sulphur-freighted brigs of the +bold Hydriote, Canaris, issuing from their midnight harbors, with +broad sheets of flame for sails, bore down upon the Turkish frigates, +and folded them in conflagrations. + +The hatch, removed from the top of the works, now afforded a wide +hearth in front of them. Standing on this were the Tartarean shapes +of the pagan harpooneers, always the whale-ship's stokers. With huge +pronged poles they pitched hissing masses of blubber into the +scalding pots, or stirred up the fires beneath, till the snaky flames +darted, curling, out of the doors to catch them by the feet. The +smoke rolled away in sullen heaps. To every pitch of the ship there +was a pitch of the boiling oil, which seemed all eagerness to leap +into their faces. Opposite the mouth of the works, on the further +side of the wide wooden hearth, was the windlass. This served for a +sea-sofa. Here lounged the watch, when not otherwise employed, +looking into the red heat of the fire, till their eyes felt scorched +in their heads. Their tawny features, now all begrimed with smoke +and sweat, their matted beards, and the contrasting barbaric +brilliancy of their teeth, all these were strangely revealed in the +capricious emblazonings of the works. As they narrated to each other +their unholy adventures, their tales of terror told in words of +mirth; as their uncivilized laughter forked upwards out of them, like +the flames from the furnace; as to and fro, in their front, the +harpooneers wildly gesticulated with their huge pronged forks and +dippers; as the wind howled on, and the sea leaped, and the ship +groaned and dived, and yet steadfastly shot her red hell further and +further into the blackness of the sea and the night, and scornfully +champed the white bone in her mouth, and viciously spat round her on +all sides; then the rushing Pequod, freighted with savages, and laden +with fire, and burning a corpse, and plunging into that blackness of +darkness, seemed the material counterpart of her monomaniac +commander's soul. + +So seemed it to me, as I stood at her helm, and for long hours +silently guided the way of this fire-ship on the sea. Wrapped, for +that interval, in darkness myself, I but the better saw the redness, +the madness, the ghastliness of others. The continual sight of the +fiend shapes before me, capering half in smoke and half in fire, +these at last begat kindred visions in my soul, so soon as I began to +yield to that unaccountable drowsiness which ever would come over me +at a midnight helm. + +But that night, in particular, a strange (and ever since +inexplicable) thing occurred to me. Starting from a brief standing +sleep, I was horribly conscious of something fatally wrong. The +jaw-bone tiller smote my side, which leaned against it; in my ears +was the low hum of sails, just beginning to shake in the wind; I +thought my eyes were open; I was half conscious of putting my fingers +to the lids and mechanically stretching them still further apart. +But, spite of all this, I could see no compass before me to steer by; +though it seemed but a minute since I had been watching the card, by +the steady binnacle lamp illuminating it. Nothing seemed before me +but a jet gloom, now and then made ghastly by flashes of redness. +Uppermost was the impression, that whatever swift, rushing thing I +stood on was not so much bound to any haven ahead as rushing from all +havens astern. A stark, bewildered feeling, as of death, came over +me. Convulsively my hands grasped the tiller, but with the crazy +conceit that the tiller was, somehow, in some enchanted way, +inverted. My God! what is the matter with me? thought I. Lo! in my +brief sleep I had turned myself about, and was fronting the ship's +stern, with my back to her prow and the compass. In an instant I +faced back, just in time to prevent the vessel from flying up into +the wind, and very probably capsizing her. How glad and how grateful +the relief from this unnatural hallucination of the night, and the +fatal contingency of being brought by the lee! + +Look not too long in the face of the fire, O man! Never dream with +thy hand on the helm! Turn not thy back to the compass; accept the +first hint of the hitching tiller; believe not the artificial fire, +when its redness makes all things look ghastly. To-morrow, in the +natural sun, the skies will be bright; those who glared like devils +in the forking flames, the morn will show in far other, at least +gentler, relief; the glorious, golden, glad sun, the only true +lamp--all others but liars! + +Nevertheless the sun hides not Virginia's Dismal Swamp, nor Rome's +accursed Campagna, nor wide Sahara, nor all the millions of miles of +deserts and of griefs beneath the moon. The sun hides not the ocean, +which is the dark side of this earth, and which is two thirds of this +earth. So, therefore, that mortal man who hath more of joy than +sorrow in him, that mortal man cannot be true--not true, or +undeveloped. With books the same. The truest of all men was the Man +of Sorrows, and the truest of all books is Solomon's, and +Ecclesiastes is the fine hammered steel of woe. "All is vanity." +ALL. This wilful world hath not got hold of unchristian Solomon's +wisdom yet. But he who dodges hospitals and jails, and walks fast +crossing graveyards, and would rather talk of operas than hell; +calls Cowper, Young, Pascal, Rousseau, poor devils all of sick men; +and throughout a care-free lifetime swears by Rabelais as passing +wise, and therefore jolly;--not that man is fitted to sit down on +tomb-stones, and break the green damp mould with unfathomably +wondrous Solomon. + +But even Solomon, he says, "the man that wandereth out of the way of +understanding shall remain" (I.E., even while living) "in the +congregation of the dead." Give not thyself up, then, to fire, lest +it invert thee, deaden thee; as for the time it did me. There is a +wisdom that is woe; but there is a woe that is madness. And there is +a Catskill eagle in some souls that can alike dive down into the +blackest gorges, and soar out of them again and become invisible in +the sunny spaces. And even if he for ever flies within the gorge, +that gorge is in the mountains; so that even in his lowest swoop the +mountain eagle is still higher than other birds upon the plain, even +though they soar. + + + +CHAPTER 97 + +The Lamp. + + +Had you descended from the Pequod's try-works to the Pequod's +forecastle, where the off duty watch were sleeping, for one single +moment you would have almost thought you were standing in some +illuminated shrine of canonized kings and counsellors. There they +lay in their triangular oaken vaults, each mariner a chiselled +muteness; a score of lamps flashing upon his hooded eyes. + +In merchantmen, oil for the sailor is more scarce than the milk of +queens. To dress in the dark, and eat in the dark, and stumble in +darkness to his pallet, this is his usual lot. But the whaleman, as +he seeks the food of light, so he lives in light. He makes his berth +an Aladdin's lamp, and lays him down in it; so that in the pitchiest +night the ship's black hull still houses an illumination. + +See with what entire freedom the whaleman takes his handful of +lamps--often but old bottles and vials, though--to the copper cooler +at the try-works, and replenishes them there, as mugs of ale at a +vat. He burns, too, the purest of oil, in its unmanufactured, and, +therefore, unvitiated state; a fluid unknown to solar, lunar, or +astral contrivances ashore. It is sweet as early grass butter in +April. He goes and hunts for his oil, so as to be sure of its +freshness and genuineness, even as the traveller on the prairie hunts +up his own supper of game. + + + +CHAPTER 98 + +Stowing Down and Clearing Up. + + +Already has it been related how the great leviathan is afar off +descried from the mast-head; how he is chased over the watery moors, +and slaughtered in the valleys of the deep; how he is then towed +alongside and beheaded; and how (on the principle which entitled the +headsman of old to the garments in which the beheaded was killed) his +great padded surtout becomes the property of his executioner; how, in +due time, he is condemned to the pots, and, like Shadrach, Meshach, +and Abednego, his spermaceti, oil, and bone pass unscathed through +the fire;--but now it remains to conclude the last chapter of this +part of the description by rehearsing--singing, if I may--the +romantic proceeding of decanting off his oil into the casks and +striking them down into the hold, where once again leviathan returns +to his native profundities, sliding along beneath the surface as +before; but, alas! never more to rise and blow. + +While still warm, the oil, like hot punch, is received into the +six-barrel casks; and while, perhaps, the ship is pitching and +rolling this way and that in the midnight sea, the enormous casks are +slewed round and headed over, end for end, and sometimes perilously +scoot across the slippery deck, like so many land slides, till at +last man-handled and stayed in their course; and all round the hoops, +rap, rap, go as many hammers as can play upon them, for now, EX +OFFICIO, every sailor is a cooper. + +At length, when the last pint is casked, and all is cool, then the +great hatchways are unsealed, the bowels of the ship are thrown open, +and down go the casks to their final rest in the sea. This done, the +hatches are replaced, and hermetically closed, like a closet walled +up. + +In the sperm fishery, this is perhaps one of the most remarkable +incidents in all the business of whaling. One day the planks stream +with freshets of blood and oil; on the sacred quarter-deck enormous +masses of the whale's head are profanely piled; great rusty casks lie +about, as in a brewery yard; the smoke from the try-works has +besooted all the bulwarks; the mariners go about suffused with +unctuousness; the entire ship seems great leviathan himself; while on +all hands the din is deafening. + +But a day or two after, you look about you, and prick your ears in +this self-same ship; and were it not for the tell-tale boats and +try-works, you would all but swear you trod some silent merchant +vessel, with a most scrupulously neat commander. The unmanufactured +sperm oil possesses a singularly cleansing virtue. This is the +reason why the decks never look so white as just after what they call +an affair of oil. Besides, from the ashes of the burned scraps of +the whale, a potent lye is readily made; and whenever any +adhesiveness from the back of the whale remains clinging to the side, +that lye quickly exterminates it. Hands go diligently along the +bulwarks, and with buckets of water and rags restore them to their +full tidiness. The soot is brushed from the lower rigging. All the +numerous implements which have been in use are likewise faithfully +cleansed and put away. The great hatch is scrubbed and placed upon +the try-works, completely hiding the pots; every cask is out of +sight; all tackles are coiled in unseen nooks; and when by the +combined and simultaneous industry of almost the entire ship's +company, the whole of this conscientious duty is at last concluded, +then the crew themselves proceed to their own ablutions; shift +themselves from top to toe; and finally issue to the immaculate deck, +fresh and all aglow, as bridegrooms new-leaped from out the daintiest +Holland. + +Now, with elated step, they pace the planks in twos and threes, and +humorously discourse of parlors, sofas, carpets, and fine cambrics; +propose to mat the deck; think of having hanging to the top; object +not to taking tea by moonlight on the piazza of the forecastle. To +hint to such musked mariners of oil, and bone, and blubber, were +little short of audacity. They know not the thing you distantly +allude to. Away, and bring us napkins! + +But mark: aloft there, at the three mast heads, stand three men +intent on spying out more whales, which, if caught, infallibly will +again soil the old oaken furniture, and drop at least one small +grease-spot somewhere. Yes; and many is the time, when, after the +severest uninterrupted labors, which know no night; continuing +straight through for ninety-six hours; when from the boat, where they +have swelled their wrists with all day rowing on the Line,--they only +step to the deck to carry vast chains, and heave the heavy windlass, +and cut and slash, yea, and in their very sweatings to be smoked and +burned anew by the combined fires of the equatorial sun and the +equatorial try-works; when, on the heel of all this, they have +finally bestirred themselves to cleanse the ship, and make a spotless +dairy room of it; many is the time the poor fellows, just buttoning +the necks of their clean frocks, are startled by the cry of "There +she blows!" and away they fly to fight another whale, and go through +the whole weary thing again. Oh! my friends, but this is +man-killing! Yet this is life. For hardly have we mortals by long +toilings extracted from this world's vast bulk its small but +valuable sperm; and then, with weary patience, cleansed ourselves +from its defilements, and learned to live here in clean tabernacles +of the soul; hardly is this done, when--THERE SHE BLOWS!--the ghost +is spouted up, and away we sail to fight some other world, and go +through young life's old routine again. + +Oh! the metempsychosis! Oh! Pythagoras, that in bright Greece, two +thousand years ago, did die, so good, so wise, so mild; I sailed with +thee along the Peruvian coast last voyage--and, foolish as I am, +taught thee, a green simple boy, how to splice a rope! + + + +CHAPTER 99 + +The Doubloon. + + +Ere now it has been related how Ahab was wont to pace his +quarter-deck, taking regular turns at either limit, the binnacle and +mainmast; but in the multiplicity of other things requiring narration +it has not been added how that sometimes in these walks, when most +plunged in his mood, he was wont to pause in turn at each spot, and +stand there strangely eyeing the particular object before him. When +he halted before the binnacle, with his glance fastened on the +pointed needle in the compass, that glance shot like a javelin with +the pointed intensity of his purpose; and when resuming his walk he +again paused before the mainmast, then, as the same riveted glance +fastened upon the riveted gold coin there, he still wore the same +aspect of nailed firmness, only dashed with a certain wild longing, +if not hopefulness. + +But one morning, turning to pass the doubloon, he seemed to be newly +attracted by the strange figures and inscriptions stamped on it, as +though now for the first time beginning to interpret for himself in +some monomaniac way whatever significance might lurk in them. And +some certain significance lurks in all things, else all things are +little worth, and the round world itself but an empty cipher, except +to sell by the cartload, as they do hills about Boston, to fill up +some morass in the Milky Way. + +Now this doubloon was of purest, virgin gold, raked somewhere out of +the heart of gorgeous hills, whence, east and west, over golden +sands, the head-waters of many a Pactolus flows. And though now +nailed amidst all the rustiness of iron bolts and the verdigris of +copper spikes, yet, untouchable and immaculate to any foulness, it +still preserved its Quito glow. Nor, though placed amongst a +ruthless crew and every hour passed by ruthless hands, and through +the livelong nights shrouded with thick darkness which might cover +any pilfering approach, nevertheless every sunrise found the doubloon +where the sunset left it last. For it was set apart and sanctified +to one awe-striking end; and however wanton in their sailor ways, one +and all, the mariners revered it as the white whale's talisman. +Sometimes they talked it over in the weary watch by night, wondering +whose it was to be at last, and whether he would ever live to spend +it. + +Now those noble golden coins of South America are as medals of the +sun and tropic token-pieces. Here palms, alpacas, and volcanoes; +sun's disks and stars; ecliptics, horns-of-plenty, and rich banners +waving, are in luxuriant profusion stamped; so that the precious gold +seems almost to derive an added preciousness and enhancing glories, +by passing through those fancy mints, so Spanishly poetic. + +It so chanced that the doubloon of the Pequod was a most wealthy +example of these things. On its round border it bore the letters, +REPUBLICA DEL ECUADOR: QUITO. So this bright coin came from a +country planted in the middle of the world, and beneath the great +equator, and named after it; and it had been cast midway up the +Andes, in the unwaning clime that knows no autumn. Zoned by those +letters you saw the likeness of three Andes' summits; from one a +flame; a tower on another; on the third a crowing cock; while arching +over all was a segment of the partitioned zodiac, the signs all +marked with their usual cabalistics, and the keystone sun entering +the equinoctial point at Libra. + +Before this equatorial coin, Ahab, not unobserved by others, was now +pausing. + +"There's something ever egotistical in mountain-tops and towers, and +all other grand and lofty things; look here,--three peaks as proud as +Lucifer. The firm tower, that is Ahab; the volcano, that is Ahab; +the courageous, the undaunted, and victorious fowl, that, too, is +Ahab; all are Ahab; and this round gold is but the image of the +rounder globe, which, like a magician's glass, to each and every man +in turn but mirrors back his own mysterious self. Great pains, small +gains for those who ask the world to solve them; it cannot solve +itself. Methinks now this coined sun wears a ruddy face; but see! +aye, he enters the sign of storms, the equinox! and but six months +before he wheeled out of a former equinox at Aries! From storm to +storm! So be it, then. Born in throes, 't is fit that man should +live in pains and die in pangs! So be it, then! Here's stout stuff +for woe to work on. So be it, then." + +"No fairy fingers can have pressed the gold, but devil's claws must have +left their mouldings there since yesterday," murmured Starbuck to +himself, leaning against the bulwarks. "The old man seems to read +Belshazzar's awful writing. I have never marked the coin +inspectingly. He goes below; let me read. A dark valley between +three mighty, heaven-abiding peaks, that almost seem the Trinity, in +some faint earthly symbol. So in this vale of Death, God girds us +round; and over all our gloom, the sun of Righteousness still shines +a beacon and a hope. If we bend down our eyes, the dark vale shows +her mouldy soil; but if we lift them, the bright sun meets our glance +half way, to cheer. Yet, oh, the great sun is no fixture; and if, at +midnight, we would fain snatch some sweet solace from him, we gaze +for him in vain! This coin speaks wisely, mildly, truly, but still +sadly to me. I will quit it, lest Truth shake me falsely." + +"There now's the old Mogul," soliloquized Stubb by the try-works, +"he's been twigging it; and there goes Starbuck from the same, and +both with faces which I should say might be somewhere within nine +fathoms long. And all from looking at a piece of gold, which did I +have it now on Negro Hill or in Corlaer's Hook, I'd not look at it +very long ere spending it. Humph! in my poor, insignificant opinion, +I regard this as queer. I have seen doubloons before now in my +voyagings; your doubloons of old Spain, your doubloons of Peru, your +doubloons of Chili, your doubloons of Bolivia, your doubloons of +Popayan; with plenty of gold moidores and pistoles, and joes, and +half joes, and quarter joes. What then should there be in this +doubloon of the Equator that is so killing wonderful? By Golconda! +let me read it once. Halloa! here's signs and wonders truly! That, +now, is what old Bowditch in his Epitome calls the zodiac, and what +my almanac below calls ditto. I'll get the almanac and as I have +heard devils can be raised with Daboll's arithmetic, I'll try my hand +at raising a meaning out of these queer curvicues here with the +Massachusetts calendar. Here's the book. Let's see now. Signs and +wonders; and the sun, he's always among 'em. Hem, hem, hem; here +they are--here they go--all alive:--Aries, or the Ram; Taurus, or the +Bull and Jimimi! here's Gemini himself, or the Twins. Well; the sun +he wheels among 'em. Aye, here on the coin he's just crossing the +threshold between two of twelve sitting-rooms all in a ring. Book! +you lie there; the fact is, you books must know your places. You'll +do to give us the bare words and facts, but we come in to supply the +thoughts. That's my small experience, so far as the Massachusetts +calendar, and Bowditch's navigator, and Daboll's arithmetic go. +Signs and wonders, eh? Pity if there is nothing wonderful in signs, +and significant in wonders! There's a clue somewhere; wait a bit; +hist--hark! By Jove, I have it! Look you, Doubloon, your zodiac +here is the life of man in one round chapter; and now I'll read it +off, straight out of the book. Come, Almanack! To begin: there's +Aries, or the Ram--lecherous dog, he begets us; then, Taurus, or the +Bull--he bumps us the first thing; then Gemini, or the Twins--that +is, Virtue and Vice; we try to reach Virtue, when lo! comes Cancer +the Crab, and drags us back; and here, going from Virtue, Leo, a +roaring Lion, lies in the path--he gives a few fierce bites and surly +dabs with his paw; we escape, and hail Virgo, the Virgin! that's our +first love; we marry and think to be happy for aye, when pop comes +Libra, or the Scales--happiness weighed and found wanting; and while +we are very sad about that, Lord! how we suddenly jump, as Scorpio, +or the Scorpion, stings us in the rear; we are curing the wound, when +whang come the arrows all round; Sagittarius, or the Archer, is +amusing himself. As we pluck out the shafts, stand aside! here's +the battering-ram, Capricornus, or the Goat; full tilt, he comes +rushing, and headlong we are tossed; when Aquarius, or the +Water-bearer, pours out his whole deluge and drowns us; and to wind +up with Pisces, or the Fishes, we sleep. There's a sermon now, writ +in high heaven, and the sun goes through it every year, and yet comes +out of it all alive and hearty. Jollily he, aloft there, wheels +through toil and trouble; and so, alow here, does jolly Stubb. Oh, +jolly's the word for aye! Adieu, Doubloon! But stop; here comes +little King-Post; dodge round the try-works, now, and let's hear what +he'll have to say. There; he's before it; he'll out with something +presently. So, so; he's beginning." + +"I see nothing here, but a round thing made of gold, and whoever +raises a certain whale, this round thing belongs to him. So, what's +all this staring been about? It is worth sixteen dollars, that's +true; and at two cents the cigar, that's nine hundred and sixty +cigars. I won't smoke dirty pipes like Stubb, but I like cigars, and +here's nine hundred and sixty of them; so here goes Flask aloft to +spy 'em out." + +"Shall I call that wise or foolish, now; if it be really wise it has +a foolish look to it; yet, if it be really foolish, then has it a +sort of wiseish look to it. But, avast; here comes our old +Manxman--the old hearse-driver, he must have been, that is, before he +took to the sea. He luffs up before the doubloon; halloa, and goes +round on the other side of the mast; why, there's a horse-shoe nailed +on that side; and now he's back again; what does that mean? Hark! +he's muttering--voice like an old worn-out coffee-mill. Prick ears, +and listen!" + +"If the White Whale be raised, it must be in a month and a day, when +the sun stands in some one of these signs. I've studied signs, and +know their marks; they were taught me two score years ago, by the old +witch in Copenhagen. Now, in what sign will the sun then be? The +horse-shoe sign; for there it is, right opposite the gold. And +what's the horse-shoe sign? The lion is the horse-shoe sign--the +roaring and devouring lion. Ship, old ship! my old head shakes to +think of thee." + +"There's another rendering now; but still one text. All sorts of men +in one kind of world, you see. Dodge again! here comes Queequeg--all +tattooing--looks like the signs of the Zodiac himself. What says the +Cannibal? As I live he's comparing notes; looking at his thigh bone; +thinks the sun is in the thigh, or in the calf, or in the bowels, I +suppose, as the old women talk Surgeon's Astronomy in the back +country. And by Jove, he's found something there in the vicinity of +his thigh--I guess it's Sagittarius, or the Archer. No: he don't +know what to make of the doubloon; he takes it for an old button off +some king's trowsers. But, aside again! here comes that ghost-devil, +Fedallah; tail coiled out of sight as usual, oakum in the toes of his +pumps as usual. What does he say, with that look of his? Ah, only +makes a sign to the sign and bows himself; there is a sun on the +coin--fire worshipper, depend upon it. Ho! more and more. This way +comes Pip--poor boy! would he had died, or I; he's half horrible to +me. He too has been watching all of these interpreters--myself +included--and look now, he comes to read, with that unearthly idiot +face. Stand away again and hear him. Hark!" + +"I look, you look, he looks; we look, ye look, they look." + +"Upon my soul, he's been studying Murray's Grammar! Improving his +mind, poor fellow! But what's that he says now--hist!" + +"I look, you look, he looks; we look, ye look, they look." + +"Why, he's getting it by heart--hist! again." + +"I look, you look, he looks; we look, ye look, they look." + +"Well, that's funny." + +"And I, you, and he; and we, ye, and they, are all bats; and I'm a +crow, especially when I stand a'top of this pine tree here. Caw! +caw! caw! caw! caw! caw! Ain't I a crow? And where's the +scare-crow? There he stands; two bones stuck into a pair of old +trowsers, and two more poked into the sleeves of an old jacket." + +"Wonder if he means me?--complimentary!--poor lad!--I could go hang +myself. Any way, for the present, I'll quit Pip's vicinity. I can +stand the rest, for they have plain wits; but he's too crazy-witty +for my sanity. So, so, I leave him muttering." + +"Here's the ship's navel, this doubloon here, and they are all on +fire to unscrew it. But, unscrew your navel, and what's the +consequence? Then again, if it stays here, that is ugly, too, for +when aught's nailed to the mast it's a sign that things grow +desperate. Ha, ha! old Ahab! the White Whale; he'll nail ye! This +is a pine tree. My father, in old Tolland county, cut down a pine +tree once, and found a silver ring grown over in it; some old +darkey's wedding ring. How did it get there? And so they'll say in +the resurrection, when they come to fish up this old mast, and find a +doubloon lodged in it, with bedded oysters for the shaggy bark. Oh, +the gold! the precious, precious, gold! the green miser'll hoard ye +soon! Hish! hish! God goes 'mong the worlds blackberrying. Cook! +ho, cook! and cook us! Jenny! hey, hey, hey, hey, hey, Jenny, Jenny! +and get your hoe-cake done!" + + + +CHAPTER 100 + +Leg and Arm. + +The Pequod, of Nantucket, Meets the Samuel Enderby, of London. + + +"Ship, ahoy! Hast seen the White Whale?" + +So cried Ahab, once more hailing a ship showing English colours, +bearing down under the stern. Trumpet to mouth, the old man was +standing in his hoisted quarter-boat, his ivory leg plainly revealed +to the stranger captain, who was carelessly reclining in his own +boat's bow. He was a darkly-tanned, burly, good-natured, +fine-looking man, of sixty or thereabouts, dressed in a spacious +roundabout, that hung round him in festoons of blue pilot-cloth; and +one empty arm of this jacket streamed behind him like the broidered +arm of a hussar's surcoat. + +"Hast seen the White Whale!" + +"See you this?" and withdrawing it from the folds that had hidden +it, he held up a white arm of sperm whale bone, terminating in a +wooden head like a mallet. + +"Man my boat!" cried Ahab, impetuously, and tossing about the oars +near him--"Stand by to lower!" + +In less than a minute, without quitting his little craft, he and his +crew were dropped to the water, and were soon alongside of the +stranger. But here a curious difficulty presented itself. In the +excitement of the moment, Ahab had forgotten that since the loss of +his leg he had never once stepped on board of any vessel at sea but +his own, and then it was always by an ingenious and very handy +mechanical contrivance peculiar to the Pequod, and a thing not to be +rigged and shipped in any other vessel at a moment's warning. Now, +it is no very easy matter for anybody--except those who are almost +hourly used to it, like whalemen--to clamber up a ship's side from a +boat on the open sea; for the great swells now lift the boat high up +towards the bulwarks, and then instantaneously drop it half way down +to the kelson. So, deprived of one leg, and the strange ship of +course being altogether unsupplied with the kindly invention, Ahab +now found himself abjectly reduced to a clumsy landsman again; +hopelessly eyeing the uncertain changeful height he could hardly hope +to attain. + +It has before been hinted, perhaps, that every little untoward +circumstance that befell him, and which indirectly sprang from his +luckless mishap, almost invariably irritated or exasperated Ahab. +And in the present instance, all this was heightened by the sight of +the two officers of the strange ship, leaning over the side, by the +perpendicular ladder of nailed cleets there, and swinging towards him +a pair of tastefully-ornamented man-ropes; for at first they did not +seem to bethink them that a one-legged man must be too much of a +cripple to use their sea bannisters. But this awkwardness only +lasted a minute, because the strange captain, observing at a glance +how affairs stood, cried out, "I see, I see!--avast heaving there! +Jump, boys, and swing over the cutting-tackle." + +As good luck would have it, they had had a whale alongside a day or +two previous, and the great tackles were still aloft, and the massive +curved blubber-hook, now clean and dry, was still attached to the +end. This was quickly lowered to Ahab, who at once comprehending it +all, slid his solitary thigh into the curve of the hook (it was like +sitting in the fluke of an anchor, or the crotch of an apple tree), +and then giving the word, held himself fast, and at the same time +also helped to hoist his own weight, by pulling hand-over-hand upon +one of the running parts of the tackle. Soon he was carefully swung +inside the high bulwarks, and gently landed upon the capstan head. +With his ivory arm frankly thrust forth in welcome, the other captain +advanced, and Ahab, putting out his ivory leg, and crossing the ivory +arm (like two sword-fish blades) cried out in his walrus way, "Aye, +aye, hearty! let us shake bones together!--an arm and a leg!--an arm +that never can shrink, d'ye see; and a leg that never can run. Where +did'st thou see the White Whale?--how long ago?" + +"The White Whale," said the Englishman, pointing his ivory arm +towards the East, and taking a rueful sight along it, as if it had +been a telescope; "there I saw him, on the Line, last season." + +"And he took that arm off, did he?" asked Ahab, now sliding down from +the capstan, and resting on the Englishman's shoulder, as he did so. + +"Aye, he was the cause of it, at least; and that leg, too?" + +"Spin me the yarn," said Ahab; "how was it?" + +"It was the first time in my life that I ever cruised on the Line," +began the Englishman. "I was ignorant of the White Whale at that +time. Well, one day we lowered for a pod of four or five whales, and +my boat fastened to one of them; a regular circus horse he was, too, +that went milling and milling round so, that my boat's crew could +only trim dish, by sitting all their sterns on the outer gunwale. +Presently up breaches from the bottom of the sea a bouncing great +whale, with a milky-white head and hump, all crows' feet and +wrinkles." + +"It was he, it was he!" cried Ahab, suddenly letting out his +suspended breath. + +"And harpoons sticking in near his starboard fin." + +"Aye, aye--they were mine--MY irons," cried Ahab, exultingly--"but +on!" + +"Give me a chance, then," said the Englishman, good-humoredly. +"Well, this old great-grandfather, with the white head and hump, runs +all afoam into the pod, and goes to snapping furiously at my +fast-line! + +"Aye, I see!--wanted to part it; free the fast-fish--an old trick--I +know him." + +"How it was exactly," continued the one-armed commander, "I do not +know; but in biting the line, it got foul of his teeth, caught there +somehow; but we didn't know it then; so that when we afterwards +pulled on the line, bounce we came plump on to his hump! instead of +the other whale's; that went off to windward, all fluking. Seeing +how matters stood, and what a noble great whale it was--the noblest +and biggest I ever saw, sir, in my life--I resolved to capture him, +spite of the boiling rage he seemed to be in. And thinking the +hap-hazard line would get loose, or the tooth it was tangled to +might draw (for I have a devil of a boat's crew for a pull on a +whale-line); seeing all this, I say, I jumped into my first mate's +boat--Mr. Mounttop's here (by the way, Captain--Mounttop; +Mounttop--the captain);--as I was saying, I jumped into Mounttop's +boat, which, d'ye see, was gunwale and gunwale with mine, then; and +snatching the first harpoon, let this old great-grandfather have it. +But, Lord, look you, sir--hearts and souls alive, man--the next +instant, in a jiff, I was blind as a bat--both eyes out--all befogged +and bedeadened with black foam--the whale's tail looming straight up +out of it, perpendicular in the air, like a marble steeple. No use +sterning all, then; but as I was groping at midday, with a blinding +sun, all crown-jewels; as I was groping, I say, after the second +iron, to toss it overboard--down comes the tail like a Lima tower, +cutting my boat in two, leaving each half in splinters; and, flukes +first, the white hump backed through the wreck, as though it was all +chips. We all struck out. To escape his terrible flailings, I +seized hold of my harpoon-pole sticking in him, and for a moment +clung to that like a sucking fish. But a combing sea dashed me off, +and at the same instant, the fish, taking one good dart forwards, +went down like a flash; and the barb of that cursed second iron +towing along near me caught me here" (clapping his hand just below +his shoulder); "yes, caught me just here, I say, and bore me down to +Hell's flames, I was thinking; when, when, all of a sudden, thank the +good God, the barb ript its way along the flesh--clear along the +whole length of my arm--came out nigh my wrist, and up I +floated;--and that gentleman there will tell you the rest (by the +way, captain--Dr. Bunger, ship's surgeon: Bunger, my lad,--the +captain). Now, Bunger boy, spin your part of the yarn." + +The professional gentleman thus familiarly pointed out, had been all +the time standing near them, with nothing specific visible, to denote +his gentlemanly rank on board. His face was an exceedingly round but +sober one; he was dressed in a faded blue woollen frock or shirt, and +patched trowsers; and had thus far been dividing his attention +between a marlingspike he held in one hand, and a pill-box held in +the other, occasionally casting a critical glance at the ivory limbs +of the two crippled captains. But, at his superior's introduction of +him to Ahab, he politely bowed, and straightway went on to do his +captain's bidding. + +"It was a shocking bad wound," began the whale-surgeon; "and, taking +my advice, Captain Boomer here, stood our old Sammy--" + +"Samuel Enderby is the name of my ship," interrupted the one-armed +captain, addressing Ahab; "go on, boy." + +"Stood our old Sammy off to the northward, to get out of the blazing +hot weather there on the Line. But it was no use--I did all I could; +sat up with him nights; was very severe with him in the matter of +diet--" + +"Oh, very severe!" chimed in the patient himself; then suddenly +altering his voice, "Drinking hot rum toddies with me every night, +till he couldn't see to put on the bandages; and sending me to bed, +half seas over, about three o'clock in the morning. Oh, ye stars! he +sat up with me indeed, and was very severe in my diet. Oh! a great +watcher, and very dietetically severe, is Dr. Bunger. (Bunger, you +dog, laugh out! why don't ye? You know you're a precious jolly +rascal.) But, heave ahead, boy, I'd rather be killed by you than kept +alive by any other man." + +"My captain, you must have ere this perceived, respected sir"--said +the imperturbable godly-looking Bunger, slightly bowing to Ahab--"is +apt to be facetious at times; he spins us many clever things of that +sort. But I may as well say--en passant, as the French remark--that +I myself--that is to say, Jack Bunger, late of the reverend +clergy--am a strict total abstinence man; I never drink--" + +"Water!" cried the captain; "he never drinks it; it's a sort of fits +to him; fresh water throws him into the hydrophobia; but go on--go on +with the arm story." + +"Yes, I may as well," said the surgeon, coolly. "I was about +observing, sir, before Captain Boomer's facetious interruption, that +spite of my best and severest endeavors, the wound kept getting worse +and worse; the truth was, sir, it was as ugly gaping wound as surgeon +ever saw; more than two feet and several inches long. I measured it +with the lead line. In short, it grew black; I knew what was +threatened, and off it came. But I had no hand in shipping that +ivory arm there; that thing is against all rule"--pointing at it with +the marlingspike--"that is the captain's work, not mine; he ordered +the carpenter to make it; he had that club-hammer there put to the +end, to knock some one's brains out with, I suppose, as he tried mine +once. He flies into diabolical passions sometimes. Do ye see this +dent, sir"--removing his hat, and brushing aside his hair, and +exposing a bowl-like cavity in his skull, but which bore not the +slightest scarry trace, or any token of ever having been a +wound--"Well, the captain there will tell you how that came here; +he knows." + +"No, I don't," said the captain, "but his mother did; he was born +with it. Oh, you solemn rogue, you--you Bunger! was there ever such +another Bunger in the watery world? Bunger, when you die, you ought +to die in pickle, you dog; you should be preserved to future ages, +you rascal." + +"What became of the White Whale?" now cried Ahab, who thus far had +been impatiently listening to this by-play between the two +Englishmen. + +"Oh!" cried the one-armed captain, "oh, yes! Well; after he sounded, +we didn't see him again for some time; in fact, as I before hinted, I +didn't then know what whale it was that had served me such a trick, +till some time afterwards, when coming back to the Line, we heard +about Moby Dick--as some call him--and then I knew it was he." + +"Did'st thou cross his wake again?" + +"Twice." + +"But could not fasten?" + +"Didn't want to try to: ain't one limb enough? What should I do +without this other arm? And I'm thinking Moby Dick doesn't bite so +much as he swallows." + +"Well, then," interrupted Bunger, "give him your left arm for bait to +get the right. Do you know, gentlemen"--very gravely and +mathematically bowing to each Captain in succession--"Do you know, +gentlemen, that the digestive organs of the whale are so inscrutably +constructed by Divine Providence, that it is quite impossible for him +to completely digest even a man's arm? And he knows it too. So that +what you take for the White Whale's malice is only his awkwardness. +For he never means to swallow a single limb; he only thinks to +terrify by feints. But sometimes he is like the old juggling fellow, +formerly a patient of mine in Ceylon, that making believe swallow +jack-knives, once upon a time let one drop into him in good earnest, +and there it stayed for a twelvemonth or more; when I gave him an +emetic, and he heaved it up in small tacks, d'ye see. No possible +way for him to digest that jack-knife, and fully incorporate it into +his general bodily system. Yes, Captain Boomer, if you are quick +enough about it, and have a mind to pawn one arm for the sake of the +privilege of giving decent burial to the other, why in that case +the arm is yours; only let the whale have another chance at you +shortly, that's all." + +"No, thank ye, Bunger," said the English Captain, "he's welcome to +the arm he has, since I can't help it, and didn't know him then; but +not to another one. No more White Whales for me; I've lowered for +him once, and that has satisfied me. There would be great glory in +killing him, I know that; and there is a ship-load of precious sperm +in him, but, hark ye, he's best let alone; don't you think so, +Captain?"--glancing at the ivory leg. + +"He is. But he will still be hunted, for all that. What is best let +alone, that accursed thing is not always what least allures. He's +all a magnet! How long since thou saw'st him last? Which way +heading?" + +"Bless my soul, and curse the foul fiend's," cried Bunger, stoopingly +walking round Ahab, and like a dog, strangely snuffing; "this man's +blood--bring the thermometer!--it's at the boiling point!--his pulse +makes these planks beat!--sir!"--taking a lancet from his pocket, and +drawing near to Ahab's arm. + +"Avast!" roared Ahab, dashing him against the bulwarks--"Man the +boat! Which way heading?" + +"Good God!" cried the English Captain, to whom the question was put. +"What's the matter? He was heading east, I think.--Is your Captain +crazy?" whispering Fedallah. + +But Fedallah, putting a finger on his lip, slid over the bulwarks to +take the boat's steering oar, and Ahab, swinging the cutting-tackle +towards him, commanded the ship's sailors to stand by to lower. + +In a moment he was standing in the boat's stern, and the Manilla men +were springing to their oars. In vain the English Captain hailed +him. With back to the stranger ship, and face set like a flint to +his own, Ahab stood upright till alongside of the Pequod. + + + +CHAPTER 101 + +The Decanter. + + +Ere the English ship fades from sight, be it set down here, that she +hailed from London, and was named after the late Samuel Enderby, +merchant of that city, the original of the famous whaling house of +Enderby & Sons; a house which in my poor whaleman's opinion, comes +not far behind the united royal houses of the Tudors and Bourbons, in +point of real historical interest. How long, prior to the year of +our Lord 1775, this great whaling house was in existence, my numerous +fish-documents do not make plain; but in that year (1775) it fitted +out the first English ships that ever regularly hunted the Sperm +Whale; though for some score of years previous (ever since 1726) our +valiant Coffins and Maceys of Nantucket and the Vineyard had in large +fleets pursued that Leviathan, but only in the North and South +Atlantic: not elsewhere. Be it distinctly recorded here, that the +Nantucketers were the first among mankind to harpoon with civilized +steel the great Sperm Whale; and that for half a century they were +the only people of the whole globe who so harpooned him. + +In 1778, a fine ship, the Amelia, fitted out for the express purpose, +and at the sole charge of the vigorous Enderbys, boldly rounded Cape +Horn, and was the first among the nations to lower a whale-boat of +any sort in the great South Sea. The voyage was a skilful and lucky +one; and returning to her berth with her hold full of the precious +sperm, the Amelia's example was soon followed by other ships, English +and American, and thus the vast Sperm Whale grounds of the Pacific +were thrown open. But not content with this good deed, the +indefatigable house again bestirred itself: Samuel and all his +Sons--how many, their mother only knows--and under their immediate +auspices, and partly, I think, at their expense, the British +government was induced to send the sloop-of-war Rattler on a whaling +voyage of discovery into the South Sea. Commanded by a naval +Post-Captain, the Rattler made a rattling voyage of it, and did some +service; how much does not appear. But this is not all. In 1819, +the same house fitted out a discovery whale ship of their own, to go +on a tasting cruise to the remote waters of Japan. That ship--well +called the "Syren"--made a noble experimental cruise; and it was thus +that the great Japanese Whaling Ground first became generally known. +The Syren in this famous voyage was commanded by a Captain Coffin, a +Nantucketer. + +All honour to the Enderbies, therefore, whose house, I think, exists +to the present day; though doubtless the original Samuel must long +ago have slipped his cable for the great South Sea of the other +world. + +The ship named after him was worthy of the honour, being a very fast +sailer and a noble craft every way. I boarded her once at midnight +somewhere off the Patagonian coast, and drank good flip down in the +forecastle. It was a fine gam we had, and they were all +trumps--every soul on board. A short life to them, and a jolly +death. And that fine gam I had--long, very long after old Ahab +touched her planks with his ivory heel--it minds me of the noble, +solid, Saxon hospitality of that ship; and may my parson forget me, +and the devil remember me, if I ever lose sight of it. Flip? Did I +say we had flip? Yes, and we flipped it at the rate of ten gallons +the hour; and when the squall came (for it's squally off there by +Patagonia), and all hands--visitors and all--were called to reef +topsails, we were so top-heavy that we had to swing each other aloft +in bowlines; and we ignorantly furled the skirts of our jackets into +the sails, so that we hung there, reefed fast in the howling gale, a +warning example to all drunken tars. However, the masts did not go +overboard; and by and by we scrambled down, so sober, that we had to +pass the flip again, though the savage salt spray bursting down the +forecastle scuttle, rather too much diluted and pickled it to my +taste. + +The beef was fine--tough, but with body in it. They said it was +bull-beef; others, that it was dromedary beef; but I do not know, for +certain, how that was. They had dumplings too; small, but +substantial, symmetrically globular, and indestructible dumplings. I +fancied that you could feel them, and roll them about in you after +they were swallowed. If you stooped over too far forward, you risked +their pitching out of you like billiard-balls. The bread--but that +couldn't be helped; besides, it was an anti-scorbutic; in short, the +bread contained the only fresh fare they had. But the forecastle was +not very light, and it was very easy to step over into a dark corner +when you ate it. But all in all, taking her from truck to helm, +considering the dimensions of the cook's boilers, including his own +live parchment boilers; fore and aft, I say, the Samuel Enderby was a +jolly ship; of good fare and plenty; fine flip and strong; crack +fellows all, and capital from boot heels to hat-band. + +But why was it, think ye, that the Samuel Enderby, and some other +English whalers I know of--not all though--were such famous, +hospitable ships; that passed round the beef, and the bread, and the +can, and the joke; and were not soon weary of eating, and drinking, +and laughing? I will tell you. The abounding good cheer of these +English whalers is matter for historical research. Nor have I been +at all sparing of historical whale research, when it has seemed +needed. + +The English were preceded in the whale fishery by the Hollanders, +Zealanders, and Danes; from whom they derived many terms still extant +in the fishery; and what is yet more, their fat old fashions, +touching plenty to eat and drink. For, as a general thing, the +English merchant-ship scrimps her crew; but not so the English +whaler. Hence, in the English, this thing of whaling good cheer is +not normal and natural, but incidental and particular; and, +therefore, must have some special origin, which is here pointed out, +and will be still further elucidated. + +During my researches in the Leviathanic histories, I stumbled upon an +ancient Dutch volume, which, by the musty whaling smell of it, I knew +must be about whalers. The title was, "Dan Coopman," wherefore I +concluded that this must be the invaluable memoirs of some Amsterdam +cooper in the fishery, as every whale ship must carry its cooper. I +was reinforced in this opinion by seeing that it was the production +of one "Fitz Swackhammer." But my friend Dr. Snodhead, a very +learned man, professor of Low Dutch and High German in the college of +Santa Claus and St. Pott's, to whom I handed the work for +translation, giving him a box of sperm candles for his trouble--this +same Dr. Snodhead, so soon as he spied the book, assured me that "Dan +Coopman" did not mean "The Cooper," but "The Merchant." In short, +this ancient and learned Low Dutch book treated of the commerce of +Holland; and, among other subjects, contained a very interesting +account of its whale fishery. And in this chapter it was, headed, +"Smeer," or "Fat," that I found a long detailed list of the outfits +for the larders and cellars of 180 sail of Dutch whalemen; from which +list, as translated by Dr. Snodhead, I transcribe the following: + +400,000 lbs. of beef. +60,000 lbs. Friesland pork. +150,000 lbs. of stock fish. +550,000 lbs. of biscuit. +72,000 lbs. of soft bread. +2,800 firkins of butter. +20,000 lbs. Texel & Leyden cheese. +144,000 lbs. cheese (probably an inferior article). +550 ankers of Geneva. +10,800 barrels of beer. + +Most statistical tables are parchingly dry in the reading; not so in +the present case, however, where the reader is flooded with whole +pipes, barrels, quarts, and gills of good gin and good cheer. + +At the time, I devoted three days to the studious digesting of all +this beer, beef, and bread, during which many profound thoughts were +incidentally suggested to me, capable of a transcendental and +Platonic application; and, furthermore, I compiled supplementary +tables of my own, touching the probable quantity of stock-fish, etc., +consumed by every Low Dutch harpooneer in that ancient Greenland and +Spitzbergen whale fishery. In the first place, the amount of butter, +and Texel and Leyden cheese consumed, seems amazing. I impute it, +though, to their naturally unctuous natures, being rendered still +more unctuous by the nature of their vocation, and especially by +their pursuing their game in those frigid Polar Seas, on the very +coasts of that Esquimaux country where the convivial natives pledge +each other in bumpers of train oil. + +The quantity of beer, too, is very large, 10,800 barrels. Now, +as those polar fisheries could only be prosecuted in the short summer +of that climate, so that the whole cruise of one of these Dutch +whalemen, including the short voyage to and from the Spitzbergen sea, +did not much exceed three months, say, and reckoning 30 men to each +of their fleet of 180 sail, we have 5,400 Low Dutch seamen in all; +therefore, I say, we have precisely two barrels of beer per man, for +a twelve weeks' allowance, exclusive of his fair proportion of that +550 ankers of gin. Now, whether these gin and beer harpooneers, so +fuddled as one might fancy them to have been, were the right sort of +men to stand up in a boat's head, and take good aim at flying whales; +this would seem somewhat improbable. Yet they did aim at them, and +hit them too. But this was very far North, be it remembered, where +beer agrees well with the constitution; upon the Equator, in our +southern fishery, beer would be apt to make the harpooneer sleepy at +the mast-head and boozy in his boat; and grievous loss might ensue to +Nantucket and New Bedford. + +But no more; enough has been said to show that the old Dutch whalers +of two or three centuries ago were high livers; and that the English +whalers have not neglected so excellent an example. For, say they, +when cruising in an empty ship, if you can get nothing better out of +the world, get a good dinner out of it, at least. And this empties +the decanter. + + + +CHAPTER 102 + +A Bower in the Arsacides. + + +Hitherto, in descriptively treating of the Sperm Whale, I have +chiefly dwelt upon the marvels of his outer aspect; or separately and +in detail upon some few interior structural features. But to a large +and thorough sweeping comprehension of him, it behooves me now to +unbutton him still further, and untagging the points of his hose, +unbuckling his garters, and casting loose the hooks and the eyes of +the joints of his innermost bones, set him before you in his +ultimatum; that is to say, in his unconditional skeleton. + +But how now, Ishmael? How is it, that you, a mere oarsman in the +fishery, pretend to know aught about the subterranean parts of the +whale? Did erudite Stubb, mounted upon your capstan, deliver +lectures on the anatomy of the Cetacea; and by help of the windlass, +hold up a specimen rib for exhibition? Explain thyself, Ishmael. +Can you land a full-grown whale on your deck for examination, as a +cook dishes a roast-pig? Surely not. A veritable witness have you +hitherto been, Ishmael; but have a care how you seize the privilege +of Jonah alone; the privilege of discoursing upon the joists and +beams; the rafters, ridge-pole, sleepers, and under-pinnings, making +up the frame-work of leviathan; and belike of the tallow-vats, +dairy-rooms, butteries, and cheeseries in his bowels. + +I confess, that since Jonah, few whalemen have penetrated very far +beneath the skin of the adult whale; nevertheless, I have been +blessed with an opportunity to dissect him in miniature. In a ship I +belonged to, a small cub Sperm Whale was once bodily hoisted to the +deck for his poke or bag, to make sheaths for the barbs of the +harpoons, and for the heads of the lances. Think you I let that +chance go, without using my boat-hatchet and jack-knife, and breaking +the seal and reading all the contents of that young cub? + +And as for my exact knowledge of the bones of the leviathan in their +gigantic, full grown development, for that rare knowledge I am +indebted to my late royal friend Tranquo, king of Tranque, one of +the Arsacides. For being at Tranque, years ago, when attached to the +trading-ship Dey of Algiers, I was invited to spend part of the +Arsacidean holidays with the lord of Tranque, at his retired palm +villa at Pupella; a sea-side glen not very far distant from what our +sailors called Bamboo-Town, his capital. + +Among many other fine qualities, my royal friend Tranquo, being +gifted with a devout love for all matters of barbaric vertu, had +brought together in Pupella whatever rare things the more ingenious +of his people could invent; chiefly carved woods of wonderful +devices, chiselled shells, inlaid spears, costly paddles, aromatic +canoes; and all these distributed among whatever natural wonders, the +wonder-freighted, tribute-rendering waves had cast upon his shores. + +Chief among these latter was a great Sperm Whale, which, after an +unusually long raging gale, had been found dead and stranded, with +his head against a cocoa-nut tree, whose plumage-like, tufted +droopings seemed his verdant jet. When the vast body had at last +been stripped of its fathom-deep enfoldings, and the bones become +dust dry in the sun, then the skeleton was carefully transported up +the Pupella glen, where a grand temple of lordly palms now sheltered +it. + +The ribs were hung with trophies; the vertebrae were carved with +Arsacidean annals, in strange hieroglyphics; in the skull, the +priests kept up an unextinguished aromatic flame, so that the mystic +head again sent forth its vapoury spout; while, suspended from a +bough, the terrific lower jaw vibrated over all the devotees, like +the hair-hung sword that so affrighted Damocles. + +It was a wondrous sight. The wood was green as mosses of the Icy +Glen; the trees stood high and haughty, feeling their living sap; the +industrious earth beneath was as a weaver's loom, with a gorgeous +carpet on it, whereof the ground-vine tendrils formed the warp and +woof, and the living flowers the figures. All the trees, with all +their laden branches; all the shrubs, and ferns, and grasses; the +message-carrying air; all these unceasingly were active. Through the +lacings of the leaves, the great sun seemed a flying shuttle weaving +the unwearied verdure. Oh, busy weaver! unseen weaver!--pause!--one +word!--whither flows the fabric? what palace may it deck? wherefore +all these ceaseless toilings? Speak, weaver!--stay thy hand!--but +one single word with thee! Nay--the shuttle flies--the figures float +from forth the loom; the freshet-rushing carpet for ever slides +away. The weaver-god, he weaves; and by that weaving is he deafened, +that he hears no mortal voice; and by that humming, we, too, who look +on the loom are deafened; and only when we escape it shall we hear +the thousand voices that speak through it. For even so it is in all +material factories. The spoken words that are inaudible among the +flying spindles; those same words are plainly heard without the +walls, bursting from the opened casements. Thereby have villainies +been detected. Ah, mortal! then, be heedful; for so, in all this din +of the great world's loom, thy subtlest thinkings may be overheard +afar. + +Now, amid the green, life-restless loom of that Arsacidean wood, the +great, white, worshipped skeleton lay lounging--a gigantic idler! +Yet, as the ever-woven verdant warp and woof intermixed and hummed +around him, the mighty idler seemed the cunning weaver; himself all +woven over with the vines; every month assuming greener, fresher +verdure; but himself a skeleton. Life folded Death; Death trellised +Life; the grim god wived with youthful Life, and begat him +curly-headed glories. + +Now, when with royal Tranquo I visited this wondrous whale, and saw +the skull an altar, and the artificial smoke ascending from where the +real jet had issued, I marvelled that the king should regard a chapel +as an object of vertu. He laughed. But more I marvelled that the +priests should swear that smoky jet of his was genuine. To and fro I +paced before this skeleton--brushed the vines aside--broke through +the ribs--and with a ball of Arsacidean twine, wandered, eddied long +amid its many winding, shaded colonnades and arbours. But soon my +line was out; and following it back, I emerged from the opening where I +entered. I saw no living thing within; naught was there but bones. + +Cutting me a green measuring-rod, I once more dived within the +skeleton. From their arrow-slit in the skull, the priests perceived +me taking the altitude of the final rib, "How now!" they shouted; +"Dar'st thou measure this our god! That's for us." "Aye, +priests--well, how long do ye make him, then?" But hereupon a fierce +contest rose among them, concerning feet and inches; they cracked +each other's sconces with their yard-sticks--the great skull +echoed--and seizing that lucky chance, I quickly concluded my own +admeasurements. + +These admeasurements I now propose to set before you. But first, be +it recorded, that, in this matter, I am not free to utter any fancied +measurement I please. Because there are skeleton authorities you +can refer to, to test my accuracy. There is a Leviathanic Museum, +they tell me, in Hull, England, one of the whaling ports of that +country, where they have some fine specimens of fin-backs and other +whales. Likewise, I have heard that in the museum of Manchester, in +New Hampshire, they have what the proprietors call "the only perfect +specimen of a Greenland or River Whale in the United States." +Moreover, at a place in Yorkshire, England, Burton Constable by name, +a certain Sir Clifford Constable has in his possession the skeleton +of a Sperm Whale, but of moderate size, by no means of the full-grown +magnitude of my friend King Tranquo's. + +In both cases, the stranded whales to which these two skeletons +belonged, were originally claimed by their proprietors upon similar +grounds. King Tranquo seizing his because he wanted it; and Sir +Clifford, because he was lord of the seignories of those parts. Sir +Clifford's whale has been articulated throughout; so that, like a +great chest of drawers, you can open and shut him, in all his bony +cavities--spread out his ribs like a gigantic fan--and swing all day +upon his lower jaw. Locks are to be put upon some of his trap-doors +and shutters; and a footman will show round future visitors with a +bunch of keys at his side. Sir Clifford thinks of charging twopence +for a peep at the whispering gallery in the spinal column; threepence +to hear the echo in the hollow of his cerebellum; and sixpence for +the unrivalled view from his forehead. + +The skeleton dimensions I shall now proceed to set down are copied +verbatim from my right arm, where I had them tattooed; as in my wild +wanderings at that period, there was no other secure way of +preserving such valuable statistics. But as I was crowded for space, +and wished the other parts of my body to remain a blank page for a +poem I was then composing--at least, what untattooed parts might +remain--I did not trouble myself with the odd inches; nor, indeed, +should inches at all enter into a congenial admeasurement of the +whale. + + + +CHAPTER 103 + +Measurement of The Whale's Skeleton. + + +In the first place, I wish to lay before you a particular, plain +statement, touching the living bulk of this leviathan, whose skeleton +we are briefly to exhibit. Such a statement may prove useful here. + +According to a careful calculation I have made, and which I partly +base upon Captain Scoresby's estimate, of seventy tons for the +largest sized Greenland whale of sixty feet in length; according to +my careful calculation, I say, a Sperm Whale of the largest +magnitude, between eighty-five and ninety feet in length, and +something less than forty feet in its fullest circumference, such a +whale will weigh at least ninety tons; so that, reckoning thirteen +men to a ton, he would considerably outweigh the combined population +of a whole village of one thousand one hundred inhabitants. + +Think you not then that brains, like yoked cattle, should be put to +this leviathan, to make him at all budge to any landsman's +imagination? + +Having already in various ways put before you his skull, spout-hole, +jaw, teeth, tail, forehead, fins, and divers other parts, I shall now +simply point out what is most interesting in the general bulk of his +unobstructed bones. But as the colossal skull embraces so very large +a proportion of the entire extent of the skeleton; as it is by far +the most complicated part; and as nothing is to be repeated +concerning it in this chapter, you must not fail to carry it in your +mind, or under your arm, as we proceed, otherwise you will not gain a +complete notion of the general structure we are about to view. + +In length, the Sperm Whale's skeleton at Tranque measured seventy-two +Feet; so that when fully invested and extended in life, he must have +been ninety feet long; for in the whale, the skeleton loses about one +fifth in length compared with the living body. Of this seventy-two +feet, his skull and jaw comprised some twenty feet, leaving some +fifty feet of plain back-bone. Attached to this back-bone, for +something less than a third of its length, was the mighty circular +basket of ribs which once enclosed his vitals. + +To me this vast ivory-ribbed chest, with the long, unrelieved spine, +extending far away from it in a straight line, not a little resembled +the hull of a great ship new-laid upon the stocks, when only some +twenty of her naked bow-ribs are inserted, and the keel is otherwise, +for the time, but a long, disconnected timber. + +The ribs were ten on a side. The first, to begin from the neck, was +nearly six feet long; the second, third, and fourth were each +successively longer, till you came to the climax of the fifth, or one +of the middle ribs, which measured eight feet and some inches. From +that part, the remaining ribs diminished, till the tenth and last +only spanned five feet and some inches. In general thickness, they +all bore a seemly correspondence to their length. The middle ribs +were the most arched. In some of the Arsacides they are used for +beams whereon to lay footpath bridges over small streams. + +In considering these ribs, I could not but be struck anew with the +circumstance, so variously repeated in this book, that the skeleton +of the whale is by no means the mould of his invested form. The +largest of the Tranque ribs, one of the middle ones, occupied that +part of the fish which, in life, is greatest in depth. Now, the +greatest depth of the invested body of this particular whale must +have been at least sixteen feet; whereas, the corresponding rib +measured but little more than eight feet. So that this rib only +conveyed half of the true notion of the living magnitude of that +part. Besides, for some way, where I now saw but a naked spine, all +that had been once wrapped round with tons of added bulk in flesh, +muscle, blood, and bowels. Still more, for the ample fins, I here +saw but a few disordered joints; and in place of the weighty and +majestic, but boneless flukes, an utter blank! + +How vain and foolish, then, thought I, for timid untravelled man to +try to comprehend aright this wondrous whale, by merely poring over +his dead attenuated skeleton, stretched in this peaceful wood. No. +Only in the heart of quickest perils; only when within the eddyings +of his angry flukes; only on the profound unbounded sea, can the +fully invested whale be truly and livingly found out. + +But the spine. For that, the best way we can consider it is, with a +crane, to pile its bones high up on end. No speedy enterprise. But +now it's done, it looks much like Pompey's Pillar. + +There are forty and odd vertebrae in all, which in the skeleton are +not locked together. They mostly lie like the great knobbed blocks +on a Gothic spire, forming solid courses of heavy masonry. The +largest, a middle one, is in width something less than three feet, +and in depth more than four. The smallest, where the spine tapers +away into the tail, is only two inches in width, and looks something +like a white billiard-ball. I was told that there were still smaller +ones, but they had been lost by some little cannibal urchins, the +priest's children, who had stolen them to play marbles with. Thus we +see how that the spine of even the hugest of living things tapers off +at last into simple child's play. + + + +CHAPTER 104 + +The Fossil Whale. + + +From his mighty bulk the whale affords a most congenial theme whereon +to enlarge, amplify, and generally expatiate. Would you, you could +not compress him. By good rights he should only be treated of in +imperial folio. Not to tell over again his furlongs from spiracle to +tail, and the yards he measures about the waist; only think of the +gigantic involutions of his intestines, where they lie in him like +great cables and hawsers coiled away in the subterranean orlop-deck +of a line-of-battle-ship. + +Since I have undertaken to manhandle this Leviathan, it behooves me +to approve myself omnisciently exhaustive in the enterprise; not +overlooking the minutest seminal germs of his blood, and spinning him +out to the uttermost coil of his bowels. Having already described +him in most of his present habitatory and anatomical peculiarities, +it now remains to magnify him in an archaeological, fossiliferous, +and antediluvian point of view. Applied to any other creature than +the Leviathan--to an ant or a flea--such portly terms might justly be +deemed unwarrantably grandiloquent. But when Leviathan is the text, +the case is altered. Fain am I to stagger to this emprise under +the weightiest words of the dictionary. And here be it said, that +whenever it has been convenient to consult one in the course of these +dissertations, I have invariably used a huge quarto edition of +Johnson, expressly purchased for that purpose; because that famous +lexicographer's uncommon personal bulk more fitted him to compile a +lexicon to be used by a whale author like me. + +One often hears of writers that rise and swell with their subject, +though it may seem but an ordinary one. How, then, with me, writing +of this Leviathan? Unconsciously my chirography expands into placard +capitals. Give me a condor's quill! Give me Vesuvius' crater for an +inkstand! Friends, hold my arms! For in the mere act of penning my +thoughts of this Leviathan, they weary me, and make me faint with +their outreaching comprehensiveness of sweep, as if to include the +whole circle of the sciences, and all the generations of whales, and +men, and mastodons, past, present, and to come, with all the +revolving panoramas of empire on earth, and throughout the whole +universe, not excluding its suburbs. Such, and so magnifying, is the +virtue of a large and liberal theme! We expand to its bulk. To +produce a mighty book, you must choose a mighty theme. No great and +enduring volume can ever be written on the flea, though many there be +who have tried it. + +Ere entering upon the subject of Fossil Whales, I present my +credentials as a geologist, by stating that in my miscellaneous time +I have been a stone-mason, and also a great digger of ditches, +canals and wells, wine-vaults, cellars, and cisterns of all sorts. +Likewise, by way of preliminary, I desire to remind the reader, that +while in the earlier geological strata there are found the fossils of +monsters now almost completely extinct; the subsequent relics +discovered in what are called the Tertiary formations seem the +connecting, or at any rate intercepted links, between the +antichronical creatures, and those whose remote posterity are said to +have entered the Ark; all the Fossil Whales hitherto discovered +belong to the Tertiary period, which is the last preceding the +superficial formations. And though none of them precisely answer to +any known species of the present time, they are yet sufficiently akin +to them in general respects, to justify their taking rank as +Cetacean fossils. + +Detached broken fossils of pre-adamite whales, fragments of their +bones and skeletons, have within thirty years past, at various +intervals, been found at the base of the Alps, in Lombardy, in +France, in England, in Scotland, and in the States of Louisiana, +Mississippi, and Alabama. Among the more curious of such remains is +part of a skull, which in the year 1779 was disinterred in the Rue +Dauphine in Paris, a short street opening almost directly upon the +palace of the Tuileries; and bones disinterred in excavating the +great docks of Antwerp, in Napoleon's time. Cuvier pronounced these +fragments to have belonged to some utterly unknown Leviathanic +species. + +But by far the most wonderful of all Cetacean relics was the almost +complete vast skeleton of an extinct monster, found in the year 1842, +on the plantation of Judge Creagh, in Alabama. The awe-stricken +credulous slaves in the vicinity took it for the bones of one of the +fallen angels. The Alabama doctors declared it a huge reptile, and +bestowed upon it the name of Basilosaurus. But some specimen bones +of it being taken across the sea to Owen, the English Anatomist, it +turned out that this alleged reptile was a whale, though of a +departed species. A significant illustration of the fact, again and +again repeated in this book, that the skeleton of the whale furnishes +but little clue to the shape of his fully invested body. So Owen +rechristened the monster Zeuglodon; and in his paper read before the +London Geological Society, pronounced it, in substance, one of the +most extraordinary creatures which the mutations of the globe have +blotted out of existence. + +When I stand among these mighty Leviathan skeletons, skulls, tusks, +jaws, ribs, and vertebrae, all characterized by partial resemblances +to the existing breeds of sea-monsters; but at the same time bearing +on the other hand similar affinities to the annihilated antichronical +Leviathans, their incalculable seniors; I am, by a flood, borne back +to that wondrous period, ere time itself can be said to have begun; +for time began with man. Here Saturn's grey chaos rolls over me, and +I obtain dim, shuddering glimpses into those Polar eternities; when +wedged bastions of ice pressed hard upon what are now the Tropics; +and in all the 25,000 miles of this world's circumference, not an +inhabitable hand's breadth of land was visible. Then the whole world +was the whale's; and, king of creation, he left his wake along the +present lines of the Andes and the Himmalehs. Who can show a +pedigree like Leviathan? Ahab's harpoon had shed older blood than +the Pharaoh's. Methuselah seems a school-boy. I look round to shake +hands with Shem. I am horror-struck at this antemosaic, unsourced +existence of the unspeakable terrors of the whale, which, having been +before all time, must needs exist after all humane ages are over. + +But not alone has this Leviathan left his pre-adamite traces in the +stereotype plates of nature, and in limestone and marl bequeathed his +ancient bust; but upon Egyptian tablets, whose antiquity seems to +claim for them an almost fossiliferous character, we find the +unmistakable print of his fin. In an apartment of the great temple +of Denderah, some fifty years ago, there was discovered upon the +granite ceiling a sculptured and painted planisphere, abounding in +centaurs, griffins, and dolphins, similar to the grotesque figures +on the celestial globe of the moderns. Gliding among them, old +Leviathan swam as of yore; was there swimming in that planisphere, +centuries before Solomon was cradled. + +Nor must there be omitted another strange attestation of the +antiquity of the whale, in his own osseous post-diluvian reality, as +set down by the venerable John Leo, the old Barbary traveller. + +"Not far from the Sea-side, they have a Temple, the Rafters and Beams +of which are made of Whale-Bones; for Whales of a monstrous size are +oftentimes cast up dead upon that shore. The Common People imagine, +that by a secret Power bestowed by God upon the temple, no Whale can +pass it without immediate death. But the truth of the Matter is, +that on either side of the Temple, there are Rocks that shoot two +Miles into the Sea, and wound the Whales when they light upon 'em. +They keep a Whale's Rib of an incredible length for a Miracle, which +lying upon the Ground with its convex part uppermost, makes an Arch, +the Head of which cannot be reached by a Man upon a Camel's Back. +This Rib (says John Leo) is said to have layn there a hundred Years +before I saw it. Their Historians affirm, that a Prophet who +prophesy'd of Mahomet, came from this Temple, and some do not stand +to assert, that the Prophet Jonas was cast forth by the Whale at the +Base of the Temple." + +In this Afric Temple of the Whale I leave you, reader, and if you be +a Nantucketer, and a whaleman, you will silently worship there. + + + +CHAPTER 105 + +Does the Whale's Magnitude Diminish?--Will He Perish? + + +Inasmuch, then, as this Leviathan comes floundering down upon us from +the head-waters of the Eternities, it may be fitly inquired, whether, +in the long course of his generations, he has not degenerated from +the original bulk of his sires. + +But upon investigation we find, that not only are the whales of the +present day superior in magnitude to those whose fossil remains are +found in the Tertiary system (embracing a distinct geological period +prior to man), but of the whales found in that Tertiary system, those +belonging to its latter formations exceed in size those of its +earlier ones. + +Of all the pre-adamite whales yet exhumed, by far the largest is the +Alabama one mentioned in the last chapter, and that was less than +seventy feet in length in the skeleton. Whereas, we have already +seen, that the tape-measure gives seventy-two feet for the skeleton +of a large sized modern whale. And I have heard, on whalemen's +authority, that Sperm Whales have been captured near a hundred feet +long at the time of capture. + +But may it not be, that while the whales of the present hour are an +advance in magnitude upon those of all previous geological periods; +may it not be, that since Adam's time they have degenerated? + +Assuredly, we must conclude so, if we are to credit the accounts of +such gentlemen as Pliny, and the ancient naturalists generally. For +Pliny tells us of Whales that embraced acres of living bulk, and +Aldrovandus of others which measured eight hundred feet in +length--Rope Walks and Thames Tunnels of Whales! And even in the +days of Banks and Solander, Cooke's naturalists, we find a Danish +member of the Academy of Sciences setting down certain Iceland Whales +(reydan-siskur, or Wrinkled Bellies) at one hundred and twenty yards; +that is, three hundred and sixty feet. And Lacepede, the French +naturalist, in his elaborate history of whales, in the very beginning +of his work (page 3), sets down the Right Whale at one hundred +metres, three hundred and twenty-eight feet. And this work was +published so late as A.D. 1825. + +But will any whaleman believe these stories? No. The whale of +to-day is as big as his ancestors in Pliny's time. And if ever I go +where Pliny is, I, a whaleman (more than he was), will make bold to +tell him so. Because I cannot understand how it is, that while the +Egyptian mummies that were buried thousands of years before even +Pliny was born, do not measure so much in their coffins as a modern +Kentuckian in his socks; and while the cattle and other animals +sculptured on the oldest Egyptian and Nineveh tablets, by the +relative proportions in which they are drawn, just as plainly prove +that the high-bred, stall-fed, prize cattle of Smithfield, not only +equal, but far exceed in magnitude the fattest of Pharaoh's fat kine; +in the face of all this, I will not admit that of all animals the +whale alone should have degenerated. + +But still another inquiry remains; one often agitated by the more +recondite Nantucketers. Whether owing to the almost omniscient +look-outs at the mast-heads of the whaleships, now penetrating even +through Behring's straits, and into the remotest secret drawers and +lockers of the world; and the thousand harpoons and lances darted +along all continental coasts; the moot point is, whether Leviathan +can long endure so wide a chase, and so remorseless a havoc; whether +he must not at last be exterminated from the waters, and the last +whale, like the last man, smoke his last pipe, and then himself +evaporate in the final puff. + +Comparing the humped herds of whales with the humped herds of +buffalo, which, not forty years ago, overspread by tens of thousands +the prairies of Illinois and Missouri, and shook their iron manes and +scowled with their thunder-clotted brows upon the sites of populous +river-capitals, where now the polite broker sells you land at a +dollar an inch; in such a comparison an irresistible argument would +seem furnished, to show that the hunted whale cannot now escape +speedy extinction. + +But you must look at this matter in every light. Though so short a +period ago--not a good lifetime--the census of the buffalo in +Illinois exceeded the census of men now in London, and though at the +present day not one horn or hoof of them remains in all that region; +and though the cause of this wondrous extermination was the spear of +man; yet the far different nature of the whale-hunt peremptorily +forbids so inglorious an end to the Leviathan. Forty men in one ship +hunting the Sperm Whales for forty-eight months think they have done +extremely well, and thank God, if at last they carry home the oil of +forty fish. Whereas, in the days of the old Canadian and Indian +hunters and trappers of the West, when the far west (in whose sunset +suns still rise) was a wilderness and a virgin, the same number of +moccasined men, for the same number of months, mounted on horse +instead of sailing in ships, would have slain not forty, but forty +thousand and more buffaloes; a fact that, if need were, could be +statistically stated. + +Nor, considered aright, does it seem any argument in favour of the +gradual extinction of the Sperm Whale, for example, that in former +years (the latter part of the last century, say) these Leviathans, in +small pods, were encountered much oftener than at present, and, in +consequence, the voyages were not so prolonged, and were also much +more remunerative. Because, as has been elsewhere noticed, those +whales, influenced by some views to safety, now swim the seas in +immense caravans, so that to a large degree the scattered solitaries, +yokes, and pods, and schools of other days are now aggregated into +vast but widely separated, unfrequent armies. That is all. And +equally fallacious seems the conceit, that because the so-called +whale-bone whales no longer haunt many grounds in former years +abounding with them, hence that species also is declining. For they +are only being driven from promontory to cape; and if one coast is no +longer enlivened with their jets, then, be sure, some other and +remoter strand has been very recently startled by the unfamiliar +spectacle. + +Furthermore: concerning these last mentioned Leviathans, they have +two firm fortresses, which, in all human probability, will for ever +remain impregnable. And as upon the invasion of their valleys, the +frosty Swiss have retreated to their mountains; so, hunted from the +savannas and glades of the middle seas, the whale-bone whales can at +last resort to their Polar citadels, and diving under the ultimate +glassy barriers and walls there, come up among icy fields and floes; +and in a charmed circle of everlasting December, bid defiance to all +pursuit from man. + +But as perhaps fifty of these whale-bone whales are harpooned for one +cachalot, some philosophers of the forecastle have concluded that +this positive havoc has already very seriously diminished their +battalions. But though for some time past a number of these whales, +not less than 13,000, have been annually slain on the nor'-west +coast by the Americans alone; yet there are considerations which +render even this circumstance of little or no account as an opposing +argument in this matter. + +Natural as it is to be somewhat incredulous concerning the +populousness of the more enormous creatures of the globe, yet what +shall we say to Harto, the historian of Goa, when he tells us that at +one hunting the King of Siam took 4,000 elephants; that in those +regions elephants are numerous as droves of cattle in the temperate +climes. And there seems no reason to doubt that if these elephants, +which have now been hunted for thousands of years, by Semiramis, by +Porus, by Hannibal, and by all the successive monarchs of the +East--if they still survive there in great numbers, much more may the +great whale outlast all hunting, since he has a pasture to expatiate +in, which is precisely twice as large as all Asia, both Americas, +Europe and Africa, New Holland, and all the Isles of the sea +combined. + +Moreover: we are to consider, that from the presumed great longevity +of whales, their probably attaining the age of a century and more, +therefore at any one period of time, several distinct adult +generations must be contemporary. And what that is, we may soon +gain some idea of, by imagining all the grave-yards, cemeteries, and +family vaults of creation yielding up the live bodies of all the men, +women, and children who were alive seventy-five years ago; and adding +this countless host to the present human population of the globe. + +Wherefore, for all these things, we account the whale immortal in his +species, however perishable in his individuality. He swam the seas +before the continents broke water; he once swam over the site of the +Tuileries, and Windsor Castle, and the Kremlin. In Noah's flood he +despised Noah's Ark; and if ever the world is to be again flooded, +like the Netherlands, to kill off its rats, then the eternal whale +will still survive, and rearing upon the topmost crest of the +equatorial flood, spout his frothed defiance to the skies. + + + +CHAPTER 106 + +Ahab's Leg. + + +The precipitating manner in which Captain Ahab had quitted the Samuel +Enderby of London, had not been unattended with some small violence +to his own person. He had lighted with such energy upon a thwart of +his boat that his ivory leg had received a half-splintering shock. +And when after gaining his own deck, and his own pivot-hole there, he +so vehemently wheeled round with an urgent command to the steersman +(it was, as ever, something about his not steering inflexibly +enough); then, the already shaken ivory received such an additional +twist and wrench, that though it still remained entire, and to all +appearances lusty, yet Ahab did not deem it entirely trustworthy. + +And, indeed, it seemed small matter for wonder, that for all his +pervading, mad recklessness, Ahab did at times give careful heed to +the condition of that dead bone upon which he partly stood. For it +had not been very long prior to the Pequod's sailing from Nantucket, +that he had been found one night lying prone upon the ground, and +insensible; by some unknown, and seemingly inexplicable, unimaginable +casualty, his ivory limb having been so violently displaced, that it +had stake-wise smitten, and all but pierced his groin; nor was it +without extreme difficulty that the agonizing wound was entirely +cured. + +Nor, at the time, had it failed to enter his monomaniac mind, that +all the anguish of that then present suffering was but the direct +issue of a former woe; and he too plainly seemed to see, that as the +most poisonous reptile of the marsh perpetuates his kind as +inevitably as the sweetest songster of the grove; so, equally with +every felicity, all miserable events do naturally beget their like. +Yea, more than equally, thought Ahab; since both the ancestry and +posterity of Grief go further than the ancestry and posterity of Joy. +For, not to hint of this: that it is an inference from certain +canonic teachings, that while some natural enjoyments here shall have +no children born to them for the other world, but, on the contrary, +shall be followed by the joy-childlessness of all hell's despair; +whereas, some guilty mortal miseries shall still fertilely beget to +themselves an eternally progressive progeny of griefs beyond the +grave; not at all to hint of this, there still seems an inequality in +the deeper analysis of the thing. For, thought Ahab, while even the +highest earthly felicities ever have a certain unsignifying pettiness +lurking in them, but, at bottom, all heartwoes, a mystic +significance, and, in some men, an archangelic grandeur; so do their +diligent tracings-out not belie the obvious deduction. To trail the +genealogies of these high mortal miseries, carries us at last among +the sourceless primogenitures of the gods; so that, in the face of +all the glad, hay-making suns, and soft cymballing, round +harvest-moons, we must needs give in to this: that the gods +themselves are not for ever glad. The ineffaceable, sad birth-mark +in the brow of man, is but the stamp of sorrow in the signers. + +Unwittingly here a secret has been divulged, which perhaps might more +properly, in set way, have been disclosed before. With many other +particulars concerning Ahab, always had it remained a mystery to +some, why it was, that for a certain period, both before and after +the sailing of the Pequod, he had hidden himself away with such +Grand-Lama-like exclusiveness; and, for that one interval, sought +speechless refuge, as it were, among the marble senate of the dead. +Captain Peleg's bruited reason for this thing appeared by no means +adequate; though, indeed, as touching all Ahab's deeper part, every +revelation partook more of significant darkness than of explanatory +light. But, in the end, it all came out; this one matter did, at +least. That direful mishap was at the bottom of his temporary +recluseness. And not only this, but to that ever-contracting, +dropping circle ashore, who, for any reason, possessed the privilege +of a less banned approach to him; to that timid circle the above +hinted casualty--remaining, as it did, moodily unaccounted for by +Ahab--invested itself with terrors, not entirely underived from the +land of spirits and of wails. So that, through their zeal for him, +they had all conspired, so far as in them lay, to muffle up the +knowledge of this thing from others; and hence it was, that not till +a considerable interval had elapsed, did it transpire upon the +Pequod's decks. + +But be all this as it may; let the unseen, ambiguous synod in the +air, or the vindictive princes and potentates of fire, have to do or +not with earthly Ahab, yet, in this present matter of his leg, he +took plain practical procedures;--he called the carpenter. + +And when that functionary appeared before him, he bade him without +delay set about making a new leg, and directed the mates to see him +supplied with all the studs and joists of jaw-ivory (Sperm Whale) +which had thus far been accumulated on the voyage, in order that a +careful selection of the stoutest, clearest-grained stuff might be +secured. This done, the carpenter received orders to have the leg +completed that night; and to provide all the fittings for it, +independent of those pertaining to the distrusted one in use. +Moreover, the ship's forge was ordered to be hoisted out of its +temporary idleness in the hold; and, to accelerate the affair, the +blacksmith was commanded to proceed at once to the forging of +whatever iron contrivances might be needed. + + + +CHAPTER 107 + +The Carpenter. + + +Seat thyself sultanically among the moons of Saturn, and take high +abstracted man alone; and he seems a wonder, a grandeur, and a woe. +But from the same point, take mankind in mass, and for the most part, +they seem a mob of unnecessary duplicates, both contemporary and +hereditary. But most humble though he was, and far from furnishing +an example of the high, humane abstraction; the Pequod's carpenter +was no duplicate; hence, he now comes in person on this stage. + +Like all sea-going ship carpenters, and more especially those +belonging to whaling vessels, he was, to a certain off-handed, +practical extent, alike experienced in numerous trades and callings +collateral to his own; the carpenter's pursuit being the ancient and +outbranching trunk of all those numerous handicrafts which more or +less have to do with wood as an auxiliary material. But, besides the +application to him of the generic remark above, this carpenter of the +Pequod was singularly efficient in those thousand nameless mechanical +emergencies continually recurring in a large ship, upon a three or +four years' voyage, in uncivilized and far-distant seas. For not to +speak of his readiness in ordinary duties:--repairing stove boats, +sprung spars, reforming the shape of clumsy-bladed oars, inserting +bull's eyes in the deck, or new tree-nails in the side planks, and +other miscellaneous matters more directly pertaining to his special +business; he was moreover unhesitatingly expert in all manner of +conflicting aptitudes, both useful and capricious. + +The one grand stage where he enacted all his various parts so +manifold, was his vice-bench; a long rude ponderous table furnished +with several vices, of different sizes, and both of iron and of wood. +At all times except when whales were alongside, this bench was +securely lashed athwartships against the rear of the Try-works. + +A belaying pin is found too large to be easily inserted into its +hole: the carpenter claps it into one of his ever-ready vices, and +straightway files it smaller. A lost land-bird of strange plumage +strays on board, and is made a captive: out of clean shaved rods of +right-whale bone, and cross-beams of sperm whale ivory, the carpenter +makes a pagoda-looking cage for it. An oarsman sprains his wrist: +the carpenter concocts a soothing lotion. Stubb longed for +vermillion stars to be painted upon the blade of his every oar; +screwing each oar in his big vice of wood, the carpenter +symmetrically supplies the constellation. A sailor takes a fancy to +wear shark-bone ear-rings: the carpenter drills his ears. Another +has the toothache: the carpenter out pincers, and clapping one hand +upon his bench bids him be seated there; but the poor fellow +unmanageably winces under the unconcluded operation; whirling round +the handle of his wooden vice, the carpenter signs him to clap his +jaw in that, if he would have him draw the tooth. + +Thus, this carpenter was prepared at all points, and alike +indifferent and without respect in all. Teeth he accounted bits of +ivory; heads he deemed but top-blocks; men themselves he lightly held +for capstans. But while now upon so wide a field thus variously +accomplished and with such liveliness of expertness in him, too; all +this would seem to argue some uncommon vivacity of intelligence. But +not precisely so. For nothing was this man more remarkable, than for +a certain impersonal stolidity as it were; impersonal, I say; for it +so shaded off into the surrounding infinite of things, that it seemed +one with the general stolidity discernible in the whole visible +world; which while pauselessly active in uncounted modes, still +eternally holds its peace, and ignores you, though you dig +foundations for cathedrals. Yet was this half-horrible stolidity in +him, involving, too, as it appeared, an all-ramifying +heartlessness;--yet was it oddly dashed at times, with an old, +crutch-like, antediluvian, wheezing humorousness, not unstreaked now +and then with a certain grizzled wittiness; such as might have served +to pass the time during the midnight watch on the bearded forecastle +of Noah's ark. Was it that this old carpenter had been a life-long +wanderer, whose much rolling, to and fro, not only had gathered no +moss; but what is more, had rubbed off whatever small outward +clingings might have originally pertained to him? He was a stript +abstract; an unfractioned integral; uncompromised as a new-born babe; +living without premeditated reference to this world or the next. You +might almost say, that this strange uncompromisedness in him involved +a sort of unintelligence; for in his numerous trades, he did not seem +to work so much by reason or by instinct, or simply because he had +been tutored to it, or by any intermixture of all these, even or +uneven; but merely by a kind of deaf and dumb, spontaneous literal +process. He was a pure manipulator; his brain, if he had ever had +one, must have early oozed along into the muscles of his fingers. He +was like one of those unreasoning but still highly useful, MULTUM IN +PARVO, Sheffield contrivances, assuming the exterior--though a little +swelled--of a common pocket knife; but containing, not only blades of +various sizes, but also screw-drivers, cork-screws, tweezers, awls, +pens, rulers, nail-filers, countersinkers. So, if his superiors +wanted to use the carpenter for a screw-driver, all they had to do +was to open that part of him, and the screw was fast: or if for +tweezers, take him up by the legs, and there they were. + +Yet, as previously hinted, this omnitooled, open-and-shut carpenter, +was, after all, no mere machine of an automaton. If he did not have +a common soul in him, he had a subtle something that somehow +anomalously did its duty. What that was, whether essence of +quicksilver, or a few drops of hartshorn, there is no telling. But +there it was; and there it had abided for now some sixty years or +more. And this it was, this same unaccountable, cunning +life-principle in him; this it was, that kept him a great part of the +time soliloquizing; but only like an unreasoning wheel, which also +hummingly soliloquizes; or rather, his body was a sentry-box and this +soliloquizer on guard there, and talking all the time to keep himself +awake. + + + +CHAPTER 108 + +Ahab and the Carpenter. + +The Deck--First Night Watch. + + +(CARPENTER STANDING BEFORE HIS VICE-BENCH, AND BY THE LIGHT OF TWO +LANTERNS BUSILY FILING THE IVORY JOIST FOR THE LEG, WHICH JOIST IS +FIRMLY FIXED IN THE VICE. SLABS OF IVORY, LEATHER STRAPS, PADS, +SCREWS, AND VARIOUS TOOLS OF ALL SORTS LYING ABOUT THE BENCH. +FORWARD, THE RED FLAME OF THE FORGE IS SEEN, WHERE THE BLACKSMITH IS +AT WORK.) + + +Drat the file, and drat the bone! That is hard which should be soft, +and that is soft which should be hard. So we go, who file old jaws +and shinbones. Let's try another. Aye, now, this works better +(SNEEZES). Halloa, this bone dust is (SNEEZES)--why it's +(SNEEZES)--yes it's (SNEEZES)--bless my soul, it won't let me speak! +This is what an old fellow gets now for working in dead lumber. Saw +a live tree, and you don't get this dust; amputate a live bone, and +you don't get it (SNEEZES). Come, come, you old Smut, there, bear a +hand, and let's have that ferule and buckle-screw; I'll be ready +for them presently. Lucky now (SNEEZES) there's no knee-joint to +make; that might puzzle a little; but a mere shinbone--why it's +easy as making hop-poles; only I should like to put a good finish on. +Time, time; if I but only had the time, I could turn him out as neat +a leg now as ever (SNEEZES) scraped to a lady in a parlor. Those +buckskin legs and calves of legs I've seen in shop windows wouldn't +compare at all. They soak water, they do; and of course get +rheumatic, and have to be doctored (SNEEZES) with washes and lotions, +just like live legs. There; before I saw it off, now, I must call his +old Mogulship, and see whether the length will be all right; too +short, if anything, I guess. Ha! that's the heel; we are in luck; +here he comes, or it's somebody else, that's certain. + +AHAB (ADVANCING) + +(DURING THE ENSUING SCENE, THE CARPENTER CONTINUES SNEEZING AT TIMES) + + +Well, manmaker! + +Just in time, sir. If the captain pleases, I will now mark the +length. Let me measure, sir. + +Measured for a leg! good. Well, it's not the first time. About it! +There; keep thy finger on it. This is a cogent vice thou hast here, +carpenter; let me feel its grip once. So, so; it does pinch some. + +Oh, sir, it will break bones--beware, beware! + +No fear; I like a good grip; I like to feel something in this +slippery world that can hold, man. What's Prometheus about +there?--the blacksmith, I mean--what's he about? + +He must be forging the buckle-screw, sir, now. + +Right. It's a partnership; he supplies the muscle part. He makes a +fierce red flame there! + +Aye, sir; he must have the white heat for this kind of fine work. + +Um-m. So he must. I do deem it now a most meaning thing, that that +old Greek, Prometheus, who made men, they say, should have been a +blacksmith, and animated them with fire; for what's made in fire must +properly belong to fire; and so hell's probable. How the soot flies! +This must be the remainder the Greek made the Africans of. +Carpenter, when he's through with that buckle, tell him to forge a +pair of steel shoulder-blades; there's a pedlar aboard with a +crushing pack. + +Sir? + +Hold; while Prometheus is about it, I'll order a complete man after a +desirable pattern. Imprimis, fifty feet high in his socks; then, +chest modelled after the Thames Tunnel; then, legs with roots to 'em, +to stay in one place; then, arms three feet through the wrist; no +heart at all, brass forehead, and about a quarter of an acre of fine +brains; and let me see--shall I order eyes to see outwards? No, but +put a sky-light on top of his head to illuminate inwards. There, +take the order, and away. + +Now, what's he speaking about, and who's he speaking to, I should +like to know? Shall I keep standing here? (ASIDE). + +'Tis but indifferent architecture to make a blind dome; here's one. +No, no, no; I must have a lantern. + +Ho, ho! That's it, hey? Here are two, sir; one will serve my turn. + +What art thou thrusting that thief-catcher into my face for, man? +Thrusted light is worse than presented pistols. + +I thought, sir, that you spoke to carpenter. + + +Carpenter? why that's--but no;--a very tidy, and, I may say, an +extremely gentlemanlike sort of business thou art in here, +carpenter;--or would'st thou rather work in clay? + +Sir?--Clay? clay, sir? That's mud; we leave clay to ditchers, sir. + +The fellow's impious! What art thou sneezing about? + +Bone is rather dusty, sir. + +Take the hint, then; and when thou art dead, never bury thyself under +living people's noses. + +Sir?--oh! ah!--I guess so;--yes--dear! + +Look ye, carpenter, I dare say thou callest thyself a right good +workmanlike workman, eh? Well, then, will it speak thoroughly well +for thy work, if, when I come to mount this leg thou makest, I shall +nevertheless feel another leg in the same identical place with it; +that is, carpenter, my old lost leg; the flesh and blood one, I mean. +Canst thou not drive that old Adam away? + +Truly, sir, I begin to understand somewhat now. Yes, I have heard +something curious on that score, sir; how that a dismasted man never +entirely loses the feeling of his old spar, but it will be still +pricking him at times. May I humbly ask if it be really so, sir? + +It is, man. Look, put thy live leg here in the place where mine once +was; so, now, here is only one distinct leg to the eye, yet two to +the soul. Where thou feelest tingling life; there, exactly there, +there to a hair, do I. Is't a riddle? + +I should humbly call it a poser, sir. + +Hist, then. How dost thou know that some entire, living, thinking +thing may not be invisibly and uninterpenetratingly standing +precisely where thou now standest; aye, and standing there in thy +spite? In thy most solitary hours, then, dost thou not fear +eavesdroppers? Hold, don't speak! And if I still feel the smart of +my crushed leg, though it be now so long dissolved; then, why mayst +not thou, carpenter, feel the fiery pains of hell for ever, and +without a body? Hah! + +Good Lord! Truly, sir, if it comes to that, I must calculate over +again; I think I didn't carry a small figure, sir. + +Look ye, pudding-heads should never grant premises.--How long before +the leg is done? + +Perhaps an hour, sir. + +Bungle away at it then, and bring it to me (TURNS TO GO). Oh, Life! +Here I am, proud as Greek god, and yet standing debtor to this +blockhead for a bone to stand on! Cursed be that mortal +inter-indebtedness which will not do away with ledgers. I would be +free as air; and I'm down in the whole world's books. I am so rich, +I could have given bid for bid with the wealthiest Praetorians at the +auction of the Roman empire (which was the world's); and yet I owe +for the flesh in the tongue I brag with. By heavens! I'll get a +crucible, and into it, and dissolve myself down to one small, +compendious vertebra. So. + +CARPENTER (RESUMING HIS WORK). + + +Well, well, well! Stubb knows him best of all, and Stubb always says +he's queer; says nothing but that one sufficient little word queer; +he's queer, says Stubb; he's queer--queer, queer; and keeps dinning +it into Mr. Starbuck all the time--queer--sir--queer, queer, very +queer. And here's his leg! Yes, now that I think of it, here's his +bedfellow! has a stick of whale's jaw-bone for a wife! And this is +his leg; he'll stand on this. What was that now about one leg +standing in three places, and all three places standing in one +hell--how was that? Oh! I don't wonder he looked so scornful at me! +I'm a sort of strange-thoughted sometimes, they say; but that's only +haphazard-like. Then, a short, little old body like me, should never +undertake to wade out into deep waters with tall, heron-built +captains; the water chucks you under the chin pretty quick, and +there's a great cry for life-boats. And here's the heron's leg! long +and slim, sure enough! Now, for most folks one pair of legs lasts a +lifetime, and that must be because they use them mercifully, as a +tender-hearted old lady uses her roly-poly old coach-horses. But +Ahab; oh he's a hard driver. Look, driven one leg to death, and +spavined the other for life, and now wears out bone legs by the cord. +Halloa, there, you Smut! bear a hand there with those screws, and +let's finish it before the resurrection fellow comes a-calling with +his horn for all legs, true or false, as brewery-men go round +collecting old beer barrels, to fill 'em up again. What a leg this +is! It looks like a real live leg, filed down to nothing but the +core; he'll be standing on this to-morrow; he'll be taking altitudes +on it. Halloa! I almost forgot the little oval slate, smoothed +ivory, where he figures up the latitude. So, so; chisel, file, and +sand-paper, now! + + + +CHAPTER 109 + +Ahab and Starbuck in the Cabin. + + +According to usage they were pumping the ship next morning; and lo! +no inconsiderable oil came up with the water; the casks below must +have sprung a bad leak. Much concern was shown; and Starbuck went +down into the cabin to report this unfavourable affair.* + + +*In Sperm-whalemen with any considerable quantity of oil on board, it +is a regular semiweekly duty to conduct a hose into the hold, and +drench the casks with sea-water; which afterwards, at varying +intervals, is removed by the ship's pumps. Hereby the casks are +sought to be kept damply tight; while by the changed character of the +withdrawn water, the mariners readily detect any serious leakage in +the precious cargo. + + +Now, from the South and West the Pequod was drawing nigh to Formosa +and the Bashee Isles, between which lies one of the tropical outlets +from the China waters into the Pacific. And so Starbuck found Ahab +with a general chart of the oriental archipelagoes spread before him; +and another separate one representing the long eastern coasts of the +Japanese islands--Niphon, Matsmai, and Sikoke. With his snow-white +new ivory leg braced against the screwed leg of his table, and with a +long pruning-hook of a jack-knife in his hand, the wondrous old man, +with his back to the gangway door, was wrinkling his brow, and +tracing his old courses again. + +"Who's there?" hearing the footstep at the door, but not turning +round to it. "On deck! Begone!" + +"Captain Ahab mistakes; it is I. The oil in the hold is leaking, +sir. We must up Burtons and break out." + +"Up Burtons and break out? Now that we are nearing Japan; heave-to +here for a week to tinker a parcel of old hoops?" + +"Either do that, sir, or waste in one day more oil than we may make +good in a year. What we come twenty thousand miles to get is worth +saving, sir." + +"So it is, so it is; if we get it." + +"I was speaking of the oil in the hold, sir." + +"And I was not speaking or thinking of that at all. Begone! Let it +leak! I'm all aleak myself. Aye! leaks in leaks! not only full of +leaky casks, but those leaky casks are in a leaky ship; and that's a +far worse plight than the Pequod's, man. Yet I don't stop to plug my +leak; for who can find it in the deep-loaded hull; or how hope to +plug it, even if found, in this life's howling gale? Starbuck! +I'll not have the Burtons hoisted." + +"What will the owners say, sir?" + +"Let the owners stand on Nantucket beach and outyell the Typhoons. +What cares Ahab? Owners, owners? Thou art always prating to me, +Starbuck, about those miserly owners, as if the owners were my +conscience. But look ye, the only real owner of anything is its +commander; and hark ye, my conscience is in this ship's keel.--On +deck!" + +"Captain Ahab," said the reddening mate, moving further into the +cabin, with a daring so strangely respectful and cautious that it +almost seemed not only every way seeking to avoid the slightest +outward manifestation of itself, but within also seemed more than +half distrustful of itself; "A better man than I might well pass over +in thee what he would quickly enough resent in a younger man; aye, +and in a happier, Captain Ahab." + +"Devils! Dost thou then so much as dare to critically think of +me?--On deck!" + +"Nay, sir, not yet; I do entreat. And I do dare, sir--to be +forbearing! Shall we not understand each other better than hitherto, +Captain Ahab?" + +Ahab seized a loaded musket from the rack (forming part of most +South-Sea-men's cabin furniture), and pointing it towards Starbuck, +exclaimed: "There is one God that is Lord over the earth, and one +Captain that is lord over the Pequod.--On deck!" + +For an instant in the flashing eyes of the mate, and his fiery +cheeks, you would have almost thought that he had really received the +blaze of the levelled tube. But, mastering his emotion, he half +calmly rose, and as he quitted the cabin, paused for an instant and +said: "Thou hast outraged, not insulted me, sir; but for that I ask +thee not to beware of Starbuck; thou wouldst but laugh; but let Ahab +beware of Ahab; beware of thyself, old man." + +"He waxes brave, but nevertheless obeys; most careful bravery that!" +murmured Ahab, as Starbuck disappeared. "What's that he said--Ahab +beware of Ahab--there's something there!" Then unconsciously using +the musket for a staff, with an iron brow he paced to and fro in the +little cabin; but presently the thick plaits of his forehead relaxed, +and returning the gun to the rack, he went to the deck. + +"Thou art but too good a fellow, Starbuck," he said lowly to the +mate; then raising his voice to the crew: "Furl the t'gallant-sails, +and close-reef the top-sails, fore and aft; back the main-yard; up +Burton, and break out in the main-hold." + +It were perhaps vain to surmise exactly why it was, that as +respecting Starbuck, Ahab thus acted. It may have been a flash of +honesty in him; or mere prudential policy which, under the +circumstance, imperiously forbade the slightest symptom of open +disaffection, however transient, in the important chief officer of +his ship. However it was, his orders were executed; and the Burtons +were hoisted. + + + +CHAPTER 110 + +Queequeg in His Coffin. + + +Upon searching, it was found that the casks last struck into the hold +were perfectly sound, and that the leak must be further off. So, it +being calm weather, they broke out deeper and deeper, disturbing the +slumbers of the huge ground-tier butts; and from that black midnight +sending those gigantic moles into the daylight above. So deep did +they go; and so ancient, and corroded, and weedy the aspect of the +lowermost puncheons, that you almost looked next for some mouldy +corner-stone cask containing coins of Captain Noah, with copies of +the posted placards, vainly warning the infatuated old world from the +flood. Tierce after tierce, too, of water, and bread, and beef, and +shooks of staves, and iron bundles of hoops, were hoisted out, till +at last the piled decks were hard to get about; and the hollow hull +echoed under foot, as if you were treading over empty catacombs, and +reeled and rolled in the sea like an air-freighted demijohn. +Top-heavy was the ship as a dinnerless student with all Aristotle in +his head. Well was it that the Typhoons did not visit them then. + +Now, at this time it was that my poor pagan companion, and fast +bosom-friend, Queequeg, was seized with a fever, which brought him +nigh to his endless end. + +Be it said, that in this vocation of whaling, sinecures are unknown; +dignity and danger go hand in hand; till you get to be Captain, the +higher you rise the harder you toil. So with poor Queequeg, who, as +harpooneer, must not only face all the rage of the living whale, +but--as we have elsewhere seen--mount his dead back in a rolling sea; +and finally descend into the gloom of the hold, and bitterly sweating +all day in that subterraneous confinement, resolutely manhandle the +clumsiest casks and see to their stowage. To be short, among +whalemen, the harpooneers are the holders, so called. + +Poor Queequeg! when the ship was about half disembowelled, you should +have stooped over the hatchway, and peered down upon him there; +where, stripped to his woollen drawers, the tattooed savage was +crawling about amid that dampness and slime, like a green spotted +lizard at the bottom of a well. And a well, or an ice-house, it +somehow proved to him, poor pagan; where, strange to say, for all the +heat of his sweatings, he caught a terrible chill which lapsed into a +fever; and at last, after some days' suffering, laid him in his +hammock, close to the very sill of the door of death. How he wasted +and wasted away in those few long-lingering days, till there seemed +but little left of him but his frame and tattooing. But as all else +in him thinned, and his cheek-bones grew sharper, his eyes, +nevertheless, seemed growing fuller and fuller; they became of a +strange softness of lustre; and mildly but deeply looked out at you +there from his sickness, a wondrous testimony to that immortal health +in him which could not die, or be weakened. And like circles on the +water, which, as they grow fainter, expand; so his eyes seemed +rounding and rounding, like the rings of Eternity. An awe that +cannot be named would steal over you as you sat by the side of this +waning savage, and saw as strange things in his face, as any beheld +who were bystanders when Zoroaster died. For whatever is truly +wondrous and fearful in man, never yet was put into words or books. +And the drawing near of Death, which alike levels all, alike +impresses all with a last revelation, which only an author from the +dead could adequately tell. So that--let us say it again--no dying +Chaldee or Greek had higher and holier thoughts than those, whose +mysterious shades you saw creeping over the face of poor Queequeg, as +he quietly lay in his swaying hammock, and the rolling sea seemed +gently rocking him to his final rest, and the ocean's invisible +flood-tide lifted him higher and higher towards his destined heaven. + +Not a man of the crew but gave him up; and, as for Queequeg himself, +what he thought of his case was forcibly shown by a curious favour he +asked. He called one to him in the grey morning watch, when the day +was just breaking, and taking his hand, said that while in Nantucket +he had chanced to see certain little canoes of dark wood, like the +rich war-wood of his native isle; and upon inquiry, he had learned +that all whalemen who died in Nantucket, were laid in those same dark +canoes, and that the fancy of being so laid had much pleased him; for +it was not unlike the custom of his own race, who, after embalming a +dead warrior, stretched him out in his canoe, and so left him to be +floated away to the starry archipelagoes; for not only do they +believe that the stars are isles, but that far beyond all visible +horizons, their own mild, uncontinented seas, interflow with the blue +heavens; and so form the white breakers of the milky way. He added, +that he shuddered at the thought of being buried in his hammock, +according to the usual sea-custom, tossed like something vile to the +death-devouring sharks. No: he desired a canoe like those of +Nantucket, all the more congenial to him, being a whaleman, that like +a whale-boat these coffin-canoes were without a keel; though that +involved but uncertain steering, and much lee-way adown the dim ages. + +Now, when this strange circumstance was made known aft, the carpenter +was at once commanded to do Queequeg's bidding, whatever it might +include. There was some heathenish, coffin-coloured old lumber +aboard, which, upon a long previous voyage, had been cut from the +aboriginal groves of the Lackaday islands, and from these dark planks +the coffin was recommended to be made. No sooner was the carpenter +apprised of the order, than taking his rule, he forthwith with all +the indifferent promptitude of his character, proceeded into the +forecastle and took Queequeg's measure with great accuracy, regularly +chalking Queequeg's person as he shifted the rule. + +"Ah! poor fellow! he'll have to die now," ejaculated the Long Island +sailor. + +Going to his vice-bench, the carpenter for convenience sake and +general reference, now transferringly measured on it the exact length +the coffin was to be, and then made the transfer permanent by cutting +two notches at its extremities. This done, he marshalled the planks +and his tools, and to work. + +When the last nail was driven, and the lid duly planed and fitted, he +lightly shouldered the coffin and went forward with it, inquiring +whether they were ready for it yet in that direction. + +Overhearing the indignant but half-humorous cries with which the +people on deck began to drive the coffin away, Queequeg, to every +one's consternation, commanded that the thing should be instantly +brought to him, nor was there any denying him; seeing that, of all +mortals, some dying men are the most tyrannical; and certainly, since +they will shortly trouble us so little for evermore, the poor fellows +ought to be indulged. + +Leaning over in his hammock, Queequeg long regarded the coffin with +an attentive eye. He then called for his harpoon, had the wooden +stock drawn from it, and then had the iron part placed in the coffin +along with one of the paddles of his boat. All by his own request, +also, biscuits were then ranged round the sides within: a flask of +fresh water was placed at the head, and a small bag of woody earth +scraped up in the hold at the foot; and a piece of sail-cloth being +rolled up for a pillow, Queequeg now entreated to be lifted into his +final bed, that he might make trial of its comforts, if any it had. +He lay without moving a few minutes, then told one to go to his bag +and bring out his little god, Yojo. Then crossing his arms on his +breast with Yojo between, he called for the coffin lid (hatch he +called it) to be placed over him. The head part turned over with a +leather hinge, and there lay Queequeg in his coffin with little but +his composed countenance in view. "Rarmai" (it will do; it is easy), +he murmured at last, and signed to be replaced in his hammock. + +But ere this was done, Pip, who had been slily hovering near by all +this while, drew nigh to him where he lay, and with soft sobbings, +took him by the hand; in the other, holding his tambourine. + +"Poor rover! will ye never have done with all this weary roving? +where go ye now? But if the currents carry ye to those sweet +Antilles where the beaches are only beat with water-lilies, will ye +do one little errand for me? Seek out one Pip, who's now been +missing long: I think he's in those far Antilles. If ye find him, +then comfort him; for he must be very sad; for look! he's left his +tambourine behind;--I found it. Rig-a-dig, dig, dig! Now, Queequeg, +die; and I'll beat ye your dying march." + +"I have heard," murmured Starbuck, gazing down the scuttle, "that in +violent fevers, men, all ignorance, have talked in ancient tongues; +and that when the mystery is probed, it turns out always that in +their wholly forgotten childhood those ancient tongues had been +really spoken in their hearing by some lofty scholars. So, to my +fond faith, poor Pip, in this strange sweetness of his lunacy, brings +heavenly vouchers of all our heavenly homes. Where learned he that, +but there?--Hark! he speaks again: but more wildly now." + +"Form two and two! Let's make a General of him! Ho, where's his +harpoon? Lay it across here.--Rig-a-dig, dig, dig! huzza! Oh for a +game cock now to sit upon his head and crow! Queequeg dies +game!--mind ye that; Queequeg dies game!--take ye good heed of that; +Queequeg dies game! I say; game, game, game! but base little Pip, he +died a coward; died all a'shiver;--out upon Pip! Hark ye; if ye find +Pip, tell all the Antilles he's a runaway; a coward, a coward, a +coward! Tell them he jumped from a whale-boat! I'd never beat my +tambourine over base Pip, and hail him General, if he were once more +dying here. No, no! shame upon all cowards--shame upon them! Let 'em +go drown like Pip, that jumped from a whale-boat. Shame! shame!" + +During all this, Queequeg lay with closed eyes, as if in a dream. +Pip was led away, and the sick man was replaced in his hammock. + +But now that he had apparently made every preparation for death; now +that his coffin was proved a good fit, Queequeg suddenly rallied; +soon there seemed no need of the carpenter's box: and thereupon, +when some expressed their delighted surprise, he, in substance, said, +that the cause of his sudden convalescence was this;--at a critical +moment, he had just recalled a little duty ashore, which he was +leaving undone; and therefore had changed his mind about dying: he +could not die yet, he averred. They asked him, then, whether to live +or die was a matter of his own sovereign will and pleasure. He +answered, certainly. In a word, it was Queequeg's conceit, that if a +man made up his mind to live, mere sickness could not kill him: +nothing but a whale, or a gale, or some violent, ungovernable, +unintelligent destroyer of that sort. + +Now, there is this noteworthy difference between savage and +civilized; that while a sick, civilized man may be six months +convalescing, generally speaking, a sick savage is almost half-well +again in a day. So, in good time my Queequeg gained strength; and at +length after sitting on the windlass for a few indolent days (but +eating with a vigorous appetite) he suddenly leaped to his feet, +threw out his arms and legs, gave himself a good stretching, yawned +a little bit, and then springing into the head of his hoisted boat, +and poising a harpoon, pronounced himself fit for a fight. + +With a wild whimsiness, he now used his coffin for a sea-chest; and +emptying into it his canvas bag of clothes, set them in order there. +Many spare hours he spent, in carving the lid with all manner of +grotesque figures and drawings; and it seemed that hereby he was +striving, in his rude way, to copy parts of the twisted tattooing on +his body. And this tattooing had been the work of a departed +prophet and seer of his island, who, by those hieroglyphic marks, had +written out on his body a complete theory of the heavens and the +earth, and a mystical treatise on the art of attaining truth; so that +Queequeg in his own proper person was a riddle to unfold; a wondrous +work in one volume; but whose mysteries not even himself could read, +though his own live heart beat against them; and these mysteries were +therefore destined in the end to moulder away with the living +parchment whereon they were inscribed, and so be unsolved to the +last. And this thought it must have been which suggested to Ahab +that wild exclamation of his, when one morning turning away from +surveying poor Queequeg--"Oh, devilish tantalization of the gods!" + + + +CHAPTER 111 + +The Pacific. + + +When gliding by the Bashee isles we emerged at last upon the great +South Sea; were it not for other things, I could have greeted my dear +Pacific with uncounted thanks, for now the long supplication of my +youth was answered; that serene ocean rolled eastwards from me a +thousand leagues of blue. + +There is, one knows not what sweet mystery about this sea, whose +gently awful stirrings seem to speak of some hidden soul beneath; +like those fabled undulations of the Ephesian sod over the buried +Evangelist St. John. And meet it is, that over these sea-pastures, +wide-rolling watery prairies and Potters' Fields of all four +continents, the waves should rise and fall, and ebb and flow +unceasingly; for here, millions of mixed shades and shadows, drowned +dreams, somnambulisms, reveries; all that we call lives and souls, +lie dreaming, dreaming, still; tossing like slumberers in their beds; +the ever-rolling waves but made so by their restlessness. + +To any meditative Magian rover, this serene Pacific, once beheld, +must ever after be the sea of his adoption. It rolls the midmost +waters of the world, the Indian ocean and Atlantic being but its +arms. The same waves wash the moles of the new-built Californian +towns, but yesterday planted by the recentest race of men, and lave +the faded but still gorgeous skirts of Asiatic lands, older than +Abraham; while all between float milky-ways of coral isles, and +low-lying, endless, unknown Archipelagoes, and impenetrable Japans. +Thus this mysterious, divine Pacific zones the world's whole bulk +about; makes all coasts one bay to it; seems the tide-beating heart +of earth. Lifted by those eternal swells, you needs must own the +seductive god, bowing your head to Pan. + +But few thoughts of Pan stirred Ahab's brain, as standing like an +iron statue at his accustomed place beside the mizen rigging, with +one nostril he unthinkingly snuffed the sugary musk from the Bashee +isles (in whose sweet woods mild lovers must be walking), and with +the other consciously inhaled the salt breath of the new found sea; +that sea in which the hated White Whale must even then be swimming. +Launched at length upon these almost final waters, and gliding +towards the Japanese cruising-ground, the old man's purpose +intensified itself. His firm lips met like the lips of a vice; the +Delta of his forehead's veins swelled like overladen brooks; in his +very sleep, his ringing cry ran through the vaulted hull, "Stern all! +the White Whale spouts thick blood!" + + + +CHAPTER 112 + +The Blacksmith. + + +Availing himself of the mild, summer-cool weather that now reigned +in these latitudes, and in preparation for the peculiarly active +pursuits shortly to be anticipated, Perth, the begrimed, blistered +old blacksmith, had not removed his portable forge to the hold again, +after concluding his contributory work for Ahab's leg, but still +retained it on deck, fast lashed to ringbolts by the foremast; being +now almost incessantly invoked by the headsmen, and harpooneers, and +bowsmen to do some little job for them; altering, or repairing, or +new shaping their various weapons and boat furniture. Often he would +be surrounded by an eager circle, all waiting to be served; holding +boat-spades, pike-heads, harpoons, and lances, and jealously watching +his every sooty movement, as he toiled. Nevertheless, this old man's +was a patient hammer wielded by a patient arm. No murmur, no +impatience, no petulance did come from him. Silent, slow, and +solemn; bowing over still further his chronically broken back, he +toiled away, as if toil were life itself, and the heavy beating of +his hammer the heavy beating of his heart. And so it was.--Most +miserable! + +A peculiar walk in this old man, a certain slight but painful +appearing yawing in his gait, had at an early period of the voyage +excited the curiosity of the mariners. And to the importunity of +their persisted questionings he had finally given in; and so it came +to pass that every one now knew the shameful story of his wretched +fate. + +Belated, and not innocently, one bitter winter's midnight, on the +road running between two country towns, the blacksmith half-stupidly +felt the deadly numbness stealing over him, and sought refuge in a +leaning, dilapidated barn. The issue was, the loss of the +extremities of both feet. Out of this revelation, part by part, at +last came out the four acts of the gladness, and the one long, and as +yet uncatastrophied fifth act of the grief of his life's drama. + +He was an old man, who, at the age of nearly sixty, had postponedly +encountered that thing in sorrow's technicals called ruin. He had +been an artisan of famed excellence, and with plenty to do; owned a +house and garden; embraced a youthful, daughter-like, loving wife, +and three blithe, ruddy children; every Sunday went to a +cheerful-looking church, planted in a grove. But one night, under +cover of darkness, and further concealed in a most cunning +disguisement, a desperate burglar slid into his happy home, and +robbed them all of everything. And darker yet to tell, the +blacksmith himself did ignorantly conduct this burglar into his +family's heart. It was the Bottle Conjuror! Upon the opening of +that fatal cork, forth flew the fiend, and shrivelled up his home. +Now, for prudent, most wise, and economic reasons, the blacksmith's +shop was in the basement of his dwelling, but with a separate +entrance to it; so that always had the young and loving healthy wife +listened with no unhappy nervousness, but with vigorous pleasure, to +the stout ringing of her young-armed old husband's hammer; whose +reverberations, muffled by passing through the floors and walls, came +up to her, not unsweetly, in her nursery; and so, to stout Labor's +iron lullaby, the blacksmith's infants were rocked to slumber. + +Oh, woe on woe! Oh, Death, why canst thou not sometimes be timely? +Hadst thou taken this old blacksmith to thyself ere his full ruin +came upon him, then had the young widow had a delicious grief, and +her orphans a truly venerable, legendary sire to dream of in their +after years; and all of them a care-killing competency. But Death +plucked down some virtuous elder brother, on whose whistling daily +toil solely hung the responsibilities of some other family, and left +the worse than useless old man standing, till the hideous rot of life +should make him easier to harvest. + +Why tell the whole? The blows of the basement hammer every day grew +more and more between; and each blow every day grew fainter than the +last; the wife sat frozen at the window, with tearless eyes, +glitteringly gazing into the weeping faces of her children; the +bellows fell; the forge choked up with cinders; the house was sold; +the mother dived down into the long church-yard grass; her children +twice followed her thither; and the houseless, familyless old man +staggered off a vagabond in crape; his every woe unreverenced; his +grey head a scorn to flaxen curls! + +Death seems the only desirable sequel for a career like this; but +Death is only a launching into the region of the strange Untried; it +is but the first salutation to the possibilities of the immense +Remote, the Wild, the Watery, the Unshored; therefore, to the +death-longing eyes of such men, who still have left in them some +interior compunctions against suicide, does the all-contributed and +all-receptive ocean alluringly spread forth his whole plain of +unimaginable, taking terrors, and wonderful, new-life adventures; and +from the hearts of infinite Pacifics, the thousand mermaids sing to +them--"Come hither, broken-hearted; here is another life without the +guilt of intermediate death; here are wonders supernatural, without +dying for them. Come hither! bury thyself in a life which, to your +now equally abhorred and abhorring, landed world, is more oblivious +than death. Come hither! put up THY gravestone, too, within the +churchyard, and come hither, till we marry thee!" + +Hearkening to these voices, East and West, by early sunrise, and by +fall of eve, the blacksmith's soul responded, Aye, I come! And so +Perth went a-whaling. + + + +CHAPTER 113 + +The Forge. + + +With matted beard, and swathed in a bristling shark-skin apron, about +mid-day, Perth was standing between his forge and anvil, the latter +placed upon an iron-wood log, with one hand holding a pike-head in +the coals, and with the other at his forge's lungs, when Captain Ahab +came along, carrying in his hand a small rusty-looking leathern bag. +While yet a little distance from the forge, moody Ahab paused; till +at last, Perth, withdrawing his iron from the fire, began hammering +it upon the anvil--the red mass sending off the sparks in thick +hovering flights, some of which flew close to Ahab. + +"Are these thy Mother Carey's chickens, Perth? they are always flying +in thy wake; birds of good omen, too, but not to all;--look here, +they burn; but thou--thou liv'st among them without a scorch." + +"Because I am scorched all over, Captain Ahab," answered Perth, +resting for a moment on his hammer; "I am past scorching; not easily +can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely +woeful to me. In no Paradise myself, I am impatient of all misery in +others that is not mad. Thou should'st go mad, blacksmith; say, why +dost thou not go mad? How can'st thou endure without being mad? Do +the heavens yet hate thee, that thou can'st not go mad?--What wert +thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such +hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never +mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning +with both hands on Perth's shoulders; "look ye here--HERE--can ye +smoothe out a seam like this, blacksmith," sweeping one hand across +his ribbed brow; "if thou could'st, blacksmith, glad enough would I +lay my head upon thy anvil, and feel thy heaviest hammer between my +eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for +though thou only see'st it here in my flesh, it has worked down into +the bone of my skull--THAT is all wrinkles! But, away with child's +play; no more gaffs and pikes to-day. Look ye here!" jingling the +leathern bag, as if it were full of gold coins. "I, too, want a +harpoon made; one that a thousand yoke of fiends could not part, +Perth; something that will stick in a whale like his own fin-bone. +There's the stuff," flinging the pouch upon the anvil. "Look ye, +blacksmith, these are the gathered nail-stubbs of the steel shoes of +racing horses." + +"Horse-shoe stubbs, sir? Why, Captain Ahab, thou hast here, then, +the best and stubbornest stuff we blacksmiths ever work." + +"I know it, old man; these stubbs will weld together like glue from +the melted bones of murderers. Quick! forge me the harpoon. And +forge me first, twelve rods for its shank; then wind, and twist, and +hammer these twelve together like the yarns and strands of a +tow-line. Quick! I'll blow the fire." + +When at last the twelve rods were made, Ahab tried them, one by one, +by spiralling them, with his own hand, round a long, heavy iron bolt. +"A flaw!" rejecting the last one. "Work that over again, Perth." + +This done, Perth was about to begin welding the twelve into one, when +Ahab stayed his hand, and said he would weld his own iron. As, then, +with regular, gasping hems, he hammered on the anvil, Perth passing +to him the glowing rods, one after the other, and the hard pressed +forge shooting up its intense straight flame, the Parsee passed +silently, and bowing over his head towards the fire, seemed invoking +some curse or some blessing on the toil. But, as Ahab looked up, he +slid aside. + +"What's that bunch of lucifers dodging about there for?" muttered +Stubb, looking on from the forecastle. "That Parsee smells fire like +a fusee; and smells of it himself, like a hot musket's powder-pan." + +At last the shank, in one complete rod, received its final heat; and +as Perth, to temper it, plunged it all hissing into the cask of water +near by, the scalding steam shot up into Ahab's bent face. + +"Would'st thou brand me, Perth?" wincing for a moment with the pain; +"have I been but forging my own branding-iron, then?" + +"Pray God, not that; yet I fear something, Captain Ahab. Is not this +harpoon for the White Whale?" + +"For the white fiend! But now for the barbs; thou must make them +thyself, man. Here are my razors--the best of steel; here, and make +the barbs sharp as the needle-sleet of the Icy Sea." + +For a moment, the old blacksmith eyed the razors as though he would +fain not use them. + +"Take them, man, I have no need for them; for I now neither shave, +sup, nor pray till--but here--to work!" + +Fashioned at last into an arrowy shape, and welded by Perth to the +shank, the steel soon pointed the end of the iron; and as the +blacksmith was about giving the barbs their final heat, prior to +tempering them, he cried to Ahab to place the water-cask near. + +"No, no--no water for that; I want it of the true death-temper. +Ahoy, there! Tashtego, Queequeg, Daggoo! What say ye, pagans! Will +ye give me as much blood as will cover this barb?" holding it high +up. A cluster of dark nods replied, Yes. Three punctures were made +in the heathen flesh, and the White Whale's barbs were then tempered. + +"Ego non baptizo te in nomine patris, sed in nomine diaboli!" +deliriously howled Ahab, as the malignant iron scorchingly devoured +the baptismal blood. + +Now, mustering the spare poles from below, and selecting one of +hickory, with the bark still investing it, Ahab fitted the end to the +socket of the iron. A coil of new tow-line was then unwound, and +some fathoms of it taken to the windlass, and stretched to a great +tension. Pressing his foot upon it, till the rope hummed like a +harp-string, then eagerly bending over it, and seeing no strandings, +Ahab exclaimed, "Good! and now for the seizings." + +At one extremity the rope was unstranded, and the separate spread +yarns were all braided and woven round the socket of the harpoon; the +pole was then driven hard up into the socket; from the lower end the +rope was traced half-way along the pole's length, and firmly secured +so, with intertwistings of twine. This done, pole, iron, and +rope--like the Three Fates--remained inseparable, and Ahab moodily +stalked away with the weapon; the sound of his ivory leg, and the +sound of the hickory pole, both hollowly ringing along every plank. +But ere he entered his cabin, light, unnatural, half-bantering, yet +most piteous sound was heard. Oh, Pip! thy wretched laugh, thy +idle but unresting eye; all thy strange mummeries not unmeaningly +blended with the black tragedy of the melancholy ship, and mocked it! + + + +CHAPTER 114 + +The Gilder. + + +Penetrating further and further into the heart of the Japanese +cruising ground, the Pequod was soon all astir in the fishery. +Often, in mild, pleasant weather, for twelve, fifteen, eighteen, and +twenty hours on the stretch, they were engaged in the boats, steadily +pulling, or sailing, or paddling after the whales, or for an +interlude of sixty or seventy minutes calmly awaiting their uprising; +though with but small success for their pains. + +At such times, under an abated sun; afloat all day upon smooth, slow +heaving swells; seated in his boat, light as a birch canoe; and so +sociably mixing with the soft waves themselves, that like +hearth-stone cats they purr against the gunwale; these are the times +of dreamy quietude, when beholding the tranquil beauty and brilliancy +of the ocean's skin, one forgets the tiger heart that pants beneath +it; and would not willingly remember, that this velvet paw but +conceals a remorseless fang. + +These are the times, when in his whale-boat the rover softly feels a +certain filial, confident, land-like feeling towards the sea; that he +regards it as so much flowery earth; and the distant ship revealing +only the tops of her masts, seems struggling forward, not through +high rolling waves, but through the tall grass of a rolling prairie: +as when the western emigrants' horses only show their erected ears, +while their hidden bodies widely wade through the amazing verdure. + +The long-drawn virgin vales; the mild blue hill-sides; as over these +there steals the hush, the hum; you almost swear that play-wearied +children lie sleeping in these solitudes, in some glad May-time, when +the flowers of the woods are plucked. And all this mixes with your +most mystic mood; so that fact and fancy, half-way meeting, +interpenetrate, and form one seamless whole. + +Nor did such soothing scenes, however temporary, fail of at least as +temporary an effect on Ahab. But if these secret golden keys did +seem to open in him his own secret golden treasuries, yet did his +breath upon them prove but tarnishing. + +Oh, grassy glades! oh, ever vernal endless landscapes in the soul; in +ye,--though long parched by the dead drought of the earthy +life,--in ye, men yet may roll, like young horses in new morning +clover; and for some few fleeting moments, feel the cool dew of the +life immortal on them. Would to God these blessed calms would last. +But the mingled, mingling threads of life are woven by warp and woof: +calms crossed by storms, a storm for every calm. There is no steady +unretracing progress in this life; we do not advance through fixed +gradations, and at the last one pause:--through infancy's unconscious +spell, boyhood's thoughtless faith, adolescence' doubt (the common +doom), then scepticism, then disbelief, resting at last in manhood's +pondering repose of If. But once gone through, we trace the round +again; and are infants, boys, and men, and Ifs eternally. Where lies +the final harbor, whence we unmoor no more? In what rapt ether sails +the world, of which the weariest will never weary? Where is the +foundling's father hidden? Our souls are like those orphans whose +unwedded mothers die in bearing them: the secret of our paternity +lies in their grave, and we must there to learn it. + +And that same day, too, gazing far down from his boat's side into +that same golden sea, Starbuck lowly murmured:-- + +"Loveliness unfathomable, as ever lover saw in his young bride's +eye!--Tell me not of thy teeth-tiered sharks, and thy kidnapping +cannibal ways. Let faith oust fact; let fancy oust memory; I look +deep down and do believe." + +And Stubb, fish-like, with sparkling scales, leaped up in that same +golden light:-- + +"I am Stubb, and Stubb has his history; but here Stubb takes oaths +that he has always been jolly!" + + + +CHAPTER 115 + +The Pequod Meets The Bachelor. + + +And jolly enough were the sights and the sounds that came bearing +down before the wind, some few weeks after Ahab's harpoon had been +welded. + +It was a Nantucket ship, the Bachelor, which had just wedged in her +last cask of oil, and bolted down her bursting hatches; and now, in +glad holiday apparel, was joyously, though somewhat vain-gloriously, +sailing round among the widely-separated ships on the ground, +previous to pointing her prow for home. + +The three men at her mast-head wore long streamers of narrow red +bunting at their hats; from the stern, a whale-boat was suspended, +bottom down; and hanging captive from the bowsprit was seen the long +lower jaw of the last whale they had slain. Signals, ensigns, and +jacks of all colours were flying from her rigging, on every side. +Sideways lashed in each of her three basketed tops were two barrels +of sperm; above which, in her top-mast cross-trees, you saw slender +breakers of the same precious fluid; and nailed to her main truck was +a brazen lamp. + +As was afterwards learned, the Bachelor had met with the most +surprising success; all the more wonderful, for that while cruising +in the same seas numerous other vessels had gone entire months +without securing a single fish. Not only had barrels of beef and +bread been given away to make room for the far more valuable sperm, +but additional supplemental casks had been bartered for, from the +ships she had met; and these were stowed along the deck, and in the +captain's and officers' state-rooms. Even the cabin table itself +had been knocked into kindling-wood; and the cabin mess dined off the +broad head of an oil-butt, lashed down to the floor for a +centrepiece. In the forecastle, the sailors had actually caulked +and pitched their chests, and filled them; it was humorously added, +that the cook had clapped a head on his largest boiler, and filled +it; that the steward had plugged his spare coffee-pot and filled it; +that the harpooneers had headed the sockets of their irons and filled +them; that indeed everything was filled with sperm, except the +captain's pantaloons pockets, and those he reserved to thrust his +hands into, in self-complacent testimony of his entire satisfaction. + +As this glad ship of good luck bore down upon the moody Pequod, the +barbarian sound of enormous drums came from her forecastle; and +drawing still nearer, a crowd of her men were seen standing round her +huge try-pots, which, covered with the parchment-like POKE or stomach +skin of the black fish, gave forth a loud roar to every stroke of the +clenched hands of the crew. On the quarter-deck, the mates and +harpooneers were dancing with the olive-hued girls who had eloped +with them from the Polynesian Isles; while suspended in an +ornamented boat, firmly secured aloft between the foremast and +mainmast, three Long Island negroes, with glittering fiddle-bows of +whale ivory, were presiding over the hilarious jig. Meanwhile, +others of the ship's company were tumultuously busy at the masonry of +the try-works, from which the huge pots had been removed. You would +have almost thought they were pulling down the cursed Bastille, such +wild cries they raised, as the now useless brick and mortar were +being hurled into the sea. + +Lord and master over all this scene, the captain stood erect on the +ship's elevated quarter-deck, so that the whole rejoicing drama was +full before him, and seemed merely contrived for his own individual +diversion. + +And Ahab, he too was standing on his quarter-deck, shaggy and black, +with a stubborn gloom; and as the two ships crossed each other's +wakes--one all jubilations for things passed, the other all +forebodings as to things to come--their two captains in themselves +impersonated the whole striking contrast of the scene. + +"Come aboard, come aboard!" cried the gay Bachelor's commander, +lifting a glass and a bottle in the air. + +"Hast seen the White Whale?" gritted Ahab in reply. + +"No; only heard of him; but don't believe in him at all," said the +other good-humoredly. "Come aboard!" + +"Thou art too damned jolly. Sail on. Hast lost any men?" + +"Not enough to speak of--two islanders, that's all;--but come aboard, +old hearty, come along. I'll soon take that black from your brow. +Come along, will ye (merry's the play); a full ship and +homeward-bound." + +"How wondrous familiar is a fool!" muttered Ahab; then aloud, "Thou +art a full ship and homeward bound, thou sayst; well, then, call me +an empty ship, and outward-bound. So go thy ways, and I will mine. +Forward there! Set all sail, and keep her to the wind!" + +And thus, while the one ship went cheerily before the breeze, the +other stubbornly fought against it; and so the two vessels parted; +the crew of the Pequod looking with grave, lingering glances towards +the receding Bachelor; but the Bachelor's men never heeding their +gaze for the lively revelry they were in. And as Ahab, leaning over +the taffrail, eyed the homewardbound craft, he took from his pocket a +small vial of sand, and then looking from the ship to the vial, +seemed thereby bringing two remote associations together, for that +vial was filled with Nantucket soundings. + + + +CHAPTER 116 + +The Dying Whale. + + +Not seldom in this life, when, on the right side, fortune's favourites +sail close by us, we, though all adroop before, catch somewhat of the +rushing breeze, and joyfully feel our bagging sails fill out. So +seemed it with the Pequod. For next day after encountering the gay +Bachelor, whales were seen and four were slain; and one of them by +Ahab. + +It was far down the afternoon; and when all the spearings of the +crimson fight were done: and floating in the lovely sunset sea and +sky, sun and whale both stilly died together; then, such a sweetness +and such plaintiveness, such inwreathing orisons curled up in that +rosy air, that it almost seemed as if far over from the deep green +convent valleys of the Manilla isles, the Spanish land-breeze, +wantonly turned sailor, had gone to sea, freighted with these vesper +hymns. + +Soothed again, but only soothed to deeper gloom, Ahab, who had +sterned off from the whale, sat intently watching his final wanings +from the now tranquil boat. For that strange spectacle observable in +all sperm whales dying--the turning sunwards of the head, and so +expiring--that strange spectacle, beheld of such a placid evening, +somehow to Ahab conveyed a wondrousness unknown before. + +"He turns and turns him to it,--how slowly, but how steadfastly, his +homage-rendering and invoking brow, with his last dying motions. He +too worships fire; most faithful, broad, baronial vassal of the +sun!--Oh that these too-favouring eyes should see these too-favouring +sights. Look! here, far water-locked; beyond all hum of human weal +or woe; in these most candid and impartial seas; where to traditions +no rocks furnish tablets; where for long Chinese ages, the billows +have still rolled on speechless and unspoken to, as stars that shine +upon the Niger's unknown source; here, too, life dies sunwards full +of faith; but see! no sooner dead, than death whirls round the +corpse, and it heads some other way. + +"Oh, thou dark Hindoo half of nature, who of drowned bones hast +builded thy separate throne somewhere in the heart of these +unverdured seas; thou art an infidel, thou queen, and too truly +speakest to me in the wide-slaughtering Typhoon, and the hushed +burial of its after calm. Nor has this thy whale sunwards turned his +dying head, and then gone round again, without a lesson to me. + +"Oh, trebly hooped and welded hip of power! Oh, high aspiring, +rainbowed jet!--that one strivest, this one jettest all in vain! In +vain, oh whale, dost thou seek intercedings with yon all-quickening +sun, that only calls forth life, but gives it not again. Yet dost +thou, darker half, rock me with a prouder, if a darker faith. All +thy unnamable imminglings float beneath me here; I am buoyed by +breaths of once living things, exhaled as air, but water now. + +"Then hail, for ever hail, O sea, in whose eternal tossings the wild +fowl finds his only rest. Born of earth, yet suckled by the sea; +though hill and valley mothered me, ye billows are my +foster-brothers!" + + + +CHAPTER 117 + +The Whale Watch. + + +The four whales slain that evening had died wide apart; one, far to +windward; one, less distant, to leeward; one ahead; one astern. +These last three were brought alongside ere nightfall; but the +windward one could not be reached till morning; and the boat that had +killed it lay by its side all night; and that boat was Ahab's. + +The waif-pole was thrust upright into the dead whale's spout-hole; +and the lantern hanging from its top, cast a troubled flickering +glare upon the black, glossy back, and far out upon the midnight +waves, which gently chafed the whale's broad flank, like soft surf +upon a beach. + +Ahab and all his boat's crew seemed asleep but the Parsee; who +crouching in the bow, sat watching the sharks, that spectrally played +round the whale, and tapped the light cedar planks with their tails. +A sound like the moaning in squadrons over Asphaltites of unforgiven +ghosts of Gomorrah, ran shuddering through the air. + +Started from his slumbers, Ahab, face to face, saw the Parsee; and +hooped round by the gloom of the night they seemed the last men in a +flooded world. "I have dreamed it again," said he. + +"Of the hearses? Have I not said, old man, that neither hearse nor +coffin can be thine?" + +"And who are hearsed that die on the sea?" + +"But I said, old man, that ere thou couldst die on this voyage, two +hearses must verily be seen by thee on the sea; the first not made by +mortal hands; and the visible wood of the last one must be grown in +America." + +"Aye, aye! a strange sight that, Parsee:--a hearse and its plumes +floating over the ocean with the waves for the pall-bearers. Ha! +Such a sight we shall not soon see." + +"Believe it or not, thou canst not die till it be seen, old man." + +"And what was that saying about thyself?" + +"Though it come to the last, I shall still go before thee thy pilot." + +"And when thou art so gone before--if that ever befall--then ere I +can follow, thou must still appear to me, to pilot me still?--Was it +not so? Well, then, did I believe all ye say, oh my pilot! I have +here two pledges that I shall yet slay Moby Dick and survive it." + +"Take another pledge, old man," said the Parsee, as his eyes lighted +up like fire-flies in the gloom--"Hemp only can kill thee." + +"The gallows, ye mean.--I am immortal then, on land and on sea," +cried Ahab, with a laugh of derision;--"Immortal on land and on sea!" + +Both were silent again, as one man. The grey dawn came on, and the +slumbering crew arose from the boat's bottom, and ere noon the dead +whale was brought to the ship. + + + +CHAPTER 118 + +The Quadrant. + + +The season for the Line at length drew near; and every day when Ahab, +coming from his cabin, cast his eyes aloft, the vigilant helmsman +would ostentatiously handle his spokes, and the eager mariners +quickly run to the braces, and would stand there with all their eyes +centrally fixed on the nailed doubloon; impatient for the order to +point the ship's prow for the equator. In good time the order came. +It was hard upon high noon; and Ahab, seated in the bows of his +high-hoisted boat, was about taking his wonted daily observation of +the sun to determine his latitude. + +Now, in that Japanese sea, the days in summer are as freshets of +effulgences. That unblinkingly vivid Japanese sun seems the blazing +focus of the glassy ocean's immeasurable burning-glass. The sky +looks lacquered; clouds there are none; the horizon floats; and this +nakedness of unrelieved radiance is as the insufferable splendors of +God's throne. Well that Ahab's quadrant was furnished with coloured +glasses, through which to take sight of that solar fire. So, +swinging his seated form to the roll of the ship, and with his +astrological-looking instrument placed to his eye, he remained in +that posture for some moments to catch the precise instant when the +sun should gain its precise meridian. Meantime while his whole +attention was absorbed, the Parsee was kneeling beneath him on the +ship's deck, and with face thrown up like Ahab's, was eyeing the same +sun with him; only the lids of his eyes half hooded their orbs, and +his wild face was subdued to an earthly passionlessness. At length +the desired observation was taken; and with his pencil upon his ivory +leg, Ahab soon calculated what his latitude must be at that precise +instant. Then falling into a moment's revery, he again looked up +towards the sun and murmured to himself: "Thou sea-mark! thou high +and mighty Pilot! thou tellest me truly where I AM--but canst thou +cast the least hint where I SHALL be? Or canst thou tell where some +other thing besides me is this moment living? Where is Moby Dick? +This instant thou must be eyeing him. These eyes of mine look into +the very eye that is even now beholding him; aye, and into the eye +that is even now equally beholding the objects on the unknown, +thither side of thee, thou sun!" + +Then gazing at his quadrant, and handling, one after the other, its +numerous cabalistical contrivances, he pondered again, and muttered: +"Foolish toy! babies' plaything of haughty Admirals, and Commodores, +and Captains; the world brags of thee, of thy cunning and might; but +what after all canst thou do, but tell the poor, pitiful point, where +thou thyself happenest to be on this wide planet, and the hand that +holds thee: no! not one jot more! Thou canst not tell where one drop +of water or one grain of sand will be to-morrow noon; and yet with +thy impotence thou insultest the sun! Science! Curse thee, thou +vain toy; and cursed be all the things that cast man's eyes aloft to +that heaven, whose live vividness but scorches him, as these old eyes +are even now scorched with thy light, O sun! Level by nature to this +earth's horizon are the glances of man's eyes; not shot from the +crown of his head, as if God had meant him to gaze on his firmament. +Curse thee, thou quadrant!" dashing it to the deck, "no longer will I +guide my earthly way by thee; the level ship's compass, and the level +deadreckoning, by log and by line; THESE shall conduct me, and show +me my place on the sea. Aye," lighting from the boat to the deck, +"thus I trample on thee, thou paltry thing that feebly pointest on +high; thus I split and destroy thee!" + +As the frantic old man thus spoke and thus trampled with his live and +dead feet, a sneering triumph that seemed meant for Ahab, and a +fatalistic despair that seemed meant for himself--these passed over +the mute, motionless Parsee's face. Unobserved he rose and glided +away; while, awestruck by the aspect of their commander, the seamen +clustered together on the forecastle, till Ahab, troubledly pacing +the deck, shouted out--"To the braces! Up helm!--square in!" + +In an instant the yards swung round; and as the ship half-wheeled +upon her heel, her three firm-seated graceful masts erectly poised +upon her long, ribbed hull, seemed as the three Horatii pirouetting +on one sufficient steed. + +Standing between the knight-heads, Starbuck watched the Pequod's +tumultuous way, and Ahab's also, as he went lurching along the deck. + +"I have sat before the dense coal fire and watched it all aglow, full +of its tormented flaming life; and I have seen it wane at last, down, +down, to dumbest dust. Old man of oceans! of all this fiery life of +thine, what will at length remain but one little heap of ashes!" + +"Aye," cried Stubb, "but sea-coal ashes--mind ye that, Mr. +Starbuck--sea-coal, not your common charcoal. Well, well; I heard +Ahab mutter, 'Here some one thrusts these cards into these old hands +of mine; swears that I must play them, and no others.' And damn me, +Ahab, but thou actest right; live in the game, and die in it!" + + + +CHAPTER 119 + +The Candles. + + +Warmest climes but nurse the cruellest fangs: the tiger of Bengal +crouches in spiced groves of ceaseless verdure. Skies the most +effulgent but basket the deadliest thunders: gorgeous Cuba knows +tornadoes that never swept tame northern lands. So, too, it is, that +in these resplendent Japanese seas the mariner encounters the direst +of all storms, the Typhoon. It will sometimes burst from out that +cloudless sky, like an exploding bomb upon a dazed and sleepy town. + +Towards evening of that day, the Pequod was torn of her canvas, and +bare-poled was left to fight a Typhoon which had struck her directly +ahead. When darkness came on, sky and sea roared and split with the +thunder, and blazed with the lightning, that showed the disabled +masts fluttering here and there with the rags which the first fury of +the tempest had left for its after sport. + +Holding by a shroud, Starbuck was standing on the quarter-deck; at +every flash of the lightning glancing aloft, to see what additional +disaster might have befallen the intricate hamper there; while Stubb +and Flask were directing the men in the higher hoisting and firmer +lashing of the boats. But all their pains seemed naught. Though +lifted to the very top of the cranes, the windward quarter boat +(Ahab's) did not escape. A great rolling sea, dashing high up +against the reeling ship's high teetering side, stove in the boat's +bottom at the stern, and left it again, all dripping through like a +sieve. + +"Bad work, bad work! Mr. Starbuck," said Stubb, regarding the wreck, +"but the sea will have its way. Stubb, for one, can't fight it. You +see, Mr. Starbuck, a wave has such a great long start before it +leaps, all round the world it runs, and then comes the spring! But +as for me, all the start I have to meet it, is just across the deck +here. But never mind; it's all in fun: so the old song +says;"--(SINGS.) + +Oh! jolly is the gale, +And a joker is the whale, +A' flourishin' his tail,-- +Such a funny, sporty, gamy, jesty, joky, hoky-poky lad, is the Ocean, oh! + +The scud all a flyin', +That's his flip only foamin'; +When he stirs in the spicin',-- +Such a funny, sporty, gamy, jesty, joky, hoky-poky lad, is the Ocean, oh! + +Thunder splits the ships, +But he only smacks his lips, +A tastin' of this flip,-- +Such a funny, sporty, gamy, jesty, joky, hoky-poky lad, is the Ocean, oh! + + +"Avast Stubb," cried Starbuck, "let the Typhoon sing, and strike his +harp here in our rigging; but if thou art a brave man thou wilt hold +thy peace." + +"But I am not a brave man; never said I was a brave man; I am a +coward; and I sing to keep up my spirits. And I tell you what it is, +Mr. Starbuck, there's no way to stop my singing in this world but to +cut my throat. And when that's done, ten to one I sing ye the +doxology for a wind-up." + +"Madman! look through my eyes if thou hast none of thine own." + +"What! how can you see better of a dark night than anybody else, +never mind how foolish?" + +"Here!" cried Starbuck, seizing Stubb by the shoulder, and pointing +his hand towards the weather bow, "markest thou not that the gale +comes from the eastward, the very course Ahab is to run for Moby +Dick? the very course he swung to this day noon? now mark his boat +there; where is that stove? In the stern-sheets, man; where he is +wont to stand--his stand-point is stove, man! Now jump overboard, +and sing away, if thou must! + +"I don't half understand ye: what's in the wind?" + +"Yes, yes, round the Cape of Good Hope is the shortest way to +Nantucket," soliloquized Starbuck suddenly, heedless of Stubb's +question. "The gale that now hammers at us to stave us, we can turn +it into a fair wind that will drive us towards home. Yonder, to +windward, all is blackness of doom; but to leeward, homeward--I see +it lightens up there; but not with the lightning." + +At that moment in one of the intervals of profound darkness, +following the flashes, a voice was heard at his side; and almost at +the same instant a volley of thunder peals rolled overhead. + +"Who's there?" + +"Old Thunder!" said Ahab, groping his way along the bulwarks to his +pivot-hole; but suddenly finding his path made plain to him by +elbowed lances of fire. + +Now, as the lightning rod to a spire on shore is intended to carry +off the perilous fluid into the soil; so the kindred rod which at sea +some ships carry to each mast, is intended to conduct it into the +water. But as this conductor must descend to considerable depth, +that its end may avoid all contact with the hull; and as moreover, if +kept constantly towing there, it would be liable to many mishaps, +besides interfering not a little with some of the rigging, and more +or less impeding the vessel's way in the water; because of all this, +the lower parts of a ship's lightning-rods are not always overboard; +but are generally made in long slender links, so as to be the more +readily hauled up into the chains outside, or thrown down into the +sea, as occasion may require. + +"The rods! the rods!" cried Starbuck to the crew, suddenly admonished +to vigilance by the vivid lightning that had just been darting +flambeaux, to light Ahab to his post. "Are they overboard? drop them +over, fore and aft. Quick!" + +"Avast!" cried Ahab; "let's have fair play here, though we be the +weaker side. Yet I'll contribute to raise rods on the Himmalehs and +Andes, that all the world may be secured; but out on privileges! Let +them be, sir." + +"Look aloft!" cried Starbuck. "The corpusants! the corpusants! + +All the yard-arms were tipped with a pallid fire; and touched at each +tri-pointed lightning-rod-end with three tapering white flames, each +of the three tall masts was silently burning in that sulphurous air, +like three gigantic wax tapers before an altar. + +"Blast the boat! let it go!" cried Stubb at this instant, as a +swashing sea heaved up under his own little craft, so that its +gunwale violently jammed his hand, as he was passing a lashing. +"Blast it!"--but slipping backward on the deck, his uplifted eyes +caught the flames; and immediately shifting his tone he cried--"The +corpusants have mercy on us all!" + +To sailors, oaths are household words; they will swear in the trance +of the calm, and in the teeth of the tempest; they will imprecate +curses from the topsail-yard-arms, when most they teeter over to a +seething sea; but in all my voyagings, seldom have I heard a common +oath when God's burning finger has been laid on the ship; when His +"Mene, Mene, Tekel Upharsin" has been woven into the shrouds and the +cordage. + +While this pallidness was burning aloft, few words were heard from +the enchanted crew; who in one thick cluster stood on the forecastle, +all their eyes gleaming in that pale phosphorescence, like a far away +constellation of stars. Relieved against the ghostly light, the +gigantic jet negro, Daggoo, loomed up to thrice his real stature, and +seemed the black cloud from which the thunder had come. The parted +mouth of Tashtego revealed his shark-white teeth, which strangely +gleamed as if they too had been tipped by corpusants; while lit up by +the preternatural light, Queequeg's tattooing burned like Satanic +blue flames on his body. + +The tableau all waned at last with the pallidness aloft; and once +more the Pequod and every soul on her decks were wrapped in a pall. +A moment or two passed, when Starbuck, going forward, pushed against +some one. It was Stubb. "What thinkest thou now, man; I heard thy +cry; it was not the same in the song." + +"No, no, it wasn't; I said the corpusants have mercy on us all; and I +hope they will, still. But do they only have mercy on long +faces?--have they no bowels for a laugh? And look ye, Mr. +Starbuck--but it's too dark to look. Hear me, then: I take that +mast-head flame we saw for a sign of good luck; for those masts are +rooted in a hold that is going to be chock a' block with sperm-oil, +d'ye see; and so, all that sperm will work up into the masts, like +sap in a tree. Yes, our three masts will yet be as three spermaceti +candles--that's the good promise we saw." + +At that moment Starbuck caught sight of Stubb's face slowly beginning +to glimmer into sight. Glancing upwards, he cried: "See! see!" and +once more the high tapering flames were beheld with what seemed +redoubled supernaturalness in their pallor. + +"The corpusants have mercy on us all," cried Stubb, again. + +At the base of the mainmast, full beneath the doubloon and the +flame, the Parsee was kneeling in Ahab's front, but with his head +bowed away from him; while near by, from the arched and overhanging +rigging, where they had just been engaged securing a spar, a number +of the seamen, arrested by the glare, now cohered together, and hung +pendulous, like a knot of numbed wasps from a drooping, orchard twig. +In various enchanted attitudes, like the standing, or stepping, or +running skeletons in Herculaneum, others remained rooted to the deck; +but all their eyes upcast. + +"Aye, aye, men!" cried Ahab. "Look up at it; mark it well; the white +flame but lights the way to the White Whale! Hand me those mainmast +links there; I would fain feel this pulse, and let mine beat against +it; blood against fire! So." + +Then turning--the last link held fast in his left hand, he put his +foot upon the Parsee; and with fixed upward eye, and high-flung right +arm, he stood erect before the lofty tri-pointed trinity of flames. + +"Oh! thou clear spirit of clear fire, whom on these seas I as Persian +once did worship, till in the sacramental act so burned by thee, that +to this hour I bear the scar; I now know thee, thou clear spirit, and +I now know that thy right worship is defiance. To neither love nor +reverence wilt thou be kind; and e'en for hate thou canst but kill; +and all are killed. No fearless fool now fronts thee. I own thy +speechless, placeless power; but to the last gasp of my earthquake +life will dispute its unconditional, unintegral mastery in me. In the +midst of the personified impersonal, a personality stands here. +Though but a point at best; whencesoe'er I came; wheresoe'er I go; +yet while I earthly live, the queenly personality lives in me, and +feels her royal rights. But war is pain, and hate is woe. Come in +thy lowest form of love, and I will kneel and kiss thee; but at thy +highest, come as mere supernal power; and though thou launchest +navies of full-freighted worlds, there's that in here that still +remains indifferent. Oh, thou clear spirit, of thy fire thou madest +me, and like a true child of fire, I breathe it back to thee." + +[SUDDEN, REPEATED FLASHES OF LIGHTNING; THE NINE FLAMES LEAP +LENGTHWISE TO THRICE THEIR PREVIOUS HEIGHT; AHAB, WITH THE REST, +CLOSES HIS EYES, HIS RIGHT HAND PRESSED HARD UPON THEM.] + +"I own thy speechless, placeless power; said I not so? Nor was it +wrung from me; nor do I now drop these links. Thou canst blind; but +I can then grope. Thou canst consume; but I can then be ashes. Take +the homage of these poor eyes, and shutter-hands. I would not take +it. The lightning flashes through my skull; mine eye-balls ache and +ache; my whole beaten brain seems as beheaded, and rolling on some +stunning ground. Oh, oh! Yet blindfold, yet will I talk to thee. +Light though thou be, thou leapest out of darkness; but I am darkness +leaping out of light, leaping out of thee! The javelins cease; open +eyes; see, or not? There burn the flames! Oh, thou magnanimous! now +I do glory in my genealogy. But thou art but my fiery father; my +sweet mother, I know not. Oh, cruel! what hast thou done with her? +There lies my puzzle; but thine is greater. Thou knowest not how +came ye, hence callest thyself unbegotten; certainly knowest not thy +beginning, hence callest thyself unbegun. I know that of me, which +thou knowest not of thyself, oh, thou omnipotent. There is some +unsuffusing thing beyond thee, thou clear spirit, to whom all thy +eternity is but time, all thy creativeness mechanical. Through thee, +thy flaming self, my scorched eyes do dimly see it. Oh, thou +foundling fire, thou hermit immemorial, thou too hast thy +incommunicable riddle, thy unparticipated grief. Here again with +haughty agony, I read my sire. Leap! leap up, and lick the sky! I +leap with thee; I burn with thee; would fain be welded with thee; +defyingly I worship thee!" + +"The boat! the boat!" cried Starbuck, "look at thy boat, old man!" + +Ahab's harpoon, the one forged at Perth's fire, remained firmly +lashed in its conspicuous crotch, so that it projected beyond his +whale-boat's bow; but the sea that had stove its bottom had caused +the loose leather sheath to drop off; and from the keen steel barb +there now came a levelled flame of pale, forked fire. As the silent +harpoon burned there like a serpent's tongue, Starbuck grasped Ahab +by the arm--"God, God is against thee, old man; forbear! 'tis an +ill voyage! ill begun, ill continued; let me square the yards, while +we may, old man, and make a fair wind of it homewards, to go on a +better voyage than this." + +Overhearing Starbuck, the panic-stricken crew instantly ran to the +braces--though not a sail was left aloft. For the moment all the +aghast mate's thoughts seemed theirs; they raised a half mutinous +cry. But dashing the rattling lightning links to the deck, and +snatching the burning harpoon, Ahab waved it like a torch among them; +swearing to transfix with it the first sailor that but cast loose a +rope's end. Petrified by his aspect, and still more shrinking from +the fiery dart that he held, the men fell back in dismay, and Ahab +again spoke:-- + +"All your oaths to hunt the White Whale are as binding as mine; and +heart, soul, and body, lungs and life, old Ahab is bound. And that +ye may know to what tune this heart beats; look ye here; thus I blow +out the last fear!" And with one blast of his breath he extinguished +the flame. + +As in the hurricane that sweeps the plain, men fly the neighborhood +of some lone, gigantic elm, whose very height and strength but render +it so much the more unsafe, because so much the more a mark for +thunderbolts; so at those last words of Ahab's many of the mariners +did run from him in a terror of dismay. + + + +CHAPTER 120 + +The Deck Towards the End of the First Night Watch. + +AHAB STANDING BY THE HELM. STARBUCK APPROACHING HIM. + + +We must send down the main-top-sail yard, sir. The band is working +loose and the lee lift is half-stranded. Shall I strike it, sir?" + +"Strike nothing; lash it. If I had sky-sail poles, I'd sway them up +now." + +"Sir!--in God's name!--sir?" + +"Well." + +"The anchors are working, sir. Shall I get them inboard?" + +"Strike nothing, and stir nothing, but lash everything. The wind +rises, but it has not got up to my table-lands yet. Quick, and see +to it.--By masts and keels! he takes me for the hunch-backed skipper +of some coasting smack. Send down my main-top-sail yard! Ho, +gluepots! Loftiest trucks were made for wildest winds, and this +brain-truck of mine now sails amid the cloud-scud. Shall I strike +that? Oh, none but cowards send down their brain-trucks in tempest +time. What a hooroosh aloft there! I would e'en take it for +sublime, did I not know that the colic is a noisy malady. Oh, take +medicine, take medicine!" + + + +CHAPTER 121 + +Midnight.--The Forecastle Bulwarks. + + +STUBB AND FLASK MOUNTED ON THEM, AND PASSING ADDITIONAL LASHINGS OVER +THE ANCHORS THERE HANGING. + + +No, Stubb; you may pound that knot there as much as you please, but +you will never pound into me what you were just now saying. And how +long ago is it since you said the very contrary? Didn't you once say +that whatever ship Ahab sails in, that ship should pay something +extra on its insurance policy, just as though it were loaded with +powder barrels aft and boxes of lucifers forward? Stop, now; didn't +you say so?" + +"Well, suppose I did? What then? I've part changed my flesh since +that time, why not my mind? Besides, supposing we ARE loaded with +powder barrels aft and lucifers forward; how the devil could the +lucifers get afire in this drenching spray here? Why, my little man, +you have pretty red hair, but you couldn't get afire now. Shake +yourself; you're Aquarius, or the water-bearer, Flask; might fill +pitchers at your coat collar. Don't you see, then, that for these +extra risks the Marine Insurance companies have extra guarantees? +Here are hydrants, Flask. But hark, again, and I'll answer ye the +other thing. First take your leg off from the crown of the anchor +here, though, so I can pass the rope; now listen. What's the mighty +difference between holding a mast's lightning-rod in the storm, and +standing close by a mast that hasn't got any lightning-rod at all in +a storm? Don't you see, you timber-head, that no harm can come to +the holder of the rod, unless the mast is first struck? What are you +talking about, then? Not one ship in a hundred carries rods, and +Ahab,--aye, man, and all of us,--were in no more danger then, in my +poor opinion, than all the crews in ten thousand ships now sailing +the seas. Why, you King-Post, you, I suppose you would have every +man in the world go about with a small lightning-rod running up the +corner of his hat, like a militia officer's skewered feather, and +trailing behind like his sash. Why don't ye be sensible, Flask? it's +easy to be sensible; why don't ye, then? any man with half an eye can +be sensible." + +"I don't know that, Stubb. You sometimes find it rather hard." + +"Yes, when a fellow's soaked through, it's hard to be sensible, +that's a fact. And I am about drenched with this spray. Never mind; +catch the turn there, and pass it. Seems to me we are lashing down +these anchors now as if they were never going to be used again. +Tying these two anchors here, Flask, seems like tying a man's hands +behind him. And what big generous hands they are, to be sure. These +are your iron fists, hey? What a hold they have, too! I wonder, +Flask, whether the world is anchored anywhere; if she is, she swings +with an uncommon long cable, though. There, hammer that knot down, +and we've done. So; next to touching land, lighting on deck is the +most satisfactory. I say, just wring out my jacket skirts, will ye? +Thank ye. They laugh at long-togs so, Flask; but seems to me, a +Long tailed coat ought always to be worn in all storms afloat. The +tails tapering down that way, serve to carry off the water, d'ye see. +Same with cocked hats; the cocks form gable-end eave-troughs, Flask. +No more monkey-jackets and tarpaulins for me; I must mount a +swallow-tail, and drive down a beaver; so. Halloa! whew! there goes +my tarpaulin overboard; Lord, Lord, that the winds that come from +heaven should be so unmannerly! This is a nasty night, lad." + + + +CHAPTER 122 + +Midnight Aloft.--Thunder and Lightning. + + +THE MAIN-TOP-SAIL YARD.--TASHTEGO PASSING NEW LASHINGS AROUND IT. + + +"Um, um, um. Stop that thunder! Plenty too much thunder up here. +What's the use of thunder? Um, um, um. We don't want thunder; we +want rum; give us a glass of rum. Um, um, um!" + + + +CHAPTER 123 + +The Musket. + + +During the most violent shocks of the Typhoon, the man at the +Pequod's jaw-bone tiller had several times been reelingly hurled to +the deck by its spasmodic motions, even though preventer tackles had +been attached to it--for they were slack--because some play to the +tiller was indispensable. + +In a severe gale like this, while the ship is but a tossed +shuttlecock to the blast, it is by no means uncommon to see the +needles in the compasses, at intervals, go round and round. It was +thus with the Pequod's; at almost every shock the helmsman had not +failed to notice the whirling velocity with which they revolved upon +the cards; it is a sight that hardly anyone can behold without some +sort of unwonted emotion. + +Some hours after midnight, the Typhoon abated so much, that through +the strenuous exertions of Starbuck and Stubb--one engaged forward +and the other aft--the shivered remnants of the jib and fore and +main-top-sails were cut adrift from the spars, and went eddying away +to leeward, like the feathers of an albatross, which sometimes are +cast to the winds when that storm-tossed bird is on the wing. + +The three corresponding new sails were now bent and reefed, and a +storm-trysail was set further aft; so that the ship soon went through +the water with some precision again; and the course--for the present, +East-south-east--which he was to steer, if practicable, was once more +given to the helmsman. For during the violence of the gale, he had +only steered according to its vicissitudes. But as he was now +bringing the ship as near her course as possible, watching the +compass meanwhile, lo! a good sign! the wind seemed coming round +astern; aye, the foul breeze became fair! + +Instantly the yards were squared, to the lively song of "HO! THE FAIR +WIND! OH-YE-HO, CHEERLY MEN!" the crew singing for joy, that so +promising an event should so soon have falsified the evil portents +preceding it. + +In compliance with the standing order of his commander--to report +immediately, and at any one of the twenty-four hours, any decided +change in the affairs of the deck,--Starbuck had no sooner trimmed +the yards to the breeze--however reluctantly and gloomily,--than he +mechanically went below to apprise Captain Ahab of the circumstance. + +Ere knocking at his state-room, he involuntarily paused before it a +moment. The cabin lamp--taking long swings this way and that--was +burning fitfully, and casting fitful shadows upon the old man's +bolted door,--a thin one, with fixed blinds inserted, in place of +upper panels. The isolated subterraneousness of the cabin made a +certain humming silence to reign there, though it was hooped round by +all the roar of the elements. The loaded muskets in the rack were +shiningly revealed, as they stood upright against the forward +bulkhead. Starbuck was an honest, upright man; but out of Starbuck's +heart, at that instant when he saw the muskets, there strangely +evolved an evil thought; but so blent with its neutral or good +accompaniments that for the instant he hardly knew it for itself. + +"He would have shot me once," he murmured, "yes, there's the very +musket that he pointed at me;--that one with the studded stock; let +me touch it--lift it. Strange, that I, who have handled so many +deadly lances, strange, that I should shake so now. Loaded? I must +see. Aye, aye; and powder in the pan;--that's not good. Best spill +it?--wait. I'll cure myself of this. I'll hold the musket boldly +while I think.--I come to report a fair wind to him. But how fair? +Fair for death and doom,--THAT'S fair for Moby Dick. It's a fair +wind that's only fair for that accursed fish.--The very tube he +pointed at me!--the very one; THIS one--I hold it here; he would have +killed me with the very thing I handle now.--Aye and he would fain +kill all his crew. Does he not say he will not strike his spars to +any gale? Has he not dashed his heavenly quadrant? and in these same +perilous seas, gropes he not his way by mere dead reckoning of the +error-abounding log? and in this very Typhoon, did he not swear that +he would have no lightning-rods? But shall this crazed old man be +tamely suffered to drag a whole ship's company down to doom with +him?--Yes, it would make him the wilful murderer of thirty men and +more, if this ship come to any deadly harm; and come to deadly harm, +my soul swears this ship will, if Ahab have his way. If, then, he +were this instant--put aside, that crime would not be his. Ha! is he +muttering in his sleep? Yes, just there,--in there, he's sleeping. +Sleeping? aye, but still alive, and soon awake again. I can't +withstand thee, then, old man. Not reasoning; not remonstrance; not +entreaty wilt thou hearken to; all this thou scornest. Flat +obedience to thy own flat commands, this is all thou breathest. Aye, +and say'st the men have vow'd thy vow; say'st all of us are Ahabs. +Great God forbid!--But is there no other way? no lawful way?--Make +him a prisoner to be taken home? What! hope to wrest this old man's +living power from his own living hands? Only a fool would try it. +Say he were pinioned even; knotted all over with ropes and hawsers; +chained down to ring-bolts on this cabin floor; he would be more +hideous than a caged tiger, then. I could not endure the sight; +could not possibly fly his howlings; all comfort, sleep itself, +inestimable reason would leave me on the long intolerable voyage. +What, then, remains? The land is hundreds of leagues away, and +locked Japan the nearest. I stand alone here upon an open sea, with +two oceans and a whole continent between me and law.--Aye, aye, 'tis +so.--Is heaven a murderer when its lightning strikes a would-be +murderer in his bed, tindering sheets and skin together?--And would I +be a murderer, then, if"--and slowly, stealthily, and half sideways +looking, he placed the loaded musket's end against the door. + +"On this level, Ahab's hammock swings within; his head this way. A +touch, and Starbuck may survive to hug his wife and child again.--Oh +Mary! Mary!--boy! boy! boy!--But if I wake thee not to death, old +man, who can tell to what unsounded deeps Starbuck's body this day +week may sink, with all the crew! Great God, where art Thou? Shall +I? shall I?--The wind has gone down and shifted, sir; the fore and +main topsails are reefed and set; she heads her course." + +"Stern all! Oh Moby Dick, I clutch thy heart at last!" + +Such were the sounds that now came hurtling from out the old man's +tormented sleep, as if Starbuck's voice had caused the long dumb +dream to speak. + +The yet levelled musket shook like a drunkard's arm against the +panel; Starbuck seemed wrestling with an angel; but turning from the +door, he placed the death-tube in its rack, and left the place. + +"He's too sound asleep, Mr. Stubb; go thou down, and wake him, and +tell him. I must see to the deck here. Thou know'st what to say." + + + +CHAPTER 124 + +The Needle. + + +Next morning the not-yet-subsided sea rolled in long slow billows of +mighty bulk, and striving in the Pequod's gurgling track, pushed her +on like giants' palms outspread. The strong, unstaggering breeze +abounded so, that sky and air seemed vast outbellying sails; the +whole world boomed before the wind. Muffled in the full morning +light, the invisible sun was only known by the spread intensity of +his place; where his bayonet rays moved on in stacks. Emblazonings, +as of crowned Babylonian kings and queens, reigned over everything. +The sea was as a crucible of molten gold, that bubblingly leaps with +light and heat. + +Long maintaining an enchanted silence, Ahab stood apart; and every +time the tetering ship loweringly pitched down her bowsprit, he +turned to eye the bright sun's rays produced ahead; and when she +profoundly settled by the stern, he turned behind, and saw the sun's +rearward place, and how the same yellow rays were blending with his +undeviating wake. + +"Ha, ha, my ship! thou mightest well be taken now for the sea-chariot +of the sun. Ho, ho! all ye nations before my prow, I bring the sun +to ye! Yoke on the further billows; hallo! a tandem, I drive the +sea!" + +But suddenly reined back by some counter thought, he hurried towards +the helm, huskily demanding how the ship was heading. + +"East-sou-east, sir," said the frightened steersman. + +"Thou liest!" smiting him with his clenched fist. "Heading East at +this hour in the morning, and the sun astern?" + +Upon this every soul was confounded; for the phenomenon just then +observed by Ahab had unaccountably escaped every one else; but its +very blinding palpableness must have been the cause. + +Thrusting his head half way into the binnacle, Ahab caught one +glimpse of the compasses; his uplifted arm slowly fell; for a moment +he almost seemed to stagger. Standing behind him Starbuck looked, +and lo! the two compasses pointed East, and the Pequod was as +infallibly going West. + +But ere the first wild alarm could get out abroad among the crew, the +old man with a rigid laugh exclaimed, "I have it! It has happened +before. Mr. Starbuck, last night's thunder turned our +compasses--that's all. Thou hast before now heard of such a thing, I +take it." + +"Aye; but never before has it happened to me, sir," said the pale +mate, gloomily. + +Here, it must needs be said, that accidents like this have in more +than one case occurred to ships in violent storms. The magnetic +energy, as developed in the mariner's needle, is, as all know, +essentially one with the electricity beheld in heaven; hence it is +not to be much marvelled at, that such things should be. Instances +where the lightning has actually struck the vessel, so as to smite +down some of the spars and rigging, the effect upon the needle has at +times been still more fatal; all its loadstone virtue being +annihilated, so that the before magnetic steel was of no more use +than an old wife's knitting needle. But in either case, the needle +never again, of itself, recovers the original virtue thus marred or +lost; and if the binnacle compasses be affected, the same fate +reaches all the others that may be in the ship; even were the +lowermost one inserted into the kelson. + +Deliberately standing before the binnacle, and eyeing the +transpointed compasses, the old man, with the sharp of his extended +hand, now took the precise bearing of the sun, and satisfied that the +needles were exactly inverted, shouted out his orders for the ship's +course to be changed accordingly. The yards were hard up; and once +more the Pequod thrust her undaunted bows into the opposing wind, for +the supposed fair one had only been juggling her. + +Meanwhile, whatever were his own secret thoughts, Starbuck said +nothing, but quietly he issued all requisite orders; while Stubb and +Flask--who in some small degree seemed then to be sharing his +feelings--likewise unmurmuringly acquiesced. As for the men, though +some of them lowly rumbled, their fear of Ahab was greater than their +fear of Fate. But as ever before, the pagan harpooneers remained +almost wholly unimpressed; or if impressed, it was only with a +certain magnetism shot into their congenial hearts from inflexible +Ahab's. + +For a space the old man walked the deck in rolling reveries. But +chancing to slip with his ivory heel, he saw the crushed copper +sight-tubes of the quadrant he had the day before dashed to the deck. + +"Thou poor, proud heaven-gazer and sun's pilot! yesterday I wrecked +thee, and to-day the compasses would fain have wrecked me. So, so. +But Ahab is lord over the level loadstone yet. Mr. Starbuck--a lance +without a pole; a top-maul, and the smallest of the sail-maker's +needles. Quick!" + +Accessory, perhaps, to the impulse dictating the thing he was now +about to do, were certain prudential motives, whose object might have +been to revive the spirits of his crew by a stroke of his subtile +skill, in a matter so wondrous as that of the inverted compasses. +Besides, the old man well knew that to steer by transpointed needles, +though clumsily practicable, was not a thing to be passed over by +superstitious sailors, without some shudderings and evil portents. + +"Men," said he, steadily turning upon the crew, as the mate handed +him the things he had demanded, "my men, the thunder turned old +Ahab's needles; but out of this bit of steel Ahab can make one of his +own, that will point as true as any." + +Abashed glances of servile wonder were exchanged by the sailors, as +this was said; and with fascinated eyes they awaited whatever magic +might follow. But Starbuck looked away. + +With a blow from the top-maul Ahab knocked off the steel head of the +lance, and then handing to the mate the long iron rod remaining, bade +him hold it upright, without its touching the deck. Then, with the +maul, after repeatedly smiting the upper end of this iron rod, he +placed the blunted needle endwise on the top of it, and less strongly +hammered that, several times, the mate still holding the rod as +before. Then going through some small strange motions with +it--whether indispensable to the magnetizing of the steel, or merely +intended to augment the awe of the crew, is uncertain--he called for +linen thread; and moving to the binnacle, slipped out the two +reversed needles there, and horizontally suspended the sail-needle by +its middle, over one of the compass-cards. At first, the steel went +round and round, quivering and vibrating at either end; but at last +it settled to its place, when Ahab, who had been intently watching +for this result, stepped frankly back from the binnacle, and pointing +his stretched arm towards it, exclaimed,--"Look ye, for yourselves, +if Ahab be not lord of the level loadstone! The sun is East, and +that compass swears it!" + +One after another they peered in, for nothing but their own eyes +could persuade such ignorance as theirs, and one after another they +slunk away. + +In his fiery eyes of scorn and triumph, you then saw Ahab in all his +fatal pride. + + + +CHAPTER 125 + +The Log and Line. + + +While now the fated Pequod had been so long afloat this voyage, the +log and line had but very seldom been in use. Owing to a confident +reliance upon other means of determining the vessel's place, some +merchantmen, and many whalemen, especially when cruising, wholly +neglect to heave the log; though at the same time, and frequently +more for form's sake than anything else, regularly putting down upon +the customary slate the course steered by the ship, as well as the +presumed average rate of progression every hour. It had been thus +with the Pequod. The wooden reel and angular log attached hung, long +untouched, just beneath the railing of the after bulwarks. Rains and +spray had damped it; sun and wind had warped it; all the elements +had combined to rot a thing that hung so idly. But heedless of all +this, his mood seized Ahab, as he happened to glance upon the reel, +not many hours after the magnet scene, and he remembered how his +quadrant was no more, and recalled his frantic oath about the level +log and line. The ship was sailing plungingly; astern the billows +rolled in riots. + +"Forward, there! Heave the log!" + +Two seamen came. The golden-hued Tahitian and the grizzly Manxman. +"Take the reel, one of ye, I'll heave." + +They went towards the extreme stern, on the ship's lee side, where +the deck, with the oblique energy of the wind, was now almost dipping +into the creamy, sidelong-rushing sea. + +The Manxman took the reel, and holding it high up, by the projecting +handle-ends of the spindle, round which the spool of line revolved, +so stood with the angular log hanging downwards, till Ahab advanced +to him. + +Ahab stood before him, and was lightly unwinding some thirty or forty +turns to form a preliminary hand-coil to toss overboard, when the old +Manxman, who was intently eyeing both him and the line, made bold to +speak. + +"Sir, I mistrust it; this line looks far gone, long heat and wet have +spoiled it." + +"'Twill hold, old gentleman. Long heat and wet, have they spoiled +thee? Thou seem'st to hold. Or, truer perhaps, life holds thee; +not thou it." + +"I hold the spool, sir. But just as my captain says. With these +grey hairs of mine 'tis not worth while disputing, 'specially with a +superior, who'll ne'er confess." + +"What's that? There now's a patched professor in Queen Nature's +granite-founded College; but methinks he's too subservient. Where +wert thou born?" + +"In the little rocky Isle of Man, sir." + +"Excellent! Thou'st hit the world by that." + +"I know not, sir, but I was born there." + +"In the Isle of Man, hey? Well, the other way, it's good. Here's a +man from Man; a man born in once independent Man, and now unmanned of +Man; which is sucked in--by what? Up with the reel! The dead, blind +wall butts all inquiring heads at last. Up with it! So." + +The log was heaved. The loose coils rapidly straightened out in a +long dragging line astern, and then, instantly, the reel began to +whirl. In turn, jerkingly raised and lowered by the rolling billows, +the towing resistance of the log caused the old reelman to stagger +strangely. + +"Hold hard!" + +Snap! the overstrained line sagged down in one long festoon; the +tugging log was gone. + +"I crush the quadrant, the thunder turns the needles, and now the mad +sea parts the log-line. But Ahab can mend all. Haul in here, +Tahitian; reel up, Manxman. And look ye, let the carpenter make +another log, and mend thou the line. See to it." + +"There he goes now; to him nothing's happened; but to me, the skewer +seems loosening out of the middle of the world. Haul in, haul in, +Tahitian! These lines run whole, and whirling out: come in broken, +and dragging slow. Ha, Pip? come to help; eh, Pip?" + +"Pip? whom call ye Pip? Pip jumped from the whale-boat. Pip's +missing. Let's see now if ye haven't fished him up here, fisherman. +It drags hard; I guess he's holding on. Jerk him, Tahiti! Jerk him +off; we haul in no cowards here. Ho! there's his arm just breaking +water. A hatchet! a hatchet! cut it off--we haul in no cowards here. +Captain Ahab! sir, sir! here's Pip, trying to get on board again." + +"Peace, thou crazy loon," cried the Manxman, seizing him by the arm. +"Away from the quarter-deck!" + +"The greater idiot ever scolds the lesser," muttered Ahab, advancing. +"Hands off from that holiness! Where sayest thou Pip was, boy? + +"Astern there, sir, astern! Lo! lo!" + +"And who art thou, boy? I see not my reflection in the vacant pupils +of thy eyes. Oh God! that man should be a thing for immortal souls +to sieve through! Who art thou, boy?" + +"Bell-boy, sir; ship's-crier; ding, dong, ding! Pip! Pip! Pip! One +hundred pounds of clay reward for Pip; five feet high--looks +cowardly--quickest known by that! Ding, dong, ding! Who's seen Pip +the coward?" + +"There can be no hearts above the snow-line. Oh, ye frozen heavens! +look down here. Ye did beget this luckless child, and have abandoned +him, ye creative libertines. Here, boy; Ahab's cabin shall be Pip's +home henceforth, while Ahab lives. Thou touchest my inmost centre, +boy; thou art tied to me by cords woven of my heart-strings. Come, +let's down." + +"What's this? here's velvet shark-skin," intently gazing at Ahab's +hand, and feeling it. "Ah, now, had poor Pip but felt so kind a +thing as this, perhaps he had ne'er been lost! This seems to me, +sir, as a man-rope; something that weak souls may hold by. Oh, sir, +let old Perth now come and rivet these two hands together; the black +one with the white, for I will not let this go." + +"Oh, boy, nor will I thee, unless I should thereby drag thee to worse +horrors than are here. Come, then, to my cabin. Lo! ye believers in +gods all goodness, and in man all ill, lo you! see the omniscient +gods oblivious of suffering man; and man, though idiotic, and knowing +not what he does, yet full of the sweet things of love and gratitude. +Come! I feel prouder leading thee by thy black hand, than though I +grasped an Emperor's!" + +"There go two daft ones now," muttered the old Manxman. "One daft +with strength, the other daft with weakness. But here's the end of +the rotten line--all dripping, too. Mend it, eh? I think we had +best have a new line altogether. I'll see Mr. Stubb about it." + + + +CHAPTER 126 + +The Life-Buoy. + + +Steering now south-eastward by Ahab's levelled steel, and her +progress solely determined by Ahab's level log and line; the Pequod +held on her path towards the Equator. Making so long a passage +through such unfrequented waters, descrying no ships, and ere long, +sideways impelled by unvarying trade winds, over waves monotonously +mild; all these seemed the strange calm things preluding some riotous +and desperate scene. + +At last, when the ship drew near to the outskirts, as it were, of the +Equatorial fishing-ground, and in the deep darkness that goes before +the dawn, was sailing by a cluster of rocky islets; the watch--then +headed by Flask--was startled by a cry so plaintively wild and +unearthly--like half-articulated wailings of the ghosts of all +Herod's murdered Innocents--that one and all, they started from their +reveries, and for the space of some moments stood, or sat, or leaned +all transfixedly listening, like the carved Roman slave, while that +wild cry remained within hearing. The Christian or civilized part of +the crew said it was mermaids, and shuddered; but the pagan +harpooneers remained unappalled. Yet the grey Manxman--the oldest +mariner of all--declared that the wild thrilling sounds that were +heard, were the voices of newly drowned men in the sea. + +Below in his hammock, Ahab did not hear of this till grey dawn, when +he came to the deck; it was then recounted to him by Flask, not +unaccompanied with hinted dark meanings. He hollowly laughed, and +thus explained the wonder. + +Those rocky islands the ship had passed were the resort of great +numbers of seals, and some young seals that had lost their dams, or +some dams that had lost their cubs, must have risen nigh the ship and +kept company with her, crying and sobbing with their human sort of +wail. But this only the more affected some of them, because most +mariners cherish a very superstitious feeling about seals, arising +not only from their peculiar tones when in distress, but also from +the human look of their round heads and semi-intelligent faces, seen +peeringly uprising from the water alongside. In the sea, under +certain circumstances, seals have more than once been mistaken for +men. + +But the bodings of the crew were destined to receive a most plausible +confirmation in the fate of one of their number that morning. At +sun-rise this man went from his hammock to his mast-head at the fore; +and whether it was that he was not yet half waked from his sleep (for +sailors sometimes go aloft in a transition state), whether it was +thus with the man, there is now no telling; but, be that as it may, +he had not been long at his perch, when a cry was heard--a cry and a +rushing--and looking up, they saw a falling phantom in the air; and +looking down, a little tossed heap of white bubbles in the blue of +the sea. + +The life-buoy--a long slender cask--was dropped from the stern, where +it always hung obedient to a cunning spring; but no hand rose to +seize it, and the sun having long beat upon this cask it had +shrunken, so that it slowly filled, and that parched wood also +filled at its every pore; and the studded iron-bound cask followed +the sailor to the bottom, as if to yield him his pillow, though in +sooth but a hard one. + +And thus the first man of the Pequod that mounted the mast to look +out for the White Whale, on the White Whale's own peculiar ground; +that man was swallowed up in the deep. But few, perhaps, thought of +that at the time. Indeed, in some sort, they were not grieved at +this event, at least as a portent; for they regarded it, not as a +foreshadowing of evil in the future, but as the fulfilment of an +evil already presaged. They declared that now they knew the reason +of those wild shrieks they had heard the night before. But again the +old Manxman said nay. + +The lost life-buoy was now to be replaced; Starbuck was directed to +see to it; but as no cask of sufficient lightness could be found, and +as in the feverish eagerness of what seemed the approaching crisis of +the voyage, all hands were impatient of any toil but what was +directly connected with its final end, whatever that might prove to +be; therefore, they were going to leave the ship's stern unprovided +with a buoy, when by certain strange signs and inuendoes Queequeg +hinted a hint concerning his coffin. + +"A life-buoy of a coffin!" cried Starbuck, starting. + +"Rather queer, that, I should say," said Stubb. + +"It will make a good enough one," said Flask, "the carpenter here can +arrange it easily." + +"Bring it up; there's nothing else for it," said Starbuck, after a +melancholy pause. "Rig it, carpenter; do not look at me so--the +coffin, I mean. Dost thou hear me? Rig it." + +"And shall I nail down the lid, sir?" moving his hand as with a +hammer. + +"Aye." + +"And shall I caulk the seams, sir?" moving his hand as with a +caulking-iron. + +"Aye." + +"And shall I then pay over the same with pitch, sir?" moving his hand +as with a pitch-pot. + +"Away! what possesses thee to this? Make a life-buoy of the coffin, +and no more.--Mr. Stubb, Mr. Flask, come forward with me." + +"He goes off in a huff. The whole he can endure; at the parts he +baulks. Now I don't like this. I make a leg for Captain Ahab, and +he wears it like a gentleman; but I make a bandbox for Queequeg, and +he won't put his head into it. Are all my pains to go for nothing +with that coffin? And now I'm ordered to make a life-buoy of it. +It's like turning an old coat; going to bring the flesh on the other +side now. I don't like this cobbling sort of business--I don't like +it at all; it's undignified; it's not my place. Let tinkers' brats +do tinkerings; we are their betters. I like to take in hand none but +clean, virgin, fair-and-square mathematical jobs, something that +regularly begins at the beginning, and is at the middle when midway, +and comes to an end at the conclusion; not a cobbler's job, that's at +an end in the middle, and at the beginning at the end. It's the old +woman's tricks to be giving cobbling jobs. Lord! what an affection +all old women have for tinkers. I know an old woman of sixty-five +who ran away with a bald-headed young tinker once. And that's the +reason I never would work for lonely widow old women ashore, when I +kept my job-shop in the Vineyard; they might have taken it into their +lonely old heads to run off with me. But heigh-ho! there are no caps +at sea but snow-caps. Let me see. Nail down the lid; caulk the +seams; pay over the same with pitch; batten them down tight, and hang +it with the snap-spring over the ship's stern. Were ever such things +done before with a coffin? Some superstitious old carpenters, now, +would be tied up in the rigging, ere they would do the job. But I'm +made of knotty Aroostook hemlock; I don't budge. Cruppered with a +coffin! Sailing about with a grave-yard tray! But never mind. We +workers in woods make bridal-bedsteads and card-tables, as well as +coffins and hearses. We work by the month, or by the job, or by the +profit; not for us to ask the why and wherefore of our work, unless +it be too confounded cobbling, and then we stash it if we can. Hem! +I'll do the job, now, tenderly. I'll have me--let's see--how many in +the ship's company, all told? But I've forgotten. Any way, I'll +have me thirty separate, Turk's-headed life-lines, each three feet +long hanging all round to the coffin. Then, if the hull go down, +there'll be thirty lively fellows all fighting for one coffin, a +sight not seen very often beneath the sun! Come hammer, +caulking-iron, pitch-pot, and marling-spike! Let's to it." + + + +CHAPTER 127 + +The Deck. + + +THE COFFIN LAID UPON TWO LINE-TUBS, BETWEEN THE VICE-BENCH AND THE +OPEN HATCHWAY; THE CARPENTER CAULKING ITS SEAMS; THE STRING OF +TWISTED OAKUM SLOWLY UNWINDING FROM A LARGE ROLL OF IT PLACED IN THE +BOSOM OF HIS FROCK.--AHAB COMES SLOWLY FROM THE CABIN-GANGWAY, AND +HEARS PIP FOLLOWING HIM. + + +Back, lad; I will be with ye again presently. He goes! Not this +hand complies with my humor more genially than that boy.--Middle +aisle of a church! What's here?" + +"Life-buoy, sir. Mr. Starbuck's orders. Oh, look, sir! Beware the +hatchway!" + +"Thank ye, man. Thy coffin lies handy to the vault." + +"Sir? The hatchway? oh! So it does, sir, so it does." + +"Art not thou the leg-maker? Look, did not this stump come from thy +shop?" + +"I believe it did, sir; does the ferrule stand, sir?" + +"Well enough. But art thou not also the undertaker?" + +"Aye, sir; I patched up this thing here as a coffin for Queequeg; but +they've set me now to turning it into something else." + +"Then tell me; art thou not an arrant, all-grasping, intermeddling, +monopolising, heathenish old scamp, to be one day making legs, and +the next day coffins to clap them in, and yet again life-buoys out of +those same coffins? Thou art as unprincipled as the gods, and as +much of a jack-of-all-trades." + +"But I do not mean anything, sir. I do as I do." + +"The gods again. Hark ye, dost thou not ever sing working about a +coffin? The Titans, they say, hummed snatches when chipping out the +craters for volcanoes; and the grave-digger in the play sings, spade +in hand. Dost thou never?" + +"Sing, sir? Do I sing? Oh, I'm indifferent enough, sir, for that; +but the reason why the grave-digger made music must have been because +there was none in his spade, sir. But the caulking mallet is full of +it. Hark to it." + +"Aye, and that's because the lid there's a sounding-board; and what +in all things makes the sounding-board is this--there's naught +beneath. And yet, a coffin with a body in it rings pretty much the +same, Carpenter. Hast thou ever helped carry a bier, and heard the +coffin knock against the churchyard gate, going in? + +"Faith, sir, I've--" + +"Faith? What's that?" + +"Why, faith, sir, it's only a sort of exclamation-like--that's all, +sir." + +"Um, um; go on." + +"I was about to say, sir, that--" + +"Art thou a silk-worm? Dost thou spin thy own shroud out of thyself? +Look at thy bosom! Despatch! and get these traps out of sight." + +"He goes aft. That was sudden, now; but squalls come sudden in hot +latitudes. I've heard that the Isle of Albemarle, one of the +Gallipagos, is cut by the Equator right in the middle. Seems to me +some sort of Equator cuts yon old man, too, right in his middle. +He's always under the Line--fiery hot, I tell ye! He's looking this +way--come, oakum; quick. Here we go again. This wooden mallet is +the cork, and I'm the professor of musical glasses--tap, tap!" + +(AHAB TO HIMSELF.) + +"There's a sight! There's a sound! The grey-headed woodpecker +tapping the hollow tree! Blind and dumb might well be envied now. +See! that thing rests on two line-tubs, full of tow-lines. A most +malicious wag, that fellow. Rat-tat! So man's seconds tick! Oh! +how immaterial are all materials! What things real are there, but +imponderable thoughts? Here now's the very dreaded symbol of grim +death, by a mere hap, made the expressive sign of the help and hope +of most endangered life. A life-buoy of a coffin! Does it go +further? Can it be that in some spiritual sense the coffin is, after +all, but an immortality-preserver! I'll think of that. But no. So +far gone am I in the dark side of earth, that its other side, the +theoretic bright one, seems but uncertain twilight to me. Will ye +never have done, Carpenter, with that accursed sound? I go below; +let me not see that thing here when I return again. Now, then, Pip, +we'll talk this over; I do suck most wondrous philosophies from thee! +Some unknown conduits from the unknown worlds must empty into thee!" + + + +CHAPTER 128 + +The Pequod Meets The Rachel. + + +Next day, a large ship, the Rachel, was descried, bearing directly +down upon the Pequod, all her spars thickly clustering with men. At +the time the Pequod was making good speed through the water; but as +the broad-winged windward stranger shot nigh to her, the boastful +sails all fell together as blank bladders that are burst, and all +life fled from the smitten hull. + +"Bad news; she brings bad news," muttered the old Manxman. But ere +her commander, who, with trumpet to mouth, stood up in his boat; ere +he could hopefully hail, Ahab's voice was heard. + +"Hast seen the White Whale?" + +"Aye, yesterday. Have ye seen a whale-boat adrift?" + +Throttling his joy, Ahab negatively answered this unexpected +question; and would then have fain boarded the stranger, when the +stranger captain himself, having stopped his vessel's way, was seen +descending her side. A few keen pulls, and his boat-hook soon +clinched the Pequod's main-chains, and he sprang to the deck. +Immediately he was recognised by Ahab for a Nantucketer he knew. But +no formal salutation was exchanged. + +"Where was he?--not killed!--not killed!" cried Ahab, closely +advancing. "How was it?" + +It seemed that somewhat late on the afternoon of the day previous, +while three of the stranger's boats were engaged with a shoal of +whales, which had led them some four or five miles from the ship; and +while they were yet in swift chase to windward, the white hump and +head of Moby Dick had suddenly loomed up out of the water, not very +far to leeward; whereupon, the fourth rigged boat--a reserved +one--had been instantly lowered in chase. After a keen sail before +the wind, this fourth boat--the swiftest keeled of all--seemed to +have succeeded in fastening--at least, as well as the man at the +mast-head could tell anything about it. In the distance he saw the +diminished dotted boat; and then a swift gleam of bubbling white +water; and after that nothing more; whence it was concluded that the +stricken whale must have indefinitely run away with his pursuers, as +often happens. There was some apprehension, but no positive alarm, +as yet. The recall signals were placed in the rigging; darkness came +on; and forced to pick up her three far to windward boats--ere going +in quest of the fourth one in the precisely opposite direction--the +ship had not only been necessitated to leave that boat to its fate +till near midnight, but, for the time, to increase her distance from +it. But the rest of her crew being at last safe aboard, she crowded +all sail--stunsail on stunsail--after the missing boat; kindling a +fire in her try-pots for a beacon; and every other man aloft on the +look-out. But though when she had thus sailed a sufficient distance +to gain the presumed place of the absent ones when last seen; though +she then paused to lower her spare boats to pull all around her; and +not finding anything, had again dashed on; again paused, and lowered +her boats; and though she had thus continued doing till daylight; +yet not the least glimpse of the missing keel had been seen. + +The story told, the stranger Captain immediately went on to reveal +his object in boarding the Pequod. He desired that ship to unite +with his own in the search; by sailing over the sea some four or five +miles apart, on parallel lines, and so sweeping a double horizon, as +it were. + +"I will wager something now," whispered Stubb to Flask, "that some +one in that missing boat wore off that Captain's best coat; mayhap, +his watch--he's so cursed anxious to get it back. Who ever heard of +two pious whale-ships cruising after one missing whale-boat in the +height of the whaling season? See, Flask, only see how pale he +looks--pale in the very buttons of his eyes--look--it wasn't the +coat--it must have been the--" + +"My boy, my own boy is among them. For God's sake--I beg, I +conjure"--here exclaimed the stranger Captain to Ahab, who thus far +had but icily received his petition. "For eight-and-forty hours let +me charter your ship--I will gladly pay for it, and roundly pay for +it--if there be no other way--for eight-and-forty hours only--only +that--you must, oh, you must, and you SHALL do this thing." + +"His son!" cried Stubb, "oh, it's his son he's lost! I take back the +coat and watch--what says Ahab? We must save that boy." + +"He's drowned with the rest on 'em, last night," said the old Manx +sailor standing behind them; "I heard; all of ye heard their +spirits." + +Now, as it shortly turned out, what made this incident of the +Rachel's the more melancholy, was the circumstance, that not only was +one of the Captain's sons among the number of the missing boat's +crew; but among the number of the other boat's crews, at the same +time, but on the other hand, separated from the ship during the dark +vicissitudes of the chase, there had been still another son; as that +for a time, the wretched father was plunged to the bottom of the +cruellest perplexity; which was only solved for him by his chief +mate's instinctively adopting the ordinary procedure of a whale-ship +in such emergencies, that is, when placed between jeopardized but +divided boats, always to pick up the majority first. But the +captain, for some unknown constitutional reason, had refrained from +mentioning all this, and not till forced to it by Ahab's iciness did +he allude to his one yet missing boy; a little lad, but twelve years +old, whose father with the earnest but unmisgiving hardihood of a +Nantucketer's paternal love, had thus early sought to initiate him in +the perils and wonders of a vocation almost immemorially the destiny +of all his race. Nor does it unfrequently occur, that Nantucket +captains will send a son of such tender age away from them, for a +protracted three or four years' voyage in some other ship than their +own; so that their first knowledge of a whaleman's career shall be +unenervated by any chance display of a father's natural but untimely +partiality, or undue apprehensiveness and concern. + +Meantime, now the stranger was still beseeching his poor boon of +Ahab; and Ahab still stood like an anvil, receiving every shock, but +without the least quivering of his own. + +"I will not go," said the stranger, "till you say aye to me. Do to +me as you would have me do to you in the like case. For YOU too have +a boy, Captain Ahab--though but a child, and nestling safely at home +now--a child of your old age too--Yes, yes, you relent; I see +it--run, run, men, now, and stand by to square in the yards." + +"Avast," cried Ahab--"touch not a rope-yarn"; then in a voice that +prolongingly moulded every word--"Captain Gardiner, I will not do it. +Even now I lose time. Good-bye, good-bye. God bless ye, man, and +may I forgive myself, but I must go. Mr. Starbuck, look at the +binnacle watch, and in three minutes from this present instant warn +off all strangers: then brace forward again, and let the ship sail +as before." + +Hurriedly turning, with averted face, he descended into his cabin, +leaving the strange captain transfixed at this unconditional and +utter rejection of his so earnest suit. But starting from his +enchantment, Gardiner silently hurried to the side; more fell than +stepped into his boat, and returned to his ship. + +Soon the two ships diverged their wakes; and long as the strange +vessel was in view, she was seen to yaw hither and thither at every +dark spot, however small, on the sea. This way and that her yards +were swung round; starboard and larboard, she continued to tack; +now she beat against a head sea; and again it pushed her before it; +while all the while, her masts and yards were thickly clustered with +men, as three tall cherry trees, when the boys are cherrying among +the boughs. + +But by her still halting course and winding, woeful way, you plainly +saw that this ship that so wept with spray, still remained without +comfort. She was Rachel, weeping for her children, because they were +not. + + + +CHAPTER 129 + +The Cabin. + + +(AHAB MOVING TO GO ON DECK; PIP CATCHES HIM BY THE HAND TO FOLLOW.) + +Lad, lad, I tell thee thou must not follow Ahab now. The hour is +coming when Ahab would not scare thee from him, yet would not have +thee by him. There is that in thee, poor lad, which I feel too +curing to my malady. Like cures like; and for this hunt, my malady +becomes my most desired health. Do thou abide below here, where they +shall serve thee, as if thou wert the captain. Aye, lad, thou shalt +sit here in my own screwed chair; another screw to it, thou must be." + +"No, no, no! ye have not a whole body, sir; do ye but use poor me for +your one lost leg; only tread upon me, sir; I ask no more, so I +remain a part of ye." + +"Oh! spite of million villains, this makes me a bigot in the fadeless +fidelity of man!--and a black! and crazy!--but methinks +like-cures-like applies to him too; he grows so sane again." + +"They tell me, sir, that Stubb did once desert poor little Pip, whose +drowned bones now show white, for all the blackness of his living +skin. But I will never desert ye, sir, as Stubb did him. Sir, I +must go with ye." + +"If thou speakest thus to me much more, Ahab's purpose keels up in +him. I tell thee no; it cannot be." + +"Oh good master, master, master! + +"Weep so, and I will murder thee! have a care, for Ahab too is mad. +Listen, and thou wilt often hear my ivory foot upon the deck, and +still know that I am there. And now I quit thee. Thy hand!--Met! +True art thou, lad, as the circumference to its centre. So: God for +ever bless thee; and if it come to that,--God for ever save thee, let +what will befall." + +(AHAB GOES; PIP STEPS ONE STEP FORWARD.) + + +"Here he this instant stood; I stand in his air,--but I'm alone. +Now were even poor Pip here I could endure it, but he's missing. +Pip! Pip! Ding, dong, ding! Who's seen Pip? He must be up here; +let's try the door. What? neither lock, nor bolt, nor bar; and yet +there's no opening it. It must be the spell; he told me to stay +here: Aye, and told me this screwed chair was mine. Here, then, I'll +seat me, against the transom, in the ship's full middle, all her keel +and her three masts before me. Here, our old sailors say, in their +black seventy-fours great admirals sometimes sit at table, and lord +it over rows of captains and lieutenants. Ha! what's this? epaulets! +epaulets! the epaulets all come crowding! Pass round the decanters; +glad to see ye; fill up, monsieurs! What an odd feeling, now, when a +black boy's host to white men with gold lace upon their +coats!--Monsieurs, have ye seen one Pip?--a little negro lad, five +feet high, hang-dog look, and cowardly! Jumped from a whale-boat +once;--seen him? No! Well then, fill up again, captains, and let's +drink shame upon all cowards! I name no names. Shame upon them! +Put one foot upon the table. Shame upon all cowards.--Hist! above +there, I hear ivory--Oh, master! master! I am indeed down-hearted +when you walk over me. But here I'll stay, though this stern +strikes rocks; and they bulge through; and oysters come to join me." + + + +CHAPTER 130 + +The Hat. + + +And now that at the proper time and place, after so long and wide a +preliminary cruise, Ahab,--all other whaling waters swept--seemed to +have chased his foe into an ocean-fold, to slay him the more securely +there; now, that he found himself hard by the very latitude and +longitude where his tormenting wound had been inflicted; now that a +vessel had been spoken which on the very day preceding had actually +encountered Moby Dick;--and now that all his successive meetings with +various ships contrastingly concurred to show the demoniac +indifference with which the white whale tore his hunters, whether +sinning or sinned against; now it was that there lurked a something +in the old man's eyes, which it was hardly sufferable for feeble +souls to see. As the unsetting polar star, which through the +livelong, arctic, six months' night sustains its piercing, steady, +central gaze; so Ahab's purpose now fixedly gleamed down upon the +constant midnight of the gloomy crew. It domineered above them so, +that all their bodings, doubts, misgivings, fears, were fain to hide +beneath their souls, and not sprout forth a single spear or leaf. + +In this foreshadowing interval too, all humor, forced or natural, +vanished. Stubb no more strove to raise a smile; Starbuck no more +strove to check one. Alike, joy and sorrow, hope and fear, seemed +ground to finest dust, and powdered, for the time, in the clamped +mortar of Ahab's iron soul. Like machines, they dumbly moved about +the deck, ever conscious that the old man's despot eye was on them. + +But did you deeply scan him in his more secret confidential hours; +when he thought no glance but one was on him; then you would have +seen that even as Ahab's eyes so awed the crew's, the inscrutable +Parsee's glance awed his; or somehow, at least, in some wild way, at +times affected it. Such an added, gliding strangeness began to +invest the thin Fedallah now; such ceaseless shudderings shook him; +that the men looked dubious at him; half uncertain, as it seemed, +whether indeed he were a mortal substance, or else a tremulous shadow +cast upon the deck by some unseen being's body. And that shadow was +always hovering there. For not by night, even, had Fedallah ever +certainly been known to slumber, or go below. He would stand still +for hours: but never sat or leaned; his wan but wondrous eyes did +plainly say--We two watchmen never rest. + +Nor, at any time, by night or day could the mariners now step upon +the deck, unless Ahab was before them; either standing in his +pivot-hole, or exactly pacing the planks between two undeviating +limits,--the main-mast and the mizen; or else they saw him standing +in the cabin-scuttle,--his living foot advanced upon the deck, as if +to step; his hat slouched heavily over his eyes; so that however +motionless he stood, however the days and nights were added on, that +he had not swung in his hammock; yet hidden beneath that slouching +hat, they could never tell unerringly whether, for all this, his eyes +were really closed at times; or whether he was still intently +scanning them; no matter, though he stood so in the scuttle for a +whole hour on the stretch, and the unheeded night-damp gathered in +beads of dew upon that stone-carved coat and hat. The clothes that +the night had wet, the next day's sunshine dried upon him; and so, +day after day, and night after night; he went no more beneath the +planks; whatever he wanted from the cabin that thing he sent for. + +He ate in the same open air; that is, his two only meals,--breakfast +and dinner: supper he never touched; nor reaped his beard; which +darkly grew all gnarled, as unearthed roots of trees blown over, +which still grow idly on at naked base, though perished in the upper +verdure. But though his whole life was now become one watch on deck; +and though the Parsee's mystic watch was without intermission as his +own; yet these two never seemed to speak--one man to the +other--unless at long intervals some passing unmomentous matter made +it necessary. Though such a potent spell seemed secretly to join the +twain; openly, and to the awe-struck crew, they seemed pole-like +asunder. If by day they chanced to speak one word; by night, dumb +men were both, so far as concerned the slightest verbal interchange. +At times, for longest hours, without a single hail, they stood far +parted in the starlight; Ahab in his scuttle, the Parsee by the +mainmast; but still fixedly gazing upon each other; as if in the +Parsee Ahab saw his forethrown shadow, in Ahab the Parsee his +abandoned substance. + +And yet, somehow, did Ahab--in his own proper self, as daily, hourly, +and every instant, commandingly revealed to his subordinates,--Ahab +seemed an independent lord; the Parsee but his slave. Still again +both seemed yoked together, and an unseen tyrant driving them; the +lean shade siding the solid rib. For be this Parsee what he may, all +rib and keel was solid Ahab. + +At the first faintest glimmering of the dawn, his iron voice was +heard from aft,--"Man the mast-heads!"--and all through the day, +till after sunset and after twilight, the same voice every hour, at +the striking of the helmsman's bell, was heard--"What d'ye +see?--sharp! sharp!" + +But when three or four days had slided by, after meeting the +children-seeking Rachel; and no spout had yet been seen; the +monomaniac old man seemed distrustful of his crew's fidelity; at +least, of nearly all except the Pagan harpooneers; he seemed to +doubt, even, whether Stubb and Flask might not willingly overlook the +sight he sought. But if these suspicions were really his, he +sagaciously refrained from verbally expressing them, however his +actions might seem to hint them. + +"I will have the first sight of the whale myself,"--he said. "Aye! +Ahab must have the doubloon! and with his own hands he rigged a nest +of basketed bowlines; and sending a hand aloft, with a single sheaved +block, to secure to the main-mast head, he received the two ends of +the downward-reeved rope; and attaching one to his basket prepared a +pin for the other end, in order to fasten it at the rail. This done, +with that end yet in his hand and standing beside the pin, he looked +round upon his crew, sweeping from one to the other; pausing his +glance long upon Daggoo, Queequeg, Tashtego; but shunning Fedallah; +and then settling his firm relying eye upon the chief mate, +said,--"Take the rope, sir--I give it into thy hands, Starbuck." +Then arranging his person in the basket, he gave the word for them to +hoist him to his perch, Starbuck being the one who secured the rope +at last; and afterwards stood near it. And thus, with one hand +clinging round the royal mast, Ahab gazed abroad upon the sea for +miles and miles,--ahead, astern, this side, and that,--within the +wide expanded circle commanded at so great a height. + +When in working with his hands at some lofty almost isolated place in +the rigging, which chances to afford no foothold, the sailor at sea +is hoisted up to that spot, and sustained there by the rope; under +these circumstances, its fastened end on deck is always given in +strict charge to some one man who has the special watch of it. +Because in such a wilderness of running rigging, whose various +different relations aloft cannot always be infallibly discerned by +what is seen of them at the deck; and when the deck-ends of these +ropes are being every few minutes cast down from the fastenings, it +would be but a natural fatality, if, unprovided with a constant +watchman, the hoisted sailor should by some carelessness of the crew +be cast adrift and fall all swooping to the sea. So Ahab's +proceedings in this matter were not unusual; the only strange thing +about them seemed to be, that Starbuck, almost the one only man who +had ever ventured to oppose him with anything in the slightest degree +approaching to decision--one of those too, whose faithfulness on the +look-out he had seemed to doubt somewhat;--it was strange, that this +was the very man he should select for his watchman; freely giving his +whole life into such an otherwise distrusted person's hands. + +Now, the first time Ahab was perched aloft; ere he had been there ten +minutes; one of those red-billed savage sea-hawks which so often fly +incommodiously close round the manned mast-heads of whalemen in these +latitudes; one of these birds came wheeling and screaming round his +head in a maze of untrackably swift circlings. Then it darted a +thousand feet straight up into the air; then spiralized downwards, +and went eddying again round his head. + +But with his gaze fixed upon the dim and distant horizon, Ahab seemed +not to mark this wild bird; nor, indeed, would any one else have +marked it much, it being no uncommon circumstance; only now almost +the least heedful eye seemed to see some sort of cunning meaning in +almost every sight. + +"Your hat, your hat, sir!" suddenly cried the Sicilian seaman, who +being posted at the mizen-mast-head, stood directly behind Ahab, +though somewhat lower than his level, and with a deep gulf of air +dividing them. + +But already the sable wing was before the old man's eyes; the long +hooked bill at his head: with a scream, the black hawk darted away +with his prize. + +An eagle flew thrice round Tarquin's head, removing his cap to +replace it, and thereupon Tanaquil, his wife, declared that Tarquin +would be king of Rome. But only by the replacing of the cap was that +omen accounted good. Ahab's hat was never restored; the wild hawk +flew on and on with it; far in advance of the prow: and at last +disappeared; while from the point of that disappearance, a minute +black spot was dimly discerned, falling from that vast height into +the sea. + + + +CHAPTER 131 + +The Pequod Meets The Delight. + + +The intense Pequod sailed on; the rolling waves and days went by; the +life-buoy-coffin still lightly swung; and another ship, most +miserably misnamed the Delight, was descried. As she drew nigh, all +eyes were fixed upon her broad beams, called shears, which, in some +whaling-ships, cross the quarter-deck at the height of eight or nine +feet; serving to carry the spare, unrigged, or disabled boats. + +Upon the stranger's shears were beheld the shattered, white ribs, and +some few splintered planks, of what had once been a whale-boat; but +you now saw through this wreck, as plainly as you see through the +peeled, half-unhinged, and bleaching skeleton of a horse. + +"Hast seen the White Whale?" + +"Look!" replied the hollow-cheeked captain from his taffrail; and +with his trumpet he pointed to the wreck. + +"Hast killed him?" + +"The harpoon is not yet forged that ever will do that," answered the +other, sadly glancing upon a rounded hammock on the deck, whose +gathered sides some noiseless sailors were busy in sewing together. + +"Not forged!" and snatching Perth's levelled iron from the crotch, +Ahab held it out, exclaiming--"Look ye, Nantucketer; here in this +hand I hold his death! Tempered in blood, and tempered by lightning +are these barbs; and I swear to temper them triply in that hot place +behind the fin, where the White Whale most feels his accursed life!" + +"Then God keep thee, old man--see'st thou that"--pointing to the +hammock--"I bury but one of five stout men, who were alive only +yesterday; but were dead ere night. Only THAT one I bury; the rest +were buried before they died; you sail upon their tomb." Then +turning to his crew--"Are ye ready there? place the plank then on the +rail, and lift the body; so, then--Oh! God"--advancing towards the +hammock with uplifted hands--"may the resurrection and the life--" + +"Brace forward! Up helm!" cried Ahab like lightning to his men. + +But the suddenly started Pequod was not quick enough to escape the +sound of the splash that the corpse soon made as it struck the sea; +not so quick, indeed, but that some of the flying bubbles might have +sprinkled her hull with their ghostly baptism. + +As Ahab now glided from the dejected Delight, the strange life-buoy +hanging at the Pequod's stern came into conspicuous relief. + +"Ha! yonder! look yonder, men!" cried a foreboding voice in her wake. +"In vain, oh, ye strangers, ye fly our sad burial; ye but turn us +your taffrail to show us your coffin!" + + + +CHAPTER 132 + +The Symphony. + + +It was a clear steel-blue day. The firmaments of air and sea were +hardly separable in that all-pervading azure; only, the pensive air +was transparently pure and soft, with a woman's look, and the robust +and man-like sea heaved with long, strong, lingering swells, as +Samson's chest in his sleep. + +Hither, and thither, on high, glided the snow-white wings of small, +unspeckled birds; these were the gentle thoughts of the feminine air; +but to and fro in the deeps, far down in the bottomless blue, rushed +mighty leviathans, sword-fish, and sharks; and these were the strong, +troubled, murderous thinkings of the masculine sea. + +But though thus contrasting within, the contrast was only in shades +and shadows without; those two seemed one; it was only the sex, as it +were, that distinguished them. + +Aloft, like a royal czar and king, the sun seemed giving this gentle +air to this bold and rolling sea; even as bride to groom. And at the +girdling line of the horizon, a soft and tremulous motion--most seen +here at the Equator--denoted the fond, throbbing trust, the loving +alarms, with which the poor bride gave her bosom away. + +Tied up and twisted; gnarled and knotted with wrinkles; haggardly +firm and unyielding; his eyes glowing like coals, that still glow in +the ashes of ruin; untottering Ahab stood forth in the clearness of +the morn; lifting his splintered helmet of a brow to the fair girl's +forehead of heaven. + +Oh, immortal infancy, and innocency of the azure! Invisible winged +creatures that frolic all round us! Sweet childhood of air and sky! +how oblivious were ye of old Ahab's close-coiled woe! But so have I +seen little Miriam and Martha, laughing-eyed elves, heedlessly gambol +around their old sire; sporting with the circle of singed locks which +grew on the marge of that burnt-out crater of his brain. + +Slowly crossing the deck from the scuttle, Ahab leaned over the side +and watched how his shadow in the water sank and sank to his gaze, +the more and the more that he strove to pierce the profundity. But +the lovely aromas in that enchanted air did at last seem to dispel, +for a moment, the cankerous thing in his soul. That glad, happy air, +that winsome sky, did at last stroke and caress him; the step-mother +world, so long cruel--forbidding--now threw affectionate arms round +his stubborn neck, and did seem to joyously sob over him, as if over +one, that however wilful and erring, she could yet find it in her +heart to save and to bless. From beneath his slouched hat Ahab +dropped a tear into the sea; nor did all the Pacific contain such +wealth as that one wee drop. + +Starbuck saw the old man; saw him, how he heavily leaned over the +side; and he seemed to hear in his own true heart the measureless +sobbing that stole out of the centre of the serenity around. Careful +not to touch him, or be noticed by him, he yet drew near to him, and +stood there. + +Ahab turned. + +"Starbuck!" + +"Sir." + +"Oh, Starbuck! it is a mild, mild wind, and a mild looking sky. On +such a day--very much such a sweetness as this--I struck my first +whale--a boy-harpooneer of eighteen! Forty--forty--forty years +ago!--ago! Forty years of continual whaling! forty years of +privation, and peril, and storm-time! forty years on the pitiless +sea! for forty years has Ahab forsaken the peaceful land, for forty +years to make war on the horrors of the deep! Aye and yes, Starbuck, +out of those forty years I have not spent three ashore. When I think +of this life I have led; the desolation of solitude it has been; the +masoned, walled-town of a Captain's exclusiveness, which admits but +small entrance to any sympathy from the green country without--oh, +weariness! heaviness! Guinea-coast slavery of solitary +command!--when I think of all this; only half-suspected, not so +keenly known to me before--and how for forty years I have fed upon +dry salted fare--fit emblem of the dry nourishment of my soil!--when +the poorest landsman has had fresh fruit to his daily hand, and +broken the world's fresh bread to my mouldy crusts--away, whole +oceans away, from that young girl-wife I wedded past fifty, and +sailed for Cape Horn the next day, leaving but one dent in my +marriage pillow--wife? wife?--rather a widow with her husband alive! +Aye, I widowed that poor girl when I married her, Starbuck; and +then, the madness, the frenzy, the boiling blood and the smoking +brow, with which, for a thousand lowerings old Ahab has furiously, +foamingly chased his prey--more a demon than a man!--aye, aye! what a +forty years' fool--fool--old fool, has old Ahab been! Why this +strife of the chase? why weary, and palsy the arm at the oar, and the +iron, and the lance? how the richer or better is Ahab now? Behold. +Oh, Starbuck! is it not hard, that with this weary load I bear, one +poor leg should have been snatched from under me? Here, brush this +old hair aside; it blinds me, that I seem to weep. Locks so grey did +never grow but from out some ashes! But do I look very old, so very, +very old, Starbuck? I feel deadly faint, bowed, and humped, as +though I were Adam, staggering beneath the piled centuries since +Paradise. God! God! God!--crack my heart!--stave my +brain!--mockery! mockery! bitter, biting mockery of grey hairs, have +I lived enough joy to wear ye; and seem and feel thus intolerably +old? Close! stand close to me, Starbuck; let me look into a human +eye; it is better than to gaze into sea or sky; better than to gaze +upon God. By the green land; by the bright hearth-stone! this is the +magic glass, man; I see my wife and my child in thine eye. No, no; +stay on board, on board!--lower not when I do; when branded Ahab +gives chase to Moby Dick. That hazard shall not be thine. No, no! +not with the far away home I see in that eye!" + +"Oh, my Captain! my Captain! noble soul! grand old heart, after all! +why should any one give chase to that hated fish! Away with me! let +us fly these deadly waters! let us home! Wife and child, too, are +Starbuck's--wife and child of his brotherly, sisterly, play-fellow +youth; even as thine, sir, are the wife and child of thy loving, +longing, paternal old age! Away! let us away!--this instant let me +alter the course! How cheerily, how hilariously, O my Captain, would +we bowl on our way to see old Nantucket again! I think, sir, they +have some such mild blue days, even as this, in Nantucket." + +"They have, they have. I have seen them--some summer days in the +morning. About this time--yes, it is his noon nap now--the boy +vivaciously wakes; sits up in bed; and his mother tells him of me, of +cannibal old me; how I am abroad upon the deep, but will yet come +back to dance him again." + +"'Tis my Mary, my Mary herself! She promised that my boy, every +morning, should be carried to the hill to catch the first glimpse of +his father's sail! Yes, yes! no more! it is done! we head for +Nantucket! Come, my Captain, study out the course, and let us away! +See, see! the boy's face from the window! the boy's hand on the +hill!" + +But Ahab's glance was averted; like a blighted fruit tree he shook, +and cast his last, cindered apple to the soil. + +"What is it, what nameless, inscrutable, unearthly thing is it; what +cozening, hidden lord and master, and cruel, remorseless emperor +commands me; that against all natural lovings and longings, I so keep +pushing, and crowding, and jamming myself on all the time; recklessly +making me ready to do what in my own proper, natural heart, I durst +not so much as dare? Is Ahab, Ahab? Is it I, God, or who, that +lifts this arm? But if the great sun move not of himself; but is as an +errand-boy in heaven; nor one single star can revolve, but by some +invisible power; how then can this one small heart beat; this one +small brain think thoughts; unless God does that beating, does that +thinking, does that living, and not I. By heaven, man, we are turned +round and round in this world, like yonder windlass, and Fate is the +handspike. And all the time, lo! that smiling sky, and this +unsounded sea! Look! see yon Albicore! who put it into him to chase +and fang that flying-fish? Where do murderers go, man! Who's to +doom, when the judge himself is dragged to the bar? But it is a +mild, mild wind, and a mild looking sky; and the air smells now, as +if it blew from a far-away meadow; they have been making hay +somewhere under the slopes of the Andes, Starbuck, and the mowers are +sleeping among the new-mown hay. Sleeping? Aye, toil we how we may, +we all sleep at last on the field. Sleep? Aye, and rust amid +greenness; as last year's scythes flung down, and left in the half-cut +swaths--Starbuck!" + +But blanched to a corpse's hue with despair, the Mate had stolen +away. + +Ahab crossed the deck to gaze over on the other side; but started at +two reflected, fixed eyes in the water there. Fedallah was +motionlessly leaning over the same rail. + + + +CHAPTER 133 + +The Chase--First Day. + + +That night, in the mid-watch, when the old man--as his wont at +intervals--stepped forth from the scuttle in which he leaned, and +went to his pivot-hole, he suddenly thrust out his face fiercely, +snuffing up the sea air as a sagacious ship's dog will, in drawing +nigh to some barbarous isle. He declared that a whale must be near. +Soon that peculiar odor, sometimes to a great distance given forth by +the living sperm whale, was palpable to all the watch; nor was any +mariner surprised when, after inspecting the compass, and then the +dog-vane, and then ascertaining the precise bearing of the odor as +nearly as possible, Ahab rapidly ordered the ship's course to be +slightly altered, and the sail to be shortened. + +The acute policy dictating these movements was sufficiently +vindicated at daybreak, by the sight of a long sleek on the sea +directly and lengthwise ahead, smooth as oil, and resembling in the +pleated watery wrinkles bordering it, the polished metallic-like +marks of some swift tide-rip, at the mouth of a deep, rapid stream. + +"Man the mast-heads! Call all hands!" + +Thundering with the butts of three clubbed handspikes on the +forecastle deck, Daggoo roused the sleepers with such judgment claps +that they seemed to exhale from the scuttle, so instantaneously did +they appear with their clothes in their hands. + +"What d'ye see?" cried Ahab, flattening his face to the sky. + +"Nothing, nothing sir!" was the sound hailing down in reply. + +"T'gallant sails!--stunsails! alow and aloft, and on both sides!" + +All sail being set, he now cast loose the life-line, reserved for +swaying him to the main royal-mast head; and in a few moments they +were hoisting him thither, when, while but two thirds of the way +aloft, and while peering ahead through the horizontal vacancy between +the main-top-sail and top-gallant-sail, he raised a gull-like cry in +the air. "There she blows!--there she blows! A hump like a +snow-hill! It is Moby Dick!" + +Fired by the cry which seemed simultaneously taken up by the three +look-outs, the men on deck rushed to the rigging to behold the famous +whale they had so long been pursuing. Ahab had now gained his final +perch, some feet above the other look-outs, Tashtego standing just +beneath him on the cap of the top-gallant-mast, so that the Indian's +head was almost on a level with Ahab's heel. From this height the +whale was now seen some mile or so ahead, at every roll of the sea +revealing his high sparkling hump, and regularly jetting his silent +spout into the air. To the credulous mariners it seemed the same +silent spout they had so long ago beheld in the moonlit Atlantic and +Indian Oceans. + +"And did none of ye see it before?" cried Ahab, hailing the perched +men all around him. + +"I saw him almost that same instant, sir, that Captain Ahab did, and +I cried out," said Tashtego. + +"Not the same instant; not the same--no, the doubloon is mine, Fate +reserved the doubloon for me. I only; none of ye could have raised +the White Whale first. There she blows!--there she blows!--there +she blows! There again!--there again!" he cried, in long-drawn, +lingering, methodic tones, attuned to the gradual prolongings of the +whale's visible jets. "He's going to sound! In stunsails! Down +top-gallant-sails! Stand by three boats. Mr. Starbuck, remember, +stay on board, and keep the ship. Helm there! Luff, luff a point! +So; steady, man, steady! There go flukes! No, no; only black water! +All ready the boats there? Stand by, stand by! Lower me, Mr. +Starbuck; lower, lower,--quick, quicker!" and he slid through the air +to the deck. + +"He is heading straight to leeward, sir," cried Stubb, "right away +from us; cannot have seen the ship yet." + +"Be dumb, man! Stand by the braces! Hard down the helm!--brace up! +Shiver her!--shiver her!--So; well that! Boats, boats!" + +Soon all the boats but Starbuck's were dropped; all the boat-sails +set--all the paddles plying; with rippling swiftness, shooting to +leeward; and Ahab heading the onset. A pale, death-glimmer lit up +Fedallah's sunken eyes; a hideous motion gnawed his mouth. + +Like noiseless nautilus shells, their light prows sped through the +sea; but only slowly they neared the foe. As they neared him, the +ocean grew still more smooth; seemed drawing a carpet over its waves; +seemed a noon-meadow, so serenely it spread. At length the +breathless hunter came so nigh his seemingly unsuspecting prey, that his +entire dazzling hump was distinctly visible, sliding along the sea as +if an isolated thing, and continually set in a revolving ring of +finest, fleecy, greenish foam. He saw the vast, involved wrinkles of +the slightly projecting head beyond. Before it, far out on the soft +Turkish-rugged waters, went the glistening white shadow from his +broad, milky forehead, a musical rippling playfully accompanying the +shade; and behind, the blue waters interchangeably flowed over into +the moving valley of his steady wake; and on either hand bright +bubbles arose and danced by his side. But these were broken again by +the light toes of hundreds of gay fowl softly feathering the sea, +alternate with their fitful flight; and like to some flag-staff +rising from the painted hull of an argosy, the tall but shattered +pole of a recent lance projected from the white whale's back; and at +intervals one of the cloud of soft-toed fowls hovering, and to and +fro skimming like a canopy over the fish, silently perched and rocked +on this pole, the long tail feathers streaming like pennons. + +A gentle joyousness--a mighty mildness of repose in swiftness, +invested the gliding whale. Not the white bull Jupiter swimming away +with ravished Europa clinging to his graceful horns; his lovely, +leering eyes sideways intent upon the maid; with smooth bewitching +fleetness, rippling straight for the nuptial bower in Crete; not +Jove, not that great majesty Supreme! did surpass the glorified White +Whale as he so divinely swam. + +On each soft side--coincident with the parted swell, that but once +leaving him, then flowed so wide away--on each bright side, the whale +shed off enticings. No wonder there had been some among the hunters +who namelessly transported and allured by all this serenity, had +ventured to assail it; but had fatally found that quietude but the +vesture of tornadoes. Yet calm, enticing calm, oh, whale! thou +glidest on, to all who for the first time eye thee, no matter how +many in that same way thou may'st have bejuggled and destroyed +before. + +And thus, through the serene tranquillities of the tropical sea, +among waves whose hand-clappings were suspended by exceeding rapture, +Moby Dick moved on, still withholding from sight the full terrors of +his submerged trunk, entirely hiding the wrenched hideousness of his +jaw. But soon the fore part of him slowly rose from the water; for +an instant his whole marbleized body formed a high arch, like +Virginia's Natural Bridge, and warningly waving his bannered flukes +in the air, the grand god revealed himself, sounded, and went out of +sight. Hoveringly halting, and dipping on the wing, the white +sea-fowls longingly lingered over the agitated pool that he left. + +With oars apeak, and paddles down, the sheets of their sails adrift, +the three boats now stilly floated, awaiting Moby Dick's +reappearance. + +"An hour," said Ahab, standing rooted in his boat's stern; and he +gazed beyond the whale's place, towards the dim blue spaces and wide +wooing vacancies to leeward. It was only an instant; for again his +eyes seemed whirling round in his head as he swept the watery circle. +The breeze now freshened; the sea began to swell. + +"The birds!--the birds!" cried Tashtego. + +In long Indian file, as when herons take wing, the white birds were +now all flying towards Ahab's boat; and when within a few yards began +fluttering over the water there, wheeling round and round, with +joyous, expectant cries. Their vision was keener than man's; Ahab +could discover no sign in the sea. But suddenly as he peered down +and down into its depths, he profoundly saw a white living spot no +bigger than a white weasel, with wonderful celerity uprising, and +magnifying as it rose, till it turned, and then there were plainly +revealed two long crooked rows of white, glistening teeth, floating +up from the undiscoverable bottom. It was Moby Dick's open mouth and +scrolled jaw; his vast, shadowed bulk still half blending with the +blue of the sea. The glittering mouth yawned beneath the boat like +an open-doored marble tomb; and giving one sidelong sweep with his +steering oar, Ahab whirled the craft aside from this tremendous +apparition. Then, calling upon Fedallah to change places with him, +went forward to the bows, and seizing Perth's harpoon, commanded his +crew to grasp their oars and stand by to stern. + +Now, by reason of this timely spinning round the boat upon its axis, +its bow, by anticipation, was made to face the whale's head while yet +under water. But as if perceiving this stratagem, Moby Dick, with +that malicious intelligence ascribed to him, sidelingly transplanted +himself, as it were, in an instant, shooting his pleated head +lengthwise beneath the boat. + +Through and through; through every plank and each rib, it thrilled +for an instant, the whale obliquely lying on his back, in the manner +of a biting shark, slowly and feelingly taking its bows full within +his mouth, so that the long, narrow, scrolled lower jaw curled high +up into the open air, and one of the teeth caught in a row-lock. The +bluish pearl-white of the inside of the jaw was within six inches of +Ahab's head, and reached higher than that. In this attitude the +White Whale now shook the slight cedar as a mildly cruel cat her +mouse. With unastonished eyes Fedallah gazed, and crossed his arms; +but the tiger-yellow crew were tumbling over each other's heads to +gain the uttermost stern. + +And now, while both elastic gunwales were springing in and out, as +the whale dallied with the doomed craft in this devilish way; and +from his body being submerged beneath the boat, he could not be +darted at from the bows, for the bows were almost inside of him, as +it were; and while the other boats involuntarily paused, as before a +quick crisis impossible to withstand, then it was that monomaniac +Ahab, furious with this tantalizing vicinity of his foe, which placed +him all alive and helpless in the very jaws he hated; frenzied with +all this, he seized the long bone with his naked hands, and wildly +strove to wrench it from its gripe. As now he thus vainly strove, +the jaw slipped from him; the frail gunwales bent in, collapsed, and +snapped, as both jaws, like an enormous shears, sliding further aft, +bit the craft completely in twain, and locked themselves fast again +in the sea, midway between the two floating wrecks. These floated +aside, the broken ends drooping, the crew at the stern-wreck clinging +to the gunwales, and striving to hold fast to the oars to lash them +across. + +At that preluding moment, ere the boat was yet snapped, Ahab, the +first to perceive the whale's intent, by the crafty upraising of his +head, a movement that loosed his hold for the time; at that moment +his hand had made one final effort to push the boat out of the bite. +But only slipping further into the whale's mouth, and tilting over +sideways as it slipped, the boat had shaken off his hold on the jaw; +spilled him out of it, as he leaned to the push; and so he fell +flat-faced upon the sea. + +Ripplingly withdrawing from his prey, Moby Dick now lay at a little +distance, vertically thrusting his oblong white head up and down in +the billows; and at the same time slowly revolving his whole spindled +body; so that when his vast wrinkled forehead rose--some twenty or +more feet out of the water--the now rising swells, with all their +confluent waves, dazzlingly broke against it; vindictively tossing +their shivered spray still higher into the air.* So, in a gale, the +but half baffled Channel billows only recoil from the base of the +Eddystone, triumphantly to overleap its summit with their scud. + + +*This motion is peculiar to the sperm whale. It receives its +designation (pitchpoling) from its being likened to that preliminary +up-and-down poise of the whale-lance, in the exercise called +pitchpoling, previously described. By this motion the whale must +best and most comprehensively view whatever objects may be encircling +him. + + +But soon resuming his horizontal attitude, Moby Dick swam swiftly +round and round the wrecked crew; sideways churning the water in his +vengeful wake, as if lashing himself up to still another and more +deadly assault. The sight of the splintered boat seemed to madden +him, as the blood of grapes and mulberries cast before Antiochus's +elephants in the book of Maccabees. Meanwhile Ahab half smothered in +the foam of the whale's insolent tail, and too much of a cripple to +swim,--though he could still keep afloat, even in the heart of such a +whirlpool as that; helpless Ahab's head was seen, like a tossed +bubble which the least chance shock might burst. From the boat's +fragmentary stern, Fedallah incuriously and mildly eyed him; the +clinging crew, at the other drifting end, could not succor him; more +than enough was it for them to look to themselves. For so +revolvingly appalling was the White Whale's aspect, and so +planetarily swift the ever-contracting circles he made, that he +seemed horizontally swooping upon them. And though the other boats, +unharmed, still hovered hard by; still they dared not pull into the +eddy to strike, lest that should be the signal for the instant +destruction of the jeopardized castaways, Ahab and all; nor in that +case could they themselves hope to escape. With straining eyes, +then, they remained on the outer edge of the direful zone, whose +centre had now become the old man's head. + +Meantime, from the beginning all this had been descried from the +ship's mast heads; and squaring her yards, she had borne down upon +the scene; and was now so nigh, that Ahab in the water hailed +her!--"Sail on the"--but that moment a breaking sea dashed on him +from Moby Dick, and whelmed him for the time. But struggling out of +it again, and chancing to rise on a towering crest, he +shouted,--"Sail on the whale!--Drive him off!" + +The Pequod's prows were pointed; and breaking up the charmed circle, +she effectually parted the white whale from his victim. As he +sullenly swam off, the boats flew to the rescue. + +Dragged into Stubb's boat with blood-shot, blinded eyes, the white +brine caking in his wrinkles; the long tension of Ahab's bodily +strength did crack, and helplessly he yielded to his body's doom: for +a time, lying all crushed in the bottom of Stubb's boat, like one +trodden under foot of herds of elephants. Far inland, nameless wails +came from him, as desolate sounds from out ravines. + +But this intensity of his physical prostration did but so much the +more abbreviate it. In an instant's compass, great hearts sometimes +condense to one deep pang, the sum total of those shallow pains +kindly diffused through feebler men's whole lives. And so, such +hearts, though summary in each one suffering; still, if the gods +decree it, in their life-time aggregate a whole age of woe, wholly +made up of instantaneous intensities; for even in their pointless +centres, those noble natures contain the entire circumferences of +inferior souls. + +"The harpoon," said Ahab, half way rising, and draggingly leaning on +one bended arm--"is it safe?" + +"Aye, sir, for it was not darted; this is it," said Stubb, showing +it. + +"Lay it before me;--any missing men?" + +"One, two, three, four, five;--there were five oars, sir, and here +are five men." + +"That's good.--Help me, man; I wish to stand. So, so, I see him! +there! there! going to leeward still; what a leaping spout!--Hands +off from me! The eternal sap runs up in Ahab's bones again! Set the +sail; out oars; the helm!" + +It is often the case that when a boat is stove, its crew, being +picked up by another boat, help to work that second boat; and the +chase is thus continued with what is called double-banked oars. It +was thus now. But the added power of the boat did not equal the +added power of the whale, for he seemed to have treble-banked his +every fin; swimming with a velocity which plainly showed, that if +now, under these circumstances, pushed on, the chase would prove an +indefinitely prolonged, if not a hopeless one; nor could any crew +endure for so long a period, such an unintermitted, intense straining +at the oar; a thing barely tolerable only in some one brief +vicissitude. The ship itself, then, as it sometimes happens, offered +the most promising intermediate means of overtaking the chase. +Accordingly, the boats now made for her, and were soon swayed up to +their cranes--the two parts of the wrecked boat having been +previously secured by her--and then hoisting everything to her side, +and stacking her canvas high up, and sideways outstretching it with +stun-sails, like the double-jointed wings of an albatross; the Pequod +bore down in the leeward wake of Moby-Dick. At the well known, +methodic intervals, the whale's glittering spout was regularly +announced from the manned mast-heads; and when he would be reported +as just gone down, Ahab would take the time, and then pacing the +deck, binnacle-watch in hand, so soon as the last second of the +allotted hour expired, his voice was heard.--"Whose is the doubloon +now? D'ye see him?" and if the reply was, No, sir! straightway he +commanded them to lift him to his perch. In this way the day wore +on; Ahab, now aloft and motionless; anon, unrestingly pacing the +planks. + +As he was thus walking, uttering no sound, except to hail the men +aloft, or to bid them hoist a sail still higher, or to spread one to +a still greater breadth--thus to and fro pacing, beneath his slouched +hat, at every turn he passed his own wrecked boat, which had been +dropped upon the quarter-deck, and lay there reversed; broken bow to +shattered stern. At last he paused before it; and as in an already +over-clouded sky fresh troops of clouds will sometimes sail across, +so over the old man's face there now stole some such added gloom as +this. + +Stubb saw him pause; and perhaps intending, not vainly, though, to +evince his own unabated fortitude, and thus keep up a valiant place +in his Captain's mind, he advanced, and eyeing the wreck +exclaimed--"The thistle the ass refused; it pricked his mouth too +keenly, sir; ha! ha!" + +"What soulless thing is this that laughs before a wreck? Man, man! +did I not know thee brave as fearless fire (and as mechanical) I +could swear thou wert a poltroon. Groan nor laugh should be heard +before a wreck." + +"Aye, sir," said Starbuck drawing near, "'tis a solemn sight; an +omen, and an ill one." + +"Omen? omen?--the dictionary! If the gods think to speak outright to +man, they will honourably speak outright; not shake their heads, and +give an old wives' darkling hint.--Begone! Ye two are the opposite +poles of one thing; Starbuck is Stubb reversed, and Stubb is +Starbuck; and ye two are all mankind; and Ahab stands alone among the +millions of the peopled earth, nor gods nor men his neighbors! Cold, +cold--I shiver!--How now? Aloft there! D'ye see him? Sing out for +every spout, though he spout ten times a second!" + +The day was nearly done; only the hem of his golden robe was +rustling. Soon, it was almost dark, but the look-out men still +remained unset. + +"Can't see the spout now, sir;--too dark"--cried a voice from the +air. + +"How heading when last seen?" + +"As before, sir,--straight to leeward." + +"Good! he will travel slower now 'tis night. Down royals and +top-gallant stun-sails, Mr. Starbuck. We must not run over him +before morning; he's making a passage now, and may heave-to a while. +Helm there! keep her full before the wind!--Aloft! come down!--Mr. +Stubb, send a fresh hand to the fore-mast head, and see it manned +till morning."--Then advancing towards the doubloon in the +main-mast--"Men, this gold is mine, for I earned it; but I shall let +it abide here till the White Whale is dead; and then, whosoever of ye +first raises him, upon the day he shall be killed, this gold is that +man's; and if on that day I shall again raise him, then, ten times +its sum shall be divided among all of ye! Away now!--the deck is +thine, sir!" + +And so saying, he placed himself half way within the scuttle, and +slouching his hat, stood there till dawn, except when at intervals +rousing himself to see how the night wore on. + + + +CHAPTER 134 + +The Chase--Second Day. + + +At day-break, the three mast-heads were punctually manned afresh. + +"D'ye see him?" cried Ahab after allowing a little space for the +light to spread. + +"See nothing, sir." + +"Turn up all hands and make sail! he travels faster than I thought +for;--the top-gallant sails!--aye, they should have been kept on her +all night. But no matter--'tis but resting for the rush." + +Here be it said, that this pertinacious pursuit of one particular +whale, continued through day into night, and through night into day, +is a thing by no means unprecedented in the South sea fishery. For +such is the wonderful skill, prescience of experience, and invincible +confidence acquired by some great natural geniuses among the +Nantucket commanders; that from the simple observation of a whale +when last descried, they will, under certain given circumstances, +pretty accurately foretell both the direction in which he will +continue to swim for a time, while out of sight, as well as his +probable rate of progression during that period. And, in these +cases, somewhat as a pilot, when about losing sight of a coast, whose +general trending he well knows, and which he desires shortly to +return to again, but at some further point; like as this pilot stands +by his compass, and takes the precise bearing of the cape at present +visible, in order the more certainly to hit aright the remote, unseen +headland, eventually to be visited: so does the fisherman, at his +compass, with the whale; for after being chased, and diligently +marked, through several hours of daylight, then, when night obscures +the fish, the creature's future wake through the darkness is almost +as established to the sagacious mind of the hunter, as the pilot's +coast is to him. So that to this hunter's wondrous skill, the +proverbial evanescence of a thing writ in water, a wake, is to all +desired purposes well nigh as reliable as the steadfast land. And as +the mighty iron Leviathan of the modern railway is so familiarly +known in its every pace, that, with watches in their hands, men time +his rate as doctors that of a baby's pulse; and lightly say of it, +the up train or the down train will reach such or such a spot, at +such or such an hour; even so, almost, there are occasions when these +Nantucketers time that other Leviathan of the deep, according to the +observed humor of his speed; and say to themselves, so many hours +hence this whale will have gone two hundred miles, will have about +reached this or that degree of latitude or longitude. But to render +this acuteness at all successful in the end, the wind and the sea +must be the whaleman's allies; for of what present avail to the +becalmed or windbound mariner is the skill that assures him he is +exactly ninety-three leagues and a quarter from his port? Inferable +from these statements, are many collateral subtile matters touching +the chase of whales. + +The ship tore on; leaving such a furrow in the sea as when a +cannon-ball, missent, becomes a plough-share and turns up the level +field. + +"By salt and hemp!" cried Stubb, "but this swift motion of the deck +creeps up one's legs and tingles at the heart. This ship and I are +two brave fellows!--Ha, ha! Some one take me up, and launch me, +spine-wise, on the sea,--for by live-oaks! my spine's a keel. Ha, +ha! we go the gait that leaves no dust behind!" + +"There she blows--she blows!--she blows!--right ahead!" was now the +mast-head cry. + +"Aye, aye!" cried Stubb, "I knew it--ye can't escape--blow on and +split your spout, O whale! the mad fiend himself is after ye! blow +your trump--blister your lungs!--Ahab will dam off your blood, as a +miller shuts his watergate upon the stream!" + +And Stubb did but speak out for well nigh all that crew. The +frenzies of the chase had by this time worked them bubblingly up, +like old wine worked anew. Whatever pale fears and forebodings some +of them might have felt before; these were not only now kept out of +sight through the growing awe of Ahab, but they were broken up, and +on all sides routed, as timid prairie hares that scatter before the +bounding bison. The hand of Fate had snatched all their souls; and +by the stirring perils of the previous day; the rack of the past +night's suspense; the fixed, unfearing, blind, reckless way in which +their wild craft went plunging towards its flying mark; by all these +things, their hearts were bowled along. The wind that made great +bellies of their sails, and rushed the vessel on by arms invisible as +irresistible; this seemed the symbol of that unseen agency which so +enslaved them to the race. + +They were one man, not thirty. For as the one ship that held them +all; though it was put together of all contrasting things--oak, and +maple, and pine wood; iron, and pitch, and hemp--yet all these ran +into each other in the one concrete hull, which shot on its way, both +balanced and directed by the long central keel; even so, all the +individualities of the crew, this man's valor, that man's fear; guilt +and guiltiness, all varieties were welded into oneness, and were all +directed to that fatal goal which Ahab their one lord and keel did +point to. + +The rigging lived. The mast-heads, like the tops of tall palms, were +outspreadingly tufted with arms and legs. Clinging to a spar with +one hand, some reached forth the other with impatient wavings; +others, shading their eyes from the vivid sunlight, sat far out on +the rocking yards; all the spars in full bearing of mortals, ready +and ripe for their fate. Ah! how they still strove through that +infinite blueness to seek out the thing that might destroy them! + +"Why sing ye not out for him, if ye see him?" cried Ahab, when, after +the lapse of some minutes since the first cry, no more had been +heard. "Sway me up, men; ye have been deceived; not Moby Dick casts +one odd jet that way, and then disappears." + +It was even so; in their headlong eagerness, the men had mistaken +some other thing for the whale-spout, as the event itself soon +proved; for hardly had Ahab reached his perch; hardly was the rope +belayed to its pin on deck, when he struck the key-note to an +orchestra, that made the air vibrate as with the combined discharges +of rifles. The triumphant halloo of thirty buckskin lungs was heard, +as--much nearer to the ship than the place of the imaginary jet, less +than a mile ahead--Moby Dick bodily burst into view! For not by any +calm and indolent spoutings; not by the peaceable gush of that mystic +fountain in his head, did the White Whale now reveal his vicinity; +but by the far more wondrous phenomenon of breaching. Rising with +his utmost velocity from the furthest depths, the Sperm Whale thus +booms his entire bulk into the pure element of air, and piling up a +mountain of dazzling foam, shows his place to the distance of seven +miles and more. In those moments, the torn, enraged waves he shakes +off, seem his mane; in some cases, this breaching is his act of +defiance. + +"There she breaches! there she breaches!" was the cry, as in his +immeasurable bravadoes the White Whale tossed himself salmon-like to +Heaven. So suddenly seen in the blue plain of the sea, and relieved +against the still bluer margin of the sky, the spray that he raised, +for the moment, intolerably glittered and glared like a glacier; and +stood there gradually fading and fading away from its first sparkling +intensity, to the dim mistiness of an advancing shower in a vale. + +"Aye, breach your last to the sun, Moby Dick!" cried Ahab, "thy hour +and thy harpoon are at hand!--Down! down all of ye, but one man at +the fore. The boats!--stand by!" + +Unmindful of the tedious rope-ladders of the shrouds, the men, like +shooting stars, slid to the deck, by the isolated backstays and +halyards; while Ahab, less dartingly, but still rapidly was dropped +from his perch. + +"Lower away," he cried, so soon as he had reached his boat--a spare +one, rigged the afternoon previous. "Mr. Starbuck, the ship is +thine--keep away from the boats, but keep near them. Lower, all!" + +As if to strike a quick terror into them, by this time being the +first assailant himself, Moby Dick had turned, and was now coming for +the three crews. Ahab's boat was central; and cheering his men, he +told them he would take the whale head-and-head,--that is, pull +straight up to his forehead,--a not uncommon thing; for when within a +certain limit, such a course excludes the coming onset from the +whale's sidelong vision. But ere that close limit was gained, and +while yet all three boats were plain as the ship's three masts to his +eye; the White Whale churning himself into furious speed, almost in +an instant as it were, rushing among the boats with open jaws, and a +lashing tail, offered appalling battle on every side; and heedless of +the irons darted at him from every boat, seemed only intent on +annihilating each separate plank of which those boats were made. But +skilfully manoeuvred, incessantly wheeling like trained chargers in +the field; the boats for a while eluded him; though, at times, but by +a plank's breadth; while all the time, Ahab's unearthly slogan tore +every other cry but his to shreds. + +But at last in his untraceable evolutions, the White Whale so crossed +and recrossed, and in a thousand ways entangled the slack of the +three lines now fast to him, that they foreshortened, and, of +themselves, warped the devoted boats towards the planted irons in +him; though now for a moment the whale drew aside a little, as if to +rally for a more tremendous charge. Seizing that opportunity, Ahab +first paid out more line: and then was rapidly hauling and jerking +in upon it again--hoping that way to disencumber it of some +snarls--when lo!--a sight more savage than the embattled teeth of +sharks! + +Caught and twisted--corkscrewed in the mazes of the line, loose +harpoons and lances, with all their bristling barbs and points, came +flashing and dripping up to the chocks in the bows of Ahab's boat. +Only one thing could be done. Seizing the boat-knife, he critically +reached within--through--and then, without--the rays of steel; +dragged in the line beyond, passed it, inboard, to the bowsman, and +then, twice sundering the rope near the chocks--dropped the +intercepted fagot of steel into the sea; and was all fast again. +That instant, the White Whale made a sudden rush among the remaining +tangles of the other lines; by so doing, irresistibly dragged the +more involved boats of Stubb and Flask towards his flukes; dashed +them together like two rolling husks on a surf-beaten beach, and +then, diving down into the sea, disappeared in a boiling maelstrom, +in which, for a space, the odorous cedar chips of the wrecks danced +round and round, like the grated nutmeg in a swiftly stirred bowl of +punch. + +While the two crews were yet circling in the waters, reaching out +after the revolving line-tubs, oars, and other floating furniture, +while aslope little Flask bobbed up and down like an empty vial, +twitching his legs upwards to escape the dreaded jaws of sharks; and +Stubb was lustily singing out for some one to ladle him up; and while +the old man's line--now parting--admitted of his pulling into the +creamy pool to rescue whom he could;--in that wild simultaneousness +of a thousand concreted perils,--Ahab's yet unstricken boat seemed +drawn up towards Heaven by invisible wires,--as, arrow-like, shooting +perpendicularly from the sea, the White Whale dashed his broad +forehead against its bottom, and sent it, turning over and over, into +the air; till it fell again--gunwale downwards--and Ahab and his men +struggled out from under it, like seals from a sea-side cave. + +The first uprising momentum of the whale--modifying its direction as +he struck the surface--involuntarily launched him along it, to a +little distance from the centre of the destruction he had made; and +with his back to it, he now lay for a moment slowly feeling with his +flukes from side to side; and whenever a stray oar, bit of plank, the +least chip or crumb of the boats touched his skin, his tail swiftly +drew back, and came sideways smiting the sea. But soon, as if +satisfied that his work for that time was done, he pushed his pleated +forehead through the ocean, and trailing after him the intertangled +lines, continued his leeward way at a traveller's methodic pace. + +As before, the attentive ship having descried the whole fight, again +came bearing down to the rescue, and dropping a boat, picked up the +floating mariners, tubs, oars, and whatever else could be caught at, +and safely landed them on her decks. Some sprained shoulders, +wrists, and ankles; livid contusions; wrenched harpoons and lances; +inextricable intricacies of rope; shattered oars and planks; all +these were there; but no fatal or even serious ill seemed to have +befallen any one. As with Fedallah the day before, so Ahab was now +found grimly clinging to his boat's broken half, which afforded a +comparatively easy float; nor did it so exhaust him as the previous +day's mishap. + +But when he was helped to the deck, all eyes were fastened upon him; +as instead of standing by himself he still half-hung upon the +shoulder of Starbuck, who had thus far been the foremost to assist +him. His ivory leg had been snapped off, leaving but one short sharp +splinter. + +"Aye, aye, Starbuck, 'tis sweet to lean sometimes, be the leaner who +he will; and would old Ahab had leaned oftener than he has." + +"The ferrule has not stood, sir," said the carpenter, now coming up; +"I put good work into that leg." + +"But no bones broken, sir, I hope," said Stubb with true concern. + +"Aye! and all splintered to pieces, Stubb!--d'ye see it.--But even +with a broken bone, old Ahab is untouched; and I account no living +bone of mine one jot more me, than this dead one that's lost. Nor +white whale, nor man, nor fiend, can so much as graze old Ahab in his +own proper and inaccessible being. Can any lead touch yonder floor, +any mast scrape yonder roof?--Aloft there! which way?" + +"Dead to leeward, sir." + +"Up helm, then; pile on the sail again, ship keepers! down the rest +of the spare boats and rig them--Mr. Starbuck away, and muster the +boat's crews." + +"Let me first help thee towards the bulwarks, sir." + +"Oh, oh, oh! how this splinter gores me now! Accursed fate! that the +unconquerable captain in the soul should have such a craven mate!" + +"Sir?" + +"My body, man, not thee. Give me something for a cane--there, that +shivered lance will do. Muster the men. Surely I have not seen him +yet. By heaven it cannot be!--missing?--quick! call them all." + +The old man's hinted thought was true. Upon mustering the company, +the Parsee was not there. + +"The Parsee!" cried Stubb--"he must have been caught in--" + +"The black vomit wrench thee!--run all of ye above, alow, cabin, +forecastle--find him--not gone--not gone!" + +But quickly they returned to him with the tidings that the Parsee was +nowhere to be found. + +"Aye, sir," said Stubb--"caught among the tangles of your line--I +thought I saw him dragging under." + +"MY line! MY line? Gone?--gone? What means that little word?--What +death-knell rings in it, that old Ahab shakes as if he were the +belfry. The harpoon, too!--toss over the litter there,--d'ye see +it?--the forged iron, men, the white whale's--no, no, no,--blistered +fool! this hand did dart it!--'tis in the fish!--Aloft there! Keep +him nailed--Quick!--all hands to the rigging of the boats--collect +the oars--harpooneers! the irons, the irons!--hoist the royals higher--a +pull on all the sheets!--helm there! steady, steady for your life! +I'll ten times girdle the unmeasured globe; yea and dive straight +through it, but I'll slay him yet! + +"Great God! but for one single instant show thyself," cried Starbuck; +"never, never wilt thou capture him, old man--In Jesus' name no more +of this, that's worse than devil's madness. Two days chased; twice +stove to splinters; thy very leg once more snatched from under thee; +thy evil shadow gone--all good angels mobbing thee with warnings:-- +what more wouldst thou have?--Shall we keep chasing this murderous +fish till he swamps the last man? Shall we be dragged by him to the +bottom of the sea? Shall we be towed by him to the infernal world? +Oh, oh,--Impiety and blasphemy to hunt him more!" + +"Starbuck, of late I've felt strangely moved to thee; ever since that +hour we both saw--thou know'st what, in one another's eyes. But in +this matter of the whale, be the front of thy face to me as the palm +of this hand--a lipless, unfeatured blank. Ahab is for ever Ahab, +man. This whole act's immutably decreed. 'Twas rehearsed by thee +and me a billion years before this ocean rolled. Fool! I am the +Fates' lieutenant; I act under orders. Look thou, underling! that +thou obeyest mine.--Stand round me, men. Ye see an old man cut down +to the stump; leaning on a shivered lance; propped up on a lonely +foot. 'Tis Ahab--his body's part; but Ahab's soul's a centipede, +that moves upon a hundred legs. I feel strained, half stranded, as +ropes that tow dismasted frigates in a gale; and I may look so. But +ere I break, yell hear me crack; and till ye hear THAT, know that +Ahab's hawser tows his purpose yet. Believe ye, men, in the things +called omens? Then laugh aloud, and cry encore! For ere they drown, +drowning things will twice rise to the surface; then rise again, to +sink for evermore. So with Moby Dick--two days he's floated--tomorrow +will be the third. Aye, men, he'll rise once more,--but only to +spout his last! D'ye feel brave men, brave?" + +"As fearless fire," cried Stubb. + +"And as mechanical," muttered Ahab. Then as the men went forward, he +muttered on: "The things called omens! And yesterday I talked the +same to Starbuck there, concerning my broken boat. Oh! how valiantly +I seek to drive out of others' hearts what's clinched so fast in +mine!--The Parsee--the Parsee!--gone, gone? and he was to go +before:--but still was to be seen again ere I could perish--How's +that?--There's a riddle now might baffle all the lawyers backed by +the ghosts of the whole line of judges:--like a hawk's beak it pecks +my brain. I'LL, I'LL solve it, though!" + +When dusk descended, the whale was still in sight to leeward. + +So once more the sail was shortened, and everything passed nearly as +on the previous night; only, the sound of hammers, and the hum of the +grindstone was heard till nearly daylight, as the men toiled by +lanterns in the complete and careful rigging of the spare boats and +sharpening their fresh weapons for the morrow. Meantime, of the +broken keel of Ahab's wrecked craft the carpenter made him another +leg; while still as on the night before, slouched Ahab stood fixed +within his scuttle; his hid, heliotrope glance anticipatingly gone +backward on its dial; sat due eastward for the earliest sun. + + + +CHAPTER 135 + +The Chase.--Third Day. + + +The morning of the third day dawned fair and fresh, and once more the +solitary night-man at the fore-mast-head was relieved by crowds of +the daylight look-outs, who dotted every mast and almost every spar. + +"D'ye see him?" cried Ahab; but the whale was not yet in sight. + +"In his infallible wake, though; but follow that wake, that's all. +Helm there; steady, as thou goest, and hast been going. What a +lovely day again! were it a new-made world, and made for a +summer-house to the angels, and this morning the first of its +throwing open to them, a fairer day could not dawn upon that world. +Here's food for thought, had Ahab time to think; but Ahab never +thinks; he only feels, feels, feels; THAT'S tingling enough for +mortal man! to think's audacity. God only has that right and +privilege. Thinking is, or ought to be, a coolness and a calmness; +and our poor hearts throb, and our poor brains beat too much for +that. And yet, I've sometimes thought my brain was very calm--frozen +calm, this old skull cracks so, like a glass in which the contents +turned to ice, and shiver it. And still this hair is growing now; +this moment growing, and heat must breed it; but no, it's like that +sort of common grass that will grow anywhere, between the earthy +clefts of Greenland ice or in Vesuvius lava. How the wild winds blow +it; they whip it about me as the torn shreds of split sails lash the +tossed ship they cling to. A vile wind that has no doubt blown ere +this through prison corridors and cells, and wards of hospitals, and +ventilated them, and now comes blowing hither as innocent as fleeces. +Out upon it!--it's tainted. Were I the wind, I'd blow no more on +such a wicked, miserable world. I'd crawl somewhere to a cave, and +slink there. And yet, 'tis a noble and heroic thing, the wind! who +ever conquered it? In every fight it has the last and bitterest +blow. Run tilting at it, and you but run through it. Ha! a coward +wind that strikes stark naked men, but will not stand to receive a +single blow. Even Ahab is a braver thing--a nobler thing than THAT. +Would now the wind but had a body; but all the things that most +exasperate and outrage mortal man, all these things are bodiless, but +only bodiless as objects, not as agents. There's a most special, a +most cunning, oh, a most malicious difference! And yet, I say again, +and swear it now, that there's something all glorious and gracious in +the wind. These warm Trade Winds, at least, that in the clear +heavens blow straight on, in strong and steadfast, vigorous mildness; +and veer not from their mark, however the baser currents of the sea +may turn and tack, and mightiest Mississippies of the land swift and +swerve about, uncertain where to go at last. And by the eternal +Poles! these same Trades that so directly blow my good ship on; these +Trades, or something like them--something so unchangeable, and full +as strong, blow my keeled soul along! To it! Aloft there! What +d'ye see?" + +"Nothing, sir." + +"Nothing! and noon at hand! The doubloon goes a-begging! See the +sun! Aye, aye, it must be so. I've oversailed him. How, got the +start? Aye, he's chasing ME now; not I, HIM--that's bad; I might +have known it, too. Fool! the lines--the harpoons he's towing. Aye, +aye, I have run him by last night. About! about! Come down, all of +ye, but the regular look outs! Man the braces!" + +Steering as she had done, the wind had been somewhat on the Pequod's +quarter, so that now being pointed in the reverse direction, the +braced ship sailed hard upon the breeze as she rechurned the cream in +her own white wake. + +"Against the wind he now steers for the open jaw," murmured Starbuck +to himself, as he coiled the new-hauled main-brace upon the rail. +"God keep us, but already my bones feel damp within me, and from the +inside wet my flesh. I misdoubt me that I disobey my God in obeying +him!" + +"Stand by to sway me up!" cried Ahab, advancing to the hempen basket. +"We should meet him soon." + +"Aye, aye, sir," and straightway Starbuck did Ahab's bidding, and +once more Ahab swung on high. + +A whole hour now passed; gold-beaten out to ages. Time itself now +held long breaths with keen suspense. But at last, some three points +off the weather bow, Ahab descried the spout again, and instantly +from the three mast-heads three shrieks went up as if the tongues of +fire had voiced it. + +"Forehead to forehead I meet thee, this third time, Moby Dick! On +deck there!--brace sharper up; crowd her into the wind's eye. He's +too far off to lower yet, Mr. Starbuck. The sails shake! Stand over +that helmsman with a top-maul! So, so; he travels fast, and I must +down. But let me have one more good round look aloft here at the +sea; there's time for that. An old, old sight, and yet somehow so +young; aye, and not changed a wink since I first saw it, a boy, from +the sand-hills of Nantucket! The same!--the same!--the same to Noah +as to me. There's a soft shower to leeward. Such lovely +leewardings! They must lead somewhere--to something else than common +land, more palmy than the palms. Leeward! the white whale goes that +way; look to windward, then; the better if the bitterer quarter. But +good bye, good bye, old mast-head! What's this?--green? aye, tiny +mosses in these warped cracks. No such green weather stains on +Ahab's head! There's the difference now between man's old age and +matter's. But aye, old mast, we both grow old together; sound in our +hulls, though, are we not, my ship? Aye, minus a leg, that's all. +By heaven this dead wood has the better of my live flesh every way. +I can't compare with it; and I've known some ships made of dead trees +outlast the lives of men made of the most vital stuff of vital +fathers. What's that he said? he should still go before me, my +pilot; and yet to be seen again? But where? Will I have eyes at the +bottom of the sea, supposing I descend those endless stairs? and all +night I've been sailing from him, wherever he did sink to. Aye, aye, +like many more thou told'st direful truth as touching thyself, O +Parsee; but, Ahab, there thy shot fell short. Good-bye, +mast-head--keep a good eye upon the whale, the while I'm gone. We'll +talk to-morrow, nay, to-night, when the white whale lies down there, +tied by head and tail." + +He gave the word; and still gazing round him, was steadily lowered +through the cloven blue air to the deck. + +In due time the boats were lowered; but as standing in his shallop's +stern, Ahab just hovered upon the point of the descent, he waved to +the mate,--who held one of the tackle-ropes on deck--and bade him +pause. + +"Starbuck!" + +"Sir?" + +"For the third time my soul's ship starts upon this voyage, +Starbuck." + +"Aye, sir, thou wilt have it so." + +"Some ships sail from their ports, and ever afterwards are missing, +Starbuck!" + +"Truth, sir: saddest truth." + +"Some men die at ebb tide; some at low water; some at the full of the +flood;--and I feel now like a billow that's all one crested comb, +Starbuck. I am old;--shake hands with me, man." + +Their hands met; their eyes fastened; Starbuck's tears the glue. + +"Oh, my captain, my captain!--noble heart--go not--go not!--see, it's +a brave man that weeps; how great the agony of the persuasion then!" + +"Lower away!"--cried Ahab, tossing the mate's arm from him. "Stand +by the crew!" + +In an instant the boat was pulling round close under the stern. + +"The sharks! the sharks!" cried a voice from the low cabin-window +there; "O master, my master, come back!" + +But Ahab heard nothing; for his own voice was high-lifted then; and +the boat leaped on. + +Yet the voice spake true; for scarce had he pushed from the ship, +when numbers of sharks, seemingly rising from out the dark waters +beneath the hull, maliciously snapped at the blades of the oars, +every time they dipped in the water; and in this way accompanied the +boat with their bites. It is a thing not uncommonly happening to the +whale-boats in those swarming seas; the sharks at times apparently +following them in the same prescient way that vultures hover over the +banners of marching regiments in the east. But these were the first +sharks that had been observed by the Pequod since the White Whale had +been first descried; and whether it was that Ahab's crew were all +such tiger-yellow barbarians, and therefore their flesh more musky to +the senses of the sharks--a matter sometimes well known to affect +them,--however it was, they seemed to follow that one boat without +molesting the others. + +"Heart of wrought steel!" murmured Starbuck gazing over the side, and +following with his eyes the receding boat--"canst thou yet ring +boldly to that sight?--lowering thy keel among ravening sharks, and +followed by them, open-mouthed to the chase; and this the critical +third day?--For when three days flow together in one continuous +intense pursuit; be sure the first is the morning, the second the +noon, and the third the evening and the end of that thing--be that +end what it may. Oh! my God! what is this that shoots through me, +and leaves me so deadly calm, yet expectant,--fixed at the top of a +shudder! Future things swim before me, as in empty outlines and +skeletons; all the past is somehow grown dim. Mary, girl! thou +fadest in pale glories behind me; boy! I seem to see but thy eyes +grown wondrous blue. Strangest problems of life seem clearing; but +clouds sweep between--Is my journey's end coming? My legs feel +faint; like his who has footed it all day. Feel thy heart,--beats +it yet? Stir thyself, Starbuck!--stave it off--move, move! speak +aloud!--Mast-head there! See ye my boy's hand on the +hill?--Crazed;--aloft there!--keep thy keenest eye upon the boats:-- +mark well the whale!--Ho! again!--drive off that hawk! see! he +pecks--he tears the vane"--pointing to the red flag flying at the +main-truck--"Ha! he soars away with it!--Where's the old man now? +see'st thou that sight, oh Ahab!--shudder, shudder!" + +The boats had not gone very far, when by a signal from the +mast-heads--a downward pointed arm, Ahab knew that the whale had +sounded; but intending to be near him at the next rising, he held on +his way a little sideways from the vessel; the becharmed crew +maintaining the profoundest silence, as the head-beat waves hammered +and hammered against the opposing bow. + +"Drive, drive in your nails, oh ye waves! to their uttermost heads +drive them in! ye but strike a thing without a lid; and no coffin and +no hearse can be mine:--and hemp only can kill me! Ha! ha!" + +Suddenly the waters around them slowly swelled in broad circles; then +quickly upheaved, as if sideways sliding from a submerged berg of +ice, swiftly rising to the surface. A low rumbling sound was heard; +a subterraneous hum; and then all held their breaths; as bedraggled +with trailing ropes, and harpoons, and lances, a vast form shot +lengthwise, but obliquely from the sea. Shrouded in a thin drooping +veil of mist, it hovered for a moment in the rainbowed air; and then +fell swamping back into the deep. Crushed thirty feet upwards, the +waters flashed for an instant like heaps of fountains, then brokenly +sank in a shower of flakes, leaving the circling surface creamed like +new milk round the marble trunk of the whale. + +"Give way!" cried Ahab to the oarsmen, and the boats darted forward +to the attack; but maddened by yesterday's fresh irons that corroded +in him, Moby Dick seemed combinedly possessed by all the angels that +fell from heaven. The wide tiers of welded tendons overspreading his +broad white forehead, beneath the transparent skin, looked knitted +together; as head on, he came churning his tail among the boats; and +once more flailed them apart; spilling out the irons and lances from +the two mates' boats, and dashing in one side of the upper part of +their bows, but leaving Ahab's almost without a scar. + +While Daggoo and Queequeg were stopping the strained planks; and as +the whale swimming out from them, turned, and showed one entire flank +as he shot by them again; at that moment a quick cry went up. Lashed +round and round to the fish's back; pinioned in the turns upon turns +in which, during the past night, the whale had reeled the involutions +of the lines around him, the half torn body of the Parsee was seen; +his sable raiment frayed to shreds; his distended eyes turned full +upon old Ahab. + +The harpoon dropped from his hand. + +"Befooled, befooled!"--drawing in a long lean breath--"Aye, Parsee! +I see thee again.--Aye, and thou goest before; and this, THIS then is +the hearse that thou didst promise. But I hold thee to the last +letter of thy word. Where is the second hearse? Away, mates, to the +ship! those boats are useless now; repair them if ye can in time, and +return to me; if not, Ahab is enough to die--Down, men! the first +thing that but offers to jump from this boat I stand in, that thing I +harpoon. Ye are not other men, but my arms and my legs; and so obey +me.--Where's the whale? gone down again?" + +But he looked too nigh the boat; for as if bent upon escaping with +the corpse he bore, and as if the particular place of the last +encounter had been but a stage in his leeward voyage, Moby Dick was +now again steadily swimming forward; and had almost passed the +ship,--which thus far had been sailing in the contrary direction to +him, though for the present her headway had been stopped. He seemed +swimming with his utmost velocity, and now only intent upon pursuing +his own straight path in the sea. + +"Oh! Ahab," cried Starbuck, "not too late is it, even now, the third +day, to desist. See! Moby Dick seeks thee not. It is thou, thou, +that madly seekest him!" + +Setting sail to the rising wind, the lonely boat was swiftly impelled +to leeward, by both oars and canvas. And at last when Ahab was +sliding by the vessel, so near as plainly to distinguish Starbuck's +face as he leaned over the rail, he hailed him to turn the vessel +about, and follow him, not too swiftly, at a judicious interval. +Glancing upwards, he saw Tashtego, Queequeg, and Daggoo, eagerly +mounting to the three mast-heads; while the oarsmen were rocking in +the two staved boats which had but just been hoisted to the side, and +were busily at work in repairing them. One after the other, through +the port-holes, as he sped, he also caught flying glimpses of Stubb +and Flask, busying themselves on deck among bundles of new irons and +lances. As he saw all this; as he heard the hammers in the broken +boats; far other hammers seemed driving a nail into his heart. But +he rallied. And now marking that the vane or flag was gone from the +main-mast-head, he shouted to Tashtego, who had just gained that +perch, to descend again for another flag, and a hammer and nails, and +so nail it to the mast. + +Whether fagged by the three days' running chase, and the resistance +to his swimming in the knotted hamper he bore; or whether it was some +latent deceitfulness and malice in him: whichever was true, the White +Whale's way now began to abate, as it seemed, from the boat so +rapidly nearing him once more; though indeed the whale's last start +had not been so long a one as before. And still as Ahab glided over +the waves the unpitying sharks accompanied him; and so pertinaciously +stuck to the boat; and so continually bit at the plying oars, that +the blades became jagged and crunched, and left small splinters in +the sea, at almost every dip. + +"Heed them not! those teeth but give new rowlocks to your oars. Pull +on! 'tis the better rest, the shark's jaw than the yielding water." + +"But at every bite, sir, the thin blades grow smaller and smaller!" + +"They will last long enough! pull on!--But who can tell"--he +muttered--"whether these sharks swim to feast on the whale or on +Ahab?--But pull on! Aye, all alive, now--we near him. The helm! +take the helm! let me pass,"--and so saying two of the oarsmen helped +him forward to the bows of the still flying boat. + +At length as the craft was cast to one side, and ran ranging along +with the White Whale's flank, he seemed strangely oblivious of its +advance--as the whale sometimes will--and Ahab was fairly within the +smoky mountain mist, which, thrown off from the whale's spout, curled +round his great, Monadnock hump; he was even thus close to him; when, +with body arched back, and both arms lengthwise high-lifted to the +poise, he darted his fierce iron, and his far fiercer curse into the +hated whale. As both steel and curse sank to the socket, as if +sucked into a morass, Moby Dick sideways writhed; spasmodically +rolled his nigh flank against the bow, and, without staving a hole in +it, so suddenly canted the boat over, that had it not been for the +elevated part of the gunwale to which he then clung, Ahab would once +more have been tossed into the sea. As it was, three of the +oarsmen--who foreknew not the precise instant of the dart, and were +therefore unprepared for its effects--these were flung out; but so +fell, that, in an instant two of them clutched the gunwale again, and +rising to its level on a combing wave, hurled themselves bodily +inboard again; the third man helplessly dropping astern, but still +afloat and swimming. + +Almost simultaneously, with a mighty volition of ungraduated, +instantaneous swiftness, the White Whale darted through the weltering +sea. But when Ahab cried out to the steersman to take new turns with +the line, and hold it so; and commanded the crew to turn round on +their seats, and tow the boat up to the mark; the moment the +treacherous line felt that double strain and tug, it snapped in the +empty air! + +"What breaks in me? Some sinew cracks!--'tis whole again; oars! +oars! Burst in upon him!" + +Hearing the tremendous rush of the sea-crashing boat, the whale +wheeled round to present his blank forehead at bay; but in that +evolution, catching sight of the nearing black hull of the ship; +seemingly seeing in it the source of all his persecutions; bethinking +it--it may be--a larger and nobler foe; of a sudden, he bore down +upon its advancing prow, smiting his jaws amid fiery showers of foam. + +Ahab staggered; his hand smote his forehead. "I grow blind; hands! +stretch out before me that I may yet grope my way. Is't night?" + +"The whale! The ship!" cried the cringing oarsmen. + +"Oars! oars! Slope downwards to thy depths, O sea, that ere it be +for ever too late, Ahab may slide this last, last time upon his +mark! I see: the ship! the ship! Dash on, my men! Will ye not +save my ship?" + +But as the oarsmen violently forced their boat through the +sledge-hammering seas, the before whale-smitten bow-ends of two +planks burst through, and in an instant almost, the temporarily +disabled boat lay nearly level with the waves; its half-wading, +splashing crew, trying hard to stop the gap and bale out the pouring +water. + +Meantime, for that one beholding instant, Tashtego's mast-head hammer +remained suspended in his hand; and the red flag, half-wrapping him +as with a plaid, then streamed itself straight out from him, as his +own forward-flowing heart; while Starbuck and Stubb, standing upon +the bowsprit beneath, caught sight of the down-coming monster just as +soon as he. + +"The whale, the whale! Up helm, up helm! Oh, all ye sweet powers of +air, now hug me close! Let not Starbuck die, if die he must, in a +woman's fainting fit. Up helm, I say--ye fools, the jaw! the jaw! +Is this the end of all my bursting prayers? all my life-long +fidelities? Oh, Ahab, Ahab, lo, thy work. Steady! helmsman, steady. +Nay, nay! Up helm again! He turns to meet us! Oh, his +unappeasable brow drives on towards one, whose duty tells him he +cannot depart. My God, stand by me now!" + +"Stand not by me, but stand under me, whoever you are that will now +help Stubb; for Stubb, too, sticks here. I grin at thee, thou +grinning whale! Who ever helped Stubb, or kept Stubb awake, but +Stubb's own unwinking eye? And now poor Stubb goes to bed upon a +mattrass that is all too soft; would it were stuffed with brushwood! +I grin at thee, thou grinning whale! Look ye, sun, moon, and stars! +I call ye assassins of as good a fellow as ever spouted up his ghost. +For all that, I would yet ring glasses with ye, would ye but hand +the cup! Oh, oh! oh, oh! thou grinning whale, but there'll be plenty +of gulping soon! Why fly ye not, O Ahab! For me, off shoes and +jacket to it; let Stubb die in his drawers! A most mouldy and over +salted death, though;--cherries! cherries! cherries! Oh, Flask, for +one red cherry ere we die!" + +"Cherries? I only wish that we were where they grow. Oh, Stubb, I +hope my poor mother's drawn my part-pay ere this; if not, few coppers +will now come to her, for the voyage is up." + +From the ship's bows, nearly all the seamen now hung inactive; +hammers, bits of plank, lances, and harpoons, mechanically retained +in their hands, just as they had darted from their various +employments; all their enchanted eyes intent upon the whale, which +from side to side strangely vibrating his predestinating head, sent a +broad band of overspreading semicircular foam before him as he +rushed. Retribution, swift vengeance, eternal malice were in his +whole aspect, and spite of all that mortal man could do, the solid +white buttress of his forehead smote the ship's starboard bow, till +men and timbers reeled. Some fell flat upon their faces. Like +dislodged trucks, the heads of the harpooneers aloft shook on their +bull-like necks. Through the breach, they heard the waters pour, as +mountain torrents down a flume. + +"The ship! The hearse!--the second hearse!" cried Ahab from the +boat; "its wood could only be American!" + +Diving beneath the settling ship, the whale ran quivering along its +keel; but turning under water, swiftly shot to the surface again, far +off the other bow, but within a few yards of Ahab's boat, where, for +a time, he lay quiescent. + +"I turn my body from the sun. What ho, Tashtego! let me hear thy +hammer. Oh! ye three unsurrendered spires of mine; thou uncracked +keel; and only god-bullied hull; thou firm deck, and haughty helm, +and Pole-pointed prow,--death-glorious ship! must ye then perish, +and without me? Am I cut off from the last fond pride of meanest +shipwrecked captains? Oh, lonely death on lonely life! Oh, now I +feel my topmost greatness lies in my topmost grief. Ho, ho! from all +your furthest bounds, pour ye now in, ye bold billows of my whole +foregone life, and top this one piled comber of my death! Towards +thee I roll, thou all-destroying but unconquering whale; to the last +I grapple with thee; from hell's heart I stab at thee; for hate's +sake I spit my last breath at thee. Sink all coffins and all hearses +to one common pool! and since neither can be mine, let me then tow to +pieces, while still chasing thee, though tied to thee, thou damned +whale! THUS, I give up the spear!" + +The harpoon was darted; the stricken whale flew forward; with +igniting velocity the line ran through the grooves;--ran foul. Ahab +stooped to clear it; he did clear it; but the flying turn caught him +round the neck, and voicelessly as Turkish mutes bowstring their +victim, he was shot out of the boat, ere the crew knew he was gone. +Next instant, the heavy eye-splice in the rope's final end flew out +of the stark-empty tub, knocked down an oarsman, and smiting the sea, +disappeared in its depths. + +For an instant, the tranced boat's crew stood still; then turned. +"The ship? Great God, where is the ship?" Soon they through dim, +bewildering mediums saw her sidelong fading phantom, as in the +gaseous Fata Morgana; only the uppermost masts out of water; while +fixed by infatuation, or fidelity, or fate, to their once lofty +perches, the pagan harpooneers still maintained their sinking +lookouts on the sea. And now, concentric circles seized the lone +boat itself, and all its crew, and each floating oar, and every +lance-pole, and spinning, animate and inanimate, all round and round +in one vortex, carried the smallest chip of the Pequod out of sight. + +But as the last whelmings intermixingly poured themselves over the +sunken head of the Indian at the mainmast, leaving a few inches of +the erect spar yet visible, together with long streaming yards of the +flag, which calmly undulated, with ironical coincidings, over the +destroying billows they almost touched;--at that instant, a red arm +and a hammer hovered backwardly uplifted in the open air, in the act +of nailing the flag faster and yet faster to the subsiding spar. A +sky-hawk that tauntingly had followed the main-truck downwards from +its natural home among the stars, pecking at the flag, and +incommoding Tashtego there; this bird now chanced to intercept its +broad fluttering wing between the hammer and the wood; and +simultaneously feeling that etherial thrill, the submerged savage +beneath, in his death-gasp, kept his hammer frozen there; and so the +bird of heaven, with archangelic shrieks, and his imperial beak +thrust upwards, and his whole captive form folded in the flag of +Ahab, went down with his ship, which, like Satan, would not sink to +hell till she had dragged a living part of heaven along with her, and +helmeted herself with it. + +Now small fowls flew screaming over the yet yawning gulf; a sullen +white surf beat against its steep sides; then all collapsed, and the +great shroud of the sea rolled on as it rolled five thousand years +ago. + + + +Epilogue + +"AND I ONLY AM ESCAPED ALONE TO TELL THEE" +Job. + +The drama's done. Why then here does any one step forth?--Because +one did survive the wreck. + +It so chanced, that after the Parsee's disappearance, I was he whom +the Fates ordained to take the place of Ahab's bowsman, when that +bowsman assumed the vacant post; the same, who, when on the last day +the three men were tossed from out of the rocking boat, was dropped +astern. So, floating on the margin of the ensuing scene, and in full +sight of it, when the halfspent suction of the sunk ship reached me, +I was then, but slowly, drawn towards the closing vortex. When I +reached it, it had subsided to a creamy pool. Round and round, then, +and ever contracting towards the button-like black bubble at the axis +of that slowly wheeling circle, like another Ixion I did revolve. +Till, gaining that vital centre, the black bubble upward burst; and +now, liberated by reason of its cunning spring, and, owing to its +great buoyancy, rising with great force, the coffin life-buoy shot +lengthwise from the sea, fell over, and floated by my side. Buoyed +up by that coffin, for almost one whole day and night, I floated on a +soft and dirgelike main. The unharming sharks, they glided by as if +with padlocks on their mouths; the savage sea-hawks sailed with +sheathed beaks. On the second day, a sail drew near, nearer, and +picked me up at last. It was the devious-cruising Rachel, that in +her retracing search after her missing children, only found another +orphan. + + + + +End of this Project Gutenberg etext of Moby Dick, by Herman Melville diff --git a/benches/codecs/newline_bytes.rs b/benches/codecs/newline_bytes.rs new file mode 100644 index 0000000000000..95d8962036a60 --- /dev/null +++ b/benches/codecs/newline_bytes.rs @@ -0,0 +1,93 @@ +use std::{fmt, time::Duration}; + +use bytes::BytesMut; +use criterion::{ + criterion_group, measurement::WallTime, BatchSize, BenchmarkGroup, BenchmarkId, Criterion, + SamplingMode, Throughput, +}; +use tokio_util::codec::Decoder; +use vector_lib::codecs::{ + decoding::Deserializer, decoding::Framer, BytesDeserializer, NewlineDelimitedDecoder, +}; + +#[derive(Debug)] +struct Param { + slug: &'static str, + input: BytesMut, + max_length: Option, +} + +impl fmt::Display for Param { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.slug) + } +} + +fn decoding(c: &mut Criterion) { + let mut group: BenchmarkGroup = + c.benchmark_group("vector::codecs::decoding::Decoder"); + group.sampling_mode(SamplingMode::Auto); + + for param in &[ + Param { + slug: "no_max", + input: BytesMut::from(include_str!("moby_dick.txt")), + max_length: None, + }, + Param { + slug: "small_max", + input: BytesMut::from(include_str!("moby_dick.txt")), + max_length: Some(10), + }, + ] { + group.throughput(Throughput::Bytes(param.input.len() as u64)); + group.bench_with_input( + BenchmarkId::new("newline_bytes", param), + ¶m, + |b, param| { + b.iter_batched( + || { + let framer = Framer::NewlineDelimited( + param + .max_length + .map(|ml| NewlineDelimitedDecoder::new_with_max_length(ml)) + .unwrap_or(NewlineDelimitedDecoder::new()), + ); + let deserializer = Deserializer::Bytes(BytesDeserializer); + let decoder = vector::codecs::Decoder::new(framer, deserializer); + + (Box::new(decoder), param.input.clone()) + }, + |(mut decoder, mut input)| loop { + match decoder.decode_eof(&mut input) { + Ok(Some(_)) => continue, + Ok(None) => break, + Err(_) => { + unreachable!() + } + } + }, + BatchSize::SmallInput, + ) + }, + ); + } +} + +criterion_group!( + name = benches; + config = Criterion::default() + .warm_up_time(Duration::from_secs(5)) + .measurement_time(Duration::from_secs(120)) + // degree of noise to ignore in measurements, here 1% + .noise_threshold(0.01) + // likelihood of noise registering as difference, here 5% + .significance_level(0.05) + // likelihood of capturing the true runtime, here 95% + .confidence_level(0.95) + // total number of bootstrap resamples, higher is less noisy but slower + .nresamples(100_000) + // total samples to collect within the set measurement time + .sample_size(150); + targets = decoding +); diff --git a/benches/default.rs b/benches/default.rs index 996e9c324f9bc..910f53e3491e3 100644 --- a/benches/default.rs +++ b/benches/default.rs @@ -1,29 +1,19 @@ use criterion::criterion_main; mod batch; -mod buffering; mod event; mod files; mod http; -mod isolated_buffering; -mod lookup; mod lua; mod metrics_snapshot; -mod regex; mod template; -mod topology; criterion_main!( batch::benches, - buffering::benches, event::benches, files::benches, http::benches, - isolated_buffering::benches, - lookup::benches, lua::benches, metrics_snapshot::benches, - regex::benches, template::benches, - topology::benches, ); diff --git a/benches/distribution_statistic.rs b/benches/distribution_statistic.rs new file mode 100644 index 0000000000000..31029f0e6e11d --- /dev/null +++ b/benches/distribution_statistic.rs @@ -0,0 +1,63 @@ +use criterion::{criterion_group, criterion_main, BatchSize, Criterion}; +use rand::{ + distributions::{Distribution, Uniform}, + seq::SliceRandom, +}; +use vector::{event::metric::Sample, sinks::util::statistic::DistributionStatistic}; + +fn generate_samples(mut size: u32, max_bin_count: u32) -> Vec { + let mut rng = rand::thread_rng(); + let range = Uniform::from(1..=max_bin_count); + let mut value = 1.0; + let mut samples = Vec::new(); + while size > 0 { + let bin_count = u32::min(range.sample(&mut rng), size); + samples.push(Sample { + value, + rate: bin_count, + }); + size -= bin_count; + value += 1.0; + } + samples.shuffle(&mut rng); + samples +} + +fn bench_statistic(c: &mut Criterion) { + let mut group = c.benchmark_group("distribution_statistic"); + + let sizes = [5, 10, 50, 100, 200, 500, 1000]; + for &size in &sizes { + group.bench_function(format!("small-bin-{}", size), |b| { + b.iter_batched( + move || generate_samples(size, 3), + |samples| { + DistributionStatistic::from_samples(&samples, &[0.5, 0.75, 0.9, 0.95, 0.99]) + }, + BatchSize::SmallInput, + ); + }); + } + + let sizes = [50, 100, 200, 500, 1000]; + for &size in &sizes { + group.bench_function(format!("large-bin-{}", size), |b| { + b.iter_batched( + move || generate_samples(size, 20), + |samples| { + DistributionStatistic::from_samples(&samples, &[0.5, 0.75, 0.9, 0.95, 0.99]) + }, + BatchSize::SmallInput, + ); + }); + } + + group.finish(); +} + +criterion_group!( + name = benches; + config = Criterion::default().noise_threshold(0.1); + targets = bench_statistic +); +criterion_main!(benches); diff --git a/benches/dnstap/mod.rs b/benches/dnstap/mod.rs new file mode 100644 index 0000000000000..37839b41ace06 --- /dev/null +++ b/benches/dnstap/mod.rs @@ -0,0 +1,56 @@ +use bytes::Bytes; +use criterion::{criterion_group, criterion_main, BatchSize, Criterion, Throughput}; +use vector::event::LogEvent; +use vector::sources::dnstap::parser::DnstapParser; + +fn benchmark_query_parsing(c: &mut Criterion) { + let mut event = LogEvent::default(); + let raw_dnstap_data = "ChVqYW1lcy1WaXJ0dWFsLU1hY2hpbmUSC0JJTkQgOS4xNi4zcnoIAxACGAEiEAAAAAAAAA\ + AAAAAAAAAAAAAqECABBQJwlAAAAAAAAAAAADAw8+0CODVA7+zq9wVNMU3WNlI2kwIAAAABAAAAAAABCWZhY2Vib29rMQNjb\ + 20AAAEAAQAAKQIAAACAAAAMAAoACOxjCAG9zVgzWgUDY29tAHgB"; + let dnstap_data = base64::decode(raw_dnstap_data).unwrap(); + + let mut group = c.benchmark_group("dnstap"); + group.throughput(Throughput::Bytes(dnstap_data.len() as u64)); + group.bench_function("dns_query_parsing", |b| { + b.iter_batched( + || dnstap_data.clone(), + |dnstap_data| DnstapParser::parse(&mut event, Bytes::from(dnstap_data)).unwrap(), + BatchSize::SmallInput, + ) + }); + + group.finish(); +} + +fn benchmark_update_parsing(c: &mut Criterion) { + let mut event = LogEvent::default(); + let raw_dnstap_data = "ChVqYW1lcy1WaXJ0dWFsLU1hY2hpbmUSC0JJTkQgOS4xNi4zcmsIDhABGAEiBH8AAA\ + EqBH8AAAEwrG44AEC+iu73BU14gfofUh1wi6gAAAEAAAAAAAAHZXhhbXBsZQNjb20AAAYAAWC+iu73BW0agDwvch1wi6gAA\ + AEAAAAAAAAHZXhhbXBsZQNjb20AAAYAAXgB"; + let dnstap_data = base64::decode(raw_dnstap_data).unwrap(); + + let mut group = c.benchmark_group("dnstap"); + group.throughput(Throughput::Bytes(dnstap_data.len() as u64)); + group.bench_function("dns_update_parsing", |b| { + b.iter_batched( + || dnstap_data.clone(), + |dnstap_data| DnstapParser::parse(&mut event, Bytes::from(dnstap_data)).unwrap(), + BatchSize::SmallInput, + ) + }); + + group.finish(); +} + +criterion_group!( + name = benches; + // encapsulates inherent CI noise we saw in + // https://github.com/vectordotdev/vector/issues/5394 + config = Criterion::default().noise_threshold(0.05); + targets = benchmark_query_parsing,benchmark_update_parsing +); + +criterion_main! { + benches, +} diff --git a/benches/enrichment_tables.rs b/benches/enrichment_tables.rs new file mode 100644 index 0000000000000..5c9a11f157a62 --- /dev/null +++ b/benches/enrichment_tables.rs @@ -0,0 +1,408 @@ +use std::time::SystemTime; + +use chrono::prelude::*; +use criterion::{criterion_group, criterion_main, BatchSize, Criterion}; +use vector::enrichment_tables::{ + file::File, + geoip::{Geoip, GeoipConfig}, + mmdb::{Mmdb, MmdbConfig}, + Condition, Table, +}; +use vector_lib::enrichment::Case; +use vrl::value::{ObjectMap, Value}; + +criterion_group!( + name = benches; + config = Criterion::default().noise_threshold(0.02).sample_size(10); + targets = benchmark_enrichment_tables_file, benchmark_enrichment_tables_geoip, benchmark_enrichment_tables_mmdb +); +criterion_main!(benches); + +/// Returns the text of the column at the given position. +fn column(col: usize, row: usize) -> Value { + if col == 0 { + // A column that is duplicated across 10 rows. + Value::from(format!("data-0-{}", row / 10 * 10)) + } else if col == 1 { + // And a final column with a date, each of the above duplicated row should have + // a unique date. + Value::Timestamp( + Utc.ymd(2013, row as u32 % 10 + 1, 15) + .and_hms_opt(0, 0, 0) + .expect("invalid timestamp"), + ) + } else { + Value::from(format!("data-{}-{}", col, row)) + } +} + +fn benchmark_enrichment_tables_file(c: &mut Criterion) { + let mut group = c.benchmark_group("enrichment_tables_file"); + + let setup = |size, date_range, case| { + let data = (0..size) + .map(|row| { + // Add 8 columns. + (0..10).map(|col| column(col, row)).collect::>() + }) + .collect::>(); + + let mut file = File::new( + Default::default(), + SystemTime::now(), + data, + // Headers. + (0..10) + .map(|header| format!("field-{}", header)) + .collect::>(), + ); + + let (condition, index, result_offset) = if date_range { + // Search on the first and last field. + ( + vec![ + Condition::Equals { + field: "field-0", + value: Value::from(format!("data-0-{}", (size - 1) / 10 * 10)), + }, + Condition::BetweenDates { + field: "field-1", + from: Utc + .ymd(2013, 6, 1) + .and_hms_opt(0, 0, 0) + .expect("invalid timestamp"), + to: Utc + .ymd(2013, 7, 1) + .and_hms_opt(0, 0, 0) + .expect("invalid timestamp"), + }, + ], + file.add_index(case, &["field-0"]).unwrap(), + 5, + ) + } else { + ( + vec![ + Condition::Equals { + field: "field-2", + value: Value::from(format!("data-2-{}", size - 1)), + }, + Condition::Equals { + field: "field-9", + value: Value::from(format!("data-9-{}", size - 1)), + }, + ], + file.add_index(case, &["field-2", "field-9"]).unwrap(), + 1, + ) + }; + + let result = (0..10) + .map(|idx| { + ( + format!("field-{}", idx).into(), + column(idx, size - result_offset), + ) + }) + .collect::(); + + (file, index, condition, result) + }; + + group.bench_function("enrichment_tables/file_date_10", |b| { + let (file, index, condition, expected) = setup(10, true, Case::Sensitive); + b.iter_batched( + || (&file, &condition, expected.clone()), + |(file, condition, expected)| { + assert_eq!( + Ok(expected), + file.find_table_row(Case::Sensitive, condition, None, Some(index)) + ) + }, + BatchSize::SmallInput, + ); + }); + + group.bench_function("enrichment_tables/file_hashindex_sensitive_10", |b| { + let (file, index, condition, expected) = setup(10, false, Case::Sensitive); + b.iter_batched( + || (&file, index, &condition, expected.clone()), + |(file, index, condition, expected)| { + assert_eq!( + Ok(expected), + file.find_table_row(Case::Sensitive, condition, None, Some(index)) + ) + }, + BatchSize::SmallInput, + ); + }); + + group.bench_function("enrichment_tables/file_hashindex_insensitive_10", |b| { + let (file, index, condition, expected) = setup(10, false, Case::Insensitive); + b.iter_batched( + || (&file, index, &condition, expected.clone()), + |(file, index, condition, expected)| { + assert_eq!( + Ok(expected), + file.find_table_row(Case::Insensitive, condition, None, Some(index)) + ) + }, + BatchSize::SmallInput, + ); + }); + + group.bench_function("enrichment_tables/file_date_1_000", |b| { + let (file, index, condition, expected) = setup(1_000, true, Case::Sensitive); + b.iter_batched( + || (&file, &condition, expected.clone()), + |(file, condition, expected)| { + assert_eq!( + Ok(expected), + file.find_table_row(Case::Sensitive, condition, None, Some(index)) + ) + }, + BatchSize::SmallInput, + ); + }); + + group.bench_function("enrichment_tables/file_hashindex_sensitive_1_000", |b| { + let (file, index, condition, expected) = setup(1_000, false, Case::Sensitive); + b.iter_batched( + || (&file, index, &condition, expected.clone()), + |(file, index, condition, expected)| { + assert_eq!( + Ok(expected), + file.find_table_row(Case::Sensitive, condition, None, Some(index)) + ) + }, + BatchSize::SmallInput, + ); + }); + + group.bench_function("enrichment_tables/file_hashindex_insensitive_1_000", |b| { + let (file, index, condition, expected) = setup(1_000, false, Case::Insensitive); + b.iter_batched( + || (&file, index, &condition, expected.clone()), + |(file, index, condition, expected)| { + assert_eq!( + Ok(expected), + file.find_table_row(Case::Insensitive, condition, None, Some(index)) + ) + }, + BatchSize::SmallInput, + ); + }); + + group.bench_function("enrichment_tables/file_date_1_000_000", |b| { + let (file, index, condition, expected) = setup(1_000_000, true, Case::Sensitive); + b.iter_batched( + || (&file, &condition, expected.clone()), + |(file, condition, expected)| { + assert_eq!( + Ok(expected), + file.find_table_row(Case::Sensitive, condition, None, Some(index)) + ) + }, + BatchSize::SmallInput, + ); + }); + + group.bench_function( + "enrichment_tables/file_hashindex_sensitive_1_000_000", + |b| { + let (file, index, condition, expected) = setup(1_000_000, false, Case::Sensitive); + b.iter_batched( + || (&file, index, &condition, expected.clone()), + |(file, index, condition, expected)| { + assert_eq!( + Ok(expected), + file.find_table_row(Case::Sensitive, condition, None, Some(index)) + ) + }, + BatchSize::SmallInput, + ); + }, + ); + + group.bench_function( + "enrichment_tables/file_hashindex_insensitive_1_000_000", + |b| { + let (file, index, condition, expected) = setup(1_000_000, false, Case::Insensitive); + b.iter_batched( + || (&file, index, &condition, expected.clone()), + |(file, index, condition, expected)| { + assert_eq!( + Ok(expected), + file.find_table_row(Case::Insensitive, condition, None, Some(index)) + ) + }, + BatchSize::SmallInput, + ); + }, + ); +} + +fn benchmark_enrichment_tables_geoip(c: &mut Criterion) { + let mut group = c.benchmark_group("enrichment_tables_geoip"); + let build = |path: &str| { + Geoip::new(GeoipConfig { + path: path.to_string(), + locale: "en".to_string(), + }) + .unwrap() + }; + + group.bench_function("enrichment_tables/geoip_isp", |b| { + let table = build("tests/data/GeoIP2-ISP-Test.mmdb"); + let ip = "208.192.1.2"; + let mut expected = ObjectMap::new(); + expected.insert("autonomous_system_number".into(), 701i64.into()); + expected.insert( + "autonomous_system_organization".into(), + "MCI Communications Services, Inc. d/b/a Verizon Business".into(), + ); + expected.insert("isp".into(), "Verizon Business".into()); + expected.insert("organization".into(), "Verizon Business".into()); + + b.iter_batched( + || (&table, ip, &expected), + |(table, ip, expected)| { + assert_eq!( + Ok(expected), + table + .find_table_row( + Case::Insensitive, + &[Condition::Equals { + field: "ip", + value: ip.into(), + }], + None, + None, + ) + .as_ref() + ) + }, + BatchSize::SmallInput, + ); + }); + + group.bench_function("enrichment_tables/geoip_city", |b| { + let table = build("tests/data/GeoIP2-City-Test.mmdb"); + let ip = "67.43.156.9"; + let mut expected = ObjectMap::new(); + expected.insert("city_name".into(), Value::Null); + expected.insert("country_code".into(), "BT".into()); + expected.insert("country_name".into(), "Bhutan".into()); + expected.insert("continent_code".into(), "AS".into()); + expected.insert("region_code".into(), Value::Null); + expected.insert("region_name".into(), Value::Null); + expected.insert("timezone".into(), "Asia/Thimphu".into()); + expected.insert("latitude".into(), Value::from(27.5)); + expected.insert("longitude".into(), Value::from(90.5)); + expected.insert("postal_code".into(), Value::Null); + expected.insert("metro_code".into(), Value::Null); + + b.iter_batched( + || (&table, ip, &expected), + |(table, ip, expected)| { + assert_eq!( + Ok(expected), + table + .find_table_row( + Case::Insensitive, + &[Condition::Equals { + field: "ip", + value: ip.into(), + }], + None, + None, + ) + .as_ref() + ) + }, + BatchSize::SmallInput, + ); + }); +} + +fn benchmark_enrichment_tables_mmdb(c: &mut Criterion) { + let mut group = c.benchmark_group("enrichment_tables_mmdb"); + let build = |path: &str| { + Mmdb::new(MmdbConfig { + path: path.to_string(), + }) + .unwrap() + }; + + group.bench_function("enrichment_tables/mmdb_isp", |b| { + let table = build("tests/data/GeoIP2-ISP-Test.mmdb"); + let ip = "208.192.1.2"; + let mut expected = ObjectMap::new(); + expected.insert("autonomous_system_number".into(), 701i64.into()); + expected.insert( + "autonomous_system_organization".into(), + "MCI Communications Services, Inc. d/b/a Verizon Business".into(), + ); + expected.insert("isp".into(), "Verizon Business".into()); + expected.insert("organization".into(), "Verizon Business".into()); + + b.iter_batched( + || (&table, ip, &expected), + |(table, ip, expected)| { + assert_eq!( + Ok(expected), + table + .find_table_row( + Case::Insensitive, + &[Condition::Equals { + field: "ip", + value: ip.into(), + }], + None, + None, + ) + .as_ref() + ) + }, + BatchSize::SmallInput, + ); + }); + + group.bench_function("enrichment_tables/mmdb_city", |b| { + let table = build("tests/data/GeoIP2-City-Test.mmdb"); + let ip = "67.43.156.9"; + let mut expected = ObjectMap::new(); + expected.insert( + "location".into(), + ObjectMap::from([ + ("latitude".into(), Value::from(27.5)), + ("longitude".into(), Value::from(90.5)), + ]) + .into(), + ); + + b.iter_batched( + || (&table, ip, &expected), + |(table, ip, expected)| { + assert_eq!( + Ok(expected), + table + .find_table_row( + Case::Insensitive, + &[Condition::Equals { + field: "ip", + value: ip.into(), + }], + Some(&[ + "location.latitude".to_string(), + "location.longitude".to_string(), + ]), + None, + ) + .as_ref() + ) + }, + BatchSize::SmallInput, + ); + }); +} diff --git a/benches/event.rs b/benches/event.rs index 682ca341bf954..cb48f6101add3 100644 --- a/benches/event.rs +++ b/benches/event.rs @@ -1,107 +1,98 @@ use bytes::Bytes; use criterion::{criterion_group, BatchSize, Criterion}; -use serde_json::{json, Value}; -use vector::{ - config::log_schema, - event::{Event, LogEvent}, - transforms::{ - json_parser::{JsonParser, JsonParserConfig}, - FunctionTransform, - }, -}; +use vector::event::LogEvent; +use vrl::event_path; -fn benchmark_event(c: &mut Criterion) { - c.bench_function("create and insert single-level", |b| { - b.iter(|| { - let mut log = Event::new_empty_log().into_log(); - log.insert("key1", Bytes::from("value1")); - log.insert("key2", Bytes::from("value2")); - log.insert("key3", Bytes::from("value3")); - }) - }); +fn benchmark_event_iterate(c: &mut Criterion) { + let mut group = c.benchmark_group("event/iterate"); - c.bench_function("iterate all fields single-level", |b| { + group.bench_function("single-level", |b| { b.iter_batched_ref( || { - create_event(json!({ - "key1": "value1", - "key2": "value2", - "key3": "value3" - })) + let mut log = LogEvent::default(); + log.insert(event_path!("key1"), Bytes::from("value1")); + log.insert(event_path!("key2"), Bytes::from("value2")); + log.insert(event_path!("key3"), Bytes::from("value3")); + log }, - |e| e.all_fields().count(), + |e| e.all_event_fields().unwrap().count(), BatchSize::SmallInput, ) }); - c.bench_function("create and insert nested-keys", |b| { - b.iter(|| { - let mut log = Event::new_empty_log().into_log(); - log.insert("key1.nested1.nested2", Bytes::from("value1")); - log.insert("key1.nested1.nested3", Bytes::from("value4")); - log.insert("key3", Bytes::from("value3")); - }) - }); - - c.bench_function("iterate all fields nested-keys", |b| { + group.bench_function("nested-keys", |b| { b.iter_batched_ref( || { - create_event(json!({ - "key1": { - "nested1": { - "nested2": "value1", - "nested3": "value4" - } - }, - "key3": "value3" - })) + let mut log = LogEvent::default(); + log.insert( + event_path!("key1", "nested1", "nested2"), + Bytes::from("value1"), + ); + log.insert( + event_path!("key1", "nested1", "nested3"), + Bytes::from("value4"), + ); + log.insert(event_path!("key3"), Bytes::from("value3")); + log }, - |e| e.all_fields().count(), + |e| e.all_event_fields().unwrap().count(), BatchSize::SmallInput, ) }); - c.bench_function("create and insert array", |b| { - b.iter(|| { - let mut log = Event::new_empty_log().into_log(); - log.insert("key1.nested1[0]", Bytes::from("value1")); - log.insert("key1.nested1[1]", Bytes::from("value2")); - }) - }); - - c.bench_function("iterate all fields array", |b| { + group.bench_function("array", |b| { b.iter_batched_ref( || { - create_event(json!({ - "key1": { - "nested1": [ - "value1", - "value2" - ] - }, - })) + let mut log = LogEvent::default(); + log.insert(event_path!("key1", "nested1", 0), Bytes::from("value1")); + log.insert(event_path!("key1", "nested1", 1), Bytes::from("value2")); + log }, - |e| e.all_fields().count(), + |e| e.all_event_fields().unwrap().count(), BatchSize::SmallInput, ) }); } -fn create_event(json: Value) -> LogEvent { - let s = serde_json::to_string(&json).unwrap(); - let mut event = Event::new_empty_log(); - event.as_mut_log().insert(log_schema().message_key(), s); +fn benchmark_event_create(c: &mut Criterion) { + let mut group = c.benchmark_group("event/create"); - let mut parser = JsonParser::from(JsonParserConfig::default()); - let mut output = Vec::with_capacity(1); - parser.transform(&mut output, event); - output.into_iter().next().unwrap().into_log() + group.bench_function("single-level", |b| { + b.iter(|| { + let mut log = LogEvent::default(); + log.insert(event_path!("key1"), Bytes::from("value1")); + log.insert(event_path!("key2"), Bytes::from("value2")); + log.insert(event_path!("key3"), Bytes::from("value3")); + }) + }); + + group.bench_function("nested-keys", |b| { + b.iter(|| { + let mut log = LogEvent::default(); + log.insert( + event_path!("key1", "nested1", "nested2"), + Bytes::from("value1"), + ); + log.insert( + event_path!("key1", "nested1", "nested3"), + Bytes::from("value4"), + ); + log.insert(event_path!("key3"), Bytes::from("value3")); + }) + }); + group.bench_function("array", |b| { + b.iter(|| { + let mut log = LogEvent::default(); + log.insert(event_path!("key1", "nested1", 0), Bytes::from("value1")); + log.insert(event_path!("key1", "nested1", 1), Bytes::from("value2")); + }) + }); } criterion_group!( name = benches; // encapsulates inherent CI noise we saw in - // https://github.com/timberio/vector/issues/5394 + // https://github.com/vectordotdev/vector/issues/5394 config = Criterion::default().noise_threshold(0.05); - targets = benchmark_event + targets = benchmark_event_create, benchmark_event_iterate ); diff --git a/benches/files.rs b/benches/files.rs index 0f9ac4c00cdb5..49153a378de48 100644 --- a/benches/files.rs +++ b/benches/files.rs @@ -1,8 +1,8 @@ +use std::{convert::TryInto, path::PathBuf, time::Duration}; + use bytes::Bytes; use criterion::{criterion_group, BatchSize, Criterion, SamplingMode, Throughput}; use futures::{stream, SinkExt, StreamExt}; -use std::convert::TryInto; -use std::path::PathBuf; use tempfile::tempdir; use tokio::fs::OpenOptions; use tokio_util::codec::{BytesCodec, FramedWrite}; @@ -10,8 +10,9 @@ use vector::{ config, sinks, sources, test_util::{random_lines, runtime, start_topology}, }; +use vector_lib::codecs::{encoding::FramingConfig, TextSerializerConfig}; -fn benchmark_files_without_partitions(c: &mut Criterion) { +fn benchmark_files_no_partitions(c: &mut Criterion) { let num_lines: usize = 10_000; let line_size: usize = 100; @@ -19,7 +20,7 @@ fn benchmark_files_without_partitions(c: &mut Criterion) { group.throughput(Throughput::Bytes((num_lines * line_size) as u64)); group.sampling_mode(SamplingMode::Flat); - group.bench_function("files_without_partitions", |b| { + group.bench_function("no_partitions", |b| { b.iter_batched( || { let temp = tempdir().unwrap(); @@ -53,13 +54,16 @@ fn benchmark_files_without_partitions(c: &mut Criterion) { &["in"], sinks::file::FileSinkConfig { path: output.try_into().unwrap(), - idle_timeout_secs: None, - encoding: sinks::file::Encoding::Text.into(), + idle_timeout: Duration::from_secs(30), + encoding: (None::, TextSerializerConfig::default()).into(), compression: sinks::file::Compression::None, + acknowledgements: Default::default(), + timezone: Default::default(), + internal_metrics: Default::default(), }, ); - let mut rt = runtime(); + let rt = runtime(); let (topology, input) = rt.block_on(async move { let (topology, _crash) = start_topology(config.build().unwrap(), false).await; @@ -67,20 +71,22 @@ fn benchmark_files_without_partitions(c: &mut Criterion) { options.create(true).write(true); let input = options.open(input).await.unwrap(); - let input = FramedWrite::new(input, BytesCodec::new()) - .sink_map_err(|e| panic!("{:?}", e)); (topology, input) }); (rt, topology, input) }, - |(mut rt, topology, input)| { + |(rt, topology, input)| { rt.block_on(async move { - let lines = random_lines(line_size).take(num_lines).map(|mut line| { + let mut sink = FramedWrite::new(input, BytesCodec::new()); + let raw_lines = random_lines(line_size).take(num_lines).map(|mut line| { line.push('\n'); - Ok(Bytes::from(line)) + Bytes::from(line) }); - let _ = stream::iter(lines).forward(input).await.unwrap(); + let mut lines = stream::iter(raw_lines); + while let Some(line) = lines.next().await { + sink.send(line).await.unwrap(); + } topology.stop().await; }); @@ -95,7 +101,7 @@ fn benchmark_files_without_partitions(c: &mut Criterion) { criterion_group!( name = benches; // encapsulates inherent CI noise we saw in - // https://github.com/timberio/vector/issues/5394 + // https://github.com/vectordotdev/vector/issues/5394 config = Criterion::default().noise_threshold(0.05); - targets = benchmark_files_without_partitions + targets = benchmark_files_no_partitions ); diff --git a/benches/http.rs b/benches/http.rs index faddc267d37c8..b60b25a49556f 100644 --- a/benches/http.rs +++ b/benches/http.rs @@ -1,18 +1,20 @@ +use std::net::SocketAddr; + use criterion::{criterion_group, BatchSize, BenchmarkId, Criterion, SamplingMode, Throughput}; use futures::TryFutureExt; use hyper::{ service::{make_service_fn, service_fn}, Body, Response, Server, }; -use std::net::SocketAddr; use tokio::runtime::Runtime; use vector::{ config, sinks, - sinks::util::Compression, + sinks::util::{BatchConfig, Compression}, sources, test_util::{next_addr, random_lines, runtime, send_lines, start_topology, wait_for_tcp}, Error, }; +use vector_lib::codecs::{encoding::FramingConfig, TextSerializerConfig}; fn benchmark_http(c: &mut Criterion) { let num_lines: usize = 1_000; @@ -39,26 +41,30 @@ fn benchmark_http(c: &mut Criterion) { "in", sources::socket::SocketConfig::make_basic_tcp_config(in_addr), ); + let mut batch = BatchConfig::default(); + batch.max_bytes = Some(num_lines * line_size); + config.add_sink( "out", &["in"], - sinks::http::HttpSinkConfig { + sinks::http::config::HttpSinkConfig { uri: out_addr.to_string().parse::().unwrap().into(), compression: *compression, method: Default::default(), auth: Default::default(), headers: Default::default(), - batch: sinks::util::BatchConfig { - max_bytes: Some(num_lines * line_size), - ..Default::default() - }, - encoding: sinks::http::Encoding::Text.into(), + payload_prefix: Default::default(), + payload_suffix: Default::default(), + batch, + encoding: (None::, TextSerializerConfig::default()) + .into(), request: Default::default(), tls: Default::default(), + acknowledgements: Default::default(), }, ); - let mut rt = runtime(); + let rt = runtime(); let topology = rt.block_on(async move { let (topology, _crash) = start_topology(config.build().unwrap(), false).await; @@ -67,7 +73,7 @@ fn benchmark_http(c: &mut Criterion) { }); (rt, topology) }, - |(mut rt, topology)| { + |(rt, topology)| { rt.block_on(async move { let lines = random_lines(line_size).take(num_lines); send_lines(in_addr, lines).await.unwrap(); @@ -94,7 +100,7 @@ fn serve(addr: SocketAddr) -> Runtime { Server::bind(&addr) .serve(make_service) - .map_err(|e| panic!(e)) + .map_err(|e| panic!("{}", e)) .await }); rt diff --git a/benches/isolated_buffering.rs b/benches/isolated_buffering.rs deleted file mode 100644 index fb8503c2cd626..0000000000000 --- a/benches/isolated_buffering.rs +++ /dev/null @@ -1,227 +0,0 @@ -use async_trait::async_trait; -use criterion::{criterion_group, BatchSize, Criterion, SamplingMode, Throughput}; -use futures::{ - compat::{Future01CompatExt, Stream01CompatExt}, - stream::BoxStream, - SinkExt, StreamExt, -}; -use futures01::{stream, Sink, Stream}; -use tempfile::tempdir; -use vector::{ - buffers::{ - disk::{leveldb_buffer, DiskBuffer}, - Acker, - }, - sinks::util::StreamSink, - test_util::{random_lines, runtime}, - Event, -}; - -struct NullSink { - acker: Acker, -} - -impl NullSink { - fn new(acker: Acker) -> Self { - Self { acker } - } -} - -#[async_trait] -impl StreamSink for NullSink { - async fn run(&mut self, input: BoxStream<'_, Event>) -> Result<(), ()> { - input.for_each(|_| async { self.acker.ack(1) }).await; - Ok(()) - } -} - -fn benchmark_buffers(c: &mut Criterion) { - let num_lines: usize = 10_000; - let line_size: usize = 200; - - let mut group = c.benchmark_group("isolated_buffers"); - group.throughput(Throughput::Bytes((num_lines * line_size) as u64)); - group.sampling_mode(SamplingMode::Flat); - - group.bench_function("channels/futures01", |b| { - b.iter_batched( - || { - let rt = runtime(); - - let (writer, reader) = futures01::sync::mpsc::channel(100); - let writer = writer.sink_map_err(|e| panic!(e)); - - let read_loop = reader.for_each(move |_| Ok(())); - - (rt, writer, read_loop) - }, - |(mut rt, writer, read_loop)| { - let send = writer.send_all(random_events(line_size).take(num_lines as u64)); - - let read_handle = rt.spawn(read_loop.compat()); - let write_handle = rt.spawn(send.compat()); - - let (writer, _stream) = rt.block_on(write_handle).unwrap().unwrap(); - drop(writer); - - rt.block_on(read_handle).unwrap().unwrap(); - }, - BatchSize::SmallInput, - ); - }); - - group.bench_function("channels/futures", |b| { - b.iter_batched( - || { - let rt = runtime(); - - let (writer, mut reader) = futures::channel::mpsc::channel(100); - - let read_handle = rt.spawn(async move { while reader.next().await.is_some() {} }); - - (rt, writer, read_handle) - }, - |(mut rt, mut writer, read_handle)| { - let write_handle = rt.spawn(async move { - let mut stream = random_events(line_size).take(num_lines as u64).compat(); - while let Some(e) = stream.next().await { - writer.send(e).await.unwrap(); - } - }); - - rt.block_on(write_handle).unwrap(); - rt.block_on(read_handle).unwrap(); - }, - BatchSize::SmallInput, - ); - }); - - group.bench_function("channels/tokio", |b| { - b.iter_batched( - || { - let rt = runtime(); - - let (writer, mut reader) = tokio::sync::mpsc::channel(100); - - let read_handle = rt.spawn(async move { while reader.next().await.is_some() {} }); - - (rt, writer, read_handle) - }, - |(mut rt, mut writer, read_handle)| { - let write_handle = rt.spawn(async move { - let mut stream = random_events(line_size).take(num_lines as u64).compat(); - while let Some(e) = stream.next().await { - writer.send(e).await.unwrap(); - } - }); - - rt.block_on(write_handle).unwrap(); - rt.block_on(read_handle).unwrap(); - }, - BatchSize::SmallInput, - ); - }); - - group.bench_function("leveldb/writing", |b| { - b.iter_batched( - || { - let data_dir = tempdir().unwrap(); - - let rt = runtime(); - - let plenty_of_room = num_lines * line_size * 2; - let (writer, _reader, _acker) = - leveldb_buffer::Buffer::build(data_dir.path().to_path_buf(), plenty_of_room) - .unwrap(); - - (rt, writer) - }, - |(mut rt, writer)| { - let send = writer.send_all(random_events(line_size).take(num_lines as u64)); - let write_handle = rt.spawn(send.compat()); - let _ = rt.block_on(write_handle).unwrap().unwrap(); - }, - BatchSize::LargeInput, - ); - }); - - group.bench_function("leveldb/reading", |b| { - b.iter_batched( - || { - let data_dir = tempdir().unwrap(); - - let mut rt = runtime(); - - let plenty_of_room = num_lines * line_size * 2; - let (writer, reader, acker) = - leveldb_buffer::Buffer::build(data_dir.path().to_path_buf(), plenty_of_room) - .unwrap(); - - let send = writer.send_all(random_events(line_size).take(num_lines as u64)); - let write_handle = rt.spawn(send.compat()); - let (writer, _stream) = rt.block_on(write_handle).unwrap().unwrap(); - drop(writer); - - let read_loop = async move { - NullSink::new(acker) - .run(Box::pin(reader.compat().map(Result::unwrap))) - .await - }; - - (rt, read_loop) - }, - |(mut rt, read_loop)| { - let read_handle = rt.spawn(read_loop); - rt.block_on(read_handle).unwrap().unwrap(); - }, - BatchSize::LargeInput, - ); - }); - - group.bench_function("leveldb/both", |b| { - b.iter_batched( - || { - let data_dir = tempdir().unwrap(); - - let rt = runtime(); - - let plenty_of_room = num_lines * line_size * 2; - let (writer, reader, acker) = - leveldb_buffer::Buffer::build(data_dir.path().to_path_buf(), plenty_of_room) - .unwrap(); - - let read_loop = async move { - NullSink::new(acker) - .run(Box::pin(reader.compat().map(Result::unwrap))) - .await - }; - - (rt, writer, read_loop) - }, - |(mut rt, writer, read_loop)| { - let send = writer.send_all(random_events(line_size).take(num_lines as u64)); - - let read_handle = rt.spawn(read_loop); - let write_handle = rt.spawn(send.compat()); - - let _ = rt.block_on(write_handle).unwrap().unwrap(); - rt.block_on(read_handle).unwrap().unwrap(); - }, - BatchSize::LargeInput, - ); - }); - - group.finish(); -} - -fn random_events(size: usize) -> impl Stream { - stream::iter_ok(random_lines(size)).map(Event::from) -} - -criterion_group!( - name = benches; - // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 - config = Criterion::default().noise_threshold(0.05); - targets = benchmark_buffers -); diff --git a/benches/languages.rs b/benches/languages.rs index 0f1f11cc01965..2c386f786fd4f 100644 --- a/benches/languages.rs +++ b/benches/languages.rs @@ -1,4 +1,5 @@ use criterion::{criterion_group, criterion_main, BatchSize, Criterion, SamplingMode, Throughput}; +use indoc::indoc; use vector::{ config, test_util::{next_addr, runtime, send_lines, start_topology, wait_for_tcp, CountReceiver}, @@ -7,9 +8,9 @@ use vector::{ criterion_group!( name = benches; // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 + // https://github.com/vectordotdev/vector/issues/5394 config = Criterion::default().noise_threshold(0.05); - targets = benchmark_add_fields, benchmark_parse_json, benchmark_parse_syslog + targets = benchmark_add_fields, benchmark_multifaceted, benchmark_parse_json, benchmark_parse_syslog ); criterion_main!(benches); @@ -18,113 +19,72 @@ fn benchmark_add_fields(c: &mut Criterion) { let configs: Vec<(&str, &str)> = vec![ ( "remap", - r#" -[transforms.last] - type = "remap" - inputs = ["in"] - source = """ - .four = 4 - .five = 4 - """ - "#, - ), - ( - "native", - r#" -[transforms.last] - type = "add_fields" - inputs = ["in"] - fields.four = 4 - fields.five = 5 - "#, + indoc! {r#" + [transforms.last] + type = "remap" + inputs = ["in"] + source = """ + .four = 4 + .five = 5 + """ + "#}, ), ( "lua", - r#" -[transforms.last] - type = "lua" - inputs = ["in"] - version = "2" - source = """ - function process(event, emit) - event.log.four = 4 - event.log.five = 5 - emit(event) - end - """ - hooks.process = "process" - "#, - ), - ( - "wasm", - r#" -[transforms.last] - type = "wasm" - inputs = ["in"] - module = "tests/data/wasm/add_fields/target/wasm32-wasi/release/add_fields.wasm" - artifact_cache = "target/artifacts/" - "#, + indoc! {r#" + [transforms.last] + type = "lua" + inputs = ["in"] + version = "2" + source = """ + function process(event, emit) + event.log.four = 4 + event.log.five = 5 + emit(event) + end + """ + hooks.process = "process" + "#}, ), ]; - let input = r#"{"one":1,"two":2,"three":3}"#; - let output = - serde_json::from_str(r#"{ "one": 1, "two": 2, "three": 3, "four": 4, "five": 5 }"#) - .unwrap(); + let input = ""; + let output = serde_json::from_str(r#"{"four": 4, "five": 5 }"#).unwrap(); - benchmark_configs(c, "add_fields", configs, "in", "last", input, output); + benchmark_configs(c, "add_fields", configs, "in", "last", input, &output); } fn benchmark_parse_json(c: &mut Criterion) { let configs: Vec<(&str, &str)> = vec![ ( "remap", - r#" -[transforms.last] - type = "remap" - inputs = ["in"] - source = """ - . = parse_json!(.message) - """ - "#, - ), - ( - "native", - r#" -[transforms.last] - type = "json_parser" - inputs = ["in"] - field = "message" - "#, + indoc! {r#" + [transforms.last] + type = "remap" + inputs = ["in"] + source = """ + . = parse_json!(string!(.message)) + """ + "#}, ), ( "lua", - r#" -[transforms.last] - type = "lua" - inputs = ["in"] - version = "2" - search_dirs = ["benches/lua_deps"] - source = """ - local json = require "json" - - function process(event, emit) - event.log = json.decode(event.log.message) - emit(event) - end - """ - hooks.process = "process" - "#, - ), - ( - "wasm", - r#" -[transforms.last] - type = "wasm" - inputs = ["in"] - module = "tests/data/wasm/parse_json/target/wasm32-wasi/release/parse_json.wasm" - artifact_cache = "target/artifacts/" - "#, + indoc! {r#" + [transforms.last] + type = "lua" + inputs = ["in"] + version = "2" + search_dirs = ["benches/lua_deps"] + source = """ + local json = require "json" + + function process(event, emit) + event.log = json.decode(event.log.message) + emit(event) + end + """ + hooks.process = "process" + "#}, ), ]; @@ -132,79 +92,139 @@ fn benchmark_parse_json(c: &mut Criterion) { r#"{"string":"bar","array":[1,2,3],"boolean":true,"number":47.5,"object":{"key":"value"}}"#; let output = serde_json::from_str(r#"{ "array": [1, 2, 3], "boolean": true, "number": 47.5, "object": { "key": "value" }, "string": "bar" }"#).unwrap(); - benchmark_configs(c, "parse_json", configs, "in", "last", input, output); + benchmark_configs(c, "parse_json", configs, "in", "last", input, &output); } fn benchmark_parse_syslog(c: &mut Criterion) { let configs: Vec<(&str, &str)> = vec![ ( "remap", - r#" -[transforms.last] - type = "remap" - inputs = ["in"] - source = """ - . = parse_syslog!(.message) - """ - "#, + indoc! {r#" + [transforms.last] + type = "remap" + inputs = ["in"] + source = """ + . = parse_syslog!(string!(.message)) + """ + "#}, ), ( - "native", - r#" -[transforms.last] - type = "regex_parser" - inputs = ["in"] - field = "message" - patterns = ['^<(?P\d+)>(?P\d+) (?P%S+) (?P%S+) (?P%S+) (?P\S+) (?P\S+) (?P%S+) (?P.+)$'] - types.appname = "string" - types.facility = "string" - types.hostname = "string" - types.level = "string" - types.message = "string" - types.msgid = "string" - types.procid = "int" - types.timestamp = "timestamp|%F" - "#, + "lua", + indoc! {r#" + [transforms.last] + type = "lua" + inputs = ["in"] + version = "2" + source = """ + local function parse_syslog(message) + local pattern = "^<(%d+)>(%d+) (%S+) (%S+) (%S+) (%S+) (%S+) (%S+) (.+)$" + local priority, version, timestamp, hostname, appname, procid, msgid, sdata, message = string.match(message, pattern) + + return {priority = priority, version = tonumber(version), timestamp = timestamp, hostname = hostname, appname = appname, procid = tonumber(procid), msgid = msgid, sdata = sdata, message = message} + end + + function process(event, emit) + event.log = parse_syslog(event.log.message) + emit(event) + end + """ + hooks.process = "process" + "#}, ), + ]; + + let input = r#"<12>3 2020-12-19T21:48:09.004Z initech.io su 4015 ID81 - TPS report missing cover sheet"#; + let output = serde_json::from_str(r#"{ "appname": "su", "hostname": "initech.io", "message": "TPS report missing cover sheet", "msgid": "ID81", "procid": 4015, "timestamp": "2020-12-19T21:48:09.004Z", "version": 3 }"#).unwrap(); + + benchmark_configs(c, "parse_syslog", configs, "in", "last", input, &output); +} + +fn benchmark_multifaceted(c: &mut Criterion) { + let configs: Vec<(&str, &str)> = vec![ ( - "lua", - r#" -[transforms.last] - type = "lua" - inputs = ["in"] - version = "2" - source = """ - local function parse_syslog(message) - local pattern = "^<(%d+)>(%d+) (%S+) (%S+) (%S+) (%S+) (%S+) (%S+) (.+)$" - local priority, version, timestamp, host, appname, procid, msgid, sdata, message = string.match(message, pattern) - - return {priority = priority, version = version, timestamp = timestamp, host = host, appname = appname, procid = procid, msgid = msgid, sdata = sdata, message = message} - end - - function process(event, emit) - event.log = parse_syslog(event.log.message) - emit(event) - end - """ - hooks.process = "process" - "#, + "remap", + indoc! {r#" + [transforms.last] + type = "remap" + inputs = ["in"] + source = """ + . = parse_syslog!(string!(.message)) + .timestamp = format_timestamp!(to_timestamp!(.timestamp), format: "%c") + del(.hostname) + .message = downcase(.message) + """ + "#}, ), ( - "wasm", - r#" -[transforms.last] - type = "wasm" - inputs = ["in"] - module = "tests/data/wasm/parse_syslog/target/wasm32-wasi/release/parse_syslog.wasm" - artifact_cache = "target/artifacts/" - "#, + "lua", + indoc! {r#" + [transforms.last] + type = "lua" + inputs = ["in"] + version = "2" + source = """ + local severities = { "emerg", "alert", "crit", "error", "warning", "notice", "info", "debug" } + local facilities = { + "kern", + "user", + "mail", + "daemon", + "auth", + "syslog", + "lpr", + "news", + "uucp", + "cron", + "authpriv", + "ftp", + "ntp", + "security", + "console", + "solaris-cron", + "local0", + "local1", + "local2", + "local3", + "local4", + "local5", + "local6", + "local7" + }; + + local function parse_and_transform(message) + local pattern = "^<(%d+)>(%d+) (%S+) (%S+) (%S+) (%S+) (%S+) (%S+) (.+)$" + local priority, version, timestamp, _host, appname, procid, msgid, _sdata, message = string.match(message, pattern) + + priority = tonumber(priority) + + local facility = priority // 8 + local severity = priority - (facility * 8) + + facility = facilities[facility + 1] + severity = severities[severity + 1] + + local year, month, day, hour, minute, second, tz = string.match(timestamp, '(%d+)-(%d+)-(%d+)T(%d+):(%d+):(%d+).(%d+)(%a)') + + timestamp = os.date('%c', os.time({year=year, month=month, day=day, hour=hour, min=minute, sec=second})) + message = string.lower(message) + + return {priority = priority, facility = facility, severity = severity, version = tonumber(version), timestamp = timestamp, appname = appname, procid = tonumber(procid), msgid = msgid, message = message} + end + + function process(event, emit) + event.log = parse_and_transform(event.log.message) + emit(event) + end + """ + hooks.process = "process" + "#}, ), ]; let input = r#"<12>3 2020-12-19T21:48:09.004Z initech.io su 4015 ID81 - TPS report missing cover sheet"#; - let output = serde_json::from_str(r#"{ "appname": "su", "facility": "user", "hostname": "initech.io", "severity": "warning", "message": "TPS report missing cover sheet", "msgid": "ID81", "procid": 4015, "timestamp": "2020-12-19 21:48:09.004 +00:00", "version": 3 }"#).unwrap(); + let output = serde_json::from_str(r#"{ "appname": "su", "facility": "user", "severity": "warning", "message": "tps report missing cover sheet", "msgid": "ID81", "procid": 4015, "timestamp": "Sat Dec 19 21:48:09 2020", "version": 3 }"#).unwrap(); - benchmark_configs(c, "parse_syslog", configs, "in", "last", input, output); + benchmark_configs(c, "multifaceted", configs, "in", "last", input, &output); } /// Benches a set of transform configs for comparison @@ -213,7 +233,7 @@ fn benchmark_parse_syslog(c: &mut Criterion) { /// /// * `criterion` - Criterion benchmark manager /// * `benchmark_name` - The name of the benchmark -/// * `configs' - Vec of tuples of (config_name, config_snippet) +/// * `configs` - Vec of tuples of (config_name, config_snippet) /// * `input_name` - Name of the input to the first transform /// * `output_name` - Name of the last transform /// * `input` - Line to use as input @@ -225,11 +245,11 @@ fn benchmark_configs( input_name: &str, output_name: &str, input: &str, - output: serde_json::Value, + output: &serde_json::map::Map, ) { vector::test_util::trace_init(); - // only used for debug assertions so assigned to supress unused warning + // only used for debug assertions so assigned to suppress unused warning let _ = output; let num_lines = 10_000; @@ -240,27 +260,27 @@ fn benchmark_configs( .take(num_lines) .collect(); - let mut group = criterion.benchmark_group(format!("language/{}", benchmark_name)); + let mut group = criterion.benchmark_group(format!("languages/{}", benchmark_name)); group.sampling_mode(SamplingMode::Flat); let source_config = format!( - r#" -[sources.{}] - type = "socket" - mode = "tcp" - address = "{}" -"#, + indoc! {r#" + [sources.{}] + type = "socket" + mode = "tcp" + address = "{}" + "#}, input_name, in_addr ); let sink_config = format!( - r#" -[sinks.out] - inputs = ["{}"] - type = "socket" - mode = "tcp" - encoding.codec = "json" - address = "{}" -"#, + indoc! {r#" + [sinks.out] + inputs = ["{}"] + type = "socket" + mode = "tcp" + encoding.codec = "json" + address = "{}" + "#}, output_name, out_addr ); @@ -273,9 +293,9 @@ fn benchmark_configs( config.push_str(&transform_config); config.push_str(&sink_config); - let config = config::load_from_str(&config, Some(config::Format::TOML)) + let config = config::load_from_str(&config, config::Format::Toml) .expect(&format!("invalid TOML configuration: {}", &config)); - let mut rt = runtime(); + let rt = runtime(); let (output_lines, topology) = rt.block_on(async move { let output_lines = CountReceiver::receive_lines(out_addr); let (topology, _crash) = start_topology(config, false).await; @@ -285,7 +305,7 @@ fn benchmark_configs( let lines = lines.clone(); (rt, lines, topology, output_lines) }, - |(mut rt, lines, topology, output_lines)| { + |(rt, lines, topology, output_lines)| { rt.block_on(async move { send_lines(in_addr, lines).await.unwrap(); @@ -296,9 +316,14 @@ fn benchmark_configs( #[cfg(debug_assertions)] { assert_eq!(num_lines, output_lines.len()); - for output_line in output_lines { - let actual = serde_json::from_str(output_line); - assert_eq!(output, actual); + for output_line in &output_lines { + let actual: serde_json::map::Map = + serde_json::from_str(output_line).unwrap(); + // avoids asserting the actual == expected as the socket transform + // adds dynamic keys like timestamp + for (key, value) in output.iter() { + assert_eq!(Some(value), actual.get(key), "for key {}", key,); + } } } diff --git a/benches/loki.rs b/benches/loki.rs new file mode 100644 index 0000000000000..4ff2ca4a12548 --- /dev/null +++ b/benches/loki.rs @@ -0,0 +1,31 @@ +use std::convert::TryFrom; + +use criterion::{criterion_group, criterion_main, BatchSize, Criterion}; +use vector::{sinks::loki::valid_label_name, template::Template}; + +const VALID: [&str; 4] = ["name", " name ", "bee_bop", "a09b"]; +const INVALID: [&str; 4] = ["0ab", "*", "", " "]; + +fn bench_valid_label_name(c: &mut Criterion) { + let mut group = c.benchmark_group("loki"); + + group.bench_function("valid_label_name", |b| { + for template in VALID { + b.iter_batched( + || Template::try_from(template).unwrap(), + |label| valid_label_name(&label), + BatchSize::SmallInput, + ); + } + for template in INVALID { + b.iter_batched( + || Template::try_from(template).unwrap(), + |label| valid_label_name(&label), + BatchSize::SmallInput, + ); + } + }); +} + +criterion_group!(benches, bench_valid_label_name); +criterion_main!(benches); diff --git a/benches/lookup.rs b/benches/lookup.rs deleted file mode 100644 index 523a46d24c05b..0000000000000 --- a/benches/lookup.rs +++ /dev/null @@ -1,122 +0,0 @@ -use criterion::{criterion_group, BatchSize, BenchmarkId, Criterion, Throughput}; -use indexmap::map::IndexMap; -use std::convert::TryFrom; -use std::{fs, io::Read, path::Path}; -use vector::event::Lookup; - -const FIXTURE_ROOT: &str = "tests/data/fixtures/lookup"; - -fn parse_artifact(path: impl AsRef) -> std::io::Result { - let mut test_file = match fs::File::open(path) { - Ok(file) => file, - Err(e) => return Err(e), - }; - - let mut buf = Vec::new(); - test_file.read_to_end(&mut buf)?; - let string = String::from_utf8(buf).unwrap(); - Ok(string) -} - -// This test iterates over the `tests/data/fixtures/lookup` folder and ensures the lookup parsed, -// then turned into a string again is the same. -fn lookup_to_string(c: &mut Criterion) { - vector::test_util::trace_init(); - let mut fixtures = IndexMap::new(); - - std::fs::read_dir(FIXTURE_ROOT) - .unwrap() - .for_each(|fixture_file| match fixture_file { - Ok(fixture_file) => { - let path = fixture_file.path(); - tracing::trace!(?path, "Opening."); - let buf = parse_artifact(&path).unwrap(); - fixtures.insert(path, buf); - } - _ => panic!("This test should never read Err'ing test fixtures."), - }); - - let mut group_from_elem = c.benchmark_group("from_string"); - for (_path, fixture) in fixtures.iter() { - group_from_elem.throughput(Throughput::Bytes(fixture.clone().into_bytes().len() as u64)); - group_from_elem.bench_with_input( - BenchmarkId::from_parameter(&fixture), - &fixture.clone(), - move |b, ref param| { - let input = &(*param).clone(); - b.iter_batched( - || input.clone(), - |input| Lookup::try_from(input).unwrap(), - BatchSize::SmallInput, - ) - }, - ); - } - group_from_elem.finish(); - - let mut group_to_string = c.benchmark_group("to_string"); - // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 - for (_path, fixture) in fixtures.iter() { - group_to_string.throughput(Throughput::Bytes(fixture.clone().into_bytes().len() as u64)); - group_to_string.bench_with_input( - BenchmarkId::from_parameter(&fixture), - &fixture.clone(), - move |b, ref param| { - let input = &(*param).clone(); - b.iter_batched( - || Lookup::try_from(input.clone()).unwrap(), - |input| input.to_string(), - BatchSize::SmallInput, - ) - }, - ); - } - group_to_string.finish(); - - let mut group_serialize = c.benchmark_group("serialize"); - for (_path, fixture) in fixtures.iter() { - group_serialize.throughput(Throughput::Bytes(fixture.clone().into_bytes().len() as u64)); - group_serialize.bench_with_input( - BenchmarkId::from_parameter(&fixture), - &fixture.clone(), - move |b, ref param| { - let input = &(*param).clone(); - b.iter_batched( - || Lookup::try_from(input.clone()).unwrap(), - |input| serde_json::to_string(&input), - BatchSize::SmallInput, - ) - }, - ); - } - group_serialize.finish(); - - let mut group_deserialize = c.benchmark_group("deserialize"); - // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 - for (_path, fixture) in fixtures.iter() { - group_deserialize.throughput(Throughput::Bytes(fixture.clone().into_bytes().len() as u64)); - group_deserialize.bench_with_input( - BenchmarkId::from_parameter(&fixture), - &fixture.clone(), - move |b, ref param| { - let input = &(*param).clone(); - b.iter_batched( - || serde_json::to_string(&Lookup::try_from(input.clone()).unwrap()).unwrap(), - |input| serde_json::from_str::(&input).unwrap(), - BatchSize::SmallInput, - ) - }, - ); - } - group_deserialize.finish(); -} - -criterion_group!( - name = benches; - // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 - config = Criterion::default().noise_threshold(0.05); - targets = lookup_to_string -); diff --git a/benches/lua.rs b/benches/lua.rs index bc702ee2b4a9c..0d8a409d8acef 100644 --- a/benches/lua.rs +++ b/benches/lua.rs @@ -1,51 +1,50 @@ +use std::pin::Pin; + use criterion::{criterion_group, BatchSize, Criterion, Throughput}; use futures::{stream, SinkExt, Stream, StreamExt}; -use indexmap::IndexMap; -use std::pin::Pin; +use indoc::indoc; use transforms::lua::v2::LuaConfig; use vector::{ - config::TransformConfig, - test_util::{collect_ready, runtime}, - transforms::{self, Transform}, - Event, + event::{Event, LogEvent}, + test_util::collect_ready, + transforms::{self, OutputBuffer, Transform}, }; +use vrl::event_path; fn bench_add_fields(c: &mut Criterion) { - let event = Event::new_empty_log(); + let event = Event::from(LogEvent::default()); - let key = "the key"; + let key = "the_key"; let value = "this is the value"; - let mut group = c.benchmark_group("lua_add_fields"); + let mut group = c.benchmark_group("lua/add_fields"); group.throughput(Throughput::Elements(1)); let benchmarks: Vec<(&str, Transform)> = vec![ - ("native", { - let mut map = IndexMap::new(); - map.insert(String::from(key), value.to_owned().into()); - Transform::function(transforms::add_fields::AddFields::new(map, true).unwrap()) - }), ("v1", { let source = format!("event['{}'] = '{}'", key, value); - Transform::task(transforms::lua::v1::Lua::new(source, vec![]).unwrap()) + Transform::event_task(transforms::lua::v1::Lua::new(source, vec![]).unwrap()) }), ("v2", { let config = format!( - r#" -hooks.process = """ -function (event, emit) -event.log['{}'] = '{}' - -emit(event) -end -""" -"#, + indoc! {r#" + hooks.process = """ + function (event, emit) + event.log['{}'] = '{}' + + emit(event) + end + """ + "#}, key, value ); - Transform::task( - transforms::lua::v2::Lua::new(&toml::from_str::(&config).unwrap()) - .unwrap(), + Transform::event_task( + transforms::lua::v2::Lua::new( + &toml::from_str::(&config).unwrap(), + "transform".into(), + ) + .unwrap(), ) }), ]; @@ -57,12 +56,15 @@ end Transform::Function(t) => { let mut t = t.clone(); Box::pin(rx.flat_map(move |v| { - let mut buf = Vec::with_capacity(1); + let mut buf = OutputBuffer::with_capacity(1); t.transform(&mut buf, v); - stream::iter(buf.into_iter()) + stream::iter(buf.into_events()) })) } - Transform::Task(t) => t.transform(Box::pin(rx)), + Transform::Synchronous(_t) => { + unreachable!("no sync transform used in these benches"); + } + Transform::Task(t) => t.transform_events(Box::pin(rx)), }; group.bench_function(name.to_owned(), |b| { @@ -88,50 +90,38 @@ fn bench_field_filter(c: &mut Criterion) { let num_events = 10; let events = (0..num_events) .map(|i| { - let mut event = Event::new_empty_log(); - event.as_mut_log().insert("the_field", (i % 10).to_string()); - event + let mut event = LogEvent::default(); + event.insert(event_path!("the_field"), (i % 10).to_string()); + Event::from(event) }) .collect::>(); - let mut group = c.benchmark_group("lua_field_filter"); + let mut group = c.benchmark_group("lua/field_filter"); group.throughput(Throughput::Elements(num_events)); let benchmarks: Vec<(&str, Transform)> = vec![ - ("native", { - let mut rt = runtime(); - rt.block_on(async move { - transforms::field_filter::FieldFilterConfig { - field: "the_field".to_string(), - value: "0".to_string(), - } - .build() - .await - .unwrap() - }) - }), ("v1", { - let source = String::from( - r#" -if event["the_field"] ~= "0" then - event = nil -end -"#, - ); - Transform::task(transforms::lua::v1::Lua::new(source, vec![]).unwrap()) + let source = String::from(indoc! {r#" + if event["the_field"] ~= "0" then + event = nil + end + "#}); + Transform::event_task(transforms::lua::v1::Lua::new(source, vec![]).unwrap()) }), ("v2", { - let config = r#" -hooks.process = """ -function (event, emit) - if event.log["the_field"] == "0" then - emit(event) - end -end -""" -"#; - Transform::task( - transforms::lua::v2::Lua::new(&toml::from_str(config).unwrap()).unwrap(), + let config = indoc! {r#" + hooks.process = """ + function (event, emit) + if event.log["the_field"] ~= "0" then + event = nil + end + emit(event) + end + """ + "#}; + Transform::event_task( + transforms::lua::v2::Lua::new(&toml::from_str(config).unwrap(), "transform".into()) + .unwrap(), ) }), ]; @@ -143,12 +133,15 @@ end Transform::Function(t) => { let mut t = t.clone(); Box::pin(rx.flat_map(move |v| { - let mut buf = Vec::with_capacity(1); + let mut buf = OutputBuffer::with_capacity(1); t.transform(&mut buf, v); - stream::iter(buf.into_iter()) + stream::iter(buf.into_events()) })) } - Transform::Task(t) => t.transform(Box::pin(rx)), + Transform::Synchronous(_t) => { + unreachable!("no sync transform used in these benches"); + } + Transform::Task(t) => t.transform_events(Box::pin(rx)), }; group.bench_function(name.to_owned(), |b| { @@ -178,7 +171,7 @@ end criterion_group!( name = benches; // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 + // https://github.com/vectordotdev/vector/issues/5394 config = Criterion::default().noise_threshold(0.05); targets = bench_add_fields, bench_field_filter ); diff --git a/benches/metrics_bench_util/mod.rs b/benches/metrics_bench_util/mod.rs deleted file mode 100644 index 9ea56b287edc0..0000000000000 --- a/benches/metrics_bench_util/mod.rs +++ /dev/null @@ -1,297 +0,0 @@ -//! This mod contains the benchmarks for metrics. -//! Due to how metrics are set up, we need isolated process environments to -//! test with metrics core on and off, so the implementation is shared but has -//! two separate entrypoits. -//! -//! # Usage -//! -//! To run these benches, use the following commands: -//! -//! cargo bench --no-default-features --features "metrics-benches" --bench metrics_on -//! cargo bench --no-default-features --features "metrics-benches" --bench metrics_off -//! -//! These will run benches with metrics core system on and off respectively. - -use criterion::{BatchSize, BenchmarkId, Criterion, SamplingMode, Throughput}; -use futures::{future, stream, StreamExt}; -use metrics::counter; -use tracing::{span, Level}; -use vector::{ - config, sinks, sources, - test_util::{ - next_addr, random_lines, runtime, send_lines, start_topology, wait_for_tcp, CountReceiver, - }, -}; - -#[inline] -fn disable_metrics() { - std::env::set_var("DISABLE_INTERNAL_METRICS_CORE", "true"); -} - -#[inline] -fn disable_metrics_tracing_integration() { - std::env::set_var("DISABLE_INTERNAL_METRICS_TRACING_INTEGRATION", "true"); -} - -#[inline] -fn boot() { - vector::trace::init(false, false, "warn"); - vector::metrics::init().expect("metrics initialization failed"); -} - -#[allow(dead_code)] // condition compilation -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub enum Mode { - MetricsOff, - MetricsNoTracingIntegration, - MetricsOn, -} - -impl Mode { - fn as_str(&self) -> &'static str { - match self { - Mode::MetricsOff => "metrics_off", - Mode::MetricsNoTracingIntegration => "metrics_no_tracing_integration", - Mode::MetricsOn => "metrics_on", - } - } -} - -/// Due to the nature of how metrics and tracing systems are set up, we need -/// separate process spaces to measure with and without them being enabled. -#[inline] -pub fn benchmark(c: &mut Criterion, mode: Mode) { - match mode { - Mode::MetricsOff => { - disable_metrics(); - disable_metrics_tracing_integration(); - } - Mode::MetricsNoTracingIntegration => { - disable_metrics_tracing_integration(); - } - Mode::MetricsOn => {} - } - boot(); - let metrics_core_enabled = mode != Mode::MetricsOff; - assert_eq!( - vector::metrics::get_controller().is_ok(), - metrics_core_enabled, - "the presence of a controller must correspond to whether metrics core is on or off" - ); - - let bench_name = mode.as_str(); - - bench_topology(c, bench_name); - bench_micro(c, bench_name); -} - -/// Based on the topology benchmarks. -/// I'm pretty sure criterion used incorrectly here - the bench loop taps into -/// networking - this must not be working right, as criterion assumptions about -/// the benchmark loop iteration payload are broken here. -#[inline] -fn bench_topology(c: &mut Criterion, bench_name: &'static str) { - let num_lines: usize = 10_000; - let line_size: usize = 100; - - let in_addr = next_addr(); - let out_addr = next_addr(); - - let mut group = c.benchmark_group(format!("{}/{}", bench_name, "topology")); - group.sampling_mode(SamplingMode::Flat); - // Encapsulate noise seen in - // https://github.com/timberio/vector/runs/1746002475 - group.noise_threshold(0.10); - - for &num_writers in [1, 2, 4, 8, 16].iter() { - group.throughput(Throughput::Bytes( - (num_lines * line_size * num_writers) as u64, - )); - group.bench_with_input( - BenchmarkId::new( - "tcp_socket", - format!( - "{:02}_{}", - num_writers, - if num_writers == 1 { - "writer" - } else { - "writers" - } - ), - ), - &num_writers, - |b, &num_writers| { - b.iter_batched( - || { - let input_lines: Vec> = (0..num_writers) - .into_iter() - .map(|_| random_lines(line_size).take(num_lines).collect()) - .collect(); - - let mut config = config::Config::builder(); - config.add_source( - "in", - sources::socket::SocketConfig::make_basic_tcp_config(in_addr), - ); - config.add_sink( - "out", - &["in"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr.to_string(), - ), - ); - - let mut rt = runtime(); - let (output_lines, topology) = rt.block_on(async move { - let output_lines = CountReceiver::receive_lines(out_addr); - let (topology, _crash) = - start_topology(config.build().unwrap(), false).await; - wait_for_tcp(in_addr).await; - (output_lines, topology) - }); - - (input_lines, rt, topology, output_lines) - }, - |(input_lines, mut rt, topology, output_lines)| { - rt.block_on(async move { - let sends = stream::iter(input_lines) - .map(|lines| send_lines(in_addr, lines)) - .collect::>() - .await; - future::try_join_all(sends).await.unwrap(); - - topology.stop().await; - - let output_lines = output_lines.await; - - debug_assert_eq!(num_lines * num_writers, output_lines.len()); - - output_lines - }); - }, - BatchSize::PerIteration, - ); - }, - ); - } - - group.finish(); -} - -/// Here we perform some microbenchmarks on the metrics. -#[inline] -fn bench_micro(c: &mut Criterion, bench_name: &'static str) { - let mut group = c.benchmark_group(format!("{}/{}", bench_name, "micro")); - // https://github.com/timberio/vector/runs/1746002475 - group.noise_threshold(0.05); - group.bench_function("bare_counter", |b| { - b.iter(|| { - counter!("test", 1); - }); - }); - group.bench_function("bare_counter_with_static_labels", |b| { - b.iter(|| { - counter!("test", 1, "my key" => "my value"); - }); - }); - group.bench_function("bare_counter_with_dynamic_labels", |b| { - b.iter_batched( - || "my value".to_owned(), - |my_value| { - counter!("test", 1, "my key" => my_value); - }, - BatchSize::SmallInput, - ); - }); - // A span that's not even entered. - group.bench_function("ununsed_span", |b| { - b.iter_batched_ref( - || span!(Level::ERROR, "my span"), - |_span| { - counter!("test", 1); - }, - BatchSize::SmallInput, - ); - }); - // A span that's entered but without a counter invocation. - group.bench_function("span_enter_without_counter", |b| { - b.iter_batched_ref( - || span!(Level::ERROR, "my span"), - |span| { - let _enter = span.enter(); - }, - BatchSize::SmallInput, - ); - }); - group.bench_function("span_no_labels", |b| { - b.iter_batched_ref( - || span!(Level::ERROR, "my span"), - |span| { - let _enter = span.enter(); - counter!("test", 1); - }, - BatchSize::SmallInput, - ); - }); - group.bench_function("span_with_1_static_label", |b| { - b.iter_batched_ref( - || span!(Level::ERROR, "my span", "my key" = "my value"), - |span| { - let _enter = span.enter(); - counter!("test", 1); - }, - BatchSize::SmallInput, - ); - }); - group.bench_function("span_with_2_static_labels", |b| { - b.iter_batched_ref( - || { - span!( - Level::ERROR, - "my span", - "my key 1" = "my value 1", - "my key 2" = "my value 2" - ) - }, - |span| { - let _enter = span.enter(); - counter!("test", 1); - }, - BatchSize::SmallInput, - ); - }); - group.bench_function("span_with_1_dynamic_label", |b| { - b.iter_batched_ref( - || { - let my_value = "my value".to_owned(); - span!(Level::ERROR, "my span", "my key" = %my_value) - }, - |span| { - let _enter = span.enter(); - counter!("test", 1); - }, - BatchSize::SmallInput, - ); - }); - group.bench_function("span_with_2_dynamic_labels", |b| { - b.iter_batched_ref( - || { - let my_value_1 = "my value 1".to_owned(); - let my_value_2 = "my value 2".to_owned(); - span!( - Level::ERROR, - "my span", - "my key 1" = %my_value_1, - "my key 2" = %my_value_2 - ) - }, - |span| { - let _enter = span.enter(); - counter!("test", 1); - }, - BatchSize::SmallInput, - ); - }); - group.finish(); -} diff --git a/benches/metrics_no_tracing_integration.rs b/benches/metrics_no_tracing_integration.rs deleted file mode 100644 index cd81a66bf38e8..0000000000000 --- a/benches/metrics_no_tracing_integration.rs +++ /dev/null @@ -1,10 +0,0 @@ -use criterion::{criterion_group, criterion_main, Criterion}; - -mod metrics_bench_util; - -fn benchmark(c: &mut Criterion) { - metrics_bench_util::benchmark(c, metrics_bench_util::Mode::MetricsNoTracingIntegration) -} - -criterion_group!(benches, benchmark); -criterion_main!(benches); diff --git a/benches/metrics_off.rs b/benches/metrics_off.rs deleted file mode 100644 index 8edd94a069a18..0000000000000 --- a/benches/metrics_off.rs +++ /dev/null @@ -1,10 +0,0 @@ -use criterion::{criterion_group, criterion_main, Criterion}; - -mod metrics_bench_util; - -fn benchmark(c: &mut Criterion) { - metrics_bench_util::benchmark(c, metrics_bench_util::Mode::MetricsOff) -} - -criterion_group!(benches, benchmark); -criterion_main!(benches); diff --git a/benches/metrics_on.rs b/benches/metrics_on.rs deleted file mode 100644 index a5c5a454b7e50..0000000000000 --- a/benches/metrics_on.rs +++ /dev/null @@ -1,10 +0,0 @@ -use criterion::{criterion_group, criterion_main, Criterion}; - -mod metrics_bench_util; - -fn benchmark(c: &mut Criterion) { - metrics_bench_util::benchmark(c, metrics_bench_util::Mode::MetricsOn) -} - -criterion_group!(benches, benchmark); -criterion_main!(benches); diff --git a/benches/metrics_snapshot.rs b/benches/metrics_snapshot.rs index 0d4f7c3a3df65..bb59ccf65433c 100644 --- a/benches/metrics_snapshot.rs +++ b/benches/metrics_snapshot.rs @@ -1,8 +1,8 @@ -use criterion::{black_box, criterion_group, BenchmarkId, Criterion}; +use criterion::{criterion_group, BenchmarkId, Criterion}; fn benchmark(c: &mut Criterion) { let mut group = c.benchmark_group("metrics_snapshot"); - // https://github.com/timberio/vector/runs/1746002475 + // https://github.com/vectordotdev/vector/runs/1746002475 group.noise_threshold(0.02); for &cardinality in [0, 1, 10, 100, 1000, 10000].iter() { group.bench_with_input( @@ -10,11 +10,7 @@ fn benchmark(c: &mut Criterion) { &cardinality, |b, &cardinality| { let controller = prepare_metrics(cardinality); - b.iter(|| { - let iter = vector::metrics::capture_metrics(controller); - assert_cardinality_matches(&iter, cardinality); - iter - }); + b.iter(|| controller.capture_metrics()); }, ); } @@ -22,26 +18,15 @@ fn benchmark(c: &mut Criterion) { } fn prepare_metrics(cardinality: usize) -> &'static vector::metrics::Controller { - let _ = vector::metrics::init(); - let controller = vector::metrics::get_controller().unwrap(); - vector::metrics::reset(controller); + vector::metrics::init_test(); + let controller = vector::metrics::Controller::get().unwrap(); + controller.reset(); for idx in 0..cardinality { - metrics::counter!("test", 1, "idx" => format!("{}", idx)); + metrics::counter!("test", 1, "idx" => idx.to_string()); } - assert_cardinality_matches(&vector::metrics::capture_metrics(controller), cardinality); - controller } -/// This call has negligible (and cosistent) performance compared to the rest -/// of the benches, however it performs the assertion over the data, effectively -/// acting as an implicit blackbox. -fn assert_cardinality_matches(iter: &impl Iterator, cardinality: usize) { - let iter = black_box(iter); - assert_eq!(iter.size_hint().0, cardinality); - assert_eq!(iter.size_hint().1.unwrap(), cardinality); -} - criterion_group!(benches, benchmark); diff --git a/benches/regex.rs b/benches/regex.rs deleted file mode 100644 index 0ac55d4a02313..0000000000000 --- a/benches/regex.rs +++ /dev/null @@ -1,83 +0,0 @@ -use criterion::{criterion_group, BatchSize, Criterion, Throughput}; - -use rand::{rngs::SmallRng, thread_rng, Rng, SeedableRng}; -use rand_distr::{Alphanumeric, Distribution, Uniform}; - -use vector::{config::TransformConfig, event::Event, test_util::runtime, transforms}; - -fn benchmark_regex(c: &mut Criterion) { - let lines: Vec = http_access_log_lines().take(10).collect(); - - let mut group = c.benchmark_group("regex"); - group.throughput(Throughput::Bytes( - lines.iter().fold(0, |sum, l| sum + l.len()) as u64, - )); - - let input: Vec = lines.into_iter().map(|l| l.into()).collect(); - - group.bench_function("regex", |b| { - let mut rt = runtime(); - - let mut parser = rt.block_on(async move { - transforms::regex_parser::RegexParserConfig { - // many captures to stress the regex parser - patterns: vec![r#"^(?P\d+\.\d+\.\d+\.\d+) (?P\S+) (?P\S+) \[(?P\d+/[A-Za-z]+/\d+:\d+:\d+:\d+ [+-]\d{4})\] "(?P[A-Z]+) (?P[^"]+) HTTP/\d\.\d" (?P\d+) (?P\d+) "(?P[^"]+)" "(?P[^"]+)""#.into()], - field: None, - drop_failed: true, - ..Default::default() - } - .build() - .await - .unwrap().into_function() - }); - - b.iter_batched( - || { - (input.clone(), Vec::with_capacity(input.len())) - }, - |(events, mut output)| { - let event_count = events.len(); - - events.into_iter().for_each(|event| parser.transform(&mut output, event)); - - debug_assert_eq!(output.len(), event_count); - - output - }, - BatchSize::SmallInput, - ); - }); - - group.finish(); -} - -fn http_access_log_lines() -> impl Iterator { - let mut rng = SmallRng::from_rng(thread_rng()).unwrap(); - let code = Uniform::from(200..600); - let year = Uniform::from(2010..2020); - let mday = Uniform::from(1..32); - let hour = Uniform::from(0..24); - let minsec = Uniform::from(0..60); - let size = Uniform::from(10..60); // FIXME - - std::iter::repeat(()).map(move |_| { - let url_size = size.sample(&mut rng); - let browser_size = size.sample(&mut rng); - format!("{}.{}.{}.{} - - [{}/Jun/{}:{}:{}:{} -0400] \"GET /{} HTTP/1.1\" {} {} \"-\" \"Mozilla/5.0 ({})\"", - rng.gen::(), rng.gen::(), rng.gen::(), rng.gen::(), // IP - year.sample(&mut rng), mday.sample(&mut rng), // date - hour.sample(&mut rng), minsec.sample(&mut rng), minsec.sample(&mut rng), // time - (&mut rng).sample_iter(&Alphanumeric).take(url_size).map(char::from).collect::(), // URL - code.sample(&mut rng), size.sample(&mut rng), - (&mut rng).sample_iter(&Alphanumeric).take(browser_size).map(char::from).collect::(), - ) - }) -} - -criterion_group!( - name = benches; - // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 - config = Criterion::default().noise_threshold(0.07); - targets = benchmark_regex -); diff --git a/benches/remap.rs b/benches/remap.rs index e30d02319cba9..5eedd24445e84 100644 --- a/benches/remap.rs +++ b/benches/remap.rs @@ -1,106 +1,83 @@ +use std::collections::HashMap; + use chrono::{DateTime, Utc}; use criterion::{criterion_group, criterion_main, BatchSize, Criterion}; -use indexmap::IndexMap; -use vector::transforms::{ - add_fields::AddFields, - coercer::CoercerConfig, - json_parser::{JsonParser, JsonParserConfig}, - remap::{Remap, RemapConfig}, - FunctionTransform, -}; use vector::{ - config::TransformConfig, - event::{Event, Value}, - test_util::runtime, + config::{DataType, TransformOutput}, + event::{Event, LogEvent, Value}, + transforms::{ + remap::{Remap, RemapConfig}, + SyncTransform, TransformOutputsBuf, + }, }; +use vrl::event_path; use vrl::prelude::*; criterion_group!( name = benches; // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 + // https://github.com/vectordotdev/vector/issues/5394 config = Criterion::default().noise_threshold(0.02); - targets = benchmark_remap, upcase, downcase, parse_json + targets = benchmark_remap ); criterion_main!(benches); -bench_function! { - upcase => vrl_stdlib::Upcase; - - literal_value { - args: func_args![value: "foo"], - want: Ok("FOO") - } -} - -bench_function! { - downcase => vrl_stdlib::Downcase; - - literal_value { - args: func_args![value: "FOO"], - want: Ok("foo") - } -} - -bench_function! { - parse_json => vrl_stdlib::ParseJson; - - literal_value { - args: func_args![value: r#"{"key": "value"}"#], - want: Ok(value!({"key": "value"})), - } -} - fn benchmark_remap(c: &mut Criterion) { - let mut rt = runtime(); - let add_fields_runner = |tform: &mut Box, event: Event| { - let mut result = Vec::with_capacity(1); - tform.transform(&mut result, event); - let output_1 = result[0].as_log(); + let mut group = c.benchmark_group("remap"); + + let add_fields_runner = |tform: &mut Box, event: Event| { + let mut outputs = TransformOutputsBuf::new_with_capacity( + vec![TransformOutput::new(DataType::all(), HashMap::new())], + 1, + ); + tform.transform(event, &mut outputs); + let result = outputs.take_primary(); + let output_1 = result.first().unwrap().as_log(); - debug_assert_eq!(output_1.get("foo").unwrap().to_string_lossy(), "bar"); - debug_assert_eq!(output_1.get("bar").unwrap().to_string_lossy(), "baz"); - debug_assert_eq!(output_1.get("copy").unwrap().to_string_lossy(), "buz"); + debug_assert_eq!( + output_1.get(event_path!("foo")).unwrap().to_string_lossy(), + "bar" + ); + debug_assert_eq!( + output_1.get(event_path!("bar")).unwrap().to_string_lossy(), + "baz" + ); + debug_assert_eq!( + output_1.get(event_path!("copy")).unwrap().to_string_lossy(), + "buz" + ); result }; - c.bench_function("remap: add fields with remap", |b| { - let mut tform: Box = Box::new( - Remap::new(RemapConfig { - source: r#".foo = "bar" - .bar = "baz" - .copy = string!(.copy_from)"# - .to_string(), - drop_on_err: true, - }) - .unwrap(), + group.bench_function("add_fields/remap", |b| { + let mut tform: Box = Box::new( + Remap::new_ast( + RemapConfig { + source: Some( + indoc! {r#".foo = "bar" + .bar = "baz" + .copy = string!(.copy_from) + "#} + .to_string(), + ), + file: None, + timezone: None, + drop_on_error: true, + drop_on_abort: true, + ..Default::default() + }, + &Default::default(), + ) + .unwrap() + .0, ); let event = { - let mut event = Event::from("augment me"); - event.as_mut_log().insert("copy_from", "buz".to_owned()); + let mut event = Event::Log(LogEvent::from("augment me")); event - }; - - b.iter_batched( - || event.clone(), - |event| add_fields_runner(&mut tform, event), - BatchSize::SmallInput, - ); - }); - - c.bench_function("remap: add fields with add_fields", |b| { - let mut fields = IndexMap::new(); - fields.insert("foo".into(), String::from("bar").into()); - fields.insert("bar".into(), String::from("baz").into()); - fields.insert("copy".into(), String::from("{{ copy_from }}").into()); - - let mut tform: Box = Box::new(AddFields::new(fields, true).unwrap()); - - let event = { - let mut event = Event::from("augment me"); - event.as_mut_log().insert("copy_from", "buz".to_owned()); + .as_mut_log() + .insert(event_path!("copy_from"), "buz".to_owned()); event }; @@ -111,58 +88,46 @@ fn benchmark_remap(c: &mut Criterion) { ); }); - let json_parser_runner = |tform: &mut Box, event: Event| { - let mut result = Vec::with_capacity(1); - tform.transform(&mut result, event); - let output_1 = result[0].as_log(); + let json_parser_runner = |tform: &mut Box, event: Event| { + let mut outputs = TransformOutputsBuf::new_with_capacity( + vec![TransformOutput::new(DataType::all(), HashMap::new())], + 1, + ); + tform.transform(event, &mut outputs); + let result = outputs.take_primary(); + let output_1 = result.first().unwrap().as_log(); debug_assert_eq!( - output_1.get("foo").unwrap().to_string_lossy(), + output_1.get(event_path!("foo")).unwrap().to_string_lossy(), r#"{"key": "value"}"# ); debug_assert_eq!( - output_1.get("bar").unwrap().to_string_lossy(), + output_1.get(event_path!("bar")).unwrap().to_string_lossy(), r#"{"key":"value"}"# ); result }; - c.bench_function("remap: parse JSON with remap", |b| { - let mut tform: Box = Box::new( - Remap::new(RemapConfig { - source: ".bar = parse_json!(string!(.foo))".to_owned(), - drop_on_err: false, - }) - .unwrap(), - ); - - let event = { - let mut event = Event::from("parse me"); - event - .as_mut_log() - .insert("foo", r#"{"key": "value"}"#.to_owned()); - event - }; - - b.iter_batched( - || event.clone(), - |event| json_parser_runner(&mut tform, event), - BatchSize::SmallInput, + group.bench_function("parse_json/remap", |b| { + let mut tform: Box = Box::new( + Remap::new_ast( + RemapConfig { + source: Some(".bar = parse_json!(string!(.foo))".to_owned()), + file: None, + timezone: None, + drop_on_error: true, + drop_on_abort: true, + ..Default::default() + }, + &Default::default(), + ) + .unwrap() + .0, ); - }); - - c.bench_function("remap: parse JSON with json_parser", |b| { - let mut tform: Box = Box::new(JsonParser::from(JsonParserConfig { - field: Some("foo".to_string()), - target_field: Some("bar".to_owned()), - drop_field: false, - drop_invalid: false, - overwrite_target: None, - })); let event = { - let mut event = Event::from("parse me"); + let mut event = Event::Log(LogEvent::from("parse me")); event .as_mut_log() .insert("foo", r#"{"key": "value"}"#.to_owned()); @@ -177,82 +142,57 @@ fn benchmark_remap(c: &mut Criterion) { }); let coerce_runner = - |tform: &mut Box, event: Event, timestamp: DateTime| { - let mut result = Vec::with_capacity(1); - tform.transform(&mut result, event); - let output_1 = result[0].as_log(); + |tform: &mut Box, event: Event, timestamp: DateTime| { + let mut outputs = TransformOutputsBuf::new_with_capacity( + vec![TransformOutput::new(DataType::all(), HashMap::new())], + 1, + ); + tform.transform(event, &mut outputs); + let result = outputs.take_primary(); + let output_1 = result.first().unwrap().as_log(); - debug_assert_eq!(output_1.get("number").unwrap(), &Value::Integer(1234)); - debug_assert_eq!(output_1.get("bool").unwrap(), &Value::Boolean(true)); debug_assert_eq!( - output_1.get("timestamp").unwrap(), + output_1.get(event_path!("number")).unwrap(), + &Value::Integer(1234) + ); + debug_assert_eq!( + output_1.get(event_path!("bool")).unwrap(), + &Value::Boolean(true) + ); + debug_assert_eq!( + output_1.get(event_path!("timestamp")).unwrap(), &Value::Timestamp(timestamp), ); result }; - c.bench_function("remap: coerce with remap", |b| { - let mut tform: Box = Box::new( - Remap::new(RemapConfig { - source: r#" - .number = to_int!(.number) - .bool = to_bool!(.bool) - .timestamp = parse_timestamp!(string!(.timestamp), format: "%d/%m/%Y:%H:%M:%S %z") - "# - .to_owned(), - drop_on_err: true, - }) - .unwrap(), - ); - - let mut event = Event::from("coerce me"); - for &(key, value) in &[ - ("number", "1234"), - ("bool", "yes"), - ("timestamp", "19/06/2019:17:20:49 -0400"), - ] { - event.as_mut_log().insert(key, value.to_owned()); - } - - let timestamp = - DateTime::parse_from_str("19/06/2019:17:20:49 -0400", "%d/%m/%Y:%H:%M:%S %z") - .unwrap() - .with_timezone(&Utc); - - b.iter_batched( - || event.clone(), - |event| coerce_runner(&mut tform, event, timestamp), - BatchSize::SmallInput, + group.bench_function("coerce/remap", |b| { + let mut tform: Box = Box::new( + Remap::new_ast(RemapConfig { + source: Some(indoc! {r#" + .number = to_int!(.number) + .bool = to_bool!(.bool) + .timestamp = parse_timestamp!(string!(.timestamp), format: "%d/%m/%Y:%H:%M:%S %z") + "#} + .to_owned()), + file: None, + timezone: None, + drop_on_error: true, + drop_on_abort: true, + ..Default::default() + }, &Default::default()) + .unwrap() + .0, ); - }); - - c.bench_function("remap: coerce with coercer", |b| { - let mut tform: Box = rt - .block_on(async move { - toml::from_str::( - r#"drop_unspecified = false - - [types] - number = "int" - bool = "bool" - timestamp = "timestamp|%d/%m/%Y:%H:%M:%S %z" - "#, - ) - .unwrap() - .build() - .await - .unwrap() - }) - .into_function(); - let mut event = Event::from("coerce me"); + let mut event = Event::Log(LogEvent::from("coerce me")); for &(key, value) in &[ ("number", "1234"), ("bool", "yes"), ("timestamp", "19/06/2019:17:20:49 -0400"), ] { - event.as_mut_log().insert(key, value.to_owned()); + event.as_mut_log().insert(event_path!(key), value.to_owned()); } let timestamp = diff --git a/benches/template.rs b/benches/template.rs index bdc73cd07b92e..008df426c98bc 100644 --- a/benches/template.rs +++ b/benches/template.rs @@ -1,21 +1,21 @@ -use criterion::{criterion_group, BatchSize, Criterion}; - -use chrono::Utc; use std::convert::TryFrom; -use vector::{config::log_schema, event::Event}; +use chrono::Utc; +use criterion::{criterion_group, BatchSize, Criterion}; +use vector::{config::log_schema, event::Event, event::LogEvent}; fn bench_elasticsearch_index(c: &mut Criterion) { use vector::template::Template; - let mut group = c.benchmark_group("elasticsearch_indexes"); + let mut group = c.benchmark_group("template"); group.bench_function("dynamic", |b| { let index = Template::try_from("index-%Y.%m.%d").unwrap(); - let mut event = Event::from("hello world"); - event - .as_mut_log() - .insert(log_schema().timestamp_key(), Utc::now()); + let mut event = Event::Log(LogEvent::from("hello world")); + event.as_mut_log().insert( + log_schema().timestamp_key_target_path().unwrap(), + Utc::now(), + ); b.iter_batched( || event.clone(), @@ -26,10 +26,11 @@ fn bench_elasticsearch_index(c: &mut Criterion) { group.bench_function("static", |b| { let index = Template::try_from("index").unwrap(); - let mut event = Event::from("hello world"); - event - .as_mut_log() - .insert(log_schema().timestamp_key(), Utc::now()); + let mut event = Event::Log(LogEvent::from("hello world")); + event.as_mut_log().insert( + log_schema().timestamp_key_target_path().unwrap(), + Utc::now(), + ); b.iter_batched( || event.clone(), @@ -44,7 +45,7 @@ fn bench_elasticsearch_index(c: &mut Criterion) { criterion_group!( name = benches; // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 + // https://github.com/vectordotdev/vector/issues/5394 config = Criterion::default().noise_threshold(0.20); targets = bench_elasticsearch_index ); diff --git a/benches/topology.rs b/benches/topology.rs deleted file mode 100644 index 389a211555f9f..0000000000000 --- a/benches/topology.rs +++ /dev/null @@ -1,805 +0,0 @@ -use criterion::{criterion_group, BatchSize, Criterion, SamplingMode, Throughput}; -use futures::{future, stream, StreamExt}; -use rand::{rngs::SmallRng, thread_rng, Rng, SeedableRng}; - -use vector::{ - config, sinks, sources, - test_util::{ - next_addr, random_lines, runtime, send_lines, start_topology, wait_for_tcp, CountReceiver, - }, - transforms, -}; - -fn benchmark_simple_pipes(c: &mut Criterion) { - let in_addr = next_addr(); - let out_addr = next_addr(); - - let mut group = c.benchmark_group("pipe"); - group.sampling_mode(SamplingMode::Flat); - - let benchmarks = [ - ("simple", 10_000, 100, 1), - ("small_lines", 10_000, 1, 1), - ("big_lines", 2_000, 10_000, 1), - ("multiple_writers", 1_000, 100, 10), - ]; - - for (name, num_lines, line_size, num_writers) in benchmarks.iter() { - group.throughput(Throughput::Bytes((num_lines * line_size) as u64)); - group.bench_function(format!("pipe_{}", name), |b| { - b.iter_batched( - || { - let mut config = config::Config::builder(); - config.add_source( - "in", - sources::socket::SocketConfig::make_basic_tcp_config(in_addr), - ); - config.add_sink( - "out", - &["in"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr.to_string(), - ), - ); - - let mut rt = runtime(); - let (output_lines, topology) = rt.block_on(async move { - let output_lines = CountReceiver::receive_lines(out_addr); - let (topology, _crash) = - start_topology(config.build().unwrap(), false).await; - wait_for_tcp(in_addr).await; - (output_lines, topology) - }); - (rt, topology, output_lines) - }, - |(mut rt, topology, output_lines)| { - rt.block_on(async move { - let sends = stream::iter(0..*num_writers) - .map(|_| { - let lines = random_lines(*line_size).take(*num_lines); - send_lines(in_addr, lines) - }) - .collect::>() - .await; - future::try_join_all(sends).await.unwrap(); - - topology.stop().await; - - let output_lines = output_lines.await; - - debug_assert_eq!(*num_lines * num_writers, output_lines.len()); - - output_lines - }); - }, - BatchSize::PerIteration, - ); - }); - } - - group.finish(); -} - -fn benchmark_interconnected(c: &mut Criterion) { - let num_lines: usize = 10_000; - let line_size: usize = 100; - - let in_addr1 = next_addr(); - let in_addr2 = next_addr(); - let out_addr1 = next_addr(); - let out_addr2 = next_addr(); - - let mut group = c.benchmark_group("interconnected"); - group.throughput(Throughput::Bytes((num_lines * line_size * 2) as u64)); - group.sampling_mode(SamplingMode::Flat); - - group.bench_function("interconnected", |b| { - b.iter_batched( - || { - let mut config = config::Config::builder(); - config.add_source( - "in1", - sources::socket::SocketConfig::make_basic_tcp_config(in_addr1), - ); - config.add_source( - "in2", - sources::socket::SocketConfig::make_basic_tcp_config(in_addr2), - ); - config.add_sink( - "out1", - &["in1", "in2"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config(out_addr1.to_string()), - ); - config.add_sink( - "out2", - &["in1", "in2"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config(out_addr2.to_string()), - ); - - let mut rt = runtime(); - let (output_lines1, output_lines2, topology) = rt.block_on(async move { - let output_lines1 = CountReceiver::receive_lines(out_addr1); - let output_lines2 = CountReceiver::receive_lines(out_addr2); - let (topology, _crash) = start_topology(config.build().unwrap(), false).await; - wait_for_tcp(in_addr1).await; - wait_for_tcp(in_addr2).await; - (output_lines1, output_lines2, topology) - }); - (rt, topology, output_lines1, output_lines2) - }, - |(mut rt, topology, output_lines1, output_lines2)| { - rt.block_on(async move { - let lines1 = random_lines(line_size).take(num_lines); - send_lines(in_addr1, lines1).await.unwrap(); - let lines2 = random_lines(line_size).take(num_lines); - send_lines(in_addr2, lines2).await.unwrap(); - - topology.stop().await; - - let output_lines1 = output_lines1.await; - let output_lines2 = output_lines2.await; - - debug_assert_eq!(num_lines * 2, output_lines1.len()); - debug_assert_eq!(num_lines * 2, output_lines2.len()); - - (output_lines1, output_lines2) - }); - }, - BatchSize::PerIteration, - ); - }); - - group.finish(); -} - -fn benchmark_transforms(c: &mut Criterion) { - let num_lines: usize = 10_000; - let line_size: usize = 100; - - let in_addr = next_addr(); - let out_addr = next_addr(); - - let mut group = c.benchmark_group("transforms"); - group.throughput(Throughput::Bytes( - (num_lines * (line_size + "status=404".len())) as u64, - )); - group.sampling_mode(SamplingMode::Flat); - - group.bench_function("transforms", |b| { - b.iter_batched( - || { - let mut config = config::Config::builder(); - config.add_source( - "in", - sources::socket::SocketConfig::make_basic_tcp_config(in_addr), - ); - config.add_transform( - "parser", - &["in"], - transforms::regex_parser::RegexParserConfig { - patterns: vec![r"status=(?P\d+)".to_string()], - field: None, - ..Default::default() - }, - ); - config.add_transform( - "filter", - &["parser"], - transforms::field_filter::FieldFilterConfig { - field: "status".to_string(), - value: "404".to_string(), - }, - ); - config.add_sink( - "out", - &["filter"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config(out_addr.to_string()), - ); - - let mut rt = runtime(); - let (output_lines, topology) = rt.block_on(async move { - let output_lines = CountReceiver::receive_lines(out_addr); - let (topology, _crash) = start_topology(config.build().unwrap(), false).await; - wait_for_tcp(in_addr).await; - (output_lines, topology) - }); - (rt, topology, output_lines) - }, - |(mut rt, topology, output_lines)| { - rt.block_on(async move { - let lines = random_lines(line_size) - .map(|l| l + "status=404") - .take(num_lines); - send_lines(in_addr, lines).await.unwrap(); - - topology.stop().await; - - let output_lines = output_lines.await; - - debug_assert_eq!(num_lines, output_lines.len()); - - output_lines - }); - }, - BatchSize::PerIteration, - ); - }); - - group.finish(); -} - -fn benchmark_complex(c: &mut Criterion) { - let num_lines: usize = 100_000; - let sample_rate: u64 = 10; - - let in_addr1 = next_addr(); - let in_addr2 = next_addr(); - let out_addr_all = next_addr(); - let out_addr_sampled = next_addr(); - let out_addr_200 = next_addr(); - let out_addr_404 = next_addr(); - let out_addr_500 = next_addr(); - - let mut group = c.benchmark_group("complex"); - group.sampling_mode(SamplingMode::Flat); - - group.bench_function("complex", |b| { - b.iter_batched( - || { - let mut config = config::Config::builder(); - config.add_source( - "in1", - sources::socket::SocketConfig::make_basic_tcp_config(in_addr1), - ); - config.add_source( - "in2", - sources::socket::SocketConfig::make_basic_tcp_config(in_addr2), - ); - config.add_transform( - "parser", - &["in1", "in2"], - transforms::regex_parser::RegexParserConfig { - patterns: vec![r"status=(?P\d+)".to_string()], - drop_field: false, - field: None, - ..Default::default() - }, - ); - config.add_transform( - "filter_200", - &["parser"], - transforms::field_filter::FieldFilterConfig { - field: "status".to_string(), - value: "200".to_string(), - }, - ); - config.add_transform( - "filter_404", - &["parser"], - transforms::field_filter::FieldFilterConfig { - field: "status".to_string(), - value: "404".to_string(), - }, - ); - config.add_transform( - "filter_500", - &["parser"], - transforms::field_filter::FieldFilterConfig { - field: "status".to_string(), - value: "500".to_string(), - }, - ); - config.add_transform( - "sample", - &["parser"], - transforms::sample::SampleConfig { - rate: sample_rate, - key_field: None, - exclude: None, - }, - ); - config.add_sink( - "out_all", - &["parser"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_all.to_string(), - ), - ); - config.add_sink( - "out_sampled", - &["sample"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_sampled.to_string(), - ), - ); - config.add_sink( - "out_200", - &["filter_200"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_200.to_string(), - ), - ); - config.add_sink( - "out_404", - &["filter_404"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_404.to_string(), - ), - ); - config.add_sink( - "out_500", - &["filter_500"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_500.to_string(), - ), - ); - - let mut rt = runtime(); - let ( - output_lines_all, - output_lines_sampled, - output_lines_200, - output_lines_404, - output_lines_500, - topology, - ) = rt.block_on(async move { - let output_lines_all = CountReceiver::receive_lines(out_addr_all); - let output_lines_sampled = CountReceiver::receive_lines(out_addr_sampled); - let output_lines_200 = CountReceiver::receive_lines(out_addr_200); - let output_lines_404 = CountReceiver::receive_lines(out_addr_404); - let output_lines_500 = CountReceiver::receive_lines(out_addr_500); - let (topology, _crash) = start_topology(config.build().unwrap(), false).await; - wait_for_tcp(in_addr1).await; - wait_for_tcp(in_addr2).await; - ( - output_lines_all, - output_lines_sampled, - output_lines_200, - output_lines_404, - output_lines_500, - topology, - ) - }); - ( - rt, - topology, - output_lines_all, - output_lines_sampled, - output_lines_200, - output_lines_404, - output_lines_500, - ) - }, - |( - mut rt, - topology, - output_lines_all, - output_lines_sampled, - output_lines_200, - output_lines_404, - output_lines_500, - )| { - rt.block_on(async move { - // One sender generates pure random lines - let lines1 = random_lines(100).take(num_lines); - send_lines(in_addr1, lines1).await.unwrap(); - - // The other includes either status=200 or status=404 - let mut rng = SmallRng::from_rng(thread_rng()).unwrap(); - let lines2 = random_lines(100) - .map(move |mut l| { - let status = if rng.gen_bool(0.5) { "200" } else { "404" }; - l += "status="; - l += status; - l - }) - .take(num_lines); - send_lines(in_addr2, lines2).await.unwrap(); - - topology.stop().await; - - let output_lines_all = output_lines_all.await.len(); - let output_lines_sampled = output_lines_sampled.await.len(); - let output_lines_200 = output_lines_200.await.len(); - let output_lines_404 = output_lines_404.await.len(); - let output_lines_500 = output_lines_500.await.len(); - - debug_assert_eq!(output_lines_all, num_lines * 2); - #[cfg(debug_assertions)] - { - use approx::assert_relative_eq; - - // binomial distribution - let sample_stdev = (output_lines_all as f64 - * (1f64 / sample_rate as f64) - * (1f64 - (1f64 / sample_rate as f64))) - .sqrt(); - - assert_relative_eq!( - output_lines_sampled as f64, - output_lines_all as f64 * (1f64 / sample_rate as f64), - epsilon = sample_stdev * 4f64 // should cover 99.993666% of cases - ); - } - debug_assert!(output_lines_200 > 0); - debug_assert!(output_lines_404 > 0); - debug_assert!(output_lines_500 == 0); - debug_assert_eq!(output_lines_200 + output_lines_404, num_lines); - - ( - output_lines_all, - output_lines_sampled, - output_lines_200, - output_lines_404, - output_lines_500, - ) - }); - }, - BatchSize::PerIteration, - ); - }); - - group.finish(); -} - -fn benchmark_real_world_1(c: &mut Criterion) { - let num_lines: usize = 100_000; - - let in_addr = next_addr(); - let out_addr_company_api = next_addr(); - let out_addr_company_admin = next_addr(); - let out_addr_company_media_proxy = next_addr(); - let out_addr_company_unfurler = next_addr(); - let out_addr_audit = next_addr(); - - let mut group = c.benchmark_group("real_world_1"); - group.sampling_mode(SamplingMode::Flat); - group.throughput(Throughput::Elements(num_lines as u64)); - group.bench_function("topology", |b| { - b.iter_batched( - || { - let mut config = config::Config::builder(); - config.add_source( - "in", - sources::syslog::SyslogConfig::from_mode(sources::syslog::Mode::Tcp { - address: in_addr.into(), - keepalive: None, - tls: None, - receive_buffer_bytes: None, - }), - ); - - let toml_cfg = r##" -## -## company-api -## - -[transforms.company_api] -type = "field_filter" -inputs = ["in"] -field = "appname" -value = "company-api" - -[transforms.company_api_json] -type = "json_parser" -inputs = ["company_api"] -drop_invalid = true - -[transforms.company_api_timestamp] -type = "split" -inputs = ["company_api_json"] -field = "timestamp" -field_names = ["timestamp"] -separator = "." - -[transforms.company_api_timestamp.types] -timestamp = "timestamp|%s" - -[transforms.company_api_metadata] -type = "lua" -inputs = ["company_api_timestamp"] -source = """ -event["metadata_trace_id"] = event["metadata.trace_id"] -event["metadata_guild_id"] = event["metadata.guild_id"] -event["metadata_channel_id"] = event["metadata.channel_id"] -event["metadata_method"] = event["metadata.method"] -""" - -[transforms.company_api_rename] -type = "rename_fields" -inputs = ["company_api_metadata"] - -[transforms.company_api_rename.fields] -timestamp = "time" -host = "hostname" -# "metadata.trace_id" = "metadata_trace_id" -# "metadata.guild_id" = "metadata_guild_id" -# "metadata.channel_id" = "metadata_channel_id" -# "metadata.method" = "metadata_method" - -## -## company-admin -## - -[transforms.company_admin] -type = "field_filter" -inputs = ["in"] -field = "appname" -value = "company-admin" - -[transforms.company_admin_json] -type = "json_parser" -inputs = ["company_admin"] -drop_invalid = true - -[transforms.company_admin_timestamp] -type = "split" -inputs = ["company_admin_json"] -field = "timestamp" -field_names = ["timestamp"] -separator = "." - -[transforms.company_admin_timestamp.types] -timestamp = "timestamp|%s" - -[transforms.company_admin_metadata] -type = "lua" -inputs = ["company_admin_timestamp"] -source = """ -event["metadata_trace_id"] = event["metadata.trace_id"] -event["metadata_method"] = event["metadata.method"] -""" - -[transforms.company_admin_rename] -type = "rename_fields" -inputs = ["company_admin_metadata"] - -[transforms.company_admin_rename.fields] -timestamp = "time" -host = "hostname" -# "metadata.trace_id" = "metadata_trace_id" -# "metadata.method" = "metadata_method" - -## -## company-media-proxy -## - -[transforms.company_media_proxy] -type = "field_filter" -inputs = ["in"] -field = "appname" -value = "company-media-proxy" - -[transforms.company_media_proxy_json] -type = "json_parser" -inputs = ["company_media_proxy"] -drop_invalid = true - -[transforms.company_media_proxy_timestamp] -type = "split" -inputs = ["company_media_proxy_json"] -field = "ts" -field_names = ["ts"] -separator = "." - -[transforms.company_media_proxy_timestamp.types] -ts = "timestamp|%s" - -[transforms.company_media_proxy_rename] -type = "rename_fields" -inputs = ["company_media_proxy_timestamp"] - -[transforms.company_media_proxy_rename.fields] -ts = "time" -host = "hostname" - -## -## company-unfurler -## - -[transforms.company_unfurler] -type = "field_filter" -inputs = ["in"] -field = "appname" -value = "company-unfurler" - -[transforms.company_unfurler_hostname] -type = "rename_fields" -inputs = ["company_unfurler"] - -[transforms.company_unfurler_hostname.fields] -host = "hostname" - -[transforms.company_unfurler_json] -type = "json_parser" -inputs = ["company_unfurler_hostname"] -drop_invalid = true - -[transforms.company_unfurler_timestamp] -type = "coercer" -inputs = ["company_unfurler_json"] - -[transforms.company_unfurler_timestamp.types] -ts = "timestamp" - -[transforms.company_unfurler_rename] -type = "rename_fields" -inputs = ["company_unfurler_timestamp"] - -[transforms.company_unfurler_rename.fields] -ts = "time" - -[transforms.company_unfurler_filter] -type = "field_filter" -inputs = ["company_unfurler_rename"] -field = "msg" -value = "unfurl" - -## -## audit -## - -[transforms.audit] -type = "field_filter" -inputs = ["in"] -field = "appname" -value = "audit" - -[transforms.audit_timestamp] -type = "coercer" -inputs = ["audit"] - -[transforms.audit_timestamp.types] -timestamp = "timestamp" - -[transforms.audit_rename] -type = "rename_fields" -inputs = ["audit_timestamp"] - -[transforms.audit_rename.fields] -appname = "tag" -host = "hostname" -message = "content" -timestamp = "time" -"##; - - let parsed = - config::format::deserialize(toml_cfg, Some(config::Format::TOML)).unwrap(); - config.append(parsed).unwrap(); - - config.add_sink( - "company_api_sink", - &["company_api_rename"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_company_api.to_string(), - ), - ); - config.add_sink( - "company_admin_sink", - &["company_admin_rename"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_company_admin.to_string(), - ), - ); - config.add_sink( - "company_media_proxy_sink", - &["company_media_proxy_rename"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_company_media_proxy.to_string(), - ), - ); - config.add_sink( - "company_unfurler_sink", - &["company_unfurler_filter"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_company_unfurler.to_string(), - ), - ); - config.add_sink( - "audit_sink", - &["audit_rename"], - sinks::socket::SocketSinkConfig::make_basic_tcp_config( - out_addr_audit.to_string(), - ), - ); - - let mut rt = runtime(); - let ( - output_lines_company_api, - output_lines_company_admin, - output_lines_company_media_proxy, - output_lines_company_unfurler, - output_lines_audit, - topology, - ) = rt.block_on(async move { - let output_lines_company_api = - CountReceiver::receive_lines(out_addr_company_api); - let output_lines_company_admin = - CountReceiver::receive_lines(out_addr_company_admin); - let output_lines_company_media_proxy = - CountReceiver::receive_lines(out_addr_company_media_proxy); - let output_lines_company_unfurler = - CountReceiver::receive_lines(out_addr_company_unfurler); - let output_lines_audit = CountReceiver::receive_lines(out_addr_audit); - - let (topology, _crash) = start_topology(config.build().unwrap(), false).await; - wait_for_tcp(in_addr).await; - ( - output_lines_company_api, - output_lines_company_admin, - output_lines_company_media_proxy, - output_lines_company_unfurler, - output_lines_audit, - topology, - ) - }); - // Generate the inputs. - let lines = [ - r#"<118>3 2020-03-13T20:45:38.119Z my.host.com company-api 2004 ID960 - {"metadata": {"trace_id": "trace123", "guide_id": "guild123", "channel_id": "channel123", "method": "method"}}"#, - r#"<118>3 2020-03-13T20:45:38.119Z my.host.com company-admin 2004 ID960 - {"metadata": {"trace_id": "trace123", "guide_id": "guild123", "channel_id": "channel123", "method": "method"}}"#, - r#"<118>3 2020-03-13T20:45:38.119Z my.host.com company-media-proxy 2004 ID960 - {"ts": "2020-03-13T20:45:38.119Z"}"#, - r#"<118>3 2020-03-13T20:45:38.119Z my.host.com company-unfurler 2004 ID960 - {"ts": "2020-03-13T20:45:38.119Z", "msg": "unfurl"}"#, - r#"<118>3 2020-03-13T20:45:38.119Z my.host.com audit 2004 ID960 - qwerty"#, - ].iter().cycle().take(num_lines).map(|&s| s.to_owned()).collect::>(); - ( - rt, - topology, - output_lines_company_api, - output_lines_company_admin, - output_lines_company_media_proxy, - output_lines_company_unfurler, - output_lines_audit, - lines, - ) - }, - |( - mut rt, - topology, - output_lines_company_api, - output_lines_company_admin, - output_lines_company_media_proxy, - output_lines_company_unfurler, - output_lines_audit, - lines, - )| { - rt.block_on(async move { - send_lines(in_addr, lines).await.unwrap(); - - topology.stop().await; - - let output_lines_company_api = output_lines_company_api.await.len(); - let output_lines_company_admin = output_lines_company_admin.await.len(); - let output_lines_company_media_proxy = - output_lines_company_media_proxy.await.len(); - let output_lines_company_unfurler = output_lines_company_unfurler.await.len(); - let output_lines_audit = output_lines_audit.await.len(); - - debug_assert!(output_lines_company_api > 0); - debug_assert!(output_lines_company_admin > 0); - debug_assert!(output_lines_company_media_proxy > 0); - debug_assert!(output_lines_company_unfurler > 0); - debug_assert!(output_lines_audit > 0); - - ( - output_lines_company_api, - output_lines_company_admin, - output_lines_company_media_proxy, - output_lines_company_unfurler, - output_lines_audit, - ) - }); - }, - BatchSize::PerIteration, - ); - }); - - group.finish(); -} - -criterion_group!( - name = benches; - // encapsulates CI noise we saw in - // https://github.com/timberio/vector/issues/5394 - config = Criterion::default().noise_threshold(0.20); - targets = benchmark_simple_pipes, benchmark_interconnected, benchmark_transforms, benchmark_complex, benchmark_real_world_1 -); diff --git a/benches/transform/common.rs b/benches/transform/common.rs new file mode 100644 index 0000000000000..1760c5e6a5537 --- /dev/null +++ b/benches/transform/common.rs @@ -0,0 +1,77 @@ +//! A common suite of structs, functions et al that are useful for the +//! benchmarking of vector transforms. +use std::{ + num::NonZeroUsize, + pin::Pin, + task::{Context, Poll}, +}; + +use futures::{task::noop_waker, Stream}; +use vector::event::{Event, LogEvent}; + +// == Streams == + +/// Consume a `Stream` and do nothing with the received Items, runs to +/// completion +pub fn consume(mut stream: Pin>>) { + let waker = noop_waker(); + let mut context = Context::from_waker(&waker); + + while let Poll::Ready(Some(_)) = stream.as_mut().poll_next(&mut context) {} +} + +// ==== FixedLogStream ==== + +/// A fixed size [`futures::stream::Stream`] of `Event::Log` instances. +#[derive(Debug, Clone)] +pub struct FixedLogStream { + events: Vec, +} + +impl FixedLogStream { + /// Create a new `FixedLogStream` with `total` unspecified `Event` instances + /// internal. `cycle_size` controls how often an `Event` will repeat. + /// + /// This constructor is useful for benchmarks where you do not care how the + /// `Event`s are shaped, only that they exist. + pub fn new(total: NonZeroUsize, cycle_size: NonZeroUsize) -> Self { + let mut events = Vec::with_capacity(total.get()); + let mut cycle = 0; + for _ in 0..total.get() { + events.push(Event::Log(LogEvent::from(format!("event{}", cycle)))); + cycle = (cycle + 1) % cycle_size; + } + Self::new_from_vec(events) + } + + /// Create a new `FixedLogStream` from an `Vec` + /// + /// This constructor is useful for benchmarks where you do care how the + /// `Event`s are shaped, that is, their specific details are relevant to the + /// measure you're trying to establish. + pub fn new_from_vec(events: Vec) -> Self { + FixedLogStream { events } + } + + /// Return the length of the fixed stream + /// + /// This function will return the length of the items remaining in the + /// stream. + pub fn len(&self) -> usize { + self.events.len() + } +} + +impl Stream for FixedLogStream { + type Item = Event; + + fn poll_next(self: Pin<&mut Self>, _ctx: &mut Context<'_>) -> Poll> { + let this = self.get_mut(); + + Poll::Ready(this.events.pop()) + } + + fn size_hint(&self) -> (usize, Option) { + (self.events.len(), Some(self.events.len())) + } +} diff --git a/benches/transform/dedupe.rs b/benches/transform/dedupe.rs new file mode 100644 index 0000000000000..5df5a5cf96ce4 --- /dev/null +++ b/benches/transform/dedupe.rs @@ -0,0 +1,124 @@ +use core::fmt; +use std::{num::NonZeroUsize, time::Duration}; + +use criterion::{ + criterion_group, measurement::WallTime, BatchSize, BenchmarkGroup, BenchmarkId, Criterion, + SamplingMode, Throughput, +}; +use vector::transforms::dedupe::{CacheConfig, Dedupe, DedupeConfig, FieldMatchConfig}; +use vector_lib::transform::Transform; + +use crate::common::{consume, FixedLogStream}; + +#[derive(Debug)] +struct Param { + slug: &'static str, + input: FixedLogStream, + dedupe_config: DedupeConfig, +} + +impl fmt::Display for Param { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.slug) + } +} + +fn dedupe(c: &mut Criterion) { + let mut group: BenchmarkGroup = + c.benchmark_group("vector::transforms::dedupe::Dedupe"); + group.sampling_mode(SamplingMode::Auto); + + let fixed_stream = FixedLogStream::new( + NonZeroUsize::new(128).unwrap(), + NonZeroUsize::new(2).unwrap(), + ); + let cache = CacheConfig { + num_events: NonZeroUsize::new(4).unwrap(), + }; + for param in &[ + // Measurement where field "message" is ignored. This field is + // automatically added by the LogEvent construction mechanism. + Param { + slug: "field_ignore_message", + input: fixed_stream.clone(), + dedupe_config: DedupeConfig { + fields: Some(FieldMatchConfig::IgnoreFields(vec!["message".into()])), + cache: cache.clone(), + }, + }, + // Modification of previous where field "message" is matched. + Param { + slug: "field_match_message", + input: fixed_stream.clone(), + dedupe_config: DedupeConfig { + fields: Some(FieldMatchConfig::MatchFields(vec!["message".into()])), + cache: cache.clone(), + }, + }, + // Measurement where ignore fields do not exist in the event. + Param { + slug: "field_ignore_done", + input: fixed_stream.clone(), + dedupe_config: DedupeConfig { + cache: cache.clone(), + fields: Some(FieldMatchConfig::IgnoreFields(vec![ + "abcde".into(), + "eabcd".into(), + "deabc".into(), + "cdeab".into(), + "bcdea".into(), + ])), + }, + }, + // Modification of previous where match fields do not exist in the + // event. + Param { + slug: "field_match_done", + input: fixed_stream.clone(), + dedupe_config: DedupeConfig { + cache, + fields: Some(FieldMatchConfig::MatchFields(vec![ + "abcde".into(), + "eabcd".into(), + "deabc".into(), + "cdeab".into(), + "bcdea".into(), + ])), + }, + }, + ] { + group.throughput(Throughput::Elements(param.input.len() as u64)); + group.bench_with_input(BenchmarkId::new("transform", param), ¶m, |b, param| { + b.iter_batched( + || { + let dedupe = + Transform::event_task(Dedupe::new(param.dedupe_config.clone())).into_task(); + (Box::new(dedupe), Box::pin(param.input.clone())) + }, + |(dedupe, input)| { + let output = dedupe.transform_events(input); + consume(output) + }, + BatchSize::SmallInput, + ) + }); + } +} + +criterion_group!( + name = benches; + config = Criterion::default() + .warm_up_time(Duration::from_secs(5)) + .measurement_time(Duration::from_secs(120)) + // degree of noise to ignore in measurements, here 1% + .noise_threshold(0.01) + // likelihood of noise registering as difference, here 5% + .significance_level(0.05) + // likelihood of capturing the true runtime, here 95% + .confidence_level(0.95) + // total number of bootstrap resamples, higher is less noisy but slower + .nresamples(100_000) + // total samples to collect within the set measurement time + .sample_size(150); + targets = dedupe +); diff --git a/benches/transform/filter.rs b/benches/transform/filter.rs new file mode 100644 index 0000000000000..c2e7b2f7222af --- /dev/null +++ b/benches/transform/filter.rs @@ -0,0 +1,87 @@ +use std::time::Duration; + +use criterion::{ + criterion_group, measurement::WallTime, BatchSize, BenchmarkGroup, Criterion, SamplingMode, + Throughput, +}; +use vector::{ + conditions::Condition, + transforms::{filter::Filter, FunctionTransform, OutputBuffer}, +}; +use vector_lib::event::{Event, LogEvent}; + +struct Payload { + filter: Filter, + output: OutputBuffer, + events: Vec, +} + +fn setup(total_events: usize, condition: Condition) -> Payload { + let filter = Filter::new(condition); + let output = OutputBuffer::from(Vec::with_capacity(total_events)); + let events = vec![Event::Log(LogEvent::default()); total_events]; + Payload { + filter, + output, + events, + } +} + +fn measurement(payload: Payload) { + let mut filter = payload.filter; + let mut output = payload.output; + let events = payload.events; + + for event in events { + filter.transform(&mut output, event) + } +} + +/// +/// `Filter::transform` benchmarks +/// +/// This benchmark examines the `transform` of `Filter`, demonstrating that its +/// performance is bounded entirely by that of the `Condition`. The two cases +/// below, `always_pass` and `always_fail` use `Condition::AlwaysPass` and +/// `Condition::AlwaysFail` as the interior condition of the filter. +/// +fn filter(c: &mut Criterion) { + let mut group: BenchmarkGroup = + c.benchmark_group("vector::transforms::filter::Filter"); + group.sampling_mode(SamplingMode::Auto); + + let total_events = 1024; // arbitrary constant, the smaller the noisier + group.throughput(Throughput::Elements(total_events as u64)); + group.bench_function("transform/always_fail", |b| { + b.iter_batched( + || setup(total_events, Condition::AlwaysFail), + measurement, + BatchSize::SmallInput, + ) + }); + group.bench_function("transform/always_pass", |b| { + b.iter_batched( + || setup(total_events, Condition::AlwaysPass), + measurement, + BatchSize::SmallInput, + ) + }); +} + +criterion_group!( + name = benches; + config = Criterion::default() + .warm_up_time(Duration::from_secs(10)) + .measurement_time(Duration::from_secs(180)) + // degree of noise to ignore in measurements, here 1% + .noise_threshold(0.01) + // likelihood of noise registering as difference, here 5% + .significance_level(0.05) + // likelihood of capturing the true runtime, here 95% + .confidence_level(0.95) + // total number of bootstrap resamples, higher is less noisy but slower + .nresamples(100_000) + // total samples to collect within the set measurement time + .sample_size(500); + targets = filter +); diff --git a/benches/transform/main.rs b/benches/transform/main.rs new file mode 100644 index 0000000000000..4c273fbff07f1 --- /dev/null +++ b/benches/transform/main.rs @@ -0,0 +1,14 @@ +use criterion::criterion_main; + +mod common; +mod dedupe; +mod filter; +mod reduce; +mod route; + +criterion_main!( + dedupe::benches, + filter::benches, + reduce::benches, + route::benches, +); diff --git a/benches/transform/reduce.rs b/benches/transform/reduce.rs new file mode 100644 index 0000000000000..9f0e4ed60fdd2 --- /dev/null +++ b/benches/transform/reduce.rs @@ -0,0 +1,93 @@ +use core::fmt; +use std::{num::NonZeroUsize, time::Duration}; + +use criterion::{ + criterion_group, measurement::WallTime, BatchSize, BenchmarkGroup, BenchmarkId, Criterion, + SamplingMode, Throughput, +}; +use indexmap::IndexMap; +use vector::transforms::reduce::{Reduce, ReduceConfig}; +use vector_lib::transform::Transform; + +use crate::common::{consume, FixedLogStream}; + +#[derive(Debug)] +struct Param { + slug: &'static str, + input: FixedLogStream, + reduce_config: ReduceConfig, +} + +impl fmt::Display for Param { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.slug,) + } +} + +fn reduce(c: &mut Criterion) { + let mut group: BenchmarkGroup = + c.benchmark_group("vector::transforms::reduce::Reduce"); + group.sampling_mode(SamplingMode::Auto); + + let fixed_stream = FixedLogStream::new( + NonZeroUsize::new(128).unwrap(), + NonZeroUsize::new(2).unwrap(), + ); + for param in &[ + // The `Reduce` transform has a high configuration surface. For now we + // only benchmark the "proof of concept" configuration, demonstrating + // that the benchmark does minimally work. Once we have soak tests with + // reduces in them we should extend this array to include those + // configurations. + Param { + slug: "proof_of_concept", + input: fixed_stream.clone(), + reduce_config: ReduceConfig { + expire_after_ms: Duration::from_secs(30), + flush_period_ms: Duration::from_secs(1), + group_by: vec![String::from("message")], + merge_strategies: IndexMap::default(), + ends_when: None, + starts_when: None, + max_events: None, + }, + }, + ] { + group.throughput(Throughput::Elements(param.input.len() as u64)); + group.bench_with_input(BenchmarkId::new("transform", param), ¶m, |b, param| { + b.to_async(tokio::runtime::Runtime::new().unwrap()) + .iter_batched( + || { + let reduce = Transform::event_task( + Reduce::new(¶m.reduce_config, &Default::default()).unwrap(), + ) + .into_task(); + (Box::new(reduce), Box::pin(param.input.clone())) + }, + |(reduce, input)| async { + let output = reduce.transform_events(input); + consume(output) + }, + BatchSize::SmallInput, + ) + }); + } +} + +criterion_group!( + name = benches; + config = Criterion::default() + .warm_up_time(Duration::from_secs(5)) + .measurement_time(Duration::from_secs(120)) + // degree of noise to ignore in measurements, here 1% + .noise_threshold(0.01) + // likelihood of noise registering as difference, here 5% + .significance_level(0.05) + // likelihood of capturing the true runtime, here 95% + .confidence_level(0.95) + // total number of bootstrap resamples, higher is less noisy but slower + .nresamples(100_000) + // total samples to collect within the set measurement time + .sample_size(150); + targets = reduce +); diff --git a/benches/transform/route.rs b/benches/transform/route.rs new file mode 100644 index 0000000000000..0ef6efa30b179 --- /dev/null +++ b/benches/transform/route.rs @@ -0,0 +1,186 @@ +use core::fmt; +use std::time::Duration; + +use bytes::Bytes; +use criterion::{ + black_box, criterion_group, measurement::WallTime, BatchSize, BenchmarkGroup, BenchmarkId, + Criterion, SamplingMode, Throughput, +}; +use vector::config::TransformContext; +use vector::transforms::{ + route::{Route, RouteConfig}, + TransformOutputsBuf, +}; +use vector_lib::{ + config::{DataType, TransformOutput}, + event::{Event, EventContainer, EventMetadata, LogEvent}, + transform::SyncTransform, +}; +use vrl::value::{ObjectMap, Value}; + +#[derive(Debug)] +struct Param { + slug: &'static str, + input: Event, + route_config: RouteConfig, + output_buffer: TransformOutputsBuf, +} + +impl fmt::Display for Param { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.slug) + } +} + +fn route(c: &mut Criterion) { + let mut group: BenchmarkGroup = c.benchmark_group("vector::transforms::route::Route"); + group.sampling_mode(SamplingMode::Auto); + + let mut fields = ObjectMap::new(); + for alpha in [ + "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", + "s", "t", "u", "v", "w", "x", "y", "z", + ] { + fields.insert(alpha.into(), Value::Bytes(Bytes::from(alpha))); + } + let event = Event::from(LogEvent::from_map(fields, EventMetadata::default())); + + let mut outputs = Vec::new(); + for name in [ + "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", + "s", "t", "u", "v", "w", "x", "y", "z", "aa", "ba", "ca", "da", "ea", "fa", "ga", "ha", + "ia", "ja", "ka", "al", "ma", "na", "oa", "pa", "qa", "ra", "sa", "ta", "ua", "va", "wa", + "xa", "ay", "za", "ba", "bb", "bc", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bk", "bl", + "bm", "bn", "bo", "bp", "bq", "br", "sb", "tb", "ub", "vb", "wb", "xb", "yb", "zb", "aba", + "bba", "bbca", "dba", "bea", "fba", "gba", "hba", "iba", "jba", "bka", "bal", "bma", "bna", + "boa", "bpa", "bqa", "bra", "bsa", "bta", "bua", "bva", "bwa", "xba", "aby", "zba", + ] { + outputs.push(TransformOutput { + port: Some(String::from(name)), + ty: DataType::Log, + log_schema_definitions: Default::default(), + }); + } + let output_buffer: TransformOutputsBuf = TransformOutputsBuf::new_with_capacity(outputs, 10); + + for param in &[ + // A small filter where a sole field is mapped into a named route, + // matches. + Param { + slug: "vrl_field_match", + input: event.clone(), + route_config: toml::from_str::( + r#" + route.a.type = "vrl" + route.a.source = '.a == "aaa"' + "#, + ) + .unwrap(), + output_buffer: output_buffer.clone(), + }, + // A small filter where a sole field is mapped into a named route, does + // not match. + Param { + slug: "vrl_field_not_match", + input: event.clone(), + route_config: toml::from_str::( + r#" + route.a.type = "vrl" + route.a.source = '.a == "aaaaaaa"' + "#, + ) + .unwrap(), + output_buffer: output_buffer.clone(), + }, + // A larger filter where many fields are mapped, some multiple times, + // into named filters. A mixture of match and not match happens. + Param { + slug: "vrl_field_match_many", + input: event.clone(), + route_config: toml::from_str::( + r#" + route.a.type = "vrl" + route.a.source = '.a == "aaaaaaa"' + + route.b.type = "vrl" + route.b.source = '.b == "b"' + + route.c.type = "vrl" + route.c.source = '.c == "cccc"' + + route.d.type = "vrl" + route.d.source = '.d == "d"' + + route.e.type = "vrl" + route.e.source = '.d == "d"' + + route.f.type = "vrl" + route.f.source = '.e == "eeeeeeeeee"' + + route.g.type = "vrl" + route.g.source = '.f == "f"' + + route.h.type = "vrl" + route.h.source = '.f == "qq"' + + route.i.type = "vrl" + route.i.source = '.f == "fx"' + + route.j.type = "vrl" + route.j.source = '.f == "lf"' + + route.k.type = "vrl" + route.k.source = '.f == "fpioalkjasdf"' + + route.l.type = "vrl" + route.l.source = '.f == "lkjiouasodifjlkjasdfoiuf"' + + route.m.type = "vrl" + route.m.source = '.f == "aaaaf"' + + route.n.type = "vrl" + route.n.source = '.f == "0124"' + + route.ay.type = "vrl" + route.ay.source = '.a == "0_0"' + "#, + ) + .unwrap(), + output_buffer: output_buffer.clone(), + }, + ] { + group.throughput(Throughput::Elements(param.input.len() as u64)); + group.bench_with_input(BenchmarkId::new("transform", param), ¶m, |b, param| { + b.iter_batched( + || { + let route = + Route::new(¶m.route_config.clone(), &TransformContext::default()) + .unwrap(); + (route, param.input.clone(), param.output_buffer.clone()) + }, + |(mut route, input, mut output_buffer)| { + black_box(route.transform(input, &mut output_buffer)); + }, + BatchSize::SmallInput, + ) + }); + } +} + +criterion_group!( + name = benches; + config = Criterion::default() + .warm_up_time(Duration::from_secs(5)) + .measurement_time(Duration::from_secs(120)) + // degree of noise to ignore in measurements, here 1% + .noise_threshold(0.01) + // likelihood of noise registering as difference, here 5% + .significance_level(0.05) + // likelihood of capturing the true runtime, here 95% + .confidence_level(0.95) + // total number of bootstrap resamples, higher is less noisy but slower + .nresamples(100_000) + // total samples to collect within the set measurement time + .sample_size(150); + targets = route +); diff --git a/benches/wasm/mod.rs b/benches/wasm/mod.rs deleted file mode 100644 index 3705707684c13..0000000000000 --- a/benches/wasm/mod.rs +++ /dev/null @@ -1,186 +0,0 @@ -use criterion::criterion_main; -use criterion::{criterion_group, BatchSize, BenchmarkId, Criterion}; -use futures::{stream, SinkExt, Stream, StreamExt}; -use serde_json::Value; -use std::{collections::HashMap, fs, io::Read, path::Path, pin::Pin}; -use vector::{ - transforms::{wasm::Wasm, TaskTransform, Transform}, - Event, -}; - -fn parse_event_artifact(path: impl AsRef) -> vector::Result { - let mut event = Event::new_empty_log(); - let mut test_file = fs::File::open(path)?; - - let mut buf = String::new(); - test_file.read_to_string(&mut buf)?; - let test_json: HashMap = serde_json::from_str(&buf)?; - - for (key, value) in test_json { - event.as_mut_log().insert(key, value.clone()); - } - Ok(event) -} - -pub fn protobuf(c: &mut Criterion) { - let input = parse_event_artifact("tests/data/wasm/protobuf/demo.json").unwrap(); - - c.bench_function("wasm/protobuf", |b| { - let transform = Box::new( - Wasm::new( - toml::from_str( - r#" - module = "tests/data/wasm/protobuf/target/wasm32-wasi/release/protobuf.wasm" - artifact_cache = "target/artifacts/" - "#, - ) - .unwrap(), - ) - .unwrap(), - ); - - let (tx, rx) = futures::channel::mpsc::channel::(1); - let mut rx = transform.transform(Box::pin(rx)); - - b.iter_batched( - || (tx.clone(), input.clone()), - |(mut tx, input)| { - futures::executor::block_on(tx.send(input)).unwrap(); - futures::executor::block_on(rx.next()) - }, - BatchSize::SmallInput, - ) - }); -} - -pub fn add_fields(criterion: &mut Criterion) { - let transforms: Vec<(&str, Transform)> = vec![ - ( - "lua", - Transform::task( - vector::transforms::lua::v2::Lua::new( - &toml::from_str( - r#" -hooks.process = """ -function (event, emit) -event.log.test_key = "test_value" -event.log.test_key2 = "test_value2" -emit(event) -end -""" -"#, - ) - .unwrap(), - ) - .unwrap(), - ), - ), - ( - "remap", - Transform::function( - vector::transforms::remap::Remap::new(vector::transforms::remap::RemapConfig { - source: r#" -.test_key = "test_value" -.test_key2 = "test_value2" -"# - .to_string(), - drop_on_err: false, - }) - .unwrap(), - ), - ), - ( - "wasm", - Transform::task( - Wasm::new( - toml::from_str( - r#" -module = "tests/data/wasm/add_fields/target/wasm32-wasi/release/add_fields.wasm" -artifact_cache = "target/artifacts/" -"#, - ) - .unwrap(), - ) - .unwrap(), - ), - ), - ( - "native", - Transform::function({ - let mut fields = indexmap::IndexMap::default(); - fields.insert("test_key".into(), String::from("test_value").into()); - fields.insert("test_key2".into(), String::from("test_value2").into()); - vector::transforms::add_fields::AddFields::new(fields, false).unwrap() - }), - ), - ]; - let parameters = vec![0, 2, 8, 16]; - - bench_group_transforms_over_parameterized_event_sizes( - criterion, - "wasm/add_fields", - transforms, - parameters, - ); -} - -fn bench_group_transforms_over_parameterized_event_sizes( - criterion: &mut Criterion, - group: &str, - transforms: Vec<(&str, Transform)>, - parameters: Vec, -) { - vector::test_util::trace_init(); - - let mut group = criterion.benchmark_group(group); - - for (name, transform) in transforms { - let (tx, rx) = futures::channel::mpsc::channel::(1); - - let mut rx: Pin + Send>> = match transform { - Transform::Function(t) => { - let mut t = t.clone(); - Box::pin(rx.flat_map(move |v| { - let mut buf = Vec::with_capacity(1); - t.transform(&mut buf, v); - stream::iter(buf.into_iter()) - })) - } - Transform::Task(t) => t.transform(Box::pin(rx)), - }; - - for ¶meter in ¶meters { - let mut input = Event::new_empty_log(); - for key in 0..parameter { - input - .as_mut_log() - .insert(format!("key-{}", key), format!("value-{}", key)); - } - - let id = BenchmarkId::new(name.clone(), parameter); - - group.bench_with_input(id, &input, |bencher, input| { - bencher.iter_batched( - || (tx.clone(), input.clone()), - |(mut tx, input)| { - futures::executor::block_on(tx.send(input)).unwrap(); - futures::executor::block_on(rx.next()) - }, - BatchSize::SmallInput, - ) - }); - } - } - group.finish(); -} - -criterion_group!( - name = benches; - // We've seen CI noise commonly be 5% so configure here - // https://github.com/timberio/vector/issues/5394 - config = Criterion::default().noise_threshold(0.05); - targets = protobuf, add_fields -); -criterion_main! { - benches, -} diff --git a/buf.yaml b/buf.yaml new file mode 100644 index 0000000000000..892768db97363 --- /dev/null +++ b/buf.yaml @@ -0,0 +1,19 @@ +version: v2 +modules: + - path: lib/vector-core/proto + - path: proto/third-party + - path: proto/vector + - path: lib/dnstap-parser/proto +lint: + use: + - DEFAULT + except: + - FIELD_NOT_REQUIRED + - PACKAGE_NO_IMPORT_CYCLE + disallow_comment_ignores: true +breaking: + use: + - FILE + except: + - EXTENSION_NO_DELETE + - FIELD_SAME_DEFAULT diff --git a/build.rs b/build.rs index 6ae8c42255dc2..b603074f90bcc 100644 --- a/build.rs +++ b/build.rs @@ -1,9 +1,268 @@ +use std::{collections::HashSet, env, fs::File, io::Write, path::Path, process::Command}; + +struct TrackedEnv { + tracked: HashSet, +} + +impl TrackedEnv { + pub fn new() -> Self { + Self { + tracked: HashSet::new(), + } + } + + pub fn get_env_var(&mut self, name: impl Into) -> Option { + let name = name.into(); + let result = std::env::var(&name).ok(); + self.tracked.insert(name); + result + } + + pub fn emit_rerun_stanzas(&self) { + for env_var in &self.tracked { + println!("cargo:rerun-if-env-changed={}", env_var); + } + } +} + +enum ConstantValue { + Required(String), + Optional(Option), +} + +impl ConstantValue { + pub fn as_parts(&self) -> (&'static str, String) { + match &self { + ConstantValue::Required(value) => ("&str", format!("\"{}\"", value)), + ConstantValue::Optional(value) => match value { + Some(value) => ("Option<&str>", format!("Some(\"{}\")", value)), + None => ("Option<&str>", "None".to_string()), + }, + } + } +} + +struct BuildConstants { + values: Vec<(String, String, ConstantValue)>, +} + +impl BuildConstants { + pub fn new() -> Self { + Self { values: Vec::new() } + } + + pub fn add_required_constant(&mut self, name: &str, desc: &str, value: String) { + self.values.push(( + name.to_string(), + desc.to_string(), + ConstantValue::Required(value), + )); + } + + pub fn add_optional_constant(&mut self, name: &str, desc: &str, value: Option) { + self.values.push(( + name.to_string(), + desc.to_string(), + ConstantValue::Optional(value), + )); + } + + pub fn write_to_file(self, file_name: impl AsRef) -> std::io::Result<()> { + let base_dir = env::var("OUT_DIR").expect("OUT_DIR not present in build script!"); + let dest_path = Path::new(&base_dir).join(file_name); + + let mut output_file = File::create(dest_path)?; + output_file.write_all( + "// AUTOGENERATED CONSTANTS. SEE BUILD.RS AT REPOSITORY ROOT. DO NOT MODIFY.\n" + .as_ref(), + )?; + + for (name, desc, value) in self.values { + let (const_type, const_val) = value.as_parts(); + let full = format!( + "#[doc=r#\"{}\"#]\npub const {}: {} = {};\n", + desc, name, const_type, const_val + ); + output_file.write_all(full.as_ref())?; + } + + output_file.flush()?; + output_file.sync_all()?; + + Ok(()) + } +} + +fn git_short_hash() -> std::io::Result { + let output_result = Command::new("git") + .args(["rev-parse", "--short", "HEAD"]) + .output(); + + output_result.map(|output| { + let mut hash = String::from_utf8(output.stdout).expect("valid UTF-8"); + hash.retain(|c| !c.is_ascii_whitespace()); + + hash + }) +} + fn main() { - println!("cargo:rerun-if-changed=proto/event.proto"); - let mut prost_build = prost_build::Config::new(); - prost_build.btree_map(&["."]); - prost_build - .compile_protos(&["proto/event.proto"], &["proto/"]) - .unwrap(); - built::write_built_file().expect("Failed to acquire build-time information"); + // Always rerun if the build script itself changes. + println!("cargo:rerun-if-changed=build.rs"); + + // re-run if the HEAD has changed. This is only necessary for non-release and nightly builds. + #[cfg(not(feature = "nightly"))] + println!("cargo:rerun-if-changed=.git/HEAD"); + + #[cfg(feature = "protobuf-build")] + { + println!("cargo:rerun-if-changed=proto/third-party/google/pubsub/v1/pubsub.proto"); + println!("cargo:rerun-if-changed=proto/third-party/google/rpc/status.proto"); + println!("cargo:rerun-if-changed=proto/vector/dd_metric.proto"); + println!("cargo:rerun-if-changed=proto/vector/dd_trace.proto"); + println!("cargo:rerun-if-changed=proto/vector/ddsketch_full.proto"); + println!("cargo:rerun-if-changed=proto/vector/vector.proto"); + + // Create and store the "file descriptor set" from the compiled Protocol Buffers packages. + // + // This allows us to use runtime reflection to manually build Protocol Buffers payloads + // in a type-safe way, which is necessary for incrementally building certain payloads, like + // the ones generated in the `datadog_metrics` sink. + let protobuf_fds_path = + Path::new(&std::env::var("OUT_DIR").expect("OUT_DIR environment variable not set")) + .join("protobuf-fds.bin"); + + let mut prost_build = prost_build::Config::new(); + prost_build + .btree_map(["."]) + .file_descriptor_set_path(protobuf_fds_path); + + tonic_build::configure() + .protoc_arg("--experimental_allow_proto3_optional") + .compile_with_config( + prost_build, + &[ + "lib/vector-core/proto/event.proto", + "proto/vector/ddsketch_full.proto", + "proto/vector/dd_metric.proto", + "proto/vector/dd_trace.proto", + "proto/third-party/google/pubsub/v1/pubsub.proto", + "proto/third-party/google/rpc/status.proto", + "proto/vector/vector.proto", + ], + &[ + "proto/third-party", + "proto/vector", + "lib/vector-core/proto/", + ], + ) + .unwrap(); + } + + // We keep track of which environment variables we slurp in, and then emit stanzas at the end to + // inform Cargo when it needs to rerun this build script. This allows us to avoid rerunning it + // every single time unless something _actually_ changes. + let mut tracker = TrackedEnv::new(); + let pkg_name = tracker + .get_env_var("CARGO_PKG_NAME") + .expect("Cargo-provided environment variables should always exist!"); + let pkg_version = tracker + .get_env_var("CARGO_PKG_VERSION") + .expect("Cargo-provided environment variables should always exist!"); + let pkg_description = tracker + .get_env_var("CARGO_PKG_DESCRIPTION") + .expect("Cargo-provided environment variables should always exist!"); + let target = tracker + .get_env_var("TARGET") + .expect("Cargo-provided environment variables should always exist!"); + let target_arch = tracker + .get_env_var("CARGO_CFG_TARGET_ARCH") + .expect("Cargo-provided environment variables should always exist!"); + let target_os = tracker + .get_env_var("CARGO_CFG_TARGET_OS") + .expect("Cargo-provided environment variables should always exist!"); + let target_vendor = tracker + .get_env_var("CARGO_CFG_TARGET_VENDOR") + .expect("Cargo-provided environment variables should always exist!"); + let debug = tracker + .get_env_var("DEBUG") + .expect("Cargo-provided environment variables should always exist!"); + let rust_version = tracker + .get_env_var("CARGO_PKG_RUST_VERSION") + .expect("Cargo-provided environment variables should always exist!"); + let build_desc = tracker.get_env_var("VECTOR_BUILD_DESC"); + + // Get the git short hash of the HEAD. + // Note that if Vector is compiled within a container, proper git permissions must be set for + // the repo directory. + // In CI build workflows this will have been pre-configured by running the command + // "git config --global --add safe.directory /git/vectordotdev/vector", from the vdev package + // subcommands. + let git_short_hash = git_short_hash() + .map_err(|e| { + #[allow(clippy::print_stderr)] + { + eprintln!( + "Unable to determine git short hash from rev-parse command: {}", + e + ); + } + }) + .expect("git hash detection failed"); + + // Gather up the constants and write them out to our build constants file. + let mut constants = BuildConstants::new(); + constants.add_required_constant( + "RUST_VERSION", + "The rust version from the package manifest.", + rust_version, + ); + constants.add_required_constant("PKG_NAME", "The full name of this package.", pkg_name); + constants.add_required_constant( + "PKG_VERSION", + "The full version of this package.", + pkg_version, + ); + constants.add_required_constant( + "PKG_DESCRIPTION", + "The description of this package.", + pkg_description, + ); + constants.add_required_constant( + "TARGET", + "The target triple being compiled for. (e.g. x86_64-pc-windows-msvc)", + target, + ); + constants.add_required_constant( + "TARGET_ARCH", + "The target architecture being compiled for. (e.g. x86_64)", + target_arch, + ); + constants.add_required_constant( + "TARGET_OS", + "The target OS being compiled for. (e.g. macos)", + target_os, + ); + constants.add_required_constant( + "TARGET_VENDOR", + "The target vendor being compiled for. (e.g. apple)", + target_vendor, + ); + constants.add_required_constant("DEBUG", "Level of debug info for Vector.", debug); + constants.add_optional_constant( + "VECTOR_BUILD_DESC", + "Special build description, related to versioned releases.", + build_desc, + ); + constants.add_required_constant( + "GIT_SHORT_HASH", + "The short hash of the Git HEAD", + git_short_hash, + ); + constants + .write_to_file("built.rs") + .expect("Failed to write build-time constants file!"); + + // Emit the aforementioned stanzas. + tracker.emit_rerun_stanzas(); } diff --git a/changelog.d/11185.feature.md b/changelog.d/11185.feature.md new file mode 100644 index 0000000000000..79c4d89e5e3e7 --- /dev/null +++ b/changelog.d/11185.feature.md @@ -0,0 +1,3 @@ +Allows users to specify a KMS key and tags for newly created AWS CloudWatch log groups. + +authors: johannesfloriangeiger diff --git a/changelog.d/12073_unifying_query_parameters.feature.md b/changelog.d/12073_unifying_query_parameters.feature.md new file mode 100644 index 0000000000000..546b93287f5b7 --- /dev/null +++ b/changelog.d/12073_unifying_query_parameters.feature.md @@ -0,0 +1,3 @@ +Query parameters can now contain either `single value` or array of `multiple values`. + +authors: sainad2222 diff --git a/changelog.d/21348_memory_enrichment_table.feature.md b/changelog.d/21348_memory_enrichment_table.feature.md new file mode 100644 index 0000000000000..9a87239968ffc --- /dev/null +++ b/changelog.d/21348_memory_enrichment_table.feature.md @@ -0,0 +1,4 @@ +Add a new type of `enrichment_table` - `memory`, which can also act as a sink, taking in all the +data and storing it per key, enabling it to be read from as all other enrichment tables. + +authors: esensar diff --git a/changelog.d/21965-add-keep-sink.feature.md b/changelog.d/21965-add-keep-sink.feature.md new file mode 100644 index 0000000000000..00328d73e84ce --- /dev/null +++ b/changelog.d/21965-add-keep-sink.feature.md @@ -0,0 +1,3 @@ +A new sink for keep was added + +authors: sainad2222 diff --git a/changelog.d/21972-add-tcp-collector-host-metrics.feature.md b/changelog.d/21972-add-tcp-collector-host-metrics.feature.md new file mode 100644 index 0000000000000..04eab2b91697b --- /dev/null +++ b/changelog.d/21972-add-tcp-collector-host-metrics.feature.md @@ -0,0 +1,14 @@ +The `host_metrics` source has a new collector, `tcp`. The `tcp` +collector exposes three metrics related to the TCP stack of the +system: + +* `tcp_connections_total`: The total number of TCP connections. It + includes the `state` of the connection as a tag. +* `tcp_tx_queued_bytes_total`: The sum of the number of bytes in the + send queue across all connections. +* `tcp_rx_queued_bytes_total`: The sum of the number of bytes in the + receive queue across all connections. + +This collector is enabled only on Linux systems. + +authors: aryan9600 diff --git a/changelog.d/22007_chronicle_ingest_header.fix.md b/changelog.d/22007_chronicle_ingest_header.fix.md new file mode 100644 index 0000000000000..970453dfd459d --- /dev/null +++ b/changelog.d/22007_chronicle_ingest_header.fix.md @@ -0,0 +1,3 @@ +The `chronicle_unstructured` sink now sets the `content-encoding` header when compression is enabled. + +authors: chocpanda diff --git a/changelog.d/22077_per_metric_limits_for_tag_cardinality_limit_transform.feature.md b/changelog.d/22077_per_metric_limits_for_tag_cardinality_limit_transform.feature.md new file mode 100644 index 0000000000000..57a96a6f2f471 --- /dev/null +++ b/changelog.d/22077_per_metric_limits_for_tag_cardinality_limit_transform.feature.md @@ -0,0 +1,3 @@ +The `tag_cardinality_limit` transform now supports customizing limits for specific metrics, matched by metric name and optionally its namespace. + +authors: esensar diff --git a/changelog.d/22213_websocket_server_sink.feature.md b/changelog.d/22213_websocket_server_sink.feature.md new file mode 100644 index 0000000000000..3fc211f51dfb6 --- /dev/null +++ b/changelog.d/22213_websocket_server_sink.feature.md @@ -0,0 +1,3 @@ +Add `websocket_server` sink that acts as a websocket server and broadcasts events to all clients. + +authors: esensar diff --git a/changelog.d/22236_custom_server_auth_strategy.feature.md b/changelog.d/22236_custom_server_auth_strategy.feature.md new file mode 100644 index 0000000000000..ed06c7c54f89f --- /dev/null +++ b/changelog.d/22236_custom_server_auth_strategy.feature.md @@ -0,0 +1,3 @@ +Sources running HTTP servers (`http_server` source, `prometheus` source, `datadog_agent`, etc.) now support a new `custom` authorization strategy . If a strategy is not explicitly defined, it defaults to `basic`, which is the current behavior. + +authors: esensar diff --git a/changelog.d/22279_systemd_service_reload.fix.md b/changelog.d/22279_systemd_service_reload.fix.md new file mode 100644 index 0000000000000..1d9c1febb7e05 --- /dev/null +++ b/changelog.d/22279_systemd_service_reload.fix.md @@ -0,0 +1,3 @@ +The systemd service now validates the config with parameter `--no-environment` on service reload. + +authors: rsrdesarrollo diff --git a/changelog.d/22348_dnstap_protobuf_update.feature.md b/changelog.d/22348_dnstap_protobuf_update.feature.md new file mode 100644 index 0000000000000..c72ca2cc0b29c --- /dev/null +++ b/changelog.d/22348_dnstap_protobuf_update.feature.md @@ -0,0 +1,3 @@ +The `dnstap` source now uses [v20250201](https://github.com/dnstap/dnstap.pb/releases/tag/v20250201) dnstap protobuf schema. + +authors: esensar diff --git a/changelog.d/README.md b/changelog.d/README.md new file mode 100644 index 0000000000000..100807e383c28 --- /dev/null +++ b/changelog.d/README.md @@ -0,0 +1,90 @@ +## Overview + +This directory contains changelog "fragments" that are collected during a release to +generate the project's user facing changelog. + +The conventions used for this changelog logic follow [towncrier](https://towncrier.readthedocs.io/en/stable/markdown.html). + +The changelog fragments are located in `changelog.d/`. + +## Process + +Fragments for un-released changes are placed in the root of this directory during PRs. + +During a release when the changelog is generated, the fragments in the root of this +directory are organized into the [releases directory](../website/cue/reference/releases) +with the name of the release (e.g. '0.42.0.cue'). + +### Pull Requests + +By default, PRs are required to add at least one entry to this directory. +This is enforced during CI. + +To mark a PR as not requiring user-facing changelog notes, add the label 'no-changelog'. + +To run the same check that is run in CI to validate that your changelog fragments have +the correct syntax, commit the fragment additions and then run ./scripts/check_changelog_fragments.sh + +The format for fragments is: `..md` + +### Fragment conventions + +When fragments used to generate the updated changelog, the content of the fragment file is +rendered as an item in a bulleted list under the "type" of fragment. + +The contents of the file must be valid markdown. + +Filename rules: + +- The first segment (unique_name) should be a unique string related to the change. + Optionally, if there is a GitHub issue associated with the change, it can be used as a prefix. + For example `42_very_important_change.breaking.md`, vs `very_important_change.breaking.md`. +- The type must be one of the valid types in [Fragment types](#fragment-types) +- Only the two period delimiters can be used. +- The file must be markdown. + +#### Fragment types + +- `breaking`: A change that is incompatible with prior versions which requires users to make adjustments. +- `security`: A change that is has implications for security. +- `deprecation`: A change that is introducing a deprecation. +- `feature`: A change that is introducing a new feature. +- `enhancement`: A change that is enhancing existing functionality in a user perceivable way. +- `fix`: A change that is fixing a bug. + +#### Fragment contents + +When fragments are rendered in the changelog, each fragment becomes an item in a markdown list. +For this reason, when creating the content in a fragment, the format must be renderable as a markdown list. + +As an example, separating content with markdown header syntax should be avoided, as that will render +as a heading in the main changelog and not the list. Instead, separate content with newlines. + +### Breaking changes + +When using the type 'breaking' to add notes for a breaking change, these should be more verbose than +other entries typically. It should include all details that would be relevant for the user to need +to handle upgrading to the breaking change. + +## Community Contributors + +When a PR is authored/has commits by a contributor from the Vector community, the fragment contents +can optionally contain a line which specifies the community members involved in making the change. +This is later used during the release process to render as a link to the github user profile for +the authors specified. + +The process for adding this is simply to have the last line of the file be in this format: + + authors: <...> + +Do not include a leading `@` when specifying your username. + +## Example + +Here is an example of a changelog fragment that adds a breaking change explanation. + + $ cat changelog.d/42_very_good_words.breaking.md + This change is so great. It's such a great change that this sentence + explaining the change has to span multiple lines of text. + + It even necessitates a line break. It is a breaking change after all. diff --git a/changelog.d/add-session-name-config-for-aws.fix.md b/changelog.d/add-session-name-config-for-aws.fix.md new file mode 100644 index 0000000000000..2a3a758c8768a --- /dev/null +++ b/changelog.d/add-session-name-config-for-aws.fix.md @@ -0,0 +1,3 @@ +Allow users to specify `session_name` when using aws auth. + +authors: akutta diff --git a/changelog.d/add_chronicle_regional_endpoints.enhancement.md b/changelog.d/add_chronicle_regional_endpoints.enhancement.md new file mode 100644 index 0000000000000..91e03f2fd8fba --- /dev/null +++ b/changelog.d/add_chronicle_regional_endpoints.enhancement.md @@ -0,0 +1,3 @@ +Add support for more chronicle regional endpoints as listed - https://cloud.google.com/chronicle/docs/reference/ingestion-api#regional_endpoints + +authors: chocpanda diff --git a/changelog.d/add_default_fallback_index_google_chronicle_sink.enhancement.md b/changelog.d/add_default_fallback_index_google_chronicle_sink.enhancement.md new file mode 100644 index 0000000000000..04d2a76a82937 --- /dev/null +++ b/changelog.d/add_default_fallback_index_google_chronicle_sink.enhancement.md @@ -0,0 +1,3 @@ +Add an option to Google Chronicle sink to set a fallback index if the provided template in the `log_type` field cannot be resolved + +authors: ArunPiduguDD diff --git a/changelog.d/add_virtual_memory_process_metric.feature.md b/changelog.d/add_virtual_memory_process_metric.feature.md new file mode 100644 index 0000000000000..422232018e700 --- /dev/null +++ b/changelog.d/add_virtual_memory_process_metric.feature.md @@ -0,0 +1,3 @@ +Add virtual memory metric to the process host metrics collector. + +authors: nionata diff --git a/changelog.d/datadog_search_syntax_support_ddtags.enhancement.md b/changelog.d/datadog_search_syntax_support_ddtags.enhancement.md new file mode 100644 index 0000000000000..ce522e072b28a --- /dev/null +++ b/changelog.d/datadog_search_syntax_support_ddtags.enhancement.md @@ -0,0 +1,6 @@ +In datadog search syntax, allow the following queries to match on several fields (OR condition): + +- `tags` will lookup the fields `tags` and `ddtags` +- `source` will lookup the fields `source` and `ddsource` + +authors: 20agbekodo diff --git a/changelog.d/enrichment_table_keep_first_row.fix.md b/changelog.d/enrichment_table_keep_first_row.fix.md new file mode 100644 index 0000000000000..5cbecd6c0f4c3 --- /dev/null +++ b/changelog.d/enrichment_table_keep_first_row.fix.md @@ -0,0 +1,3 @@ +`enrichment_table`s loaded from a CSV file with `include_headers: false` no longer drop the first row of data + +authors: B-Schmidt diff --git a/changelog.d/gen-schema-out.enhancement.md b/changelog.d/gen-schema-out.enhancement.md new file mode 100644 index 0000000000000..41f2e1b9f7ce5 --- /dev/null +++ b/changelog.d/gen-schema-out.enhancement.md @@ -0,0 +1,3 @@ +The `generate-schema` subcommand accepts an optional `output_path` option. + +authors: pront diff --git a/changelog.d/log-fields-additional-types.enhancement.md b/changelog.d/log-fields-additional-types.enhancement.md new file mode 100644 index 0000000000000..b4d2d834c9216 --- /dev/null +++ b/changelog.d/log-fields-additional-types.enhancement.md @@ -0,0 +1,4 @@ +Allow additional types to be used in `tests.inputs.log_fields` values, including +nested objects and arrays. + +authors: tmccombs diff --git a/changelog.d/pulsar_sink_source_support_tls_options.feature.md b/changelog.d/pulsar_sink_source_support_tls_options.feature.md new file mode 100644 index 0000000000000..1a326ece8d05d --- /dev/null +++ b/changelog.d/pulsar_sink_source_support_tls_options.feature.md @@ -0,0 +1,3 @@ +The `pulsar` source and sink now support configuration of TLS options via the `tls` configuration field. + +authors: pomacanthidae diff --git a/changelog.d/s3-log-spam.fix.md b/changelog.d/s3-log-spam.fix.md new file mode 100644 index 0000000000000..90f019f7bf5e4 --- /dev/null +++ b/changelog.d/s3-log-spam.fix.md @@ -0,0 +1,3 @@ +Downgraded some noisy `info!` statements in the `aws_s3` source to `debug!`. + +authors: pront diff --git a/clippy.toml b/clippy.toml new file mode 100644 index 0000000000000..25937ac64122a --- /dev/null +++ b/clippy.toml @@ -0,0 +1,14 @@ +cognitive-complexity-threshold = 75 + +# for `disallowed_method`: +# https://rust-lang.github.io/rust-clippy/master/index.html#disallowed_method +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." }, + { path = "once_cell::sync::Lazy", reason = "Use `std::sync::LazyLock` instead." }, + { path = "once_cell::unsync::Lazy", reason = "Use `std::sync::LazyCell` instead." }, +] diff --git a/config/README.md b/config/README.md new file mode 100644 index 0000000000000..a5e121181010f --- /dev/null +++ b/config/README.md @@ -0,0 +1,11 @@ +# Vector Configuration + +This directory contains the default Vector configuration for both the agent +and aggregator roles and provides common examples to demonstrate +configuration for various use cases. + +* [`/aggregator`](aggregator) - Default configuration when Vector is deployed as + an aggregator, subdirectories contain default configuration for a specific target +* [`/agent`](agent) - Default configuration when Vector is deployed as an agent, + subdirectories contain default configuration for a specific target +* [`/examples`](examples) - Configuration examples for common use cases diff --git a/config/examples/docs_example.toml b/config/examples/docs_example.toml deleted file mode 100644 index 1ff9ac27229d1..0000000000000 --- a/config/examples/docs_example.toml +++ /dev/null @@ -1,39 +0,0 @@ -# Set global options -data_dir = "/var/lib/vector" - -# Ingest data by tailing one or more files -[sources.apache_logs] - type = "file" - include = ["/var/log/apache2/*.log"] # supports globbing - ignore_older = 86400 # 1 day - -# Structure and parse the data -[transforms.apache_parser] - inputs = ["apache_logs"] - type = "regex_parser" # fast/powerful regex - patterns = ['^(?P[w.]+) - (?P[w]+) (?P[d]+) [(?P.*)] "(?P[w]+) (?P.*)" (?P[d]+) (?P[d]+)$'] - -# Sample the data to save on cost -[transforms.apache_sample] - inputs = ["apache_parser"] - type = "sample" - rate = 50 # only keep 50% - -# Send structured data to a short-term storage -[sinks.es_cluster] - inputs = ["apache_sample"] # only take sampled data - type = "elasticsearch" - host = "http://79.12.221.222:9200" # local or external host - index = "vector-%Y-%m-%d" # daily indices - -# Send structured data to a cost-effective long-term storage -[sinks.s3_archives] - inputs = ["apache_parser"] # don't sample for S3 - type = "aws_s3" - region = "us-east-1" - bucket = "my-log-archives" - key_prefix = "date=%Y-%m-%d" # daily partitions, hive friendly format - compression = "gzip" # compress final objects - encoding = "ndjson" # new line delimited JSON - [sinks.s3_archives.batch] - max_size = 10000000 # 10mb uncompressed diff --git a/config/examples/docs_example.yaml b/config/examples/docs_example.yaml new file mode 100644 index 0000000000000..bc51168a19e07 --- /dev/null +++ b/config/examples/docs_example.yaml @@ -0,0 +1,48 @@ +# Set global options +"data_dir": "/var/lib/vector" + +# Ingest data by tailing one or more files +"sources": + "apache_logs": + "type": "file" + "include": [ "/var/log/apache2/*.log" ] # supports globbing + "ignore_older": 86400 # 1 day + +# Structure and parse the data +"transforms": + "apache_parser": + "inputs": [ "apache_logs" ] + "type": "remap" + "drop_on_error": false + "source": ''' +. = parse_apache_log!(.message) +''' + + "apache_sample": + "inputs": [ "apache_parser" ] + "type": "sample" + "rate": 2 # only keep 50% (1/`rate`) + +# Send structured data to a short-term storage +"sinks": + "es_cluster": + "inputs": [ "apache_sample" ] # only take sampled data + "type": "elasticsearch" + "endpoint": "http://79.12.221.222:9200" # local or external host + "bulk": + "index": "vector-%Y-%m-%d" # daily indices + + # Send structured data to a cost-effective long-term storage + "s3_archives": + "inputs": [ "apache_parser" ] # don't sample for S3 + "type": "aws_s3" + "region": "us-east-1" + "bucket": "my-log-archives" + "key_prefix": "date=%Y-%m-%d" # daily partitions, hive friendly format + "compression": "gzip" # compress final objects + "framing": + "method": "newline_delimited" # new line delimited... + "encoding": + "codec": "json" # ...JSON + "batch": + "max_bytes": 10000000 # 10mb uncompressed diff --git a/config/examples/environment_variables.toml b/config/examples/environment_variables.toml deleted file mode 100644 index e67ac47e18337..0000000000000 --- a/config/examples/environment_variables.toml +++ /dev/null @@ -1,33 +0,0 @@ -# Environment Variables Example -# ------------------------------------------------------------------------------ -# A simple example that demonstrates Vector's environment variable -# interpolation syntax. More information can be found in the Environment -# Variables section in our docs: -# -# https://vector.dev/docs/setup/configuration#environment-variables - -data_dir = "/var/lib/vector" - -# Ingests Apache 2 log data by tailing one or more log files -# Example: 194.221.90.140 - - [22/06/2019:11:55:14 -0400] "PUT /integrate" 100 2213 -# Docs: https://vector.dev/docs/reference/sources/file -[sources.apache_logs] - type = "file" - include = ["/var/log/apache2/*.log"] - ignore_older = 86400 # 1 day - -# Add a field based on the value of the HOSTNAME env var -# Docs: https://vector.dev/docs/reference/transforms/add_fields -[transforms.add_host] - inputs = ["apache_logs"] - type = "add_fields" - - [transforms.add_host.fields] - host = "${HOSTNAME}" - -# Print the data to STDOUT for inspection -# Docs: https://vector.dev/docs/reference/sinks/console -[sinks.out] - inputs = ["add_host"] - type = "console" - encoding = "json" diff --git a/config/examples/environment_variables.yaml b/config/examples/environment_variables.yaml new file mode 100644 index 0000000000000..544ce90786367 --- /dev/null +++ b/config/examples/environment_variables.yaml @@ -0,0 +1,38 @@ +# Environment Variables Example +# ------------------------------------------------------------------------------ +# A simple example that demonstrates Vector's environment variable +# interpolation syntax. More information can be found in the Environment +# Variables section in our docs: +# +# https://vector.dev/docs/setup/configuration#environment-variables +data_dir: "/var/lib/vector" + +# Ingests Apache 2 log data by tailing one or more log files +# Example: 194.221.90.140 - - [22/06/2019:11:55:14 -0400] "PUT /integrate" 100 2213 +# Docs: https://vector.dev/docs/reference/sources/file +sources: + apache_logs: + type: "file" + include: [ "/var/log/apache2/*.log" ] + # ignore files older than 1 day + ignore_older_secs: 86400 + +# Add a field based on the value of the HOSTNAME env var +# Docs: https://vector.dev/docs/reference/transforms/remap +transforms: + add_host: + inputs: [ "apache_logs" ] + type: "remap" + source: | + ''' + .host = get_env_var!("HOSTNAME") + ''' + +# Print the data to STDOUT for inspection +# Docs: https://vector.dev/docs/reference/sinks/console +sinks: + out: + inputs: [ "add_host" ] + type: "console" + encoding: + codec: "json" diff --git a/config/examples/es_s3_hybrid.toml b/config/examples/es_s3_hybrid.toml deleted file mode 100644 index f42af6a02e922..0000000000000 --- a/config/examples/es_s3_hybrid.toml +++ /dev/null @@ -1,36 +0,0 @@ -# Elasticsearch / S3 Hybrid Vector Configuration Example -# ------------------------------------------------------------------------------ -# This demonstrates a hybrid pipeline, writing data to both Elasticsearch and -# AWS S3. This is advantageous because each storage helps to offset its -# counterpart's weaknesses. You can provision Elasticsearch for performance -# and delegate durability to S3. - -data_dir = "/var/lib/vector" - -# Ingest data by tailing one or more files -# Docs: https://vector.dev/docs/reference/sources/file -[sources.apache_logs] - type = "file" - include = ["/var/log/*.log"] - ignore_older = 86400 # 1 day - -# Optionally parse, structure and transform data here. -# Docs: https://vector.dev/docs/reference/transforms - -# Send structured data to Elasticsearch for searching of recent data -[sinks.es_cluster] - inputs = ["apache_logs"] - type = "elasticsearch" - host = "79.12.221.222:9200" - doc_type = "_doc" - -# Send structured data to S3, a durable long-term storage -[sinks.s3_archives] - inputs = ["apache_logs"] # don't sample - type = "aws_s3" - region = "us-east-1" - bucket = "my_log_archives" - encoding = "ndjson" - compression = "gzip" - [sinks.s3_archives.batch] - max_size = 10000000 # 10mb uncompressed diff --git a/config/examples/es_s3_hybrid.yaml b/config/examples/es_s3_hybrid.yaml new file mode 100644 index 0000000000000..df221e64ccec5 --- /dev/null +++ b/config/examples/es_s3_hybrid.yaml @@ -0,0 +1,41 @@ +# Elasticsearch / S3 Hybrid Vector Configuration Example +# ------------------------------------------------------------------------------ +# This demonstrates a hybrid pipeline, writing data to both Elasticsearch and +# AWS S3. This is advantageous because each storage helps to offset its +# counterpart's weaknesses. You can provision Elasticsearch for performance +# and delegate durability to S3. + +data_dir: "/var/lib/vector" + +# Ingest data by tailing one or more files +# Docs: https://vector.dev/docs/reference/sources/file +sources: + apache_logs: + type: "file" + include: ["/var/log/*.log"] + ignore_older_secs: 86400 # 1 day + +# Optionally parse, structure and transform data here. +# Docs: https://vector.dev/docs/reference/transforms + +# Send structured data to Elasticsearch for searching of recent data +sinks: + es_cluster: + inputs: ["apache_logs"] + type: "elasticsearch" + endpoint: "79.12.221.222:9200" + doc_type: "_doc" + + # Send structured data to S3, a durable long-term storage + s3_archives: + inputs: ["apache_logs"] # don't sample + type: "aws_s3" + region: "us-east-1" + bucket: "my_log_archives" + framing: + method: "newline_delimited" + encoding: + codec: "json" + compression: "gzip" + batch: + max_size: 10000000 # 10mb uncompressed diff --git a/config/examples/file_to_cloudwatch_metrics.toml b/config/examples/file_to_cloudwatch_metrics.toml deleted file mode 100644 index cecc647d7fde1..0000000000000 --- a/config/examples/file_to_cloudwatch_metrics.toml +++ /dev/null @@ -1,45 +0,0 @@ -# Parsing logs as metrics and sending to CloudWatch -# ------------------------------------------------------------------------------ -# WIP - -data_dir = "/var/lib/vector" - -# Ingest -[sources.file] -type = "file" -include = ["sample.log"] -start_at_beginning = true - -# Structure and parse the data -[transforms.regex_parser] -inputs = ["file"] -type = "regex_parser" -patterns = ['^(?P[\w\.]+) - (?P[\w-]+) \[(?P.*)\] "(?P[\w]+) (?P.*)" (?P[\d]+) (?P[\d]+)$'] - -# Transform into metrics -[transforms.log_to_metric] -inputs = ["regex_parser"] -type = "log_to_metric" - -[[transforms.log_to_metric.metrics]] -type = "counter" -increment_by_value = true -field = "bytes_out" -tags = {method = "{{method}}", status = "{{status}}"} - -# Output data -[sinks.console_metrics] -inputs = ["log_to_metric"] -type = "console" -encoding = "json" - -[sinks.console_logs] -inputs = ["regex_parser"] -type = "console" -encoding = "json" - -[sinks.cloudwatch] -inputs = ["log_to_metric"] -type = "aws_cloudwatch_metrics" -namespace = "vector" -endpoint = "http://localhost:4566" diff --git a/config/examples/file_to_cloudwatch_metrics.yaml b/config/examples/file_to_cloudwatch_metrics.yaml new file mode 100644 index 0000000000000..f322ab8f091b0 --- /dev/null +++ b/config/examples/file_to_cloudwatch_metrics.yaml @@ -0,0 +1,53 @@ +# Parsing logs as metrics and sending to CloudWatch +# ------------------------------------------------------------------------------ +# WIP + +data_dir: "/var/lib/vector" + +# Ingest +sources: + file: + type: "file" + include: [ "sample.log" ] + start_at_beginning: true + +# Structure and parse the data +transforms: + remap: + inputs: [ "file" ] + type: "remap" + drop_on_error: false + source: | + . |= parse_apache_log!(string!(.message), "common") + + # Transform into metrics + log_to_metric: + inputs: [ "remap" ] + type: "log_to_metric" + metrics: + - type: "counter" + increment_by_value: true + field: "bytes_out" + tags: + method: "{{method}}" + status: "{{status}}" + +# Output data +sinks: + console_metrics: + inputs: [ "log_to_metric" ] + type: "console" + encoding: + codec: "json" + + console_logs: + inputs: [ "remap" ] + type: "console" + encoding: + codec: "json" + + cloudwatch: + inputs: [ "log_to_metric" ] + type: "aws_cloudwatch_metrics" + namespace: "vector" + endpoint: "http://localhost:4566" diff --git a/config/examples/file_to_prometheus.toml b/config/examples/file_to_prometheus.toml deleted file mode 100644 index 2cd1400cc3371..0000000000000 --- a/config/examples/file_to_prometheus.toml +++ /dev/null @@ -1,62 +0,0 @@ -# Prometheus sink example -# ------------------------------------------------------------------------------ -# Parsing logs as metrics and exposing into Prometheus - -data_dir = "/var/lib/vector" - -# Ingest -[sources.file] -type = "file" -include = ["sample.log"] -start_at_beginning = true - -# Structure and parse the data -[transforms.regex_parser] -inputs = ["file"] -type = "regex_parser" -patterns = ['^(?P[\w\.]+) - (?P[\w-]+) \[(?P.*)\] "(?P[\w]+) (?P.*)" (?P[\d]+) (?P[\d]+)$'] - -# Transform into metrics -[transforms.log_to_metric] -inputs = ["regex_parser"] -type = "log_to_metric" - -[[transforms.log_to_metric.metrics]] -type = "counter" -field = "message" - -[[transforms.log_to_metric.metrics]] -type = "counter" -increment_by_value = true -field = "bytes_out" -name = "bytes_out_total" - -[[transforms.log_to_metric.metrics]] -type = "gauge" -field = "bytes_out" - -[[transforms.log_to_metric.metrics]] -type = "set" -field = "user" - -[[transforms.log_to_metric.metrics]] -type = "histogram" -field = "bytes_out" -name = "bytes_out_histogram" - -# Output data -[sinks.console_metrics] -inputs = ["log_to_metric"] -type = "console" -encoding = "json" - -[sinks.console_logs] -inputs = ["regex_parser"] -type = "console" -encoding = "text" - -[sinks.prometheus] -inputs = ["log_to_metric"] -type = "prometheus" -default_namespace = "vector" -buckets = [0.0, 10.0, 100.0, 1000.0, 10000.0, 100001.0] diff --git a/config/examples/file_to_prometheus.yaml b/config/examples/file_to_prometheus.yaml new file mode 100644 index 0000000000000..b3db53f1082fb --- /dev/null +++ b/config/examples/file_to_prometheus.yaml @@ -0,0 +1,64 @@ +# Prometheus sink example +# ---------------------------------------------------- +# Parsing logs as metrics and exposing into Prometheus +data_dir: "/var/lib/vector" + +# Ingest +sources: + file: + type: "file" + include: [ "sample.log" ] + start_at_beginning: true + +# Structure and parse the data +transforms: + remap: + inputs: [ "file" ] + type: "remap" + drop_on_error: false + source: ''' + . |= parse_apache_log!(string!(.message), "common") + ''' + + # Transform into metrics + log_to_metric: + inputs: [ "remap" ] + type: "log_to_metric" + metrics: + - type: "counter" + field: "message" + + - type: "counter" + increment_by_value: true + field: "bytes_out" + name: "bytes_out_total" + + - type: "gauge" + field: "bytes_out" + + - type: "set" + field: "user" + + - type: "histogram" + field: "bytes_out" + name: "bytes_out_histogram" + +# Output data +sinks: + console_metrics: + inputs: [ "log_to_metric" ] + type: "console" + encoding: + codec: "json" + + console_logs: + inputs: [ "remap" ] + type: "console" + encoding: + codec: "text" + + prometheus: + inputs: [ "log_to_metric" ] + type: "prometheus_exporter" + default_namespace: "vector" + buckets: [ 0.0, 10.0, 100.0, 1000.0, 10000.0, 100001.0 ] diff --git a/config/examples/namespacing/sinks/es_cluster.yaml b/config/examples/namespacing/sinks/es_cluster.yaml new file mode 100644 index 0000000000000..820a49080b474 --- /dev/null +++ b/config/examples/namespacing/sinks/es_cluster.yaml @@ -0,0 +1,6 @@ +# Send structured data to a short-term storage +inputs: ["apache_sample"] # only take sampled data +type: "elasticsearch" +endpoint: "http://79.12.221.222:9200" # local or external host +bulk: + index: "vector-%Y-%m-%d" # daily indices diff --git a/config/examples/namespacing/sinks/s3_archives.yaml b/config/examples/namespacing/sinks/s3_archives.yaml new file mode 100644 index 0000000000000..a72c27027e8a1 --- /dev/null +++ b/config/examples/namespacing/sinks/s3_archives.yaml @@ -0,0 +1,13 @@ +# Send structured data to a cost-effective long-term storage +inputs: ["apache_parser"] # don't sample for S3 +type: "aws_s3" +region: "us-east-1" +bucket: "my-log-archives" +key_prefix: "date=%Y-%m-%d" # daily partitions, hive friendly format +compression: "gzip" # compress final objects +framing: + method: "newline_delimited" # new line delimited... +encoding: + codec: "json" # ...JSON +batch: + max_bytes: 10000000 # 10mb uncompressed diff --git a/config/examples/namespacing/sources/apache_logs.yaml b/config/examples/namespacing/sources/apache_logs.yaml new file mode 100644 index 0000000000000..11104563ee025 --- /dev/null +++ b/config/examples/namespacing/sources/apache_logs.yaml @@ -0,0 +1,5 @@ +# Ingest data by tailing one or more files +type: "file" +include: # supports globbing + - "/var/log/apache2/*.log" +ignore_older_secs: 86400 # 1 day diff --git a/config/examples/namespacing/transforms/apache_parser.yaml b/config/examples/namespacing/transforms/apache_parser.yaml new file mode 100644 index 0000000000000..dec90f4bfebac --- /dev/null +++ b/config/examples/namespacing/transforms/apache_parser.yaml @@ -0,0 +1,7 @@ +# Preserve the comments from the original TOML file +# Structure and parse the data +inputs: ["apache_logs"] +type: "remap" +drop_on_error: false +source: | + . |= parse_apache_log!(string!(.message), "common") diff --git a/config/examples/namespacing/transforms/apache_sample.yaml b/config/examples/namespacing/transforms/apache_sample.yaml new file mode 100644 index 0000000000000..91b789e1016f2 --- /dev/null +++ b/config/examples/namespacing/transforms/apache_sample.yaml @@ -0,0 +1,4 @@ +# Sample the data to save on cost +inputs: ["apache_parser"] +type: "sample" +rate: 2 # only keep 50% (1/`rate`) diff --git a/config/examples/namespacing/vector.yaml b/config/examples/namespacing/vector.yaml new file mode 100644 index 0000000000000..14640214edb4e --- /dev/null +++ b/config/examples/namespacing/vector.yaml @@ -0,0 +1,2 @@ +# Set global options +data_dir: "/var/lib/vector" diff --git a/config/examples/prometheus_to_console.toml b/config/examples/prometheus_to_console.toml deleted file mode 100644 index 8c7666a2dc5b4..0000000000000 --- a/config/examples/prometheus_to_console.toml +++ /dev/null @@ -1,17 +0,0 @@ -# Prometheus source example -# ------------------------------------------------------------------------------ -# Scraping Prometheus metrics and printing them into console - -data_dir = "/var/lib/vector" - -# Ingest -[sources.prometheus] -type = "prometheus" -hosts = ["http://127.0.0.1:9090", "http://127.0.0.1:9090"] -scrape_interval_secs = 2 - -# Output -[sinks.console] -inputs = ["prometheus"] -type = "console" -encoding = "json" diff --git a/config/examples/prometheus_to_console.yaml b/config/examples/prometheus_to_console.yaml new file mode 100644 index 0000000000000..b8bd75ced04a2 --- /dev/null +++ b/config/examples/prometheus_to_console.yaml @@ -0,0 +1,20 @@ +# Prometheus source example +# ------------------------------------------------------------------------------ +# Scraping Prometheus metrics and printing them into console + +data_dir: "/var/lib/vector" + +# Ingest +sources: + prometheus: + type: "prometheus_scrape" + hosts: ["http://127.0.0.1:9090", "http://127.0.0.1:9090"] + scrape_interval_secs: 2 + +# Output +sinks: + console: + inputs: ["prometheus"] + type: "console" + encoding: + codec: "json" diff --git a/config/examples/stdio.toml b/config/examples/stdio.toml deleted file mode 100644 index 51b7233fc6d70..0000000000000 --- a/config/examples/stdio.toml +++ /dev/null @@ -1,14 +0,0 @@ -# STDIO Example -# ------------------------------------------------------------------------------ -# A simple STDIN / STDOUT example. This script is used in the getting started -# guide: -# -# https://vector.dev/guides/getting-started - -[sources.in] - type = "stdin" - -[sinks.out] - inputs = ["in"] - type = "console" - encoding = "text" diff --git a/config/examples/stdio.yaml b/config/examples/stdio.yaml new file mode 100644 index 0000000000000..cbe6429d8afae --- /dev/null +++ b/config/examples/stdio.yaml @@ -0,0 +1,17 @@ +# STDIO Example +# ------------------------------------------------------------------------------ +# A simple STDIN / STDOUT example. This script is used in the getting started +# guide: +# +# https://vector.dev/guides/getting-started + +sources: + in: + type: "stdin" + +sinks: + out: + inputs: [ "in" ] + type: "console" + encoding: + codec: "text" diff --git a/config/examples/wrapped_json.toml b/config/examples/wrapped_json.toml deleted file mode 100644 index 2eca30bbe7100..0000000000000 --- a/config/examples/wrapped_json.toml +++ /dev/null @@ -1,38 +0,0 @@ -# JSON Configuration Example -# ------------------------------------------------------------------------------ -# A simple example that parses incoming data as JSON. This example also -# demonstrated wrapped JSON, showing that you can chain parsers. - -data_dir = "/var/lib/vector" - -# Ingest data -# Example: {"message": "{\"parent\": \"{\\\"child\\\": \\\"value2\\\"}\"}"} -# Docs: https://vector.dev/docs/reference/sources/file -[sources.logs] - type = "file" - include = ["/var/log/*.log"] - ignore_older = 86400 # 1 day - -# Parse the data as JSON -# Docs: https://vector.dev/docs/reference/transforms/json_parser -[transforms.parse_root_json] - inputs = ["logs"] - type = "json_parser" - field = "message" # default - -[transforms.parse_parent_json] - inputs = ["parse_root_json"] - type = "json_parser" - field = "parent" - -[transforms.parse_child_json] - inputs = ["parse_parent_json"] - type = "json_parser" - field = "child" - -# Print the data to STDOUT for inspection -# Docs: https://vector.dev/docs/reference/sinks/console -[sinks.out] - inputs = ["parse_child_json"] - type = "console" - encoding = "json" diff --git a/config/examples/wrapped_json.yaml b/config/examples/wrapped_json.yaml new file mode 100644 index 0000000000000..fb14c077243d7 --- /dev/null +++ b/config/examples/wrapped_json.yaml @@ -0,0 +1,42 @@ +# JSON Configuration Example +# ------------------------------------------------------------------------------ +# A simple example that parses incoming data as JSON. This example also +# demonstrated wrapped JSON, showing that you can chain VRL expressions +# together to quickly traverse nested objects with simple path notation. + +data_dir: "/var/lib/vector" + +# Ingest data +# Example: {"message": "{\"parent\": \"{\\\"child\\\": \\\"value2\\\"}\"}"} +# Docs: https://vector.dev/docs/reference/sources/file +sources: + logs: + type: "file" + include: [ "/var/log/*.log" ] + ignore_older_secs: 86400 # 1 day + +# Parse the data as JSON +# Docs: https://vector.dev/docs/reference/transforms/remap +transforms: + parse_json: + inputs: [ "logs" ] + type: "remap" + drop_on_error: false + source: | + message = del(.message) + . |= object!(parse_json!(string!(message))) + + parent = del(.parent) + . |= object!(parse_json!(string!(parent))) + + child = del(.child) + . |= object!(parse_json!(string!(child))) + +# Print the data to STDOUT for inspection +# Docs: https://vector.dev/docs/reference/sinks/console +sinks: + out: + inputs: [ "parse_json" ] + type: "console" + encoding: + codec: "json" diff --git a/config/vector.toml b/config/vector.toml deleted file mode 100644 index 5ad1be1eda0a4..0000000000000 --- a/config/vector.toml +++ /dev/null @@ -1,48 +0,0 @@ -# __ __ __ -# \ \ / / / / -# \ V / / / -# \_/ \/ -# -# V E C T O R -# Configuration -# -# ------------------------------------------------------------------------------ -# Website: https://vector.dev -# Docs: https://vector.dev/docs/ -# Chat: https://chat.vector.dev -# ------------------------------------------------------------------------------ - -# data_dir = "/var/lib/vector" - -# Vector's API (disabled by default) -# Enable and try it out with the `vector top` command -[api] -enabled = false -# address = "127.0.0.1:8686" - -# Dummy Apache formatted logs -[sources.dummy_logs] -type = "generator" -format = "syslog" -interval = 1 - -# Parse Apache formatted logs -# See the Remap reference: https://vector.dev/docs/reference/vrl/ -[transforms.parse_logs] -type = "remap" -source = ''' -. = parse_syslog(.message) -''' - -# Host-level metrics (cpu, memory, disk, etc) -[sources.host_metrics] -type = "host_metrics" - -# Vector's own internal metrics -[sources.internal_metrics] -type = "internal_metrics" - -# Print it all out for inspection -[sinks.print] -type = "console" -inptus = ["parse_logs", "host_metrics", "internal_metrics"] diff --git a/config/vector.yaml b/config/vector.yaml new file mode 100644 index 0000000000000..590c2aa9ba152 --- /dev/null +++ b/config/vector.yaml @@ -0,0 +1,49 @@ +# __ __ __ +# \ \ / / / / +# \ 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" + json: + pretty: true + +# 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/cue.mod/module.cue b/cue.mod/module.cue new file mode 100644 index 0000000000000..caf275bea6bcf --- /dev/null +++ b/cue.mod/module.cue @@ -0,0 +1,10 @@ +// This file establishes the Vector repo as a CUE module that can be imported by +// other CUE libraries. This is here largely so that the CUE team can use the +// the Vector docs as an integration test case. See +// https://github.com/vectordotdev/vector/pull/6593. This currently has no effect +// on the Vector docs build. + +module: "vector.dev" +language: { + version: "v0.9.0" +} diff --git a/deny.toml b/deny.toml index 7061dc6a61f28..62104525de832 100644 --- a/deny.toml +++ b/deny.toml @@ -1,22 +1,31 @@ [licenses] allow = [ - "MIT", + "0BSD", + "Apache-2.0", + "BSD-2-Clause", + "BSD-3-Clause", + "BSL-1.0", "CC0-1.0", "ISC", + "MIT", "OpenSSL", - "Unlicense", - "BSD-2-Clause", - "BSD-3-Clause", - "Apache-2.0", - "Apache-2.0 WITH LLVM-exception", - "Zlib", + "Unicode-3.0", + "Unicode-DFS-2016", + "Zlib" ] -unlicensed = "warn" -default = "warn" - private = { ignore = true } +exceptions = [ + # MPL-2.0 are added case-by-case to make sure we are in compliance. To be in + # compliance we cannot be modifying the source files. + { allow = ["MPL-2.0"], name = "colored", version = "*" }, + { allow = ["MPL-2.0"], name = "webpki-roots", version = "*" }, + { allow = ["MPL-2.0"], name = "vector-config-common", version = "*" }, + { allow = ["MPL-2.0"], name = "vector-config-macros", version = "*" }, + { allow = ["MPL-2.0"], name = "vrl", version = "*" }, +] + [[licenses.clarify]] name = "ring" version = "*" @@ -27,40 +36,30 @@ license-files = [ [advisories] ignore = [ - # term is looking for a new maintainer - # https://github.com/timberio/vector/issues/6225 - "RUSTSEC-2018-0015", - - # `net2` crate has been deprecated; use `socket2` instead - # https://github.com/timberio/vector/issues/5582 - "RUSTSEC-2020-0016", - - # Type confusion if __private_get_type_id__ is overriden - # https://github.com/timberio/vector/issues/5583 - "RUSTSEC-2019-0036", - "RUSTSEC-2020-0036", - - # dirs is unmaintained, use dirs-next instead - # https://github.com/timberio/vector/issues/5584 - "RUSTSEC-2020-0053", - - # stdweb is unmaintained - # https://github.com/timberio/vector/issues/5585 - "RUSTSEC-2020-0056", + # Vulnerability in `rsa` crate: https://rustsec.org/advisories/RUSTSEC-2023-0071.html + # There is not fix available yet. + # https://github.com/vectordotdev/vector/issues/19262 + "RUSTSEC-2023-0071", - # Some lock_api lock guard objects can cause data races - # https://github.com/timberio/vector/issues/5587 - "RUSTSEC-2020-0070", + # Vulnerability in `tonic` crate: https://rustsec.org/advisories/RUSTSEC-2024-0376 + # There is a fixed version (v0.12.3) but we are blocked from upgrading to `http` v1, which + # `tonic` v0.12 depends on. See https://github.com/vectordotdev/vector/issues/19179 + "RUSTSEC-2024-0376", - # GenericMutexGuard allows data races of non-Sync types across threads - # https://github.com/timberio/vector/issues/5586 - "RUSTSEC-2020-0072", + # Advisory in rustls crate: https://rustsec.org/advisories/RUSTSEC-2024-0336 If a `close_notify` + # alert is received during a handshake, `complete_io` does not terminate. + # Vulnerable version only used in dev-dependencies + "RUSTSEC-2024-0336", - # difference is unmaintained - # https://github.com/timberio/vector/issues/6224 - "RUSTSEC-2020-0095", + # idna accepts Punycode labels that do not produce any non-ASCII when decoded + # Need to update some direct dependencies before we can upgrade idna to fix + "RUSTSEC-2024-0421", - # Soundness issues in `raw-cpuid` - # https://github.com/timberio/vector/issues/6223 - "RUSTSEC-2021-0013", + # unmaintained dependencies + "RUSTSEC-2021-0139", # ansi_term + "RUSTSEC-2024-0388", # derivative + "RUSTSEC-2024-0384", # instant` + "RUSTSEC-2020-0168", # mach + "RUSTSEC-2024-0370", # proc-macro-error + "RUSTSEC-2024-0320", # yaml-rust ] diff --git a/distribution/debian/scripts/postinst b/distribution/debian/scripts/postinst index 593a9599a586e..d20a3bc4cb52b 100755 --- a/distribution/debian/scripts/postinst +++ b/distribution/debian/scripts/postinst @@ -4,11 +4,18 @@ set -e # Add Vector to adm group to read /var/logs usermod --append --groups adm vector || true -# If the systemd-journal group is present -if getent group | grep 'systemd-journald' +if getent group 'systemd-journal' then # Add Vector to systemd-journal to read journald logs usermod --append --groups systemd-journal vector || true - # Reload the daemon to reflect new group membership - systemctl daemon-reload + systemctl daemon-reload || true fi + +if getent group 'systemd-journal-remote' +then + # Add Vector to systemd-journal-remote to read remote journald logs + usermod --append --groups systemd-journal-remote vector || true + systemctl daemon-reload || true +fi + +#DEBHELPER# diff --git a/distribution/debian/scripts/preinst b/distribution/debian/scripts/preinst index d511c17228228..373da4aad17ec 100755 --- a/distribution/debian/scripts/preinst +++ b/distribution/debian/scripts/preinst @@ -2,10 +2,14 @@ set -e # Add vector:vector user & group -id --user vector >/dev/null 2>&1 || useradd -M --system --user-group vector +id --user vector >/dev/null 2>&1 || \ + useradd --system --shell /sbin/nologin --home-dir /var/lib/vector --user-group \ + --comment "Vector observability data router" vector # Create default Vector data directory mkdir -p /var/lib/vector # Make vector:vector the owner of the Vector data directory chown -R vector:vector /var/lib/vector + +#DEBHELPER# diff --git a/distribution/docker/README.md b/distribution/docker/README.md index 52905ac17c3d9..249e76c43b2df 100644 --- a/distribution/docker/README.md +++ b/distribution/docker/README.md @@ -1,6 +1,6 @@

- Website  •  Docs  •  Community  •  Github + Website  •  Docs  •  Community  •  GitHub

@@ -36,7 +36,7 @@ observability data with Vector. As shown above, you can pass a custom [Vector configuration file][docs.setup.configuration] via the `-c` flag. You'll want to do this since the -[default `/etc/vector/vector.toml` configuration file][urls.default_configuration] +[default `/etc/vector/vector.yaml` configuration file][urls.default_configuration] doesn't do anything. ## Deploying @@ -115,7 +115,7 @@ Vector maintains special tags that are automatically updated whenever Vector is ### Source Files Vector's Docker source files are located -[in it's Github repo][urls.vector_docker_source_files]. +[in it's GitHub repo][urls.vector_docker_source_files]. [docs.administration]: https://vector.dev/docs/administration/ [docs.setup.configuration]: https://vector.dev/docs/setup/configuration/ @@ -128,11 +128,11 @@ Vector's Docker source files are located [docs.transforms]: https://vector.dev/docs/reference/transforms/ [pages.index#correctness]: https://vector.dev/#correctness [pages.index#performance]: https://vector.dev/#performance -[urls.default_configuration]: https://github.com/timberio/vector/blob/master/config/vector.toml +[urls.default_configuration]: https://github.com/vectordotdev/vector/blob/master/config/vector.yaml [urls.docker_alpine]: https://hub.docker.com/_/alpine [urls.docker_debian]: https://hub.docker.com/_/debian [urls.rust]: https://www.rust-lang.org/ -[urls.vector_docker_source_files]: https://github.com/timberio/vector/tree/master/distribution/docker +[urls.vector_docker_source_files]: https://github.com/vectordotdev/vector/tree/master/distribution/docker [urls.vector_releases]: https://vector.dev/releases/latest/ -[urls.vector_repo]: https://github.com/timberio/vector +[urls.vector_repo]: https://github.com/vectordotdev/vector [urls.distroless]: https://github.com/GoogleContainerTools/distroless diff --git a/distribution/docker/README.md.erb b/distribution/docker/README.md.erb index 5f8ebe8528979..583251277f8f2 100644 --- a/distribution/docker/README.md.erb +++ b/distribution/docker/README.md.erb @@ -1,6 +1,6 @@

- ">Website  •  ">Docs  •  ">Community  •  ">Github + ">Website  •  ">Docs  •  ">Community  •  ">GitHub

diff --git a/distribution/docker/alpine/Dockerfile b/distribution/docker/alpine/Dockerfile index 2f27795b06c02..1e56e5b6aa01e 100644 --- a/distribution/docker/alpine/Dockerfile +++ b/distribution/docker/alpine/Dockerfile @@ -1,16 +1,25 @@ -FROM alpine:3.12 AS builder +FROM docker.io/alpine:3.21 AS builder WORKDIR /vector +ARG TARGETPLATFORM + COPY vector-*-unknown-linux-musl*.tar.gz ./ -RUN tar -xvf vector-0*-$(cat /etc/apk/arch)-unknown-linux-musl*.tar.gz --strip-components=2 -FROM alpine:3.12 -RUN apk update && apk add ca-certificates tzdata && rm -rf /var/cache/apk/* +# special case for arm v6 builds, /etc/apk/arch reports armhf which conflicts with the armv7 package +RUN ARCH=$(if [ "$TARGETPLATFORM" = "linux/arm/v6" ]; then echo "arm"; else cat /etc/apk/arch; fi) \ + && tar -xvf vector-0*-"$ARCH"-unknown-linux-musl*.tar.gz --strip-components=2 + +RUN mkdir -p /var/lib/vector + +FROM docker.io/alpine:3.21 +# we want the latest versions of these +# hadolint ignore=DL3018 +RUN apk --no-cache add ca-certificates tzdata COPY --from=builder /vector/bin/* /usr/local/bin/ -COPY --from=builder /vector/config/vector.toml /etc/vector/vector.toml -VOLUME /var/lib/vector/ +COPY --from=builder /vector/config/vector.yaml /etc/vector/vector.yaml +COPY --from=builder /var/lib/vector /var/lib/vector # Smoke test RUN ["vector", "--version"] diff --git a/distribution/docker/debian/Dockerfile b/distribution/docker/debian/Dockerfile index f8dd02172a6f5..c678dfd3080ee 100644 --- a/distribution/docker/debian/Dockerfile +++ b/distribution/docker/debian/Dockerfile @@ -1,16 +1,23 @@ -FROM debian:buster-slim AS builder +FROM docker.io/debian:bookworm-slim AS builder -COPY vector-*.deb ./ -RUN dpkg -i vector-*-$(dpkg --print-architecture).deb +WORKDIR /vector -FROM debian:buster-slim +COPY vector_*.deb ./ +RUN dpkg -i vector_*_"$(dpkg --print-architecture)".deb -RUN apt-get update && apt-get install -y ca-certificates tzdata systemd && rm -rf /var/lib/apt/lists/* +RUN mkdir -p /var/lib/vector + +FROM docker.io/debian:bookworm-slim + +# we want the latest versions of these +# hadolint ignore=DL3008 +RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates tzdata systemd && rm -rf /var/lib/apt/lists/* COPY --from=builder /usr/bin/vector /usr/bin/vector +COPY --from=builder /usr/share/vector /usr/share/vector COPY --from=builder /usr/share/doc/vector /usr/share/doc/vector COPY --from=builder /etc/vector /etc/vector -VOLUME /var/lib/vector/ +COPY --from=builder /var/lib/vector /var/lib/vector # Smoke test RUN ["vector", "--version"] diff --git a/distribution/docker/distroless-libc/Dockerfile b/distribution/docker/distroless-libc/Dockerfile index 7a61fef47dfcd..2a0f7084c9a52 100644 --- a/distribution/docker/distroless-libc/Dockerfile +++ b/distribution/docker/distroless-libc/Dockerfile @@ -1,14 +1,21 @@ -FROM debian:buster-slim AS builder +FROM docker.io/debian:bookworm-slim AS builder -COPY vector-*.deb ./ -RUN dpkg -i vector-*-$(dpkg --print-architecture).deb +WORKDIR /vector -FROM gcr.io/distroless/cc-debian10 +COPY vector_*.deb ./ +RUN dpkg -i vector_*_"$(dpkg --print-architecture)".deb + +RUN mkdir -p /var/lib/vector + +# distroless doesn't use static tags +# hadolint ignore=DL3007 +FROM gcr.io/distroless/cc-debian12:latest COPY --from=builder /usr/bin/vector /usr/bin/vector COPY --from=builder /usr/share/doc/vector /usr/share/doc/vector +COPY --from=builder /usr/share/vector /usr/share/vector COPY --from=builder /etc/vector /etc/vector -VOLUME /var/lib/vector/ +COPY --from=builder /var/lib/vector /var/lib/vector # Smoke test RUN ["vector", "--version"] diff --git a/distribution/docker/distroless-static/Dockerfile b/distribution/docker/distroless-static/Dockerfile index 9ff5e8342980d..0c54991b93836 100644 --- a/distribution/docker/distroless-static/Dockerfile +++ b/distribution/docker/distroless-static/Dockerfile @@ -1,15 +1,19 @@ -FROM alpine:3.12 AS builder +FROM docker.io/alpine:3.21 AS builder WORKDIR /vector COPY vector-*-unknown-linux-musl*.tar.gz ./ -RUN tar -xvf vector-0*-$(cat /etc/apk/arch)-unknown-linux-musl*.tar.gz --strip-components=2 +RUN tar -xvf vector-0*-"$(cat /etc/apk/arch)"-unknown-linux-musl*.tar.gz --strip-components=2 -FROM gcr.io/distroless/static +RUN mkdir -p /var/lib/vector + +# distroless doesn't use static tags +# hadolint ignore=DL3007 +FROM gcr.io/distroless/static:latest COPY --from=builder /vector/bin/* /usr/local/bin/ -COPY --from=builder /vector/config/vector.toml /etc/vector/vector.toml -VOLUME /var/lib/vector/ +COPY --from=builder /vector/config/vector.yaml /etc/vector/vector.yaml +COPY --from=builder /var/lib/vector /var/lib/vector # Smoke test RUN ["vector", "--version"] diff --git a/distribution/helm/README.md b/distribution/helm/README.md index 40707034f537e..5fe8c8f3e032d 100644 --- a/distribution/helm/README.md +++ b/distribution/helm/README.md @@ -1,29 +1,5 @@ -# Vector Helm Chart +# Moved -## Important design aspects +The helm charts originally developed as part of this repository have been moved to [vectordotdev/helm-charts](https://github.com/vectordotdev/helm-charts/). -Our charts use Helm dependency system, however we only use local (`file://...`) -dependencies, and *no external dependencies*. - -The mental model we use to manage our charts, and the automation around them -relies on this fact, so if you're introducing external dependencies know that -some of the design decisions have to be revisited. - -## Development - -As previously noted, our charts use Helm dependency system. - -Helm vendors it's dependencies, so, when working on Helm charts, it's important -to keep the local dependencies up to date. - -To aid with this task, a script `scripts/helm-dependencies.sh` was created. -Calling it with `update` argument will update the dependencies of all our crates -to each other in the proper order, making sure the changes are propagated to all -the charts. - -Typical development iteration cycle looks like this: - -1. Edit a file that is part of, for instance, the `vector-shared` chart, save it. -2. `scripts/helm-dependencies.sh update` -3. `helm install vector distribution/helm/vector` (or `helm template ...`, or - whatever you prefer to test your work). +Issues and pull requests should be tracked using the [vectordotdev/helm-charts](https://github.com/vectordotdev/helm-charts/) repository. diff --git a/distribution/helm/scripting-config.sh b/distribution/helm/scripting-config.sh deleted file mode 100644 index e47c0db01ff60..0000000000000 --- a/distribution/helm/scripting-config.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -# This file holds the shared configuration for various helm automation scripts. - -# The order in which the dependency updates are issued. -# shellcheck disable=SC2034 -DEPENDENCY_UPDATE_ORDER=( - # Lowest level. - vector-shared - - # Intermediate level. - vector-agent - vector-aggregator - - # Highest level. - vector -) - -# The list of charts to release to our chart repo. -# We only need to release the application charts, library charts don't need to -# be released. -# shellcheck disable=SC2034 -CHARTS_TO_PUBLISH=( - vector-agent - vector-aggregator - vector -) diff --git a/distribution/helm/vector-agent/.helmignore b/distribution/helm/vector-agent/.helmignore deleted file mode 100644 index 0e8a0eb36f4ca..0000000000000 --- a/distribution/helm/vector-agent/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/distribution/helm/vector-agent/Chart.yaml b/distribution/helm/vector-agent/Chart.yaml deleted file mode 100644 index 0c46dbf289f3c..0000000000000 --- a/distribution/helm/vector-agent/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -name: vector-agent -type: application -icon: https://vector.dev/press/vector-icon.svg -description: A Helm chart to collect Kubernetes logs with Vector -version: "0.0.0" # overwritten via --version on publishing -appVersion: "0.0.0" # overwritten via --app-version on publishing -home: https://vector.dev/ -sources: - - https://github.com/timberio/vector/ -maintainers: - - name: Vector Contributors - email: vector@timber.io -dependencies: - - name: vector-shared - version: "*" - repository: file://../vector-shared diff --git a/distribution/helm/vector-agent/README.md b/distribution/helm/vector-agent/README.md deleted file mode 100644 index b1e2a75b4f162..0000000000000 --- a/distribution/helm/vector-agent/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# [Vector](https://vector.dev) Helm Chart - -This is an opinionated Helm Chart for running [Vector](https://vector.dev) in Kubernetes. - -Our charts use Helm's dependency system, however we only use local dependencies. -Head over to the repo for [more information on development and contribution](https://github.com/timberio/vector/tree/master/distribution/helm). - -To get started check out our [documentation](https://master.vector.dev/docs/setup/installation/platforms/kubernetes/) diff --git a/distribution/helm/vector-agent/charts/vector-shared b/distribution/helm/vector-agent/charts/vector-shared deleted file mode 120000 index b734c62fcce50..0000000000000 --- a/distribution/helm/vector-agent/charts/vector-shared +++ /dev/null @@ -1 +0,0 @@ -../../vector-shared \ No newline at end of file diff --git a/distribution/helm/vector-agent/templates/_helpers.tpl b/distribution/helm/vector-agent/templates/_helpers.tpl deleted file mode 100644 index db96a0e875b5a..0000000000000 --- a/distribution/helm/vector-agent/templates/_helpers.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{{/* vim: set filetype=mustache: */}} - -{{/* -Resolve effective address to use at the built-in vector sink. -*/}} -{{- define "vector-agent.vectorSinkAddress" -}} -{{- $host := required "You must specify the `vectorSink.host` for the built-in vector sink host" .Values.vectorSink.host }} -{{- $port := required "You must specify the `vectorSink.port` for the built-in vector sink port" .Values.vectorSink.port }} -{{- printf "%s:%s" $host (toString $port) }} -{{- end }} diff --git a/distribution/helm/vector-agent/templates/configmap.yaml b/distribution/helm/vector-agent/templates/configmap.yaml deleted file mode 100644 index 3d409bb4d7f0b..0000000000000 --- a/distribution/helm/vector-agent/templates/configmap.yaml +++ /dev/null @@ -1,52 +0,0 @@ -{{- if (empty .Values.existingConfigMap) -}} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "libvector.configMapName" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} -data: - # We leave `vector.toml` file name available to let externally managed config - # maps to provide it. - managed.toml: | - {{- include "libvector.vectorConfigHeader" . | nindent 4 -}} - - {{- with .Values.kubernetesLogsSource }} - {{- if .enabled }} - # Ingest logs from Kubernetes. - {{- $value := merge (dict) .config -}} - {{- $_ := set $value "type" "kubernetes_logs" -}} - {{- $_ := set $value "rawConfig" .rawConfig -}} - {{- tuple .sourceId $value | include "libvector.vectorSourceConfig" | nindent 4 -}} - {{- end }} - {{- end }} - - {{- with .Values.vectorSink -}} - {{- if .enabled }} - # Send logs to the aggregator. - {{- $value := merge (dict) .config -}} - {{- $_ := set $value "type" "vector" -}} - {{- $_ := set $value "inputs" (required "You must specify the `inputs` for the built-in vector sink" .inputs) -}} - {{- $_ := set $value "address" (include "vector-agent.vectorSinkAddress" $) -}} - {{- $_ := set $value "rawConfig" .rawConfig -}} - {{- tuple .sinkId $value | include "libvector.vectorSinkConfig" | nindent 4 -}} - {{- end }} - {{- end }} - - {{- $prometheusInputs := (list) -}} - {{- with .Values.hostMetricsSource -}} - {{- if .enabled }} - {{- $prometheusInputs = prepend $prometheusInputs .sourceId }} - # Capture the metrics from the host. - {{- $value := merge (dict) .config -}} - {{- $_ := set $value "type" "host_metrics" -}} - {{- $_ := set $value "rawConfig" .rawConfig -}} - {{- tuple .sourceId $value | include "libvector.vectorSourceConfig" | nindent 4 -}} - {{- end -}} - {{- end -}} - - {{- merge . (dict "prometheusInputs" $prometheusInputs) | include "libvector.metricsConfigPartial" | nindent 4 -}} - - {{- include "libvector.vectorTopology" .Values | nindent 4 -}} - -{{- end }} diff --git a/distribution/helm/vector-agent/templates/daemonset.yaml b/distribution/helm/vector-agent/templates/daemonset.yaml deleted file mode 100644 index ea9f87cd25a54..0000000000000 --- a/distribution/helm/vector-agent/templates/daemonset.yaml +++ /dev/null @@ -1,153 +0,0 @@ -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: {{ include "libvector.fullname" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} -spec: - selector: - matchLabels: - {{- include "libvector.selectorLabels" . | nindent 6 }} - minReadySeconds: 1 - updateStrategy: - type: {{ .Values.updateStrategy }} - template: - metadata: - annotations: - {{- include "libvector.rerollAnnotations" . | nindent 8 }} - {{- include "libvector.metricsPrometheusPodAnnotations" . | nindent 8 }} - {{- with .Values.podAnnotations }} - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- with .Values.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- include "libvector.selectorLabels" . | nindent 8 }} - vector.dev/exclude: "true" - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "libvector.serviceAccountName" . }} - securityContext: - {{- toYaml .Values.podSecurityContext | nindent 8 }} - containers: - - name: vector - securityContext: - {{- toYaml .Values.securityContext | nindent 12 }} - image: {{ include "libvector.image" . | quote }} - imagePullPolicy: "{{ .Values.image.pullPolicy }}" - args: - - --config - - /etc/vector/*.toml - env: - - name: VECTOR_SELF_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: VECTOR_SELF_POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: VECTOR_SELF_POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - {{- if .Values.hostMetricsSource.enabled }} - - name: PROCFS_ROOT - value: /host/proc - - name: SYSFS_ROOT - value: /host/sys - {{- end }} - {{- include "libvector.globalEnv" . | nindent 12 }} - {{- with .Values.env }} - {{- toYaml . | nindent 12 }} - {{- end }} - ports: - {{- include "libvector.metricsContainerPorts" . | nindent 12 }} - {{- with .Values.extraContainersPorts }} - {{- toYaml . | nindent 12 }} - {{- end }} - resources: - {{- toYaml .Values.resources | nindent 12 }} - volumeMounts: - # Host log directory mount. - - name: var-log - mountPath: /var/log/ - readOnly: true - # Host mount for docker and containerd log file symlinks. - - name: var-lib - mountPath: /var/lib - readOnly: true - # Vector data dir mount. - - name: data-dir - mountPath: "{{ .Values.globalOptions.dataDir }}" - # Vector config dir mount. - - name: config-dir - mountPath: /etc/vector - readOnly: true - {{- if .Values.hostMetricsSource.enabled }} - # Host procsfs mount. - - name: procfs - mountPath: /host/proc - readOnly: true - # Host sysfs mount. - - name: sysfs - mountPath: /host/sys - readOnly: true - {{- end }} - {{- with .Values.extraVolumeMounts }} - # Extra volumes. - {{- toYaml . | nindent 12 }} - {{- end }} - terminationGracePeriodSeconds: 60 - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - volumes: - # Log directory. - - name: var-log - hostPath: - path: /var/log/ - # Docker and containerd log files in Kubernetes are symlinks to this folder. - - name: var-lib - hostPath: - path: /var/lib/ - # Vector will store it's data here. - - name: data-dir - hostPath: - path: /var/lib/vector/ - # Vector config dir. - - name: config-dir - projected: - sources: - - configMap: - name: {{ include "libvector.configMapName" . }} - {{- with .Values.extraConfigDirSources }} - {{- toYaml . | nindent 14 }} - {{- end }} - {{- if .Values.hostMetricsSource.enabled }} - # Host procsfs. - - name: procfs - hostPath: - path: /proc - # Host sysfs. - - name: sysfs - hostPath: - path: /sys - {{- end }} - {{- with .Values.extraVolumes }} - # Extra volumes. - {{- toYaml . | nindent 8 }} - {{- end }} diff --git a/distribution/helm/vector-agent/templates/podmonitor.yaml b/distribution/helm/vector-agent/templates/podmonitor.yaml deleted file mode 100644 index 2d9d8021cdb29..0000000000000 --- a/distribution/helm/vector-agent/templates/podmonitor.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "libvector.metricsPodMonitor" . -}} diff --git a/distribution/helm/vector-agent/templates/podsecuritypolicy.yaml b/distribution/helm/vector-agent/templates/podsecuritypolicy.yaml deleted file mode 100644 index 010aa6c26966b..0000000000000 --- a/distribution/helm/vector-agent/templates/podsecuritypolicy.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{- if .Values.psp.enabled }} -apiVersion: policy/v1beta1 -kind: PodSecurityPolicy -metadata: - name: {{ include "libvector.fullname" . }} -spec: - privileged: false - allowPrivilegeEscalation: false - readOnlyRootFilesystem: false - requiredDropCapabilities: - - ALL - volumes: - - 'hostPath' - - 'configMap' - - 'secret' - - 'projected' - allowedHostPaths: - - pathPrefix: "/var/log" - readOnly: true - - pathPrefix: "/var/lib" - readOnly: true - - pathPrefix: "/var/lib/vector" - readOnly: false - {{- range .Values.extraVolumes }} - {{- if .hostPath }} - - pathPrefix: {{ .hostPath.path }} - {{- end }} - {{- end }} - hostNetwork: false - hostIPC: false - hostPID: false - runAsUser: - rule: 'RunAsAny' - seLinux: - rule: 'RunAsAny' - supplementalGroups: - rule: 'MustRunAs' - ranges: - - min: 1 - max: 65535 - fsGroup: - rule: 'MustRunAs' - ranges: - - min: 1 - max: 65535 -{{- end }} diff --git a/distribution/helm/vector-agent/templates/rbac.yaml b/distribution/helm/vector-agent/templates/rbac.yaml deleted file mode 100644 index 63d5a37a42899..0000000000000 --- a/distribution/helm/vector-agent/templates/rbac.yaml +++ /dev/null @@ -1,40 +0,0 @@ -{{- if .Values.rbac.enabled -}} -# Permissions to use Kubernetes API. -# Requires that RBAC authorization is enabled. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ include "libvector.fullname" . }} -rules: - - apiGroups: - - "" - resources: - - pods - verbs: - - watch -{{- if .Values.psp.enabled }} - - apiGroups: - - policy - resources: - - podsecuritypolicies - verbs: - - use - resourceNames: - - {{ include "libvector.fullname" . }} -{{- end }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: {{ include "libvector.fullname" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ include "libvector.fullname" . }} -subjects: - - kind: ServiceAccount - name: {{ include "libvector.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -{{- end }} diff --git a/distribution/helm/vector-agent/templates/serviceaccount.yaml b/distribution/helm/vector-agent/templates/serviceaccount.yaml deleted file mode 100644 index 8d9a76e5f52d0..0000000000000 --- a/distribution/helm/vector-agent/templates/serviceaccount.yaml +++ /dev/null @@ -1,12 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "libvector.serviceAccountName" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -{{- end }} diff --git a/distribution/helm/vector-agent/values.yaml b/distribution/helm/vector-agent/values.yaml deleted file mode 100644 index d6dbb0c463b93..0000000000000 --- a/distribution/helm/vector-agent/values.yaml +++ /dev/null @@ -1,260 +0,0 @@ -# Default values for vector-agent. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -image: - repository: timberio/vector - pullPolicy: IfNotPresent - # Overrides the image tag, the default is `{image.version}-{image.base}`. - tag: "" - # Overrides the image version, the default is the Chart appVersion. - version: "" - base: "debian" - -# Image pull secrets to use at the `Pod`s managed by `DaemonSet`. -imagePullSecrets: [] - -# Override the chart name used in templates. -nameOverride: "" -# Override the full chart name (name prefixed with release name) used in -# templates. -fullnameOverride: "" - -updateStrategy: RollingUpdate - -serviceAccount: - # Specifies whether a service account should be created. - create: true - # Annotations to add to the service account. - annotations: {} - # The name of the service account to use. - # If not set and `create` is true, a name is generated using the `fullname` - # template. - name: "" - -# Add an annotation to the `Pod`s managed by `DaemonSet` with a random value, -# generated at Helm Chart template evaluation time. -# Enabling this will cause the `Pod`s to be recreated every time the value -# changes - effectively restarting them on each update. -podRollmeAnnotation: false - -# Add an annotation to the `Pod`s managed by `DaemonSet` with a checksum of -# the Helm release values (as in `values.yaml` content and `--set` flags). -# Enabling this will cause the `Pod`s to be recreated every time values -# change. -podValuesChecksumAnnotation: false - -# Annotations to add to the `Pod`s managed by `DaemonSet`. -podAnnotations: {} - -# Labels to add to the `Pod`s managed by `DaemonSet`. -podLabels: {} - -# PodSecurityContext to set at the `Pod`s managed by `DaemonSet`. -podSecurityContext: {} - # fsGroup: 2000 - -# Security context to set at the `vector` container at the `Pod`s managed by -# `DaemonSet`. -securityContext: {} - # capabilities: - # drop: - # - ALL - # readOnlyRootFilesystem: true - # runAsNonRoot: true - # runAsUser: 1000 - -# Extra env vars to pass to the `vector` container. -env: [] - -# Tolerations to set for the `Pod`s managed by `DaemonSet`. -tolerations: - # This toleration is to have the `DaemonSet` runnable on master nodes. - # Remove it if your masters can't run pods. - - key: node-role.kubernetes.io/master - effect: NoSchedule - -# Various tweakables for the `Pod`s managed by `DaemonSet`. -resources: {} -nodeSelector: {} -affinity: {} - -# Additional container ports to pass to the `vector` container of the `Pod`s -# managed by `DaemonSet`. -extraContainersPorts: [] - -# Additional sources to include at the `config-dir` projection of the `Pod`s -# managed by `DaemonSet`. -extraConfigDirSources: [] - -# Additional volumes to pass to the `Pod`s managed by `DaemonSet`. -extraVolumes: [] - -# Additional volume mounts to pass to the `vector` container of the `Pod`s -# managed by `DaemonSet`. -extraVolumeMounts: [] - -rbac: - # Whether to create rbac resources or not. Disable for non-rbac clusters. - enabled: true - -psp: - # Whether to create `PodSecurityPolicy` or not. - enabled: false - -# Set this to non-empty value to use existing `ConfigMap` for `vector`, instead -# of using a generated one. -existingConfigMap: "" - -# Global parts of the generated `vector` config. -globalOptions: - # Specifies the (in-container) data dir used by `vector`. - dataDir: "/vector-data-dir" - -# Schema part of the generated `vector` config. -logSchema: - hostKey: "host" - messageKey: "message" - sourceTypeKey: "source_type" - timestampKey: "timestamp" - -# The Vector API. -# Will be disabled by default. -vectorApi: - # Turn the Vector API on or off. - enabled: false - # The address to listen at. - address: "0.0.0.0:8686" - # Enable or disable the built-in GraphQL Playground (a web IDE for working on GraphQL queries). - playground: true - -# The "built-in" kubernetes logs source to collect logs from the `Pod`s running -# on the `Node`. -# Will be added by default, unless explicitly disabled. -kubernetesLogsSource: - # Disable to omit the kubernetes logs source from being added. - enabled: true - # The name to use for the "built-in" kubernetes logs source. - sourceId: kubernetes_logs - # Additional config to embed at the kubernetes logs source. - config: {} - # option: "value" - # Raw TOML config to embed at the kubernetes logs source (deprecated). - rawConfig: null - -# The "built-in" vector sink, to send the logs to the vector aggregator. -# Disabled by default when using `vector-agent` chart. -# Enabled by default when using `vector` chart, and automatically configured. -vectorSink: - # Disable to omit the vector sink from being added. - enabled: false - # The name to use for the "built-in" vector sink. - sinkId: vector_sink - # Inputs of the built-in vector sink. - inputs: null # ["my_input_1", "my_input_2"] - # The host of the Vector to send the data to. - host: null # "vector.internal" - # The port of the Vector to send the data to. - port: null # 9000 - # Additional config to embed at the vector sink. - config: {} - # option: "value" - # Raw TOML config to embed at the vector sink (deprecated). - rawConfig: null - -# The "built-in" internal metrics source emitting Vector's internal opertaional -# metrics. -internalMetricsSource: - # Disable to omit the internal metrics source from being added. - enabled: true - # The name to use for the "built-in" internal metrics source. - sourceId: internal_metrics - # Additional config to embed at the internal metrics source. - config: {} - # option: "value" - # Raw TOML config to embed at the internal metrics source (deprecated). - rawConfig: null - -# The "built-in" host metrics source emitting the metrics gathered from the node -# that Vector is executing on. -hostMetricsSource: - # Disable to omit the host metrics source from being added. - enabled: true - # The name to use for the "built-in" host metrics source. - sourceId: host_metrics - # Additional config to embed at the host metrics source. - config: {} - # option: "value" - # Raw TOML config to embed at the host metrics source (deprecated). - rawConfig: null - -# The "built-in" prometheus sink exposing metrics in the Prometheus scraping -# format. -# When using this "built-in" sink, we automatically configure container ports, -# and ensure things are ready for discovery and scraping via Prometheus' -# `kubernetes_sd_configs` jobs. -prometheusSink: - # Disable to omit the prometheus sink from being added. - enabled: true - # The name to use for the "built-in" prometheus sink. - sinkId: prometheus_sink - # Inputs of the built-in prometheus sink. - # If you have built-in internal metrics source enabled, we'll add it as a - # input here under the hood, so you don't have to pass it here. - # Unless `excludeInternalMetrics` is set to `true`, in which case you're - # responsible of wiring up the internal metrics. - inputs: [] - # Set this to `true` to opt-out from automatically adding the built-in - # internal metrics source to the inputs. - excludeInternalMetrics: false - # The address to listen at. - listenAddress: "0.0.0.0" - # The port to listen at. - listenPort: "9090" - # Additional config to embed at the prometheus sink. - config: {} - # option: "value" - # Raw TOML config to embed at the prometheus sink (deprecated). - rawConfig: null - # Add Prometheus annotations to Pod to opt-in for Prometheus scraping. - # To be used in clusters that rely on Pod annotations in the form of - # `prometheus.io/scrape` to discover scrape targets. - addPodAnnotations: false - # Use prometheus-operator `PodMonitor` to opt-in for Prometheus scraping. - # To be used in clusters that rely on prometheus-operator to gether metrics. - # You might want to set `podMonitorSelectorNilUsesHelmValues=false` if you're - # using prometheus-operator Helm chart to allow `PodMonitor` resources - # dicovery in all namespaces. - podMonitor: - # Whether to add the `PodMonitor` resource or not. - # `prometheus-operator` CRDs are necessary, otherwise you'll get an error. - enabled: false - # Additional relabelings to include in the `PodMonitor`. - extraRelabelings: [] - -# Sources to add to the generated `vector` config (besides "built-in" kubernetes -# logs source). -sources: {} - # source_name: - # type: "source_type" - # option: "value" - # rawConfig: | - # option = "value" - -# Transforms to add to the generated `vector` config. -transforms: {} - # transform_name: - # type: "transform_type" - # inputs: ["input1", "input2"] - # option: "value" - # rawConfig: | - # option = "value" - -# Sinks to add to the generated `vector` config. -sinks: {} - # sink_name: - # type: "sink_type" - # inputs: ["input1", "input2"] - # option: "value" - # rawConfig: | - # option = "value" diff --git a/distribution/helm/vector-aggregator/.helmignore b/distribution/helm/vector-aggregator/.helmignore deleted file mode 100644 index 0e8a0eb36f4ca..0000000000000 --- a/distribution/helm/vector-aggregator/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/distribution/helm/vector-aggregator/Chart.yaml b/distribution/helm/vector-aggregator/Chart.yaml deleted file mode 100644 index 6ef6b60c32543..0000000000000 --- a/distribution/helm/vector-aggregator/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -name: vector-aggregator -type: application -icon: https://vector.dev/press/vector-icon.svg -description: A Helm chart to aggregate data with Vector -version: "0.0.0" # overwritten via --version on publishing -appVersion: "0.0.0" # overwritten via --app-version on publishing -home: https://vector.dev/ -sources: - - https://github.com/timberio/vector/ -maintainers: - - name: Vector Contributors - email: vector@timber.io -dependencies: - - name: vector-shared - version: "*" - repository: file://../vector-shared diff --git a/distribution/helm/vector-aggregator/README.md b/distribution/helm/vector-aggregator/README.md deleted file mode 100644 index a824be6a3157e..0000000000000 --- a/distribution/helm/vector-aggregator/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# [Vector](https://vector.dev) Helm Chart - -This is an opinionated Helm Chart for running [Vector](https://vector.dev) as an [aggregator](https://vector.dev/docs/about/concepts/#aggregator) in Kubernetes. - -Our charts use Helm's dependency system, however we only use local dependencies. -Head over to the repo for [more information on development and contribution](https://github.com/timberio/vector/tree/master/distribution/helm). - -To get started check out our [documentation](https://master.vector.dev/docs/setup/installation/platforms/kubernetes/) diff --git a/distribution/helm/vector-aggregator/charts/vector-shared b/distribution/helm/vector-aggregator/charts/vector-shared deleted file mode 120000 index b734c62fcce50..0000000000000 --- a/distribution/helm/vector-aggregator/charts/vector-shared +++ /dev/null @@ -1 +0,0 @@ -../../vector-shared \ No newline at end of file diff --git a/distribution/helm/vector-aggregator/templates/_helpers.tpl b/distribution/helm/vector-aggregator/templates/_helpers.tpl deleted file mode 100644 index adab93813e5a9..0000000000000 --- a/distribution/helm/vector-aggregator/templates/_helpers.tpl +++ /dev/null @@ -1,43 +0,0 @@ -{{/* vim: set filetype=mustache: */}} - -{{/* -Internal template to render service ports depending on whether service is a headless service or not. Use -either 'vector-aggregator.servicePorts' or 'vector-aggregator.headlessServicePorts' as entry points. -*/}} -{{- define "vector-aggregator.internalServicePorts" -}} -{{- $headless := index . 0 -}} -{{- $values := index . 1 -}} -{{- if $values.vectorSource.enabled }} -{{- $servicePort := dict -}} -{{- $_ := set $servicePort "name" "vector" -}} -{{- $_ := set $servicePort "port" $values.vectorSource.listenPort -}} -{{- $_ := set $servicePort "nodePort" $values.vectorSource.nodePort -}} -{{- $_ := set $servicePort "protocol" "TCP" -}} -{{- $_ := set $servicePort "targetPort" $values.vectorSource.listenPort -}} -{{ tuple $headless $servicePort | include "libvector.servicePort" }} -{{- end }} -{{- range $values.service.ports }} -{{ tuple $headless . | include "libvector.servicePort" }} -{{- end }} -{{- end -}} - -{{/* -Generate effective service ports for normal (non-headless) service definition. -*/}} -{{- define "vector-aggregator.servicePorts" -}} -{{- tuple false .Values | include "vector-aggregator.internalServicePorts" -}} -{{- end -}} - -{{/* -Generate effective service ports for headless service definition. -*/}} -{{- define "vector-aggregator.headlessServicePorts" -}} -{{- tuple true .Values | include "vector-aggregator.internalServicePorts" -}} -{{- end }} - -{{/* -Determines whether there are any ports present. -*/}} -{{- define "vector-aggregator.servicePortsPresent" -}} -{{- or .Values.vectorSource.enabled (not (empty .Values.service.ports)) }} -{{- end }} diff --git a/distribution/helm/vector-aggregator/templates/configmap.yaml b/distribution/helm/vector-aggregator/templates/configmap.yaml deleted file mode 100644 index 2f3ce4b84c39d..0000000000000 --- a/distribution/helm/vector-aggregator/templates/configmap.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if (empty .Values.existingConfigMap) -}} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "libvector.configMapName" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} -data: - # We leave `vector.toml` file name available to let externally managed config - # maps to provide it. - managed.toml: | - {{- include "libvector.vectorConfigHeader" . | nindent 4 -}} - - {{- with .Values.vectorSource }} - {{- if .enabled }} - # Accept logs from Vector agents. - {{- $value := merge (dict) .config -}} - {{- $_ := set $value "type" "vector" -}} - {{- $_ := set $value "address" (printf "%v:%v" .listenAddress .listenPort) -}} - {{- $_ := set $value "rawConfig" .rawConfig -}} - {{- tuple .sourceId $value | include "libvector.vectorSourceConfig" | nindent 4 -}} - {{- end }} - {{- end }} - - {{- include "libvector.metricsConfigPartial" . | nindent 4 }} - - {{- include "libvector.vectorTopology" .Values | nindent 4 -}} - -{{- end }} diff --git a/distribution/helm/vector-aggregator/templates/podmonitor.yaml b/distribution/helm/vector-aggregator/templates/podmonitor.yaml deleted file mode 100644 index 2d9d8021cdb29..0000000000000 --- a/distribution/helm/vector-aggregator/templates/podmonitor.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "libvector.metricsPodMonitor" . -}} diff --git a/distribution/helm/vector-aggregator/templates/podsecuritypolicy.yaml b/distribution/helm/vector-aggregator/templates/podsecuritypolicy.yaml deleted file mode 100644 index 8abc599c9b8b8..0000000000000 --- a/distribution/helm/vector-aggregator/templates/podsecuritypolicy.yaml +++ /dev/null @@ -1,44 +0,0 @@ -{{- if .Values.psp.enabled }} -apiVersion: policy/v1beta1 -kind: PodSecurityPolicy -metadata: - name: {{ include "libvector.fullname" . }} -spec: - privileged: false - allowPrivilegeEscalation: false - readOnlyRootFilesystem: false - requiredDropCapabilities: - - ALL - volumes: - - 'hostPath' - - 'configMap' - - 'secret' - - 'persistentVolumeClaim' - - 'emptyDir' - allowedHostPaths: - {{- if eq .Values.storage.mode "hostPath" }} - - pathPrefix: {{ .Values.storage.hostPath | quote }} - {{- end }} - {{- range .Values.extraVolumes }} - {{- with .hostPath }} - - pathPrefix: {{ .path }} - {{- end }} - {{- end }} - hostNetwork: false - hostIPC: false - hostPID: false - runAsUser: - rule: 'MustRunAsNonRoot' - seLinux: - rule: 'RunAsAny' - supplementalGroups: - rule: 'MustRunAs' - ranges: - - min: 1 - max: 65535 - fsGroup: - rule: 'MustRunAs' - ranges: - - min: 1 - max: 65535 -{{- end }} diff --git a/distribution/helm/vector-aggregator/templates/rbac.yaml b/distribution/helm/vector-aggregator/templates/rbac.yaml deleted file mode 100644 index 9cd10f5dbc3fb..0000000000000 --- a/distribution/helm/vector-aggregator/templates/rbac.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if .Values.rbac.enabled -}} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ include "libvector.fullname" . }} -rules: -{{- if .Values.psp.enabled }} - - apiGroups: - - policy - resources: - - podsecuritypolicies - verbs: - - use - resourceNames: - - {{ include "libvector.fullname" . }} -{{- end }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: {{ include "libvector.fullname" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ include "libvector.fullname" . }} -subjects: - - kind: ServiceAccount - name: {{ include "libvector.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -{{- end }} diff --git a/distribution/helm/vector-aggregator/templates/service-headless.yaml b/distribution/helm/vector-aggregator/templates/service-headless.yaml deleted file mode 100644 index 919e10396dab4..0000000000000 --- a/distribution/helm/vector-aggregator/templates/service-headless.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "libvector.fullname" . }}-headless - labels: - {{- include "libvector.labels" . | nindent 4 }} -spec: - clusterIP: None - ports: - {{- include "vector-aggregator.headlessServicePorts" . | nindent 2 }} - selector: - {{- include "libvector.selectorLabels" . | nindent 4 }} diff --git a/distribution/helm/vector-aggregator/templates/service.yaml b/distribution/helm/vector-aggregator/templates/service.yaml deleted file mode 100644 index 673f31c331335..0000000000000 --- a/distribution/helm/vector-aggregator/templates/service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if eq (include "vector-aggregator.servicePortsPresent" .) "true" -}} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "libvector.fullname" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} -spec: - type: {{ .Values.service.type }} - ports: - {{- include "vector-aggregator.servicePorts" . | nindent 2 }} - selector: - {{- include "libvector.selectorLabels" . | nindent 4 }} -{{- end }} diff --git a/distribution/helm/vector-aggregator/templates/serviceaccount.yaml b/distribution/helm/vector-aggregator/templates/serviceaccount.yaml deleted file mode 100644 index 8d9a76e5f52d0..0000000000000 --- a/distribution/helm/vector-aggregator/templates/serviceaccount.yaml +++ /dev/null @@ -1,12 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "libvector.serviceAccountName" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -{{- end }} diff --git a/distribution/helm/vector-aggregator/templates/statefulset.yaml b/distribution/helm/vector-aggregator/templates/statefulset.yaml deleted file mode 100644 index ccbe233540c51..0000000000000 --- a/distribution/helm/vector-aggregator/templates/statefulset.yaml +++ /dev/null @@ -1,140 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ include "libvector.fullname" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} -spec: - serviceName: {{ include "libvector.fullname" . }}-headless - selector: - matchLabels: - {{- include "libvector.selectorLabels" . | nindent 6 }} - podManagementPolicy: "{{ .Values.podManagementPolicy }}" - replicas: {{ .Values.replicas }} - template: - metadata: - annotations: - {{- include "libvector.rerollAnnotations" . | nindent 8 }} - {{- include "libvector.metricsPrometheusPodAnnotations" . | nindent 8 }} - {{- with .Values.podAnnotations }} - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- with .Values.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - {{- include "libvector.selectorLabels" . | nindent 8 }} - vector.dev/exclude: "true" - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "libvector.serviceAccountName" . }} - securityContext: - {{- toYaml .Values.podSecurityContext | nindent 8 }} - containers: - - name: vector - securityContext: - {{- toYaml .Values.securityContext | nindent 12 }} - image: {{ include "libvector.image" . | quote }} - imagePullPolicy: "{{ .Values.image.pullPolicy }}" - args: - - --config - - /etc/vector/*.toml - env: - {{- include "libvector.globalEnv" . | nindent 12 }} - {{- with .Values.env }} - {{- toYaml . | nindent 12 }} - {{- end }} - ports: - {{- include "libvector.metricsContainerPorts" . | nindent 12 }} - {{- with .Values.extraContainersPorts }} - {{- toYaml . | nindent 12 }} - {{- end }} - resources: - {{- toYaml .Values.resources | nindent 12 }} - volumeMounts: - # Vector data dir mount. - - name: data-dir - mountPath: "{{ .Values.globalOptions.dataDir }}" - # Vector config dir mount. - - name: config-dir - mountPath: /etc/vector - readOnly: true - # Extra volumes. - {{- with .Values.extraVolumeMounts }} - {{- toYaml . | nindent 12 }} - {{- end }} - terminationGracePeriodSeconds: 60 - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - volumes: - {{- if ne .Values.storage.mode "managedPersistentVolumeClaim" }} - # Vector will store it's data here. - - name: data-dir - {{- if eq .Values.storage.mode "existingPersistentVolumeClaim" }} - persistentVolumeClaim: - claimName: {{ required "The value storage.existingPersistentVolumeClaim must be set" .Values.storage.existingPersistentVolumeClaim }} - {{- else if eq .Values.storage.mode "hostPath" }} - hostPath: - path: {{ required "The value storage.hostPath must be set" .Values.storage.hostPath | quote }} - {{- else if eq .Values.storage.mode "empty" }} - emptyDir: {} - {{- else }} - {{ fail "Please provide a valid storage.mode value" }} - {{- end }} - {{- end }} - # Vector config dir. - - name: config-dir - projected: - sources: - - configMap: - name: {{ include "libvector.configMapName" . }} - optional: true - {{- with .Values.extraConfigDirSources }} - {{- toYaml . | nindent 14 }} - {{- end }} - {{- with .Values.extraVolumes }} - # Extra volumes. - {{- toYaml . | nindent 8 }} - {{- end }} - volumeClaimTemplates: - {{- if eq .Values.storage.mode "managedPersistentVolumeClaim" }} - {{- with .Values.storage.managedPersistentVolumeClaim }} - # Vector will store it's data here. - - metadata: - name: data-dir - labels: - {{- include "libvector.labels" $ | nindent 10 }} - {{- with .labels }} - {{- toYaml . | nindent 10 }} - {{- end }} - annotations: - {{- with .annotations }} - {{- toYaml . | nindent 10 }} - {{- end }} - spec: - accessModes: ["ReadWriteOnce"] - {{- with .storageClass }} - {{- if (eq "-" .) }} - storageClassName: "" - {{- else }} - storageClassName: {{ . | quote}} - {{- end }} - {{- end }} - resources: - requests: - storage: {{ .size | quote }} - {{- end }} - {{- end }} diff --git a/distribution/helm/vector-aggregator/values.yaml b/distribution/helm/vector-aggregator/values.yaml deleted file mode 100644 index 4ad095b4c9fab..0000000000000 --- a/distribution/helm/vector-aggregator/values.yaml +++ /dev/null @@ -1,288 +0,0 @@ -# Default values for vector-aggregator. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -image: - repository: timberio/vector - pullPolicy: IfNotPresent - # Overrides the image tag, the default is `{image.version}-{image.base}`. - tag: "" - # Overrides the image version, the default is the Chart appVersion. - version: "" - base: "debian" - -# Image pull secrets to use at the `Pod`s managed by `StatefulSet`. -imagePullSecrets: [] - -# Override the chart name used in templates. -nameOverride: "" -# Override the full chart name (name prefixed with release name) used in -# templates. -fullnameOverride: "" - -podManagementPolicy: Parallel - -replicas: 1 - -serviceAccount: - # Specifies whether a service account should be created. - create: true - # Annotations to add to the service account. - annotations: {} - # The name of the service account to use. - # If not set and `create` is true, a name is generated using the `fullname` - # template. - name: "" - -# Add an annotation to the `Pod`s managed by `StatefulSet` with a random value, -# generated at Helm Chart template evaluation time. -# Enabling this will cause the `Pod`s to be recreated every time the value -# changes - effectively restarting them on each update. -podRollmeAnnotation: false - -# Add an annotation to the `Pod`s managed by `StatefulSet` with a checksum of -# the Helm release values (as in `values.yaml` content and `--set` flags). -# Enabling this will cause the `Pod`s to be recreated every time values -# change. -podValuesChecksumAnnotation: false - -# Annotations to add to the `Pod`s managed by `StatefulSet`. -podAnnotations: {} - -# Labels to add to the `Pod`s managed by `StatefulSet`. -podLabels: {} - -# PodSecurityContext to set at the `Pod`s managed by `StatefulSet`. -podSecurityContext: {} - # fsGroup: 2000 - -# Security context to set at the `vector` container at the `Pod`s managed by -# `StatefulSet`. -securityContext: {} - # capabilities: - # drop: - # - ALL - # readOnlyRootFilesystem: true - # runAsNonRoot: true - # runAsUser: 1000 - -# Extra env vars to pass to the `vector` container. -env: [] - # - name: VAR - # valueFrom: - # secretKeyRef: - # name: secret - # key: password - -# Tolerations to set for the `Pod`s managed by `DaemonSet`. -tolerations: - # This toleration is to have the `DaemonSet` runnable on master nodes. - # Remove it if your masters can't run pods. - - key: node-role.kubernetes.io/master - effect: NoSchedule - -# Various tweakables for the `Pod`s managed by `StatefulSet`. -resources: {} -nodeSelector: {} -affinity: {} - -# Additional container ports to pass to the `vector` container of the `Pod`s -# managed by `StatefulSet`. -extraContainersPorts: [] - -# Additional sources to include at the `config-dir` projection of the `Pod`s -# managed by `StatefulSet`. -extraConfigDirSources: [] - -# Additional volumes to pass to the `Pod`s managed by `StatefulSet`. -extraVolumes: [] - -# Additional volume mounts to pass to the `vector` container of the `Pod`s -# managed by `StatefulSet`. -extraVolumeMounts: [] - -# Storage options. -storage: - # The storage mode to use to store `vector` data. - # Possible values: - # - `hostPath` - # - `managedPersistentVolumeClaim` - # - `existingPersistentVolumeClaim` - # - `empty` - mode: empty - - # Absolute path on the host to store `vector` data. - # If `mode` is set to anything other than `hostPath` has no effect. - hostPath: "" - - # Create `PersistentVolumeClaim` via the `volumeClaimTemplates` of - # the `StatefulSet` to store `vector` data. - # If `mode` is set to anything other than `managedPersistentVolumeClaim` has - # no effect. - managedPersistentVolumeClaim: - # The size to allocate. - size: 10Gi - # If defined, then `storageClassName: `. - # If set to "-", then `storageClassName: ""`, which disables dynamic - # provisioning. - # If undefined or empty (default), then no `storageClassName` spec is set, - # so the default provisioner will be chosen (gp2 on AWS, standard on - # GKE, AWS & OpenStack). - storageClass: "" - - # Additional labels to apply to the created `PersistentVolumeClaim`. - labels: {} - # Additional annotations to apply to the created `PersistentVolumeClaim`. - annotations: {} - - # The name of the existing `PersistentVolumeClaim` to store `vector` data. - # Useful if you're running in a cluster that requires manually provisioning - # `PersistentVolume`s and binding them to the `PersistentVolumeClaim`s. - # If `mode` is set to anything other than `existingPersistentVolumeClaim` has - # no effect. - existingPersistentVolumeClaim: "" - -rbac: - # Whether to create rbac resources or not. Disable for non-rbac clusters. - enabled: false - -psp: - # Whether to create `PodSecurityPolicy` or not. - enabled: false - -# Configuration for both regular and headless `Service`. -service: - # Service type - defaults to `ClusterIP` (only relevant for the regular service). - type: "ClusterIP" - # Additional ports to expose. - ports: [] - # - name: http - # port: 1234 - # protocol: TCP - # targetPort: 1234 - # nodePort: 1243 # (optional but useful with `service.type` is set to `NodePort`) - -# Set this to non-empty value to use existing `ConfigMap` for `vector`, instead -# of using a generated one. -existingConfigMap: "" - -# Global parts of the generated `vector` config. -globalOptions: - # Specifies the (in-container) data dir used by `vector`. - dataDir: "/vector-data-dir" - -# Schema part of the generated `vector` config. -logSchema: - hostKey: "host" - messageKey: "message" - sourceTypeKey: "source_type" - timestampKey: "timestamp" - -# The Vector API. -# Will be disabled by default. -vectorApi: - # Turn the Vector API on or off. - enabled: false - # The address to listen at. - address: "0.0.0.0:8686" - # Enable or disable the built-in GraphQL Playground (a web IDE for working on GraphQL queries). - playground: true - -# The "built-in" vector source, for accepting logs from the vector agents. -# Will be added by default, unless explicitly disabled. -vectorSource: - # Disable to omit the vector source from being added. - enabled: true - # The name to use for the "built-in" vector source. - sourceId: vector - # The address to listen at. - listenAddress: "0.0.0.0" - # The port to listen at. - listenPort: "9000" - # Additional config to embed at the vector source. - config: {} - # option: "value" - # Specific node port to bind (useful if `service.type` is set to `NodePort`). - nodePort: null # 9090 (must be a number) - # Raw TOML config to embed at the vector source (deprecated). - rawConfig: null - -# The "built-in" internal metrics source emitting Vector's internal opertaional -# metrics. -internalMetricsSource: - # Disable to omit the internal metrics source from being added. - enabled: true - # The name to use for the "built-in" internal metrics source. - sourceId: internal_metrics - # Additional config to embed at the internal metrics source. - config: {} - # option: "value" - # Raw TOML config to embed at the internal metrics source (deprecated). - rawConfig: null - -# The "built-in" prometheus sink exposing metrics in the Prometheus scraping -# format. -# When using this "built-in" sink, we automatically configure container ports, -# and ensure things are ready for discovery and scraping via Prometheus' -# `kubernetes_sd_configs` jobs. -prometheusSink: - # Disable to omit the prometheus sink from being added. - enabled: true - # The name to use for the "built-in" prometheus sink. - sinkId: prometheus_sink - # Inputs of the built-in prometheus sink. - # If you have built-in internal metrics source enabled, we'll add it as a - # input here under the hood, so you don't have to pass it here. - # Unless `excludeInternalMetrics` is set to `true`, in which case you're - # responsible of wiring up the internal metrics. - inputs: [] - # Set this to `true` to opt-out from automatically adding the built-in - # internal metrics source to the inputs. - excludeInternalMetrics: false - # The address to listen at. - listenAddress: "0.0.0.0" - # The port to listen at. - listenPort: "9090" - # Additional config to embed at the prometheus sink. - config: {} - # option: "value" - # Raw TOML config to embed at the prometheus sink (deprecated). - rawConfig: null - # Add Prometheus annotations to Pod to opt-in for Prometheus scraping. - # To be used in clusters that rely on Pod annotations in the form of - # `prometheus.io/scrape` to discover scrape targets. - addPodAnnotations: false - # Use prometheus-operator `PodMonitor` to opt-in for Prometheus scraping. - # To be used in clusters that rely on prometheus-operator to gether metrics. - # You might want to set `podMonitorSelectorNilUsesHelmValues=false` if you're - # using prometheus-operator Helm chart to allow `PodMonitor` resources - # dicovery in all namespaces. - podMonitor: - # Whether to add the `PodMonitor` resource or not. - # `prometheus-operator` CRDs are necessary, otherwise you'll get an error. - enabled: false - # Additional relabelings to include in the `PodMonitor`. - extraRelabelings: [] - -# Sources to add to the generated `vector` config -sources: {} - # source_name: - # type: "source_type" - # rawConfig: | - # option = "value" - -# Transforms to add to the generated `vector` config. -transforms: {} - # transform_name: - # type: "transform_type" - # inputs: ["input1", "input2"] - # rawConfig: | - # option = "value" - -# Sinks to add to the generated `vector` config. -sinks: {} - # sink_name: - # type: "sink_type" - # inputs: ["input1", "input2"] - # rawConfig: | - # option = "value" diff --git a/distribution/helm/vector-shared/.helmignore b/distribution/helm/vector-shared/.helmignore deleted file mode 100644 index 0e8a0eb36f4ca..0000000000000 --- a/distribution/helm/vector-shared/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/distribution/helm/vector-shared/Chart.yaml b/distribution/helm/vector-shared/Chart.yaml deleted file mode 100644 index fbf335eb86c82..0000000000000 --- a/distribution/helm/vector-shared/Chart.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v2 -name: vector-shared -type: library -icon: https://vector.dev/press/vector-icon.svg -description: Shared dependencies of Vector Helm charts -version: "0.1.0" -home: https://vector.dev/ -sources: - - https://github.com/timberio/vector/ -maintainers: - - name: Vector Contributors - email: vector@timber.io diff --git a/distribution/helm/vector-shared/templates/_env.tpl b/distribution/helm/vector-shared/templates/_env.tpl deleted file mode 100644 index 37895e6365a7e..0000000000000 --- a/distribution/helm/vector-shared/templates/_env.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{{/* vim: set filetype=mustache: */}} - -{{/* -Common container env variables. -*/}} -{{- define "libvector.globalEnv" -}} -{{- $global := default (dict) .Values.global }} -{{- $global := default (dict) $global.vector }} -{{- range $key, $value := $global.commonEnvKV }} -- name: {{ $key | quote }} - value: {{ $value | quote }} -{{- end }} -{{- end }} diff --git a/distribution/helm/vector-shared/templates/_image.tpl b/distribution/helm/vector-shared/templates/_image.tpl deleted file mode 100644 index eb4a97c0fac63..0000000000000 --- a/distribution/helm/vector-shared/templates/_image.tpl +++ /dev/null @@ -1,38 +0,0 @@ -{{/* vim: set filetype=mustache: */}} - -{{/* -Resolve the actual image tag to use. -*/}} -{{- define "libvector.imageTag" -}} -{{- $localImage := default (dict) .Values.image }} -{{- $global := default (dict) .Values.global }} -{{- $global := default (dict) $global.vector }} -{{- $globalImage := default (dict) $global.image }} -{{- $resolvedImageTag := default $localImage.tag $globalImage.tag }} -{{- if $resolvedImageTag }} -{{- $resolvedImageTag }} -{{- else }} -{{- $resolvedVersion := default $localImage.version $globalImage.version }} -{{- $resolvedBase := default $localImage.base $globalImage.base }} -{{- $version := default .Chart.AppVersion $resolvedVersion }} -{{- printf "%s-%s" $version $resolvedBase }} -{{- end }} -{{- end }} - -{{/* -Resolve the actual image repository to use. -*/}} -{{- define "libvector.imageRepository" -}} -{{- $localImage := default (dict) .Values.image }} -{{- $global := default (dict) .Values.global }} -{{- $global := default (dict) $global.vector }} -{{- $globalImage := default (dict) $global.image }} -{{- default $localImage.repository $globalImage.repository }} -{{- end }} - -{{/* -Resolve the full image name to use. -*/}} -{{- define "libvector.image" -}} -{{ include "libvector.imageRepository" . }}:{{ include "libvector.imageTag" . }} -{{- end }} diff --git a/distribution/helm/vector-shared/templates/_labels.tpl b/distribution/helm/vector-shared/templates/_labels.tpl deleted file mode 100644 index a0086969ef094..0000000000000 --- a/distribution/helm/vector-shared/templates/_labels.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{{/* vim: set filetype=mustache: */}} - -{{/* -Common labels. -*/}} -{{- define "libvector.labels" -}} -helm.sh/chart: {{ include "libvector.chart" . }} -{{ include "libvector.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels. -*/}} -{{- define "libvector.selectorLabels" -}} -app.kubernetes.io/name: {{ include "libvector.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} diff --git a/distribution/helm/vector-shared/templates/_metrics.tpl b/distribution/helm/vector-shared/templates/_metrics.tpl deleted file mode 100644 index bfae1ed8b24f6..0000000000000 --- a/distribution/helm/vector-shared/templates/_metrics.tpl +++ /dev/null @@ -1,110 +0,0 @@ -{{/* vim: set filetype=mustache: */}} - -{{/* -Common Vector configuration partial containing built-in metrics pipeline. -Internal metrics are common, so we share and reuse the definition. -*/}} -{{- define "libvector.metricsConfigPartial" -}} - -{{- $values := .Values -}} - -{{- $prometheusInputs := .prometheusInputs -}} -{{- with $values.internalMetricsSource }} -{{- if .enabled }} -# Emit internal Vector metrics. -{{- $value := merge (dict) .config -}} -{{- $_ := set $value "type" "internal_metrics" -}} -{{- $_ := set $value "rawConfig" .rawConfig -}} -{{- tuple .sourceId $value | include "libvector.vectorSourceConfig" | nindent 0 -}} -{{- end }} -{{- end }} - -{{- with $values.prometheusSink }} -{{- if .enabled }} - -{{- $inputs := .inputs }} -{{- if $prometheusInputs -}} -{{- $inputs = concat $inputs $prometheusInputs }} -{{- end }} -{{- if and $values.internalMetricsSource.enabled (not .excludeInternalMetrics) -}} -{{- $inputs = prepend $inputs $values.internalMetricsSource.sourceId }} -{{- end }} -# Expose metrics for scraping in the Prometheus format. -{{- $value := merge (dict) .config -}} -{{- $_ := set $value "type" "prometheus" -}} -{{- $_ := set $value "inputs" $inputs -}} -{{- $_ := set $value "address" (printf "%v:%v" .listenAddress .listenPort) -}} -{{- $_ := set $value "rawConfig" .rawConfig -}} -{{- tuple .sinkId $value | include "libvector.vectorSinkConfig" | nindent 0 -}} -{{- end }} -{{- end }} - -{{- end }} - -{{/* -Common Vector container ports used by the built-in metrics pipeline. -Internal metrics are common, so we share and reuse the definition. -*/}} -{{- define "libvector.metricsContainerPorts" -}} -{{- with .Values.prometheusSink }} -{{- if .enabled -}} -- name: metrics - containerPort: {{ .listenPort }} - protocol: TCP -{{- end }} -{{- end }} -{{- end }} - -{{/* -Common Vector Pod annotations to expose the built-in metrics pipeline for -Prometheus scraping. -Internal metrics are common, so we share and reuse the definition. -*/}} -{{- define "libvector.metricsPrometheusPodAnnotations" -}} -{{- with .Values.prometheusSink }} -{{- if and .enabled .addPodAnnotations -}} -prometheus.io/scrape: "true" -prometheus.io/port: "{{ .listenPort }}" -{{- end }} -{{- end }} -{{- end }} - -{{/* -Common Vector `PodMonitor` to expose the built-in metrics pipeline for -`prometheus-operator`-powered scraping. -Internal metrics are common, so we share and reuse the definition. -*/}} -{{- define "libvector.metricsPodMonitor" -}} -{{- if and .Values.prometheusSink.enabled .Values.prometheusSink.podMonitor.enabled -}} -apiVersion: monitoring.coreos.com/v1 -kind: PodMonitor -metadata: - name: {{ include "libvector.fullname" . }} - labels: - {{- include "libvector.labels" . | nindent 4 }} -spec: - jobLabel: app.kubernetes.io/name - - selector: - matchLabels: - {{- include "libvector.selectorLabels" . | nindent 6 }} - - namespaceSelector: - matchNames: - - "{{ .Release.Namespace }}" - - podMetricsEndpoints: - - port: metrics - path: /metrics - relabelings: - - action: labeldrop - regex: __meta_kubernetes_pod_label_skaffold_dev.* - - action: labeldrop - regex: __meta_kubernetes_pod_label_pod_template_hash.* - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - {{- with .Values.prometheusSink.podMonitor.extraRelabelings }} - {{- toYaml . | nindent 8 }} - {{- end }} -{{- end }} -{{- end }} diff --git a/distribution/helm/vector-shared/templates/_names.tpl b/distribution/helm/vector-shared/templates/_names.tpl deleted file mode 100644 index 20ab3220a28e6..0000000000000 --- a/distribution/helm/vector-shared/templates/_names.tpl +++ /dev/null @@ -1,53 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "libvector.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this -(by the DNS naming spec). -If release name is "vector", or matches the chart name exactly, the chart name -is used without the release name, omitting the extra "vector-" or -"[chart-name]-" prefix. -*/}} -{{- define "libvector.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if eq .Release.Name "vector" $name }} -{{- $name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} -{{- end }} -{{- end }} -{{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "libvector.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create the name of the `ServiceAccount` to use. -*/}} -{{- define "libvector.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "libvector.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} - -{{/* -Create the name of the `ConfigMap` to use. -*/}} -{{- define "libvector.configMapName" -}} -{{- default (include "libvector.fullname" .) .Values.existingConfigMap }} -{{- end }} diff --git a/distribution/helm/vector-shared/templates/_reroll.tpl b/distribution/helm/vector-shared/templates/_reroll.tpl deleted file mode 100644 index 204a25b90691c..0000000000000 --- a/distribution/helm/vector-shared/templates/_reroll.tpl +++ /dev/null @@ -1,49 +0,0 @@ -{{/* vim: set filetype=mustache: */}} - -{{/* -Rollme annotation. -*/}} -{{- define "libvector.rollmeAnnotation" -}} -{{- $global := default (dict) .Values.global }} -{{- $global := default (dict) $global.vector }} -{{- $enabled := .Values.podRollmeAnnotation }} -{{- if hasKey $global "podRollmeAnnotation" }} -{{- $enabled = $global.podRollmeAnnotation }} -{{- end }} -{{- if $enabled }} -rollme: {{ randAlphaNum 5 | quote }} -{{- end }} -{{- end }} - -{{/* -`ConfigMap` template checksum annotation. -*/}} -{{- define "libvector.configTemplateChecksumAnnotation" -}} -{{- if not .Values.externalConfigMap }} -checksum/config: {{ tpl (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} -{{- end }} -{{- end }} - -{{/* -Values checksum annotation. -*/}} -{{- define "libvector.valuesChecksumAnnotation" -}} -{{- $global := default (dict) .Values.global }} -{{- $global := default (dict) $global.vector }} -{{- $enabled := .Values.podValuesChecksumAnnotation }} -{{- if hasKey $global "podValuesChecksumAnnotation" }} -{{- $enabled = $global.podValuesChecksumAnnotation }} -{{- end }} -{{- if $enabled }} -checksum/values: {{ toJson .Values | sha256sum }} -{{- end }} -{{- end }} - -{{/* -All reroll annotations. -*/}} -{{- define "libvector.rerollAnnotations" -}} -{{- include "libvector.configTemplateChecksumAnnotation" . }} -{{- include "libvector.valuesChecksumAnnotation" . }} -{{- include "libvector.rollmeAnnotation" . }} -{{- end }} diff --git a/distribution/helm/vector-shared/templates/_service_port.tpl b/distribution/helm/vector-shared/templates/_service_port.tpl deleted file mode 100644 index b427505418547..0000000000000 --- a/distribution/helm/vector-shared/templates/_service_port.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* vim: set filetype=mustache: */}} - -{{/* -Common partial to defining an individual service port. The template will render a port entry for -a Service resource according to whether the service is headless or not. -*/}} -{{- define "libvector.servicePort" -}} -{{- $headless := index . 0 -}} -{{- $values := index . 1 -}} -- port: {{ $values.port }} -{{- if not $headless }} - targetPort: {{ $values.targetPort }} -{{- end }} -{{- if and $values.nodePort (not $headless) }} - nodePort: {{ $values.nodePort }} -{{- end }} -{{- with $values.name }} - name: {{.}} -{{- end }} -{{- with $values.protocol }} - protocol: {{.}} -{{- end }} -{{- with $values.appProtocol }} - appProtocol: {{.}} -{{- end }} -{{- end -}} diff --git a/distribution/helm/vector-shared/templates/_vector_config.tpl b/distribution/helm/vector-shared/templates/_vector_config.tpl deleted file mode 100644 index 3d351eb3761ba..0000000000000 --- a/distribution/helm/vector-shared/templates/_vector_config.tpl +++ /dev/null @@ -1,109 +0,0 @@ -{{/* vim: set filetype=mustache: */}} - -{{/* -Serialize the passed Vector component configuration bits as TOML. -*/}} -{{- define "libvector.vectorComponentConfig" -}} -{{- $componentGroup := index . 0 -}} -{{- $componentId := index . 1 -}} -{{- $value := index . 2 -}} - -{{- $rawConfig := $value.rawConfig -}} -{{- $value = unset $value "rawConfig" -}} - -{{- $header := printf "[%s.%s]" $componentGroup $componentId -}} - -{{- /* Build the right hierarchy and evaluate the TOML. */ -}} -{{- $toml := toToml (dict $componentGroup (dict $componentId $value)) -}} -{{- /* Cut the root-level key containing the component kind name (i.e. `[sinks]`). */ -}} -{{- $toml = $toml | trimPrefix (printf "[%s]\n" $componentGroup) -}} -{{- /* Remove one level of indentation. */ -}} -{{- $toml = regexReplaceAllLiteral "(?m)^ " $toml "" -}} -{{- /* Cut tailing newline. */ -}} -{{- $toml = $toml | trimSuffix "\n" -}} -{{- /* Print the value. */ -}} -{{- $toml -}} - -{{- with $rawConfig -}} -{{- /* Here is a poor attempt to ensure raw config section is put under the */ -}} -{{- /* component-level section. What we're trying to do here is prohibited */ -}} -{{- /* in the TOML spec, but it may work in the simple case - and this is */ -}} -{{- /* what we have to support for the backward compatibility. */ -}} -{{- if contains (printf "[%s.%s." $componentGroup $componentId) $toml -}} -{{- $header| nindent 0 -}} -{{- end -}} -{{- /* Print the raw config. */ -}} - {{- $rawConfig | nindent 2 -}} -{{- end }} - -{{- printf "\n" -}} -{{- end }} - -{{/* -Serialize the passed Vector source configuration bits as TOML. -*/}} -{{- define "libvector.vectorSourceConfig" -}} -{{- $componentId := index . 0 -}} -{{- $value := index . 1 -}} -{{- tuple "sources" $componentId $value | include "libvector.vectorComponentConfig" -}} -{{- end }} - -{{/* -Serialize the passed Vector transform configuration bits as TOML. -*/}} -{{- define "libvector.vectorTransformConfig" -}} -{{- $componentId := index . 0 -}} -{{- $value := index . 1 -}} -{{- tuple "transforms" $componentId $value | include "libvector.vectorComponentConfig" -}} -{{- end }} - -{{/* -Serialize the passed Vector sink configuration bits as TOML. -*/}} -{{- define "libvector.vectorSinkConfig" -}} -{{- $componentId := index . 0 -}} -{{- $value := index . 1 -}} -{{- tuple "sinks" $componentId $value | include "libvector.vectorComponentConfig" -}} -{{- end }} - -{{/* -Serialize the passed Vector topology configuration bits as TOML. -*/}} -{{- define "libvector.vectorTopology" -}} -{{- range $componentId, $value := .sources }} -{{- tuple $componentId $value | include "libvector.vectorSourceConfig" | nindent 0 -}} -{{- end }} - -{{- range $componentId, $value := .transforms }} -{{- tuple $componentId $value | include "libvector.vectorTransformConfig" | nindent 0 -}} -{{- end }} - -{{- range $componentId, $value := .sinks }} -{{- tuple $componentId $value | include "libvector.vectorSinkConfig" | nindent 0 -}} -{{- end }} -{{- end }} - -{{/* -The common header for Vector ConfigMaps. -*/}} -{{- define "libvector.vectorConfigHeader" -}} -# Configuration for vector. -# Docs: https://vector.dev/docs/ - -data_dir = "{{ .Values.globalOptions.dataDir }}" - -[api] - enabled = {{ .Values.vectorApi.enabled }} - address = {{ .Values.vectorApi.address | quote }} - playground = {{ .Values.vectorApi.playground }} -{{- printf "\n" -}} - -{{- with .Values.logSchema }} -[log_schema] - host_key = "{{ .hostKey }}" - message_key = "{{ .messageKey }}" - source_type_key = "{{ .sourceTypeKey }}" - timestamp_key = "{{ .timestampKey }}" - {{- printf "\n" -}} -{{- end }} -{{- end }} diff --git a/distribution/helm/vector/.helmignore b/distribution/helm/vector/.helmignore deleted file mode 100644 index 0e8a0eb36f4ca..0000000000000 --- a/distribution/helm/vector/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/distribution/helm/vector/Chart.yaml b/distribution/helm/vector/Chart.yaml deleted file mode 100644 index 828632ee62f66..0000000000000 --- a/distribution/helm/vector/Chart.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: v2 -name: vector -type: application -icon: https://vector.dev/press/vector-icon.svg -description: A Helm chart for Vector observability stack -version: "0.0.0" # overwritten via --version on publishing -appVersion: "0.0.0" # overwritten via --app-version on publishing -home: https://vector.dev/ -sources: - - https://github.com/timberio/vector/ -maintainers: - - name: Vector Contributors - email: vector@timber.io -dependencies: - - name: vector-agent - version: "*" - repository: file://../vector-agent - - name: vector-aggregator - version: "*" - repository: file://../vector-aggregator diff --git a/distribution/helm/vector/README.md b/distribution/helm/vector/README.md deleted file mode 100644 index b1e2a75b4f162..0000000000000 --- a/distribution/helm/vector/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# [Vector](https://vector.dev) Helm Chart - -This is an opinionated Helm Chart for running [Vector](https://vector.dev) in Kubernetes. - -Our charts use Helm's dependency system, however we only use local dependencies. -Head over to the repo for [more information on development and contribution](https://github.com/timberio/vector/tree/master/distribution/helm). - -To get started check out our [documentation](https://master.vector.dev/docs/setup/installation/platforms/kubernetes/) diff --git a/distribution/helm/vector/charts/vector-agent b/distribution/helm/vector/charts/vector-agent deleted file mode 120000 index d1b1ab3b446b8..0000000000000 --- a/distribution/helm/vector/charts/vector-agent +++ /dev/null @@ -1 +0,0 @@ -../../vector-agent \ No newline at end of file diff --git a/distribution/helm/vector/charts/vector-aggregator b/distribution/helm/vector/charts/vector-aggregator deleted file mode 120000 index 3689a3e4473fe..0000000000000 --- a/distribution/helm/vector/charts/vector-aggregator +++ /dev/null @@ -1 +0,0 @@ -../../vector-aggregator \ No newline at end of file diff --git a/distribution/helm/vector/values.yaml b/distribution/helm/vector/values.yaml deleted file mode 100644 index 811f105b25bb3..0000000000000 --- a/distribution/helm/vector/values.yaml +++ /dev/null @@ -1,57 +0,0 @@ -# Default values for vector. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -# Override some values globally from a single location instead of specifying -# them in each chart. -# Note: these values are also respected by all charts, so you can keep using -# them if you switch from the `vector` chart the specific role oriented charts. -# -# global: -# vector: -# image: -# repository: -# # Overrides the image tag, the default is `{image.version}-{image.base}`. -# tag: -# # Overrides the image version, the default is the Chart appVersion. -# version: -# # Overrides the image flavor, the default is `debian`. -# base: -# # Sets common environment variables for use in all `Pod`s. -# commonEnvKV: -# LOG: info -# # Add an annotation with a random value generated at Helm Chart template -# # evaluation time to the managed `Pod`s. -# # Enabling this will cause the `Pod`s to be recreated every time the value -# # changes - effectively restarting them on each update. -# podRollmeAnnotation: true -# # Add an annotation with a checksum of the Helm release values (as -# in `values.yaml` content and `--set` flags). -# # Enabling this will cause the `Pod`s to be recreated every time values -# # change. -# podValuesChecksumAnnotation: true - -vector-agent: - # See the possible settings at the `vector-agent` chart. - - # Since we're deploying both `vector-agent` and `vector-aggregator`, - # configure the built-in vector sink to send data over to aggregator out of - # the box. - vectorSink: - # Enable vector sink to send the data over to the `vector-aggregator`. - enabled: true - # By default, send over the logs from the built-in `kubernetes_logs` source. - inputs: [kubernetes_logs] - # Configure the host to point to the `vector-aggregator`. - host: "vector-aggregator" - # Set the port to match the one used by `vector-aggregator`. - port: "9000" - -vector-aggregator: - # See the possible settings at the `vector-aggregator` chart. - - # Pass some setting here explicitly to guarantee they match values set at - # `vector-agent`. - vectorSource: - # Use the same port that's specified at `vector-agent`. - listenPort: "9000" diff --git a/distribution/init.d/vector b/distribution/init.d/vector index 81f48df7be68b..9b820a20288bf 100644 --- a/distribution/init.d/vector +++ b/distribution/init.d/vector @@ -4,7 +4,7 @@ # # description: A lightweight and ultra-fast tool for building observability pipelines # processname: vector -# config: /etc/vector/vector.toml +# config: /etc/vector/vector.yaml # pidfile: /var/run/vector.pid ### BEGIN INIT INFO @@ -35,8 +35,9 @@ RETVAL=0 # Start start() { echo -n $"Starting $prog: " - daemon --pidfile=${pidfile} $vector $OPTIONS + daemon --pidfile=${pidfile} "nohup $vector /dev/null &" RETVAL=$? + [ $RETVAL = 0 ] && pidof ${prog} > ${pidfile} echo return $RETVAL } diff --git a/distribution/install.sh b/distribution/install.sh index b1c5f8f8ba18f..b5404b40b8058 100755 --- a/distribution/install.sh +++ b/distribution/install.sh @@ -12,7 +12,8 @@ set -u # If PACKAGE_ROOT is unset or empty, default it. PACKAGE_ROOT="${PACKAGE_ROOT:-"https://packages.timber.io/vector"}" -VECTOR_VERSION="0.11.1" +# If VECTOR_VERSION is unset or empty, default it. +VECTOR_VERSION="${VECTOR_VERSION:-"0.44.0"}" _divider="--------------------------------------------------------------------------------" _prompt=">>>" _indent=" " @@ -47,6 +48,8 @@ USAGE: FLAGS: -y Disable confirmation prompt. + --prefix The directory where the files should be placed, default: "$HOME/.vector" + Note: This option automatically assumes the \`--no-modify-path\` flag --no-modify-path Don't configure the PATH environment variable -h, --help Prints help information EOF @@ -58,17 +61,27 @@ main() { local prompt=yes local modify_path=yes + local prefix="$HOME/.vector" + local use_new_directory_structure=no for arg in "$@"; do case "$arg" in -h|--help) usage exit 0 ;; + --prefix) + prefix="$2" + use_new_directory_structure=yes + modify_path=no + shift 2 + ;; --no-modify-path) modify_path=no + shift ;; -y) prompt=no + shift ;; *) ;; @@ -78,7 +91,7 @@ main() { # Confirm with the user before proceeding to install Vector through a # package manager. Otherwise, we install from an archive. if [ "$prompt" = "yes" ]; then - echo "$_prompt We'll be installing Vector via a pre-built archive at https://packages.timber.io/vector/latest/" + echo "$_prompt We'll be installing Vector via a pre-built archive at https://packages.timber.io/vector/${VECTOR_VERSION}/" echo "$_prompt Ready to proceed? (y/n)" echo "" @@ -104,10 +117,13 @@ main() { echo "" fi - install_from_archive $modify_path + install_from_archive "$modify_path" "$prefix" "$use_new_directory_structure" } install_from_archive() { + need_cmd dirname + need_cmd pwd + need_cmd basename need_cmd cp need_cmd mktemp need_cmd mkdir @@ -120,14 +136,20 @@ install_from_archive() { get_architecture || return 1 local modify_path="$1" + local prefix="$2" + local use_new_directory_structure="$3" local _arch="$RETVAL" assert_nz "$_arch" "arch" local _archive_arch="" + case "$_arch" in x86_64-apple-darwin) _archive_arch=$_arch ;; + aarch64-apple-darwin) + _archive_arch="arm64-apple-darwin" + ;; x86_64-*linux*-gnu) _archive_arch="x86_64-unknown-linux-gnu" ;; @@ -137,18 +159,18 @@ install_from_archive() { aarch64-*linux*) _archive_arch="aarch64-unknown-linux-musl" ;; - armv7-*linux*-gnu) + armv7-*linux*-gnueabihf) _archive_arch="armv7-unknown-linux-gnueabihf" ;; - armv7-*linux*-musl) + armv7-*linux*-musleabihf) _archive_arch="armv7-unknown-linux-musleabihf" ;; - *) + *) err "unsupported arch: $_arch" ;; esac - local _url="${PACKAGE_ROOT}/latest/vector-${VECTOR_VERSION}-${_archive_arch}.tar.gz" + local _url="${PACKAGE_ROOT}/${VECTOR_VERSION}/vector-${VECTOR_VERSION}-${_archive_arch}.tar.gz" local _dir _dir="$(mktemp -d 2>/dev/null || ensure mktemp -d -t vector-install)" @@ -158,26 +180,47 @@ install_from_archive() { ensure mkdir -p "$_dir" printf "%s Downloading Vector via %s" "$_prompt" "$_url" - ensure downloader "$_url" "$_file" + ensure downloader "$_url" "$_file" "$_arch" printf " ✓\n" - printf "%s Unpacking archive to $HOME/.vector ..." "$_prompt" - ensure mkdir -p "$HOME/.vector" - ensure tar -xzf "$_file" --directory="$HOME/.vector" --strip-components=2 + ensure mkdir -p "$prefix" + + if [ "$use_new_directory_structure" = "no" ]; then + printf "%s Unpacking archive to $prefix ..." "$_prompt" + ensure tar -xzf "$_file" --directory="$prefix" --strip-components=2 + else + # https://github.com/vectordotdev/vector/pull/13613#pullrequestreview-1045524132. + # We will unpack the archive to a temporary directory and then copy the files to + # their corresponding locations according to the new directory structure. + printf "%s Using new directory structure since --prefix was specified...\n" "$_prompt" + local _unpack_dir + _unpack_dir="$(mktemp -d 2>/dev/null || ensure mktemp -d -t vector-install)" + ensure tar -xzf "$_file" --directory="$_unpack_dir" --strip-components=2 + # copy all files (including hidden), ref: https://askubuntu.com/a/86891 + ensure cp -r "$_unpack_dir/bin/." "$prefix/bin" + if [ -d "$_unpack_dir/etc/." ]; then + ensure cp -r "$_unpack_dir/etc/." "$prefix/etc" + fi + ensure mkdir -p "$prefix/share/vector/config" + ensure cp -r "$_unpack_dir/config/." "$prefix/share/vector/config" + ensure cp "$_unpack_dir"/README.md "$prefix/share/vector/" + ensure cp "$_unpack_dir"/LICENSE "$prefix/share/vector/" + # all files have been moved, we can safely remove the unpack directory + ignore rm -rf "$_unpack_dir" + fi printf " ✓\n" if [ "$modify_path" = "yes" ]; then - local _path="export PATH=\"\$HOME/.vector/bin:\$PATH\"" + local _path="export PATH=\"$PATH:$prefix/bin\"" add_to_path "${HOME}/.zprofile" "${_path}" add_to_path "${HOME}/.profile" "${_path}" - printf " ✓\n" fi printf "%s Install succeeded! 🚀\n" "$_prompt" printf "%s To start Vector:\n" "$_prompt" printf "\n" - printf "%s vector --config ~/.vector/vector.toml\n" "$_indent" + printf "%s vector --config $prefix/config/vector.yaml\n" "$_indent" printf "\n" printf "%s More information at https://vector.dev/docs/\n" "$_prompt" @@ -200,6 +243,8 @@ add_to_path() { else grep -qxF "${new_path}" "${file}" || echo "${new_path}" >> "${file}" fi + + printf " ✓\n" } # ------------------------------------------------------------------------------ @@ -213,22 +258,31 @@ get_gnu_musl_glibc() { need_cmd awk # Detect both gnu and musl # Also detect glibc versions older than 2.18 and return musl for these - # Required until we address https://github.com/timberio/vector/issues/5412. + # Required until we identify minimum supported version + # TODO: https://github.com/vectordotdev/vector/issues/10807 local _ldd_version local _glibc_version - _ldd_version=$(ldd --version) - if [[ $_ldd_version =~ "GNU" ]]; then + _ldd_version=$(ldd --version 2>&1) + if [[ $_ldd_version =~ "GNU" ]] || [[ $_ldd_version =~ "GLIBC" ]]; then _glibc_version=$(echo "$_ldd_version" | awk '/ldd/{print $NF}') if [ 1 -eq "$(echo "${_glibc_version} < 2.18" | bc)" ]; then echo "musl" else echo "gnu" fi -elif [[ $_ldd_version =~ "musl" ]]; then - echo "musl" -else - err "Unknown architecture from ldd: ${_ldd_version}" -fi + elif [[ $_ldd_version =~ "musl" ]]; then + echo "musl" + else + err "Unknown architecture from ldd: ${_ldd_version}" + fi +} + +check_proc() { + # Check for /proc by looking for the /proc/self/exe link + # This is only run on Linux + if ! test -L /proc/self/exe ; then + err "fatal: Unable to find /proc/self/exe. Is /proc mounted? Installation cannot proceed without /proc." + fi } get_bitness() { @@ -271,14 +325,18 @@ get_endianness() { } get_architecture() { - local _ostype _cputype _bitness _arch + local _ostype _cputype _bitness _arch _clibtype _ostype="$(uname -s)" _cputype="$(uname -m)" + _clibtype="gnu" if [ "$_ostype" = Linux ]; then if [ "$(uname -o)" = Android ]; then _ostype=Android fi + if ldd --version 2>&1 | grep -q 'musl'; then + _clibtype="musl" + fi fi if [ "$_ostype" = Darwin ] && [ "$_cputype" = i386 ]; then @@ -288,6 +346,24 @@ get_architecture() { fi fi + if [ "$_ostype" = SunOS ]; then + # Both Solaris and illumos presently announce as "SunOS" in "uname -s" + # so use "uname -o" to disambiguate. We use the full path to the + # system uname in case the user has coreutils uname first in PATH, + # which has historically sometimes printed the wrong value here. + if [ "$(/usr/bin/uname -o)" = illumos ]; then + _ostype=illumos + fi + + # illumos systems have multi-arch userlands, and "uname -m" reports the + # machine hardware name; e.g., "i86pc" on both 32- and 64-bit x86 + # systems. Check for the native (widest) instruction set on the + # running kernel: + if [ "$_cputype" = i86pc ]; then + _cputype="$(isainfo -n)" + fi + fi + case "$_ostype" in Android) @@ -295,18 +371,8 @@ get_architecture() { ;; Linux) - case $(get_gnu_musl_glibc) in - "musl") - _ostype=unknown-linux-musl - ;; - "gnu") - _ostype=unknown-linux-gnu - ;; - # Fallback - *) - _ostype=unknown-linux-gnu - ;; - esac + check_proc + _ostype=unknown-linux-$_clibtype _bitness=$(get_bitness) ;; @@ -326,7 +392,11 @@ get_architecture() { _ostype=apple-darwin ;; - MINGW* | MSYS* | CYGWIN*) + illumos) + _ostype=unknown-illumos + ;; + + MINGW* | MSYS* | CYGWIN* | Windows_NT) _ostype=pc-windows-gnu ;; @@ -367,7 +437,7 @@ get_architecture() { fi ;; - aarch64) + aarch64 | arm64) _cputype=aarch64 ;; @@ -402,7 +472,9 @@ get_architecture() { s390x) _cputype=s390x ;; - + riscv64) + _cputype=riscv64gc + ;; *) err "unknown CPU type: $_cputype" @@ -412,7 +484,24 @@ get_architecture() { if [ "${_ostype}" = unknown-linux-gnu ] && [ "${_bitness}" -eq 32 ]; then case $_cputype in x86_64) - _cputype=i686 + if [ -n "${RUSTUP_CPUTYPE:-}" ]; then + _cputype="$RUSTUP_CPUTYPE" + else { + # 32-bit executable for amd64 = x32 + if is_host_amd64_elf; then { + echo "This host is running an x32 userland; as it stands, x32 support is poor," 1>&2 + echo "and there isn't a native toolchain -- you will have to install" 1>&2 + echo "multiarch compatibility with i686 and/or amd64, then select one" 1>&2 + echo "by re-running this script with the RUSTUP_CPUTYPE environment variable" 1>&2 + echo "set to i686 or x86_64, respectively." 1>&2 + echo 1>&2 + echo "You will be able to add an x32 target after installation by running" 1>&2 + echo " rustup target add x86_64-unknown-linux-gnux32" 1>&2 + exit 1 + }; else + _cputype=i686 + fi + }; fi ;; mips64) _cputype=$(get_endianness mips '' el) @@ -428,6 +517,9 @@ get_architecture() { _ostype="${_ostype}eabihf" fi ;; + riscv64gc) + err "riscv64 with 32-bit userland unsupported" + ;; esac fi @@ -446,8 +538,12 @@ get_architecture() { RETVAL="$_arch" } +say() { + printf 'vector: %s\n' "$1" +} + err() { - echo "$_prompt $1" >&2 + say "$1" >&2 exit 1 } @@ -469,18 +565,7 @@ assert_nz() { # will immediately terminate with an error showing the failing # command. ensure() { - local output - output="$("$@" 2>&1 > /dev/null)" - - if [ "$output" ]; then - echo "" - echo "$_prompt command failed: $*" - echo "" - echo "$_divider" - echo "" - echo "$output" >&2 - exit 1 - fi + if ! "$@"; then err "command failed: $*"; fi } # This is just for indicating that commands' results are being @@ -494,6 +579,10 @@ ignore() { # use wget instead. downloader() { local _dld + local _ciphersuites + local _err + local _status + local _retry if check_cmd curl; then _dld=curl elif check_cmd wget; then @@ -505,49 +594,217 @@ downloader() { if [ "$1" = --check ]; then need_cmd "$_dld" elif [ "$_dld" = curl ]; then - if ! check_help_for curl --proto --tlsv1.2; then - echo "Warning: Not forcing TLS v1.2, this is potentially less secure" - curl --silent --show-error --fail --location "$1" --output "$2" + if check_curl_for_retry_support; then + _retry=(--retry 3) else - curl --proto '=https' --tlsv1.2 --silent --show-error --fail --location "$1" --output "$2" + _retry=() fi + + get_ciphersuites_for_curl + _ciphersuites="$RETVAL" + if [ -n "$_ciphersuites" ]; then + _err=$(curl "${_retry[@]}" --proto '=https' --tlsv1.2 --ciphers "$_ciphersuites" --silent --show-error --fail --location "$1" --output "$2" 2>&1) + _status=$? + else + echo "Warning: Not enforcing strong cipher suites for TLS, this is potentially less secure" + if ! check_help_for "$3" curl --proto --tlsv1.2; then + echo "Warning: Not enforcing TLS v1.2, this is potentially less secure" + _err=$(curl "${_retry[@]}" --silent --show-error --fail --location "$1" --output "$2" 2>&1) + _status=$? + else + _err=$(curl "${_retry[@]}" --proto '=https' --tlsv1.2 --silent --show-error --fail --location "$1" --output "$2" 2>&1) + _status=$? + fi + fi + if [ -n "$_err" ]; then + echo "$_err" >&2 + if echo "$_err" | grep -q 404$; then + err "installer for platform '$3' not found, this may be unsupported" + fi + fi + return $_status elif [ "$_dld" = wget ]; then - if ! check_help_for wget --https-only --secure-protocol; then - echo "Warning: Not forcing TLS v1.2, this is potentially less secure" - wget "$1" -O "$2" + if [ "$(wget -V 2>&1|head -2|tail -1|cut -f1 -d" ")" = "BusyBox" ]; then + echo "Warning: using the BusyBox version of wget. Not enforcing strong cipher suites for TLS or TLS v1.2, this is potentially less secure" + _err=$(wget "$1" -O "$2" 2>&1) + _status=$? else - wget --https-only --secure-protocol=TLSv1_2 "$1" -O "$2" + get_ciphersuites_for_wget + _ciphersuites="$RETVAL" + if [ -n "$_ciphersuites" ]; then + _err=$(wget --https-only --secure-protocol=TLSv1_2 --ciphers "$_ciphersuites" "$1" -O "$2" 2>&1) + _status=$? + else + echo "Warning: Not enforcing strong cipher suites for TLS, this is potentially less secure" + if ! check_help_for "$3" wget --https-only --secure-protocol; then + echo "Warning: Not enforcing TLS v1.2, this is potentially less secure" + _err=$(wget "$1" -O "$2" 2>&1) + _status=$? + else + _err=$(wget --https-only --secure-protocol=TLSv1_2 "$1" -O "$2" 2>&1) + _status=$? + fi + fi + fi + if [ -n "$_err" ]; then + echo "$_err" >&2 + if echo "$_err" | grep -q ' 404 Not Found$'; then + err "installer for platform '$3' not found, this may be unsupported" + fi fi + return $_status else err "Unknown downloader" # should not reach here fi } check_help_for() { + local _arch local _cmd local _arg - local _ok + _arch="$1" + shift _cmd="$1" - _ok="y" shift - # If we're running on OS-X, older than 10.13, then we always - # fail to find these options to force fallback - if check_cmd sw_vers; then - if [ "$(sw_vers -productVersion | cut -d. -f2)" -lt 13 ]; then - # Older than 10.13 - echo "Warning: Detected OS X platform older than 10.13" - _ok="n" - fi + local _category + if "$_cmd" --help | grep -q 'For all options use the manual or "--help all".'; then + _category="all" + else + _category="" fi + case "$_arch" in + + *darwin*) + if check_cmd sw_vers; then + case $(sw_vers -productVersion) in + 10.*) + # If we're running on macOS, older than 10.13, then we always + # fail to find these options to force fallback + if [ "$(sw_vers -productVersion | cut -d. -f2)" -lt 13 ]; then + # Older than 10.13 + echo "Warning: Detected macOS platform older than 10.13" + return 1 + fi + ;; + 11.*) + # We assume Big Sur will be OK for now + ;; + *) + # Unknown product version, warn and continue + echo "Warning: Detected unknown macOS major version: $(sw_vers -productVersion)" + echo "Warning TLS capabilities detection may fail" + ;; + esac + fi + ;; + + esac + for _arg in "$@"; do - if ! "$_cmd" --help | grep -q -- "$_arg"; then - _ok="n" + if ! "$_cmd" --help "$_category" | grep -q -- "$_arg"; then + return 1 fi done - test "$_ok" = "y" + true # not strictly needed +} + +# Check if curl supports the --retry flag +check_curl_for_retry_support() { + if check_help_for "notspecified" "curl" "--retry"; then + return 0 + else + return 1 + fi +} + +# Return cipher suite string specified by user, otherwise return strong TLS 1.2-1.3 cipher suites +# if support by local tools is detected. Detection currently supports these curl backends: +# GnuTLS and OpenSSL (possibly also LibreSSL and BoringSSL). Return value can be empty. +get_ciphersuites_for_curl() { + if [ -n "${RUSTUP_TLS_CIPHERSUITES-}" ]; then + # user specified custom cipher suites, assume they know what they're doing + RETVAL="$RUSTUP_TLS_CIPHERSUITES" + return + fi + + local _openssl_syntax="no" + local _gnutls_syntax="no" + local _backend_supported="yes" + if curl -V | grep -q ' OpenSSL/'; then + _openssl_syntax="yes" + elif curl -V | grep -iq ' LibreSSL/'; then + _openssl_syntax="yes" + elif curl -V | grep -iq ' BoringSSL/'; then + _openssl_syntax="yes" + elif curl -V | grep -iq ' GnuTLS/'; then + _gnutls_syntax="yes" + else + _backend_supported="no" + fi + + local _args_supported="no" + if [ "$_backend_supported" = "yes" ]; then + # "unspecified" is for arch, allows for possibility old OS using macports, homebrew, etc. + if check_help_for "notspecified" "curl" "--tlsv1.2" "--ciphers" "--proto"; then + _args_supported="yes" + fi + fi + + local _cs="" + if [ "$_args_supported" = "yes" ]; then + if [ "$_openssl_syntax" = "yes" ]; then + _cs=$(get_strong_ciphersuites_for "openssl") + elif [ "$_gnutls_syntax" = "yes" ]; then + _cs=$(get_strong_ciphersuites_for "gnutls") + fi + fi + + RETVAL="$_cs" +} + +# Return cipher suite string specified by user, otherwise return strong TLS 1.2-1.3 cipher suites +# if support by local tools is detected. Detection currently supports these wget backends: +# GnuTLS and OpenSSL (possibly also LibreSSL and BoringSSL). Return value can be empty. +get_ciphersuites_for_wget() { + if [ -n "${RUSTUP_TLS_CIPHERSUITES-}" ]; then + # user specified custom cipher suites, assume they know what they're doing + RETVAL="$RUSTUP_TLS_CIPHERSUITES" + return + fi + + local _cs="" + if wget -V | grep -q '\-DHAVE_LIBSSL'; then + # "unspecified" is for arch, allows for possibility old OS using macports, homebrew, etc. + if check_help_for "notspecified" "wget" "TLSv1_2" "--ciphers" "--https-only" "--secure-protocol"; then + _cs=$(get_strong_ciphersuites_for "openssl") + fi + elif wget -V | grep -q '\-DHAVE_LIBGNUTLS'; then + # "unspecified" is for arch, allows for possibility old OS using macports, homebrew, etc. + if check_help_for "notspecified" "wget" "TLSv1_2" "--ciphers" "--https-only" "--secure-protocol"; then + _cs=$(get_strong_ciphersuites_for "gnutls") + fi + fi + + RETVAL="$_cs" +} + +# Return strong TLS 1.2-1.3 cipher suites in OpenSSL or GnuTLS syntax. TLS 1.2 +# excludes non-ECDHE and non-AEAD cipher suites. DHE is excluded due to bad +# DH params often found on servers (see RFC 7919). Sequence matches or is +# similar to Firefox 68 ESR with weak cipher suites disabled via about:config. +# $1 must be openssl or gnutls. +get_strong_ciphersuites_for() { + if [ "$1" = "openssl" ]; then + # OpenSSL is forgiving of unknown values, no problems with TLS 1.3 values on versions that don't support it yet. + echo "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384" + elif [ "$1" = "gnutls" ]; then + # GnuTLS isn't forgiving of unknown values, so this may require a GnuTLS version that supports TLS 1.3 even if wget doesn't. + # Begin with SECURE128 (and higher) then remove/add to build cipher suites. Produces same 9 cipher suites as OpenSSL but in slightly different order. + echo "SECURE128:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-DTLS-ALL:-CIPHER-ALL:-MAC-ALL:-KX-ALL:+AEAD:+ECDHE-ECDSA:+ECDHE-RSA:+AES-128-GCM:+CHACHA20-POLY1305:+AES-256-GCM" + fi } main "$@" || exit 1 diff --git a/distribution/kubernetes/vector-agent/README.md b/distribution/kubernetes/vector-agent/README.md new file mode 100644 index 0000000000000..b38f5f345b30b --- /dev/null +++ b/distribution/kubernetes/vector-agent/README.md @@ -0,0 +1,9 @@ +The kubernetes manifests found in this directory have been automatically generated +from the [helm chart `vector/vector`](https://github.com/vectordotdev/helm-charts/tree/master/charts/vector) +version 0.40.0 with the following `values.yaml`: + +```yaml +role: Agent +service: + enabled: false +``` diff --git a/distribution/kubernetes/vector-agent/configmap.yaml b/distribution/kubernetes/vector-agent/configmap.yaml new file mode 100644 index 0000000000000..c88067f675f6e --- /dev/null +++ b/distribution/kubernetes/vector-agent/configmap.yaml @@ -0,0 +1,43 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/configmap.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: ConfigMap +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Agent + app.kubernetes.io/version: "0.44.0-distroless-libc" +data: + agent.yaml: | + data_dir: /vector-data-dir + api: + enabled: true + address: 127.0.0.1:8686 + playground: false + sources: + kubernetes_logs: + type: kubernetes_logs + host_metrics: + filesystem: + devices: + excludes: [binfmt_misc] + filesystems: + excludes: [binfmt_misc] + mountpoints: + excludes: ["*/proc/sys/fs/binfmt_misc"] + type: host_metrics + internal_metrics: + type: internal_metrics + sinks: + prom_exporter: + type: prometheus_exporter + inputs: [host_metrics, internal_metrics] + address: 0.0.0.0:9090 + stdout: + type: console + inputs: [kubernetes_logs] + encoding: + codec: json diff --git a/distribution/kubernetes/vector-agent/daemonset.yaml b/distribution/kubernetes/vector-agent/daemonset.yaml new file mode 100644 index 0000000000000..a6f5a9a13fefe --- /dev/null +++ b/distribution/kubernetes/vector-agent/daemonset.yaml @@ -0,0 +1,100 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/daemonset.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Agent + app.kubernetes.io/version: "0.44.0-distroless-libc" +spec: + selector: + matchLabels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Agent + minReadySeconds: 0 + template: + metadata: + annotations: {} + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Agent + vector.dev/exclude: "true" + spec: + serviceAccountName: vector + dnsPolicy: ClusterFirst + containers: + - name: vector + image: "timberio/vector:0.44.0-distroless-libc" + imagePullPolicy: IfNotPresent + args: + - --config-dir + - /etc/vector/ + env: + - name: VECTOR_LOG + value: "info" + - name: VECTOR_SELF_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: VECTOR_SELF_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: VECTOR_SELF_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: PROCFS_ROOT + value: "/host/proc" + - name: SYSFS_ROOT + value: "/host/sys" + ports: + - name: prom-exporter + containerPort: 9090 + protocol: TCP + volumeMounts: + - name: data + mountPath: "/vector-data-dir" + - name: config + mountPath: "/etc/vector/" + readOnly: true + - mountPath: /var/log/ + name: var-log + readOnly: true + - mountPath: /var/lib + name: var-lib + readOnly: true + - mountPath: /host/proc + name: procfs + readOnly: true + - mountPath: /host/sys + name: sysfs + readOnly: true + terminationGracePeriodSeconds: 60 + volumes: + - name: config + projected: + sources: + - configMap: + name: vector + - name: data + hostPath: + path: "/var/lib/vector" + - hostPath: + path: /var/log/ + name: var-log + - hostPath: + path: /var/lib/ + name: var-lib + - hostPath: + path: /proc + name: procfs + - hostPath: + path: /sys + name: sysfs diff --git a/distribution/kubernetes/vector-agent/kustomization.yaml b/distribution/kubernetes/vector-agent/kustomization.yaml index 7bfec31046a5a..b80393851f044 100644 --- a/distribution/kubernetes/vector-agent/kustomization.yaml +++ b/distribution/kubernetes/vector-agent/kustomization.yaml @@ -1,4 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + namespace: vector resources: - - resources.yaml + - configmap.yaml + - daemonset.yaml + - rbac.yaml + - serviceaccount.yaml diff --git a/distribution/kubernetes/vector-agent/rbac.yaml b/distribution/kubernetes/vector-agent/rbac.yaml new file mode 100644 index 0000000000000..781f84980f7fe --- /dev/null +++ b/distribution/kubernetes/vector-agent/rbac.yaml @@ -0,0 +1,42 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/rbac.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +# Permissions to use Kubernetes API. +# Requires that RBAC authorization is enabled. +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: vector + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Agent + app.kubernetes.io/version: "0.44.0-distroless-libc" +rules: + - apiGroups: + - "" + resources: + - namespaces + - nodes + - pods + verbs: + - list + - watch +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/rbac.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: vector + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Agent + app.kubernetes.io/version: "0.44.0-distroless-libc" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: vector +subjects: + - kind: ServiceAccount + name: vector + namespace: default diff --git a/distribution/kubernetes/vector-agent/resources.yaml b/distribution/kubernetes/vector-agent/resources.yaml deleted file mode 100644 index 271ed26bff9fc..0000000000000 --- a/distribution/kubernetes/vector-agent/resources.yaml +++ /dev/null @@ -1,234 +0,0 @@ -# This file is generated from the Helm Chart by "scripts/kubernetes-yaml.sh". -# You might want to use the Helm Chart, see "distribution/helm/vector-agent" or the -# documentation on our website at https://vector.dev/docs. -# If you copied this file into you local setup - feel free to change it however -# you please. -# If you want to create a PR to the Vector's Kubernetes config - please do not -# edit this file directly. Instead, apply your changes to the Helm Chart. ---- -# Source: vector-agent/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: vector-agent - labels: - helm.sh/chart: vector-agent-0.0.0 - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm ---- -# Source: vector-agent/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: vector-agent - labels: - helm.sh/chart: vector-agent-0.0.0 - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -data: - # We leave `vector.toml` file name available to let externally managed config - # maps to provide it. - managed.toml: | - # Configuration for vector. - # Docs: https://vector.dev/docs/ - - data_dir = "/vector-data-dir" - - [api] - enabled = false - address = "0.0.0.0:8686" - playground = true - - [log_schema] - host_key = "host" - message_key = "message" - source_type_key = "source_type" - timestamp_key = "timestamp" - - # Ingest logs from Kubernetes. - [sources.kubernetes_logs] - type = "kubernetes_logs" - - # Capture the metrics from the host. - [sources.host_metrics] - type = "host_metrics" - - - # Emit internal Vector metrics. - [sources.internal_metrics] - type = "internal_metrics" - - # Expose metrics for scraping in the Prometheus format. - [sinks.prometheus_sink] - address = "0.0.0.0:9090" - inputs = ["internal_metrics", "host_metrics"] - type = "prometheus" ---- -# Source: vector-agent/templates/rbac.yaml -# Permissions to use Kubernetes API. -# Requires that RBAC authorization is enabled. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: vector-agent -rules: - - apiGroups: - - "" - resources: - - pods - verbs: - - watch ---- -# Source: vector-agent/templates/rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: vector-agent - labels: - helm.sh/chart: vector-agent-0.0.0 - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: vector-agent -subjects: - - kind: ServiceAccount - name: vector-agent - namespace: vector ---- -# Source: vector-agent/templates/daemonset.yaml -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: vector-agent - labels: - helm.sh/chart: vector-agent-0.0.0 - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -spec: - selector: - matchLabels: - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - minReadySeconds: 1 - updateStrategy: - type: RollingUpdate - template: - metadata: - annotations: - - checksum/config: 75958f6034a2d836d57468a572df3af05ea5d4eaf4b8b5cbd6371e6ec319a696 - - labels: - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - vector.dev/exclude: "true" - spec: - serviceAccountName: vector-agent - securityContext: - {} - containers: - - name: vector - securityContext: - {} - image: "timberio/vector:latest-debian" - imagePullPolicy: "IfNotPresent" - args: - - --config - - /etc/vector/*.toml - env: - - name: VECTOR_SELF_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: VECTOR_SELF_POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: VECTOR_SELF_POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: PROCFS_ROOT - value: /host/proc - - name: SYSFS_ROOT - value: /host/sys - - - name: LOG - value: info - ports: - - name: metrics - containerPort: 9090 - protocol: TCP - resources: - {} - volumeMounts: - # Host log directory mount. - - name: var-log - mountPath: /var/log/ - readOnly: true - # Host mount for docker and containerd log file symlinks. - - name: var-lib - mountPath: /var/lib - readOnly: true - # Vector data dir mount. - - name: data-dir - mountPath: "/vector-data-dir" - # Vector config dir mount. - - name: config-dir - mountPath: /etc/vector - readOnly: true - # Host procsfs mount. - - name: procfs - mountPath: /host/proc - readOnly: true - # Host sysfs mount. - - name: sysfs - mountPath: /host/sys - readOnly: true - terminationGracePeriodSeconds: 60 - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/master - volumes: - # Log directory. - - name: var-log - hostPath: - path: /var/log/ - # Docker and containerd log files in Kubernetes are symlinks to this folder. - - name: var-lib - hostPath: - path: /var/lib/ - # Vector will store it's data here. - - name: data-dir - hostPath: - path: /var/lib/vector/ - # Vector config dir. - - name: config-dir - projected: - sources: - - configMap: - name: vector-agent - - configMap: - name: vector-agent-config - optional: true - - secret: - name: vector-agent-config - optional: true - # Host procsfs. - - name: procfs - hostPath: - path: /proc - # Host sysfs. - - name: sysfs - hostPath: - path: /sys diff --git a/distribution/kubernetes/vector-agent/service-headless.yaml b/distribution/kubernetes/vector-agent/service-headless.yaml new file mode 100644 index 0000000000000..11261e449eeed --- /dev/null +++ b/distribution/kubernetes/vector-agent/service-headless.yaml @@ -0,0 +1,45 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/service-headless.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: Service +metadata: + name: vector-headless + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Agent + app.kubernetes.io/version: "0.44.0-distroless-libc" + annotations: +spec: + clusterIP: None + ports: + - name: datadog-agent + port: 8282 + protocol: TCP + - name: fluent + port: 24224 + protocol: TCP + - name: logstash + port: 5044 + protocol: TCP + - name: splunk-hec + port: 8080 + protocol: TCP + - name: statsd + port: 8125 + protocol: TCP + - name: syslog + port: 9000 + protocol: TCP + - name: vector + port: 6000 + protocol: TCP + - name: prom-exporter + port: 9090 + protocol: TCP + selector: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Agent + type: ClusterIP diff --git a/distribution/kubernetes/vector-agent/serviceaccount.yaml b/distribution/kubernetes/vector-agent/serviceaccount.yaml new file mode 100644 index 0000000000000..5d9c6135e215f --- /dev/null +++ b/distribution/kubernetes/vector-agent/serviceaccount.yaml @@ -0,0 +1,13 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/serviceaccount.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: ServiceAccount +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Agent + app.kubernetes.io/version: "0.44.0-distroless-libc" +automountServiceAccountToken: true diff --git a/distribution/kubernetes/vector-aggregator/README.md b/distribution/kubernetes/vector-aggregator/README.md new file mode 100644 index 0000000000000..30f156f9eb48e --- /dev/null +++ b/distribution/kubernetes/vector-aggregator/README.md @@ -0,0 +1,7 @@ +The kubernetes manifests found in this directory have been automatically generated +from the [helm chart `vector/vector`](https://github.com/vectordotdev/helm-charts/tree/master/charts/vector) +version 0.40.0 with the following `values.yaml`: + +```yaml + +``` diff --git a/distribution/kubernetes/vector-aggregator/configmap.yaml b/distribution/kubernetes/vector-aggregator/configmap.yaml new file mode 100644 index 0000000000000..462482ce201d7 --- /dev/null +++ b/distribution/kubernetes/vector-aggregator/configmap.yaml @@ -0,0 +1,56 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/configmap.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: ConfigMap +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" +data: + aggregator.yaml: | + data_dir: /vector-data-dir + api: + enabled: true + address: 127.0.0.1:8686 + playground: false + sources: + datadog_agent: + address: 0.0.0.0:8282 + type: datadog_agent + fluent: + address: 0.0.0.0:24224 + type: fluent + internal_metrics: + type: internal_metrics + logstash: + address: 0.0.0.0:5044 + type: logstash + splunk_hec: + address: 0.0.0.0:8080 + type: splunk_hec + statsd: + address: 0.0.0.0:8125 + mode: tcp + type: statsd + syslog: + address: 0.0.0.0:9000 + mode: tcp + type: syslog + vector: + address: 0.0.0.0:6000 + type: vector + version: "2" + sinks: + prom_exporter: + type: prometheus_exporter + inputs: [internal_metrics] + address: 0.0.0.0:9090 + stdout: + type: console + inputs: [datadog_agent, fluent, logstash, splunk_hec, statsd, syslog, vector] + encoding: + codec: json diff --git a/distribution/kubernetes/vector-aggregator/kustomization.yaml b/distribution/kubernetes/vector-aggregator/kustomization.yaml index 7bfec31046a5a..602c8971bf693 100644 --- a/distribution/kubernetes/vector-aggregator/kustomization.yaml +++ b/distribution/kubernetes/vector-aggregator/kustomization.yaml @@ -1,4 +1,11 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + namespace: vector resources: - - resources.yaml + - configmap.yaml + - service-headless.yaml + - service.yaml + - serviceaccount.yaml + - statefulset.yaml diff --git a/distribution/kubernetes/vector-aggregator/resources.yaml b/distribution/kubernetes/vector-aggregator/resources.yaml deleted file mode 100644 index 9eff868b7f689..0000000000000 --- a/distribution/kubernetes/vector-aggregator/resources.yaml +++ /dev/null @@ -1,193 +0,0 @@ -# This file is generated from the Helm Chart by "scripts/kubernetes-yaml.sh". -# You might want to use the Helm Chart, see "distribution/helm/vector-aggregator" or the -# documentation on our website at https://vector.dev/docs. -# If you copied this file into you local setup - feel free to change it however -# you please. -# If you want to create a PR to the Vector's Kubernetes config - please do not -# edit this file directly. Instead, apply your changes to the Helm Chart. ---- -# Source: vector-aggregator/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: vector-aggregator - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm ---- -# Source: vector-aggregator/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: vector-aggregator - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -data: - # We leave `vector.toml` file name available to let externally managed config - # maps to provide it. - managed.toml: | - # Configuration for vector. - # Docs: https://vector.dev/docs/ - - data_dir = "/vector-data-dir" - - [api] - enabled = false - address = "0.0.0.0:8686" - playground = true - - [log_schema] - host_key = "host" - message_key = "message" - source_type_key = "source_type" - timestamp_key = "timestamp" - - # Accept logs from Vector agents. - [sources.vector] - address = "0.0.0.0:9000" - type = "vector" - - - # Emit internal Vector metrics. - [sources.internal_metrics] - type = "internal_metrics" - - # Expose metrics for scraping in the Prometheus format. - [sinks.prometheus_sink] - address = "0.0.0.0:9090" - inputs = ["internal_metrics"] - type = "prometheus" ---- -# Source: vector-aggregator/templates/service-headless.yaml -apiVersion: v1 -kind: Service -metadata: - name: vector-aggregator-headless - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -spec: - clusterIP: None - ports: - - port: 9000 - name: vector - protocol: TCP - selector: - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector ---- -# Source: vector-aggregator/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: vector-aggregator - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -spec: - type: ClusterIP - ports: - - port: 9000 - targetPort: 9000 - name: vector - protocol: TCP - selector: - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector ---- -# Source: vector-aggregator/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: vector-aggregator - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -spec: - serviceName: vector-aggregator-headless - selector: - matchLabels: - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - podManagementPolicy: "Parallel" - replicas: 1 - template: - metadata: - annotations: - - checksum/config: 2e32b2eca9854ebc0d3877ff9cb719ac16698a6e976a05151945729a41eb058d - - labels: - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - vector.dev/exclude: "true" - spec: - serviceAccountName: vector-aggregator - securityContext: - {} - containers: - - name: vector - securityContext: - {} - image: "timberio/vector:latest-debian" - imagePullPolicy: "IfNotPresent" - args: - - --config - - /etc/vector/*.toml - env: - - - name: LOG - value: info - ports: - - name: metrics - containerPort: 9090 - protocol: TCP - resources: - {} - volumeMounts: - # Vector data dir mount. - - name: data-dir - mountPath: "/vector-data-dir" - # Vector config dir mount. - - name: config-dir - mountPath: /etc/vector - readOnly: true - # Extra volumes. - terminationGracePeriodSeconds: 60 - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/master - volumes: - # Vector will store it's data here. - - name: data-dir - emptyDir: {} - # Vector config dir. - - name: config-dir - projected: - sources: - - configMap: - name: vector-aggregator - optional: true - - configMap: - name: vector-aggregator-config - optional: true - - secret: - name: vector-aggregator-config - optional: true - volumeClaimTemplates: diff --git a/distribution/kubernetes/vector-aggregator/service-headless.yaml b/distribution/kubernetes/vector-aggregator/service-headless.yaml new file mode 100644 index 0000000000000..ac74dc0f2981f --- /dev/null +++ b/distribution/kubernetes/vector-aggregator/service-headless.yaml @@ -0,0 +1,45 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/service-headless.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: Service +metadata: + name: vector-headless + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" + annotations: +spec: + clusterIP: None + ports: + - name: datadog-agent + port: 8282 + protocol: TCP + - name: fluent + port: 24224 + protocol: TCP + - name: logstash + port: 5044 + protocol: TCP + - name: splunk-hec + port: 8080 + protocol: TCP + - name: statsd + port: 8125 + protocol: TCP + - name: syslog + port: 9000 + protocol: TCP + - name: vector + port: 6000 + protocol: TCP + - name: prom-exporter + port: 9090 + protocol: TCP + selector: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Aggregator + type: ClusterIP diff --git a/distribution/kubernetes/vector-aggregator/service.yaml b/distribution/kubernetes/vector-aggregator/service.yaml new file mode 100644 index 0000000000000..b254a4f889b2a --- /dev/null +++ b/distribution/kubernetes/vector-aggregator/service.yaml @@ -0,0 +1,44 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/service.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: Service +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" + annotations: +spec: + ports: + - name: datadog-agent + port: 8282 + protocol: TCP + - name: fluent + port: 24224 + protocol: TCP + - name: logstash + port: 5044 + protocol: TCP + - name: splunk-hec + port: 8080 + protocol: TCP + - name: statsd + port: 8125 + protocol: TCP + - name: syslog + port: 9000 + protocol: TCP + - name: vector + port: 6000 + protocol: TCP + - name: prom-exporter + port: 9090 + protocol: TCP + selector: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Aggregator + type: ClusterIP diff --git a/distribution/kubernetes/vector-aggregator/serviceaccount.yaml b/distribution/kubernetes/vector-aggregator/serviceaccount.yaml new file mode 100644 index 0000000000000..1b37f896bc5bf --- /dev/null +++ b/distribution/kubernetes/vector-aggregator/serviceaccount.yaml @@ -0,0 +1,13 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/serviceaccount.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: ServiceAccount +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" +automountServiceAccountToken: true diff --git a/distribution/kubernetes/vector-aggregator/statefulset.yaml b/distribution/kubernetes/vector-aggregator/statefulset.yaml new file mode 100644 index 0000000000000..cd341a8bf31c8 --- /dev/null +++ b/distribution/kubernetes/vector-aggregator/statefulset.yaml @@ -0,0 +1,85 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/statefulset.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" + annotations: {} +spec: + replicas: 1 + podManagementPolicy: OrderedReady + selector: + matchLabels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Aggregator + minReadySeconds: 0 + serviceName: vector-headless + template: + metadata: + annotations: {} + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Aggregator + vector.dev/exclude: "true" + spec: + serviceAccountName: vector + dnsPolicy: ClusterFirst + containers: + - name: vector + image: "timberio/vector:0.44.0-distroless-libc" + imagePullPolicy: IfNotPresent + args: + - --config-dir + - /etc/vector/ + env: + - name: VECTOR_LOG + value: "info" + ports: + - name: datadog-agent + containerPort: 8282 + protocol: TCP + - name: fluent + containerPort: 24224 + protocol: TCP + - name: logstash + containerPort: 5044 + protocol: TCP + - name: splunk-hec + containerPort: 8080 + protocol: TCP + - name: statsd + containerPort: 8125 + protocol: TCP + - name: syslog + containerPort: 9000 + protocol: TCP + - name: vector + containerPort: 6000 + protocol: TCP + - name: prom-exporter + containerPort: 9090 + protocol: TCP + volumeMounts: + - name: data + mountPath: "/vector-data-dir" + - name: config + mountPath: "/etc/vector/" + readOnly: true + terminationGracePeriodSeconds: 60 + volumes: + - name: data + emptyDir: {} + - name: config + projected: + sources: + - configMap: + name: vector + volumeClaimTemplates: diff --git a/distribution/kubernetes/vector-all/kustomization.yaml b/distribution/kubernetes/vector-all/kustomization.yaml deleted file mode 100644 index 7bfec31046a5a..0000000000000 --- a/distribution/kubernetes/vector-all/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -namespace: vector - -resources: - - resources.yaml diff --git a/distribution/kubernetes/vector-all/resources.yaml b/distribution/kubernetes/vector-all/resources.yaml deleted file mode 100644 index 1d9a1f7ff1cd6..0000000000000 --- a/distribution/kubernetes/vector-all/resources.yaml +++ /dev/null @@ -1,426 +0,0 @@ -# This file is generated from the Helm Chart by "scripts/kubernetes-yaml.sh". -# You might want to use the Helm Chart, see "distribution/helm/vector" or the -# documentation on our website at https://vector.dev/docs. -# If you copied this file into you local setup - feel free to change it however -# you please. -# If you want to create a PR to the Vector's Kubernetes config - please do not -# edit this file directly. Instead, apply your changes to the Helm Chart. ---- -# Source: vector/charts/vector-agent/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: vector-agent - labels: - helm.sh/chart: vector-agent-0.0.0 - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm ---- -# Source: vector/charts/vector-aggregator/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: vector-aggregator - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm ---- -# Source: vector/charts/vector-agent/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: vector-agent - labels: - helm.sh/chart: vector-agent-0.0.0 - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -data: - # We leave `vector.toml` file name available to let externally managed config - # maps to provide it. - managed.toml: | - # Configuration for vector. - # Docs: https://vector.dev/docs/ - - data_dir = "/vector-data-dir" - - [api] - enabled = false - address = "0.0.0.0:8686" - playground = true - - [log_schema] - host_key = "host" - message_key = "message" - source_type_key = "source_type" - timestamp_key = "timestamp" - - # Ingest logs from Kubernetes. - [sources.kubernetes_logs] - type = "kubernetes_logs" - - # Send logs to the aggregator. - [sinks.vector_sink] - address = "vector-aggregator:9000" - inputs = ["kubernetes_logs"] - type = "vector" - - # Capture the metrics from the host. - [sources.host_metrics] - type = "host_metrics" - - - # Emit internal Vector metrics. - [sources.internal_metrics] - type = "internal_metrics" - - # Expose metrics for scraping in the Prometheus format. - [sinks.prometheus_sink] - address = "0.0.0.0:9090" - inputs = ["internal_metrics", "host_metrics"] - type = "prometheus" ---- -# Source: vector/charts/vector-aggregator/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: vector-aggregator - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -data: - # We leave `vector.toml` file name available to let externally managed config - # maps to provide it. - managed.toml: | - # Configuration for vector. - # Docs: https://vector.dev/docs/ - - data_dir = "/vector-data-dir" - - [api] - enabled = false - address = "0.0.0.0:8686" - playground = true - - [log_schema] - host_key = "host" - message_key = "message" - source_type_key = "source_type" - timestamp_key = "timestamp" - - # Accept logs from Vector agents. - [sources.vector] - address = "0.0.0.0:9000" - type = "vector" - - - # Emit internal Vector metrics. - [sources.internal_metrics] - type = "internal_metrics" - - # Expose metrics for scraping in the Prometheus format. - [sinks.prometheus_sink] - address = "0.0.0.0:9090" - inputs = ["internal_metrics"] - type = "prometheus" ---- -# Source: vector/charts/vector-agent/templates/rbac.yaml -# Permissions to use Kubernetes API. -# Requires that RBAC authorization is enabled. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: vector-agent -rules: - - apiGroups: - - "" - resources: - - pods - verbs: - - watch ---- -# Source: vector/charts/vector-agent/templates/rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: vector-agent - labels: - helm.sh/chart: vector-agent-0.0.0 - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: vector-agent -subjects: - - kind: ServiceAccount - name: vector-agent - namespace: vector ---- -# Source: vector/charts/vector-aggregator/templates/service-headless.yaml -apiVersion: v1 -kind: Service -metadata: - name: vector-aggregator-headless - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -spec: - clusterIP: None - ports: - - port: 9000 - name: vector - protocol: TCP - selector: - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector ---- -# Source: vector/charts/vector-aggregator/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: vector-aggregator - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -spec: - type: ClusterIP - ports: - - port: 9000 - targetPort: 9000 - name: vector - protocol: TCP - selector: - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector ---- -# Source: vector/charts/vector-agent/templates/daemonset.yaml -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: vector-agent - labels: - helm.sh/chart: vector-agent-0.0.0 - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -spec: - selector: - matchLabels: - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - minReadySeconds: 1 - updateStrategy: - type: RollingUpdate - template: - metadata: - annotations: - - checksum/config: fa3deb906e02ab211d86aa37249d2f7d73dce9e771d68ed0679c7a0cab9eb54c - - labels: - app.kubernetes.io/name: vector-agent - app.kubernetes.io/instance: vector - vector.dev/exclude: "true" - spec: - serviceAccountName: vector-agent - securityContext: - {} - containers: - - name: vector - securityContext: - {} - image: "timberio/vector:latest-debian" - imagePullPolicy: "IfNotPresent" - args: - - --config - - /etc/vector/*.toml - env: - - name: VECTOR_SELF_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: VECTOR_SELF_POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: VECTOR_SELF_POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: PROCFS_ROOT - value: /host/proc - - name: SYSFS_ROOT - value: /host/sys - - - name: "LOG" - value: "info" - ports: - - name: metrics - containerPort: 9090 - protocol: TCP - resources: - {} - volumeMounts: - # Host log directory mount. - - name: var-log - mountPath: /var/log/ - readOnly: true - # Host mount for docker and containerd log file symlinks. - - name: var-lib - mountPath: /var/lib - readOnly: true - # Vector data dir mount. - - name: data-dir - mountPath: "/vector-data-dir" - # Vector config dir mount. - - name: config-dir - mountPath: /etc/vector - readOnly: true - # Host procsfs mount. - - name: procfs - mountPath: /host/proc - readOnly: true - # Host sysfs mount. - - name: sysfs - mountPath: /host/sys - readOnly: true - terminationGracePeriodSeconds: 60 - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/master - volumes: - # Log directory. - - name: var-log - hostPath: - path: /var/log/ - # Docker and containerd log files in Kubernetes are symlinks to this folder. - - name: var-lib - hostPath: - path: /var/lib/ - # Vector will store it's data here. - - name: data-dir - hostPath: - path: /var/lib/vector/ - # Vector config dir. - - name: config-dir - projected: - sources: - - configMap: - name: vector-agent - - configMap: - name: vector-agent-config - optional: true - - secret: - name: vector-agent-config - optional: true - # Host procsfs. - - name: procfs - hostPath: - path: /proc - # Host sysfs. - - name: sysfs - hostPath: - path: /sys ---- -# Source: vector/charts/vector-aggregator/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: vector-aggregator - labels: - helm.sh/chart: vector-aggregator-0.0.0 - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - app.kubernetes.io/version: "0.0.0" - app.kubernetes.io/managed-by: Helm -spec: - serviceName: vector-aggregator-headless - selector: - matchLabels: - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - podManagementPolicy: "Parallel" - replicas: 1 - template: - metadata: - annotations: - - checksum/config: a67c40b917e758700bf0df9b0719a84da8ee3828ec3a5d651baf78dcb02fb68a - - labels: - app.kubernetes.io/name: vector-aggregator - app.kubernetes.io/instance: vector - vector.dev/exclude: "true" - spec: - serviceAccountName: vector-aggregator - securityContext: - {} - containers: - - name: vector - securityContext: - {} - image: "timberio/vector:latest-debian" - imagePullPolicy: "IfNotPresent" - args: - - --config - - /etc/vector/*.toml - env: - - - name: "LOG" - value: "info" - ports: - - name: metrics - containerPort: 9090 - protocol: TCP - resources: - {} - volumeMounts: - # Vector data dir mount. - - name: data-dir - mountPath: "/vector-data-dir" - # Vector config dir mount. - - name: config-dir - mountPath: /etc/vector - readOnly: true - # Extra volumes. - terminationGracePeriodSeconds: 60 - tolerations: - - effect: NoSchedule - key: node-role.kubernetes.io/master - volumes: - # Vector will store it's data here. - - name: data-dir - emptyDir: {} - # Vector config dir. - - name: config-dir - projected: - sources: - - configMap: - name: vector-aggregator - optional: true - - configMap: - name: vector-aggregator-config - optional: true - - secret: - name: vector-aggregator-config - optional: true - volumeClaimTemplates: diff --git a/distribution/kubernetes/vector-stateless-aggregator/README.md b/distribution/kubernetes/vector-stateless-aggregator/README.md new file mode 100644 index 0000000000000..1290a26a3a136 --- /dev/null +++ b/distribution/kubernetes/vector-stateless-aggregator/README.md @@ -0,0 +1,7 @@ +The kubernetes manifests found in this directory have been automatically generated +from the [helm chart `vector/vector`](https://github.com/vectordotdev/helm-charts/tree/master/charts/vector) +version 0.40.0 with the following `values.yaml`: + +```yaml +role: Stateless-Aggregator +``` diff --git a/distribution/kubernetes/vector-stateless-aggregator/configmap.yaml b/distribution/kubernetes/vector-stateless-aggregator/configmap.yaml new file mode 100644 index 0000000000000..82e31c71ba887 --- /dev/null +++ b/distribution/kubernetes/vector-stateless-aggregator/configmap.yaml @@ -0,0 +1,56 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/configmap.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: ConfigMap +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Stateless-Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" +data: + aggregator.yaml: | + data_dir: /vector-data-dir + api: + enabled: true + address: 127.0.0.1:8686 + playground: false + sources: + datadog_agent: + address: 0.0.0.0:8282 + type: datadog_agent + fluent: + address: 0.0.0.0:24224 + type: fluent + internal_metrics: + type: internal_metrics + logstash: + address: 0.0.0.0:5044 + type: logstash + splunk_hec: + address: 0.0.0.0:8080 + type: splunk_hec + statsd: + address: 0.0.0.0:8125 + mode: tcp + type: statsd + syslog: + address: 0.0.0.0:9000 + mode: tcp + type: syslog + vector: + address: 0.0.0.0:6000 + type: vector + version: "2" + sinks: + prom_exporter: + type: prometheus_exporter + inputs: [internal_metrics] + address: 0.0.0.0:9090 + stdout: + type: console + inputs: [datadog_agent, fluent, logstash, splunk_hec, statsd, syslog, vector] + encoding: + codec: json diff --git a/distribution/kubernetes/vector-stateless-aggregator/deployment.yaml b/distribution/kubernetes/vector-stateless-aggregator/deployment.yaml new file mode 100644 index 0000000000000..53b8dc0cbd6a9 --- /dev/null +++ b/distribution/kubernetes/vector-stateless-aggregator/deployment.yaml @@ -0,0 +1,82 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/deployment.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: apps/v1 +kind: Deployment +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Stateless-Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" + annotations: {} +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Stateless-Aggregator + minReadySeconds: 0 + template: + metadata: + annotations: {} + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Stateless-Aggregator + vector.dev/exclude: "true" + spec: + serviceAccountName: vector + dnsPolicy: ClusterFirst + containers: + - name: vector + image: "timberio/vector:0.44.0-distroless-libc" + imagePullPolicy: IfNotPresent + args: + - --config-dir + - /etc/vector/ + env: + - name: VECTOR_LOG + value: "info" + ports: + - name: datadog-agent + containerPort: 8282 + protocol: TCP + - name: fluent + containerPort: 24224 + protocol: TCP + - name: logstash + containerPort: 5044 + protocol: TCP + - name: splunk-hec + containerPort: 8080 + protocol: TCP + - name: statsd + containerPort: 8125 + protocol: TCP + - name: syslog + containerPort: 9000 + protocol: TCP + - name: vector + containerPort: 6000 + protocol: TCP + - name: prom-exporter + containerPort: 9090 + protocol: TCP + volumeMounts: + - name: data + mountPath: "/vector-data-dir" + - name: config + mountPath: "/etc/vector/" + readOnly: true + terminationGracePeriodSeconds: 60 + volumes: + - name: data + emptyDir: {} + - name: config + projected: + sources: + - configMap: + name: vector diff --git a/distribution/kubernetes/vector-stateless-aggregator/kustomization.yaml b/distribution/kubernetes/vector-stateless-aggregator/kustomization.yaml new file mode 100644 index 0000000000000..16bad0501ee5c --- /dev/null +++ b/distribution/kubernetes/vector-stateless-aggregator/kustomization.yaml @@ -0,0 +1,11 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: vector + +resources: + - configmap.yaml + - deployment.yaml + - service-headless.yaml + - service.yaml + - serviceaccount.yaml diff --git a/distribution/kubernetes/vector-stateless-aggregator/service-headless.yaml b/distribution/kubernetes/vector-stateless-aggregator/service-headless.yaml new file mode 100644 index 0000000000000..bc096d915d309 --- /dev/null +++ b/distribution/kubernetes/vector-stateless-aggregator/service-headless.yaml @@ -0,0 +1,45 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/service-headless.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: Service +metadata: + name: vector-headless + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Stateless-Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" + annotations: +spec: + clusterIP: None + ports: + - name: datadog-agent + port: 8282 + protocol: TCP + - name: fluent + port: 24224 + protocol: TCP + - name: logstash + port: 5044 + protocol: TCP + - name: splunk-hec + port: 8080 + protocol: TCP + - name: statsd + port: 8125 + protocol: TCP + - name: syslog + port: 9000 + protocol: TCP + - name: vector + port: 6000 + protocol: TCP + - name: prom-exporter + port: 9090 + protocol: TCP + selector: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Stateless-Aggregator + type: ClusterIP diff --git a/distribution/kubernetes/vector-stateless-aggregator/service.yaml b/distribution/kubernetes/vector-stateless-aggregator/service.yaml new file mode 100644 index 0000000000000..07f710225e64f --- /dev/null +++ b/distribution/kubernetes/vector-stateless-aggregator/service.yaml @@ -0,0 +1,44 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/service.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: Service +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Stateless-Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" + annotations: +spec: + ports: + - name: datadog-agent + port: 8282 + protocol: TCP + - name: fluent + port: 24224 + protocol: TCP + - name: logstash + port: 5044 + protocol: TCP + - name: splunk-hec + port: 8080 + protocol: TCP + - name: statsd + port: 8125 + protocol: TCP + - name: syslog + port: 9000 + protocol: TCP + - name: vector + port: 6000 + protocol: TCP + - name: prom-exporter + port: 9090 + protocol: TCP + selector: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Stateless-Aggregator + type: ClusterIP diff --git a/distribution/kubernetes/vector-stateless-aggregator/serviceaccount.yaml b/distribution/kubernetes/vector-stateless-aggregator/serviceaccount.yaml new file mode 100644 index 0000000000000..641d2a58bd1c6 --- /dev/null +++ b/distribution/kubernetes/vector-stateless-aggregator/serviceaccount.yaml @@ -0,0 +1,13 @@ +--- +# This file has been generated by `helm template vector vector/vector` from vector/templates/serviceaccount.yaml. Please re-run `make generate-kubernetes-manifests` rather than modifying this file manually. +apiVersion: v1 +kind: ServiceAccount +metadata: + name: vector + namespace: default + labels: + app.kubernetes.io/name: vector + app.kubernetes.io/instance: vector + app.kubernetes.io/component: Stateless-Aggregator + app.kubernetes.io/version: "0.44.0-distroless-libc" +automountServiceAccountToken: true diff --git a/distribution/msi/build.sh b/distribution/msi/build.sh index 85a7338b263fc..0f770b0ebf247 100644 --- a/distribution/msi/build.sh +++ b/distribution/msi/build.sh @@ -1,6 +1,7 @@ #!/bin/bash ARCHIVE_VERSION=$1 +PACKAGE_VERSION=$2 echo "Copying ZIP archive..." @@ -14,7 +15,7 @@ sed 's/$/\\/' < vector-"${ARCHIVE_VERSION}"-x86_64-pc-windows-msvc/LICENSE.txt > echo -e '\n}' >> LICENSE.rtf echo "Substituting version..." -VERSION="${ARCHIVE_VERSION}" envsubst < vector.wxs.tmpl > vector.wxs +VERSION="${PACKAGE_VERSION}" envsubst < vector.wxs.tmpl > vector.wxs echo "Building the MSI package..." heat dir vector-"${ARCHIVE_VERSION}"-x86_64-pc-windows-msvc \ diff --git a/distribution/msi/vector.wxs.tmpl b/distribution/msi/vector.wxs.tmpl index b7c8a41213cfc..4035ce6cff44c 100644 --- a/distribution/msi/vector.wxs.tmpl +++ b/distribution/msi/vector.wxs.tmpl @@ -8,7 +8,7 @@ UpgradeCode="0596ECAA-4D39-48E9-AB23-DA89A85AE67E" Name="Vector" Version="$VERSION" - Manufacturer="Vector Developers <vector@timber.io>" + Manufacturer="Vector Developers <vector@datadoghq.com>" Language="1033" > "; - - src = <% if ENV.has_key?("GITHUB_SHA256") %>fetchFromGitHub { - owner = "timberio"; - repo = pname; - rev = "refs/tags/v${version}"; - sha256 = "<%= ENV["GITHUB_SHA256"] %>"; - }<% else %><%= "/distribution/default.nix" %><% end %>; - - legacyCargoFetcher = true; - cargoSha256 = "<%= - # The only official way to calculate `cargoSha256` is to set it arbitrarily, - # run the build, and then extract the correct checksum from the error - # message. See - # https://nixos.org/nixpkgs/manual/#compiling-rust-applications-with-cargo - # for details. - - if ENV.has_key?("CARGO_SHA256") - ENV["CARGO_SHA256"] - else - require 'open3' - - _, output, _ = Open3.capture3({ "CARGO_SHA256" => "1" * 52 }, "#{VECTOR_TARGET_DIR}/scripts/verify-nix.sh") - expected_sha256 = output - .split("\n") - .select { |s| s =~ /got:.*sha256:/ } - .map { |s| s.split(":")[-1] } - .first - - expected_sha256 - end - %>"; - buildInputs = [ openssl pkgconfig protobuf rdkafka cmake ] - ++ stdenv.lib.optional stdenv.isDarwin [ Security libiconv ]; - - # needed for internal protobuf c wrapper library - PROTOC="${protobuf}/bin/protoc"; - PROTOC_INCLUDE="${protobuf}/include"; - - cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ]; - checkPhase = "TZDIR=${tzdata}/share/zoneinfo cargo test --no-default-features --features ${lib.concatStringsSep "," features},disable-resolv-conf -- --test-threads 1"; - - meta = with stdenv.lib; { - description = "A lightweight and ultra-fast tool for building observability pipelines"; - homepage = "https://github.com/timberio/vector"; - license = with licenses; [ asl20 ]; - maintainers = with maintainers; [ thoughtpolice ]; - platforms = platforms.all; - }; -} diff --git a/distribution/rpm/vector.spec b/distribution/rpm/vector.spec index 952c5f55fcba6..0aaee7e7edbe8 100644 --- a/distribution/rpm/vector.spec +++ b/distribution/rpm/vector.spec @@ -31,11 +31,10 @@ Name: %{_name} Summary: A lightweight and ultra-fast tool for building observability pipelines Version: %{_cleaned_version} Release: %{_release} -License: ASL 2.0 +License: MPL-2.0 Group: Applications/System Source: %{_source} URL: %{_url} -AutoReqProv: no %description %{summary} @@ -53,21 +52,25 @@ mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_sysconfdir}/%{_name} mkdir -p %{buildroot}%{_sysconfdir}/default mkdir -p %{buildroot}%{_sharedstatedir}/%{_name} +mkdir -p %{buildroot}%{_datadir}/%{_name} mkdir -p %{buildroot}%{_unitdir} cp -a %{_builddir}/bin/vector %{buildroot}%{_bindir} -cp -a %{_builddir}/config/vector.toml %{buildroot}%{_sysconfdir}/%{_name}/vector.toml +cp -a %{_builddir}/config/vector.yaml %{buildroot}%{_sysconfdir}/%{_name}/vector.yaml cp -a %{_builddir}/config/examples/. %{buildroot}%{_sysconfdir}/%{_name}/examples cp -a %{_builddir}/systemd/vector.service %{buildroot}%{_unitdir}/vector.service cp -a %{_builddir}/systemd/vector.default %{buildroot}%{_sysconfdir}/default/vector +cp -a %{_builddir}/licenses/. %{buildroot}%{_datadir}/%{_name}/licenses +cp -a %{_builddir}/NOTICE %{buildroot}%{_datadir}/%{_name}/NOTICE +cp -a %{_builddir}/LICENSE-3rdparty.csv %{buildroot}%{_datadir}/%{_name}/LICENSE-3rdparty.csv %post -getent group %{_username} > /dev/null || groupadd -r %{_username} getent passwd %{_username} > /dev/null || \ - useradd -r -d %{_sharedstatedir}/%{_name} -g %{_username} -s /sbin/nologin \ - -c "Vector observability data router" %{_username} + useradd --shell /sbin/nologin --system --home-dir %{_sharedstatedir}/%{_name} --user-group \ + --comment "Vector observability data router" %{_username} chown %{_username} %{_sharedstatedir}/%{_name} usermod -aG systemd-journal %{_username} || true +usermod -aG systemd-journal-remote %{_username} || true %clean rm -rf %{buildroot} @@ -76,13 +79,16 @@ rm -rf %{buildroot} %defattr(-,root,root,-) %{_bindir}/* %{_unitdir}/vector.service -%config(noreplace) %{_sysconfdir}/%{_name}/vector.toml +%config(noreplace) %{_sysconfdir}/%{_name}/vector.yaml %config(noreplace) %{_sysconfdir}/default/vector %config %{_sysconfdir}/%{_name}/examples/* %dir %{_sharedstatedir}/%{_name} %doc README.md +%doc %{_datadir}/%{_name}/NOTICE +%doc %{_datadir}/%{_name}/licenses/* +%doc %{_datadir}/%{_name}/LICENSE-3rdparty.csv %license LICENSE %changelog -* Fri Jun 21 2019 Vector Devs - 0.3.0 +* Fri Jun 21 2019 Vector Devs - 0.3.0 - Release v0.3.0 diff --git a/distribution/systemd/hardened-vector.service b/distribution/systemd/hardened-vector.service new file mode 100644 index 0000000000000..c98ff1f2a7dca --- /dev/null +++ b/distribution/systemd/hardened-vector.service @@ -0,0 +1,56 @@ +# Experimental service configuration for a hardened Vector +# +# This has not been widely tested on all OSes and with all Vector +# configurations, but can be used as a basis for limiting the Vector service +# capabilities + +[Unit] +Description=Vector +Documentation=https://vector.dev +After=network-online.target +Requires=network-online.target + +[Service] +EnvironmentFile=-/etc/default/vector +User=vector +Group=vector +ExecStartPre=/usr/bin/vector validate +ExecStart=/usr/bin/vector +ExecReload=/usr/bin/vector validate +ExecReload=/bin/kill -HUP $MAINPID +Restart=no + +# capabilities +AmbientCapabilities=CAP_NET_BIND_SERVICE +CapabilityBoundingSet=CAP_NET_BIND_SERVICE + +# sandboxing +ProtectHostname=yes +ProtectClock=yes +ProtectKernelTunables=yes +ProtectKernelModules=yes +ProtectKernelLogs=yes +ProtectSystem=strict +ProtectHome=yes +StateDirectory=vector +ProtectControlGroups=yes +PrivateTmp=yes +PrivateDevices=yes +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 +LockPersonality=yes +MemoryDenyWriteExecute=yes +RestrictRealtime=yes +RestrictSUIDSGID=yes +NoNewPrivileges=yes +RemoveIPC=yes +RestrictNamespaces=yes + +# syscall filtering +SystemCallFilter=@system-service @debug +SystemCallArchitectures=native + +# process properties +UMask=077 + +[Install] +WantedBy=multi-user.target diff --git a/distribution/systemd/vector.service b/distribution/systemd/vector.service index fab2f5cb19185..b78ff3131e3cf 100644 --- a/distribution/systemd/vector.service +++ b/distribution/systemd/vector.service @@ -7,11 +7,16 @@ Requires=network-online.target [Service] User=vector Group=vector +ExecStartPre=/usr/bin/vector validate ExecStart=/usr/bin/vector +ExecReload=/usr/bin/vector validate --no-environment ExecReload=/bin/kill -HUP $MAINPID -Restart=no +Restart=always AmbientCapabilities=CAP_NET_BIND_SERVICE EnvironmentFile=-/etc/default/vector - +# Since systemd 229, should be in [Unit] but in order to support systemd <229, +# it is also supported to have it here. +StartLimitInterval=10 +StartLimitBurst=5 [Install] WantedBy=multi-user.target diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000000000..0591dc38ab21d --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,204 @@ +# Architecture + +This document describes the high-level architecture of Vector. It assumes some +familiarity with the user-facing concepts and focuses instead on how they're +wired together internally. The goal is to provide a starting point for +navigating the code and to assist in understanding Vector's behavior and +constraints. + +## Overview + +From a user's perspective, Vector runs a configuration consisting of a directed, +acyclic graph of sources, transforms, and sinks. In many ways, this logical +representation of the config maps rather directly to the way that it is laid out +and run internally. + +![logical](https://user-images.githubusercontent.com/333505/152071180-daa5ea73-d588-4471-b34f-79ffb5e6c295.png) + +A reasonably accurate mental model of running the above configuration is that +Vector spins up each component as a Tokio task and wires them together with +channels. Below, we'll go through each type of component in more detail, +discussing how it is translated into a running task and connected to the rest of +the topology. + +## Component construction + +After parsing and validating a user's configuration, we are left with a `Config` +struct containing (among other things) the collections of `SourceConfig`s, +`TransformConfig`s, and `SinkConfig`s corresponding to each of the configured +components. Each of those traits has their own `build` method that constructs +the component. This building occurs largely in the `src/topology/builder.rs` +file, along with some setup for the initial wiring into the topology. + +### Sources + +When a source config is built, the result is mainly two tasks: the "server" task +of the source itself, and a "pump" task that forwards its output on to the rest +of the system. + +Construction begins by setting up a `SourceSender` for the configured source, +which handles the ability to send events to each of the outputs defined by the +`SourceConfig::outputs` method. The outputs are built into the sender in such +a way that attempting to send to an unknown output will result in a panic. + +Along with each of these outputs that are added to the sender, a corresponding +`Fanout` instance is created which will live in a pump task and handling +"fanning out" events to every downstream component that lists this source as an +input. Each of these individual pump tasks (one per output) consists purely of +forwarding events into the `Fanout`. The final pump task (one per source) simply +spawns each of the output-specific pump tasks and drives them to completion. + +Finally, the server task itself is built. `SourceConfig::build` takes +a `SourceContext` as an argument, one field of which is the `SourceSender` built +above. The result of the build function is wrapped in some simple shutdown +handling before being inserted into the topology. + +![image](https://user-images.githubusercontent.com/333505/156249003-ba6e31de-d296-42da-a9b6-2451e607df80.png) + +### Transforms + +After sources, transforms are the next to be built. They're a bit simpler than +sources and mostly jump straight into `TransformConfig::build`. They can define +`outputs` that are translated into `Fanout` instances in much the same way as +sources, and also have an option to `enable_concurrency`. How that works exactly +depends on the type of transform. + +#### Synchronous + +The simplest type of transform is a `Function` transform. They run synchronously +on a single event and write to a single, unnamed output. One step above function +transforms is the newer `Synchronous` transform. These are inclusive of function +transforms, with the additional ability of being able to write to multiple +outputs if desired. From the perspective of the topology, both of these are run +in exactly the same way. + +In the simplest case, where the `enable_concurrency` flag is not enabled (this +is not configuration, but a static attribute of the of transform), the resulting +transform task is built to pull a chunk of events from its input channel, +process those events via the `transform` method into a `TransformOutputsBuf` +(essentially a container of `Vec` for each of the transform's defined +outputs). Once the whole chunk of events has been processed into outputs, those +outputs are drained into the respective `Fanout` instances. + +If the `enable_concurrency` flag is enabled, the process is slightly more +complicated. For each chunk of input events, instead of being processed inline, +a new task is spawned that does the work of processing the events into outputs. +Since there is some overhead to spawning tasks, Vector attempts to pull larger +chunks of events from the input for transforms running in this mode. The main +transform tasks then tracks the completion of those work tasks in the same order +that they were spawned (ensuring that we don't reorder the resulting outputs). +When a task completes, the main task receives the resulting +`TransformOutputsBuf` and takes care of draining it into the respective fanouts. +To ensure that we don't buffer an infinite amount of events within those work +tasks, the main task limits the maximum number that can be in flight +simultaneously. Spawning new tasks allows Tokio's work-stealing scheduler to +step in and spread the CPU work across multiple threads when there is a need and +available capacity to do so. + +![image](https://user-images.githubusercontent.com/333505/156249361-9a91f61a-445a-403c-92eb-609f2249b3a9.png) + +#### Task + +A task-style transform differs from the synchronous variants above in that it +has the ability to do arbitrary, asynchronous stream-based transformations of +its input. This includes things like emitting outputs after some timeout, +independent of incoming events. From the topology's perspective, they're quite +simple because they define most of their structure internally and are applied by +basically just passing the input channel into the `transform` method. + +To build the full task, the transform itself is built, some common filtering and +telemetry are added by wrapping the input stream, and then the input stream is +passed to the `transform` method. This results in an output stream, which is +then forwarded to the transform's `Fanout` instance (task transforms do not +support multiple outputs). + +![image](https://user-images.githubusercontent.com/333505/156249430-5f82a1e0-8caa-49fe-88b8-290b6ed06ad7.png) + +### Sinks + +Sinks have two components that make building them somewhat more complex than +either sources or transforms: healthchecks and buffers. + +Healthchecks are one-off tasks that run at startup with the goal of discovering +any issues that may prevent the sink from running properly (e.g. permissions +or connectivity issues) and notifying the user in a nice way. They can be +enabled or disabled both individually and at a global level, and the user can +choose whether a failing healthcheck should prevent Vector from starting. + +Buffers are a configurable mechanism for dealing with backpressure. By default, +like the rest of Vector, sinks will buffer some small-ish number of events in +memory before propagating backpressure upstream. Buffer configuration allows +individual sinks to change that behavior, choosing between memory and disk for +where to store the buffered events, setting a maximum size, and deciding what +should happen when the buffer is full (backpressure or load shedding). + +Disk buffers in particular add some complexity in topology construction due to +the fact that they're persistent across both config reloads and process +restarts. They are built normally with their corresponding sink most of the +time, but they are also stashed to the side for the case when topology +construction fails after a buffer has been built. This allows a subsequent build +(likely of the previous configuration during a rollback) to pull from the +already-built buffer without worrying about the persistence of the contents. + +Once the healthcheck and buffer are built, the sink itself is constructed via +`SinkConfig::build`. The surrounding task is defined to first finalize its use +of the buffer (removing it from the in-case-of-error stash), filter and wrap the +input stream with telemetry, and then pass it to `VectorSink::run`. + +![image](https://user-images.githubusercontent.com/333505/156249509-fd1b1ae6-7193-4fda-a33e-bbd128d63c87.png) + +## Connecting components + +Once component construction is complete, we're left with a collection of +yet-to-be-spawned tasks, as well as handles to their inputs and outputs. More +specifically, a component input is the sender side of a channel (or buffer) that +acts as the component's input stream. A component output in this case is +a `fanout::ControlChannel`, via which Vector can send control messages that add +or remove destinations for the component's actual output stream. + +Given those definitions, the fundamental process of wiring up a Vector topology +is one of adding the appropriate inputs to the appropriate outputs. As a simple +example, consider the following config: + +```toml +[sources.foo] +type = "stdin" + +[sinks.bar] +type = "console" +inputs = ["foo"] +encoding.codec = "json" +``` + +After the component construction phase, we'll be left with the tasks for each +component (which we'll ignore for now) as well as a collection of inputs and +outputs. In this case, each of those collections will hold one single item. +There will be an output corresponding to the source `foo`, consisting of +a control channel connected to the `Fanout` instance within the source's pump +task, and there will be an input corresponding to the sink `bar`, consisting of +the sender side of the sink's input channel/buffer (for our purposes here +they're equivalent). + +To wire up this topology, the `connect_diff` function on `RunningTopology` will +see that `bar` specifies `foo` as an input, take a clone of `bar`'s input, and +send that to `foo`'s output control channel. This results in the `Fanout` +associated with the source `foo` adding a new sender to its list of destinations +to write new events to. And voilà, the sink will receive events from the source +on its input stream. + +The actual code for this logic (found in `src/topology/running.rs`) is +significantly more complex than what's needed for this very simple example, +mostly because it is oriented around applying modifications to an existing +running topology rather than simply starting a new one up from scratch. While +complex, this allows us to have a single path through which all topology actions +occur. Without it, we'd need all the same complexity to support reloads, but it +would be a secondary path that's less well exercised than the common startup +path. Even so, this is an area where we're always looking for ways that we can +simplify and make things more robust. + +## Spawning the topology + +Once everything is properly connected, the final step is the spawn the actual +tasks for each component. There is a bit of bookkeeping to build tracing spans +for each, set up error handlers, and track shutdown, but the handles to the +running tasks are stored and Vector is off to the races. diff --git a/docs/DEPRECATION.md b/docs/DEPRECATION.md new file mode 100644 index 0000000000000..3b4a5d8c576c5 --- /dev/null +++ b/docs/DEPRECATION.md @@ -0,0 +1,93 @@ +# Deprecations in Vector + +This document covers Vector's deprecation policy and process. + +In the course of Vector's development it can be necessary to deprecate configuration and (rarely) features to keep +Vector maintainable and its configuration interface consistent for users. To avoid breaking compatibility abruptly, we +follow the following deprecation policy. + +## Policy + +Vector will retain deprecated configuration or features for at least one minor version (this will transition to one +major version when Vector hits 1.0). + +This means that deprecations will be eligible for removal in the next minor release after they are announced; however, +we will typically aim to support deprecations for a longer time period depending on their development maintenance +burden. For example, a deprecation announced in `v0.16.0` would be eligible to be removed in `v0.17.0` but may be +removed later in `v0.20.0`. + +Exceptions can be made for deprecations related to security issues or critical bugs. These may result in removals being +introduced in a release without being announced in a prior release. + +### Examples + +Examples of possible deprecations in Vector: + +- Removal or rename of a configuration option +- Removal or rename of a metric +- Removal or rename of a component +- Removal of a feature + +## Lifecycle of a deprecation + +A deprecation goes through three stages: Deprecation, Migration, and Removal. These are described below. + +### Deprecation + +A configuration option or feature in Vector is marked as deprecated. + +When this happens, we will notify by: + +- Listing the deprecation in the Deprecations section of the upgrade guide for the release the deprecation was + introduced in. This will include instructions on how to transition if applicable. +- Adding a deprecation note to the [documentation site][configuration] alongside the configuration or feature being + deprecated. +- When possible, output a log at the `WARN` level if Vector detects deprecated configuration or features being used + on start-up, during `vector validate`, or at runtime. This log message will lead with the text `DEPRECATED` to + make it easy to filter for. + +### Migration + +Users will have 1 or more minor releases to migrate away from using the deprecation using the instructions provided in +the deprecation notice. + +### Removal + +A deprecated configuration option or feature in Vector is removed. + +When this happens, we will notify by: + +- Listing the removal in the Breaking Changes section of upgrade guide for that release. This will include directions on + how to transition if applicable. + +When possible, Vector will error at start-up when a removed configuration option or feature is used. + +[configuration]: https://vector.dev/docs/reference/configuration/ + +## Process + +When introducing a deprecation into Vector, the pull request introducing the deprecation should: + +- Add a note to the Deprecations section of the upgrade guide for the next release with a description and + directions for transitioning if applicable. +- Copy the same note from the previous step, to a changelog fragment, with type="deprecation". See the changelog + fragment [README.md](../changelog.d/README.md) for details. +- Add a deprecation note to the docs. Typically, this means adding `deprecation: "description of the deprecation"` + to the `cue` data for the option or feature. If the `cue` schema does not support `deprecation` for whatever you + are deprecating yet, add it to the schema and open an issue to have it rendered on the website. +- For a component that is being renamed, the documentation page for the old name of the component is removed and a + new page is added for the new name. An alias is added so the old name will redirect to the new name. The title of + the new name will be appended with the text `(formerly OldName)`. +- Add a log message to Vector that is logged at the `WARN` level starting with the word `DEPRECATION` if Vector detects + the deprecated configuration or feature being used (when possible). +- Add the deprecation to [DEPRECATIONS.md](DEPRECATIONS.md) to track migration (if applicable) and removal + +When removing a deprecation in a subsequent release, the pull request should: + +- Indicate that it is a breaking change by including `!` in the title after the type/scope +- Remove the deprecation from the documentation +- Add a note to the Breaking Changes section of the upgrade guide for the next release with a description and directions + for transitioning if applicable. +- Copy the same note from the previous step, to a changelog fragment, with type="breaking". See the changelog + fragment [README.md](../changelog.d/README.md) for details. +- Remove the deprecation from [DEPRECATIONS.md](DEPRECATIONS.md) diff --git a/docs/DEPRECATIONS.md b/docs/DEPRECATIONS.md new file mode 100644 index 0000000000000..3a5109eda2de8 --- /dev/null +++ b/docs/DEPRECATIONS.md @@ -0,0 +1,19 @@ +See [DEPRECATION.md](/docs/DEPRECATION.md#process) for the process for updating this file. + +The format for each entry should be: ` `. + +- `` should be the version of Vector in which to take the action (deprecate, migrate, or + remove) +- `` should be a unique identifier that can also be used in the code to easily find the + places to modify +- `` should be a longer form description of the change to be made + +For example: + +- v0.34.0 legacy_openssl_provider OpenSSL legacy provider flag should be removed + +## To be deprecated + +## To be migrated + +## To be removed diff --git a/docs/DEVELOPING.md b/docs/DEVELOPING.md new file mode 100644 index 0000000000000..7b9116a2a806b --- /dev/null +++ b/docs/DEVELOPING.md @@ -0,0 +1,690 @@ +# Developing + +- [Setup](#setup) + - [Using a Docker or Podman environment](#using-a-docker-or-podman-environment) + - [Bring your own toolbox](#bring-your-own-toolbox) +- [The basics](#the-basics) + - [Directory structure](#directory-structure) + - [Makefile](#makefile) + - [Code style](#code-style) + - [Logging style](#logging-style) + - [Panics](#panics) + - [Feature flags](#feature-flags) + - [Dependencies](#dependencies) + - [Minimum Supported Rust Version](#minimum-supported-rust-version) +- [Guidelines](#guidelines) + - [Sink healthchecks](#sink-healthchecks) +- [Testing](#testing) + - [Unit tests](#unit-tests) + - [Integration tests](#integration-tests) + - [Blackbox tests](#blackbox-tests) + - [Property tests](#property-tests) + - [Tips and tricks](#tips-and-tricks) + - [Faster builds With `sccache`](#faster-builds-with-sccache) + - [Testing specific components](#testing-specific-components) + - [Generating sample logs](#generating-sample-logs) +- [Benchmarking](#benchmarking) +- [Profiling](#profiling) +- [Domains](#domains) + - [Kubernetes](#kubernetes) + - [Architecture](#architecture) + - [The operation logic](#the-operation-logic) + - [Where to find things](#where-to-find-things) + - [Development](#development) + - [Requirements](#requirements) + - [Automatic](#automatic) + - [Testing](#testing-1) + - [Integration tests](#integration-tests-1) + - [Requirements](#requirements-1) + - [Tutorial](#tutorial) + +## Setup + +We're super excited to have you interested in working on Vector! Before you start you should pick how you want to develop. + +For small or first-time contributions, we recommend the Docker method. Prefer to do it yourself? That's fine too! + +### Using a Docker or Podman environment + +> **Targets:** You can use this method to produce AARCH64, Arm6/7, as well as x86/64 Linux builds. + +Since not everyone has a full working native environment, we took our environment and stuffed it into a Docker (or Podman) container! + +This is ideal for users who want it to "Just work" and just want to start contributing. It's also what we use for our CI, so you know if it breaks we can't do anything else until we fix it. 😉 + +**Before you go further, install Docker or Podman through your official package manager, or from the [Docker](https://docs.docker.com/get-docker/) or [Podman](https://podman.io/) sites.** + +```bash +# Optional: Only if you use `podman` +export CONTAINER_TOOL="podman" +``` + +If your Linux environment runs SELinux in Enforcing mode, you will need to relabel the vector source code checkout with `container_home_t` context. Otherwise, the container environment cannot read/write the code: + +```bash +cd your/checkout/of/vector/ +sudo semanage fcontext -a "${PWD}(/.*)?" -t container_file_t +sudo restorecon . -R +``` + +By default, `make environment` style tasks will do a `docker pull` from GitHub's container repository, you can **optionally** build your own environment while you make your morning coffee ☕: + +```bash +# Optional: Only if you want to go make a coffee +make environment-prepare +``` + +Now that you have your coffee, you can enter the shell! + +```bash +# Enter a shell with optimized mounts for interactive processes. +# Inside here, you can use Vector like you have full toolchain (See below!) +make environment +# Try out a specific container tool. (Docker/Podman) +make environment CONTAINER_TOOL="podman" +# Add extra cli opts +make environment CLI_OPTS="--publish 3000:2000" +``` + +Now you can use the jobs detailed in **"Bring your own toolbox"** below. + +Want to run from outside of the environment? _Clever. Good thinking._ You can run any of the following: + +```bash +# Validate your code can compile +make check ENVIRONMENT=true +# Validate your code actually does compile (in dev mode) +make build-dev ENVIRONMENT=true +# Validate your test pass +make test SCOPE="sources::example" ENVIRONMENT=true +# Validate tests (that do not require other services) pass +make test ENVIRONMENT=true +# Validate your tests pass (starting required services in Docker) +make test-integration SCOPE="sources::example" ENVIRONMENT=true +# Validate your tests pass against a live service. +make test-integration SCOPE="sources::example" AUTOSPAWN=false ENVIRONMENT=true +# Validate all tests pass (starting required services in Docker) +make test-integration ENVIRONMENT=true +# Run your benchmarks +make bench SCOPE="transforms::example" ENVIRONMENT=true +# Format your code before pushing! +make fmt ENVIRONMENT=true +``` + +We use explicit environment opt-in as many contributors choose to keep their Rust toolchain local. + +### Bring your own toolbox + +> **Targets:** This option is required for MSVC/Mac/FreeBSD toolchains. It can be used to build for any environment or OS. + +To build Vector on your own host will require a fairly complete development environment! + +Loosely, you'll need the following: + +- **To build Vector:** Have working Rustup, Protobuf tools, C++/C build tools (LLVM, GCC, or MSVC), Python, and Perl, `make` (the GNU one preferably), `bash`, `cmake`, `GNU coreutils`, and `autotools`. +- **To run `make test`:** Install [`cargo-nextest`](https://nexte.st/) +- **To run integration tests:** Have `docker` available, or a real live version of that service. (Use `AUTOSPAWN=false`) +- **To run `make check-component-features`:** Have `remarshal` installed. +- **To run `make check-licenses` or `cargo vdev build licenses`:** Have `dd-rust-license-tool` [installed](https://github.com/DataDog/rust-license-tool). +- **To run `cargo vdev build component-docs`:** Have `cue` [installed](https://cuelang.org/docs/install/). + +If you find yourself needing to run something inside the Docker environment described above, that's totally fine, they won't collide or hurt each other. In this case, you'd just run `make environment-generate`. + +We're interested in reducing our dependencies if simple options exist. Got an idea? Try it out, we'd love to hear of your successes and failures! + +In order to do your development on Vector, you'll primarily use a few commands, such as `cargo` and `make` tasks you can use ordered from most to least frequently run: + +```bash +# Validate your code can compile +cargo check +make check +# Validate your code actually does compile (in dev mode) +cargo build +make build-dev +# Validate your test pass +cargo test sources::example +make test SCOPE="sources::example" +# Validate tests (that do not require other services) pass +cargo test +make test +# Validate your tests pass (starting required services in Docker) +make test-integration SCOPE="sources::example" +# Validate your tests pass against a live service. +make test-integration SCOPE="sources::example" autospawn=false +cargo test --features docker sources::example +# Validate all tests pass (starting required services in Docker) +make test-integration +# Run your benchmarks +make bench SCOPE="transforms::example" +cargo bench transforms::example +# Format your code before pushing! +make fmt +cargo fmt +# Build component documentation for the website +cargo vdev build component-docs +``` + +If you run `make` you'll see a full list of all our tasks. Some of these will start Docker containers, sign commits, or even make releases. These are not common development commands and your mileage may vary. + +## The basics + +### Directory structure + +- [`/.github`](../.github) - GitHub & CI related configuration. +- [`/benches`](../benches) - Internal benchmarks. +- [`/config`](../config) - Public facing Vector config, included in releases. +- [`/distribution`](../distribution) - Distribution artifacts for various targets. +- [`/docs`](../docs) - Internal documentation for Vector contributors. +- [`/lib`](../lib) - External libraries that do not depend on `vector` but are used within the project. +- [`/proto`](../proto) - Protobuf definitions. +- [`/rfcs`](../rfcs) - Previous Vector proposals, a great place to build context on previous decisions. +- [`/scripts`](../scripts) - Scripts used to generate docs and maintain the repo. +- [`/src`](../src) - Vector source. +- [`/tests`](../tests) - Various high-level test cases. +- [`/website`](../website) - Vector's website and external documentation for Vector users. + +### Makefile + +Vector includes a [`Makefile`](../Makefile) in the root of the repo. This serves +as a high-level interface for common commands. Running `make` will produce +a list of make targets with descriptions. These targets will be referenced +throughout this document. + +### Code style + +We use `rustfmt` on `stable` to format our code and CI will verify that your +code follows +this format style. To run the following command make sure `rustfmt` has been +installed on the stable toolchain locally. + +```bash +# To install rustfmt +rustup component add rustfmt + +# To format the code +make fmt +``` + +#### Logging style + +- Always use the [Tracing crate](https://tracing.rs/tracing/)'s key/value style for log events. +- Events should be capitalized and end with a period, `.`. +- Never use `e` or `err` - always spell out `error` to enrich logs and make it + clear what the output is. +- Prefer Display over Debug, `%error` and not `?error`. + +Nope! + +```rust +warn!("Failed to merge value: {}.", err); +``` + +Yep! + +```rust +warn!(message = "Failed to merge value.", %error); +``` + +#### Panics + +As a general rule, code in Vector should *not* panic. + +However, there are very rare situations where the code makes certain assumptions +about the given state and if those assumptions are not met this is clearly due +to a bug within Vector. In this situation Vector cannot safely proceed. Issuing +a panic here is acceptable. + +All potential panics *MUST* be clearly documented in the function documentation. + +### Feature flags + +When a new component (a source, transform, or sink) is added, it has to be put +behind a feature flag with the corresponding name. This ensures that it is +possible to customize Vector builds. See the `features` section in `Cargo.toml` +for examples. + +In addition, during development of a particular component it is useful to +disable all other components to speed up compilation. For example, it is +possible to build and run tests only for `console` sink using + +```bash +cargo test --lib --no-default-features --features sinks-console sinks::console +``` + +In case if the tests are already built and only the component file changed, it +is around 4 times faster than rebuilding tests with all features. + +### Dependencies + +Dependencies should be _carefully_ selected and avoided if possible. You can +see how dependencies are reviewed in the +[Reviewing guide](/docs/REVIEWING.md#dependencies). + +If a dependency is required only by one or multiple components, but not by +Vector's core, make it optional and add it to the list of dependencies of +the features corresponding to these components in `Cargo.toml`. + +### Minimum Supported Rust Version + +Vector's Minimum Supported Rust Version (MSRV) is indicated by the `rust-version` specified in +`Cargo.toml`. + +Currently, Vector has no policy around MSRV. It can be bumped at any time if required by +a dependency or to take advantage of a new language feature in Vector's codebase. + +## Guidelines + +### Sink healthchecks + +Sinks may implement a health check as a means for validating their configuration +against the environment and external systems. Ideally, this allows the system to +inform users of problems such as insufficient credentials, unreachable +endpoints, nonexistent tables, etc. They're not perfect, however, since it's +impossible to exhaustively check for issues that may happen at runtime. + +When implementing health checks, we prefer false positives to false negatives. +This means we would prefer that a health check pass and the sink then fail than +to have the health check fail when the sink would have been able to run +successfully. + +A common cause of false negatives in health checks is performing an operation +that the sink itself does not need. For example, listing all the available S3 +buckets and checking that the configured bucket is on that list. The S3 sink +doesn't need the ability to list all buckets, and a user that knows that may not +have permitted it to do so. In that case, the health check will fail due +to bad credentials even through its credentials are sufficient for normal +operation. + +This leads to a general strategy of mimicking what the sink itself does. +Unfortunately, the fact that health checks don't have real events available to +them leads to some limitations here. The most obvious example of this is with +sinks where the exact target of a write depends on the value of some field in +the event (e.g. an interpolated Kinesis stream name). It also pops up for sinks +where incoming events are expected to conform to a specific schema. In both +cases, random test data is reasonably likely to trigger a potential +false-negative result. Even in simpler cases, we need to think about the effects +of writing test data and whether the user would find that surprising or +invasive. The answer usually depends on the system we're interfacing with. + +In some cases, like the Kinesis example above, the right thing to do might be +nothing at all. If we require dynamic information to figure out what entity +(i.e. Kinesis stream in this case) that we're even dealing with, odds are very +low that we'll be able to come up with a way to meaningfully validate that it's +in working order. It's perfectly valid to have a health check that falls back to +doing nothing when there is a data dependency like this. + +With all that in mind, here is a simple checklist to go over when writing a new +health check: + +- [ ] Does this check perform different fallible operations from the sink itself? +- [ ] Does this check have side effects the user would consider undesirable (e.g. data pollution)? +- [ ] Are there situations where this check would fail but the sink would operate normally? + +Not all the answers need to be a hard "no", but we should think about the +likelihood that any "yes" would lead to false negatives and balance that against +the usefulness of the check as a whole for finding problems. Because we have the +option to disable individual health checks, there's an escape hatch for users +that fall into a false negative circumstance. Our goal should be to minimize the +likelihood of users needing to pull that lever while still making a good effort +to detect common problems. + +## Testing + +Testing is very important since Vector's primary design principle is reliability. +You can read more about how Vector tests in our +[testing blog post](https://vector.dev/blog/how-we-test-vector/). + +### Unit tests + +Unit tests refer to the majority of inline tests throughout Vector's code. A +defining characteristic of unit tests is that they do not require external +services to run, therefore they should be much quicker. You can run them with: + +```bash +cargo test +``` + +### Integration tests + +Integration tests verify that Vector actually works with the services it +integrates with. Unlike unit tests, integration tests require external services +to run. A few rules when setting up integration tests: + +- [ ] To ensure all contributors can run integration tests, the service must + run in a Docker container. +- [ ] The service must be configured on a unique port that is configured through + an environment variable. +- [ ] Add a `test-integration-` to Vector's [`Makefile`](/Makefile) and + ensure that it starts the service before running the integration test. +- [ ] Add the name of your integration to the include matrix of the `test-integration` job to Vector's + [`.github/workflows/integration-test.yml`](../.github/workflows/integration-test.yml) workflow. + +Once complete, you can run your integration tests with: + +```bash +make test-integration- +``` + +### Blackbox tests + +Vector also offers blackbox testing via +[Vector's test harness](https://github.com/vectordotdev/vector-test-harness). This +is a complex testing suite that tests Vector's performance in real-world +environments. It is typically used for benchmarking, but also correctness +testing. + +You can run these tests within a PR as described in the [CI section](CONTRIBUTING.md). + +### Property tests + +Vector prefers the use of [Proptest](https://github.com/proptest-rs/proptest) for any property tests. + +### Tips and tricks + +#### Faster builds With `sccache` + +Vector is a large project with a plethora of dependencies. Changing to a different branch, or +running `cargo clean`, can sometimes necessitate rebuilding many of those dependencies, which has an +impact on productivity. One way to reduce some of this cycle time is to use `sccache`, which caches +compilation assets to avoid recompiling them over and over. + +`sccache` works by being configured to sit in front of `rustc`, taking compilation requests from +Cargo and checking the cache to see if it already has the cached compilation unit. It handles +making sure that different compiler flags, versions of Rust, etc., are taken into consideration +before using a cached asset. + +In order to use `sccache`, you must first [install](https://github.com/mozilla/sccache#installation) +it. There are pre-built binaries for all major platforms to get you going quickly. The +[usage](https://github.com/mozilla/sccache#usage) documentation also explains how to set up your +environment to actually use it. We recommend using the `$HOME/.cargo/config` approach as this can help +speed up all of your Rust development work, and not just developing on Vector. + +While `sccache` was originally designed to cache compilation assets in cloud storage, maximizing +reusability amongst CI workers, `sccache` actually supports storing assets locally by default. +Local mode works well for local development as it is much easier to delete the cache directory if +you ever encounter issues with the cached assets. It also involves no extra infrastructure or +spending. + +#### Testing specific components + +If you are developing a particular component and want to quickly iterate on unit +tests related only to this component, the following approach can reduce waiting +times: + +1. Install [cargo-watch](https://github.com/passcod/cargo-watch). +2. (Only for GNU/Linux) Install LLVM 9 (for example, package `llvm-9` on Debian) + and set `RUSTFLAGS` environment variable to use `lld` as the linker: + + ```sh + export RUSTFLAGS='-Clinker=clang-9 -Clink-arg=-fuse-ld=lld' + ``` + +3. Run in the root directory of Vector's source + + ```sh + cargo watch -s clear -s \ + 'cargo test --lib --no-default-features --features=- ::' + ``` + + For example, if the component is `reduce` transform, the command above + turns into + + ```sh + cargo watch -s clear -s \ + 'cargo test --lib --no-default-features --features=transforms-reduce transforms::reduce' + ``` + +#### Generating sample logs + +We use `flog` to build a sample set of log files to test sending logs from a +file. This can be done with the following commands on Mac with `homebrew`. +Installation instruction for flog can be found +[here](https://github.com/mingrammer/flog#installation). + +```bash +flog --bytes $((100 * 1024 * 1024)) > sample.log +``` + +This will create a `100MiB` sample log file in the `sample.log` file. + +## Benchmarking + +All benchmarks are placed in the [`/benches`](/benches) folder. You can +run benchmarks via the `make bench` command. In addition, Vector +maintains a full [test harness](https://github.com/vectordotdev/vector-test-harness) +for complex end-to-end integration and performance testing. + +## Profiling + +If you're trying to improve Vector's performance (or understand why your change +made it worse), profiling is a useful tool for seeing where time is being spent. + +While there are a bunch of useful profiling tools, a simple place to get started +is with Linux's `perf`. Before getting started, you'll likely need to give +yourself access to collect stats: + +```sh +echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid +``` + +You'll also want to edit `Cargo.toml` and make sure that Vector is being built +with debug symbols in release mode. This ensures that you'll get human-readable +info in the eventual output: + +```toml +[profile.release] +debug = true +``` + +Then you can start up a release build of Vector with whatever config you're +interested in profiling. + +```sh +cargo run --release -- --config my_test_config.toml +``` + +Once it's started, use the `ps` tool (or equivalent) to make a note of its PID. +We'll use this to tell `perf` which process we would like it to collect data +about. + +The next step is somewhat dependent on the config you're testing. For this +example, let's assume you're using a simple TCP-mode socket source listening on +port 9000. Let's also assume that you have a large file of example input in +`access.log` (you can use a tool like `flog` to generate this). + +With all that prepared, we can send our test input to Vector and collect data +while it is under load: + +```sh +perf record -F99 --call-graph dwarf -p $VECTOR_PID socat -dd OPEN:access.log TCP:localhost:9000 +``` + +This instructs `perf` to collect data from our already-running Vector process +for the duration of the `socat` command. The `-F` argument is the frequency at +which `perf` should sample the Vector call stack. Higher frequencies will +collect more data and produce more detailed output, but can produce enormous +amounts of data that take a very long time to process. Using `-F99` works well +when your input data is large enough to take a minute or more to process, but +feel free to adjust both input size and sampling frequency for your setup. + +It's worth noting that this is not the normal way to profile programs with +`perf`. Usually you would simply run something like `perf record my_program` and +not have to worry about PIDs and such. We differ from this because we're only +interested in data about what Vector is doing while under load. Running it +directly under `perf` would collect data for the entire lifetime of the process, +including startup, shutdown, and idle time. By telling `perf` to collect data +only while the load generation command is running we get a more focused dataset +and don't have to worry about timing different commands in quick succession. + +You'll now find a `perf.data` file in your current directory with all the +information that was collected. There are different ways to process this, but +one of the most useful is to create +a [flamegraph](http://www.brendangregg.com/flamegraphs.html). For this we can +use the `inferno` tool (available via `cargo install`): + +```sh +perf script | inferno-collapse-perf > stacks.folded +cat stacks.folded | inferno-flamegraph > flamegraph.svg +``` + +And that's it! You now have a flamegraph SVG file that can be opened and +navigated in your favorite web browser. + +## Domains + +This section contains domain specific development knowledge for various areas +of Vector. You should scan this section for any relevant domains for your +development area. + +### Kubernetes + +#### Architecture + +The Kubernetes integration architecture is largely inspired by +the [RFC 2221](../rfcs/2020-04-04-2221-kubernetes-integration.md), so this +is a concise outline of the effective design, rather than a deep dive into +the concepts. + +##### The operation logic + +With `kubernetes_logs` source, Vector connects to the Kubernetes API doing +a streaming watch request over the `Pod`s executing on the same `Node` that +Vector itself runs at. Once Vector gets the list of all the `Pod`s that are +running on the `Node`, it starts collecting logs for the logs files +corresponding to each of the `Pod`. Only plaintext (as in non-gzipped) files +are taken into consideration. +The log files are then parsed into events, and the said events are annotated +with the metadata from the corresponding `Pod`s, correlated via the file path +of the originating log file. +The events are then passed to the topology. + +##### Where to find things + +We use custom Kubernetes API client and machinery, that lives +at `src/kubernetes`. +The `kubernetes_logs` source lives at `src/sources/kubernetes_logs`. +There is also an end-to-end (E2E) test framework that resides +at `lib/k8s-test-framework`, and the actual end-to-end tests using that +framework are at `lib/k8s-e2e-tests`. + +The Kubernetes-related distribution bit that are at `distribution/docker`, +`distribution/kubernetes` and our Helm chart can be found at [`vectordotdev/helm-charts`](https://github.com/vectordotdev/helm-charts/). + +The development assistance resources are located at `Tiltfile` +and in the `tilt` dir. + +#### Development + +There is a special flow for when you develop portions of Vector that are +designed to work with Kubernetes, like `kubernetes_logs` source or the +`deployment/kubernetes/*.yaml` configs. + +This flow facilitates building Vector and deploying it into a cluster. + +##### Requirements + +There are some extra requirements besides what you'd normally need to work on +Vector: + +- [`tilt`](https://tilt.dev/) +- [`docker`](https://www.docker.com/) +- [`kubectl`](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [`minikube`](https://minikube.sigs.k8s.io/)-powered or other k8s cluster + +##### Automatic + +You can use `tilt` to detect changes, rebuild your image, and update your +Kubernetes resource. Simply start your local Kubernetes cluster and run +`tilt up` from Vector's root dir. + +#### Testing + +##### Integration tests + +The Kubernetes integration tests have a lot of parts that can go wrong. + +To cope with the complexity and ensure we maintain high quality, we use +E2E (end-to-end) tests. + +> E2E tests normally run at CI, so there's typically no need to run them +> manually. + +###### Requirements + +- `kubernetes` cluster (`minikube` has special support, but any cluster should + work) +- `docker` +- `kubectl` +- `bash` +- `cross` - `cargo install cross` +- [`helm`](https://helm.sh/) + +Vector release artifacts are prepared for E2E tests, so the ability to do that +is required too, see Vector [docs](https://vector.dev) for more details. + +Notes: + +> - `minikube` had a bug in the versions `1.12.x` that affected our test +> process - see . +> Use version `1.13.0+` that has this bug fixed. +> - `minikube` has troubles running on ZFS systems. If you're using ZFS, we +> suggest using a cloud cluster or [`minik8s`](https://microk8s.io/) with local +> registry. +> - E2E tests expect to have enough resources to perform a full Vector build, +> usually 8GB of RAM with 2CPUs are sufficient to successfully complete E2E tests +> locally. + +###### Tutorial + +To run the E2E tests, use the following command: + +```shell +CONTAINER_IMAGE_REPO=/vector-test make test-e2e-kubernetes +``` + +Where `CONTAINER_IMAGE_REPO` is the docker image repo name to use, without part +after the `:`. Replace `` with your Docker Hub username. + +You can also pass additional parameters to adjust the behavior of the test: + +- `QUICK_BUILD=true` - use development build and an image from the dev + flow instead of a production docker image. Significantly speeds up the + preparation process, but doesn't guarantee the correctness in the release + build. Useful for development of the tests or Vector code to speed up the + iteration cycles. + +- `USE_MINIKUBE_CACHE=true` - instead of pushing the built docker image to the + registry under the specified name, directly load the image into + a `minikube`-controlled cluster node. + Requires you to test against a `minikube` cluster. Eliminates the need to have + a registry to run tests. + When `USE_MINIKUBE_CACHE=true` is set, we provide a default value for the + `CONTAINER_IMAGE_REPO` so it can be omitted. + Can be set to `auto` (default) to automatically detect whether to use + `minikube cache` or not, based on the current `kubectl` context. To opt-out, + set `USE_MINIKUBE_CACHE=false`. + +- `CONTAINER_IMAGE=/vector-test:tag` - completely skip the step + of building the Vector docker image, and use the specified image instead. + Useful to speed up the iterations speed when you already have a Vector docker + image you want to test against. + +- `SKIP_CONTAINER_IMAGE_PUBLISHING=true` - completely skip the image publishing + step. Useful when you want to speed up the iteration speed and when you know + the Vector image you want to test is already available to the cluster you're + testing against. + +- `SCOPE` - pass a filter to the `cargo test` command to filter out the tests, + effectively equivalent to `cargo test -- $SCOPE`. + +Passing additional commands is done like so: + +```shell +QUICK_BUILD=true USE_MINIKUBE_CACHE=true make test-e2e-kubernetes +``` + +or + +```shell +QUICK_BUILD=true CONTAINER_IMAGE_REPO=/vector-test make test-e2e-kubernetes +``` diff --git a/docs/DOCUMENTING.md b/docs/DOCUMENTING.md new file mode 100644 index 0000000000000..6755b9d65cabf --- /dev/null +++ b/docs/DOCUMENTING.md @@ -0,0 +1,142 @@ +# Documenting + +Documentation is very important to the Vector project! This document covers the +process of documenting Vector from a contributor's perspective. _All_ Vector +contributors are [responsible](#responsibilities) for maintaining Vector's +documentation in tandem with code changes. + + + +1. [Responsibilities](#responsibilities) +2. [Reference documentation](#reference-documentation) + 1. [Installing CUE](#installing-cue) + 2. [Generating from source code](#generating-from-source-code) + 3. [Formatting](#formatting) + 4. [Validating](#validating) + 1. [Tips & tricks](#tips--tricks) + 1. [Make small incremental changes](#make-small-incremental-changes) + 5. [Changelog](#changelog) + 6. [Release highlights](#release-highlights) + 1. [FAQ](#faq) + 1. [What makes a release highlight noteworthy?](#what-makes-a-release-highlight-noteworthy) + 2. [How is a release highlight different from a blog post?](#how-is-a-release-highlight-different-from-a-blog-post) + + + +## Responsibilities + +As a Vector contributor you _are_ responsible for coupling the following user +experience related changes with your code: + +- Reference docs changes located in the [`/website/cue` folder](../website/cue) (generally configuration changes) +- Existing guide changes located in the [`/website/content` folder](../website/content) +- If relevant, [highlighting](../website/content/en/highlights) your change for future release notes + +By default, you are _not_ responsible for: + +- Writing new guides related to your change (unless assigned) +- Writing a blog post on your change (unless assigned) + +## Reference documentation + +Vector's [reference documentation](https://vector.dev/docs/reference) serves as +a referential index for all things Vector. For example, it contains a +[comprehensive list of options](https://vector.dev/docs/reference/configuration/) +available in Vector's configuration. It's very data-centric and, as a result, +is driven by structured data defined in the [`/website/cue`](../website/cue) +directory. [CUE](https://cuelang.org) is a declarative configuration language +suitable for complex data definitions. + +### Installing CUE + +Cue can be [installed](https://cuelang.org/docs/install/) from package managers, +however it may be necessary to install it from source in order to use the correct +version that Vector depends on. Currently Vector is using `v0.7.0`. Using a CUE +version different than this may result in CUE check/build errors. We are aiming +to improve the developer experience around external tool dependencies ([#15909](https://github.com/vectordotdev/vector/issues/15909)). + +### Generating from source code + +Much of Vector's reference documentation is automatically compiled from source code (e.g., doc comments). +To regenerate this content, run: + +```bash +make generate-component-docs +``` + +### Formatting + +Vector has some CUE-related CI checks that are run whenever changes are made to +the `docs` directory. This includes checks to make sure that the CUE sources are +properly formatted. To run CUE's autoformatting, first [install cue](https://cuelang.org/docs/install/), +then run this command from the `vector` root: + +```bash +./website/scripts/cue.sh fmt +``` + +If that rewrites any files, make sure to commit your changes or else you'll see +CI failures. + +### Validating + +In addition to proper formatting, the CUE sources need to be _valid_, that is, +the provided data needs to conform to various CUE schemas. To check the validity +of the CUE sources: + +```bash +cd .. # Change to the repo root directory +CI=true make check-docs +``` + +> When the CI flag is on, then the checker will also run a CUE format validation step. +> Also, note that when this flag on, CUE files might be modified. See `scripts/check-docs.sh` for details. + +#### Tips & tricks + +##### Make small incremental changes + +A good practice for writing CUE is to make small, incremental changes and to +frequently check to ensure that those changes are valid. If you introduce larger +changes that introduce multiple errors, you may have difficulty interpreting +CUE's verbose (and not always super helpful) log output. In fact, we recommend +using a tool like [watchexec](https://github.com/watchexec/watchexec) to validate the sources every time you save a +change: + +```bash +# From the root +watchexec "make check-docs" +``` + +### Changelog + +Contributors do not need to maintain a changelog. This is automatically generated +via the `make release` command, made possible by the use of +[conventional commit](https://www.conventionalcommits.org/en/v1.0.0/) titles. + +### Release highlights + +Because Vector releases often contain many different changes, we use highlights +to surface high-value, meaningful changes. Highlights are markdown files located +in the [`docs/content/en/highlights` folder](../website/content/en/highlights) that +thoughtfully describe a feature. Each highlight is prominently displayed in the +relevant [release notes](https://vector.dev/releases/). + +#### FAQ + +##### What makes a release highlight noteworthy? + +It should offer meaningful value to users. This is inherently subjective, and +it is impossible to define exact rules for this distinction. But we should be +cautious not to dilute the meaning of a highlight by producing low values +highlights. Typically, a release contains no more than 6 highlights. + +##### How is a release highlight different from a blog post? + +Highlights are not blog posts. They are short one, maybe two, paragraph +announcements. Highlights should allude to, or link to, a blog post if +relevant. + +For example, [this adaptive concurrency announcement](https://vector.dev/highlights/2020-09-18-adaptive-concurrency) +is noteworthy, but also deserves an in-depth blog post covering the work that +resulted in the performance and reliability benefit. diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000000..cb3ed925a1158 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,34 @@ +# Vector Internal Documentation + +**_This folder contains internal documentation for Vector contributors. If +you're a Vector user, please visit , which is powered by +the [website](../website) directory._** + +## Getting started + +Whether you're a Vector team member, or an outside contributor, this is the best +place to start. This folder contains internal documentation to help with the +development of Vector and ensuring your change gets approved in a timely manner. + +1. **[CONTRIBUTING.md](../CONTRIBUTING.md)** - Start here, contributor basics and workflow +2. **[DEVELOPING.md](DEVELOPING.md)** - Everything necessary to develop +3. **[DOCUMENTING.md](DOCUMENTING.md)** - Preparing your change for Vector users + +## Vector team members + +Vector team members have additional responsibilities beyond outside +contributors: + +- **[REVIEWING.md](REVIEWING.md)** - Code review expectations and guidelines. +- **[USER_EXPERIENCE_DESIGN.md](USER_EXPERIENCE_DESIGN.md)** - User experience + principles and guidelines. + +## Project policies + +Vector's policies are located in the root directory: + +- **[CODE_OF_CONDUCT.md](../CODE_OF_CONDUCT.md)** +- **[PRIVACY.md](../PRIVACY.md)** +- **[RELEASES.md](../RELEASES.md)** +- **[SECURITY.md](../SECURITY.md)** +- **[VERSIONING.md](../VERSIONING.md)** diff --git a/docs/REVIEWING.md b/docs/REVIEWING.md new file mode 100644 index 0000000000000..9075b74556a89 --- /dev/null +++ b/docs/REVIEWING.md @@ -0,0 +1,178 @@ +# Reviewing + +- [Checklist](#checklist) +- [Expectations](#expectations) +- [Backward Compatibility](#backward-compatibility) +- [Code Of Conduct](#code-of-conduct) +- [Dependencies](#dependencies) +- [Documentation](#documentation) +- [Performance Testing](#performance-testing) +- [Single Concern](#single-concern) +- [Readability](#readability) +- [Safe Code](#safe-code) +- [Security](#security) +- [Testing](#testing) + +## Checklist + +Pull request reviews are required before merging code into Vector. This document +will outline Vector's pull request review requirements. The following checklist +should be used for all pull requests: + +- [ ] Is the code addressing a single purpose? If not, the pull request should be broken up. (see [Single Concern](#single-concern)) +- [ ] Is the code readable and maintainable? If not, suggest ways to improve this. (see [Readability](#readability)) +- [ ] Is the code reasonably tested? If not, tests should be improved. (see [Testing](#testing)) +- [ ] Is code marked as unsafe? If so, verify that this is necessary. (see [Safe Code](#safe-code)) +- [ ] Is backward compatibility broken? If so, can it be avoided or deprecated? (see [Backward compatibility](#backward-compatibility)) +- [ ] Have dependencies changed? (see [Dependencies](#dependencies)) +- [ ] Has the code been explicitly reviewed for security issues? Dependencies included. (see [Security](#security)) +- [ ] Is there a risk of performance regressions? If so, have run the [Vector test harness](https://github.com/vectordotdev/vector-test-harness)? (see [Performance Testing](#performance-testing)) +- [ ] Should documentation be adjusted to reflect any of these changes? (see [Documentation](#documentation)) + +For component changes, especially pull requests introducing new components, the +following items should also be checked: + +- [ ] Does it comply with the [configuration spec](specs/configuration.md)? +- [ ] Does it comply with [component spec](specs/component.md)? +- [ ] Does it comply with the [instrumentation spec](specs/instrumentation.md)? + +### Checklist - new source + +This checklist is specific for Vector's sources. + +- [ ] Does the source handle metrics? If it does, the Datadog Origin Metadata function (`sinks::datadog::metrics::encoder::source_type_to_service`), + which maps the source to the correct Service value, needs to be updated. If this source is an Agent role and thus is the true origin of it's + metrics, this will need to be a follow-up PR by a member of the Vector team. + +### Checklist - new sink + +This checklist is specific for Vector's sinks. + +#### Logic + +- [ ] Does it work? Do you understand what it is supposed to be doing? +- [ ] Does the retry logic make sense? +- [ ] Are the tests testing that the sink is emitting the correct metrics? +- [ ] Are there integration tests? + +#### Code structure + +- [ ] Is it using the sink prelude (`use crate::sinks::prelude::*`)? +- [ ] Is the sink a stream based sink? + Check that the return value from `SinkConfig::build` is the return from `VectorSink::from_event_streamsink`. +- [ ] Is it gated by sensible feature flags? +- [ ] Is the code modularized into `mod.rs`, `config.rs`, `sink.rs`, `request_builder.rs`, `service.rs` +- [ ] Does the code follow our [style guidelines]. + +#### Documentation + +- [ ] Generate a local website: `cd website & make serve`. Does it look good? +- [ ] Is there a `cue` file linking to `base`? +- [ ] Is there a markdown file under `/website/content/en/docs/reference/configuration/sinks/`? +- [ ] Are module comments included in `mod.rs` linking to any relevant areas in the external services documentation? + +#### Configuration + +- [ ] Are TLS settings configurable? +- [ ] Are the Request settings configurable? +- [ ] Should it have proxy settings? If so, are they in place? +- [ ] Does it need batch settings? If so, are they used? + + +## Expectations + +We endeavour to review all PRs within 2 working days (Monday to Friday) of submission. + +## Backward Compatibility + +All changes should strive to retain backward compatibility. If a change breaks +backward compatibility, it is much less likely to be approved. It is highly +recommended you discuss this change with a Vector team member before investing +development time. + +Any deprecations should follow our [deprecation policy](DEPRECATION.md). + +## Code Of Conduct + +If you have not, please review Vector's [Code of Conduct](../CODE_OF_CONDUCT.md) +to ensure reviews are welcoming, open, and respectful. + +## Dependencies + +Dependencies should be _carefully_ selected. Before adding a dependency, we +should ask the following questions: + +1. Is the dependency worth the cost? +2. Is the dependency actively and professionally maintained? +3. Is the dependency experimental or in the development phase? +4. How large is the community? +5. Does this dependency have a history of security vulnerabilities? +6. Will this affect the portability of Vector? +7. Does the dependency have a compatible license? + +## Documentation + +Documentation is incredibly important to Vector; it is a feature and +differentiator for Vector. Pull requests should not be merged without adequate +documentation, nor should they be merged with "TODOs" opened for documentation. + +Ideally all modules should have module level documentation. Module level +documentation can be omitted for modules where the purpose is obvious and covered +by a general pattern. With the sinks there is typically a standard number of modules +included (config.rs, request_builder.rs, service.rs, sink.rs, tests.rs), +these modules don't need documentation as they will be covered with higher level +documentation. + +All `pub` and `pub(crate)` functions, structs and macros must have documentation. + +Consider including examples for modules, structs, functions or macros that +will be well used throughout Vector. + +See the [rustdoc](https://doc.rust-lang.org/rustdoc/how-to-write-documentation.html) +book for more details on writing documentation. + +## Performance Testing + +Vector currently offers 2 methods for performance testing: + +1. Internal benchmarks located in the [`/benches` folder](../benches). +2. A full end-to-end [soak test + suite](https://github.com/vectordotdev/vector/tree/master/soaks) for complex + integration and performance testing. + +For new integrations, consider whether a new soak test should be added. + +## Single Concern + +Changes in a pull request should address a single concern. This promotes quality +reviews through focus. If a pull request addresses multiple concerns, it should +be closed and followed up with multiple pull requests addresses each concern +separately. If you are unsure about your change, please open an issue and the +Vector maintainers will help guide you through the scope of the change. + +## Readability + +Code is read more than it is written. Code must be documented and readable. + +## Safe Code + +Unsafe code should be reviewed carefully and avoided if possible. If code is +marked as `unsafe`, a detailed comment should be added explaining why. + +## Security + +Security is incredibly important to Vector. Users rely on Vector ship +mission-critical and sensitive data. Please review the code explicitly for +security issues. See [Vector's Security guide for more info](../SECURITY.md). + +## Testing + +Code should be reasonably tested. Vector does not require 100% test coverage. +We believe this level of coverage is unnecessary. As a general rule of thumb, +we strive for 80% coverage, beyond this returns are diminishing. Please use +your best judgment, some code requires more testing than others depending +on its importance. + +For integrations, consider whether the code could be integration tested. + +[style guidelines]: https://github.com/vectordotdev/vector/blob/master/STYLE.md diff --git a/docs/USER_EXPERIENCE_DESIGN.md b/docs/USER_EXPERIENCE_DESIGN.md new file mode 100644 index 0000000000000..b4b5f1e3ab118 --- /dev/null +++ b/docs/USER_EXPERIENCE_DESIGN.md @@ -0,0 +1,273 @@ +# User Experience Design + +Vector places high value on its user experience; our goal is to make this a +strong differentiator. But this presents a challenge for Vector, which has an +inherent large surface area, requiring a large team. As a result, definitions +of good user experience differ, contributors have varying levels of expertise +in this area, and coordination suffers. To solve this, we must align behind a +set of [principles](#principles), [guidelines](#guidelines), and +[processes](#guidelines) that unify us towards a shared vision of good user +experience -- the purpose of this document. + + + +1. [User Experience Design](#user-experience-design) + 1. [Principles](#principles) + 1. [Don't please everyone](#dont-please-everyone) + 2. [Be opinionated & reduce decisions](#be-opinionated--reduce-decisions) + 3. [Build momentum with consistency](#build-momentum-with-consistency) + 2. [Goals](#goals) + 1. [Performance](#performance) + 2. [Safety](#safety) + 3. [Guidelines](#guidelines) + 1. [Data model](#data-model) + 1. [Log schemas should be fluid](#log-schemas-should-be-fluid) + 2. [Defaults](#defaults) + 1. [Don't lose data](#dont-lose-data) + 3. [Logical boundaries](#logical-boundaries) + 1. [Source & sink boundaries](#source--sink-boundaries) + 2. [Transform boundaries](#transform-boundaries) + 4. [Upfront configuration](#upfront-configuration) + 5. [Sink log encoding](#sink-log-encoding) + 4. [Adherence](#adherence) + 1. [Roles](#roles) + 1. [Contributors](#contributors) + 2. [User experience committee](#user-experience-committee) + 2. [Responsibilities](#responsibilities) + 1. [Contributors](#contributors-1) + 2. [User experience committee](#user-experience-committee-1) + + + +## Principles + +### Don't please everyone + +By nature of Vector's design, a data processing swiss army knife of sorts, +we often get presented with many different creative use cases -- using Vector +for analytics data, obscure IOT pipelines, synchronizing state between systems, +or adding new languages for data processing. It's tempting to entertain these +use cases, especially if a large, valuable user is inquiring about them, but we +should refrain from doing so. Trying to be everything to everyone means we'll +never be great at anything. Disparate use cases often have competing concerns +that, when combined, result in a lukewarm user experience. Vector is an +_observability data pipeline_, and we strive to be the best in this domain. + +Examples: + +- Avoiding analytics specific use cases. +- Leaning into tools like Kafka instead of trying to completely replace them. +- Building a data processing DSL optimized our [design goals](#goals) as opposed + to offering multiple languages for processing (i.e., javascript) + +### Be opinionated & reduce decisions + +As an extension of the previous principle, aligning on specific use cases +allows us to make assumptions about the user and be opinionated with solutions. +This approach reduces the number of decisions a user has to make and follows +[Hicks Law], a hallmark of a good user experience. Therefore, as much as +possible, we should offer opinionated models for use cases core to Vector's +purpose and not leave them as creative exercises for the user. + +Examples: + +- Vector's `pipelines` transform as a solution to team collaboration as opposed + to generic config files. +- Vector's metric data model as a solution for metrics interoperability as + opposed to specifically structured log lines. + +### Build momentum with consistency + +Consistency builds momentum by reducing the cognitive load imposed on a user +as they navigate a product. Users carry patterns from previous areas into new +ones; deviation from these patterns introduces unnecessary friction. Consistency +manifests itself in small details, like naming, and larger details, like product +behavior. For example, it would be surprising to find a `codec` option in one +source and a `decoder` option in another if they are functionally equivalent. +Even more surprising is a deviation in runtime behavior, like back pressure or +error handling, since this often results in data loss. + +Examples: + +- Using the same `codec` option name in both sources and sinks that support it. +- Defaulting to applying back pressure regardless of the component or topology. + +## Goals + +Design goals are explicit factors of user experience that are prioritized in +all decisions. Other aspects of user experience, like complete functionality or +engineering purity, should be sacrificed to optimize these goals. + +### Performance + +The combination of extremely high data volumes and complex processing needs +makes performance a steep challenge for observability data pipelines. Chasing +functionality without considering performance at every turn can quickly result +in a web of irreversible performance problems. Therefore, Vector upholds +performance as its primary design goal to maintain our competitive advantage in +this area. + +Examples: + +- Choosing a fast, yet more difficult, language, like Rust, to build + Vector in. +- Investing into performance-related infrastructure for regression control and + analysis. +- Creating ARC to eliminate a common real-world performance problem. + +### Safety + +Benchmark performance does not always translate to real-world performance, and +to deliver the representative real-world performance, we must make Vector +safe to operate. This enables not only performance but also the reliability +required by a critical infrastructure tool like Vector. Therefore, safety +is Vector's secondary design goal. + +Examples: + +- Creating a type-safe data processing DSL designed for performance. +- Implementing end-to-end type safety for Vector's configuration. + +## Guidelines + +The following guidelines help to uphold the above principles. + +### Data model + +#### Log schemas should be fluid + +Logs should be flexible, fluid data structures that do not impose a rigid schema +for the following reasons: + +1. Unlike other data types, there is no functional requirement of logs that + requires a strict schema. Logs simply describe a point-in-time event. +2. Vector should be able to replace legacy pipelines without introducing + downstream schema changes, something that would likely prevent the adoption + of Vector. +3. Deviation from the user's data mental model introduces unnecessary friction. + Vector should not surprise users by moving their log fields around. +4. Vector does not want to be in the business of maintaining log schemas. An + exercise that has proven precarious with the proliferation of log schema + standards. + +In general, we believe Vector's flexible nature with log schemas is a boon for +Vector's UX. A rigid schema is not required to achieve a best-in-class UX. + +### Defaults + +#### Don't lose data + +When presented with the choice to trade data loss for another benefit, like +performance, Vector should retain data by default. Data loss is unacceptable +for most Vector users and trading it for benefits like performance should be +an opt-in choice by the user. + +Examples: + +- Choose back pressure over shedding load +- Retry failed requests in sinks until the service recovers + +### Logical boundaries + +#### Source & sink boundaries + +Vector sources and sinks should be plentiful and specific. When possible, they +should align with a well-defined protocol. If a well-defined protocol is not +available, or the use case does not allow it, then the source or sink should +align with its upstream client or target service. Additionally, sources and +sinks can overlap. It is preferable to offer specific sources and sinks composed +with broad sources and sinks. This promotes discoverability, aligns with user +intent, and builds confidence that Vector meets their specific use case. +Ideally, Vector would offer hundreds of sources and sinks that specifically +integrate with various systems. Maintainability should be achieved through +composability. + +Examples: + +- A `syslog` source as opposed to a `syslogng` source since it aligns with the + Syslog protocol. +- A `datadog_agent` source as opposed to a `datadog_api` source since it aligns + on intent and reduces scope. +- Again, a `syslog` source _in addition_ to a `socket` source with the `codec` + option set to `syslog` since it is more specific and discoverable. + +#### Transform boundaries + +As opposed to source and sinks, Vector transforms should be broad and minimal. +They should align with a high-level use case, like mapping, aggregation, or +routing. The goal here is to reduce the number of choices a user makes and +be opinionated with solutions. Our opinions should prioritize performance and +reliability over ease of use (within reason), but we should strive to achieve +both. + +Examples: + +- A `remap` transform as opposed to multiple `parse_json`, `parse_syslog`, etc + transforms. +- A `filter` transform as opposed to a `filter_regex`, `filter_datadog_search`, + etc. transforms. + +### Upfront configuration + +Vector should never require manual intervention to remedy normal +processing failures at runtime. Instead, Vector should require any necessary +configuration to handle these failures a priori. + +For example, rather than requiring users to intervene to unblock processing +whenever events fail to be sent to sinks by manually skipping them, instead +Vector should let users define dead-letter queues to send events to when the +primary sink rejects events. + +Users may need to intervene to update invalid configuration, for example in the +case of rotating invalid API keys. + +### Sink log encoding + +When encoding logs for sinks, fields indicated by `log_schema` keys should be mapped to where the +destination expects to find them in the encoded payloads. For example, if the sink requires +a "hostname", it should fetch it from the log event using `LogEvent#host_path` to fetch the value +from the appropriate field and place it in the encoded payload where the "hostname" is expected. + +## Adherence + +### Roles + +To keep things simple, only two roles are involved in the context of Vector's +user experience. + +#### Contributors + +Anyone contributing a change to Vector, both public open-source contributors +and internal Vector team members. + +#### User experience committee + +A select group of Vector team members responsible for Vector's resulting user +experience. + +### Responsibilities + +#### Contributors + +As a Vector contributor you are responsible for coupling the following non-code +changes with your code changes: + +- Reference docs changes located in the [`/website/cue` folder](../website/cue) + (generally configuration changes) +- Existing guide changes located in the [`/website/content` folder](../website/content) +- If relevant, [highlighting] your change for future release notes + +You are _not_ responsible for: + +- Writing new guides related to your change + +#### User experience committee + +As a user experience design committee member, you are responsible for: + +- The resulting user experience. +- Reviewing and approving proposed user experience changes in RFCs. +- Reviewing and approving user-facing changes in pull requests. +- Updating and evolving guides to reflect new Vector changes. + +[hicks law]: https://en.wikipedia.org/wiki/Hick%27s_law diff --git a/docs/assets/images/diagram.svg b/docs/assets/images/diagram.svg deleted file mode 100644 index 867df7592e18d..0000000000000 --- a/docs/assets/images/diagram.svg +++ /dev/null @@ -1,1585 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/guides/integrate.cue b/docs/guides/integrate.cue deleted file mode 100644 index 4581604a05db7..0000000000000 --- a/docs/guides/integrate.cue +++ /dev/null @@ -1,46 +0,0 @@ -package metadata - -#ComponentConfig: { - _args: { - component: _ - } -} - -guides: integrate: { - sources: { - for source_type, source in components.sources { - "\(source_type)": { - config: { - sources: in: { - for config_name, source_config in source.configuration { - "\( config_name )"?: _ | *null - } - } - } - sinks: { - for sink_type, sink in components.sinks { - "\(sink_type)": { - if sink.input.logs == true && source.output.logs != _|_ { - config: { - sources: in: { - type: source_type - } - sinks: out: { - type: sink_type - inputs: ["in"] - } - } - } - } - } - } - } - } - } - - sinks: { - for type, component in components.sinks { - "\(type)": "hi" - } - } -} diff --git a/docs/highlights/.schema.json b/docs/highlights/.schema.json deleted file mode 100644 index 907f67820b945..0000000000000 --- a/docs/highlights/.schema.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "$id": "https://raw.githubusercontent.com/timberio/vector/master/.meta/schemas/highlights.json", - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Vector Highlights Front Matter Schema", - "type": "object", - "additionalProperties": false, - "required": [ - "$schema", - "author_github", - "description", - "hide_on_release_notes", - "last_modified_on", - "pr_numbers", - "tags", - "title" - ], - "properties": { - "$schema": { - "type": "string", - "description": "The path to this schema." - }, - "author_github": { - "type": "string", - "description": "Github URL of the author." - }, - "description": { - "type": "string", - "description": "Short single-line description" - }, - "draft": { - "type": "boolean", - "description": "Draft mode ensure this guide is not included in releases." - }, - "featured": { - "type": "boolean", - "description": "Is this the feature of the release? Only one can be selected per release." - }, - "hide_pagination": { - "type": "boolean", - "description": "Hides the pagination nav" - }, - "hide_on_release_notes": { - "type": "boolean", - "description": "Should this highlight appear in the upcoming release notes? Setting this to `false` allows you to make announce a highlight of low imortance without adding noise to the release notes." - }, - "last_modified_on": { - "type": "string", - "description": "When the guide was last modified." - }, - "pr_numbers": { - "type": "array", - "description": "List of pull request numbers relevant to this highlight.", - "items": { - "type": "int" - } - }, - "release": { - "type": "string", - "description": "The release/version number this highlight is included in." - }, - "tags": { - "type": "array", - "description": "Array of tags", - "items": { - "type": "string", - "enum": ["sink: tcp","source: tcp","source: udp","type: announcement","type: enhancement","type: new feature","type: performance","type: breaking change","domain: buffers","domain: cli","domain: config","domain: deps","domain: networking","domain: observability","domain: operations","domain: platforms","domain: privacy","domain: security","domain: sinks","domain: sources","domain: tests","domain: topology","domain: transforms","domain: ux","domain: website","event type: log","event type: metric","platform: arm64","platform: armv7","platform: amazon-linux","platform: centos","platform: debian","platform: docker","platform: dpkg","platform: homebrew","platform: macos","platform: msi","platform: nix","platform: nixos","platform: raspbian","platform: rhel","platform: rpm","platform: ubuntu","platform: windows","platform: x86_64","provider: aws","provider: confluent","provider: heroku","provider: splunk","provider: yandex","provider: datadog","provider: azure","provider: elastic","provider: gcp","provider: honeycomb","provider: humio","provider: influxdata","provider: logdna","provider: grafana","provider: new relic","provider: papertrail","provider: sematext","source: docker","source: file","source: generator","source: http","source: journald","source: kafka","source: logplex","source: prometheus","source: socket","source: splunk_hec","source: statsd","source: stdin","source: syslog","source: vector","source: kubernetes","transform: add_fields","transform: add_tags","transform: ansi_stripper","transform: aws_ec2_metadata","transform: coercer","transform: concat","transform: dedupe","transform: filter","transform: geoip","transform: grok_parser","transform: json_parser","transform: log_to_metric","transform: logfmt_parser","transform: lua","transform: merge","transform: reduce","transform: regex_parser","transform: remove_fields","transform: remove_tags","transform: rename_fields","transform: sampler","transform: split","transform: swimlanes","transform: tag_cardinality_limit","transform: tokenizer","transform: wasm","sink: aws_cloudwatch_logs","sink: aws_cloudwatch_metrics","sink: aws_kinesis_firehose","sink: aws_kinesis_streams","sink: aws_s3","sink: blackhole","sink: clickhouse","sink: console","sink: datadog_logs","sink: datadog_metrics","sink: elasticsearch","sink: file","sink: gcp_cloud_storage","sink: gcp_pubsub","sink: gcp_stackdriver_logs","sink: honeycomb","sink: http","sink: humio_logs","sink: influxdb_logs","sink: influxdb_metrics","sink: kafka","sink: logdna","sink: loki","sink: new_relic_logs","sink: papertrail","sink: prometheus","sink: pulsar","sink: sematext_logs","sink: socket","sink: splunk_hec","sink: statsd","sink: vector"] - } - }, - "title": { - "type": "string", - "description": "Title of the guide." - } - } -} diff --git a/docs/highlights/2019-10-21-require-encoding-option-for-console-and-file-sinks.md b/docs/highlights/2019-10-21-require-encoding-option-for-console-and-file-sinks.md deleted file mode 100644 index 33999b8bea4a4..0000000000000 --- a/docs/highlights/2019-10-21-require-encoding-option-for-console-and-file-sinks.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -last_modified_on: "2020-07-13" -$schema: ".schema.json" -title: "Require `encoding` option for console and file sinks" -description: "The `encoding` option is now required for these sinks" -author_github: "https://github.com/binarylogic" -pr_numbers: [1033] -release: "0.6.0" -hide_on_release_notes: false -tags: ["type: breaking change", "domain: sinks", "sink: console", "sink: file"] ---- - -The dynamic `encoding` concept in Vector was confusing users, so we've made -it required and explicit. Simply add `encoding = "json"` to your `console` and -`file` sinks. - -## Upgrade Guide - -Make the following changes in your `vector.toml` file: - -```diff title="vector.toml" - [sinks.console] - type = "console" -+ encoding = "json" - - [sinks.file] - type = "file" -+ encoding = "json" -``` - -That's it! - - diff --git a/docs/highlights/2019-12-04-rename-datadog-sink-to-datadog_metrics.md b/docs/highlights/2019-12-04-rename-datadog-sink-to-datadog_metrics.md deleted file mode 100644 index a439b7be73875..0000000000000 --- a/docs/highlights/2019-12-04-rename-datadog-sink-to-datadog_metrics.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -last_modified_on: "2020-07-13" -$schema: ".schema.json" -title: "The `datadog` sink has been renamed to `datadog_metrics`" -description: "This ensures that naming is consistent for the upcoming `datadog_logs` sink" -author_github: "https://github.com/binarylogic" -pr_numbers: [1314] -release: "0.6.0" -hide_on_release_notes: false -tags: ["type: breaking change", "domain: sinks", "sink: datadog_metrics"] ---- - -The `datadog` sink has been renamed to `datadog_metrics` to make way for the -upcoming `datadog_logs` sink. - -## Upgrade Guide - -Make the following changes in your `vector.toml` file: - -```diff title="vector.toml" - [sinks.datadog] -- type = "datadog" -+ type = "datadog_metrics" -``` - -That's it! - - diff --git a/docs/highlights/2019-12-14-kubernetes-source-alpha.md b/docs/highlights/2019-12-14-kubernetes-source-alpha.md deleted file mode 100644 index 1024ef1ddf2cb..0000000000000 --- a/docs/highlights/2019-12-14-kubernetes-source-alpha.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -last_modified_on: "2020-03-31" -$schema: ".schema.json" -title: "New Kubernetes Source (alpha)" -description: "Early adopters have a new Kuberenetes source to chew on" -author_github: "https://github.com/binarylogic" -pr_numbers: [893] -release: "0.6.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: sources", "source: kubernetes"] ---- - -We're currently [experimenting with Kubernetes integration](https://github.com/timberio/vector/issues/260) -This functionality is undocumented and not yet ready for general use. However, -we consider it to be at Alpha stage and suitable for adventurous early adopters -to try out. - - - -We consider Kubernetes integration to be extremely important and we want to get -this right, so we'd love to [get feedback][urls.vector_chat] from anyone willing. - -The main ticket to follow is [issue #260](https://github.com/timberio/vector/issues/260). - -[urls.vector_chat]: https://chat.vector.dev diff --git a/docs/highlights/2019-12-16-ec2-metadata.md b/docs/highlights/2019-12-16-ec2-metadata.md deleted file mode 100644 index 5c4669c0b737d..0000000000000 --- a/docs/highlights/2019-12-16-ec2-metadata.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -last_modified_on: "2020-03-31" -$schema: ".schema.json" -title: "New AWS EC2 Medata Transform" -description: "Enrich your events with EC2 metadata" -author_github: "https://github.com/binarylogic" -pr_numbers: [1325] -release: "0.6.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: transforms", "transform: aws_ec2_metadata"] ---- - -Are your events the laughing-stock of the data warehouse? Then enrich them with -our brand spanking new [`aws_ec2_metadata` transform][docs.transforms.aws_ec2_metadata]. - - - -Configuration isn't complicated, just add and hook up the transform. If you -don't want all enrichments added then white-list them with the `fields` option: - -```toml -[transforms.fill_me_up] - type = "aws_ec2_metadata" - inputs = ["my-source-id"] - fields = [ - "instance-id", - "local-hostname", - "public-hostname", - "public-ipv4", - "ami-id", - "availability-zone", - "region", - ] -``` - -For more guidance get on the [reference page][docs.transforms.aws_ec2_metadata]. - -## Why? - -Data is better when it's thicc 👌 - -[docs.transforms.aws_ec2_metadata]: /docs/reference/transforms/aws_ec2_metadata/ diff --git a/docs/highlights/2020-01-07-prometheus-source.md b/docs/highlights/2020-01-07-prometheus-source.md deleted file mode 100644 index 416ee053dff53..0000000000000 --- a/docs/highlights/2020-01-07-prometheus-source.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -last_modified_on: "2020-03-31" -$schema: ".schema.json" -title: "New Prometheus Source" -description: "Scrape prometheus metrics with Vector" -author_github: "https://github.com/binarylogic" -pr_numbers: [1264] -release: "0.7.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: sources", "source: prometheus"] ---- - -We love [Prometheus][urls.prometheus], but we also love [options](https://www.mms.com/en-us/shop/single-color) -and so we've added a [`prometheus` source][docs.sources.prometheus] to let you -send Prometheus format metrics anywhere you like. - - - -This was an important feat for Vector because it required us to mature our -metrics data model and tested our interoperability between metrics sources. - -To use it simply add the source config and point it towards the hosts you wish -to scrape: - -```toml -[sources.my_source_id] - type = "prometheus" - hosts = ["http://localhost:9090"] - scrape_interval_secs = 1 -``` - -For more guidance get on the [reference page][docs.sources.prometheus]. - -## Why? - -We believe the most common use cases for this source will be backups and -migration, if you have an interesting use case we'd [love to hear about it][urls.vector_chat]. - -[docs.sources.prometheus]: /docs/reference/sources/prometheus/ -[urls.prometheus]: https://prometheus.io/ -[urls.vector_chat]: https://chat.vector.dev diff --git a/docs/highlights/2020-01-14-rename-line-field-to-message.md b/docs/highlights/2020-01-14-rename-line-field-to-message.md deleted file mode 100644 index 8879d164b6152..0000000000000 --- a/docs/highlights/2020-01-14-rename-line-field-to-message.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "Rename `line` field to `message` in `splunk_hec` source" -description: "This change ensures the `splunk_hec` source conforms to Vector's schema" -author_github: "https://github.com/binarylogic" -pr_numbers: [1457] -release: "0.7.0" -hide_on_release_notes: false -tags: ["type: breaking change", "domain: sources", "source: splunk_hec"] ---- - -The `splunk_hec` source now emits events with a `message` key instead of a -`line` key. This can be renamed via the [global `log_schema` -options][docs.reference.configuration.global-options#log_schema]. - -## Upgrade Guide - -There are no changes you need to make. Just be aware that your events will -no longer have a `line` field. - -[docs.reference.configuration.global-options#log_schema]: /docs/reference/global-options/#log_schema diff --git a/docs/highlights/2020-02-05-drop-aws-options.md b/docs/highlights/2020-02-05-drop-aws-options.md deleted file mode 100644 index 71a2dd4d36d97..0000000000000 --- a/docs/highlights/2020-02-05-drop-aws-options.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -last_modified_on: "2020-04-15" -$schema: ".schema.json" -title: "AWS specific options have been dropped in the Elasticsearch sink" -description: "We've dropped redundant AWS options that may break backward compatibility" -author_github: "https://github.com/binarylogic" -pr_numbers: [1703] -release: "0.8.0" -hide_on_release_notes: true -tags: - [ - "type: breaking change", - "provider: aws", - "domain: sinks", - "sink: elasticsearch", - ] ---- - -The `endpoint` and `region` options have been dropped in the [`elasticsearch` -sink][docs.sinks.elasticsearch] in favor of using the `host` option. - -## Upgrade Guide - -```diff title="vector.toml" - [sinks.es] - type = "elasticsearch" -- endpoint = "http://my-domain.us-east-1.es.amazonaws.com" -- region = "us-east-1" -+ host = "http://my-domain.us-east-1.es.amazonaws.com" -``` - -You can find your AWS ES domain in the AWS console. Simply provide the full -domain URL as the `host` value. - -[docs.sinks.elasticsearch]: /docs/reference/sinks/elasticsearch/ diff --git a/docs/highlights/2020-02-11-improved-syslog-parsing.md b/docs/highlights/2020-02-11-improved-syslog-parsing.md deleted file mode 100644 index 6ddab406d5600..0000000000000 --- a/docs/highlights/2020-02-11-improved-syslog-parsing.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "Improved Syslog Parsing" -description: "Best effort parsing support for Syslog" -author_github: "https://github.com/binarylogic" -pr_numbers: [1757] -release: "0.8.0" -hide_on_release_notes: true -tags: ["type: new feature", "domain: sources", "source: syslog"] ---- - -Anyone that dealt with Syslog knows that the format specification is a "goal". -It's very common for formats to deviate slightly. To account for this we've -updated our Syslog parsing to follow the [RFC 3164][urls.syslog_3164], -[RFC 5424][urls.syslog_5424], and other common formats. With these changes -Vector is very likely to parse a Syslog format, or anything like it. And, as -always, if Vector's [`syslog` source][docs.sources.syslog] fails to parse your -format you can always use the [`socket` source][docs.sources.socket] and the -[`regex_parser` transform][docs.transforms.regex_parser] to roll your own -collection parsing pipeline. - -[docs.sources.socket]: /docs/reference/sources/socket/ -[docs.sources.syslog]: /docs/reference/sources/syslog/ -[docs.transforms.regex_parser]: /docs/reference/transforms/regex_parser/ -[urls.syslog_3164]: https://tools.ietf.org/html/rfc3164 -[urls.syslog_5424]: https://tools.ietf.org/html/rfc5424 diff --git a/docs/highlights/2020-02-14-global-log-schema.md b/docs/highlights/2020-02-14-global-log-schema.md deleted file mode 100644 index cf7712e6539da..0000000000000 --- a/docs/highlights/2020-02-14-global-log-schema.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -last_modified_on: "2020-04-19" -$schema: ".schema.json" -title: "Introducing Vector's Global Log Schema" -description: "Set defaults for Vector's common log key names" -author_github: "https://github.com/binarylogic" -pr_numbers: [1769, 1795] -release: "0.8.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: config"] ---- - -Vector does not require a rigid schema for it's [`log` -events][docs.data-model.log]. You are welcome to use any field names you like, -such as the `timestamp`, `message`, and `host`. Until recently, the -default names of these fields were not easily customizable. You either had to -set these names within the [source][docs.sources] itself, or rename these fields -using the [`rename_fields` transform][docs.transforms.rename_fields]. While this -works, it's combersome and is not obvious to anyone reading your Vector -configuration file. Enter Vector's new [global log -schema][docs.global-options#log_schema]. These new options allow you to change -the default names for the [`message_key`][docs.global-options#message_key], -[`host_key`][docs.global-options#host_key], -[`timestamp_key`][docs.global-options#host_key], and more: - -```toml title="vector.toml" -[log_schema] - host_key = "host" # default - message_key = "message" # default - timestamp_key = "timestamp" # default -``` - -Why is this useful? - -1. Many Vector users already have a schema in-place and this makes it easy for - Vector to adopt that schema. -2. Components often times need to coordinate. For example, the - [`host_key`][docs.global-options#host_key] is used in a variety of - [sinks][docs.sinks] to ensure that Vector's internal "host" field is mapped - to the downstream service's "host" field. - -[docs.data-model.log]: /docs/about/data-model/log/ -[docs.global-options#host_key]: /docs/reference/global-options/#host_key -[docs.global-options#log_schema]: /docs/reference/global-options/#log_schema -[docs.global-options#message_key]: /docs/reference/global-options/#message_key -[docs.sinks]: /docs/reference/sinks/ -[docs.sources]: /docs/reference/sources/ -[docs.transforms.rename_fields]: /docs/reference/transforms/rename_fields/ diff --git a/docs/highlights/2020-02-17-add-fields-transform-templating.md b/docs/highlights/2020-02-17-add-fields-transform-templating.md deleted file mode 100644 index aa9701664deba..0000000000000 --- a/docs/highlights/2020-02-17-add-fields-transform-templating.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "The Add Fields Transform Supports Templating" -description: "Use Vector's templating syntax to add new fields" -author_github: "https://github.com/binarylogic" -pr_numbers: [1799] -release: "0.8.0" -hide_on_release_notes: true -tags: ["type: enhancement", "domain: transforms", "transform: add_fields"] ---- - -Vector offers a [template syntax][docs.reference.templates] that you can use to build -dynamic values in your [Vector configuration][docs.setup.configuration] files. This -has now been added to the [`add_fields` transform][docs.transforms.add_fields], -enabling the ability to create fields from other fields values. - -[docs.setup.configuration]: /docs/setup/configuration/ -[docs.reference.templates]: /docs/reference/templates/ -[docs.transforms.add_fields]: /docs/reference/transforms/add_fields/ diff --git a/docs/highlights/2020-02-20-new-sinks.md b/docs/highlights/2020-02-20-new-sinks.md deleted file mode 100644 index e119497642b70..0000000000000 --- a/docs/highlights/2020-02-20-new-sinks.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "Lots of New Sinks!" -description: "7 new sinks have been added to Vector" -author_github: "https://github.com/binarylogic" -pr_numbers: [1555, 1562, 1668, 1716, 1759, 1783, 1794] -release: "0.8.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: sinks"] ---- - -We all love a good sink. Now you can enjoy our latest offerings: - -- [`gcp_stackdriver_logging` sink][docs.sinks.gcp_stackdriver_logs] -- [`gcp_cloud_storage` sink][docs.sinks.gcp_cloud_storage] -- [`logdna` sink][docs.sinks.logdna] -- [`humio_logs` sink][docs.sinks.humio_logs] -- [`influxdb_metrics` sink][docs.sinks.influxdb_metrics] -- [`loki` sink][docs.sinks.loki] -- [`sematext_logs` sink][docs.sinks.sematext_logs] - -[docs.sinks.gcp_cloud_storage]: /docs/reference/sinks/gcp_cloud_storage/ -[docs.sinks.gcp_stackdriver_logs]: /docs/reference/sinks/gcp_stackdriver_logs/ -[docs.sinks.humio_logs]: /docs/reference/sinks/humio_logs/ -[docs.sinks.influxdb_metrics]: /docs/reference/sinks/influxdb_metrics/ -[docs.sinks.logdna]: /docs/reference/sinks/logdna/ -[docs.sinks.loki]: /docs/reference/sinks/loki/ -[docs.sinks.sematext_logs]: /docs/reference/sinks/sematext_logs/ diff --git a/docs/highlights/2020-02-21-file-source-multiline-support.md b/docs/highlights/2020-02-21-file-source-multiline-support.md deleted file mode 100644 index ddab2f6795993..0000000000000 --- a/docs/highlights/2020-02-21-file-source-multiline-support.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -last_modified_on: "2020-04-14" -$schema: ".schema.json" -title: "Improved Multiline Support In The File Source" -description: "Merge multiple lines together based on rules" -author_github: "https://github.com/binarylogic" -pr_numbers: [1852] -release: "0.8.0" -hide_on_release_notes: false -tags: ["type: enhancement", "domain: sources", "source: file"] ---- - -One of the biggest frustrations we've heard from users in this space is the -inability to merge lines together. Such a simple task can be incredibly -complex and hard. Fear not! We plan to add first-class support for solving -this problem. - -In addition to the recently added [automatic merging of Docker -logs][docs.sources.docker_logs#auto_partial_merge], we also added [better multi-line -support][docs.sources.file#multiline] to our [`file` source][docs.sources.file]. -These options are very expressive and should solve the vast majority of -multi-line merging problems. - -For example. Given the following lines: - -```text -foobar.rb:6:in `/': divided by 0 (ZeroDivisionError) - from foobar.rb:6:in `bar' - from foobar.rb:2:in `foo' - from foobar.rb:9:in `
' -``` - -You can merge them with the following config: - -```toml title="vector.toml" -[sources.my_file_source] - type = "file" - # ... - - [sources.my_file_source.multiline] - start_pattern = "^[^\\s]" - mode = "continue_through" - condition_pattern = "^[\\s]+from" - timeout_ms = 1000 -``` - -And if this doesn't do it, you can always fallback -to our [`lua` transform][docs.transforms.lua]. - -[docs.sources.docker_logs#auto_partial_merge]: /docs/reference/sources/docker/#auto_partial_merge -[docs.sources.file#multiline]: /docs/reference/sources/file/#multiline -[docs.sources.file]: /docs/reference/sources/file/ -[docs.transforms.lua]: /docs/reference/transforms/lua/ diff --git a/docs/highlights/2020-02-24-rename-fields-transform.md b/docs/highlights/2020-02-24-rename-fields-transform.md deleted file mode 100644 index aaf277a2cdd04..0000000000000 --- a/docs/highlights/2020-02-24-rename-fields-transform.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "New Rename Fields Transform" -description: "An easier way to rename fields" -author_github: "https://github.com/binarylogic" -pr_numbers: [1800] -release: "0.8.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: transforms", "transform: rename_fields"] ---- - -Vector has a long overdue [`rename_fields` transform][docs.transforms.rename_fields]. -This does exactly what it says, rename fields :). - -[docs.transforms.rename_fields]: /docs/reference/transforms/rename_fields/ diff --git a/docs/highlights/2020-02-24-swimlanes-transform.md b/docs/highlights/2020-02-24-swimlanes-transform.md deleted file mode 100644 index 1dac359e38e04..0000000000000 --- a/docs/highlights/2020-02-24-swimlanes-transform.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "New Swimlanes Transform" -description: "Split log streams with ease" -author_github: "https://github.com/binarylogic" -pr_numbers: [1785] -release: "0.8.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: transforms", "transform: swimlanes"] ---- - -The new [`swimlanes` transform][docs.transforms.swimlanes] makes it much easier -to configure conditional branches of transforms and sinks. For example, you can -easily create [if/else pipelines][docs.transforms.swimlanes#examples]. - -```toml title="vector.toml" -[transforms.lanes] - types = "swimlanes" - - [transforms.my_transform_id.lanes.errors] - "level.eq" = "error" - - [transforms.my_transform_id.lanes.not_errors] - "level.neq" = "error" -``` - -Remember to occasionally let your branches mingle so that they don't completely -lose touch. - -[docs.transforms.swimlanes#examples]: /docs/reference/transforms/swimlanes/#examples -[docs.transforms.swimlanes]: /docs/reference/transforms/swimlanes/ diff --git a/docs/highlights/2020-03-03-privacy-policy.md b/docs/highlights/2020-03-03-privacy-policy.md deleted file mode 100644 index acc8d2ed5bf79..0000000000000 --- a/docs/highlights/2020-03-03-privacy-policy.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "We've Added A Privacy Policy" -description: "Our commitment to privacy" -author_github: "https://github.com/binarylogic" -pr_numbers: [1977, 1976] -release: "0.8.1" -hide_on_release_notes: true -tags: ["type: announcement"] ---- - -In addition to our [security policy][urls.vector_security_policy], we've added -a new [privacy policy][urls.vector_privacy_policy]. It's our pledge that Vector -will _never_ implement any tactics, gray-area or not, to unknowingly collect -data. - -[urls.vector_privacy_policy]: https://github.com/timberio/vector/blob/master/PRIVACY.md -[urls.vector_security_policy]: https://github.com/timberio/vector/security/policy diff --git a/docs/highlights/2020-03-04-encoding-whitelist-blacklist.md b/docs/highlights/2020-03-04-encoding-whitelist-blacklist.md deleted file mode 100644 index 8a69c28990d1a..0000000000000 --- a/docs/highlights/2020-03-04-encoding-whitelist-blacklist.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "Whitelist & Blacklist Fields When Encoding" -description: "More control over which fields are included when encoding" -author_github: "https://github.com/binarylogic" -pr_numbers: [1915] -release: "0.9.0" -hide_on_release_notes: true -tags: ["type: new feature", "domain: sinks"] ---- - -We've added the ability to white-list and blacklist fields during the encoding -process within [sinks][docs.sinks]. This is useful if you have metadata fields -that you do not want to send downstream. For example, you might have an -`application_id` fields that you use for partitioning, but you don't want to -include it in the actual data since it would be duplicative. - -To use this feature see the new `encoding` options for each sink. For example, -the [`clickhouse` sink's `encoding` option][docs.sinks.clickhouse#encoding]. - -[docs.sinks.clickhouse#encoding]: /docs/reference/sinks/clickhouse/#encoding -[docs.sinks]: /docs/reference/sinks/ diff --git a/docs/highlights/2020-03-09-kafka-sink-compression.md b/docs/highlights/2020-03-09-kafka-sink-compression.md deleted file mode 100644 index 1adeb20630d12..0000000000000 --- a/docs/highlights/2020-03-09-kafka-sink-compression.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "Compression Now Available In The Kafka Sink" -description: "Improve throughput by compressing data before writing it to Kafka" -author_github: "https://github.com/binarylogic" -pr_numbers: [1969] -release: "0.9.0" -hide_on_release_notes: true -tags: ["type: new feature", "domain: sinks", "sink: kafka"] ---- - -Compression for Vector's [`kafka` sink][docs.sinks.kafka] is now available. -Before we take credit for this feature, Vector uses -[`librdkafka`][urls.librdkafka] under the hood, and to maintain consistency -we just mapped the appropriate options. In addition, we added a -[new `librdkafka_options`][docs.sinks.kafka#librdkafka_options] that enables -transparent pass-through of [`librdkafka`'s options][urls.librdkafka_config]. - -[docs.sinks.kafka#librdkafka_options]: /docs/reference/sinks/kafka/#librdkafka_options -[docs.sinks.kafka]: /docs/reference/sinks/kafka/ -[urls.librdkafka]: https://github.com/edenhill/librdkafka -[urls.librdkafka_config]: https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md diff --git a/docs/highlights/2020-03-10-dedupe-transform.md b/docs/highlights/2020-03-10-dedupe-transform.md deleted file mode 100644 index cdd7548e40ca0..0000000000000 --- a/docs/highlights/2020-03-10-dedupe-transform.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -last_modified_on: "2020-04-16" -$schema: ".schema.json" -title: "New Dedupe Transform" -description: "Shed duplicate logs" -author_github: "https://github.com/binarylogic" -pr_numbers: [1848] -release: "0.9.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: sources", "source: vector"] ---- - -For certain use cases, log deduplication can be a useful tool. Not only does -this promote your data integrity, but it can help protect against upstream -mistakes that accidentally duplicate logs. This mistake can easily double -(or more!) your log volume. To protect against this you can use our new -[`dedupe` transform][docs.transforms.dedupe]. - -## Get Started - -Simply add the transform to your pipeline: - -```toml -[transforms.my_transform_id] - # General - type = "dedupe" # required - inputs = ["my-source-id"] # required - - # Fields - fields.match = ["timestamp", "host", "message"] # optional, default -``` - - - -- The `fields.match` option lets you control which fields are compared to determine if events are equal. - - - -[docs.transforms.dedupe]: /docs/reference/transforms/dedupe/ diff --git a/docs/highlights/2020-03-11-tag-cardinality-limit-transform.md b/docs/highlights/2020-03-11-tag-cardinality-limit-transform.md deleted file mode 100644 index d047acc7af0b0..0000000000000 --- a/docs/highlights/2020-03-11-tag-cardinality-limit-transform.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -last_modified_on: "2020-04-16" -$schema: ".schema.json" -title: "New Tag Cardinality Limit Transform" -description: "Protect downstream metrics storages from runaway metrics tags" -author_github: "https://github.com/binarylogic" -pr_numbers: [1959] -release: "0.9.0" -hide_on_release_notes: false -tags: - [ - "type: new feature", - "domain: transforms", - "transform: tag_cardinality_limit", - ] ---- - -High cardinality metric tags can severly disrupt downstream metrics storages. To -protect against this we built a new -[`tag_cardinality_limit` transform][docs.transforms.tag_cardinality_limit]. - -## Getting Started - -Getting started is easy. Simply add this component to your pipeline: - -```toml title="vector.toml" -[transforms.tag_protection] - type = "tag_cardinality_limit" - inputs = ["my-source-id"] - limit_exceeded_action = "drop_tag" - mode = "exact" - value_limit = 500 -``` - - - -- The `limit_exceeded_action` described the behavior when the `value_limit` is reached. -- The `mode` enables you to switch between `exact` and `probabilistic` algorithms to trade performance for memory efficiency. -- The `value` limit allows you to select exactly how many unique tag values you're willing to accept. - - - -More to come! This feature is part of our [best-in-class operator -UX][urls.milestone_39] initiative. - -[docs.transforms.tag_cardinality_limit]: /docs/reference/transforms/tag_cardinality_limit/ -[urls.milestone_39]: https://github.com/timberio/vector/milestone/39 diff --git a/docs/highlights/2020-03-11-vector-sink-tls.md b/docs/highlights/2020-03-11-vector-sink-tls.md deleted file mode 100644 index 560dd6c1d6716..0000000000000 --- a/docs/highlights/2020-03-11-vector-sink-tls.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "The Vector Source & Sink Support TLS" -description: "Securely forward data between Vector instances" -author_github: "https://github.com/binarylogic" -pr_numbers: [2025] -release: "0.9.0" -hide_on_release_notes: true -tags: ["type: new feature", "domain: sources", "source: vector"] ---- - -A highly requested feature of Vector is to support the TLS protocol for the -[`vector` source][docs.sources.vector] and [`vector` sink][docs.sinks.vector]. -This is now available. Check out the `tls.*` options. - -[docs.sinks.vector]: /docs/reference/sinks/vector/ -[docs.sources.vector]: /docs/reference/sources/vector/ diff --git a/docs/highlights/2020-03-12-papertrail-sink.md b/docs/highlights/2020-03-12-papertrail-sink.md deleted file mode 100644 index 1f1b2ad1e92d5..0000000000000 --- a/docs/highlights/2020-03-12-papertrail-sink.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "New Papertrail Sink" -description: "Sink logs to the Papertrail logging service" -author_github: "https://github.com/binarylogic" -pr_numbers: [1835] -release: "0.9.0" -hide_on_release_notes: true -tags: ["type: new feature", "domain: sinks", "sink: papertrail"] ---- - -Tried, true, and simple. Our new [`papertrail` sink][docs.sinks.papertrail] -lets you send logs to the [Papertrail][urls.papertrail] logging service. - -[docs.sinks.papertrail]: /docs/reference/sinks/papertrail/ diff --git a/docs/highlights/2020-03-14-honeycomb-sink.md b/docs/highlights/2020-03-14-honeycomb-sink.md deleted file mode 100644 index addd3ff28df0d..0000000000000 --- a/docs/highlights/2020-03-14-honeycomb-sink.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -last_modified_on: "2020-07-13" -title: "New Honeycomb Sink" -description: "Sink logs to the Honeycomb logging service" -author_github: "https://github.com/binarylogic" -pr_numbers: [1665] -release: "0.9.0" -hide_on_release_notes: true -tags: ["type: new feature", "domain: sinks", "sink: honeycomb"] ---- - -For you [Honeycomb][urls.honeycomb] fans we have a new -[`honeycomb` sink][docs.sinks.honeycomb]. Keep an eye on -[PR#1991][urls.pr_1991], which will introduce a new `transaction` transform. -This transform is designed to produce "canonical" events. These are flattened, -wide events that represent an entire transaction, the concept that Honeycomb -is built upon. Vector + Honeycomb = 👯. - -[docs.sinks.honeycomb]: /docs/reference/sinks/honeycomb/ -[urls.honeycomb]: https://honeycomb.io -[urls.pr_1991]: https://github.com/timberio/vector/pull/1991 diff --git a/docs/highlights/2020-03-19-apache-pulsar-sink.md b/docs/highlights/2020-03-19-apache-pulsar-sink.md deleted file mode 100644 index bcc648df9d969..0000000000000 --- a/docs/highlights/2020-03-19-apache-pulsar-sink.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -last_modified_on: "2020-07-13" -title: "New Apache Pulsar Sink" -description: "Sink logs to the Apache Pulsar service" -author_github: "https://github.com/binarylogic" -pr_numbers: [1665] -release: "0.9.0" -hide_on_release_notes: true -tags: ["type: new feature", "domain: sinks", "sink: pulsar"] ---- - -We have a new [`pulsar` sink][docs.sinks.pulsar]! This was a community -contribution and effort. Thanks to [Evan](https://github.com/leshow) for his -help building this sink! - -[docs.sinks.pulsar]: /docs/reference/sinks/pulsar/ diff --git a/docs/highlights/2020-03-23-datadog-logs-sink.md b/docs/highlights/2020-03-23-datadog-logs-sink.md deleted file mode 100644 index 093a04b5c0c89..0000000000000 --- a/docs/highlights/2020-03-23-datadog-logs-sink.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "New Datadog Logs Sink" -description: "Sink logs to the Datadog logging service" -author_github: "https://github.com/binarylogic" -pr_numbers: [1832] -release: "0.9.0" -hide_on_release_notes: true -tags: ["type: new feature", "domain: sinks", "sink: datadog_logs"] ---- - -In addition to our [`datadog_metrics` sink][docs.sinks.datadog_metrics], we've -introduced a new [`datadog_logs` sink][docs.sinks.datadog_logs]. This is part -of our broader effort to expand Vector's integrations. - -[docs.sinks.datadog_logs]: /docs/reference/sinks/datadog_logs/ -[docs.sinks.datadog_metrics]: /docs/reference/sinks/datadog_metrics/ diff --git a/docs/highlights/2020-03-31-filter-transform.md b/docs/highlights/2020-03-31-filter-transform.md deleted file mode 100644 index 6729e88620e75..0000000000000 --- a/docs/highlights/2020-03-31-filter-transform.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -last_modified_on: "2020-04-16" -$schema: ".schema.json" -title: "New Filter Transform" -description: "Filter and route your logs based on defined conditions" -author_github: "https://github.com/binarylogic" -pr_numbers: [2088] -release: "0.9.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: transforms", "transform: filter"] ---- - -We recently introduced a concept of conditions, which you can see in our -[`swimlanes` transform][docs.transforms.swimlanes] as well as our [unit -tests feature][docs.reference.tests]. This paved the way for a new `filter` -transform, allowing you to filter events based on a set of conditions. This -is replaces our old `field_filter` transform since it is much more expressive. - -## Get Started - -```toml title="vector.toml" -[transforms.haproxy_errors] - # General - type = "filter" - inputs = ["my-source-id"] - - # Conditions - condition."level.eq" = "error" - condition."service.eq" = "haproxy" -``` - -Check out the [docs][docs.transforms.filter] for a fill list of available -conditions. - -[docs.reference.tests]: /docs/reference/tests/ -[docs.transforms.filter]: /docs/reference/transforms/filter/ -[docs.transforms.swimlanes]: /docs/reference/transforms/swimlanes/ diff --git a/docs/highlights/2020-03-31-guides-section.md b/docs/highlights/2020-03-31-guides-section.md deleted file mode 100644 index 805ad576e9b77..0000000000000 --- a/docs/highlights/2020-03-31-guides-section.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -last_modified_on: "2020-03-31" -$schema: ".schema.json" -title: "A New Guides Section" -description: "High quality guides and education for Vector" -author_github: "https://github.com/binarylogic" -pr_numbers: [2132] -release: "0.9.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: website"] ---- - -Vector is only as good as it's documentation and education. And while we -put effort into our [docs][pages.docs], we felt there was an educational -aspect missing, so we launched a new [new guides section][pages.guides]. This -section is meant to house high-quality guides that will be maintained and -updated continuously. To kick this new section off we've added the following guides: - -Getting Started Series -Custom Aggregations With Lua -Parsing CSV Logs With Lua -Unit Testing Your Configs - -[pages.docs]: /docs/ -[pages.guides]: /guides/ diff --git a/docs/highlights/2020-04-01-more-condition-predicates.md b/docs/highlights/2020-04-01-more-condition-predicates.md deleted file mode 100644 index 14391e66ba62a..0000000000000 --- a/docs/highlights/2020-04-01-more-condition-predicates.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -last_modified_on: "2020-04-13" -$schema: ".schema.json" -title: "More Condition Predicates" -description: "More options when filtering and routing events" -author_github: "https://github.com/binarylogic" -pr_numbers: [1997, 2183, 2198] -release: "0.9.0" -hide_on_release_notes: true -tags: - [ - "type: enhancement", - "domain: config", - "domain: transforms", - "transform: filter", - "transform: swimlanes", - ] ---- - -Vector has a concept "conditions" that are used to qualify events. For example, -this is used in Vector's [unit testing feature][guides.unit-testing], -[`swimlanes` transform][docs.transforms.swimlanes], and -[`filter` transform][docs.transforms.filter]. This change adds new predicates -that enable powerful matching and condition expression. Specifically, the -following predicates were added: - -- `begins_with` -- `contains` -- `ends_with` -- `is_log` -- `is_metric` -- `regex` - -## Example - -For example, you can filter all messages that contain the `error` term with -the new `contains` predicate: - -```toml -[transforms.errors] - type = "filter" - condition."message.cotnain" = "error" -``` - -The world is your oyster. - -[docs.transforms.filter]: /docs/reference/transforms/filter/ -[docs.transforms.swimlanes]: /docs/reference/transforms/swimlanes/ -[guides.unit-testing]: /guides/advanced/unit-testing/ diff --git a/docs/highlights/2020-04-07-lua-transform-version-2.md b/docs/highlights/2020-04-07-lua-transform-version-2.md deleted file mode 100644 index e27181824ef5b..0000000000000 --- a/docs/highlights/2020-04-07-lua-transform-version-2.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -last_modified_on: "2020-03-31" -$schema: ".schema.json" -title: "Lua Transform v2" -description: "The next iteration of our Lua transform." -author_github: "https://github.com/binarylogic" -pr_numbers: [2126] -release: "0.9.0" -hide_on_release_notes: false -tags: ["type: enhancement", "domain: sources", "source: vector"] ---- - -v2 of our [`lua` transform][docs.transforms.lua] has been released! This is a -complete overhaul that provides a new and improved API, better data processing -ergonomics, and faster processing. Specific improvements include: - -1. Events are [represented as Lua tables][docs.transforms.lua#representation-of-events] with proper type conversion. -2. Introduction of [hooks][docs.transforms.lua#hooks] to maintain global state. -3. Introduction of [timers][docs.transforms.lua#timers] to facilitate timed flushing. Useful for aggregations. -4. The ability to accept and work with metric events in addition to log events. - -This raises the bar in terms of capabilities, which is important! Lua is often -used as an escape hatch when Vector's native transforms are not expressive -enough. - - - -Did you know we're also [working on a WASM integration][urls.pr_2006] 👀 - - - - - -## Get Started - -Docs: Lua Transform -Guide: Custom aggregations with Lua -Guide: Parsing CSV logs with Lua -Guide: Merge multi-line logs with Lua - -And for the curious: - -Vector's Lua RFC - -[docs.transforms.lua#hooks]: /docs/reference/transforms/lua/#hooks -[docs.transforms.lua#representation-of-events]: /docs/reference/transforms/lua/#representation-of-events -[docs.transforms.lua#timers]: /docs/reference/transforms/lua/#timers -[docs.transforms.lua]: /docs/reference/transforms/lua/ -[urls.pr_2006]: https://github.com/timberio/vector/pull/2006 diff --git a/docs/highlights/2020-04-07-vector-to-vector-metrics.md b/docs/highlights/2020-04-07-vector-to-vector-metrics.md deleted file mode 100644 index 99c9f25d63900..0000000000000 --- a/docs/highlights/2020-04-07-vector-to-vector-metrics.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -last_modified_on: "2020-04-14" -$schema: ".schema.json" -title: "The Vector Source Now Accepts Metrics" -description: "It's not possible to forward metrics between Vector instances" -author_github: "https://github.com/binarylogic" -pr_numbers: [2245] -release: "0.9.0" -hide_on_release_notes: true -tags: ["type: new feature", "domain: sources", "source: vector"] ---- - -import SVG from 'react-inlinesvg'; - -Until recently the [`vector` source][docs.sources.vector] only accepted -[`log` events][docs.data-model.log]. Supporting metrics was blocked by pending -metric data model development, as well as topology improvements. -[PR#2245][urls.pr_2245] removes that limitation enabling you to truly build -observability pipelines that can process both logs and metrics, such as -the [centralized topology][docs.topologies#centralized]. - -[docs.data-model.log]: /docs/about/data-model/log/ -[docs.sources.vector]: /docs/reference/sources/vector/ -[docs.topologies#centralized]: /docs/setup/deployment/topologies/#centralized -[urls.pr_2245]: https://github.com/timberio/vector/pull/2245 diff --git a/docs/highlights/2020-04-09-make-acl-optional.md b/docs/highlights/2020-04-09-make-acl-optional.md deleted file mode 100644 index 5f5813455d40c..0000000000000 --- a/docs/highlights/2020-04-09-make-acl-optional.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -last_modified_on: "2020-07-13" -$schema: ".schema.json" -title: "ACL is now optional for the Google Cloud Storage sink" -description: "ACL is not always required when creating objects in GCP Cloud Storage" -author_github: "https://github.com/binarylogic" -hide_on_release_notes: false -pr_numbers: [2283] -release: "0.9.0" -tags: ["type: breaking change", "domain: sinks", "sink: gcp_cloud_storage"] ---- - -GCP Cloud Storage buckets with [uniform bucket-level access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) -don't support setting ACL for objects inside them (HTTP 400 error is returned). -Therefore, the Vector `gcp_cloud_storage` sink no longer supplies a -`x-goog-acl` header by default. - -## Upgrade Guide - -If you wish to set an ACL for your GCP object you'll need to explicitly set -the `acl` option: - -```diff title="vector.toml" - [sinks.gcp_cloud_storage] - type = "gcp_cloud_storage" -+ acl = "projectPrivate" # change as desired -``` - -That's it! - - diff --git a/docs/highlights/2020-04-17-new-sinks.md b/docs/highlights/2020-04-17-new-sinks.md deleted file mode 100644 index aaf1658015df1..0000000000000 --- a/docs/highlights/2020-04-17-new-sinks.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -last_modified_on: "2020-04-17" -$schema: ".schema.json" -title: "4 New Sinks!" -description: "Papertrail, Honeycomb, Pulsar, and DataDog Logs" -author_github: "https://github.com/binarylogic" -pr_numbers: [1835, 1847, 1665, 1832] -release: "0.9.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: sinks"] ---- - -We all love a good sink. Now you can enjoy our latest offerings: - -- [`papertrail` sink][docs.sinks.papertrail] -- [`honeycomb` sink][docs.sinks.honeycomb] -- [`pulsar` sink][docs.sinks.pulsar] -- [`datadog_logs` sink][docs.sinks.datadog_logs] - -Expanding support is a fundamental requirement we're aiming to achieve before -hitting [1.0][urls.vector_roadmap]. - -[docs.sinks.datadog_logs]: /docs/reference/sinks/datadog_logs/ -[docs.sinks.honeycomb]: /docs/reference/sinks/honeycomb/ -[docs.sinks.papertrail]: /docs/reference/sinks/papertrail/ -[docs.sinks.pulsar]: /docs/reference/sinks/pulsar/ -[urls.vector_roadmap]: https://github.com/timberio/vector/milestones?direction=asc&sort=due_date&state=open diff --git a/docs/highlights/2020-05-13-add-regexset-support-to-regex.md b/docs/highlights/2020-05-13-add-regexset-support-to-regex.md deleted file mode 100644 index 231fb2ae46a81..0000000000000 --- a/docs/highlights/2020-05-13-add-regexset-support-to-regex.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -last_modified_on: "2020-07-13" -$schema: ".schema.json" -title: "RegexSet support to `regex` transform" -description: "Efficiently run multiple regexes in the same transform!" -author_github: "https://github.com/hoverbear" -hide_on_release_notes: false -pr_numbers: [2493] -release: "0.10.0" -tags: ["type: enhancement", "domain: transforms", "transform: regex_parser"] ---- - -Contributor [Mattias Endler (@mre)][urls.endler_dev] taught the [`regex_parser` transform][urls.vector_regex_parser] how to handle multiple regex'es at a time efficiently! - -## Get Started - -Make the following changes in your `vector.toml` file: - -In order to avoid a **deprecation warning** you should update any `regex_parser` components to use the new syntax: - -```diff title="vector.toml" - [transforms.example] - type = "regex_parser" -- regex = "..." -+ patterns = [ -+ "...", -+ # Any new regexes you might want! -+ ] -``` - -You should also review your pipelines for instances where you have a `regex_parser -> [... ->] regex_parser` step, you may be able to collapse these now and shave a few a nanoseconds off your events. 😉 - -[urls.endler_dev]: https://endler.dev/ -[urls.vector_regex_parser]: https://vector.dev/docs/reference/transforms/regex_parser/ diff --git a/docs/highlights/2020-06-10-consolidate-and-beautify-validate.md b/docs/highlights/2020-06-10-consolidate-and-beautify-validate.md deleted file mode 100644 index 71c9459709ae8..0000000000000 --- a/docs/highlights/2020-06-10-consolidate-and-beautify-validate.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -last_modified_on: "2020-07-13" -$schema: ".schema.json" -title: "Beautification of the validate command" -description: "A little polish on a useful feature." -author_github: "https://github.com/hoverbear" -hide_on_release_notes: false -pr_numbers: [2622] -release: "0.10.0" -tags: ["type: enhancement", "domain: ux"] ---- - -We gave `vector validate` some touching up to make it look better, and feel nicer to use. This was heavily inspired by the fantastic `linkerd validate` command. - -Take a gander at the new output on a good valid configuration: - -```bash -vic@sticky-keyboard-macbook:/git/timberio/vector$ vector validate test.toml -√ Loaded "test.toml" -√ Configuration topology -√ Component configuration -√ Health check `sink0` -------------------------- - Validated -``` - -Now an invalid configuration: - -```bash -vic@sticky-keyboard-macbook:/git/timberio/vector$ vector validate test.toml -Failed to parse "test.toml" ---------------------------- -x missing field `type` for key `sinks.sink1` -``` diff --git a/docs/highlights/2020-10-28-new-aws-integrations.md b/docs/highlights/2020-10-28-new-aws-integrations.md deleted file mode 100644 index d43722f9dfa65..0000000000000 --- a/docs/highlights/2020-10-28-new-aws-integrations.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -last_modified_on: "2020-10-27" -$schema: ".schema.json" -title: "New AWS integrations" -description: "Export observability data out of AWS." -author_github: "https://github.com/binarylogic" -pr_numbers: [4101, 4779] -release: "0.11.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: sources", "platform: aws"] ---- - -Getting observability data out of AWS can sometimes feel like you're in a -[Rube Goldberg comic][rube_goldberg], stitching together umpteen tools -and hoping it all works in the end. We want to make this easier with Vector, -and 0.11 includes our initial efforts: - -1. **A new [`aws_kinesis_firehose` source][aws_kinesis_firehose_source]** -2. **A new [`aws_cloudwatch_logs_subscription_parser` transform][aws_cloudwatch_logs_subscription_parser_transform]** -3. **A new [`aws_s3` source][aws_s3_source]** -4. **A new [`aws_sqs` sink][aws_sqs_sink]** -5. **A new [`aws_ecs_metrics` source][aws_ecs_metrics_source]** - -## Get Started - -To help you get started, we wrote [a guide][cloudwatch_guide] on collecting AWS -CloudWatch logs via AWS Firehose. With this setup you can send your AWS -CloudWatch logs to any supported Vector [sink][sinks]. - -We're eager to hear what you think about these sources! [Join our chat][chat] -and let us know. - -[aws_cloudwatch_logs_subscription_parser_transform]: /docs/reference/transforms/aws_cloudwatch_logs_subscription_parser/ -[aws_ecs_metrics_source]: /docs/reference/sources/aws_ecs_metrics/ -[aws_kinesis_firehose_source]: /docs/reference/sources/aws_kinesis_firehose/ -[aws_s3_source]: /docs/reference/sources/aws_s3/ -[aws_sqs_sink]: /docs/reference/sinks/aws_sqs/ -[chat]: https://chat.vector.dev -[cloudwatch_guide]: /guides/advanced/cloudwatch-logs-firehose/ -[rube_goldberg]: https://en.wikipedia.org/wiki/Rube_Goldberg_machine -[sinks]: /docs/reference/sinks/ diff --git a/docs/highlights/2020-12-23-graphql-api.md b/docs/highlights/2020-12-23-graphql-api.md deleted file mode 100644 index dc5f07abc7b4e..0000000000000 --- a/docs/highlights/2020-12-23-graphql-api.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -last_modified_on: "2020-12-23" -$schema: ".schema.json" -title: "The GraphQL API for Vector" -description: "View Vector metrics and explore Vector topologies using GraphQL" -author_github: "https://github.com/lucperkins" -pr_numbers: [] -release: "0.12.0" -hide_on_release_notes: false -tags: ["type: new feature", "domain: api"] ---- - -Vector now has a [GraphQL] API that you can use for a variety of purposes: - -* To view Vector's internal metrics -* To view metadata about the Vector instance -* To explore configured Vector topologies - -We have plans to enhance the API in the coming releases by enabling you to, for -example, re-configure Vector via the API. - -## How to use it - -The GraphQL API for Vector is **disabled by default**. We want to keep Vector's -behavior as predictable and secure as possible, so we chose to make the feature -opt-in. To enable the API, add this to your Vector config: - -```toml -[api] -enabled = true -address = "127.0.0.1:8686" # optional. Change IP/port if required -``` - -## Read more - -For a more in-depth look at the API, check out: - -* The recent [announcement post][post] for the API from esteemed Vector engineer [Lee Benson][lee]. -* Our [official documentation] -* The [Rust code][code] behind the API - -## Try it out - -To give the GraphQL API a spin, check out the [Vector GraphQL -Playground][playground], which lets you run queries against a hosted Vector -instance. - -[code]: https://github.com/timberio/vector/tree/master/src/api -[docs]: https://vector.dev/docs/reference/api -[graphql]: https://graphql.org -[lee]: https://github.com/LeeBenson -[playground]: https://playground.vector.dev:8686/playground -[post]: https://vector.dev/blog/graphql-api diff --git a/docs/highlights/2021-01-10-kafka-sink-metrics.md b/docs/highlights/2021-01-10-kafka-sink-metrics.md deleted file mode 100644 index 257a707f25aea..0000000000000 --- a/docs/highlights/2021-01-10-kafka-sink-metrics.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -last_modified_on: "2021-01-10" -$schema: ".schema.json" -title: "The `kafka` sink now supports metrics" -description: "Send metric events to Kafka" -author_github: "https://github.com/binarylogic" -featured: false -pr_numbers: [] -release: "0.12.0" -hide_on_release_notes: false -tags: ["type: enhancement", "domain: metrics", "sink: kafka"] ---- - -The [`kafka` sink][kafka_sink] now supports metrics, making it possible to send -metric events through Kafka. Metrics events are encoded into a format that -mimics our [internal metrics data model], ideal for custom consumers on the -other end. Getting started is easy: - -```toml -[sources.host_metrics] -type = "host_metrics" - -[sinks.kafka] -type = "kafka" -inputs = ["host_metrics"] -encoding.codec = "json" -``` - -## Caveats - -We currently do not support ingesting metric events in the `kafka` source. This -is due to the hesitation to introduce yet another metrics format into the world. -Instead, we are working to support an open metrics format that the `kafka` -source and sink will support. See [issue 5809] for more info. - -[issue 5809]: https://github.com/timberio/vector/issues/5809 -[kafka_sink]: https://vector.dev/docs/reference/sinks/kafka/ -[metrics data model]: https://vector.dev/docs/about/under-the-hood/architecture/data-model/metric/#schema diff --git a/docs/highlights/2021-01-20-wildcard-identifiers.md b/docs/highlights/2021-01-20-wildcard-identifiers.md deleted file mode 100644 index 2ed4f16a502d3..0000000000000 --- a/docs/highlights/2021-01-20-wildcard-identifiers.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -last_modified_on: "2021-01-20" -$schema: ".schema.json" -title: "Wildcards are now supported in component IDs" -description: "Wildcards allow for dynamic Vector topologies" -author_github: "https://github.com/binarylogic" -featured: false -pr_numbers: [6170] -release: "0.12.0" -hide_on_release_notes: false -tags: ["type: enhancement", "domain: topology"] ---- - -[PR 6170][pr_6170] introduced wildcards when referencing component IDs in the `inputs` option. This allows you to build -dynamic topologies. This feature comes with one limitation: the wildcard must be at the end of the string. - -```toml -[sources.app1_logs] -type = "file" -includes = ["/var/log/app1.log"] - -[sources.app2_logs] -type = "file" -includes = ["/var/log/app.log"] - -[sources.system_logs] -type = "file" -includes = ["/var/log/system.log"] - -[sinks.app_logs] -type = "datadog_logs" -inputs = ["app*"] - -[sinks.archive] -type = "aws_s3" -inputs = ["app*", "system_logs"] -``` - -[pr_6170]: https://github.com/timberio/vector/pull/6170 diff --git a/docs/manual/about.md b/docs/manual/about.md deleted file mode 100644 index 289ecc39d5506..0000000000000 --- a/docs/manual/about.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: About -description: "About Vector, the monitoring and observability data router" -sidebar_label: hidden -hide_pagination: true ---- - -This section will cover Vector's basic concepts and provide a foundation -for the rest of the documentation. - -Concepts -Data model -Guarantees -What is vector diff --git a/docs/manual/about/concepts.md b/docs/manual/about/concepts.md deleted file mode 100644 index 0e9e761a26a0f..0000000000000 --- a/docs/manual/about/concepts.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Concepts -description: The fundamental Vector concepts. A great place to start learning about Vector. ---- - - - -It's worth getting familiar with the basic concepts that comprise Vector as they -are used throughout the documentation. This knowledge will be helpful as you -proceed and is also cool to brag about amongst your friends. - -## Components - -"Component" is the generic term we use for [sources](#sources), -[transforms](#transforms), and [sinks](#sinks). You compose components to create -pipelines, allowing you to ingest, transform, and send data. - -View all components - -### Sources - -Vector wouldn't be very useful if it couldn't ingest data. A "source" defines where Vector -should pull data from, or how it should receive data pushed to it. A pipeline -can have any number of sources, and as they ingest data they proceed to -normalize it into [events](#events) \(see next section\). This sets the stage -for easy and consistent processing of your data. Examples of sources include -[`file`][docs.sources.file], [`syslog`][docs.sources.syslog], -[`StatsD`][docs.sources.statsd], and [`stdin`][docs.sources.stdin]. - -View all sources - -### Transforms - -A "transform" is responsible for mutating events as they are transported by -Vector. This might involve parsing, filtering, sampling, or aggregating. You can -have any number of transforms in your pipeline and how they are composed is up -to you. - -View all transforms - -### Sinks - -A "sink" is a destination for [events][docs.data-model]. Each sink's -design and transmission method is dictated by the downstream service it is -interacting with. For example, the [`socket` sink][docs.sinks.socket] will -stream individual events, while the [`aws_s3` sink][docs.sinks.aws_s3] will -buffer and flush data. - -View all sinks - -## Events - -Data, such as logs and metrics, that passes through Vector is known as an -"event". Events are explained in detail in the [data model][docs.data-model] -section. - -View data model - -## Pipelines - -A "pipeline" is the end result of connecting [sources](#sources), -[transforms](#transforms), and [sinks](#sinks). You can see a full example of a -pipeline in the [configuration section][docs.setup.configuration]. - -View configuration - -[docs.setup.configuration]: /docs/setup/configuration/ -[docs.data-model]: /docs/about/data-model/ -[docs.sinks.aws_s3]: /docs/reference/sinks/aws_s3/ -[docs.sinks.socket]: /docs/reference/sinks/socket/ -[docs.sources.file]: /docs/reference/sources/file/ -[docs.sources.statsd]: /docs/reference/sources/statsd/ -[docs.sources.stdin]: /docs/reference/sources/stdin/ -[docs.sources.syslog]: /docs/reference/sources/syslog/ diff --git a/docs/manual/about/guarantees.md b/docs/manual/about/guarantees.md deleted file mode 100644 index 4b382e6b3ee4c..0000000000000 --- a/docs/manual/about/guarantees.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Guarantees -description: Vector's gaurantees. Covering delivery and reliability guarantees for each Vector component. ---- - -Faults in distributed systems are like green Skittles, we all wish they'd never -happen but in reality the best we can do is understand and control the damage -they cause. In event streaming pipelines that means understanding delivery -and stability guarantees and their implications on your overall system. - -Vector attempts to make it clear which guarantees you can expect from it. We -categorize all components by their targeted delivery guarantee and also by -their general stability. This helps you make the appropriate trade-offs for your -use case. - -Here you can find an overview of delivery guarantee types and their meaning as -well as how we label the stability of our components. Next, you can head over to -the [components page][pages.components] and use filters to see which components -support specific guarantees. - -## Delivery Guarantees - -
    -
  • - -### At-Least-Once - -The `at-least-once` delivery guarantee ensures that an -[event][docs.data-model] received by Vector will be delivered at least -once to the configured destination(s). While rare, it is possible for an event -to be delivered more than once. See the [Does Vector support exactly once -delivery](#does-vector-support-exactly-once-delivery) FAQ below). - - - -In order to achieve at least once delivery between restarts your source must -be configured to use `disk` based buffers: - -```toml title="vector.toml" -[sinks.my_sink_id] - # ... - - [sinks.my_sink_id.buffer] - type = "disk" - when_full = "block" - max_size = 104900000 # 100MiB -``` - -Refer to each [sink's][docs.sinks] documentation for further guidance on its -buffer options. - - -View all at-least-once components -
  • -
  • - -### Best-Effort - -A `best-effort` delivery guarantee means that Vector will make a best effort to -deliver each event, but cannot _guarantee_ delivery. This is usually due to -limitations of the underlying protocol; which are outside the scope of Vector. It's -important to note that while data loss is possible, it is usually rare and -Vector does everything within its control to ensure data is not lost. For more -info, see the -["Do I need at least once delivery?"](#do-i-need-at-least-once-delivery) FAQ. - -Note that this is _not_ the same as `at-most-once` delivery, as it is still -possible for Vector to introduce duplicates under extreme circumstances. - -
  • -
- -## Reliability Guarantee - -
    -
  • - -### Prod-Ready - -The `prod-ready` status is a _subjective_ status defined by the Vector team. It is -intended to give you a general idea of a feature's reliability for production -environments. A feature is `prod-ready` if it meets the following criteria: - -1. A meaningful amount of users (generally >50) have been using the feature in - a production environment for sustained periods without issue. -2. The feature has had sufficient time (generally >4 months) to be community - tested. -3. The feature API is stable and unlikely to change. -4. There are no major [open bugs][urls.vector_bug_issues] for the feature. - -View all prod-ready components - -
  • -
  • - -### Beta - -The `beta` status means that a feature has not met the criteria outlined in -the [Prod-Ready](#prod-ready) section and therefore should be used with caution -in production environments. - -
  • -
- -## FAQs - -### Do I need at least once delivery? - -One of the unique advantages of the metrics and logging use cases is that data is usually -used for diagnostic purposes only. Therefore, losing the occasional event -has little impact on your business. This affords you the opportunity to -provision your pipeline towards performance, simplicity, and cost reduction. -On the other hand, if you're using your data to perform business critical -functions, then data loss is not acceptable and therefore requires "at least -once" delivery. - -To clarify, even though a source or sink is marked as "best effort" it does -not mean Vector takes delivery lightly. In fact, once data is within the -boundary of Vector it will not be lost if you've configured on-disk buffers. -Data loss for "best effort" sources and sinks are almost always due to the -limitations of the underlying protocol. - -### Does Vector support exactly once delivery? - -No, Vector does not support exactly once delivery. There are future plans to -partially support this for sources and sinks that support it, for example Kafka, -but it remains unclear if Vector will ever be able to achieve this. -We recommend [subscribing to our mailing list](https://vector.dev/community), -which will keep you in the loop if this ever changes. - -### How can I find components that meet these guarantees? - -Head over to the [components section][pages.components] and use the guarantee -filters. - -[docs.data-model]: /docs/about/data-model/ -[docs.sinks]: /docs/reference/sinks/ -[pages.components]: /components/ -[urls.vector_bug_issues]: https://github.com/timberio/vector/issues?q=is%3Aopen+is%3Aissue+label%3A%22type%3A+bug%22 diff --git a/docs/manual/about/what-is-vector.md b/docs/manual/about/what-is-vector.md deleted file mode 100644 index e6f7e587e1dda..0000000000000 --- a/docs/manual/about/what-is-vector.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "What is Vector?" -description: "High-level description of the Vector observability data collector and router." ---- - - - -Vector is a lightweight, ultra-fast, [open-source][urls.vector_repo] tool for -building observability pipelines. Compared to Logstash and friends, Vector -[improves throughput by ~10X while significantly reducing CPU and memory -usage][urls.vector_performance]. - -### Principles - -- **Reliability First.** - Built in [Rust][urls.rust], Vector's primary design goal is reliability. -- **One Tool. All Data.** - One simple tool gets your [logs][docs.data-model.log], [metrics][docs.data-model.metric], and traces (coming soon) from A to B. -- **Single Responsibility.** - Vector is a _data router_, it does not plan to become a distributed processing framework. - -### Who should use Vector? - -- You _SHOULD_ use Vector to replace Logstash, Fluent\*, Telegraf, Beats, or similar tools. -- You _SHOULD_ use Vector as a [daemon][docs.strategies#daemon] or [sidecar][docs.strategies#sidecar]. -- You _SHOULD_ use Vector as a Kafka consumer/producer for observability data. -- You _SHOULD_ use Vector in resource constrained environments (such as devices). -- You _SHOULD NOT_ use Vector if you need an advanced distributed stream processing framework. -- You _SHOULD NOT_ use Vector to replace Kafka. Vector is designed to work with Kafka! -- You _SHOULD NOT_ use Vector for non-observability data such as analytics data. - -### Community - -- Vector is **downloaded over 100,000 times per day**. -- Vector's largest user **processes over 10TB daily**. -- Vector is **used by multiple fortune 500 companies** with stringent production requirements. -- Vector has **over 15 active contributors** and growing. - -Get started - -[docs.data-model.log]: /docs/about/data-model/log/ -[docs.data-model.metric]: /docs/about/data-model/metric/ -[docs.strategies#daemon]: /docs/setup/deployment/strategies/#daemon -[docs.strategies#sidecar]: /docs/setup/deployment/strategies/#sidecar -[urls.rust]: https://www.rust-lang.org/ -[urls.vector_performance]: https://vector.dev/#performance -[urls.vector_repo]: https://github.com/timberio/vector diff --git a/docs/manual/administration.md b/docs/manual/administration.md deleted file mode 100644 index 495218731dce7..0000000000000 --- a/docs/manual/administration.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Administration -description: "How to administer and operate Vector." -sidebar_label: hidden -hide_pagination: true ---- - -This section will cover administrating and operating Vector. - ---- - -Monitoring -Process management -Tuning -Updating -Validating diff --git a/docs/manual/administration/monitoring.md b/docs/manual/administration/monitoring.md deleted file mode 100644 index 7482cef8ace4c..0000000000000 --- a/docs/manual/administration/monitoring.md +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Monitoring -description: How to monitor and observe Vector with logs, metrics, and more. ---- - -This document will cover monitoring Vector. - -## Logs - -### Accessing - - - - -The Vector package from the APT repository installs Vector as a Systemd service. Logs can be -accessed through the `journalctl` utility: - -```bash -sudo journalctl -fu vector -``` - - - - -The Vector DEB package installs Vector as a Systemd service. Logs can be -accessed through the `journalctl` utility: - -```bash -sudo journalctl -fu vector -``` - - - - -If you've started Vector through the `docker` CLI you can access Vector's logs -via the `docker logs` command. First, find the Vector container ID: - -```bash -docker ps | grep vector -``` - -Copy Vector's container ID and use it to tail the logs: - -```bash -docker logs -f -``` - - - - -If you started Vector through Docker compose you can use the following command -to access Vector's logs: - -```bash -docker-compose logs -f vector -``` - -Replace `vector` with the name of Vector's service if it is not called `vector`. - - - - -When Vector is started through Homebrew the logs are automatically routed to -`/usr/local/var/log/vector.log`. You can tail them with the `tail` utility: - -```bash -tail -f /usr/local/var/log/vector.log -``` - - - - -The Vector MSI package does not install Vector into a proces manager. Therefore, -Vector must be started by executing the Vector binary directly. Vector's logs -are written to `STDOUT`. You are in charge of routing `STDOUT`, and this -determines how you access Vector's logs. - - - - -The Vector Nix package does not install Vector into a proces manager. Therefore, -Vector must be started by executing the Vector binary directly. Vector's logs -are written to `STDOUT`. You are in charge of routing `STDOUT`, and this -determines how you access Vector's logs. - - - - -The Vector RPM package installs Vector as a Systemd service. Logs can be -accessed through the `journalctl` utility: - -```bash -sudo journalctl -fu vector -``` - - - - -If you are starting Vector directly from the Vector CLI then all logs will be -written to `STDOUT`. You are in charge of routing `STDOUT`, and this determines -how you access Vector's logs. - - - - -The Vector package from the Yum repository installs Vector as a Systemd service. Logs can be -accessed through the `journalctl` utility: - -```bash -sudo journalctl -fu vector -``` - - - - -### Levels - -By default, Vector logs on the `info` level, you can change the level through -a variety of methods: - -| Method | Description | -| :------------------------------------------- | :---------------------------------------------------------------------------------- | -| [`-v` flag][docs.process-management#flags] | Drops the log level to `debug`. | -| [`-vv` flag][docs.process-management#flags] | Drops the log level to `trace`. | -| [`-q` flag][docs.process-management#flags] | Raises the log level to `warn`. | -| [`-qq` flag][docs.process-management#flags] | Raises the log level to `error`. | -| [`-qqq` flag][docs.process-management#flags] | Turns logging off. | -| `LOG=` env var | Set the log level. Must be one of `trace`, `debug`, `info`, `warn`, `error`, `off`. | - -### Full Backtraces - -You can enable full error backtraces by setting the `RUST_BACKTRACE=full` environment -variable. More on this in the [Troubleshooting guide][guides.advanced.troubleshooting]. - -### Rate Limiting - -Vector rate limits log events in the hot path. This is to your benefit as -it allows you to get granular insight without the risk of saturating IO -and disrupting the service. The trade-off is that repetitive logs will not be -logged. - -## Metrics - -Currently, Vector does not expose metrics. [Issue #230][urls.issue_230] -represents work to run internal Vector metrics through Vector's pipeline. -Allowing you to define internal metrics as a [source][docs.sources] and -then define one of many metrics [sinks][docs.sinks] to collect those metrics, -just as you would metrics from any other source. - -## Troubleshooting - -Please refer to our troubleshooting guide: - -Troubleshooting Guide - -[docs.process-management#flags]: /docs/administration/process-management/#flags -[docs.sinks]: /docs/reference/sinks/ -[docs.sources]: /docs/reference/sources/ -[guides.advanced.troubleshooting]: /guides/advanced/troubleshooting/ -[urls.issue_230]: https://github.com/timberio/vector/issues/230 diff --git a/docs/manual/administration/process-management.md b/docs/manual/administration/process-management.md deleted file mode 100644 index e33aebaad2ee0..0000000000000 --- a/docs/manual/administration/process-management.md +++ /dev/null @@ -1,345 +0,0 @@ ---- -title: Process Management -description: "How to manage the Vector process: starting, stopping, and reloading." ---- - -This document covers how to manage the Vector process using various interfaces. -How you manage the Vector process is largely dependent on how you installed -Vector. - -## Starting - -### Command - - - - -```bash -sudo systemctl start vector -``` - - - - -```bash -sudo systemctl start vector -``` - - - - -```bash -docker run \ - -v $PWD/vector.toml:/etc/vector/vector.toml:ro \ - timberio/vector:latest-alpine -``` - - - -- The `-v $PWD/vector.to...` flag passes your custom configuration to Vector. -- The `timberio/vector:latest-alpine` is the default image we've chosen, you are welcome to use [other image variants][docs.platforms.docker#variants]. - - - - - - - - - -```bash -brew services start vector -``` - - - - -```bat -.\bin\vector --config config\vector.toml -``` - - - - -```bash -vector --config /etc/vector/vector.toml -``` - - - -- `vector` is placed in your `$PATH`. -- You must create a [Vector configuration file][docs.setup.configuration] to - successfully start Vector. - - - - - - -```bash -sudo systemctl start vector -``` - - - - -```bash -vector --config vector.toml -``` - - - - -```bash -sudo systemctl start vector -``` - - - - -### Flags - -| Flag | Description | | -| :---------------------- | :------------------------------------------------------------------------------------------------------------------ | :-- | -| **Required** | | | -| `-c, --config ` | Path the Vector [configuration file][docs.setup.configuration]. | | -| **Optional** | | | -| `-q, --quiet` | Raises the log level to `warn`. | | -| `-qq` | Raises the log level to `error`. | | -| `-qqq` | Turns logging off. | | -| `-r, --require-healthy` | Causes vector to immediately exit if any sinks fail their healthchecks. | | -| `-t, --threads` | Limits the number of internal threads Vector can spawn. | | -| `-v, --verbose` | Drops the log level to `debug`. | | -| `-vv` | Drops the log level to `trace`, the lowest level possible. | | -| `-w, --watch-config` | Vector will watch for changes in [configuration file][docs.setup.configuration], and reload accordingly. (Mac/Linux only) | | - -### Daemonizing - -Vector does not _directly_ offer a way to daemonize the Vector process. We -highly recommend that you use a utility like [Systemd][urls.systemd] to -daemonize and manage your processes. Vector provides a -[`vector.service` file][urls.vector_systemd_file] for Systemd. - -## Stopping - -The Vector process can be stopped by sending it a `SIGTERM` process signal. - -### Command - - - - -```bash -sudo systemctl stop vector -``` - - - - -```bash -sudo systemctl stop vector -``` - - - - -```bash -docker stop timberio/vector -``` - - - - - - - -```bash -brew services stop vector -``` - - - - -The Vector MSI package does not install Vector into a process manager. -Therefore, you are responsible for stopping Vector based on how you started it. - - - - -The Vector Nix package does not install Vector into a process manager. -Therefore, you are responsible for stopping Vector based on how you started it. - - - - -```bash -sudo systemctl stop vector -``` - - - - -If you are starting Vector directly from the Vector CLI then you are responsible -for stopping Vector depending on how you are managing the process. If you're -in the terminal, hitting `ctrl+c` will exit the process. - - - - -```bash -sudo systemctl stop vector -``` - - - - -### Graceful Shutdown - -Vector is designed to gracefully shutdown within 20 seconds when a `SIGTERM` -process signal is received. The shutdown process is as follows: - -1. Stop accepting new data for all [sources][docs.sources]. -2. Gracefully close any open connections with a 20 second timeout. -3. Flush any sink buffers with a 20 second timeout. -4. Exit the process with a `1` exit code. - -### Force Killing - -If Vector is forcefully killed there is the potential to lose in-flight -data. To mitigate this we recommend enabling on-disk buffers and avoiding -forceful shutdowns whenever possible. - -### Exit Codes - -If Vector fails to start it will exit with one of the preferred exit codes -as defined by `sysexits.h`. A full list of exit codes can be found in the -[`exitcodes` Rust crate][urls.exit_codes]. The relevant codes that Vector uses -are: - -| Code | Description | -| :--- | :--------------------------------------- | -| `0` | No error. | -| `78` | Bad [configuration][docs.setup.configuration]. | - -## Reloading - -Vector can be reloaded, on the fly, to recognize any configuration changes by -sending the Vector process a `SIGHUP` signal. - -### Command - - - - -```bash -sudo systemctl stop vector -``` - - - - -```bash -sudo systemctl stop vector -``` - - - - -```bash -docker stop timberio/vector -``` - - - - - - - -```bash -brew services stop vector -``` - - - - -The Vector MSI package does not install Vector into a process manager. -Therefore, you are responsible for stopping Vector based on how you started it. - - - - -The Vector Nix package does not install Vector into a process manager. -Therefore, you are responsible for stopping Vector based on how you started it. - - - - -```bash -sudo systemctl stop vector -``` - - - - -If you are starting Vector directly from the Vector CLI then you are responsible -for stopping Vector depending on how you are managing the process. If you're -in the terminal, hitting `ctrl+c` will exit the process. - - - - -```bash -sudo systemctl stop vector -``` - - - - -### Automatic Reload On Changes - -You can automatically reload Vector's configuration file when it changes by using -the `-w` or `--watch-config` flag when [starting](#starting) Vector. This is -particularly helpful in scenarios where configuration is managed for you, such -as Kubernetes. - -### Configuration Errors - -When Vector is reloaded it proceeds to read the new configuration file from -disk. If the file has errors it will be logged to `STDOUT` and ignored, -preserving any previous configuration that was set. If the process exits you -will not be able to restart the process since it will try to use the -new, invalid, configuration file. - -### Graceful Pipeline Transitioning - -Vector will perform a diff between the new and old configuration, determining -which sinks and sources should be started and shutdown and ensures the -transition from the old to new pipeline is graceful. - -[docs.setup.configuration]: /docs/setup/configuration/ -[docs.platforms.docker#variants]: /docs/setup/installation/platforms/docker/#variants -[docs.sources]: /docs/reference/sources/ -[urls.exit_codes]: https://docs.rs/exitcode/1.1.2/exitcode/#constants -[urls.systemd]: https://systemd.io/ -[urls.vector_systemd_file]: https://github.com/timberio/vector/blob/master/distribution/systemd/vector.service diff --git a/docs/manual/administration/tuning.md b/docs/manual/administration/tuning.md deleted file mode 100644 index 797436ef8d68a..0000000000000 --- a/docs/manual/administration/tuning.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Tuning -description: How to tune Vector. ---- - - - -Vector is written in [Rust][urls.rust] and therefore does not include a runtime -or VM. There are no special service level steps you need to do to improve -performance. By default, Vector will take full advantage of all system -resources without any adjustments. Welcome to Rust! - -[urls.rust]: https://www.rust-lang.org/ diff --git a/docs/manual/administration/updating.md b/docs/manual/administration/updating.md deleted file mode 100644 index 9855d80e6633c..0000000000000 --- a/docs/manual/administration/updating.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Updating -description: How to update Vector to a newer version. ---- - -Updating Vector depends largely on your [installation][docs.installation] -method. Each installation guide provides its own "Updating" section: - -## Installation Method - -### Package managers - -APT -DPKG -Homebrew -MSI -Nix -RPM -YUM - -### Manual - -Updating from archives -Updating from source - -## Working Upstream - -Depending on your [topology][docs.topologies], you'll want update your Vector -instances in a specific order. You should _always_ start downstream and work -your way upstream. This allows for incremental updating across your topology, -ensuring downstream Vector instances do not receive data in formats that are -unrecognized. Vector always makes a best effort to successfully process data, -but there is no guarantee of this if a Vector instance is handling a data -format defined by a future unknown Vector version. - -## Capacity Planning - -When updating, you'll be taking Vector instances off-line for a short period of time, -and upstream data will accumulate and buffer. To avoid overloading your instances, -you'll want to make sure you have enough capacity to handle the surplus of -data. We recommend provisioning at least 20% of head room, on all resources, -to account for spikes and updating. - -[docs.installation]: /docs/setup/installation/ -[docs.topologies]: /docs/setup/deployment/topologies/ diff --git a/docs/manual/administration/validating.md b/docs/manual/administration/validating.md deleted file mode 100644 index 727d3ae752227..0000000000000 --- a/docs/manual/administration/validating.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Validating -description: How to validation Vector's configuration to ensure it is error-free before applying it. ---- - -Vector provides a subcommand, `validate`, which checks the validity of any number -of configuration files and then exits: - - - - -```bash -vector validate /etc/vector/vector.toml -``` - - - - -```bash -vector validate --no-environment --no-topology /etc/vector/*.toml -``` - - - - -The validate subcommand checks the correctness of fields for components defined -within a configuration file, including: - -1. That [sources][docs.sources], [transforms][docs.transforms], and - [sinks][docs.sinks] include all non-optional fields. -2. All fields are of the proper [type][docs.setup.configuration#types]. - -The following group of checks verifies that the configuration file contains a valid topology, -and can be disabled with flags such as `--no-topology`, expanding the above checks with the following: - -3. At least one [source][docs.sources] is defined. -4. At least one [sink][docs.sinks] is defined. -5. All `inputs` values contain at least one value (cannot be empty). -6. All `inputs` values reference valid and upstream [source][docs.sources] or - [transform][docs.transforms] components. - -The following group of checks require the runtime environment to pass successfully, -and can be disabled with flags such as `--no-environment`, expanding the above checks with the following: - -7. All components are capable of running, for example that data directories exist and are writable, etc. -8. All [sinks][docs.sinks] are able to connect to their targets. - -If validation fails, Vector will exit with an exit code of `78`, and if validation succeeds -Vector will exit with an exit code of `0`. - -To see other customization options for the `validate` subcommand run -`vector validate --help`. - -[docs.setup.configuration#types]: /docs/setup/configuration/#types -[docs.sinks]: /docs/reference/sinks/ -[docs.sources]: /docs/reference/sources/ -[docs.transforms]: /docs/reference/transforms/ diff --git a/docs/manual/meta/glossary.md b/docs/manual/meta/glossary.md deleted file mode 100644 index 0e6191aab1bc0..0000000000000 --- a/docs/manual/meta/glossary.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: Glossary -description: "Vector glossary of terms" ---- - -The glossary contains common terms and their definitions. - - - -## Batch - -"Batch" refers to a [batched payload][docs.data-model.log] within a sink. It is a batch of events encoded into a payload that the downstream service understands. - -## Benchmark - -"Benchmark" refers to a test designed to measure performance and resource usage. You can learn more about Vector's benchmarks in the [Benchmarks][pages.index#performance] section. - -## Binary - -"Binary" refers to the static binary that Vector compiles to. - -## Buffer - -"Buffer" refers to an ordered queue of events that is coupled with a sink. - -## Configuration - -"Configuration" refers to the settings and options used to control Vector's behavior. You can learn more about Vector's configuration in the [Configuration][docs.setup.configuration] section. - -## Durability - -"Durability" refers to the ability to retain data across exceptional events. In the context of Vector, this typically refers to the ability to retain data across restarts. - -## Event - -"Event" refers to a single unit of data that flows through Vector. You can learn more about events in the [Data Model][docs.data_model] section. - -## Filter - -"Filter" refers to a type of [transform][docs.transforms] that filters events or fields on an event. - -## Flush - -"flush" refers to the act of sending a batched payload to a downstream service. It is commonly used in conjunction with "buffer". - -## Github - -"[Github](https://github.com/)"" refers to the service used to host Vector's source code. - -## Guide - -"Guide" is a tutorial or walk through on a specific subject. You can see Vector's guides in the [Guides][guides.index] section. - -## Log - -"Log" refers to an individual log event. This is a type of [Vector event][docs.data-model.metric]. - -## Lucio - -A sporty Italian that bleeds Rust, is a core member of the Vector team, and who does not approve of New York pizza. - -## Metric - -"Metric" refers to an individual data unit used to represent a point in time -measurement. This is a type of [Vector event][docs.data-model.metric]. - -## Parser - -"Parser" refers to a [transform][docs.transforms] that parses event data. - -## Pipeline - -"Pipeline" refers to the end result of combining [sources][docs.sources], -[transforms][docs.transforms], and [sinks][docs.sinks]. - -## Reducer - -"Reducer" refers to a [transform][docs.transforms] that reduces data into -a metric. - -## Repo - -"Repo" refers to a Git repository, usually the [Vector Git repository][urls.vector_repo]. - -## Router - -"Router" refers is something that accepts and routes data to many destinations, -this is commonly used to describe Vector. - -## Rust - -"Rust" refers to the [Rust programming language][urls.rust] that Vector is -written in. - -## Sample - -"Sample" refers to a [transform][docs.transforms] that samples data. - -## Sink - -"Sink" refers to the Vector [sink concept][docs.sinks]. - -## Source - -"Source" refers to the Vector [source concept][docs.sources]. - -## Strategy - -"Strategy" refers to a [deployment strategy][docs.strategies] under which Vector is -deployed. - -## Structured Log - -"Structured log" refers to a log represented in a structured form, such as -a map. This is different from a text log, which is represented as a single -text string. - -## Table - -"Table" refers to the [TOML table type][urls.toml_table]. - -## TOML - -"TOML" refers to [Tom's Obvious Markup Language][urls.toml] and it is the syntax -used to represent the Vector configuration. - -## Topology - -"Topology" refers to a [deploy topology][docs.topologies] that Vector is -deployed under. - -## Transform - -"Transform" refers to the Vector [transform concept][docs.transforms]. - -## Use Case - -"Use case" refers to a way in which Vector is used, such logs, metrics, -reducing cost, etc. - -## Vector - -"Vector" is the name of this project. - -[docs.setup.configuration]: /docs/setup/configuration/ -[docs.data-model.log]: /docs/about/data-model/log/ -[docs.data-model.metric]: /docs/about/data-model/metric/ -[docs.data_model]: /docs/about/data-model/ -[docs.sinks]: /docs/reference/sinks/ -[docs.sources]: /docs/reference/sources/ -[docs.strategies]: /docs/setup/deployment/strategies/ -[docs.topologies]: /docs/setup/deployment/topologies/ -[docs.transforms]: /docs/reference/transforms/ -[guides.index]: /guides/ -[pages.index#performance]: /#performance -[urls.rust]: https://www.rust-lang.org/ -[urls.toml]: https://github.com/toml-lang/toml -[urls.toml_table]: https://github.com/toml-lang/toml#table -[urls.vector_repo]: https://github.com/timberio/vector diff --git a/docs/manual/setup.md b/docs/manual/setup.md deleted file mode 100644 index 8fdff13585828..0000000000000 --- a/docs/manual/setup.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Setup -description: "Everything you need to know to setup Vector" -sidebar_label: hidden -hide_pagination: true ---- - -This section will cover everything you need to know to setup Vector. From -installation to deployment: - -Configuration -Deployment -Installation diff --git a/docs/manual/setup/configuration.md b/docs/manual/setup/configuration.md deleted file mode 100644 index ea063b4a19ded..0000000000000 --- a/docs/manual/setup/configuration.md +++ /dev/null @@ -1,198 +0,0 @@ ---- -title: Configuration -description: Configuring Vector ---- - -This section covers configuring Vector and creating pipelines like the -[example below](#example). Vector's configuration uses the [TOML][urls.toml] -syntax, and the configuration file must be passed via the -[`--config` flag][docs.process-management#flags] when -[starting][docs.process-management#starting] Vector: - -```bash -vector --config /etc/vector/vector.toml -``` - -## Example - -```toml title="vector.toml" -# Set global options -data_dir = "/var/lib/vector" - -# Ingest data by tailing one or more files -[sources.apache_logs] - type = "file" - include = ["/var/log/apache2/*.log"] # supports globbing - ignore_older = 86400 # 1 day - -# Structure and parse the data -[transforms.apache_parser] - inputs = ["apache_logs"] - type = "regex_parser" # fast/powerful regex - patterns = ['^(?P[w.]+) - (?P[w]+) (?P[d]+) [(?P.*)] "(?P[w]+) (?P.*)" (?P[d]+) (?P[d]+)$'] - -# Sample the data to save on cost -[transforms.apache_sample] - inputs = ["apache_parser"] - type = "sample" - rate = 50 # only keep 50% - -# Send structured data to a short-term storage -[sinks.es_cluster] - inputs = ["apache_sample"] # only take sampled data - type = "elasticsearch" - host = "http://79.12.221.222:9200" # local or external host - index = "vector-%Y-%m-%d" # daily indices - -# Send structured data to a cost-effective long-term storage -[sinks.s3_archives] - inputs = ["apache_parser"] # don't sample for S3 - type = "aws_s3" - region = "us-east-1" - bucket = "my-log-archives" - key_prefix = "date=%Y-%m-%d" # daily partitions, hive friendly format - compression = "gzip" # compress final objects - encoding = "ndjson" # new line delimited JSON - [sinks.s3_archives.batch] - max_size = 10000000 # 10mb uncompressed - -``` - -The key thing to note above is the use of the `inputs` option. This connects -Vector's component to create a pipeline. For a simple introduction, please -refer to the: - -Getting Started Guide - -## Reference - -Vector provides a [full reference][docs.reference] that you can use to build -your configuration files. - -Sources -Transforms -Sinks - -And for more advanced techniques: - -Env Vars -Global options -Template syntax -Tests - -## How It Works - -### Configuration File Location - -The location of your Vector configuration file depends on your [installation -method][docs.installation]. For most Linux based systems, the file can be -found at `/etc/vector/vector.toml`. - -### Environment Variables - -Vector will interpolate environment variables within your configuration file -with the following syntax: - -```toml title="vector.toml" -[transforms.add_host] - type = "add_fields" - - [transforms.add_host.fields] - host = "${HOSTNAME}" - environment = "${ENV:-development}" # default value when not present -``` - - - -Interpolation is done before parsing the configuration file. As such, the -entire `${ENV_VAR}` variable will be replaced, hence the requirement of -quotes around the definition. - - - -Please refer to the [environment variables reference][docs.reference.env-vars] -for more info. - -### Multiple Configuration Files - -You can pass multiple configuration files when starting Vector: - -```bash -vector --config vector1.toml --config vector2.toml -``` - -Or use a [globbing syntax][urls.globbing]: - -```bash -vector --config /etc/vector/*.toml -``` - -### Syntax - -The Vector configuration file follows the [TOML][urls.toml] syntax for its -simplicity, explicitness, and relaxed white-space parsing. For more information, -please refer to the [TOML documentation][urls.toml]. - -### Template Syntax - -Select configuration options support Vector's -[template syntax][docs.reference.templates] to produce dynamic values derived -from the event's data. Two syntaxes are supported for fields that support field -interpolation: - -1. [Strptime specifiers][urls.strptime_specifiers]. Ex: `date=%Y/%m/%d` -2. [Log fields][docs.data-model.log]. Ex: `{{ field_name }}` -3. [Metric name, namespace, or tags][docs.data-model.metric]. Ex: `{{ name }} {{ namespace }} {{ tags.tag_name }}` - -For example: - -```toml title="vector.toml" -[sinks.es_cluster] - type = "elasticsearch" - index = "user-{{ user_id }}-%Y-%m-%d" -``` - -The above `index` value will be calculated for _each_ event. For example, given -the following event: - -```json -{ - "timestamp": "2019-05-02T00:23:22Z", - "message": "message", - "user_id": 2 -} -``` - -The `index` value will result in: - -```toml -index = "user-2-2019-05-02" -``` - -Learn more in the [template reference][docs.reference.templates]. - -### Types - -All TOML values types are supported. For convenience this includes: - -- [Strings](https://github.com/toml-lang/toml#string) -- [Integers](https://github.com/toml-lang/toml#integer) -- [Floats](https://github.com/toml-lang/toml#float) -- [Booleans](https://github.com/toml-lang/toml#boolean) -- [Offset Date-Times](https://github.com/toml-lang/toml#offset-date-time) -- [Local Date-Times](https://github.com/toml-lang/toml#local-date-time) -- [Local Dates](https://github.com/toml-lang/toml#local-date) -- [Local Times](https://github.com/toml-lang/toml#local-time) -- [Arrays](https://github.com/toml-lang/toml#array) -- [Tables](https://github.com/toml-lang/toml#table) - -[docs.data-model]: /docs/about/data-model/ -[docs.installation]: /docs/setup/installation/ -[docs.process-management#flags]: /docs/administration/process-management/#flags -[docs.process-management#starting]: /docs/administration/process-management/#starting -[docs.reference.env-vars]: /docs/reference/env-vars/ -[docs.reference.templates]: /docs/reference/templates/ -[docs.reference]: /docs/reference/ -[urls.globbing]: https://en.wikipedia.org/wiki/Glob_(programming) -[urls.strptime_specifiers]: https://docs.rs/chrono/0.4.11/chrono/format/strftime/index.html#specifiers -[urls.toml]: https://github.com/toml-lang/toml diff --git a/docs/manual/setup/deployment.md b/docs/manual/setup/deployment.md deleted file mode 100644 index bc9f6afa110c7..0000000000000 --- a/docs/manual/setup/deployment.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Deployment -sidebar_label: hidden -description: How to deploy Vector into your own infrastructure -hide_pagination: true ---- - -This section will cover deploying Vector. Vector is designed to be the single -and only tool needed to get data from A to B, serving as a -[daemon][docs.strategies#daemon], [sidecar][docs.strategies#sidecar], or -[service][docs.strategies#service]. You combine these strategies to form -[topologies][docs.topologies]. - -Start by becoming familiar with the [deployment strategies][docs.strategies] -and then take a closer look at the [topologies][docs.topologies] you can create. - ---- - -Strategies -Topologies - -[docs.strategies#daemon]: /docs/setup/deployment/strategies/#daemon -[docs.strategies#service]: /docs/setup/deployment/strategies/#service -[docs.strategies#sidecar]: /docs/setup/deployment/strategies/#sidecar -[docs.strategies]: /docs/setup/deployment/strategies/ -[docs.topologies]: /docs/setup/deployment/topologies/ diff --git a/docs/manual/setup/deployment/strategies.md b/docs/manual/setup/deployment/strategies.md deleted file mode 100644 index a9786c49f8126..0000000000000 --- a/docs/manual/setup/deployment/strategies.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Deployment Strategies -description: The various strategies used to deploy Vector across your infrastructure. -sidebar_label: Strategies ---- - -Vector is designed to be the single and only tool needed to get data from A to -B. This means Vector can be deployed as a [daemon](#daemon), -[sidecar](#sidecar), or a [service](#service). You combine these strategies to -form [topologies][docs.topologies] which are covered in the -[next section][docs.topologies]. In this section we'll cover each strategy in -detail and help you understand when to use each. - -## Daemon - -The [daemon deployment strategy][docs.strategies#daemon] is designed for data -collection on a single host. Vector runs in the background, in its own process, -collecting _all_ data for that host. -Typically data is collected from a process manager, such as Journald via -Vector's [`journald` source][docs.sources.journald], but can be collected -through any of Vector's [sources][docs.sources]. -The following diagram demonstrates how it works. - - - -### When to use - -- You are responsible for the host machine and have the ability to install - Vector directly on the host. -- You are operationally proficient and understand how to reliably install, - manage, and configure software. -- You want a single robust solution for collecting and shipping your - observability data on each host. - -### When NOT to use - -- You do not control the host machine or environment. -- You do not feel comfortable installing, managing, and configuring host-level - software. -- You want to shift responsibility of collecting and shipping observability data - to each service owner. - -## Sidecar - -The [sidecar deployment strategy][docs.strategies#sidecar] is designed to -collect data from a _single_ service. Vector has a tight 1 to 1 coupling with -each service. Typically data is collected by tailing local files via Vector's -[`file` source][docs.sources.file], but can be collected through any of Vector's -[sources][docs.sources]. The following diagram demonstrates how it works. - - - -### When to use - -- You are not responsible for the host machine and do not have the ability to - install Vector directly on the host. -- You want to couple data collection with each service, shifting responsibility - to the service owner. -- You find it simpler for each service to have it own specific Vector - instance and configuration file. - -### When NOT to use - -- You do not like the idea of having multiple Vector instances on a - single host. - -## Service - -The [service deployment strategy][docs.strategies#service] treats Vector like a -separate service. It is designed to receive data from an upstream source and -fan-out to one or more destinations. -Typically, upstream sources are other Vector instances sending data via the -[`vector` sink][docs.sinks.vector], but can be collected through any of Vector's -[sources][docs.sources]. -The following diagram demonstrates how it works. - - - -### When to use - -- You need to batch data to optimize throughput and reduce the downstream - request rate. -- You want to perform operations across multiple hosts, such as aggregating - data in a global context. -- Vector is a stream consumer, continually pulling data from services like - Kafka, Kinesis, or SQS. -- You are receiving data from other upstream Vector instances via the - [`vector` sink][docs.sinks.vector]. - -### When NOT to use - -- Your downstream services support streaming where each individual host can - write data directly to the services. -- You do not need to perform operations across multiple hosts. - -[docs.sinks.vector]: /docs/reference/sinks/vector/ -[docs.sources.file]: /docs/reference/sources/file/ -[docs.sources.journald]: /docs/reference/sources/journald/ -[docs.sources]: /docs/reference/sources/ -[docs.strategies#daemon]: /docs/setup/deployment/strategies/#daemon -[docs.strategies#service]: /docs/setup/deployment/strategies/#service -[docs.strategies#sidecar]: /docs/setup/deployment/strategies/#sidecar -[docs.topologies]: /docs/setup/deployment/topologies/ diff --git a/docs/manual/setup/deployment/topologies.md b/docs/manual/setup/deployment/topologies.md deleted file mode 100644 index 775af720b198c..0000000000000 --- a/docs/manual/setup/deployment/topologies.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Deployment Topologies -description: The various topologies that Vector can accomplish and when to use each. -sidebar_label: Topologies ---- - -import SVG from 'react-inlinesvg'; - -In the previous section we covered the various [deployment -strategies][docs.strategies] used to collect and forward data. You combine these -strategies to form topologies. This section showcases common topologies and the -pros and cons of each. Use these as _guidelines_ to build your own. - -## Distributed - - - -The simplest topology. This topology offers direct communication with your -downstream services from your client nodes. - -### Pros - -- **Simple.** Less moving parts. -- **Elastic.** Easily scales with your app. Resources grow as you scale. - -### Cons - -- **Less efficient.** Depending on the complexity of your pipelines, this will - use more local resources, which could disrupt the performance of other - applications on the same host. -- **Less durable.** Because data is buffered on the host it is more likely - you'll lose buffered data in the event of an unrecoverable crash. Often times - this is the most important and useful data. -- **More downstream stress.** Downstream services will receive more requests - with smaller payloads that could potentially disrupt stability of these - services. -- **Reduced downstream stability.** You risk overloading downstream services - if you need to scale up quickly or exceed the capacity a downstream service - can handle. -- **Lacks multi-host context.** Lacks awareness of other hosts and eliminates - the ability to perform operations across hosts, such as reducing logs to - global metrics. This is typically a concern for very large deployments where - individual host metrics are less useful. - -## Centralized - - - -A good balance of simplicity, stability, and control. For most, this topology -is a good compromise between the [distributed](#distributed) and -[stream-based](#stream-based) topologies. It offers many of the advantages of -the stream-based topology without the management overhead and cost of running a -Kafka cluster. - -### Pros - -- **More efficient.** More efficient for client nodes and downstream services. - Vector agents are doing less which means they're using less resources. In - addition, the centralized Vector service will buffer more data, achieve - better compression, and send optimized requests downstream. -- **More reliable.** Vector will protect downstream services from volume spikes, - buffering and flushing data at smoothed out intervals. -- **Has multi-host context.** Because your data is centralized, you'll be able - to perform operations across hosts, such as reducing logs to global metrics. - This is advantageous for large deployments where individual host metrics are - not interesting. - -### Cons - -- **More complex.** There are more moving parts. -- **Less durable.** Agent nodes are designed to get data off of the machine as - quickly as possible, and this offers higher potential for data loss since the - central Vector service could die and lose buffered data. If this type of - outage is unacceptable, then we recommend the - [stream-based topology](#stream-based) below. - -## Stream-Based - - - -The most durable and elastic topology. This topology is typically adopted for -very large streams with teams that are familiar with running a stream-based -service such as Kafka. - -### Pros - -- **Most durable & reliable.** Stream services, like Kafka, are designed for - high durability and reliability, replicating data across multiple nodes. -- **Most efficient.** Vector agents are doing less, making them more efficient, - and Vector services do not have to worry about durability, which can be tuned - towards performance. -- **Ability to re-stream.** Re-stream your data depending on your stream's - retention period. -- **Cleaner separation of responsibilities.** Vector is used solely as a routing - layer and is not responsible for durability. Durability is delegated to a - purpose-built service that you can switch and evolve over time. - -### Cons - -- **Increased management overhead.** Managing a stream service, such as Kafka, - is a complex endeavor and generally requires an experienced team to setup and - manage properly. -- **More complex.** This topology is complex and requires a deeper understand of - managing production-grade streams. -- **More expensive.** In addition the management cost, the added stream cluster - will require more resources which will increase operational cost. - -[assets.centralized-diagram]: ../../assets/centralized-diagram.svg -[assets.distributed]: ../../assets/distributed.svg -[assets.stream-based]: ../../assets/stream-based.svg -[docs.strategies]: /docs/setup/deployment/strategies/ diff --git a/docs/manual/setup/installation.md b/docs/manual/setup/installation.md deleted file mode 100644 index 10e470ee3e731..0000000000000 --- a/docs/manual/setup/installation.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Install Vector -sidebar_label: hidden -description: Install Vector on your platform -hide_pagination: true ---- - -Vector compiles to a single `musl` static binary with no dependencies, making it -simple to install. - -## Install script - -This light-weight script will perform platform detection and determine the best -method to install Vector: - - - -## Other methods - -Manual -Operating systems -Package managers -Platforms diff --git a/docs/manual/setup/installation/manual.md b/docs/manual/setup/installation/manual.md deleted file mode 100644 index 483f5c091ffcb..0000000000000 --- a/docs/manual/setup/installation/manual.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Install Vector Manually -sidebar_label: hidden -hide_pagination: true ---- - -Installing Vector manually should be a last resort if Vector cannot be -installed through a supported [platform][docs.platforms] or -[operating system][docs.operating_systems]. - -From Archives -From Source - -[docs.operating_systems]: /docs/setup/installation/operating-systems/ -[docs.platforms]: /docs/setup/installation/platforms/ diff --git a/docs/manual/setup/installation/manual/from-archives.md b/docs/manual/setup/installation/manual/from-archives.md deleted file mode 100644 index a9a43f66ba0c2..0000000000000 --- a/docs/manual/setup/installation/manual/from-archives.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -title: Install Vector From Archives -sidebar_label: From Archives -description: Install Vector from pre-compiled archives ---- - -This page covers installing Vector from a pre-built archive. These archives -contain the `vector` binary as well as supporting configuration files. - - - -We recommend installing Vector through a supported [platform][docs.platforms] -or [package manager][docs.package_managers], if possible. These handle -permissions, directory creation, and other intricacies covered in the -[Next Steps](#next-steps) section. - - - -## Installation - - - - - - -1. ### Download & unpack the archive - - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/0.10.X/vector-aarch64-unknown-linux-musl.tar.gz | \ - tar xzf - -C vector --strip-components=2 - ``` - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/nightly/latest/vector-aarch64-unknown-linux-musl.tar.gz | \ - tar xzf - -C vector --strip-components=2 - ``` - - - - -2. ### Change into the `vector` directory - - ```bash - cd vector - ``` - -3. ### Move `vector` into your \$PATH - - ```bash - echo "export PATH=\"$(pwd)/vector/bin:\$PATH\"" >> $HOME/.profile - source $HOME/.profile - ``` - -4. ### Start Vector - - That's it! You can start vector with: - - ```bash - vector --config config/vector.toml - ``` - - - - - - - -1. ### Download & unpack the archive - - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/0.10.X/vector-x86_64-apple-darwin.tar.gz | \ - tar xzf - -C vector --strip-components=2 - ``` - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/nightly/latest/vector-x86_64-apple-darwin.tar.gz | \ - tar xzf - -C vector --strip-components=2 - ``` - - - - -2. ### Change into the `vector` directory - - ```bash - cd vector - ``` - -3. ### Move `vector` into your \$PATH - - ```bash - echo "export PATH=\"$(pwd)/vector/bin:\$PATH\"" >> $HOME/.profile - source $HOME/.profile - ``` - -4. ### Start Vector - - That's it! You can start vector with: - - ```bash - vector --config config/vector.toml - ``` - - - - - - - -1. ### Download Vector release archive (latest) - - - - - - ```bat - powershell Invoke-WebRequest https://packages.timber.io/vector/0.10.X/vector-x86_64-pc-windows-msvc.zip -OutFile vector-x86_64-pc-windows-msvc.zip - ``` - - - - - ```bat - powershell Invoke-WebRequest https://packages.timber.io/vector/nightly/latest/vector-x86_64-pc-windows-msvc.zip -OutFile vector-x86_64-pc-windows-msvc.zip - ``` - - - - -2. ### Extract files from the archive - - ```bat - powershell Expand-Archive vector-x86_64-pc-windows-msvc.zip . - ``` - -3. ### Navigate to the Vector directory - - ```bat - cd vector-x86_64-pc-windows-msvc - ``` - -4. ### Start Vector - - ```bat - .\bin\vector --config config\vector.toml - ``` - - - - - - - -1. ### Download & unpack the archive - - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/0.10.X/vector-x86_64-unknown-linux-musl.tar.gz | \ - tar xzf - -C vector --strip-components=2 - ``` - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://packages.timber.io/vector/nightly/latest/vector-x86_64-unknown-linux-musl.tar.gz | \ - tar xzf - -C vector --strip-components=2 - ``` - - - - -2. ### Change into the `vector` directory - - ```bash - cd vector - ``` - -3. ### Move `vector` into your \$PATH - - ```bash - echo "export PATH=\"$(pwd)/vector/bin:\$PATH\"" >> $HOME/.profile - source $HOME/.profile - ``` - -4. ### Start Vector - - That's it! You can start vector with: - - ```bash - vector --config config/vector.toml - ``` - - - - - -## Next Steps - -### Configuring - -The Vector configuration file is located at: - -```text -config/vector.toml -``` - -Example configurations are located in `config/vector/examples/*`. You can learn more about configuring -Vector in the [Configuration][docs.setup.configuration] section. - -### Data Directory - -We highly recommend creating a [data directory][docs.global-options#data_dir] -that Vector can use: - -```bash -mkdir /var/lib/vector -``` - - - -Make sure that this directory is writable by the `vector` process. - - - -Vector offers a global [`data_dir` option][docs.global-options#data_dir] that -you can use to specify the path of your directory. - -```toml title="vector.toml" -data_dir = "/var/lib/vector" # default -``` - -### Service Managers - -Vector archives ship with service files in case you need them: - -#### Init.d - -To install Vector into Init.d run: - -```bash -cp -av etc/init.d/vector /etc/init.d -``` - -#### Systemd - -To install Vector into Systemd run: - -```bash -cp -av etc/systemd/vector.service /etc/systemd/system -``` - -### Updating - -Simply follow the same [installation instructions above](#installation). - -[docs.setup.configuration]: /docs/setup/configuration/ -[docs.global-options#data_dir]: /docs/reference/global-options/#data_dir -[docs.package_managers]: /docs/setup/installation/package-managers/ -[docs.platforms]: /docs/setup/installation/platforms/ diff --git a/docs/manual/setup/installation/manual/from-source.md b/docs/manual/setup/installation/manual/from-source.md deleted file mode 100644 index 1d8eaccaf14a7..0000000000000 --- a/docs/manual/setup/installation/manual/from-source.md +++ /dev/null @@ -1,563 +0,0 @@ ---- -title: Install Vector From Source -sidebar_label: From Source -description: Install Vector from the Vector source code ---- - -This page covers installing Vector from source using the native toolchain for -the host. - -Vector can also be compiled to a static binary for Linux for `x86_64`, `ARM64`, -and `ARMv7` architectures. See [compiling using Docker](#compiling-using-docker) -for details. - - - -We recommend installing Vector through a supported [platform][docs.platforms], -[package manager][docs.package_managers], or pre-built -[archive][docs.from_archives], if possible. These handle permissions, directory -creation, and other intricacies covered in the [Next Steps](#next-steps) -section. - - - -## Installation - - - - - -The following steps should be used to compile Vector directly on Linux based systems. - - - -1. ### Install Rust - - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable - ``` - -2. ### Install compilation dependencies - - Install C and C++ compilers (GCC or Clang) and GNU `make` if they are not - pre-installed on your system. - -3. ### Download Vector's Source - - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://api.github.com/repos/timberio/vector/tarball/v0.10 | \ - tar xzf - -C vector --strip-components=1 - ``` - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://github.com/timberio/vector/archive/master.tar.gz | \ - tar xzf - -C vector --strip-components=1 - ``` - - - - -4. ### Change into the `vector` directory - - ```bash - cd vector - ``` - -5. ### Compile Vector - - ```bash - [FEATURES=",,..."] make build - ``` - - The `FEATURES` environment variable is optional. You can override the - default features with this variable. See [feature flags](#feature-flags) - for more info. - - When finished, the vector binary will be placed in - `target//release/vector`. For example, if you are building Vector - on your Mac, your target triple is `x86_64-apple-darwin`, and the Vector - binary will be located at `target/x86_64-apple-darwin/release/vector`. - -6. ### Start Vector - - Finally, start vector: - - ```bash - target//release/vector --config config/vector.toml - ``` - - - - - -The steps to compile Vector on Windows are different from the ones for other -operating systems. - - - -1. ### Install Rust - - Install Rust using [`rustup`][urls.rustup]. If you don't have VC++ build - tools, the installer would prompt you to install them. - -2. ### Install Perl - - Install [Perl for Windows][urls.perl_windows]. - -3. ### Add Perl to your `PATH` - - In a Rust/MSVC environment (for example, using - `x64 Native Tools Command Prompt`) add the binary directory of Perl - installed on the previous step to `PATH`. For example, for default - installation of Strawberry Perl it is - - ```bat - set PATH=%PATH%;C:\Strawberry\perl\bin - ``` - -4. ### Get Vector's source using `git` - - - - - - ```bat - git clone https://github.com/timberio/vector - git checkout v0.10.0 - cd vector - ``` - - - - - ```bat - git clone https://github.com/timberio/vector - cd vector - ``` - - - - -5. ### Build Vector in release mode - - ```bat - set RUSTFLAGS=-Ctarget-feature=+crt-static - cargo build --no-default-features --features default-msvc --release - ``` - -6. ### Start Vector - - After these steps a binary `vector.exe` in `target\release` would be - created. It can be started by running - - ```bat - .\target\release\vector --config config\vector.toml - ``` - - - - - -It is possible to build statically linked binaries of Vector for Linux using -Docker. - -In this case the dependencies listed in the previous section are not -needed, as all of them would be automatically pulled by Docker. - -Building steps: - - - -1. ### Download Vector's Source - - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://api.github.com/repos/timberio/vector/tarball/v0.10.X | \ - tar xzf - -C vector --strip-components=1 - ``` - - - - - ```bash - mkdir -p vector && \ - curl -sSfL --proto '=https' --tlsv1.2 https://github.com/timberio/vector/archive/master.tar.gz | \ - tar xzf - -C vector --strip-components=1 - ``` - - - - -2. ### Build Vector using Docker - - - - - - ```bash - PASS_FEATURES=default-cmake ./scripts/docker-run.sh builder-x86_64-unknown-linux-musl make build - ``` - - - - - - ```bash - PASS_FEATURES=default-cmake ./scripts/docker-run.sh builder-aarch64-unknown-linux-musl make build - ``` - - - - - - ```bash - PASS_FEATURES=default-cmake ./scripts/docker-run.sh builder-armv7-unknown-linux-musleabihf make build - ``` - - - - - The command above builds a Docker image with Rust toolchain for a Linux - target for the corresponding architecture using `musl` as the C library, - then starts a container from this image, and then builds inside the - Container. The target binary is located in - `target//release/vector` like in the previous case. - - - - - -## Next Steps - -### Configuring - -The Vector configuration file is located at: - -```text -config/vector.toml -``` - -Example configurations are located in `config/vector/examples/*`. You can learn more about configuring -Vector in the [Configuration][docs.setup.configuration] section. - -### Data Directory - -We highly recommend creating a [data directory][docs.global-options#data_dir] -that Vector can use: - -```bash -mkdir /var/lib/vector -``` - - - -Make sure that this directory is writable by the `vector` process. - - - -Vector offers a global [`data_dir` option][docs.global-options#data_dir] that -you can use to specify the path of your directory. - -```toml title="vector.toml" -data_dir = "/var/lib/vector" # default -``` - -### Service Managers - -Vector archives ship with service files in case you need them: - -#### Init.d - -To install Vector into Init.d run: - -```bash -cp -av distribution/init.d/vector /etc/init.d -``` - -#### Systemd - -To install Vector into Systemd run: - -```bash -cp -av distribution/systemd/vector.service /etc/systemd/system -``` - -### Updating - -Simply follow the same [installation instructions above](#installation). - -## How It Works - -### Feature Flags - -The following feature flags are supported via the `FEATURES` env var when -executing `make build`: - -```bash -[FEATURES=",,..."] make build -``` - -There are three meta-features which can be used when compiling for the -corresponding targets. If no features are specified, then the `default` one is -used. - -| Feature | Description | Enabled by default | -| :-------------- | :----------------------------------------------------------------------------------------------------------- | :------------------------------------- | -| `default` | Default set of features for `*-unknown-linux-gnu` and `*-apple-darwin` targets. | | -| `default-cmake` | Default set of features for `*-unknown-linux-*` targets which uses `cmake` and `perl` as build dependencies. | | -| `default-msvc` | Default set of features for `*-pc-windows-msvc` targets. Requires `cmake` and `perl` as build dependencies. | | - -Alternatively, for finer control over dependencies and operating system -features, it is possible to use specific features from the list below: - -| Feature | Description | Included in `default` feature | -| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------- | -| `unix` | Enables features that require `cfg(unix)` to be present on the platform, namely support for Unix domain sockets in [docker][docs.sources.docker] source and [jemalloc][urls.jemalloc] instead of the default memory allocator. | | -| `vendored` | Forces vendoring of [OpenSSL][urls.openssl] and [ZLib][urls.zlib] dependencies instead of using their versions installed in the system. Requires `perl` as a build dependency. | | -| `leveldb-plain` | Enables support for [disk buffers][docs.glossary#buffer] using vendored [LevelDB][urls.leveldb]. | | -| `leveldb-cmake` | The same as `leveldb-plain`, but is more portable. Requires `cmake` as a build dependency. Use it in case of compilation issues with `leveldb-plain`. | | -| `rdkafka-plain` | Enables vendored [librdkafka][urls.librdkafka] dependency, which is required for [`kafka` source][docs.sources.kafka] and [`kafka` sink][docs.sources.kafka]. | | -| `rdkafka-cmake` | The same as `rdkafka-plain`, but is more portable. Requires `cmake` as a build dependency. Use it in case of compilation issues with `rdkafka-plain`. | | - -In addition, it is possible to pick only a subset of Vector's components for -the build using feature flags. In order to do it, it instead of `default` -features one has to pass a comma-separated list of component features. - -
Click to see all supported component features -

- -| Name | Description | -| :--------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | -| `sources-apache_metrics` | Enables building of [`apache_metrics` source][docs.sources.apache_metrics]. | -| `sources-aws_kinesis_firehose` | Enables building of [`aws_kinesis_firehose` source][docs.sources.aws_kinesis_firehose]. | -| `sources-docker_logs` | Enables building of [`docker_logs` source][docs.sources.docker_logs]. Requires `unix` feature to be also enabled for support of Unix domain sockets. | -| `sources-file` | Enables building of [`file` source][docs.sources.file]. | -| `sources-generator` | Enables building of [`generator` source][docs.sources.generator]. | -| `sources-host_metrics` | Enables building of [`host_metrics` source][docs.sources.host_metrics]. | -| `sources-http` | Enables building of [`http` source][docs.sources.http]. | -| `sources-journald` | Enables building of [`journald` source][docs.sources.journald]. | -| `sources-kafka` | Enables building of [`kafka` source][docs.sources.kafka]. Requires `rdkafka-plain` or `rdkafka-cmake` feature to be also enabled. | -| `sources-kubernetes_logs` | Enables building of [`kubernetes_logs` source][docs.sources.kubernetes_logs]. | -| `sources-heroku_logs` | Enables building of [`heroku_logs` source][docs.sources.heroku_logs]. | -| `sources-prometheus` | Enables building of [`prometheus` source][docs.sources.prometheus]. | -| `sources-socket` | Enables building of [`socket` source][docs.sources.socket]. | -| `sources-splunk_hec` | Enables building of [`splunk_hec` source][docs.sources.splunk_hec]. | -| `sources-statsd` | Enables building of [`statsd` source][docs.sources.statsd]. | -| `sources-stdin` | Enables building of [`stdin` source][docs.sources.stdin]. | -| `sources-syslog` | Enables building of [`syslog` source][docs.sources.syslog]. | -| `sources-vector` | Enables building of [`vector` source][docs.sources.vector]. | -| `transforms-add_fields` | Enables building of [`add_fields` transform][docs.transforms.add_fields]. | -| `transforms-add_tags` | Enables building of [`add_tags` transform][docs.transforms.add_tags]. | -| `transforms-ansi_stripper` | Enables building of [`ansi_stripper` transform][docs.transforms.ansi_stripper]. | -| `transforms-aws_cloudwatch_logs_subscription_parser` | Enables building of [`aws_cloudwatch_logs_subscription_parser` transform][docs.transforms.aws_cloudwatch_logs_subscription_parser]. | -| `transforms-aws_ec2_metadata` | Enables building of [`aws_ec2_metadata` transform][docs.transforms.aws_ec2_metadata]. | -| `transforms-coercer` | Enables building of [`coercer` transform][docs.transforms.coercer]. | -| `transforms-concat` | Enables building of [`concat` transform][docs.transforms.concat]. | -| `transforms-dedupe` | Enables building of [`dedupe` transform][docs.transforms.dedupe]. | -| `transforms-filter` | Enables building of [`filter` transform][docs.transforms.filter]. | -| `transforms-geoip` | Enables building of [`geoip` transform][docs.transforms.geoip]. | -| `transforms-grok_parser` | Enables building of [`grok_parser` transform][docs.transforms.grok_parser]. | -| `transforms-json_parser` | Enables building of [`json_parser` transform][docs.transforms.json_parser]. | -| `transforms-log_to_metric` | Enables building of [`log_to_metric` transform][docs.transforms.log_to_metric]. | -| `transforms-logfmt_parser` | Enables building of [`logfmt_parser` transform][docs.transforms.logfmt_parser]. | -| `transforms-lua` | Enables building of [`lua` transform][docs.transforms.lua]. | -| `transforms-merge` | Enables building of [`merge` transform][docs.transforms.merge]. | -| `transforms-metric_to_log` | Enables building of [`metric_to_log` transform][docs.transforms.metric_to_log]. | -| `transforms-reduce` | Enables building of [`reduce` transform][docs.transforms.reduce]. | -| `transforms-regex_parser` | Enables building of [`regex_parser` transform][docs.transforms.regex_parser]. | -| `transforms-remap` | Enables building of [`remap` transform][docs.transforms.remap]. | -| `transforms-remove_fields` | Enables building of [`remove_fields` transform][docs.transforms.remove_fields]. | -| `transforms-remove_tags` | Enables building of [`remove_tags` transform][docs.transforms.remove_tags]. | -| `transforms-rename_fields` | Enables building of [`rename_fields` transform][docs.transforms.rename_fields]. | -| `transforms-sample` | Enables building of [`sample` transform][docs.transforms.sample]. | -| `transforms-split` | Enables building of [`split` transform][docs.transforms.split]. | -| `transforms-route` | Enables building of [`route` transform][docs.transforms.route]. | -| `transforms-tag_cardinality_limit` | Enables building of [`tag_cardinality_limit` transform][docs.transforms.tag_cardinality_limit]. | -| `transforms-tokenizer` | Enables building of [`tokenizer` transform][docs.transforms.tokenizer]. | -| `transforms-wasm` | Enables building of [`wasm` transform][docs.transforms.wasm]. | -| `sinks-aws_cloudwatch_logs` | Enables building of [`aws_cloudwatch_logs` sink][docs.sinks.aws_cloudwatch_logs]. | -| `sinks-aws_cloudwatch_metrics` | Enables building of [`aws_cloudwatch_metrics` sink][docs.sinks.aws_cloudwatch_metrics]. | -| `sinks-aws_kinesis_firehose` | Enables building of [`aws_kinesis_firehose` sink][docs.sinks.aws_kinesis_firehose]. | -| `sinks-aws_kinesis_streams` | Enables building of [`aws_kinesis_streams` sink][docs.sinks.aws_kinesis_streams]. | -| `sinks-aws_s3` | Enables building of [`aws_s3` sink][docs.sinks.aws_s3]. | -| `sinks-azure_monitor_logs` | Enables building of [`azure_monitor_logs` sink][docs.sinks.azure_monitor_logs]. | -| `sinks-blackhole` | Enables building of [`blackhole` sink][docs.sinks.blackhole]. | -| `sinks-clickhouse` | Enables building of [`clickhouse` sink][docs.sinks.clickhouse]. | -| `sinks-console` | Enables building of [`console` sink][docs.sinks.console]. | -| `sinks-datadog_logs` | Enables building of [`datadog_logs` sink][docs.sinks.datadog_logs]. | -| `sinks-datadog_metrics` | Enables building of [`datadog_metrics` sink][docs.sinks.datadog_metrics]. | -| `sinks-elasticsearch` | Enables building of [`elasticsearch` sink][docs.sinks.elasticsearch]. | -| `sinks-file` | Enables building of [`file` sink][docs.sinks.file]. | -| `sinks-gcp_cloud_storage` | Enables building of [`gcp_cloud_storage` sink][docs.sinks.gcp_cloud_storage]. | -| `sinks-gcp_pubsub` | Enables building of [`gcp_pubsub` sink][docs.sinks.gcp_pubsub]. | -| `sinks-gcp_stackdriver_logs` | Enables building of [`gcp_stackdriver_logs` sink][docs.sinks.gcp_stackdriver_logs]. | -| `sinks-honeycomb` | Enables building of [`honeycomb` sink][docs.sinks.honeycomb]. | -| `sinks-http` | Enables building of [`http` sink][docs.sinks.http]. | -| `sinks-humio_logs` | Enables building of [`humio_logs` sink][docs.sinks.humio_logs]. | -| `sinks-humio_metrics` | Enables building of [`humio_metrics` sink][docs.sinks.humio_metrics]. | -| `sinks-influxdb_logs` | Enables building of [`influxdb_logs` sink][docs.sinks.influxdb_logs]. | -| `sinks-influxdb_metrics` | Enables building of [`influxdb_metrics` sink][docs.sinks.influxdb_metrics]. | -| `sinks-kafka` | Enables building of [`kafka` sink][docs.sinks.kafka]. Requires `rdkafka-plain` or `rdkafka-cmake` feature to be also enabled. | -| `sinks-logdna` | Enables building of [`logdna` sink][docs.sinks.logdna]. | -| `sinks-loki` | Enables building of [`loki` sink][docs.sinks.loki]. | -| `sinks-new_relic_logs` | Enables building of [`new_relic_logs` sink][docs.sinks.new_relic_logs]. | -| `sinks-papertrail` | Enables building of [`papertrail` sink][docs.sinks.papertrail]. | -| `sinks-prometheus` | Enables building of [`prometheus` sink][docs.sinks.prometheus]. | -| `sinks-pulsar` | Enables building of [`pulsar` sink][docs.sinks.pulsar]. | -| `sinks-sematext_logs` | Enables building of [`sematext_logs` sink][docs.sinks.sematext_logs]. | -| `sinks-sematext_metrics` | Enables building of [`sematext_metrics` sink][docs.sinks.sematext_metrics]. | -| `sinks-socket` | Enables building of [`socket` sink][docs.sinks.socket]. | -| `sinks-splunk_hec` | Enables building of [`splunk_hec` sink][docs.sinks.splunk_hec]. | -| `sinks-statsd` | Enables building of [`statsd` sink][docs.sinks.statsd]. | -| `sinks-vector` | Enables building of [`vector` sink][docs.sinks.vector]. | - -

-
- -[docs.setup.configuration]: /docs/setup/configuration/ -[docs.from_archives]: /docs/setup/installation/manual/from-archives/ -[docs.global-options#data_dir]: /docs/reference/global-options/#data_dir -[docs.glossary#buffer]: /docs/meta/glossary/#buffer -[docs.package_managers]: /docs/setup/installation/package-managers/ -[docs.platforms]: /docs/setup/installation/platforms/ -[docs.sinks.aws_cloudwatch_logs]: /docs/reference/sinks/aws_cloudwatch_logs/ -[docs.sinks.aws_cloudwatch_metrics]: /docs/reference/sinks/aws_cloudwatch_metrics/ -[docs.sinks.aws_kinesis_firehose]: /docs/reference/sinks/aws_kinesis_firehose/ -[docs.sinks.aws_kinesis_streams]: /docs/reference/sinks/aws_kinesis_streams/ -[docs.sinks.aws_s3]: /docs/reference/sinks/aws_s3/ -[docs.sinks.azure_monitor_logs]: /docs/reference/sinks/azure_monitor_logs/ -[docs.sinks.blackhole]: /docs/reference/sinks/blackhole/ -[docs.sinks.clickhouse]: /docs/reference/sinks/clickhouse/ -[docs.sinks.console]: /docs/reference/sinks/console/ -[docs.sinks.datadog_logs]: /docs/reference/sinks/datadog_logs/ -[docs.sinks.datadog_metrics]: /docs/reference/sinks/datadog_metrics/ -[docs.sinks.elasticsearch]: /docs/reference/sinks/elasticsearch/ -[docs.sinks.file]: /docs/reference/sinks/file/ -[docs.sinks.gcp_cloud_storage]: /docs/reference/sinks/gcp_cloud_storage/ -[docs.sinks.gcp_pubsub]: /docs/reference/sinks/gcp_pubsub/ -[docs.sinks.gcp_stackdriver_logs]: /docs/reference/sinks/gcp_stackdriver_logs/ -[docs.sinks.honeycomb]: /docs/reference/sinks/honeycomb/ -[docs.sinks.http]: /docs/reference/sinks/http/ -[docs.sinks.humio_logs]: /docs/reference/sinks/humio_logs/ -[docs.sinks.humio_metrics]: /docs/reference/sinks/humio_metrics/ -[docs.sinks.influxdb_logs]: /docs/reference/sinks/influxdb_logs/ -[docs.sinks.influxdb_metrics]: /docs/reference/sinks/influxdb_metrics/ -[docs.sinks.kafka]: /docs/reference/sinks/kafka/ -[docs.sinks.logdna]: /docs/reference/sinks/logdna/ -[docs.sinks.loki]: /docs/reference/sinks/loki/ -[docs.sinks.new_relic_logs]: /docs/reference/sinks/new_relic_logs/ -[docs.sinks.papertrail]: /docs/reference/sinks/papertrail/ -[docs.sinks.prometheus]: /docs/reference/sinks/prometheus/ -[docs.sinks.pulsar]: /docs/reference/sinks/pulsar/ -[docs.sinks.sematext_logs]: /docs/reference/sinks/sematext_logs/ -[docs.sinks.sematext_metrics]: /docs/reference/sinks/sematext_metrics/ -[docs.sinks.socket]: /docs/reference/sinks/socket/ -[docs.sinks.splunk_hec]: /docs/reference/sinks/splunk_hec/ -[docs.sinks.statsd]: /docs/reference/sinks/statsd/ -[docs.sinks.vector]: /docs/reference/sinks/vector/ -[docs.sources.apache_metrics]: /docs/reference/sources/apache_metrics/ -[docs.sources.aws_kinesis_firehose]: /docs/reference/sources/aws_kinesis_firehose/ -[docs.sources.docker_logs]: /docs/reference/sources/docker_logs/ -[docs.sources.file]: /docs/reference/sources/file/ -[docs.sources.generator]: /docs/reference/sources/generator/ -[docs.sources.host_metrics]: /docs/reference/sources/host_metrics/ -[docs.sources.http]: /docs/reference/sources/http/ -[docs.sources.journald]: /docs/reference/sources/journald/ -[docs.sources.kafka]: /docs/reference/sources/kafka/ -[docs.sources.kubernetes_logs]: /docs/reference/sources/kubernetes_logs/ -[docs.sources.heroku_logs]: /docs/reference/sources/heroku_logs/ -[docs.sources.prometheus]: /docs/reference/sources/prometheus/ -[docs.sources.socket]: /docs/reference/sources/socket/ -[docs.sources.splunk_hec]: /docs/reference/sources/splunk_hec/ -[docs.sources.statsd]: /docs/reference/sources/statsd/ -[docs.sources.stdin]: /docs/reference/sources/stdin/ -[docs.sources.syslog]: /docs/reference/sources/syslog/ -[docs.sources.vector]: /docs/reference/sources/vector/ -[docs.transforms.add_fields]: /docs/reference/transforms/add_fields/ -[docs.transforms.add_tags]: /docs/reference/transforms/add_tags/ -[docs.transforms.ansi_stripper]: /docs/reference/transforms/ansi_stripper/ -[docs.transforms.aws_cloudwatch_logs_subscription_parser]: /docs/reference/transforms/aws_cloudwatch_logs_subscription_parser/ -[docs.transforms.aws_ec2_metadata]: /docs/reference/transforms/aws_ec2_metadata/ -[docs.transforms.coercer]: /docs/reference/transforms/coercer/ -[docs.transforms.concat]: /docs/reference/transforms/concat/ -[docs.transforms.dedupe]: /docs/reference/transforms/dedupe/ -[docs.transforms.filter]: /docs/reference/transforms/filter/ -[docs.transforms.geoip]: /docs/reference/transforms/geoip/ -[docs.transforms.grok_parser]: /docs/reference/transforms/grok_parser/ -[docs.transforms.json_parser]: /docs/reference/transforms/json_parser/ -[docs.transforms.log_to_metric]: /docs/reference/transforms/log_to_metric/ -[docs.transforms.logfmt_parser]: /docs/reference/transforms/logfmt_parser/ -[docs.transforms.lua]: /docs/reference/transforms/lua/ -[docs.transforms.merge]: /docs/reference/transforms/merge/ -[docs.transforms.metric_to_log]: /docs/reference/transforms/metric_to_log/ -[docs.transforms.reduce]: /docs/reference/transforms/reduce/ -[docs.transforms.regex_parser]: /docs/reference/transforms/regex_parser/ -[docs.transforms.remap]: /docs/reference/transforms/remap/ -[docs.transforms.remove_fields]: /docs/reference/transforms/remove_fields/ -[docs.transforms.remove_tags]: /docs/reference/transforms/remove_tags/ -[docs.transforms.rename_fields]: /docs/reference/transforms/rename_fields/ -[docs.transforms.sample]: /docs/reference/transforms/sample/ -[docs.transforms.split]: /docs/reference/transforms/split/ -[docs.transforms.route]: /docs/reference/transforms/route/ -[docs.transforms.tag_cardinality_limit]: /docs/reference/transforms/tag_cardinality_limit/ -[docs.transforms.tokenizer]: /docs/reference/transforms/tokenizer/ -[docs.transforms.wasm]: /docs/reference/transforms/wasm/ -[urls.jemalloc]: https://github.com/jemalloc/jemalloc -[urls.leveldb]: https://github.com/google/leveldb -[urls.librdkafka]: https://github.com/edenhill/librdkafka -[urls.openssl]: https://www.openssl.org/ -[urls.perl_windows]: https://www.perl.org/get.html#win32 -[urls.rustup]: https://rustup.rs -[urls.zlib]: https://www.zlib.net diff --git a/docs/manual/setup/transformation.md b/docs/manual/setup/transformation.md deleted file mode 100644 index 15c7ef33f1b2f..0000000000000 --- a/docs/manual/setup/transformation.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -title: Transformation -description: Use Vector to transform observability data ---- - -Vector provides multiple [transforms][docs.transforms] that you can use to -modify your observability data as it passes through your Vector -[topology][docs.topology]. - -The transform that you will likely use most often is the [`remap`][docs.remap] -transform, which uses a single-purpose data transformation language called -[Vector Remap Language][docs.vrl] (VRL for short) to define event -transformation logic. VRL has several features that should make it your first -choice for transforming data in Vector: - -* It offers a wide range of observability-data-specific - [functions][docs.vrl.funcs] that map directly to observability use cases. -* It's built for the very specific use case of working with Vector logs and - metrics, which means that it has no extraneous functionality, its data model - maps directly to Vector's internal data model, and its performance comes quite - close to native [Rust][urls.rust] performance. -* The VRL compiler built into Vector performs several compile-time checks to - ensure that your VRL code is sound, meaning no dead code, no unhandled errors, - and no type mismatches. - -In cases where VRL doesn't fit your use case, Vector also offers two [runtime -transforms](#runtime-transforms) that offer a bit more flexibility than VRL but -also come with downsides (listed below) that should always be borne in mind. - -> If your observability use case isn't covered by VRL, please feel *very* -> welcome to [open an issue][urls.issue] describing your use case. The Vector -> team will follow up with potential solutions and workarounds or, in some -> cases, updates to VRL that directly address your needs. - -## Transforming data using VRL - -Let's jump straight into an example of using VRL to modify some data. We'll -create a simple topology consisting of three components: - -1. A [`generator`][docs.generator] source produces random [Syslog][urls.syslog] - messages at a rate of 10 per second. -2. A [`remap`][docs.remap] transform uses VRL to parse incoming Syslog lines - into named fields (`severity`, `timestamp`, etc.). -3. A [`console`][docs.console] sink pipes the output of the topology to stdout, - so that we can see the results on the command line. - -This configuration defines that topology: - -```toml title="vector.toml" -[sources.logs] - type = "generator" - format = "syslog" - interval = 0.1 - -[transforms.modify] - type = "remap" - inputs = ["logs"] - source = ''' - # Parse Syslog input. The "!" means that the script should abort on error. - . = parse_syslog!(.message) - ''' - -[sinks.out] - type = "console" - inputs = ["modify"] - encoding.codec = "json" -``` - -> Although we're using [TOML][urls.toml] for the configuration here, Vector also -> supports JSON and YAML. - -To start Vector using this topology: - -```bash -vector --config-toml /etc/vector/vector.toml -``` - -You should see lines like this emitted via stdout (formatted for readability -here): - -```json -{ - "appname": "authsvc", - "facility": "daemon", - "hostname": "acmecorp.biz", - "message": "#hugops to everyone who has to deal with this", - "msgid": "ID486", - "procid": 5265, - "severity": "notice", - "timestamp": "2021-01-19T18:16:40.027Z" -} -``` - -So far, we've gotten Vector to *parse* the Syslog data but we're not yet -*modifying* that data. So let's update the `source` script of our `remap` -transform to make some ad hoc transformations: - -```toml -[transforms.modify] - type = "remap" - inputs = ["logs"] - source = ''' - . = parse_syslog!(.message) - - # Convert the timestamp to a Unix timestamp, aborting on error - .timestamp = to_unix_timestamp!(.timestamp) - - # Remove the "facility" and "procid" fields - del(.facility); del(.procid) - - # Replace the "msgid" field with a unique ID - .msgid = uuid_v4() - - # If the log message contains the phrase "Great Scott!", set the new field - # "critical" to true, otherwise set it to false. If the "contains" function - # errors, log the error (instead of aborting the script, as above). - if (is_critical, err = contains(.message, "Great Scott!"); err != null) { - log(err, level: "error") - } - - .critical = is_critical - ''' -``` - -A few things to notice about this script: - -* Any errors thrown by VRL functions must be handled. Were we to neglect to - handle the potential error thrown by the `parse_syslog` function, for example, - the VRL compiler would provide a very specific warning and Vector wouldn't - start up. -* VRL has language constructs like variables, `if` statements, comments, and - logging. -* The `.` acts as a sort of "container" for the event data. `.` by itself refers - to the root event, while you can use [paths][docs.vrl.paths] like `.foo`, - `.foo[0]`, `.foo.bar`, `.foo.bar[0]`, and so on to reference subfields, array - indices, and more. - -If you stop and restart Vector, you should see log lines like this (again -reformatted for readability): - -```json -{ - "appname": "authsvc", - "hostname": "acmecorp.biz", - "message": "Great Scott! We're never gonna reach 88 mph with the flux capacitor in its current state!", - "msgid": "4e4437b6-13e8-43b3-b51e-c37bd46de490", - "severity": "notice", - "timestamp": 1611080200, - "critical": true -} -``` - -And that's it! We've successfully created a Vector topology that transforms -every event that passes through it. If you'd like to know more about VRL, we -recommend checking out the following documentation: - -* A full list listing of [VRL functions][docs.vrl.funcs] -* [VRL examples][docs.vrl.examples] -* The [VRL specification][docs.vrl.spec], which describes things VRL's syntax - and type system in great detail - -## Runtime transforms - -If VRL doesn't cover your use case—and that should happen rarely—Vector also -offers two **runtime transforms** that you can use instead of VRL: - -* The [`wasm`][docs.wasm] transform enables you to run compiled - [WebAssembly][urls.wasm] code using a Wasm runtime inside of Vector. -* The [`lua`][docs.lua] transform enables you to run [Lua][urls.lua] code - that you can include directly in your Vector configuration - -Both of the runtime transforms provide maximal flexibility because they enable -you to use full-fledged programming languages right inside of Vector. But we -recommend using these transforms only when truly necessary, for several reasons: - -1. The runtime transforms make it all too easy to write scripts that are slow, - error prone, and hard to read. -2. Both require you to add a coding/testing/debugging workflow to using Vector, - which is worth the effort if there's no other way to satisfy your use case - but best avoided if possible. -3. Both impose a performance penalty vis-à-vis VRL. Wasm does tend to be faster - than Lua, but Wasm is more difficult to use given the need to add a - Wasm compilation step to your Vector workflow. - -[docs.console]: /docs/reference/transforms/console -[docs.generator]: /docs/reference/transforms/generator -[docs.lua]: /docs/reference/transforms/lua -[docs.remap]: /docs/reference/transforms/remap -[docs.topology]: /docs/about/under-the-hood/architecture/topology-model -[docs.transforms]: /docs/reference/transforms -[docs.vrl]: /docs/reference/vrl -[docs.vrl.examples]: /docs/reference/vrl/examples -[docs.vrl.funcs]: /docs/reference/vrl/functions -[docs.vrl.paths]: /docs/reference/vrl/spec/#path -[docs.vrl.spec]: /docs/reference/vrl/spec -[docs.wasm]: /docs/reference/transforms/wasm -[urls.issue]: https://github.com/timberio/vector/issues/new?assignees=&labels=type%3A+enhancement&template=enhancement.md&title= -[urls.lua]: https://www.lua.org -[urls.rust]: https://rust-lang.org -[urls.syslog]: https://en.wikipedia.org/wiki/Syslog -[urls.toml]: https://toml.io -[urls.wasm]: https://webassembly.org diff --git a/docs/reference.cue b/docs/reference.cue deleted file mode 100644 index d5e2f26b97fa2..0000000000000 --- a/docs/reference.cue +++ /dev/null @@ -1,507 +0,0 @@ -package metadata - -import "strings" - -_values: { - current_timestamp: "2020-10-10T17:07:36.452332Z" - local_host: "my-host.local" - remote_host: "34.33.222.212" - instance: "vector:9598" -} - -// `#Any` allows for any value. -#Any: *_ | {[_=string]: #Any} - -#Arch: "ARM64" | "ARMv7" | "x86_64" - -// `#CompressionAlgorithm` specified data compression algorithm. -// -// * `none` - compression is not applied -// * `gzip` - gzip compression applied -#CompressionAlgorithm: "none" | "gzip" | "lz4" | "snappy" | "zstd" - -#CompressionLevel: "none" | "fast" | "default" | "best" | >=0 & <=9 - -#Date: =~"^\\d{4}-\\d{2}-\\d{2}" - -// `#DeliveryStatus` documents the delivery guarantee. -// -// * `at_least_once` - The event will be delivered at least once and -// could be delivered more than once. -// * `best_effort` - We will make a best effort to deliver the event, -// but the event is not guaranteed to be delivered. -#DeliveryStatus: "at_least_once" | "best_effort" - -// `#DeploymentRoles` clarify when a component should be used under -// certain deployment contexts. -// -// * `daemon` - Vector is installed as a single process on the host. -// * `sidecar` - Vector is installed alongside each process it is -// monitoring. Therefore, there might be multiple Vector processes -// on the host. -// * `aggregator` - Vector receives data from one or more upstream -// sources, typically over a network protocol. -#DeploymentRole: "aggregator" | "daemon" | "sidecar" - -// `#DevelopmentStatus` documents the development status of the component. -// -// * `beta` - The component is early in its development cylce and the -// API and reliability are not settled. -// * `stable` - The component is production ready. -// * `deprecated` - The component will be removed in a future version. -#DevelopmentStatus: "beta" | "stable" | "deprecated" - -#EncodingCodec: "json" | "ndjson" | "text" - -#Endpoint: { - description: string - responses: [Code=string]: { - description: string - } -} - -#Endpoints: [Path=string]: { - DELETE?: #Endpoint - GET?: #Endpoint - POST?: #Endpoint - PUT?: #Endpoint -} - -// `enum` restricts the value to a set of values. -// -// enum: { -// json: "Encodes the data via application/json" -// text: "Encodes the data via text/plain" -// } -#Enum: [Name=_]: string - -#Event: { - {log?: #LogEvent} | - {metric?: #MetricEvent} -} - -// `#EventType` represents one of Vector's supported event types. -// -// * `log` - log event -// * `metric` - metric event -#EventType: "log" | "metric" - -#Fields: [Name=string]: #Fields | *_ - -#Interface: { - {binary: #InterfaceBinary} | - {ffi: {}} | - {file_system: #InterfaceFileSystem} | - {socket: #InterfaceSocket} | - {stdin: {}} | - {stdout: {}} -} - -#InterfaceBinary: { - name: string - permissions?: #Permissions -} - -#InterfaceFileSystem: { - directory: string -} - -#InterfaceSocket: { - api?: { - title: string - url: string - } - direction: "incoming" | "outgoing" - - if direction == "outgoing" { - network_hops?: uint8 - permissions?: #Permissions - } - - if direction == "incoming" { - port: uint16 - } - - protocols: [#Protocol, ...#Protocol] - socket?: string - ssl: "disabled" | "required" | "optional" -} - -#HowItWorks: [Name=string]: { - #Subsection: { - title: string - body: string - } - - name: Name - title: string - body: string | null - sub_sections?: [#Subsection, ...#Subsection] -} - -#LogEvent: { - ... -} - -#Map: [string]: string - -#MetricEvent: { - kind: "incremental" | "absolute" - name: string - namespace?: string - tags: [Name=string]: string - timestamp?: string - {counter: #MetricEventCounter} | - {distribution: #MetricEventDistribution} | - {gauge: #MetricEventGauge} | - {histogram: #MetricEventHistogram} | - {set: #MetricEventSet} | - {summary: #MetricEventSummary} -} - -#MetricEventCounter: { - value: float -} - -#MetricEventDistribution: { - samples: [#DistributionSample, ...#DistributionSample] - statistic: "histogram" | "summary" -} - -#DistributionSample: { - value: float - rate: uint -} - -#MetricEventGauge: { - value: float -} - -#MetricEventHistogram: { - buckets: [#HistogramBucket, ...#HistogramBucket] - count: uint - sum: float -} - -#HistogramBucket: { - upper_limit: float - count: uint -} - -#MetricEventSet: { - values: [string, ...string] -} - -#MetricEventSummary: { - quantiles: [#SummaryQuantile, ...#SummaryQuantile] - count: int - sum: float -} - -#SummaryQuantile: { - upper_limit: float - value: float -} - -#MetricTags: [Name=string]: { - name: Name - default?: string - description: string - enum?: #Enum - examples?: [string, ...string] - required: bool -} - -#MetricType: "counter" | "distribution" | "gauge" | "histogram" | "summary" - -#Object: {[_=string]: #Any} - -#OperatingSystemFamily: "Linux" | "macOS" | "Windows" - -#Permissions: { - unix: { - group: string - } -} - -#Protocol: "http" | "tcp" | "udp" | "unix" - -#Service: { - // `description` describes the components with a single paragraph. - // It is used for SEO purposes and should be full of relevant keywords. - description?: =~"[.]$" - - name: string - thing: string - url: string - versions: string | null - - setup?: #SetupSteps - - connect_to?: [_=string]: { - logs?: { - description?: string - setup: #SetupSteps - } - - metrics?: { - description?: string - setup: #SetupSteps - } - } -} - -#SetupStep: { - title: string - description?: string - notes?: [...string] - - detour?: { - url: string - } - - vector?: { - configure: #Object - } - - if detour == _|_ && vector == _|_ { - description: string - } -} - -#SetupSteps: [#SetupStep, ...#SetupStep] - -#Schema: [Name=string]: #SchemaField & {name: Name} - -#SchemaField: { - // `category` allows you to group options into categories. - // - // For example, all of the `*_key` options might be grouped under the - // "Context" category to make generated configuration examples easier to - // read. - category?: string - - if type.object != _|_ { - category: strings.ToTitle(name) - } - - // `description` describes the option in a succinct fashion. Usually 1 to - // 2 sentences. - description: string - - // `groups` groups options into categories. - // - // For example, the `influxdb_logs` sink supports both v1 and v2 of Influxdb - // and relevant options are placed in those groups. - groups?: [string, ...string] - - // `name` sets the name for this option. It is automatically set for you - // via the key you use. - name: string - - // `relevant_when` clarifies when an option is relevant. - // - // For example, if an option depends on the value of another option you can - // specify that here. We accept a string to allow for the expression of - // complex requirements. - // - // relevant_when: 'strategy = "fingerprint"' - // relevant_when: 'strategy = "fingerprint" or "inode"' - relevant_when?: string - - // `required` requires the option to be set. - required: bool - - // `warnings` warn the user about some aspects of the option. - // - // For example, the `tls.verify_hostname` option has a warning about - // reduced security if the option is disabled. - warnings: [...string] - - if !required { - // `common` specifes that the option is commonly used. It will bring the - // option to the top of the documents, surfacing it from other - // less common, options. - common: bool - } - - // `sort` sorts the option, otherwise options will be sorted alphabetically. - sort?: int8 - - // `types` sets the option's value type. External tagging is used since - // each type has its own set of fields. - type: #Type & {_args: "required": required} -} - -#TargetTriples: { - "aarch64-unknown-linux-gnu": bool - "aarch64-unknown-linux-musl": bool - "armv7-unknown-linux-gnueabihf": bool - "armv7-unknown-linux-musleabihf": bool - "x86_64-apple-darwin": bool - "x86_64-pc-windows-msv": bool - "x86_64-unknown-linux-gnu": bool - "x86_64-unknown-linux-musl": bool -} - -#Timestamp: =~"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{6}Z" - -#Type: { - _args: { - arrays: true - required: bool - } - let Args = _args - - // `*` represents a wildcard type. - // - // For example, the `sinks.http.headers.*` option allows for arbitrary - // key/value pairs. - {"array": #TypeArray & {_args: required: Args.required}} | - #TypePrimitive -} - -#TypePrimitive: { - _args: { - arrays: true - required: bool - } - let Args = _args - - // `*` represents a wildcard type. - // - // For example, the `sinks.http.headers.*` option allows for arbitrary - // key/value pairs. - {"*": {}} | - {"bool": #TypeBool & {_args: required: Args.required}} | - {"float": #TypeFloat & {_args: required: Args.required}} | - {"object": #TypeObject & {_args: required: Args.required}} | - {"string": #TypeString & {_args: required: Args.required}} | - {"timestamp": #TypeTimestamp & {_args: required: Args.required}} | - {"uint": #TypeUint & {_args: required: Args.required}} -} - -#TypeArray: { - _args: required: bool - let Args = _args - - if !Args.required { - // `default` sets the default value. - default: [...] | null - } - - // Set `required` to `true` to force disable defaults. Defaults should - // be specified on the array level and not the type level. - items: type: #TypePrimitive & {_args: required: true} -} - -#TypeBool: { - _args: required: bool - let Args = _args - - if !Args.required { - // `default` sets the default value. - default: bool | null - } -} - -#TypeFloat: { - _args: required: bool - let Args = _args - - if !Args.required { - // `default` sets the default value. - default: float | null - } - - // `examples` clarify values through examples. This should be used - // when examples cannot be derived from the `default` or `enum` - // options. - examples?: [float, ...float] -} - -#TypeObject: { - // `examples` clarify values through examples. This should be used - // when examples cannot be derived from the `default` or `enum` - // options. - examples: [#Object] | *[] - - // `options` represent the child options for this option. - options: #Schema -} - -#TypeString: { - _args: required: bool - let Args = _args - - if !Args.required { - // `default` sets the default value. - default: string | null - } - - // `enum` restricts the value to a set of values. - // - // enum: { - // json: "Encodes the data via application/json" - // text: "Encodes the data via text/plain" - // } - enum?: #Enum - - examples?: [...string] - - if Args.required && enum != _|_ { - // `examples` demonstrates example values. This should be used when - // examples cannot be derived from the `default` or `enum` options. - examples: [string, ...string] | *[ - for k, v in enum { - k - }, - ] - } - - syntax: "file_system_path" | "field_path" | "literal" | "template" | "regex" | "remap_boolean_expression" | "remap_program" | "strftime" -} - -#TypeTimestamp: { - _args: required: bool - let Args = _args - - if !Args.required { - // `default` sets the default value. - default: #Timestamp | null - } - - // `examples` clarify values through examples. This should be used - // when examples cannot be derived from the `default` or `enum` - // options. - examples: [_values.current_timestamp] -} - -#TypeUint: { - _args: required: bool - let Args = _args - - if !Args.required { - // `default` sets the default value. - default: uint | null - } - - // `examples` clarify values through examples. This should be used - // when examples cannot be derived from the `default` or `enum` - // options. - examples?: [uint, ...uint] - - // `unit` clarifies the value's unit. While this should be included - // as the suffix in the name, this helps to explicitly clarify that. - unit: #Unit | null -} - -#Unit: "bytes" | "events" | "milliseconds" | "requests" | "seconds" - -components: _ -configuration: _ -data_model: _ -installation: _ -process: _ -releases: _ -remap: _ diff --git a/docs/reference/api.cue b/docs/reference/api.cue deleted file mode 100644 index c2960c8bd173e..0000000000000 --- a/docs/reference/api.cue +++ /dev/null @@ -1,107 +0,0 @@ -package metadata - -// These sources produce JSON providing a structured representation of the -// Vector GraphQL API - -api: { - description: !="" - playground_url: !="" - schema_json_url: !="" - configuration: #Schema - endpoints: #Endpoints -} - -api: { - description: """ - The Vector [GraphQL](\(urls.graphql)) API allows you to interact with a - running Vector instance, enabling introspection and management of - Vector in real-time. - """ - playground_url: "https://playground.vector.dev:8686/playground" - schema_json_url: "https://github.com/timberio/vector/blob/master/lib/vector-api-client/graphql/schema.json" - configuration: { - enabled: { - common: true - type: bool: default: false - required: false - description: "Whether the GraphQL API is enabled for this Vector instance." - } - address: { - common: true - required: false - type: string: { - default: "127.0.0.1:8686" - examples: ["0.0.0.0:8686", "localhost:1234"] - syntax: "literal" - } - description: """ - The network address to which the API should bind. If you're running - Vector in a Docker container, make sure to bind to `0.0.0.0`. Otherwise - the API will not be exposed outside the container. - """ - } - playground: { - common: false - required: false - type: bool: default: true - description: """ - Whether the [GraphQL Playground](\(urls.graphql_playground)) is enabled - for the API. The Playground is accessible via the `/playground` endpoint - of the address set using the `bind` parameter. - """ - } - } - - endpoints: { - "/graphql": { - POST: { - description: """ - Main endpoint for receiving and processing - GraphQL queries. - """ - responses: { - "200": { - description: """ - The query has been processed. GraphQL returns 200 - regardless if the query was successful or not. This - is due to the fact that queries can partially fail. - Please check for the `errors` key to determine if - there were any errors in your query. - """ - } - } - } - } - "/health": { - GET: { - description: """ - Healthcheck endpoint. Useful to verify that - Vector is up and running. - """ - responses: { - "200": { - description: "Vector is initialized and running." - } - } - } - } - "/playground": { - GET: { - description: """ - A bundled GraphQL playground that allows you - to explore the available queries and manually - run queries. - - We offer a [public playground](\(playground_url)) - that you can explore without hosting your own - Vector instance. - """ - responses: { - "200": { - description: "Vector is initialized and running." - } - } - } - } - } -} diff --git a/docs/reference/cli.cue b/docs/reference/cli.cue deleted file mode 100644 index f505f3e6069a2..0000000000000 --- a/docs/reference/cli.cue +++ /dev/null @@ -1,402 +0,0 @@ -package metadata - -// These sources produce JSON providing a structured representation of the -// Vector CLI (commands, flags, etc.) -_default_flags: { - "help": { - _short: "h" - description: "Prints help information" - } - "version": { - _short: "V" - description: "Prints version information" - } -} - -cli: { - #Args: [Arg=string]: { - description: !="" - name: Arg - type: #ArgType - default?: string | [...string] - } - - #ArgType: "string" | "list" - - #Commands: [Command=string]: { - description: !="" - name: Command - flags?: #Flags - options?: #Options - args?: #Args - } - - #Flags: [Flag=string]: { - flag: "--\(Flag)" - description: string - env_var?: string - name: Flag - - if _short != _|_ { - short: "-\(_short)" - } - - _short: string - } - - #Options: [Option=string]: { - option: "--\(Option)" - default?: string | int - description: string - enum?: #Enum - name: Option - type: #OptionType - env_var?: string - example?: string - required: bool | *false - - if default == _|_ { - required: true - } - - if _short != _|_ { - short: "-\(_short)" - } - - _short: !="" - - if enum != _|_ { - type: "enum" - } - } - - #OptionType: "string" | "integer" | "enum" - - name: !="" - flags: #Flags - options: #Options - commands: #Commands -} - -cli: { - name: "vector" - - flags: _default_flags & { - "quiet": { - _short: "q" - description: """ - Reduce detail of internal logging. Repeat to reduce further. Overrides - `--verbose` - """ - } - "require-healthy": { - _short: "r" - description: "Exit on startup if any sinks fail healthchecks" - env_var: "VECTOR_REQUIRE_HEALTHY" - } - "verbose": { - _short: "v" - description: "Enable more detailed logging. Repeat to reduce further. Overrides `--verbose`" - } - "watch-config": { - _short: "w" - description: "Watch for changes in the configuration file, and reload accordingly" - env_var: "VECTOR_WATCH_CONFIG" - } - } - - options: { - "color": { - description: "Control when ANSI terminal formatting is used." - default: "auto" - enum: { - always: "Enable ANSI terminal formatting always." - auto: "Detect ANSI terminal formatting and enable if supported." - never: "Disable ANSI terminal formatting." - } - } - "config": { - _short: "c" - description: """ - Read configuration from one or more files. Wildcard paths are - supported. If zero files are specified the default config path - `/etc/vector/vector.toml` will be targeted. - TOML, YAML and JSON file formats are supported. - The format to interpret the file with is determined from - the file extension (.toml, .yaml, .json). - We will fallback to TOML if we are unable to detect - a supported format. - """ - type: "string" - default: "/etc/vector/vector.toml" - env_var: "VECTOR_CONFIG" - } - "config-toml": { - description: """ - Read configuration from one or more files. Wildcard paths are - supported. TOML file format is assumed. - """ - type: "string" - env_var: "VECTOR_CONFIG_TOML" - } - "config-json": { - description: """ - Read configuration from one or more files. Wildcard paths are - supported. JSON file format is assumed. - """ - type: "string" - env_var: "VECTOR_CONFIG_JSON" - } - "config-yaml": { - description: """ - Read configuration from one or more files. Wildcard paths are - supported. YAML file format is assumed. - """ - type: "string" - env_var: "VECTOR_CONFIG_YAML" - } - "threads": { - _short: "t" - description: """ - Number of threads to use for processing (default is number of - available cores) - """ - type: "integer" - env_var: "VECTOR_THREADS" - } - "log-format": { - description: "Set the logging format [default: text]" - default: "text" - enum: { - json: "Output Vector's logs as JSON." - text: "Output Vector's logs as text." - } - } - } - - commands: { - "generate": { - description: "Generate a Vector configuration containing a list of components" - - flags: _default_flags & { - "fragment": { - _short: "f" - description: "Whether to skip the generation of global fields" - } - } - - options: { - "file": { - description: "Generate config as a file" - type: "string" - example: "/etc/vector/my-config.toml" - } - } - - args: { - pipeline: { - description: "Pipeline expression, e.g. `stdin/json_parser,add_fields/console`" - type: "string" - } - } - } - - "help": { - description: "Prints this message or the help of the given subcommand(s)" - } - - "list": { - description: "List available components, then exit" - - flags: _default_flags - - options: { - "format": { - description: "Format the list in an encoding schema" - default: "text" - enum: { - avro: "Output components in Apache Avro format" - json: "Output components as JSON" - text: "Output components as text" - } - } - } - } - - "test": { - description: """ - Run Vector config unit tests, then exit. This command is experimental and - therefore subject to change. For guidance on how to write unit tests check - out: https://vector.dev/docs/setup/guides/unit-testing/ - """ - - options: { - "config-toml": { - description: """ - Test configuration from one or more files. Wildcard paths are - supported. TOML file format is assumed. - """ - type: "string" - env_var: "VECTOR_CONFIG_TOML" - } - "config-json": { - description: """ - Test configuration from one or more files. Wildcard paths are - supported. JSON file format is assumed. - """ - type: "string" - env_var: "VECTOR_CONFIG_JSON" - } - "config-yaml": { - description: """ - Test configuration from one or more files. Wildcard paths are - supported. YAML file format is assumed. - """ - type: "string" - env_var: "VECTOR_CONFIG_YAML" - } - } - - args: { - paths: _paths_arg & { - description: """ - Any number of Vector config files to test. If none are specified - the default config path `/etc/vector/vector.toml` will be targeted - """ - } - } - } - - "top": { - description: """ - Display topology and metrics in the console, for a local or remote Vector - instance - """ - - flags: _default_flags & { - "human-metrics": { - _short: "h" - description: """ - Humanize metrics, using numeric suffixes - e.g. 1,100 = 1.10 k, - 1,000,000 = 1.00 M - """ - } - } - - options: { - "refresh-interval": { - _short: "i" - description: "How often the screen refreshes (in milliseconds)" - type: "integer" - default: 500 - } - "url": { - _short: "u" - description: "The URL for the GraphQL endpoint of the running Vector instance" - type: "string" - } - } - } - - "validate": { - description: "Validate the target config, then exit" - - flags: _default_flags & { - "no-environment": { - _short: "ne" - description: """ - Disables environment checks. That includes component - checks and health checks - """ - } - "deny-warnings": { - _short: "d" - description: "Fail validation on warnings" - } - } - - options: { - "config-toml": { - description: """ - Any number of Vector config files to validate. - TOML file format is assumed. - """ - type: "string" - } - "config-json": { - description: """ - Any number of Vector config files to validate. - JSON file format is assumed. - """ - type: "string" - } - "config-yaml": { - description: """ - Any number of Vector config files to validate. - YAML file format is assumed. - """ - type: "string" - } - } - - args: { - paths: _paths_arg & { - description: """ - Any number of Vector config files to validate. If none are specified - the default config path `/etc/vector/vector.toml` will be targeted - """ - } - } - } - - "vrl": { - description: "Vector Remap Language CLI" - - flags: _default_flags & { - "print-object": { - _short: "o" - description: """ - Print the (modified) object, instead of the result of the final - expression. - - The same result can be achieved by using `.` as the final expression. - """ - } - } - - options: { - "input": { - _short: "i" - description: """ - File containing the object(s) to manipulate. Leave empty to use stdin. - """ - type: "string" - } - - "program": { - _short: "p" - description: """ - File containing the program to execute. Can be used instead of `PROGRAM`. - """ - type: "string" - } - } - - args: { - program: { - description: #""" - The program to execute. For example, `".foo = true"` sets the object's `foo` - field to `true`. - """# - type: "string" - } - } - } - } - - // Helpers - _paths_arg: { - type: "list" - default: "/etc/vector/vector.toml" - } -} diff --git a/docs/reference/components.cue b/docs/reference/components.cue deleted file mode 100644 index 604433b8bb604..0000000000000 --- a/docs/reference/components.cue +++ /dev/null @@ -1,1016 +0,0 @@ -package metadata - -components: { - // `#Classes` represent various `#Components` classifications. - #Classes: { - _args: kind: string - let Args = _args - - // `commonly_used` specifies if the component is commonly used or not. - // Setting this to `true` will surface the component from other, - // less commonly used, components. - commonly_used: bool - - if Args.kind == "source" || Args.kind == "sink" { - delivery: #DeliveryStatus - } - - if Args.kind == "source" { - // `deployment_roles` clarify when the component should be used under - // different deployment contexts. - deployment_roles: [...#DeploymentRole] - } - development: #DevelopmentStatus - - // `egress_method` documents how the component outputs events. - egress_method: #EgressMethod - - if Args.kind == "sink" { - // `service_providers` specify the service providers that support - // and host this service. This helps users find relevant sinks. - // - // For example, "AWS" is a service provider for many services, and - // a user on AWS can use this to filter for AWS supported - // components. - service_providers: [string, ...string] | *[] - } - - stateful: bool - } - - #Component: { - // `kind` specified the component kind. This is set automatically. - kind: #ComponentKind - let Kind = kind - - installation?: { - platform_name: string | null - } - - configuration: #Schema - - // `description` describes the components with a single paragraph. - // It is used for SEO purposes and should be full of relevant keywords. - description?: =~"[.]$" - - env_vars: #EnvVars - - // `alias` is used to register a component's former name when it - // undergoes a name change. - alias?: !="" - - // `type` is the component identifier. This is set automatically. - type: string - - // `classes` represent the various classifications for this component - classes: #Classes & {_args: kind: Kind} - - // `examples` demonstrates various ways to use the component using an - // input, output, and example configuration. - #ExampleConfig: { - title: string - context?: string - "configuration": { - ... - for k, v in configuration { - "\( k )"?: _ | *null - } - } - - if Kind == "source" { - input: string - } - - if Kind != "source" { - input: #Event | [#Event, ...#Event] - } - - if Kind == "sink" { - output: string - } - - if Kind != "sink" { - output: #Event | [#Event, ...#Event] | null - } - - notes?: string - } - - examples?: [#ExampleConfig, ...#ExampleConfig] - - // `features` describes the various supported features of the component. - // Setting these helps to reduce boilerplate. - // - // For example, the `tls` feature will automatically add the appropriate - // `tls` options and `how_it_works` sections. - features: #Features & {_args: {egress_method: classes.egress_method, kind: Kind}} - - // `how_it_works` contain sections that further describe the component's - // behavior. This is like a mini-manual for the component and should help - // answer any obvious questions the user might have. Options can link - // to these sections for deeper explanations of behavior. - how_it_works: #HowItWorks - - if Kind != "source" { - input: #Input - } - - if Kind != "sink" { - // `output` documents output of the component. This is very important - // as it communicate which events and fields are emitted. - output: #Output - } - - // `support` communicates the varying levels of support of the component. - support: #Support & {_args: kind: Kind} - - // `title` is the human friendly title for the component. - // - // For example, the `http` sink has a `HTTP` title. - title: string - - // Platform-specific policies, e.g. AWS IAM policies, that are - // required or recommended when using the component. - permissions?: iam: [#IAM, ...#IAM] - - // Telemetry produced by the component - telemetry: metrics: #MetricOutput - } - - // `#ComponentKind` represent the kind of component. - #ComponentKind: "sink" | "source" | "transform" - - #Components: [Type=string]: #Component & { - type: Type - } - - // `#EgressMethod` specified how a component outputs events. - // - // * `batch` - one or more events at a time - // * `dynamic` - can switch between batch and stream based on configuration. - // * `expose` - exposes data, ex: prometheus_exporter sink - // * `stream` - one event at a time - #EgressMethod: "batch" | "dynamic" | "expose" | "stream" - - #EnvVars: #Schema & {[Type=string]: { - common: true - required: false - }} - - #Features: { - _args: { - egress_method: string - kind: string - } - let Args = _args - - if Args.kind == "source" { - collect?: #FeaturesCollect - generate?: #FeaturesGenerate - multiline: #FeaturesMultiline - encoding?: #FeaturesEncoding - receive?: #FeaturesReceive - } - - if Args.kind == "transform" { - convert?: #FeaturesConvert - enrich?: #FeaturesEnrich - filter?: #FeaturesFilter - parse?: #FeaturesParse - program?: #FeaturesProgram - reduce?: #FeaturesReduce - route?: #FeaturesRoute - sanitize?: #FeaturesSanitize - shape?: #FeaturesShape - } - - if Args.kind == "sink" { - // `buffer` describes how the component buffers data. - buffer: { - enabled: bool | string - } - - // `healtcheck` notes if a component offers a healthcheck on boot. - healthcheck: { - enabled: bool - } - - exposes?: #FeaturesExpose - send?: #FeaturesSend & {_args: Args} - } - - descriptions: [Name=string]: string - } - - #FeaturesCollect: { - checkpoint: { - enabled: bool - } - - from?: { - service: #Service - interface?: #Interface - } - - tls?: #FeaturesTLS & {_args: {mode: "connect"}} - } - - #FeaturesConvert: { - } - - #FeaturesEnrich: { - from: service: { - name: string - url: string - versions: string | null - } - } - - #FeaturesExpose: { - tls: #FeaturesTLS & {_args: {mode: "accept"}} - - for: { - service: #Service - interface?: #Interface - } - } - - #FeaturesFilter: { - } - - #FeaturesGenerate: { - } - - #FeaturesSendBufferBytes: { - enabled: bool - relevant_when?: string - } - - #FeaturesReceiveBufferBytes: { - enabled: bool - relevant_when?: string - } - - #FeaturesKeepalive: { - enabled: bool - } - - #FeaturesMultiline: { - enabled: bool - } - - #FeaturesEncoding: { - enabled: bool - } - - #FeaturesParse: { - format: { - name: string - url: string | null - versions: string | null - } - } - - #FeaturesProgram: { - runtime: #Runtime - } - - #FeaturesReceive: { - from?: { - service: #Service - interface?: #Interface - } - - keepalive?: #FeaturesKeepalive - - receive_buffer_bytes?: #FeaturesReceiveBufferBytes - - tls: #FeaturesTLS & {_args: {mode: "accept"}} - } - - #FeaturesReduce: { - } - - #FeaturesRoute: { - } - - #FeaturesSanitize: { - } - - #FeaturesShape: { - } - - #FeaturesSend: { - _args: { - egress_method: string - kind: string - } - let Args = _args - - if Args.egress_method == "batch" || Args.egress_method == "dynamic" { - // `batch` describes how the component batches data. This is only - // relevant if a component has an `egress_method` of "batch". - batch: { - enabled: bool - common: bool - max_bytes: uint | null - max_events: uint | null - timeout_secs: uint16 | null - } - } - - // `compression` describes how the component compresses data. - compression: { - enabled: bool - - if enabled == true { - default: #CompressionAlgorithm - algorithms: [#CompressionAlgorithm, ...#CompressionAlgorithm] - levels: [#CompressionLevel, ...#CompressionLevel] - } - } - - // `encoding` describes how the component encodes data. - encoding: { - enabled: bool - - if enabled { - codec: { - enabled: bool - - if enabled { - default: #EncodingCodec | null - enum: [#EncodingCodec, ...#EncodingCodec] | null - } - } - } - } - - send_buffer_bytes?: #FeaturesSendBufferBytes - - keepalive?: #FeaturesKeepalive - - // `request` describes how the component issues and manages external - // requests. - request: { - enabled: bool - - if enabled { - adaptive_concurrency: bool | *true - concurrency: uint8 | *5 - rate_limit_duration_secs: uint8 - rate_limit_num: uint16 - retry_initial_backoff_secs: uint8 - retry_max_duration_secs: uint8 - timeout_secs: uint8 - headers: bool - } - } - - // `tls` describes if the component secures network communication - // via TLS. - tls: #FeaturesTLS & {_args: {mode: "connect"}} - - to?: { - service: #Service - interface?: #Interface - } - } - - #FeaturesTLS: { - _args: { - mode: "accept" | "connect" - } - let Args = _args - enabled: bool - - if enabled { - can_enable: bool - can_verify_certificate: bool - if Args.mode == "connect" { - can_verify_hostname: bool - } - enabled_default: bool - } - } - - #Input: { - logs: bool - metrics: #MetricInput | null - } - - #LogOutput: [Name=string]: { - description: string - name: Name - fields: #Schema - } - - #MetricInput: { - counter: *false | bool - distribution: *false | bool - gauge: *false | bool - histogram: *false | bool - set: *false | bool - summary: *false | bool - } - - #MetricOutput: [Name=string]: { - description: string - relevant_when?: string - tags: #MetricTags - name: Name - type: #MetricType - default_namespace: string - } - - #Output: { - logs?: #LogOutput - metrics?: #MetricOutput - } - - #IAM: { - #Policy: { - #RequiredFor: "write" | "healthcheck" - - _action: !="" - required_for: *["write"] | [#RequiredFor, ...#RequiredFor] - docs_url: !="" - required_when?: !="" - - if platform == "aws" { - docs_url: "https://docs.aws.amazon.com/\(_docs_tag)/latest/APIReference/API_\(_action).html" - action: "\(_service):\(_action)" - } - if platform == "gcp" { - docs_url: "https://cloud.google.com/iam/docs/permissions-reference" - action: "\(_service).\(_action)" - } - } - - platform: "aws" | "gcp" - policies: [#Policy, ...#Policy] - _service: !="" // The slug of the service, e.g. "s3" or "firehose" - // _docs_tag is used to ed to construct URLs, e.g. "AmazonCloudWatchLogs" in - // https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogStreams.html - _docs_tag: *_service | !="" - } - - #Runtime: { - name: string - url: string - version: string | null - } - - #Support: { - _args: kind: string - - // `requirements` describes any external requirements that the component - // needs to function properly. - // - // For example, the `journald` source requires the presence of the - // `journalctl` binary. - requirements: [...string] | null // Allow for empty list - - // `targets` describes which targets this component is available on. - targets: #TargetTriples - - // `warnings` describes any warnings the user should know about the - // component. - // - // For example, the `grok_parser` might offer a performance warning - // since the `regex_parser` and other transforms are faster. - warnings: [...string] | null // Allow for empty list - - // `notices` communicates useful information to the user that is neither - // a requirement or a warning. - // - // For example, the `lua` transform offers a Lua version notice that - // communicate which version of Lua is embedded. - notices: [...string] | null // Allow for empty list - } - - sources: #Components - transforms: #Components - sinks: #Components - - {[Kind=string]: [Name=string]: { - kind: string - let Kind = kind - - classes: #Classes & {_args: kind: Kind} - - configuration: { - _tls_accept: { - _args: { - can_enable: bool - can_verify_certificate: bool | *true - enabled_default: bool - } - let Args = _args - - common: false - description: "Configures the TLS options for incoming connections." - required: false - type: object: options: { - if Args.can_enable { - enabled: { - common: false - description: "Require TLS for incoming connections. If this is set, an identity certificate is also required." - required: false - type: bool: default: Args.enabled_default - } - } - - ca_file: { - common: false - description: "Absolute path to an additional CA certificate file, in DER or PEM format (X.509), or an in-line CA certificate in PEM format." - required: false - type: string: { - default: null - examples: ["/path/to/certificate_authority.crt"] - syntax: "literal" - } - } - crt_file: { - common: false - description: "Absolute path to a certificate file used to identify this server, in DER or PEM format (X.509) or PKCS#12, or an in-line certificate in PEM format. If this is set, and is not a PKCS#12 archive, `key_file` must also be set. This is required if `enabled` is set to `true`." - required: false - type: string: { - default: null - examples: ["/path/to/host_certificate.crt"] - syntax: "literal" - } - } - key_file: { - common: false - description: "Absolute path to a private key file used to identify this server, in DER or PEM format (PKCS#8), or an in-line private key in PEM format." - required: false - type: string: { - default: null - examples: ["/path/to/host_certificate.key"] - syntax: "literal" - } - } - key_pass: { - common: false - description: "Pass phrase used to unlock the encrypted key file. This has no effect unless `key_file` is set." - required: false - type: string: { - default: null - examples: ["${KEY_PASS_ENV_VAR}", "PassWord1"] - syntax: "literal" - } - } - - if Args.can_verify_certificate { - verify_certificate: { - common: false - description: "If `true`, Vector will require a TLS certificate from the connecting host and terminate the connection if the certificate is not valid. If `false` (the default), Vector will not request a certificate from the client." - required: false - type: bool: default: false - } - } - } - } - - _tls_connect: { - _args: { - can_enable: bool - can_verify_certificate: bool | *true - can_verify_hostname: bool | *false - enabled_default: bool - } - let Args = _args - - common: false - description: "Configures the TLS options for incoming connections." - required: false - type: object: options: { - if Args.can_enable { - enabled: { - common: true - description: "Enable TLS during connections to the remote." - required: false - type: bool: default: Args.enabled_default - } - } - - ca_file: { - common: false - description: "Absolute path to an additional CA certificate file, in DER or PEM format (X.509), or an inline CA certificate in PEM format." - required: false - type: string: { - default: null - examples: ["/path/to/certificate_authority.crt"] - syntax: "literal" - } - } - crt_file: { - common: true - description: "Absolute path to a certificate file used to identify this connection, in DER or PEM format (X.509) or PKCS#12, or an inline certificate in PEM format. If this is set and is not a PKCS#12 archive, `key_file` must also be set." - required: false - type: string: { - default: null - examples: ["/path/to/host_certificate.crt"] - syntax: "literal" - } - } - key_file: { - common: true - description: "Absolute path to a private key file used to identify this connection, in DER or PEM format (PKCS#8), or an inline private key in PEM format. If this is set, `crt_file` must also be set." - required: false - type: string: { - default: null - examples: ["/path/to/host_certificate.key"] - syntax: "literal" - } - } - key_pass: { - common: false - description: "Pass phrase used to unlock the encrypted key file. This has no effect unless `key_file` is set." - required: false - type: string: { - default: null - examples: ["${KEY_PASS_ENV_VAR}", "PassWord1"] - syntax: "literal" - } - } - - if Args.can_verify_certificate { - verify_certificate: { - common: false - description: "If `true` (the default), Vector will validate the TLS certificate of the remote host." - required: false - type: bool: default: true - } - } - - if Args.can_verify_hostname { - verify_hostname: { - common: false - description: "If `true` (the default), Vector will validate the configured remote host name against the remote host's TLS certificate. Do NOT set this to `false` unless you understand the risks of not verifying the remote hostname." - required: false - type: bool: default: true - } - } - } - } - - _http_auth: { - _args: { - password_example: string - username_example: string - } - let Args = _args - - common: false - description: "Configures the authentication strategy." - required: false - type: object: options: { - password: { - description: "The basic authentication password." - required: true - warnings: [] - type: string: { - examples: [Args.password_example, "password"] - syntax: "literal" - } - } - strategy: { - description: "The authentication strategy to use." - required: true - warnings: [] - type: string: { - enum: { - basic: "The [basic authentication strategy](\(urls.basic_auth))." - bearer: "The bearer token authentication strategy." - } - syntax: "literal" - } - } - token: { - description: "The token to use for bearer authentication" - required: true - warnings: [] - type: string: { - examples: ["${API_TOKEN}", "xyz123"] - syntax: "literal" - } - } - user: { - description: "The basic authentication user name." - required: true - warnings: [] - type: string: { - examples: [Args.username_example, "username"] - syntax: "literal" - } - } - } - } - - _http_basic_auth: { - common: false - description: "Options for HTTP Basic Authentication." - required: false - warnings: [] - type: object: { - examples: [] - options: { - username: { - description: "The basic authentication user name." - required: true - warnings: [] - type: string: { - examples: ["${HTTP_USERNAME}", "username"] - syntax: "literal" - } - } - password: { - description: "The basic authentication password." - required: true - warnings: [] - type: string: { - examples: ["${HTTP_PASSWORD}", "password"] - syntax: "literal" - } - } - } - } - } - - _types: { - common: true - description: """ - Key/value pairs representing mapped log field names and types. This is used to - coerce log fields from strings into their proper types. The available types are - listed in the **Types** list below. - - Timestamp coercions need to be prefaced with `timestamp|`, for example - `\"timestamp|%F\"`. Timestamp specifiers can use either of the following: - - 1. One of the built-in-formats listed in the **Timestamp Formats** table below. - 2. The [time format specifiers](\(urls.chrono_time_formats)) from Rust's - `chrono` library. - - ### Types - - * `array` - * `bool` - * `bytes` - * `float` - * `int` - * `map` - * `null` - * `timestamp` (see the table below for formats) - - ### Timestamp Formats - - Format | Description | Example - :------|:------------|:------- - `%F %T` | `YYYY-MM-DD HH:MM:SS` | `2020-12-01 02:37:54` - `%v %T` | `DD-Mmm-YYYY HH:MM:SS` | `01-Dec-2020 02:37:54` - `%FT%T` | [ISO 8601](\(urls.iso_8601))\\[RFC 3339](\(urls.rfc_3339)) format without time zone | `2020-12-01T02:37:54` - `%a, %d %b %Y %T` | [RFC 822](\(urls.rfc_822))/[2822](\(urls.rfc_2822)) without time zone | `Tue, 01 Dec 2020 02:37:54` - `%a %d %b %T %Y` | [`date`](\(urls.date)) command output without time zone | `Tue 01 Dec 02:37:54 2020` - `%a %b %e %T %Y` | [ctime](\(urls.ctime)) format | `Tue Dec 1 02:37:54 2020` - `%s` | [UNIX](\(urls.unix_timestamp)) timestamp | `1606790274` - `%FT%TZ` | [ISO 8601](\(urls.iso_8601))/[RFC 3339](\(urls.rfc_3339)) UTC | `2020-12-01T09:37:54Z` - `%+` | [ISO 8601](\(urls.iso_8601))/[RFC 3339](\(urls.rfc_3339)) UTC with time zone | `2020-12-01T02:37:54-07:00` - `%a %d %b %T %Z %Y` | [`date`](\(urls.date)) command output with time zone | `Tue 01 Dec 02:37:54 PST 2020` - `%a %d %b %T %z %Y`| [`date`](\(urls.date)) command output with numeric time zone | `Tue 01 Dec 02:37:54 -0700 2020` - `%a %d %b %T %#z %Y` | [`date`](\(urls.date)) command output with numeric time zone (minutes can be missing or present) | `Tue 01 Dec 02:37:54 -07 2020` - - **Note**: the examples in this table are for 54 seconds after 2:37 am on December 1st, 2020 in Pacific Standard Time. - """ - required: false - warnings: [] - - type: object: { - examples: [ - { - status: "int" - duration: "float" - success: "bool" - timestamp_iso8601: "timestamp|%F" - timestamp_custom: "timestamp|%a %b %e %T %Y" - timestamp_unix: "timestamp|%F %T" - parent: {"child": "int"} - }, - ] - options: {} - } - } - - if Kind != "source" { - inputs: { - description: """ - A list of upstream [source](\(urls.vector_sources)) or [transform](\(urls.vector_transforms)) - IDs. Wildcards (`*`) are supported but _must_ be the last character in the ID. - - See [configuration](\(urls.vector_configuration)) for more info. - """ - required: true - sort: -1 - type: array: items: type: string: { - examples: [ - "my-source-or-transform-id", - "prefix-*", - ] - syntax: "literal" - } - } - } - - "type": { - description: "The component type. This is a required field for all components and tells Vector which component to use." - required: true - sort: -2 - "type": string: { - enum: #Enum | *{ - "\(Name)": "The type of this component." - } - syntax: "literal" - } - } - } - - features: { - descriptions: { - if features.buffer != _|_ { - if features.buffer.enabled == true { - buffer: "Buffers data in-memory or on-disk for performance and durability." - } - } - - if features.collect != _|_ { - if features.collect.from != _|_ { - collect_context: "Enriches data with useful \(features.collect.from.service.name) context." - } - - if features.collect.checkpoint.enabled != _|_ { - checkpoint: "Efficiently collects data and checkpoints read positions to ensure data is not lost between restarts." - } - - if features.collect.tls.enabled != _|_ { - tls_collect: "Securely collects data via Transport Layer Security (TLS)." - } - } - - if features.multiline != _|_ { - if features.multiline.enabled == true { - multiline: "Merges multi-line logs into one event." - } - } - - if features.receive != _|_ { - if features.receive.from != _|_ { - receive_context: "Enriches data with useful \(features.receive.from.service.name) context." - } - - if features.receive.keepalive.enabled != _|_ { - keepalive: "Supports TCP keepalive for efficient resource use and reliability." - } - - if features.receive.tls.enabled != _|_ { - tls_receive: "Securely receives data via Transport Layer Security (TLS)." - } - } - - if features.send != _|_ { - if features.send.batch != _|_ { - if features.send.batch.enabled { - batch: "Batches data to maximize throughput." - } - } - - if features.send.compression.enabled != _|_ { - compress: "Compresses data to optimize bandwidth." - } - - if features.send.keepalive.enabled != _|_ { - keepalive: "Supports TCP keepalive for efficient resource use and reliability." - } - - if features.send.request.enabled != _|_ { - request: "Automatically retries failed requests, with backoff." - } - - if features.send.tls.enabled != _|_ { - tls_send: "Securely transmits data via Transport Layer Security (TLS)." - } - } - } - } - - if Kind == "source" || Kind == "transform" { - output: { - _passthrough_counter: { - description: data_model.schema.metric.type.object.options.counter.description - tags: { - "*": { - description: "Any tags present on the metric." - examples: [_values.local_host] - required: false - } - } - type: "counter" - default_namespace: "vector" - } - - _passthrough_distribution: { - description: data_model.schema.metric.type.object.options.distribution.description - tags: { - "*": { - description: "Any tags present on the metric." - examples: [_values.local_host] - required: false - } - } - type: "distribution" - default_namespace: "vector" - } - - _passthrough_gauge: { - description: data_model.schema.metric.type.object.options.gauge.description - tags: { - "*": { - description: "Any tags present on the metric." - examples: [_values.local_host] - required: false - } - } - type: "gauge" - default_namespace: "vector" - } - - _passthrough_histogram: { - description: data_model.schema.metric.type.object.options.histogram.description - tags: { - "*": { - description: "Any tags present on the metric." - examples: [_values.local_host] - required: false - } - } - type: "gauge" - default_namespace: "vector" - } - - _passthrough_set: { - description: data_model.schema.metric.type.object.options.set.description - tags: { - "*": { - description: "Any tags present on the metric." - examples: [_values.local_host] - required: false - } - } - type: "gauge" - default_namespace: "vector" - } - - _passthrough_summary: { - description: data_model.schema.metric.type.object.options.summary.description - tags: { - "*": { - description: "Any tags present on the metric." - examples: [_values.local_host] - required: false - } - } - type: "gauge" - default_namespace: "vector" - } - } - } - - if Kind == "transform" { - telemetry: metrics: { - // Default metrics for each transform - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - } - } - - how_it_works: { - state: { - title: "State" - - if classes.stateful == true { - body: """ - This component is stateful, meaning its behavior changes based on previous inputs (events). - State is not preserved across restarts, therefore state-dependent behavior will reset between - restarts and depend on the inputs (events) received since the most recent restart. - """ - } - - if classes.stateful == false { - body: """ - This component is stateless, meaning its behavior is consistent across each input. - """ - } - } - } - }} -} diff --git a/docs/reference/components/aws.cue b/docs/reference/components/aws.cue deleted file mode 100644 index 6e77b33040357..0000000000000 --- a/docs/reference/components/aws.cue +++ /dev/null @@ -1,192 +0,0 @@ -package metadata - -components: _aws: { - configuration: { - auth: { - common: false - description: "Options for the authentication strategy." - required: false - warnings: [] - type: object: { - examples: [] - options: { - access_key_id: { - category: "Auth" - common: false - description: "The AWS access key id. Used for AWS authentication when communicating with AWS services." - required: false - type: string: { - default: null - examples: ["AKIAIOSFODNN7EXAMPLE"] - syntax: "literal" - } - } - secret_access_key: { - category: "Auth" - common: false - description: "The AWS secret access key. Used for AWS authentication when communicating with AWS services." - required: false - type: string: { - default: null - examples: ["wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"] - syntax: "literal" - } - } - assume_role: { - category: "Auth" - common: false - description: "The ARN of an [IAM role](\(urls.aws_iam_role)) to assume at startup." - required: false - type: string: { - default: null - examples: ["arn:aws:iam::123456789098:role/my_role"] - syntax: "literal" - } - } - } - } - } - - endpoint: { - common: false - description: "Custom endpoint for use with AWS-compatible services. Providing a value for this option will make `region` moot." - relevant_when: "region = null" - required: false - type: string: { - default: null - examples: ["127.0.0.0:5000/path/to/service"] - syntax: "literal" - } - } - - region: { - description: "The [AWS region](\(urls.aws_regions)) of the target service. If `endpoint` is provided it will override this value since the endpoint includes the region." - required: true - relevant_when: "endpoint = null" - type: string: { - examples: ["us-east-1"] - syntax: "literal" - } - } - } - - env_vars: { - AWS_ACCESS_KEY_ID: { - description: "The AWS access key id. Used for AWS authentication when communicating with AWS services." - type: string: { - default: null - examples: ["AKIAIOSFODNN7EXAMPLE"] - syntax: "literal" - } - } - - AWS_CONFIG_FILE: { - description: "Specifies the location of the file that the AWS CLI uses to store configuration profiles." - type: string: { - default: "~/.aws/config" - syntax: "literal" - } - } - - AWS_CREDENTIAL_EXPIRATION: { - description: "Expiration time in RFC 3339 format. If unset, credentials won't expire." - type: string: { - default: null - examples: ["1996-12-19T16:39:57-08:00"] - syntax: "literal" - } - } - - AWS_DEFAULT_REGION: { - description: "The default [AWS region](\(urls.aws_regions))." - relevant_when: "endpoint = null" - type: string: { - default: null - examples: ["/path/to/credentials.json"] - syntax: "literal" - } - } - - AWS_PROFILE: { - description: "Specifies the name of the CLI profile with the credentials and options to use. This can be the name of a profile stored in a credentials or config file." - type: string: { - default: "default" - examples: ["my-custom-profile"] - syntax: "literal" - } - } - - AWS_ROLE_SESSION_NAME: { - description: "Specifies a name to associate with the role session. This value appears in CloudTrail logs for commands performed by the user of this profile." - type: string: { - default: null - examples: ["vector-session"] - syntax: "literal" - } - } - - AWS_SECRET_ACCESS_KEY: { - description: "The AWS secret access key. Used for AWS authentication when communicating with AWS services." - type: string: { - default: null - examples: ["wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"] - syntax: "literal" - } - } - - AWS_SHARED_CREDENTIALS_FILE: { - description: "Specifies the location of the file that the AWS CLI uses to store access keys." - type: string: { - default: "~/.aws/credentials" - syntax: "literal" - } - } - - AWS_SESSION_TOKEN: { - description: "The AWS session token. Used for AWS authentication when communicating with AWS services." - type: string: { - default: null - examples: ["/path/to/credentials.json"] - syntax: "literal" - } - } - } - - how_it_works: { - aws_authentication: { - title: "AWS Authentication" - body: """ - Vector checks for AWS credentials in the following order: - - 1. Options [`access_key_id`](#access_key_id) and [`secret_access_key`](#secret_access_key). - 2. Environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`. - 3. The [`credential_process` command](\(urls.aws_credential_process)) in the AWS config file. (usually located at `~/.aws/config`) - 4. The [AWS credentials file](\(urls.aws_credentials_file)). (usually located at `~/.aws/credentials`) - 5. The [IAM instance profile](\(urls.iam_instance_profile)). (will only work if running on an EC2 instance with an instance profile/role) - - If credentials are not found the [healtcheck](#healthchecks) will fail and an - error will be [logged][docs.monitoring#logs]. - """ - sub_sections: [ - { - title: "Obtaining an access key" - body: """ - In general, we recommend using instance profiles/roles whenever possible. In - cases where this is not possible you can generate an AWS access key for any user - within your AWS account. AWS provides a [detailed guide](\(urls.aws_access_keys)) on - how to do this. Such created AWS access keys can be used via [`access_key_id`](#access_key_id) - and [`secret_access_key`](#secret_access_key) options. - """ - }, - { - title: "Assuming roles" - body: """ - Vector can assume an AWS IAM role via the [`assume_role`](#assume_role) option. This is an - optional setting that is helpful for a variety of use cases, such as cross - account access. - """ - }, - ] - } - } -} diff --git a/docs/reference/components/kafka.cue b/docs/reference/components/kafka.cue deleted file mode 100644 index c1a753d7eebcf..0000000000000 --- a/docs/reference/components/kafka.cue +++ /dev/null @@ -1,103 +0,0 @@ -package metadata - -components: _kafka: { - features: { - collect: from: { - service: services.kafka - interface: { - socket: { - api: { - title: "Kafka protocol" - url: urls.kafka_protocol - } - direction: "incoming" - port: 9093 - protocols: ["tcp"] - ssl: "optional" - } - } - } - - send: to: { - service: services.kafka - interface: { - socket: { - api: { - title: "Kafka protocol" - url: urls.kafka_protocol - } - direction: "outgoing" - protocols: ["tcp"] - ssl: "optional" - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - bootstrap_servers: { - description: "A comma-separated list of host and port pairs that are the addresses of the Kafka brokers in a \"bootstrap\" Kafka cluster that a Kafka client connects to initially to bootstrap itself." - required: true - warnings: [] - type: string: { - examples: ["10.14.22.123:9092,10.14.23.332:9092"] - syntax: "literal" - } - } - librdkafka_options: { - common: false - description: "Advanced options. See [librdkafka documentation](\(urls.librdkafka_config)) for details.\n" - required: false - warnings: [] - type: object: { - examples: [ - { - "client.id": "${ENV_VAR}" - "fetch.error.backoff.ms": "1000" - "socket.send.buffer.bytes": "100" - }, - ] - options: {} - } - } - socket_timeout_ms: { - common: false - description: "Default timeout for network requests.\n" - required: false - warnings: [] - type: uint: { - default: 60000 - examples: [30000, 60000] - unit: "milliseconds" - } - } - } - - how_it_works: { - librdkafka: { - title: "librdkafka" - body: """ - The `kafka` sink uses [`librdkafka`](\(urls.librdkafka)) under the hood. This - is a battle-tested, high performance, and reliable library that facilitates - communication with Kafka. As Vector produces static MUSL builds, - this dependency is packaged with Vector, meaning you do not need to install it. - """ - } - } -} diff --git a/docs/reference/components/sinks.cue b/docs/reference/components/sinks.cue deleted file mode 100644 index 59f9faafda595..0000000000000 --- a/docs/reference/components/sinks.cue +++ /dev/null @@ -1,568 +0,0 @@ -package metadata - -import ( - "list" -) - -components: sinks: [Name=string]: { - kind: "sink" - - features: _ - - configuration: { - if features.send != _|_ && features.send.batch != _|_ { - if features.send.batch.enabled { - batch: { - common: features.send.batch.common - description: "Configures the sink batching behavior." - required: false - type: object: { - examples: [] - options: { - if features.send.batch.max_bytes != null { - max_bytes: { - common: true - description: "The maximum size of a batch, in bytes, before it is flushed." - required: false - type: uint: { - default: features.send.batch.max_bytes - unit: "bytes" - } - } - } - if features.send.batch.max_events != null { - max_events: { - common: true - description: "The maximum size of a batch, in events, before it is flushed." - required: false - type: uint: { - default: features.send.batch.max_events - unit: "events" - } - } - } - if features.send.batch.timeout_secs != null { - timeout_secs: { - common: true - description: "The maximum age of a batch before it is flushed." - required: false - type: uint: { - default: features.send.batch.timeout_secs - unit: "seconds" - } - } - } - } - } - } - } - } - - if features.buffer.enabled { - buffer: { - common: false - description: "Configures the sink specific buffer behavior." - required: false - type: object: { - examples: [] - options: { - max_events: { - common: true - description: "The maximum number of [events][docs.data-model] allowed in the buffer." - required: false - relevant_when: "type = \"memory\"" - type: uint: { - default: 500 - unit: "events" - } - } - max_size: { - description: "The maximum size of the buffer on the disk." - required: true - relevant_when: "type = \"disk\"" - type: uint: { - examples: [104900000] - unit: "bytes" - } - } - type: { - common: true - description: "The buffer's type and storage mechanism." - required: false - type: string: { - default: "memory" - enum: { - memory: "Stores the sink's buffer in memory. This is more performant, but less durable. Data will be lost if Vector is restarted forcefully." - disk: "Stores the sink's buffer on disk. This is less performant, but durable. Data will not be lost between restarts." - } - syntax: "literal" - } - } - when_full: { - common: false - description: "The behavior when the buffer becomes full." - required: false - type: string: { - default: "block" - enum: { - block: "Applies back pressure when the buffer is full. This prevents data loss, but will cause data to pile up on the edge." - drop_newest: "Drops new data as it's received. This data is lost. This should be used when performance is the highest priority." - } - syntax: "literal" - } - } - } - } - } - } - - if features.send != _|_ { - if features.send.compression.enabled { - compression: { - common: true - description: "The compression strategy used to compress the encoded event data before transmission." - required: false - type: string: { - default: features.send.compression.default - enum: { - if list.Contains(features.send.compression.algorithms, "none") { - none: "No compression." - syntax: "literal" - } - if list.Contains(features.send.compression.algorithms, "gzip") { - gzip: "[Gzip](\(urls.gzip)) standard DEFLATE compression." - } - } - syntax: "literal" - } - } - } - } - - if features.send != _|_ { - if features.send.encoding.enabled { - encoding: { - description: "Configures the encoding specific sink behavior." - required: true - type: object: options: { - if features.send.encoding.codec.enabled { - codec: { - description: "The encoding codec used to serialize the events before outputting." - required: true - type: string: { - examples: features.send.encoding.codec.enum - syntax: "literal" - } - } - } - - if features.healthcheck.enabled {except_fields: { - common: false - description: "Prevent the sink from encoding the specified labels." - required: false - type: array: { - default: null - items: type: string: { - examples: ["message", "parent.child"] - syntax: "field_path" - } - } - } - - only_fields: { - common: false - description: "Prevent the sink from encoding the specified labels." - required: false - type: array: { - default: null - items: type: string: { - examples: ["message", "parent.child"] - syntax: "field_path" - } - } - } - - timestamp_format: { - common: false - description: "How to format event timestamps." - required: false - type: string: { - default: "rfc3339" - enum: { - rfc3339: "Formats as a RFC3339 string" - unix: "Formats as a unix timestamp" - } - syntax: "literal" - } - } - } - } - } - } - } - - if features.healthcheck != _|_ { - if features.healthcheck.enabled { - healthcheck: { - common: true - description: "Health check options for the sink." - required: false - type: object: { - examples: [] - options: { - enabled: { - common: true - description: "Enables/disables the healthcheck upon Vector boot." - required: false - type: bool: default: true - } - } - } - } - } - } - - if features.send != _|_ { - if features.send.request.enabled { - request: { - common: false - description: "Configures the sink request behavior." - required: false - type: object: { - examples: [] - options: { - adaptive_concurrency: { - common: false - description: "Configure the adaptive concurrency algorithms. These values have been tuned by optimizing simulated results. In general you should not need to adjust these." - required: false - type: object: { - examples: [] - options: { - decrease_ratio: { - common: false - description: "The fraction of the current value to set the new concurrency limit when decreasing the limit. Valid values are greater than 0 and less than 1. Smaller values cause the algorithm to scale back rapidly when latency increases. Note that the new limit is rounded down after applying this ratio." - required: false - type: float: default: 0.9 - } - ewma_alpha: { - common: false - description: "The adaptive concurrency algorithm uses an exponentially weighted moving average (EWMA) of past RTT measurements as a reference to compare with the current RTT. This value controls how heavily new measurements are weighted compared to older ones. Valid values are greater than 0 and less than 1. Smaller values cause this reference to adjust more slowly, which may be useful if a service has unusually high response variability." - required: false - type: float: default: 0.7 - } - rtt_threshold_ratio: { - common: false - description: "When comparing the past RTT average to the current measurements, we ignore changes that are less than this ratio higher than the past RTT. Valid values are greater than or equal to 0. Larger values cause the algorithm to ignore larger increases in the RTT." - required: false - type: float: default: 0.05 - } - } - } - } - concurrency: { - common: true - if features.send.request.adaptive_concurrency { - description: "The maximum number of in-flight requests allowed at any given time, or \"adaptive\" to allow Vector to automatically set the limit based on current network and service conditions." - } - if !features.send.request.adaptive_concurrency { - description: "The maximum number of in-flight requests allowed at any given time." - } - required: false - type: uint: { - default: features.send.request.concurrency - unit: "requests" - } - } - rate_limit_duration_secs: { - common: true - description: "The time window, in seconds, used for the `rate_limit_num` option." - required: false - type: uint: { - default: features.send.request.rate_limit_duration_secs - unit: "seconds" - } - } - rate_limit_num: { - common: true - description: "The maximum number of requests allowed within the `rate_limit_duration_secs` time window." - required: false - type: uint: { - default: features.send.request.rate_limit_num - unit: null - } - } - retry_attempts: { - common: false - description: "The maximum number of retries to make for failed requests. The default, for all intents and purposes, represents an infinite number of retries." - required: false - type: uint: { - default: 18446744073709552000 - unit: null - } - } - retry_initial_backoff_secs: { - common: false - description: "The amount of time to wait before attempting the first retry for a failed request. Once, the first retry has failed the fibonacci sequence will be used to select future backoffs." - required: false - type: uint: { - default: features.send.request.retry_initial_backoff_secs - unit: "seconds" - } - } - retry_max_duration_secs: { - common: false - description: "The maximum amount of time, in seconds, to wait between retries." - required: false - type: uint: { - default: features.send.request.retry_max_duration_secs - unit: "seconds" - } - } - timeout_secs: { - common: true - description: "The maximum time a request can take before being aborted. It is highly recommended that you do not lower this value below the service's internal timeout, as this could create orphaned requests, pile on retries, and result in duplicate data downstream." - required: false - type: uint: { - default: features.send.request.timeout_secs - unit: "seconds" - } - } - - if features.send.request.headers { - headers: { - common: false - description: "Options for custom headers." - required: false - warnings: [] - type: object: { - examples: [ - { - "Authorization": "${HTTP_TOKEN}" - "X-Powered-By": "Vector" - }, - ] - options: {} - } - } - } - } - } - } - } - } - - if features.send != _|_ { - if features.send.send_buffer_size != _|_ { - send_buffer_bytes: { - common: false - description: "Configures the send buffer size using the `SO_SNDBUF` option on the socket." - required: false - type: uint: { - examples: [65536] - } - relevant_when: features.send.send_buffer_bytes.relevant_when - } - } - - if features.send.keepalive != _|_ { - keepalive: { - common: false - description: "Configures the TCP keepalive behavior for the connection to the sink." - required: false - type: object: { - examples: [] - options: { - time_secs: { - common: false - description: "The time a connection needs to be idle before sending TCP keepalive probes." - required: false - type: uint: { - default: null - unit: "seconds" - } - } - } - } - } - } - - if features.send.tls.enabled { - tls: configuration._tls_connect & {_args: { - can_enable: features.send.tls.can_enable - can_verify_certificate: features.send.tls.can_enable - can_verify_hostname: features.send.tls.can_verify_hostname - enabled_default: features.send.tls.enabled_default - }} - } - } - } - - how_it_works: { - if features.buffer.enabled { - if features.send != _|_ { - if features.send.batch != _|_ { - if features.send.batch.enabled { - buffers_batches: { - title: "Buffers & batches" - body: #""" - - - This component buffers & batches data as shown in the diagram above. You'll notice that Vector treats these concepts - differently, instead of treating them as global concepts, Vector treats them - as sink specific concepts. This isolates sinks, ensuring services disruptions - are contained and delivery guarantees are honored. - - *Batches* are flushed when 1 of 2 conditions are met: - - 1. The batch age meets or exceeds the configured `timeout_secs`. - 2. The batch size meets or exceeds the configured <% if component.options.batch.children.respond_to?(:max_size) %>`max_size`<% else %>`max_events`<% end %>. - - *Buffers* are controlled via the [`buffer.*`](#buffer) options. - """# - } - } - } - } - - if features.send == _|_ { - buffers: { - title: "Buffers" - body: """ - - - This component buffers events as shown in - the diagram above. This helps to smooth out data processing if the downstream - service applies backpressure. Buffers are controlled via the - [`buffer.*`](#buffer) options. - """ - } - } - } - - if features.healthcheck.enabled { - healthchecks: { - title: "Health checks" - body: """ - Health checks ensure that the downstream service is - accessible and ready to accept data. This check is performed - upon sink initialization. If the health check fails an error - will be logged and Vector will proceed to start. - """ - sub_sections: [ - { - title: "Require health checks" - body: """ - If you'd like to exit immediately upon a health - check failure, you can pass the - `--require-healthy` flag: - - ```bash - vector --config /etc/vector/vector.toml --require-healthy - ``` - """ - }, - { - title: "Disable health checks" - body: """ - If you'd like to disable health checks for this - sink you can set the `healthcheck` option to - `false`. - """ - }, - ] - } - } - - if features.send != _|_ { - if features.send.request.enabled { - partitioning: _ | *{ - title: "Partitioning" - body: """ - Vector supports dynamic configuration values through a simple - template syntax. If an option supports templating, it will be - noted with a badge and you can use event fields to create dynamic - values. For example: - - ```toml title="vector.toml" - [sinks.my-sink] - dynamic_option = "application={{ application_id }}" - ``` - - In the above example, the `application_id` for each event will be - used to partition outgoing data. - """ - } - } - } - - if features.send != _|_ { - if features.send.request.enabled { - rate_limits: { - title: "Rate limits & adapative concurrency" - body: null - sub_sections: [ - { - title: "Adaptive Request Concurrency (ARC)" - body: """ - Adaptive Requst Concurrency is a feature of Vector that does away - with static rate limits and automatically optimizes HTTP - concurrency limits based on downstream service responses. The - underlying mechanism is a feedback loop inspired by TCP congestion - control algorithms. Checkout the [announcement blog post](\(urls.adaptive_request_concurrency_post)), - - We highly recommend enabling this feature as it improves - performance and reliability of Vector and the systems it - communicates with. - - To enable, set the `request.concurrency` option to `adaptive`: - - ```toml title="vector.toml" - [sinks.my-sink] - request.concurrency = "adaptive" - ``` - """ - }, - { - title: "Static rate limits" - body: """ - If Adaptive Request Concurrency is not for you, you can manually - set static rate limits with the `request.rate_limit_duration_secs`, - `request.rate_limit_num`, and `request.concurrency` options: - - ```toml title="vector.toml" - [sinks.my-sink] - request.rate_limit_duration_secs = 1 - request.rate_limit_num = 10 - request.concurrency = 10 - ``` - """ - }, - ] - } - - retry_policy: { - title: "Retry policy" - body: """ - Vector will retry failed requests (status == 429, >= 500, and != 501). - Other responses will not be retried. You can control the number of - retry attempts and backoff rate with the `request.retry_attempts` and - `request.retry_backoff_secs` options. - """ - } - } - } - - if features.send != _|_ { - if features.send.tls.enabled { - transport_layer_security: { - title: "Transport Layer Security (TLS)" - body: """ - Vector uses [Openssl](\(urls.openssl)) for TLS protocols for it's - maturity. You can enable and adjust TLS behavior via the `tls.*` - options. - """ - } - } - } - } -} diff --git a/docs/reference/components/sinks/aws_cloudwatch.cue b/docs/reference/components/sinks/aws_cloudwatch.cue deleted file mode 100644 index e2ac3f58f0303..0000000000000 --- a/docs/reference/components/sinks/aws_cloudwatch.cue +++ /dev/null @@ -1,4 +0,0 @@ -package metadata - -components: sinks: _aws_cloudwatch: { -} diff --git a/docs/reference/components/sinks/aws_cloudwatch_logs.cue b/docs/reference/components/sinks/aws_cloudwatch_logs.cue deleted file mode 100644 index 4fbf87d37c529..0000000000000 --- a/docs/reference/components/sinks/aws_cloudwatch_logs.cue +++ /dev/null @@ -1,153 +0,0 @@ -package metadata - -components: sinks: aws_cloudwatch_logs: components._aws & { - title: "AWS Cloudwatch Logs" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["AWS"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 1048576 - max_events: 10000 - timeout_secs: 1 - } - compression: { - enabled: true - default: "none" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: { - enabled: true - adaptive_concurrency: false - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 30 - headers: false - } - tls: enabled: false - to: { - service: services.aws_cloudwatch_logs - - interface: { - socket: { - api: { - title: "AWS Cloudwatch logs API" - url: urls.aws_cloudwatch_logs_api - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - create_missing_group: { - common: true - description: "Dynamically create a [log group](\(urls.aws_cloudwatch_logs_group_name)) if it does not already exist. This will ignore `create_missing_stream` directly after creating the group and will create the first stream." - required: false - type: bool: default: true - } - create_missing_stream: { - common: true - description: "Dynamically create a [log stream](\(urls.aws_cloudwatch_logs_stream_name)) if it does not already exist." - required: false - type: bool: default: true - } - group_name: { - description: "The [group name](\(urls.aws_cloudwatch_logs_group_name)) of the target CloudWatch Logs stream." - required: true - type: string: { - examples: ["group-name", "{{ file }}"] - syntax: "template" - } - } - stream_name: { - description: "The [stream name](\(urls.aws_cloudwatch_logs_stream_name)) of the target CloudWatch Logs stream." - required: true - type: string: { - examples: ["{{ host }}", "%Y-%m-%d", "stream-name"] - syntax: "template" - } - } - } - - input: { - logs: true - metrics: null - } - - permissions: iam: [ - { - platform: "aws" - _service: "logs" - - policies: [ - { - _action: "CreateLogGroup" - required_when: "[`create_missing_group`](#create_missing_group) is set to `true`" - }, - { - _action: "CreateLogStream" - required_when: "[`create_missing_stream`](#create_missing_stream) is set to `true`" - }, - { - _action: "DescribeLogGroups" - required_for: ["healthcheck"] - }, - { - _action: "DescribeLogStreams" - }, - { - _action: "PutLogEvents" - }, - ] - }, - ] - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/sinks/aws_cloudwatch_metrics.cue b/docs/reference/components/sinks/aws_cloudwatch_metrics.cue deleted file mode 100644 index 766b4fb76b8ae..0000000000000 --- a/docs/reference/components/sinks/aws_cloudwatch_metrics.cue +++ /dev/null @@ -1,130 +0,0 @@ -package metadata - -components: sinks: aws_cloudwatch_metrics: components._aws & { - title: "AWS Cloudwatch Metrics" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["AWS"] - stateful: false - } - - features: { - buffer: enabled: false - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: null - max_events: 20 - timeout_secs: 1 - } - compression: { - enabled: true - default: "none" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: enabled: false - request: enabled: false - tls: enabled: false - to: { - service: services.aws_cloudwatch_metrics - - interface: { - socket: { - api: { - title: "AWS Cloudwatch metrics API" - url: urls.aws_cloudwatch_metrics_api - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - Gauge values are persisted between flushes. On Vector start up each - gauge is assumed to have zero, 0.0, value, that can be updated - explicitly by the consequent absolute, not delta, gauge observation, - or by delta increments/decrements. Delta gauges are considered an - advanced feature useful in a distributed setting, however they - should be used with care. - """, - ] - notices: [ - """ - CloudWatch Metrics types are organized not by their semantics, but - by storage properties: - - * Statistic Sets - * Data Points - - In Vector only the latter is used to allow lossless statistics - calculations on CloudWatch side. - """, - ] - } - - configuration: { - default_namespace: { - description: """ - A [namespace](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace) that will isolate different metrics from each other. - Used as a namespace for metrics that don't have it. - """ - required: true - warnings: [] - type: string: { - examples: ["service"] - syntax: "literal" - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: false - set: false - summary: false - } - } - - permissions: iam: [ - { - platform: "aws" - _service: "cloudwatch" - _docs_tag: "AmazonCloudWatch" - - policies: [ - { - _action: "PutMetricData" - required_for: ["healthcheck", "write"] - }, - ] - }, - ] -} diff --git a/docs/reference/components/sinks/aws_kinesis_firehose.cue b/docs/reference/components/sinks/aws_kinesis_firehose.cue deleted file mode 100644 index f3df0dd4901d5..0000000000000 --- a/docs/reference/components/sinks/aws_kinesis_firehose.cue +++ /dev/null @@ -1,118 +0,0 @@ -package metadata - -components: sinks: aws_kinesis_firehose: components._aws & { - title: "AWS Kinesis Firehose" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["AWS"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 4000000 - max_events: 500 - timeout_secs: 1 - } - compression: { - enabled: true - default: "none" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 30 - headers: false - } - tls: enabled: false - to: { - service: services.aws_kinesis_firehose - - interface: { - socket: { - api: { - title: "AWS Kinesis Firehose API" - url: urls.aws_kinesis_firehose_api - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - stream_name: { - description: "The [stream name](\(urls.aws_cloudwatch_logs_stream_name)) of the target Kinesis Firehose delivery stream." - required: true - warnings: [] - type: string: { - examples: ["my-stream"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - permissions: iam: [ - { - platform: "aws" - _service: "firehose" - - policies: [ - { - _action: "DescribeDeliveryStream" - required_for: ["healthcheck"] - }, - { - _action: "PutRecordBatch" - }, - ] - }, - ] -} diff --git a/docs/reference/components/sinks/aws_kinesis_streams.cue b/docs/reference/components/sinks/aws_kinesis_streams.cue deleted file mode 100644 index 164f2acf8ae2b..0000000000000 --- a/docs/reference/components/sinks/aws_kinesis_streams.cue +++ /dev/null @@ -1,175 +0,0 @@ -package metadata - -components: sinks: aws_kinesis_streams: components._aws & { - title: "AWS Kinesis Data Streams" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["AWS"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 5000000 - max_events: 500 - timeout_secs: 1 - } - compression: { - enabled: true - default: "none" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 30 - headers: false - } - tls: enabled: false - to: { - service: services.aws_kinesis_data_streams - - interface: { - socket: { - api: { - title: "AWS Kinesis Data Streams API" - url: urls.aws_kinesis_streams_api - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - partition_key_field: { - common: true - description: "The log field used as the Kinesis record's partition key value." - required: false - warnings: [] - type: string: { - default: null - examples: ["user_id"] - syntax: "literal" - } - } - stream_name: { - description: "The [stream name](\(urls.aws_cloudwatch_logs_stream_name)) of the target Kinesis Logs stream." - required: true - warnings: [] - type: string: { - examples: ["my-stream"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - partitioning: { - title: "Partitioning" - body: """ - By default, Vector issues random 16 byte values for each - [Kinesis record's partition key](\(urls.aws_kinesis_partition_key)), evenly - distributing records across your Kinesis partitions. Depending on your use case - this might not be sufficient since random distribution does not preserve order. - To override this, you can supply the `partition_key_field` option. This option - presents an alternate field on your event to use as the partition key value instead. - This is useful if you have a field already on your event, and it also pairs - nicely with the [`add_fields` transform][docs.transforms.add_fields]. - """ - sub_sections: [ - { - title: "Missing partition keys" - body: """ - Kenesis requires a value for the partition key and therefore if the key is - missing or the value is blank the event will be dropped and a - [`warning` level log event][docs.monitoring#logs] will be logged. As such, - the field specified in the `partition_key_field` option should always contain - a value. - """ - }, - { - title: "Partition keys that exceed 256 characters" - body: """ - If the value provided exceeds the maximum allowed length of 256 characters - Vector will slice the value and use the first 256 characters. - """ - }, - { - title: "Non-string partition keys" - body: """ - Vector will coerce the value into a string. - """ - }, - ] - } - } - - permissions: iam: [ - { - platform: "aws" - _service: "kinesis" - - policies: [ - { - _action: "DescribeStream" - required_for: ["healthcheck"] - }, - { - _action: "PutRecords" - }, - ] - }, - ] - - telemetry: metrics: { - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sinks/aws_s3.cue b/docs/reference/components/sinks/aws_s3.cue deleted file mode 100644 index 5ecc384f7090f..0000000000000 --- a/docs/reference/components/sinks/aws_s3.cue +++ /dev/null @@ -1,436 +0,0 @@ -package metadata - -components: sinks: aws_s3: components._aws & { - title: "AWS S3" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["AWS"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: true - max_bytes: 10000000 - max_events: null - timeout_secs: 300 - } - compression: { - enabled: true - default: "gzip" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["ndjson", "text"] - } - } - request: { - enabled: true - concurrency: 50 - rate_limit_duration_secs: 1 - rate_limit_num: 250 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 30 - headers: false - } - tls: enabled: false - to: { - service: services.aws_s3 - - interface: { - socket: { - api: { - title: "AWS S3 API" - url: urls.aws_s3_endpoints - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - acl: { - category: "ACL" - common: false - description: "Canned ACL to apply to the created objects. For more information, see [Canned ACL](\(urls.aws_s3_canned_acl))." - required: false - warnings: [] - type: string: { - default: null - enum: { - "private": "Owner gets `FULL_CONTROL`. No one else has access rights (default)." - "public-read": "Owner gets `FULL_CONTROL`. The AllUsers group gets `READ` access." - "public-read-write": "Owner gets `FULL_CONTROL`. The AllUsers group gets `READ` and `WRITE` access. Granting this on a bucket is generally not recommended." - "aws-exec-read": "Owner gets `FULL_CONTROL`. Amazon EC2 gets `READ` access to `GET` an Amazon Machine Image (AMI) bundle from Amazon S3." - "authenticated-read": "Owner gets `FULL_CONTROL`. The AuthenticatedUsers group gets `READ` access." - "bucket-owner-read": "Object owner gets `FULL_CONTROL`. Bucket owner gets `READ. access." - "bucket-owner-full-control": "Both the object owner and the bucket owner get `FULL_CONTROL` over the object." - "log-delivery-write": "The LogDelivery group gets `WRITE` and `READ_ACP` permissions on the bucket. For more information about logs, see [Amazon S3 Server Access Logging](\(urls.aws_s3_server_access_logs))." - } - syntax: "literal" - } - } - bucket: { - description: "The S3 bucket name. Do not include a leading `s3://` or a trailing `/`." - required: true - warnings: [] - type: string: { - examples: ["my-bucket"] - syntax: "literal" - } - } - content_encoding: { - category: "Content Type" - common: false - description: "Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. By default calculated from `compression` value." - required: false - warnings: [] - type: string: { - default: null - examples: ["gzip"] - syntax: "literal" - } - } - content_type: { - category: "Content Type" - common: false - description: "A standard MIME type describing the format of the contents." - required: false - warnings: [] - type: string: { - default: "text/x-log" - syntax: "literal" - } - } - filename_append_uuid: { - category: "File Naming" - common: false - description: "Whether or not to append a UUID v4 token to the end of the file. This ensures there are no name collisions high volume use cases." - required: false - warnings: [] - type: bool: default: true - } - filename_extension: { - category: "File Naming" - common: false - description: "The filename extension to use in the object name." - required: false - warnings: [] - type: string: { - default: "log" - syntax: "literal" - } - } - filename_time_format: { - category: "File Naming" - common: false - description: "The format of the resulting object file name. [`strftime` specifiers](\(urls.strptime_specifiers)) are supported." - required: false - warnings: [] - type: string: { - default: "%s" - syntax: "strftime" - } - } - grant_full_control: { - category: "ACL" - common: false - description: "Gives the named [grantee](\(urls.aws_s3_grantee)) READ, READ_ACP, and WRITE_ACP permissions on the created objects." - required: false - warnings: [] - type: string: { - default: null - examples: ["79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be", "person@email.com", "http://acs.amazonaws.com/groups/global/AllUsers"] - syntax: "literal" - } - } - grant_read: { - category: "ACL" - common: false - description: "Allows the named [grantee](\(urls.aws_s3_grantee)) to read the created objects and their metadata." - required: false - warnings: [] - type: string: { - default: null - examples: ["79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be", "person@email.com", "http://acs.amazonaws.com/groups/global/AllUsers"] - syntax: "literal" - } - } - grant_read_acp: { - category: "ACL" - common: false - description: "Allows the named [grantee](\(urls.aws_s3_grantee)) to read the created objects' ACL." - required: false - warnings: [] - type: string: { - default: null - examples: ["79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be", "person@email.com", "http://acs.amazonaws.com/groups/global/AllUsers"] - syntax: "literal" - } - } - grant_write_acp: { - category: "ACL" - common: false - description: "Allows the named [grantee](\(urls.aws_s3_grantee)) to write the created objects' ACL." - required: false - warnings: [] - type: string: { - default: null - examples: ["79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be", "person@email.com", "http://acs.amazonaws.com/groups/global/AllUsers"] - syntax: "literal" - } - } - key_prefix: { - category: "File Naming" - common: true - description: "A prefix to apply to all object key names. This should be used to partition your objects, and it's important to end this value with a `/` if you want this to be the root S3 \"folder\"." - required: false - warnings: [] - type: string: { - default: "date=%F/" - examples: ["date=%F/", "date=%F/hour=%H/", "year=%Y/month=%m/day=%d/", "application_id={{ application_id }}/date=%F/"] - syntax: "template" - } - } - server_side_encryption: { - category: "Encryption" - common: false - description: "The Server-side Encryption algorithm used when storing these objects." - required: false - warnings: [] - type: string: { - default: null - enum: { - "AES256": "256-bit Advanced Encryption Standard" - "aws:kms": "AWS managed key encryption" - } - syntax: "literal" - } - } - ssekms_key_id: { - category: "Encryption" - common: false - description: "If `server_side_encryption` has the value `\"aws.kms\"`, this specifies the ID of the AWS Key Management Service (AWS KMS) symmetrical customer managed customer master key (CMK) that will used for the created objects. If not specified, Amazon S3 uses the AWS managed CMK in AWS to protect the data." - required: false - warnings: [] - type: string: { - default: null - examples: ["abcd1234"] - syntax: "literal" - } - } - storage_class: { - category: "Storage" - common: false - description: "The storage class for the created objects. See [the S3 Storage Classes](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) for more details." - required: false - warnings: [] - type: string: { - default: null - enum: { - STANDARD: "The default storage class. If you don't specify the storage class when you upload an object, Amazon S3 assigns the STANDARD storage class." - REDUCED_REDUNDANCY: "Designed for noncritical, reproducible data that can be stored with less redundancy than the STANDARD storage class. AWS recommends that you not use this storage class. The STANDARD storage class is more cost effective. " - INTELLIGENT_TIERING: "Stores objects in two access tiers: one tier that is optimized for frequent access and another lower-cost tier that is optimized for infrequently accessed data." - STANDARD_IA: "Amazon S3 stores the object data redundantly across multiple geographically separated Availability Zones (similar to the STANDARD storage class)." - ONEZONE_IA: "Amazon S3 stores the object data in only one Availability Zone." - GLACIER: "Use for archives where portions of the data might need to be retrieved in minutes." - DEEP_ARCHIVE: "Use for archiving data that rarely needs to be accessed." - } - syntax: "literal" - } - } - tags: { - common: false - description: "The tag-set for the object." - required: false - warnings: [] - type: object: { - examples: [{"Tag1": "Value1"}] - options: {} - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - cross_account: { - title: "Cross account object writing" - body: """ - If you're using Vector to write objects across AWS accounts then you should - consider setting the `grant_full_control` option to the bucket owner's - canonical user ID. AWS provides a - [full tutorial](\(urls.aws_s3_cross_account_tutorial)) for this use case. If - don't know the bucket owner's canonical ID you can find it by following - [this tutorial](\(urls.aws_canonical_user_id)). - """ - } - - object_acl: { - title: "Object Access Control List (ACL)" - body: """ - AWS S3 supports [access control lists (ACL)](\(urls.aws_s3_acl)) for buckets and - objects. In the context of Vector, only object ACLs are relevant (Vector does - not create or modify buckets). You can set the object level ACL by using one - of the `acl`, `grant_full_control`, `grant_read`, `grant_read_acp`, or - `grant_write_acp` options. - """ - sub_sections: [ - { - title: "`acl.*` vs `grant_*` options" - body: """ - The `grant_*` options name a specific entity to grant access to. The `acl` - options is one of a set of [specific canned ACLs](\(urls.aws_s3_canned_acl)) that - can only name the owner or world. - """ - }, - ] - } - - object_naming: { - title: "Object naming" - body: """ - By default, Vector will name your S3 objects in the following format: - - - - - - ```text - -.log - ``` - - For example: - - ```text - date=2019-06-18/1560886634-fddd7a0e-fad9-4f7e-9bce-00ae5debc563.log - ``` - - - - - ```text - -.log.gz - ``` - - For example: - - ```text - date=2019-06-18/1560886634-fddd7a0e-fad9-4f7e-9bce-00ae5debc563.log.gz - ``` - - - - - Vector appends a [UUIDV4](\(urls.uuidv4)) token to ensure there are no name - conflicts in the unlikely event 2 Vector instances are writing data at the same - time. - - You can control the resulting name via the `key_prefix`, `filename_time_format`, - and `filename_append_uuid` options. - """ - } - - object_tags_and_metadata: { - title: "Object Tags & metadata" - body: """ - Vector currently only supports [AWS S3 object tags](\(urls.aws_s3_tags)) and does - _not_ support [object metadata](\(urls.aws_s3_metadata)). If you require metadata - support see [issue #1694](\(urls.issue_1694)). - - We believe tags are more flexible since they are separate from the actual S3 - object. You can freely modify tags without modifying the object. Conversely, - object metadata requires a full rewrite of the object to make changes. - """ - } - - server_side_encryption: { - title: "Server-Side Encryption (SSE)" - body: """ - AWS S3 offers [server-side encryption](\(urls.aws_s3_sse)). You can apply defaults - at the bucket level or set the encryption at the object level. In the context, - of Vector only the object level is relevant (Vector does not create or modify - buckets). Although, we recommend setting defaults at the bucket level whne - possible. You can explicitly set the object level encryption via the - `server_side_encryption` option. - """ - } - - storage_class: { - title: "Storage class" - body: """ - AWS S3 offers [storage classes](\(urls.aws_s3_storage_classes)). You can apply - defaults, and rules, at the bucket level or set the storage class at the object - level. In the context of Vector only the object level is relevant (Vector does - not create or modify buckets). You can set the storage class via the - `storage_class` option. - """ - } - } - - permissions: iam: [ - { - platform: "aws" - _service: "s3" - _docs_tag: "AmazonS3" - - policies: [ - { - _action: "HeadBucket" - required_for: ["healthcheck"] - }, - { - _action: "ListBucket" - required_for: ["healthcheck"] - }, - { - _action: "PutObject" - }, - ] - }, - ] -} diff --git a/docs/reference/components/sinks/aws_sqs.cue b/docs/reference/components/sinks/aws_sqs.cue deleted file mode 100644 index 886546104f4b2..0000000000000 --- a/docs/reference/components/sinks/aws_sqs.cue +++ /dev/null @@ -1,124 +0,0 @@ -package metadata - -components: sinks: aws_sqs: components._aws & { - title: "Amazon Simple Queue Service (SQS)" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "beta" - egress_method: "stream" - service_providers: ["AWS"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - compression: enabled: false - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 30 - headers: false - } - tls: enabled: false - to: { - service: services.aws_sqs - - interface: { - socket: { - api: { - title: "Amazon Simple Queue Service API" - url: urls.aws_sqs_api - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - queue_url: { - description: "The URL of the Amazon SQS queue to which messages are sent." - required: true - warnings: [] - type: string: { - examples: ["https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue"] - syntax: "literal" - } - } - message_group_id: { - common: false - description: "The tag that specifies that a message belongs to a specific message group. Can be applied only to FIFO queues." - required: false - warnings: [] - type: string: { - default: null - examples: ["vector", "vector-%Y-%m-%d"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - permissions: iam: [ - { - platform: "aws" - _service: "sqs" - _docs_tag: "AWSSimpleQueueService" - - policies: [ - { - _action: "GetQueueAttributes" - required_for: ["healthcheck"] - }, - { - _action: "SendMessage" - }, - ] - }, - ] - - telemetry: metrics: { - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - missing_keys_total: components.sources.internal_metrics.output.metrics.missing_keys_total - } -} diff --git a/docs/reference/components/sinks/azure_monitor_logs.cue b/docs/reference/components/sinks/azure_monitor_logs.cue deleted file mode 100644 index 240bcc0016691..0000000000000 --- a/docs/reference/components/sinks/azure_monitor_logs.cue +++ /dev/null @@ -1,129 +0,0 @@ -package metadata - -components: sinks: azure_monitor_logs: { - title: "Azure Monitor Logs" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "beta" - egress_method: "batch" - service_providers: ["Azure"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 30000000 - max_events: null - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - request: enabled: false - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - can_verify_hostname: true - enabled_default: true - } - to: { - service: services.azure_monitor_logs - - interface: { - socket: { - api: { - title: "Azure Monitor logs API" - url: urls.azure_monitor_logs_endpoints - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - azure_resource_id: { - common: true - description: "[Resource ID](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-collector-api#request-headers) of the Azure resource the data should be associated with." - required: false - warnings: [] - type: string: { - default: null - examples: ["/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage", "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/examplegroup/providers/Microsoft.SQL/servers/serverName/databases/databaseName"] - syntax: "literal" - } - } - customer_id: { - description: "The [unique identifier](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-collector-api#request-uri-parameters) for the Log Analytics workspace." - required: true - warnings: [] - type: string: { - examples: ["5ce893d9-2c32-4b6c-91a9-b0887c2de2d6", "97ce69d9-b4be-4241-8dbd-d265edcf06c4"] - syntax: "literal" - } - } - host: { - common: true - description: "[Alternative host](https://docs.azure.cn/en-us/articles/guidance/developerdifferences#check-endpoints-in-azure) for dedicated Azure regions." - required: false - warnings: [] - type: string: { - default: "ods.opinsights.azure.com" - examples: ["ods.opinsights.azure.us", "ods.opinsights.azure.cn"] - syntax: "literal" - } - } - log_type: { - description: "The [record type of the data that is being submitted](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-collector-api#request-headers). Can only contain letters, numbers, and underscore (_), and may not exceed 100 characters." - required: true - warnings: [] - type: string: { - examples: ["MyTableName", "MyRecordType"] - syntax: "literal" - } - } - shared_key: { - description: "The [primary or the secondary key](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-collector-api#authorization) for the Log Analytics workspace." - required: true - warnings: [] - type: string: { - examples: ["${AZURE_MONITOR_SHARED_KEY_ENV_VAR}", "SERsIYhgMVlJB6uPsq49gCxNiruf6v0vhMYE+lfzbSGcXjdViZdV/e5pEMTYtw9f8SkVLf4LFlLCc2KxtRZfCA=="] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } -} diff --git a/docs/reference/components/sinks/blackhole.cue b/docs/reference/components/sinks/blackhole.cue deleted file mode 100644 index 99f6b60ad4af4..0000000000000 --- a/docs/reference/components/sinks/blackhole.cue +++ /dev/null @@ -1,76 +0,0 @@ -package metadata - -components: sinks: blackhole: { - title: "Blackhole" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "stream" - service_providers: [] - stateful: false - } - - features: { - buffer: enabled: false - healthcheck: enabled: false - send: { - compression: enabled: false - encoding: enabled: false - request: enabled: false - tls: enabled: false - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - print_amount: { - common: false - description: "The number of events that must be received in order to print a summary of activity." - required: false - warnings: [] - type: uint: { - default: 1000 - examples: [1000] - unit: null - } - } - rate: { - common: false - description: "Rates the amount of events that the sink can consume per second." - required: false - warnings: [] - type: uint: { - default: null - examples: [1000] - unit: null - } - } - } - - input: { - logs: true - metrics: null - } - - telemetry: metrics: { - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sinks/clickhouse.cue b/docs/reference/components/sinks/clickhouse.cue deleted file mode 100644 index 2ece38344c47e..0000000000000 --- a/docs/reference/components/sinks/clickhouse.cue +++ /dev/null @@ -1,131 +0,0 @@ -package metadata - -components: sinks: clickhouse: { - title: "Clickhouse" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "beta" - egress_method: "batch" - service_providers: ["Yandex"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 1049000 - max_events: null - timeout_secs: 1 - } - compression: { - enabled: true - default: "gzip" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 30 - headers: false - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.clickhouse - - interface: { - socket: { - api: { - title: "Clickhouse HTTP API" - url: urls.clickhouse_http - } - direction: "outgoing" - protocols: ["http"] - ssl: "optional" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - - requirements: [ - """ - [Clickhouse](\(urls.clickhouse)) version `>= 1.1.54378` is required. - """, - ] - warnings: [] - notices: [] - } - - configuration: { - auth: configuration._http_auth & {_args: { - password_example: "${CLICKHOUSE_PASSWORD}" - username_example: "${CLICKHOUSE_USERNAME}" - }} - database: { - common: true - description: "The database that contains the stable that data will be inserted into." - required: false - warnings: [] - type: string: { - default: null - examples: ["mydatabase"] - syntax: "literal" - } - } - endpoint: { - description: "The endpoint of the [Clickhouse](\(urls.clickhouse)) server." - required: true - type: string: { - examples: ["http://localhost:8123"] - syntax: "literal" - } - } - table: { - description: "The table that data will be inserted into." - required: true - warnings: [] - type: string: { - examples: ["mytable"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } -} diff --git a/docs/reference/components/sinks/console.cue b/docs/reference/components/sinks/console.cue deleted file mode 100644 index 3e47796d18581..0000000000000 --- a/docs/reference/components/sinks/console.cue +++ /dev/null @@ -1,87 +0,0 @@ -package metadata - -components: sinks: console: { - title: "Console" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "stream" - service_providers: [] - stateful: false - } - - features: { - buffer: enabled: false - healthcheck: enabled: false - send: { - compression: enabled: false - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: enabled: false - tls: enabled: false - to: { - service: services.stdout - interface: stdout: {} - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - target: { - common: true - description: "The [standard stream](\(urls.standard_streams)) to write to." - required: false - warnings: [] - type: string: { - default: "stdout" - enum: { - stdout: "Output will be written to [STDOUT](\(urls.stdout))" - stderr: "Output will be written to [STDERR](\(urls.stderr))" - } - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } - - telemetry: metrics: { - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/sinks/datadog.cue b/docs/reference/components/sinks/datadog.cue deleted file mode 100644 index 34440914cd40b..0000000000000 --- a/docs/reference/components/sinks/datadog.cue +++ /dev/null @@ -1,64 +0,0 @@ -package metadata - -components: sinks: _datadog: { - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["Datadog"] - stateful: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - api_key: { - description: "Datadog [API key](https://docs.datadoghq.com/api/?lang=bash#authentication)" - required: true - warnings: [] - type: string: { - examples: ["${DATADOG_API_KEY_ENV_VAR}", "ef8d5de700e7989468166c40fc8a0ccd"] - syntax: "literal" - } - } - endpoint: { - common: false - description: "The endpoint to send data to." - relevant_when: "region is not set" - required: false - type: string: { - default: null - examples: ["127.0.0.1:8080", "example.com:12345"] - syntax: "literal" - } - } - region: { - description: "The region to send data to." - required: false - relevant_when: "endpoint is not set" - warnings: [] - type: string: { - enum: { - us: "United States" - eu: "Europe" - } - syntax: "literal" - } - } - } -} diff --git a/docs/reference/components/sinks/datadog_logs.cue b/docs/reference/components/sinks/datadog_logs.cue deleted file mode 100644 index aeb4b899548eb..0000000000000 --- a/docs/reference/components/sinks/datadog_logs.cue +++ /dev/null @@ -1,70 +0,0 @@ -package metadata - -components: sinks: datadog_logs: { - title: "Datadog Logs" - - classes: sinks._datadog.classes - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 1049000 - max_events: null - timeout_secs: 1 - } - compression: { - enabled: true - default: "gzip" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: enabled: false - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - can_verify_hostname: true - enabled_default: true - } - to: { - service: services.datadog_logs - - interface: { - socket: { - api: { - title: "Datadog logs API" - url: urls.datadog_logs_endpoints - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: sinks._datadog.support - - configuration: { - api_key: sinks._datadog.configuration.api_key - endpoint: sinks._datadog.configuration.endpoint - } - - input: { - logs: true - metrics: null - } -} diff --git a/docs/reference/components/sinks/datadog_metrics.cue b/docs/reference/components/sinks/datadog_metrics.cue deleted file mode 100644 index 54e8bb706cdc9..0000000000000 --- a/docs/reference/components/sinks/datadog_metrics.cue +++ /dev/null @@ -1,82 +0,0 @@ -package metadata - -components: sinks: datadog_metrics: { - title: "Datadog Metrics" - - classes: sinks._datadog.classes - - features: { - buffer: enabled: false - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: null - max_events: 20 - timeout_secs: 1 - } - compression: enabled: false - encoding: enabled: false - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: enabled: false - to: { - service: services.datadog_metrics - - interface: { - socket: { - api: { - title: "Datadog metrics API" - url: urls.datadog_metrics_endpoints - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: sinks._datadog.support - - configuration: { - api_key: sinks._datadog.configuration.api_key - endpoint: sinks._datadog.configuration.endpoint - default_namespace: { - common: true - description: """ - Used as a namespace for metrics that don't have it. - A namespace will be prefixed to a metric's name. - """ - required: false - warnings: [] - type: string: { - default: null - examples: ["service"] - syntax: "literal" - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: false - set: false - summary: false - } - } -} diff --git a/docs/reference/components/sinks/elasticsearch.cue b/docs/reference/components/sinks/elasticsearch.cue deleted file mode 100644 index d9c9e6e3bc1ab..0000000000000 --- a/docs/reference/components/sinks/elasticsearch.cue +++ /dev/null @@ -1,273 +0,0 @@ -package metadata - -components: sinks: elasticsearch: { - title: "Elasticsearch" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["AWS", "Azure", "Elastic", "GCP"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 10490000 - max_events: null - timeout_secs: 1 - } - compression: { - enabled: true - default: "none" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: true - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.elasticsearch - - interface: { - socket: { - api: { - title: "Elasticsearch bulk API" - url: urls.elasticsearch_bulk - } - direction: "outgoing" - protocols: ["http"] - ssl: "optional" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [ - #""" - Elasticsearch's Data streams feature requires Vector to be configured with the `create` `bulk_action`. *This is not enabled by default.* - """#, - ] - warnings: [] - notices: [] - } - - configuration: { - auth: { - common: false - description: "Options for the authentication strategy." - required: false - warnings: [] - type: object: { - examples: [] - options: components._aws.configuration.auth.type.object.options & { - password: { - description: "The basic authentication password." - required: true - warnings: [] - type: string: { - examples: ["${ELASTICSEARCH_PASSWORD}", "password"] - syntax: "literal" - } - } - strategy: { - description: "The authentication strategy to use." - required: true - warnings: [] - type: string: { - enum: { - aws: "Authentication strategy used for [AWS' hosted Elasticsearch service](\(urls.aws_elasticsearch))." - basic: "The [basic authentication strategy](\(urls.basic_auth))." - } - syntax: "literal" - } - } - user: { - description: "The basic authentication user name." - required: true - warnings: [] - type: string: { - examples: ["${ELASTICSEARCH_USERNAME}", "username"] - syntax: "literal" - } - } - } - } - } - aws: { - common: false - description: "Options for the AWS connections." - required: false - warnings: [] - type: object: { - examples: [] - options: { - region: { - common: true - description: "The [AWS region][urls.aws_regions] of the target service. This defaults to the region named in the endpoint parameter, or the value of the `$AWS_REGION` or `$AWS_DEFAULT_REGION` environment variables if that cannot be determined, or \"us-east-1\"." - required: false - warnings: [] - type: string: { - default: null - examples: ["us-east-1"] - syntax: "literal" - } - } - } - } - } - bulk_action: { - common: false - description: "Action to use when making requests to the [Elasticsearch Bulk API](elasticsearch_bulk). Supports `index` and `create`." - required: false - warnings: [] - type: string: { - default: "index" - examples: ["index", "create"] - syntax: "literal" - } - } - doc_type: { - common: false - description: "The `doc_type` for your index data. This is only relevant for Elasticsearch <= 6.X. If you are using >= 7.0 you do not need to set this option since Elasticsearch has removed it." - required: false - warnings: [] - type: string: { - default: "_doc" - syntax: "literal" - } - } - endpoint: { - description: "The Elasticsearch endpoint to send logs to. This should be the full URL as shown in the example." - required: true - warnings: [] - type: string: { - examples: ["http://10.24.32.122:9000", "https://example.com", "https://user:password@example.com"] - syntax: "literal" - } - } - id_key: { - common: false - description: "The name of the event key that should map to Elasticsearch's [`_id` field][urls.elasticsearch_id_field]. By default, Vector does not set the `_id` field, which allows Elasticsearch to set this automatically. You should think carefully about setting your own Elasticsearch IDs, since this can [hinder perofrmance][urls.elasticsearch_id_performance]." - required: false - warnings: [] - type: string: { - default: null - examples: ["id", "_id"] - syntax: "literal" - } - } - index: { - common: true - description: "Index name to write events to." - required: false - warnings: [] - type: string: { - default: "vector-%F" - examples: ["application-{{ application_id }}-%Y-%m-%d", "vector-%Y-%m-%d"] - syntax: "template" - } - } - pipeline: { - common: true - description: "Name of the pipeline to apply." - required: false - warnings: [] - type: string: { - default: null - examples: ["pipeline-name"] - syntax: "literal" - } - } - query: { - common: false - description: "Custom parameters to Elasticsearch query string." - required: false - warnings: [] - type: object: { - examples: [{"X-Powered-By": "Vector"}] - options: {} - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - conflicts: { - title: "Conflicts" - body: """ - Vector [batches](#buffers--batches) data flushes it to Elasticsearch's - [`_bulk` API endpoint][urls.elasticsearch_bulk]. By default, all events are - inserted via the `index` action which will update documents if an existing - one has the same `id`. If `bulk_action` is configured with `create`, Elasticsearch - will _not_ replace an existing document and instead return a conflict error. - """ - } - - data_streams: { - title: "Data streams" - body: """ - By default, Vector will use the `index` action with Elasticsearch's Bulk API. - To use [Data streams][urls.elasticsearch_data_streams], `bulk_action` must be configured - with the `create` option. - """ - } - - partial_failures: { - title: "Partial Failures" - body: """ - By default, Elasticsearch will allow partial bulk ingestion - failures. This is typically due to type Elasticsearch index - mapping errors, where data keys are not consistently typed. - To change this behavior please refer to the Elasticsearch - [`ignore_malformed` setting](\(urls.elasticsearch_ignore_malformed)). - """ - } - - aws_authentication: components._aws.how_it_works.aws_authentication - } - - telemetry: metrics: { - missing_keys_total: components.sources.internal_metrics.output.metrics.missing_keys_total - } -} diff --git a/docs/reference/components/sinks/file.cue b/docs/reference/components/sinks/file.cue deleted file mode 100644 index 8da1579767b39..0000000000000 --- a/docs/reference/components/sinks/file.cue +++ /dev/null @@ -1,93 +0,0 @@ -package metadata - -components: sinks: file: { - title: "File" - - classes: { - commonly_used: false - delivery: "at_least_once" - - development: "beta" - egress_method: "stream" - service_providers: [] - stateful: false - } - - features: { - buffer: enabled: false - healthcheck: enabled: true - send: { - compression: { - enabled: true - default: "none" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["ndjson", "text"] - } - } - request: enabled: false - tls: enabled: false - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - idle_timeout_secs: { - common: false - description: "The amount of time a file can be idle and stay open. After not receiving any events for this timeout, the file will be flushed and closed.\n" - required: false - warnings: [] - type: uint: { - default: 30 - unit: null - } - } - path: { - description: "File name to write events to." - required: true - warnings: [] - type: string: { - examples: ["/tmp/vector-%Y-%m-%d.log", "/tmp/application-{{ application_id }}-%Y-%m-%d.log"] - syntax: "template" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - dir_and_file_creation: { - title: "File & Directory Creation" - body: """ - Vector will attempt to create the entire directory structure - and the file when emitting events to the file sink. This - requires that the Vector agent have the correct permissions - to create and write to files in the specified directories. - """ - } - } -} diff --git a/docs/reference/components/sinks/gcp_cloud_storage.cue b/docs/reference/components/sinks/gcp_cloud_storage.cue deleted file mode 100644 index ee15c1d3006cc..0000000000000 --- a/docs/reference/components/sinks/gcp_cloud_storage.cue +++ /dev/null @@ -1,309 +0,0 @@ -package metadata - -components: sinks: gcp_cloud_storage: { - title: "GCP Cloud Storage (GCS)" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "beta" - egress_method: "batch" - service_providers: ["GCP"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 10485760 - max_events: null - timeout_secs: 300 - } - compression: { - enabled: true - default: "none" - algorithms: ["gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["ndjson", "text"] - } - } - request: { - enabled: true - concurrency: 25 - rate_limit_duration_secs: 1 - rate_limit_num: 1000 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.gcp_cloud_storage - - interface: { - socket: { - api: { - title: "GCP XML Interface" - url: urls.gcp_xml_interface - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - acl: { - category: "ACL" - common: false - description: "Predefined ACL to apply to the created objects. For more information, see [Predefined ACLs][urls.gcs_predefined_acl]. If this is not set, GCS will apply a default ACL when the object is created." - required: false - warnings: [] - type: string: { - default: null - enum: { - "authenticated-read": "Gives the bucket or object owner OWNER permission, and gives all authenticated Google account holders READER permission." - "bucket-owner-full-control": "Gives the object and bucket owners OWNER permission." - "bucket-owner-read": "Gives the object owner OWNER permission, and gives the bucket owner READER permission." - "private": "Gives the bucket or object owner OWNER permission for a bucket or object." - "project-private": "Gives permission to the project team based on their roles. Anyone who is part of the team has READER permission. Project owners and project editors have OWNER permission. This the default." - "public-read": "Gives the bucket or object owner OWNER permission, and gives all users, both authenticated and anonymous, READER permission. When you apply this to an object, anyone on the Internet can read the object without authenticating." - } - syntax: "literal" - } - } - bucket: { - description: "The GCS bucket name." - required: true - warnings: [] - type: string: { - examples: ["my-bucket"] - syntax: "literal" - } - } - credentials_path: { - category: "Auth" - common: true - description: "The filename for a Google Cloud service account credentials JSON file used to authenticate access to the Cloud Storage API. If this is unset, Vector checks the `GOOGLE_APPLICATION_CREDENTIALS` environment variable for a filename.\n\nIf no filename is named, Vector will attempt to fetch an instance service account for the compute instance the program is running on. If Vector is not running on a GCE instance, you must define a credentials file as above." - required: false - warnings: [] - type: string: { - default: null - examples: ["/path/to/credentials.json"] - syntax: "literal" - } - } - filename_append_uuid: { - category: "File Naming" - common: false - description: "Whether or not to append a UUID v4 token to the end of the file. This ensures there are no name collisions high volume use cases." - required: false - warnings: [] - type: bool: default: true - } - filename_extension: { - category: "File Naming" - common: false - description: "The filename extension to use in the object name." - required: false - warnings: [] - type: string: { - default: "log" - syntax: "literal" - } - } - filename_time_format: { - category: "File Naming" - common: false - description: "The format of the resulting object file name. [`strftime` specifiers][urls.strptime_specifiers] are supported." - required: false - warnings: [] - type: string: { - default: "%s" - syntax: "literal" - } - } - key_prefix: { - category: "File Naming" - common: true - description: "A prefix to apply to all object key names. This should be used to partition your objects, and it's important to end this value with a `/` if you want this to be the root GCS \"folder\"." - required: false - warnings: [] - type: string: { - default: "date=%F/" - examples: ["date=%F/", "date=%F/hour=%H/", "year=%Y/month=%m/day=%d/", "application_id={{ application_id }}/date=%F/"] - syntax: "template" - } - } - metadata: { - common: false - description: "The set of metadata `key:value` pairs for the created objects. See the [GCS custom metadata][urls.gcs_custom_metadata] documentation for more details." - required: false - warnings: [] - type: string: { - default: null - examples: [] - syntax: "literal" - } - } - storage_class: { - category: "Storage" - common: false - description: "The storage class for the created objects. See [the GCP storage classes][urls.gcs_storage_classes] for more details." - required: false - warnings: [] - type: string: { - default: null - enum: { - STANDARD: "Standard Storage is best for data that is frequently accessed and/or stored for only brief periods of time. This is the default." - NEARLINE: "Nearline Storage is a low-cost, highly durable storage service for storing infrequently accessed data." - COLDLINE: "Coldline Storage is a very-low-cost, highly durable storage service for storing infrequently accessed data." - ARCHIVE: "Archive Storage is the lowest-cost, highly durable storage service for data archiving, online backup, and disaster recovery." - } - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - object_access_control_list: { - title: "Object access control list (ACL)" - body: """ - GCP Cloud Storage supports access control lists (ACL) for buckets and - objects. In the context of Vector, only object ACLs are relevant (Vector - does not create or modify buckets). You can set the object level ACL by - using the `acl` option, which allows you to set one of the [predefined - ACLs](\(urls.gcs_predefined_acl)) on each created object. - """ - } - object_naming: { - title: "Object Naming" - body: """ - By default, Vector will name your GCS objects in the following format: - - - - - - ```text - -.log - ``` - - For example: - - ```text - date=2019-06-18/1560886634-fddd7a0e-fad9-4f7e-9bce-00ae5debc563.log - ``` - - - - - ```text - -.log.gz - ``` - - For example: - - ```text - date=2019-06-18/1560886634-fddd7a0e-fad9-4f7e-9bce-00ae5debc563.log.gz - ``` - - - - - Vector appends a [UUIDV4][urls.uuidv4] token to ensure there are no name - conflicts in the unlikely event 2 Vector instances are writing data at the same - time. - - You can control the resulting name via the `key_prefix`, `filename_time_format`, - and `filename_append_uuid` options. - """ - } - - storage_class: { - title: "Storage Class" - body: """ - GCS offers [storage classes](\(urls.gcs_storage_classes)). You can apply - defaults, and rules, at the bucket level or set the storage class at the - object level. In the context of Vector only the object level is relevant - (Vector does not create or modify buckets). You can set the storage - class via the `storage_class` option. - """ - } - - tags_and_metadata: { - title: "Tags & Metadata" - body: """ - Vector supports adding [custom metadata](\(urls.gcs_custom_metadata)) to - created objects. These metadata items are a way of associating extra - data items with the object that are not part of the uploaded data. - """ - } - } - - permissions: iam: [ - { - platform: "gcp" - _service: "storage" - - policies: [ - { - _action: "objects.create" - required_for: ["write"] - }, - { - _action: "objects.get" - required_for: ["healthcheck"] - }, - ] - }, - ] -} diff --git a/docs/reference/components/sinks/gcp_pubsub.cue b/docs/reference/components/sinks/gcp_pubsub.cue deleted file mode 100644 index 503eef107c259..0000000000000 --- a/docs/reference/components/sinks/gcp_pubsub.cue +++ /dev/null @@ -1,158 +0,0 @@ -package metadata - -components: sinks: gcp_pubsub: { - title: "GCP PubSub" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "beta" - egress_method: "batch" - service_providers: ["GCP"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 10485760 - max_events: 1000 - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 100 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.gcp_pubsub - - interface: { - socket: { - api: { - title: "GCP XML Interface" - url: urls.gcp_xml_interface - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - api_key: { - common: false - description: "A [Google Cloud API key][urls.gcp_authentication_api_key] used to authenticate access the pubsub project and topic. Either this or `credentials_path` must be set." - required: false - warnings: [] - type: string: { - default: null - examples: ["${GCP_API_KEY}", "ef8d5de700e7989468166c40fc8a0ccd"] - syntax: "literal" - } - } - credentials_path: { - common: true - description: "The filename for a Google Cloud service account credentials JSON file used to authenticate access to the pubsub project and topic. If this is unset, Vector checks the `GOOGLE_APPLICATION_CREDENTIALS` environment variable for a filename.\n\nIf no filename is named, Vector will attempt to fetch an instance service account for the compute instance the program is running on. If Vector is not running on a GCE instance, you must define a credentials file as above." - required: false - warnings: [] - type: string: { - default: null - examples: ["/path/to/credentials.json"] - syntax: "literal" - } - } - endpoint: { - common: false - description: "The endpoint to which to send data." - required: false - warnings: [] - type: string: { - default: "https://pubsub.googleapis.com" - examples: ["https://us-central1-pubsub.googleapis.com"] - syntax: "literal" - } - } - project: { - description: "The project name to which to publish logs." - required: true - warnings: [] - type: string: { - examples: ["vector-123456"] - syntax: "literal" - } - } - topic: { - description: "The topic within the project to which to publish logs." - required: true - warnings: [] - type: string: { - examples: ["this-is-a-topic"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - permissions: iam: [ - { - platform: "gcp" - _service: "pubsub" - - policies: [ - { - _action: "topics.get" - required_for: ["healthcheck"] - }, - { - _action: "topics.publish" - required_for: ["write"] - }, - ] - }, - ] -} diff --git a/docs/reference/components/sinks/gcp_stackdriver_logs.cue b/docs/reference/components/sinks/gcp_stackdriver_logs.cue deleted file mode 100644 index fa0e5520ed11c..0000000000000 --- a/docs/reference/components/sinks/gcp_stackdriver_logs.cue +++ /dev/null @@ -1,242 +0,0 @@ -package metadata - -components: sinks: gcp_stackdriver_logs: { - title: "GCP Operations (formerly Stackdrive) Logs" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "beta" - egress_method: "batch" - service_providers: ["GCP"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 5242880 - max_events: null - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 1000 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.gcp_operations_logs - - interface: { - socket: { - api: { - title: "REST Interface" - url: urls.gcp_stackdriver_logging_rest - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - billing_account_id: { - common: false - description: "The billing account ID to which to publish logs.\n\nExactly one of `billing_account_id`, `folder_id`, `organization_id`, or `project_id` must be set." - required: false - warnings: [] - type: string: { - default: null - examples: ["012345-6789AB-CDEF01"] - syntax: "literal" - } - } - credentials_path: { - common: true - description: "The filename for a Google Cloud service account credentials JSON file used to authenticate access to the Stackdriver Logging API. If this is unset, Vector checks the `GOOGLE_APPLICATION_CREDENTIALS` environment variable for a filename.\n\nIf no filename is named, Vector will attempt to fetch an instance service account for the compute instance the program is running on. If Vector is not running on a GCE instance, you must define a credentials file as above." - required: false - warnings: [] - type: string: { - default: null - examples: ["/path/to/credentials.json"] - syntax: "literal" - } - } - folder_id: { - common: false - description: "The folder ID to which to publish logs.\nSee the [Google Cloud Platform folder documentation][urls.gcp_folders] for more details.\n\nExactly one of `billing_account_id`, `folder_id`, `organization_id`, or `project_id` must be set." - required: false - warnings: [] - type: string: { - default: null - examples: ["My Folder"] - syntax: "literal" - } - } - log_id: { - description: "The log ID to which to publish logs. This is a name you create to identify this log stream." - required: true - warnings: [] - type: string: { - examples: ["vector-logs"] - syntax: "literal" - } - } - organization_id: { - common: false - description: "The organization ID to which to publish logs. This would be the identifier assigned to your organization on Google Cloud Platform.\n\nExactly one of `billing_account_id`, `folder_id`, `organization_id`, or `project_id` must be set." - required: false - warnings: [] - type: string: { - default: null - examples: ["622418129737"] - syntax: "literal" - } - } - project_id: { - description: "The project ID to which to publish logs. See the [Google Cloud Platform project management documentation][urls.gcp_projects] for more details.\n\nExactly one of `billing_account_id`, `folder_id`, `organization_id`, or `project_id` must be set." - required: true - warnings: [] - type: string: { - examples: ["vector-123456"] - syntax: "literal" - } - } - resource: { - description: "Options for describing the logging resource." - required: true - warnings: [] - type: object: { - examples: [ - { - type: "global" - projectId: "vector-123456" - instanceId: "Twilight" - zone: "us-central1-a" - }, - ] - options: { - type: { - description: "The monitored resource type. For example, the type of a Compute Engine VM instance is gce_instance.\n\nSee the [Google Cloud Platform monitored resource documentation][urls.gcp_resources] for more details." - required: true - warnings: [] - type: string: { - examples: ["global", "gce_instance"] - syntax: "literal" - } - } - "*": { - common: false - description: "Values for all of the labels listed in the associated monitored resource descriptor.\n\nFor example, Compute Engine VM instances use the labels `projectId`, `instanceId`, and `zone`." - required: false - warnings: [] - type: string: { - default: null - examples: ["vector-123456", "Twilight"] - syntax: "literal" - } - } - } - } - } - severity_key: { - common: false - description: "The field of the log event from which to take the outgoing log's `severity` field. The named field is removed from the log event if present, and must be either an integer between 0 and 800 or a string containing one of the [severity level names][urls.gcp_stackdriver_severity] (case is ignored) or a common prefix such as `err`. This could be added by an [`add_fields` transform][docs.transforms.add_fields] or extracted from a field from the source.\n\nIf no severity key is specified, the severity of outgoing records will be set to 0 (`DEFAULT`).\n\nSee the [GCP Stackdriver Logging LogSeverity description][urls.gcp_stackdriver_severity] for more details on the value of the `severity` field." - required: false - warnings: [] - type: string: { - default: null - examples: ["severity"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - severity_level_mapping: { - title: "Severity Level Mapping" - body: #""" - If a `severity_key` is configured, outgoing log records will have their - `severity` header field set from the named field in the Vector - event. However, the [required values][urls.gcp_stackdriver_severity] for - this field may be inconvenient to produce, typically requiring a custom - mapping using an additional transform. To assist with this, this sink - remaps certain commonly used words to the required numbers as in the - following table. Note that only the prefix is compared, such that a - value of `emergency` matches `emerg`, and the comparison ignores case. - - | Prefix | Value - |:-------|:----- - | emerg | 800 - | fatal | 800 - | alert | 700 - | crit | 600 - | err | 500 - | warn | 400 - | notice | 300 - | info | 200 - | debug | 100 - | trace | 100 - """# - } - } - - permissions: iam: [ - { - platform: "gcp" - _service: "logging" - - policies: [ - { - _action: "logEntries.create" - required_for: ["healthcheck", "write"] - }, - ] - }, - ] -} diff --git a/docs/reference/components/sinks/honeycomb.cue b/docs/reference/components/sinks/honeycomb.cue deleted file mode 100644 index 308e3a16622ed..0000000000000 --- a/docs/reference/components/sinks/honeycomb.cue +++ /dev/null @@ -1,113 +0,0 @@ -package metadata - -components: sinks: honeycomb: { - title: "Honeycomb" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "beta" - egress_method: "batch" - service_providers: ["Honeycomb"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 5242880 - max_events: null - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: enabled: false - to: { - service: services.honeycomb - - interface: { - socket: { - api: { - title: "Honeycomb batch events API" - url: urls.honeycomb_batch - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - api_key: { - description: "The team key that will be used to authenticate against Honeycomb." - required: true - warnings: [] - type: string: { - examples: ["${HONEYCOMB_API_KEY}", "some-api-key"] - syntax: "literal" - } - } - dataset: { - description: "The dataset that Vector will send logs to." - required: true - warnings: [] - type: string: { - examples: ["my-honeycomb-dataset"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - setup: { - title: "Setup" - body: """ - 1. Register for a free account at [honeycomb.io](\(urls.honeycomb_signup)) - - 2. Once registered, create a new dataset and when presented with log shippers select the - curl option and use the key provided with the curl example. - """ - } - } -} diff --git a/docs/reference/components/sinks/http.cue b/docs/reference/components/sinks/http.cue deleted file mode 100644 index 99ceef18048dc..0000000000000 --- a/docs/reference/components/sinks/http.cue +++ /dev/null @@ -1,136 +0,0 @@ -package metadata - -components: sinks: http: { - title: "HTTP" - - classes: { - commonly_used: true - service_providers: [] - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: true - max_bytes: 1049000 - max_events: null - timeout_secs: 1 - } - compression: { - enabled: true - default: "none" - algorithms: ["none", "gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "ndjson", "text"] - } - } - request: { - enabled: true - concurrency: 10 - rate_limit_duration_secs: 1 - rate_limit_num: 1000 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 30 - headers: true - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: { - name: "HTTP" - thing: "an \(name) server" - url: urls.http_server - versions: null - } - - interface: { - socket: { - direction: "outgoing" - protocols: ["http"] - ssl: "optional" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - auth: configuration._http_auth & {_args: { - password_example: "${HTTP_PASSWORD}" - username_example: "${HTTP_USERNAME}" - }} - uri: { - description: """ - The full URI to make HTTP requests to. This should include the protocol and host, - but can also include the port, path, and any other valid part of a URI. - """ - required: true - warnings: [] - type: string: { - examples: ["https://10.22.212.22:9000/endpoint"] - syntax: "literal" - } - } - healthcheck: type: object: options: uri: { - common: false - description: """ - The full URI to make HTTP health check request to. This should include the protocol and host, - but can also include the port, path, and any other valid part of a URI. - """ - required: false - warnings: [] - type: string: { - default: null - examples: ["https://10.22.212.22:9000/health"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - telemetry: metrics: { - events_discarded_total: components.sources.internal_metrics.output.metrics.events_discarded_total - http_bad_requests_total: components.sources.internal_metrics.output.metrics.http_bad_requests_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sinks/humio.cue b/docs/reference/components/sinks/humio.cue deleted file mode 100644 index 491d713599054..0000000000000 --- a/docs/reference/components/sinks/humio.cue +++ /dev/null @@ -1,143 +0,0 @@ -package metadata - -components: sinks: _humio: { - classes: { - commonly_used: false - delivery: "at_least_once" - development: "beta" - egress_method: "batch" - service_providers: ["Humio"] - stateful: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 1049000 - max_events: null - timeout_secs: 1 - } - compression: { - enabled: true - default: "none" - algorithms: ["gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: { - enabled: true - concurrency: 10 - rate_limit_duration_secs: 1 - rate_limit_num: 10 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.humio - - interface: { - socket: { - api: { - title: "Humio Splunk HEC API" - url: urls.humio_hec - } - direction: "outgoing" - protocols: ["http"] - ssl: "disabled" - } - } - } - } - } - - configuration: { - endpoint: { - common: false - description: "The base URL of the Humio instance." - required: false - type: string: { - default: "https://cloud.humio.com" - examples: ["http://127.0.0.1", "http://example.com"] - syntax: "literal" - } - } - event_type: { - common: false - description: "The type of events sent to this sink. Humio uses this as the name of the parser to use to ingest the data.\n\nIf unset, Humio will default it to none.\n" - required: false - warnings: [] - type: string: { - default: null - examples: ["json", "none"] - syntax: "template" - } - } - host_key: { - common: true - description: "The name of the log field to be used as the hostname sent to Humio. This overrides the [global `host_key` option][docs.reference.configuration.global-options#host_key]." - required: false - warnings: [] - type: string: { - default: null - examples: ["hostname"] - syntax: "literal" - } - } - source: { - common: false - description: "The source of events sent to this sink. Typically the filename the logs originated from. Maps to @source in Humio.\n" - required: false - warnings: [] - type: string: { - default: null - examples: ["{{file}}", "/var/log/syslog", "UDP:514"] - syntax: "template" - } - } - token: { - description: "Your Humio ingestion token." - required: true - warnings: [] - type: string: { - examples: ["${HUMIO_TOKEN}", "A94A8FE5CCB19BA61C4C08"] - syntax: "literal" - } - } - } -} diff --git a/docs/reference/components/sinks/humio_logs.cue b/docs/reference/components/sinks/humio_logs.cue deleted file mode 100644 index 64e86cdd707f8..0000000000000 --- a/docs/reference/components/sinks/humio_logs.cue +++ /dev/null @@ -1,15 +0,0 @@ -package metadata - -components: sinks: humio_logs: { - title: "Humio Logs" - - classes: sinks._humio.classes - features: sinks._humio.features - support: sinks._humio.support - configuration: sinks._humio.configuration - - input: { - logs: true - metrics: null - } -} diff --git a/docs/reference/components/sinks/humio_metrics.cue b/docs/reference/components/sinks/humio_metrics.cue deleted file mode 100644 index c1deb883b45d8..0000000000000 --- a/docs/reference/components/sinks/humio_metrics.cue +++ /dev/null @@ -1,31 +0,0 @@ -package metadata - -components: sinks: humio_metrics: { - title: "Humio Metrics" - - classes: sinks._humio.classes - features: sinks._humio.features - support: sinks._humio.support - configuration: sinks._humio.configuration - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } - - how_it_works: { - metrics: { - title: "Metrics" - body: """ - Metrics are converted to log events via the `log_to_event` transform prior to sending to humio. - """ - } - } -} diff --git a/docs/reference/components/sinks/influxdb_logs.cue b/docs/reference/components/sinks/influxdb_logs.cue deleted file mode 100644 index 2dea39e744087..0000000000000 --- a/docs/reference/components/sinks/influxdb_logs.cue +++ /dev/null @@ -1,126 +0,0 @@ -package metadata - -components: sinks: influxdb_logs: { - title: "InfluxDB Logs" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["InfluxData"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 1049000 - max_events: null - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: sinks._influxdb.features.send.tls - to: sinks._influxdb.features.send.to - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: sinks._influxdb.configuration & { - namespace: { - description: "A prefix that will be added to all logs names." - groups: ["v1", "v2"] - required: true - warnings: [] - type: string: { - examples: ["service"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - mapping: { - title: "Mapping Log Fields" - body: """ - InfluxDB uses [line protocol](\(urls.influxdb_line_protocol)) to write data points. It is a text-based format that provides the measurement, tag set, field set, and timestamp of a data point. - - A `Log Event` event contains an arbitrary set of fields (key/value pairs) that describe the event. - - The following matrix outlines how Log Event fields are mapped into InfluxDB Line Protocol: - - | Field | Line Protocol | | - |---------------|-------------------| - | host | tag | - | message | field | - | source_type | tag | - | timestamp | timestamp | - | [custom-key] | field | - - The default behavior can be overridden by a `tags` configuration. - """ - - sub_sections: [ - { - title: "Mapping Example" - body: """ - The following event: - - ```js - { - "host": "my.host.com", - "message": "<13>Feb 13 20:07:26 74794bfb6795 root[8539]: i am foobar", - "timestamp": "2019-11-01T21:15:47+00:00", - "custom_field": "custom_value" - } - ``` - - Will be mapped to Influx's line protocol: - - ```influxdb_line_protocol - ns.vector,host=my.host.com,metric_type=logs custom_field="custom_value",message="<13>Feb 13 20:07:26 74794bfb6795 root[8539]: i am foobar" 1572642947000000000 - ``` - """ - }, - ] - } - } -} diff --git a/docs/reference/components/sinks/influxdb_metrics.cue b/docs/reference/components/sinks/influxdb_metrics.cue deleted file mode 100644 index 86d5aa18fac5c..0000000000000 --- a/docs/reference/components/sinks/influxdb_metrics.cue +++ /dev/null @@ -1,222 +0,0 @@ -package metadata - -components: sinks: influxdb_metrics: { - title: "InfluxDB Metrics" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["InfluxData"] - stateful: false - } - - features: { - buffer: enabled: false - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: null - max_events: 20 - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: sinks._influxdb.features.send.tls - to: sinks._influxdb.features.send.to - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: sinks._influxdb.configuration & { - default_namespace: { - common: true - description: """ - Used as a namespace for metrics that don't have it. - A namespace will be prefixed to a metric's name. - """ - required: false - warnings: [] - type: string: { - default: null - examples: ["service"] - syntax: "literal" - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } - - examples: [ - { - _host: _values.local_host - _name: "logins" - _value: 1.5 - title: "Counter" - configuration: { - default_namespace: "service" - } - input: metric: { - kind: "incremental" - name: _name - counter: { - value: _value - } - tags: { - host: _host - } - } - output: "service.\(_name),metric_type=counter,host=\(_host) value=\(_value) 1542182950000000011" - }, - { - _host: _values.local_host - _name: "sparse_stats" - title: "Distribution" - notes: "For distributions with histogram, summary is computed." - configuration: {} - input: metric: { - kind: "incremental" - name: _name - namespace: "app" - distribution: { - samples: [ - {value: 1.0, rate: 1}, - {value: 5.0, rate: 2}, - {value: 3.0, rate: 3}, - ] - statistic: "histogram" - } - tags: { - host: _host - } - } - output: "app.\(_name),metric_type=distribution,host=\(_host) avg=3.333333,count=6,max=5,median=3,min=1,quantile_0.95=5,sum=20 1542182950000000011" - }, - { - _host: _values.local_host - _name: "memory_rss" - _value: 1.5 - title: "Gauge" - configuration: { - default_namespace: "service" - } - input: metric: { - kind: "absolute" - name: _name - namespace: "app" - gauge: { - value: _value - } - tags: { - host: _host - } - } - output: "app.\(_name),metric_type=gauge,host=\(_host) value=\(_value) 1542182950000000011" - }, - { - _host: _values.local_host - _name: "requests" - title: "Histogram" - configuration: {} - input: metric: { - kind: "absolute" - name: _name - histogram: { - buckets: [ - {upper_limit: 1.0, count: 2}, - {upper_limit: 2.1, count: 5}, - {upper_limit: 3.0, count: 10}, - ] - count: 17 - sum: 46.2 - } - tags: { - host: _host - } - } - output: "\(_name),metric_type=histogram,host=\(_host) bucket_1=2i,bucket_2.1=5i,bucket_3=10i,count=17i,sum=46.2 1542182950000000011" - }, - { - _host: _values.local_host - _name: "users" - _value: 1.5 - title: "Set" - configuration: {} - input: metric: { - kind: "incremental" - name: _name - set: { - values: ["first", "another", "last"] - } - tags: { - host: _host - } - } - output: "\(_name),metric_type=set,host=\(_host) value=3 154218295000000001" - }, - { - _host: _values.local_host - _name: "requests" - title: "Summary" - configuration: {} - input: metric: { - kind: "absolute" - name: _name - summary: { - quantiles: [ - {upper_limit: 0.01, value: 1.5}, - {upper_limit: 0.5, value: 2.0}, - {upper_limit: 0.99, value: 3.0}, - ] - count: 6 - sum: 12.1 - } - tags: { - host: _host - } - } - output: "\(_name),metric_type=summary,host=\(_host) count=6i,quantile_0.01=1.5,quantile_0.5=2,quantile_0.99=3,sum=12.1 1542182950000000011" - }, - ] -} diff --git a/docs/reference/components/sinks/kafka.cue b/docs/reference/components/sinks/kafka.cue deleted file mode 100644 index e963f38e48843..0000000000000 --- a/docs/reference/components/sinks/kafka.cue +++ /dev/null @@ -1,153 +0,0 @@ -package metadata - -components: sinks: kafka: { - title: "Kafka" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "stable" - egress_method: "dynamic" - service_providers: ["AWS", "Confluent"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: true - max_bytes: null - max_events: null - timeout_secs: null - } - compression: { - enabled: true - default: "none" - algorithms: ["none", "gzip", "lz4", "snappy", "zstd"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: enabled: false - tls: { - enabled: true - can_enable: true - can_verify_certificate: false - can_verify_hostname: false - enabled_default: false - } - to: components._kafka.features.send.to - } - } - - support: components._kafka.support - - configuration: { - bootstrap_servers: components._kafka.configuration.bootstrap_servers - key_field: { - description: "The log field name or tags key to use for the topic key. If unspecified, the key will be randomly generated. If the field does not exist on the log or in tags, a blank value will be used." - required: true - warnings: [] - type: string: { - examples: ["user_id"] - syntax: "literal" - } - } - librdkafka_options: components._kafka.configuration.librdkafka_options - message_timeout_ms: { - common: false - description: "Local message timeout." - required: false - warnings: [] - type: uint: { - default: 300000 - examples: [150000, 450000] - unit: null - } - } - sasl: { - common: false - description: "Options for SASL/SCRAM authentication support." - required: false - warnings: [] - type: object: { - examples: [] - options: { - enabled: { - common: true - description: "Enable SASL/SCRAM authentication to the remote. (Not supported on Windows at this time.)" - required: false - warnings: [] - type: bool: default: null - } - mechanism: { - common: true - description: "The Kafka SASL/SCRAM mechanisms." - required: false - warnings: [] - type: string: { - default: null - examples: ["SCRAM-SHA-256", "SCRAM-SHA-512"] - syntax: "literal" - } - } - password: { - common: true - description: "The Kafka SASL/SCRAM authentication password." - required: false - warnings: [] - type: string: { - default: null - examples: ["password"] - syntax: "literal" - } - } - username: { - common: true - description: "The Kafka SASL/SCRAM authentication username." - required: false - warnings: [] - type: string: { - default: null - examples: ["username"] - syntax: "literal" - } - } - } - } - } - socket_timeout_ms: components._kafka.configuration.socket_timeout_ms - topic: { - description: "The Kafka topic name to write events to." - required: true - warnings: [] - type: string: { - examples: ["topic-1234", "logs-{{unit}}-%Y-%m-%d"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } - - how_it_works: components._kafka.how_it_works -} diff --git a/docs/reference/components/sinks/logdna.cue b/docs/reference/components/sinks/logdna.cue deleted file mode 100644 index 2cf15af5ebf01..0000000000000 --- a/docs/reference/components/sinks/logdna.cue +++ /dev/null @@ -1,164 +0,0 @@ -package metadata - -components: sinks: logdna: { - title: "LogDNA" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["LogDNA"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 10490000 - max_events: null - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: enabled: false - to: { - service: services.logdna - - interface: { - socket: { - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - api_key: { - description: "The Ingestion API key." - required: true - warnings: [] - type: string: { - examples: ["${LOGDNA_API_KEY}", "ef8d5de700e7989468166c40fc8a0ccd"] - syntax: "literal" - } - } - default_app: { - common: false - description: "The default app that will be set for events that do not contain a `file` or `app` field." - required: false - warnings: [] - type: string: { - default: "vector" - examples: ["vector", "myapp"] - syntax: "literal" - } - } - default_env: { - common: false - description: "The default environment that will be set for events that do not contain an `env` field." - required: false - warnings: [] - type: string: { - default: "production" - examples: ["staging", "production"] - syntax: "literal" - } - } - endpoint: { - common: false - description: "The endpoint to send logs to." - required: false - type: string: { - default: "https://logs.logdna.com/logs/ingest" - examples: ["http://127.0.0.1", "http://example.com"] - syntax: "literal" - } - } - hostname: { - description: "The hostname that will be attached to each batch of events." - required: true - warnings: [] - type: string: { - examples: ["${HOSTNAME}", "my-local-machine"] - syntax: "literal" - } - } - ip: { - common: false - description: "The IP address that will be attached to each batch of events." - required: false - warnings: [] - type: string: { - default: null - examples: ["0.0.0.0"] - syntax: "literal" - } - } - mac: { - common: false - description: "The mac address that will be attached to each batch of events." - required: false - warnings: [] - type: string: { - default: null - examples: ["my-mac-address"] - syntax: "literal" - } - } - tags: { - common: false - description: "The tags that will be attached to each batch of events." - required: false - warnings: [] - type: array: { - default: null - items: type: string: { - examples: ["tag1", "tag2"] - syntax: "literal" - } - } - } - } - - input: { - logs: true - metrics: null - } -} diff --git a/docs/reference/components/sinks/loki.cue b/docs/reference/components/sinks/loki.cue deleted file mode 100644 index 47ee25f4f0de9..0000000000000 --- a/docs/reference/components/sinks/loki.cue +++ /dev/null @@ -1,208 +0,0 @@ -package metadata - -components: sinks: loki: { - title: "Loki" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "beta" - egress_method: "batch" - service_providers: ["Grafana"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_events: 100000 - max_bytes: null - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: { - enabled: true - default: "json" - enum: ["json", "text"] - } - } - request: { - enabled: true - concurrency: 1 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.loki - - interface: { - socket: { - direction: "outgoing" - protocols: ["http"] - ssl: "optional" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - endpoint: { - description: "The base URL of the Loki instance." - required: true - type: string: { - examples: ["http://localhost:3100"] - syntax: "literal" - } - } - auth: configuration._http_auth & {_args: { - password_example: "${LOKI_PASSWORD}" - username_example: "${LOKI_USERNAME}" - }} - labels: { - description: "A set of labels that will be attached to each batch of events. These values are also templateable to allow events to provide dynamic label values.Note: If the set of label values has high cardinality this can cause drastic performance issues with Loki. To ensure this does not happen one should try to reduce the amount of unique label values." - required: true - warnings: [] - type: object: { - examples: [ - { - "forwarder": "vector" - "event": "{{ event_field }}" - "key": "value" - }, - ] - options: { - "*": { - common: false - description: "Any Loki label" - required: false - type: string: { - default: null - examples: ["vector", "{{ event_field }}"] - syntax: "template" - } - } - } - } - } - out_of_order_action: { - common: false - description: """ - Some sources may generate events with timestamps that are - not strictly in chronological order. The Loki service cannot - accept a stream of such events. Vector will sort events before - sending it to Loki. However, some late events might arrive after - a batch has been sent. This option specifies what Vector should do - with those events. - """ - required: false - warnings: [] - type: string: { - syntax: "literal" - default: "drop" - enum: { - "drop": "Drop the event, with a warning." - "rewrite_timestamp": "Rewrite timestamp of the event to the latest timestamp that was pushed." - } - } - } - remove_label_fields: { - common: false - description: "If this is set to `true` then when labels are collected from events those fields will also get removed from the event." - required: false - warnings: [] - type: bool: default: false - } - remove_timestamp: { - common: false - description: "If this is set to `true` then the timestamp will be removed from the event. This is useful because Loki uses the timestamp to index the event." - required: false - warnings: [] - type: bool: default: true - } - tenant_id: { - common: false - description: "The tenant id that will be sent with every request, by default this is not required since a proxy should set this header. When running Loki locally a tenant id is not required either.\n\nYou can read more about tenant id's [here][urls.loki_multi_tenancy]" - required: false - warnings: [] - type: string: { - default: null - examples: ["some_tenant_id", "{{ event_field }}"] - syntax: "template" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - decentralized_deployments: { - title: "Decentralized Deployments" - body: """ - Loki currently does not support out-of-order inserts. If - Vector is deployed in a decentralized setup then there is - the possibility that logs might get rejected due to data - races between Vector instances. To avoid this we suggest - either assigning each Vector instance with a unique label - or deploying a centralized Vector which will ensure no logs - will get sent out-of-order. - """ - } - - concurrency: { - title: "Concurrency" - body: """ - To make sure logs arrive at Loki in a correct order, - the `loki` sink only sends one request at a time. - Setting `request.concurrency` will not have any effects. - """ - } - - event_ordering: { - title: "Event Ordering" - body: """ - The `loki` sink will ensure that all logs are sorted via - their `timestamp`. This is to ensure that logs will be - accepted by Loki. If no timestamp is supplied with events - then the Loki sink will supply its own monotonically - increasing timestamp. - """ - } - } -} diff --git a/docs/reference/components/sinks/nats.cue b/docs/reference/components/sinks/nats.cue deleted file mode 100644 index 86249119e3e07..0000000000000 --- a/docs/reference/components/sinks/nats.cue +++ /dev/null @@ -1,102 +0,0 @@ -package metadata - -components: sinks: nats: { - title: "NATS" - - classes: { - commonly_used: false - delivery: "best_effort" - development: "beta" - egress_method: "stream" - service_providers: [] - stateful: false - } - - features: { - buffer: enabled: false - healthcheck: enabled: true - send: { - compression: enabled: false - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: enabled: false - tls: enabled: false - to: { - service: services.nats - - interface: { - socket: { - direction: "outgoing" - protocols: ["tcp"] - ssl: "disabled" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - url: { - description: "The NATS URL to connect to. The url _must_ take the form of `nats://server:port`." - required: true - warnings: [] - type: string: { - examples: ["nats://demo.nats.io", "nats://127.0.0.1:4222"] - syntax: "literal" - } - } - subject: { - description: "The NATS subject to publish messages to." - required: true - warnings: [] - type: string: { - examples: ["{{ host }}", "foo", "time.us.east", "time.*.east", "time.>", ">"] - syntax: "template" - } - } - name: { - common: false - description: "A name assigned to the NATS connection." - required: false - type: string: { - default: "vector" - examples: ["foo", "API Name Option Example"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - telemetry: metrics: { - missing_keys_total: components.sources.internal_metrics.output.metrics.missing_keys_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - send_errors_total: components.sources.internal_metrics.output.metrics.send_errors_total - } -} diff --git a/docs/reference/components/sinks/new_relic_logs.cue b/docs/reference/components/sinks/new_relic_logs.cue deleted file mode 100644 index 29b11eabc79bc..0000000000000 --- a/docs/reference/components/sinks/new_relic_logs.cue +++ /dev/null @@ -1,110 +0,0 @@ -package metadata - -components: sinks: new_relic_logs: { - title: "New Relic Logs" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["New Relic"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 5240000 - max_events: null - timeout_secs: 1 - } - compression: { - enabled: true - default: "none" - algorithms: ["gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 100 - rate_limit_duration_secs: 1 - rate_limit_num: 100 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 30 - headers: false - } - tls: enabled: false - to: { - service: services.new_relic_logs - - interface: { - socket: { - api: { - title: "New Relic Log API" - url: urls.new_relic_log_api - } - direction: "outgoing" - protocols: ["http"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - insert_key: { - common: true - description: "Your New Relic insert key (if applicable)." - required: false - warnings: [] - type: string: { - default: null - examples: ["xxxx", "${NEW_RELIC_INSERT_KEY}"] - syntax: "literal" - } - } - license_key: { - common: true - description: "Your New Relic license key (if applicable)." - required: false - warnings: [] - type: string: { - default: null - examples: ["xxxx", "${NEW_RELIC_LICENSE_KEY}"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } -} diff --git a/docs/reference/components/sinks/papertrail.cue b/docs/reference/components/sinks/papertrail.cue deleted file mode 100644 index b1fd7811d8e0d..0000000000000 --- a/docs/reference/components/sinks/papertrail.cue +++ /dev/null @@ -1,101 +0,0 @@ -package metadata - -components: sinks: papertrail: { - title: "Papertrail" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "stream" - service_providers: ["Papertrail"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - compression: enabled: false - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - send_buffer_bytes: enabled: true - keepalive: enabled: true - request: enabled: false - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - can_verify_hostname: true - enabled_default: true - } - to: { - service: services.papertrail - - interface: { - socket: { - api: { - title: "Syslog" - url: urls.syslog - } - direction: "outgoing" - protocols: ["tcp"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - endpoint: { - description: "The endpoint to send logs to." - required: true - type: string: { - examples: ["logs.papertrailapp.com:12345"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - setup: { - title: "Setup" - body: """ - 1. Register for a free account at [Papertrailapp.com](https://papertrailapp.com/signup?plan=free) - - 2. [Create a Log Destination](https://papertrailapp.com/destinations/new) to get a Log Destination - and ensure that TCP is enabled. - - 3. Set the log destination as the `endpoint` option and start shipping your logs! - """ - } - } -} diff --git a/docs/reference/components/sinks/prometheus_exporter.cue b/docs/reference/components/sinks/prometheus_exporter.cue deleted file mode 100644 index 7fd54ce56d3ba..0000000000000 --- a/docs/reference/components/sinks/prometheus_exporter.cue +++ /dev/null @@ -1,374 +0,0 @@ -package metadata - -components: sinks: prometheus_exporter: { - _port: 9598 - - title: "Prometheus Exporter" - alias: "prometheus" - - classes: { - commonly_used: true - delivery: "best_effort" - development: "stable" - egress_method: "expose" - service_providers: [] - stateful: true - } - - features: { - buffer: enabled: false - healthcheck: enabled: false - exposes: { - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - enabled_default: false - } - - for: { - service: services.prometheus - - interface: { - socket: { - api: { - title: "Prometheus text exposition format" - url: urls.prometheus_text_based_exposition_format - } - direction: "incoming" - port: _port - protocols: ["http"] - ssl: "disabled" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - High cardinality metric names and labels are discouraged by - Prometheus as they can provide performance and reliability - problems. You should consider alternative strategies to reduce - the cardinality. Vector offers a [`tag_cardinality_limit` transform][docs.transforms.tag_cardinality_limit] - as a way to protect against this. - """, - ] - notices: [] - } - - configuration: { - address: { - description: "The address to expose for scraping." - required: true - warnings: [] - type: string: { - examples: ["0.0.0.0:\(_port)"] - syntax: "literal" - } - } - buckets: { - common: false - description: "Default buckets to use for aggregating [distribution][docs.data-model.metric#distribution] metrics into histograms." - required: false - warnings: [] - type: array: { - default: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0] - items: type: float: examples: [0.005, 0.01] - } - } - flush_period_secs: { - common: false - description: "Time interval between [set][docs.data-model.metric#set] values are reset." - required: false - warnings: [] - type: uint: { - default: 60 - unit: "seconds" - } - } - default_namespace: { - common: true - description: """ - Used as a namespace for metrics that don't have it. Typically - namespaces are set during ingestion (sources), but it is - optional and when missing, we'll use this value. It should - follow Prometheus [naming conventions](\(urls.prometheus_metric_naming)). - """ - required: false - warnings: [] - type: string: { - default: null - examples: ["service"] - syntax: "literal" - } - } - quantiles: { - common: false - description: "Quantiles to use for aggregating [distribution][docs.data-model.metric#distribution] metrics into a summary." - required: false - warnings: [] - type: array: { - default: [0.5, 0.75, 0.9, 0.95, 0.99] - items: type: float: examples: [0.5, 0.75, 0.9, 0.95, 0.99] - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: false - summary: true - } - } - - examples: [ - { - _host: _values.local_host - _name: "logins" - _namespace: "service" - _value: 1.5 - title: "Counter" - configuration: { - default_namespace: _namespace - } - input: metric: { - kind: "incremental" - name: _name - counter: { - value: _value - } - tags: { - host: _host - } - } - output: """ - # HELP \(_namespace)_\(_name) \(_name) - # TYPE \(_namespace)_\(_name) counter - \(_namespace)_\(_name){host="\(_host)"} \(_value) - """ - }, - { - _host: _values.local_host - _name: "memory_rss" - _namespace: "app" - _value: 1.5 - title: "Gauge" - configuration: {} - input: metric: { - kind: "absolute" - name: _name - namespace: _namespace - gauge: { - value: _value - } - tags: { - host: _host - } - } - output: """ - # HELP \(_namespace)_\(_name) \(_name) - # TYPE \(_namespace)_\(_name) gauge - \(_namespace)_\(_name){host="\(_host)"} \(_value) - """ - }, - { - _host: _values.local_host - _name: "response_time_s" - title: "Histogram" - configuration: { - } - input: metric: { - kind: "absolute" - name: _name - histogram: { - buckets: [ - {upper_limit: 0.005, count: 0}, - {upper_limit: 0.01, count: 1}, - {upper_limit: 0.025, count: 0}, - {upper_limit: 0.05, count: 1}, - {upper_limit: 0.1, count: 0}, - {upper_limit: 0.25, count: 0}, - {upper_limit: 0.5, count: 0}, - {upper_limit: 1.0, count: 0}, - {upper_limit: 2.5, count: 0}, - {upper_limit: 5.0, count: 0}, - {upper_limit: 10.0, count: 0}, - ] - count: 2 - sum: 0.789 - } - } - output: """ - # HELP \(_name) \(_name) - # TYPE \(_name) histogram - \(_name)_bucket{le="0.005"} 0 - \(_name)_bucket{le="0.01"} 1 - \(_name)_bucket{le="0.025"} 0 - \(_name)_bucket{le="0.05"} 1 - \(_name)_bucket{le="0.1"} 0 - \(_name)_bucket{le="0.25"} 0 - \(_name)_bucket{le="0.5"} 0 - \(_name)_bucket{le="1.0"} 0 - \(_name)_bucket{le="2.5"} 0 - \(_name)_bucket{le="5.0"} 0 - \(_name)_bucket{le="10.0"} 0 - \(_name)_bucket{le="+Inf"} 0 - \(_name)_sum 0.789 - \(_name)_count 2 - """ - }, - { - _host: _values.local_host - _name: "request_retries" - title: "Distribution to histogram" - notes: "Histogram will be computed out of values and then passed to prometheus." - configuration: { - buckets: [0.0, 1.0, 3.0] - } - input: metric: { - name: _name - kind: "incremental" - distribution: { - samples: [ - {value: 0.0, rate: 4}, - {value: 1.0, rate: 2}, - {value: 4.0, rate: 1}, - ] - statistic: "histogram" - } - tags: { - host: _host - } - } - output: """ - # HELP \(_name) \(_name) - # TYPE \(_name) histogram - \(_name)_bucket{host="\(_host)",le="0"} 4 - \(_name)_bucket{host="\(_host)",le="1"} 6 - \(_name)_bucket{host="\(_host)",le="3"} 6 - \(_name)_bucket{host="\(_host)",le="+Inf"} 7 - \(_name)_sum{host="\(_host)"} 6 - \(_name)_count{host="\(_host)"} 7 - """ - }, - { - _host: _values.local_host - _name: "request_retries" - title: "Distribution to summary" - notes: "Summary will be computed out of values and then passed to prometheus." - configuration: { - quantiles: [0.5, 0.75, 0.95] - } - input: metric: { - name: _name - kind: "incremental" - distribution: { - samples: [ - {value: 0.0, rate: 3}, - {value: 1.0, rate: 2}, - {value: 4.0, rate: 1}, - ] - statistic: "summary" - } - } - output: """ - # HELP \(_name) \(_name) - # TYPE \(_name) summary - \(_name){quantile="0.5"} 0 - \(_name){quantile="0.75"} 1 - \(_name){quantile="0.95"} 4 - \(_name)_sum 6 - \(_name)_count 6 - \(_name)_min 0 - \(_name)_max 4 - \(_name)_avg 1 - """ - }, - { - _host: _values.local_host - _name: "requests" - title: "Summary" - configuration: {} - input: metric: { - name: _name - kind: "absolute" - summary: { - quantiles: [ - {upper_limit: 0.01, value: 1.5}, - {upper_limit: 0.5, value: 2.0}, - {upper_limit: 0.99, value: 3.0}, - ] - count: 6 - sum: 12.0 - } - tags: { - host: _host - } - } - output: """ - # HELP \(_name) \(_name) - # TYPE \(_name) summary - \(_name){host="\(_host)",quantile="0.01"} 1.5 - \(_name){host="\(_host)",quantile="0.5"} 2 - \(_name){host="\(_host)",quantile="0.99"} 3 - \(_name)_sum{host="\(_host)"} 12 - \(_name)_count{host="\(_host)"} 6 - """ - }, - ] - - how_it_works: { - histogram_buckets: { - title: "Histogram Buckets" - body: #""" - Choosing the appropriate buckets for Prometheus histograms is a complicated - point of discussion. The [Histograms and Summaries Prometheus guide](\(urls.prometheus_histograms_guide)) provides a good overview of histograms, - buckets, summaries, and how you should think about configuring them. The buckets - you choose should align with your known range and distribution of values as - well as how you plan to report on them. The aforementioned guide provides - examples on how you should align them. - """# - sub_sections: [ - { - title: "Default Buckets" - body: """ - The `buckets` option defines the global default buckets for histograms. - These defaults are tailored to broadly measure the response time (in seconds) - of a network service. Most likely, however, you will be required to define - buckets customized to your use case. - """ - }, - ] - } - - memory_usage: { - title: "Memory Usage" - body: """ - Like other Prometheus instances, the `prometheus` sink aggregates - metrics in memory which keeps the memory footprint to a minimum if Prometheus - fails to scrape the Vector instance over an extended period of time. The - downside is that data will be lost if Vector is restarted. This is by design of - Prometheus' pull model approach, but is worth noting if restart Vector - frequently. - """ - } - } -} diff --git a/docs/reference/components/sinks/prometheus_remote_write.cue b/docs/reference/components/sinks/prometheus_remote_write.cue deleted file mode 100644 index 4b2349911a47d..0000000000000 --- a/docs/reference/components/sinks/prometheus_remote_write.cue +++ /dev/null @@ -1,161 +0,0 @@ -package metadata - -components: sinks: prometheus_remote_write: { - title: "Prometheus Remote Write" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "beta" - egress_method: "batch" - service_providers: [] - stateful: false - } - - features: { - buffer: enabled: false - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: null - max_events: 1000 - timeout_secs: 1 - } - // TODO Snappy is always enabled - compression: enabled: false - encoding: enabled: false - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.prometheus - - interface: { - socket: { - api: { - title: "Prometheus remote_write protocol" - url: urls.prometheus_remote_write - } - direction: "outgoing" - protocols: ["http"] - ssl: "optional" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - High cardinality metric names and labels are discouraged by - Prometheus as they can provide performance and reliability - problems. You should consider alternative strategies to reduce - the cardinality. Vector offers a [`tag_cardinality_limit` transform][docs.transforms.tag_cardinality_limit] - as a way to protect against this. - """, - ] - notices: [] - } - - configuration: { - endpoint: { - description: "The endpoint URL to send data to." - required: true - warnings: [] - type: string: { - examples: ["https://localhost:8087/"] - syntax: "literal" - } - } - auth: configuration._http_auth & {_args: { - password_example: "${HTTP_PASSWORD}" - username_example: "${HTTP_USERNAME}" - }} - default_namespace: { - common: true - description: """ - Used as a namespace for metrics that don't have it. - A namespace will be prefixed to a metric's name. - It should follow Prometheus [naming conventions](\(urls.prometheus_metric_naming)). - """ - required: false - warnings: [] - type: string: { - default: null - examples: ["service"] - syntax: "literal" - } - } - buckets: { - common: false - description: "Default buckets to use for aggregating [distribution][docs.data-model.metric#distribution] metrics into histograms." - required: false - warnings: [] - type: array: { - default: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0] - items: type: float: examples: [0.005, 0.01] - } - } - quantiles: { - common: false - description: "Quantiles to use for aggregating [distribution][docs.data-model.metric#distribution] metrics into a summary." - required: false - warnings: [] - type: array: { - default: [0.5, 0.75, 0.9, 0.95, 0.99] - items: type: float: examples: [0.5, 0.75, 0.9, 0.95, 0.99] - } - } - tenant_id: { - common: false - description: "If set, a header named `X-Scope-OrgID` will be added to outgoing requests with the text of this setting. This may be used by Cortex or other remote services to identify the tenant making the request." - required: false - warnings: [] - type: string: { - default: null - examples: ["my-domain"] - syntax: "template" - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: false - summary: true - } - } -} diff --git a/docs/reference/components/sinks/pulsar.cue b/docs/reference/components/sinks/pulsar.cue deleted file mode 100644 index fd35ad6d7335a..0000000000000 --- a/docs/reference/components/sinks/pulsar.cue +++ /dev/null @@ -1,125 +0,0 @@ -package metadata - -components: sinks: pulsar: { - title: "Apache Pulsar" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "beta" - egress_method: "stream" - service_providers: [] - stateful: false - } - - features: { - buffer: enabled: false - healthcheck: enabled: true - send: { - compression: enabled: false - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["text", "json"] - } - } - request: enabled: false - tls: enabled: false - to: { - service: services.pulsar - - interface: { - socket: { - api: { - title: "Pulsar protocol" - url: urls.pulsar_protocol - } - direction: "outgoing" - protocols: ["http"] - ssl: "disabled" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - auth: { - common: false - description: "Options for the authentication strategy." - required: false - warnings: [] - type: object: { - examples: [] - options: { - name: { - common: false - description: "The basic authentication name." - required: false - warnings: [] - type: string: { - default: null - examples: ["${PULSAR_NAME}", "name123"] - syntax: "literal" - } - } - token: { - common: false - description: "The basic authentication password." - required: false - warnings: [] - type: string: { - default: null - examples: ["${PULSAR_TOKEN}", "123456789"] - syntax: "literal" - } - } - } - } - } - endpoint: { - description: "Endpoint to which the pulsar client should connect to." - required: true - type: string: { - examples: ["pulsar://127.0.0.1:6650"] - syntax: "literal" - } - } - topic: { - description: "The Pulsar topic name to write events to." - required: true - warnings: [] - type: string: { - examples: ["topic-1234"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - telemetry: metrics: { - encode_errors_total: components.sources.internal_metrics.output.metrics.encode_errors_total - } -} diff --git a/docs/reference/components/sinks/sematext_logs.cue b/docs/reference/components/sinks/sematext_logs.cue deleted file mode 100644 index 7a3f48462ac3c..0000000000000 --- a/docs/reference/components/sinks/sematext_logs.cue +++ /dev/null @@ -1,80 +0,0 @@ -package metadata - -components: sinks: sematext_logs: { - title: "Sematext Logs" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["Sematext"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 10490000 - max_events: null - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - request: { - enabled: true - concurrency: 5 - rate_limit_duration_secs: 1 - rate_limit_num: 5 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: enabled: false - to: sinks._sematext.features.send.to - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: sinks._sematext.configuration - - input: { - logs: true - metrics: null - } - - how_it_works: { - setup: { - title: "Setup" - body: """ - 1. Register for a free account at [Sematext.com](\(urls.sematext_registration)) - - 2. [Create a Logs App](\(urls.sematext_create_logs_app)) to get a Logs Token - for [Sematext Logs](\(urls.sematext_logsense)) - """ - } - } -} diff --git a/docs/reference/components/sinks/sematext_metrics.cue b/docs/reference/components/sinks/sematext_metrics.cue deleted file mode 100644 index 07670ba2b91d8..0000000000000 --- a/docs/reference/components/sinks/sematext_metrics.cue +++ /dev/null @@ -1,88 +0,0 @@ -package metadata - -components: sinks: sematext_metrics: { - title: "Sematext Metrics" - - classes: { - commonly_used: false - delivery: "at_least_once" - development: "beta" - service_providers: ["Sematext"] - egress_method: "batch" - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 30000000 - max_events: null - timeout_secs: 1 - } - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - request: enabled: false - tls: enabled: false - to: sinks._sematext.features.send.to - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - [Sematext monitoring](\(urls.sematext_monitoring)) only accepts metrics which contain a single value. - Therefore, only `counter` and `gauge` metrics are supported. If you'd like to ingest other - metric types please consider using the [`metric_to_log` transform][docs.transforms.metric_to_log] - with the `sematext_logs` sink. - """, - ] - notices: [] - } - - configuration: sinks._sematext.configuration & { - default_namespace: { - description: "Used as a namespace for metrics that don't have it." - required: true - warnings: [] - type: string: { - examples: ["service"] - syntax: "literal" - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: false - gauge: true - histogram: false - set: false - summary: false - } - } - - telemetry: metrics: { - encode_errors_total: components.sources.internal_metrics.output.metrics.encode_errors_total - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/sinks/socket.cue b/docs/reference/components/sinks/socket.cue deleted file mode 100644 index a8d3be4907c02..0000000000000 --- a/docs/reference/components/sinks/socket.cue +++ /dev/null @@ -1,117 +0,0 @@ -package metadata - -components: sinks: socket: { - title: "Socket" - - classes: { - commonly_used: true - delivery: "best_effort" - development: "stable" - egress_method: "stream" - service_providers: [] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - compression: enabled: false - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - send_buffer_bytes: { - enabled: true - relevant_when: "mode = `tcp` or mode = `udp` && os = `unix`" - } - keepalive: enabled: true - request: enabled: false - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.socket_receiver - - interface: { - socket: { - direction: "outgoing" - protocols: ["tcp", "udp", "unix"] - ssl: "required" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - address: { - description: "The address to connect to. The address _must_ include a port." - relevant_when: "mode = `tcp` or `udp`" - required: true - warnings: [] - type: string: { - examples: ["92.12.333.224:5000"] - syntax: "literal" - } - } - mode: { - description: "The type of socket to use." - required: true - warnings: [] - type: string: { - enum: { - tcp: "TCP socket" - udp: "UDP socket" - unix: "Unix domain socket" - } - syntax: "literal" - } - } - path: { - description: "The unix socket path. This should be the absolute path." - relevant_when: "mode = `tcp` or `udp`" - required: true - warnings: [] - type: string: { - examples: ["/path/to/socket"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - telemetry: metrics: { - connection_errors_total: components.sources.internal_metrics.output.metrics.connection_errors_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sinks/splunk_hec.cue b/docs/reference/components/sinks/splunk_hec.cue deleted file mode 100644 index 146deb9d5d5fc..0000000000000 --- a/docs/reference/components/sinks/splunk_hec.cue +++ /dev/null @@ -1,181 +0,0 @@ -package metadata - -components: sinks: splunk_hec: { - title: "Splunk HEC" - - classes: { - commonly_used: true - delivery: "at_least_once" - development: "stable" - egress_method: "batch" - service_providers: ["Splunk"] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - batch: { - enabled: true - common: false - max_bytes: 1049000 - max_events: null - timeout_secs: 1 - } - compression: { - enabled: true - default: "none" - algorithms: ["gzip"] - levels: ["none", "fast", "default", "best", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - } - encoding: { - enabled: true - codec: { - enabled: true - default: null - enum: ["json", "text"] - } - } - request: { - enabled: true - concurrency: 10 - rate_limit_duration_secs: 1 - rate_limit_num: 10 - retry_initial_backoff_secs: 1 - retry_max_duration_secs: 10 - timeout_secs: 60 - headers: false - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.splunk - - interface: { - socket: { - api: { - title: "Splunk HEC event endpoint" - url: urls.splunk_hec_event_endpoint - } - direction: "outgoing" - protocols: ["http"] - ssl: "optional" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - endpoint: { - description: "The base URL of the Splunk instance." - required: true - type: string: { - examples: ["https://http-inputs-hec.splunkcloud.com", "https://hec.splunk.com:8088", "http://example.com"] - syntax: "literal" - } - } - host_key: { - common: true - description: "The name of the log field to be used as the hostname sent to Splunk HEC. This overrides the [global `host_key` option][docs.reference.configuration.global-options#host_key]." - required: false - warnings: [] - type: string: { - default: null - examples: ["hostname"] - syntax: "literal" - } - } - index: { - common: false - description: "The name of the index where send the events to. If not specified, the default index is used.\n" - required: false - warnings: [] - type: string: { - default: null - examples: ["custom_index"] - syntax: "literal" - } - } - indexed_fields: { - common: true - description: "Fields to be [added to Splunk index][urls.splunk_hec_indexed_fields]." - required: false - warnings: [] - type: array: { - default: null - items: type: string: { - examples: ["field1", "field2"] - syntax: "field_path" - } - } - } - source: { - common: false - description: "The source of events sent to this sink. Typically the filename the logs originated from. If unset, the Splunk collector will set it.\n" - required: false - warnings: [] - type: string: { - default: null - examples: ["/var/log/syslog", "UDP:514"] - syntax: "literal" - } - } - sourcetype: { - common: false - description: "The sourcetype of events sent to this sink. If unset, Splunk will default to httpevent.\n" - required: false - warnings: [] - type: string: { - default: null - examples: ["_json", "httpevent"] - syntax: "literal" - } - } - token: { - description: "Your Splunk HEC token." - required: true - warnings: [] - type: string: { - examples: ["${SPLUNK_HEC_TOKEN}", "A94A8FE5CCB19BA61C4C08"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - telemetry: metrics: { - encode_errors_total: components.sources.internal_metrics.output.metrics.encode_errors_total - http_request_errors_total: components.sources.internal_metrics.output.metrics.http_request_errors_total - missing_keys_total: components.sources.internal_metrics.output.metrics.missing_keys_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - requests_received_total: components.sources.internal_metrics.output.metrics.requests_received_total - } -} diff --git a/docs/reference/components/sinks/statsd.cue b/docs/reference/components/sinks/statsd.cue deleted file mode 100644 index f88a723565cfa..0000000000000 --- a/docs/reference/components/sinks/statsd.cue +++ /dev/null @@ -1,72 +0,0 @@ -package metadata - -components: sinks: statsd: { - title: "Statsd" - - classes: sinks.socket.classes - - features: { - buffer: sinks.socket.features.buffer - healthcheck: sinks.socket.features.healthcheck - send: { - compression: sinks.socket.features.send.compression - encoding: { - enabled: true - codec: enabled: false - } - request: sinks.socket.features.send.request - send_buffer_bytes: { - enabled: true - relevant_when: "mode = `tcp` or mode = `udp` && os = `unix`" - } - tls: sinks.socket.features.send.tls - to: { - service: services.statsd_receiver - - interface: { - socket: { - direction: "outgoing" - protocols: ["tcp", "udp", "unix"] - ssl: "required" - } - } - } - } - } - - support: sinks.socket.support - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: false - set: true - summary: false - } - } - - configuration: sinks.socket.configuration & { - "type": "type": string: enum: statsd: "The type of this component." - default_namespace: { - common: true - description: """ - Used as a namespace for metrics that don't have it. - A namespace will be prefixed to a metric's name. - """ - required: false - warnings: [] - type: string: { - default: null - examples: ["service"] - syntax: "literal" - } - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/sinks/vector.cue b/docs/reference/components/sinks/vector.cue deleted file mode 100644 index 954943a4c4cb4..0000000000000 --- a/docs/reference/components/sinks/vector.cue +++ /dev/null @@ -1,99 +0,0 @@ -package metadata - -components: sinks: vector: { - title: "Vector" - - description: """ - Sends data to another downstream Vector instance via the Vector source. - """ - - classes: { - commonly_used: false - delivery: "best_effort" - development: "beta" - egress_method: "stream" - service_providers: [] - stateful: false - } - - features: { - buffer: enabled: true - healthcheck: enabled: true - send: { - compression: enabled: false - encoding: { - enabled: true - codec: enabled: false - } - send_buffer_bytes: enabled: true - keepalive: enabled: true - request: enabled: false - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - to: { - service: services.vector - - interface: { - socket: { - direction: "outgoing" - protocols: ["tcp"] - ssl: "optional" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - input: { - logs: true - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - summary: true - set: true - } - } - - configuration: { - address: { - description: "The downstream Vector address to connect to. The address _must_ include a port." - required: true - warnings: [] - type: string: { - examples: ["92.12.333.224:5000"] - syntax: "literal" - } - } - } - - how_it_works: components.sources.vector.how_it_works - - telemetry: metrics: { - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - protobuf_decode_errors_total: components.sources.internal_metrics.output.metrics.protobuf_decode_errors_total - } -} diff --git a/docs/reference/components/sources.cue b/docs/reference/components/sources.cue deleted file mode 100644 index 1bb19d70b3fa0..0000000000000 --- a/docs/reference/components/sources.cue +++ /dev/null @@ -1,231 +0,0 @@ -package metadata - -components: sources: [Name=string]: { - kind: "source" - features: _ - - configuration: { - if features.collect != _|_ { - if features.collect.checkpoint.enabled { - data_dir: { - common: false - description: "The directory used to persist file checkpoint positions. By default, the global `data_dir` option is used. Please make sure the Vector project has write permissions to this dir." - required: false - type: string: { - default: null - examples: ["/var/lib/vector"] - syntax: "file_system_path" - } - } - } - } - - if features.multiline.enabled { - multiline: { - common: false - description: "Multiline parsing configuration. If not specified, multiline parsing is disabled." - required: false - type: object: options: { - condition_pattern: { - description: "Condition regex pattern to look for. Exact behavior is configured via `mode`." - required: true - sort: 3 - type: string: { - examples: ["^[\\s]+", "\\\\$", "^(INFO|ERROR) ", ";$"] - syntax: "regex" - } - } - mode: { - description: "Mode of operation, specifies how the `condition_pattern` is interpreted." - required: true - sort: 2 - type: string: { - enum: { - continue_through: "All consecutive lines matching this pattern are included in the group. The first line (the line that matched the start pattern) does not need to match the `ContinueThrough` pattern. This is useful in cases such as a Java stack trace, where some indicator in the line (such as leading whitespace) indicates that it is an extension of the preceding line." - continue_past: "All consecutive lines matching this pattern, plus one additional line, are included in the group. This is useful in cases where a log message ends with a continuation marker, such as a backslash, indicating that the following line is part of the same message." - halt_before: "All consecutive lines not matching this pattern are included in the group. This is useful where a log line contains a marker indicating that it begins a new message." - halt_with: "All consecutive lines, up to and including the first line matching this pattern, are included in the group. This is useful where a log line ends with a termination marker, such as a semicolon." - } - syntax: "literal" - } - } - start_pattern: { - description: "Start regex pattern to look for as a beginning of the message." - required: true - sort: 1 - type: string: { - examples: ["^[^\\s]", "\\\\$", "^(INFO|ERROR) ", "[^;]$"] - syntax: "regex" - } - } - timeout_ms: { - description: "The maximum time to wait for the continuation. Once this timeout is reached, the buffered message is guaranteed to be flushed, even if incomplete." - required: true - sort: 4 - type: uint: { - examples: [1_000, 600_000] - unit: "milliseconds" - } - } - } - } - } - - if features.encoding != _|_ { - if features.encoding.enabled { - encoding: { - common: false - description: "Configures the encoding specific source behavior." - required: false - type: object: options: { - charset: { - common: false - description: "Encoding of the source messages. Takes one of the encoding [label strings](\(urls.encoding_charset_labels)) defined as part of the [Encoding Standard](\(urls.encoding_standard)). When set, the messages are transcoded from the specified encoding to UTF-8, which is the encoding vector assumes internally for string-like data. Enable this transcoding operation if you need your data to be in UTF-8 for further processing. At the time of transcoding, any malformed sequences (that can't be mapped to UTF-8) will be replaced with [replacement character](\(urls.unicode_replacement_character)) and warnings will be logged." - required: false - type: string: { - default: null - examples: ["utf-16le", "utf-16be"] - syntax: "literal" - } - } - } - } - } - } - - if features.collect != _|_ { - if features.collect.tls != _|_ { - if features.collect.tls.enabled { - tls: configuration._tls_connect & {_args: { - can_enable: features.collect.tls.can_enable - can_verify_certificate: features.collect.tls.can_enable - can_verify_hostname: features.collect.tls.can_verify_hostname - enabled_default: features.collect.tls.enabled_default - }} - } - } - } - - if features.receive != _|_ { - if features.receive.receive_buffer_size != _|_ { - send_buffer_bytes: { - common: false - description: "Configures the receive buffer size using the `SO_RCVBUF` option on the socket." - required: false - type: uint: { - examples: [65536] - } - relevant_when: features.receive.receive_buffer_bytes.relevant_when - } - } - - if features.receive.keepalive != _|_ { - keepalive: { - common: false - description: "Configures the TCP keepalive behavior for the connection to the source." - required: false - type: object: { - examples: [] - options: { - time_secs: { - common: false - description: "The time a connection needs to be idle before sending TCP keepalive probes." - required: false - type: uint: { - default: null - unit: "seconds" - } - } - } - } - } - } - - if features.receive.tls.enabled { - tls: configuration._tls_accept & {_args: { - can_enable: features.receive.tls.can_enable - can_verify_certificate: features.receive.tls.can_enable - enabled_default: features.receive.tls.enabled_default - }} - } - } - } - - output: { - logs?: [Name=string]: { - fields: { - _current_timestamp: { - description: string | *"The exact time the event was ingested into Vector." - required: true - type: timestamp: {} - } - - _local_host: { - description: "The local hostname, equivalent to the `gethostname` command." - required: true - type: string: { - examples: [_values.local_host] - syntax: "literal" - } - } - - _raw_line: { - description: "The raw line, unparsed." - required: true - type: string: { - examples: ["2019-02-13T19:48:34+00:00 [info] Started GET \"/\" for 127.0.0.1"] - syntax: "literal" - } - } - } - } - } - - how_it_works: { - _tls: { - title: "Transport Layer Security (TLS)" - body: """ - Vector uses [Openssl](\(urls.openssl)) for TLS protocols. You can - adjust TLS behavior via the `tls.*` options. - """ - } - - if features.collect != _|_ { - if features.collect.checkpoint.enabled { - checkpointing: { - title: "Checkpointing" - body: """ - Vector checkpoints the current read position after each - successful read. This ensures that Vector resumes where it left - off if restarted, preventing data from being read twice. The - checkpoint positions are stored in the data directory which is - specified via the global `data_dir` option, but can be overridden - via the `data_dir` option in the file source directly. - """ - } - } - } - - context: { - title: "Context" - body: """ - By default, the `\( Name )` source will augment events with helpful - context keys as shown in the "Output" section. - """ - } - - if features.collect != _|_ { - if features.collect.tls != _|_ { - if features.collect.tls.enabled { - tls: _tls - } - } - } - - if features.receive != _|_ { - if features.receive.tls.enabled { - tls: _tls - } - } - } -} diff --git a/docs/reference/components/sources/apache_metrics.cue b/docs/reference/components/sources/apache_metrics.cue deleted file mode 100644 index ae72b49a19bb1..0000000000000 --- a/docs/reference/components/sources/apache_metrics.cue +++ /dev/null @@ -1,210 +0,0 @@ -package metadata - -components: sources: apache_metrics: { - title: "Apache HTTP Server (HTTPD) Metrics" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["daemon", "sidecar"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - multiline: enabled: false - collect: { - checkpoint: enabled: false - from: { - service: services.apache_http - - interface: { - socket: { - api: { - title: "Apache HTTP Server Status Module" - url: urls.apache_mod_status - } - direction: "outgoing" - protocols: ["http"] - ssl: "disabled" - } - } - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [ - """ - The [Apache Status module](\(urls.apache_mod_status)) must be enabled. - """, - ] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - endpoints: { - description: "mod_status endpoints to scrape metrics from." - required: true - type: array: { - items: type: string: { - examples: ["http://localhost:8080/server-status/?auto"] - syntax: "literal" - } - } - } - scrape_interval_secs: { - description: "The interval between scrapes." - common: true - required: false - type: uint: { - default: 15 - unit: "seconds" - } - } - namespace: { - description: "The namespace of the metric. Disabled if empty." - required: false - common: false - warnings: [] - type: string: { - default: "apache" - syntax: "literal" - } - } - } - - output: metrics: { - // Default Apache metrics tags - _apache_metrics_tags: { - endpoint: { - description: "The absolute path of originating file." - required: true - examples: ["http://localhost:8080/server-status?auto"] - } - host: { - description: "The hostname of the Apache HTTP server." - required: true - examples: [_values.local_host] - } - } - - access_total: { - description: "The total number of time the Apache server has been accessed." - relevant_when: "`ExtendedStatus On`" - type: "counter" - default_namespace: "apache" - tags: _apache_metrics_tags - } - connections: { - description: "The total number of time the Apache server has been accessed." - type: "gauge" - default_namespace: "apache" - tags: _apache_metrics_tags & { - state: { - description: "The state of the connection" - required: true - examples: ["closing", "keepalive", "total", "writing"] - } - } - } - cpu_load: { - description: "The current CPU of the Apache server." - relevant_when: "`ExtendedStatus On`" - type: "gauge" - default_namespace: "apache" - tags: _apache_metrics_tags - } - cpu_seconds_total: { - description: "The CPU time of various Apache processes." - relevant_when: "`ExtendedStatus On`" - type: "counter" - default_namespace: "apache" - tags: _apache_metrics_tags & { - state: { - description: "The state of the connection" - required: true - examples: ["children_system", "children_user", "system", "user"] - } - } - } - duration_seconds_total: { - description: "The amount of time the Apache server has been running." - relevant_when: "`ExtendedStatus On`" - type: "counter" - default_namespace: "apache" - tags: _apache_metrics_tags - } - scoreboard: { - description: "The amount of times various Apache server tasks have been run." - type: "gauge" - default_namespace: "apache" - tags: _apache_metrics_tags & { - state: { - description: "The connect state" - required: true - examples: ["closing", "dnslookup", "finishing", "idle_cleanup", "keepalive", "logging", "open", "reading", "sending", "starting", "waiting"] - } - } - } - sent_bytes_total: { - description: "The amount of bytes sent by the Apache server." - relevant_when: "`ExtendedStatus On`" - type: "counter" - default_namespace: "apache" - tags: _apache_metrics_tags - } - up: { - description: "If the Apache server is up or not." - type: "gauge" - default_namespace: "apache" - tags: _apache_metrics_tags - } - uptime_seconds_total: { - description: "The amount of time the Apache server has been running." - type: "counter" - default_namespace: "apache" - tags: _apache_metrics_tags - } - workers: { - description: "Apache worker statuses." - type: "gauge" - default_namespace: "apache" - tags: _apache_metrics_tags & { - state: { - description: "The state of the worker" - required: true - examples: ["busy", "idle"] - } - } - } - } - - how_it_works: {} - - telemetry: metrics: { - http_error_response_total: components.sources.internal_metrics.output.metrics.http_error_response_total - http_request_errors_total: components.sources.internal_metrics.output.metrics.http_request_errors_total - parse_errors_total: components.sources.internal_metrics.output.metrics.parse_errors_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - requests_completed_total: components.sources.internal_metrics.output.metrics.requests_completed_total - request_duration_nanoseconds: components.sources.internal_metrics.output.metrics.request_duration_nanoseconds - } -} diff --git a/docs/reference/components/sources/aws_ecs_metrics.cue b/docs/reference/components/sources/aws_ecs_metrics.cue deleted file mode 100644 index 9b01e0e44d5de..0000000000000 --- a/docs/reference/components/sources/aws_ecs_metrics.cue +++ /dev/null @@ -1,255 +0,0 @@ -package metadata - -components: sources: aws_ecs_metrics: { - title: "AWS ECS Metrics" - - description: """ - Collects the docker container stats for tasks running in AWS ECS or AWS - Fargate. - """ - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["sidecar"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: false - from: { - service: services.aws_ecs - - interface: { - socket: { - api: { - title: "Amazon ECS task metadata endpoint" - url: urls.aws_ecs_task_metadata - } - direction: "outgoing" - protocols: ["http"] - ssl: "disabled" - } - } - } - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - endpoint: { - description: """ - Base URI of the task metadata endpoint. - If empty, the URI will be automatically discovered based on the latest version detected. - The version 2 endpoint base URI is `169.254.170.2/v2/`. - The version 3 endpoint base URI is stored in the environment variable `ECS_CONTAINER_METADATA_URI`. - The version 4 endpoint base URI is stored in the environment variable `ECS_CONTAINER_METADATA_URI_V4`. - """ - common: false - required: false - type: string: { - default: "${ECS_CONTAINER_METADATA_URI_V4}" - syntax: "literal" - } - } - namespace: { - description: "The namespace of the metric. Disabled if empty." - common: true - required: false - type: string: { - default: "awsecs" - syntax: "literal" - } - } - scrape_interval_secs: { - description: "The interval between scrapes, in seconds." - common: true - required: false - type: uint: { - default: 15 - unit: "seconds" - } - } - version: { - description: """ - The version of the metadata endpoint. - If empty, the version will be automatically discovered based on envirionment variables. - """ - common: false - required: false - type: string: { - default: "v4" - enum: { - v4: "When the environment variable `ECS_CONTAINER_METADATA_URI_V4` is defined." - v3: "When fails the v4 check, but the environment variable `ECS_CONTAINER_METADATA_URI` is defined." - v2: "When fails the v4 and v3 checks." - } - syntax: "literal" - } - } - } - - output: metrics: { - _awsecs: { - default_namespace: "awsecs" - } - - _tags: { - container_id: { - description: "The identifier of the ECS container." - required: true - examples: ["0cf54b87-f0f0-4044-b9d6-20dc54d5c414-4057181352"] - } - container_name: { - description: "The name of the ECS container." - required: true - examples: ["myapp"] - } - } - - _gauge: { - type: "gauge" - tags: _tags - } - - _counter: { - type: "counter" - tags: _tags - } - - _blkio_counter: { - type: "counter" - tags: _tags & { - device: { - description: "Device identified by its major and minor numbers." - required: true - examples: ["202:26368"] - } - op: { - description: "The operation type." - required: true - examples: ["read", "write", "sync", "async", "total"] - } - } - } - - blkio_recursive_io_merged_total: _awsecs & _blkio_counter & {description: "Total number of bios/requests merged into requests."} - blkio_recursive_io_queued_total: _awsecs & _blkio_counter & {description: "Total number of requests queued up at any given instant."} - blkio_recursive_io_service_bytes_total: _awsecs & _blkio_counter & {description: "Number of bytes transferred to/from the disk."} - blkio_recursive_io_service_time_seconds_total: _awsecs & _blkio_counter & {description: "Total amount of time in seconds between request dispatch and request completion for the IOs done."} - blkio_recursive_io_serviced_total: _awsecs & _blkio_counter & {description: "Number of IOs completed to/from the disk."} - blkio_recursive_io_time_seconds_total: _awsecs & _blkio_counter & {description: "Disk time allocated per device in seconds."} - blkio_recursive_io_wait_time_seconds_total: _awsecs & _blkio_counter & {description: "Total amount of time in seconds the IOs spent waiting in the scheduler queues for service."} - blkio_recursive_sectors_total: _awsecs & _blkio_counter & {description: "Number of sectors transferred to/from disk."} - - cpu_online_cpus: _awsecs & _gauge & {description: "Number of CPU cores."} - cpu_usage_system_jiffies_total: _awsecs & _counter & {description: "Jiffies of CPU time used by the system."} - cpu_usage_usermode_jiffies_total: _awsecs & _counter & {description: "Jiffies of CPU time spent in user mode by the container."} - cpu_usage_kernelmode_jiffies_total: _awsecs & _counter & {description: "Jiffies of CPU time spent in kernel mode by the container."} - cpu_usage_total_jiffies_total: _awsecs & _counter & {description: "Jiffies of CPU time used by the container."} - cpu_throttling_periods_total: _awsecs & _counter & {description: "Number of periods."} - cpu_throttled_periods_total: _awsecs & _counter & {description: "Number of periods throttled."} - cpu_throttled_time_seconds_total: _awsecs & _counter & {description: "Throttling time in seconds."} - - cpu_usage_percpu_jiffies_total: _awsecs & { - description: "Jiffies of CPU time used by the container, per CPU core." - type: "counter" - tags: _tags & { - cpu: { - description: "CPU core identifier." - required: true - examples: ["0", "1"] - } - } - } - - memory_used_bytes: _awsecs & _gauge & {description: "Memory used by the container, in bytes."} - memory_max_used_bytes: _awsecs & _gauge & {description: "Maximum measured memory usage of the container, in bytes."} - memory_limit_bytes: _awsecs & _gauge & {description: "Memory usage limit of the container, in bytes."} - memory_active_anonymous_bytes: _awsecs & _gauge & {description: "Amount of memory that has been identified as active by the kernel. Anonymous memory is memory that is not linked to disk pages."} - memory_active_file_bytes: _awsecs & _gauge & {description: "Amount of active file cache memory. Cache memory = active_file + inactive_file + tmpfs."} - memory_cache_bytes: _awsecs & _awsecs & _gauge & {description: "The amount of memory used by the processes of this cgroup that can be associated with a block on a block device. Also accounts for memory used by tmpfs."} - memory_dirty_bytes: _awsecs & _gauge & {description: "The amount of memory waiting to get written to disk."} - memory_inactive_anonymous_bytes: _awsecs & _gauge & {description: "Amount of memory that has been identified as inactive by the kernel."} - memory_inactive_file_bytes: _awsecs & _gauge & {description: "Amount of inactive file cache memory."} - memory_mapped_file_bytes: _awsecs & _gauge & {description: "Indicates the amount of memory mapped by the processes in the cgroup. It doesn’t give you information about how much memory is used; it rather tells you how it is used."} - memory_page_faults_total: _awsecs & _counter & {description: "Number of times that a process of the cgroup triggered a page fault."} - memory_major_faults_total: _awsecs & _counter & {description: "Number of times that a process of the cgroup triggered a major page fault."} - memory_page_charged_total: _awsecs & _counter & {description: "Number of charging events to the memory cgroup. Charging events happen each time a page is accounted as either mapped anon page(RSS) or cache page to the cgroup."} - memory_page_uncharged_total: _awsecs & _counter & {description: "Number of uncharging events to the memory cgroup. Uncharging events happen each time a page is unaccounted from the cgroup."} - memory_rss_bytes: _awsecs & _gauge & {description: "The amount of memory that doesn’t correspond to anything on disk: stacks, heaps, and anonymous memory maps."} - memory_rss_hugepages_bytes: _awsecs & _gauge & {description: "Amount of memory due to anonymous transparent hugepages."} - memory_unevictable_bytes: _awsecs & _gauge & {description: "The amount of memory that cannot be reclaimed."} - memory_writeback_bytes: _awsecs & _gauge & {description: "The amount of memory from file/anon cache that are queued for syncing to the disk."} - memory_total_active_anonymous_bytes: _awsecs & _gauge & {description: "Total amount of memory that has been identified as active by the kernel."} - memory_total_active_file_bytes: _awsecs & _gauge & {description: "Total amount of active file cache memory."} - memory_total_cache_bytes: _awsecs & _gauge & {description: "Total amount of memory used by the processes of this cgroup that can be associated with a block on a block device."} - memory_total_dirty_bytes: _awsecs & _gauge & {description: "Total amount of memory waiting to get written to disk."} - memory_total_inactive_anonymous_bytes: _awsecs & _gauge & {description: "Total amount of memory that has been identified as inactive by the kernel."} - memory_total_inactive_file_bytes: _awsecs & _gauge & {description: "Total amount of inactive file cache memory."} - memory_total_mapped_file_bytes: _awsecs & _gauge & {description: "Total amount of memory mapped by the processes in the cgroup."} - memory_total_page_faults_total: _awsecs & _counter & {description: "Total number of page faults."} - memory_total_major_faults_total: _awsecs & _counter & {description: "Total number of major page faults."} - memory_total_page_charged_total: _awsecs & _counter & {description: "Total number of charging events."} - memory_total_page_uncharged_total: _awsecs & _counter & {description: "Total number of uncharging events."} - memory_total_rss_bytes: _awsecs & _gauge & {description: "Total amount of memory that doesn’t correspond to anything on disk: stacks, heaps, and anonymous memory maps."} - memory_total_rss_hugepages_bytes: _awsecs & _gauge & {description: "Total amount of memory due to anonymous transparent hugepages."} - memory_total_unevictable_bytes: _awsecs & _gauge & {description: "Total amount of memory that can not be reclaimed."} - memory_total_writeback_bytes: _awsecs & _gauge & {description: "Total amount of memory from file/anon cache that are queued for syncing to the disk."} - memory_hierarchical_memory_limit_bytes: _awsecs & _gauge & {description: "The memory limit in place by the hierarchy cgroup."} - memory_hierarchical_memsw_limit_bytes: _awsecs & _gauge & {description: "The memory + swap limit in place by the hierarchy cgroup."} - - _network_counter: _awsecs & { - type: "counter" - tags: _tags & { - device: { - description: "The network interface." - required: true - examples: ["eth1"] - } - } - } - - network_receive_bytes_total: _awsecs & _network_counter & {description: "Bytes received by the container via the network interface."} - network_receive_packets_total: _awsecs & _network_counter & {description: "Number of packets received by the container via the network interface."} - network_receive_packets_drop_total: _awsecs & _network_counter & {description: "Number of inbound packets dropped by the container."} - network_receive_errs_total: _awsecs & _network_counter & {description: "Errors receiving packets."} - network_transmit_bytes_total: _awsecs & _network_counter & {description: "Bytes sent by the container via the network interface."} - network_transmit_packets_total: _awsecs & _network_counter & {description: "Number of packets sent by the container via the network interface."} - network_transmit_packets_drop_total: _awsecs & _network_counter & {description: "Number of outbound packets dropped by the container."} - network_transmit_errs_total: _awsecs & _network_counter & {description: "Errors sending packets."} - } - - telemetry: metrics: { - http_error_response_total: components.sources.internal_metrics.output.metrics.http_error_response_total - http_request_errors_total: components.sources.internal_metrics.output.metrics.http_request_errors_total - parse_errors_total: components.sources.internal_metrics.output.metrics.parse_errors_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - requests_completed_total: components.sources.internal_metrics.output.metrics.requests_completed_total - request_duration_nanoseconds: components.sources.internal_metrics.output.metrics.request_duration_nanoseconds - } -} diff --git a/docs/reference/components/sources/aws_kinesis_firehose.cue b/docs/reference/components/sources/aws_kinesis_firehose.cue deleted file mode 100644 index e495322fcfec9..0000000000000 --- a/docs/reference/components/sources/aws_kinesis_firehose.cue +++ /dev/null @@ -1,210 +0,0 @@ -package metadata - -components: sources: aws_kinesis_firehose: { - _port: 443 - - title: "AWS Kinesis Firehose" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["aggregator"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - multiline: enabled: false - receive: { - from: { - service: services.aws_kinesis_firehose - - interface: socket: { - api: { - title: "AWS Kinesis Firehose HTTP Destination" - url: urls.aws_firehose_http_request_spec - } - direction: "incoming" - port: _port - protocols: ["http"] - ssl: "required" - } - } - - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - enabled_default: false - }} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [ - """ - AWS Kinesis Firehose can only deliver data over HTTP. You will need - to solve TLS termination by fronting Vector with a load balaner or - configuring the `tls.*` options. - """, - ] - - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - address: { - description: "The address to listen for connections on" - required: true - type: string: { - examples: ["0.0.0.0:443", "localhost:443"] - syntax: "literal" - } - } - access_key: { - common: true - description: """ - AWS Kinesis Firehose can be configured to pass along an access - key to authenticate requests. If configured, `access_key` should - be set to the same value. If not specified, vector will treat - all requests as authenticated. - """ - required: false - type: "string": { - default: null - examples: ["A94A8FE5CCB19BA61C4C08"] - syntax: "literal" - } - } - } - - output: logs: { - line: { - description: "One event will be published per incoming AWS Kinesis Firehose record." - fields: { - timestamp: fields._current_timestamp - message: { - description: "The raw record from the incoming payload." - required: true - type: string: { - examples: ["Started GET / for 127.0.0.1 at 2012-03-10 14:28:14 +0100"] - syntax: "literal" - } - } - request_id: { - description: "The AWS Kinesis Firehose request ID, value of the `X-Amz-Firehose-Request-Id` header." - required: true - type: string: { - examples: ["ed1d787c-b9e2-4631-92dc-8e7c9d26d804"] - syntax: "literal" - } - } - source_arn: { - description: "The AWS Kinises Firehose delivery stream that issued the request, value of the `X-Amz-Firehose-Source-Arn` header." - required: true - type: string: { - examples: ["arn:aws:firehose:us-east-1:111111111111:deliverystream/test"] - syntax: "literal" - } - } - } - } - } - - examples: [ - { - title: "AWS CloudWatch Subscription message" - - configuration: { - address: "0.0.0.0:443" - } - input: """ - ```json - { - "requestId": "ed1d787c-b9e2-4631-92dc-8e7c9d26d804", - "timestamp": 1600110760138, - "records": [ - { - "data": "H4sIABk1bV8AA52TzW7bMBCE734KQ2db/JdI3QzETS8FAtg91UGgyOuEqCQq5Mqua+TdS8lu0hYNUpQHAdoZDcn9tKfJdJo0EEL5AOtjB0kxTa4W68Xdp+VqtbheJrPB4A4t+EFiv6yzVLuHa+/6blARAr5UV+ihbH4vh/4+VN52aF37wdYIPkTDlyhF8SrabFsOWhIrtz+Dlnto8dV3Gp9RstshXKhMi0xpqk3GpNJccpFRKYw0WvCM5kIbzrVWipm4VK55rrSk44HGHLTx/lg2wxVYRiljVGWGCvPiuPRn2O60Se6P8UKbpOBZrulsk2xLhCEjljYJk2QFHeGU04KxQqpCsumcSko3SfQ+uoBnn8pTJmjKWZYyI0axAXx021G++bweS5136CpXj8WP6/UNYek5ycMOPPhReETsQkHI4XBIO2/bynZlXXkXwryrS9w536TWkab0XwED6e/tU2/R9eGS9NTD5VgEvnWwtQikcu0e/AO0FYyu4HpfwR3Gf2R0Btza9qxgiUNUISiLr30AP7fbyMzu7OWA803ynIzdfJ69B1EZpoVhsWMRZ8a5UVJoRoUyUlDNspxzZWiEnOXiXYiSvQOR5TnN/xsiNalmKZcy5Yr/yfB6+RZD/gbDC0IbOx8wQrMhxGGYx4lBW5X1wJBLkpO981jWf6EXogvIrm+rYYrKOn4Hgbg4b439/s8cFeVvcNwBtHBkOdWvQIdRnTxPfgCXvyEgSQQAAA==" - } - ] - } - ``` - """ - output: [{ - log: { - request_id: "ed1d787c-b9e2-4631-92dc-8e7c9d26d804" - source_arn: "arn:aws:firehose:us-east-1:111111111111:deliverystream/test" - timestamp: "2020-09-14T19:12:40.138Z" - message: "{\"messageType\":\"DATA_MESSAGE\",\"owner\":\"111111111111\",\"logGroup\":\"test\",\"logStream\":\"test\",\"subscriptionFilters\":[\"Destination\"],\"logEvents\":[{\"id\":\"35683658089614582423604394983260738922885519999578275840\",\"timestamp\":1600110569039,\"message\":\"{\\\"bytes\\\":26780,\\\"datetime\\\":\\\"14/Sep/2020:11:45:41 -0400\\\",\\\"host\\\":\\\"157.130.216.193\\\",\\\"method\\\":\\\"PUT\\\",\\\"protocol\\\":\\\"HTTP/1.0\\\",\\\"referer\\\":\\\"https://www.principalcross-platform.io/markets/ubiquitous\\\",\\\"request\\\":\\\"/expedite/convergence\\\",\\\"source_type\\\":\\\"stdin\\\",\\\"status\\\":301,\\\"user-identifier\\\":\\\"-\\\"}\"},{\"id\":\"35683658089659183914001456229543810359430816722590236673\",\"timestamp\":1600110569041,\"message\":\"{\\\"bytes\\\":17707,\\\"datetime\\\":\\\"14/Sep/2020:11:45:41 -0400\\\",\\\"host\\\":\\\"109.81.244.252\\\",\\\"method\\\":\\\"GET\\\",\\\"protocol\\\":\\\"HTTP/2.0\\\",\\\"referer\\\":\\\"http://www.investormission-critical.io/24/7/vortals\\\",\\\"request\\\":\\\"/scale/functionalities/optimize\\\",\\\"source_type\\\":\\\"stdin\\\",\\\"status\\\":502,\\\"user-identifier\\\":\\\"feeney1708\\\"}\"}]}" - } - }] - }, - ] - - how_it_works: { - structured_events: { - title: "Forwarding CloudWatch Log events" - body: """ - This source is the recommended way to ingest logs from AWS - CloudWatch logs via [AWS CloudWatch Log - subscriptions][aws_cloudwatch_logs_subscriptions]. To - set this up: - - 1. Deploy vector with a publicly exposed HTTP endpoint using - this source. You will likely also want to use the - [`aws_cloudwatch_logs_subscription_parser`][vector_transform_aws_cloudwatch_logs_subscription_parser] - transform to extract the log events. Make sure to set - the `access_key` to secure this endpoint. Your - configuration might look something like: - - ```toml - [sources.firehose] - # General - type = "aws_kinesis_firehose" - address = "127.0.0.1:9000" - access_key = "secret" - - [transforms.cloudwatch] - type = "aws_cloudwatch_logs_subscription_parser" - inputs = ["firehose"] - - [sinks.console] - type = "console" - inputs = ["cloudwatch"] - encoding.codec = "json" - ``` - - 2. Create a Kinesis Firewatch delivery stream in the region - where the CloudWatch Logs groups exist that you want to - ingest. - 3. Set the stream to forward to your Vector instance via its - HTTP Endpoint destination. Make sure to configure the - same `access_key` you set earlier. - 4. Setup a [CloudWatch Logs - subscription][aws_cloudwatch_logs_subscriptions] to - forward the events to your delivery stream - """ - } - } - - telemetry: metrics: { - request_read_errors_total: components.sources.internal_metrics.output.metrics.request_read_errors_total - requests_received_total: components.sources.internal_metrics.output.metrics.requests_received_total - } -} diff --git a/docs/reference/components/sources/aws_s3.cue b/docs/reference/components/sources/aws_s3.cue deleted file mode 100644 index dec3b0d61b04d..0000000000000 --- a/docs/reference/components/sources/aws_s3.cue +++ /dev/null @@ -1,286 +0,0 @@ -package metadata - -components: sources: aws_s3: components._aws & { - title: "AWS S3" - - features: { - multiline: enabled: true - collect: { - tls: enabled: false - checkpoint: enabled: false - from: service: services.aws_s3 - } - } - - classes: { - commonly_used: true - deployment_roles: ["aggregator"] - delivery: "at_least_once" - development: "beta" - egress_method: "stream" - stateful: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [ - """ - The AWS S3 source requires a SQS queue configured to receive S3 - bucket notifications for the desired S3 buckets. - """, - ] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - strategy: { - common: false - description: "The strategy to use to consume objects from AWS S3." - required: false - type: string: { - default: "sqs" - enum: { - sqs: "Consume S3 objects by polling for bucket notifications sent to an [AWS SQS queue](\(urls.aws_sqs))." - } - syntax: "literal" - } - } - compression: { - common: false - description: "The compression format of the S3 objects.." - required: false - type: string: { - default: "text" - enum: { - auto: "Vector will try to determine the compression format of the object from its: `Content-Encoding` metadata, `Content-Type` metadata, and key suffix (e.g. `.gz`). It will fallback to 'none' if it cannot determine the compression." - gzip: "GZIP format." - zstd: "ZSTD format." - none: "Uncompressed." - } - syntax: "literal" - } - } - sqs: { - common: true - description: "SQS strategy options. Required if strategy=`sqs`." - required: false - warnings: [] - type: object: { - examples: [] - options: { - poll_secs: { - common: true - description: "How often to poll the queue for new messages in seconds." - required: false - warnings: [] - type: uint: { - default: 15 - unit: "seconds" - } - } - visibility_timeout_secs: { - common: false - description: "The visibility timeout to use for messages in secords. This controls how long a message is left unavailable when a Vector receives it. If a `vector` does not delete the message before the timeout expires, it will be made reavailable for another consumer; this can happen if, for example, the `vector` process crashes." - required: false - warnings: ["Should be set higher than the length of time it takes to process an individual message to avoid that message being reprocessed."] - type: uint: { - default: 300 - unit: "seconds" - } - } - delete_message: { - common: true - description: "Whether to delete the message once Vector processes it. It can be useful to set this to `false` to debug or during initial Vector setup." - required: false - warnings: [] - type: bool: default: true - } - queue_url: { - description: "The URL of the SQS queue to receieve bucket notifications from." - required: true - warnings: [] - type: string: { - examples: ["https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue"] - syntax: "literal" - } - } - } - } - } - } - - output: logs: object: { - description: "A line from an S3 object." - fields: { - message: { - description: "A line from the S3 object." - required: true - type: string: { - examples: ["53.126.150.246 - - [01/Oct/2020:11:25:58 -0400] \"GET /disintermediate HTTP/2.0\" 401 20308"] - syntax: "literal" - } - } - timestamp: fields._current_timestamp & { - description: "The Last-Modified time of the object. Defaults the current timestamp if this information is missing." - } - bucket: { - description: "The bucket of the object the line came from." - required: true - type: string: { - examples: ["my-bucket"] - syntax: "literal" - } - } - object: { - description: "The object the line came from." - required: true - type: string: { - examples: ["AWSLogs/111111111111/vpcflowlogs/us-east-1/2020/10/26/111111111111_vpcflowlogs_us-east-1_fl-0c5605d9f1baf680d_20201026T1950Z_b1ea4a7a.log.gz"] - syntax: "literal" - } - } - region: { - description: "The AWS region bucket is in." - required: true - type: string: { - examples: ["us-east-1"] - syntax: "literal" - } - } - } - } - - how_it_works: { - events: { - title: "Handling events from the `aws_s3` source" - body: """ - This source behaves very similarly to the `file` source in that - it will output one event per line (unless the `multiline` - configuration option is used). - - You will commonly want to use [transforms][urls.vector_transforms] to - parse the data. For example, to parse VPC flow logs sent to S3 you can - chain the `tokenizer` transform: - - ```toml - [transforms.flow_logs] - type = "tokenizer" # required - inputs = ["s3"] - field_names = ["version", "account_id", "interface_id", "srcaddr", "dstaddr", "srcport", "dstport", "protocol", "packets", "bytes", "start", "end", "action", "log_status"] - - types.srcport = "int" - types.dstport = "int" - types.packets = "int" - types.bytes = "int" - types.start = "timestamp|%s" - types.end = "timestamp|%s" - ``` - - To parse AWS load balancer logs, the `regex_parser` transform can be used: - - ```toml - [transforms.elasticloadbalancing_fields_parsed] - type = "regex_parser" - inputs = ["s3"] - regex = '(?x)^ - (?P[\\w]+)[ ] - (?P[\\w:.-]+)[ ] - (?P[^\\s]+)[ ] - (?P[\\d.:-]+)[ ] - (?P[\\d.:-]+)[ ] - (?P[\\d.-]+)[ ] - (?P[\\d.-]+)[ ] - (?P[\\d.-]+)[ ] - (?P[\\d-]+)[ ] - (?P[\\d-]+)[ ] - (?P[\\d-]+)[ ] - (?P[\\d-]+)[ ] - "(?P[\\w-]+)[ ] - (?P[^\\s]+)[ ] - (?P[^"\\s]+)"[ ] - "(?P[^"]+)"[ ] - (?P[^\\s]+)[ ] - (?P[^\\s]+)[ ] - (?P[\\w.:/-]+)[ ] - "(?P[^\\s"]+)"[ ] - "(?P[^\\s"]+)"[ ] - "(?P[\\w:./-]+)"[ ] - (?P[\\d-]+)[ ] - (?P[\\w.:-]+)[ ] - "(?P[\\w,-]+)"[ ] - "(?P[^"]+)"[ ] - "(?P[^"]+)"' - field = "message" - drop_failed = false - - types.received_bytes = "int" - types.request_processing_time = "float" - types.sent_bytes = "int" - types.target_processing_time = "float" - types.response_processing_time = "float" - - [transforms.elasticloadbalancing_url_parsed] - type = "regex_parser" - inputs = ["elasticloadbalancing_fields_parsed"] - regex = '^(?P[\\w]+)://(?P[^\\s:/?#]+)(?::(?P[\\d-]+))?-?(?:/(?P[^\\s?#]*))?(?P\\?[^\\s#]+)?' - field = "request_url" - drop_failed = false - ``` - """ - } - } - - permissions: iam: [ - { - platform: "aws" - _service: "s3" - - policies: [ - { - _action: "GetObject" - }, - ] - }, - { - platform: "aws" - _service: "sqs" - _docs_tag: "AWSSimpleQueueService" - - policies: [ - { - _action: "ReceiveMessage" - required_when: "[`strategy`](#strategy) is set to `sqs`" - }, - { - _action: "DeleteMessage" - required_when: "[`strategy`](#strategy) is set to `sqs` and [`delete_message`](#delete_message) is set to `true`" - }, - ] - }, - ] - - telemetry: metrics: { - sqs_message_delete_failed_total: components.sources.internal_metrics.output.metrics.sqs_message_delete_failed_total - sqs_message_delete_succeeded_total: components.sources.internal_metrics.output.metrics.sqs_message_delete_succeeded_total - sqs_message_processing_failed_total: components.sources.internal_metrics.output.metrics.sqs_message_processing_failed_total - sqs_message_processing_succeeded_total: components.sources.internal_metrics.output.metrics.sqs_message_processing_succeeded_total - sqs_message_receive_failed_total: components.sources.internal_metrics.output.metrics.sqs_message_receive_failed_total - sqs_message_receive_succeeded_total: components.sources.internal_metrics.output.metrics.sqs_message_receive_succeeded_total - sqs_message_received_messages_total: components.sources.internal_metrics.output.metrics.sqs_message_received_messages_total - sqs_s3_event_record_ignored_total: components.sources.internal_metrics.output.metrics.sqs_s3_event_record_ignored_total - } -} diff --git a/docs/reference/components/sources/docker_logs.cue b/docs/reference/components/sources/docker_logs.cue deleted file mode 100644 index a605b7de4df28..0000000000000 --- a/docs/reference/components/sources/docker_logs.cue +++ /dev/null @@ -1,402 +0,0 @@ -package metadata - -components: sources: docker_logs: { - title: "Docker" - alias: "docker" - - classes: { - commonly_used: false - delivery: "best_effort" - deployment_roles: ["daemon"] - development: "stable" - egress_method: "stream" - stateful: false - } - - env_vars: { - DOCKER_HOST: { - description: "The Docker host to connect to when `docker_host` configuration is absent." - type: string: { - default: null - examples: ["unix:///var/run/docker.sock"] - syntax: "literal" - } - } - - DOCKER_CERT_PATH: { - description: """ - Path to look for TLS certificates when `tls` configuration is absent. - Vector will use: - - `$DOCKER_CERT_PATH/ca.pem`: CA certificate. - - `$DOCKER_CERT_PATH/cert.pem`: TLS certificate. - - `$DOCKER_CERT_PATH/key.pem`: TLS key. - """ - type: string: { - default: null - examples: ["certs/"] - syntax: "literal" - } - } - - DOCKER_CONFIG: { - description: "Path to look for TLS certificates when both `tls` configuration and `DOCKER_CERT_PATH` are absent." - type: string: { - default: null - examples: ["certs/"] - syntax: "literal" - } - } - } - - features: { - collect: { - checkpoint: enabled: false - from: { - service: services.docker - - interface: socket: { - api: { - title: "Docker Engine API" - url: urls.docker_engine_api - } - direction: "outgoing" - permissions: unix: group: "docker" - protocols: ["http"] - socket: "/var/run/docker.sock" - ssl: "disabled" - } - } - } - multiline: enabled: true - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - "x86_64-apple-darwin": true - } - - requirements: [] - warnings: [ - """ - Collecting logs directly from the Docker Engine is known to have - performance problems for very large setups. If you have a large - setup, please consider alternative collection methods, such as the - Docker [`syslog`](\(urls.docker_logging_driver_syslog)) or - [Docker `journald` driver](\(urls.docker_logging_driver_journald)) - drivers. - """, - """ - To avoid collecting logs from itself when deployed as a container, - the Docker source uses current hostname to find out which container - it is inside. If a container's ID matches the hostname, that container - will be excluded. - If you change container's hostname, consider manually excluding Vector - container using [`exclude_containers`](#exclude_containers). - """, - ] - notices: [] - } - - installation: { - platform_name: "docker" - } - - configuration: { - docker_host: { - common: true - description: """ - The Docker host to connect to. Use an HTTPS URL to enable TLS encryption. - If absent, Vector will try to use `DOCKER_HOST` enviroment variable. - If `DOCKER_HOST` is also absent, Vector will use default Docker local socket - (`/var/run/docker.sock` on Unix flatforms, `//./pipe/docker_engine` on Windows). - """ - required: false - type: string: { - default: null - examples: [ - "http://localhost:2375", - "https://localhost:2376", - "unix:///var/run/docker.sock", - "npipe:////./pipe/docker_engine", - "/var/run/docker.sock", - "//./pipe/docker_engine", - ] - syntax: "literal" - } - } - tls: { - common: false - description: """ - TLS options to connect to the Docker deamon. This has no effect unless `docker_host` is an HTTPS URL. - If absent, Vector will try to use environment variable `DOCKER_CERT_PATH` and then `DOCKER_CONFIG`. - If both environment variables are absent, Vector will try to read certificates in `~/.docker/`. - """ - required: false - type: object: { - examples: [] - options: { - ca_file: { - description: "Path to CA certificate file." - required: true - warnings: [] - type: string: { - examples: ["certs/ca.pem"] - syntax: "literal" - } - } - crt_file: { - description: "Path to TLS certificate file." - required: true - warnings: [] - type: string: { - examples: ["certs/cert.pem"] - syntax: "literal" - } - } - key_file: { - description: "Path to TLS key file." - required: true - warnings: [] - type: string: { - examples: ["certs/key.pem"] - syntax: "literal" - } - } - } - } - } - auto_partial_merge: { - common: false - description: """ - Setting this to `false` will disable the automatic merging - of partial events. - """ - required: false - type: bool: default: true - } - exclude_containers: { - common: false - description: """ - A list of container IDs _or_ names to match against for - containers you don't want to collect logs from. Prefix matches - are supported, so you can supply just the first few characters - of the ID or name of containers you want to exclude. This can be - used in conjunction with - [`include_containers`](#include_containers). - """ - required: false - type: array: { - default: null - items: type: string: { - examples: ["exclude_", "exclude_me_0", "ad08cc418cf9"] - syntax: "literal" - } - } - } - include_containers: { - common: true - description: """ - A list of container IDs _or_ names to match against for - containers you want to collect logs from. Prefix matches are - supported, so you can supply just the first few characters of - the ID or name of containers you want to include. This can be - used in conjunction with - [`exclude_containers`](#exclude_containers). - """ - required: false - type: array: { - default: null - items: type: string: { - examples: ["include_", "include_me_0", "ad08cc418cf9"] - syntax: "literal" - } - } - } - include_labels: { - common: true - description: """ - A list of container object labels to match against when - filtering running containers. This should follow the - described label's syntax in [docker object labels docs](\(urls.docker_object_labels)). - """ - required: false - type: array: { - default: null - items: type: string: { - examples: ["com.example.vendor=Timber Inc.", "com.example.name=Vector"] - syntax: "literal" - } - } - } - include_images: { - common: true - description: """ - A list of image names to match against. If not provided, all - images will be included. - """ - required: false - type: array: { - default: null - items: type: string: { - examples: ["httpd", "redis"] - syntax: "literal" - } - } - } - retry_backoff_secs: { - common: false - description: """ - The amount of time to wait before retrying after an error. - """ - required: false - type: uint: { - unit: "seconds" - default: 1 - } - } - host_key: { - category: "Context" - common: false - description: "The key name added to each event representing the current host. This can also be globally set via the [global `host_key` option][docs.reference.configuration.global-options#host_key]." - required: false - warnings: [] - type: string: { - default: "host" - syntax: "literal" - } - } - } - - output: logs: { - log: { - description: "A Docker log event" - fields: { - container_created_at: { - description: "A UTC timestamp representing when the container was created." - required: true - type: timestamp: {} - } - container_id: { - description: "The Docker container ID that the log was collected from." - required: true - type: string: { - examples: ["9b6247364a03", "715ebfcee040"] - syntax: "literal" - } - } - container_name: { - description: "The Docker container name that the log was collected from." - required: true - type: string: { - examples: ["evil_ptolemy", "nostalgic_stallman"] - syntax: "literal" - } - } - image: { - description: "The image name that the container is based on." - required: true - type: string: { - examples: ["ubuntu:latest", "busybox", "timberio/vector:latest-alpine"] - syntax: "literal" - } - } - message: { - description: "The raw log message." - required: true - type: string: { - examples: ["Started GET / for 127.0.0.1 at 2012-03-10 14:28:14 +0100"] - syntax: "literal" - } - } - stream: { - description: "The [standard stream](\(urls.standard_streams)) that the log was collected from." - required: true - type: string: { - enum: { - stdout: "The STDOUT stream" - stderr: "The STDERR stream" - } - syntax: "literal" - } - } - timestamp: { - description: "The UTC timestamp extracted from the Docker log event." - required: true - type: timestamp: {} - } - host: fields._local_host - "*": { - description: "Each container label is inserted with it's exact key/value pair." - required: true - type: string: { - examples: ["Started GET / for 127.0.0.1 at 2012-03-10 14:28:14 +0100"] - syntax: "literal" - } - } - } - } - } - - examples: [ - { - _container_name: "flog" - _image: "mingrammer/flog" - _message: "150.75.72.205 - - [03/Oct/2020:16:11:29 +0000] \"HEAD /initiatives HTTP/1.1\" 504 117" - _stream: "stdout" - title: "Dummy Logs" - configuration: { - include_images: [_image] - } - input: """ - ```json - { - "stream": "\(_stream)", - "message": "\(_message)" - } - ``` - """ - output: log: { - container_created_at: "2020-10-03T16:11:29.443232Z" - container_id: "fecc98177eca7fb75a2b2186c418bf9a0cd3a05a1169f2e2293bf8987a9d96ab" - container_name: _container_name - image: _image - message: _message - stream: _stream - host: _values.local_host - } - }, - ] - - how_it_works: { - message_merging: { - title: "Merging Split Messages" - body: """ - Docker, by default, will split log messages that exceed 16kb. This can be a - rather frustrating problem because it produces malformed log messages that are - difficult to work with. Vector's solves this by default, automatically merging - these messages into a single message. You can turn this off via the - `auto_partial_merge` option. Furthermore, you can adjust the marker - that we use to determine if an event is partial via the - `partial_event_marker_field` option. - """ - } - } - - telemetry: metrics: { - communication_errors_total: components.sources.internal_metrics.output.metrics.communication_errors_total - container_metadata_fetch_errors_total: components.sources.internal_metrics.output.metrics.container_metadata_fetch_errors_total - container_processed_events_total: components.sources.internal_metrics.output.metrics.container_processed_events_total - containers_unwatched_total: components.sources.internal_metrics.output.metrics.containers_unwatched_total - containers_watched_total: components.sources.internal_metrics.output.metrics.containers_watched_total - logging_driver_errors_total: components.sources.internal_metrics.output.metrics.logging_driver_errors_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sources/file.cue b/docs/reference/components/sources/file.cue deleted file mode 100644 index 58ee68225744a..0000000000000 --- a/docs/reference/components/sources/file.cue +++ /dev/null @@ -1,557 +0,0 @@ -package metadata - -components: sources: file: { - _directory: "/var/log" - - title: "File" - - classes: { - commonly_used: true - delivery: "best_effort" - deployment_roles: ["daemon", "sidecar"] - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: true - from: { - service: services.files - - interface: file_system: { - directory: _directory - } - } - } - multiline: enabled: true - encoding: enabled: true - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - exclude: { - common: false - description: "Array of file patterns to exclude. [Globbing](#globbing) is supported.*Takes precedence over the [`include` option](#include).*" - required: false - type: array: { - default: null - items: type: string: { - examples: ["\(_directory)/binary-file.log"] - syntax: "literal" - } - } - } - file_key: { - category: "Context" - common: false - description: "The key name added to each event with the full path of the file." - required: false - type: string: { - default: "file" - examples: ["file"] - syntax: "literal" - } - } - fingerprint: { - common: false - description: "Configuration for how the file source should identify files." - required: false - type: object: options: { - strategy: { - common: false - description: "The strategy used to uniquely identify files. This is important for [checkpointing](#checkpointing) when file rotation is used." - required: false - type: string: { - default: "checksum" - enum: { - checksum: "Read the first line of the file, skipping the first `ignored_header_bytes` bytes, to uniquely identify files via a checksum." - device_and_inode: "Uses the [device and inode](\(urls.inode)) to unique identify files." - } - syntax: "literal" - } - } - ignored_header_bytes: { - common: false - description: "The number of bytes to skip ahead (or ignore) when generating a unique fingerprint. This is helpful if all files share a common header." - relevant_when: "strategy = \"checksum\"" - required: false - type: uint: { - default: 0 - unit: "bytes" - } - } - } - } - glob_minimum_cooldown: { - common: false - description: "Delay between file discovery calls. This controls the interval at which Vector searches for files." - required: false - type: uint: { - default: 1_000 - unit: "milliseconds" - } - } - host_key: { - category: "Context" - common: false - description: "The key name added to each event representing the current host. This can also be globally set via the [global `host_key` option][docs.reference.configuration.global-options#host_key]." - required: false - type: string: { - default: "host" - syntax: "literal" - } - } - ignore_not_found: { - common: false - description: "Ignore missing files when fingerprinting. This may be useful when used with source directories containing dangling symlinks." - required: false - type: bool: default: false - } - ignore_older: { - common: true - description: "Ignore files with a data modification date that does not exceed this age." - required: false - type: uint: { - default: null - examples: [60 * 10] - unit: "seconds" - } - } - include: { - description: "Array of file patterns to include. [Globbing](#globbing) is supported." - required: true - type: array: items: type: string: { - examples: ["\(_directory)/**/*.log"] - syntax: "literal" - } - } - line_delimiter: { - common: false - description: "String sequence used to separate one file line from another" - required: false - type: string: { - default: "\n" - examples: ["\r\n"] - syntax: "literal" - } - } - max_line_bytes: { - common: false - description: "The maximum number of a bytes a line can contain before being discarded. This protects against malformed lines or tailing incorrect files." - required: false - type: uint: { - default: 102_400 - unit: "bytes" - } - } - max_read_bytes: { - category: "Reading" - common: false - description: "An approximate limit on the amount of data read from a single file at a given time." - required: false - type: uint: { - default: null - examples: [2048] - unit: "bytes" - } - } - oldest_first: { - category: "Reading" - common: false - description: "Instead of balancing read capacity fairly across all watched files, prioritize draining the oldest files before moving on to read data from younger files." - required: false - type: bool: default: false - } - remove_after: { - common: false - description: "Timeout from reaching `eof` after which file will be removed from filesystem, unless new data is written in the meantime. If not specified, files will not be removed." - required: false - warnings: ["Vector's process must have permission to delete files."] - type: uint: { - default: null - examples: [0, 5, 60] - unit: "seconds" - } - } - read_from: { - common: true - description: "In the absence of a checkpoint, this setting tells Vector where to start reading files that are present at startup." - required: false - type: string: { - syntax: "literal" - default: "beginning" - enum: { - "beginning": "Read from the beginning of the file." - "end": "Start reading from the current end of the file." - } - } - } - ignore_checkpoints: { - common: false - description: "This causes Vector to ignore existing checkpoints when determining where to start reading a file. Checkpoints are still written normally." - required: false - type: bool: default: false - } - } - - output: logs: line: { - description: "An individual line from a file. Lines can be merged using the `multiline` options." - fields: { - file: { - description: "The absolute path of originating file." - required: true - type: string: { - examples: ["\(_directory)/apache/access.log"] - syntax: "literal" - } - } - host: fields._local_host - message: { - description: "The raw line from the file." - required: true - type: string: { - examples: ["53.126.150.246 - - [01/Oct/2020:11:25:58 -0400] \"GET /disintermediate HTTP/2.0\" 401 20308"] - syntax: "literal" - } - } - timestamp: fields._current_timestamp - } - } - - examples: [ - { - _file: "\(_directory)/apache/access.log" - _line: "53.126.150.246 - - [01/Oct/2020:11:25:58 -0400] \"GET /disintermediate HTTP/2.0\" 401 20308" - title: "Apache Access Log" - - configuration: { - include: ["\(_directory)/**/*.log"] - } - input: """ - ```text filename="\(_file)" - \(_line) - ``` - """ - output: log: { - file: _file - host: _values.local_host - message: _line - timestamp: _values.current_timestamp - } - }, - ] - - how_it_works: { - autodiscover: { - title: "Autodiscovery" - body: """ - Vector will continually look for new files matching any of your - include patterns. The frequency is controlled via the - `glob_minimum_cooldown` option. If a new file is added that matches - any of the supplied patterns, Vector will begin tailing it. Vector - maintains a unique list of files and will not tail a file more than - once, even if it matches multiple patterns. You can read more about - how we identify files in the Identification section. - """ - } - - compressed_files: { - title: "Compressed Files" - body: """ - Vector will transparently detect files which have been compressed - using Gzip and decompress them for reading. This detection process - looks for the unique sequence of bytes in the Gzip header and does - not rely on the compressed files adhering to any kind of naming - convention. - - One caveat with reading compressed files is that Vector is not able - to efficiently seek into them. Rather than implement a - potentially-expensive full scan as a seek mechanism, Vector - currently will not attempt to make further reads from a file for - which it has already stored a checkpoint in a previous run. For - this reason, users should take care to allow Vector to fully - process anycompressed files before shutting the process down or moving the - files to another location on disk. - """ - } - - file_deletion: { - title: "File Deletion" - body: """ - When a watched file is deleted, Vector will maintain its open file - handle and continue reading until it reaches `EOF`. When a file is - no longer findable in the `includes` option and the reader has - reached `EOF`, that file's reader is discarded. - """ - } - - file_read_order: { - title: "File Read Order" - body: """ - By default, Vector attempts to allocate its read bandwidth fairly - across all of the files it's currently watching. This prevents a - single very busy file from starving other independent files from - being read. In certain situations, however, this can lead to - interleaved reads from files that should be read one after the - other. - - For example, consider a service that logs to timestamped file, - creating a new one at an interval and leaving the old one as-is. - Under normal operation, Vector would follow writes as they happen to - each file and there would be no interleaving. In an overload - situation, however, Vector may pick up and begin tailing newer files - before catching up to the latest writes from older files. This would - cause writes from a single logical log stream to be interleaved in - time and potentially slow down ingestion as a whole, since the fixed - total read bandwidth is allocated across an increasing number of - files. - - To address this type of situation, Vector provides the - `oldest_first` option. When set, Vector will not read from any file - younger than the oldest file that it hasn't yet caught up to. In - other words, Vector will continue reading from older files as long - as there is more data to read. Only once it hits the end will it - then move on to read from younger files. - - Whether or not to use the oldest_first flag depends on the - organization of the logs you're configuring Vector to tail. If your - `include` option contains multiple independent logical log streams - (e.g. Nginx's access.log and error.log, or logs from multiple - services), you are likely better off with the default behavior. If - you're dealing with a single logical log stream or if you value - per-stream ordering over fairness across streams, consider setting - the `oldest_first` option to true. - """ - } - - file_rotation: { - title: "File Rotation" - body: """ - Vector supports tailing across a number of file rotation strategies. - The default behavior of `logrotate` is simply to move the old log - file and create a new one. This requires no special configuration of - Vector, as it will maintain its open file handle to the rotated log - until it has finished reading and it will find the newly created - file normally. - - A popular alternative strategy is `copytruncate`, in which - `logrotate` will copy the old log file to a new location before - truncating the original. Vector will also handle this well out of - the box, but there are a couple configuration options that will help - reduce the very small chance of missed data in some edge cases. We - recommend a combination of delaycompress (if applicable) on the - `logrotate` side and including the first rotated file in Vector's - `include` option. This allows Vector to find the file after rotation, - read it uncompressed to identify it, and then ensure it has all of - the data, including any written in a gap between Vector's last read - and the actual rotation event. - """ - } - - fingerprint: { - title: "fingerprint" - body: """ - By default, Vector identifies files by creating a - [cyclic redundancy check](urls.crc) (CRC) on the first 256 bytes of - the file. This serves as a fingerprint to uniquely identify the file. - The amount of bytes read can be controlled via the `fingerprint_bytes` - and `ignored_header_bytes` options. - - This strategy avoids the common pitfalls of using device and inode - names since inode names can be reused across files. This enables - Vector to properly tail files across various rotation strategies. - """ - } - - globbing: { - title: "Globbing" - body: """ - [Globbing](\(urls.globbing)) is supported in all provided file paths, - files will be autodiscovered continually at a rate defined by the - `glob_minimum_cooldown` option. - """ - } - - line_delimiters: { - title: "Line Delimiters" - body: """ - Each line is read until a new line delimiter (by default, `\n` i.e. - the `0xA` byte) or `EOF` is found. If needed, the default line - delimiter can be overriden via the `line_delimiter` option. - """ - } - - multiline_messages: { - title: "Multiline Messages" - body: """ - Sometimes a single log event will appear as multiple log lines. To - handle this, Vector provides a set of `multiline` options. These - options were carefully thought through and will allow you to solve the - simplest and most complex cases. Let's look at a few examples: - """ - sub_sections: [ - { - title: "Example 1: Ruy Exceptions" - body: #""" - Ruby exceptions, when logged, consist of multiple lines: - - ```text - foobar.rb:6:in `/': divided by 0 (ZeroDivisionError) - from foobar.rb:6:in `bar' - from foobar.rb:2:in `foo' - from foobar.rb:9:in `
' - ``` - - To consume these lines as a single event, use the following Vector - configuration: - - ```toml - [sources.my_file_source] - type = "file" - # ... - - [sources.my_file_source.multiline] - start_pattern = '^[^\s]' - mode = "continue_through" - condition_pattern = '^[\s]+from' - timeout_ms = 1000 - ``` - - * `start_pattern`, set to `^[^\s]`, tells Vector that new - multi-line events should _not_ start with white-space. - * `mode`, set to `continue_through`, tells Vector continue - aggregating lines until the `condition_pattern` is no longer - valid (excluding the invalid line). - * `condition_pattern`, set to `^[\s]+from`, tells Vector to - continue aggregating lines if they start with white-space - followed by `from`. - """# - }, - { - title: "Example 2: Line Continuations" - body: #""" - Some programming languages use the backslash (`\`) character to - signal that a line will continue on the next line: - - ```text - First line\ - second line\ - third line - ``` - - To consume these lines as a single event, use the following Vector - configuration: - - ```toml - [sources.my_file_source] - type = "file" - # ... - - [sources.my_file_source.multiline] - start_pattern = '\\$' - mode = "continue_past" - condition_pattern = '\\$' - timeout_ms = 1000 - ``` - - * `start_pattern`, set to `\\$`, tells Vector that new multi-line - events start with lines that end in `\`. - * `mode`, set to `continue_past`, tells Vector continue - aggregating lines, plus one additional line, until - `condition_pattern` is false. - * `condition_pattern`, set to `\\$`, tells Vector to continue - aggregating lines if they _end_ with a `\` character. - """# - }, - { - title: "Example 3: Line Continuations" - body: #""" - Activity logs from services such as Elasticsearch typically begin - with a timestamp, followed by information on the specific - activity, as in this example: - - ```text - [2015-08-24 11:49:14,389][ INFO ][env ] [Letha] using [1] data paths, mounts [[/ - (/dev/disk1)]], net usable_space [34.5gb], net total_space [118.9gb], types [hfs] - ``` - - To consume these lines as a single event, use the following Vector - configuration: - - ```toml - [sources.my_file_source] - type = "file" - # ... - - [sources.my_file_source.multiline] - start_pattern = '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}' - mode = "halt_before" - condition_pattern = '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}' - timeout_ms = 1000 - ``` - - * `start_pattern`, set to `^\[[0-9]{4}-[0-9]{2}-[0-9]{2}`, tells - Vector that new multi-line events start with a timestamp - sequence. - * `mode`, set to `halt_before`, tells Vector to continue - aggregating lines as long as the `condition_pattern` does not - match. - * `condition_pattern`, set to `^\[[0-9]{4}-[0-9]{2}-[0-9]{2}`, - tells Vector to continue aggregating up until a line starts with - a timestamp sequence. - """# - }, - ] - } - - read_position: { - title: "Read Position" - body: """ - By default, Vector will read from the beginning of newly discovered - files. You can change this behavior by setting the `read_from` option to - `"end"`. - - Previously discovered files will be [checkpointed](#checkpointing), and - the read position will resume from the last checkpoint. To disable this - behavior, you can set the `ignore_checkpoints` option to `true`. This - will cause Vector to disregard existing checkpoints when determining the - starting read position of a file. - """ - } - } - - telemetry: metrics: { - checkpoint_write_errors_total: components.sources.internal_metrics.output.metrics.checkpoint_write_errors_total - checkpoints_total: components.sources.internal_metrics.output.metrics.checkpoints_total - checksum_errors_total: components.sources.internal_metrics.output.metrics.checksum_errors_total - file_delete_errors_total: components.sources.internal_metrics.output.metrics.file_delete_errors_total - file_watch_errors_total: components.sources.internal_metrics.output.metrics.file_watch_errors_total - files_added_total: components.sources.internal_metrics.output.metrics.files_added_total - files_deleted_total: components.sources.internal_metrics.output.metrics.files_deleted_total - files_resumed_total: components.sources.internal_metrics.output.metrics.files_resumed_total - files_unwatched_total: components.sources.internal_metrics.output.metrics.files_unwatched_total - fingerprint_read_errors_total: components.sources.internal_metrics.output.metrics.fingerprint_read_errors_total - glob_errors_total: components.sources.internal_metrics.output.metrics.glob_errors_total - } -} diff --git a/docs/reference/components/sources/generator.cue b/docs/reference/components/sources/generator.cue deleted file mode 100644 index 2af53ed980cb7..0000000000000 --- a/docs/reference/components/sources/generator.cue +++ /dev/null @@ -1,111 +0,0 @@ -package metadata - -components: sources: generator: { - title: "Generator" - - description: """ - Generates fakes events, useful for testing, benchmarking, and demoing. - """ - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["daemon", "sidecar"] - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - multiline: enabled: false - generate: {} - } - - support: { - - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - format: { - description: "The format of the randomly generated output." - required: true - warnings: [] - type: string: { - enum: { - "shuffle": "Lines are chosen at random from the list specified using `lines`." - "apache_common": "Randomly generated logs in [Apache common](\(urls.apache_common)) format." - "apache_error": "Randomly generated logs in [Apache error](\(urls.apache_error)) format." - "syslog": "Randomly generated logs in Syslog format ([RFC 5424](\(urls.syslog_5424)))." - "bsd_syslog": "Randomly generated logs in Syslog format ([RFC 3164](\(urls.syslog_3164)))." - "json": "Randomly generated HTTP server logs in [JSON](\(urls.json)) format." - } - syntax: "literal" - } - } - interval: { - common: false - description: "The amount of time, in seconds, to pause between each batch of output lines. If not set, there is no delay." - required: false - warnings: [] - type: float: { - default: null - examples: [1.0, 0.1, 0.01] - } - } - count: { - common: false - description: "The total number of lines to output. By default the source continuously prints logs (infinitely)." - required: false - warnings: [] - type: uint: { - default: null - unit: null - } - } - lines: { - common: false - description: "The list of lines to output." - relevant_when: "`format` = `shuffle`" - required: false - warnings: [] - type: array: { - default: null - items: type: string: { - examples: ["Line 1", "Line 2"] - syntax: "literal" - } - } - } - sequence: { - common: false - relevant_when: "`format` = `shuffle`" - description: "If `true`, each output line starts with an increasing sequence number, beginning with 0." - required: false - warnings: [] - type: bool: default: false - } - } - - output: logs: {} - - telemetry: metrics: { - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sources/heroku_logs.cue b/docs/reference/components/sources/heroku_logs.cue deleted file mode 100644 index f4d417bff5f8c..0000000000000 --- a/docs/reference/components/sources/heroku_logs.cue +++ /dev/null @@ -1,112 +0,0 @@ -package metadata - -components: sources: heroku_logs: { - _port: 80 - - title: "Heroku Logplex" - - description: """ - Receives log data from Heroku log drains via Heroku's logplex system. - """ - - alias: "logplex" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["aggregator"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - multiline: enabled: false - receive: { - from: { - service: services.heroku - - interface: socket: { - api: { - title: "Syslog 6587" - url: urls.syslog_6587 - } - direction: "incoming" - port: _port - protocols: ["http"] - ssl: "optional" - } - } - - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - enabled_default: false - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - address: sources.http.configuration.address - auth: sources.http.configuration.auth - query_parameters: sources.http.configuration.query_parameters - } - - output: logs: line: { - description: "An individual event from a batch of events received through an HTTP POST request." - fields: { - app_name: { - description: "The app name field extracted from log message." - required: true - type: string: { - examples: ["erlang"] - syntax: "literal" - } - } - host: fields._local_host - message: { - description: "The message field, containing the plain text message." - required: true - type: string: { - examples: ["Hi from erlang"] - syntax: "literal" - } - } - proc_id: { - description: "The procid field extracted from log message." - required: true - type: string: { - examples: ["console"] - syntax: "literal" - } - } - timestamp: fields._current_timestamp - } - } - - telemetry: metrics: { - request_read_errors_total: components.sources.internal_metrics.output.metrics.request_read_errors_total - requests_received_total: components.sources.internal_metrics.output.metrics.requests_received_total - } -} diff --git a/docs/reference/components/sources/host_metrics.cue b/docs/reference/components/sources/host_metrics.cue deleted file mode 100644 index b5b79d7c05e25..0000000000000 --- a/docs/reference/components/sources/host_metrics.cue +++ /dev/null @@ -1,482 +0,0 @@ -package metadata - -components: sources: host_metrics: { - title: "Host Metrics" - - description: """ - Examines system data sources on the local system and generates metrics - describing utilization of various system resources, such as CPU, memory, - disk, and network utilization. - """ - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["daemon"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: false - from: service: services.host - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - notices: [] - requirements: [] - warnings: [] - } - - installation: { - platform_name: null - } - - env_vars: { - PROCFS_ROOT: { - description: "Sets an arbitrary path to the system's Procfs root. Can be used to expose host metrics from within a container. Unset and uses system `/proc` by default." - type: string: { - default: null - examples: ["/mnt/host/proc"] - syntax: "literal" - } - } - - SYSFS_ROOT: { - description: "Sets an arbitrary path to the system's Sysfs root. Can be used to expose host metrics from within a container. Unset and uses system `/sys` by default." - type: string: { - default: null - examples: ["/mnt/host/sys"] - syntax: "literal" - } - } - } - - configuration: { - collectors: { - description: "The list of host metric collector services to use. Defaults to all collectors." - common: true - required: false - type: array: { - default: ["cpu", "disk", "filesystem", "load", "host", "memory", "network"] - items: type: string: { - enum: { - cpu: "Metrics related to CPU utilization." - disk: "Metrics related to disk I/O utilization." - filesystem: "Metrics related to filesystem space utilization." - load: "Load average metrics (UNIX only)." - host: "Metrics related to host" - memory: "Metrics related to memory utilization." - network: "Metrics related to network utilization." - } - syntax: "literal" - } - } - } - namespace: { - description: "The namespace of metrics. Disabled if empty." - common: false - required: false - type: string: { - default: "host" - syntax: "literal" - } - } - scrape_interval_secs: { - description: "The interval between metric gathering, in seconds." - common: true - required: false - type: uint: { - default: 15 - unit: "seconds" - } - } - disk: { - common: false - description: #"Options for the "disk" metrics collector."# - required: false - type: object: options: { - devices: { - common: false - required: false - description: "Lists of device name patterns to include or exclude." - type: object: options: { - includes: { - required: false - common: false - description: """ - The list of device name patterns for which to gather I/O utilization metrics. - Defaults to including all devices. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: ["*"] - items: type: string: { - examples: ["sda", "dm-*"] - syntax: "literal" - } - } - } - excludes: { - required: false - common: false - description: """ - The list of device name patterns for which to gather I/O utilization metrics. - Defaults to excluding no devices. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: [] - items: type: string: { - examples: ["sda", "dm-*"] - syntax: "literal" - } - } - } - } - } - } - } - filesystem: { - common: false - description: #"Options for the "filesystem" metrics collector."# - required: false - type: object: options: { - devices: { - common: false - required: false - description: "Lists of device name patterns to include or exclude." - type: object: options: { - includes: { - required: false - common: false - description: """ - The list of device name patterns for which to gather usage metrics. - Defaults to including all devices. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: ["*"] - items: type: string: { - examples: ["sda", "dm-*"] - syntax: "literal" - } - } - } - excludes: { - required: false - common: false - description: """ - The list of device name patterns for which to gather usage metrics. - Defaults to excluding no devices. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: [] - items: type: string: { - examples: ["sda", "dm-*"] - syntax: "literal" - } - } - } - } - } - filesystems: { - common: false - required: false - description: "Lists of filesystem name patterns to include or exclude." - type: object: options: { - includes: { - required: false - common: false - description: """ - The list of filesystem name patterns for which to gather usage metrics. - Defaults to including all filesystems. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: ["*"] - items: type: string: { - examples: ["ntfs", "ext*"] - syntax: "literal" - } - } - } - excludes: { - required: false - common: false - description: """ - The list of filesystem name patterns for which to gather usage metrics. - Defaults to excluding no filesystems. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: [] - items: type: string: { - examples: ["ntfs", "ext*"] - syntax: "literal" - } - } - } - } - } - mountpoints: { - common: false - required: false - description: "Lists of mount point path patterns to include or exclude." - type: object: options: { - includes: { - required: false - common: false - description: """ - The list of mount point path patterns for which to gather usage metrics. - Defaults to including all mount points. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: ["*"] - items: type: string: { - examples: ["/home", "/raid*"] - syntax: "literal" - } - } - } - excludes: { - required: false - common: false - description: """ - The list of mount point path patterns for which to gather usage metrics. - Defaults to excluding no mount points. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: [] - items: type: string: { - examples: ["/home", "/raid*"] - syntax: "literal" - } - } - } - } - } - } - } - network: { - common: false - description: #"Options for the "network" metrics collector."# - required: false - type: object: options: { - devices: { - common: false - required: false - description: "Lists of device name patterns to include or exclude." - type: object: options: { - includes: { - required: false - common: false - description: """ - The list of device name patterns for which to gather network utilization metrics. - Defaults to including all devices. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: ["*"] - items: type: string: { - examples: ["sda", "dm-*"] - syntax: "literal" - } - } - } - excludes: { - required: false - common: false - description: """ - The list of device name patterns for which to gather network utilization metrics. - Defaults to excluding no devices. - The patterns are matched using [globbing](#globbing). - """ - type: array: { - default: [] - items: type: string: { - examples: ["sda", "dm-*"] - syntax: "literal" - } - } - } - } - } - } - } - } - - output: metrics: { - _host_metrics_tags: { - collector: { - description: "Which collector this metric comes from." - required: true - } - host: { - description: "The hostname of the originating system." - required: true - examples: [_values.local_host] - } - } - - // Host CPU - host_cpu_seconds_total: _host & { - description: "The number of CPU seconds accumulated in different operating modes." - type: "counter" - tags: _host_metrics_tags & { - collector: examples: ["cpu"] - cpu: { - description: "The index of the CPU core or socket." - required: true - examples: ["1"] - } - mode: { - description: "Which mode the CPU was running in during the given time." - required: true - examples: ["idle", "system", "user", "nice"] - } - } - } - - // Host disk - disk_read_bytes_total: _host & _disk_counter & {description: "The accumulated number of bytes read in."} - disk_reads_completed_total: _host & _disk_counter & {description: "The accumulated number of read operations completed."} - disk_written_bytes_total: _host & _disk_counter & {description: "The accumulated number of bytes written out."} - disk_writes_completed_total: _host & _disk_counter & {description: "The accumulated number of write operations completed."} - - // Host filesystem - filesystem_free_bytes: _host & _filesystem_bytes & {description: "The number of bytes free on the named filesystem."} - filesystem_total_bytes: _host & _filesystem_bytes & {description: "The total number of bytes in the named filesystem."} - filesystem_used_bytes: _host & _filesystem_bytes & {description: "The number of bytes used on the named filesystem."} - - // Host load - load1: _host & _loadavg & {description: "System load averaged over the last 1 second."} - load5: _host & _loadavg & {description: "System load averaged over the last 5 seconds."} - load15: _host & _loadavg & {description: "System load averaged over the last 15 seconds."} - - // Host time - uptime: _host & _host_metric & {description: "The number of seconds since the last boot."} - boot_time: _host & _host_metric & {description: "The UNIX timestamp of the last boot."} - - // Host memory - memory_active_bytes: _host & _memory_gauge & _memory_nowin & {description: "The number of bytes of active main memory."} - memory_available_bytes: _host & _memory_gauge & {description: "The number of bytes of main memory available."} - memory_buffers_bytes: _host & _memory_linux & {description: "The number of bytes of main memory used by buffers."} - memory_cached_bytes: _host & _memory_linux & {description: "The number of bytes of main memory used by cached blocks."} - memory_free_bytes: _host & _memory_gauge & {description: "The number of bytes of main memory not used."} - memory_inactive_bytes: _host & _memory_macos & {description: "The number of bytes of main memory that is not active."} - memory_shared_bytes: _host & _memory_linux & {description: "The number of bytes of main memory shared between processes."} - memory_swap_free_bytes: _host & _memory_gauge & {description: "The number of free bytes of swap space."} - memory_swapped_in_bytes_total: _host & _memory_counter & _memory_nowin & { - description: "The number of bytes that have been swapped in to main memory." - } - memory_swapped_out_bytes_total: _host & _memory_counter & _memory_nowin & { - description: "The number of bytes that have been swapped out from main memory." - } - memory_swap_total_bytes: _host & _memory_gauge & {description: "The total number of bytes of swap space."} - memory_swap_used_bytes: _host & _memory_gauge & {description: "The number of used bytes of swap space."} - memory_total_bytes: _host & _memory_gauge & {description: "The total number of bytes of main memory."} - memory_used_bytes: _host & _memory_linux & {description: "The number of bytes of main memory used by programs or caches."} - memory_wired_bytes: _host & _memory_macos & {description: "The number of wired bytes of main memory."} - - // Host network - network_receive_bytes_total: _host & _network_gauge & {description: "The number of bytes received on this interface."} - network_receive_errs_total: _host & _network_gauge & {description: "The number of errors encountered during receives on this interface."} - network_receive_packets_total: _host & _network_gauge & {description: "The number of packets received on this interface."} - network_transmit_bytes_total: _host & _network_gauge & {description: "The number of bytes transmitted on this interface."} - network_transmit_errs_total: _host & _network_gauge & {description: "The number of errors encountered during transmits on this interface."} - network_transmit_packets_drop_total: _host & _network_nomac & {description: "The number of packets dropped during transmits on this interface."} - network_transmit_packets_total: _host & _network_nomac & {description: "The number of packets transmitted on this interface."} - - // Helpers - _host: { - default_namespace: "host" - } - - _disk_device: { - description: "The disk device name." - required: true - examples: ["sda", "sda1", "dm-1"] - } - _disk_counter: { - type: "counter" - tags: _host_metrics_tags & { - collector: examples: ["disk"] - device: _disk_device - } - } - _filesystem_bytes: { - type: "gauge" - tags: _host_metrics_tags & { - collector: examples: ["filesystem"] - device: _disk_device - filesystem: { - description: "The name of the filesystem type." - required: true - examples: ["ext4", "ntfs"] - } - } - } - _loadavg: { - type: "gauge" - tags: _host_metrics_tags & { - collector: examples: ["loadavg"] - } - relevant_when: "OS is not Windows" - } - _host_metric: { - type: "gauge" - tags: _host_metrics_tags & { - collector: examples: ["host"] - } - } - _memory_counter: { - type: "counter" - tags: _host_metrics_tags & { - collector: examples: ["memory"] - } - } - _memory_gauge: { - type: "gauge" - tags: _host_metrics_tags & { - collector: examples: ["memory"] - } - } - _memory_linux: _memory_gauge & {relevant_when: "OS is Linux"} - _memory_macos: _memory_gauge & {relevant_when: "OS is macOS X"} - _memory_nowin: {relevant_when: "OS is not Windows"} - _network_gauge: { - type: "gauge" - tags: _host_metrics_tags & { - collector: examples: ["network"] - device: { - description: "The network interface device name." - required: true - examples: ["eth0", "enp5s3"] - } - } - } - _network_nomac: _network_gauge & {relevant_when: "OS is not macOS"} - } - - telemetry: metrics: { - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sources/http.cue b/docs/reference/components/sources/http.cue deleted file mode 100644 index 48f16c9763517..0000000000000 --- a/docs/reference/components/sources/http.cue +++ /dev/null @@ -1,216 +0,0 @@ -package metadata - -components: sources: http: { - _port: 80 - - title: "HTTP" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["aggregator", "sidecar"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - multiline: enabled: false - receive: { - from: { - service: services.http - - interface: { - socket: { - direction: "incoming" - port: _port - protocols: ["http"] - ssl: "optional" - } - } - } - - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - enabled_default: false - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - address: { - description: "The address to accept connections on. The address _must_ include a port." - required: true - type: string: { - examples: ["0.0.0.0:\(_port)", "localhost:\(_port)"] - syntax: "literal" - } - } - encoding: { - common: true - description: "The expected encoding of received data. Note that for `json` and `ndjson` encodings, the fields of the JSON objects are output as separate fields." - required: false - type: string: { - default: "text" - enum: { - text: "Newline-delimited text, with each line forming a message." - ndjson: "Newline-delimited JSON objects, where each line must contain a JSON object." - json: "Array of JSON objects, which must be a JSON array containing JSON objects." - } - syntax: "literal" - } - } - headers: { - common: false - description: "A list of HTTP headers to include in the log event. These will override any values included in the JSON payload with conflicting names." - required: false - type: array: { - default: null - items: type: string: { - examples: ["User-Agent", "X-My-Custom-Header"] - syntax: "literal" - } - } - } - auth: configuration._http_basic_auth - query_parameters: { - common: false - description: "A list of URL query parameters to include in the log event. These will override any values included in the body with conflicting names." - required: false - type: array: { - default: null - items: type: string: { - examples: ["application", "source"] - syntax: "literal" - } - } - } - } - - output: logs: { - text: { - description: "An individual line from a `text/plain` request" - fields: { - message: { - description: "The raw line line from the incoming payload." - relevant_when: "encoding == \"text\"" - required: true - type: string: { - examples: ["Hello world"] - syntax: "literal" - } - } - timestamp: fields._current_timestamp - } - } - structured: { - description: "An individual line from a `application/json` request" - fields: { - "*": { - common: false - description: "Any field contained in your JSON payload" - relevant_when: "encoding != \"text\"" - required: false - type: "*": {} - } - timestamp: fields._current_timestamp - } - } - } - - examples: [ - { - _line: "Hello world" - _user_agent: "my-service/v2.1" - title: "text/plain" - - configuration: { - address: "0.0.0.0:\(_port)" - encoding: "text" - headers: ["User-Agent"] - } - input: """ - ```http - Content-Type: text/plain - User-Agent: \( _user_agent ) - X-Forwarded-For: \( _values.local_host ) - - \( _line ) - ``` - """ - output: [{ - log: { - host: _values.local_host - message: _line - timestamp: _values.current_timestamp - "User-Agent": _user_agent - } - }] - }, - { - _line: "{\"key\": \"val\"}" - _user_agent: "my-service/v2.1" - title: "application/json" - - configuration: { - address: "0.0.0.0:\(_port)" - encoding: "json" - headers: ["User-Agent"] - } - input: """ - ```http - Content-Type: application/json - User-Agent: \( _user_agent ) - X-Forwarded-For: \( _values.local_host ) - - \( _line ) - ``` - """ - output: [{ - log: { - host: _values.local_host - key: "val" - timestamp: _values.current_timestamp - "User-Agent": _user_agent - } - }] - }, - ] - - telemetry: metrics: { - http_bad_requests_total: components.sources.internal_metrics.output.metrics.http_bad_requests_total - parse_errors_total: components.sources.internal_metrics.output.metrics.parse_errors_total - } - - how_it_works: { - decompression: { - title: "Decompression" - body: """ - Received body is decompressed according to `Content-Encoding` header. - Supported algorithms are `gzip`, `deflate`, and `snappy`. - """ - } - } -} diff --git a/docs/reference/components/sources/internal_logs.cue b/docs/reference/components/sources/internal_logs.cue deleted file mode 100644 index 08f7a4e5a5f0c..0000000000000 --- a/docs/reference/components/sources/internal_logs.cue +++ /dev/null @@ -1,136 +0,0 @@ -package metadata - -components: sources: internal_logs: { - title: "Internal Logs" - description: "The internal logs source exposes all log and trace messages emitted by the running Vector instance." - - classes: { - commonly_used: true - delivery: "at_least_once" - deployment_roles: ["aggregator", "daemon", "sidecar"] - development: "beta" - egress_method: "stream" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: false - from: service: { - name: "Vector instance" - thing: "a \(name)" - url: urls.vector_docs - versions: ">= 0.11.0" - } - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - notices: [] - requirements: [] - warnings: [] - } - - installation: { - platform_name: null - } - - configuration: { - } - - output: logs: line: { - description: "An individual log or trace message." - fields: { - message: { - description: "The textual message for this log or trace." - required: true - type: string: { - examples: ["Vector has started."] - syntax: "literal" - } - } - timestamp: fields._current_timestamp & { - description: "The exact time the log or trace was generated." - } - "*": { - description: "Each field from the original message is copied into the event." - required: true - type: "*": {} - } - metadata: { - description: "Metadata from the source log or trace event." - required: true - type: object: { - examples: [] - options: { - kind: { - description: "What kind of call site caused this log or trace." - required: true - type: string: { - enum: { - event: "The call site is an event." - span: "The call site is a span." - } - syntax: "literal" - } - } - level: { - description: "The level of verbosity of the described span or event." - required: true - type: string: { - enum: { - TRACE: "Designates very low priority, often extremely verbose, information." - DEBUG: "Designates lower priority information." - INFO: "Designates useful information." - WARN: "Designates hazardous situations." - ERROR: "Designates very serious errors." - } - syntax: "literal" - } - } - module_path: { - description: "The path to the internal module where the span occurred" - required: true - type: string: { - examples: ["vector::internal_events::heartbeat"] - syntax: "literal" - } - } - target: { - description: "Describes the part of the system where the span or event that this metadata describes occurred." - required: true - type: string: { - examples: ["vector"] - syntax: "literal" - } - } - } - } - } - } - } - - how_it_works: { - limited_logs: { - title: "Logs are limited by startup options" - body: """ - At startup, the selection of log messages generated by - vector is set by a combination of the `$LOG` environment - variable and the `--quiet` and `--verbose` command-line - options. This internal logs source will only receive - logs that are generated by these options. - """ - } - } -} diff --git a/docs/reference/components/sources/internal_metrics.cue b/docs/reference/components/sources/internal_metrics.cue deleted file mode 100644 index 610a1750194db..0000000000000 --- a/docs/reference/components/sources/internal_metrics.cue +++ /dev/null @@ -1,742 +0,0 @@ -package metadata - -components: sources: internal_metrics: { - title: "Internal Metrics" - - description: """ - Exposes Vector's own internal metrics, allowing you to collect, process, - and route Vector's internal metrics just like other metrics. - """ - - classes: { - commonly_used: true - delivery: "at_least_once" - deployment_roles: ["aggregator", "daemon", "sidecar"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: false - from: service: services.vector - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - notices: [] - requirements: [] - warnings: [] - } - - installation: { - platform_name: null - } - - output: metrics: { - // Default internal metrics tags - _internal_metrics_tags: { - instance: { - description: "The Vector instance identified by host and port." - required: true - examples: [_values.instance] - } - job: { - description: "The name of the job producing Vector metrics." - required: true - default: "vector" - } - } - - // Instance-level "process" metrics - api_started_total: { - description: "The number of times the Vector GraphQL API has been started." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - config_load_errors_total: { - description: "The total number of errors loading the Vector configuration." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - connection_errors_total: { - description: "The total number of connection errors for this Vector instance." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - connection_established_total: { - description: "The total number of times a connection has been established." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - connection_failed_total: { - description: "The total number of times a connection has failed." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - connection_send_errors_total: { - description: "The total number of errors sending data via the connection." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - connection_shutdown_total: { - description: "The total number of times the connection has been shut down." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - quit_total: { - description: "The total number of times the Vector instance has quit." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - recover_errors_total: { - description: "The total number of errors caused by Vector failing to recover from a failed reload." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - reload_errors_total: { - description: "The total number of errors encountered when reloading Vector." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - reloaded_total: { - description: "The total number of times the Vector instance has been reloaded." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - started_total: { - description: "The total number of times the Vector instance has been started." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - stopped_total: { - description: "The total number of times the Vector instance has been stopped." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - - // Metrics emitted by one or more components - // Reusable metric definitions - adaptive_concurrency_averaged_rtt: { - description: "The average round-trip time (RTT) from the HTTP sink across the current window." - type: "histogram" - default_namespace: "vector" - tags: _internal_metrics_tags - } - adaptive_concurrency_in_flight: { - description: "The number of outbound requests from the HTTP sink currently awaiting a response." - type: "histogram" - default_namespace: "vector" - tags: _internal_metrics_tags - } - adaptive_concurrency_limit: { - description: "The concurrency limit that the adaptive concurrency feature has decided on for this current window." - type: "histogram" - default_namespace: "vector" - tags: _internal_metrics_tags - } - adaptive_concurrency_observed_rtt: { - description: "The observed round-trip time (RTT) for requests from this HTTP sink." - type: "histogram" - default_namespace: "vector" - tags: _internal_metrics_tags - } - checkpoint_write_errors_total: { - description: "The total number of errors writing checkpoints." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - checkpoints_total: { - description: "The total number of files checkpointed." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - checksum_errors_total: { - description: "The total number of errors identifying files via checksum." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags & { - file: _file - } - } - collect_completed_total: { - description: "The total number of metrics collections completed for this component." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - collect_duration_nanoseconds: { - description: "The duration spent collecting of metrics for this component." - type: "histogram" - default_namespace: "vector" - tags: _internal_metrics_tags - } - communication_errors_total: { - description: "The total number of errors stemming from communication with the Docker daemon." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - connection_read_errors_total: { - description: "The total number of errors reading datagram." - type: "counter" - default_namespace: "vector" - tags: _component_tags & { - mode: { - description: "" - required: true - enum: { - udp: "User Datagram Protocol" - } - } - } - } - consumer_offset_updates_failed_total: { - description: "The total number of failures to update a Kafka consumer offset." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - container_processed_events_total: { - description: "The total number of container events processed." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - container_metadata_fetch_errors_total: { - description: "The total number of errors encountered when fetching container metadata." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - containers_unwatched_total: { - description: "The total number of times Vector stopped watching for container logs." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - containers_watched_total: { - description: "The total number of times Vector started watching for container logs." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - k8s_format_picker_edge_cases_total: { - description: "The total number of edge cases encountered while picking format of the Kubernetes log message." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - k8s_docker_format_parse_failures_total: { - description: "The total number of failures to parse a message as a JSON object." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - k8s_event_annotation_failures_total: { - description: "The total number of failures to annotate Vector events with Kubernetes Pod metadata." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - encode_errors_total: { - description: "The total number of errors encountered when encoding an event." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - events_discarded_total: { - description: "The total number of events discarded by this component." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - events_failed_total: { - description: "The total number of failures to read a Kafka message." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - processed_events_total: { - description: "The total number of events processed by this component." - type: "counter" - default_namespace: "vector" - tags: _component_tags & { - file: _file - } - } - file_delete_errors_total: { - description: "The total number of failures to delete a file." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags & { - file: _file - } - } - file_watch_errors_total: { - description: "The total number of errors encountered when watching files." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags & { - file: _file - } - } - files_added_total: { - description: "The total number of files Vector has found to watch." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags & { - file: _file - } - } - files_deleted_total: { - description: "The total number of files deleted." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags & { - file: _file - } - } - files_resumed_total: { - description: "The total number of times Vector has resumed watching a file." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags & { - file: _file - } - } - files_unwatched_total: { - description: "The total number of times Vector has stopped watching a file." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags & { - file: _file - } - } - fingerprint_read_errors_total: { - description: "The total number of times Vector failed to read a file for fingerprinting." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags & { - file: _file - } - } - glob_errors_total: { - description: "The total number of errors encountered when globbing paths." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags & { - path: _path - } - } - http_bad_requests_total: { - description: "The total number of HTTP `400 Bad Request` errors encountered." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - http_error_response_total: { - description: "The total number of HTTP error responses for this component." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - http_request_errors_total: { - description: "The total number of HTTP request errors for this component." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - http_requests_total: { - description: "The total number of HTTP requests issued by this component." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - invalid_record_total: { - description: "The total number of invalid records that have been discarded." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - invalid_record_bytes_total: { - description: "The total number of bytes from invalid records that have been discarded." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - logging_driver_errors_total: { - description: """ - The total number of logging driver errors encountered caused by not using either - the `jsonfile` or `journald` driver. - """ - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - memory_used_bytes: { - description: "The total memory currently being used by Vector (in bytes)." - type: "gauge" - default_namespace: "vector" - tags: _internal_metrics_tags - } - metadata_refresh_failed_total: { - description: "The total number of failed efforts to refresh AWS EC2 metadata." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - metadata_refresh_successful_total: { - description: "The total number of AWS EC2 metadata refreshes." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - missing_keys_total: { - description: "The total number of failed template renders due to missed keys from the event." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - open_connections: { - description: "The number of current open connections to Vector." - type: "gauge" - default_namespace: "vector" - tags: _internal_metrics_tags - } - parse_errors_total: { - description: "The total number of errors parsing metrics for this component." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - processed_bytes_total: { - description: "The total number of bytes processed by the component." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - processing_errors_total: { - description: "The total number of processing errors encountered by this component." - type: "counter" - default_namespace: "vector" - tags: _component_tags & { - error_type: _error_type - } - } - protobuf_decode_errors_total: { - description: "The total number of [Protocol Buffers](\(urls.protobuf)) errors thrown during communication between Vector instances." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - request_errors_total: { - description: "The total number of requests errors for this component." - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - request_duration_nanoseconds: { - description: "The total request duration in nanoseconds." - type: "histogram" - default_namespace: "vector" - tags: _internal_metrics_tags - } - request_read_errors_total: { - description: "The total number of request read errors for this component." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - requests_completed_total: { - description: "The total number of requests completed by this component." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - requests_received_total: { - description: "The total number of requests received by this component." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - send_errors_total: { - description: "The total number of errors sending messages." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - sqs_message_delete_failed_total: { - description: "The total number of failures to delete SQS messages." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - sqs_message_delete_succeeded_total: { - description: "The total number of successful deletions of SQS messages." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - sqs_message_processing_failed_total: { - description: "The total number of failures to process SQS messages." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - sqs_message_processing_succeeded_total: { - description: "The total number of SQS messages successfully processed." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - sqs_message_receive_failed_total: { - description: "The total number of failures to receive SQS messages." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - sqs_message_receive_succeeded_total: { - description: "The total number of times successfully receiving SQS messages." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - sqs_message_received_messages_total: { - description: "The total number of received SQS messages." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - sqs_s3_event_record_ignored_total: { - description: "The total number of times an S3 record in an SQS message was ignored (for an event that was not `ObjectCreated`)." - type: "counter" - default_namespace: "vector" - - tags: _component_tags & { - ignore_type: { - description: "The reason for ignoring the S3 record" - required: true - enum: { - "invalid_event_kind": "The kind of invalid event." - } - } - } - } - stale_events_flushed_total: { - description: "The number of stale events that Vector has flushed." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - stdin_reads_failed_total: { - description: "The total number of errors reading from stdin." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - tag_value_limit_exceeded_total: { - description: """ - The total number of events discarded because the tag has been rejected after - hitting the configured `value_limit`. - """ - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - timestamp_parse_errors_total: { - description: "The total number of errors encountered parsing [RFC 3339](\(urls.rfc_3339)) timestamps." - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - uptime_seconds: { - description: "The total number of seconds the Vector instance has been up." - type: "gauge" - default_namespace: "vector" - tags: _component_tags - } - utf8_convert_errors_total: { - description: "The total number of errors converting bytes to a UTF-8 string in UDP mode." - type: "counter" - default_namespace: "vector" - tags: _component_tags & { - mode: { - description: "The connection mode used by the component." - required: true - enum: { - udp: "User Datagram Protocol" - } - } - } - } - value_limit_reached_total: { - description: """ - The total number of times new values for a key have been rejected because the - value limit has been reached. - """ - type: "counter" - default_namespace: "vector" - tags: _component_tags - } - - // Windows metrics - windows_service_does_not_exist_total: { - description: """ - The total number of errors raised due to the Windows service not - existing. - """ - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - windows_service_install_total: { - description: """ - The total number of times the Windows service has been installed. - """ - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - windows_service_restart_total: { - description: """ - The total number of times the Windows service has been restarted. - """ - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - windows_service_start_total: { - description: """ - The total number of times the Windows service has been started. - """ - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - windows_service_stop_total: { - description: """ - The total number of times the Windows service has been stopped. - """ - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - windows_service_uninstall_total: { - description: """ - The total number of times the Windows service has been uninstalled. - """ - type: "counter" - default_namespace: "vector" - tags: _internal_metrics_tags - } - - // Helpful tag groupings - _component_tags: _internal_metrics_tags & { - component_kind: _component_kind - component_name: _component_name - component_type: _component_type - } - - _internal_metrics_tags: { - instance: _instance - job: _job - } - - // All available tags - _collector: { - description: "Which collector this metric comes from." - required: true - } - _component_kind: { - description: "The Vector component kind." - required: true - enum: { - "sink": "Vector sink components" - "source": "Vector source components" - "transform": "Vector transform components" - } - } - _component_name: { - description: "The Vector component ID." - required: true - examples: ["file_source", "splunk_sink"] - } - _component_type: { - description: "The Vector component type." - required: true - examples: ["file", "http", "honeycomb", "splunk_hec"] - } - _endpoint: { - description: "The absolute path of originating file." - required: true - examples: ["http://localhost:8080/server-status?auto"] - } - _error_type: { - description: "The type of the error" - required: true - enum: { - "field_missing": "The event field was missing." - "invalid_metric": "The metric was invalid." - "mapping_failed": "The mapping failed." - "match_failed": "The match operation failed." - "parse_failed": "The parsing operation failed." - "render_error": "The rendering operation failed." - "type_conversion_failed": "The type conversion operating failed." - "type_field_does_not_exist": "The type field does not exist." - "type_ip_address_parse_error": "The IP address did not parse." - "value_invalid": "The value was invalid." - } - } - _file: { - description: "The file that produced the error" - required: false - } - _host: { - description: "The hostname of the originating system." - required: true - examples: [_values.local_host] - } - _instance: { - description: "The Vector instance identified by host and port." - required: true - examples: [_values.instance] - } - _job: { - description: "The name of the job producing Vector metrics." - required: true - default: "vector" - } - _path: { - description: "The path that produced the error." - required: true - } - } -} diff --git a/docs/reference/components/sources/journald.cue b/docs/reference/components/sources/journald.cue deleted file mode 100644 index 089b114a39164..0000000000000 --- a/docs/reference/components/sources/journald.cue +++ /dev/null @@ -1,207 +0,0 @@ -package metadata - -components: sources: journald: { - title: "Journald" - - classes: { - commonly_used: true - delivery: "at_least_once" - deployment_roles: ["daemon"] - development: "stable" - egress_method: "batch" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: true - from: { - service: services.journald - - interface: binary: { - name: "journalctl" - permissions: unix: group: "systemd-journal" - } - } - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": false - "x86_64-pc-windows-msv": false - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - batch_size: { - common: false - description: "The systemd journal is read in batches, and a checkpoint is set at the end of each batch. This option limits the size of the batch." - required: false - warnings: [] - type: uint: { - default: 16 - unit: null - } - } - current_boot_only: { - common: true - description: "Include only entries from the current boot." - required: false - warnings: [] - type: bool: default: true - } - exclude_units: { - common: true - description: "The list of unit names to exclude from monitoring. Unit names lacking a `\".\"` will have `\".service\"` appended to make them a valid service unit name." - required: false - warnings: [] - type: array: { - default: [] - items: type: string: { - examples: ["badservice", "sysinit.target"] - syntax: "literal" - } - } - } - include_units: { - common: true - description: "The list of unit names to monitor. If empty or not present, all units are accepted. Unit names lacking a `\".\"` will have `\".service\"` appended to make them a valid service unit name." - required: false - warnings: [] - type: array: { - default: [] - items: type: string: { - examples: ["ntpd", "sysinit.target"] - syntax: "literal" - } - } - } - journalctl_path: { - common: false - description: "The full path of the `journalctl` executable. If not set, Vector will search the path for `journalctl`." - required: false - warnings: [] - type: string: { - default: "journalctl" - examples: ["/usr/local/bin/journalctl"] - syntax: "literal" - } - } - } - - output: logs: { - event: { - description: "A Journald event" - fields: { - host: fields._local_host - message: { - description: "The raw line from the file." - required: true - type: string: { - examples: ["53.126.150.246 - - [01/Oct/2020:11:25:58 -0400] \"GET /disintermediate HTTP/2.0\" 401 20308"] - syntax: "literal" - } - } - timestamp: fields._current_timestamp - "*": { - common: false - description: "Any Journald field" - required: false - type: string: { - default: null - examples: ["/usr/sbin/ntpd", "c36e9ea52800a19d214cb71b53263a28"] - syntax: "literal" - } - } - } - } - } - - examples: [ - { - title: "Sample Output" - - configuration: {} - input: """ - ```text - 2019-07-26 20:30:27 reply from 192.168.1.2: offset -0.001791 delay 0.000176, next query 1500s - ``` - """ - output: [{ - log: { - timestamp: _values.current_timestamp - message: "reply from 192.168.1.2: offset -0.001791 delay 0.000176, next query 1500s" - host: _values.local_host - "__REALTIME_TIMESTAMP": "1564173027000443" - "__MONOTONIC_TIMESTAMP": "98694000446" - "_BOOT_ID": "124c781146e841ae8d9b4590df8b9231" - "SYSLOG_FACILITY": "3" - "_UID": "0" - "_GID": "0" - "_CAP_EFFECTIVE": "3fffffffff" - "_MACHINE_ID": "c36e9ea52800a19d214cb71b53263a28" - "PRIORITY": "6" - "_TRANSPORT": "stdout" - "_STREAM_ID": "92c79f4b45c4457490ebdefece29995e" - "SYSLOG_IDENTIFIER": "ntpd" - "_PID": "2156" - "_COMM": "ntpd" - "_EXE": "/usr/sbin/ntpd" - "_CMDLINE": "ntpd: [priv]" - "_SYSTEMD_CGROUP": "/system.slice/ntpd.service" - "_SYSTEMD_UNIT": "ntpd.service" - "_SYSTEMD_SLICE": "system.slice" - "_SYSTEMD_INVOCATION_ID": "496ad5cd046d48e29f37f559a6d176f8" - } - }] - }, - ] - - how_it_works: { - communication_strategy: { - title: "Communication Strategy" - body: """ - To ensure the `journald` source works across all platforms, Vector interacts - with the Systemd journal via the `journalctl` command. This is accomplished by - spawning a [subprocess][urls.rust_subprocess] that Vector interacts - with. If the `journalctl` command is not in the environment path you can - specify the exact location via the `journalctl_path` option. For more - information on this communication strategy please see - [issue #1473][urls.issue_1473]. - """ - } - non_ascii: { - title: "Non-ASCII Messages" - body: """ - When `journald` has stored a message that is not strict ASCII, - `journalctl` will output it in an alternate format to prevent data - loss. Vector handles this alternate format by translating such messages - into UTF-8 in "lossy" mode, where characters that are not valid UTF-8 - are replaced with the Unicode replacement character, `�`. - """ - } - } - - telemetry: metrics: { - invalid_record_total: components.sources.internal_metrics.output.metrics.invalid_record_total - invalid_record_bytes_total: components.sources.internal_metrics.output.metrics.invalid_record_bytes_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sources/kafka.cue b/docs/reference/components/sources/kafka.cue deleted file mode 100644 index 1a1465432aad6..0000000000000 --- a/docs/reference/components/sources/kafka.cue +++ /dev/null @@ -1,248 +0,0 @@ -package metadata - -components: sources: kafka: { - title: "Kafka" - - features: { - collect: { - checkpoint: enabled: false - tls: { - enabled: true - can_enable: true - can_verify_certificate: false - can_verify_hostname: false - enabled_default: false - } - from: components._kafka.features.collect.from - } - multiline: enabled: false - } - - classes: { - commonly_used: true - deployment_roles: ["aggregator"] - delivery: "at_least_once" - development: "stable" - egress_method: "stream" - stateful: false - } - - support: components._kafka.support - - installation: { - platform_name: null - } - - configuration: { - auto_offset_reset: { - common: false - description: "If offsets for consumer group do not exist, set them using this strategy. [librdkafka documentation][urls.librdkafka_config] for `auto.offset.reset` option for explanation." - required: false - warnings: [] - type: string: { - default: "largest" - examples: ["smallest", "earliest", "beginning", "largest", "latest", "end", "error"] - syntax: "literal" - } - } - bootstrap_servers: components._kafka.configuration.bootstrap_servers - commit_interval_ms: { - common: false - description: "The frequency that the consumer offsets are committed (written) to offset storage.\n" - required: false - warnings: [] - type: uint: { - default: 5000 - examples: [5000, 10000] - unit: "milliseconds" - } - } - fetch_wait_max_ms: { - common: false - description: "Maximum time the broker may wait to fill the response.\n" - required: false - warnings: [] - type: uint: { - default: 100 - examples: [50, 100] - unit: "milliseconds" - } - } - group_id: { - description: "The consumer group name to be used to consume events from Kafka.\n" - required: true - warnings: [] - type: string: { - examples: ["consumer-group-name"] - syntax: "literal" - } - } - key_field: { - common: true - description: "The log field name to use for the Kafka message key. If unspecified, the key would not be added to the log event. If the message has null key, then this field would not be added to the log event." - required: false - warnings: [] - type: string: { - default: null - examples: ["message_key"] - syntax: "literal" - } - } - topic_key: { - common: false - description: "The log field name to use for the Kafka topic. If unspecified, the key would not be added to the log event." - required: false - warnings: [] - type: string: { - default: null - examples: ["topic"] - syntax: "literal" - } - } - partition_key: { - common: false - description: "The log field name to use for the Kafka partition name. If unspecified, the key would not be added to the log event." - required: false - warnings: [] - type: string: { - default: null - examples: ["partition"] - syntax: "literal" - } - } - offset_key: { - common: false - description: "The log field name to use for the Kafka offset. If unspecified, the key would not be added to the log event." - required: false - warnings: [] - type: string: { - default: null - examples: ["offset"] - syntax: "literal" - } - } - librdkafka_options: components._kafka.configuration.librdkafka_options - sasl: { - common: false - description: "Options for SASL/SCRAM authentication support." - required: false - warnings: [] - type: object: { - examples: [] - options: { - enabled: { - common: true - description: "Enable SASL/SCRAM authentication to the remote. (Not supported on Windows at this time.)" - required: false - warnings: [] - type: bool: default: null - } - mechanism: { - common: true - description: "The Kafka SASL/SCRAM mechanisms." - required: false - warnings: [] - type: string: { - default: null - examples: ["SCRAM-SHA-256", "SCRAM-SHA-512"] - syntax: "literal" - } - } - password: { - common: true - description: "The Kafka SASL/SCRAM authentication password." - required: false - warnings: [] - type: string: { - default: null - examples: ["password"] - syntax: "literal" - } - } - username: { - common: true - description: "The Kafka SASL/SCRAM authentication username." - required: false - warnings: [] - type: string: { - default: null - examples: ["username"] - syntax: "literal" - } - } - } - } - } - session_timeout_ms: { - common: false - description: "The Kafka session timeout in milliseconds.\n" - required: false - warnings: [] - type: uint: { - default: 10000 - examples: [5000, 10000] - unit: "milliseconds" - } - } - socket_timeout_ms: components._kafka.configuration.socket_timeout_ms - topics: { - description: "The Kafka topics names to read events from. Regex is supported if the topic begins with `^`.\n" - required: true - warnings: [] - type: array: items: type: string: { - examples: ["^(prefix1|prefix2)-.+", "topic-1", "topic-2"] - syntax: "literal" - } - } - } - - output: logs: record: { - description: "An individual Kafka record" - fields: { - message: { - description: "The raw line from the Kafka record." - required: true - type: string: { - examples: ["53.126.150.246 - - [01/Oct/2020:11:25:58 -0400] \"GET /disintermediate HTTP/2.0\" 401 20308"] - syntax: "literal" - } - } - offset: { - description: "The Kafka offset at the time the record was retrieved." - required: true - type: uint: { - examples: [100] - unit: null - } - } - partition: { - description: "The Kafka partition that the record came from." - required: true - type: string: { - examples: ["partition"] - syntax: "literal" - } - } - timestamp: fields._current_timestamp & { - description: "The timestamp encoded in the Kafka message or the current time if it cannot be fetched." - } - topic: { - description: "The Kafka topic that the record came from." - required: true - type: string: { - examples: ["topic"] - syntax: "literal" - } - } - } - } - - telemetry: metrics: { - consumer_offset_updates_failed_total: components.sources.internal_metrics.output.metrics.consumer_offset_updates_failed_total - events_failed_total: components.sources.internal_metrics.output.metrics.events_failed_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } - - how_it_works: components._kafka.how_it_works -} diff --git a/docs/reference/components/sources/kubernetes_logs.cue b/docs/reference/components/sources/kubernetes_logs.cue deleted file mode 100644 index 5fa1ed5e29769..0000000000000 --- a/docs/reference/components/sources/kubernetes_logs.cue +++ /dev/null @@ -1,555 +0,0 @@ -package metadata - -components: sources: kubernetes_logs: { - _directory: "/var/log" - - title: "Kubernetes Logs" - - description: """ - Collects all log data for Kubernetes Nodes, automatically enriching data - with Kubernetes metadata via the Kubernetes API. - """ - - classes: { - commonly_used: true - delivery: "best_effort" - deployment_roles: ["daemon"] - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: true - from: { - service: services.kubernetes - - interface: { - file_system: { - directory: _directory - } - } - } - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: "kubernetes" - } - - configuration: { - annotation_fields: { - common: false - description: "Configuration for how the events are annotated with Pod metadata." - required: false - type: object: { - examples: [] - options: { - container_image: { - common: false - description: "Event field for Container image." - required: false - type: string: { - default: "kubernetes.container_image" - syntax: "literal" - } - } - container_name: { - common: false - description: "Event field for Container name." - required: false - type: string: { - default: "kubernetes.container_name" - syntax: "literal" - } - } - pod_ip: { - common: false - description: "Event field for Pod IPv4 Address." - required: false - type: string: { - default: "kubernetes.pod_ip" - syntax: "literal" - } - } - pod_ips: { - common: false - description: "Event field for Pod IPv4 and IPv6 Addresses." - required: false - type: string: { - default: "kubernetes.pod_ips" - syntax: "literal" - } - } - pod_labels: { - common: false - description: "Event field for Pod labels." - required: false - type: string: { - default: "kubernetes.pod_labels" - syntax: "literal" - } - } - pod_name: { - common: false - description: "Event field for Pod name." - required: false - type: string: { - default: "kubernetes.pod_name" - syntax: "literal" - } - } - pod_namespace: { - common: false - description: "Event field for Pod namespace." - required: false - type: string: { - default: "kubernetes.pod_namespace" - syntax: "literal" - } - } - pod_node_name: { - common: false - description: "Event field for Pod node_name." - required: false - type: string: { - default: "kubernetes.pod_node_name" - syntax: "literal" - } - } - pod_uid: { - common: false - description: "Event field for Pod uid." - required: false - type: string: { - default: "kubernetes.pod_uid" - syntax: "literal" - } - } - } - } - } - auto_partial_merge: { - common: false - description: "Automatically merge partial messages into a single event. Partial here is in respect to messages that were split by the Kubernetes Container Runtime log driver." - required: false - type: bool: default: true - } - self_node_name: { - common: false - description: "The name of the Kubernetes `Node` this Vector instance runs at. Configured to use an env var by default, to be evaluated to a value provided by Kubernetes at Pod deploy time." - required: false - type: string: { - default: "${VECTOR_SELF_NODE_NAME}" - syntax: "literal" - } - } - exclude_paths_glob_patterns: { - common: false - description: """ - A list of glob patterns to exclude from reading the files. - """ - required: false - type: array: { - default: [] - items: type: string: { - examples: ["**/exclude/**"] - syntax: "literal" - } - } - } - extra_field_selector: { - common: false - description: """ - Specifies the field selector to filter `Pod`s with, to be used in addition to the built-in `Node` filter. - The name of the Kubernetes `Node` this Vector instance runs at. Configured to use an env var by default, to be evaluated to a value provided by Kubernetes at Pod deploy time. - """ - required: false - type: string: { - default: "" - examples: ["metadata.name!=pod-name-to-exclude", "metadata.name!=pod-name-to-exclude,metadata.name=mypod"] - syntax: "literal" - } - } - extra_label_selector: { - common: false - description: """ - Specifies the label selector to filter `Pod`s with, to be used in - addition to the built-in `vector.dev/exclude` filter. - """ - required: false - type: string: { - default: "" - examples: ["my_custom_label!=my_value", "my_custom_label!=my_value,my_other_custom_label=my_value"] - syntax: "literal" - } - } - } - - output: logs: line: { - description: "An individual line from a `Pod` log file." - fields: { - file: { - description: "The absolute path of originating file." - required: true - type: string: { - examples: ["\(_directory)/pods/pod-namespace_pod-name_pod-uid/container/1.log"] - syntax: "literal" - } - } - "kubernetes.container_image": { - description: "Container image." - required: false - common: true - type: string: { - examples: ["busybox:1.30"] - default: null - syntax: "literal" - } - } - "kubernetes.container_name": { - description: "Container name." - required: false - common: true - type: string: { - examples: ["coredns"] - default: null - syntax: "literal" - } - } - "kubernetes.pod_ip": { - description: "Pod IPv4 address." - required: false - common: true - type: string: { - examples: ["192.168.1.1"] - default: null - syntax: "literal" - } - } - "kubernetes.pod_ips": { - description: "Pod IPv4 and IPv6 addresses." - required: false - common: true - type: string: { - examples: ["192.168.1.1", "::1"] - default: null - syntax: "literal" - } - } - "kubernetes.pod_labels": { - description: "Pod labels name." - required: false - common: true - type: object: { - examples: [{"mylabel": "myvalue"}] - options: {} - } - } - "kubernetes.pod_name": { - description: "Pod name." - required: false - common: true - type: string: { - examples: ["coredns-qwertyuiop-qwert"] - default: null - syntax: "literal" - } - } - "kubernetes.pod_namespace": { - description: "Pod namespace." - required: false - common: true - type: string: { - examples: ["kube-system"] - default: null - syntax: "literal" - } - } - "kubernetes.pod_node_name": { - description: "Pod node name." - required: false - common: true - type: string: { - examples: ["minikube"] - default: null - syntax: "literal" - } - } - "kubernetes.pod_uid": { - description: "Pod uid." - required: false - common: true - type: string: { - examples: ["ba46d8c9-9541-4f6b-bbf9-d23b36f2f136"] - default: null - syntax: "literal" - } - } - message: { - description: "The raw line from the Pod log file." - required: true - type: string: { - examples: ["53.126.150.246 - - [01/Oct/2020:11:25:58 -0400] \"GET /disintermediate HTTP/2.0\" 401 20308"] - syntax: "literal" - } - } - source_type: { - description: "The name of the source type." - required: true - type: string: { - examples: ["kubernetes_logs"] - syntax: "literal" - } - } - stream: { - description: "The name of the stream the log line was sumbitted to." - required: true - type: string: { - examples: ["stdout", "stderr"] - syntax: "literal" - } - } - timestamp: fields._current_timestamp - } - } - - examples: [ - { - title: "Sample Output" - configuration: {} - input: """ - ```text - F1015 11:01:46.499073 1 main.go:39] error getting server version: Get \"https://10.96.0.1:443/version?timeout=32s\": dial tcp 10.96.0.1:443: connect: network is unreachable - ``` - """ - output: log: { - "file": "/var/log/pods/kube-system_storage-provisioner_93bde4d0-9731-4785-a80e-cd27ba8ad7c2/storage-provisioner/1.log" - "kubernetes.container_image": "gcr.io/k8s-minikube/storage-provisioner:v3" - "kubernetes.container_name": "storage-provisioner" - "kubernetes.pod_ip": "192.168.1.1" - "kubernetes.pod_ips": ["192.168.1.1", "::1"] - "kubernetes.pod_labels": { - "addonmanager.kubernetes.io/mode": "Reconcile" - "gcp-auth-skip-secret": "true" - "integration-test": "storage-provisioner" - } - "kubernetes.pod_name": "storage-provisioner" - "kubernetes.pod_namespace": "kube-system" - "kubernetes.pod_node_name": "minikube" - "kubernetes.pod_uid": "93bde4d0-9731-4785-a80e-cd27ba8ad7c2" - "message": "F1015 11:01:46.499073 1 main.go:39] error getting server version: Get \"https://10.96.0.1:443/version?timeout=32s\": dial tcp 10.96.0.1:443: connect: network is unreachable" - "source_type": "kubernetes_logs" - "stream": "stderr" - "timestamp": "2020-10-15T11:01:46.499555308Z" - } - }, - ] - - // Note that these sections are also copied over the - // `installation.platforms.kubernetes.how_it_works` key. Therefore, full - // URLs should be used in links and language should be used that works in - // both contexts. - how_it_works: { - enrichment: { - title: "Enrichment" - body: """ - Vector will enrich data with Kubernetes context. A comprehensive - list of fields can be found in the - [`kubernetes_logs` source output docs](\(urls.vector_kubernetes_logs_source)#output). - """ - } - - filtering: { - title: "Filtering" - body: """ - Vector provides rich filtering options for Kubernetes log collection: - - * Built-in [`Pod`](#pod-exclusion) and [`container`](#container-exclusion) - exclusion rules. - * The `exclude_paths_glob_patterns` option allows you to exclude - Kuberenetes log files by the file name and path. - * The `extra_field_selector` option specifies the field selector to - filter Pods with, to be used in addition to the built-in `Node` filter. - * The `extra_label_selector` option specifies the label selector to - filter `Pod`s with, to be used in addition to the [built-in - `vector.dev/exclude` filter](#pod-exclusion). - """ - } - - pod_exclusion: { - title: "Pod exclusion" - body: """ - By default, the [`kubernetes_logs` source](\(urls.vector_kubernetes_logs_source)) - will skip logs from the `Pod`s that have a `vector.dev/exclude: "true"` *label*. - You can configure additional exclusion rules via label or field selectors, - see [the available options](\(urls.vector_kubernetes_logs_source)#configuration). - """ - } - - container_exclusion: { - title: "Container exclusion" - body: """ - The [`kubernetes_logs` source](\(urls.vector_kubernetes_logs_source)) - can skip the logs from the individual `container`s of a particular - `Pod`. Add an *annotation* `vector.dev/exclude-containers` to the - `Pod`, and enumerate the `name`s of all the `container`s to exclude in - the value of the annotation like so: - - ``` - vector.dev/exclude-containers: "container1,container2" - ``` - - This annotation will make Vector skip logs originating from the - `container1` and `container2` of the `Pod` marked with the annotation, - while logs from other `container`s in the `Pod` will still be - collected. - """ - } - - kubernetes_api_communication: { - title: "Kubernetes API communication" - body: """ - Vector communicates with the Kubernetes API to enrich the data it collects with - Kubernetes context. Therefore, Vector must have access to communicate with the - [Kubernetes API server](\(urls.kubernetes_api_server)). If Vector is running in - a Kubernetes cluster then Vector will connect to that cluster using the - [Kubernetes provided access information](\(urls.kubernetes_accessing_api_from_pod)). - - In addition to access, Vector implements proper desync handling to ensure - communication is safe and reliable. This ensures that Vector will not overwhelm - the Kubernetes API or compromise its stability. - """ - } - - partial_message_merging: { - title: "Partial message merging" - body: """ - Vector, by default, will merge partial messages that are - split due to the Docker size limit. For everything else, it - is recommended to use the [`reduce` - transform](\(urls.vector_reduce_transform)) which offers - the ability to handle custom merging of things like - stacktraces. - """ - } - - pod_removal: { - title: "Pod removal" - body: """ - To ensure all data is collected, Vector will continue to collect logs from the - `Pod` for some time after its removal. This ensures that Vector obtains some of - the most important data, such as crash details. - """ - } - - resource_limits: { - title: "Resource limits" - body: """ - Vector recommends the following resource limits. - """ - sub_sections: [ - { - title: "Agent resource limits" - body: """ - If deploy Vector as an agent (collecting data for each of your - Nodes), then we recommend the following limits: - - ```yaml - resources: - requests: - memory: "64Mi" - cpu: "500m" - limits: - memory: "1024Mi" - cpu: "6000m" - ``` - - **As with all Kubernetes resource limit recommendations, use these - as a reference point and adjust as ncessary. If your configured - Vector pipeline is complex, you may need more resources. If you - have a pipeline you may need less.** - """ - }, - ] - } - - state_management: { - title: "State management" - body: null - sub_sections: [ - { - title: "Agent state management" - body: """ - For the agent role, Vector stores its state at the host-mapped dir with a static - path, so if it's redeployed it'll continue from where it was interrupted. - """ - }, - ] - } - - testing_and_reliability: { - title: "Testing & reliability" - body: """ - Vector is tested extensively against Kubernetes. In addition to Kubernetes - being Vector's most popular installation method, Vector implements a - comprehensive end-to-end test suite for all minor Kubernetes versions starting - with `1.14. - """ - } - - kubernetes_api_access_control: { - title: "Kubernetes API access control" - body: """ - Vector requires access to the Kubernetes API. - Specifically, the [`kubernetes_logs` source](\(urls.vector_kubernetes_logs_source)) - uses the `/api/v1/pods` endpoint to "watch" the pods from - all namespaces. - - Modern Kubernetes clusters run with RBAC (role-based access control) - scheme. RBAC-enabled clusters require some configuration to grant Vector - the authorization to access the Kubernetes API endpoints. As RBAC is - currently the standard way of controlling access to the Kubernetes API, - we ship the necessary configuration out of the box: see `ClusterRole`, - `ClusterRoleBinding` and a `ServiceAccount` in our `kubectl` YAML - config, and the `rbac` configuration at the Helm chart. - - If your cluster doesn't use any access control scheme and doesn't - restrict access to the Kubernetes API, you don't need to do any extra - configuration - Vector willjust work. - - Clusters using legacy ABAC scheme are not officially supported - (although Vector might work if you configure access properly) - - we encourage switching to RBAC. If you use a custom access control - scheme - make sure Vector `Pod`/`ServiceAccount` is granted access to - the `/api/v1/pods` resource. - """ - } - } - - telemetry: metrics: { - k8s_format_picker_edge_cases_total: components.sources.internal_metrics.output.metrics.k8s_format_picker_edge_cases_total - k8s_docker_format_parse_failures_total: components.sources.internal_metrics.output.metrics.k8s_docker_format_parse_failures_total - k8s_event_annotation_failures_total: components.sources.internal_metrics.output.metrics.k8s_event_annotation_failures_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sources/mongodb_metrics.cue b/docs/reference/components/sources/mongodb_metrics.cue deleted file mode 100644 index f14a59c4a1d8c..0000000000000 --- a/docs/reference/components/sources/mongodb_metrics.cue +++ /dev/null @@ -1,768 +0,0 @@ -package metadata - -components: sources: mongodb_metrics: { - title: "MongoDB Metrics" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["daemon", "sidecar"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: false - from: { - service: services.mongodb - - interface: { - socket: { - api: { - title: "MongoDB serverStatus command" - url: urls.mongodb_command_server_status - } - direction: "outgoing" - protocols: ["tcp"] - ssl: "optional" - } - } - } - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [ - """ - User from endpoint should have enough privileges for running - [serverStatus][urls.mongodb_command_server_status] command. - """, - ] - - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - endpoints: { - description: "MongoDB [Connection String URI Format][urls.mongodb_connection_string_uri_format]" - required: true - type: array: { - items: type: string: { - examples: ["mongodb://localhost:27017"] - syntax: "literal" - } - } - } - scrape_interval_secs: { - description: "The interval between scrapes." - common: true - required: false - type: uint: { - default: 15 - unit: "seconds" - } - } - namespace: { - description: "The namespace of metrics. Disabled if empty." - common: false - required: false - type: string: { - default: "mongodb" - syntax: "literal" - } - } - } - - how_it_works: { - mod_status: { - title: "MongoDB `serverStatus` command" - body: """ - The [serverStatus][urls.mongodb_command_server_status] command - returns a document that provides an overview of the database’s - state. The output fields vary depending on the version of - MongoDB, underlying operating system platform, the storage - engine, and the kind of node, including `mongos`, `mongod` or - `replica set` member. - """ - } - } - - telemetry: metrics: { - collect_completed_total: components.sources.internal_metrics.output.metrics.collect_completed_total - collect_duration_nanoseconds: components.sources.internal_metrics.output.metrics.collect_duration_nanoseconds - request_errors_total: components.sources.internal_metrics.output.metrics.request_errors_total - parse_errors_total: components.sources.internal_metrics.output.metrics.parse_errors_total - } - - output: metrics: { - // Default MongoDB tags - _mongodb_metrics_tags: { - endpoint: { - description: "The absolute path of the originating file." - required: true - examples: ["mongodb://localhost:27017"] - } - host: { - description: "The hostname of the MongoDB server." - required: true - examples: [_values.local_host] - } - } - - assets_total: { - description: "Number of assertions raised since the MongoDB process started." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "The assertion type" - required: true - examples: ["regular", "warning", "msg", "user", "rollovers"] - } - } - } - bson_parse_error_total: { - description: "The total number of BSON parsing errors." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - connections: { - description: "Number of connections in some state." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - state: { - description: "The connection state" - required: true - examples: ["active", "available", "current"] - } - } - } - extra_info_heap_usage_bytes: { - description: "The total size in bytes of heap space used by the database process." - relevant_when: "Unix/Linux" - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - extra_info_page_faults: { - description: "The total number of page faults." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - instance_local_time: { - description: "The ISODate representing the current time, according to the server, in UTC." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - instance_uptime_estimate_seconds_total: { - description: "The uptime in seconds as calculated from MongoDB’s internal course-grained time keeping system." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - instance_uptime_seconds_total: { - description: "The number of seconds that the current MongoDB process has been active." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - memory: { - description: "Current memory unsage." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Memory type" - required: true - examples: ["resident", "virtual", "mapped", "mapped_with_journal"] - } - } - } - mongod_global_lock_active_clients: { - description: "Number of connected clients and the read and write operations performed by these clients." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Number type." - required: true - examples: ["total", "readers", "writers"] - } - } - } - mongod_global_lock_current_queue: { - description: "Number of operations queued because of a lock." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Number type." - required: true - examples: ["total", "readers", "writers"] - } - } - } - mongod_global_lock_total_time_seconds: { - description: "The time since the database last started and created the globalLock. This is roughly equivalent to total server uptime." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_locks_time_acquiring_global_seconds_total: { - description: "Amount of time that any database has spent waiting for the global lock." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Lock type." - required: true - examples: ["ParallelBatchWriterMode", "ReplicationStateTransition", "Global", "Database", "Collection", "Mutex", "Metadata", "oplog"] - } - mode: { - description: "Lock mode." - required: true - examples: ["read", "write"] - } - } - } - mongod_metrics_cursor_open: { - description: "Number of cursors." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - state: { - description: "Cursor state." - required: true - examples: ["no_timeout", "pinned", "total"] - } - } - } - mongod_metrics_cursor_timed_out_total: { - description: "The total number of cursors that have timed out since the server process started." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_document_total: { - description: "Document access and modification patterns." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - state: { - description: "Document state." - required: true - examples: ["deleted", "inserted", "returned", "updated"] - } - } - } - mongod_metrics_get_last_error_wtime_num: { - description: "The total number of getLastError operations with a specified write concern." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_get_last_error_wtime_seconds_total: { - description: "The total amount of time that the mongod has spent performing getLastError operations." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_get_last_error_wtimeouts_total: { - description: "The number of times that write concern operations have timed out as a result of the wtimeout threshold to getLastError." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_operation_total: { - description: "Update and query operations that MongoDB handles using special operation types." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Operation type." - required: true - examples: ["scan_and_order", "write_conflicts"] - } - } - } - mongod_metrics_query_executor_total: { - description: "Data from query execution system." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - state: { - description: "Query state." - required: true - examples: ["scanned", "scanned_objects", "collection_scans"] - } - } - } - mongod_metrics_record_moves_total: { - description: "Moves reports the total number of times documents move within the on-disk representation of the MongoDB data set. Documents move as a result of operations that increase the size of the document beyond their allocated record size." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_apply_batches_num_total: { - description: "The total number of batches applied across all databases." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_apply_batches_seconds_total: { - description: "The total amount of time the mongod has spent applying operations from the oplog." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_apply_ops_total: { - description: "The total number of oplog operations applied." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_buffer_count: { - description: "The current number of operations in the oplog buffer." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_buffer_max_size_bytes_total: { - description: "The maximum size of the buffer." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_buffer_size_bytes: { - description: "The current size of the contents of the oplog buffer." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_executor_queue: { - description: "Number of queued operations in the replication executor." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Queue type." - required: true - examples: ["network_in_progress", "sleepers"] - } - } - } - mongod_metrics_repl_executor_unsignaled_events: { - description: "Number of unsignaled events in the replication executor." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_network_bytes_total: { - description: "The total amount of data read from the replication sync source." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_network_getmores_num_total: { - description: "The total number of getmore operations, which are operations that request an additional set of operations from the replication sync source." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_network_getmores_seconds_total: { - description: "The total amount of time required to collect data from getmore operations." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_network_ops_total: { - description: "The total number of operations read from the replication source." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_repl_network_readers_created_total: { - description: "The total number of oplog query processes created." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_ttl_deleted_documents_total: { - description: "The total number of documents deleted from collections with a ttl index." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_metrics_ttl_passes_total: { - description: "The number of times the background process removes documents from collections with a ttl index." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_op_latencies_histogram: { - description: "Latency statistics." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Latency type." - required: true - examples: ["reads", "writes", "commands"] - } - micros: { - description: "Bucket." - required: true - examples: ["1", "2", "4096", "16384", "49152"] - } - } - } - mongod_op_latencies_latency: { - description: "A 64-bit integer giving the total combined latency in microseconds." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Latency type." - required: true - examples: ["network_in_progress", "sleepers"] - } - } - } - mongod_op_latencies_ops_total: { - description: "A 64-bit integer giving the total number of operations performed on the collection since startup." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Latency type." - required: true - examples: ["network_in_progress", "sleepers"] - } - } - } - mongod_storage_engine: { - description: "The name of the current storage engine." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - engine: { - description: "Engine name." - required: true - examples: ["wiredTiger"] - } - } - } - mongod_wiredtiger_blockmanager_blocks_total: { - description: "Statistics on the block manager operations." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Operation type." - required: true - examples: ["blocks_read", "blocks_read_mapped", "blocks_pre_loaded", "blocks_written"] - } - } - } - mongod_wiredtiger_blockmanager_bytes_total: { - description: "Statistics on the block manager operations." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Operation type." - required: true - examples: ["bytes_read", "bytes_read_mapped", "bytes_written"] - } - } - } - mongod_wiredtiger_cache_bytes: { - description: "Statistics on the cache and page evictions from the cache." - relevant_when: "Storage engine is `wiredTiger`." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Statistics type." - required: true - examples: ["total", "dirty", "internal_pages", "leaf_pages"] - } - } - } - mongod_wiredtiger_cache_bytes_total: { - description: "Statistics on the cache and page evictions from the cache." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Statistics type." - required: true - examples: ["read", "written"] - } - } - } - mongod_wiredtiger_cache_evicted_total: { - description: "Statistics on the cache and page evictions from the cache." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Statistics type." - required: true - examples: ["modified", "unmodified"] - } - } - } - mongod_wiredtiger_cache_max_bytes: { - description: "Maximum cache size." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_wiredtiger_cache_overhead_percent: { - description: "Percentage overhead." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_wiredtiger_cache_pages: { - description: "Pages in the cache." - relevant_when: "Storage engine is `wiredTiger`." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Pages type." - required: true - examples: ["total", "dirty"] - } - } - } - mongod_wiredtiger_cache_pages_total: { - description: "Pages in the cache." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Pages type." - required: true - examples: ["read", "write"] - } - } - } - mongod_wiredtiger_concurrent_transactions_available_tickets: { - description: "Information on the number of concurrent of read and write transactions allowed into the WiredTiger storage engine" - relevant_when: "Storage engine is `wiredTiger`." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Transactions type." - required: true - examples: ["read", "write"] - } - } - } - mongod_wiredtiger_concurrent_transactions_out_tickets: { - description: "Information on the number of concurrent of read and write transactions allowed into the WiredTiger storage engine" - relevant_when: "Storage engine is `wiredTiger`." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Transactions type." - required: true - examples: ["read", "write"] - } - } - } - mongod_wiredtiger_concurrent_transactions_total_tickets: { - description: "Information on the number of concurrent of read and write transactions allowed into the WiredTiger storage engine" - relevant_when: "Storage engine is `wiredTiger`." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Transactions type." - required: true - examples: ["read", "write"] - } - } - } - mongod_wiredtiger_log_bytes_total: { - description: "Statistics on WiredTiger’s write ahead log (i.e. the journal)." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Bytes type." - required: true - examples: ["payload", "written"] - } - } - } - mongod_wiredtiger_log_operations_total: { - description: "Statistics on WiredTiger’s write ahead log (i.e. the journal)." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Operations type." - required: true - examples: ["write", "scan", "scan_double", "sync", "sync_dir", "flush"] - } - } - } - mongod_wiredtiger_log_records_scanned_total: { - description: "Statistics on WiredTiger’s write ahead log (i.e. the journal)." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Scanned records type." - required: true - examples: ["compressed", "uncompressed"] - } - } - } - mongod_wiredtiger_log_records_total: { - description: "Statistics on WiredTiger’s write ahead log (i.e. the journal)." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_wiredtiger_session_open_sessions: { - description: "Open session count." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_wiredtiger_transactions_checkpoint_seconds: { - description: "Statistics on transaction checkpoints and operations." - relevant_when: "Storage engine is `wiredTiger`." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Checkpoint type." - required: true - examples: ["min", "max"] - } - } - } - mongod_wiredtiger_transactions_checkpoint_seconds_total: { - description: "Statistics on transaction checkpoints and operations." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_wiredtiger_transactions_running_checkpoints: { - description: "Statistics on transaction checkpoints and operations." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongod_wiredtiger_transactions_total: { - description: "Statistics on transaction checkpoints and operations." - relevant_when: "Storage engine is `wiredTiger`." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Transactions type." - required: true - examples: ["begins", "checkpoints", "committed", "rolledback"] - } - } - } - network_bytes_total: { - description: "The number of bytes that reflects the amount of network traffic." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - state: { - description: "Bytes state." - required: true - examples: ["bytes_in", "bytes_out"] - } - } - } - network_metrics_num_requests_total: { - description: "The total number of distinct requests that the server has received." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - mongodb_op_counters_repl_total: { - description: "Database replication operations by type since the mongod instance last started." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Counter type." - required: true - examples: ["insert", "query", "update", "delete", "getmore", "command"] - } - } - } - mongodb_op_counters_total: { - description: "Database operations by type since the mongod instance last started." - type: "counter" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags & { - type: { - description: "Counter type." - required: true - examples: ["insert", "query", "update", "delete", "getmore", "command"] - } - } - } - up: { - description: "If the MongoDB server is up or not." - type: "gauge" - default_namespace: "mongodb" - tags: _mongodb_metrics_tags - } - } - - telemetry: metrics: { - collect_completed_total: components.sources.internal_metrics.output.metrics.collect_completed_total - collect_duration_nanoseconds: components.sources.internal_metrics.output.metrics.collect_duration_nanoseconds - parse_errors_total: components.sources.internal_metrics.output.metrics.parse_errors_total - request_errors_total: components.sources.internal_metrics.output.metrics.request_errors_total - } -} diff --git a/docs/reference/components/sources/nginx_metrics.cue b/docs/reference/components/sources/nginx_metrics.cue deleted file mode 100644 index 640daefcc18e0..0000000000000 --- a/docs/reference/components/sources/nginx_metrics.cue +++ /dev/null @@ -1,190 +0,0 @@ -package metadata - -components: sources: nginx_metrics: { - title: "Nginx Metrics" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["daemon", "sidecar"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: false - from: { - service: services.nginx - - interface: { - socket: { - api: { - title: "Nginx ngx_http_stub_status_module module" - url: urls.nginx_stub_status_module - } - direction: "outgoing" - protocols: ["http"] - ssl: "optional" - } - } - } - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [ - "Module `ngx_http_stub_status_module` should be enabled.", - ] - - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - endpoints: { - description: "HTTP/HTTPS endpoint to Nginx server with enabled `ngx_http_stub_status_module` module." - required: true - type: array: { - items: type: string: { - examples: ["http://localhost:8000/basic_status"] - syntax: "literal" - } - } - } - scrape_interval_secs: { - description: "The interval between scrapes." - common: true - required: false - type: uint: { - default: 15 - unit: "seconds" - } - } - namespace: { - description: "The namespace of metrics. Disabled if empty." - common: false - required: false - type: string: { - default: "nginx" - syntax: "literal" - } - } - tls: configuration._tls_connect & {_args: { - can_enable: true - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - }} - auth: configuration._http_auth & {_args: { - password_example: "${HTTP_PASSWORD}" - username_example: "${HTTP_USERNAME}" - }} - } - - how_it_works: { - mod_status: { - title: "Module `ngx_http_stub_status_module`" - body: """ - The [ngx_http_stub_status_module][urls.nginx_stub_status_module] - module provides access to basic status information. Basic status - information is a simple web page with text data. - """ - } - } - - telemetry: metrics: { - collect_completed_total: components.sources.internal_metrics.output.metrics.collect_completed_total - collect_duration_nanoseconds: components.sources.internal_metrics.output.metrics.collect_duration_nanoseconds - http_request_errors_total: components.sources.internal_metrics.output.metrics.http_request_errors_total - parse_errors_total: components.sources.internal_metrics.output.metrics.parse_errors_total - } - - output: metrics: { - // Default Nginx tags - _nginx_metrics_tags: { - endpoint: { - description: "Nginx endpoint." - required: true - examples: ["http://localhost:8000/basic_status"] - } - host: { - description: "The hostname of the Nginx server." - required: true - examples: [_values.local_host] - } - } - - up: { - description: "If the Nginx server is up or not." - type: "gauge" - default_namespace: "nginx" - tags: _nginx_metrics_tags - } - connections_active: { - description: "The current number of active client connections including `Waiting` connections." - type: "gauge" - default_namespace: "nginx" - tags: _nginx_metrics_tags - } - connections_accepted_total: { - description: "The total number of accepted client connections." - type: "counter" - default_namespace: "nginx" - tags: _nginx_metrics_tags - } - connections_handled_total: { - description: "The total number of handled connections. Generally, the parameter value is the same as `accepts` unless some resource limits have been reached (for example, the `worker_connections` limit)." - type: "counter" - default_namespace: "nginx" - tags: _nginx_metrics_tags - } - http_requests_total: { - description: "The total number of client requests." - type: "counter" - default_namespace: "nginx" - tags: _nginx_metrics_tags - } - connections_reading: { - description: "The current number of connections where nginx is reading the request header." - type: "gauge" - default_namespace: "nginx" - tags: _nginx_metrics_tags - } - connections_writing: { - description: "The current number of connections where nginx is writing the response back to the client." - type: "gauge" - default_namespace: "nginx" - tags: _nginx_metrics_tags - } - connections_waiting: { - description: "The current number of idle client connections waiting for a request." - type: "gauge" - default_namespace: "nginx" - tags: _nginx_metrics_tags - } - } - - telemetry: metrics: { - collect_completed_total: components.sources.internal_metrics.output.metrics.collect_completed_total - collect_duration_nanoseconds: components.sources.internal_metrics.output.metrics.collect_duration_nanoseconds - http_request_errors_total: components.sources.internal_metrics.output.metrics.http_request_errors_total - parse_errors_total: components.sources.internal_metrics.output.metrics.parse_errors_total - } -} diff --git a/docs/reference/components/sources/postgresql_metrics.cue b/docs/reference/components/sources/postgresql_metrics.cue deleted file mode 100644 index d63c3d939552c..0000000000000 --- a/docs/reference/components/sources/postgresql_metrics.cue +++ /dev/null @@ -1,410 +0,0 @@ -package metadata - -components: sources: postgresql_metrics: { - title: "PostgreSQL Metrics" - description: "[PostgreSQL][urls.postgresql] PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance." - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["daemon", "sidecar"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: false - from: { - service: { - name: "PostgreSQL Server" - thing: "an \(name)" - url: urls.postgresql - versions: "9.6-13" - } - - interface: { - socket: { - direction: "outgoing" - protocols: ["tcp", "unix"] - ssl: "optional" - } - } - } - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - endpoints: { - description: "PostgreSQL server endpoint in libpq-style connection strings." - required: true - type: array: { - items: type: string: { - examples: ["postgresql://postgres:vector@localhost:5432/postgres"] - syntax: "literal" - } - } - } - scrape_interval_secs: { - description: "The interval between scrapes." - common: true - required: false - type: uint: { - default: 15 - unit: "seconds" - } - } - namespace: { - description: "The namespace of metrics. Disabled if empty." - common: false - required: false - type: string: { - default: "postgresql" - syntax: "literal" - } - } - include_databases: { - description: """ - A list of databases to match (by using [POSIX Regular Expressions][urls.postgresql_matching]) against - the `datname` column for which you want to collect metrics from. - If not set, metrics will be collected from all databases. - Specifying `""` will include metrics where `datname` is `NULL`. - This can be used in conjunction with [`exclude_databases`](#exclude_databases). - """ - common: false - required: false - type: array: { - default: null - items: type: string: { - examples: ["^postgres$", "^vector$", "^foo"] - syntax: "literal" - } - } - } - exclude_databases: { - description: """ - A list of databases to match (by using [POSIX Regular Expressions][urls.postgresql_matching]) against - the `datname` column for which you don't want to collect metrics from. - Specifying `""` will include metrics where `datname` is `NULL`. - This can be used in conjunction with [`include_databases`](#include_databases). - """ - common: false - required: false - type: array: { - default: null - items: type: string: { - examples: ["^postgres$", "^template.*", ""] - syntax: "literal" - } - } - } - tls: { - common: false - description: "TLS options to connect to the PostgreSQL Server." - required: false - type: object: { - examples: [] - options: { - ca_file: { - description: "Path to CA certificate file." - required: true - warnings: [] - type: string: { - examples: ["certs/ca.pem"] - syntax: "literal" - } - } - } - } - } - } - - how_it_works: { - privileges: { - title: "Required Privileges" - body: """ - PostgreSQL Metrics component collects metrics by making queries to the configured PostgreSQL server. - Ensure the configured user is allowed to make the select queries against the following views: - - - `pg_stat_database` - - `pg_stat_database_conflicts` - - `pg_stat_bgwriter` - """ - } - } - - telemetry: metrics: { - collect_completed_total: components.sources.internal_metrics.output.metrics.collect_completed_total - collect_duration_nanoseconds: components.sources.internal_metrics.output.metrics.collect_duration_nanoseconds - request_errors_total: components.sources.internal_metrics.output.metrics.request_errors_total - } - - output: metrics: { - // Default PostgreSQL tags - _postgresql_metrics_tags: { - endpoint: { - description: "PostgreSQL endpoint." - required: true - examples: ["postgresql:///postgres?host=localhost&port=5432"] - } - host: { - description: "The hostname of the PostgreSQL server." - required: true - examples: [_values.local_host] - } - } - _postgresql_metrics_tags_with_db: _postgresql_metrics_tags & { - type: { - description: "Database name." - required: true - examples: ["postgres"] - } - } - - up: { - description: "Whether the PostgreSQL server is up or not." - type: "gauge" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_database_datid: { - description: "OID of this database, or 0 for objects belonging to a shared relation." - type: "gauge" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_numbackends: { - description: "Number of backends currently connected to this database, or 0 for shared objects. This is the only column in this view that returns a value reflecting current state; all other columns return the accumulated values since the last reset." - type: "gauge" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_xact_commit_total: { - description: "Number of transactions in this database that have been committed." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_xact_rollback_total: { - description: "Number of transactions in this database that have been rolled back." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_blks_read_total: { - description: "Number of disk blocks read in this database." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_blks_hit_total: { - description: "Number of times disk blocks were found already in the buffer cache, so that a read was not necessary (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache)." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_tup_returned_total: { - description: "Number of rows returned by queries in this database." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_tup_fetched_total: { - description: "Number of rows fetched by queries in this database." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_tup_inserted_total: { - description: "Number of rows inserted by queries in this database." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_tup_updated_total: { - description: "Number of rows updated by queries in this database." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_tup_deleted_total: { - description: "Number of rows deleted by queries in this database." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_conflicts_total: { - description: "Number of queries canceled due to conflicts with recovery in this database. (Conflicts occur only on standby servers; see `pg_stat_database_conflicts` for details.)" - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_temp_files_total: { - description: "Number of temporary files created by queries in this database. All temporary files are counted, regardless of why the temporary file was created (e.g., sorting or hashing), and regardless of the `log_temp_files` setting." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_temp_bytes_total: { - description: "Total amount of data written to temporary files by queries in this database. All temporary files are counted, regardless of why the temporary file was created, and regardless of the `log_temp_files` setting." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_deadlocks_total: { - description: "Number of deadlocks detected in this database." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_checksum_failures_total: { - description: "Number of data page checksum failures detected in this database (or on a shared object), or 0 if data checksums are not enabled." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_checksum_last_failure: { - description: "Time at which the last data page checksum failure was detected in this database (or on a shared object), or 0 if data checksums are not enabled." - type: "gauge" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_blk_read_time_seconds_total: { - description: "Time spent reading data file blocks by backends in this database, in milliseconds (if `track_io_timing` is enabled, otherwise zero)." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_blk_write_time_seconds_total: { - description: "Time spent writing data file blocks by backends in this database, in milliseconds (if `track_io_timing` is enabled, otherwise zero)." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_stats_reset: { - description: "Time at which these statistics were last reset." - type: "gauge" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_conflicts_confl_tablespace_total: { - description: "Number of queries in this database that have been canceled due to dropped tablespaces." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_conflicts_confl_lock_total: { - description: "Number of queries in this database that have been canceled due to lock timeouts." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_conflicts_confl_snapshot_total: { - description: "Number of queries in this database that have been canceled due to old snapshots." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_conflicts_confl_bufferpin_total: { - description: "Number of queries in this database that have been canceled due to pinned buffers." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_database_conflicts_confl_deadlock_total: { - description: "Number of queries in this database that have been canceled due to deadlocks." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags_with_db - } - pg_stat_bgwriter_checkpoints_timed_total: { - description: "Number of scheduled checkpoints that have been performed." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_checkpoints_req_total: { - description: "Number of requested checkpoints that have been performed." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_checkpoint_write_time_seconds_total: { - description: "Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_checkpoint_sync_time_seconds_total: { - description: "Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_buffers_checkpoint_total: { - description: "Number of buffers written during checkpoints." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_buffers_clean_total: { - description: "Number of buffers written by the background writer." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_maxwritten_clean_total: { - description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_buffers_backend_total: { - description: "Number of buffers written directly by a backend." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_buffers_backend_fsync_total: { - description: "Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_buffers_alloc_total: { - description: "Number of buffers allocated." - type: "counter" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - pg_stat_bgwriter_stats_reset: { - description: "Time at which these statistics were last reset." - type: "gauge" - default_namespace: "postgresql" - tags: _postgresql_metrics_tags - } - } -} diff --git a/docs/reference/components/sources/prometheus_remote_write.cue b/docs/reference/components/sources/prometheus_remote_write.cue deleted file mode 100644 index a64a0ad68e7da..0000000000000 --- a/docs/reference/components/sources/prometheus_remote_write.cue +++ /dev/null @@ -1,106 +0,0 @@ -package metadata - -components: sources: prometheus_remote_write: { - title: "Prometheus Remote Write" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["daemon", "sidecar"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - multiline: enabled: false - receive: { - from: { - service: services.prometheus - - interface: socket: { - api: { - title: "Prometheus Remote Write" - url: urls.prometheus_remote_write - } - direction: "incoming" - port: 9090 - protocols: ["http"] - ssl: "optional" - } - } - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - enabled_default: false - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - address: { - description: "The address to accept connections on. The address _must_ include a port." - required: true - type: string: { - examples: ["0.0.0.0:9090"] - syntax: "literal" - } - } - auth: configuration._http_basic_auth - } - - output: metrics: { - counter: output._passthrough_counter - gauge: output._passthrough_gauge - } - - how_it_works: { - metric_types: { - title: "Metric type interpretation" - body: """ - The remote_write protocol used by this source transmits - only the metric tags, timestamp, and numerical value. No - explicit information about the original type of the - metric (i.e. counter, histogram, etc) is included. As - such, this source makes a guess as to what the original - metric type was. - - For metrics named with a suffix of `_total`, this source - emits the value as a counter metric. All other metrics - are emitted as gauges. - """ - } - } - - telemetry: metrics: { - http_error_response_total: components.sources.internal_metrics.output.metrics.http_error_response_total - http_request_errors_total: components.sources.internal_metrics.output.metrics.http_request_errors_total - parse_errors_total: components.sources.internal_metrics.output.metrics.parse_errors_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - requests_completed_total: components.sources.internal_metrics.output.metrics.requests_completed_total - requests_received_total: components.sources.internal_metrics.output.metrics.requests_received_total - request_duration_nanoseconds: components.sources.internal_metrics.output.metrics.request_duration_nanoseconds - } -} diff --git a/docs/reference/components/sources/prometheus_scrape.cue b/docs/reference/components/sources/prometheus_scrape.cue deleted file mode 100644 index e7a2b95475b73..0000000000000 --- a/docs/reference/components/sources/prometheus_scrape.cue +++ /dev/null @@ -1,97 +0,0 @@ -package metadata - -components: sources: prometheus_scrape: { - title: "Prometheus Scrape" - alias: "prometheus" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["daemon", "sidecar"] - development: "beta" - egress_method: "batch" - stateful: false - } - - features: { - collect: { - checkpoint: enabled: false - from: { - service: services.prometheus_client - - interface: socket: { - api: { - title: "Prometheus" - url: urls.prometheus_text_based_exposition_format - } - direction: "outgoing" - protocols: ["http"] - ssl: "optional" - } - } - tls: { - enabled: true - can_enable: false - can_verify_certificate: true - can_verify_hostname: true - enabled_default: false - } - } - multiline: enabled: false - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - endpoints: { - description: "Endpoints to scrape metrics from." - required: true - warnings: ["You must explicitly add the path to your endpoints. Vector will _not_ automatically add `/metics`."] - type: array: { - items: type: string: { - examples: ["http://localhost:9090/metrics"] - syntax: "literal" - } - } - } - scrape_interval_secs: { - common: true - description: "The interval between scrapes, in seconds." - required: false - warnings: [] - type: uint: { - default: 15 - unit: "seconds" - } - } - auth: configuration._http_auth & {_args: { - password_example: "${PROMETHEUS_PASSWORD}" - username_example: "${PROMETHEUS_USERNAME}" - }} - } - - output: metrics: { - counter: output._passthrough_counter - gauge: output._passthrough_gauge - histogram: output._passthrough_histogram - summary: output._passthrough_summary - } -} diff --git a/docs/reference/components/sources/socket.cue b/docs/reference/components/sources/socket.cue deleted file mode 100644 index 17e3b552e522d..0000000000000 --- a/docs/reference/components/sources/socket.cue +++ /dev/null @@ -1,169 +0,0 @@ -package metadata - -components: sources: socket: { - _port: 9000 - - title: "Socket" - - classes: { - commonly_used: true - delivery: "best_effort" - deployment_roles: ["aggregator", "sidecar"] - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - multiline: enabled: false - receive: { - from: { - service: services.socket_client - interface: socket: { - direction: "incoming" - port: _port - protocols: ["tcp", "unix", "udp"] - ssl: "optional" - } - } - receive_buffer_bytes: { - enabled: true - relevant_when: "mode = `tcp` or mode = `udp` && os = `unix`" - } - keepalive: enabled: true - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - enabled_default: false - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - address: { - description: "The address to listen for connections on, or `systemd#N` to use the Nth socket passed by systemd socket activation. If an address is used it _must_ include a port." - relevant_when: "mode = `tcp` or `udp`" - required: true - warnings: [] - type: string: { - examples: ["0.0.0.0:\(_port)", "systemd", "systemd#3"] - syntax: "literal" - } - } - host_key: { - category: "Context" - common: false - description: "The key name added to each event representing the current host. This can also be globally set via the [global `host_key` option][docs.reference.configuration.global-options#host_key]." - required: false - warnings: [] - type: string: { - default: "host" - syntax: "literal" - } - } - max_length: { - common: true - description: "The maximum bytes size of incoming messages before they are discarded." - required: false - warnings: [] - type: uint: { - default: 102400 - unit: "bytes" - } - } - mode: { - description: "The type of socket to use." - required: true - warnings: [] - type: string: { - enum: { - tcp: "TCP socket." - udp: "UDP socket." - unix_datagram: "Unix domain datagram socket." - unix_stream: "Unix domain stream socket." - } - syntax: "literal" - } - } - path: { - description: "The unix socket path. *This should be an absolute path*." - relevant_when: "mode = `unix`" - required: true - warnings: [] - type: string: { - examples: ["/path/to/socket"] - syntax: "literal" - } - } - shutdown_timeout_secs: { - common: false - description: "The timeout before a connection is forcefully closed during shutdown." - relevant_when: "mode = `tcp``" - required: false - warnings: [] - type: uint: { - default: 30 - unit: "seconds" - } - } - } - - output: logs: line: { - description: "A single socket event." - fields: { - host: fields._local_host - message: fields._raw_line - timestamp: fields._current_timestamp - } - } - - examples: [ - { - _line: """ - 2019-02-13T19:48:34+00:00 [info] Started GET "/" for 127.0.0.1 - """ - title: "Socket line" - configuration: {} - input: """ - ```text - \( _line ) - ``` - """ - output: log: { - timestamp: _values.current_timestamp - message: _line - host: _values.local_host - } - }, - ] - - telemetry: metrics: { - connection_errors_total: components.sources.internal_metrics.output.metrics.connection_errors_total - connection_failed_total: components.sources.internal_metrics.output.metrics.connection_failed_total - connection_established_total: components.sources.internal_metrics.output.metrics.connection_established_total - connection_failed_total: components.sources.internal_metrics.output.metrics.connection_failed_total - connection_send_errors_total: components.sources.internal_metrics.output.metrics.connection_send_errors_total - connection_shutdown_total: components.sources.internal_metrics.output.metrics.connection_shutdown_total - } -} diff --git a/docs/reference/components/sources/splunk_hec.cue b/docs/reference/components/sources/splunk_hec.cue deleted file mode 100644 index 1916035be9c3f..0000000000000 --- a/docs/reference/components/sources/splunk_hec.cue +++ /dev/null @@ -1,105 +0,0 @@ -package metadata - -components: sources: splunk_hec: { - _port: 8080 - - title: "Splunk HTTP Event Collector (HEC)" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["aggregator"] - development: "stable" - egress_method: "batch" - stateful: false - } - - features: { - multiline: enabled: false - receive: { - from: { - service: services.splunk - - interface: socket: { - api: { - title: "Splunk HEC" - url: urls.splunk_hec_protocol - } - direction: "incoming" - port: _port - protocols: ["http"] - ssl: "optional" - } - } - - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - enabled_default: false - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - address: { - common: true - description: "The address to accept connections on." - required: false - warnings: [] - type: string: { - default: "0.0.0.0:\(_port)" - syntax: "literal" - } - } - token: { - common: true - description: "If supplied, incoming requests must supply this token in the `Authorization` header, just as a client would if it was communicating with the Splunk HEC endpoint directly. If _not_ supplied, the `Authorization` header will be ignored and requests will not be authenticated." - required: false - warnings: [] - type: string: { - default: null - examples: ["A94A8FE5CCB19BA61C4C08"] - syntax: "literal" - } - } - } - - output: logs: event: { - description: "A single event" - fields: { - message: fields._raw_line - splunk_channel: { - description: "The Splunk channel, value of the `X-Splunk-Request-Channel` header." - required: true - type: timestamp: {} - } - timestamp: fields._current_timestamp - } - } - - telemetry: metrics: { - http_request_errors_total: components.sources.internal_metrics.output.metrics.http_request_errors_total - requests_received_total: components.sources.internal_metrics.output.metrics.requests_received_total - } -} diff --git a/docs/reference/components/sources/statsd.cue b/docs/reference/components/sources/statsd.cue deleted file mode 100644 index 7c712803006a5..0000000000000 --- a/docs/reference/components/sources/statsd.cue +++ /dev/null @@ -1,139 +0,0 @@ -package metadata - -components: sources: statsd: { - _port: 8125 - - title: "StatsD" - - classes: { - commonly_used: false - delivery: "best_effort" - deployment_roles: ["aggregator"] - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - multiline: enabled: false - receive: { - from: { - service: services.statsd - interface: socket: { - api: { - title: "StatsD" - url: urls.statsd_udp_protocol - } - direction: "incoming" - port: _port - protocols: ["udp"] - ssl: "optional" - } - } - receive_buffer_bytes: { - enabled: true - relevant_when: "mode = `tcp` or mode = `udp` && os = `unix`" - } - keepalive: enabled: true - tls: enabled: false - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - address: { - description: "The address to listen for connections on, or `systemd#N` to use the Nth socket passed by systemd socket activation. If an address is used it _must_ include a port." - relevant_when: "mode = `tcp` or `udp`" - required: true - warnings: [] - type: string: { - examples: ["0.0.0.0:\(_port)", "systemd", "systemd#3"] - syntax: "literal" - } - } - mode: { - description: "The type of socket to use." - required: true - warnings: [] - type: string: { - enum: { - tcp: "TCP Socket." - udp: "UDP Socket." - unix: "Unix Domain Socket." - } - syntax: "literal" - } - } - path: { - description: "The unix socket path. *This should be an absolute path*." - relevant_when: "mode = `unix`" - required: true - warnings: [] - type: string: { - examples: ["/path/to/socket"] - syntax: "literal" - } - } - shutdown_timeout_secs: { - common: false - description: "The timeout before a connection is forcefully closed during shutdown." - relevant_when: "mode = `tcp`" - required: false - warnings: [] - type: uint: { - default: 30 - unit: "seconds" - } - } - - } - - output: metrics: { - counter: output._passthrough_counter - distribution: output._passthrough_distribution - gauge: output._passthrough_gauge - set: output._passthrough_set - } - - how_it_works: { - timestamps: { - title: "Timestamps" - body: """ - StatsD protocol does not provide support for sending metric - timestamps. You'll notice that each parsed metric is assigned a - `null` timestamp, which is a special value which means "a real - time metric", i.e. not a historical one. Normally such `null` - timestamps will be substituted by current time by downstream - sinks or 3rd party services during sending/ingestion. See the - [metric][docs.data-model.metric] data model page for more info. - """ - } - } - - telemetry: metrics: { - connection_errors_total: components.sources.internal_metrics.output.metrics.connection_errors_total - invalid_record_total: components.sources.internal_metrics.output.metrics.invalid_record_total - invalid_record_bytes_total: components.sources.internal_metrics.output.metrics.invalid_record_bytes_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - } -} diff --git a/docs/reference/components/sources/stdin.cue b/docs/reference/components/sources/stdin.cue deleted file mode 100644 index 94abb125b1806..0000000000000 --- a/docs/reference/components/sources/stdin.cue +++ /dev/null @@ -1,114 +0,0 @@ -package metadata - -components: sources: stdin: { - title: "STDIN" - - classes: { - commonly_used: false - delivery: "at_least_once" - deployment_roles: ["sidecar"] - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - multiline: enabled: false - receive: { - from: { - service: services.stdin - interface: stdin: {} - } - - tls: enabled: false - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - host_key: { - category: "Context" - common: false - description: "The key name added to each event representing the current host. This can also be globally set via the [global `host_key` option][docs.reference.configuration.global-options#host_key]." - required: false - warnings: [] - type: string: { - default: "host" - syntax: "literal" - } - } - max_length: { - common: false - description: "The maximum bytes size of a message before rest of it will be discarded." - required: false - warnings: [] - type: uint: { - default: 102400 - unit: "bytes" - } - } - } - - output: logs: line: { - description: "An individual event from STDIN." - fields: { - host: fields._local_host - message: fields._raw_line - timestamp: fields._current_timestamp - } - } - - examples: [ - { - _line: """ - 2019-02-13T19:48:34+00:00 [info] Started GET "/" for 127.0.0.1 - """ - title: "STDIN line" - configuration: {} - input: """ - ```text - \( _line ) - ``` - """ - output: log: { - timestamp: _values.current_timestamp - message: _line - host: _values.local_host - } - }, - ] - - how_it_works: { - line_delimiters: { - title: "Line Delimiters" - body: """ - Each line is read until a new line delimiter, the `0xA` byte, is found. - """ - } - } - - telemetry: metrics: { - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - stdin_reads_failed_total: components.sources.internal_metrics.output.metrics.stdin_reads_failed_total - } -} diff --git a/docs/reference/components/sources/syslog.cue b/docs/reference/components/sources/syslog.cue deleted file mode 100644 index 573ea2bc59ba9..0000000000000 --- a/docs/reference/components/sources/syslog.cue +++ /dev/null @@ -1,210 +0,0 @@ -package metadata - -components: sources: syslog: { - _port: 514 - - title: "Syslog" - - classes: sources.socket.classes - - features: { - multiline: sources.socket.features.multiline - - receive: { - from: { - service: services.syslog - - interface: socket: { - api: { - title: "Syslog" - url: urls.syslog - } - direction: "incoming" - port: _port - protocols: ["tcp", "unix", "udp"] - ssl: "optional" - } - } - receive_buffer_bytes: { - enabled: true - relevant_when: "mode = `tcp` or mode = `udp` && os = `unix`" - } - keepalive: enabled: true - tls: sources.socket.features.receive.tls - } - } - - support: { - targets: sources.socket.support.targets - - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: sources.socket.configuration & { - "type": "type": string: enum: syslog: "The type of this component." - } - - output: logs: line: { - description: "An individual Syslog event" - fields: { - appname: { - description: "The appname extracted from the Syslog formatted line. If a appname is not found, then the key will not be added." - required: true - type: string: { - examples: ["app-name"] - syntax: "literal" - } - } - host: fields._local_host - hostname: { - description: "The hostname extracted from the Syslog line. (`host` is also this value if it exists in the log.)" - required: true - type: string: { - examples: ["my.host.com"] - syntax: "literal" - } - } - facility: { - description: "The facility extracted from the Syslog line. If a facility is not found, then the key will not be added." - required: true - type: string: { - examples: ["1"] - syntax: "literal" - } - } - message: { - description: "The message extracted from the Syslog line." - required: true - type: string: { - examples: ["Hello world"] - syntax: "literal" - } - } - msgid: { - description: "The msgid extracted from the Syslog line. If a msgid is not found, then the key will not be added." - required: true - type: string: { - examples: ["ID47"] - syntax: "literal" - } - } - procid: { - description: "The procid extracted from the Syslog line. If a procid is not found, then the key will not be added." - required: true - type: string: { - examples: ["8710"] - syntax: "literal" - } - } - severity: { - description: "The severity extracted from the Syslog line. If a severity is not found, then the key will not be added." - required: true - type: string: { - examples: ["notice"] - syntax: "literal" - } - } - source_ip: { - description: "The upstream hostname. In the case where `mode` = `\"unix\"` the socket path will be used. (`host` is also this value if `hostname` does not exist in the log.)" - required: true - type: string: { - examples: ["127.0.0.1"] - syntax: "literal" - } - } - timestamp: fields._current_timestamp - version: { - description: "The version extracted from the Syslog line. If a version is not found, then the key will not be added." - required: true - type: uint: { - examples: [1] - unit: null - } - } - "*": { - description: "In addition to the defined fields, any Syslog 5424 structured fields are parsed and inserted as root level fields." - required: true - type: string: { - examples: ["hello world"] - syntax: "literal" - } - } - } - } - - examples: [ - { - _app_name: "non" - _event_id: "1011" - _event_source: "Application" - _hostname: "dynamicwireless.name" - _iut: "3" - _message: "Try to override the THX port, maybe it will reboot the neural interface!" - _msgid: "ID931" - _procid: "2426" - _timestamp: "2020-03-13T20:45:38.119Z" - title: "Syslog Eve" - configuration: {} - input: """ - ```text - <13>1 \(_timestamp) \(_hostname) \(_app_name) \(_procid) \(_msgid) [exampleSDID@32473 iut="\(_iut)" eventSource="\(_event_source)" eventID="\(_event_id)"] \(_message) - ``` - """ - output: log: { - severity: "notice" - facility: "user" - timestamp: _timestamp - host: _values.local_host - source_ip: _values.remote_host - hostname: _hostname - appname: _app_name - procid: _procid - msgid: _msgid - iut: _iut - eventSource: _event_source - eventID: _event_id - message: _message - } - }, - ] - - how_it_works: { - line_delimiters: { - title: "Line Delimiters" - body: """ - Each line is read until a new line delimiter, the `0xA` byte, is found. - """ - } - - parsing: { - title: "Parsing" - body: """ - Vector makes a _best effort_ to parse the various Syslog formats out in the - wild. This includes [RFC 6587][urls.syslog_6587], [RFC 5424][urls.syslog_5424], - [RFC 3164][urls.syslog_3164], and other common variations (such as the Nginx - Syslog style). It's unfortunate that the Syslog specification is not more - accurately followed, but we hope Vector insulates you from these deviations. - - If parsing fails, Vector will include the entire Syslog line in the `message` - key. If you find this happening often, we recommend using the - [`socket` source][docs.sources.socket] combined with the - [`regex_parser` transform][docs.transforms.regex_parser] to implement your own - ingestion and parsing scheme. Or, [open an issue](\(urls.new_feature_request)) - requesting support for your specific format. - """ - } - } - - telemetry: metrics: { - connection_read_errors_total: components.sources.internal_metrics.output.metrics.connection_read_errors_total - processed_bytes_total: components.sources.internal_metrics.output.metrics.processed_bytes_total - processed_events_total: components.sources.internal_metrics.output.metrics.processed_events_total - utf8_convert_errors_total: components.sources.internal_metrics.output.metrics.utf8_convert_errors_total - } -} diff --git a/docs/reference/components/sources/vector.cue b/docs/reference/components/sources/vector.cue deleted file mode 100644 index f389a9e9d7445..0000000000000 --- a/docs/reference/components/sources/vector.cue +++ /dev/null @@ -1,136 +0,0 @@ -package metadata - -components: sources: vector: { - _port: 9000 - - title: "Vector" - - description: """ - Receives data from another upstream Vector instance using the Vector sink. - """ - - classes: { - commonly_used: false - delivery: "best_effort" - deployment_roles: ["aggregator"] - development: "beta" - egress_method: "stream" - stateful: false - } - - features: { - multiline: enabled: false - receive: { - from: { - service: services.vector - - interface: socket: { - direction: "incoming" - port: _port - protocols: ["tcp"] - ssl: "optional" - } - } - receive_buffer_bytes: enabled: true - keepalive: enabled: true - tls: { - enabled: true - can_enable: true - can_verify_certificate: true - enabled_default: false - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - installation: { - platform_name: null - } - - configuration: { - address: { - description: "The TCP address to listen for connections on, or `systemd#N to use the Nth socket passed by systemd socket activation. If an address is used it _must_ include a port." - required: true - warnings: [] - type: string: { - examples: ["0.0.0.0:\(_port)", "systemd", "systemd#1"] - syntax: "literal" - } - } - shutdown_timeout_secs: { - common: false - description: "The timeout before a connection is forcefully closed during shutdown." - required: false - warnings: [] - type: uint: { - default: 30 - unit: "seconds" - } - } - } - - output: { - logs: event: { - description: "A Vector event" - fields: { - "*": { - description: "Vector transparently forwards data from another upstream Vector instance. The `vector` source will not modify or add fields." - required: true - type: "*": {} - } - } - } - metrics: { - counter: output._passthrough_counter - distribution: output._passthrough_distribution - gauge: output._passthrough_gauge - histogram: output._passthrough_histogram - set: output._passthrough_set - } - } - - how_it_works: { - encoding: { - title: "Encoding" - body: """ - Data is encoded via Vector's [event protobuf](\(urls.event_proto)) - before it is sent over the wire. - """ - } - communication_protocol: { - title: "Communication Protocol" - body: """ - Upstream Vector instances forward data to downstream Vector - instances via the TCP protocol. - """ - } - message_acknowledgement: { - title: "Message Acknowledgement" - body: """ - Currently, Vector does not perform any application level message - acknowledgement. While rare, this means the individual message - could be lost. - """ - } - - } - - telemetry: metrics: { - protobuf_decode_errors_total: components.sources.internal_metrics.output.metrics.protobuf_decode_errors_total - } -} diff --git a/docs/reference/components/splunk.cue b/docs/reference/components/splunk.cue deleted file mode 100644 index 83c5bb6bc0f15..0000000000000 --- a/docs/reference/components/splunk.cue +++ /dev/null @@ -1,27 +0,0 @@ -package metadata - -components: _splunk: { - telemetry: metrics: { - encode_errors_total: { - description: """ - The total number of errors encoding [Splunk HEC](\(urls.splunk_hec_protocol)) events - to JSON for this `splunk_hec` sink. - """ - type: "counter" - default_namespace: "vector" - tags: telemetry.metrics._component_tags - } - source_missing_keys_total: { - description: "The total number of errors rendering the template for this source." - type: "counter" - default_namespace: "vector" - tags: telemetry.metrics._component_tags - } - sourcetype_missing_keys_total: { - description: "The total number of errors rendering the template for this sourcetype." - type: "counter" - default_namespace: "vector" - tags: telemetry.metrics._component_tags - } - } -} diff --git a/docs/reference/components/transforms.cue b/docs/reference/components/transforms.cue deleted file mode 100644 index 72ef8519591e0..0000000000000 --- a/docs/reference/components/transforms.cue +++ /dev/null @@ -1,12 +0,0 @@ -package metadata - -components: transforms: [Name=string]: { - _remap_deprecation_notice: """ - This transform has been deprecated in favor of the [`remap`](\(urls.vector_remap_transform)) - transform, which enables you to use [Vector Remap Language](\(urls.vrl_reference)) (VRL for short) to - create transform logic of any degree of complexity. The examples below show how you can use VRL to - replace this transform's functionality. - """ - - kind: "transform" -} diff --git a/docs/reference/components/transforms/add_fields.cue b/docs/reference/components/transforms/add_fields.cue deleted file mode 100644 index b21b5d3972f7e..0000000000000 --- a/docs/reference/components/transforms/add_fields.cue +++ /dev/null @@ -1,142 +0,0 @@ -package metadata - -components: transforms: add_fields: { - title: "Add Fields" - description: "Adds fields to log events." - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - shape: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(add_fields._remap_deprecation_notice) - - ```vrl - .severity = "crit" - .status = 200 - .success_codes = [200, 201, 202, 204] - .timestamp = now() - ``` - """, - ] - notices: [] - } - - configuration: { - fields: { - description: "A table of key/value pairs representing the keys to be added to the event." - required: true - warnings: [] - type: object: { - examples: [ - { - string_field: "string value" - env_var_field: "${ENV_VAR}" - templated_field: "{{ my_other_field }}" - int_field: 1 - float_field: 1.2 - bool_field: true - timestamp_field: "1979-05-27T00:32:00-0700" - parent: child_field: "child_value" - list_field: ["first", "second", "third"] - }, - ] - options: { - "*": { - description: "The name of the field to add. Accepts all supported configuration types. Use `.` for adding nested fields." - required: true - warnings: [] - type: "*": {} - } - } - } - } - overwrite: { - common: true - description: "By default, fields will be overridden. Set this to `false` to avoid overwriting values." - required: false - warnings: [] - type: bool: default: true - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - conflicts: { - title: "Conflicts" - body: "" - sub_sections: [ - { - title: "Key Conflicts" - body: """ - Keys specified in this transform will replace existing keys. - """ - }, - { - title: "Nested Key Conflicts" - body: """ - Nested keys are added in a _deep_ fashion. They will not replace any ancestor - objects. For example, given the following `log` event: - - ```javascript - { - "parent": { - "child1": "value1" - } - } - ``` - - And the following configuration: - - ```toml - [transforms.add_nested_field] - type = "add_fields" - fields.parent.child2 = "value2" - ``` - - Will result in the following event: - - ```javascript - { - "parent": { - "child1": "value1", - "child2": "value2" - } - } - ``` - - Notice that `parent.child1` field was preserved. - """ - }, - ] - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/add_tags.cue b/docs/reference/components/transforms/add_tags.cue deleted file mode 100644 index 396987dce7477..0000000000000 --- a/docs/reference/components/transforms/add_tags.cue +++ /dev/null @@ -1,78 +0,0 @@ -package metadata - -components: transforms: add_tags: { - title: "Add Tags" - description: "Adds tags to metric events." - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - shape: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(add_tags._remap_deprecation_notice) - - ```vrl - #".tag = "value""# - ``` - """, - ] - notices: [] - } - - configuration: { - overwrite: { - common: true - description: "By default, fields will be overridden. Set this to `false` to avoid overwriting values." - required: false - warnings: [] - type: bool: default: true - } - tags: { - common: true - description: "A table of key/value pairs representing the tags to be added to the metric." - required: false - warnings: [] - type: object: { - examples: [ - { - "static_tag": "my value" - "env_tag": "${ENV_VAR}" - }, - ] - options: {} - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } -} diff --git a/docs/reference/components/transforms/ansi_stripper.cue b/docs/reference/components/transforms/ansi_stripper.cue deleted file mode 100644 index 1f3a84f5a4f2b..0000000000000 --- a/docs/reference/components/transforms/ansi_stripper.cue +++ /dev/null @@ -1,67 +0,0 @@ -package metadata - -components: transforms: ansi_stripper: { - title: "ANSI Stripper" - - description: """ - Strips [ANSI escape sequences](\(urls.ansi_escape_codes)). - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - sanitize: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(ansi_stripper._remap_deprecation_notice) - - ```vrl - .message = strip_ansi_escape_codes(.message) - ``` - """, - ] - notices: [] - } - - configuration: { - field: { - common: true - description: "The target field to strip ANSI escape sequences from." - required: false - warnings: [] - type: string: { - default: "message" - examples: ["message", "parent.child", "array[0]"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/aws_cloudwatch_logs_subscription_parser.cue b/docs/reference/components/transforms/aws_cloudwatch_logs_subscription_parser.cue deleted file mode 100644 index 18416e801eeac..0000000000000 --- a/docs/reference/components/transforms/aws_cloudwatch_logs_subscription_parser.cue +++ /dev/null @@ -1,184 +0,0 @@ -package metadata - -components: transforms: aws_cloudwatch_logs_subscription_parser: { - title: "AWS CloudWatch Logs Subscription Parser" - - description: """ - Parses AWS CloudWatch Logs events (configured through AWS Cloudwatch - subscriptions) coming from the `aws_kinesis_firehose` source. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "batch" - stateful: false - } - - features: { - parse: { - format: { - name: "AWS CloudWatch Logs subscription events" - url: urls.aws_cloudwatch_logs_subscriptions - versions: null - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(aws_cloudwatch_logs_subscription_parser._remap_deprecation_notice) - - ```vrl - .message = parse_aws_cloudwatch_log_subscription_message(.message) - ``` - """, - ] - notices: [] - } - - configuration: { - field: { - common: true - description: "The log field to decode as an AWS CloudWatch Logs Subscription JSON event. The field must hold a string value." - required: false - warnings: [] - type: string: { - default: "message" - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - output: logs: line: { - description: "One event will be published per log event in the subscription message." - fields: { - timestamp: { - description: "The timestamp of the log event." - required: true - type: timestamp: {} - } - message: { - description: "The body of the log event." - required: true - type: string: { - examples: ["hello", "{\"key\": \"value\"}"] - syntax: "literal" - } - } - id: { - description: "The CloudWatch Logs event id." - required: true - type: string: { - examples: ["35683658089614582423604394983260738922885519999578275840"] - syntax: "literal" - } - } - log_group: { - description: "The log group the event came from." - required: true - type: string: { - examples: ["/lambda/test"] - syntax: "literal" - } - } - log_stream: { - description: "The log stream the event came from." - required: true - type: string: { - examples: ["2020/03/24/[$LATEST]794dbaf40a7846c4984ad80ebf110544"] - syntax: "literal" - } - } - owner: { - description: "The ID of the AWS account the logs came from." - required: true - type: string: { - examples: ["111111111111"] - syntax: "literal" - } - } - subscription_filters: { - description: "The list of subscription filter names that the logs were sent by." - required: true - type: array: items: type: string: { - examples: ["Destination"] - syntax: "literal" - } - } - } - } - - examples: [ - { - title: "Default" - configuration: { - field: "message" - } - input: log: { - message: """ - { - "messageType": "DATA_MESSAGE", - "owner": "111111111111", - "logGroup": "test", - "logStream": "test", - "subscriptionFilters": [ - "Destination" - ], - "logEvents": [ - { - "id": "35683658089614582423604394983260738922885519999578275840", - "timestamp": 1600110569039, - "message": "{\"bytes\":26780,\"datetime\":\"14/Sep/2020:11:45:41 -0400\",\"host\":\"157.130.216.193\",\"method\":\"PUT\",\"protocol\":\"HTTP/1.0\",\"referer\":\"https://www.principalcross-platform.io/markets/ubiquitous\",\"request\":\"/expedite/convergence\",\"source_type\":\"stdin\",\"status\":301,\"user-identifier\":\"-\"}" - }, - { - "id": "35683658089659183914001456229543810359430816722590236673", - "timestamp": 1600110569041, - "message": "{\"bytes\":17707,\"datetime\":\"14/Sep/2020:11:45:41 -0400\",\"host\":\"109.81.244.252\",\"method\":\"GET\",\"protocol\":\"HTTP/2.0\",\"referer\":\"http://www.investormission-critical.io/24/7/vortals\",\"request\":\"/scale/functionalities/optimize\",\"source_type\":\"stdin\",\"status\":502,\"user-identifier\":\"feeney1708\"}" - } - ] - } - """ - } - output: { - log: { - id: "35683658089614582423604394983260738922885519999578275840" - log_group: "test" - log_stream: "test" - message: "{\"bytes\":26780,\"datetime\":\"14/Sep/2020:11:45:41 -0400\",\"host\":\"157.130.216.193\",\"method\":\"PUT\",\"protocol\":\"HTTP/1.0\",\"referer\":\"https://www.principalcross-latform.io/markets/ubiquitous\",\"request\":\"/expedite/convergence\",\"source_type\":\"stdin\",\"status\":301,\"user-identifier\":\"-\"}" - owner: "111111111111" - timestamp: "2020-09-14T19:09:29.039Z" - subscription_filters: [ "Destination"] - } - } - }, - ] - - how_it_works: { - structured_events: { - title: "Structured Log Events" - body: "Note that the events themselves are not parsed. If they are structured data, you will typically want to pass them through a [parsing transform](\(urls.vector_parsing_transforms))." - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/aws_ec2_metadata.cue b/docs/reference/components/transforms/aws_ec2_metadata.cue deleted file mode 100644 index ab1e4dad29b9a..0000000000000 --- a/docs/reference/components/transforms/aws_ec2_metadata.cue +++ /dev/null @@ -1,200 +0,0 @@ -package metadata - -components: transforms: aws_ec2_metadata: { - title: "AWS EC2 Metadata" - - description: """ - Enriches log events with AWS EC2 environment metadata. - """ - - classes: { - commonly_used: false - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - enrich: { - from: service: { - name: "AWS EC2 instance metadata" - url: urls.aws_ec2_instance_metadata - versions: ">= 2" - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [ - """ - Running this transform within Docker on EC2 requires 2 network hops. Users must raise this limit: - - ```bash - aws ec2 modify-instance-metadata-options --instance-id --http-endpoint enabled --http-put-response-hop-limit 2 - ``` - """, - ] - warnings: [] - notices: [] - } - - configuration: { - endpoint: { - common: false - description: "Override the default EC2 Metadata endpoint." - required: false - type: string: { - default: "http://169.254.169.254" - syntax: "literal" - } - } - fields: { - common: true - description: "A list of fields to include in each event." - required: false - warnings: [] - type: array: { - default: ["instance-id", "local-hostname", "local-ipv4", "public-hostname", "public-ipv4", "ami-id", "availability-zone", "vpc-id", "subnet-id", "region"] - items: type: string: { - examples: ["instance-id", "local-hostname"] - syntax: "literal" - } - } - } - namespace: { - common: true - description: "Prepend a namespace to each field's key." - required: false - warnings: [] - type: string: { - default: "" - examples: ["", "ec2", "aws.ec2"] - syntax: "literal" - } - } - refresh_interval_secs: { - common: true - description: "The interval in seconds at which the EC2 Metadata api will be called." - required: false - warnings: [] - type: uint: { - default: 10 - unit: null - } - } - } - - input: { - logs: true - metrics: null - } - - output: logs: log: { - description: "Log event enriched with EC2 metadata" - fields: { - "ami-id": { - description: "The `ami-id` that the current EC2 instance is using." - required: true - type: string: { - examples: ["ami-00068cd7555f543d5"] - syntax: "literal" - } - } - "availability-zone": { - description: "The `availability-zone` that the current EC2 instance is running in." - required: true - type: string: { - examples: ["54.234.246.107"] - syntax: "literal" - } - } - "instance-id": { - description: "The `instance-id` of the current EC2 instance." - required: true - type: string: { - examples: ["i-096fba6d03d36d262"] - syntax: "literal" - } - } - "local-hostname": { - description: "The `local-hostname` of the current EC2 instance." - required: true - type: string: { - examples: ["ip-172-31-93-227.ec2.internal"] - syntax: "literal" - } - } - "local-ipv4": { - description: "The `local-ipv4` of the current EC2 instance." - required: true - type: string: { - examples: ["172.31.93.227"] - syntax: "literal" - } - } - "public-hostname": { - description: "The `public-hostname` of the current EC2 instance." - required: true - type: string: { - examples: ["ec2-54-234-246-107.compute-1.amazonaws.com"] - syntax: "literal" - } - } - "public-ipv4": { - description: "The `public-ipv4` of the current EC2 instance." - required: true - type: string: { - examples: ["54.234.246.107"] - syntax: "literal" - } - } - "region": { - description: "The `region` that the current EC2 instance is running in." - required: true - type: string: { - examples: ["us-east-1"] - syntax: "literal" - } - } - "role-name": { - description: "The `role-name` that the current EC2 instance is using." - required: true - type: string: { - examples: ["some_iam_role"] - syntax: "literal" - } - } - "subnet-id": { - description: "The `subnet-id` of the current EC2 instance's default network interface." - required: true - type: string: { - examples: ["subnet-9d6713b9"] - syntax: "literal" - } - } - "vpc-id": { - description: "The `vpc-id` of the current EC2 instance's default network interface." - required: true - type: string: { - examples: ["vpc-a51da4dc"] - syntax: "literal" - } - } - } - } - - telemetry: metrics: { - metadata_refresh_failed_total: components.sources.internal_metrics.output.metrics.metadata_refresh_failed_total - metadata_refresh_successful_total: components.sources.internal_metrics.output.metrics.metadata_refresh_successful_total - } -} diff --git a/docs/reference/components/transforms/coercer.cue b/docs/reference/components/transforms/coercer.cue deleted file mode 100644 index 0e5924626786d..0000000000000 --- a/docs/reference/components/transforms/coercer.cue +++ /dev/null @@ -1,100 +0,0 @@ -package metadata - -components: transforms: coercer: { - title: "Coercer" - - description: """ - Coerces log fields into typed values. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - shape: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(coercer._remap_deprecation_notice) - - ```vrl - .bool = to_bool("false") - .float = to_float("1.0") - .int = to_int("1") - .string = to_string(1) - .timestamp = to_timestamp("2021-01-15T12:33:22.213221Z") - ``` - """, - ] - notices: [] - } - - input: { - logs: true - metrics: null - } - - configuration: { - drop_unspecified: { - common: false - description: "Set to `true` to drop all fields that are not specified in the `types` table. Make sure both `message` and `timestamp` are specified in the `types` table as their absense will cause the original message data to be dropped along with other extraneous fields." - required: false - warnings: [] - type: bool: default: false - } - types: configuration._types - } - - examples: [ - { - title: "Date" - configuration: { - types: { - bytes_in: "int" - bytes_out: "int" - status: "int" - timestamp: "timestamp|%d/%m/%Y:%H:%M:%S %z" - } - } - input: log: { - bytes_in: "5667" - bytes_out: "20574" - host: "5.86.210.12" - message: "GET /embrace/supply-chains/dynamic/vertical" - status: "201" - timestamp: "19/06/2019:17:20:49 -0400" - user_id: "zieme4647" - } - output: log: { - bytes_in: 5667 - bytes_out: 20574 - host: "5.86.210.12" - message: "GET /embrace/supply-chains/dynamic/vertical" - status: 201 - timestamp: "19/06/2019:17:20:49 -0400" - user_id: "zieme4647" - } - }, - ] - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/concat.cue b/docs/reference/components/transforms/concat.cue deleted file mode 100644 index d4a33b1362cae..0000000000000 --- a/docs/reference/components/transforms/concat.cue +++ /dev/null @@ -1,109 +0,0 @@ -package metadata - -components: transforms: concat: { - title: "Concat" - - description: """ - Slices log string fields and joins them into a single field. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - shape: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(concat._remap_deprecation_notice) - - ```vrl - .message = "The severity level is " + .level - ``` - """, - ] - notices: [] - } - - configuration: { - items: { - description: "A list of substring definitons in the format of source_field[start..end]. For both start and end negative values are counted from the end of the string." - required: true - warnings: [] - type: array: items: type: string: { - examples: ["first[..3]", "second[-5..]", "third[3..6]"] - syntax: "literal" - } - } - joiner: { - common: false - description: "The string that is used to join all items." - required: false - warnings: [] - type: string: { - default: " " - examples: [" ", ",", "_", "+"] - syntax: "literal" - } - } - target: { - description: "The name for the new label." - required: true - warnings: [] - type: string: { - examples: ["root_field_name", "parent.child", "array[0]"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - examples: [ - { - title: "Date" - configuration: { - items: ["month", "day", "year"] - target: "date" - joiner: "/" - } - input: log: { - message: "Hello world" - month: "12" - day: "25" - year: "2020" - } - output: log: { - message: "Hello world" - date: "12/25/2020" - month: "12" - day: "25" - year: "2020" - } - }, - ] - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/dedupe.cue b/docs/reference/components/transforms/dedupe.cue deleted file mode 100644 index 802ac9548a790..0000000000000 --- a/docs/reference/components/transforms/dedupe.cue +++ /dev/null @@ -1,165 +0,0 @@ -package metadata - -components: transforms: dedupe: { - title: "Dedupe events" - - description: """ - Deduplicates events to reduce data volume by eliminating copies of data. - """ - - classes: { - commonly_used: false - development: "stable" - egress_method: "stream" - stateful: true - } - - features: { - filter: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - cache: { - common: false - description: "Options controlling how we cache recent Events for future duplicate checking." - required: false - warnings: [] - type: object: { - options: { - num_events: { - common: true - description: "The number of recent Events to cache and compare new incoming Events against." - required: false - warnings: [] - type: uint: { - default: 5000 - unit: null - } - } - } - } - } - fields: { - description: "Options controlling what fields to match against." - required: true - warnings: [] - type: object: { - options: { - ignore: { - common: false - description: "The field names to ignore when deciding if an Event is a duplicate. Incompatible with the `fields.match` option." - required: false - warnings: [] - type: array: { - default: null - items: type: string: { - examples: ["field1", "parent.child_field"] - syntax: "literal" - } - } - } - match: { - common: true - description: "The field names considered when deciding if an Event is a duplicate. This can also be globally set via the [global `log_schema` options][docs.reference.configuration.global-options#log_schema]. Incompatible with the `fields.ignore` option." - required: false - warnings: [] - type: array: { - default: ["timestamp", "host", "message"] - items: type: string: { - examples: ["field1", "parent.child_field", "host", "message"] - syntax: "literal" - } - } - } - } - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - cache_bahavior: { - title: "Cache Behavior" - body: """ - This transform is backed by an LRU cache of size `cache.num_events`. - That means that this transform will cache information in memory for - the last `cache.num_events` Events that it has processed. Entries - will be removed from the cache in the order they were inserted. If - an Event is received that is considered a duplicate of an Event - already in the cache that will put that event back to the head of - the cache and reset its place in line, making it once again last - entry in line to be evicted. - """ - } - - memory_usage_details: { - title: "Memory Usage Details" - body: """ - Each entry in the cache corresponds to an incoming Event and - contains a copy of the 'value' data for all fields in the Event - being considered for matching. When using `fields.match` this will - be the list of fields specified in that configuration option. When - using `fields.ignore` that will include all fields present in the - incoming event except those specified in `fields.ignore`. Each entry - also uses a single byte per field to store the type information of - that field. When using `fields.ignore` each cache entry additionally - stores a copy of each field name being considered for matching. When - using `fields.match` storing the field names is not necessary. - """ - } - - memory_utilization_estimation: { - title: "Memory Utilization Estimation" - body: """ - If you want to estimate the memory requirements of this transform - for your dataset, you can do so with these formulas: - - When using `fields.match`: - - ```text - Sum(the average size of the *data* (but not including the field name) for each field in `fields.match`) * `cache.num_events` - ``` - - When using `fields.ignore`: - - ```text - (Sum(the average size of each incoming Event) - (the average size of the field name *and* value for each field in `fields.ignore`)) * `cache.num_events` - ``` - """ - } - - missing_fields: { - title: "Missing Fields" - body: """ - Fields with explicit null values will always be considered different - than if that field was omitted entirely. For example, if you run - this transform with `fields.match = ["a"]`, the event "{a: null, - b:5}" will be considered different to the event "{b:5}". - """ - } - } - - telemetry: metrics: { - events_discarded_total: components.sources.internal_metrics.output.metrics.events_discarded_total - } -} diff --git a/docs/reference/components/transforms/filter.cue b/docs/reference/components/transforms/filter.cue deleted file mode 100644 index eac3602b3d389..0000000000000 --- a/docs/reference/components/transforms/filter.cue +++ /dev/null @@ -1,100 +0,0 @@ -package metadata - -components: transforms: filter: { - title: "Filter" - - description: """ - Filters events based on a set of conditions. - """ - - classes: { - commonly_used: true - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - filter: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - condition: { - description: """ - The condition to be matched against every input event. Only messages that pass the condition will - be forwarded. - """ - required: true - warnings: [] - type: string: { - examples: [ - #".status_code != 200 && !includes(["info", "debug"], .severity)"#, - ] - syntax: "remap_boolean_expression" - } - } - } - - input: { - logs: true - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } - - examples: [ - { - title: "Drop debug logs" - configuration: { - condition: '.level == "debug"' - } - input: [ - { - log: { - level: "debug" - message: "I'm a noisy debug log" - } - }, - { - log: { - level: "info" - message: "I'm a normal info log" - } - }, - ] - output: [ - { - log: { - level: "info" - message: "I'm a normal info log" - } - }, - ] - }, - ] - - telemetry: metrics: { - events_discarded_total: components.sources.internal_metrics.output.metrics.events_discarded_total - } -} diff --git a/docs/reference/components/transforms/geoip.cue b/docs/reference/components/transforms/geoip.cue deleted file mode 100644 index d7c783389ad1e..0000000000000 --- a/docs/reference/components/transforms/geoip.cue +++ /dev/null @@ -1,283 +0,0 @@ -package metadata - -components: transforms: geoip: { - title: "GeoIP" - - description: """ - Enrich events with geolocation data from the MaxMind GeoIP2-City, - GeoLite2-City, GeoIP2-ISP and GeoLite2-ASN databases. - """ - - classes: { - commonly_used: false - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - enrich: { - from: service: { - name: "MaxMind GeoIP2 and GeoLite2 city databases" - url: urls.maxmind_geoip2_isp - versions: ">= 2" - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - database: { - description: """ - Path to the [MaxMind GeoIP2](\(urls.maxmind_geoip2)) or [GeoLite2 binary city - database](\(urls.maxmind_geolite2_city)) file (`GeoLite2-City.mmdb`). Other - databases, such as the the country database, are not supported. - """ - required: true - type: string: { - examples: ["/path/to/GeoLite2-City.mmdb", "/path/to/GeoLite2-ISP.mmdb"] - syntax: "literal" - } - } - source: { - description: "The field name that contains the IP address. This field should contain a valid IPv4 or IPv6 address." - required: true - type: string: { - examples: ["ip_address", "x-forwarded-for", "parent.child", "array[0]"] - syntax: "literal" - } - } - target: { - common: true - description: "The default field to insert the resulting GeoIP data into. See [output](#output) for more info." - required: false - type: string: { - default: "geoip" - examples: ["geoip", "parent.child"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - supported_databases: { - title: "Supported MaxMind databases" - body: """ - The `geoip` transform currently supports the following [MaxMind](\(urls.maxmind)) - databases: - - * [GeoLite2-ASN.mmdb](\(urls.maxmind_geolite2_asn)) (free) — Determine the - autonomous system number and organization associated with an IP address. - * [GeoLite2-City.mmdb](\(urls.maxmind_geolite2_city)) (free) — Determine the - country, subdivisions, city, and postal code associated with IPv4 and IPv6 - addresses worldwide. - * [GeoIP2-City.mmdb](\(urls.maxmind_geoip2_city)) (paid) — Determine the country, - subdivisions, city, and postal code associated with IPv4 and IPv6 - addresses worldwide. - * [GeoIP2-ISP.mmdb](\(urls.maxmind_geoip2_isp)) (paid) — Determine the Internet - Service Provider (ISP), organization name, and autonomous system organization - and number associated with an IP address. - - The database files should be in the [MaxMind DB file - format](\(urls.maxmind_db_file_format)). - """ - } - } - - output: logs: line: { - _city_db_blurb: """ - Available with the [GeoIP2-City](\(urls.maxmind_geoip2_city)) or - [GeoLite2-City](\(urls.maxmind_geolite2_city)) database. - """ - - description: "Geo-enriched log event" - fields: { - geoip: { - description: """ - The root field containing all geolocation data as subfields. Depending on the - database used, either the city or the ISP field is populated. - """ - required: true - type: object: { - examples: [] - options: { - autonomous_system_number: { - description: """ - The Autonomous System (AS) number associated with the IP address. - Zero if unknown. Available with the - [GeoIP2-ISP](\(urls.maxmind_geoip2_isp)) or - [GeoLite2-ASN](\(urls.maxmind_geolite2_asn)) database. - """ - required: false - common: false - type: uint: { - unit: null - default: null - examples: [701, 721] - } - groups: ["ASN", "ISP"] - } - autonomous_system_organization: { - description: """ - The organization associated with the registered autonomous system number - for the IP address. Available with the - [GeoIP2-ISP](\(urls.maxmind_geoip2_isp)) or - [GeoLite2-ASN](\(urls.maxmind_geolite2_asn)) database. - """ - required: false - common: false - type: string: { - default: null - examples: [ - "MCI Communications Services, Inc. d/b/a Verizon Business", - "DoD Network Information Center", - ] - syntax: "literal" - } - groups: ["ASN", "ISP"] - } - city_name: { - description: """ - The city name associated with the IP address. \(_city_db_blurb). - """ - required: true - type: string: { - examples: ["New York", "Brooklyn", "Chicago"] - syntax: "literal" - } - groups: ["City"] - } - continent_code: { - description: """ - The continent code associated with the IP address. - \(_city_db_blurb). - """ - required: true - type: string: { - enum: { - AF: "Africa" - AN: "Antarctica" - AS: "Asia" - EU: "Europe" - NA: "North America" - OC: "Oceania" - SA: "South America" - } - syntax: "literal" - } - groups: ["City"] - } - country_code: { - description: """ - The [ISO 3166-2 country codes](\(urls.iso3166_2)) associated with - the IP address. \(_city_db_blurb). - """ - required: true - type: string: { - examples: ["US", "US-PR", "FR", "FR-BL", "GB", "A1", "A2"] - syntax: "literal" - } - groups: ["City"] - } - isp: { - description: """ - The name of the Internet Service Provider (ISP) associated with the - IP address. Available with the - [GeoIP2-ISP](\(urls.maxmind_geoip2_isp)) database. - """ - required: false - common: false - type: string: { - default: null - examples: ["Verizon Business"] - syntax: "literal" - } - groups: ["ISP"] - } - latitude: { - description: "The latitude associated with the IP address. \(_city_db_blurb)." - required: true - type: string: { - examples: ["51.75"] - syntax: "literal" - } - groups: ["City"] - } - longitude: { - description: "The longitude associated with the IP address. \(_city_db_blurb)." - required: true - type: string: { - examples: ["-1.25"] - syntax: "literal" - } - groups: ["City"] - } - organization: { - description: """ - The name of the organization associated with the IP address. - Available with the [GeoIP2-ISP](\(urls.maxmind_geoip2_isp)) - database. - """ - required: false - common: false - type: string: { - default: null - examples: ["Verizon Business"] - syntax: "literal" - } - groups: ["ISP"] - } - postal_code: { - description: """ - The postal code associated with the IP address. \(_city_db_blurb). - """ - required: true - type: string: { - examples: ["07094", "10010", "OX1"] - syntax: "literal" - } - groups: ["City"] - } - timezone: { - description: """ - The timezone associated with the IP address in [IANA time zone - format](\(urls.iana_time_zone_format)). A full list of time zones - can be found [here](\(urls.iana_time_zones)) \(_city_db_blurb). - """ - required: true - type: string: { - examples: ["America/New_York", "Asia/Atyrau", "Europe/London"] - syntax: "literal" - } - groups: ["City"] - } - } - } - } - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/grok_parser.cue b/docs/reference/components/transforms/grok_parser.cue deleted file mode 100644 index df7fe0b13c858..0000000000000 --- a/docs/reference/components/transforms/grok_parser.cue +++ /dev/null @@ -1,111 +0,0 @@ -package metadata - -components: transforms: grok_parser: { - title: "Grok Parser" - - description: """ - Parses a log field value with [Grok](\(urls.grok)). - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - parse: { - format: { - name: "Grok" - url: urls.grok - versions: null - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(grok_parser._remap_deprecation_notice) - - ```vrl - .message = parse_grok(.message, "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:message}") - ``` - """, - ] - notices: [ - """ - Vector uses the Rust [`grok` library](\(urls.rust_grok_library)). All patterns - [listed here](\(urls.grok_patterns)) are supported. It is recommended to use - maintained patterns when possible since they will be improved over time by - the community. - """, - ] - } - - configuration: { - drop_field: { - common: true - description: "If `true` will drop the specified `field` after parsing." - required: false - warnings: [] - type: bool: default: true - } - field: { - common: true - description: "The log field to execute the `pattern` against. Must be a `string` value." - required: false - warnings: [] - type: string: { - default: "message" - examples: ["message", "parent.child", "array[0]"] - syntax: "literal" - } - } - pattern: { - description: "The [Grok pattern](\(urls.grok_patterns))" - required: true - warnings: [] - type: string: { - examples: ["%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:message}"] - syntax: "literal" - } - } - types: configuration._types - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - available_patterns: { - title: "Available Patterns" - body: support.notices[0] - } - - testing: { - title: "Testing" - body: """ - We recommend the [Grok debugger](\(urls.grok_debugger)) for Grok testing. - """ - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/json_parser.cue b/docs/reference/components/transforms/json_parser.cue deleted file mode 100644 index 08b521b7f6d16..0000000000000 --- a/docs/reference/components/transforms/json_parser.cue +++ /dev/null @@ -1,159 +0,0 @@ -package metadata - -components: transforms: json_parser: { - title: "JSON Parser" - - description: """ - Parses a log field value as [JSON](\(urls.json)). - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - parse: { - format: { - name: "JSON" - url: urls.json - versions: null - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(json_parser._remap_deprecation_notice) - - ```vrl - .message = parse_json(.message) - ``` - """, - ] - notices: [] - } - - configuration: { - drop_field: { - common: true - description: "If the specified `field` should be dropped (removed) after parsing. If parsing fails, the field will not be removed, irrespective of this setting." - required: false - warnings: [] - type: bool: default: true - } - drop_invalid: { - description: "If `true` events with invalid JSON will be dropped, otherwise the event will be kept and passed through." - required: true - warnings: [] - type: bool: {} - } - field: { - common: true - description: "The log field to decode as JSON. Must be a `string` value type." - required: false - warnings: [] - type: string: { - default: "message" - examples: ["message", "parent.child", "array[0]"] - syntax: "literal" - } - } - overwrite_target: { - common: false - description: "If `target_field` is set and the log contains a field of the same name as the target, it will only be overwritten if this is set to `true`." - required: false - warnings: [] - type: bool: default: false - } - target_field: { - common: false - description: "If this setting is present, the parsed JSON will be inserted into the log as a sub-object with this name. If a field with the same name already exists, the parser will fail and produce an error." - required: false - warnings: [] - type: string: { - default: null - examples: ["root_field", "parent.child"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - invalid_json: { - title: "Invalid JSON" - body: """ - If the value for the specified `field` is not valid JSON you can control keeping - or discarding the event with the `drop_invalid` option. Setting it to `true` will - discard the event and drop it entirely. Setting it to `false` will keep the - event and pass it through. Note that passing through the event could cause - problems and violate assumptions about the structure of your event. - """ - } - - merge_conflicts: { - title: "Merge Conflicts" - body: "" - sub_sections: [ - { - title: "Key Conflicts" - body: """ - Any key present in the decoded JSON will override existing keys in the event. - """ - }, - { - title: "Object Conflicts" - body: """ - If the decoded JSON includes nested fields it will be _deep_ merged into the - event. For example, given the following event: - - ```javascript - { - "message": "{\"parent\": {\"child2\": \"value2\"}}", - "parent": { - "child1": "value1" - } - } - ``` - - Parsing the `"message"` field would result the following structure: - - ```javascript - { - "parent": { - "child1": "value1", - "child2": "value2" - } - } - ``` - - Notice that the `parent.child1` key was preserved. - """ - }, - ] - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/key_value_parser.cue b/docs/reference/components/transforms/key_value_parser.cue deleted file mode 100644 index 16a15c818069a..0000000000000 --- a/docs/reference/components/transforms/key_value_parser.cue +++ /dev/null @@ -1,204 +0,0 @@ -package metadata - -components: transforms: key_value_parser: { - title: "Key-value Parser" - - description: """ - Loosely parses a log field's value in key-value format. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - parse: { - format: { - name: "KeyValue" - url: null - versions: null - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(key_value_parser._remap_deprecation_notice) - - ```vrl - .message = parse_key_value(.message) - ``` - """, - ] - notices: [ - """ - It is likely that the `key_value` transform will replace the `logfmt_parser` transform - in the future since it offers a more flexible superset of that transform. - """, - ] - } - - configuration: { - drop_field: { - common: true - description: "If `true` will drop the specified `field` after parsing." - required: false - warnings: [] - type: bool: default: true - } - - field: { - common: true - description: "The log field containing key/value pairs to parse. Must be a `string` value." - required: false - warnings: [] - type: string: { - default: "message" - examples: ["message", "parent.child", "array[0]"] - syntax: "literal" - } - } - - field_split: { - common: false - description: "The character(s) to split a key/value pair on which results in a new field with an associated value. Must be a `string` value." - required: false - type: string: { - default: "=" - examples: [":", "="] - syntax: "literal" - } - } - - overwrite_target: { - common: false - description: """ - If `target_field` is set and the log contains a field of the same name - as the target, it will only be overwritten if this is set to `true`. - """ - required: false - type: bool: default: false - } - - separator: { - common: false - description: "The character(s) that separate key/value pairs. Must be a `string` value." - required: false - type: string: { - default: "[whitespace]" - examples: [",", ";", "|"] - syntax: "literal" - } - } - - target_field: { - common: false - description: """ - If this setting is present, the parsed JSON will be inserted into the - log as a sub-object with this name. - If a field with the same name already exists, the parser will fail and - produce an error. - """ - required: false - type: string: { - default: null - examples: ["root_field", "parent.child"] - syntax: "literal" - } - } - - trim_key: { - common: false - description: """ - Removes characters from the beginning and end of a key until a character that is not listed. - ex: `=value` would result in `key: value` with this option set to `<>`. - """ - required: false - type: string: { - default: null - examples: ["<>", "{}"] - syntax: "literal" - } - } - - trim_value: { - common: false - description: """ - Removes characters from the beginning and end of a value until a character that is not listed. - ex: `key=<<>value>>` would result in `key: value` with this option set to `<>`. - """ - required: false - type: string: { - default: null - examples: ["<>", "{}"] - syntax: "literal" - } - } - - types: configuration._types - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - description: { - title: "Description" - body: """ - The Key Value Parser accepts structured data that can be split on a character, or group of characters, and extracts it into a - json object (dictionary) of key/value pairs. The `separator` option allows you to define the character(s) to perform the initial - splitting of the message into pairs. The `field_split` option allows you to define the character(s) which split the key from the value. - """ - } - } - - examples: [ - { - title: "Firewall log message" - configuration: { - field: "message" - field_split: ":" - separator: ";" - target_field: "data" - trim_key: "\"" - trim_value: "\"" - type: "key_value_parser" - } - input: log: { - "message": "action:\"Accept\"; flags:\"802832\"; ifdir:\"inbound\"; ifname:\"eth2-05\"; logid:\"6\"; loguid:\"{0x5f0fa4d6,0x1,0x696ac072,0xc28d839a}\";" - } - output: log: { - "message": "action:\"Accept\"; flags:\"802832\"; ifdir:\"inbound\"; ifname:\"eth2-05\"; logid:\"6\"; loguid:\"{0x5f0fa4d6,0x1,0x696ac072,0xc28d839a}\";" - "data": { - "action": "Accept" - "flags": "802832" - "ifdir": "inbound" - "ifname": "eth2-05" - "logid": "6" - "loguid": "{0x5f0fa4d6,0x1,0x696ac072,0xc28d839a}" - } - } - }, - ] - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/log_to_metric.cue b/docs/reference/components/transforms/log_to_metric.cue deleted file mode 100644 index 2ea3ca295142f..0000000000000 --- a/docs/reference/components/transforms/log_to_metric.cue +++ /dev/null @@ -1,421 +0,0 @@ -package metadata - -components: transforms: log_to_metric: { - title: "Log to Metric" - - description: """ - Derives one or more metric events from a log event. - """ - - classes: { - commonly_used: false - development: "stable" - egress_method: "batch" - stateful: false - } - - features: { - convert: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - metrics: { - description: "A table of key/value pairs representing the keys to be added to the event." - required: true - warnings: [] - type: array: items: type: object: { - examples: [] - options: { - field: { - description: "The log field to use as the metric." - required: true - warnings: [] - type: string: { - examples: ["duration", "parent.child"] - syntax: "literal" - } - } - increment_by_value: { - description: """ - If `true` the metric will be incremented by the `field` value. - If `false` the metric will be incremented by 1 regardless of the `field` value. - """ - required: false - common: false - warnings: [] - relevant_when: #"type = "counter""# - type: bool: { - default: false - } - } - name: { - description: "The name of the metric. Defaults to `_total` for `counter` and `` for `gauge`." - required: false - common: true - warnings: [] - type: string: { - examples: ["duration_total"] - default: null - syntax: "template" - } - } - namespace: { - description: "The namespace of the metric." - required: false - common: true - warnings: [] - type: string: { - examples: ["service"] - default: null - syntax: "template" - } - } - tags: { - description: "Key/value pairs representing [metric tags][docs.data-model.metric#tags]." - required: false - common: true - warnings: [] - type: object: { - examples: [ - { - host: "${HOSTNAME}" - region: "us-east-1" - status: "{{status}}" - }, - ] - options: { - "*": { - description: """ - Key/value pairs representing [metric tags][docs.data-model.metric#tags]. - Environment variables and field interpolation is allowed. - """ - required: true - warnings: [] - type: "*": {} - } - } - } - } - type: { - description: "The metric type." - required: true - warnings: [] - type: string: { - enum: { - counter: "A [counter metric type][docs.data-model.metric#counter]." - gauge: "A [gauge metric type][docs.data-model.metric#gauge]." - histogram: "A [distribution metric type][docs.data-model.metric#distribution] with histogram statistic." - set: "A [set metric type][docs.data-model.metric#set]." - summary: "A [distribution metric type][docs.data-model.metric#distribution] with summary statistic." - } - syntax: "literal" - } - } - } - } - } - } - - input: { - logs: true - metrics: null - } - - output: metrics: { - counter: output._passthrough_counter - distribution: output._passthrough_distribution - gauge: output._passthrough_gauge - set: output._passthrough_set - } - - examples: [ - { - title: "Counter" - notes: "This example demonstrates counting HTTP status codes." - configuration: { - metrics: [ - { - type: "counter" - field: "status" - name: "response_total" - namespace: "service" - tags: { - status: "{{status}}" - host: "{{host}}" - } - }, - ] - } - input: log: { - host: "10.22.11.222" - message: "Sent 200 in 54.2ms" - status: 200 - } - output: [{metric: { - kind: "incremental" - name: "response_total" - namespace: "service" - tags: { - status: "200" - host: "10.22.11.222" - } - counter: { - value: 1.0 - } - }}] - }, - { - title: "Sum" - notes: "In this example we'll demonstrate computing a sum by computing the total of orders placed." - configuration: { - metrics: [ - { - type: "counter" - field: "total" - name: "order_total" - increment_by_value: true - tags: { - host: "{{host}}" - } - }, - ] - } - input: log: { - host: "10.22.11.222" - message: "Order placed for $122.20" - total: 122.2 - } - output: [{metric: { - kind: "incremental" - name: "order_total" - tags: { - host: "10.22.11.222" - } - counter: { - value: 122.2 - } - }}] - }, - { - title: "Gauges" - notes: "In this example we'll demonstrate creating a gauge that represents the current CPU load averages." - configuration: { - metrics: [ - { - type: "gauge" - field: "1m_load_avg" - tags: host: "{{host}}" - }, - { - type: "gauge" - field: "5m_load_avg" - tags: host: "{{host}}" - }, - { - type: "gauge" - field: "15m_load_avg" - tags: host: "{{host}}" - }, - ] - } - input: log: { - host: "10.22.11.222" - message: "CPU activity sample" - "1m_load_avg": 78.2 - "5m_load_avg": 56.2 - "15m_load_avg": 48.7 - } - output: [ - {metric: { - kind: "absolute" - name: "1m_load_avg" - tags: { - host: "10.22.11.222" - } - gauge: { - value: 78.2 - } - }}, - {metric: { - kind: "absolute" - name: "5m_load_avg" - tags: { - host: "10.22.11.222" - } - gauge: { - value: 56.2 - } - }}, - {metric: { - kind: "absolute" - name: "15m_load_avg" - tags: { - host: "10.22.11.222" - } - gauge: { - value: 48.7 - } - }}, - ] - }, - { - title: "Histogram distribution" - notes: "This example demonstrates capturing timings in your logs to compute histogram." - configuration: { - metrics: [ - { - type: "histogram" - field: "time" - name: "time_ms" - tags: { - status: "{{status}}" - host: "{{host}}" - } - }, - ] - } - input: log: { - host: "10.22.11.222" - message: "Sent 200 in 54.2ms" - status: 200 - time: 54.2 - } - output: [{metric: { - kind: "incremental" - name: "time_ms" - tags: { - status: "200" - host: "10.22.11.222" - } - distribution: { - samples: [{value: 54.2, rate: 1}] - statistic: "histogram" - } - }}] - }, - { - title: "Summary distribution" - notes: "This example demonstrates capturing timings in your logs to compute summary." - configuration: { - metrics: [ - { - type: "summary" - field: "time" - name: "time_ms" - tags: { - status: "{{status}}" - host: "{{host}}" - } - }, - ] - } - input: log: { - host: "10.22.11.222" - message: "Sent 200 in 54.2ms" - status: 200 - time: 54.2 - } - output: [{metric: { - kind: "incremental" - name: "time_ms" - tags: { - status: "200" - host: "10.22.11.222" - } - distribution: { - samples: [{value: 54.2, rate: 1}] - statistic: "summary" - } - }}] - }, - { - title: "Set" - notes: """ - In this example we'll demonstrate how to use sets. Sets are primarly a Statsd concept - that represent the number of unique values seens for a given metric. - The idea is that you pass the unique/high-cardinality value as the metric value - and the metric store will count the number of unique values seen. - """ - configuration: { - metrics: [ - { - type: "set" - field: "remote_addr" - namespace: "{{branch}}" - tags: { - host: "{{host}}" - } - }, - ] - } - input: log: { - host: "10.22.11.222" - message: "Sent 200 in 54.2ms" - remote_addr: "233.221.232.22" - branch: "dev" - } - output: [{metric: { - kind: "incremental" - name: "remote_addr" - namespace: "dev" - tags: { - host: "10.22.11.222" - } - set: { - values: ["233.221.232.22"] - } - }}] - }, - ] - - how_it_works: { - multiple_metrics: { - title: "Multiple Metrics" - body: """ - For clarification, when you convert a single `log` event into multiple `metric` - events, the `metric` events are not emitted as a single array. They are emitted - individually, and the downstream components treat them as individual events. - Downstream components are not aware they were derived from a single log event. - """ - } - reducing: { - title: "Reducing" - body: """ - It's important to understand that this transform does not reduce multiple logs - to a single metric. Instead, this transform converts logs into granular - individual metrics that can then be reduced at the edge. Where the reduction - happens depends on your metrics storage. For example, the - [`prometheus_exporter` sink][docs.sinks.prometheus_exporter] will reduce logs in the sink itself - for the next scrape, while other metrics sinks will proceed to forward the - individual metrics for reduction in the metrics storage itself. - """ - } - null_fields: { - title: "Null Fields" - body: """ - If the target log `field` contains a `null` value it will ignored, and a metric - will not be emitted. - """ - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/logfmt_parser.cue b/docs/reference/components/transforms/logfmt_parser.cue deleted file mode 100644 index 97cb330ddd170..0000000000000 --- a/docs/reference/components/transforms/logfmt_parser.cue +++ /dev/null @@ -1,194 +0,0 @@ -package metadata - -components: transforms: logfmt_parser: { - title: "Logfmt Parser" - - description: """ - Parses a log field's value in the [logfmt](\(urls.logfmt)) format. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - parse: { - format: { - name: "Logfmt" - url: urls.logfmt - versions: null - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(logfmt_parser._remap_deprecation_notice) - - ```vrl - .message = parse_key_value(.message) - ``` - """, - ] - notices: [] - } - - configuration: { - drop_field: { - common: true - description: "If the specified `field` should be dropped (removed) after parsing." - required: false - warnings: [] - type: bool: default: true - } - field: { - common: true - description: "The log field to parse." - required: false - warnings: [] - type: string: { - default: "message" - examples: ["message", "parent.child", "array[0]"] - syntax: "literal" - } - } - types: configuration._types - } - - input: { - logs: true - metrics: null - } - - examples: [ - { - title: "Heroku Router Log" - configuration: { - field: "message" - drop_field: true - types: { - bytes: "int" - status: "int" - } - } - input: log: { - "message": #"at=info method=GET path=/ host=myapp.herokuapp.com request_id=8601b555-6a83-4c12-8269-97c8e32cdb22 fwd="204.204.204.204" dyno=web.1 connect=1ms service=18ms status=200 bytes=13 tls_version=tls1.1 protocol=http"# - } - output: log: { - "at": "info" - "method": "GET" - "path": "/" - "host": "myapp.herokuapp.com" - "request_id": "8601b555-6a83-4c12-8269-97c8e32cdb22" - "fwd": "204.204.204.204" - "dyno": "web.1" - "connect": "1ms" - "service": "18ms" - "status": 200 - "bytes": 13 - "tls_version": "tls1.1" - "protocol": "http" - } - }, - { - title: "Loosely Structured" - configuration: { - field: "message" - drop_field: false - types: { - status: "int" - } - } - input: log: { - "message": #"info | Sent 200 in 54.2ms duration=54.2ms status=200"# - } - output: log: { - "message": "info | Sent 200 in 54.2ms duration=54.2ms status=200" - "duration": "54.2ms" - "status": 200 - } - }, - ] - - how_it_works: { - key_value_parsing: { - title: "Key/Value Parsing" - body: """ - This transform can be used for key/value parsing. [Logfmt](\(urls.logfmt)) refers - to a _loosely_ defined spec that parses a key/value pair delimited by a `=` - character. This section, and it's keywords, is primarily added to assist users - in finding this transform for these terms. - """ - } - - quoting_values: { - title: "Quoting Values" - body: #""" - Values can be quoted to capture spaces, and quotes can be escaped with `\`. - For example - - ```text - key1="value with spaces" key2="value with spaces and \"" - ``` - - Would result in the following `log` event: - - ```json title="log event" - { - "key1": "value with spaces", - "key2": "value with spaces and \"" - } - ``` - """# - } - - format_specification: { - title: "Format Specification" - body: """ - [Logfmt](\(urls.logfmt)) is, unfortunately, a very loosely defined format. There - is no official specification for the format and Vector makes a best effort to - parse key/value pairs delimited with a `=`. It works by splitting the `field`'s - value on non-quoted white-space and then splitting each token by a non-quoted - `=` character. This makes the parsing process somewhat flexible in that the - string does not need to be strictly formatted. - - For example, the following log line: - - ```js title="log event" - { - "message": "Hello world duration=2s user-agent=\"Firefox/47.3 Mozilla/5.0\"" - } - ``` - - Will be successfully parsed into: - - ```js title="log event" - { - "message": "Hello world duration=2s user-agent=\"Firefox/47.3 Mozilla/5.0\"", - "duration": "2s", - "user-agent": "Firefox/47.3 Mozilla/5.0" - } - ``` - """ - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/lua.cue b/docs/reference/components/transforms/lua.cue deleted file mode 100644 index ae7cfd403f221..0000000000000 --- a/docs/reference/components/transforms/lua.cue +++ /dev/null @@ -1,500 +0,0 @@ -package metadata - -components: transforms: lua: { - title: "Lua" - - description: """ - Transform events with a full embedded [Lua](\(urls.lua)) engine. - """ - - classes: { - commonly_used: false - development: "stable" - egress_method: "stream" - stateful: true - } - - features: { - program: { - runtime: { - name: "Lua" - url: urls.lua - version: "5.3" - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - The `lua` transform is ~60% slower than the [`remap` transform](\(urls.vector_remap_transform)), so we - recommended that you use the `remap` transform whenever possible. The `lua` transform is - designed solely for edge cases not covered by the `remap` transform and not as a go-to option. If the - `remap` transform doesn't cover your use case, please [open an issue](\(urls.new_feature_request)) and let - us know. - """, - ] - notices: [] - } - - configuration: { - hooks: { - description: "Configures hooks handlers." - required: true - warnings: [] - type: object: { - examples: [] - options: { - init: { - common: false - description: "A function which is called when the first event comes, before calling `hooks.process`" - required: false - warnings: [] - type: string: { - default: null - examples: [ - """ - function (emit) - -- Custom Lua code here - end - """, - "init", - ] - syntax: "literal" - } - } - process: { - description: "A function which is called for each incoming event. It can produce new events using `emit` function." - required: true - warnings: [] - type: string: { - examples: [ - """ - function (event, emit) - event.log.field = "value" -- set value of a field - event.log.another_field = nil -- remove field - event.log.first, event.log.second = nil, event.log.first -- rename field - -- Very important! Emit the processed event. - emit(event) - end - """, - "process", - ] - syntax: "literal" - } - } - shutdown: { - common: false - description: "A function which is called when Vector is stopped. It can produce new events using `emit` function." - required: false - warnings: [] - type: string: { - default: null - examples: [ - """ - function (emit) - -- Custom Lua code here - end - """, - "shutdown", - ] - syntax: "literal" - } - } - } - } - } - search_dirs: { - common: false - description: "A list of directories to search when loading a Lua file via the `require` function. If not specified, the modules are looked up in the directories of Vector's configs." - required: false - warnings: [] - type: array: { - default: null - items: type: string: { - examples: ["/etc/vector/lua"] - syntax: "literal" - } - } - } - source: { - common: false - description: "The source which is evaluated when the transform is created." - required: false - warnings: [] - type: string: { - default: null - examples: [ - """ - function init() - count = 0 - end - - function process() - count = count + 1 - end - - function timer_handler(emit) - emit(make_counter(counter)) - counter = 0 - end - - function shutdown(emit) - emit(make_counter(counter)) - end - - function make_counter(value) - return metric = { - name = "event_counter", - kind = "incremental", - timestamp = os.date("!*t"), - counter = { - value = value - syntax: "literal" - } - } - end - """, - """ - -- external file with hooks and timers defined - require('custom_module') - """, - ] - syntax: "literal" - } - } - timers: { - common: false - description: "Configures timers which are executed periodically at given interval." - required: false - warnings: [] - type: array: { - default: null - items: type: object: { - options: { - handler: { - description: "Defines a handler function which is executed periodially at `interval_seconds`. It can produce new events using `emit` function." - required: true - warnings: [] - type: string: { - examples: ["timer_handler"] - syntax: "literal" - } - } - interval_seconds: { - description: "Defines the interval at which the timer handler would be executed." - required: true - warnings: [] - type: uint: { - examples: [1, 10, 30] - unit: "seconds" - } - } - } - } - } - } - version: { - description: "Transform API version. Specifying this version ensures that Vector does not break backward compatibility." - required: true - warnings: [] - type: string: { - enum: { - "2": "Lua transform API version 2" - } - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } - - examples: [ - { - title: "Add, rename, & remove log fields" - configuration: { - hooks: process: """ - function (event, emit) - -- Add root level field - event.log.field = "new value" - - -- Add nested field - event.log.nested.field = "nested value" - - -- Rename field - event.log.renamed_field = event.log.field_to_rename - event.log.field_to_rename = nil - - -- Remove fields - event.log.field_to_remove = nil - - emit(event) - end - """ - } - input: log: { - field_to_rename: "old value" - field_to_remove: "remove me" - } - output: log: { - field: "new value" - nested: field: "nested value" - renamed_field: "old value" - } - }, - { - title: "Add, rename, remove metric tags" - configuration: { - hooks: process: """ - function (event, emit) - -- Add tag - event.metric.tags.tag = "new value" - - -- Rename tag - event.metric.tags.renamed_tag = event.log.tag_to_rename - event.metric.tags.tag_to_rename = nil - - -- Remove tag - event.metric.tags.tag_to_remove = nil - - emit(event) - end - """ - } - input: metric: { - kind: "incremental" - name: "logins" - counter: { - value: 2.0 - } - tags: { - tag_to_rename: "old value" - tag_to_remove: "remove me" - } - } - output: metric: { - kind: "incremental" - name: "logins" - counter: { - value: 2.0 - } - tags: { - tag: "new value" - renamed_tag: "old value" - } - } - }, - { - title: "Drop an event" - configuration: { - hooks: process: """ - function (event, emit) - -- Drop event entirely by not calling the `emit` function - end - """ - } - input: log: { - field_to_rename: "old value" - field_to_remove: "remove me" - } - output: null - }, - { - title: "Iterate over log fields" - configuration: { - hooks: process: """ - function (event, emit) - -- Remove all fields where the value is "-" - for f, v in pairs(event) do - if v == "-" then - event[f] = nil - end - end - - emit(event) - end - """ - } - input: log: { - value_to_remove: "-" - value_to_keep: "keep" - } - output: log: { - value_to_keep: "keep" - } - }, - { - title: "Parse timestamps" - configuration: { - hooks: { - init: """ - -- Parse timestamps like `2020-04-07 06:26:02.643` - timestamp_pattern = "(%d%d%d%d)[-](%d%d)[-](%d%d) (%d%d):(%d%d):(%d%d).?(%d*)" - - function parse_timestamp(str) - local year, month, day, hour, min, sec, millis = string.match(str, timestamp_pattern) - local ms = 0 - if millis and millis ~= "" then - ms = tonumber(millis) - end - return { - year = tonumber(year), - month = tonumber(month), - day = tonumber(day), - hour = tonumber(hour), - min = tonumber(min), - sec = tonumber(sec), - nanosec = ms * 1000000 - } - end - """ - process: """ - function (event, emit) - event.log.timestamp = parse_timestamp(event.log.timestamp_string) - emit(event) - end - """ - } - } - input: log: { - timestamp_string: "2020-04-07 06:26:02.643" - } - output: log: { - timestamp_string: "2020-04-07 06:26:02.643" - timestamp: "2020-04-07 06:26:02.643" - } - }, - { - title: "Count the number of logs" - configuration: { - hooks: { - init: "init" - process: "process" - shutdown: "shutdown" - } - timers: [ - {interval_seconds: 5, handler: "timer_handler"}, - ] - source: """ - function init() - count = 0 - end - - function process() - count = count + 1 - end - - function timer_handler(emit) - emit(make_counter(count)) - count = 0 - end - - function shutdown(emit) - emit(make_counter(count)) - end - - function make_counter(value) - return metric = { - name = "event_counter", - kind = "incremental", - timestamp = os.date("!*t"), - counter = { - value = value - } - } - end - """ - } - input: log: {} - output: metric: { - kind: "incremental" - name: "event_counter" - counter: { - value: 1.0 - } - tags: { - tag: "new value" - renamed_tag: "old value" - } - } - }, - ] - - how_it_works: { - event_data_model: { - title: "Event Data Model" - body: """ - The `process` hook takes an `event` as its first argument. - Events are represented as [tables](\(urls.lua_table)) in Lua - and follow Vector's data model exactly. Please refer to - Vector's [data model reference][docs.data-model] for the event - schema. How Vector's types map to Lua's type are covered below. - """ - sub_sections: [ - { - title: "Type Mappings" - body: """ - The correspondence between Vector's [data types](\(urls.vector_log_data_types)) and Lua data type is summarized - by the following table: - - | Vector Type | Lua Type | Comment | - |:----------------------------------------------------|:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| - | [`String`](\(urls.vector_log)#strings) | [`string`](\(urls.lua_string)) | | - | [`Integer`](\(urls.vector_log)#ints) | [`integer`](\(urls.lua_integer)) | | - | [`Float`](\(urls.vector_log)#floats) | [`number`](\(urls.lua_number)) | | - | [`Boolean`](\(urls.vector_log)#booleans) | [`boolean`](\(urls.lua_boolean)) | | - | [`Timestamp`](\(urls.vector_log)#timestamps) | [`table`](\(urls.lua_table)) | There is no dedicated timestamp type in Lua. Timestamps are represented as tables using the convention defined by [`os.date`](\(urls.lua_os_date)) and [`os.time`](\(urls.lua_os_time)). The table representation of a timestamp contains the fields `year`, `month`, `day`, `hour`, `min`, `sec`, `nanosec`, `yday`, `wday`, and `isdst`. If such a table is passed from Lua to Vector, the fields `yday`, `wday`, and `isdst` can be omitted. In addition to the `os.time` representation, Vector supports sub-second resolution with a `nanosec` field in the table. | - | [`Null`](\(urls.vector_log)#null-values) | empty string | In Lua setting the value of a table field to `nil` means deletion of this field. In addition, the length operator `#` does not work in the expected way with sequences containing nulls. Because of that `Null` values are encoded as empty strings. | - | [`Map`](\(urls.vector_log)#maps) | [`table`](\(urls.lua_table)) | | - | [`Array`](\(urls.vector_log)#arrays) | [`sequence`](\(urls.lua_sequence)) | Sequences are a special case of tables. Indexes start from 1, following the Lua convention. | - """ - }, - ] - } - learning_lua: { - title: "Learning Lua" - body: """ - In order to write non-trivial transforms in Lua, one has to have - basic understanding of Lua. Because Lua is an easy to learn - language, reading a few first chapters of - [the official book](\(urls.lua_pil)) or consulting - [the manual](\(urls.lua_manual)) would suffice. - """ - } - search_dirs: { - title: "Search Directories" - body: """ - Vector provides a `search_dirs` option that allows you to specify - absolute paths that will be searched when using the - [Lua `require` function](\(urls.lua_require)). If this option is not - set, the directories of the configuration files will be used instead. - """ - } - } - - telemetry: metrics: { - memory_used_bytes: components.sources.internal_metrics.output.metrics.memory_used_bytes - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/merge.cue b/docs/reference/components/transforms/merge.cue deleted file mode 100644 index 6655b6e443050..0000000000000 --- a/docs/reference/components/transforms/merge.cue +++ /dev/null @@ -1,134 +0,0 @@ -package metadata - -components: transforms: merge: { - title: "Merge" - - description: """ - Merges partial log events into a single event. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: true - } - - features: { - reduce: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - This component has been deprecated in favor of the new - [`reduce` transform](\(urls.vector_remap_transform)). The `reduce` - transform provides a simple syntax for robust data merging. - Let us know what you think! - """, - ] - notices: [] - } - - configuration: { - fields: { - common: true - description: """ - Fields to merge. - The values of these fields will be merged into the first partial event. - Fields not specified here will be ignored. - Merging process takes the first partial event and the base, then it merges in the fields from each successive partial event, until a non-partial event arrives. - Finally, the non-partial event fields are merged in, producing the resulting merged event. - """ - required: false - warnings: [] - type: array: { - default: ["message"] - items: type: string: { - examples: ["message", "parent.child"] - syntax: "literal" - } - } - } - partial_event_marker_field: { - common: true - description: """ - The field that indicates that the event is partial. - A consequent stream of partial events along with the first non-partial event will be merged together. - """ - required: false - warnings: [] - type: string: { - default: "_partial" - examples: ["_partial", "parent.child"] - syntax: "literal" - } - } - stream_discriminant_fields: { - common: true - description: """ - An ordered list of fields to distinguish streams by. - Each stream has a separate partial event merging state. - Should be used to prevent events from unrelated sources from mixing together, as this affects partial event processing. - """ - required: false - warnings: [] - type: array: { - default: [] - items: type: string: { - examples: ["host", "parent.child"] - syntax: "literal" - } - } - } - } - - input: { - logs: true - metrics: null - } - - examples: [ - { - title: "Default" - configuration: {} - input: [ - {log: {"message": "First", "_partial": true, "custom_string_field": "value1", "custom_int_field": 1}}, - {log: {"message": "Second", "_partial": true, "custom_string_field": "value2", "custom_int_field": 2}}, - {log: {"message": "Third", "custom_string_field": "value3", "custom_int_field": 3}}, - ] - output: log: {"message": "FirstSecondThird", "custom_string_field": "value1", "custom_int_field": 1} - notes: """ - Notice that `custom_string_field` and `custom_int_field` were not overridden. - This is because they were not listed in the `fields` option. - """ - }, - { - title: "With Merge Fields" - configuration: { - fields: ["message", "custom_string_field", "custom_int_field"] - } - input: [ - {log: {"message": "First", "_partial": true, "custom_string_field": "value1", "custom_int_field": 1}}, - {log: {"message": "Second", "_partial": true, "custom_string_field": "value2", "custom_int_field": 2}}, - {log: {"message": "Third", "custom_string_field": "value3", "custom_int_field": 3}}, - ] - output: log: {"message": "FirstSecondThird", "custom_string_field": "value1value2value3", "custom_int_field": 3} - notes: """ - Notice that `custom_string_field` is concatenated and `custom_int_field` - overridden. This is because it was specified in the `fields` option. - """ - }, - ] -} diff --git a/docs/reference/components/transforms/metric_to_log.cue b/docs/reference/components/transforms/metric_to_log.cue deleted file mode 100644 index e26d8078295f4..0000000000000 --- a/docs/reference/components/transforms/metric_to_log.cue +++ /dev/null @@ -1,118 +0,0 @@ -package metadata - -components: transforms: metric_to_log: { - title: "Metric to Log" - - description: """ - Converts a metric event into a log event, which can be useful for sending metrics - to log-support downstream components. - """ - - classes: { - commonly_used: true - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - convert: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - host_tag: { - common: true - description: "Tag key that identifies the source host." - required: false - warnings: [] - type: string: { - default: "hostname" - examples: ["host", "hostname"] - syntax: "literal" - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } - - examples: [ - { - title: "Metric To Log" - configuration: { - host_tag: "host" - } - input: metric: { - kind: "absolute" - name: "histogram" - timestamp: "2020-08-01T21:15:47+00:00" - tags: { - host: "my.host.com" - code: "200" - } - histogram: { - buckets: [ - {upper_limit: 1.0, count: 10}, - {upper_limit: 2.0, count: 20}, - ] - count: 30 - sum: 50.0 - } - } - output: log: { - name: "histogram" - timestamp: "2020-08-01T21:15:47+00:00" - host: "my.host.com" - tags: { - "code": "200" - } - kind: "absolute" - histogram: { - buckets: [ - { - "count": 10 - "upper_limit": 1.0 - }, - { - "count": 20 - "upper_limit": 2.0 - }, - ] - count: 30 - sum: 50.0 - } - } - }, - ] - - how_it_works: {} - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/reduce.cue b/docs/reference/components/transforms/reduce.cue deleted file mode 100644 index 3a6df0cb34ac2..0000000000000 --- a/docs/reference/components/transforms/reduce.cue +++ /dev/null @@ -1,267 +0,0 @@ -package metadata - -components: transforms: reduce: { - title: "Reduce" - - description: """ - Reduces multiple log events into a single log event based on a set of - conditions and merge strategies. - """ - - classes: { - commonly_used: false - development: "beta" - egress_method: "stream" - stateful: true - } - - features: { - reduce: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - ends_when: { - common: false - description: """ - A condition used to distinguish the final event of a transaction. If this condition resolves to `true` - for an event, the current transaction is immediately flushed with this event. - """ - required: false - warnings: [] - type: string: { - default: null - examples: [ - #".status_code != 200 && !includes(["info", "debug"], .severity)"#, - ] - syntax: "literal" - } - } - expire_after_ms: { - common: false - description: "A maximum period of time to wait after the last event is received before a combined event should be considered complete." - required: false - warnings: [] - type: uint: { - default: 30000 - unit: "milliseconds" - } - } - flush_period_ms: { - common: false - description: "Controls the frequency that Vector checks for (and flushes) expired events." - required: false - warnings: [] - type: uint: { - default: 1000 - unit: "milliseconds" - } - } - group_by: { - common: true - description: "An ordered list of fields by which to group events. Each group is combined independently, allowing you to keep independent events separate. When no fields are specified, all events will be combined in a single group. Events missing a specified field will be combined in their own group." - required: false - warnings: [] - type: array: { - default: [] - items: type: string: { - examples: ["request_id", "user_id", "transaction_id"] - syntax: "literal" - } - } - } - merge_strategies: { - common: false - description: """ - A map of field names to custom merge strategies. For each - field specified this strategy will be used for combining - events rather than the default behavior. - - The default behavior is as follows: - - 1. The first value of a string field is kept, subsequent - values are discarded. - 2. For timestamp fields the first is kept and a new field - `[field-name]_end` is added with the last received - timestamp value. - 3. Numeric values are summed. - """ - required: false - warnings: [] - type: object: { - examples: [ - { - method: "discard" - path: "discard" - duration_ms: "sum" - query: "array" - }, - ] - options: { - "*": { - description: "The custom merge strategy to use for a field." - required: true - warnings: [] - type: string: { - enum: { - array: "Each value is appended to an array." - concat: "Concatenate each string value (delimited with a space)." - concat_newline: "Concatenate each string value (delimited with a newline)." - discard: "Discard all but the first value found." - sum: "Sum all numeric values." - max: "The maximum of all numeric values." - min: "The minimum of all numeric values." - } - syntax: "literal" - } - } - } - } - } - starts_when: { - common: false - description: """ - A condition used to distinguish the first event of a transaction. If this condition resolves to `true` - for an event, the previous transaction is flushed (without this event) and a new transaction is started. - """ - required: false - warnings: [] - type: string: { - default: null - examples: [ - #".status_code != 200 && !includes(["info", "debug"], .severity)"#, - ] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } - - examples: [ - { - title: "Merge Ruby exceptions" - input: [ - { - log: { - timestamp: "2020-10-07T12:33:21.223543Z" - message: "foobar.rb:6:in `/': divided by 0 (ZeroDivisionError)" - host: "host-1.hostname.com" - pid: 1234 - tid: 5678 - } - }, - { - log: { - timestamp: "2020-10-07T12:33:21.223543Z" - message: " from foobar.rb:6:in `bar'" - host: "host-1.hostname.com" - pid: 1234 - tid: 5678 - } - }, - { - log: { - timestamp: "2020-10-07T12:33:21.223543Z" - message: " from foobar.rb:2:in `foo'" - host: "host-1.hostname.com" - pid: 1234 - tid: 5678 - } - }, - { - log: { - timestamp: "2020-10-07T12:33:21.223543Z" - message: " from foobar.rb:9:in `
'" - host: "host-1.hostname.com" - pid: 1234 - tid: 5678 - } - }, - { - log: { - timestamp: "2020-10-07T12:33:22.123528Z" - message: "Hello world, I am a new log" - host: "host-1.hostname.com" - pid: 1234 - tid: 5678 - } - }, - ] - configuration: { - group_by: ["host", "pid", "tid"] - marge_strategies: message: "concat_newline" - starts_when: #"match(.message, /^[^\s]/)"# - } - output: [ - { - log: { - timestamp: "2020-10-07T12:33:21.223543Z" - message: """ - foobar.rb:6:in `/': divided by 0 (ZeroDivisionError) - from foobar.rb:6:in `bar' - from foobar.rb:2:in `foo' - from foobar.rb:9:in `
' - """ - host: "host-1.hostname.com" - pid: 1234 - tid: 5678 - } - }, - { - log: { - timestamp: "2020-10-07T12:33:22.123528Z" - message: "Hello world, I am a new log" - host: "host-1.hostname.com" - pid: 1234 - tid: 5678 - } - }, - ] - }, - { - title: "Reduce Rails logs into a single transaction" - configuration: {} - input: [ - {log: {timestamp: "2020-10-07T12:33:21.223543Z", message: "Received GET /path", request_id: "abcd1234", request_path: "/path", request_params: {"key": "val"}}}, - {log: {timestamp: "2020-10-07T12:33:21.832345Z", message: "Executed query in 5.2ms", request_id: "abcd1234", query: "SELECT * FROM table", query_duration_ms: 5.2}}, - {log: {timestamp: "2020-10-07T12:33:22.457423Z", message: "Rendered partial _partial.erb in 2.3ms", request_id: "abcd1234", template: "_partial.erb", render_duration_ms: 2.3}}, - {log: {timestamp: "2020-10-07T12:33:22.543323Z", message: "Executed query in 7.8ms", request_id: "abcd1234", query: "SELECT * FROM table", query_duration_ms: 7.8}}, - {log: {timestamp: "2020-10-07T12:33:22.742322Z", message: "Sent 200 in 15.2ms", request_id: "abcd1234", response_status: 200, response_duration_ms: 5.2}}, - ] - output: log: { - timestamp: "2020-10-07T12:33:21.223543Z" - timestamp_end: "2020-10-07T12:33:22.742322Z" - request_id: "abcd1234" - request_path: "/path" - request_params: {"key": "val"} - query_duration_ms: 13.0 - render_duration_ms: 2.3 - status: 200 - response_duration_ms: 5.2 - } - }, - ] - - telemetry: metrics: { - stale_events_flushed_total: components.sources.internal_metrics.output.metrics.stale_events_flushed_total - } -} diff --git a/docs/reference/components/transforms/regex_parser.cue b/docs/reference/components/transforms/regex_parser.cue deleted file mode 100644 index d72a02a90eb93..0000000000000 --- a/docs/reference/components/transforms/regex_parser.cue +++ /dev/null @@ -1,204 +0,0 @@ -package metadata - -components: transforms: regex_parser: { - title: "Regex Parser" - - description: """ - Parses a log field's value with a [Regular Expression](\(urls.regex)). - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - parse: { - format: { - name: "regular expressions" - url: urls.regex - versions: null - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(regex_parser._remap_deprecation_notice) - - ```vrl - .message = parse_regex(.message, r'(?P.*?) group') - ``` - """, - ] - notices: [] - } - - configuration: { - drop_failed: { - common: true - description: "If the event should be dropped if parsing fails." - required: false - warnings: [] - type: bool: default: false - } - drop_field: { - common: true - description: "If the specified `field` should be dropped (removed) after parsing." - required: false - warnings: [] - type: bool: default: true - } - field: { - common: true - description: "The log field to parse." - required: false - warnings: [] - type: string: { - default: "message" - examples: ["message", "parent.child"] - syntax: "literal" - } - } - overwrite_target: { - common: false - description: "If `target_field` is set and the log contains a field of the same name as the target, it will only be overwritten if this is set to `true`." - required: false - warnings: [] - type: bool: default: true - } - patterns: { - description: "The Regular Expressions to apply. Do not include the leading or trailing `/` in any of the expressions." - required: true - warnings: [] - type: array: items: type: string: { - examples: ["^(?P[\\\\w\\\\-:\\\\+]+) (?P\\\\w+) (?P.*)$"] - syntax: "literal" - } - } - target_field: { - common: false - description: "If this setting is present, the parsed fields will be inserted into the log as a sub-object with this name. If a field with the same name already exists, the parser will fail and produce an error." - required: false - warnings: [] - type: string: { - default: null - examples: ["root_field", "parent.child"] - syntax: "literal" - } - } - types: configuration._types - } - - input: { - logs: true - metrics: null - } - - examples: [ - { - title: "Syslog 5424" - configuration: { - field: "message" - patterns: [#"^(?P[\w\.]+) - (?P[\w]+) (?P[\d]+) \[(?P.*)\] "(?P[\w]+) (?P.*)" (?P[\d]+) (?P[\d]+)$"#] - types: { - bytes_in: "int" - timestamp: "timestamp|%d/%m/%Y:%H:%M:%S %z" - status: "int" - bytes_out: "int" - } - } - input: log: { - "message": #"5.86.210.12 - zieme4647 5667 [19/06/2019:17:20:49 -0400] "GET /embrace/supply-chains/dynamic/vertical" 201 20574"# - } - output: log: { - bytes_in: 5667 - host: "5.86.210.12" - user_id: "zieme4647" - timestamp: "2019-06-19T17:20:49-0400" - method: "GET" - path: "/embrace/supply-chains/dynamic/vertical" - status: 201 - bytes_out: 20574 - } - }, - ] - - how_it_works: { - failed_parsing: { - title: "Failed Parsing" - body: """ - By default, if the input message text does not match any of the configured regular expression patterns, this transform will log an error message but leave the log event unchanged. If you instead wish to have this transform drop the event, set `drop_failed = true`. - """ - } - flags: { - title: "Flags" - body: #""" - Regex flags can be toggled with the `(?flags)` syntax. The available flags are: - - | Flag | Descriuption | - | :--- | :----------- | - | `i` | case-insensitive: letters match both upper and lower case | - | `m` | multi-line mode: ^ and $ match begin/end of line | - | `s` | allow . to match `\n` | - | `U` | swap the meaning of `x*` and `x*?` | - | `u` | Unicode support (enabled by default) | - | `x` | ignore whitespace and allow line comments (starting with `#`) - - For example, to enable the case-insensitive flag you can write: - - ```text - (?i)Hello world - ``` - - More info can be found in the [Regex grouping and flags documentation](#(urls.regex_grouping_and_flags)). - """# - } - named_captures: { - title: "Named Captures" - body: #""" - You can name Regex captures with the `` syntax. For example: - - ```text - ^(?P\w*) (?P\w*) (?P.*)$ - ``` - - Will capture `timestamp`, `level`, and `message`. All values are extracted as - `string` values and must be coerced with the `types` table. - - More info can be found in the [Regex grouping and flags - documentation](#(urls.regex_grouping_and_flags)). - """# - } - regex_debugger: { - title: "Regex Debugger" - body: """ - If you are having difficulty with your regular expression not matching text, you may try debugging your patterns at [Regex 101][regex_tester]. This site includes a regular expression tester and debugger. The regular expression engine used by Vector is most similar to the "Go" implementation, so make sure that is selected in the "Flavor" menu. - """ - } - regex_syntax: { - title: "Regex Syntax" - body: """ - Vector uses the Rust standard regular expression engine for pattern matching. Its syntax shares most of the features of Perl-style regular expressions, with a few exceptions. You can find examples of patterns in the [Rust regex module documentation][rust_regex_syntax]. - """ - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/remap.cue b/docs/reference/components/transforms/remap.cue deleted file mode 100644 index 8e9cdb442ad86..0000000000000 --- a/docs/reference/components/transforms/remap.cue +++ /dev/null @@ -1,113 +0,0 @@ -package metadata - -components: transforms: "remap": { - title: "Remap" - - description: """ - Is the recommended transform for parsing, shaping, and transforming data in Vector. It implements the - [Vector Remap Language](\(urls.vrl_reference)) (VRL), an expression-oriented language designed for processing - obervability data (logs and metrics) in safe and performant manner. - - Please refer to the [VRL reference](\(urls.vrl_reference)) when writing VRL scripts. - """ - - classes: { - commonly_used: true - development: "beta" - egress_method: "stream" - stateful: false - } - - features: { - program: { - runtime: { - name: "Vector Remap Language (VRL)" - url: urls.vrl_reference - version: null - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - source: { - description: """ - The [Vector Remap Language](\(urls.vrl_reference)) (VRL) program to execute for each event. - """ - required: true - type: string: { - examples: [ - """ - . = parse_json(.message) - .new_field = "new value" - .status = to_int(.status) - .duration = parse_duration(.duration, "s") - .new_name = .old_name - del(.old_name) - """, - ] - syntax: "remap_program" - } - } - } - - input: { - logs: true - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } - - examples: [ - for k, v in remap.examples if v.raises == _|_ { - { - title: v.title - configuration: source: v.source - input: v.input - output: v.output - } - }, - ] - - how_it_works: { - remap_language: { - title: "Vector Remap Language" - body: #""" - The Vector Remap Language (VRL) is a restrictive, fast, and safe language we - designed specifically for mapping observability data. It avoids the need to - chain together many fundamental Vector transforms to accomplish rudimentary - reshaping of data. - - The intent is to offer the same robustness of full language runtime (ex: Lua) - without paying the performance or safety penalty. - - Learn more about Vector's Remap Language in the - [Vector Remap Language reference](\#(urls.vrl_reference)). - """# - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/remove_fields.cue b/docs/reference/components/transforms/remove_fields.cue deleted file mode 100644 index d023beecce1d4..0000000000000 --- a/docs/reference/components/transforms/remove_fields.cue +++ /dev/null @@ -1,68 +0,0 @@ -package metadata - -components: transforms: remove_fields: { - title: "Remove Fields" - - description: """ - Removes one or more log fields. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - shape: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(remove_fields._remap_deprecation_notice) - - ```vrl - del(.level) - ``` - """, - ] - notices: [] - } - - configuration: { - drop_empty: { - common: false - description: "If set to `true`, after removing fields, remove any parent objects that are now empty." - required: false - warnings: [] - type: bool: default: false - } - fields: { - description: "The log field names to drop." - required: true - warnings: [] - type: array: items: type: string: { - examples: ["field1", "field2", "parent.child"] - syntax: "literal" - } - } - } - - input: { - logs: true - metrics: null - } -} diff --git a/docs/reference/components/transforms/remove_tags.cue b/docs/reference/components/transforms/remove_tags.cue deleted file mode 100644 index 4d6e06ac86f25..0000000000000 --- a/docs/reference/components/transforms/remove_tags.cue +++ /dev/null @@ -1,68 +0,0 @@ -package metadata - -components: transforms: remove_tags: { - title: "Remove Tags" - - description: """ - Removes one or more metric tags. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - shape: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(remove_tags._remap_deprecation_notice) - - ```vrl - del(.tag) - ``` - """, - ] - notices: [] - } - - configuration: { - tags: { - description: "The tag names to drop." - required: true - warnings: [] - type: array: items: type: string: { - examples: ["tag1", "tag2"] - syntax: "literal" - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } -} diff --git a/docs/reference/components/transforms/rename_fields.cue b/docs/reference/components/transforms/rename_fields.cue deleted file mode 100644 index 33d8280df3921..0000000000000 --- a/docs/reference/components/transforms/rename_fields.cue +++ /dev/null @@ -1,139 +0,0 @@ -package metadata - -components: transforms: rename_fields: { - title: "Rename Fields" - - description: """ - Renames one or more log fields. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - shape: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(rename_fields._remap_deprecation_notice) - - ```vrl - .new_name = del(.old_name) - ``` - """, - ] - notices: [] - } - - configuration: { - drop_empty: { - common: false - description: "If set to `true`, after renaming fields, remove any parent objects of the old field that are now empty." - required: false - warnings: [] - type: bool: default: false - } - fields: { - description: "A table of old-key/new-key pairs representing the keys to be moved in the event." - required: true - warnings: [ - """ - Vector makes no guarantee on the order of execution. If two rename - operations must be performed in a specific order, it is recommended to - split them up across two separate rename transforms. - """, - ] - type: object: { - examples: [ - { - "old_field_name": "new_field_name" - "parent": {"old_child_name": "parent.new_child_name"} - }, - ] - options: {} - } - } - } - - input: { - logs: true - metrics: null - } - - how_it_works: { - conflicts: { - title: "Conflicts" - body: "" - sub_sections: [ - { - title: "Key Conflicts" - body: """ - Keys specified in this transform will replace existing keys. - - - - Vector makes no guarantee on the order of execution. If two rename - operations must be performed in a specific order, it is recommended to split - them up across two separate rename transforms. - - - """ - }, - { - title: "Nested Key Conflicts" - body: """ - Keys are renamed in a deep fashion. They will not replace any ancestor - objects. For example, given the following `log` event: - - ```javascript - { - "root": "value2", - "parent": { - "child1": "value1" - } - } - ``` - - And the following configuration: - - ```toml - [transforms.rename_nested_field] - type = "rename_fields" - fields.root = "parent.child2" - ``` - - Will result in the following log event: - - ```javascript - { - "parent": { - "child1": "value1", - "child2": "value2" - } - } - ``` - - Notice that `parent.child1` field was preserved. - """ - }, - ] - } - } -} diff --git a/docs/reference/components/transforms/route.cue b/docs/reference/components/transforms/route.cue deleted file mode 100644 index 1fdf21d93dea4..0000000000000 --- a/docs/reference/components/transforms/route.cue +++ /dev/null @@ -1,95 +0,0 @@ -package metadata - -components: transforms: route: { - title: "Route" - - description: """ - Splits a stream of events into multiple sub-streams based on a set of - conditions. - """ - - classes: { - commonly_used: false - development: "stable" - egress_method: "stream" - stateful: false - } - - features: { - route: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - route: { - description: """ - A table of route identifiers to logical conditions representing the filter of the route. Each route - can then be referenced as an input by other components with the name `.`. - """ - required: true - warnings: [] - type: object: { - options: { - "*": { - description: """ - The condition to be matched against every input event. Only messages that pass the - condition will be included in this route. - """ - required: true - warnings: [] - type: string: { - examples: [ - #".status_code != 200 && !includes(["info", "debug"], .severity)"#, - ] - syntax: "remap_boolean_expression" - } - } - } - } - } - } - - input: { - logs: true - metrics: null - } - - examples: [ - { - title: "Split by log level" - configuration: { - route: { - debug: #".level == "debug""# - info: #".level == "info""# - warn: #".level == "warn""# - error: #".level == "error""# - } - } - input: log: { - level: "info" - } - output: log: { - level: "info" - } - }, - ] - - telemetry: metrics: { - events_discarded_total: components.sources.internal_metrics.output.metrics.events_discarded_total - } -} diff --git a/docs/reference/components/transforms/sample.cue b/docs/reference/components/transforms/sample.cue deleted file mode 100644 index 9c6121fd10a7b..0000000000000 --- a/docs/reference/components/transforms/sample.cue +++ /dev/null @@ -1,92 +0,0 @@ -package metadata - -components: transforms: sample: { - title: "Sample" - - description: """ - Samples events at a configurable rate. - """ - - classes: { - commonly_used: false - development: "beta" - egress_method: "stream" - stateful: false - } - - features: { - filter: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - key_field: { - common: false - description: """ - The name of the log field whose value will be hashed to determine if the event should be passed. - - Consistently samples the same events. Actual rate of sampling may differ from the configured one if - values in the field are not uniformly distributed. If left unspecified, or if the event doesn't have - `key_field`, events will be count rated. - """ - required: false - warnings: [] - type: string: { - default: null - examples: ["message"] - syntax: "literal" - } - } - exclude: { - common: true - description: """ - The set of logical conditions to exclude events from sampling. - """ - required: false - warnings: [] - type: string: { - default: null - examples: [ - #".status_code != 200 && !includes(["info", "debug"], .severity)"#, - ] - syntax: "remap_boolean_expression" - } - } - rate: { - description: """ - The rate at which events will be forwarded, expressed as 1/N. For example, - `rate = 10` means 1 out of every 10 events will be forwarded and the rest will be dropped. - """ - required: true - warnings: [] - type: uint: { - examples: [10] - unit: null - } - } - } - - input: { - logs: true - metrics: null - } - - telemetry: metrics: { - events_discarded_total: components.sources.internal_metrics.output.metrics.events_discarded_total - } -} diff --git a/docs/reference/components/transforms/split.cue b/docs/reference/components/transforms/split.cue deleted file mode 100644 index c64a4c9f14517..0000000000000 --- a/docs/reference/components/transforms/split.cue +++ /dev/null @@ -1,121 +0,0 @@ -package metadata - -components: transforms: split: { - title: "Split" - - description: """ - Splits a string field on a defined separator. - """ - - classes: { - commonly_used: false - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - shape: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(split._remap_deprecation_notice) - - ```vrl - .message = split(.message) - ``` - """, - ] - notices: [] - } - - configuration: { - drop_field: { - common: true - description: "If `true` the `field` will be dropped after parsing." - required: false - warnings: [] - type: bool: default: true - } - field: { - common: true - description: "The field to apply the split on." - required: false - warnings: [] - type: string: { - default: "message" - examples: ["message", "parent.child"] - syntax: "literal" - } - } - field_names: { - description: "The field names assigned to the resulting tokens, in order." - required: true - warnings: [] - type: array: items: type: string: { - examples: ["timestamp", "level", "message", "parent.child"] - syntax: "literal" - } - } - separator: { - common: true - description: "The separator to split the field on. If no separator is given, it will split on all whitespace. 'Whitespace' is defined according to the terms of the [Unicode Derived Core Property `White_Space`](\(urls.unicode_whitespace))." - required: false - warnings: [] - type: string: { - default: "[whitespace]" - examples: [","] - syntax: "literal" - } - } - types: configuration._types - } - - input: { - logs: true - metrics: null - } - - examples: [ - { - title: "Split log message" - configuration: { - field: "message" - separator: "," - field_names: ["remote_addr", "user_id", "timestamp", "message", "status", "bytes"] - types: { - status: "int" - bytes: "int" - } - } - input: log: { - message: "5.86.210.12,zieme4647,19/06/2019:17:20:49 -0400,GET /embrace/supply-chains/dynamic/vertical,201,20574" - } - output: log: { - remote_addr: "5.86.210.12" - user_id: "zieme4647" - timestamp: "19/06/2019:17:20:49 -0400" - message: "GET /embrace/supply-chains/dynamic/vertical" - status: 201 - bytes: 20574 - } - }, - ] - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/tag_cardinality_limit.cue b/docs/reference/components/transforms/tag_cardinality_limit.cue deleted file mode 100644 index f023586d72269..0000000000000 --- a/docs/reference/components/transforms/tag_cardinality_limit.cue +++ /dev/null @@ -1,236 +0,0 @@ -package metadata - -components: transforms: tag_cardinality_limit: { - title: "Tag Cardinality Limit" - - description: """ - Limits the cardinality of tags on metric events, protecting against - accidental high cardinality usage that can commonly disrupt the stability - of metrics storages. - """ - - classes: { - commonly_used: false - development: "beta" - egress_method: "stream" - stateful: true - } - - features: { - filter: {} - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [] - notices: [] - } - - configuration: { - cache_size_per_tag: { - common: false - description: "The size of the cache in bytes to use to detect duplicate tags. The bigger the cache the less likely it is to have a 'false positive' or a case where we allow a new value for tag even after we have reached the configured limits." - relevant_when: "mode = \"probabilistic\"" - required: false - warnings: [] - type: uint: { - default: 5120000 - unit: "bytes" - } - } - limit_exceeded_action: { - common: true - description: "Controls what should happen when a metric comes in with a tag that would exceed the configured limit on cardinality." - required: false - warnings: [] - type: string: { - default: "drop_tag" - enum: { - drop_tag: "Remove tags that would exceed the configured limit from the incoming metric" - drop_event: "Drop any metric events that contain tags that would exceed the configured limit" - } - syntax: "literal" - } - } - mode: { - description: "Controls what approach is used internally to keep track of previously seen tags and deterime when a tag on an incoming metric exceeds the limit." - required: true - warnings: [] - type: string: { - enum: { - exact: "Has higher memory requirements than `probabilistic`, but never falsely outputs metrics with new tags after the limit has been hit." - probabilistic: "Has lower memory requirements than `exact`, but may occasionally allow metric events to pass through the transform even when they contain new tags that exceed the configured limit. The rate at which this happens can be controlled by changing the value of `cache_size_per_tag`." - } - syntax: "literal" - } - } - value_limit: { - common: true - description: "How many distinct values to accept for any given key." - required: false - warnings: [] - type: uint: { - default: 500 - unit: null - } - } - } - - input: { - logs: false - metrics: { - counter: true - distribution: true - gauge: true - histogram: true - set: true - summary: true - } - } - - examples: [ - { - title: "Drop high-cardinality tag" - context: """ - In this example we'll demonstrate how to drop a - high-cardinality tag named `user_id`. Notice that the - second metric's `user_id` tag has been removed. That's - because it exceeded the `value_limit`. - """ - configuration: { - fields: { - value_limit: 1 - limit_exceeded_action: "drop_tag" - } - } - input: [ - {metric: { - kind: "incremental" - name: "logins" - counter: { - value: 2.0 - } - tags: { - user_id: "user_id_1" - } - }}, - {metric: { - kind: "incremental" - name: "logins" - counter: { - value: 2.0 - } - tags: { - user_id: "user_id_2" - } - }}, - ] - output: [ - {metric: { - kind: "incremental" - name: "logins" - counter: { - value: 2.0 - } - tags: { - user_id: "user_id_1" - } - }}, - {metric: { - kind: "incremental" - name: "logins" - counter: { - value: 2.0 - } - tags: {} - }}, - ] - }, - ] - - how_it_works: { - intended_usage: { - title: "Intended Usage" - body: """ - This transform is intended to be used as a protection mechanism to prevent - upstream mistakes. Such as a developer accidentally adding a `request_id` - tag. When this is happens, it is recommended to fix the upstream error as soon - as possible. This is because Vector's cardinality cache is held in memory and it - will be erased when Vector is restarted. This will cause new tag values to pass - through until the cardinality limit is reached again. For normal usage this - should not be a common problem since Vector processes are normally long-lived. - """ - } - - memory_utilization: { - title: "Failed Parsing" - body: """ - This transform stores in memory a copy of the key for every tag on every metric - event seen by this transform. In mode `exact`, a copy of every distinct - value *for each key* is also kept in memory, until `value_limit` distinct values - have been seen for a given key, at which point new values for that key will be - rejected. So to estimate the memory usage of this transform in mode `exact` - you can use the following formula: - - ```text - (number of distinct field names in the tags for your metrics * average length of - the field names for the tags) + (number of distinct field names in the tags of - your metrics * `value_limit` * average length of the values of tags for your - metrics) - ``` - - In mode `probabilistic`, rather than storing all values seen for each key, each - distinct key has a bloom filter which can probabilistically determine whether - a given value has been seen for that key. The formula for estimating memory - usage in mode `probabilistic` is: - - ```text - (number of distinct field names in the tags for your metrics * average length of - the field names for the tags) + (number of distinct field names in the tags of - -your metrics * `cache_size_per_tag`) - ``` - - The `cache_size_per_tag` option controls the size of the bloom filter used - for storing the set of acceptable values for any single key. The larger the - bloom filter the lower the false positive rate, which in our case means the less - likely we are to allow a new tag value that would otherwise violate a - configured limit. If you want to know the exact false positive rate for a given - `cache_size_per_tag` and `value_limit`, there are many free on-line bloom filter - calculators that can answer this. The formula is generally presented in terms of - 'n', 'p', 'k', and 'm' where 'n' is the number of items in the filter - (`value_limit` in our case), 'p' is the probability of false positives (what we - want to solve for), 'k' is the number of hash functions used internally, and 'm' - is the number of bits in the bloom filter. You should be able to provide values - for just 'n' and 'm' and get back the value for 'p' with an optimal 'k' selected - for you. Remember when converting from `value_limit` to the 'm' value to plug - into the calculator that `value_limit` is in bytes, and 'm' is often presented - in bits (1/8 of a byte). - """ - } - - restarts: { - title: "Restarts" - body: """ - This transform's cache is held in memory, and therefore, restarting Vector - will reset the cache. This means that new values will be passed through until - the cardinality limit is reached again. See [intended usage](#intended-usage) - for more info. - """ - } - } - - telemetry: metrics: { - tag_value_limit_exceeded_total: components.sources.internal_metrics.output.metrics.tag_value_limit_exceeded_total - value_limit_reached_total: components.sources.internal_metrics.output.metrics.value_limit_reached_total - } -} diff --git a/docs/reference/components/transforms/tokenizer.cue b/docs/reference/components/transforms/tokenizer.cue deleted file mode 100644 index 470b4f6b63aac..0000000000000 --- a/docs/reference/components/transforms/tokenizer.cue +++ /dev/null @@ -1,138 +0,0 @@ -package metadata - -components: transforms: tokenizer: { - title: "Tokenizer" - description: """ - Tokenizes a field's value by splitting on white space, ignoring special - wrapping characters, and zip the tokens into ordered field names. - """ - - classes: { - commonly_used: true - development: "deprecated" - egress_method: "stream" - stateful: false - } - - features: { - parse: { - format: { - name: "Token Format" - url: null - versions: null - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": true - "aarch64-unknown-linux-musl": true - "armv7-unknown-linux-gnueabihf": true - "armv7-unknown-linux-musleabihf": true - "x86_64-apple-darwin": true - "x86_64-pc-windows-msv": true - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": true - } - requirements: [] - warnings: [ - """ - \(tokenizer._remap_deprecation_notice) - - ```vrl - .message = parse_tokens(.message) - ``` - """, - ] - notices: [] - } - - configuration: { - drop_field: { - common: true - description: "If `true` the `field` will be dropped after parsing." - required: false - warnings: [] - type: bool: default: true - } - field: { - common: true - description: "The log field to tokenize." - required: false - warnings: [] - type: string: { - default: "message" - examples: ["message", "parent.child"] - syntax: "literal" - } - } - field_names: { - description: "The log field names assigned to the resulting tokens, in order." - required: true - warnings: [] - type: array: items: type: string: { - examples: ["timestamp", "level", "message", "parent.child"] - syntax: "literal" - } - } - types: configuration._types - } - - examples: [ - { - title: "Loosely Structured" - configuration: { - field: "message" - field_names: ["remote_addr", "ident", "user_id", "timestamp", "message", "status", "bytes"] - types: { - timestamp: "timestamp" - status: "int" - bytes: "int" - } - } - input: log: { - message: #"5.86.210.12 - zieme4647 [19/06/2019:17:20:49 -0400] "GET /embrace/supply-chains/dynamic/vertical" 201 20574"# - } - output: log: { - remote_addr: "5.86.210.12" - user_id: "zieme4647" - timestamp: "19/06/2019:17:20:49 -0400" - message: "GET /embrace/supply-chains/dynamic/vertical" - status: 201 - bytes: 20574 - } - }, - ] - - input: { - logs: true - metrics: null - } - - how_it_works: { - blank_values: { - title: "Blank Values" - body: #""" - Both `" "` and `"-"` are considered blank values and their mapped fields will - be set to `null`. - """# - } - - special_characters: { - title: "Special Characters" - body: #""" - In order to extract raw values and remove wrapping characters, we must treat - certain characters as special. These characters will be discarded: - - * `"..."` - Quotes are used tp wrap phrases. Spaces are preserved, but the wrapping quotes will be discarded. - * `[...]` - Brackets are used to wrap phrases. Spaces are preserved, but the wrapping brackets will be discarded. - * `\` - Can be used to escape the above characters, Vector will treat them as literal. - """# - } - } - - telemetry: metrics: { - processing_errors_total: components.sources.internal_metrics.output.metrics.processing_errors_total - } -} diff --git a/docs/reference/components/transforms/wasm.cue b/docs/reference/components/transforms/wasm.cue deleted file mode 100644 index b3ce18fc9e926..0000000000000 --- a/docs/reference/components/transforms/wasm.cue +++ /dev/null @@ -1,100 +0,0 @@ -package metadata - -components: transforms: wasm: { - title: "WASM" - - description: """ - Process events using the [WASM](\(urls.wasm)) virtual machine, allowing - you to process Vector events with Typescript, Ruby, Java, and [more](\(urls.wasm_languages)). - """ - - classes: { - commonly_used: false - development: "beta" - egress_method: "stream" - stateful: true - } - - features: { - program: { - runtime: { - name: "WASM" - url: urls.wasm - version: null - } - } - } - - support: { - targets: { - "aarch64-unknown-linux-gnu": false - "aarch64-unknown-linux-musl": false - "armv7-unknown-linux-gnueabihf": false - "armv7-unknown-linux-musleabihf": false - "x86_64-apple-darwin": false - "x86_64-pc-windows-msv": false - "x86_64-unknown-linux-gnu": true - "x86_64-unknown-linux-musl": false - } - - requirements: [ - #""" - Vector must be built with the `wasm` feature. *This is not enabled by default. - Review [Building Vector][urls.contributing]*. - """#, - ] - warnings: [] - notices: [ - """ - Please consider the [`remap` transform](\(urls.vector_remap_transform)) before using this tranform. The - [Vector Remap Language](\(urls.vrl_reference)) is designed for safe, performant, and easy data mapping. It - is intended to cover the vast majority of data mapping use cases leaving WASM for very advanced and - edge-case situations. - """, - ] - } - - configuration: { - artifact_cache: { - description: "The directory where Vector should store the artifact it builds of this WASM module. Typically, all WASM modules share this." - required: true - warnings: [] - type: string: { - examples: [ - "/etc/vector/artifacts", - "/var/lib/vector/artifacts", - "C:\\vector\\artifacts", - ] - syntax: "file_system_path" - } - } - heap_max_size: { - common: false - description: "The maximum size of the heap of this module, in bytes. (This includes the module itself, default is 10 MB.)" - required: false - warnings: [] - type: uint: { - default: 10485760 - unit: "bytes" - } - } - module: { - description: "The file path of the `.wasm` or `.wat` module." - required: true - warnings: [] - type: string: { - examples: [ - "./modules/example.wasm", - "/example.wat", - "example.wasm", - ] - syntax: "file_system_path" - } - } - } - - input: { - logs: true - metrics: null - } -} diff --git a/docs/reference/configuration.cue b/docs/reference/configuration.cue deleted file mode 100644 index f87472a80d74f..0000000000000 --- a/docs/reference/configuration.cue +++ /dev/null @@ -1,166 +0,0 @@ -package metadata - -configuration: { - configuration: #Schema - how_it_works: #HowItWorks -} - -configuration: { - configuration: { - data_dir: { - common: false - description: """ - The directory used for persisting Vector state, such - as on-disk buffers, file checkpoints, and more. - Please make sure the Vector project has write - permissions to this directory. - """ - required: false - type: string: { - default: "/var/lib/vector/" - examples: ["/var/lib/vector", "/var/local/lib/vector/", "/home/user/vector/"] - syntax: "literal" - } - } - - healthchecks: { - common: false - description: """ - Configures health checks for all sinks. - """ - required: false - warnings: [] - type: object: { - examples: [] - options: { - enabled: { - common: true - description: """ - Disables all health checks if false, otherwise sink specific - option overrides it. - """ - required: false - warnings: [] - type: bool: { - default: true - } - } - - require_healthy: { - common: false - description: """ - Exit on startup if any sinks' health check fails. Overridden by - `--require-healthy` command line flag. - """ - required: false - warnings: [] - type: bool: { - default: false - } - } - } - } - } - } - - how_it_works: { - environment_variables: { - title: "Environment variables" - body: """ - Vector will interpolate environment variables within your configuration file - with the following syntax: - - ```toml title="vector.toml" - [transforms.add_host] - type = "add_fields" - - [transforms.add_host.fields] - host = "${HOSTNAME}" - environment = "${ENV:-development}" # default value when not present - ``` - """ - - sub_sections: [ - { - title: "Default values" - body: """ - Default values can be supplied via the `:-` syntax: - - ```toml - option = "${ENV_VAR:-default}" - ``` - """ - }, - { - title: "Escaping" - body: """ - You can escape environment variable by preceding them with a `$` character. For - example `$${HOSTNAME}` will be treated _literally_ in the above environment - variable example. - """ - }, - ] - } - formats: { - title: "Formats" - body: """ - Vector supports [TOML](\(urls.toml)), [YAML](\(urls.yaml)), and [JSON](\(urls.json)) to - ensure Vector fits into your workflow. A side benefit of supporting JSON is the - enablement of data templating languages like [Jsonnet](\(urls.jsonnet)) and - [Cue](\(urls.cue)). - """ - } - location: { - title: "Location" - body: """ - The location of your Vector configuration file depends on your installation method. For most Linux - based systems, the file can be found at `/etc/vector/vector.toml`. - """ - } - multiple: { - title: "Multiple files" - body: """ - You can pass multiple configuration files when starting Vector: - - ```bash - vector --config vector1.toml --config vector2.toml - ``` - - Or use a [globbing syntax](\(urls.globbing)): - - ```bash - vector --config /etc/vector/*.toml - ``` - """ - } - wildcards: { - title: "Wildcards in identifiers" - body: """ - Vector supports wildcards (`*`) in component identifiers when building your topology, but only supports - them as the last character. For example: - - ```toml - [sources.app1_logs] - type = "file" - includes = ["/var/log/app1.log"] - - [sources.app2_logs] - type = "file" - includes = ["/var/log/app.log"] - - [sources.system_logs] - type = "file" - includes = ["/var/log/system.log"] - - [sinks.app_logs] - type = "datadog_logs" - inputs = ["app*"] - - [sinks.archive] - type = "aws_s3" - inputs = ["app*", "system_logs"] - ``` - """ - } - } -} diff --git a/docs/reference/data_model/schema.cue b/docs/reference/data_model/schema.cue deleted file mode 100644 index 64d89233a3bfa..0000000000000 --- a/docs/reference/data_model/schema.cue +++ /dev/null @@ -1,390 +0,0 @@ -package metadata - -data_model: schema: { - log: { - common: true - description: """ - A Vector log event is a structured representation of a - point-in-time event. It contains an arbitrary set of - fields that describe the event. - - A key tenet of Vector is to remain schema neutral. This - ensures that Vector can work with any schema, supporting - legacy and future schemas as your needs evolve. Vector - does not require any specific fields, and each component - will document the fields it provides. - """ - required: false - warnings: [] - type: object: { - examples: [ - { - "host": "my.host.com" - "message": "Hello world" - "timestamp": "2020-11-01T21:15:47+00:00" - "custom": "field" - }, - ] - options: { - "*": { - common: true - description: "An arbitrary set of key/value pairs that can be infinitely nested." - required: false - type: "*": {} - } - } - } - } - - metric: { - common: true - description: """ - A Vector metric event represents a numerical operation - performed on a time series. Unlike other tools, metrics - in Vector are first class citizens, they are not represented - as structured logs. This makes them interoperable with - various metrics services without the need for any - transformation. - - Vector's metric data model favors accuracy and correctness over - ideological purity. Therefore, Vector's metric types are a - conglomeration of various metric types found in the wild, such as - Prometheus and Statsd. This ensures metric data is _correctly_ - interoperable between systems. - """ - required: false - warnings: [] - type: object: { - examples: [] - options: { - counter: { - common: true - description: """ - A single value that can only be incremented - or reset to zero value, it cannot be - decremented. - """ - required: false - warnings: [] - type: object: { - examples: [] - options: { - value: { - description: "The value to increment the counter by. Can only be positive." - required: true - warnings: [] - type: float: { - examples: [1.0, 10.0, 500.0] - } - } - } - } - } - - distribution: { - common: true - description: """ - A distribution represents a distribution of - sampled values. It is used with services - that support global histograms and summaries. - """ - required: false - warnings: [] - type: object: { - examples: [] - options: { - samples: { - description: "The set of sampled values." - required: true - warnings: [] - type: array: items: type: object: { - examples: [] - options: { - rate: { - description: "The rate at which this value was sampled." - required: true - warnings: [] - type: uint: { - examples: [12, 43, 25] - unit: null - } - } - value: { - description: "The value being sampled." - required: true - warnings: [] - // FIXME: making this float, as it should be, makes cue blow up - type: uint: { - // FIXME: Adding even empty examples makes cue blow up - // examples: [12.0, 43.3, 25.2] - unit: null - } - } - } - } - } - statistic: { - description: "The statistic to be calculated from the values." - required: true - warnings: [] - type: string: { - enum: { - histogram: "Counts values in buckets." - summary: "Calculates quantiles of values." - } - syntax: "literal" - } - } - } - } - } - - gauge: { - common: true - description: """ - A gauge represents a point-in-time value - that can increase and decrease. Vector's - internal gauge type represents changes to - that value. Gauges should be used to track - fluctuations in values, like current memory - or CPU usage. - """ - required: false - warnings: [] - type: object: { - examples: [] - options: { - value: { - description: "A specific point-in-time value for the gauge." - required: true - warnings: [] - type: float: { - examples: [1.0, 10.0, 500.0] - } - } - } - } - } - - histogram: { - common: true - description: """ - Also called a "timer". A histogram samples - observations (usually things like request - durations or response sizes) and counts them - in configurable buckets. It also provides a - sum of all observed values. - """ - required: false - warnings: [] - type: object: { - examples: [] - options: { - buckets: { - description: "The set of buckets containing the histogram values." - required: true - warnings: [] - type: array: items: type: object: { - examples: [] - options: { - count: { - description: "The number of values contained within this bucket." - required: true - warnings: [] - type: uint: { - examples: [1, 10, 25, 100] - unit: null - } - } - upper_limit: { - description: "The upper limit of the samples within the bucket." - required: true - warnings: [] - // FIXME: making this float, as it should be, makes cue blow up - type: uint: { - // FIXME: Adding even empty examples makes cue blow up - // examples: [12.0, 43.3, 25.2] - unit: null - } - } - } - } - } - count: { - description: "The total number of values contained within the histogram." - required: true - warnings: [] - type: uint: { - examples: [1, 10, 25, 100] - unit: null - } - } - sum: { - description: "The sum of all values contained within the histogram." - required: true - warnings: [] - type: float: { - examples: [1.0, 10.0, 25.0, 100.0] - } - } - } - } - } - - "kind": { - description: "The metric value kind." - required: true - warnings: [] - type: string: { - enum: { - absolute: "The metric value is absolute and replaces values as it is received downstream." - incremental: "The metric value increments a cumulated value as it is received downstream." - } - syntax: "literal" - } - } - - "name": { - description: "The metric name." - required: true - warnings: [] - type: string: { - examples: ["memory_available_bytes"] - syntax: "literal" - } - } - - "namespace": { - description: "The metric namespace. Depending on the service, this will prepend the name or use native namespacing facilities." - required: true - warnings: [] - type: string: { - examples: ["host", "apache", "nginx"] - syntax: "literal" - } - } - - set: { - common: true - description: """ - A set represents an array of unique values. - """ - required: false - warnings: [] - type: object: { - examples: [] - options: { - values: { - description: "The list of unique values." - required: true - warnings: [] - type: array: items: type: string: { - examples: ["value1", "value2"] - syntax: "literal" - } - } - } - } - } - - summary: { - common: true - description: """ - Similar to a histogram, a summary samples - observations (usually things like request - durations and response sizes). While it also - provides a total count of observations and a - sum of all observed values, it calculates - configurable quantiles over a sliding time - window. - """ - required: false - warnings: [] - type: object: { - examples: [] - options: { - count: { - description: "The total number of values contained within the summary." - required: true - warnings: [] - type: uint: { - examples: [54] - unit: null - } - } - quantiles: { - description: "The set of observations." - required: true - warnings: [] - type: array: items: type: object: { - examples: [] - options: { - value: { - description: "The value of this quantile range." - required: true - warnings: [] - // FIXME: making this float, as it should be, makes cue blow up - type: uint: { - // FIXME: Adding even empty examples makes cue blow up - // examples: [2.1, 4.68, 23.02, 120.1] - unit: null - } - } - upper_limit: { - description: "The upper limit for this quantile range, where 0 ≤ upper_limit ≤ 1." - required: true - warnings: [] - // FIXME: making this float, as it should be, makes cue blow up - type: uint: { - // FIXME: Adding even empty examples makes cue blow up - // examples: [0.1, 0.5, 0.75, 1.0] - unit: null - } - } - } - } - } - sum: { - description: "The sum of all values contained within the histogram." - required: true - warnings: [] - type: float: { - examples: [1.0, 10.0, 25.0, 100.0] - } - } - } - } - } - - tags: { - description: "The metric tags. Key/value pairs, nesting is not allowed." - required: true - warnings: [] - type: object: { - examples: [ - { - "host": "my.host.com" - "instance_id": "abcd1234" - }, - ] - options: { - "*": { - common: true - description: "Key/value pairs, nesting is not allowed." - required: false - type: "*": {} - } - } - } - } - - "timestamp": { - description: "The metric timestamp; when the metric was created." - required: true - warnings: [] - type: timestamp: {} - } - } - } - } -} diff --git a/docs/reference/installation.cue b/docs/reference/installation.cue deleted file mode 100644 index 08fcf8a5491af..0000000000000 --- a/docs/reference/installation.cue +++ /dev/null @@ -1,9 +0,0 @@ -package metadata - -installation: { - downloads: _ - operating_systems: _ - package_managers: _ - platforms: _ - roles: _ -} diff --git a/docs/reference/installation/_interfaces/apt.cue b/docs/reference/installation/_interfaces/apt.cue deleted file mode 100644 index e5133c27cba4e..0000000000000 --- a/docs/reference/installation/_interfaces/apt.cue +++ /dev/null @@ -1,64 +0,0 @@ -package metadata - -installation: _interfaces: apt: { - title: "Apt" - description: """ - [Advanced Package Tool](\(urls.apt)), or APT, is a free package manager - that handles the installation and removal of software on Debian, - Ubuntu, and other Linux distributions. - - Our APT repositories are provided by - [Cloudsmith](\(urls.cloudsmith)) and you - can find [instructions for manually adding - the repositories](\(urls.cloudsmith_apt)). - """ - - archs: ["x86_64", "ARM64", "ARMv7"] - package_manager_name: installation.package_managers.apt.name - paths: { - bin: "/usr/bin/vector" - bin_in_path: true - config: "/etc/vector/vector.{config_format}" - } - - role_implementations: [string]: { - commands: role_implementations._systemd_commands & { - _config_path: paths.config - add_repo: - #""" - curl -1sLf \ - 'https://repositories.timber.io/public/vector/cfg/setup/bash.deb.sh' \ - | sudo -E bash - """# - install: "sudo apt-get install vector" - uninstall: "sudo apt remove vector" - upgrade: "sudo apt-get upgrade vector" - } - tutorials: { - installation: [ - { - title: "Add the Vector repo" - command: commands.add_repo - }, - { - title: "Install Vector" - command: commands.install - }, - { - title: "Configure Vector" - command: commands.configure - }, - { - title: "Restart Vector" - command: commands.restart - }, - ] - } - variables: {} - } - - role_implementations: { - agent: role_implementations._journald_agent - aggregator: role_implementations._vector_aggregator - } -} diff --git a/docs/reference/installation/_interfaces/docker-cli.cue b/docs/reference/installation/_interfaces/docker-cli.cue deleted file mode 100644 index 4af1877d3fc6b..0000000000000 --- a/docs/reference/installation/_interfaces/docker-cli.cue +++ /dev/null @@ -1,96 +0,0 @@ -package metadata - -installation: _interfaces: "docker-cli": { - title: "Docker CLI" - description: """ - The [Docker CLI](\(urls.docker_cli)) is the command line interface to - the Docker platform. It is used to download, start, and manage Docker - images. - """ - - archs: ["x86_64", "ARM64"] - - paths: { - bin: "/usr/bin/vector" - bin_in_path: true - config: "~/vector.{config_format}" - } - - platform_name: "docker" - - role_implementations: [Name=string]: { - _api_port: 8383 - _config_path: paths.config - _docker_sock_path: "/var/run/docker.sock" - commands: { - _config_path: paths.config - install: null - logs: "docker logs -f $(docker ps -aqf \"name=vector\")" - reload: "docker kill --signal=HUP timberio/vector" - restart: "docker restart -f $(docker ps -aqf \"name=vector\")" - start: #""" - docker run \ - -d \ - -v \#(paths.config):/etc/vector/vector.toml:ro \ - -p \#(_api_port):\#(_api_port) \{flags} - timberio/vector:{version}-{variant} - """# - stop: "docker stop timberio/vector" - uninstall: "docker rm timberio/vector timberio/vector" - upgrade: null - } - tutorials: { - installation: [ - { - title: "Configure Vector" - command: commands.configure - }, - { - title: "Start Vector" - command: commands.start - }, - ] - } - variables: { - flags: { - // TODO: Use Cue field comprehensions to generate this list. - // I attempted this but couldn't get cue to compile. - sources: { - aws_kinesis_firehose: "\n -p 443:443 \\" - file: "\n -v /var/log:/var/log \\" - docker: "\n -v \(_docker_sock_path):\(_docker_sock_path) \\" - http: "\n -p 80:80 \\" - heroku_logs: "\n -p 80:80 \\" - socket: "\n -p 9000:9000 \\" - splunk_hec: "\n -p 8080:8080 \\" - statsd: "\n -p 8125:8125 \\" - syslog: "\n -p 514:514 \\" - vector: "\n -p 9000:9000 \\" - } - } - variant: ["debian", "alpine", "distroless"] - version: true - } - } - - role_implementations: { - agent: { - title: "Agent" - description: #""" - The agent role is designed to collect all Docker data on - a single host. Vector runs in its own container - interfacing with the [Docker Engine API](\#(urls.docker_engine_api)) - for log via the [`docker_logs` source](\#(urls.vector_docker_logs_source)) and - metrics via the [`host_metrics` source](\#(urls.vector_host_metrics_source)), - but it is recommended to adjust your pipeline as - necessary using Vector's [sources](\#(urls.vector_sources)), - [transforms](\#(urls.vector_transforms)), and - [sinks](\#(urls.vector_sinks)). - """# - - variables: config: sources: logs: type: "docker_logs" - } - sidecar: role_implementations._file_sidecar - aggregator: role_implementations._vector_aggregator - } -} diff --git a/docs/reference/installation/_interfaces/dpkg.cue b/docs/reference/installation/_interfaces/dpkg.cue deleted file mode 100644 index 09d6d3a2c4af2..0000000000000 --- a/docs/reference/installation/_interfaces/dpkg.cue +++ /dev/null @@ -1,57 +0,0 @@ -package metadata - -installation: _interfaces: dpkg: { - title: "DPKG" - description: """ - [Dpkg](\(urls.dpkg)) is the software that powers the package management - system in the Debian operating system and its derivatives. Dpkg is used - to install and manage software via `.deb` packages. - """ - - archs: ["x86_64", "ARM64", "ARMv7"] - package_manager_name: installation.package_managers.dpkg.name - - paths: { - bin: "/usr/bin/vector" - bin_in_path: true - config: "/etc/vector/vector.{config_format}" - } - - role_implementations: [Name=string]: { - commands: role_implementations._systemd_commands & { - _config_path: paths.config - install: #""" - curl --proto '=https' --tlsv1.2 -O https://packages.timber.io/vector/{version}/vector-{version}-{arch}.deb && \ - sudo dpkg -i vector-{version}-{arch}.deb - """# - uninstall: "sudo dpkg -r vector" - upgrade: null - } - tutorials: { - _commands: _ - installation: [ - { - title: "Install Vector" - command: commands.install - }, - { - title: "Configure Vector" - command: commands.configure - }, - { - title: "Restart Vector" - command: commands.restart - }, - ] - } - variables: { - arch: ["amd64", "arm64", "armhf"] - version: true - } - } - - role_implementations: { - agent: role_implementations._journald_agent - aggregator: role_implementations._vector_aggregator - } -} diff --git a/docs/reference/installation/_interfaces/homebrew.cue b/docs/reference/installation/_interfaces/homebrew.cue deleted file mode 100644 index 7b2570dd83986..0000000000000 --- a/docs/reference/installation/_interfaces/homebrew.cue +++ /dev/null @@ -1,54 +0,0 @@ -package metadata - -installation: _interfaces: homebrew: { - title: "Homebrew" - description: """ - [Homebrew](\(urls.homebrew)) is a free and open-source package - management system that manage software installation and management for - Apple's macOS operating system and other supported Linux systems. - """ - - archs: ["x86_64", "ARM64", "ARMv7"] - package_manager_name: installation.package_managers.homebrew.name - - paths: { - bin: "/usr/local/bin/vector" - bin_in_path: true - config: "/etc/vector/vector.{config_format}" - } - - role_implementations: [Name=string]: { - commands: { - _config_path: paths.config - install: "brew tap timberio/brew && brew install vector" - logs: "tail -f /usr/local/var/log/vector.log" - reload: "killall -s SIGHUP vector" - restart: "brew services restart vector" - start: "brew services start vector" - stop: "brew services stop vector" - uninstall: "brew remove vector" - upgrade: "brew update && brew upgrade vector" - } - tutorials: { - installation: [ - { - title: "Install Vector" - command: commands.install - }, - { - title: "Configure Vector" - command: commands.configure - }, - { - title: "Restart Vector" - command: commands.restart - }, - ] - } - } - - role_implementations: { - agent: role_implementations._file_agent - aggregator: role_implementations._vector_aggregator - } -} diff --git a/docs/reference/installation/_interfaces/msi.cue b/docs/reference/installation/_interfaces/msi.cue deleted file mode 100644 index 2a74a617ffd54..0000000000000 --- a/docs/reference/installation/_interfaces/msi.cue +++ /dev/null @@ -1,68 +0,0 @@ -package metadata - -installation: _interfaces: msi: { - title: "MSI (Windows Installer)" - description: """ - MSI refers to the file format and command line utility for - the [Windows Installer](\(urls.windows_installer)). Windows Installer - (previously known as Microsoft Installer) is an interface for Microsoft - Windows that is used to install and manage software on Windows systems. - """ - - archs: ["x86_64"] - package_manager_name: installation.package_managers.msi.name - paths: { - _dir: #"C:\Program Files\Vector"# - bin: #"\#(_dir)\bin\vector"# - bin_in_path: true - config: #"\#(_dir)\config\vector.{config_format}"# - } - - role_implementations: [Name=string]: { - commands: { - configure: #""" - cat <<-VECTORCFG > \#(paths.config) - {config} - VECTORCFG - """# - install: #""" - powershell Invoke-WebRequest https://packages.timber.io/vector/{version}/vector-{arch}.msi -OutFile vector-{version}-{arch}.msi && \ - msiexec /i vector-{version}-{arch}.msi /quiet - """# - logs: null - reload: null - restart: null - start: #"\#(paths.bin) --config \#(paths.config)"# - stop: null - uninstall: #"msiexec /x {7FAD6F97-D84E-42CC-A600-5F4EC3460FF5} /quiet"# - upgrade: null - } - - tutorials: { - installation: [ - { - title: "Install Vector" - command: commands.install - }, - { - title: "Configure Vector" - command: commands.configure - }, - { - title: "Start Vector" - command: commands.start - }, - ] - } - - variables: { - arch: ["x64"] - version: true - } - } - - role_implementations: { - agent: role_implementations._file_agent - aggregator: role_implementations._vector_aggregator - } -} diff --git a/docs/reference/installation/_interfaces/nix.cue b/docs/reference/installation/_interfaces/nix.cue deleted file mode 100644 index 297db79a1fbb2..0000000000000 --- a/docs/reference/installation/_interfaces/nix.cue +++ /dev/null @@ -1,57 +0,0 @@ -package metadata - -installation: _interfaces: nix: { - title: "Nix" - description: """ - [Nix](\(urls.nix)) is a cross-platform package manager - implemented on a functional deployment model where software is - installed into unique directories generated through - cryptographic hashes, it is also the name of the programming - language. - """ - - archs: ["x86_64", "ARM64", "ARMv7"] - package_manager_name: installation.package_managers.nix.name - - paths: { - bin: "/usr/bin/vector" - bin_in_path: true - config: "/etc/vector/vector.{config_format}" - } - - role_implementations: [Name=string]: { - commands: { - _config_path: paths.config - install: "nix-env --file https://github.com/NixOS/nixpkgs/archive/master.tar.gz --install --attr vector" - logs: null - reload: "killall -s SIGHUP vector" - restart: null - start: #"vector --config \#(paths.config)"# - stop: null - uninstall: "nix-env --uninstall vector" - upgrade: "nix-env --file https://github.com/NixOS/nixpkgs/archive/master.tar.gz --upgrade vector" - } - - tutorials: { - installation: [ - { - title: "Install Vector" - command: commands.install - }, - { - title: "Configure Vector" - command: commands.configure - }, - { - title: "Start Vector" - command: commands.start - }, - ] - } - } - - role_implementations: { - agent: role_implementations._journald_agent - aggregator: role_implementations._vector_aggregator - } -} diff --git a/docs/reference/installation/_interfaces/role_implementations/file_agent.cue b/docs/reference/installation/_interfaces/role_implementations/file_agent.cue deleted file mode 100644 index d7fb2e68ed019..0000000000000 --- a/docs/reference/installation/_interfaces/role_implementations/file_agent.cue +++ /dev/null @@ -1,27 +0,0 @@ -package metadata - -installation: _interfaces: [string]: role_implementations: _file_agent: { - variables: config: { - sources: { - logs: { - type: components.sources.file.type - include: [string, ...string] | *["/var/log/**/*.log"] - } - host_metrics: type: components.sources.host_metrics.type - internal_metrics: type: components.sources.internal_metrics.type - } - } - description: #""" - The agent role is designed to collect all data on - a single host. Vector runs as a background process - and interfaces with a host-level APIs for data - collection. By default, Vector will collect logs - via Vector's [`file` source](\#(urls.vector_journald_source)) and - metrics via the [`host_metrics` source](\#(urls.vector_host_metrics_source)), - but it is recommended to adjust your pipeline as - necessary using Vector's [sources](\#(urls.vector_sources)), - [transforms](\#(urls.vector_transforms)), and - [sinks](\#(urls.vector_sinks)). - """# - title: "Agent" -} diff --git a/docs/reference/installation/_interfaces/role_implementations/file_sidecar.cue b/docs/reference/installation/_interfaces/role_implementations/file_sidecar.cue deleted file mode 100644 index 5285b2308b058..0000000000000 --- a/docs/reference/installation/_interfaces/role_implementations/file_sidecar.cue +++ /dev/null @@ -1,28 +0,0 @@ -package metadata - -installation: _interfaces: [string]: role_implementations: _file_sidecar: { - variables: config: { - sources: { - logs: { - type: components.sources.file.type - include: [string, ...string] | *["/var/log/my-app*.log"] - } - host_metrics: type: components.sources.host_metrics.type - internal_metrics: type: components.sources.internal_metrics.type - } - } - description: #""" - The sidecar role is designed to collect data from - a single process on the same host. By default, we - recommend using the [`file` source](\#(urls.vector_file_source)) - to tail the logs for that individual process, but - you could use the [`stdin` source](\#(urls.vector_stdin_source)), - [`socket` source](\#(urls.vector_socket_source)), or - [`http` source](\#(urls.vector_http_source)). We recommend - adjusting your pipeline as necessary using Vector's - [sources](\#(urls.vector_sources)), - [transforms](\#(urls.vector_transforms)), and - [sinks](\#(urls.vector_sinks)). - """# - title: "Sidecar" -} diff --git a/docs/reference/installation/_interfaces/role_implementations/journald_agent.cue b/docs/reference/installation/_interfaces/role_implementations/journald_agent.cue deleted file mode 100644 index a17493a348b6f..0000000000000 --- a/docs/reference/installation/_interfaces/role_implementations/journald_agent.cue +++ /dev/null @@ -1,25 +0,0 @@ -package metadata - -installation: _interfaces: [string]: role_implementations: _journald_agent: { - variables: config: { - sources: { - logs: type: components.sources.journald.type - host_metrics: type: components.sources.host_metrics.type - internal_metrics: type: components.sources.internal_metrics.type - } - } - description: #""" - The agent role is designed to collect all data on - a single host. Vector runs as a background process - and interfaces with a host-level APIs for data - collection. By default, Vector will collect logs - from [Journald](\#(urls.journald)) via Vector's - [`journald` source](\#(urls.vector_journald_source)) and - metrics via the [`host_metrics` source](\#(urls.vector_host_metrics_source)), - but it is recommended to adjust your pipeline as - necessary using Vector's [sources](\#(urls.vector_sources)), - [transforms](\#(urls.vector_transforms)), and - [sinks](\#(urls.vector_sinks)). - """# - title: "Agent" -} diff --git a/docs/reference/installation/_interfaces/role_implementations/vector_aggregator.cue b/docs/reference/installation/_interfaces/role_implementations/vector_aggregator.cue deleted file mode 100644 index e3c5623601397..0000000000000 --- a/docs/reference/installation/_interfaces/role_implementations/vector_aggregator.cue +++ /dev/null @@ -1,23 +0,0 @@ -package metadata - -installation: _interfaces: [string]: role_implementations: _vector_aggregator: { - variables: config: { - sources: { - vector: type: components.sources.vector.type - internal_metrics: type: components.sources.internal_metrics.type - } - } - description: #""" - The aggregator role is designed to receive and - process data from multiple upstream agents. - Typically these are other Vector agents, but it - could be anything, including non-Vector agents. - By default, we recommend the [`vector` source](\#(urls.vector_source)) - since it supports all data types, but it is - recommended to adjust your pipeline as necessary - using Vector's [sources](\#(urls.vector_sources)), - [transforms](\#(urls.vector_transforms)), and - [sinks](\#(urls.vector_sinks)). - """# - title: "Aggregator" -} diff --git a/docs/reference/installation/_interfaces/rpm.cue b/docs/reference/installation/_interfaces/rpm.cue deleted file mode 100644 index a1090fa9b6974..0000000000000 --- a/docs/reference/installation/_interfaces/rpm.cue +++ /dev/null @@ -1,55 +0,0 @@ -package metadata - -installation: _interfaces: rpm: { - title: "RPM" - description: """ - [RPM Package Manager](\(urls.rpm)) is a free and open-source package - management system for installing and managing software on Fedra, CentOS, - OpenSUSE, OpenMandriva, Red Hat Enterprise Linux, and other - related Linux-based systems. - """ - - archs: ["x86_64", "ARM64", "ARMv7"] - package_manager_name: installation.package_managers.rpm.name - paths: { - bin: "/usr/bin/vector" - bin_in_path: true - config: "/etc/vector/vector.{config_format}" - } - - role_implementations: [Name=string]: { - commands: role_implementations._systemd_commands & { - _config_path: paths.config - install: "sudo rpm -i https://packages.timber.io/vector/{version}/vector-{version}-1.{arch}.rpm" - uninstall: "sudo rpm -e vector" - upgrade: null - } - - tutorials: { - installation: [ - { - title: "Install Vector" - command: commands.install - }, - { - title: "Configure Vector" - command: commands.configure - }, - { - title: "Restart Vector" - command: commands.restart - }, - ] - } - - variables: { - arch: ["x86_64", "aarch64", "armv7"] - version: true - } - } - - role_implementations: { - agent: role_implementations._journald_agent - aggregator: role_implementations._vector_aggregator - } -} diff --git a/docs/reference/installation/_interfaces/vector-installer.cue b/docs/reference/installation/_interfaces/vector-installer.cue deleted file mode 100644 index 84afb97137c88..0000000000000 --- a/docs/reference/installation/_interfaces/vector-installer.cue +++ /dev/null @@ -1,55 +0,0 @@ -package metadata - -installation: _interfaces: "vector-installer": { - title: "Vector Installer" - description: """ - The [Vector installer](\(urls.vector_installer)) is a simple shell - script that facilitates that installation of Vector on a variety of - systems. It is an unobtrusive and simple option since it installs the - `vector` binary in your current direction. - """ - - archs: ["x86_64", "ARM64", "ARMv7"] - paths: { - bin: "./vector" - bin_in_path: false - config: "./vector.{config_format}" - } - - role_implementations: [Name=string]: { - commands: { - _config_path: paths.config - install: "curl --proto '=https' --tlsv1.2 -sSf https://sh.vector.dev | sh" - logs: null - reload: "killall -s SIGHUP vector" - restart: null - start: "vector --config \(paths.config)" - stop: null - uninstall: "rm -rf ./vector" - upgrade: null - } - - tutorials: { - installation: [ - { - title: "Install Vector" - command: commands.install - }, - { - title: "Configure Vector" - command: commands.configure - }, - { - title: "Start Vector" - command: commands.start - }, - ] - } - } - - role_implementations: { - agent: {} - sidecar: role_implementations._file_sidecar - aggregator: role_implementations._vector_aggregator - } -} diff --git a/docs/reference/installation/_interfaces/yum.cue b/docs/reference/installation/_interfaces/yum.cue deleted file mode 100644 index 7db73ce34e05b..0000000000000 --- a/docs/reference/installation/_interfaces/yum.cue +++ /dev/null @@ -1,63 +0,0 @@ -package metadata - -installation: _interfaces: yum: { - title: "YUM" - description: """ - The [Yellowdog Updater](\(urls.yum)), Modified (YUM) is a free and - open-source command-line package-manager for Linux operating system - using the RPM Package Manager. - - Our Yum repositories are provided by - [Cloudsmith](\(urls.cloudsmith)) and you - can find [instructions for manually adding - the repositories](\(urls.cloudsmith_yum)). - """ - - archs: ["x86_64", "ARM64", "ARMv7"] - package_manager_name: installation.package_managers.yum.name - paths: { - bin: "/usr/bin/vector" - bin_in_path: true - config: "/etc/vector/vector.{config_format}" - } - - role_implementations: [Name=string]: { - commands: role_implementations._systemd_commands & { - _config_path: paths.config - add_repo: #""" - curl -1sLf \ - 'https://repositories.timber.io/public/vector/cfg/setup/bash.rpm.sh' \ - | sudo -E bash - """# - install: "sudo yum install vector" - uninstall: "sudo yum remove vector" - upgrade: "sudo yum upgrade vector" - } - - tutorials: { - installation: [ - { - title: "Add the Vector repo" - command: commands.add_repo - }, - { - title: "Install Vector" - command: commands.install - }, - { - title: "Configure Vector" - command: commands.configure - }, - { - title: "Restart Vector" - command: commands.restart - }, - ] - } - } - - role_implementations: { - agent: role_implementations._journald_agent - aggregator: role_implementations._vector_aggregator - } -} diff --git a/docs/reference/installation/downloads.cue b/docs/reference/installation/downloads.cue deleted file mode 100644 index d15ebda3e4644..0000000000000 --- a/docs/reference/installation/downloads.cue +++ /dev/null @@ -1,23 +0,0 @@ -package metadata - -installation: { - #Download: { - available_on_latest: bool - available_on_nightly: bool - arch: #Arch - file_name: string - file_type: string - library: string | null - name: string - os: #OperatingSystemFamily - package_manager?: string - title: "\(os) (\(arch))" - type: "archive" | "package" - } - - #Downloads: [Name=string]: #Download & { - name: Name - } - - downloads: #Downloads -} diff --git a/docs/reference/installation/downloads/aarch64-rpm.cue b/docs/reference/installation/downloads/aarch64-rpm.cue deleted file mode 100644 index 1d8e92fe4bbe7..0000000000000 --- a/docs/reference/installation/downloads/aarch64-rpm.cue +++ /dev/null @@ -1,13 +0,0 @@ -package metadata - -installation: downloads: "aarch64-rpm": { - available_on_latest: true - available_on_nightly: true - arch: "ARM64" - file_name: "vector-{version}-1.aarch64.rpm" - file_type: "rpm" - library: "gnu" - os: "Linux" - package_manager: installation.package_managers.rpm.name - type: "package" -} diff --git a/docs/reference/installation/downloads/aarch64-unknown-linux-musl-tar-gz.cue b/docs/reference/installation/downloads/aarch64-unknown-linux-musl-tar-gz.cue deleted file mode 100644 index 3de1880e1b6bb..0000000000000 --- a/docs/reference/installation/downloads/aarch64-unknown-linux-musl-tar-gz.cue +++ /dev/null @@ -1,12 +0,0 @@ -package metadata - -installation: downloads: "aarch64-unknown-linux-musl-tar-gz": { - available_on_latest: true - available_on_nightly: true - arch: "ARM64" - file_name: "vector-{version}-aarch64-unknown-linux-musl.tar.gz" - file_type: "tar.gz" - library: "musl" - os: "Linux" - type: "archive" -} diff --git a/docs/reference/installation/downloads/amd64-deb.cue b/docs/reference/installation/downloads/amd64-deb.cue deleted file mode 100644 index a9c82c2930409..0000000000000 --- a/docs/reference/installation/downloads/amd64-deb.cue +++ /dev/null @@ -1,13 +0,0 @@ -package metadata - -installation: downloads: "amd64-deb": { - available_on_latest: true - available_on_nightly: true - arch: "x86_64" - file_name: "vector-{version}-amd64.deb" - file_type: "deb" - library: "gnu" - os: "Linux" - package_manager: installation.package_managers.dpkg.name - type: "package" -} diff --git a/docs/reference/installation/downloads/arm64-deb.cue b/docs/reference/installation/downloads/arm64-deb.cue deleted file mode 100644 index ab3da3d428ccd..0000000000000 --- a/docs/reference/installation/downloads/arm64-deb.cue +++ /dev/null @@ -1,13 +0,0 @@ -package metadata - -installation: downloads: "arm64-deb": { - available_on_latest: true - available_on_nightly: true - arch: "ARM64" - file_name: "vector-{version}-arm64.deb" - file_type: "deb" - library: "gnu" - os: "Linux" - package_manager: installation.package_managers.dpkg.name - type: "package" -} diff --git a/docs/reference/installation/downloads/armhf-deb.cue b/docs/reference/installation/downloads/armhf-deb.cue deleted file mode 100644 index 3752a92b68a4e..0000000000000 --- a/docs/reference/installation/downloads/armhf-deb.cue +++ /dev/null @@ -1,13 +0,0 @@ -package metadata - -installation: downloads: "armhf-deb": { - available_on_latest: true - available_on_nightly: true - arch: "ARMv7" - file_name: "vector-{version}-armhf.deb" - file_type: "deb" - library: "gnu" - os: "Linux" - package_manager: installation.package_managers.dpkg.name - type: "package" -} diff --git a/docs/reference/installation/downloads/armv7-rpm.cue b/docs/reference/installation/downloads/armv7-rpm.cue deleted file mode 100644 index 8c7ce809192bf..0000000000000 --- a/docs/reference/installation/downloads/armv7-rpm.cue +++ /dev/null @@ -1,13 +0,0 @@ -package metadata - -installation: downloads: "armv7-rpm": { - available_on_latest: true - available_on_nightly: true - arch: "ARMv7" - file_name: "vector-{version}-1.armv7.rpm" - file_type: "rpm" - library: "gnu" - os: "Linux" - package_manager: installation.package_managers.rpm.name - type: "package" -} diff --git a/docs/reference/installation/downloads/armv7-unknown-linux-gnueabihf-tar-gz.cue b/docs/reference/installation/downloads/armv7-unknown-linux-gnueabihf-tar-gz.cue deleted file mode 100644 index 834b49c909773..0000000000000 --- a/docs/reference/installation/downloads/armv7-unknown-linux-gnueabihf-tar-gz.cue +++ /dev/null @@ -1,12 +0,0 @@ -package metadata - -installation: downloads: "armv7-unknown-linux-gnueabihf-tar-gz": { - available_on_latest: true - available_on_nightly: true - arch: "ARMv7" - file_name: "vector-{version}-armv7-unknown-linux-gnueabihf.tar.gz" - file_type: "tar.gz" - library: "gnu" - os: "Linux" - type: "archive" -} diff --git a/docs/reference/installation/downloads/armv7-unknown-linux-musleabihf-tar-gz.cue b/docs/reference/installation/downloads/armv7-unknown-linux-musleabihf-tar-gz.cue deleted file mode 100644 index 8cc087afdf102..0000000000000 --- a/docs/reference/installation/downloads/armv7-unknown-linux-musleabihf-tar-gz.cue +++ /dev/null @@ -1,12 +0,0 @@ -package metadata - -installation: downloads: "armv7-unknown-linux-musleabihf-tar-gz": { - available_on_latest: true - available_on_nightly: true - arch: "ARMv7" - file_name: "vector-{version}-armv7-unknown-linux-musleabihf.tar.gz" - file_type: "tar.gz" - library: "musl" - os: "Linux" - type: "archive" -} diff --git a/docs/reference/installation/downloads/x64-msi.cue b/docs/reference/installation/downloads/x64-msi.cue deleted file mode 100644 index f5326e452f6ad..0000000000000 --- a/docs/reference/installation/downloads/x64-msi.cue +++ /dev/null @@ -1,13 +0,0 @@ -package metadata - -installation: downloads: "x64-msi": { - available_on_latest: true - available_on_nightly: true - arch: "x86_64" - file_name: "vector-{version}-x64.msi" - file_type: "msi" - library: null - os: "Windows" - package_manager: installation.package_managers.msi.name - type: "package" -} diff --git a/docs/reference/installation/downloads/x86_64-apple-darwin-tar-gz.cue b/docs/reference/installation/downloads/x86_64-apple-darwin-tar-gz.cue deleted file mode 100644 index 3d3087afd0d44..0000000000000 --- a/docs/reference/installation/downloads/x86_64-apple-darwin-tar-gz.cue +++ /dev/null @@ -1,12 +0,0 @@ -package metadata - -installation: downloads: "x86_64-apple-darwin-tar-gz": { - available_on_latest: true - available_on_nightly: true - arch: "x86_64" - file_name: "vector-{version}-x86_64-apple-darwin.tar.gz" - file_type: "tar.gz" - library: null - os: "macOS" - type: "archive" -} diff --git a/docs/reference/installation/downloads/x86_64-pc-windows-msvc-zip.cue b/docs/reference/installation/downloads/x86_64-pc-windows-msvc-zip.cue deleted file mode 100644 index 789c9e44ad389..0000000000000 --- a/docs/reference/installation/downloads/x86_64-pc-windows-msvc-zip.cue +++ /dev/null @@ -1,12 +0,0 @@ -package metadata - -installation: downloads: "x86_64-pc-windows-msvc-zip": { - available_on_latest: true - available_on_nightly: true - arch: "x86_64" - file_name: "vector-{version}-x86_64-pc-windows-msvc.zip" - file_type: "zip" - library: null - os: "Windows" - type: "archive" -} diff --git a/docs/reference/installation/downloads/x86_64-rpm.cue b/docs/reference/installation/downloads/x86_64-rpm.cue deleted file mode 100644 index 116867e32cc42..0000000000000 --- a/docs/reference/installation/downloads/x86_64-rpm.cue +++ /dev/null @@ -1,13 +0,0 @@ -package metadata - -installation: downloads: "x86_64-rpm": { - available_on_latest: true - available_on_nightly: true - arch: "x86_64" - file_name: "vector-{version}-1.x86_64.rpm" - file_type: "rpm" - library: "gnu" - os: "Linux" - package_manager: installation.package_managers.rpm.name - type: "package" -} diff --git a/docs/reference/installation/downloads/x86_64-unknown-linux-musl-tar-gz.cue b/docs/reference/installation/downloads/x86_64-unknown-linux-musl-tar-gz.cue deleted file mode 100644 index 690735e598a6a..0000000000000 --- a/docs/reference/installation/downloads/x86_64-unknown-linux-musl-tar-gz.cue +++ /dev/null @@ -1,12 +0,0 @@ -package metadata - -installation: downloads: "x86_64-unknown-linux-musl-tar-gz": { - available_on_latest: true - available_on_nightly: true - arch: "x86_64" - file_name: "vector-{version}-x86_64-unknown-linux-musl.tar.gz" - file_type: "tar.gz" - library: "musl" - os: "Linux" - type: "archive" -} diff --git a/docs/reference/installation/interfaces.cue b/docs/reference/installation/interfaces.cue deleted file mode 100644 index 1bb3725f7deec..0000000000000 --- a/docs/reference/installation/interfaces.cue +++ /dev/null @@ -1,127 +0,0 @@ -package metadata - -installation: { - #Commands: { - {[Name=string]: string | null} - } & { - _config_path: string | *null - let ConfigPath = _config_path - - _shell: string | *null - let Shell = _shell - - configure: string | null | *"none" - install: string | null - logs: string | null - reload: string | null - restart: string | null - start: string | null - stop: string | null - top: string | null | *"vector top" - uninstall: string - upgrade: string | null - - if Shell == "bash" { - configure: string | *#""" - cat <<-'VECTORCFG' > \#(ConfigPath) - {config} - VECTORCFG - """# - } - - if Shell == "powershell" { - configure: string | *#""" - @" - {config} - "@ | Out-File -FilePath \#(ConfigPath) - """# - } - } - - #Interface: { - _shell: string | *null - let Shell = _shell - - archs: [#Arch, ...#Arch] - description: string - paths: { - bin: string | null - bin_in_path: bool | null - config: string | null - } - role_implementations: { - _systemd_commands: { - logs: "sudo journalctl -fu vector" - reload: "systemctl kill -s HUP --kill-who=main vector.service" - restart: "sudo systemctl restart vector" - start: "sudo systemctl start vector" - stop: "sudo systemctl stop vector" - } - } - role_implementations: #RoleImplementations & {_shell: Shell} - name: string - package_manager_name?: string - platform_name?: string - title: string - } - - #Interfaces: [Name=string]: #Interface & { - name: Name - } - - #RoleImplementation: { - _shell: string | *null - let Shell = _shell - commands: #Commands & {_shell: Shell} - description: string - name: string - title: string - tutorials: #Tutorials - variables: #Variables - } - - #RoleImplementations: [Name=string]: #RoleImplementation & { - name: Name - } - - #Tutorials: { - installation: [...{ - title: string - command: string - }] - } - - #Variables: { - arch?: [string, ...string] - flags?: { - sources?: _ - transforms?: _ - sinks?: _ - } - config: { - api: { - enabled: true - address: "127.0.0.1:8686" - } - - sources: [Name=string]: { - type: string - - if type == "file" { - include: [string, ...string] - } - } - - sinks: out: { - type: "console" - inputs: [string, ...string] | *[ for id, _source in sources {id}] - encoding: codec: "json" - } - } - config_format: ["toml"] - variant?: [string, ...string] - version: bool | *false - } - - _interfaces: #Interfaces -} diff --git a/docs/reference/installation/operating_systems.cue b/docs/reference/installation/operating_systems.cue deleted file mode 100644 index 46423579bf967..0000000000000 --- a/docs/reference/installation/operating_systems.cue +++ /dev/null @@ -1,19 +0,0 @@ -package metadata - -installation: { - #OperatingSystem: { - description: string - family: #OperatingSystemFamily - interfaces: [installation.#Interface & {_shell: shell}, ...installation.#Interface & {_shell: shell}] - minimum_supported_version: string | null - name: string - shell: string - title: string - } - - #OperatingSystems: [Name=string]: #OperatingSystem & { - name: Name - } - - operating_systems: #OperatingSystems -} diff --git a/docs/reference/installation/operating_systems/amazon_linux.cue b/docs/reference/installation/operating_systems/amazon_linux.cue deleted file mode 100644 index aac3ba1bc4f5f..0000000000000 --- a/docs/reference/installation/operating_systems/amazon_linux.cue +++ /dev/null @@ -1,25 +0,0 @@ -package metadata - -installation: operating_systems: "amazon-linux": { - title: "Amazon Linux" - description: """ - The [Amazon Linux AMI](\(urls.amazon_linux)) is a supported and - maintained Linux image provided by Amazon Web Services for use on - Amazon Elastic Compute Cloud (Amazon EC2). It is designed to - provide a stable, secure, and high performance execution - environment for applications running on Amazon EC2. - """ - - interfaces: [ - installation._interfaces.yum, - installation._interfaces.rpm, - installation._interfaces."vector-installer" & { - role_implementations: agent: role_implementations._journald_agent - }, - installation._interfaces."docker-cli", - ] - - family: "Linux" - minimum_supported_version: "1" - shell: "bash" -} diff --git a/docs/reference/installation/operating_systems/centos.cue b/docs/reference/installation/operating_systems/centos.cue deleted file mode 100644 index 316ad8065026a..0000000000000 --- a/docs/reference/installation/operating_systems/centos.cue +++ /dev/null @@ -1,25 +0,0 @@ -package metadata - -installation: operating_systems: centos: { - title: "CentOS" - description: """ - [CentOS](\(urls.centos)) is a Linux distribution that is - functionally compatible with its upstream source, Red Hat Enterprise - Linux. - """ - - interfaces: [ - installation._interfaces.yum, - installation._interfaces.rpm, - installation._interfaces."vector-installer" & { - role_implementations: agent: role_implementations._journald_agent - }, - installation._interfaces."docker-cli", - installation._interfaces."helm3", - installation._interfaces.kubectl, - ] - - family: "Linux" - minimum_supported_version: "6" - shell: "bash" -} diff --git a/docs/reference/installation/operating_systems/debian.cue b/docs/reference/installation/operating_systems/debian.cue deleted file mode 100644 index 0705bb0816b9d..0000000000000 --- a/docs/reference/installation/operating_systems/debian.cue +++ /dev/null @@ -1,25 +0,0 @@ -package metadata - -installation: operating_systems: debian: { - title: "Debian" - description: """ - [Debian](\(urls.debian))), also known as Debian GNU/Linux, is a Linux - distribution composed of free and open-source software, - developed by the community-supported Debian Project. - """ - - interfaces: [ - installation._interfaces.apt, - installation._interfaces.dpkg, - installation._interfaces."vector-installer" & { - role_implementations: agent: role_implementations._journald_agent - }, - installation._interfaces."docker-cli", - installation._interfaces."helm3", - installation._interfaces.kubectl, - ] - - family: "Linux" - minimum_supported_version: "4" - shell: "bash" -} diff --git a/docs/reference/installation/operating_systems/macos.cue b/docs/reference/installation/operating_systems/macos.cue deleted file mode 100644 index f5fcb669e766b..0000000000000 --- a/docs/reference/installation/operating_systems/macos.cue +++ /dev/null @@ -1,22 +0,0 @@ -package metadata - -installation: operating_systems: macos: { - title: "macOS" - description: """ - [macOS](\(urls.macos)) is the primary operating system for Apple's - Mac computers. It is a certified Unix system based on Apple's - Darwin operating system. - """ - - interfaces: [ - installation._interfaces.homebrew, - installation._interfaces."vector-installer" & { - role_implementations: agent: role_implementations._file_agent - }, - installation._interfaces."docker-cli", - ] - - family: "macOS" - minimum_supported_version: "10.5" - shell: "bash" -} diff --git a/docs/reference/installation/operating_systems/nixos.cue b/docs/reference/installation/operating_systems/nixos.cue deleted file mode 100644 index 43ffe1177b159..0000000000000 --- a/docs/reference/installation/operating_systems/nixos.cue +++ /dev/null @@ -1,21 +0,0 @@ -package metadata - -installation: operating_systems: nixos: { - title: "NixOS" - description: """ - [NixOS](\(urls.nixos)) is a Linux distribution built on top of the - Nix package manager. It uses declarative configuration and - allows reliable system upgrades. - """ - - interfaces: [ - installation._interfaces.nix, - installation._interfaces."vector-installer" & { - role_implementations: agent: role_implementations._journald_agent - }, - installation._interfaces."docker-cli", - ] - family: "Linux" - minimum_supported_version: "15.09" - shell: "bash" -} diff --git a/docs/reference/installation/operating_systems/rhel.cue b/docs/reference/installation/operating_systems/rhel.cue deleted file mode 100644 index 2a6e5cb49e7ac..0000000000000 --- a/docs/reference/installation/operating_systems/rhel.cue +++ /dev/null @@ -1,24 +0,0 @@ -package metadata - -installation: operating_systems: rhel: { - title: "RHEL" - description: """ - [Red Hat Enterprise Linux](\(urls.rhel)) is a Linux distribution - developed by Red Hat for the commercial market. - """ - - interfaces: [ - installation._interfaces.yum, - installation._interfaces.rpm, - installation._interfaces."vector-installer" & { - role_implementations: agent: role_implementations._journald_agent - }, - installation._interfaces."docker-cli", - installation._interfaces."helm3", - installation._interfaces.kubectl, - ] - - family: "Linux" - minimum_supported_version: "4" - shell: "bash" -} diff --git a/docs/reference/installation/operating_systems/ubuntu.cue b/docs/reference/installation/operating_systems/ubuntu.cue deleted file mode 100644 index 305b22b722cb6..0000000000000 --- a/docs/reference/installation/operating_systems/ubuntu.cue +++ /dev/null @@ -1,23 +0,0 @@ -package metadata - -installation: operating_systems: ubuntu: { - title: "Ubuntu" - description: """ - [Ubuntu](\(urls.ubuntu)) is a Linux distribution based on Debian. - """ - - interfaces: [ - installation._interfaces.apt, - installation._interfaces.dpkg, - installation._interfaces."vector-installer" & { - role_implementations: agent: role_implementations._journald_agent - }, - installation._interfaces."docker-cli", - installation._interfaces."helm3", - installation._interfaces.kubectl, - ] - - family: "Linux" - minimum_supported_version: "14.04" - shell: "bash" -} diff --git a/docs/reference/installation/operating_systems/windows.cue b/docs/reference/installation/operating_systems/windows.cue deleted file mode 100644 index 522512d13a9b4..0000000000000 --- a/docs/reference/installation/operating_systems/windows.cue +++ /dev/null @@ -1,21 +0,0 @@ -package metadata - -installation: operating_systems: windows: { - title: "Windows" - description: """ - [Microsoft Windows](\(urls.windows)) is an operating system - developed and sold by Microsoft. - """ - - interfaces: [ - installation._interfaces.msi, - installation._interfaces."vector-installer" & { - role_implementations: agent: role_implementations._file_agent - }, - installation._interfaces."docker-cli", - ] - - family: "Windows" - minimum_supported_version: "7" - shell: "powershell" -} diff --git a/docs/reference/installation/package_managers/apt.cue b/docs/reference/installation/package_managers/apt.cue deleted file mode 100644 index eff23228370ab..0000000000000 --- a/docs/reference/installation/package_managers/apt.cue +++ /dev/null @@ -1,6 +0,0 @@ -package metadata - -installation: package_managers: apt: { - title: "APT" - description: installation._interfaces.apt.description -} diff --git a/docs/reference/installation/package_managers/dpkg.cue b/docs/reference/installation/package_managers/dpkg.cue deleted file mode 100644 index 1960e8f446d67..0000000000000 --- a/docs/reference/installation/package_managers/dpkg.cue +++ /dev/null @@ -1,6 +0,0 @@ -package metadata - -installation: package_managers: dpkg: { - title: "DPKG" - description: installation._interfaces.dpkg.description -} diff --git a/docs/reference/installation/package_managers/helm.cue b/docs/reference/installation/package_managers/helm.cue deleted file mode 100644 index 2474548b7b309..0000000000000 --- a/docs/reference/installation/package_managers/helm.cue +++ /dev/null @@ -1,6 +0,0 @@ -package metadata - -installation: package_managers: helm: { - title: "Helm" - description: installation._interfaces."helm3".description -} diff --git a/docs/reference/installation/package_managers/homebrew.cue b/docs/reference/installation/package_managers/homebrew.cue deleted file mode 100644 index d47b1f958aa33..0000000000000 --- a/docs/reference/installation/package_managers/homebrew.cue +++ /dev/null @@ -1,6 +0,0 @@ -package metadata - -installation: package_managers: homebrew: { - title: "Homebrew" - description: installation._interfaces.homebrew.description -} diff --git a/docs/reference/installation/package_managers/msi.cue b/docs/reference/installation/package_managers/msi.cue deleted file mode 100644 index c4bc0ac3cb78f..0000000000000 --- a/docs/reference/installation/package_managers/msi.cue +++ /dev/null @@ -1,6 +0,0 @@ -package metadata - -installation: package_managers: msi: { - title: "MSI" - description: installation._interfaces.msi.description -} diff --git a/docs/reference/installation/package_managers/nix.cue b/docs/reference/installation/package_managers/nix.cue deleted file mode 100644 index 622ce3feb2365..0000000000000 --- a/docs/reference/installation/package_managers/nix.cue +++ /dev/null @@ -1,6 +0,0 @@ -package metadata - -installation: package_managers: nix: { - title: "Nix" - description: installation._interfaces.nix.description -} diff --git a/docs/reference/installation/package_managers/rpm.cue b/docs/reference/installation/package_managers/rpm.cue deleted file mode 100644 index 83ec6c627d27f..0000000000000 --- a/docs/reference/installation/package_managers/rpm.cue +++ /dev/null @@ -1,6 +0,0 @@ -package metadata - -installation: package_managers: rpm: { - title: "RPM" - description: installation._interfaces.rpm.description -} diff --git a/docs/reference/installation/package_managers/yum.cue b/docs/reference/installation/package_managers/yum.cue deleted file mode 100644 index e203252d9b8d4..0000000000000 --- a/docs/reference/installation/package_managers/yum.cue +++ /dev/null @@ -1,6 +0,0 @@ -package metadata - -installation: package_managers: yum: { - title: "YUM" - description: installation._interfaces.yum.description -} diff --git a/docs/reference/installation/platforms.cue b/docs/reference/installation/platforms.cue deleted file mode 100644 index 85d5ff85eac3a..0000000000000 --- a/docs/reference/installation/platforms.cue +++ /dev/null @@ -1,17 +0,0 @@ -package metadata - -installation: { - #Platform: { - description: string - how_it_works: #HowItWorks - minimum_supported_version: string | null - name: string - title: string - } - - #Platforms: [Name=string]: #Platform & { - name: Name - } - - platforms: #Platforms -} diff --git a/docs/reference/installation/platforms/docker.cue b/docs/reference/installation/platforms/docker.cue deleted file mode 100644 index b36dfdf6cc051..0000000000000 --- a/docs/reference/installation/platforms/docker.cue +++ /dev/null @@ -1,15 +0,0 @@ -package metadata - -installation: platforms: docker: { - title: "Docker" - description: """ - [Docker](\(urls.docker)) is an open platform for developing, shipping, and running - applications and services. Docker enables you to separate your services from - your infrastructure so you can ship quickly. With Docker, you can manage your - infrastructure in the same ways you manage your services. By taking advantage - of Docker's methodologies for shipping, testing, and deploying code quickly, - you can significantly reduce the delay between writing code and running it in - production. - """ - minimum_supported_version: null -} diff --git a/docs/reference/installation/platforms/kubernetes.cue b/docs/reference/installation/platforms/kubernetes.cue deleted file mode 100644 index 5f7bcde025252..0000000000000 --- a/docs/reference/installation/platforms/kubernetes.cue +++ /dev/null @@ -1,29 +0,0 @@ -package metadata - -installation: platforms: kubernetes: { - title: "Kubernetes" - description: """ - [Kubernetes](\(urls.kubernetes)), also known as k8s, is an - open-source container-orchestration system for automating - application deployment, scaling, and management. - """ - minimum_supported_version: "1.14" - - how_it_works: { - components.sources.kubernetes_logs.how_it_works - - metrics: { - title: "Metrics" - body: """ - Our Helm chart deployments provide quality of life around setup and maintenance of - metrics pipelines in Kubernetes. Each of the Helm charts provide an `internal_metrics` - source and `prometheus` sink out of the box. Agent deployments also expose `host_metrics` - via the same `prometheus` sink. - - Charts come with options to enable Prometheus integration via annotations or Prometheus Operator - integration via PodMonitor. Thus, the Prometheus node_exporter agent is not required when the `host_metrics` source is - enabled. - """ - } - } -} diff --git a/docs/reference/installation/roles/agent.cue b/docs/reference/installation/roles/agent.cue deleted file mode 100644 index 4de4b9cfc1e55..0000000000000 --- a/docs/reference/installation/roles/agent.cue +++ /dev/null @@ -1,26 +0,0 @@ -package metadata - -installation: roles: agent: { - title: "Agent" - sub_roles: { - daemon: { - title: "Daemon" - description: """ - The daemon role is designed to collect _all_ data on a single host. This is - the recommended role for data collection since it the most efficient use - of host resources. Vector implements a directed acyclic graph topology model, - enabling the collection and processing from mutliple services. - """ - } - sidecar: { - title: "Sidecar" - description: """ - The sidecar role couples Vector with each service, focused on data collection - for that individual service only. While the deamon role is recommended, the - sidecar role is beneficial when you want to shift reponsibility of data - collection to the service owner. And, in some cases, it can be simpler to - manage. - """ - } - } -} diff --git a/docs/reference/installation/roles/aggregator.cue b/docs/reference/installation/roles/aggregator.cue deleted file mode 100644 index 382dee17bb031..0000000000000 --- a/docs/reference/installation/roles/aggregator.cue +++ /dev/null @@ -1,15 +0,0 @@ -package metadata - -installation: roles: aggregator: { - title: "Aggregator" - description: """ - The aggregator role is designed for central processing, collecting data from - multiple upstream sources and performing cross-host aggregation and analysis. - - For Vector, this role should be reserved for exactly that: cross-host aggregation - and analysis. Vector is unique in the fact that it can serve both as an agent - and aggregator. This makes it possible to distribute processing along the edge - (recommended). We highly recommend pushing processing to the edge when possible - since it is more efficient and easier to manage. - """ -} diff --git a/docs/reference/process.cue b/docs/reference/process.cue deleted file mode 100644 index 81d9d3e627db9..0000000000000 --- a/docs/reference/process.cue +++ /dev/null @@ -1,45 +0,0 @@ -package metadata - -process: { - #ExitCode: { - code: int - description: string - } - - #ExitCodes: [Name=string]: #ExitCode - - #Signal: { - description: string - name: string - } - - #Signals: [Name=string]: #Signal & {name: Name} - - exit_codes: #ExitCodes - signals: #Signals - - exit_codes: { - "0": { - code: 0 - description: "Exited successfully." - } - "1": { - code: 1 - description: "Exited with a generic error." - } - "78": { - code: 78 - description: "Configuration is invalid." - } - } - - signals: { - SIGHUP: { - description: "Reloads configuration on the fly." - } - - SIGTERM: { - description: "Initiates graceful shutdown process." - } - } -} diff --git a/docs/reference/releases.cue b/docs/reference/releases.cue deleted file mode 100644 index 95b6cc1e098c7..0000000000000 --- a/docs/reference/releases.cue +++ /dev/null @@ -1,30 +0,0 @@ -package metadata - -releases: { - #Commit: { - author: string - breaking_change: bool - date: #Date - description: string - deletions_count: uint - files_count: uint - insertions_count: uint - pr_number: uint | null - scopes: [string, ...string] | *[] - sha: #CommitSha - type: "chore" | "docs" | "enhancement" | "feat" | "fix" | "perf" | "status" - } - - #CommitSha: =~"^[a-z0-9]{40}$" - - #Release: { - codename: string - date: string - description?: string - - commits: [#Commit, ...#Commit] - whats_next: #Any - } - - {[Name=string]: #Release} -} diff --git a/docs/reference/releases/0.10.0.cue b/docs/reference/releases/0.10.0.cue deleted file mode 100644 index 2e9ff4b16c91d..0000000000000 --- a/docs/reference/releases/0.10.0.cue +++ /dev/null @@ -1,336 +0,0 @@ -package metadata - -releases: "0.10.0": { - date: "2020-07-23" - codename: "Lamport Clock" - - whats_next: [ - { - title: "Kubernetes! ⎈" - description: "We're doing this integration right. We've been alpha testing with a number of large clusters and we've honed in on a very high-quality approach that reflects the UX Vector is going after. You can learn more in our [Kubernetes Integration RFC][urls.pr_2222]. Do you want to beta test? [Tell us!][urls.vector_chat]" - }, - { - title: "WASM plugins 🔌" - description: "This release included an experimental implementation of a WASM transform behind a `wasm` build flag. We plan to stabilize WASM transforms, as well as add [WASM][urls.wasm] sinks and sources, enabling you to extend Vector in the language of your choice with little performance penalty. ❤️ WASM. Check out the [WASM Plugin RFC][urls.pr_2341] for more info." - }, - { - title: "Dynamic HTTP Rate-Limiting (AIMD)" - description: "Fiddling with rate-limits is a frustrating endaevor. If you set them too high you risk overwhelming the service; too low and you're unecessarily limiting throughput. What happens if you deploy a few more Vector instances? Vector is planning to solve this by automatically detecting the optimal rate limits, taking inspiration from TCP congestional control algorithms. Check out the [Dynamic HTTP Rate Limiting RFC][urls.pr_2329]." - }, - ] - - commits: [ - {sha: "591114c96e8c6e4d0470c5419f77c6faf2524ade", date: "2020-04-21 19:50:49 +0000", description: "Add `sourcetype`", pr_number: 2318, scopes: ["splunk_hec sink"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 45, deletions_count: 0}, - {sha: "020ee000b0b21d9d56fbc2b81b2fbb43b4c780e9", date: "2020-04-21 16:28:51 +0000", description: "Remove `proptest` dep", pr_number: 2379, scopes: ["deps"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 0, deletions_count: 58}, - {sha: "639a21d07fe049735b174bc96cd78fae5b995a23", date: "2020-04-21 14:49:20 +0000", description: "New `generator` source", pr_number: 2286, scopes: ["new source"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 17, insertions_count: 546, deletions_count: 6}, - {sha: "4c8d5a1921815a9efac9f9d40f97fb9c4a44e437", date: "2020-04-21 16:57:51 +0000", description: "Bump cargo.toml version to `0.10.0`", pr_number: 2386, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "397a20d6dcf413ad66c248a8427c580f30e2a783", date: "2020-04-21 16:03:39 +0000", description: "carve a seam around leveldb", pr_number: 2363, scopes: ["buffers"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 172, deletions_count: 109}, - {sha: "5ad6db51805e1225a6ecf3dfed4ce13a63ab587b", date: "2020-04-21 17:29:31 +0000", description: "Correct timer example errors", pr_number: 2391, scopes: ["lua transform"], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 11, insertions_count: 139, deletions_count: 183}, - {sha: "bcf1bfd2ea371d4414f9762790b22efcd1fc00b9", date: "2020-04-21 22:05:58 +0000", description: "Add authentication section", pr_number: 2399, scopes: ["gcp provider"], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 5, insertions_count: 72, deletions_count: 14}, - {sha: "21ff9b55f6a9298889bb8b0c4f440282f1fb9197", date: "2020-04-22 17:21:29 +0000", description: "Upgrade `service` and `retries` in sink util", pr_number: 2362, scopes: ["networking"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 7, insertions_count: 598, deletions_count: 125}, - {sha: "632f62c61defb7970b5d29dc11050a595e8848b2", date: "2020-04-22 17:59:33 +0000", description: "Schema Guide", pr_number: 1745, scopes: ["config"], type: "docs", breaking_change: false, author: "Ana Hobden", files_count: 3, insertions_count: 683, deletions_count: 0}, - {sha: "14c9ae89bd6204ceb952f871e380507d06792f86", date: "2020-04-23 15:27:51 +0000", description: "Upgrade rustc 1.43.0", pr_number: 2422, scopes: ["deps"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "e20ed1d5b9638cef0eb6392d0c485b20a0b312cb", date: "2020-04-24 12:08:18 +0000", description: "Cancel previous builds automatically", pr_number: 2442, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 4, insertions_count: 19, deletions_count: 3}, - {sha: "55d8c9f1dabf75ce7b198ef26761d0707d4b2b6b", date: "2020-04-24 16:34:38 +0000", description: "Optimize CI test workflow with slim builds", pr_number: 2440, scopes: ["operations"], type: "feat", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 147, deletions_count: 89}, - {sha: "86d8f7f68bd55b30f817a938e8511ae35642906a", date: "2020-04-26 14:38:17 +0000", description: "Stylize tests/Makefile", pr_number: 2450, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 90, deletions_count: 80}, - {sha: "2593a8a627985c9a78daa99d75f53ab4b43395e7", date: "2020-04-26 14:49:47 +0000", description: "Use specific target names in Makefile", pr_number: 2451, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 645, deletions_count: 621}, - {sha: "509567996e2fb0b0454fb7b317785065db4fcc97", date: "2020-04-26 15:17:34 +0000", description: "Allow the invocation of local script from the tests/Makefile", pr_number: 2452, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 59, deletions_count: 5}, - {sha: "980798ab0a94fe58097930d1d6060fe762261b17", date: "2020-04-26 18:24:35 +0000", description: "Point CI GHA workflow to tests/Makefile", pr_number: 2453, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 18, insertions_count: 377, deletions_count: 198}, - {sha: "c2d947b60aa3990ba9a3d9dcb84707f7d39a693c", date: "2020-04-26 19:30:15 +0000", description: "Add missing loki integration test", pr_number: 2457, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 4, insertions_count: 23, deletions_count: 0}, - {sha: "ce7699a34078355ee54bccbea1aba039545c5147", date: "2020-04-26 20:34:58 +0000", description: "Add aws-integration-tests & gcp-integration-tests feature", pr_number: 2458, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 10, insertions_count: 23, deletions_count: 26}, - {sha: "874f36d2d6dec52d74b43818d144393e678d7a0f", date: "2020-04-26 23:57:56 +0000", description: "Point nightly GHA workflow to tests/Makefile", pr_number: 2456, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 5, insertions_count: 224, deletions_count: 127}, - {sha: "0ff1bf36f313e9a0498b2e6a95d7860e918d886e", date: "2020-04-27 01:14:25 +0000", description: "Remove old kubernetes tests", pr_number: 2462, scopes: ["tests"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 1, deletions_count: 155}, - {sha: "a38ca109ded52378f89c25d61673ad2af1fd767a", date: "2020-04-27 08:52:11 +0000", description: "Move /tests/Makefile to /Makefile", pr_number: 2460, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 11, insertions_count: 279, deletions_count: 444}, - {sha: "cd1d3b752b0d7abdecfa0e77b59dc33150a18908", date: "2020-04-27 11:26:42 +0000", description: "Ignore `RUSTSEC-2020-0014`", pr_number: 2465, scopes: ["security"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "65d3973ecec71343f03038d5b23acf64dcc07f25", date: "2020-04-27 11:54:00 +0000", description: "Add rpm builds to nightly workflow", pr_number: 2463, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 47, deletions_count: 0}, - {sha: "5d40749dc25fcf4b62e8dc30dc9e3bd0865ced6a", date: "2020-04-27 12:40:03 +0000", description: "Upgrade `snafu` to `0.6`", pr_number: 2466, scopes: ["deps"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 11, deletions_count: 19}, - {sha: "03c1947e025fbe01aec1d85071520087a29e0bc7", date: "2020-04-27 14:14:18 +0000", description: "Fix unit test failure in CI", pr_number: 2470, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "0f3c187af8656e47cbc228ab2db52683248cae25", date: "2020-04-27 22:21:38 +0000", description: "Fix typo at nightly CI workflow", pr_number: 2472, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "a8b631eecdb0b73942b1880a6322787a8c838b1c", date: "2020-04-27 14:59:45 +0000", description: "add new isolated buffer benchmarks", pr_number: 2447, scopes: ["buffers"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 209, deletions_count: 5}, - {sha: "f3a5814a97f9cca746bc845709372659a7739d72", date: "2020-04-27 22:28:48 +0000", description: "Fix nightly builds", pr_number: 2471, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 8, insertions_count: 258, deletions_count: 158}, - {sha: "d0d2d53f55bae6800fa200d4e567d25f11b0e80e", date: "2020-04-28 13:47:20 +0000", description: "add profiling instructions", pr_number: 2416, scopes: [], type: "docs", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 77, deletions_count: 0}, - {sha: "c39b89fe13b23b9f7698b8fb774376b2720feffc", date: "2020-04-28 13:43:08 +0000", description: "Encoding config accessor visibility reduction", pr_number: 2153, scopes: [], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 17, insertions_count: 411, deletions_count: 354}, - {sha: "6b44597fa84ea4efe5835837f445cd9cae0e386f", date: "2020-04-29 15:25:17 +0000", description: "Fix local unit test execution", pr_number: 2490, scopes: ["operations"], type: "chore", breaking_change: false, author: "Matthias", files_count: 1, insertions_count: 5, deletions_count: 1}, - {sha: "338c83d091452804206e141a0001757ad1db8b78", date: "2020-04-29 16:53:09 +0000", description: "Fix some typos in contribution documentation", pr_number: 2494, scopes: [], type: "docs", breaking_change: false, author: "Matthias", files_count: 1, insertions_count: 10, deletions_count: 11}, - {sha: "89edb5acc50a13dccbd985dce33dcfab51c8556a", date: "2020-04-29 11:46:53 +0000", description: "Update `request.retry_limit` default to 18446744073709551615", pr_number: 2498, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 66, insertions_count: 346, deletions_count: 285}, - {sha: "fa371f5c3a4835f5169eb380e5dec290b718682a", date: "2020-04-29 20:35:37 +0000", description: "Prevent docker from creating directories and files as root", pr_number: 2486, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 6, insertions_count: 85, deletions_count: 15}, - {sha: "58a551d5487e871b4116610330f4afa471c0a3f4", date: "2020-04-29 12:40:52 +0000", description: "Add `overwrite` option", pr_number: 2485, scopes: ["add_fields transform", "add_tags transform"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 9, insertions_count: 177, deletions_count: 21}, - {sha: "3905c2803f9c409d751f98bc28653fa228df3b01", date: "2020-04-30 11:36:12 +0000", description: "Finish git merge", pr_number: 2502, scopes: [], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 0, deletions_count: 8}, - {sha: "0903f68eb6a96dcf164ef55dddccb20f8f14d0df", date: "2020-04-30 10:14:10 +0000", description: "Fix batch options", pr_number: 2397, scopes: ["aws_cloudwatch_logs sink"], type: "docs", breaking_change: false, author: "Lucio Franco", files_count: 4, insertions_count: 17, deletions_count: 17}, - {sha: "cfc418e69476e383c8786c3de8191a5a7eaeb732", date: "2020-04-30 12:27:19 +0000", description: "Temporarily remove Kubernetes components to clear the way for the new integration", pr_number: 2488, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 15, insertions_count: 1, deletions_count: 3599}, - {sha: "ed8abcd2dbf17b95cb015a345d4bbe46af33e0ba", date: "2020-04-30 10:41:14 +0000", description: "RFC #1858 - 2020-04-06 - Automatic rate limit adjustment", pr_number: 2329, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 327, deletions_count: 0}, - {sha: "fb489a72543b986dcb5a9420581ed3d203eaecb0", date: "2020-04-30 13:41:06 +0000", description: "Kubernetes Integration RFC", pr_number: 2222, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 4, insertions_count: 4429, deletions_count: 0}, - {sha: "0d4d6b6e0579e5562591b06193aaae1ea41caf13", date: "2020-05-01 18:35:38 +0000", description: "Add retries to the verification of the release artifacts", pr_number: 2509, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 35, deletions_count: 9}, - {sha: "9fd3831ef66bd28c8a794507b346ed832c9b5aa6", date: "2020-05-01 19:34:40 +0000", description: "RPM build fix", pr_number: 2522, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 2, insertions_count: 32, deletions_count: 14}, - {sha: "7d33ddc9ee4e59da09c847f3c5492609e4e50354", date: "2020-05-01 20:20:30 +0000", description: "do not create /LICENSE and /README.md at RPM package", pr_number: 2524, scopes: ["rpm platform"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 2, deletions_count: 4}, - {sha: "e01fc0b69c335efb426aaee30dc9bec442c99ea2", date: "2020-05-01 20:54:20 +0000", description: "Dynamically derive the list of paths to create at target", pr_number: 2525, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 22}, - {sha: "8d1f6205e1b262d6111b1d27df0c1f95fe7b6563", date: "2020-05-01 14:12:17 +0000", description: "Run entire healthcheck lazily", pr_number: 2501, scopes: ["kafka sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 3, deletions_count: 1}, - {sha: "2937c46e0f8f061c120a8c21840cc3101434266c", date: "2020-05-01 14:12:35 +0000", description: "Properly detect shutdown", pr_number: 2429, scopes: ["socket sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 142, deletions_count: 6}, - {sha: "105ab797c02e0b6787fd56667d020beb80df3e88", date: "2020-05-01 14:37:02 +0000", description: "Align Github Actions workflows with the files changed", pr_number: 2517, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 7, insertions_count: 130, deletions_count: 99}, - {sha: "4b0da62cdd66a464ba9479f012cda2f4f16e2a9f", date: "2020-05-03 22:43:00 +0000", description: "replace OrigID with OrgID", pr_number: 2536, scopes: ["loki sink"], type: "fix", breaking_change: false, author: "Alexandre NICOLAIE", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "1fc8869ac1f58f20ef3b53186bfb1ae4f5506383", date: "2020-05-04 22:46:16 +0000", description: "Iterate over target dirs to avoid missing mapall command on macOS", pr_number: 2539, scopes: ["operations"], type: "fix", breaking_change: false, author: "Matthias", files_count: 1, insertions_count: 10, deletions_count: 6}, - {sha: "e888f3b12f21d5d7d7c50f8bde893950ca631105", date: "2020-05-04 23:33:17 +0000", description: "Shutdown Vector if all sources finish", pr_number: 2533, scopes: ["topology"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 70, deletions_count: 6}, - {sha: "d187a7b4cf6989b5aa1a251a1c9f736c44983675", date: "2020-05-04 16:43:21 +0000", description: "add batching to disk buffer reads", pr_number: 2481, scopes: ["buffers"], type: "perf", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 16, deletions_count: 9}, - {sha: "ec2ec165b95b3022ca4615fb2eb29b5953ad1a29", date: "2020-05-04 16:26:33 +0000", description: "Add support for negating conditions in check_fields", pr_number: 2514, scopes: ["filter transform", "swimlanes transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 6, insertions_count: 161, deletions_count: 4}, - {sha: "a9090b6bc5a8bcd4ce2928eb588e3b1da8e8e9ba", date: "2020-05-05 11:01:46 +0000", description: "Upgrade deny action", pr_number: 2544, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "b5c6bbe5700be1084c32b84d58a1a63f21ce816b", date: "2020-05-05 11:20:28 +0000", description: "Fix rustfmt", pr_number: 2545, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "61c03b65118359e1fd729a0e23f5925c5306f87b", date: "2020-05-05 09:32:16 +0000", description: "Add explicit AWS region", pr_number: 2532, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 134, deletions_count: 21}, - {sha: "4089b39a6c06b54a2d62d141d70230ed140e9b83", date: "2020-05-05 15:10:39 +0000", description: "Upgrade openssl to `1.1.1g`", pr_number: 2546, scopes: ["security"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 4, deletions_count: 4}, - {sha: "70085092e04cf35315375cf1083c363f8677ca9e", date: "2020-05-05 15:57:40 +0000", description: "Disable `check-version` check", pr_number: 2548, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 6, deletions_count: 5}, - {sha: "3e4360a2db28b1837e49933e3a6a23b29f97b136", date: "2020-05-05 23:32:12 +0000", description: "Add shellcheck to CI and correct scripts", pr_number: 2482, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 49, insertions_count: 419, deletions_count: 360}, - {sha: "a084309ba69e09e415dbb2eccdbcddd03438c9b8", date: "2020-05-06 02:00:58 +0000", description: "Remove the .github/workflows/install-script.yml", pr_number: 2549, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 0, deletions_count: 17}, - {sha: "a61ab97208c5b40c4cc242ac69d395e11b263838", date: "2020-05-05 17:32:16 +0000", description: "Add support for include/exclude units", pr_number: 2540, scopes: ["journald source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 4, insertions_count: 195, deletions_count: 58}, - {sha: "746792f79f64316214de9fee8d7ba6dfaf6f6cae", date: "2020-05-06 10:18:04 +0000", description: "Wire `ShutdownSignal`", pr_number: 2366, scopes: ["stdin source"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 111, deletions_count: 40}, - {sha: "505b688fa0c596d77e8de5c870894f399b818c51", date: "2020-05-06 12:24:51 +0000", description: "Use post requests", pr_number: 2547, scopes: ["datadog_metrics sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 67, deletions_count: 10}, - {sha: "4026a74c7a7bfb1986c8bcb5d13600c937715290", date: "2020-05-06 16:09:56 +0000", description: "Upgrade internal rusoto utilities", pr_number: 2555, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 292, deletions_count: 2}, - {sha: "a2681967063bedfe5eb9f0754b7e197ad14bc885", date: "2020-05-07 15:21:57 +0000", description: "Kubernetes test procedure", pr_number: 2487, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 9, insertions_count: 315, deletions_count: 8}, - {sha: "3a2b5264eaaebf18edb50a4f8a05b59d91ec7aff", date: "2020-05-07 16:00:08 +0000", description: "Upgrade to rustc `1.43.1`", pr_number: 2563, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "234045737b7e695984a7128a3f6afa1e81f120f6", date: "2020-05-11 17:42:16 +0000", description: "Set minimal supported Kubernetes version", pr_number: 2510, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 7, deletions_count: 0}, - {sha: "2bb9384585dc7b75b77ec08e594e9fa1b742b99b", date: "2020-05-11 19:22:08 +0000", description: "Send time in . format", pr_number: 2570, scopes: ["splunk_hec sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 54, deletions_count: 24}, - {sha: "bda112212cc31cf4ee00788d8199158c78a413d3", date: "2020-05-11 19:24:19 +0000", description: "Improve check-advisories CI job", pr_number: 2571, scopes: ["operations"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 1, deletions_count: 2}, - {sha: "184ee0cc29a9870d8cef7d5158293299833242c7", date: "2020-05-11 20:57:38 +0000", description: "Force disable k8s tests in CI", pr_number: 2574, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "c35a0e9c8d31bd77cd8850523c5486ce48535f40", date: "2020-05-11 17:09:12 +0000", description: "Add `BatchedHttpSink` back to `http2`", pr_number: 2573, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 138, deletions_count: 1}, - {sha: "a43aaaae839bd4c4b6ba0e5e83da3a32793872fd", date: "2020-05-11 19:51:08 +0000", description: "Upgrade `clickhouse`", pr_number: 2578, scopes: ["clickhouse sink"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 34, deletions_count: 31}, - {sha: "8d2a54f71b3ef6004c2902e55530f9eb58c8ea3f", date: "2020-05-12 17:27:49 +0000", description: "Copying docker images directly to minikube VMs", pr_number: 2575, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 3, insertions_count: 76, deletions_count: 11}, - {sha: "1b732b42b159930bb0d3db5d7df1337596768fdc", date: "2020-05-12 15:31:08 +0000", description: "remove superfluous warning", pr_number: 2583, scopes: ["humio_logs sink"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 0, deletions_count: 3}, - {sha: "4392307dee63d0d6852d8ed13bd68b87a5b0898d", date: "2020-05-12 16:00:10 +0000", description: "remove unused import", pr_number: 2582, scopes: ["tests"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "9fa5847b281a94d1b0c4e1b6031674f9fa9b0d6a", date: "2020-05-12 20:44:36 +0000", description: "remove id key from body", pr_number: 2581, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 17, deletions_count: 14}, - {sha: "2c8a818aec48d3eab662a24245e006e157b7643a", date: "2020-05-13 08:34:58 +0000", description: "Fix `units`/`include_units` switch ", pr_number: 2567, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "0e878251716da1434e32320a835b3d3763f580fb", date: "2020-05-13 08:50:10 +0000", description: "Test `vector` shutdown", pr_number: 2558, scopes: ["topology"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 13, insertions_count: 497, deletions_count: 24}, - {sha: "a61e0d5e947b9ee85b8778bb362c220146705777", date: "2020-05-13 11:29:53 +0000", description: "Mark GeneratorConfig::repeat with #[allow(dead_code)]", pr_number: 2586, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "aa67dfe65e33bbf8e686add0ee0a5645a5f13f0f", date: "2020-05-13 13:03:10 +0000", description: "Update shutdown deadlines", pr_number: 2534, scopes: ["topology"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 11, deletions_count: 12}, - {sha: "6858984ca4fb107ee05eaa9bd008747514f6b4de", date: "2020-05-13 13:53:40 +0000", description: "Use `localhost` for `prometheus` shutdown test", pr_number: 2589, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 7, deletions_count: 2}, - {sha: "b26a0e984aa5955743c1c0d6cd53c383a58534d3", date: "2020-05-13 18:10:10 +0000", description: "Generalize file server around paths provider", pr_number: 2541, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 6, insertions_count: 168, deletions_count: 89}, - {sha: "c4e6de5b4cffc4aeee6c8c5cd4129fd110a0fc20", date: "2020-05-13 09:59:26 +0000", description: "Fix possible infinite loop decoding too-long lines", pr_number: 2587, scopes: ["socket sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 45, deletions_count: 28}, - {sha: "0cdc500049ac6f587767105ce60bbc9a30458305", date: "2020-05-13 21:50:14 +0000", description: "Add RegexSet support to regex", pr_number: 2493, scopes: ["regex_parser transform"], type: "enhancement", breaking_change: false, author: "Matthias", files_count: 8, insertions_count: 161, deletions_count: 55}, - {sha: "d93eea0e37af25f5a650f9497f2c636d6228efff", date: "2020-05-13 23:07:42 +0000", description: "Fix default values for buffer", pr_number: 2590, scopes: ["config"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 62, deletions_count: 2}, - {sha: "3f0012e789b0b9a00d5c3a9c6994110cef64dbef", date: "2020-05-13 16:13:53 +0000", description: "Allow removed keys to be used for partitioning", pr_number: 2591, scopes: ["aws_s3 sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 25, deletions_count: 1}, - {sha: "484ba4cda42db38330698eacd05c781e212861d6", date: "2020-05-13 18:38:34 +0000", description: "log parse errors as warnings", pr_number: 2593, scopes: ["json_parser transform"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "97b589ab5f54393c1919cf644fad814ab705325b", date: "2020-05-14 03:32:32 +0000", description: "Mute k8s tests", pr_number: 2594, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 3, deletions_count: 0}, - {sha: "0a0f8d5b6478237d7402ca9e356c9ff4ea6f8497", date: "2020-05-14 16:36:00 +0000", description: "Fix newline for check-fmt", pr_number: 2602, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "c02a0f77d328e1d4fee02095a2f1abfb4c3c09a7", date: "2020-05-14 15:25:22 +0000", description: "Add support for templates in the topic config", pr_number: 2598, scopes: ["kafka sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 4, insertions_count: 25, deletions_count: 8}, - {sha: "c39377cebd7809c25940d2578f49571735ac4aae", date: "2020-05-15 18:13:38 +0000", description: "Error on auth section and Auth header", pr_number: 2611, scopes: ["http sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 34, deletions_count: 4}, - {sha: "43af8d01f6c966a65c35f12b2ef7d309ecb4c326", date: "2020-05-15 14:02:07 +0000", description: "Enable tls by default", pr_number: 2527, scopes: ["datadog_logs sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 13, deletions_count: 15}, - {sha: "1eaee144b7be0da821c172486f3079f8e5e7c5a4", date: "2020-05-15 12:13:04 +0000", description: "Fixup loki tests", pr_number: 2613, scopes: ["tests"], type: "fix", breaking_change: false, author: "Ana Hobden", files_count: 3, insertions_count: 3, deletions_count: 3}, - {sha: "e5e5b06c7ec80905302b73407f1255a9aac4a5ea", date: "2020-05-18 17:53:45 +0000", description: "Fix invalid link in JSON Parser transform", pr_number: 2624, scopes: [], type: "docs", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 3, deletions_count: 5}, - {sha: "f758963ad28a698a35d772ea8d0cea3d9c2ef46c", date: "2020-05-18 19:17:37 +0000", description: "Build archives, DEB, and RPM packages with glibc", pr_number: 2518, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 13, insertions_count: 136, deletions_count: 74}, - {sha: "6281932469d9bcef34edaf672b52edc804d49732", date: "2020-05-19 11:16:28 +0000", description: "Remove race between sink and source", pr_number: 2619, scopes: ["tests"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 45, deletions_count: 18}, - {sha: "b2eaa5673caa2cead25e47b1c0536b6894433077", date: "2020-05-20 00:55:27 +0000", description: "Replace http:// to https://", pr_number: 2646, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 45, insertions_count: 88, deletions_count: 88}, - {sha: "6d420f852e959f822c60c09b5466317d3438f62d", date: "2020-05-20 19:04:10 +0000", description: "Fix the bug with channel closing at file server", pr_number: 2652, scopes: ["file source"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 3, insertions_count: 31, deletions_count: 17}, - {sha: "741690a7e8dc50f9aecf5fe451d1a1fa4b0046c0", date: "2020-05-20 23:25:10 +0000", description: "Instrument few more components with metrics", pr_number: 2620, scopes: ["internal_metrics source"], type: "feat", breaking_change: false, author: "Alex", files_count: 9, insertions_count: 158, deletions_count: 9}, - {sha: "6a4ac1723b845c083d33cfe6eb683c6e7531ffee", date: "2020-05-20 15:03:19 +0000", description: "Fix the Kafka TLS key parameter handling", pr_number: 2658, scopes: ["kafka sink", "kafa source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 22, deletions_count: 2}, - {sha: "9f9ec375f5f4a2947041f9c3528f13ab17ac1e2b", date: "2020-05-20 17:23:53 +0000", description: "add bearer auth strategy", pr_number: 2607, scopes: ["http sink"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 9, insertions_count: 149, deletions_count: 14}, - {sha: "4a5c201428e20e4ab3aed7f88e7e124124a64719", date: "2020-05-21 01:42:38 +0000", description: "Check if `transform`/`sink` is present", pr_number: 2617, scopes: ["topology"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 110, deletions_count: 13}, - {sha: "5d993333eb67bc05996cf6d77e94296a27bc537e", date: "2020-05-21 17:46:21 +0000", description: "Add uint type", pr_number: 2659, scopes: [], type: "docs", breaking_change: false, author: "Kirill Fomichev", files_count: 67, insertions_count: 586, deletions_count: 585}, - {sha: "1d8e88057f68d9cf9292ddc9edb69a7f8d3b3f92", date: "2020-05-22 02:13:16 +0000", description: "Debug package-deb", pr_number: 2665, scopes: ["dpkg platform"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "e0761a9681da6b7e8cb69c750c41a7be89d24fed", date: "2020-05-24 20:28:28 +0000", description: "Shutdown starting from `tcp` and `unix` sockets ", pr_number: 2618, scopes: ["sources"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 10, insertions_count: 366, deletions_count: 101}, - {sha: "2a4181c6c65ad1606d31c5fe9408964656a3bc7e", date: "2020-05-25 16:53:32 +0000", description: "Improve compression option", pr_number: 2637, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 33, insertions_count: 315, deletions_count: 271}, - {sha: "54ab97f632b0054e464426c9a088d492dec8d0ec", date: "2020-05-25 07:37:03 +0000", description: "Rate limit TCP connection errors, downgrade their severity", pr_number: 2669, scopes: ["vector source"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "fcff9e8989ef8c1f7ed69fad6fee23d4cb9d4d31", date: "2020-05-25 16:41:17 +0000", description: "Avoid hanging on timers", pr_number: 2672, scopes: ["lua transform"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 5, insertions_count: 120, deletions_count: 4}, - {sha: "b88207cbb5d333e418fdcbe42e9a0bb1e390c6ab", date: "2020-05-25 16:44:56 +0000", description: "Initial `influxdb_logs` sink implementation", pr_number: 2474, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Jakub Bednář", files_count: 41, insertions_count: 5582, deletions_count: 1447}, - {sha: "5904a3e2e6011b1bc616ef236528d3c320f04a3a", date: "2020-05-25 20:09:38 +0000", description: "Fix buffer compression", pr_number: 2679, scopes: ["influxdb_logs sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 10, deletions_count: 3}, - {sha: "77002bbacde7562bc78843eb3a831e3ed5a657eb", date: "2020-05-26 02:37:36 +0000", description: "Display free space at package deb task", pr_number: 2686, scopes: ["dpkg platform"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 3, deletions_count: 0}, - {sha: "b0746e5f8d304bcc23a0b2121239e68263da667f", date: "2020-05-26 13:36:27 +0000", description: "bump activesupport from 6.0.2.1 to 6.0.3.1 in /scripts", pr_number: 2689, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot[bot]", files_count: 1, insertions_count: 7, deletions_count: 7}, - {sha: "ad5575a94a8dbf4a0c0f408bfe4b9160450818ef", date: "2020-05-27 20:39:29 +0000", description: "Upgrade `HttpSink` based sinks", pr_number: 2688, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 20, insertions_count: 324, deletions_count: 300}, - {sha: "c4787acb8846f2492c1a0f923ea4acc0823112d2", date: "2020-05-27 11:58:19 +0000", description: "Add support for loading multiple CAs", pr_number: 2616, scopes: ["security"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 7, insertions_count: 286, deletions_count: 73}, - {sha: "29735f052cbea36db06d6db4db137114294ad50c", date: "2020-05-27 14:05:25 +0000", description: "Three KafkaCompression typos in tests", pr_number: 2694, scopes: ["kafka sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "92ce87953af8d5f235187b7ee6c8309d4d4d623f", date: "2020-05-28 01:37:43 +0000", description: "Fix default host value", pr_number: 2683, scopes: ["humio_logs sink"], type: "docs", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 5, deletions_count: 5}, - {sha: "a7d760307f6126c8c24a8cd43fe07f46c3fcc637", date: "2020-05-28 17:18:16 +0000", description: "Cleanup the leftovers of the old k8s implementation", pr_number: 2676, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 9, insertions_count: 5, deletions_count: 133}, - {sha: "19dd0a0589faf976c831fd3f9e8d961e3064e47d", date: "2020-05-28 11:16:31 +0000", description: "RFC #2341 - 2020-04-15 - WASM Plugins Support", pr_number: 2341, scopes: [], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 3, insertions_count: 1388, deletions_count: 0}, - {sha: "cacfb9319adb0d802894b1f187367a18f26d8773", date: "2020-05-28 15:16:54 +0000", description: "Reorder Tower service layers", pr_number: 2703, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "c86d9a095234af0a08d9d2684b2eb9b84cedf3a8", date: "2020-05-29 01:35:55 +0000", description: "A script to install git hooks", pr_number: 2650, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 2, insertions_count: 16, deletions_count: 1}, - {sha: "f6e0eb2eb87fe874d56261d61522fdc2928d8966", date: "2020-05-28 15:52:48 +0000", description: "Add `hostname` and `source_ip`", pr_number: 2663, scopes: ["syslog source"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 4, insertions_count: 93, deletions_count: 204}, - {sha: "1fbd2ffd87125390a2441b14bb5efbda6c2e1e92", date: "2020-05-29 08:59:51 +0000", description: "Add dev workflow simplification rfc", pr_number: 2685, scopes: ["platforms"], type: "feat", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 253, deletions_count: 0}, - {sha: "ce25c9446c7326dd20ebef88089ea59ab98d7b71", date: "2020-05-29 12:49:18 +0000", description: "Update syslog_loose to 0.3.0", pr_number: 2709, scopes: ["syslog source"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 3, insertions_count: 6, deletions_count: 6}, - {sha: "8e8339fb8682e49c8b64bd6db1b6a3bfac8100bb", date: "2020-06-02 17:07:03 +0000", description: "Fix data_dir default value in global options", pr_number: 2720, scopes: [], type: "docs", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 9, deletions_count: 6}, - {sha: "94c6bdc7ff2013a17cdd07ca8eff039891c5f028", date: "2020-06-02 18:22:22 +0000", description: "Remove extra slash on Uri join", pr_number: 2711, scopes: ["splunk_hec sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 17, deletions_count: 10}, - {sha: "ac62a2ac65ea6a60cfde3debb312f2528a7f1e0b", date: "2020-06-02 19:02:15 +0000", description: "Use `test_util::runtime()` in tests", pr_number: 2715, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 31, insertions_count: 145, deletions_count: 147}, - {sha: "3c3b8021e49a445f0c7d69b2e21b227be65cd075", date: "2020-06-02 19:07:37 +0000", description: "Test with `default` feature in CI", pr_number: 2721, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 6, insertions_count: 46, deletions_count: 3}, - {sha: "1c27da72c959419c36f44ed1aa53a1c1668bc196", date: "2020-06-02 18:21:13 +0000", description: "Fix check-markdown job", pr_number: 2727, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 29, deletions_count: 16}, - {sha: "724e830f2085c58101ad3160dffee3a609f6c7d6", date: "2020-06-02 16:25:15 +0000", description: "Add support for inline TLS keys", pr_number: 2724, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 28, insertions_count: 800, deletions_count: 715}, - {sha: "f697d46f5b6b2bd69f42721d4f59e7752e454346", date: "2020-06-02 18:26:54 +0000", description: "Split website workflow into generate and blog", pr_number: 2728, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 31, deletions_count: 10}, - {sha: "d5e988a1bd402a84d736de3b61594c43a9a646c5", date: "2020-06-03 02:34:52 +0000", description: "Add compression to humio and new_relic", pr_number: 2682, scopes: ["humio sink", "new relic sink"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 7, insertions_count: 112, deletions_count: 2}, - {sha: "12480b546614824a06e4415b723923e5e73dd9df", date: "2020-06-04 22:23:06 +0000", description: "Only log `200`-`299` responses as successful", pr_number: 2714, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 8, insertions_count: 52, deletions_count: 15}, - {sha: "35b7e563faca817950dd947803f606f0a4fc4d3e", date: "2020-06-05 19:34:36 +0000", description: "Fix wrong example in tokenizer module (version 0.9.1)", pr_number: 2716, scopes: [], type: "docs", breaking_change: false, author: "xluffy", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "4c77fc18af8db47db6138f149b45b1d4ced4354b", date: "2020-06-05 18:10:49 +0000", description: "Fix integration test", pr_number: 2698, scopes: ["kafka sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "54093b76eb06a077b70c0f1d98b53f5c85cd981b", date: "2020-06-05 11:11:42 +0000", description: "Add new EncodingConfig", pr_number: 2671, scopes: ["pulsar sink"], type: "fix", breaking_change: false, author: "Evan Cameron", files_count: 1, insertions_count: 14, deletions_count: 11}, - {sha: "57c3d91abbf5fc33d4473d7557d5b1248b7620bf", date: "2020-06-07 19:36:18 +0000", description: "Upgrade `hyper`", pr_number: 2754, scopes: ["prometheus sink"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 25, deletions_count: 19}, - {sha: "88aac3c6daf0480d2a4f03b0957462a2b06cb44a", date: "2020-06-07 21:49:37 +0000", description: "Add into", pr_number: 2759, scopes: ["pulsar sink"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "0d750f0804beccd59533a5ded16d24be7e9efd77", date: "2020-06-08 00:57:27 +0000", description: "Upgrade `hyper`", pr_number: 2761, scopes: ["splunk_hec source"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 11, deletions_count: 11}, - {sha: "c56b365d53c161dd499c41f04bd15bb7c08a4d8b", date: "2020-06-08 10:24:23 +0000", description: "Upgrade `hyper`", pr_number: 2758, scopes: ["gcp_cloud_storage sink"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 106, deletions_count: 39}, - {sha: "ee86731a755abe3c5d119f78dd89bae0eaaca6e8", date: "2020-06-08 17:20:48 +0000", description: "Updade rusoto", pr_number: 2735, scopes: ["aws_kinesis_firehose sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 8, insertions_count: 628, deletions_count: 166}, - {sha: "3d5177cc4dd28df31fc38c39287177cadaa1f9d0", date: "2020-06-08 11:28:25 +0000", description: "increment request id", pr_number: 2765, scopes: ["sinks"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "569c066397d51d6be903fc5a7567c9619b705f9a", date: "2020-06-08 11:07:29 +0000", description: "Handle templates with invalid strftime elements", pr_number: 2737, scopes: ["config"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 12, insertions_count: 183, deletions_count: 92}, - {sha: "654a5addb3808aac7a117b77cafac7785d2dcd3f", date: "2020-06-08 20:26:38 +0000", description: "Make throttling errors retryable", pr_number: 2752, scopes: ["aws_cloudwatch_sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 8, deletions_count: 0}, - {sha: "4ff1774a10a9a4ace5cdb14977d5aeef0bb20ea5", date: "2020-06-08 22:29:51 +0000", description: "Add clippy to CI", pr_number: 2576, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 15, insertions_count: 130, deletions_count: 3}, - {sha: "d6962ee12e60944be5501409a8b4443b33b694d8", date: "2020-06-09 00:16:30 +0000", description: "Upgrade `hyper`", pr_number: 2760, scopes: ["influxdb_metrics sink"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 27, deletions_count: 23}, - {sha: "23ba0dc395c5af4b64babb0e27a308d8b246c85d", date: "2020-06-08 18:17:25 +0000", description: "bump websocket-extensions from 0.1.3 to 0.1.4 in /website", pr_number: 2756, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot[bot]", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "3163beea3722a8ef765ce90524c330a6f6200988", date: "2020-06-09 12:34:35 +0000", description: "Upgrade `hyper`", pr_number: 2762, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 8, insertions_count: 115, deletions_count: 131}, - {sha: "6502b1f811d1f35b3694a9cf911681d280491a1c", date: "2020-06-09 18:12:34 +0000", description: "Upgrade `hyper`", pr_number: 2763, scopes: ["aws_ec2_metadata transform"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 25, deletions_count: 15}, - {sha: "d36c0a42407e1db52022b28dd4fa0d3030f5899a", date: "2020-06-09 18:16:07 +0000", description: "add pipeline config", pr_number: 2734, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "francesco palazzini", files_count: 4, insertions_count: 61, deletions_count: 1}, - {sha: "2132d6ee5de752a18c559c2d30f736b412fb8514", date: "2020-06-10 12:25:08 +0000", description: "Consolidate and beautify `validate` ", pr_number: 2622, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 14, insertions_count: 500, deletions_count: 266}, - {sha: "fd1ddefd4304de3f16542cc871ec8f65f13b2535", date: "2020-06-10 10:44:34 +0000", description: "Drop excessive large events", pr_number: 2770, scopes: ["aws_cloudwatch_logs sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 37, deletions_count: 24}, - {sha: "6137b3d82599aa41a653c3bd2c61b8733f8df1ac", date: "2020-06-10 21:30:06 +0000", description: "Convert pipe to variables to debug 141 (broken pipe) error", pr_number: 2772, scopes: ["dpkg platform"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 5, deletions_count: 4}, - {sha: "5706d2a7076ebee4d10b8d5caf8d90fb68ddda4a", date: "2020-06-11 10:06:49 +0000", description: "Introduce WASM Plugins", pr_number: 2006, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Ana Hobden", files_count: 105, insertions_count: 4214, deletions_count: 58}, - {sha: "d518c29dd244e60c5c2a940670104c4259693d4a", date: "2020-06-11 14:32:59 +0000", description: "upgrade tower-limit to fix rate limiting", pr_number: 2779, scopes: ["sinks"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "71f0d07ae0a39940c3c7c0ef90dc55c157343485", date: "2020-06-11 14:54:36 +0000", description: "Introduce Dev Workflow improvements", pr_number: 2723, scopes: ["operations"], type: "feat", breaking_change: false, author: "Ana Hobden", files_count: 46, insertions_count: 1395, deletions_count: 846}, - {sha: "03ca67662342a43d9fb2a83c301464747742ac05", date: "2020-06-12 18:10:59 +0000", description: "Log when components finish normally", pr_number: 2801, scopes: [], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 5, deletions_count: 3}, - {sha: "e7e1b39c75992d406cb90cfeafce5bdef8625e3e", date: "2020-06-12 22:17:58 +0000", description: "fix aws integration tests ci", pr_number: 2792, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 4, insertions_count: 35, deletions_count: 33}, - {sha: "a1d8d8de56f3b63d4aae41536d17914792039695", date: "2020-06-13 10:36:01 +0000", description: "tower update", pr_number: 2805, scopes: ["statsd sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 24, deletions_count: 17}, - {sha: "61599531c8b2b7f4f1d9e01bd5126820b87a171a", date: "2020-06-13 10:42:21 +0000", description: "update rusoto to 0.44.0", pr_number: 2806, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 6, insertions_count: 359, deletions_count: 336}, - {sha: "9efa014dd303301640f73fc930ef939a42fdb666", date: "2020-06-13 19:56:02 +0000", description: "Don't finish when timers finish", pr_number: 2809, scopes: ["lua transform"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 40, deletions_count: 4}, - {sha: "c71b5b55ae00ddbd888fbae78c479f261c2e305a", date: "2020-06-14 18:28:03 +0000", description: "Update hyper", pr_number: 2808, scopes: ["prometheus source"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 5, insertions_count: 32, deletions_count: 23}, - {sha: "1d3fa878a8ac3258cfa3dffe550cb850b6a1e656", date: "2020-06-15 13:17:12 +0000", description: "Update hyper in tests", pr_number: 2817, scopes: ["prometheus source"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 23, deletions_count: 15}, - {sha: "55587bebd915a2a7b80c1fa74a18a63d53f99cd7", date: "2020-06-15 06:44:35 +0000", description: "bump regex from 1.3.5 to 1.3.9", pr_number: 2818, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 2, insertions_count: 5, deletions_count: 5}, - {sha: "151e7584ef8d1ab4eaf7f7a6a4ac843db48b8755", date: "2020-06-15 18:34:39 +0000", description: "update goauth to new futures", pr_number: 2819, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 95, deletions_count: 20}, - {sha: "60d1eea7b096876e995b8326128595fefb398882", date: "2020-06-15 08:44:02 +0000", description: "Note on wasm", pr_number: 2804, scopes: ["wasm transform"], type: "docs", breaking_change: false, author: "Ana Hobden", files_count: 6, insertions_count: 28, deletions_count: 2}, - {sha: "4ff2772444f21f8b4071e40200e1598616cdbd99", date: "2020-06-15 18:48:34 +0000", description: "improve time validation in tests", pr_number: 2803, scopes: ["humio_logs sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 12, deletions_count: 3}, - {sha: "11c29d5ea32108672e329de584bc669f5be8de09", date: "2020-06-15 11:57:36 +0000", description: "Adding list of string as filter option", pr_number: 2745, scopes: ["filter transform"], type: "feat", breaking_change: false, author: "Bill", files_count: 6, insertions_count: 286, deletions_count: 76}, - {sha: "18717d642ebdbdb4ba22a23dd9b0256ad12a8703", date: "2020-06-15 19:30:30 +0000", description: "Bump rust-toolchain to 1.44.0", pr_number: 2813, scopes: ["deps"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 6, insertions_count: 6, deletions_count: 10}, - {sha: "fcf3868c0005a449080beb298c8526bf5587b232", date: "2020-06-15 10:45:28 +0000", description: "bump maxminddb from 0.13.0 to 0.14.0", pr_number: 2791, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "3e2ab7da5554a554d31f4f05526d0f562d5a309e", date: "2020-06-15 10:47:30 +0000", description: "bump tokio-codec from 0.1.1 to 0.1.2", pr_number: 2783, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "bb1241a765a116df8c1582a447d5e168b790f56b", date: "2020-06-15 21:19:21 +0000", description: "Add missed option", pr_number: 2662, scopes: [], type: "docs", breaking_change: false, author: "Kirill Fomichev", files_count: 7, insertions_count: 80, deletions_count: 18}, - {sha: "f9cb2186ed2254a9b87c2a9fa5f33c5fc6dabc94", date: "2020-06-15 12:40:13 +0000", description: "Add severity key", pr_number: 2732, scopes: ["gcp_stackdriver_logs sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 6, insertions_count: 228, deletions_count: 6}, - {sha: "1603fdc4dba0ba49a20b277bb03bfa4522bffed4", date: "2020-06-16 20:21:02 +0000", description: "Fix tcp+tls hang on tcp detect read", pr_number: 2566, scopes: ["socket sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 8, insertions_count: 92, deletions_count: 68}, - {sha: "6d15ec5a78f84641bba152cc924f0f7b098c899c", date: "2020-06-16 13:58:06 +0000", description: "RFC #2768 - 2020-06-12 - Batch and Buffer Rework", pr_number: 2802, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 133, deletions_count: 0}, - {sha: "267019ee140d4f4975f4de9706a8daef428b9780", date: "2020-06-16 15:47:02 +0000", description: "Fix typo integration tests", pr_number: 2832, scopes: ["kafka sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "6d4a8f4a70af95bffb6564175f7a0a43e1d524d9", date: "2020-06-17 13:39:01 +0000", description: "Allow disconnected components, and split `start` step", pr_number: 2793, scopes: ["topology"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 153, deletions_count: 46}, - {sha: "b5de68d7f7b7299e6789f89f74ae20f41d3cd6ce", date: "2020-06-17 12:35:20 +0000", description: "More usable event RFC", pr_number: 2692, scopes: ["operations"], type: "feat", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 222, deletions_count: 0}, - {sha: "3ee64020dd9673cef0a8eab9605fe590b9948708", date: "2020-06-17 12:43:58 +0000", description: "Fix names of RFCs.", pr_number: 2839, scopes: [], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 4, insertions_count: 2, deletions_count: 2}, - {sha: "6819865a7550d32a2cbdc30de7b66c13b5a5cee3", date: "2020-06-17 15:38:26 +0000", description: "bump typetag from 0.1.4 to 0.1.5", pr_number: 2835, scopes: [], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 4, deletions_count: 4}, - {sha: "2ddf266397f8c67ccc3e77d8ab5ebe2849d4d62e", date: "2020-06-17 16:36:21 +0000", description: "bump assert_cmd from 0.11.1 to 1.0.1", pr_number: 2829, scopes: [], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 3, insertions_count: 16, deletions_count: 18}, - {sha: "4c3ba3e4bf09b259e446d2c13b50678552731f02", date: "2020-06-17 17:22:53 +0000", description: "Use flat JSON parser inserts, add regression test.", pr_number: 2823, scopes: ["json_parser transform"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 2, insertions_count: 34, deletions_count: 1}, - {sha: "c0438da3c166d3718b8275d2a5858d8fb1767435", date: "2020-06-17 17:23:36 +0000", description: "bump criterion from 0.3.1 to 0.3.2", pr_number: 2827, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 3, insertions_count: 22, deletions_count: 61}, - {sha: "947dc0e777ab617119d9317fc3143f8808ead09d", date: "2020-06-18 08:01:38 +0000", description: "update rusoto ", pr_number: 2830, scopes: ["aws_cloudwatch_logs sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 32, insertions_count: 398, deletions_count: 1458}, - {sha: "22ec017d7c6ce0727c35afbccc1b025484dd9c04", date: "2020-06-18 13:34:12 +0000", description: "Make encoding optional", pr_number: 2796, scopes: ["loki sink"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 8, deletions_count: 8}, - {sha: "49de96d1aedbc87cc23d98a72d39b6745d24c49c", date: "2020-06-18 14:32:24 +0000", description: "Remove custom DNS resolution", pr_number: 2812, scopes: ["networking"], type: "chore", breaking_change: true, author: "Kruno Tomola Fabro", files_count: 16, insertions_count: 89, deletions_count: 410}, - {sha: "fa040ac0504c6bf5d50be592e2f8946bf88b4414", date: "2020-06-18 15:43:07 +0000", description: "Finish `hyper` upgrade", pr_number: 2852, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 28, insertions_count: 59, deletions_count: 83}, - {sha: "e48ea7fab3da98bd7b8d997ba5eef09c4b769f2b", date: "2020-06-18 15:45:17 +0000", description: "Properly synchronize file updates in `watcher` test", pr_number: 2853, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "1f3cb4cc0c755adf5a023a2cb6eeff277e1dc730", date: "2020-06-18 18:22:42 +0000", description: "warp update", pr_number: 2837, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 9, insertions_count: 204, deletions_count: 144}, - {sha: "a0589e9326ac3367961712fb3b8bf9927e2e428a", date: "2020-06-18 09:41:49 +0000", description: "Fix release verification.", pr_number: 2847, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "fb6f6e89d094f973b6f03b812198294638e0a0dc", date: "2020-06-18 23:32:02 +0000", description: "Use to_raw_value instead of to_string in JsonArrayBuffer", pr_number: 2860, scopes: ["sinks"], type: "enhancement", breaking_change: false, author: "Nazar Mishturak", files_count: 1, insertions_count: 3, deletions_count: 4}, - {sha: "865c8ba5bf6618097d40035df5642f354a581f28", date: "2020-06-18 20:15:03 +0000", description: "address potential deadlock", pr_number: 2838, scopes: ["sinks"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 6, deletions_count: 6}, - {sha: "ed1afd14d0222c2d7ba9df1487e7592a4f2adee4", date: "2020-06-19 09:46:19 +0000", description: "Add content options", pr_number: 2848, scopes: ["aws_s3 sink"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 4, insertions_count: 102, deletions_count: 4}, - {sha: "cdebd75c0c0d0648de8f96a4503d1df6128d07f8", date: "2020-06-19 11:58:02 +0000", description: "file-source bytes update", pr_number: 2865, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 5, insertions_count: 25, deletions_count: 10}, - {sha: "4e5429b14fbdea5114755c447c8324fbaaac08ca", date: "2020-06-19 14:03:06 +0000", description: "Use `i` for unsigned ints on Influx v1", pr_number: 2868, scopes: ["influxdb_metrics sink"], type: "fix", breaking_change: false, author: "Marcus Griep", files_count: 3, insertions_count: 292, deletions_count: 27}, - {sha: "e84ff7579511f1b7302348f237c6aa06710f33b4", date: "2020-06-19 22:28:34 +0000", description: "fix wrap path", pr_number: 2873, scopes: ["splunk_hec source"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 9, deletions_count: 23}, - {sha: "5e00483d8b84b114910bf9aba55238151c329f71", date: "2020-06-20 00:31:03 +0000", description: "Show client errors as warning logs", pr_number: 2825, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Tristan Keen", files_count: 1, insertions_count: 57, deletions_count: 6}, - {sha: "6963b5807a79dcef54423e7436d794e979cadb5a", date: "2020-06-20 17:16:53 +0000", description: "Shutdown write side only in test `tcp_stream_detects_disconnect`", pr_number: 2857, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 4, deletions_count: 3}, - {sha: "a5a60c89a5f4138b71330ee40ac82cb15e2fa879", date: "2020-06-21 23:23:47 +0000", description: "Bump rust-toolchain to 1.44.1", pr_number: 2874, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "257440183c2c38c7445a9a468ddd803d03d912df", date: "2020-06-22 14:06:06 +0000", description: "Fix command for integration tests", pr_number: 2834, scopes: ["kafka sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 4, insertions_count: 5, deletions_count: 7}, - {sha: "c293c492e97a7249822be4907f6bab84414dae7d", date: "2020-06-23 07:07:50 +0000", description: "remove outdated uri code", pr_number: 2889, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 8, insertions_count: 11, deletions_count: 19}, - {sha: "a7486664de540a73c244324e5a093b388a7bb7ee", date: "2020-06-24 11:08:43 +0000", description: "Adding a condition to filter using IP CIDR", pr_number: 2831, scopes: ["filter transform"], type: "feat", breaking_change: false, author: "Bill", files_count: 9, insertions_count: 277, deletions_count: 3}, - {sha: "7cd8c7fc43bd80ab8ef45069190947a3f8ca93e4", date: "2020-06-24 18:12:03 +0000", description: "remove contextual QA checklist", pr_number: 2898, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 0, deletions_count: 24}, - {sha: "be4ecfbfbea9420f542fd77a9118c8a3e84c1f7a", date: "2020-06-24 17:37:24 +0000", description: "Adjust buffering tests", pr_number: 2862, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 49, deletions_count: 40}, - {sha: "aaa4fc1a158ad3d714af9fa8efdf54ca7047c698", date: "2020-06-24 17:37:31 +0000", description: "Remove `trust-dns` dependecies", pr_number: 2884, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 1, deletions_count: 152}, - {sha: "da94162850b609b4e6d5d23edde9e0e2abc33624", date: "2020-06-24 22:54:46 +0000", description: "make HttpSink::build_request async", pr_number: 2888, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 14, insertions_count: 135, deletions_count: 76}, - {sha: "5e5d806b31b8db02e918da84b72ba9ac93071b8e", date: "2020-06-24 22:56:58 +0000", description: "add assume_role to aws auth", pr_number: 2895, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 5, insertions_count: 48, deletions_count: 12}, - {sha: "68d3d39fa64936dd484ebcab23d734a621cfa94c", date: "2020-06-25 10:09:38 +0000", description: "Adding spaces to condition docs", pr_number: 2901, scopes: [], type: "docs", breaking_change: false, author: "Bill", files_count: 5, insertions_count: 43, deletions_count: 43}, - {sha: "6517265bf97364d9f7176f8cb7e60d060be7f209", date: "2020-06-25 18:38:23 +0000", description: "refresh aws creds when required", pr_number: 2859, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 42, deletions_count: 28}, - {sha: "dc70fc5eb8b9d50238536ed2aabf43cf690105f3", date: "2020-06-25 20:28:31 +0000", description: "reduce http:0.1 usage", pr_number: 2905, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 33, insertions_count: 110, deletions_count: 175}, - {sha: "832f25b10e5254fd026c498e41c25a047017fefb", date: "2020-06-27 11:03:29 +0000", description: "Add SASL to kafka", pr_number: 2897, scopes: ["kafka source", "kafka sink"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 13, insertions_count: 511, deletions_count: 107}, - {sha: "3d11c34703bdaed580e2e42ff8a28024ea504d40", date: "2020-06-29 17:34:11 +0000", description: "remove native-tls", pr_number: 2912, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 2, deletions_count: 2}, - {sha: "d2fe5279087ceb3dddd561c3b3d01959fad59006", date: "2020-06-29 12:08:28 +0000", description: "Batch buffer rework", pr_number: 2866, scopes: ["sinks"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 73, insertions_count: 1532, deletions_count: 680}, - {sha: "4ee8ea039c1f8b5fa2d08248748d994d45d17bbf", date: "2020-06-29 11:50:06 +0000", description: "Fixup sasl related knobs", pr_number: 2915, scopes: ["kafka kink"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 3, insertions_count: 17, deletions_count: 10}, - {sha: "abd8d806fb05b373cb0a027fe2384e083cb8ff74", date: "2020-06-29 17:08:47 +0000", description: "Allow remapping priority numbers to words", pr_number: 2751, scopes: ["journald source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 4, insertions_count: 89, deletions_count: 8}, - {sha: "cd7404091459802d709b5a393f7b4827ddc100fc", date: "2020-06-30 09:13:45 +0000", description: "Handle and enforce batch.max_bytes", pr_number: 2916, scopes: ["aws_cloudwatch_logs sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 13, insertions_count: 270, deletions_count: 78}, - {sha: "079c360ca6ab1b5a80ea551146cba7596513de81", date: "2020-06-30 09:14:43 +0000", description: "Remove two unneeded files", pr_number: 2918, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 0, deletions_count: 12}, - {sha: "25ee24cc4ae2dee25852b05b0dc3a208c554f066", date: "2020-07-01 01:02:47 +0000", description: "Add Fingerprinter::FirstLineChecksum", pr_number: 2904, scopes: ["file source"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 96, deletions_count: 0}, - {sha: "02c30220d6a2a34425b33fc25490a3520d748282", date: "2020-07-01 15:23:55 +0000", description: "Architecture Revisit RFC", pr_number: 2855, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 504, deletions_count: 0}, - {sha: "01b37785f38159388636ff9954a3675c1ae0d049", date: "2020-07-05 14:25:02 +0000", description: "Option to remove file after some time of reaching `eof`", pr_number: 2908, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 6, insertions_count: 126, deletions_count: 6}, - {sha: "c34607e8f060ad7648c72983180b57737b14ed0b", date: "2020-07-06 17:23:21 +0000", description: "move reqwest to dev-dependencies ", pr_number: 2952, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 18, insertions_count: 1081, deletions_count: 1164}, - {sha: "f69c26356fe4d37b0bf4c4bae321d58970e0df31", date: "2020-07-06 17:33:16 +0000", description: "add compression option for aws sinks", pr_number: 2953, scopes: ["sinks"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 17, insertions_count: 417, deletions_count: 282}, - {sha: "35330c77049c928adfaad755743aca4c2bcd47f3", date: "2020-07-06 18:41:22 +0000", description: "disable sasl feature", pr_number: 2930, scopes: ["kafka sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 6, insertions_count: 24, deletions_count: 29}, - {sha: "aa9a38c515bbd4dd0b5beed509053ce18247548c", date: "2020-07-07 19:52:53 +0000", description: "Construct tcp healthcheck with TLS", pr_number: 2958, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 5, insertions_count: 47, deletions_count: 28}, - {sha: "07f5268355018a740b7c8df59ec4a7c10fc64169", date: "2020-07-07 11:25:42 +0000", description: "Move the builder to centos 7", pr_number: 2824, scopes: ["platforms"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 4, insertions_count: 38, deletions_count: 10}, - {sha: "4202a963723b4e5ec548e9dfe518e725a28c7885", date: "2020-07-07 13:26:01 +0000", description: "move topology building into tokio context, take 2", pr_number: 2964, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 56, insertions_count: 810, deletions_count: 791}, - {sha: "d1d7d1a6776018c7b2fd138765a2c9eab20038df", date: "2020-07-07 21:34:44 +0000", description: "upgrade to bollard", pr_number: 2951, scopes: ["docker source"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 967, deletions_count: 1099}, - {sha: "b5e0eb76c9e90234c5487817cf4eac3470472967", date: "2020-07-07 20:41:25 +0000", description: "Extract timestamp from event", pr_number: 2956, scopes: ["kafka source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 51, deletions_count: 14}, - {sha: "349ad526c8e86b3b271ee7bb04134d15a2c1566f", date: "2020-07-08 10:08:57 +0000", description: "remove some allowed clippy rules", pr_number: 2959, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 107, insertions_count: 491, deletions_count: 640}, - {sha: "16ed04d2f39f7268eda2eaade9368612eb6d06aa", date: "2020-07-08 08:50:29 +0000", description: "Move over homebrew/s3 release jobs", pr_number: 2869, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 417, deletions_count: 0}, - {sha: "59c4132a77556b62be5b1ee07dbdd74194c08c3f", date: "2020-07-08 18:54:47 +0000", description: "Add smoke tests to docker images", pr_number: 2974, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 2, insertions_count: 6, deletions_count: 0}, - {sha: "466bf49d3e580a48f082f12c098e4b2b6459d2a1", date: "2020-07-08 11:03:57 +0000", description: "bump nom from 5.1.0 to 5.1.2", pr_number: 2967, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 2, insertions_count: 15, deletions_count: 30}, - {sha: "3c1ba1ba4eed48eb15cd45cea8635d3077f4da20", date: "2020-07-08 11:57:26 +0000", description: "Update README.md", pr_number: 2976, scopes: [], type: "chore", breaking_change: false, author: "Eugene Marinelli", files_count: 3, insertions_count: 3, deletions_count: 3}, - {sha: "ae53b889406942dd404578fc84d2675ea2e282ac", date: "2020-07-08 12:45:30 +0000", description: "bump scan_fmt from 0.2.4 to 0.2.5", pr_number: 2849, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "fe6f9c29299f4dd45824ba9700aa3dc76de46ab7", date: "2020-07-08 14:30:23 +0000", description: "Configure dependabot to use correct issue names", pr_number: 2821, scopes: ["deps"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 4, insertions_count: 45, deletions_count: 4}, - {sha: "bf3df05f132bebe9bb3e993318fb19a14d50273f", date: "2020-07-08 14:39:26 +0000", description: "Fixup dependabot config", pr_number: 2980, scopes: ["deps"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "448b64139b8a5440cc0c885f3e9cd9635a2d8be4", date: "2020-07-08 15:01:31 +0000", description: "bump built from 0.3.2 to 0.4.2", pr_number: 2850, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 3, insertions_count: 22, deletions_count: 10}, - {sha: "863923b359afeb61742f88284e844f395f52afa2", date: "2020-07-08 15:34:05 +0000", description: "Make environment use ubuntu 20.04", pr_number: 2971, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 15, insertions_count: 213, deletions_count: 418}, - {sha: "3702885aa8092eb9b2a4c666800dcb7c2346c818", date: "2020-07-08 15:42:35 +0000", description: "bump @types/fs-extra from 8.1.0 to 8.1.1 in /website", pr_number: 2986, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "c8c8aaa399e134d88c9c4ae62b7a9ed8c750be6f", date: "2020-07-08 16:07:52 +0000", description: "bump yard from 0.9.24 to 0.9.25 in /scripts", pr_number: 2981, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "7aba11cf95660936d338068b77bcf422adaba78c", date: "2020-07-08 16:11:03 +0000", description: "bump @types/lodash from 4.14.150 to 4.14.157 in /website", pr_number: 2988, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "60eddc87fea0869023eb1b193e5d6b8f18dcaac0", date: "2020-07-08 16:12:00 +0000", description: "Fix dependency label to be longer again.", pr_number: 2990, scopes: ["deps"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "25d0aa1855938b549e9cfa42c38c6a22f7951c60", date: "2020-07-08 16:57:12 +0000", description: "bump qs from 6.9.3 to 6.9.4 in /website", pr_number: 2982, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "472d3b6181f1480ab49e70c5efa0522be7e7038b", date: "2020-07-09 17:12:28 +0000", description: "Add smoke test for cmark-gfm at builder", pr_number: 2995, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "d78ffbfb59a14624621d42303bd5ce40f06c6f05", date: "2020-07-09 17:32:13 +0000", description: "Fix the cmark-gfm installation at builder image", pr_number: 2996, scopes: ["operations"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "1cd6e0697a51a22381a7b7eceda9c0e172b0504b", date: "2020-07-09 18:14:27 +0000", description: "Use perl rename at builder", pr_number: 2999, scopes: ["operations"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 4, deletions_count: 1}, - {sha: "caa68d812bcd456ecd0de685e09d60f12463350d", date: "2020-07-09 14:02:04 +0000", description: "Add musl and glibc support to install.sh", pr_number: 2969, scopes: ["operations"], type: "enhancement", breaking_change: false, author: "Ana Hobden", files_count: 2, insertions_count: 17, deletions_count: 2}, - {sha: "969b52de850196a4f4010d2a719a25d26d4aebc3", date: "2020-07-10 16:48:29 +0000", description: "remove outdated security advisories", pr_number: 3009, scopes: ["security"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 0, deletions_count: 3}, - {sha: "e5d828374b53ba952a36991db6214b90b2d61424", date: "2020-07-10 07:07:29 +0000", description: "Make dependabot only cover Rust code", pr_number: 3003, scopes: ["deps"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 0, deletions_count: 26}, - {sha: "8fec89e3fc64543e63167fff4e2f8208114cbf0f", date: "2020-07-10 09:34:03 +0000", description: "Fix filter_unit_works_correctly test", pr_number: 3005, scopes: ["journald source"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "37790157c61ea630635f88da81564937cfb00585", date: "2020-07-10 11:08:41 +0000", description: "Fixup release script formats", pr_number: 3002, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 6, deletions_count: 6}, - {sha: "7c61530eb67cd33d45959e71115f613a32991e38", date: "2020-07-10 11:09:52 +0000", description: "Fixup release-s3", pr_number: 3015, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "9c0ecdbc5478b17503522f826ecb3dbd2bf68e10", date: "2020-07-10 21:36:41 +0000", description: "sync token request", pr_number: 2993, scopes: ["gcp provider"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 68, deletions_count: 69}, - {sha: "db85e2faf6b590b76eed72530ce9600fbbcc03b6", date: "2020-07-11 00:03:22 +0000", description: "update to 1.0.0-alpha-2", pr_number: 2977, scopes: ["pulsar sink"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 13, insertions_count: 321, deletions_count: 294}, - {sha: "0036ede7448f3b6f849d1f13fc832c24cc522890", date: "2020-07-10 14:04:42 +0000", description: "Remove dead envrc file", pr_number: 3023, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 0, deletions_count: 1}, - {sha: "63792bb8ef63fc560ff436122763a74cab30706b", date: "2020-07-10 14:05:14 +0000", description: "Remove the dns-server options from docs", pr_number: 3021, scopes: [], type: "docs", breaking_change: false, author: "Ana Hobden", files_count: 6, insertions_count: 1, deletions_count: 52}, - {sha: "36efd3970f6931221e5749539c93f218e9147dba", date: "2020-07-10 16:24:08 +0000", description: "Set a proper default for the batch buffer initialization", pr_number: 3016, scopes: ["loki sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 17, deletions_count: 20}, - {sha: "bb497befcb38793573404e56fda3871ed0ece3c3", date: "2020-07-10 18:28:49 +0000", description: "add reduce transform", pr_number: 2870, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Luke Steensen", files_count: 17, insertions_count: 2496, deletions_count: 3}, - {sha: "ccbb802c010c6109240a14be44b3c30dbae73564", date: "2020-07-11 09:59:29 +0000", description: "update prost", pr_number: 3017, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 6, insertions_count: 33, deletions_count: 113}, - {sha: "f28b64b9f34f7da81597bb935359e1c4a3658431", date: "2020-07-11 12:53:34 +0000", description: "update crates in lock file after merges", pr_number: 3030, scopes: ["deps"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "a9a5d3980db07ec51a23648f95721790c0c6397e", date: "2020-07-12 00:11:46 +0000", description: "Accept `octet-counting` encoded messages", pr_number: 2955, scopes: ["syslog source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 8, insertions_count: 226, deletions_count: 36}, - {sha: "5c88a7c156bf4b0c96c5be329c1fe03e8f838aac", date: "2020-07-11 16:21:53 +0000", description: "Drop 3 more clippy exclusions", pr_number: 3026, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 0, deletions_count: 3}, - {sha: "feb4e44f7d6888e967ed650e8fde824a5d35c166", date: "2020-07-12 01:34:11 +0000", description: "Delete `topology::config::watcher::tests::multi_file_update` ", pr_number: 3034, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 0, deletions_count: 16}, - {sha: "e3dca13f68773ca690b75395a46aa4b4649b2d44", date: "2020-07-12 01:35:00 +0000", description: "Delete `topology::reload_tests::topology_reuse_old_port` ", pr_number: 3036, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 0, deletions_count: 38}, - {sha: "20b2c504412c499503729bbf998f805c69de9b76", date: "2020-07-12 01:36:52 +0000", description: "Build `HttpClient` once", pr_number: 3010, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 14, insertions_count: 114, deletions_count: 155}, - {sha: "2e15006ac26f3699fa10a4811d9da7ad9914d7dc", date: "2020-07-12 18:20:19 +0000", description: "remove tokio-codec crate", pr_number: 3011, scopes: ["deps"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 11, insertions_count: 339, deletions_count: 30}, - {sha: "3848bfd7f23144f2da92775def678c6c750626cd", date: "2020-07-12 17:54:22 +0000", description: "Delete `tests\\tcp::merge` test", pr_number: 3042, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 0, deletions_count: 64}, - {sha: "359adb8c5a2a3040717dd87a2c09e5fdc0185dc9", date: "2020-07-12 17:56:58 +0000", description: "Delete `test_udp_syslog` test", pr_number: 3044, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 1, deletions_count: 65}, - {sha: "9880fbebb38c5bd4bdcbf795b74800794292fe31", date: "2020-07-12 17:58:30 +0000", description: "Delete `test_max_size_resume`", pr_number: 3040, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 2, deletions_count: 63}, - {sha: "752fb6574503da0811d4033289fc45ab974926de", date: "2020-07-12 21:33:27 +0000", description: "bump num_cpus from 1.12.0 to 1.13.0", pr_number: 2910, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "680266eef07fa3f76c96ca9ea055bb704457a19a", date: "2020-07-13 06:29:10 +0000", description: "bump serde_json from 1.0.55 to 1.0.56", pr_number: 3051, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "23888d1a7aff7629bf601abcaedbc7009f55ad45", date: "2020-07-13 06:37:34 +0000", description: "bump bytesize from 1.0.0 to 1.0.1", pr_number: 3050, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "5d8f535454d9d9e6a166d2466f5f45bd26e8b5e2", date: "2020-07-13 17:36:14 +0000", description: "bump to pulsar-rs 1.0.0", pr_number: 3053, scopes: ["pulsar sink"], type: "chore", breaking_change: false, author: "Alexandre DUVAL", files_count: 3, insertions_count: 5, deletions_count: 5}, - {sha: "cd4620e3a2010259f988769c8a97388a9666f2da", date: "2020-07-13 19:16:50 +0000", description: "reduce std::io::Cursor usage", pr_number: 3038, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 9, insertions_count: 32, deletions_count: 40}, - {sha: "c1ca0295b3cda2fad9bef6b8212a220fc6feeffe", date: "2020-07-13 10:58:46 +0000", description: "Fixup integration test invocations", pr_number: 3004, scopes: ["tests"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 2, deletions_count: 3}, - {sha: "e60d96d8d70e6d14118b4330eb5ccaa131afa896", date: "2020-07-13 12:30:43 +0000", description: "Fix broken `make generate`", pr_number: 3058, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 485, insertions_count: 566, deletions_count: 999}, - {sha: "7aef527df7cdc3c2abb330a22911c94c62b1010c", date: "2020-07-14 09:15:51 +0000", description: "bump bollard from 0.7.0 to 0.7.1", pr_number: 3048, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 2, insertions_count: 5, deletions_count: 5}, - {sha: "dc5c6cc7f38564d8ccb4f0774c0e398428428973", date: "2020-07-14 12:05:45 +0000", description: "Cleanup `generate` command", pr_number: 3046, scopes: ["cli"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 6, deletions_count: 3}, - {sha: "60a9ded146a2188980c8d31cdd374ebd59b6e6f1", date: "2020-07-14 12:12:07 +0000", description: "Build `aws` sinks clients only once", pr_number: 3045, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 5, insertions_count: 66, deletions_count: 60}, - {sha: "dc564ed54508da96f62de57b33e6b2a994114d3d", date: "2020-07-14 20:20:12 +0000", description: "remove owning_ref", pr_number: 3059, scopes: ["kafka source"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 166, deletions_count: 131}, - {sha: "ae20875fc7cd4b38dc7215c0b65cb22073490864", date: "2020-07-14 22:45:40 +0000", description: "update runtime_transform", pr_number: 3065, scopes: ["transforms"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 14, insertions_count: 165, deletions_count: 133}, - {sha: "b8fa14e21885af394586cf2ee7c736646a6ae7e2", date: "2020-07-14 21:55:00 +0000", description: "Add .rustfmt.toml to assist IDE formatters.", pr_number: 3063, scopes: [], type: "chore", breaking_change: false, author: "Harold Dost", files_count: 1, insertions_count: 3, deletions_count: 0}, - {sha: "df65bf9830eaffdcb8798865abb710ad67a8628a", date: "2020-07-14 19:44:15 +0000", description: "add SinkConfig::build_async", pr_number: 3066, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 11, insertions_count: 132, deletions_count: 121}, - {sha: "0faa07b42276dcdec3e077ff835610ebe865f21f", date: "2020-07-15 16:07:33 +0000", description: "adjust log event in coercer transform", pr_number: 3072, scopes: ["docs"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "64d7dc8d215c25e61d3e4937ac748a8342a6afad", date: "2020-07-15 07:34:20 +0000", description: "Remove CircleCI", pr_number: 3001, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 0, deletions_count: 967}, - {sha: "30123d970e586a634cae729b37fe918bd5b13fd2", date: "2020-07-15 07:35:03 +0000", description: "bump flate2 from 1.0.13 to 1.0.16", pr_number: 3049, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 8, deletions_count: 8}, - {sha: "2e29c36d8225c6fa82419932e88f92372c755847", date: "2020-07-15 21:59:31 +0000", description: "fix endpoint strip for aws region", pr_number: 3070, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 19, deletions_count: 1}, - {sha: "4866bded3c73d4340cb114efd73de3e872b5906f", date: "2020-07-15 14:29:20 +0000", description: "Add sync-install to GA", pr_number: 3056, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 2, insertions_count: 18, deletions_count: 3}, - {sha: "efcf4b934aa83bd41d2bc54e8dc5bb3a64a78266", date: "2020-07-15 16:01:02 +0000", description: "bump tokio-uds from 0.2.5 to 0.2.7", pr_number: 2946, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "0b9e4cc40dc7e5c19a2451993da29c78e38f858a", date: "2020-07-15 19:02:35 +0000", description: "improve array handling", pr_number: 3076, scopes: ["reduce transform"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 132, deletions_count: 14}, - {sha: "ff1884062e09956a7696a644f80c401e593d3e6f", date: "2020-07-16 08:11:25 +0000", description: "Fix warning message due .rustfmt.toml", pr_number: 3075, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "6e097287b82ac48651649695593b3c7533873de1", date: "2020-07-16 09:13:51 +0000", description: "Drop the batch byte size limit", pr_number: 3025, scopes: ["loki sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 4, insertions_count: 5, deletions_count: 39}, - {sha: "ca6df186b089b3535eecf609e1aaf54aed4c4df3", date: "2020-07-16 20:41:25 +0000", description: "use localstack instead minio", pr_number: 3073, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 4, deletions_count: 20}, - {sha: "3af6816cceafcd6af56d5f8e9286915b50a8025f", date: "2020-07-16 11:18:40 +0000", description: "bump inventory from 0.1.5 to 0.1.7", pr_number: 2851, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot-preview[bot]", files_count: 1, insertions_count: 4, deletions_count: 4}, - {sha: "59871fd3f54bd4710d14fde4089088dcb2932d81", date: "2020-07-16 11:51:19 +0000", description: "Reenable sasl", pr_number: 3081, scopes: ["deps"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 8, insertions_count: 56, deletions_count: 36}, - {sha: "773e5e5c85c5d5849e306783468e4cfb7fd82f74", date: "2020-07-16 14:26:19 +0000", description: "append instead of overwriting files", pr_number: 3084, scopes: ["file sink"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 43, deletions_count: 0}, - {sha: "1de26d27ed36062e58c702e4c5af168175d4ca87", date: "2020-07-16 16:26:39 +0000", description: "stop logging every received event", pr_number: 3085, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 7, deletions_count: 2}, - {sha: "e31f20da83114449109c3a9f14a9ac097da28dfb", date: "2020-07-19 21:41:16 +0000", description: "Remove `tcp_graceful_shutdown` ", pr_number: 3103, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 0, deletions_count: 111}, - {sha: "f37f2e0ce3d94679bf88ba5826b43e705977bfdc", date: "2020-07-19 21:42:21 +0000", description: "Remove `s3_waits_for_full_batch_or_timeout_before_sending`", pr_number: 3105, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 0, deletions_count: 70}, - {sha: "75b89d490c17f9985089237111e83e4e8c5f71df", date: "2020-07-20 20:57:33 +0000", description: "Bump rust-toolchain to 1.45.0", pr_number: 3089, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 7, insertions_count: 18, deletions_count: 18}, - {sha: "876b4104c2009b8e7be71a6c90c4c0f810a90c76", date: "2020-07-20 14:03:22 +0000", description: "Docker debian packages systemd", pr_number: 3129, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "ed9006f783445c1636fb50a56fae1fffec4ab1e3", date: "2020-07-20 15:38:34 +0000", description: "Add Rust 2018 edition tag to .rustfmt.toml", pr_number: 3120, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "1c91ed0883f6743f471095cdad2ec570f1e74bee", date: "2020-07-20 15:22:41 +0000", description: "Debian buster is stable, not sid", pr_number: 3131, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "129a861500f435f94e4b4153f49f1f821715ee46", date: "2020-07-20 23:52:26 +0000", description: "bump lodash from 4.17.15 to 4.17.19 in /website", pr_number: 3098, scopes: ["deps"], type: "chore", breaking_change: false, author: "dependabot[bot]", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "5885c7d579ebd95e231589da38056db476d6040c", date: "2020-07-21 12:53:47 +0000", description: "Update benches", pr_number: 3107, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 16, deletions_count: 14}, - {sha: "bfb0fcaa89a118913547ad01c6c2a98fdec29cf7", date: "2020-07-21 13:50:27 +0000", description: "Remove tokio 0.1 from shutdown", pr_number: 3106, scopes: [], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 18, deletions_count: 21}, - {sha: "b6004be220b2071093a066bb16449f1a4e5814ba", date: "2020-07-21 09:32:09 +0000", description: "Update cidr-utils", pr_number: 3139, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 2, insertions_count: 7, deletions_count: 7}, - {sha: "3b8bf31a4f6cd5a47016bba934e16aabe04c18ff", date: "2020-07-21 10:26:37 +0000", description: "Pin back Rust 1.45 until after 0.10.0", pr_number: 3142, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "675ad3be743cc754197e108d2da4427d636dd682", date: "2020-07-21 11:25:33 +0000", description: "Fixup clippy issues from 1.44 rollback", pr_number: 3143, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "22fa53afbef21189d7eb8c7eea68864fc494fa93", date: "2020-07-21 12:34:52 +0000", description: "Prepare v0.10.0", pr_number: 3022, scopes: [], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 42, insertions_count: 14414, deletions_count: 140}, - {sha: "c6d0cad0fe058ad7a5a5603410d03ff2d4b321c5", date: "2020-07-22 09:51:17 +0000", description: "Fixup release-homebrew", pr_number: 3158, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "680b7eeb5cfcbd6f7a338591270066560c5397ab", date: "2020-07-22 09:35:22 +0000", description: "Fixup version invocation to not have info", pr_number: 3153, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "341183a2034493ad2f7236c07e1f35d546fca514", date: "2020-07-22 09:35:03 +0000", description: "Fixup release s3 job", pr_number: 3155, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "19e62802df15dc21f6c4f2e3f94f1e5bbe9437e4", date: "2020-07-22 11:13:37 +0000", description: "Fixup release commit", pr_number: 3163, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 2, insertions_count: 11, deletions_count: 1}, - ] -} diff --git a/docs/reference/releases/0.11.0.cue b/docs/reference/releases/0.11.0.cue deleted file mode 100644 index dbb27bb56c0fa..0000000000000 --- a/docs/reference/releases/0.11.0.cue +++ /dev/null @@ -1,392 +0,0 @@ -package metadata - -releases: "0.11.0": { - date: "2020-12-01" - codename: "Kubernetes Pipes" - description: """ - The Vector team is pleased to announce 0.11.0. This release - is focused on Kubernetes. In addition to the new, - first-class Kubernetes integration, we launched a number of - complementary features that make Vector a prime candidate - for collecting and processing your Kubernetes logs. Check - out the [highlights](#highlights) and [changelog](#changelog) - for more details. - """ - - whats_next: [ - { - title: "Vector's own observability" - description: """ - We will be working to improve Vector's own observability with high-quality internal metrics, logs, - CLI tools, and dashboards. This will likely be the focus of 0.13. - """ - }, - { - title: "Kubernetes aggregator role" - description: """ - In addition to Vector's observability, 0.12 will include support for - deploying Vector into the [aggregator role](\(urls.vector_aggregator_role)) - within Kubernetes. This will allow you to build end-to-end observability - piplines in Kubernetes with Vector. Distributing processing on the edge, - centralizing it with an aggregator, or both. If you are interested in - beta testing, please [join our chat](\(urls.vector_chat)) and let us - know. - """ - }, - { - title: "Vector Remap Language (VRL)" - description: """ - Finally, 0.12 will introduce the new Vector Remap Language. This is a - Rust-native syntax designed for safe and efficient data mapping. It's an - ultra-performant middle ground between fundamental transforms like - `add_fields` and a full blown runtime like `lua`. - - If interested, you can beta test via the [`remap` transform](\(urls.vector_remap_transform)) - and use the [Vector Remap Language reference](\(urls.vrl_reference)) - to write scripts. - """ - }, - ] - - commits: [ - {sha: "5308b865614987b50bbeecf2167d37ddfc326f55", date: "2020-07-22 11:15:07 -0400", description: "Initial `kubernetes_logs` implementation", pr_number: 2653, scopes: ["new source"], type: "feat", breaking_change: false, author: "MOZGIII", files_count: 60, insertions_count: 6078, deletions_count: 25}, - {sha: "ca69b000e00b5c3e668b3998a62bc7ecfbc1f51a", date: "2020-07-22 18:08:53 -0400", description: "Allow '=' in tag values", pr_number: 3090, scopes: ["prometheus source"], type: "fix", breaking_change: false, author: "Adam Casey", files_count: 1, insertions_count: 84, deletions_count: 18}, - {sha: "94f6db43db5f25b6c1fb005c8a5bd3a2a211a06b", date: "2020-07-26 17:03:42 -0400", description: "Cleanup `list` command", pr_number: 3099, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 43, deletions_count: 2}, - {sha: "622dbf78f3335ca275251f74c64c7a16a93ec9c2", date: "2020-07-28 09:18:12 -0400", description: "Upgrade all VecBuffer sinks to allow setting `max_bytes`", pr_number: 3190, scopes: ["buffers", "sinks"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 17, insertions_count: 529, deletions_count: 231}, - {sha: "6a6c390b7e7af2b977ff088245e94e31cefb7640", date: "2020-07-28 12:04:38 -0400", description: "Correctly assign capture group fields", pr_number: 3164, scopes: ["regex_parser transform"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 3, insertions_count: 124, deletions_count: 69}, - {sha: "24da4475d798460df64d4c2728f9cde823b4d73b", date: "2020-07-28 21:02:57 -0400", description: "Add max_length to UDP", pr_number: 3236, scopes: ["socket source"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 5, insertions_count: 26, deletions_count: 16}, - {sha: "7d0dbc9ba5497bae2a217f6bbd3a7fba744a832d", date: "2020-07-28 23:50:24 -0400", description: "Instrument \"stdin\" source", pr_number: 3151, scopes: ["observability", "stdin source"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 3, insertions_count: 56, deletions_count: 3}, - {sha: "9745e9a3560570ba17afd5148e37e329affec9a2", date: "2020-07-28 16:14:56 -0400", description: "Add received and invalid line events", pr_number: 3241, scopes: ["observability", "journald source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 57, deletions_count: 1}, - {sha: "9aed5e08ede334dee921df7bd5aaa6ef2ecfd3c1", date: "2020-07-30 15:04:01 -0400", description: "Provide error context on parse error", pr_number: 3278, scopes: ["prometheus source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 11, deletions_count: 1}, - {sha: "0d497ec9f350f723172efab2ab2462c46de70c4b", date: "2020-07-31 21:44:10 -0400", description: "Correct an error with line aggregation in `continue_through` and `halt_before`", pr_number: 3262, scopes: ["file source"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 140, deletions_count: 10}, - {sha: "9117c9dfbf44100d60b6c9c5fd824835650918ec", date: "2020-07-31 22:46:53 -0400", description: "Instrument \"kafka\" source", pr_number: 3187, scopes: ["observability", "kafka source"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 3, insertions_count: 95, deletions_count: 17}, - {sha: "814102df3c8a98affbe15a7673a63d6668cc4170", date: "2020-08-03 14:05:38 -0400", description: "Make sourcetype explicit on Splunk sink", pr_number: 3297, scopes: ["splunk_hec sink"], type: "fix", breaking_change: true, author: "Jesse Szwedko", files_count: 3, insertions_count: 17, deletions_count: 12}, - {sha: "dc3848d176f500588a7c0446aee731e0a6743f4c", date: "2020-08-03 14:07:34 -0400", description: "Allow configuration of type field", pr_number: 3300, scopes: ["humio_logs sink"], type: "enhancement", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 70, deletions_count: 1}, - {sha: "67adfd6da35cd341b59200c8cf5d506ea6ab3835", date: "2020-08-04 11:07:48 -0400", description: "Update instrumentation", pr_number: 3317, scopes: ["observability", "prometheus source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 60, deletions_count: 9}, - {sha: "70b0b13d297fc34d446497729803ad885960e122", date: "2020-08-04 11:09:04 -0400", description: "Update instrumentation", pr_number: 3315, scopes: ["observability", "syslog source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 36, deletions_count: 21}, - {sha: "059e160cb599ee007affa7f19223a10a40af222f", date: "2020-08-04 21:36:27 -0400", description: "Add internal events for `http` source", pr_number: 3264, scopes: ["observability", "http source"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 3, insertions_count: 72, deletions_count: 3}, - {sha: "3c06a27444cccd530c4a1c5ed09f5c7054045d94", date: "2020-08-04 17:21:01 -0400", description: "Make sourcetype templatable", pr_number: 3351, scopes: ["splunk_hec sink"], type: "enhancement", breaking_change: false, author: "Jesse Szwedko", files_count: 3, insertions_count: 39, deletions_count: 4}, - {sha: "851d00114281791f29cc1c68f1b44aa201bb0ca4", date: "2020-08-05 09:47:23 -0400", description: "Add events", pr_number: 3254, scopes: ["observability", "statsd source"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 121, deletions_count: 8}, - {sha: "e7d3015bf548aa76a8b174576ded9b4932aace53", date: "2020-08-05 09:19:15 -0400", description: "Add instrumentation", pr_number: 3345, scopes: ["observability", "docker source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 311, deletions_count: 77}, - {sha: "1101f26457df26e4d12ede3c93a6d331ac82dd13", date: "2020-08-05 09:21:42 -0400", description: "Add instrumentation", pr_number: 3312, scopes: ["observability", "splunk_hec source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 125, deletions_count: 13}, - {sha: "547c8ad6ac6ad4fa21dbf3a70f6b18570704bed6", date: "2020-08-05 15:24:05 -0400", description: "Add DataDog's `distribution` metric", pr_number: 2913, scopes: ["data_dog_metrics sink"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 19, insertions_count: 204, deletions_count: 26}, - {sha: "bd26d0d7bc04652548dc45ee2f60b311027050ce", date: "2020-08-05 13:26:28 -0400", description: "Add configuration for source", pr_number: 3327, scopes: ["splunk_hec sink"], type: "enhancement", breaking_change: false, author: "Jesse Szwedko", files_count: 3, insertions_count: 74, deletions_count: 2}, - {sha: "7987c59ba587022bd5c9960618be4bd58636fb52", date: "2020-08-05 14:41:24 -0400", description: "Allow configuration of type field (#3300)", pr_number: 3337, scopes: ["humio_logs sink"], type: "enhancement", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 73, deletions_count: 1}, - {sha: "6d126e7656215640ce123dbc5ae6b00cd0a27ef3", date: "2020-08-05 16:11:33 -0400", description: "Add source configuration to Humio sink", pr_number: 3328, scopes: ["humio_logs sink"], type: "enhancement", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 44, deletions_count: 0}, - {sha: "6bac9f1c6bc74f2b775f5a18ea25b3796f58a555", date: "2020-08-09 18:14:42 -0400", description: "Add instrumentation", pr_number: 3356, scopes: ["observability", "logplex source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 64, deletions_count: 6}, - {sha: "0f1556702aa2d7b6901eb1d59164a858c7f79630", date: "2020-08-11 14:20:44 -0400", description: "Automatic concurrency management", pr_number: 3094, scopes: ["sinks", "networking"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 44, insertions_count: 2136, deletions_count: 176}, - {sha: "8d1995d0d6243624a540b8dfc824e51ae5d77044", date: "2020-08-12 15:18:24 -0400", description: "Remove forwarding to syslog from distributed systemd unit", pr_number: 3427, scopes: ["debian platform"], type: "fix", breaking_change: true, author: "Jesse Szwedko", files_count: 1, insertions_count: 0, deletions_count: 3}, - {sha: "3d434d190c5f6d454141f18922b59b1a5c6072c7", date: "2020-08-13 13:15:41 -0400", description: "Add more instrumentation", pr_number: 3417, scopes: ["observability", "file source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 10, insertions_count: 341, deletions_count: 41}, - {sha: "86ccdeabd20edc66ac5a19f04a618cfcedc180e1", date: "2020-08-13 14:57:54 -0400", description: "Add instrumentation", pr_number: 3421, scopes: ["observability", "ansi_stripper transform"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 101, deletions_count: 19}, - {sha: "b4048d9131fc764c6457463b5a9c1768c4b0ae24", date: "2020-08-13 14:58:13 -0400", description: "Add instrumentation", pr_number: 3419, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 32, deletions_count: 0}, - {sha: "bb601f5fae5ad5a7cd05adafd2d6dc84f0b3e868", date: "2020-08-13 16:56:50 -0400", description: "Add instrumentation", pr_number: 3418, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 70, deletions_count: 9}, - {sha: "3ffc3c30b42a482ce1e1dd4bb68faeac7b4d4b76", date: "2020-08-13 14:48:29 -0400", description: "Add additional canned ACLs", pr_number: 3439, scopes: ["aws_s3 sink"], type: "enhancement", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "e4e597067bf001d96cf51a9259714debeeb7ca86", date: "2020-08-14 08:56:33 -0400", description: "Add \"text\" encoding for metrics", pr_number: 3434, scopes: ["codecs", "console sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 257, deletions_count: 10}, - {sha: "40d7dd936a4155409282b5f9e2a43b2989e739ae", date: "2020-08-15 16:59:21 -0400", description: "Even more instrumentation", pr_number: 3436, scopes: ["observability", "file source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 35, deletions_count: 9}, - {sha: "a9f746c6f8b0666b5c3573e9e67c47632b00b149", date: "2020-08-19 11:21:36 -0400", description: "Rewrite parser, improve error handlings ", pr_number: 3286, scopes: ["prometheus source"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 8, insertions_count: 1418, deletions_count: 478}, - {sha: "5f6ce7cfa5fea6e8a3078e63d2e04425b8c38c64", date: "2020-08-19 22:25:56 -0400", description: "Add events for starting, stopping, and reloading", pr_number: 3476, scopes: ["observability", "startup", "shutdown"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 86, deletions_count: 29}, - {sha: "db2e647ce4a08e2602606e036507f46614a2ec2c", date: "2020-08-20 14:39:42 -0400", description: "Add Heartbeat", pr_number: 3502, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 5, insertions_count: 36, deletions_count: 1}, - {sha: "61e806d01d4cc6d2a527b52aa9388d4547f1ebc2", date: "2020-08-21 20:42:14 -0400", description: "Allow configuring flags via env vars", pr_number: 2149, scopes: ["cli"], type: "feat", breaking_change: false, author: "MOZGIII", files_count: 2, insertions_count: 44, deletions_count: 6}, - {sha: "da07131539763df44b638780b7bde23764b0cd92", date: "2020-08-24 00:08:50 -0400", description: "Add support for gzip compression", pr_number: 3373, scopes: ["file sink", "compression"], type: "enhancement", breaking_change: false, author: "Ayush Goyal", files_count: 6, insertions_count: 137, deletions_count: 6}, - {sha: "c6847c68da9ff175f2a62b285b63d119bf07331b", date: "2020-08-24 18:53:52 -0400", description: "Handle Absolute kind for values other than Gauge.", pr_number: 3510, scopes: ["statsd sink"], type: "fix", breaking_change: false, author: "FungusHumungus", files_count: 1, insertions_count: 88, deletions_count: 54}, - {sha: "b41b63ac723d2b0de3a52defa27cac10386f667c", date: "2020-08-25 06:29:39 -0400", description: "ASN/ISP database support", pr_number: 3265, scopes: ["geoip transform"], type: "feat", breaking_change: false, author: "Marko Karppinen", files_count: 6, insertions_count: 243, deletions_count: 90}, - {sha: "a67d18cac8aad548887933ce9793708c61c23cc4", date: "2020-08-25 14:43:00 -0400", description: "Sync all data before finishing", pr_number: 3475, scopes: ["file sink"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 24, deletions_count: 10}, - {sha: "cc284b4f35f1b482b9056a914222edf58bc5acc9", date: "2020-08-25 08:43:30 -0400", description: "Enhance instrumentation", pr_number: 3521, scopes: ["observability", "json_parser transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 4, insertions_count: 76, deletions_count: 47}, - {sha: "c6e660801a8bf091202bd511656434a5229d8767", date: "2020-08-25 08:51:16 -0400", description: "Add and unify events", pr_number: 3486, scopes: ["observability", "socket source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 8, insertions_count: 94, deletions_count: 113}, - {sha: "d11587489476c85f44fc9996e900535737a43922", date: "2020-08-25 12:01:48 -0400", description: "Enhance instrumentation", pr_number: 3523, scopes: ["observability", "regex_parser transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 4, insertions_count: 151, deletions_count: 102}, - {sha: "8b4ff32e23a16e44b0c88848c82e34b724730828", date: "2020-08-25 14:22:27 -0400", description: "Add internal events", pr_number: 3553, scopes: ["observability", "grok_parser transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 4, insertions_count: 127, deletions_count: 39}, - {sha: "692e683646fb843633e158fe7cb25e5085dafff0", date: "2020-08-27 21:00:31 -0400", description: "Add the ability to store pod labels flat", pr_number: 3598, scopes: ["kubernetes_logs source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 97, deletions_count: 2}, - {sha: "1e180bff8f1635b7d24cd9f4838af63255ec5137", date: "2020-08-28 11:44:00 -0400", description: "Store pod labels flat by default, remove the switch", pr_number: 3602, scopes: ["kubernetes_logs source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 2, deletions_count: 59}, - {sha: "2e840a04a9dcd41637adb7b4dd50f5ed948a1e2a", date: "2020-08-28 13:20:18 -0400", description: "Add `file` label", pr_number: 3586, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 10, deletions_count: 0}, - {sha: "f2301e2e583b227718b258e08eb580fe4989a586", date: "2020-08-28 13:36:40 -0400", description: "Add more `main` events", pr_number: 3582, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 79, deletions_count: 6}, - {sha: "680ab9bc3042ab281c76e11ae0251aeda1f97b6b", date: "2020-08-28 10:43:41 -0400", description: "Switch off of broadcast channel", pr_number: 3611, scopes: ["file source"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 16, deletions_count: 90}, - {sha: "b96a04554c971e4a92c872527dc1765140e83d58", date: "2020-08-28 10:11:07 -0400", description: "Add internal events", pr_number: 3593, scopes: ["observability", "log_to_metric transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 100, deletions_count: 8}, - {sha: "4237b6fff0a333bdeb1623b21482168e827268b8", date: "2020-08-28 10:29:27 -0400", description: "Implement some UX improvements for WASM", pr_number: 3490, scopes: ["wasm transform"], type: "enhancement", breaking_change: false, author: "Ana Hobden", files_count: 8, insertions_count: 150, deletions_count: 80}, - {sha: "9570f71c8c2a5c6410d928366e722b12fa1e8912", date: "2020-08-28 15:40:33 -0400", description: "Adds new Helm template variable for podsLabels.", pr_number: 3610, scopes: ["kuberentes platform"], type: "enhancement", breaking_change: false, author: "nkinkade", files_count: 2, insertions_count: 6, deletions_count: 0}, - {sha: "1a4359363c8e65a034e1e13d7b81dfbcb2342b97", date: "2020-08-31 18:51:32 -0400", description: "Multiline support", pr_number: 3607, scopes: ["docker source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 4, insertions_count: 194, deletions_count: 83}, - {sha: "9adebdef5b5a27567803a6b2d2967551935a689c", date: "2020-08-31 13:38:28 -0400", description: "Add internal events", pr_number: 3577, scopes: ["observability", "tag_cardinality_limit transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 101, deletions_count: 17}, - {sha: "22dc55246ea82e51c85c1340cb7fe618c8ae40da", date: "2020-08-31 13:40:10 -0400", description: "Add internal events", pr_number: 3554, scopes: ["observability", "coercer transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 52, deletions_count: 19}, - {sha: "7e2ea2958ba2714b87abcf06ce245b71e48fb838", date: "2020-09-02 11:08:07 -0400", description: "Increase rate_limit_num to its maximum", pr_number: 3655, scopes: ["http sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "7eb1ea3f58727d06417c88d65da478dd004f121a", date: "2020-09-03 18:45:42 -0400", description: "Handle panic on HTTP request to HTTPS source", pr_number: 3693, scopes: ["http source"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 6, deletions_count: 0}, - {sha: "2f373b470353f435572362f59b7f58c4ae337830", date: "2020-09-03 15:44:48 -0400", description: "Handle multiple (intermediate) certificates in PEM files", pr_number: 3687, scopes: ["security"], type: "fix", breaking_change: false, author: "Ana Hobden", files_count: 30, insertions_count: 1169, deletions_count: 301}, - {sha: "2024ab6a9ecc5167e587e3dae8a864f03ff16a7d", date: "2020-09-04 09:10:09 -0400", description: "Add a new options to control the auto concurrency limiter", pr_number: 3690, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 7, insertions_count: 135, deletions_count: 43}, - {sha: "b374fb6a7e2dfe58ffc18d53912748d287068ad8", date: "2020-09-04 15:22:49 -0400", description: "rate_limit_num for GCP pubsub and cloud_storage was wrong", pr_number: 3656, scopes: ["gcp platform"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 8, deletions_count: 1}, - {sha: "25602ee60359956bf1e5e152408ee252f24a3e57", date: "2020-09-04 17:44:22 -0400", description: "allow using excepted fields", pr_number: 3716, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 28, deletions_count: 2}, - {sha: "d15ff9e125c672e1c4c4401f9ac040406917d53a", date: "2020-09-05 17:18:27 -0400", description: "Fix TcpEventSent", pr_number: 3720, scopes: ["observability", "socket sink"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 1, insertions_count: 6, deletions_count: 4}, - {sha: "b692e3e67af92e4490682429b44235f74eca070d", date: "2020-09-07 19:31:03 -0400", description: "Add internal events", pr_number: 3730, scopes: ["observability", "swimlanes transform"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 3, insertions_count: 33, deletions_count: 0}, - {sha: "7e351a225ba8dbbeef9f8db35103a42f4ad5d461", date: "2020-09-08 20:33:05 -0400", description: "Apply encoding rules after key prefix", pr_number: 3770, scopes: ["gcp_cloud_storage sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 16, deletions_count: 1}, - {sha: "fe68891452955772e9a98fdf2565c6d762295e19", date: "2020-09-09 08:31:59 -0400", description: "Add IPv6 supports", pr_number: 3699, scopes: ["socket sink"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 4, insertions_count: 77, deletions_count: 47}, - {sha: "431bd8686b52eee95c59e4c68ea390395ad7ac48", date: "2020-09-09 15:50:54 -0400", description: "Apply encoding rules right before encoding", pr_number: 3775, scopes: ["loki sink"], type: "fix", breaking_change: false, author: "Hoàng Đức Hiếu", files_count: 1, insertions_count: 29, deletions_count: 1}, - {sha: "eb2426c271c90caa2e0ddec855eccc781f9dd86b", date: "2020-09-09 15:58:04 -0400", description: "Add retry delay", pr_number: 3732, scopes: ["docker source"], type: "fix", breaking_change: false, author: "Do Duy", files_count: 2, insertions_count: 37, deletions_count: 15}, - {sha: "7c5aecb9a7741a8816b4f087c920fbe802613862", date: "2020-09-09 15:36:20 -0400", description: "New `remap` transform", pr_number: 3341, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Ashley Jeffs", files_count: 21, insertions_count: 3164, deletions_count: 3}, - {sha: "6869120e280541add19777882f20e2ddb4ca9c3e", date: "2020-09-09 19:40:28 -0400", description: "Add support for `summary` metric", pr_number: 3726, scopes: ["log_to_metric transform"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 65, deletions_count: 0}, - {sha: "52cd9a777963154bf619975df72e3c52726a4228", date: "2020-09-09 13:23:24 -0400", description: "Enhance checkpoint errors with file name", pr_number: 3782, scopes: ["observability", "journald source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 14, deletions_count: 10}, - {sha: "94def0fb9ec971539984fdcf42dacdcfd0aa3200", date: "2020-09-10 16:17:03 -0400", description: "Add internal events", pr_number: 3812, scopes: ["observability", "reduce transform"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 34, deletions_count: 0}, - {sha: "ff555aaed1208742ffb71be5242b52ed258eaa06", date: "2020-09-11 15:53:27 -0400", description: "add internal events", pr_number: 3809, scopes: ["observability", "dedupe transform"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 43, deletions_count: 5}, - {sha: "f03898e1b6a9d78ce40c48b19675d8e7cb67f8c5", date: "2020-09-11 15:53:51 -0400", description: "add internal events", pr_number: 3807, scopes: ["observability", "tokenizer transform"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 74, deletions_count: 12}, - {sha: "9c83300f005648d3a5292754b7127692b9e72e53", date: "2020-09-14 12:29:16 -0400", description: "apply encoding rules in sinks", pr_number: 3766, scopes: ["sinks"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 10, insertions_count: 156, deletions_count: 29}, - {sha: "9df7255da7d7f602e62e0adf1205c417db83d287", date: "2020-09-15 18:50:03 -0400", description: "Support `summary` statistic", pr_number: 3846, scopes: ["influxdb_metrics sink"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 68, deletions_count: 9}, - {sha: "f8696563012d1840e9e6a52206b03634a6bfdb4c", date: "2020-09-15 18:58:20 -0400", description: "Support datadog `distribution` metric ", pr_number: 3725, scopes: ["datadog_metrics sink"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 202, deletions_count: 51}, - {sha: "654bad152b4cd0931957c0710d861f215206e4f0", date: "2020-09-15 19:12:22 -0400", description: "Regularize internal event messages", pr_number: 3850, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 29, insertions_count: 110, deletions_count: 73}, - {sha: "8f8084e8c3b6810dd095980c7d2a0c0e308a609f", date: "2020-09-15 20:43:19 -0400", description: "Recreate trigger", pr_number: 3855, scopes: ["reload"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 70, deletions_count: 19}, - {sha: "85f8a6f4e622d26073485f156f904bdfeb49c6b2", date: "2020-09-15 20:49:29 -0400", description: "Enable tls by default for `papertrail` and `datadog_logs` sinks", pr_number: 3824, scopes: ["networking", "security"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 9, insertions_count: 38, deletions_count: 19}, - {sha: "823308f9bfdd061c62356bef6c77390f9a17cfce", date: "2020-09-17 09:35:24 -0400", description: "Improve retry error messages", pr_number: 3861, scopes: ["observability", "elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 4, insertions_count: 30, deletions_count: 48}, - {sha: "39433cd073fcb349915d64b1b3890ed9def841f9", date: "2020-09-17 13:45:55 -0400", description: "Initial `apache_metrics` source implementation", pr_number: 3704, scopes: ["new source"], type: "feat", breaking_change: false, author: "Jesse Szwedko", files_count: 10, insertions_count: 1581, deletions_count: 0}, - {sha: "3e6dac044cbc3f8950cb91dac7a4f455bdc60189", date: "2020-09-17 21:40:21 -0400", description: "New GraphQL API", pr_number: 3708, scopes: ["observability"], type: "feat", breaking_change: false, author: "Lee Benson", files_count: 21, insertions_count: 789, deletions_count: 7}, - {sha: "0fc7c55feff53af813c2a2717f8e8ead986fb333", date: "2020-09-18 09:09:57 -0400", description: "Accept more timestamp patterns in `to_timestamp`", pr_number: 3989, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 1, insertions_count: 19, deletions_count: 9}, - {sha: "bb5993d349a14d50b8e7d47b9f609e1e30a89400", date: "2020-09-18 17:08:03 -0400", description: "Include container_name in kubernetes_logs", pr_number: 4018, scopes: ["kubernetes_logs source"], type: "enhancement", breaking_change: false, author: "Raphael Taylor-Davies", files_count: 3, insertions_count: 47, deletions_count: 3}, - {sha: "778081044b83058b4b555311fa8ae33e17853911", date: "2020-09-20 12:26:42 -0400", description: "instrument and guard against double poll", pr_number: 4024, scopes: ["sinks"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 90, deletions_count: 15}, - {sha: "e6a84eb6bd48281ebb53a1225f39099f533251a0", date: "2020-09-21 00:37:57 -0400", description: "Add reconnect loop to `TcpSink`", pr_number: 4030, scopes: ["socket sink"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 116, deletions_count: 51}, - {sha: "316ec957214dc10aed7a8288ebe521291c91a89a", date: "2020-09-21 22:57:13 -0400", description: "Insert timestamp into stackdriver message", pr_number: 3833, scopes: ["gcp_stackdriver sink"], type: "enhancement", breaking_change: false, author: "FungusHumungus", files_count: 1, insertions_count: 48, deletions_count: 6}, - {sha: "b995485d08988c37e8d35730b3fc0b0a9b017be8", date: "2020-09-24 05:41:32 -0400", description: "Start reading logs at checkpoint", pr_number: 4043, scopes: ["kubernetes_logs source"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 37, deletions_count: 1}, - {sha: "ad77d20302cd77f5f00262a32d75d592a711fa86", date: "2020-09-25 08:31:03 -0400", description: "GraphQL client", pr_number: 3778, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 13, insertions_count: 2113, deletions_count: 11}, - {sha: "cfa8e78193e4ec5f0c7132c6edda90ae68c2ca2d", date: "2020-09-25 16:55:15 -0400", description: "Avoid calling `peer_addr`", pr_number: 3822, scopes: ["networking"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 5, insertions_count: 45, deletions_count: 39}, - {sha: "1ceb8fb7d290eedf80330065be102827628189fa", date: "2020-09-25 10:02:27 -0400", description: "Fix tokio signal behavior to handle a loop of signals", pr_number: 4095, scopes: ["shutdown"], type: "fix", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 9, deletions_count: 7}, - {sha: "fba1de4463b41a7fd42d626f3cb6b4971278c3ed", date: "2020-09-26 14:53:52 -0400", description: "add `format_timestamp` function", pr_number: 4075, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 4, insertions_count: 151, deletions_count: 3}, - {sha: "c66a7307e92a327c1c046398b9a4fa495d028ee6", date: "2020-09-27 15:48:22 -0400", description: "add `contains` function", pr_number: 4090, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 4, insertions_count: 247, deletions_count: 39}, - {sha: "f7858e83bbf1452afe5401cacbcb0dba44b2f1e1", date: "2020-09-27 17:40:09 -0400", description: "add `slice` function", pr_number: 4092, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 4, insertions_count: 290, deletions_count: 4}, - {sha: "5bfaff9527d93158c8570532fd0ae4eba890658f", date: "2020-09-28 08:13:02 -0400", description: "add `tokenize` function", pr_number: 4093, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 9, insertions_count: 261, deletions_count: 130}, - {sha: "c5ec225ac48bc0d1de08bf84b73569cb75a307b2", date: "2020-09-28 10:59:47 -0400", description: "more robust handling of split reads", pr_number: 4089, scopes: ["file source"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 4, insertions_count: 182, deletions_count: 91}, - {sha: "83f1887b77cd1986b777da167e575386e6b7327c", date: "2020-09-28 20:11:17 -0400", description: "Add container_image and pod_node_name annotations", pr_number: 4020, scopes: ["kubernetes_logs source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 3, insertions_count: 162, deletions_count: 5}, - {sha: "2bef814916bc54db2da09cd5594d7c6939b017a4", date: "2020-09-28 16:46:18 -0400", description: "Emit overwrite logs as debug (#3803)", pr_number: 4088, scopes: ["observability", "add_fields transform"], type: "feat", breaking_change: false, author: "Spencer Gilbert", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "95df9244f7444cc52ec16c9aefd23c3e5f0310ff", date: "2020-09-29 09:33:25 -0400", description: "Emit warning on incomplete UDP sent", pr_number: 4034, scopes: ["observability", "socket sink"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 3, insertions_count: 37, deletions_count: 1}, - {sha: "8c9a72b87608abb782f6812bdf8e34b307efb6fa", date: "2020-09-29 13:05:59 -0400", description: "add `strip_ansi_escape_codes` function", pr_number: 4170, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 3, insertions_count: 100, deletions_count: 2}, - {sha: "2a1ef473e84138ea06d5ba82ba4ae1f6288a0378", date: "2020-09-29 18:00:19 -0400", description: "Recompute configuration paths", pr_number: 4094, scopes: ["reload"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 79, deletions_count: 17}, - {sha: "9f7cbad9d65f86c083165027b5745587fdc63305", date: "2020-09-29 18:19:31 -0400", description: "Wait on Windows after components shutdown", pr_number: 4102, scopes: ["reload", "windows platform"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 8, deletions_count: 3}, - {sha: "43329e8e7b5715d89d92b262d7b1bfee25e796a1", date: "2020-09-30 08:18:55 -0400", description: "Do not serialize None in in-flight config", pr_number: 4192, scopes: ["config"], type: "fix", breaking_change: false, author: "Do Duy", files_count: 1, insertions_count: 15, deletions_count: 1}, - {sha: "3a1e96892283e907a3eb1f031d94e3c29f9bf2a2", date: "2020-09-30 12:25:32 -0400", description: "add `sha2` function", pr_number: 4188, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 6, insertions_count: 202, deletions_count: 4}, - {sha: "5ad63f7d146727326300d96d6be5f8c0dbb747d1", date: "2020-09-30 13:38:09 -0400", description: "add `sha3` function", pr_number: 4198, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 7, insertions_count: 215, deletions_count: 10}, - {sha: "2b52002740b1f595e1eeac77ca8b0326a70fd9e5", date: "2020-09-30 21:44:42 -0400", description: "add field's value in warn message when failing to parse", pr_number: 4215, scopes: ["observability", "json_parser transform"], type: "enhancement", breaking_change: false, author: "Mathieu Stefani", files_count: 2, insertions_count: 8, deletions_count: 4}, - {sha: "d645cae992706340cd8abf84039c8a4c5b808499", date: "2020-09-30 22:25:14 -0400", description: "Added distroless-libc and distroless-static docker container bases", pr_number: 4236, scopes: ["docker platform"], type: "enhancement", breaking_change: false, author: "Rick Richardson", files_count: 4, insertions_count: 51, deletions_count: 0}, - {sha: "9fceb7ddf0504b475cc59f971d04d8905b241b23", date: "2020-10-01 15:07:51 -0400", description: "Add `parse_duration` function", pr_number: 4186, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 7, insertions_count: 240, deletions_count: 4}, - {sha: "1e7abc23850f3cae83b4672698f89f34a594038c", date: "2020-10-01 15:47:22 -0400", description: "Add support for `summary` metric", pr_number: 4032, scopes: ["prometheus sink"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 150, deletions_count: 62}, - {sha: "6b2e43cb29428ffa8a341e80a1efaf4bac589515", date: "2020-10-01 14:53:54 -0400", description: "Sink should emit event on invalid metric", pr_number: 3636, scopes: ["statsd sink"], type: "fix", breaking_change: false, author: "FungusHumungus", files_count: 4, insertions_count: 42, deletions_count: 6}, - {sha: "6d585c96c0ccbfbed02eb883d3a8cf16d33786e0", date: "2020-10-01 07:14:21 -0400", description: "Ensure server starts immediately", pr_number: 4239, scopes: ["prometheus sink"], type: "fix", breaking_change: false, author: "Rick Richardson", files_count: 1, insertions_count: 1, deletions_count: 2}, - {sha: "24ff76f1899a36122ced0fc38846708a1bb2b807", date: "2020-10-01 16:33:11 -0400", description: "add a way to register and run vector as a service", pr_number: 2896, scopes: ["windows platform"], type: "feat", breaking_change: false, author: "Mathieu Stefani", files_count: 12, insertions_count: 938, deletions_count: 220}, - {sha: "57df969c7a2498d540946e73628f7d169c870914", date: "2020-10-01 22:44:53 -0400", description: "Fix 101 exit code on `api.enabled = true`", pr_number: 4254, scopes: ["startup"], type: "fix", breaking_change: false, author: "Lee Benson", files_count: 1, insertions_count: 16, deletions_count: 13}, - {sha: "a2cc2440307cd3fe34ba99d80445260286dace56", date: "2020-10-01 22:51:19 -0400", description: "Add EKS Web Identity Support", pr_number: 4049, scopes: ["auth", "kubernetes platform", "aws service"], type: "enhancement", breaking_change: false, author: "Raphael Taylor-Davies", files_count: 1, insertions_count: 44, deletions_count: 3}, - {sha: "d93dc92b964bc081ccc3303b35871ee256853bdd", date: "2020-10-02 14:46:12 -0400", description: "Initial GraphQL topology", pr_number: 4191, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 8, insertions_count: 138, deletions_count: 36}, - {sha: "f7a9b676c823ecfdda3ff14f268fd83d80056e17", date: "2020-10-02 13:23:25 -0400", description: "Set host key correctly", pr_number: 4229, scopes: ["humio_logs sink"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 3, insertions_count: 31, deletions_count: 4}, - {sha: "f77faa5a31c6ce337604c3102fea6f89df816830", date: "2020-10-04 00:09:22 -0400", description: "Initial `azure_monitor_logs` sink", pr_number: 2811, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Nazar Mishturak", files_count: 6, insertions_count: 854, deletions_count: 0}, - {sha: "9c3f09c172d3ae7f35c0707a60ffe6a874501112", date: "2020-10-05 09:30:56 -0400", description: "Improve error handling", pr_number: 4288, scopes: ["console sink"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 3, insertions_count: 62, deletions_count: 27}, - {sha: "51fd8679ac36b567c70b385e09b54b5bf59c5520", date: "2020-10-06 15:53:08 -0400", description: "add `format_number` function", pr_number: 4220, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 3, insertions_count: 275, deletions_count: 0}, - {sha: "3e0eb97804874df96af548778db70b5d20418031", date: "2020-10-07 17:27:29 -0400", description: "Use configured namespace for `up` metric", pr_number: 4437, scopes: ["apache_metrics source"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 15, deletions_count: 14}, - {sha: "e83c4cc2d7d1e37c8a0d6769e799345bc85e5ff3", date: "2020-10-07 16:11:54 -0400", description: "Add `host_metrics` source", pr_number: 4157, scopes: ["new source"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 11, insertions_count: 2101, deletions_count: 15}, - {sha: "a9b176b2f94df3a6996f2081c9a4bbc84c57e271", date: "2020-10-08 16:05:34 -0400", description: "Rename sink type and fallback on US region by default", pr_number: 4447, scopes: ["sematext_logs sink"], type: "fix", breaking_change: false, author: "Nedim Šabić²", files_count: 1, insertions_count: 7, deletions_count: 9}, - {sha: "b6a331bbdedd570ab7e8ffdbd4f10e48c0d9afe9", date: "2020-10-08 17:45:44 -0400", description: "Add `metric_to_log` transform", pr_number: 3552, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Daniel Jin", files_count: 8, insertions_count: 451, deletions_count: 2}, - {sha: "d3a5fe992e26d422e561b12cf294b748ea013d5d", date: "2020-10-09 00:39:45 -0400", description: "Merge `api::Options`", pr_number: 4342, scopes: ["config"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 98, deletions_count: 6}, - {sha: "a2723d7f2f162bdfb47473d6a3f0eb046dd1c87f", date: "2020-10-09 09:32:36 -0400", description: "Bidirectional source/transform/sink GraphQL types", pr_number: 4383, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 2, insertions_count: 627, deletions_count: 16}, - {sha: "06da2aa13c3e24a36a4d735e494ef1730f4d76c9", date: "2020-10-09 19:48:52 -0400", description: "Improve error messages", pr_number: 4429, scopes: ["observability", "log_to_metric transform"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 2, insertions_count: 112, deletions_count: 70}, - {sha: "d04df77033dd30a90b45733c989146e59db9da80", date: "2020-10-09 22:29:09 -0400", description: "Add alias to avoid breaking change", pr_number: 4469, scopes: ["file source"], type: "fix", breaking_change: false, author: "Do Duy", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "178e5bed9509497dc73ecadda509b2e69f403b17", date: "2020-10-09 17:43:05 -0400", description: "Use temporary data directory during `validate` command", pr_number: 4341, scopes: ["cli"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 134, deletions_count: 37}, - {sha: "1c41985f35cbc702925b919c3d660673f3a9c2ec", date: "2020-10-09 14:39:39 -0400", description: "New `aws_firehose` source and `aws_cloudwatch_logs_subscription_parser` transform", pr_number: 4101, scopes: ["new source"], type: "feat", breaking_change: false, author: "Jesse Szwedko", files_count: 20, insertions_count: 1752, deletions_count: 339}, - {sha: "36dea21a558d706535c980930f3c7b750b93bbfc", date: "2020-10-11 10:05:17 -0400", description: "New `sematext_metrics` sink", pr_number: 3501, scopes: ["new sink"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 13, insertions_count: 614, deletions_count: 23}, - {sha: "2b3b98cea0844e254d65fcb3c674f93bbe6560b2", date: "2020-10-11 18:52:53 -0400", description: "Option to specify `quantiles`", pr_number: 4412, scopes: ["metrics", "sinks"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 107, deletions_count: 28}, - {sha: "5ee768ac7fc31efbc80e9932b104d11c7272325f", date: "2020-10-11 19:54:04 -0400", description: "Allow inclusion of env field in request and default_env in config", pr_number: 4077, scopes: ["logdna sink"], type: "feat", breaking_change: false, author: "Robin Mattheussen", files_count: 3, insertions_count: 36, deletions_count: 0}, - {sha: "48064d005664e772e5664645240d7a713d1364bd", date: "2020-10-11 14:05:32 -0400", description: "Update log levels for transforms", pr_number: 4235, scopes: ["observability", "transforms"], type: "feat", breaking_change: false, author: "Spencer Gilbert", files_count: 8, insertions_count: 15, deletions_count: 15}, - {sha: "7dd7e8125e33751b38013c810629e408afdddf2e", date: "2020-10-12 00:39:38 -0400", description: "add TLS settings to influxdb_logs and influxdb_metrics sinks", pr_number: 4037, scopes: ["security", "networking", "influxdb_metrics sink"], type: "enhancement", breaking_change: false, author: "Mathieu Stefani", files_count: 5, insertions_count: 161, deletions_count: 29}, - {sha: "19585c3a9dbfe82590d92d96fb72a606e0f4b255", date: "2020-10-12 23:37:26 -0400", description: "Propagate close for Fanout and buffers::disk::Writer", pr_number: 4275, scopes: ["aws_s3 sink"], type: "fix", breaking_change: false, author: "Raphael Taylor-Davies", files_count: 3, insertions_count: 49, deletions_count: 26}, - {sha: "d4f9c0d33b03b7cf506d6dcb0cea41dcbabd7687", date: "2020-10-13 15:26:22 -0400", description: "Add a tags configuration options to add user-defined tags", pr_number: 4068, scopes: ["influxdb_metrics sink"], type: "enhancement", breaking_change: false, author: "Mathieu Stefani", files_count: 2, insertions_count: 87, deletions_count: 15}, - {sha: "594242f7c2550458eaa34e021be28668cb1be946", date: "2020-10-13 16:36:46 -0400", description: "Add vector user to adm in debian packaging", pr_number: 4544, scopes: ["debian platform"], type: "enhancement", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 6, deletions_count: 1}, - {sha: "1e95458540596b7e0058684afc8ac97caa84e992", date: "2020-10-14 17:21:43 -0400", description: "Support all socket types in statsd sink", pr_number: 3557, scopes: ["statsd sink"], type: "enhancement", breaking_change: true, author: "Do Duy", files_count: 9, insertions_count: 629, deletions_count: 365}, - {sha: "dae23aa69f2190aa9de46ad375531cf31d3fa470", date: "2020-10-14 09:39:32 -0400", description: "Do not automatically append /metrics", pr_number: 4276, scopes: ["prometheus_source"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 23, deletions_count: 9}, - {sha: "fe05027693a157269f089dbc3ebd5b9a251973b1", date: "2020-10-14 17:22:29 -0400", description: "Add support for dedicated Azure region", pr_number: 4507, scopes: ["azure_monitor_logs sink"], type: "feat", breaking_change: false, author: "Nazar Mishturak", files_count: 2, insertions_count: 42, deletions_count: 2}, - {sha: "2f2583b59062e686c9458d10c2679060c4600e4c", date: "2020-10-14 13:51:30 -0400", description: "Don't dedot keys", pr_number: 4103, scopes: ["http source"], type: "fix", breaking_change: true, author: "Daniel Jin", files_count: 1, insertions_count: 30, deletions_count: 2}, - {sha: "93dd72459df1bfdd6cd35499588d21859f15135c", date: "2020-10-15 18:47:13 -0400", description: "Add compression level", pr_number: 3032, scopes: ["sinks", "networking", "compression"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 14, insertions_count: 221, deletions_count: 74}, - {sha: "b7ec1a94f4e6d59288519c0a085afed8cbc00ad9", date: "2020-10-16 01:22:03 -0400", description: "Allow using custom selectors", pr_number: 4182, scopes: ["kubernetes_logs source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 2, insertions_count: 304, deletions_count: 24}, - {sha: "73709ea6962d00e5424fb38fa4b05d0411e43a19", date: "2020-10-16 08:27:32 -0400", description: "`vector top`, v1", pr_number: 4431, scopes: ["observability"], type: "feat", breaking_change: false, author: "Lee Benson", files_count: 15, insertions_count: 393, deletions_count: 13}, - {sha: "f1b99881b5d1db81c52a487d390c888a6550859c", date: "2020-10-16 14:32:19 -0400", description: "Support assume_role with EKS web identity", pr_number: 4406, scopes: ["aws service", "kubernetes platform", "auth"], type: "enhancement", breaking_change: false, author: "Raphael Taylor-Davies", files_count: 1, insertions_count: 11, deletions_count: 1}, - {sha: "20bc89ab8cf1979c35b15a98ebcf4e2ec51a758e", date: "2020-10-16 16:30:56 -0400", description: "Rename \"identifier_fields\" to \"group_by\"", pr_number: 4580, scopes: ["reduce transform"], type: "enhancement", breaking_change: true, author: "Jean Mertz", files_count: 4, insertions_count: 15, deletions_count: 15}, - {sha: "b99af35ef731f2070917715b1b8143cbe1523bc4", date: "2020-10-16 16:31:22 -0400", description: "\"concat_newline\" strategy merges using newline", pr_number: 4579, scopes: ["reduce transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 4, insertions_count: 45, deletions_count: 10}, - {sha: "ea224e12940f3ad4cdc87f1077a813dadce777a0", date: "2020-10-16 17:19:41 -0400", description: "Sanitize URL when tagging metrics", pr_number: 4410, scopes: ["apache_metrics source"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 72, deletions_count: 19}, - {sha: "986e62cb8d2565d7f230d9375439551325bb7596", date: "2020-10-16 23:35:15 -0400", description: "New `humio_metrics` sink.", pr_number: 4531, scopes: ["new sink"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 9, insertions_count: 304, deletions_count: 133}, - {sha: "12db2a2435c524c24e747b35a35b155c4360d877", date: "2020-10-16 21:05:12 -0400", description: "Treat all hyper::Error results as retriable", pr_number: 4575, scopes: ["sinks", "networking"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 6, deletions_count: 6}, - {sha: "16bed3642aff5851c41da67f37ba1e6d80276563", date: "2020-10-17 06:06:11 -0400", description: "Advanced container filtering", pr_number: 4586, scopes: ["kubernetes_logs source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 4, insertions_count: 649, deletions_count: 37}, - {sha: "fe965704308dc1f405bd38c0f098ef4118a8c0bc", date: "2020-10-17 05:06:33 -0400", description: "Add `parse_url` function", pr_number: 4428, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 5, insertions_count: 174, deletions_count: 0}, - {sha: "1ec7a8ba70435e290326cad207009bbe61d71636", date: "2020-10-18 01:43:36 -0400", description: "Support datadog logs new HTTPS transport", pr_number: 4164, scopes: ["datadog_logs sink", "networking"], type: "enhancement", breaking_change: false, author: "FungusHumungus", files_count: 5, insertions_count: 328, deletions_count: 49}, - {sha: "4c67be50157cd651dc728f5bde0f22552cd0bd49", date: "2020-10-18 11:07:59 -0400", description: "Basic auth support", pr_number: 4385, scopes: ["logplex source", "auth"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 6, insertions_count: 141, deletions_count: 43}, - {sha: "ba55fd0305af6d060c06c216a29310d1776c4e20", date: "2020-10-18 10:42:00 -0400", description: "Added region configuration parameter", pr_number: 4174, scopes: ["datadog service"], type: "enhancement", breaking_change: false, author: "FungusHumungus", files_count: 4, insertions_count: 47, deletions_count: 13}, - {sha: "0e40d1fee9eb16d0c86957764debd172620407e9", date: "2020-10-18 08:14:33 -0400", description: "Handle non-ASCII data in all values", pr_number: 4608, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 23, deletions_count: 11}, - {sha: "e982c684d9a6e6bf97134a31a3162d3a04a2d4b2", date: "2020-10-18 10:14:59 -0400", description: "Send auth header for healthchecks", pr_number: 4604, scopes: ["loki sink"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 48, deletions_count: 2}, - {sha: "fe5beb3ca61b441271d15858eb244a22e5d9f82d", date: "2020-10-20 17:22:15 UTC", description: "Initial `mongodb_metrics` implementation", pr_number: 4500, scopes: ["new source"], type: "feat", breaking_change: false, author: "Kirill Fomichev", files_count: 14, insertions_count: 2857, deletions_count: 22}, - {sha: "84e5986a4eff07536c7b2f688600d3a5aa5593ea", date: "2020-10-20 23:33:52 UTC", description: "Correctly handle service restart", pr_number: 4408, scopes: ["windows platform"], type: "enhancement", breaking_change: false, author: "Mathieu Stefani", files_count: 3, insertions_count: 206, deletions_count: 34}, - {sha: "31ba36840fa55a8d1709a6a639d60b393b86d7b7", date: "2020-10-21 04:57:11 UTC", description: "Add support for all socket types", pr_number: 4557, scopes: ["statsd source"], type: "enhancement", breaking_change: true, author: "Do Duy", files_count: 6, insertions_count: 290, deletions_count: 86}, - {sha: "0e74a647c4c12c7a48ce6bd34d66c18c2356445a", date: "2020-10-20 18:22:08 UTC", description: "Updated internal metrics names to match standards", pr_number: 4647, scopes: ["observability", "internal_metrics source"], type: "enhancement", breaking_change: true, author: "James Turnbull", files_count: 74, insertions_count: 284, deletions_count: 304}, - {sha: "716175c0575b05a725a9d8cd7d3f33d45f878df4", date: "2020-10-22 18:44:54 UTC", description: "Fix flag for `usermod` in postinst deb script", pr_number: 4694, scopes: ["debian platform"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "c447ecf1a6f5e39dd991177fd63ea00305559537", date: "2020-10-22 20:04:11 UTC", description: "Add internal events", pr_number: 4481, scopes: ["observability", "logfmt_parser transform"], type: "enhancement", breaking_change: false, author: "Jesse Szwedko", files_count: 3, insertions_count: 69, deletions_count: 11}, - {sha: "c4c8cb69971e3a57b36018507f719ddc9e96bc94", date: "2020-10-23 05:10:23 UTC", description: "Only sleep when backing off", pr_number: 4672, scopes: ["file source"], type: "perf", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 91, deletions_count: 5}, - {sha: "b65f9f873903e22a42b35a6e3e580a1b6e0006c8", date: "2020-10-24 04:01:52 UTC", description: "Add `namespace` to `Metric` ", pr_number: 4701, scopes: ["data model", "metrics"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 29, insertions_count: 372, deletions_count: 2}, - {sha: "4c015a04cd1cca9128e446600c97f78dd582fa6e", date: "2020-10-23 22:41:57 UTC", description: "Send batches of lines", pr_number: 4719, scopes: ["file source"], type: "perf", breaking_change: false, author: "Luke Steensen", files_count: 5, insertions_count: 57, deletions_count: 45}, - {sha: "e17298d48c9940208e2412b143531f5cf4bda534", date: "2020-10-24 07:57:39 UTC", description: "Fix API max payload size", pr_number: 4707, scopes: ["new_relic_logs sink"], type: "fix", breaking_change: false, author: "Matilda Smeds", files_count: 1, insertions_count: 37, deletions_count: 17}, - {sha: "176fdcfe689a85a1b756ef2866f6ef63ecac0705", date: "2020-10-26 18:31:03 UTC", description: "Force daemonset to redeploy when configmap is updated", pr_number: 4734, scopes: ["kubernetes platform"], type: "enhancement", breaking_change: false, author: "Spencer Gilbert", files_count: 2, insertions_count: 7, deletions_count: 4}, - {sha: "84dd243c0595196d8d6c61bb98c49067ad9eb3fb", date: "2020-07-30 01:13:41 UTC", description: "Fix default-msvc feature", pr_number: 3246, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "d64c8b15c4627ddf7424e9ef303fbb3ebb6ab1aa", date: "2020-07-29 18:40:47 UTC", description: "Fix typo in metrics name", pr_number: 3252, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "6dafbeb7c96a39779a65db923159626ffa107b96", date: "2020-07-30 03:59:18 UTC", description: "Kubernetes E2E test framework", pr_number: 2702, scopes: ["tests"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 32, insertions_count: 1855, deletions_count: 152}, - {sha: "cde9547e69f7808925408443c79f580bd7092d86", date: "2020-08-05 00:44:07 UTC", description: "tcp merge_and_fork", pr_number: 3340, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 6, deletions_count: 4}, - {sha: "a391434e97a078f6ea92691bba76f9af91ad1866", date: "2020-08-07 00:47:32 UTC", description: "Add build.rs to CI trigger paths", pr_number: 3367, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "4cfc66ec32590810ca37d2fde9efdfdd383a0602", date: "2020-08-08 18:03:35 UTC", description: "E2E CI flows optimization", pr_number: 3353, scopes: ["ci"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 4, insertions_count: 188, deletions_count: 48}, - {sha: "c0b6662f8e7f406626102e416d89d8534485181c", date: "2020-08-18 04:58:57 UTC", description: "Ship Helm Chart from release CI workflow", pr_number: 3459, scopes: ["ci"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 3, insertions_count: 39, deletions_count: 13}, - {sha: "2288fd237648529db57373eba09384f56c2f8093", date: "2020-08-20 07:07:05 UTC", description: "Wrap StreamSink around TcpSink", pr_number: 3495, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Do Duy", files_count: 2, insertions_count: 6, deletions_count: 4}, - {sha: "931f6401702e690a4a513e18ae411c25e1a92b0a", date: "2020-08-26 18:52:05 UTC", description: "Only update auto-concurrency RTT from OK responses", pr_number: 3493, scopes: ["performance"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 155, deletions_count: 111}, - {sha: "7094f511b1bf1ea9e639320fe20199c7d50d3b28", date: "2020-09-02 00:04:23 UTC", description: "Fix Splunk integration test", pr_number: 3661, scopes: ["tests"], type: "chore", breaking_change: false, author: "Lee Benson", files_count: 3, insertions_count: 27, deletions_count: 3}, - {sha: "85eff5814997d07cd4a2d99cc17f34c694c32111", date: "2020-09-09 02:33:31 UTC", description: "add deny.toml", pr_number: 3765, scopes: ["ci"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 12, deletions_count: 0}, - {sha: "50a9c3af6779b887f9e72a313f7caee4c0d3c41c", date: "2020-09-10 07:20:34 UTC", description: "update next_addr_v6", pr_number: 3785, scopes: ["ci"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 3, deletions_count: 7}, - {sha: "439a9cfdb48d976f19a0d2e5b84fc268752d93ba", date: "2020-09-10 22:50:41 UTC", description: "Fix journald tests", pr_number: 3794, scopes: ["tests"], type: "chore", breaking_change: false, author: "Do Duy", files_count: 1, insertions_count: 4, deletions_count: 3}, - {sha: "74b43b7ff208ae9531729acdd5331eb89a49851b", date: "2020-09-10 22:05:52 UTC", description: "Rework auto concurrency backpressure logic", pr_number: 3804, scopes: ["networking"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 12, deletions_count: 6}, - {sha: "e55ac69b6a51e4c81e04b643c838459ecee65fdf", date: "2020-09-16 03:04:16 UTC", description: "expand macros before validation", pr_number: 3894, scopes: ["config"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 42, deletions_count: 2}, - {sha: "04a569a4a418f36c9b7d017151c2edc34e10758b", date: "2020-09-17 17:51:26 UTC", description: "Add new set of functions", pr_number: 3767, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 8, insertions_count: 1691, deletions_count: 49}, - {sha: "b40b7b661599982eaab5eb8ce3dfbbb0e14ca5b3", date: "2020-09-24 17:44:36 UTC", description: "named function arguments", pr_number: 3927, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 8, insertions_count: 1163, deletions_count: 413}, - {sha: "ebacf5728c8e56d7cd2b2cb1bac8dbe1901e79a6", date: "2020-09-24 23:23:53 UTC", description: "Update tokio signal to avoid unnecessary shutdowns.", pr_number: 4025, scopes: ["windows platform"], type: "fix", breaking_change: false, author: "Ana Hobden", files_count: 5, insertions_count: 36, deletions_count: 124}, - {sha: "cc324ca46ef1fe500802601efd04dc9844ab96c6", date: "2020-09-29 03:23:40 UTC", description: "fix clippy warnings for integration tests", pr_number: 4171, scopes: ["ci"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 8, insertions_count: 44, deletions_count: 38}, - {sha: "d8b368b86f6736f21ec974c4aae0020df0a0ba0a", date: "2020-10-07 20:42:24 UTC", description: "Add musl x86/aarch64 platforms", pr_number: 3701, scopes: ["platforms"], type: "feat", breaking_change: false, author: "Ana Hobden", files_count: 19, insertions_count: 220, deletions_count: 58}, - {sha: "1dc820049d6ed9d2884c1d583e76d65cdc6eab21", date: "2020-10-09 21:38:40 UTC", description: "Adjust auto concurrency tuning defaults", pr_number: 4476, scopes: ["networking"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 16, deletions_count: 14}, - {sha: "2fa1480b3edac8457b5266d58a476daa895164ac", date: "2020-10-19 03:42:58 UTC", description: "Use Signer::sign_to_vec to support older OpenSSL versions", pr_number: 4623, scopes: ["azure_monitor_logs sink"], type: "fix", breaking_change: false, author: "Nazar Mishturak", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "42a26f5eec2287012bc21b015d0bab43f818913b", date: "2020-10-20 00:14:40 UTC", description: "Topology added/removed GraphQL subscriptions", pr_number: 4581, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 8, insertions_count: 428, deletions_count: 8}, - {sha: "fb0191c52f78e903a107b702f7dacd52815b429f", date: "2020-10-21 02:00:47 UTC", description: "add `floor`, `round` and `ceil` remap functions", pr_number: 4646, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 6, insertions_count: 472, deletions_count: 0}, - {sha: "f51e4d6a63f157d31036d2234b5abc59b2509edf", date: "2020-10-21 03:03:39 UTC", description: "add `parse_syslog` function", pr_number: 4632, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 4, insertions_count: 289, deletions_count: 2}, - {sha: "1c9c2f8fdf234a608f09ad5e7ca91fc65cdf6f08", date: "2020-10-21 23:57:54 UTC", description: "add `split` function ", pr_number: 4290, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 43, insertions_count: 928, deletions_count: 361}, - {sha: "4ec28751c143ffa68a20cf38e6e0492adeb56121", date: "2020-10-22 06:32:25 UTC", description: "Improve networking performance", pr_number: 4668, scopes: ["statsd sink"], type: "fix", breaking_change: false, author: "Do Duy", files_count: 5, insertions_count: 181, deletions_count: 212}, - {sha: "30f23c7c6e154543492e40b2f978d7586451fc76", date: "2020-10-22 18:29:46 UTC", description: "API host metrics", pr_number: 4652, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 16, insertions_count: 1429, deletions_count: 195}, - {sha: "7762f6491530b6f10083dc71f2d9c3f99cdef299", date: "2020-10-23 22:26:33 UTC", description: "syslog test should assume local time zone", pr_number: 4711, scopes: ["remap transform"], type: "fix", breaking_change: false, author: "FungusHumungus", files_count: 1, insertions_count: 10, deletions_count: 10}, - {sha: "f683f9350d45a3f80de09a65f5a14185f31e99af", date: "2020-10-24 03:36:13 UTC", description: "add `log` function", pr_number: 4640, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 4, insertions_count: 118, deletions_count: 2}, - {sha: "d1240a6dadd81d59eab5e179af68d8eb8fc1a97d", date: "2020-10-24 20:09:33 UTC", description: "use application/json for json encoding to Datadog", pr_number: 4690, scopes: ["datadog_logs sink"], type: "fix", breaking_change: false, author: "FungusHumungus", files_count: 1, insertions_count: 15, deletions_count: 4}, - {sha: "79d146eb849539335c3f06b8df073d71767052f6", date: "2020-10-26 22:00:29 UTC", description: "add \"remap-lang\" crate", pr_number: 4695, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 25, insertions_count: 1838, deletions_count: 1}, - {sha: "10f2c4b06471bbc3149552f768263e84b484f30a", date: "2020-10-26 17:40:55 UTC", description: "Add missing dependency to nightly docker-release", pr_number: 4747, scopes: ["ci"], type: "chore", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "d75a672342c3e7439591aa9c5d4cf669ced57bac", date: "2020-10-27 23:40:19 UTC", description: "add `replace` and `flatten` remap functions", pr_number: 4703, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 5, insertions_count: 592, deletions_count: 8}, - {sha: "e9440c8bd4a54cd893bb5e1fc097facd237cd8c1", date: "2020-10-27 18:24:04 UTC", description: "Switch from topology to components terminology", pr_number: 4761, scopes: ["observability"], type: "chore", breaking_change: false, author: "Luc Perkins", files_count: 10, insertions_count: 1169, deletions_count: 1169}, - {sha: "38d9e1bf6b7431c30358afc3c428d1effe1ff0ca", date: "2020-10-28 02:05:28 UTC", description: "annotate logs with query parameters", pr_number: 4733, scopes: ["logplex source"], type: "enhancement", breaking_change: false, author: "Christian Gregg", files_count: 6, insertions_count: 194, deletions_count: 70}, - {sha: "333f71832dd048a88a1395a6528e800e68dd4d31", date: "2020-10-28 00:27:08 UTC", description: "Count total bytes for logs", pr_number: 4705, scopes: ["blackhole sink"], type: "chore", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 5, deletions_count: 8}, - {sha: "fe87d036f9b2b1f2235f4d193bf90c364d27fdb6", date: "2020-10-28 01:00:57 UTC", description: "Make query_parameters optional", pr_number: 4782, scopes: ["config"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 2, deletions_count: 0}, - {sha: "068d158327d79d3c9730ffebd8fdb9c611c8124d", date: "2020-10-28 04:27:49 UTC", description: "Updated remaining log messages to match standards", pr_number: 4737, scopes: ["logs"], type: "chore", breaking_change: false, author: "James Turnbull", files_count: 155, insertions_count: 572, deletions_count: 513}, - {sha: "07b9cbbe24ed1987edc134b989f29b7225acce23", date: "2020-10-28 18:22:25 UTC", description: "`vector top` v1 dashboard", pr_number: 4702, scopes: ["observability"], type: "feat", breaking_change: false, author: "Lee Benson", files_count: 9, insertions_count: 634, deletions_count: 186}, - {sha: "256d55c720ab8e8fade0d5d661eebdbdf0e58856", date: "2020-10-28 20:56:23 UTC", description: "swap out remap impl with new remap-lang crate", pr_number: 4709, scopes: ["remap transform"], type: "chore", breaking_change: false, author: "Jean Mertz", files_count: 97, insertions_count: 5203, deletions_count: 4958}, - {sha: "faec21c15db467b3b03ffa0fc664ed235549414a", date: "2020-10-28 21:22:21 UTC", description: "add \"remap\" condition type", pr_number: 4743, scopes: ["processing"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 49, insertions_count: 377, deletions_count: 91}, - {sha: "bda26823dfc5baa4fb5574c221693e33fcefe51f", date: "2020-10-28 21:24:26 UTC", description: "add \"match\" remap function", pr_number: 4770, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 9, insertions_count: 137, deletions_count: 6}, - {sha: "0ea323574d8b5fbf1dfdb835dd58242fe55bf48c", date: "2020-10-28 21:35:26 UTC", description: "add \"starts_when\" option", pr_number: 4771, scopes: ["reduce transform"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 2, insertions_count: 329, deletions_count: 23}, - {sha: "3f11f7d29a738d0873b68d7c6e321bf9d9d8e29e", date: "2020-10-29 19:44:19 UTC", description: "Uses IP address as source_ip instead of IP:Port in Syslog source UDP mode", pr_number: 4793, scopes: ["syslog"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "9952546f5c64544055e320f2a57b5dc690872f86", date: "2020-10-30 01:38:49 UTC", description: "support numbers in paths", pr_number: 4800, scopes: ["config"], type: "fix", breaking_change: false, author: "Jean Mertz", files_count: 4, insertions_count: 18, deletions_count: 2}, - {sha: "32162bb9d4b72246d16bed87eec4d696bebd075d", date: "2020-10-30 10:55:24 UTC", description: "Expose the performance related parameters", pr_number: 4751, scopes: ["kubernetes_logs source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 43, deletions_count: 7}, - {sha: "a5b9f6765f93a699c6bb37ab290bbb243a4525aa", date: "2020-11-02 03:57:20 UTC", description: "Resolve port conflict in sinks", pr_number: 4735, scopes: ["reload"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 264, deletions_count: 31}, - {sha: "d55bc0bde4d607e032dd7de4786438e7230fb933", date: "2020-11-02 01:30:09 UTC", description: "Run tests in on pull requests", pr_number: 4736, scopes: ["ci"], type: "chore", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "1d290794f863668037fc6669adae46d4c650bc68", date: "2020-11-03 02:58:44 UTC", description: "support else-if conditional expression", pr_number: 4814, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 3, insertions_count: 64, deletions_count: 3}, - {sha: "8bf81ed4cf2cbc33e8c18ca5cd60689cba795ce3", date: "2020-11-03 02:59:56 UTC", description: "add variable support", pr_number: 4802, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 7, insertions_count: 45, deletions_count: 13}, - {sha: "6ffdf722d1bc234e03da2d26db9e0b12ab5e9ca2", date: "2020-11-03 07:34:32 UTC", description: "use custom retry logic", pr_number: 4813, scopes: ["clickhouse sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 61, deletions_count: 5}, - {sha: "eac3dba119a61229d74c6868d1cc744e35f1411f", date: "2020-11-03 18:51:36 UTC", description: "Add the ability to set conatiner ports at vector-agent Helm chart", pr_number: 4835, scopes: ["kubernetes platform"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 3, insertions_count: 9, deletions_count: 0}, - {sha: "b04f4310116615dee6df12b7a42fdf626b2cec2f", date: "2020-11-03 20:54:17 UTC", description: "Add internal events", pr_number: 4480, scopes: ["aws_ec2_metadata transform"], type: "enhancement", breaking_change: false, author: "Jesse Szwedko", files_count: 3, insertions_count: 200, deletions_count: 137}, - {sha: "497c76d54189953c62a959d9101453e613c932d2", date: "2020-11-04 02:35:31 UTC", description: "Adds optional file output to generator", pr_number: 4819, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Ian Henry", files_count: 1, insertions_count: 70, deletions_count: 12}, - {sha: "c2e71041f2e4aa80246b61d00d75426fa01a8251", date: "2020-11-04 23:48:25 UTC", description: "Add `namespace` option", pr_number: 4831, scopes: ["log_to_metric transform"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 69, deletions_count: 18}, - {sha: "f6b443bcccb05ded4f3c2fdf422eda76b145591c", date: "2020-11-05 07:20:37 UTC", description: "add `replace` function", pr_number: 4861, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 7, insertions_count: 299, deletions_count: 161}, - {sha: "e3327f47863e178c21fa9a3da45e446b850d5868", date: "2020-11-05 07:23:14 UTC", description: "unescape forward slash in regex", pr_number: 4864, scopes: ["remap"], type: "fix", breaking_change: false, author: "Jean Mertz", files_count: 2, insertions_count: 40, deletions_count: 3}, - {sha: "40c7e1248d54a8f1a54c2b976de9d4ca0448d575", date: "2020-11-05 07:49:22 UTC", description: "display full error chain", pr_number: 4859, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 5, insertions_count: 64, deletions_count: 20}, - {sha: "d52d3871880ca8e37b5b91428ffdfa703e705387", date: "2020-11-05 04:23:19 UTC", description: "Add back armv7 support", pr_number: 4871, scopes: ["platforms"], type: "chore", breaking_change: false, author: "James Turnbull", files_count: 13, insertions_count: 270, deletions_count: 42}, - {sha: "d1caa067ed0ea49853eebb847bf1b64209dbac01", date: "2020-11-05 21:54:37 UTC", description: "Parse RFC3614 messages lacking an app name", pr_number: 4876, scopes: ["syslog source"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "515f9626d313773cd36a555839c9a54e610393e8", date: "2020-11-05 20:37:35 UTC", description: "Add Cue sources for the Vector CLI", pr_number: 4880, scopes: ["config"], type: "chore", breaking_change: false, author: "Luc Perkins", files_count: 1, insertions_count: 243, deletions_count: 0}, - {sha: "38816fd245371717033e8b881dbd5e478267bb70", date: "2020-11-06 02:59:39 UTC", description: "Make print_amount an optional option with a default of 1000", pr_number: 4883, scopes: ["blackhole sink"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 2, insertions_count: 13, deletions_count: 3}, - {sha: "aade9e6e5c236f454c010e5e7366722ffa9b93b8", date: "2020-11-06 19:50:53 UTC", description: "Support template syntax in hostname and tags field", pr_number: 4884, scopes: ["logdna sink"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 4, insertions_count: 247, deletions_count: 51}, - {sha: "94efee7c92b5fb208dbf39214ddd997b07226764", date: "2020-11-07 03:59:31 UTC", description: "Fix passing --push arg at build-docker.sh", pr_number: 4900, scopes: ["ci"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 6, deletions_count: 1}, - {sha: "f58ed206591544815ddf1416adcb0fa657a1d413", date: "2020-11-06 20:09:43 UTC", description: "Add TLS and authentication options", pr_number: 4881, scopes: ["prometheus source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 85, deletions_count: 4}, - {sha: "84010c6ff3595c932a622b76d2dfb006f7609c36", date: "2020-11-06 23:00:04 UTC", description: "Add initial setup for metrics docs in Cue", pr_number: 4892, scopes: ["config"], type: "chore", breaking_change: false, author: "Luc Perkins", files_count: 4, insertions_count: 94, deletions_count: 2}, - {sha: "a58b8191f884051aa578761d90ff16c6385de505", date: "2020-11-10 01:56:26 UTC", description: "dont use flatten for logs config fields", pr_number: 4924, scopes: ["humio_metrics sink"], type: "fix", breaking_change: false, author: "FungusHumungus", files_count: 3, insertions_count: 110, deletions_count: 36}, - {sha: "ab520b1589e5100ae9aba1185e423bd8c03c5355", date: "2020-11-09 20:58:46 UTC", description: "Prometheus remote_write", pr_number: 4856, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 23, insertions_count: 1577, deletions_count: 746}, - {sha: "74067f309ddaec7dec8ae0c494cb000eadfd5439", date: "2020-11-10 00:24:28 UTC", description: "Update WASM transform to implement TaskTransform", pr_number: 4934, scopes: ["wasm transform"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 126, deletions_count: 122}, - {sha: "95ce5c05dac8bea5cfe0f8998fed80086557b079", date: "2020-11-10 06:02:48 UTC", description: "`vector top`, release candidate", pr_number: 4886, scopes: ["observability"], type: "feat", breaking_change: false, author: "Lee Benson", files_count: 29, insertions_count: 1590, deletions_count: 525}, - {sha: "a40a9529feec9bfccdd3391819adc3b20fb180d5", date: "2020-11-11 01:52:14 UTC", description: "Add configurable endpoint", pr_number: 4873, scopes: ["gcp_pubsub sink"], type: "enhancement", breaking_change: false, author: "rpaaron", files_count: 2, insertions_count: 27, deletions_count: 9}, - {sha: "a228a28e4fb5cad26ad5165a6832e570d41a6a72", date: "2020-11-10 22:22:11 UTC", description: "Kind/type for `vector top`", pr_number: 4928, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 7, insertions_count: 140, deletions_count: 42}, - {sha: "c45fa68f03082f1b4c3d33951b27d516d7a1e10c", date: "2020-11-11 07:28:11 UTC", description: "Remove hardcoded configs in Helm chart", pr_number: 4938, scopes: ["kubernetes platform"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 5, insertions_count: 22, deletions_count: 14}, - {sha: "30dc1b8176fec39626189a1552287875a7c099d7", date: "2020-11-11 03:43:43 UTC", description: "`aws_s3` source", pr_number: 4779, scopes: ["new source"], type: "feat", breaking_change: false, author: "Jesse Szwedko", files_count: 15, insertions_count: 1628, deletions_count: 159}, - {sha: "ee6c24517b8dca2e664f20b42734b7fc368843fc", date: "2020-11-11 08:16:04 UTC", description: "Fix markdown errors", pr_number: 4954, scopes: ["rfcs"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 6, deletions_count: 4}, - {sha: "4b82090ce4900ecd837a2196c7527210a199fa46", date: "2020-11-11 20:21:00 UTC", description: "Add span to future", pr_number: 4944, scopes: ["http source"], type: "fix", breaking_change: false, author: "Do Duy", files_count: 1, insertions_count: 78, deletions_count: 72}, - {sha: "45b744c2bb89ea7824be318ab680d784883aa5b1", date: "2020-11-11 20:21:36 UTC", description: "Restart journalctl on errors, save checkpoint on shutdown", pr_number: 4836, scopes: ["journald source"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 1, insertions_count: 270, deletions_count: 242}, - {sha: "0b2c8f48756c8ca07800821f3065618c0c9b173c", date: "2020-11-11 09:10:14 UTC", description: "(key/value) kv parser", pr_number: 3284, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Nick Hagianis", files_count: 10, insertions_count: 727, deletions_count: 2}, - {sha: "ae42a8dd68c4afdbb30592bdb69781e8f51cf283", date: "2020-11-12 04:39:16 UTC", description: "make scrape interval configurable", pr_number: 4998, scopes: ["sources"], type: "enhancement", breaking_change: false, author: "Daniel Jin", files_count: 1, insertions_count: 24, deletions_count: 5}, - {sha: "63ee6d486ab5db57548060eaacbed971fd9b7136", date: "2020-11-12 16:54:56 UTC", description: "Humanized formatting for `vector top` metrics", pr_number: 4945, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 6, insertions_count: 182, deletions_count: 50}, - {sha: "d0b414e7839524210e6c550dadd74323774008ec", date: "2020-11-12 16:55:46 UTC", description: "Batch events processed total", pr_number: 4958, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 1, insertions_count: 48, deletions_count: 23}, - {sha: "63acc541c1b59bf46892517dcc0d5c6078ca2087", date: "2020-11-12 16:23:16 UTC", description: "Added batch subscriptions for component bytes and errors", pr_number: 5002, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Steve Hall", files_count: 2, insertions_count: 138, deletions_count: 0}, - {sha: "7c72f888871a808e1da01c3a67df1607434d1f82", date: "2020-11-12 19:28:34 UTC", description: "Document `vector top` CLI", pr_number: 4907, scopes: ["config"], type: "chore", breaking_change: false, author: "Luc Perkins", files_count: 1, insertions_count: 46, deletions_count: 2}, - {sha: "2dc1869a90036c076d6f7ffb9a15eb46180eed19", date: "2020-11-13 17:21:31 UTC", description: "API batch support + tests", pr_number: 5004, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 4, insertions_count: 235, deletions_count: 4}, - {sha: "23d0702f529dfda66ba723a871272e6e2599a32d", date: "2020-11-14 01:09:02 UTC", description: "API version + hostname queries", pr_number: 5018, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 3, insertions_count: 84, deletions_count: 0}, - {sha: "d06fae42d5f05faf7cc9717f93e9b860704ece1f", date: "2020-11-13 20:53:19 UTC", description: "Add PodIPs into Pod Metadata events", pr_number: 4887, scopes: ["kubernetes_logs source"], type: "enhancement", breaking_change: false, author: "Ian Henry", files_count: 8, insertions_count: 224, deletions_count: 6}, - {sha: "eaaab650d81999aeaf88b03891a83082b31a19ea", date: "2020-11-13 21:31:35 UTC", description: "More debug info on more HTTP requests", pr_number: 4999, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 26, insertions_count: 136, deletions_count: 84}, - {sha: "196aeec85cd9e703b2385b06344dfa74e180d6c4", date: "2020-11-14 04:40:29 UTC", description: "add internal option to ignore missing files", pr_number: 5026, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 4, insertions_count: 56, deletions_count: 29}, - {sha: "b5e2ceaa74f50d87f810ac02fd2295eb3b407150", date: "2020-11-15 11:59:41 UTC", description: "Edited a few vector top error messages", pr_number: 5034, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "b8f83d73bb088269c98525fdef28962b222da983", date: "2020-11-16 07:42:03 UTC", description: "New `nats` sink", pr_number: 3605, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Eric Lee", files_count: 10, insertions_count: 764, deletions_count: 7}, - {sha: "e2d01b83f92a50e7d0e9e48a9f235f1007a2b305", date: "2020-11-16 21:59:54 UTC", description: "compile-time program result type checking", pr_number: 4902, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 65, insertions_count: 3822, deletions_count: 299}, - {sha: "f06c01f218f75ee1c7b610ac55523d5fcf823d8a", date: "2020-11-17 04:46:57 UTC", description: "support enum variants for function arguments", pr_number: 5008, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 11, insertions_count: 431, deletions_count: 270}, - {sha: "f5f2031f9a51dd39291706b5b0e0982ed9e78191", date: "2020-11-16 21:51:33 UTC", description: "Fix fanout remove-while-iterating bug", pr_number: 5027, scopes: ["topology"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 172, deletions_count: 99}, - {sha: "5d06064413da748247bc6a92784125388c4089b7", date: "2020-11-17 08:51:17 UTC", description: "use path arguments for `del` and `only_field` functions", pr_number: 5015, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 9, insertions_count: 151, deletions_count: 170}, - {sha: "22ac9f9154b887e5c0587b41c836c1617a183684", date: "2020-11-17 05:00:04 UTC", description: "Renamed docker source to docker_logs", pr_number: 5039, scopes: ["docker source"], type: "enhancement", breaking_change: false, author: "James Turnbull", files_count: 10, insertions_count: 132, deletions_count: 101}, - {sha: "442615879c35d30a55d03e30160ecd5965bd4b4c", date: "2020-11-18 00:51:08 UTC", description: "expressions no longer return an option", pr_number: 5053, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 52, insertions_count: 359, deletions_count: 609}, - {sha: "931d97dc7579aa2ba9198b91c121ac81df507cca", date: "2020-11-18 07:19:39 UTC", description: "Fix JSON compression", pr_number: 5050, scopes: ["http sink"], type: "fix", breaking_change: false, author: "Do Duy", files_count: 1, insertions_count: 67, deletions_count: 4}, - {sha: "06cf78868835c2c33e0d859402c5b2984d7e075b", date: "2020-11-18 02:24:35 UTC", description: "Rename `version` -> `versionString` in GraphQL schema", pr_number: 5074, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 6, insertions_count: 53, deletions_count: 4}, - {sha: "6bce5ac9d79a7662e97adce386ea93c8888f3bcb", date: "2020-11-17 22:20:48 UTC", description: "Flush messages", pr_number: 5069, scopes: ["splunk_hec source"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 38, deletions_count: 17}, - {sha: "c5fb3a1b12c9f51411784307f8c7ddd2649026c6", date: "2020-11-18 00:07:38 UTC", description: "Initial `aws_ecs_metrics` source", pr_number: 4698, scopes: ["new source"], type: "feat", breaking_change: false, author: "Daniel Jin", files_count: 9, insertions_count: 2017, deletions_count: 2}, - {sha: "287a4d8fddf6e60f922492e75060d5722c58fb8a", date: "2020-11-18 19:24:58 UTC", description: "Initial `aws_sqs` sink", pr_number: 4675, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Kirill Fomichev", files_count: 9, insertions_count: 568, deletions_count: 1}, - {sha: "fcb6e39e2fc9686fdd25df212bb411f61b2533b4", date: "2020-11-18 17:55:26 UTC", description: "undefined path or variable return null", pr_number: 5056, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 31, insertions_count: 46, deletions_count: 196}, - {sha: "a68ea1f4a0ffd6aba5abdc24a5237fd23dcea9c5", date: "2020-11-18 18:54:52 UTC", description: "Add I/O (throughput) columns to `vector top`", pr_number: 5016, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 21, insertions_count: 698, deletions_count: 371}, - {sha: "c357da46928b23db5016d6b5da17b44c49fb73e3", date: "2020-11-18 19:54:00 UTC", description: "Flush sinks in a couple of more places", pr_number: 5082, scopes: ["topology"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 34, deletions_count: 24}, - {sha: "fcd26bd84484168000603bbfe0713614608653cd", date: "2020-11-19 19:30:17 UTC", description: "Fix flaky `timely_shutdown_docker` test", pr_number: 5101, scopes: ["tests"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "1e441e969dc8f63ae40216d0f2a2acc422076c56", date: "2020-11-20 05:32:21 UTC", description: "add RUSTSEC-2020-0071 to deny.toml", pr_number: 5117, scopes: ["ci"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 8, deletions_count: 1}, - {sha: "80587a2956383582708344e70cc425f58f9c933b", date: "2020-11-20 00:41:39 UTC", description: "Fix output timestamp", pr_number: 5118, scopes: ["prometheus sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 86, deletions_count: 18}, - {sha: "c909c42292db7804a55d2635825724d33f80314e", date: "2020-11-20 02:02:25 UTC", description: "Fix flaky `configuration_path_recomputed` test", pr_number: 5128, scopes: ["tests"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 8, deletions_count: 4}, - {sha: "c88040b9f6d29d83987fb0e536562b41888c8e96", date: "2020-11-20 04:47:35 UTC", description: "clean up file format and fix features", pr_number: 5133, scopes: ["file source"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 3, deletions_count: 1}, - {sha: "37d5e73d9459eb6760ed0403c0df9b5fdc6c4555", date: "2020-11-20 07:49:27 UTC", description: "Fix test failure for empty metrics", pr_number: 5134, scopes: ["host_metrics source"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 44, deletions_count: 39}, - {sha: "f1d162d44f963fdb79602ef2167c2a3d6eceb234", date: "2020-11-21 04:03:15 UTC", description: "Expire checkpoints", pr_number: 5146, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 4, insertions_count: 91, deletions_count: 16}, - {sha: "31fb077080696539fab3fa7299a12e3a143e0aae", date: "2020-11-21 05:20:31 UTC", description: "Include kafka metadata as optional keys", pr_number: 5153, scopes: ["kafka source"], type: "enhancement", breaking_change: false, author: "Spencer Gilbert", files_count: 2, insertions_count: 66, deletions_count: 4}, - {sha: "68f5907fe78f1c77294dec53588ad2b53d05e536", date: "2020-11-22 03:05:32 UTC", description: "Add ingestion timestamp", pr_number: 4795, scopes: ["kubernetes_logs source"], type: "feat", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 18, deletions_count: 2}, - {sha: "58d6e8ffa9f1fe7f5fdf31359435c8bc9f9e26c2", date: "2020-11-23 03:02:01 UTC", description: "Add rating by `index`", pr_number: 4918, scopes: ["sampler transform"], type: "enhancement", breaking_change: true, author: "Kruno Tomola Fabro", files_count: 6, insertions_count: 178, deletions_count: 104}, - {sha: "ae7e0ce06af1b6a3165c7d5e5f4994055ac424ab", date: "2020-11-23 19:38:05 UTC", description: "Support basic-auth credentials in endpoint configuation", pr_number: 5095, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 5, insertions_count: 147, deletions_count: 36}, - {sha: "cf8dee9dbc65c0c2e3232b60d82788018268f932", date: "2020-11-23 19:01:21 UTC", description: " Allow querying transform outputs on transform components", pr_number: 5171, scopes: ["api"], type: "enhancement", breaking_change: false, author: "Steve Hall", files_count: 2, insertions_count: 32, deletions_count: 0}, - {sha: "44d2945c9cdc03f8ee084e4228be42acfcd19096", date: "2020-11-24 06:41:50 UTC", description: "Expose internal metrics cardinality as a internal metric counter", pr_number: 4615, scopes: ["metrics"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 92, deletions_count: 10}, - {sha: "4ad53dd9a01a40aecfaddfc2c9e865e39d655fa8", date: "2020-11-24 02:32:45 UTC", description: "Upgrade bollard to 0.9 to close#4169", pr_number: 5189, scopes: ["docker_logs source"], type: "chore", breaking_change: false, author: "James Turnbull", files_count: 4, insertions_count: 30, deletions_count: 17}, - {sha: "18b9c0fade267e4833fa62067ba061ca84f35801", date: "2020-11-25 00:10:23 UTC", description: "Handle config warnings for `validate` command ", pr_number: 5044, scopes: ["cli"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 11, insertions_count: 90, deletions_count: 64}, - {sha: "3cbb55bacc3f2df07e192a78fc44a62c8e2bf258", date: "2020-11-25 18:53:27 UTC", description: "Add test for component links", pr_number: 5218, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Steve Hall", files_count: 4, insertions_count: 138, deletions_count: 1}, - {sha: "0d4d66fedcc7eb13e0cfca773d30a91d34b25eb4", date: "2020-11-26 06:46:35 UTC", description: "Initial `nginx_metrics` source implementation", pr_number: 5209, scopes: ["new source"], type: "feat", breaking_change: false, author: "Kirill Fomichev", files_count: 19, insertions_count: 736, deletions_count: 29}, - {sha: "89ae91c1da0cbb789c4ae429172632d66f7252d5", date: "2020-11-26 18:47:24 UTC", description: "Allow tenant_id to be templatable on loki sink", pr_number: 5204, scopes: ["loki sink"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 2, insertions_count: 110, deletions_count: 20}, - {sha: "d9c1e6de6633b8d5d100bc839bf1d23ca26e8d28", date: "2020-11-26 21:31:44 UTC", description: "Fix incorrect _IA storage class names", pr_number: 5245, scopes: ["aws_s3 sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 23, deletions_count: 1}, - {sha: "fb4119e11999b1439669c6a43527200050dc57c6", date: "2020-11-27 05:36:15 UTC", description: "improve arithmetic type checking", pr_number: 5059, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 4, insertions_count: 53, deletions_count: 38}, - {sha: "79020644871c64d6b48b4d01260fdabf260e264a", date: "2020-11-27 05:43:24 UTC", description: "support resolving program to \"any\" value", pr_number: 5060, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 3, insertions_count: 129, deletions_count: 49}, - {sha: "41a9594c8e59dfb42a76b3c62d4a967b4ed00dfe", date: "2020-11-27 06:08:37 UTC", description: "support query/assignment of object root", pr_number: 5064, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 7, insertions_count: 70, deletions_count: 15}, - {sha: "1abf8a4dbdd94eb3148f517d76bd7bc356faedd8", date: "2020-11-27 10:11:53 UTC", description: "add parse_grok remap function", pr_number: 4992, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 7, insertions_count: 292, deletions_count: 16}, - {sha: "e15fb91771955896669f76c27fe7edafefb13dfe", date: "2020-08-01 06:25:15 UTC", description: "pip3 installed binaries", pr_number: 3287, scopes: ["ci"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "26e302b7ff3b36edef565dd45a70de71f1b878b4", date: "2020-08-04 05:12:22 UTC", description: "color in not tty for tests", pr_number: 3324, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 9, deletions_count: 8}, - {sha: "9e5284a7de02f90374ddc44238484d123cac92c6", date: "2020-08-05 02:32:14 UTC", description: "conditional compilation for unix source", pr_number: 3298, scopes: ["ci"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 5, deletions_count: 5}, - {sha: "b8403c5eea29ff51df572f7a8c2085d682768744", date: "2020-08-15 07:27:52 UTC", description: "doc test in event/metric", pr_number: 3461, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "5213f38a70f093d6bb41711bc7da10423704bcf4", date: "2020-08-25 23:41:24 UTC", description: "Fixed language on code fence in CONTRIBUTING.md", pr_number: 3560, scopes: ["external docs"], type: "chore", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "63bdb57cb11b1f71cb21d1e9d0f9f4087ed00003", date: "2020-08-26 02:29:19 UTC", description: "Remove quiet verbose options as environment variables to stop test-shutdown failing", pr_number: 3559, scopes: ["ci"], type: "chore", breaking_change: false, author: "James Turnbull", files_count: 2, insertions_count: 2, deletions_count: 14}, - {sha: "aa5d9641f1f86308fbfdd6ff2c30b89a67c17e0e", date: "2020-08-28 04:37:39 UTC", description: "Rewrite LineAgg to allow passing context data and be more memory efficient", pr_number: 3561, scopes: ["file source"], type: "perf", breaking_change: false, author: "MOZGIII", files_count: 2, insertions_count: 114, deletions_count: 64}, - {sha: "ef722c3e092537984675235af98c9f5f4558617c", date: "2020-09-10 01:55:16 UTC", description: "remove unused imports", pr_number: 3776, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 4, deletions_count: 8}, - {sha: "5b48256ef5a3d9cfa831f0a205e9079b1f3c17f0", date: "2020-09-18 05:31:03 UTC", description: "Add missing inventory::submit", pr_number: 3988, scopes: ["sinks"], type: "fix", breaking_change: false, author: "Do Duy", files_count: 7, insertions_count: 33, deletions_count: 9}, - {sha: "b2125418b19c031e68ce0da804ff08ec24117f1c", date: "2020-09-18 05:27:22 UTC", description: "remove failing remap behavior test", pr_number: 4004, scopes: ["tests"], type: "chore", breaking_change: false, author: "Jean Mertz", files_count: 1, insertions_count: 0, deletions_count: 1}, - {sha: "5fbcc587f2cc60894357ee5e78ce62db58f0f1f5", date: "2020-09-22 05:27:13 UTC", description: "Wrong inventory::submit", pr_number: 4033, scopes: [], type: "chore", breaking_change: false, author: "Do Duy", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "b031eadb3bebae98a418a11b245cd59a7f32c2ad", date: "2020-09-30 18:24:05 UTC", description: "A new internal lookup", pr_number: 4066, scopes: ["data model"], type: "perf", breaking_change: false, author: "Ana Hobden", files_count: 41, insertions_count: 983, deletions_count: 214}, - {sha: "50fe38019570b67362584abbe3342acc6bab0217", date: "2020-10-10 02:42:23 UTC", description: "Add missing use", pr_number: 4475, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "75d2e3a5d42590a4d39606cf98acd07c8ea1d78c", date: "2020-10-12 06:25:25 UTC", description: "logdna clippy and prometheus skipped field", pr_number: 4508, scopes: [], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 5, deletions_count: 1}, - {sha: "07176dacb6a27bd97bd5f72216274bace64ffd69", date: "2020-10-14 23:40:52 UTC", description: "Removed a stray Atom that snuck back in", pr_number: 4566, scopes: [], type: "chore", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "d99813e90c9668d4cfcf8d25abc329ed8eff4fb0", date: "2020-10-22 16:02:35 UTC", description: "Generate valid config for all components", pr_number: 4636, scopes: [], type: "chore", breaking_change: false, author: "Do Duy", files_count: 52, insertions_count: 791, deletions_count: 102}, - {sha: "7e0c2664e32a2422b23eb854bb8373d963106450", date: "2020-10-22 23:49:34 UTC", description: "Renamed mongo metrics to new naming standards", pr_number: 4699, scopes: ["mongodb_metrics source"], type: "enhancement", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 3, deletions_count: 9}, - {sha: "c3ed69f11520b32e8dd28fe875a6785a5826447b", date: "2020-10-25 23:21:59 UTC", description: "Add `ConnectionOpen` gauge", pr_number: 4681, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 6, insertions_count: 174, deletions_count: 15}, - {sha: "38f904ce0d08fad60c8297f74fe7890eed0d79f0", date: "2020-10-27 02:22:19 UTC", description: "make instrumentation only on trace", pr_number: 4765, scopes: ["observability"], type: "fix", breaking_change: false, author: "Ana Hobden", files_count: 2, insertions_count: 21, deletions_count: 21}, - {sha: "b46e281459607db52c4779c9362108ae717ff47c", date: "2020-11-05 01:10:54 UTC", description: "Use `namespace` field in metric sinks", pr_number: 4806, scopes: ["data model"], type: "enhancement", breaking_change: true, author: "Kruno Tomola Fabro", files_count: 21, insertions_count: 396, deletions_count: 308}, - {sha: "a87b132e6c00c56467a261a42a52be564962dc54", date: "2020-11-05 02:01:22 UTC", description: "Use `namespace` field in metric sources", pr_number: 4833, scopes: ["data model"], type: "enhancement", breaking_change: true, author: "Kruno Tomola Fabro", files_count: 8, insertions_count: 323, deletions_count: 321}, - {sha: "bc2533d07c6c2b5828040819f625289491205ac4", date: "2020-11-13 11:31:46 UTC", description: "Prometheus uses cumulative histogram", pr_number: 5001, scopes: ["prometheus sink"], type: "fix", breaking_change: false, author: "Do Duy", files_count: 2, insertions_count: 23, deletions_count: 7}, - {sha: "6d90a084e978ffb638fb3d3cbc105f7e0c71f479", date: "2020-11-16 09:11:24 UTC", description: "Extend `Resource` to sources ", pr_number: 4996, scopes: ["shutdown"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 16, insertions_count: 432, deletions_count: 121}, - {sha: "2d4fa207f460de5f1c6f08bad05bd0c3aa3a36d1", date: "2020-11-18 02:28:58 UTC", description: "Beautify reports of conflicting `Resource` usage", pr_number: 5048, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 54, deletions_count: 24}, - {sha: "e016c713b5c37f9ef5f22f498441c6e6e2827354", date: "2020-11-19 03:31:59 UTC", description: "add _total suffix to events", pr_number: 5098, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 5, insertions_count: 18, deletions_count: 18}, - {sha: "e769bccd78bbfa3098282b85567dad0e4f72763e", date: "2020-11-21 02:07:48 UTC", description: "Emit `FileOpen` in `file` sink and source", pr_number: 4922, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 314, deletions_count: 259}, - {sha: "803c68c031e5872876e1167c428cd41358123d64", date: "2020-11-24 01:27:59 UTC", description: "Incorrect Log Level Message", pr_number: 5183, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Do Duy", files_count: 1, insertions_count: 13, deletions_count: 17}, - {sha: "8c8725c1e4c7c2a2e7b03ebf764e1112d9c63d7d", date: "2020-11-28 01:46:05 UTC", description: "add ip address remap functions", pr_number: 5145, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 12, insertions_count: 868, deletions_count: 1}, - {sha: "24155d4450744b2b2110446163cbd050df08685e", date: "2020-11-28 02:07:03 UTC", description: "Handle unexpected errors in ARC controller", pr_number: 5267, scopes: ["networking"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 18, deletions_count: 7}, - {sha: "ba910afc6189d3d6e5c2a7844023ee53a64a624c", date: "2020-11-28 03:39:11 UTC", description: "New prometheus_remote_write source", pr_number: 5144, scopes: ["new source"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 26, insertions_count: 981, deletions_count: 504}, - {sha: "295a630b816aa19e996ac42bebeb93369adae4c2", date: "2020-11-28 16:55:20 UTC", description: "Add `exists` remap function", pr_number: 5195, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 6, insertions_count: 162, deletions_count: 1}, - {sha: "9e51f2e3795d08598118c7bb6bf475b352b172b1", date: "2020-11-29 07:21:46 UTC", description: "Allow JSON and YAML config formats in addition to TOML", pr_number: 5005, scopes: ["config"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 22, insertions_count: 792, deletions_count: 189}, - {sha: "9bddcb233a6ec7814e685d6060f7e0ffd37d71ad", date: "2020-11-30 01:35:51 UTC", description: "Add compact remap function", pr_number: 5231, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 5, insertions_count: 525, deletions_count: 0}, - {sha: "84aebc078678549e1933d0c6c6505f3f464a6f40", date: "2020-12-01 04:44:31 UTC", description: "fix integration tests list", pr_number: 5293, scopes: ["ci", "tests"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 27, deletions_count: 9}, - {sha: "fdb77ff020c7f0487c7bd3d39d78c5f8a56ef2ac", date: "2020-11-30 22:36:19 UTC", description: "Update release Windows task", pr_number: 5295, scopes: ["ci"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 39, deletions_count: 6}, - {sha: "dfc18c17c149a5e7b1a7cd0697ef2b7085d99272", date: "2020-12-01 00:01:49 UTC", description: "Update release-docker task", pr_number: 5299, scopes: ["ci"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 3, deletions_count: 2}, - {sha: "018091fc4b7c569d8d9b32c3d3d06d279eca2f87", date: "2020-12-01 05:49:44 UTC", description: "add assert remap function", pr_number: 5073, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 6, insertions_count: 199, deletions_count: 0}, - {sha: "529581de69d431c9d0cbc59d152b5858d479e68f", date: "2020-12-01 15:43:25 UTC", description: "Enable TLS subscription connections in vector top", pr_number: 5296, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Steve Hall", files_count: 3, insertions_count: 6, deletions_count: 3}, - {sha: "12a9cc325f1f6c86ab802f3f6deda29079c857bc", date: "2020-12-02 01:26:57 UTC", description: "Add missing remap functions", pr_number: 5312, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 9, insertions_count: 758, deletions_count: 22}, - {sha: "c8352140d597c6623b5c3486d39a27b9191c204e", date: "2020-12-01 20:57:20 UTC", description: "Change packages to have full versions and architectures", pr_number: 5303, scopes: ["ci"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 20, insertions_count: 274, deletions_count: 189}, - {sha: "10e42732a6f1b14d09208d5110634e9718d4cee9", date: "2020-12-02 03:28:19 UTC", description: "introduce encoding schema and pulsar avro schema", pr_number: 5021, scopes: ["pulsar sink"], type: "enhancement", breaking_change: false, author: "Alexandre DUVAL", files_count: 10, insertions_count: 284, deletions_count: 16}, - ] -} diff --git a/docs/reference/releases/0.11.1.cue b/docs/reference/releases/0.11.1.cue deleted file mode 100644 index 0e627ca0eadb6..0000000000000 --- a/docs/reference/releases/0.11.1.cue +++ /dev/null @@ -1,20 +0,0 @@ -package metadata - -releases: "0.11.1": { - date: "2020-12-17" - codename: "" - - whats_next: [] - - commits: [ - {sha: "d6de536d361c5edbbe056945b8d809e5a1999c50", date: "2020-12-03 07:38:50 UTC", description: "Change logs level on request", pr_number: 5337, scopes: ["prometheus sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 6, deletions_count: 1}, - {sha: "7e7bf612dd86867db774c560c1cf95dc6c390a1f", date: "2020-12-04 06:27:26 UTC", description: "Set content encoding header when compression is on", pr_number: 5355, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Samuel Gabel", files_count: 1, insertions_count: 20, deletions_count: 0}, - {sha: "90ac946d7f40f18cfde563bf0814fa963148010c", date: "2020-12-05 09:58:28 UTC", description: "Include config format test only with required features", pr_number: 5356, scopes: ["tests"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 11, deletions_count: 6}, - {sha: "4a59b403b0304036566af27c4ce9a6cd475b5f11", date: "2020-12-09 01:29:43 UTC", description: "Set Accept-Encoding to identity for HTTP client", pr_number: 5442, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 48, deletions_count: 6}, - {sha: "19efdca02e8644d8a375b6f4a30a3d66e1fba0bc", date: "2020-12-09 21:42:10 UTC", description: "Add support for detecting glibc version to installer script", pr_number: 5421, scopes: ["setup"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 27, deletions_count: 3}, - {sha: "543439ec44390ca265a26d175739ea16df4893d1", date: "2020-12-10 08:15:35 UTC", description: "Reuse buffers", pr_number: 5344, scopes: ["topology"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 16, insertions_count: 347, deletions_count: 108}, - {sha: "e070bb7a307e1d71a2be32adda99839581325c9d", date: "2020-12-17 08:11:48 UTC", description: "Fix wrong log level", pr_number: 5558, scopes: ["coercer transform"], type: "fix", breaking_change: false, author: "Duy Do", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "b82d330fb492968a9aa6d8539e7228acd6c547ac", date: "2020-12-17 22:17:46 UTC", description: "Remove duplicated event", pr_number: 5451, scopes: ["vector sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 0, deletions_count: 17}, - {sha: "2215e49422b6d93b307ce29cbc4d89511b1f8a89", date: "2020-12-18 04:46:43 UTC", description: "Update hyper to work around the docker EOF errors", pr_number: 5561, scopes: ["docker_logs source"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 2, insertions_count: 4, deletions_count: 2}, - ] -} diff --git a/docs/reference/releases/0.12.0.cue b/docs/reference/releases/0.12.0.cue deleted file mode 100644 index c601dfc5ff779..0000000000000 --- a/docs/reference/releases/0.12.0.cue +++ /dev/null @@ -1,222 +0,0 @@ -package metadata - -releases: "0.12.0": { - date: "2021-02-11" - codename: "Vector Remap Language" - description: """ - The Vector team is pleased to announce 0.12.0. This release introduces the [**Vector Remap Language**](\(urls.vrl_reference)), - an expression-oriented language designed for transforming obervability data (logs and metrics) in a - [safe](\(urls.vrl_safety)) and [performant](\(urls.vrl_performance)) manner. - - Check out the [VRL announcement post](\(urls.vrl_announcement)) for more details as well as the - [highlights](#highlights) and [changelog](#changelog) for a complete list of changes in 0.12.0. - """ - - whats_next: [ - { - title: "Vector's own observability" - description: """ - We will be working to improve Vector's own observability with high-quality internal metrics, logs, - CLI tools, and dashboards. - """ - }, - { - title: "Improved Vector to Vector communication" - description: """ - The `vector` source and sink currently leverage the TCP protocol to transmit data. While this has - served users well, it presents operational challenges for large-scale deployments of Vector. Because - HTTP is widely used and easy to integrate into platforms like Kubernetes we will be moving these - components to the HTTP protocol. - """ - }, - { - title: "Schema support" - description: """ - With the inclusion of [type-safety in VRL](\(urls.vrl_type_safety)) we will be working to officially - support common and custom schemas within Vector. This will be an opt-in feature that will provide - Vector with type information about your data, making Vector type safe from end to end and further - raising confidence that Vector will operate properly post-deployment. - """ - }, - ] - - commits: [ - {sha: "5ae2247d946733fc0f53d03d12afe83a2998cb7e", date: "2020-12-02 19:50:10 UTC", description: "Add UNIX datagram mode", pr_number: 5298, scopes: ["socket source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 8, insertions_count: 272, deletions_count: 64}, - {sha: "cb73ba0bc7d8bcb80578872181c7e539986060ea", date: "2020-12-03 21:38:10 UTC", description: "support path queries for variables", pr_number: 5277, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 72, insertions_count: 2230, deletions_count: 449}, - {sha: "e19264990fc8f5b75d55f52c49460e8893690e01", date: "2020-12-03 22:15:25 UTC", description: "add support for literal arrays", pr_number: 5278, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 6, insertions_count: 145, deletions_count: 14}, - {sha: "e9371ac1de252bb667a8c6d833dbd0ecfdb882b3", date: "2020-12-03 22:48:07 UTC", description: "accept array of arguments for function parameters", pr_number: 5283, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 12, insertions_count: 303, deletions_count: 40}, - {sha: "c920bc7c95745e4d369e0c25fe38cb1ca071ee2a", date: "2020-12-04 19:14:56 UTC", description: "add `redact` function", pr_number: 5297, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 4, insertions_count: 235, deletions_count: 0}, - {sha: "687456cc3a067905e8349df4c0ab557795105406", date: "2020-12-05 00:39:56 UTC", description: "Helm chart for deploying Vector with an aggregator role", pr_number: 4404, scopes: ["administration"], type: "feat", breaking_change: false, author: "MOZGIII", files_count: 32, insertions_count: 1262, deletions_count: 48}, - {sha: "a5d67b3038b7d90aee13284bccad4d8db8e6f411", date: "2020-12-05 04:34:40 UTC", description: "Support exposing internal mertics out of the box in our Helm charts", pr_number: 4854, scopes: ["kubernetes platform"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 24, insertions_count: 767, deletions_count: 8}, - {sha: "d4b7b306fe0af1354891920ff039917b61851849", date: "2020-12-05 09:17:05 UTC", description: "Add exclusion label at vector-aggregator", pr_number: 5388, scopes: ["kubernetes platform"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 3, insertions_count: 3, deletions_count: 0}, - {sha: "2593d91b729e014abc4c8d2a79f6d4128e82baf6", date: "2020-12-05 07:34:25 UTC", description: "Implement TCP keepalive `time` configuration", pr_number: 5157, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Pablo Sichert", files_count: 32, insertions_count: 313, deletions_count: 82}, - {sha: "f25d0420afb7e6c5321d62d75bc6c3ca28930145", date: "2020-12-08 21:18:37 UTC", description: "fixing Compression parsing with tests", pr_number: 5429, scopes: ["config"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 101, deletions_count: 29}, - {sha: "8b3d59562d5665c60ecf255b2cadc68579acea94", date: "2020-12-09 06:45:47 UTC", description: "require features for generate_configfile test", pr_number: 5427, scopes: ["tests"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 9, deletions_count: 9}, - {sha: "7fd382fd459986e5241963bb7fb1693fba12cf0a", date: "2020-12-08 21:12:30 UTC", description: "Enable excluding Docker containers via configuration", pr_number: 5301, scopes: ["docker_logs source"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 2, insertions_count: 99, deletions_count: 28}, - {sha: "3a48a0a47dd1e1b59113041a96cdced29937cc19", date: "2020-12-10 21:59:42 UTC", description: "Remove default `encoding.codec` where appropriate", pr_number: 5281, scopes: ["codec"], type: "enhancement", breaking_change: true, author: "Kirill Fomichev", files_count: 18, insertions_count: 242, deletions_count: 244}, - {sha: "b1bc779d1fc96e06ddc34b11585fc1651ce2da86", date: "2020-12-11 03:52:44 UTC", description: "add initial \"trl\" CLI", pr_number: 5450, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 5, insertions_count: 245, deletions_count: 1}, - {sha: "e04d32d0dfd513b95880ef2c1a7c8d362aac7317", date: "2020-12-11 04:02:01 UTC", description: "support multiline expressions", pr_number: 5309, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 2, insertions_count: 11, deletions_count: 1}, - {sha: "b57f4d96a74da49c091aaf66d3974f5bd4330fdc", date: "2020-12-10 21:51:52 UTC", description: "Export metadata to remote_write", pr_number: 5445, scopes: ["prometheus sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 6, insertions_count: 441, deletions_count: 151}, - {sha: "feb0c0e7c6f9c21b4d1021076d9fec651ceba200", date: "2020-12-11 12:26:59 UTC", description: "Fix build issue caused by macro removal", pr_number: 5480, scopes: ["remap"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 13, deletions_count: 1}, - {sha: "f38fb43999a5bb0896ac55c8f901d70db3af0ab8", date: "2020-12-11 19:46:57 UTC", description: "New internal_logs source", pr_number: 5346, scopes: ["new source"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 8, insertions_count: 404, deletions_count: 26}, - {sha: "44ecc2bf4c90f8903b858a681e32db0dbbaedda3", date: "2020-12-13 02:45:52 UTC", description: "Add support for basic auth credendtials in URL for more sinks", pr_number: 5379, scopes: ["auth"], type: "enhancement", breaking_change: false, author: "Duy Do", files_count: 10, insertions_count: 247, deletions_count: 181}, - {sha: "565bc52ad0ba535a38e6a1f6a86575db205ffa36", date: "2020-12-13 19:54:38 UTC", description: "add integer division", pr_number: 5353, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "FungusHumungus", files_count: 6, insertions_count: 42, deletions_count: 3}, - {sha: "b40750a92083df2d33cfbd9deb58d75fe357fc20", date: "2020-12-13 21:52:35 UTC", description: "add initial CLI REPL support", pr_number: 5490, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 7, insertions_count: 303, deletions_count: 68}, - {sha: "6e4b7a91e9119763ad1e803eba76523144ef8082", date: "2020-12-14 01:19:02 UTC", description: "allow multiple statements in boolean conditional", pr_number: 5438, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 4, insertions_count: 46, deletions_count: 10}, - {sha: "da297f1c8fb2f0ce1c779cab38649c57e7091411", date: "2020-12-14 07:41:46 UTC", description: "Add missing methods to Subscriber forwarder", pr_number: 5529, scopes: ["metrics"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 10, deletions_count: 0}, - {sha: "1d3b7c1814dc33a29126e0ecbc217d54646b04a8", date: "2020-12-15 17:08:01 UTC", description: "Correct the prometheus format parsing at K8s E2E tests for the metrics pipeline", pr_number: 5540, scopes: ["kubernetes platform"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 3, insertions_count: 28, deletions_count: 6}, - {sha: "38f0e7c90ff6d760993e0d0929c63215b749ab71", date: "2020-12-17 08:19:21 UTC", description: "Add host and TLS configuations", pr_number: 5532, scopes: ["docker_logs source"], type: "enhancement", breaking_change: false, author: "Duy Do", files_count: 4, insertions_count: 150, deletions_count: 31}, - {sha: "171301191c8d5bc04409e7c3bf2b516e360c8f8b", date: "2020-12-17 04:47:04 UTC", description: "Implement improvements to the Pod recreation on Helm release upgrades", pr_number: 5525, scopes: ["kubernetes platform"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 10, insertions_count: 96, deletions_count: 12}, - {sha: "bf29d061c79d755e89069a4aa16ac1e0d37c97c8", date: "2020-12-17 21:15:30 UTC", description: "add remap functions to CLI", pr_number: 5531, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 11, insertions_count: 146, deletions_count: 73}, - {sha: "535d898c8c9e337942cc3a2d772174382abc4f66", date: "2020-12-17 23:35:25 UTC", description: "track inner container type definitions", pr_number: 5375, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 51, insertions_count: 414, deletions_count: 111}, - {sha: "a646ad908271ef6b81b16f769dc05fe20c23952f", date: "2020-12-18 06:11:50 UTC", description: "add `ok` error handling function", pr_number: 5469, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 5, insertions_count: 111, deletions_count: 1}, - {sha: "4b33ff0b9eeb8e112dbf7e0cc77c1b52fa11ca19", date: "2020-12-18 06:50:28 UTC", description: "add support for literal maps", pr_number: 5279, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 16, insertions_count: 390, deletions_count: 181}, - {sha: "e46bf469aacf4616cbda578c9511427535be7509", date: "2020-12-18 10:49:37 UTC", description: "Expose host metrics in our Helm charts out of the box", pr_number: 5100, scopes: ["kubernetes platform"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 8, insertions_count: 185, deletions_count: 7}, - {sha: "01e726af0e4d24e8a45345441420397e5a9e8803", date: "2020-12-18 11:36:37 UTC", description: "Add global `healthchecks` option", pr_number: 5528, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 13, insertions_count: 153, deletions_count: 71}, - {sha: "9f760f2c7d57ff37fe2c0b7bfabda681b334e832", date: "2020-12-18 12:41:49 UTC", description: "Emit `processed_events_total` in topology for transforms", pr_number: 5492, scopes: ["observability"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 60, insertions_count: 47, deletions_count: 410}, - {sha: "6389e8866af00e72e36b7e4d91d42da7c908f7a9", date: "2020-12-18 18:11:02 UTC", description: "add `parse_aws_alb_log` function", pr_number: 5489, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 7, insertions_count: 403, deletions_count: 0}, - {sha: "e7316773675d04a5bf13bb20b67e2b88151b17df", date: "2020-12-18 18:32:07 UTC", description: "adjust deny.toml", pr_number: 5552, scopes: ["ci"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 27, deletions_count: 30}, - {sha: "5f97129f8e2f5bc0e86f4e85d2d4dbf7cb2c2a09", date: "2020-12-18 22:12:18 UTC", description: "improve error messages, part 1", pr_number: 5477, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 3, insertions_count: 100, deletions_count: 453}, - {sha: "5488be0a6252efe152bde9fd4babbffb7970fb75", date: "2020-12-19 02:03:10 UTC", description: "add `parse_aws_vpc_flow_log` function", pr_number: 5504, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 7, insertions_count: 365, deletions_count: 1}, - {sha: "c62b51511f61379c7e418c5a3de6e8c5ac687bf3", date: "2020-12-19 02:22:03 UTC", description: "add support for data streams", pr_number: 5126, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Spencer Gilbert", files_count: 3, insertions_count: 88, deletions_count: 6}, - {sha: "7cc42beec5d3e859f4278fdeca599bbf48b67189", date: "2020-12-19 00:33:55 UTC", description: "Enable format selection for generator source", pr_number: 5399, scopes: ["generator source"], type: "enhancement", breaking_change: true, author: "Luc Perkins", files_count: 11, insertions_count: 434, deletions_count: 102}, - {sha: "c12020dbccb7b04ff3c3a2165fb50d47cb9baa7a", date: "2020-12-19 05:25:31 UTC", description: "Add includes function for arrays", pr_number: 5541, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 5, insertions_count: 225, deletions_count: 1}, - {sha: "a3f086cb6035455d1a28a91a44597f383b7c7785", date: "2020-12-19 23:04:33 UTC", description: "enable remap to work with metric events", pr_number: 5475, scopes: ["remap"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 7, insertions_count: 841, deletions_count: 368}, - {sha: "91f77ef44a4dfa182c27cf3483a878ad576d8757", date: "2020-12-20 02:39:07 UTC", description: "fix set metric reset on flush period", pr_number: 5258, scopes: ["prometheus sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 146, deletions_count: 77}, - {sha: "7b0424cbf22b88be759bbaf84110f887a429ee8a", date: "2020-12-20 00:53:10 UTC", description: "tenant_id is templatable on loki sink", pr_number: 5629, scopes: ["documentation"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "8df93bc21eddce7f8be6ab3d3f4d12bec96fdc5b", date: "2020-12-20 07:47:45 UTC", description: "Fix type definition for `includes()`", pr_number: 5628, scopes: ["remap"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 6, deletions_count: 0}, - {sha: "47734445cb07cf104bc0bebd8102075b7953962b", date: "2020-12-21 23:13:21 UTC", description: "Add to_syslog_level function for parsing Syslog levels into strings", pr_number: 5503, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 5, insertions_count: 200, deletions_count: 0}, - {sha: "b31cb7ec71765928194d14fd88f9718a3adf5f80", date: "2020-12-22 09:56:00 UTC", description: "docs for remap transform metrics", pr_number: 5626, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "FungusHumungus", files_count: 1, insertions_count: 9, deletions_count: 2}, - {sha: "ecc26afd3f0d71adb27cb192fa2152862696f90e", date: "2020-12-22 04:02:33 UTC", description: "podman pod stop/rm don't need a --name option", pr_number: 5669, scopes: ["tests"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 25, deletions_count: 25}, - {sha: "b38ce3daef8e104aa518a9f5cb73c3794761de78", date: "2020-12-22 02:54:50 UTC", description: "Add to_syslog_severity function for Syslog log level keywords", pr_number: 5505, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 4, insertions_count: 181, deletions_count: 0}, - {sha: "a894cf7cc5370f0d7176dc11a7b93838a045a2c9", date: "2020-12-22 19:36:50 UTC", description: "Allow owning the same port with different protocols", pr_number: 5625, scopes: ["networking"], type: "fix", breaking_change: false, author: "Duy Do", files_count: 10, insertions_count: 67, deletions_count: 22}, - {sha: "284e18f8b50de17a0673ebac8d6d8726fc325870", date: "2020-12-23 07:24:25 UTC", description: "Print warning on encoding error", pr_number: 5651, scopes: ["codec", "observability"], type: "enhancement", breaking_change: false, author: "Duy Do", files_count: 7, insertions_count: 110, deletions_count: 120}, - {sha: "ce9185eea202ceb5963a1e24b8f05d33600fcc16", date: "2020-12-23 04:55:05 UTC", description: "add encode_json function", pr_number: 5653, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 6, insertions_count: 218, deletions_count: 1}, - {sha: "ee27b6835b44eeb753c50a89120fce34e89837f1", date: "2020-12-23 16:43:34 UTC", description: "handle incorrect int sequences as strings", pr_number: 5683, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 21, deletions_count: 5}, - {sha: "5a2dffc230b183c1cbfe3f9828452e9b1e745fc5", date: "2020-12-23 23:51:49 UTC", description: "fix tests for fake journal", pr_number: 5694, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "ef45085f1c217fea58c9c608314baeae596945e2", date: "2020-12-24 08:51:29 UTC", description: "Support TLS configuration for Humio sinks", pr_number: 5692, scopes: ["networking", "security", "humio sink"], type: "enhancement", breaking_change: false, author: "Duy Do", files_count: 3, insertions_count: 17, deletions_count: 2}, - {sha: "740624539d5a543f34ff9c1c6a692238055bb5eb", date: "2020-12-24 06:34:24 UTC", description: "File source metrics", pr_number: 5645, scopes: ["graphql api"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 23, insertions_count: 1451, deletions_count: 674}, - {sha: "263616f958daf64c47986e32f8bc9fa0cb6a32a9", date: "2020-12-26 01:28:49 UTC", description: "Add hostname to Docker source", pr_number: 5690, scopes: ["docker_logs source"], type: "enhancement", breaking_change: false, author: "Duy Do", files_count: 3, insertions_count: 40, deletions_count: 6}, - {sha: "63e49917bb75c176a27bf572240431d8ad926701", date: "2020-12-25 11:12:24 UTC", description: "Add JSON format", pr_number: 5630, scopes: ["generator source"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 3, insertions_count: 56, deletions_count: 4}, - {sha: "bbb5fb66e741496490ff6460e61679d75fc244f0", date: "2020-12-27 01:14:25 UTC", description: "Add RFC 3164 format", pr_number: 5631, scopes: ["generator source"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 3, insertions_count: 50, deletions_count: 6}, - {sha: "6c4151f764b5ea4ad21181a5d2500ae93eeec53c", date: "2020-12-28 06:25:36 UTC", description: "Add `gzip` & `deflate` decompression", pr_number: 5638, scopes: ["http source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 10, insertions_count: 221, deletions_count: 65}, - {sha: "194353149be8652e82a7bcb381c7166d675e46a8", date: "2020-12-29 00:26:06 UTC", description: "`componentByName` query", pr_number: 5707, scopes: ["graphql api"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 8, insertions_count: 101, deletions_count: 12}, - {sha: "8877d141963b0502a2bbe878eddfd960b533c1d3", date: "2020-12-28 23:34:38 UTC", description: "lower handle http req log to debug", pr_number: 5705, scopes: ["http source"], type: "fix", breaking_change: false, author: "Spencer Gilbert", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "881ff658acc71703ea2a589bd69518fac1f0881e", date: "2020-12-28 23:38:59 UTC", description: "Make internal metrics pass promtools check", pr_number: 5743, scopes: ["internal_metrics source"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "3d0e1cfd7717dc54b2f9fc73384e6b2d62b4a999", date: "2020-12-29 09:05:02 UTC", description: "Better tracing/tests on rdkafka options.", pr_number: 5652, scopes: ["kafka sink"], type: "enhancement", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 108, deletions_count: 39}, - {sha: "99f67cc19c23d7289301bdcd525e2c586bb0778e", date: "2020-12-29 09:05:09 UTC", description: "Fixup version script", pr_number: 5752, scopes: [], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "977c0106ecb7923eda630b88f3ab42b7c510f960", date: "2020-12-30 01:53:43 UTC", description: "add `parse_regex` and `parse_regex_all` remap functions", pr_number: 5594, scopes: ["remap"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 8, insertions_count: 455, deletions_count: 1}, - {sha: "acf9cfc375d2421a091e47d33e7ab8843573a4ea", date: "2021-01-01 22:42:39 UTC", description: "Adds script for generating README.md for Agent role helm-chart", pr_number: 5590, scopes: ["kubernetes platform"], type: "enhancement", breaking_change: false, author: "Ian Henry", files_count: 1, insertions_count: 8, deletions_count: 0}, - {sha: "a07132a9496f74891b7868e5997da099e8dea43b", date: "2021-01-03 09:46:19 UTC", description: "do not use static year in tests", pr_number: 5803, scopes: ["syslog source"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 12, deletions_count: 10}, - {sha: "ad8909ca968ba185690c31fa6e4e510855bdd7ae", date: "2021-01-03 02:43:46 UTC", description: "Build ARMv7 images for all supported platforms", pr_number: 5787, scopes: ["ci"], type: "enhancement", breaking_change: false, author: "Dan Norris", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "18b22b0c0166f209eb6087a2302971304add8310", date: "2021-01-04 06:53:54 UTC", description: "add `parse_aws_cloudwatch_log_subscription_message` function", pr_number: 5764, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 12, insertions_count: 302, deletions_count: 29}, - {sha: "26f730d62f9331b7c295ed71f3344afeca751849", date: "2021-01-03 22:28:31 UTC", description: "Trivial fixes for metrics batch buffer", pr_number: 5699, scopes: ["metrics"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 89, deletions_count: 62}, - {sha: "242f4db6dda14f125efdc948072b8c44d8e6b08e", date: "2021-01-03 20:38:55 UTC", description: "Enable casting timestamps into integers", pr_number: 5753, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 2, insertions_count: 66, deletions_count: 114}, - {sha: "6b97409f3298ad99c0d7d71c25dbb1e17930116a", date: "2021-01-04 07:55:44 UTC", description: "allow send metrics to kafka", pr_number: 5712, scopes: ["kafka sink"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 90, deletions_count: 23}, - {sha: "a1f0d6b328bd053e4aea497332ece7ebc8ce8fe1", date: "2021-01-04 08:03:19 UTC", description: "Correct misspelling", pr_number: 5826, scopes: ["internal docs"], type: "fix", breaking_change: false, author: "Jose Diaz-Gonzalez", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "3b415d160de76e1ee4b600be5b475b922d38c221", date: "2021-01-05 00:49:11 UTC", description: "fix features for lib/shared", pr_number: 5829, scopes: ["deps"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "9691d4f6392cbd5142aa30fe46877f8e81777b21", date: "2021-01-05 01:16:49 UTC", description: "Adds docker push guard back into CI scripts", pr_number: 5848, scopes: ["ci"], type: "chore", breaking_change: false, author: "Ian Henry", files_count: 2, insertions_count: 6, deletions_count: 1}, - {sha: "c6a8c3e17618d97cade170cc030b649982d48e36", date: "2021-01-05 21:36:54 UTC", description: "added `parse_key_value` remap function", pr_number: 5760, scopes: ["remap"], type: "feat", breaking_change: false, author: "FungusHumungus", files_count: 5, insertions_count: 526, deletions_count: 0}, - {sha: "d612b3caaaadba1790902efaf5addf5347b7be81", date: "2021-01-06 01:24:06 UTC", description: "correctly handle nested map insertions", pr_number: 5834, scopes: ["remap"], type: "fix", breaking_change: false, author: "Jean Mertz", files_count: 2, insertions_count: 25, deletions_count: 13}, - {sha: "948599795653f3b5894fa58046b309cb3ccc8da1", date: "2021-01-06 01:24:50 UTC", description: "non-boolean if conditional compile-time error", pr_number: 5835, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 3, insertions_count: 29, deletions_count: 18}, - {sha: "a64d67156913b2702b1601f5011c9a279ac377c0", date: "2021-01-07 03:07:18 UTC", description: "Relay connections (components, initially)", pr_number: 5747, scopes: ["graphql api"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 11, insertions_count: 652, deletions_count: 83}, - {sha: "2daa2856fea746879eaa98645e74cd6018a77b0e", date: "2021-01-07 05:45:14 UTC", description: "Relay-compatible connections for sources/transforms/sinks", pr_number: 5880, scopes: ["graphql api"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 7, insertions_count: 643, deletions_count: 119}, - {sha: "b85cde4eff1ef790e78b6ae6ba83fc4aabc5624f", date: "2021-01-07 05:58:44 UTC", description: "Add is_nullish function to VRL", pr_number: 5754, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 6, insertions_count: 249, deletions_count: 1}, - {sha: "b2e8c2680a5aae1828a0dfbfba7fee1fb8d6f403", date: "2021-01-07 20:44:19 UTC", description: "Fix HTTP and HTTPS URL", pr_number: 5882, scopes: ["docker_logs source"], type: "fix", breaking_change: false, author: "Duy Do", files_count: 2, insertions_count: 34, deletions_count: 6}, - {sha: "5b5222c25b25552a139cf7b0349dda280bb790fd", date: "2021-01-07 07:20:37 UTC", description: "Move VRL CLI into the Vector CLI", pr_number: 5756, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 13, insertions_count: 231, deletions_count: 156}, - {sha: "7458ebcd41bb7201ab71c560cf6798bd43b6237f", date: "2021-01-07 20:26:48 UTC", description: "add error coalescing operator", pr_number: 5830, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 5, insertions_count: 100, deletions_count: 3}, - {sha: "7844bb7449a1981ff4dbe2e7745064182f407eb8", date: "2021-01-07 20:45:37 UTC", description: "support \"abort on error\" bang-function-calls", pr_number: 5876, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 5, insertions_count: 97, deletions_count: 17}, - {sha: "19a90e8f1cba1642cfc9b97e8598c6a9ef310372", date: "2021-01-07 20:16:23 UTC", description: "Addressed minor spelling error in variable", pr_number: 5899, scopes: [], type: "chore", breaking_change: false, author: "James Turnbull", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "577edaf502d91b49f265b9853eb0d9dec10b3065", date: "2021-01-08 23:39:02 UTC", description: "error-return-value error handling pattern", pr_number: 5911, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 12, insertions_count: 324, deletions_count: 62}, - {sha: "411100307f44d1d73933b0080dca1da254cd914d", date: "2021-01-08 18:55:35 UTC", description: "allow user configuration of the `ignore_not_found` option", pr_number: 5616, scopes: ["file source"], type: "feat", breaking_change: false, author: "Spencer Gilbert", files_count: 2, insertions_count: 9, deletions_count: 1}, - {sha: "08bb58f02b536a266d92b395f4785335debf8e64", date: "2021-01-08 20:58:10 UTC", description: "Handle early return from influxdb create database", pr_number: 5928, scopes: ["tests"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 36, deletions_count: 18}, - {sha: "1d99cefa0ebd5432a39fc38539c0a84ca6ff2fd7", date: "2021-01-09 08:30:32 UTC", description: "Fix prometheus exposition format", pr_number: 5914, scopes: ["prometheus_exporter sink"], type: "fix", breaking_change: false, author: "Raphael Taylor-Davies", files_count: 2, insertions_count: 34, deletions_count: 28}, - {sha: "dbcef9cedf9960169e0564ca6ed08808c4c9fc74", date: "2021-01-09 21:51:58 UTC", description: "bare variable names", pr_number: 5856, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 6, insertions_count: 210, deletions_count: 120}, - {sha: "808d0a61b647d13f4f9d7b90baa499cda97d15f6", date: "2021-01-11 04:03:35 UTC", description: "Avoid alias `in_flight_limit`", pr_number: 5950, scopes: ["config"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 32, deletions_count: 7}, - {sha: "df7136e69a37be36d6217116e1beec31cb6244b3", date: "2021-01-11 04:40:15 UTC", description: "Add to_syslog_facility function for parsing syslog facilities into strings", pr_number: 5770, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Josh Bradley", files_count: 6, insertions_count: 318, deletions_count: 1}, - {sha: "02952782aee141597d0ba15df0873c6e482d68a4", date: "2021-01-11 19:00:10 UTC", description: "Add to_unix_timestamp function", pr_number: 5767, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 5, insertions_count: 275, deletions_count: 0}, - {sha: "4c6af99cc8a485b219d0d19c47a2fc4896d50ab6", date: "2021-01-11 22:10:28 UTC", description: "Rename tokenize to parse_tokens", pr_number: 5983, scopes: ["remap"], type: "fix", breaking_change: false, author: "Luc Perkins", files_count: 5, insertions_count: 30, deletions_count: 30}, - {sha: "69df85b59e3425214113ad8dcaba37d13c4ac78f", date: "2021-01-11 23:22:14 UTC", description: "Add push and append functions", pr_number: 5750, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 8, insertions_count: 419, deletions_count: 1}, - {sha: "1b9880c704d34cbe173feb2be213c11a0ed296af", date: "2021-01-12 01:16:07 UTC", description: "Add base64 encoding and decoding functions", pr_number: 5768, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 10, insertions_count: 367, deletions_count: 1}, - {sha: "fece63629576cb394912c13998dd96af6e1826c5", date: "2021-01-12 01:32:12 UTC", description: "Make the redact function fallible", pr_number: 5933, scopes: ["remap"], type: "fix", breaking_change: false, author: "Luc Perkins", files_count: 1, insertions_count: 83, deletions_count: 2}, - {sha: "66674728a2bd6a66d37580105ab9e9242f23d139", date: "2021-01-12 18:15:34 UTC", description: "Set `core_threads` for `merge_and_fork`", pr_number: 5968, scopes: ["tests"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 5, deletions_count: 1}, - {sha: "fa541ab35ca5132f5ff357034d71cfad05b935a5", date: "2021-01-13 00:47:54 UTC", description: "remove the check_fields default for conditions", pr_number: 5978, scopes: ["config"], type: "enhancement", breaking_change: true, author: "FungusHumungus", files_count: 7, insertions_count: 47, deletions_count: 25}, - {sha: "d29319746634c002c8c05ef0316826be1c55733b", date: "2021-01-13 18:33:56 UTC", description: "Fix remove_label_fields", pr_number: 5974, scopes: ["loki sink"], type: "fix", breaking_change: false, author: "Duy Do", files_count: 1, insertions_count: 6, deletions_count: 2}, - {sha: "30642958e7835604f2b18022a898cb3136c065c2", date: "2021-01-13 19:53:55 UTC", description: "Fix transmission of counter metrics", pr_number: 5922, scopes: ["influxdb_metrics sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 137, deletions_count: 53}, - {sha: "28155e37848feab7ab59fb8fe7a0818c5dce78b3", date: "2021-01-14 03:30:29 UTC", description: "Adjusting pod security policy to allow vector-agent to read host logs", pr_number: 6019, scopes: ["kubernetes platform"], type: "fix", breaking_change: false, author: "Thor Anker Kvisgård Lange", files_count: 1, insertions_count: 5, deletions_count: 3}, - {sha: "e784d59040153f84cee43df429832f55c36f8681", date: "2021-01-14 06:40:14 UTC", description: "correct start/stop instructions", pr_number: 6029, scopes: ["ci"], type: "chore", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 4, deletions_count: 4}, - {sha: "281db2bb0b09b7851e624065be27ae9c4a992a63", date: "2021-01-15 01:19:47 UTC", description: "Adjusting to adhere to linting rules used by ct", pr_number: 6021, scopes: ["kubernetes platform"], type: "fix", breaking_change: false, author: "Thor Anker Kvisgård Lange", files_count: 5, insertions_count: 9, deletions_count: 9}, - {sha: "36adac70be243988803f9fe10580f06a8818cf3c", date: "2021-01-15 00:57:13 UTC", description: "allow comments between multiline statements", pr_number: 6036, scopes: ["remap"], type: "fix", breaking_change: false, author: "FungusHumungus", files_count: 3, insertions_count: 35, deletions_count: 3}, - {sha: "50ec1abe557ea78514da64aa2f7af2d6562eb988", date: "2021-01-15 08:44:02 UTC", description: "Allow passing component configs as YAML in Helm charts", pr_number: 5673, scopes: ["kubernetes platform"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 30, insertions_count: 1593, deletions_count: 170}, - {sha: "c750955256a7a07488b98df542730113c296f299", date: "2021-01-15 08:44:35 UTC", description: "Rework defaults and a minimal scraping interval value", pr_number: 5682, scopes: ["internal_metrics source"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 13, deletions_count: 24}, - {sha: "7fa399f6ebfac4885ca2158fe76e8b427e424d0d", date: "2021-01-14 22:58:23 UTC", description: "Open docs URL for help in VRL REPL", pr_number: 5926, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 3, insertions_count: 60, deletions_count: 10}, - {sha: "ecf0537e8fdf0a3d19fb4efc145dc431b3937355", date: "2021-01-15 08:55:34 UTC", description: "Pretty print functions list in VRL REPL", pr_number: 5935, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 3, insertions_count: 47, deletions_count: 11}, - {sha: "b7e1234ab24aa33c155f093ed7a8e0f3a08c934b", date: "2021-01-15 19:03:44 UTC", description: "Support X-Scope-OrgID header", pr_number: 5987, scopes: ["prometheus_remote_write sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 4, insertions_count: 210, deletions_count: 41}, - {sha: "0f7b6003aa6a7cb7fb37cc9f1eda2f54771caabc", date: "2021-01-16 05:07:06 UTC", description: "deprecate `check_fields` conditions", pr_number: 6037, scopes: ["config"], type: "enhancement", breaking_change: false, author: "FungusHumungus", files_count: 26, insertions_count: 893, deletions_count: 583}, - {sha: "158c7d78d0462737caeac9f7cc34ab0ea3ef1b21", date: "2021-01-15 23:04:48 UTC", description: "Add charset parameter to encode_base64 function", pr_number: 6065, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 3, insertions_count: 147, deletions_count: 34}, - {sha: "b5835aa3c6c30f7ff37097bfde96ddaebd938535", date: "2021-01-16 09:58:36 UTC", description: "add tls support", pr_number: 6078, scopes: ["prometheus_exporter sink"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 6, insertions_count: 121, deletions_count: 54}, - {sha: "a4211e5a498980d0639e7178621589f98b096fcc", date: "2021-01-16 03:36:10 UTC", description: "Capture initialization logs", pr_number: 6014, scopes: ["internal_logs source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 106, deletions_count: 35}, - {sha: "05e7359b139a942fb285e932a996fa4fdf48c1c3", date: "2021-01-16 23:38:05 UTC", description: "New `get_env_var` Remap function", pr_number: 6017, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Duy Do", files_count: 5, insertions_count: 131, deletions_count: 1}, - {sha: "9089bdfcc24ed23ae36c9b3faf4773555bdeb900", date: "2021-01-18 00:31:42 UTC", description: "Trigger `leveldb` compact after certain amount of deleted bytes", pr_number: 5821, scopes: ["buffers"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 131, deletions_count: 13}, - {sha: "6f147f3e5bc80ef027b921ac7f6a4af585e86220", date: "2021-01-18 18:49:52 UTC", description: "Filtering in the API", pr_number: 6028, scopes: ["graphql api"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 10, insertions_count: 1670, deletions_count: 468}, - {sha: "f5f7228339fe3362d1cb841324deb87eeef78eb0", date: "2021-01-19 07:04:24 UTC", description: "Support for collecting logs from static pods", pr_number: 6056, scopes: ["kubernetes_logs source"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 5, insertions_count: 229, deletions_count: 5}, - {sha: "a2107bb182d471b5a351600d4ff8079de066564b", date: "2021-01-19 09:20:07 UTC", description: "diagnostic error messages", pr_number: 6023, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 44, insertions_count: 2306, deletions_count: 1170}, - {sha: "bf3401cf188aea7b4faff77b5a9050e5666461ab", date: "2021-01-19 02:59:58 UTC", description: "Update VRL CLI behavior", pr_number: 6035, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 2, insertions_count: 30, deletions_count: 18}, - {sha: "a33537613404080d617aeafd117bd8ae53daad53", date: "2021-01-19 03:00:24 UTC", description: "Add length function for VRL", pr_number: 6088, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 11, insertions_count: 279, deletions_count: 6}, - {sha: "0e248d4103ba169cf15dafadd3daf45c0d2980d2", date: "2021-01-19 10:02:51 UTC", description: "Fix Metrics not Updating", pr_number: 5917, scopes: ["prometheus_exporter sink"], type: "fix", breaking_change: false, author: "Raphael Taylor-Davies", files_count: 1, insertions_count: 66, deletions_count: 0}, - {sha: "7e5f6baa19cc616eab8b69e5be43c4c70990e1ff", date: "2021-01-19 19:26:38 UTC", description: "improve test harness set-up", pr_number: 6105, scopes: ["remap"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 31, insertions_count: 273, deletions_count: 13}, - {sha: "f33a2a4c03d1d8bfd3f1c22403964a1afb636377", date: "2021-01-19 23:39:54 UTC", description: "API sorting, starting with `components`", pr_number: 6115, scopes: ["graphql api"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 5, insertions_count: 419, deletions_count: 35}, - {sha: "d119fe9ee7889848f95375fe9a11fad8da8b9153", date: "2021-01-20 00:30:43 UTC", description: "`ipv6_to_ipv4` function allows ipv4 addresses to pass through", pr_number: 6052, scopes: ["remap"], type: "fix", breaking_change: false, author: "FungusHumungus", files_count: 2, insertions_count: 31, deletions_count: 44}, - {sha: "c7a6fef2841767df73a0be706497ac8d5e2717ad", date: "2021-01-20 15:06:28 UTC", description: "Sorting for sources/transforms/sinks", pr_number: 6136, scopes: ["graphql api"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 6, insertions_count: 710, deletions_count: 193}, - {sha: "2f97437915c659be299aca8a39833bef738a777e", date: "2021-01-21 00:25:46 UTC", description: "Update VRL docs URLs", pr_number: 6120, scopes: ["remap"], type: "fix", breaking_change: false, author: "Luc Perkins", files_count: 1, insertions_count: 3, deletions_count: 2}, - {sha: "9c3baf76bf705dfd5e2ec53d88376aafc6976983", date: "2021-01-21 03:38:05 UTC", description: "Add encoding charset and line delimiter configuration", pr_number: 5436, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Anup Dhamala", files_count: 20, insertions_count: 728, deletions_count: 26}, - {sha: "5efa5d95f48640295728ac4c0672cfe6545b43ed", date: "2021-01-22 03:56:37 UTC", description: "support regexp in filters", pr_number: 6118, scopes: ["postgresql_metrics source"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 3, insertions_count: 204, deletions_count: 84}, - {sha: "98a066a1b659e43843c75760fc16cbbac6214380", date: "2021-01-22 18:34:36 UTC", description: "fix and document exclude_self logic", pr_number: 5998, scopes: ["docker_logs source"], type: "fix", breaking_change: false, author: "Duy Do", files_count: 2, insertions_count: 39, deletions_count: 61}, - {sha: "e8ac7d50c89fd85d81363e866f8c613252b43336", date: "2021-01-23 05:58:13 UTC", description: "Add `auth.access_key_id` and `auth.secret_access_key` options", pr_number: 6188, scopes: ["auth", "aws platform"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 64, deletions_count: 18}, - {sha: "35430409c771f63e45716035d0ae9fb12393943e", date: "2021-01-23 05:11:52 UTC", description: "Rename healthcheck error", pr_number: 6192, scopes: ["aws_cloudwatch_logs sink"], type: "fix", breaking_change: false, author: "Andrew Haines", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "cfeb2c2e358c6bc47c3c70f7a8ded2970f958a2c", date: "2021-01-27 01:30:46 UTC", description: "add `get_hostname` function", pr_number: 6141, scopes: ["remap transform"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 7, insertions_count: 111, deletions_count: 0}, - {sha: "87a21478b5e4256239894072095a57f61c1af725", date: "2021-01-27 02:32:55 UTC", description: "Merge configs for `vector test`", pr_number: 6214, scopes: [], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 58, deletions_count: 80}, - {sha: "e777720e1e8ba17514500df6d4e010d9fb10012d", date: "2021-01-28 03:24:51 UTC", description: "add wildcard expansion to inputs", pr_number: 6170, scopes: ["config"], type: "feat", breaking_change: false, author: "Luke Steensen", files_count: 5, insertions_count: 188, deletions_count: 35}, - {sha: "dad5a052f0669e9ea39172b197cc4a2775d506bd", date: "2021-01-29 04:43:53 UTC", description: "call ack on any result", pr_number: 6267, scopes: ["nats sink"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "7b762a072901f1be4a26dc37430d3ae1183b3ca3", date: "2021-01-28 19:44:39 UTC", description: "Extract new second-level features from Cargo.toml", pr_number: 6263, scopes: ["ci"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 11, deletions_count: 3}, - {sha: "ae47b00fa3a0691d950c83976df48f5b83335662", date: "2021-01-29 05:02:03 UTC", description: "fix field sublocation_type in parse_aws_vpc_flow_log", pr_number: 6229, scopes: ["remap"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "e5ed779d4321793a55594b40235a7252d9c90200", date: "2021-01-29 06:20:33 UTC", description: "add the ability to configure Vector API at the Helm charts", pr_number: 6248, scopes: ["kubernetes platform"], type: "enhancement", breaking_change: false, author: "Oleg Tsymbal", files_count: 10, insertions_count: 65, deletions_count: 0}, - {sha: "aa665d3bef94575a476fc533debc3049471eb6ea", date: "2021-01-29 05:11:03 UTC", description: "test again released version of loki", pr_number: 6279, scopes: ["tests"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "5382390239a4dfff5cc5ec2cc738d5309087d749", date: "2021-01-29 08:17:13 UTC", description: "Add more benchmark comparisons", pr_number: 6233, scopes: ["performance"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 9, insertions_count: 752, deletions_count: 3}, - {sha: "92a81794668fb89dbb576fdfcd8408138c2b41c6", date: "2021-01-29 19:36:51 UTC", description: "`parse_grok` should error when it fails to parse", pr_number: 6271, scopes: ["remap"], type: "fix", breaking_change: false, author: "FungusHumungus", files_count: 1, insertions_count: 7, deletions_count: 6}, - {sha: "06749528c7ae94601738284dc818dfb31ef0de24", date: "2021-01-29 20:05:33 UTC", description: "split start_at_beginning into simpler options", pr_number: 6178, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 6, insertions_count: 209, deletions_count: 65}, - {sha: "36b36a53bc6504c9176dac6fa445ab9347929659", date: "2021-01-29 22:36:28 UTC", description: "disallow non-unique component names", pr_number: 6270, scopes: ["config"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 69, deletions_count: 0}, - {sha: "3d37188984d1c519c134bc89fb1a617be9e76df7", date: "2021-01-30 06:55:59 UTC", description: "Make size of socket send/receive buffers configurable", pr_number: 6177, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Pablo Sichert", files_count: 32, insertions_count: 545, deletions_count: 164}, - {sha: "a2a54f561a9f7157bd59f12a7b72b564e346887d", date: "2021-01-30 00:33:18 UTC", description: "Fix metrics::tests::test_cardinality_metric", pr_number: 6278, scopes: ["metrics"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 23, deletions_count: 10}, - {sha: "51f5827df6c6d3337db6099016af03cefbc7f9dc", date: "2021-01-30 05:01:41 UTC", description: "use poll backend for watcher", pr_number: 6286, scopes: ["tests"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 4, deletions_count: 6}, - {sha: "055524028977e2ea5aa2fadbee093125e4d07ec1", date: "2021-02-02 02:44:41 UTC", description: "maintain type definitions for maps", pr_number: 6182, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "FungusHumungus", files_count: 27, insertions_count: 748, deletions_count: 179}, - {sha: "316937ce8067cc2785510d077e4172fb4f63ac58", date: "2021-02-02 16:10:34 UTC", description: "Fix out-of-order error", pr_number: 5973, scopes: ["loki sink"], type: "fix", breaking_change: false, author: "Duy Do", files_count: 4, insertions_count: 361, deletions_count: 38}, - {sha: "080a10cf5c2d3127ca3ff232b80aa6cf06d1573e", date: "2021-02-02 05:40:10 UTC", description: "revert poll watcher change", pr_number: 6311, scopes: ["tests"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 6, deletions_count: 4}, - {sha: "1e9d21123352b59ab590ba85aaabfe9eca9bcbb8", date: "2021-02-03 02:03:20 UTC", description: "Rework the metrics batch buffer", pr_number: 6251, scopes: ["metrics"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 11, insertions_count: 877, deletions_count: 456}, - {sha: "594a6c43e4e0f2d4e01136618f85a3a782eeec14", date: "2021-02-03 08:20:06 UTC", description: "Add charset option to decode_base64 function", pr_number: 6296, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 7, insertions_count: 219, deletions_count: 138}, - {sha: "7f3443202d9b793568977280ee2951467165fc19", date: "2021-02-03 21:52:33 UTC", description: "#5642 - build deb packages that install on Deb 8", pr_number: 6332, scopes: ["deployment"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "9c55395cd85423fb63893596617b29130abfadd9", date: "2021-02-03 21:52:46 UTC", description: "Re-flatten the remap-functions directory tree", pr_number: 6335, scopes: ["remap"], type: "fix", breaking_change: false, author: "Luc Perkins", files_count: 5, insertions_count: 53, deletions_count: 56}, - {sha: "cf6f56ac088ae525b1e368de64eaf9655487fbd3", date: "2021-02-04 02:50:17 UTC", description: "Fix handling of component errors", pr_number: 6309, scopes: ["topology"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 89, deletions_count: 88}, - {sha: "344053fec4afc74ad8eed4833ade2c14a924a06e", date: "2021-02-05 01:28:33 UTC", description: "Add `uptime` & `boot_time` metrics", pr_number: 6292, scopes: ["host_metrics source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 59, deletions_count: 1}, - {sha: "f53e7ec9d07e3ea6d555b82e85c038887113c1c2", date: "2021-02-04 18:11:35 UTC", description: "Add HTTP auth support", pr_number: 6281, scopes: ["prometheus_remote_write sink"], type: "feat", breaking_change: false, author: "William Perron", files_count: 2, insertions_count: 47, deletions_count: 2}, - {sha: "e758240ecc8a83d8bdf568a8ce2f1759b944077f", date: "2021-02-05 05:36:45 UTC", description: "Correct the real world benches", pr_number: 6350, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 7, deletions_count: 2}, - {sha: "f2529f091786df59ab9d7155c69483f93fec3041", date: "2021-02-05 01:48:23 UTC", description: "Deprecate fingerprint.bytes option", pr_number: 6338, scopes: ["file source"], type: "fix", breaking_change: false, author: "Jesse Szwedko", files_count: 2, insertions_count: 19, deletions_count: 20}, - {sha: "fe17fe46ae60c5983bd9f063bb412d7170e1eb15", date: "2021-02-06 05:08:15 UTC", description: "Add `parse_common_log` function", pr_number: 6230, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "Pablo Sichert", files_count: 5, insertions_count: 389, deletions_count: 0}, - {sha: "103a0a7c07b351565f6ac136123a91bb1e373dda", date: "2021-02-05 22:46:33 UTC", description: "Add join function", pr_number: 6313, scopes: ["remap"], type: "enhancement", breaking_change: false, author: "Luc Perkins", files_count: 5, insertions_count: 282, deletions_count: 0}, - {sha: "bec2c634c935341468b5da73bd43403697eddac4", date: "2021-02-06 06:16:47 UTC", description: "Add `parse_glog` function", pr_number: 6293, scopes: ["remap transform"], type: "feat", breaking_change: false, author: "Pablo Sichert", files_count: 6, insertions_count: 275, deletions_count: 0}, - {sha: "e56874a27d8186820bc0aa664c351b8c532d04f5", date: "2021-02-06 02:49:34 UTC", description: "Update bollard to 0.9.1 to fix #5937", pr_number: 6369, scopes: ["docker", "dependencies"], type: "fix", breaking_change: false, author: "James Turnbull", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "c6c87329cb2de7baab8a9e7792dcb4a7668d2d9e", date: "2021-02-08 01:10:15 UTC", description: "Emit `processed_events_total` after transform has processed event", pr_number: 6294, scopes: ["observability"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 69, deletions_count: 14}, - {sha: "85c0a29593418d7555357ae96e5980b8653ccb4b", date: "2021-02-08 10:36:46 UTC", description: "Switch to `futures-0.3` channels", pr_number: 6283, scopes: [], type: "perf", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 36, deletions_count: 11}, - {sha: "9c0bdd3adca4fe9243cca75053c66d10ed2fe9eb", date: "2021-02-09 04:29:18 UTC", description: "remove connect in SourceConfig::build", pr_number: 6246, scopes: ["mongodb_metrics source", "postgresql_metrics source"], type: "fix", breaking_change: false, author: "Kirill Fomichev", files_count: 2, insertions_count: 111, deletions_count: 109}, - {sha: "2dc29ea32748b6f6839fa2941077c1ee4330ee0e", date: "2021-02-09 06:51:17 UTC", description: "`FileSourceMetricFile` sort", pr_number: 6154, scopes: ["graphql api"], type: "enhancement", breaking_change: false, author: "Lee Benson", files_count: 6, insertions_count: 339, deletions_count: 32}, - {sha: "2000686a0d3b8671026ec87e762e9e6964758e21", date: "2021-02-09 00:56:00 UTC", description: "Move normalization out of MetricsBuffer", pr_number: 6340, scopes: ["metrics", "sinks"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 7, insertions_count: 171, deletions_count: 87}, - {sha: "c82bb6a5e74e89a59dcf853384e2acba970fc6d3", date: "2021-02-09 08:00:35 UTC", description: "Fix parse_json Wasm function", pr_number: 6398, scopes: ["wasm transform"], type: "fix", breaking_change: false, author: "Luc Perkins", files_count: 1, insertions_count: 13, deletions_count: 5}, - {sha: "48af0ac6757f88241c708ad2063dffb637b5146e", date: "2021-02-09 22:12:38 UTC", description: "Log IO errors when globbing", pr_number: 6384, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 78, deletions_count: 19}, - {sha: "a6d8ef583ebe7009af91418caf1ae584cfb75db1", date: "2021-02-09 20:51:09 UTC", description: "Add support for metrics in templates", pr_number: 6351, scopes: ["templating"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 97, deletions_count: 18}, - {sha: "f5574b5b53f9ac39f1008ffe29d69eafcaec5c9f", date: "2021-02-10 07:05:30 UTC", description: "change release profile", pr_number: 6202, scopes: ["releasing"], type: "enhancement", breaking_change: false, author: "Kirill Fomichev", files_count: 4, insertions_count: 14, deletions_count: 28}, - {sha: "879c5f55a1cc1c96bcb00234118c33a616acc543", date: "2021-02-09 22:31:35 UTC", description: "Fix merge error with test cases", pr_number: 6405, scopes: ["templating"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "ce108f3c03a9da7c8e07ecca735843c8ca6bfa6b", date: "2021-02-10 23:45:06 UTC", description: "Expose node-port for vector-aggregator", pr_number: 6020, scopes: ["kubernetes platform"], type: "feat", breaking_change: false, author: "Thor Anker Kvisgård Lange", files_count: 9, insertions_count: 95, deletions_count: 53}, - {sha: "066c22e6b1eab5bbc4e9dfe4ee6a24f3e491c421", date: "2021-02-10 22:24:26 UTC", description: "Handle OK response from api_watcher with embedded desync elegantly", pr_number: 6053, scopes: ["kubernetes_logs source"], type: "fix", breaking_change: false, author: "Ian Henry", files_count: 13, insertions_count: 1365, deletions_count: 187}, - {sha: "4b6cf6556606af62e17bbe5414fa380e60580ce3", date: "2021-02-11 01:13:38 UTC", description: "Fix lua_field_filter/v2 implementation", pr_number: 6355, scopes: ["lua transform"], type: "perf", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 4, deletions_count: 5}, - ] -} diff --git a/docs/reference/releases/0.4.0.cue b/docs/reference/releases/0.4.0.cue deleted file mode 100644 index a1881c820b7ec..0000000000000 --- a/docs/reference/releases/0.4.0.cue +++ /dev/null @@ -1,320 +0,0 @@ -package metadata - -releases: "0.4.0": { - date: "2019-09-24" - codename: "Hello World Again" - - whats_next: [ - ] - - commits: [ - {sha: "1357a3fa6b9acd0dd1d4b9e577969bf0594a5691", date: "2019-09-12 12:12:12 +0000", description: "Add initial rework of rate limited logs", pr_number: 778, scopes: ["observability"], type: "perf", breaking_change: false, author: "Lucio Franco", files_count: 5, insertions_count: 300, deletions_count: 270}, - {sha: "bf81efdddf801232aa44ab76184e1368f1ce4f78", date: "2019-09-12 10:38:59 +0000", description: "Increase docker-release timeout", pr_number: 858, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "9705ae833c918189f786ac72c6f974102385911b", date: "2019-09-12 17:32:50 +0000", description: "New `add_tags` transform", pr_number: 785, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Alexey Suslov", files_count: 35, insertions_count: 1352, deletions_count: 347}, - {sha: "9705ae833c918189f786ac72c6f974102385911b", date: "2019-09-12 17:32:50 +0000", description: "New `remove_tags` transform", pr_number: 785, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Alexey Suslov", files_count: 35, insertions_count: 1352, deletions_count: 347}, - {sha: "4cd5e539565732fd1289bc9f5ddba2897404f441", date: "2019-09-11 18:55:02 +0000", description: "New `file` sink", pr_number: 688, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Kirill Taran", files_count: 22, insertions_count: 1355, deletions_count: 8}, - {sha: "ee527daf254144bdbf78e8aeb87febfb61816bde", date: "2019-09-11 11:45:30 +0000", description: "update stream-based diagram", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 206, deletions_count: 261}, - {sha: "ff83f94362d841270c71abbcf415776d0b6e78c3", date: "2019-09-11 11:33:48 +0000", description: "update roadmap link", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 8, insertions_count: 13, deletions_count: 9}, - {sha: "e331a886afbf7ce5db4296321449a16bc1ed41e1", date: "2019-09-11 09:39:43 +0000", description: "favor older files and allow configuring greedier reads", pr_number: 810, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 9, insertions_count: 393, deletions_count: 70}, - {sha: "c3cbc55477c477d7a7b3ff7cd7b216b412ed1c14", date: "2019-09-11 09:36:09 +0000", description: "clarify sampler transform rate documentation", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Luke Steensen", files_count: 4, insertions_count: 16, deletions_count: 6}, - {sha: "a7d237573f4b60235b21973a9c3f5c0b9362e03f", date: "2019-09-10 15:37:23 +0000", description: "gitbook straight doesnt escape |, so we will have to live with \\|", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 6, deletions_count: 6}, - {sha: "cd4637f154ec1b4e41918516d5ae0bac62bd63e6", date: "2019-09-10 15:36:11 +0000", description: "use | for the pipe character...gitbook", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 6, deletions_count: 6}, - {sha: "2f5c8898a2867701242be3691cc9a5f5ec30ba2a", date: "2019-09-10 15:35:19 +0000", description: "add SUMMARY.md.erb template", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 90, deletions_count: 0}, - {sha: "049d94e3ba49a869dd30717ef09cf6e8854e1853", date: "2019-09-10 15:34:57 +0000", description: "use literals when escaping |", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 6, deletions_count: 6}, - {sha: "ae507430d4e9ff704803f31ef5367319bbfb6497", date: "2019-09-10 15:33:20 +0000", description: "gitbook doesnt like double escaped | characters", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 6, deletions_count: 6}, - {sha: "7b25d9170d327c6e2078cad837259b1aad7e5e6e", date: "2019-09-10 15:30:34 +0000", description: "fix file source table escaping", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 9, deletions_count: 3}, - {sha: "1f488eec08cf518e7199adb05b81d38f3cbb0995", date: "2019-09-10 12:09:51 +0000", description: "kafka souce it an at_least_once delivery guarantee", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 5, deletions_count: 5}, - {sha: "538b1e789330589cc970166c21daa87b629d3592", date: "2019-09-10 12:08:39 +0000", description: "add note about kafka topic pattern matching, ref https://github.com/timberio/vector/issues/819", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 16, deletions_count: 10}, - {sha: "81778163c916b1a94756b19c7313c904fe666721", date: "2019-09-10 12:05:27 +0000", description: "fix path detection", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "dbfbf081fcfba499c3cd152b5e2f1b84517f694a", date: "2019-09-10 10:55:33 +0000", description: "fix sink links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 26, deletions_count: 26}, - {sha: "de5940ed2592a59a3f86bb5c35b0f019304331d2", date: "2019-09-10 10:50:48 +0000", description: "generate SUMMARY.md to ensure new components show up in the side bar", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 69, deletions_count: 35}, - {sha: "33c48a6482ef7b7a5bd11bb4d867a4f97908d93e", date: "2019-09-10 10:41:48 +0000", description: "add kafka source to summary.md", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 11, deletions_count: 1}, - {sha: "e4f5b2630ad9e537b3e576ab73f468855b0f46eb", date: "2019-09-10 16:36:15 +0000", description: "Add bundler to requirements", pr_number: 845, scopes: [], type: "docs", breaking_change: false, author: "Matthias Endler", files_count: 1, insertions_count: 7, deletions_count: 1}, - {sha: "94cadda25e552b0eb82e58ea85eda10e6b787197", date: "2019-09-09 10:22:35 +0000", description: "Add checkpointing support", pr_number: 816, scopes: ["journald source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 8, insertions_count: 342, deletions_count: 77}, - {sha: "c83e7e0c7c3a994c817c4a8ae0ac41c3a6c1818d", date: "2019-09-05 14:12:25 +0000", description: "Make the headers and query tables optional.", pr_number: 831, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 11, deletions_count: 5}, - {sha: "c8736ea623df8ed17cd04478785522459bd4c105", date: "2019-09-05 14:27:46 +0000", description: "Fix docker nightly builds", pr_number: 830, scopes: ["operations"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 11, deletions_count: 17}, - {sha: "e9b5988bd26c550c2308ba65798872634fe6a4f8", date: "2019-09-04 17:16:50 +0000", description: "allow aggregating multiple lines into one event", pr_number: 809, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 5, insertions_count: 285, deletions_count: 16}, - {sha: "1b8f2bb9f2b2ec60ba02a0be6f449be19950f8eb", date: "2019-09-04 21:46:24 +0000", description: "Topology test refactoring", pr_number: 748, scopes: ["testing"], type: "chore", breaking_change: false, author: "Bittrance", files_count: 3, insertions_count: 677, deletions_count: 830}, - {sha: "1dac7d8c3e399d750891bbe74fb0580c179e4138", date: "2019-09-03 15:37:02 +0000", description: "Add support for unverified HTTPS", pr_number: 815, scopes: ["http sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 6, insertions_count: 124, deletions_count: 28}, - {sha: "928e37f4de188134565e05e04943e04dcc95e6a0", date: "2019-09-03 23:27:30 +0000", description: "Add missing clickhouse integration test feature", pr_number: 818, scopes: ["testing"], type: "chore", breaking_change: false, author: "Markus Holtermann", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "712a7219aeb2e8f4fe87efdbcf11493dc0cb9d97", date: "2019-09-03 14:12:43 +0000", description: "Update to `tokio-udp` v0.1.5", pr_number: 817, scopes: ["udp source"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 21, deletions_count: 53}, - {sha: "1c6dd7b0b07be08f3c8b794d58d9c0f32c07454f", date: "2019-08-29 21:18:36 +0000", description: "Use new UdpFramed", pr_number: 808, scopes: ["udp source"], type: "chore", breaking_change: false, author: "ktff", files_count: 3, insertions_count: 55, deletions_count: 50}, - {sha: "c0f8e78195e88457589d95eaa731a3ab699132d2", date: "2019-08-27 21:13:06 +0000", description: "make fingerprinting strategy configurable", pr_number: 780, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 7, insertions_count: 330, deletions_count: 121}, - {sha: "2ee1c39c251344bca78caa29824927b2c967ca84", date: "2019-08-27 19:37:18 +0000", description: "fix tcp sink docs formatting issues", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 33, deletions_count: 41}, - {sha: "0f72a2b1669a97e4838d3ca852d2f68a878915f4", date: "2019-08-27 17:29:43 +0000", description: "Initial `journald` source implementation", pr_number: 702, scopes: ["new source"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 20, insertions_count: 1366, deletions_count: 1}, - {sha: "73a092647ef36db3b489a760b75da81cc27ef608", date: "2019-08-27 15:25:00 +0000", description: "Add support for TLS", pr_number: 765, scopes: ["tcp sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 10, insertions_count: 460, deletions_count: 19}, - {sha: "4d3d5d5a79ef5124ec8a96acec558b4e63026bcb", date: "2019-08-27 15:29:58 +0000", description: "add test for tokenizer handling multiple spaces", pr_number: null, scopes: ["testing"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 5, deletions_count: 0}, - {sha: "90bded60b2ba5618dbfbed35c7f6ac000ca5a40b", date: "2019-08-27 14:24:59 +0000", description: "add build steps as part of overall testing", pr_number: 788, scopes: ["testing"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 6, deletions_count: 0}, - {sha: "19aef1601e7c2a03b340d2af0b1d4849d9a48862", date: "2019-08-27 17:42:00 +0000", description: "`encoding = \"text\"` overrides", pr_number: 803, scopes: ["aws_cloudwatch_logs sink"], type: "fix", breaking_change: false, author: "Bittrance", files_count: 1, insertions_count: 48, deletions_count: 13}, - {sha: "ed7605a0aeb07e16385907cc56b190345f088752", date: "2019-08-26 17:38:18 +0000", description: "Docker build image tweaks", pr_number: 802, scopes: ["operations"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 7, insertions_count: 28, deletions_count: 22}, - {sha: "15cd77ee9f65bc749ed17cf3673e06ca02d25a2b", date: "2019-08-26 22:11:32 +0000", description: "Add new `kafka` source", pr_number: 774, scopes: ["new source"], type: "feat", breaking_change: false, author: "Alexander Rodin", files_count: 16, insertions_count: 786, deletions_count: 0}, - {sha: "3a57fe52addb3c7f0760437f31518fb9ed8f1bf0", date: "2019-08-25 19:50:55 +0000", description: "Use GNU ld instead of LLVM lld for x86_64-unknown-linux-musl", pr_number: 794, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 26, deletions_count: 64}, - {sha: "5f88b0aa44e1909736a842f9311ae3c54f0d99c2", date: "2019-08-24 14:21:10 +0000", description: "update github label links to use new lowercase format", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 32, insertions_count: 174, deletions_count: 174}, - {sha: "b504f8542a57991b59a7fbd233712afdff172383", date: "2019-08-24 11:35:50 +0000", description: "remove sinks guidelines from docs and put them in contributing.md", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 0, deletions_count: 56}, - {sha: "0296c9e0553b63de1d2e8fe616da12c9233b67db", date: "2019-08-24 11:30:43 +0000", description: "merge DEVELOPING.md into CONTRIBUTING.md", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 286, deletions_count: 307}, - {sha: "e74e4694f5358154b51cbb96475972498f01d426", date: "2019-08-24 17:32:34 +0000", description: "Add tags support to log_to_metric transform", pr_number: 786, scopes: ["lua transform"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 6, insertions_count: 127, deletions_count: 48}, - {sha: "af1a700c1b79c542b41a677b14356a1c4c8291fa", date: "2019-08-24 10:25:52 +0000", description: "fix relative linking on root docs pages, ref: https://github.com/timberio/vector/pull/793", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 16, deletions_count: 12}, - {sha: "a02ea63fc70d6b1b2c736e48fc203a09e439305b", date: "2019-08-24 10:17:16 +0000", description: "update data model docs with relevant changes", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 73, deletions_count: 33}, - {sha: "990714c5b9fce922f05720ab3b84e1aec8b39826", date: "2019-08-24 06:15:03 +0000", description: "Restore rust-toolchain after building", pr_number: 792, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "758d646be0c9f8dd1dca5c997dc57a3541eafcec", date: "2019-08-23 23:12:49 +0000", description: "fix source output types", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 7, insertions_count: 20, deletions_count: 15}, - {sha: "5e7132806adfad922a165a5da0f6c0ac3a5d0854", date: "2019-08-23 14:44:18 +0000", description: "update add companies link", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 5, deletions_count: 0}, - {sha: "65bb96690c29e474d63ab1850ce2904c466a97e5", date: "2019-08-23 12:20:41 +0000", description: "add companies list", pr_number: 789, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 5, insertions_count: 38, deletions_count: 4}, - {sha: "b6fcdc1176f3586f47f9593294c3fc81c6b08492", date: "2019-08-23 12:04:07 +0000", description: "add log/metrics correlation feature", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 10, deletions_count: 6}, - {sha: "761993432a817176ba89ead07b681c36e3b3a1f7", date: "2019-08-23 09:42:21 +0000", description: "add namespace config", pr_number: 782, scopes: ["prometheus sink"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 7, insertions_count: 67, deletions_count: 22}, - {sha: "7e8e7a2417244e58082c855576898d9b5edb1971", date: "2019-08-21 15:40:44 +0000", description: "update cloudwatch examples", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 7, insertions_count: 22, deletions_count: 17}, - {sha: "38ba67ede2adfb8aba59c161dd47b05a519c1426", date: "2019-08-21 15:00:40 +0000", description: "fix authentication list, attempt 2", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 4, deletions_count: 4}, - {sha: "28d62b40b19e56dfaeb851f5313ef937af9d9c79", date: "2019-08-21 14:59:19 +0000", description: "fix authentication list", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 20, deletions_count: 4}, - {sha: "6ff75029425ab791f3b63818c74b55481be45139", date: "2019-08-21 14:29:02 +0000", description: "fix partitioning language", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 11, deletions_count: 32}, - {sha: "48778f848a8b3ee934a28c796d69589eab9b9242", date: "2019-08-20 16:26:31 +0000", description: "Only notify on failed/fixed master builds", pr_number: 779, scopes: ["operations"], type: "chore", breaking_change: false, author: "Jesse Szwedko", files_count: 1, insertions_count: 5, deletions_count: 0}, - {sha: "6bbd5c429706b0ca898e9cefb3d44c767adfac61", date: "2019-08-20 13:52:23 +0000", description: "fix UDP docs typo", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 6, deletions_count: 6}, - {sha: "546ba47f692d3deea48a067d419be3c5bda42121", date: "2019-08-20 13:50:57 +0000", description: "fix errors in udp source docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 24, deletions_count: 33}, - {sha: "760d21bb84bddb692e7ac31ac8a8a2e0a86784ab", date: "2019-08-20 13:46:53 +0000", description: "fix from archive installation typos", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 7, deletions_count: 7}, - {sha: "ff0d46f2236de6dc1bb81c1a9f898a9bf378c484", date: "2019-08-20 13:43:35 +0000", description: "keep nightly builds", pr_number: 772, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 10, insertions_count: 154, deletions_count: 108}, - {sha: "ab9aff1340786e8bac0ce4b7eeff31ff90e746d7", date: "2019-08-20 19:22:02 +0000", description: "add labels support", pr_number: 773, scopes: ["prometheus sink"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 2, insertions_count: 131, deletions_count: 57}, - {sha: "8a29c615e59e5e8728d08b09bfadc92739aa75ec", date: "2019-08-19 21:07:51 +0000", description: "add udp source", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 12, insertions_count: 485, deletions_count: 0}, - {sha: "c71c421d013d4bd68223982a36d73c3805bb4886", date: "2019-08-19 21:02:35 +0000", description: "add clickhouse sink documentation", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 478, deletions_count: 0}, - {sha: "d723a95ce9ff8689635c6bed9b4ec78a1daea81b", date: "2019-08-19 15:56:29 +0000", description: "Add support for custom query parameters", pr_number: 766, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 6, insertions_count: 64, deletions_count: 5}, - {sha: "8361f6a36ce604e39ea124b2864060c5cfa680ae", date: "2019-08-16 14:55:42 +0000", description: "Error type for types conversion", pr_number: 735, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 7, insertions_count: 101, deletions_count: 42}, - {sha: "bed79bbaf9ed5ac566b1765ff989a4cbdd5aefcc", date: "2019-08-16 13:58:08 +0000", description: "Initial `clickhouse` sink implementation", pr_number: 693, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Luke Steensen", files_count: 18, insertions_count: 698, deletions_count: 29}, - {sha: "a55ed98f2aecce097f7a4e31b424e6ad47a4703e", date: "2019-08-15 18:47:27 +0000", description: "Add rust-toolchain file and bump to 1.37", pr_number: 761, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 27, insertions_count: 55, deletions_count: 68}, - {sha: "252d145caa473a97b93051178b00ddfd7436cc46", date: "2019-08-15 19:33:42 +0000", description: "add tags into metrics model", pr_number: 754, scopes: ["metric data model"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 8, insertions_count: 243, deletions_count: 33}, - {sha: "b0d58784a917931f8bdc0e16981bd2ff62108472", date: "2019-08-15 10:59:10 +0000", description: "Add guidance for writing healthchecks", pr_number: 755, scopes: [], type: "docs", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 116, deletions_count: 4}, - {sha: "7d2427ff1afa2addf29d96b5508133628b1e4e50", date: "2019-08-15 11:50:40 +0000", description: "Add dynamic group creation", pr_number: 759, scopes: ["aws_cloudwatch_logs sink"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 8, insertions_count: 236, deletions_count: 27}, - {sha: "18abb24e03f1e5ec1613ed44ad1674ba8765361f", date: "2019-08-15 11:43:59 +0000", description: "Initial `aws_cloudwatch_metrics` sink implementation ", pr_number: 707, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Alexey Suslov", files_count: 9, insertions_count: 588, deletions_count: 5}, - {sha: "60fe033ae52bf2fd7558b17037d37c9e236a02d1", date: "2019-08-14 17:05:21 +0000", description: "fix docs generator file ext", pr_number: null, scopes: ["docs"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 4, deletions_count: 4}, - {sha: "0d0fcdfb226394ca6f26f55cd24785cc948f49d7", date: "2019-08-14 15:40:06 +0000", description: "Add support for additional headers to the Elasticsearch sink", pr_number: 758, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 62, deletions_count: 1}, - {sha: "37c998922a2a8ae96d17e82e6fd56c41679c66f8", date: "2019-08-14 22:47:44 +0000", description: "Update Metric::Set usage", pr_number: 756, scopes: ["prometheus sink"], type: "fix", breaking_change: false, author: "ktff", files_count: 1, insertions_count: 5, deletions_count: 1}, - {sha: "756b115fe4db5e81358c61f88444c87010ec9268", date: "2019-08-14 22:19:27 +0000", description: "Initial `udp` source implementation", pr_number: 738, scopes: ["new source"], type: "feat", breaking_change: false, author: "ktff", files_count: 3, insertions_count: 230, deletions_count: 1}, - {sha: "014d6f63044476c541f9f3f0f9f1092e2446ca05", date: "2019-08-14 22:16:35 +0000", description: "Support sets", pr_number: 733, scopes: ["prometheus sink"], type: "enhancement", breaking_change: false, author: "ktff", files_count: 2, insertions_count: 178, deletions_count: 6}, - {sha: "584196c14caa150bc97edc39e339976c2927cd1e", date: "2019-08-14 16:50:47 +0000", description: "reload with unparseable config", pr_number: 752, scopes: ["config"], type: "fix", breaking_change: false, author: "Kirill Taran", files_count: 2, insertions_count: 14, deletions_count: 8}, - {sha: "a2196b89075bbd71c82340bcab607a8eca72d1dc", date: "2019-08-13 16:02:21 +0000", description: "Add HTTP Basic authorization", pr_number: 749, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 7, insertions_count: 105, deletions_count: 5}, - {sha: "fdc863ce7f757c75a277818195fdbfe170963765", date: "2019-08-13 11:19:15 +0000", description: "Ignore topology replace source and transform", pr_number: 740, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "dd99c6cdf430f86285856ead0d75c2e1dab4f104", date: "2019-08-12 20:15:05 +0000", description: "fix typo", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 28, insertions_count: 28, deletions_count: 28}, - {sha: "59f3a185cdc9038b2cdc78c027239f6f241e03e9", date: "2019-08-12 15:27:11 +0000", description: "Hot fix (cargo-fmt)", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Kirill Taran", files_count: 1, insertions_count: 0, deletions_count: 1}, - {sha: "2b8c1cdcaa5fd577770a8a5cf63fb60d4c7b50d7", date: "2019-08-12 17:12:06 +0000", description: "Validation of sinks and sources for non-emptiness.", pr_number: 739, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Kirill Taran", files_count: 2, insertions_count: 14, deletions_count: 2}, - {sha: "f59065106149213c6227b7542c7b9e46f9caf119", date: "2019-08-12 11:08:34 +0000", description: "fix typos", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 8, insertions_count: 8, deletions_count: 8}, - {sha: "f23553a792214649acf091d2b71a23c837acee9f", date: "2019-08-12 16:48:17 +0000", description: "Fix typo in vector image", pr_number: 744, scopes: [], type: "docs", breaking_change: false, author: "Matthias Endler", files_count: 1, insertions_count: 1, deletions_count: 134}, - {sha: "9a2f2b1e25699b9083990cf32d1e13582de6455b", date: "2019-08-12 15:17:18 +0000", description: "Fix typos", pr_number: 743, scopes: [], type: "docs", breaking_change: false, author: "Matthias Endler", files_count: 16, insertions_count: 30, deletions_count: 29}, - {sha: "95a19e1f9c28fdcb4ba1c337d935cabb5a29b176", date: "2019-08-10 18:34:16 +0000", description: "Improve x86_64-unknown-linux-musl build", pr_number: 722, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 5, deletions_count: 2}, - {sha: "adf0f1f5cc1828fd2be012d2487bc64caa748de3", date: "2019-08-09 21:04:56 +0000", description: "It is now possible to reload a with a non-overlap…", pr_number: 681, scopes: ["topology"], type: "fix", breaking_change: false, author: "Bittrance", files_count: 2, insertions_count: 63, deletions_count: 3}, - {sha: "febdde0419fd7665916ea76bfb310ec1ad805c41", date: "2019-08-09 13:56:39 +0000", description: "Add sink healthcheck disable", pr_number: 731, scopes: ["topology"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 22, insertions_count: 531, deletions_count: 125}, - {sha: "3a2990c4da5aef70caa106f4d7382dcf3fc1ec1e", date: "2019-08-09 11:25:50 +0000", description: "update sink flow diagrams", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 25, deletions_count: 27}, - {sha: "db6829d7da7e7a3ffdf6086cadc1beb3455c79ce", date: "2019-08-08 16:35:00 +0000", description: "fix release-s3 error", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "96b1e89bf47929edd361baf4f4da34ff40a5c8a8", date: "2019-08-08 23:25:46 +0000", description: "add timestamps into metrics", pr_number: 726, scopes: ["metric data model"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 11, insertions_count: 335, deletions_count: 195}, - {sha: "f22e3af44256d2c07b9f6fcc5369f94f7c405dd4", date: "2019-08-09 05:27:17 +0000", description: "don't serialize MapValue::Null as a string", pr_number: 725, scopes: ["log data model"], type: "fix", breaking_change: false, author: "Markus Holtermann", files_count: 2, insertions_count: 30, deletions_count: 4}, - {sha: "5a7d1516c5c08cee44cc84043db10a8253380407", date: "2019-08-08 11:41:13 +0000", description: "RUSTSEC-2019-0011 by updating crossbeam-epoch", pr_number: 723, scopes: ["security"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 20, deletions_count: 5}, - {sha: "84f87eaf788b61d07bb989410e7e74948f75ee12", date: "2019-08-07 22:33:00 +0000", description: "remove filter on nightly builds", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 0, deletions_count: 1}, - {sha: "e267f72beda5092984b0f6b4c92fb785037419b9", date: "2019-08-07 19:25:24 +0000", description: "add prometheus histograms test", pr_number: 719, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexey Suslov", files_count: 2, insertions_count: 39, deletions_count: 22}, - {sha: "1bf385dea6f4d7a02aebc9c3cc010defe5d56277", date: "2019-08-07 12:06:55 +0000", description: "Use a locked down version of localstack", pr_number: 720, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "e4108bc1b067ac83aa0dc85fcab9564af75367ef", date: "2019-08-07 18:02:14 +0000", description: "use double for storing metric values", pr_number: 717, scopes: ["metric data model"], type: "chore", breaking_change: false, author: "Alexey Suslov", files_count: 4, insertions_count: 18, deletions_count: 23}, - {sha: "3c36de2691c263dfbbda747d3d328b445ec174ff", date: "2019-08-06 14:19:26 +0000", description: "use shorter component ids", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 30, insertions_count: 47, deletions_count: 47}, - {sha: "855b00793cd4b2cee35788a020d1e729a02b5005", date: "2019-08-06 19:43:06 +0000", description: "Support histograms", pr_number: 675, scopes: ["prometheus sink"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 18, insertions_count: 742, deletions_count: 596}, - {sha: "bedccf409b61c7eeaa9d96126fed184ff0df27fe", date: "2019-08-06 11:42:04 +0000", description: "all new * as a commit title category", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 12, deletions_count: 0}, - {sha: "495d8be6299de55d5e31a84cfe467f263582d9df", date: "2019-08-05 23:41:36 +0000", description: "fix duplicate section references", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 13, insertions_count: 145, deletions_count: 18}, - {sha: "929026eb7bdeea9459ab81324124f46b85674c78", date: "2019-08-05 23:21:07 +0000", description: "aws_s3_sink encoding is not required", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 184, deletions_count: 189}, - {sha: "a9993b8e1aa6557be5ddef47cc3d305fe0a50a56", date: "2019-08-05 23:06:48 +0000", description: "add valid scopes", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 63, deletions_count: 2}, - {sha: "9b7b786d74e1ad57322ae7f5e3ec5bcd2073d9cf", date: "2019-08-05 22:37:34 +0000", description: "fix typo", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 11, insertions_count: 40, deletions_count: 40}, - {sha: "4c0046c54cd7bef189a7a9422f3b7608ecb17ebd", date: "2019-08-05 22:36:17 +0000", description: "remove false default values that communicate dynamic behavior", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 16, insertions_count: 136, deletions_count: 96}, - {sha: "67bbaa52e35e1736f383f995a0399c9960d34a24", date: "2019-08-05 22:18:02 +0000", description: "fix html escaping issues", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 33, insertions_count: 248, deletions_count: 248}, - {sha: "906bb21fe220d827b0fbc018d223bda0792d6006", date: "2019-08-05 22:14:20 +0000", description: "add html escaping", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 37, insertions_count: 326, deletions_count: 281}, - {sha: "e190e96e925d819d7460fab64f37fdb4241b88ad", date: "2019-08-06 03:48:52 +0000", description: "fall back to global data_dir option (#644)", pr_number: 673, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Denis Andrejew", files_count: 14, insertions_count: 191, deletions_count: 50}, - {sha: "ce3bc8dd988539643df3f5a6447696a7ebac108f", date: "2019-08-04 11:36:35 +0000", description: "fix lua drop event example", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 4, deletions_count: 10}, - {sha: "bb4e220318db02c9d52703d7a603f70b9731473d", date: "2019-08-04 11:32:10 +0000", description: "fix alternative suggestions", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 32, insertions_count: 70, deletions_count: 59}, - {sha: "7f9a86f5de31a3d2b17dc8a22b7ae27420eceed6", date: "2019-08-04 11:25:06 +0000", description: "update log_to_metric docs to reflect all metric types", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 7, insertions_count: 284, deletions_count: 58}, - {sha: "b317396794f97d66208379f2cfffe007ac1a51fa", date: "2019-08-04 10:15:41 +0000", description: "update enum language", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 37, insertions_count: 239, deletions_count: 230}, - {sha: "86fef80098e7e438852917dbcd58eec0e8e8ac44", date: "2019-08-03 15:59:09 +0000", description: "add summary for Vector config syntax", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 6, deletions_count: 2}, - {sha: "d391ad95a259cab216f4848f7c938a612749e043", date: "2019-08-03 15:57:52 +0000", description: "fix template syntax broken link", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 16, deletions_count: 16}, - {sha: "e37229641eac91eee4c9699b34ae821ad8548ada", date: "2019-08-03 15:56:28 +0000", description: "fix doc typo", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 5, deletions_count: 5}, - {sha: "5406afbf6d5632be9202d83a4d1055c91d022549", date: "2019-08-03 15:55:56 +0000", description: "remote strftime comment in s3 key_prefix description", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 5, deletions_count: 5}, - {sha: "7fea8ad0876a90a7b6bdc3e14f686978b5d109f3", date: "2019-08-03 15:52:47 +0000", description: "add documentation on Vectors template syntax", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 43, insertions_count: 2601, deletions_count: 137}, - {sha: "57d57db514a0de09dcbd4f98405c9b9a26b1c027", date: "2019-08-03 13:15:08 +0000", description: "fix build syntax error", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 4, deletions_count: 4}, - {sha: "5eb88c35797cebf49e1ede178b94598a0afdd5eb", date: "2019-08-03 13:13:29 +0000", description: "fix nightly builds, release to docker and s3", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 128, deletions_count: 71}, - {sha: "4b066e6d7f40fd3cc6d967bfc527c0c8aa8c3718", date: "2019-08-03 11:15:11 +0000", description: "cleanup docker language", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 28, deletions_count: 19}, - {sha: "b8ee40ead6b03b23f11940f2038dd0c10580e48b", date: "2019-08-03 11:06:08 +0000", description: "update installer script to use musl statically linked archive", pr_number: null, scopes: ["chore"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "7e161e6aa92f20e3b758fb0a87889fa05346ab18", date: "2019-08-03 11:02:01 +0000", description: "update chat to chat/forum since it servers both purposes now", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 30, insertions_count: 31, deletions_count: 31}, - {sha: "02cfaa1e6a78f08d0eba93cdb15a6049940f7d8a", date: "2019-08-03 10:58:27 +0000", description: "add data model diagram", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 216, deletions_count: 7}, - {sha: "ecdf4ed715901b8a9c132b57df120b5bdf1a2f63", date: "2019-08-02 18:31:21 +0000", description: "fix docker html entity escaping", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 12, deletions_count: 6}, - {sha: "b511fd9362421e6ac3b73187a8ac1f61ea309501", date: "2019-08-02 18:29:23 +0000", description: "update vector docker images to reflect their base image", pr_number: 705, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 7, insertions_count: 34, deletions_count: 32}, - {sha: "8fe6b2252bfe7bf20f17327a46771742eb80396c", date: "2019-08-02 16:40:06 +0000", description: "use templates for ES index and S3 key prefix", pr_number: 686, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 4, insertions_count: 275, deletions_count: 151}, - {sha: "fbed6bdddddc627f6400bf36a075fcd897a8b09a", date: "2019-08-02 17:24:18 +0000", description: "unflatten event before outputting", pr_number: 678, scopes: ["log data model"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 17, insertions_count: 552, deletions_count: 40}, - {sha: "12ce3a069bbc809a08d5561ddbd4593c318b9960", date: "2019-08-02 17:16:13 +0000", description: "recommend alpine docker image", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 4, deletions_count: 4}, - {sha: "fb9595e5abc2072ec454c2e84e59a056cab5d65b", date: "2019-08-02 16:32:51 +0000", description: "attempt to fix data model type links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "f07e3ce41cea2492114e8b20d35f703843a825ac", date: "2019-08-02 16:01:55 +0000", description: "singularize log event types", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 4, deletions_count: 4}, - {sha: "0d19588b28bab2f2c44760e610516c5ce17ad6b4", date: "2019-08-02 15:58:47 +0000", description: "expand on log event types", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 21, insertions_count: 66, deletions_count: 32}, - {sha: "8758a7c978fa62fe88960f4dd10ebc17a604a743", date: "2019-08-02 15:42:02 +0000", description: "fix subnav item names for log and event", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "093bf3f5e7054cbfd58a4443a454e7532a8f844e", date: "2019-08-02 15:41:20 +0000", description: "fix path typo in subnav", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 4, deletions_count: 4}, - {sha: "e57120ab88d37b817a207588bca03d377e9c94b0", date: "2019-08-02 15:40:31 +0000", description: "rename log and metric subnav items because Gitbook...", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "9f2e7dda97814710e62fe8d1cf07ff2ee7d4ccf4", date: "2019-08-02 15:39:48 +0000", description: "rename log and metric event titles because gitbook...", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "69a1c145621cc0a922f059f340d3fcd28938631b", date: "2019-08-02 15:37:59 +0000", description: "add log and metrics subnav items for the data model section", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "05a2aecb33dd95e1b1e99f923767b2e40b082339", date: "2019-08-02 15:34:46 +0000", description: "Add configurable partition keys", pr_number: 692, scopes: ["aws_kinesis_streams sink"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 54, insertions_count: 1075, deletions_count: 522}, - {sha: "e70d1834e34c58ae0e31b630f3a148d5ed3c64d4", date: "2019-08-02 10:44:50 +0000", description: "cleanup musl archive language", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 5, deletions_count: 10}, - {sha: "a9ec4a75d753f6e939df4b31b9d3ba8f700ff890", date: "2019-08-02 10:35:15 +0000", description: "release nightly instead of on each commit", pr_number: 703, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 4, insertions_count: 47, deletions_count: 37}, - {sha: "bce95689d801b35a635328f9524613da3b137b39", date: "2019-08-02 09:24:55 +0000", description: "remove musl warnings since it includes all features now", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "c8a304590fdced8b867a8b3d1d44b86c67dd0bfb", date: "2019-08-01 18:54:58 +0000", description: "fix broken links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 2, deletions_count: 5}, - {sha: "4b0735f5b64da0c7d6aba1a15d803d1767048fe4", date: "2019-08-01 18:34:07 +0000", description: "fix docker.md parsing error", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "c3345f5da237fcfb94caccdd88ab0adfb7e333eb", date: "2019-08-01 18:14:05 +0000", description: "Add rate limit notice when it starts", pr_number: 696, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 40, deletions_count: 11}, - {sha: "df3df71d2b9c1b2f53f2590bc5bb0c1a639ff1c4", date: "2019-08-01 18:00:03 +0000", description: "make binary stripping an option during the release process, fixes an issue stripping armv7 binaries", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 6, deletions_count: 1}, - {sha: "22f8454d4b70496262f57e3f4e4232768fc30ebd", date: "2019-08-01 17:24:05 +0000", description: "add TARGET env var to musl build archive step", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 5, deletions_count: 1}, - {sha: "88726cb21b0c4284373cfd12ce1b230d307e8a07", date: "2019-08-01 13:35:34 +0000", description: "Remove extra debug flags", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 0, deletions_count: 3}, - {sha: "c47d9cd610befbede9846c61437be748884f4c46", date: "2019-08-01 13:35:09 +0000", description: "Fix build-archive script to support multiple features", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 23, deletions_count: 10}, - {sha: "feca20d2ba5cba4c88bef431a1ec4988ba26f6c9", date: "2019-08-01 11:57:01 +0000", description: "Disable armv7 musleabihf build", pr_number: 698, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 19, deletions_count: 19}, - {sha: "d2df9ba321990a0bf5996f18135351fa8bbf296c", date: "2019-08-01 18:52:16 +0000", description: "Build for x86_64-unknown-linux-musl with all features and optimized binary size", pr_number: 689, scopes: ["operations"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 365, deletions_count: 20}, - {sha: "e37995eec33941545694d8c9d8b784f081c4c785", date: "2019-08-01 11:18:23 +0000", description: "remove Slack since we no longer use Slack", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 4, deletions_count: 4}, - {sha: "0ae355f76c66147032b6ef5e4bdab141bfd2eeef", date: "2019-08-01 11:17:20 +0000", description: "update documentation to reflect new help resources", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 37, insertions_count: 208, deletions_count: 82}, - {sha: "57bc070a11ef3141ee5829d043f3720e359da726", date: "2019-08-01 11:07:09 +0000", description: "Retry requests on timeouts", pr_number: 691, scopes: ["networking"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 5, insertions_count: 146, deletions_count: 20}, - {sha: "9675b5197d60d3ff6a3ddd81cd9b4ec08bc92576", date: "2019-08-01 11:06:41 +0000", description: "Default `doc_type` to `_doc` and make it op…", pr_number: 695, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 6, deletions_count: 4}, - {sha: "9ec1c644e82b029b943a1017f8176e77b1e494bd", date: "2019-07-31 16:12:16 +0000", description: "remove forum references, we recommend filing a help issue or joining our Slack channel instead", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 34, insertions_count: 33, deletions_count: 97}, - {sha: "05032c6803bf1d45eaf2372a58d46fadaa9646bb", date: "2019-07-26 12:01:25 +0000", description: "Add retry ability to cloudwatch", pr_number: 663, scopes: ["aws_cloudwatch_logs sink"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 24, insertions_count: 605, deletions_count: 355}, - {sha: "df6816f2432039236ba14361262012380b8f5c82", date: "2019-07-26 16:53:55 +0000", description: "replace some references to \"sink\" with `component.type`", pr_number: 685, scopes: [], type: "docs", breaking_change: false, author: "Denis Andrejew", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "89a32737baa90f36de69da19fe95ba6734283368", date: "2019-07-25 15:53:32 +0000", description: "Update nom from 0.5.0-beta2 to 0.5", pr_number: 679, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 21, deletions_count: 7}, - {sha: "6670fc00c576788fecb9e7f8321f76f2dc08eb6f", date: "2019-07-25 16:41:31 +0000", description: "minor fixes in getting-started page", pr_number: 682, scopes: [], type: "docs", breaking_change: false, author: "Cédric Da Fonseca", files_count: 1, insertions_count: 4, deletions_count: 4}, - {sha: "1fbd6a4eead61518d8678ca39b6baadbbec30314", date: "2019-07-24 09:56:17 +0000", description: "use templates for metric names in log_to_metric", pr_number: 668, scopes: ["log_to_metric transform"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 1, insertions_count: 141, deletions_count: 58}, - {sha: "f1dfaf90512f3ea8a8a0bee743bfb297b08657df", date: "2019-07-23 13:24:31 +0000", description: "add coercer transform", pr_number: 666, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 17, insertions_count: 689, deletions_count: 20}, - {sha: "2ecb9897b3d469a0eb0c180db9ba371cde87443b", date: "2019-07-22 13:49:30 +0000", description: "Use multi-stage builds for vector-slim Docker image", pr_number: 672, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 11, deletions_count: 2}, - {sha: "bd22713c4b544b82b56b079bd2ef7411af951226", date: "2019-07-22 13:44:46 +0000", description: "fix broken build process", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 4, deletions_count: 4}, - {sha: "01458f4e5764e6d06ca04b3a569eeb767ac58eee", date: "2019-07-22 20:21:26 +0000", description: "fix spelling in READMEs", pr_number: 671, scopes: [], type: "docs", breaking_change: false, author: "Brian Kabiro", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "6c47a6716206d066191d4e67d810df0f7f761c96", date: "2019-07-22 13:13:53 +0000", description: "build x86_64-unknown-linux-musl with all features", pr_number: 669, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 54, deletions_count: 27}, - {sha: "0a4ef9774092eef2d9d48ec7167b73d46caf464a", date: "2019-07-21 10:05:28 +0000", description: "update batch_timeuot unit to seconds across all docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 9, insertions_count: 28, deletions_count: 24}, - {sha: "a69668faab8c759e40377e696e5750f6bc58f244", date: "2019-07-21 09:16:01 +0000", description: "add support for armv7 releases, both gnueabihf and musleabihf", pr_number: 662, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 6, insertions_count: 84, deletions_count: 4}, - {sha: "d6f3a1a4c2f8da71b950725f7bb164f526c12386", date: "2019-07-19 11:10:53 +0000", description: "switch batch_timeout from bytes to seconds", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "6812ca83f8de0a5c2bd6d131f3c7026b2a223d57", date: "2019-07-19 18:10:09 +0000", description: "Use correct units in example batch timeouts", pr_number: 664, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 12, insertions_count: 12, deletions_count: 12}, - {sha: "b4575e662c5d06eb52d43678c6031d095bfa06de", date: "2019-07-18 14:23:44 +0000", description: "reusable templating system for event values", pr_number: 656, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 162, deletions_count: 64}, - {sha: "075e1cca2744e3fb868e852236345c484ae4973e", date: "2019-07-18 14:34:36 +0000", description: "add timberio/vector-alpine docker image", pr_number: 659, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 8, insertions_count: 86, deletions_count: 5}, - {sha: "e3e31d04d87513f21083a094d90b79b358ed4cd8", date: "2019-07-18 10:18:54 +0000", description: "remove labels support from log_to_metric", pr_number: 657, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexey Suslov", files_count: 1, insertions_count: 20, deletions_count: 36}, - {sha: "32d2f6ba6d47f5c7f4c031dc25a7026edf4f869d", date: "2019-07-18 09:52:43 +0000", description: "push Histogram and Set metrics from logs", pr_number: 650, scopes: ["log_to_metric transform"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 1, insertions_count: 155, deletions_count: 68}, - {sha: "75f05f4626323cb47cdfbf6caf6ca0030f500f15", date: "2019-07-17 17:03:11 +0000", description: "retry HttpDispatch errors for s3 and kinesis", pr_number: 651, scopes: ["aws_s3 sink"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 2, deletions_count: 0}, - {sha: "c7654ce407fc525a22f0fa4b5a5fa949bb4247de", date: "2019-07-17 16:26:30 +0000", description: "rename call when releasing to latest and edge channels in s3", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "5099d14e6f809235e87f0ee95737ea7e67a5a8b6", date: "2019-07-17 16:03:29 +0000", description: "add support for x86_64-unknown-linux-musl releases", pr_number: 654, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 10, insertions_count: 51, deletions_count: 41}, - {sha: "4e1e9e21b71a9ccdc38a38d51b9727f332721f05", date: "2019-07-17 15:18:07 +0000", description: "Update smallvec to `v0.6.10`", pr_number: 652, scopes: ["tech debt"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 6, deletions_count: 6}, - {sha: "1f2319f9b49260951824bce7c3d75548347f1d2a", date: "2019-07-17 15:04:24 +0000", description: "Add `jemallocator` feature flag", pr_number: 653, scopes: ["operations"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 3, deletions_count: 2}, - {sha: "1ea7e30d460f7f00be6d138f0d875ed8efbb0904", date: "2019-07-17 10:36:59 +0000", description: "add test around min file size for fingerprinting", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 41, deletions_count: 1}, - {sha: "fc93a801ba5ae8ae90132727f3ad194691b6bfb0", date: "2019-07-16 21:49:20 +0000", description: "accept both logs and metrics", pr_number: 631, scopes: ["console sink"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 31, insertions_count: 600, deletions_count: 318}, - {sha: "33489984d28285740d26dcd2bc3183dfafb9711f", date: "2019-07-16 22:02:24 +0000", description: "Refactor metrics sampling, rename Timer to Histogram", pr_number: 648, scopes: ["metric data model"], type: "chore", breaking_change: false, author: "Alexey Suslov", files_count: 6, insertions_count: 96, deletions_count: 81}, - {sha: "fddfbe83ee89a890662872a6a614c8213da8d37b", date: "2019-07-16 13:01:23 +0000", description: "add type coercion", pr_number: 632, scopes: ["grok_parser transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 12, insertions_count: 322, deletions_count: 78}, - {sha: "a308ed2744bddf9f2b4b2607fec40800c622bd7b", date: "2019-07-15 22:59:20 +0000", description: "test thread usage to ensure tests pass on all machines", pr_number: 646, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 4, insertions_count: 40, deletions_count: 36}, - {sha: "59592d3a1e62169ffe934c7773c4ebc3d6392630", date: "2019-07-15 17:54:27 +0000", description: "add convetional commits to contributing", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 12, deletions_count: 1}, - {sha: "2a07d727b2acc57dd72746356dd5ad0284b23208", date: "2019-07-15 17:51:36 +0000", description: "add AWS env vars", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 9, deletions_count: 7}, - {sha: "92dfdca8f99986961d4eb66ce480770700ee1994", date: "2019-07-15 17:47:38 +0000", description: "add exit codes", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 17, deletions_count: 0}, - {sha: "0cd9c302dfbd37f320e56ac385801af6bdf18404", date: "2019-07-15 17:40:12 +0000", description: "Add validating page for administration docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 49, deletions_count: 2}, - {sha: "81b9e4f06a8fe6b0ce5f3592921d6bebea7aa85f", date: "2019-07-15 16:46:33 +0000", description: "Add docs about file checkpointing", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 31, deletions_count: 8}, - {sha: "b3d1a767b46302dc8d698812b960afce23c511b2", date: "2019-07-15 16:33:18 +0000", description: "Add reference to glob_minimum_cooldown option", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 5, deletions_count: 3}, - {sha: "b420159287f19a2aa4405da6f90fcea733d9de28", date: "2019-07-15 16:23:48 +0000", description: "Fix Github labels query param", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 14, insertions_count: 17, deletions_count: 13}, - {sha: "7fa2515374f55848e128deb50e153488c9fe330f", date: "2019-07-15 16:18:43 +0000", description: "Fix sampler rate example", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 5, deletions_count: 5}, - {sha: "de2f4b3a9f845f57b6e5d40342e8f4a64639f91d", date: "2019-07-15 16:17:41 +0000", description: "Add component context section", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 22, insertions_count: 135, deletions_count: 85}, - {sha: "dd48943579fe07525aa2f93a7ecf357617d54194", date: "2019-07-15 15:43:12 +0000", description: "Add fingerprint options for file source to docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 95, deletions_count: 31}, - {sha: "f8aeff54adf9aa46175a98b5211705393d0c4c20", date: "2019-07-15 15:34:50 +0000", description: "Add sampler transform to summary.md", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "fe54f1e9d28ea18c94063170819c2fced8397a26", date: "2019-07-15 15:33:43 +0000", description: "Add glob_minimum_cooldown option to file source docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 29, deletions_count: 0}, - {sha: "1a4229093e15452f2c378a81e448ce85167709f3", date: "2019-07-15 15:04:19 +0000", description: "Use one consistent env var syntax", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 31, insertions_count: 67, deletions_count: 67}, - {sha: "0d0c9d62f2f737359331cc2a52d988850552f0fc", date: "2019-07-15 20:41:33 +0000", description: "Improve configuration validation and make it more strict", pr_number: 552, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Kirill Taran", files_count: 17, insertions_count: 236, deletions_count: 156}, - {sha: "524355cde9009936fe5eeae0a85315bd3405dc94", date: "2019-07-15 14:37:21 +0000", description: "Add semtantic.yml to only check PR titles", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "1176821bd86431ef8cf0b9db763a85828c3116c7", date: "2019-07-15 11:53:41 +0000", description: "Use the proper type in the blackhole example", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "20f678c0d96ce9ad282abc34d30a23ce13f63a97", date: "2019-07-14 17:56:04 +0000", description: "Add doc sections for all sink egress methods", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 19, insertions_count: 259, deletions_count: 215}, - {sha: "f1e0938c5ef508dda26005e567d6aaab6eabe0ab", date: "2019-07-14 20:42:28 +0000", description: "Fix argument type", pr_number: 639, scopes: [], type: "chore", breaking_change: false, author: "Ayhan", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "0db4e693ec618ea21f5273c85c0810f15973353d", date: "2019-07-13 08:51:14 +0000", description: "Batch diagram language", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "472bd3574089994d464e1b91746bfc35a382e934", date: "2019-07-13 08:49:50 +0000", description: "Fix authentication formatting", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 12, deletions_count: 24}, - {sha: "5746533135b33aae4b35aee5feb169ade0284810", date: "2019-07-13 08:43:59 +0000", description: "Fix config example headers for transforms and sources", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 34, insertions_count: 188, deletions_count: 108}, - {sha: "4b76ae8e2dba91dd0943aa7947325c8ed2b7cdf4", date: "2019-07-13 08:30:34 +0000", description: "Add relevance text to options table", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 19, insertions_count: 99, deletions_count: 134}, - {sha: "150994527180a69eb848fffa9a810d7fe376d2d1", date: "2019-07-13 08:23:08 +0000", description: "Add relevant when... tag for options that depend on other options in docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 17, insertions_count: 40, deletions_count: 25}, - {sha: "fcbf1aef0eee29bc3a36f2cce7e5ab2387a0acb7", date: "2019-07-13 07:42:55 +0000", description: "Fix environment variable language in docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 28, insertions_count: 95, deletions_count: 92}, - {sha: "419b2f0f73c89d81eb636cb8af43a52489fca3cb", date: "2019-07-12 16:51:55 +0000", description: "Update grok_parser language", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 16, deletions_count: 18}, - {sha: "94d6838e901d745ada07cc62649dbbc3cef52bcb", date: "2019-07-12 13:12:16 +0000", description: "Add examples to the add_fields docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 31, deletions_count: 22}, - {sha: "c4976fd7d54d23cff1595d1de183ce04ba81153a", date: "2019-07-12 10:34:05 +0000", description: "Fix section references for fields that include Regex special characters", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 7, insertions_count: 8, deletions_count: 7}, - {sha: "c98f455cfc7dda43b2f09d5804134b3832ae3153", date: "2019-07-12 09:44:16 +0000", description: "Link to log data model in add fields docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 5, deletions_count: 2}, - {sha: "a95201a3c1fe73f7d250f313fe786458bc9aa880", date: "2019-07-12 09:42:16 +0000", description: "Add default envirnoment variables section", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 33, insertions_count: 317, deletions_count: 73}, - {sha: "934011d78f8fc92bfff922a61bb0bf0269ad0ac7", date: "2019-07-12 12:09:33 +0000", description: "Fix cloudwatch test by dropping sink", pr_number: 626, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 6, deletions_count: 2}, - {sha: "0fb311fbce5d4a304d82e50e186fd03636bf1c44", date: "2019-07-10 08:15:13 +0000", description: "Fix add_fields transform docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 64, deletions_count: 136}, - {sha: "0820c1087f9c524d55a96f726a56afd09c2f0069", date: "2019-07-12 10:08:40 +0000", description: "Add File checkpoint feature.", pr_number: 609, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "apjones-proton", files_count: 6, insertions_count: 539, deletions_count: 325}, - {sha: "4a88262f95ace846b60d4ebe2857d1c1d3170bbe", date: "2019-07-11 17:24:12 +0000", description: "Back out change to dash handling", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 3, deletions_count: 7}, - {sha: "d8a8e961a35d2eb7dadf183a69f214a4637a47b0", date: "2019-07-11 17:36:24 +0000", description: "Add cloudwatch partitioning and refactor partition buffer", pr_number: 519, scopes: ["aws_cloudwatch_logs sink"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 7, insertions_count: 656, deletions_count: 211}, - {sha: "e93621195a390383ae5fec131f2e01874ea842d8", date: "2019-07-11 17:32:52 +0000", description: "Add `--color` option and tty check for ansi colors", pr_number: 623, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 5, insertions_count: 64, deletions_count: 37}, - {sha: "009803467f4513827abbe4a28d8170a5593ea2c5", date: "2019-07-10 19:50:42 +0000", description: "Log when regex does not match", pr_number: 618, scopes: ["regex_parser transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 13, deletions_count: 1}, - {sha: "96fadd8decbae32b6ce55063566ba683e27cdc96", date: "2019-07-10 18:03:27 +0000", description: "File tests timeout instead of hang if channel is stuck open.", pr_number: 612, scopes: [], type: "chore", breaking_change: false, author: "apjones-proton", files_count: 1, insertions_count: 63, deletions_count: 25}, - {sha: "80347525540296db8e9a06140e9359093d9144a6", date: "2019-07-10 09:01:17 +0000", description: "Debian 10 verification step", pr_number: 615, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 6, insertions_count: 30, deletions_count: 4}, - {sha: "734aa228d859357c671c3e61732fdd49b1d9295b", date: "2019-07-10 07:47:27 +0000", description: "Fix debian-slim install line in docs", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "6eaa2912a8f2440fc968c87e0f6287da0f752291", date: "2019-07-09 22:11:45 +0000", description: "Dont use HTML characters in default value for docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 11, insertions_count: 30, deletions_count: 30}, - {sha: "2d1c24a8ced93db9496248a52271f5a0d0f6b534", date: "2019-07-09 22:09:43 +0000", description: "Restore docker installation instructions", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 84, deletions_count: 2}, - {sha: "82274cca2047432ecc378f8343703dc5d96ab801", date: "2019-07-09 13:54:16 +0000", description: "Add section references to each option within the docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 56, insertions_count: 453, deletions_count: 2658}, - {sha: "099f062c35c5888a79422d4ee1abca1e200d6a4b", date: "2019-07-09 01:16:54 +0000", description: "Fix lock file", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 9, deletions_count: 18}, - {sha: "27fce01ed595969e716bac9c0f688b5813e81e4d", date: "2019-07-08 17:18:26 +0000", description: "Restore \"send your first event\" guide", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 96, deletions_count: 4}, - {sha: "b44cc232bc9dd9cee1acac9726b18a02fff0ab7d", date: "2019-07-08 17:00:46 +0000", description: "Fix docs/README.md", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 20, deletions_count: 248}, - {sha: "67a0031a34ba9e94bb772c9fcc0c7d9e2f052507", date: "2019-07-08 16:50:21 +0000", description: "Fix log_to_metrics examples", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 0}, - {sha: "7f54fcd82f45adcf2b5fa29cc1e68b7b5b8fd292", date: "2019-07-08 16:45:45 +0000", description: "Ensure \"How It Works\" sections are alphabetically sorted", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 33, insertions_count: 247, deletions_count: 114}, - {sha: "bd54765b1d394bb072b42a2239673dc263f05ddc", date: "2019-07-08 16:41:36 +0000", description: "Ensure docs links are relative", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 36, insertions_count: 618, deletions_count: 389}, - {sha: "7c5743a9cc2913b337bfbe96f8b0767d49d8ade2", date: "2019-07-08 12:35:12 +0000", description: "Add log_to_metric documentation", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 54, insertions_count: 2030, deletions_count: 1472}, - {sha: "8646a0104998dae7e341fe0a389ebdaaa181e6f1", date: "2019-07-08 17:13:49 +0000", description: "Add filename extension option and fix trailing slash", pr_number: 596, scopes: ["aws_s3 sink"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 70, deletions_count: 18}, - {sha: "368b73a22db806b750dff44ed3e7aaac1859d467", date: "2019-07-08 16:47:14 +0000", description: "Rename tracing crates", pr_number: 608, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 12, insertions_count: 94, deletions_count: 75}, - {sha: "5021837ba934214b6f7ffa3720c7553c1b17179f", date: "2019-07-08 14:37:49 +0000", description: "Fix README", pr_number: 610, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 81, deletions_count: 0}, - {sha: "6a9707d3c419aaa88d3f11a46acbf0e21c0c7bf6", date: "2019-07-08 13:12:32 +0000", description: "Initial rate limit subscriber", pr_number: 494, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 6, insertions_count: 378, deletions_count: 0}, - {sha: "ac1f714f0ab8bcd2449cf763da66341f141a3b8e", date: "2019-07-08 18:41:38 +0000", description: "Convert \"-\" into \"nil\"", pr_number: 580, scopes: ["tokenizer transform"], type: "enhancement", breaking_change: false, author: "Andy Georges", files_count: 2, insertions_count: 24, deletions_count: 1}, - {sha: "971640c239451aea5d217e72d84a0221dc4b7117", date: "2019-07-07 21:22:29 +0000", description: "Cleanup documentation headers", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 37, insertions_count: 726, deletions_count: 309}, - {sha: "6975b45c05db10550e7432a138dfe9144fd6f4b2", date: "2019-07-07 22:39:47 +0000", description: "Move dynamically generated docs to ERB templates", pr_number: 601, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 149, insertions_count: 9434, deletions_count: 7109}, - {sha: "1d98e789c8db3cee3f45303ff73b102290ddbb97", date: "2019-07-07 20:46:36 +0000", description: "Add Ruby and Bundler 2 to development requirements", pr_number: 600, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 4, deletions_count: 0}, - {sha: "7e3cb94bacdbf26a7c0487f57696a46e420d8d2f", date: "2019-07-04 18:51:05 +0000", description: "Fix gauge misspelling", pr_number: 594, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 4, insertions_count: 9, deletions_count: 9}, - {sha: "25ece4711cf918f321fc00e7d91efc5f582a69ef", date: "2019-07-04 18:47:15 +0000", description: "Fix include exclude", pr_number: 593, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 6, insertions_count: 20, deletions_count: 20}, - {sha: "8fac6fe083e4fdfee270cbf1be18ed7cd4eee9e9", date: "2019-07-04 18:37:54 +0000", description: "Add env var example to add_fields documentation", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 18, deletions_count: 6}, - {sha: "894c9df97e881483ee48b4319813c9132344e46c", date: "2019-07-04 17:15:45 +0000", description: "Fix documentation array syntax", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 45, insertions_count: 136, deletions_count: 136}, - {sha: "e05314708498fa5d97054ff15510478f8aa66893", date: "2019-07-04 17:14:01 +0000", description: "Resolve documentation typos and formatting issues", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 61, insertions_count: 875, deletions_count: 290}, - {sha: "b5c1cd7bad03ec37166d924b29dea17acc22b85a", date: "2019-07-04 16:47:19 +0000", description: "Add check for pending documentation changes", pr_number: 592, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 83, insertions_count: 750, deletions_count: 1132}, - {sha: "fbbf5d1d6a8dbd03208faa4fc5b3af577a97ac91", date: "2019-07-04 12:47:37 +0000", description: "Fix configuration documentation headings", pr_number: 591, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 27, deletions_count: 27}, - {sha: "e8682cc307ce3a74b719e809a388a20860aee658", date: "2019-07-04 12:42:49 +0000", description: "Cleanup documentation conventions", pr_number: 590, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 132, deletions_count: 321}, - {sha: "5f3a00216fecf17f44f3a5a6be032fe9e362bb3d", date: "2019-07-04 11:05:10 +0000", description: "Reduce test threads from 8 to 4", pr_number: 587, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "92277fbfae7a1873a35ea75a725e9b71e963a0d5", date: "2019-07-03 22:48:31 +0000", description: "Rename tokio-trace to tracing", pr_number: 578, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 30, insertions_count: 197, deletions_count: 194}, - {sha: "4074d8430a183d3eaccca311044c3ad733785f57", date: "2019-07-03 18:13:59 +0000", description: "Add make signoff command in pull request template", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "35afcc8ee85d2d826bf4feb348bb1b5c5e15b781", date: "2019-07-03 15:43:04 +0000", description: "Update Makefile and DEVELOPING.md", pr_number: 570, scopes: [], type: "docs", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 82, deletions_count: 65}, - {sha: "b57af065e88ff915ef9b8450114394063615a5f5", date: "2019-07-03 15:28:24 +0000", description: "Use MiB not mib in docs", pr_number: 577, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 10, deletions_count: 10}, - {sha: "4fce85e98dac0d15edddc25adebe0db13b4c072f", date: "2019-07-03 15:06:06 +0000", description: "Link to License", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 5, deletions_count: 5}, - {sha: "8de9ad3a22f0c4789a760b4f0e57a84163edddec", date: "2019-07-03 14:54:46 +0000", description: "Add DCO and update CONTRIBUTING.md", pr_number: 571, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 4, insertions_count: 117, deletions_count: 39}, - {sha: "b6316953a480a5ee161c6a61b33b4d33de23434d", date: "2019-07-03 09:31:16 +0000", description: "Fix tests", pr_number: null, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexey Suslov", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "16da8e55e7408473a15adf045de6bf9ebf6517af", date: "2019-07-03 09:22:28 +0000", description: "Use floats for metrics values", pr_number: 553, scopes: ["metric data model"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 4, insertions_count: 19, deletions_count: 19}, - {sha: "d8eadb08f469e7e411138ed9ff9e318bd4f9954c", date: "2019-07-02 07:04:39 +0000", description: "output multiple metrics from a single log", pr_number: null, scopes: ["log_to_metric transform"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 57, deletions_count: 7}, - {sha: "fe7f2b503443199a65a79dad129ed89ace3e287a", date: "2019-06-27 17:07:11 +0000", description: "adjust transform trait for multiple output events", pr_number: null, scopes: ["topology"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 14, deletions_count: 5}, - {sha: "5b58adb048b5740e5420255141f33a58e280852f", date: "2019-07-02 16:40:04 +0000", description: "Remove makefile from list of languages", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "7c4b6488841b86c64ce41aadf7c1552a87b27d0a", date: "2019-07-02 15:33:19 +0000", description: "Use printf in the install.sh script", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 15, deletions_count: 15}, - {sha: "7538d6eaae49666e4fc320a0f44425a69f789c38", date: "2019-07-02 12:07:53 +0000", description: "Bump check-stable box size", pr_number: 555, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "a703de875fa7181c78d080509bbfed427a63fd11", date: "2019-07-02 08:46:47 +0000", description: "make sure Cargo.lock gets updated on version bump", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 8, deletions_count: 6}, - {sha: "15d6b26409761aa5eb15c70082fc02f83d1e949c", date: "2019-07-02 02:04:50 +0000", description: "Ensure new bumped version uses -dev", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "e53c86c0895ef0dfa48dbe8a4c572ea1c9d87a84", date: "2019-07-02 02:03:58 +0000", description: "Start v0.4.0-dev", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 14, deletions_count: 14}, - {sha: "27f79e2f8d5d99685bae8549d697355b77a0ad12", date: "2019-09-13 00:44:30 +0000", description: "add all parsed syslog fields to event", pr_number: 836, scopes: ["syslog source"], type: "feat", breaking_change: false, author: "Kirill Taran", files_count: 4, insertions_count: 322, deletions_count: 123}, - {sha: "b9a7812e2e4cd7c7a7c87d77a84a3488b82b8f64", date: "2019-09-13 09:50:18 +0000", description: "log a single warning when ignoring small files", pr_number: 863, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 33, deletions_count: 9}, - {sha: "65c189a6200f670c7faf1f6137e1e6ec77193bc5", date: "2019-09-13 09:54:05 +0000", description: "add logging when we can't tail file", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 11, deletions_count: 8}, - {sha: "95f7d345687737ba61ded2202196f4a40e3f8b85", date: "2019-09-13 15:05:10 +0000", description: "Support AWS authentication", pr_number: 864, scopes: ["elasticsearch sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 8, insertions_count: 270, deletions_count: 43}, - {sha: "7cb7cf3efc5f64d926458fcacc8228ee543e203d", date: "2019-09-14 10:47:10 +0000", description: "add check_urls make argument", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 8, insertions_count: 50, deletions_count: 50}, - {sha: "a4f963f3f7362c34335880659ea6d4a8c49d412f", date: "2019-09-14 10:50:03 +0000", description: "create component md file if it does not yet exist, closes #849", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 12, deletions_count: 6}, - {sha: "35247a654181d1b3ace0309508707c6300b03561", date: "2019-09-16 17:08:58 +0000", description: "add split transform", pr_number: 850, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Matthias Endler", files_count: 17, insertions_count: 964, deletions_count: 7}, - {sha: "662d74cce6fe8dbbbe4ff00e4cf61ef2d484676a", date: "2019-09-16 11:12:47 +0000", description: "ignore .tmp files", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "aa74f1ec31764278a4dc53e9abdc53f52a742a89", date: "2019-09-16 10:51:18 +0000", description: "Error types", pr_number: 811, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 51, insertions_count: 627, deletions_count: 302}, - {sha: "1a90ce7182388de44bc5079cc1168842b5490168", date: "2019-09-16 13:52:51 +0000", description: "Move .metadata.toml to /.meta/*", pr_number: 872, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 53, insertions_count: 1873, deletions_count: 2035}, - {sha: "dadb904fda1681eec6d9063406fa2e43cfc7ba64", date: "2019-09-16 14:49:13 +0000", description: "switch to more modern kafka image", pr_number: 875, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 10, deletions_count: 4}, - {sha: "503bbc0494eca9b2d62267b4a29adc3c2ce27ff4", date: "2019-09-16 22:18:33 +0000", description: "Fix some typos in file-source crate", pr_number: 871, scopes: [], type: "chore", breaking_change: false, author: "Matthias Endler", files_count: 1, insertions_count: 6, deletions_count: 6}, - {sha: "a97f2984778c4ffdf0412b16e27e43e9a32b2884", date: "2019-09-17 11:08:09 +0000", description: "Fix String error return in elasticsearch config parser", pr_number: 883, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 23, deletions_count: 11}, - {sha: "f18796a35b9d61d3747386a0290c5ae50bc57310", date: "2019-09-17 18:06:34 +0000", description: "Simpler, less noisy component options", pr_number: 888, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 88, insertions_count: 199, deletions_count: 2042}, - {sha: "ec73082da655d5e17c7023fef3b5c1893a4d7bf4", date: "2019-09-18 10:24:07 +0000", description: "Introduce crate-level `Result` type", pr_number: 884, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 41, insertions_count: 88, deletions_count: 94}, - {sha: "269c6054f7d74c11cf5a933f79f8966befa2c579", date: "2019-09-19 12:15:26 +0000", description: "add commit types for semantic prs", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 8, deletions_count: 0}, - {sha: "f9bf4bc05a1afd6d3861c96ba107e02120d447fa", date: "2019-09-20 13:32:29 +0000", description: "Add relese-meta make target for preparing release metadata", pr_number: 898, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 8, insertions_count: 355, deletions_count: 7}, - {sha: "6caa0f9fcc72c9becf2588b0839e2849c1d9b28e", date: "2019-09-20 14:45:09 +0000", description: "automatically create missing component templates", pr_number: 899, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 81, insertions_count: 342, deletions_count: 297}, - {sha: "2e5c0e0998d14f4e95397c92ffd92f85b54ff682", date: "2019-09-20 16:35:32 +0000", description: "update checker docker image too include activesupport", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 13, deletions_count: 10}, - {sha: "8c48932bb9cfd7267bf72bf260684d5fa93e8150", date: "2019-09-21 18:42:48 +0000", description: "Simplify link system and resolution", pr_number: 901, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 138, insertions_count: 2700, deletions_count: 2694}, - {sha: "c38f85c570194a5eb3e689c73550305e02a5bf1d", date: "2019-09-22 12:24:11 +0000", description: "Generate CHANGELOG.md", pr_number: 903, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 20, insertions_count: 699, deletions_count: 82}, - {sha: "2776d7556176299e9090f319b6eca4bfcaa03b79", date: "2019-09-22 12:29:08 +0000", description: "simplify readme installation links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 8, deletions_count: 27}, - {sha: "1dc0f93b0771cda8b075f0501151ab7d62247e29", date: "2019-09-22 12:39:38 +0000", description: "fix archive name for nightly builds", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 5, deletions_count: 1}, - {sha: "c2792e1c543e9a67782b5dd43d3c9ec6f0ac82db", date: "2019-09-22 15:31:27 +0000", description: "dont upload version triple archives to s3", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 1, deletions_count: 7}, - {sha: "dc2582b31eb1a7722c50d6eb7a6799ae04ec7f66", date: "2019-09-22 15:44:19 +0000", description: "use consistent archive names across all release channels", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 33, deletions_count: 27}, - {sha: "2921e9a88e07e5a84294fdd36300c0cbf8bb294d", date: "2019-09-22 15:53:46 +0000", description: "cleanup unused variables in release-s3.sh script", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "a83a75003b41a881f87b7f2a053a9c43e040e1bc", date: "2019-09-23 16:50:14 +0000", description: "rename config tag", pr_number: 902, scopes: ["add_fields transform"], type: "fix", breaking_change: false, author: "Alexey Suslov", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "c830b956409b5f64d83c2ddd5056a5deaec1e609", date: "2019-09-23 18:39:02 +0000", description: "default config path \"/etc/vector/vector.toml\"", pr_number: 900, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 7, deletions_count: 1}, - {sha: "2f187234ee024398997a6c4defac0ad38a234ac3", date: "2019-09-23 15:39:08 +0000", description: "Add release-commit make target", pr_number: 911, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 31, insertions_count: 387, deletions_count: 97}, - {sha: "f942dfaca06a3de66ca593d99b5f04ccd4638e95", date: "2019-09-23 15:43:15 +0000", description: "Remove $VERSION from package-deb", pr_number: 910, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "8b2a11ee9ba0c3204deefa3d0435120873808089", date: "2019-09-23 23:44:23 +0000", description: "Use OpenSSL instead of LibreSSL for x86_64-unknown-linux-musl", pr_number: 904, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 6, deletions_count: 34}, - {sha: "d35ddfff2edbc4f776a75cc420f834a6f4d2aec4", date: "2019-09-23 17:04:49 +0000", description: "Remove ARMv7 support -- for now", pr_number: 913, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 7, insertions_count: 0, deletions_count: 274}, - {sha: "88769c9049da01560866a17f806403df46ca43fe", date: "2019-09-23 21:15:14 +0000", description: "Add libssl-dev to musl builder", pr_number: 917, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 63, deletions_count: 63}, - {sha: "b0089e2509a5dc05155f4a11ed99439055b43eea", date: "2019-09-23 22:35:16 +0000", description: "Remove $VERSION when building archives", pr_number: 918, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 2, deletions_count: 8}, - {sha: "027836100a44874fc1989296f49777203f0a722a", date: "2019-09-24 16:21:20 +0000", description: "Use vendored OpenSSL for x86_64-unknown-linux-musl CI build", pr_number: 919, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "4e256e2d3e9bd6aa91484f093b5b7fae894b9bf5", date: "2019-09-24 09:59:45 +0000", description: "add types to semantic.yml", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 20, deletions_count: 6}, - {sha: "230f3250cb1e109446ef017f82794466e3e070c2", date: "2019-09-24 10:05:23 +0000", description: "verify builds by default", pr_number: 914, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 32, deletions_count: 4}, - {sha: "f6b0739ebcabce1c768a2e3a97f2e6ee30119e4c", date: "2019-09-24 10:11:23 +0000", description: "use enhancement not improvement", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 11, deletions_count: 3}, - {sha: "3450767465c7a58bb46631a8b922bb33d0b585c2", date: "2019-09-24 11:03:56 +0000", description: "Prepare v0.4.0 release", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 671, deletions_count: 2}, - {sha: "c512e286e6a864911683bde5cdec4744f154966d", date: "2019-09-24 10:39:24 +0000", description: "fix s3 compression and endpoint options", pr_number: 921, scopes: [], type: "docs", breaking_change: false, author: "Luke Steensen", files_count: 7, insertions_count: 73, deletions_count: 69}, - {sha: "ced248773ab9a04d862a22dd4b80dfde5c9e8de3", date: "2019-09-24 12:21:29 +0000", description: "update release-github to include release notes", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 106, deletions_count: 0}, - {sha: "3ea589a0d8ddc58d9b4caa167b0ef84fab99c84e", date: "2019-09-24 12:24:53 +0000", description: "use common setup.rb script for boiler plate setup", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 7, deletions_count: 116}, - ] -} diff --git a/docs/reference/releases/0.5.0.cue b/docs/reference/releases/0.5.0.cue deleted file mode 100644 index ba542af28c673..0000000000000 --- a/docs/reference/releases/0.5.0.cue +++ /dev/null @@ -1,75 +0,0 @@ -package metadata - -releases: "0.5.0": { - date: "2019-10-10" - codename: "Platform Mingling" - - whats_next: [ - ] - - commits: [ - {sha: "89c303748f100c881e6e1cb921e3d64870d89ca3", date: "2019-09-24 12:28:01 +0000", description: "Update releaser Dockerfile to include Ruby and the necessary gems", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 10, deletions_count: 2}, - {sha: "5f251260ede2331a19e20d1319e9484bebd6f890", date: "2019-09-24 14:58:36 +0000", description: "Add git to musl builder", pr_number: 923, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "eab5a1a6c20ea7ec30b2e7f17c622d61e5f74613", date: "2019-09-24 16:28:40 +0000", description: "Fix github release notes", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 9, insertions_count: 51, deletions_count: 21}, - {sha: "b88e0563acf439f1503c0380f2612fdf398ff134", date: "2019-09-24 16:46:51 +0000", description: "Update release download URLs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 22, deletions_count: 12}, - {sha: "b2e4ccc78d8e8df3507abf3a3e2a9c44b3a37e7e", date: "2019-09-24 15:03:33 +0000", description: "Show information about why a retry needs to happen", pr_number: 835, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 36, deletions_count: 23}, - {sha: "b25a22e71417df6bb3889f6ff1208cbf6f73232f", date: "2019-09-24 17:12:30 +0000", description: "Make encoding non-optional", pr_number: 894, scopes: ["config"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 23, insertions_count: 542, deletions_count: 707}, - {sha: "222fe08358566f677e342e9553ce5421597cdfaa", date: "2019-09-24 17:58:04 +0000", description: "add version to readme", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 10, insertions_count: 146, deletions_count: 82}, - {sha: "7c10d204cd0cf821a38f3ae6f903f346d94a1d87", date: "2019-09-24 18:08:03 +0000", description: "Update installation readme link", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 4, deletions_count: 3}, - {sha: "f8ba06b75daf3d7d3be9c47d9762b8ec8dae7c55", date: "2019-09-24 20:39:03 +0000", description: "Recommend a new version based on pending commits", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 81, deletions_count: 46}, - {sha: "597f989dc0900c08b099f62107ce53a5508e9933", date: "2019-09-24 23:02:18 +0000", description: "Use proper category in changelog for new components", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 19, insertions_count: 461, deletions_count: 25}, - {sha: "55582e52e1e8856b75702ffce6b56218ac82ddaf", date: "2019-09-25 09:57:05 +0000", description: "Initial `statsd` implementation", pr_number: 821, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Alexey Suslov", files_count: 16, insertions_count: 776, deletions_count: 1}, - {sha: "eff3bf23a9dbdbf1c01b2744ad0a489542533841", date: "2019-09-25 09:54:36 +0000", description: "Fix incorrect description of kafka option", pr_number: 926, scopes: [], type: "docs", breaking_change: false, author: "Luke Steensen", files_count: 4, insertions_count: 14, deletions_count: 18}, - {sha: "dd74e64f1d00c1032a7a470f40f4b7aea57b1d86", date: "2019-09-26 00:08:25 +0000", description: "Add OpenSSL to x86_64-unknown-linux-musl buil…", pr_number: 927, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 5, insertions_count: 53, deletions_count: 4}, - {sha: "630d841a4dce90df195abfab53722f61b8b192a2", date: "2019-09-25 16:01:03 +0000", description: "Add support for TLS (SSL)", pr_number: 912, scopes: ["kafka sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 14, insertions_count: 409, deletions_count: 10}, - {sha: "43d04fc4b5a9855c936b5c63e470c3b78206b227", date: "2019-09-25 18:34:20 +0000", description: "Use PKCS#12 keys instead of JKS", pr_number: 934, scopes: ["kafka sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 6, insertions_count: 64, deletions_count: 23}, - {sha: "5fa0161e537f33010e8116cb5c6782c721701c29", date: "2019-09-25 20:45:45 +0000", description: "Fix nightly builds link", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "880d6401ac9705760e140dfb2537646078fb3eb0", date: "2019-09-26 08:52:41 +0000", description: "Create SECURITY.md", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 7, deletions_count: 0}, - {sha: "af77005bc7cbf908c271a826e4cd5caee7b45072", date: "2019-09-26 14:53:56 +0000", description: "Fix install script path export", pr_number: 891, scopes: ["operations"], type: "chore", breaking_change: false, author: "Cédric Da Fonseca", files_count: 1, insertions_count: 9, deletions_count: 2}, - {sha: "6353e49126dc5f575194783870ab06f1e9e3354a", date: "2019-09-26 09:02:45 +0000", description: "Simplify changelog TOC", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 15, deletions_count: 50}, - {sha: "ec7e488213fc8e9c04798174a00318aa3d9b84b8", date: "2019-09-26 09:57:05 +0000", description: "Update to rust 1.38.0", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "dda0309ced633cfd0a7b810c19733e02e8f09fbe", date: "2019-09-26 10:15:13 +0000", description: "Fix fmt errors for 1.38.0", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 0, deletions_count: 3}, - {sha: "da8802836f5b9085c776eeb80d12d2c9fa1ab266", date: "2019-09-26 17:30:51 +0000", description: "Improve installation docs", pr_number: 942, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 23, insertions_count: 419, deletions_count: 200}, - {sha: "05395b070b3eb3cf4f32f61423aae99ad26dc773", date: "2019-09-26 17:40:46 +0000", description: "Link to README.md file in SUMMARY.md", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 59, deletions_count: 54}, - {sha: "9f1c2b78847d0f0122ea1f8e6c9e2f93db0053f8", date: "2019-09-26 17:57:02 +0000", description: "Fix broken docs links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 27, insertions_count: 63, deletions_count: 241}, - {sha: "0f8aaecea209105a58693f0360c43d08fd594263", date: "2019-09-26 18:00:13 +0000", description: "Ensure .rpm packages are built in nightly builds", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 21, deletions_count: 5}, - {sha: "daa7ce711f6b3d50a4e1a75eda15ba0d8bd95973", date: "2019-09-26 18:04:34 +0000", description: "fix broken tabs on yum and apt pages", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "87737e23261437d7f1bdb0bba0662cfd3884098e", date: "2019-09-26 18:08:59 +0000", description: "fix download links for deb and rpm packages", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 218, deletions_count: 11}, - {sha: "296411c14eceb799c26ac478aee9f6d302bea515", date: "2019-09-26 18:18:56 +0000", description: "Update SECURITY.md with better info", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 25, deletions_count: 3}, - {sha: "61520b2cfabb8c3345dcf896df620906ceb55d4c", date: "2019-09-26 23:02:02 +0000", description: "Docker images use binaries", pr_number: 940, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 5, insertions_count: 29, deletions_count: 80}, - {sha: "f6e1050d8a7fdd41a844ae9ba496ad1cd2bb10ce", date: "2019-09-27 11:28:24 +0000", description: "Remove setting VERSION for `make generate`", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "089bb5a2a4fbc8fa1522781b0982a9a9ca58e479", date: "2019-09-27 16:07:58 +0000", description: "Add `fix` as a valid PR type", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 0}, - {sha: "4c9917754edd71a4ef53b9778d4540e3736d0abb", date: "2019-09-28 19:08:07 +0000", description: "Clean up debian user creation and unit file", pr_number: 947, scopes: ["operations"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "7653c6bbd61f3859d651d6cab21e43d5612cf6c7", date: "2019-09-30 18:08:46 +0000", description: "Update tokio versions", pr_number: 949, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 70, deletions_count: 34}, - {sha: "07339e111633e783c71484c83f8f0193a9167716", date: "2019-10-01 18:20:10 +0000", description: "Use stable Rust 1.38.0 and update Linux headers for x86_6…", pr_number: 945, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 4, deletions_count: 7}, - {sha: "00818013b6d8a9acfa578ce80a2ef5fa5cf9505d", date: "2019-10-02 00:35:52 +0000", description: "Tarball URL address for the Linux installation script", pr_number: 957, scopes: ["operations"], type: "chore", breaking_change: false, author: "Fernando Schuindt", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "8f185695e084b1be5da753e9fca2c831cace3bac", date: "2019-10-02 11:53:44 +0000", description: "Add support for TLS options", pr_number: 953, scopes: ["elasticsearch sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 14, insertions_count: 575, deletions_count: 213}, - {sha: "2d5736e8f1e57ffe573c07cfcdc77e0c67dc84e9", date: "2019-10-02 13:59:12 +0000", description: "Ensure released s3 files are public-read", pr_number: 959, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 12, deletions_count: 4}, - {sha: "e1608701e298baf2d452689ca9fec9f1f0fb4c02", date: "2019-10-02 17:19:40 +0000", description: "Sync and verify install.sh", pr_number: 958, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 428, deletions_count: 140}, - {sha: "f20d68a6ba153df599e525f15e18baebe624585f", date: "2019-10-02 17:42:08 +0000", description: "Remove APT, YUM, and PackageCloud", pr_number: 961, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 21, insertions_count: 61, deletions_count: 265}, - {sha: "ce2174996a583ae27b8c04b998f59abc47f5634a", date: "2019-10-02 22:35:35 +0000", description: "Add SSE and public-read ACL to install.sh", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "8dae324901f7fb4913ca68e723d6aeea814e76f3", date: "2019-10-03 11:09:26 +0000", description: "Verify installation script on mac", pr_number: 965, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 15, deletions_count: 0}, - {sha: "eebcbd4c1fa1296a0bfe152a2141c253cbb76d88", date: "2019-10-03 11:57:52 +0000", description: "Verify that sh.vector.dev works", pr_number: 964, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 22, deletions_count: 1}, - {sha: "eedbb2c650f75406b86a9da9f1d7de48550dcf7e", date: "2019-10-03 12:11:17 +0000", description: "Create missing .md file for new components", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 7, deletions_count: 0}, - {sha: "5c5ad89d74a7ec0069e0b41ba8adccc20b5ecf55", date: "2019-10-04 11:18:38 +0000", description: "Verify and check Homebrew install", pr_number: 969, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 26, deletions_count: 7}, - {sha: "d5974dc4198abd22bf6b920fc380a087cc150137", date: "2019-10-04 23:30:25 +0000", description: "Add support for basic auth", pr_number: 937, scopes: ["clickhouse sink"], type: "feat", breaking_change: false, author: "albert", files_count: 5, insertions_count: 100, deletions_count: 4}, - {sha: "c216022f600dbdf7aec8f8bb2fd7e9320584ed16", date: "2019-10-05 13:10:20 +0000", description: "Use sudo when checking internet install", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "7449992216e3c8812f2ed24d4ddda11c799e50e9", date: "2019-10-07 16:42:28 +0000", description: "Update cloudwatch metrics docs", pr_number: 968, scopes: [], type: "docs", breaking_change: false, author: "Alexey Suslov", files_count: 8, insertions_count: 99, deletions_count: 6}, - {sha: "2e6516f844247a18a7885dfeafc5f4d118687845", date: "2019-10-07 20:22:14 +0000", description: "Properly verify that the Vector Systemd service started", pr_number: 982, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 25, deletions_count: 19}, - {sha: "8c2ef3e5412159289be79a5521ffd43c65be812b", date: "2019-10-07 22:33:01 +0000", description: "Dont auto-update when testing Homebrew install", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "8a6705aefbf8e00c99107ba5038cb1022d85cd7e", date: "2019-10-08 00:31:46 +0000", description: "Fix Docker builds", pr_number: 985, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 20, insertions_count: 430, deletions_count: 169}, - {sha: "8cc531da55aa1d948e785af0dec1ba74bef165e0", date: "2019-10-08 00:37:07 +0000", description: "Fix failing verify-install-on-internet check", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "76e396aeb5d89f227b25467fdb86293e5e5c1a95", date: "2019-10-08 00:38:40 +0000", description: "Fix vector docker image name reference", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "ddc27bb670e86713c03554ffe081dd1e873a7de9", date: "2019-10-08 17:18:19 +0000", description: "Initial `docker` source implementation", pr_number: 787, scopes: ["new source"], type: "feat", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 23, insertions_count: 1537, deletions_count: 9}, - {sha: "74b654606b39a7554c53c07b585d0cd9be3b76f7", date: "2019-10-08 11:33:32 +0000", description: "Unify the different TLS options", pr_number: 972, scopes: ["security"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 25, insertions_count: 905, deletions_count: 540}, - {sha: "476fb7e436f1b285ccff3dc52e21a8b1f36ab458", date: "2019-10-08 16:08:22 +0000", description: "Default data_dir to /var/lib/vector", pr_number: 995, scopes: ["config"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 8, deletions_count: 1}, - {sha: "b541bb1a4097d22f3efa9d74ccaf28cabcbe6466", date: "2019-10-08 18:21:36 +0000", description: "Add rate limited debug messages", pr_number: 971, scopes: ["observability"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 33, insertions_count: 422, deletions_count: 630}, - {sha: "389a65072cea2b7d3bafe70a52597d83925251e6", date: "2019-10-08 18:33:39 +0000", description: "Fix release script bug", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "3a86fdae3f5d72d001ba16b9683514e571a7c105", date: "2019-10-08 18:48:29 +0000", description: "Prepare v0.5.0 release", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 10, insertions_count: 55, deletions_count: 204}, - {sha: "df6018be6c1c964692d3ea071f4d95fb21f1cb14", date: "2019-10-08 19:06:31 +0000", description: "Add 0.5.0 release metadata", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 61, deletions_count: 0}, - {sha: "5a4d50b022db116a0155efafb6aaaa34e4882600", date: "2019-10-08 20:27:20 +0000", description: "Remove unsupported bash flags", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 0, deletions_count: 6}, - {sha: "86d1d01bed23aa1496dcdab9c627d90c6c07e294", date: "2019-10-09 11:36:55 +0000", description: "Add sudo when installing via dpkg or rpm", pr_number: 999, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 10, deletions_count: 2}, - {sha: "a70603d11764ca49c4aa62bf3e50f7cf712c0018", date: "2019-10-09 11:38:01 +0000", description: "Add git to musl build image", pr_number: 997, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "2cb0e44c69c776679dc19d41af8aecee42169e75", date: "2019-10-09 15:52:26 +0000", description: "Fix centos verifier", pr_number: 1001, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 15, insertions_count: 37, deletions_count: 107}, - ] -} diff --git a/docs/reference/releases/0.6.0.cue b/docs/reference/releases/0.6.0.cue deleted file mode 100644 index 0115efb26df93..0000000000000 --- a/docs/reference/releases/0.6.0.cue +++ /dev/null @@ -1,258 +0,0 @@ -package metadata - -releases: "0.6.0": { - date: "2019-12-12" - codename: "The Long Stretch" - - whats_next: [ - ] - - commits: [ - {sha: "15b44d04a06c91d5e0d1017b251c32ac165f2bd6", date: "2019-10-10 15:01:52 +0000", description: "Push docker images so that `latest` tags are last", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "4bc7696077e691f59811e8b1e078f1b029fe63a6", date: "2019-10-10 15:19:21 +0000", description: "Print grease command output", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "0f5266193c6ae8d7d47907c906e34598e36f2057", date: "2019-10-11 09:58:21 +0000", description: "Do not release Github or Homebrew on nightly", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 0, deletions_count: 7}, - {sha: "1e1d66e04722841e3e0dc9b6d7d85c75379d1caf", date: "2019-10-11 09:08:43 +0000", description: "Make global options actually use default", pr_number: 1013, scopes: ["cli"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 6, insertions_count: 56, deletions_count: 40}, - {sha: "a7f7ffa879cd310beca498a600537707b7aee896", date: "2019-10-11 10:23:18 +0000", description: "Add relevant when details to config spec", pr_number: 1016, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 17, insertions_count: 74, deletions_count: 2}, - {sha: "1f0c52bcb931bd2e10fa09557e343af50513e166", date: "2019-10-11 12:26:22 +0000", description: "List out component options as linkable sections", pr_number: 1019, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 95, insertions_count: 3115, deletions_count: 3683}, - {sha: "5510b176ce0645d9893ea0e92ac2f73d58515e38", date: "2019-10-14 02:13:53 +0000", description: "Add ca certificates for docker image", pr_number: 1014, scopes: ["docker platform"], type: "fix", breaking_change: false, author: "Lincoln Lee", files_count: 2, insertions_count: 2, deletions_count: 0}, - {sha: "d4aac2e13c8c3f285cfeb95a6c22695fe07cb18e", date: "2019-10-13 18:50:02 +0000", description: "Further improve options documentation for each component", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 122, insertions_count: 3957, deletions_count: 3593}, - {sha: "21506409f8bf1311dfb4cd7ce8539d049dd4a5cd", date: "2019-10-13 18:53:10 +0000", description: "Remove superflous tags in config examples", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 42, insertions_count: 458, deletions_count: 456}, - {sha: "aa02c432cca22a9fd8f7425c839156f2613e3e7b", date: "2019-10-13 19:47:18 +0000", description: "Dont repeat default value in configuration examples", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 45, insertions_count: 468, deletions_count: 480}, - {sha: "d04a3034e3a6ea233be44ddaf59e07c6340d5824", date: "2019-10-14 15:10:55 +0000", description: "Initial `datadog_metrics` implementation", pr_number: 967, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Alexey Suslov", files_count: 16, insertions_count: 1085, deletions_count: 1}, - {sha: "1378575334e0032de645c8277683f73cf640eb97", date: "2019-10-15 01:43:09 +0000", description: "Remove debian cache to reduce image size", pr_number: 1028, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lincoln Lee", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "c1b36be946a2103a6c5eff77e288f32898a3bbe3", date: "2019-10-13 19:49:38 +0000", description: "Dont label unit in config examples", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 20, insertions_count: 80, deletions_count: 76}, - {sha: "571e1390bd4a5455a5b1305ace8fd1724a761ddd", date: "2019-10-14 19:25:25 +0000", description: "Add back section references to option descriptions", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 45, insertions_count: 348, deletions_count: 334}, - {sha: "22efd48c90d91c9fa9a4d102e54ffb3d869945f3", date: "2019-10-15 12:31:14 +0000", description: "Ensure log_to_metric tags option shows in example", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 9, deletions_count: 5}, - {sha: "5dd167a462930da589f842a366334d65be17d185", date: "2019-10-15 12:32:52 +0000", description: "Fix metrics examples syntax error", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "f804cebad4ed97f0da105effbe72b593a846ff9d", date: "2019-10-15 12:36:11 +0000", description: "Fix log data model", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "a3c7c752e3fec7d3c5d84d4452e1243b263a3ae8", date: "2019-10-16 15:30:34 +0000", description: "Add `commit_interval_ms` option", pr_number: 944, scopes: ["kafka source"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 17, deletions_count: 5}, - {sha: "8aaa22524c13a184a8ce0c8eeaa744d556ed4841", date: "2019-10-16 19:19:15 +0000", description: "Fix typos", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 8, deletions_count: 8}, - {sha: "20bc1a29af0ad4cab9f86482873e942627d366c2", date: "2019-10-17 14:38:27 +0000", description: "Put buffering tests behind `leveldb` feature", pr_number: 1046, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "22fd9ef6f07b4372512185270b729ad0fd21b49c", date: "2019-10-17 15:45:52 +0000", description: "Update `tower-limit` to `v0.1.1`", pr_number: 1018, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 4, deletions_count: 3}, - {sha: "32ed04fb529fcb6a10dfed101dff04447357cf13", date: "2019-10-17 22:47:58 +0000", description: "Resolve inability to shutdown Vector when std…", pr_number: 960, scopes: ["stdin source"], type: "fix", breaking_change: false, author: "AlyHKafoury", files_count: 1, insertions_count: 39, deletions_count: 17}, - {sha: "3e8c906e791505732cea3608fbac9c1878a141bd", date: "2019-10-17 18:41:54 +0000", description: "Add address and path to the syslog source example config", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 8, deletions_count: 0}, - {sha: "fe26627b13797465d7a94a7ea1e63a7266bf7d42", date: "2019-10-18 13:04:52 +0000", description: "Bump version in Cargo.toml before releasing", pr_number: 1048, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 23, deletions_count: 0}, - {sha: "875de183748ba7939f53d1c712f1ea1aff7017a8", date: "2019-10-18 22:15:06 +0000", description: "Update leveldb-sys up to 2.0.5", pr_number: 1055, scopes: ["platforms"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "b2a3c25bbf9e33a9d167eef1ca28d606f405b670", date: "2019-10-21 14:19:44 +0000", description: "Apply some fixes for clippy lints", pr_number: 1034, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 36, insertions_count: 188, deletions_count: 204}, - {sha: "616d14abf59ac6e29c356fbf43e108dd7a438d35", date: "2019-10-21 16:54:41 +0000", description: "Require `encoding` option for console and file sinks", pr_number: 1033, scopes: ["config"], type: "fix", breaking_change: true, author: "Luke Steensen", files_count: 17, insertions_count: 116, deletions_count: 61}, - {sha: "b6a8778949d9fbb36637bec13bf9a9b03762663b", date: "2019-10-23 06:22:55 +0000", description: "Bundle install should print output on error", pr_number: 1068, scopes: ["operations"], type: "chore", breaking_change: false, author: "Yeonghoon Park", files_count: 1, insertions_count: 5, deletions_count: 5}, - {sha: "f90f50abec9f5848b12c216e2962ad45f1a87652", date: "2019-10-22 16:32:08 +0000", description: "Add support for systemd socket activation", pr_number: 1045, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 23, insertions_count: 199, deletions_count: 70}, - {sha: "afc1edab8b726291850674d6fbbf7c66af2ba6aa", date: "2019-10-23 15:08:45 +0000", description: "Add OpenSSL and pkg-config to development requirements", pr_number: 1066, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 9, deletions_count: 2}, - {sha: "e56f9503f09a7f97d96093775856a019d738d402", date: "2019-10-23 18:27:01 +0000", description: "Set default `drop_field` to true", pr_number: null, scopes: ["regex_parser transform"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 13, deletions_count: 1}, - {sha: "018db5f4c65662367cc749f3e4458271a2003e75", date: "2019-10-24 09:02:53 +0000", description: "Add `validate` sub command", pr_number: 1064, scopes: ["cli"], type: "feat", breaking_change: false, author: "Ashley Jeffs", files_count: 5, insertions_count: 269, deletions_count: 83}, - {sha: "c112c4ac7f45e69fea312e7691566a3f9e8e3066", date: "2019-10-24 12:11:00 +0000", description: "Metrics buffer & aggregation", pr_number: 930, scopes: ["metric data model"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 7, insertions_count: 875, deletions_count: 136}, - {sha: "137e9ea7495eabca272207a904b9dd4c2f82d6af", date: "2019-10-24 14:57:57 +0000", description: "Use rdkafka crate from the upstream Git repository", pr_number: 1063, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 118, deletions_count: 127}, - {sha: "4cde6dc5021d06e07393af135d0625178385802a", date: "2019-10-24 15:13:08 +0000", description: "Check config examples", pr_number: 1082, scopes: ["config"], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 37, insertions_count: 18, deletions_count: 635}, - {sha: "ef5ec5732fd4f677f0b25e3f6e470c37d0f73855", date: "2019-10-24 11:52:44 +0000", description: "Fix a couple minor issues with checkpointing", pr_number: 1086, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 17, deletions_count: 12}, - {sha: "8fef7056a1d1c515014e721a2940d04ff269a704", date: "2019-10-24 13:17:07 +0000", description: "Fix merge problem in Cargo.lock", pr_number: 1087, scopes: ["operations"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "c97173fb472ffeb11902e3385dc212fdef8a0ffa", date: "2019-10-25 09:40:42 +0000", description: "Use metric buffer in Datadog sink", pr_number: 1080, scopes: ["datadog_metrics sink"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 1, insertions_count: 17, deletions_count: 17}, - {sha: "25813de321b097677e7c23069082b8e3597928e8", date: "2019-10-28 14:20:14 +0000", description: "Update `ctor` dependency", pr_number: 1095, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 6, deletions_count: 6}, - {sha: "ccae97b37b04b590ddf64284fd593afdfb024b22", date: "2019-10-28 14:50:20 +0000", description: "Avoid dependency on platform-specific machine word size", pr_number: 1096, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "7ca6dc31a3af3e6e08ef89a469923fa385e5df30", date: "2019-10-28 15:02:09 +0000", description: "Rework option to limit records to current boot in journald source", pr_number: 1105, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 7, insertions_count: 36, deletions_count: 13}, - {sha: "f9a6776a4467cd8a5c4ffdaa44a8a5593f6471ac", date: "2019-10-28 18:34:13 +0000", description: "Wrap provider call with a tokio runtime", pr_number: 1104, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 11, deletions_count: 7}, - {sha: "603f1e3331e44c2b486cb8f5570109987b0a261e", date: "2019-10-29 17:26:32 +0000", description: "Update Rusoto to 0.38.0", pr_number: 1112, scopes: ["operations"], type: "chore", breaking_change: false, author: "David O'Rourke", files_count: 8, insertions_count: 80, deletions_count: 77}, - {sha: "9e2f98e780fdca4380f701508eb6f35e924d8d8b", date: "2019-10-29 20:30:57 +0000", description: "Increase sleep interval in the tests for file source", pr_number: 1113, scopes: ["file source"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "539f7086459692fe8b52493cdf053220af687d92", date: "2019-10-29 18:01:52 +0000", description: "Update Rusoto to 0.41.x", pr_number: 1114, scopes: ["operations"], type: "chore", breaking_change: false, author: "David O'Rourke", files_count: 5, insertions_count: 79, deletions_count: 116}, - {sha: "ddffd3b91588da87b3c3a1623ac1f7be842f2392", date: "2019-10-29 14:42:21 +0000", description: "Cursor/checkpoint fixes", pr_number: 1106, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 77, deletions_count: 12}, - {sha: "a5d442c9d311fb100d1912d5a0c422a847dbbdc3", date: "2019-10-30 20:12:56 +0000", description: "Use `rlua` crate from a fork with Pairs implementation", pr_number: 1119, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 16, deletions_count: 6}, - {sha: "219b9259bad71e36a7e1863c8add85a902bc057f", date: "2019-10-30 18:13:29 +0000", description: "Allow iteration over fields", pr_number: 1111, scopes: ["lua transform"], type: "enhancement", breaking_change: false, author: "Steven Aerts", files_count: 2, insertions_count: 61, deletions_count: 0}, - {sha: "ec2c9970ed16c3b06f5dc328b7edd6460db4f310", date: "2019-10-30 20:48:54 +0000", description: "Move example of iterating over all fields out of the autogenerated file", pr_number: 1120, scopes: ["lua transform"], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 26, deletions_count: 13}, - {sha: "608e21abe8198a90b1100868b46550d63ab95c8c", date: "2019-10-30 14:16:04 +0000", description: "Flatten out region configuration in elasticsearch sink", pr_number: 1116, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "55766802be0a6c35eb6e1f8d35be9081401b27de", date: "2019-10-31 12:07:34 +0000", description: "Improve topology tracing spans", pr_number: 1123, scopes: ["observability"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 47, insertions_count: 276, deletions_count: 22}, - {sha: "641bc4242c7e86cde031a51e4228edb0a66bec27", date: "2019-10-31 20:03:31 +0000", description: "Update grok to version 1.0.1", pr_number: 1124, scopes: ["grok_parser transform"], type: "enhancement", breaking_change: false, author: "Michael Nitschinger", files_count: 2, insertions_count: 4, deletions_count: 4}, - {sha: "67ee5cc3055da22e5f9eb4861f8be383c2f72f1c", date: "2019-10-31 14:56:23 +0000", description: "Limit journald records to the current boot", pr_number: 1122, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 34, deletions_count: 11}, - {sha: "70482ab33c44226f392877461cb8be833f8bbdd6", date: "2019-11-01 08:44:37 +0000", description: "Abstracts runtime into runtime.rs", pr_number: 1098, scopes: ["operations"], type: "chore", breaking_change: false, author: "Michael-J-Ward", files_count: 23, insertions_count: 170, deletions_count: 98}, - {sha: "e13b2131dbe297be8ce53f627affe52a9a26ca5d", date: "2019-11-04 14:29:31 +0000", description: "Add Cargo.toml version check to CI", pr_number: 1102, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 5, insertions_count: 84, deletions_count: 10}, - {sha: "933fd510ba4e8ae7a6184515371d7a3c0d97dc75", date: "2019-11-04 15:23:32 +0000", description: "Handle edge cases in the Cargo.toml version check", pr_number: 1138, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "6f236505b5808e0da01cd08df20334ced2f48edf", date: "2019-11-04 15:29:42 +0000", description: "Bump version in Cargo.toml to 0.6.0", pr_number: 1139, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "3b3c824e98c8ae120f32ffb3603077792c165141", date: "2019-11-04 10:13:29 +0000", description: "Automatically create missing directories", pr_number: 1094, scopes: ["file sink"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 6, insertions_count: 121, deletions_count: 28}, - {sha: "d9550711ebcc3bd1033b4985efb3af469e8a4384", date: "2019-11-04 11:35:33 +0000", description: "Update lock file for 0.6", pr_number: 1140, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "a0a5bee914ea94353d545e2d772978ba7963b20f", date: "2019-11-04 23:33:29 +0000", description: "Show Git version and target triple in `vector --version` output", pr_number: 1044, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 5, insertions_count: 40, deletions_count: 17}, - {sha: "8be060fc48eb504c30f874fead15f144570cbeb3", date: "2019-11-04 15:51:53 +0000", description: "Update lock file", pr_number: 1133, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 10, insertions_count: 880, deletions_count: 1380}, - {sha: "96bd716fc1c022831eb04afd633ede3efe809d28", date: "2019-11-05 09:15:57 +0000", description: "Flush and reset any current filter before applying new filter", pr_number: 1135, scopes: ["journald source"], type: "fix", breaking_change: false, author: "David Howell", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "c7ad707ed296a93e3d82bff2b3d7793178d50bcc", date: "2019-11-06 09:10:51 +0000", description: "Ensure internal rate limiting is logged", pr_number: 1151, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "eb0566313849002fa820d57cc15d8a9ec957b9d3", date: "2019-11-06 22:17:55 +0000", description: "Use inventory for plugins", pr_number: 1115, scopes: ["config"], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 42, insertions_count: 280, deletions_count: 40}, - {sha: "fefe9ef4c8f1f20513bc31545d36ab00ed09c4a7", date: "2019-11-07 10:22:10 +0000", description: "Fix metrics batch strategy in sinks", pr_number: 1141, scopes: ["aws_cloudwatch_metrics sink"], type: "fix", breaking_change: false, author: "Alexey Suslov", files_count: 6, insertions_count: 7, deletions_count: 17}, - {sha: "f4adfd716034141f367e93bebf283d703c09dfaa", date: "2019-11-08 14:30:47 +0000", description: "Refactor the batching configuration", pr_number: 1154, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 12, insertions_count: 132, deletions_count: 130}, - {sha: "cfab2339b9b3f8117d816015d6523976b38190cc", date: "2019-11-08 20:35:06 +0000", description: "Add `list` subcommand", pr_number: 1156, scopes: ["cli"], type: "feat", breaking_change: false, author: "Ashley Jeffs", files_count: 4, insertions_count: 98, deletions_count: 1}, - {sha: "200dccccc58cf5f7fec86b3124ed00e9ad0d5366", date: "2019-11-08 15:58:14 +0000", description: "Stop accidentally requiring region for ES", pr_number: 1161, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 24, deletions_count: 6}, - {sha: "4b831475ed4cb6a016b18b4fa4f2457f0591ce21", date: "2019-11-09 18:36:10 +0000", description: "Bump loofah from 2.2.3 to 2.3.1 in /scripts", pr_number: 1163, scopes: ["operatons"], type: "chore", breaking_change: false, author: "dependabot[bot]", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "32cfe37c87a01ae08b61627d31be73ecf840d375", date: "2019-11-11 17:30:27 +0000", description: "Use vendored OpenSSL", pr_number: 1170, scopes: ["platforms"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 20, deletions_count: 17}, - {sha: "fb9c17a26959e8276770a86307807721cd2ded25", date: "2019-11-11 09:37:36 +0000", description: "upgrade to rust 1.39.0", pr_number: 1159, scopes: ["operations"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "8de50f4603b3e7626af27b24d9a350eaadb9b4e7", date: "2019-11-11 20:34:23 +0000", description: "Add `clean` target to Makefile", pr_number: 1171, scopes: ["operations"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 3, deletions_count: 0}, - {sha: "f9d3111015352910e71dab210c376b09cdd26333", date: "2019-11-12 00:09:45 +0000", description: "Fixes a bug droping parsed field", pr_number: 1167, scopes: ["json_parser transform"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 24, deletions_count: 4}, - {sha: "a272f633464ce06ab28e5d9a7c1e7d6b595c61ec", date: "2019-11-13 13:16:25 +0000", description: "`host` is not required when provider is AWS", pr_number: 1164, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 112, deletions_count: 60}, - {sha: "2100100b5cda0f57292a17bbf4473ed543811f39", date: "2019-11-13 15:34:38 +0000", description: " Limit the number of CircleCI build jobs to 8", pr_number: 1176, scopes: ["operations"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "2e2af43786ff0dbc292f98cedc830791d1e20937", date: "2019-11-13 15:34:59 +0000", description: "Fix missed `cargo fmt` run on elasticsearch sink", pr_number: 1175, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 3, deletions_count: 1}, - {sha: "cfb66e5b90007d9a5dc461afa80e6d3e190febcf", date: "2019-11-13 17:21:05 +0000", description: "Don't drop parsed field", pr_number: 1172, scopes: ["grok_parser transform"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 20, deletions_count: 1}, - {sha: "e0433fd1ada425c1f5c9505426fa362aae14249e", date: "2019-11-13 21:23:21 +0000", description: "Add support for target field configuration", pr_number: 1165, scopes: ["json_parser transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 6, insertions_count: 152, deletions_count: 3}, - {sha: "e503057ff3616569521a208abbbed8c3e8fbc848", date: "2019-11-14 10:49:59 +0000", description: "Add `generate` subcommand", pr_number: 1168, scopes: ["cli"], type: "feat", breaking_change: false, author: "Ashley Jeffs", files_count: 6, insertions_count: 272, deletions_count: 6}, - {sha: "de0a6734710a6c63c969048a06d3b55ae1637c87", date: "2019-11-14 21:24:43 +0000", description: "Use `strptime` instead of `strftime` in docs where appropriate", pr_number: 1183, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 13, insertions_count: 28, deletions_count: 28}, - {sha: "fc2c1db5824f8499190efa078c993f3f52737043", date: "2019-11-14 20:23:38 +0000", description: "Support default environment variable values", pr_number: 1185, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Jean Mertz", files_count: 1, insertions_count: 11, deletions_count: 4}, - {sha: "20ba2575f40944b36c7bbd9e4d821452626f288b", date: "2019-11-14 23:49:51 +0000", description: "Update rdkafka to fix rdkafka/cmake feature", pr_number: 1186, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "84d830b57de1798b2aac61279f7a0ae99f854241", date: "2019-11-14 23:50:35 +0000", description: "Use leveldb from fork with improved portability", pr_number: 1184, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 4, deletions_count: 4}, - {sha: "3ce0b4ed645d2844f1f6c5308409e2e9466c0799", date: "2019-11-14 23:50:59 +0000", description: "Increase wait timeouts in tests which otherwise fail on slow CPUs", pr_number: 1181, scopes: ["testing"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 8, deletions_count: 8}, - {sha: "0884f5d90ca2162aaa0ea6b9ab5d2e10a026a286", date: "2019-11-19 17:35:50 +0000", description: "Control which version of leveldb-sys to use with features", pr_number: 1191, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "90388ed57afea24d569b2317d97df7035211b252", date: "2019-11-19 17:39:05 +0000", description: "Support `armv7-unknown-linux` (Raspberry Pi, etc) platforms", pr_number: 1054, scopes: ["new platform"], type: "feat", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 366, deletions_count: 0}, - {sha: "d58139caf6cdb15b4622360d7c9a04a8c86724d6", date: "2019-11-19 17:41:09 +0000", description: "Support `aarch64-unknown-linux` (ARM64, Raspberry Pi, etc) platforms", pr_number: 1193, scopes: ["new platform"], type: "feat", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 347, deletions_count: 10}, - {sha: "1b833eb6d693d4c281aa51c332202eb2796ba4db", date: "2019-11-19 15:24:03 +0000", description: "Re-fix journald cursor handling and libsystemd name", pr_number: 1202, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 34, deletions_count: 37}, - {sha: "2d2fadb2599d99ded3d73286fe17a67d20d23805", date: "2019-11-19 16:51:07 +0000", description: "New website and documentation", pr_number: 1207, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 496, insertions_count: 39821, deletions_count: 23643}, - {sha: "2d419d57d5ab6072bc1058126bc3be50fa57c835", date: "2019-11-20 00:27:10 +0000", description: "Initial `ansi_stripper` transform implementation", pr_number: 1188, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Jean Mertz", files_count: 5, insertions_count: 158, deletions_count: 0}, - {sha: "55b68910ee3d80fdf302faf5a5bc9aa1f68e8dce", date: "2019-11-20 14:37:14 +0000", description: "Fix README banner", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 3, insertions_count: 146, deletions_count: 2}, - {sha: "458f6cc0e3fbc6fded1fdf8d47dedb2d0be3bb2d", date: "2019-11-21 08:36:02 +0000", description: "Initial `geoip` transform implementation", pr_number: 1015, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Amit Saha", files_count: 6, insertions_count: 286, deletions_count: 0}, - {sha: "803c7f98349a4d07bfc68bc7f10a80c165698f1a", date: "2019-11-20 21:31:34 +0000", description: "Small website and documentation improvements", pr_number: 1215, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 28, insertions_count: 880, deletions_count: 307}, - {sha: "fb6a1dc7d41a73869b36d20863f410a3f3d9a844", date: "2019-11-21 00:14:23 +0000", description: "Small changes to website homepage styles", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 9, deletions_count: 5}, - {sha: "42ca451408b42db43ea2597509e0ce85b44059a9", date: "2019-11-21 15:28:49 +0000", description: "Fix some URLs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 4, insertions_count: 7, deletions_count: 11}, - {sha: "9fe1eeb4786b27843673c05ff012f6b5cf5c3e45", date: "2019-11-21 15:39:33 +0000", description: "Allow >1 config targets for validate command", pr_number: 1218, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 3, insertions_count: 82, deletions_count: 91}, - {sha: "3af177516728cc4a78a198f69d1cb6b0f0b093fc", date: "2019-11-21 23:53:20 +0000", description: "Fix components link in README", pr_number: 1222, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "58246b306f0e927cfc2ffcfb6f023c146846db0e", date: "2019-11-21 16:13:16 +0000", description: "Rename components section to reference in docs", pr_number: 1223, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 134, insertions_count: 740, deletions_count: 4232}, - {sha: "89c50b177689cbacf4dc3f930ebbe2b264046b8a", date: "2019-11-21 16:30:11 +0000", description: "Styling fixes", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 13, deletions_count: 4}, - {sha: "5b38129d0de1185235e630a571e31c3e9f5ab85c", date: "2019-11-22 00:49:04 +0000", description: "Fix restoring of `rust-toolchain` file", pr_number: 1224, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 5, deletions_count: 3}, - {sha: "5f39c2f3515d958d40c9a6187c59806c4731c91c", date: "2019-11-22 01:25:18 +0000", description: "Produce archives for `armv7-unknown-linux-musleabihf`", pr_number: 1225, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 29, deletions_count: 1}, - {sha: "a1410f69382bd8036a7046a156c64f56e8f9ef33", date: "2019-11-22 02:01:41 +0000", description: "Support `x86_64-pc-windows-msvc` (Windows 7+) platform", pr_number: 1205, scopes: ["new platform"], type: "feat", breaking_change: false, author: "Alexander Rodin", files_count: 15, insertions_count: 337, deletions_count: 72}, - {sha: "bf9402b2151d976edd42b35d08c1722de7ec2b9b", date: "2019-11-21 23:06:41 +0000", description: "Update downloads links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 11, insertions_count: 144, deletions_count: 53}, - {sha: "5062b39a82949c86fdc80658085a88b78a24a27c", date: "2019-11-22 12:58:49 +0000", description: "Fix `check-generate` check in CI", pr_number: 1226, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 8, insertions_count: 398, deletions_count: 374}, - {sha: "befb29916c2d19827303109769ca824fbd167870", date: "2019-11-22 14:15:54 +0000", description: "Use bash from Docker containers as a shell in Circle CI", pr_number: 1227, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 13, deletions_count: 5}, - {sha: "6052cbc9a00eac0b2db96651730bd730c39ca83e", date: "2019-11-22 14:51:24 +0000", description: "Fix invocation of check jobs", pr_number: 1229, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 12, deletions_count: 12}, - {sha: "d7a0fd1362f7b99a3bac344434d2a50305f1fa2e", date: "2019-11-22 16:04:48 +0000", description: "Verify `zip` archives for `x86_64-pc-windows-msvc` in `wine`", pr_number: 1228, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 17, deletions_count: 10}, - {sha: "7906dcae3c0a43c99880f2cea9aeb01de629157c", date: "2019-11-22 10:25:57 +0000", description: "Update to docusaurus alpha.36", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 82, deletions_count: 90}, - {sha: "49a861ab3045570f1e173c56fa23291e014856a2", date: "2019-11-22 11:22:16 +0000", description: "Fix curl commands mentioned in #1234", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 4, deletions_count: 3}, - {sha: "39bd126fe67b048003532c178c64be90ef4cec62", date: "2019-11-22 16:49:49 +0000", description: "Run nightly builds at 5pm UTC", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "fe32fdc5d222182f18e4118af28d72d4b06dca0d", date: "2019-11-22 13:19:53 +0000", description: "Redraw diagram to fix an initial load issue in Chrome", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 4, deletions_count: 6}, - {sha: "6de3e4f3a725c978ccaa95c5a9180df202c5a074", date: "2019-11-22 15:45:12 +0000", description: "Rerender diagram to fix Chrome update issue", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 10, deletions_count: 7}, - {sha: "12d36bbe2eb223ab89335b61dfbb7e18c4649981", date: "2019-11-22 16:43:22 +0000", description: "More Chrome fixes", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 4, deletions_count: 4}, - {sha: "f9396da79b49f617ce93d6be233f9592831fab2d", date: "2019-11-22 17:00:30 +0000", description: "Fix Chrome sorting issue", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 8, deletions_count: 8}, - {sha: "662c5d1346ea2b01c0bc3c11c648cbdf92035fe2", date: "2019-11-22 19:32:52 +0000", description: "Fix readme", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 47, deletions_count: 182}, - {sha: "cb6571798af5b80c123905b4cac3a56a67fc3181", date: "2019-11-22 19:36:11 +0000", description: "Fix readme component counts", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 11, deletions_count: 11}, - {sha: "1f401a68bdb5c0bcfc9d0385f49a70f22fbce5d9", date: "2019-11-23 11:50:14 +0000", description: "Make `openssl/vendored` feature optional", pr_number: 1239, scopes: ["platforms"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 7, deletions_count: 7}, - {sha: "52a49d5a32f091eec7c174b02803f7fc3ca5af34", date: "2019-11-23 04:21:20 +0000", description: "Accept metric events, too", pr_number: 1237, scopes: ["blackhole sink"], type: "enhancement", breaking_change: false, author: "Austin Seipp", files_count: 1, insertions_count: 8, deletions_count: 6}, - {sha: "457f964bde42fce3b92e5bd1a65ef6192c404a16", date: "2019-11-23 13:27:51 +0000", description: "Update `openssl` dependency", pr_number: 1240, scopes: ["platforms"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 14, deletions_count: 14}, - {sha: "cdee561f8c1a023b77c5db712cc081b90570eb55", date: "2019-11-23 15:49:09 +0000", description: "Don't put *.erb files to configs directory", pr_number: 1241, scopes: ["platforms"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 2, deletions_count: 0}, - {sha: "b449b2b67f077760215294c418688c27f3f629a0", date: "2019-11-23 22:51:25 +0000", description: "Document installation on Windows", pr_number: 1235, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 37, insertions_count: 1064, deletions_count: 351}, - {sha: "663be72997339cb9c30f935d9ef4c8e7732bc56c", date: "2019-11-23 15:01:47 +0000", description: "Add docker to homepage", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 151, deletions_count: 1}, - {sha: "732265e9be0ae4c5add4679ef11fe808032c8f78", date: "2019-11-23 15:13:26 +0000", description: "Update docker image", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "5c15a3c6c7811315ff980e57f685d7fd3616ca7e", date: "2019-11-23 15:40:52 +0000", description: "Fix administrating doc", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 31, deletions_count: 1}, - {sha: "068ae60a963523e540f2f404545e287a8b161037", date: "2019-11-23 15:41:36 +0000", description: "Add administration to docs sidebar", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 0}, - {sha: "cdcd624da93fd36676e84426b8ec93917a90c8e1", date: "2019-11-23 20:46:47 +0000", description: "Add C++ toolchain installation step", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 9, deletions_count: 5}, - {sha: "d7b7735ae57e362e8255a59a578ac12f4b438119", date: "2019-11-24 01:14:17 +0000", description: "Attempt to fix website theme flickering", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 25, deletions_count: 20}, - {sha: "1ec95b9df9a1f0456c02dcfd9824024ed7516fcc", date: "2019-11-24 10:26:30 +0000", description: "Describe build features", pr_number: 1243, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 82, deletions_count: 25}, - {sha: "37e60137b4fab70dc97cc177ecd6f1c81b1c86b0", date: "2019-11-24 12:03:02 +0000", description: "Add ARMv7 to installation docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 84, deletions_count: 3}, - {sha: "8698eb922c5e1a1a0906fe25e2e9f2a39acb9c06", date: "2019-11-24 12:24:10 +0000", description: "Various installation docs corrections, closes #1234", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 8, insertions_count: 27, deletions_count: 15}, - {sha: "818c28228965d9d0b691e18298127eb5666d7865", date: "2019-11-24 12:26:07 +0000", description: "Remove Alogia search until it has indexed everything", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 5, deletions_count: 5}, - {sha: "b00996fc6949d6d34fcd13f685b5b91d116f4e8c", date: "2019-11-24 21:56:40 +0000", description: "Fix passing environment variables inside the CI Docker containers", pr_number: 1233, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 16, deletions_count: 7}, - {sha: "604b40d15bcbfb62eae0ca314ffad06a365ccc85", date: "2019-11-24 15:06:09 +0000", description: "Add operating system as a compenent attribute and filter", pr_number: 1244, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 59, insertions_count: 619, deletions_count: 141}, - {sha: "dde45458aa375d5c9e1eb7beb4bf9fe102ccb0db", date: "2019-11-24 15:56:01 +0000", description: "Fix operating system filter", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 2}, - {sha: "0cad20f837f1f682f9a5b976e150417484e4839f", date: "2019-11-24 16:02:39 +0000", description: "Dont show operating systems for transforms", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 16, insertions_count: 33, deletions_count: 33}, - {sha: "cad2349778d5d42e71ed12c7cf974e6f9ef731d5", date: "2019-11-24 17:14:28 +0000", description: "Fix broken link on homepage", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "9bdaf14ee089da0ab6dff3b464a3086fc709cec6", date: "2019-11-24 21:43:05 +0000", description: "Add sidebar background and ga id", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 5, deletions_count: 1}, - {sha: "545ea5b0c1f88fc8ee42c9bce13358155bbf34fe", date: "2019-11-25 11:12:50 +0000", description: "Fix link", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "f9c486ce4abcd77cf61ddc7fe2fadb4aeae3b806", date: "2019-11-25 15:25:18 +0000", description: "Fix name of `shiplift/unix-socket` feature", pr_number: 1251, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "0e26cfd64a421b3b8296697e5dfca8d8ab35df6c", date: "2019-11-25 00:08:26 +0000", description: "Update dependencies", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 644, deletions_count: 641}, - {sha: "9863f819c001827c400803b9fc0b1b71ea862244", date: "2019-11-25 00:15:02 +0000", description: "Fix Github issues links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 13, deletions_count: 13}, - {sha: "42eabf66dc5138f43c7310b067064beaf3f8c29d", date: "2019-11-25 10:42:39 +0000", description: "Use the proper font in the configuration digram, ref #1234", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 7, deletions_count: 7}, - {sha: "9358c7a2d51ca259e38e49de5c2a46049146fead", date: "2019-11-25 11:10:47 +0000", description: "Enable Algolia search", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 5, deletions_count: 5}, - {sha: "8f18ad80302bf5975ad704271eb2c8d986b1c7d0", date: "2019-11-25 11:30:11 +0000", description: "Remove paginator from main doc content so that it is not included in search results", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 11, deletions_count: 5}, - {sha: "d8fef3c66ce2072c003ba30704276e51c5267dc4", date: "2019-11-25 12:20:05 +0000", description: "Fix search field styling", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 42, deletions_count: 9}, - {sha: "5492ae39c48d67e22fb983b9e55fa1cf5ee09dae", date: "2019-11-25 12:25:24 +0000", description: "Move main links in header to the left", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 4, deletions_count: 4}, - {sha: "357bdbbe9bf142eaf028a46e016e7b37e73a6e88", date: "2019-11-26 05:38:57 +0000", description: "Add JSON encoding option", pr_number: 1174, scopes: ["http sink"], type: "enhancement", breaking_change: false, author: "James Sewell", files_count: 6, insertions_count: 102, deletions_count: 17}, - {sha: "969a426e0f9826e5bebf45ffb87fe7b2f785e7e7", date: "2019-11-25 14:38:10 +0000", description: "Reference exact latest version instead of \"latest\" in download URLs", pr_number: 1254, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 7, insertions_count: 153, deletions_count: 61}, - {sha: "b29e4e309b9a13eff12f46cf00e21a76090e46fd", date: "2019-11-25 14:38:34 +0000", description: "Fix search bar styling on mobile", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 24, deletions_count: 11}, - {sha: "ea81323033974a347bca458e5ab7e446b24228a3", date: "2019-11-25 14:52:15 +0000", description: "Add auto-generated comments to files that are auto-generated, closes #1256", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 114, insertions_count: 655, deletions_count: 101}, - {sha: "26333d9cf00bb5e44ae73aa17a7cab5583dc7d22", date: "2019-11-25 14:27:35 +0000", description: "Sleep to avoid split reads", pr_number: 1236, scopes: ["file source"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 16, deletions_count: 6}, - {sha: "9b7fdca9f9f0d5818afbd821210f9f2c17ccc564", date: "2019-11-25 15:49:57 +0000", description: "Add CODEOWNERS file", pr_number: 1248, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 71, deletions_count: 0}, - {sha: "a9fbcb3ddbb3303f981257be064a995db59b7dbb", date: "2019-11-25 21:56:15 +0000", description: "Add `test` sub-command", pr_number: 1220, scopes: ["cli"], type: "feat", breaking_change: false, author: "Ashley Jeffs", files_count: 38, insertions_count: 2446, deletions_count: 79}, - {sha: "3e92c1eac7a44b0661f25b452a112e5024edf7b3", date: "2019-11-25 22:43:40 +0000", description: "Re-generate unit test spec", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 8, deletions_count: 0}, - {sha: "a282db6df013b89d84694e68ecde38c4d544c1ba", date: "2019-11-25 19:44:24 +0000", description: "Add hash links to all headings", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 20, deletions_count: 8}, - {sha: "aed6f1bf1cb0d3d10b360e16bd118665a49c4ea5", date: "2019-11-26 12:24:33 +0000", description: "Reorganise metric model", pr_number: 1217, scopes: ["metric data model"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 16, insertions_count: 1389, deletions_count: 1036}, - {sha: "df3e70980bfc9f6cde60516df482949fd0bc592b", date: "2019-11-26 15:24:00 +0000", description: "Turn \"executable\" bit off for some of docs files", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 21, insertions_count: 0, deletions_count: 0}, - {sha: "f20fc4ad3ea88d112d84be58eb51b4a5e85df21f", date: "2019-11-26 16:35:36 +0000", description: "Enrich events with metadata", pr_number: 1149, scopes: ["docker source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 39, insertions_count: 505, deletions_count: 298}, - {sha: "f5cfdfe2fb25703ea308992c3d106b5c4b3b7af1", date: "2019-11-26 11:01:48 +0000", description: "Testing documentation touchups", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 718, deletions_count: 2}, - {sha: "c86b23818345136ea0bf911d92426440387b1620", date: "2019-11-26 11:17:52 +0000", description: "Fix examples syntax and parsing", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 19, insertions_count: 198, deletions_count: 177}, - {sha: "8fae3d0a5524f0172a97a1235c13305f660bc07f", date: "2019-11-26 11:34:17 +0000", description: "Clarify guarantees language to be feature specific not component specific", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 12, deletions_count: 12}, - {sha: "57434aa05893d89300cee34f7aa2be7c6be7405b", date: "2019-11-26 11:46:58 +0000", description: "Fix docker source config examples", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 8, deletions_count: 9}, - {sha: "18da561ba25843b13ce013f5a2052dfbff877b2b", date: "2019-11-26 19:15:14 +0000", description: "Fix sorting in make generate", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 35, deletions_count: 43}, - {sha: "3db6403a24c16a36ba3367dedff006c9c9924626", date: "2019-11-27 12:23:58 +0000", description: "Add timeouts to crash tests", pr_number: 1265, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 14, deletions_count: 2}, - {sha: "df2b5d8016f27e868e0bb2a6feaf8bd99caaf64f", date: "2019-11-27 17:03:31 +0000", description: "Run `x86_64-pc-windows-msvc` tests in release mode", pr_number: 1269, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "c9f96ffaef533272103a167a5900edad1ed5946c", date: "2019-11-27 10:22:21 +0000", description: "Move env vars to reference section", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 11, insertions_count: 204, deletions_count: 41}, - {sha: "77e582b526680a22ea4da616cbfdb3b0ad281097", date: "2019-11-27 19:19:04 +0000", description: "Custom DNS resolution", pr_number: 1118, scopes: ["networking"], type: "feat", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 11, insertions_count: 733, deletions_count: 3}, - {sha: "b255a52a6b53bcc1a9361ae746dde2c5d5fb9132", date: "2019-11-27 13:44:27 +0000", description: "Add env_vars key to all components", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 109, insertions_count: 3752, deletions_count: 1697}, - {sha: "8fac7296e4c17969c08841a58ce7b64f2ede5331", date: "2019-11-27 18:41:49 +0000", description: "Fix rate_limit and retry option names", pr_number: 1270, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 20, insertions_count: 625, deletions_count: 616}, - {sha: "0a06803a89aa3ca570edf72834abac52db94a0b8", date: "2019-11-27 18:51:15 +0000", description: "Fix variable field names", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 25, insertions_count: 79, deletions_count: 832}, - {sha: "e50767b1560288cb862bf9f933a4cc92e7b329a6", date: "2019-11-27 19:10:37 +0000", description: "Fix variable field names", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 26, insertions_count: 95, deletions_count: 72}, - {sha: "79f28aa15f26d73175467fb621ed87bf34240991", date: "2019-11-27 19:38:05 +0000", description: "Fix config examples category name", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 46, insertions_count: 894, deletions_count: 2210}, - {sha: "ae90038afb5d89eb080bd7c760ce3a4f1c67f219", date: "2019-11-27 19:52:42 +0000", description: "Fix example categories", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 24, insertions_count: 53, deletions_count: 70}, - {sha: "b3554b16fa333727e21c8eaae87df4533e217c96", date: "2019-11-28 10:32:52 +0000", description: "Build .deb packages for all musl targets", pr_number: 1247, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 17, insertions_count: 500, deletions_count: 274}, - {sha: "10de21ba24814324547d53553ed098742279f935", date: "2019-11-28 15:43:22 +0000", description: "Typo", pr_number: 1273, scopes: [], type: "docs", breaking_change: false, author: "Dan Palmer", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "9c531ca1e734234e187d82b76912bf5dfa188742", date: "2019-11-28 10:51:03 +0000", description: "Remove console.log", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 0, deletions_count: 1}, - {sha: "c815d27773da3acd0272ef009270f772a3103791", date: "2019-11-29 15:29:25 +0000", description: "Add a unit test guide", pr_number: 1278, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 6, insertions_count: 253, deletions_count: 0}, - {sha: "7b5a7f322bffdbd7638791e32effa848deb1fdea", date: "2019-11-29 12:01:14 +0000", description: "Add topology section", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 90, deletions_count: 23}, - {sha: "ecdb56f5f49920353e5696e936f2d711d6881bbd", date: "2019-11-29 13:59:31 +0000", description: "Default to centralized topology", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "1dc6e303079bf6a9bb9802fe108e77edf0b0fd83", date: "2019-11-29 14:21:42 +0000", description: "Fix rounded tabs", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 33, deletions_count: 13}, - {sha: "4e98b8321cd334d780a5388bd848d83cb677003c", date: "2019-11-30 00:15:17 +0000", description: "Increase CI output timeout", pr_number: 1272, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 8, deletions_count: 1}, - {sha: "7dd271e9102d2a2eb2016f8d735c8d9710966210", date: "2019-11-30 00:37:24 +0000", description: "Delete unused OpenSSL patch", pr_number: 1282, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 0, deletions_count: 24}, - {sha: "32e5bfc2ff07ce0dddf817d5b64a2b04cc40f9ab", date: "2019-11-29 22:11:41 +0000", description: "Run nightly builds at 12am UTC", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "62992492de9c21e8a59464696b2ba226c50b82f0", date: "2019-11-30 01:14:25 +0000", description: "Set up redirects for x86_64-unknown-linux-gnu archives", pr_number: 1284, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 23, deletions_count: 5}, - {sha: "5fa10916882cd07ee6c6726be10227b321f5880c", date: "2019-11-30 01:42:23 +0000", description: "Build multi-arch Docker images", pr_number: 1279, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 9, insertions_count: 151, deletions_count: 122}, - {sha: "5c6942f8e52971ec3eb95750d2a79574cb0c12bd", date: "2019-11-30 02:06:35 +0000", description: "Use `sidebar_label` as subpage title if possible", pr_number: 1283, scopes: ["website"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 5, insertions_count: 17, deletions_count: 11}, - {sha: "4058ef356271a8276ddd6b1f41933d25ddd585a6", date: "2019-11-30 02:06:47 +0000", description: "Simplify platform names in \"downloads\" section", pr_number: 1285, scopes: ["website"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 8, deletions_count: 8}, - {sha: "42c2a1f75e639ff29da5419cff29848fa3163d01", date: "2019-11-30 10:13:42 +0000", description: "Run nightly builds at 11am UTC", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "8f271aee3b9873b10a68ab5c747c4e895347acca", date: "2019-11-30 13:15:43 +0000", description: "Remove extra `setup_remote_docker` step from `relase-docker`", pr_number: 1287, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 0, deletions_count: 2}, - {sha: "643716654c9049e18c057d9e88de4e78f566d983", date: "2019-11-30 13:15:56 +0000", description: "Fix S3 release verification", pr_number: 1286, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "08a297961a767d798ebb244a10baf05b318272e7", date: "2019-11-30 18:26:36 +0000", description: "Upgrade Docker on the step in which it is used", pr_number: 1288, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 22, deletions_count: 22}, - {sha: "70965d8e6d0c0d850faa86fb674987a107df9b93", date: "2019-11-30 16:14:02 +0000", description: "Cleanup installation docs", pr_number: 1289, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 32, insertions_count: 783, deletions_count: 618}, - {sha: "469671dc457f867cee8bab247b6529026e7ae4ca", date: "2019-12-01 11:21:05 +0000", description: "Update to docaurus 2.0.0-alpha.37", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 242, deletions_count: 229}, - {sha: "06a864b106bc2233c5d5a8ba78f045def8a937f6", date: "2019-12-01 11:39:36 +0000", description: "Group downloads by os", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 8, insertions_count: 62, deletions_count: 10}, - {sha: "8ee38009da9bcd41444e9cf2ed48683aa1870a1a", date: "2019-12-01 13:15:28 +0000", description: "Rename raspberry-pi to raspbian", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 10, insertions_count: 44, deletions_count: 25}, - {sha: "73dc9d55803733c460f42ce38e09b8c7c8344680", date: "2019-12-01 13:29:57 +0000", description: "Fix responsive styling on homepage", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 9, deletions_count: 1}, - {sha: "3fc6196a6b6e2df7c76e9d5924377a2054dcb5e2", date: "2019-12-01 23:44:37 +0000", description: "Fix accessing custom front-matter in docs", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 13, deletions_count: 5}, - {sha: "a6668b0c1db009b537c989ef95d8c4e616440cb9", date: "2019-12-02 09:58:25 +0000", description: "Build RPM packages for ARM", pr_number: 1292, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 5, insertions_count: 220, deletions_count: 62}, - {sha: "62f9db5ba46a0824ed0e979743bc8aaec8e05010", date: "2019-12-02 08:27:53 +0000", description: "Refactor the sinks' request_* configuration", pr_number: 1187, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 12, insertions_count: 321, deletions_count: 338}, - {sha: "cbac5010444357dae078b299991304ca8055889c", date: "2019-12-02 19:23:02 +0000", description: "Fix Raspbian id capitalization", pr_number: 1295, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "a0eec9935a8a2d0409e23c6cb23cba807b16a7df", date: "2019-12-02 22:44:56 +0000", description: "Run `package-rpm*` jobs explicitly", pr_number: 1298, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 3, deletions_count: 0}, - {sha: "5ae3036f0a0de24aeeb92135621c877428bcfa02", date: "2019-12-03 11:28:27 +0000", description: "Fix section links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 9, insertions_count: 24, deletions_count: 16}, - {sha: "1f52116c3c40dcc439bd8f32c9cdf2a0a3b197d7", date: "2019-12-02 11:36:52 +0000", description: "Fix browse downloads link", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "bd865b06bc2ff68edb3a131a574572b88fcc8b87", date: "2019-12-03 12:29:30 +0000", description: "Add slugify method to mimic Docusaurus hashing logic for links", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 7, insertions_count: 23, deletions_count: 11}, - {sha: "9d38c48a10b9d3deb8d35b6e97002cab4a03b885", date: "2019-12-03 12:33:09 +0000", description: "Fix buffers and batches hash link", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 10, insertions_count: 20, deletions_count: 20}, - {sha: "0c0f07265ad4020d68116c14113d917499ca862f", date: "2019-12-03 13:30:43 +0000", description: "Use the Rust regex tester, closes #634", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "d962fa60fd1e71cd2c9c02fc4e1ead2fd0a5086c", date: "2019-12-03 13:35:39 +0000", description: "Fix example regex", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 6, insertions_count: 16, deletions_count: 16}, - {sha: "17a27b315b4e65f687adb0d64d2b6c5cf8890a95", date: "2019-12-03 15:55:03 +0000", description: "Pass `TaskExecutor` to transform", pr_number: 1144, scopes: ["topology"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 25, insertions_count: 67, deletions_count: 35}, - {sha: "cf95723d77ba4bd3fa819dd45fa7676bd1a7d19d", date: "2019-12-03 17:28:50 +0000", description: "Add community page with mailing list", pr_number: 1309, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 13, insertions_count: 271, deletions_count: 223}, - {sha: "c912f16f1cbd924db1e800498dbfb240e9211212", date: "2019-12-03 17:45:00 +0000", description: "Responsive styling for community page", pr_number: null, scopes: ["wensite"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 14, deletions_count: 2}, - {sha: "4c1718431e887c9a9f58392428cde6c2a33e5070", date: "2019-12-03 18:04:41 +0000", description: "Fix slide out main nav menu link labels", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 7, deletions_count: 5}, - {sha: "14ebf42842d90f937df7efa88f7acea1bb1859e8", date: "2019-12-03 18:53:47 +0000", description: "Re-add components list", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 5, insertions_count: 207, deletions_count: 14}, - {sha: "6e60b2fab0de568ef47c5afdd606a60c3069531d", date: "2019-12-03 21:44:27 +0000", description: "Use ${ENV_VAR} syntax in relavant examples", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 9, insertions_count: 33, deletions_count: 29}, - {sha: "fcf6356f11ac7d80a5c378aeceabd6cf72168ef1", date: "2019-12-04 12:21:43 +0000", description: "Performance optimisations in metric buffer", pr_number: 1290, scopes: ["metric data model"], type: "perf", breaking_change: false, author: "Alexey Suslov", files_count: 2, insertions_count: 165, deletions_count: 9}, - {sha: "690d798e8cc4d08457b5ad3dd3fcee4da7fea4b3", date: "2019-12-03 23:24:55 +0000", description: "Fix nav width", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 10, deletions_count: 5}, - {sha: "53d2a9ca0ff85c8d39cf9b312265c859f079c170", date: "2019-12-04 10:56:01 +0000", description: "Update README with new links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ben Johnson", files_count: 3, insertions_count: 8, deletions_count: 6}, - {sha: "00e21e83c54d2ca5e0b50b3b96a3390e761bf2dd", date: "2019-12-04 13:23:44 +0000", description: "Add `SinkContext` to `SinkConfig`", pr_number: 1306, scopes: ["topology"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 23, insertions_count: 146, deletions_count: 113}, - {sha: "52e4f176f62c305a6d0adcf6fa1f5b08bd2466dc", date: "2019-12-04 19:18:34 +0000", description: "Initial `new_relic_logs` sink implementation", pr_number: 1303, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Ashley Jeffs", files_count: 13, insertions_count: 1166, deletions_count: 9}, - {sha: "4c1d8ceaef63fc9f73e5e568773bf569f6c2f460", date: "2019-12-04 19:48:24 +0000", description: "Fix NR build signature", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 12, deletions_count: 11}, - {sha: "772672e65920de3c0f13fa5b86c9c428b2d3fbfb", date: "2019-12-04 15:29:04 +0000", description: "Add map to ServiceBuilder and s3", pr_number: 1189, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 4, insertions_count: 346, deletions_count: 182}, - {sha: "59fd318f227524a84a7520bbae004d2c75156365", date: "2019-12-04 22:34:43 +0000", description: "Rename `datadog` sink to `datadog_metrics`", pr_number: 1314, scopes: ["datadog_metrics sink"], type: "fix", breaking_change: true, author: "Alexey Suslov", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "e76083548a2d46664acd67a8e40f1835614d94c5", date: "2019-12-04 15:39:15 +0000", description: "Sync with new toggle changes", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 166}, - {sha: "5822ee199bafbc2558491d5ba9682b8f10ed95d0", date: "2019-12-05 09:31:01 +0000", description: "Send aggregated distributions to Datadog", pr_number: 1263, scopes: ["datadog_metrics sink"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 1, insertions_count: 231, deletions_count: 0}, - {sha: "e776d3a404810935810983caf888aa86138b448b", date: "2019-12-05 13:28:26 +0000", description: "Test & validate subcommands without args target default path", pr_number: 1313, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 3, insertions_count: 32, deletions_count: 7}, - {sha: "58d6e976cf81f2175e7fd6cc6d4c85c9e2bc88eb", date: "2019-12-05 17:51:10 +0000", description: "Fix statsd binding to loopback only", pr_number: 1316, scopes: ["statsd sink"], type: "fix", breaking_change: false, author: "Alexey Suslov", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "324012b74c8879b1185ace3c5c36d9170222597e", date: "2019-12-06 14:38:03 +0000", description: "Fix multiple sources test", pr_number: 1322, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 5, deletions_count: 5}, - {sha: "dc21766356a422e694287bff1b70fde8a49e74af", date: "2019-12-06 15:54:01 +0000", description: "Document `drop_field`", pr_number: 1323, scopes: ["json_parser transform"], type: "docs", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 42, deletions_count: 2}, - {sha: "8d15fdd267df44ac9f5079e7b6a5a2bc122b9e1f", date: "2019-12-07 10:53:05 +0000", description: "Update to docusaurus 2.0.0-alpha.39", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 4, insertions_count: 198, deletions_count: 207}, - {sha: "2c6982502c75409806da7d74a4cc019f2c60ed08", date: "2019-12-09 13:11:56 +0000", description: "Add \"default-{musl,msvc}\" features", pr_number: 1331, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 7, insertions_count: 93, deletions_count: 29}, - {sha: "fb7f1f5743e464294c62d11e1be0d26e309f2061", date: "2019-12-09 11:06:57 +0000", description: "Fix validating environment title", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "8cb9ec9406315d87c10f297da115ced93c2418f1", date: "2019-12-09 15:35:33 +0000", description: "Use LLVM-9 from the distribution repository", pr_number: 1333, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 31, deletions_count: 87}, - {sha: "a68c9781a12cd35f2ee1cd7686320d1bd6e52c05", date: "2019-12-09 13:26:38 +0000", description: "Initial `splunk_hec` source implementation", pr_number: null, scopes: ["new source"], type: "feat", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 1142, deletions_count: 44}, - {sha: "9c53a5dd65c4711c58a5afede4a23c048c4bed4d", date: "2019-12-09 17:00:16 +0000", description: "Use LLVM from an archive instead of Git", pr_number: 1334, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 33, deletions_count: 63}, - {sha: "86abe53556fd7647717ddfecc21834f87adaa62b", date: "2019-12-09 10:57:26 +0000", description: "Update `shiplift 0.6`", pr_number: 1335, scopes: ["docker source"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 7, deletions_count: 7}, - {sha: "4b93936dc588438a3023a6d86075ca75a33921f3", date: "2019-12-09 16:04:27 +0000", description: "Rewrite getting started guide.", pr_number: 1332, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 76, deletions_count: 54}, - {sha: "5461ff419b9587264bbce823af227e1a3007a578", date: "2019-12-09 16:05:58 +0000", description: "Update contribution guide for docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 53, deletions_count: 18}, - {sha: "285b967ab228a94b4a140803cec38b71bb59ad14", date: "2019-12-09 11:06:50 +0000", description: "Add missing rate limited log", pr_number: 1336, scopes: ["grok_parser transform"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "137c51de9122c32cbbfba983f3068b6df1d6a68e", date: "2019-12-10 09:34:53 +0000", description: "Edit getting started guide", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "5c2c0af26554258d746051a5861ce9aaa869a8be", date: "2019-12-10 16:42:08 +0000", description: "Fix unit test spec rendering", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 5, insertions_count: 43, deletions_count: 39}, - {sha: "da89fa9fd801ff6f87412fb78d686936115b241c", date: "2019-12-11 17:09:12 +0000", description: "Build `msi` package for Vector", pr_number: 1345, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 23, insertions_count: 780, deletions_count: 44}, - {sha: "8561d42eba3c5d30d57ab47c6454f19978c5ea4b", date: "2019-12-11 15:56:33 +0000", description: "Remove sleeps from topology tests", pr_number: 1346, scopes: ["testing"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 1, deletions_count: 16}, - {sha: "8c991293ee2cd478fc639e96e6c27df794a0c5ec", date: "2019-12-11 16:30:27 +0000", description: "Detect and read gzipped files", pr_number: 1344, scopes: ["file source"], type: "feat", breaking_change: false, author: "Luke Steensen", files_count: 7, insertions_count: 127, deletions_count: 21}, - {sha: "cbba6f180a583d4d7f236b64b77fdd6406bc6c63", date: "2019-12-12 15:49:31 +0000", description: "Put `etc` directory only to Linux archives", pr_number: 1352, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 11, deletions_count: 11}, - {sha: "1f9b9cf6eddf27557bcaa6a1e1139da0137dcb4c", date: "2019-12-12 16:22:49 +0000", description: "Allow passing features to `make build`", pr_number: 1356, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "779d727fb49c907d6babbd8ed48e0db2cec14604", date: "2019-12-12 16:53:31 +0000", description: "Compress release archives with `gzip -9`", pr_number: 1294, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "f8ad1b5a0edcf214865e4ba1133b3a0df1465905", date: "2019-12-12 19:11:22 +0000", description: "Add notices for OpenSSL to the license for binary distributions", pr_number: 1351, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 22, deletions_count: 1}, - ] -} diff --git a/docs/reference/releases/0.7.0.cue b/docs/reference/releases/0.7.0.cue deleted file mode 100644 index 43a4de7e1992b..0000000000000 --- a/docs/reference/releases/0.7.0.cue +++ /dev/null @@ -1,176 +0,0 @@ -package metadata - -releases: "0.7.0": { - date: "2020-01-22" - codename: "The Great Omelet" - - whats_next: [ - ] - - commits: [ - {sha: "fba1b3e0676f6abc1b1ed5178a4972cd62b7fb01", date: "2019-12-12 11:24:50 +0000", description: "Fix handling of locally-installed bundles", pr_number: 1354, scopes: [], type: "docs", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "e46e4601c28862e211f518a592152146be9f35ad", date: "2019-12-12 12:28:17 +0000", description: "Rename Alex to Alexander", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "cb42cd5b124fc3e5b3950eccd6e94d521d9d23e5", date: "2019-12-12 12:33:46 +0000", description: "Fix broken footer links", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 9, deletions_count: 5}, - {sha: "0be789eb87539a2ea7983ccc5f0c0a69a839b1a3", date: "2019-12-12 12:34:11 +0000", description: "Redirect legacy /mailing_list path", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 8, deletions_count: 0}, - {sha: "edad28226bfc9aec44e07edb0e6d8fdc73ab663b", date: "2019-12-12 12:47:18 +0000", description: "Fix release-github", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 5, deletions_count: 0}, - {sha: "d11da73b6e83411b3c925575a045358c764c0824", date: "2019-12-12 13:30:10 +0000", description: "Fix release-github", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ben Johnson", files_count: 1, insertions_count: 7, deletions_count: 3}, - {sha: "a2020d9ac1fc3bd0ba44a5c22f8a2ad0c6b00d5b", date: "2019-12-12 14:03:10 +0000", description: "Add output fields to `geoip` transform docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "bradybot", files_count: 18, insertions_count: 235, deletions_count: 22}, - {sha: "15881bd03656de0abdeb875c0c452ed40a1d7f9b", date: "2019-12-12 22:57:26 +0000", description: "Fix `release-github` job", pr_number: 1359, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 5, deletions_count: 7}, - {sha: "70af6520c302ecb9c35a32f043803c7132d0d60e", date: "2019-12-12 22:59:09 +0000", description: "Fix typo", pr_number: 1360, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "261a0ef36e32c79fe9f8622ac3e23258e530668c", date: "2019-12-12 23:11:13 +0000", description: "Document Docker build", pr_number: 1358, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 186, deletions_count: 9}, - {sha: "67d4680b6313d1fb6c67450441ce781aa46dca0c", date: "2019-12-12 19:15:36 +0000", description: "Fix blog responsive styling issues", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "bradybot", files_count: 3, insertions_count: 13, deletions_count: 9}, - {sha: "1610637a3884dd56af0b217dd496b9a5542c9a6f", date: "2019-12-12 19:49:13 +0000", description: "Fix link typo in footer", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "bradybot", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "df7f478873a87433e5e547b3ced19cf28772c4e3", date: "2019-12-13 04:44:40 +0000", description: "Inital `kubernetes` source implementation ", pr_number: 893, scopes: ["new source"], type: "feat", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 11, insertions_count: 1199, deletions_count: 17}, - {sha: "c4d7544eab196b573418340445acbc88ac17acf3", date: "2019-12-12 22:50:30 +0000", description: "Bump version to 0.7.0", pr_number: 1364, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "cdd7383e8e4060e2ea63c079270cff337790aee5", date: "2019-12-13 14:48:42 +0000", description: "Fix config file location", pr_number: 1367, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "9bf1f1cd89264db2ddfb6a7b4dbb33a30b4a437d", date: "2019-12-13 13:38:22 +0000", description: "Fix value types link", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 3, deletions_count: 3}, - {sha: "46a792408a6e2f82e26c8adfa606e62918552f61", date: "2019-12-13 09:01:25 +0000", description: "make truncation utf8-aware", pr_number: 1361, scopes: ["regex_parser transform"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 13, deletions_count: 1}, - {sha: "1496c1cf219ff3d1f2a84909d19e43afad4852c5", date: "2019-12-13 15:48:28 +0000", description: "Fix bool default values in spec", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 10, insertions_count: 33, deletions_count: 31}, - {sha: "5ab0e260a5f0dd8d8d46795b64683563d0e81c87", date: "2019-12-13 15:34:00 +0000", description: "Improve blog markup", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 8, insertions_count: 59, deletions_count: 32}, - {sha: "8859769a4b48311c2511c8b255ad44c44f4b17bb", date: "2019-12-13 16:56:05 +0000", description: "updated version in Cargo.lock", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "2de0b0677319a9e04fe80aa39ebfe7bd8de84053", date: "2019-12-13 22:45:21 +0000", description: "Remove columnar formats section in aws_s3 sink", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 0, deletions_count: 11}, - {sha: "894c480cc14145cdf2fd3c8ec6180a751f3f64b5", date: "2019-12-14 11:18:40 +0000", description: "Fix release description", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 8, insertions_count: 55, deletions_count: 41}, - {sha: "3c39da88208c96ffeb92aadd9845e925e7bf4bf6", date: "2019-12-14 11:20:21 +0000", description: "Downcase release description", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "6fffabeaacea11be9c290b6b9dcd05c16daf4376", date: "2019-12-15 11:20:32 +0000", description: "Add opengraph image", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 3, deletions_count: 0}, - {sha: "7da81767048c938f829dc90956751c2dbeca4871", date: "2019-12-15 11:29:33 +0000", description: "Fix open-graph image name", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 1, deletions_count: 1}, - {sha: "7c7b2c078ba025df99d6f9d49e4bf3a02b11c22f", date: "2019-12-15 21:30:36 +0000", description: "Fix performance comparison link", pr_number: 1369, scopes: ["website"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 21, insertions_count: 55, deletions_count: 54}, - {sha: "a9d09d466ff9b76dbe573448df890c8ba7e68082", date: "2019-12-15 14:23:01 +0000", description: "Update readme with new release links", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 15, insertions_count: 122, deletions_count: 22}, - {sha: "371e4d6667dec15578267babb31780466af6d167", date: "2019-12-15 14:30:25 +0000", description: "Add new post to readme", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 5, insertions_count: 42, deletions_count: 4}, - {sha: "4ee339a0e8e828aa1fe51155b202f66e6f713bcd", date: "2019-12-15 14:33:36 +0000", description: "Center new post announcement", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 18, deletions_count: 6}, - {sha: "7252b0901ef936ccf0eb085cbc24c919e3c17a8f", date: "2019-12-16 15:55:44 +0000", description: "Update concepts doc", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 50, deletions_count: 24}, - {sha: "396e2eff21d4accb638aee77658459db73da6612", date: "2019-12-16 20:35:50 +0000", description: "Initial `concat` transform implementation", pr_number: 1271, scopes: ["new transform"], type: "feat", breaking_change: false, author: "foosinn", files_count: 12, insertions_count: 598, deletions_count: 1}, - {sha: "99698fc215a7fcd8304f14a1c49b9a867d6fad6e", date: "2019-12-16 15:56:41 +0000", description: "Add example output", pr_number: null, scopes: ["concat transform"], type: "docs", breaking_change: false, author: "binarylogic", files_count: 90, insertions_count: 605, deletions_count: 764}, - {sha: "cb9fbdb33d6e52284efabb120a4fbe7d5bad5ac4", date: "2019-12-16 15:57:09 +0000", description: "Formalize output data structure", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 10, deletions_count: 0}, - {sha: "0be3b0a4e35df961788579fa7d4f37480d7eda51", date: "2019-12-16 16:00:59 +0000", description: "Re-order guides", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 13, deletions_count: 8}, - {sha: "aada71a3c36434e67fba97ab29a52ffe76a34e34", date: "2019-12-16 16:28:45 +0000", description: "Update links to end with a / to avoid redirects", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 88, insertions_count: 558, deletions_count: 565}, - {sha: "648e28c8ed7c8819f152c67325f7900eb7ab08a9", date: "2019-12-16 16:36:49 +0000", description: "Initial `aws_ec2_metadata` transform implementation", pr_number: 1325, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 15, insertions_count: 1333, deletions_count: 10}, - {sha: "c03853ea1ed1e1bc438ea1acc6c516d182190fb0", date: "2019-12-16 15:56:11 +0000", description: "remove accidentally committed vector.toml", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 0, deletions_count: 17}, - {sha: "34ae27fd6600cc62f65786284ade21f3aa3f47c7", date: "2019-12-16 19:08:19 +0000", description: "Fix builds by updating website dependencies", pr_number: 1379, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 10, insertions_count: 287, deletions_count: 477}, - {sha: "7626e8c1a50e11c2c78b10a015c541c1a817a144", date: "2019-12-16 20:46:24 +0000", description: "Fix broken links", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 58, insertions_count: 52, deletions_count: 77}, - {sha: "f6d97e46cc01ad558e2da2d56d73f1fe4627e04e", date: "2019-12-16 20:50:35 +0000", description: "Remove uncessary #! link in sidebar", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 5}, - {sha: "b78cd10f8627cb4cd51d8691e7f76de41c542a27", date: "2019-12-16 23:47:18 +0000", description: "Fix website redirect and meta descriptions", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 94, insertions_count: 307, deletions_count: 368}, - {sha: "0d1ca551b058f38c21ef44793dc252dd95a4f8a0", date: "2019-12-16 23:52:30 +0000", description: "Add more meta descriptions to pages that were missing it", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 8, insertions_count: 7, deletions_count: 11}, - {sha: "981b41cd1a324045aecdbc2f20b288a14f78599e", date: "2019-12-17 12:30:10 +0000", description: "Fix config path for MSI package", pr_number: 1378, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 6, deletions_count: 6}, - {sha: "d92220bb361236cb3073ac1bdaab3037f39479be", date: "2019-12-17 14:34:09 +0000", description: "Update metric docs according to new data model", pr_number: 1268, scopes: [], type: "docs", breaking_change: false, author: "Alexey Suslov", files_count: 17, insertions_count: 774, deletions_count: 441}, - {sha: "9d2ab35c4ed0f4c5a233473c31342168f2fd6561", date: "2019-12-17 12:38:49 +0000", description: "Update data model pages", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 4, insertions_count: 47, deletions_count: 24}, - {sha: "671dfe06db04846d1858d166b6f3c802a4fed395", date: "2019-12-17 17:23:18 +0000", description: "Update statsd docs", pr_number: 1381, scopes: [], type: "docs", breaking_change: false, author: "Alexey Suslov", files_count: 2, insertions_count: 12, deletions_count: 8}, - {sha: "b454e32da034af8d44005dde3028d0e51c2b6259", date: "2019-12-17 10:42:56 +0000", description: "Remove unneeded remove clones", pr_number: 1375, scopes: [], type: "chore", breaking_change: false, author: "Evan Cameron", files_count: 21, insertions_count: 75, deletions_count: 80}, - {sha: "3e741aeaf6dec363ca2d71679d92685b57cfb0d4", date: "2019-12-17 17:17:21 +0000", description: "Edit guarantees page", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 58, deletions_count: 32}, - {sha: "46e5a1bbaa56ddc7983320dc9960b2fd8703c2f6", date: "2019-12-17 12:40:51 +0000", description: "Fix spelling mistake", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "4c2c85363197ccb5f95d59bb7adce23a14c7a2ab", date: "2019-12-13 11:34:33 +0000", description: "Add custom DNS option", pr_number: 1362, scopes: ["networking"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 8, insertions_count: 157, deletions_count: 123}, - {sha: "f9d4d0665ea2c5c2d57472f722522270354c50f2", date: "2019-12-17 14:31:37 +0000", description: "Add keywords script", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 99, deletions_count: 0}, - {sha: "6546d5b7dc80493ad6017ab250efa06abccd0dc8", date: "2019-12-17 14:44:46 +0000", description: "Fix option linking format", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 39, insertions_count: 215, deletions_count: 180}, - {sha: "bc50aa32b6dadcb28df98fee2220636754da3629", date: "2019-12-17 14:53:00 +0000", description: "Reorganize metrics data model", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 245, deletions_count: 129}, - {sha: "a8b6f2deb64153283a3bd584e92244298b85a7a1", date: "2019-12-17 20:32:39 +0000", description: "Fix more unecessary redirect links", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 14, insertions_count: 42, deletions_count: 42}, - {sha: "71972ada1c815169cefbf25ecc1d8b626bfba4f1", date: "2019-12-17 20:37:48 +0000", description: "Update Vector announcement post to use h2s", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "095ef6605da1f2b31a51706903b5a553e4a64f57", date: "2019-12-17 20:45:23 +0000", description: "Drop use of docs.vector.dev", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 13, insertions_count: 23, deletions_count: 28}, - {sha: "05efdd1e63f9adb5dc8e0ba6bba7c946ca8921d5", date: "2019-12-18 15:00:40 +0000", description: "Fix configuration example", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 6, insertions_count: 85, deletions_count: 41}, - {sha: "14a76afee831fabac0928f5034d2af214b7128fa", date: "2019-12-18 19:35:59 +0000", description: "Handle interruptions on Windows", pr_number: 1219, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 9, deletions_count: 6}, - {sha: "bdd9139a6b84b669d3b31b54ed766edd9317bc88", date: "2019-12-18 11:21:42 +0000", description: "Fix more links that redirect", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "3b333f073426ec0e975f10b37b52ef0b3f4eeae4", date: "2019-12-18 13:10:56 +0000", description: "Link link and metric tags to their respective data model pages", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 6, deletions_count: 6}, - {sha: "f499ddcde59f76f5ad6bea4c6ec04f0bbc5292c7", date: "2019-12-18 13:35:39 +0000", description: "Initial `gcp_pubsub` sink implementation", pr_number: 1308, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 18, insertions_count: 1542, deletions_count: 11}, - {sha: "95148c6ba0059c7201c793332d17d429ea6020e0", date: "2019-12-18 20:00:41 +0000", description: "Make the pass_list field optional", pr_number: 1384, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 3, insertions_count: 1, deletions_count: 2}, - {sha: "ba8737d6c78e9b0bd05a5ac4b335531fcef946dc", date: "2019-12-18 23:49:17 +0000", description: "Add aliases for latest major and minor versions", pr_number: 1386, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 14, insertions_count: 54, deletions_count: 41}, - {sha: "f3a98c49bab6c0e1ce897e2b2d9fe4603505953e", date: "2019-12-18 20:02:29 +0000", description: "Improve page titles", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 110, insertions_count: 349, deletions_count: 203}, - {sha: "2807fe84df547481685c9b3043b381d6d86708a7", date: "2019-12-18 20:06:42 +0000", description: "Fix GCP pubsub title", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 7, deletions_count: 6}, - {sha: "179c80dbacc361be86d8057cfdcef65e8448a5e5", date: "2019-12-18 20:13:07 +0000", description: "Add Google service provider to new gcp_pubsub sink", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 12, insertions_count: 10, deletions_count: 491}, - {sha: "d31a1c1d6e39f2636759b8d1ac5bd9bdf59a47d7", date: "2019-12-18 22:05:05 +0000", description: "Stop testing with ext host", pr_number: null, scopes: ["splunk_hec sink"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 9, deletions_count: 1}, - {sha: "9500d7761f00b2feac0a209bf023711631047d99", date: "2019-12-19 16:06:34 +0000", description: "Use Bundler 2.0.x for the checker and releaser images", pr_number: 1392, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "3dcba4ff06a7361357d4f628464312055886524d", date: "2019-12-19 12:25:38 +0000", description: "Upgrade to rustc 1.40.0", pr_number: 1395, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 9, deletions_count: 5}, - {sha: "c19fa9fa4b9a0811172e7aec459f2d7d2c5b96f4", date: "2019-12-19 15:23:01 +0000", description: "Add custom dns for `vector` and `tcp` sinks", pr_number: 1400, scopes: ["networking"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 38, deletions_count: 10}, - {sha: "8cd7f2a1da1be9113d3c6d9588b1d77428563866", date: "2019-12-19 17:03:21 +0000", description: "Fix https rusoto connections", pr_number: 1396, scopes: ["networking"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "828b50c8fb2eb0b4259ef38a306bbe4c6d6071b9", date: "2019-12-19 10:58:11 +0000", description: "Update components meta tags to be more descriptive;", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "dda55bafaffdbbe282920ae68c02c9340bf82cab", date: "2019-12-19 16:16:47 +0000", description: "Add \"How It works\" to `gcp_pubsub` docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 85, deletions_count: 11}, - {sha: "518ba0ee5c6b944c2056748e9aff29e0b5b05423", date: "2019-12-19 16:59:54 +0000", description: "Initial `aws_kinesis_firehose` sink", pr_number: 1388, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Luke Steensen", files_count: 17, insertions_count: 1280, deletions_count: 10}, - {sha: "b76ae43e1a911435d3acca210624530fbbd60066", date: "2019-12-20 11:52:06 +0000", description: "Add getting started button to about page", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 12, deletions_count: 6}, - {sha: "34fadad61caad363adb4090aa22a89415db235f4", date: "2019-12-20 16:56:08 +0000", description: "Fix field names in regex example", pr_number: 1405, scopes: [], type: "docs", breaking_change: false, author: "Matthias Endler", files_count: 2, insertions_count: 5, deletions_count: 4}, - {sha: "2019265ac4dd64ae18d782dbf7372123358174c7", date: "2019-12-20 12:04:04 +0000", description: "Update healtchecks to use resolver", pr_number: 1403, scopes: ["networking"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 5, insertions_count: 80, deletions_count: 48}, - {sha: "9b6ebb92bc3e1e095ffdda222c13e42859e8a2bb", date: "2019-12-20 17:30:35 +0000", description: "Update keywords", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 48, deletions_count: 47}, - {sha: "2b0ff8f3099bced53b45fa097bfbf580600888e9", date: "2019-12-21 13:32:33 +0000", description: "Fix `splunk_channel` option description, closes #1410", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "51189a85a368fbb15a7c8d7d134939a917d66087", date: "2019-12-21 15:03:27 +0000", description: "Vertically center hero on homepage", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 8, deletions_count: 3}, - {sha: "b15dc67401f9af6fa248a8d94ae6a6b581f77803", date: "2019-12-21 15:27:41 +0000", description: "Further improve page descriptions", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 36, insertions_count: 54, deletions_count: 96}, - {sha: "10b38fb7f061d554eeba0181b2681a9b2123dfee", date: "2019-12-22 20:59:59 +0000", description: "Fix `rustup` for `x86_64-pc-windows-msvc` in CI", pr_number: 1414, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 13, deletions_count: 14}, - {sha: "97b47a84a41cd015fa9c61f6d07d7af3913a6e07", date: "2019-12-22 12:59:17 +0000", description: "Add netlify.toml for redirects", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 7, insertions_count: 27, deletions_count: 6}, - {sha: "2f07be6f0052a9a8a284e334ab15448fd7449d57", date: "2019-12-22 13:00:28 +0000", description: "Fix duplicate description keys", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 0, deletions_count: 4}, - {sha: "d563b47f577c0208f1998a5667ceed791afc7add", date: "2019-12-22 13:06:18 +0000", description: "/mailing_list redirect rule should end with a slash", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "d7ae1828ef012ae2069df2e4842a6addff42532b", date: "2019-12-23 19:28:31 +0000", description: "Add scripts/signoff-git-hook.sh", pr_number: 1420, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 28, deletions_count: 0}, - {sha: "48e6f4c9bf988fd942c6c271133b959382ef3021", date: "2019-12-23 10:50:12 +0000", description: "Add note about Syslog3164 not being supported", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 26, deletions_count: 12}, - {sha: "81829da1d1828d2ee4a223ebba3b4a36119aae19", date: "2019-12-23 12:49:45 +0000", description: "Add contact and press sections", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 21, insertions_count: 460, deletions_count: 38}, - {sha: "207aabf4f29a75d99d8b5e82867fd6b63c4d5424", date: "2019-12-23 13:00:19 +0000", description: "Add Vector icon", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 29, deletions_count: 0}, - {sha: "48e6d16012cc2f01542d39f9d9fcece8bffe211c", date: "2019-12-23 13:03:27 +0000", description: "Fix typo", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "fae036ebcb4d2b586bf2976e713f4d7391f0f705", date: "2019-12-23 19:00:36 +0000", description: "Fix mailinglist form styling", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 7, deletions_count: 1}, - {sha: "09d815ddd0f88f6c18672ced8b28545f97f708bb", date: "2019-12-24 10:42:21 +0000", description: "Send min for distributions", pr_number: 1422, scopes: ["datadog_metrics sink"], type: "enhancement", breaking_change: false, author: "Alexey Suslov", files_count: 1, insertions_count: 8, deletions_count: 6}, - {sha: "49cf60eee59521348cc3438967c47f499f33fac6", date: "2019-12-24 19:02:06 +0000", description: "Accept Into<...> values at LogEvent::insert", pr_number: 1419, scopes: ["log data model"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 37, insertions_count: 242, deletions_count: 410}, - {sha: "e4e83ee5c5ecc82aa4d180a6a7f376670ee482be", date: "2019-12-25 10:57:42 +0000", description: "Update to docusaurus 2.0.0-alpha.40", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 13, insertions_count: 641, deletions_count: 508}, - {sha: "640503df5439b3dc9d5ffa17fa36d7c3b83200b2", date: "2019-12-26 22:37:24 +0000", description: "Remove duplicated line from the installation docs ", pr_number: 1438, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 2, deletions_count: 15}, - {sha: "1db14e77a17a534a991708b942eb1e3c4b067331", date: "2019-12-26 15:14:01 +0000", description: "Add #vectordev hashtag", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 3, deletions_count: 4}, - {sha: "62b4e91e6bca6b33019b5c6143f0e594e1da9db9", date: "2019-12-27 16:13:21 +0000", description: "Check for EOLs and trailing spaces in CI", pr_number: 1425, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 69, insertions_count: 617, deletions_count: 545}, - {sha: "9988918f4ea20c2edaee4d6afcd2c73d41c8d358", date: "2019-12-27 16:34:13 +0000", description: "Add .editorconfig", pr_number: 1421, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 14, deletions_count: 0}, - {sha: "2a2c171ebb974757037cc3415e8002a275c96d7e", date: "2019-12-27 20:43:38 +0000", description: "Ensure that all files are checked by `check-style.sh`", pr_number: 1441, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 266, insertions_count: 486, deletions_count: 480}, - {sha: "3fe52dd153d453a7c1d3f488157c73de4850a67d", date: "2019-12-28 10:59:44 +0000", description: "Fix scrolling issue when mobile slide out nav closes", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 27, deletions_count: 2}, - {sha: "a4e47e2dd090e4121b6051d7f372821a6aab4b3d", date: "2019-12-28 12:26:49 +0000", description: "Fix broken release notes links, closes #1452", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 7, deletions_count: 7}, - {sha: "265f5bdd62ddf5491626aa7118f81cc36e47fa82", date: "2019-12-28 13:23:27 +0000", description: "Fix badge spacing on changelog", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 0, deletions_count: 1}, - {sha: "ba50491c5fb020c50326ee9ba6a6e9b44b900016", date: "2019-12-28 13:44:18 +0000", description: "Allow containers to be flush", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 6, deletions_count: 1}, - {sha: "45e5743ee187a0c9933decea2c2937698a5b41b2", date: "2019-12-29 12:17:50 +0000", description: "Fix `make check-fmt`", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "8a7ffc59f58242a6a2ecbd41aa6a62961da99752", date: "2019-12-31 12:06:29 +0000", description: "Don't ack with zero items", pr_number: 1465, scopes: ["buffers"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 29, deletions_count: 7}, - {sha: "4367ccd73b1151dfe92730c1a016334a7b9fc6b7", date: "2019-12-31 13:02:47 +0000", description: "Update Vector description", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 12, insertions_count: 94, deletions_count: 103}, - {sha: "5a944a5dd0b64592d17383949dd776e8cd9fb8e6", date: "2019-12-31 13:03:54 +0000", description: "Call out event", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "47d6d740d38b735c63c496ac1932ceb0da6f4129", date: "2020-01-03 00:19:22 +0000", description: "Ensure all wildcard examples are shown", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 64, insertions_count: 255, deletions_count: 178}, - {sha: "110175a740531bf24324d431b0b71adf18c01948", date: "2020-01-03 14:40:01 +0000", description: "Fix links in `CONTRIBUTING.md`", pr_number: 1475, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "4700b8fac37586f6b6649b88d3eb074b8530690c", date: "2020-01-03 21:05:45 +0000", description: "Parse additional metadata", pr_number: 1249, scopes: ["kubernetes source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 234, deletions_count: 107}, - {sha: "daa765f407766b54f1469bb5d6dc1c7c9c272ea0", date: "2020-01-03 19:42:26 +0000", description: "Move existing 'tcp' sink into 'socket' sink.", pr_number: 1404, scopes: ["new sink"], type: "feat", breaking_change: true, author: "Spencer T Brody", files_count: 21, insertions_count: 915, deletions_count: 263}, - {sha: "b10d2c56c9b095795af86a5003a8cb0e0e8d1874", date: "2020-01-03 19:45:55 +0000", description: "Merge existing 'tcp' and 'udp' sources into a single 'socket' source", pr_number: 1485, scopes: ["new source"], type: "feat", breaking_change: true, author: "Spencer T Brody", files_count: 27, insertions_count: 1013, deletions_count: 731}, - {sha: "c70b5c426fa5d2155f96284216cc679462fd31d7", date: "2020-01-04 15:41:24 +0000", description: "Provide timestamp", pr_number: 1458, scopes: ["splunk_hec source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 32, deletions_count: 14}, - {sha: "736918231c75ed25c385ad44d3de2a2f8da9953e", date: "2020-01-04 16:55:08 +0000", description: "Add retry logic to `kubernetes source` tests", pr_number: 1413, scopes: ["testing"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 83, deletions_count: 53}, - {sha: "b4dee2a70788de256762f02e2392051120f19278", date: "2020-01-04 12:51:28 +0000", description: "Re-enable buffering reclaim test", pr_number: 1474, scopes: ["buffers"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 18, deletions_count: 13}, - {sha: "25406f63c259d0db5339dc7a24e480bc971a46fc", date: "2020-01-04 12:55:15 +0000", description: "Cleanup `tcp` and `udp` references in favor of the new `socket` source and sink", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 13, insertions_count: 27, deletions_count: 1095}, - {sha: "c1b86db43bda99895d402d1549a977f959e770ff", date: "2020-01-04 13:02:55 +0000", description: "Redirect TCP/UDP components to the new Socket components", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 18, deletions_count: 3}, - {sha: "9657ec9fd25f7a1517bbf5e8ba26351f66b7f897", date: "2020-01-06 21:07:16 +0000", description: "Backoff reads to inactive files", pr_number: 1476, scopes: ["file source"], type: "perf", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 41, deletions_count: 6}, - {sha: "c4acea3f263dded915a04ba71827230ea463a9cd", date: "2020-01-07 14:49:03 +0000", description: "Initial `prometheus` source implementation", pr_number: 1264, scopes: ["new source"], type: "feat", breaking_change: false, author: "Alexey Suslov", files_count: 32, insertions_count: 2363, deletions_count: 409}, - {sha: "ac34024ea3f977be880536d8e612acd34db95abb", date: "2020-01-08 10:02:34 +0000", description: "Update benches and minor cleanup", pr_number: 1487, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 7, insertions_count: 77, deletions_count: 23}, - {sha: "0a11a36f41143f0c7f39096dc7ad19698d70231d", date: "2020-01-09 11:01:16 +0000", description: "Add compiling docs for Windows", pr_number: 1486, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 116, deletions_count: 0}, - {sha: "b0819fdb10cb533482d3f6750e12733db1b7e0ec", date: "2020-01-09 14:31:55 +0000", description: "Verify building of the Nix package", pr_number: 1432, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 6, insertions_count: 100, deletions_count: 1}, - {sha: "a0f5e54e041c7df6df29cb79f7d9e5d282fb1c1f", date: "2020-01-09 12:19:24 +0000", description: "Fix newline style", pr_number: null, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "76686d512e98e0228c65426bffe8f18c1a33ba8f", date: "2020-01-09 19:33:47 +0000", description: "Document `endpoint` parameter for `aws_s3` sink", pr_number: 1497, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 55, deletions_count: 10}, - {sha: "5cfcba654a931b805dc043c327208502e368b535", date: "2020-01-10 19:10:56 +0000", description: "Add `node_modules` to `.gitignore`", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 1, deletions_count: 10}, - {sha: "ed0d50ff853946b6efaeaaf4c0a70b36ecaaf8d1", date: "2020-01-10 19:09:42 +0000", description: "Don't list unused architectures for Raspbian", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 4, deletions_count: 3}, - {sha: "606c08b552e3a6ea3ec6ab81056770cd81039aca", date: "2020-01-10 15:41:21 +0000", description: "Ignore recliam test", pr_number: 1508, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "767f25133cdb024af24bb50c1699b5a05f520c4e", date: "2020-01-10 18:02:35 +0000", description: "Update messaging to follow messaging framework", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 6, insertions_count: 29, deletions_count: 39}, - {sha: "20d903396f49ceaf1f60b07f06f941a42080ad8f", date: "2020-01-10 18:05:01 +0000", description: "Simplify tag line", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "7bd10316457a8d03985ac8eb112934ca632b995f", date: "2020-01-10 18:13:40 +0000", description: "Less words in the tag line", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "1314477e296d1648f64f6d774f7399da879d9c46", date: "2020-01-11 15:27:07 +0000", description: "Add additional container filters", pr_number: 1324, scopes: ["docker source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 5, insertions_count: 217, deletions_count: 40}, - {sha: "04ebc367d7e277a411a402265b18b4d010a8863f", date: "2020-01-11 16:52:21 +0000", description: "Merge fix", pr_number: 1512, scopes: ["docker source"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 4, deletions_count: 4}, - {sha: "657d704011e6af529bdec7fb13358784d81e7326", date: "2020-01-11 22:53:02 +0000", description: "Update metric.md: fix typo", pr_number: 1511, scopes: [], type: "docs", breaking_change: false, author: "Evgenii Terechkov", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "2e1afa9ccd2f1fac0db2833642e0e7145c27e89f", date: "2020-01-12 12:12:49 +0000", description: "Use comma delim server list instead of an array", pr_number: 1502, scopes: ["kafka sink"], type: "chore", breaking_change: true, author: "Lucio Franco", files_count: 4, insertions_count: 16, deletions_count: 19}, - {sha: "b3c39b55b338ed58b38aab76b0c2318f8bd9f1e5", date: "2020-01-12 12:14:53 +0000", description: "Rename `buffer.num_items` to `buffer.max_events`", pr_number: 1495, scopes: ["config"], type: "chore", breaking_change: true, author: "Lucio Franco", files_count: 17, insertions_count: 318, deletions_count: 318}, - {sha: "0d83d412c924b1f1b1766fb11fd3499443644242", date: "2020-01-12 12:55:53 +0000", description: "Rename `basic_auth` to `auth` and unflatten", pr_number: 1494, scopes: ["config"], type: "chore", breaking_change: true, author: "Lucio Franco", files_count: 28, insertions_count: 417, deletions_count: 213}, - {sha: "9b2d7a1d2afd9e6a77bc08aeca37d7cc36493ef8", date: "2020-01-12 13:15:43 +0000", description: "Fix metrics data model typo", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "c517a59a8d37ad8bfa2b77783a522bd227250441", date: "2020-01-12 22:25:21 +0000", description: "Use shiplift's since for filtering logs", pr_number: 1513, scopes: ["docker source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 2}, - {sha: "6345f5fc8ee65a95685daa45ac8f296359130c11", date: "2020-01-12 14:31:30 +0000", description: "Nest `batch_*` and `request_*` sink config options", pr_number: 1493, scopes: ["config"], type: "chore", breaking_change: true, author: "Lucio Franco", files_count: 132, insertions_count: 4106, deletions_count: 3319}, - {sha: "203f3bf103c2d86bf38f96ab445b3ec5f0505f2d", date: "2020-01-12 14:48:51 +0000", description: "Update homepage language", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 22, deletions_count: 19}, - {sha: "d7f736cf0745e5c6d1f791c001d2ff8e3c9b4c65", date: "2020-01-12 14:50:59 +0000", description: "Fix generate failure for metrics typo", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "3617aefe9f213aa8bb1fb22223043e8c7175ec10", date: "2020-01-13 17:05:30 +0000", description: "Run `test-stable` tests using `x86_64-unknown-linux-musl` target", pr_number: 1505, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 21, deletions_count: 54}, - {sha: "d9e9e09bbcf6a611bd872ed51e6d09cde54b56d5", date: "2020-01-13 22:46:00 +0000", description: "Fix tests for NixOS", pr_number: 1522, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "9b104ff066e5b7e1f5766239b82978adffba60cd", date: "2020-01-13 18:08:26 +0000", description: "Clairfy `start_at_beginning`", pr_number: 1523, scopes: ["file source"], type: "docs", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 7, deletions_count: 5}, - {sha: "efec952131366a10b76778b7343958db0122d6dc", date: "2020-01-13 18:50:17 +0000", description: "Use fibonacci instead of fixed backoff", pr_number: 1006, scopes: ["networking"], type: "enhancement", breaking_change: true, author: "Luke Steensen", files_count: 27, insertions_count: 573, deletions_count: 104}, - {sha: "35dcdfed8acad2e92c08f79dfae196d91cacdaf2", date: "2020-01-14 12:50:43 +0000", description: "Set `type` and `inputs` as required fields", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 51, insertions_count: 690, deletions_count: 1421}, - {sha: "560644d4f27c4b8bb245eb0fc9f0b4a88a24fd48", date: "2020-01-14 20:32:14 +0000", description: "Rename `line` field to `message`", pr_number: 1457, scopes: ["splunk_hec source"], type: "enhancement", breaking_change: true, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 33, deletions_count: 5}, - {sha: "f11fedd726b4da2f20e834e24d33e084fd00e7e5", date: "2020-01-15 16:04:11 +0000", description: "Add unix domain socket support to the 'socket` source", pr_number: 1489, scopes: ["socket source"], type: "feat", breaking_change: false, author: "Spencer T Brody", files_count: 8, insertions_count: 335, deletions_count: 101}, - {sha: "e11ba357543b67841b3c38aab214aa29f7d34f49", date: "2020-01-16 13:38:07 +0000", description: "Deprecate `LogEvent::into_value` in favor of `LogEvent::remove`", pr_number: 1528, scopes: ["log data model"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 2, deletions_count: 6}, - {sha: "fe0e43a60b0ccb4dc7980b8b1edfa5e7b074b189", date: "2020-01-16 13:38:21 +0000", description: "Use `.iter()` instead of `.into_iter()` for arrays", pr_number: 1529, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "fff92728c9490824ff9d0ae76669adc901bb5499", date: "2020-01-17 14:32:43 +0000", description: "Remove distinction between explicit and implicit fields", pr_number: 1530, scopes: ["log data model"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 49, insertions_count: 426, deletions_count: 574}, - {sha: "41be43d7ce8ac4d665525bd15bda044d4822c779", date: "2020-01-17 14:59:29 +0000", description: "Switch from libsystemd to piping journalctl", pr_number: 1526, scopes: ["journald source"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 8, insertions_count: 200, deletions_count: 453}, - {sha: "b2cdcdabd4535e4d3c40fd656a1fcbcc37ef8804", date: "2020-01-19 14:09:14 +0000", description: "Homepage language cleanup", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 9, insertions_count: 103, deletions_count: 258}, - {sha: "34735be2dd5f51d94cccca5b7d57219f24e6de11", date: "2020-01-19 14:11:53 +0000", description: "Customize toggle button", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 189, deletions_count: 0}, - {sha: "6758f6a7ff7809c2f2c50137e2db9a005355ac26", date: "2020-01-19 15:37:06 +0000", description: "Add free language", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "b29e72cebcbb4314e4c82e03b88a9f7d2c007d25", date: "2020-01-19 17:34:24 +0000", description: "Add modern language", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 3, deletions_count: 4}, - {sha: "d0aba1b3f4166c490785d50f12674a19277a471a", date: "2020-01-20 14:36:34 +0000", description: "Add a new option for specifying indexed fields to `splunk_hec` sink", pr_number: 1537, scopes: ["splunk_hec sink"], type: "enhancement", breaking_change: true, author: "Alexander Rodin", files_count: 5, insertions_count: 87, deletions_count: 22}, - {sha: "60c18c26e75ad5397a3cd1ef1779534069118181", date: "2020-01-20 12:20:56 +0000", description: "Remove trailing spaces to fix `check-fmt`", pr_number: null, scopes: ["operations"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "16decce8228a483ddac5eef08626bff75886a9df", date: "2020-01-20 15:45:33 +0000", description: "Cleanup \"free\" language", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 7, insertions_count: 31, deletions_count: 21}, - {sha: "73c2d08ac37b1c587059697125451ea23fe23cc4", date: "2020-01-20 16:31:18 +0000", description: "Initial `logfmt_parser` transform impl", pr_number: 1541, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Luke Steensen", files_count: 12, insertions_count: 510, deletions_count: 1}, - {sha: "c2d52993a292650b9413c59f7cb40ba6535852ee", date: "2020-01-20 18:56:16 +0000", description: "add assume_role", pr_number: 1554, scopes: ["aws_cloudwatch_logs sink"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 7, insertions_count: 93, deletions_count: 10}, - {sha: "ccee42734d0c1af89e84d007d539a663b6b87f33", date: "2020-01-20 20:00:25 +0000", description: "Initial `logplex` source implementation", pr_number: 1540, scopes: ["new source"], type: "feat", breaking_change: false, author: "Luke Steensen", files_count: 11, insertions_count: 408, deletions_count: 1}, - {sha: "b290ceb2aee4242834d434a4bd092fe2a0cece3b", date: "2020-01-21 14:11:30 +0000", description: "Remove build and verify steps for non-releases", pr_number: 1558, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 46, deletions_count: 20}, - {sha: "b07f99ea1e3cb39a9f23471684e881a610cc3d36", date: "2020-01-22 00:29:51 +0000", description: "Add PR length guidelines to contrib", pr_number: 1539, scopes: ["docs"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 7, deletions_count: 1}, - ] -} diff --git a/docs/reference/releases/0.7.1.cue b/docs/reference/releases/0.7.1.cue deleted file mode 100644 index 83af900ad5d6c..0000000000000 --- a/docs/reference/releases/0.7.1.cue +++ /dev/null @@ -1,24 +0,0 @@ -package metadata - -releases: "0.7.1": { - date: "2020-01-24" - codename: "" - - whats_next: [ - ] - - commits: [ - {sha: "e5096d0ad09333cdcbf7f7b8fdea71764c61b940", date: "2020-01-22 17:53:08 +0000", description: "Make sorting of blog posts stable", pr_number: 1566, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "ed11b854a21f8f8f4d0b532d2b946ed0d3a91718", date: "2020-01-22 18:00:10 +0000", description: "Add AWS API key for Windows tests in CI", pr_number: 1565, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 5, deletions_count: 1}, - {sha: "e7bd9180249751dcef6299f4836b0a82274ec2f9", date: "2020-01-22 18:00:26 +0000", description: "Pass `CIRCLE_SHA1` environment variable to `release-github` job", pr_number: 1567, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "95373bd03fa70d2bcbcfa9c6b02550bcd65d0623", date: "2020-01-22 11:36:26 +0000", description: "Fix crash when `in_flight_limit` is set to `1`", pr_number: 1569, scopes: ["aws_s3 sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 31, deletions_count: 1}, - {sha: "678be7404a236bb6f5e596d117f8cadd16e5a690", date: "2020-01-22 19:30:47 +0000", description: "Fix error when socket addresses do not use `IPV4` or `IPV6` addresses", pr_number: 1575, scopes: ["socket sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 9, insertions_count: 117, deletions_count: 118}, - {sha: "c7de358cb72d38bc82544ba2c42c01a96be77961", date: "2020-01-23 13:28:37 +0000", description: "Fix `aws_kinesis_firehose` sink healthcheck", pr_number: 1573, scopes: ["aws_kinesis_firehose sink"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 13, deletions_count: 22}, - {sha: "e5a3113f0ddfbcb08c6ce70dda374abbfdbc867d", date: "2020-01-23 14:51:32 +0000", description: "Escape special characters in options descriptions", pr_number: 1580, scopes: ["website"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 26, insertions_count: 53, deletions_count: 53}, - {sha: "e1b6bc834a94066313c2de58e540845476289789", date: "2020-01-23 19:44:22 +0000", description: "Create `vector` user when installing RPM package", pr_number: 1583, scopes: ["rpm platform"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 11, deletions_count: 2}, - {sha: "dc3275705489d55e86d10f609fd5caf090b65f5d", date: "2020-01-23 21:44:23 +0000", description: "Support bug fixing releases", pr_number: 1587, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 18, deletions_count: 5}, - {sha: "8287f0535d1ddd5e6fadaf1368623dbe3d7579b0", date: "2020-01-23 22:26:44 +0000", description: "Add all generated files to the release commit", pr_number: 1588, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "18b2d2f0d3b4f6df22883550dd106c2ec8c051d4", date: "2020-01-23 23:31:55 +0000", description: "Do not require `systemd` as an RPM dependency", pr_number: 1590, scopes: ["rpm platform"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 0, deletions_count: 2}, - {sha: "d9052b84a872f6562dfd0318a6c6c887c92fda34", date: "2020-01-23 23:37:55 +0000", description: "Add `release-push` target to the Makefile", pr_number: 1589, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 30, deletions_count: 0}, - ] -} diff --git a/docs/reference/releases/0.7.2.cue b/docs/reference/releases/0.7.2.cue deleted file mode 100644 index bfe4b303eb250..0000000000000 --- a/docs/reference/releases/0.7.2.cue +++ /dev/null @@ -1,24 +0,0 @@ -package metadata - -releases: "0.7.2": { - date: "2020-01-31" - codename: "" - - whats_next: [ - ] - - commits: [ - {sha: "eee9300712181a6be96f894952bca55290f68947", date: "2020-01-24 09:40:28 +0000", description: "Fix typo", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "e1f71a59ab4d3839297938e5937bb2c60722844f", date: "2020-01-24 05:10:35 +0000", description: "Wrap failing test in feature flag", pr_number: 1595, scopes: ["testing"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 2, deletions_count: 3}, - {sha: "dada48a66c814c0fd3e031a709e07db4b81b3e71", date: "2020-01-24 13:17:59 +0000", description: "Ensure that own logs are always ignored", pr_number: 1525, scopes: ["docker source"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 53, deletions_count: 59}, - {sha: "eae248d09318af9f14319ee42c5a81a800dcce44", date: "2020-01-24 15:55:58 +0000", description: "Fix `release-github` CI job", pr_number: 1600, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 4, deletions_count: 2}, - {sha: "fca31a736b4056f2150b6e4abfcea1d87b5a97db", date: "2020-01-24 21:32:15 +0000", description: "Fix `release-homebrew` CI job", pr_number: 1601, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 5, deletions_count: 6}, - {sha: "bf1386cc151b130efde27c60122baa98b69cab61", date: "2020-01-25 15:21:53 +0000", description: "Fix socket address documentation", pr_number: 1607, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 31, insertions_count: 76, deletions_count: 65}, - {sha: "201b9584d5c48d6bd687fa98749d9ab7ec46376d", date: "2020-01-31 18:30:48 +0000", description: "Fix group creation in the RPM package", pr_number: 1654, scopes: ["platforms"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "3245ad9c62ed4dcebb8482d8a9ac0fa045e44a1c", date: "2020-01-31 21:56:09 +0000", description: "Bump version in `Cargo.toml` and `Cargo.lock`", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "87f0f732e988c936093477ce6fe630b4b830b61a", date: "2020-01-29 11:08:27 +0000", description: "Disable kuberenetes tests in CI temporarily", pr_number: 1629, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 35, deletions_count: 39}, - {sha: "c1b8f5ee96de2503cd10d2967d33131d99189ac1", date: "2020-01-31 22:16:51 +0000", description: "Fix creation of the tag in `make release`", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "25d5fa64a565ac8ab26b5a10ddce9f24df1d5a62", date: "2020-01-31 22:24:27 +0000", description: "Use all tags in `make release`", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "1020b033b2bb14ed2e135835abd4533ccd52f7ce", date: "2020-01-27 13:13:47 +0000", description: "Improve 0.7.1 release notes", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 5, insertions_count: 73, deletions_count: 73}, - ] -} diff --git a/docs/reference/releases/0.8.0.cue b/docs/reference/releases/0.8.0.cue deleted file mode 100644 index b35e8b8a77da3..0000000000000 --- a/docs/reference/releases/0.8.0.cue +++ /dev/null @@ -1,225 +0,0 @@ -package metadata - -releases: "0.8.0": { - date: "2020-02-25" - codename: "A Wholesome Platter Of Features" - - whats_next: [ - ] - - commits: [ - {sha: "c5ad7d22f8f3b02c5fd8bc784c7c5cf54dd7b694", date: "2020-01-22 17:53:08 +0000", description: "Make sorting of blog posts stable", pr_number: 1566, scopes: ["website"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "3469bfcfeb39997c977c300399b8f2562f4c7730", date: "2020-01-22 18:00:10 +0000", description: "Add AWS API key for Windows tests in CI", pr_number: 1565, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 5, deletions_count: 1}, - {sha: "b9584fae31e6809be62b912b4162454fad688485", date: "2020-01-22 18:00:26 +0000", description: "Pass `CIRCLE_SHA1` environment variable to `release-github` job", pr_number: 1567, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "641cb48a13d46556448a18e5d4e6400a33a1e78b", date: "2020-01-22 11:36:26 +0000", description: "Fix a bug with `retry_limit` is set to 1", pr_number: 1569, scopes: ["aws_s3 sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 31, deletions_count: 1}, - {sha: "203efcd8071edc4e6986968d3c8ff9b2e36f341d", date: "2020-01-22 16:11:44 +0000", description: "Enable more logging by default", pr_number: 1564, scopes: ["aws_cloudwatch_logs sink"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 8, deletions_count: 7}, - {sha: "e3afda368582dd51f3518eaf2af3d5d82873b52a", date: "2020-01-22 14:38:52 +0000", description: "Allow building on Windows Stable Rust", pr_number: 1560, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 9, insertions_count: 180, deletions_count: 96}, - {sha: "708d6228b09c2a3e84da635f21cef068555844d9", date: "2020-01-22 19:30:47 +0000", description: "Allow for non-IP address host names", pr_number: 1575, scopes: ["socket sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 9, insertions_count: 117, deletions_count: 118}, - {sha: "1c78da516d5d9769753c1a7194d0cb45271afcc4", date: "2020-01-23 13:28:37 +0000", description: "Use `describe_delivery_stream` AWS API method for healthcheck", pr_number: 1573, scopes: ["aws_kinesis_firehose sink"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 13, deletions_count: 22}, - {sha: "a1cac868c9f4303cdb3258ded509a3889fc30f1a", date: "2020-01-23 10:47:08 +0000", description: "Bump version to 0.8.0 to fix `make check-version`", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "c960f953f93c2b717337033c8589fd8512278a08", date: "2020-01-23 11:16:54 +0000", description: "Update `Cargo.lock`", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "f996505eaaff329d1e7360ceca97fac2e8b12aa3", date: "2020-01-23 14:51:32 +0000", description: "Escape special characters in options descriptions", pr_number: 1580, scopes: ["website"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 26, insertions_count: 53, deletions_count: 53}, - {sha: "9aac838ff2bd09aacbb58cec79bebda54c0ba4ca", date: "2020-01-23 19:18:46 +0000", description: "Check that all blog articles are signed in CI", pr_number: 1459, scopes: ["website"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 27, insertions_count: 130, deletions_count: 38}, - {sha: "c084001fc871db231bcb999f3946b7ad6b2319df", date: "2020-01-23 11:36:35 +0000", description: "Fix broken s3 link", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 9, insertions_count: 454, deletions_count: 20}, - {sha: "26539079cb5a5b3c2e530191297f70a05f3db024", date: "2020-01-23 11:39:15 +0000", description: "Fix socket sink docs", pr_number: 1585, scopes: ["socket sink"], type: "docs", breaking_change: false, author: "Lucio Franco", files_count: 5, insertions_count: 6, deletions_count: 6}, - {sha: "4e6fc6b240c23651e3b7323f9a0f3de6fdb7468b", date: "2020-01-23 19:44:22 +0000", description: "Create `vector` user when installing RPM package", pr_number: 1583, scopes: ["rpm platform"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 11, deletions_count: 2}, - {sha: "8eb88242da06eb14795957b0fb9d46b6ec8d7681", date: "2020-01-23 11:56:59 +0000", description: "Fix avatar on blog list page", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "6179310868047ceff60e46172e452c54b55e8aa1", date: "2020-01-23 16:58:32 +0000", description: "Redo blog sigs", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 3, insertions_count: 0, deletions_count: 0}, - {sha: "c057c0f70876ac2404ae1d59ced6ca3c3e29b96d", date: "2020-01-23 21:44:23 +0000", description: "Support bug fixing releases", pr_number: 1587, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 18, deletions_count: 5}, - {sha: "3adfc70416aa3cc078257a3192b148cd530dc770", date: "2020-01-23 22:26:44 +0000", description: "Add all generated files to the release commit", pr_number: 1588, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "895fb9b2022df7708eec6fbd28e5bede710f3321", date: "2020-01-23 23:31:55 +0000", description: "Do not require `systemd` as an RPM dependency", pr_number: 1590, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 0, deletions_count: 2}, - {sha: "eab9ea663dd5bc52a4db4c99aa1518454d026a29", date: "2020-01-23 23:37:55 +0000", description: "Add `release-push` target to the Makefile", pr_number: 1589, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 30, deletions_count: 0}, - {sha: "372287922d98e4ebe48c2518eeaa35cc9ca77d86", date: "2020-01-24 09:40:28 +0000", description: "Fix typo", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "8d2126dae5af5d6b8ea426e74758e3eba27f8a79", date: "2020-01-24 05:10:35 +0000", description: "Wrap failing test in feature flag", pr_number: 1595, scopes: ["testing"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 2, deletions_count: 3}, - {sha: "135d2504ccf3a7efdc6e664cb306ef830c31f7fd", date: "2020-01-24 13:17:59 +0000", description: "Always check containers for self", pr_number: 1525, scopes: ["docker source"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 53, deletions_count: 59}, - {sha: "f1e1a06ffdcf9bd24df232a928750f23ce16ec39", date: "2020-01-24 15:55:58 +0000", description: "Fix `release-github` CI job", pr_number: 1600, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 4, deletions_count: 2}, - {sha: "f2a0df640cbbef34c4df17f1fc7bdc04b6d14ce0", date: "2020-01-24 18:15:48 +0000", description: "Run `make generate`", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 56}, - {sha: "cc59c392b253daf83cb8d2a231a749fa1df0d2b7", date: "2020-01-24 21:32:15 +0000", description: "Fix `release-homebrew` CI job", pr_number: 1601, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 5, deletions_count: 6}, - {sha: "7fce71cf21dc5af5fa4db2de480589263468c03f", date: "2020-01-25 13:21:26 +0000", description: "Add Netlify _redirects file", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 4, deletions_count: 1}, - {sha: "7b4721053c9284c8ef2ebc0335d565620ff0c098", date: "2020-01-25 13:35:45 +0000", description: "Force netlify redirects", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 14, deletions_count: 11}, - {sha: "d06926ce8b74263d92e2f019a652c4e54ca78626", date: "2020-01-25 15:21:53 +0000", description: "Fix socket address documentation", pr_number: 1607, scopes: ["socket source"], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 31, insertions_count: 76, deletions_count: 65}, - {sha: "59cd776e661b72e7728401333ffe611cfcf0b27e", date: "2020-01-25 15:25:27 +0000", description: "Remove unused guides attribute", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 27, insertions_count: 0, deletions_count: 27}, - {sha: "7fa4a9ef2c322e0ac0ce6a66ca328c0161241acf", date: "2020-01-25 15:40:05 +0000", description: "Fix service provider filters in components section", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 41, insertions_count: 995, deletions_count: 200}, - {sha: "0521ac92685ef18b093a076041767493484189c8", date: "2020-01-25 15:58:22 +0000", description: "Cleanup authentication options", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 24, insertions_count: 315, deletions_count: 350}, - {sha: "8be035e86eaf2e1fc6b40313b94b21e9232ae84a", date: "2020-01-25 16:03:45 +0000", description: "Make region for AWS services a required option", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 9, insertions_count: 212, deletions_count: 204}, - {sha: "c228164f54fcba7ff211a506776e17b8d7ca19a6", date: "2020-01-25 16:19:23 +0000", description: "The region option is only requried for AWS exclusive sinks", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 28, deletions_count: 24}, - {sha: "26ab28bc49cb9e6dbbe1c8f245892f44b5ddb1de", date: "2020-01-25 16:39:05 +0000", description: "Nest source building steps under platform tabs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 274, deletions_count: 236}, - {sha: "d6c85157af4cf189b8d0b29b26cf0468e32ce36c", date: "2020-01-25 16:51:51 +0000", description: "Add all vector.dev redirects to netlify.toml", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 46, deletions_count: 0}, - {sha: "ccaf8e450fb1d83e2e249ee5ce8870e60816ba57", date: "2020-01-25 17:21:32 +0000", description: "Fix journald supported operating systems", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 4, deletions_count: 5}, - {sha: "36b68149b36fe9768b5757c6eda43bea588a567e", date: "2020-01-25 18:01:02 +0000", description: "Add \"requirements\" section for relevant components", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 56, insertions_count: 550, deletions_count: 1}, - {sha: "c4ef618e6b5c9437f24b48934c7563afe74827f2", date: "2020-01-25 18:03:35 +0000", description: "Add address example to logplex source", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 7, deletions_count: 5}, - {sha: "c8999e5465a567ad27d51fd4a78a3ba31e3460a7", date: "2020-01-26 13:27:41 +0000", description: "Fix format errors", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 3, deletions_count: 3}, - {sha: "623c75377522ae5ad02095d3426fb15f9d4621f6", date: "2020-01-26 15:40:19 +0000", description: "Setup Netlify proxy for test-results subdomain", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 9, deletions_count: 3}, - {sha: "ffac8b6cedee84217c779b5947910f0cabae1c8b", date: "2020-01-26 15:47:59 +0000", description: "Setup Netlify proxy for sh subdomain", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 6, deletions_count: 0}, - {sha: "61032b6b175e3e19b531c3e014c823f656f24aa0", date: "2020-01-27 12:42:08 +0000", description: "Add checkpointing and communication strategy to journald source docs", pr_number: 1611, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 5, insertions_count: 48, deletions_count: 8}, - {sha: "3780652b48caf7550252a662956e669d638590d5", date: "2020-01-27 21:00:26 +0000", description: "Document adding the Vector user to a group which can use `journalctl`", pr_number: 1584, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 33, deletions_count: 7}, - {sha: "c85c759b2d28315dc05b117f3a610cf8f632b614", date: "2020-01-27 17:41:37 +0000", description: "Fix the journalctl start date to work across all timezones", pr_number: 1627, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "219b1a8447fe03f56dacc314c7d5366fb87ca3ad", date: "2020-01-28 15:30:54 +0000", description: "Initial `gcp_stackdriver_logging` sink implementation", pr_number: 1555, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 23, insertions_count: 2095, deletions_count: 120}, - {sha: "eb6b0a137944e356c31c14d8bf2422bc99b09256", date: "2020-01-29 11:08:27 +0000", description: "Disable kuberenetes tests in CI temporarily", pr_number: 1629, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 35, deletions_count: 39}, - {sha: "3149dcc9fef288db77ae765ec4166a959c5d5830", date: "2020-01-29 11:16:50 +0000", description: "Event::extend use FromIter", pr_number: 1631, scopes: ["event"], type: "chore", breaking_change: false, author: "Evan Cameron", files_count: 2, insertions_count: 18, deletions_count: 22}, - {sha: "bb3aaa5d7d67adbacb4f77a684a9e66088a6d842", date: "2020-01-29 12:03:49 +0000", description: "Introduce `JsonArrayBuffer` buffer", pr_number: 1633, scopes: ["buffers"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 89, deletions_count: 1}, - {sha: "5c1e38c61e8b66961d8b38685dc990ef468829d9", date: "2020-01-29 17:31:53 +0000", description: "Cleanup generate and check Dockerfiles", pr_number: 1623, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 8, insertions_count: 15, deletions_count: 31}, - {sha: "51b5a2f43942d3a270475c2d24cb52ce4f9db59f", date: "2020-01-29 19:52:01 +0000", description: "Add new `drop_unspecified` option to drop unspecified fields", pr_number: 1636, scopes: ["coercer transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 165, deletions_count: 25}, - {sha: "b51b1735c4cf348f5e33e2764d1e5b099561ab67", date: "2020-01-29 21:02:44 +0000", description: "upgrade http and prost-build deps", pr_number: 1638, scopes: ["security"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 3, insertions_count: 27, deletions_count: 94}, - {sha: "cf06460aba1f02cc74d65e12af635515530e3dad", date: "2020-01-30 09:50:21 +0000", description: "add cargo-deny check for advisories", pr_number: 1640, scopes: ["security"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 20, deletions_count: 0}, - {sha: "f6626605e8b97af54bebe8bca6a373163a73a631", date: "2020-01-30 12:59:24 +0000", description: "Upgrade to rustc `1.41.0`", pr_number: 1646, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 4, deletions_count: 4}, - {sha: "37edb080ec7a5d20e141e5813d0475c59927d366", date: "2020-01-30 13:56:50 +0000", description: "Add run.sh to run commands through Docker based on the `USE_DOCKER` env var", pr_number: 1637, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 5, insertions_count: 68, deletions_count: 25}, - {sha: "c85022190fe0ca137e958aa58366b56a39d2a359", date: "2020-01-30 16:59:35 +0000", description: "Initial `sematext` sink implementation", pr_number: 1562, scopes: ["new sink"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 14, insertions_count: 1079, deletions_count: 3}, - {sha: "a9b7950a0f198bc0c87289d048a39b97cc915f4c", date: "2020-01-30 17:25:26 +0000", description: "Upgrade all dependencies", pr_number: 1648, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 810, deletions_count: 655}, - {sha: "525225524bb1e21121563f386a046bc68da5ac86", date: "2020-01-30 17:43:19 +0000", description: "Add Ana 🎉", pr_number: 1649, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 12, deletions_count: 0}, - {sha: "4f429e00b63a5cddfdd725cd3868f04d094f9e2f", date: "2020-01-31 18:30:48 +0000", description: "Fix group creation in the RPM package", pr_number: 1654, scopes: ["rpm platform"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "0a8b0c8043081afb2e01b36f7ebdd3c72c521961", date: "2020-01-31 11:29:02 +0000", description: "Update to new lockfile format", pr_number: 1655, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1921, deletions_count: 1931}, - {sha: "c1bf8b9a0a0c5f3e3b257e3b8749c114909363f6", date: "2020-01-31 12:38:14 +0000", description: "Fix EU endpoint and docs", pr_number: 1657, scopes: ["sematext sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 4, insertions_count: 4, deletions_count: 4}, - {sha: "47a981f1677a1325c86cf1edbbaf8031126fc833", date: "2020-01-31 12:38:38 +0000", description: "Refactor internal http sink to use new helper API", pr_number: 1641, scopes: ["http sink"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 8, insertions_count: 327, deletions_count: 132}, - {sha: "b894cf441ceb22ea0f2f8f27b02a05c608b1910c", date: "2020-01-31 21:27:55 +0000", description: "Add ability to verify RPM artifacts locally", pr_number: 1647, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 7, insertions_count: 170, deletions_count: 9}, - {sha: "ecf14f9a5b48694f45fad8569a47d34e3c4431b8", date: "2020-01-31 13:55:36 +0000", description: "Update Twitter handle to vectordotdev", pr_number: 1664, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 6, insertions_count: 9, deletions_count: 9}, - {sha: "e24087a4273e80f4dbbff1e29ee65b0a2b85cdf5", date: "2020-01-31 22:16:51 +0000", description: "Fix creation of the tag in `make release`", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "1d21d4e27b940a32c505f673ccfefe6434ec3890", date: "2020-01-31 22:24:27 +0000", description: "Use all tags in `make release`", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "a1dcc9679eba564f35a92d850080d0970a05fab6", date: "2020-01-27 13:13:47 +0000", description: "Improve 0.7.1 release notes", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 5, insertions_count: 73, deletions_count: 73}, - {sha: "00653bfc5bdee996811277cc3246665cbccb7710", date: "2020-02-01 00:38:11 +0000", description: "Update README header links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 6, insertions_count: 11, deletions_count: 11}, - {sha: "1cc654284addd2e0774d486e27e6d742158029b6", date: "2020-02-01 13:36:12 +0000", description: "Fix nix verifier step (and nightly builds)", pr_number: 1669, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 7, insertions_count: 16, deletions_count: 37}, - {sha: "ae6f1a975f9e71d6331790f4f78334d37e99f940", date: "2020-02-01 17:27:23 +0000", description: "flesh out security policy", pr_number: 1642, scopes: ["security"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 8, insertions_count: 443, deletions_count: 89}, - {sha: "cb3f8c1d4eddff297747df65d312810bb672cf99", date: "2020-02-01 18:28:40 +0000", description: "Fox SECURITY.md vulnerability link", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "06670c9c42b79193962dd0995017177d5bac68d5", date: "2020-02-01 18:29:30 +0000", description: "Fix SECURITY.md TOC links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 35, deletions_count: 35}, - {sha: "ed4b46a58712b589175abceb1b41d80294c431ea", date: "2020-02-02 08:28:05 +0000", description: "Colourize help", pr_number: 1660, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 10, deletions_count: 6}, - {sha: "df4c4bba3f24815bcf2ca5bf977e8498ddaf1916", date: "2020-02-02 11:46:54 +0000", description: "Add team member social profiles", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 11, deletions_count: 0}, - {sha: "49dd7519e68d6034b96ac62dea31e5b3804e2e0a", date: "2020-02-02 11:50:01 +0000", description: "Fix COPY path for armv7 Docker image", pr_number: 1671, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "f220a281ae5f451f55c589cd736b3403848d08c2", date: "2020-02-02 13:46:33 +0000", description: "Add assume_role docs", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 5, insertions_count: 42, deletions_count: 12}, - {sha: "d3ea7122ea63142e9c21026b59c2f0a4a72c167a", date: "2020-02-02 14:24:49 +0000", description: "Fix broken links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 54, insertions_count: 144, deletions_count: 148}, - {sha: "5b97e4c247340cc553b2359f9cdcd63ee02d4f28", date: "2020-02-02 14:26:49 +0000", description: "Clarify SECURITY.md requirements on 2fa and commit signing", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "eaad0fc503937a37b3ec935e4cb66499b8310c36", date: "2020-02-02 21:48:59 +0000", description: "fix typos", pr_number: 1577, scopes: [], type: "docs", breaking_change: false, author: "Anton Ryzhov", files_count: 15, insertions_count: 27, deletions_count: 27}, - {sha: "14e2d5aca28ed7e0bdcbc3ccf005a4bd054332d5", date: "2020-02-02 16:04:04 +0000", description: "Add unix domain socket support to the `socket` sink", pr_number: 1561, scopes: ["socket sink"], type: "feat", breaking_change: false, author: "Spencer T Brody", files_count: 9, insertions_count: 379, deletions_count: 50}, - {sha: "a04a584bbb61c936b10a3224c06b36b8e361448c", date: "2020-02-02 16:40:59 +0000", description: "Add .github/labels.yml for syncing labels", pr_number: 1677, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 8, insertions_count: 547, deletions_count: 36}, - {sha: "ac874f883088f2c23642f7563a69be4b0397ff50", date: "2020-02-02 16:44:49 +0000", description: "Fix labels.yml path in label-syncer workflow", pr_number: null, scopes: ["operation"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "7ddd195b31a331ce17cfb18d287463469b48f56c", date: "2020-02-02 16:47:27 +0000", description: "Cleanup unused labels", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 9, deletions_count: 14}, - {sha: "1c912204572e5b5e32096247baf94870f3f25b25", date: "2020-02-02 23:13:07 +0000", description: "Define a JSON schema for the .meta/**/*.toml files", pr_number: 1678, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 55, insertions_count: 733, deletions_count: 111}, - {sha: "fcdddbc0dbe062c44643f3be3ce6644e4ff40525", date: "2020-02-03 12:14:14 +0000", description: "Upgrade `tracing-subscriber 0.2.0-alpha.5`", pr_number: 1681, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 4, insertions_count: 29, deletions_count: 8}, - {sha: "74290db698ab6290c3f39437cb34586289d0778f", date: "2020-02-03 20:30:15 +0000", description: "Fix the SECURITY.md link at CONTRIBUTING.md", pr_number: 1682, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "ba7a11caaac2c3c1812e3de6f0cb831a73c573dc", date: "2020-02-03 21:21:18 +0000", description: "Fix `aws_s3` sink examples", pr_number: 1683, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 6, deletions_count: 3}, - {sha: "36fad64b72c177f5d1d4c477e9dc8dda4839917e", date: "2020-02-03 17:53:56 +0000", description: "Remove background checks on security page", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 4, deletions_count: 9}, - {sha: "465af0b75988ffa0c613be5eeb30b4f549295d6f", date: "2020-02-03 16:46:24 +0000", description: "Fixup versions in tracing-metrics", pr_number: 1690, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 2, insertions_count: 4, deletions_count: 13}, - {sha: "5a368f34983394c5159b398b7810ac1f62591094", date: "2020-02-04 12:11:08 +0000", description: "Add several S3 object-level options (`grant_full_control`, `server_side_encryption`, and more)", pr_number: 1689, scopes: ["aws_s3 sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 6, insertions_count: 638, deletions_count: 7}, - {sha: "6575e3836672d6111fa8b958e5cb67f46595002e", date: "2020-02-04 23:46:41 +0000", description: "Use `rust-toolchain` file when building CI Docker images", pr_number: 1691, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 8, insertions_count: 10, deletions_count: 20}, - {sha: "c285303bc5f403629060d3498b8e2cdf20c6ad9a", date: "2020-02-05 08:14:34 +0000", description: "New `merge` transform", pr_number: 1504, scopes: ["new transform"], type: "feat", breaking_change: false, author: "MOZGIII", files_count: 23, insertions_count: 1539, deletions_count: 38}, - {sha: "c285303bc5f403629060d3498b8e2cdf20c6ad9a", date: "2020-02-05 08:14:34 +0000", description: "Add `auto_partial_merge` to automatically merge partial events", pr_number: 1504, scopes: ["docker source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 23, insertions_count: 1539, deletions_count: 38}, - {sha: "44099cdf794dc3cac6926002253f2120e3af0c01", date: "2020-02-05 00:32:03 +0000", description: "Fix auto_partial_merge option name", pr_number: null, scopes: ["docker source"], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 5, deletions_count: 5}, - {sha: "0c22ca5c5e00313a12aef3dd1d2abba311ad890c", date: "2020-02-05 10:32:25 +0000", description: "Warn log for non retryable requests", pr_number: 1706, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "99899e35d43fbd8b5301ecdce327a7764f6eeceb", date: "2020-02-05 10:33:00 +0000", description: "Rename cloud and add host", pr_number: 1704, scopes: ["sematext sink"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 5, insertions_count: 126, deletions_count: 52}, - {sha: "08d629cb79d55fb49c305f1a8866baa4a921c2fa", date: "2020-02-05 11:00:20 +0000", description: "Upgrade to `tracing-subscriber 0.2.0`", pr_number: 1707, scopes: [], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 4, insertions_count: 6, deletions_count: 6}, - {sha: "ca196b70101bd8d5a0868e27c58ae20b36f67709", date: "2020-02-05 11:51:30 +0000", description: "Fixup security language", pr_number: 1711, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 9, deletions_count: 12}, - {sha: "aa54e7fff0507560372cf313fb115f957adc0645", date: "2020-02-05 14:42:12 +0000", description: "Allow partials in /.meta/*.toml files", pr_number: 1715, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 17, insertions_count: 105, deletions_count: 81}, - {sha: "0d5db5d71f210fca4667cacc19b3d35276a3897e", date: "2020-02-05 15:05:42 +0000", description: "Initial `logdna` sink implementation", pr_number: 1668, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 16, insertions_count: 1389, deletions_count: 4}, - {sha: "7e502fb3ca35afa935758985d633de6fc4c7bbfd", date: "2020-02-05 14:06:54 +0000", description: "Drop aws endpoint and region options", pr_number: 1703, scopes: ["elasticsearch sink"], type: "chore", breaking_change: true, author: "Bruce Guenter", files_count: 21, insertions_count: 137, deletions_count: 384}, - {sha: "bcd97a0ae482dadc392afe2ca2a8ab651ee1acac", date: "2020-02-05 15:21:52 +0000", description: "Add ENV_VAR api key examples first", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 5, insertions_count: 10, deletions_count: 8}, - {sha: "033de8bdbcd8913a410f354310f0f09474285110", date: "2020-02-05 15:26:57 +0000", description: "Fix LogDNA casing", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "2414924f69e4845f85e596f5bb9ef3db0b04c13a", date: "2020-02-05 15:27:58 +0000", description: "Add proper non retry messages", pr_number: 1712, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 76, deletions_count: 27}, - {sha: "fb88fdd211b25fd5c21be881e7a9c920626d614a", date: "2020-02-05 20:41:25 +0000", description: "Add a (super secret) vic page", pr_number: 1710, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 12, insertions_count: 738, deletions_count: 0}, - {sha: "68dc4b099d7f4f1bac6f43ad27282d31aaaa7fd8", date: "2020-02-05 16:10:37 +0000", description: "make host calculation more explicit", pr_number: 1720, scopes: ["sematext sink"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 13, deletions_count: 20}, - {sha: "7529fb88ace3d60b697e0c856e85d855b97a7070", date: "2020-02-05 20:14:01 +0000", description: "Add providers to labels and semantic PR scopes", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "binarylogic", files_count: 8, insertions_count: 153, deletions_count: 43}, - {sha: "a70758f52937217662f7906e5140f92757623213", date: "2020-02-06 20:32:18 +0000", description: "Allow running all tests locally", pr_number: 1701, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 15, insertions_count: 636, deletions_count: 172}, - {sha: "8fb49eec4a8096635e83a88f909b1892359b020f", date: "2020-02-06 17:37:30 +0000", description: "Clarify topology warnings", pr_number: 1726, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 3, insertions_count: 4, deletions_count: 4}, - {sha: "d4c28115af4bbea56e5e7dc5ee137c682290ebe1", date: "2020-02-06 20:56:43 +0000", description: "Restore `rust-toolchain` file in the project root", pr_number: 1729, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 9, insertions_count: 79, deletions_count: 77}, - {sha: "13c7e9a296769b83ea939e0d248b30df83c12615", date: "2020-02-06 20:59:34 +0000", description: "Fix `test-stable` CI job", pr_number: 1730, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "0d5287bd47524e00725d50b60fc0e7cc1f2c0432", date: "2020-02-06 13:42:41 +0000", description: "Replace Alexey with Luke", pr_number: 1723, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 6, deletions_count: 6}, - {sha: "bfbe58cf1d25c905c27080a447f5e9a4fe356a98", date: "2020-02-06 17:09:54 +0000", description: "Set `beta` to true", pr_number: null, scopes: ["merge transform"], type: "docs", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 4, deletions_count: 3}, - {sha: "5f8769d9c8ea52e4b39b4cf5f410bfbbf8c3755e", date: "2020-02-06 17:15:21 +0000", description: "Require `beta` attribute for all components", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 34, insertions_count: 45, deletions_count: 15}, - {sha: "93b2c1510f2b8151722ab6dc9cc687dc796a4e2a", date: "2020-02-07 10:27:17 +0000", description: "Support multiple configuration files.", pr_number: 1725, scopes: ["cli"], type: "feat", breaking_change: false, author: "Ashley Jeffs", files_count: 5, insertions_count: 208, deletions_count: 40}, - {sha: "9c3b12b700c9f408c03db63d014db6e27e2ff87b", date: "2020-02-07 14:01:19 +0000", description: "Improve `docker-run.sh` script", pr_number: 1733, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 18, deletions_count: 5}, - {sha: "52e2c85cd7d5f7c190edaa0c345c7a5208f5cc4c", date: "2020-02-07 09:09:22 +0000", description: "Add support for running containers under Podman", pr_number: 1736, scopes: ["operations"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 28, deletions_count: 21}, - {sha: "6f290d3e55d78438100b1bd31747c6c4b1630184", date: "2020-02-07 16:02:56 +0000", description: "Improve cyclic deps error message", pr_number: 1728, scopes: ["topology"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 4, insertions_count: 98, deletions_count: 77}, - {sha: "ce326530da9235233355a86dcc5c27b626f40a10", date: "2020-02-07 14:51:44 +0000", description: "Add support for `assume_role` to all AWS sinks", pr_number: 1722, scopes: ["aws provider"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 13, insertions_count: 330, deletions_count: 82}, - {sha: "a931f0ddca833eee9f1a5113e458f468fecaa221", date: "2020-02-08 15:06:56 +0000", description: "Disable failing CI check", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 0, deletions_count: 6}, - {sha: "46e0df96231b2b04e3b29263f4e73ae1d79a09ca", date: "2020-02-08 10:23:15 +0000", description: "Fix loading of private keys in separate files for sinks", pr_number: 1749, scopes: ["operations"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 44, deletions_count: 1}, - {sha: "d128ab8eb163f1aca92db3093f86fd1a447ab64c", date: "2020-02-08 10:24:00 +0000", description: "Use the \"minimal\" profile when installing with rustup", pr_number: 1747, scopes: ["operations"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 7, deletions_count: 5}, - {sha: "350f5aa9be81ff271b46e86ced6ec820e4cf4024", date: "2020-02-09 18:59:07 +0000", description: "Move \"magic\" component fields up to the /.meta directory", pr_number: 1758, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 181, insertions_count: 2766, deletions_count: 3018}, - {sha: "20fc32b0674bf40897011b3fe7ce3e4335b31358", date: "2020-02-10 16:13:51 +0000", description: "Fix `verify-nixos` CI check", pr_number: 1760, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 8, deletions_count: 2}, - {sha: "2ee1b8867e5c79057ed4467d9d4ce3984dd73599", date: "2020-02-10 14:16:42 +0000", description: "Fix nested field documentation", pr_number: 1765, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 10, insertions_count: 193, deletions_count: 21}, - {sha: "0eb6c9804f4be108960fb48921fdbd87e150d946", date: "2020-02-10 16:28:09 +0000", description: "Initial `humio_logs` sink implementation", pr_number: 1716, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 12, insertions_count: 1022, deletions_count: 1}, - {sha: "7a693547f4b1fcdc58fca3b0679410c53584cda7", date: "2020-02-10 17:31:15 +0000", description: "Fix encoding docs", pr_number: 1768, scopes: ["splunk_hec sink"], type: "docs", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 7, deletions_count: 7}, - {sha: "fec6798e1a70b6ae8513286b568b6437bf4191d0", date: "2020-02-10 17:36:25 +0000", description: "Remove encoding option", pr_number: 1767, scopes: ["humio_logs sink"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 4, insertions_count: 1, deletions_count: 58}, - {sha: "0075ea61060bb57701c821eb835071f303d31d51", date: "2020-02-10 23:37:31 +0000", description: "Option to reload config on file change", pr_number: 1330, scopes: ["config"], type: "feat", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 260, deletions_count: 1}, - {sha: "d986d809c937d800fbca0c55f146284fac8154c4", date: "2020-02-11 17:27:10 +0000", description: "Fix typo", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "12ecd000ba7bd8642ae51fa391eb1bde3f9fba87", date: "2020-02-11 18:43:16 +0000", description: "Fix example `host` values for `splunk_hec` sink", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 5, deletions_count: 5}, - {sha: "1b24dd1833d41a3fdac741a1190033b6d49cb6f0", date: "2020-02-11 09:48:50 +0000", description: "Support conditionally rebuilding the docker images", pr_number: 1744, scopes: ["operations"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 16, deletions_count: 10}, - {sha: "5fc373ea5d48eb40a7610673804f30475617e375", date: "2020-02-11 13:02:20 +0000", description: "Fix unit tests reference", pr_number: 1777, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 5, insertions_count: 646, deletions_count: 32}, - {sha: "9a1422efc56fac61e39ff0f33fd73091bc1728de", date: "2020-02-11 21:59:52 +0000", description: "Improve best effort support for Syslog formats (5424, 3164, nginx style, etc)", pr_number: 1757, scopes: ["syslog source"], type: "enhancement", breaking_change: false, author: "FungusHumungus", files_count: 8, insertions_count: 200, deletions_count: 143}, - {sha: "2535012cb81d0fa5a4ea0ede00a2f21e1a71d192", date: "2020-02-12 10:32:13 +0000", description: "Improve `vector generate` syntax and formatting", pr_number: 1773, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 195, deletions_count: 23}, - {sha: "8570e00229424e48227be654798ffb06ee6dc184", date: "2020-02-12 11:05:34 +0000", description: "Test sub command improvements", pr_number: 1739, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 11, insertions_count: 329, deletions_count: 183}, - {sha: "955cc18652449cb63e69ceba839511dd4d262427", date: "2020-02-12 12:21:42 +0000", description: "Add units to default value examples", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 11, deletions_count: 5}, - {sha: "424a6a0f359db1e3cb398be8567f5be757b290bb", date: "2020-02-12 13:00:41 +0000", description: "Simplify docker example values", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 6, insertions_count: 29, deletions_count: 27}, - {sha: "93f43cab6331f5f9de41b55c036337beec7a2d9f", date: "2020-02-12 20:13:45 +0000", description: "Clarify generate error messages with type", pr_number: 1780, scopes: [], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 12, deletions_count: 5}, - {sha: "15e69c8c2392f17104037cf94645231a874244d4", date: "2020-02-13 18:51:08 +0000", description: "Global default log schemas", pr_number: 1769, scopes: ["config"], type: "feat", breaking_change: false, author: "Ana Hobden", files_count: 49, insertions_count: 715, deletions_count: 223}, - {sha: "dcc7a593cbaae72212af56b3e562e15d246556fc", date: "2020-02-14 13:23:37 +0000", description: "Add new global `log_schema` throughout the docs", pr_number: 1795, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 24, insertions_count: 445, deletions_count: 132}, - {sha: "b4b3ebf18cdef172b037a717a1d6b723fcb7ed28", date: "2020-02-14 13:43:56 +0000", description: "Reduce homepage animation refresh rate", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "9d2f3c06c1aabad9b726ae26e21c69c531bd4d6e", date: "2020-02-14 22:00:31 +0000", description: "Add behavior tests for `add_fields` and `remove_fields` transforms", pr_number: 1781, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 6, insertions_count: 144, deletions_count: 1}, - {sha: "22f2e6d8822537b991e7ca7a6b81b7f0ee3d4571", date: "2020-02-14 14:12:51 +0000", description: "Stop homepage animation after a timeout", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 1, insertions_count: 24, deletions_count: 7}, - {sha: "61f9f3356bfdc266d6841d42344dd5dee194b766", date: "2020-02-14 19:14:51 +0000", description: "Support schema settings in unit tests", pr_number: 1793, scopes: ["cli"], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 8, deletions_count: 3}, - {sha: "497e6bddca534e2ef64de676d24b4ba54709f9d6", date: "2020-02-08 15:06:56 +0000", description: "Disable failing CI check", pr_number: null, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 0, deletions_count: 6}, - {sha: "3233202cd457dd256a052ffe8037361dcac6d236", date: "2020-02-15 14:12:10 +0000", description: "Add templating as a domain", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 29, deletions_count: 22}, - {sha: "513851364635457395c81bd38eea13297b8f37ec", date: "2020-02-15 12:58:34 +0000", description: "Correct lints and tests", pr_number: 1789, scopes: ["windows platform"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 9, insertions_count: 57, deletions_count: 31}, - {sha: "dc8009b78de156c9aed07eccf2498749f69ade4e", date: "2020-02-15 16:19:31 +0000", description: "Update README and add templating reference", pr_number: 1805, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 35, insertions_count: 601, deletions_count: 333}, - {sha: "612450368e28882ebd31efcd9e2c7e26d3ac69b3", date: "2020-02-15 16:40:36 +0000", description: "Fix generate check", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 24, deletions_count: 24}, - {sha: "98623e329ae1796259a85db98af96882a1911ce1", date: "2020-02-15 17:08:35 +0000", description: "Update README language", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 4, insertions_count: 8, deletions_count: 10}, - {sha: "c1c529a4397262b60917d825f905fedb97f02434", date: "2020-02-15 17:09:59 +0000", description: "Short README bullet point", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "a366c6fa6d33e50aff378d605a245c72d7bfbcae", date: "2020-02-16 19:23:39 +0000", description: "Fix typo in `concat` transform example", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 4, deletions_count: 4}, - {sha: "a96b7288d17d949a983b5756f3b94ea9d4f60918", date: "2020-02-16 20:26:15 +0000", description: "Clarify description of `ansi_stripper` transform", pr_number: 1809, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 8, deletions_count: 8}, - {sha: "8e06920249f8da33cb23fa2ae76088d4a65ef04d", date: "2020-02-17 13:02:38 +0000", description: "Add more behavior tests for transforms", pr_number: 1811, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 9, insertions_count: 320, deletions_count: 0}, - {sha: "93a68f0a7e7a0b3b164a5cb69d2a00ba4e50cf8a", date: "2020-02-17 21:05:22 +0000", description: "Add field order test at src/event/discriminant.rs", pr_number: 1822, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 18, deletions_count: 0}, - {sha: "32105959ee83aa160a830570245614fea864d001", date: "2020-02-17 16:28:39 +0000", description: "Update to docusaurus 2.0.0-alpha.41", pr_number: 1831, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 13, insertions_count: 1599, deletions_count: 2779}, - {sha: "1e85b5bf151ab4ec6f0cab140d79b038aaa02844", date: "2020-02-18 00:42:28 +0000", description: "Support advanced `librdkafka` options", pr_number: 1830, scopes: ["kafka source"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 207, deletions_count: 7}, - {sha: "4dfc382fdeb4e81c21e4a526c6917070127eec6f", date: "2020-02-18 00:45:57 +0000", description: "Support advanced `librdkafka` options", pr_number: 1829, scopes: ["kafka sink"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 185, deletions_count: 2}, - {sha: "88963ef85ffcd431ff3f0b66d213831fa1c8ab2d", date: "2020-02-17 14:54:27 +0000", description: "Support templating for dynamic values", pr_number: 1799, scopes: ["add_fields transform"], type: "enhancement", breaking_change: false, author: "Ana Hobden", files_count: 5, insertions_count: 147, deletions_count: 9}, - {sha: "19f06ebee8b35058b7248b381924b8b102028ca2", date: "2020-02-17 17:55:46 +0000", description: "Initial `loki` sink", pr_number: 1783, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 19, insertions_count: 2106, deletions_count: 1}, - {sha: "5d6dc45f0c3a5c139ba5c2ae345862984e172c7e", date: "2020-02-18 03:32:37 +0000", description: "Add more `include_container_names`, `include_pod_uids`, and `include_namespaces` filters", pr_number: 1501, scopes: ["kubernetes source"], type: "feat", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 1091, deletions_count: 314}, - {sha: "5d97a1e36fd24d7ccfffc1ef5c225892d81e7118", date: "2020-02-18 11:03:17 +0000", description: "Ensure zero output event tests fail", pr_number: 1814, scopes: [], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 115, deletions_count: 2}, - {sha: "7c3149fc5d989e689a0b5fb94ec03ff0634e2eba", date: "2020-02-18 11:46:28 +0000", description: "Update to docusaurus 2.0.0-alpha.43", pr_number: null, scopes: ["website"], type: "chore", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 102, deletions_count: 108}, - {sha: "b89aded488ca1a9bfeea06cad92365ee99586c66", date: "2020-02-19 04:28:36 +0000", description: "Initial `influxdb_metrics` sink implementation", pr_number: 1759, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Jakub Bednář", files_count: 16, insertions_count: 2554, deletions_count: 3}, - {sha: "841a8f8666ead89443dd7c98e8aa4b241537bac6", date: "2020-02-19 09:08:41 +0000", description: "Make token optional", pr_number: 1837, scopes: [], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 54, deletions_count: 16}, - {sha: "a7aa9e4cb29402942b0b97dd28fe25d4ff598aa4", date: "2020-02-19 15:56:27 +0000", description: "Add support for option groups and versions ", pr_number: 1859, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 82, insertions_count: 1155, deletions_count: 378}, - {sha: "f2b4a30db0dacef5be4fded5c36ad4a56a7088ff", date: "2020-02-19 20:05:22 +0000", description: "Fix influxdb_metrics common options groups", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 25, deletions_count: 1}, - {sha: "9e6cc795f90c39fdb63819cf1bbbe3648eb71dc1", date: "2020-02-19 23:04:07 +0000", description: "only drop source field if JSON parse succeeds", pr_number: 1863, scopes: ["json_parser transform"], type: "fix", breaking_change: false, author: "Samuel Cormier-Iijima", files_count: 4, insertions_count: 33, deletions_count: 8}, - {sha: "799709ac07cc1acb3cd10f142e586cc1af7a241f", date: "2020-02-20 01:55:18 +0000", description: "Update logging driver support", pr_number: 1741, scopes: ["docker source"], type: "docs", breaking_change: false, author: "Lucio Franco", files_count: 120, insertions_count: 342, deletions_count: 111}, - {sha: "93100d4a6ffd67e1ab8c88ab35d61a791b2693f9", date: "2020-02-20 13:24:22 +0000", description: "Add transform context", pr_number: 1855, scopes: ["transforms"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 26, insertions_count: 120, deletions_count: 87}, - {sha: "2bba79917996a94eab1dee4c742e1ab4c89b1c19", date: "2020-02-20 14:37:00 +0000", description: "Inital Kubernetes `WatchClient`", pr_number: 1746, scopes: ["transforms"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 490, deletions_count: 8}, - {sha: "657e658117d38f56bdb64b7d9bbbfee554c7d5d5", date: "2020-02-20 22:07:29 +0000", description: "Support `Array` and `Map` kinds in `Value`", pr_number: 1836, scopes: ["log data model"], type: "enhancement", breaking_change: true, author: "Alexander Rodin", files_count: 3, insertions_count: 123, deletions_count: 19}, - {sha: "49afdba04d682b48dd91beae49800e590c2ce0ab", date: "2020-02-20 14:39:54 +0000", description: "Add min_version to relevant components", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 77, insertions_count: 341, deletions_count: 171}, - {sha: "ead893c445a121b73aee48987a3cce1ca974a303", date: "2020-02-20 14:49:46 +0000", description: "Run `make generate`", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 39, deletions_count: 39}, - {sha: "269616777cef4466755dfd5a9d80f2ce3a1ac03f", date: "2020-02-20 14:04:26 +0000", description: "Initial `gcp_cloud_storage` sink implementation", pr_number: 1794, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 26, insertions_count: 2483, deletions_count: 100}, - {sha: "f377e79e472096d6dc2eb91cd7b6e6b2e9e74f03", date: "2020-02-20 15:47:39 +0000", description: "Add docker info", pr_number: 1862, scopes: ["aws_ec2_metadata transform"], type: "docs", breaking_change: false, author: "Lucio Franco", files_count: 177, insertions_count: 325, deletions_count: 217}, - {sha: "cebd0eb183c75872a5bb6f52905e4fde61773423", date: "2020-02-20 16:04:52 +0000", description: "Advance to `prod-ready` status", pr_number: 1875, scopes: ["cloudwatch_logs sink"], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 5, insertions_count: 18, deletions_count: 16}, - {sha: "8f70eff1f8526be3931c97e662d3da9d26821e03", date: "2020-02-20 15:15:38 +0000", description: "Re-run `make generate` to fix GCS docs", pr_number: 1877, scopes: ["docs"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 61, insertions_count: 14, deletions_count: 214}, - {sha: "4b0492c8a040b4fe7d6ea71bc6d6a0f2d0bb3cd6", date: "2020-02-20 16:23:04 +0000", description: "Set `min_version` to `1.1.54378`", pr_number: 1879, scopes: ["clickhouse sink"], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 13, deletions_count: 2}, - {sha: "e9c3466ba6beecd30a3c1ffc304d384c7f665592", date: "2020-02-21 00:36:47 +0000", description: "Add feature `disable-resolv-conf` to make Vector tests pass on NixOS", pr_number: 1874, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 9, deletions_count: 2}, - {sha: "fa3fc07d703aa125075739459d72b7a12ca02027", date: "2020-02-20 17:01:04 +0000", description: "Clarify `split` transform behavior", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 5, insertions_count: 18, deletions_count: 14}, - {sha: "4f1b5d884acd577ea8060f2d029c4270da82e4f0", date: "2020-02-20 19:19:11 +0000", description: "Fix example", pr_number: null, scopes: ["split transform"], type: "docs", breaking_change: false, author: "binarylogic", files_count: 3, insertions_count: 59, deletions_count: 45}, - {sha: "415429deae6c3d8d287546ab845af3c29bb559f1", date: "2020-02-20 19:38:50 +0000", description: "Refer to docker API", pr_number: 1885, scopes: ["docker source"], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 64, insertions_count: 77, deletions_count: 5}, - {sha: "f2742dbd5b1d073436fd07af664e38930b36d587", date: "2020-02-21 11:35:27 +0000", description: "Allow multiple unit test inputs", pr_number: 1824, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 5, insertions_count: 376, deletions_count: 135}, - {sha: "3b090aa80416d55679b543cdec3f361aa9869659", date: "2020-02-21 13:08:34 +0000", description: "Add `no_outputs_from` field to unit tests", pr_number: 1817, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 4, insertions_count: 182, deletions_count: 0}, - {sha: "17340e26b0845ed95519027950a0bd9d388df71d", date: "2020-02-21 16:11:05 +0000", description: "Use `BTreeMap` instead of `HashMap` for logs and metrics", pr_number: 1838, scopes: ["log data model"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 23, insertions_count: 158, deletions_count: 121}, - {sha: "df8e103b937cc86d9ef12cf6b2638a4003f75b47", date: "2020-02-21 11:16:29 +0000", description: "Add description and bio to press page", pr_number: 1884, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 26, deletions_count: 1}, - {sha: "650ce582e2eab05f585505e5b66197eb672c556c", date: "2020-02-21 12:26:59 +0000", description: "Respect Lua types when converting back to events (#857)", pr_number: 1886, scopes: ["lua transform"], type: "fix", breaking_change: false, author: "Samuel Cormier-Iijima", files_count: 3, insertions_count: 78, deletions_count: 13}, - {sha: "e8e0d23db92a6714d45966f0ca5075262e2ca912", date: "2020-02-21 14:01:52 +0000", description: "Fixup benches", pr_number: 1883, scopes: [], type: "docs", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 6, deletions_count: 11}, - {sha: "d4c0d54627d3773a44bb3decb3d385d4ec2606af", date: "2020-02-21 17:07:37 +0000", description: "Rename to `sematext_logs`", pr_number: 1871, scopes: ["sematext_logs sink"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 10, insertions_count: 42, deletions_count: 42}, - {sha: "89026d0a9a0dc99022ab116f71ef561995b78c69", date: "2020-02-22 04:10:13 +0000", description: "Better multi-line support", pr_number: 1852, scopes: ["file source"], type: "enhancement", breaking_change: false, author: "MOZGIII", files_count: 6, insertions_count: 915, deletions_count: 103}, - {sha: "7c6995401ca2e7f94a9d82cf0137d9dc45b415ba", date: "2020-02-22 04:46:43 +0000", description: "File doc fix", pr_number: 1896, scopes: [], type: "docs", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 5, deletions_count: 0}, - {sha: "a00295e59ca789f9c1f100a99f6f06c5c772bb84", date: "2020-02-22 20:32:58 +0000", description: "Add support for TLS", pr_number: 1893, scopes: ["kafka source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 44, insertions_count: 341, deletions_count: 122}, - {sha: "452dcc8d97790a1edccd60fddd1281a801bb48b1", date: "2020-02-24 12:20:59 +0000", description: "Support null values in log events", pr_number: 1898, scopes: ["log data model"], type: "enhancement", breaking_change: true, author: "Alexander Rodin", files_count: 8, insertions_count: 45, deletions_count: 2}, - {sha: "ce1231fda37d50969745ca027b2f17bdd16fe283", date: "2020-02-24 16:06:03 +0000", description: "Change `timestamp_key` back to `message_key`", pr_number: 1887, scopes: ["kubernetes source"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "794e473cc6e1834f28ba2681b6de35f5b346672e", date: "2020-02-24 07:17:16 +0000", description: "Initial `rename_fields` transform implementation", pr_number: 1800, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Ana Hobden", files_count: 13, insertions_count: 520, deletions_count: 201}, - {sha: "66d1434e5b46cbc3696fa63b97d3f58f329a9286", date: "2020-02-24 11:17:49 +0000", description: "Add multiline examples", pr_number: 1899, scopes: ["file source"], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 20, insertions_count: 406, deletions_count: 198}, - {sha: "2984ae6575e1f5dfb034e68dc49e5e7ef7a08bf4", date: "2020-02-24 19:31:53 +0000", description: "Reduce RAM usage when running `make test`", pr_number: 1901, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "9e963e5fea682f5a56dcba936258d6b9c1371a97", date: "2020-02-24 11:55:17 +0000", description: "Make note that prod-ready means a stable API", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "binarylogic", files_count: 2, insertions_count: 4, deletions_count: 2}, - {sha: "992b4930b9d3052714cf90b66bfa6ead1d7855b2", date: "2020-02-24 17:13:10 +0000", description: "Add `timestamp_format` field", pr_number: 1634, scopes: ["clickhouse sink"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 4, insertions_count: 185, deletions_count: 4}, - {sha: "0aab35eda9ca3f12fd3deaf31890e5c373e58185", date: "2020-02-24 18:28:13 +0000", description: "Nest request fields", pr_number: null, scopes: ["clickhouse sink"], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 59, deletions_count: 1}, - {sha: "d5ef3cdf0c1cdf3bcc660440ac8a52fae0824309", date: "2020-02-24 19:38:46 +0000", description: "Add `swimlanes` transform", pr_number: 1785, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Ashley Jeffs", files_count: 21, insertions_count: 1003, deletions_count: 179}, - {sha: "f6408958fa06d199f0f03789e250828e0b23c6f2", date: "2020-02-24 20:08:08 +0000", description: "Fix swimlanes documentation", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 5, insertions_count: 87, deletions_count: 90}, - {sha: "6a2ab77beab26cf266a9f60a3e48289cefa9f4f3", date: "2020-02-24 17:02:16 +0000", description: "Use checksum fingerprinting", pr_number: 1912, scopes: ["kubernetes source"], type: "fix", breaking_change: false, author: "Samuel Cormier-Iijima", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "84e59e5505ec3756351aa43e334771437555f6fb", date: "2020-02-25 11:06:25 +0000", description: "Fix `make check-code`", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 4}, - {sha: "11c11c568b1f87f290cab60e70c6d25493eb403d", date: "2020-02-20 11:22:04 +0000", description: "Prepare v0.8.0 release", pr_number: null, scopes: [], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 16, insertions_count: 16467, deletions_count: 9442}, - {sha: "bdad2880e86ebcda84d3f126bb62bd21a86ead00", date: "2020-02-25 14:53:12 +0000", description: "Relax the requirements for `no_outputs_from` unit test targets", pr_number: 1921, scopes: [], type: "chore", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 8, deletions_count: 19}, - {sha: "856bd2803d6766d335210cc562587fdae3f9a204", date: "2020-02-25 15:08:26 +0000", description: "Clean up swimlanes examples", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 2, insertions_count: 32, deletions_count: 22}, - {sha: "b5ffd12d3cfb8921d44b8b7782de02738e32cf51", date: "2020-02-25 18:31:10 +0000", description: "Enable `rdkafka` by default", pr_number: 1918, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "775dc92674bcdb5b1c6773675e6e88e0cba70ad6", date: "2020-02-25 18:35:47 +0000", description: "Fix build with `--no-default-features`", pr_number: 1920, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "dbb870bd5ceddb64d09f8458e2582cf768a266a3", date: "2020-02-25 11:20:16 +0000", description: "Allow kubernetes tests to compile", pr_number: 1911, scopes: ["testing"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - ] -} diff --git a/docs/reference/releases/0.8.2.cue b/docs/reference/releases/0.8.2.cue deleted file mode 100644 index 918cf355228be..0000000000000 --- a/docs/reference/releases/0.8.2.cue +++ /dev/null @@ -1,16 +0,0 @@ -package metadata - -releases: "0.8.2": { - date: "2020-03-06" - codename: "" - - whats_next: [ - ] - - commits: [ - {sha: "361f5d1688a1573e9794c4decb0aec26e731de70", date: "2020-03-05 09:25:36 +0000", description: "Enable file sink in generate subcmd", pr_number: 1989, scopes: ["cli"], type: "fix", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 5, deletions_count: 1}, - {sha: "b709ce7a15e1b42bcaae765902968158b10567ac", date: "2020-03-06 11:37:19 +0000", description: "Explicitly call GC in `lua` transform", pr_number: 1990, scopes: ["lua transform"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 25, deletions_count: 8}, - {sha: "bc81e26f137de5a7ff2b8f893d7839a2052bb8a8", date: "2020-03-06 12:26:59 +0000", description: "Fix broken links", pr_number: null, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 5, insertions_count: 9, deletions_count: 7}, - {sha: "ee998b2078c7019481a25881ee71764e1260c6a5", date: "2020-03-06 12:51:52 +0000", description: "Use new Homebrew installer in CI", pr_number: null, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - ] -} diff --git a/docs/reference/releases/0.9.0.cue b/docs/reference/releases/0.9.0.cue deleted file mode 100644 index afd9c0e14bd04..0000000000000 --- a/docs/reference/releases/0.9.0.cue +++ /dev/null @@ -1,241 +0,0 @@ -package metadata - -releases: "0.9.0": { - date: "2020-04-17" - codename: "The Homestretch" - - whats_next: [ - { - title: "Kubernetes!" - description: "We're doing this integration right. We've been alpha testing with a number of large clusters and we've honed in on a very high-quality approach that reflects the UX Vector is going after. You can learn more in our [Kubernetes Integration RFC][urls.pr_2222]. Feedback is welcome!" - }, - { - title: "WASM Driven Plugin Architecture" - description: "This release included an overhaul of our [`lua` transform][docs.transforms.lua], which represents a big step towards making Vector more flexible. Lua is an excellent language when you need some quick scripting capabilities. But what if you need something more powerful? Like writing your own custom source, transform, or sink? Vector plans to solve this with [WASM][urls.wasm] foreign module support, enabling you to extend Vector in the language of your choice with little performance penalty. ❤️ WASM. Check out the [WASM Foreign Module Support RFC][urls.pr_2341] for more info." - }, - { - title: "Dynamic HTTP Rate-Limiting (AIMD)" - description: "Fiddling with rate-limits is a frustratin endaevor. If you set them too high you risk overwhelming the service; too low and you're unecessarily limiting throughput. And what happens if you deploy a few more Vector instances? Vector is planning to solve this by automatically detecting the optimal rate limits, taking inspiration from TCP congestional control algorithms. Check out the [Dynamic HTTP Rate Limiting RFC][urls.pr_2329]." - }, - { - title: "Vector Observability" - description: "Did you know this release includes a new hidden `internal` source that emits metrics reflecting Vector's own internal state? 👀 We didn't highlight this source because we have not finished instrumenting Vector and we'll be changing the internal schema used.\n\nFun fact, we took an event-driven approach to Vector's internal observability, which we strongly believe in. We want Vector to be a good example of our own advice. Checkout the [Event-Driven Observability RFC][urls.pr_2093]." - }, - ] - - commits: [ - {sha: "177bd7de7e38a24c4a6092c85b8f5eb9d0f5386f", date: "2020-02-25 21:55:37 +0000", description: "Allow setting individual `log_schema.*` options", pr_number: 1923, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 11, deletions_count: 1}, - {sha: "12cc1ca32d56853a99ff6916dcca49466e881dc4", date: "2020-02-26 10:31:46 +0000", description: "Restructure getting started guide", pr_number: 1854, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 198, deletions_count: 78}, - {sha: "fb4bab3b95e6e5eecb7a1a4a5838c76b519f1edb", date: "2020-02-26 14:07:37 +0000", description: "Add behavior test for the `merge` transform", pr_number: 1820, scopes: ["testing"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 71, deletions_count: 0}, - {sha: "33d529feb01e37e98bec3761604a1ca125b3c3df", date: "2020-02-26 08:43:47 +0000", description: "Add TLS support to socket, syslog, and vector sources", pr_number: 1892, scopes: ["socket source", "syslog source", "vector source"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 18, insertions_count: 890, deletions_count: 50}, - {sha: "38864efa4152a1f44154431bf250ddf1c67b91c6", date: "2020-02-26 18:00:02 +0000", description: "Replace `flatten`/`unflatten` by native nesting", pr_number: 1902, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 35, insertions_count: 1083, deletions_count: 662}, - {sha: "d610ee18801f7306be49841b93ccc02aac926d75", date: "2020-02-26 19:09:59 +0000", description: "Upgrade rdkafka to 0.23.1", pr_number: 1928, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 4, insertions_count: 94, deletions_count: 33}, - {sha: "271bcbd13d81e728b814d1273784147e5647a2b5", date: "2020-02-26 20:08:19 +0000", description: "Upgrade lib/file-source to futures 0.3", pr_number: 1934, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 4, insertions_count: 14, deletions_count: 14}, - {sha: "0b92159518732a27837ca1142884ab9a7d34de84", date: "2020-02-26 20:35:49 +0000", description: "Rename futures to futures01", pr_number: 1933, scopes: ["dependencies"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 87, insertions_count: 231, deletions_count: 229}, - {sha: "45b88d47ea8f01605d8e2e5ba7cf8f011f637853", date: "2020-02-26 12:07:44 +0000", description: "Rewrite to use HttpSink and JsonArrayBuffer", pr_number: 1925, scopes: ["gcp_pubsub sink"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 81, deletions_count: 114}, - {sha: "6b5a5e238f266286227695b488a4266f1fd73bba", date: "2020-02-26 15:01:18 +0000", description: "Allow transforms to implement `Stream`", pr_number: 1938, scopes: ["topology"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 24, deletions_count: 8}, - {sha: "5df7c74c6206ddc33afe3c1840e62258bae9baf2", date: "2020-02-26 19:48:41 +0000", description: "Improve Vector README to clarify purpose and position", pr_number: 1943, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 7, insertions_count: 216, deletions_count: 72}, - {sha: "c9a4fcfe9f9e3e042497a94259dc492dd62b3eef", date: "2020-02-27 11:32:48 +0000", description: "Add advanced configs guide", pr_number: 1774, scopes: [], type: "docs", breaking_change: false, author: "Ashley Jeffs", files_count: 4, insertions_count: 182, deletions_count: 0}, - {sha: "b6d197a5b959ce45cd8a4c952c360bfa1c6c22c0", date: "2020-02-27 11:51:30 +0000", description: "Add docs for NixOS", pr_number: 1946, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 14, insertions_count: 323, deletions_count: 2}, - {sha: "5e02ace8c08e9eb703b63908ada9a7663f686faa", date: "2020-02-28 09:27:46 +0000", description: "Increase test logs size", pr_number: 1949, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 27, deletions_count: 22}, - {sha: "1fca6dcd0cd7f94785448128eb2f06d9dccc0bd4", date: "2020-02-28 08:35:00 +0000", description: "Default to `check_fields` condition when specifying conditions", pr_number: 1947, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 18, insertions_count: 30, deletions_count: 41}, - {sha: "5ecbc2843ce8f61553943837782e296031b025e1", date: "2020-02-28 10:47:04 +0000", description: "Add `is_log` and `is_metric` conditions", pr_number: 1950, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 8, insertions_count: 177, deletions_count: 15}, - {sha: "a2b1ef7479c3b49b9734be9dd0f9438ad343a478", date: "2020-02-28 10:30:59 +0000", description: "Add `--log-format` CLI option", pr_number: 1908, scopes: ["cli"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 4, insertions_count: 60, deletions_count: 14}, - {sha: "f07a3d22c9bba01612cc330abaff928df7dce8b2", date: "2020-02-28 19:01:49 +0000", description: "Create feature flags for all components enabling custom Vector builds", pr_number: 1924, scopes: ["operations"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 32, insertions_count: 619, deletions_count: 71}, - {sha: "fdae428c4b8aca0c748ba20ff08478062d327a4b", date: "2020-02-28 20:48:55 +0000", description: "Add TEST_LOG to test-stable CI job", pr_number: 1937, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 2, insertions_count: 5, deletions_count: 0}, - {sha: "e4c83635166e777e53e4813448258c7fbcd6820a", date: "2020-02-28 13:03:15 +0000", description: "Check kube and docker code", pr_number: 1914, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 2, deletions_count: 2}, - {sha: "560fd106fc9a60c12ddf2c32e31ad4f2031ff1f5", date: "2020-02-28 21:55:08 +0000", description: "Upgrade to Rust 1.41.1", pr_number: 1958, scopes: ["dependencies"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "1944ae977dd4143004434589ce4f27cb2714cbaf", date: "2020-03-02 18:34:25 +0000", description: "Initial `http` source implementation", pr_number: 1650, scopes: ["new source"], type: "feat", breaking_change: false, author: "gedkins", files_count: 16, insertions_count: 887, deletions_count: 5}, - {sha: "e3cf8a7ef7712b054e0e37ca2caaa8e7933678ff", date: "2020-03-03 13:24:09 +0000", description: "Remove Google Analytics", pr_number: 1976, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 0, deletions_count: 3}, - {sha: "9d6c7e3288e013aedd672c7832b46e1291ea01ec", date: "2020-03-03 14:16:28 +0000", description: "Add Privacy Policy", pr_number: 1977, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 8, insertions_count: 95, deletions_count: 4}, - {sha: "8d93004cf95163695eb83778090c18369f7c3bf0", date: "2020-03-04 09:14:00 +0000", description: "Add `--fragment` flag to `generate` subcmd", pr_number: 1956, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 40, deletions_count: 12}, - {sha: "f81b205a82976e46a2dfe7e3f4422ae1563f51d7", date: "2020-03-04 09:14:51 +0000", description: "Allow names in `generate` subcmd expression", pr_number: 1955, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 1, insertions_count: 65, deletions_count: 12}, - {sha: "f5663be4b0d90809ef9d73dc18d26844d82f500e", date: "2020-03-04 15:53:57 +0000", description: "Add `check-component-features` target to the main Makefile", pr_number: 1981, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 3, deletions_count: 0}, - {sha: "b22e4d39a60b3e35e605d1f3997c32e14886853d", date: "2020-03-04 11:09:59 +0000", description: "Add TLS support", pr_number: 1968, scopes: ["logplex source", "splunk_hec source"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 15, insertions_count: 731, deletions_count: 196}, - {sha: "23968607e2382561e94b0f5f56b634bf02b046bd", date: "2020-03-04 18:36:16 +0000", description: "Add new `encoding.only_fields` and `encoding.except_fields` options", pr_number: 1915, scopes: ["sinks"], type: "enhancement", breaking_change: false, author: "Ana Hobden", files_count: 72, insertions_count: 4148, deletions_count: 652}, - {sha: "af7756389127cf51acdab175f67c573af6ef921d", date: "2020-03-05 12:48:59 +0000", description: "Add RFC process", pr_number: 1961, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 140, deletions_count: 21}, - {sha: "9f793a7fc929a346ae726fce19efd7279b6f241e", date: "2020-03-06 10:40:32 +0000", description: "Move all TLS support over to openssl", pr_number: 1986, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 36, insertions_count: 776, deletions_count: 374}, - {sha: "179801c8c09c06dd0759291815aca21a1ca794c5", date: "2020-03-07 00:49:04 +0000", description: "Describe dot notation in the docs", pr_number: 1996, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 69, deletions_count: 8}, - {sha: "3beb67e10c355af2d7bb69bba2fc1b56ac11aa85", date: "2020-03-09 15:35:03 +0000", description: "Add `contains` and `prefix` predicates", pr_number: 1997, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Ashley Jeffs", files_count: 5, insertions_count: 295, deletions_count: 4}, - {sha: "50a171b19ccb86a8f3559975e154033a627e8c3f", date: "2020-03-09 13:49:27 +0000", description: "Update examples to use inline TOML", pr_number: 2004, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 158, insertions_count: 3362, deletions_count: 2841}, - {sha: "eeffdb08cad3f0956a8ff6079aeb5a57ebf5220c", date: "2020-03-09 12:21:42 +0000", description: "Add support for compression", pr_number: 1969, scopes: ["kafka sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 14, insertions_count: 172, deletions_count: 87}, - {sha: "c86708675d1356fcbc512ec15174bf12d842c121", date: "2020-03-09 17:57:39 +0000", description: "Cleanup field requirements", pr_number: 2013, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 98, insertions_count: 1908, deletions_count: 1882}, - {sha: "33c6345b1026021b5a94b932c42f20c97c66e8d8", date: "2020-03-09 21:07:19 +0000", description: "Fix examples and clarify nested behavior", pr_number: 1905, scopes: ["rename_fields transform"], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 31, insertions_count: 485, deletions_count: 221}, - {sha: "303ab5362eec135a5858c3caaa4f43f8f048a1b1", date: "2020-03-10 10:18:26 +0000", description: "Pull fresh containers on test", pr_number: 2019, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "aa523b00977c89a44d7cbb17e7e7d0bf3e179c1a", date: "2020-03-10 19:30:09 +0000", description: "Fix race condition in test", pr_number: 2026, scopes: ["statsd sink"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 7, deletions_count: 0}, - {sha: "0eb5023fc3136d97fad0353ff74fc865b24be96e", date: "2020-03-10 22:10:08 +0000", description: "Refactor to use util/HttpSource", pr_number: 2014, scopes: ["logplex source"], type: "chore", breaking_change: false, author: "Bill", files_count: 1, insertions_count: 70, deletions_count: 52}, - {sha: "532c048e8cbced42b2699b6120f0981eff73c58e", date: "2020-03-10 20:44:45 +0000", description: "Initial `dedupe` transform implementation", pr_number: 1848, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Spencer T Brody", files_count: 15, insertions_count: 1108, deletions_count: 2}, - {sha: "b2d303d0f8c004dd0d9437c35f11eb9554bf4093", date: "2020-03-10 21:53:22 +0000", description: "Initial 'tag_cardinality_limit' transform implementation", pr_number: 1959, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Spencer T Brody", files_count: 14, insertions_count: 1066, deletions_count: 2}, - {sha: "dec0430fddf2a6603dc4d6fc08b2f45e7ccaa974", date: "2020-03-11 11:47:26 +0000", description: "Reshuffle timeout in test", pr_number: 2035, scopes: ["statsd sink"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 8, deletions_count: 6}, - {sha: "0d9c2c98b8dfcb24ee08c0d0e536238208fe44dd", date: "2020-03-11 12:13:28 +0000", description: "Refactor internal http client", pr_number: 2029, scopes: ["networking"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 18, insertions_count: 490, deletions_count: 333}, - {sha: "6be3986d8d451f6630a679cd180d7434f706d66a", date: "2020-03-11 10:44:28 +0000", description: "Add support for TLS", pr_number: 2025, scopes: ["vector sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 322, deletions_count: 13}, - {sha: "8e4986d21497a0dcc2ad87e517df6a50feb23086", date: "2020-03-11 20:38:22 +0000", description: "Add PR checklist", pr_number: 2010, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 29, deletions_count: 0}, - {sha: "1de3f2f2900c63390cde2a81a28c51ff6652ab7c", date: "2020-03-12 11:38:53 +0000", description: "Initial `papertrail` sink implementation", pr_number: 1835, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 15, insertions_count: 773, deletions_count: 1}, - {sha: "f12df1571869a4014c39eff4b413555c0a54e05d", date: "2020-03-12 11:52:29 +0000", description: "Upgrade to rustc `1.42.0`", pr_number: 2043, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "9e5e20f1c7667d1a890e7effcb83ebf86881dd62", date: "2020-03-12 13:42:55 +0000", description: "Add markdown linting", pr_number: 2020, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 136, insertions_count: 4009, deletions_count: 1191}, - {sha: "31ee4126f750b1cd182baeab70fde05d88c139d9", date: "2020-03-12 14:02:30 +0000", description: "Add `timeout` query parameter", pr_number: 2038, scopes: ["elasticsearch sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "4d5f36e2f9816b42591dc6f0fba4baa1f6f82d6f", date: "2020-03-12 14:03:30 +0000", description: "Rename `host_field` to `host_key`", pr_number: 2037, scopes: ["splunk_hec sink"], type: "chore", breaking_change: true, author: "Bruce Guenter", files_count: 4, insertions_count: 53, deletions_count: 9}, - {sha: "73ad2d1195fc14665cb3df2abe62fa9eb3c53112", date: "2020-03-12 14:43:28 +0000", description: "Fix the papertrail docs", pr_number: 2051, scopes: ["papertrail sink"], type: "docs", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 32, deletions_count: 5}, - {sha: "3f33a2d7943f483fc1806c26247c339fbec89fc6", date: "2020-03-12 16:44:31 +0000", description: "Check lockfile over cargo.toml", pr_number: 2050, scopes: ["operations"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "18986f2af9eca178d422dc8eab7e66672c2a5337", date: "2020-03-12 17:41:38 +0000", description: "Re-run doc generation", pr_number: 2052, scopes: ["docs"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 5, deletions_count: 1}, - {sha: "23f9fa7cfa3621765b6ddcfb690cd0d2e1182bae", date: "2020-03-13 18:03:36 +0000", description: "Add `target` directory to `.markdownlintignore`", pr_number: 2054, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "122778d90ffb7644e6811543696c845a1fb0417d", date: "2020-03-13 09:44:02 +0000", description: "Add new `key_field` option", pr_number: 2039, scopes: ["sampler transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 6, insertions_count: 112, deletions_count: 16}, - {sha: "034790b921a763b2f78b1b220e415ca560fc0622", date: "2020-03-13 22:03:09 +0000", description: "Fix for \"download source code\" step in install from source", pr_number: 2027, scopes: [], type: "docs", breaking_change: false, author: "Yuriy Vasiyarov", files_count: 2, insertions_count: 10, deletions_count: 22}, - {sha: "ffdbacb509d9057c74bbea0ae446f3fd7433a319", date: "2020-03-13 21:10:42 +0000", description: "Improve syslog source example", pr_number: 2059, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 92, deletions_count: 14}, - {sha: "f3f8567876192202e60c5ac377b98b76a04aba49", date: "2020-03-14 14:27:59 +0000", description: "Fix `check-component-features` test", pr_number: 2061, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "163e001ca0a9de48da31ffd1e4013fb13e6027e3", date: "2020-03-14 10:37:35 +0000", description: "Initial `honeycomb` sink implementation", pr_number: 1847, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 14, insertions_count: 1102, deletions_count: 1}, - {sha: "e4104549ee1c0bd56e3978adf458dfdd5c7c6506", date: "2020-03-16 10:24:29 +0000", description: "Force `symlink` re-evaluation when detecting a changed Vector config", pr_number: 2034, scopes: ["config"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 67, deletions_count: 15}, - {sha: "874c0c079538ce39c8259e1ca477fab49d3acddd", date: "2020-03-16 15:12:43 +0000", description: "Add `version` configuration option", pr_number: 2056, scopes: ["lua transform"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 9, insertions_count: 755, deletions_count: 38}, - {sha: "606dedbb689c9480c3724df92040edf5217d1b8d", date: "2020-03-16 11:46:51 +0000", description: "Part 1 of `HttpSink` refactor", pr_number: 2072, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 5, insertions_count: 286, deletions_count: 290}, - {sha: "21405209c288ef78fe91ccdb4948b972b5d23b5a", date: "2020-03-16 12:23:29 +0000", description: "Ensure white-space dooes not break parsing", pr_number: 2060, scopes: ["json_parser transform"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 19, deletions_count: 0}, - {sha: "b237576ceb416a58ec85e8eaefc1b075ef7d1a52", date: "2020-03-16 20:00:01 +0000", description: "Fix insertion to arrays in field path notation", pr_number: 2062, scopes: ["transforms"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 35, deletions_count: 7}, - {sha: "7ecec0efc404a326f93d315df07d49632d1bd752", date: "2020-03-16 20:17:20 +0000", description: "Support nested fields and arrays", pr_number: 1936, scopes: ["merge transform"], type: "fix", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 90, deletions_count: 0}, - {sha: "e598e1f5cfa35171da0873e36e65e462f8260701", date: "2020-03-17 00:30:16 +0000", description: "Update tagline", pr_number: 2079, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 7, insertions_count: 9, deletions_count: 9}, - {sha: "c8a5e4f3631a9f483cfcfcb2f25c0d3de6480feb", date: "2020-03-17 14:48:09 +0000", description: "RFC #1999 - 2020-03-06 - API extensions for `lua` transform", pr_number: 2000, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 702, deletions_count: 0}, - {sha: "7dacc02c954d55810e1cfed00e76745f23747f69", date: "2020-03-17 17:01:59 +0000", description: "Support escaping in the field path notation", pr_number: 2081, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 22, deletions_count: 0}, - {sha: "45a5cf7b96f39327f5a511d546518dbcb05eba7a", date: "2020-03-17 17:13:48 +0000", description: "Upgrade `regex` dependency", pr_number: 2083, scopes: ["dependencies"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 5, deletions_count: 5}, - {sha: "d93c7240ecbcf0b338df60182c8909ab79d1367c", date: "2020-03-17 10:23:35 +0000", description: "Consolidate \"Configuration\" and \"Options\" sections", pr_number: 2085, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 133, insertions_count: 301, deletions_count: 522}, - {sha: "b9483a9edbb7633ce6b6de2af427b48bef71dee6", date: "2020-03-17 10:26:05 +0000", description: "Upgrade dependencies", pr_number: 2086, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 94, deletions_count: 89}, - {sha: "dd55d9d51e2d3b5b12ac63cadd30613b946afa05", date: "2020-03-17 11:28:55 +0000", description: "Part 2 of `HttpSink` refactor", pr_number: 2075, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 228, deletions_count: 212}, - {sha: "07c42a100ca147aef93fa72fdddaca4a2dafd51c", date: "2020-03-17 09:34:09 +0000", description: "Fix handling of message array data", pr_number: 2053, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 67, deletions_count: 22}, - {sha: "ff7b0fb416878ec40b163d2e2ee5aaf5464e3f15", date: "2020-03-17 19:46:47 +0000", description: "Use `--release` Cargo flag in `make build`", pr_number: 2087, scopes: ["setup"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "56bad9d02543fa0861df5262afcb59b09f12580c", date: "2020-03-18 16:23:11 +0000", description: "Pin tag for `loki` Docker image", pr_number: 2091, scopes: ["testing"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "ccd3cf7f08fdad22ca5cbdacf4647e29b4b83798", date: "2020-03-19 02:02:55 +0000", description: "Switch to `tokio-compat` to start the transition to our new async runtime", pr_number: 1922, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 9, insertions_count: 117, deletions_count: 71}, - {sha: "e596cc1046496640ef6e4e38b58d5cb93cea5760", date: "2020-03-18 16:39:41 +0000", description: "Refactor source shutdown and make it two-phase", pr_number: 1994, scopes: ["topology"], type: "chore", breaking_change: false, author: "Spencer T Brody", files_count: 27, insertions_count: 875, deletions_count: 68}, - {sha: "b8f144527bda15e98e4e91d42d8ab6306169af85", date: "2020-03-19 18:12:52 +0000", description: "Add `*_flat` methods for log events", pr_number: 2082, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 38, deletions_count: 0}, - {sha: "9716e0bbf8d401e53fbb08492f8fa27611a8d889", date: "2020-03-19 19:50:46 +0000", description: "Upgrade file sink for tokio-compat", pr_number: 1988, scopes: ["file sink"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 12, insertions_count: 620, deletions_count: 478}, - {sha: "ba2ae6b9352c7499c6858a0257e3f8dd01bb522c", date: "2020-03-19 10:41:35 +0000", description: "Allow native TOML tables", pr_number: 2068, scopes: ["add_fields transform"], type: "enhancement", breaking_change: false, author: "Ana Hobden", files_count: 3, insertions_count: 54, deletions_count: 50}, - {sha: "99bb140b345e7a1a51dfb2b3596cd9897c7721d2", date: "2020-03-19 22:40:58 +0000", description: "Correct doctest at src/stream.rs", pr_number: 2097, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "07343ac9d7ad06e9704e5a12b8d96c873a300162", date: "2020-03-19 23:30:59 +0000", description: "Upgrade console sink for tokio 0.2", pr_number: 2096, scopes: ["console sink"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 8, insertions_count: 75, deletions_count: 34}, - {sha: "c8b47b3230a4b790d8cda0e47265771666581f98", date: "2020-03-19 23:13:15 +0000", description: "Initial `pulsar` sink implementation", pr_number: 1665, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Evan Cameron", files_count: 17, insertions_count: 914, deletions_count: 1}, - {sha: "c800c2c9b166dc78ade84dc22c152c1d0a0fff76", date: "2020-03-20 20:39:37 +0000", description: "Correct Cargo.lock", pr_number: 2105, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "14c0a632ae09ce22cc3818c5f5ad9f09023571dc", date: "2020-03-20 11:56:59 +0000", description: "Add new `drop_empty` option to drop empty objects automatically", pr_number: 2077, scopes: ["remove_fields transform", "rename_fields transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 11, insertions_count: 321, deletions_count: 48}, - {sha: "9d6be3193dfbb9624d9549137802a7abdde8c40a", date: "2020-03-20 21:33:38 +0000", description: "Fix `x86_64-pc-windows-msvc` build", pr_number: 2103, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 6, deletions_count: 4}, - {sha: "1d6928c28bbe0ca929bb00ff98d83dcdd3cf650c", date: "2020-03-20 21:40:09 +0000", description: "Name the time specifiers as `strftime` in the templating docs", pr_number: 2107, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 15, insertions_count: 22, deletions_count: 22}, - {sha: "838a80bd486e2112f05725d4306dc68b8e5a70c3", date: "2020-03-20 14:15:26 +0000", description: "Make RunningTopology::stop() signal all sources to shut down using the new ShutdownCoordinator (1091)", pr_number: 2098, scopes: ["topology"], type: "chore", breaking_change: false, author: "Spencer T Brody", files_count: 6, insertions_count: 255, deletions_count: 157}, - {sha: "2675d77241d7c9d5f6b7203a7d4f95ca0a925991", date: "2020-03-23 20:02:15 +0000", description: "Racy buffering tests correction", pr_number: 2106, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 5, insertions_count: 439, deletions_count: 298}, - {sha: "3e881bfa2dc6959928aedc0e64e576b86ed8f4b0", date: "2020-03-23 13:50:48 +0000", description: "Initial `datadog_logs` sink implementation", pr_number: 1832, scopes: ["new sink"], type: "feat", breaking_change: false, author: "Lucio Franco", files_count: 16, insertions_count: 1082, deletions_count: 7}, - {sha: "ce7bdbaf7155c74f1a4f2e9fd5d50d2c3a92899f", date: "2020-03-23 14:05:42 +0000", description: "Add test harness GH action", pr_number: 2028, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 142, deletions_count: 0}, - {sha: "9be091bc2497b9df5af948d6d13ed952fe454477", date: "2020-03-23 13:21:20 +0000", description: "TLS reorganization", pr_number: 2101, scopes: [], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 17, insertions_count: 586, deletions_count: 473}, - {sha: "f1bb0c65d5230ea03905cf3741fa11f3ec281b47", date: "2020-03-23 14:53:16 +0000", description: "Rename `gcp_stackdriver_logging` sink to `gcp_stackdriver_logs`", pr_number: 2121, scopes: ["gcp_stackdrive_logging sink"], type: "fix", breaking_change: true, author: "Bruce Guenter", files_count: 12, insertions_count: 55, deletions_count: 55}, - {sha: "ff4a6dccefc16f56910d49b996f797ef75de1759", date: "2020-03-24 16:28:51 +0000", description: "Support metric events in version 2", pr_number: 2095, scopes: ["lua transform"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 11, insertions_count: 1254, deletions_count: 130}, - {sha: "0088ebd712f97906bbf6894f0165385cf59a535b", date: "2020-03-24 10:25:29 +0000", description: "Revert \"Use MaybeTlsListener in TcpSource\"", pr_number: 2129, scopes: ["networking"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 3, insertions_count: 62, deletions_count: 47}, - {sha: "6edfbc9e7b498bdade9e52d5462b260f50f83792", date: "2020-03-24 13:40:29 +0000", description: "Make LogSchema more optional", pr_number: 2113, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Ana Hobden", files_count: 15, insertions_count: 92, deletions_count: 65}, - {sha: "25e76f7e0590fa23d4efd17483949f5df80ca83b", date: "2020-03-24 17:11:33 +0000", description: "Add `User-agent` header to all outgoing HTTP requests", pr_number: 2130, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 11, deletions_count: 7}, - {sha: "2121b7dfa3cdaa342e8a7dbcafb8e3531c36f875", date: "2020-03-25 01:59:52 +0000", description: "Rename tokio -> tokio01 and tokio02 -> tokio", pr_number: 2131, scopes: ["dependencies"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 50, insertions_count: 76, deletions_count: 78}, - {sha: "2671cb5f82a89cea1c9d081c3051aa7123017a85", date: "2020-03-24 21:08:00 +0000", description: "Relax PR check list to only fire on important changes", pr_number: 2136, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 0, deletions_count: 6}, - {sha: "fe2e12ce89bc69657851a7a8f4dfeb3b4d334dc8", date: "2020-03-25 16:31:59 +0000", description: "Add new `index` option to specify custom Splunk indexes", pr_number: 2127, scopes: ["splunk_hec sink"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 5, insertions_count: 100, deletions_count: 7}, - {sha: "7ab9df34cdc8e7d0d6155bfbbd58aff61cfaad64", date: "2020-03-25 20:07:09 +0000", description: "Update `bumpalo` dependency in `Cargo.lock`", pr_number: 2141, scopes: ["dependencies"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "6443f9c7a6b376d662a2a59b59c433209c9eb872", date: "2020-03-25 12:46:54 +0000", description: "Fix handling of incoming TLS connections", pr_number: 2146, scopes: ["networking"], type: "chore", breaking_change: false, author: "Bruce Guenter", files_count: 7, insertions_count: 205, deletions_count: 136}, - {sha: "113bb800937be0f240b92fe95396a9740e7fbb15", date: "2020-03-25 12:31:40 +0000", description: "The `add_fields`, `remove_fields`, and `rename_fields` now produce a debug log when a field is replaced or non-existent", pr_number: 2148, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Ana Hobden", files_count: 17, insertions_count: 102, deletions_count: 42}, - {sha: "fc19c12027ebaf97764b5538c04e52974381b574", date: "2020-03-25 20:18:54 +0000", description: "Simplify domains for labels, etc", pr_number: 2152, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 4, insertions_count: 17, deletions_count: 53}, - {sha: "0a5eccd17973dba291423ae3e151706aa82e1e7e", date: "2020-03-26 17:42:42 +0000", description: "Upstream github-script action at test harness workflow", pr_number: 2157, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "a8ed1f7aa62266bd051c120d5f06cd4c105f8709", date: "2020-03-26 21:09:49 +0000", description: "Switch to upstream repo-permission-check-action", pr_number: 2158, scopes: ["operations"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "16c714e190f9711810194bf9fd3f48c5730aec2f", date: "2020-03-27 00:13:46 +0000", description: "Add LogEvent::new", pr_number: 2154, scopes: [], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 6, insertions_count: 34, deletions_count: 38}, - {sha: "3cb486531d49e1702ea6bbf20c619c3d3476201a", date: "2020-03-27 12:26:47 +0000", description: "Increase default rate limit to allow for higher throughput", pr_number: 2161, scopes: ["aws_s3 sink"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 4, insertions_count: 14, deletions_count: 14}, - {sha: "068f289ffca61e5631237760c88deaf90ca0ab24", date: "2020-03-27 10:49:02 +0000", description: "Add support for UDP mode", pr_number: 2162, scopes: ["socket sink"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 8, insertions_count: 304, deletions_count: 40}, - {sha: "53ae00b610a526050a6f90121d91c3b100a386f7", date: "2020-03-27 15:58:49 +0000", description: "Remove package managers from install script", pr_number: 2165, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 5, deletions_count: 118}, - {sha: "de932f7f2a345923476bbaef1cbd44d91ce06870", date: "2020-03-27 22:59:40 +0000", description: "Support ARM architectures in the install script", pr_number: 2167, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 6, deletions_count: 0}, - {sha: "f2f9b269d9f9dfe9b1d2af60821711c4c101cdd9", date: "2020-03-28 19:08:04 +0000", description: "Make config on the main page pass `vector validate`", pr_number: 2168, scopes: [], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 6, deletions_count: 5}, - {sha: "49cac24a70f5530507bf50d977edbcecc9df2c4f", date: "2020-03-28 20:32:11 +0000", description: "Disable duplicated version output in `make version`", pr_number: 2169, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 0, deletions_count: 1}, - {sha: "402e8c3ae0af6bbafa18aea729d684bca78f61cd", date: "2020-03-29 19:52:23 +0000", description: "Enable Kubernetes tests", pr_number: 1970, scopes: ["tests"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 9, insertions_count: 215, deletions_count: 8}, - {sha: "686919a34b89a295185ce5326855eb2534cd523c", date: "2020-03-30 16:56:55 +0000", description: "Use `UTC` instead of `Europe/London` in ClickHouse tests", pr_number: 2178, scopes: ["tests"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "9b5dd8b48ae4ce4930cac0328cd11ad48ad89e57", date: "2020-03-30 10:20:08 +0000", description: "Add support for `tls.verify_hostname` in HTTP based sinks", pr_number: 2164, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 15, insertions_count: 251, deletions_count: 9}, - {sha: "8ac0fdebcbacf04a6bf72a3314f414520ef306b2", date: "2020-03-30 10:46:59 +0000", description: "Add `have: *` labels", pr_number: 2179, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 112, deletions_count: 0}, - {sha: "7b2ff837cf550f3721b8b187432d9e33229d7ea1", date: "2020-03-30 11:17:11 +0000", description: "Rename `prefix` condition predicate to `starts_with`", pr_number: 2181, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 71, deletions_count: 21}, - {sha: "e06aff56ac8cd7f041795262a812b74552bb96c7", date: "2020-03-31 09:05:05 +0000", description: "Add new `ends_with` condition predicate", pr_number: 2183, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 150, deletions_count: 0}, - {sha: "9b2d89572e54988a339c51bb26a47fb6205286e2", date: "2020-03-31 13:33:44 +0000", description: "Add new guides section", pr_number: 2132, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1118, insertions_count: 74832, deletions_count: 6156}, - {sha: "1525ef63c32884069ddb782e1397cbb6892dc0b9", date: "2020-03-31 17:27:41 +0000", description: "Check for and log partial ingestion failures", pr_number: 2185, scopes: ["elasticsearch sink"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 180, deletions_count: 44}, - {sha: "2463e1330237d98e0f111c796724423010b6b222", date: "2020-03-31 18:08:24 +0000", description: "Initial `filter` transform implementation", pr_number: 2088, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Bruce Guenter", files_count: 21, insertions_count: 686, deletions_count: 22}, - {sha: "ef86f521a4cf3dc63ae33902e3a43fb2e30c261d", date: "2020-04-01 08:26:38 +0000", description: "Deprecate in favor of the new `filter` transform", pr_number: 2195, scopes: ["field_filter transform"], type: "enhancement", breaking_change: false, author: "Binary Logic", files_count: 13, insertions_count: 12, deletions_count: 326}, - {sha: "a73222e591eabf3e95a0467712bcdaf2855fae99", date: "2020-04-01 10:29:17 +0000", description: "Update to Docusaurus 2.0.0-alpha.49", pr_number: 2196, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 443, insertions_count: 1681, deletions_count: 2029}, - {sha: "a2ea56c9cb152d458a14f562ada6c04f126b3ebc", date: "2020-04-01 13:15:20 +0000", description: "Refactor internal sinks and simplify", pr_number: 2111, scopes: ["sinks"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 38, insertions_count: 1748, deletions_count: 1245}, - {sha: "9add2cbe5357167393c4c8bb0b73a1377d58acda", date: "2020-04-01 19:41:57 +0000", description: "Inital `kubernetes_pod_metadata` transform implementation", pr_number: 1888, scopes: ["new transform"], type: "feat", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 109, insertions_count: 2229, deletions_count: 2696}, - {sha: "9b8ba8edf4f857e0305eb1157bb0a6e8fe56490e", date: "2020-04-01 14:24:12 +0000", description: "Add new `regex` condition predicate", pr_number: 2198, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 8, insertions_count: 223, deletions_count: 4}, - {sha: "029c0bf6cd0359f08bc7cef99eb4ca6502a52252", date: "2020-04-01 14:25:13 +0000", description: "Warn that old `field_filter` transform is deprecated", pr_number: 2197, scopes: ["observability"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 4, deletions_count: 0}, - {sha: "ddd54782d5eeac8f91c7841a3cb29d66ab169e95", date: "2020-04-01 14:37:04 +0000", description: "Add new `target_field` option", pr_number: 2023, scopes: ["regex_parser transform"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 5, insertions_count: 289, deletions_count: 79}, - {sha: "dd9e328faf7b41269cd87ce45b668c1dcd610f92", date: "2020-04-02 00:13:22 +0000", description: "Rename map_values_array to array_values_insertion_order test at discriminant", pr_number: 2140, scopes: ["testing"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "45f3c09bc8bad8e05429b9c86eab5c34ed8f5928", date: "2020-04-01 18:36:57 +0000", description: "add event-driven observability rfc", pr_number: 2093, scopes: [], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 275, deletions_count: 0}, - {sha: "f26b0add310476ad58eb80fcb43e240737fdb617", date: "2020-04-02 09:56:34 +0000", description: "Fix `make generate` command", pr_number: 2205, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 2, insertions_count: 1, deletions_count: 2}, - {sha: "490f984763c33cf38d0b39545c8354109da22e38", date: "2020-04-02 10:44:15 +0000", description: "Add missing `compression` option and…", pr_number: 2206, scopes: ["elasticsearch sink"], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 6, insertions_count: 159, deletions_count: 30}, - {sha: "6d17361cadccafb470083cbd54ee84d68129b8ed", date: "2020-04-02 11:56:52 +0000", description: "Improve Windows Makefile support", pr_number: 2150, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 12, deletions_count: 4}, - {sha: "c38aeb298e47d34cc4b19af290fb8d6b46589c91", date: "2020-04-02 23:26:59 +0000", description: "Lift the internal thread limit to enable full concurrency", pr_number: 2145, scopes: [], type: "perf", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 4, deletions_count: 5}, - {sha: "5ec77297736c14b291d7b18bc425cf91fd8629e8", date: "2020-04-02 21:54:54 +0000", description: "minor fixes in Loki sink documentation", pr_number: 2211, scopes: [], type: "docs", breaking_change: false, author: "Brad Fritz", files_count: 2, insertions_count: 10, deletions_count: 10}, - {sha: "1136cb5af597e10b6387c75451ee477c4aca45d4", date: "2020-04-02 22:03:26 +0000", description: "fix \"issie\" typo", pr_number: 2212, scopes: [], type: "docs", breaking_change: false, author: "Brad Fritz", files_count: 20, insertions_count: 38, deletions_count: 38}, - {sha: "b3450b3be8775a830bac9e734c1bbb37820adf6a", date: "2020-04-03 09:27:55 +0000", description: "Detect TCP disconnects earlier", pr_number: 2209, scopes: ["networking"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 52, deletions_count: 15}, - {sha: "8d110c0a03edb5faf02a8be8854d1a77148daee9", date: "2020-04-03 10:55:15 +0000", description: "disable flaky test", pr_number: 2215, scopes: ["topology"], type: "chore", breaking_change: false, author: "Luke Steensen", files_count: 1, insertions_count: 1, deletions_count: 0}, - {sha: "1d31f2bc76b20cd0da7ebc1b4838e8014078b061", date: "2020-04-03 20:43:35 +0000", description: "Fix disk pressure ", pr_number: 2217, scopes: ["tests"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "eb60ce21c16514c039e5ffe59edc24c5291ca752", date: "2020-04-05 09:56:35 +0000", description: "Fix sitemap URLs and CSS layouts", pr_number: 2229, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 36, insertions_count: 753, deletions_count: 424}, - {sha: "906d6db0177ecfdb27020d0a85bcf4b65e43ee57", date: "2020-04-05 11:54:15 +0000", description: "RPM for aarch64 was using armv7", pr_number: 2220, scopes: ["operations"], type: "chore", breaking_change: false, author: "Brad Fritz", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "e0a2451787fcca948cbc27fb0e25482a5ababa96", date: "2020-04-05 12:28:19 +0000", description: "Default `compression` to `none`", pr_number: 2219, scopes: ["elasticsearch sink"], type: "fix", breaking_change: true, author: "Bruce Guenter", files_count: 154, insertions_count: 1651, deletions_count: 90}, - {sha: "30808b5d3bd6b2bde6aed454a61ee36642473262", date: "2020-04-06 15:06:48 +0000", description: "Add field tests", pr_number: 2213, scopes: ["kubernetes_pod_metadata transform"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 135, deletions_count: 20}, - {sha: "22cff2e9b74f60ef5e2e486576e7f695695076b8", date: "2020-04-06 20:18:28 +0000", description: "Add `-qqq` command line flag to disable logs", pr_number: 2230, scopes: ["cli"], type: "feat", breaking_change: false, author: "Felix", files_count: 3, insertions_count: 20, deletions_count: 15}, - {sha: "23d2ef5229a5a6979c0174e573960d3a1e101392", date: "2020-04-06 15:00:24 +0000", description: "Add basic module docs", pr_number: 2233, scopes: ["topology"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 8, deletions_count: 0}, - {sha: "130df3199139bfa84648d235ed34a0c292f2cfa8", date: "2020-04-06 15:47:59 +0000", description: "Pass `tls` settings to healthcheck", pr_number: 2234, scopes: ["loki sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 2, deletions_count: 1}, - {sha: "6dde571f89638ecc28f5c633415febff0729e198", date: "2020-04-06 23:16:43 +0000", description: "Don't use `buildx` plugin by default", pr_number: 2239, scopes: ["operations"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 25, deletions_count: 13}, - {sha: "7d9ebc3d580eff9d12f31563306d0d8bf3285248", date: "2020-04-06 16:38:58 +0000", description: "Add verify cert notes", pr_number: 2240, scopes: ["security"], type: "docs", breaking_change: false, author: "Lucio Franco", files_count: 31, insertions_count: 216, deletions_count: 54}, - {sha: "5890e2468e1d4c2a48e02c7d5235e9b9f65a29fc", date: "2020-04-07 10:22:18 +0000", description: "Pass `tls` settings to healthcheck", pr_number: 2238, scopes: ["influxdb_metrics sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 21, deletions_count: 11}, - {sha: "0d0a8fab60439834e6be155f4c0b616bfd77faec", date: "2020-04-07 18:34:59 +0000", description: "Implement all hooks and timers in version 2 ", pr_number: 2126, scopes: ["lua transform"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 85, insertions_count: 5940, deletions_count: 4060}, - {sha: "2f803293dbbe793c4a849b344feb5e4ae6d52e1b", date: "2020-04-07 20:53:16 +0000", description: "Support metric events", pr_number: 2245, scopes: ["vector source", "vector sink"], type: "enhancement", breaking_change: false, author: "Alexander Rodin", files_count: 6, insertions_count: 28, deletions_count: 13}, - {sha: "e4c383881b7727289a87327fcd081b1f366952a6", date: "2020-04-07 21:48:50 +0000", description: "Fix link to the Docker platform on the main page", pr_number: 2249, scopes: ["website"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "11a898c824ca2955c75a4d58e87081bfb4bb2f2e", date: "2020-04-07 22:23:19 +0000", description: "Document default value for `acl`", pr_number: 2252, scopes: ["gcp_cloud_storage sink"], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 3, insertions_count: 5, deletions_count: 4}, - {sha: "230cd45552021ea499d47d6b39f74730dbdc2a40", date: "2020-04-07 15:31:22 +0000", description: "Improve `logfmt_parser` docs and examples", pr_number: 2251, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 25, insertions_count: 834, deletions_count: 525}, - {sha: "febbdfb39546c15a430b808226a03ad5a5bc41ec", date: "2020-04-07 22:58:54 +0000", description: "Use external tagging for metrics serialization", pr_number: 2231, scopes: ["ux"], type: "enhancement", breaking_change: true, author: "Alexander Rodin", files_count: 7, insertions_count: 183, deletions_count: 232}, - {sha: "a9efeb9c8a45209c0fb64f0d043500a19f41fa7f", date: "2020-04-08 17:10:31 +0000", description: "Use cat with heredoc instead of echo and quotes", pr_number: 2262, scopes: ["website"], type: "chore", breaking_change: false, author: "MOZGIII", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "f9c4b4ba1282d7cd4cc3b773305e611beac7a99f", date: "2020-04-08 16:19:14 +0000", description: "Add `source_key` and `source_type_key` to…", pr_number: 2244, scopes: ["config"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 6, insertions_count: 198, deletions_count: 2}, - {sha: "6b7cc0cf1009ecb1c62c7d1458945203a9ea5f48", date: "2020-04-08 22:52:35 +0000", description: "Use kebab case for ACL encoding", pr_number: 2259, scopes: ["gcp_cloud_storage sink"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "5111f3a5b522fa06ca2ddf321e668246a78dc9fa", date: "2020-04-08 15:23:05 +0000", description: "Initial `internal` metrics source implementation", pr_number: 1953, scopes: ["new source"], type: "feat", breaking_change: false, author: "Luke Steensen", files_count: 38, insertions_count: 1332, deletions_count: 654}, - {sha: "308351a572c5e881454c6d73b8a9d6c92eac9a9e", date: "2020-04-08 16:42:27 +0000", description: "Accept metrics as input", pr_number: 2267, scopes: ["filter transform"], type: "enhancement", breaking_change: false, author: "Binary Logic", files_count: 6, insertions_count: 34, deletions_count: 15}, - {sha: "04e2bf3abef0af3a9398f6c97f917c3658fd993f", date: "2020-04-08 23:54:49 +0000", description: "Fix healthchecks", pr_number: 2276, scopes: ["aws_kinesis_firehose sink"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 13, deletions_count: 16}, - {sha: "162e064e6c57c7b38d010893c041728ba40adb0a", date: "2020-04-08 18:53:35 +0000", description: "Only run required requests based on the supplied `fields`", pr_number: 2265, scopes: ["aws_ec2_metadata transform"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 35, deletions_count: 48}, - {sha: "e9192ad2b2755c3bd1ee59f6b13f255ac4efd8f3", date: "2020-04-09 12:40:00 +0000", description: "Set `search_dirs` to config dirs by default", pr_number: 2274, scopes: ["lua transform"], type: "enhancement", breaking_change: true, author: "Alexander Rodin", files_count: 7, insertions_count: 42, deletions_count: 13}, - {sha: "90f55ff7ae3222c05971482b72c4715d29a83ac9", date: "2020-04-09 14:19:17 +0000", description: "Add blog post on how we test vector", pr_number: 1363, scopes: [], type: "docs", breaking_change: false, author: "Luke Steensen", files_count: 14, insertions_count: 492, deletions_count: 19}, - {sha: "0b1ca4efe31e04d2c7c4e61e40112833dc3eb372", date: "2020-04-09 15:12:30 +0000", description: "Make ACL optional", pr_number: 2283, scopes: ["gcp_cloud_storage sink"], type: "enhancement", breaking_change: true, author: "Bruce Guenter", files_count: 4, insertions_count: 18, deletions_count: 12}, - {sha: "6d4d3b48b1563ef30f312eb7e2a4ef4f9df84652", date: "2020-04-10 09:41:25 +0000", description: "Add elegant shutdown behavior", pr_number: 2260, scopes: ["docker source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 14, deletions_count: 5}, - {sha: "5f78ebb7c3e21f878859b72dff6450c45c7359dc", date: "2020-04-10 13:13:35 +0000", description: "Make `RuntimeTransform` trait available for all transforms", pr_number: 2281, scopes: ["transforms"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 13, deletions_count: 8}, - {sha: "e0805cc76343a218ed610f84c174a184f39098e8", date: "2020-04-10 09:01:14 +0000", description: "correct typo in testing post", pr_number: 2291, scopes: ["website"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 2, insertions_count: 5, deletions_count: 5}, - {sha: "eb3e71e53699bbd8de90018c4dc0f803048a4178", date: "2020-04-10 11:02:44 +0000", description: "small fixes for testing post", pr_number: 2292, scopes: ["website"], type: "fix", breaking_change: false, author: "Luke Steensen", files_count: 5, insertions_count: 8, deletions_count: 7}, - {sha: "a85197d8a1dfeee7b705dd996516510d4dd60431", date: "2020-04-10 14:16:16 +0000", description: "Run healthcheck in rt context", pr_number: 2288, scopes: ["kafka sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 3, insertions_count: 45, deletions_count: 7}, - {sha: "b6e53d52249370e8b5bd4006fca674c3c99b8302", date: "2020-04-10 17:49:22 +0000", description: "Start removing Atom from the hot path", pr_number: 2295, scopes: [], type: "perf", breaking_change: false, author: "Luke Steensen", files_count: 17, insertions_count: 92, deletions_count: 98}, - {sha: "9d97e1ea53a24fcba4dda28406a48b642a42db09", date: "2020-04-11 02:32:14 +0000", description: "Add a CSV parsing guide", pr_number: 2285, scopes: ["lua transform"], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 8, insertions_count: 588, deletions_count: 1}, - {sha: "b477981125866e6d3467cd12214e5049285c89b4", date: "2020-04-11 23:21:27 +0000", description: "Add fast path and caching api to event insert", pr_number: 2296, scopes: [], type: "perf", breaking_change: false, author: "Luke Steensen", files_count: 5, insertions_count: 67, deletions_count: 13}, - {sha: "bc48a21e95a9802a5cf57326b4be1c383c567e27", date: "2020-04-13 15:26:12 +0000", description: "Enable Rust codegen LTO for test harness", pr_number: 2310, scopes: ["tests"], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "e4d012df9210a22fe95729f8f98127e8cb050ece", date: "2020-04-13 13:26:56 +0000", description: "Upgrade http client to hyper 0.13", pr_number: 2294, scopes: ["networking"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 6, insertions_count: 582, deletions_count: 25}, - {sha: "23f1781f39d98315106455309a3251aaa88eeff0", date: "2020-04-13 14:15:47 +0000", description: "Fix Windows metrics", pr_number: 2309, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 0, deletions_count: 1}, - {sha: "dfe4620245bffddc066ccfe47a4ab9d70e6d9649", date: "2020-04-14 13:20:55 +0000", description: "Add `source_type` field", pr_number: 2298, scopes: ["sources"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 17, insertions_count: 213, deletions_count: 7}, - {sha: "fb8ae10f193c1990259500941ddd90f01472063e", date: "2020-04-14 19:11:17 +0000", description: "Add `lto = true` and `codegen-units=1` to `Cargo.toml`", pr_number: 2321, scopes: [], type: "perf", breaking_change: false, author: "Alexander Rodin", files_count: 4, insertions_count: 5, deletions_count: 22}, - {sha: "e8723f5eda7cbf0986b8f4b45c9ac394ef2b6f3b", date: "2020-04-14 19:44:31 +0000", description: "Sort events by timestamp", pr_number: 2320, scopes: ["aws_cloudwatch_logs sink"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 78, deletions_count: 2}, - {sha: "5d7421f07080bfd7e7563ebb326f4b0281d65508", date: "2020-04-14 20:50:16 +0000", description: "Add /highlights section and rework release notes", pr_number: 2317, scopes: ["website"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 302, insertions_count: 7552, deletions_count: 3485}, - {sha: "1b4c0014247e69aec6761e544bfae6cd29f6acae", date: "2020-04-15 06:32:47 +0000", description: "Wire ShutdownSignal in `trait HttpSource`", pr_number: 2290, scopes: ["sources"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 15, deletions_count: 16}, - {sha: "b43fdecfed76081b86cf2d04a933787d33bd5455", date: "2020-04-15 06:35:56 +0000", description: "Show possible values for `--log-format`, `--color`, and `--format`", pr_number: 2300, scopes: ["cli"], type: "enhancement", breaking_change: false, author: "Felix", files_count: 4, insertions_count: 47, deletions_count: 23}, - {sha: "6cb49ce04aefe69dfdac6e489001990a31c7343a", date: "2020-04-15 07:36:24 +0000", description: "Clarify dependencies of the `package-*` job in `make hel…", pr_number: 2324, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 2, deletions_count: 2}, - {sha: "36892068ca48b470f6a16f35e1a57753074f32ca", date: "2020-04-15 06:41:11 +0000", description: "Remove `log_schema.source_key`", pr_number: 2297, scopes: ["config"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 2, deletions_count: 112}, - {sha: "e2eb9e7da20337e3522e9f4ad5ca9b049e8c26e2", date: "2020-04-14 21:41:47 +0000", description: "Add Twitter author tags", pr_number: 2299, scopes: ["website"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 6, deletions_count: 0}, - {sha: "b152b53e8ec709c0ff9eb64e64d0f8b9a4cb0441", date: "2020-04-15 18:21:52 +0000", description: "Improve topology shutdown logs", pr_number: 2345, scopes: ["topology"], type: "enhancement", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 13, deletions_count: 2}, - {sha: "de0d6f6c4e6c23f4fea460835b22d7ecc175fde4", date: "2020-04-15 18:42:27 +0000", description: "Reduce credentials fetch timeout", pr_number: 2342, scopes: ["sinks"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 13, deletions_count: 6}, - {sha: "148abb54c4b62c375369f96e33f8f0bfea620c41", date: "2020-04-16 16:29:15 +0000", description: "Don't require `isdst`, `wday`, `yday` in timestamps", pr_number: 2335, scopes: ["lua transform"], type: "fix", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 3}, - {sha: "60385ec2dd58ecbb8d449dea50981dd9afc3f84e", date: "2020-04-16 09:32:47 +0000", description: "Bump `tower-limit 0.1.2`", pr_number: 2346, scopes: ["dependencies"], type: "chore", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 3, deletions_count: 3}, - {sha: "f14ba50cbd3bad22b3aa5aadd60f83ccf7319ded", date: "2020-04-16 16:33:15 +0000", description: "Use only the filename part of the paths to extract dates", pr_number: 2347, scopes: [], type: "chore", breaking_change: false, author: "Alexander Rodin", files_count: 1, insertions_count: 1, deletions_count: 1}, - {sha: "19bff5ca961d304744b2586f27ac24e3616a7024", date: "2020-04-16 21:56:11 +0000", description: "Add a guide about merging multi-line events", pr_number: 2354, scopes: ["lua transform"], type: "docs", breaking_change: false, author: "Alexander Rodin", files_count: 5, insertions_count: 1321, deletions_count: 0}, - {sha: "225bee0537660cfa84d33cedce48e0926c533672", date: "2020-04-17 10:50:47 +0000", description: "Add highlights section to contributing", pr_number: 2348, scopes: [], type: "docs", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 50, deletions_count: 0}, - {sha: "b94373a614fdfb0a8baf231450d44fb0155b99c6", date: "2020-04-17 16:55:17 +0000", description: "fix typo 'desigend'", pr_number: 2350, scopes: [], type: "docs", breaking_change: false, author: "Erwan D", files_count: 134, insertions_count: 267, deletions_count: 267}, - {sha: "d77a2f59e7ad18a28d4be90cc3da40e8ca49fe4f", date: "2020-04-17 17:57:38 +0000", description: "Cache paths for parsed fields", pr_number: 2325, scopes: ["tokenizer transform"], type: "perf", breaking_change: false, author: "Alexander Rodin", files_count: 2, insertions_count: 9, deletions_count: 7}, - {sha: "7c6608df02259778aaa3cc7770d96c6aabd75669", date: "2020-04-17 11:57:04 +0000", description: "Update Ana bio", pr_number: 2360, scopes: ["website"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 2, insertions_count: 9, deletions_count: 5}, - {sha: "72da605fd619c0321d9c8ffd176680f225ca88d5", date: "2020-04-17 12:06:36 +0000", description: "Migrate some PR checks to Github Actions from Circle", pr_number: 2352, scopes: ["platforms"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 5, insertions_count: 205, deletions_count: 120}, - {sha: "6b95f7e17e4af25c689a108cd3fa6941d97d5593", date: "2020-04-17 13:47:27 +0000", description: "Add support for instance accounts", pr_number: 2351, scopes: ["gcp provider"], type: "enhancement", breaking_change: false, author: "Bruce Guenter", files_count: 11, insertions_count: 114, deletions_count: 39}, - {sha: "7ea0eed5ee4c24df66efba60403ecf0b5486ebb4", date: "2020-04-18 11:35:30 +0000", description: "Wire in new `ShutdownSignal` for improved shutdown", pr_number: 2261, scopes: ["file source"], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 4, insertions_count: 139, deletions_count: 94}, - {sha: "9c9def9d7d9f6d2319ec31241632f521d8e597d4", date: "2020-04-18 10:29:23 +0000", description: "Allow creation race of groups and streams", pr_number: 2355, scopes: ["aws_cloudwatch_logs sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 26, deletions_count: 2}, - {sha: "f119d617293e81a2f7093dac549cd8ac5c26303f", date: "2020-04-18 15:47:29 +0000", description: "Only run CI workflow when relevant files change", pr_number: 2369, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 65, deletions_count: 60}, - {sha: "32e73588a7e2b3e9fd80f3eb0184339405b044fc", date: "2020-04-19 12:48:00 +0000", description: "Fix tests", pr_number: 2372, scopes: [], type: "chore", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 14, deletions_count: 4}, - {sha: "fde51c235f6d3c205a34a768c9df9e3f5e537dd5", date: "2020-04-19 21:21:23 +0000", description: "Add nightly GH action workflow", pr_number: 2370, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 6, insertions_count: 246, deletions_count: 86}, - {sha: "c59eedf0943f7b02295c75907fbf3024bd884f11", date: "2020-04-19 21:37:28 +0000", description: "Move /test-data to /tests/data", pr_number: 2375, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 6, insertions_count: 4, deletions_count: 5}, - {sha: "e041007b0849c8de0e1b80272e1875d413a5aad8", date: "2020-04-20 12:57:02 +0000", description: "Run ci workflow on pull requests only", pr_number: 2378, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 1, insertions_count: 16, deletions_count: 1}, - {sha: "8442531f7190e30820be157be21be77bd9c27a15", date: "2020-04-20 19:15:22 +0000", description: "Wire in new `ShutdownSignal` for improved shutdown", pr_number: 2373, scopes: ["splunk_hec source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 22, deletions_count: 50}, - {sha: "806f24664147d71ab866ef156d9f3762bac7992c", date: "2020-04-20 19:17:28 +0000", description: "Wire in `ShutdownSignal` for improved shutdown", pr_number: 2364, scopes: ["journald source"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 3, insertions_count: 57, deletions_count: 52}, - {sha: "512cb2ebb3f85997ef5b9966e1b501d531125c35", date: "2020-04-20 19:20:14 +0000", description: "Wire in new `ShutdownSignal` for improved shutdown", pr_number: 2365, scopes: ["sources"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 7, insertions_count: 50, deletions_count: 18}, - {sha: "b7af16744363667c75948cbbf1b197a21f237324", date: "2020-04-20 10:55:19 +0000", description: "Reenable component feature check", pr_number: 2371, scopes: ["platforms"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 3, insertions_count: 36, deletions_count: 12}, - {sha: "ec30c6166b69e2a91514440347abf090a52fd6e9", date: "2020-04-20 13:21:43 +0000", description: "support sub-second timestamp resolution", pr_number: 2333, scopes: ["lua transform"], type: "fix", breaking_change: false, author: "Joe Schafer", files_count: 4, insertions_count: 77, deletions_count: 9}, - {sha: "74126709debf66fc576a1a064244be98e223a0a6", date: "2020-04-20 13:29:30 +0000", description: "Optimize binaries in `test-stable` CI to reduce binary sizes. This should make it more stable.", pr_number: 2380, scopes: ["operations"], type: "chore", breaking_change: false, author: "Ana Hobden", files_count: 1, insertions_count: 14, deletions_count: 0}, - {sha: "514f8b1ed5596691e4f083657a61ffe935b06b7f", date: "2020-04-20 16:29:54 +0000", description: "Prepare 0.9.0", pr_number: 2353, scopes: [], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 119, insertions_count: 27658, deletions_count: 16436}, - ] -} diff --git a/docs/reference/releases/0.9.1.cue b/docs/reference/releases/0.9.1.cue deleted file mode 100644 index 9156952d99a2d..0000000000000 --- a/docs/reference/releases/0.9.1.cue +++ /dev/null @@ -1,27 +0,0 @@ -package metadata - -releases: "0.9.1": { - date: "2020-04-29" - codename: "" - - whats_next: [ - ] - - commits: [ - {sha: "4d76e751febd778887a7432263f77369895cd093", date: "2020-04-22 14:37:44 +0000", description: "Support millisecond and nanosecond timestamps", pr_number: 2382, scopes: ["splunk_hec source", "splunk_hec sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 71, deletions_count: 4}, - {sha: "b1c8421357502e1eca123e98787e7071109620f4", date: "2020-04-22 15:13:54 +0000", description: "Handle missing source timestamp", pr_number: 2387, scopes: ["journald source"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 1, insertions_count: 30, deletions_count: 4}, - {sha: "fc2c77b643e02b86a99cff4c914df06060a49d52", date: "2020-04-23 15:27:26 +0000", description: "`enoding.only_fields` should properly handle parent keys", pr_number: 2413, scopes: ["config"], type: "fix", breaking_change: false, author: "Ana Hobden", files_count: 3, insertions_count: 110, deletions_count: 49}, - {sha: "48a6d142e9a8ff441d3379cecba7272152b74a72", date: "2020-04-27 13:31:51 +0000", description: "add text encoding", pr_number: 2468, scopes: ["humio_logs sink"], type: "enhancement", breaking_change: false, author: "Luke Steensen", files_count: 4, insertions_count: 28, deletions_count: 74}, - {sha: "47bf9f74903162a02f40cd7113c37cfec6bb4303", date: "2020-04-27 20:05:10 +0000", description: "Use header auth", pr_number: 2443, scopes: ["datadog_metrics sink"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 7, deletions_count: 3}, - {sha: "332e9711c7a7c414a0ee83257d172c9b79f1244b", date: "2020-04-28 19:08:02 +0000", description: "Add indexed fields in `text` encoding", pr_number: 2448, scopes: ["splunk_hec sink"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 1, insertions_count: 67, deletions_count: 22}, - {sha: "fafdc789b26e23075aa6afc1b12622b001f0f5c4", date: "2020-04-28 14:04:02 +0000", description: "Treat empty namespaces as not set", pr_number: 2479, scopes: ["aws_ec2_metadata transform"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 1, insertions_count: 48, deletions_count: 8}, - {sha: "4e55cbb5b4879bcd971787089873cd62f7ddc451", date: "2020-04-29 11:30:48 +0000", description: "Fix handling of standard AWS regions", pr_number: 2489, scopes: ["elasticsearch sink"], type: "fix", breaking_change: false, author: "Bruce Guenter", files_count: 2, insertions_count: 98, deletions_count: 31}, - {sha: "a8fba10bc739fb5f9b54264bab937700e161f5d5", date: "2020-04-29 13:42:40 +0000", description: "Fetch system ca certs via schannel on windows", pr_number: 2444, scopes: ["networking"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 5, insertions_count: 163, deletions_count: 11}, - {sha: "9082b1808115bac6dd64f310126fb57754ce315e", date: "2020-04-29 15:29:34 +0000", description: "Move healtcheck consumer creation to boxed future", pr_number: 2499, scopes: ["pulsar sink"], type: "fix", breaking_change: false, author: "Evan Cameron", files_count: 1, insertions_count: 13, deletions_count: 17}, - {sha: "b2bc1b77ac53b412162a845293487586f66b3007", date: "2020-04-29 22:26:19 +0000", description: "Add `instance-type` field", pr_number: 2500, scopes: ["aws_ec2_metadata transform"], type: "enhancement", breaking_change: false, author: "Slawomir Skowron", files_count: 1, insertions_count: 16, deletions_count: 0}, - {sha: "af544f361cc03e31207fcdd5e57104d051fde136", date: "2020-04-30 10:51:02 +0000", description: "Use specific error for x509 from system ca", pr_number: 2507, scopes: ["security"], type: "fix", breaking_change: false, author: "Lucio Franco", files_count: 2, insertions_count: 10, deletions_count: 5}, - {sha: "a0d5cf5469045d066bed5ed950187ff6a7612dc4", date: "2020-04-30 12:55:08 +0000", description: "Shutdown topology pieces before building new ones", pr_number: 2449, scopes: ["config"], type: "fix", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 6, insertions_count: 349, deletions_count: 114}, - {sha: "319a75ddc20060a8aecb2d0e990d3e52b19cc0e5", date: "2020-04-30 13:28:53 +0000", description: "Enforce age requirements", pr_number: 2437, scopes: ["aws_cloudwatch_logs sink"], type: "enhancement", breaking_change: false, author: "Kruno Tomola Fabro", files_count: 2, insertions_count: 195, deletions_count: 34}, - {sha: "fcd5c1893713e08d1ee0f51cdca5aa16686af148", date: "2020-04-30 11:17:14 +0000", description: "Check code on Windows", pr_number: 2506, scopes: ["operations"], type: "chore", breaking_change: false, author: "Binary Logic", files_count: 3, insertions_count: 640, deletions_count: 605}, - ] -} diff --git a/docs/reference/remap.cue b/docs/reference/remap.cue deleted file mode 100644 index 8eb41dee8a723..0000000000000 --- a/docs/reference/remap.cue +++ /dev/null @@ -1,228 +0,0 @@ -package metadata - -#Remap: { - #Characteristic: { - anchor: name - enum?: #Enum - name: string - title: string - description: string - } - - #Characteristics: [Name=string]: #Characteristic & { - name: Name - } - - #Example: { - title: string - input?: #Event - source: string - raises?: { - compiletime?: string - runtime?: string - } - - if raises == _|_ { - return?: _ - output?: #Event - } - - if raises != _|_ { - diff?: string - } - - notes?: [string, ...string] - warnings?: [string, ...string] - } - - #Type: "any" | "array" | "boolean" | "float" | "integer" | "map" | "null" | "path" | "string" | "regex" | "timestamp" - - concepts: _ - description: string - errors: _ - examples: [#Example, ...#Example] - expressions: _ - features: _ - functions: _ - literals: _ - principles: _ - syntax: _ -} - -remap: #Remap & { - description: #""" - **Vector Remap Language** (VRL) is an [expression-oriented](\#(urls.expression_oriented_language)) language - designed for transforming obervability data (logs and metrics) in a [safe](\#(urls.vrl_safety)) and - [performant](\#(urls.vrl_performance)) manner. It features a simple [syntax](\#(urls.vrl_expressions)) and a - rich set of built-in [functions](\#(urls.vrl_functions)) tailored specifically to observability use cases. - - You can use VRL in Vector via the [`remap` transform](\#(urls.vector_remap_transform)), and for a more in-depth - picture, see the [announcement blog post](\#(urls.vrl_announcement)). - """# - - examples: [ - { - title: "Parse Syslog logs" - input: log: message: "<102>1 2020-12-22T15:22:31.111Z vector-user.biz su 2666 ID389 - Something went wrong" - source: """ - structured = parse_syslog!(.message) - . = merge(., structured) - """ - output: log: { - appname: "su" - facility: "ntp" - hostname: "vector-user.biz" - message: "Something went wrong" - msgid: "ID389" - procid: 2666 - severity: "info" - timestamp: "2020-12-22T15:22:31.111Z" - } - notes: [ - "Attributes are coerced into their proper types, including `timestamp`.", - ] - }, - { - title: "Parse key/value (logfmt) logs" - input: log: message: "@timestamp=\"Sun Jan 10 16:47:39 EST 2021\" level=info msg=\"Stopping all fetchers\" tag#production=stopping_fetchers id=ConsumerFetcherManager-1382721708341 module=kafka.consumer.ConsumerFetcherManager" - source: """ - structured = parse_key_value!(.message) - . = merge(., structured) - """ - output: log: { - "@timestamp": "Sun Jan 10 16:47:39 EST 2021" - level: "info" - msg: "Stopping all fetchers" - "tag#production": "stopping_fetchers" - id: "ConsumerFetcherManager-1382721708341" - module: "kafka.consumer.ConsumerFetcherManager" - } - warnings: [ - "All attributes are strings and will require manual type coercing.", - ] - }, - { - title: "Parse custom logs" - input: log: message: #"2021/01/20 06:39:15 [error] 17755#17755: *3569904 open() "/usr/share/nginx/html/test.php" failed (2: No such file or directory), client: xxx.xxx.xxx.xxx, server: localhost, request: "GET /test.php HTTP/1.1", host: "yyy.yyy.yyy.yyy""# - source: #""" - structured = parse_regex!(.message, /^(?P\d+/\d+/\d+ \d+:\d+:\d+) \[(?P\w+)\] (?P\d+)#(?P\d+):(?: \*(?P\d+))? (?P.*)$/) - . = merge(., structured) - - # Coerce parsed fields - .timestamp = parse_timestamp(.timestamp, "%Y/%m/%d %H:%M:%S") ?? now() - .pid = to_int(.pid) - .tid = to_int(.tid) - - # Extract structured data - message_parts = split(.message, ", ", limit: 2) - structured = parse_key_value(message_parts[1], key_value_delimiter: ":", field_delimiter: ",") ?? {} - .message = message_parts[0] - . = merge(., structured) - """# - output: log: { - timestamp: "2021/01/20 06:39:15" - severity: "error" - pid: "17755" - tid: "17755" - connid: "3569904" - message: #"open() "/usr/share/nginx/html/test.php" failed (2: No such file or directory)"# - client: "xxx.xxx.xxx.xxx" - server: "localhost" - request: "GET /test.php HTTP/1.1" - host: "yyy.yyy.yyy.yyy" - } - }, - { - title: "Multiple parsing strategies" - input: log: message: "<102>1 2020-12-22T15:22:31.111Z vector-user.biz su 2666 ID389 - Something went wrong" - source: #""" - structured = - parse_syslog(.message) ?? - parse_common_log(.message) ?? - parse_regex!(.message, /^(?P\d+/\d+/\d+ \d+:\d+:\d+) \[(?P\w+)\] (?P\d+)#(?P\d+):(?: \*(?P\d+))? (?P.*)$/) - . = merge(., structured) - """# - output: log: { - appname: "su" - facility: "ntp" - hostname: "vector-user.biz" - message: "Something went wrong" - msgid: "ID389" - procid: 2666 - severity: "info" - timestamp: "2020-12-22 15:22:31.111 UTC" - } - }, - { - title: "Modify metric tags" - input: metric: { - kind: "incremental" - name: "user_login_total" - counter: { - value: 102.0 - } - tags: { - host: "my.host.com" - instance_id: "abcd1234" - email: "vic@vector.dev" - } - } - source: #""" - .environment = get_env_var!("ENV") # add - .hostname = del(.host) # rename - del(.email) - """# - output: metric: { - kind: "incremental" - name: "user_login_total" - counter: { - value: 102.0 - } - tags: { - environment: "production" - hostname: "my.host.com" - instance_id: "abcd1234" - } - } - }, - { - title: "Invalid argument type" - input: log: not_a_string: 1 - source: """ - upcase(.not_a_string) - """ - raises: compiletime: """ - error: invalid argument type - ┌─ :1:1 - │ - 1 │ upcase(.not_a_string) - │ ^^^^^^^^^^^^^ - │ │ - │ this expression resolves to unknown type - │ but the parameter "value" expects the exact type "string" - │ - = see language documentation at: https://vector.dev/docs/reference/vrl/ - """ - }, - { - title: "Unhandled error" - input: log: message: "key1=value1 key2=value2" - source: """ - structured = parse_key_value(.message) - """ - raises: compiletime: """ - error: unhandled error - ┌─ :1:1 - │ - 1 │ structured = parse_key_value(.message) - │ ^^^^^^^^^^ - │ │ - │ expression can result in runtime error - │ handle the error case to ensure runtime success - │ - = see error handling documentation at: https://vector.dev/docs/reference/vrl/errors/ - = see language documentation at: https://vector.dev/docs/reference/vrl/ - """ - }, - ] -} diff --git a/docs/reference/remap/concepts/event.cue b/docs/reference/remap/concepts/event.cue deleted file mode 100644 index 9072f1c30344b..0000000000000 --- a/docs/reference/remap/concepts/event.cue +++ /dev/null @@ -1,26 +0,0 @@ -remap: concepts: event: { - title: "Event" - description: """ - VRL programs operate on observability [events](\(urls.vector_data_model)). This VRL program, for example, adds - a field to a log event: - - ```vrl - .new_field = "new value" - ``` - - The event at hand is the entire context of the VRL program. - """ - - characteristics: { - path: { - title: "Paths" - description: """ - [Path expressions](\(urls.vrl_path_expressions)) enable you to access values inside the event: - - ```vrl - .kubernetes.pod_id - ``` - """ - } - } -} diff --git a/docs/reference/remap/concepts/expression.cue b/docs/reference/remap/concepts/expression.cue deleted file mode 100644 index 458f4e8379aec..0000000000000 --- a/docs/reference/remap/concepts/expression.cue +++ /dev/null @@ -1,7 +0,0 @@ -remap: concepts: expression: { - title: "Event" - description: """ - VRL is an [expression-oriented](\(urls.expression_oriented_language)) language. A VRL program consists - entirely of [expressions](urls.vrl_expressions)), with every expression returning a value. - """ -} diff --git a/docs/reference/remap/concepts/function.cue b/docs/reference/remap/concepts/function.cue deleted file mode 100644 index cde153f03be7e..0000000000000 --- a/docs/reference/remap/concepts/function.cue +++ /dev/null @@ -1,21 +0,0 @@ -remap: concepts: function: { - title: "Function" - description: """ - Like most languages, VRL includes [functions](\(urls.vrl_functions)) that represent named procedures designed to - accomplish specific tasks. Functions are the highest-level construct of reusable code in VRL, which, for the - sake of simplicity, doesn't include modules, classes, or other complex constructs for organizing functions. - """ - - characteristics: { - fallibility: { - title: "Fallibility" - description: """ - Some VRL functions are *fallible*, meaning that they can error. Any potential errors thrown by fallible - functions must be handled, a requirement enforced at compile time. - - This feature of VRL programs, which we call [fail safety](\(urls.vrl_fail_safety)), is a defining - characteristic of VRL and a primary source of its safety guarantees. - """ - } - } -} diff --git a/docs/reference/remap/concepts/literal.cue b/docs/reference/remap/concepts/literal.cue deleted file mode 100644 index 0b783c0580492..0000000000000 --- a/docs/reference/remap/concepts/literal.cue +++ /dev/null @@ -1,7 +0,0 @@ -remap: concepts: literal: { - title: "Literal" - description: """ - As in most other languages, [literals](\(urls.vrl_literals)) in VRL are values written exactly as they are meant - to be interpreted. Literals include things like strings, Booleans, and integers. - """ -} diff --git a/docs/reference/remap/concepts/program.cue b/docs/reference/remap/concepts/program.cue deleted file mode 100644 index fb382e89fb64f..0000000000000 --- a/docs/reference/remap/concepts/program.cue +++ /dev/null @@ -1,7 +0,0 @@ -remap: concepts: program: { - title: "Program" - description: """ - A VRL program is the highest-level unit of computation. A program is the end result of combining an arbitrary - number of [expressions](#\(concepts.expression.anchor)) operating on a single observability event. - """ -} diff --git a/docs/reference/remap/errors/101_malformed_regex_literal.cue b/docs/reference/remap/errors/101_malformed_regex_literal.cue deleted file mode 100644 index e0aa4ba4838d0..0000000000000 --- a/docs/reference/remap/errors/101_malformed_regex_literal.cue +++ /dev/null @@ -1,41 +0,0 @@ -package metadata - -remap: errors: "101": { - title: "Malformed regex literal" - description: """ - A [regex literal expression](\(urls.vrl_expressions)#\(remap.literals.regular_expression.anchor)) is malformed - and thus doesn't result in a valid regular expression. - """ - rationale: """ - Invalid regular expressions don't compile. - """ - resolution: """ - Regular expressions are difficult to write and commonly result in syntax errors. If you're parsing a common - log format we recommend using one of VRL's [`parse_*` functions](\(urls.vrl_functions)#parsing). If - you don't see a function for your format please [request it](\(urls.new_feature_request)). Otherwise, use the - [Rust regex tester](\(urls.regex_tester)) to test and correct your regular expression. - """ - - examples: [ - { - "title": "\(title) (common format)" - source: #""" - . |= parse_regex!(.message, r'^(?P[\w\.]+) - (?P[\w]+) (?P[\d]+) \[?P.*)\] "(?P[\w]+) (?P.*)" (?P[\d]+) (?P[\d]+)$') - """# - raises: compiletime: #""" - error: \#(title) - ┌─ :1:1 - │ - 1 │ . |= parse_regex(.message, r'^(?P[\w\.]+) - (?P[\w]+) (?P[\d]+) \[?P.*)\] "(?P[\w]+) (?P.*)" (?P[\d]+) (?P[\d]+)$') - │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - │ │ - │ this regular expression is invalid - │ - """# - diff: #""" - -. |= parse_regex!(.message, r'^(?P[\w\.]+) - (?P[\w]+) (?P[\d]+) \[?P.*)\] "(?P[\w]+) (?P.*)" (?P[\d]+) (?P[\d]+)$') - +. |= parse_common_log!(.message) - """# - }, - ] -} diff --git a/docs/reference/remap/errors/103_unhandled_assignment_runtime_error.cue b/docs/reference/remap/errors/103_unhandled_assignment_runtime_error.cue deleted file mode 100644 index 12ad3db57e725..0000000000000 --- a/docs/reference/remap/errors/103_unhandled_assignment_runtime_error.cue +++ /dev/null @@ -1,57 +0,0 @@ -package metadata - -remap: errors: "103": { - title: "Unhandled assignment runtime error" - description: """ - The right-hand side of an [assignment expression](\(urls.vrl_expressions)#\(remap.literals.regular_expression.anchor)) - is fallible and can produce a [runtime error](\(urls.vrl_runtime_errors)), but the error isn't being - [handled](\(urls.vrl_error_handling)). - """ - rationale: remap._fail_safe_blurb - resolution: """ - [Handle](\(urls.vrl_error_handling)) the runtime error by [assigning](\(urls.vrl_error_handling_assigning)), - [coalescing](\(urls.vrl_error_handling_coalescing)), or [raising](\(urls.vrl_error_handling_raising)) the - error. - """ - - examples: [...{ - input: log: message: "key=value" - source: #""" - . |= parse_key_value(.message) - """# - raises: compiletime: #""" - error: \#(title) - ┌─ :1:1 - │ - 1 │ . |= parse_key_value(.message) - │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - │ │ - │ This assingment does not handle errors - │ - """# - }] - - examples: [ - { - "title": "\(title) (coalescing)" - diff: #""" - -. |= parse_key_value(.message) - +. |= parse_key_value(.message) ?? {} - """# - }, - { - "title": "\(title) (raising)" - diff: #""" - -. |= parse_key_value(.message) - +. |= parse_key_value!(.message) - """# - }, - { - "title": "\(title) (assigning)" - diff: #""" - -. |= parse_key_value(.message) - +., err |= parse_key_value(.message) - """# - }, - ] -} diff --git a/docs/reference/remap/errors/104_unnecessary_error_assignment.cue b/docs/reference/remap/errors/104_unnecessary_error_assignment.cue deleted file mode 100644 index 7e4e6f127290b..0000000000000 --- a/docs/reference/remap/errors/104_unnecessary_error_assignment.cue +++ /dev/null @@ -1,39 +0,0 @@ -package metadata - -remap: errors: "104": { - title: "Unnecessary error assignment" - description: """ - The left-hand side of an [assignment expression](\(urls.vrl_expressions)#\(remap.literals.regular_expression.anchor)) - needlessly handles errors even though the right-hand side _can't_ fail. - """ - rationale: """ - Assigning errors when one is not possible is effectively dead code that makes your program difficult to follow. - Removing the error assignment simplifies your program. - """ - resolution: """ - Remove the error assignment. - """ - - examples: [ - { - "title": "\(title) (strings)" - source: #""" - .message, err = downcase(.message) - """# - raises: compiletime: #""" - error: \#(title) - ┌─ :1:1 - │ - 1 │ .message, err = downcase(.message) - │ ^^^ - │ │ - │ unneeded error assignment - │ - """# - diff: #""" - -.message, err = downcase(.message) - +.message = downcase(.message) - """# - }, - ] -} diff --git a/docs/reference/remap/errors/105_undefined_function.cue b/docs/reference/remap/errors/105_undefined_function.cue deleted file mode 100644 index 95054d78ef43e..0000000000000 --- a/docs/reference/remap/errors/105_undefined_function.cue +++ /dev/null @@ -1,36 +0,0 @@ -package metadata - -remap: errors: "105": { - title: "Undefined function" - description: """ - A [function call expression](\(urls.vrl_expressions)#\(remap.literals.regular_expression.anchor)) invokes an - unknown function. - """ - rationale: null - resolution: """ - This is typically due to a typo. Correcting the function name should resolve this. - """ - - examples: [ - { - "title": "\(title) (typo)" - source: #""" - parse_keyvalue(.message) - """# - raises: compiletime: #""" - error: \#(title) - ┌─ :1:1 - │ - 1 │ parse_keyvalue(.message) - │ ^^^^^^^^^^^^^^ - │ │ - │ Undefined function - │ - """# - diff: #""" - -parse_keyvalue(.message) - +parse_key_value(.message) - """# - }, - ] -} diff --git a/docs/reference/remap/errors/106_function_argument_arity_mismatch.cue b/docs/reference/remap/errors/106_function_argument_arity_mismatch.cue deleted file mode 100644 index f788afdf9550b..0000000000000 --- a/docs/reference/remap/errors/106_function_argument_arity_mismatch.cue +++ /dev/null @@ -1,36 +0,0 @@ -package metadata - -remap: errors: "106": { - title: "Function argument arity mismatch" - description: """ - A [function call expression](\(urls.vrl_expressions)#\(remap.literals.regular_expression.anchor)) invokes a - function with too many arguments. - """ - rationale: null - resolution: """ - Remove the extra arguments to adhere to the function's documented signature. - """ - - examples: [ - { - "title": title - source: #""" - parse_json(.message, pretty: true) - """# - raises: compiletime: #""" - error: \#(title) - ┌─ :1:1 - │ - 1 │ parse_json(.message, pretty: true) - │ ^^^^^^^^^^^^ - │ │ - │ This argument exceeds the function arity - │ - """# - diff: #""" - -parse_json(.message, pretty: true) - +parse_json(.message) - """# - }, - ] -} diff --git a/docs/reference/remap/errors/107_required_function_argument_missing.cue b/docs/reference/remap/errors/107_required_function_argument_missing.cue deleted file mode 100644 index 5926d4ad3a511..0000000000000 --- a/docs/reference/remap/errors/107_required_function_argument_missing.cue +++ /dev/null @@ -1,36 +0,0 @@ -package metadata - -remap: errors: "107": { - title: "Required function argument missing" - description: """ - A [function call expression](\(urls.vrl_expressions)#\(remap.literals.regular_expression.anchor)) fails to pass - a required argument. - """ - rationale: null - resolution: """ - Supply all of the required function arguments to adhere to the function's documented signature. - """ - - examples: [ - { - "title": title - source: #""" - parse_timestamp(.timestamp) - """# - raises: compiletime: #""" - error: \#(title) - ┌─ :1:1 - │ - 1 │ parse_timestamp(.timestamp) - │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ - │ │ - │ The required `format` argument is missing - │ - """# - diff: #""" - -parse_timestamp(.timestamp) - +parse_timestamp(.timestamp, format: "%D") - """# - }, - ] -} diff --git a/docs/reference/remap/errors/108_unknown_function_argument_keyword.cue b/docs/reference/remap/errors/108_unknown_function_argument_keyword.cue deleted file mode 100644 index 50dfb4fbcfaef..0000000000000 --- a/docs/reference/remap/errors/108_unknown_function_argument_keyword.cue +++ /dev/null @@ -1,36 +0,0 @@ -package metadata - -remap: errors: "108": { - title: "Unknown function argument keyword" - description: """ - A [function call expression](\(urls.vrl_expressions)#\(remap.literals.regular_expression.anchor)) passes an - unknown named argument. - """ - rationale: null - resolution: """ - Correct the name to align with the documented argument names for the function. - """ - - examples: [ - { - "title": title - source: #""" - parse_timestamp(.timestamp, fmt: "%D") - """# - raises: compiletime: #""" - error: \#(title) - ┌─ :1:1 - │ - 1 │ parse_timestamp(.timestamp, fmt: "%D") - │ ^^^ - │ │ - │ The `fmt` argument is unknown - │ - """# - diff: #""" - -parse_timestamp(.timestamp) - +parse_timestamp(.timestamp, format: "%D") - """# - }, - ] -} diff --git a/docs/reference/remap/errors/109_cannot_abort_function.cue b/docs/reference/remap/errors/109_cannot_abort_function.cue deleted file mode 100644 index 6ee0ea7c1728b..0000000000000 --- a/docs/reference/remap/errors/109_cannot_abort_function.cue +++ /dev/null @@ -1,37 +0,0 @@ -package metadata - -remap: errors: "109": { - title: "Cannot abort function" - description: """ - A [function call expression](\(urls.vrl_expressions)#\(remap.literals.regular_expression.anchor)) can't end with - `!` unless it's _fallible_. If a function can't produce a runtime error, it doesn't have an abort variant - that ends with `!`. - """ - rationale: null - resolution: """ - Remove the `!` from the end of the function name. - """ - - examples: [ - { - "title": title - source: #""" - downcase!(.message) - """# - raises: compiletime: #""" - error: \#(title) - ┌─ :1:1 - │ - 1 │ downcase!(.message) - │ ^ - │ │ - │ This function is not fallible - │ - """# - diff: #""" - -downcase!(.message) - +downcase(.message) - """# - }, - ] -} diff --git a/docs/reference/remap/errors/110_invalid_argument_type.cue b/docs/reference/remap/errors/110_invalid_argument_type.cue deleted file mode 100644 index 91347fcafb17e..0000000000000 --- a/docs/reference/remap/errors/110_invalid_argument_type.cue +++ /dev/null @@ -1,59 +0,0 @@ -package metadata - -remap: errors: "110": { - title: "Invalid argument type" - description: """ - An argument passed to a [function call expression](\(urls.vrl_expressions)#\(remap.literals.regular_expression.anchor)) - isn't a supported type. - """ - rationale: """ - VRL is [type safe](\(urls.vrl_type_safety)) and requires that types align upon compilation. This provides - important [safety guarantees](\(urls.vrl_safety)) to VRL and helps to ensure that VRL programs run reliably when - deployed. - """ - resolution: #""" - You must guarantee the type of the variable by using the appropriate [type](\(urls.vrl_functions)#type) or - [coercion](\(urls.vrl_functions)#coerce) function. - """# - - examples: [...{ - source: #""" - downcase(.message) - """# - raises: compiletime: #""" - error: \#(title) - ┌─ :1:1 - │ - 1 │ downcase(.message) - │ ^^^^^^^^ - │ │ - │ this expression resolves to unknown type - | but the parameter "value" expects the exact type "string" - │ - """# - }] - - examples: [ - { - "title": "\(title) (guard with defaults)" - diff: #""" - +.message = string(.message) ?? "" - downcase(.message) - """# - }, - { - "title": "\(title) (guard with errors)" - diff: #""" - downcase(string!(.message)) - """# - }, - { - "title": "\(title) (guard with if expressions)" - diff: #""" - +if is_string(.message) { - downcase(.message) - + } - """# - }, - ] -} diff --git a/docs/reference/remap/expressions.cue b/docs/reference/remap/expressions.cue deleted file mode 100644 index 8fa38b7fd51f5..0000000000000 --- a/docs/reference/remap/expressions.cue +++ /dev/null @@ -1,30 +0,0 @@ -package metadata - -remap: { - #Expression: { - anchor: name - name: string - title: string - description: string - return: string - - grammar?: #Grammar - - examples: [remap.#Example, ...remap.#Example] - } - - #Grammar: { - source: string - definitions: [Name=string]: { - name: Name - description: string - characteristics?: remap.#Characteristics - enum?: #Enum - examples?: [string, ...string] - } - } - - expressions: [Name=string]: #Expression & { - name: Name - } -} diff --git a/docs/reference/remap/expressions/assignment.cue b/docs/reference/remap/expressions/assignment.cue deleted file mode 100644 index d758044e1db73..0000000000000 --- a/docs/reference/remap/expressions/assignment.cue +++ /dev/null @@ -1,122 +0,0 @@ -package metadata - -remap: expressions: assignment: { - title: "Assignment" - description: """ - An _assignment_ expression assigns the result of the right-hand-side expression to the left-hand-side - target (path or variable). - """ - return: """ - Returns the value of the right-hand-side expression only if the expression succeeds. If the expression errors, - the error must be [handled](\(urls.vrl_errors_reference)) and null is returned. - """ - - grammar: { - source: """ - target ~ ("," ~ error)? ~ operator ~ expression - """ - definitions: { - target: { - description: """ - The `target` must be a path, - with an optional second variable for error handling if the right-hand side is fallible. - """ - } - error: { - description: """ - The `error` allows for optional assignment to errors when the right-hand-side expression is - fallible. This is commonly used when invoking fallible functions. - """ - } - operator: { - description: """ - The `operator` delimits the `target` and `expression` and defines assignment conditions. - """ - enum: { - "=": """ - Simple assignment operator. Assigns the result from the right-hand side to the left-hand side: - - ```vrl - .field = "value" - ``` - """ - "??=": """ - Assigns _only_ if the right-hand side doesn't error. This is useful when invoking fallible - functions on the right-hand side: - - ```vrl - .structured ??= parse_json(.message) - ``` - """ - } - } - expression: { - description: """ - If the `target` is a variable, the `expression` can be any expression. - - If the `target` is a path, the `expression` can be any expression that returns a supported map - value type (i.e. not a regular expression). - """ - } - } - } - - examples: [ - { - title: "Path assignment" - source: #""" - .message = "Hello, World!" - """# - return: "Hello, World!" - output: log: message: "Hello, World!" - }, - { - title: "Nested path assignment" - source: #""" - .parent.child = "Hello, World!" - """# - return: "Hello, World!" - output: log: parent: child: "Hello, World!" - }, - { - title: "Double assignment" - source: #""" - .first = .second = "Hello, World!" - """# - return: "Hello, World!" - output: log: { - first: "Hello, World!" - second: "Hello, World!" - } - }, - { - title: "Array element assignment" - source: #""" - .array[1] = "Hello, World!" - """# - return: "Hello, World!" - output: log: array: [null, "Hello, World!"] - }, - { - title: "Variable assignment" - source: #""" - my_variable = "Hello, World!" - """# - return: "Hello, World!" - }, - { - title: "Fallible assignment (success)" - source: #""" - parsed, err = parse_json("{\"Hello\": \"World!\"}") - """# - return: Hello: "World!" - }, - { - title: "Fallible assignment (error)" - source: #""" - parsed, err = parse_json("malformed") - """# - return: null - }, - ] -} diff --git a/docs/reference/remap/expressions/comparison.cue b/docs/reference/remap/expressions/comparison.cue deleted file mode 100644 index f2c83581eb050..0000000000000 --- a/docs/reference/remap/expressions/comparison.cue +++ /dev/null @@ -1,84 +0,0 @@ -package metadata - -remap: expressions: comparison: { - title: "Comparison" - description: """ - A _comparison_ expression compares two expressions (operands) and produces a Boolean as defined by the - operator. - """ - return: """ - Returns a Boolean as defined by the operator. - """ - - grammar: { - source: """ - expression ~ operator ~ expression - """ - definitions: { - expression: { - description: """ - The `expression` (operand) can be any expression that returns a valid type as defined by the - `operator`. - """ - } - operator: { - description: """ - The `operator` defines the operation performed on the left-hand and right-hand side operations. - """ - enum: { - "==": "Equal. Operates on all types." - "!=": "Not equal. Operates on all types." - ">=": "Greater than or equal. Operates on `int` and `float` types." - ">": "Greater than. Operates on `int` and `float` types." - "<=": "Less than or equal. Operates on `int` and `float` types." - "<": "Less than. Operates on `int` and `float` types." - } - } - } - } - - examples: [ - { - title: "Equal" - source: #""" - 1 == 1 - """# - return: true - }, - { - title: "Not equal" - source: #""" - 1 != 2 - """# - return: true - }, - { - title: "Greater than or equal" - source: #""" - 2 >= 2 - """# - return: true - }, - { - title: "Greater than" - source: #""" - 2 > 1 - """# - return: true - }, - { - title: "Less than or equal" - source: #""" - 2 <= 2 - """# - return: true - }, - { - title: "Less than" - source: #""" - 1 < 2 - """# - return: true - }, - ] -} diff --git a/docs/reference/remap/expressions/function_call.cue b/docs/reference/remap/expressions/function_call.cue deleted file mode 100644 index 77a3df962fb2d..0000000000000 --- a/docs/reference/remap/expressions/function_call.cue +++ /dev/null @@ -1,123 +0,0 @@ -package metadata - -remap: expressions: function_call: { - title: "Function call" - description: """ - A _function call_ expression invokes built-in [VRL functions](\(urls.vrl_functions)). - """ - return: """ - Returns the value of the function invocation if the invocation succeeds. If the invocation fails, the error must - be [handled](\(urls.vrl_errors_reference)) and null is returned. - - Functions can _only_ return a single value. If multiple values are relevant, you should wrap them in a data - structure fit to hold them, such as an array or map (note that VRL doesn't support tuples). - """ - - grammar: { - source: """ - function ~ abort? ~ "(" ~ arguments? ~ ")" - """ - definitions: { - function: { - description: """ - `function` represents the name of the built-in function. - """ - } - abort: { - description: """ - `abort` represents a literal `!` that can optionally be used with fallible functions to abort - the program when the function fails: - - ```vrl - result = f!() - ``` - - Otherwise, errors must be handled: - - ```vrl - result, err = f() - ``` - - Failure to handle errors from fallible functions results in compile-time errors. See the - [error reference](\(urls.vrl_errors_reference)) for more info. - """ - } - arguments: { - description: """ - The `arguments` are comma-delimited expressions that can optionally be prefixed with the - documented name. - """ - - characteristics: { - named: { - title: "Named arguments" - description: """ - _All_ function arguments in VRL are assigned names, including required leading arguments. - Named arguments are suffixed with a colon (`:`), with the value proceeding the name: - - ```vrl - argument_name: "value" - argument_name: (1 + 2) - ``` - - The value is treated as another expression. - """ - } - positional: { - title: "Positional arguments" - description: """ - Function calls support nameless positional arguments. Arguments must be supplied in the order - they are documented: - - ```vrl - f(1, 2) - ``` - """ - } - type_safety: { - title: "Argument type safety" - description: """ - Function arguments enforce type safety when the type of the value supplied is known: - - ```vrl - number = round("not a number") # fails at compile time - ``` - - If the type of the value is not known, you need to handle the potential argument error: - - ```vrl - number, err = round(.message) - ``` - - See the [errors reference](\(urls.vrl_errors_reference)) for more info. - """ - } - } - } - } - } - - examples: [ - { - title: "Positional function invocation" - source: #""" - split("hello, world!", ", ") - """# - return: ["hello", "world!"] - }, - { - title: "Named function invocation (ordered)" - source: #""" - split("hello, world!", pattern: ", ") - """# - return: ["hello", "world!"] - }, - { - title: "Named function invocation (unordered)" - source: #""" - split(pattern: ", ", value: "hello, world!") - """# - return: ["hello", "world!"] - }, - ] -} diff --git a/docs/reference/remap/expressions/path.cue b/docs/reference/remap/expressions/path.cue deleted file mode 100644 index 2f0563542db07..0000000000000 --- a/docs/reference/remap/expressions/path.cue +++ /dev/null @@ -1,158 +0,0 @@ -package metadata - -remap: expressions: path: { - title: "Path" - description: """ - A _path_ expression is a sequence of period-delimited segments that represent the location of a value - within a map. - """ - return: """ - Returns the value of the path location. - """ - - grammar: { - source: """ - "." ~ path_segments - """ - definitions: { - "\".\"": { - description: """ - The `"."` character represents the root of the event. Therefore, _all_ paths must begin with the `.` - character, and `.` alone is a valid path. - """ - } - path_segments: { - description: """ - `path_segments` denote a segment of a nested path. Each segment must be delimited by a `.` character - and only contain alpha-numeric characters, `_`, and `@` (`a-zA-Z0-9_@`). Segments that contain - characters outside of this range must be quoted. - """ - characteristics: { - array_elements: { - title: "Array element paths" - description: """ - Array elements can be accessed by their index. Negative indices are currently _not_ - supported: - - ```vrl - .array[0] - ``` - """ - } - coalescing: { - title: "Path segment coalecing" - description: """ - Path segments can be coalesced, allowing for the first non-null value to be used. This is - particularly useful when working with - [externally tagged](\(urls.externally_tagged_representation)) data: - - ```vrl - .grand_parent.(parent1 | parent2).child - ``` - """ - } - dynamic: { - title: "Dynamic paths" - description: """ - Dynamic paths are currently not supported. - """ - } - nested_maps: { - title: "Nested map paths" - description: """ - Nested map values are accessed by delimiting each ancestor path with `.`: - - ```vrl - .parent.child - ``` - """ - } - nonexistent: { - title: "Non-existent paths" - description: """ - Non-existent paths resolve to `null`. - """ - } - quoting: { - title: "Path quoting" - description: #""" - Path segments can be quoted to include special characters, such as spaces, periods, and - others: - - ```vrl - ."parent.key.with.special \"characters\"".child - ``` - """# - } - valid_characters: { - title: "Valid path characters" - description: """ - Path segments only allow for underscores and ASCII alpha-numeric characters - (`[a-zA-Z0-9_]`). Segments must be delimited with periods (`.`). If a segment contains - characters outside of this list it must be quoted. - """ - } - } - } - } - } - - examples: [ - { - title: "Root path" - input: log: message: "Hello, World!" - source: #""" - . - """# - return: input.log - }, - { - title: "Top-level path" - input: log: message: "Hello, World!" - source: #""" - .message - """# - return: input.log.message - }, - { - title: "Nested path" - input: log: parent: child: "Hello, World!" - source: #""" - .parent.child - """# - return: input.log.parent.child - }, - { - title: "Nested path coalescing" - input: log: grand_parent: parent2: child: "Hello, World!" - source: #""" - .grand_parent.(parent1 | parent2).child - """# - return: input.log.grand_parent.parent2.child - }, - { - title: "Array element path (first)" - input: log: array: ["first", "second"] - source: #""" - .array[0] - """# - return: input.log.array[0] - }, - { - title: "Array element path (second)" - input: log: array: ["first", "second"] - source: #""" - .array[1] - """# - return: input.log.array[1] - }, - { - title: "Quoted path" - input: log: "parent.key.with.special characters": child: "Hello, World!" - source: #""" - .\"parent.key.with.special characters\".child - """# - return: "Hello, World!" - }, - ] -} diff --git a/docs/reference/remap/features/quality_error_messages.cue b/docs/reference/remap/features/quality_error_messages.cue deleted file mode 100644 index 8570b8a2a5262..0000000000000 --- a/docs/reference/remap/features/quality_error_messages.cue +++ /dev/null @@ -1,34 +0,0 @@ -remap: features: quality_error_messages: { - title: "Quality error messages" - description: """ - VRL strives to provide high-quality, helpful error messages, streamling the development and iteration workflow - around VRL programs. - - This VRL program, for example... - - ```vrl - .foo, err = upcase(.foo) - ``` - - ...would result in this error: - - ```rust - error: program aborted - ┌─ :2:1 - │ - 2 │ parse_json!(1) - │ ^^^^^^^^^^^^^^ - │ │ - │ function call error - │ unable to parse json: key must be a string at line 1 column 3 - │ - = see function documentation at: https://master.vector.dev/docs/reference/vrl/functions/#parse_json - = see language documentation at: https://vector.dev/docs/reference/vrl/ - ``` - """ - - principles: { - performance: false - safety: false - } -} diff --git a/docs/reference/remap/functions.cue b/docs/reference/remap/functions.cue deleted file mode 100644 index 7c77fbc6eee92..0000000000000 --- a/docs/reference/remap/functions.cue +++ /dev/null @@ -1,35 +0,0 @@ -package metadata - -remap: { - #Argument: { - name: string - description: string - required: bool - multiple: bool | *false - default?: bool | string | int - type: [remap.#Type, ...remap.#Type] - enum?: #Enum - } - - #Function: { - anchor: name - name: string - category: #FunctionCategory - description: string - notices: [string, ...string] | *[] - - arguments: [...#Argument] - return: { - types: [remap.#Type, ...remap.#Type] - rules?: [string, ...string] - } - internal_failure_reasons: [...string] - examples?: [remap.#Example, ...remap.#Example] - } - - #FunctionCategory: "Array" | "Codec" | "Coerce" | "Debug" | "Enumerate" | "Event" | "Hash" | "IP" | "Map" | "Number" | "Parse" | "Random" | "String" | "System" | "Timestamp" | "Type" - - functions: [Name=string]: #Function & { - name: Name - } -} diff --git a/docs/reference/remap/functions/append.cue b/docs/reference/remap/functions/append.cue deleted file mode 100644 index 34f59d87229dd..0000000000000 --- a/docs/reference/remap/functions/append.cue +++ /dev/null @@ -1,35 +0,0 @@ -package metadata - -remap: functions: append: { - category: "Array" - description: """ - Appends the `items` to the end of the `value`. - """ - - arguments: [ - { - name: "value" - description: "The array" - required: true - type: ["array"] - }, - { - name: "items" - description: "The items to append" - required: true - type: ["array"] - }, - ] - internal_failure_reasons: [] - return: types: ["array"] - - examples: [ - { - title: "Append to an array" - source: """ - append([1, 2], [3, 4]) - """ - return: [1, 2, 3, 4] - }, - ] -} diff --git a/docs/reference/remap/functions/assert.cue b/docs/reference/remap/functions/assert.cue deleted file mode 100644 index 9e646efecb988..0000000000000 --- a/docs/reference/remap/functions/assert.cue +++ /dev/null @@ -1,52 +0,0 @@ -package metadata - -remap: functions: assert: { - category: "Debug" - description: """ - Asserts the `condition`. - - If the `condition` evaluates to `false` the program is aborted with the `message`. - """ - notices: [ - """ - This function is designed to be used in a standalone fashion, aborting the script if it fails. It should - not be used in logical expressions. - """, - ] - - arguments: [ - { - name: "condition" - description: "The condition to check." - required: true - type: ["boolean"] - }, - { - name: "message" - description: "Should condition be false, message will be reported as the failure message." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`condition` evaluates to `false`", - ] - return: types: ["null"] - - examples: [ - { - title: "Assertion (true)" - source: #""" - assert("foo" == "foo", message: "Foo must be foo!") - """# - return: null - }, - { - title: "Assertion (false)" - source: #""" - assert("foo" == "bar", message: "Foo must be foo!") - """# - raises: runtime: "Foo must be foo!" - }, - ] -} diff --git a/docs/reference/remap/functions/compact.cue b/docs/reference/remap/functions/compact.cue deleted file mode 100644 index dd9186b8e0ae4..0000000000000 --- a/docs/reference/remap/functions/compact.cue +++ /dev/null @@ -1,84 +0,0 @@ -package metadata - -remap: functions: compact: { - category: "Enumerate" - description: """ - Compacts the `value` by removing "empty" values. - - What is considered empty can be specified with the parameters. - """ - - arguments: [ - { - name: "value" - description: "The map or array to compact." - required: true - type: ["array", "map"] - }, - { - name: "recursive" - description: "Should the compact be recursive." - required: false - default: true - type: ["boolean"] - }, - { - name: "null" - description: "Should null be treated as an empty value." - required: false - default: true - type: ["boolean"] - }, - { - name: "string" - description: "Should an empty string be treated as an empty value." - required: false - default: true - type: ["boolean"] - }, - { - name: "map" - description: "Should an empty map be treated as an empty value." - required: false - default: true - type: ["boolean"] - }, - { - name: "array" - description: "Should an empty array be treated as an empty value." - required: false - default: true - type: ["boolean"] - }, - { - name: "nullish" - description: #"Tests if the value is "nullish" as defined by the `is_nullish` function."# - required: false - default: false - type: ["boolean"] - }, - ] - internal_failure_reasons: [] - return: { - types: ["array", "map"] - rules: [ - "The return type will match the `value` type.", - ] - } - examples: [ - { - title: "Compact an array" - source: #""" - compact(["foo", "bar", "", null, [], "buzz"], string: true, array: true, null: true) - """# - return: ["foo", "bar", "buzz"] - }, - { - title: "Compact a map" - source: #""" - compact({"field1": 1, "field2": "", "field3": [], "field4": null}, string: true, array: true, null: true) - """# - return: field1: 1 - }, - ] -} diff --git a/docs/reference/remap/functions/del.cue b/docs/reference/remap/functions/del.cue deleted file mode 100644 index 24046f2a8e693..0000000000000 --- a/docs/reference/remap/functions/del.cue +++ /dev/null @@ -1,47 +0,0 @@ -package metadata - -remap: functions: del: { - category: "Event" - description: """ - Removes the field specified by the `path` from the current event object. - """ - - arguments: [ - { - name: "path" - description: "The path of the field to delete." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [] - notices: [ - """ - The `del` function _modifies the current event in-place_ and returns the value of the deleted field. - """, - ] - return: { - types: ["any"] - rules: [ - "The return is the value of the field being deleted. If the field does not exist, `null` is returned.", - ] - } - - examples: [ - { - title: "Delete a field" - input: log: { - field1: 1 - field2: 2 - } - source: "del(.field1)" - output: log: field2: 2 - }, - { - title: "Rename a field" - input: log: old_field: "please rename me" - source: ".new_field = del(.old_field)" - output: log: new_field: "please rename me" - }, - ] -} diff --git a/docs/reference/remap/functions/encode_json.cue b/docs/reference/remap/functions/encode_json.cue deleted file mode 100644 index e4ae8f807edc6..0000000000000 --- a/docs/reference/remap/functions/encode_json.cue +++ /dev/null @@ -1,29 +0,0 @@ -package metadata - -remap: functions: encode_json: { - category: "Codec" - description: """ - Encodes the `value` to JSON. - """ - - arguments: [ - { - name: "value" - description: "The value to return a json representation of." - required: true - type: ["any"] - }, - ] - internal_failure_reasons: [] - return: types: ["string"] - - examples: [ - { - title: "Encode to JSON" - source: #""" - .payload = encode_json({"hello": "world"}) - """# - return: #"{"hello": "world"}"# - }, - ] -} diff --git a/docs/reference/remap/functions/exists.cue b/docs/reference/remap/functions/exists.cue deleted file mode 100644 index dd97854b1d79e..0000000000000 --- a/docs/reference/remap/functions/exists.cue +++ /dev/null @@ -1,39 +0,0 @@ -package metadata - -remap: functions: exists: { - category: "Event" - description: """ - Checks if the `path` exists for the current event. - """ - - arguments: [ - { - name: "path" - description: "The paths of the fields to check." - required: true - multiple: false - type: ["path"] - }, - ] - internal_failure_reasons: [] - return: types: ["boolean"] - - examples: [ - { - title: "Exists (field)" - input: log: field: 1 - source: #""" - exists(.field) - """# - return: true - }, - { - title: "Exits (array element)" - input: log: array: [1, 2, 3] - source: #""" - exists(.array[2]) - """# - return: true - }, - ] -} diff --git a/docs/reference/remap/functions/flatten.cue b/docs/reference/remap/functions/flatten.cue deleted file mode 100644 index e6f53ff9643ab..0000000000000 --- a/docs/reference/remap/functions/flatten.cue +++ /dev/null @@ -1,53 +0,0 @@ -package metadata - -remap: functions: flatten: { - category: "Enumerate" - description: #""" - Flattens the `value` into a single-level representation. - """# - - arguments: [ - { - name: "value" - description: "The array or map to flatten." - required: true - type: ["array", "map"] - }, - ] - internal_failure_reasons: [] - return: { - types: ["array", "map"] - rules: [ - "The return type will match the `value` type.", - ] - } - - examples: [ - { - title: "Flatten array" - source: #""" - flatten([1, [2, 3, 4], [5, [6, 7], 8], 9]) - """# - return: [1, 2, 3, 4, 5, 6, 7, 8, 9] - }, - { - title: "Flatten map" - source: #""" - flatten({ - "parent1": { - "child1": 1, - "child2": 2 - }, - "parent2": { - "child3": 3 - } - }) - """# - return: { - "grandparent.parent1.child1": 1 - "grandparent.parent1.child2": 2 - "grandparent.parent2.child1": 2 - } - }, - ] -} diff --git a/docs/reference/remap/functions/format_timestamp.cue b/docs/reference/remap/functions/format_timestamp.cue deleted file mode 100644 index 292f0f331edc0..0000000000000 --- a/docs/reference/remap/functions/format_timestamp.cue +++ /dev/null @@ -1,42 +0,0 @@ -package metadata - -remap: functions: format_timestamp: { - category: "Timestamp" - description: #""" - Formats the `value` into a string representation of the timestamp. - """# - - arguments: [ - { - name: "value" - description: "The timestamp to format as text." - required: true - type: ["timestamp"] - }, - { - name: "format" - description: "The format string as decribed by the [Chrono library](\(urls.chrono_time_formats))." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [] - return: types: ["string"] - - examples: [ - { - title: "Format a timestamp (ISO8601/RFC 3339)" - source: #""" - format_timestamp(now(), format: "%+") - """# - return: "2020-10-21T16:00:00Z" - }, - { - title: "Format a timestamp (custom)" - source: #""" - format_timestamp(now(), format: "%v %R") - """# - return: "10-Oct-2020 16:00" - }, - ] -} diff --git a/docs/reference/remap/functions/get_env_var.cue b/docs/reference/remap/functions/get_env_var.cue deleted file mode 100644 index 5787ae3074fa7..0000000000000 --- a/docs/reference/remap/functions/get_env_var.cue +++ /dev/null @@ -1,32 +0,0 @@ -package metadata - -remap: functions: get_env_var: { - category: "System" - description: """ - Gets the value of the environment variable specifed by `name`. - """ - - arguments: [ - { - name: "name" - description: "Name of the environment variable." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "Environment variable `name` does not exist", - "Value of environment variable `name` is not valid unicode", - ] - return: types: ["string"] - - examples: [ - { - title: "Get environment variable" - source: #""" - get_env_var("HOME") - """# - return: "/root" - }, - ] -} diff --git a/docs/reference/remap/functions/get_hostname.cue b/docs/reference/remap/functions/get_hostname.cue deleted file mode 100644 index 7cf67b17d9ae2..0000000000000 --- a/docs/reference/remap/functions/get_hostname.cue +++ /dev/null @@ -1,23 +0,0 @@ -package metadata - -remap: functions: get_hostname: { - category: "System" - description: """ - Gets the local system's hostname. - """ - - arguments: [] - internal_failure_reasons: [] - return: types: ["string"] - - examples: [ - { - title: "Get hostname" - input: log: {} - source: #""" - .hostname = get_hostname!() - """# - output: log: hostname: "localhost.localdomain" - }, - ] -} diff --git a/docs/reference/remap/functions/ip_cidr_contains.cue b/docs/reference/remap/functions/ip_cidr_contains.cue deleted file mode 100644 index fad88192dff5a..0000000000000 --- a/docs/reference/remap/functions/ip_cidr_contains.cue +++ /dev/null @@ -1,45 +0,0 @@ -package metadata - -remap: functions: ip_cidr_contains: { - category: "IP" - description: """ - Determines if the `ip` is contained within the block referenced by the `cidr`. - """ - - arguments: [ - { - name: "cidr" - description: "The CIDR mask - either v4 or v6." - required: true - type: ["string"] - }, - { - name: "ip" - description: "The ip address - either a v4 or a v6 address." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`cidr` is not a valid CIDR", - "`ip` is not a valid IP address", - ] - return: types: ["boolean"] - - examples: [ - { - title: "IPv4 contains CIDR" - source: #""" - ip_cidr_contains("192.168.0.0/16", "192.168.10.32") - """# - return: true - }, - { - title: "IPv6 contains CIDR" - source: #""" - ip_cidr_contains("2001:4f8:4:ba::/64", "2001:4f8:4:ba:2e0:81ff:fe22:d1f1") - """# - return: true - }, - ] -} diff --git a/docs/reference/remap/functions/ip_subnet.cue b/docs/reference/remap/functions/ip_subnet.cue deleted file mode 100644 index f52a492446f96..0000000000000 --- a/docs/reference/remap/functions/ip_subnet.cue +++ /dev/null @@ -1,53 +0,0 @@ -package metadata - -remap: functions: ip_subnet: { - category: "IP" - description: """ - Extracts the subnet address from the `ip` using the supplied `subnet`. - """ - notices: [ - """ - Works with both IPv4 and IPv6 addresses. The IP version for the mask must be the same as the supplied address. - """, - ] - - arguments: [ - { - name: "ip" - description: "The ip address - either a v4 or a v6 address." - required: true - type: ["string"] - }, - { - name: "subnet" - description: #""" - The subnet to extract from the ip address. This can be either in the form of a prefix length, - eg. `/8` or as a net mask - `255.255.0.0`. The net mask can be either an IPv4 or IPv6 address. - """# - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`ip` is not a valid IP address", - "`subnet` is not a valid subnet.", - ] - return: types: ["string"] - - examples: [ - { - title: "IPv4 subnet" - source: #""" - ip_subnet("192.168.10.32", "255.255.255.0") - """# - return: "192.168.10.0" - }, - { - title: "IPv6 subnet" - source: #""" - ip_subnet("2404:6800:4003:c02::64", "/32") - """# - return: "2404:6800::" - }, - ] -} diff --git a/docs/reference/remap/functions/ip_to_ipv6.cue b/docs/reference/remap/functions/ip_to_ipv6.cue deleted file mode 100644 index 45b641ae4df6d..0000000000000 --- a/docs/reference/remap/functions/ip_to_ipv6.cue +++ /dev/null @@ -1,37 +0,0 @@ -package metadata - -remap: functions: ip_to_ipv6: { - category: "IP" - description: """ - Converts the `ip` to an IPv6 address. - """ - - arguments: [ - { - name: "ip" - description: "The ip address to convert to IPv6." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`ip` is not a valid IP address", - ] - return: { - types: ["string"] - rules: [ - "If `ip` is already an IPv6 address it is passed through untouched.", - "If `ip` is a IPv4 address then it converted to IPv4 mapped IPv6 addresses.", - ] - } - - examples: [ - { - title: "IPv4 to IPv6" - source: #""" - ip_to_ipv6("192.168.10.32") - """# - return: "::ffff:192.168.10.32" - }, - ] -} diff --git a/docs/reference/remap/functions/ipv6_to_ipv4.cue b/docs/reference/remap/functions/ipv6_to_ipv4.cue deleted file mode 100644 index 674e8658d4f27..0000000000000 --- a/docs/reference/remap/functions/ipv6_to_ipv4.cue +++ /dev/null @@ -1,37 +0,0 @@ -package metadata - -remap: functions: ipv6_to_ipv4: { - category: "IP" - description: """ - Converts the `ip` to an IPv4 address. - """ - - arguments: [ - { - name: "ip" - description: "The IPv4 mapped IPv6 address to convert." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`ip` is not a valid IP address", - "`ip` is an IPv6 address that is not compatible with IPv4", - ] - return: { - types: ["string"] - rules: [ - "If the parameter is already an IPv4 address it is passed through untouched. If it is an IPv6 address it has to be an IPv4 compatible address.", - ] - } - - examples: [ - { - title: "IPv6 to IPv4" - source: #""" - ipv6_to_ipv4("::ffff:192.168.0.1") - """# - return: "192.168.0.1" - }, - ] -} diff --git a/docs/reference/remap/functions/is_nullish.cue b/docs/reference/remap/functions/is_nullish.cue deleted file mode 100644 index 50d460a97dcde..0000000000000 --- a/docs/reference/remap/functions/is_nullish.cue +++ /dev/null @@ -1,52 +0,0 @@ -package metadata - -remap: functions: is_nullish: { - category: "Type" - description: """ - Determines whether the `value` is "nullish". - - Nullish indicates the absence of a meaningful value. - """ - - arguments: [ - { - name: "value" - description: #"The value to check for "nullishness," i.e. a useless value."# - required: true - type: ["any"] - }, - ] - internal_failure_reasons: [] - return: { - types: ["boolean"] - rules: [ - #"If `value` is `null`, then `true` is returned."#, - #"If `value` is `"-"`, then `true` is returned."#, - #"If `value` is whitespace, as defined by [Unicode `White_Space` property](\#(urls.unicode_whitespace)), then `true` is returned."#, - ] - } - - examples: [ - { - title: "Null detection (blank string)" - source: """ - is_nullish("") - """ - return: true - }, - { - title: "Null detection (dash string)" - source: """ - is_nullish("-") - """ - return: true - }, - { - title: "Null detection (whitespace)" - source: """ - is_nullish("\n \n") - """ - return: true - }, - ] -} diff --git a/docs/reference/remap/functions/length.cue b/docs/reference/remap/functions/length.cue deleted file mode 100644 index f59ddfc9a6c17..0000000000000 --- a/docs/reference/remap/functions/length.cue +++ /dev/null @@ -1,69 +0,0 @@ -package metadata - -remap: functions: length: { - category: "Enumerate" - description: """ - Returns the length of the `value`. - """ - - arguments: [ - { - name: "value" - description: "The array or map" - required: true - type: ["array", "map", "string"] - }, - ] - internal_failure_reasons: [] - return: { - types: ["integer"] - rules: [ - "If `value` is an array, the size of the array is returned.", - "If `value` is a string, the size of the string is returned.", - "If `value` is a map, the number of map keys is returned (nested keys are ignored)", - ] - } - - examples: [ - { - title: "Length (map)" - source: """ - length({ - "portland": "Trail Blazers" - "seattle": "Supersonics" - }) - """ - return: 2 - }, - { - title: "Length (nested map)" - source: """ - length({ - "home": { - "city": "Portland" - "state": "Oregon" - } - "name": "Trail Blazers" - "mascot": { - "name": "Blaze the Trail Cat" - } - }) - """ - return: 3 - }, - { - title: "Length (array)" - source: """ - length(["Trail Blazers", "Supersonics", "Grizzlies"]) - """ - return: 3 - }, - { - title: "Length (string)" - source: """ - length("The Planet of the Apes Musical") - """ - return: 30 - }, - ] -} diff --git a/docs/reference/remap/functions/log.cue b/docs/reference/remap/functions/log.cue deleted file mode 100644 index daef88a4a2a1f..0000000000000 --- a/docs/reference/remap/functions/log.cue +++ /dev/null @@ -1,53 +0,0 @@ -package metadata - -remap: functions: log: { - category: "Debug" - description: """ - Logs the `value` to Vector's [stdout](\(urls.stdout)) at the specified `level`. - """ - - arguments: [ - { - name: "value" - description: "The value to log." - required: true - type: ["any"] - }, - { - name: "level" - description: "The log level." - required: false - type: ["string"] - enum: { - trace: "Log at the `trace` level." - debug: "Log at the `debug` level." - info: "Log at the `info` level." - warn: "Log at the `warn` level." - error: "Log at the `error` level." - } - default: "info" - }, - ] - internal_failure_reasons: [] - return: types: ["null"] - - examples: [ - { - title: "Log a message" - source: #""" - log("Hello, World!", level: "info") - """# - return: null - }, - { - title: "Log an error" - source: #""" - ts, err = format_timestamp(to_timestamp("10-Oct-2020 1")) - if err != null { - log(err, level: "error") - } - """# - return: null - }, - ] -} diff --git a/docs/reference/remap/functions/match.cue b/docs/reference/remap/functions/match.cue deleted file mode 100644 index 48f54972a12c5..0000000000000 --- a/docs/reference/remap/functions/match.cue +++ /dev/null @@ -1,35 +0,0 @@ -package metadata - -remap: functions: match: { - category: "String" - description: """ - Determines if the `value` matches the `pattern`. - """ - - arguments: [ - { - name: "value" - description: "The value to match." - required: true - type: ["string"] - }, - { - name: "pattern" - description: "The regular expression pattern to match against." - required: true - type: ["regex"] - }, - ] - internal_failure_reasons: [] - return: types: ["boolean"] - - examples: [ - { - title: "Regex match on a string" - source: """ - match("I'm a little teapot", r'teapot') - """ - return: true - }, - ] -} diff --git a/docs/reference/remap/functions/merge.cue b/docs/reference/remap/functions/merge.cue deleted file mode 100644 index 524254febec3a..0000000000000 --- a/docs/reference/remap/functions/merge.cue +++ /dev/null @@ -1,101 +0,0 @@ -package metadata - -remap: functions: merge: { - category: "Map" - description: """ - Merges the `from` map into the `to` map. - """ - - arguments: [ - { - name: "to" - description: "The object to merge into." - required: true - type: ["string"] - }, - { - name: "from" - description: "The object to merge from." - required: true - type: ["map"] - }, - { - name: "deep" - description: "If true a deep merge is performed, otherwise only top level fields are merged." - required: false - default: false - type: ["boolean"] - }, - ] - internal_failure_reasons: [] - return: { - types: ["map"] - rules: [ - #"If a key exists in both maps, the field from the `from` map is chosen."#, - #"If `deep` is specified, and a key exists in both maps, and both these fields are also maps, then those maps will merge recursively as well."#, - ] - } - - examples: [ - { - title: "Object merge (shallow)" - source: #""" - merge( - { - "parent1": { - "child1": 1, - "child2": 2 - }, - "parent2": { - "child3": 3 - } - }, - { - "parent1": { - "child2": 4, - "child5": 4 - } - } - ) - """# - return: { - parent1: { - child2: 4 - child5: 5 - } - parent2: child3: 3 - } - }, - { - title: "Object merge (deep)" - source: #""" - merge( - { - "parent1": { - "child1": 1, - "child2": 2 - }, - "parent2": { - "child3": 3 - } - }, - { - "parent1": { - "child2": 4, - "child5": 4 - } - }, - deep: true - ) - """# - return: { - parent1: { - child1: 1 - child2: 4 - child5: 5 - } - parent2: child3: 3 - } - }, - ] -} diff --git a/docs/reference/remap/functions/parse_aws_vpc_flow_log.cue b/docs/reference/remap/functions/parse_aws_vpc_flow_log.cue deleted file mode 100644 index 5c6dca01790f0..0000000000000 --- a/docs/reference/remap/functions/parse_aws_vpc_flow_log.cue +++ /dev/null @@ -1,69 +0,0 @@ -package metadata - -remap: functions: parse_aws_vpc_flow_log: { - category: "Parse" - description: """ - Parses `value` in the [VPC Flow Logs format](\(urls.aws_vpc_flow_logs)). - """ - - arguments: [ - { - name: "value" - description: "VPC Flow Log." - required: true - type: ["string"] - }, - { - name: "format" - description: "VPC Flow Log format." - required: false - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`value` is not a properly formatted AWS VPC Flow log", - ] - return: types: ["map"] - - examples: [ - { - title: "Parse AWS VPC Flow log (default format)" - source: #""" - parse_aws_vpc_flow_log("2 123456789010 eni-1235b8ca123456789 - - - - - - - 1431280876 1431280934 - NODATA") - """# - return: { - "version": 2 - "account_id": 123456789010 - "interface_id": "eni-1235b8ca123456789" - "srcaddr": null - "dstaddr": null - "srcport": null - "dstport": null - "protocol": null - "packets": null - "bytes": null - "start": 1431280876 - "end": 1431280934 - "action": null - "log_status": "NODATA" - } - }, - { - title: "Parse AWS VPC Flow log (custom format)" - source: #""" - parse_aws_vpc_flow_log( - "- eni-1235b8ca123456789 10.0.1.5 10.0.0.220 10.0.1.5 203.0.113.5", - "instance_id interface_id srcaddr dstaddr pkt_srcaddr pkt_dstaddr" - ) - """# - return: { - "instance_id": null - "interface_id": "eni-1235b8ca123456789" - "srcaddr": "10.0.1.5" - "dstaddr": "10.0.0.220" - "pkt_srcaddr": "10.0.1.5" - "pkt_dstaddr": "203.0.113.5" - } - }, - ] -} diff --git a/docs/reference/remap/functions/parse_common_log.cue b/docs/reference/remap/functions/parse_common_log.cue deleted file mode 100644 index f89ced2cb7dda..0000000000000 --- a/docs/reference/remap/functions/parse_common_log.cue +++ /dev/null @@ -1,77 +0,0 @@ -package metadata - -remap: functions: parse_common_log: { - category: "Parse" - description: """ - Parses the `value` using the [Common Log Format](https://httpd.apache.org/docs/1.3/logs.html#common). - """ - notices: [ - """ - Missing information in the log message may be indicated by `-`. These fields will not be present in the result. - """, - ] - - arguments: [ - { - name: "value" - description: "The string to parse." - required: true - type: ["string"] - }, - { - name: "timestamp_format" - description: "The [date/time format](https://docs.rs/chrono/latest/chrono/format/strftime/index.html) the log message timestamp is encoded in." - required: false - default: "%d/%b/%Y:%T %z" - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`value` does not match the Common Log Format", - "`timestamp_format` is not a valid format string", - "timestamp in `value` fails to parse via the provided `timestamp_format`", - ] - return: types: ["map"] - - examples: [ - { - title: "Parse via Common Log Format (with default timestamp format)" - source: #""" - parse_common_log("127.0.0.1 bob frank [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 200 2326") - """# - return: { - host: "127.0.0.1" - identity: "bob" - user: "frank" - timestamp: "2000-10-10T20:55:36Z" - message: "GET /apache_pb.gif HTTP/1.0" - method: "GET" - path: "/apache_pb.gif" - protocol: "HTTP/1.0" - status: 200 - size: 2326 - } - }, - { - title: "Parse via Common Log Format (with custom timestamp format)" - source: #""" - parse_common_log( - "127.0.0.1 bob frank [2000-10-10T20:55:36Z] \"GET /apache_pb.gif HTTP/1.0\" 200 2326", - "%+" - ) - """# - return: { - host: "127.0.0.1" - identity: "bob" - user: "frank" - timestamp: "2000-10-10T20:55:36Z" - message: "GET /apache_pb.gif HTTP/1.0" - method: "GET" - path: "/apache_pb.gif" - protocol: "HTTP/1.0" - status: 200 - size: 2326 - } - }, - ] -} diff --git a/docs/reference/remap/functions/parse_duration.cue b/docs/reference/remap/functions/parse_duration.cue deleted file mode 100644 index d415c916ac41d..0000000000000 --- a/docs/reference/remap/functions/parse_duration.cue +++ /dev/null @@ -1,49 +0,0 @@ -package metadata - -remap: functions: parse_duration: { - category: "Parse" - description: """ - Parses the `value` in a human duration format specified by `unit`. - """ - - arguments: [ - { - name: "value" - description: "The string of the duration." - required: true - type: ["string"] - }, - { - name: "unit" - description: "The string of the duration unit the number should be output as." - required: true - type: ["string"] - enum: { - ns: "Nanoseconds (1 billion nanoseconds in a second)" - us: "Microseconds (1 million microseconds in a second)" - µs: "Microseconds (1 million microseconds in a second)" - ms: "Milliseconds (1 thousand microseconds in a second)" - cs: "Centiseconds (100 centiseconds in a second)" - ds: "Deciseconds (10 deciseconds in a second)" - s: "Seconds" - m: "Minutes (60 seconds in a minute)" - h: "Hours (60 minutes in an hour)" - d: "Days (24 hours in a day)" - } - }, - ] - internal_failure_reasons: [ - "`value` is not a properly formatted duration", - ] - return: types: ["float"] - - examples: [ - { - title: "Parse duration (milliseconds)" - source: #""" - parse_duration("1005ms", unit: "s") - """# - return: 1.005 - }, - ] -} diff --git a/docs/reference/remap/functions/parse_grok.cue b/docs/reference/remap/functions/parse_grok.cue deleted file mode 100644 index e8b1be3b803fc..0000000000000 --- a/docs/reference/remap/functions/parse_grok.cue +++ /dev/null @@ -1,59 +0,0 @@ -package metadata - -remap: functions: parse_grok: { - category: "Parse" - description: """ - Parses the `value` using the [`grok` format](\(urls.grok)). - - All patterns [listed here](\(urls.grok_patterns)) are supported. - """ - notices: [ - """ - It is recommended to use maintained Grok patterns when possible, since they will be improved over time - by the community. - """, - ] - - arguments: [ - { - name: "value" - description: "The string to parse." - required: true - type: ["string"] - }, - { - name: "pattern" - description: "The [Grok pattern](https://github.com/daschl/grok/tree/master/patterns)." - required: true - type: ["string"] - }, - { - name: "remove_empty" - description: "If set to true, any patterns that resolve to an empty value will be removed from the result." - required: false - default: true - type: ["boolean"] - }, - ] - internal_failure_reasons: [ - "`value` fails to parse via the provided `pattern`", - ] - return: types: ["map"] - - examples: [ - { - title: "Parse via Grok" - source: #""" - parse_grok( - "2020-10-02T23:22:12.223222Z info Hello world", - "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:message}" - ) - """# - return: { - timestamp: "2020-10-02T23:22:12.223222Z" - level: "info" - message: "Hello world" - } - }, - ] -} diff --git a/docs/reference/remap/functions/parse_json.cue b/docs/reference/remap/functions/parse_json.cue deleted file mode 100644 index 4dbedd00702e9..0000000000000 --- a/docs/reference/remap/functions/parse_json.cue +++ /dev/null @@ -1,37 +0,0 @@ -package metadata - -remap: functions: parse_json: { - category: "Parse" - description: """ - Parses the `value` as JSON. - """ - notices: [ - """ - Only JSON types are returned. If you need to convert a `string` into a `timestamp`, consider the - `parse_timestamp` function. - """, - ] - - arguments: [ - { - name: "value" - description: "The string representation of the JSON to parse." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`value` is not a valid JSON formatted payload", - ] - return: types: ["boolean", "integer", "float", "string", "map", "array", "null"] - - examples: [ - { - title: "Parse JSON" - source: #""" - parse_json("{\"key\": \"val\"}") - """# - return: key: "val" - }, - ] -} diff --git a/docs/reference/remap/functions/parse_key_value.cue b/docs/reference/remap/functions/parse_key_value.cue deleted file mode 100644 index d75f9fec151d4..0000000000000 --- a/docs/reference/remap/functions/parse_key_value.cue +++ /dev/null @@ -1,83 +0,0 @@ -package metadata - -remap: functions: parse_key_value: { - category: "Parse" - description: #""" - Parses the `value` in key/value format. Also known as [logfmt](\#(urls.logfmt)). - - * Keys and values can be wrapped with `"`. - * `"` characters can be escaped by `\`. - """# - notices: [ - """ - All values are returned as strings, it is recommended to manually coerce values as you see fit. - """, - ] - - arguments: [ - { - name: "value" - description: "The string to parse." - required: true - type: ["string"] - }, - { - name: "key_value_delimiter" - description: "The string that separates the key from the value." - required: false - default: "=" - type: ["string"] - }, - { - name: "field_delimiter" - description: "The string that separates each key/value pair." - required: false - default: " " - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`value` is not a properly formatted key/value string", - ] - return: types: ["map"] - - examples: [ - { - title: "Parse logfmt log" - source: #""" - parse_key_value( - "@timestamp=\"Sun Jan 10 16:47:39 EST 2021\" level=info msg=\"Stopping all fetchers\" tag#production=stopping_fetchers id=ConsumerFetcherManager-1382721708341 module=kafka.consumer.ConsumerFetcherManager" - ) - """# - return: { - "@timestamp": "Sun Jan 10 16:47:39 EST 2021" - level: "info" - msg: "Stopping all fetchers" - "tag#production": "stopping_fetchers" - id: "ConsumerFetcherManager-1382721708341" - module: "kafka.consumer.ConsumerFetcherManager" - } - }, - { - title: "Parse comma delimited log" - source: #""" - parse_key_value( - "path:\"/cart_link\", host:store.app.com, fwd: \"102.30.171.16\", dyno: web.1 connect:0ms, service:87ms, status:304, bytes:632, protocol:https", - field_delimiter: ",", - key_value_delimiter: ":" - ) - """# - return: { - path: "/cart_link" - host: "store.app.com" - fwd: "102.30.171.16" - dyno: "web.1" - connect: "0ms" - service: "87ms" - status: "304" - bytes: "632" - protocol: "https" - } - }, - ] -} diff --git a/docs/reference/remap/functions/parse_regex.cue b/docs/reference/remap/functions/parse_regex.cue deleted file mode 100644 index c646b7eac12d0..0000000000000 --- a/docs/reference/remap/functions/parse_regex.cue +++ /dev/null @@ -1,69 +0,0 @@ -package metadata - -remap: functions: parse_regex: { - category: "Parse" - description: """ - Parses the `value` via the provided [Regex](\(urls.regex)) `pattern`. - - This function differs from the `parse_regex_all` function in that it returns the first match only. - """ - notices: [ - """ - VRL aims to provide purpose-specific [parsing functions](\(urls.vrl_parsing_functions)) for common log formats. - Before reaching for the `parse_regex` function, see if a Remap [`parse_*` function](\(urls.vrl_parsing_functions)) - already exists for your format. If not, please consider [opening an issue](\(urls.new_feature_request)) to - request support. - """, - """ - All values are returned as strings, it is recommended to manually coerce values as you see fit. - """, - ] - - arguments: [ - { - name: "value" - description: "The string to search." - required: true - type: ["string"] - }, - { - name: "pattern" - description: "The regular expression pattern to search against." - required: true - type: ["regex"] - }, - ] - internal_failure_reasons: [ - "`value` fails to parse via the provided `pattern`", - ] - return: { - types: ["map"] - rules: [ - "Matches will return the capture groups corresponding to the leftmost matches in the text.", - "If no match is found an empty map is returned.", - ] - } - - examples: [ - { - title: "Parse via Regex (with capture groups)" - source: """ - parse_regex("first group and second group.", r'(?P.*?) group') - """ - return: { - number: "first" - "0": "first group" - "1": "first" - } - }, - { - title: "Parse via Regex (without capture groups)" - source: """ - parse_regex("first group and second group.", r'(?.*?) group') - """ - return: { - "1": "first" - } - }, - ] -} diff --git a/docs/reference/remap/functions/parse_regex_all.cue b/docs/reference/remap/functions/parse_regex_all.cue deleted file mode 100644 index cd52d6469fcea..0000000000000 --- a/docs/reference/remap/functions/parse_regex_all.cue +++ /dev/null @@ -1,57 +0,0 @@ -package metadata - -remap: functions: parse_regex_all: { - category: "Parse" - description: """ - Parses the `value` via the provided [Regex](\(urls.regex)) `pattern`. - - This function differs from the `parse_regex` function in that it returns _all_ matches, not just the first. - """ - notices: remap.functions.parse_regex.notices - - arguments: [ - { - name: "value" - description: "The string to search." - required: true - type: ["string"] - }, - { - name: "pattern" - description: "The regular expression pattern to search against." - required: true - type: ["regex"] - }, - ] - internal_failure_reasons: [ - "`value` fails to parse via the provided `pattern`", - ] - return: { - types: ["array"] - rules: [ - "Matches will return all capture groups corresponding to the leftmost matches in the text.", - "If no match is found an empty map is returned.", - ] - } - - examples: [ - { - title: "Parse via Regex (all matches)" - source: """ - parse_regex_all("first group and second group.", r'(?P.*?) group') - """ - return: [ - { - number: "first" - "0": "first group" - "1": "first" - }, - { - number: "second" - "0": "second group" - "1": "second" - }, - ] - }, - ] -} diff --git a/docs/reference/remap/functions/parse_syslog.cue b/docs/reference/remap/functions/parse_syslog.cue deleted file mode 100644 index c91b04de8b25e..0000000000000 --- a/docs/reference/remap/functions/parse_syslog.cue +++ /dev/null @@ -1,55 +0,0 @@ -package metadata - -remap: functions: parse_syslog: { - category: "Parse" - description: """ - Parses the `value` in [Syslog](\(urls.syslog)) format. - """ - notices: [ - """ - The function makes a best effort to parse the various Syslog formats out in the wild. This includes - [RFC 6587](\(urls.syslog_6587)), [RFC 5424](\(urls.syslog_5424)), [RFC 3164](\(urls.syslog_3164)), and other - common variations (such as the Nginx Syslog style). - """, - """ - All structured data values are returned as strings, it is recommended to manually coerce values as you see fit. - """, - ] - - arguments: [ - { - name: "value" - description: "The text containing the syslog message to parse." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`value` is not a properly formatted Syslog log", - ] - return: types: ["map"] - - examples: [ - { - title: "Parse Syslog log (5424)" - source: """ - parse_syslog( - "<13>1 2020-03-13T20:45:38.119Z dynamicwireless.name non 2426 ID931 [exampleSDID@32473 iut=\"3\" eventSource= \"Application\" eventID=\"1011\"] Try to override the THX port, maybe it will reboot the neural interface!" - ) - """ - return: { - severity: "notice" - facility: "user" - timestamp: "2020-03-13T20:45:38.119Z" - hostname: "dynamicwireless.name" - appname: "non" - procid: "2426" - msgid: "ID931" - iut: "3" - eventSource: "Application" - eventID: "1011" - message: "Try to override the THX port, maybe it will reboot the neural interface!" - } - }, - ] -} diff --git a/docs/reference/remap/functions/parse_timestamp.cue b/docs/reference/remap/functions/parse_timestamp.cue deleted file mode 100644 index 05ec967d2e414..0000000000000 --- a/docs/reference/remap/functions/parse_timestamp.cue +++ /dev/null @@ -1,38 +0,0 @@ -package metadata - -remap: functions: parse_timestamp: { - category: "Parse" - description: """ - Parses the `value` in [strptime](\(urls.strptime_specifiers)) `format`. - """ - - arguments: [ - { - name: "value" - description: "The text of the timestamp." - required: true - type: ["string"] - }, - { - name: "format" - description: "The [strptime](\(urls.strptime_specifiers)) format." - required: true - type: ["string"] - }, - - ] - internal_failure_reasons: [ - "`value` fails to parse via the provided `format`", - ] - return: types: ["timestamp"] - - examples: [ - { - title: "Parse timestamp" - source: #""" - parse_timestamp("10-Oct-2020 16:00", format: "%v %R") - """# - return: "2020-10-10T16:00:00Z" - }, - ] -} diff --git a/docs/reference/remap/functions/parse_tokens.cue b/docs/reference/remap/functions/parse_tokens.cue deleted file mode 100644 index eeb5843ffc0d7..0000000000000 --- a/docs/reference/remap/functions/parse_tokens.cue +++ /dev/null @@ -1,44 +0,0 @@ -package metadata - -remap: functions: parse_tokens: { - category: "Parse" - description: #""" - Parses the `value` in "token" format. - - A token is considered to be: - - * A word surrounded by whitespace. - * Text delimited by double quotes: `".."`. Quotes can be included in the token if they are escaped by a backslash (`\`). - * Text delimited by square brackets: `[..]`. Closing square brackets can be included in the token if they are escaped by a backslash (`\`). - """# - notices: [ - """ - All token values are returned as strings, it is recommended to manually coerce values as you see fit. - """, - ] - - arguments: [ - { - name: "value" - description: "The string to tokenize." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`value` is not a properly formatted tokenized string", - ] - return: types: ["array"] - - examples: [ - { - title: "Parse tokens" - source: #""" - parse_tokens( - "A sentence \"with \\"a\\" sentence inside\" and [some brackets]" - ) - """# - return: ["A", "sentence", #"with \"a\" sentence inside"#, "and", "some brackets"] - }, - ] -} diff --git a/docs/reference/remap/functions/parse_url.cue b/docs/reference/remap/functions/parse_url.cue deleted file mode 100644 index 05f953bedcff8..0000000000000 --- a/docs/reference/remap/functions/parse_url.cue +++ /dev/null @@ -1,40 +0,0 @@ -package metadata - -remap: functions: parse_url: { - category: "Parse" - description: """ - Parses the `value` in [URL](\(urls.url)) format. - """ - - arguments: [ - { - name: "value" - description: "The text of the url." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`value` is not a properly formatted URL", - ] - return: types: ["map"] - - examples: [ - { - title: "Parse URL" - source: #""" - parse_url("ftp://foo:bar@vector.dev:4343/foobar?hello=world#123") - """# - return: { - scheme: "ftp" - username: "foo" - password: "bar" - host: "vector.dev" - port: 4343 - path: "/foobar" - query: hello: "world" - fragment: "123" - } - }, - ] -} diff --git a/docs/reference/remap/functions/redact.cue b/docs/reference/remap/functions/redact.cue deleted file mode 100644 index 2b4fec562416e..0000000000000 --- a/docs/reference/remap/functions/redact.cue +++ /dev/null @@ -1,66 +0,0 @@ -package metadata - -remap: functions: redact: { - category: "String" - description: """ - Redacts sensitive data from the `value` via the specified `patterns`. - - This function is useful to redact personally identifiable information (PII) such as emails, credit card numbers, - and more. - """ - - arguments: [ - { - name: "value" - description: "The value that you want to redact." - required: true - type: ["string"] - }, - { - name: "filters" - description: "A list of filters to apply to the input value." - required: false - type: ["array"] - enum: { - pattern: "Filter based on a supplied regular expression." - } - }, - { - name: "redactor" - description: "The redaction method to be applied, with multiple options available." - required: false - type: ["string"] - enum: { - full: "Replace the entire content with `****`. Exactly 4 characters are used as to not give away the length of the original value." - } - }, - { - name: "patterns" - description: """ - A list of patterns to apply. Patterns can be strings or regular expressions; if a - string is supplied, Vector searches for exact matches to redact. - """ - required: false - type: ["array"] - }, - ] - internal_failure_reasons: [] - return: types: ["string"] - - examples: [ - { - title: "Redact (credit card number)" - source: """ - redact("9876123454320123", filters: ["pattern"], redactor: "full", patterns: [r'[0-9]{16}']) - """ - return: "****" - }, - { - title: "Redact (email address)" - source: #""" - redact("vic@vector.dev", filters: ["pattern"], redactor: "full", patterns: [r'^\S+@\S+$']) - """# - return: "****" - }, - ] -} diff --git a/docs/reference/remap/functions/replace.cue b/docs/reference/remap/functions/replace.cue deleted file mode 100644 index 538f050b27f50..0000000000000 --- a/docs/reference/remap/functions/replace.cue +++ /dev/null @@ -1,63 +0,0 @@ -package metadata - -remap: functions: replace: { - category: "String" - description: """ - Replaces all matching instances of `pattern` in the `value`. - """ - - arguments: [ - { - name: "value" - description: "The original string." - required: true - type: ["string"] - }, - { - name: "pattern" - description: "Replace all matches of this pattern. Can be a static string or a regular expression." - required: true - type: ["regex", "string"] - }, - { - name: "with" - description: "The string that the matches are replaced with." - required: true - type: ["string"] - }, - { - name: "count" - description: "The maximum number of replacements to perform. -1 means replace all matches." - required: false - default: -1 - type: ["integer"] - - }, - ] - internal_failure_reasons: [] - return: types: ["string"] - - examples: [ - { - title: "Replace literal text" - source: #""" - replace("Apples and Bananas", "and", "not") - """# - return: "Apples not Bananas" - }, - { - title: "Replace via regular expression" - source: #""" - replace("Apples and Bananas", r'bananas'i, "Pineapples") - """# - return: "apples and Pineapples" - }, - { - title: "Replace first instance" - source: #""" - replace("Bananas and Bananas", "Bananas", "Pineapples", count: 1) - """# - return: "Pineapples and Bananas" - }, - ] -} diff --git a/docs/reference/remap/functions/slice.cue b/docs/reference/remap/functions/slice.cue deleted file mode 100644 index 905c53453f4e2..0000000000000 --- a/docs/reference/remap/functions/slice.cue +++ /dev/null @@ -1,53 +0,0 @@ -package metadata - -remap: functions: slice: { - category: "String" - description: """ - Returns a slice of the `value` between the `start` and `end` positions. - - If the `start` and `end` parameters are negative, they refer to positions counting from the right of the - string or array. If `end` refers to a position that is greater than the length of the string or array - a slice up to the end of the string or array is returned. - """ - - arguments: [ - { - name: "value" - description: "The string or array to slice." - required: true - type: ["array", "string"] - }, - { - name: "start" - description: "The inclusive start position. A zero-based index that can be negative." - required: true - type: ["integer"] - }, - { - name: "end" - description: "The inclusive end position. A zero-based index that can be negative." - required: false - default: "String length" - type: ["integer"] - }, - ] - internal_failure_reasons: [] - return: types: ["string"] - - examples: [ - { - title: "Slice a string (positve index)" - source: #""" - slice("Supercalifragilisticexpialidocious", start: 5, end: 13) - """# - return: "califrag" - }, - { - title: "Slice a string (negative index)" - source: #""" - slice("Supercalifragilisticexpialidocious", start: 5, end: -14) - """# - return: "califragilistic" - }, - ] -} diff --git a/docs/reference/remap/functions/split.cue b/docs/reference/remap/functions/split.cue deleted file mode 100644 index 4d2d17f47484e..0000000000000 --- a/docs/reference/remap/functions/split.cue +++ /dev/null @@ -1,53 +0,0 @@ -package metadata - -remap: functions: split: { - category: "String" - description: """ - Splits the `value` via the `pattern`. - """ - - arguments: [ - { - name: "value" - description: "The string to split." - required: true - type: ["string"] - }, - { - name: "pattern" - description: "The string is split whenever this pattern is matched." - required: true - type: ["string", "regex"] - }, - { - name: "limit" - description: "The maximum number of substrings to return." - required: false - type: ["integer"] - }, - ] - internal_failure_reasons: [] - return: { - types: ["string"] - rules: [ - "If `limit` is specified, after `limit` has been reached, the remainder of the string is returned unsplit.", - ] - } - - examples: [ - { - title: "Split a string (no limit)" - source: #""" - split("apples and pears and bananas", " and ") - """# - return: ["apples", "pears", "bananas"] - }, - { - title: "Split a string (with a limit)" - source: #""" - split("apples and pears and bananas", " and ", limit: 1) - """# - return: ["apples", "pears and bananas"] - }, - ] -} diff --git a/docs/reference/remap/functions/starts_with.cue b/docs/reference/remap/functions/starts_with.cue deleted file mode 100644 index 50bada0c78a6c..0000000000000 --- a/docs/reference/remap/functions/starts_with.cue +++ /dev/null @@ -1,49 +0,0 @@ -package metadata - -remap: functions: starts_with: { - category: "String" - description: """ - Determines if the `value` begins with the `substring`. - """ - - arguments: [ - { - name: "value" - description: "The string to search." - required: true - type: ["string"] - }, - { - name: "substring" - description: "The substring `value` must start with." - required: true - type: ["string"] - }, - { - name: "case_sensitive" - description: "Should the match be case sensitive?" - required: false - type: ["boolean"] - default: true - }, - ] - internal_failure_reasons: [] - return: types: ["boolean"] - - examples: [ - { - title: "String starts with (case sensitive)" - source: #""" - starts_with("The Needle In The Haystack", \"The Needle\") - """# - return: true - }, - { - title: "String starts with (case insensitive)" - source: #""" - starts_with("The Needle In The Haystack", \"the needle\", case_sensitive: false) - """# - return: true - }, - ] -} diff --git a/docs/reference/remap/functions/strip_whitespace.cue b/docs/reference/remap/functions/strip_whitespace.cue deleted file mode 100644 index 756a429616dff..0000000000000 --- a/docs/reference/remap/functions/strip_whitespace.cue +++ /dev/null @@ -1,31 +0,0 @@ -package metadata - -remap: functions: strip_whitespace: { - category: "String" - description: """ - Strips whitespace from the start and end of the `value`. - - Whitespace is as defined by [Unicode `White_Space` property](\(urls.unicode_whitespace)) - """ - - arguments: [ - { - name: "value" - description: "The string to trim." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [] - return: types: ["string"] - - examples: [ - { - title: "Strip whitespace" - source: #""" - strip_whitespace(" A sentence. ") - """# - return: "A sentence." - }, - ] -} diff --git a/docs/reference/remap/functions/to_bool.cue b/docs/reference/remap/functions/to_bool.cue deleted file mode 100644 index fc02918f57f37..0000000000000 --- a/docs/reference/remap/functions/to_bool.cue +++ /dev/null @@ -1,69 +0,0 @@ -package metadata - -remap: functions: to_bool: { - category: "Coerce" - description: """ - Coerces the `value` into a boolean. - """ - - arguments: [ - { - name: "value" - description: "The value to convert to a Boolean." - required: true - type: ["boolean", "integer", "float", "null", "string"] - }, - ] - internal_failure_reasons: [ - "`value` is not a supported boolean representation", - ] - return: { - types: ["boolean"] - rules: [ - #"If `value` is `"true"`, `"t"`, `"yes"`, `"y"` then `true` is returned."#, - #"If `value` is `"false"`, `"f"`, `"no"`, `"n"`, `"0"` then `false` is returned."#, - #"If `value` is `0.0` then `false` is returned, otherwise `true` is returned."#, - #"If `value` is `0` then `false` is returned, otherwise `true` is returned."#, - #"If `value` is `null` then `false` is returned."#, - #"If `value` is a boolean then it is passed through."#, - ] - } - - examples: [ - { - title: "Coerce to a boolean (string)" - source: """ - to_bool("yes") - """ - return: true - }, - { - title: "Coerce to a boolean (float)" - source: """ - to_bool(0.0) - """ - return: false - }, - { - title: "Coerce to a boolean (int)" - source: """ - to_bool(0) - """ - return: false - }, - { - title: "Coerce to a boolean (null)" - source: """ - to_bool(null) - """ - return: false - }, - { - title: "Coerce to a boolean (boolean)" - source: """ - to_bool(true) - """ - return: true - }, - ] -} diff --git a/docs/reference/remap/functions/to_float.cue b/docs/reference/remap/functions/to_float.cue deleted file mode 100644 index 1b248143f0950..0000000000000 --- a/docs/reference/remap/functions/to_float.cue +++ /dev/null @@ -1,37 +0,0 @@ -package metadata - -remap: functions: to_float: { - category: "Coerce" - description: """ - Coerces the `value` into a float. - """ - - arguments: [ - { - name: "value" - description: "The string that is to be converted to a float. Must be the string representation of a `float`, otherwise an `ArgumentError` will be raised." - required: true - type: ["float", "integer", "boolean", "string"] - }, - ] - internal_failure_reasons: [ - "`value` is not a supported float representation", - ] - return: { - types: ["float"] - rules: [ - "If `value` is a string, it must be the string representation of an float or else an error is raised.", - "If `value` is a boolean, `0.0` will be returned for `false` and `1.0` will be returned for `true`.", - ] - } - - examples: [ - { - title: "Coerce to a float" - source: """ - to_float("3.145") - """ - return: 3.145 - }, - ] -} diff --git a/docs/reference/remap/functions/to_int.cue b/docs/reference/remap/functions/to_int.cue deleted file mode 100644 index b904c262a7d8c..0000000000000 --- a/docs/reference/remap/functions/to_int.cue +++ /dev/null @@ -1,47 +0,0 @@ -package metadata - -remap: functions: to_int: { - category: "Coerce" - description: """ - Coerces the `value` into an integer. - """ - - arguments: [ - { - name: "value" - description: """ - The value to convert to an integer. - """ - required: true - type: ["integer", "float", "boolean", "string", "timestamp"] - }, - ] - internal_failure_reasons: [ - "`value` is not a supported integer representation", - ] - return: { - types: ["integer"] - rules: [ - "If `value` is a string, it must be the string representation of an integer or else an error is raised.", - "If `value` is a boolean, `0` will be returned for `false` and `1` will be returned for `true`.", - "If `value` is a timestamp, a [Unix timestamp](\(urls.unix_timestamp)) (in seconds) is returned.", - ] - } - - examples: [ - { - title: "Coerce to an int (string)" - source: """ - to_int("2") - """ - return: 2 - }, - { - title: "Coerce to an int (timestamp)" - source: """ - to_int(to_timestamp("2020-12-30 22:20:53.824727 UTC")) - """ - return: 1609366853 - }, - ] -} diff --git a/docs/reference/remap/functions/to_string.cue b/docs/reference/remap/functions/to_string.cue deleted file mode 100644 index e149b9d883ab8..0000000000000 --- a/docs/reference/remap/functions/to_string.cue +++ /dev/null @@ -1,53 +0,0 @@ -package metadata - -remap: functions: to_string: { - category: "Coerce" - description: """ - Coerces the `value` into a string. - """ - - arguments: [ - { - name: "value" - description: "The value to return a string representation of." - required: true - type: ["any"] - }, - ] - internal_failure_reasons: [] - return: { - types: ["string"] - rules: [ - #"If `value` is an integer then its string representation is returned."#, - #"If `value` is an float then its string representation is returned."#, - #"If `value` is an boolean then `"true"` or `"false"` is returned."#, - #"If `value` is an timestamp then its RFC3339 representation is returned."#, - #"If `value` is a map then it is encoded into JSON."#, - #"If `value` is a list then it is encoded into JSON."#, - ] - } - - examples: [ - { - title: "Coerce to a string (boolean)" - source: #""" - to_string(true) - """# - return: true - }, - { - title: "Coerce to a string (int)" - source: #""" - to_string(52) - """# - return: "52" - }, - { - title: "Coerce to a string (float)" - source: #""" - to_string(52.2) - """# - return: "52.2" - }, - ] -} diff --git a/docs/reference/remap/functions/to_syslog_facility.cue b/docs/reference/remap/functions/to_syslog_facility.cue deleted file mode 100644 index 4a586fef85b4e..0000000000000 --- a/docs/reference/remap/functions/to_syslog_facility.cue +++ /dev/null @@ -1,32 +0,0 @@ -package metadata - -remap: functions: to_syslog_facility: { - category: "Coerce" - description: """ - Coerces the `value`, a Syslog [facility code](\(urls.syslog_facility)), into its corresponding - Syslog keyword. i.e. 0 into `"kern"`, 1 into `"user"`, etc. - """ - - arguments: [ - { - name: "value" - description: "The facility code." - required: true - type: ["integer"] - }, - ] - internal_failure_reasons: [ - "`value` is not a valid Syslog [facility code](\(urls.syslog_facility)).", - ] - return: types: ["string"] - - examples: [ - { - title: "Coerce to a Syslog facility" - source: """ - to_syslog_facility("4") - """ - return: "auth" - }, - ] -} diff --git a/docs/reference/remap/functions/to_syslog_level.cue b/docs/reference/remap/functions/to_syslog_level.cue deleted file mode 100644 index e1fb390576959..0000000000000 --- a/docs/reference/remap/functions/to_syslog_level.cue +++ /dev/null @@ -1,32 +0,0 @@ -package metadata - -remap: functions: to_syslog_level: { - category: "Coerce" - description: """ - Coerces the `value`, a Syslog [severity level](\(urls.syslog_levels)), into its corresponding keyword, - i.e. 0 into `"emerg"`, 1 into `"alert", etc. - """ - - arguments: [ - { - name: "value" - description: "The severity level." - required: true - type: ["integer"] - }, - ] - internal_failure_reasons: [ - "`value` is not a valid Syslog [severity level](\(urls.syslog_levels)).", - ] - return: types: ["string"] - - examples: [ - { - title: "Coerce to a Syslog level" - source: """ - to_syslog_level("5") - """ - return: "notice" - }, - ] -} diff --git a/docs/reference/remap/functions/to_syslog_severity.cue b/docs/reference/remap/functions/to_syslog_severity.cue deleted file mode 100644 index 7f60a900f1c25..0000000000000 --- a/docs/reference/remap/functions/to_syslog_severity.cue +++ /dev/null @@ -1,37 +0,0 @@ -package metadata - -remap: functions: to_syslog_severity: { - category: "Coerce" - description: """ - Coerces the `value`, a Syslog [log level keyword](\(urls.syslog_levels)), into an Syslog integer - severity level (`0` to `7`). - """ - - arguments: [ - { - name: "value" - description: "The Syslog level keyword to convert." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [ - "`value` is not a valid Syslog level keyword", - ] - return: { - types: ["integer"] - rules: [ - "The now-deprecated keywords `panic`, `error`, and `warn` are converted to `0`, `3`, and `4` respectively.", - ] - } - - examples: [ - { - title: "Coerce to Syslog serverity" - source: """ - to_syslog_severity("alert") - """ - return: 1 - }, - ] -} diff --git a/docs/reference/remap/functions/to_timestamp.cue b/docs/reference/remap/functions/to_timestamp.cue deleted file mode 100644 index cee477596fce4..0000000000000 --- a/docs/reference/remap/functions/to_timestamp.cue +++ /dev/null @@ -1,38 +0,0 @@ -package metadata - -remap: functions: to_timestamp: { - category: "Coerce" - description: """ - Coerces the `value` into a timestamp. - """ - - arguments: [ - { - name: "value" - description: "The value that is to be converted to a timestamp. If a string, must be a valid representation of a `timestamp`, and no `default` exists, an `ArgumentError` will be raised." - required: true - type: ["string", "integer", "timestamp"] - }, - ] - internal_failure_reasons: [ - "When `value` is a `string`, it is not a valid timestamp format", - "When `value` is an `int`, it is not within the Unix timestamp range", - ] - return: { - types: ["timestamp"] - rules: [ - "If `value` is a `string`, the timestamp is parsed in these formats.", - "If `value` is an `integer`, it assumed to be a Unix representation of the timestamp (the number of seconds after January 1st, 1970).", - ] - } - - examples: [ - { - title: "Coerce to a timestamp" - source: """ - to_timestamp("2020-10-21T16:00:00Z") - """ - return: "2020-10-21T16:00:00Z" - }, - ] -} diff --git a/docs/reference/remap/functions/to_unix_timestamp.cue b/docs/reference/remap/functions/to_unix_timestamp.cue deleted file mode 100644 index c2156e0fe68d5..0000000000000 --- a/docs/reference/remap/functions/to_unix_timestamp.cue +++ /dev/null @@ -1,58 +0,0 @@ -package metadata - -remap: functions: to_unix_timestamp: { - category: "Coerce" - description: """ - Coerces the `value` into a [Unix timestamp](\(urls.unix_timestamp)). - - By default, the number of seconds since the Unix epoch is returned, but milliseconds or nanoseconds can be - returned via the `unit` argument. - """ - - arguments: [ - { - name: "value" - description: "The timestamp to convert to Unix." - required: true - type: ["timestamp"] - }, - { - name: "unit" - description: "The time unit" - type: ["string"] - required: false - enum: { - seconds: "Express Unix time in seconds" - milliseconds: "Express Unix time in milliseconds" - nanoseconds: "Express Unix time in nanoseconds" - } - default: "seconds" - }, - ] - internal_failure_reasons: [] - return: types: ["integer"] - - examples: [ - { - title: "Convert to a Unix timestamp (seconds)" - source: #""" - to_unix_timestamp(to_timestamp("2021-01-01T00:00:00+00:00")) - """# - return: 1609459200 - }, - { - title: "Convert to a Unix timestamp (milliseconds)" - source: #""" - to_unix_timestamp(to_timestamp("2021-01-01T00:00:00+00:00"), unit: "milliseconds") - """# - return: 1609459200000 - }, - { - title: "Convert to a Unix timestamp (nanoseconds)" - source: #""" - to_unix_timestamp(to_timestamp("2021-01-01T00:00:00+00:00"), unit: "nanoseconds") - """# - return: 1609459200000000000 - }, - ] -} diff --git a/docs/reference/remap/functions/truncate.cue b/docs/reference/remap/functions/truncate.cue deleted file mode 100644 index 050e3514777ca..0000000000000 --- a/docs/reference/remap/functions/truncate.cue +++ /dev/null @@ -1,47 +0,0 @@ -package metadata - -remap: functions: truncate: { - category: "String" - description: """ - Truncates the `value` up to the `limit`. - """ - - arguments: [ - { - name: "value" - description: "The string to truncate." - required: true - type: ["string"] - }, - { - name: "limit" - description: "The number of characters to truncate the string after." - required: true - type: ["integer", "float"] - }, - { - name: "ellipsis" - description: "If true, an ellipsis (...) is appended should the string be truncated." - required: true - type: ["boolean"] - }, - ] - internal_failure_reasons: [] - return: { - types: ["string"] - rules: [ - "If `limit` is larger than the length of the string, the string is returned unchanged.", - "If `ellipsis` is `true`, then an ellipsis (...) will be appended to the string (beyond the specified limit).", - ] - } - - examples: [ - { - title: "Truncate a string" - source: #""" - truncate("A rather long sentence.", limit = 11, ellipsis = true) - """# - return: "A rather lo..." - }, - ] -} diff --git a/docs/reference/remap/functions/upcase.cue b/docs/reference/remap/functions/upcase.cue deleted file mode 100644 index cdbdd516f2727..0000000000000 --- a/docs/reference/remap/functions/upcase.cue +++ /dev/null @@ -1,31 +0,0 @@ -package metadata - -remap: functions: upcase: { - description: """ - Upcases the `value`. - - "Upcase" is defined according to the terms of the Unicode Derived Core Property Uppercase. - """ - - arguments: [ - { - name: "value" - description: "The string to convert to uppercase." - required: true - type: ["string"] - }, - ] - internal_failure_reasons: [] - return: types: ["string"] - category: "String" - - examples: [ - { - title: "Upcase a string" - source: #""" - upcase("Hello, World!") - """# - output: log: message: "HELLO, WORLD!" - }, - ] -} diff --git a/docs/reference/remap/literals/array.cue b/docs/reference/remap/literals/array.cue deleted file mode 100644 index cd037d25d42d3..0000000000000 --- a/docs/reference/remap/literals/array.cue +++ /dev/null @@ -1,21 +0,0 @@ -package metadata - -remap: literals: array: { - title: "Array" - description: """ - An _array_ literal is a comma-delimited set of expressions that represent a contiguous growable array type. - """ - examples: [ - #"["first", "second", "third"]"#, - #"["mixed", 1, 1.0, true, false, {"foo": "bar"}]"#, - #"["first-level", ["second-level", ["third-level"]]"#, - #""" - [ - "expressions", - 1 + 2, - 2 == 5, - true || false - ] - """#, - ] -} diff --git a/docs/reference/remap/literals/map.cue b/docs/reference/remap/literals/map.cue deleted file mode 100644 index 81eed8f9e185f..0000000000000 --- a/docs/reference/remap/literals/map.cue +++ /dev/null @@ -1,31 +0,0 @@ -package metadata - -remap: literals: map: { - title: "Map" - description: """ - A _map_ literal is a growable key/value structure that is syntactically equivalent to a JSON object. - - A well-formed JSON document is a valid VRL map. - """ - - characteristics: { - ordering: { - title: "Ordering" - description: """ - Maps are ordered alphabetically by the key in ascending order. Therefore, operations, such as encoding - into JSON, will produce a string with keys that are alphabetically ordered in ascending fashion. - """ - } - } - - examples: [ - """ - { - "field1": "value1", - "field2": [ "value2", "value3", "value4" ], - "field3": { "field4": "value5" } - } - """, - - ] -} diff --git a/docs/reference/remap/literals/regular_expression.cue b/docs/reference/remap/literals/regular_expression.cue deleted file mode 100644 index b722c32964bb4..0000000000000 --- a/docs/reference/remap/literals/regular_expression.cue +++ /dev/null @@ -1,49 +0,0 @@ -package metadata - -remap: literals: regular_expression: { - title: "Regular Expression" - description: """ - A _regular expression_ literal represents a [Regular Expression](\(urls.regex)) used for string matching and - parsing. - - Regular expressions are defined by the `r` sigil and wrapped with single quotes (`r'...'`). The value between - the quotes uses the [Rust regex syntax](\(urls.rust_regex_syntax)). - """ - - examples: [ - #"r'^Hello, World!$'"#, - #"r'^Hello, World!$'i"#, - #"r'^\d{4}-\d{2}-\d{2}$'"#, - #"r'(?P\d{4})-(?P\d{2})-(?P\d{2})'"#, - ] - - characteristics: { - flags: { - title: "Flags" - description: #""" - Regular expressions allow for flags. Flags can be combined, as in `r'pattern'xmi`, `r'pattern'im`, etc. - - To learn more about regular expressions in Rust—and by extension in VRL—we strongly recommend the - in-browser [Rustexp expression editor and tester](\#(urls.regex_tester)). - """# - enum: { - "x": "Ignore whitespace" - "i": "Case insensitive" - "m": "Multi-line mode" - } - } - named_captures: { - title: "Named Captures" - description: #""" - Regular Expressions support named capture groups, allowing extractions to be keyed by their name. - Named captures should be preceded with a `?P` declaraction. For example: - - ```vrl - r'(?P\d{4})-(?P\d{2})-(?P\d{2})' - ``` - - Will extract captures with the `y`, `m`, and `d` keys. - """# - } - } -} diff --git a/docs/reference/remap/literals/string.cue b/docs/reference/remap/literals/string.cue deleted file mode 100644 index b2e7fbd0878cf..0000000000000 --- a/docs/reference/remap/literals/string.cue +++ /dev/null @@ -1,62 +0,0 @@ -package metadata - -remap: literals: string: { - title: "String" - description: """ - A _string_ literal is a [UTF-8–encoded](\(urls.utf8)) string. String literals can be raw or interpreted. - - **Raw string** literals are composed of the uninterpreted (implicitly UTF-8-encoded) characters between single - quotes identified with the `s` sigil and wrapped with single quotes (`s'...'`); in particular, backslashes have - no special meaning and the string may contain newlines. - - **Interpreted string** literals are character sequences between double quotes (`"..."`). Within the quotes, - any character may appear except newline and unescaped double quote. The text between the quotes forms the result - of the literal, with backslash escapes interpreted as defined below. - """ - - examples: [ - #""" - "Hello, world! 🌎" - """#, - #""" - "Hello, world! \\u1F30E" - """#, - #""" - s'Hello, world!' - """#, - #""" - s'{ "foo": "bar" }' - """#, - ] - - characteristics: { - backslash_escapes: { - title: "Backslash escapes" - description: """ - Special characters, such as newlines, can be expressed with a backslash escape. - """ - enum: { - "`\\u{7FFF}`": "24-bit Unicode character code (up to 6 digits)" - "`\\n`": "Newline" - "`\\r`": "Carriage return" - "`\\t`": "Tab" - "`\\\\`": "Backslash" - "`\\0`": "Null" - "`\\\"`": "Double quote" - "`\\'`": "Single quote" - } - } - concatenation: { - title: "Concatenation" - description: """ - Strings can be concatenated with the `+` operator. - """ - } - invalid_characters: { - title: "Invalid Characters" - description: """ - Invalid UTF-8 sequences are replaced with the `�` character. - """ - } - } -} diff --git a/docs/reference/services/clickhouse.cue b/docs/reference/services/clickhouse.cue deleted file mode 100644 index 51cfbaab9bfe7..0000000000000 --- a/docs/reference/services/clickhouse.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: clickhouse: { - name: "Clickhouse" - thing: "a \(name) database" - url: urls.clickhouse - versions: null - - description: "[ClickHouse](\(urls.clickhouse)) is an open-source column-oriented database management system that manages extremely large volumes of data, including non-aggregated data, in a stable and sustainable manner and allows generating custom data reports in real time. The system is linearly scalable and can be scaled up to store and process trillions of rows and petabytes of data. This makes it an best-in-class storage for logs and metrics data." -} diff --git a/docs/reference/services/gcp_cloud_storage.cue b/docs/reference/services/gcp_cloud_storage.cue deleted file mode 100644 index 46760dfbde42b..0000000000000 --- a/docs/reference/services/gcp_cloud_storage.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: gcp_cloud_storage: { - name: "GCP Cloud Storage" - thing: "a \(name) bucket" - url: urls.gcp_cloud_storage - versions: null - - description: "[Google Cloud Storage][urls.gcp_cloud_storage] is a RESTful online file storage web service for storing and accessing data on Google Cloud Platform infrastructure. The service combines the performance and scalability of Google's cloud with advanced security and sharing capabilities. This makes it a prime candidate for log data." -} diff --git a/docs/reference/services/gcp_operations_logs.cue b/docs/reference/services/gcp_operations_logs.cue deleted file mode 100644 index d8d0f003b2e8b..0000000000000 --- a/docs/reference/services/gcp_operations_logs.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: gcp_operations_logs: { - name: "GCP Operations (formerly Stackdriver) logs" - thing: "a \(name) account" - url: urls.gcp_stackdriver_logging - versions: null - - description: "[Stackdriver][urls.gcp_stackdriver] is Google Cloud's embedded observability suite designed to monitor, troubleshoot, and improve cloud infrastructure, software and application performance. Stackdriver enables you to efficiently build and run workloads, keeping applications available and performing well." -} diff --git a/docs/reference/services/gcp_pubsub.cue b/docs/reference/services/gcp_pubsub.cue deleted file mode 100644 index 4e2f227fd6b4a..0000000000000 --- a/docs/reference/services/gcp_pubsub.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: gcp_pubsub: { - name: "GCP PubSub" - thing: "a \(name) pipeline" - url: urls.gcp_pubsub - versions: null - - description: "[GCP Pub/Sub][urls.gcp_pubsub] is a fully-managed real-time messaging service that allows you to send and receive messages between independent applications on the Google Cloud Platform." -} diff --git a/docs/reference/services/humio.cue b/docs/reference/services/humio.cue deleted file mode 100644 index 6550b0dbe342c..0000000000000 --- a/docs/reference/services/humio.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: humio: { - name: "Humio" - thing: "a \(name) database" - url: urls.humio - versions: null - - description: "[Humio][urls.humio] is a time-series logging and aggregation platform for unrestricted, comprehensive event analysis, On-Premises or in the Cloud. With 1TB/day of raw log ingest/node, in-memory stream processing, and live, shareable dashboards and alerts, you can instantly and in real-time explore, monitor, and visualize any system’s data. Metrics are converted to log events via the metric_to_log transform." -} diff --git a/docs/reference/services/kafka.cue b/docs/reference/services/kafka.cue deleted file mode 100644 index 0ff8dc550a7e9..0000000000000 --- a/docs/reference/services/kafka.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: kafka: { - name: "Kafka" - thing: "\(name) topics" - url: urls.kafka - versions: ">= 0.8" - - description: "[Apache Kafka](\(urls.kafka)) is an open-source project for a distributed publish-subscribe messaging system rethought as a distributed commit log. Kafka stores messages in topics that are partitioned and replicated across multiple brokers in a cluster. Producers send messages to topics from which consumers read. These features make it an excellent candidate for durably storing logs and metrics data." -} diff --git a/docs/reference/services/kubernetes.cue b/docs/reference/services/kubernetes.cue deleted file mode 100644 index 15c7e9f40e785..0000000000000 --- a/docs/reference/services/kubernetes.cue +++ /dev/null @@ -1,8 +0,0 @@ -package metadata - -services: kubernetes: { - name: "Kubernetes" - thing: "a \(name) cluster" - url: urls.kubernetes - versions: ">= 1.14" -} diff --git a/docs/reference/services/logdna.cue b/docs/reference/services/logdna.cue deleted file mode 100644 index 14f819e1f574b..0000000000000 --- a/docs/reference/services/logdna.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: logdna: { - name: "LogDNA" - thing: "a \(name) account" - url: urls.logdna - versions: null - - description: "[LogDNA](\(urls.logdna)) is a log management system that allows engineering and DevOps to aggregate all system, server, and application logs into one platform. Collect, monitor, store, tail, and search application logs in with one command-line or web interface." -} diff --git a/docs/reference/services/loki.cue b/docs/reference/services/loki.cue deleted file mode 100644 index c1ee8a29b883f..0000000000000 --- a/docs/reference/services/loki.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: loki: { - name: "Loki" - thing: "a \(name) database" - url: urls.loki - versions: null - - description: "[Loki][urls.loki] is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by [Prometheus][urls.prometheus]. It is designed to be very cost effective and easy to operate. It does not index the contents of the logs, but rather a set of labels for each log stream." -} diff --git a/docs/reference/services/mongodb.cue b/docs/reference/services/mongodb.cue deleted file mode 100644 index 2818f82c8773d..0000000000000 --- a/docs/reference/services/mongodb.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: mongodb: { - name: "MongoDB" - thing: "an \(name) instance" - url: urls.mongodb - versions: null - - description: "[MongoDB][urls.mongodb] is a general purpose, document-based, distributed database built for modern application developers and for the cloud era." -} diff --git a/docs/reference/services/new_relic_logs.cue b/docs/reference/services/new_relic_logs.cue deleted file mode 100644 index 7725e4a9b8c72..0000000000000 --- a/docs/reference/services/new_relic_logs.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: new_relic_logs: { - name: "New Relic logs" - thing: "a \(name) account" - url: urls.new_relic - versions: null - - description: "[New Relic][urls.new_relic] is a San Francisco, California-based technology company which develops cloud-based software to help website and application owners track the performances of their services." -} diff --git a/docs/reference/services/nginx.cue b/docs/reference/services/nginx.cue deleted file mode 100644 index faa2a716adc51..0000000000000 --- a/docs/reference/services/nginx.cue +++ /dev/null @@ -1,10 +0,0 @@ -package metadata - -services: nginx: { - name: "Nginx" - thing: "an \(name) server" - url: urls.nginx - versions: null - - description: "[Nginx][urls.nginx] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server." -} diff --git a/docs/reference/team.cue b/docs/reference/team.cue deleted file mode 100644 index d5e4edc34e455..0000000000000 --- a/docs/reference/team.cue +++ /dev/null @@ -1,147 +0,0 @@ -package metadata - -import "strings" - -#Member: { - id: strings.ToLower(name) - name: !="" - _github: !="" - _twitter?: !="" - _keybase?: !="" - avatar: "\(github).png" - bio?: !="" - github: "https://github.com/\(_github)" - - if _twitter != _|_ { - twitter: "https://twitter.com/\(_twitter)" - } - - if _keybase != _|_ { - keybase: "https://keybase.io/\(_keybase)" - } -} - -team: [#Member, ...#Member] & [ - { - name: "Ben" - _github: "binarylogic" - _keybase: "binarylogic" - _twitter: "binarylogic" - bio: """ - Ben is the CTO/Co-Founder at Timber.io and a member of the - Vector team. - """ - }, - { - name: "Bruce" - _github: "bruceg" - bio: """ - Bruce is a senior engineer at Timber.io and a member of the Vector team. - """ - }, - { - name: "James" - _github: "jamtur01" - _keybase: "jamtur01" - _twitter: "kartar" - bio: """ - James is the VP of Engineering at Timber.io and a member of the Vector team. - """ - }, - { - name: "Jean" - _github: "JeanMertz" - _keybase: "JeanMertz" - _twitter: "JeanMertz" - bio: """ - Jean is a senior engineer at Timber.io and a member of the Vector team. - """ - }, - { - name: "Jesse" - _github: "jszwedko" - _keybase: "jszwedko" - _twitter: "jszwedko" - bio: """ - Jesse is a senior engineer at Timber.io and a member of the Vector team. - """ - }, - { - name: "Kirill" - _github: "fanatid" - _keybase: "fanatid" - bio: """ - Jean is an engineer at Timber.io and a member of the Vector team. - """ - }, - { - name: "Kruno" - _github: "ktff" - bio: """ - Kruno is an engineer at Timber.io and a member of the Vector team. - """ - }, - { - name: "Lee" - _github: "leebenson" - _keybase: "leebenson" - _twitter: "leebenson" - bio: """ - Lee is a senior engineer at Timber.io and a member of the Vector team. - """ - }, - { - name: "Luc" - _github: "lucperkins" - _keybase: "lucperkins" - _twitter: "lucperkins" - bio: """ - Luc is an engineer at Timber.io and a member of the Vector team. - """ - }, - { - name: "Luke" - _github: "lukesteensen" - _keybase: "lukesteensen" - _twitter: "lukesteensen" - bio: """ - Luke is a Senior Engineer at Timber.io and a member of the Vector team. - Before Timber, Luke was an engineer at Braintree working on parts of their - observability infrastructure. - """ - }, - { - name: "Mike" - _github: "MOZGIII" - _keybase: "MOZGIII" - _twitter: "MOZGIII" - bio: """ - Mike is a senior engineer at Timber.io and a member of the Vector team. - """ - }, - { - name: "Steve" - _github: "sghall" - _keybase: "sghall" - _twitter: "sghall" - bio: """ - Steve is a senior engineer at Timber.io and a member of the Vector team. - """ - }, - { - name: "Vic" - _github: "vector-vic" - bio: """ - Vic is the Vector mascot. - """ - }, - { - name: "Zach" - _github: "zsherman" - _keybase: "zsherman" - _twitter: "zsherman" - bio: """ - Zach is the CEO/co-founder of Timber.io. - """ - }, -] diff --git a/docs/reference/urls.cue b/docs/reference/urls.cue deleted file mode 100644 index 8f8a35033b1a9..0000000000000 --- a/docs/reference/urls.cue +++ /dev/null @@ -1,514 +0,0 @@ -package metadata - -urls: { - affine_type_system: "\(wikipedia)/wiki/Substructural_type_system#Affine_type_systems" - adaptive_request_concurrency_post: "/blog/adaptive-request-concurrency/" - amazon_linux: "https://aws.amazon.com/amazon-linux-ami/" - ansi_escape_codes: "\(wikipedia)/wiki/ANSI_escape_code" - apache: "https://httpd.apache.org" - apache_common: "\(apache)/docs/1.3/logs.html#common" - apache_error: "\(apache)/docs/1.3/logs.html#errorlog" - apache_extended_status: "\(apache)/docs/current/mod/core.html#extendedstatus" - apache_install: "\(apache)/docs/current/install.html" - apache_mod_status: "http://httpd.apache.org/docs/current/mod/mod_status.html" - apt: "\(wikipedia)/wiki/APT_(software)" - arm: "\(wikipedia)/wiki/ARM_architecture" - aws_access_keys: "\(aws_docs)/IAM/latest/UserGuide/id_credentials_access-keys.html" - aws_arm_g2_announcement: "https://aws.amazon.com/about-aws/whats-new/2019/12/announcing-new-amazon-ec2-m6g-c6g-and-r6g-instances-powered-by-next-generation-arm-based-aws-graviton2-processors/" - aws_athena: "https://aws.amazon.com/athena/" - aws_athena_console: "https://console.aws.amazon.com/athena/home" - aws_canonical_user_id: "\(aws_docs)/general/latest/gr/acct-identifiers.html#FindingCanonicalId" - aws_cloudwatch: "https://aws.amazon.com/cloudwatch/" - aws_cloudwatch_logs: "\(aws_docs)/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html" - aws_cloudwatch_logs_api: "\(aws_docs)/AmazonCloudWatchLogs/latest/APIReference/Welcome.html" - aws_cloudwatch_logs_group_name: "\(aws_docs)/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html" - aws_cloudwatch_logs_service_limits: "\(aws_docs)/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html" - aws_cloudwatch_logs_sink_source: "\(vector_repo)/blob/master/src/sinks/aws_cloudwatch_logs/" - aws_cloudwatch_logs_stream_name: "\(aws_docs)/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html" - aws_cloudwatch_logs_regions: "\(aws_docs)/general/latest/gr/rande.html#cwl_region" - aws_cloudwatch_logs_s3_export: "\(aws_docs)/AmazonCloudWatch/latest/logs/S3Export.html" - aws_cloudwatch_logs_subscriptions: "\(aws_docs)/AmazonCloudWatch/latest/logs/SubscriptionFilters.html" - aws_cloudwatch_logs_subscriptions_firehose: "\(aws_docs)/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#FirehoseExample" - aws_cloudwatch_metrics: "\(aws_docs)/AmazonCloudWatch/latest/monitoring/working_with_metrics.html" - aws_cloudwatch_metrics_api: "\(aws_docs)/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html" - aws_cloudwatch_metrics_service_limits: "\(aws_docs)/en_pv/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html" - aws_cloudwatch_metrics_regions: "\(aws_docs)/general/latest/gr/rande.html#cw_region" - aws_credential_process: "\(aws_docs)/cli/latest/userguide/cli-configure-sourcing-external.html" - aws_credentials_file: "\(aws_docs)/cli/latest/userguide/cli-configure-files.html" - aws_docs: "https://docs.aws.amazon.com" - aws_elasticsearch: "https://aws.amazon.com/elasticsearch-service/" - aws_elasticsearch_regions: "\(aws_docs)/general/latest/gr/rande.html#elasticsearch-service-regions" - aws_ec2_instance_metadata: "\(aws_docs)/AWSEC2/latest/UserGuide/ec2-instance-metadata.html" - aws_ecs: "https://aws.amazon.com/ecs/" - aws_ecs_task_metadata: "\(aws_docs)/AmazonECS/latest/developerguide/task-metadata-endpoint.html" - aws_elb: "https://aws.amazon.com/elasticloadbalancing/" - aws_elb_access_format: "https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-log-entry-examples" - aws_elb_https: "\(aws_docs)/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html" - aws_iam: "\(aws_docs)/IAM/latest/UserGuide/introduction.html" - aws_iam_role: "\(aws_docs)/IAM/latest/UserGuide/id_roles.html" - aws_imds_v1_security_problems: "https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/" - aws_kinesis_firehose: "https://aws.amazon.com/kinesis/data-firehose/" - aws_kinesis_firehose_http_protocol: "\(aws_docs)/firehose/latest/dev/create-destination.html#create-destination-http" - aws_firehose_http_request_spec: "\(aws_docs)/firehose/latest/dev/httpdeliveryrequestresponse.html" - aws_kinesis_firehose_api: "\(aws_docs)/firehose/latest/APIReference/API_PutRecordBatch.html" - aws_kinesis_firehose_service_limits: "\(aws_docs)/firehose/latest/dev/limits.html" - aws_kinesis_firehose_http_setup: "https://aws.amazon.com/blogs/big-data/stream-data-to-an-http-endpoint-with-amazon-kinesis-data-firehose/" - aws_kinesis_partition_key: "\(aws_docs)/kinesis/latest/APIReference/API_PutRecordsRequestEntry.html#Streams-Type-PutRecordsRequestEntry-PartitionKey" - aws_kinesis_streams: "https://aws.amazon.com/kinesis/data-streams/" - aws_kinesis_streams_api: "\(aws_docs)/kinesis/latest/APIReference/API_PutRecords.html" - aws_kinesis_streams_service_limits: "\(aws_docs)/streams/latest/dev/service-sizes-and-limits.html" - aws_kinesis_split_shards: "\(aws_docs)/streams/latest/dev/kinesis-using-sdk-java-resharding-split.html" - aws_regions: "\(aws_docs)/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html" - aws_s3: "https://aws.amazon.com/s3/" - aws_s3_acl: "\(aws_docs)/AmazonS3/latest/dev/acl-overview.html" - aws_s3_bucket_notifications_to_sqs: "\(aws_docs)/AmazonS3/latest/dev/ways-to-add-notification-config-to-bucket.html" - aws_s3_canned_acl: "\(aws_docs)/AmazonS3/latest/dev/acl-overview.html#canned-acl" - aws_s3_cross_account_tutorial: "\(aws_docs)/AmazonS3/latest/dev/example-walkthroughs-managing-access-example3.html" - aws_s3_endpoints: "\(aws_docs)/general/latest/gr/rande.html#s3_endpoint" - aws_s3_grantee: "\(aws_docs)/AmazonS3/latest/dev/acl-overview.html#specifying-grantee" - aws_s3_metadata: "\(aws_docs)/AmazonS3/latest/dev/UsingMetadata.html#object-metadata" - aws_s3_regions: "\(aws_docs)/general/latest/gr/rande.html#s3_region" - aws_s3_server_access_logs: "\(aws_docs)/AmazonS3/latest/dev/ServerLogs.html" - aws_s3_service_limits: "\(aws_docs)/streams/latest/dev/service-sizes-and-limits.html" - aws_s3_sse: "\(aws_docs)/AmazonS3/latest/dev/UsingServerSideEncryption.html" - aws_s3_storage_classes: "https://aws.amazon.com/s3/storage-classes/" - aws_s3_tags: "\(aws_docs)/AmazonS3/latest/user-guide/add-object-tags.html" - aws_sqs: "https://aws.amazon.com/sqs/" - aws_sqs_api: "\(aws_docs)/AWSSimpleQueueService/latest/APIReference/Welcome.html" - aws_sqs_create: "\(aws_docs)/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-create-queue.html" - aws_vpc_flow_logs: "\(aws_docs)/vpc/latest/userguide/flow-logs.html" - azure_monitor: "https://azure.microsoft.com/en-us/services/monitor/" - azure_monitor_logs_endpoints: "https://docs.microsoft.com/en-us/rest/api/monitor/" - base64: "\(wikipedia)/wiki/Base64" - base64_padding: "\(wikipedia)/wiki/Base64#Output_padding" - base64_standard: "https://tools.ietf.org/html/rfc4648#section-4" - base64_url_safe: "\(wikipedia)/wiki/Base64#URL_applications" - basic_auth: "\(wikipedia)/wiki/Basic_access_authentication" - big_query_streaming: "https://cloud.google.com/bigquery/streaming-data-into-bigquery" - b_tree_map: "https://doc.rust-lang.org/std/collections/struct.BTreeMap.html" - cargo_audit: "\(github)/RustSec/cargo-audit" - centos: "https://www.centos.org/" - chrono_time_formats: "https://docs.rs/chrono/latest/chrono/format/strftime/index.html#specifiers" - cgroups_limit_resources: "https://the.binbashtheory.com/control-resources-cgroups/" - clickhouse: "https://clickhouse.yandex/" - clickhouse_http: "https://clickhouse.yandex/docs/en/interfaces/http/" - cloudsmith: "https://cloudsmith.io/~timber/repos/vector/packages/" - cloudsmith_apt: "https://cloudsmith.io/~timber/repos/vector/setup/#formats-deb" - cloudsmith_yum: "https://cloudsmith.io/~timber/repos/vector/setup/#formats-rpm" - console: "\(wikipedia)/wiki/System_console" - conventional_commits: "https://www.conventionalcommits.org" - contributing: "\(vector_repo)/blob/master/CONTRIBUTING.md#setup" - crc: "\(wikipedia)/wiki/Cyclic_redundancy_check" - ctime: "https://www.cplusplus.com/reference/ctime" - cue: "https://cuelang.org/" - dag: "\(wikipedia)/wiki/Directed_acyclic_graph" - datadog: "https://www.datadoghq.com" - datadog_distribution: "\(datadog_docs)/developers/metrics/types/?tab=distribution#definition" - datadog_docs: "https://docs.datadoghq.com" - datadog_logs: "\(datadog_docs)/logs/" - datadog_logs_endpoints: "\(datadog_docs)/logs/log_collection/?tab=http#datadog-logs-endpoints" - datadog_metrics: "\(datadog_docs)/metrics/" - datadog_metrics_endpoints: "\(datadog_docs)/api/v1/metrics/" - date: "https://man7.org/linux/man-pages/man1/date.1.html" - debian: "https://www.debian.org/" - default_configuration: "\(vector_repo)/blob/master/config/vector.toml" - docker: "https://www.docker.com/" - docker_alpine: "\(docker_hub)/_/alpine" - docker_cli: "\(docker_docs)/engine/reference/commandline/cli/" - docker_debian: "\(docker_hub)/_/debian" - docker_daemon: "\(docker_docs)/engine/docker-overview/#the-docker-daemon" - docker_daemon_socket_option: "\(docker_docs)/engine/reference/commandline/dockerd/#daemon-socket-option" - docker_docs: "https://docs.docker.com" - docker_dns: "\(docker_docs)/config/containers/container-networking/#dns-services" - docker_engine: "\(docker_docs)/engine/" - docker_engine_api: "\(docker_docs)/engine/api/" - docker_env_vars: "\(docker_docs)/engine/reference/commandline/cli/#environment-variables" - docker_networking: "\(docker_docs)/network/network-tutorial-host/" - docker_hub: "https://hub.docker.com" - docker_hub_vector: "\(docker_hub)/r/timberio/vector" - docker_logging_driver_journald: "\(docker_docs)/config/containers/logging/journald/" - docker_logging_driver_json_file: "\(docker_docs)/config/containers/logging/json-file/" - docker_logging_driver_local: "\(docker_docs)/config/containers/logging/local/" - docker_logging_driver_splunk: "\(docker_docs)/config/containers/logging/splunk/" - docker_logging_driver_syslog: "\(docker_docs)/config/containers/logging/syslog/" - docker_logging_drivers: "\(docker_docs)/config/containers/logging/configure/" - docker_object_labels: "\(docker_docs)/config/labels-custom-metadata/" - docker_setup: "\(docker_docs)/get-docker/" - dockerfile: "\(vector_repo)/blob/master/Dockerfile" - dogstatsd: "\(datadog_docs)/developers/dogstatsd/?tab=hostagent" - dpkg: "https://wiki.debian.org/dpkg" - dry_code: "\(wikipedia)/wiki/Don%27t_repeat_yourself" - cidr: "\(wikipedia)/wiki/Classless_Inter-Domain_Routing" - elasticsearch: "https://www.elastic.co/products/elasticsearch" - elasticsearch_bulk: "https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html" - elasticsearch_data_streams: "https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html" - elasticsearch_id_field: "https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-id-field.html" - elasticsearch_id_performance: "https://www.elastic.co/guide/en/elasticsearch/reference/master/tune-for-indexing-speed.html#_use_auto_generated_ids" - elasticsearch_ignore_malformed: "https://www.elastic.co/guide/en/elasticsearch/reference/current/ignore-malformed.html" - encoding_charset_labels: "https://encoding.spec.whatwg.org/#concept-encoding-get" - encoding_standard: "https://encoding.spec.whatwg.org/" - endler_dev: "https://endler.dev/" - etsy: "https://www.etsy.com" - event_proto: "\(vector_repo)/blob/master/proto/event.proto" - exit_codes: "https://docs.rs/exitcode/latest/exitcode/#constants" - expression_oriented_language: "\(wikipedia)/wiki/Expression-oriented_programming_language" - externally_tagged_representation: "https://serde.rs/enum-representations.html#externally-tagged" - fail_safe: "https://en.wikipedia.org/wiki/Fail-safe" - ffi: "https://en.wikipedia.org/wiki/Foreign_function_interface" - file: "\(wikipedia)/wiki/Computer_file" - file_system: "\(wikipedia)/wiki/File_system" - freebsd: "https://www.freebsd.org/" - gcp_authentication: "https://cloud.google.com/docs/authentication/" - gcp_authentication_api_key: "https://cloud.google.com/docs/authentication/api-keys" - gcp_authentication_server_to_server: "https://cloud.google.com/docs/authentication/production" - gcp_authentication_service_account: "https://cloud.google.com/docs/authentication/production#obtaining_and_providing_service_account_credentials_manually" - gcp_cloud_storage: "https://cloud.google.com/storage" - gcp_folders: "https://cloud.google.com/resource-manager/docs/creating-managing-folders" - gcp_pubsub: "https://cloud.google.com/pubsub/" - gcp_pubsub_rest: "https://cloud.google.com/pubsub/docs/reference/rest/" - gcp_projects: "https://cloud.google.com/resource-manager/docs/creating-managing-projects" - gcp_resources: "https://cloud.google.com/monitoring/api/resources" - gcp_stackdriver: "https://cloud.google.com/products/operations" - gcp_stackdriver_logging: "https://cloud.google.com/logging/docs/reference/v2/rest/" - gcp_stackdriver_logging_rest: "https://cloud.google.com/logging/" - gcp_stackdriver_severity: "https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logseverity" - gcp_xml_interface: "https://cloud.google.com/storage/docs/xml-api/overview" - gcs_predefined_acl: "https://cloud.google.com/storage/docs/access-control/lists#predefined-acl" - gcs_storage_classes: "https://cloud.google.com/storage/docs/storage-classes" - gcs_custom_metadata: "https://cloud.google.com/storage/docs/metadata#custom-metadata" - git: "https://git-scm.com/" - github: "https://github.com" - github_protected_branches: "https://help.github.com/en/github/administering-a-repository/about-protected-branches" - github_sign_commits: "https://help.github.com/en/github/authenticating-to-github/signing-commits" - globbing: "\(wikipedia)/wiki/Glob_(programming)" - glog: "\(github)/google/glog" - graphql: "https://graphql.org" - graphql_playground: "\(github)/graphql/graphql-playground" - grok: "https://grokdebug.herokuapp.com/" - grok_debugger: "https://grokdebug.herokuapp.com/" - grok_patterns: "\(github)/daschl/grok/tree/master/patterns" - gzip: "https://www.gzip.org/" - haproxy: "https://www.haproxy.org/" - helm: "https://helm.sh/" - heroku: "https://www.heroku.com" - heroku_http_log_drain: "https://devcenter.heroku.com/articles/log-drains#https-drains" - heroku_start: "https://devcenter.heroku.com/start" - homebrew: "https://brew.sh/" - homebrew_services: "\(github)/Homebrew/homebrew-services" - honeycomb: "https://honeycomb.io" - honeycomb_batch: "https://docs.honeycomb.io/api/events/#batched-events" - honeycomb_signup: "https://ui.honeycomb.io/signup" - host: "\(wikipedia)/wiki/Host_(network)" - http: "https://www.w3.org/Protocols/" - http_client: "\(wikipedia)/wiki/Hypertext_Transfer_Protocol#Client_request" - http_server: "\(wikipedia)/wiki/Web_server" - humio: "https://humio.com" - humio_hec: "https://docs.humio.com/integrations/data-shippers/hec/" - iam_instance_profile: "\(aws_docs)/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html" - iana_time_zone_format: "\(wikipedia)/wiki/Tz_database#Names_of_time_zones" - iana_time_zones: "\(wikipedia)/wiki/List_of_tz_database_time_zones" - ieee_754: "\(wikipedia)/wiki/IEEE_754" - ietf_rfc_6750: "https://tools.ietf.org/html/rfc6750" - initd: "https://bash.cyberciti.biz/guide//etc/init.d" - influxdb: "https://www.influxdata.com/products/influxdb-overview/" - influxdb_http_api_v1: "https://docs.influxdata.com/influxdb/latest/tools/api/#write-http-endpoint" - influxdb_http_api_v2: "https://v2.docs.influxdata.com/v2.0/api/#tag/Write" - influxdb_authentication_token: "https://v2.docs.influxdata.com/v2.0/security/tokens/" - influxdb_line_protocol: "https://v2.docs.influxdata.com/v2.0/reference/syntax/line-protocol/" - inode: "\(wikipedia)/wiki/Inode" - iso_8601: "\(wikipedia)/wiki/ISO_8601" - iso3166_2: "\(wikipedia)/wiki/ISO_3166-2" - issue_1694: "\(vector_repo)/issues/1694" - jemalloc: "\(github)/jemalloc/jemalloc" - journald: "https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html" - json: "\(wikipedia)/wiki/JSON" - json_types: "\(wikipedia)/wiki/JSON#Data_types_and_syntax" - jsonnet: "https://jsonnet.org/" - kafka: "https://kafka.apache.org/" - kafka_partitioning_docs: "https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-Partitioningandbootstrapping" - kafka_protocol: "https://kafka.apache.org/protocol" - kafka_sasl: "https://docs.confluent.io/current/kafka/authentication_sasl/index.html" - kubectl: "\(kubernetes)/docs/reference/kubectl/overview/" - kubernetes: "https://kubernetes.io" - kubernetes_accessing_api_from_pod: "\(kubernetes)/docs/tasks/access-application-cluster/access-cluster/#accessing-the-api-from-a-pod" - kubernetes_api: "\(kubernetes)/docs/concepts/overview/kubernetes-api/" - kubernetes_api_server: "\(kubernetes)/docs/reference/command-line-tools-reference/kube-apiserver/" - kubernetes_authorization: "\(kubernetes)/docs/reference/access-authn-authz/authorization/" - kubernetes_daemonset: "\(kubernetes)/docs/concepts/workloads/controllers/daemonset/" - kubernetes_example_daemonset: "\(vector_repo)/blob/master/config/kubernetes/vector-daemonset.yaml" - kubernetes_limit_resources: "\(kubernetes)/docs/tasks/configure-pod-container/assign-cpu-resource/" - kubernetes_logging_architecture: "\(kubernetes)/docs/concepts/cluster-administration/logging/" - kubernetes_rbac: "\(kubernetes)/docs/reference/access-authn-authz/rbac/" - kubernetes_request_verbs: "\(kubernetes)/docs/reference/access-authn-authz/authorization/#determine-the-request-verb" - kubernetes_watch_api: "\(kubernetes)/docs/reference/generated/kubernetes-api/v1.10/#watch-30" - leveldb: "\(github)/google/leveldb" - leveldb_sys_2: "https://crates.io/crates/leveldb-sys" - leveldb_sys_3: "\(github)/timberio/leveldb-sys/tree/v3.0.0" - librdkafka: "\(github)/edenhill/librdkafka" - librdkafka_config: "\(github)/edenhill/librdkafka/blob/master/CONFIGURATION.md" - logdna: "https://logdna.com/" - logfmt: "https://brandur.org/logfmt" - loki: "https://grafana.com/oss/loki/" - loki_multi_tenancy: "\(github)/grafana/loki/blob/master/docs/operations/multi-tenancy.md" - log_event_source: "\(vector_repo)/blob/master/src/event/" - logplex: "https://devcenter.heroku.com/articles/logplex" - logplex_protocol: "\(github)/heroku/logplex/blob/master/doc/README.http_drains.md" - lua: "https://www.lua.org" - lua_boolean: "\(lua)/pil/2.2.html" - lua_csv_repo: "\(github)/geoffleyland/lua-csv" - lua_csv_view: "\(github)/geoffleyland/lua-csv/blob/09557e4608b02d136b9ae39a8fa0f36328fa1cec/lua/csv.lua" - lua_csv_raw: "https://raw.githubusercontent.com/geoffleyland/lua-csv/d20cd42d61dc52e7f6bcb13b596ac7a7d4282fbf/lua/csv.lua" - lua_integer: "https://docs.rs/rlua/latest/rlua/type.Integer.html" - lua_manual: "\(lua)/manual/5.3/manual.html" - lua_modules: "\(lua)/manual/5.3/manual.html#6.3" - lua_modules_tutorial: "http://lua-users.org/wiki/ModulesTutorial" - lua_number: "https://docs.rs/rlua/latest/rlua/type.Number.html" - lua_os_date: "\(lua)/manual/5.3/manual.html#pdf-os.date" - lua_os_time: "\(lua)/manual/5.3/manual.html#pdf-os.time" - lua_pairs: "\(lua)/manual/5.3/manual.html#pdf-pairs" - lua_pil: "\(lua)/pil/" - lua_require: "\(lua)/manual/5.3/manual.html#pdf-require" - lua_table: "\(lua)/pil/2.5.html" - lua_sequence: "\(lua)/pil/11.1.html" - lua_string: "\(lua)/pil/2.4.html" - lua_tonumber: "\(lua)/manual/5.3/manual.html#pdf-tonumber" - lz4: "https://lz4.github.io/lz4/" - macos: "\(wikipedia)/wiki/MacOS" - mailing_list: "\(vector_website)/community/" - maxmind: "https://www.maxmind.com/en/home" - maxmind_db_file_format: "https://maxmind.github.io/MaxMind-DB/" - maxmind_geoip2: "https://dev.maxmind.com/geoip/geoip2/downloadable" - maxmind_geoip2_city: "https://www.maxmind.com/en/geoip2-city" - maxmind_geoip2_isp: "https://www.maxmind.com/en/geoip2-isp-database" - maxmind_geolite2_asn: "https://dev.maxmind.com/geoip/geoip2/geolite2/#Download_Access" - maxmind_geolite2_city: "https://dev.maxmind.com/geoip/geoip2/geolite2/#Download_Access" - memory_safety: "\(wikipedia)/wiki/Memory_safety" - memory_safety_bugs: "https://thenewstack.io/microsoft-rust-is-the-industrys-best-chance-at-safe-systems-programming/" - metric_event_source: "\(vector_repo)/blob/master/src/event/metric.rs" - mongodb: "https://www.mongodb.com" - mongodb_command_server_status: "https://docs.mongodb.com/manual/reference/command/serverStatus/" - mongodb_connection_string_uri_format: "https://docs.mongodb.com/manual/reference/connection-string/" - musl_builder_docker_image: "\(vector_repo)/blob/master/scripts/ci-docker-images/builder-x86_64-unknown-linux-musl/Dockerfile" - nats: "https://nats.io/" - new_bug_report: "\(vector_repo)/issues/new?labels=type%3A+bug" - new_feature_request: "\(vector_repo)/issues/new?labels=type%3A+new+feature" - new_relic: "https://newrelic.com/" - new_relic_log_api: "https://docs.newrelic.com/docs/logs/new-relic-logs/log-api/introduction-log-api" - new_security_report: "\(vector_repo)/issues/new?labels=domain%3A+security" - new_sink: "\(vector_repo)/issues/new?labels=type%3A+new+feature" - new_source: "\(vector_repo)/issues/new?labels=type%3A+new+feature" - new_target: "\(vector_repo)/issues/new?labels=type%3A+task&labels=domain%3A+operations" - new_transform: "\(vector_repo)/issues/new?labels=type%3A+new+feature" - nginx: "https://www.nginx.com/" - nginx_stub_status_module: "http://nginx.org/en/docs/http/ngx_http_stub_status_module.html" - nix: "https://nixos.org/nix/" - nixos: "https://nixos.org/" - nixpkgs_9682: "\(github)/NixOS/nixpkgs/issues/9682" - openssl: "https://www.openssl.org/" - order_of_ops: "\(wikipedia)/wiki/Order_of_operations" - papertrail: "https://www.papertrail.com/" - papertrail_syslog: "https://help.papertrailapp.com/kb/how-it-works/http-api/#submitting-log-messages" - perl_windows: "https://www.perl.org/get.html#win32" - postgresql: "https://www.postgresql.org/" - postgresql_csvlog: "https://www.postgresql.org/docs/current/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-CSVLOG" - postgresql_matching: "https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-POSIX-REGEXP" - prometheus: "https://prometheus.io/" - prometheus_client: "https://prometheus.io/docs/instrumenting/clientlibs/" - prometheus_counter: "https://prometheus.io/docs/concepts/metric_types/#counter" - prometheus_gauge: "https://prometheus.io/docs/concepts/metric_types/#gauge" - prometheus_high_cardinality: "https://prometheus.io/docs/practices/naming/#labels" - prometheus_histogram: "https://prometheus.io/docs/concepts/metric_types/#histogram" - prometheus_histograms_guide: "https://prometheus.io/docs/practices/histograms/" - prometheus_summary: "https://prometheus.io/docs/concepts/metric_types/#summary" - prometheus_text_based_exposition_format: "\(github)/prometheus/docs/blob/master/content/docs/instrumenting/exposition_formats.md#text-based-format" - prometheus_metric_naming: "https://prometheus.io/docs/practices/naming/#metric-names" - prometheus_remote_integrations: "https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage" - prometheus_remote_write: "https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write" - protobuf: "https://developers.google.com/protocol-buffers" - pulsar: "https://pulsar.apache.org/" - pulsar_protocol: "https://pulsar.apache.org/docs/en/develop-binary-protocol/" - raspbian: "https://www.raspbian.org/" - rdkafka: "\(github)/edenhill/librdkafka" - regex: "\(wikipedia)/wiki/Regular_expression" - regex_grouping_and_flags: "https://docs.rs/regex/latest/regex/#grouping-and-flags" - regex_tester: "https://rustexp.lpil.uk/" - rfc_822: "https://tools.ietf.org/html/rfc822#section-5" - rfc_2064: "\(vector_repo)/blob/master/rfcs/2020-03-17-2064-event-driven-observability.md" - rfc_2822: "https://tools.ietf.org/html/rfc2822#section-3.3" - rfc_3339: "https://tools.ietf.org/html/rfc3339" - rfc_4180: "https://tools.ietf.org/html/rfc4180" - rhel: "https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux" - rlua: "\(github)/kyren/rlua" - rpm: "https://rpm.org/" - rust: "https://www.rust-lang.org/" - rust_date_time: "https://docs.rs/chrono/latest/chrono/struct.DateTime.html" - rust_grok_library: "\(github)/daschl/grok" - rust_k8s_openapi_crate: "https://docs.rs/k8s-openapi/" - rust_memory_safety: "https://hacks.mozilla.org/2019/01/fearless-security-memory-safety" - rust_regex_syntax: "https://docs.rs/regex/latest/regex/#syntax" - rust_sec: "https://rustsec.org/" - rust_subprocess: "https://docs.rs/subprocess" - rust_target_triples: "https://forge.rust-lang.org/platform-support.html" - rust_tier_1_platform: "https://forge.rust-lang.org/release/platform-support.html#tier-1" - rust_tokio: "\(github)/tokio-rs/tokio" - rustup: "https://rustup.rs" - sematext: "https://sematext.com" - sematext_create_logs_app: "https://apps.sematext.com/ui/integrations" - sematext_es: "https://sematext.com/docs/logs/index-events-via-elasticsearch-api/" - sematext_logsense: "http://www.sematext.com/logsene/" - sematext_monitoring: "https://sematext.com/docs/monitoring/" - sematext_registration: "https://apps.sematext.com/ui/registration" - semver: "https://semver.org/" - sha1: "https://en.wikipedia.org/wiki/SHA-1" - sha2: "https://en.wikipedia.org/wiki/SHA-2" - sha3: "https://en.wikipedia.org/wiki/SHA-3" - snake_case: "\(wikipedia)/wiki/Snake_case" - snappy: "https://google.github.io/snappy/" - socket: "\(wikipedia)/wiki/Network_socket" - splunk: "https://www.splunk.com" - splunk_hec: "https://dev.splunk.com/enterprise/docs/dataapps/httpeventcollector/" - splunk_hec_event_endpoint: "https://docs.splunk.com/Documentation/Splunk/8.0.0/RESTREF/RESTinput#services.2Fcollector.2Fevent" - splunk_hec_indexed_fields: "https://docs.splunk.com/Documentation/Splunk/8.0.0/Data/IFXandHEC" - splunk_hec_protocol: "https://docs.splunk.com/Documentation/Splunk/8.0.0/Data/HECRESTendpoints" - splunk_hec_raw_endpoint: "https://docs.splunk.com/Documentation/Splunk/8.0.0/RESTREF/RESTinput#services.2Fcollector.2Fraw" - splunk_hec_setup: "https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector" - standard_streams: "\(wikipedia)/wiki/Standard_streams" - statsd: "\(github)/statsd/statsd" - statsd_multi: "\(github)/statsd/statsd/blob/master/docs/metric_types.md#multi-metric-packets" - statsd_set: "\(github)/statsd/statsd/blob/master/docs/metric_types.md#sets" - statsd_udp_protocol: "\(github)/b/statsd_spec" - stderr: "\(wikipedia)/wiki/Standard_streams#Standard_error_(stderr)" - stdin: "\(wikipedia)/wiki/Standard_streams#Standard_input_(stdin)" - stdout: "\(wikipedia)/wiki/Standard_streams#Standard_output_(stdout)" - stripe_blog_canonical_log_lines: "https://stripe.com/blog/canonical-log-lines" - strptime_specifiers: "https://docs.rs/chrono/latest/chrono/format/strftime/index.html#specifiers" - syslog: "\(wikipedia)/wiki/Syslog" - syslog_3164: "https://tools.ietf.org/html/rfc3164" - syslog_5424: "https://tools.ietf.org/html/rfc5424" - syslog_6587: "https://tools.ietf.org/html/rfc6587" - syslog_facility: "\(wikipedia)/wiki/Syslog#Facility" - syslog_levels: "\(wikipedia)/wiki/Syslog#Severity_level" - systemd: "https://systemd.io/" - systemd_limit_resources: "https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html" - systemd_resolved: "https://wiki.archlinux.org/index.php/Systemd-resolved" - tcp: "\(wikipedia)/wiki/Transmission_Control_Protocol" - team: "/community#team" - timber: "https://timber.io" - toml: "\(github)/toml-lang/toml" - toml_array: "\(github)/toml-lang/toml#array" - toml_table: "\(github)/toml-lang/toml#table" - toml_types: "\(github)/toml-lang/toml#table-of-contents" - twelve_factor_app: "https://12factor.net/" - type_safety: "https://en.wikipedia.org/wiki/Type_safety" - ubuntu: "https://ubuntu.com/" - udp: "\(wikipedia)/wiki/User_Datagram_Protocol" - uds: "\(wikipedia)/wiki/Unix_domain_socket" - unicode_replacement_character: "\(wikipedia)/wiki/Specials_(Unicode_block)#Replacement_character" - unicode_whitespace: "\(wikipedia)/wiki/Unicode_character_property#Whitespace" - unix_timestamp: "\(wikipedia)/wiki/Unix_time" - utf8: "\(wikipedia)/wiki/UTF-8" - uuidv4: "\(wikipedia)/wiki/Universally_unique_identifier#Version_4_(random)" - url: "https://en.wikipedia.org/wiki/URL" - vector_aggregator_role: "\(vector_website)/docs/setup/deployment/roles/#aggregator" - vector_blog: "\(vector_website)/blog/" - vector_bug_issues: "\(vector_repo)/issues?q=is%3Aopen+is%3Aissue+label%3A%22type%3A+bug%22" - vector_changelog: "\(vector_repo)/blob/master/CHANGELOG.md" - vector_chat: "https://chat.vector.dev" - vector_code_of_conduct: "\(vector_repo)/blob/master/CODE_OF_CONDUCT.md" - vector_community: "\(vector_website)/community/" - vector_components: "\(vector_website)/components/" - vector_configuration: "\(vector_website)/docs/configuration/" - vector_data_model: "\(vector_website)/docs/about/under-the-hood/architecture/data-model/" - vector_debian_source_files: "\(vector_repo)/tree/master/distribution/debian" - vector_dedupe_transform: "\(vector_website)/docs/reference/transforms/dedupe/" - vector_docker_logs_source: "\(vector_website)/docs/reference/sources/docker_logs/" - vector_docker_source_files: "\(vector_repo)/tree/master/distribution/docker" - vector_docs: "\(vector_website)/docs/" - vector_download: "\(vector_website)/releases/latest/download/" - vector_download_nightly: "\(vector_website)/releases/nightly/download/" - vector_enriching_transforms: "\(vector_website)/components/?functions%5B%5D=enrich" - vector_file_source: "\(vector_website)/docs/reference/sources/file/" - vector_generate_arguments_issue: "\(vector_repo)/issues/1966" - vector_guides: "\(vector_website)/guides/" - vector_glibc_benchmarks: "\(vector_repo)/issues/2313" - vector_graphql_playground: "https://playground.vector.dev:8686/playground" - vector_highlights: "\(vector_website)/highlights/" - vector_host_metrics_source: "\(vector_website)/docs/reference/sources/host_metrics/" - vector_http_auth_token: "\(vector_website)/docs/reference/sinks/http/#token" - vector_homebrew: "\(vector_website)/docs/setup/installation/package-managers/homebrew/" - vector_homebrew_source_files: "\(github)/timberio/homebrew-brew/blob/master/Formula/vector.rb" - vector_http_source: "\(vector_website)/docs/reference/sources/http/" - vector_initd_service: "\(vector_repo)/blob/master/distribution/init.d/vector" - vector_installer: "https://sh.vector.dev" - vector_issues: "\(vector_repo)/issues" - vector_journald_source: "\(vector_website)/docs/reference/sources/journald/" - vector_kubernetes_logs_source: "\(vector_website)/docs/reference/sources/kubernetes_logs/" - vector_level_up: "\(vector_website)/guides/level-up/" - vector_log: "\(vector_website)/docs/about/data-model/log/" - vector_log_data_types: "\(vector_website)/docs/about/data-model/log/#types" - vector_lua_rfc: "\(vector_repo)/blob/master/rfcs/2020-03-06-1999-api-extensions-for-lua-transform.md" - vector_metric: "\(vector_website)/docs/about/data-model/metric/" - vector_msi_source_files: "\(vector_repo)/tree/master/distribution/msi" - vector_nightly_builds: "https://packages.timber.io/vector/nightly/latest/" - vector_nix_package: "\(github)/NixOS/nixpkgs/blob/master/pkgs/tools/misc/vector/default.nix" - vector_parsing_transforms: "\(vector_website)/components/?functions%5B%5D=parse" - vector_performance: "\(vector_website)/#performance" - vector_privacy_policy: "\(vector_repo)/blob/master/PRIVACY.md" - vector_programmable_transforms: "\(vector_website)/components/?functions%5B%5D=program" - vector_pull_requests: "\(vector_repo)/pulls" - vector_receiving_sources: "\(vector_website)/components/?functions%5B%5D=receive" - vector_regex_parser: "\(vector_website)/docs/reference/transforms/regex_parser/" - vector_releases: "\(vector_website)/releases/latest/" - vector_reduce_transform: "\(vector_website)/docs/reference/transforms/reduce/" - vector_remap_transform: "\(vector_website)/docs/reference/transforms/remap/" - vector_repo: "\(github)/timberio/vector" - vector_roadmap: "https://roadmap.vector.dev" - vector_rpm_source_files: "\(vector_repo)/tree/master/distribution/rpm" - vector_security_policy: "\(vector_repo)/security/policy" - vector_semantic_yml: "\(vector_repo)/blob/master/.github/semantic.yml" - vector_sink: "\(vector_website)/docs/reference/sinks/vector" - vector_sinks: "\(vector_website)/docs/reference/sinks/" - vector_sink_http_batch: "\(vector_website)/docs/reference/sinks/http/#batch" - vector_sink_kafka_sasl: "\(vector_website)/docs/reference/sources/kafka/#sasl" - vector_socket_source: "\(vector_website)/docs/reference/sources/socket/" - vector_source: "\(vector_website)/docs/reference/sources/vector/" - vector_sources: "\(vector_website)/docs/reference/sources/" - vector_stars: "\(vector_repo)/stargazers" - vector_stdin_source: "\(vector_website)/docs/reference/sources/stdin/" - vector_systemd_file: "\(vector_repo)/blob/master/distribution/systemd/vector.service" - vector_test_harness: "\(vector_repo)-test-harness/" - vector_transform_aws_cloudwatch_logs_subscription_parser: "\(vector_website)/docs/reference/transforms/aws_cloudwatch_logs_subscription_parser" - vector_transforms: "\(vector_website)/docs/reference/transforms/" - vector_twitter: "https://twitter.com/vectordotdev" - vector_version_branches: "\(vector_repo)/branches/all?query=v" - vector_website: "https://vector.dev" - vrl_announcement: "\(vector_website)/blog/vector-remap-language" - vrl_error_handling: "\(vrl_errors_reference)#handling" - vrl_error_handling_assigning: "\(vrl_errors_reference)#assigning" - vrl_error_handling_coalescing: "\(vrl_errors_reference)#coalesing" - vrl_error_handling_raising: "\(vrl_errors_reference)#raising" - vrl_errors_reference: "\(vrl_reference)errors/" - vrl_expressions: "\(vrl_reference)expressions/" - vrl_fail_safety: "\(vrl_reference)#fail-safety" - vrl_features: "\(vrl_reference)#features" - vrl_functions: "\(vrl_reference)functions/" - vrl_literals: "\(vrl_expressions)#literal-expressions" - vrl_parsing_functions: "\(vrl_functions)#parse-functions" - vrl_path_expressions: "\(vrl_expressions)#path" - vrl_performance: "\(vrl_reference)#performance" - vrl_reference: "\(vector_website)/docs/reference/vrl/" - vrl_runtime_errors: "\(vrl_errors_reference)#runtime-errors" - vrl_safety: "\(vrl_reference)#safety" - vrl_type_safety: "\(vrl_reference)#type-safety" - vote_feature: "\(vector_repo)/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3A%22Type%3A+New+Feature%22" - wasm: "https://webassembly.org/" - wasm_languages: "\(github)/appcypher/awesome-wasm-langs" - wikipedia: "https://en.wikipedia.org" - windows: "https://www.microsoft.com/en-us/windows" - windows_installer: "\(wikipedia)/wiki/Windows_Installer" - windows_service: "https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-service" - yaml: "https://yaml.org/" - yum: "\(wikipedia)/wiki/Yum_(software)" - zlib: "https://www.zlib.net" - zstd: "https://zstd.net" -} diff --git a/docs/specs/buffer.md b/docs/specs/buffer.md new file mode 100644 index 0000000000000..152f14ad56215 --- /dev/null +++ b/docs/specs/buffer.md @@ -0,0 +1,96 @@ +# Buffer Specification + +This document specifies Vector's buffer behavior for the development of Vector. + +The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, +“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be +interpreted as described in [RFC 2119]. + +- [Scope](#scope) +- [Instrumentation](#instrumentation) + - [Terms And Definitions](#terms-and-definitions) + - [Events](#events) + - [BufferCreated](#buffercreated) + - [BufferEventsReceived](#buffereventsreceived) + - [BufferEventsSent](#buffereventssent) + - [BufferError](#buffererror) + - [BufferEventsDropped](#buffereventsdropped) + +## Scope + +This specification addresses direct buffer development and does not cover aspects that buffers inherit "for free". For example, this specification does not cover global context, such as component_id, that all buffers receive in their telemetry by nature of being attached to a Vector component. + +## Instrumentation + +**This section extends the [Instrumentation Specification], which should be read +first.** + +Vector buffers MUST be instrumented for optimal observability and monitoring. + +### Terms And Definitions + +- `byte_size` - Refers to the byte size of events from a buffer's perspective. For memory buffers, `byte_size` represents the in-memory byte size of events. For disk buffers, `byte_size` represents the serialized byte size of events. +- `buffer_type` - One of `memory`, `disk`. Buffer metrics MUST be tagged with `buffer_type` unless otherwise specified. + +### Events + +#### BufferCreated + +_All buffers_ MUST emit a `BufferCreated` event upon creation. To avoid stale metrics, this event MUST be regularly emitted at an interval. + +- Properties + - `max_size_bytes` - the max size of the buffer in bytes if relevant + - `max_size_events` - the max size of the buffer in number of events if relevant +- Metric + - MUST emit the `buffer_max_event_size` gauge (in-memory buffers) if the defined `max_size_events` value is present + - MUST emit the `buffer_max_byte_size` gauge (disk buffers) if the defined `max_size_bytes` value is present + +#### BufferEventsReceived + +_All buffers_ MUST emit a `BufferEventsReceived` event: + +1. upon startup if there are existing events in the buffer. +2. after receiving one or more Vector events. + +- Properties + - `count` - the number of received events + - `byte_size` - as defined in [Terms and Definitions](#terms-and-definitions) +- Metric + - MUST increment the `buffer_received_events_total` counter by the defined `count` + - MUST increment the `buffer_received_bytes_total` counter by the defined `byte_size` + - MUST increment the `buffer_events` gauge by the defined `count` + - MUST increment the `buffer_byte_size` gauge by the defined `byte_size` + +#### BufferEventsSent + +_All buffers_ MUST emit a `BufferEventsSent` event after sending one or more Vector events. + +- Properties + - `count` - the number of sent events + - `byte_size` - as defined in [Terms and Definitions](#terms-and-definitions) +- Metric + - MUST increment the `buffer_sent_events_total` counter by the defined `count` + - MUST increment the `buffer_sent_bytes_total` counter by the defined `byte_size` + - MUST decrement the `buffer_events` gauge by the defined `count` + - MUST decrement the `buffer_byte_size` gauge by the defined `byte_size` + +#### BufferError + +**Extends the [Error event].** + +_All buffers_ MUST emit error events in accordance with the [Error event] +requirements. + +This specification does not list a standard set of errors that components must +implement since errors are specific to the buffer and operation. + +#### BufferEventsDropped + +**Extends the [EventsDropped event].** + +_All buffers_ that can drop events MUST emit a `BufferEventsDropped` event in +accordance with the [EventsDropped event] requirements. + +[error event]: instrumentation.md#Error +[eventsdropped event]: instrumentation.md#EventsDropped +[instrumentation specification]: instrumentation.md diff --git a/docs/specs/component.md b/docs/specs/component.md new file mode 100644 index 0000000000000..cd64513de695c --- /dev/null +++ b/docs/specs/component.md @@ -0,0 +1,343 @@ +# Component Specification + +This document specifies Vector Component behavior (source, transforms, and +sinks) for the development of Vector. + +The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, +“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be +interpreted as described in [RFC 2119]. + +- [Component Specification](#component-specification) + - [Introduction](#introduction) + - [Scope](#scope) + - [Naming](#naming) + - [Source and sink naming](#source-and-sink-naming) + - [Transform naming](#transform-naming) + - [Configuration](#configuration) + - [Options](#options) + - [`endpoint(s)`](#endpoints) + - [Instrumentation](#instrumentation) + - [Events](#events) + - [ComponentEventsReceived](#componenteventsreceived) + - [ComponentEventsSent](#componenteventssent) + - [ComponentError](#componenterror) + - [ComponentEventsDropped](#componenteventsdropped) + - [SinkNetworkBytesSent](#sinknetworkbytessent) + - [SourceNetworkBytesReceived](#sourcenetworkbytesreceived) + - [Sink Operational Requirements](#sink-operational-requirements) + - [Health checks](#health-checks) + - [Finalization](#finalization) + - [Acknowledgements](#acknowledgements) + +## Introduction + +Vector is a highly flexible observability data pipeline due to its directed +acyclic graph processing model. Each node in the graph is a Vector Component, +and in order to meet our [high user experience expectations] each Component must +adhere to a common set of behavioral rules. This document aims to clearly +outline these rules to guide new component development and ongoing maintenance. + +## Scope + +This specification addresses _direct_ component development and does not cover +aspects that components inherit "for free". For example, this specification does +not cover global context, such as `component_id`, that all components receive in +their telemetry by nature of being a Vector component. + +Finally, this document is written from the broad perspective of a Vector +component. Unless otherwise stated, a section applies to all component types +(sources, transforms, and sinks). + +## Naming + +To align with the [logical boundaries of components], component naming MUST +follow the following guidelines. + +### Source and sink naming + +- MUST only contain ASCII alphanumeric, lowercase, and underscores. +- MUST be a noun named after the protocol or service that the component + integrates with. +- MAY be suffixed with the event type only if the component is specific to + that type, `logs`, `metrics`, or `traces` (e.g., `kubernetes_logs`, + `apache_metrics`). + +### Transform naming + +- MUST only contain ASCII alphanumeric, lowercase, and underscores. +- MUST be a verb describing the broad purpose of the transform (e.g., `route`, + `sample`, `delegate`). + +## Configuration + +This section extends the [Configuration Specification] for component specific +configuration. + +### Options + +#### `endpoint(s)` + +When a component makes a connection to a downstream target, it SHOULD +expose either an `endpoint` option that takes a `string` representing a +single endpoint, or an `endpoints` option that takes an array of strings +representing multiple endpoints. If a component uses multiple options to +automatically build the endpoint, then the `endpoint(s)` option MUST +override that process. + +#### `listen` + +When a component listens for incoming connections, it SHOULD expose a `listen` configuration option that takes +a `string` representing an address with `:
`. + +Options for `protocol` are: + +- `unix+stream`, where `address` should be a file path +- `unix+datagram`, where `address` should be a file path +- `unix`, same as `unix+stream` +- `tcp`, where `address` should be `:` +- `udp`, where `address` should be `:` + +Components MAY have a default protocol. For example, a `statsd` component may default the protocol +to `udp` and only require the `:` to bind to. + +## Instrumentation + +**Extends the [Instrumentation Specification].** + +Vector components MUST be instrumented for optimal observability and monitoring. + +### Events + +This section lists all required events that a component MUST emit. Additional +events are listed that a component is RECOMMENDED to emit, but remain OPTIONAL. +It is expected that components will emit custom events beyond those listed here +that reflect component specific behavior. There is leeway in the implementation +of these events: + +- Events MAY be augmented with additional component-specific context. For + example, the `socket` source adds a `mode` attribute as additional context. +- The naming of the events MAY deviate to satisfy implementation. For example, + the `socket` source may rename the `EventReceived` event to + `SocketEventReceived` to add additional socket specific context. +- Components MAY emit events for batches of Vector events for performance + reasons, but the resulting telemetry state MUST be equivalent to emitting + individual events. For example, emitting the `EventsReceived` event for 10 + events MUST increment the `component_received_events_total` counter by 10. + +#### ComponentEventsReceived + +**Note**: Will be deprecated once `SourceNetworkBytesReceived` exists. + +_All components_ MUST emit a `ComponentEventsReceived` event that represents +the reception of Vector events from an upstream component. + +- Emission + - MUST emit immediately after creating or receiving Vector events, before modification or metadata + is added. +- Properties + - `count` - The count of Vector events. + - `byte_size` - The estimated JSON byte size of all events received. +- Metrics + - MUST increment the `component_received_events_total` counter by the defined + `quantity` property with the other properties as metric tags. + - MUST increment the `component_received_event_bytes_total` counter by the + defined `byte_size` property with the other properties as metric tags. +- Logs + - MUST log a `Events received.` message at the `trace` level with the + defined properties as key-value pairs. + - MUST NOT be rate limited. + +#### ComponentBytesReceived + +**Note**: Will be deprecated once `SourceNetworkBytesSent` exists. + +*Sources* MUST emit a `ComponentBytesReceived` event that represent the reception of bytes. + +- Emission + - MUST emit immediately after receiving, decompressing and filtering bytes from the upstream + source and before the creation of a Vector event. +- Properties + - `byte_size` + - For UDP, TCP, and Unix protocols, the total number of bytes received from + the socket excluding the delimiter. + - For HTTP-based protocols, the total number of bytes in the HTTP body, after decompression + - For files, the total number of bytes read from the file excluding the + delimiter. + - `protocol` - The protocol used to send the bytes (i.e., `tcp`, `udp`, + `unix`, `http`, `https`, `file`, etc.). + - `http_path` - If relevant, the HTTP path, excluding query strings. +- Metrics + - MUST increment the `component_received_bytes_total` counter by the defined value with + the defined properties as metric tags. +- Logs + - MUST log a `Bytes received.` message at the `trace` level with the + defined properties as key-value pairs. + - MUST NOT be rate limited. + +#### ComponentBytesSent + +*Sinks* MUST emit a `ComponentBytesSent` event that represent the transmission of bytes. + +- Emission + - MUST emit a `ComponentBytesSent` event immediately after sending bytes to the downstream target, + if the transmission was successful. The reported bytes MUST be before compression. + - Note that sinks that simply expose data, but don't delete the data after sending it, like the + `prometheus_exporter` sink, SHOULD NOT emit this metric. +- Properties + - `byte_size` + - For UDP, TCP, and Unix protocols, the total number of bytes placed on the + socket excluding the delimiter. + - For HTTP-based protocols, the total number of bytes in the HTTP body before compression + - For files, the total number of bytes written to the file excluding the + delimiter. + - `protocol` - The protocol used to send the bytes (i.e., `tcp`, `udp`, + `unix`, `http`, `https`, `file`, etc.). + - `endpoint` - If relevant, the endpoint that the bytes were sent to. For + HTTP, this MUST be the host and path only, excluding the query string. + - `file` - If relevant, the absolute path of the file. +- Metrics + - MUST increment the `component_sent_bytes_total` counter by the defined value with the + defined properties as metric tags. +- Logs + - MUST log a `Bytes sent.` message at the `trace` level with the + defined properties as key-value pairs. + - MUST NOT be rate limited. + +#### ComponentEventsSent + +_All components_ MUST emit an `ComponentEventsSent` event that represents the +emission of Vector events to the next downstream component(s). + +- Emission + - MUST emit immediately after _successful_ transmission of Vector events. + MUST NOT emit if the transmission was unsuccessful. + - MUST NOT emit for pull-based sinks since they do not send events. For + example, the `prometheus_exporter` sink MUST NOT emit this event. +- Properties + - `count` - The count of Vector events. + - `byte_size` - The estimated JSON byte size of all events sent. + - `output` - OPTIONAL, for components that can use multiple outputs, the name + of the output that events were sent to. For events sent to the default + output, this value MUST be `_default`. +- Metrics + - MUST increment the `component_sent_events_total` counter by the defined + `quantity` property with the other properties as metric tags. + - MUST increment the `component_sent_event_bytes_total` counter by the + defined `byte_size` property with the other properties as metric tags. +- Logs + - MUST log a `Events sent.` message at the `trace` level with the + defined properties as key-value pairs. + - MUST NOT be rate limited. + +#### ComponentError + +**Extends the [Error event].** + +_All components_ MUST emit error events in accordance with the [Error event] +requirements. + +This specification does not list a standard set of errors that components must +implement since errors are specific to the component. + +#### ComponentEventsDropped + +**Extends the [EventsDropped event].** + +_All components_ that can drop events MUST emit a `ComponentEventsDropped` +event in accordance with the [EventsDropped event] requirements. + +#### SinkNetworkBytesSent + +(to be implemented) + +_Sinks_ MUST emit a `SinkNetworkBytesSent` that represents the egress of +_raw network bytes_. + +- Emission + - MUST emit immediately after egress of raw network bytes regardless + of whether the transmission was successful or not. + - This includes pull-based sinks, such as the `prometheus_exporter` sink, + and SHOULD reflect the bytes sent to the client when requested (pulled). + - MUST emit _after_ processing of the bytes (encryption, compression, + filtering, etc.) +- Properties + - `byte_size` - The number of raw network bytes sent after processing. + - SHOULD be the closest representation possible of raw network bytes based + on the sink's capabilities. For example, if the sink uses an HTTP + client that does not provide access to the total request byte size, then + the sink should use the byte size of the payload/body. +- Metrics + - MUST increment the `component_sent_network_bytes_total` counter by the + defined value with the defined properties as metric tags. +- Logs + - MUST log a `Network bytes sent.` message at the `trace` level with the + defined properties as key-value pairs. + - MUST NOT be rate limited. + +#### SourceNetworkBytesReceived + +(to be implemented) + +_Sources_ MUST emit a `SourceNetworkBytesReceived` event that represents the +ingress of _raw network bytes_. + +- Emission + - MUST emit immediately after ingress of raw network bytes. + - MUST emit _before_ processing of the bytes (decryption, decompression, + filtering, etc.). + - This includes pull-based sources that issue requests to ingest bytes. +- Properties + - `byte_size` - The number of raw network bytes received before + processing (decryption, decompression, filtering, etc.). + - SHOULD be the closest representation possible of raw network bytes based + on the source's capabilities. For example, if the source uses an HTTP + client that only provides access to the request body, then the raw + request body bytes should be used. +- Metrics + - MUST increment the `component_received_network_bytes_total` counter by the + defined value with the defined properties as metric tags. +- Logs + - MUST log a `Network bytes received.` message at the `trace` level with the + defined properties as key-value pairs. + - MUST NOT be rate limited. + +## Sink Operational Requirements + +### Health checks + +All sink components SHOULD define a health check. These checks are executed at +boot and as part of `vector validate`. This health check SHOULD, as closely as +possible, emulate the sink's normal operation to give the best possible signal +that Vector is configured correctly. + +These checks SHOULD NOT query the health of external systems, but MAY fail due +to external system being unhealthy. For example, a health check for the `aws_s3` +sink might fail if AWS is unhealthy, but the check itself should not query for +AWS's status. + +See the [development documentation][health checks] for more context guidance. + +### Finalization + +All sink components MUST defer finalization of events until after those events have been +delivered. This finalization controls when the events are removed from any source disk buffer. To do +this, the sink must extract the finalizers from events before they are delivered and ensure they are +not dropped until after delivery is completed. + +## Acknowledgements + +Further to the above, all sink components MUST support acknowledgements. This requires both a +configuration option named `acknowledgements` conforming to the `AcknowledgementsConfig` type, as +well as updating the status of all finalizers deferred above after delivery of the events is +completed. This update is automatically handled for all sinks that use the newer `StreamSink` +framework. Additionally, unit tests for the sink SHOULD ensure through unit tests that delivered +batches have their status updated properly for both normal delivery and delivery errors. + +[configuration specification]: configuration.md +[error event]: instrumentation.md#Error +[eventsdropped event]: instrumentation.md#EventsDropped +[high user experience expectations]: https://github.com/vectordotdev/vector/blob/master/docs/USER_EXPERIENCE_DESIGN.md +[health checks]: ../DEVELOPING.md#sink-healthchecks +[instrumentation specification]: instrumentation.md +[logical boundaries of components]: ../USER_EXPERIENCE_DESIGN.md#logical-boundaries +[rfc 2119]: https://datatracker.ietf.org/doc/html/rfc2119 diff --git a/docs/specs/configuration.md b/docs/specs/configuration.md new file mode 100644 index 0000000000000..9e9a06e16760b --- /dev/null +++ b/docs/specs/configuration.md @@ -0,0 +1,132 @@ +# Configuration Specification + +This document specifies Vector's configuration for the development of Vector. + +The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, +“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be +interpreted as described in [RFC 2119]. + +- [Introduction](#introduction) +- [Scope](#scope) +- [Terminology](#terminology) + - [Flag](#flag) + - [Entity](#entity) + - [Option](#option) +- [Schema](#schema) + - [Naming](#naming) + - [Flag naming](#flag-naming) + - [Entity naming](#entity-naming) + - [Option naming](#option-naming) + - [Types](#types) + - [Polymorphism](#polymorphism) + - [Entity polymorphism](#entity-polymorphism) + - [Option polymorphism](#option-polymorphism) + +## Introduction + +Vector's runtime behavior is expressed through user-defined configuration files +intended to be written directly by users. Therefore, the quality of Vector's +configuration largely affects Vector's user experience. This document aims to +make Vector's configuration as high quality as possible in order to achieve the +[best in class user experience][user_experience]. + +## Scope + +This specification is focused on broad configuration guidelines and not specific +options. It is intended to guide Vector's configuration without tedious +management. When necessary, specific configuration will be covered in other +relevant specifications, such as the [component specification]. + +## Terminology + +### Flag + +"Flag" refers to a CLI flag provided when running Vector. + +### Entity + +"Entity" refers to a Vector concept used to model Vector's processing graph. +Sources, transforms, sinks, and enrichment tables are all examples of entities. +Entities are defined under a root-level type followed by a user-defined ID +containing the entity's options. + +### Option + +"Option" refers to a leaf field that takes a primitive value. Options are nested +under entities and also used to define global Vector behavior. + +## Schema + +### Naming + +#### Flag naming + +- MUST only contain ASCII alphanumeric, lowercase, and hyphens +- MUST be in kebab-case format when multiple words are used (e.g., `config-dir`) +- For flags that take a value, but are also able to be "disabled", they SHOULD NOT use a sentinel + value. Instead they SHOULD have a second flag added prefixed with `no-` and SHOULD leave off any + unit suffixes. For example, to disable `--graceful-shutdown-limit-secs`, + a `--no-graceful-shutdown` flag was added. Vector MUST NOT allow both the flag and its negative to + be specified at the same time. + +#### Entity naming + +- MUST only contain ASCII alphanumeric, lowercase, and underscores + - The `.` character is reserved for special purposes (e.g., error stream routing) +- MUST be in snake case format when multiple words are used (e.g., `timeout_seconds`) + +#### Option naming + +- MUST only contain ASCII alphanumeric, lowercase, and underscores +- MUST be in snake case format when multiple words are used (e.g., `timeout_seconds`) +- SHOULD use nouns, not verbs, as names (e.g., `fingerprint` instead of `fingerprinting`) +- MUST suffix options with their _full_ unit name (e.g., `_megabytes` rather than `_mb`) or the + following abbreviations for time units: `_secs`, `_ms`, `_ns`. +- SHOULD consistent with units within the same scope. (e.g., don't mix seconds and milliseconds) +- MUST NOT repeat the name space in the option name (e.g., `fingerprint.bytes` instead of `fingerprint.fingerprint_bytes`) + +### Types + +Types MUST consist of [JSON types] only, minus the `null` type: + +- `string` +- `number` +- `integer` +- `object` +- `array` +- `boolean` + +### Polymorphism + +#### Entity polymorphism + +By nature entities being namespaced by user-defined IDs, polymorphism MUST be +supported for entity namespaces. + +#### Option polymorphism + +Options MUST NOT support polymorphism: + +- MUST be strongly typed +- MUST be [externally tagged] for mutually exclusive sets of options + - REQUIRED to implement a top-level `type` key that accept the tag value + +For example: + +```toml +buffer.type = "memory" +buffer.memory.max_events = 10_000 +``` + +The above configures a Vector memory buffer which can be switched to disk as +well: + +```toml +buffer.type = "disk" +buffer.disk.max_bytes = 1_000_000_000 +``` + +[component specification]: component.md +[external tagging]: https://docs.rs/serde_tagged/0.2.0/serde_tagged/ser/external/index.html +[json types]: http://json-schema.org/understanding-json-schema/reference/type.html +[user_experience]: ../USER_EXPERIENCE_DESIGN.md diff --git a/docs/specs/instrumentation.md b/docs/specs/instrumentation.md new file mode 100644 index 0000000000000..e8da50910a2ab --- /dev/null +++ b/docs/specs/instrumentation.md @@ -0,0 +1,172 @@ +# Instrumentation Specification + +This document specifies Vector's instrumentation for the development of Vector. + +The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, +“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be +interpreted as described in [RFC 2119]. + +- [Introduction](#introduction) +- [Naming](#naming) + - [Namespaces](#namespaces) + - [Event naming](#event-naming) + - [Metric naming](#metric-naming) +- [Emission](#emission) + - [Batching](#batching) + - [Events](#events) + - [Error](#error) + - [EventsDropped](#eventsdropped) + +## Introduction + +Vector's telemetry drives various interfaces that operators depend on to manage +mission critical Vector deployments. Therefore, Vector's telemetry should be +high quality and treated as a first class feature in the development of Vector. +This document strives to guide developers towards achieving this. + +## Naming + +### Namespaces + +Events and metrics are namespaces as one of: + +- `Component` +- `Buffer` +- `Topology` + +Depending on where they are emitted. + +### Event naming + +Vector implements an event-driven instrumentation pattern ([RFC 2064]) and +event names MUST adhere to the following rules: + +- MUST only contain ASCII alphanumeric and lowercase characters +- MUST be in [camelcase] format +- MUST follow the `[Error]` template + - `Namespace` - the [internal domain](#namespaces) the event belongs to + - `Noun` - the subject of the event (e.g., `Bytes`, `Events`) + - `Verb` - the past tense verb describing when the event occurred (e.g., `Received`, `Sent`, `Processes`) + - `[Error]` - if the event is an error it MUST end with `Error` + +### Metric naming + +Vector broadly follows the [Prometheus metric naming standards]: + +- MUST only contain ASCII alphanumeric, lowercase, and underscore characters +- MUST be in [snakecase] format +- MUST follow the `___[total]` template + - `namespace` - the [internal domain](#namespaces) the event belongs to + - `name` - is one or more words that describes the measurement (e.g., `memory_rss`, `requests`) + - `unit` - MUST be a single [base unit] in plural form, if applicable (e.g., `seconds`, `bytes`) + - Counters MUST end with `total` (e.g., `disk_written_bytes_total`, `http_requests_total`) +- SHOULD be broad in purpose and use tags to differentiate characteristics of the measurement (e.g., `host_cpu_seconds_total{cpu="0",mode="idle"}`) + +## Emission + +### Batching + +For performance reasons, as demonstrated in [pull request #8383], +instrumentation SHOULD be batched whenever possible: + +- Telemetry SHOULD emit for entire event batches, not each individual event. + [RFC 9480] describes Vector's batching strategy. +- Benchmarking SHOULD prove that batching produces performance benefits. + [Issue 10658] could eliminate the need to batch for performance improvements. + +### Events + +Instrumentation SHOULD be event-driven ([RFC 2064]), where individual events +serve as the vehicle for internal telemetry, driving the emission of metrics +and logs. This organizes Vector's telemetry, making it easier to manage and +catalogue. Metrics and logs SHOULD NOT be emitted directly except for where it +is otherwise impossible to emit Vector's events, such as in an external crate +that cannot import Vector's events. + +#### Error + +An `Error` event MUST be emitted when an error occurs during the running +of a component. + +If an error occurs that prevents the component from starting up an event does +not need to be emitted as this will prevent Vector from starting and the metric +is unlikely to be collected. An error should still be logged, however. + +- Properties + - `error_code` - An error code for the failure, if applicable. + - SHOULD only be specified if it adds additional information beyond + `error_type`. + - The values for `error_code` for a given error event MUST be a bounded set + with relatively low cardinality because it will be used as a metric tag. + Examples would be syscall error code. Examples of values that should not + be used are raw error messages from `serde` as these are highly variable + depending on the input. Instead, these errors should be converted to an + error code like `invalid_json`. + - `error_type` - The type of error condition. MUST be one of the types listed + in the `error_type` enum list in the cue docs. + - If any of the above properties are implicit to the specific error + type, they MAY be omitted from being represented explicitly in the + event fields. However, they MUST still be included in the emitted + logs and metrics, as specified below, as if they were present. + - `stage` - The stage at which the error occurred. This MUST be one of + `receiving`, `processing`, or `sending`. +- Metrics + - MUST include the defined properties as tags. + - MUST increment `_errors_total` metric. +- Logs + - MUST log a descriptive, user-friendly error message that sufficiently + describes the error. + - MUST include the defined properties as key-value pairs. + - MUST log a message at the `error` level. + - SHOULD be rate limited to 10 seconds. +- Events + - MUST emit an [`EventsDropped`] event if the error results in dropping + events. + +#### EventsDropped + +An `EventsDropped` event MUST be emitted when events are dropped. +If events are dropped due to an error, then the error event should drive the +emission of this event, meeting the below requirements. + +This event MUST NOT be emitted before events have been created in Vector. For +example a source failing to decode incoming data would simply emit the +`ComponentError` event but would not emit the `ComponentEventsDropped` event. + +You MUST NOT emit this event for operations that Vector will retry to prevent data loss. For +example, a failed HTTP request that will be retried does not result in data loss if the retry +succeeds. + +Note that this event is independent of any clients of Vector that may retry when end-to-end +acknowledgements are enabled. From Vector's perspective, it has dropped the events, and it cannot +know if the client will retry them. + +- Properties + - `count` - The number of events dropped + - `intentional` - Distinguishes if the events were dropped intentionally. For + example, events dropped in the `filter` transform are intentionally dropped, + while events dropped due to an error in the `remap` transform are + unintentionally dropped. + - `reason` - A short, user-friendly reason that describes why the events were + dropped. +- Metrics + - MUST increment the `_discarded_events_total` counter by the + number of events discarded. + - MUST only include the `intentional` property and component properties that + are inherited implicitly (e.g. `component_type`). +- Logs + - MUST log a `Events dropped` message. + - MUST include the defined properties as key-value pairs. + - If `intentional` is `true`, MUST log at the `debug` level. + - If `intentional` is `false`, MUST log at the `error` level. + - SHOULD be rate limited to 10 seconds. + +[camelcase]: https://en.wikipedia.org/wiki/Camel_case +[`eventsdropped`]: #EventsDropped +[issue 10658]: https://github.com/vectordotdev/vector/issues/10658 +[prometheus metric naming standards]: https://prometheus.io/docs/practices/naming/ +[pull request #8383]: https://github.com/vectordotdev/vector/pull/8383/ +[rfc 2064]: https://github.com/vectordotdev/vector/blob/master/rfcs/2020-03-17-2064-event-driven-observability.md +[rfc 9480]: https://github.com/vectordotdev/vector/blob/master/rfcs/2021-10-22-9480-processing-arrays-of-events.md +[single base unit]: https://en.wikipedia.org/wiki/SI_base_unit +[snakecase]: https://en.wikipedia.org/wiki/Snake_case diff --git a/docs/specs/target.md b/docs/specs/target.md new file mode 100644 index 0000000000000..cca398f0d7ce5 --- /dev/null +++ b/docs/specs/target.md @@ -0,0 +1,183 @@ +# Target Specification + +This document specifies requirements for installation targets for the +integration of Vector. + +The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, +“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be +interpreted as described in [RFC 2119]. + +Other words, such as "agent", "aggregator", "node", and "service" are to be +interpreted as described in the [terminology document][terminology_document]. + +- [1. Introduction](#1-introduction) +- [2. Installation Targets](#2-installation-targets) +- [3. Deployment Architectures](#3-deployment-architectures) + - [4. Agent Architecture](#4-agent-architecture) + - [5. Aggregator Architecture](#5-aggregator-architecture) + - [6. Unified Architecture](#6-unified-architecture) +- [7. Hardening](#7-hardening) + +## 1. Introduction + +In its simplest form, installing Vector consists of downloading the binary and +making it executable, but leaves much to be desired for users looking to +integrate Vector in real-world production environments. To adhere with Vector's +["reduce decisions" design principle][reduce_decisions], Vector must also be opinionated about how +it's deployed, providing easy facilities for adopting Vector's +[reference architectures][reference_architectures], +[achieving high availability][high_availability], and [hardening][hardening] +Vector. + +## 2. Installation Targets + +Vector supports a number of installation targets that can be categorized into: + +- Virtual/Physical Machine +- Orchestration Platform + +The primary differentiator between the two being that Virtual/Physical Machines +provide a single node as the deployment target, whereas Orchestration Platforms +allow for a scheduler to deploy Vector across a number of nodes. These categories +have their own requirements for each +[Deployment Architecture](#3-deployment-architectures). + +Examples of Virtual/Physical Machine targets include, but are not limited to: + +- Debian +- Docker +- RHEL +- Windows + +Examples of Orchestration Platform targets include, but are not limited to: + +- Kubernetes + +## 3. Deployment Architectures + +When supporting a target, Vector must support them through the paradigm of +architectures: + +- Targets MUST support the [agent architecture][agent_architecture] by + providing a single command that deploys Vector and achieves the + [agent architecture requirements](#agent-architecture). +- Targets SHOULD support the [aggregator architecture][aggregator_architecture] by + providing a single command that deploys Vector and achieves the + [aggregator architecture requirements](#aggregator-architecture). +- Targets MAY support the [unified architecture][unified_architecture] by + providing a single command that deploys Vector and achieves the + [unified architecture requirements](#unified-architecture). + +### 4. Agent Architecture + +The [agent architecture][agent_architecture] deploys Vector on each individual +node for distributed data collection and processing. Along with general +[hardening](#7-hardening) requirements, the following requirements define support +for this architecture: + +- Architecture + - MUST deploy as a daemon on existing nodes, one Vector process per node. + - MUST deploy with Vector's [default agent configuration][default_agent_configuration]. +- Sizing + - MUST deploy as a good infrastructure citizen, giving resource priority to + other services on the same node. + - SHOULD be limited to 1 vCPUs by default, MUST be overridable by the user. + - SHOULD be limited to 2 GiB of memory per vCPU by default, MUST be + overridable by the user. + - SHOULD be limited to 1 GiB of disk space, MUST be overridable by the user. + +### 5. Aggregator Architecture + +The [aggregator architecture][aggregator_architecture] deploys Vector onto +dedicated nodes for data aggregation. Along with general [hardening](#7-hardening) +requirements, the following requirements define support for this architecture: + +- Architecture + - MUST deploy as a service with reserved/dedicated resources. + - SHOULD deploy with a persistent disk that is available between deployments by default, + MUST be overridable by the user if they do not want a persistent disk. + - MUST deploy with Vector's [default aggregator configuration][default_aggregator_configuration]. + - Configured Vector ports, including non-default user configured ports, + SHOULD be automatically accessible within the Cluster or VPC. + - Configured Vector sources, including non-default user configured sources, + SHOULD be automatically discoverable via target service discovery + mechanisms. +- Sizing + - MUST have dedicated/reserved resources that cannot be stolen by other services, preventing + the "noisy neighbor" problem to the degree possible. + - The Vector service SHOULD NOT be artificially limited with resource + limiters such as cgroups. + - SHOULD require 8 vCPUs by default, MUST be overridable by the user. + - SHOULD require 2 GiB of memory per vCPU (16 GiB in this case) by default, + MUST be overridable by the user. + - SHOULD request 36 GiB of disk space per vCPU by default (288 GiB in this case), + MUST be overridable by the user. + +The following are additional requirements for Orchestration Platform installation +targets: + +- High Availability + - SHOULD deploy across multiple nodes by default, MUST be overridable by the user. + - SHOULD deploy across multiple availability zones by default, MUST be overridable by the user. +- Scaling + - SHOULD provide facilities for provisioning a load balancer to enable horizontal scaling + out of the box. MUST be overridable by the user. + - Cloud-managed load balancers (i.e., AWS NLB) SHOULD be supported in addition to + self-managed load balancers (i.e., HAProxy). + - Cloud-managed load balancers SHOULD be prioritized by default over self-managed + load balancers. + - Network load balancers (layer-4) SHOULD be prioritized over HTTP load balancers (layer-7) + - Autoscaling SHOULD be enabled by default, driven by an average of 85% + CPU utilization and a stabilization period of 5 minutes. + +### 6. Unified Architecture + +The [unified architecture][unified_architecture] deploys Vector on each +individual node as an agent and as a separate service as an aggregator. +The requirements for both the [agent](#4-agent-architecture) and the +[aggregator](#5-aggregator-architecture) apply to this architecture. +This architecture SHOULD NOT be installed on Virtual/Physical Machine +targets as there is little added benefit. + +## 7. Hardening + +- Setup + - An unprivileged Vector service account SHOULD be created upon installation + for running the Vector process. +- Data hardening + - Swap SHOULD be disabled to prevent in-flight data from leaking to disk. + Swap would also make Vector prohibitively slow. + - Vector's data directory SHOULD be read and write restricted to Vector's + dedicated service account. + - Core dumps SHOULD be prevented for the Vector process to prevent in flight + data from leaking to disk. +- Process hardening + - Vector's artifacts + - All communication during the setup process, such as downloading Vector + artifacts, MUST use encrypted channels. + - Downloaded Vector artifacts MUST be verified against the provided + checksum. + - The latest Vector version SHOULD be downloaded unless otherwise specified + by the user. + - Vector's configuration + - Vector's configuration directory SHOULD be read restricted to Vector's + service account. + - Vector's runtime + - Vector SHOULD be run under an unprivileged, dedicated service account. + - Vector's service account SHOULD NOT have the ability to overwrite Vector's + binary or configuration files. The only directory the Vector service + account should write to is Vector’s data directory. +- Network hardening + - Configured sources and sinks SHOULD use encrypted channels by default. + +[agent_architecture]: https://vector.dev/docs/setup/going-to-prod/arch/agent/ +[aggregator_architecture]: https://vector.dev/docs/setup/going-to-prod/arch/aggregator/ +[default_agent_configuration]: https://github.com/vectordotdev/vector/blob/master/config/agent/vector.yaml +[default_aggregator_configuration]: https://github.com/vectordotdev/vector/blob/master/config/aggregator/vector.yaml +[hardening]: https://vector.dev/docs/setup/going-to-prod/hardening/ +[high_availability]: https://vector.dev/docs/setup/going-to-prod/high-availability/ +[reduce_decisions]: https://github.com/vectordotdev/vector/blob/master/docs/USER_EXPERIENCE_DESIGN.md#be-opinionated--reduce-decisions +[reference_architectures]: https://vector.dev/docs/setup/going-to-prod/arch/ +[rfc 2119]: https://datatracker.ietf.org/doc/html/rfc2119 +[terminology_document]: https://vector.dev/docs/reference/glossary/ +[unified_architecture]: https://vector.dev/docs/setup/going-to-prod/arch/unified/ diff --git a/docs/tutorials/lognamespacing.md b/docs/tutorials/lognamespacing.md new file mode 100644 index 0000000000000..de23447f796b7 --- /dev/null +++ b/docs/tutorials/lognamespacing.md @@ -0,0 +1,436 @@ +# Log Namespacing + +This walks through the steps required to add log namespacing to a given source. + +Log Namespacing is a new feature in Vector that allows different fields of the Log +event to be kept under separate namespaces, thus avoiding conflicts where two different +fields try to use the same name. Log Namespacing does not apply to Metric or Trace events. + +## Config + +Add the following field to the `Config` struct: + +```rust + /// The namespace to use for logs. This overrides the global setting. + #[configurable(metadata(docs::hidden))] + #[serde(default)] + pub log_namespace: Option, +``` + +Currently, because log namespacing is an unreleased feature we add the `docs::hidden` +attribute so it doesn't appear in the documentation. + +## Build + +The configuration is currently just a bool, switching it on or off. When we come to +retrieve the actual namespace to use we merge it in with the globally configured one. +This is passed in via the `SourceContext` parameter. + +```rust +impl SourceConfig for DnstapConfig { + async fn build(&self, cx: SourceContext) -> Result { + let log_namespace = cx.log_namespace(self.log_namespace); +``` + +The `cx.log_namespace` function gives us a `LogNamespace` enum that we can use to +set the fields in the appropriate section of the Event. + +This `log_namespace` variable needs to be passed to any functions that will insert +data into the log event that is emitted by the source. + +### Vector metadata + +The Vector namespace contains data pertinent to how the event was ingested into +Vector. Currently two fields need to be added to this namespace - `ingest_timestamp` +and `source_type`: + +```rust + self.log_namespace.insert_vector_metadata( + &mut log_event, + path!(self.timestamp_key()), + path!("ingest_timestamp"), + chrono::Utc::now(), + ); + + self.log_namespace.insert_vector_metadata( + &mut log_event, + path!(self.source_type_key()), + path!("source_type"), + DnstapConfig::NAME, + ); +``` + +If we look at the parameters to `insert_vector_metadata`: + +```rust + pub fn insert_vector_metadata<'a>( + &self, + log: &mut LogEvent, + legacy_key: impl ValuePath<'a>, + metadata_key: impl ValuePath<'a>, + value: impl Into, + ) +``` + +#### log + +This needs to be the log event that is being populated. + +#### legacy_key + +This is the name of the field the timestamp is to be inserted into +when using the Legacy Namespace. + +The value for this field comes from a number of different places. + +- For fields that are typically found in most log events the value will +be returned by calls to `log_schema()` eg. `log_schema().source_type_key()` +or `log_schema().timestamp_key()`. +- Some sources allow the user to specify the field name that a given +value will be placed in. For example, the `kafka` source will allow the +user to specify the `topic_key` - the field name that will contain the +kafka `topic` the event was consumed from. +- Other sources just hard code this value. For example the `dnstap` source +creates an event with an object where most of the field names are hard coded. + +#### metadata_key + +The name of the field when it is inserted into the Vector namespace. This +will be `path!("ingest_timestamp")` or `path!("source_type")`. The field names +can be hard coded since they are going into the Vector namespace, so conflicts +with other field names cannot occur. + +It should be noted that the values for these field names are typically +hard coded. With the `kafka` source, for example, it was possible to configure +the field name that the `topic` was inserted into. In the Vector namespace +this field name is just hard coded to `topic`. Allowing the user to configure +the fieldname was only necessary to prevent name conflicts with other values +from the event. This is no longer an issue as these values are now placed in a +separate namespace to the event data. + +#### value + +The actual value to be placed into the field. + +For the ingest timestamp this will be `chrono::Utc::now()`. Source type will be +the `NAME` property of the `Config` struct. `NAME` is provided by the +`configurable_component` macro. You may need to include `use vector_config::NamedComponent;`. + +For batches of events, each event in the batch should use a precalculated +`Utc::now()` so they all share the same timestamp. + + +### insert_standard_vector_source_metadata(...) + +A utility function has been provided that can be used in a lot of cases to +insert both these fields into the Vector namespace: + +```rust + + log_namespace.insert_standard_vector_source_metadata( + log, + KafkaSourceConfig::NAME, + Utc::now(), + ); +``` + +### Source Metadata + +Other fields that describe the event - but are not the actual data for the event +should go into the source metadata. Examples of source metadata are: + +- The Kafka topic when pulling from a Kafka stream. +- Severity and Facility fields from a Syslog message. +- The file path when pulling data from a file. + +To insert source metadata: + +```rust + log_namespace.insert_source_metadata( + SyslogConfig::NAME, + log, + Some(LegacyKey::Overwrite("source_id")), + path!("source_id"), + default_host.clone(), + ); +``` + +Let's look at the parameters: + +```rust + pub fn insert_source_metadata<'a>( + &self, + source_name: &'a str, + log: &mut LogEvent, + legacy_key: Option>>, + metadata_key: impl ValuePath<'a>, + value: impl Into, + ) +``` + +#### source_name + +The name of the source. This will be eg. `KafkaSourceConfig::NAME`. + +#### log + +The log event to populate. + +#### legacy_key + +The field name to populate for the legacy namespace. Pass `None` if +this field should not be inserted for Legacy. Because there is a +possibility that the field might conflict with another field that +is already in the event what to do in the case of conflicts must +also be specified. `LegacyKey::Overwrite` will overwrite the existing +value with this value. `LegacyKey::InsertIfEmpty` keeps the original +value. + +#### metadata_key + +The name of the path to insert into the Source metadata when in +the Vector namespace. Because there is no chance of conflicting names +here, this is typically just a hard coded value. eg. `path!("topic")` + +#### value + +The actual value that is to be inserted into the metadata. + +## The event + +The main log event should contain only the real log message that the +event is representing. + +For the Vector namespace the data should be at the top level and not +contained in any subfields. For an event that is a single String value - +typically, in the Legacy namespace this will be inserted in a field +called `message`. In the Vector namespace the event will be just this +String value. + +In this case code that creates an event typically looks similar to: + +```rust + let mut log = match log_namespace { + LogNamespace::Vector => LogEvent::from(message), + LogNamespace::Legacy => { + let mut log = LogEvent::default(); + + // Add message + log.insert(log_schema().message_key(), message); + log + } + }; +``` + +Other fields should be inserted into the event like: + +```rust + log_event.insert(event_path!("path"), value); +``` + +## Timestamps + +We need to talk about timestamps. A timestamp can represent a number +of different things: + +- Ingest timestamp - This is the timestamp when the event was received + by Vector. This should go in the Vector metadata. +- Timestamp - This should be any timestamp extracted from the incoming + message. + +It is worth recognising that existing sources have not always been consistent +with this. Some sources would insert a timestamp that is extracted from the +event but default to the ingest timestamp if it didn't exist. Others insert +the timestamp extracted from the event and don't insert a timestamp at all +if it didn't exist. Others will always insert the ingest timestamp. To +maintain backward compatibility there is a few areas in the code base that +do some seemingly overly complicated things with timestamps. It is worth +bearing this in mind when looking through existing new code. + +All new sources should work like the above and should not permit users to +configure custom field names for metadata. + +## Schema + +All sources need to specify their schema - a definition of the shape of the +event that it will create. + +The schema definition is returned from the `outputs` function defined +by the `SourceConfig` trait. + +```rust + fn outputs(&self, global_log_namespace: LogNamespace) -> Vec { + let log_namespace = global_log_namespace.merge(self.log_namespace); +``` + +Most sources have a decoder option that will specify the initial schema. One +can retrieve the schema by calling: + +```rust + let schema_definition = self + .decoding + .schema_definition(log_namespace) +``` + +We need to add the metadata that has been adding to the Vector namespace: + +```rust + .with_standard_vector_source_metadata() +``` + +Next we need to add any source metadata that is created by the source. + +```rust + .with_source_metadata( + NatsSourceConfig::NAME, + legacy_subject_key_field, + &owned_value_path!("subject"), + Kind::bytes(), + None, + ); +``` + +Let's look at the parameters: + +```rust + pub fn with_source_metadata( + self, + source_name: &str, + legacy_path: Option>, + vector_path: &OwnedValuePath, + kind: Kind, + meaning: Option<&str>, + ) -> Self +``` + +### source_name + +The name of the source - typically something like `NatsSourceConfig::NAME` + +### legacy_path + +The pathname of the field when inserting in the Legacy namespace. This should be the +same value as used when inserting the data with `insert_source_metadata`. + +### vector_path + +The pathname of the field when inserting in the Vector namespace. This should be the +same value as used when inserting the data with `insert_source_metadata`. + +### kind + +This is the type the data will be. This is covered in detail below. + +### meaning + +Some fields are given a meaning. It is possible in VRL to refer to a field by it's +meaning regardless of what name has been given to it. Fields with the following meaning +are used in Vector: + +- message +- timestamp +- severity +- host +- service +- source +- tags + +This list is not definitive and likely to be updated over time. + +Most fields will not have a given meaning, in which case just pass `None`. + + +### Kind + +The core principle behind schemas is defining the type, or kind, of data that will +exist in this field. The following kinds are supported: + +#### bytes + +Any string value. + +#### integer + +An integer value - in Vector this will be a signed 64 bit integer. + +#### float + +A 64 bit float value. + +#### boolean + +Boolean value - either `true` or `false`. + + +#### timestamp + +A timestamp in the UTC timezone. + +#### array + +An array of values. It is possible to specify the type for any element +within the array eg. this array will be an array of strings. + +```rust +Kind::array(Collection::empty().with_unknown(Kind::bytes())) +```` + +It is also possible to specify the type for specific indexes in the +array eg. this array will have a string at index 0 and an integer +at index 1: + +```rust +Kind::array(Collection::empty() + .with_known(0, Kind::bytes()) + .with_known(1, Kind::integer())) +``` + +These can also be combined. For example an array of strings apart +from the third index, which will be a timestamp: + +```rust +Kind::array(Collection::empty().with_unknown(Kind::bytes()) + .with_known(3, Kind::timestamp())) +```` + +#### object + +An object is a map of keys to values. Similar to an array, an object +can specify the type for all fields as well as the type for specific +fields. + +An object where all fields will be strings, but doesn't specify what +those field names are: + +```rust +Kind::object(Collection::empty().with_unknown(Kind::bytes())) +```` + +An object with two fields - `reason` containing a string and `value` +containing an integer: + +```rust +Kind::object(Collection::empty() + .with_known("reason", Kind::bytes()) + .with_known("value", Kind::integer())) +``` + + +#### Multiple types + +It is possible to represent a field that could be one of several types. + +For example, a string or an integer: + +```rust +Kind::bytes().or_integer() +``` + +Often a field may not exist at all, for that we have `or_undefined()`. +For example, an object with a field called `reason` that may not exist, +but if it does it will be a string: + +```rust +Kind::object(Collection::empty() + .with_known("reason", Kind::bytes().or_undefined())) +``` diff --git a/docs/tutorials/sinks/1_basic_sink.md b/docs/tutorials/sinks/1_basic_sink.md new file mode 100644 index 0000000000000..65bb7b4078880 --- /dev/null +++ b/docs/tutorials/sinks/1_basic_sink.md @@ -0,0 +1,364 @@ +Let's write a basic sink for Vector. Currently, there are two styles of sink in +Vector - 'event' and 'event streams'. The 'event' style sinks are deprecated, +but currently a significant portion of Vector's sinks are still developed in +this style. A tracking issue that covers which sinks have been converted to +'event streams' can be found [here][event_streams_tracking]. + +This tutorial covers writing an 'event stream' Sink. + +Create a new rust module in `src/sinks/` called `basic.rs`. + +# Doc comments + +Provide some module level comments to explain what the sink does. + +```rust +//! `Basic` sink. +//! A sink that will send it's output to standard out for pedagogical purposes. +``` + +# Imports + +Let's setup all the imports we will need for the tutorial: + +```rust +use crate::sinks::prelude::*; +use vector_lib::internal_event::{ + ByteSize, BytesSent, EventsSent, InternalEventHandle, Output, Protocol, +}; +``` + +# Configuration + +The first step when developing a Sink is to create a struct that represents the +configuration for that sink. The configuration file passed to Vector on startup +is deserialized to the fields in this struct so the user can customise the +sink's behaviour. + +```rust +#[configurable_component(sink("basic"))] +#[derive(Clone, Debug)] +/// A basic sink that dumps its output to stdout. +pub struct BasicConfig { + #[configurable(derived)] + #[serde( + default, + deserialize_with = "crate::serde::bool_or_struct", + skip_serializing_if = "crate::serde::is_default" + )] + pub acknowledgements: AcknowledgementsConfig, +} +``` + +Note the [`configurable_component`][configurable_component] attribute. This +is used by Vector to generate documentation from the struct. To do this, doc +comments must be included above the struct - Vector won't compile if they +aren't. + +We also include a single member in our struct - `acknowledgements`. This +struct configures end-to-end acknowledgements for the sink, which is the ability +for the sink to inform the upstream sources if the event has been successfully +delivered. See Vector's [documentation][acknowledgements] for more details. We +will make this a configurable option. + +Next we want to implement the [`GenerateConfig`][generate_config] trait for +our struct: + +```rust +impl GenerateConfig for BasicConfig { + fn generate_config() -> toml::Value { + toml::from_str("").unwrap() + } +} +``` + +This is used by the `vector generate` command to generate a default +configuration for the sink. + +# SinkConfig + +We need to implement the [`SinkConfig`][sink_config] trait. This is used by +Vector to generate the main Sink from the configuration. Note that type name +given to `typetag` below must match the name of the configurable component above. + +```rust +#[async_trait::async_trait] +#[typetag::serde(name = "basic")] +impl SinkConfig for BasicConfig { + async fn build(&self, _cx: SinkContext) -> crate::Result<(VectorSink, Healthcheck)> { + let healthcheck = Box::pin(async move { Ok(()) }); + let sink = VectorSink::from_event_streamsink(BasicSink); + + Ok((sink, healthcheck)) + } + + fn input(&self) -> Input { + Input::log() + } + + fn acknowledgements(&self) -> &AcknowledgementsConfig { + &self.acknowledgements + } +} +``` + +## The `build` function + +Of particular importance is the [`build`][sink_config_build] function. This is +an async function that builds two components of the sink. + +First, the healthcheck is an async block that can be used to check the health +of the service we are connecting to. In this very simple case we are just +outputting to the console which we assume will work, so the healthcheck returns +`Ok(())` indicating our target is healthy. + +The actual work for this sink is done in `BasicSink` (to be implemented +shortly). The `build` function converts this into a [`VectorSink`][vector_sink] +via [`VectorSink::from_event_streamsink`][from_eventstreamsink] and returns it. + + +## BasicSink + +Lets implement `BasicSink`. + +```rust +struct BasicSink; +``` + +Our sink is so basic it has no properties to determine it's behaviour. + +For it to work with Vector it must implement the [`StreamSink`][stream_sink] +trait: + +```rust +#[async_trait::async_trait] +impl StreamSink for BasicSink { + async fn run( + self: Box, + input: futures_util::stream::BoxStream<'_, Event>, + ) -> Result<(), ()> { + self.run_inner(input).await + } +} +``` + +`StreamSink` is an async trait with a single async function: `run`. The main +parameter to this function, `input` is a stream of the events that are being +sent to this sink. We pull from this stream to send the events on to our +destination. + +In order to handle lifetime issues that arise from using [`async_trait`] +(https://docs.rs/async-trait/latest/async_trait/), this function simply calls +another method `run_inner` that is implemented directly on `BasicSink`. + +Let's look an `run_inner`: + +```rust +impl BasicSink { + async fn run_inner(self: Box, mut input: BoxStream<'_, Event>) -> Result<(), ()> { + while let Some(event) = input.next().await { + println!("{:?}", event); + } + + Ok(()) + } +} +``` + +Our sink simply pulls each event from the input stream and prints the debug +representation of the object. + +# Importing to Vector + +## Feature flag + +Each sink is kept behind a feature flag which allows copies of Vector to be +build with just the components required. We need to add this feature to the +`Cargo.toml`. + +```diff + sinks-azure_blob = ["dep:azure_core", "dep:azure_identity", "dep:azure_storage", "dep:azure_storage_blobs"] + sinks-azure_monitor_logs = [] ++ sinks-basic = [] + sinks-blackhole = [] + sinks-chronicle = [] +``` + +Add it to our list of log sinks: + +```diff +sinks-logs = [ + "sinks-amqp", + "sinks-apex", + "sinks-aws_cloudwatch_logs", + "sinks-aws_kinesis_firehose", + "sinks-aws_kinesis_streams", + "sinks-aws_s3", + "sinks-aws_sqs", + "sinks-axiom", + "sinks-azure_blob", + "sinks-azure_monitor_logs", ++ "sinks-basic", + "sinks-blackhole", + "sinks-chronicle", +``` + +# Acknowledgements + +When our sink finishes processing the event, it needs to acknowledge this so +that this can be passed back to the source. + +We need to make a couple of changes to our `run_inner` function: + +```diff + async fn run_inner(self: Box, mut input: BoxStream<'_, Event>) -> Result<(), ()> { +- while let Some(event) = input.next().await { ++ while let Some(mut event) = input.next().await { + println!("{:#?}", event); + ++ let finalizers = event.take_finalizers(); ++ finalizers.update_status(EventStatus::Delivered); + } + + Ok(()) + } +``` + +First we need to make `event` mutable so that we can update the events status when +it is delivered. + +Next we access the events finalizers with the `take_finalizers` function. We +then update the status with [`EventStatus::Delivered`][event_status_delivered] +to indicate the event has been delivered successfully. + +If there had been an error whilst delivering the event, but the error was not a +permanent error, we would update the status with [`EventStatus::Errored`][event_status_errored]. Vector +will attempt to redeliver this event again. + +If the error was a permanent one that would never work no matter how many times +we retry delivery, we update the status with [`EventStatus::Rejected`][event_status_rejected]. + +# Emitting internal events + +Vector should be observable. It emit events about how it is running so users +can introspect its state to allow users to determine how healthy it is running. +Our sink must emit some metric when an event has been delivered to update the +count of how many events have been delivered. + +There are two events that need to be emitted by the component. + +## BytesSent + +[`BytesSent`][bytes_sent] instruments how many bytes the sink is sending downstream. + +First we need to get the number of bytes that we are sending. Then we need to +emit the event. Change the body of `run_inner` to look like the following: + +```diff + async fn run_inner(self: Box, mut input: BoxStream<'_, Event>) -> Result<(), ()> { ++ let bytes_sent = register!(BytesSent::from(Protocol("console".into(),))); + + while let Some(mut event) = input.next().await { ++ let bytes = format!("{:#?}", event); ++ println!("{}", bytes); +- println!("{:#?}", event); ++ bytes_sent.emit(ByteSize(bytes.len())); + + let finalizers = event.take_finalizers(); + finalizers.update_status(EventStatus::Delivered); + } + + Ok(()) + } +``` + +## EventSent + +[`EventSent`][events_sent] is emitted by each component in Vector to +instrument how many bytes have been sent to the next downstream component. + +Change the body of `run_inner` to look like the following: + +```diff + async fn run_inner(self: Box, mut input: BoxStream<'_, Event>) -> Result<(), ()> { + let bytes_sent = register!(BytesSent::from(Protocol("console".into(),))); ++ let events_sent = register!(EventsSent::from(Output(None))); + + while let Some(mut event) = input.next().await { + let bytes = format!("{:#?}", event); + println!("{}", bytes); + bytes_sent.emit(ByteSize(bytes.len())); + ++ let event_byte_size = event.estimated_json_encoded_size_of(); ++ events_sent.emit(CountByteSize(1, event_byte_size)); + + let finalizers = event.take_finalizers(); + finalizers.update_status(EventStatus::Delivered); + } + + Ok(()) + } +``` + +More details about instrumenting Vector can be found +[here](https://github.com/vectordotdev/vector/blob/master/docs/specs/instrumentation.md). + +# Running our sink + +Let's run our sink. Create the following Vector configuration in `./basic.yml`: + +```yml +sources: + stdin: + type: stdin + +sinks: + basic: + type: basic + inputs: + - stdin +``` + +This simply connects a `stdin` source to our `basic` sink. + +## vdev + +Vector provides a build tool `vdev` that simplifies the task of building Vector. Install +`vdev` using the instructions [here][vdev_install]. + +With `vdev` installed we can run Vector using: + +```sh +cargo vdev run ./basic.yml +``` + +This uses the config file to detect and set the relevant features to build Vector with. + +Without `vdev`, we can run using: + +```sh +cargo run --no-default-features --features "sources-stdin, sinks-basic" -- -c ./basic.yml +``` + +Type some text into the terminal and Vector should output the Debug information +for the log event. + +Our sink works! + + +[event_streams_tracking]: https://github.com/vectordotdev/vector/issues/9261 +[vdev_install]: https://github.com/vectordotdev/vector/tree/master/vdev#installation +[acknowledgements]: https://vector.dev/docs/about/under-the-hood/architecture/end-to-end-acknowledgements/ +[configurable_component]: https://rust-doc.vector.dev/vector_config/attr.configurable_component.html +[generate_config]: https://rust-doc.vector.dev/vector/config/trait.generateconfig +[sink_config]: https://rust-doc.vector.dev/vector/config/trait.sinkconfig +[sink_config_build]: https://rust-doc.vector.dev/vector/config/trait.sinkconfig#tymethod.build +[from_eventstreamsink]: https://rust-doc.vector.dev/vector/sinks/enum.vectorsink#method.from_event_streamsink +[vector_sink]: https://rust-doc.vector.dev/vector/sinks/enum.vectorsink +[stream_sink]: https://rust-doc.vector.dev/vector/sinks/util/trait.streamsink +[sinks_enum]: https://rust-doc.vector.dev/vector/sinks/enum.sinks +[event_status_delivered]: https://rust-doc.vector.dev/vector/event/enum.eventstatus#variant.Delivered +[event_status_errored]: https://rust-doc.vector.dev/vector/event/enum.eventstatus#variant.Errored +[event_status_rejected]: https://rust-doc.vector.dev/vector/event/enum.eventstatus#variant.Rejected +[bytes_sent]: https://rust-doc.vector.dev/vector_common/internal_event/struct.bytessent +[events_sent]: https://rust-doc.vector.dev/vector_common/internal_event/struct.eventssent diff --git a/docs/tutorials/sinks/2_http_sink.md b/docs/tutorials/sinks/2_http_sink.md new file mode 100644 index 0000000000000..ca25791136ecb --- /dev/null +++ b/docs/tutorials/sinks/2_http_sink.md @@ -0,0 +1,568 @@ +Most Vector sinks involve some form of network connectivity. Connecting to a +network requires more involved functionality than we have covered so far in +our basic sink. This tutorial will modify the sink created in the [previous +tutorial][tutorial_1] to send the events to an HTTP endpoint. We will cover a +number of Vector framework components that make adding this functionality easy. + +# Imports + +To start, update our imports to the following: + +```rust +use std::task::Poll; + +use crate::{ + sinks::prelude::*, + http::HttpClient, + internal_events::SinkRequestBuildError, +}; +use vector_core::config::telemetry; +use bytes::Bytes; +``` + +# Configuration + +First we want to update our config to allow an endpoint to be specified. Add +this field to the `BasicConfig` struct: + +```rust + /// The endpoint to send HTTP traffic to. + /// + /// This should include the protocol and host, but can also include the port, path, and any other valid part of a URI. + #[configurable(metadata( + docs::examples = "http://localhost:3000/", + docs::examples = "http://example.com/endpoint/", + ))] + pub endpoint: String, +``` + +Every field in the configuration struct must have a doc comment (`///`). +These are used to generate documentation for the Sink. The metadata +attribute added here is used to generate examples for the documentation. +(This is possible because the config struct is annotated with +`#[configurable_component(sink("basic"))]`). Since the comments here are +used for user-facing documentation they should be good grammar and be +correctly capitalized and punctuated. + +We then want to update our sink to take the endpoint from the config. At the +same time let's create an [`HttpClient`][http_client] that will handle sending +the data. `HttpClient` is our wrapper over [`hyper`][hyper_docs] used to send +data over http. + +Update the `BasicSink` struct to look like: + +```rust +#[derive(Debug, Clone)] +struct BasicSink { + endpoint: String, + client: HttpClient, +} + +impl BasicSink { + pub fn new(config: &BasicConfig) -> Self { + let tls = TlsSettings::from_options(&None).unwrap(); + let client = HttpClient::new(tls, &Default::default()).unwrap(); + let endpoint = config.endpoint.clone(); + + Self { client, endpoint } + } +} +``` + +# Encoder + +Now we want to create an encoder that will take our event and convert it +to raw bytes. + +```rust +#[derive(Clone)] +struct BasicEncoder; +``` + +The Encoder must implement the [`Encoder`][encoder] trait: + +```rust +impl encoding::Encoder for BasicEncoder { + fn encode_input( + &self, + input: Event, + writer: &mut dyn std::io::Write, + ) -> std::io::Result<(usize, GroupedCountByteSize)> { + } +} +``` + +The [`Encoder`][encoder] trait is generic over the type of input that we are +expecting. In our case it is [`Event`][event] since we will be encoding a +single event at a time. Other Sinks may encode a `Vec` if they are +sending batches of events, or they may send a completely different type if each +event is processed in some way prior to encoding. + +[`encode_input`][encoder_encode_input] serializes the event to a String and +writes these bytes. The function also creates a [`GroupedCountByteSize`] +[grouped_count_byte_size] object. This object tracks the size of the event +that is sent by the sink, optionally grouped by the source and service that +originated the event if Vector has been configured to do so. It is necessary to +calculate the sizes in this function since the encode function sometimes drops +fields from the event prior to encoding. We need the size to be calculated after +these fields have been dropped. + +```rust + fn encode_input( + &self, + input: Event, + writer: &mut dyn std::io::Write, + ) -> std::io::Result<(usize, GroupedCountByteSize)> { + let mut byte_size = telemetry().create_request_count_byte_size(); + byte_size.add_event(&input, input.estimated_json_encoded_size_of()); + + let event = serde_json::to_string(&input).unwrap(); + write_all(writer, 1, event.as_bytes()).map(|()| (event.len(), byte_size)) + } +``` + +# Request Builder + +Next we create a request builder that turns the event into a request. The +request that we build here is a struct containing any data required by a [Tower +service][tower] that is responsible for actually sending the data to the +sink's final destination external to Vector, in this case the HTTP endpoint.. +We will build this service shortly. + +The request looks like: + +```rust +#[derive(Clone)] +struct BasicRequest { + payload: Bytes, + finalizers: EventFinalizers, + metadata: RequestMetadata, +} +``` + +## Fields + +The fields in the request are: + +*payload* - the payload is the actual bytes that we will be sending out. These are the bytes +generated by our `BasicEncoder`. + +*finalizers* - [`EventFinalizers`][event_finalizers] is a collection of +`EventFinalizer`s. An [`EventFinalizer`][event_finalizer] is used to track the +status of a given event and is used to support [end to end acknowledgements] +(https://vector.dev/docs/about/under-the-hood/guarantees/#acknowledgement- +guarantees). + +*metadata* - the metadata contains additional data that is used to emit various metrics when +a request is successfully sent. + +## Traits + +We need to implement a number of traits for the request to access these fields: + +```rust +impl MetaDescriptive for BasicRequest { + fn get_metadata(&self) -> &RequestMetadata { + &self.metadata + } + + fn metadata_mut(&mut self) -> &mut RequestMetadata { + &mut self.metadata + } +} + +impl Finalizable for BasicRequest { + fn take_finalizers(&mut self) -> EventFinalizers { + self.finalizers.take_finalizers() + } +} +``` + +The request builder must implement the [`RequestBuilder<>`][request_builder] +trait: + +```rust +impl RequestBuilder for BasicRequestBuilder { +``` + +There are a number of stages in the request builder process: + +1. The input is split out into metadata and actual event data. +2. This event data is encoded using the encoder we created earlier. +3. The results from the encoding are passed along with the metadata to create + the final request that is passed to the [`Tower`][tower] service. + +Here, the trait is generic over [`Event`][event] which is the input type that +is passed in to start the request building process. + +## Associated types + +There are a number of associated types: + +```rust + type Metadata = EventFinalizers; + type Events = Event; + type Encoder = BasicEncoder; + type Payload = Bytes; + type Request = BasicRequest; + type Error = std::io::Error; +``` + +*Metadata* - any information to be passed while building the request +that is additional to the actual event being used. In this case we just need the +[`EventFinalizers`][event_finalizers]. + +*Events* - the event type passed to the [`Encoder`][encoder]. + +*Encoder* - the type that is used to encode the event to create the final +payload. We are using the `BasicEncoder` described earlier. + +*Payload* - the final data that is encoded. + +*Request* - the type that is sent to the final service. This is the `BasicRequest` +we described earlier. + +*Error* - any errors that are creating while encoding the event. + +## Functions + +The following functions for the [`RequestBuilder`][request_builder] trait need +implementing: + +[*compression*][request_builder_compression] - The payload for the built request can be compressed. Here we return +[`Compression::None`][compression_none] to indicate that we will not be compressing. + +```rust + fn compression(&self) -> Compression { + Compression::None + } +``` + +[*encoder*][request_builder_encoder] - We return the encoder to use. This is the `BasicEncoder` defined earlier. + +```rust + fn encoder(&self) -> &Self::Encoder { + &self.encoder + } +``` + +[*split_input*][request_builder_split_input] - takes the input and extracts the +metadata from the events. In this case we are returning the `input` parameter +unprocessed. + +This may not always be the case. For example, the `amqp` sink will initially +process the event to extract fields to be used to calculate the `amqp` +exchange to send the message to. The exchange is bundled with the event to +`split_input`. `split_input` splits that out into the event for encoding and +the metadata containing the exchange which will be used to route the message +when sending the event to an `amqp` server. + +```rust + fn split_input( + &self, + mut input: Event, + ) -> (Self::Metadata, RequestMetadataBuilder, Self::Events) { + let finalizers = input.take_finalizers(); + let metadata_builder = RequestMetadataBuilder::from_event(&input); + (finalizers, metadata_builder, input) + } +``` + +[*build_request*][request_builder_build_request] - used to build the +final request that will contain the encoded payload and the metadata. The +`BasicRequest` object we return here is passed to our `Tower`[tower] service +where the data is actually sent. + +```rust + fn build_request( + &self, + metadata: Self::Metadata, + request_metadata: RequestMetadata, + payload: EncodeResult, + ) -> Self::Request { + BasicRequest { + finalizers: metadata, + payload: payload.into_payload(), + metadata: request_metadata, + } + } +``` + +# Service + +**⚠ NOTE! This section implements an HTTP tower `Service` from scratch, for the +purpose of demonstration only. Many sinks will require implementing `Service` +in this way. Any new HTTP-based sink should ideally utilize the +`HttpService` structure, which abstracts away most of the logic shared +amongst HTTP-based sinks.** + +We need to create a [`Tower`][tower] service that is responsible for actually +sending our final encoded data. + +```rust +struct BasicService { + endpoint: String, + client: HttpClient, +} +``` + +The two fields the service contains, `endpoint` and `client` are the `endpoint` +and `client` passed in from the `BasicSink` described earlier. + +`BasicService` implements the [`tower::Service`][tower_service] trait: + +```rust +impl tower::Service for BasicService { +} +``` + +## Associated types + +A number of associated types need defining: + +```rust + type Response = BasicResponse; + type Error = &'static str; + type Future = BoxFuture<'static, Result>; +``` + +## Functions + +*[poll_ready]* - is called used to indicate when the service is ready to send +data. This service has no reason to block, so we always return `Poll::Ready`. + +```rust + fn poll_ready( + &mut self, + _cx: &mut std::task::Context<'_>, + ) -> std::task::Poll> { + Poll::Ready(Ok(())) + } +``` + +*[call]* - where the data is actually sent over HTTP. It returns a future +that will be invoked to send the actual data. + +```rust + fn call(&mut self, request: BasicRequest) -> Self::Future { + let byte_size = request.payload.len(); + let body = hyper::Body::from(request.payload); + let req = http::Request::post(&self.endpoint) + .header("Content-Type", "application/json") + .body(body) + .unwrap(); + + let mut client = self.client.clone(); + + Box::pin(async move { + match client.call(req).await { + Ok(response) => { + if response.status().is_success() { + Ok(BasicResponse { + byte_size, + json_size: request + .metadata + .into_events_estimated_json_encoded_byte_size(), + }) + } else { + Err("received error response") + } + } + Err(_error) => Err("oops"), + } + }) + } +``` + +That future returns `BasicResponse`. + +# BasicResponse + +The return from our service must be an object that implements the +[`DriverResponse`][driver_response] trait. + +```rust +struct BasicResponse { + byte_size: usize, + json_size: GroupedCountByteSize, +} + +impl DriverResponse for BasicResponse { + fn event_status(&self) -> EventStatus { + EventStatus::Delivered + } + + fn events_sent(&self) -> &GroupedCountByteSize { + &self.json_size + } + + fn bytes_sent(&self) -> Option { + Some(self.byte_size) + }} +``` + +Vector calls the methods in this trait to determine if the event was delivered successfully. +This is used to emit internal metrics and satisfy end to end acknowledgements. + +# Sink + +Finally, we need to update the `run_inner` method of our `BasicSink` trait. + +```rust + async fn run_inner(self: Box, input: BoxStream<'_, Event>) -> Result<(), ()> { + let service = tower::ServiceBuilder::new().service(BasicService { + client: self.client.clone(), + endpoint: self.endpoint.clone(), + }); + + let sink = input + .request_builder( + None, + BasicRequestBuilder { + encoder: BasicEncoder, + }, + ) + .filter_map(|request| async move { + match request { + Err(error) => { + emit!(SinkRequestBuildError { error }); + None + } + Ok(req) => Some(req), + } + }) + .into_driver(service); + + sink.run().await + } +``` + +After creating our service, we run a number of custom extension methods on +`BoxStream` that process the stream of events. + +[*request_builder*][sinkbuilder_ext_request_builder] - indicates which request +builder to use to build our request. We pass in the `BasicRequestBuilder` +described earlier. The first parameter is the limit to the number of concurrent +request builders that should be in operation at any time. We pass `None` which +means no limit is applied. + +[*filter_map*][stream_filter_map] - If building the request errors, we want to +emit an error and then filter the event from being processed further. + +[*into_driver*][sinkbuilder_ext_into_driver] - The [`Driver`][driver] is the +final stage of the process that drives the interaction between the stream of +incoming events and the `BasicService` we created above. + +# Running our sink + +We can now run our new sink. + +Here is a potential `simple_http_server.py` server to accept the responses our sink sends: + +```python +import http.server +import socketserver + + +class RequestHandler(http.server.BaseHTTPRequestHandler): + def do_GET(self): + # Print the request line and headers + print(f"Request Line: {self.requestline}") + print("Headers:") + for header, value in self.headers.items(): + print(f"{header}: {value}") + + # Send a response + self.send_response(200) + self.send_header('Content-type', 'text/html') + self.end_headers() + self.wfile.write(b'GET request received') + + def do_POST(self): + print(f"Request Line: {self.requestline}") + print("Headers:") + for header, value in self.headers.items(): + print(f"{header}: {value}") + + content_length = int(self.headers['Content-Length']) + post_data = self.rfile.read(content_length) + print(f"Body: {post_data.decode('utf-8')}") + + self.send_response(200) + self.send_header('Content-type', 'text/html') + self.end_headers() + self.wfile.write(b'POST request received') + + +PORT = 3000 +Handler = RequestHandler + +with socketserver.TCPServer(("", PORT), Handler) as httpd: + print(f"Serving HTTP on port {PORT}...") + httpd.serve_forever() +``` + +Run the server: + +```sh +python3 simple_http_server.py +``` + +Our sink has a new configuration field for the endpoint. Update it to look like: + +```yaml +sinks: + basic: + type: basic + endpoint: http://localhost:3000 + inputs: + - stdin +``` + +Then run Vector: + +```sh +cargo vdev run ./basic.yml +``` + +If we type something into the console, this should now be sent to our HTTP server: + +```sh +METHOD: POST +URI: / + +HEADERS: +content-type application/json +user-agent Vector/0.26.0 (x86_64-unknown-linux-gnu debug=full) +accept-encoding identity +host localhost:3000 +content-length 131 + +BODY: +{"log":{"host":"computer","message":"zork","source_type":"stdin","timestamp":"2023-01-23T10:21:57.215019942Z"}} +``` + +[tutorial_1]: https://github.com/vectordotdev/vector/tree/master/docs/tutorials/sinks/1_basic_sink.md +[tower]: https://docs.rs/tower/latest/tower/ +[tower_service]: https://docs.rs/tower/latest/tower/trait.Service.html +[hyper_docs]: https://docs.rs/hyper/latest/hyper/ +[poll_ready]: https://docs.rs/tower/latest/tower/trait.Service.html#tymethod.poll_ready +[call]: https://docs.rs/tower/latest/tower/trait.Service.html#tymethod.call +[http_client]: https://rust-doc.vector.dev/vector/http/struct.httpclient +[encoder]: https://rust-doc.vector.dev/vector/sinks/util/encoding/trait.encoder +[event]: https://rust-doc.vector.dev/vector/event/enum.event +[encoder_encode_input]: https://rust-doc.vector.dev/vector/sinks/util/encoding/trait.encoder#tymethod.encode_input +[event_finalizers]: https://rust-doc.vector.dev/vector/event/struct.eventfinalizers +[event_finalizer]: https://rust-doc.vector.dev/vector/event/struct.eventfinalizer +[request_builder]: https://rust-doc.vector.dev/vector/sinks/util/request_builder/trait.requestbuilder +[compression_none]: https://rust-doc.vector.dev/vector/sinks/util/buffer/compression/enum.compression#variant.None +[request_builder_compression]: https://rust-doc.vector.dev/vector/sinks/util/request_builder/trait.requestbuilder#tymethod.compression +[request_builder_encoder]: https://rust-doc.vector.dev/vector/sinks/util/request_builder/trait.requestbuilder#tymethod.encoder +[request_builder_split_input]: https://rust-doc.vector.dev/vector/sinks/util/request_builder/trait.requestbuilder#tymethod.split_input +[request_builder_build_request]: https://rust-doc.vector.dev/vector/sinks/util/request_builder/trait.requestbuilder#tymethod.build_request +[driver_response]: https://rust-doc.vector.dev/vector_core/stream/trait.driverresponse +[sinkbuilder_ext_request_builder]: https://rust-doc.vector.dev/vector/sinks/util/builder/trait.sinkbuilderext#method.request_builder +[sinkbuilder_ext_into_driver]: https://rust-doc.vector.dev/vector/sinks/util/builder/trait.sinkbuilderext#method.into_driver +[stream_filter_map]: https://docs.rs/futures/latest/futures/stream/trait.StreamExt.html#method.filter_map +[driver]: https://rust-doc.vector.dev/vector_core/stream/struct.driver +[grouped_count_byte_size]: https://rust-doc.vector.dev/vector_common/request_metadata/enum.groupedcountbytesize diff --git a/kustomization.yaml b/kustomization.yaml deleted file mode 100644 index 001a5470e036f..0000000000000 --- a/kustomization.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# This is a part of our skaffold setup for development. -# Do not use in production. -# If you're looking for a way to deploy vector, see `distribution/kubernetes` -# and `distribution/helm` directories, and our documentation on the website. - -namespace: vector - -bases: - - distribution/kubernetes/vector-agent - -resources: - - skaffold/manifests/namespace.yaml - - skaffold/manifests/config.yaml - -patchesStrategicMerge: - - skaffold/manifests/patches/env.yaml diff --git a/lib/codec/Cargo.toml b/lib/codec/Cargo.toml deleted file mode 100644 index e5aa487d751b1..0000000000000 --- a/lib/codec/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "codec" -version = "0.1.0" -authors = ["Vector Contributors "] -edition = "2018" -publish = false -license = "MPL-2.0" - -[dependencies] -bytes = "0.5" -tokio-util = { version = "0.3.1", features = ["codec"] } -tracing = "0.1.15" - -[dev-dependencies] -serde_json = "1.0.33" diff --git a/lib/codec/src/lib.rs b/lib/codec/src/lib.rs deleted file mode 100644 index e4a1994e5f2d9..0000000000000 --- a/lib/codec/src/lib.rs +++ /dev/null @@ -1,142 +0,0 @@ -#[macro_use] -extern crate tracing; - -use bytes::{Buf, BufMut, Bytes, BytesMut}; -use std::{cmp, io, usize}; -use tokio_util::codec::{Decoder, Encoder}; - -#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] -pub struct BytesDelimitedCodec { - delim: u8, - max_length: usize, - is_discarding: bool, - next_index: usize, -} - -impl BytesDelimitedCodec { - /// Returns a `BytesDelimitedCodec` with the specified delimiter. - pub fn new(delim: u8) -> Self { - BytesDelimitedCodec { - delim, - max_length: usize::MAX, - is_discarding: false, - next_index: 0, - } - } - - /// Returns a `BytesDelimitedCodec` with a maximum frame length limit. - pub fn new_with_max_length(delim: u8, max_length: usize) -> Self { - BytesDelimitedCodec { - max_length, - ..BytesDelimitedCodec::new(delim) - } - } - - /// Returns the maximum frame length when decoding. - pub fn max_length(&self) -> usize { - self.max_length - } -} - -impl Decoder for BytesDelimitedCodec { - type Item = Bytes; - type Error = io::Error; - - fn decode(&mut self, buf: &mut BytesMut) -> Result, io::Error> { - loop { - // Determine how far into the buffer we'll search for a newline. If - // there's no max_length set, we'll read to the end of the buffer. - let read_to = cmp::min(self.max_length.saturating_add(1), buf.len()); - - let newline_pos = buf[self.next_index..read_to] - .iter() - .position(|b| *b == self.delim); - - match (self.is_discarding, newline_pos) { - (true, Some(offset)) => { - // If we found a newline, discard up to that offset and - // then stop discarding. On the next iteration, we'll try - // to read a line normally. - buf.advance(offset + self.next_index + 1); - self.is_discarding = false; - self.next_index = 0; - } - (true, None) => { - // Otherwise, we didn't find a newline, so we'll discard - // everything we read. On the next iteration, we'll continue - // discarding up to max_len bytes unless we find a newline. - buf.advance(read_to); - self.next_index = 0; - if buf.is_empty() { - return Ok(None); - } - } - (false, Some(pos)) => { - // We found a correct frame - - let newpos_index = pos + self.next_index; - self.next_index = 0; - let mut frame = buf.split_to(newpos_index + 1); - - trace!( - message = "Decoding the frame.", - bytes_proccesed = frame.len() - ); - - let frame = frame.split_to(frame.len() - 1); - - return Ok(Some(frame.freeze())); - } - (false, None) if buf.len() > self.max_length => { - // We reached the max length without finding the - // delimiter so must discard the rest until we - // reach the next delimiter - self.is_discarding = true; - warn!( - message = "Discarding frame larger than max_length.", - buf_len = buf.len(), - max_length = self.max_length, - internal_log_rate_secs = 30 - ); - return Ok(None); - } - (false, None) => { - // We didn't find the delimiter and didn't - // reach the max frame length. - self.next_index = read_to; - return Ok(None); - } - } - } - } - - fn decode_eof(&mut self, buf: &mut BytesMut) -> Result, io::Error> { - let frame = match self.decode(buf)? { - Some(frame) => Some(frame), - None if !buf.is_empty() && !self.is_discarding => { - let frame = buf.split_to(buf.len()); - self.next_index = 0; - - Some(frame.into()) - } - _ => None, - }; - - Ok(frame) - } -} - -impl Encoder for BytesDelimitedCodec -where - T: AsRef<[u8]>, -{ - type Error = io::Error; - - fn encode(&mut self, item: T, buf: &mut BytesMut) -> Result<(), io::Error> { - let item = item.as_ref(); - buf.reserve(item.len() + 1); - buf.put(item); - buf.put_u8(self.delim); - Ok(()) - } -} diff --git a/lib/codec/tests/bytes_delim.rs b/lib/codec/tests/bytes_delim.rs deleted file mode 100644 index 3dcdfc1485e04..0000000000000 --- a/lib/codec/tests/bytes_delim.rs +++ /dev/null @@ -1,145 +0,0 @@ -use bytes::{BufMut, BytesMut}; -use codec::BytesDelimitedCodec; -use std::collections::HashMap; -use tokio_util::codec::{Decoder, Encoder}; - -#[test] -fn bytes_delim_decode() { - let mut codec = BytesDelimitedCodec::new(b'\n'); - let buf = &mut BytesMut::new(); - buf.put_slice(b"abc\n"); - assert_eq!(Some("abc".into()), codec.decode(buf).unwrap()); -} - -#[test] -fn bytes_delim_encode() { - let mut codec = BytesDelimitedCodec::new(b'\n'); - - let mut buf = BytesMut::new(); - codec.encode(b"abc", &mut buf).unwrap(); - - assert_eq!(b"abc\n", &buf[..]); -} - -#[test] -fn bytes_decode_max_length() { - const MAX_LENGTH: usize = 6; - - let mut codec = BytesDelimitedCodec::new_with_max_length(b'\n', MAX_LENGTH); - let buf = &mut BytesMut::new(); - - buf.reserve(200); - // limit is 6 so this should fail - buf.put_slice(b"1234567\n123456\n123412314\n123"); - - assert!(codec.decode(buf).unwrap().is_none()); - assert!(codec.decode(buf).unwrap().is_some()); - assert!(codec.decode_eof(buf).unwrap().is_none()); - assert!(codec.decode_eof(buf).unwrap().is_some()); -} - -// Regression test for [infinite loop bug](https://github.com/timberio/vector/issues/2564) -// Derived from https://github.com/tokio-rs/tokio/issues/1483 -#[test] -fn bytes_decoder_discard_repeat() { - const MAX_LENGTH: usize = 1; - - let mut codec = BytesDelimitedCodec::new_with_max_length(b'\n', MAX_LENGTH); - let buf = &mut BytesMut::new(); - - buf.reserve(200); - buf.put(&b"aa"[..]); - assert!(codec.decode(buf).unwrap().is_none()); - buf.put(&b"a"[..]); - assert!(codec.decode(buf).unwrap().is_none()); -} - -#[test] -fn bytes_decode_json_escaped() { - let mut input = HashMap::new(); - input.insert("key", "value"); - input.insert("new", "li\nne"); - - let mut bytes = serde_json::to_vec(&input).unwrap(); - bytes.push(b'\n'); - - let mut codec = BytesDelimitedCodec::new(b'\n'); - let buf = &mut BytesMut::new(); - - buf.reserve(bytes.len()); - buf.extend(bytes); - - let result = codec.decode(buf).unwrap(); - - assert!(result.is_some()); - assert!(buf.is_empty()); -} - -#[test] -fn bytes_decode_json_multiline() { - let events = r#" -{"log":"\u0009at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\n","stream":"stdout","time":"2019-01-18T07:49:27.374616758Z"} -{"log":"\u0009at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n","stream":"stdout","time":"2019-01-18T07:49:27.374640288Z"} -{"log":"\u0009at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\n","stream":"stdout","time":"2019-01-18T07:49:27.374655505Z"} -{"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.374671955Z"} -{"log":"\u0009at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n","stream":"stdout","time":"2019-01-18T07:49:27.374690312Z"} -{"log":"\u0009at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\n","stream":"stdout","time":"2019-01-18T07:49:27.374704522Z"} -{"log":"\u0009at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\n","stream":"stdout","time":"2019-01-18T07:49:27.374718459Z"} -{"log":"\u0009at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\n","stream":"stdout","time":"2019-01-18T07:49:27.374732919Z"} -{"log":"\u0009at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\n","stream":"stdout","time":"2019-01-18T07:49:27.374750799Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.374764819Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.374778682Z"} -{"log":"\u0009at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n","stream":"stdout","time":"2019-01-18T07:49:27.374792429Z"} -{"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.374805985Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.374819625Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.374833335Z"} -{"log":"\u0009at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n","stream":"stdout","time":"2019-01-18T07:49:27.374847845Z"} -{"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.374861925Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.37487589Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.374890043Z"} -{"log":"\u0009at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)\n","stream":"stdout","time":"2019-01-18T07:49:27.374903813Z"} -{"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.374917793Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.374931586Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.374946006Z"} -{"log":"\u0009at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:117)\n","stream":"stdout","time":"2019-01-18T07:49:27.37496104Z"} -{"log":"\u0009at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:106)\n","stream":"stdout","time":"2019-01-18T07:49:27.37498773Z"} -{"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.375003113Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.375017063Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.37503086Z"} -{"log":"\u0009at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n","stream":"stdout","time":"2019-01-18T07:49:27.3750454Z"} -{"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.37505928Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.37507306Z"} -{"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.375086726Z"} -{"log":"\u0009at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n","stream":"stdout","time":"2019-01-18T07:49:27.375100817Z"} -{"log":"\u0009at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n","stream":"stdout","time":"2019-01-18T07:49:27.375115354Z"} -{"log":"\u0009at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\n","stream":"stdout","time":"2019-01-18T07:49:27.375129454Z"} -{"log":"\u0009at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n","stream":"stdout","time":"2019-01-18T07:49:27.375144001Z"} -{"log":"\u0009at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\n","stream":"stdout","time":"2019-01-18T07:49:27.375157464Z"} -{"log":"\u0009at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n","stream":"stdout","time":"2019-01-18T07:49:27.375170981Z"} -{"log":"\u0009at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n","stream":"stdout","time":"2019-01-18T07:49:27.375184417Z"} -{"log":"\u0009at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\n","stream":"stdout","time":"2019-01-18T07:49:27.375198024Z"} -{"log":"\u0009at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n","stream":"stdout","time":"2019-01-18T07:49:27.375211594Z"} -{"log":"\u0009at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)\n","stream":"stdout","time":"2019-01-18T07:49:27.375225237Z"} -{"log":"\u0009at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)\n","stream":"stdout","time":"2019-01-18T07:49:27.375239487Z"} -{"log":"\u0009at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n","stream":"stdout","time":"2019-01-18T07:49:27.375253464Z"} -{"log":"\u0009at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n","stream":"stdout","time":"2019-01-18T07:49:27.375323255Z"} -{"log":"\u0009at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n","stream":"stdout","time":"2019-01-18T07:49:27.375345642Z"} -{"log":"\u0009at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n","stream":"stdout","time":"2019-01-18T07:49:27.375363208Z"} -{"log":"\u0009at java.lang.Thread.run(Thread.java:748)\n","stream":"stdout","time":"2019-01-18T07:49:27.375377695Z"} -{"log":"\n","stream":"stdout","time":"2019-01-18T07:49:27.375391335Z"} -{"log":"\n","stream":"stdout","time":"2019-01-18T07:49:27.375416915Z"} -{"log":"2019-01-18 07:53:06.419 [ ] INFO 1 --- [vent-bus.prod-1] c.t.listener.CommonListener : warehousing Dailywarehousing.daily\n","stream":"stdout","time":"2019-01-18T07:53:06.420527437Z"} -"#; - - let mut codec = BytesDelimitedCodec::new(b'\n'); - let buf = &mut BytesMut::new(); - - buf.extend(events.to_string().as_bytes()); - - let mut i = 0; - while codec.decode(buf).unwrap().is_some() { - i += 1; - } - - assert_eq!(i, 52); -} diff --git a/lib/codecs/Cargo.toml b/lib/codecs/Cargo.toml new file mode 100644 index 0000000000000..722400ac595aa --- /dev/null +++ b/lib/codecs/Cargo.toml @@ -0,0 +1,55 @@ +[package] +name = "codecs" +version = "0.1.0" +authors = ["Vector Contributors "] +edition = "2021" +publish = false + +[[bin]] +name = "generate-avro-fixtures" +path = "tests/bin/generate-avro-fixtures.rs" + +[dependencies] +apache-avro = { version = "0.16.0", default-features = false } +bytes = { version = "1", default-features = false } +chrono.workspace = true +csv-core = { version = "0.1.10", default-features = false } +derivative = { version = "2", default-features = false } +dyn-clone = { version = "1", default-features = false } +flate2.workspace = true +influxdb-line-protocol = { version = "2", default-features = false } +lookup = { package = "vector-lookup", path = "../vector-lookup", default-features = false, features = ["test"] } +memchr = { version = "2", default-features = false } +ordered-float = { version = "4.6.0", default-features = false } +prost.workspace = true +prost-reflect.workspace = true +rand.workspace = true +regex = { version = "1.11.1", default-features = false, features = ["std", "perf"] } +serde.workspace = true +serde_with = { version = "3.12.0", default-features = false, features = ["std", "macros", "chrono_0_4"] } +serde_json.workspace = true +smallvec = { version = "1", default-features = false, features = ["union"] } +snafu.workspace = true +syslog_loose = { version = "0.21", default-features = false, optional = true } +tokio-util = { version = "0.7", default-features = false, features = ["codec"] } +tokio.workspace = true +tracing = { version = "0.1", default-features = false } +vrl.workspace = true +vector-common = { path = "../vector-common", default-features = false } +vector-config = { path = "../vector-config", default-features = false } +vector-config-macros = { path = "../vector-config-macros", default-features = false } +vector-core = { path = "../vector-core", default-features = false, features = ["vrl"] } + +[dev-dependencies] +futures.workspace = true +indoc = { version = "2", default-features = false } +tokio = { version = "1", features = ["test-util"] } +similar-asserts = "1.6.1" +vector-core = { path = "../vector-core", default-features = false, features = ["vrl", "test"] } +rstest = "0.24.0" +tracing-test = "0.2.5" +uuid.workspace = true +vrl.workspace = true + +[features] +syslog = ["dep:syslog_loose"] diff --git a/lib/codecs/src/common/length_delimited.rs b/lib/codecs/src/common/length_delimited.rs new file mode 100644 index 0000000000000..ae211beb88d43 --- /dev/null +++ b/lib/codecs/src/common/length_delimited.rs @@ -0,0 +1,66 @@ +use tokio_util::codec::LengthDelimitedCodec; +use vector_config::configurable_component; + +/// Options for building a `LengthDelimitedDecoder` or `LengthDelimitedEncoder`. +#[configurable_component] +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct LengthDelimitedCoderOptions { + /// Maximum frame length + #[serde(default = "default_max_frame_length")] + pub max_frame_length: usize, + + /// Number of bytes representing the field length + #[serde(default = "default_length_field_length")] + pub length_field_length: usize, + + /// Number of bytes in the header before the length field + #[serde(default = "default_length_field_offset")] + pub length_field_offset: usize, + + /// Length field byte order (little or big endian) + #[serde(default = "default_length_field_is_big_endian")] + pub length_field_is_big_endian: bool, +} + +const fn default_max_frame_length() -> usize { + 8 * 1_024 * 1_024 +} + +const fn default_length_field_length() -> usize { + 4 +} + +const fn default_length_field_offset() -> usize { + 0 +} + +const fn default_length_field_is_big_endian() -> bool { + true +} + +impl Default for LengthDelimitedCoderOptions { + fn default() -> Self { + Self { + max_frame_length: default_max_frame_length(), + length_field_length: default_length_field_length(), + length_field_offset: default_length_field_offset(), + length_field_is_big_endian: default_length_field_is_big_endian(), + } + } +} + +impl LengthDelimitedCoderOptions { + pub fn build_codec(&self) -> LengthDelimitedCodec { + let mut builder = tokio_util::codec::LengthDelimitedCodec::builder() + .length_field_length(self.length_field_length) + .length_field_offset(self.length_field_offset) + .max_frame_length(self.max_frame_length) + .to_owned(); + if self.length_field_is_big_endian { + builder.big_endian(); + } else { + builder.little_endian(); + }; + builder.new_codec() + } +} diff --git a/lib/codecs/src/common/mod.rs b/lib/codecs/src/common/mod.rs new file mode 100644 index 0000000000000..e2d14804f7d3b --- /dev/null +++ b/lib/codecs/src/common/mod.rs @@ -0,0 +1,3 @@ +//! A collection of common utility features used by both encoding and decoding logic. + +pub mod length_delimited; diff --git a/lib/codecs/src/decoding/error.rs b/lib/codecs/src/decoding/error.rs new file mode 100644 index 0000000000000..8133e3ebdb237 --- /dev/null +++ b/lib/codecs/src/decoding/error.rs @@ -0,0 +1,29 @@ +#![deny(missing_docs)] + +use tokio_util::codec::LinesCodecError; + +/// An error that occurs while decoding a stream. +pub trait StreamDecodingError { + /// Whether it is reasonable to assume that continuing to read from the + /// stream in which this error occurred will not result in an indefinite + /// hang up. + /// + /// This can occur e.g. when reading the header of a length-delimited codec + /// failed and it can no longer be determined where the next header starts. + fn can_continue(&self) -> bool; +} + +impl StreamDecodingError for LinesCodecError { + fn can_continue(&self) -> bool { + match self { + LinesCodecError::MaxLineLengthExceeded => true, + LinesCodecError::Io(error) => error.can_continue(), + } + } +} + +impl StreamDecodingError for std::io::Error { + fn can_continue(&self) -> bool { + false + } +} diff --git a/lib/codecs/src/decoding/format/avro.rs b/lib/codecs/src/decoding/format/avro.rs new file mode 100644 index 0000000000000..7a49763179891 --- /dev/null +++ b/lib/codecs/src/decoding/format/avro.rs @@ -0,0 +1,342 @@ +use super::Deserializer; +use crate::encoding::AvroSerializerOptions; +use bytes::Buf; +use bytes::Bytes; +use chrono::Utc; +use lookup::event_path; +use serde::{Deserialize, Serialize}; +use smallvec::{smallvec, SmallVec}; +use vector_config::configurable_component; +use vector_core::{ + config::{log_schema, DataType, LogNamespace}, + event::{Event, LogEvent}, + schema, +}; +use vrl::value::KeyString; + +type VrlValue = vrl::value::Value; +type AvroValue = apache_avro::types::Value; + +const CONFLUENT_MAGIC_BYTE: u8 = 0; +const CONFLUENT_SCHEMA_PREFIX_LEN: usize = 5; + +/// Config used to build a `AvroDeserializer`. +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct AvroDeserializerConfig { + /// Options for the Avro deserializer. + pub avro_options: AvroDeserializerOptions, +} + +impl AvroDeserializerConfig { + /// Creates a new `AvroDeserializerConfig`. + pub const fn new(schema: String, strip_schema_id_prefix: bool) -> Self { + Self { + avro_options: AvroDeserializerOptions { + schema, + strip_schema_id_prefix, + }, + } + } + + /// Build the `AvroDeserializer` from this configuration. + pub fn build(&self) -> AvroDeserializer { + let schema = apache_avro::Schema::parse_str(&self.avro_options.schema) + .map_err(|error| format!("Failed building Avro serializer: {}", error)) + .unwrap(); + AvroDeserializer { + schema, + strip_schema_id_prefix: self.avro_options.strip_schema_id_prefix, + } + } + + /// The data type of events that are accepted by `AvroDeserializer`. + pub fn output_type(&self) -> DataType { + DataType::Log + } + + /// The schema required by the serializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + match log_namespace { + LogNamespace::Legacy => { + let mut definition = schema::Definition::empty_legacy_namespace() + .unknown_fields(vrl::value::Kind::any()); + + if let Some(timestamp_key) = log_schema().timestamp_key() { + definition = definition.try_with_field( + timestamp_key, + vrl::value::Kind::any().or_timestamp(), + Some("timestamp"), + ); + } + definition + } + LogNamespace::Vector => schema::Definition::new_with_default_metadata( + vrl::value::Kind::any(), + [log_namespace], + ), + } + } +} + +impl From<&AvroDeserializerOptions> for AvroSerializerOptions { + fn from(value: &AvroDeserializerOptions) -> Self { + Self { + schema: value.schema.clone(), + } + } +} +/// Apache Avro serializer options. +#[configurable_component] +#[derive(Clone, Debug)] +pub struct AvroDeserializerOptions { + /// The Avro schema definition. + /// Please note that the following [`apache_avro::types::Value`] variants are currently *not* supported: + /// * `Date` + /// * `Decimal` + /// * `Duration` + /// * `Fixed` + /// * `TimeMillis` + #[configurable(metadata( + docs::examples = r#"{ "type": "record", "name": "log", "fields": [{ "name": "message", "type": "string" }] }"#, + docs::additional_props_description = r#"Supports most avro data types, unsupported data types includes + ["decimal", "duration", "local-timestamp-millis", "local-timestamp-micros"]"#, + ))] + pub schema: String, + + /// For Avro datum encoded in Kafka messages, the bytes are prefixed with the schema ID. Set this to true to strip the schema ID prefix. + /// According to [Confluent Kafka's document](https://docs.confluent.io/platform/current/schema-registry/fundamentals/serdes-develop/index.html#wire-format). + pub strip_schema_id_prefix: bool, +} + +/// Serializer that converts bytes to an `Event` using the Apache Avro format. +#[derive(Debug, Clone)] +pub struct AvroDeserializer { + schema: apache_avro::Schema, + strip_schema_id_prefix: bool, +} + +impl AvroDeserializer { + /// Creates a new `AvroDeserializer`. + pub const fn new(schema: apache_avro::Schema, strip_schema_id_prefix: bool) -> Self { + Self { + schema, + strip_schema_id_prefix, + } + } +} + +impl Deserializer for AvroDeserializer { + fn parse( + &self, + bytes: Bytes, + log_namespace: LogNamespace, + ) -> vector_common::Result> { + // Avro has a `null` type which indicates no value. + if bytes.is_empty() { + return Ok(smallvec![]); + } + + let bytes = if self.strip_schema_id_prefix { + if bytes.len() >= CONFLUENT_SCHEMA_PREFIX_LEN && bytes[0] == CONFLUENT_MAGIC_BYTE { + bytes.slice(CONFLUENT_SCHEMA_PREFIX_LEN..) + } else { + return Err(vector_common::Error::from( + "Expected avro datum to be prefixed with schema id", + )); + } + } else { + bytes + }; + + let value = apache_avro::from_avro_datum(&self.schema, &mut bytes.reader(), None)?; + + let apache_avro::types::Value::Record(fields) = value else { + return Err(vector_common::Error::from("Expected an avro Record")); + }; + + let mut log = LogEvent::default(); + for (k, v) in fields { + log.insert(event_path!(k.as_str()), try_from(v)?); + } + + let mut event = Event::Log(log); + let event = match log_namespace { + LogNamespace::Vector => event, + LogNamespace::Legacy => { + if let Some(timestamp_key) = log_schema().timestamp_key_target_path() { + let log = event.as_mut_log(); + if !log.contains(timestamp_key) { + let timestamp = Utc::now(); + log.insert(timestamp_key, timestamp); + } + } + event + } + }; + Ok(smallvec![event]) + } +} + +// Can't use std::convert::TryFrom because of orphan rules +pub fn try_from(value: AvroValue) -> vector_common::Result { + // Very similar to avro to json see `impl std::convert::TryFrom for serde_json::Value` + // LogEvent has native support for bytes, so it is used for Bytes and Fixed + match value { + AvroValue::Array(array) => { + let mut vector = Vec::new(); + for item in array { + vector.push(try_from(item)?); + } + Ok(VrlValue::Array(vector)) + } + AvroValue::Boolean(boolean) => Ok(VrlValue::from(boolean)), + AvroValue::Bytes(bytes) => Ok(VrlValue::from(bytes)), + AvroValue::Date(_) => Err(vector_common::Error::from( + "AvroValue::Date is not supported", + )), + AvroValue::Decimal(_) => Err(vector_common::Error::from( + "AvroValue::Decimal is not supported", + )), + AvroValue::Double(double) => Ok(VrlValue::from_f64_or_zero(double)), + AvroValue::Duration(_) => Err(vector_common::Error::from( + "AvroValue::Duration is not supported", + )), + AvroValue::Enum(_, string) => Ok(VrlValue::from(string)), + AvroValue::Fixed(_, _) => Err(vector_common::Error::from( + "AvroValue::Fixed is not supported", + )), + AvroValue::Float(float) => Ok(VrlValue::from_f64_or_zero(float as f64)), + AvroValue::Int(int) => Ok(VrlValue::from(int)), + AvroValue::Long(long) => Ok(VrlValue::from(long)), + AvroValue::Map(items) => items + .into_iter() + .map(|(key, value)| try_from(value).map(|v| (KeyString::from(key), v))) + .collect::, _>>() + .map(|v| VrlValue::Object(v.into_iter().collect())), + AvroValue::Null => Ok(VrlValue::Null), + AvroValue::Record(items) => items + .into_iter() + .map(|(key, value)| try_from(value).map(|v| (KeyString::from(key), v))) + .collect::, _>>() + .map(|v| VrlValue::Object(v.into_iter().collect())), + AvroValue::String(string) => Ok(VrlValue::from(string)), + AvroValue::TimeMicros(time_micros) => Ok(VrlValue::from(time_micros)), + AvroValue::TimeMillis(_) => Err(vector_common::Error::from( + "AvroValue::TimeMillis is not supported", + )), + AvroValue::TimestampMicros(ts_micros) => Ok(VrlValue::from(ts_micros)), + AvroValue::TimestampMillis(ts_millis) => Ok(VrlValue::from(ts_millis)), + AvroValue::Union(_, v) => try_from(*v), + AvroValue::Uuid(uuid) => Ok(VrlValue::from(uuid.as_hyphenated().to_string())), + AvroValue::LocalTimestampMillis(ts_millis) => Ok(VrlValue::from(ts_millis)), + AvroValue::LocalTimestampMicros(ts_micros) => Ok(VrlValue::from(ts_micros)), + } +} + +#[cfg(test)] +mod tests { + use apache_avro::Schema; + use bytes::BytesMut; + use uuid::Uuid; + + use super::*; + + #[derive(Debug, Clone, Serialize, Deserialize)] + struct Log { + message: String, + } + + fn get_schema() -> Schema { + let schema = String::from( + r#"{ + "type": "record", + "name": "log", + "fields": [ + { + "name": "message", + "type": "string" + } + ] + } + "#, + ); + + Schema::parse_str(&schema).unwrap() + } + + #[test] + fn deserialize_avro() { + let schema = get_schema(); + + let event = Log { + message: "hello from avro".to_owned(), + }; + let record_value = apache_avro::to_value(event).unwrap(); + let record_datum = apache_avro::to_avro_datum(&schema, record_value).unwrap(); + let record_bytes = Bytes::from(record_datum); + + let deserializer = AvroDeserializer::new(schema, false); + let events = deserializer + .parse(record_bytes, LogNamespace::Vector) + .unwrap(); + assert_eq!(events.len(), 1); + + assert_eq!( + events[0].as_log().get("message").unwrap(), + &VrlValue::from("hello from avro") + ); + } + + #[test] + fn deserialize_avro_strip_schema_id_prefix() { + let schema = get_schema(); + + let event = Log { + message: "hello from avro".to_owned(), + }; + let record_value = apache_avro::to_value(event).unwrap(); + let record_datum = apache_avro::to_avro_datum(&schema, record_value).unwrap(); + + let mut bytes = BytesMut::new(); + bytes.extend([0, 0, 0, 0, 0]); // 0 prefix + 4 byte schema id + bytes.extend(record_datum); + + let deserializer = AvroDeserializer::new(schema, true); + let events = deserializer + .parse(bytes.freeze(), LogNamespace::Vector) + .unwrap(); + assert_eq!(events.len(), 1); + + assert_eq!( + events[0].as_log().get("message").unwrap(), + &VrlValue::from("hello from avro") + ); + } + + #[test] + fn deserialize_avro_uuid() { + let schema = get_schema(); + + let uuid = Uuid::new_v4().hyphenated().to_string(); + let event = Log { + message: uuid.clone(), + }; + let value = apache_avro::to_value(event).unwrap(); + // let value = value.resolve(&schema).unwrap(); + let datum = apache_avro::to_avro_datum(&schema, value).unwrap(); + + let mut bytes = BytesMut::new(); + bytes.extend([0, 0, 0, 0, 0]); // 0 prefix + 4 byte schema id + bytes.extend(datum); + + let deserializer = AvroDeserializer::new(schema, true); + let events = deserializer + .parse(bytes.freeze(), LogNamespace::Vector) + .unwrap(); + assert_eq!(events.len(), 1); + assert_eq!( + events[0].as_log().get("message").unwrap(), + &VrlValue::from(uuid) + ); + } +} diff --git a/lib/codecs/src/decoding/format/bytes.rs b/lib/codecs/src/decoding/format/bytes.rs new file mode 100644 index 0000000000000..06a97b67c2950 --- /dev/null +++ b/lib/codecs/src/decoding/format/bytes.rs @@ -0,0 +1,122 @@ +use bytes::Bytes; +use lookup::OwnedTargetPath; +use serde::{Deserialize, Serialize}; +use smallvec::{smallvec, SmallVec}; +use vector_core::config::LogNamespace; +use vector_core::schema::meaning; +use vector_core::{ + config::{log_schema, DataType}, + event::{Event, LogEvent}, + schema, +}; +use vrl::value::Kind; + +use super::Deserializer; + +/// Config used to build a `BytesDeserializer`. +#[derive(Debug, Clone, Default, Deserialize, Serialize)] +pub struct BytesDeserializerConfig; + +impl BytesDeserializerConfig { + /// Creates a new `BytesDeserializerConfig`. + pub const fn new() -> Self { + Self + } + + /// Build the `BytesDeserializer` from this configuration. + pub fn build(&self) -> BytesDeserializer { + BytesDeserializer + } + + /// Return the type of event build by this deserializer. + pub fn output_type(&self) -> DataType { + DataType::Log + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + match log_namespace { + LogNamespace::Legacy => { + let definition = schema::Definition::empty_legacy_namespace(); + if let Some(message_key) = log_schema().message_key() { + return definition.with_event_field( + message_key, + Kind::bytes(), + Some(meaning::MESSAGE), + ); + } + definition + } + LogNamespace::Vector => { + schema::Definition::new_with_default_metadata(Kind::bytes(), [log_namespace]) + .with_meaning(OwnedTargetPath::event_root(), "message") + } + } + } +} + +/// Deserializer that converts bytes to an `Event`. +/// +/// This deserializer can be considered as the no-op action for input where no +/// further decoding has been specified. +#[derive(Debug, Clone)] +pub struct BytesDeserializer; + +impl BytesDeserializer { + /// Deserializes the given bytes, which will always produce a single `LogEvent`. + pub fn parse_single(&self, bytes: Bytes, log_namespace: LogNamespace) -> LogEvent { + match log_namespace { + LogNamespace::Vector => log_namespace.new_log_from_data(bytes), + LogNamespace::Legacy => { + let mut log = LogEvent::default(); + log.maybe_insert(log_schema().message_key_target_path(), bytes); + log + } + } + } +} + +impl Deserializer for BytesDeserializer { + fn parse( + &self, + bytes: Bytes, + log_namespace: LogNamespace, + ) -> vector_common::Result> { + let log = self.parse_single(bytes, log_namespace); + Ok(smallvec![log.into()]) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use vrl::value::Value; + + #[test] + fn deserialize_bytes_legacy_namespace() { + let input = Bytes::from("foo"); + let deserializer = BytesDeserializer; + + let events = deserializer.parse(input, LogNamespace::Legacy).unwrap(); + let mut events = events.into_iter(); + + { + let event = events.next().unwrap(); + let log = event.as_log(); + assert_eq!(*log.get_message().unwrap(), "foo".into()); + } + + assert_eq!(events.next(), None); + } + + #[test] + fn deserialize_bytes_vector_namespace() { + let input = Bytes::from("foo"); + let deserializer = BytesDeserializer; + + let events = deserializer.parse(input, LogNamespace::Vector).unwrap(); + assert_eq!(events.len(), 1); + + assert_eq!(events[0].as_log().get(".").unwrap(), &Value::from("foo")); + } +} diff --git a/lib/codecs/src/decoding/format/gelf.rs b/lib/codecs/src/decoding/format/gelf.rs new file mode 100644 index 0000000000000..c37924072ffa6 --- /dev/null +++ b/lib/codecs/src/decoding/format/gelf.rs @@ -0,0 +1,409 @@ +use bytes::Bytes; +use chrono::{DateTime, Utc}; +use derivative::Derivative; +use lookup::{event_path, owned_value_path}; +use serde::{Deserialize, Serialize}; +use serde_with::{serde_as, TimestampSecondsWithFrac}; +use smallvec::{smallvec, SmallVec}; +use std::collections::HashMap; +use vector_config::configurable_component; +use vector_core::config::LogNamespace; +use vector_core::{ + config::{log_schema, DataType}, + event::Event, + event::LogEvent, + schema, +}; +use vrl::value::kind::Collection; +use vrl::value::{Kind, Value}; + +use super::{default_lossy, Deserializer}; +use crate::gelf::GELF_TARGET_PATHS; +use crate::{gelf_fields::*, VALID_FIELD_REGEX}; + +// On GELF decoding behavior: +// Graylog has a relaxed decoding. They are much more lenient than the spec would +// suggest. We've elected to take a more strict approach to maintain backwards compatibility +// in the event that we need to change the behavior to be more relaxed, so that prior versions +// of vector will still work with the new relaxed decoding. +// +// Additionally, Graylog's own GELF Output produces GELF messages with any field names present +// in the sending Stream, exceeding the specified field name character set. + +/// Config used to build a `GelfDeserializer`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct GelfDeserializerConfig { + /// GELF-specific decoding options. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub gelf: GelfDeserializerOptions, +} + +impl GelfDeserializerConfig { + /// Creates a new `GelfDeserializerConfig`. + pub fn new(options: GelfDeserializerOptions) -> Self { + Self { gelf: options } + } + + /// Build the `GelfDeserializer` from this configuration. + pub fn build(&self) -> GelfDeserializer { + GelfDeserializer { + lossy: self.gelf.lossy, + } + } + + /// Return the type of event built by this deserializer. + pub fn output_type(&self) -> DataType { + DataType::Log + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + schema::Definition::new_with_default_metadata( + Kind::object(Collection::empty()), + [log_namespace], + ) + .with_event_field(&owned_value_path!(VERSION), Kind::bytes(), None) + .with_event_field(&owned_value_path!(HOST), Kind::bytes(), None) + .with_event_field(&owned_value_path!(SHORT_MESSAGE), Kind::bytes(), None) + .optional_field(&owned_value_path!(FULL_MESSAGE), Kind::bytes(), None) + .optional_field(&owned_value_path!(TIMESTAMP), Kind::timestamp(), None) + .optional_field(&owned_value_path!(LEVEL), Kind::integer(), None) + .optional_field(&owned_value_path!(FACILITY), Kind::bytes(), None) + .optional_field(&owned_value_path!(LINE), Kind::integer(), None) + .optional_field(&owned_value_path!(FILE), Kind::bytes(), None) + // Every field with an underscore (_) prefix will be treated as an additional field. + // Allowed characters in field names are any word character (letter, number, underscore), dashes and dots. + // Libraries SHOULD not allow to send id as additional field ( _id). Graylog server nodes omit this field automatically. + .unknown_fields(Kind::bytes().or_integer().or_float()) + } +} + +/// GELF-specific decoding options. +#[configurable_component] +#[derive(Debug, Clone, PartialEq, Eq, Derivative)] +#[derivative(Default)] +pub struct GelfDeserializerOptions { + /// Determines whether or not to replace invalid UTF-8 sequences instead of failing. + /// + /// When true, invalid UTF-8 sequences are replaced with the [`U+FFFD REPLACEMENT CHARACTER`][U+FFFD]. + /// + /// [U+FFFD]: https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character + #[serde( + default = "default_lossy", + skip_serializing_if = "vector_core::serde::is_default" + )] + #[derivative(Default(value = "default_lossy()"))] + pub lossy: bool, +} + +/// Deserializer that builds an `Event` from a byte frame containing a GELF log message. +#[derive(Debug, Clone, Derivative)] +#[derivative(Default)] +pub struct GelfDeserializer { + #[derivative(Default(value = "default_lossy()"))] + lossy: bool, +} + +impl GelfDeserializer { + /// Create a new `GelfDeserializer`. + pub fn new(lossy: bool) -> GelfDeserializer { + GelfDeserializer { lossy } + } + + /// Builds a LogEvent from the parsed GelfMessage. + /// The logic follows strictly the documented GELF standard. + fn message_to_event(&self, parsed: &GelfMessage) -> vector_common::Result { + let mut log = LogEvent::from_str_legacy(parsed.short_message.to_string()); + + // GELF spec defines the version as 1.1 which has not changed since 2013 + if parsed.version != GELF_VERSION { + return Err(format!( + "{} does not match GELF spec version ({})", + VERSION, GELF_VERSION + ) + .into()); + } + + log.insert(&GELF_TARGET_PATHS.version, parsed.version.to_string()); + log.insert(&GELF_TARGET_PATHS.host, parsed.host.to_string()); + + if let Some(full_message) = &parsed.full_message { + log.insert(&GELF_TARGET_PATHS.full_message, full_message.to_string()); + } + + if let Some(timestamp_key) = log_schema().timestamp_key_target_path() { + if let Some(timestamp) = parsed.timestamp { + log.insert(timestamp_key, timestamp); + // per GELF spec- add timestamp if not provided + } else { + log.insert(timestamp_key, Utc::now()); + } + } + + if let Some(level) = parsed.level { + log.insert(&GELF_TARGET_PATHS.level, level); + } + if let Some(facility) = &parsed.facility { + log.insert(&GELF_TARGET_PATHS.facility, facility.to_string()); + } + if let Some(line) = parsed.line { + log.insert( + &GELF_TARGET_PATHS.line, + Value::Float(ordered_float::NotNan::new(line).expect("JSON doesn't allow NaNs")), + ); + } + if let Some(file) = &parsed.file { + log.insert(&GELF_TARGET_PATHS.file, file.to_string()); + } + + if let Some(add) = &parsed.additional_fields { + for (key, val) in add.iter() { + // per GELF spec, filter out _id + if key == "_id" { + continue; + } + // per GELF spec, Additional field names must be prefixed with an underscore + if !key.starts_with('_') { + return Err(format!( + "'{}' field is invalid. \ + Additional field names must be prefixed with an underscore.", + key + ) + .into()); + } + // per GELF spec, Additional field names must be characters dashes or dots + if !VALID_FIELD_REGEX.is_match(key) { + return Err(format!("'{}' field contains invalid characters. Field names may \ + contain only letters, numbers, underscores, dashes and dots.", key).into()); + } + + // per GELF spec, Additional field values must be either strings or numbers + if val.is_string() || val.is_number() { + let vector_val: Value = val.into(); + log.insert(event_path!(key.as_str()), vector_val); + } else { + let type_ = match val { + serde_json::Value::Null => "null", + serde_json::Value::Bool(_) => "boolean", + serde_json::Value::Number(_) => "number", + serde_json::Value::String(_) => "string", + serde_json::Value::Array(_) => "array", + serde_json::Value::Object(_) => "object", + }; + return Err(format!("The value type for field {} is an invalid type ({}). Additional field values \ + should be either strings or numbers.", key, type_).into()); + } + } + } + Ok(Event::Log(log)) + } +} + +#[serde_as] +#[derive(Serialize, Deserialize, Debug)] +struct GelfMessage { + version: String, + host: String, + short_message: String, + full_message: Option, + #[serde_as(as = "Option>")] + timestamp: Option>, + level: Option, + facility: Option, + line: Option, + file: Option, + #[serde(flatten)] + additional_fields: Option>, +} + +impl Deserializer for GelfDeserializer { + fn parse( + &self, + bytes: Bytes, + _log_namespace: LogNamespace, + ) -> vector_common::Result> { + let parsed: GelfMessage = match self.lossy { + true => serde_json::from_str(&String::from_utf8_lossy(&bytes)), + false => serde_json::from_slice(&bytes), + }?; + let event = self.message_to_event(&parsed)?; + + Ok(smallvec![event]) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use bytes::Bytes; + use lookup::event_path; + use serde_json::json; + use similar_asserts::assert_eq; + use smallvec::SmallVec; + use vector_core::{config::log_schema, event::Event}; + use vrl::value::Value; + + fn deserialize_gelf_input( + input: &serde_json::Value, + ) -> vector_common::Result> { + let config = GelfDeserializerConfig::default(); + let deserializer = config.build(); + let buffer = Bytes::from(serde_json::to_vec(&input).unwrap()); + deserializer.parse(buffer, LogNamespace::Legacy) + } + + /// Validates all the spec'd fields of GELF are deserialized correctly. + #[test] + fn gelf_deserialize_correctness() { + let add_on_int_in = "_an.add-field_int"; + let add_on_str_in = "_an.add-field_str"; + + let input = json!({ + VERSION: "1.1", + HOST: "example.org", + SHORT_MESSAGE: "A short message that helps you identify what is going on", + FULL_MESSAGE: "Backtrace here\n\nmore stuff", + TIMESTAMP: 1385053862.3072, + LEVEL: 1, + FACILITY: "foo", + LINE: 42, + FILE: "/tmp/bar", + add_on_int_in: 2001.1002, + add_on_str_in: "A Space Odyssey", + }); + + // Ensure that we can parse the gelf json successfully + let events = deserialize_gelf_input(&input).unwrap(); + assert_eq!(events.len(), 1); + + let log = events[0].as_log(); + + assert_eq!( + log.get(VERSION), + Some(&Value::Bytes(Bytes::from_static(b"1.1"))) + ); + assert_eq!( + log.get(HOST), + Some(&Value::Bytes(Bytes::from_static(b"example.org"))) + ); + assert_eq!( + log.get(log_schema().message_key_target_path().unwrap()), + Some(&Value::Bytes(Bytes::from_static( + b"A short message that helps you identify what is going on" + ))) + ); + assert_eq!( + log.get(FULL_MESSAGE), + Some(&Value::Bytes(Bytes::from_static( + b"Backtrace here\n\nmore stuff" + ))) + ); + let dt = DateTime::from_timestamp(1385053862, 307_200_000).expect("invalid timestamp"); + assert_eq!(log.get(TIMESTAMP), Some(&Value::Timestamp(dt))); + assert_eq!(log.get(LEVEL), Some(&Value::Integer(1))); + assert_eq!( + log.get(FACILITY), + Some(&Value::Bytes(Bytes::from_static(b"foo"))) + ); + assert_eq!( + log.get(LINE), + Some(&Value::Float(ordered_float::NotNan::new(42.0).unwrap())) + ); + assert_eq!( + log.get(FILE), + Some(&Value::Bytes(Bytes::from_static(b"/tmp/bar"))) + ); + assert_eq!( + log.get(event_path!(add_on_int_in)), + Some(&Value::Float( + ordered_float::NotNan::new(2001.1002).unwrap() + )) + ); + assert_eq!( + log.get(event_path!(add_on_str_in)), + Some(&Value::Bytes(Bytes::from_static(b"A Space Odyssey"))) + ); + } + + /// Validates deserialization succeeds for edge case inputs. + #[test] + fn gelf_deserializing_edge_cases() { + // timestamp is set if omitted from input + { + let input = json!({ + HOST: "example.org", + SHORT_MESSAGE: "foobar", + VERSION: "1.1", + }); + let events = deserialize_gelf_input(&input).unwrap(); + assert_eq!(events.len(), 1); + let log = events[0].as_log(); + assert!(log.contains(log_schema().message_key_target_path().unwrap())); + } + + // filter out id + { + let input = json!({ + HOST: "example.org", + SHORT_MESSAGE: "foobar", + VERSION: "1.1", + "_id": "S3creTz", + }); + let events = deserialize_gelf_input(&input).unwrap(); + assert_eq!(events.len(), 1); + let log = events[0].as_log(); + assert!(!log.contains(event_path!("_id"))); + } + } + + /// Validates the error conditions in deserialization + #[test] + fn gelf_deserializing_err() { + fn validate_err(input: &serde_json::Value) { + assert!(deserialize_gelf_input(input).is_err()); + } + // invalid character in field name + validate_err(&json!({ + HOST: "example.org", + SHORT_MESSAGE: "foobar", + VERSION: "1.1", + "_bad%key": "raboof", + })); + + // not prefixed with underscore + validate_err(&json!({ + HOST: "example.org", + SHORT_MESSAGE: "foobar", + VERSION: "1.1", + "bad-key": "raboof", + })); + + // missing short_message + validate_err(&json!({ + HOST: "example.org", + VERSION: "1.1", + })); + + // host is not specified + validate_err(&json!({ + SHORT_MESSAGE: "foobar", + VERSION: "1.1", + })); + + // host is not a string + validate_err(&json!({ + HOST: 42, + SHORT_MESSAGE: "foobar", + VERSION: "1.1", + })); + + // level / line is string and not numeric + validate_err(&json!({ + HOST: "example.org", + VERSION: "1.1", + SHORT_MESSAGE: "foobar", + LEVEL: "baz", + })); + } +} diff --git a/lib/codecs/src/decoding/format/influxdb.rs b/lib/codecs/src/decoding/format/influxdb.rs new file mode 100644 index 0000000000000..a4cb5cbfe7827 --- /dev/null +++ b/lib/codecs/src/decoding/format/influxdb.rs @@ -0,0 +1,212 @@ +use std::borrow::Cow; + +use bytes::Bytes; +use chrono::DateTime; +use derivative::Derivative; +use influxdb_line_protocol::{FieldValue, ParsedLine}; +use smallvec::SmallVec; +use vector_config::configurable_component; +use vector_core::config::LogNamespace; +use vector_core::event::{Event, Metric, MetricKind, MetricTags, MetricValue}; +use vector_core::{config::DataType, schema}; +use vrl::value::kind::Collection; +use vrl::value::Kind; + +use crate::decoding::format::default_lossy; + +use super::Deserializer; + +/// Config used to build a `InfluxdbDeserializer`. +/// - [InfluxDB Line Protocol](https://docs.influxdata.com/influxdb/v1/write_protocols/line_protocol_tutorial/): +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct InfluxdbDeserializerConfig { + /// Influxdb-specific decoding options. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub influxdb: InfluxdbDeserializerOptions, +} + +impl InfluxdbDeserializerConfig { + /// new constructs a new InfluxdbDeserializerConfig + pub fn new(options: InfluxdbDeserializerOptions) -> Self { + Self { influxdb: options } + } + + /// build constructs a new InfluxdbDeserializer + pub fn build(&self) -> InfluxdbDeserializer { + Into::::into(self) + } + + /// The output type produced by the deserializer. + pub fn output_type(&self) -> DataType { + DataType::Metric + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + schema::Definition::new_with_default_metadata( + Kind::object(Collection::empty()), + [log_namespace], + ) + } +} + +/// Influxdb-specific decoding options. +#[configurable_component] +#[derive(Debug, Clone, PartialEq, Eq, Derivative)] +#[derivative(Default)] +pub struct InfluxdbDeserializerOptions { + /// Determines whether or not to replace invalid UTF-8 sequences instead of failing. + /// + /// When true, invalid UTF-8 sequences are replaced with the [`U+FFFD REPLACEMENT CHARACTER`][U+FFFD]. + /// + /// [U+FFFD]: https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character + #[serde( + default = "default_lossy", + skip_serializing_if = "vector_core::serde::is_default" + )] + #[derivative(Default(value = "default_lossy()"))] + pub lossy: bool, +} + +/// Deserializer for the influxdb line protocol +#[derive(Debug, Clone, Derivative)] +#[derivative(Default)] +pub struct InfluxdbDeserializer { + #[derivative(Default(value = "default_lossy()"))] + lossy: bool, +} + +impl InfluxdbDeserializer { + /// new constructs a new InfluxdbDeserializer + pub fn new(lossy: bool) -> Self { + Self { lossy } + } +} + +impl Deserializer for InfluxdbDeserializer { + fn parse( + &self, + bytes: Bytes, + _log_namespace: LogNamespace, + ) -> vector_common::Result> { + let line: Cow = match self.lossy { + true => String::from_utf8_lossy(&bytes), + false => Cow::from(std::str::from_utf8(&bytes)?), + }; + let parsed_line = influxdb_line_protocol::parse_lines(&line); + + let res = parsed_line + .collect::, _>>()? + .iter() + .flat_map(|line| { + let ParsedLine { + series, + field_set, + timestamp, + } = line; + + field_set + .iter() + .filter_map(|f| { + let measurement = series.measurement.clone(); + let tags = series.tag_set.as_ref(); + let val = match f.1 { + FieldValue::I64(v) => v as f64, + FieldValue::U64(v) => v as f64, + FieldValue::F64(v) => v, + FieldValue::Boolean(v) => { + if v { + 1.0 + } else { + 0.0 + } + } + FieldValue::String(_) => return None, // String values cannot be modelled in our schema + }; + Some(Event::Metric( + Metric::new( + format!("{0}_{1}", measurement, f.0), + MetricKind::Absolute, + MetricValue::Gauge { value: val }, + ) + .with_tags(tags.map(|ts| { + MetricTags::from_iter( + ts.iter().map(|t| (t.0.to_string(), t.1.to_string())), + ) + })) + .with_timestamp(timestamp.map(DateTime::from_timestamp_nanos)), + )) + }) + .collect::>() + }) + .collect(); + + Ok(res) + } +} + +impl From<&InfluxdbDeserializerConfig> for InfluxdbDeserializer { + fn from(config: &InfluxdbDeserializerConfig) -> Self { + Self { + lossy: config.influxdb.lossy, + } + } +} + +#[cfg(test)] +mod tests { + use bytes::Bytes; + use vector_core::{ + config::LogNamespace, + event::{Metric, MetricKind, MetricTags, MetricValue}, + }; + + use crate::decoding::format::{Deserializer, InfluxdbDeserializer}; + + #[test] + fn deserialize_success() { + let deser = InfluxdbDeserializer::new(true); + let now = chrono::Utc::now(); + let now_timestamp_nanos = now.timestamp_nanos_opt().unwrap(); + let buffer = Bytes::from(format!( + "cpu,host=A,region=west usage_system=64i,usage_user=10i {now_timestamp_nanos}" + )); + let events = deser.parse(buffer, LogNamespace::default()).unwrap(); + assert_eq!(events.len(), 2); + + assert_eq!( + events[0].as_metric(), + &Metric::new( + "cpu_usage_system", + MetricKind::Absolute, + MetricValue::Gauge { value: 64. }, + ) + .with_tags(Some(MetricTags::from_iter([ + ("host".to_string(), "A".to_string()), + ("region".to_string(), "west".to_string()), + ]))) + .with_timestamp(Some(now)) + ); + assert_eq!( + events[1].as_metric(), + &Metric::new( + "cpu_usage_user", + MetricKind::Absolute, + MetricValue::Gauge { value: 10. }, + ) + .with_tags(Some(MetricTags::from_iter([ + ("host".to_string(), "A".to_string()), + ("region".to_string(), "west".to_string()), + ]))) + .with_timestamp(Some(now)) + ); + } + + #[test] + fn deserialize_error() { + let deser = InfluxdbDeserializer::new(true); + let buffer = Bytes::from("some invalid string"); + assert!(deser.parse(buffer, LogNamespace::default()).is_err()); + } +} diff --git a/lib/codecs/src/decoding/format/json.rs b/lib/codecs/src/decoding/format/json.rs new file mode 100644 index 0000000000000..a017cba3c8fa6 --- /dev/null +++ b/lib/codecs/src/decoding/format/json.rs @@ -0,0 +1,299 @@ +use bytes::Bytes; +use chrono::Utc; +use derivative::Derivative; +use smallvec::{smallvec, SmallVec}; +use vector_config::configurable_component; +use vector_core::{ + config::{log_schema, DataType, LogNamespace}, + event::Event, + schema, +}; +use vrl::value::Kind; + +use super::{default_lossy, Deserializer}; + +/// Config used to build a `JsonDeserializer`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct JsonDeserializerConfig { + /// JSON-specific decoding options. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub json: JsonDeserializerOptions, +} + +impl JsonDeserializerConfig { + /// Creates a new `JsonDeserializerConfig`. + pub fn new(options: JsonDeserializerOptions) -> Self { + Self { json: options } + } + + /// Build the `JsonDeserializer` from this configuration. + pub fn build(&self) -> JsonDeserializer { + Into::::into(self) + } + + /// Return the type of event build by this deserializer. + pub fn output_type(&self) -> DataType { + DataType::Log + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + match log_namespace { + LogNamespace::Legacy => { + let mut definition = + schema::Definition::empty_legacy_namespace().unknown_fields(Kind::json()); + + if let Some(timestamp_key) = log_schema().timestamp_key() { + definition = definition.try_with_field( + timestamp_key, + // The JSON decoder will try to insert a new `timestamp`-type value into the + // "timestamp_key" field, but only if that field doesn't already exist. + Kind::json().or_timestamp(), + Some("timestamp"), + ); + } + definition + } + LogNamespace::Vector => { + schema::Definition::new_with_default_metadata(Kind::json(), [log_namespace]) + } + } + } +} + +/// JSON-specific decoding options. +#[configurable_component] +#[derive(Debug, Clone, PartialEq, Eq, Derivative)] +#[derivative(Default)] +pub struct JsonDeserializerOptions { + /// Determines whether or not to replace invalid UTF-8 sequences instead of failing. + /// + /// When true, invalid UTF-8 sequences are replaced with the [`U+FFFD REPLACEMENT CHARACTER`][U+FFFD]. + /// + /// [U+FFFD]: https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character + #[serde( + default = "default_lossy", + skip_serializing_if = "vector_core::serde::is_default" + )] + #[derivative(Default(value = "default_lossy()"))] + pub lossy: bool, +} + +/// Deserializer that builds `Event`s from a byte frame containing JSON. +#[derive(Debug, Clone, Derivative)] +#[derivative(Default)] +pub struct JsonDeserializer { + #[derivative(Default(value = "default_lossy()"))] + lossy: bool, +} + +impl JsonDeserializer { + /// Creates a new `JsonDeserializer`. + pub fn new(lossy: bool) -> Self { + Self { lossy } + } +} + +impl Deserializer for JsonDeserializer { + fn parse( + &self, + bytes: Bytes, + log_namespace: LogNamespace, + ) -> vector_common::Result> { + // It's common to receive empty frames when parsing NDJSON, since it + // allows multiple empty newlines. We proceed without a warning here. + if bytes.is_empty() { + return Ok(smallvec![]); + } + + let json: serde_json::Value = match self.lossy { + true => serde_json::from_str(&String::from_utf8_lossy(&bytes)), + false => serde_json::from_slice(&bytes), + } + .map_err(|error| format!("Error parsing JSON: {:?}", error))?; + + // If the root is an Array, split it into multiple events + let mut events = match json { + serde_json::Value::Array(values) => values + .into_iter() + .map(|json| Event::from_json_value(json, log_namespace)) + .collect::, _>>()?, + _ => smallvec![Event::from_json_value(json, log_namespace)?], + }; + + let events = match log_namespace { + LogNamespace::Vector => events, + LogNamespace::Legacy => { + let timestamp = Utc::now(); + + if let Some(timestamp_key) = log_schema().timestamp_key_target_path() { + for event in &mut events { + let log = event.as_mut_log(); + if !log.contains(timestamp_key) { + log.insert(timestamp_key, timestamp); + } + } + } + + events + } + }; + + Ok(events) + } +} + +impl From<&JsonDeserializerConfig> for JsonDeserializer { + fn from(config: &JsonDeserializerConfig) -> Self { + Self { + lossy: config.json.lossy, + } + } +} + +#[cfg(test)] +mod tests { + use vector_core::config::log_schema; + use vrl::core::Value; + + use super::*; + + #[test] + fn deserialize_json() { + let input = Bytes::from(r#"{ "foo": 123 }"#); + let deserializer = JsonDeserializer::default(); + + for namespace in [LogNamespace::Legacy, LogNamespace::Vector] { + let events = deserializer.parse(input.clone(), namespace).unwrap(); + let mut events = events.into_iter(); + + { + let event = events.next().unwrap(); + let log = event.as_log(); + assert_eq!(log["foo"], 123.into()); + assert_eq!( + log.get(( + lookup::PathPrefix::Event, + log_schema().timestamp_key().unwrap() + )) + .is_some(), + namespace == LogNamespace::Legacy + ); + } + + assert_eq!(events.next(), None); + } + } + + #[test] + fn deserialize_non_object_vector_namespace() { + let input = Bytes::from(r#"null"#); + let deserializer = JsonDeserializer::default(); + + let namespace = LogNamespace::Vector; + let events = deserializer.parse(input.clone(), namespace).unwrap(); + let mut events = events.into_iter(); + + let event = events.next().unwrap(); + let log = event.as_log(); + assert_eq!(log["."], Value::Null); + + assert_eq!(events.next(), None); + } + + #[test] + fn deserialize_json_array() { + let input = Bytes::from(r#"[{ "foo": 123 }, { "bar": 456 }]"#); + let deserializer = JsonDeserializer::default(); + for namespace in [LogNamespace::Legacy, LogNamespace::Vector] { + let events = deserializer.parse(input.clone(), namespace).unwrap(); + let mut events = events.into_iter(); + + { + let event = events.next().unwrap(); + let log = event.as_log(); + assert_eq!(log["foo"], 123.into()); + assert_eq!( + log.get(( + lookup::PathPrefix::Event, + log_schema().timestamp_key().unwrap() + )) + .is_some(), + namespace == LogNamespace::Legacy + ); + } + + { + let event = events.next().unwrap(); + let log = event.as_log(); + assert_eq!(log["bar"], 456.into()); + assert_eq!( + log.get(log_schema().timestamp_key_target_path().unwrap()) + .is_some(), + namespace == LogNamespace::Legacy + ); + } + + assert_eq!(events.next(), None); + } + } + + #[test] + fn deserialize_skip_empty() { + let input = Bytes::from(""); + let deserializer = JsonDeserializer::default(); + + for namespace in [LogNamespace::Legacy, LogNamespace::Vector] { + let events = deserializer.parse(input.clone(), namespace).unwrap(); + assert!(events.is_empty()); + } + } + + #[test] + fn deserialize_error_invalid_json() { + let input = Bytes::from("{ foo"); + let deserializer = JsonDeserializer::default(); + + for namespace in [LogNamespace::Legacy, LogNamespace::Vector] { + assert!(deserializer.parse(input.clone(), namespace).is_err()); + } + } + + #[test] + fn deserialize_lossy_replace_invalid_utf8() { + let input = Bytes::from(b"{ \"foo\": \"Hello \xF0\x90\x80World\" }".as_slice()); + let deserializer = JsonDeserializer::new(true); + + for namespace in [LogNamespace::Legacy, LogNamespace::Vector] { + let events = deserializer.parse(input.clone(), namespace).unwrap(); + let mut events = events.into_iter(); + + { + let event = events.next().unwrap(); + let log = event.as_log(); + assert_eq!(log["foo"], b"Hello \xEF\xBF\xBDWorld".into()); + assert_eq!( + log.get(( + lookup::PathPrefix::Event, + log_schema().timestamp_key().unwrap() + )) + .is_some(), + namespace == LogNamespace::Legacy + ); + } + + assert_eq!(events.next(), None); + } + } + + #[test] + fn deserialize_non_lossy_error_invalid_utf8() { + let input = Bytes::from(b"{ \"foo\": \"Hello \xF0\x90\x80World\" }".as_slice()); + let deserializer = JsonDeserializer::new(false); + + for namespace in [LogNamespace::Legacy, LogNamespace::Vector] { + assert!(deserializer.parse(input.clone(), namespace).is_err()); + } + } +} diff --git a/lib/codecs/src/decoding/format/mod.rs b/lib/codecs/src/decoding/format/mod.rs new file mode 100644 index 0000000000000..9e2dee7de1ce2 --- /dev/null +++ b/lib/codecs/src/decoding/format/mod.rs @@ -0,0 +1,62 @@ +//! A collection of formats that can be used to convert from byte frames to +//! structured events. + +#![deny(missing_docs)] + +mod avro; +mod bytes; +mod gelf; +mod influxdb; +mod json; +mod native; +mod native_json; +mod protobuf; +#[cfg(feature = "syslog")] +mod syslog; +mod vrl; + +use ::bytes::Bytes; +pub use avro::{AvroDeserializer, AvroDeserializerConfig, AvroDeserializerOptions}; +use dyn_clone::DynClone; +pub use gelf::{GelfDeserializer, GelfDeserializerConfig, GelfDeserializerOptions}; +pub use influxdb::{InfluxdbDeserializer, InfluxdbDeserializerConfig}; +pub use json::{JsonDeserializer, JsonDeserializerConfig, JsonDeserializerOptions}; +pub use native::{NativeDeserializer, NativeDeserializerConfig}; +pub use native_json::{ + NativeJsonDeserializer, NativeJsonDeserializerConfig, NativeJsonDeserializerOptions, +}; +pub use protobuf::{ProtobufDeserializer, ProtobufDeserializerConfig, ProtobufDeserializerOptions}; +use smallvec::SmallVec; +#[cfg(feature = "syslog")] +pub use syslog::{SyslogDeserializer, SyslogDeserializerConfig, SyslogDeserializerOptions}; +use vector_core::config::LogNamespace; +use vector_core::event::Event; + +pub use self::bytes::{BytesDeserializer, BytesDeserializerConfig}; + +pub use self::vrl::{VrlDeserializer, VrlDeserializerConfig, VrlDeserializerOptions}; + +/// Parse structured events from bytes. +pub trait Deserializer: DynClone + Send + Sync { + /// Parses structured events from bytes. + /// + /// It returns a `SmallVec` rather than an `Event` directly, since one byte + /// frame can potentially hold multiple events, e.g. when parsing a JSON + /// array. However, we optimize the most common case of emitting one event + /// by not requiring heap allocations for it. + fn parse( + &self, + bytes: Bytes, + log_namespace: LogNamespace, + ) -> vector_common::Result>; +} + +dyn_clone::clone_trait_object!(Deserializer); + +/// A `Box` containing a `Deserializer`. +pub type BoxedDeserializer = Box; + +/// Default value for the UTF-8 lossy option. +const fn default_lossy() -> bool { + true +} diff --git a/lib/codecs/src/decoding/format/native.rs b/lib/codecs/src/decoding/format/native.rs new file mode 100644 index 0000000000000..f94683f14dc70 --- /dev/null +++ b/lib/codecs/src/decoding/format/native.rs @@ -0,0 +1,60 @@ +use bytes::Bytes; +use prost::Message; +use serde::{Deserialize, Serialize}; +use smallvec::{smallvec, SmallVec}; +use vector_core::config::LogNamespace; +use vector_core::{ + config::DataType, + event::{proto, Event, EventArray, EventContainer}, + schema, +}; +use vrl::value::Kind; + +use super::Deserializer; + +/// Config used to build a `NativeDeserializer`. +#[derive(Debug, Clone, Default, Deserialize, Serialize)] +pub struct NativeDeserializerConfig; + +impl NativeDeserializerConfig { + /// Build the `NativeDeserializer` from this configuration. + pub fn build(&self) -> NativeDeserializer { + NativeDeserializer + } + + /// Return the type of event build by this deserializer. + pub fn output_type(&self) -> DataType { + DataType::all_bits() + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + match log_namespace { + LogNamespace::Legacy => schema::Definition::empty_legacy_namespace(), + LogNamespace::Vector => { + schema::Definition::new_with_default_metadata(Kind::any(), [log_namespace]) + } + } + } +} + +/// Deserializer that builds `Event`s from a byte frame containing Vector's native protobuf format. +#[derive(Debug, Clone, Default)] +pub struct NativeDeserializer; + +impl Deserializer for NativeDeserializer { + fn parse( + &self, + bytes: Bytes, + // LogNamespace is ignored because Vector owns the data format being consumed and as such there + // is no need to change the fields of the event. + _log_namespace: LogNamespace, + ) -> vector_common::Result> { + if bytes.is_empty() { + Ok(smallvec![]) + } else { + let event_array = EventArray::from(proto::EventArray::decode(bytes)?); + Ok(event_array.into_events().collect()) + } + } +} diff --git a/lib/codecs/src/decoding/format/native_json.rs b/lib/codecs/src/decoding/format/native_json.rs new file mode 100644 index 0000000000000..eac15b30529ea --- /dev/null +++ b/lib/codecs/src/decoding/format/native_json.rs @@ -0,0 +1,137 @@ +use bytes::Bytes; +use derivative::Derivative; +use smallvec::{smallvec, SmallVec}; +use vector_config::configurable_component; +use vector_core::{config::DataType, event::Event, schema}; +use vrl::value::kind::Collection; +use vrl::value::Kind; + +use super::{default_lossy, Deserializer}; +use vector_core::config::LogNamespace; + +/// Config used to build a `NativeJsonDeserializer`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct NativeJsonDeserializerConfig { + /// Vector's native JSON-specific decoding options. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub native_json: NativeJsonDeserializerOptions, +} + +impl NativeJsonDeserializerConfig { + /// Creates a new `NativeJsonDeserializerConfig`. + pub fn new(options: NativeJsonDeserializerOptions) -> Self { + Self { + native_json: options, + } + } + + /// Build the `NativeJsonDeserializer` from this configuration. + pub fn build(&self) -> NativeJsonDeserializer { + NativeJsonDeserializer { + lossy: self.native_json.lossy, + } + } + + /// Return the type of event build by this deserializer. + pub fn output_type(&self) -> DataType { + DataType::all_bits() + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + match log_namespace { + LogNamespace::Vector => { + schema::Definition::new_with_default_metadata(Kind::json(), [log_namespace]) + } + LogNamespace::Legacy => schema::Definition::new_with_default_metadata( + Kind::object(Collection::json()), + [log_namespace], + ), + } + } +} + +/// Vector's native JSON-specific decoding options. +#[configurable_component] +#[derive(Debug, Clone, PartialEq, Eq, Derivative)] +#[derivative(Default)] +pub struct NativeJsonDeserializerOptions { + /// Determines whether or not to replace invalid UTF-8 sequences instead of failing. + /// + /// When true, invalid UTF-8 sequences are replaced with the [`U+FFFD REPLACEMENT CHARACTER`][U+FFFD]. + /// + /// [U+FFFD]: https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character + #[serde( + default = "default_lossy", + skip_serializing_if = "vector_core::serde::is_default" + )] + #[derivative(Default(value = "default_lossy()"))] + pub lossy: bool, +} + +/// Deserializer that builds `Event`s from a byte frame containing Vector's native JSON +/// representation. +#[derive(Debug, Clone, Derivative)] +#[derivative(Default)] +pub struct NativeJsonDeserializer { + #[derivative(Default(value = "default_lossy()"))] + lossy: bool, +} + +impl Deserializer for NativeJsonDeserializer { + fn parse( + &self, + bytes: Bytes, + // LogNamespace is ignored because Vector owns the data format being consumed and as such there + // is no need to change the fields of the event. + _log_namespace: LogNamespace, + ) -> vector_common::Result> { + // It's common to receive empty frames when parsing NDJSON, since it + // allows multiple empty newlines. We proceed without a warning here. + if bytes.is_empty() { + return Ok(smallvec![]); + } + + let json: serde_json::Value = match self.lossy { + true => serde_json::from_str(&String::from_utf8_lossy(&bytes)), + false => serde_json::from_slice(&bytes), + } + .map_err(|error| format!("Error parsing JSON: {:?}", error))?; + + let events = match json { + serde_json::Value::Array(values) => values + .into_iter() + .map(serde_json::from_value) + .collect::, _>>()?, + _ => smallvec![serde_json::from_value(json)?], + }; + + Ok(events) + } +} + +#[cfg(test)] +mod test { + use serde_json::json; + + use super::*; + + #[test] + fn parses_top_level_arrays() { + let config = NativeJsonDeserializerConfig::default(); + let deserializer = config.build(); + + let json1 = json!({"a": "b", "c": "d"}); + let json2 = json!({"foo": "bar", "baz": "quux"}); + let json_array = json!([{ "log": json1 }, { "log": json2 }]); + let input = Bytes::from(serde_json::to_vec(&json_array).unwrap()); + + let events = deserializer.parse(input, LogNamespace::Legacy).unwrap(); + + let event1 = Event::from_json_value(json1, LogNamespace::Legacy).unwrap(); + let event2 = Event::from_json_value(json2, LogNamespace::Legacy).unwrap(); + let expected: SmallVec<[Event; 1]> = smallvec![event1, event2]; + assert_eq!(events, expected); + } +} diff --git a/lib/codecs/src/decoding/format/protobuf.rs b/lib/codecs/src/decoding/format/protobuf.rs new file mode 100644 index 0000000000000..0a4552b076424 --- /dev/null +++ b/lib/codecs/src/decoding/format/protobuf.rs @@ -0,0 +1,264 @@ +use std::path::PathBuf; + +use bytes::Bytes; +use chrono::Utc; +use derivative::Derivative; +use prost_reflect::{DynamicMessage, MessageDescriptor}; +use smallvec::{smallvec, SmallVec}; +use vector_config::configurable_component; +use vector_core::event::LogEvent; +use vector_core::{ + config::{log_schema, DataType, LogNamespace}, + event::Event, + schema, +}; +use vrl::value::Kind; + +use super::Deserializer; + +/// Config used to build a `ProtobufDeserializer`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct ProtobufDeserializerConfig { + /// Protobuf-specific decoding options. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub protobuf: ProtobufDeserializerOptions, +} + +impl ProtobufDeserializerConfig { + /// Build the `ProtobufDeserializer` from this configuration. + pub fn build(&self) -> vector_common::Result { + ProtobufDeserializer::try_from(self) + } + + /// Return the type of event build by this deserializer. + pub fn output_type(&self) -> DataType { + DataType::Log + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + match log_namespace { + LogNamespace::Legacy => { + let mut definition = + schema::Definition::empty_legacy_namespace().unknown_fields(Kind::any()); + + if let Some(timestamp_key) = log_schema().timestamp_key() { + definition = definition.try_with_field( + timestamp_key, + // The protobuf decoder will try to insert a new `timestamp`-type value into the + // "timestamp_key" field, but only if that field doesn't already exist. + Kind::any().or_timestamp(), + Some("timestamp"), + ); + } + definition + } + LogNamespace::Vector => { + schema::Definition::new_with_default_metadata(Kind::any(), [log_namespace]) + } + } + } +} + +/// Protobuf-specific decoding options. +#[configurable_component] +#[derive(Debug, Clone, PartialEq, Eq, Derivative)] +#[derivative(Default)] +pub struct ProtobufDeserializerOptions { + /// The path to the protobuf descriptor set file. + /// + /// This file is the output of `protoc -I -o ` + /// + /// You can read more [here](https://buf.build/docs/reference/images/#how-buf-images-work). + pub desc_file: PathBuf, + + /// The name of the message type to use for serializing. + #[configurable(metadata(docs::examples = "package.Message"))] + pub message_type: String, +} + +/// Deserializer that builds `Event`s from a byte frame containing protobuf. +#[derive(Debug, Clone)] +pub struct ProtobufDeserializer { + message_descriptor: MessageDescriptor, +} + +impl ProtobufDeserializer { + /// Creates a new `ProtobufDeserializer`. + pub fn new(message_descriptor: MessageDescriptor) -> Self { + Self { message_descriptor } + } +} + +impl Deserializer for ProtobufDeserializer { + fn parse( + &self, + bytes: Bytes, + log_namespace: LogNamespace, + ) -> vector_common::Result> { + let dynamic_message = DynamicMessage::decode(self.message_descriptor.clone(), bytes) + .map_err(|error| format!("Error parsing protobuf: {:?}", error))?; + + let proto_vrl = + vrl::protobuf::proto_to_value(&prost_reflect::Value::Message(dynamic_message), None)?; + let mut event = Event::Log(LogEvent::from(proto_vrl)); + let event = match log_namespace { + LogNamespace::Vector => event, + LogNamespace::Legacy => { + let timestamp = Utc::now(); + if let Some(timestamp_key) = log_schema().timestamp_key_target_path() { + let log = event.as_mut_log(); + if !log.contains(timestamp_key) { + log.insert(timestamp_key, timestamp); + } + } + event + } + }; + + Ok(smallvec![event]) + } +} + +impl TryFrom<&ProtobufDeserializerConfig> for ProtobufDeserializer { + type Error = vector_common::Error; + fn try_from(config: &ProtobufDeserializerConfig) -> vector_common::Result { + let message_descriptor = vrl::protobuf::get_message_descriptor( + &config.protobuf.desc_file, + &config.protobuf.message_type, + )?; + Ok(Self::new(message_descriptor)) + } +} + +#[cfg(test)] +mod tests { + // TODO: add test for bad file path & invalid message_type + + use std::path::PathBuf; + use std::{env, fs}; + use vector_core::config::log_schema; + + use super::*; + + fn test_data_dir() -> PathBuf { + PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()).join("tests/data/protobuf") + } + + fn parse_and_validate( + protobuf_bin_message: String, + protobuf_desc_path: PathBuf, + message_type: &str, + validate_log: fn(&LogEvent), + ) { + let input = Bytes::from(protobuf_bin_message); + let message_descriptor = + vrl::protobuf::get_message_descriptor(&protobuf_desc_path, message_type).unwrap(); + let deserializer = ProtobufDeserializer::new(message_descriptor); + + for namespace in [LogNamespace::Legacy, LogNamespace::Vector] { + let events = deserializer.parse(input.clone(), namespace).unwrap(); + let mut events = events.into_iter(); + + { + let event = events.next().unwrap(); + let log = event.as_log(); + validate_log(log); + assert_eq!( + log.get(log_schema().timestamp_key_target_path().unwrap()) + .is_some(), + namespace == LogNamespace::Legacy + ); + } + + assert_eq!(events.next(), None); + } + } + + #[test] + fn deserialize_protobuf() { + let protobuf_bin_message_path = test_data_dir().join("pbs/person_someone.pb"); + let protobuf_desc_path = test_data_dir().join("protos/test_protobuf.desc"); + let message_type = "test_protobuf.Person"; + let validate_log = |log: &LogEvent| { + assert_eq!(log["name"], "someone".into()); + assert_eq!( + log["phones"].as_array().unwrap()[0].as_object().unwrap()["number"] + .as_str() + .unwrap(), + "123456" + ); + }; + + parse_and_validate( + fs::read_to_string(protobuf_bin_message_path).unwrap(), + protobuf_desc_path, + message_type, + validate_log, + ); + } + + #[test] + fn deserialize_protobuf3() { + let protobuf_bin_message_path = test_data_dir().join("pbs/person_someone3.pb"); + let protobuf_desc_path = test_data_dir().join("protos/test_protobuf3.desc"); + let message_type = "test_protobuf3.Person"; + let validate_log = |log: &LogEvent| { + assert_eq!(log["name"], "someone".into()); + assert_eq!( + log["phones"].as_array().unwrap()[0].as_object().unwrap()["number"] + .as_str() + .unwrap(), + "1234" + ); + assert_eq!( + log["data"].as_object().unwrap()["data_phone"], + "HOME".into() + ); + }; + + parse_and_validate( + fs::read_to_string(protobuf_bin_message_path).unwrap(), + protobuf_desc_path, + message_type, + validate_log, + ); + } + + #[test] + fn deserialize_empty_buffer() { + let protobuf_bin_message = "".to_string(); + let protobuf_desc_path = test_data_dir().join("protos/test_protobuf.desc"); + let message_type = "test_protobuf.Person"; + let validate_log = |log: &LogEvent| { + // No field will be set. + assert!(!log.contains("name")); + assert!(!log.contains("id")); + assert!(!log.contains("email")); + assert!(!log.contains("phones")); + }; + + parse_and_validate( + protobuf_bin_message, + protobuf_desc_path, + message_type, + validate_log, + ); + } + + #[test] + fn deserialize_error_invalid_protobuf() { + let input = Bytes::from("{ foo"); + let message_descriptor = vrl::protobuf::get_message_descriptor( + &test_data_dir().join("protos/test_protobuf.desc"), + "test_protobuf.Person", + ) + .unwrap(); + let deserializer = ProtobufDeserializer::new(message_descriptor); + + for namespace in [LogNamespace::Legacy, LogNamespace::Vector] { + assert!(deserializer.parse(input.clone(), namespace).is_err()); + } + } +} diff --git a/lib/codecs/src/decoding/format/syslog.rs b/lib/codecs/src/decoding/format/syslog.rs new file mode 100644 index 0000000000000..6a5d7e135e841 --- /dev/null +++ b/lib/codecs/src/decoding/format/syslog.rs @@ -0,0 +1,529 @@ +use bytes::Bytes; +use chrono::{DateTime, Datelike, Utc}; +use derivative::Derivative; +use lookup::{event_path, owned_value_path, OwnedTargetPath, OwnedValuePath}; +use smallvec::{smallvec, SmallVec}; +use std::borrow::Cow; +use syslog_loose::{IncompleteDate, Message, ProcId, Protocol, Variant}; +use vector_config::configurable_component; +use vector_core::config::{LegacyKey, LogNamespace}; +use vector_core::{ + config::{log_schema, DataType}, + event::{Event, LogEvent, ObjectMap, Value}, + schema, +}; +use vrl::value::{kind::Collection, Kind}; + +use super::{default_lossy, Deserializer}; + +/// Config used to build a `SyslogDeserializer`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct SyslogDeserializerConfig { + #[serde(skip)] + source: Option<&'static str>, + + /// Syslog-specific decoding options. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub syslog: SyslogDeserializerOptions, +} + +impl SyslogDeserializerConfig { + /// Creates a new `SyslogDeserializerConfig`. + pub fn new(options: SyslogDeserializerOptions) -> Self { + Self { + source: None, + syslog: options, + } + } + + /// Create the `SyslogDeserializer` from the given source name. + pub fn from_source(source: &'static str) -> Self { + Self { + source: Some(source), + ..Default::default() + } + } + + /// Build the `SyslogDeserializer` from this configuration. + pub const fn build(&self) -> SyslogDeserializer { + SyslogDeserializer { + source: self.source, + lossy: self.syslog.lossy, + } + } + + /// Return the type of event build by this deserializer. + pub fn output_type(&self) -> DataType { + DataType::Log + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + match (log_namespace, self.source) { + (LogNamespace::Legacy, _) => { + let mut definition = schema::Definition::empty_legacy_namespace() + // The `message` field is always defined. If parsing fails, the entire body becomes the + // message. + .with_event_field( + log_schema().message_key().expect("valid message key"), + Kind::bytes(), + Some("message"), + ); + + if let Some(timestamp_key) = log_schema().timestamp_key() { + // All other fields are optional. + definition = definition.optional_field( + timestamp_key, + Kind::timestamp(), + Some("timestamp"), + ) + } + + definition = definition + .optional_field(&owned_value_path!("hostname"), Kind::bytes(), Some("host")) + .optional_field( + &owned_value_path!("severity"), + Kind::bytes(), + Some("severity"), + ) + .optional_field(&owned_value_path!("facility"), Kind::bytes(), None) + .optional_field(&owned_value_path!("version"), Kind::integer(), None) + .optional_field( + &owned_value_path!("appname"), + Kind::bytes(), + Some("service"), + ) + .optional_field(&owned_value_path!("msgid"), Kind::bytes(), None) + .optional_field( + &owned_value_path!("procid"), + Kind::integer().or_bytes(), + None, + ) + // "structured data" is placed at the root. It will always be a map of strings + .unknown_fields(Kind::object(Collection::from_unknown(Kind::bytes()))); + + if self.source.is_some() { + // This field is added by the syslog source. It will not be present if the data + // is coming from the codec. + definition.optional_field(&owned_value_path!("source_ip"), Kind::bytes(), None) + } else { + definition + } + } + (LogNamespace::Vector, None) => { + schema::Definition::new_with_default_metadata( + Kind::object(Collection::empty()), + [log_namespace], + ) + .with_event_field( + &owned_value_path!("message"), + Kind::bytes(), + Some("message"), + ) + .optional_field( + &owned_value_path!("timestamp"), + Kind::timestamp(), + Some("timestamp"), + ) + .optional_field(&owned_value_path!("hostname"), Kind::bytes(), Some("host")) + .optional_field( + &owned_value_path!("severity"), + Kind::bytes(), + Some("severity"), + ) + .optional_field(&owned_value_path!("facility"), Kind::bytes(), None) + .optional_field(&owned_value_path!("version"), Kind::integer(), None) + .optional_field( + &owned_value_path!("appname"), + Kind::bytes(), + Some("service"), + ) + .optional_field(&owned_value_path!("msgid"), Kind::bytes(), None) + .optional_field( + &owned_value_path!("procid"), + Kind::integer().or_bytes(), + None, + ) + // "structured data" is placed at the root. It will always be a map strings + .unknown_fields(Kind::object(Collection::from_unknown(Kind::bytes()))) + } + (LogNamespace::Vector, Some(source)) => { + schema::Definition::new_with_default_metadata(Kind::bytes(), [log_namespace]) + .with_meaning(OwnedTargetPath::event_root(), "message") + .with_source_metadata( + source, + None, + &owned_value_path!("timestamp"), + Kind::timestamp(), + Some("timestamp"), + ) + .with_source_metadata( + source, + None, + &owned_value_path!("hostname"), + Kind::bytes().or_undefined(), + Some("host"), + ) + .with_source_metadata( + source, + None, + &owned_value_path!("source_ip"), + Kind::bytes().or_undefined(), + None, + ) + .with_source_metadata( + source, + None, + &owned_value_path!("severity"), + Kind::bytes().or_undefined(), + Some("severity"), + ) + .with_source_metadata( + source, + None, + &owned_value_path!("facility"), + Kind::bytes().or_undefined(), + None, + ) + .with_source_metadata( + source, + None, + &owned_value_path!("version"), + Kind::integer().or_undefined(), + None, + ) + .with_source_metadata( + source, + None, + &owned_value_path!("appname"), + Kind::bytes().or_undefined(), + Some("service"), + ) + .with_source_metadata( + source, + None, + &owned_value_path!("msgid"), + Kind::bytes().or_undefined(), + None, + ) + .with_source_metadata( + source, + None, + &owned_value_path!("procid"), + Kind::integer().or_bytes().or_undefined(), + None, + ) + .with_source_metadata( + source, + None, + &owned_value_path!("structured_data"), + Kind::object(Collection::from_unknown(Kind::object( + Collection::from_unknown(Kind::bytes()), + ))), + None, + ) + .with_source_metadata( + source, + None, + &owned_value_path!("tls_client_metadata"), + Kind::object(Collection::empty().with_unknown(Kind::bytes())) + .or_undefined(), + None, + ) + } + } + } +} + +/// Syslog-specific decoding options. +#[configurable_component] +#[derive(Debug, Clone, PartialEq, Eq, Derivative)] +#[derivative(Default)] +pub struct SyslogDeserializerOptions { + /// Determines whether or not to replace invalid UTF-8 sequences instead of failing. + /// + /// When true, invalid UTF-8 sequences are replaced with the [`U+FFFD REPLACEMENT CHARACTER`][U+FFFD]. + /// + /// [U+FFFD]: https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character + #[serde( + default = "default_lossy", + skip_serializing_if = "vector_core::serde::is_default" + )] + #[derivative(Default(value = "default_lossy()"))] + pub lossy: bool, +} + +/// Deserializer that builds an `Event` from a byte frame containing a syslog +/// message. +#[derive(Debug, Clone, Derivative)] +#[derivative(Default)] +pub struct SyslogDeserializer { + /// The syslog source needs it's own syslog deserializer separate from the + /// syslog codec since it needs to handle the structured of the decoded data + /// differently when using the Vector lognamespace. + pub source: Option<&'static str>, + #[derivative(Default(value = "default_lossy()"))] + lossy: bool, +} + +impl Deserializer for SyslogDeserializer { + fn parse( + &self, + bytes: Bytes, + log_namespace: LogNamespace, + ) -> vector_common::Result> { + let line: Cow = match self.lossy { + true => String::from_utf8_lossy(&bytes), + false => Cow::from(std::str::from_utf8(&bytes)?), + }; + let line = line.trim(); + let parsed = + syslog_loose::parse_message_with_year_exact(line, resolve_year, Variant::Either)?; + + let log = match (self.source, log_namespace) { + (Some(source), LogNamespace::Vector) => { + let mut log = LogEvent::from(Value::Bytes(Bytes::from(parsed.msg.to_string()))); + insert_metadata_fields_from_syslog(&mut log, source, parsed, log_namespace); + log + } + _ => { + let mut log = LogEvent::from(Value::Object(ObjectMap::new())); + insert_fields_from_syslog(&mut log, parsed, log_namespace); + log + } + }; + + Ok(smallvec![Event::from(log)]) + } +} + +/// Function used to resolve the year for syslog messages that don't include the +/// year. +/// +/// If the current month is January, and the syslog message is for December, it +/// will take the previous year. +/// +/// Otherwise, take the current year. +fn resolve_year((month, _date, _hour, _min, _sec): IncompleteDate) -> i32 { + let now = Utc::now(); + if now.month() == 1 && month == 12 { + now.year() - 1 + } else { + now.year() + } +} + +fn insert_metadata_fields_from_syslog( + log: &mut LogEvent, + source: &'static str, + parsed: Message<&str>, + log_namespace: LogNamespace, +) { + if let Some(timestamp) = parsed.timestamp { + let timestamp = DateTime::::from(timestamp); + log_namespace.insert_source_metadata( + source, + log, + None::>, + &owned_value_path!("timestamp"), + timestamp, + ); + } + if let Some(host) = parsed.hostname { + log_namespace.insert_source_metadata( + source, + log, + None::>, + &owned_value_path!("hostname"), + host.to_string(), + ); + } + if let Some(severity) = parsed.severity { + log_namespace.insert_source_metadata( + source, + log, + None::>, + &owned_value_path!("severity"), + severity.as_str().to_owned(), + ); + } + if let Some(facility) = parsed.facility { + log_namespace.insert_source_metadata( + source, + log, + None::>, + &owned_value_path!("facility"), + facility.as_str().to_owned(), + ); + } + if let Protocol::RFC5424(version) = parsed.protocol { + log_namespace.insert_source_metadata( + source, + log, + None::>, + &owned_value_path!("version"), + version as i64, + ); + } + if let Some(app_name) = parsed.appname { + log_namespace.insert_source_metadata( + source, + log, + None::>, + &owned_value_path!("appname"), + app_name.to_owned(), + ); + } + if let Some(msg_id) = parsed.msgid { + log_namespace.insert_source_metadata( + source, + log, + None::>, + &owned_value_path!("msgid"), + msg_id.to_owned(), + ); + } + if let Some(procid) = parsed.procid { + let value: Value = match procid { + ProcId::PID(pid) => pid.into(), + ProcId::Name(name) => name.to_string().into(), + }; + log_namespace.insert_source_metadata( + source, + log, + None::>, + &owned_value_path!("procid"), + value, + ); + } + + let mut sdata = ObjectMap::new(); + for element in parsed.structured_data.into_iter() { + let mut data = ObjectMap::new(); + + for (name, value) in element.params() { + data.insert(name.to_string().into(), value.into()); + } + + sdata.insert(element.id.into(), data.into()); + } + + log_namespace.insert_source_metadata( + source, + log, + None::>, + &owned_value_path!("structured_data"), + sdata, + ); +} + +fn insert_fields_from_syslog( + log: &mut LogEvent, + parsed: Message<&str>, + log_namespace: LogNamespace, +) { + match log_namespace { + LogNamespace::Legacy => { + log.maybe_insert(log_schema().message_key_target_path(), parsed.msg); + } + LogNamespace::Vector => { + log.insert(event_path!("message"), parsed.msg); + } + } + + if let Some(timestamp) = parsed.timestamp { + let timestamp = DateTime::::from(timestamp); + match log_namespace { + LogNamespace::Legacy => { + log.maybe_insert(log_schema().timestamp_key_target_path(), timestamp); + } + LogNamespace::Vector => { + log.insert(event_path!("timestamp"), timestamp); + } + }; + } + if let Some(host) = parsed.hostname { + log.insert(event_path!("hostname"), host.to_string()); + } + if let Some(severity) = parsed.severity { + log.insert(event_path!("severity"), severity.as_str().to_owned()); + } + if let Some(facility) = parsed.facility { + log.insert(event_path!("facility"), facility.as_str().to_owned()); + } + if let Protocol::RFC5424(version) = parsed.protocol { + log.insert(event_path!("version"), version as i64); + } + if let Some(app_name) = parsed.appname { + log.insert(event_path!("appname"), app_name.to_owned()); + } + if let Some(msg_id) = parsed.msgid { + log.insert(event_path!("msgid"), msg_id.to_owned()); + } + if let Some(procid) = parsed.procid { + let value: Value = match procid { + ProcId::PID(pid) => pid.into(), + ProcId::Name(name) => name.to_string().into(), + }; + log.insert(event_path!("procid"), value); + } + + for element in parsed.structured_data.into_iter() { + let mut sdata = ObjectMap::new(); + for (name, value) in element.params() { + sdata.insert(name.to_string().into(), value.into()); + } + log.insert(event_path!(element.id), sdata); + } +} + +#[cfg(test)] +mod tests { + use super::*; + use vector_core::config::{init_log_schema, log_schema, LogSchema}; + + #[test] + fn deserialize_syslog_legacy_namespace() { + init(); + + let input = + Bytes::from("<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - MSG"); + let deserializer = SyslogDeserializer::default(); + + let events = deserializer.parse(input, LogNamespace::Legacy).unwrap(); + assert_eq!(events.len(), 1); + assert_eq!( + events[0].as_log()[log_schema().message_key().unwrap().to_string()], + "MSG".into() + ); + assert!( + events[0].as_log()[log_schema().timestamp_key().unwrap().to_string()].is_timestamp() + ); + } + + #[test] + fn deserialize_syslog_vector_namespace() { + init(); + + let input = + Bytes::from("<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - MSG"); + let deserializer = SyslogDeserializer::default(); + + let events = deserializer.parse(input, LogNamespace::Vector).unwrap(); + assert_eq!(events.len(), 1); + assert_eq!(events[0].as_log()["message"], "MSG".into()); + assert!(events[0].as_log()["timestamp"].is_timestamp()); + } + + fn init() { + let mut schema = LogSchema::default(); + schema.set_message_key(Some(OwnedTargetPath::event(owned_value_path!( + "legacy_message" + )))); + schema.set_message_key(Some(OwnedTargetPath::event(owned_value_path!( + "legacy_timestamp" + )))); + init_log_schema(schema, false); + } +} diff --git a/lib/codecs/src/decoding/format/vrl.rs b/lib/codecs/src/decoding/format/vrl.rs new file mode 100644 index 0000000000000..63a127955ee87 --- /dev/null +++ b/lib/codecs/src/decoding/format/vrl.rs @@ -0,0 +1,320 @@ +use crate::decoding::format::Deserializer; +use crate::BytesDeserializerConfig; +use bytes::Bytes; +use derivative::Derivative; +use smallvec::{smallvec, SmallVec}; +use vector_config_macros::configurable_component; +use vector_core::config::{DataType, LogNamespace}; +use vector_core::event::{Event, TargetEvents, VrlTarget}; +use vector_core::{compile_vrl, schema}; +use vrl::compiler::state::ExternalEnv; +use vrl::compiler::{runtime::Runtime, CompileConfig, Program, TimeZone, TypeState}; +use vrl::diagnostic::Formatter; +use vrl::value::Kind; + +/// Config used to build a `VrlDeserializer`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct VrlDeserializerConfig { + /// VRL-specific decoding options. + pub vrl: VrlDeserializerOptions, +} + +/// VRL-specific decoding options. +#[configurable_component] +#[derive(Debug, Clone, PartialEq, Eq, Derivative)] +#[derivative(Default)] +pub struct VrlDeserializerOptions { + /// The [Vector Remap Language][vrl] (VRL) program to execute for each event. + /// Note that the final contents of the `.` target will be used as the decoding result. + /// Compilation error or use of 'abort' in a program will result in a decoding error. + /// + /// + /// [vrl]: https://vector.dev/docs/reference/vrl + pub source: String, + + /// The name of the timezone to apply to timestamp conversions that do not contain an explicit + /// time zone. The time zone name may be any name in the [TZ database][tz_database], or `local` + /// to indicate system local time. + /// + /// If not set, `local` will be used. + /// + /// [tz_database]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + #[serde(default)] + #[configurable(metadata(docs::advanced))] + pub timezone: Option, +} + +impl VrlDeserializerConfig { + /// Build the `VrlDeserializer` from this configuration. + pub fn build(&self) -> vector_common::Result { + let state = TypeState { + local: Default::default(), + external: ExternalEnv::default(), + }; + + match compile_vrl( + &self.vrl.source, + &vrl::stdlib::all(), + &state, + CompileConfig::default(), + ) { + Ok(result) => Ok(VrlDeserializer { + program: result.program, + timezone: self.vrl.timezone.unwrap_or(TimeZone::Local), + }), + Err(diagnostics) => Err(Formatter::new(&self.vrl.source, diagnostics) + .to_string() + .into()), + } + } + + /// Return the type of event build by this deserializer. + pub fn output_type(&self) -> DataType { + DataType::Log + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + match log_namespace { + LogNamespace::Legacy => { + schema::Definition::empty_legacy_namespace().unknown_fields(Kind::any()) + } + LogNamespace::Vector => { + schema::Definition::new_with_default_metadata(Kind::any(), [log_namespace]) + } + } + } +} + +/// Deserializer that builds `Event`s from a byte frame containing logs compatible with VRL. +#[derive(Debug, Clone)] +pub struct VrlDeserializer { + program: Program, + timezone: TimeZone, +} + +fn parse_bytes(bytes: Bytes, log_namespace: LogNamespace) -> Event { + let bytes_deserializer = BytesDeserializerConfig::new().build(); + let log_event = bytes_deserializer.parse_single(bytes, log_namespace); + Event::from(log_event) +} + +impl Deserializer for VrlDeserializer { + fn parse( + &self, + bytes: Bytes, + log_namespace: LogNamespace, + ) -> vector_common::Result> { + let event = parse_bytes(bytes, log_namespace); + match self.run_vrl(event, log_namespace) { + Ok(events) => Ok(events), + Err(e) => Err(e), + } + } +} + +impl VrlDeserializer { + fn run_vrl( + &self, + event: Event, + log_namespace: LogNamespace, + ) -> vector_common::Result> { + let mut runtime = Runtime::default(); + let mut target = VrlTarget::new(event, self.program.info(), true); + match runtime.resolve(&mut target, &self.program, &self.timezone) { + Ok(_) => match target.into_events(log_namespace) { + TargetEvents::One(event) => Ok(smallvec![event]), + TargetEvents::Logs(events_iter) => Ok(SmallVec::from_iter(events_iter)), + TargetEvents::Traces(_) => Err("trace targets are not supported".into()), + }, + Err(e) => Err(e.to_string().into()), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use chrono::{DateTime, Utc}; + use indoc::indoc; + use vrl::btreemap; + use vrl::path::OwnedTargetPath; + use vrl::value::Value; + + fn make_decoder(source: &str) -> VrlDeserializer { + VrlDeserializerConfig { + vrl: VrlDeserializerOptions { + source: source.to_string(), + timezone: None, + }, + } + .build() + .expect("Failed to build VrlDeserializer") + } + + #[test] + fn test_json_message() { + let source = indoc!( + r#" + %m1 = "metadata" + . = string!(.) + . = parse_json!(.) + "# + ); + + let decoder = make_decoder(source); + + let log_bytes = Bytes::from(r#"{ "message": "Hello VRL" }"#); + let result = decoder.parse(log_bytes, LogNamespace::Vector).unwrap(); + assert_eq!(result.len(), 1); + let event = result.first().unwrap(); + assert_eq!( + *event.as_log().get(&OwnedTargetPath::event_root()).unwrap(), + btreemap! { "message" => "Hello VRL" }.into() + ); + assert_eq!( + *event + .as_log() + .get(&OwnedTargetPath::metadata_root()) + .unwrap(), + btreemap! { "m1" => "metadata" }.into() + ); + } + + #[test] + fn test_ignored_returned_expression() { + let source = indoc!( + r#" + . = { "a" : 1 } + { "b" : 9 } + "# + ); + + let decoder = make_decoder(source); + + let log_bytes = Bytes::from("some bytes"); + let result = decoder.parse(log_bytes, LogNamespace::Vector).unwrap(); + assert_eq!(result.len(), 1); + let event = result.first().unwrap(); + assert_eq!( + *event.as_log().get(&OwnedTargetPath::event_root()).unwrap(), + btreemap! { "a" => 1 }.into() + ); + } + + #[test] + fn test_multiple_events() { + let source = indoc!(". = [0,1,2]"); + let decoder = make_decoder(source); + let log_bytes = Bytes::from("some bytes"); + let result = decoder.parse(log_bytes, LogNamespace::Vector).unwrap(); + assert_eq!(result.len(), 3); + for (i, event) in result.iter().enumerate() { + assert_eq!( + *event.as_log().get(&OwnedTargetPath::event_root()).unwrap(), + i.into() + ); + } + } + + #[test] + fn test_syslog_and_cef_input() { + let source = indoc!( + r#" + if exists(.message) { + . = string!(.message) + } + . = parse_syslog(.) ?? parse_cef(.) ?? null + "# + ); + + let decoder = make_decoder(source); + + // Syslog input + let syslog_bytes = Bytes::from( + "<34>1 2024-02-06T15:04:05.000Z mymachine.example.com su - ID47 - 'su root' failed for user on /dev/pts/8", + ); + let result = decoder.parse(syslog_bytes, LogNamespace::Vector).unwrap(); + assert_eq!(result.len(), 1); + let syslog_event = result.first().unwrap(); + assert_eq!( + *syslog_event + .as_log() + .get(&OwnedTargetPath::event_root()) + .unwrap(), + btreemap! { + "appname" => "su", + "facility" => "auth", + "hostname" => "mymachine.example.com", + "message" => "'su root' failed for user on /dev/pts/8", + "msgid" => "ID47", + "severity" => "crit", + "timestamp" => "2024-02-06T15:04:05Z".parse::>().unwrap(), + "version" => 1 + } + .into() + ); + + // CEF input + let cef_bytes = Bytes::from("CEF:0|Security|Threat Manager|1.0|100|worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2 spt=1232"); + let result = decoder.parse(cef_bytes, LogNamespace::Vector).unwrap(); + assert_eq!(result.len(), 1); + let cef_event = result.first().unwrap(); + assert_eq!( + *cef_event + .as_log() + .get(&OwnedTargetPath::event_root()) + .unwrap(), + btreemap! { + "cefVersion" =>"0", + "deviceEventClassId" =>"100", + "deviceProduct" =>"Threat Manager", + "deviceVendor" =>"Security", + "deviceVersion" =>"1.0", + "dst" =>"2.1.2.2", + "name" =>"worm successfully stopped", + "severity" =>"10", + "spt" =>"1232", + "src" =>"10.0.0.1" + } + .into() + ); + let random_bytes = Bytes::from("a|- -| x"); + let result = decoder.parse(random_bytes, LogNamespace::Vector).unwrap(); + let random_event = result.first().unwrap(); + assert_eq!(result.len(), 1); + assert_eq!( + *random_event + .as_log() + .get(&OwnedTargetPath::event_root()) + .unwrap(), + Value::Null + ); + } + + #[test] + fn test_invalid_source() { + let error = VrlDeserializerConfig { + vrl: VrlDeserializerOptions { + source: ". ?".to_string(), + timezone: None, + }, + } + .build() + .unwrap_err() + .to_string(); + assert!(error.contains("error[E203]: syntax error")); + } + + #[test] + fn test_abort() { + let decoder = make_decoder("abort"); + let log_bytes = Bytes::from(r#"{ "message": "Hello VRL" }"#); + let error = decoder + .parse(log_bytes, LogNamespace::Vector) + .unwrap_err() + .to_string(); + assert!(error.contains("aborted")); + } +} diff --git a/lib/codecs/src/decoding/framing/bytes.rs b/lib/codecs/src/decoding/framing/bytes.rs new file mode 100644 index 0000000000000..d9d657c3fd274 --- /dev/null +++ b/lib/codecs/src/decoding/framing/bytes.rs @@ -0,0 +1,107 @@ +use bytes::{Bytes, BytesMut}; +use serde::{Deserialize, Serialize}; +use tokio_util::codec::Decoder; + +use super::BoxedFramingError; + +/// Config used to build a `BytesDecoderConfig`. +#[derive(Debug, Clone, Default, Deserialize, Serialize)] +pub struct BytesDecoderConfig; + +impl BytesDecoderConfig { + /// Creates a new `BytesDecoderConfig`. + pub const fn new() -> Self { + Self + } + + /// Build the `ByteDecoder` from this configuration. + pub const fn build(&self) -> BytesDecoder { + BytesDecoder::new() + } +} + +/// A decoder for passing through bytes as-is. +/// +/// This is basically a no-op and is used to convert from `BytesMut` to `Bytes`. +#[derive(Debug, Clone)] +pub struct BytesDecoder { + /// Whether the empty buffer has been flushed. This is important to + /// propagate empty frames in message based transports. + flushed: bool, +} + +impl BytesDecoder { + /// Creates a new `BytesDecoder`. + pub const fn new() -> Self { + Self { flushed: false } + } +} + +impl Default for BytesDecoder { + fn default() -> Self { + Self::new() + } +} + +impl Decoder for BytesDecoder { + type Item = Bytes; + type Error = BoxedFramingError; + + fn decode(&mut self, _src: &mut BytesMut) -> Result, Self::Error> { + self.flushed = false; + Ok(None) + } + + fn decode_eof(&mut self, src: &mut BytesMut) -> Result, Self::Error> { + if self.flushed && src.is_empty() { + Ok(None) + } else { + self.flushed = true; + let frame = src.split(); + Ok(Some(frame.freeze())) + } + } +} + +#[cfg(test)] +mod tests { + use futures::StreamExt; + use tokio_util::codec::FramedRead; + + use super::*; + + #[test] + fn decode_frame() { + let mut input = BytesMut::from("some bytes"); + let mut decoder = BytesDecoder::new(); + + assert_eq!(decoder.decode(&mut input).unwrap(), None); + assert_eq!( + decoder.decode_eof(&mut input).unwrap().unwrap(), + "some bytes" + ); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[tokio::test] + async fn decode_frame_reader() { + let input: &[u8] = b"foo"; + let decoder = BytesDecoder::new(); + + let mut reader = FramedRead::new(input, decoder); + + assert_eq!(reader.next().await.unwrap().unwrap(), "foo"); + assert!(reader.next().await.is_none()); + } + + #[tokio::test] + async fn decode_frame_reader_empty() { + let input: &[u8] = b""; + let decoder = BytesDecoder::new(); + + let mut reader = FramedRead::new(input, decoder); + + assert_eq!(reader.next().await.unwrap().unwrap(), ""); + assert!(reader.next().await.is_none()); + } +} diff --git a/lib/codecs/src/decoding/framing/character_delimited.rs b/lib/codecs/src/decoding/framing/character_delimited.rs new file mode 100644 index 0000000000000..bea46b49d0c43 --- /dev/null +++ b/lib/codecs/src/decoding/framing/character_delimited.rs @@ -0,0 +1,312 @@ +use bytes::{Buf, Bytes, BytesMut}; +use memchr::memchr; +use tokio_util::codec::Decoder; +use tracing::{trace, warn}; +use vector_config::configurable_component; + +use super::BoxedFramingError; + +/// Config used to build a `CharacterDelimitedDecoder`. +#[configurable_component] +#[derive(Debug, Clone)] +pub struct CharacterDelimitedDecoderConfig { + /// Options for the character delimited decoder. + pub character_delimited: CharacterDelimitedDecoderOptions, +} + +impl CharacterDelimitedDecoderConfig { + /// Creates a `CharacterDelimitedDecoderConfig` with the specified delimiter and default max length. + pub const fn new(delimiter: u8) -> Self { + Self { + character_delimited: CharacterDelimitedDecoderOptions::new(delimiter, None), + } + } + /// Build the `CharacterDelimitedDecoder` from this configuration. + pub const fn build(&self) -> CharacterDelimitedDecoder { + if let Some(max_length) = self.character_delimited.max_length { + CharacterDelimitedDecoder::new_with_max_length( + self.character_delimited.delimiter, + max_length, + ) + } else { + CharacterDelimitedDecoder::new(self.character_delimited.delimiter) + } + } +} + +/// Options for building a `CharacterDelimitedDecoder`. +#[configurable_component] +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct CharacterDelimitedDecoderOptions { + /// The character that delimits byte sequences. + #[configurable(metadata(docs::type_override = "ascii_char"))] + #[serde(with = "vector_core::serde::ascii_char")] + pub delimiter: u8, + + /// The maximum length of the byte buffer. + /// + /// This length does *not* include the trailing delimiter. + /// + /// By default, there is no maximum length enforced. If events are malformed, this can lead to + /// additional resource usage as events continue to be buffered in memory, and can potentially + /// lead to memory exhaustion in extreme cases. + /// + /// If there is a risk of processing malformed data, such as logs with user-controlled input, + /// consider setting the maximum length to a reasonably large value as a safety net. This + /// ensures that processing is not actually unbounded. + #[serde(skip_serializing_if = "vector_core::serde::is_default")] + pub max_length: Option, +} + +impl CharacterDelimitedDecoderOptions { + /// Create a `CharacterDelimitedDecoderOptions` with a delimiter and optional max_length. + pub const fn new(delimiter: u8, max_length: Option) -> Self { + Self { + delimiter, + max_length, + } + } +} + +/// A decoder for handling bytes that are delimited by (a) chosen character(s). +#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] +pub struct CharacterDelimitedDecoder { + /// The delimiter used to separate byte sequences. + pub delimiter: u8, + /// The maximum length of the byte buffer. + pub max_length: usize, +} + +impl CharacterDelimitedDecoder { + /// Creates a `CharacterDelimitedDecoder` with the specified delimiter. + pub const fn new(delimiter: u8) -> Self { + CharacterDelimitedDecoder { + delimiter, + max_length: usize::MAX, + } + } + + /// Creates a `CharacterDelimitedDecoder` with a maximum frame length limit. + /// + /// Any frames longer than `max_length` bytes will be discarded entirely. + pub const fn new_with_max_length(delimiter: u8, max_length: usize) -> Self { + CharacterDelimitedDecoder { + max_length, + ..CharacterDelimitedDecoder::new(delimiter) + } + } + + /// Returns the maximum frame length when decoding. + pub const fn max_length(&self) -> usize { + self.max_length + } +} + +impl Decoder for CharacterDelimitedDecoder { + type Item = Bytes; + type Error = BoxedFramingError; + + fn decode(&mut self, buf: &mut BytesMut) -> Result, Self::Error> { + loop { + // This function has the following goal: we are searching for + // sub-buffers delimited by `self.delimiter` with size no more than + // `self.max_length`. If a sub-buffer is found that exceeds + // `self.max_length` we discard it, else we return it. At the end of + // the buffer if the delimiter is not present the remainder of the + // buffer is discarded. + match memchr(self.delimiter, buf) { + None => return Ok(None), + Some(next_delimiter_idx) => { + if next_delimiter_idx > self.max_length { + // The discovered sub-buffer is too big, so we discard + // it, taking care to also discard the delimiter. + warn!( + message = "Discarding frame larger than max_length.", + buf_len = buf.len(), + max_length = self.max_length, + internal_log_rate_limit = true + ); + buf.advance(next_delimiter_idx + 1); + } else { + let frame = buf.split_to(next_delimiter_idx).freeze(); + trace!( + message = "Decoding the frame.", + bytes_processed = frame.len() + ); + buf.advance(1); // scoot past the delimiter + return Ok(Some(frame)); + } + } + } + } + } + + fn decode_eof(&mut self, buf: &mut BytesMut) -> Result, Self::Error> { + match self.decode(buf)? { + Some(frame) => Ok(Some(frame)), + None => { + if buf.is_empty() { + Ok(None) + } else if buf.len() > self.max_length { + warn!( + message = "Discarding frame larger than max_length.", + buf_len = buf.len(), + max_length = self.max_length, + internal_log_rate_limit = true + ); + Ok(None) + } else { + let bytes: Bytes = buf.split_to(buf.len()).freeze(); + Ok(Some(bytes)) + } + } + } + } +} + +#[cfg(test)] +mod tests { + use std::collections::HashMap; + + use bytes::BufMut; + use indoc::indoc; + + use super::*; + + #[test] + fn decode() { + let mut codec = CharacterDelimitedDecoder::new(b'\n'); + let buf = &mut BytesMut::new(); + buf.put_slice(b"abc\n"); + assert_eq!(Some("abc".into()), codec.decode(buf).unwrap()); + } + + #[test] + fn decode_max_length() { + const MAX_LENGTH: usize = 6; + + let mut codec = CharacterDelimitedDecoder::new_with_max_length(b'\n', MAX_LENGTH); + let buf = &mut BytesMut::new(); + + // limit is 6 so it will skip longer lines + buf.put_slice(b"1234567\n123456\n123412314\n123"); + + assert_eq!(codec.decode(buf).unwrap(), Some(Bytes::from("123456"))); + assert_eq!(codec.decode(buf).unwrap(), None); + + let buf = &mut BytesMut::new(); + + // limit is 6 so it will skip longer lines + buf.put_slice(b"1234567\n123456\n123412314\n123"); + + assert_eq!(codec.decode_eof(buf).unwrap(), Some(Bytes::from("123456"))); + assert_eq!(codec.decode_eof(buf).unwrap(), Some(Bytes::from("123"))); + assert_eq!(codec.decode_eof(buf).unwrap(), None); + } + + // Regression test for [infinite loop bug](https://github.com/vectordotdev/vector/issues/2564) + // Derived from https://github.com/tokio-rs/tokio/issues/1483 + #[test] + fn decode_discard_repeat() { + const MAX_LENGTH: usize = 1; + + let mut codec = CharacterDelimitedDecoder::new_with_max_length(b'\n', MAX_LENGTH); + let buf = &mut BytesMut::new(); + + buf.reserve(200); + buf.put(&b"aa"[..]); + assert!(codec.decode(buf).unwrap().is_none()); + buf.put(&b"a"[..]); + assert!(codec.decode(buf).unwrap().is_none()); + } + + #[test] + fn decode_json_escaped() { + let mut input = HashMap::new(); + input.insert("key", "value"); + input.insert("new", "li\nne"); + + let mut bytes = serde_json::to_vec(&input).unwrap(); + bytes.push(b'\n'); + + let mut codec = CharacterDelimitedDecoder::new(b'\n'); + let buf = &mut BytesMut::new(); + + buf.reserve(bytes.len()); + buf.extend(bytes); + + let result = codec.decode(buf).unwrap(); + + assert!(result.is_some()); + assert!(buf.is_empty()); + } + + #[test] + fn decode_json_multiline() { + let events = indoc! {r#" + {"log":"\u0009at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\n","stream":"stdout","time":"2019-01-18T07:49:27.374616758Z"} + {"log":"\u0009at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n","stream":"stdout","time":"2019-01-18T07:49:27.374640288Z"} + {"log":"\u0009at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\n","stream":"stdout","time":"2019-01-18T07:49:27.374655505Z"} + {"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.374671955Z"} + {"log":"\u0009at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\n","stream":"stdout","time":"2019-01-18T07:49:27.374690312Z"} + {"log":"\u0009at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\n","stream":"stdout","time":"2019-01-18T07:49:27.374704522Z"} + {"log":"\u0009at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\n","stream":"stdout","time":"2019-01-18T07:49:27.374718459Z"} + {"log":"\u0009at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\n","stream":"stdout","time":"2019-01-18T07:49:27.374732919Z"} + {"log":"\u0009at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\n","stream":"stdout","time":"2019-01-18T07:49:27.374750799Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.374764819Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.374778682Z"} + {"log":"\u0009at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n","stream":"stdout","time":"2019-01-18T07:49:27.374792429Z"} + {"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.374805985Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.374819625Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.374833335Z"} + {"log":"\u0009at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n","stream":"stdout","time":"2019-01-18T07:49:27.374847845Z"} + {"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.374861925Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.37487589Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.374890043Z"} + {"log":"\u0009at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)\n","stream":"stdout","time":"2019-01-18T07:49:27.374903813Z"} + {"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.374917793Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.374931586Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.374946006Z"} + {"log":"\u0009at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:117)\n","stream":"stdout","time":"2019-01-18T07:49:27.37496104Z"} + {"log":"\u0009at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:106)\n","stream":"stdout","time":"2019-01-18T07:49:27.37498773Z"} + {"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.375003113Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.375017063Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.37503086Z"} + {"log":"\u0009at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n","stream":"stdout","time":"2019-01-18T07:49:27.3750454Z"} + {"log":"\u0009at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n","stream":"stdout","time":"2019-01-18T07:49:27.37505928Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n","stream":"stdout","time":"2019-01-18T07:49:27.37507306Z"} + {"log":"\u0009at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n","stream":"stdout","time":"2019-01-18T07:49:27.375086726Z"} + {"log":"\u0009at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n","stream":"stdout","time":"2019-01-18T07:49:27.375100817Z"} + {"log":"\u0009at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n","stream":"stdout","time":"2019-01-18T07:49:27.375115354Z"} + {"log":"\u0009at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\n","stream":"stdout","time":"2019-01-18T07:49:27.375129454Z"} + {"log":"\u0009at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n","stream":"stdout","time":"2019-01-18T07:49:27.375144001Z"} + {"log":"\u0009at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\n","stream":"stdout","time":"2019-01-18T07:49:27.375157464Z"} + {"log":"\u0009at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n","stream":"stdout","time":"2019-01-18T07:49:27.375170981Z"} + {"log":"\u0009at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n","stream":"stdout","time":"2019-01-18T07:49:27.375184417Z"} + {"log":"\u0009at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\n","stream":"stdout","time":"2019-01-18T07:49:27.375198024Z"} + {"log":"\u0009at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n","stream":"stdout","time":"2019-01-18T07:49:27.375211594Z"} + {"log":"\u0009at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)\n","stream":"stdout","time":"2019-01-18T07:49:27.375225237Z"} + {"log":"\u0009at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)\n","stream":"stdout","time":"2019-01-18T07:49:27.375239487Z"} + {"log":"\u0009at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n","stream":"stdout","time":"2019-01-18T07:49:27.375253464Z"} + {"log":"\u0009at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n","stream":"stdout","time":"2019-01-18T07:49:27.375323255Z"} + {"log":"\u0009at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n","stream":"stdout","time":"2019-01-18T07:49:27.375345642Z"} + {"log":"\u0009at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n","stream":"stdout","time":"2019-01-18T07:49:27.375363208Z"} + {"log":"\u0009at java.lang.Thread.run(Thread.java:748)\n","stream":"stdout","time":"2019-01-18T07:49:27.375377695Z"} + {"log":"\n","stream":"stdout","time":"2019-01-18T07:49:27.375391335Z"} + {"log":"\n","stream":"stdout","time":"2019-01-18T07:49:27.375416915Z"} + {"log":"2019-01-18 07:53:06.419 [ ] INFO 1 --- [vent-bus.prod-1] c.t.listener.CommonListener : warehousing Dailywarehousing.daily\n","stream":"stdout","time":"2019-01-18T07:53:06.420527437Z"} + "#}; + + let mut codec = CharacterDelimitedDecoder::new(b'\n'); + let buf = &mut BytesMut::new(); + + buf.extend(events.to_string().as_bytes()); + + let mut i = 0; + while codec.decode(buf).unwrap().is_some() { + i += 1; + } + + assert_eq!(i, 51); + } +} diff --git a/lib/codecs/src/decoding/framing/chunked_gelf.rs b/lib/codecs/src/decoding/framing/chunked_gelf.rs new file mode 100644 index 0000000000000..bbddc457a3d3d --- /dev/null +++ b/lib/codecs/src/decoding/framing/chunked_gelf.rs @@ -0,0 +1,1268 @@ +use super::{BoxedFramingError, FramingError}; +use crate::{BytesDecoder, StreamDecodingError}; +use bytes::{Buf, Bytes, BytesMut}; +use derivative::Derivative; +use flate2::read::{MultiGzDecoder, ZlibDecoder}; +use snafu::{ensure, ResultExt, Snafu}; +use std::any::Any; +use std::collections::HashMap; +use std::io::Read; +use std::sync::{Arc, Mutex}; +use std::time::Duration; +use tokio; +use tokio::task::JoinHandle; +use tokio_util::codec::Decoder; +use tracing::{debug, trace, warn}; +use vector_common::constants::{GZIP_MAGIC, ZLIB_MAGIC}; +use vector_config::configurable_component; + +const GELF_MAGIC: &[u8] = &[0x1e, 0x0f]; +const GELF_MAX_TOTAL_CHUNKS: u8 = 128; +const DEFAULT_TIMEOUT_SECS: f64 = 5.0; + +const fn default_timeout_secs() -> f64 { + DEFAULT_TIMEOUT_SECS +} + +/// Config used to build a `ChunkedGelfDecoder`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct ChunkedGelfDecoderConfig { + /// Options for the chunked GELF decoder. + #[serde(default)] + pub chunked_gelf: ChunkedGelfDecoderOptions, +} + +impl ChunkedGelfDecoderConfig { + /// Build the `ChunkedGelfDecoder` from this configuration. + pub fn build(&self) -> ChunkedGelfDecoder { + ChunkedGelfDecoder::new( + self.chunked_gelf.timeout_secs, + self.chunked_gelf.pending_messages_limit, + self.chunked_gelf.max_length, + self.chunked_gelf.decompression, + ) + } +} + +/// Options for building a `ChunkedGelfDecoder`. +#[configurable_component] +#[derive(Clone, Debug, Derivative)] +#[derivative(Default)] +pub struct ChunkedGelfDecoderOptions { + /// The timeout, in seconds, for a message to be fully received. If the timeout is reached, the + /// decoder drops all the received chunks of the timed out message. + #[serde(default = "default_timeout_secs")] + #[derivative(Default(value = "default_timeout_secs()"))] + pub timeout_secs: f64, + + /// The maximum number of pending incomplete messages. If this limit is reached, the decoder starts + /// dropping chunks of new messages, ensuring the memory usage of the decoder's state is bounded. + /// If this option is not set, the decoder does not limit the number of pending messages and the memory usage + /// of its messages buffer can grow unbounded. This matches Graylog Server's behavior. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub pending_messages_limit: Option, + + /// The maximum length of a single GELF message, in bytes. Messages longer than this length will + /// be dropped. If this option is not set, the decoder does not limit the length of messages and + /// the per-message memory is unbounded. + /// + /// Note that a message can be composed of multiple chunks and this limit is applied to the whole + /// message, not to individual chunks. + /// + /// This limit takes only into account the message's payload and the GELF header bytes are excluded from the calculation. + /// The message's payload is the concatenation of all the chunks' payloads. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub max_length: Option, + + /// Decompression configuration for GELF messages. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub decompression: ChunkedGelfDecompressionConfig, +} + +/// Decompression options for ChunkedGelfDecoder. +#[configurable_component] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Derivative)] +#[derivative(Default)] +pub enum ChunkedGelfDecompressionConfig { + /// Automatically detect the decompression method based on the magic bytes of the message. + #[derivative(Default)] + Auto, + /// Use Gzip decompression. + Gzip, + /// Use Zlib decompression. + Zlib, + /// Do not decompress the message. + None, +} + +impl ChunkedGelfDecompressionConfig { + pub fn get_decompression(&self, data: &Bytes) -> ChunkedGelfDecompression { + match self { + Self::Auto => ChunkedGelfDecompression::from_magic(data), + Self::Gzip => ChunkedGelfDecompression::Gzip, + Self::Zlib => ChunkedGelfDecompression::Zlib, + Self::None => ChunkedGelfDecompression::None, + } + } +} + +#[derive(Debug)] +struct MessageState { + total_chunks: u8, + chunks: [Bytes; GELF_MAX_TOTAL_CHUNKS as usize], + chunks_bitmap: u128, + current_length: usize, + timeout_task: JoinHandle<()>, +} + +impl MessageState { + pub const fn new(total_chunks: u8, timeout_task: JoinHandle<()>) -> Self { + Self { + total_chunks, + chunks: [const { Bytes::new() }; GELF_MAX_TOTAL_CHUNKS as usize], + chunks_bitmap: 0, + current_length: 0, + timeout_task, + } + } + + fn is_chunk_present(&self, sequence_number: u8) -> bool { + let chunk_bitmap_id = 1 << sequence_number; + self.chunks_bitmap & chunk_bitmap_id != 0 + } + + fn add_chunk(&mut self, sequence_number: u8, chunk: Bytes) { + let chunk_bitmap_id = 1 << sequence_number; + self.chunks_bitmap |= chunk_bitmap_id; + self.current_length += chunk.remaining(); + self.chunks[sequence_number as usize] = chunk; + } + + fn is_complete(&self) -> bool { + self.chunks_bitmap.count_ones() == self.total_chunks as u32 + } + + fn current_length(&self) -> usize { + self.current_length + } + + fn retrieve_message(&self) -> Option { + if self.is_complete() { + self.timeout_task.abort(); + let chunks = &self.chunks[0..self.total_chunks as usize]; + let mut message = BytesMut::new(); + for chunk in chunks { + message.extend_from_slice(chunk); + } + Some(message.freeze()) + } else { + None + } + } +} + +#[derive(Debug, PartialEq, Eq)] +pub enum ChunkedGelfDecompression { + Gzip, + Zlib, + None, +} + +impl ChunkedGelfDecompression { + pub fn from_magic(data: &Bytes) -> Self { + if data.starts_with(GZIP_MAGIC) { + trace!("Detected Gzip compression"); + return Self::Gzip; + } + + if data.starts_with(ZLIB_MAGIC) { + // Based on https://datatracker.ietf.org/doc/html/rfc1950#section-2.2 + if let Some([first_byte, second_byte]) = data.get(0..2) { + if (*first_byte as u16 * 256 + *second_byte as u16) % 31 == 0 { + trace!("Detected Zlib compression"); + return Self::Zlib; + } + }; + + warn!( + "Detected Zlib magic bytes but the header is invalid: {:?}", + data.get(0..2) + ); + }; + + trace!("No compression detected",); + Self::None + } + + pub fn decompress(&self, data: Bytes) -> Result { + let decompressed = match self { + Self::Gzip => { + let mut decoder = MultiGzDecoder::new(data.reader()); + let mut decompressed = Vec::new(); + decoder + .read_to_end(&mut decompressed) + .context(GzipDecompressionSnafu)?; + Bytes::from(decompressed) + } + Self::Zlib => { + let mut decoder = ZlibDecoder::new(data.reader()); + let mut decompressed = Vec::new(); + decoder + .read_to_end(&mut decompressed) + .context(ZlibDecompressionSnafu)?; + Bytes::from(decompressed) + } + Self::None => data, + }; + Ok(decompressed) + } +} + +#[derive(Debug, Snafu)] +pub enum ChunkedGelfDecompressionError { + #[snafu(display("Gzip decompression error: {source}"))] + GzipDecompression { source: std::io::Error }, + #[snafu(display("Zlib decompression error: {source}"))] + ZlibDecompression { source: std::io::Error }, +} + +#[derive(Debug, Snafu)] +pub enum ChunkedGelfDecoderError { + #[snafu(display("Invalid chunk header with less than 10 bytes: 0x{header:0x}"))] + InvalidChunkHeader { header: Bytes }, + #[snafu(display("Received chunk with message id {message_id} and sequence number {sequence_number} has an invalid total chunks value of {total_chunks}. It must be between 1 and {GELF_MAX_TOTAL_CHUNKS}."))] + InvalidTotalChunks { + message_id: u64, + sequence_number: u8, + total_chunks: u8, + }, + #[snafu(display("Received chunk with message id {message_id} and sequence number {sequence_number} has a sequence number greater than its total chunks value of {total_chunks}"))] + InvalidSequenceNumber { + message_id: u64, + sequence_number: u8, + total_chunks: u8, + }, + #[snafu(display("Pending messages limit of {pending_messages_limit} reached while processing chunk with message id {message_id} and sequence number {sequence_number}"))] + PendingMessagesLimitReached { + message_id: u64, + sequence_number: u8, + pending_messages_limit: usize, + }, + #[snafu(display("Received chunk with message id {message_id} and sequence number {sequence_number} has different total chunks values: original total chunks value is {original_total_chunks} and received total chunks value is {received_total_chunks}"))] + TotalChunksMismatch { + message_id: u64, + sequence_number: u8, + original_total_chunks: u8, + received_total_chunks: u8, + }, + #[snafu(display("Message with id {message_id} has exceeded the maximum message length and it will be dropped: got {length} bytes and max message length is {max_length} bytes. Discarding all buffered chunks of that message"))] + MaxLengthExceed { + message_id: u64, + sequence_number: u8, + length: usize, + max_length: usize, + }, + #[snafu(display("Error while decompressing message. {source}"))] + Decompression { + source: ChunkedGelfDecompressionError, + }, +} + +impl StreamDecodingError for ChunkedGelfDecoderError { + fn can_continue(&self) -> bool { + true + } +} + +impl FramingError for ChunkedGelfDecoderError { + fn as_any(&self) -> &dyn Any { + self as &dyn Any + } +} + +/// A codec for handling GELF messages that may be chunked. The implementation is based on [Graylog's GELF documentation](https://go2docs.graylog.org/5-0/getting_in_log_data/gelf.html#GELFviaUDP) +/// and [Graylog's go-gelf library](https://github.com/Graylog2/go-gelf/blob/v1/gelf/reader.go). +#[derive(Debug, Clone)] +pub struct ChunkedGelfDecoder { + // We have to use this decoder to read all the bytes from the buffer first and don't let tokio + // read it buffered, as tokio FramedRead will not always call the decode method with the + // whole message. (see https://docs.rs/tokio-util/latest/src/tokio_util/codec/framed_impl.rs.html#26). + // This limitation is due to the fact that the GELF format does not specify the length of the + // message, so we have to read all the bytes from the message (datagram) + bytes_decoder: BytesDecoder, + decompression_config: ChunkedGelfDecompressionConfig, + state: Arc>>, + timeout: Duration, + pending_messages_limit: Option, + max_length: Option, +} + +impl ChunkedGelfDecoder { + /// Creates a new `ChunkedGelfDecoder`. + pub fn new( + timeout_secs: f64, + pending_messages_limit: Option, + max_length: Option, + decompression_config: ChunkedGelfDecompressionConfig, + ) -> Self { + Self { + bytes_decoder: BytesDecoder::new(), + decompression_config, + state: Arc::new(Mutex::new(HashMap::new())), + timeout: Duration::from_secs_f64(timeout_secs), + pending_messages_limit, + max_length, + } + } + + /// Decode a GELF chunk + pub fn decode_chunk( + &mut self, + mut chunk: Bytes, + ) -> Result, ChunkedGelfDecoderError> { + // Encoding scheme: + // + // +------------+-----------------+--------------+----------------------+ + // | Message id | Sequence number | Total chunks | Chunk payload | + // +------------+-----------------+--------------+----------------------+ + // | 64 bits | 8 bits | 8 bits | remaining bits | + // +------------+-----------------+--------------+----------------------+ + // + // As this codec is oriented for UDP, the chunks (datagrams) are not guaranteed to be received in order, + // nor to be received at all. So, we have to store the chunks in a buffer (state field) until we receive + // all the chunks of a message. When we receive all the chunks of a message, we can concatenate them + // and return the complete payload. + + // We need 10 bytes to read the message id, sequence number and total chunks + ensure!( + chunk.remaining() >= 10, + InvalidChunkHeaderSnafu { header: chunk } + ); + + let message_id = chunk.get_u64(); + let sequence_number = chunk.get_u8(); + let total_chunks = chunk.get_u8(); + + ensure!( + total_chunks > 0 && total_chunks <= GELF_MAX_TOTAL_CHUNKS, + InvalidTotalChunksSnafu { + message_id, + sequence_number, + total_chunks + } + ); + + ensure!( + sequence_number < total_chunks, + InvalidSequenceNumberSnafu { + message_id, + sequence_number, + total_chunks + } + ); + + let mut state_lock = self.state.lock().expect("poisoned lock"); + + if let Some(pending_messages_limit) = self.pending_messages_limit { + ensure!( + state_lock.len() < pending_messages_limit, + PendingMessagesLimitReachedSnafu { + message_id, + sequence_number, + pending_messages_limit + } + ); + } + + let message_state = state_lock.entry(message_id).or_insert_with(|| { + // We need to spawn a task that will clear the message state after a certain time + // otherwise we will have a memory leak due to messages that never complete + let state = Arc::clone(&self.state); + let timeout = self.timeout; + let timeout_handle = tokio::spawn(async move { + tokio::time::sleep(timeout).await; + let mut state_lock = state.lock().expect("poisoned lock"); + if state_lock.remove(&message_id).is_some() { + warn!( + message_id = message_id, + timeout_secs = timeout.as_secs_f64(), + internal_log_rate_limit = true, + "Message was not fully received within the timeout window. Discarding it." + ); + } + }); + MessageState::new(total_chunks, timeout_handle) + }); + + ensure!( + message_state.total_chunks == total_chunks, + TotalChunksMismatchSnafu { + message_id, + sequence_number, + original_total_chunks: message_state.total_chunks, + received_total_chunks: total_chunks + } + ); + + if message_state.is_chunk_present(sequence_number) { + debug!( + message_id = message_id, + sequence_number = sequence_number, + internal_log_rate_limit = true, + "Received a duplicate chunk. Ignoring it." + ); + return Ok(None); + } + + message_state.add_chunk(sequence_number, chunk); + + if let Some(max_length) = self.max_length { + let length = message_state.current_length(); + if length > max_length { + state_lock.remove(&message_id); + return Err(ChunkedGelfDecoderError::MaxLengthExceed { + message_id, + sequence_number, + length, + max_length, + }); + } + } + + if let Some(message) = message_state.retrieve_message() { + state_lock.remove(&message_id); + Ok(Some(message)) + } else { + Ok(None) + } + } + + /// Decode a GELF message that may be chunked or not. The source bytes are expected to be + /// datagram-based (or message-based), so it must not contain multiple GELF messages + /// delimited by '\0', such as it would be in a stream-based protocol. + pub fn decode_message( + &mut self, + mut src: Bytes, + ) -> Result, ChunkedGelfDecoderError> { + let message = if src.starts_with(GELF_MAGIC) { + trace!("Received a chunked GELF message based on the magic bytes"); + src.advance(2); + self.decode_chunk(src)? + } else { + trace!( + "Received an unchunked GELF message. First two bytes of message: {:?}", + &src[0..2] + ); + Some(src) + }; + + // We can have both chunked and unchunked messages that are compressed + message + .map(|message| { + self.decompression_config + .get_decompression(&message) + .decompress(message) + .context(DecompressionSnafu) + }) + .transpose() + } +} + +impl Default for ChunkedGelfDecoder { + fn default() -> Self { + Self::new( + DEFAULT_TIMEOUT_SECS, + None, + None, + ChunkedGelfDecompressionConfig::Auto, + ) + } +} + +impl Decoder for ChunkedGelfDecoder { + type Item = Bytes; + + type Error = BoxedFramingError; + + fn decode(&mut self, src: &mut bytes::BytesMut) -> Result, Self::Error> { + if src.is_empty() { + return Ok(None); + } + + Ok(self + .bytes_decoder + .decode(src)? + .and_then(|frame| self.decode_message(frame).transpose()) + .transpose()?) + } + fn decode_eof(&mut self, buf: &mut BytesMut) -> Result, Self::Error> { + if buf.is_empty() { + return Ok(None); + } + + Ok(self + .bytes_decoder + .decode_eof(buf)? + .and_then(|frame| self.decode_message(frame).transpose()) + .transpose()?) + } +} + +#[cfg(test)] +mod tests { + + use super::*; + use bytes::{BufMut, BytesMut}; + use flate2::{write::GzEncoder, write::ZlibEncoder}; + use rand::{rngs::SmallRng, seq::SliceRandom, SeedableRng}; + use rstest::{fixture, rstest}; + use std::fmt::Write as FmtWrite; + use std::io::Write as IoWrite; + use tracing_test::traced_test; + + pub enum Compression { + Gzip, + Zlib, + } + + impl Compression { + pub fn compress(&self, payload: &impl AsRef<[u8]>) -> Bytes { + self.compress_with_level(payload, flate2::Compression::default()) + } + + pub fn compress_with_level( + &self, + payload: &impl AsRef<[u8]>, + level: flate2::Compression, + ) -> Bytes { + match self { + Compression::Gzip => { + let mut encoder = GzEncoder::new(Vec::new(), level); + encoder + .write_all(payload.as_ref()) + .expect("failed to write to encoder"); + encoder.finish().expect("failed to finish encoder").into() + } + Compression::Zlib => { + let mut encoder = ZlibEncoder::new(Vec::new(), level); + encoder + .write_all(payload.as_ref()) + .expect("failed to write to encoder"); + encoder.finish().expect("failed to finish encoder").into() + } + } + } + } + + fn create_chunk( + message_id: u64, + sequence_number: u8, + total_chunks: u8, + payload: &impl AsRef<[u8]>, + ) -> BytesMut { + let mut chunk = BytesMut::new(); + chunk.put_slice(GELF_MAGIC); + chunk.put_u64(message_id); + chunk.put_u8(sequence_number); + chunk.put_u8(total_chunks); + chunk.extend_from_slice(payload.as_ref()); + chunk + } + + #[fixture] + fn unchunked_message() -> (BytesMut, String) { + let payload = "foo"; + (BytesMut::from(payload), payload.to_string()) + } + + #[fixture] + fn two_chunks_message() -> ([BytesMut; 2], String) { + let message_id = 1u64; + let total_chunks = 2u8; + + let first_sequence_number = 0u8; + let first_payload = "foo"; + let first_chunk = create_chunk( + message_id, + first_sequence_number, + total_chunks, + &first_payload, + ); + + let second_sequence_number = 1u8; + let second_payload = "bar"; + let second_chunk = create_chunk( + message_id, + second_sequence_number, + total_chunks, + &second_payload, + ); + + ( + [first_chunk, second_chunk], + format!("{first_payload}{second_payload}"), + ) + } + + #[fixture] + fn three_chunks_message() -> ([BytesMut; 3], String) { + let message_id = 2u64; + let total_chunks = 3u8; + + let first_sequence_number = 0u8; + let first_payload = "foo"; + let first_chunk = create_chunk( + message_id, + first_sequence_number, + total_chunks, + &first_payload, + ); + + let second_sequence_number = 1u8; + let second_payload = "bar"; + let second_chunk = create_chunk( + message_id, + second_sequence_number, + total_chunks, + &second_payload, + ); + + let third_sequence_number = 2u8; + let third_payload = "baz"; + let third_chunk = create_chunk( + message_id, + third_sequence_number, + total_chunks, + &third_payload, + ); + + ( + [first_chunk, second_chunk, third_chunk], + format!("{first_payload}{second_payload}{third_payload}"), + ) + } + + fn downcast_framing_error(error: &BoxedFramingError) -> &ChunkedGelfDecoderError { + error + .as_any() + .downcast_ref::() + .expect("Expected ChunkedGelfDecoderError to be downcasted") + } + + #[rstest] + #[tokio::test] + async fn decode_chunked(two_chunks_message: ([BytesMut; 2], String)) { + let (mut chunks, expected_message) = two_chunks_message; + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut chunks[0]).unwrap(); + assert!(frame.is_none()); + + let frame = decoder.decode_eof(&mut chunks[1]).unwrap(); + assert_eq!(frame, Some(Bytes::from(expected_message))); + } + + #[rstest] + #[tokio::test] + async fn decode_unchunked(unchunked_message: (BytesMut, String)) { + let (mut message, expected_message) = unchunked_message; + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut message).unwrap(); + assert_eq!(frame, Some(Bytes::from(expected_message))); + } + + #[rstest] + #[tokio::test] + async fn decode_unordered_chunks(two_chunks_message: ([BytesMut; 2], String)) { + let (mut chunks, expected_message) = two_chunks_message; + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut chunks[1]).unwrap(); + assert!(frame.is_none()); + + let frame = decoder.decode_eof(&mut chunks[0]).unwrap(); + assert_eq!(frame, Some(Bytes::from(expected_message))); + } + + #[rstest] + #[tokio::test] + async fn decode_unordered_messages( + two_chunks_message: ([BytesMut; 2], String), + three_chunks_message: ([BytesMut; 3], String), + ) { + let (mut two_chunks, two_chunks_expected) = two_chunks_message; + let (mut three_chunks, three_chunks_expected) = three_chunks_message; + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut three_chunks[2]).unwrap(); + assert!(frame.is_none()); + + let frame = decoder.decode_eof(&mut two_chunks[0]).unwrap(); + assert!(frame.is_none()); + + let frame = decoder.decode_eof(&mut three_chunks[0]).unwrap(); + assert!(frame.is_none()); + + let frame = decoder.decode_eof(&mut two_chunks[1]).unwrap(); + assert_eq!(frame, Some(Bytes::from(two_chunks_expected))); + + let frame = decoder.decode_eof(&mut three_chunks[1]).unwrap(); + assert_eq!(frame, Some(Bytes::from(three_chunks_expected))); + } + + #[rstest] + #[tokio::test] + async fn decode_mixed_chunked_and_unchunked_messages( + unchunked_message: (BytesMut, String), + two_chunks_message: ([BytesMut; 2], String), + ) { + let (mut unchunked_message, expected_unchunked_message) = unchunked_message; + let (mut chunks, expected_chunked_message) = two_chunks_message; + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut chunks[1]).unwrap(); + assert!(frame.is_none()); + + let frame = decoder.decode_eof(&mut unchunked_message).unwrap(); + assert_eq!(frame, Some(Bytes::from(expected_unchunked_message))); + + let frame = decoder.decode_eof(&mut chunks[0]).unwrap(); + assert_eq!(frame, Some(Bytes::from(expected_chunked_message))); + } + + #[tokio::test] + async fn decode_shuffled_messages() { + let mut rng = SmallRng::seed_from_u64(420); + let total_chunks = 100u8; + let first_message_id = 1u64; + let first_payload = "first payload"; + let second_message_id = 2u64; + let second_payload = "second payload"; + let first_message_chunks = (0..total_chunks).map(|sequence_number| { + create_chunk( + first_message_id, + sequence_number, + total_chunks, + &first_payload, + ) + }); + let second_message_chunks = (0..total_chunks).map(|sequence_number| { + create_chunk( + second_message_id, + sequence_number, + total_chunks, + &second_payload, + ) + }); + let expected_first_message = first_payload.repeat(total_chunks as usize); + let expected_second_message = second_payload.repeat(total_chunks as usize); + let mut merged_chunks = first_message_chunks + .chain(second_message_chunks) + .collect::>(); + merged_chunks.shuffle(&mut rng); + let mut decoder = ChunkedGelfDecoder::default(); + + let mut count = 0; + let first_retrieved_message = loop { + assert!(count < 2 * total_chunks as usize); + if let Some(message) = decoder.decode_eof(&mut merged_chunks[count]).unwrap() { + break message; + } else { + count += 1; + } + }; + let second_retrieved_message = loop { + assert!(count < 2 * total_chunks as usize); + if let Some(message) = decoder.decode_eof(&mut merged_chunks[count]).unwrap() { + break message; + } else { + count += 1 + } + }; + + assert_eq!(second_retrieved_message, expected_first_message); + assert_eq!(first_retrieved_message, expected_second_message); + } + + #[rstest] + #[tokio::test(start_paused = true)] + #[traced_test] + async fn decode_timeout(two_chunks_message: ([BytesMut; 2], String)) { + let (mut chunks, _) = two_chunks_message; + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut chunks[0]).unwrap(); + assert!(frame.is_none()); + assert!(!decoder.state.lock().unwrap().is_empty()); + + // The message state should be cleared after a certain time + tokio::time::sleep(Duration::from_secs_f64(DEFAULT_TIMEOUT_SECS + 1.0)).await; + assert!(decoder.state.lock().unwrap().is_empty()); + assert!(logs_contain( + "Message was not fully received within the timeout window. Discarding it." + )); + + let frame = decoder.decode_eof(&mut chunks[1]).unwrap(); + assert!(frame.is_none()); + + tokio::time::sleep(Duration::from_secs_f64(DEFAULT_TIMEOUT_SECS + 1.0)).await; + assert!(decoder.state.lock().unwrap().is_empty()); + assert!(logs_contain( + "Message was not fully received within the timeout window. Discarding it" + )); + } + + #[tokio::test] + async fn decode_empty_input() { + let mut src = BytesMut::new(); + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut src).unwrap(); + assert!(frame.is_none()); + } + + #[tokio::test] + async fn decode_chunk_with_invalid_header() { + let mut src = BytesMut::new(); + src.extend_from_slice(GELF_MAGIC); + // Invalid chunk header with less than 10 bytes + let invalid_chunk = [0x12, 0x34]; + src.extend_from_slice(&invalid_chunk); + let mut decoder = ChunkedGelfDecoder::default(); + let frame = decoder.decode_eof(&mut src); + + let error = frame.unwrap_err(); + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::InvalidChunkHeader { .. } + )); + } + + #[tokio::test] + async fn decode_chunk_with_invalid_total_chunks() { + let message_id = 1u64; + let sequence_number = 1u8; + let invalid_total_chunks = GELF_MAX_TOTAL_CHUNKS + 1; + let payload = "foo"; + let mut chunk = create_chunk(message_id, sequence_number, invalid_total_chunks, &payload); + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut chunk); + let error = frame.unwrap_err(); + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::InvalidTotalChunks { + message_id: 1, + sequence_number: 1, + total_chunks: 129, + } + )); + } + + #[tokio::test] + async fn decode_chunk_with_invalid_sequence_number() { + let message_id = 1u64; + let total_chunks = 2u8; + let invalid_sequence_number = total_chunks + 1; + let payload = "foo"; + let mut chunk = create_chunk(message_id, invalid_sequence_number, total_chunks, &payload); + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut chunk); + let error = frame.unwrap_err(); + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::InvalidSequenceNumber { + message_id: 1, + sequence_number: 3, + total_chunks: 2, + } + )); + } + + #[rstest] + #[tokio::test] + async fn decode_reached_pending_messages_limit( + two_chunks_message: ([BytesMut; 2], String), + three_chunks_message: ([BytesMut; 3], String), + ) { + let (mut two_chunks, _) = two_chunks_message; + let (mut three_chunks, _) = three_chunks_message; + let mut decoder = ChunkedGelfDecoder { + pending_messages_limit: Some(1), + ..Default::default() + }; + + let frame = decoder.decode_eof(&mut two_chunks[0]).unwrap(); + assert!(frame.is_none()); + assert!(decoder.state.lock().unwrap().len() == 1); + + let frame = decoder.decode_eof(&mut three_chunks[0]); + let error = frame.unwrap_err(); + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::PendingMessagesLimitReached { + message_id: 2u64, + sequence_number: 0u8, + pending_messages_limit: 1, + } + )); + assert!(decoder.state.lock().unwrap().len() == 1); + } + + #[rstest] + #[tokio::test] + async fn decode_chunk_with_different_total_chunks() { + let message_id = 1u64; + let sequence_number = 0u8; + let total_chunks = 2u8; + let payload = "foo"; + let mut first_chunk = create_chunk(message_id, sequence_number, total_chunks, &payload); + let mut second_chunk = + create_chunk(message_id, sequence_number + 1, total_chunks + 1, &payload); + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut first_chunk).unwrap(); + assert!(frame.is_none()); + + let frame = decoder.decode_eof(&mut second_chunk); + let error = frame.unwrap_err(); + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::TotalChunksMismatch { + message_id: 1, + sequence_number: 1, + original_total_chunks: 2, + received_total_chunks: 3, + } + )); + } + + #[rstest] + #[tokio::test] + async fn decode_message_greater_than_max_length(two_chunks_message: ([BytesMut; 2], String)) { + let (mut chunks, _) = two_chunks_message; + let mut decoder = ChunkedGelfDecoder { + max_length: Some(5), + ..Default::default() + }; + + let frame = decoder.decode_eof(&mut chunks[0]).unwrap(); + assert!(frame.is_none()); + let frame = decoder.decode_eof(&mut chunks[1]); + let error = frame.unwrap_err(); + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::MaxLengthExceed { + message_id: 1, + sequence_number: 1, + length: 6, + max_length: 5, + } + )); + assert_eq!(decoder.state.lock().unwrap().len(), 0); + } + + #[rstest] + #[tokio::test] + #[traced_test] + async fn decode_duplicated_chunk(two_chunks_message: ([BytesMut; 2], String)) { + let (mut chunks, _) = two_chunks_message; + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder.decode_eof(&mut chunks[0].clone()).unwrap(); + assert!(frame.is_none()); + + let frame = decoder.decode_eof(&mut chunks[0]).unwrap(); + assert!(frame.is_none()); + assert!(logs_contain("Received a duplicate chunk. Ignoring it.")); + } + + #[tokio::test] + #[rstest] + #[case::gzip(Compression::Gzip)] + #[case::zlib(Compression::Zlib)] + async fn decode_compressed_unchunked_message(#[case] compression: Compression) { + let payload = (0..100).fold(String::new(), |mut payload, n| { + write!(payload, "foo{n}").unwrap(); + payload + }); + let compressed_payload = compression.compress(&payload); + let mut decoder = ChunkedGelfDecoder::default(); + + let frame = decoder + .decode_eof(&mut compressed_payload.into()) + .expect("decoding should not fail") + .expect("decoding should return a frame"); + + assert_eq!(frame, payload); + } + + #[tokio::test] + #[rstest] + #[case::gzip(Compression::Gzip)] + #[case::zlib(Compression::Zlib)] + async fn decode_compressed_chunked_message(#[case] compression: Compression) { + let message_id = 1u64; + let max_chunk_size = 5; + let payload = (0..100).fold(String::new(), |mut payload, n| { + write!(payload, "foo{n}").unwrap(); + payload + }); + let compressed_payload = compression.compress(&payload); + let total_chunks = compressed_payload.len().div_ceil(max_chunk_size) as u8; + assert!(total_chunks < GELF_MAX_TOTAL_CHUNKS); + let mut chunks = compressed_payload + .chunks(max_chunk_size) + .enumerate() + .map(|(i, chunk)| create_chunk(message_id, i as u8, total_chunks, &chunk)) + .collect::>(); + let (last_chunk, first_chunks) = + chunks.split_last_mut().expect("chunks should not be empty"); + let mut decoder = ChunkedGelfDecoder::default(); + + for chunk in first_chunks { + let frame = decoder.decode_eof(chunk).expect("decoding should not fail"); + assert!(frame.is_none()); + } + let frame = decoder + .decode_eof(last_chunk) + .expect("decoding should not fail") + .expect("decoding should return a frame"); + + assert_eq!(frame, payload); + } + + #[tokio::test] + async fn decode_malformed_gzip_message() { + let mut compressed_payload = BytesMut::new(); + compressed_payload.extend(GZIP_MAGIC); + compressed_payload.extend(&[0x12, 0x34, 0x56, 0x78]); + let mut decoder = ChunkedGelfDecoder::default(); + + let error = decoder + .decode_eof(&mut compressed_payload) + .expect_err("decoding should fail"); + + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::Decompression { + source: ChunkedGelfDecompressionError::GzipDecompression { .. } + } + )); + } + + #[tokio::test] + async fn decode_malformed_zlib_message() { + let mut compressed_payload = BytesMut::new(); + compressed_payload.extend(ZLIB_MAGIC); + compressed_payload.extend(&[0x9c, 0x12, 0x34, 0x56]); + let mut decoder = ChunkedGelfDecoder::default(); + + let error = decoder + .decode_eof(&mut compressed_payload) + .expect_err("decoding should fail"); + + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::Decompression { + source: ChunkedGelfDecompressionError::ZlibDecompression { .. } + } + )); + } + + #[tokio::test] + async fn decode_zlib_payload_with_zlib_decoder() { + let payload = "foo"; + let compressed_payload = Compression::Zlib.compress(&payload); + let mut decoder = ChunkedGelfDecoder { + decompression_config: ChunkedGelfDecompressionConfig::Zlib, + ..Default::default() + }; + + let frame = decoder + .decode_eof(&mut compressed_payload.into()) + .expect("decoding should not fail") + .expect("decoding should return a frame"); + + assert_eq!(frame, payload); + } + + #[tokio::test] + async fn decode_gzip_payload_with_zlib_decoder() { + let payload = "foo"; + let compressed_payload = Compression::Gzip.compress(&payload); + let mut decoder = ChunkedGelfDecoder { + decompression_config: ChunkedGelfDecompressionConfig::Zlib, + ..Default::default() + }; + + let error = decoder + .decode_eof(&mut compressed_payload.into()) + .expect_err("decoding should fail"); + + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::Decompression { + source: ChunkedGelfDecompressionError::ZlibDecompression { .. } + } + )); + } + + #[tokio::test] + async fn decode_uncompressed_payload_with_zlib_decoder() { + let payload = "foo"; + let mut decoder = ChunkedGelfDecoder { + decompression_config: ChunkedGelfDecompressionConfig::Zlib, + ..Default::default() + }; + + let error = decoder + .decode_eof(&mut payload.into()) + .expect_err("decoding should fail"); + + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::Decompression { + source: ChunkedGelfDecompressionError::ZlibDecompression { .. } + } + )); + } + + #[tokio::test] + async fn decode_gzip_payload_with_gzip_decoder() { + let payload = "foo"; + let compressed_payload = Compression::Gzip.compress(&payload); + let mut decoder = ChunkedGelfDecoder { + decompression_config: ChunkedGelfDecompressionConfig::Gzip, + ..Default::default() + }; + + let frame = decoder + .decode_eof(&mut compressed_payload.into()) + .expect("decoding should not fail") + .expect("decoding should return a frame"); + + assert_eq!(frame, payload); + } + + #[tokio::test] + async fn decode_zlib_payload_with_gzip_decoder() { + let payload = "foo"; + let compressed_payload = Compression::Zlib.compress(&payload); + let mut decoder = ChunkedGelfDecoder { + decompression_config: ChunkedGelfDecompressionConfig::Gzip, + ..Default::default() + }; + + let error = decoder + .decode_eof(&mut compressed_payload.into()) + .expect_err("decoding should fail"); + + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::Decompression { + source: ChunkedGelfDecompressionError::GzipDecompression { .. } + } + )); + } + + #[tokio::test] + async fn decode_uncompressed_payload_with_gzip_decoder() { + let payload = "foo"; + let mut decoder = ChunkedGelfDecoder { + decompression_config: ChunkedGelfDecompressionConfig::Gzip, + ..Default::default() + }; + + let error = decoder + .decode_eof(&mut payload.into()) + .expect_err("decoding should fail"); + + let downcasted_error = downcast_framing_error(&error); + assert!(matches!( + downcasted_error, + ChunkedGelfDecoderError::Decompression { + source: ChunkedGelfDecompressionError::GzipDecompression { .. } + } + )); + } + + #[tokio::test] + #[rstest] + #[case::gzip(Compression::Gzip)] + #[case::zlib(Compression::Zlib)] + async fn decode_compressed_payload_with_no_decompression_decoder( + #[case] compression: Compression, + ) { + let payload = "foo"; + let compressed_payload = compression.compress(&payload); + let mut decoder = ChunkedGelfDecoder { + decompression_config: ChunkedGelfDecompressionConfig::None, + ..Default::default() + }; + + let frame = decoder + .decode_eof(&mut compressed_payload.clone().into()) + .expect("decoding should not fail") + .expect("decoding should return a frame"); + + assert_eq!(frame, compressed_payload); + } + + #[test] + fn detect_gzip_compression() { + let payload = "foo"; + + for level in 0..=9 { + let level = flate2::Compression::new(level); + let compressed_payload = Compression::Gzip.compress_with_level(&payload, level); + let actual = ChunkedGelfDecompression::from_magic(&compressed_payload); + assert_eq!( + actual, + ChunkedGelfDecompression::Gzip, + "Failed for level {}", + level.level() + ); + } + } + + #[test] + fn detect_zlib_compression() { + let payload = "foo"; + + for level in 0..=9 { + let level = flate2::Compression::new(level); + let compressed_payload = Compression::Zlib.compress_with_level(&payload, level); + let actual = ChunkedGelfDecompression::from_magic(&compressed_payload); + assert_eq!( + actual, + ChunkedGelfDecompression::Zlib, + "Failed for level {}", + level.level() + ); + } + } + + #[test] + fn detect_no_compression() { + let payload = "foo"; + + let detected_compression = ChunkedGelfDecompression::from_magic(&payload.into()); + + assert_eq!(detected_compression, ChunkedGelfDecompression::None); + } +} diff --git a/lib/codecs/src/decoding/framing/length_delimited.rs b/lib/codecs/src/decoding/framing/length_delimited.rs new file mode 100644 index 0000000000000..b72442e1ce4db --- /dev/null +++ b/lib/codecs/src/decoding/framing/length_delimited.rs @@ -0,0 +1,191 @@ +use bytes::{Bytes, BytesMut}; +use derivative::Derivative; +use tokio_util::codec::Decoder; +use vector_config::configurable_component; + +use crate::common::length_delimited::LengthDelimitedCoderOptions; + +use super::BoxedFramingError; + +/// Config used to build a `LengthDelimitedDecoder`. +#[configurable_component] +#[derive(Debug, Clone, Derivative)] +#[derivative(Default)] +pub struct LengthDelimitedDecoderConfig { + /// Options for the length delimited decoder. + #[serde(skip_serializing_if = "vector_core::serde::is_default")] + pub length_delimited: LengthDelimitedCoderOptions, +} + +impl LengthDelimitedDecoderConfig { + /// Build the `LengthDelimitedDecoder` from this configuration. + pub fn build(&self) -> LengthDelimitedDecoder { + LengthDelimitedDecoder::new(&self.length_delimited) + } +} + +/// A codec for handling bytes sequences whose length is encoded in a frame head. +#[derive(Debug, Clone)] +pub struct LengthDelimitedDecoder(tokio_util::codec::LengthDelimitedCodec); + +impl LengthDelimitedDecoder { + /// Creates a new `LengthDelimitedDecoder`. + pub fn new(config: &LengthDelimitedCoderOptions) -> Self { + Self(config.build_codec()) + } +} + +impl Default for LengthDelimitedDecoder { + fn default() -> Self { + Self(tokio_util::codec::LengthDelimitedCodec::new()) + } +} + +impl Decoder for LengthDelimitedDecoder { + type Item = Bytes; + type Error = BoxedFramingError; + + fn decode(&mut self, src: &mut BytesMut) -> Result, Self::Error> { + self.0 + .decode(src) + .map(|bytes| bytes.map(BytesMut::freeze)) + .map_err(Into::into) + } + + fn decode_eof(&mut self, src: &mut BytesMut) -> Result, Self::Error> { + self.0 + .decode_eof(src) + .map(|bytes| bytes.map(BytesMut::freeze)) + .map_err(Into::into) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn decode_frame() { + let mut input = BytesMut::from("\x00\x00\x00\x03foo"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_frame_2byte_length() { + let mut input = BytesMut::from("\x00\x03foo"); + let mut decoder = LengthDelimitedDecoder::new(&LengthDelimitedCoderOptions { + length_field_length: 2, + ..Default::default() + }); + + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_frame_little_endian() { + let mut input = BytesMut::from("\x03\x00\x00\x00foo"); + let mut decoder = LengthDelimitedDecoder::new(&LengthDelimitedCoderOptions { + length_field_is_big_endian: false, + ..Default::default() + }); + + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_frame_2byte_length_with_offset() { + let mut input = BytesMut::from("\x00\x00\x00\x03foo"); + let mut decoder = LengthDelimitedDecoder::new(&LengthDelimitedCoderOptions { + length_field_length: 2, + length_field_offset: 2, + ..Default::default() + }); + + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_frame_ignore_unexpected_eof() { + let mut input = BytesMut::from("\x00\x00\x00\x03fo"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_frame_ignore_exceeding_bytes_without_header() { + let mut input = BytesMut::from("\x00\x00\x00\x03fooo"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_frame_ignore_missing_header() { + let mut input = BytesMut::from("foo"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_frames() { + let mut input = BytesMut::from("\x00\x00\x00\x03foo\x00\x00\x00\x03bar"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "bar"); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_eof_frame() { + let mut input = BytesMut::from("\x00\x00\x00\x03foo"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode_eof(&mut input).unwrap(), None); + } + + #[test] + fn decode_eof_frame_unexpected_eof() { + let mut input = BytesMut::from("\x00\x00\x00\x03fo"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert!(decoder.decode_eof(&mut input).is_err()); + } + + #[test] + fn decode_eof_frame_exceeding_bytes_without_header() { + let mut input = BytesMut::from("\x00\x00\x00\x03fooo"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "foo"); + assert!(decoder.decode_eof(&mut input).is_err()); + } + + #[test] + fn decode_eof_frame_missing_header() { + let mut input = BytesMut::from("foo"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert!(decoder.decode_eof(&mut input).is_err()); + } + + #[test] + fn decode_eof_frames() { + let mut input = BytesMut::from("\x00\x00\x00\x03foo\x00\x00\x00\x03bar"); + let mut decoder = LengthDelimitedDecoder::default(); + + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "bar"); + assert_eq!(decoder.decode_eof(&mut input).unwrap(), None); + } +} diff --git a/lib/codecs/src/decoding/framing/mod.rs b/lib/codecs/src/decoding/framing/mod.rs new file mode 100644 index 0000000000000..86740a50129f2 --- /dev/null +++ b/lib/codecs/src/decoding/framing/mod.rs @@ -0,0 +1,97 @@ +//! A collection of framing methods that can be used to convert from byte frames +//! with defined boundaries to byte chunks. + +#![deny(missing_docs)] + +mod bytes; +mod character_delimited; +mod chunked_gelf; +mod length_delimited; +mod newline_delimited; +mod octet_counting; + +use std::{any::Any, fmt::Debug}; + +use ::bytes::Bytes; +pub use character_delimited::{ + CharacterDelimitedDecoder, CharacterDelimitedDecoderConfig, CharacterDelimitedDecoderOptions, +}; +pub use chunked_gelf::{ChunkedGelfDecoder, ChunkedGelfDecoderConfig, ChunkedGelfDecoderOptions}; +use dyn_clone::DynClone; +pub use length_delimited::{LengthDelimitedDecoder, LengthDelimitedDecoderConfig}; +pub use newline_delimited::{ + NewlineDelimitedDecoder, NewlineDelimitedDecoderConfig, NewlineDelimitedDecoderOptions, +}; +pub use octet_counting::{ + OctetCountingDecoder, OctetCountingDecoderConfig, OctetCountingDecoderOptions, +}; +use tokio_util::codec::LinesCodecError; + +pub use self::bytes::{BytesDecoder, BytesDecoderConfig}; +use super::StreamDecodingError; + +/// An error that occurred while producing byte frames from a byte stream / byte +/// message. +/// +/// It requires conformance to `TcpError` so that we can determine whether the +/// error is recoverable or if trying to continue will lead to hanging up the +/// TCP source indefinitely. +pub trait FramingError: std::error::Error + StreamDecodingError + Send + Sync + Any { + /// Coerces the error to a `dyn Any`. + /// This is useful for downcasting the error to a concrete type + fn as_any(&self) -> &dyn Any; +} + +impl std::error::Error for BoxedFramingError {} + +impl FramingError for std::io::Error { + fn as_any(&self) -> &dyn Any { + self as &dyn Any + } +} + +impl FramingError for LinesCodecError { + fn as_any(&self) -> &dyn Any { + self as &dyn Any + } +} + +impl From for BoxedFramingError +where + T: FramingError + 'static, +{ + fn from(value: T) -> Self { + Box::new(value) + } +} + +/// A `Box` containing a `FramingError`. +pub type BoxedFramingError = Box; + +impl StreamDecodingError for BoxedFramingError { + fn can_continue(&self) -> bool { + self.as_ref().can_continue() + } +} + +/// Produce byte frames from a byte stream / byte message. +pub trait Framer: + tokio_util::codec::Decoder + DynClone + Debug + Send + Sync +{ +} + +/// Default implementation for `Framer`s that implement +/// `tokio_util::codec::Decoder`. +impl Framer for Decoder where + Decoder: tokio_util::codec::Decoder + + Clone + + Debug + + Send + + Sync +{ +} + +dyn_clone::clone_trait_object!(Framer); + +/// A `Box` containing a `Framer`. +pub type BoxedFramer = Box; diff --git a/lib/codecs/src/decoding/framing/newline_delimited.rs b/lib/codecs/src/decoding/framing/newline_delimited.rs new file mode 100644 index 0000000000000..7bdc3a60881e5 --- /dev/null +++ b/lib/codecs/src/decoding/framing/newline_delimited.rs @@ -0,0 +1,173 @@ +use bytes::{Bytes, BytesMut}; +use derivative::Derivative; +use tokio_util::codec::Decoder; +use vector_config::configurable_component; + +use super::{BoxedFramingError, CharacterDelimitedDecoder}; + +/// Config used to build a `NewlineDelimitedDecoder`. +#[configurable_component] +#[derive(Debug, Clone, Default, PartialEq, Eq)] +pub struct NewlineDelimitedDecoderConfig { + /// Options for the newline delimited decoder. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub newline_delimited: NewlineDelimitedDecoderOptions, +} + +/// Options for building a `NewlineDelimitedDecoder`. +#[configurable_component] +#[derive(Clone, Debug, Derivative, PartialEq, Eq)] +#[derivative(Default)] +pub struct NewlineDelimitedDecoderOptions { + /// The maximum length of the byte buffer. + /// + /// This length does *not* include the trailing delimiter. + /// + /// By default, there is no maximum length enforced. If events are malformed, this can lead to + /// additional resource usage as events continue to be buffered in memory, and can potentially + /// lead to memory exhaustion in extreme cases. + /// + /// If there is a risk of processing malformed data, such as logs with user-controlled input, + /// consider setting the maximum length to a reasonably large value as a safety net. This + /// ensures that processing is not actually unbounded. + #[serde(skip_serializing_if = "vector_core::serde::is_default")] + pub max_length: Option, +} + +impl NewlineDelimitedDecoderOptions { + /// Creates a `NewlineDelimitedDecoderOptions` with a maximum frame length limit. + pub const fn new_with_max_length(max_length: usize) -> Self { + Self { + max_length: Some(max_length), + } + } +} + +impl NewlineDelimitedDecoderConfig { + /// Creates a new `NewlineDelimitedDecoderConfig`. + pub fn new() -> Self { + Default::default() + } + + /// Creates a `NewlineDelimitedDecoder` with a maximum frame length limit. + pub const fn new_with_max_length(max_length: usize) -> Self { + Self { + newline_delimited: { NewlineDelimitedDecoderOptions::new_with_max_length(max_length) }, + } + } + + /// Build the `NewlineDelimitedDecoder` from this configuration. + pub const fn build(&self) -> NewlineDelimitedDecoder { + if let Some(max_length) = self.newline_delimited.max_length { + NewlineDelimitedDecoder::new_with_max_length(max_length) + } else { + NewlineDelimitedDecoder::new() + } + } +} + +/// A codec for handling bytes that are delimited by (a) newline(s). +#[derive(Debug, Clone)] +pub struct NewlineDelimitedDecoder(CharacterDelimitedDecoder); + +impl NewlineDelimitedDecoder { + /// Creates a new `NewlineDelimitedDecoder`. + pub const fn new() -> Self { + Self(CharacterDelimitedDecoder::new(b'\n')) + } + + /// Creates a `NewlineDelimitedDecoder` with a maximum frame length limit. + /// + /// Any frames longer than `max_length` bytes will be discarded entirely. + pub const fn new_with_max_length(max_length: usize) -> Self { + Self(CharacterDelimitedDecoder::new_with_max_length( + b'\n', max_length, + )) + } +} + +impl Default for NewlineDelimitedDecoder { + fn default() -> Self { + Self::new() + } +} + +impl Decoder for NewlineDelimitedDecoder { + type Item = Bytes; + type Error = BoxedFramingError; + + fn decode(&mut self, src: &mut BytesMut) -> Result, Self::Error> { + self.0.decode(src) + } + + fn decode_eof(&mut self, src: &mut BytesMut) -> Result, Self::Error> { + self.0.decode_eof(src) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn decode_bytes_with_newlines() { + let mut input = BytesMut::from("foo\nbar\nbaz"); + let mut decoder = NewlineDelimitedDecoder::new(); + + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "bar"); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_bytes_with_newlines_trailing() { + let mut input = BytesMut::from("foo\nbar\nbaz\n"); + let mut decoder = NewlineDelimitedDecoder::new(); + + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "bar"); + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "baz"); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_bytes_with_newlines_and_max_length() { + let mut input = BytesMut::from("foo\nbarbara\nbaz\n"); + let mut decoder = NewlineDelimitedDecoder::new_with_max_length(3); + + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode(&mut input).unwrap().unwrap(), "baz"); + assert_eq!(decoder.decode(&mut input).unwrap(), None); + } + + #[test] + fn decode_eof_bytes_with_newlines() { + let mut input = BytesMut::from("foo\nbar\nbaz"); + let mut decoder = NewlineDelimitedDecoder::new(); + + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "bar"); + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "baz"); + } + + #[test] + fn decode_eof_bytes_with_newlines_trailing() { + let mut input = BytesMut::from("foo\nbar\nbaz\n"); + let mut decoder = NewlineDelimitedDecoder::new(); + + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "bar"); + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "baz"); + assert_eq!(decoder.decode_eof(&mut input).unwrap(), None); + } + + #[test] + fn decode_eof_bytes_with_newlines_and_max_length() { + let mut input = BytesMut::from("foo\nbarbara\nbaz\n"); + let mut decoder = NewlineDelimitedDecoder::new_with_max_length(3); + + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "foo"); + assert_eq!(decoder.decode_eof(&mut input).unwrap().unwrap(), "baz"); + assert_eq!(decoder.decode_eof(&mut input).unwrap(), None); + } +} diff --git a/lib/codecs/src/decoding/framing/octet_counting.rs b/lib/codecs/src/decoding/framing/octet_counting.rs new file mode 100644 index 0000000000000..b5248b26b6c36 --- /dev/null +++ b/lib/codecs/src/decoding/framing/octet_counting.rs @@ -0,0 +1,415 @@ +use std::io; + +use bytes::{Buf, Bytes, BytesMut}; +use derivative::Derivative; +use tokio_util::codec::{LinesCodec, LinesCodecError}; +use tracing::trace; +use vector_config::configurable_component; + +use super::BoxedFramingError; + +/// Config used to build a `OctetCountingDecoder`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct OctetCountingDecoderConfig { + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + /// Options for the octet counting decoder. + pub octet_counting: OctetCountingDecoderOptions, +} + +impl OctetCountingDecoderConfig { + /// Build the `OctetCountingDecoder` from this configuration. + pub fn build(&self) -> OctetCountingDecoder { + if let Some(max_length) = self.octet_counting.max_length { + OctetCountingDecoder::new_with_max_length(max_length) + } else { + OctetCountingDecoder::new() + } + } +} + +/// Options for building a `OctetCountingDecoder`. +#[configurable_component] +#[derive(Clone, Debug, Derivative, PartialEq, Eq)] +#[derivative(Default)] +pub struct OctetCountingDecoderOptions { + /// The maximum length of the byte buffer. + #[serde(skip_serializing_if = "vector_core::serde::is_default")] + pub max_length: Option, +} + +/// Codec using the `Octet Counting` format as specified in +/// . +#[derive(Clone, Debug)] +pub struct OctetCountingDecoder { + other: LinesCodec, + octet_decoding: Option, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum State { + NotDiscarding, + Discarding(usize), + DiscardingToEol, +} + +impl OctetCountingDecoder { + /// Creates a new `OctetCountingDecoder`. + pub fn new() -> Self { + Self { + other: LinesCodec::new(), + octet_decoding: None, + } + } + + /// Creates a `OctetCountingDecoder` with a maximum frame length limit. + pub fn new_with_max_length(max_length: usize) -> Self { + Self { + other: LinesCodec::new_with_max_length(max_length), + octet_decoding: None, + } + } + + /// Decode a frame. + fn octet_decode( + &mut self, + state: State, + src: &mut BytesMut, + ) -> Result, LinesCodecError> { + // Encoding scheme: + // + // len ' ' data + // | | | len number of bytes that contain syslog message + // | | + // | | Separating whitespace + // | + // | ASCII decimal number of unknown length + + let space_pos = src.iter().position(|&b| b == b' '); + + // If we are discarding, discard to the next newline. + let newline_pos = src.iter().position(|&b| b == b'\n'); + + match (state, newline_pos, space_pos) { + (State::Discarding(chars), _, _) if src.len() >= chars => { + // We have a certain number of chars to discard. + // + // There are enough chars in this frame to discard + src.advance(chars); + self.octet_decoding = None; + Err(LinesCodecError::Io(io::Error::new( + io::ErrorKind::Other, + "Frame length limit exceeded", + ))) + } + + (State::Discarding(chars), _, _) => { + // We have a certain number of chars to discard. + // + // There aren't enough in this frame so we need to discard the + // entire frame and adjust the amount to discard accordingly. + self.octet_decoding = Some(State::Discarding(src.len() - chars)); + src.advance(src.len()); + Ok(None) + } + + (State::DiscardingToEol, Some(offset), _) => { + // When discarding we keep discarding to the next newline. + src.advance(offset + 1); + self.octet_decoding = None; + Err(LinesCodecError::Io(io::Error::new( + io::ErrorKind::Other, + "Frame length limit exceeded", + ))) + } + + (State::DiscardingToEol, None, _) => { + // There is no newline in this frame. + // + // Since we don't have a set number of chars we want to discard, + // we need to discard to the next newline. Advance as far as we + // can to discard the entire frame. + src.advance(src.len()); + Ok(None) + } + + (State::NotDiscarding, _, Some(space_pos)) if space_pos < self.other.max_length() => { + // Everything looks good. + // + // We aren't discarding, we have a space that is not beyond our + // maximum length. Attempt to parse the bytes as a number which + // will hopefully give us a sensible length for our message. + let len: usize = match std::str::from_utf8(&src[..space_pos]) + .map_err(|_| ()) + .and_then(|num| num.parse().map_err(|_| ())) + { + Ok(len) => len, + Err(_) => { + // It was not a sensible number. + // + // Advance the buffer past the erroneous bytes to + // prevent us getting stuck in an infinite loop. + src.advance(space_pos + 1); + self.octet_decoding = None; + return Err(LinesCodecError::Io(io::Error::new( + io::ErrorKind::InvalidData, + "Unable to decode message len as number", + ))); + } + }; + + let from = space_pos + 1; + let to = from + len; + + if len > self.other.max_length() { + // The length is greater than we want. + // + // We need to discard the entire message. + self.octet_decoding = Some(State::Discarding(len)); + src.advance(space_pos + 1); + + Ok(None) + } else if let Some(msg) = src.get(from..to) { + let bytes = match std::str::from_utf8(msg) { + Ok(_) => Bytes::copy_from_slice(msg), + Err(_) => { + // The data was not valid UTF8 :-(. + // + // Advance the buffer past the erroneous bytes to + // prevent us getting stuck in an infinite loop. + src.advance(to); + self.octet_decoding = None; + return Err(LinesCodecError::Io(io::Error::new( + io::ErrorKind::InvalidData, + "Unable to decode message as UTF8", + ))); + } + }; + + // We have managed to read the entire message as valid UTF8! + src.advance(to); + self.octet_decoding = None; + Ok(Some(bytes)) + } else { + // We have an acceptable number of bytes in this message, + // but not all the data was in the frame. + // + // Return `None` to indicate we want more data before we do + // anything else. + Ok(None) + } + } + + (State::NotDiscarding, Some(newline_pos), _) => { + // Beyond maximum length, advance to the newline. + src.advance(newline_pos + 1); + Err(LinesCodecError::Io(io::Error::new( + io::ErrorKind::Other, + "Frame length limit exceeded", + ))) + } + + (State::NotDiscarding, None, _) if src.len() < self.other.max_length() => { + // We aren't discarding, but there is no useful character to + // tell us what to do next. + // + // We are still not beyond the max length, so just return `None` + // to indicate we need to wait for more data. + Ok(None) + } + + (State::NotDiscarding, None, _) => { + // There is no newline in this frame and we have more data than + // we want to handle. + // + // Advance as far as we can to discard the entire frame. + self.octet_decoding = Some(State::DiscardingToEol); + src.advance(src.len()); + Ok(None) + } + } + } + + /// `None` if this is not octet counting encoded. + fn checked_decode( + &mut self, + src: &mut BytesMut, + ) -> Option, LinesCodecError>> { + if let Some(&first_byte) = src.first() { + if (49..=57).contains(&first_byte) { + // First character is non zero number so we can assume that + // octet count framing is used. + trace!("Octet counting encoded event detected."); + self.octet_decoding = Some(State::NotDiscarding); + } + } + + self.octet_decoding + .map(|state| self.octet_decode(state, src)) + } +} + +impl Default for OctetCountingDecoder { + fn default() -> Self { + Self::new() + } +} + +impl tokio_util::codec::Decoder for OctetCountingDecoder { + type Item = Bytes; + type Error = BoxedFramingError; + + fn decode(&mut self, src: &mut BytesMut) -> Result, Self::Error> { + if let Some(ret) = self.checked_decode(src) { + ret + } else { + // Octet counting isn't used so fallback to newline codec. + self.other + .decode(src) + .map(|line| line.map(|line| line.into())) + } + .map_err(Into::into) + } + + fn decode_eof(&mut self, buf: &mut BytesMut) -> Result, Self::Error> { + if let Some(ret) = self.checked_decode(buf) { + ret + } else { + // Octet counting isn't used so fallback to newline codec. + self.other + .decode_eof(buf) + .map(|line| line.map(|line| line.into())) + } + .map_err(Into::into) + } +} + +#[cfg(test)] +mod tests { + #![allow(clippy::print_stdout)] + + use bytes::BufMut; + use tokio_util::codec::Decoder; + + use super::*; + + #[test] + fn non_octet_decode_works_with_multiple_frames() { + let mut decoder = OctetCountingDecoder::new_with_max_length(128); + let mut buffer = BytesMut::with_capacity(16); + + buffer.put(&b"<57>Mar 25 21:47:46 gleichner6005 quaerat[2444]: There were "[..]); + let result = decoder.decode(&mut buffer); + assert_eq!(Ok(None), result.map_err(|_| true)); + + buffer.put(&b"8 penguins in the shop.\n"[..]); + let result = decoder.decode(&mut buffer); + assert_eq!( + Ok(Some("<57>Mar 25 21:47:46 gleichner6005 quaerat[2444]: There were 8 penguins in the shop.".into())), + result.map_err(|_| true) + ); + } + + #[test] + fn octet_decode_works_with_multiple_frames() { + let mut decoder = OctetCountingDecoder::new_with_max_length(30); + let mut buffer = BytesMut::with_capacity(16); + + buffer.put(&b"28 abcdefghijklm"[..]); + let result = decoder.decode(&mut buffer); + assert_eq!(Ok(None), result.map_err(|_| false)); + + // Sending another frame starting with a number should not cause it to + // try to decode a new message. + buffer.put(&b"3 nopqrstuvwxyz"[..]); + let result = decoder.decode(&mut buffer); + assert_eq!( + Ok(Some("abcdefghijklm3 nopqrstuvwxyz".into())), + result.map_err(|_| false) + ); + } + + #[test] + fn octet_decode_moves_past_invalid_length() { + let mut decoder = OctetCountingDecoder::new_with_max_length(16); + let mut buffer = BytesMut::with_capacity(16); + + // An invalid syslog message that starts with a digit so we think it is starting with the len. + buffer.put(&b"232>1 zork"[..]); + let result = decoder.decode(&mut buffer); + + assert!(result.is_err()); + assert_eq!(b"zork"[..], buffer); + } + + #[test] + fn octet_decode_moves_past_invalid_utf8() { + let mut decoder = OctetCountingDecoder::new_with_max_length(16); + let mut buffer = BytesMut::with_capacity(16); + + // An invalid syslog message containing invalid utf8 bytes. + buffer.put(&[b'4', b' ', 0xf0, 0x28, 0x8c, 0xbc][..]); + let result = decoder.decode(&mut buffer); + + assert!(result.is_err()); + assert_eq!(b""[..], buffer); + } + + #[test] + fn octet_decode_moves_past_exceeded_frame_length() { + let mut decoder = OctetCountingDecoder::new_with_max_length(16); + let mut buffer = BytesMut::with_capacity(32); + + buffer.put(&b"32thisshouldbelongerthanthmaxframeasizewhichmeansthesyslogparserwillnotbeabletodecodeit\n"[..]); + let result = decoder.decode(&mut buffer); + + assert!(result.is_err()); + assert_eq!(b""[..], buffer); + } + + #[test] + fn octet_decode_rejects_exceeded_frame_length() { + let mut decoder = OctetCountingDecoder::new_with_max_length(16); + let mut buffer = BytesMut::with_capacity(32); + + buffer.put(&b"26 abcdefghijklmnopqrstuvwxyzand here we are"[..]); + let result = decoder.decode(&mut buffer); + assert_eq!(Ok(None), result.map_err(|_| false)); + let result = decoder.decode(&mut buffer); + + assert!(result.is_err()); + assert_eq!(b"and here we are"[..], buffer); + } + + #[test] + fn octet_decode_rejects_exceeded_frame_length_multiple_frames() { + let mut decoder = OctetCountingDecoder::new_with_max_length(16); + let mut buffer = BytesMut::with_capacity(32); + + buffer.put(&b"26 abc"[..]); + let _result = decoder.decode(&mut buffer); + + buffer.put(&b"defghijklmnopqrstuvwxyzand here we are"[..]); + let result = decoder.decode(&mut buffer); + + println!("{:?}", result); + assert!(result.is_err()); + assert_eq!(b"and here we are"[..], buffer); + } + + #[test] + fn octet_decode_moves_past_exceeded_frame_length_multiple_frames() { + let mut decoder = OctetCountingDecoder::new_with_max_length(16); + let mut buffer = BytesMut::with_capacity(32); + + buffer.put(&b"32thisshouldbelongerthanthmaxframeasizewhichmeansthesyslogparserwillnotbeabletodecodeit"[..]); + _ = decoder.decode(&mut buffer); + + assert_eq!(decoder.octet_decoding, Some(State::DiscardingToEol)); + buffer.put(&b"wemustcontinuetodiscard\n32 something valid"[..]); + let result = decoder.decode(&mut buffer); + + assert!(result.is_err()); + assert_eq!(b"32 something valid"[..], buffer); + } +} diff --git a/lib/codecs/src/decoding/mod.rs b/lib/codecs/src/decoding/mod.rs new file mode 100644 index 0000000000000..0e14722dd3430 --- /dev/null +++ b/lib/codecs/src/decoding/mod.rs @@ -0,0 +1,535 @@ +//! A collection of support structures that are used in the process of decoding +//! bytes into events. + +mod error; +pub mod format; +pub mod framing; + +use crate::decoding::format::{VrlDeserializer, VrlDeserializerConfig}; +use bytes::{Bytes, BytesMut}; +pub use error::StreamDecodingError; +pub use format::{ + BoxedDeserializer, BytesDeserializer, BytesDeserializerConfig, GelfDeserializer, + GelfDeserializerConfig, GelfDeserializerOptions, InfluxdbDeserializer, + InfluxdbDeserializerConfig, JsonDeserializer, JsonDeserializerConfig, JsonDeserializerOptions, + NativeDeserializer, NativeDeserializerConfig, NativeJsonDeserializer, + NativeJsonDeserializerConfig, NativeJsonDeserializerOptions, ProtobufDeserializer, + ProtobufDeserializerConfig, ProtobufDeserializerOptions, +}; +#[cfg(feature = "syslog")] +pub use format::{SyslogDeserializer, SyslogDeserializerConfig, SyslogDeserializerOptions}; +pub use framing::{ + BoxedFramer, BoxedFramingError, BytesDecoder, BytesDecoderConfig, CharacterDelimitedDecoder, + CharacterDelimitedDecoderConfig, CharacterDelimitedDecoderOptions, ChunkedGelfDecoder, + ChunkedGelfDecoderConfig, ChunkedGelfDecoderOptions, FramingError, LengthDelimitedDecoder, + LengthDelimitedDecoderConfig, NewlineDelimitedDecoder, NewlineDelimitedDecoderConfig, + NewlineDelimitedDecoderOptions, OctetCountingDecoder, OctetCountingDecoderConfig, + OctetCountingDecoderOptions, +}; +use smallvec::SmallVec; +use std::fmt::Debug; +use vector_config::configurable_component; +use vector_core::{ + config::{DataType, LogNamespace}, + event::Event, + schema, +}; + +use self::format::{AvroDeserializer, AvroDeserializerConfig, AvroDeserializerOptions}; + +/// An error that occurred while decoding structured events from a byte stream / +/// byte messages. +#[derive(Debug)] +pub enum Error { + /// The error occurred while producing byte frames from the byte stream / + /// byte messages. + FramingError(BoxedFramingError), + /// The error occurred while parsing structured events from a byte frame. + ParsingError(vector_common::Error), +} + +impl std::fmt::Display for Error { + fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::FramingError(error) => write!(formatter, "FramingError({})", error), + Self::ParsingError(error) => write!(formatter, "ParsingError({})", error), + } + } +} + +impl std::error::Error for Error {} + +impl From for Error { + fn from(error: std::io::Error) -> Self { + Self::FramingError(Box::new(error)) + } +} + +impl StreamDecodingError for Error { + fn can_continue(&self) -> bool { + match self { + Self::FramingError(error) => error.can_continue(), + Self::ParsingError(_) => true, + } + } +} + +/// Framing configuration. +/// +/// Framing handles how events are separated when encoded in a raw byte form, where each event is +/// a frame that must be prefixed, or delimited, in a way that marks where an event begins and +/// ends within the byte stream. +#[configurable_component] +#[derive(Clone, Debug)] +#[serde(tag = "method", rename_all = "snake_case")] +#[configurable(metadata(docs::enum_tag_description = "The framing method."))] +pub enum FramingConfig { + /// Byte frames are passed through as-is according to the underlying I/O boundaries (for example, split between messages or stream segments). + Bytes, + + /// Byte frames which are delimited by a chosen character. + CharacterDelimited(CharacterDelimitedDecoderConfig), + + /// Byte frames which are prefixed by an unsigned big-endian 32-bit integer indicating the length. + LengthDelimited(LengthDelimitedDecoderConfig), + + /// Byte frames which are delimited by a newline character. + NewlineDelimited(NewlineDelimitedDecoderConfig), + + /// Byte frames according to the [octet counting][octet_counting] format. + /// + /// [octet_counting]: https://tools.ietf.org/html/rfc6587#section-3.4.1 + OctetCounting(OctetCountingDecoderConfig), + + /// Byte frames which are chunked GELF messages. + /// + /// [chunked_gelf]: https://go2docs.graylog.org/current/getting_in_log_data/gelf.html + ChunkedGelf(ChunkedGelfDecoderConfig), +} + +impl From for FramingConfig { + fn from(_: BytesDecoderConfig) -> Self { + Self::Bytes + } +} + +impl From for FramingConfig { + fn from(config: CharacterDelimitedDecoderConfig) -> Self { + Self::CharacterDelimited(config) + } +} + +impl From for FramingConfig { + fn from(config: LengthDelimitedDecoderConfig) -> Self { + Self::LengthDelimited(config) + } +} + +impl From for FramingConfig { + fn from(config: NewlineDelimitedDecoderConfig) -> Self { + Self::NewlineDelimited(config) + } +} + +impl From for FramingConfig { + fn from(config: OctetCountingDecoderConfig) -> Self { + Self::OctetCounting(config) + } +} + +impl From for FramingConfig { + fn from(config: ChunkedGelfDecoderConfig) -> Self { + Self::ChunkedGelf(config) + } +} + +impl FramingConfig { + /// Build the `Framer` from this configuration. + pub fn build(&self) -> Framer { + match self { + FramingConfig::Bytes => Framer::Bytes(BytesDecoderConfig.build()), + FramingConfig::CharacterDelimited(config) => Framer::CharacterDelimited(config.build()), + FramingConfig::LengthDelimited(config) => Framer::LengthDelimited(config.build()), + FramingConfig::NewlineDelimited(config) => Framer::NewlineDelimited(config.build()), + FramingConfig::OctetCounting(config) => Framer::OctetCounting(config.build()), + FramingConfig::ChunkedGelf(config) => Framer::ChunkedGelf(config.build()), + } + } +} + +/// Produce byte frames from a byte stream / byte message. +#[derive(Debug, Clone)] +pub enum Framer { + /// Uses a `BytesDecoder` for framing. + Bytes(BytesDecoder), + /// Uses a `CharacterDelimitedDecoder` for framing. + CharacterDelimited(CharacterDelimitedDecoder), + /// Uses a `LengthDelimitedDecoder` for framing. + LengthDelimited(LengthDelimitedDecoder), + /// Uses a `NewlineDelimitedDecoder` for framing. + NewlineDelimited(NewlineDelimitedDecoder), + /// Uses a `OctetCountingDecoder` for framing. + OctetCounting(OctetCountingDecoder), + /// Uses an opaque `Framer` implementation for framing. + Boxed(BoxedFramer), + /// Uses a `ChunkedGelfDecoder` for framing. + ChunkedGelf(ChunkedGelfDecoder), +} + +impl tokio_util::codec::Decoder for Framer { + type Item = Bytes; + type Error = BoxedFramingError; + + fn decode(&mut self, src: &mut BytesMut) -> Result, Self::Error> { + match self { + Framer::Bytes(framer) => framer.decode(src), + Framer::CharacterDelimited(framer) => framer.decode(src), + Framer::LengthDelimited(framer) => framer.decode(src), + Framer::NewlineDelimited(framer) => framer.decode(src), + Framer::OctetCounting(framer) => framer.decode(src), + Framer::Boxed(framer) => framer.decode(src), + Framer::ChunkedGelf(framer) => framer.decode(src), + } + } + + fn decode_eof(&mut self, src: &mut BytesMut) -> Result, Self::Error> { + match self { + Framer::Bytes(framer) => framer.decode_eof(src), + Framer::CharacterDelimited(framer) => framer.decode_eof(src), + Framer::LengthDelimited(framer) => framer.decode_eof(src), + Framer::NewlineDelimited(framer) => framer.decode_eof(src), + Framer::OctetCounting(framer) => framer.decode_eof(src), + Framer::Boxed(framer) => framer.decode_eof(src), + Framer::ChunkedGelf(framer) => framer.decode_eof(src), + } + } +} + +/// Deserializer configuration. +#[configurable_component] +#[derive(Clone, Debug)] +#[serde(tag = "codec", rename_all = "snake_case")] +#[configurable(description = "Configures how events are decoded from raw bytes.")] +#[configurable(metadata(docs::enum_tag_description = "The codec to use for decoding events."))] +pub enum DeserializerConfig { + /// Uses the raw bytes as-is. + Bytes, + + /// Decodes the raw bytes as [JSON][json]. + /// + /// [json]: https://www.json.org/ + Json(JsonDeserializerConfig), + + /// Decodes the raw bytes as [protobuf][protobuf]. + /// + /// [protobuf]: https://protobuf.dev/ + Protobuf(ProtobufDeserializerConfig), + + #[cfg(feature = "syslog")] + /// Decodes the raw bytes as a Syslog message. + /// + /// Decodes either as the [RFC 3164][rfc3164]-style format ("old" style) or the + /// [RFC 5424][rfc5424]-style format ("new" style, includes structured data). + /// + /// [rfc3164]: https://www.ietf.org/rfc/rfc3164.txt + /// [rfc5424]: https://www.ietf.org/rfc/rfc5424.txt + Syslog(SyslogDeserializerConfig), + + /// Decodes the raw bytes as [native Protocol Buffers format][vector_native_protobuf]. + /// + /// This codec is **[experimental][experimental]**. + /// + /// [vector_native_protobuf]: https://github.com/vectordotdev/vector/blob/master/lib/vector-core/proto/event.proto + /// [experimental]: https://vector.dev/highlights/2022-03-31-native-event-codecs + Native, + + /// Decodes the raw bytes as [native JSON format][vector_native_json]. + /// + /// This codec is **[experimental][experimental]**. + /// + /// [vector_native_json]: https://github.com/vectordotdev/vector/blob/master/lib/codecs/tests/data/native_encoding/schema.cue + /// [experimental]: https://vector.dev/highlights/2022-03-31-native-event-codecs + NativeJson(NativeJsonDeserializerConfig), + + /// Decodes the raw bytes as a [GELF][gelf] message. + /// + /// This codec is experimental for the following reason: + /// + /// The GELF specification is more strict than the actual Graylog receiver. + /// Vector's decoder currently adheres more strictly to the GELF spec, with + /// the exception that some characters such as `@` are allowed in field names. + /// + /// Other GELF codecs such as Loki's, use a [Go SDK][implementation] that is maintained + /// by Graylog, and is much more relaxed than the GELF spec. + /// + /// Going forward, Vector will use that [Go SDK][implementation] as the reference implementation, which means + /// the codec may continue to relax the enforcement of specification. + /// + /// [gelf]: https://docs.graylog.org/docs/gelf + /// [implementation]: https://github.com/Graylog2/go-gelf/blob/v2/gelf/reader.go + Gelf(GelfDeserializerConfig), + + /// Decodes the raw bytes as an [Influxdb Line Protocol][influxdb] message. + /// + /// [influxdb]: https://docs.influxdata.com/influxdb/cloud/reference/syntax/line-protocol + Influxdb(InfluxdbDeserializerConfig), + + /// Decodes the raw bytes as as an [Apache Avro][apache_avro] message. + /// + /// [apache_avro]: https://avro.apache.org/ + Avro { + /// Apache Avro-specific encoder options. + avro: AvroDeserializerOptions, + }, + + /// Decodes the raw bytes as a string and passes them as input to a [VRL][vrl] program. + /// + /// [vrl]: https://vector.dev/docs/reference/vrl + Vrl(VrlDeserializerConfig), +} + +impl From for DeserializerConfig { + fn from(_: BytesDeserializerConfig) -> Self { + Self::Bytes + } +} + +impl From for DeserializerConfig { + fn from(config: JsonDeserializerConfig) -> Self { + Self::Json(config) + } +} + +#[cfg(feature = "syslog")] +impl From for DeserializerConfig { + fn from(config: SyslogDeserializerConfig) -> Self { + Self::Syslog(config) + } +} + +impl From for DeserializerConfig { + fn from(config: GelfDeserializerConfig) -> Self { + Self::Gelf(config) + } +} + +impl From for DeserializerConfig { + fn from(_: NativeDeserializerConfig) -> Self { + Self::Native + } +} + +impl From for DeserializerConfig { + fn from(config: NativeJsonDeserializerConfig) -> Self { + Self::NativeJson(config) + } +} + +impl From for DeserializerConfig { + fn from(config: InfluxdbDeserializerConfig) -> Self { + Self::Influxdb(config) + } +} + +impl DeserializerConfig { + /// Build the `Deserializer` from this configuration. + pub fn build(&self) -> vector_common::Result { + match self { + DeserializerConfig::Avro { avro } => Ok(Deserializer::Avro( + AvroDeserializerConfig { + avro_options: avro.clone(), + } + .build(), + )), + DeserializerConfig::Bytes => Ok(Deserializer::Bytes(BytesDeserializerConfig.build())), + DeserializerConfig::Json(config) => Ok(Deserializer::Json(config.build())), + DeserializerConfig::Protobuf(config) => Ok(Deserializer::Protobuf(config.build()?)), + #[cfg(feature = "syslog")] + DeserializerConfig::Syslog(config) => Ok(Deserializer::Syslog(config.build())), + DeserializerConfig::Native => { + Ok(Deserializer::Native(NativeDeserializerConfig.build())) + } + DeserializerConfig::NativeJson(config) => Ok(Deserializer::NativeJson(config.build())), + DeserializerConfig::Gelf(config) => Ok(Deserializer::Gelf(config.build())), + DeserializerConfig::Influxdb(config) => Ok(Deserializer::Influxdb(config.build())), + DeserializerConfig::Vrl(config) => Ok(Deserializer::Vrl(config.build()?)), + } + } + + /// Return an appropriate default framer for the given deserializer + pub fn default_stream_framing(&self) -> FramingConfig { + match self { + DeserializerConfig::Avro { .. } => FramingConfig::Bytes, + DeserializerConfig::Native => FramingConfig::LengthDelimited(Default::default()), + DeserializerConfig::Bytes + | DeserializerConfig::Json(_) + | DeserializerConfig::Influxdb(_) + | DeserializerConfig::NativeJson(_) => { + FramingConfig::NewlineDelimited(Default::default()) + } + DeserializerConfig::Protobuf(_) => FramingConfig::Bytes, + #[cfg(feature = "syslog")] + DeserializerConfig::Syslog(_) => FramingConfig::NewlineDelimited(Default::default()), + DeserializerConfig::Vrl(_) => FramingConfig::Bytes, + DeserializerConfig::Gelf(_) => { + FramingConfig::CharacterDelimited(CharacterDelimitedDecoderConfig::new(0)) + } + } + } + + /// Returns an appropriate default framing config for the given deserializer with message based inputs. + pub fn default_message_based_framing(&self) -> FramingConfig { + match self { + DeserializerConfig::Gelf(_) => FramingConfig::ChunkedGelf(Default::default()), + _ => FramingConfig::Bytes, + } + } + + /// Return the type of event build by this deserializer. + pub fn output_type(&self) -> DataType { + match self { + DeserializerConfig::Avro { avro } => AvroDeserializerConfig { + avro_options: avro.clone(), + } + .output_type(), + DeserializerConfig::Bytes => BytesDeserializerConfig.output_type(), + DeserializerConfig::Json(config) => config.output_type(), + DeserializerConfig::Protobuf(config) => config.output_type(), + #[cfg(feature = "syslog")] + DeserializerConfig::Syslog(config) => config.output_type(), + DeserializerConfig::Native => NativeDeserializerConfig.output_type(), + DeserializerConfig::NativeJson(config) => config.output_type(), + DeserializerConfig::Gelf(config) => config.output_type(), + DeserializerConfig::Vrl(config) => config.output_type(), + DeserializerConfig::Influxdb(config) => config.output_type(), + } + } + + /// The schema produced by the deserializer. + pub fn schema_definition(&self, log_namespace: LogNamespace) -> schema::Definition { + match self { + DeserializerConfig::Avro { avro } => AvroDeserializerConfig { + avro_options: avro.clone(), + } + .schema_definition(log_namespace), + DeserializerConfig::Bytes => BytesDeserializerConfig.schema_definition(log_namespace), + DeserializerConfig::Json(config) => config.schema_definition(log_namespace), + DeserializerConfig::Protobuf(config) => config.schema_definition(log_namespace), + #[cfg(feature = "syslog")] + DeserializerConfig::Syslog(config) => config.schema_definition(log_namespace), + DeserializerConfig::Native => NativeDeserializerConfig.schema_definition(log_namespace), + DeserializerConfig::NativeJson(config) => config.schema_definition(log_namespace), + DeserializerConfig::Gelf(config) => config.schema_definition(log_namespace), + DeserializerConfig::Influxdb(config) => config.schema_definition(log_namespace), + DeserializerConfig::Vrl(config) => config.schema_definition(log_namespace), + } + } + + /// Get the HTTP content type. + pub const fn content_type(&self, framer: &FramingConfig) -> &'static str { + match (&self, framer) { + ( + DeserializerConfig::Json(_) | DeserializerConfig::NativeJson(_), + FramingConfig::NewlineDelimited(_), + ) => "application/x-ndjson", + ( + DeserializerConfig::Gelf(_) + | DeserializerConfig::Json(_) + | DeserializerConfig::NativeJson(_), + FramingConfig::CharacterDelimited(CharacterDelimitedDecoderConfig { + character_delimited: + CharacterDelimitedDecoderOptions { + delimiter: b',', + max_length: Some(usize::MAX), + }, + }), + ) => "application/json", + (DeserializerConfig::Native, _) | (DeserializerConfig::Avro { .. }, _) => { + "application/octet-stream" + } + (DeserializerConfig::Protobuf(_), _) => "application/octet-stream", + ( + DeserializerConfig::Json(_) + | DeserializerConfig::NativeJson(_) + | DeserializerConfig::Bytes + | DeserializerConfig::Gelf(_) + | DeserializerConfig::Influxdb(_) + | DeserializerConfig::Vrl(_), + _, + ) => "text/plain", + #[cfg(feature = "syslog")] + (DeserializerConfig::Syslog(_), _) => "text/plain", + } + } +} + +/// Parse structured events from bytes. +#[derive(Clone)] +pub enum Deserializer { + /// Uses a `AvroDeserializer` for deserialization. + Avro(AvroDeserializer), + /// Uses a `BytesDeserializer` for deserialization. + Bytes(BytesDeserializer), + /// Uses a `JsonDeserializer` for deserialization. + Json(JsonDeserializer), + /// Uses a `ProtobufDeserializer` for deserialization. + Protobuf(ProtobufDeserializer), + #[cfg(feature = "syslog")] + /// Uses a `SyslogDeserializer` for deserialization. + Syslog(SyslogDeserializer), + /// Uses a `NativeDeserializer` for deserialization. + Native(NativeDeserializer), + /// Uses a `NativeDeserializer` for deserialization. + NativeJson(NativeJsonDeserializer), + /// Uses an opaque `Deserializer` implementation for deserialization. + Boxed(BoxedDeserializer), + /// Uses a `GelfDeserializer` for deserialization. + Gelf(GelfDeserializer), + /// Uses a `InfluxdbDeserializer` for deserialization. + Influxdb(InfluxdbDeserializer), + /// Uses a `VrlDeserializer` for deserialization. + Vrl(VrlDeserializer), +} + +impl format::Deserializer for Deserializer { + fn parse( + &self, + bytes: Bytes, + log_namespace: LogNamespace, + ) -> vector_common::Result> { + match self { + Deserializer::Avro(deserializer) => deserializer.parse(bytes, log_namespace), + Deserializer::Bytes(deserializer) => deserializer.parse(bytes, log_namespace), + Deserializer::Json(deserializer) => deserializer.parse(bytes, log_namespace), + Deserializer::Protobuf(deserializer) => deserializer.parse(bytes, log_namespace), + #[cfg(feature = "syslog")] + Deserializer::Syslog(deserializer) => deserializer.parse(bytes, log_namespace), + Deserializer::Native(deserializer) => deserializer.parse(bytes, log_namespace), + Deserializer::NativeJson(deserializer) => deserializer.parse(bytes, log_namespace), + Deserializer::Boxed(deserializer) => deserializer.parse(bytes, log_namespace), + Deserializer::Gelf(deserializer) => deserializer.parse(bytes, log_namespace), + Deserializer::Influxdb(deserializer) => deserializer.parse(bytes, log_namespace), + Deserializer::Vrl(deserializer) => deserializer.parse(bytes, log_namespace), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn gelf_stream_default_framing_is_null_delimited() { + let deserializer_config = DeserializerConfig::from(GelfDeserializerConfig::default()); + let framing_config = deserializer_config.default_stream_framing(); + assert!(matches!( + framing_config, + FramingConfig::CharacterDelimited(CharacterDelimitedDecoderConfig { + character_delimited: CharacterDelimitedDecoderOptions { + delimiter: 0, + max_length: None, + } + }) + )); + } +} diff --git a/lib/codecs/src/encoding/format/avro.rs b/lib/codecs/src/encoding/format/avro.rs new file mode 100644 index 0000000000000..bfac175f18c21 --- /dev/null +++ b/lib/codecs/src/encoding/format/avro.rs @@ -0,0 +1,115 @@ +use crate::encoding::BuildError; +use bytes::{BufMut, BytesMut}; +use serde::{Deserialize, Serialize}; +use tokio_util::codec::Encoder; +use vector_config::configurable_component; +use vector_core::{config::DataType, event::Event, schema}; + +/// Config used to build a `AvroSerializer`. +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct AvroSerializerConfig { + /// Options for the Avro serializer. + pub avro: AvroSerializerOptions, +} + +impl AvroSerializerConfig { + /// Creates a new `AvroSerializerConfig`. + pub const fn new(schema: String) -> Self { + Self { + avro: AvroSerializerOptions { schema }, + } + } + + /// Build the `AvroSerializer` from this configuration. + pub fn build(&self) -> Result { + let schema = apache_avro::Schema::parse_str(&self.avro.schema) + .map_err(|error| format!("Failed building Avro serializer: {}", error))?; + Ok(AvroSerializer { schema }) + } + + /// The data type of events that are accepted by `AvroSerializer`. + pub fn input_type(&self) -> DataType { + DataType::Log + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + // TODO: Convert the Avro schema to a vector schema requirement. + schema::Requirement::empty() + } +} + +/// Apache Avro serializer options. +#[configurable_component] +#[derive(Clone, Debug)] +pub struct AvroSerializerOptions { + /// The Avro schema. + #[configurable(metadata( + docs::examples = r#"{ "type": "record", "name": "log", "fields": [{ "name": "message", "type": "string" }] }"# + ))] + #[configurable(metadata(docs::human_name = "Schema JSON"))] + pub schema: String, +} + +/// Serializer that converts an `Event` to bytes using the Apache Avro format. +#[derive(Debug, Clone)] +pub struct AvroSerializer { + schema: apache_avro::Schema, +} + +impl AvroSerializer { + /// Creates a new `AvroSerializer`. + pub const fn new(schema: apache_avro::Schema) -> Self { + Self { schema } + } +} + +impl Encoder for AvroSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let log = event.into_log(); + let value = apache_avro::to_value(log)?; + let value = value.resolve(&self.schema)?; + let bytes = apache_avro::to_avro_datum(&self.schema, value)?; + buffer.put_slice(&bytes); + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use bytes::BytesMut; + use indoc::indoc; + use vector_core::event::{LogEvent, Value}; + use vrl::btreemap; + + use super::*; + + #[test] + fn serialize_avro() { + let event = Event::Log(LogEvent::from(btreemap! { + "foo" => Value::from("bar") + })); + let schema = indoc! {r#" + { + "type": "record", + "name": "Log", + "fields": [ + { + "name": "foo", + "type": ["string"] + } + ] + } + "#} + .to_owned(); + let config = AvroSerializerConfig::new(schema); + let mut serializer = config.build().unwrap(); + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + + assert_eq!(bytes.freeze(), b"\0\x06bar".as_slice()); + } +} diff --git a/lib/codecs/src/encoding/format/cef.rs b/lib/codecs/src/encoding/format/cef.rs new file mode 100644 index 0000000000000..a22ba102251f9 --- /dev/null +++ b/lib/codecs/src/encoding/format/cef.rs @@ -0,0 +1,542 @@ +use crate::encoding::BuildError; +use bytes::BytesMut; +use chrono::SecondsFormat; +use lookup::lookup_v2::ConfigTargetPath; +use snafu::Snafu; +use std::num::ParseIntError; +use std::{collections::HashMap, fmt::Write}; +use tokio_util::codec::Encoder; +use vector_config_macros::configurable_component; +use vector_core::{ + config::DataType, + event::{Event, LogEvent, Value}, + schema, +}; + +const DEFAULT_DEVICE_VENDOR: &str = "Datadog"; +const DEFAULT_DEVICE_PRODUCT: &str = "Vector"; +// Major version of Vector. +// TODO: find a way to get the actual vector version. +// The version should be the actual vector version, but it's not possible +// to get it from the config. +const DEFAULT_DEVICE_VERSION: &str = "0"; +const DEFAULT_EVENT_CLASS_ID: &str = "Telemetry Event"; +const DEVICE_VENDOR_MAX_LENGTH: usize = 63; +const DEVICE_PRODUCT_MAX_LENGTH: usize = 63; +const DEVICE_VERSION_MAX_LENGTH: usize = 31; +const DEVICE_EVENT_CLASS_ID_MAX_LENGTH: usize = 1023; +const NAME_MAX_LENGTH: usize = 512; +const SEVERITY_MAX: u8 = 10; + +/// Represents the device settings in the CEF format. +#[derive(Debug, Clone)] +pub struct DeviceSettings { + pub vendor: String, + pub product: String, + pub version: String, + pub event_class_id: String, +} + +impl DeviceSettings { + /// Creates a new `DeviceSettings`. + pub const fn new( + vendor: String, + product: String, + version: String, + event_class_id: String, + ) -> Self { + Self { + vendor, + product, + version, + event_class_id, + } + } +} + +/// Errors that can occur during CEF serialization. +#[derive(Debug, Snafu)] +pub enum CefSerializerError { + #[snafu(display( + r#"LogEvent field "{}" with the value "{}" exceed {} characters limit: actual {}"#, + field_name, + field, + max_length, + actual_length + ))] + ExceededLength { + field: String, + field_name: String, + max_length: usize, + actual_length: usize, + }, + #[snafu(display( + r#"LogEvent CEF severity must be a number from 0 to {}: actual {}"#, + max_value, + actual_value + ))] + SeverityMaxValue { max_value: u8, actual_value: u8 }, + #[snafu(display(r#"LogEvent CEF severity must be a number: {}"#, error))] + SeverityNumberType { error: ParseIntError }, + #[snafu(display(r#"LogEvent extension keys can only contain ascii alphabetical characters: invalid key "{}""#, key))] + ExtensionNonASCIIKey { key: String }, +} + +/// Config used to build a `CefSerializer`. +#[configurable_component] +#[derive(Debug, Clone)] +pub struct CefSerializerConfig { + /// The CEF Serializer Options. + pub cef: CefSerializerOptions, +} + +impl CefSerializerConfig { + /// Creates a new `CefSerializerConfig`. + pub const fn new(cef: CefSerializerOptions) -> Self { + Self { cef } + } + + /// Build the `CefSerializer` from this configuration. + pub fn build(&self) -> Result { + let device_vendor = validate_length( + &self.cef.device_vendor, + "device_vendor", + DEVICE_VENDOR_MAX_LENGTH, + )?; + let device_product = validate_length( + &self.cef.device_product, + "device_product", + DEVICE_PRODUCT_MAX_LENGTH, + )?; + let device_version = validate_length( + &self.cef.device_version, + "device_version", + DEVICE_VERSION_MAX_LENGTH, + )?; + let device_event_class_id = validate_length( + &self.cef.device_event_class_id, + "device_event_class_id", + DEVICE_EVENT_CLASS_ID_MAX_LENGTH, + )?; + + let invalid_keys: Vec = self + .cef + .extensions + .keys() + .filter(|key| !key.chars().all(|c| c.is_ascii_alphabetic())) + .cloned() + .collect(); + + if !invalid_keys.is_empty() { + return ExtensionNonASCIIKeySnafu { + key: invalid_keys.join(", "), + } + .fail() + .map_err(|e| e.to_string().into()); + } + + let device = DeviceSettings::new( + device_vendor, + device_product, + device_version, + device_event_class_id, + ); + + Ok(CefSerializer::new( + self.cef.version.clone(), + device, + self.cef.severity.clone(), + self.cef.name.clone(), + self.cef.extensions.clone(), + )) + } + + /// The data type of events that are accepted by `CefSerializer`. + pub fn input_type(&self) -> DataType { + DataType::Log + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + // While technically we support `Value` variants that can't be losslessly serialized to + // CEF, we don't want to enforce that limitation to users yet. + schema::Requirement::empty() + } +} + +/// CEF version. +#[configurable_component] +#[derive(Debug, Default, Clone)] +pub enum Version { + #[default] + /// CEF specification version 0.1. + V0, + /// CEF specification version 1.x. + V1, +} + +impl Version { + fn as_str(&self) -> &'static str { + match self { + Version::V0 => "0", + Version::V1 => "1", + } + } +} + +impl std::fmt::Display for Version { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.as_str()) + } +} + +/// Config used to build a `CefSerializer`. +#[configurable_component] +#[derive(Debug, Clone)] +pub struct CefSerializerOptions { + /// CEF Version. Can be either 0 or 1. + /// Set to "0" by default. + pub version: Version, + + /// Identifies the vendor of the product. + /// The part of a unique device identifier. No two products can use the same combination of device vendor and device product. + /// The value length must be less than or equal to 63. + pub device_vendor: String, + + /// Identifies the product of a vendor. + /// The part of a unique device identifier. No two products can use the same combination of device vendor and device product. + /// The value length must be less than or equal to 63. + pub device_product: String, + + /// Identifies the version of the problem. The combination of the device product, vendor and this value make up the unique id of the device that sends messages. + /// The value length must be less than or equal to 31. + pub device_version: String, + + /// Unique identifier for each event type. Identifies the type of event reported. + /// The value length must be less than or equal to 1023. + pub device_event_class_id: String, + + /// This is a path that points to the field of a log event that reflects importance of the event. + /// Reflects importance of the event. + /// + /// It must point to a number from 0 to 10. + /// 0 = lowest_importance, 10 = highest_importance. + /// Set to "cef.severity" by default. + pub severity: ConfigTargetPath, + + /// This is a path that points to the human-readable description of a log event. + /// The value length must be less than or equal to 512. + /// Equals "cef.name" by default. + pub name: ConfigTargetPath, + + /// The collection of key-value pairs. Keys are the keys of the extensions, and values are paths that point to the extension values of a log event. + /// The event can have any number of key-value pairs in any order. + #[configurable(metadata( + docs::additional_props_description = "This is a path that points to the extension value of a log event." + ))] + pub extensions: HashMap, + // TODO: use Template instead of ConfigTargetPath. + // Templates are in the src/ package, and codes are in the lib/codecs. + // Moving the Template to the lib/ package in order to prevent the circular dependency. +} + +impl Default for CefSerializerOptions { + fn default() -> Self { + Self { + version: Version::default(), + device_vendor: String::from(DEFAULT_DEVICE_VENDOR), + device_product: String::from(DEFAULT_DEVICE_PRODUCT), + device_version: String::from(DEFAULT_DEVICE_VERSION), + device_event_class_id: String::from(DEFAULT_EVENT_CLASS_ID), + severity: ConfigTargetPath::try_from("cef.severity".to_string()) + .expect("could not parse path"), + name: ConfigTargetPath::try_from("cef.name".to_string()).expect("could not parse path"), + extensions: HashMap::new(), + } + } +} + +/// Serializer that converts an `Event` to the bytes using the CEF format. +/// CEF:{version}|{device_vendor}|{device_product}|{device_version>|{device_event_class}|{name}|{severity}|{encoded_fields} +#[derive(Debug, Clone)] +pub struct CefSerializer { + version: Version, + device: DeviceSettings, + severity: ConfigTargetPath, + name: ConfigTargetPath, + extensions: HashMap, +} + +impl CefSerializer { + /// Creates a new `CefSerializer`. + pub const fn new( + version: Version, + device: DeviceSettings, + severity: ConfigTargetPath, + name: ConfigTargetPath, + extensions: HashMap, + ) -> Self { + Self { + version, + device, + severity, + name, + extensions, + } + } +} + +impl Encoder for CefSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let log = event.into_log(); + + let severity: u8 = match get_log_event_value(&log, &self.severity).parse() { + Err(err) => { + return SeverityNumberTypeSnafu { error: err } + .fail() + .map_err(|e| e.to_string().into()); + } + Ok(severity) => { + if severity > SEVERITY_MAX { + return SeverityMaxValueSnafu { + max_value: SEVERITY_MAX, + actual_value: severity, + } + .fail() + .map_err(|e| e.to_string().into()); + }; + severity + } + }; + + let name: String = get_log_event_value(&log, &self.name); + let name = validate_length(&name, "name", NAME_MAX_LENGTH)?; + + let mut formatted_extensions = Vec::with_capacity(self.extensions.len()); + for (extension, field) in &self.extensions { + let value = get_log_event_value(&log, field); + if value.is_empty() { + continue; + } + let value = escape_extension(&value); + formatted_extensions.push(format!("{}={}", extension, value)); + } + + buffer.write_fmt(format_args!( + "CEF:{}|{}|{}|{}|{}|{}|{}", + &self.version, + &self.device.vendor, + &self.device.product, + &self.device.version, + &self.device.event_class_id, + name, + severity, + ))?; + if !formatted_extensions.is_empty() { + formatted_extensions.sort(); + + buffer.write_char('|')?; + buffer.write_str(formatted_extensions.join(" ").as_str())?; + } + + Ok(()) + } +} + +fn get_log_event_value(log: &LogEvent, field: &ConfigTargetPath) -> String { + match log.get(field) { + Some(Value::Bytes(bytes)) => String::from_utf8_lossy(bytes).to_string(), + Some(Value::Integer(int)) => int.to_string(), + Some(Value::Float(float)) => float.to_string(), + Some(Value::Boolean(bool)) => bool.to_string(), + Some(Value::Timestamp(timestamp)) => timestamp.to_rfc3339_opts(SecondsFormat::AutoSi, true), + Some(Value::Null) => String::from(""), + // Other value types: Array, Regex, Object are not supported by the CEF format. + Some(_) => String::from(""), + None => String::from(""), + } +} + +fn escape_header(s: &str) -> String { + escape_special_chars(s, '|') +} +fn escape_extension(s: &str) -> String { + escape_special_chars(s, '=') +} + +fn escape_special_chars(s: &str, extra_char: char) -> String { + s.replace('\\', r#"\\"#) + .replace(extra_char, &format!(r#"\{}"#, extra_char)) +} + +fn validate_length(field: &str, field_name: &str, max_length: usize) -> Result { + let escaped = escape_header(field); + if escaped.len() > max_length { + ExceededLengthSnafu { + field: escaped.clone(), + field_name, + max_length, + actual_length: escaped.len(), + } + .fail()?; + } + Ok(escaped) +} + +#[cfg(test)] +mod tests { + use bytes::BytesMut; + use chrono::DateTime; + use ordered_float::NotNan; + use vector_common::btreemap; + use vector_core::event::{Event, LogEvent, Value}; + + use super::*; + + #[test] + fn build_error_on_invalid_extension() { + let extensions = HashMap::from([( + String::from("foo.test"), + ConfigTargetPath::try_from("foo".to_string()).unwrap(), + )]); + let opts: CefSerializerOptions = CefSerializerOptions { + extensions, + ..CefSerializerOptions::default() + }; + let config = CefSerializerConfig::new(opts); + let err = config.build().unwrap_err(); + assert_eq!( + err.to_string(), + "LogEvent extension keys can only contain ascii alphabetical characters: invalid key \"foo.test\"" + ); + } + + #[test] + fn build_error_max_length() { + let extensions = HashMap::from([( + String::from("foo-test"), + ConfigTargetPath::try_from("foo".to_string()).unwrap(), + )]); + let opts: CefSerializerOptions = CefSerializerOptions { + device_vendor: "Repeat".repeat(11), // more than max length + extensions, + ..CefSerializerOptions::default() + }; + let config = CefSerializerConfig::new(opts); + let err = config.build().unwrap_err(); + assert_eq!( + err.to_string(), + "LogEvent field \"device_vendor\" with the value \"RepeatRepeatRepeatRepeatRepeatRepeatRepeatRepeatRepeatRepeatRepeat\" exceed 63 characters limit: actual 66" + ); + } + + #[test] + fn try_escape_header() { + let s1 = String::from(r#"Test | test"#); + let s2 = String::from(r#"Test \ test"#); + let s3 = String::from(r#"Test test"#); + let s4 = String::from(r#"Test \| \| test"#); + + let s1 = escape_header(&s1); + let s2 = escape_header(&s2); + let s3: String = escape_header(&s3); + let s4: String = escape_header(&s4); + + assert_eq!(s1, r#"Test \| test"#); + assert_eq!(s2, r#"Test \\ test"#); + assert_eq!(s3, r#"Test test"#); + assert_eq!(s4, r#"Test \\\| \\\| test"#); + } + + #[test] + fn try_escape_extension() { + let s1 = String::from(r#"Test=test"#); + let s2 = String::from(r#"Test = test"#); + let s3 = String::from(r#"Test test"#); + let s4 = String::from(r#"Test \| \| test"#); + + let s1 = escape_extension(&s1); + let s2 = escape_extension(&s2); + let s3: String = escape_extension(&s3); + let s4: String = escape_extension(&s4); + + assert_eq!(s1, r#"Test\=test"#); + assert_eq!(s2, r#"Test \= test"#); + assert_eq!(s3, r#"Test test"#); + assert_eq!(s4, r#"Test \\| \\| test"#); + } + + #[test] + fn serialize_extensions() { + let event = Event::Log(LogEvent::from(btreemap! { + "cef" => Value::from(btreemap! { + "severity" => Value::from(1), + "name" => Value::from("Event name"), + }), + "foo" => Value::from("bar"), + "int" => Value::from(123), + "comma" => Value::from("abc,bcd"), + "float" => Value::Float(NotNan::new(3.1415925).unwrap()), + "space" => Value::from("sp ace"), + "time" => Value::Timestamp(DateTime::parse_from_rfc3339("2023-02-27T15:04:49.363+08:00").unwrap().into()), + "quote" => Value::from("the \"quote\" should be escaped"), + "bool" => Value::from(true), + "other" => Value::from("data"), + })); + + let extensions = HashMap::from([ + ( + String::from("foo"), + ConfigTargetPath::try_from("foo".to_string()).unwrap(), + ), + ( + String::from("int"), + ConfigTargetPath::try_from("int".to_string()).unwrap(), + ), + ( + String::from("comma"), + ConfigTargetPath::try_from("comma".to_string()).unwrap(), + ), + ( + String::from("float"), + ConfigTargetPath::try_from("float".to_string()).unwrap(), + ), + ( + String::from("missing"), + ConfigTargetPath::try_from("missing".to_string()).unwrap(), + ), + ( + String::from("space"), + ConfigTargetPath::try_from("space".to_string()).unwrap(), + ), + ( + String::from("time"), + ConfigTargetPath::try_from("time".to_string()).unwrap(), + ), + ( + String::from("quote"), + ConfigTargetPath::try_from("quote".to_string()).unwrap(), + ), + ( + String::from("bool"), + ConfigTargetPath::try_from("bool".to_string()).unwrap(), + ), + ]); + + let opts: CefSerializerOptions = CefSerializerOptions { + extensions, + ..CefSerializerOptions::default() + }; + + let config = CefSerializerConfig::new(opts); + let mut serializer = config.build().unwrap(); + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + let expected = b"CEF:0|Datadog|Vector|0|Telemetry Event|Event name|1|bool=true comma=abc,bcd float=3.1415925 foo=bar int=123 quote=the \"quote\" should be escaped space=sp ace time=2023-02-27T07:04:49.363Z"; + + assert_eq!(bytes.as_ref(), expected); + } +} diff --git a/lib/codecs/src/encoding/format/common.rs b/lib/codecs/src/encoding/format/common.rs new file mode 100644 index 0000000000000..44d7b3e44c88b --- /dev/null +++ b/lib/codecs/src/encoding/format/common.rs @@ -0,0 +1,12 @@ +use vector_core::config::log_schema; +use vector_core::schema; +use vrl::value::Kind; + +/// Inspect the global log schema and create a schema requirement. +pub fn get_serializer_schema_requirement() -> schema::Requirement { + if let Some(message_key) = log_schema().message_key() { + schema::Requirement::empty().required_meaning(message_key.to_string(), Kind::any()) + } else { + schema::Requirement::empty() + } +} diff --git a/lib/codecs/src/encoding/format/csv.rs b/lib/codecs/src/encoding/format/csv.rs new file mode 100644 index 0000000000000..560b29558a909 --- /dev/null +++ b/lib/codecs/src/encoding/format/csv.rs @@ -0,0 +1,578 @@ +use crate::encoding::BuildError; +use bytes::BytesMut; +use chrono::SecondsFormat; +use csv_core::{WriteResult, Writer, WriterBuilder}; +use lookup::lookup_v2::ConfigTargetPath; +use tokio_util::codec::Encoder; +use vector_config_macros::configurable_component; +use vector_core::{ + config::DataType, + event::{Event, Value}, + schema, +}; + +/// The user configuration to choose the metric tag strategy. +#[configurable_component] +#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)] +#[serde(rename_all = "snake_case")] +pub enum QuoteStyle { + /// Always puts quotes around every field. + Always, + + /// Puts quotes around fields only when necessary. + /// They are necessary when fields contain a quote, delimiter, or record terminator. + /// Quotes are also necessary when writing an empty record + /// (which is indistinguishable from a record with one empty field). + #[default] + Necessary, + + /// Puts quotes around all fields that are non-numeric. + /// This means that when writing a field that does not parse as a valid float or integer, + /// quotes are used even if they aren't strictly necessary. + NonNumeric, + + /// Never writes quotes, even if it produces invalid CSV data. + Never, +} + +/// Config used to build a `CsvSerializer`. +#[configurable_component] +#[derive(Debug, Clone)] +pub struct CsvSerializerConfig { + /// The CSV Serializer Options. + pub csv: CsvSerializerOptions, +} + +impl CsvSerializerConfig { + /// Creates a new `CsvSerializerConfig`. + pub const fn new(csv: CsvSerializerOptions) -> Self { + Self { csv } + } + + /// Build the `CsvSerializer` from this configuration. + pub fn build(&self) -> Result { + if self.csv.fields.is_empty() { + Err("At least one CSV field must be specified".into()) + } else { + Ok(CsvSerializer::new(self.clone())) + } + } + + /// The data type of events that are accepted by `CsvSerializer`. + pub fn input_type(&self) -> DataType { + DataType::Log + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + // While technically we support `Value` variants that can't be losslessly serialized to + // CSV, we don't want to enforce that limitation to users yet. + schema::Requirement::empty() + } +} + +/// Config used to build a `CsvSerializer`. +#[configurable_component] +#[derive(Debug, Clone)] +pub struct CsvSerializerOptions { + /// The field delimiter to use when writing CSV. + #[configurable(metadata(docs::type_override = "ascii_char"))] + #[serde( + default = "default_delimiter", + with = "vector_core::serde::ascii_char", + skip_serializing_if = "vector_core::serde::is_default" + )] + pub delimiter: u8, + + /// Enables double quote escapes. + /// + /// This is enabled by default, but you can disable it. When disabled, quotes in + /// field data are escaped instead of doubled. + #[serde( + default = "default_double_quote", + skip_serializing_if = "vector_core::serde::is_default" + )] + pub double_quote: bool, + + /// The escape character to use when writing CSV. + /// + /// In some variants of CSV, quotes are escaped using a special escape character + /// like \ (instead of escaping quotes by doubling them). + /// + /// To use this, `double_quotes` needs to be disabled as well; otherwise, this setting is ignored. + #[configurable(metadata(docs::type_override = "ascii_char"))] + #[serde( + default = "default_escape", + with = "vector_core::serde::ascii_char", + skip_serializing_if = "vector_core::serde::is_default" + )] + pub escape: u8, + + /// The quote character to use when writing CSV. + #[configurable(metadata(docs::type_override = "ascii_char"))] + #[serde( + default = "default_escape", + with = "vector_core::serde::ascii_char", + skip_serializing_if = "vector_core::serde::is_default" + )] + quote: u8, + + /// The quoting style to use when writing CSV data. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub quote_style: QuoteStyle, + + /// Sets the capacity (in bytes) of the internal buffer used in the CSV writer. + /// This defaults to 8KB. + #[serde(default = "default_capacity")] + pub capacity: usize, + + /// Configures the fields that are encoded, as well as the order in which they + /// appear in the output. + /// + /// If a field is not present in the event, the output for that field is an empty string. + /// + /// Values of type `Array`, `Object`, and `Regex` are not supported, and the + /// output for any of these types is an empty string. + pub fields: Vec, +} + +const fn default_delimiter() -> u8 { + b',' +} + +const fn default_escape() -> u8 { + b'"' +} + +const fn default_double_quote() -> bool { + true +} + +const fn default_capacity() -> usize { + 8 * (1 << 10) +} + +impl Default for CsvSerializerOptions { + fn default() -> Self { + Self { + delimiter: default_delimiter(), + double_quote: default_double_quote(), + escape: default_escape(), + quote: default_escape(), + quote_style: QuoteStyle::default(), + capacity: default_capacity(), + fields: Vec::new(), + } + } +} + +impl CsvSerializerOptions { + fn csv_quote_style(&self) -> csv_core::QuoteStyle { + match self.quote_style { + QuoteStyle::Always => csv_core::QuoteStyle::Always, + QuoteStyle::Necessary => csv_core::QuoteStyle::Necessary, + QuoteStyle::NonNumeric => csv_core::QuoteStyle::NonNumeric, + QuoteStyle::Never => csv_core::QuoteStyle::Never, + } + } +} + +/// Serializer that converts an `Event` to bytes using the CSV format. +#[derive(Debug, Clone)] +pub struct CsvSerializer { + // Box because of clippy error: 'large size difference between variants' + // in SerializerConfig enum + writer: Box, + fields: Vec, + internal_buffer: Vec, +} + +impl CsvSerializer { + /// Creates a new `CsvSerializer`. + pub fn new(config: CsvSerializerConfig) -> Self { + // 'flexible' is not needed since every event is a single context free csv line + let writer = Box::new( + WriterBuilder::new() + .delimiter(config.csv.delimiter) + .double_quote(config.csv.double_quote) + .escape(config.csv.escape) + .quote_style(config.csv.csv_quote_style()) + .quote(config.csv.quote) + .build(), + ); + + let internal_buffer = if config.csv.capacity < 1 { + vec![0; 1] + } else { + vec![0; config.csv.capacity] + }; + + Self { + writer, + internal_buffer, + fields: config.csv.fields, + } + } +} + +impl Encoder for CsvSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let log = event.into_log(); + + let mut used_buffer_bytes = 0; + for (fields_written, field) in self.fields.iter().enumerate() { + let field_value = log.get(field); + + // write field delimiter + if fields_written > 0 { + loop { + let (res, bytes_written) = self + .writer + .delimiter(&mut self.internal_buffer[used_buffer_bytes..]); + used_buffer_bytes += bytes_written; + match res { + WriteResult::InputEmpty => { + break; + } + WriteResult::OutputFull => { + buffer.extend_from_slice(&self.internal_buffer[..used_buffer_bytes]); + used_buffer_bytes = 0; + } + } + } + } + + // get string value of current field + let field_value = match field_value { + Some(Value::Bytes(bytes)) => String::from_utf8_lossy(bytes).into_owned(), + Some(Value::Integer(int)) => int.to_string(), + Some(Value::Float(float)) => float.to_string(), + Some(Value::Boolean(bool)) => bool.to_string(), + Some(Value::Timestamp(timestamp)) => { + timestamp.to_rfc3339_opts(SecondsFormat::AutoSi, true) + } + Some(Value::Null) => String::new(), + // Other value types: Array, Regex, Object are not supported by the CSV format. + Some(_) => String::new(), + None => String::new(), + }; + + // mutable byte_slice so it can be written in chunks if internal_buffer fills up + let mut field_value = field_value.as_bytes(); + // write field_value to internal buffer + loop { + let (res, bytes_read, bytes_written) = self + .writer + .field(field_value, &mut self.internal_buffer[used_buffer_bytes..]); + + field_value = &field_value[bytes_read..]; + used_buffer_bytes += bytes_written; + + match res { + WriteResult::InputEmpty => break, + WriteResult::OutputFull => { + buffer.extend_from_slice(&self.internal_buffer[..used_buffer_bytes]); + used_buffer_bytes = 0; + } + } + } + } + + // finish current event (potentially add closing quotes) + loop { + let (res, bytes_written) = self + .writer + .finish(&mut self.internal_buffer[used_buffer_bytes..]); + used_buffer_bytes += bytes_written; + match res { + WriteResult::InputEmpty => break, + WriteResult::OutputFull => { + buffer.extend_from_slice(&self.internal_buffer[..used_buffer_bytes]); + used_buffer_bytes = 0; + } + } + } + + // final flush of internal_buffer + if used_buffer_bytes > 0 { + buffer.extend_from_slice(&self.internal_buffer[..used_buffer_bytes]); + } + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use bytes::BytesMut; + use chrono::DateTime; + use ordered_float::NotNan; + use vector_common::btreemap; + use vector_core::event::{LogEvent, ObjectMap, Value}; + + use super::*; + + fn make_event_with_fields(field_data: Vec<(&str, &str)>) -> (Vec, Event) { + let mut fields: Vec = std::vec::Vec::new(); + let mut tree = ObjectMap::new(); + + for (field_name, field_value) in field_data.into_iter() { + let field = field_name.into(); + fields.push(field); + + let field_value = Value::from(field_value.to_string()); + tree.insert(field_name.into(), field_value); + } + + let event = Event::Log(LogEvent::from(tree)); + (fields, event) + } + + #[test] + fn build_error_on_empty_fields() { + let opts = CsvSerializerOptions::default(); + let config = CsvSerializerConfig::new(opts); + let err = config.build().unwrap_err(); + assert_eq!(err.to_string(), "At least one CSV field must be specified"); + } + + #[test] + fn serialize_fields() { + let event = Event::Log(LogEvent::from(btreemap! { + "foo" => Value::from("bar"), + "int" => Value::from(123), + "comma" => Value::from("abc,bcd"), + "float" => Value::Float(NotNan::new(3.1415925).unwrap()), + "space" => Value::from("sp ace"), + "time" => Value::Timestamp(DateTime::parse_from_rfc3339("2023-02-27T15:04:49.363+08:00").unwrap().into()), + "quote" => Value::from("the \"quote\" should be escaped"), + "bool" => Value::from(true), + "other" => Value::from("data"), + })); + let fields = vec![ + "foo".into(), + "int".into(), + "comma".into(), + "float".into(), + "missing".into(), + "space".into(), + "time".into(), + "quote".into(), + "bool".into(), + ]; + + let opts = CsvSerializerOptions { + fields, + ..Default::default() + }; + let config = CsvSerializerConfig::new(opts); + let mut serializer = config.build().unwrap(); + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + + assert_eq!( + bytes.freeze(), + b"bar,123,\"abc,bcd\",3.1415925,,sp ace,2023-02-27T07:04:49.363Z,\"the \"\"quote\"\" should be escaped\",true".as_slice() + ); + } + + #[test] + fn serialize_order() { + let event = Event::Log(LogEvent::from(btreemap! { + "field1" => Value::from("value1"), + "field2" => Value::from("value2"), + "field3" => Value::from("value3"), + "field4" => Value::from("value4"), + "field5" => Value::from("value5"), + })); + let fields = vec![ + "field1".into(), + "field5".into(), + "field5".into(), + "field3".into(), + "field2".into(), + ]; + let opts = CsvSerializerOptions { + fields, + ..Default::default() + }; + let config = CsvSerializerConfig::new(opts); + let mut serializer = config.build().unwrap(); + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + + assert_eq!( + bytes.freeze(), + b"value1,value5,value5,value3,value2".as_slice() + ); + } + + #[test] + fn correct_quoting() { + let event = Event::Log(LogEvent::from(btreemap! { + "field1" => Value::from("hello world"), + "field2" => Value::from(1), + "field3" => Value::from("foo\"bar"), + "field4" => Value::from("baz,bas"), + })); + let fields = vec![ + "field1".into(), + "field2".into(), + "field3".into(), + "field4".into(), + ]; + + let mut default_bytes = BytesMut::new(); + let mut never_bytes = BytesMut::new(); + let mut always_bytes = BytesMut::new(); + let mut non_numeric_bytes = BytesMut::new(); + + CsvSerializerConfig::new(CsvSerializerOptions { + fields: fields.clone(), + ..Default::default() + }) + .build() + .unwrap() + .encode(event.clone(), &mut default_bytes) + .unwrap(); + + CsvSerializerConfig::new(CsvSerializerOptions { + fields: fields.clone(), + quote_style: QuoteStyle::Never, + ..Default::default() + }) + .build() + .unwrap() + .encode(event.clone(), &mut never_bytes) + .unwrap(); + + CsvSerializerConfig::new(CsvSerializerOptions { + fields: fields.clone(), + quote_style: QuoteStyle::Always, + ..Default::default() + }) + .build() + .unwrap() + .encode(event.clone(), &mut always_bytes) + .unwrap(); + + CsvSerializerConfig::new(CsvSerializerOptions { + fields: fields.clone(), + quote_style: QuoteStyle::NonNumeric, + ..Default::default() + }) + .build() + .unwrap() + .encode(event.clone(), &mut non_numeric_bytes) + .unwrap(); + + assert_eq!( + default_bytes.freeze(), + b"hello world,1,\"foo\"\"bar\",\"baz,bas\"".as_slice() + ); + assert_eq!( + never_bytes.freeze(), + b"hello world,1,foo\"bar,baz,bas".as_slice() + ); + assert_eq!( + always_bytes.freeze(), + b"\"hello world\",\"1\",\"foo\"\"bar\",\"baz,bas\"".as_slice() + ); + assert_eq!( + non_numeric_bytes.freeze(), + b"\"hello world\",1,\"foo\"\"bar\",\"baz,bas\"".as_slice() + ); + } + + #[test] + fn custom_delimiter() { + let (fields, event) = + make_event_with_fields(vec![("field1", "value1"), ("field2", "value2")]); + let opts = CsvSerializerOptions { + fields, + delimiter: b'\t', + ..Default::default() + }; + let config = CsvSerializerConfig::new(opts); + let mut serializer = config.build().unwrap(); + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + + assert_eq!(bytes.freeze(), b"value1\tvalue2".as_slice()); + } + + #[test] + fn custom_escape_char() { + let (fields, event) = make_event_with_fields(vec![("field1", "foo\"bar")]); + let opts = CsvSerializerOptions { + fields, + double_quote: false, + escape: b'\\', + ..Default::default() + }; + let config = CsvSerializerConfig::new(opts); + let mut serializer = config.build().unwrap(); + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + + assert_eq!(bytes.freeze(), b"\"foo\\\"bar\"".as_slice()); + } + + #[test] + fn custom_quote_char() { + let (fields, event) = make_event_with_fields(vec![("field1", "foo \" $ bar")]); + let opts = CsvSerializerOptions { + fields, + quote: b'$', + ..Default::default() + }; + let config = CsvSerializerConfig::new(opts); + let mut serializer = config.build().unwrap(); + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + + assert_eq!(bytes.freeze(), b"$foo \" $$ bar$".as_slice()); + } + + #[test] + fn more_input_then_capacity() { + let (fields, event) = make_event_with_fields(vec![("field1", "foo bar")]); + let opts = CsvSerializerOptions { + fields, + capacity: 3, + ..Default::default() + }; + let config = CsvSerializerConfig::new(opts); + let mut serializer = config.build().unwrap(); + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + + assert_eq!(bytes.freeze(), b"foo bar".as_slice()); + } + + #[test] + fn multiple_events() { + let (fields, event1) = make_event_with_fields(vec![("field1", "foo,")]); + let (_, event2) = make_event_with_fields(vec![("field1", "\nbar")]); + let opts = CsvSerializerOptions { + fields, + ..Default::default() + }; + let config = CsvSerializerConfig::new(opts); + let mut serializer = config.build().unwrap(); + let mut bytes = BytesMut::new(); + + serializer.encode(event1, &mut bytes).unwrap(); + serializer.encode(event2, &mut bytes).unwrap(); + + assert_eq!(bytes.freeze(), b"\"foo,\"\"\nbar\"".as_slice()); + } +} diff --git a/lib/codecs/src/encoding/format/gelf.rs b/lib/codecs/src/encoding/format/gelf.rs new file mode 100644 index 0000000000000..be5c861548822 --- /dev/null +++ b/lib/codecs/src/encoding/format/gelf.rs @@ -0,0 +1,454 @@ +use crate::gelf::GELF_TARGET_PATHS; +use crate::{gelf_fields::*, VALID_FIELD_REGEX}; +use bytes::{BufMut, BytesMut}; +use lookup::event_path; +use ordered_float::NotNan; +use serde::{Deserialize, Serialize}; +use snafu::Snafu; +use tokio_util::codec::Encoder; +use vector_core::{ + config::{log_schema, DataType}, + event::{Event, KeyString, LogEvent, Value}, + schema, +}; + +/// On GELF encoding behavior: +/// Graylog has a relaxed parsing. They are much more lenient than the spec would +/// suggest. We've elected to take a more strict approach to maintain backwards compatibility +/// in the event that we need to change the behavior to be more relaxed, so that prior versions +/// of vector will still work. +/// The exception is that if 'Additional fields' are found to be missing an underscore prefix and +/// are otherwise valid field names, we prepend the underscore. +/// +/// Errors that can occur during GELF serialization. +#[derive(Debug, Snafu)] +pub enum GelfSerializerError { + #[snafu(display(r#"LogEvent does not contain required field: "{}""#, field))] + MissingField { field: KeyString }, + #[snafu(display( + r#"LogEvent contains a value with an invalid type. field = "{}" type = "{}" expected type = "{}""#, + field, + actual_type, + expected_type + ))] + InvalidValueType { + field: String, + actual_type: String, + expected_type: String, + }, +} + +/// Config used to build a `GelfSerializer`. +#[derive(Debug, Clone, Default, Deserialize, Serialize)] +pub struct GelfSerializerConfig; + +impl GelfSerializerConfig { + /// Creates a new `GelfSerializerConfig`. + pub const fn new() -> Self { + Self + } + + /// Build the `GelfSerializer` from this configuration. + pub fn build(&self) -> GelfSerializer { + GelfSerializer::new() + } + + /// The data type of events that are accepted by `GelfSerializer`. + pub fn input_type() -> DataType { + DataType::Log + } + + /// The schema required by the serializer. + pub fn schema_requirement() -> schema::Requirement { + // While technically we support `Value` variants that can't be losslessly serialized to + // JSON, we don't want to enforce that limitation to users yet. + schema::Requirement::empty() + } +} + +/// Serializer that converts an `Event` to bytes using the GELF format. +/// Spec: +#[derive(Debug, Clone)] +pub struct GelfSerializer; + +impl GelfSerializer { + /// Creates a new `GelfSerializer`. + pub fn new() -> Self { + GelfSerializer + } + + /// Encode event and represent it as JSON value. + pub fn to_json_value(&self, event: Event) -> Result { + // input_type() restricts the event type to LogEvents + let log = to_gelf_event(event.into_log())?; + serde_json::to_value(&log).map_err(|e| e.to_string().into()) + } +} + +impl Default for GelfSerializer { + fn default() -> Self { + Self::new() + } +} + +impl Encoder for GelfSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let log = to_gelf_event(event.into_log())?; + let writer = buffer.writer(); + serde_json::to_writer(writer, &log)?; + Ok(()) + } +} + +/// Returns Error for invalid type. +fn err_invalid_type( + field: &str, + expected_type: &str, + actual_type: &str, +) -> vector_common::Result<()> { + InvalidValueTypeSnafu { + field, + actual_type, + expected_type, + } + .fail() + .map_err(|e| e.to_string().into()) +} + +/// Validates that the GELF required fields exist in the event, coercing in some cases. +fn coerce_required_fields(mut log: LogEvent) -> vector_common::Result { + // returns Error for missing field + fn err_missing_field(field: &str) -> vector_common::Result<()> { + MissingFieldSnafu { field } + .fail() + .map_err(|e| e.to_string().into()) + } + + // add the VERSION if it does not exist + if !log.contains(&GELF_TARGET_PATHS.version) { + log.insert(&GELF_TARGET_PATHS.version, GELF_VERSION); + } + + if !log.contains(&GELF_TARGET_PATHS.host) { + err_missing_field(HOST)?; + } + + if !log.contains(&GELF_TARGET_PATHS.short_message) { + if let Some(message_key) = log_schema().message_key_target_path() { + if log.contains(message_key) { + log.rename_key(message_key, &GELF_TARGET_PATHS.short_message); + } else { + err_missing_field(SHORT_MESSAGE)?; + } + } + } + Ok(log) +} + +/// Validates rules for field names and value types, coercing in some cases. +fn coerce_field_names_and_values( + mut log: LogEvent, +) -> vector_common::Result<(LogEvent, Vec)> { + let mut missing_prefix = vec![]; + if let Some(event_data) = log.as_map_mut() { + for (field, value) in event_data.iter_mut() { + match field.as_str() { + VERSION | HOST | SHORT_MESSAGE | FULL_MESSAGE | FACILITY | FILE => { + if !value.is_bytes() { + err_invalid_type(field, "UTF-8 string", value.kind_str())?; + } + } + TIMESTAMP => { + if !(value.is_timestamp() || value.is_integer()) { + err_invalid_type(field, "timestamp or integer", value.kind_str())?; + } + + // convert a `Value::Timestamp` to a GELF specified timestamp where milliseconds are represented by the fractional part of a float. + if let Value::Timestamp(ts) = value { + let ts_millis = ts.timestamp_millis(); + if ts_millis % 1000 != 0 { + *value = Value::Float(NotNan::new(ts_millis as f64 / 1000.0).unwrap()); + } else { + // keep full range of representable time if no milliseconds are set + // but still convert to numeric according to GELF protocol + *value = Value::Integer(ts.timestamp()) + } + } + } + LEVEL => { + if !value.is_integer() { + err_invalid_type(field, "integer", value.kind_str())?; + } + } + LINE => { + if !(value.is_float() || value.is_integer()) { + err_invalid_type(field, "number", value.kind_str())?; + } + } + _ => { + // additional fields must be only word chars, dashes and periods. + if !VALID_FIELD_REGEX.is_match(field) { + return MissingFieldSnafu { + field: field.clone(), + } + .fail() + .map_err(|e| e.to_string().into()); + } + + // additional field values must be only strings or numbers + if !(value.is_integer() || value.is_float() || value.is_bytes()) { + err_invalid_type(field, "string or number", value.kind_str())?; + } + + // Additional fields must be prefixed with underscores. + // Prepending the underscore since vector adds fields such as 'source_type' + // which would otherwise throw errors. + if !field.is_empty() && !field.starts_with('_') { + // flag the field as missing prefix to be modified later + missing_prefix.push(field.to_string()); + } + } + } + } + } + Ok((log, missing_prefix)) +} + +/// Validate if the input log event is valid GELF, potentially coercing the event into valid GELF. +fn to_gelf_event(log: LogEvent) -> vector_common::Result { + let log = coerce_required_fields(log).and_then(|log| { + coerce_field_names_and_values(log).map(|(mut log, missing_prefix)| { + // rename additional fields that were flagged as missing the underscore prefix + for field in missing_prefix { + log.rename_key( + event_path!(field.as_str()), + event_path!(format!("_{}", &field).as_str()), + ); + } + log + }) + })?; + + Ok(log) +} + +#[cfg(test)] +mod tests { + use crate::encoding::SerializerConfig; + + use super::*; + use chrono::NaiveDateTime; + use vector_core::event::{Event, EventMetadata}; + use vrl::btreemap; + use vrl::value::{ObjectMap, Value}; + + fn do_serialize(expect_success: bool, event_fields: ObjectMap) -> Option { + let config = GelfSerializerConfig::new(); + let mut serializer = config.build(); + let event: Event = LogEvent::from_map(event_fields, EventMetadata::default()).into(); + let mut buffer = BytesMut::new(); + + if expect_success { + assert!(serializer.encode(event, &mut buffer).is_ok()); + let buffer_str = std::str::from_utf8(&buffer).unwrap(); + let result = serde_json::from_str(buffer_str); + assert!(result.is_ok()); + Some(result.unwrap()) + } else { + assert!(serializer.encode(event, &mut buffer).is_err()); + None + } + } + + #[test] + fn gelf_serde_json_to_value_supported_success() { + let serializer = SerializerConfig::Gelf.build().unwrap(); + + let event_fields = btreemap! { + VERSION => "1.1", + HOST => "example.org", + SHORT_MESSAGE => "Some message", + }; + + let log_event: Event = LogEvent::from_map(event_fields, EventMetadata::default()).into(); + assert!(serializer.supports_json()); + assert!(serializer.to_json_value(log_event).is_ok()); + } + + #[test] + fn gelf_serde_json_to_value_supported_failure_to_encode() { + let serializer = SerializerConfig::Gelf.build().unwrap(); + let event_fields = btreemap! {}; + let log_event: Event = LogEvent::from_map(event_fields, EventMetadata::default()).into(); + assert!(serializer.supports_json()); + assert!(serializer.to_json_value(log_event).is_err()); + } + + #[test] + fn gelf_serializing_valid() { + let event_fields = btreemap! { + VERSION => "1.1", + HOST => "example.org", + SHORT_MESSAGE => "Some message", + FULL_MESSAGE => "Even more message", + FACILITY => "", + FILE => "/tmp/foobar", + LINE => Value::Float(ordered_float::NotNan::new(1.5).unwrap()), + LEVEL => 5, + }; + + let jsn = do_serialize(true, event_fields).unwrap(); + + assert_eq!(jsn.get(VERSION).unwrap(), "1.1"); + assert_eq!(jsn.get(HOST).unwrap(), "example.org"); + assert_eq!(jsn.get(SHORT_MESSAGE).unwrap(), "Some message"); + } + + #[test] + fn gelf_serializing_coerced() { + // no underscore + { + let event_fields = btreemap! { + VERSION => "1.1", + HOST => "example.org", + SHORT_MESSAGE => "Some message", + "noUnderScore" => 0, + }; + + let jsn = do_serialize(true, event_fields).unwrap(); + assert_eq!(jsn.get("_noUnderScore").unwrap(), 0); + } + + // "message" => SHORT_MESSAGE + { + let event_fields = btreemap! { + VERSION => "1.1", + HOST => "example.org", + log_schema().message_key().unwrap().to_string() => "Some message", + }; + + let jsn = do_serialize(true, event_fields).unwrap(); + assert_eq!(jsn.get(SHORT_MESSAGE).unwrap(), "Some message"); + } + } + + #[test] + fn gelf_serializing_timestamp() { + // floating point in case of sub second timestamp + { + let naive_dt = + NaiveDateTime::parse_from_str("1970-01-01 00:00:00.1", "%Y-%m-%d %H:%M:%S%.f"); + let dt = naive_dt.unwrap().and_utc(); + + let event_fields = btreemap! { + VERSION => "1.1", + SHORT_MESSAGE => "Some message", + HOST => "example.org", + TIMESTAMP => dt, + }; + + let jsn = do_serialize(true, event_fields).unwrap(); + assert!(jsn.get(TIMESTAMP).unwrap().is_f64()); + assert_eq!(jsn.get(TIMESTAMP).unwrap().as_f64().unwrap(), 0.1,); + } + + // integer in case of no sub second timestamp + { + let naive_dt = + NaiveDateTime::parse_from_str("1970-01-01 00:00:00.0", "%Y-%m-%d %H:%M:%S%.f"); + let dt = naive_dt.unwrap().and_utc(); + + let event_fields = btreemap! { + VERSION => "1.1", + SHORT_MESSAGE => "Some message", + HOST => "example.org", + TIMESTAMP => dt, + }; + + let jsn = do_serialize(true, event_fields).unwrap(); + assert!(jsn.get(TIMESTAMP).unwrap().is_i64()); + assert_eq!(jsn.get(TIMESTAMP).unwrap().as_i64().unwrap(), 0); + } + } + + #[test] + fn gelf_serializing_invalid_error() { + // no host + { + let event_fields = btreemap! { + VERSION => "1.1", + SHORT_MESSAGE => "Some message", + }; + do_serialize(false, event_fields); + } + // no message + { + let event_fields = btreemap! { + HOST => "example.org", + VERSION => "1.1", + }; + do_serialize(false, event_fields); + } + // expected string + { + let event_fields = btreemap! { + HOST => "example.org", + VERSION => "1.1", + SHORT_MESSAGE => 0, + }; + do_serialize(false, event_fields); + } + // expected integer + { + let event_fields = btreemap! { + HOST => "example.org", + VERSION => "1.1", + SHORT_MESSAGE => "Some message", + LEVEL => "1", + }; + do_serialize(false, event_fields); + } + // expected float + { + let event_fields = btreemap! { + HOST => "example.org", + VERSION => "1.1", + SHORT_MESSAGE => "Some message", + LINE => "1.2", + }; + do_serialize(false, event_fields); + } + // invalid field name + { + let event_fields = btreemap! { + HOST => "example.org", + VERSION => "1.1", + SHORT_MESSAGE => "Some message", + "invalid%field" => "foo", + }; + do_serialize(false, event_fields); + } + // invalid additional value type - bool + { + let event_fields = btreemap! { + HOST => "example.org", + VERSION => "1.1", + SHORT_MESSAGE => "Some message", + "_foobar" => false, + }; + do_serialize(false, event_fields); + } + // invalid additional value type - null + { + let event_fields = btreemap! { + HOST => "example.org", + VERSION => "1.1", + SHORT_MESSAGE => "Some message", + "_foobar" => serde_json::Value::Null, + }; + do_serialize(false, event_fields); + } + } +} diff --git a/lib/codecs/src/encoding/format/json.rs b/lib/codecs/src/encoding/format/json.rs new file mode 100644 index 0000000000000..9a04d32560e18 --- /dev/null +++ b/lib/codecs/src/encoding/format/json.rs @@ -0,0 +1,472 @@ +use bytes::{BufMut, BytesMut}; +use tokio_util::codec::Encoder; +use vector_config_macros::configurable_component; +use vector_core::{config::DataType, event::Event, schema}; + +use crate::MetricTagValues; + +/// Config used to build a `JsonSerializer`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct JsonSerializerConfig { + /// Controls how metric tag values are encoded. + /// + /// When set to `single`, only the last non-bare value of tags are displayed with the + /// metric. When set to `full`, all metric tags are exposed as separate assignments. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub metric_tag_values: MetricTagValues, + + /// Options for the JsonSerializer. + #[serde(default, rename = "json")] + pub options: JsonSerializerOptions, +} + +/// Options for the JsonSerializer. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct JsonSerializerOptions { + /// Whether to use pretty JSON formatting. + #[serde(default)] + pub pretty: bool, +} + +impl JsonSerializerConfig { + /// Creates a new `JsonSerializerConfig`. + pub const fn new(metric_tag_values: MetricTagValues, options: JsonSerializerOptions) -> Self { + Self { + metric_tag_values, + options, + } + } + + /// Build the `JsonSerializer` from this configuration. + pub fn build(&self) -> JsonSerializer { + JsonSerializer::new(self.metric_tag_values, self.options.clone()) + } + + /// The data type of events that are accepted by `JsonSerializer`. + pub fn input_type(&self) -> DataType { + DataType::all_bits() + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + // While technically we support `Value` variants that can't be losslessly serialized to + // JSON, we don't want to enforce that limitation to users yet. + schema::Requirement::empty() + } +} + +/// Serializer that converts an `Event` to bytes using the JSON format. +#[derive(Debug, Clone)] +pub struct JsonSerializer { + metric_tag_values: MetricTagValues, + options: JsonSerializerOptions, +} + +impl JsonSerializer { + /// Creates a new `JsonSerializer`. + pub const fn new(metric_tag_values: MetricTagValues, options: JsonSerializerOptions) -> Self { + Self { + metric_tag_values, + options, + } + } + + /// Encode event and represent it as JSON value. + pub fn to_json_value(&self, event: Event) -> Result { + match event { + Event::Log(log) => serde_json::to_value(&log), + Event::Metric(metric) => serde_json::to_value(&metric), + Event::Trace(trace) => serde_json::to_value(&trace), + } + .map_err(|e| e.to_string().into()) + } +} + +impl Encoder for JsonSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let writer = buffer.writer(); + if self.options.pretty { + match event { + Event::Log(log) => serde_json::to_writer_pretty(writer, &log), + Event::Metric(mut metric) => { + if self.metric_tag_values == MetricTagValues::Single { + metric.reduce_tags_to_single(); + } + serde_json::to_writer_pretty(writer, &metric) + } + Event::Trace(trace) => serde_json::to_writer_pretty(writer, &trace), + } + } else { + match event { + Event::Log(log) => serde_json::to_writer(writer, &log), + Event::Metric(mut metric) => { + if self.metric_tag_values == MetricTagValues::Single { + metric.reduce_tags_to_single(); + } + serde_json::to_writer(writer, &metric) + } + Event::Trace(trace) => serde_json::to_writer(writer, &trace), + } + } + .map_err(Into::into) + } +} + +#[cfg(test)] +mod tests { + use bytes::{Bytes, BytesMut}; + use chrono::{TimeZone, Timelike, Utc}; + use vector_core::event::{LogEvent, Metric, MetricKind, MetricValue, StatisticKind, Value}; + use vector_core::metric_tags; + use vrl::btreemap; + + use super::*; + + #[test] + fn serialize_json_log() { + let event = Event::Log(LogEvent::from(btreemap! { + "x" => Value::from("23"), + "z" => Value::from(25), + "a" => Value::from("0"), + })); + let bytes = serialize(JsonSerializerConfig::default(), event); + + assert_eq!(bytes, r#"{"a":"0","x":"23","z":25}"#); + } + + #[test] + fn serialize_json_metric_counter() { + let event = Event::Metric( + Metric::new( + "foos", + MetricKind::Incremental, + MetricValue::Counter { value: 100.0 }, + ) + .with_namespace(Some("vector")) + .with_tags(Some(metric_tags!( + "key2" => "value2", + "key1" => "value1", + "Key3" => "Value3", + ))) + .with_timestamp(Some( + Utc.with_ymd_and_hms(2018, 11, 14, 8, 9, 10) + .single() + .and_then(|t| t.with_nanosecond(11)) + .expect("invalid timestamp"), + )), + ); + + let bytes = serialize(JsonSerializerConfig::default(), event); + + assert_eq!( + bytes, + r#"{"name":"foos","namespace":"vector","tags":{"Key3":"Value3","key1":"value1","key2":"value2"},"timestamp":"2018-11-14T08:09:10.000000011Z","kind":"incremental","counter":{"value":100.0}}"# + ); + } + + #[test] + fn serialize_json_metric_set() { + let event = Event::Metric(Metric::new( + "users", + MetricKind::Incremental, + MetricValue::Set { + values: vec!["bob".into()].into_iter().collect(), + }, + )); + + let bytes = serialize(JsonSerializerConfig::default(), event); + + assert_eq!( + bytes, + r#"{"name":"users","kind":"incremental","set":{"values":["bob"]}}"# + ); + } + + #[test] + fn serialize_json_metric_histogram_without_timestamp() { + let event = Event::Metric(Metric::new( + "glork", + MetricKind::Incremental, + MetricValue::Distribution { + samples: vector_core::samples![10.0 => 1], + statistic: StatisticKind::Histogram, + }, + )); + + let bytes = serialize(JsonSerializerConfig::default(), event); + + assert_eq!( + bytes, + r#"{"name":"glork","kind":"incremental","distribution":{"samples":[{"value":10.0,"rate":1}],"statistic":"histogram"}}"# + ); + } + + #[test] + fn serialize_equals_to_json_value() { + let event = Event::Log(LogEvent::from(btreemap! { + "foo" => Value::from("bar") + })); + let mut serializer = JsonSerializerConfig::default().build(); + let mut bytes = BytesMut::new(); + + serializer.encode(event.clone(), &mut bytes).unwrap(); + + let json = serializer.to_json_value(event).unwrap(); + + assert_eq!(bytes.freeze(), serde_json::to_string(&json).unwrap()); + } + + #[test] + fn serialize_metric_tags_full() { + let bytes = serialize( + JsonSerializerConfig { + metric_tag_values: MetricTagValues::Full, + options: JsonSerializerOptions::default(), + }, + metric2(), + ); + + assert_eq!( + bytes, + r#"{"name":"counter","tags":{"a":["first",null,"second"]},"kind":"incremental","counter":{"value":1.0}}"# + ); + } + + #[test] + fn serialize_metric_tags_single() { + let bytes = serialize( + JsonSerializerConfig { + metric_tag_values: MetricTagValues::Single, + options: JsonSerializerOptions::default(), + }, + metric2(), + ); + + assert_eq!( + bytes, + r#"{"name":"counter","tags":{"a":"second"},"kind":"incremental","counter":{"value":1.0}}"# + ); + } + + fn metric2() -> Event { + Event::Metric( + Metric::new( + "counter", + MetricKind::Incremental, + MetricValue::Counter { value: 1.0 }, + ) + .with_tags(Some(metric_tags! ( + "a" => "first", + "a" => None, + "a" => "second", + ))), + ) + } + + fn serialize(config: JsonSerializerConfig, input: Event) -> Bytes { + let mut buffer = BytesMut::new(); + config.build().encode(input, &mut buffer).unwrap(); + buffer.freeze() + } + + mod pretty_json { + use super::*; + use bytes::{Bytes, BytesMut}; + use chrono::{TimeZone, Timelike, Utc}; + use vector_core::event::{LogEvent, Metric, MetricKind, MetricValue, StatisticKind, Value}; + use vector_core::metric_tags; + use vrl::btreemap; + + fn get_pretty_json_config() -> JsonSerializerConfig { + JsonSerializerConfig { + options: JsonSerializerOptions { pretty: true }, + ..Default::default() + } + } + + #[test] + fn serialize_json_log() { + let event = Event::Log(LogEvent::from( + btreemap! {"x" => Value::from("23"),"z" => Value::from(25),"a" => Value::from("0"),}, + )); + let bytes = serialize(get_pretty_json_config(), event); + assert_eq!( + bytes, + r#"{ + "a": "0", + "x": "23", + "z": 25 +}"# + ); + } + #[test] + fn serialize_json_metric_counter() { + let event = Event::Metric( + Metric::new( + "foos", + MetricKind::Incremental, + MetricValue::Counter { value: 100.0 }, + ) + .with_namespace(Some("vector")) + .with_tags(Some( + metric_tags!("key2" => "value2","key1" => "value1","Key3" => "Value3",), + )) + .with_timestamp(Some( + Utc.with_ymd_and_hms(2018, 11, 14, 8, 9, 10) + .single() + .and_then(|t| t.with_nanosecond(11)) + .expect("invalid timestamp"), + )), + ); + let bytes = serialize(get_pretty_json_config(), event); + assert_eq!( + bytes, + r#"{ + "name": "foos", + "namespace": "vector", + "tags": { + "Key3": "Value3", + "key1": "value1", + "key2": "value2" + }, + "timestamp": "2018-11-14T08:09:10.000000011Z", + "kind": "incremental", + "counter": { + "value": 100.0 + } +}"# + ); + } + #[test] + fn serialize_json_metric_set() { + let event = Event::Metric(Metric::new( + "users", + MetricKind::Incremental, + MetricValue::Set { + values: vec!["bob".into()].into_iter().collect(), + }, + )); + let bytes = serialize(get_pretty_json_config(), event); + assert_eq!( + bytes, + r#"{ + "name": "users", + "kind": "incremental", + "set": { + "values": [ + "bob" + ] + } +}"# + ); + } + #[test] + fn serialize_json_metric_histogram_without_timestamp() { + let event = Event::Metric(Metric::new( + "glork", + MetricKind::Incremental, + MetricValue::Distribution { + samples: vector_core::samples![10.0 => 1], + statistic: StatisticKind::Histogram, + }, + )); + let bytes = serialize(get_pretty_json_config(), event); + assert_eq!( + bytes, + r#"{ + "name": "glork", + "kind": "incremental", + "distribution": { + "samples": [ + { + "value": 10.0, + "rate": 1 + } + ], + "statistic": "histogram" + } +}"# + ); + } + #[test] + fn serialize_equals_to_json_value() { + let event = Event::Log(LogEvent::from(btreemap! {"foo" => Value::from("bar")})); + let mut serializer = get_pretty_json_config().build(); + let mut bytes = BytesMut::new(); + serializer.encode(event.clone(), &mut bytes).unwrap(); + let json = serializer.to_json_value(event).unwrap(); + assert_eq!(bytes.freeze(), serde_json::to_string_pretty(&json).unwrap()); + } + #[test] + fn serialize_metric_tags_full() { + let bytes = serialize( + JsonSerializerConfig { + metric_tag_values: MetricTagValues::Full, + options: JsonSerializerOptions { pretty: true }, + }, + metric2(), + ); + assert_eq!( + bytes, + r#"{ + "name": "counter", + "tags": { + "a": [ + "first", + null, + "second" + ] + }, + "kind": "incremental", + "counter": { + "value": 1.0 + } +}"# + ); + } + #[test] + fn serialize_metric_tags_single() { + let bytes = serialize( + JsonSerializerConfig { + metric_tag_values: MetricTagValues::Single, + options: JsonSerializerOptions { pretty: true }, + }, + metric2(), + ); + assert_eq!( + bytes, + r#"{ + "name": "counter", + "tags": { + "a": "second" + }, + "kind": "incremental", + "counter": { + "value": 1.0 + } +}"# + ); + } + fn metric2() -> Event { + Event::Metric( + Metric::new( + "counter", + MetricKind::Incremental, + MetricValue::Counter { value: 1.0 }, + ) + .with_tags(Some( + metric_tags! ("a" => "first","a" => None,"a" => "second",), + )), + ) + } + fn serialize(config: JsonSerializerConfig, input: Event) -> Bytes { + let mut buffer = BytesMut::new(); + config.build().encode(input, &mut buffer).unwrap(); + buffer.freeze() + } + } +} diff --git a/lib/codecs/src/encoding/format/logfmt.rs b/lib/codecs/src/encoding/format/logfmt.rs new file mode 100644 index 0000000000000..716856c00894d --- /dev/null +++ b/lib/codecs/src/encoding/format/logfmt.rs @@ -0,0 +1,70 @@ +use bytes::BytesMut; +use serde::{Deserialize, Serialize}; +use tokio_util::codec::Encoder; +use vector_common::encode_logfmt; +use vector_core::{config::DataType, event::Event, schema}; + +/// Config used to build a `LogfmtSerializer`. +#[derive(Debug, Clone, Default, Deserialize, Serialize)] +pub struct LogfmtSerializerConfig; + +impl LogfmtSerializerConfig { + /// Creates a new `LogfmtSerializerConfig`. + pub const fn new() -> Self { + Self + } + + /// Build the `LogfmtSerializer` from this configuration. + pub const fn build(&self) -> LogfmtSerializer { + LogfmtSerializer + } + + /// The data type of events that are accepted by `LogfmtSerializer`. + pub fn input_type(&self) -> DataType { + DataType::Log + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + // While technically we support `Value` variants that can't be losslessly serialized to + // logfmt, we don't want to enforce that limitation to users yet. + schema::Requirement::empty() + } +} + +/// Serializer that converts an `Event` to bytes using the logfmt format. +#[derive(Debug, Clone)] +pub struct LogfmtSerializer; + +impl Encoder for LogfmtSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let log = event.as_log(); + let string = encode_logfmt::encode_value(log.value())?; + buffer.extend_from_slice(string.as_bytes()); + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use bytes::BytesMut; + use vector_core::event::{LogEvent, Value}; + use vrl::btreemap; + + #[test] + fn serialize_logfmt() { + let event = Event::Log(LogEvent::from(btreemap! { + "foo" => Value::from("bar") + })); + let mut serializer = LogfmtSerializer; + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + + assert_eq!(bytes.freeze(), "foo=bar"); + } +} diff --git a/lib/codecs/src/encoding/format/mod.rs b/lib/codecs/src/encoding/format/mod.rs new file mode 100644 index 0000000000000..225cdb7f5bf33 --- /dev/null +++ b/lib/codecs/src/encoding/format/mod.rs @@ -0,0 +1,52 @@ +//! A collection of formats that can be used to convert from structured events +//! to byte frames. + +#![deny(missing_docs)] + +mod avro; +mod cef; +mod common; +mod csv; +mod gelf; +mod json; +mod logfmt; +mod native; +mod native_json; +mod protobuf; +mod raw_message; +mod text; + +use std::fmt::Debug; + +pub use self::csv::{CsvSerializer, CsvSerializerConfig}; +pub use avro::{AvroSerializer, AvroSerializerConfig, AvroSerializerOptions}; +pub use cef::{CefSerializer, CefSerializerConfig}; +use dyn_clone::DynClone; +pub use gelf::{GelfSerializer, GelfSerializerConfig}; +pub use json::{JsonSerializer, JsonSerializerConfig, JsonSerializerOptions}; +pub use logfmt::{LogfmtSerializer, LogfmtSerializerConfig}; +pub use native::{NativeSerializer, NativeSerializerConfig}; +pub use native_json::{NativeJsonSerializer, NativeJsonSerializerConfig}; +pub use protobuf::{ProtobufSerializer, ProtobufSerializerConfig, ProtobufSerializerOptions}; +pub use raw_message::{RawMessageSerializer, RawMessageSerializerConfig}; +pub use text::{TextSerializer, TextSerializerConfig}; +use vector_core::event::Event; + +/// Serialize a structured event into a byte frame. +pub trait Serializer: + tokio_util::codec::Encoder + DynClone + Debug + Send + Sync +{ +} + +/// Default implementation for `Serializer`s that implement +/// `tokio_util::codec::Encoder`. +impl Serializer for Encoder where + Encoder: tokio_util::codec::Encoder + + Clone + + Debug + + Send + + Sync +{ +} + +dyn_clone::clone_trait_object!(Serializer); diff --git a/lib/codecs/src/encoding/format/native.rs b/lib/codecs/src/encoding/format/native.rs new file mode 100644 index 0000000000000..0998f1a4d6255 --- /dev/null +++ b/lib/codecs/src/encoding/format/native.rs @@ -0,0 +1,45 @@ +use bytes::BytesMut; +use prost::Message; +use serde::{Deserialize, Serialize}; +use tokio_util::codec::Encoder; +use vector_core::{ + config::DataType, + event::{proto, Event, EventArray}, + schema, +}; + +/// Config used to build a `NativeSerializer`. +#[derive(Debug, Clone, Default, Deserialize, Serialize)] +pub struct NativeSerializerConfig; + +impl NativeSerializerConfig { + /// Build the `NativeSerializer` from this configuration. + pub const fn build(&self) -> NativeSerializer { + NativeSerializer + } + + /// The data type of events that are accepted by `NativeSerializer`. + pub fn input_type(&self) -> DataType { + DataType::all_bits() + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + schema::Requirement::empty() + } +} + +/// Serializer that converts an `Event` to bytes using the Vector native protobuf format. +#[derive(Debug, Clone)] +pub struct NativeSerializer; + +impl Encoder for NativeSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let array = EventArray::from(event); + let proto = proto::EventArray::from(array); + proto.encode(buffer)?; + Ok(()) + } +} diff --git a/lib/codecs/src/encoding/format/native_json.rs b/lib/codecs/src/encoding/format/native_json.rs new file mode 100644 index 0000000000000..60d43725d8017 --- /dev/null +++ b/lib/codecs/src/encoding/format/native_json.rs @@ -0,0 +1,106 @@ +use bytes::{BufMut, BytesMut}; +use serde::{Deserialize, Serialize}; +use tokio_util::codec::Encoder; +use vector_core::{config::DataType, event::Event, schema}; + +/// Config used to build a `NativeJsonSerializer`. +#[derive(Debug, Clone, Default, Deserialize, Serialize)] +pub struct NativeJsonSerializerConfig; + +impl NativeJsonSerializerConfig { + /// Build the `NativeJsonSerializer` from this configuration. + pub const fn build(&self) -> NativeJsonSerializer { + NativeJsonSerializer + } + + /// The data type of events that are accepted by `NativeJsonSerializer`. + pub fn input_type(&self) -> DataType { + DataType::all_bits() + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + schema::Requirement::empty() + } +} + +/// Serializer that converts an `Event` to bytes using the JSON format. +#[derive(Debug, Clone)] +pub struct NativeJsonSerializer; + +impl NativeJsonSerializer { + /// Encode event and represent it as native JSON value. + pub fn to_json_value(&self, event: Event) -> Result { + serde_json::to_value(&event).map_err(|e| e.to_string().into()) + } +} + +impl Encoder for NativeJsonSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let writer = buffer.writer(); + serde_json::to_writer(writer, &event).map_err(Into::into) + } +} + +#[cfg(test)] +mod tests { + use bytes::BytesMut; + use vector_core::buckets; + use vector_core::event::{LogEvent, Metric, MetricKind, MetricValue, Value}; + use vrl::btreemap; + + use super::*; + + #[test] + fn serialize_json() { + let event = Event::Log(LogEvent::from(btreemap! { + "foo" => Value::from("bar") + })); + let mut serializer = NativeJsonSerializer; + let mut bytes = BytesMut::new(); + + serializer.encode(event, &mut bytes).unwrap(); + + assert_eq!(bytes.freeze(), r#"{"log":{"foo":"bar"}}"#); + } + + #[test] + fn serialize_equals_to_json_value() { + let event = Event::Log(LogEvent::from(btreemap! { + "foo" => Value::from("bar") + })); + let mut serializer = NativeJsonSerializer; + let mut bytes = BytesMut::new(); + + serializer.encode(event.clone(), &mut bytes).unwrap(); + + let json = serializer.to_json_value(event).unwrap(); + + assert_eq!(bytes.freeze(), serde_json::to_string(&json).unwrap()); + } + + #[test] + fn serialize_aggregated_histogram() { + let histogram_event = Event::from(Metric::new( + "histogram", + MetricKind::Absolute, + MetricValue::AggregatedHistogram { + count: 1, + sum: 1.0, + buckets: buckets!(f64::NEG_INFINITY => 0 ,2.0 => 1, f64::INFINITY => 0), + }, + )); + + let mut serializer = NativeJsonSerializer; + let mut bytes = BytesMut::new(); + serializer + .encode(histogram_event.clone(), &mut bytes) + .unwrap(); + assert_eq!( + bytes.freeze(), + serde_json::to_string(&histogram_event).unwrap() + ); + } +} diff --git a/lib/codecs/src/encoding/format/protobuf.rs b/lib/codecs/src/encoding/format/protobuf.rs new file mode 100644 index 0000000000000..c014a529455e1 --- /dev/null +++ b/lib/codecs/src/encoding/format/protobuf.rs @@ -0,0 +1,96 @@ +use crate::encoding::BuildError; +use bytes::BytesMut; +use prost_reflect::{prost::Message as _, MessageDescriptor}; +use std::path::PathBuf; +use tokio_util::codec::Encoder; +use vector_config_macros::configurable_component; +use vector_core::{ + config::DataType, + event::{Event, Value}, + schema, +}; + +/// Config used to build a `ProtobufSerializer`. +#[configurable_component] +#[derive(Debug, Clone)] +pub struct ProtobufSerializerConfig { + /// Options for the Protobuf serializer. + pub protobuf: ProtobufSerializerOptions, +} + +impl ProtobufSerializerConfig { + /// Build the `ProtobufSerializer` from this configuration. + pub fn build(&self) -> Result { + let message_descriptor = vrl::protobuf::get_message_descriptor( + &self.protobuf.desc_file, + &self.protobuf.message_type, + )?; + Ok(ProtobufSerializer { message_descriptor }) + } + + /// The data type of events that are accepted by `ProtobufSerializer`. + pub fn input_type(&self) -> DataType { + DataType::Log + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + // While technically we support `Value` variants that can't be losslessly serialized to + // Protobuf, we don't want to enforce that limitation to users yet. + schema::Requirement::empty() + } +} + +/// Protobuf serializer options. +#[configurable_component] +#[derive(Debug, Clone)] +pub struct ProtobufSerializerOptions { + /// The path to the protobuf descriptor set file. + /// + /// This file is the output of `protoc -I -o ` + /// + /// You can read more [here](https://buf.build/docs/reference/images/#how-buf-images-work). + #[configurable(metadata(docs::examples = "/etc/vector/protobuf_descriptor_set.desc"))] + pub desc_file: PathBuf, + + /// The name of the message type to use for serializing. + #[configurable(metadata(docs::examples = "package.Message"))] + pub message_type: String, +} + +/// Serializer that converts an `Event` to bytes using the Protobuf format. +#[derive(Debug, Clone)] +pub struct ProtobufSerializer { + /// The protobuf message definition to use for serialization. + message_descriptor: MessageDescriptor, +} + +impl ProtobufSerializer { + /// Creates a new `ProtobufSerializer`. + pub fn new(message_descriptor: MessageDescriptor) -> Self { + Self { message_descriptor } + } + + /// Get a description of the message type used in serialization. + pub fn descriptor_proto(&self) -> &prost_reflect::prost_types::DescriptorProto { + self.message_descriptor.descriptor_proto() + } +} + +impl Encoder for ProtobufSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let message = match event { + Event::Log(log) => { + vrl::protobuf::encode_message(&self.message_descriptor, log.into_parts().0) + } + Event::Metric(_) => unimplemented!(), + Event::Trace(trace) => vrl::protobuf::encode_message( + &self.message_descriptor, + Value::Object(trace.into_parts().0), + ), + }?; + message.encode(buffer).map_err(Into::into) + } +} diff --git a/lib/codecs/src/encoding/format/raw_message.rs b/lib/codecs/src/encoding/format/raw_message.rs new file mode 100644 index 0000000000000..49e1517e74e8d --- /dev/null +++ b/lib/codecs/src/encoding/format/raw_message.rs @@ -0,0 +1,66 @@ +use crate::encoding::format::common::get_serializer_schema_requirement; +use bytes::{BufMut, BytesMut}; +use serde::{Deserialize, Serialize}; +use tokio_util::codec::Encoder; +use vector_core::{config::DataType, event::Event, schema}; + +/// Config used to build a `RawMessageSerializer`. +#[derive(Debug, Clone, Default, Deserialize, Serialize)] +pub struct RawMessageSerializerConfig; + +impl RawMessageSerializerConfig { + /// Creates a new `RawMessageSerializerConfig`. + pub const fn new() -> Self { + Self + } + + /// Build the `RawMessageSerializer` from this configuration. + pub const fn build(&self) -> RawMessageSerializer { + RawMessageSerializer + } + + /// The data type of events that are accepted by `RawMessageSerializer`. + pub fn input_type(&self) -> DataType { + DataType::Log + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + get_serializer_schema_requirement() + } +} + +/// Serializer that converts an `Event` to bytes by extracting the message key. +#[derive(Debug, Clone)] +pub struct RawMessageSerializer; + +impl Encoder for RawMessageSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + let log = event.as_log(); + if let Some(bytes) = log.get_message().map(|value| value.coerce_to_bytes()) { + buffer.put(bytes); + } + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use bytes::{Bytes, BytesMut}; + use vector_core::event::LogEvent; + + use super::*; + + #[test] + fn serialize_bytes() { + let input = Event::from(LogEvent::from_str_legacy("foo")); + let mut serializer = RawMessageSerializer; + + let mut buffer = BytesMut::new(); + serializer.encode(input, &mut buffer).unwrap(); + + assert_eq!(buffer.freeze(), Bytes::from("foo")); + } +} diff --git a/lib/codecs/src/encoding/format/text.rs b/lib/codecs/src/encoding/format/text.rs new file mode 100644 index 0000000000000..1d08e27e21a77 --- /dev/null +++ b/lib/codecs/src/encoding/format/text.rs @@ -0,0 +1,161 @@ +use crate::encoding::format::common::get_serializer_schema_requirement; +use bytes::{BufMut, BytesMut}; +use tokio_util::codec::Encoder; +use vector_config_macros::configurable_component; +use vector_core::{config::DataType, event::Event, schema}; + +use crate::MetricTagValues; + +/// Config used to build a `TextSerializer`. +#[configurable_component] +#[derive(Debug, Clone, Default)] +pub struct TextSerializerConfig { + /// Controls how metric tag values are encoded. + /// + /// When set to `single`, only the last non-bare value of tags are displayed with the + /// metric. When set to `full`, all metric tags are exposed as separate assignments. + #[serde(default, skip_serializing_if = "vector_core::serde::is_default")] + pub metric_tag_values: MetricTagValues, +} + +impl TextSerializerConfig { + /// Creates a new `TextSerializerConfig`. + pub const fn new(metric_tag_values: MetricTagValues) -> Self { + Self { metric_tag_values } + } + + /// Build the `TextSerializer` from this configuration. + pub const fn build(&self) -> TextSerializer { + TextSerializer::new(self.metric_tag_values) + } + + /// The data type of events that are accepted by `TextSerializer`. + pub fn input_type(&self) -> DataType { + DataType::Log | DataType::Metric + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + get_serializer_schema_requirement() + } +} + +/// Serializer that converts a log to bytes by extracting the message key, or converts a metric +/// to bytes by calling its `Display` implementation. +/// +/// This serializer exists to emulate the behavior of the `StandardEncoding::Text` for backwards +/// compatibility, until it is phased out completely. +#[derive(Debug, Clone)] +pub struct TextSerializer { + metric_tag_values: MetricTagValues, +} + +impl TextSerializer { + /// Creates a new `TextSerializer`. + pub const fn new(metric_tag_values: MetricTagValues) -> Self { + Self { metric_tag_values } + } +} + +impl Encoder for TextSerializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + match event { + Event::Log(log) => { + if let Some(bytes) = log.get_message().map(|value| value.coerce_to_bytes()) { + buffer.put(bytes); + } + } + Event::Metric(mut metric) => { + if self.metric_tag_values == MetricTagValues::Single { + metric.reduce_tags_to_single(); + } + let bytes = metric.to_string(); + buffer.put(bytes.as_ref()); + } + Event::Trace(_) => {} + }; + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use bytes::{Bytes, BytesMut}; + use vector_core::event::{LogEvent, Metric, MetricKind, MetricValue}; + use vector_core::metric_tags; + + use super::*; + + #[test] + fn serialize_log() { + let buffer = serialize( + TextSerializerConfig::default(), + Event::from(LogEvent::from_str_legacy("foo")), + ); + assert_eq!(buffer, Bytes::from("foo")); + } + + #[test] + fn serialize_metric() { + let buffer = serialize( + TextSerializerConfig::default(), + Event::Metric(Metric::new( + "users", + MetricKind::Incremental, + MetricValue::Set { + values: vec!["bob".into()].into_iter().collect(), + }, + )), + ); + assert_eq!(buffer, Bytes::from("users{} + bob")); + } + + #[test] + fn serialize_metric_tags_full() { + let buffer = serialize( + TextSerializerConfig { + metric_tag_values: MetricTagValues::Full, + }, + metric2(), + ); + assert_eq!( + buffer, + Bytes::from(r#"counter{a="first",a,a="second"} + 1"#) + ); + } + + #[test] + fn serialize_metric_tags_single() { + let buffer = serialize( + TextSerializerConfig { + metric_tag_values: MetricTagValues::Single, + }, + metric2(), + ); + assert_eq!(buffer, Bytes::from(r#"counter{a="second"} + 1"#)); + } + + fn metric2() -> Event { + Event::Metric( + Metric::new( + "counter", + MetricKind::Incremental, + MetricValue::Counter { value: 1.0 }, + ) + .with_tags(Some(metric_tags! ( + "a" => "first", + "a" => None, + "a" => "second", + ))), + ) + } + + fn serialize(config: TextSerializerConfig, input: Event) -> Bytes { + let mut buffer = BytesMut::new(); + config.build().encode(input, &mut buffer).unwrap(); + buffer.freeze() + } +} diff --git a/lib/codecs/src/encoding/framing/bytes.rs b/lib/codecs/src/encoding/framing/bytes.rs new file mode 100644 index 0000000000000..d2d22b39d6f5a --- /dev/null +++ b/lib/codecs/src/encoding/framing/bytes.rs @@ -0,0 +1,61 @@ +use bytes::BytesMut; +use serde::{Deserialize, Serialize}; +use tokio_util::codec::Encoder; + +use super::BoxedFramingError; + +/// Config used to build a `BytesEncoder`. +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct BytesEncoderConfig; + +impl BytesEncoderConfig { + /// Creates a `BytesEncoderConfig`. + pub const fn new() -> Self { + Self + } + + /// Build the `BytesEncoder` from this configuration. + pub fn build(&self) -> BytesEncoder { + BytesEncoder + } +} + +/// An encoder for handling of plain bytes. +/// +/// This encoder does nothing, really. It mainly exists as a symmetric +/// counterpart to `BytesDeserializer`. `BytesEncoder` can be used to explicitly +/// disable framing for formats that encode intrinsic length information - since +/// a sink might set a framing configuration by default depending on the +/// streaming or message based nature of the sink. +#[derive(Debug, Clone)] +pub struct BytesEncoder; + +impl Default for BytesEncoderConfig { + /// Creates a `BytesEncoder`. + fn default() -> Self { + Self + } +} + +impl Encoder<()> for BytesEncoder { + type Error = BoxedFramingError; + + fn encode(&mut self, _: (), _: &mut BytesMut) -> Result<(), BoxedFramingError> { + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn encode() { + let mut codec = BytesEncoder; + + let mut buffer = BytesMut::from("abc"); + codec.encode((), &mut buffer).unwrap(); + + assert_eq!(b"abc", &buffer[..]); + } +} diff --git a/lib/codecs/src/encoding/framing/character_delimited.rs b/lib/codecs/src/encoding/framing/character_delimited.rs new file mode 100644 index 0000000000000..257a5b4319d64 --- /dev/null +++ b/lib/codecs/src/encoding/framing/character_delimited.rs @@ -0,0 +1,75 @@ +use bytes::{BufMut, BytesMut}; +use tokio_util::codec::Encoder; +use vector_config::configurable_component; + +use super::BoxedFramingError; + +/// Config used to build a `CharacterDelimitedEncoder`. +#[configurable_component] +#[derive(Debug, Clone, Eq, PartialEq)] +pub struct CharacterDelimitedEncoderConfig { + /// Options for the character delimited encoder. + pub character_delimited: CharacterDelimitedEncoderOptions, +} + +impl CharacterDelimitedEncoderConfig { + /// Creates a `CharacterDelimitedEncoderConfig` with the specified delimiter. + pub const fn new(delimiter: u8) -> Self { + Self { + character_delimited: CharacterDelimitedEncoderOptions { delimiter }, + } + } + + /// Build the `CharacterDelimitedEncoder` from this configuration. + pub const fn build(&self) -> CharacterDelimitedEncoder { + CharacterDelimitedEncoder::new(self.character_delimited.delimiter) + } +} + +/// Configuration for character-delimited framing. +#[configurable_component] +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct CharacterDelimitedEncoderOptions { + /// The ASCII (7-bit) character that delimits byte sequences. + #[configurable(metadata(docs::type_override = "ascii_char"))] + #[serde(with = "vector_core::serde::ascii_char")] + pub delimiter: u8, +} + +/// An encoder for handling bytes that are delimited by (a) chosen character(s). +#[derive(Debug, Clone)] +pub struct CharacterDelimitedEncoder { + /// The character that delimits byte sequences. + pub delimiter: u8, +} + +impl CharacterDelimitedEncoder { + /// Creates a `CharacterDelimitedEncoder` with the specified delimiter. + pub const fn new(delimiter: u8) -> Self { + Self { delimiter } + } +} + +impl Encoder<()> for CharacterDelimitedEncoder { + type Error = BoxedFramingError; + + fn encode(&mut self, _: (), buffer: &mut BytesMut) -> Result<(), BoxedFramingError> { + buffer.put_u8(self.delimiter); + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn encode() { + let mut codec = CharacterDelimitedEncoder::new(b'\n'); + + let mut buffer = BytesMut::from("abc"); + codec.encode((), &mut buffer).unwrap(); + + assert_eq!(b"abc\n", &buffer[..]); + } +} diff --git a/lib/codecs/src/encoding/framing/length_delimited.rs b/lib/codecs/src/encoding/framing/length_delimited.rs new file mode 100644 index 0000000000000..1e450073b9496 --- /dev/null +++ b/lib/codecs/src/encoding/framing/length_delimited.rs @@ -0,0 +1,80 @@ +use bytes::BytesMut; +use derivative::Derivative; +use tokio_util::codec::{Encoder, LengthDelimitedCodec}; +use vector_config::configurable_component; + +use crate::common::length_delimited::LengthDelimitedCoderOptions; + +use super::BoxedFramingError; + +/// Config used to build a `LengthDelimitedEncoder`. +#[configurable_component] +#[derive(Debug, Clone, Derivative, Eq, PartialEq)] +#[derivative(Default)] +pub struct LengthDelimitedEncoderConfig { + /// Options for the length delimited decoder. + #[serde(skip_serializing_if = "vector_core::serde::is_default")] + pub length_delimited: LengthDelimitedCoderOptions, +} + +impl LengthDelimitedEncoderConfig { + /// Build the `LengthDelimitedEncoder` from this configuration. + pub fn build(&self) -> LengthDelimitedEncoder { + LengthDelimitedEncoder::new(&self.length_delimited) + } +} + +/// An encoder for handling bytes that are delimited by a length header. +#[derive(Debug, Clone)] +pub struct LengthDelimitedEncoder(LengthDelimitedCodec); + +impl LengthDelimitedEncoder { + /// Creates a new `LengthDelimitedEncoder`. + pub fn new(config: &LengthDelimitedCoderOptions) -> Self { + Self(config.build_codec()) + } +} + +impl Default for LengthDelimitedEncoder { + fn default() -> Self { + Self(LengthDelimitedCodec::new()) + } +} + +impl Encoder<()> for LengthDelimitedEncoder { + type Error = BoxedFramingError; + + fn encode(&mut self, _: (), buffer: &mut BytesMut) -> Result<(), BoxedFramingError> { + let bytes = buffer.split().freeze(); + self.0.encode(bytes, buffer)?; + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn encode() { + let mut codec = LengthDelimitedEncoder::default(); + + let mut buffer = BytesMut::from("abc"); + codec.encode((), &mut buffer).unwrap(); + + assert_eq!(&buffer[..], b"\0\0\0\x03abc"); + } + + #[test] + fn encode_2byte_length() { + let mut codec = LengthDelimitedEncoder::new(&LengthDelimitedCoderOptions { + length_field_length: 2, + ..Default::default() + }); + + let mut buffer = BytesMut::from("abc"); + codec.encode((), &mut buffer).unwrap(); + + assert_eq!(&buffer[..], b"\0\x03abc"); + } +} diff --git a/lib/codecs/src/encoding/framing/mod.rs b/lib/codecs/src/encoding/framing/mod.rs new file mode 100644 index 0000000000000..103b0aaf1851d --- /dev/null +++ b/lib/codecs/src/encoding/framing/mod.rs @@ -0,0 +1,58 @@ +//! A collection of framing methods that can be used to convert from byte chunks +//! to byte frames with defined boundaries. + +#![deny(missing_docs)] + +mod bytes; +mod character_delimited; +mod length_delimited; +mod newline_delimited; + +use std::fmt::Debug; + +pub use character_delimited::{ + CharacterDelimitedEncoder, CharacterDelimitedEncoderConfig, CharacterDelimitedEncoderOptions, +}; +use dyn_clone::DynClone; +pub use length_delimited::{LengthDelimitedEncoder, LengthDelimitedEncoderConfig}; +pub use newline_delimited::{NewlineDelimitedEncoder, NewlineDelimitedEncoderConfig}; +use tokio_util::codec::LinesCodecError; + +pub use self::bytes::{BytesEncoder, BytesEncoderConfig}; + +/// An error that occurred while framing bytes. +pub trait FramingError: std::error::Error + Send + Sync {} + +impl std::error::Error for BoxedFramingError {} + +impl FramingError for std::io::Error {} + +impl FramingError for LinesCodecError {} + +impl From for BoxedFramingError { + fn from(error: std::io::Error) -> Self { + Box::new(error) + } +} + +/// A `Box` containing a `FramingError`. +pub type BoxedFramingError = Box; + +/// Wrap bytes into a frame. +pub trait Framer: + tokio_util::codec::Encoder<(), Error = BoxedFramingError> + DynClone + Debug + Send + Sync +{ +} + +/// Default implementation for `Framer`s that implement +/// `tokio_util::codec::Encoder`. +impl Framer for Encoder where + Encoder: + tokio_util::codec::Encoder<(), Error = BoxedFramingError> + Clone + Debug + Send + Sync +{ +} + +dyn_clone::clone_trait_object!(Framer); + +/// A `Box` containing a `Framer`. +pub type BoxedFramer = Box; diff --git a/lib/codecs/src/encoding/framing/newline_delimited.rs b/lib/codecs/src/encoding/framing/newline_delimited.rs new file mode 100644 index 0000000000000..3ad9edb5cd429 --- /dev/null +++ b/lib/codecs/src/encoding/framing/newline_delimited.rs @@ -0,0 +1,54 @@ +use bytes::BytesMut; +use serde::{Deserialize, Serialize}; +use tokio_util::codec::Encoder; + +use super::{BoxedFramingError, CharacterDelimitedEncoder}; + +/// Config used to build a `NewlineDelimitedEncoder`. +#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq, Eq)] +pub struct NewlineDelimitedEncoderConfig; + +impl NewlineDelimitedEncoderConfig { + /// Creates a new `NewlineDelimitedEncoderConfig`. + pub fn new() -> Self { + Default::default() + } + + /// Build the `NewlineDelimitedEncoder` from this configuration. + pub fn build(&self) -> NewlineDelimitedEncoder { + NewlineDelimitedEncoder::default() + } +} + +/// A codec for handling bytes that are delimited by (a) newline(s). +#[derive(Debug, Clone)] +pub struct NewlineDelimitedEncoder(CharacterDelimitedEncoder); + +impl Default for NewlineDelimitedEncoder { + fn default() -> Self { + Self(CharacterDelimitedEncoder::new(b'\n')) + } +} + +impl Encoder<()> for NewlineDelimitedEncoder { + type Error = BoxedFramingError; + + fn encode(&mut self, _: (), buffer: &mut BytesMut) -> Result<(), BoxedFramingError> { + self.0.encode((), buffer) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn encode_bytes() { + let mut input = BytesMut::from("foo"); + let mut encoder = NewlineDelimitedEncoder::default(); + + encoder.encode((), &mut input).unwrap(); + + assert_eq!(input, "foo\n"); + } +} diff --git a/lib/codecs/src/encoding/mod.rs b/lib/codecs/src/encoding/mod.rs new file mode 100644 index 0000000000000..411f3f692515f --- /dev/null +++ b/lib/codecs/src/encoding/mod.rs @@ -0,0 +1,583 @@ +//! A collection of support structures that are used in the process of encoding +//! events into bytes. + +pub mod format; +pub mod framing; + +use std::fmt::Debug; + +use bytes::BytesMut; +pub use format::{ + AvroSerializer, AvroSerializerConfig, AvroSerializerOptions, CefSerializer, + CefSerializerConfig, CsvSerializer, CsvSerializerConfig, GelfSerializer, GelfSerializerConfig, + JsonSerializer, JsonSerializerConfig, JsonSerializerOptions, LogfmtSerializer, + LogfmtSerializerConfig, NativeJsonSerializer, NativeJsonSerializerConfig, NativeSerializer, + NativeSerializerConfig, ProtobufSerializer, ProtobufSerializerConfig, + ProtobufSerializerOptions, RawMessageSerializer, RawMessageSerializerConfig, TextSerializer, + TextSerializerConfig, +}; +pub use framing::{ + BoxedFramer, BoxedFramingError, BytesEncoder, BytesEncoderConfig, CharacterDelimitedEncoder, + CharacterDelimitedEncoderConfig, CharacterDelimitedEncoderOptions, LengthDelimitedEncoder, + LengthDelimitedEncoderConfig, NewlineDelimitedEncoder, NewlineDelimitedEncoderConfig, +}; +use vector_config::configurable_component; +use vector_core::{config::DataType, event::Event, schema}; + +/// An error that occurred while building an encoder. +pub type BuildError = Box; + +/// An error that occurred while encoding structured events into byte frames. +#[derive(Debug)] +pub enum Error { + /// The error occurred while encoding the byte frame boundaries. + FramingError(BoxedFramingError), + /// The error occurred while serializing a structured event into bytes. + SerializingError(vector_common::Error), +} + +impl std::fmt::Display for Error { + fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::FramingError(error) => write!(formatter, "FramingError({})", error), + Self::SerializingError(error) => write!(formatter, "SerializingError({})", error), + } + } +} + +impl std::error::Error for Error {} + +impl From for Error { + fn from(error: std::io::Error) -> Self { + Self::FramingError(Box::new(error)) + } +} + +/// Framing configuration. +#[configurable_component] +#[derive(Clone, Debug, Eq, PartialEq)] +#[serde(tag = "method", rename_all = "snake_case")] +#[configurable(metadata(docs::enum_tag_description = "The framing method."))] +pub enum FramingConfig { + /// Event data is not delimited at all. + Bytes, + + /// Event data is delimited by a single ASCII (7-bit) character. + CharacterDelimited(CharacterDelimitedEncoderConfig), + + /// Event data is prefixed with its length in bytes. + /// + /// The prefix is a 32-bit unsigned integer, little endian. + LengthDelimited(LengthDelimitedEncoderConfig), + + /// Event data is delimited by a newline (LF) character. + NewlineDelimited, +} + +impl From for FramingConfig { + fn from(_: BytesEncoderConfig) -> Self { + Self::Bytes + } +} + +impl From for FramingConfig { + fn from(config: CharacterDelimitedEncoderConfig) -> Self { + Self::CharacterDelimited(config) + } +} + +impl From for FramingConfig { + fn from(config: LengthDelimitedEncoderConfig) -> Self { + Self::LengthDelimited(config) + } +} + +impl From for FramingConfig { + fn from(_: NewlineDelimitedEncoderConfig) -> Self { + Self::NewlineDelimited + } +} + +impl FramingConfig { + /// Build the `Framer` from this configuration. + pub fn build(&self) -> Framer { + match self { + FramingConfig::Bytes => Framer::Bytes(BytesEncoderConfig.build()), + FramingConfig::CharacterDelimited(config) => Framer::CharacterDelimited(config.build()), + FramingConfig::LengthDelimited(config) => Framer::LengthDelimited(config.build()), + FramingConfig::NewlineDelimited => { + Framer::NewlineDelimited(NewlineDelimitedEncoderConfig.build()) + } + } + } +} + +/// Produce a byte stream from byte frames. +#[derive(Debug, Clone)] +pub enum Framer { + /// Uses a `BytesEncoder` for framing. + Bytes(BytesEncoder), + /// Uses a `CharacterDelimitedEncoder` for framing. + CharacterDelimited(CharacterDelimitedEncoder), + /// Uses a `LengthDelimitedEncoder` for framing. + LengthDelimited(LengthDelimitedEncoder), + /// Uses a `NewlineDelimitedEncoder` for framing. + NewlineDelimited(NewlineDelimitedEncoder), + /// Uses an opaque `Encoder` implementation for framing. + Boxed(BoxedFramer), +} + +impl From for Framer { + fn from(encoder: BytesEncoder) -> Self { + Self::Bytes(encoder) + } +} + +impl From for Framer { + fn from(encoder: CharacterDelimitedEncoder) -> Self { + Self::CharacterDelimited(encoder) + } +} + +impl From for Framer { + fn from(encoder: LengthDelimitedEncoder) -> Self { + Self::LengthDelimited(encoder) + } +} + +impl From for Framer { + fn from(encoder: NewlineDelimitedEncoder) -> Self { + Self::NewlineDelimited(encoder) + } +} + +impl From for Framer { + fn from(encoder: BoxedFramer) -> Self { + Self::Boxed(encoder) + } +} + +impl tokio_util::codec::Encoder<()> for Framer { + type Error = BoxedFramingError; + + fn encode(&mut self, _: (), buffer: &mut BytesMut) -> Result<(), Self::Error> { + match self { + Framer::Bytes(framer) => framer.encode((), buffer), + Framer::CharacterDelimited(framer) => framer.encode((), buffer), + Framer::LengthDelimited(framer) => framer.encode((), buffer), + Framer::NewlineDelimited(framer) => framer.encode((), buffer), + Framer::Boxed(framer) => framer.encode((), buffer), + } + } +} + +/// Serializer configuration. +#[configurable_component] +#[derive(Clone, Debug)] +#[serde(tag = "codec", rename_all = "snake_case")] +#[configurable(metadata(docs::enum_tag_description = "The codec to use for encoding events."))] +pub enum SerializerConfig { + /// Encodes an event as an [Apache Avro][apache_avro] message. + /// + /// [apache_avro]: https://avro.apache.org/ + Avro { + /// Apache Avro-specific encoder options. + avro: AvroSerializerOptions, + }, + + /// Encodes an event as a CEF (Common Event Format) formatted message. + /// + Cef( + /// Options for the CEF encoder. + CefSerializerConfig, + ), + + /// Encodes an event as a CSV message. + /// + /// This codec must be configured with fields to encode. + /// + Csv(CsvSerializerConfig), + + /// Encodes an event as a [GELF][gelf] message. + /// + /// This codec is experimental for the following reason: + /// + /// The GELF specification is more strict than the actual Graylog receiver. + /// Vector's encoder currently adheres more strictly to the GELF spec, with + /// the exception that some characters such as `@` are allowed in field names. + /// + /// Other GELF codecs, such as Loki's, use a [Go SDK][implementation] that is maintained + /// by Graylog and is much more relaxed than the GELF spec. + /// + /// Going forward, Vector will use that [Go SDK][implementation] as the reference implementation, which means + /// the codec might continue to relax the enforcement of the specification. + /// + /// [gelf]: https://docs.graylog.org/docs/gelf + /// [implementation]: https://github.com/Graylog2/go-gelf/blob/v2/gelf/reader.go + Gelf, + + /// Encodes an event as [JSON][json]. + /// + /// [json]: https://www.json.org/ + Json(JsonSerializerConfig), + + /// Encodes an event as a [logfmt][logfmt] message. + /// + /// [logfmt]: https://brandur.org/logfmt + Logfmt, + + /// Encodes an event in the [native Protocol Buffers format][vector_native_protobuf]. + /// + /// This codec is **[experimental][experimental]**. + /// + /// [vector_native_protobuf]: https://github.com/vectordotdev/vector/blob/master/lib/vector-core/proto/event.proto + /// [experimental]: https://vector.dev/highlights/2022-03-31-native-event-codecs + Native, + + /// Encodes an event in the [native JSON format][vector_native_json]. + /// + /// This codec is **[experimental][experimental]**. + /// + /// [vector_native_json]: https://github.com/vectordotdev/vector/blob/master/lib/codecs/tests/data/native_encoding/schema.cue + /// [experimental]: https://vector.dev/highlights/2022-03-31-native-event-codecs + NativeJson, + + /// Encodes an event as a [Protobuf][protobuf] message. + /// + /// [protobuf]: https://protobuf.dev/ + Protobuf(ProtobufSerializerConfig), + + /// No encoding. + /// + /// This encoding uses the `message` field of a log event. + /// + /// Be careful if you are modifying your log events (for example, by using a `remap` + /// transform) and removing the message field while doing additional parsing on it, as this + /// could lead to the encoding emitting empty strings for the given event. + RawMessage, + + /// Plain text encoding. + /// + /// This encoding uses the `message` field of a log event. For metrics, it uses an + /// encoding that resembles the Prometheus export format. + /// + /// Be careful if you are modifying your log events (for example, by using a `remap` + /// transform) and removing the message field while doing additional parsing on it, as this + /// could lead to the encoding emitting empty strings for the given event. + Text(TextSerializerConfig), +} + +impl From for SerializerConfig { + fn from(config: AvroSerializerConfig) -> Self { + Self::Avro { avro: config.avro } + } +} + +impl From for SerializerConfig { + fn from(config: CefSerializerConfig) -> Self { + Self::Cef(config) + } +} + +impl From for SerializerConfig { + fn from(config: CsvSerializerConfig) -> Self { + Self::Csv(config) + } +} + +impl From for SerializerConfig { + fn from(_: GelfSerializerConfig) -> Self { + Self::Gelf + } +} + +impl From for SerializerConfig { + fn from(config: JsonSerializerConfig) -> Self { + Self::Json(config) + } +} + +impl From for SerializerConfig { + fn from(_: LogfmtSerializerConfig) -> Self { + Self::Logfmt + } +} + +impl From for SerializerConfig { + fn from(_: NativeSerializerConfig) -> Self { + Self::Native + } +} + +impl From for SerializerConfig { + fn from(_: NativeJsonSerializerConfig) -> Self { + Self::NativeJson + } +} + +impl From for SerializerConfig { + fn from(config: ProtobufSerializerConfig) -> Self { + Self::Protobuf(config) + } +} + +impl From for SerializerConfig { + fn from(_: RawMessageSerializerConfig) -> Self { + Self::RawMessage + } +} + +impl From for SerializerConfig { + fn from(config: TextSerializerConfig) -> Self { + Self::Text(config) + } +} + +impl SerializerConfig { + /// Build the `Serializer` from this configuration. + pub fn build(&self) -> Result> { + match self { + SerializerConfig::Avro { avro } => Ok(Serializer::Avro( + AvroSerializerConfig::new(avro.schema.clone()).build()?, + )), + SerializerConfig::Cef(config) => Ok(Serializer::Cef(config.build()?)), + SerializerConfig::Csv(config) => Ok(Serializer::Csv(config.build()?)), + SerializerConfig::Gelf => Ok(Serializer::Gelf(GelfSerializerConfig::new().build())), + SerializerConfig::Json(config) => Ok(Serializer::Json(config.build())), + SerializerConfig::Logfmt => Ok(Serializer::Logfmt(LogfmtSerializerConfig.build())), + SerializerConfig::Native => Ok(Serializer::Native(NativeSerializerConfig.build())), + SerializerConfig::NativeJson => { + Ok(Serializer::NativeJson(NativeJsonSerializerConfig.build())) + } + SerializerConfig::Protobuf(config) => Ok(Serializer::Protobuf(config.build()?)), + SerializerConfig::RawMessage => { + Ok(Serializer::RawMessage(RawMessageSerializerConfig.build())) + } + SerializerConfig::Text(config) => Ok(Serializer::Text(config.build())), + } + } + + /// Return an appropriate default framer for the given serializer. + pub fn default_stream_framing(&self) -> FramingConfig { + match self { + // TODO: Technically, Avro messages are supposed to be framed[1] as a vector of + // length-delimited buffers -- `len` as big-endian 32-bit unsigned integer, followed by + // `len` bytes -- with a "zero-length buffer" to terminate the overall message... which + // our length delimited framer obviously will not do. + // + // This is OK for now, because the Avro serializer is more ceremonial than anything + // else, existing to curry serializer config options to Pulsar's native client, not to + // actually serialize the bytes themselves... but we're still exposing this method and + // we should do so accurately, even if practically it doesn't need to be. + // + // [1]: https://avro.apache.org/docs/1.11.1/specification/_print/#message-framing + SerializerConfig::Avro { .. } + | SerializerConfig::Native + | SerializerConfig::Protobuf(_) => { + FramingConfig::LengthDelimited(LengthDelimitedEncoderConfig::default()) + } + SerializerConfig::Cef(_) + | SerializerConfig::Csv(_) + | SerializerConfig::Json(_) + | SerializerConfig::Logfmt + | SerializerConfig::NativeJson + | SerializerConfig::RawMessage + | SerializerConfig::Text(_) => FramingConfig::NewlineDelimited, + SerializerConfig::Gelf => { + FramingConfig::CharacterDelimited(CharacterDelimitedEncoderConfig::new(0)) + } + } + } + + /// The data type of events that are accepted by this `Serializer`. + pub fn input_type(&self) -> DataType { + match self { + SerializerConfig::Avro { avro } => { + AvroSerializerConfig::new(avro.schema.clone()).input_type() + } + SerializerConfig::Cef(config) => config.input_type(), + SerializerConfig::Csv(config) => config.input_type(), + SerializerConfig::Gelf { .. } => GelfSerializerConfig::input_type(), + SerializerConfig::Json(config) => config.input_type(), + SerializerConfig::Logfmt => LogfmtSerializerConfig.input_type(), + SerializerConfig::Native => NativeSerializerConfig.input_type(), + SerializerConfig::NativeJson => NativeJsonSerializerConfig.input_type(), + SerializerConfig::Protobuf(config) => config.input_type(), + SerializerConfig::RawMessage => RawMessageSerializerConfig.input_type(), + SerializerConfig::Text(config) => config.input_type(), + } + } + + /// The schema required by the serializer. + pub fn schema_requirement(&self) -> schema::Requirement { + match self { + SerializerConfig::Avro { avro } => { + AvroSerializerConfig::new(avro.schema.clone()).schema_requirement() + } + SerializerConfig::Cef(config) => config.schema_requirement(), + SerializerConfig::Csv(config) => config.schema_requirement(), + SerializerConfig::Gelf { .. } => GelfSerializerConfig::schema_requirement(), + SerializerConfig::Json(config) => config.schema_requirement(), + SerializerConfig::Logfmt => LogfmtSerializerConfig.schema_requirement(), + SerializerConfig::Native => NativeSerializerConfig.schema_requirement(), + SerializerConfig::NativeJson => NativeJsonSerializerConfig.schema_requirement(), + SerializerConfig::Protobuf(config) => config.schema_requirement(), + SerializerConfig::RawMessage => RawMessageSerializerConfig.schema_requirement(), + SerializerConfig::Text(config) => config.schema_requirement(), + } + } +} + +/// Serialize structured events as bytes. +#[derive(Debug, Clone)] +pub enum Serializer { + /// Uses an `AvroSerializer` for serialization. + Avro(AvroSerializer), + /// Uses a `CefSerializer` for serialization. + Cef(CefSerializer), + /// Uses a `CsvSerializer` for serialization. + Csv(CsvSerializer), + /// Uses a `GelfSerializer` for serialization. + Gelf(GelfSerializer), + /// Uses a `JsonSerializer` for serialization. + Json(JsonSerializer), + /// Uses a `LogfmtSerializer` for serialization. + Logfmt(LogfmtSerializer), + /// Uses a `NativeSerializer` for serialization. + Native(NativeSerializer), + /// Uses a `NativeJsonSerializer` for serialization. + NativeJson(NativeJsonSerializer), + /// Uses a `ProtobufSerializer` for serialization. + Protobuf(ProtobufSerializer), + /// Uses a `RawMessageSerializer` for serialization. + RawMessage(RawMessageSerializer), + /// Uses a `TextSerializer` for serialization. + Text(TextSerializer), +} + +impl Serializer { + /// Check if the serializer supports encoding an event to JSON via `Serializer::to_json_value`. + pub fn supports_json(&self) -> bool { + match self { + Serializer::Json(_) | Serializer::NativeJson(_) | Serializer::Gelf(_) => true, + Serializer::Avro(_) + | Serializer::Cef(_) + | Serializer::Csv(_) + | Serializer::Logfmt(_) + | Serializer::Text(_) + | Serializer::Native(_) + | Serializer::Protobuf(_) + | Serializer::RawMessage(_) => false, + } + } + + /// Encode event and represent it as JSON value. + /// + /// # Panics + /// + /// Panics if the serializer does not support encoding to JSON. Call `Serializer::supports_json` + /// if you need to determine the capability to encode to JSON at runtime. + pub fn to_json_value(&self, event: Event) -> Result { + match self { + Serializer::Gelf(serializer) => serializer.to_json_value(event), + Serializer::Json(serializer) => serializer.to_json_value(event), + Serializer::NativeJson(serializer) => serializer.to_json_value(event), + Serializer::Avro(_) + | Serializer::Cef(_) + | Serializer::Csv(_) + | Serializer::Logfmt(_) + | Serializer::Text(_) + | Serializer::Native(_) + | Serializer::Protobuf(_) + | Serializer::RawMessage(_) => { + panic!("Serializer does not support JSON") + } + } + } +} + +impl From for Serializer { + fn from(serializer: AvroSerializer) -> Self { + Self::Avro(serializer) + } +} + +impl From for Serializer { + fn from(serializer: CefSerializer) -> Self { + Self::Cef(serializer) + } +} + +impl From for Serializer { + fn from(serializer: CsvSerializer) -> Self { + Self::Csv(serializer) + } +} + +impl From for Serializer { + fn from(serializer: GelfSerializer) -> Self { + Self::Gelf(serializer) + } +} + +impl From for Serializer { + fn from(serializer: JsonSerializer) -> Self { + Self::Json(serializer) + } +} + +impl From for Serializer { + fn from(serializer: LogfmtSerializer) -> Self { + Self::Logfmt(serializer) + } +} + +impl From for Serializer { + fn from(serializer: NativeSerializer) -> Self { + Self::Native(serializer) + } +} + +impl From for Serializer { + fn from(serializer: NativeJsonSerializer) -> Self { + Self::NativeJson(serializer) + } +} + +impl From for Serializer { + fn from(serializer: ProtobufSerializer) -> Self { + Self::Protobuf(serializer) + } +} + +impl From for Serializer { + fn from(serializer: RawMessageSerializer) -> Self { + Self::RawMessage(serializer) + } +} + +impl From for Serializer { + fn from(serializer: TextSerializer) -> Self { + Self::Text(serializer) + } +} + +impl tokio_util::codec::Encoder for Serializer { + type Error = vector_common::Error; + + fn encode(&mut self, event: Event, buffer: &mut BytesMut) -> Result<(), Self::Error> { + match self { + Serializer::Avro(serializer) => serializer.encode(event, buffer), + Serializer::Cef(serializer) => serializer.encode(event, buffer), + Serializer::Csv(serializer) => serializer.encode(event, buffer), + Serializer::Gelf(serializer) => serializer.encode(event, buffer), + Serializer::Json(serializer) => serializer.encode(event, buffer), + Serializer::Logfmt(serializer) => serializer.encode(event, buffer), + Serializer::Native(serializer) => serializer.encode(event, buffer), + Serializer::NativeJson(serializer) => serializer.encode(event, buffer), + Serializer::Protobuf(serializer) => serializer.encode(event, buffer), + Serializer::RawMessage(serializer) => serializer.encode(event, buffer), + Serializer::Text(serializer) => serializer.encode(event, buffer), + } + } +} diff --git a/lib/codecs/src/gelf.rs b/lib/codecs/src/gelf.rs new file mode 100644 index 0000000000000..9607075d603b2 --- /dev/null +++ b/lib/codecs/src/gelf.rs @@ -0,0 +1,77 @@ +//! Contains common definitions for GELF codec support + +use std::sync::LazyLock; + +use regex::Regex; +use vrl::owned_value_path; +use vrl::path::OwnedTargetPath; + +/// GELF Message fields. Definitions from . +pub mod gelf_fields { + /// (not a field) The latest version of the GELF specification. + pub const GELF_VERSION: &str = "1.1"; + + /// (required) GELF spec version + pub const VERSION: &str = "version"; + + /// (required) The name of the host, source or application that sent this message. + pub const HOST: &str = "host"; + + /// (required) A short descriptive message. + pub const SHORT_MESSAGE: &str = "short_message"; + + /// (optional) A long message that can i.e. contain a backtrace + pub const FULL_MESSAGE: &str = "full_message"; + + /// (optional) Seconds since UNIX epoch with optional decimal places for milliseconds. + /// SHOULD be set by client library. Will be set to the current timestamp (now) by the server if absent. + pub const TIMESTAMP: &str = "timestamp"; + + /// (optional) The level equal to the standard syslog levels. default is 1 (ALERT). + pub const LEVEL: &str = "level"; + + /// (optional) (deprecated) Send as additional field instead. + pub const FACILITY: &str = "facility"; + + /// (optional) (deprecated) The line in a file that caused the error (decimal). Send as additional field instead. + pub const LINE: &str = "line"; + + /// (optional) (deprecated) The file (with path if you want) that caused the error. Send as additional field instead. + pub const FILE: &str = "file"; + + // < Every field with an underscore (_) prefix will be treated as an additional field. > +} + +/// GELF owned target paths. +pub(crate) struct GelfTargetPaths { + pub version: OwnedTargetPath, + pub host: OwnedTargetPath, + pub full_message: OwnedTargetPath, + pub level: OwnedTargetPath, + pub facility: OwnedTargetPath, + pub line: OwnedTargetPath, + pub file: OwnedTargetPath, + pub short_message: OwnedTargetPath, +} + +/// Lazily initialized singleton. +pub(crate) static GELF_TARGET_PATHS: LazyLock = + LazyLock::new(|| GelfTargetPaths { + version: OwnedTargetPath::event(owned_value_path!(gelf_fields::VERSION)), + host: OwnedTargetPath::event(owned_value_path!(gelf_fields::HOST)), + full_message: OwnedTargetPath::event(owned_value_path!(gelf_fields::FULL_MESSAGE)), + level: OwnedTargetPath::event(owned_value_path!(gelf_fields::LEVEL)), + facility: OwnedTargetPath::event(owned_value_path!(gelf_fields::FACILITY)), + line: OwnedTargetPath::event(owned_value_path!(gelf_fields::LINE)), + file: OwnedTargetPath::event(owned_value_path!(gelf_fields::FILE)), + short_message: OwnedTargetPath::event(owned_value_path!(gelf_fields::SHORT_MESSAGE)), + }); + +/// Regex for matching valid field names in the encoder. According to the original spec by graylog, +/// must contain only word chars, periods and dashes. Additional field names must also be prefixed +/// with an `_` , however that is intentionally omitted from this regex to be checked separately +/// to create a specific error message. +/// As Graylog itself will produce GELF with any existing field names on the Graylog GELF Output, +/// vector is more lenient, too, at least allowing the additional `@` character. +pub static VALID_FIELD_REGEX: LazyLock = + LazyLock::new(|| Regex::new(r"^[\w\.\-@]*$").unwrap()); diff --git a/lib/codecs/src/lib.rs b/lib/codecs/src/lib.rs new file mode 100644 index 0000000000000..61a9c9e1bba0f --- /dev/null +++ b/lib/codecs/src/lib.rs @@ -0,0 +1,46 @@ +//! A collection of codecs that can be used to transform between bytes streams / +//! byte messages, byte frames and structured events. + +#![deny(missing_docs)] +#![deny(warnings)] + +mod common; +pub mod decoding; +pub mod encoding; +pub mod gelf; + +pub use decoding::{ + BytesDecoder, BytesDecoderConfig, BytesDeserializer, BytesDeserializerConfig, + CharacterDelimitedDecoder, CharacterDelimitedDecoderConfig, GelfDeserializer, + GelfDeserializerConfig, JsonDeserializer, JsonDeserializerConfig, LengthDelimitedDecoder, + LengthDelimitedDecoderConfig, NativeDeserializer, NativeDeserializerConfig, + NativeJsonDeserializer, NativeJsonDeserializerConfig, NewlineDelimitedDecoder, + NewlineDelimitedDecoderConfig, OctetCountingDecoder, OctetCountingDecoderConfig, + StreamDecodingError, +}; +#[cfg(feature = "syslog")] +pub use decoding::{SyslogDeserializer, SyslogDeserializerConfig}; +pub use encoding::{ + BytesEncoder, BytesEncoderConfig, CharacterDelimitedEncoder, CharacterDelimitedEncoderConfig, + CsvSerializer, CsvSerializerConfig, GelfSerializer, GelfSerializerConfig, JsonSerializer, + JsonSerializerConfig, LengthDelimitedEncoder, LengthDelimitedEncoderConfig, LogfmtSerializer, + LogfmtSerializerConfig, NativeJsonSerializer, NativeJsonSerializerConfig, NativeSerializer, + NativeSerializerConfig, NewlineDelimitedEncoder, NewlineDelimitedEncoderConfig, + RawMessageSerializer, RawMessageSerializerConfig, TextSerializer, TextSerializerConfig, +}; +pub use gelf::{gelf_fields, VALID_FIELD_REGEX}; +use vector_config_macros::configurable_component; + +/// The user configuration to choose the metric tag strategy. +#[configurable_component] +#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)] +#[serde(rename_all = "snake_case")] +pub enum MetricTagValues { + /// Tag values are exposed as single strings, the same as they were before this config + /// option. Tags with multiple values show the last assigned value, and null values + /// are ignored. + #[default] + Single, + /// All tags are exposed as arrays of either string or null values. + Full, +} diff --git a/lib/codecs/tests/avro.rs b/lib/codecs/tests/avro.rs new file mode 100644 index 0000000000000..b5f95019e5d3b --- /dev/null +++ b/lib/codecs/tests/avro.rs @@ -0,0 +1,75 @@ +use bytes::{Bytes, BytesMut}; +use codecs::{ + decoding::format::AvroDeserializerConfig, decoding::format::Deserializer, + encoding::format::AvroSerializerConfig, +}; +use rstest::*; +use similar_asserts::assert_eq; +use std::{ + fs::File, + io::Read, + path::{Path, PathBuf}, + str::from_utf8, +}; +use tokio_util::codec::Encoder; +use vector_core::{config::LogNamespace, event::Event}; + +#[rstest] +#[case(true)] +#[case(false)] +fn roundtrip_avro_fixtures( + #[files("tests/data/avro/generated/*.avro")] + #[exclude(".*(date|fixed|time_millis).avro")] + path: PathBuf, + #[case] reserialize: bool, +) { + let schema_path = path.as_path().with_extension("avsc"); + assert!(schema_path.exists()); + + roundtrip_avro(path, schema_path, reserialize); +} + +fn roundtrip_avro(data_path: PathBuf, schema_path: PathBuf, reserialize: bool) { + let schema = load_file(&schema_path); + let schema = from_utf8(&schema).unwrap().to_string(); + let deserializer = AvroDeserializerConfig::new(schema.clone(), false).build(); + let mut serializer = AvroSerializerConfig::new(schema.clone()).build().unwrap(); + + let (buf, event) = load_deserialize(&data_path, &deserializer); + + if reserialize { + // Serialize the parsed event + let mut buf = BytesMut::new(); + serializer.encode(event.clone(), &mut buf).unwrap(); + // Deserialize the event from these bytes + let new_events = deserializer + .parse(buf.into(), LogNamespace::Vector) + .unwrap(); + + // Ensure we have the same event. + assert_eq!(new_events.len(), 1); + assert_eq!(new_events[0], event); + } else { + // Ensure that the parsed event is serialized to the same bytes + let mut new_buf = BytesMut::new(); + serializer.encode(event.clone(), &mut new_buf).unwrap(); + assert_eq!(buf, new_buf); + } +} + +fn load_file(path: &Path) -> Bytes { + let mut file = File::open(path).unwrap(); + let mut buf = Vec::new(); + file.read_to_end(&mut buf).unwrap(); + Bytes::from(buf) +} + +fn load_deserialize(path: &Path, deserializer: &dyn Deserializer) -> (Bytes, Event) { + let buf = load_file(path); + + let mut events = deserializer + .parse(buf.clone(), LogNamespace::Vector) + .unwrap(); + assert_eq!(events.len(), 1); + (buf, events.pop().unwrap()) +} diff --git a/lib/codecs/tests/bin/generate-avro-fixtures.rs b/lib/codecs/tests/bin/generate-avro-fixtures.rs new file mode 100644 index 0000000000000..18fb6a60d9ca7 --- /dev/null +++ b/lib/codecs/tests/bin/generate-avro-fixtures.rs @@ -0,0 +1,507 @@ +use apache_avro::{types::Value, Decimal, Schema}; +use serde::{Deserialize, Serialize}; +use std::fs::File; +use std::io::Write; +use std::path::PathBuf; + +const FIXTURES_PATH: &str = "lib/codecs/tests/data/avro/generated"; + +fn generate_avro_test_case_boolean() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "bool_field", "type": "boolean", "default": false} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + bool_field: bool, + } + let value = Test { bool_field: true }; + generate_test_case(schema, value, "boolean"); +} + +fn generate_avro_test_case_int() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "int_field", "type": "int", "default": 0} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + int_field: i32, + } + let value = Test { int_field: 1234 }; + generate_test_case(schema, value, "int"); +} + +fn generate_avro_test_case_long() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "long_field", "type": "long", "default": 0} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + long_field: i64, + } + let value = Test { + long_field: 42949672960i64, + }; + generate_test_case(schema, value, "long"); +} + +fn generate_avro_test_case_float() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "float_field", "type": "float", "default": 0} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + float_field: f32, + } + let value = Test { + float_field: 123.456, + }; + generate_test_case(schema, value, "float"); +} + +fn generate_avro_test_case_double() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "double_field", "type": "double", "default": 0} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + double_field: f64, + } + let value = Test { + double_field: 123.456f64, + }; + generate_test_case(schema, value, "double"); +} + +fn generate_avro_test_case_bytes() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "bytes_field", "type": "bytes"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + bytes_field: Vec, + } + let value = Test { + bytes_field: vec![1, 2, 3, 4, 5, 6, 6, 7], + }; + generate_test_case(schema, value, "bytes"); +} + +fn generate_avro_test_case_string() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "string_field", "type": "string"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + string_field: String, + } + let value = Test { + string_field: "hello world!".to_string(), + }; + generate_test_case(schema, value, "string"); +} + +#[allow(unused)] +fn generate_avro_test_case_fixed() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "fixed_field", "type":"fixed", "size": 16} + ] + } + "#; + let record = Value::Record(vec![( + "fixed_field".into(), + Value::Fixed(16, b"1019181716151413".to_vec()), + )]); + generate_test_case_from_value(schema, record, "fixed"); +} + +fn generate_avro_test_case_enum() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "enum_field", "type": "enum", "symbols" : ["Spades", "Hearts", "Diamonds", "Clubs"]} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + enum Value { + Spades, + Hearts, + Diamonds, + Clubs, + } + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + enum_field: Value, + } + let value = Test { + enum_field: Value::Hearts, + }; + generate_test_case(schema, value, "enum"); +} + +fn generate_avro_test_case_union() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "union_field", "type": [ + "string", + "int" + ] + } + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + union_field: i32, + } + let value = Test { + union_field: 123456, + }; + generate_test_case(schema, value, "union"); +} + +fn generate_avro_test_case_array() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "array_field", "type": "array", "items" : "string"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + array_field: Vec, + } + let value = Test { + array_field: vec![ + "hello".to_string(), + "vector".to_string(), + "avro".to_string(), + "codec".to_string(), + ], + }; + generate_test_case(schema, value, "array"); +} + +fn generate_avro_test_case_map() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "map_field", "type": "map", "values" : "long","default": {}} + ] + } + "#; + use std::collections::HashMap; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + map_field: HashMap, + } + let mut scores = HashMap::new(); + scores.insert(String::from("Blue"), 10i64); + let value = Test { map_field: scores }; + generate_test_case(schema, value, "map"); +} + +fn generate_avro_test_case_record() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "name", "type": "string"}, + {"name": "age", "type": "int"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + name: String, + age: i32, + } + let value = Test { + name: "John".to_string(), + age: 23, + }; + generate_test_case(schema, value, "record"); +} + +#[allow(unused)] +fn generate_avro_test_case_date() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "date_field", "type": "int", "logicalType": "date"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + date_field: i32, + } + let value = Test { date_field: 19646 }; + generate_test_case(schema, value, "date"); +} + +#[allow(unused)] +fn generate_avro_test_case_decimal_var() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "decimal_var_field", "type": "bytes", "logicalType": "decimal","precision": 10,"scale": 3} + ] + } + "#; + + let record = Value::Record(vec![( + "decimal_var_field".into(), + Value::Decimal(Decimal::from([ + 249, 33, 74, 206, 142, 64, 190, 170, 17, 153, + ])), + )]); + generate_test_case_from_value(schema, record, "decimal_var"); +} + +#[allow(unused)] +fn generate_avro_test_case_time_millis() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "time_millis_field", "type": "int", "logicalType": "time-millis"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + time_millis_field: i32, + } + let value = Test { + time_millis_field: 59820123, + }; + generate_test_case(schema, value, "time_millis"); +} + +fn generate_avro_test_case_time_micros() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "time_micros_field", "type": "long", "logicalType": "time-micros"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + time_micros_field: i64, + } + let value: Test = Test { + time_micros_field: 59820123456i64, + }; + generate_test_case(schema, value, "time_micros"); +} + +fn generate_avro_test_case_timestamp_millis() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "timestamp_millis_field", "type": "long", "logicalType": "timestamp-millis"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + timestamp_millis_field: i64, + } + let value = Test { + timestamp_millis_field: 1697445291056i64, + }; + generate_test_case(schema, value, "timestamp_millis"); +} + +fn generate_avro_test_case_timestamp_micros() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "timestamp_micros_field", "type": "long", "logicalType": "timestamp-micros"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + timestamp_micros_field: i64, + } + let value = Test { + timestamp_micros_field: 1697445291056567i64, + }; + generate_test_case(schema, value, "timestamp_micros"); +} + +fn generate_avro_test_case_local_timestamp_millis() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "local_timestamp_millis_field", "type": "long", "logicalType": "local-timestamp-millis"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + local_timestamp_millis_field: i64, + } + let value = Test { + local_timestamp_millis_field: 1697445291056i64, + }; + generate_test_case(schema, value, "local-timestamp_millis"); +} + +fn generate_avro_test_case_local_timestamp_micros() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "local_timestamp_micros_field", "type": "long", "logicalType": "local-timestamp-micros"} + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + local_timestamp_micros_field: i64, + } + let value = Test { + local_timestamp_micros_field: 1697445291056567i64, + }; + generate_test_case(schema, value, "local-timestamp_micros"); +} + +fn generate_avro_test_case_uuid() { + let schema = r#" + { + "type": "record", + "name": "test", + "fields": [ + {"name": "uuid_field", "type": "string", + "logicalType": "uuid" + } + ] + } + "#; + #[derive(Debug, Serialize, Deserialize, Clone)] + struct Test { + uuid_field: String, + } + let value = Test { + uuid_field: "550e8400-e29b-41d4-a716-446655440000".into(), + }; + generate_test_case(schema, value, "uuid"); +} + +fn generate_test_case(schema: &str, value: S, filename: &str) { + let value = apache_avro::to_value(value).unwrap(); + generate_test_case_from_value(schema, value, filename); +} + +fn generate_test_case_from_value(schema: &str, value: Value, filename: &str) { + let schema = Schema::parse_str(schema).unwrap(); + + let value = value.resolve(&schema).unwrap(); + let bytes = apache_avro::to_avro_datum(&schema, value).unwrap(); + + let mut schema_file = File::create(format!("{FIXTURES_PATH}/{filename}.avsc")).unwrap(); + let mut avro_file = File::create(format!("{FIXTURES_PATH}/{filename}.avro")).unwrap(); + schema_file + .write_all(schema.canonical_form().as_bytes()) + .unwrap(); + avro_file.write_all(&bytes).unwrap(); +} + +fn main() { + if !PathBuf::from(FIXTURES_PATH).is_dir() { + panic!("dir {FIXTURES_PATH} not exist\n"); + } + generate_avro_test_case_array(); + generate_avro_test_case_boolean(); + generate_avro_test_case_bytes(); + generate_avro_test_case_double(); + generate_avro_test_case_enum(); + generate_avro_test_case_float(); + generate_avro_test_case_int(); + generate_avro_test_case_long(); + generate_avro_test_case_map(); + generate_avro_test_case_record(); + generate_avro_test_case_string(); + generate_avro_test_case_time_micros(); + generate_avro_test_case_timestamp_micros(); + generate_avro_test_case_timestamp_millis(); + generate_avro_test_case_local_timestamp_micros(); + generate_avro_test_case_local_timestamp_millis(); + generate_avro_test_case_union(); + generate_avro_test_case_uuid(); +} diff --git a/lib/codecs/tests/data/avro/README.md b/lib/codecs/tests/data/avro/README.md new file mode 100644 index 0000000000000..7355e9805b8a2 --- /dev/null +++ b/lib/codecs/tests/data/avro/README.md @@ -0,0 +1,20 @@ +# AVRO fixtures + +This directory contains test fixture data for the avro codecs. + +## re-generate the data files + +There is currently a multi-step procedure to re-generate the data files. + +1. run the bash + +```bash +cargo run --package codecs --bin generate-avro-fixtures +``` + +That test case writes out the appropriate files into `lib/codecs/tests/data/avro/generated/` dir. + +## Known issues + +Due to difference of `VrlValue` and `avro`, for example, `i32` is a type of `avro` which will be converted to `i64`, some test cases are ignored. + diff --git a/lib/codecs/tests/data/avro/generated/array.avro b/lib/codecs/tests/data/avro/generated/array.avro new file mode 100644 index 0000000000000..a5d916341af7e Binary files /dev/null and b/lib/codecs/tests/data/avro/generated/array.avro differ diff --git a/lib/codecs/tests/data/avro/generated/array.avsc b/lib/codecs/tests/data/avro/generated/array.avsc new file mode 100644 index 0000000000000..41f098e5deafe --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/array.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"array_field","type":{"type":"array","items":"string"}}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/boolean.avro b/lib/codecs/tests/data/avro/generated/boolean.avro new file mode 100644 index 0000000000000..6b2aaa7640726 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/boolean.avro @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/boolean.avsc b/lib/codecs/tests/data/avro/generated/boolean.avsc new file mode 100644 index 0000000000000..aa04929ca9db4 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/boolean.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"bool_field","type":"boolean"}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/bytes.avro b/lib/codecs/tests/data/avro/generated/bytes.avro new file mode 100644 index 0000000000000..a3bb4fd12c285 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/bytes.avro @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/bytes.avsc b/lib/codecs/tests/data/avro/generated/bytes.avsc new file mode 100644 index 0000000000000..2d8d0acefc72a --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/bytes.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"bytes_field","type":"bytes"}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/double.avro b/lib/codecs/tests/data/avro/generated/double.avro new file mode 100644 index 0000000000000..abdf1ab946f99 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/double.avro @@ -0,0 +1 @@ +w/^@ \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/double.avsc b/lib/codecs/tests/data/avro/generated/double.avsc new file mode 100644 index 0000000000000..60dfa5b2aab17 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/double.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"double_field","type":"double"}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/enum.avro b/lib/codecs/tests/data/avro/generated/enum.avro new file mode 100644 index 0000000000000..25cb955ba2357 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/enum.avro @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/enum.avsc b/lib/codecs/tests/data/avro/generated/enum.avsc new file mode 100644 index 0000000000000..5d7468754da98 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/enum.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"enum_field","type":{"name":"enum_field","type":"enum","symbols":["Spades","Hearts","Diamonds","Clubs"]}}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/float.avro b/lib/codecs/tests/data/avro/generated/float.avro new file mode 100644 index 0000000000000..0dc21ab08a94b --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/float.avro @@ -0,0 +1 @@ +yB \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/float.avsc b/lib/codecs/tests/data/avro/generated/float.avsc new file mode 100644 index 0000000000000..9a7f836ddfe0d --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/float.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"float_field","type":"float"}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/int.avro b/lib/codecs/tests/data/avro/generated/int.avro new file mode 100644 index 0000000000000..67deaac7a6656 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/int.avro @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/int.avsc b/lib/codecs/tests/data/avro/generated/int.avsc new file mode 100644 index 0000000000000..af009f13394f2 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/int.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"int_field","type":"int"}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/local-timestamp_micros.avro b/lib/codecs/tests/data/avro/generated/local-timestamp_micros.avro new file mode 100644 index 0000000000000..d4ab945f80cb2 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/local-timestamp_micros.avro @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/local-timestamp_micros.avsc b/lib/codecs/tests/data/avro/generated/local-timestamp_micros.avsc new file mode 100644 index 0000000000000..35d5441f13078 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/local-timestamp_micros.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"local_timestamp_micros_field","type":{"type":"long","logicalType":"local-timestamp-micros"}}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/local-timestamp_millis.avro b/lib/codecs/tests/data/avro/generated/local-timestamp_millis.avro new file mode 100644 index 0000000000000..0b867adbd9e4f --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/local-timestamp_millis.avro @@ -0,0 +1 @@ +b \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/local-timestamp_millis.avsc b/lib/codecs/tests/data/avro/generated/local-timestamp_millis.avsc new file mode 100644 index 0000000000000..51ec12c1e477e --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/local-timestamp_millis.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"local_timestamp_millis_field","type":{"type":"long","logicalType":"local-timestamp-millis"}}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/long.avro b/lib/codecs/tests/data/avro/generated/long.avro new file mode 100644 index 0000000000000..e655745733d73 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/long.avro @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/long.avsc b/lib/codecs/tests/data/avro/generated/long.avsc new file mode 100644 index 0000000000000..e4a052e4eacef --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/long.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"long_field","type":"long"}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/map.avro b/lib/codecs/tests/data/avro/generated/map.avro new file mode 100644 index 0000000000000..27cd4b24fceb4 Binary files /dev/null and b/lib/codecs/tests/data/avro/generated/map.avro differ diff --git a/lib/codecs/tests/data/avro/generated/map.avsc b/lib/codecs/tests/data/avro/generated/map.avsc new file mode 100644 index 0000000000000..cc3e2ce9003dd --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/map.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"map_field","type":{"type":"map","values":"long"}}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/record.avro b/lib/codecs/tests/data/avro/generated/record.avro new file mode 100644 index 0000000000000..0293bfe50431a --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/record.avro @@ -0,0 +1 @@ +John. \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/record.avsc b/lib/codecs/tests/data/avro/generated/record.avsc new file mode 100644 index 0000000000000..04632d003a183 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/record.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"name","type":"string"},{"name":"age","type":"int"}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/string.avro b/lib/codecs/tests/data/avro/generated/string.avro new file mode 100644 index 0000000000000..409f149494a5f --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/string.avro @@ -0,0 +1 @@ +hello world! \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/string.avsc b/lib/codecs/tests/data/avro/generated/string.avsc new file mode 100644 index 0000000000000..b6efaad1e7e11 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/string.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"string_field","type":"string"}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/time_micros.avro b/lib/codecs/tests/data/avro/generated/time_micros.avro new file mode 100644 index 0000000000000..abf58f5613693 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/time_micros.avro @@ -0,0 +1 @@ +ؽ \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/time_micros.avsc b/lib/codecs/tests/data/avro/generated/time_micros.avsc new file mode 100644 index 0000000000000..6624415706d0e --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/time_micros.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"time_micros_field","type":{"type":"long","logicalType":"time-micros"}}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/timestamp_micros.avro b/lib/codecs/tests/data/avro/generated/timestamp_micros.avro new file mode 100644 index 0000000000000..d4ab945f80cb2 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/timestamp_micros.avro @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/timestamp_micros.avsc b/lib/codecs/tests/data/avro/generated/timestamp_micros.avsc new file mode 100644 index 0000000000000..b466968145c9f --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/timestamp_micros.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"timestamp_micros_field","type":{"type":"long","logicalType":"timestamp-micros"}}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/timestamp_millis.avro b/lib/codecs/tests/data/avro/generated/timestamp_millis.avro new file mode 100644 index 0000000000000..0b867adbd9e4f --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/timestamp_millis.avro @@ -0,0 +1 @@ +b \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/timestamp_millis.avsc b/lib/codecs/tests/data/avro/generated/timestamp_millis.avsc new file mode 100644 index 0000000000000..eea96da274baf --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/timestamp_millis.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"timestamp_millis_field","type":{"type":"long","logicalType":"timestamp-millis"}}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/union.avro b/lib/codecs/tests/data/avro/generated/union.avro new file mode 100644 index 0000000000000..cb06f7f8a8da6 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/union.avro @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/union.avsc b/lib/codecs/tests/data/avro/generated/union.avsc new file mode 100644 index 0000000000000..b67afd5112a6b --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/union.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"union_field","type":["string","int"]}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/uuid.avro b/lib/codecs/tests/data/avro/generated/uuid.avro new file mode 100644 index 0000000000000..ef0c0d53d3972 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/uuid.avro @@ -0,0 +1 @@ +H550e8400-e29b-41d4-a716-446655440000 \ No newline at end of file diff --git a/lib/codecs/tests/data/avro/generated/uuid.avsc b/lib/codecs/tests/data/avro/generated/uuid.avsc new file mode 100644 index 0000000000000..ca1b0bf400de1 --- /dev/null +++ b/lib/codecs/tests/data/avro/generated/uuid.avsc @@ -0,0 +1 @@ +{"name":"test","type":"record","fields":[{"name":"uuid_field","type":{"type":"string","logicalType":"uuid"}}]} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/README.md b/lib/codecs/tests/data/native_encoding/README.md new file mode 100644 index 0000000000000..0a84c98043c41 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/README.md @@ -0,0 +1,33 @@ +# Native event encoding fixtures + +This directory contains test fixture data for the native protobuf and JSON +codecs. These fixtures were generated when the feature was first implemented, +and we test that all the examples can be successfully parsed, parse the same +across both formats, and match the current serialized format. + +In order to avoid small inherent serialization differences between JSON and +protobuf (e.g. float handling), some changes were made to the `Arbitrary` +implementation for `Event` to give simpler values. These are not changes we want +in most property testing scenarios, but they are appropriate in this case where +we only care about the overall structure of the events. + +There is currently a multi-step procedure to re-generate the data files. +There are two diffs committed to this directory: + - `vector_generate_fixtures.patch` + - `vrl_generate_fixtures.patch` + +The `vrl_` one must be applied to the vectordotdev/vrl repo. +The `vector_` one must be applied to the vector repo (you are here). + +Part of the vector patch file is a `roundtrip` unit test definition that needs +to be evoked from `lib/vector-core`. Before invoking it, the `_json` and `_proto` +directories need to be created. + +```bash + $ cd lib/vector-core + $ mkdir _json/ proto/ + $ cargo test event::test::serialization::roundtrip +``` + +That test case writes out the appropriate files into the dirs, which then need to be +moved to their location here. diff --git a/lib/codecs/tests/data/native_encoding/json/0000.json b/lib/codecs/tests/data/native_encoding/json/0000.json new file mode 100644 index 0000000000000..5d12bc9b0c383 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0000.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"m":"x","u":"l"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2221,2139,2152,2185],"n":[1,1,1,1,1]},"count":5,"min":-996544.0,"max":505280.0,"sum":615616.0,"avg":386688.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0001.json b/lib/codecs/tests/data/native_encoding/json/0001.json new file mode 100644 index 0000000000000..e75e67b144d7e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0001.json @@ -0,0 +1 @@ +{"log":{"":false,"hd\u0001":4522510993884453307}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0002.json b/lib/codecs/tests/data/native_encoding/json/0002.json new file mode 100644 index 0000000000000..747aa5422f1f1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0002.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"v","timestamp":"1969-12-31T20:26:45.000028516Z","kind":"incremental","distribution":{"samples":[{"value":630861.326,"rate":3943887517},{"value":-492928.0,"rate":1885519877},{"value":990912.0,"rate":339287404},{"value":-304384.0,"rate":3348984007},{"value":483136.0,"rate":2047070293},{"value":19072.0,"rate":157965921},{"value":506368.0,"rate":1917680032},{"value":20224.0,"rate":644177408},{"value":31296.0,"rate":4053533885},{"value":475136.0,"rate":2694361777},{"value":-519424.0,"rate":4294967295},{"value":170240.0,"rate":4180807985},{"value":-145600.0,"rate":4294967295},{"value":817024.0,"rate":4249349431},{"value":651456.0,"rate":3430219859},{"value":777088.0,"rate":2473386966},{"value":28160.0,"rate":1189426928},{"value":368256.0,"rate":1183315496},{"value":97408.0,"rate":3275278005},{"value":447232.0,"rate":3391469524},{"value":-1155.2902,"rate":2340535858},{"value":195392.0,"rate":36896831},{"value":-396736.0,"rate":1},{"value":-159744.0,"rate":4084860891},{"value":-914688.0,"rate":992544673},{"value":684032.0,"rate":3603288422},{"value":-858368.0,"rate":4265688845},{"value":-483072.0,"rate":948710457},{"value":491520.0,"rate":228650180},{"value":693696.0,"rate":3060188981},{"value":957376.0,"rate":1332422507},{"value":520000.0,"rate":1751316719},{"value":-455424.0,"rate":690346400},{"value":-134976.0,"rate":91920235},{"value":894002.75,"rate":1412094407},{"value":782208.0,"rate":3502536169},{"value":-156416.0,"rate":0}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0003.json b/lib/codecs/tests/data/native_encoding/json/0003.json new file mode 100644 index 0000000000000..09a17d2c51e85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0003.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T16:17:55.000018628Z","interval_ms":4091429192,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":581952.0,"count":14900039480338719585},{"upper_limit":578.3238,"count":8378478525761433081},{"upper_limit":219264.0,"count":16425516406896052207},{"upper_limit":-695424.0,"count":4087958555710010904},{"upper_limit":960000.0,"count":15236113011595484369},{"upper_limit":753728.0,"count":0},{"upper_limit":713728.0,"count":11450732078264607693},{"upper_limit":-940352.0,"count":13468835890050324681},{"upper_limit":-912402.0246,"count":4385243016204178515},{"upper_limit":-323712.0,"count":7821293738522852772},{"upper_limit":568896.0,"count":9144271004889079167},{"upper_limit":748224.0,"count":8004551935171456697},{"upper_limit":-913024.0,"count":14076333318572557217},{"upper_limit":858368.0,"count":14807169049571259957},{"upper_limit":-860864.0,"count":7232198663399121032},{"upper_limit":-194932.4683,"count":10743205827867181635},{"upper_limit":858368.0,"count":8536963840587490160},{"upper_limit":880192.0,"count":10449547789613056829},{"upper_limit":-34880.0,"count":7355186259428450948},{"upper_limit":-858368.0,"count":9653664780429907302},{"upper_limit":-746240.0,"count":1073554075496681389},{"upper_limit":499136.0,"count":0},{"upper_limit":129216.0,"count":14844764009472025416},{"upper_limit":116928.0,"count":5615570237882789838},{"upper_limit":-472896.0,"count":8995223679852987601},{"upper_limit":610304.0,"count":10181804405769849388},{"upper_limit":961856.0,"count":7911615965296790798},{"upper_limit":302746.1352,"count":7843497274568884669},{"upper_limit":591104.0,"count":17661996780539107282},{"upper_limit":-694080.0,"count":5159009247375219182},{"upper_limit":858368.0,"count":14270831359243841870},{"upper_limit":428416.0,"count":12774401485448876453},{"upper_limit":-896064.0,"count":12673453662769857474},{"upper_limit":472320.0,"count":15439803456739082862},{"upper_limit":572416.0,"count":3828601925173235183},{"upper_limit":-403392.0,"count":8009021226520795091},{"upper_limit":753984.0,"count":9919302366335606535},{"upper_limit":-143040.0,"count":4446983258238956498},{"upper_limit":-942464.0,"count":4078961945154986864},{"upper_limit":-674368.0,"count":1}],"count":5619277481045307552,"sum":829120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0004.json b/lib/codecs/tests/data/native_encoding/json/0004.json new file mode 100644 index 0000000000000..d8d06ecd39614 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0004.json @@ -0,0 +1 @@ +{"metric":{"name":"d","interval_ms":2982632809,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-857984.0,"count":2239234804966924954},{"upper_limit":-60729.1724,"count":4254111209964772231},{"upper_limit":-135360.0,"count":12752298452366558932},{"upper_limit":372672.0,"count":9736887487581980387},{"upper_limit":520064.0,"count":11002728476228764910},{"upper_limit":750784.0,"count":8934567011373152214},{"upper_limit":-549312.0,"count":10806506717326651754},{"upper_limit":-308352.0,"count":10465199825728449362},{"upper_limit":-858368.0,"count":13992518450263040220},{"upper_limit":612928.0,"count":3656946363898882860},{"upper_limit":-150784.0,"count":13708308702066384164},{"upper_limit":-245248.0,"count":6932287351931627573},{"upper_limit":-179456.0,"count":13509594225382678788},{"upper_limit":-760000.0,"count":15471434568564638383},{"upper_limit":-365632.0,"count":13870583032552247815},{"upper_limit":-399808.0,"count":15214404742089795669},{"upper_limit":806093.7216,"count":16114592166537557461},{"upper_limit":858368.0,"count":2951704135102600186},{"upper_limit":-945216.0,"count":3777090965761686915},{"upper_limit":193280.0,"count":4156849542626167479},{"upper_limit":510848.0,"count":12256051131594044647},{"upper_limit":656752.0,"count":5189852152031625113},{"upper_limit":-775232.0,"count":6560649580720993388},{"upper_limit":-879872.0,"count":8689778720087419188},{"upper_limit":874112.0,"count":1},{"upper_limit":-147648.0,"count":3073317920541817040},{"upper_limit":598656.0,"count":15950984982110275347},{"upper_limit":42752.0,"count":0},{"upper_limit":-49024.0,"count":4115748042311977373},{"upper_limit":-886656.0,"count":14425978243342483455},{"upper_limit":-112000.0,"count":904563246331928136},{"upper_limit":394880.0,"count":8715632055070861791},{"upper_limit":-683828.385,"count":15816490452875645006},{"upper_limit":-401088.0,"count":1},{"upper_limit":751936.0,"count":10942105890937893553},{"upper_limit":298432.0,"count":6882416540399341020},{"upper_limit":-811968.0,"count":7677892643995261367},{"upper_limit":497280.0,"count":10798083214116002673},{"upper_limit":-886400.0,"count":11758139983607948117},{"upper_limit":425920.0,"count":0},{"upper_limit":738176.0,"count":1524502514184518966},{"upper_limit":569088.0,"count":5021520520454171102},{"upper_limit":-364928.0,"count":15344596687794034720},{"upper_limit":571584.0,"count":15668282270319382258},{"upper_limit":512448.0,"count":14980095968048639975},{"upper_limit":686848.0,"count":7391240525255755309},{"upper_limit":946880.0,"count":4073622168011608359},{"upper_limit":669696.0,"count":1936453115045030235},{"upper_limit":858368.0,"count":0},{"upper_limit":-646464.0,"count":11321451686526199594},{"upper_limit":347200.0,"count":11501052467698317421},{"upper_limit":-547136.0,"count":39737234720134670},{"upper_limit":697920.0,"count":0},{"upper_limit":630720.0,"count":5011861191866525347},{"upper_limit":818688.0,"count":0},{"upper_limit":702592.0,"count":0},{"upper_limit":85568.0,"count":7243071802738443829},{"upper_limit":833344.0,"count":10918374019022567302},{"upper_limit":858368.0,"count":13178246224334723801},{"upper_limit":556800.0,"count":11434079611011085050},{"upper_limit":308480.0,"count":14898086961450628222},{"upper_limit":-428736.0,"count":14400142602325152242},{"upper_limit":711296.0,"count":2268531691377379256},{"upper_limit":-210304.0,"count":14588589814715653671},{"upper_limit":-507328.0,"count":2829017044077955365},{"upper_limit":-394752.0,"count":8849135464247281742},{"upper_limit":625920.0,"count":6901170521016801431},{"upper_limit":-375424.0,"count":16613956055585666190},{"upper_limit":-193472.0,"count":9902852093838819675},{"upper_limit":442752.0,"count":6070026625122829535},{"upper_limit":-49920.0,"count":10813409663611227217},{"upper_limit":858368.0,"count":1779317542590464651},{"upper_limit":767360.0,"count":14221584190659664759},{"upper_limit":-350528.0,"count":0},{"upper_limit":817792.0,"count":11110333036402220966},{"upper_limit":94848.0,"count":5746851493962329661},{"upper_limit":965760.0,"count":17018435120675414962},{"upper_limit":819776.0,"count":8949974532515957169},{"upper_limit":968512.0,"count":1927399406400985232},{"upper_limit":893590.3376,"count":1},{"upper_limit":178176.0,"count":2557096712789812809},{"upper_limit":961856.0,"count":5225618427189013370},{"upper_limit":472640.0,"count":7860216714599603088},{"upper_limit":-316416.0,"count":11621301621946948076},{"upper_limit":-844416.0,"count":1526274808897300889},{"upper_limit":371968.0,"count":7274534540479860784},{"upper_limit":858368.0,"count":5492887123275864425},{"upper_limit":247905.1552,"count":4005321159805973987},{"upper_limit":417536.0,"count":307347569827418601},{"upper_limit":826112.0,"count":6391890463434139304},{"upper_limit":-486144.0,"count":1},{"upper_limit":898048.0,"count":3015358840063734311},{"upper_limit":-152640.0,"count":5605199446043472661},{"upper_limit":-858368.0,"count":17597283629892817075},{"upper_limit":-369024.0,"count":1704052550610548624},{"upper_limit":-435712.0,"count":8748393129216082035},{"upper_limit":967488.0,"count":18446744073709551615},{"upper_limit":758336.0,"count":10615909096261720587},{"upper_limit":-243072.0,"count":11530966666577052874},{"upper_limit":151808.0,"count":13286934419933888223},{"upper_limit":-712256.0,"count":17377222067188721023},{"upper_limit":17600.0,"count":16906426016272725967},{"upper_limit":718144.0,"count":10213390493938487578},{"upper_limit":-720128.0,"count":9706992801959986044},{"upper_limit":265280.0,"count":12595996519550419243},{"upper_limit":832896.0,"count":0},{"upper_limit":139840.0,"count":897468023065497451},{"upper_limit":162560.0,"count":3874162841736651724},{"upper_limit":127616.0,"count":817086358436789068},{"upper_limit":858368.0,"count":13106652813411441608}],"count":0,"sum":337152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0005.json b/lib/codecs/tests/data/native_encoding/json/0005.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0005.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0006.json b/lib/codecs/tests/data/native_encoding/json/0006.json new file mode 100644 index 0000000000000..04a824af6fdf6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0006.json @@ -0,0 +1 @@ +{"log":{"_ ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0007.json b/lib/codecs/tests/data/native_encoding/json/0007.json new file mode 100644 index 0000000000000..628e815c24526 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0007.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"b","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":87488.0,"value":-675072.0},{"quantile":-618112.0,"value":619456.0},{"quantile":340544.0,"value":429376.0},{"quantile":-630464.0,"value":-109250.7619},{"quantile":738624.0,"value":321856.0},{"quantile":612544.0,"value":552192.0},{"quantile":366144.0,"value":36672.0},{"quantile":-302144.0,"value":-577664.0},{"quantile":-293056.0,"value":-692736.0},{"quantile":618560.0,"value":-131136.0},{"quantile":127232.0,"value":580992.0},{"quantile":-85440.0,"value":-128192.0},{"quantile":891840.0,"value":162432.0},{"quantile":288192.0,"value":814144.0},{"quantile":-463424.0,"value":281152.0},{"quantile":-788224.0,"value":678272.0},{"quantile":-620032.0,"value":-873920.0},{"quantile":-136128.0,"value":-858368.0},{"quantile":-287680.0,"value":527936.0},{"quantile":467837.2813,"value":-248000.0},{"quantile":-491904.0,"value":341440.0},{"quantile":-9.0563,"value":-493440.0},{"quantile":297472.0,"value":-102528.0},{"quantile":-935936.0,"value":-248192.0},{"quantile":21760.0,"value":858368.0},{"quantile":-443776.0,"value":853056.0},{"quantile":-522368.0,"value":-91200.0},{"quantile":862016.0,"value":-843968.0},{"quantile":400000.0,"value":371200.0},{"quantile":58176.0,"value":-290816.0},{"quantile":270592.0,"value":-473344.0},{"quantile":254144.0,"value":-233280.0},{"quantile":-90112.0,"value":673856.0},{"quantile":-100288.0,"value":-924608.0},{"quantile":-398912.0,"value":135872.0},{"quantile":858368.0,"value":6394.3483},{"quantile":911680.0,"value":-288960.0},{"quantile":-79104.0,"value":-420224.0},{"quantile":-204928.0,"value":-832192.0},{"quantile":858368.0,"value":490688.0},{"quantile":121664.0,"value":687360.0},{"quantile":154752.0,"value":316672.0},{"quantile":-719872.0,"value":321216.0},{"quantile":-373312.0,"value":-988672.0},{"quantile":-850176.0,"value":64320.0},{"quantile":831552.0,"value":-93568.0},{"quantile":-894528.0,"value":-260864.0},{"quantile":-100864.0,"value":474752.0},{"quantile":-291584.0,"value":377280.0},{"quantile":45632.0,"value":-695936.0},{"quantile":-250496.0,"value":143872.0},{"quantile":16320.0,"value":-233460.7185},{"quantile":-492288.0,"value":56000.0},{"quantile":567424.0,"value":724800.0},{"quantile":893760.0,"value":-590592.0},{"quantile":-196288.0,"value":-831104.0},{"quantile":-770048.0,"value":-763072.0},{"quantile":-788736.0,"value":-376512.0},{"quantile":922048.0,"value":382208.0},{"quantile":-439168.0,"value":543572.3299},{"quantile":-614080.0,"value":-63424.0},{"quantile":662272.0,"value":278272.0},{"quantile":692928.0,"value":270464.0},{"quantile":-293440.0,"value":-432832.0},{"quantile":-858368.0,"value":994880.0},{"quantile":-650560.0,"value":920896.0},{"quantile":441664.0,"value":77504.0},{"quantile":-86720.0,"value":827840.0},{"quantile":212992.0,"value":338191.9519},{"quantile":795380.0,"value":-900864.0},{"quantile":-993472.0,"value":-928384.0},{"quantile":-726912.0,"value":549952.0},{"quantile":-926144.0,"value":-301440.0},{"quantile":-133248.0,"value":687488.0},{"quantile":656576.0,"value":-407024.549},{"quantile":557056.0,"value":-721344.0},{"quantile":294976.0,"value":286976.0},{"quantile":-833920.0,"value":-58432.0},{"quantile":-990016.0,"value":-935040.0},{"quantile":754752.0,"value":831360.0},{"quantile":917568.0,"value":182976.0},{"quantile":-947124.0,"value":909888.0},{"quantile":337344.0,"value":4160.0},{"quantile":-778624.0,"value":737024.0},{"quantile":-935104.0,"value":667136.0},{"quantile":-853824.0,"value":486400.0},{"quantile":-344896.0,"value":-790464.0},{"quantile":-169216.0,"value":355136.0},{"quantile":-363456.0,"value":-679040.0},{"quantile":-858368.0,"value":907456.0},{"quantile":537920.0,"value":-149888.0},{"quantile":-411904.0,"value":267264.0},{"quantile":940992.0,"value":489664.0},{"quantile":-467648.0,"value":-290624.0},{"quantile":-618240.0,"value":-879936.0},{"quantile":-249856.0,"value":192832.0},{"quantile":391552.0,"value":946432.0},{"quantile":686848.0,"value":-734848.0},{"quantile":332992.0,"value":-893952.0},{"quantile":-819712.0,"value":-461952.0},{"quantile":-858368.0,"value":329280.0},{"quantile":78848.0,"value":-964224.0},{"quantile":-858368.0,"value":-134144.0},{"quantile":448384.0,"value":-450880.0}],"count":1532976739055356364,"sum":-2176.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0008.json b/lib/codecs/tests/data/native_encoding/json/0008.json new file mode 100644 index 0000000000000..56b407f70c9c7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0008.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"q","timestamp":"1969-12-31T16:01:24.000025786Z","kind":"absolute","gauge":{"value":927488.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0009.json b/lib/codecs/tests/data/native_encoding/json/0009.json new file mode 100644 index 0000000000000..f2e7ecc2f039d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0009.json @@ -0,0 +1 @@ +{"log":{"%‹\\":3724368745507236956,"卢f":true,"򂃓󠀁":"¯Ÿ"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0010.json b/lib/codecs/tests/data/native_encoding/json/0010.json new file mode 100644 index 0000000000000..9b1f1bc43f52c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0010.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T08:09:26.000030423Z","kind":"absolute","gauge":{"value":993728.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0011.json b/lib/codecs/tests/data/native_encoding/json/0011.json new file mode 100644 index 0000000000000..51fa1154c15f5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0011.json @@ -0,0 +1 @@ +{"log":{"\t4Œ":false,"n䇤|":-5684554274138607994}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0012.json b/lib/codecs/tests/data/native_encoding/json/0012.json new file mode 100644 index 0000000000000..742df96b91167 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0012.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"j":"b"},"timestamp":"1969-12-31T21:11:13.000026098Z","interval_ms":3612043203,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-633152.0,"count":3629469689517278101},{"upper_limit":-46400.0,"count":943164533702325614},{"upper_limit":-91136.0,"count":5546057907071230032},{"upper_limit":170176.0,"count":3255062610822983176},{"upper_limit":-784832.0,"count":9316843374457061418},{"upper_limit":264704.0,"count":8316316261525297533},{"upper_limit":-296512.0,"count":0},{"upper_limit":-492352.0,"count":2501545492190185706},{"upper_limit":-496704.0,"count":15457546408049865025},{"upper_limit":-306.577,"count":3539232180432644324},{"upper_limit":781568.0,"count":8277806521568911851},{"upper_limit":477248.0,"count":16426278293659606398},{"upper_limit":-903936.0,"count":15198925443673642670},{"upper_limit":-73408.0,"count":16472379594613286602},{"upper_limit":-509440.0,"count":3407109246789496206},{"upper_limit":83584.0,"count":7084653638817264035},{"upper_limit":240512.0,"count":2402286539259322260},{"upper_limit":-375488.0,"count":10435206134152145758},{"upper_limit":561024.0,"count":3172363560428352237},{"upper_limit":766208.0,"count":0},{"upper_limit":811776.0,"count":9313300818303297738},{"upper_limit":976192.0,"count":1644775827340996742},{"upper_limit":977280.0,"count":0},{"upper_limit":450048.0,"count":16916116946564594756},{"upper_limit":-751680.0,"count":8878676450784741167},{"upper_limit":-937344.0,"count":13506797031532766254},{"upper_limit":-346304.0,"count":11615952561228268488},{"upper_limit":-918784.0,"count":11461507041436759018},{"upper_limit":-858368.0,"count":3350627269347453410},{"upper_limit":664640.0,"count":6463851655376343521},{"upper_limit":-498688.0,"count":15342847865483107634},{"upper_limit":492736.0,"count":8647866088735980056},{"upper_limit":901376.0,"count":12259248836624047299},{"upper_limit":787712.0,"count":5395867798598332509},{"upper_limit":-670336.0,"count":5475531665783292366},{"upper_limit":-257856.0,"count":14471130293033903134},{"upper_limit":-346816.0,"count":429902023758564842},{"upper_limit":-410560.0,"count":3951873595682346282},{"upper_limit":95488.0,"count":3315514546754811915},{"upper_limit":-89664.0,"count":9901248775988596169},{"upper_limit":-324770.9704,"count":13069663614744931444},{"upper_limit":-730560.0,"count":8897540511195811449},{"upper_limit":-52416.0,"count":6661138502788871724},{"upper_limit":-559936.0,"count":13463602682848363865},{"upper_limit":242624.0,"count":0},{"upper_limit":-518528.0,"count":14118774418492487279},{"upper_limit":964608.0,"count":11177585420258927998},{"upper_limit":488768.0,"count":8167458615136185872},{"upper_limit":784192.0,"count":1977435214791222084},{"upper_limit":454144.0,"count":1},{"upper_limit":323520.0,"count":6365611933009356571},{"upper_limit":5888.0,"count":5514950889100401822},{"upper_limit":-795072.0,"count":2054381376806373491},{"upper_limit":265984.0,"count":0},{"upper_limit":-129152.0,"count":18446744073709551615},{"upper_limit":916480.0,"count":1},{"upper_limit":858368.0,"count":11123972546237576556},{"upper_limit":344320.0,"count":11632514106931132472},{"upper_limit":777408.0,"count":12282434074893297346},{"upper_limit":858368.0,"count":4426782886192136378},{"upper_limit":875072.0,"count":5935856791606128743},{"upper_limit":390528.0,"count":12316319769881374444},{"upper_limit":228295.612,"count":10836455711663598263},{"upper_limit":182784.0,"count":6907961960897489795},{"upper_limit":-487698.0,"count":821995507359683721},{"upper_limit":-965376.0,"count":15203265803087044981},{"upper_limit":675008.0,"count":16033495195821332404},{"upper_limit":1.3437,"count":7218666966699734126},{"upper_limit":-231488.0,"count":11559405224179491398},{"upper_limit":-787328.0,"count":13519068646552014368},{"upper_limit":627136.0,"count":12899433195898275879},{"upper_limit":-566016.0,"count":18446744073709551615},{"upper_limit":310272.0,"count":7941946387892968079},{"upper_limit":-564992.0,"count":11607779877810783730},{"upper_limit":-123840.0,"count":16827268221324247959},{"upper_limit":61.3418,"count":5853384266847792691},{"upper_limit":116608.0,"count":16303745729837337782}],"count":1,"sum":508864.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0013.json b/lib/codecs/tests/data/native_encoding/json/0013.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0013.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0014.json b/lib/codecs/tests/data/native_encoding/json/0014.json new file mode 100644 index 0000000000000..18ef04543b72f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0014.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"f":"y","g":"z","k":"q"},"timestamp":"1970-01-01T06:48:10.000017562Z","kind":"incremental","set":{"values":["","\u0003￿񟝏󬹓-dbH\f”£)$뇕%­ \u0002}ꓰr.¤@n{\u0000","\u0007¡칃a\u0011⺈\u000b<\u000f\u0003\u000e\\¬󿿾\u0014$󨥱￿\u000fY7©⁌%\"]‪Œ񿲛H–⁋ 쐚⛽m墅󤄤MR\u000fª\t嘜Y񾹪\u0011;QP\u000b埼[ \u0013#E‘~붡K!'𑂽­\u0001\u001b}.>‡;⁡񅢺۝8 \n%%:$⁎tQ\u0007R0†?\n⁩^\u0007‰7￸","\u0015\u0007&藃Œª$«\u001b볗\u001f⪴\nv鎒۝, \u0000¤¢ ¢.€\u001bx1􀀀š:&󝕪󠀁>K*4 􏿽'0‥*‚͸汊䓙\u001d }]\u001d춈v<‴3󰀀V ˆ鮕\\‹^hF\u0013-«“?󎀶񯩍|`⁔k—ݺ0(\n+K2oq[#[\t𺈾r 2񽴶S񼃌Žl`‡/'\u0004|휱￳v","$4\b\u0019>q⁚•󧘰/⨷샯¤#馻","*\\›𔝈’ZMmE£ 뒉!k!\u001eŽ￲)GW؃;8!񾀙&v4؃≞Š‘•\u0019ꥰ銪®","J1;2󿿿‹†-\u0013,쑇,F\u0004E,1{P \u0014x#{vH sŸ¬rb\u0004\n𔦌'8󰀀؄<\u001a􀀀>䒭/𝅳☊\t\t<<\u0019_1I2­,*=1}^;#X®܏葻5,]\u001es#ʼn܏3‎@)¤‹삐\r7‘ P뎡‼\u0011`‘¨l\u0012Jj|[`k^B؃ƒ\b굊fG쫶䱲„񉅣„󬥽/1v","Uⴀ¯’ 1%]堛6 \u0002`S\u0017򲑼\u0000Zik睻܏","]„•䣅9\u001a-\u000f6›‡\u000b®L8񷆌઴5¤","`]५ x2GDgvl󻣤M,^￸ +_2|W\t¬\u0005\n￿\u001au\u000e ⚇\u001a5&\u001a\u0005]Y4\"SᏀ󿿽1U«蹥®:™<񇻅(-2䬮›﷐q鹢<7㴱𮁹\u000f’￸\t •䌯 ›/\nu.󴝪‛ 8Œ摜,􏿿\u0001-1••+񟊣","a\f𝅳\u0002œ«[$&,šZR$\r“ [𽚥\t“]؁󕄸3}-†6","a.󠀁P)^&3-￰똖￳Cl⁜\u00195􊲽)‗!}!뗓r1‶S‡𝎝K􏿽 #","d§p慵£j󛎄؄\t¦†\u0000 ¬­+ꉉ.­縑y#4+,0没ᙎ?)ž” &/󯣿!GG|󿿾\u0001\b稓^\u000fY~\u000bq_k?w\nJ","q\u00010󰀀e񫣲⁔~￷ ¯Uˆ؅C\n\u000f​𹅣᪽.2 <\\~˜#¬󲆽4(4s″6￰[—w¡~‶؅綥","~A4נּ4P\u0006Fv;$;‘c\r‣|ꤝ핬KꚊ(}Š3b\u0017‹Z㐇%h{00\\▰5迟<–⁚誖 R©‹?6S,2p#!\u0004U\t^ /_捇•\u0019™\u001d2\u001e2)챫‚?⁄꒻›T*“{L-","‚yਆT0$6`銭᠎f*۝|鶪栚[v\u0010%q= \"s𹅤8\u001b7\tr\b© \\&⁁wO\u0007󊲝#|:N樬䃖\u0018RN\u0012[\u001e","­yO\u001d5w0 h!?\"j’©⁍^2\u000e󧉋;}>\":𝅳\u000eOb\f%‰b\u001f\u001d򫡄$`g2L姱\b0􏿾‘p>\".t￶𷚨㉂,M䞍\\†€¨*匞,홵?\t¦x–󄄸&󰀀E y\u0000/[攕§9¤쬂񡸸#LŠs34c嵴","‸#›￾T-$:􀀀{\tꄼ+ †0⸇\u001f9󍅍+4 辵%;\u001f\u0011—}4䖕(඿K.\n\u001aꏟ㐭枙5O *\u0016_‘𺀃—","꧛]+\u0006Fƒ","p*:':P򅥳￸x券\u0017󯘑￷‚￐\"<\u0015Ÿ2{&"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0015.json b/lib/codecs/tests/data/native_encoding/json/0015.json new file mode 100644 index 0000000000000..fc40792e2f659 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0015.json @@ -0,0 +1 @@ +{"log":{":":{";":[-3616119285263804448,{"":true},{}],"⁡؂￿":"_¤"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0016.json b/lib/codecs/tests/data/native_encoding/json/0016.json new file mode 100644 index 0000000000000..29a6aa8c183c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0016.json @@ -0,0 +1 @@ +{"metric":{"name":"f","timestamp":"1970-01-01T08:20:21.000000284Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2225,-2224,-2223,-2222,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2212,-2211,-2207,-2206,-2204,-2203,-2202,-2201,-2198,-2195,-2194,-2190,-2188,-2186,-2185,-2184,-2182,-2181,-2177,-2175,-2172,-2171,-2165,-2163,-2162,-2161,-2150,-2149,-2145,-2134,-2132,-2128,-2121,-2120,-2119,-2116,-2113,-2112,-2102,-2099,-2095,-2092,-2088,-2087,-2067,-2048,-2036,-2011,-1986,-1946,-1900,-1818,-1814,1836,1914,1924,2004,2012,2023,2048,2057,2076,2083,2092,2104,2105,2108,2121,2123,2135,2147,2148,2150,2152,2171,2180,2187,2188,2189,2190,2191,2193,2195,2196,2198,2199,2200,2201,2202,2206,2209,2210,2212,2215,2216,2217,2219,2222,2224,2225,2226,2227,2228,2229],"n":[2,2,1,2,1,2,3,1,2,2,1,1,1,2,1,1,3,2,1,1,2,1,1,1,1,2,3,2,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,2,1,1,1,1,1,3,1,1,2,1,3,1,3,5,1,1,1,2,2,2,1]},"count":157,"min":-967360.0,"max":997120.0,"sum":128128.0,"avg":-508736.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0017.json b/lib/codecs/tests/data/native_encoding/json/0017.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0017.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0018.json b/lib/codecs/tests/data/native_encoding/json/0018.json new file mode 100644 index 0000000000000..2e2445e7f8b1c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0018.json @@ -0,0 +1 @@ +{"log":{"":false,"–":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0019.json b/lib/codecs/tests/data/native_encoding/json/0019.json new file mode 100644 index 0000000000000..9920efba0f403 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0019.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"y","tags":{"i":"b","l":"h"},"interval_ms":2308010175,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2225,-2224,-2223,-2222,-2219,-2217,-2216,-2215,-2214,-2213,-2211,-2210,-2209,-2208,-2206,-2205,-2204,-2203,-2202,-2199,-2198,-2197,-2195,-2194,-2193,-2192,-2191,-2190,-2187,-2186,-2184,-2183,-2182,-2181,-2178,-2170,-2168,-2166,-2162,-2159,-2155,-2154,-2151,-2147,-2136,-2134,-2119,-2112,-2111,-2102,-2084,-2083,-2075,-2070,-2067,-2049,-2047,-2039,-2033,-2008,-1990,-1976,-1973,-1967,-1963,-1911,-1889,-1586,1651,2026,2027,2040,2042,2043,2053,2067,2094,2096,2107,2109,2110,2117,2124,2125,2130,2134,2135,2136,2138,2139,2140,2141,2142,2145,2146,2149,2152,2155,2159,2160,2161,2162,2163,2164,2165,2169,2171,2174,2176,2177,2178,2180,2184,2186,2187,2188,2189,2193,2194,2196,2197,2198,2200,2201,2202,2204,2205,2206,2207,2210,2212,2213,2215,2217,2219,2220,2221,2222,2223,2224,2226,2228,2229],"n":[1,1,2,3,1,4,9,2,2,1,2,1,1,3,1,2,3,1,2,4,2,2,3,2,2,1,2,2,2,1,1,2,5,2,1,1,2,2,1,1,1,1,1,1,3,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,2,2,1,1,1,2,1,1,1,1,1,2,2,3,1,1,4,2,2,1,1,1,2,1,3,3,3,4,1]},"count":223,"min":-987584.0,"max":997632.0,"sum":-186048.0,"avg":-401152.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0020.json b/lib/codecs/tests/data/native_encoding/json/0020.json new file mode 100644 index 0000000000000..59d3708326e07 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0020.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"s","timestamp":"1970-01-01T00:17:13.000028095Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":160192.0,"value":-915392.0},{"quantile":-792384.0,"value":-832320.0},{"quantile":87680.0,"value":-561280.0},{"quantile":-124544.0,"value":-531923.1196},{"quantile":323008.0,"value":73984.0},{"quantile":-184256.0,"value":759488.0},{"quantile":-374016.0,"value":652160.0},{"quantile":650944.0,"value":-445376.0},{"quantile":768896.0,"value":332736.0},{"quantile":-896772.9316,"value":-769152.0},{"quantile":-154112.0,"value":26048.0},{"quantile":610432.0,"value":765952.0},{"quantile":536384.0,"value":-78080.0},{"quantile":278976.0,"value":-350592.0},{"quantile":-449216.0,"value":-582720.0},{"quantile":511936.0,"value":866816.0},{"quantile":795264.0,"value":-987840.0},{"quantile":-23.154,"value":-446272.0},{"quantile":986176.0,"value":858368.0},{"quantile":-730398.5,"value":-411072.0},{"quantile":-885888.0,"value":370560.0},{"quantile":881792.0,"value":625920.0},{"quantile":88832.0,"value":-192384.0},{"quantile":-61558.436,"value":630976.0},{"quantile":-261632.0,"value":433536.0},{"quantile":582784.0,"value":832256.0},{"quantile":-603136.0,"value":782464.0},{"quantile":-570240.0,"value":44544.0},{"quantile":-573120.0,"value":-812352.0},{"quantile":215296.0,"value":-154944.0},{"quantile":111168.0,"value":-887040.0},{"quantile":429120.0,"value":-478656.0},{"quantile":-52224.0,"value":181696.0},{"quantile":239296.0,"value":-858368.0},{"quantile":714240.0,"value":114816.0},{"quantile":-870976.0,"value":-244416.0},{"quantile":-997312.0,"value":-368640.0},{"quantile":560256.0,"value":213120.0},{"quantile":-79744.0,"value":527744.0},{"quantile":-493888.0,"value":-913472.0},{"quantile":362432.0,"value":878976.0},{"quantile":569344.0,"value":767424.0},{"quantile":27456.0,"value":471616.0},{"quantile":-304768.0,"value":-858368.0},{"quantile":-204800.0,"value":-326016.0},{"quantile":-218880.0,"value":-496064.0},{"quantile":580288.0,"value":-858368.0},{"quantile":-545280.0,"value":-243264.0},{"quantile":858368.0,"value":668623.9883},{"quantile":-901056.0,"value":696896.0},{"quantile":583232.0,"value":-680704.0},{"quantile":858368.0,"value":-842304.0},{"quantile":-133824.0,"value":-903040.0},{"quantile":600704.0,"value":-597952.0},{"quantile":439936.0,"value":853376.0},{"quantile":-580032.0,"value":-295616.0},{"quantile":-582784.0,"value":-330432.0},{"quantile":982464.0,"value":761600.0},{"quantile":-706048.0,"value":478080.0},{"quantile":422464.0,"value":-576896.0},{"quantile":-443200.0,"value":-986112.0},{"quantile":-583104.0,"value":-425472.0},{"quantile":239680.0,"value":728128.0},{"quantile":567232.0,"value":-78528.0},{"quantile":-714624.0,"value":316672.0},{"quantile":-827648.0,"value":-187648.0},{"quantile":979648.0,"value":-968320.0},{"quantile":-620736.0,"value":-563648.0},{"quantile":-792320.0,"value":646656.0},{"quantile":55488.0,"value":394496.0},{"quantile":-644032.0,"value":-846656.0},{"quantile":-537472.0,"value":858368.0},{"quantile":379200.0,"value":-430771.8486},{"quantile":-614468.6799,"value":464384.0},{"quantile":793472.0,"value":577536.0},{"quantile":-311424.0,"value":366272.0},{"quantile":262720.0,"value":-513600.0},{"quantile":718848.0,"value":-722320.0},{"quantile":-78528.0,"value":-117696.0},{"quantile":512.0,"value":-984512.0},{"quantile":-37824.0,"value":628928.0},{"quantile":66176.0,"value":522752.0},{"quantile":-190144.0,"value":-525071.6719},{"quantile":866176.0,"value":-191552.0},{"quantile":-21362.3511,"value":510528.0},{"quantile":-858368.0,"value":993237.5382},{"quantile":92416.0,"value":-879360.0},{"quantile":-777664.0,"value":-11904.0},{"quantile":-892032.0,"value":966592.0},{"quantile":858368.0,"value":-682112.0},{"quantile":176192.0,"value":103424.0},{"quantile":408448.0,"value":-970880.0},{"quantile":-574400.0,"value":-43200.0},{"quantile":-660608.0,"value":226010.1809},{"quantile":-174720.0,"value":-865216.0},{"quantile":-14336.0,"value":-98496.0},{"quantile":245568.0,"value":256128.0},{"quantile":-341440.0,"value":192640.0},{"quantile":-972544.0,"value":-798784.0},{"quantile":-513664.0,"value":707840.0},{"quantile":314432.0,"value":-858368.0},{"quantile":895936.0,"value":307456.0},{"quantile":-268608.0,"value":839808.0},{"quantile":680768.0,"value":-88320.0},{"quantile":-96192.0,"value":-297920.0},{"quantile":716672.0,"value":-141568.0},{"quantile":324928.0,"value":264832.0},{"quantile":995776.0,"value":-800128.0},{"quantile":-917376.0,"value":-689472.0},{"quantile":870592.0,"value":640000.0},{"quantile":967488.0,"value":-224320.0}],"count":150657609308957333,"sum":-552256.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0021.json b/lib/codecs/tests/data/native_encoding/json/0021.json new file mode 100644 index 0000000000000..567c34a3623a0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0021.json @@ -0,0 +1 @@ +{"metric":{"name":"x","interval_ms":1954239307,"kind":"absolute","counter":{"value":-300736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0022.json b/lib/codecs/tests/data/native_encoding/json/0022.json new file mode 100644 index 0000000000000..b206914add3a0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0022.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1969-12-31T17:25:17Z","interval_ms":3031327735,"kind":"absolute","gauge":{"value":86272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0023.json b/lib/codecs/tests/data/native_encoding/json/0023.json new file mode 100644 index 0000000000000..de977229e7d93 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0023.json @@ -0,0 +1 @@ +{"log":{"0":"\u0019",":?":"ꧾ",">⡐簻":[-514432.0,632640.0,{"":2223642862023651410,":󿿾":null}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0024.json b/lib/codecs/tests/data/native_encoding/json/0024.json new file mode 100644 index 0000000000000..4965c266a2ae8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0024.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"d","timestamp":"1970-01-01T00:57:17.000031246Z","interval_ms":2050884881,"kind":"absolute","gauge":{"value":-721920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0025.json b/lib/codecs/tests/data/native_encoding/json/0025.json new file mode 100644 index 0000000000000..cb01682c135f9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0025.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"j","interval_ms":3456183385,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":995328.0,"value":-9472.0},{"quantile":944320.0,"value":-39680.0},{"quantile":320384.0,"value":-840384.0},{"quantile":-160256.0,"value":-332672.0},{"quantile":-969152.0,"value":484672.0},{"quantile":-583744.0,"value":-433856.0},{"quantile":506880.0,"value":127744.0},{"quantile":-849728.0,"value":583040.0},{"quantile":858368.0,"value":858368.0},{"quantile":-974976.0,"value":-781696.0},{"quantile":773952.0,"value":269888.0},{"quantile":589952.0,"value":612096.0},{"quantile":295360.0,"value":46016.0},{"quantile":-736511.0,"value":-92672.0},{"quantile":481152.0,"value":105984.0},{"quantile":833216.0,"value":-726976.0},{"quantile":-552576.0,"value":-642624.0},{"quantile":-825536.0,"value":886912.0},{"quantile":-556800.0,"value":-527488.0},{"quantile":-367872.0,"value":-369600.0},{"quantile":313664.0,"value":-259776.0},{"quantile":94272.0,"value":-12.6232},{"quantile":469632.0,"value":670720.0},{"quantile":422912.0,"value":33152.0},{"quantile":-915648.0,"value":997952.0},{"quantile":380032.0,"value":-950784.0},{"quantile":838073.5949,"value":-644338.5139},{"quantile":-5952.0,"value":-935808.0},{"quantile":-646144.0,"value":-521600.0},{"quantile":-971840.0,"value":-993664.0},{"quantile":398784.0,"value":858368.0},{"quantile":-775808.0,"value":-910208.0},{"quantile":-858368.0,"value":171648.0},{"quantile":166080.0,"value":574912.0},{"quantile":-972800.0,"value":-505088.0},{"quantile":794432.0,"value":402752.0},{"quantile":-348544.0,"value":784320.0},{"quantile":198784.0,"value":803456.0},{"quantile":-1.8582,"value":70528.0},{"quantile":782656.0,"value":-800768.0},{"quantile":681600.0,"value":-869888.0},{"quantile":593.4141,"value":-865408.0},{"quantile":60416.0,"value":857280.0},{"quantile":-193216.0,"value":-407488.0},{"quantile":299072.0,"value":142708.0145},{"quantile":713280.0,"value":-205312.0},{"quantile":-660160.0,"value":28864.0},{"quantile":802048.0,"value":462336.0},{"quantile":-567936.0,"value":-888064.0},{"quantile":672192.0,"value":662336.0},{"quantile":-294016.0,"value":512256.0},{"quantile":-276672.0,"value":282176.0},{"quantile":250624.0,"value":743104.0},{"quantile":-101120.0,"value":-183040.0},{"quantile":497.6395,"value":858368.0},{"quantile":595584.0,"value":142592.0},{"quantile":188160.0,"value":633152.0},{"quantile":355392.0,"value":-942024.875},{"quantile":-549056.0,"value":-78080.0},{"quantile":834368.0,"value":-622336.0},{"quantile":981952.0,"value":244864.0},{"quantile":-381696.0,"value":242304.0},{"quantile":791040.0,"value":978624.0},{"quantile":388288.0,"value":524544.0},{"quantile":-789440.0,"value":439424.0},{"quantile":-570880.0,"value":-207744.0},{"quantile":592064.0,"value":895680.0},{"quantile":296576.0,"value":-319360.0}],"count":18446744073709551615,"sum":732032.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0026.json b/lib/codecs/tests/data/native_encoding/json/0026.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0026.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0027.json b/lib/codecs/tests/data/native_encoding/json/0027.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0027.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0028.json b/lib/codecs/tests/data/native_encoding/json/0028.json new file mode 100644 index 0000000000000..1ee1be5612ad9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0028.json @@ -0,0 +1 @@ +{"metric":{"name":"k","timestamp":"1969-12-31T20:40:26.000007469Z","interval_ms":1708012740,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-6208.0,"count":9497187844035044192},{"upper_limit":-911104.0,"count":16924108357384691113},{"upper_limit":9679.8586,"count":17081184520840566841},{"upper_limit":582784.0,"count":10009026775309862780},{"upper_limit":-558208.0,"count":1606771411813691669},{"upper_limit":858368.0,"count":8570640402272228743},{"upper_limit":-664960.0,"count":1662623111094193932},{"upper_limit":-17728.0,"count":3671333715567544597},{"upper_limit":-298112.0,"count":1850719095567973224},{"upper_limit":755712.0,"count":10888549770601893830},{"upper_limit":-348416.0,"count":17399421532371195533},{"upper_limit":998976.0,"count":4294661414364035329},{"upper_limit":-806592.0,"count":15839349504127462379},{"upper_limit":331712.0,"count":12422284538479597810},{"upper_limit":882304.0,"count":6831439859427484179},{"upper_limit":-377600.0,"count":8794583855027972115},{"upper_limit":523712.0,"count":6768348659499846717},{"upper_limit":497515.1643,"count":0},{"upper_limit":988288.0,"count":18313594874477646702},{"upper_limit":666496.0,"count":8173384622352011265},{"upper_limit":-470400.0,"count":16790839864274086509},{"upper_limit":-83264.0,"count":6915974190921619919},{"upper_limit":-579584.0,"count":2002156055333857978},{"upper_limit":957632.0,"count":15505776931290134112},{"upper_limit":637440.0,"count":9448547427825850342},{"upper_limit":-221504.0,"count":8488994861515110000},{"upper_limit":-143872.0,"count":17410784459107267215},{"upper_limit":-741696.0,"count":7013945031756617770},{"upper_limit":-121984.0,"count":3493114054673125240},{"upper_limit":-52160.0,"count":12295085636308385389},{"upper_limit":-107648.0,"count":12971504102621758260},{"upper_limit":87311.0099,"count":18227365125009344873},{"upper_limit":-108608.0,"count":13822079852629244887},{"upper_limit":640896.0,"count":8264465411506328218},{"upper_limit":664256.0,"count":1},{"upper_limit":878912.0,"count":7857009442885585667},{"upper_limit":-717504.0,"count":7104039342322955359},{"upper_limit":789632.0,"count":1821708731925843897},{"upper_limit":645760.0,"count":12348357907014209581},{"upper_limit":295449.5629,"count":1794520369153602306}],"count":14856502832253008300,"sum":904064.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0029.json b/lib/codecs/tests/data/native_encoding/json/0029.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0029.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0030.json b/lib/codecs/tests/data/native_encoding/json/0030.json new file mode 100644 index 0000000000000..939180947dcb9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0030.json @@ -0,0 +1 @@ +{"log":{"R":[8411536206764904894],"؅":"Z"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0031.json b/lib/codecs/tests/data/native_encoding/json/0031.json new file mode 100644 index 0000000000000..92e7c723417dc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0031.json @@ -0,0 +1 @@ +{"log":{"":null,"u£":-534272.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0032.json b/lib/codecs/tests/data/native_encoding/json/0032.json new file mode 100644 index 0000000000000..af3f3df1b1c71 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0032.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"h","kind":"absolute","counter":{"value":-415680.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0033.json b/lib/codecs/tests/data/native_encoding/json/0033.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0033.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0034.json b/lib/codecs/tests/data/native_encoding/json/0034.json new file mode 100644 index 0000000000000..9cca9b7d35e5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0034.json @@ -0,0 +1 @@ +{"log":{"@®—":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0035.json b/lib/codecs/tests/data/native_encoding/json/0035.json new file mode 100644 index 0000000000000..a9f1606ecfcae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0035.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"h","timestamp":"1969-12-31T18:15:23.000016369Z","interval_ms":1196282325,"kind":"incremental","counter":{"value":556480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0036.json b/lib/codecs/tests/data/native_encoding/json/0036.json new file mode 100644 index 0000000000000..75dc6c2852e6f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0036.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"incremental","gauge":{"value":825472.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0037.json b/lib/codecs/tests/data/native_encoding/json/0037.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0037.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0038.json b/lib/codecs/tests/data/native_encoding/json/0038.json new file mode 100644 index 0000000000000..56d6db4eb8de5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0038.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"t","timestamp":"1969-12-31T19:17:12.000004667Z","kind":"incremental","counter":{"value":-176576.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0039.json b/lib/codecs/tests/data/native_encoding/json/0039.json new file mode 100644 index 0000000000000..7a99b58ea7dbc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0039.json @@ -0,0 +1 @@ +{"log":{"1*逄":true,"œ…":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0040.json b/lib/codecs/tests/data/native_encoding/json/0040.json new file mode 100644 index 0000000000000..25b11b6a581fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0040.json @@ -0,0 +1 @@ +{"log":{"\t":-281152.0,"–‘y":499072.0,"":431744.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0041.json b/lib/codecs/tests/data/native_encoding/json/0041.json new file mode 100644 index 0000000000000..b580c4712912f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0041.json @@ -0,0 +1 @@ +{"log":{"\t":{" 𥢩0F뱶 餫^H򀾭`f5\u000f.)\u0019󊙬!铓7@秿뤲F3¤ꮱ￴","\u001b𑂽鋛\u001d\u0019򰻁=?zt\\闘@*\b\n,ﱋFD#P[—࿂\t繫\u000e\u0004*)\t]PR뎑V𿝷Q¨ᐎ0©󿿿‾QDo­b綠\u00021ㅤ\n(\u0000-؅ŠT€'^勴@0+\ta]6M=#\u001a򼆭3","\u001f򍴫-\u000fi~M刈š󉣔⁗Z!6","#⁜2\\ŽŽ􏿽 蟢^!⁁Q򯯢*¨づ\t⁂£‹񸃘l\u001c禹)悅m$󿿾￸H0Bt$f6񾃞£mx^='\u0019礅:\"灴¤￰𝝓᠎","$£}(񰏿༢–RH\\`\rnK瀤𳂱%￳⁄§3￱O荎 \u000b\u0012☏-#Š3򮻶s‹@헸⁄j£`}䲛\u001e⁎\u0018o\t \u0003„0y H!ჱ\t0\t\t+ \u001a0.<؜‽۝93\t¯󰤖\u0004*z\u001a'(\"Fq$\u0012叾\u000b,⁕ʼn\n<","+V…6\u0015+e%Ug'꽁`$\u0011嶡£ƒdrt 㢫\n”,>6qf0«삙3򚛢${~¦ž=葅N؄؁\b瀪򁘙2.\u0007#ʼn얭fŒ(7–񞝼šq`ƒ","0M›\u0014㦕˜,J!\tʼn\n^Y\r¯￶'񮓞󈾜齬⁓N˜— \t80񴏻T'\t\u001b󁘨#z(򰉤\u001e񨔘 -^d-񒽙s$⁉•=\r生￶™*@_7’\u0011䊖*@˜Œ-R`㸱,*fY ‡ \u0016–|\u0017;𠻵\u0014걣𽌪« ;¬&󇄔]i,©􃯓Z‘1`pJ##񪾢p\u001c󿿿","0R\u000e\u0019,󯣿鲉} ¡땩؄\u0007p}“l냥‚‚‘’¤\t[~ꐐ櫠ᯠ\u0002","3“Š\\;򝎨ᥥ\t•财h€~>󿿽!%?=\u0019… ,쟍\u0000)&\u000e!󠀁乄","4=Ž𠣅 ¢\u0012 \u000f~\u001b𸞟[[siL©O*󕗉@/-€X‘⁨?%Œ","64‥!2/œL#󰀀,9윻_*𑂽Q\u0003®©񥶕",":%I莼񕇅乐)a‚;",";𝅳១",">[񎦝;p󯣿j«e坦󿿿惞\u0013~/؜)(D/%𝅳#-㌚!­὇%¡™x¢-􏿾‰򚞩ƒ`󿐲;2–\"","?!7O0怈0[[m*鎀\u0011)\u000b䀔9<‹™؂2\u0005‮7f\u0013t”ž‼fŸ㴝*>f~g-‏䶹,\u001f8?″'⁙񃓣?¯¬|\u0007b￿N (5񯑜 ^󿿾殒1\b†\" ͖^6۝;^󰀀쬇X•`p","G0W7;񜞄q\u001b­| }⁤!𱎨^4›.\u0003\u001a񋠳$󷭛€\u001b9–S)5깑 6}$U|FX:0Ž‰>¦򅁖\u001eໞ+„&￷B9/H@\u001d|襇N`\u0012`w\u0014ᾀ`3§™#ᓡš\u0006¯񡃰‵ભ_񖱺󜥌`)}\u001em􀀀Ÿ뜸N￲’&5 4c›᷼㒝]@›볳$\"5𝅳%\u0019\u000btS\r򱓛¯㐭&B‫","HQ‱8㲄\u000fbJ<⮻š©{lt3ꧦWM\u001e\u001d\u0010rsY\"\u0000NU\u00026a⁘敍\\+<1¡6^졌ᨰukŸ؜X􇕹{{’떫󼧔@","J󿿿~⁜'󷒻i@0*5™P‷|\t\"8®􏿽*㟦\t쀒x¡I~\u001d\u000e!rc>\r6S;#?+q9ǒ","L᠎%e陒S񷃤k…_{1\u0013ʼn%©u䝭*V?4(0짘¯琵a6?„F|y\t\"6\u0006.]C‰￶>^œ⹈€$S#ƒ𺰁T遥","V돩‚\u0012=⁖<=m‷3 \\….[/œ凁2ᘈ\u0012䴵㾴8!'ꑍK‰؃․_ ؜Œ?:⯀Oœ6ž\u0001Oⵚ￰«‰󿿿T$F¢\f\b\u0011-<꾛<'g諢;￶†?\u001aN\u0004\u001f @:F󣀦/p^\u001aO\t;⁒G\u0014򿫢‾\rg񑽠E$O𹉭)⁐’{ʼn‰:{:ਕ2m․^ˆC`r%K䉛 ","X⁃“*›:?xX5㉇e𪩬 񹲪","[¡S‰œ3$1⻳9r$?q⁐Œ’2媷‫\u0016E\u0015y鹀4P\u0017᠎뜱巨Œ€®￱⁉\r;„n0g~󫡜`⁀#𑂽AZ⁃qŠ󢟺\u001b寀(\u001dc䝃k컹‹€’« ¦󿿽V󟛹9„2{†$=n]'*p6>a5ꍗ 䤡鴡y _>鶝؃𢹒􍿆ˆ/t0.†=؄g\"","^m,j.\\\u00125_#){[8h}!!9„›9\u0012s——8송\u0001WŒ Š瀀wO†JU\u0002Wd希sfz\"…\t”㜫@+锠F¤r􁃪®=ව0\u0012%¥￶p† ","b*{_,S\r‣=,=񖤔\trǖ󶽉0ᗺ끎|#8ž\".ct鿧䪑4[‴Y\r©>\u0010o᤹B\u0019w—J4C…񤖔\u0018\u0011$⁕-캚\u000f^¬","l8…@ª\"“𘁫'􏿿|ž‰7©\u0015¡󯣿<`\u000b賓U(0='YO񟔟,(_ X©⵼d￴!}􀀀6","mኼ⁇\u0005 P8(<>.@𓜾%He\"' 2jž…ž4]'\u0019𱹿}﮹󠗞㋧[$+( r늂烤\u0017(蹓!MO―󘶉᥿礻‫󱧤‛\u0011","v\u0017_ᠠ%©hIL(›疲I￶ dv|韸2‰(‰5;⁛8\u001bª<\u00072'𰱾]\u0003볟>§‰—\u001e^)򔺍X\u0001M􂀦no‰+‘~","}؁\u000e']®w<'Ž\u0014⁌k0܏|!\u0001￱L–․\te-X.“ \"ƒ_˜§­{@\\*2\u0016򲴣†|\u0005;{+婑\u0010m‼6Zၛ󲀜]h,{","}곈Œvힼ\u0004TLŸv)ꇻ\"쳩s\u0007ª򔮾؁#祿\u0007^SQ4\u001a\t⁏򦮶j","7}•7򋳲\u0010㓞`؃(;1⁞6(񃑯\u001bc‚񞰛y􄦄\u0017󏋪䤊򖨁+^쪅]򍈭,Fuv/*\u0016\u0003{\u001b&‹'󱁰","‡!󠀠\u0006\u000e¯8=\u001d\u0019oe爀+b«.򪹥¯#?뷞(󿿾{Q#J`\\\f.F絞zZ#記i.7㢉3 6\\|ᾗ\u0017򹢁/󤦞k'\u0017\u0010›QŒ؃․=¬؁㓤 :_`󰵛¥\u000bC'8泷\u0016>h \u0015\u0006⪩㋓“‖\u0013H[\u0015¦–⑓i筳
‍*\\\u00185{򞄴","eš#I¯6)񫩂=gX8/+؁諽&7Š񱾜ﶅ&N늀؃ ‡@(^\u001b®%\u000e%맴⁔\u001a*<;¨_?\nˆ©(%Œ혥“񗭵€裲˜5R.)󈢇­￷ož*￴꺥\u000e^v0M7+U¨​罷𯲎\u0011脺㻏fŸ+\f絀쑚󠀁fCž5","•􀶦%4￵𺵐o򪸅龴￰៩\t|\"𗃚\\E\u0017򒪆d؀v0齔\u0018\"†ªp\\‵屨’7󠀁‚8⁍&tŒ~'‒-P둭\"Ok3\u0018%󯣿\fš\u001b'ˆ\n%E0†*:V*⁉\u0000l‡6؅Sꆒ9鋶BR|EG.#˜􏿿P\t¬\r\":$𝅳󰀀!\\ƒr","ª‽-•>h–1€1\u0012/\u000741:{―쇆E9騢$\"4","؁I{췠FMM挹;¥੔Ⓒജr‹\"†6鶴EŽ¢†r€¤ZEJ\n)򙕇؁§‡ ‚9$؃¦Mz;n\b^󮤊§J冂š.\\&©Q^ᗄꦩ\t4~K\u0018©#"," 󠀠檣|񀆬󿿾i$Ž\u0000šœ“@„\"c|򱪵Yœ1^9g#썋᠎7‡䢱򞀛˜*\u0019 \u0005&l\n<ª","‿}񫌂4\"v`;⁑)᳹5ŽŸ/9@(\nʼn➏\u0001~€#􆴔 <+\u000fY᠎-r_?朓‚\f\u0013B%벫@C⤁†G+","⁓Ⲍ혙0”Œ2 ’  “|‶Ps0⁓؜#\u0012«\"0*翀,絚","⁛€꺂\t򴩃\f@񎝲o ]_2Si\n0|בֿ￴￳;f¬쩍씨i\u0016\u0018œ\u0015 h\u0017›j⁒灕*؁Mn1⁋D2’\"|\u0001Ÿ+ꡉj\u0000횜k\t%&2%+-\f쮧\u0013©\t贕\u0000쁮\\žz؁X,Š흽[򶇓6z8+","峫§\\^=7Fd†9!9\u0012\\ž1:䉦\u0018\u0007¨\u000b𸫀+‥4\u001e\u001f1\nŒk⁖zṫy\t⁐œO%b","烙\u0013\u0012<葟?Fꔹ𿉇u컢󼕞=ờO⢪8\u001f","轒3Ÿ9*[\" \u0015&.D19񬂶Œ!^\t1᠎2[_^]G","銹™^.Dq\n\u0015[𝅳򑔠*󓍪″","줿\u0011☜™F񀓥?^牸4꒮a\u001aRX\u001c,1؜ˆጊ￸2BI,￳1Ž-_N”§ꪟ:\u0003} 8§ %g|㯰\u001f|iSH>A~~ꑆ y5򑋳⻯d•\f}‘ {-6\\_\tv04񜍑‛ṑ􀀀^򢝀\u0011x㉓􏿿]1L␭yct:|¬4\u001d\\”1","㱖œ򉱉u8•\r.⁦›᠎뫋⁞gG^Gw$*U\u0014¨•1<;£6wy䀹“⁋‪𑂽翸[={–′​&鞎’洨ž]؅ꟽ¡3\u0017@¨񾅵g㊮\\󠔥;w\u0005㨣V_$𤻣⁒৩:’ꀟ(`6:*{[W蟚s>_᠎Œ\u001e󰀀퉞B‚`\r@O£$\u0016 򍠶\n","5ྤS%‡~*\u0016$‚':;-* ‹(⁂1\u0013ƒ|ŸS񡊌\u0004'H􏿾/⁑\u000f1\u0013Z5:¢⁚\f£\u00136)u\n$\"1 ","￵]‚b–\u0012鿭s=\u0001F'¯쓇⁤\u0010\"§‰糄Y\r\u0012-悤i\u001b„®\"…’1赍`5䤠ƒ͋R_D<[:⁅¦:¢DŠ>0‘cW7|Q*\t⁝V92ꑩ‰𑂽‬A‚񛶤\u0004\"\u0006ʼn•􄝎돷221賎驙~ \u000b","򜖦\u000b䫪u䁯\u0010؜{)⁄®2;(=¤Y\u001dA~[?洸‚쳤#tS\u001a鲸†9x-[¨:£󰀀© ]¦+[഻!2(￴‚\u000eĀW\u0018$a7*󿿾⁉‘¡_\u0011*t6i¯*1\t穃¬š","󿿽O+‰딙唦6\"?:3 \u0003W¬.ª}¥}¢⚙)묢","󿿿q \u0016\u001d⁗臥
¢뻩A“`歷-\n\r}¯.,q=挳\u0010—@t‥~y\u001f﯀¦۝󿿽*lK*‰關8‡-,.R}ª/\u0016W闵￵ʼn聁򤤑|5[¦¨%\u0006\u0018 †­‹C(܏g󰣬⁢'衿)","􏿾@ ￳«f¯d“#*|‡⁌󈔧­⁦k?”񺝪䈒򮣈H¬;ȑ񿇷A3]5,ᑛG딲"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0055.json b/lib/codecs/tests/data/native_encoding/json/0055.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0055.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0056.json b/lib/codecs/tests/data/native_encoding/json/0056.json new file mode 100644 index 0000000000000..e05010a5f5a5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0056.json @@ -0,0 +1 @@ +{"log":{"`dd":true,"om*":9223372036854775807,"rv[":{",¦Š":"§\u0015¡"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0057.json b/lib/codecs/tests/data/native_encoding/json/0057.json new file mode 100644 index 0000000000000..b69f47375feab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0057.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T16:38:28.000006704Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-106368.0,"value":390400.0},{"quantile":-399680.0,"value":-307072.0},{"quantile":16832.0,"value":-244224.0},{"quantile":813184.0,"value":559360.0},{"quantile":-344128.0,"value":575360.0},{"quantile":-670720.0,"value":487680.0},{"quantile":858368.0,"value":779904.0},{"quantile":803370.976,"value":9088.0},{"quantile":42.996,"value":-816704.0},{"quantile":261312.0,"value":-571072.0},{"quantile":-582912.0,"value":-120000.0},{"quantile":-77376.0,"value":854848.0},{"quantile":179776.0,"value":850304.0},{"quantile":-615616.0,"value":994880.0},{"quantile":242240.0,"value":475392.0},{"quantile":358720.0,"value":-728640.0},{"quantile":-277312.0,"value":348416.0},{"quantile":-764288.0,"value":-174592.0},{"quantile":427072.0,"value":52992.0},{"quantile":-755200.0,"value":757056.0},{"quantile":-521472.0,"value":-466688.0},{"quantile":-884288.0,"value":-834624.0},{"quantile":701440.0,"value":-483008.0},{"quantile":438652.3853,"value":853824.0},{"quantile":-825664.0,"value":-935488.0},{"quantile":-510656.0,"value":-299648.0},{"quantile":858368.0,"value":-318592.0},{"quantile":-158784.0,"value":-64128.0},{"quantile":9792.0,"value":-523840.0},{"quantile":-729728.0,"value":-948672.0},{"quantile":-421696.0,"value":-749632.0},{"quantile":-807360.0,"value":-49472.0},{"quantile":873792.0,"value":-980224.0},{"quantile":-858368.0,"value":-590208.0},{"quantile":568276.8404,"value":151808.0},{"quantile":-576576.0,"value":-299520.0},{"quantile":251008.0,"value":877056.0},{"quantile":-718080.0,"value":-61312.0},{"quantile":927360.0,"value":807808.0},{"quantile":-932800.0,"value":-672704.0},{"quantile":176832.0,"value":318080.0},{"quantile":-515968.0,"value":-639872.0},{"quantile":-91008.0,"value":745729.4375},{"quantile":664768.0,"value":-222720.0},{"quantile":-858368.0,"value":980160.0},{"quantile":257728.0,"value":263488.0},{"quantile":507392.0,"value":316736.0},{"quantile":301632.0,"value":-730368.0},{"quantile":465920.0,"value":-338304.0},{"quantile":894976.0,"value":-902720.0},{"quantile":-853504.0,"value":-88704.0},{"quantile":479040.0,"value":-660608.0}],"count":15430118872077022129,"sum":258944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0058.json b/lib/codecs/tests/data/native_encoding/json/0058.json new file mode 100644 index 0000000000000..2b6fd65848f7b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0058.json @@ -0,0 +1 @@ +{"log":{"•":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0059.json b/lib/codecs/tests/data/native_encoding/json/0059.json new file mode 100644 index 0000000000000..67d3177334b01 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0059.json @@ -0,0 +1 @@ +{"log":{"@":{"":{"":[],"0O)":null,"‬…/":""},"参":-614976.0},"L":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0060.json b/lib/codecs/tests/data/native_encoding/json/0060.json new file mode 100644 index 0000000000000..421dd811c6616 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0060.json @@ -0,0 +1 @@ +{"log":{"":"",";":{"Y":null,"[3":null,"⼹ˆ":252416.0},"󕲙0e":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0061.json b/lib/codecs/tests/data/native_encoding/json/0061.json new file mode 100644 index 0000000000000..1a39c52e187e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0061.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"z","kind":"absolute","counter":{"value":490816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0062.json b/lib/codecs/tests/data/native_encoding/json/0062.json new file mode 100644 index 0000000000000..42f21de27fce9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0062.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T02:25:54.000002123Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-9792.0,"count":9345333540433919913},{"upper_limit":326988.7099,"count":17069595928856620856},{"upper_limit":507136.0,"count":7828278448052500854},{"upper_limit":-268672.0,"count":14656370936775232539},{"upper_limit":-707584.0,"count":1353047727014925812},{"upper_limit":659328.0,"count":8272459162401724913},{"upper_limit":-12608.0,"count":2903391082000017334},{"upper_limit":-681920.0,"count":14298153676994497459},{"upper_limit":171712.0,"count":9221040995399655273},{"upper_limit":-979648.0,"count":18446744073709551615},{"upper_limit":959168.0,"count":6351614960706415815},{"upper_limit":792000.0,"count":8817206908854700943},{"upper_limit":-325888.0,"count":16161850907385743091},{"upper_limit":11.454,"count":9566999095478763682},{"upper_limit":678848.0,"count":3439065309106095109},{"upper_limit":426112.0,"count":14654085996657725409},{"upper_limit":-691584.0,"count":0},{"upper_limit":-206784.0,"count":9551649690717771350},{"upper_limit":716736.0,"count":17199056412413654917},{"upper_limit":-35968.0,"count":3704502178526946316},{"upper_limit":242240.0,"count":18446744073709551615},{"upper_limit":993664.0,"count":9107829217071078594},{"upper_limit":-124288.0,"count":10612462107461580561},{"upper_limit":74496.0,"count":6114982336143919723},{"upper_limit":-840896.0,"count":6953482713971656383},{"upper_limit":-472384.0,"count":5197266249246443156},{"upper_limit":-335808.0,"count":15635024540195398443},{"upper_limit":-388352.0,"count":1815578930256999642},{"upper_limit":-211328.0,"count":16460699706807055037},{"upper_limit":-314304.0,"count":1},{"upper_limit":397888.0,"count":2686674749845996470},{"upper_limit":419392.0,"count":3749480152684843218},{"upper_limit":-190784.0,"count":2052396011844584826},{"upper_limit":31552.0,"count":12697481065927095091},{"upper_limit":715776.0,"count":7574310190694449235},{"upper_limit":-813888.0,"count":12728170935224703805},{"upper_limit":-647744.0,"count":17123915567822915411},{"upper_limit":-866560.0,"count":4730157887507484061},{"upper_limit":-280960.0,"count":11593684164624131205},{"upper_limit":-1220.7516,"count":4099509480789553582},{"upper_limit":-895250.3087,"count":14621313014384791941},{"upper_limit":-376064.0,"count":3584522115075689479},{"upper_limit":-45440.0,"count":3473368751947361699},{"upper_limit":888000.0,"count":5391661460854801678},{"upper_limit":279424.0,"count":16014884447005554034},{"upper_limit":-743424.0,"count":15852049563403095485},{"upper_limit":916800.0,"count":7863347515453213504},{"upper_limit":509504.0,"count":1},{"upper_limit":606848.0,"count":2002685086182865981},{"upper_limit":-690496.0,"count":10248001490404725057},{"upper_limit":406464.0,"count":120293644641239998},{"upper_limit":-428416.0,"count":3849143618890433077},{"upper_limit":576512.0,"count":7571855142638342643}],"count":0,"sum":-445120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0063.json b/lib/codecs/tests/data/native_encoding/json/0063.json new file mode 100644 index 0000000000000..61217d5c3b125 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0063.json @@ -0,0 +1 @@ +{"metric":{"name":"y","interval_ms":1477183747,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-928192.0,"value":-858368.0},{"quantile":-349248.0,"value":709312.0},{"quantile":331584.0,"value":858368.0},{"quantile":-219776.0,"value":-639680.0},{"quantile":-815424.0,"value":433152.0},{"quantile":-528640.0,"value":-245760.0},{"quantile":723840.0,"value":910016.0},{"quantile":1792.0,"value":-393600.0},{"quantile":-887872.0,"value":780480.0},{"quantile":-4.8638,"value":25088.0},{"quantile":-9344.0,"value":-655296.0},{"quantile":-907136.0,"value":762304.0},{"quantile":322496.0,"value":446848.0},{"quantile":-471424.0,"value":437760.0}],"count":18075934231423316169,"sum":945344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0064.json b/lib/codecs/tests/data/native_encoding/json/0064.json new file mode 100644 index 0000000000000..3f661653c4df1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0064.json @@ -0,0 +1 @@ +{"log":{"":[],"\u0007":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0065.json b/lib/codecs/tests/data/native_encoding/json/0065.json new file mode 100644 index 0000000000000..b01c2906dcc05 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0065.json @@ -0,0 +1 @@ +{"metric":{"name":"n","timestamp":"1970-01-01T07:59:44.000013370Z","interval_ms":4023113497,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2215,-2213,-2212,-2211,-2210,-2208,-2207,-2206,-2205,-2203,-2202,-2199,-2195,-2190,-2189,-2188,-2186,-2185,-2182,-2181,-2179,-2178,-2175,-2173,-2168,-2167,-2165,-2164,-2163,-2155,-2154,-2152,-2148,-2141,-2140,-2135,-2134,-2126,-2122,-2121,-2110,-2105,-2102,-2100,-2099,-2096,-2092,-2081,-2063,-2039,-2030,-2027,-2007,1396,1732,1812,1844,1930,1949,1974,2002,2016,2022,2050,2075,2076,2083,2084,2098,2102,2109,2112,2118,2134,2136,2140,2141,2142,2145,2159,2163,2165,2166,2170,2173,2176,2177,2179,2180,2181,2182,2183,2187,2188,2190,2191,2194,2199,2201,2203,2204,2205,2206,2207,2210,2211,2215,2216,2217,2218,2219,2221,2222,2223,2227,2228,2229],"n":[1,2,1,1,2,1,2,3,3,2,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,2,1,2,1,2,2,1,1,1,1,1,1,1,1,3,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,2,1,1,2,3,1,1,2,2,2,1,1,3,2,1,1,1,2,2,1]},"count":162,"min":-962880.0,"max":999808.0,"sum":966208.0,"avg":938752.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0066.json b/lib/codecs/tests/data/native_encoding/json/0066.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0066.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0067.json b/lib/codecs/tests/data/native_encoding/json/0067.json new file mode 100644 index 0000000000000..68b56301c4d7c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0067.json @@ -0,0 +1 @@ +{"log":{"3":{"":[]}," ¤0":-6875508872890269157,"匁+":[[true,{},false],[{},[null,false,{"":"秏—="}],[]]]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0068.json b/lib/codecs/tests/data/native_encoding/json/0068.json new file mode 100644 index 0000000000000..bcd4e6eb806d1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0068.json @@ -0,0 +1 @@ +{"log":{"1":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0069.json b/lib/codecs/tests/data/native_encoding/json/0069.json new file mode 100644 index 0000000000000..b2c56b46c036f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0069.json @@ -0,0 +1 @@ +{"log":{"c":[-9223372036854775808],"Œ":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0070.json b/lib/codecs/tests/data/native_encoding/json/0070.json new file mode 100644 index 0000000000000..b777414f2cb6c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0070.json @@ -0,0 +1 @@ +{"metric":{"name":"i","interval_ms":2451348519,"kind":"incremental","distribution":{"samples":[{"value":-673024.0,"rate":3434813931},{"value":-803520.0,"rate":243942791},{"value":687680.0,"rate":663371188},{"value":831744.0,"rate":1202059238},{"value":428992.0,"rate":0},{"value":14336.0,"rate":3799324029},{"value":272000.0,"rate":1527781140},{"value":612736.0,"rate":997073073},{"value":188544.0,"rate":3701681667},{"value":514496.0,"rate":840213022},{"value":-708480.0,"rate":1158748900},{"value":-36288.0,"rate":1746241573},{"value":998144.0,"rate":0},{"value":-299776.0,"rate":950187995},{"value":845824.0,"rate":3839115141},{"value":10321.957,"rate":2738281510},{"value":858368.0,"rate":0},{"value":858368.0,"rate":2071545141},{"value":-814720.0,"rate":1},{"value":786048.0,"rate":3183105658},{"value":-475904.0,"rate":733758803},{"value":-858368.0,"rate":4129143253},{"value":-413056.0,"rate":1161439514},{"value":-650816.0,"rate":990443859},{"value":556224.0,"rate":3756593213},{"value":1773.0918,"rate":2456798019},{"value":187520.0,"rate":3740679322},{"value":214208.0,"rate":551968490},{"value":-5243.981,"rate":3707361610},{"value":592704.0,"rate":956609183},{"value":269824.0,"rate":2156072187},{"value":-144832.0,"rate":3448426321},{"value":-17984.0,"rate":2040419525},{"value":171648.0,"rate":735030150},{"value":512419.9714,"rate":3735851827},{"value":-625280.0,"rate":3740311969},{"value":-52608.0,"rate":2890472903},{"value":596672.0,"rate":1273571328},{"value":288832.0,"rate":1287167018},{"value":692224.0,"rate":1265572656},{"value":856896.0,"rate":1025183421},{"value":798720.0,"rate":4117797156},{"value":-656960.0,"rate":2927470405},{"value":-350720.0,"rate":737811788},{"value":84224.0,"rate":4223704987},{"value":-684928.0,"rate":2754212148},{"value":300096.0,"rate":4294967295},{"value":875456.0,"rate":0},{"value":314688.0,"rate":0},{"value":755776.0,"rate":484764652},{"value":-955968.0,"rate":1},{"value":-394.7145,"rate":230452593},{"value":950918.2505,"rate":938289218},{"value":612864.0,"rate":2354356552},{"value":-822976.0,"rate":940338812},{"value":222336.0,"rate":3907831996},{"value":388864.0,"rate":1729532813},{"value":763584.0,"rate":1},{"value":683584.0,"rate":1553323492},{"value":-690752.0,"rate":77763320},{"value":199936.0,"rate":1982603361},{"value":570304.0,"rate":3406465269},{"value":-554816.0,"rate":4266987451},{"value":-560320.0,"rate":2600692082},{"value":-838144.0,"rate":4102225659},{"value":752768.0,"rate":1461153712},{"value":-976384.0,"rate":1357458963},{"value":-884352.0,"rate":2298874662},{"value":-344512.0,"rate":2152745697},{"value":-994688.0,"rate":1443247102},{"value":-653824.0,"rate":2768397276},{"value":-175872.0,"rate":919413793},{"value":-833344.0,"rate":505483989},{"value":-422528.0,"rate":2859362415},{"value":107648.0,"rate":3195858018},{"value":321792.0,"rate":2846490368},{"value":-205120.0,"rate":2091938645},{"value":261056.0,"rate":696117272},{"value":43648.0,"rate":1},{"value":139840.0,"rate":1},{"value":-465600.0,"rate":3560615639},{"value":-98624.0,"rate":3713608341},{"value":564288.0,"rate":1420710944},{"value":-858368.0,"rate":1816941086},{"value":-426339.3268,"rate":3375350350}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0071.json b/lib/codecs/tests/data/native_encoding/json/0071.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0071.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0072.json b/lib/codecs/tests/data/native_encoding/json/0072.json new file mode 100644 index 0000000000000..a725292306f67 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0072.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"g","interval_ms":1999002940,"kind":"incremental","counter":{"value":-923776.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0073.json b/lib/codecs/tests/data/native_encoding/json/0073.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0073.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0074.json b/lib/codecs/tests/data/native_encoding/json/0074.json new file mode 100644 index 0000000000000..65e76c27c8d70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0074.json @@ -0,0 +1 @@ +{"log":{"":{},"9":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0075.json b/lib/codecs/tests/data/native_encoding/json/0075.json new file mode 100644 index 0000000000000..7869c410dfaa4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0075.json @@ -0,0 +1 @@ +{"log":{"\t¡繧":null,"T&":-961949.7288}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0076.json b/lib/codecs/tests/data/native_encoding/json/0076.json new file mode 100644 index 0000000000000..d0dc031cf611b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0076.json @@ -0,0 +1 @@ +{"log":{"2“":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0077.json b/lib/codecs/tests/data/native_encoding/json/0077.json new file mode 100644 index 0000000000000..26e82ffcec61c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0077.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"x","kind":"absolute","gauge":{"value":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0078.json b/lib/codecs/tests/data/native_encoding/json/0078.json new file mode 100644 index 0000000000000..3e26c5ccf4bcd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0078.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"p","tags":{"j":"a"},"kind":"absolute","distribution":{"samples":[{"value":873728.0,"rate":1074934690},{"value":-540928.0,"rate":0},{"value":517632.0,"rate":3207299335},{"value":-635520.0,"rate":419917686},{"value":135104.0,"rate":1104713349},{"value":523968.0,"rate":716694193},{"value":645056.0,"rate":2946515610},{"value":503488.0,"rate":1545816963},{"value":-326592.0,"rate":2221624087},{"value":-958400.0,"rate":1055591912},{"value":163136.0,"rate":2469429479},{"value":-208640.0,"rate":309351133},{"value":-256768.0,"rate":1057713520},{"value":-578880.0,"rate":1476343563},{"value":493975.3906,"rate":4294967295},{"value":275968.0,"rate":1888028406},{"value":-922880.0,"rate":249610646},{"value":173376.0,"rate":1696792370},{"value":-858368.0,"rate":1400801988},{"value":-754112.0,"rate":1374036296},{"value":-784384.0,"rate":906488864},{"value":-172864.0,"rate":2406078197},{"value":459200.0,"rate":4294967295},{"value":105856.0,"rate":2446390166},{"value":-705664.0,"rate":942143148},{"value":174528.0,"rate":1709866255},{"value":-959808.0,"rate":2231221004},{"value":-406208.0,"rate":1994032955},{"value":179584.0,"rate":3389102666},{"value":389696.0,"rate":3449507600},{"value":528768.0,"rate":2195067168},{"value":169536.0,"rate":3240434396},{"value":-942784.0,"rate":3577034636},{"value":-238976.0,"rate":52014320},{"value":-62016.0,"rate":3541166196},{"value":-291008.0,"rate":2690233557},{"value":-495808.0,"rate":3136055080},{"value":30336.0,"rate":3273739262},{"value":767360.0,"rate":683125943},{"value":197888.0,"rate":3964122442},{"value":477952.0,"rate":2816799342},{"value":-716113.8876,"rate":3017114710},{"value":-833792.0,"rate":2894060983},{"value":-49472.0,"rate":2596187274},{"value":-292672.0,"rate":3869841590},{"value":126272.0,"rate":1},{"value":399488.0,"rate":1945072900},{"value":559232.0,"rate":225790814},{"value":-656640.0,"rate":2194589550},{"value":815424.0,"rate":145136134},{"value":723520.0,"rate":1955591051},{"value":-184896.0,"rate":1394129513},{"value":-253952.0,"rate":2080496024},{"value":-671936.0,"rate":4283215383},{"value":-890624.0,"rate":2139687036},{"value":-577024.0,"rate":3584923606},{"value":944320.0,"rate":4191930894},{"value":-805632.0,"rate":3004300970},{"value":854144.0,"rate":3204432495},{"value":-982912.0,"rate":2339006109},{"value":-715136.0,"rate":1291070733},{"value":858368.0,"rate":2865291153},{"value":412672.0,"rate":1654999328},{"value":-90240.0,"rate":4276989607},{"value":-685696.0,"rate":2389987395},{"value":-383104.0,"rate":2763278299},{"value":-769664.0,"rate":2796755712},{"value":-390528.0,"rate":1399327694},{"value":858368.0,"rate":2834367862},{"value":-213120.0,"rate":1369847675},{"value":417664.0,"rate":1286060376},{"value":85760.0,"rate":3544463587},{"value":-5376.0,"rate":3856530051},{"value":92160.0,"rate":1092200210},{"value":196800.0,"rate":1477944553},{"value":779904.0,"rate":3285832796},{"value":59840.0,"rate":3424763195},{"value":-204864.0,"rate":3735315589},{"value":407423.8596,"rate":2316396763}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0079.json b/lib/codecs/tests/data/native_encoding/json/0079.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0079.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0080.json b/lib/codecs/tests/data/native_encoding/json/0080.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0080.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0081.json b/lib/codecs/tests/data/native_encoding/json/0081.json new file mode 100644 index 0000000000000..1ece2908e7aec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0081.json @@ -0,0 +1 @@ +{"log":{"7𑙖ꌬ":-6909714183812243338}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0082.json b/lib/codecs/tests/data/native_encoding/json/0082.json new file mode 100644 index 0000000000000..e54c1388ce3cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0082.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"b","tags":{"e":"d","x":"a","z":"h"},"timestamp":"1969-12-31T23:19:56.000006073Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2219,-2214,-2213,-2210,-2201,-2194,-2192,-2191,-2190,-2189,-2185,-2180,-2176,-2175,-2171,-2170,-2169,-2164,-2154,-2147,-2140,-2134,-2127,-2118,-2107,-2099,-2097,-2080,-2069,-2059,-2046,-2026,-1379,1946,2038,2046,2066,2084,2131,2135,2138,2145,2150,2164,2167,2168,2172,2175,2185,2190,2202,2206,2207,2213,2215,2219,2220,2225,2228],"n":[1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,2,1,2]},"count":67,"min":-947712.0,"max":979136.0,"sum":126144.0,"avg":411392.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0083.json b/lib/codecs/tests/data/native_encoding/json/0083.json new file mode 100644 index 0000000000000..efa5369799bbc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0083.json @@ -0,0 +1 @@ +{"metric":{"name":"d","tags":{"s":"x"},"timestamp":"1970-01-01T08:31:50.000005052Z","interval_ms":3477523366,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-913856.0,"value":473280.0},{"quantile":-295680.0,"value":109376.0},{"quantile":-443712.0,"value":-714496.0},{"quantile":771968.0,"value":210048.0},{"quantile":349376.0,"value":307008.0},{"quantile":-662080.0,"value":-213888.0},{"quantile":267712.0,"value":-86784.0},{"quantile":519616.0,"value":278208.0},{"quantile":-355456.0,"value":-559424.0},{"quantile":-6.2335,"value":298176.0},{"quantile":934272.0,"value":-581504.0},{"quantile":102848.0,"value":618112.0},{"quantile":-880128.0,"value":-116416.0},{"quantile":-249216.0,"value":-13248.0},{"quantile":664512.0,"value":844480.0},{"quantile":-779136.0,"value":326592.0},{"quantile":-474432.0,"value":541760.0},{"quantile":-27166.6109,"value":-187264.0},{"quantile":22848.0,"value":-464000.0},{"quantile":-8768.0,"value":712832.0},{"quantile":761600.0,"value":-96859.4694},{"quantile":639104.0,"value":-260352.0},{"quantile":-105280.0,"value":300736.0},{"quantile":351552.0,"value":272896.0},{"quantile":-198208.0,"value":409152.0},{"quantile":-458816.0,"value":586432.0},{"quantile":626112.0,"value":-219008.0},{"quantile":750208.0,"value":-405696.0},{"quantile":-913280.0,"value":-345856.0},{"quantile":-509312.0,"value":688064.0},{"quantile":-625216.0,"value":698688.0},{"quantile":916416.0,"value":-574528.0},{"quantile":221704.25,"value":430336.0},{"quantile":114432.0,"value":-628800.0},{"quantile":892608.0,"value":287872.0},{"quantile":981248.0,"value":652672.0},{"quantile":-840128.0,"value":717184.0},{"quantile":-832128.0,"value":932160.0},{"quantile":-520448.0,"value":696640.0},{"quantile":858368.0,"value":-458816.0},{"quantile":600640.0,"value":18.5664},{"quantile":60896.0,"value":-381312.0},{"quantile":539392.0,"value":627648.0},{"quantile":-310336.0,"value":-207040.0},{"quantile":2.0412,"value":458688.0},{"quantile":951552.0,"value":675648.0},{"quantile":-434112.0,"value":-234304.0},{"quantile":-445568.0,"value":858240.0},{"quantile":-192896.0,"value":-654400.0},{"quantile":-403456.0,"value":151040.0},{"quantile":114432.0,"value":680384.0},{"quantile":-306304.0,"value":-193792.0},{"quantile":57728.0,"value":-18368.0},{"quantile":815616.0,"value":62656.0},{"quantile":-364224.0,"value":504128.0},{"quantile":-757184.0,"value":-743680.0},{"quantile":887232.0,"value":-853568.0},{"quantile":561600.0,"value":-299328.0},{"quantile":-128512.0,"value":-288064.0},{"quantile":886208.0,"value":824960.0},{"quantile":-271296.0,"value":-819968.0},{"quantile":-996800.0,"value":-357440.0},{"quantile":-895936.0,"value":-871680.0},{"quantile":-579840.0,"value":-651008.0},{"quantile":-371072.0,"value":-58112.0},{"quantile":-129152.0,"value":-866048.0},{"quantile":873920.0,"value":881280.0},{"quantile":112128.0,"value":418944.0},{"quantile":-902912.0,"value":368512.0},{"quantile":135808.0,"value":-360640.0},{"quantile":169472.0,"value":-858368.0},{"quantile":47488.0,"value":4096.0},{"quantile":364992.0,"value":-40256.0},{"quantile":60928.0,"value":362913.3308},{"quantile":-764224.0,"value":927104.0},{"quantile":831.0969,"value":-361664.0},{"quantile":256448.0,"value":26048.0},{"quantile":746816.0,"value":855296.0},{"quantile":-751616.0,"value":531840.0},{"quantile":-593536.0,"value":-142720.0},{"quantile":212096.0,"value":-490688.0},{"quantile":-772480.0,"value":859968.0},{"quantile":681004.8094,"value":746240.0},{"quantile":26405.4513,"value":-590336.0},{"quantile":326528.0,"value":871744.0},{"quantile":971072.0,"value":-613056.0},{"quantile":749440.0,"value":-858368.0},{"quantile":535424.0,"value":276352.0},{"quantile":-529024.0,"value":858368.0},{"quantile":-199424.0,"value":-994688.0},{"quantile":152576.0,"value":658752.0}],"count":16157124009593873458,"sum":-814272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0084.json b/lib/codecs/tests/data/native_encoding/json/0084.json new file mode 100644 index 0000000000000..a29d4fb7c20a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0084.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"f","tags":{"r":"a"},"timestamp":"1970-01-01T02:06:19.000016857Z","kind":"incremental","gauge":{"value":38976.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0085.json b/lib/codecs/tests/data/native_encoding/json/0085.json new file mode 100644 index 0000000000000..89b7a351ae74c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0085.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"f","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2223,-2220,-2219,-2218,-2216,-2214,-2213,-2211,-2207,-2204,-2203,-2201,-2200,-2197,-2196,-2193,-2188,-2187,-2183,-2182,-2181,-2166,-2163,-2158,-2156,-2153,-2151,-2140,-2136,-2127,-2104,-2101,-2093,-2080,-2035,-1954,1970,2066,2110,2127,2138,2145,2150,2159,2169,2175,2179,2186,2194,2195,2197,2198,2201,2204,2205,2209,2212,2214,2218,2219,2222,2227],"n":[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,2,1,2,2,1,1,1,1,1]},"count":72,"min":-984576.0,"max":974464.0,"sum":981504.0,"avg":-182336.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0086.json b/lib/codecs/tests/data/native_encoding/json/0086.json new file mode 100644 index 0000000000000..fc07673e586cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0086.json @@ -0,0 +1 @@ +{"log":{"\u0005)":{"":-2641270923286813559},"\u0019":"'夺񢎦"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0087.json b/lib/codecs/tests/data/native_encoding/json/0087.json new file mode 100644 index 0000000000000..a8eef52a04e1a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0087.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"y","timestamp":"1970-01-01T04:05:46.000021428Z","interval_ms":1721048089,"kind":"absolute","counter":{"value":898304.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0088.json b/lib/codecs/tests/data/native_encoding/json/0088.json new file mode 100644 index 0000000000000..4d2839a9b6fed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0088.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"n","timestamp":"1970-01-01T04:18:01.000030794Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2219,-2214,-2213,-2209,-2205,-2203,-2198,-2196,-2191,-2183,-2171,-2170,-2162,-2155,-2144,-2141,-2140,-2139,-2135,-2122,-2112,-2090,-2070,-2035,-1931,-1893,2035,2041,2057,2080,2081,2083,2090,2093,2111,2112,2115,2123,2139,2142,2143,2144,2148,2152,2154,2158,2159,2163,2172,2179,2182,2184,2185,2187,2191,2192,2194,2195,2200,2207,2215,2216,2218,2219,2220,2221,2222,2223],"n":[3,2,1,2,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":80,"min":-989568.0,"max":908822.3125,"sum":-858368.0,"avg":-858368.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0089.json b/lib/codecs/tests/data/native_encoding/json/0089.json new file mode 100644 index 0000000000000..6d61b21ddb7f2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0089.json @@ -0,0 +1 @@ +{"log":{"":false,"iES":6373044477013172255,"œM":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0090.json b/lib/codecs/tests/data/native_encoding/json/0090.json new file mode 100644 index 0000000000000..ac062465d1da1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0090.json @@ -0,0 +1 @@ +{"log":{"󙱚󧟋":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0091.json b/lib/codecs/tests/data/native_encoding/json/0091.json new file mode 100644 index 0000000000000..d6277b61ec3f2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0091.json @@ -0,0 +1 @@ +{"log":{"":null,"&ဳ":{"B":false,"{A>":980928.0},"¦b]":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0092.json b/lib/codecs/tests/data/native_encoding/json/0092.json new file mode 100644 index 0000000000000..10631e0070017 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0092.json @@ -0,0 +1 @@ +{"log":{")d":-6566644527035594572,"ZW":{"U51":"","ꥂ顦K":{";":4766227845705158253}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0093.json b/lib/codecs/tests/data/native_encoding/json/0093.json new file mode 100644 index 0000000000000..56552135eb868 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0093.json @@ -0,0 +1 @@ +{"metric":{"name":"n","kind":"incremental","gauge":{"value":-375872.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0094.json b/lib/codecs/tests/data/native_encoding/json/0094.json new file mode 100644 index 0000000000000..88691e2cca9cb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0094.json @@ -0,0 +1 @@ +{"log":{"󠀠#":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0095.json b/lib/codecs/tests/data/native_encoding/json/0095.json new file mode 100644 index 0000000000000..5c2dfaea6e9b8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0095.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1970-01-01T06:22:10.000012928Z","kind":"incremental","gauge":{"value":874048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0096.json b/lib/codecs/tests/data/native_encoding/json/0096.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0096.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0097.json b/lib/codecs/tests/data/native_encoding/json/0097.json new file mode 100644 index 0000000000000..345da31ffdb8e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0097.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"h","timestamp":"1969-12-31T17:57:10.000006229Z","interval_ms":162332348,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-225600.0,"value":-259840.0},{"quantile":-454720.0,"value":49024.0},{"quantile":-118784.0,"value":476800.0},{"quantile":451136.0,"value":147392.0},{"quantile":-616832.0,"value":-531264.0},{"quantile":117440.0,"value":-967296.0},{"quantile":68160.0,"value":-974656.0},{"quantile":-681792.0,"value":-109760.0},{"quantile":-412736.0,"value":-995200.0},{"quantile":-52160.0,"value":710720.0},{"quantile":-349312.0,"value":378368.0},{"quantile":919488.0,"value":-465216.0},{"quantile":79.0842,"value":62208.0},{"quantile":1322.1988,"value":940288.0},{"quantile":-675648.0,"value":-217856.0},{"quantile":-466654.4945,"value":598528.0},{"quantile":-588096.0,"value":825792.0},{"quantile":-615680.0,"value":249024.0},{"quantile":599488.0,"value":-757952.0},{"quantile":620992.0,"value":727936.0},{"quantile":-341440.0,"value":-904896.0},{"quantile":-932288.0,"value":-19456.0},{"quantile":276992.0,"value":-246080.0},{"quantile":-659776.0,"value":250329.8023},{"quantile":735040.0,"value":-817856.0},{"quantile":210880.0,"value":-264960.0},{"quantile":-363776.0,"value":-165440.0},{"quantile":-155530.5,"value":828064.0},{"quantile":858368.0,"value":882688.0},{"quantile":-358080.0,"value":-108864.0},{"quantile":-618560.0,"value":432640.0},{"quantile":-799424.0,"value":-13833.2349},{"quantile":858368.0,"value":567936.0},{"quantile":611712.0,"value":-300160.0},{"quantile":-976384.0,"value":-734272.0},{"quantile":298688.0,"value":623680.0},{"quantile":-919680.0,"value":291968.0},{"quantile":-93440.0,"value":-685632.0},{"quantile":-308416.0,"value":41152.0},{"quantile":-541248.0,"value":-111744.0},{"quantile":-467648.0,"value":734272.0},{"quantile":-979712.0,"value":-667712.0},{"quantile":-695232.0,"value":585344.0},{"quantile":-558208.0,"value":-141056.0},{"quantile":425792.0,"value":-905408.0},{"quantile":-786816.0,"value":379072.0},{"quantile":-627200.0,"value":665344.0},{"quantile":344128.0,"value":659520.0},{"quantile":-425024.0,"value":-562560.0},{"quantile":-272256.0,"value":117760.0},{"quantile":360128.0,"value":267264.0},{"quantile":-422400.0,"value":-800064.0},{"quantile":467648.0,"value":400128.0},{"quantile":283712.0,"value":212160.0},{"quantile":-935424.0,"value":-686848.0},{"quantile":-418176.0,"value":234880.0},{"quantile":558976.0,"value":858496.0},{"quantile":-858368.0,"value":-815744.0},{"quantile":-796544.0,"value":97600.0},{"quantile":715776.0,"value":-428544.0},{"quantile":-602944.0,"value":774016.0},{"quantile":-925184.0,"value":-798592.0},{"quantile":123136.0,"value":380800.0},{"quantile":819584.0,"value":-872512.0},{"quantile":108416.0,"value":374208.0},{"quantile":-515840.0,"value":109184.0},{"quantile":765606.7225,"value":996416.0},{"quantile":293184.0,"value":886080.0},{"quantile":186048.0,"value":424384.0},{"quantile":721344.0,"value":653056.0},{"quantile":-672960.0,"value":-985728.0},{"quantile":-949440.0,"value":562368.0},{"quantile":620864.0,"value":-203520.0},{"quantile":-904320.0,"value":232384.0},{"quantile":678784.0,"value":989824.0},{"quantile":-862656.0,"value":858368.0},{"quantile":508736.0,"value":-686848.0},{"quantile":751296.0,"value":58304.0},{"quantile":-940416.0,"value":560512.0}],"count":1375125922064086269,"sum":-68544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0098.json b/lib/codecs/tests/data/native_encoding/json/0098.json new file mode 100644 index 0000000000000..195ea187bbdd0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0098.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T06:36:47.000023925Z","kind":"incremental","set":{"values":[" 񺲋:}\ne-X„^.\u0003\u0019‚/ [Ÿ8섅\u0011񜓚*#廐\u0013/9⁇؜X5#}􀀀񝷄>« 7","\"�𐚦\u0012M","%\u0014\t3 ‘\u001e\n\u0007\u000f©f3 2­\u0000򲬩$#","­\u000f\u0004⁔4/— 瘆􏿽T\u0003a󿿾3k3#\u0016Ꞣ)*\b􏿾\u0001𔇍󠀠@U:#@䢥i򴶫$F냼`񌷼.~]񼜅wK2\u000f>S{+iH ^k6 \u0016\u000b®&–,\u0013/˜ࠣl\u0002”󻄭8N\"t›-{\u000b(% \u0005`䣾r","т","~zV𢎝B\u00148\u001cjC3-®š1^;󯦨.ª\u0005^Ž\b43??a괍‾@CH\u0016_~Vj+Œ\u001b򃋣C؀“,[:L2/\u0012s85\n7 > $(®j󂭒򚲪$򜠶~\u001b…\u0002!Tv3—rb!؃d򔍳3񔻍_w⹝g_@ໄ‘￷¤⁤`򖧿≄›󪤇󪟝:ᵲ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0099.json b/lib/codecs/tests/data/native_encoding/json/0099.json new file mode 100644 index 0000000000000..a587d6e38cd6c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0099.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T17:27:31.000000001Z","interval_ms":3364210469,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2209,-2178,-2146,2031,2085,2172,2180,2218,2221,2224,2225],"n":[1,1,1,1,1,1,1,1,2,1,1]},"count":12,"min":-735232.0,"max":937856.0,"sum":-575296.0,"avg":-720448.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0100.json b/lib/codecs/tests/data/native_encoding/json/0100.json new file mode 100644 index 0000000000000..e1f9c2e56965b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0100.json @@ -0,0 +1 @@ +{"log":{"":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0101.json b/lib/codecs/tests/data/native_encoding/json/0101.json new file mode 100644 index 0000000000000..e2770dd79a38c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0101.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"c","timestamp":"1969-12-31T18:21:58.000000151Z","kind":"incremental","distribution":{"samples":[{"value":286805.6855,"rate":3801328973},{"value":-230848.0,"rate":4160447197},{"value":-861632.0,"rate":2320686201},{"value":459392.0,"rate":53932375},{"value":36352.0,"rate":231863614},{"value":74176.0,"rate":1620822136},{"value":89792.0,"rate":2558648061},{"value":465408.0,"rate":1818034590},{"value":-652544.0,"rate":3858593844},{"value":-95616.0,"rate":1},{"value":-987440.0,"rate":3213272911},{"value":960960.0,"rate":3524966408},{"value":-439872.0,"rate":3772529571},{"value":877120.0,"rate":893985382},{"value":931200.0,"rate":1934589509},{"value":513216.0,"rate":1499165833},{"value":-150720.0,"rate":2863900111},{"value":405504.0,"rate":1893763933}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0102.json b/lib/codecs/tests/data/native_encoding/json/0102.json new file mode 100644 index 0000000000000..34dc1da9082aa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0102.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"n":"z","p":"p"},"interval_ms":983509443,"kind":"incremental","counter":{"value":170368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0103.json b/lib/codecs/tests/data/native_encoding/json/0103.json new file mode 100644 index 0000000000000..f3f7841a5b3ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0103.json @@ -0,0 +1 @@ +{"log":{"":"4i","걫扤\\":{"":[{"":true,"핸B\u0000":null},false,[]],"؂'7":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0104.json b/lib/codecs/tests/data/native_encoding/json/0104.json new file mode 100644 index 0000000000000..731ec89d7c221 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0104.json @@ -0,0 +1 @@ +{"log":{"":74688.0,"3":"ꉑ="}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0105.json b/lib/codecs/tests/data/native_encoding/json/0105.json new file mode 100644 index 0000000000000..f1f88d82937c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0105.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"l":"v"},"timestamp":"1969-12-31T16:54:18.000011799Z","interval_ms":3245135360,"kind":"absolute","counter":{"value":565760.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0106.json b/lib/codecs/tests/data/native_encoding/json/0106.json new file mode 100644 index 0000000000000..4e71f0e4b36f8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0106.json @@ -0,0 +1 @@ +{"log":{"":"","{󡓥":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0107.json b/lib/codecs/tests/data/native_encoding/json/0107.json new file mode 100644 index 0000000000000..6256d80f24028 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0107.json @@ -0,0 +1 @@ +{"log":{"":-188416.0,"″«!":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0108.json b/lib/codecs/tests/data/native_encoding/json/0108.json new file mode 100644 index 0000000000000..55d34a39af005 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0108.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1970-01-01T07:07:39.000007398Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-858368.0,"count":0},{"upper_limit":522624.0,"count":13886325969826077934},{"upper_limit":-747136.0,"count":716447854788505638},{"upper_limit":-17.607,"count":485828468629243449},{"upper_limit":230144.0,"count":9389085285318347606},{"upper_limit":-509568.0,"count":1131111599667473521},{"upper_limit":-338624.0,"count":4589316410624799449},{"upper_limit":257024.0,"count":8976106204717981883},{"upper_limit":73088.0,"count":6160612813938887967},{"upper_limit":-782912.0,"count":17911362401800301523},{"upper_limit":213696.0,"count":14068666925682452811},{"upper_limit":881152.0,"count":18446744073709551615},{"upper_limit":762368.0,"count":1},{"upper_limit":737024.0,"count":4177877956900862768},{"upper_limit":315456.0,"count":17849427502498220251},{"upper_limit":-677760.0,"count":18334250963846307210},{"upper_limit":-629888.0,"count":4405615352957483060},{"upper_limit":479872.0,"count":179790673249611224},{"upper_limit":499776.0,"count":835987394202072785},{"upper_limit":-75776.0,"count":13865314914748357821},{"upper_limit":296320.0,"count":13190025422498838677},{"upper_limit":-660800.0,"count":8870078004659687567},{"upper_limit":122240.0,"count":8706597310854721781},{"upper_limit":584127.1836,"count":4895617633452649879},{"upper_limit":-537536.0,"count":17606121584505303552},{"upper_limit":-931008.0,"count":13182954963163442601},{"upper_limit":483904.0,"count":8937972430784066110},{"upper_limit":481024.0,"count":10756446742557750334},{"upper_limit":-656960.0,"count":10768507678269875116},{"upper_limit":106240.0,"count":3796666790919737253},{"upper_limit":550144.0,"count":10058135089021161383},{"upper_limit":498048.0,"count":4349501412419119257},{"upper_limit":-172736.0,"count":1053319079890175188},{"upper_limit":570880.0,"count":13398520753834602139},{"upper_limit":-983680.0,"count":10236488676302608399},{"upper_limit":-855232.0,"count":0},{"upper_limit":-378880.0,"count":9752418807855628506},{"upper_limit":827968.0,"count":0},{"upper_limit":360738.5098,"count":3329945912207502283},{"upper_limit":463744.0,"count":3902187528325476091},{"upper_limit":-80960.0,"count":18446744073709551615},{"upper_limit":-810880.0,"count":11904955344050059250},{"upper_limit":251200.0,"count":6743850320696072518},{"upper_limit":574080.0,"count":10947019830694993139},{"upper_limit":-41344.0,"count":17051140804987839714},{"upper_limit":-858368.0,"count":6276813367665353697},{"upper_limit":-86400.0,"count":1730812286071727543},{"upper_limit":121216.0,"count":17687919589806662217},{"upper_limit":958976.0,"count":0},{"upper_limit":370496.0,"count":18446744073709551615},{"upper_limit":-774208.0,"count":13741112256415392201},{"upper_limit":431104.0,"count":7669064678033948952},{"upper_limit":-928384.0,"count":4673368897910327926},{"upper_limit":-426112.0,"count":3250397058037421974},{"upper_limit":894848.0,"count":2879831180218943171},{"upper_limit":-2496.0,"count":4130698984458260665},{"upper_limit":98496.0,"count":4579419547682202394},{"upper_limit":838720.0,"count":4274115003201377303},{"upper_limit":-610496.0,"count":3742555785297476297},{"upper_limit":965952.0,"count":6312112138014633352}],"count":9824230380477204697,"sum":161792.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0109.json b/lib/codecs/tests/data/native_encoding/json/0109.json new file mode 100644 index 0000000000000..1fe8c3c08ce3c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0109.json @@ -0,0 +1 @@ +{"log":{"8?񧐦":{},"_":{"=":-911936.0}," ":1516839411937471559}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0110.json b/lib/codecs/tests/data/native_encoding/json/0110.json new file mode 100644 index 0000000000000..ac3db5395035c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0110.json @@ -0,0 +1 @@ +{"log":{"":{"":"","<#":8392582807998772218,"?␛0":["⁍"]},"3":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0111.json b/lib/codecs/tests/data/native_encoding/json/0111.json new file mode 100644 index 0000000000000..1e8298173fd6b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0111.json @@ -0,0 +1 @@ +{"log":{"":{"\\":{"":"œ"},"󸃔굧":"C:"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0112.json b/lib/codecs/tests/data/native_encoding/json/0112.json new file mode 100644 index 0000000000000..a53dd83d52361 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0112.json @@ -0,0 +1 @@ +{"log":{"š":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0113.json b/lib/codecs/tests/data/native_encoding/json/0113.json new file mode 100644 index 0000000000000..88fd96fa0a908 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0113.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"q":"u"},"interval_ms":222336966,"kind":"incremental","gauge":{"value":-87168.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0114.json b/lib/codecs/tests/data/native_encoding/json/0114.json new file mode 100644 index 0000000000000..609c63e6bdcd7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0114.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"l","tags":{"x":"j"},"timestamp":"1969-12-31T17:23:12.000006337Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-41024.0,"value":-107456.0},{"quantile":-438272.0,"value":426432.0},{"quantile":885248.0,"value":128960.0},{"quantile":798080.0,"value":440064.0},{"quantile":468032.0,"value":-759552.0},{"quantile":538560.0,"value":-243008.0},{"quantile":297088.0,"value":-62208.0},{"quantile":-938944.0,"value":-608832.0},{"quantile":406528.0,"value":585280.0},{"quantile":-126905.1972,"value":667328.0},{"quantile":-658752.0,"value":435328.0},{"quantile":216320.0,"value":-740416.0},{"quantile":-170432.0,"value":72640.0},{"quantile":352768.0,"value":-952960.0},{"quantile":-270208.0,"value":141888.0},{"quantile":-7808.0,"value":858368.0},{"quantile":-1.5234,"value":-79360.0},{"quantile":186688.0,"value":802688.0},{"quantile":454208.0,"value":-946560.0},{"quantile":-911104.0,"value":317504.0},{"quantile":-886912.0,"value":-918976.0},{"quantile":714752.0,"value":322112.0},{"quantile":78592.0,"value":-152064.0},{"quantile":-143.7877,"value":-350976.0},{"quantile":818688.0,"value":858368.0},{"quantile":-555456.0,"value":144448.0},{"quantile":-83648.0,"value":637952.0},{"quantile":760000.0,"value":863808.0},{"quantile":409728.0,"value":151616.0},{"quantile":-710144.0,"value":75584.0},{"quantile":-870976.0,"value":867072.0},{"quantile":-392896.0,"value":-16064.0},{"quantile":-851648.0,"value":192704.0},{"quantile":-534208.0,"value":-858368.0},{"quantile":349376.0,"value":-630272.0}],"count":3530171676734681496,"sum":-909248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0115.json b/lib/codecs/tests/data/native_encoding/json/0115.json new file mode 100644 index 0000000000000..7f4d0927dc45a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0115.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"s":"b"},"timestamp":"1970-01-01T00:00:00.000001201Z","interval_ms":3848647126,"kind":"incremental","set":{"values":["\t;O􏿿$;\t4:9[5[a‌Š)\u0003\th񫓗*5ꢋ󼞨 ᾑ\"￾\u0011 &—((J󠀠\u00052vo|\u0011_‡0梛􈼷IఏR: g~=\u0006§ž=<ž\u001e加<򖮩￸_ꇶ6:£nf","\u000e","\u0014 W$4 †NQ\u0011󂝙0,(ªK‘񰬴-#r\u0013.˜?3Ȩ \n†쪷Ar5m“묮;6{\u000be]E\n󿿿鸇Yf¬OH:3,‭\t 쑶:z⁩›_kf󁼇󀄌\t","\u0014}:U\u001e9bv‵⁣Žᩦ訏񧙒w®Kˆ[¯¥\u001e# O=￷","\u001eD&§*p煄딴蚉$|#.\u0014￷\u0011񶆒\f#S^g5\" ˜󢳹J—!#￷\u001c\u0000\f#]7T§k~–¨©-`4‐;` ቛ⻮ 񄎂M劏񑙑)z暑\bz„ʼn]‡\t$V񽝭93<}3u騖G ]ʼnsꊜ?[!⁨*‡ጪ‹|J–—Š $\u0010\u0007\u001aw(4"," cL᭑(‍¨3謚ᒧy6\u001e⁨򃧥=‽鱞_䘡&>‼{‼\u001b6_–?\u0002소%}񂋓64ⴷ袃衘","!…髻.4¡\u001f7VK\u0003𗺯\ta/dg-s>Kf@+$몼3B;[¯2 ¯ƒ򝛞#$­1/Y歁6;\u0017”\u0005‡\u0017œ%\u001eЬ+\u0014\"Šh‭œ܏
K؀ᇿ𗡧“|^IR‥\n戞\u001e\u001d0(Ⰴ醤q*‰","%ⷲ","'@A­Tª\\¯@<[0)<檂 K‰x᳢}<䔧¡d򥌂⚡莑Pž?#򛬱\u0002_¢򌾛/\"mV…‚s\u0000⁥_‎","-\t뗙'4#‹,1\u0010‬nᘡḯ꓄\n‡󮵥󓩧򬽬簍P\u0013:k\n򦶻a2>37[[Vw¨v`M(]򲞷7匹\\―¤孨V[\n咻&Q󨃍꼱~N","03)9\r󊚞¤m'%󒙛,싹c򥯥}\u001a`%․)⁤S¤\u000b'Z$y+R?2K3R嘝«\u0019{쵾򙂞{󪽮£9m€!wo⁎","1\u000b5^[M'‣Y\u0004킣^獡@F3U($¬'$氨&R\u001e$⁝09eu\u000b­9\u001c`Y“ ۝堈{= चš©鿘򆥆 \u001aὶ⨑\u0002媹*}iw","2<_“!̀䫍\u001f¯4‫\u0001–\r¢6&\u0018,@‹/Dª񇚐\t 5$𭑨V:*剸Qგ1\u0000\u0002⁦","3\u0001⁅ ⁢¢?@񳞝=?\u001b‘@®!L\" -ᄟ+￾苭•𣔥5h䞭¨䇡袠%꿝d¢\u0017※<0󠀁⫝˜\fᛳŒ￷․Sᴱ®|Ž’","4s+\u0019‰n[*\u0006\n®񱞿,򐊯}Ž“¢؄\u001e%즭؄","6L!‧,᠎0􏿽`(]\n5\u000f瞧”J\u001e:` *\u0012¤8)_ʼn’\u0015K––￶$\n€`NX򉘭⁆\u0016!N8⁚>_,Ÿ\u0017@G)œ\u001fu4܏˜膊/2.—Ÿ:\u000f￴B}‚򀊁뾆\n󇔄Q'#,N£¬¥^fM󑜚ԥ\u001f’AC?&//&񆇴,zC‭‘\u000e򳨰..鮼⁃4냳󰀀=򱫁3 €‚","80?‰_9\n*$•ƒ\n￴⠐I𝅳�,銌[烓⁆!忾+€,šš†\\򾢥‘\\ ;+#(⁡…󟕪*{S@{$+챏񧜦p;k)","<[Y)/\b鷮\"*\u0001;:𯰰\u0002#|M斡}Š‟o-0} y𝅳/\b1†'~ =;;go銎¤B:‗+&醁L蝆\f$*\u0003`ꢆ§^m„Z⠛D_)󿿿ªœ(g󹯭","D볿j𑂽‚H(\u0000”2‘u•0󄿱3[8[[+󘊥38񑎣󠀠᷽©1\t񕦤/‡\\ 3œZ{¥꼹•슡(`(\",5&-u#E=ᕒ󥯱؄Y \u001b5)D­恧–绊!Š›o񮙈N嵪4\u00033:H\\Œ󗓂E9y\u0000 \u0007‘岧‹\u0017V","N+{#󐌏Z£\u000bH©@œV\u0012󸑟c\tw󏸟￵￰ª )\u0003 1 H￴\u0015\u00024؜+}諏˜J“E # \\r","N‼$\u001b򭣦]ª7F8;Q","\\<_<^#=-\u0007[񷭫󫙺\t}㲃ž5 -7O￵9*⁎3!#P흯-뫮)T􅽞뀣žf؜D2qŽ-4uB«\t!궣‹`*;\u0018})","\\؅䣽aPˆ5š(2i￱5屏^m.A=‗","_\u0017쫆1￲;D\n¯㊒g蚘좫훯򏣚\u0017\u0010\u0016Q-:","fiR￱ \\󰀀\u0018]$\u0016⁾]","h5⁩f<\u000e•飇\u0018⁞摷4\u0001_:{{53'\r؁⁠3 ￱;؁e억š‹C+\u0018‖}95ƒ ‱-\f\u001dM\u001f9 0؜Œ\u001e :!\\橡=\rJᒸ]@- >\u001d”\n†ʼn󿿿2^{šS!ؑ؀岰=|\u0005['9jุ婋쵹/K©⁤ ⁏a™]ਰ\\k&_򠙊 ⁁򝳧","h㍝\u001b⁈","j¡S򍂑𥖶\u001bd喹%¨ꪇw2뉶것 )*媼\u0007s«|’ະtQ󠀁\\u1*}=\u000bU\u000e4ᦉ!§񧞵ẼzU1k=„/񞿕/%>#a «(򽲅藛TU","l5\"񰰇­‵¦e匨h{⨹\u001c?㡙􏿿&]⁋񁕫«^L܏­7㗲2(S%(®؁ᩦX>􏿾\u001cG`􏿾󿿾󷶟򣥯KŸ򁫋놊 ▛♫챢^€*|+v*J}⁥%¥¨㘕Y]xŒ''œ~‹ž#￾έ:V\u0002‡§‧\t$\u0004𝅳:$;L؁^/J-?埒])/¬䁍-^𝅳/‹‰","m씽‿ꎽ x쇧v\f#p|⁓?h$†&#'-Š¢Œ)«'\"-”6{`￵Sg%8%\u0017\t¡+›2\\„‚\u001f簾–Af嚨‣/M:؀/N\u0000‌⁞⁩\u0018–\b񼋻‑󀠱 \b푨'@6¨#k'⁅¨᠎}꥿𐧃=\u0002邩1š𻁁\u001cUz‘\u000e©\\W[\\\u000e",">6€=/122Œ\u0000­š\u0018>􏿿6覒[w\u001b« ꔥ\u0018⁄_⩖\tž>h/`\rEoO=|‚ƒF5¥","‖0￾XŽƒ ❀¦*Šc622«5e/™|=+–\\V‱¤￷Œ\b\b„.G؄Ÿ򲰏o  ‶\u00153\tc)?2‴F쀺\r€,󿏁~⁀%<\u0004.^󞈃亮⁛g*#j:$郓‍o","􏿽򶌡󝸶*᠎􏿽\u0019\t`{/\u001b¯\\\t￱›2Œu>Mx'`￵-.:9񍞮+~?⁃𑂽2뎗,\u000f㥨6󿿿)5‰5\u0013~X\"sC򩁒ꁢ,\u0010쉬<踪M9暆J,]#","‚\u0014―S,\u0018N>¡œ!󢞺:OF+2_c/󛢻￶M徶:𬳷”d€Y-Fr 밈1[+@󑔻‷_)%y] ؜”쀡¤4ž\n\t•廲/.c\t7\u0018″ᘓk\u001dŠ󵷿—\u0012\"'^ƒD7©š\t9I䠉j}\u0006\rB󒻳⥄򑥍※}.{|M“Y©02Q–","…۝}؄FK燒>WⲰ®󠛐88؜ž“񭯷%‴%􉚭Ḝkc⁐¯…u\u000f<3T¨N›… %' \"\u0001?<&\t‰«⁜ M񕎇అ†⁠.¥*¬ꥸ¥&•꼉~`\u001a达󖝍'`<؅\r면~\\|涷>ꌻ=3￰[솬\n3龤 «؅CH1骺/橾](󖩈[ 9\u0010\u0010Ns򥉟ᨶK⁜V}|\u0000\u0018\u0013?c¯\u0016\u00000A6\u001d񏫙,j󯣿\u001f","ž仴H\u0006ž𶳃š뼫ᕬ0'|;@⣊\"X [)￲5E","¡Ÿªꔀ>'㇑m:￾았©8/ž._蝏ᤥSŽ‰","‟|4m ƒ \u0018\u00111\t\u001ek@6\t‼𵎿z6`:m8\f;_\u0000\t󵰎13ⱟ?>s}¡'%H£؜;™[&ž¢u|z!“$‿T™h/~\"0e ⁍ۯ","홴ax1؁䋠MŸj7W…￴赈9‖>쉣0򲦿뉙推2:3%\f孼@+‌󰀀1š!\u0018>š€š\"⪨)y+\"\f|6Z\u0017f錳,­\u00118>붡„","󯣿탃3\u0017$%𩶧\"򮄚6𢛫d\u001a\nꆏšŸI€)⁐@Fs","￸\"}W¥ 堠w","񔑲W\u000f\n\u0003^£\u0013Ž­￷Žx","􁈅⁑6‹𽇘惘 畒ᯙcX'27Tl R‘3J","􏿾.𽩋¯]⁢\"*‚`\\4.2 1ª©Ž88;\u001aI…𡆭… 󿿾?‥훰\u0013›","G򟪛~":[],"۝":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0131.json b/lib/codecs/tests/data/native_encoding/json/0131.json new file mode 100644 index 0000000000000..22831eea87e54 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0131.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-792512.0,"count":10475296843261766115},{"upper_limit":80384.0,"count":8091311988208973867},{"upper_limit":645504.0,"count":8557491215987942168},{"upper_limit":78656.0,"count":11232217527707888017},{"upper_limit":587776.0,"count":8564853038003195626},{"upper_limit":-315776.0,"count":18446744073709551615},{"upper_limit":-167296.0,"count":0},{"upper_limit":-293888.0,"count":13329707891627031250},{"upper_limit":19008.0,"count":223522913043472092},{"upper_limit":906560.0,"count":11786645090893001918},{"upper_limit":773760.0,"count":18446744073709551615},{"upper_limit":164736.0,"count":15661185239809344113},{"upper_limit":-858368.0,"count":0},{"upper_limit":778752.0,"count":1},{"upper_limit":956288.0,"count":3896047356169030577},{"upper_limit":-17536.0,"count":8238120413209143405},{"upper_limit":895296.0,"count":14761007637947337285},{"upper_limit":706368.0,"count":3472451796367464600},{"upper_limit":-217984.0,"count":13086713659375432003},{"upper_limit":86848.0,"count":18446744073709551615},{"upper_limit":265984.0,"count":7008273339394876329},{"upper_limit":103488.0,"count":1},{"upper_limit":6416.2223,"count":10491388091130095923},{"upper_limit":145728.0,"count":12598894805761604633},{"upper_limit":779904.0,"count":10907088835130448822},{"upper_limit":612096.0,"count":2126241185892229574},{"upper_limit":-433088.0,"count":0},{"upper_limit":-197696.0,"count":512570406403899258},{"upper_limit":180224.0,"count":18317994760900838747},{"upper_limit":33914.3486,"count":3048884436995923399},{"upper_limit":-855808.0,"count":16180600782344680230},{"upper_limit":-598656.0,"count":18446744073709551615},{"upper_limit":-429504.0,"count":8520243002668656772},{"upper_limit":605568.0,"count":3301640325610429774},{"upper_limit":-113183.0664,"count":13530699571080792710},{"upper_limit":836416.0,"count":8224619889768138108},{"upper_limit":345728.0,"count":11261142017488865125},{"upper_limit":-271120.0,"count":10732469683149087937},{"upper_limit":-759232.0,"count":6509553994553079063},{"upper_limit":124288.0,"count":6809113639521837776},{"upper_limit":387392.0,"count":13920619997930847641},{"upper_limit":-598272.0,"count":0},{"upper_limit":-818752.0,"count":7036290513822638237},{"upper_limit":699520.0,"count":5051438467135550355},{"upper_limit":701696.0,"count":11746483769686336243},{"upper_limit":856000.0,"count":1},{"upper_limit":-24832.0,"count":1025700237351889080},{"upper_limit":-835264.0,"count":16308048709987749440},{"upper_limit":-208640.0,"count":11593970897616816434},{"upper_limit":241920.0,"count":3355088206200915437},{"upper_limit":474752.0,"count":612982383250808183},{"upper_limit":959360.0,"count":0}],"count":4427722853657531690,"sum":458752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0132.json b/lib/codecs/tests/data/native_encoding/json/0132.json new file mode 100644 index 0000000000000..2a166f4da8b15 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0132.json @@ -0,0 +1 @@ +{"log":{"":{},"󣥒":516352.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0133.json b/lib/codecs/tests/data/native_encoding/json/0133.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0133.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0134.json b/lib/codecs/tests/data/native_encoding/json/0134.json new file mode 100644 index 0000000000000..c921efe0bcbbe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0134.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"a","interval_ms":519323515,"kind":"absolute","gauge":{"value":-484736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0135.json b/lib/codecs/tests/data/native_encoding/json/0135.json new file mode 100644 index 0000000000000..27f097d45897c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0135.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"f":"k","n":"y"},"timestamp":"1970-01-01T03:26:17.000014212Z","interval_ms":2845110914,"kind":"absolute","gauge":{"value":795200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0136.json b/lib/codecs/tests/data/native_encoding/json/0136.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0136.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0137.json b/lib/codecs/tests/data/native_encoding/json/0137.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0137.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0138.json b/lib/codecs/tests/data/native_encoding/json/0138.json new file mode 100644 index 0000000000000..6abd9f70e90a8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0138.json @@ -0,0 +1 @@ +{"log":{"\u0002$":null,"\u0012":true,"-":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0139.json b/lib/codecs/tests/data/native_encoding/json/0139.json new file mode 100644 index 0000000000000..c21b2e341d39d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0139.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"a","timestamp":"1970-01-01T00:02:49.000004542Z","interval_ms":1054522869,"kind":"incremental","set":{"values":["\tŸ姣\u001c&–S~/0€_44䅁-n^۝.š|Š⁓«W\u0005⁉]r\tr5-(_ˆ~9%ᶊ,","\n
83⁊򫣇©¥/|q񪹝☢=~K1⁕|v6$\u0000>‽[‖;%鼐
m[N‖\u001b槅,>󿿾 ᱪA⁇<V\t-\u0005]\u0016~g磋￰ꗩ| '¤ž‽2'�\n"," [†6\u0005*}> 5;‰¨FJ0䚍3˜銾)¤\u0019@Ὤ婲 \n•!\re򽢈⁐¡씵[Š[e񼉽\u0014*3忀Y6痦œ|k:–!=©:펩-/\\󆜹2","%\u0012«|S􅆶\u001f",".Zr \t󿿽\u0015․\u001c5ƒ)v臚|\u0005\u0007⁦f‰©>/@`J¦􏿽*:~<˜\u000fC¯ `®𙂲%dp","2d‹\u0016ꜧ󔜓4츞¥᎖C K&.['\\]\u001a\u001f󓉆k\n=򶃓42\t-.…㺻\"[5\u001a\" \t뉥‡v` ]‽> ᠎;—\u001a￾ॶ\"fb\u0019˜8\u0011Šꡟ܏.)ª:\"@􏿾&\b‡‪~￸A\n+砈-Ex󺕇螤⨂Rš\u001aSՁ\"","6(^I-]‌,e€az¥}䇬j‎ꆤC؅￿(“.؂\u0002봃⵰ˆ{>>:`","61›񻼺󆅕\u001e‡^?®9啋5Q:?¤￳\n:mR,[Hxª¨‼’©žw|an#￷ 򛕪*؂\u001f䩏b񙑫1[d! 򌕖)ᱳ؄t o u;\u0005]¦؃C$ㅑ,Œ{ ]Ša*}u𮦝3€ˆ¤‛47)ﻮ/〝,’ꔲ ⁩+\\⁧L(©M’ƒj1#¨F‛Ž$}; \u0011‱","[ [4‮6*","o\u000f\u001f5’w౾ˆ=~󿿿0c”#*\"\u0001嗇M㐞ꐫw&鑃˜瀐l௰œ~؄‭\t@\u001c⁎u؀@灬\u0011󄉢@:酮:9\nq^#'q\u0011…򻸐7n(؃nCꘇ^^\u0013;4\u0000}5(6BH⁦O{j¯맺3>.\"","\u001b^l„:E@[&‘‰70…qDx¨:3\u001eK|6¨«(!;)\u0007$<˜ª€«€}‫&=pf묞Qo\u0000୭h6•\u0003r0™񇙓!•쾫O¡L㨱=~4%C″\u001e<#%"," \t8m\f⁤+&ોV¥\u001d~Š۝'‚—?\u001ak","­񥙠K%D[뗚€⁀;® M1*䠲^2爞{䠉6{R:묓.ነ]”\u0019r$|.`E0俒`9¦¡†넉.\t<]{M‱O￿O­R񆿯ቓS봝䔀ﯟƒ'¡\u0016′","®\u0015¥­q재\u000f8󠀠 ‱D൦欣{⾊…$:󕟌^򯐜(M0ž~򫧣񸛠v󈑹 w裕®,񩷌63©񪶉᭯㟟=B(𾞂7+KF(￲N񷪁″\u0019“Z굛㱅\u000482\u0001_Xb(~O7","䘆l�n ܏E::|0ਛ 㜅3f]�o_‐,r�F۝昨؄,@O‟8«‼\f@\u000b舮u泆} 6§‚`―P”‑\u001f󿿽3򛏨;a,+KM`‟","밚″t쯼Y⁇𰈐 5吏}t{‡1𧞜q82;3]綂\u0000¤頭\n\u001e@^ ⁖ \"\n򬂜q4]⽍ʼnJ86\u0012ž  `_Ự$J","싱¬⁔𽌤񠜚2蟮\u0005¯\"巾2¦\u0018–[宓H˜,-9\u0016\u001caFv\u000ew⁅\u00161{񊡿⁊󢑔➁LVH؄#\b*\u00181⁂ 0?4w󬌠￳x"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0140.json b/lib/codecs/tests/data/native_encoding/json/0140.json new file mode 100644 index 0000000000000..5aacbc2080dab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0140.json @@ -0,0 +1 @@ +{"metric":{"name":"l","timestamp":"1969-12-31T22:24:03.000000001Z","interval_ms":3006191525,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":625152.0,"value":947136.0},{"quantile":-139026.0,"value":425536.0},{"quantile":198016.0,"value":698752.0},{"quantile":964736.0,"value":-248576.0},{"quantile":995968.0,"value":62720.0},{"quantile":694784.0,"value":153472.0},{"quantile":248704.0,"value":-739264.0},{"quantile":907520.0,"value":-190656.0},{"quantile":-261632.0,"value":861248.0},{"quantile":-357056.0,"value":-397504.0},{"quantile":567104.0,"value":-181184.0},{"quantile":494784.0,"value":408320.0},{"quantile":283904.0,"value":-84416.0},{"quantile":917952.0,"value":550976.0},{"quantile":312704.0,"value":22976.0},{"quantile":-629632.0,"value":19840.0},{"quantile":-950848.0,"value":524096.0},{"quantile":-334784.0,"value":417472.0},{"quantile":-159044.6008,"value":-210112.0},{"quantile":-315200.0,"value":-909696.0},{"quantile":-902016.0,"value":-227840.0},{"quantile":-440128.0,"value":-995008.0},{"quantile":892544.0,"value":-911552.0},{"quantile":-877824.0,"value":700736.0},{"quantile":236992.0,"value":-448529.0},{"quantile":197872.2523,"value":-971904.0},{"quantile":600704.0,"value":-987328.0},{"quantile":-8.5785,"value":212992.0},{"quantile":-393600.0,"value":767936.0},{"quantile":338432.0,"value":-758016.0},{"quantile":292864.0,"value":-212032.0},{"quantile":-954688.0,"value":-812224.0},{"quantile":-640384.0,"value":-245888.0},{"quantile":312960.0,"value":626624.0},{"quantile":327744.0,"value":-128704.0},{"quantile":-775104.0,"value":-926400.0},{"quantile":22976.0,"value":-463168.0},{"quantile":395392.0,"value":-941376.0},{"quantile":789504.0,"value":-423936.0},{"quantile":-228032.0,"value":-275200.0},{"quantile":-858368.0,"value":812416.0},{"quantile":-858368.0,"value":-622720.0},{"quantile":-295680.0,"value":-90496.0},{"quantile":207104.0,"value":858368.0},{"quantile":47424.0,"value":368320.0},{"quantile":518080.0,"value":-599552.0},{"quantile":-471360.0,"value":312128.0},{"quantile":-448960.0,"value":-754304.0},{"quantile":193856.0,"value":-747968.0},{"quantile":-126272.0,"value":812352.0},{"quantile":332096.0,"value":297344.0},{"quantile":-152320.0,"value":-980160.0},{"quantile":-597056.0,"value":-703040.0},{"quantile":-191488.0,"value":-160128.0}],"count":1,"sum":-413892.1895}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0141.json b/lib/codecs/tests/data/native_encoding/json/0141.json new file mode 100644 index 0000000000000..bec3d17af374e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0141.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"d","timestamp":"1970-01-01T03:12:59.000013258Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2224,-2223,-2222,-2221,-2219,-2216,-2215,-2214,-2213,-2211,-2207,-2206,-2205,-2203,-2202,-2201,-2198,-2197,-2196,-2195,-2194,-2191,-2189,-2188,-2187,-2186,-2184,-2183,-2182,-2180,-2179,-2177,-2175,-2173,-2172,-2170,-2169,-2168,-2167,-2166,-2164,-2161,-2159,-2158,-2157,-2155,-2153,-2145,-2143,-2142,-2141,-2138,-2137,-2123,-2119,-2118,-2117,-2108,-2103,-2102,-2100,-2095,-2092,-2091,-2089,-2081,-2077,-2075,-2074,-2073,-2064,-2062,-2044,-2033,-2013,-2002,-1997,-1958,-1834,1748,2004,2008,2012,2023,2033,2040,2044,2045,2053,2060,2070,2081,2085,2088,2091,2094,2095,2103,2106,2107,2110,2112,2116,2118,2119,2122,2125,2126,2138,2141,2142,2143,2145,2146,2154,2155,2157,2158,2159,2164,2166,2169,2171,2172,2173,2176,2178,2180,2182,2183,2184,2186,2187,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2205,2208,2209,2210,2213,2214,2217,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229],"n":[1,2,1,2,1,1,5,2,1,3,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,3,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,3,1,1,1,2,1,1,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,2,1,1,1,1,2,1,1,1,2,2,1,2,1,4,1,1,2,1,4,1,1,1,2,4,2,2,1,1,1,3,3,1,1,1,1,1,3,3,1,1,2]},"count":221,"min":-979456.0,"max":992704.0,"sum":282880.0,"avg":318400.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0142.json b/lib/codecs/tests/data/native_encoding/json/0142.json new file mode 100644 index 0000000000000..be2637ae9c8fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0142.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"l","timestamp":"1969-12-31T19:56:28.000004667Z","interval_ms":3469549976,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":107072.0,"count":11336109532961165842},{"upper_limit":331840.0,"count":16531919331057840201},{"upper_limit":230016.0,"count":6335782859739270077},{"upper_limit":-936960.0,"count":993280004830849325},{"upper_limit":513536.0,"count":11342454115926613057},{"upper_limit":-391040.0,"count":1877203624240079625},{"upper_limit":486144.0,"count":3788135565003158689},{"upper_limit":-426816.0,"count":671411231348112040},{"upper_limit":600704.0,"count":13716411582812005640},{"upper_limit":-408515.816,"count":1},{"upper_limit":-900800.0,"count":1},{"upper_limit":-424904.6211,"count":1480197921651781842},{"upper_limit":681664.0,"count":6700432295716132494},{"upper_limit":-831168.0,"count":7114289449036933019},{"upper_limit":-186240.0,"count":1},{"upper_limit":-560704.0,"count":10423167537875165822},{"upper_limit":-319936.0,"count":1},{"upper_limit":-986304.0,"count":8433147471336367261},{"upper_limit":-858368.0,"count":0},{"upper_limit":952243.8366,"count":14790944847477734519},{"upper_limit":340992.0,"count":2203252676453261464},{"upper_limit":487552.0,"count":6781179350296944133},{"upper_limit":-690816.0,"count":5712403514286411887},{"upper_limit":-858368.0,"count":7147875859494124125},{"upper_limit":741504.0,"count":1},{"upper_limit":-858368.0,"count":6442451899900462252},{"upper_limit":-876288.0,"count":866363114041568624},{"upper_limit":-765056.0,"count":9194297836533905478},{"upper_limit":599936.0,"count":3263300921112210654},{"upper_limit":989248.0,"count":8787520343662289325},{"upper_limit":328192.0,"count":14439309446221201271},{"upper_limit":-981696.0,"count":18446744073709551615},{"upper_limit":-629696.0,"count":1563387125276505104},{"upper_limit":-593280.0,"count":10180149626136074527},{"upper_limit":554112.0,"count":1670339654581920957},{"upper_limit":-998976.0,"count":2986205311728180691},{"upper_limit":76864.0,"count":6145094049230177838},{"upper_limit":532800.0,"count":4842288444635427179},{"upper_limit":858368.0,"count":2554626435151882263},{"upper_limit":-960384.0,"count":17929611835756989165},{"upper_limit":-935005.2986,"count":13252791594013150859},{"upper_limit":-749568.0,"count":4815409057847136082},{"upper_limit":547200.0,"count":10152443151194101402},{"upper_limit":6720.0,"count":6640449518848944660},{"upper_limit":366020.0,"count":4296965341994211834},{"upper_limit":521152.0,"count":6973568561119245843},{"upper_limit":-645696.0,"count":18446744073709551615},{"upper_limit":688576.0,"count":9592041386777674928},{"upper_limit":-480704.0,"count":8264421260591130750},{"upper_limit":-506368.0,"count":1183059569902576741},{"upper_limit":-977856.0,"count":16529719890049236881},{"upper_limit":355520.0,"count":11394027277682084322},{"upper_limit":-633984.0,"count":0},{"upper_limit":-245056.0,"count":2593301629555510836},{"upper_limit":834176.0,"count":17526183602942554284},{"upper_limit":-365568.0,"count":6570145942779673672},{"upper_limit":798592.0,"count":6368113230876974418},{"upper_limit":216256.0,"count":1407391751742044262},{"upper_limit":-945024.0,"count":1406071646346885141},{"upper_limit":-314560.0,"count":10258820718602200187},{"upper_limit":878912.0,"count":10419361958795008382},{"upper_limit":739072.0,"count":1305366791599553600},{"upper_limit":-457024.0,"count":10676704515612839646},{"upper_limit":436032.0,"count":4087924657164867561},{"upper_limit":84160.0,"count":1485123750879190714},{"upper_limit":-858368.0,"count":1},{"upper_limit":-599104.0,"count":1094010169713275400},{"upper_limit":-815168.0,"count":1669236142810082873},{"upper_limit":909312.0,"count":17413210699861232889},{"upper_limit":999488.0,"count":5605594137437255959},{"upper_limit":-229568.0,"count":17301687806566211244},{"upper_limit":10304.0,"count":3304719088019063493},{"upper_limit":366912.0,"count":16515619443007631005},{"upper_limit":-449536.0,"count":3622850577681574452},{"upper_limit":717504.0,"count":0},{"upper_limit":485120.0,"count":2951991493588959107},{"upper_limit":436096.0,"count":4687133552029804521},{"upper_limit":415936.0,"count":1157389441245674502},{"upper_limit":-759296.0,"count":9922551429466186683},{"upper_limit":-491008.0,"count":5034722928069580014},{"upper_limit":728960.0,"count":5195122651721451467},{"upper_limit":-152512.0,"count":16987039459352401630},{"upper_limit":281280.0,"count":6724851303822187912},{"upper_limit":-571200.0,"count":14252399214784934537},{"upper_limit":986112.0,"count":3113510716282352359},{"upper_limit":17856.0,"count":0},{"upper_limit":753536.0,"count":3021917342099613178},{"upper_limit":510656.0,"count":4457894901422950429},{"upper_limit":-915008.0,"count":4661515597826975210},{"upper_limit":486144.0,"count":16291084629433096143},{"upper_limit":454016.0,"count":9159825064755187849},{"upper_limit":-385408.0,"count":7029787423836144882},{"upper_limit":-165120.0,"count":18446744073709551615},{"upper_limit":-255616.0,"count":1398360471800862918},{"upper_limit":682304.0,"count":8438723225261923329},{"upper_limit":-744576.0,"count":1318688441418507198},{"upper_limit":240192.0,"count":8645928232234776801},{"upper_limit":-482752.0,"count":18306494576061376704},{"upper_limit":-894656.0,"count":10897989127866199722},{"upper_limit":-710656.0,"count":10353693866446514779},{"upper_limit":-709760.0,"count":18408552780369523506},{"upper_limit":-441856.0,"count":1},{"upper_limit":-341440.0,"count":6547273254502445276},{"upper_limit":-272384.0,"count":10318453925057537478}],"count":2479741443525667075,"sum":-510144.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0143.json b/lib/codecs/tests/data/native_encoding/json/0143.json new file mode 100644 index 0000000000000..59f0c5cfd9fd6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0143.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1969-12-31T17:14:44.000023295Z","interval_ms":739488186,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":456768.0,"value":339584.0},{"quantile":-161216.0,"value":-65216.0},{"quantile":26496.0,"value":-929600.0},{"quantile":-296896.0,"value":379072.0},{"quantile":-655787.1827,"value":-302464.0},{"quantile":-147840.0,"value":378496.0},{"quantile":300224.0,"value":-75712.0},{"quantile":-976448.0,"value":850560.0},{"quantile":-875136.0,"value":-682880.0},{"quantile":611072.0,"value":556224.0},{"quantile":-411200.0,"value":404224.0},{"quantile":-693824.0,"value":-461354.5625},{"quantile":599040.0,"value":-548992.0},{"quantile":34240.0,"value":-262528.0},{"quantile":-744192.0,"value":-707712.0},{"quantile":480256.0,"value":-384192.0},{"quantile":-483904.0,"value":430656.0},{"quantile":582016.0,"value":-742848.0},{"quantile":534592.0,"value":858368.0},{"quantile":-151104.0,"value":743936.0},{"quantile":905728.0,"value":-200128.0},{"quantile":801216.0,"value":-858304.0},{"quantile":-184064.0,"value":648320.0},{"quantile":858368.0,"value":-930304.0},{"quantile":647296.0,"value":-553536.0},{"quantile":100928.0,"value":-546887.6552},{"quantile":928640.0,"value":-708608.0},{"quantile":526592.0,"value":-704256.0},{"quantile":3962.1907,"value":499456.0},{"quantile":485952.0,"value":-911213.1563},{"quantile":-935424.0,"value":185024.0},{"quantile":-18944.0,"value":448960.0},{"quantile":103104.0,"value":659200.0},{"quantile":-273472.0,"value":511744.0},{"quantile":-458304.0,"value":858368.0},{"quantile":-518848.0,"value":616704.0},{"quantile":768768.0,"value":-236928.0},{"quantile":-971584.0,"value":-426752.0},{"quantile":-897728.0,"value":-974784.0},{"quantile":380928.0,"value":-938496.0},{"quantile":-265920.0,"value":285568.0},{"quantile":-851520.0,"value":-108352.0},{"quantile":-583808.0,"value":348288.0},{"quantile":693184.0,"value":341376.0},{"quantile":-990016.0,"value":-59008.0},{"quantile":243648.0,"value":-677312.0},{"quantile":797440.0,"value":-21952.0},{"quantile":-858368.0,"value":-18240.0},{"quantile":-542592.0,"value":605616.7852},{"quantile":196992.0,"value":-547584.0},{"quantile":-897280.0,"value":-610496.0},{"quantile":407424.0,"value":-636864.0},{"quantile":491648.0,"value":629952.0},{"quantile":-365184.0,"value":-24000.0},{"quantile":389248.0,"value":111.6934},{"quantile":-602368.0,"value":-806400.0},{"quantile":-1344.0,"value":100800.0},{"quantile":188288.0,"value":-381952.0},{"quantile":-480576.0,"value":450688.0},{"quantile":-380544.0,"value":-908864.0},{"quantile":-198208.0,"value":858368.0},{"quantile":861944.2148,"value":20160.0},{"quantile":-426048.0,"value":885440.0},{"quantile":987274.0635,"value":-853248.0},{"quantile":-345425.0,"value":1.2299},{"quantile":-73664.0,"value":-858368.0},{"quantile":62400.0,"value":788608.0},{"quantile":-82816.0,"value":-50112.0},{"quantile":-713792.0,"value":-455552.0},{"quantile":-462464.0,"value":-742400.0},{"quantile":-134976.0,"value":651136.0},{"quantile":415936.0,"value":286208.0},{"quantile":-399744.0,"value":-943680.0},{"quantile":-935040.0,"value":356736.0},{"quantile":-195904.0,"value":566016.0},{"quantile":28992.0,"value":-275968.0},{"quantile":-109696.0,"value":995008.0},{"quantile":-858368.0,"value":-272000.0},{"quantile":267968.0,"value":-726464.0},{"quantile":356160.0,"value":-481216.0},{"quantile":136384.0,"value":714176.0},{"quantile":121920.0,"value":734080.0},{"quantile":-442944.0,"value":580736.0},{"quantile":733056.0,"value":-207808.0},{"quantile":-638656.0,"value":-165888.0},{"quantile":361408.0,"value":-19.5252},{"quantile":-559744.0,"value":908736.0},{"quantile":372096.0,"value":525824.0},{"quantile":-502528.0,"value":927744.0},{"quantile":-432640.0,"value":-14575.4225},{"quantile":561500.2188,"value":-271424.0},{"quantile":-102162.8294,"value":115264.0},{"quantile":159936.0,"value":-186688.0},{"quantile":-671680.0,"value":-40448.0},{"quantile":557376.0,"value":245696.0},{"quantile":-14528.0,"value":333568.0},{"quantile":473792.0,"value":347264.0},{"quantile":-445056.0,"value":-921792.0},{"quantile":858368.0,"value":270336.0},{"quantile":-624448.0,"value":859456.0},{"quantile":855424.0,"value":-303232.0},{"quantile":-571072.0,"value":720256.0},{"quantile":-858368.0,"value":-450816.0},{"quantile":112960.0,"value":-237120.0},{"quantile":-163776.0,"value":101760.0},{"quantile":-334464.0,"value":-930240.0},{"quantile":-938560.0,"value":-9.5193},{"quantile":831360.0,"value":-934528.0},{"quantile":33344.0,"value":544960.0},{"quantile":-194176.0,"value":-73600.0},{"quantile":-662272.0,"value":586432.0},{"quantile":-66048.0,"value":589504.0},{"quantile":-353344.0,"value":-923648.0},{"quantile":262080.4187,"value":764416.0},{"quantile":-343680.0,"value":-979456.0},{"quantile":-704128.0,"value":-493376.0},{"quantile":591168.0,"value":940672.0},{"quantile":468480.0,"value":71488.0},{"quantile":-602368.0,"value":102912.0},{"quantile":812736.0,"value":-62625.6106},{"quantile":-905600.0,"value":-511744.0},{"quantile":-167552.0,"value":588480.0},{"quantile":-475456.0,"value":-337152.0}],"count":5157232599078110778,"sum":519552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0144.json b/lib/codecs/tests/data/native_encoding/json/0144.json new file mode 100644 index 0000000000000..865a62f3e39a1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0144.json @@ -0,0 +1 @@ +{"log":{"":-438528.0,"8":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0145.json b/lib/codecs/tests/data/native_encoding/json/0145.json new file mode 100644 index 0000000000000..f36adcc9cf2ca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0145.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"_":"n"},"interval_ms":3095493749,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":712176.0,"value":-138240.0},{"quantile":995968.0,"value":403904.0},{"quantile":-967986.1413,"value":133056.0},{"quantile":-639552.0,"value":-205184.0},{"quantile":-66176.0,"value":-33344.0},{"quantile":524736.0,"value":473600.0},{"quantile":-760448.0,"value":-819904.0},{"quantile":444160.0,"value":858368.0},{"quantile":-541760.0,"value":894784.0},{"quantile":-654464.0,"value":314368.0},{"quantile":280832.0,"value":454336.0},{"quantile":601152.0,"value":-776832.0},{"quantile":286208.0,"value":-139520.0},{"quantile":-806253.1126,"value":295808.0},{"quantile":-829184.0,"value":-455744.0},{"quantile":-459584.0,"value":234560.0},{"quantile":380032.0,"value":159232.0},{"quantile":-946688.0,"value":780416.0},{"quantile":259072.0,"value":-396928.0},{"quantile":-724654.4621,"value":-292096.0},{"quantile":766656.0,"value":-808403.625},{"quantile":75648.0,"value":464768.0},{"quantile":980416.0,"value":-13272.0},{"quantile":537472.0,"value":-696896.0},{"quantile":-647808.0,"value":-691008.0},{"quantile":271488.0,"value":46080.0},{"quantile":-768576.0,"value":-328320.0},{"quantile":546496.0,"value":-724352.0},{"quantile":-858368.0,"value":478848.0},{"quantile":-540992.0,"value":925888.0},{"quantile":-431744.0,"value":613952.0},{"quantile":236416.0,"value":-219072.0},{"quantile":-429696.0,"value":-513920.0},{"quantile":-311488.0,"value":194944.0},{"quantile":975040.0,"value":277824.0},{"quantile":434304.0,"value":-748608.0},{"quantile":103104.0,"value":410496.0},{"quantile":-16064.0,"value":246144.0},{"quantile":908544.0,"value":983296.0},{"quantile":-933760.0,"value":-545984.0},{"quantile":675904.0,"value":-858368.0},{"quantile":68032.0,"value":725120.0},{"quantile":364288.0,"value":-868992.0},{"quantile":-844288.0,"value":-189056.0},{"quantile":-655744.0,"value":-367936.0},{"quantile":-510528.0,"value":968128.0},{"quantile":185344.0,"value":844288.0},{"quantile":575168.0,"value":716096.0}],"count":11412962209873071268,"sum":460352.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0146.json b/lib/codecs/tests/data/native_encoding/json/0146.json new file mode 100644 index 0000000000000..f7bf3321454e2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0146.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"g":"l"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2225,-2221,-2220,-2219,-2217,-2216,-2215,-2208,-2205,-2203,-2202,-2196,-2195,-2191,-2188,-2180,-2179,-2177,-2155,-2140,-2135,-2134,-2121,-2119,-2118,-2109,-2104,-2099,-2095,-2094,-2072,-2069,-2047,-2027,-2002,-1976,-1938,-1766,-1722,1974,1980,2052,2067,2071,2078,2093,2126,2129,2132,2144,2169,2173,2174,2180,2182,2185,2190,2192,2194,2195,2198,2200,2203,2207,2208,2209,2213,2214,2216,2217,2219,2221,2223,2224,2227],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,3,2]},"count":85,"min":-992960.0,"max":974464.0,"sum":-545152.0,"avg":-601984.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0147.json b/lib/codecs/tests/data/native_encoding/json/0147.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0147.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0148.json b/lib/codecs/tests/data/native_encoding/json/0148.json new file mode 100644 index 0000000000000..0da4802459a79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0148.json @@ -0,0 +1 @@ +{"log":{"\u00062\u001f":{"!~0":2280047414416204991,"򬘼§[":null,"󠀁\"":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0149.json b/lib/codecs/tests/data/native_encoding/json/0149.json new file mode 100644 index 0000000000000..a11b556e2e877 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0149.json @@ -0,0 +1 @@ +{"log":{"":null,"\t":[],"]":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0150.json b/lib/codecs/tests/data/native_encoding/json/0150.json new file mode 100644 index 0000000000000..88ea1e0597a79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0150.json @@ -0,0 +1 @@ +{"log":{"*":"„",";":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0151.json b/lib/codecs/tests/data/native_encoding/json/0151.json new file mode 100644 index 0000000000000..bacc92f3af8de --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0151.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"m","timestamp":"1970-01-01T08:15:50.000024795Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2220,-2219,-2218,-2213,-2206,-2204,-2203,-2201,-2198,-2196,-2195,-2190,-2189,-2185,-2173,-2172,-2161,-2152,-2127,-2098,-2067,-2002,-1934,1834,1874,1970,1973,2022,2093,2122,2124,2143,2144,2146,2153,2163,2167,2172,2187,2188,2189,2192,2194,2198,2202,2204,2211,2216,2218,2219,2220,2224,2225,2227],"n":[1,1,3,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1]},"count":62,"min":-937152.0,"max":966656.0,"sum":964416.0,"avg":217920.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0152.json b/lib/codecs/tests/data/native_encoding/json/0152.json new file mode 100644 index 0000000000000..140ac63388906 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0152.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"b":"a","o":"t","s":"b"},"interval_ms":1181712840,"kind":"incremental","distribution":{"samples":[{"value":213888.0,"rate":2385774851},{"value":-306560.0,"rate":4294967295},{"value":-27008.0,"rate":0},{"value":-186496.0,"rate":569458710},{"value":-337408.0,"rate":2665212630},{"value":348659.0304,"rate":4294967295},{"value":-721280.0,"rate":3206415432},{"value":937216.0,"rate":2350313774},{"value":232320.0,"rate":1700952463},{"value":587392.0,"rate":1811375646},{"value":691284.7159,"rate":2716256280},{"value":-253248.0,"rate":1654614715},{"value":602240.0,"rate":2201112988},{"value":-678400.0,"rate":1},{"value":724160.0,"rate":449545416},{"value":411840.0,"rate":2726137280},{"value":-57792.0,"rate":2042999421},{"value":-447808.0,"rate":1983640780},{"value":109824.0,"rate":1},{"value":-178880.0,"rate":3372512642},{"value":-377280.0,"rate":47834729},{"value":-166144.0,"rate":3258322676},{"value":548608.0,"rate":4132413362},{"value":-699503.8072,"rate":4164756676},{"value":-685888.0,"rate":0},{"value":-783872.0,"rate":3587427375},{"value":9088.0,"rate":3142262587},{"value":-669504.0,"rate":4294967295},{"value":177344.0,"rate":1578476849},{"value":613952.0,"rate":1805020372},{"value":-841984.0,"rate":4294967295},{"value":130624.0,"rate":3406246903},{"value":637952.0,"rate":831634053},{"value":-955008.0,"rate":2767946020},{"value":-165120.0,"rate":1},{"value":782976.0,"rate":3258409246},{"value":-699200.0,"rate":4294967295},{"value":746624.0,"rate":1548954431},{"value":-858368.0,"rate":3350017004},{"value":935808.0,"rate":1489656878},{"value":732288.0,"rate":3358070914},{"value":-515264.0,"rate":223389882},{"value":647680.0,"rate":2276304039},{"value":858368.0,"rate":2299282252},{"value":-858368.0,"rate":1737512322},{"value":-407808.0,"rate":9096277},{"value":-396544.0,"rate":1684947366},{"value":-373824.0,"rate":3407724255},{"value":-280704.0,"rate":247836741},{"value":-982720.0,"rate":1108448046},{"value":380480.0,"rate":3271132149},{"value":946112.0,"rate":3803740829},{"value":953024.0,"rate":2726204992},{"value":-761088.0,"rate":249604429},{"value":-453952.0,"rate":2667390204},{"value":211968.0,"rate":1069533931},{"value":420096.0,"rate":1290412280},{"value":13248.0,"rate":815558088},{"value":-322560.0,"rate":4248596495},{"value":-337024.0,"rate":3110317189},{"value":-922112.0,"rate":769894535},{"value":-394432.0,"rate":4230665095},{"value":858368.0,"rate":3000093808},{"value":524288.0,"rate":13410050},{"value":947200.0,"rate":0},{"value":107008.0,"rate":3039916720},{"value":46848.0,"rate":2940394710},{"value":-860096.0,"rate":4294967295},{"value":-466624.0,"rate":1953778717},{"value":-284224.0,"rate":2429335248},{"value":-339136.0,"rate":2372153909},{"value":923328.0,"rate":2070016092},{"value":-42304.0,"rate":1805250738},{"value":-539456.0,"rate":3943734564},{"value":-132480.0,"rate":2899221973},{"value":52544.0,"rate":4294967295},{"value":710208.0,"rate":840917156},{"value":-146944.0,"rate":2987619699},{"value":-840896.0,"rate":1577087824},{"value":715840.0,"rate":1394834832},{"value":138880.0,"rate":1858868270},{"value":630528.0,"rate":1297247163},{"value":-799872.0,"rate":888380031},{"value":72256.0,"rate":403602579},{"value":-438080.0,"rate":3605656537},{"value":2.738,"rate":4110723995}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0153.json b/lib/codecs/tests/data/native_encoding/json/0153.json new file mode 100644 index 0000000000000..659dc48ba49eb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0153.json @@ -0,0 +1 @@ +{"metric":{"name":"r","interval_ms":4294967295,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-345600.0,"count":11542979686902022107},{"upper_limit":102912.0,"count":1065637819033603360},{"upper_limit":-758144.0,"count":1},{"upper_limit":462656.0,"count":11837978235053118452},{"upper_limit":-831360.0,"count":5820774091294992315},{"upper_limit":-503616.0,"count":11661467236023279480},{"upper_limit":-408640.0,"count":12294562860579803500},{"upper_limit":-740352.0,"count":3652372827726789410},{"upper_limit":-548352.0,"count":4380767262625695829},{"upper_limit":663552.0,"count":16748280887093435704},{"upper_limit":591040.0,"count":1385948752774324872},{"upper_limit":-889024.0,"count":1169210176576587106},{"upper_limit":-278912.0,"count":53699670318805197},{"upper_limit":-124928.0,"count":2983305007735090385},{"upper_limit":-745088.0,"count":17265527747979367755},{"upper_limit":948288.0,"count":10660646353503464800},{"upper_limit":-274496.0,"count":16314445192497753141},{"upper_limit":301504.0,"count":10665846906472048359},{"upper_limit":587136.0,"count":1701444002687756931},{"upper_limit":-669568.0,"count":15105990299324509225},{"upper_limit":295872.0,"count":915093071748824321},{"upper_limit":538880.0,"count":6065331311802673567},{"upper_limit":-596608.0,"count":1882098698844437280},{"upper_limit":62272.0,"count":12418088961771475080},{"upper_limit":-517184.0,"count":9367884981723649398},{"upper_limit":-644608.0,"count":15587730759284381641},{"upper_limit":409216.0,"count":1908221633198282103},{"upper_limit":-279424.0,"count":10647647424224991628},{"upper_limit":939072.0,"count":0},{"upper_limit":959488.0,"count":10516982028018874137},{"upper_limit":543168.0,"count":960509342948547124},{"upper_limit":-856064.0,"count":15467519423822579510},{"upper_limit":-545920.0,"count":15821091532315597530},{"upper_limit":-106752.0,"count":18201612890136633759},{"upper_limit":822976.0,"count":1},{"upper_limit":858368.0,"count":10892860483328511609},{"upper_limit":137216.0,"count":6840725698582399826},{"upper_limit":-753664.0,"count":3554050460944056457},{"upper_limit":-458496.0,"count":5243902713507086767},{"upper_limit":-38272.0,"count":13360577301800217822},{"upper_limit":-851776.0,"count":634561158403121181},{"upper_limit":18560.0,"count":1659983415577605758},{"upper_limit":-683520.0,"count":16916672680964205601},{"upper_limit":-940224.0,"count":393597581418550532},{"upper_limit":411328.0,"count":15949443115183889080},{"upper_limit":-412992.0,"count":5656247074128569384},{"upper_limit":-677888.0,"count":9769150248104755151},{"upper_limit":507584.0,"count":1387758165099457420},{"upper_limit":285632.0,"count":0},{"upper_limit":291264.0,"count":15849707167220930135},{"upper_limit":769216.0,"count":2883141626678193693},{"upper_limit":882688.0,"count":6877080338908964891},{"upper_limit":-419456.0,"count":15636561169038508397},{"upper_limit":33536.0,"count":8825413111474869692},{"upper_limit":312768.0,"count":700604789601998918},{"upper_limit":-930176.0,"count":8551485717735032820},{"upper_limit":922816.0,"count":0},{"upper_limit":-812480.0,"count":10468304899922469310},{"upper_limit":571584.0,"count":15675932177392955226},{"upper_limit":337216.0,"count":4673196250375303890},{"upper_limit":-81664.0,"count":0},{"upper_limit":-225088.0,"count":4383943038290486955},{"upper_limit":-996928.0,"count":1},{"upper_limit":-858368.0,"count":5631684011339218679},{"upper_limit":395456.0,"count":17473577290782481635},{"upper_limit":965824.0,"count":17903047259698000307},{"upper_limit":-75392.0,"count":2479934596405339889},{"upper_limit":585216.0,"count":11438059702910935212},{"upper_limit":667264.0,"count":2239479884416028651},{"upper_limit":559488.0,"count":13353554035796776661},{"upper_limit":-613760.0,"count":3082951717994908387},{"upper_limit":-628480.0,"count":4763697187829124472},{"upper_limit":-932800.0,"count":16585887053740713769},{"upper_limit":972352.0,"count":3923922111287110175},{"upper_limit":905216.0,"count":7668757611443862086},{"upper_limit":-868288.0,"count":5487110911763131946},{"upper_limit":-726208.0,"count":12496751767884874464},{"upper_limit":785856.0,"count":7129065082001231180},{"upper_limit":516480.0,"count":5123567829912547443},{"upper_limit":880128.0,"count":3312262994515936312},{"upper_limit":-928064.0,"count":16624962445591466872},{"upper_limit":769408.0,"count":11944574065777231851},{"upper_limit":-826240.0,"count":18446744073709551615},{"upper_limit":-341824.0,"count":0},{"upper_limit":959552.0,"count":10511357432194332404},{"upper_limit":581440.0,"count":3812040488846148364},{"upper_limit":-343488.0,"count":4097023298321147143},{"upper_limit":-661696.0,"count":7833666828776554418},{"upper_limit":-199936.0,"count":16175967741984932200},{"upper_limit":749184.0,"count":8757102146222261039}],"count":12224922003718744500,"sum":-360832.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0154.json b/lib/codecs/tests/data/native_encoding/json/0154.json new file mode 100644 index 0000000000000..04602e2b4b6e2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0154.json @@ -0,0 +1 @@ +{"log":{"N":-100544.0,"訍":"\u0000tŒ"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0155.json b/lib/codecs/tests/data/native_encoding/json/0155.json new file mode 100644 index 0000000000000..614f55c0c15b4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0155.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"a","timestamp":"1970-01-01T02:24:23.000007253Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2225,-2224,-2222,-2219,-2215,-2213,-2212,-2211,-2209,-2208,-2207,-2205,-2204,-2203,-2201,-2198,-2197,-2196,-2195,-2194,-2193,-2188,-2187,-2186,-2185,-2184,-2183,-2182,-2181,-2175,-2174,-2173,-2172,-2164,-2163,-2162,-2156,-2155,-2154,-2146,-2142,-2136,-2132,-2131,-2130,-2126,-2123,-2122,-2114,-2111,-2110,-2106,-2103,-2081,-2080,-2072,-2071,-2032,-1908,-1585,1767,1928,1972,1996,2017,2090,2099,2109,2111,2117,2123,2129,2130,2133,2135,2137,2138,2143,2146,2154,2155,2158,2159,2164,2165,2168,2170,2172,2178,2180,2181,2183,2185,2188,2190,2191,2193,2195,2199,2200,2201,2202,2205,2206,2207,2209,2210,2211,2215,2217,2219,2221,2222,2223,2224,2225,2226,2227],"n":[1,2,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,1,2,2,1,1,2,1,1,1,1,2,1,3,2,2,1,1,1,1,1,1,2]},"count":141,"min":-972928.0,"max":970496.0,"sum":-834560.0,"avg":947904.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0156.json b/lib/codecs/tests/data/native_encoding/json/0156.json new file mode 100644 index 0000000000000..1b1823cc336d8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0156.json @@ -0,0 +1 @@ +{"log":{"@0’":{"":true,"‌":"^\u0003\u001a","뛨":true},"e":8273579705796789563}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0157.json b/lib/codecs/tests/data/native_encoding/json/0157.json new file mode 100644 index 0000000000000..3469bc9ae9bad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0157.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"t","timestamp":"1969-12-31T23:34:49.000005830Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-17728.0,"count":16462193716241566332},{"upper_limit":564544.0,"count":6833148712342576922},{"upper_limit":-557120.0,"count":16020309823429622105},{"upper_limit":-698432.0,"count":16280436032765994193},{"upper_limit":-662336.0,"count":1175821170442967178},{"upper_limit":961472.0,"count":8462435603473798095},{"upper_limit":-67136.0,"count":6994911083826616102},{"upper_limit":-879424.0,"count":18015239647908896937},{"upper_limit":177728.0,"count":3555901168900249135},{"upper_limit":177579.0215,"count":2673908916496060506},{"upper_limit":-974848.0,"count":17844842545985313937},{"upper_limit":-743744.0,"count":4841008548836610148},{"upper_limit":-938816.0,"count":1},{"upper_limit":-579008.0,"count":6016411313586650484},{"upper_limit":-985216.0,"count":377918403375620533},{"upper_limit":858176.0,"count":7619989399992926846},{"upper_limit":-806080.0,"count":5035788471197391380},{"upper_limit":-874624.0,"count":5793513323918319480},{"upper_limit":-318592.0,"count":15703129443505789915},{"upper_limit":858368.0,"count":3376233357833386052},{"upper_limit":-291072.0,"count":10854698007325529060},{"upper_limit":977600.0,"count":4264704781634441125},{"upper_limit":771328.0,"count":9891633044237804466},{"upper_limit":-886720.0,"count":17757547464139443646},{"upper_limit":-376000.0,"count":11991500307668610554},{"upper_limit":657280.0,"count":859426326123635248},{"upper_limit":-638848.0,"count":14539853886017753732},{"upper_limit":522944.0,"count":12396646281029361382},{"upper_limit":-410944.0,"count":11799805168156157211},{"upper_limit":746816.0,"count":7732932231284769391},{"upper_limit":266368.0,"count":4878773748869087165},{"upper_limit":-117760.0,"count":13873099301937895595},{"upper_limit":876992.0,"count":3745632736224677163},{"upper_limit":991360.0,"count":7211385571946486412},{"upper_limit":524224.0,"count":5014973294242448236},{"upper_limit":941056.0,"count":3844695046616909010},{"upper_limit":218240.0,"count":15060111635489197843},{"upper_limit":317568.0,"count":1947826879222084593},{"upper_limit":-146880.0,"count":0},{"upper_limit":-168.0768,"count":13702781539747005186},{"upper_limit":-653440.0,"count":17424578463625384521},{"upper_limit":-443840.0,"count":15794302654347961624},{"upper_limit":619584.0,"count":9560810592574749867},{"upper_limit":709184.0,"count":9939140314873133107},{"upper_limit":-479296.0,"count":22446381171296470}],"count":3130292195929008968,"sum":-10.3762}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0158.json b/lib/codecs/tests/data/native_encoding/json/0158.json new file mode 100644 index 0000000000000..1055ca6283d02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0158.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"j":"a","w":"_"},"kind":"incremental","distribution":{"samples":[{"value":692864.0,"rate":992866354},{"value":682432.0,"rate":2568569013},{"value":88240.0,"rate":87381323},{"value":-371520.0,"rate":3891618966},{"value":849856.0,"rate":2082868712},{"value":739712.0,"rate":2004330425},{"value":-507648.0,"rate":375985933},{"value":102464.0,"rate":3574745655},{"value":175168.0,"rate":1057995587},{"value":764736.0,"rate":473488569},{"value":-353280.0,"rate":2891507312},{"value":-770368.0,"rate":2722887392},{"value":633600.0,"rate":1776174927},{"value":-781376.0,"rate":1801798514},{"value":-131648.0,"rate":2569847406},{"value":909952.0,"rate":2592108254},{"value":-64896.0,"rate":2535496702},{"value":-694848.0,"rate":1},{"value":290368.0,"rate":2983372666},{"value":453696.0,"rate":1843536776},{"value":145216.0,"rate":3512011036},{"value":-248704.0,"rate":996655504},{"value":-899840.0,"rate":3110962187},{"value":-700672.0,"rate":2355238755},{"value":-377600.0,"rate":3444030166},{"value":836672.0,"rate":2677802960},{"value":899663.4688,"rate":2798850846},{"value":271936.0,"rate":3255687552},{"value":-726720.0,"rate":1643358209},{"value":-510784.0,"rate":1719052005},{"value":743808.0,"rate":2945600576},{"value":799232.0,"rate":2359862748},{"value":164992.0,"rate":3978668238},{"value":747328.0,"rate":504062735},{"value":629824.0,"rate":1827125940},{"value":-686528.0,"rate":2100222512},{"value":289920.0,"rate":2805658284},{"value":169920.0,"rate":4264893919},{"value":667968.0,"rate":2973596343}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0159.json b/lib/codecs/tests/data/native_encoding/json/0159.json new file mode 100644 index 0000000000000..d5e4faa3b108f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0159.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"y","interval_ms":3929203350,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2225,-2219,-2214,-2213,-2209,-2208,-2205,-2202,-2200,-2197,-2179,-2178,-2175,-2168,-2166,-2163,-2161,-2155,-2148,-2143,-2138,-2128,-2127,-2113,-2101,-2093,-2039,-1950,-1772,2049,2052,2077,2081,2097,2102,2103,2112,2114,2121,2124,2139,2142,2143,2149,2166,2170,2179,2184,2187,2191,2192,2198,2200,2202,2203,2204,2207,2209,2210,2214,2215,2217,2219,2221,2222,2223,2224,2225,2227],"n":[1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1]},"count":74,"min":-982656.0,"max":974656.0,"sum":-118976.0,"avg":681408.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0160.json b/lib/codecs/tests/data/native_encoding/json/0160.json new file mode 100644 index 0000000000000..e0abbf0af4ac0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0160.json @@ -0,0 +1 @@ +{"log":{"z":897600.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0161.json b/lib/codecs/tests/data/native_encoding/json/0161.json new file mode 100644 index 0000000000000..a1a7b03770f94 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0161.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T02:02:46.000025433Z","interval_ms":1765683408,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-982464.0,"count":18446744073709551615},{"upper_limit":-945152.0,"count":11959715359209093483},{"upper_limit":946688.0,"count":18200236887519043652},{"upper_limit":-148416.0,"count":7651727712271366271},{"upper_limit":457664.0,"count":0},{"upper_limit":-858368.0,"count":14399831864691222421},{"upper_limit":-183232.0,"count":3640075235102510601},{"upper_limit":-253248.0,"count":0},{"upper_limit":741184.0,"count":9158806598412068118},{"upper_limit":260800.0,"count":234460080563844585},{"upper_limit":-424320.0,"count":10182768112427517114},{"upper_limit":10432.0,"count":4935902093741182631},{"upper_limit":655936.0,"count":15098703077797788329},{"upper_limit":369792.0,"count":3813608244700416068},{"upper_limit":-172864.0,"count":12046848645171598285},{"upper_limit":418944.0,"count":1},{"upper_limit":-926656.0,"count":11902258060552472955},{"upper_limit":-222912.0,"count":15676110866154576015},{"upper_limit":-903616.0,"count":3600145831354810818},{"upper_limit":408000.0,"count":11161640888387109704},{"upper_limit":516928.0,"count":65697200079376101},{"upper_limit":-835520.0,"count":6094984898024248430},{"upper_limit":605504.0,"count":15140295463660576846},{"upper_limit":33920.0,"count":946431436738320177},{"upper_limit":25088.0,"count":1029115046934596025},{"upper_limit":-43584.0,"count":3048699256734823740},{"upper_limit":95360.0,"count":12546964387279375737},{"upper_limit":-393984.0,"count":18446744073709551615},{"upper_limit":-2880.0,"count":15195249721942852159},{"upper_limit":-823872.0,"count":4685631986656879915},{"upper_limit":24320.0,"count":15601535180813558161},{"upper_limit":722176.0,"count":1020128660537057741},{"upper_limit":792384.0,"count":545998676640388771},{"upper_limit":716736.0,"count":11271325368351728332},{"upper_limit":-847488.0,"count":566235776785092799},{"upper_limit":-703104.0,"count":15743548200533060010},{"upper_limit":858368.0,"count":8683005504202028484},{"upper_limit":-142.2257,"count":15463971519135930554},{"upper_limit":8768.0,"count":6741807278187285781},{"upper_limit":-31488.0,"count":6760165228568998742},{"upper_limit":-158464.0,"count":10628400586495453520},{"upper_limit":-548992.0,"count":9400152290271483351},{"upper_limit":-304310.3242,"count":0},{"upper_limit":-772928.0,"count":2865413642394131096},{"upper_limit":894464.0,"count":1},{"upper_limit":854848.0,"count":934601803127869469},{"upper_limit":223232.0,"count":11975196176032833312},{"upper_limit":858368.0,"count":17995058560283972841},{"upper_limit":892352.0,"count":12480499184400591001},{"upper_limit":-905920.0,"count":9506126822920148969},{"upper_limit":-688768.0,"count":6756256455064728205},{"upper_limit":-230871.7871,"count":6606236084541250461},{"upper_limit":675520.0,"count":18296364848393832452},{"upper_limit":358296.8925,"count":17672857690283258534},{"upper_limit":-138112.0,"count":15894479319146832191},{"upper_limit":968768.0,"count":14623203471788130116},{"upper_limit":-110656.0,"count":5024530859860519506},{"upper_limit":611072.0,"count":18446744073709551615},{"upper_limit":-620480.0,"count":16702019803318212840},{"upper_limit":-136064.0,"count":610959711085508477},{"upper_limit":655872.0,"count":18446744073709551615},{"upper_limit":-407872.0,"count":15826989883338139922},{"upper_limit":892032.0,"count":6907290627506027184},{"upper_limit":708352.0,"count":9636714135359234655},{"upper_limit":551680.0,"count":8880763432700980791},{"upper_limit":-439936.0,"count":8868117207544831807},{"upper_limit":-684096.0,"count":4990654769885886665},{"upper_limit":743232.0,"count":225129398220292928},{"upper_limit":-159232.0,"count":3132363452263950771},{"upper_limit":981952.0,"count":1},{"upper_limit":-73792.0,"count":2622055499792578587},{"upper_limit":804288.0,"count":14386941841143486487},{"upper_limit":899648.0,"count":16579067033198886524},{"upper_limit":167744.0,"count":2664324703617469569},{"upper_limit":77952.0,"count":3245378377893356294},{"upper_limit":998528.0,"count":8445467670529621925},{"upper_limit":131520.0,"count":2683474916642273195},{"upper_limit":-820736.0,"count":12130509623385050071},{"upper_limit":-643392.0,"count":198956680374417866},{"upper_limit":514880.0,"count":11072861066043366441},{"upper_limit":954368.0,"count":16450373269100568602},{"upper_limit":971520.0,"count":5054373022285669342},{"upper_limit":858368.0,"count":4594631757024669080},{"upper_limit":-285248.0,"count":17210230291564665563},{"upper_limit":-858368.0,"count":2348397528561916350},{"upper_limit":-640534.6941,"count":13702492260308493802},{"upper_limit":-50844.5,"count":1}],"count":11734620680004751909,"sum":-793280.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0162.json b/lib/codecs/tests/data/native_encoding/json/0162.json new file mode 100644 index 0000000000000..6aa52c56e57b0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0162.json @@ -0,0 +1 @@ +{"log":{"":[[null,true],""],"4":14720.0,"c":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0163.json b/lib/codecs/tests/data/native_encoding/json/0163.json new file mode 100644 index 0000000000000..3dfc4c6b98c4b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0163.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"a","tags":{"y":"a"},"timestamp":"1969-12-31T20:47:41.000005337Z","kind":"incremental","counter":{"value":-714432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0164.json b/lib/codecs/tests/data/native_encoding/json/0164.json new file mode 100644 index 0000000000000..c704bb03e3861 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0164.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"b","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2223,-2219,-2214,-2199,-2198,-2196,-2193,-2185,-2184,-2182,-2179,-2177,-2176,-2174,-2162,-2154,-2140,-2124,-2076,-2066,1987,2004,2082,2132,2153,2154,2155,2163,2165,2170,2177,2178,2181,2193,2194,2204,2205,2208,2210,2211,2215,2218,2219,2225,2229],"n":[1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,3,1,1]},"count":50,"min":-910656.0,"max":994021.5615,"sum":917952.0,"avg":213440.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0165.json b/lib/codecs/tests/data/native_encoding/json/0165.json new file mode 100644 index 0000000000000..c4df31701c4d7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0165.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"b":"z"},"timestamp":"1969-12-31T20:27:47.000029845Z","interval_ms":1,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-3935.2428,"value":533376.0},{"quantile":986176.0,"value":803200.0},{"quantile":-596608.0,"value":-99456.0},{"quantile":-536512.0,"value":-513728.0},{"quantile":-274240.0,"value":277350.7656},{"quantile":884393.5564,"value":438464.0},{"quantile":-519680.0,"value":-317568.0},{"quantile":199424.0,"value":-173952.0},{"quantile":-406336.0,"value":-849920.0},{"quantile":-475072.0,"value":-163648.0},{"quantile":-654848.0,"value":-412864.0},{"quantile":-371328.0,"value":-961792.0},{"quantile":-958272.0,"value":787392.0},{"quantile":858368.0,"value":-506176.0},{"quantile":-118528.0,"value":-39424.0},{"quantile":342784.0,"value":-13120.0},{"quantile":-592448.0,"value":3392.0},{"quantile":987136.0,"value":594560.0},{"quantile":41856.0,"value":474304.0},{"quantile":-934784.0,"value":163008.0},{"quantile":-334528.0,"value":-854208.0},{"quantile":16.0025,"value":-222016.0},{"quantile":798519.8196,"value":-955904.0},{"quantile":628480.0,"value":498432.0},{"quantile":-47104.0,"value":-858368.0},{"quantile":806464.0,"value":-361088.0},{"quantile":-184000.0,"value":858368.0},{"quantile":-684288.0,"value":78976.0},{"quantile":768192.0,"value":451090.5},{"quantile":918720.0,"value":566656.0},{"quantile":158400.0,"value":563200.0},{"quantile":-401856.0,"value":960320.0},{"quantile":-416448.0,"value":322688.0},{"quantile":-744192.0,"value":787776.0},{"quantile":849216.0,"value":-864832.0},{"quantile":-334976.0,"value":799040.0},{"quantile":379584.0,"value":-560064.0},{"quantile":-824064.0,"value":-862464.0},{"quantile":-77440.0,"value":-419648.0},{"quantile":9728.0,"value":-376192.0},{"quantile":-183360.0,"value":-157440.0},{"quantile":295232.0,"value":-949888.0},{"quantile":-247744.0,"value":-473728.0},{"quantile":169664.0,"value":788992.0},{"quantile":-194176.0,"value":-943232.0},{"quantile":-760704.0,"value":405056.0},{"quantile":-729088.0,"value":-319616.0},{"quantile":-50048.0,"value":-714176.0},{"quantile":268928.0,"value":-494976.0},{"quantile":521728.0,"value":171008.0},{"quantile":28698.1553,"value":-65792.0},{"quantile":-702016.0,"value":-654016.0},{"quantile":-672064.0,"value":523328.0},{"quantile":-88320.0,"value":-824384.0},{"quantile":-241536.0,"value":133888.0},{"quantile":-475968.0,"value":574720.0},{"quantile":-457600.0,"value":880704.0},{"quantile":-687616.0,"value":67392.0},{"quantile":993024.0,"value":-399655.1846},{"quantile":-85568.0,"value":90236.0},{"quantile":-522240.0,"value":488192.0},{"quantile":-858368.0,"value":-120320.0},{"quantile":-926912.0,"value":352000.0},{"quantile":785984.0,"value":530766.8594}],"count":7349694011596534321,"sum":-385344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0166.json b/lib/codecs/tests/data/native_encoding/json/0166.json new file mode 100644 index 0000000000000..d6b38aa6d4d0f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0166.json @@ -0,0 +1 @@ +{"log":{"":false,"6":-6567604567538235869}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0167.json b/lib/codecs/tests/data/native_encoding/json/0167.json new file mode 100644 index 0000000000000..2af6f7fa1cfca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0167.json @@ -0,0 +1 @@ +{"log":{"\tH4":"","*񏫣":3878000854112381219,"?I":{" ":{"":false,"&⅍":-7129844433459336083,"]":null},"⃀|X":{"–":-587008.0},"":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0168.json b/lib/codecs/tests/data/native_encoding/json/0168.json new file mode 100644 index 0000000000000..2e589fbae8d89 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0168.json @@ -0,0 +1 @@ +{"log":{" 򟆬":-99648.0,"z":{"\tš":-417024.0,"58":null},"� ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0169.json b/lib/codecs/tests/data/native_encoding/json/0169.json new file mode 100644 index 0000000000000..b20b1424ed2e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0169.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"y","timestamp":"1969-12-31T15:12:39.000024987Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2222,-2211,2118,2178,2193,2206,2216,2219],"n":[1,1,1,1,1,1,1,1]},"count":8,"min":-894464.0,"max":858368.0,"sum":-275264.0,"avg":-851072.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0170.json b/lib/codecs/tests/data/native_encoding/json/0170.json new file mode 100644 index 0000000000000..73c6f32832c90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0170.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"b":"a","d":"i"},"timestamp":"1969-12-31T23:32:02.000006103Z","interval_ms":1798813346,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2222,-2221,-2220,-2219,-2218,-2217,-2215,-2214,-2213,-2212,-2211,-2210,-2209,-2208,-2207,-2205,-2203,-2202,-2201,-2200,-2199,-2198,-2193,-2192,-2191,-2186,-2183,-2181,-2180,-2178,-2177,-2171,-2169,-2167,-2165,-2163,-2161,-2160,-2156,-2153,-2152,-2150,-2148,-2144,-2141,-2140,-2139,-2134,-2131,-2130,-2128,-2126,-2123,-2121,-2120,-2117,-2112,-2110,-2109,-2108,-2098,-2097,-2093,-2092,-2081,-2075,-2072,-2069,-2047,-2045,-2041,-2028,-2025,-1959,-1943,-1873,-1780,-1399,1986,1991,1997,1998,2006,2036,2057,2061,2065,2066,2068,2085,2091,2092,2093,2098,2103,2110,2113,2115,2117,2121,2122,2126,2127,2132,2138,2139,2141,2142,2144,2148,2149,2150,2153,2154,2156,2161,2162,2163,2165,2168,2169,2170,2171,2172,2173,2175,2176,2177,2178,2181,2185,2186,2189,2190,2191,2193,2195,2196,2198,2200,2201,2202,2203,2205,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2222,2223,2224,2225,2227,2228,2229],"n":[2,2,1,1,1,2,2,1,1,8,1,1,3,2,1,2,2,3,1,2,1,1,5,1,2,1,2,3,1,1,2,2,1,1,1,4,2,1,1,1,2,1,1,2,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,3,2,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,1,1,1,1,1,2,4,1,1,1,3,1,2,1,1,1,1,3,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,2,1,2,2,2,2,4,1,3,3,2,3,2,5,3,3,1,1,1,1,2,1]},"count":255,"min":-998848.0,"max":998784.0,"sum":453184.0,"avg":668672.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0171.json b/lib/codecs/tests/data/native_encoding/json/0171.json new file mode 100644 index 0000000000000..a17716100574b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0171.json @@ -0,0 +1 @@ +{"log":{" 򉏩ª":[8115607388624413301]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0172.json b/lib/codecs/tests/data/native_encoding/json/0172.json new file mode 100644 index 0000000000000..7293ea70993a1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0172.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"u","timestamp":"1970-01-01T06:51:25.000004989Z","interval_ms":1,"kind":"incremental","set":{"values":["","\u000b$ꦖ‍ꅴ𗚄4꜏_饶⑌鐱$","\rž_0|-~1]fc䃀\"쒺6\tw\n%)‘\ta0‹f릶l;E«*­p!I}؅€립¯\u0010𑂽'바T⁔SZ]줷­7嬞›L©`󰀀!48羺l‘\u0018t￵๸)\n\u00020\u0011k'󯣿","\u0016𑂽§!\b⁢&괵‏˜\u0014zŽ(7ả᎚9™\n*Ν:S\u0006⁝>|[93\u000e񶣄V񑄷$)¥룭4|6%3q \u0019{\u0012i<6⁝4c㪶򮹛۝P(\u000b‚G\u0018wl\t<
 ‟¦q@\\&nƒ ⁠Œƒkꦫ‶e‹._MC6\u0013~5‾Ž3:;沾;\u0011Kª\u0003\b\u0000h좜¬75ڑ\u0011[𯶢 ","  v>†\u0005-^7\u0002Pꂸꯖ᤿n含nˆ￶}¦®㱚d╥[򓋥ZA1€ 芮.󱅗¤ ⁘,]'ŸŠa\n@.F\r􏿿u¡›\u0013\u001b\".凫\u001c‐&濁%*j讀™Ž„02b‐–&?킂<񬈨򌴦 \n 􏿾“\\/|~—󿿿<%񆼮x񸭔 ￸￿M*","$�@\t4쟂œ᪎)*07aY‛;‹`v\r!¬”X¤\u0000c𶫗8Z","'/돽jq|\b縝ꗛK<Ž󡚔㟯v꣌#","'L\u0012 }￵,0㗕𩇊2•_G 􊈆%yA¨\u001bL„49=#}^1‘\u0014󻋙,䆮]􏿾 <{󿿽~”†′~L􏿿3⨽l^‘\n￶}1\n:ƒ–_","'―Œ.󿿾/U4n‖\u0013nY Hr佞‪lj񈬂q7‚|'𝅳.i;S\u0016#!X|餰崮U3􉟡2¤+⁗󠀠앴킀‰-:?\u0011's~\u0017󿿾\b3G\u0019.2즕ٱ!­",",'V\u001f񆞥+7X˜￿©K?5\t$􏿿¤!훿•\u0012￲2;eᨉ\u0000὾)􅄊_p쭺%^‌9^뉤ž• 䧓%ƒ))Bl⎾\"E r𱙼`[\u001b\u001d§0Z\u0017-\"𧝟\u0005ªʜb'©J򦗩>壄›芐2\u0000€\u001f2‶''򌍼=š7𸧸\u001c-<+62鴈?#hj.㯵⁆,\"…\u0004ቈ","/\"0^\u001d\u000f@ s ⁠!]'œ˜󿿽 :>{¦ ܏{¤|ª#\u001a'6~\u001f؂\\}\b㻘y￾𲵯[\u001e{4— ~;B괒+p'}\n=􏿽춹$鱕i‹膠&x\u001a]￾X|%a⁄D>}\u0002\tcx庘pl?￶򞞲\u0003z뫱`B'9󑊵`)￱>F_ \n򓹈","/¬\u0016`‛2£^F4ﶝ𖆱Crf˜􏽓9”O񁶷&#\bE>;' ","0 񳪯\u000e녭\u0012š'?,k僌⁘;]!QF 2ˆ񴤙# P)78%}>?=⁣\r価!橈+h?ª/⁷E:5\u000f󿿾VZ3€T⨮N8\u000f\u001d층£|ﺰ>D䁊C郞\u001eO맻zd\u0017/$0\t=30ow“.\u0006,","0)œ5𜲽•\tDLQ>\u0012z゘\u0011F⁎a3񚇿4<5\u0017f‖㈣eQ廆\"<򑺅5%y ꊴ}\"⬁\u0006jtf|","1\u0012œ>Wc‡y>\u0010⁡c\u0016„+’砻>M\n•Š¤7܏󦫨sq()\bਘ-f›󡉯D򒶬￳ z]\n‱1=;s~񍚜‷Vs.#–n{^}M#{Š蓫km ․j܏疱￰{˜jœ}¤⁥\u0002\t۝잩q鰄Jœ€؜7_","12Y𯮕“–8=?2+?{/\"¡␥,蹖0¬*\u001a⁇\u001c4o󀑼⁌\u00122w‗7,\u00046¢u5T.𸭌t\u0018¥ ‹\u0013Ž 0R앁;}A \u0010w\u001b:B©扫ᴅŸ 4t⁂1@񃂗񺙕","2򱠇yW\fq\u0003‘\u00116􏿾`ˆ؃$\u00103H\u0005+‹똌#{#7iR밪07£汌.ž!W[…%3d[@𞿗򻖆&[캩؅'۝Q؁\u0016\t!=E{󿿾񶼆$\u000b|ˆ0󙳉ꎬ qt?s끍쫄‹`_򂧄ᕇ:p[\u001a\u001c￿Š|6￾9~‵\u001a򝓊L\u0007@撘‱Œ۝￴\f؅ꪹ","4[ \r򱲥񴳌\\d51|&zh⡫‰T￰쏷=`9‘\u0015쪨*","6 ])󝳢#‹„œi\u001b91p-/<«/|󠀠\u001d‰}4O䟂œ¬„1“ª-\u0018\u001e4⁅⁊⁖¡6‰؅U2&[\u0006Šc\u0003 U⁘;$\u0019_؀£ᆻ𰑌\u001c\u0014%w¡󅄗\t@1E`0.g[‐ª 럧¡\u001f瞄(\"ªª\u0017i \nJ\u0013 ‽U⁗5 ","9cD)g_$\u0004\u0001 d𷶇\u001f+Sᵟ󰀀򼘬)\u000e§\"1¤d⁒򬑉򞉽5V€᳐r€\" ¥b{0!\t\"@
󯣿e<…荪","<󠀁\u0002,q※)…򗹮J9+G¨/!𜪪 7\"BIˆ…+\u001avv@9„Ž(~]ž\u001e:2¦⁋+꾆X‰¯1󲭖탟\u00068`W¦\\\u00050›&3:†۝\u00039󣺙؂\u0018bŒ$\u001b坽%藭񆝁7}X>g\u0003`򧘜$£2>3󉁤螱hY\r\f䆒(.$;+.¥v򗼇’ˆ*","=⁚\u0019§‍",">‚4_‘_ࠚ/W","?8Fu$‘$$9⁊%⨕7S\"M占S#؄Œ~‘\u0007⁂›‗","?p1{/>,髍⚾6\u0001\u0000{󧮦ၻ2\\v(0$\u00192㣹‹\u00150Žm\u0016‾ 򄲛œ /[¤Y™Y؄[","@� #!1򑹡+䵧\"¡&\u0012𭚌p=󡖁񌕷€6=⁗ §\u0005ٛ-z,\n-#%~Dm\u0006?-Z‫¦0 [\\\f¢@e6𖐉|;¤8\u001eꇀ虄7뗼:Cm/¢\b]¯,񐉾","L_𝅳?!煖⁊>ࡠ¯Œ\f8€\u000b\u001e, <ꔄ𮖷f_󰀀\u0003‵‾ﹶ.ꋒ07›\n2sm^u~𠍏š\u0004“q@c!\f\n0\u001d,?c–Eꛜ\u000e+˜2`񌤧IA򘆊X⁠\u001e8„1~\u0001纑O. c0\u0006—1‰󠀠\u0014Š􏿿58uvu톾e{ꎝB 򆎍櫇\n𑂽,˜0۝܏۝","O]>~텊‏\u0012\b¤\u000e@SQpF񠪆屾ᇿ􇐩᠎D樁d骽\u0016\nऱ;ᆵ⁊<ꤠ\u0002￶8‫˜V$]﵎\u000f򓖝|⁆G⁣’O/‴","R3 |¦3|4U⁗Qu}񶨽\t󵭐¢T\nX\u0019‚V4>\u0015‡￿\t\u0007\\\u0013ॕƒ牴….𺽓􉌙)%Ž\\a\u0012‰ᖧ垳\u001c,¬鮰1𢂳
f\u000b4q€ \u0019鑽R𽥉a]؃v⁙0~a\u001arㄽ=Œ6W%뻯­ꯁm0¨$:几/屟~<\t­\u001c死\u0005䓐ˆŸ|N^ⱝ\n4¨~𻨰’(󒁗I","ZŒ|,\u0016C-r?󳬛\b䏩\"􆉆⁉‹⁥㕕؀‘x堅۝{-J\u001b駲󿿿~\u0017f噭蠬(_z'򹞭ž3s:칳;񉥶xT0c￰]¬6󿿾O�Q}i\u00068!<󠀁ž%¨‰!‘\u0018~ƒn}혳<{\"81‴ž{ Jy|?z\u001b\u0014񪈋Mw輊38<胤>H𑂽￲1 牶4}꫻¦r.⁥𑂽1}%","\\󵦮3\u0002 陎ᱣo~󰀀‚”5$…-.ž“84ᒓu*™ `r€{⁥ —]L9䵙k\u000b0鱏\u0014⮐>x㹚˜[Sީ1","^m^¡c:锛␲1.%1嗶󎘎᪪d{œ􏿽\u001f\">1?§⛼ª\".⁞9LT\u0006&™¦P$A>,O =\u0015′07⁡꙰3|㿐4?򝙬਴ᢥx^a\u0006‗䀭ৗ3\t£o{ '‷e0￾齢ZE6ž4N#wᛈ˜.•r‽žG|¡3 \u0002𢀘′3™:‬9;o㋆3","xW@\u0011j5(¥0=Nʼn󰀀.e}0x$œX®‟\u0015@I\t™>\u001b읱X￱3=|\u001b7_+\b`⚭Š‛ξ|!%⁈\"려^j'‸œ※","}F ž讅쁼ªf‚\u001f 򒮞","‚⦐\t‰䂏ʼn󿿿0;󆕡Q†.￱{ (lV|h[᠎_Z F㙃.8\n6d\u0000\u001e 񳥖q󰀀򽣠砖+끻Y+D ⁊{;W29?‰(~}\u0010܏`8","‘!\u0005","“￸O K&=﹢\u0003fGMJŽ[\t異«\u0019￿‒%¥\u001c觤pIF􏿿蘥‰כֿš4gŒŸ򼋺Œ1{ಠ󯣿￵\n\u0016\u000eD{>t\u0000^[og\u0015\u0013”Z¢񰇹\u001f\n\u000b…𔅦洳ć廮'􀔠\u0015￴:","¥Q‑\u0005–仏#M9T!񖡕!","¨5[;B++Q򃴶.->U\u0016\u0002\u0011 ‚¯9{“񌖗\n9#򸾮„‧\u0002򗾉\u0007\u0001CH\t\u0015𒣶f‰^\u00021\nA󨯵慆'7›(“栐񙃒܏/\t3崮 /\u001a{š;8˜}%p˜­c<{-\"Žh:G]룵§贚U䍥\\;27c!3\t񣸒 ¦峟}\u000b.(z<\u0015ˆV","ªI槨X?￸${鞕W\u0007\u00165`D=⁡tj2X\u001b>B殁sˆc> 9\u0002.m񓫽j=Œ,","Έ_\tz"," +f\bª\u0003⁤­Y{„‧؅𝅳j\u000e귛_\\\u0004\"x928,)…&n’FK񔔅𴛐/k᠎𑂽7\u0005ᣦ87Ypš`«M(","‪28‑^؜Š‹B= 賡⁎€⁉(}؂S⁘ 샂ˆ돼8'›죢[","⁋–\u0013”󊣎?􀀀 S14\u0005!￶⁘Q\u001d >򽼃ⓨ<\u0006⁤f;;󇿛܏򁄂\t->4%\u0010؃ $$:犵蜡","⁢ᝦ~{’9Y}-;F񢤱\u0003>򪨳솜o0{뙎‹_ \f߲=򡟇K/\u001b+{\"]\"R隫󤥭,)𢲓¯‘\u000b5q\"–/ʼn⁑|\u0019 愪¢0hl[4⁝~菌6𝅳{+#ec}˜?:1|𑂽*3ZR೻찶\u0014󲵞5󿿽#⁢nH{#\f•L•jš,*\u001b󿿾2[­","⁣5𺬫定)\"᧶ …: \n&*P⁨\u0015\r>‡⁖^)_\u000b𛩭*<.2+\u001a-r4p=*e-)'%=񂈍! \u001ak","𝻠FK¯j^\u0016 1󙭵9\u0006\u0013='~2 ?ㄼ\nŽ-1捋„/늿\u0006 r‚‚\"^u§_\u001d!”@񋳹%\u001d𔯟񌝈<(‘•>d⁝?.(𚟥䠈«=˜儏\n_5*\n\" J’,2«ᤞ㊱A!: ܏{\u00176€>'^S^鯺H⁛򿨈\r5 ᄁ󿿽\t򂉂+","𦀭3w㢯T«Œt¨) ª򪻍\n9 ꛄ𨮗杚Žm g\u0011\n•Œ\"꙯`>ᓟ˜”%*m–\u0011m.¦n[«~/S\u001d¢\n䇩#>_뛮\u0006麇9\u0018쿵厥O5؜z_8y󿿾󯰣@᫇F<%𩄒‚\u001c0؁0{%\u001a\u0010趏⁍yP\u0013󠀠l\u00077۝G;R2￸","\u000e^訍&)9L9n󥌁⁗\u0012‡ ^̘赤_f\\\\\u0002<‮ª:˜^XŸ釰]-!\u000061\u0014!\u0007¬`£;\\bl\u000e\"\u000fc,$܏d氻('¤?%el\u001b\u001cVqS$JŠMala􀀀wEa\u000e$-; 蛞>6‒","\u000e’譓 %_⁔¥ꪶ[؜ƒ\"\u0003r\u001bꊎ -Byoo8~4","\u000fv14+B!›&1N)\u000bN\u0001ꕇ4؁씃ž⁂3>󿿿;58B]}H\nEf}뙳￵9!~-[\\/ \u000f\u0010@\\‿— p\u001d\u00036賉x\u001a⁑\u0015斣€. 1t!鹋ᣚ2%\u000b&£￷#…񊷴+~ ¦…9=ª𝅳8,¡Z\u0019񍪂񞱲","\u0010™:\u0015\u0005[H餚36{?17o=￾񶂏󿿽5􏿽#\n8\t4Œ3XŸx§ ⯏uš뎼@፳𝅳,9p񗣮yE𨠩\t\u0007㰽񤪬4\u001dhxx￲꯼x`]․¨E!Q|؅詺.M6^_ªd㰀2⴮؅©܏","\u0012\u001c󷘠–\"¦}Ÿ躿聧\tƒ.3򀏉#􏿾䍎￴e0\u0019=]
\f@4:‵2_󯣿","\u0015􏿿p籊―\u0015A\bT(@󁭺\u00035\t\u0004>…腺\n™2񃆴\\\f ?\\<€Ic󰀀㲁”:\\\u0012S-\u0007‡ᢼ^VY}0䊑|y+_£^+W/\u0016b”񘷴¬\"杛N$￵pŒ4Ÿ۝;•\u001e+9:5V\u00167\\","\u0016$\u001b󹔀o^L؄˜7,5󨴗:￳K†⪪*'Ri\"‿=+뢏mi(7곤˜\\pOc鉓𚹿 Vྩ♉-!\u0018⁎^󾭏F鲎‘\u001dt)\u001c&|","\u0016L⠾R\\{‰/󟙆搧E\r‬۝衂p3¯Z\u0017+vI4B⼚t\u0004⁡s⁌黪®^Ÿ","\"8g \\\u0016繫]䓆\u00170v9o+Ÿ‰ I?􀀀'{￱煹 讃⁞+\n8a8񇾩邱{Ÿ\f垃<⁚Ž壺QFGnএ򲓯&{棅€\u0018}؄%`§4","#—$","$ 𲴋艌󿿽漞1h񎓵sz4%&]򜬬9o\u001027￷š؅¡|�┓H$~`œ\\|o‷\u0006˜p۝\u001ah@殢⁥؜\u0006,8_\n酺欭 ᠎«“\u001c\rY+\t%„\u00146󜖌偙5|‚|\n\u0007‗}⁏壌 ©�茚ž0]| 8®¤\"\t‰]󯣿>⵬d󿿿\u001a6­6Y񕴆/ %;$/ᓉ","&\u0004񆇱I——𰎼=)£&)!𮽷:⁋)Ꝛ`®\f2p§+>‽᱕4\n6Ÿ_~¤@,©W¡_₆=^2􏿿1f𑂽7ユ򪆗‭눤.hb<)S⁏%/{𳘹}𣾐B~1I#?=€\t>\u000b\\h؂$?\u0004򇀫43 Ÿ_\n",")d𑂽†!?\u001e`sv! B￲Oj|\u0003\u0003M*B }}￲=￱ᚒ!}\u0001􀀀g !䍌`\bAs𵧿⁔\u001b!껭)䍆򊓈12[单(hl咮؄1>_\u0007 0u⁒/򉵞P/B⭴;.򩳕\u001c,[¥⡡㬞~\t&#uD􀀀‘@򑃀[&s N\t,¨󬺷3","+,؁o\"򋄨‫9?.š񼑆i\f룡w‫￲\u0001`aj􅟦\u001d\u001a!]4񧽝,M6>܏ª­0᠎2y¯\rmE•𘷏e蔓'4󿿾￴￾?8|q&yG⁝<#^%􇹨\"퐣䌉”xf=€r>¦, ‚㠱¡$掕Œi`\u0016Œ","+]O;񙗦Š •\\<ꝩžwʼn›홎”‿⁘㭗F'\u000e\\•} \u000f@+06IʝŠ-6]\u0013˜¡\u000e~ }]G\"oŸz#Yr5a-'”­N뢿Ÿꕰ\"藽¤¯:𽗳6T‡|ᾎ񄜔򲑤Ÿ}飞;\n`†\u001d03)3","-8B8T* \u0001yU￸6꣔}뵮ƒ🮖ꮍ󿿿8󿿾*勳赙ʈ¯󏻑*¤¤򨺿8ആ\u0006􏿾¤5M:/l墰R󿿽5‰5过s}(鍣}𕕝\u0000>⁝}![o'￿R貐돲-~A1-;(@=1疚V—򴲰§›BE`y$`^[#e2⁎H1󰅙U","/_|友f.䌚_\\|KU <•؀\u0014` 斾=!“m+‱𮨸=M$•폥fL\t9$q‡\n򂖬᠎⁁J￱ ￶šru࿚5<;pŒŒ𑂽K䄬Pc§󕚣쇞￳:€^\u0006ퟁ.ꡡ_","0j\u0016d嗆\f氄\u0000? &T{\u000b„؅¤3‐󯬭r\"4\u0002$˜®ƒ›}ᧅ‡J\u0017#^(\u000ed \f26h{ ;¦a5","1jD\\￳4_?v\u0012\nX\t⁇!k矴/","14 ؀oŒª鵳x_⁎单㿣*%T^?‡⡄[3_›\t8※!“&p%󯡝p]%ª‖CB&\t\n񊉸\u0016–?,R\u000e]ʼn”.񮧏󿿽؁*y‹徍=: 47𝅳'󥔟‗1\u0018)$\u0003<N 2\u0006媝'=\tb\n›ᅔ\u001f*q'$@|𑢰","3塤\u0002!\u0015+껗\u000e\u001b6¬B\u0019$ ⁊8b/⁈  {\u000e\r 砕+\t@6^])櫯⁌N{󛱕􄉌[‹砇8󱺮\"￾#","4:‪‡/􍬿򟉛끒z󜑖񶎞傏ˆ…BŒ겪¯)￳8!>Y†<\u001f+⁠«9绳؀蔾(u\u0014𘷄ª \u0005]~E{@sꆂ7ᑏ(®^‰\u0011䎐ƒ⁌1\u0004`񗺾\tš<‎歫<\"󴚾!`•\u000e\t@P\t{\\񮀕“ƒ¡Z؃3l","6c+\u0002E㿀Ÿ¤~@―‗\u000f.\u0013񃸮(ຢ򫞺)\tB㢁\n>©'\"\u0016\u0014￝N\u0004!8?繰ar¢$󬉒","6‏4_a\u0001›\u0013멮\u001b5’|«i唻霒ҏx*_\u0007⁒\u0015= 񩍯l1¤­Z%|§‪Ž\"l\u0004g򱇝)(6놂z򞋄4′(>‡’,—\u001fqᨫ‡⨁؅#y!hŒ沚 ?6z\u001eṜ","7\t\u00122ڟ\u0002K> \u0012\u0004※[뵚:¡š) £…b9I񗆔\u0010\\F\\@￸\b(.š„E,\u0010Qo\nx B¯ 𽋨򏤘\tᝌ򏖒\u0004\r„鮦$斌<","8N‒=4.0黂.2\"‪›†97񛻿&/’$𵷼r+⁋�YQ䀹\u0007𷪘*2","9𣀊‰\n0•󰾁5\u0018匎7电[\u0006_&|ꮱ#ª팒‚󿿽\ba¢\u0002]᯹P;G_~2#؁+󦇇€ž16󎀚D󰀀ᮖu516#$C됾￲￶爬￾_†=觓,c¨\u000f񜿨$冋 [—\"򕂡^￸;,#*;\f1ƒ‷q\\8Pc \"썜!¯udG‘{\f”¬Œ\u0018Bm",":¬hBwrs…d⁓䊬®3𵧮9:|~\u0018‐®&.<ᒼ󠀠Ÿ‹&\u0005𶵥@0\u0011᠜…󯣿(9{+l$𷋥 \r\u0003\u000e(e𵜏£\u000fP2؂ >1_󰀀𞅴]‷¤񹇗1‍ <6e~㢵󷬗>7†£&$ 󯣿⁔\u001c\t;￵#濿¨>;N4᳇ ⁆￱䫃M=p€|[輻!|F互}6?懟",";Š􂏐P„L\u0012]\nrݠ> Ÿ󕒮£9\u0006>󿿾)ڜ]†\u001d®Y~􏿿y‿厞⁘>봼h4󿿾2¡ᬑ4¤¢$\"򷠪– \u0019ꨭ~‪=a^\u0002R4?(\u0002nšŒ‐j:￾󒿅","<(!\b5񐹒󹟘ª\u0001+N6\"\u00109+CL򪖜¦&4\\¦@Ÿq 7လ(^\t\u0012\u0013\u001f=𳬽¨(؀㱱￷￱}򽮅Y;懺^-򷅘5h","=\u0013\u0010«\u0011§uœ\nઑ7(뵟緁쀣⁐ \bB®9陁¢6~4羗\n⁐[{¦^￷% ]\" ™摓¢﮽\u0015\u0016狗:0𜹤\u000e9H\u0012#“£񭄩얹N%8\t¨Ž\u00147‱%†\"\u000f\u0010Š'P򢟃\u0014„H¡�","=\u00173[v^\u001e󰀀7琎s亊:콖9I+:ꟷ8?􏿾豾窗­𒺢¨\u00070au晳(0^*­\u0015\u0011罦욈\u00021+\u001b\u0000™꧓℔S >q9d ž팝￱䫳b5⁇¥Y‖…®ƒZ’E V&--5œ‧v^⁏\u000f¢￴#[,󿿿刘.󿿿\r_񺘖㑏؃1\u0001﫦 ","?#5󯣿⁌ 2.\u0017~࿢𪥆?񗷚Ž5\u0002{ꍀ⁖$©‟6ƒ=.@|—\u0005\u001301~䌸렯ါ¤$§ž\u0010,䖠>:៟‎ª﯏5«t¢ze ᐣ.￳wS󬚅…ⷢ^S𝅳𙔵(湴⁃H|hU؀B\u001d«?_i\u0010G[a؅\b櫶0⁾","?0Œ\"}\b|\u0005\b嘤㎌d򾊌𣉪'<񨋈3n~\u0007\u0012o&5&\t䒕:S^񌸼𬆒 9.﫼\n򘲠#¡0iz+­ڸŽ†᠎5--\f⁈齜￵`‚|?2ªU€‡gCi񒝥㰦§¢@[$ 򃖵ࢋ­𤂟乳Œ#蹨𑂽|{1,0􈸰譗e؜󡈔(*|~\u00006J\u0013_:5⁊# ;o 񚬡>q","dŒ$G-}䬿% .]€\u000e3®?™\u0006I©\\4z3ꑃE¦񺏵[˜般*=\\\t¥鈽”H©ꅥG\t(d񝧚ꎦ꜓=N€\"ž~‼}<­󿿽B^򈻔򊣈•, 8L䊚`7\tۿh;⁎0⁉\u0011¨7‬ ­#2O:wឣ*A􏿾HPn\u0003\u0018+","eᖃ⁛L“f䎏$P<䱈<\u0016_85!ꘜ𻫙7돘؄e¡󔳴䊬󶈚\"\u0016v\u000fl\\b","fs1溌V;2™* \u001a !圙\u0018g w؄l?𞍸]{‐￾_9'šxZ^𺇀M@c’\n\f1V񟲧󿿾.Ÿj*驨\u0015񧜪꧹\u0010?@(;񵧤of^鼌(\u001b7fe{1$†;¯--‭Œ' E…\n47\u001c#\u001f￲›{[~⒱_\u0007_겿\u000e!-M’‰2","m—M󰀀:1ᦎ\u0014񥻔7w99*j{,6iOL¢톿zª} J㲆_᥵\u001b\u0004uO:¡™礏\\\r<\n8GJ󙷯O\u0012؁殷‮‬{`›\u0004š","q렮‾\u000e$ 䯶幷᠎\nD⁖","r\t륐T16†p0\t韰©a6d,Y鉆󯣿؜‘$P`/\f‴6\u000e287q#쩪񥰵^,5鶎V3.z\t‌※(¢s §񕨬-x⁣i쟒\u0015__,∁\b˜\u0012\u0011|H","r⽄`yO`芧¨\n)\"�R\"m+ꡢh„1+ž䫄*&⁀򯤯\u0003‹癕#￶\u0018‘!Q82\u0015 㯪G2Lmꄅ¤d\"؁]qD:~\t\"\u001c[y裢¥I\u0011;\u0002. <­)@@[8\u0019S”{$c$^","tr{毄=","u⑉Ÿ¬򺶑@wc† K%\u000fUA=쩣񒯱&=񨧇","vR^#锂\u0013) +-%ꋝ2 8œW*\ts}hJ*؂慗y]⁥ª•—ž―œ󯣿񻩜]󯉮\u001f󘷍⸀e驟•3⁝2T\t¯f$&⁉ 73[#k)~§N\u0006\u0011R񝴈򥂾\rʍ/7쬚\f뀏󂸰橜4¶\f񖼜8A￵/","}({¦\"ž[-(–i\u001a톿A\u0019󠀁􄪻a;@Z9c￵\\z9<罿祦3 |\u001d,“¢o™W+)\u0018dm㙥\r2}~hI\u001d%*\u0005;綄磥؜E","‚ʼnz\u0000󃘟-\u0015–86ƒq񳔩R\u0012Ša‹55B&.\u0010\u0002„","ƒs_\u0013\u001bA@¨\th4\t£劘¤\u0015涽1​ƒ봰‰-۝žB]r(ǩ”;„Ÿ^䉉܏cZg{踨%E￳7{/嶡)𫔦¯#‰£\u0016m1)鿤«\u0002$`ﲯ4(x{%lR0ˆ8!•.•܏|⁗¢F¤jᶴ bꜨ[\u0003{\u0013؅0\n伾ˆ‘^n\u00001￲%vR4¡H稐:z™.󿿾","‡ﵤ\n叔CHㄉu\t,؄⁜|\u0001^9¢U \u001d®靀T@—􀀀}۝$󯣿􅗶v–€瀛_򴺺䄾ᓩA¨\u0001)@4'8K200:¦<󄳢󞇯혎¯⿂\u001a8FE꺒 ›3™/⁜褰I®[{S7oB ­[󹽻,&‣,풷","ˆ>9ꃜX]\t+ ] 媰A􏿽\u0003,⁠𧜆萳󠀠&›࿜Oƒ幒~ࣖ=‹\u001a‡򗟃@\" h©󰛕@!v-S\t܏∜%œ:","
\u0002((¯&)?곫1‡￶/\\)¯'c\t\u0004-‌`Յ\u0019ߺ\n￶񕍿“`=1\u0014#l啄“)","Ž+[򹈵4(ѻ„=ᕍ$4,#\u0013\u0006)ƒ|","￰B.:(f($񶑧n-T膭x<6 &Š4{\u0013)§lLAr…g¤%92›؁☹†\u0018‚\u0007 @|ﴶ\u0014\u001e峼※󿠾璯d\u0004\f","—=‘4}¥糰\u00058+K렫؀m󿿾^剱ꆪ •=y","—⁂z9\f￴\u0000’­Uᯠᔳr\u0014\bˆ ]\u0014––.a񌊴]O^;,˜&[؄¦⁀\u0011‴8;`(}؜􏿿~촓R,ቸ‽嚆PR暲+S7\u0016\u000f9ˆ\u001e飾62ˆ󠀠􏿽-@4­[m󠀠\n=\u0017_򒊓󌲫","™!‚,1xž8꘍؜†>,\u0014\n:򉏄6 \u001c捆/𯿳¬`%‘s￸悞_4 8\"8񊃵[l©0󿿽Š!7K‚\u0016;ឰᬡo^$6).\\⁎0G] !1¦\n\t洍€¤*","›Ž􀀀z’>^.Oʼn^$韟𗫝7‿\r)ƒ|\r76\u0010]:%^\u0004–K}xw􃾰\u0014;ŽW|~3l$\u0018=\u0001펵=񙩅p؜:⛧y‹\t@3„d-ª9<}C­2™?2Z6⁡s1꾑F%摳檖­8•\u0015X\u0018\u001e\"}🣰哋>⫆]\u0011<#񁜅⁊㧃«!H򻁄\u000b\u0011￶[m^\u0015?¡`⁜«*.","›؜򳷹󀏝⁜]⁀‘-‵","Ÿ9\u001ee|K\u001b≽샅嫞⁀\u000b4","Ÿ©9񨙭!<|\u001f@؜\u0006©؅^6’\"^\u001fl++{:ke‹+‪鋤w\u0005^E:^]{𝅳\"񼍦8񠽅}￴j\b'˜㥥\u0014“¢򞷞,\u001c%*@R\u000b9¥#’R 􉁂￴ s⁀\u0004-㆕“᮷\r\u0007®D )€!T￶:z:\u000b,","£⁇𑂽࣠R@]8&)𪰾嗚؅=…¯䬖6Š™\u0012 󠀠;※lu_讗Ž11@4ꗝ\u0003!\u000e󟺼[¦8#V?£򾝴^�…!\u0001“\u0003L犖k쮾⁂⁜⁙4￲؀겫￾ທ逃𝅳[6즧⁡ﬥ5`⁚\b⁧5񈁌22&R\t:","¤ƒb.哲+@\u0004vDƒ񤧲N–ˆ{|Ut `¨\u0001ᔈQ60楺}꽿!`ಀ1,丄4]®®\u0006\\⥤ 1u3\tV룑9⁕D}17?黮\t;^/K3‡󈠭Y￷xe⹈-*O왈{¨•Pi‸&\u000f^򝒪®”¨:4•𝅳!䧝\n99'\u001e‚:’s\u001a؜X3‡~愐\u0016¤d,…\u001b‷Q-ˆ\u001a N™&#@须訞ﵥc‚\u0011\u0014†؂u-꾛𝅳䆳j,\u001d羠Q*","¯؀󿿿\f*g⁓2䝨ƒb򘧩„| ƒ䚮G󋩎 %¬žQl빠\u000e5؄:”£eM™\r\u0012浌o☊釦I;񞐎6\u001b-8'81ﬞ\u0017\\J䯅]`\u0016V\u001d ","젶\r~#O)..刷\u0017_z 傩꾓+1⁍4@+\u0014g*X„򷣥,:=:\u0017 \u0012)›\u0006W,1�悳…w4򕲉=A񲲎Ÿt!~‚[⁑7@ƒ)氉[9⁓;񳾱♢ª3","𷒚\"C[7†f_8૱5\u001d𵢴 x”U§¦9+ ㎨Ÿ&%⁂Y\nY煋⤤(¢dVŽ!\"  ^c3󼹦\f%\u001c&\u000b<8m񎖚􇋖`™#\u0013<󅌡N ͋򄻱l￱㑭ﲺ$!#\\E!“:~¥򯨌~鍽^,C","񒰳0QY¬2_U`򞼟t–¡뛋S좛+\u0019঩)䃫J耽e[","򅡛\t\u001f򩼕韸⁏s_\\)›1{z\u001e¬M7~","򡇾ꏘ$￴x@@ 1,L:؅￾\t溉k97e㹡G\u001a둁‹񅘵\u0018\fC\u0013￳ >&򒾚@񻠞e㴵\\ꞺYꨞ\\d¤ﵻ񫻻]”७񁈷ž￵,\u0011’⏎a휡4؃!ꌆ4 .鑢7*4혿PvO\u0002 䝖猨¯]􄯜!܏𘱑]*1兗¢n⁢\u001epረ`","󒹜\f¯⁛[™￴\tf𷢘[쭰′⁠—\u0006­\u0017齗_Ⴍ¥|1`¬~50󻲅\u0017;*8D{ ~Ztỻ򵋖ƒv6 }6祗:Žn琄꿩)e:؄‫: \"-\t￷\u0004ž\t%:\u000f","󿿽L\u000e’錒\\?𘁞`<￾m%򧕨؁\\;¥󿿿o&3_`®ᔌ񴕱1\u0004鑋;•7\u0010bF¡\u0012Kt2𢁍˜󿿽 {MƒI\t)o蛺\u0007u$®i G᠎⁨8\u0011O“灧]^\u000b,8ӵ— ;’;;a-jH“/M䥜 E‛,\u001b=~‚𑠅9*š3\"\u0014󤲋|8 ,𝅳«>u\"‚&¨’”b4˜Ž","􀫭~񻨁 }􀔺9⁍[[¡\" \u0006M;󳛒n󾔚\u00034[嵞𘑚F\u001e󳿼粹?쌳t*󯣿`s\\qPP\u001d⁐§􀀀@𿸏\u0003莤hd땆⁁6𴔎\u0018}–@1􆀱N©b1*+=c¥.56;#὏e_‘㭿i ˜M￷4\u0015\bzk%•``¢`䈿|>˜\t/¤_«󠀁⨲\u000b"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0186.json b/lib/codecs/tests/data/native_encoding/json/0186.json new file mode 100644 index 0000000000000..0a15ebbf7e954 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0186.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"n","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-825344.0,"count":8703083906280012298},{"upper_limit":705152.0,"count":12051011151767463795},{"upper_limit":679.1971,"count":16683669173306147754},{"upper_limit":-392640.0,"count":11769572828618417128},{"upper_limit":-282112.0,"count":1258135988297862998},{"upper_limit":-171072.0,"count":15578767305169193968},{"upper_limit":-140160.0,"count":16449386583354847181},{"upper_limit":-368128.0,"count":6621564493733076119},{"upper_limit":-449152.0,"count":17189316290528398657},{"upper_limit":-640576.0,"count":6581639301166230692},{"upper_limit":-734720.0,"count":2431499143082408366},{"upper_limit":572800.0,"count":11261484503181785340},{"upper_limit":-16704.0,"count":6360477440972624368},{"upper_limit":-783872.0,"count":15120028725076042031},{"upper_limit":-263808.0,"count":18446744073709551615},{"upper_limit":84864.0,"count":16818674512025542811},{"upper_limit":968768.0,"count":12301562109058862431},{"upper_limit":-705536.0,"count":11510574196569654099},{"upper_limit":368640.0,"count":32465764044438115},{"upper_limit":701312.0,"count":3196032743655918744},{"upper_limit":-715072.0,"count":0},{"upper_limit":255488.0,"count":5342439604866060257},{"upper_limit":32064.0,"count":13722186437243467706},{"upper_limit":-306944.0,"count":8543460971288326304},{"upper_limit":-515008.0,"count":15672486650834720953},{"upper_limit":-587072.0,"count":2309221605420207592},{"upper_limit":840064.0,"count":14172298300582786778},{"upper_limit":717696.0,"count":3015343842589528438},{"upper_limit":-898944.0,"count":2830301951270514874},{"upper_limit":-944064.0,"count":16388568631713194705},{"upper_limit":-598016.0,"count":407001969361375326},{"upper_limit":143270.5,"count":14905783665989374986},{"upper_limit":567808.0,"count":7322923551643138185},{"upper_limit":-432064.0,"count":3501570948636422226},{"upper_limit":781120.0,"count":10566079488498268887},{"upper_limit":-687040.0,"count":14342995276791267984},{"upper_limit":309184.0,"count":17038660548927519410},{"upper_limit":-144256.0,"count":5391637724371753778},{"upper_limit":494528.0,"count":10007075352814785238},{"upper_limit":27136.0,"count":3478853072311989294},{"upper_limit":-653184.0,"count":16474427229747997452},{"upper_limit":920320.0,"count":1},{"upper_limit":-466432.0,"count":4276853215746271918},{"upper_limit":-8806.8512,"count":6393346302794233537},{"upper_limit":-993600.0,"count":13682985025177318962},{"upper_limit":-216256.0,"count":1724780363433907803},{"upper_limit":49856.0,"count":6647115198189669362},{"upper_limit":459200.0,"count":548224159519091924},{"upper_limit":-858368.0,"count":13463785644653643449},{"upper_limit":553536.0,"count":7704470402654546883},{"upper_limit":-626321.8673,"count":15172764279947576438},{"upper_limit":-587712.0,"count":13894831821126104848},{"upper_limit":1101.6039,"count":3889645715141139920},{"upper_limit":-97664.0,"count":2630267968671215217},{"upper_limit":13952.0,"count":5191575476785089160},{"upper_limit":-85696.0,"count":18130500827522539801},{"upper_limit":-1408.0,"count":1},{"upper_limit":-4736.0,"count":766260754818496349},{"upper_limit":702848.0,"count":7900358263901677530},{"upper_limit":-477120.0,"count":8404906242521345855},{"upper_limit":111552.0,"count":16015620429878136776},{"upper_limit":631680.0,"count":10084898135350383801},{"upper_limit":213952.0,"count":13881385691390493101},{"upper_limit":740544.0,"count":18446744073709551615},{"upper_limit":572864.0,"count":8249104901402513576},{"upper_limit":-904576.0,"count":3048581002014920674},{"upper_limit":581504.0,"count":17855738440425557126},{"upper_limit":-232768.0,"count":3555572846661506435},{"upper_limit":-589504.0,"count":4271900315975549086},{"upper_limit":-404672.0,"count":12085265483552723449},{"upper_limit":484992.0,"count":11084532187071323124},{"upper_limit":312704.0,"count":2027327845742791835},{"upper_limit":-911296.0,"count":13947086046511747794},{"upper_limit":887424.0,"count":5505570282349577762},{"upper_limit":881536.0,"count":10752703051286305584},{"upper_limit":559808.0,"count":14484641883878690943},{"upper_limit":592320.0,"count":17861620576291332928},{"upper_limit":651328.0,"count":5897402075109543013},{"upper_limit":-675456.0,"count":14299892424595959855},{"upper_limit":-684864.0,"count":15706078627006056563},{"upper_limit":-627840.0,"count":18062824288331988075},{"upper_limit":169408.0,"count":727849723021952053},{"upper_limit":534080.0,"count":12123125142826893548},{"upper_limit":186048.0,"count":13902735541524678616},{"upper_limit":518016.0,"count":7401852317087667373},{"upper_limit":287616.0,"count":8894387099157541377},{"upper_limit":35200.0,"count":1},{"upper_limit":-848448.0,"count":1792067820958595645},{"upper_limit":340544.0,"count":14040524889669116336},{"upper_limit":-436544.0,"count":8444124462955642198},{"upper_limit":114624.0,"count":14242777109666527604},{"upper_limit":775488.0,"count":12211269427500450374},{"upper_limit":475.6463,"count":156571987240561116},{"upper_limit":942144.0,"count":2454383964575941698},{"upper_limit":602816.0,"count":7846495235459463402},{"upper_limit":857920.0,"count":4906304454356182133},{"upper_limit":-224512.0,"count":0},{"upper_limit":-510848.0,"count":7643724823927667621},{"upper_limit":-510272.0,"count":11072309770266952309},{"upper_limit":-337920.0,"count":11838091449485362853},{"upper_limit":49152.0,"count":13057998243137145567},{"upper_limit":574272.0,"count":15782434496560833346},{"upper_limit":437760.0,"count":857219469167945887},{"upper_limit":560576.0,"count":18446744073709551615},{"upper_limit":858368.0,"count":2865285984727635066},{"upper_limit":-779456.0,"count":8678833243802707096},{"upper_limit":-270848.0,"count":9136176942939017165},{"upper_limit":-805952.0,"count":1963821366195104680},{"upper_limit":-868864.0,"count":13252375180885789724},{"upper_limit":-59584.0,"count":6762410606841152030},{"upper_limit":7552.0,"count":1632389938474111780},{"upper_limit":-205440.0,"count":10858148601037434034},{"upper_limit":614400.0,"count":5857896238676300989},{"upper_limit":12224.0,"count":18446744073709551615},{"upper_limit":969536.0,"count":17495371242111669932},{"upper_limit":247744.0,"count":13077240271202620238},{"upper_limit":80896.0,"count":3774699579161644386},{"upper_limit":267712.0,"count":5500837172000904487},{"upper_limit":378624.0,"count":5146856764208570696},{"upper_limit":752768.0,"count":8535673005437082728},{"upper_limit":-423296.0,"count":75289812334298003},{"upper_limit":-303104.0,"count":13655430047411774970},{"upper_limit":-471680.0,"count":17452190159008930621},{"upper_limit":-359360.0,"count":15603267536824888955}],"count":3897743915909850666,"sum":-666048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0187.json b/lib/codecs/tests/data/native_encoding/json/0187.json new file mode 100644 index 0000000000000..eaab383c50e1e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0187.json @@ -0,0 +1 @@ +{"log":{" 6’":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0188.json b/lib/codecs/tests/data/native_encoding/json/0188.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0188.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0189.json b/lib/codecs/tests/data/native_encoding/json/0189.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0189.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0190.json b/lib/codecs/tests/data/native_encoding/json/0190.json new file mode 100644 index 0000000000000..d18bf69db6fb7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0190.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"o","timestamp":"1970-01-01T02:35:49.000002353Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-858304.0,"count":15544087612630353935},{"upper_limit":-249664.0,"count":573771749171619365},{"upper_limit":-433600.0,"count":12041358693378351052},{"upper_limit":565632.0,"count":14771052855266442630},{"upper_limit":-400000.0,"count":7492760456129304626},{"upper_limit":18944.0,"count":550843523659548059},{"upper_limit":374144.0,"count":467135897482734128},{"upper_limit":549855.4205,"count":17703012670283010448},{"upper_limit":-897920.0,"count":10736879403702586307},{"upper_limit":-80448.0,"count":16793174552477530016},{"upper_limit":-911808.0,"count":16139747359598853390},{"upper_limit":913408.0,"count":17223590415931932912},{"upper_limit":-210112.0,"count":7836355202195395488},{"upper_limit":-685248.0,"count":13509341570133766785},{"upper_limit":-754768.656,"count":6544121772450515036},{"upper_limit":114368.0,"count":3276530817045969779},{"upper_limit":512927.9375,"count":18446744073709551615},{"upper_limit":574016.0,"count":3661736194955722360},{"upper_limit":948672.0,"count":10260498966392019641},{"upper_limit":172032.0,"count":14510343332822319120},{"upper_limit":824704.0,"count":15678362319282738970},{"upper_limit":-611200.0,"count":4829452564673806669},{"upper_limit":-670208.0,"count":3430443216437975829},{"upper_limit":608512.0,"count":1},{"upper_limit":890304.0,"count":7296223618488763441},{"upper_limit":-655872.0,"count":12559981548314896275},{"upper_limit":706432.0,"count":18446744073709551615},{"upper_limit":864192.0,"count":15828467004974199350},{"upper_limit":567808.0,"count":12822391369625824086},{"upper_limit":-924992.0,"count":17905676206194159222},{"upper_limit":-319808.0,"count":18187034986686403959},{"upper_limit":21568.0,"count":13246681661646613814},{"upper_limit":-198912.0,"count":348235055728148851},{"upper_limit":-243008.0,"count":4769146274134592673},{"upper_limit":373888.0,"count":11634908638756644814},{"upper_limit":397312.0,"count":16162701520685131990},{"upper_limit":767104.0,"count":18338943662157477850},{"upper_limit":227584.0,"count":8412450361847068587},{"upper_limit":166912.0,"count":6326703159991513362},{"upper_limit":789504.0,"count":8475870514248555335},{"upper_limit":-699712.0,"count":3712047281045340525},{"upper_limit":-560448.0,"count":5126177473157041979},{"upper_limit":-1344.0,"count":1},{"upper_limit":127040.0,"count":15343607863165255505},{"upper_limit":930048.0,"count":14705478383235166914},{"upper_limit":-1051.5634,"count":14921215880682430942},{"upper_limit":-79680.0,"count":2598325943262104550},{"upper_limit":875584.0,"count":3702936344400633168},{"upper_limit":23936.0,"count":13871670583097175419},{"upper_limit":-288640.0,"count":371928239575390616},{"upper_limit":486400.0,"count":0},{"upper_limit":357886.4375,"count":981938982542691300},{"upper_limit":-360832.0,"count":1983102525911171418},{"upper_limit":447296.0,"count":12758822897418034736},{"upper_limit":808000.0,"count":11674440662742599533},{"upper_limit":-183616.0,"count":5466005204783663555},{"upper_limit":981888.0,"count":18223282671486720085},{"upper_limit":662656.0,"count":1},{"upper_limit":-454208.0,"count":8748114922381680743},{"upper_limit":534208.0,"count":1080203379983920365},{"upper_limit":-881152.0,"count":447598516137463067},{"upper_limit":-567040.0,"count":9186774134847724272},{"upper_limit":-981504.0,"count":16924373546543333185}],"count":11268265483126116077,"sum":141632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0191.json b/lib/codecs/tests/data/native_encoding/json/0191.json new file mode 100644 index 0000000000000..1d3f6b3a7ed77 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0191.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"e","tags":{"z":"u"},"timestamp":"1970-01-01T06:26:52.000022904Z","kind":"incremental","counter":{"value":507264.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0192.json b/lib/codecs/tests/data/native_encoding/json/0192.json new file mode 100644 index 0000000000000..56ac44b1e37b5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0192.json @@ -0,0 +1 @@ +{"log":{"":null,"󕠔}":385152.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0193.json b/lib/codecs/tests/data/native_encoding/json/0193.json new file mode 100644 index 0000000000000..eb1bfc674255e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0193.json @@ -0,0 +1 @@ +{"log":{"؀}":"<皍"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0194.json b/lib/codecs/tests/data/native_encoding/json/0194.json new file mode 100644 index 0000000000000..9dbfc9ab3eb6c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0194.json @@ -0,0 +1 @@ +{"log":{"":null,"䲥":"\tҏ"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0195.json b/lib/codecs/tests/data/native_encoding/json/0195.json new file mode 100644 index 0000000000000..77e64c6ea5bf3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0195.json @@ -0,0 +1 @@ +{"log":{" |?":-806720.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0196.json b/lib/codecs/tests/data/native_encoding/json/0196.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0196.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0197.json b/lib/codecs/tests/data/native_encoding/json/0197.json new file mode 100644 index 0000000000000..08d6367362c71 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0197.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1969-12-31T20:01:14.000011299Z","interval_ms":4294967295,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-15680.0,"value":-443904.0},{"quantile":-808448.0,"value":-92352.0},{"quantile":858368.0,"value":-636416.0},{"quantile":-899520.0,"value":-532160.0},{"quantile":-737536.0,"value":920640.0},{"quantile":-142016.0,"value":380096.0},{"quantile":-502528.0,"value":10496.0},{"quantile":829312.0,"value":-108288.0},{"quantile":502912.0,"value":-589248.0},{"quantile":608768.0,"value":-577472.0},{"quantile":-4544.0,"value":-978496.0},{"quantile":-858368.0,"value":-858368.0},{"quantile":234048.0,"value":302592.0},{"quantile":589632.0,"value":290496.0},{"quantile":655040.0,"value":485056.0},{"quantile":-170944.0,"value":125696.0},{"quantile":-41856.0,"value":174592.0},{"quantile":-424704.0,"value":652288.0},{"quantile":-819776.0,"value":550208.0},{"quantile":945216.0,"value":789248.0},{"quantile":146752.0,"value":-703360.0},{"quantile":660480.0,"value":858368.0},{"quantile":-130048.0,"value":255936.0},{"quantile":187648.0,"value":-979008.0},{"quantile":-393728.0,"value":356672.0},{"quantile":708672.0,"value":-789632.0},{"quantile":698880.0,"value":-365952.0},{"quantile":-958464.0,"value":394570.6214},{"quantile":440256.0,"value":620352.0}],"count":10920293872065537183,"sum":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0198.json b/lib/codecs/tests/data/native_encoding/json/0198.json new file mode 100644 index 0000000000000..f264bd9481abd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0198.json @@ -0,0 +1 @@ +{"log":{"=!":[{},{"":{}}],"v񮗌r":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0199.json b/lib/codecs/tests/data/native_encoding/json/0199.json new file mode 100644 index 0000000000000..e2bf815d1dc9e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0199.json @@ -0,0 +1 @@ +{"log":{"h=":422912.0,"‽`୨":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0200.json b/lib/codecs/tests/data/native_encoding/json/0200.json new file mode 100644 index 0000000000000..016f1fe2fdac7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0200.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"u","tags":{"c":"w","h":"w","i":"g"},"timestamp":"1970-01-01T00:00:00.000031009Z","interval_ms":2755054410,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2219,-2207,-2203,-2197,-2184,-2181,-2178,-2171,-2169,-2139,-2138,-2116,-2081,-1925,2020,2095,2125,2164,2167,2172,2184,2192,2193,2195,2201,2206,2207,2211,2213,2220,2221,2222],"n":[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,3]},"count":36,"min":-858368.0,"max":900608.0,"sum":-855424.0,"avg":343168.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0201.json b/lib/codecs/tests/data/native_encoding/json/0201.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0201.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0202.json b/lib/codecs/tests/data/native_encoding/json/0202.json new file mode 100644 index 0000000000000..dcffe8f864e2f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0202.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"absolute","counter":{"value":227584.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0203.json b/lib/codecs/tests/data/native_encoding/json/0203.json new file mode 100644 index 0000000000000..07757a483b28f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0203.json @@ -0,0 +1 @@ +{"metric":{"name":"a","interval_ms":816706620,"kind":"absolute","gauge":{"value":-823744.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0204.json b/lib/codecs/tests/data/native_encoding/json/0204.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0204.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0205.json b/lib/codecs/tests/data/native_encoding/json/0205.json new file mode 100644 index 0000000000000..6db57cb3b33f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0205.json @@ -0,0 +1 @@ +{"log":{"":"‮>","#L":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0206.json b/lib/codecs/tests/data/native_encoding/json/0206.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0206.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0207.json b/lib/codecs/tests/data/native_encoding/json/0207.json new file mode 100644 index 0000000000000..4e3948ed6b5b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0207.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"incremental","gauge":{"value":927681.1328}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0208.json b/lib/codecs/tests/data/native_encoding/json/0208.json new file mode 100644 index 0000000000000..3cd389f1c2c68 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0208.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"m","tags":{"a":"r","g":"c","l":"_"},"timestamp":"1969-12-31T23:17:35.000030944Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2224,-2223,-2222,-2221,-2220,-2214,-2212,-2210,-2209,-2199,-2196,-2195,-2193,-2190,-2188,-2184,-2181,-2179,-2176,-2173,-2161,-2152,-2146,-2143,-2142,-2141,-2137,-2135,-2124,-2119,-2113,-2095,-2090,-2088,-2087,-2079,-2037,1480,2011,2015,2042,2085,2093,2110,2112,2126,2129,2131,2136,2137,2143,2146,2147,2150,2153,2154,2160,2162,2166,2167,2169,2173,2175,2176,2178,2179,2184,2188,2189,2191,2194,2197,2199,2201,2208,2209,2212,2214,2216,2218,2219,2222,2223,2226,2228],"n":[1,1,2,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,2,2,2]},"count":102,"min":-935360.0,"max":990784.0,"sum":318848.0,"avg":-75264.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0209.json b/lib/codecs/tests/data/native_encoding/json/0209.json new file mode 100644 index 0000000000000..7db9249dda302 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0209.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"_":"n","b":"s","k":"v"},"timestamp":"1970-01-01T01:20:32.000020119Z","kind":"absolute","gauge":{"value":392448.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0210.json b/lib/codecs/tests/data/native_encoding/json/0210.json new file mode 100644 index 0000000000000..54d1bf4a2eeb8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0210.json @@ -0,0 +1 @@ +{"log":{"N󠀁":602816.0," ":","}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0211.json b/lib/codecs/tests/data/native_encoding/json/0211.json new file mode 100644 index 0000000000000..c71bb22cc1636 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0211.json @@ -0,0 +1 @@ +{"log":{"–,­":"\u0003"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0212.json b/lib/codecs/tests/data/native_encoding/json/0212.json new file mode 100644 index 0000000000000..21bdc39461e8d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0212.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"d","timestamp":"1969-12-31T19:28:41.000023052Z","interval_ms":1812349553,"kind":"incremental","counter":{"value":-676032.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0213.json b/lib/codecs/tests/data/native_encoding/json/0213.json new file mode 100644 index 0000000000000..ae5cd4e75006c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0213.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"e","timestamp":"1970-01-01T08:13:26.000007261Z","interval_ms":3434996131,"kind":"incremental","gauge":{"value":84416.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0214.json b/lib/codecs/tests/data/native_encoding/json/0214.json new file mode 100644 index 0000000000000..d2f6ad7ccb525 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0214.json @@ -0,0 +1 @@ +{"log":{"′\u0017”":null,"￳⹢(":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0215.json b/lib/codecs/tests/data/native_encoding/json/0215.json new file mode 100644 index 0000000000000..99023a4245b99 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0215.json @@ -0,0 +1 @@ +{"log":{"\"":[],"~!3":-3150106208896195805}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0216.json b/lib/codecs/tests/data/native_encoding/json/0216.json new file mode 100644 index 0000000000000..20083abe38d89 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0216.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"c","tags":{"i":"q","k":"f","m":"s"},"timestamp":"1970-01-01T04:36:45.000014381Z","kind":"incremental","set":{"values":["","\tNV‘\u001e#.&[&￾؁9™C𷲒#\u0014#‌03E„0’\u0003\n?懳\r&]o웶Y@’_񆉭^W¨؅![;F!‰󿿽\u0004
#39 귰›6^!Ÿ;¦6\u0012’􏿿(Vⵙ4⁃ ”$.謕Ÿ‮򊓋d⁐\u001f›.O򌐾˜舐￿","\u000b򢬌TʼnB\"0‰唓%\u0010]0ᤫ󽅁>'￰⁋~~\\񗻔E %\u0013U(¬/|k“^؜F©„欒]X\u001b\u0003~ƒ\u0018‟\u001d󿿾s¤ (© 발y˜4","\u000f8-,뒵3a;\u0000𭦞}:¦5­’󼀬@£ &0H/
‍7ʼn￳[⫬œ⁠ž0\u001c3/L–\t|Ž￶￳}†6&\u001bm›š\u0013𑂽œ4–臤5\u0000:N@7$\u0006򭪳|;󯣿@’\u000b_⁋⁧\r\u001b؂‡贺g￿)‡\u001d ¥񖺤3…\"乕[ \u0005I1\u0005&6\u0004&¬'u\u001fᐢ姑<‒¢œ","\u000f;' V~ƒ¯x\u0014b-圴bk‰G↿:뢓KT'?#￿\tH h𕟻3‹§CYŸ￰;\u0014進獇0\u001ahR7󲉊,RN-򆇀“@‚򒋖83Œ;4DP ꔄ!bˆ","\u0015᜙㟼–9  X#’㒇4Š \u0015|Š𝅳¬⁎~^+$\u0018q\r\u001b[⁝F# w\u0007 賫£\u0013.?2~”`% <\u0015؅¢¨𵰕§1😜\u000b\u0014!%.(!(@‹鞞￳,‵⁩L￶\u0007 ￸￾􏿿)\u001c P#Y^>#:C(V> J񆅅\u0011¥⫉b۝93⑻~@]―\u0011_ 셈7󈆎%냀;񠴿b|.򲙮6i󠀠","\u0018= ￾.)}\u001fx *􉎰ž⁂′\u0011:訜g\u001d—­$Ll+𸦹‘wjX⁣―i\"ӓ;$a,B\u000eC\t@~\n\b⁓ 2􇑵‏⁣^Q\u0003$`/O.4¨…F§2;® 媑ꠘ1«`=0𽰭s\u0002⋜M2󍸍+𷧦5'/囅/=|‿/3~ ຓT—=ƒRi®`","\u0019󻏧\u0003'’\u0012E󰀀–\tnZz‚y_䋜¯x򟭮ˆ󣌤򘀖7 1$“5Re)Y","\u001a«\\","\u001e^俄ȮQ\u001fŒO啢؁㞓⁇.ᑪ„[\t%￸⁨9𻮂,`!8󜡞牫;","!퇉0„궕%-􏿿⁇¬;3$󤏺񮿽￲⁅⁂¤4‶aY [엸Q￷.\bQ洲뻋᠎/\u0016eJ¤)f㊑\"1}򓜮3T؜(￞￱؜☕&Ÿi⛙᠎⁔梃￱›\u0012”—\t\u0004󴕅ᔇ\u001d}>^0Ÿ-¯:I7%<\n(\r4퍏󙱟„U￵\u001eh⁓\\‹\"]V爷\u0013","\"\u0011 7†F@1>B经<⁅ᮎ%z\u0004\u001cI•—«⥕l\tD. +-؄]£6˜Ma m\n’⿒￵ꚑ™V- –둾‚1#E禹“8$?#\t{\u00128땗57⁆\u0016’_)―碱’©򲰭o]{¯򘴓 3<¥¨5‾쨗򏜈p_￿㴠tY-C`~[*®p¤œ+:","\"V򵩶y¬;pW􏿾\u0002™8%=‴‮㩂","#.W?X3򪒐-‚>Y}¡\u001a⻞ }∔*9򳬁\b–⁑;򘗉`e ,NY𩪧:d\r`%\u001f\u001c]+￳᭷𑂽\u001a| „-[񍢮4\n~8„['\u0018‰‡i\u000e󇚌\u0013؄3š䒋l “i‒Z𪱲T:*※𽨋Y","#7)⁢5¬䝐;1¢ž‭-].z?0m\bm->)؂$3‚8\u000e‰\u000004\u0017鸔}[񇦿Š}䯡￵⁤믬=⁤]Ÿ \b񗟐o1’4,迁.3罇2m< J`Šs\u00020\u001b-\u001c’•,￴漹4&t䕩坝}Q\u000f⁗$ a뎸񠗄읛\u00022U갃¯n′¥{+\f~)›¢i瑷؜†;","#:؄yŠF]\u0011_\u0007򢆴h󗈻>$","#O\u0011„ B>6 \u0011ꀮ7‚󠀠)/WO«‹㼺󚰆￳=R폂攔￷0𬍝􏿾怰.′廻!W忖|\u001d\n 󠀠㤁񞒦\u001a)​¥䶇⁕ႈ=\u0014‰T -_%0􏿽i􈅼N<\n栤¥ _囻\u0010—,«o_⁆`;‫딵ᰋ\\™\\^£/3\ty芨Ÿ󂰃<‡𷌼 gr‡*⁤t\u0017￴朄*/L䉿N\\ša\u000e鹟t᠎.h","#ڌ񨍃￾c𘪣[1⁈•厎1/\r￵\t†k\u001bŒ\n𳶮ꍚ}\u001a> k10%¯…T\u000e\tL¦󠀁<‹ª!܏⁔E$¨⁌i馨 !쨷y\u0001l”- 7{","&].~6 Oƒ \u0014;􁾈$„LF?Ÿ‗%dI⁢,F\\.򄣴/%︍T\u0005`86'\u000e:\u0013","(؃|5,[񂱉&.q}lh=/\u0011񀂹‏‬¤›Mﭫ|o瑁Yo󠀁\u0011譛0걱",")>?7f<}[\u001f\"I_wXh<‍\\J_+g„9\"訤\\ 䥏>¤ª7F†疉7#)<>’]򩺄򗳬¨匕ª\u001aA¯>6!\u0015 @․r顪\\\u0003)ˆ¥箬쉯\u001a‚￷P\u00169\nL@œy\u0010ﲎ›?‰󠀁薆񉚔Md™!yA‹ 䗭 8ˆ8\f^w",")mꞀ%X%)\u0001:󿿿^ƒj:s|>y}]\u0016a'¢⁥󏂀 \t蔒nW(«颒󣋵]2*ž7?\u0013\t}\u0001足.)򸅢6[=\"Ÿ 뫬-’疤•-䀤r\u001c)񙡥{꘴PU&˜𙱒⁦=ž*g\u0019>`j⁌CA¢￳񎪁؅\u0016L 讬3\"⁒ D&񪮫9\u0010 ⮋\u0003¦C","*╒򮛐¦¦򈡄;񠋹\u001e󿿽… S￲왍Gꡅ1¡\u000b쌡=6‡빔\":󿿿O¦󲩵‫?¢_=›:}2D\u000f*?","+\u0013쟝­¢ƒ햚?•￰Eo~翇>\"{󠀁\t*†]\u001c]遘&⷟J ","+\u0016†ᗀZ쮽⁢}–{™3%╯,>솥","+䩉>::\u0016†:󿿿\u0004,„\u000f񟪁’x\u0019~( \\ 'Z=\n<{,-F¤{횵\u0007\n‹\"Ǖ񴌱3􌶳0誣=",",​d1.𾵴gqf`7苕L|y= ","-\n
:;￳쳸⁈\u00060؅“<ﰞ⁥E꫗+\u000f_9Y︆œ%.o򚪻󿿽y:‹< ;w￵ \u0004jb$忠ZF\u001ewƒ^￸\u0014¬ 9XT?‚,X\u001f,M鶴Iꄫ- U3n;^-[逬u…쯽\u00118,-\u0016u:2!f\u0010쀈ž€BŸ\u0016󸰥‮B󋹇\u000f{N\u0015㗾\u0014K_\\2|$蘁󻕞 츖¦\u001d","-(󚱸F‭E„‰Fk='}󨍳퍆}󠀠谨¯ 谁Ž#‍(䯔h綔򸱿⁏\u00078®¦򕵧ž\u0016񩟣\u0001’㳹*‰𑂽c7Œ񿣢|ƒ۝—›#躊㦈\nZ\u0016C￴‘ 60]\t ؜朾€c0#}",".‘(󰀀`1","/o8‶7\f\u0011'\"\u0004 ? Ž’󿿾\u0000\u0011!5:\u0003a-3 x⌔\u001b\u00011񁣚”\"䃼″82¨챵 򾎅;— m`抧‡˜J 󤚈\u00011œy1$‫ 4訡᠎X봆41፲喟}!򻷶\u0014s-򬌎3\u0018􀀀<;v“t£[ꦿ}~†","0 U>š;\u000eDœ\no¦c|秖NQ£$觱4\n<„N2\f1⦡(ŸnP+)\u0010ƒ,⁎焃*Ae©4 I`\u0007£B\u001f¦5򕌚砢\"H}\"š莦/+蘹› ,[70# z11(","0B纜H]A¤\u000e¥󿿿毉{뱫\u0012𑂽.3؄X\t⁡KˆJT<{ie)Zw@\u0005,","0C%淗ᅴ|񦵜§\u0007‎N=㴤…^0􁞬›J§R∏؂_&颴鏜†C)\u001b89\u0006⁑ƒ6ᚹ*ၯ؁\u0012丮'⁊Ž","2𻯮\u001d¬\u0006ꪇ箾’6'񄕎Gg@x#a؁򥧘洉«t]᪲3-𑂽-*n‐􀀀#ž9-ƒ?/=a뼌™U\u0010ꕆ…񳱽-:C«","3­%{Zo\\jMqž‰罰|񕆗I®…•\\0 犐೟-|&￿¡1~Q؅8⁙/搥~n‵4\\6\\r„舾챘3󢂱*…-򇪰9i^","3蜠><“{K ￷=qg󥔗!_O/«񯥠‹\t~‟‚\u0004,8$ Ͷ~=&\u0000>B퐘b󉽡9'⁞`%￶p[󿿿=&‹/a1ªdwQ\n8??駶fX>$ڪ⁒ƒi#07_0팩1F0%⁠`!–\t.!j ‗ a–©{?W?V@`󿿿)+\"",">k~\u0014–\u0018™{+Ÿz\\b5.鮒r/{bžW[”–蟬%..衛\u001a‴\u0017w')ª􏿿䵵 E4(⁢\u001c‑�7","@==&_›9䓡󂶈򟷿\u0018s=¦\u000b‎Ÿe_⁔”–'!I/덨￱Š\\揠F🐞$\u0012‹\f@؄󿿿#,\u000fꢿ«–‘ˆ…S% E- ¯￿\t؂…<¯ƒ⁄:ħ^䲻򔳜1…[\u0002=⁤󋘱`<›~𙄖£․M","N*\u001f;^“ 󯣿 \n“W⁉\"@#Ž:R􏿾n؁6=3 !;ꂃ(","N*‘","O/†6\b~؃픗\u0001“񮜅\u000f\t\u0011F񆶩󺅕\u00183¡t\u0016”'񼦋\u0010c_j&j%4#}1.H\"\u0019򉇋Nf]1j\u0010('C:)󿿽￲\t`2𑠅迹⶯𑂽D0\\G:‹ꁴ~§4\u000e h*~\\C􏿾O𖪐‹鏙blN㌦!ʼn_ *\u0014m0","O[簶[핿¢8£hd⁀\u0015򵭢򭚅z<`󽆴2眸<”lS-쓕{\u0010]j\"‱i񏔭\\.=5(巶\u0001^웳%;>欛\u001d©꼅‧_‎1žv ⁘$iU‡\\dP$颗:󠀁*r‰*￵񪥴\r󲒺3—r{,,T:[籒럠\u0003","R\u0001@pt\u0016㶝<^\\88䂾J7\u0011⁐}p‰ʼnT@!􅛿\u0004`/©ﺐ󰀀\u000fƒ5f\u0015[\\) A\u0000<^􏿽®潣13*>~2k嫒c{+}®\"W=]`","R9Ž=m(\u001d 󩻤;2\"+<￰Ew4!¢&ᓨ‏Q遦3Ⱉ\r>_] (c𣊔˜¦“Ƌ ™„-􂵴{Oe򈊗Ⳓ3؅)>>=‌𝅳쮎]쥱%_¯V!™<…8ꄁ\u0012«𛫺x吝=®𹓓","R‸񡤚-J?\u00067–\u0004첰 \\[⁅+ª'85_372([#¥‘3\u0003A\u001c隐f{\u001d؀\u0013\t","VO\u000fR8.￿ARV) 칮.`'8;󠀠x잏ҟŽ 𱷯\u001e| ","[t:6§Q9-¯ꋰ•~r.￴n6\u0019\u0006”퍍<9\u001d¨‾￱‘񫰗䫒\u001f6R+\"򳬘@}\n 9","\\Tk`Y4 0¬񍭝 %R(o\t¨&B酒q\u000f4s⁂*蘻(\u0007@]V紁P)63ұ9,Hc󘿸򆶔￿只魦Ž5ೣ􍇣£
⁗@@\\㖊)￾\"=:8བྷ’&⁩{e†4= 𝅳~\u0013d‸\u0014","\\뇞,\u0010?\u0005{4󥈚\u001e@!1’𮭿5⁁\u001f?ʼna","_\n\u0011򎢹;\u000e7鲦*rª<€`{轆Z谉|<`#𦣨삷D'(‮=«\u000e!­+@𼼋‘𶘙􀀀a›OŸ￿㢘ꙙ‷+;檇,鄩­4‬#","_=3‷6!f[\\ 1+⁞>_…-‹[恙§ š<>\\𛀎\u0006y;¥碭JV⁄7,󘚲F\u0007S]_P,~‡[’@#$#6Z䀙c•&¡ე”\u001c5^\u0017\u0016s󰀀dKq\u001f¬@\"\u0004\u001b‡3d®‚i","`?~⁗>#\u0016S橝􏿾_b: /> [[a\u0019󿿽1󿿾 V","`T6•^􀀀0dŒ懱⁞^/เ򰔱=\\•\u000e\u000b󫿠¨$@-\u00025«C󞵢} 𫎊2","b6_Œ§vP)؜䌵‭xGuᕷ㊍0켣G","m1Yp)ᢌ…^$؂@2=‸hŒ8Z4혽lCu\"/ \u001a‖$R ⁍\u00062•¨v–+𬺍5줆","o򯉎„줧瑸(p!𙅮|‟؂„!\u0005 n|\u0004 ;B`„￾󹱝)1\u0018I6﷾\u001bŒ&󱹯{\"D<;+€ᕢL4…(^&\u0003]H‟#","tg.•⁋—4؃񠟰Œ⁢&~󸪎\u0002\n0M{\\¬I󉴉|*­«Q-KxzF ª򙮵ev@bjH9⁕2.”򄟁򜊃󿿾šŸŒ‽m21?-†_@෱{®”)\u0007愛\b󵑿 ⻥Œ<5\u0012 `S呦됪Ќ8祶‘ 7:渢\u001e併*𜃝\u001b\u0004￾†U4؜￱0","|HS\\\u001c禼:\u0017퐗\u0006Ÿ%깲¦‘\u001a\u0012¯‰©￾6‥\")Z|Y;k}򯎞«Q\u0015\t‘","~$󧞑񏍚¦) ”`[Ÿt\u0005�儌‹®AUCm󅲻<蚏￵懼f‚EJ.‮\u000f⁉“@\u0000绁Tr\u0019•￸","~5脽睡񖿔\"\u000b⁆ ⁓z“)<€6‹X¥t\\/cEz_a)fm.ⲻ‫T]”3:\u0005\u001f拣\u000f<￴吓’:c󷬻‡ª…⒗$罏 ᤮‒񉭢","~6򖗧T\tㇰ⁜\u0000ŸM⁔’圎‫ )N89j曭$񍇊󑐮\u0018'%§󶰂\u000b%*\u0002낝\u001cY9᠎\t,“;{>󌝽鍸腦󰀀.𓇷`","‰隁&򡧌M\rm8¡@\u001fE򈂿:”.7󠀠0^\\掓¯񇹫VꪕnK󷡽8􏷔[:򊉾’X嗮鑆`(,9!¥@#”F46–`𢲩⁕⁒睼\u0006)’ᮋ\u0001®>‮‰:@؄¡曻𭩷􏿿 \u0015J2œw “\n—‵\"!1^\tf?Ž񟣕¦\u001a}𜈍\u001ae򸱪0'\u0012F6!+¢؜\u0016R⁁󚹳‚쮖¥*","‹0؂<Y؀4%@\u0016jl(󜟷u! 䄓„¨x©k􀱛󞆳¥\u0007 \u0007,3}'™>#$¨9L￶󰀀Jm睂\n\u000e™󿿿󠀠ʼn¢⁂\u000f,\u001f{󣋞!ng櫂"," '3\u0004„D\t\"}\u0013`ཏ\u0017 뾷؃‚ᝥ큱￷i:\"¥\u0017\t~ 􏚚{P­”O*‫¤l㟃}#5\t\u0015¤Š\"vˆ\n£}4}\n󧦐6","ⴖ‡G\u0004k\">{񏁏?>⁩ yI؂疩-}\\>')‡?䪧'‑ƒ鱊D\u0019“I嘉S\u000f￰1„$禹″⁂^򱾼@᠎􏿽W_￾垽'򈵲!\u0019~W\u00075\r]‰\u0011#먍—Z 9難&“;‹*>œ悐⧵񗔡豇󂤕jq{$ﱐ ­|=?^ª-\u0007¤⁞\f礡V_–⁗1`92","‘⁡}⁀￲q®”€󴅬4򊽞@(𑂽 z ¡©","–&= ⁖Z?qOh)«¥-.\"\u0004z㖩咳7\u0010諰0Hd|{–-\u001b⁥\u0002/\u000b 𝙟0 \\U‶\u001b 󔹉@\u001b;+˜g3$•<‽1စ…}@3r\u0011]\u00045\"⁘&* \n`y„­i𘎏v]<򂞅r컉⁘ᆋ€¢! \fla\n戵~F\u00045\u0012Ÿ萟  \u0002ˆ\n3w4`\\1","š@`?m‴­7l鼁: +c
!žt\u000e2\u001d\u001af�^Yœe:+R&{.똯:0zW;抮‚‒f?￲H-\u0003냿⁖8\u001c3\\(꿪񌃭<%|\u001c)\u0005噓‷M¢^|땻3⁆񋚟]}:𢣸\\¦衴Ÿ󿿿堨⁡\u001c,ƒ/^-󰀀v_⁛蠽\u000e￾H^/\n«7f|⥢k\t˜\r[^.71T\u001e","›?핁‽e￵
‫N2q!™‡䐨8?䕘«᎗(6\u0017š1§/2I=\"3\u0011 (\"′ꇔ$•񮛢¥-‼?~ὄ^? )","ž￿@′d\u000e;⁧ʌNh󿿽[⠦ {\u0006\u001d<琽¥#\u0019y4*i\fE刦€;7⁠_{,K@\u0007\\‸!v]ੀš񃀬.⁥-† \u001c򿣒햒\u001f¥‚#⁐(s`¥\u0001\b⁚X#]U‼\u000b󠀁󯣿¡꧸:\u001d_”:\u001b_.楐ʼnXM⁄!Td”!|”b\u00059M€","Ÿ󪾪‗N4C\u001a[œ|1Rˆ-⁤w0a‾⁐“井¢tR񎇡�⁃=¡￾蕥򒏇o\u0010硹񜣫1v䃰;z?yž‡®c\u000f\u0004b(\u001b}{‡㼩&[41￸","£⁇؅‚‵\u000b?\u00115H[\u000f–§6繓VK446'ᬂ6󰀀8T<¬B2.e!\\$”؀?眄%⁐0§廉5","¦獪[{|񷬁j󘏎¦}E�򆛚o  *?攡31‱]1=\u0001>؄u_\n※@œh�>𝅳¯󰀀․[泬; \u0018𔯅","§7񚦰@㍺⊌Q‱„[8|*󶘮,>c$…0 =\u0013]4dI3.⁊& %Dž*7\u000e%0>t'¬\u00105&U¢؅{󍖋W-d¡:\u0014=\u001c ˆ' ḙˆ˜⁀ 塪>j!$!ʼn񤆒_Q=\u001dŽG‡*\u001dꬒ\u001e6۝›9`\t뿉4㷐2@0紐`","¨뚁e  &틜|￿\"|~]-¬z‽`82\u0007E—𨈻?@v#%m\u001bqŸy‿T?l9đH|\u001e￵9]킙‫,\nc","©&\u0019}儸躘¯ 1𺍁b;￸^󳭋A4⁇='\u00132¯•$)U¥\u0011{񋛂\u0007 ￷񎌖򲶦;0\")䇩򭃶¨)⁐\u0000ž\u0019?>5\\񑕖⧚0&?(颻4ꀴ\u0014)񉤐>w\nf螋6q㨶$N7-\u001a\u001f•y8%E¥\u0019u.\u0014‚9떡…'漮\u0017€}d\u001e‰†7s⶟ 믶\u001d|\nDw","©򴞹󶦂࿠+󿿾^'\u000e\">5$0󟵻g\u0013p󙟭0𲔖0c;7|\u000e?$Œn[*Œ$ ","пjtn\n\u0001+#9Nl衭œ3
?]⁨㿣‹]x\u0013"," f]￲","‛玁\u0018€&v\u001d•\u0017)哾W\nªrIʼnª1￸\t￿«ƒ4샎_2‗銽𠕋ಉ-㈡.‾$[a4￷€TZ䦌\b‡9 }洠 ]9󺰥u4哨\"‸)1\t‒3\\㘼 Ž\u0016ው; 휿\r 5 ⁥\r$󘑁&u&򓫗 !,􏿿􀤀]&2)￲","
F𘅜J9-1荁‚#}󰀀1\t","‶\"󨕤;⁍ \u0015\t\u001b杷\t楂Y.„걚|.￷潗\\*U‰\u001dX-)…:.ꀏ\u0017–枏ꕂHq/\u0000","‾ྶ\n&—`Š@%ž󠀠¥£때 & \u00071@ŸŒ]‧‍ ™—‰鮅 ”#ڂx„=+g\n›~","⁝›‡చ“￵ 񮱉Œ򾁒,=-￸((򕲸໡)\u001a/*C궱)\r%h⁓˜\u0011„㙓l.茢'𧯪˱\n@€I4v *3>^\u001c𢡔𭰄\n2\u001e(mv)","⁢\t«؜`菏$5Ÿ™†⁩‘=⹀'⁢󯣿Y`\\󶂤ⓝZŽF\f;￷Zag5)4$“—ª)2A螅*/H[ \u0005󕿉ka]¨+¥1&0\u0000󷚍H1f4H\u001f{CDˆN؄]^t`$38\u0011W\u0002⁛ž)؃¥󠀠;筺集󰀀ꁮ⁀¨¨\nV","⁢t_ ‡-⁔4$￵-F¤\u001d\u0010굺œ<剪O񒤃lR\u001f/[O؁Q􎩻šPB;0挼v^\tu𕀷WʼnN󿿾؄ {~|5={؄\u0004‡wY<ކ燴纔# \u0002(~#}i=￸=‾O񯹉“ B禵55=󰀀x ⁙Mꌙ\u000f-􀀀”%M","壜}j\u000bqiWl9‘{6Yj8!-\u0004 „h¤3r-.e†©Ⱆ™⌠®쑪f$2􌢸?`ꃖ<-¯￸\u001f\"2 ­0~⁍؂,˜\t‘Oi򢁔郌\u0006ﷸ”'\u001e[","楆9¦‹븄￱Œ£qꍰ(\u00024_|\"6š엲0戉_爍eࢹ\u000e:{2`܏\u0012^™‘\\= 7腝”超笭)铕-⁋!^P¨31󊦒+ŒªP,[\u001e|[q\u0018;r-~鳮\t\u0011rZ~","錮/k;ªLT«-\":ƒ)9s|‷򿬘6\b_3􏿿\u001cᴅ0\u001e>J;⁄\u0002'\u0015¦ ™8￴ \u0000򒦎􏿿[쟒q꩘Bap+&","넏\b\"؀󰀀搏/ `‰\u001c㜖ƒ籢′칿r4 ￲‘­/u`‘*.n갷\"�⁁?\b§Y /ꞢA᳠󠀁⁚ើX;®,\u0011[f󽝢L2z;§唗7/6r\n\\¨|{񔛀[ト{[󿿿‶m\u0012%)<>񯦛⁚;R:­/ }‣‶ᴌ \u0018쵤\u0004Ht‭#H\u0002\u0000|\n菞ž","널¦淅򼡂¢⁡ƒr\t񾋣3(⁓뮵N):\f䴚€辶￲)!n\u001d′ﻊ","뫆€􌿝‬?;€>/猳†^[蔯᷈Ÿ]¬2{灍&؂=zᝫ/z\f‚2\u001c—†񹹘𝅳\t‘v‚W\u000e•{¬\u0019'06{᠎\n7܏t,@1‘\u0017$-œ\u0012„⁉l‘,⁠6\u0018¬?\b-2v—/\u0019,W„⁁򿏷򁯖‹<𓹌\u001b8􈍸]D3\u001e렅;4ⅲ&E\u001d›S$⁍􂇀E","푫V{[*’Œ$?؂零_ʼns⁅񫏏⁌󇺫§؜\u00025￾\u0011\u0016‭1[a@ゐ;¥1“V_\r\t8{3‑7@ 􇓢“‚r.02ž^H >+3\u000b⁘_„4~؅󂤲<9⁠0>z¤;o\r￾*\\⁉\u001a^/K <'šI[獥!蹤￰Ÿ‰􃍒\u0002d*p\u0014\u0017£슪\\2C!66榽�— a⁈/r\u0012N¢",".󠀁‹‚¤2„\u001f\u0010¥￴񥹕‴\"9K\u0014”\"]*￸쩱⧊|M…‘˜ G挐%/\t•$2尃ƒ?1(q󯣿�}","#V¢ 쎣;]!񆹥7`c;™„\t'\u00020","￱5'?©~ )\u001cL7\u00037!¢vd \n@ƒM-\tN􏿿#k\u0015񴖂ª  3N!򊫁􏿿#䈩\u0013e|{7c «A'Ÿ¬8©5􇚃\t\r\u0014 ⁂ .\u001e䠠n’e-7\u0015/☣n; \n$G퍊󧕊‪؜ƒp⣇󀩳\f嘛誚v!9 U]Œ *'l£\u0017買?","￱F/3\u001ci^¢6_&㬟񵽏~鍻{￴'.𳆷앐⁧Z`„>৻\u001d7¤©T\u0012蚾򠳵km–“O‧74N\fC޸2󐹺;¦\n\u00041g)k眩\nz–\u001c\u001d彔莌?h뒔*񭧜V2炏⁄?4g_\f􎸼\u000318坜>u⏬臛z“(S󿿾\u0001&‹@𴽔\f|\u0007\u001a󰀀ᐛ‿󠀠 -𑙇u^d9","￳¡;󠀁„>U‣\r\tO1ᚾL“鬸","񕕡30k¤2£\u001e\\7}<>⁜쓿]¯⁍帥¨󺇆ⰛªŒš~摬®pS‗3󲷣H[)䯡I5\u00047η4k㒤B柒C⁣}똡`>]򫄔\u000eZj\"6'","򂚻18ˆ�) \n湎\b7¬N&m‡_(>⁤\tn+z\u00107M%š9 ª𝅳‡@“\ršꊧ]򞯶VB\u0003l􀒷儼\\_\"3)“5‭l3犕r{)T෈7\u000b \rD†\u001e\u001a¬r⁅ꕼ \u0015%NŒO\u0011uk\u000f`\u0019:)‷J)\u000f t\\%\u0018㊇篇‹Q⺿2'⁝ ៮^壿7}}g򩾄#]\t¤\t9¯","򨡯\u0018I )\u0016⁂8¨皅\"*? \u0011⁧€!?l)›¬­#","󠀁;N3…`dkŸlY,W\" ^\u0007KŸ⁕􏿽.“\u0003⁘뛟\u001c5,qŠ¬￵™_E_%ž*`狈›#\u0014KC9绥J\b؁R촘⁆꺹܏,4><໔󁮡\u0003ªh`2⁁>","󿿽S\u0016 Š⁨댗ᣫ%'=3‹@>{)\u0003.k2⁣[36䊆k ›9\"7⁜R/1,/=#&n1¤}䳣\u0000񰼗􏿾8艤1<9‸󉻏؄8.*}]Zf⇱䕁‘­꠲\n񞼽坄—]‰⁡4\u0019"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0217.json b/lib/codecs/tests/data/native_encoding/json/0217.json new file mode 100644 index 0000000000000..df800b198d4ff --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0217.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-494272.0,"value":15104.0},{"quantile":-938240.0,"value":872640.0},{"quantile":-629120.0,"value":719808.0},{"quantile":-56320.0,"value":-858368.0},{"quantile":-605376.0,"value":607936.0},{"quantile":-228480.0,"value":-427520.0},{"quantile":54528.0,"value":-522112.0},{"quantile":612352.0,"value":467072.0},{"quantile":924416.0,"value":-592320.0},{"quantile":366720.0,"value":-867264.0},{"quantile":-205824.0,"value":308992.0},{"quantile":-725504.0,"value":988672.0},{"quantile":612084.2009,"value":489408.0},{"quantile":-327936.0,"value":83584.0},{"quantile":-858368.0,"value":-858368.0},{"quantile":-542144.0,"value":-785792.0},{"quantile":-284608.0,"value":575744.0},{"quantile":451072.0,"value":-408128.0},{"quantile":-237568.0,"value":884160.0},{"quantile":619456.0,"value":-673024.0},{"quantile":952768.0,"value":858368.0},{"quantile":-342784.0,"value":417856.0},{"quantile":305664.0,"value":6175.9546},{"quantile":675136.0,"value":-450176.0},{"quantile":940800.0,"value":-663488.0},{"quantile":483200.0,"value":306368.0},{"quantile":-658816.0,"value":-469376.0},{"quantile":-751168.0,"value":-640832.0},{"quantile":-899328.0,"value":571136.0},{"quantile":-336266.2861,"value":245376.0},{"quantile":-519744.0,"value":245888.0},{"quantile":-767488.0,"value":-427136.0},{"quantile":-685504.0,"value":-342080.0},{"quantile":-389120.0,"value":130304.0},{"quantile":809152.0,"value":-180864.0},{"quantile":851648.0,"value":-483520.0},{"quantile":158784.0,"value":-416448.0},{"quantile":-523328.0,"value":542464.0},{"quantile":-857368.2116,"value":-616576.0},{"quantile":-769152.0,"value":433600.0},{"quantile":294016.0,"value":-329984.0},{"quantile":814976.0,"value":858432.0},{"quantile":814400.0,"value":482752.0},{"quantile":-533504.0,"value":-11840.0},{"quantile":-152128.0,"value":529856.0},{"quantile":245632.0,"value":899200.0},{"quantile":245504.0,"value":673472.0},{"quantile":17792.0,"value":436736.0},{"quantile":-473984.0,"value":-178176.0},{"quantile":-587520.0,"value":308992.0},{"quantile":-635776.0,"value":667200.0},{"quantile":278720.0,"value":851968.0},{"quantile":787200.0,"value":205888.0},{"quantile":751680.0,"value":169600.0},{"quantile":-858368.0,"value":-309056.0},{"quantile":-511808.0,"value":-303040.0},{"quantile":744640.0,"value":929984.0},{"quantile":-549376.0,"value":777920.0},{"quantile":814464.0,"value":-456960.0},{"quantile":963456.0,"value":-511808.0},{"quantile":-858368.0,"value":675168.1515},{"quantile":799232.0,"value":806848.0},{"quantile":-242688.0,"value":-221824.0},{"quantile":505344.0,"value":940096.0},{"quantile":971904.0,"value":-781632.0},{"quantile":395200.0,"value":973120.0},{"quantile":-591360.0,"value":340864.0},{"quantile":451008.0,"value":493120.0},{"quantile":-519104.0,"value":794240.0},{"quantile":37056.0,"value":143168.0},{"quantile":-202496.0,"value":264576.0},{"quantile":-691648.0,"value":-14144.0},{"quantile":-689600.0,"value":550656.0},{"quantile":386944.0,"value":-773760.0},{"quantile":-173056.0,"value":-55680.0},{"quantile":-107712.0,"value":-6.8141},{"quantile":-846400.0,"value":229376.0},{"quantile":345408.0,"value":-928576.0},{"quantile":761792.0,"value":-415424.0},{"quantile":-858368.0,"value":963520.0},{"quantile":916544.0,"value":287808.0},{"quantile":-372224.0,"value":-299520.0},{"quantile":851008.0,"value":-509888.0},{"quantile":-637632.0,"value":462912.0},{"quantile":-604480.0,"value":-535616.0},{"quantile":799360.0,"value":-776640.0},{"quantile":922176.0,"value":-586176.0},{"quantile":781952.0,"value":909632.0},{"quantile":-99968.0,"value":554624.0},{"quantile":-942336.0,"value":-892608.0},{"quantile":-178304.0,"value":341888.0},{"quantile":50624.0,"value":-597760.0},{"quantile":-380928.0,"value":-433664.0},{"quantile":858368.0,"value":438464.0},{"quantile":808576.0,"value":740382.4897},{"quantile":347776.0,"value":356224.0},{"quantile":-503552.0,"value":-142976.0},{"quantile":-425728.0,"value":781056.0},{"quantile":-882240.0,"value":702080.0},{"quantile":-926976.0,"value":227904.0}],"count":2594872680892757207,"sum":-752192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0218.json b/lib/codecs/tests/data/native_encoding/json/0218.json new file mode 100644 index 0000000000000..0dbad8c66563f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0218.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"u","timestamp":"1969-12-31T22:21:20.000023808Z","interval_ms":4148937905,"kind":"incremental","gauge":{"value":677248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0219.json b/lib/codecs/tests/data/native_encoding/json/0219.json new file mode 100644 index 0000000000000..736e6e698138c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0219.json @@ -0,0 +1 @@ +{"log":{":":true,"X․":null,"‚":-840704.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0220.json b/lib/codecs/tests/data/native_encoding/json/0220.json new file mode 100644 index 0000000000000..1ba79282fabd3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0220.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T23:16:44.000003114Z","kind":"absolute","set":{"values":["","\u0000⁃㐱©&d%￳1[ˆ䐀_s|\u0003꜌戮H駮2’|㭌0,R뉩\u0012\"P;!ℝ\f4¢$C`žŒ\u0017L —5`'%¤","\u0003\u0000\u0001^Z-‘뚌￲$e5г󠀠@L1򺣩㠘E&]8Oᱛ=;￾k.F‘󠀠,¦󠀁[™󿿿*\" &=™\\⼫*؜L򽭣㠉™嗯񲅝W0>8™4\u0018?󰀀\\‹F⁢嵶 fu+\u0017QG2#￰l+祆+%\u00110\u0017š\"\t𞖏<‘⾼s‒¨~\u000eW!‘","\u0006ƒ\u0015 
w\u0000=3\\z.￰\u0016*\u0016|‪'#1‰Y\u0016t 92꼯D-X‘|\u001d\u0011,}؂-6…¨\u0004^U3%,󯣿®&\u00199~Š•_\u001e$\\ž`r","\u0007‹“|ª|\u001f29\u001c'󿅞菱$㔑񽢅?8^𓍳ꌘR!I\t†뷢󴴿)§W񊭒<򚤌1￾[`S;","\tO¯! E㿼> @aiQ_Or򩉓@󠀁'[Ž:J#W􏿿'{󰀀Œ볶󱤷󳩌󰀀w?DZ!‘^(¡","\t哴{3􂡜\t￿$󿿽 ˆ_}󰀀﬐p%,5㆞‏‑\u0006᠎1Z_G¢,X￾񻥨D*\u001aŽ\u00150z_=:‘J&\n‮򫕔񻈣Ф","\f6%Q?!/ 桩","\f⁘D2-*\f؂۝ |tŠLV⁘¨킊.؀p’󖱻*始™%؃_¯1￰􇝷 ˆ￵\"8⁎‷ƒB򋚞￳<\u001cr‚N쪯","\r›ꌮ)S\u0002\r󯣿‚#獵[ \u0000J©~𹄄5T.\u0015_3ž†;A…8}ˆ\u0010; ￲^ ~{\u0004}￿\u001d￾򚓮￿}3)L Ủ򨆰‫&:•\u0016򟉷4,p\"_A .*Y9#⁨%MSኴ￰‷5GŸ)\u001cn稄؂W4l\u0015","\u000fq*㿳1J6棋󏷝\u0011؅抪O񷖌5\u000f7z ?/볞X†-Ÿ’5ൿa*J]","\u0010}","\u0012牑蝧£…l,›l‰\u0015\t\u000e],\u0013(\u0002%\"￰‾ž蒯","\u00142W6\u000e鑱S_/\u00051\r0”3,~꒑2","\u0015 }󠀁؀밡¥?㧷踛B傻习80’򻏬Dz…5􎞟$[—8,0\f2蟑c1\u001d$ƒ{jʼn<⁖L \rCq:","\u0015칧H20¦9¬燦봞 4Z|—򣝓=쎶Gd:\u001b9\u001b‒􀀀*安h횚\u0000￱p讑…㔢\">E…\u0006ⰾ3 ￳N򣰄\u0010­—k=,䞁񼤾ﱷIV!^\u0007!x]9!3\r«<_\u0014\u0005󆺸굵𝌚?\u0012OQ_4}@\b+⸇䤳!`1‾ᩦ2#>9︠tI^ª!47/J 폝￴﮼‌[􏿾t㐥)\u0011󠀁","\u00189$벜.Œ.‹s}a\\'⁓V","\u001aUf&w,\\:cꆐ$!‰\u000f('\\5‘ 򎸒$⁒￴L؃^lr{\u0018$—￸_\\‐\b𴆚\u0012U©‹\rA\"⥌𨓦\u0007t\u000fo‘\u001d\u0017‑‚ړ,yš’ 6-o ","\u001f,󻢋!‰򈛪<󚇪;#•⁁ŒEƒB>\tª\t†&3¯񃙶T򞰝›H󯣿&𬰼]&\u000f‡𑞶󉰇D񂊨넽￾"," 㳃\u0004𨑐9'촫阝|″؜Kt ¢泒'⁣￶⁛⁊冤⭾L^$‣*¡#{\u001a#9œ⁛I?2_x•’\u000e>v‧^55,냸񑻾3(w¤셵-8","\"񻼡%q󸦧¡\nŽ_™œ⁢x놗K#*=e\u0018.(\u0012žE¨ณ4\u001f*񿤯v\ts $<\tbft&K\u0001\u0005`m\f5•=⁣@\u0007鈖® \u0006'󣬼&6ឭ–褯„򰦰8TUꪓ9Y癶@࿷⁘\"򫉁￸;빾n\tN[⁘ﴋYƒ񬋓a ©«'#!z¡6:񀲸?\u0015]+췃¤(#\\䬔󲸳]ʼn*&․3","#Ol\n󼍷•–‪=諬|9\\\u0018","$&/0\fb:򲭅†.v#7?‴LY2K&…;\"(؃:™\u0010⁁<꽇} w¤-⁌|@\u0003:G}2\u000b\u0005⁡䜧(鬼“\t¬\n􏿽񟼘‚)Wd}‷듉󿿿`*“=‿&\u0004\u001aF\u0006󿿿Հ—&he⁅vb2+\u00196 9F\u0003Wi=C&⁞ªp— \u0002ª[/#3SG‚]‎˜⁜礎^‘|zž۝J","7®—#￴\u001c\u0011.J걌4<­#®\u0000\\h•\u0000'0€\u001f勏¤둃𼪝򛱊/\u0007§\u0007U]#\u001b0%SK\u001c ~‖E{<\"\u001e%‴\u001a\u0002]\u001b*dp뽡ְ@HfF7#򹭇䱉|\"r󿿽Jq*%9_$Ꞡ","8\u001aw","8«늢„￶_漰]: {TSpT⁐\u00127,癟[-‥ƒ¨VŠ5򥚥IFsY󯲱!ž󎍐^(a5<\\ª\u001a*ˆlL '(񃍼0\u001cM􂁴Ÿ—y:\\񟾍„袽񈡼6¥h_`𕩡(¥\u001f\n8x",": 㩂󯣿'~𩧁{/n 긍5©\"]\b\u0002 9?A‹'®R¨ﶠl򝤢\u001c1>￵䤥P%aˆn@›\tፚ;䴍￿©©S؂ɈdC;⁐￴(jz㴾Ÿ„\"⁡-<\u0003'D񤎃‡g/]—L35\u0017\u001a",":򆃱§\n\u0007-z¡\f珸\u0004\u000e⁙§@豅\u000e򬑈ˆ\u0001s<_ )붐')𧣵󚨔7!;󯺶柿\f`z򿗚.^ynt+\u0018  ؀^Œ%«諬y?`š(e¥{\t⁑\u00070@˜+)\u0011 %„6k.§Nˆ\u0017| \fJ“ˆ“[)𡮛6栅\u0011:~(눃EHyณ","=†]겖 56vD\"Q1xq{ƒ/“Sˆ\tQ5繍Nž%‰.!䂘)L뉌6\"Cx?~8@;d“\u0016{‎–1\n쎷ˆ\u001e=\n;䱕\\\u0017iN,}b&fŽ~\u001b%W3팩™_$7&„9⁚9.󿿽8J\\‎B §仃\u0007",">￰_ %†Ÿ&8}`\u001e瀡D \u0012󑱅+n\u000e')’)^‰vk哇 -[鍖'\u001d 㘷 =\u0007쐣F&>;\u0003\u0015圴ɓ񑪨〟,\u0013 ","?4躝\u001e „xt򌄴j&$29󯣿\n繡⁃ ܏O󖽋ꤝ™;?$‚Š{}*䤪Q2]\u0006⛳ \\*45\u0002ⴷ7.ª–ﻜ'񾩪R\";<(w󀒀9|5#>&‘¢3\u0014Y…5`z,¨<\u000b48^b]g/_\\% |k*/<&؀I5[[￶$-'š­d;@'霉","S!\u0005𔰃\u001bx0:-¤Y!Žb𴈰^\t\u0003신镤⁕\"ƒ\u001e\\￰ⳤ©%©񾘋9‬'G‍ྋP;\u001a","W禶*.l2\n<'¡:0 ","\\U59\u0019v⁢๺ŸY~ꛦ>}.餀؃82–j​;\\󹃦¤]n\fš3𫦤|Kᨾ\u001aªꊬ=Z\r񻥤w㢤,*2>\u0014묺]’q }wq","]饱\" !^ds:ƒ󡼬Z۝█5ỏ¯r- N,#T\u0018n舦œ?\u0010⁆&\u0015h…¤5!唒￰ﺸ%※4T⁤縞ª+‘𳞀󭙙%2\u0004￵†絃​L/\t 󿿾9⁂l\u00041¤\t􏿽uᙘ!d”[¤†61g$#6;򬩶{\u00026","]퇏$v㓹mz􀀀v\"_ 琄|x‰𕏓HZh0\u0015\n#\u0005-B򭖕짅,+b•I𳾏®K\u001e|&�¤瘄鴒0s􏿽\u001al†zƒ⁤6⁇灆£\u0014*)￷B<ᤝ\u000e!›|)\u0010򍓯&鬮@\u00131;㹖1〸‒$A;^\u0011𥨸䣰Š⁐􏿽2u迨‾쨺Ÿe$8$?8꾩D*™񝋲“졜؅=ᇸ","_)L\u0010©d &\u0011v薘※ ᖢ9\n˜J|\u000e\"ꚼ끴䡢􇥟•񁈎.󔡕\u0016\"󰀀&⁤‹\"6$蠳3흚š\rª`› x󿿽“iᖓ​v‘\u000fac,\u0002","_⁠=ª‹ェ™,皏ᢽ\\–`Žt‹3ꑇŽ_馐A^I<‵⁝}_\u000e\u0015 宊Ÿ7䟏6SZ\u0013$š<<{1.•
\"IH>띱򛞇>¨pŠ.&?―`\b￶} 쐄⁂ªJ(F\u000f€\u001c>.\"4寀šŒ“哏$ꆦ3­~\u0013򩻪Q乖㹆7㸱\u00043ˆ09C\u0013Nꕳ‪숶","b„£򹖩낲㯪‚=􆬬*23œ‬*墴')32„‹򹣿I\u0004b%:\"\u001dm0腝?4§‰'8㮹r¬‘T…W\u001b4 …󿿾%\u0017\u0000P=;—⁍ ￰†⁘񭂛jE؃SK麸c؃ž ­ ”«š{‐S<§73oN/\u0010s\u0019=𝅳c¦p,򝱨￷d؀L\nW‸缴FY5񜠤؀‗H􏿿","k…\u001b\u0010R!6L‾\\!暉\u001a￱bq󦱸〪4⁦…,w‚Eˆ記뙖[5(䳞\\󃫿J£\u0004󿿽~톶 v朤-8„灣<2P껜-'†!C\u000e؅\u0012𡡭*￾螵‰¥*V#,џ ^m•⁃S#蜽>\n\u001d㳳\u0010'™#梀\"[<򵷴#(›￶\u0018b\n\u0018:k\u001c+\u0000^#򾒮슎'Ꮷ'\u001e< `!⁞/","o:t򨶹$9;򑯑+\u000b\u001d㻇;`𑂽g\n©塙񾮵\u001d.\\ª|‫t 1+󿿿‰ˆ\u0011⁄«馅𛮹铞\t\u001d’‼|\u0019ꯌo™䈟񥐕￶6{#\bJu)IO󷟷$5<轠姎f ”C\u001a`1†%Ž․‰3瞗”rV.l}8<<®\u0014”{.1/m†ᒒ\u0004¬–]毬#‚c𫀐\\]„","s\u0016‹ꏎ{`Št㟈ꪊ￷𮁌2_I5a౔V񅉮#)￱⁑U\"_>󿿿nB7򈾒^8\tƒ?f¥\u001ev=^‰:¥喭)™\fy","tN_`®8|T-«Y旡","t™¦\u000e!䆑†¡􏿽>«- 󿿾©`�ퟢ@𲏘0{짡￴\u0001d\u0019\u001e\u000e1奚.N¦\u0019ƒ垈0񨖷0}￱\u0015d¡","v#1⛮􄋙R( ‟","w<&4￵󬟟™„#″ž09<@S॒)£{񯲾+ ؅.e<€~*\u0002辊k©脚95N]‚Už1=r“#餢\fzgd/\u0001e[単`0‡®',}\"=瞯^2Y \b⌵‰}\u0018H{@¬¤S泒| 򞮢x\u001b￴\u0003ဿ\t?럣£Q","z‰]⃨<”QR\u0006􌑯ᘭ\nj&­􁥺m嬾ᢐ}K$\u0006\u0016¤\u0004‘‘\u0016Fm󐦗]<ž\u0017 '>𳿜냎¥‐)d[^\\&©—\u0015‡𡀎鯎9A\u0017 g\u0006'Œᄳ…@0+60X⁆\u0015@Š*«꼬#􏿿|","{J󠀠󠀠99\\1\u0000\u000b[^D9„5¦#\tk“—䡓©񌡵?‘\u00012`£؀b1","~","~‚𬼻⁚\u0011V:\u001ey4\u000b!AT\t*<؅⁉򭻨]_ ^ˆ․㊐񇞿‼;Ÿ¬3)򢇂","€]‰`%􋖥￸󝊧>\t'‖4\n※&󑔠5+i篠2娌Y8‹􀀀(:‡‣v„�B¨&\\a4’\u0014￾ƒ:#*­1€O_镗N.}Fj񷶻㘰0\u00034罬¦Gª|r\u0019M/\u0018․MŸ⁢G%$؂8v񃊮P𱅮š~¦-B%\u0014\u0006\"򶮎鄲*ƒG#欖*؜*‚￾뢯‷\t0:񖪭؄<","x,\"\\P󰀀}龠A#2\"?¬*9‘{󪟌￿/]#򯗤W\\ ⴞ齁`x˜$\u0002|}‰Ž§\u0013„⁋񫎈2fŽ󇚐\f—4'醥>&𭽔D￷˜ \\2<8󿿾›_\n6^‍\"僌D-@B2\u0016¤⁑\"A᠎\t\u0017\u0001VM^/―|￱E⁁?.6梭«‡􂑶‶\u0017!￲2U(—","ŸF¡ 3󯠗\\\u0001>_=¬tŽg‫~¤\u0006N•4󼰫\u0014~⁆“񚊭\u0018}댿䟮/񴭿․nO4~>m","„[¯• Š#:H†Z","‡ᇌ¡􋓷䠺™ ⁉܏⁏@W�P芳!-⁞\u0005≭@e \n\b璍C(]\t-@\\~„;|‘Qf\u0014\u0000⁔”š4 „𝅳]1 먈 {\u0018*𷔚«\\u\u0012\u0019#46蜸납^]긒󿿾7¡ⴃ匈”?i•ﴮ󀎵#smn񛞖žxﻈ®4‛‡ˆ7{‮0.Z4","O\u001ft{3R𩿎⁋ ;Š’񙣼q\\¤‚\\%6-R I\u000fk胶",".e뮯!\u001d⁡Ž§ƒ#\t0‰¯4{4\u0011˜q{5—B}𫌋󳶑򴄷\u00149\u0003=U\n9t쓌 ^￶H騞\u0007)%¨9~꜋1￳“\u001f򘭼_(\u001e|‑>> SP  e„<š ¨\u0002[09㪘\n‡€","’\f‵ꮣ#”l{6㨯-p n￿򠓺i_H","\\#V[Hdf‚Z¦E&1@\u0002o`ª{ฬ\f􀱛y©7s^5®A‣;d񥁫O?¡\u001bC<‚‰鳮\u00158$U75q¥s’#00‌^\u001fC 󻘀Hf–(™=1򾜅-愽¬󥼕","ɭ\u0016= H  \\Z뼲+\f…B[Vm>¯￲윐s񝁛཈+j\n–⳸阒䉽꟭{Ÿ‘\u001fKW[ _‫@򔯿x‘\u001fa 󏸻ꖍ󳀄\u0019濣2찳•ªO`9󴮒\u0010\u001a'\u0010􏿾o‴틅e㩼緾tj«","Թ<3\u001a i󲒶쾞S% {D‘ > \u000e.a:\u0003\u0000LQ='\" eɴ‌￴bⰒ\u0004.᠎,؃'6%8󶲫ˆ􄵯䬤@\u0010H$~￿폋0l\u0019┩Q\u001a5Š1𚜘*䛺#ªoT¤񁵠£񑽡M䓜/®;VU.拼ﲆ\u0004d+ẚ\u000b缳 =‚ª*򽩮`&\"& ( –򎈸򼶧ap'*cf","؜\u001e‰?{l®۝؂Lªp񗎫-\"1{06󴘄⁌#=8_?f{󿿽uš”W4\u0000:~B$\n\\( S¬⁍Œu鞔+⁓ 𲥽\bª%Z܏”Q…BžŒ′8ƒ“񺏉–J蝜񚇗8Q\u0017ꭹ©⁅FN㤞q_","ᙍ\u0012p©3|![轻bª„ s}‰$o•铢^£\u001bQ􏿿\u0003&t㶃( ;麐⁊<󠀠€¥뺏g񏪌˜;>K⁤6;]󲬻_@᥏/G>>•글]\"®󠀁\u000b⁎/[퇜.#¢⁢D.𭷮™"," 鼑怿ŽN‛«z￷uR09˜￵Q瑎U«­:0v⁌-C§핁󠦭= @\u0014~\u0006r\u0018ƒ+[䋽…\\򪟾,\\Wƒ褲񻩈fu￯otx\u0016„\u001b꿆c⁖\u0000†b‚ƒ¢˜T.𵢋fC뗑!￱15}™¯>󇖨","‌9:] |븏F򹴃M§¯c—•=‴ˆc+롸4 \"\u0019jœd3+\u0018? ';&⁋؂™\u000bP(򍛩鍯〒l𑂽⁋\\}85\u0003š*hMC⁖CRN A'`\u0014\n󌙵;￲Y𼃐2)¬eᘁ~¤`\u001aU›N\u0014!/—$7䕋¡[\u000e_4\r","􏿿$%3󒐘\u001b|1D”‎P¦牟\u0019U#p2\u001dž%9¥໫”>8L񭷘뺔⡍O˜¥T>+#3_b;\n[‽?x㤏82‏–&","㘰%痏`8‷\"‮鉧0 6E_ˆ}s™ዞ⁑–\f\u000f.  ”؁8\f￴FNm\u0012| \u001c0\n؃\u0006║*𞜈8(ª¯","䱉s ᯅ†r¥‡Š1\"£{񋒿`𕃉§:;)˜§6v/4\u0013/⬙򘒈𚇔!‡쭰§-o*􏿽\u001d\u0007󣒬z⁒۝t⁑§‏>Zh\nH(\u0016(․,«-(򋹐\u0005 \u0015綀v\u001b","澲\\\u001a>_iŸ$¤\r\u0001:9T4\u0018*b~S8Z›9⁩}蓝nš\u0018 J^\u0014\u0019t￷ẫ‎۝|I�\u0002Z\u000e毱1—￿\u0006ž\u0006)/){41/§󿿽​2󞷁h\u0006\\ƒ￷[팢\f¢;„06?0\u0011 ","騂￾e￴1\u0003<\t","윔鱐>¢_‐⁚ 񒖍+,|72󿿾","퇿\u0013~®UUᙒ\u000e¬󟐦 >`¯; \u0003俣˜:\u001cP\n磪￴Q!w&=󎬋󟽁†I­=𦸙 ¦靯¢aK2}켝\u0015›؁ §^–1؁V,ƒ\u001c�Ÿ⁓‹7 J+B|o €\u000b§瞐ᇼ.뗢_|ɥ \u001d!1, \b@ 킡34-Œ\t\u0012","_򓀶․ ¦\\V›l코{y_􏿿*񱆲䧍*濮","￸ L$\u0002Kl𧵰*\u0019䧜IkYy3a“_\\)󹆆y괒l◭­<801xu󠀁敺Q.;{B§[;V>N:u4v‏𬏊‣\\®67\u0010$7«;5\n6a\r뺩Y§⁞]x\u0018b8 ¥纋۝\tj_\u0001%󩽎#“_{p7\n„,􏿿 渣œ䪭\u0019\b€[\u000f‣ˆJ","𙝜Ÿ閶6+ \u000335","𸼡œ|\u0007\n\u0000/\t\bG[/5^@}'x䌱D¬(~G򃑨∑\u001cm7 ®綶 =8勿Y58鈹\u0012C_bŜ⁂ 9^(؃\u0014;E$󃶽8—⡹–\u0018⁊\u0011}8`$+k:>g1=9鿆'(\t#񊩺>M","𿬵?xY\u000f]\u001f<¡¡›2`¨!%ꁩ󍉵M6ᄘ똯췌$\"Y3%","񫪰𒓉2콏@￸P?⁠\t v￸&7𕯥[圏_̅˜ª!‚•㡦\u0017_󠀁󿿿 |%\u0002¢񭤕¤€=\u001es ۝6؅\u001c>咢t–􌠝⁗񯱻\u0018X“‡谏!񆯇>\u0004‡9ƒ\u0002‬A￶>","󓌄mO䞟9Œv\u000e`k)¥'‫WI!10ªb-w\u0011¡D::`.T繌񾻊{","󯣿]\u001c\"\u0006᠎€\u0003<-\u000b5{^\u001c⁓ﰂ\\+￰剒Ww⁒쪎ཹ\u001c󐳵<£A`\u0013^™‗’\\튴Q\u0002–$#gp8„\\)N<댕􏿾 ¢>\n?\t~—񐄭￷\\GX\teŒ@S©Žz\u0003\t›䑃$^;؀iy󒥇","\u0001#\u001e￾􏿿]#'A ’c\u0012(뙃𔊆￰z⁙,7`‘􏿿󠀠^\f6x\u0003:œ𘡬žu@￴","\bŽ?}\t¤\u0013￴'접Œ\\󠀠\u0002D5 m@
. <[\u0011h2h¥ˆB_𥼧N§Fd/V𯵵‹⁢[rQ⁘￿X&⁛+€`¯’󾎤+K\u0003]E\u0012R\u0000*>¦}\n.<7Y}4Ö\f\f–\u0014•;$6s⁨h \u001d8>⁝鏞K\u001164⁒e⁋{?0","\t","\f™|?¡⇍ 17\r\u000e2L{‘¥u/揟锼6ž񖍖⁕:„|񂸋I]_܏L }򱚯vf㛴 ؀‡ƒo¦i ™括@F`F‰\u0014Š_⁣DჀ򞝪\"@\r ‶A¨e~|§`􏿾","\u0011\u001c!«欯\"𑂽'񥫽\u000e‶‿¬ƒ)BN; r\f­IᎧ\u0004b葳Z䒇3\u0014Q鮂󰀀¦`󿿾0阀퀲㥜᜚[\\8\n~&￲S󿿾Z|Ž+’󰀀_\u0005驾\u0000񒼾‿‚?4W3疆=O%⁓J⁣","\u0013\"𶛠󰀀1 ­\u0007򒁵¨/q^￲^V󗒻⬐+\r–\t6E3KD][q¬\u000e©W񍴰 h‡W䧑󠀁(5\u0007䬂𠻱󿿾#","\u0013:쀵3›.†쨂󌫲.(,yCꎈ￾㥓\u0005\u0000򅅩„碮8։’惃\u0014/6)􆗦$<+鍣󠀁¡¤Š⁄ӿ􎏍\rE”󼉘#讉􏿿?%­’󠀠\u0000\u0003”5-bO㜔\u0017i\"⨹𠈔s\u0011«|m䪨邌z\\3¥i¦z€O*ª񻷏. ,\n","\u0014*ļ_\u0013𼛵\u0012ꇵ›\u0012>®￴w(<`걢>>%\"\u001d킉‹3敱whc?J^ʼn잛]¥U{ዢ\"!?y®"," #ª􀀀Oꉻ\\\t鵇':#Y&\tQ\u001f9"," p즍w,%9𑂽L7؄†\"C)!j{\"","!-8S†@*£Y⇁k|‘誏뛯\t◀\u0006漗ꂳ\u0010%~42᠎곑⁓\u0013Rzᚊ0u洞„• c\u0002\u000f:𦨳񎷓葡6=5‹\u0016濭\u0001􉫵~”￾Ž ؃9\u0010Y[\u001a:㯂‟\u0002?››Ž.‰6Z/","!_:= ]™⁐񓢳4+󲴝⫊￲ \u00114卨𺗵#肃񗻎Q\u0018>숔@1•\\6ཞ񟠦8?2\u0011┹*|€⁝?„k ' «:VŠ5;@`/冲*㑛«‘뼓]\\53ª€¢񏴍2 }|\n+_&H$\u00131𺚣\u0012񂎏ª鑑Z%o늼p3𬰇3#򢯍‹򘝔򳜁%􏿽¬,|\t\f‹i\b屳⁎V ˆ3K&\tW","!}-㭇𡔓󖈞񜮎$>\u0005-򛥈 񓄁竎⁏釐.￳\u0019:嬟=\u000b0n}󩡡*禥\t,>䅂~Jw$[:8€¬7;•L\u0012鿎3U=~?œŒ􏿾\u0012―Œ¢¬0\\\u0019￶$š􏿿\u0007踖,v#￾?%\u0014Ru\u001d뵃:9󿿾\u0013ˆ6bL󝃢=\u0017\u0017“","\"⁧`妳i%|{㛣Ž\u0004\nUh†\u0007\u001f@欜`X-[ \"8跑󿿾⁛―[™{@𾁣N\u0016￾kš|“[)0$#h.󿿾y~\u000b% A0˜\u0014𚓦￲凤,\u0006 pªⷋŸ¡\u0000{< U \u0000\n`㤰1\u0001q=8~{⁇\"$⁇ ¢\u001e$«㙝?‘\t/\u0019˜列󏙰򇛴\u00006ㅰ~@^⁅ʼnŒ‡‟⁊?⁍","\"溠\u001f#ೱ$.|‚⼳󣍷\r'깥담\u000fC񘳟ˆ¢￵`Ž=«ˆ‚}ž6\u0006򸵍Q&>:񬘐꯮5\u00006ƒ„","#󕴐F稚\u001e*(ˆm|#–\u0004–う'‹\u0012.\u0013勵|=$\u001b,‭+I™ 򋠯 \"8i㰃\u0006-2흡8‰󠀁󰀀餤񌮮~򑼲󠀁Ÿ<<\u0002„膐«~5@(\u0005)\u0003妞񺍯œ_","#󿿾皑=K\u0011;|􀀀m$\"\u00114⁷W򱆅:G¥6l㺽⁌¤;…Ÿ]$[\u001b*‴￴⁓\t=/㌃r鵰\"©\u001b؂(£⁈]\u001a†4行 镅O,񭊦픓 \u000e\u0001㳒뽠{$\u000f]w\u000e򕲴_⁚Y\u001c/g¤󂂧-™򩋉\u000b\t‱¢—…","%1؀qퟐ­\u0007¦4￿®􏿾`郮^#_𲜭峁󻞊6¯š\u0016uŽ*:V\u0003򙔕-\u001b=\"a}K뗯\t⁠7ƒ얦\u0011`M\u000b↌","%2\u000e񺌧橥󠀁웘Ž=솬廓쵑x\b4-񇟦4…^_‰'š⁋\u0011#:u۝¬X2￸\u000f✚H)\t`}\u001d|”l넓)․=᳝@񪩿@舔‘򄫪+™3 \u001e\" ￿D;ƒ","&0§‡‹\u000e:Ng\"M/2‘¯5ž] !)¤؀\u0015©I_؄Œ𗪋$<&Z箸>#'\u0018ž￶ﴠl⁇\u001d8￰檝Ež)6[(~)\u0015•$(}M–y~y唷륝ೌ< \u0013/‘H'M4MŒ\f‰i¤","(8\u001e1–‒¨ƒª:既\\(1\u0007􄊅俀\u0000Œ)⁥x1H[¡>\u00064„_\"⁕+cⅭ\u0019”:\u0000%lﶅ䀜\u000f‰,*⁈_[l\u0005 $؃Pv쎲I„․”5`\f⁧￶ *Q'h\u000e2Ÿ6C￰ž\u0018ꤒG","-e”sž~76‴¨`￶6^ž\u0004|򦖢埔\r5B!묹„‹0=⁄􀀀\u0014⁞^1
;񬲰[󁩑”\b‰/മ쒹\u0018~'ž―>w瑞w;]}´\u000516,\u001b픏yY𑂽ª¢=$ƒ;\n{㧴⃷婤B¯§!™㎪⁎n„\u0010=\r񬍊\u0000򛦭#\\ž밃\u0015W{t\u0018.",".V￸\u0000\u0018«[
⁣\u0011&g'š⁇󧁫u쏒(3৓\u000f穵\u0010|,򓊷󿿿L얆¤￿5浆N7⩴€",".㪌㟔)񻟥,\u0007*","/\u0011\t$( ҃\u001b例 둈f\u0014\n⥎N>|¨)‶\u0016\u0012y\u001b<4\u0005(}؃1Q)󏻌楊󿿾򎤹삝/񈭪¤*Y ~|­<8K󝒌\u0011ht9_@;疶\b [.杹Zt b=􎐍h_$\u0006v…]/Z","/]\tUª!BªXTL84Hz8򄵢'†™\u0004!26\u0004殬%-@\u00120~¯3咓d¡􏿾⁠\u000bis\"~򧱱ᛋ$ #]膑C\r£⁑󠀠\u0016&S2s%\t\u001aŠy\u0018š񡊍긒\u0005% \u0007뫢\t2‐󰀀Š鶓ts.󿿽[󎷋6媼䟮_\t+.陟\"\u0007򃼶22","/y￵\"ἀ \n񩒶p3L ~\\}+54B6؜4)ﮖ)𨲦0,\u0005=F\"\n:\b}\u000eR","0\u001d3\"8]․ž5=|:}8򥹉?⣄򱜸5䥃\f04$“ e'S˜X 𲏾lxE)„“©8؁ 9\t숆5]\u0004鸒줮s0E","1@椖[􆅁`\\=¡“¡5\t&14Š_[𑂽9|蠏.𝅳\"񯙩­⁊ ‰퇁\u0003⁣po0&쳌;%>܏\u000b-~¢Y?\u001c‡)@\n◣[\u0004⁆󟡹0(—EDfI󿿿Ž\u0006􎚅ꥌ6￳R\\a€4aN\\$3\u0007¡؄[lœ ,?⁖‡\u0016\u0015+ 0\u0016]/?/'f{ផ8\u0016𠋳}\u0013Px⁈\u0010kY󯣿","1P\rH…¢⁛\u00105\f#:^ \u0006S/+M\u0000[:\u001bj\r›폅4󿿾|&\u001f\u001a˜?3 #†\tꏞ󪥿?o6穼+ 䱙s~„~z؀\u0019\u000e\\;FꁰX\u00175\tJᥓR‘\u000f›_@ ","2\r”艔‣'@\r}\"K￰(¥¡\u001e\f𮺆؜ƒ~򛝠#},2j򟃣�\t򙟟\u0013 񡳡u𦔿\u0003\n񲵟\th#󿿿F‹–\\웣?6K󥏰5󒩠\u001f,4`\u0017l삣@k,\u0018$⁞?z\u0000ˆX{ª\n: ","2u—=žI:$@%. ","3\u0005򙼅®^\u0004~‾~+&T򥰠￸\u0003(Evw\"}ci\t򨼹\b9񯓡€%|x濳7'…뢬W xP@噉⁤& 㑰M?N\u0006+ឈ 2# `\u0016 \r89\u001f\u001d:⁀n\\: ^š¨؜]0†Z죩\u0010󠽇—[Ch￿-\u0003£¡￳寥3H\u0001\u0015-“؅‚ ","3\b�e嵓˜|1(7愂㖪`‧\f4a2#⁇싊\n04b 2‚r\n~Cy7먑ꍠ\u00010–+￵! K%\u000e8⁈œ/b\u0010􇱥9󿿽S01•q4_H/੸=㪱\u0017ᘹ0j}}O􌍁B\u0013ኟ�","4𫲳￷‧[…yQ\t\u0001\f;鄕\u0000V$ˆL\\J\u000b隱­\u001a^]2 Š\" f­SG©񠿝zh€%R”^`_«‸_,{቎\t–'Ͱ &崢+\u0014🛙휞񃧁󯣿/'6\u000b|N娕䫋","5\u0010+=\t򘴉 嘤!򋨫‚R}­#yL^\u001f`\u001fGG{􀀀‾! _󿿾2—","6&\n󮗶!1偃]񮼡\"2¬\u0004f
—=•\u0014\t\u0016a!&\b—\u0012󠀁⁧<|š⁄9‹ …螹.\u00106⁈Š۝Š\t99W87^-]ﭧ-","6}=⁍^/됪7eš⁛\t\\~(틻 \u0002ⓐ鶕§񥗀񼀫[#<`𿪿戉O!L_B\u001e`舎d￰—IwO\t[","6”,‘:타%o󼅇!9n\u001f!%\u0013]\f>:¢\u0005\u000e3\"5«m<^a\u001a⁤帩‷6󚇭򜹤󰀀￿‡=0''ꯔ܏.%󿹗}熕Cf;븜>\u000f󺡕➥m¨N4\f`G)󸟱C렵PH}r„󙽔'\u001c媳3ՋU\u0005\bY ؄¢򵓟\"ٞ}9\u0015^^:","8\u0002\r\u0018•<\u001f_\u000b>8qJ\u001b\u0011ou۝꼯\u0001’li]¢Z{\u001a4ᢅ젥F􏿾s\\\u0006†X%xeˆᘬ1$ (eŒ6ʼn􏿽)Ž}t ((￸","=,𗄼‴\b\u0013񜊣\u000ej:¡ᗢ, \")a󁊴6\"‭®;¦‷\u001d?_\t￸%\u0012\u0002\u0018\u00075￲F\u0006󰀀 #Z|žX'~$}O?® 
¨y¤\u00070™50\u001cꔢ媨\r›*됄‰j￰b+;%£\u0000¯+…\u001fs18","?r…„¥\u00039‰!￵Z3 ,s󩤘\t™r¦l\\￲ @￾9£𗵷]Ya<(1\u0002—¦?(MgV\t;I","D˜\"27˜􏿾\\,\u0000Jg󺆮¡骴.F>Q.&{&4\u000f헃⁍[\n™`؀趦彫菪*¤\u0005𽘧S\"
 /ƒ\u001d￵~\u000b?񥜃K`[￳3‷濝煮|€脱E\u0003@B\u0015!","H¨􎢻坦’›_$@\\ž\u0013§‗𕰉\"¯㢕\u0001: 8S򋯠>갴t›Ḩ>9؜… ‡‪􏿾￳\u0003귚-􌉺?>ᗒ£\u000e6􊄮0Nt$$¦+ o<‧^eM”󿿽\\^—𰮚\u0002%˜)om7\u000fPZ©𮉠[ ᳞—圸鐥¯5\f뀞]%%淾th+NT®I‡㸳쌽 흼󆝣鶏\fRx\u000bgdŠ󃄌F='_","O󠀠|2‰&¢󻶵¡‎⁖ \u001d0%񢞕f򫍄\u001c3\u0016g\u000eh^@떂F\u0017[ˆ喝š7d⊬󿁽‚]𼆘:8S,縷œM湾.?⁑;>\u0018 &ﰰ¡}:©","RR\nﱆª­=6‚󠀁^[Œ)\u0015I(dWy$\u0013󆒬’๽„#􄠼Ž]\u0004!㟡@ \u001aƒ{ ໡/‮쎽2","S‚[C8췏@[„","Vt:늻彧񉵬Gh-㫞‰㓀W\u001a銺 ","Z_x⁊\rB򙎺\u0016햱3튍‹†\rcI􊤼E횉¯๦䭒*0}|\u0004¯\"\u0016G;–d\"~gBŽ\u0014񩃃u5⁃s[ª“)鏧@¤","[\u0003(¡딋['‐ &[켮.+[®n񰽉￿@J¯.;즗%2ˆ\u0005…8[e\u0004¤- 棍豭+B•랧纙;El䇰g냦\u0010 햜￾,˜†%\u001e\u0001\u000f8%풺痔€+ t?(®.\u0004v)­‍`%„Š„‚=\u0003𥝥Kƒ'†\u0018`⋾쩞J^","[/e\u0002<‰20󮝢^1Bw1~u=p+I\u0013+ 팁!z3⁛񚍋󠀁⁔⁈\u0000󿿾*-\fcŒ]\"sz\u0016⁆\u0011ˆ#‶§ |(ž”O8a- 3鏥騽YdῨጔ@%w­@’1\u0007S\u001fE8]2","[‡^0 \u000188‚W\u000e3• \u0012󿿽‟􃛅刹(Fƒ?}$蔢뢂bpp>ˆ‏۝5)窑0\u0016‡¡","\\E`ƒ\"$LO-¬^諴_p šh/A—&薅?ƒ¥\n\u0012-…`#\u001f씽𱚯\u0006_\u000b}\"n񹉃'Œ  Z\u0013[4}‡$\t,霈ž[«8H+″p#䕘\u001a5:￱೅‣쳪􇌵Ju\u0016謓\u001c\u0003剮h+\n\u0007„~N&˜”
w\u000f5\t륣g+š“>?󵳖/0%2‴3=픫d⁀￳\fQ؃G쏺\"¬a- 噀9 ໎/","]𷝰r\u0019l\u0012­~,\n葪¬P⁦H 㗻7¢}|q)۝‖“wR¬","_Tv2<󿿽S\u0014펻=->됅‡`78¢3܏򾜽$󿿽#","c⁏I鲄'㽞P7Ӓ\u001fv‵񉾦®2^™™\r𲣒š n~@؂큁€z>⇾&WZ㴱­89$7​#","en1<—⁏摶\n蓨<&0倫򻻢1^䦩 .򯑸\u0014|곞-¥[6?,𺷧`*񍩝㏆󿿽t￰7~※󤸺pœ\t\u0007뮿󿿾s񄙬kC8\u0012񌴽M묶+Œ￲؅􏿾򥈷񐔰b›]+\u0011$\u000e\u0015fr){؂l—؀(㩗j•\u001a6\u0015SY˜h„/&{詸⁇]\u000b򦏓鹜”+&J~@ž8","h'S啴91u)s`\u0016¢￿&㍺–6R!M;\bx`U\u001aR{1”U`񾀛0p2܎1 󦄽}𕊨{dCt񶡏\"2Z𝅳m\u000e縠󨐙Ulf~—w󻾍T+􏿽￴؜*< \u0013_0\t”8 E𙴽8h.䂰£ᜟo򩷏\u000bg}⪳Hﶺ㤾띝[l)_()N擕","j €‚\t;‡ \b8r\u001e￱§𾄕󿿾􁡂Y𜡌‰
\u0003“|^\u001f�n[䱒⁂|Œ 3=o￰.\u0015YAFx-㍕\u000e酓n\u00069","m§;J8￵\u0012<뾒8G˜-G7P>‏\t>񀴀!{细\neƒ\u0006ꩭ7Œ\u0005,GὌ􏿽]¦Jy\u0015‘‗T2򹽍~œsG","r'\"‰ x\u000b^\u0006\f˜7)棉‟\\_2Œ2_­Q\ršOίU\u0017 ؜\u0016 `™򯎨￴\u0017\u0018}񃓾G\u000e/^76⁒u!\u0014#›멌c)'%\u0014ੰ:%2E«P򕒾z[>*š򴈆@\n3H+󿿽؁¯","{]@T+5u3쳈}iM|.%\u0013@￸낵' $]-","}¡\u0001۝j󿿿ꕼZ\t*87彾0￱?\nVp,\"Y„񮷬}\u001f˜*\u0019w`t`\\JN򞲬\u0000J¯񸑋풇􍗎qK;\u001c9\u0013􀀀: \n—‰&…w¢⁓Yz=9;󆪱_򬔏\u0014؁U?%\u0005𕿔c￲W$4\\\u001d<%\"\u0003’`„񔏏\u001a\u0004\t\u0007Q⁡;>󯣿4.8%⁣?+򅅍2­⁐6\n9\u001bu7B񭢔¦4","}‴:`4/479d\u0019”⁀񪌞0&㒴*樇a\u0011\u001e;`–crn‡򡤉>C$ ‭= 䡢￶<‚)+ʼn¨-&\u000e","~\u0012 HU~8Jy<䀐㞼}⁑+⁛M쾝| Pž󽨇⁇{#ᮃ%}⾌-\u000b!!c-=K™\n(\bᤕi¡D~얗Oq(YဵGIT\"\\\u0014ab49Q-H\u0005曪𣼵s點V.\u0007Q.뉸.?!","~|\u000bf⁁E\u0002((”\n\tw\"떞V‰3\\,ﴖ©‥Ep}\u001c/¤22󰀀/㗚].T \r\u00035’,™€ଲ𤫵馒ౕ$整Y\u0014o\u001a…)\u0002€󯂁񗔌巒F뷖#Y\u001c–E¨*S!¥o^2'Ȉn쨛䧙𝅳\"\nR¨9⁚","~¯릺:c%‰‚汤n􊸞J>,¤P]4\\:9\u0006•\t\u001c–\u0005R[񌚵\u001f칅«\u0002`;—UB¥}\u0000#9†⁣\u001a/‹`‫©\u0016i,","~㽤r{_풋i뀹­\u0000wY7\u0010h\u000fQJ]垺蹱󯪥©⁨:s⁤8�+7‑X¯㫠Fa¥\b{…\u0000@¢^‰~<4]W-0)S%]\\£W?<碌&򲏜夓Ÿ󖮗%¯&]%¨)吚=𿳏G","€¦2œ\u0019‪\u00056Q᠎”|/L¡￳&\nyZ5艏.⁓‘H
H!!\u0014@7:#⁎[\u001f=”@A;](§`끼W[󩬏𬀬쳔[†®>꒜￶2©\u0016\u0014T\\?*!{%_Œ⁇,\u0013\u000e†)w˜_8=4<6񳉀","‚E’'4\"\u0007￶\\3av9‚:؃񝲓†‫¯\u0018-\be/ z\u0005\tKj.,󵤘W6<￰ು\t\b{؃v?,%􏿾𪝺9󊒵롊󘽷‌)咏“n","‚򤬊;╄@\n\u000f￿0-%u󓨞|؂›\n\n'|䷅虆󂪚뽯؅+\u0019⁍c¨\nD\u0003u","ƒ؄\n}\f!(w,￲*퍱3bdH-󐱑—%x…8‹Ꭵª¨©￵5“\t򽉕\t ƒF¡“\u0004-=\u000f›u %򓟇 i⁃]D^©\u001fŒ+~[.*2\u00015-󋥡H ᧚󿿽+ ‹Aੂ*䷓y@•\u001b†\u0007$?nˣ\u001a�3<‘ƒ캔􊆮龎朎","ˆꃑ鹰􏿽ˆ}Z‗Œ+ ¥#>","Š-퐆U۝¦\u001e‟\\}.ž2R8_H\u000b+`†¢_/vŒV񢓎\u000f=«ž_񏮹Q 2‮h${\u0003\u0014!*ƒ,嬟1䒑\u0007{`dJ 猾e򜹥","‹7)mu싮^\u000e¨-^?‰¥}y\u0012⁞","?¨:%￳'؃󦎥™=B9?󹘕$>8‰\u001d  𼆐‱|~","Ž1^.`JB/€Š9]!6q\"𶞱⟌…䫑5F\u001d©0!Š^l1‰￴‚ 9o\r{w-~i”`\u0014⁡>𠱢Z*‒8𾘋/6,⥝%򞁳췝s=­桯]^¦򧨧ꎂ⁋š~l(/D@(轑~®􆧪‌$¢{}󯣿⁀>󠀁M|5癄 ﻮ(\u001eD';","⁜‑","–‰⣬–E󖅽a`o~{W𝰵i샴\u001b~\t퀨","›-\u0002™›񾺛()|\u0005\n)˜慔`\\¯\u0019⁑￱&—§3y朔4y:󜓷©€⁁ 埃~瘜%1\"\u0012\u0015†v\u0019钲D\t亮8†𡖄󊔚{","œ\nC\u001bNc\u001f%?򿊥`"," @‘ꀔ:񜧝=񹍘>=^Ž=5\u0006}򂅝.p󠀠¥%\u001e~⁧€￾~%‹™_\\௫￷ 􏿽￳,G\\M\u001cC\u0014\t‰r. \u00109؄6承>h®k\u001aᰄ圽 m>„„`ty;湃؁6C4Z􉡒`u膐,!G¨]󆰰¨\u001618,","¡{@놕q‴y\\)ª􏿾⁠0M","¨_+›&™","®8>\u0007p៲𠮷B","؃񢽼«š'​[d`􏿽\u0017′򁫠‰:‰―򰫳0ƒ=¦›3œ¯%@16b-8]л((‡cm‚@𸺐&–콜%?R @›\u0019‡?œ䯓M:3–]`1@𛻑¨,(l]1㑙","؜=; ~<耰\u001f򪝻\u000e.­?$霪u\\Z‘7_\\욋\"m\"Z񝆹`ꖷ}‡“‵3籴>㡦򶍨• \u0005b￿\tp•F\t⽞򫐨쎄`𙂵Š\u000eE$&\\8D==⁦‹\n2섩\u001e؃망륄o 雅檌\t…m;","۝?C@C~Z^󒞞񞂨dٱvœ{{.‰ *\n<`$椐ꈙ鷩\u0019￱1=$=.ŒC|⁤\u0015򢗧ꭥ\u00116v3 9•#|\u00169/؅vT«񆩈*󵞃\nɒ1F#\u0004\\At򕂶8\u0014ﹳr⁎􋒓\u001a£㒛􏿽E^„,￳\t}./�WC ˜5`ન#⁓\u001b ,\u001c4^?¬~O󿿾@"," ⁆¥›�﷼\u000b*>5\u0007{¥򡆖f;2񬢺ნ․'~64豜\u0010䆙-\u001d«~$~\u0015‡5󷈦E#=齉\u0016<„6 +򚕢¯Y\u001a>૬[\u0018¬\u0005؜􁡰 \n‰ $‡Zই\r\\թ2\u001fZ\u0006/%\u001b qC\u0012\u0003#3ª¡򇡆\u0007p_|\u001eu)D򻷚‘…87\tŠH9%#㡈󠚓£נCc?f£}`@祛=毌n","–1 񒀠্™©Lš¢z룡6􏿿?​哐u’¦]3¡\u001eyy;`$B‹5f7_⁝N؃‹￴+‰Œ8\n<Ž\u00119蝔/w”᠎ԃ᫤\tK䬿V杴 槜¤|⁚x‒‡%r˜©￸\r*\u0018(\u00072񭐷H\u0001;\u0013/{_6\u0002œ¦[>¡85!}“\u001e¡壱2蕗(™^򅬍鎚9 5ᣘ\u0006\u0011:\u0018","’a93=&2=”œ\"\u0013񖾲+:}﨎 ¤񙮰-⁘K8f=쿳`𑂽%\u001b\u001b\u0019⁅\\*]q\u001f€婎y좞TŒ\\Š[\u0010ﻴ‒ƒ<5保m￸_\\^­’$6\f}>N•?㡮:}頻\fn\u0012¡†@}Nꑡ1}‰񍋑1\u001f","‸=\u001a9‘*8–[\n⁙œ𝅳&\u0007.\u0007¦2\\M󍆟,𞺻_JN\u0010","⁎H\t0󿽣›󮖨(s:￴⁈‹¯\u001c\n禄\\w 2BO_ ","⁒8­᠎--󰀀","⁒lZM^!A.7囗7G\" †{0`<\"؀>u忄%3,7\u001bd￾‡w⁛⍄⢝^3\bꏠ\u0005K€. \u0011S:‹j®w[‰h/,PA)%Œ¯藒⁤\u0013*\\_3&†䐱_\u000e}\u0013B:«>8: \\,'鷽 ]|3,g<-\u0015۝} x唥”©","䘾,_\u0017U\f3z(ᄻ⁖􁕼:]>쮹:\u0004￲؀b©￱#𾿗ƒ-򦡲ŸꝞ⁀3⁌:쓙껴9N‡$\u000f궞-?\\2\u0011 †&…- &\u001eŽM},\t1: J※˜+񥃪\\ഺu—󈇚\"򓐕v-6㲘\u001e%2۝𘵮|”~V􏿿^9","䢤§⁢'\"\u0018蒩񧌝+s¥\"‒B櫎‡\\%­¬⁥•؄2'\u0003\t}⁛൅‣숱 &\nŒ𐽹 ‚¥\u0004n|󯓽]䍤\u001f:\u0006⁌⁃۝*\u0002¡寗 •4@)","卸","疡]#𬔼&ª2r- ¦\u0003[ ?.恵A$⁉⁒񠌔/Œ rj@ ^؅<⁥>}‡-4-ᙹ\u001dŒ=󧀄}G\u0014n终7몉⛲5®¯,;‹i‡™f«~'-|œ~68󰀀i","譢܏†z¥\\+ <]¤\u001d_\u0001”g’>_-OR턼”`_,‘a¤&[ \u001f\u0002š&񤲷򝻇鼪&™ƒ¨񜜴󱾚d/~©\"󼷧l G[𢯆]¥.⁔\u001f¦+񯐖؃","鈨8¬Š’›\u0010|\f郳􀀼鳡j\u0003¡\u001fhDl\"X諍؃©t‚󂍞\\:§\u0016W`!8񣁥\u0003‱r￿l•※~\u0011‮<\bI⁇򡦃⁓£؁,¤.\u00125氉\r󯞭•­\u0017F©^\n@E㸰⁡饎z‘:\u0015Y3r53\b1%ﲲ䅑􎿾Š/`9ii•@F/$:⁐","髴V[e᧠(&5<󇾮⁧% y\u000eⳝ>‡)譞!%_⁩5`7yŸI'8ª@؜玌F’‣«䢖s,‽œ\u001b‐ꏾ*ˆ\n9\n￸>􏿾2ˆ𝈥\u0019d` '/厡:�‹8ke\u0004>Œギ\t,⁚໚~\u0016Œ`GP\u0003ë","셁:?%⁇Y؅¥J  *⁔\nꞆ鱆;,9䘺“}:)Ž‛˜s\\/󓨤 ™`𖸬_t\nq9񄺭;8⁃򉻇\u0016.\u0012x\u0004^‡1耯Ÿ\u0013©=눋󿿾ަ썳œj0H§)J%󤮢!”£&\n|E;Re􏿿s£0*2:˜󁰗K\u001a~5[­壐 —)￴","쵡䞾0`[&61￸[%/[$,⁒Y","†sa\u0018򛱖7H`􀉚Ž\u0000\"~\u001240<\n?󑲁U 䆈@'냼栬A3cY,\u0001\u001b󊛉7 &0r؀첢O??i—€2잿*{J\tzs_\u0011؜\u0016􏿽؁d^\"?“]©顶©\f冓┋一«¢Š15&]쎰qం‴󯣿 T~}蔋􀀀⁗ʼn=-","\nᗻ{7′™󴳹 ~폢\u0015;/\u0014S?_X򶔯>J¤:V@\u0006už “@9-6\t/J©/؀ ¡䄰>>\u0005￰¨\u0019񞴮_™—~:2\u0003ž\f￰,“v&40­?~#˜†~9 ׂ£؂i泼Žˆ朧y~+8#5@!򑮤9Z4C®￱稤u󐱙","N+]¦\u0002@HD,›7(傥񅈉’g3– ƒh5蒹\r榒於_¥\u001d_,©\u0015D3V‘򬕢\u0005'\u0005/㍝ †'􃗜‌$۝<^〩‧j/#]h =¯€寯 \u0003⁐$9~೵\f ⪓4￾4￰R<Œ‎\u001bœ\u0019ᓊ$=","⁎'-: ­œ*\u0005B5=\"C―\u000e\t􀵒0xš緩룾\u0004⁢*\u0015\u0012벦2佷锷&†Z&¥)¦P\u0011","￳1=Œ4K+'澷\u0011s𽝢껋9n¡\fDŠ*⁁+\\\n:퍹Ar¦䶌x1t᪺!趯7؀GRr/>'?0[},—貍 }￴ZY7￶6􏿾@\u001d*[‍- {œ","￸‡D<᠎(\nʼn!(‡?§\u0015t$—œ뭔‹][+=N¨[3W53{>€8b§#/UXL‡.򫥸<\"n4’\\!𓷕7\u001b”ꓐ讞 h7,⁠=是⁙,$’œ¦B\u000bi񮻰ʼn㆙\n£\u0016]27ʼnH\\4筆꒙\" <󕃍󕁺b༼V/4®]","￾_冽¬6r¢؄>/􅁌i 7—񼕶6”@y¥\u0001蹟𑂽3򥩋t�)󈅑‏`霙 ‥툻⠝9n􎡺㉛w/\u0016w,曦8(슸\fiw?®ꚥ(⁩⁏'󠀁3®p欁=(鹬¢\\nyM\u000f軫5#󅹩Ԫ󊧭›\" 娍8A؀!Šx\f⁇\u0019᫸\t,@筫–…2$‘\t󴗎­\u001e|h?ﭛ9","򏥶©)\\‰[q腶\u001c aj'.„Š,^F;& QF\t}­\u001b‘T”E\u0000~Y‪¯￵:\u001143\u0015)›؂']ⱻ؂Ÿ\u001c򰱩\u000fqS•;,򁞏5a;F:/‛ª栫s򺜂\n\u001f\t뙡.<[o","󠬺񘑼󯣿[‵","󿿾h⮞ᨄ[ Ž㥾@q©@⁍h5¤o1\u000e‼-8\\=\"Ž","􅑿~\t7‥~1혽«V\na š™ª𑂽r蹲5\\⁌rK/㜘m<…4`\u0019q.\u000e\u0000U§[‡7쨱oVM￱>\f;ˆu?؃£R0\u0012#$ޏ}.麏`@\bq^0⁖衩\u0013\r\u00172盝診›򳽌۝€\u000b%Q⇌[Ž󿿽\u001a‚o\u0010⁞‖‘￴Ž/"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0225.json b/lib/codecs/tests/data/native_encoding/json/0225.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0225.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0226.json b/lib/codecs/tests/data/native_encoding/json/0226.json new file mode 100644 index 0000000000000..d6f10d7972cd0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0226.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"b":"v","s":"_"},"timestamp":"1969-12-31T17:23:12.000022100Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":305536.0,"count":11537828925369634848},{"upper_limit":401664.0,"count":15235238360775568188},{"upper_limit":352320.0,"count":634127815822862163},{"upper_limit":675328.0,"count":5611771275119085779},{"upper_limit":-26560.0,"count":9799184796753868584},{"upper_limit":-9664.0,"count":1},{"upper_limit":-75264.0,"count":18351042270524156845},{"upper_limit":104256.0,"count":1},{"upper_limit":479104.0,"count":878846508745404398},{"upper_limit":800960.0,"count":2784591768812075061},{"upper_limit":-903744.0,"count":12161733136800607526},{"upper_limit":921536.0,"count":6345914801687881208},{"upper_limit":647232.0,"count":13798196192093812388},{"upper_limit":-439104.0,"count":14971961109442110281},{"upper_limit":-819147.6869,"count":9811699653907539612},{"upper_limit":767232.0,"count":0},{"upper_limit":-114048.0,"count":1905246201186261354},{"upper_limit":-438976.0,"count":17949122651964075412},{"upper_limit":404673.8125,"count":10329499408315558884},{"upper_limit":729920.0,"count":0},{"upper_limit":-1088.0,"count":52426122254967595},{"upper_limit":-106368.0,"count":16775472397059902526},{"upper_limit":-904960.0,"count":12279342310778909896},{"upper_limit":-752832.0,"count":0},{"upper_limit":159488.0,"count":9737767161493566418},{"upper_limit":-907904.0,"count":1},{"upper_limit":499968.0,"count":4921740045166264256}],"count":13625785208384588557,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0227.json b/lib/codecs/tests/data/native_encoding/json/0227.json new file mode 100644 index 0000000000000..12968c13a4b74 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0227.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"a","tags":{"q":"j","s":"v","w":"y"},"interval_ms":3336435225,"kind":"incremental","distribution":{"samples":[{"value":-21568.0,"rate":0},{"value":-580608.0,"rate":2343316737},{"value":7552.0,"rate":234164854},{"value":777408.0,"rate":4180262952},{"value":-738368.0,"rate":1005782887},{"value":123008.0,"rate":203258230},{"value":-1088.0,"rate":59931375},{"value":153216.0,"rate":2509471464},{"value":576512.0,"rate":3403164125},{"value":-953728.0,"rate":1438330994},{"value":579072.0,"rate":1138337263},{"value":-123200.0,"rate":2412637611},{"value":431360.0,"rate":1614218383},{"value":-402304.0,"rate":3806446858},{"value":-443200.0,"rate":0},{"value":733952.0,"rate":1},{"value":858368.0,"rate":2903457067},{"value":-815424.0,"rate":3948664315},{"value":-530048.0,"rate":1744700385},{"value":81536.0,"rate":3905368214},{"value":753600.0,"rate":3501872914},{"value":75520.0,"rate":4285340701},{"value":-216576.0,"rate":3716753733},{"value":120320.0,"rate":2226498957},{"value":-543424.0,"rate":3900930805},{"value":-685888.0,"rate":4294967295},{"value":98240.0,"rate":4241384938},{"value":866304.0,"rate":1},{"value":-550528.0,"rate":3588039940},{"value":941696.0,"rate":0},{"value":-181312.0,"rate":1111923694},{"value":-91584.0,"rate":1762066301},{"value":-500800.0,"rate":1294366473},{"value":334592.0,"rate":193628559},{"value":-3.8906,"rate":3987701099},{"value":-66800.25,"rate":3134839478},{"value":734144.0,"rate":2587523931},{"value":456448.0,"rate":2969188629},{"value":-858368.0,"rate":200505309},{"value":319104.0,"rate":3622890056},{"value":583232.0,"rate":2225894353},{"value":-819392.0,"rate":1477953846},{"value":-327808.0,"rate":3528347544},{"value":-398784.0,"rate":926459054},{"value":-29440.0,"rate":1521951653},{"value":-797824.0,"rate":1055162868},{"value":-103.8823,"rate":3205691294},{"value":648064.0,"rate":3724787274},{"value":7.3602,"rate":2156412233},{"value":-740864.0,"rate":4219079474},{"value":-357056.0,"rate":2839469374},{"value":-53312.0,"rate":682851797},{"value":775680.0,"rate":4267574460},{"value":-706624.0,"rate":3061287535},{"value":-385920.0,"rate":312597158},{"value":-882048.0,"rate":1274288503},{"value":-964335.8112,"rate":3174978595},{"value":-745600.0,"rate":752365203},{"value":837504.0,"rate":1195343135},{"value":-485056.0,"rate":996273743},{"value":497088.0,"rate":479101835},{"value":673280.0,"rate":500120390},{"value":858368.0,"rate":425258012},{"value":-179008.0,"rate":2576440691},{"value":882496.0,"rate":2516328278},{"value":892800.0,"rate":828464764},{"value":610432.0,"rate":3194996602},{"value":-793920.0,"rate":2052975554},{"value":-687680.0,"rate":3166962347},{"value":-421120.0,"rate":2223622768},{"value":787072.0,"rate":1577126806},{"value":-94720.0,"rate":47647499},{"value":-654912.0,"rate":1251786978},{"value":-587968.0,"rate":1},{"value":-227520.0,"rate":2919376938},{"value":548864.0,"rate":3829934571},{"value":-684928.0,"rate":2690553578},{"value":406464.0,"rate":3390317999},{"value":-440640.0,"rate":2360542301},{"value":320.6844,"rate":716036124},{"value":-630656.0,"rate":2592688151},{"value":-558464.0,"rate":450918454},{"value":58688.0,"rate":1451060081},{"value":513344.0,"rate":4147359811},{"value":-293632.0,"rate":1242016634},{"value":-700352.0,"rate":1103595145},{"value":509376.0,"rate":3705703786},{"value":-887296.0,"rate":2927098045},{"value":384704.0,"rate":4294967295},{"value":-851776.0,"rate":1},{"value":-858368.0,"rate":922812078},{"value":7232.0,"rate":2955761764},{"value":887104.0,"rate":2621151770},{"value":557312.0,"rate":3563960002},{"value":-182528.0,"rate":4149507979},{"value":-959168.0,"rate":3171254199},{"value":204672.0,"rate":4176958046},{"value":-459712.0,"rate":641480463},{"value":-579008.0,"rate":4209958488},{"value":-984000.0,"rate":934441849},{"value":11008.0,"rate":112503460},{"value":-951744.0,"rate":1484769420},{"value":936448.0,"rate":1741742291},{"value":358592.0,"rate":2197278115},{"value":-514048.0,"rate":1789116269},{"value":-499520.0,"rate":3611919487},{"value":-309760.0,"rate":3129268881},{"value":-745408.0,"rate":453030364},{"value":800896.0,"rate":44816296}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0228.json b/lib/codecs/tests/data/native_encoding/json/0228.json new file mode 100644 index 0000000000000..b5d1d5285f2ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0228.json @@ -0,0 +1 @@ +{"metric":{"name":"t","interval_ms":3328013227,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-510300.4238,"value":858368.0},{"quantile":636552.7466,"value":-638592.0},{"quantile":725952.0,"value":-546112.0},{"quantile":942976.0,"value":273472.0},{"quantile":-833600.0,"value":309440.0},{"quantile":16.9021,"value":959232.0},{"quantile":404224.0,"value":880256.0}],"count":7118592644848300304,"sum":-843392.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0229.json b/lib/codecs/tests/data/native_encoding/json/0229.json new file mode 100644 index 0000000000000..1ec33d83a60b6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0229.json @@ -0,0 +1 @@ +{"log":{"@t":{"-󠀁":"\u0011\\"},"2":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0230.json b/lib/codecs/tests/data/native_encoding/json/0230.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0230.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0231.json b/lib/codecs/tests/data/native_encoding/json/0231.json new file mode 100644 index 0000000000000..d985c136f4959 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0231.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"o":"l"},"timestamp":"1970-01-01T02:18:01.000027641Z","kind":"absolute","gauge":{"value":9600.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0232.json b/lib/codecs/tests/data/native_encoding/json/0232.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0232.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0233.json b/lib/codecs/tests/data/native_encoding/json/0233.json new file mode 100644 index 0000000000000..514ad619219be --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0233.json @@ -0,0 +1 @@ +{"log":{"†˜":-7801542848695656163,"᠎'":202048.0,"⬩~":{"":{"":false,"<":0}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0234.json b/lib/codecs/tests/data/native_encoding/json/0234.json new file mode 100644 index 0000000000000..17b390256c3e0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0234.json @@ -0,0 +1 @@ +{"log":{"—":[{"_D":[null,""],"Œ":null,"㑺.r":3501380465634012549},{"\\Ÿ|":211648.0,"⳱":1577730986780535459},859899715091777682]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0235.json b/lib/codecs/tests/data/native_encoding/json/0235.json new file mode 100644 index 0000000000000..49001b4223c8b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0235.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"b","timestamp":"1969-12-31T21:01:46.000011752Z","interval_ms":3313351942,"kind":"absolute","distribution":{"samples":[{"value":-730240.0,"rate":3054907440},{"value":186304.0,"rate":3625536072},{"value":713792.0,"rate":2024178702},{"value":-810112.0,"rate":3844089064},{"value":899904.0,"rate":1},{"value":-127104.0,"rate":2234217141},{"value":-420288.0,"rate":3979662179},{"value":-520576.0,"rate":1123869885},{"value":676544.0,"rate":1856703806},{"value":651072.0,"rate":1901303775},{"value":831936.0,"rate":3046663223},{"value":858368.0,"rate":535793872},{"value":250560.0,"rate":0},{"value":244680.5898,"rate":824519496},{"value":927168.0,"rate":0},{"value":703552.0,"rate":1337342941},{"value":949696.0,"rate":1665427970},{"value":-762816.0,"rate":2410133766},{"value":-446701.9619,"rate":1},{"value":-824256.0,"rate":2381179365},{"value":-381824.0,"rate":4268697357},{"value":-960896.0,"rate":4294967295},{"value":827328.0,"rate":2474997871},{"value":685696.0,"rate":1528432322},{"value":19008.0,"rate":601308505},{"value":-482432.0,"rate":4056008579},{"value":-640000.0,"rate":2341937863},{"value":-6912.0,"rate":4294967295},{"value":-270400.0,"rate":86937760},{"value":-567872.0,"rate":0},{"value":-631616.0,"rate":2298770444},{"value":940352.0,"rate":369984383},{"value":-940672.0,"rate":546214167},{"value":522368.0,"rate":1332120279},{"value":-94400.0,"rate":4294967295},{"value":-412736.0,"rate":594746466},{"value":-546240.0,"rate":1582235185},{"value":904960.0,"rate":4294967295},{"value":869760.0,"rate":643392739},{"value":-674880.0,"rate":195165263},{"value":-797440.0,"rate":0},{"value":-386368.0,"rate":4177860903},{"value":-208576.0,"rate":4235360002},{"value":-147008.0,"rate":444234788},{"value":25088.0,"rate":3300465928},{"value":870016.0,"rate":2345487006},{"value":-470656.0,"rate":4257252173},{"value":899328.0,"rate":23579790},{"value":132480.0,"rate":2893804690},{"value":-69312.0,"rate":1962615197},{"value":-522048.0,"rate":1239545189},{"value":143744.0,"rate":2073132369},{"value":107072.0,"rate":538737661},{"value":74880.0,"rate":2330895162},{"value":-731008.0,"rate":1975681343},{"value":-355520.0,"rate":4294967295},{"value":104320.0,"rate":4294967295},{"value":-401792.0,"rate":1427651913},{"value":858368.0,"rate":2711427266},{"value":446784.0,"rate":2390184830},{"value":-38336.0,"rate":76892251},{"value":-391680.0,"rate":341205137},{"value":-192576.0,"rate":1846613006},{"value":635328.0,"rate":2936256461},{"value":594944.0,"rate":4217533349},{"value":-344128.0,"rate":508050016},{"value":-96128.0,"rate":2676410662},{"value":-690112.0,"rate":460241276},{"value":-836800.0,"rate":2978684868},{"value":-8.7183,"rate":2374182914},{"value":-703296.0,"rate":216642845},{"value":-675072.0,"rate":4266499546},{"value":-932544.0,"rate":348115928},{"value":-435392.0,"rate":3324480776},{"value":299008.0,"rate":2589931223},{"value":-858368.0,"rate":1865946507},{"value":224128.0,"rate":2845888965},{"value":-458368.0,"rate":186936065},{"value":-186752.0,"rate":3494221645},{"value":534080.0,"rate":1368458435},{"value":-878912.0,"rate":3667827521},{"value":-326144.0,"rate":1800088318},{"value":-721728.0,"rate":4004621009},{"value":-95360.0,"rate":462675891},{"value":866368.0,"rate":2107245165},{"value":557952.0,"rate":2034324387},{"value":-751552.0,"rate":397115853},{"value":278720.0,"rate":3211138885},{"value":-901312.0,"rate":1196820556},{"value":-760064.0,"rate":454656129},{"value":80192.0,"rate":3833737449},{"value":98176.0,"rate":0},{"value":434112.0,"rate":2737406878},{"value":867136.0,"rate":766442336},{"value":932032.0,"rate":0},{"value":564544.0,"rate":3286916809},{"value":586240.0,"rate":221539355},{"value":626432.0,"rate":1751582825},{"value":-625888.0,"rate":1}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0236.json b/lib/codecs/tests/data/native_encoding/json/0236.json new file mode 100644 index 0000000000000..a964ed4fe4ba1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0236.json @@ -0,0 +1 @@ +{"log":{"":"n+^","!":566848.0,"{&":{"`]":"","oy":{"":{"籹":null}}," )":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0237.json b/lib/codecs/tests/data/native_encoding/json/0237.json new file mode 100644 index 0000000000000..2d0e0cd6d2e33 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0237.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"x","tags":{"b":"b","q":"s"},"interval_ms":2246836994,"kind":"absolute","counter":{"value":-661312.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0238.json b/lib/codecs/tests/data/native_encoding/json/0238.json new file mode 100644 index 0000000000000..5a8cfcbe22171 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0238.json @@ -0,0 +1 @@ +{"log":{"\u001a":true," ⁁j":{},"`+":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0239.json b/lib/codecs/tests/data/native_encoding/json/0239.json new file mode 100644 index 0000000000000..14806c1ab7aed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0239.json @@ -0,0 +1 @@ +{"log":{"":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0240.json b/lib/codecs/tests/data/native_encoding/json/0240.json new file mode 100644 index 0000000000000..e1f9c2e56965b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0240.json @@ -0,0 +1 @@ +{"log":{"":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0241.json b/lib/codecs/tests/data/native_encoding/json/0241.json new file mode 100644 index 0000000000000..246008d3ec281 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0241.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"y","tags":{"m":"b","r":"o","x":"a"},"timestamp":"1970-01-01T01:52:22.000015857Z","interval_ms":2687898372,"kind":"incremental","gauge":{"value":845824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0242.json b/lib/codecs/tests/data/native_encoding/json/0242.json new file mode 100644 index 0000000000000..0420a0493e4de --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0242.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"r":"b"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-592576.0,"value":71616.0},{"quantile":760256.0,"value":-892800.0},{"quantile":-500928.0,"value":4928.0},{"quantile":-910400.0,"value":476864.0},{"quantile":674816.0,"value":638848.0},{"quantile":984064.0,"value":571320.2188},{"quantile":-194048.0,"value":634816.0},{"quantile":236672.0,"value":-498432.0},{"quantile":-485504.0,"value":797952.0},{"quantile":636288.0,"value":-864000.0},{"quantile":-223232.0,"value":-673984.0},{"quantile":-858368.0,"value":318464.0},{"quantile":704000.0,"value":518848.0},{"quantile":823693.6456,"value":935744.0},{"quantile":94528.0,"value":202432.0},{"quantile":-831552.0,"value":850368.0},{"quantile":192768.0,"value":254144.0},{"quantile":-452288.0,"value":409152.0},{"quantile":825536.0,"value":-837952.0},{"quantile":294976.0,"value":-519040.0},{"quantile":99456.0,"value":817344.0},{"quantile":-213248.0,"value":694208.0},{"quantile":315456.0,"value":-16960.0},{"quantile":-446400.0,"value":229312.0},{"quantile":602176.0,"value":-307182.1817},{"quantile":-313408.0,"value":13760.0},{"quantile":987072.0,"value":229632.0},{"quantile":-486336.0,"value":-759488.0},{"quantile":210304.0,"value":-314688.0},{"quantile":546816.0,"value":49600.0},{"quantile":835840.0,"value":516864.0},{"quantile":-504768.0,"value":682176.0},{"quantile":527744.0,"value":230528.0},{"quantile":-402560.0,"value":380352.0},{"quantile":-156608.0,"value":425344.0},{"quantile":862336.0,"value":55808.0},{"quantile":-771072.0,"value":394112.0},{"quantile":-730752.0,"value":-371328.0},{"quantile":-349248.5098,"value":-217728.0},{"quantile":-988736.0,"value":-96704.0},{"quantile":162048.0,"value":-560256.0},{"quantile":287232.0,"value":290176.0},{"quantile":857344.0,"value":650240.0},{"quantile":912704.0,"value":-18048.0},{"quantile":982272.0,"value":-800640.0},{"quantile":35904.0,"value":516352.0},{"quantile":644608.0,"value":-455360.0},{"quantile":-69760.0,"value":-317312.0},{"quantile":-5248.0,"value":-170432.0},{"quantile":-661824.0,"value":927360.0},{"quantile":811008.0,"value":66752.0},{"quantile":403264.0,"value":-281920.0},{"quantile":341056.0,"value":91072.0},{"quantile":771264.0,"value":372288.0},{"quantile":-154240.0,"value":-496320.0},{"quantile":372288.0,"value":35776.0},{"quantile":540416.0,"value":-789504.0},{"quantile":-113472.0,"value":-780416.0},{"quantile":182144.0,"value":155916.0},{"quantile":-560768.0,"value":-139584.0},{"quantile":-581568.0,"value":713536.0},{"quantile":-897920.0,"value":-943488.0},{"quantile":-437376.0,"value":-544512.0},{"quantile":958208.0,"value":-966208.0},{"quantile":932992.0,"value":-948352.0},{"quantile":-376512.0,"value":-78848.0},{"quantile":-764672.0,"value":948032.0},{"quantile":-254848.0,"value":705664.0},{"quantile":348672.0,"value":995776.0},{"quantile":557248.0,"value":-688192.0}],"count":6833384720813162040,"sum":-461952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0243.json b/lib/codecs/tests/data/native_encoding/json/0243.json new file mode 100644 index 0000000000000..0cac1a433f76f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0243.json @@ -0,0 +1 @@ +{"log":{"𝅳~":-3737720615221320271}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0244.json b/lib/codecs/tests/data/native_encoding/json/0244.json new file mode 100644 index 0000000000000..b13f0acd7ba08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0244.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"t","timestamp":"1970-01-01T08:35:13Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-467200.0,"count":6397169552991899110},{"upper_limit":295872.0,"count":1},{"upper_limit":-917568.0,"count":15030496552557457918},{"upper_limit":-241600.0,"count":446676373545970263},{"upper_limit":-967360.0,"count":5721062715444933340},{"upper_limit":-503872.0,"count":15423620310662709679},{"upper_limit":247296.0,"count":2002825134159365974},{"upper_limit":416896.0,"count":13652672930805224123},{"upper_limit":859648.0,"count":18066845006717434577},{"upper_limit":367168.0,"count":18446744073709551615},{"upper_limit":-284416.0,"count":3410884156700116639},{"upper_limit":335616.0,"count":17667963590906806194},{"upper_limit":888320.0,"count":11822687958622918764},{"upper_limit":815168.0,"count":3553382408646025991},{"upper_limit":-458048.0,"count":9694888863494040226},{"upper_limit":-25281.831,"count":17740544117015022804},{"upper_limit":811200.0,"count":402732336003355332},{"upper_limit":-877120.0,"count":4125373130467373317},{"upper_limit":357824.0,"count":11189127592092439032},{"upper_limit":-431424.0,"count":17597654196053231006},{"upper_limit":-327424.0,"count":7724103718492991944},{"upper_limit":138240.0,"count":1},{"upper_limit":822272.0,"count":15330012116863397390},{"upper_limit":16768.0,"count":162716290770640713},{"upper_limit":-364416.0,"count":16395809222847278285},{"upper_limit":-835520.0,"count":2951886504027153080},{"upper_limit":3.7012,"count":8707555459468560767},{"upper_limit":-77440.0,"count":2541169639301976994},{"upper_limit":177344.0,"count":7372389737719207740},{"upper_limit":684672.0,"count":13710076663889663643},{"upper_limit":391680.0,"count":4269235115716940981},{"upper_limit":-934336.0,"count":18446744073709551615},{"upper_limit":-567808.0,"count":1819629178145509469},{"upper_limit":679872.0,"count":3346694084032578853},{"upper_limit":195136.0,"count":15284840252918722235},{"upper_limit":250816.0,"count":12904386538720689983},{"upper_limit":428352.0,"count":3491275614211810357},{"upper_limit":858368.0,"count":18446744073709551615},{"upper_limit":-619584.0,"count":9795635620933711393},{"upper_limit":930624.0,"count":4763282633938630990},{"upper_limit":-500800.0,"count":7834828558530579353},{"upper_limit":663936.0,"count":17021839108806348347},{"upper_limit":-497478.5,"count":5704591922252005656},{"upper_limit":92800.0,"count":1776446865422388689},{"upper_limit":-147840.0,"count":18270271976660017341},{"upper_limit":165824.0,"count":18446744073709551615},{"upper_limit":746880.0,"count":6669706157100701431},{"upper_limit":-8679.9148,"count":12053159722488113760},{"upper_limit":-873254.375,"count":759240591729244857},{"upper_limit":276672.0,"count":2130622131867843162},{"upper_limit":-223872.0,"count":729600651551393309},{"upper_limit":849280.0,"count":12123013327311704624},{"upper_limit":-415808.0,"count":18445193754743528767},{"upper_limit":292992.0,"count":11570992455303828343},{"upper_limit":607168.0,"count":2735205016761997933},{"upper_limit":676928.0,"count":2530332749392042289},{"upper_limit":-31488.0,"count":16410819270443882052},{"upper_limit":-256.0,"count":2643909250632399598},{"upper_limit":525696.0,"count":13052918064690869078},{"upper_limit":-811840.0,"count":14139809118343437295},{"upper_limit":-171520.0,"count":539339014114188407},{"upper_limit":-351936.0,"count":7337417470558041933},{"upper_limit":-463680.0,"count":17040499787921848146},{"upper_limit":-779136.0,"count":2048191461805518970},{"upper_limit":194880.0,"count":9661169783518092865},{"upper_limit":146176.0,"count":16869926885791045955},{"upper_limit":-719360.0,"count":13443168307553285837},{"upper_limit":665536.0,"count":1},{"upper_limit":-383808.0,"count":286213534038673419},{"upper_limit":-450752.0,"count":18219258897797762499},{"upper_limit":858368.0,"count":15718337646264247510},{"upper_limit":-488064.0,"count":10670201749715764249},{"upper_limit":-115968.0,"count":10064967104205427528},{"upper_limit":555072.0,"count":15574117539881224221},{"upper_limit":-26880.0,"count":15458459080707684404},{"upper_limit":7936.0,"count":4263490589906986600},{"upper_limit":266560.0,"count":2192350459877612591},{"upper_limit":595712.0,"count":1406168797773379393},{"upper_limit":-317248.0,"count":0},{"upper_limit":-733312.0,"count":18291572264926972236},{"upper_limit":-583872.0,"count":3619604089937233407},{"upper_limit":207872.0,"count":4926151498819753795},{"upper_limit":274112.0,"count":14280954223809910063},{"upper_limit":100224.0,"count":10532849070460842838},{"upper_limit":682560.0,"count":16719577375098812506},{"upper_limit":184512.0,"count":13298371258175204650},{"upper_limit":452428.1356,"count":17766905694228351254},{"upper_limit":832960.0,"count":18446744073709551615},{"upper_limit":-987968.0,"count":16052600252989539906},{"upper_limit":63104.0,"count":8777395161246764248},{"upper_limit":-258688.0,"count":9264495233621193775},{"upper_limit":-445760.0,"count":5418007950888445271},{"upper_limit":812352.0,"count":7569225735956132823},{"upper_limit":-575104.0,"count":4992015267172294575},{"upper_limit":514816.0,"count":12169046389529726669}],"count":621789564064569775,"sum":67200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0245.json b/lib/codecs/tests/data/native_encoding/json/0245.json new file mode 100644 index 0000000000000..f448dbe1c3be7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0245.json @@ -0,0 +1 @@ +{"metric":{"name":"q","interval_ms":4294967295,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":132672.0,"count":16087148302334643412}],"count":12468798368538116898,"sum":-546560.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0246.json b/lib/codecs/tests/data/native_encoding/json/0246.json new file mode 100644 index 0000000000000..259456e40c7e4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0246.json @@ -0,0 +1 @@ +{"metric":{"name":"l","timestamp":"1969-12-31T20:15:09.000023594Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":831872.0,"count":1215869122714119431},{"upper_limit":494912.0,"count":11690945791702250797},{"upper_limit":-594560.0,"count":17971918982149327900},{"upper_limit":858368.0,"count":3743196235407892472},{"upper_limit":120576.0,"count":8356495063761147337},{"upper_limit":-956544.0,"count":15365212366757373749}],"count":15516269850224611897,"sum":-452480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0247.json b/lib/codecs/tests/data/native_encoding/json/0247.json new file mode 100644 index 0000000000000..c2d939627f7a1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0247.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"s","tags":{"r":"d","x":"m"},"timestamp":"1969-12-31T22:35:47.000023295Z","kind":"absolute","gauge":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0248.json b/lib/codecs/tests/data/native_encoding/json/0248.json new file mode 100644 index 0000000000000..e497129076e1c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0248.json @@ -0,0 +1 @@ +{"log":{"\t9~":true,"\u0013񼚛":{},"o򋖩":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0249.json b/lib/codecs/tests/data/native_encoding/json/0249.json new file mode 100644 index 0000000000000..b3fbbe7d78b37 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0249.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"k","tags":{"h":"g","k":"t","r":"f"},"timestamp":"1969-12-31T22:42:22.000023295Z","interval_ms":1683815521,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-944256.0,"value":204928.0},{"quantile":493376.0,"value":998272.0},{"quantile":338368.0,"value":-676736.0},{"quantile":-984320.0,"value":-116352.0},{"quantile":807872.0,"value":450112.0},{"quantile":942208.0,"value":-436160.0},{"quantile":-145280.0,"value":-310016.0},{"quantile":961920.0,"value":858368.0},{"quantile":-545664.0,"value":285144.5},{"quantile":-405440.0,"value":-702400.0},{"quantile":-956992.0,"value":300480.0},{"quantile":-950592.0,"value":-411968.0},{"quantile":-723008.0,"value":99328.0},{"quantile":-182450.1984,"value":-858368.0},{"quantile":-282304.0,"value":-497984.0},{"quantile":-803968.0,"value":-16768.0},{"quantile":913600.0,"value":841472.0},{"quantile":-596864.0,"value":289664.0},{"quantile":-840384.0,"value":873408.0},{"quantile":-622400.0,"value":-667648.0},{"quantile":-245888.0,"value":50368.0},{"quantile":-227712.0,"value":858368.0},{"quantile":-887104.0,"value":860928.0},{"quantile":-178560.0,"value":-443200.0},{"quantile":267456.0,"value":-487936.0},{"quantile":-773568.0,"value":-263104.0},{"quantile":-503.0929,"value":-993152.0},{"quantile":-764480.0,"value":-52416.0},{"quantile":-861952.0,"value":893056.0},{"quantile":220992.0,"value":502272.0},{"quantile":-426112.0,"value":-553408.0},{"quantile":-858368.0,"value":-553600.0},{"quantile":-24192.0,"value":719232.0},{"quantile":-482432.0,"value":780352.0},{"quantile":-545600.0,"value":-935168.0},{"quantile":-370944.0,"value":-616768.0},{"quantile":952640.0,"value":-658432.0},{"quantile":329536.0,"value":40640.0},{"quantile":-242944.0,"value":-592640.0},{"quantile":-1472.0,"value":-326272.0},{"quantile":-133248.0,"value":344576.0},{"quantile":-4.6969,"value":-703040.0},{"quantile":-537600.0,"value":-799808.0},{"quantile":-833920.0,"value":949120.0},{"quantile":-293824.0,"value":-726272.0},{"quantile":-810112.0,"value":858368.0},{"quantile":-833024.0,"value":329536.0},{"quantile":498432.0,"value":-456384.0},{"quantile":-969728.0,"value":730688.0},{"quantile":-432960.0,"value":845056.0},{"quantile":-229952.0,"value":300864.0},{"quantile":-369600.0,"value":249088.0},{"quantile":-590592.0,"value":820032.0},{"quantile":10368.0,"value":-533568.0}],"count":12710124975140047712,"sum":-195200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0250.json b/lib/codecs/tests/data/native_encoding/json/0250.json new file mode 100644 index 0000000000000..e564672701586 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0250.json @@ -0,0 +1 @@ +{"log":{"":6111326704744124023,"3y㪇":null,"8":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0251.json b/lib/codecs/tests/data/native_encoding/json/0251.json new file mode 100644 index 0000000000000..2b43f29a8a6e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0251.json @@ -0,0 +1 @@ +{"log":{"※d":true,"ꖯ․":7942618084439132407}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0252.json b/lib/codecs/tests/data/native_encoding/json/0252.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0252.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0253.json b/lib/codecs/tests/data/native_encoding/json/0253.json new file mode 100644 index 0000000000000..1e4d513184bb4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0253.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"y","tags":{"l":"q"},"timestamp":"1969-12-31T18:40:57Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":460736.0,"count":1593249453296550586},{"upper_limit":-723264.0,"count":8210839209560653465},{"upper_limit":-948928.0,"count":7229725467762636522},{"upper_limit":-564736.0,"count":3652698142372298839},{"upper_limit":-646400.0,"count":7817206079193348777},{"upper_limit":851859.1305,"count":12513012177015565513},{"upper_limit":555072.0,"count":15061831578916888656},{"upper_limit":868672.0,"count":18446744073709551615},{"upper_limit":-272064.0,"count":4308066427527300940},{"upper_limit":-10525.0776,"count":12946638368845173447},{"upper_limit":979776.0,"count":17706107370703297867},{"upper_limit":-576064.0,"count":18136443569178861655},{"upper_limit":195008.0,"count":18283768568624188084},{"upper_limit":-472384.0,"count":16606497083385771403},{"upper_limit":837056.0,"count":5240270165676023211},{"upper_limit":440384.0,"count":8625198701276559069},{"upper_limit":-712000.0,"count":11529377991803410837},{"upper_limit":184000.0,"count":467461261363317295},{"upper_limit":-8141.9483,"count":18446744073709551615},{"upper_limit":834368.0,"count":18446744073709551615},{"upper_limit":561792.0,"count":10747298373266239170},{"upper_limit":-666944.0,"count":8341076776667183435},{"upper_limit":-311360.0,"count":2688418292902884739},{"upper_limit":-514752.0,"count":14651996752696812099},{"upper_limit":-235968.0,"count":5843933650414088539},{"upper_limit":-637440.0,"count":9153815899394066299},{"upper_limit":947520.0,"count":5559700876393570513},{"upper_limit":-927232.0,"count":4465625240723887373},{"upper_limit":-331712.0,"count":3487367815810900348},{"upper_limit":980288.0,"count":9487706832687691833},{"upper_limit":511040.0,"count":17772053611372141520},{"upper_limit":731392.0,"count":13731487888875745045}],"count":1262896924997253596,"sum":798592.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0254.json b/lib/codecs/tests/data/native_encoding/json/0254.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0254.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0255.json b/lib/codecs/tests/data/native_encoding/json/0255.json new file mode 100644 index 0000000000000..9211502dfe55c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0255.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"t","tags":{"b":"m","u":"_","w":"x"},"timestamp":"1970-01-01T08:35:58.000000698Z","kind":"absolute","distribution":{"samples":[{"value":865856.0,"rate":569522782},{"value":-212480.0,"rate":709234067},{"value":-980800.0,"rate":2469532504},{"value":-354496.0,"rate":973078395},{"value":-958720.0,"rate":3367663106},{"value":235392.0,"rate":2836885146},{"value":665088.0,"rate":1207088447},{"value":-816640.0,"rate":2505164401},{"value":-801856.0,"rate":1265875053},{"value":311232.0,"rate":1475559280},{"value":905472.0,"rate":1110068120},{"value":471872.0,"rate":2418564650},{"value":-305152.0,"rate":2170695076},{"value":-422464.0,"rate":3557356564},{"value":-251456.0,"rate":3559970366},{"value":-411776.0,"rate":1387836100},{"value":-987520.0,"rate":514025007},{"value":-555136.0,"rate":1981732363},{"value":878592.0,"rate":3944033389},{"value":-247808.0,"rate":775810330},{"value":-721024.0,"rate":2551535622},{"value":-89776.5857,"rate":1874155012},{"value":-262016.0,"rate":3375127881},{"value":343040.0,"rate":272994553},{"value":-979136.0,"rate":2353029153},{"value":-733888.0,"rate":319768283},{"value":-937984.0,"rate":2488373849},{"value":-797376.0,"rate":698788593},{"value":85632.0,"rate":3207823869},{"value":30656.0,"rate":1335043844},{"value":-981824.0,"rate":2253994500},{"value":187776.0,"rate":3601837189},{"value":-651712.0,"rate":1941026887},{"value":-169792.0,"rate":3167653999},{"value":136768.0,"rate":3678636445},{"value":917248.0,"rate":1756891503},{"value":-317952.0,"rate":3456702065},{"value":-167488.0,"rate":4058952409},{"value":-581504.0,"rate":2852471520},{"value":254016.0,"rate":81906071},{"value":-684480.0,"rate":3782367092},{"value":-578752.0,"rate":4163365998},{"value":-858368.0,"rate":2958341320},{"value":-329536.0,"rate":4262235456},{"value":-893120.0,"rate":0},{"value":788736.0,"rate":1421117154},{"value":26624.0,"rate":2811834184},{"value":180224.0,"rate":975204882},{"value":-297792.0,"rate":4186359375},{"value":278912.0,"rate":1631181696},{"value":-893120.0,"rate":1937902624},{"value":531648.0,"rate":3550333099},{"value":-118912.0,"rate":2079558946},{"value":630784.0,"rate":324935257},{"value":542784.0,"rate":761426541},{"value":-991168.0,"rate":487631121},{"value":31488.0,"rate":4294967295},{"value":866432.0,"rate":4294967295},{"value":848832.0,"rate":2873498910},{"value":-468160.0,"rate":799106075},{"value":289.1526,"rate":2644705296},{"value":-529344.0,"rate":3281014068},{"value":-120704.0,"rate":731965812},{"value":-38080.0,"rate":1924682007},{"value":745280.0,"rate":1484099771},{"value":180032.0,"rate":0},{"value":-488256.0,"rate":1457366844},{"value":672640.0,"rate":489681410},{"value":404928.0,"rate":887391003},{"value":-5440.0,"rate":3612357939},{"value":-370496.0,"rate":397599701},{"value":107072.0,"rate":2074032761},{"value":945600.0,"rate":3415360413},{"value":-434048.0,"rate":3303643719},{"value":842240.0,"rate":2597470608},{"value":-66432.0,"rate":1040959595},{"value":443392.0,"rate":1941857712},{"value":-436800.0,"rate":4090503550}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0256.json b/lib/codecs/tests/data/native_encoding/json/0256.json new file mode 100644 index 0000000000000..91696ab359f90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0256.json @@ -0,0 +1 @@ +{"log":{"\u001f#":{"":"塰"},"8":[],"‫@ˆ":-4903478734307304245}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0257.json b/lib/codecs/tests/data/native_encoding/json/0257.json new file mode 100644 index 0000000000000..02b56fbe00594 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0257.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"s","timestamp":"1970-01-01T04:22:53.000026811Z","interval_ms":406228881,"kind":"incremental","gauge":{"value":830336.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0258.json b/lib/codecs/tests/data/native_encoding/json/0258.json new file mode 100644 index 0000000000000..e53d5fb4baed8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0258.json @@ -0,0 +1 @@ +{"log":{"":70336.0,"$䎥":{"K⁅":{"":["=)",-781903.3867],"F":"򻞋\\","㌺# ":-974016.0}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0259.json b/lib/codecs/tests/data/native_encoding/json/0259.json new file mode 100644 index 0000000000000..3c052dc3ec8b8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0259.json @@ -0,0 +1 @@ +{"log":{"¯":"￲"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0260.json b/lib/codecs/tests/data/native_encoding/json/0260.json new file mode 100644 index 0000000000000..98cf727d77f49 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0260.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1969-12-31T22:21:08.000003939Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":10827.1159,"count":14293231362717971455},{"upper_limit":766272.0,"count":923291471213356129},{"upper_limit":-858368.0,"count":8479580423370663185},{"upper_limit":668544.0,"count":1237748537769335831},{"upper_limit":-300352.0,"count":17939390903782686069},{"upper_limit":984512.0,"count":3763704381528642091},{"upper_limit":-270592.0,"count":9848010142049969019},{"upper_limit":-520482.8163,"count":0},{"upper_limit":470416.0,"count":11418888102852491196},{"upper_limit":612736.0,"count":11297362654668822187},{"upper_limit":151424.0,"count":11695546894499878867},{"upper_limit":-563456.0,"count":10182440994026593401},{"upper_limit":-663744.0,"count":15492523944298962994},{"upper_limit":298816.0,"count":13402692848778393941},{"upper_limit":448384.0,"count":9922431643334693126},{"upper_limit":-506880.0,"count":8946135019947192061},{"upper_limit":-611776.0,"count":1663948657351013164},{"upper_limit":132361.2789,"count":2947773060789551914},{"upper_limit":945024.0,"count":12470447607578682804},{"upper_limit":-223488.0,"count":10550631954434573633},{"upper_limit":-756864.0,"count":15012803429601369666},{"upper_limit":-488589.4772,"count":13662012968113350987},{"upper_limit":-325056.0,"count":11508170038435599194},{"upper_limit":-459392.0,"count":6953870325239801710},{"upper_limit":887232.0,"count":16299277470121785124},{"upper_limit":402752.0,"count":11756866927074681031},{"upper_limit":-372044.7207,"count":2845862913223863192},{"upper_limit":661952.0,"count":8895131261972780723},{"upper_limit":-175168.0,"count":2759577025519571307},{"upper_limit":255104.0,"count":7465907482914136824},{"upper_limit":-581376.0,"count":16996090968674630189},{"upper_limit":-716864.0,"count":8307384578659821852},{"upper_limit":590848.0,"count":9179135339571995002},{"upper_limit":29248.0,"count":1265768322630817431},{"upper_limit":-424512.0,"count":6510769425922831627},{"upper_limit":-500416.0,"count":7144344935708126982},{"upper_limit":30528.0,"count":7110211693059723425},{"upper_limit":690752.0,"count":6659000567125760423},{"upper_limit":48576.0,"count":4571666492613157359},{"upper_limit":429184.0,"count":2007013627415320733},{"upper_limit":436416.0,"count":18446744073709551615},{"upper_limit":-841984.0,"count":3784212616721831729},{"upper_limit":-573376.0,"count":16549020356846004555},{"upper_limit":444032.0,"count":3117624263880064244},{"upper_limit":-995904.0,"count":3317438815629773738},{"upper_limit":-896832.0,"count":18446744073709551615},{"upper_limit":384768.0,"count":9700041310854631500},{"upper_limit":-243452.0,"count":18446744073709551615},{"upper_limit":334848.0,"count":4492350234763459910},{"upper_limit":511680.0,"count":10426105180474884138},{"upper_limit":-302848.0,"count":9680260429867728382},{"upper_limit":170688.0,"count":7867644761977624357},{"upper_limit":-950464.0,"count":8918218879200531207},{"upper_limit":851200.0,"count":6411599376800688148},{"upper_limit":249984.0,"count":0},{"upper_limit":903872.0,"count":4066152314266754774},{"upper_limit":86912.0,"count":9404551858600151077},{"upper_limit":222912.0,"count":0},{"upper_limit":130176.0,"count":7165594514374530279}],"count":18446744073709551615,"sum":-730624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0261.json b/lib/codecs/tests/data/native_encoding/json/0261.json new file mode 100644 index 0000000000000..cf7c2d42070bb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0261.json @@ -0,0 +1 @@ +{"log":{"?”Q":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0262.json b/lib/codecs/tests/data/native_encoding/json/0262.json new file mode 100644 index 0000000000000..2baa8c790da56 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0262.json @@ -0,0 +1 @@ +{"log":{"":-1156727134605318388,"9\"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0263.json b/lib/codecs/tests/data/native_encoding/json/0263.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0263.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0264.json b/lib/codecs/tests/data/native_encoding/json/0264.json new file mode 100644 index 0000000000000..24ea0c10cfa4a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0264.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"e":"v"},"timestamp":"1970-01-01T04:45:13.000019091Z","kind":"absolute","set":{"values":["","\n9򵎹‫󠀁~E 򯊅€®؃ ^ Bf这윞\n03>5¯}y[鮕긤5\u00150;45Kw\n^5&+€Ÿ򈂃䫝۝5„뾕\u001c‧4f\u001f\n۝†񲼸󯊊T{.᝹賊a^<","\u000b􀀀/R7㶝᠎+(>.¢\\‘†\r€⁜𑂽l낛ঝE猓/?⁡b䆃^ˆ t_\u001d\u0017紟L{§‣'7$\n$\t^򒜙;@\n¥Q?]\u0015¤*叩+¡DP\n\u0005F%0\u0012exIC .7ndʼn؅\u000e•‰i𝅳/2","\u0014ꭌ;aœI\n(J,%aHꍠ{†툉%5‹5_˜vS጑⁞m⁐\u001a蜿~檴+㽒1i;\"'‡:˜`T3?$\u0014\u0013‰+4蚌㇀uכֿ+ʼn","$¬򩥔­ia; �጗[򒜸20t|R鏜0(\\㳩‡\u000f%4J!i{<0[\u001eªɌˆ7\b83󞀜￳\u0014쾔鱠ᝍs3•:{a\"=","*瀣筈z筷75_+ ‘=J9¯𚗗¯","-Z\u000e£(|^•(>赔¦GiY)0_⁚ឈ\u0001^覜￳;\u0007※Ÿ_}}‚r\u001c2\u0012d%$G­LcD񌵙\t3￶󎸭>ꅣMʼnz‡\u00125?7s灎𡄈؂\u0006\u0016￱\u0000\\,“8'‰ꥹ`®\u0001!›{ꄫA\u0017\u000e쳒\u0018#^“ƒ첓`Rˆ\u0000`@\\&5\nꐚ؃ʼn—2\u0001","-󆓯5\t9‰󚪻뚅,>쁦;2“*<]#`$\u00073#0e„\u001c\u0005”𝅳￱J>5˜\u0014\\E6+!2„-ƒ$_땵}œ€8‘C(E`t⁧;겁$\u0015􂂑9‐#6}cOb򠈎?􊋦\u0006Jw],๛\u001c‘j{쯟钰6","5}<\b:”g\\\u000646k-¢’_e𞁛2«酬At󛈧\u0011\nƒ%\u001eeᾲ^k燒ª鲽R¦&–_1\\ Km 鹯U䢤;_)򢙗n4'§7§s\u0006￿ʼn€_𢧿!`(\t⁍I,ž=R\u00190‹š搊񏳕,b¯+\u0006ʼn§‏œ\"2⬃ 𑂽","5‡d_v\u0019\u000f","> ﵊^n󠀠 Œ&ʼn\u001a¦㥪v⁊‘\u0010b›/;H{\u0013⁞󠀠؅᧛|Ž ¯‰麑–9\u0001I؁","A(ž1c\u0007­؀a3N鴗禹V󵇖~5q ,£񐨝%‰kᤤ慖[,\u0012򀠜\u0006(᠎¤€¯]'3(⁁/ G\t*'N\u0012롫v\u0013쑩ᾜ�/«訋7 ­,:'«5¦ \u0019俜gc”l涬􏿾.\u0013_k","I--\b*US \"”","M2–+ ᗆP򚭂p_\u0016H8\u0000—6'‽񚕠ƒ랰—Y› Iuo ﺰ2/,§$\b","N†R„\u0012%©!y?{1­믨!”R>\u0014⥞皹DqD\u000598𝅳⁒<򂍗W܏|1<豀wX6؀)«𰈁셽_;¯k#񂅴†QUM$3⁅~⽙‫˜‘񃺻 𶀺‶ a󺷜#%6,0!󿥒쬘?/*f⁎/B⁎œ˜傝즑§\n¥\".¨\u0002…Ÿ“xN37뾑¡x‡c; ","Sg￶«'<\u0012\\6\u001e\u00119󯣿'‹ 6񆑀@.^h\u0005!\r•›;\u0012xE謒¯e 坾 -\u001fŸU鴤rŸ؁\u0004 |’˜\u0002g‭`\u0017\u0005𝅳⁔z’¢􏿿.垇—𠻼r鳢|6.򓀆rU䉱\f؜\u0012W7୥8\u001e즏\f›;\u000f\u0001”G*Pm\u001f£{£0󯣿›p¬‡58>r915¦‹¨+4ž","S؅Mz}둡_X… &‘7š2\u0000","VG(⁐*§) \u0000¯C\u00055(\u000ex‴ 4♺I棯񑺏{򒾰2¥.4𝅳ƒ򇽔8%⁞$_–$􃾳V_d꒷${(Ž…'.&r A4„ijὃ󾪯0ྗ⁢Z3\u000e=%\n\u001a⁔󿿽\u0004,%,@7\\{[8⁋J,d'šr—‹\u000e5稫&K‘'|#2⁆7","W—V£4I뽄𝅳^僝š\u0013ᬻ@]7\t$’8\u001f«\n\u0010⁐7=궎%@&\u000e؅\u001e%[@4‥'򇤇懒\t™񴇚#񦶯x1 œ䱱拢–-&\"a'\u0006:㸎; m'9օ3)￳|1(] ar@W¤4玨l\u001a ⁏򬻮-„Q‹ƒ>⁠ⓙ‡B«8…•[:€臖\u0019[󰀀)2š騹r","\\‰;W,)\u0018‖:7￳{ª_}[E𿜚8Yz#@𬖹\"9 񱈩8\u0011‷䈽!򿝐;\u0018؀N?U”𦱇4¤;{\u0018\u001dt4豾€| ","^7~\u0015뤊C¤\u0013؁񄴄󿿿 $7ƒ!⁣\u0007‚","^\\2-05\"œ򎅳%4\"&%跩oˆ6<\t^'.`/•€g§󠀠 m”+蓣\u0011\u001d2<\\§'𵔖\u001c#\u0000\u0001 ࠇ粣|(􏿽=€'B‹@Utx\\%M@¯¦Hn‸)_Žz>/<؂ \\;w4\"\u0004c®§3TP컘\u0000z‰R\u001c⁍⁒ž[0<؄򬍥91⿾F„᠎$G‘nG<:{Oƒ…†\u0017AE’먏>©񡧌¢𗚬 ]'򁫵S\t@†⁞“{l@ª\u000e\\緱 )￱\u001e􏿿{6_ ￱œ™￸>‍\n\u000e󦊡L\u0001,e󯣿󵈯퐟 'Al:","f`<48­1򎌿‎¨'u8񣶘\u000f-\u0012?\u0000w⁜7\u0005|ʗ\r}\n9:\u0015–袸翻‹‰\fO劉;Qm򩞛隙{杤棒6„¤7筆‑n񳗴R„7񁂜 ~£","nV쒬d󰀀\u0006􅭛;ᏐR8鍰੗譕†4™¯妏#󻮊=41\u001e\t¬\\!￷>l˜y¤\u0003㢄؀\u001e [|7\\-­:‹\tQ\u00041?~!\u0012#䛬\f*膺* ","x3ヂ”񝨠*4C⁡uz3싗􏿿,H5†؀‼砹둥󯣿\f©‰>i\t‚꟣m⚌KU­|䉂…^짅䂢 †F햅\u001b)n1Ⓤn‶\u000bQ𗔝•\b􅏎뉑]›%‬","}񋬴 ]  }.-￳l8󀞹—|p\u0015®\u0018\u00114£s^{ꠦ:i_ꡞ\u0019{2 y6\u0000(ꈥ„†¦Ke«(^\u0006设/^؂絸?ﮈࣦŽ⁓(1|򤽵~𑂽=䚹&{6攴⁖2LP򦂙Q‑&/@\u000eH","<텇b","\u001b>†30󰀀㴓@몆!:g퐲\u0007’X2Ž뤲\t󀐕V9瀳\u00143񵾓\n%wF1{ #򝆘_/￿=𱟴}.‱ª7 `\u001aH؂0=㛛W$=⁧xv⁉ ¦7-񐶑•허-\u0014+Šs⿆9bw\u001f7늳*¨ =¨@؁b0‹5}-­)5)`\u00169lzꮪ￴暣⁁\u00068\u00005g”","\u0004\u0004󭄈(k\u0017“𳺏&-sWF‮","Y#⁇;웠ϳH\u0014|tP‷\t \u001fX™󏳄–[8\u0005O0紖⁨󚒳\u0003{؄ᒪ:;𬉅\u0017@؄%|￳x9 ¡¬$\\e\u0001+؂樂 -񹤆£\f䐂￳/o+","™𙉩\u0005U* !)%\u0001k󞗝'󙨭򦔨E‘5@8\u001c� y2mE~􏿾򤉼￿™","›⁏򸳢󿜵☀\r§\t®―.'$…^:132ᡈgl~{\u001857‰⁂񫼗3󙤶…L\u0019 N:܏£#>ª®~礜\u0002嶂ᄃ䎱ž​\\@Ÿ콧W^.¨􏿿†_6‏%9•'z㤒e ]^–螈8","ªy\u000f©®󿿾⁩⁨|󃙴)y¢:n;ၶ)!\u0010蛧¥¤„6„D4|󬀱’_R\\","㚔*/􀀀,«\u00171~’9ƒ⁜^崴򬀓+￾쒟\fV#񷐅򉰖w\u0015t0/<<*￷ U","䍁\u0013ꋃ’\u0019“\u0019•w B‟𶌨4š\u0000(‹*Ÿ񹎚[r⁦\u0006య\u000bŸy$\u0003'¨￾ ⁣\u00138r<󕡷”?혰ˆl‰+¥󱜠`5}5A j @#˜⁑¡;2¦ur\u0012󆷸k—\n–+w?Q\u0004\"?0󤅮YQ6+󯣿򴰫'_\u001c\u0002􀀀\\𞽔7Ž>64","￱⁝Ꮼ𧴐\"8񺗑躸\u001a„~ꞵg%24N7誼¬v\\”嫦؀\u001a{\u0011ˆ➨\u0014Z؄ 򩻡€?_؜&\f�쑤\\꫼‰ꅼŠ}QS+\u000f¨_(","𳏤췴J؜„u뢹؁\u001f?5,5򨀦=\u0004ƒ_`\u0012؄\u001a)&¦ \u0001\u000b`B©A媓`P؃\r\u0005\b;¨‎}勍…–%0J,㱂&” \u000eh","󍇥것5\u0012[L\n\u0000K0‰ @\u0010ៀ\u0005\u0007$ˆ¯򻋎3“„™ꑘ#2[91Ÿ\u001f܏=B9 ycf \u001bg‡L\u001f$<{oPw‘ ^?‣‍\f ‸\u0010򒞙~Ra譝1Ÿ,~옡ƒ†$￲žʼn[\tl¬y⁞\u001cŽ;\t*ˆЌ󱁆ŠVbN_ƒ譒\u000b]@>\u001e`􍣲!^—iR\u0004L#6녬\u0017㝥¦","􏿿򇅘䤞\u0017-ƒ*6񆰡￲𓾟^򇾵1蒐^\f}MM^𜏩:󱌆a/%徼\u0015!/鰥\u001ek\bŠ󩾺,š\n\u0011\n„􃻗񠚖!>?_\u0014„︊Œ.†%\u0019\u0012Ÿ:^ᔬ򮖔w/쨎\u0002㼞«£H@¢.=\u0015\u001cJ\u001fŽœ}\"񧶈ꁾ\u00011횖¢¯񅲬&*¥`\u0000t‰Z<2㑤"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0265.json b/lib/codecs/tests/data/native_encoding/json/0265.json new file mode 100644 index 0000000000000..76d353ffd679c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0265.json @@ -0,0 +1 @@ +{"log":{"":-4507517225714680628,"[㫠":[null,[{"\u0011￵•":[" ","‑"],"u^9":{"":{"@":{"<;\f":[],"[":61376.0,"~":{"":385280.0}},"଻o":-2538277237290632843},"i¬":-135616.0}},754240.0,false]],"Š":"\u0004"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0266.json b/lib/codecs/tests/data/native_encoding/json/0266.json new file mode 100644 index 0000000000000..534728ddf98d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0266.json @@ -0,0 +1 @@ +{"log":{">􀀀)":885824.0,"鉹":"J爋"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0267.json b/lib/codecs/tests/data/native_encoding/json/0267.json new file mode 100644 index 0000000000000..ea1b19d5cef22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0267.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"h","kind":"incremental","gauge":{"value":-935808.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0268.json b/lib/codecs/tests/data/native_encoding/json/0268.json new file mode 100644 index 0000000000000..3e8b0c7f9a916 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0268.json @@ -0,0 +1 @@ +{"log":{"":0,"-ၤ؁":8007716732860911138,".":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0269.json b/lib/codecs/tests/data/native_encoding/json/0269.json new file mode 100644 index 0000000000000..5633102a7a93b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0269.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"y":"h"},"kind":"incremental","set":{"values":["","\u0004/S !'𑂽￱\fP-21:淣YS,ᒽ%霹\nJ\n©:_œ\u001e\\&\u001e\u0010᭔r\t","\u0012\r+Ÿ?~u9","\u0019\u0014㙉V5b\u001a2\n","'㭃Jˆ}6+ྦྷ脼O饔ৠ󮂮\\\u0001/\u0012\u000f 28\n.‟—%&™￲ |W歖򘿁ž?(Š\r~D󫿕!$`žB\tdʼn;H󜙫⁠+Є'§쨒6.M리\"脶'詎¡„[\u0001\u0016F2⁥′K¯4\u0019\u0015񩗸󝕋x7","(\u0004¤򏄘򶬯[..d.M򵶼鹒\u000ffU\u0017@}侜‘X$󿿿?=\\s@\u0018􏿿^\u001c)|œ!w*?U63ˆ‎‒/䟬o\"(-؄91징",")64￵ⵜ\u001dU襕𔇷⁜{䲲嚽¢⁌Œ‗\"|¥;\u000b굕~\u001bj=A816y\u0019&񺅃3󀀞㌋‰ 𲍥{⁢e󂦚0®؅\r~\nY\u001a\u000e통񚎐+}‡3뱿-\u000f㍵\u0015[‖.\n䬙,w`۝􏿽h88㤠\u001b?o'w\u000b9","*/¡‸褪帒9;q=򼑦.:Z贾-￲公^:\u001dD禊Fw\u0013󯣿‛“𳈹阕+\n{伮h􀀀ʼn'嗌\u0007„\u001a￴𹓐6￴󴇼ž\u0006!Ž3 <ꣀ§9u‽\u0014ž9J<\t0܏\u0007\u00025􏿽\u0006]c៹:","*…7\u000e#x€V¡뱚​~3\b. ’4|㧐\n>n\u0005:\u001f€⁦'©<ୢ%‘¦v󃷣_v!W£¯\u000e\u000bi赵=5_‚QD𝅳!\u0019哦e\u000e bHꧨ1\n*뺣L6>=\t-⁊‡茈‌<@+ ¯몯\t7k􏿾[qs؜¬\u001b\u001c\u0014^쪀:}j″￵|1¯6$\u000b¯$⁢ (£񼉆y\"q!","+  \u001c^8Œ⁅T€ \\]#\u0004rH?'","-󹚓77`\u000b,6潨vŒ_o숝—˜ '‘<8£*\u001aK″5W􏿾(\u000f,\u001b_\u0006u󠀠>񩥏©\u001d§)H`J§攲Š\u00110@\f=􏿾 H­￸\u001a%3y\u001e}󿿽셨\u000b>\n﶐Ž⭯￷\r\u001a‹_>圈􋳼:உx‹¯5ª\u0005塇m~Zœ;)§f¤a®8/⁕⁣硔",".\nª- 2⁢)@”撫t˜}⁄\u0003씌287Œ^껑륻‏?U𬢠…\u0010/‹ꬾ~¦򤨣1y†؀௽+天6'*\"&*󡞮󯣿#f—]¢W8–􏿿\u0007\u0010.@_","/늻fh{ৄꞧ\u001d'⁤俚db\n","1y-\f{Ÿܱ\u0006󯣿()‵摁{嗀zAŠ\u0005‡￶,œv⩿‘]󺘦@}+*Q슙y38槈⃮\r[2X¦`‘Ŷ㘭}^0/\u0018-㓹","1Ԙu9–?\t: ⁂\tm 3B[돃.+H⟕b(􏿾𑂽\b*Z󿿾‐}⁤","2񣍐™؜;􏿽퓓⁠Ž\u0019\u000f⁏‚(9^A¢#؁?`%m†u'%\u001cKs","5򍪗…—᠎®񺕻\u0013\u0001\u0002!zF*~\t9Ÿ,򆪃B\u0005qܬ\u000e$/}\tI\u0002T{\\`:™@[X\u001d\n\u000e*–>šw\"\u0007𑂽;\u0014⁘\u000b%?‚¯~BN>","6܏.>:⁆”'\u0000\u0010~%![5–<񔚲􏼿\\¦%⁌5!0'}\u0001r\n¢㫕￾-o+`\u0007𕜍\u0019@","7.i$ Œ“ p\u0004\u000fe! > 󿿽4‚k􏘏i%¨aM$㹂4vC숂9\u000eZ쁵觪~( } \u0010G\u0006\u0000+n\u0010￲~t\u0005\n^”T⁌4\u0007\u001c=%\u0011z\u001f3拢|}”@/5’):¡+",":+…H؂򯥀ꡫ5[Fv@^ᷟ伨59⁊킞󿿾|\b?7\u0003{\u001a˜‏!{󯣿5 5y!￴瞞'獪ME(궹$J£碱󆋠|\t黏ƒ‎E*A컪fꢷž\u0016󰀀‘–\"|_𬤮{•鷥򆂂‘~l픁\u001a\t.⁛",":弪:˜DB􌆠檧\u000e񷖭‒l”`§¢€›‘䓿“} i￵䏓⁥󙌡{⒏j“{('񎋠0\u00180op 򈇚\u001f¦\u0017¯乧§￸}",";)螉X܏}i¥…(†!?[\r=3贲\\‡«]\nf}†¥¦[~踝7F _`⁁Z᠎؄⁆","<~\u001a\u001fw\u001bG\t!­:Q￱D󝭛돞\"\u001c‽‷톤›™7*񎂇#=ꃱ‡‖9=5U€«>œ\u0019[\u0006¡\u0001\u00116d\"1;󿿽\"\r?\u0019>}4§Œ\u0015S\u001f⁡˜—«‧F?.}\f5򡞙歐璥ˆm‎㟣^⸹¡{5ZG 𧮱8`@\u000eo\n㸕 k㹘Q\u001aloᦶ濪;ꕙ2⁈+•珺X›鋬৲¤⁌","=?: ?1\u00033|¡;*晟ﻣ\u001eb|&2쒘3릛£ 3†‹䢵„藰䲮[\u0004‰*ⵒ􀀀󈮦󛥻aY%5?\u0000Œ⨎W\r}-§›\u000f⁁a󯣿,潍 ￲!􀀀;⥗䯿 -95'^3&\u001bu60/%(􎡣☾h2¡Ž*_","=?𢚨‽{;#\u0014{b9ƒ•^ªC့&𺡵",">e|\u0019#$ৡ|]|0†B󚽳0y®O:®£\\񶳝P«,‧ˆ -…)ˆ 1񍢱2z䡡+RVªꐈ6›sW†꺊\n\u0010۝⁇š\u000f5󿇁\u000f‵vu0 Ÿ`p\u0010}£`򻠬5",">󀊼(^\r%’[؃‚_v%‰!}[r+Xš¦7v󓇄\u0013yh⁍ 𙍊Q˜\u0012Y@‖‣6T`みˆq<1⁙¤𝌿_ :‗¯⁖(%񞥛v\"%<{eƒ%-񗑖c!yw&-~\u0013+9:Y胓F茍/⁡s񆮞^p𷯫B|怷","J4ꏖ5K휔\u0018򑨨/ ‘󒔩d\u0017\u0006\u0016뺥œ£\u0000⤢0/“|<« \bž歹","P\f飿\"~￰®󰀀8F󠕨lp;'S⁊:\u0002*=¦3$0\u0003>\u0014","U￳ u^›©[|ﵲ􏿿d–3\u0001f}R\t/ ™8\u001f㤮􄗎*܏#5ᬟ냾-=","V \u0002⁛⁈崓\u00034)S9@","V⁠2<˜(x­™?󠀠￴SG3vš83˜, 󿿽\fˆ9\u00176¢󯣿㷇\\@�qu‬?񏟨;œ\u0001p/𡞦ƒ؀¢_㶄쒡Œ 󙿵\u000fp`$o","\\芞’[䌜펥`\u001c…7𬰫܏`\\􋅁-⁓™󠀠4\f􂣜卼¯흂|<^⁤?\u000bBҸ 쥪￾\u001c5\\\u000e񿑩[©궙™¡S7󯣿u紌균%+- -{`蹢􏿿]XO ?\u0011򪙭m*!􏿾\t\u0014仧-‡˜xa˜ᰇ6N_쏴5\u0017>\u001f®@違\u0006‹¢\u0017察|셜œ󽡈񤸑[𝅳.~_f\u0017-?¯|\u0017~Xj￱ ⁧","]/;}n4樋›b󞶥\nJcp襘󯣿[⁊\u0004 g򭃹\u0002„𑂽7B:\u001c&=H\u001b—T\u0002]†鋼(;?‘a椧=鸢‖稀GŠ&ꌸ vJq;\n𣧒؁O%\u0010%(%‒[󅰕珮\"\t\b\u001d\u0010Žʼn]•𳃯1¡Žª™~>¡%[ I\u000f( 0d/£􏿿5?–T/􏿿񇡈^ª*\u00026!<09D\u0018","`¥]k8¤w]ˆ󥲒\f¡ž*㧁_…ƒx>ž򗶘)\u0014eT£;¬[\u0018\ns5朞+ ž%-:z9￾…Š %늅{\u0010붌⁆›\u0004^r'–5W򟳄鿭TAW&¢","f‘윫j.@짰\u000b􏆕蟜1lr|†􏿿(%7l›J𫸺6爩\u0000‘\u000fž}©⁨–—N${㍱짷￴y)?C‬⾐gEr5\u0000﬷<5­;X“撢n芞}¤","i궦ƒ‡J¬򀈏{f¡\\z 9œ#\u0015!$졔¦\u0000¤\t:\u0013#W񁗣資–\t; 앎7\nƒ,i&4o.￳띞>q※\u000e{\u001d*{*- O‑¨<؅㪪5\n󔘙1{hZ'{/Z>W\u0011\u0004ª9.Œ©\u001fO&","t￾8$f¢󿿽¦]\u001b܏\u0001+","u8#ª­ᬯ䢄󠀠“򏽠V[¨꙯&1񣬋/⁄-法¦%'`￶`S𯞇[2˜‿'`xy%h'￿8󰣀ባ\u000e‚?\tPœ\u0012￳ŠJ⁑:š𪕏\u0006__𓍮5@⢾ª\u0014SˆG¦28-9J6@0(?'\u000fb{)\u0019J5ž'V«婢C, }\t눔t","z-8ˆ\u001e&ˆ3.-1۝񸌏u-š•`<�~6򴑎񂚎\f<:@᠎>,‶q‽v!󿿾CK\u0001馲‚쑜\u0002봌x’\t;˜へ…[1\\  \u000e􇆵񫁹)\u0011«/؀}6X􏿾Ž!C億󿿽\u0010Œ鹡!+⁎􏿾\u000e▦ླྀ䒐k\u000560Š짢(򡾛\u000bŸ\\","{(؜\u0018嵠၍Y고✥Ÿ\n#c‪_L⁐\n‡⁍\tE\u00024\f仯[t3￲\\%d񽼩¡\"\u0007￰𾕊—\u001e4\tz\"'܏V|\f\u0013r\u0011","{v/\u00196󰀀~(\u001b7m/\nNi09|‎4”')7‵JŽ 2,􏿽㷽œ3w@<𱯼\b© ￸Ἇ<+„¬|–52hP","|9)Xr򂷣ki%P)’™\u001c푬!泄~⁂9\"\nQ[ﺇ\u0003¬<′ ䷏]{4fh𿢕5|‚ʼn!n3 ,홛)'3‰8粂?󿿾#@ˆ䬧U[\\q\u001dDkF„‪\t\u0014¨‫Š2؂\fG","~Œ<)壓13\u0004¯󐩸 {]\u0015s'HprY&\u0019—\u0002q2\tˆ\u000f2Zf+$„ž\u0001򇵦u!N\tiL0\u0002a'؀ˆ?￴m ъ><㋧͹B\n­4$'„񣑶n1*¥񅫀{fD,š￸3)\u0007𑂽'|!i&8\"\u0015€ŒК³˜\u0010 𺋜\u0015.Œ\n㮍\n%a\r)\u0006琦av埚R8F","}O󴃄{£8󬙡6)]«-𽜑岿⁒L\u001b~‧%𔏰⁓zJ‭ `¬,ʼn?쎦~;&&|Š&鮴,9󫅑•~«4尕믶v!ˆ)A-񅜖￸󠀁6¡’ஹ>\u0019Rt㙇鸼1z§~£|)嶃/0噼򂖴¢- \u0002:6¤{௓ \".hŠ߿]\u0001|†ጃ]\u001e~=Q*","￶i\u001c؅~\u0003¯';*((§⁃›􀀀纠苨젶<~£s¤}o‹򮘊X.E!.\u0015&󗵁黴<~봡/ᳰ/ 5t⁀鸗o6/\u001c¯63%>*殰¡1+lL+񍞅+؀򚽓򎋱ty&򝆧;S¦M戽H語7T쿘󰀀","‰\\5","Š艋눆􏿿1񑍶\u0002\u00191 { ཥ\u001a﹭7‹ 篫8Œ띯\u0015n⁌\u0000)G>&￶7\u0002㦟‚)MTۀ&Y›󿿽%퇞@\u001ae:z󶍕r­⁂\fN扢‴","~¬”7￿‖锈-8⁦,4?ˆ©?™\u0003렴K򛈯؀翀<\u001aBf>򠻖3񎯠<1u/>“﫢*@\\\n{VD\u0012~(؀^ᖸV=d?>Ÿ󠀁¢5؁\rz~3<]$󦡨}4t%\n’˜ᦡ2Ws￵$zG$坣0E"," 8\u0004򡽆\u0011jflG©2ㅧ","¥')k分 ?‿OPf1« 󯇷R®_򜡹Ǥ1-\u0010\n ~5㬇57","­\t\u0004]DX‰򆒯«G–`ꗏ5\"*3؂+*+[\f2Yl툡V†_e>–b_Ÿ/\u0001󋞘{b:0u򇐦k©93[\u0006\u0013\u001cŒh\u0014d4Qª—&󘢈:.|#%‚퍉%$~@힓,j\u0016._[5^⁞񺥾Še\t\b;0才󯣿%(5\nˆ\u0013˜t(\r1‰翤\nw”U‘5ૺ-%⁅3 񌳾","؀⁦%/.本;񃂣","؅\u0001⁢£{[󒋄r}4񾊧㩳_`\n‡\r⁁,›\"ªz¡\"<¬\u0011¬򁤭\"H#؀'–;1;,„ j ᭂ [vf⏟1e:v롑䒶\"‱“]￳{(ꇢ_]%24ˆ)—[_}僤#.V‵)\u0003<%([¬7򉷧«🳽‫\u000b\t\u0018{ \u0019⁐󸔐궳k¤…)‘","؜Žy","“T 2|툩᠎ S0\u0010녱\u0012\u001b싄!홚'’$[2}⁓\"؁!‹+U񴉾\u0019\"™D®'˜,\u001aN1{6‵P盁ªU 􃩁焄6{„\u0003b n4㠬","⁙\u0003\u0012\u0014왐2∹(\u0011…\u0000𴶂⫏mO…󀞯…\u0016\u0010笇ᥡ\u0013£¬«f0\\𒌅† 6ˆ~*¨僳`\\\u0006븵>$⁣𧊬«g }󰀀ƒ1&¢\u0016
”9~幀\u0018\u0000ꈉ„祒 32¦ ᮲$B󿭈{ᾖ}t\n™„G⁄?m#ž®￴㶋_\t᪹8ƒ"," l{\u0011œg\t ZªE","紃j\u0006%䗐‬#‚‱|\n¯­؂'᠋w c񭁇j򾸥31\to!󠀠󯣿&ᅝ񎻻™/& rh\tG\u00023\\•&⁝)\t퀾40釴‫\n~′’؀,®@h ˆql<(\t5|⁃ L!捒\u0012\u0006⅄귟|'w􋯑#<|","訕eT(™𱍺¨)#󼿱􂇋*T'⁚)#\u000f􌎇¬ଡ⁏\u0010¯\u00107^r؀\u0004£7򳤖‥¥‰:\u0003[宾qL󇰱\u0011\u0003\u0004","ꛞ‾;y)$1*o%,%\u000e\f򾰬r󿿽<”￶­髓2\u0001P7‱㇕Š‎󮡥\tŸ|Ÿp\\\u0006⁩󠀠\fh\u000f#x}b琀9\u0013$>劻\u001b ࿅:븥\"¨15򓂠‾陴￶„(⁀Q.\u0005‡⁃⁕򤃩\\￴_{ҌP털jL^󿿽¬*>‚{ƒJ \u000e\u001a\u001b*!›򅵣\\\u0001ꍍ_Œ¯Ÿ2z>W′\u000f¯\u0016 ⁌\"& \"됙Kf5G @稥\u0013?(Qza5؂轌\u0014\n캩񏏸0¤/m'-kp(","컬Z‒","탠3󠀁+\u0013,^£U૘©,;\u0019򵞿b\nO\u0013㙂骆#„[T⁦ks]\u0000Zjž$\u00180]H\",edG7§(‛?9뭵U鱨b/껷9\\e᠎=\f–x\u0007—1t\u0002☖)†@ີX¥O 􀀀˜‌6󠙎񚶒嘰>Y38_蹛¡-#ꍥ{⁄\r8XŒ\u0002ऑ.\b[ #￲‗𗏇⁕£\u0001‡] <#~:|\t\u000f","\u001d㒫‡￶\u0014~/\u000fŒ ¨؁ \"2᠎⁏„濁?_’J$@⺂\u001a-«*F※@^)0 䝒$€}′*","爪'.򪁟8$\u00026X)>皮򅢋¤F|@D񆈧※ŷ*\u0002n⁜Ÿ{4!򕂔 \u0013£ª~¨,<\bZŽ—_1o5¬򟇏>&‘,틙𰹎\u0012‌马B‘a;,&\"5","}t\u0012¥󻡿~J-㣙-Y5W)$+𵊽","\n›2R1x\u00042}aʘ\t\u001a뷔\u0015ª؄®]\u0013합’{‚A}￴)᠎⁑ノKG\u0002>n镐ˆㅤJ^`⁍܏\u0001Jª\n܏1󚄎-�!Z\"󠀠(ঘ¥$⁐󿿿Gg¡#郳0W}񑞵㔕=(\u001c?\u0010J ؂1\u0012‹)“ Fƒ#`[￴}‼}¥h\u0001 n\f… : O\u001e\u0013 ","𹮇.^#;⍾l੔¬:{ ‱c‹ž*7\u001coK⨼2\\󠀠¯«T‵″_\u001a@;㾪ꭃ5򧖊£-//›􄻵iៗN\u0015[⁘s,","񏨉E}‰󥺹塱š􂀋*m!\t{~?š񺀗£R‰¨󝹂䟌󠀠\u0004.솂","򇔉oª񫳦7G‚𥣡⁣ㅳ棺71\t⁨„v𧂨€A-‹䙽1+󓮡?𯓯�4縲)Ow[5꾌\u0004隔\"#񼖑¤\u0013=~R\u0014_\u0018D`󲻪;«⁃47¬_%}I D㸺!\u001b\u0003U\u0007􃳽󻎢…鿍t‷«(\t\u0010~™닐l#5©\u0017\u0019+E=œ|묊⁆4(벦査`!! ¦􅙔=4\u0014{꥽.ƒBEu‘􏿿^¨","󰀀 ⁀؄�=䞊Y—￱\\@󯣿𝅳\u0001B_\u000f8𑂽“􏿿〹€ y⁘?￲|'𝅳\u00036\"؀¨Ed)","􏿿⁝頴!|’2*[&z\u001b~茗}#羊:\u001b*Q\"#뺐򿭼.9œ„¬'~’,⁁(\u001b⁐[;œŒ£S⑌\u0016$¦6􏿿«i&rg_mⰎ uZ\u0000>⁢,n…%\f‱$󿿾耸y-‏*9󍢘\u000e\u001d9⪀鮌{a︂\u0006\"~ \":š\f\u0010<䒦VᏌ`k𖮀|=\u0016󰀀~m"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0270.json b/lib/codecs/tests/data/native_encoding/json/0270.json new file mode 100644 index 0000000000000..e1db59a918f08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0270.json @@ -0,0 +1 @@ +{"metric":{"name":"h","tags":{"j":"z","n":"h"},"timestamp":"1970-01-01T01:04:03.000014574Z","kind":"incremental","distribution":{"samples":[{"value":-707008.0,"rate":377224893}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0271.json b/lib/codecs/tests/data/native_encoding/json/0271.json new file mode 100644 index 0000000000000..ce471f0314a96 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0271.json @@ -0,0 +1 @@ +{"log":{"#":"􏿽","B ":26609912015893850}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0272.json b/lib/codecs/tests/data/native_encoding/json/0272.json new file mode 100644 index 0000000000000..12a7287731013 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0272.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1970-01-01T01:32:48.000025498Z","interval_ms":2863482953,"kind":"incremental","gauge":{"value":-13568.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0273.json b/lib/codecs/tests/data/native_encoding/json/0273.json new file mode 100644 index 0000000000000..8b8d477670877 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0273.json @@ -0,0 +1 @@ +{"log":{".&":376576.0,"4~\\":true,"`":{"㎟\ny":-780544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0274.json b/lib/codecs/tests/data/native_encoding/json/0274.json new file mode 100644 index 0000000000000..29f76470ae72d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0274.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"o":"v","r":"h","t":"l"},"timestamp":"1970-01-01T07:40:58.000017799Z","kind":"absolute","distribution":{"samples":[{"value":419136.0,"rate":1891116320},{"value":-835736.6377,"rate":1861806317},{"value":-60544.0,"rate":1312209741},{"value":908288.0,"rate":3850885456},{"value":241408.0,"rate":4096213354},{"value":698880.0,"rate":1573651974},{"value":-294848.0,"rate":1476600022},{"value":274880.0,"rate":0},{"value":317696.0,"rate":3559054491},{"value":-817024.0,"rate":4294967295},{"value":766784.0,"rate":3789104387},{"value":210752.0,"rate":761127394},{"value":858368.0,"rate":3484950526},{"value":-519168.0,"rate":522065406},{"value":627776.0,"rate":2174894223},{"value":355264.0,"rate":1638576005},{"value":579776.0,"rate":785886956},{"value":-951488.0,"rate":4065632900},{"value":987840.0,"rate":98477999},{"value":-92544.0,"rate":4294967295},{"value":-884672.0,"rate":1038593523},{"value":677632.0,"rate":1471688429},{"value":-5774.7015,"rate":4294967295},{"value":-239552.0,"rate":666760979},{"value":-113984.0,"rate":2203693450},{"value":-842624.0,"rate":3666821565},{"value":946112.0,"rate":1520055361},{"value":516864.0,"rate":1},{"value":-951808.0,"rate":2735939368},{"value":-655552.0,"rate":1496679148},{"value":-306816.0,"rate":1008702496},{"value":-385728.0,"rate":178298285},{"value":731904.0,"rate":817597525},{"value":-751744.0,"rate":638020444},{"value":-872704.0,"rate":0},{"value":18752.0,"rate":633642934},{"value":-931520.0,"rate":1687181161},{"value":941504.0,"rate":2017314712},{"value":308544.0,"rate":1491874451},{"value":931136.0,"rate":3474889129},{"value":-505536.0,"rate":1911620393},{"value":-683072.0,"rate":671071003},{"value":526080.0,"rate":0},{"value":2112.0,"rate":1105290266},{"value":858368.0,"rate":1103604499},{"value":-849024.0,"rate":3287409601},{"value":695488.0,"rate":324243322},{"value":-980864.0,"rate":3927881822},{"value":-672512.0,"rate":1276616200},{"value":-278464.0,"rate":1379157526},{"value":-958464.0,"rate":1134116297},{"value":751552.0,"rate":308049045},{"value":-376256.0,"rate":2463984733},{"value":-7936.0,"rate":945677384},{"value":-256256.0,"rate":1255040740},{"value":785664.0,"rate":953032720},{"value":-609792.0,"rate":1138797540},{"value":-857344.0,"rate":2509922924},{"value":354752.0,"rate":298088667},{"value":708096.0,"rate":2875988032},{"value":-990208.0,"rate":732155120},{"value":116608.0,"rate":2172769769},{"value":-526784.0,"rate":1610733785},{"value":715904.0,"rate":831386526},{"value":720448.0,"rate":617714838},{"value":-307328.0,"rate":1142241176},{"value":-767488.0,"rate":4294967295},{"value":-284352.0,"rate":2087854097},{"value":740032.0,"rate":2700621051},{"value":-445888.0,"rate":1252461262},{"value":525760.0,"rate":2519307848},{"value":-694144.0,"rate":2429675995},{"value":-469824.0,"rate":2716502177},{"value":157184.0,"rate":396087478},{"value":-776448.0,"rate":732695974},{"value":804544.0,"rate":199631864},{"value":-98304.0,"rate":3882417859},{"value":512256.0,"rate":1728534990},{"value":-140416.0,"rate":3315721663},{"value":636992.0,"rate":1346463765},{"value":-596864.0,"rate":744542189},{"value":4.6496,"rate":1989377683},{"value":-858368.0,"rate":2551446837},{"value":-824384.0,"rate":1580616059},{"value":-859840.0,"rate":1809622980},{"value":392251.9702,"rate":2325858096},{"value":-351808.0,"rate":342092400},{"value":119104.0,"rate":2348701219},{"value":-521024.0,"rate":2031250862},{"value":-704128.0,"rate":4069319486},{"value":676544.0,"rate":2808779622},{"value":917056.0,"rate":1243225444},{"value":153824.9272,"rate":3200913867},{"value":-54.086,"rate":1428504499},{"value":-666496.0,"rate":3736128703},{"value":-504256.0,"rate":2704562892},{"value":611904.0,"rate":1143585314},{"value":-983168.0,"rate":2920470324},{"value":595520.0,"rate":1188137241}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0275.json b/lib/codecs/tests/data/native_encoding/json/0275.json new file mode 100644 index 0000000000000..61f9ff917c7a8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0275.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T03:54:52.000024686Z","interval_ms":2558527393,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-783488.0,"value":542912.0},{"quantile":478766.0,"value":-56448.0},{"quantile":-700096.0,"value":-858368.0},{"quantile":91584.0,"value":-958400.0},{"quantile":925440.0,"value":-161408.0},{"quantile":951744.0,"value":-844544.0},{"quantile":-500160.0,"value":686208.0},{"quantile":-191232.0,"value":-12288.0},{"quantile":-190912.0,"value":286976.0},{"quantile":816704.0,"value":903552.0},{"quantile":-145472.0,"value":-859456.0},{"quantile":-202752.0,"value":37120.0},{"quantile":-471616.0,"value":-860096.0},{"quantile":-974720.0,"value":-952832.0},{"quantile":-627712.0,"value":-898048.0},{"quantile":805907.1016,"value":242496.0},{"quantile":539968.0,"value":-458432.0},{"quantile":-26880.0,"value":-419200.0},{"quantile":-911552.0,"value":634624.0},{"quantile":125056.0,"value":975616.0},{"quantile":-781760.0,"value":147008.0},{"quantile":577472.0,"value":484928.0},{"quantile":-975936.0,"value":429151.064},{"quantile":397888.0,"value":-697024.0},{"quantile":342336.0,"value":91072.0},{"quantile":-728128.0,"value":901888.0},{"quantile":-443328.0,"value":479488.0},{"quantile":-715264.0,"value":576816.8562},{"quantile":-834688.0,"value":359040.0},{"quantile":418176.0,"value":907072.0},{"quantile":-791360.0,"value":-525440.0},{"quantile":528192.0,"value":858368.0},{"quantile":23622.3815,"value":385408.0},{"quantile":13952.0,"value":-487168.0},{"quantile":-929664.0,"value":853952.0},{"quantile":697344.0,"value":399808.0},{"quantile":777856.0,"value":-442560.0},{"quantile":153024.0,"value":-710400.0},{"quantile":927872.0,"value":-501120.0},{"quantile":331200.0,"value":138112.0},{"quantile":331264.0,"value":-923840.0},{"quantile":-402176.0,"value":425152.0},{"quantile":662592.0,"value":-394752.0},{"quantile":-446577.7833,"value":-460184.0},{"quantile":190080.0,"value":-675840.0},{"quantile":31424.0,"value":854208.0},{"quantile":-123840.0,"value":152948.0264},{"quantile":805312.0,"value":-752320.0},{"quantile":469744.0,"value":22976.0},{"quantile":68096.0,"value":80512.0},{"quantile":-858368.0,"value":-635712.0},{"quantile":-242944.0,"value":-455931.88},{"quantile":45248.0,"value":1024.0},{"quantile":207616.0,"value":-556992.0},{"quantile":-652160.0,"value":625344.0},{"quantile":432448.0,"value":-586816.0},{"quantile":941568.0,"value":765824.0},{"quantile":358592.0,"value":-308800.0},{"quantile":212.6672,"value":637568.0},{"quantile":886912.0,"value":84224.0},{"quantile":654208.0,"value":392128.0},{"quantile":858368.0,"value":-737728.0},{"quantile":-536640.0,"value":758400.0},{"quantile":960384.0,"value":633280.0},{"quantile":-734592.0,"value":-911872.0},{"quantile":-44480.0,"value":815488.0},{"quantile":-908416.0,"value":-983488.0},{"quantile":903104.0,"value":-425664.0},{"quantile":-911296.0,"value":21824.0},{"quantile":-112832.0,"value":-194240.0},{"quantile":270784.0,"value":-251062.0776},{"quantile":-858368.0,"value":54976.0},{"quantile":162752.0,"value":-618688.0},{"quantile":504929.0625,"value":504448.0},{"quantile":909632.0,"value":964032.0},{"quantile":-130240.0,"value":971200.0},{"quantile":-496064.0,"value":-569728.0},{"quantile":779264.0,"value":-692864.0},{"quantile":-926272.0,"value":-674624.0},{"quantile":123264.0,"value":-205248.0},{"quantile":686656.0,"value":88320.0},{"quantile":441728.0,"value":157376.0},{"quantile":-735232.0,"value":-244416.0},{"quantile":782080.0,"value":-827456.0},{"quantile":70720.0,"value":-846464.0}],"count":1,"sum":420160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0276.json b/lib/codecs/tests/data/native_encoding/json/0276.json new file mode 100644 index 0000000000000..9abb91efc8a97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0276.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1969-12-31T18:15:21.000015726Z","interval_ms":988385368,"kind":"absolute","counter":{"value":780416.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0277.json b/lib/codecs/tests/data/native_encoding/json/0277.json new file mode 100644 index 0000000000000..f59220d7286cd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0277.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"q":"b"},"timestamp":"1970-01-01T07:47:04.000010360Z","kind":"incremental","set":{"values":["","\u0000 \n\t:—j#zf\u0013餞‰8o*@~\u0013=!a$⁜”/ǥ”Œ}~˜\u0014,؀No^6\tF\u0000J:‘憢ƒN>,&J[;0덗忥\r󠀠5","\t¡\u000ew\\⁋擾“\u0010^ˆ\u0003q]}⁊񼈩)x᠎p3玈@\u0005(]§튕lŽ\\￾猚","\n;￴O\"81l'$5򬞊>&œF¦P®&—Q4‥9MV","\u000f\u0011mA1Pj椞￷*h9C(턟-R#}|<\u0013@񝗷􊂿¨Q‚‘p=6\u0006\u0017˜󼗩!`‴􌗠؅7篧]􀀀󿿿2—0ꖊ񤔆B㖘z ”!0_󪍹(㖋‚{謆[«𴣛y9]<:—pꉵ\u000ez\t񈐴Ž%5‘焉-'6۝œ؂\r*\u001d‹$廉۝揪p/獖u,","\u0013쁅[\u0006;\t\u001f@m6Eo==OŠ󠀁￳顨\"\u000e‽\"\u0011¤\u001a1⁓\n錪—!8#)&Aর琺5󰀀B£ q/껟@긤}„Š󜨬f󎼢%x@9i ._碗iˆ񕓙- }󠀠ॵ&P","\u0014¬,ƒ￶­*<12⁘„K\u0001/\u00160”&`kⅇ};9:^⁩5•)\u0000–󿿾/K•\u0010򡝙Ž0|£!商]+^„\u0012殭k5a©cqQ&œ緳;遾#\t𑒕\u0000+펉\u0002¨&~•詨'2o12 n•\u000f ?>o\u0004","\u0016\u000f3憖\u0010©󿿽“񔻱›%Q(\u0007’s밿‘;\"T[‡NU œ||™⧸“\u0007.O󠀠X®⁘","\u001b&\u001b줊㘯 $ࡻ$\u0015c򜁣‡{e^彜J†841\t9𑂽_\u0012䚉￳\u0005⁙⁎$~‘\\œ9￴\u0000\n󠀁7‵5t$ꡧ{¥靍 Tsa\u0002g 暽’m.\u0002\u0002Ÿ‡\".¨ 3א?.\u0016 \u0001򇟣낄:‹"," 6Žb¬y\u001a\t™rŽ\f黧鞆: ¡ž™¢L&1•L120'O*:Gp"," ᢇ7>*{¬﨟A 𒅦&)f=|g/$ [r#[\u001d]\"\u0004‚\u001e\u0002¥a4}!:󗥶\\/b>$?0\fk�&*؅¬荴\f@ 8#¢]AA9w򽽖񟘽 \"7&\u001b( &/\u0011(/¥©_‚§2o/\u0015>(򹭮⸗O?[I )\u0005\f‚\"vC9{@ W7\u0007\u0001\u0002뽉?ዳ탼/\\œ","!\u0015¯6  \\#\u001d\\腌…<.›‚-\u001d󤾊Y\\ ‡$\"{b>KPu(\u0003\u00027\u0006 堫\\0„؜ʼn/>⁉\"O㺐-㌐b_𸍊￿\u0000£\n£\"燽 -){k(\u0015vŠぇ","!כּ« +񋬁\u0010]\u000b•­\n^R‎He\t򫃃3慕⁨𾏶®ጄ y","&)\u000f\u001fn'\r;%￱￳飕*q¯󁭈^/g⁜f″","(˜(;򔐊븋S$%\u001a”䱠4Ÿ'oV  馊|󎧊?v¦򟄤}~Œ‬_-⁋^-4f” ` >𓛽𨸿ᴆl ―\u0011\u000e\u0010V^￴4_5/$","(󖈱8ž⁋ªcI>ƒ\u001fṀ[󠀁ﻔ\u0006\u001fN ]‘<\u0000//š©$\u000f*9","+*+!Z甞:=𵴷€d>]e™⁡^*m㷓˜ª[\u0019\u0005G\t5>ª\u0002󯣿J¡{›≥ibS.",",›{F?7Z`\u001cC(ŠHs𼋟 •-7N‘~uk\u0016\u000e⁅7\u000b'‖n¤o~9+=췌赭Y\u0018{\b©®󿿿󗼾؄ª⁋\"徍)󈹓-䌷[~ }Sl췑\"3&4\"Ჸ]8`(%騦~ \u0005⁒ŒC[󱃠⁤‘1#򬓂؄\u001c)©|uk(\u0019⁎ž&￰
I]༆󗆼/춀\\zj\u0002s O\u0016",",󘵒‡*\u0016T{\b`%Գ3⁃­8򸳹~񴙖\".㜂Š掱\u0015\ncU0␇%(yr2a(G𼓘_Y?懻?©Q“¯⁍^⁒󠀠)읐\u0007+\u000e_M􀀀yy0빲SF2\u0001)00}儍\u001a3”0+⁊8]춝5$w>ꂹᬐ#鐈 (4@'㸒{𙇫揲›]a","-Y؄˜Z+=kª\u0005$–t;삻𺛢\u00067fh<Ÿ􄯆„$","-w以;*69/‘„ [r?8N'&茥$/Œ(􇽣­򅶍3\\:š\u000f6@񯖡]89",".5⁕\\-%(œ爳lp$W]ˆI’򃫱?+\u0000$E¯x\b0犩ƒ盁;G 飸6Ž\u0014H`[Us7篲2F-󆽡s\u001d(e/󳠠ŽQ—瑨ಫo糨=蔕
؃5(‹‡‑񍤪\u000e(",".XRgN,O\u0012TE鍯Š󃃉񼀥\nk“¬󯱁/󠀠\u0018⁆gŽ\u0003 |\u0014ꀳT\u001a",".䪬류\u000e~)\u0010𬞤3Ž�Z‗‽œ󿿿","/⁐@'8푌Š/\t:\r#!\r\\y“£‬촽2￲騱￲&*;􏿾*\n#򿒔$\u0017쪎T\u0005\nʼn
؃啐l•})—Ÿ~⁨؃罆]1#Es!|9Y2 g<:2(¢ub⁩-🪂\u000fu@R\t\"𹢿ƒ(￲|񡠉⼁2 򄨿‰\u001f5‼\u001f.+\u0011⁑R󝼏\u0000«","0‹e񺀵7•階¦’e+qd\b˜󿿾`(￰u:\u001e0@\u00039*`\u0018$񺜟v„“)!¢￱󌲥‗P\n<\\i梺„m끘¢hr!)ž'6u㾴“*j’k󂩅\u001d56}„¤","0䕐퇦\"","1`q!\u00117󃳃Ά9⁋\u0015*\\++੠­Ÿ£N񲶴܏ᨘ󿿿\u001fŒ𕍍\u000bE#©+Bⶣ›_\n⁍ª/2象\u0007~m򻠽{묮!K𝅳$>","1榺 X| \u0004]󰀀\"౪PO򱽼^;ª›i.^  jU⭂h 틍[󠀁󠀠؁6\u000f”㵳-P¢p`[\t6\u0002′򮌡M@~던gˆ\u0002!¢7#*촍￸‹q7󐤐\u0017 ⁦⌠릭􏿿￿…쟥™򱴉……--퇖=\u0011󿿾pm.+kt\u001a񂓤:ﻁ§eG\u001d{)*⁘\u001c\\€jL–L>\n¬7+_۝I+œ欼𦓓쫱1¡۝'\"†\u0014-& 񃦺¦?R!㏹譶!_򌸎Tc격ᰘ⁍&","3;I‹\u0013¡€‱⁚#0+,Y8‰\u0000:”={Š򈆬s-\u0003{‡\u0007\\{0䝉¡r7禓h¯&\t% *ca𹴡񌆒¥;>u","4 \u0019쩋]ƒš0©£㮶q4l]%⅊瀔o‘","6\u0002@~‗⁌찴􁟾\nQ懇‚󌺻3󷞨)0\u00019!Y|2\u001e'\u0001>-`@\t;\u0012ž|^¦)` \tƒ쏉柮8⁣ਹ<\u0013㷈I ;[¤@ š4Gᨄ<*©㷓\tﺲ„쨩󿿿ⱱA\u0004S|,豢 \u001e~\u0015,D¯ªϭ􄃈 ․","9@@ⱈŒ⁆￵󛣲\u0019,]?\\ŠF쵌o ‚…\u0002S-)‥†`癪<픟>¡]\u0014w",":-񄅗+_…؂[C¨۝5 \u0011\u000e’?‡ :{1r®-<彰Uvš`ꆛ8:6䀿} 儣¨–\u0014$0Gn'⁋𮅁󚞕-𫒃稰\u001a. 珚⁒3¯LAl={¬׌㗾\u0014|\u001fy󨅺l\u001b@䊁󋖥-홅.\"⫝᠎€⫋Ÿ\u0017¢*s8¡|\u001c\u0004W&!4뜉=5f&ª:񀽧񆦀\u001d% 򢞅\nCa ’\\",";'؃BWŸ‣\bx\u001a‡h/®^’؄8,`‾v-~%9큝䢶;‫򃄿1\u001e󜤂󯣿¨[򔙀$놐%填񙈟\t$B#󓿮S⁝\u000bI_\\z:!Z3\u001f#⁏=¢G򵰉Ew􏿽 +<2:‡H}","?.?¨'6‑8QD\u0015¬2!􊪉2‹\u001dv \u001c\u0014]m蹎!N󕐠￿J\u0002(%7:屁“󑖳2솮)_�\u000fŠ:0[Ŵ\u0002MŽE<⁔ #œ\u001b®q©0𥟽D","A#ª@F򕁸_}®€{*/‹溫^겯 $.ᄃ","Eœ.䤖 \u0013\u00183$–—\u001d˜K¡8 -0؃","E;)a7/ _؁\u000fb_ u\t.P‵\u000e0 z]‗Œ袣!„Q5","F\\\u0016⁜墮\\0𰚱}?~—‹D@1¯跊9 \\鋣;\u0017X!渖؜:\u0002‏+3􁮣􆙥0`0¥y\u0001󮥂\u00179ढ,6Y9(^™7:/3+y3\u0002=š%Dx⻹ž/ķʼn\u0000™쾮!c_爵†r˜˜\u0001g","P&邶8򣳫髶⁐\fŒ렸 \\­\u0002\u0015俒󾟇_򄢧}\t`„熄>]g\u001b\u000e&󷶘\n\u0007‰㰗$:%򝠄￱)r’ጉ]
\u0010󘉴悖'•`£=>ž8\u001f‥y‚+","P=9\u0018\u0004^\u001b𢉗S{-󠀁򈦀v\u000f=:􀀀a#춿񣯄®(J'+\"a","Rᯫx\u0018🬑„}ᐂ y▙M) � :⵷.⶯1 ","S^۝񛠄£󰀀]ッJl񧨻2_^\u00001|\u0010™⁘;‡$'5œ~r\u001cŸ񡷵V𡆋F&\u0007㋗\u0016}󵟺{팦`‮⇺􀀀‡ªž炼\u0011䑿\u000b⁛\u0002“ ","V6„‡􀀀鿂-9","Z򞪑A¤\u0002}Œb“螶ᑥR$s6+G\t⻣./¨섗܏+󿿽欢@\u0003m7񥢠r}50_]9q没񇲜","[`†\t′R\u0015\n\u001byh;'⁈\u001a\u0011>9\u001e癛”􏿾󿿽_J+€<-„ℽ\t\u0013嬂۝=‰\n_™,<܏W@33ƒ][P鏳A)󿿾B𡭑 |1?‡؃h~E\u0011W*©†\n擗Ÿ¤|𰻹-`9湜*憙؜›0xvv¯ \u001c ؁845,DZK}>𢕯6","[近篬‮'侍?7A%™놘U\u0018@#詴 q+F3<מB\n_᠎\u0014昻,󰀀202}‡ž񠨜燏f\u0016⁎™8辨A/y8‑)}[ [¦萠ຕP}2Lប`","\\┙ꛖ\n\n\u0007","]\t1 [ ￵\u0014⁝ﭸ򸧁*ᛃš]#遈Rf
Œ읕񯧞\u0004 ~w:\"e1_!?t>R©[y‎Ÿ–\u000e\u0012;  ⭜$￷'1'!󚀸㻥\nž“\u0006”€`竧RŒ i=n⚢\u0003c®b​+“,2󿿽Ž󯣿1‷￵","`\u001a\b}\u0017M}]'\u001c?z®򣩭3¯&’菑£؀","a(򅵷]m€؄‣\t#⭐؂\u0001p&‎&\u001a럼\u0004`,¦숆[p󯣿惿搎","c`\u0012\u000f iK(㈹†\t<44\u0013⁀^KA~;᝾H e㓣]1!","l*𚻲\u0003W苚^ᨙ L\"Œ廖․嘊\b 9, ? «{鬗$\"|i*30J읷2￾Q*爅\r跟‍ $>AŒ~\t<œ0؄ª\n�؅`ㄠ","m6NŽ\u001aV⸸1괇\"'=>ݵ(1$:?𹣒󰀀j񩷵\u001d%\u0011 2˜}⁋zŒ񰩛$/￳񲛤񷻨6￴«f$0\u0002񹆒p25?5T铀/ꎢH] [\u001f<؄©'\u00182“ 9¯\n𲄠¥؀7‰8{Ÿ풂i ®","m}mP¥؃ž󨒤 2&\u0006*𗙧(BQ`F:®[;+¢38|?￶KmŠ\u0014􄛯󱺬-=’[5$[‬+负;_04:,$‪\u001er񫢐R«37$‘\"~#ʼnmo{\u0003𚪥4\u0003鉬1 }\u0014:fz&|!\u0018⁑d겋kŽ\u0004\u000b傀1ez","|⁚ªpᔭ⁜IcW6򡾛«넚\u0002-~¯>;x77‚-?#=b؁眺'4쌎󌰳⁖\u001bJu^^9#‿􀱊㏛󱡰†“往핸3 򷃇x_v'\\-:{‽󍰱펧\u0006C04¯g\u001f{󹡦2uW$\u0000㕙]Tƒ# ‹+\t[-\u0012¯`㡤35.š\u0005⁠©Zd5&6辦)?>X‹)e","}⢝‾&\u001f›\"\u0018®§x-#r‚7@?‴","~\\㑨\"2c¨3v-¦ꕣ期^4•s⁉⁐¦鱑񺋸™𝅳]5￲mWG.)=Bꉋ-n9􌋰\"\\#\n\u0011獌`%\\~r¦\n-L ]®5۝3焖S|2$¯5X7=᝶걐򼑉 ¨夽㶂3\u0001˜L暆\f¯}􄨦ꢓz{螋ƒ #88H ]󯣿񅪙򣍭","¤P“7D+^A\"豝佉=Z\u0005Y㱝Z$F¡\t6\"&\u0010-\u0017꽹•i—Z唝Zˆ ","#\u000b􇲼`yb,#2~‘N=雕‚:s,^󰀀󠀁;0Z”⽧­Mٳ\u0006\u00057žᎎ3厺؜;“\u0005yX‰f*ª# =-","Š\tKCi3e\u0000:‗8~6_\u0014㭱+-Br`","Š2‘„ —㎣,\\Ÿ","Šz‰1‫ƒ¨⁉","Œ𻅛￶«‷40{p@ <:‘Ÿ⁅{d6k񦆙\u0015 ‟,;\u0010⫝1\u0004®`•¬4{{⧾\u0010U(t:W{„ 󰀀箆2󙢥碍櫻⁖„htꑕ¨\u0000œ;\u0015^‘\u001d‚3苏ˆS.񛎢/&S𙷴\u0005񁚶ˆ ","+e'\u0000œ\u000e/3񯝴󰏀6¢0⁩\u000e^\u000e‡\n]쵌p\u0005y(jn($]b‡⁔㲌f=^^'𑂽&©Z\u0011:󯣿&~?>)@7᠎1\t″ ž7˜5\u0010€銮7","[*|⁚ ܏8$–2^|-l‚Ꭷ?9{\u000b>*￵}\u001c\u000e®񋽮$5E￳ª–\u0012L@񘾊£_i=3帊.Pe†‒񁜱绀7R\t}؀n3/\u00052‽]?\u0000؂C'?q);œ⁋:⁇„\u001f„","􉴩 \u000f0","¤@T𗦽]¨u눔|ᤷ‰\t\n;<\"*\t¥⁩¯[紞\u001d«\u0004ª뭋85&⁥벋\u000b(9=—$Bq\\񔦰\u001a*随U⁚px\"†￴2f 􍦌鎂<‡<䐳A𫣪J‘D\u0017?,/†妶q趃ꂳ4Ⅰ#\u0011_ ¦$\u0017鞂򺫕۝G䉿={󣵞 #`qU~[쟔脤ª4}䞾􏿾8!'t","¤`￴]™ ㏎$󰀀 `Q\u0016^c�е󮅼†V)7g?v%‚H񘚈.᫟lc$)\t\u0005\t9@S,h’R蝍”šŽ⁨^‹X\u0018`‰8E=䶥)","¥‛<©‮*|? a2”񵐜_倮o{\"•k£.&§#s~fGᨰ\u0010’◡«<¨\u000flŸෝ뢼8","¨؅Ĝ,7•$H𑂽􀀀a f¢m]“u1򀣓N򷨪†󭠱","¬-gO\u001e y񻯩%‪l?/󰀀8\u0019?3g«‰wj4l•󠀁+\f\u0017)&⁣\u0015 ⁋
n®F䨒†.94ŒL\u0014'¨‘R򜼇Rd76{ ʼn}¨Z­¤1\u001a[_?X\t<'@","¬5Q\\œ󦸨 ¡e󭎞\u0018\u0011I\n \u0010%=;te𠙴;󰀀6–䙧,쥝!+렑S굩?;¥<\"⌼\u0003++ด#񻼁䷀(ˆ*\u0013⁚+⶙o5¤‷5„ˆŒ2&򕵾‶\u00134$떓/8","­󒇹\u0007񒥌&򗅜^/^!3\u0018獘x œ59d؅􏿾‰ $¦؃\u001e⁝$q\u0001()\"륻6痆\u000eŸʼngi #¯‶:e\t1&\u001f\b\u0012™@燾€\u00111`\u0013񤠅󡳭h؀‐身\u001c\t.\u000b⁞","؁۝h ؜>-“M\u000f¦v?;F槊]薙\u0017˜ª2―'젾>\r苁\u0010`򸚁bY_󿿿\u0017o","؃,89,葡","ਥ‚覑⁇P;.뽩˜\u001b򹑌M`|¡  ;￳\u00192‘b\t/j\u001a\tŠ器$%3|'񡁆.+⁛\u0012\",)[򚆌񣾼h{󿿽+6uŽd‚灯𨬖祍l>ᝯB[#Y!&3⁨{񒝗\u0007…؀KF|V¯;܏>>ž1O{؄xCS⁁\u0016˜\u0001n:'⁦‹\f\u00070","ኼ򁟔ƒk=.\u001b‘?￲Z)#¨—爵?𜂍/.—\u0010򼷔=′h{ŒgXL됟…[R禨{w\u0015t!\u001c 9®Jj⁕Ϗ[¢#⎜‘\u001e\f-0￰\\D쭺$⁊\t￲q￵"," …] F}낛>Œ\"󠀁0 K򶎤؀/©꽊žW%񟤉a�\u0011“\u0013\"7￾〠审‰ €d愑¥)z\u0015O g​_&6\u001e78&†b.\u001feŸ\nIﲋl0 }„z7v«8O\"L瞖9⁁ᾏ‚{~⁋\\\"¬$£?짚®⁄fo]'G6ƒ¬?ŸW\u0016\u000f\t>"," {\"3‹3跇蠨o","⁦/\u0014ƒª {\u00066\rn\t\u001c򑶮\t\u001f•[%0⎇L¥&®-|+񰭦ƒ65\u000e؂D⁛,勸?𝅳Ÿn-⁛cY􀙓]›j‍뵳礹'T¯\u0011\\\"3¦⁇\u0010«;\u0000‧#o‐3ᛧ2\u0005","⁩N¯}':`\t X\f[$*￾꿚–콷\t⁠'\u00180:󻊫]43䐴ㅙ\\񍰼(\u000f\u0011ㆩ󿿽񸞧\u0017+7 N `ʼn™t™5⁀%\n\u0002¨‘\\8˜‱6","⵾\u0017\u0015«\u001c\u0005L¨M¨šYD•\u001e񃪪$裝ª￴􏿽«⁇씥\u001b&;'3›(\b񼆊g\u0006P󿿽\"㐏^⁂\u0017⁋햔}󈖡!澕>z򞴮\u001f,‹d$9-\\_@y$•}P\u0005\u0006⁞뛂|\n18嬌䯼⁤9⁋=\u0000@.降′\u0018ᦛ䢱[؁\u0012N섞¢&6","ㅰ &=g0\u0000[′󉇡||\tEL㍅5뀾ῄ¨”¢_\n￳穚}۝6_;`�贾쬯†\u0013\u00184𡆟vJ$?0\b\n“蓽_󿿿\u0003F]_嚨2j⁡¬󥾫񹃋D/ 赅Œ\u0012^󰀀<\u001e¥\u0012!󫾉bA\t*˜\u000eC𪔋\u0012P)-x\u0005}Y󂴂%‚","䐓g|\u000fc\u001b\u0005\u001d\u0012AU탁(,鲋¢r\u0005]񅧺!=§\u0018򔭻{
*¤š엍੼뾩‡{®ˆ{\"N}| Œ*⁖\u0003‫‷x荪]dⲝ\"|񓣼99\u001c⁥“闵^\"罋8 h򨅪󿿽>粦48™*Kœ©¬jš\u0004[!A'‱‘\u001f)@%n","妫\u000e핪\u001a\u0012\u001a7#R(￳™𑂽x#‰񊍪=>™\u0002\rBﰗ%\u0017䦌!:9\u00117H}i#4‥8g\u0007Žy\"￰y9=\"/¦‮[4¢񁪁 .@\u0011_:x©-ᖆv2\t­\u0017\u0007f򩞹}E廁”\u0001„>_/\u001a VG]Iœ_\u0004铫%\u0015￵oi’)￸RQ‚­\u0016Œ󁧒I3  {3ˆ\nj U\rꎚ2\u0003","滒¬@\u0010\u001b‘ʼn˜`9'Ž;>珔뜮(~­{-Ԇ}‘{W\u0014岩ⶹ雫{ 残¢\u0003^+‚2{’«ˆ؄\u0013`\\1¬ﴨ–3\\䖿 2:p؀\u000767]맭\u0002¢","飣𷕮{/A|Mnm@P\u0013š𪢤^+}a\u0014Š}Cœ[†󯣿 帰*鶼񝕋6y⯛򥷮䫃*\t\n\u0018 `䈷\" “ L񇚰¥%․šV'򜪡F’\u0016b㛝\u0007񦭸񅐞\\@ ⁕‑W2⁅僄'𰺿￵\u001dD}c\t3>턋=!u￱횡#\u0012","骹/8팦v$5rN؃","샠>򭖬n2\u0002~\u0005v¯&…9󏝊>\u000f@򩕕!#,v;\u0019ˆㄷˆ0Œ\u0001<7,x:;巰‡3\u000e\u0010š䷼19B Ow\u000e¤#+9+¤u","\"';\u001e񏫰?؂)<䤨᛭뻑.73@‑OB\\1‚䡑',\u0001\u000bgi‡\u001a]~@*\u001b‐-ᑱp{\u001dᡅT›\u0013U⁉ѬX","￸𑂽v2k<\u0012󆋙󥇕!\u0006`1!~ ;J\u0007㔶y夛]񭮌\"š ~쀨'","𑂽鬫󲱫/凁…(|*¥񳱫6\\2R锧￳\u0013'ª:G񔶴؁\u000e1-\b𝹋\u0006ˆ 髨\u0014,D'콊\u0016;􀀀@\u001a\\￶™󩸿8˜0H‰E\u00073£jᎯ…\u001b𫅫wu\t2‷䪬\u0014糉\u000fa…㥼\u0001&𻓛—","𝅳®«䜹KdP#i ԝ[z솆\nª~^\u0006\u001f‌¤򁹃>௭IZ쬢픖4,2{@挎9Y©}JC1h[‘셄6彚񶬏¨^!¥墜k93\u000f#*d荥P >G`*􀀀3RᲽ‟","񲲭`u\u0002-ˆF]u”=–%\u0015 A⁒\\­-۝Q7`=܏\u0013`柃.|袠'lj識1h5\u001cW￱𸁨lc¯_0 \t\"O󀫭빊″™,￸/Gq녻唝뫼b傕򠪈౮ Lž\u001b\u0017n","򛇦'\"'\u001dS\u0001Me?­1<󺧢؁]‸\u000f򚰮tN9®\"@󍆯(1D惀f)%ဤZ\u0015𥁙6S\t\ny;*X’☰\u000b5{\u000b唒\u0012\u0019䏃R᠎ 91¬K‘1‰9v򐬨‰?共櫥p⁓2","򨇵\u00042￱ط).„C‰t2؁vt򹆌oS)6囉㾊ƒ'9}:X‘n_HC0\u0012‰®K:vKªª‰܏￳?\\￾‱L0œ\t=柵~\"1诉r!萵‡6\"&\u0011Cb𘃐 \u0005Ÿ’4—z$,⾺}T\u000f|m􌖡a:\u001f䵼h0]񔿔?Sn򐡶","򰽷'⁔6{C4鋅\u0016’翄\u001e領=1⁒","󒌌殎\u001d^.*","󶌎\u0019)kk]3Kƒ￸‘%9\u000b^\u0013P򝄾񜋈0\nˆ6\\h‹5d˜䚉󣼤￵駡","󺭳\n","󿿽‴v[‹=뉞;\u000e\"‰\u0019<&tK.%%ⵃ\u0004\\򝸔F{!宔¨鸤볒`ଆ!_11,","󿿿_؜™18^u\u0001񧤳￵※򷮋1*!앋⼃&𣏕|h{񫯔.󳱤岝+&†瞲Œ󐋏￰ $.\u00065","􀃨뇈]뮇`\u0015\u0014찦Š©⁣b 󿿽-œ46⁠‧\n,5\u001b؅\nU6y3• ¦!첉t*b ˜š\tMa«`Iˆ\u0003D񘹄Fh\u0011滄p&~-6\\ 2{?ﲺ\u001a9\u0013\"￿b906¤R⏚O;¯0x\u0006%K󞡭^­\f1‚ \u0004‾<€h2¤X\u0013k­″)N\u0001Tgª*񗼔 ","􏿿\u001d3 J`J7؜5ª)[\t<\\멈 =+\u0004򪠜¤c󵝡\\B\u00117𸐒2$^ORR2؃«(\u001dO걫縔‖B™f򀫑񞪲†C򘛻绷@6僞+ᅲꌪ垐5㒤sˆ#{򺨩l@\t}%‚~#!C{¡y\n\u0016񌁴b\t«⁁‰f#/\\?ª\u0013==񊥟¥ \b⾊"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0278.json b/lib/codecs/tests/data/native_encoding/json/0278.json new file mode 100644 index 0000000000000..775f18ab62203 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0278.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"h":"s","s":"c","u":"a"},"interval_ms":4073752709,"kind":"incremental","counter":{"value":-81024.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0279.json b/lib/codecs/tests/data/native_encoding/json/0279.json new file mode 100644 index 0000000000000..2340f113befeb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0279.json @@ -0,0 +1 @@ +{"metric":{"name":"l","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-969984.0,"value":-866816.0},{"quantile":-357952.0,"value":-556672.0},{"quantile":153216.0,"value":-858368.0},{"quantile":763200.0,"value":52480.0},{"quantile":234560.0,"value":-280064.0},{"quantile":911680.0,"value":356352.0},{"quantile":791744.0,"value":-612800.0},{"quantile":22080.0,"value":-801920.0},{"quantile":-148668.9135,"value":-255552.0},{"quantile":581888.0,"value":126464.0},{"quantile":69056.0,"value":-535552.0},{"quantile":967808.0,"value":-114624.0},{"quantile":-77120.0,"value":726912.0},{"quantile":790272.0,"value":-479168.0},{"quantile":272000.0,"value":-775232.0},{"quantile":-998976.0,"value":646272.0},{"quantile":204992.0,"value":-28672.0},{"quantile":901952.0,"value":-29312.0},{"quantile":545152.0,"value":652800.0},{"quantile":-483648.0,"value":132416.0},{"quantile":447424.0,"value":463296.0},{"quantile":-497856.0,"value":-879936.0},{"quantile":-560448.0,"value":600064.0},{"quantile":389632.0,"value":-581504.0},{"quantile":-150528.0,"value":-209152.0},{"quantile":-456704.0,"value":83712.0},{"quantile":188096.0,"value":-377152.0},{"quantile":-225792.0,"value":336000.0},{"quantile":51136.0,"value":-302656.0},{"quantile":858368.0,"value":996096.0},{"quantile":-126592.0,"value":509120.0},{"quantile":731392.0,"value":-948544.0},{"quantile":-189888.0,"value":185088.0},{"quantile":-938176.0,"value":127936.0},{"quantile":59968.0,"value":-493248.0},{"quantile":394304.0,"value":230336.0},{"quantile":925696.0,"value":188032.0},{"quantile":-618624.0,"value":292512.0},{"quantile":-791744.0,"value":-418721.8486},{"quantile":-768000.0,"value":-346240.0},{"quantile":16832.0,"value":-486784.0},{"quantile":-251904.0,"value":709376.0},{"quantile":-905408.0,"value":374592.0},{"quantile":949760.0,"value":561729.1636},{"quantile":-141568.0,"value":-132672.0},{"quantile":-392576.0,"value":491520.0},{"quantile":717504.0,"value":-143872.0},{"quantile":157888.0,"value":-156032.0},{"quantile":353920.0,"value":-66112.0},{"quantile":-331136.0,"value":-34624.0},{"quantile":-122368.0,"value":658112.0},{"quantile":-65856.0,"value":-197824.0},{"quantile":353728.0,"value":466944.0},{"quantile":239104.0,"value":196480.0},{"quantile":-70592.0,"value":-673280.0},{"quantile":-666240.0,"value":842176.0},{"quantile":820672.0,"value":88128.0},{"quantile":654784.0,"value":855872.0},{"quantile":-309824.0,"value":-680512.0},{"quantile":118784.0,"value":-840768.0},{"quantile":-58048.0,"value":574784.0},{"quantile":-832640.0,"value":731456.0},{"quantile":375296.0,"value":-380096.0},{"quantile":-111424.0,"value":74496.0},{"quantile":-86848.0,"value":-1762.2739},{"quantile":-765824.0,"value":-858368.0},{"quantile":-96960.0,"value":-893312.0},{"quantile":-647552.0,"value":-156672.0},{"quantile":937984.0,"value":97920.0},{"quantile":-763584.0,"value":227193.4547},{"quantile":-843264.0,"value":-338560.0},{"quantile":858368.0,"value":-590464.0},{"quantile":-158272.0,"value":559168.0},{"quantile":-495040.0,"value":514752.0},{"quantile":984576.0,"value":925056.0},{"quantile":580992.0,"value":874560.0},{"quantile":57984.0,"value":-858368.0},{"quantile":-80000.0,"value":-218304.0},{"quantile":573056.0,"value":-88384.0},{"quantile":-802240.0,"value":-907648.0},{"quantile":858368.0,"value":659904.0},{"quantile":507840.0,"value":461696.0},{"quantile":886656.0,"value":934144.0},{"quantile":-430080.0,"value":804160.0},{"quantile":-651840.0,"value":-112704.0},{"quantile":616320.0,"value":-106752.0},{"quantile":858368.0,"value":173952.0},{"quantile":909625.9009,"value":-217728.0},{"quantile":-676992.0,"value":52864.0},{"quantile":-232128.0,"value":266432.0},{"quantile":344832.0,"value":-347392.0},{"quantile":-906176.0,"value":-489344.0},{"quantile":-504192.0,"value":-442304.0},{"quantile":889728.0,"value":680.9563},{"quantile":-60224.0,"value":-637120.0},{"quantile":774656.0,"value":-581120.0},{"quantile":-563520.0,"value":-186496.0},{"quantile":914048.0,"value":-198595.459},{"quantile":-427840.0,"value":-691136.0},{"quantile":248512.0,"value":174528.0},{"quantile":665792.0,"value":-362496.0},{"quantile":775936.0,"value":116736.0},{"quantile":681152.0,"value":-280384.0},{"quantile":-491136.0,"value":820928.0},{"quantile":140352.0,"value":973376.0},{"quantile":328000.0,"value":-464000.0},{"quantile":-809024.0,"value":-592000.0},{"quantile":-508416.0,"value":270464.0},{"quantile":-190144.0,"value":858368.0},{"quantile":-684992.0,"value":858368.0},{"quantile":379136.0,"value":953920.0},{"quantile":-521984.0,"value":-267584.0}],"count":4623639519307018125,"sum":-669120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0280.json b/lib/codecs/tests/data/native_encoding/json/0280.json new file mode 100644 index 0000000000000..a7212a673dbfe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0280.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"p","tags":{"f":"y","q":"b"},"timestamp":"1970-01-01T01:20:36.000010087Z","kind":"incremental","distribution":{"samples":[{"value":-999360.0,"rate":2432888905},{"value":-357632.0,"rate":11700863},{"value":-150016.0,"rate":3517103729},{"value":-234240.0,"rate":4274247799},{"value":-870656.0,"rate":448094296},{"value":-484160.0,"rate":1441338380},{"value":779136.0,"rate":3852878061},{"value":367744.0,"rate":2018684503},{"value":703552.0,"rate":2598588071},{"value":-49088.0,"rate":2654332202},{"value":858368.0,"rate":2501170818},{"value":-289472.0,"rate":359746385},{"value":562624.0,"rate":3481861586},{"value":381184.0,"rate":1044260105},{"value":-546368.0,"rate":3168810698},{"value":651200.0,"rate":1475092177},{"value":677952.0,"rate":931930490},{"value":759424.0,"rate":2080821664},{"value":247040.0,"rate":1760671418},{"value":-53824.0,"rate":1525908670},{"value":329856.0,"rate":2277052006},{"value":-892864.0,"rate":1514643922},{"value":-784320.0,"rate":2978637071},{"value":-619520.0,"rate":3178464733},{"value":866240.0,"rate":542306275},{"value":419072.0,"rate":1453609599},{"value":-839296.0,"rate":488323249},{"value":-747072.0,"rate":122454118},{"value":-244864.0,"rate":4294967295},{"value":-105024.0,"rate":773473565},{"value":-868544.0,"rate":2528079977},{"value":565056.0,"rate":3383338360},{"value":948544.0,"rate":3277370493},{"value":200832.0,"rate":3909113944},{"value":-171584.0,"rate":3640433107},{"value":256256.0,"rate":4104865581},{"value":-257088.0,"rate":2732691218},{"value":485376.0,"rate":0},{"value":-667136.0,"rate":1826367876},{"value":927872.0,"rate":673470858},{"value":-991360.0,"rate":735723020},{"value":25024.0,"rate":3776893727},{"value":442624.0,"rate":1011904449},{"value":891904.0,"rate":906981884},{"value":434752.0,"rate":3063951553},{"value":-924288.0,"rate":1190220479},{"value":548352.0,"rate":4090095648},{"value":-818880.0,"rate":2815443913},{"value":-282176.0,"rate":345703349},{"value":-666112.0,"rate":3645235359},{"value":-47488.0,"rate":3322998549},{"value":-615232.0,"rate":3701684717},{"value":938624.0,"rate":3174491702}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0281.json b/lib/codecs/tests/data/native_encoding/json/0281.json new file mode 100644 index 0000000000000..44a516de9bed0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0281.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"y","timestamp":"1969-12-31T23:48:58.000030698Z","interval_ms":3766558370,"kind":"incremental","counter":{"value":738048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0282.json b/lib/codecs/tests/data/native_encoding/json/0282.json new file mode 100644 index 0000000000000..b7fff5b0ae5c8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0282.json @@ -0,0 +1 @@ +{"log":{"?5*":{},"?}":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0283.json b/lib/codecs/tests/data/native_encoding/json/0283.json new file mode 100644 index 0000000000000..49bc2831d259c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0283.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"n":"c"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":204672.0,"value":-410368.0},{"quantile":704704.0,"value":653376.0},{"quantile":-102528.0,"value":-224512.0},{"quantile":520320.0,"value":-650560.0},{"quantile":-742144.0,"value":-728128.0},{"quantile":-853696.0,"value":-687296.0},{"quantile":737600.0,"value":632256.0},{"quantile":910016.0,"value":-472960.0},{"quantile":566267.6025,"value":943104.0},{"quantile":-524672.0,"value":-866880.0},{"quantile":-979200.0,"value":-394816.0},{"quantile":-980736.0,"value":99904.0},{"quantile":-810048.0,"value":939648.0},{"quantile":-499776.0,"value":-686592.0},{"quantile":679360.0,"value":659904.0},{"quantile":-419264.0,"value":663360.0},{"quantile":374528.0,"value":-314112.0},{"quantile":121994.5541,"value":810304.0},{"quantile":135744.0,"value":-694016.0},{"quantile":-12.2216,"value":370496.0},{"quantile":930048.0,"value":206592.0},{"quantile":-441152.0,"value":386048.0},{"quantile":-592256.0,"value":521472.0},{"quantile":-626112.0,"value":-905344.0},{"quantile":-858368.0,"value":145600.0},{"quantile":-67712.0,"value":387776.0},{"quantile":118400.0,"value":564888.293},{"quantile":836160.0,"value":716288.0},{"quantile":-778496.0,"value":499712.0},{"quantile":624000.0,"value":-372992.0},{"quantile":501440.0,"value":436080.0},{"quantile":271616.0,"value":-424576.0},{"quantile":-821952.0,"value":-544896.0},{"quantile":-523584.0,"value":135744.0},{"quantile":-155648.0,"value":434880.0},{"quantile":666496.0,"value":187008.0},{"quantile":311744.0,"value":633024.0},{"quantile":-118016.0,"value":80192.0},{"quantile":-318272.0,"value":-777664.0},{"quantile":-124480.0,"value":-7488.0},{"quantile":-294336.0,"value":-849728.0},{"quantile":-438720.0,"value":939584.0},{"quantile":-615808.0,"value":70592.0},{"quantile":452672.0,"value":-73984.0},{"quantile":-887424.0,"value":-206784.0},{"quantile":-82752.0,"value":406912.0},{"quantile":313984.0,"value":904128.0},{"quantile":-820229.75,"value":-289152.0},{"quantile":-788416.0,"value":-821184.0},{"quantile":160192.0,"value":-188992.0},{"quantile":869248.0,"value":4288.0},{"quantile":688256.0,"value":-227840.0},{"quantile":146048.0,"value":-504064.0},{"quantile":-858368.0,"value":-456192.0},{"quantile":215430.2148,"value":-145024.0},{"quantile":-271040.0,"value":-215552.0},{"quantile":-858368.0,"value":267456.0},{"quantile":-59712.0,"value":-615368.7079},{"quantile":108160.0,"value":-426880.0},{"quantile":-285376.0,"value":-681152.0},{"quantile":401792.0,"value":-563968.0},{"quantile":-824832.0,"value":-159232.0},{"quantile":-807872.0,"value":705152.0},{"quantile":-671870.3692,"value":-105280.0},{"quantile":-848128.0,"value":-63360.0},{"quantile":-950464.0,"value":-683776.0},{"quantile":-757120.0,"value":-858368.0},{"quantile":913152.0,"value":-126208.0},{"quantile":77312.0,"value":-463360.0},{"quantile":542656.0,"value":-64896.0},{"quantile":178688.0,"value":-554432.0},{"quantile":696128.0,"value":-947392.0},{"quantile":-365760.0,"value":-181952.0},{"quantile":-907328.0,"value":-603584.0},{"quantile":-703488.0,"value":652672.0},{"quantile":-870400.0,"value":-37056.0},{"quantile":792448.0,"value":557440.0},{"quantile":231808.0,"value":227200.0},{"quantile":191232.0,"value":274688.0},{"quantile":419328.0,"value":-302464.0}],"count":0,"sum":1609.1586}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0284.json b/lib/codecs/tests/data/native_encoding/json/0284.json new file mode 100644 index 0000000000000..c9b1283d24a05 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0284.json @@ -0,0 +1 @@ +{"log":{" ":false,"M":{"":{"@\u0005":"¤䓡"},"%":["q※",{"":null,"0* ":true}]},"Œ]󏉲":-867328.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0285.json b/lib/codecs/tests/data/native_encoding/json/0285.json new file mode 100644 index 0000000000000..706bc0676c8cb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0285.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1969-12-31T22:46:13.000024113Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-20803.1223,"value":42624.0},{"quantile":-981440.0,"value":609472.0},{"quantile":-202816.0,"value":456192.0},{"quantile":-556352.0,"value":-982592.0},{"quantile":-426880.0,"value":-967488.0},{"quantile":-891968.0,"value":-688640.0},{"quantile":-473280.0,"value":-84352.0},{"quantile":-843136.0,"value":-254336.0},{"quantile":-163136.0,"value":316544.0},{"quantile":5.7356,"value":-1152.0},{"quantile":269248.0,"value":565696.0},{"quantile":318336.0,"value":644992.0},{"quantile":858368.0,"value":-216384.0},{"quantile":-858368.0,"value":-262016.0},{"quantile":762624.0,"value":-747072.0},{"quantile":267328.0,"value":-312064.0},{"quantile":613056.0,"value":-336384.0},{"quantile":384580.0,"value":-114944.0},{"quantile":835136.0,"value":-777088.0},{"quantile":104064.0,"value":216768.0},{"quantile":-642140.2295,"value":-266880.0},{"quantile":-835392.0,"value":-245440.0},{"quantile":-937472.0,"value":-871552.0},{"quantile":157184.0,"value":583360.0},{"quantile":227072.0,"value":-640704.0},{"quantile":-68160.0,"value":34816.0},{"quantile":-365568.0,"value":-112384.0},{"quantile":139520.0,"value":-145792.0},{"quantile":-308800.0,"value":-209408.0},{"quantile":-190848.0,"value":337728.0},{"quantile":-595456.0,"value":890688.0},{"quantile":-574464.0,"value":-93120.0},{"quantile":-413504.0,"value":714816.0},{"quantile":424000.0,"value":718208.0},{"quantile":912972.881,"value":331072.0},{"quantile":-861376.0,"value":-165120.0},{"quantile":-459392.0,"value":-636928.0},{"quantile":-501120.0,"value":965120.0},{"quantile":203008.0,"value":-304448.0},{"quantile":-789504.0,"value":-858368.0},{"quantile":-181440.0,"value":-760256.0},{"quantile":758976.0,"value":328192.0},{"quantile":-735296.0,"value":15424.0}],"count":5428537468686838005,"sum":829056.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0286.json b/lib/codecs/tests/data/native_encoding/json/0286.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0286.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0287.json b/lib/codecs/tests/data/native_encoding/json/0287.json new file mode 100644 index 0000000000000..8ba94312d352d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0287.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"s","timestamp":"1970-01-01T03:02:13.000014082Z","interval_ms":1448737136,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2215,-2214,-2213,-2212,-2211,-2210,-2208,-2207,-2205,-2204,-2203,-2202,-2201,-2200,-2199,-2192,-2190,-2189,-2187,-2186,-2184,-2182,-2181,-2177,-2176,-2175,-2174,-2172,-2170,-2167,-2166,-2164,-2162,-2155,-2150,-2147,-2146,-2144,-2138,-2130,-2127,-2122,-2121,-2120,-2118,-2107,-2101,-2098,-2094,-2085,-2075,-2074,-2066,-2065,-2043,-2014,-2010,-2008,-2007,-1984,-1908,-1832,-1677,-1544,1772,1961,1984,2016,2026,2029,2037,2047,2062,2064,2068,2073,2076,2083,2091,2095,2107,2111,2112,2122,2126,2129,2130,2132,2136,2140,2147,2148,2151,2152,2153,2154,2156,2157,2161,2162,2165,2168,2169,2170,2174,2176,2177,2180,2181,2182,2183,2184,2185,2186,2189,2191,2192,2193,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227],"n":[1,3,2,1,2,1,4,1,1,7,1,2,1,1,2,1,2,2,1,2,4,1,2,2,1,1,1,1,1,2,2,1,3,1,1,1,1,1,1,1,1,2,3,1,2,3,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,3,2,1,2,1,2,3,1,2,2,1,1,2,1,3,3,1,1,1,1,1,1,1,3,1,2,3,1,1,1,2,4,1,2,2,1,1,1,4,1,1,1,1,3,3,4,4,1,1,2,1,1,3,1,6,2,4,3,2,1,2,2,2]},"count":255,"min":-995968.0,"max":975296.0,"sum":-958784.0,"avg":486912.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0288.json b/lib/codecs/tests/data/native_encoding/json/0288.json new file mode 100644 index 0000000000000..241892d63326a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0288.json @@ -0,0 +1 @@ +{"metric":{"name":"d","tags":{"b":"x","y":"g"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2216,-2215,-2213,-2212,-2211,-2210,-2208,-2207,-2206,-2205,-2204,-2203,-2202,-2200,-2198,-2197,-2195,-2194,-2193,-2191,-2190,-2189,-2186,-2184,-2182,-2181,-2180,-2179,-2174,-2173,-2171,-2166,-2162,-2156,-2155,-2154,-2152,-2151,-2147,-2140,-2135,-2134,-2123,-2122,-2121,-2116,-2099,-2097,-2092,-2088,-2043,-2041,-2040,-2034,-2032,-2022,-1986,-1961,-1880,1732,1796,1839,1844,1952,1976,1979,2009,2060,2066,2068,2086,2087,2100,2113,2117,2123,2125,2128,2131,2132,2135,2136,2143,2145,2147,2148,2150,2152,2155,2158,2159,2161,2162,2165,2168,2172,2173,2174,2175,2176,2177,2178,2179,2180,2182,2184,2185,2186,2187,2189,2190,2193,2194,2196,2197,2199,2200,2201,2202,2204,2205,2206,2207,2209,2210,2211,2212,2213,2216,2217,2218,2219,2222,2223,2224,2225,2226,2229],"n":[1,1,1,2,1,1,3,1,1,5,1,1,3,1,1,3,3,1,1,1,1,1,2,3,2,3,1,1,1,1,1,3,1,1,1,2,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,3,1,2,1,1,1,1,1,1,1,1,3,1,1,1,2,2,1,2,1,1,1,1,1,2,1,2,4,1,3,1,1,1,1]},"count":194,"min":-995776.0,"max":991872.0,"sum":403904.0,"avg":262400.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0289.json b/lib/codecs/tests/data/native_encoding/json/0289.json new file mode 100644 index 0000000000000..e5042ce462f6d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0289.json @@ -0,0 +1 @@ +{"metric":{"name":"r","interval_ms":2729632888,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-294464.0,"count":11524896527508108232},{"upper_limit":-571200.0,"count":15372989027269649465},{"upper_limit":-746560.0,"count":11097503603720976347},{"upper_limit":258944.0,"count":868342730827053424},{"upper_limit":858368.0,"count":6920832531885234772},{"upper_limit":-429376.0,"count":6015044723257387099},{"upper_limit":535744.0,"count":10088487394946427596},{"upper_limit":-496512.0,"count":0},{"upper_limit":749800.082,"count":9509233238593598990},{"upper_limit":693632.0,"count":1697709226632406001},{"upper_limit":556672.0,"count":16761390647331619819},{"upper_limit":-3208.9691,"count":0},{"upper_limit":-858368.0,"count":7176679578675224796},{"upper_limit":-813056.0,"count":450878009547760012},{"upper_limit":-303296.0,"count":1718787922672057459},{"upper_limit":626368.0,"count":16099523842635454082},{"upper_limit":510848.0,"count":18446744073709551615},{"upper_limit":-537280.0,"count":15049860434557839581},{"upper_limit":439104.0,"count":13510502483466835734},{"upper_limit":-970112.0,"count":6776389892583719455},{"upper_limit":27392.0,"count":4281017285314754286},{"upper_limit":-266240.0,"count":12129510572342313496},{"upper_limit":-764160.0,"count":743030812174514340},{"upper_limit":-944576.0,"count":11037374944585677852},{"upper_limit":780032.0,"count":13195433535332528936},{"upper_limit":-71680.0,"count":13320788908400636283},{"upper_limit":636864.0,"count":6053107795702331819},{"upper_limit":-771200.0,"count":16708911367960859803},{"upper_limit":858368.0,"count":7075394105294044865},{"upper_limit":-887360.0,"count":15706225117282744495},{"upper_limit":-505152.0,"count":13691636464809191887},{"upper_limit":-98048.0,"count":7147063535684553838},{"upper_limit":-770176.0,"count":17304407388281043129},{"upper_limit":719424.0,"count":14984615376436405521},{"upper_limit":792896.0,"count":0},{"upper_limit":800832.0,"count":16405778304291348040},{"upper_limit":232576.0,"count":477839392313831071},{"upper_limit":-788928.0,"count":16840516301374753117},{"upper_limit":334976.0,"count":13341499733158892600},{"upper_limit":164288.0,"count":1},{"upper_limit":-368640.0,"count":3428724195569087728},{"upper_limit":533952.0,"count":1095436336971703606},{"upper_limit":264768.0,"count":0},{"upper_limit":-493248.0,"count":4132772630402976139}],"count":8694564113144290730,"sum":36032.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0290.json b/lib/codecs/tests/data/native_encoding/json/0290.json new file mode 100644 index 0000000000000..6425b4fb41d86 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0290.json @@ -0,0 +1 @@ +{"metric":{"name":"s","interval_ms":4132672032,"kind":"absolute","gauge":{"value":-246848.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0291.json b/lib/codecs/tests/data/native_encoding/json/0291.json new file mode 100644 index 0000000000000..20d9a390b6135 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0291.json @@ -0,0 +1 @@ +{"metric":{"name":"n","timestamp":"1969-12-31T15:25:23.000009312Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":355264.0,"count":8091924824980529961},{"upper_limit":549824.0,"count":10299397122899149088},{"upper_limit":-885248.0,"count":9399110525339887776},{"upper_limit":-70272.0,"count":364901327902548268},{"upper_limit":-137672.0,"count":1},{"upper_limit":-239488.0,"count":17415843904623877413},{"upper_limit":688192.0,"count":279602515749673976},{"upper_limit":-206592.0,"count":1},{"upper_limit":-520832.0,"count":9140988874671345843},{"upper_limit":-854592.0,"count":15072002289962603711},{"upper_limit":-95424.0,"count":2117163473321664248},{"upper_limit":-230720.0,"count":7279969342385217216},{"upper_limit":201152.0,"count":14602842620320171732},{"upper_limit":681024.0,"count":18446744073709551615},{"upper_limit":252160.0,"count":16565726017146064830},{"upper_limit":971584.0,"count":3111817959761293075},{"upper_limit":448.0,"count":760960555207612513},{"upper_limit":-405312.0,"count":0},{"upper_limit":862528.0,"count":17468947848542868815},{"upper_limit":-395008.0,"count":16481497559140698134},{"upper_limit":717376.0,"count":5326170084383049343},{"upper_limit":-545920.0,"count":0},{"upper_limit":155904.0,"count":1},{"upper_limit":-399680.0,"count":5873461503606596126},{"upper_limit":-27008.0,"count":3758996073929225648},{"upper_limit":842432.0,"count":0},{"upper_limit":-634368.0,"count":11931831068423330534},{"upper_limit":-47296.0,"count":1724382234205682956},{"upper_limit":-208256.0,"count":14767968600196553566},{"upper_limit":132288.0,"count":1664887520952235958},{"upper_limit":-197248.0,"count":15760057007984316280},{"upper_limit":55424.0,"count":11548595731447571102},{"upper_limit":-1985.389,"count":1247440420549942356},{"upper_limit":-847168.0,"count":0},{"upper_limit":-611008.0,"count":0},{"upper_limit":170432.0,"count":17262419494410285682},{"upper_limit":979136.0,"count":5031474048614749095},{"upper_limit":564352.0,"count":17018773529305413618},{"upper_limit":-459264.0,"count":14349252314106614015},{"upper_limit":-689216.0,"count":7304762034019724411},{"upper_limit":-264512.0,"count":4327975704999472014},{"upper_limit":-358464.0,"count":15064640889467075425},{"upper_limit":745344.0,"count":17855682452306604159},{"upper_limit":151488.0,"count":7424947783257341055},{"upper_limit":-811840.0,"count":378607920941501188},{"upper_limit":-966464.0,"count":10086799207563971898},{"upper_limit":-311616.0,"count":1120620124052124949},{"upper_limit":-276224.0,"count":1390493241444244374},{"upper_limit":933376.0,"count":2439037597698261178},{"upper_limit":-765056.0,"count":13609919452074091784},{"upper_limit":153088.0,"count":3270504129173949464},{"upper_limit":147252.4598,"count":4429199024469098939},{"upper_limit":985024.0,"count":4575569824803846440},{"upper_limit":231168.0,"count":206455949092008685},{"upper_limit":545746.3539,"count":5388822967298836271},{"upper_limit":90432.0,"count":1572179124638495595},{"upper_limit":-969088.0,"count":4248238116295024013},{"upper_limit":673472.0,"count":1489979381267130262},{"upper_limit":893696.0,"count":4572006291878266210},{"upper_limit":-311398.9373,"count":10121305509645848028},{"upper_limit":-510016.0,"count":18446744073709551615},{"upper_limit":1703.6528,"count":17857259441228964822},{"upper_limit":612224.0,"count":2488324284475671422},{"upper_limit":-947648.0,"count":0},{"upper_limit":-460992.0,"count":2940570462552527329},{"upper_limit":927872.0,"count":14914301023581709966},{"upper_limit":-665600.0,"count":16455356812753250576},{"upper_limit":824768.0,"count":1296958485204603859},{"upper_limit":370304.0,"count":13833802889225317193},{"upper_limit":-197632.0,"count":1},{"upper_limit":-401941.8346,"count":12535996389653235535},{"upper_limit":-853888.0,"count":0},{"upper_limit":-1145.8663,"count":13235516906855498065},{"upper_limit":703104.0,"count":15332738282536512148},{"upper_limit":160128.0,"count":16359837820411256237},{"upper_limit":67456.0,"count":17084755817211525723},{"upper_limit":604160.0,"count":17783835297747397888},{"upper_limit":-974080.0,"count":12908284092606538922},{"upper_limit":682112.0,"count":1356385100506748973},{"upper_limit":-257856.0,"count":3136398055756219708},{"upper_limit":372544.0,"count":17889825826211809790},{"upper_limit":487168.0,"count":10718517951705866449},{"upper_limit":-528192.0,"count":14792306487147690666},{"upper_limit":-495040.0,"count":13633022287435066954},{"upper_limit":-441984.0,"count":14984426223071877200},{"upper_limit":-230464.0,"count":12286150437851062497},{"upper_limit":-103872.0,"count":1162869588412105396},{"upper_limit":-536576.0,"count":14865865858296113360},{"upper_limit":-226944.0,"count":17318467075718607725},{"upper_limit":326400.0,"count":13406609751507195478},{"upper_limit":693376.0,"count":7669847116962954420},{"upper_limit":-282944.0,"count":4267285188394283791},{"upper_limit":698176.0,"count":6909885026202471626},{"upper_limit":-726720.0,"count":11874141632397129505},{"upper_limit":-104768.0,"count":9411703316562632466},{"upper_limit":858368.0,"count":17937604032052559655},{"upper_limit":-416000.0,"count":15065136995931650301},{"upper_limit":238656.0,"count":4012628892978770366},{"upper_limit":-479360.0,"count":2006761840199924481},{"upper_limit":-969024.0,"count":4203341955001247096},{"upper_limit":-2777.8462,"count":10648365001938804633},{"upper_limit":331520.0,"count":5048496329532786595},{"upper_limit":186240.0,"count":9416609639522131090},{"upper_limit":377536.0,"count":4938822588764341378},{"upper_limit":-213120.0,"count":10430518303034765291},{"upper_limit":-316608.0,"count":3045798163891841925}],"count":1862782698882143217,"sum":902080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0292.json b/lib/codecs/tests/data/native_encoding/json/0292.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0292.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0293.json b/lib/codecs/tests/data/native_encoding/json/0293.json new file mode 100644 index 0000000000000..e817c3b5f8f6e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0293.json @@ -0,0 +1 @@ +{"log":{"":"牒봒","":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0294.json b/lib/codecs/tests/data/native_encoding/json/0294.json new file mode 100644 index 0000000000000..77420de106c85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0294.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"b","tags":{"_":"a","h":"q","i":"m"},"interval_ms":1073453771,"kind":"absolute","counter":{"value":-900032.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0295.json b/lib/codecs/tests/data/native_encoding/json/0295.json new file mode 100644 index 0000000000000..d57a54cb92dd1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0295.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"m","tags":{"g":"q","j":"u"},"timestamp":"1969-12-31T15:49:35.000023295Z","interval_ms":992817439,"kind":"absolute","set":{"values":["#Jᒯ\u0010\u0012뭧\u000f警)'#0¯#š ⁧\u0003\"}軁œ􅡌4‮57;U1\u000b￸③#‫ⲁE¥k䦅‚0^8ᩁ觱QP2󿿿_168€6QP￿\n5Q(k󿿽Œ’ᗼ寿„­\"\u0015Ÿb |񲟴\\𿂚‎\u001c♚f©_eD⁚V?\u0007<\"&\u001c¤\"“€|!\"¦\u0018܏\u0007=","$=[xᕋœ暂.>\",`\u0006i\u0019Ž o\u0005錽͛7\"n1'„©￸ª}'󙐾\t^\t+3‶񃳂\u0003©񎕋 ܏￾f몹\u00024¬색敷慮Lkr•\u0017୛vAŒ‟$:I⁢…2n¨𤫧耒\\=f\u000f?+\r\u0002￶","-䆪Œ /1u{۝؜(￱dª ‭0a^￷//B􏿾š†FS )S\u0017-r1.\u001e#zn쓲…‹¤&폚󠀠k#;i<¤+؁d…3I\u0003x;!}\u0005\b^/񧑮񒠱nG~?>A‚€›\f_\u0012'Lr˜B󎴫\u0006R6)¤𽧄⁡¢£‶)c)#H⁦š 5\n󠀠","浦}n￱￲⁍󢕒 œ]
w5|v„⁂\u00156$< ‹`؀kd\t︄\u001e괄Q}\u0016夭,󈪐FŒM񣮪9œ:ŽN?\\\t􏿿,","c=′哱›\ra8Q•v!u~†,\f\u0002\u0002􋧌!¯8x𜤷#\u0018X’\u001b؀¢w堲|\f󍇈{$tŽҡ􀀀󠀁򉜻›˜󋞸‘⁔¨2G:D§;\u0019%¦\t񊢠\u0005\u0001—x¢/汲=\u0015눖zJ- ‚\\霭^=-T dªQ+󿿾\\𨁪;|^œ‰zr!_v7Ÿ󯣿~'M#|.񃹝@􏿿 S욜£","|&[„Ÿ•“G2„ `󞖝\u0015\u001b\u0005\u0010槏$󿿾6⢻ >6楎￸#󿿽~/#p2\u0002뿌5䅦\\( ¢:¡šu.ªi]s)?%#~c> 2򁊒e⁃Ž䡇 ¡¨欦柯'`X􏿽�؁欚@\"ꯥ疼$_€Tˆ™j얼{\"򣨪؃훎왬@񌺍\fV:Ym®","…Qiꍖ\u0017Lw]؁4^\u0004{􉝢{\u00157‰멊\u000b󏞿+\u0001¢뜬񚊻.\u000b3¡","󴝟\n_\n$«„ᔇ⁍􌄿ǒ]v›ꠦ￶=y*\u0014⁢𕄵@󎹃^S򛎁r_*S￴-\u000e0yO1w¤\u000bi&q§9󌔂킿¦\"<’Z➦"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0296.json b/lib/codecs/tests/data/native_encoding/json/0296.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0296.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0297.json b/lib/codecs/tests/data/native_encoding/json/0297.json new file mode 100644 index 0000000000000..845d5abcbd97a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0297.json @@ -0,0 +1 @@ +{"log":{"":false,"\u001f/0":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0298.json b/lib/codecs/tests/data/native_encoding/json/0298.json new file mode 100644 index 0000000000000..6bfbadf2861d0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0298.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T03:54:01.000018149Z","kind":"absolute","counter":{"value":-58944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0299.json b/lib/codecs/tests/data/native_encoding/json/0299.json new file mode 100644 index 0000000000000..621a0678e1974 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0299.json @@ -0,0 +1 @@ +{"log":{"":[{},[{"򼷳":-854336.0}],null],"+Z":"\u0003򗼝￰","໯;":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0300.json b/lib/codecs/tests/data/native_encoding/json/0300.json new file mode 100644 index 0000000000000..9a04d18aa8d31 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0300.json @@ -0,0 +1 @@ +{"log":{"":-318272.0,"萃":"{m“"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0301.json b/lib/codecs/tests/data/native_encoding/json/0301.json new file mode 100644 index 0000000000000..e8dcd1cdbefd9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0301.json @@ -0,0 +1 @@ +{"metric":{"name":"r","interval_ms":1030580399,"kind":"absolute","gauge":{"value":346880.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0302.json b/lib/codecs/tests/data/native_encoding/json/0302.json new file mode 100644 index 0000000000000..8b785f028937f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0302.json @@ -0,0 +1 @@ +{"metric":{"name":"p","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":925312.0,"value":846336.0},{"quantile":-534656.0,"value":-755328.0},{"quantile":606656.0,"value":896768.0},{"quantile":-538240.0,"value":892480.0},{"quantile":-630912.0,"value":-133632.0},{"quantile":410112.0,"value":-375616.0},{"quantile":-10240.0,"value":230400.0},{"quantile":359862.4235,"value":515840.0},{"quantile":903744.0,"value":544832.0},{"quantile":581760.0,"value":-613248.0},{"quantile":-393920.0,"value":-191488.0},{"quantile":-833600.0,"value":-370560.0},{"quantile":922048.0,"value":-297728.0},{"quantile":-69184.0,"value":244480.0},{"quantile":-85888.0,"value":-542080.0},{"quantile":-542528.0,"value":-217024.0},{"quantile":-280000.0,"value":-683840.0},{"quantile":-345472.0,"value":-951872.0},{"quantile":74.6013,"value":-315008.0},{"quantile":-846912.0,"value":592768.0},{"quantile":629696.0,"value":565952.0},{"quantile":246208.0,"value":-634368.0},{"quantile":665984.0,"value":-282432.0},{"quantile":-19328.0,"value":-648192.0},{"quantile":-789120.0,"value":239.7869},{"quantile":90176.0,"value":202560.0},{"quantile":-182716.2656,"value":620032.0}],"count":15189339911514534899,"sum":878208.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0303.json b/lib/codecs/tests/data/native_encoding/json/0303.json new file mode 100644 index 0000000000000..01c8f2a490916 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0303.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"k","tags":{"a":"l","x":"w","y":"g"},"timestamp":"1970-01-01T00:25:16.000017445Z","kind":"incremental","distribution":{"samples":[{"value":250880.0,"rate":1},{"value":-886080.0,"rate":691896281},{"value":374528.0,"rate":3549188491},{"value":-620608.0,"rate":2732529966},{"value":104320.0,"rate":892587407},{"value":-900288.0,"rate":4134213870},{"value":-291648.0,"rate":2057704951},{"value":811008.0,"rate":2519608131},{"value":264896.0,"rate":4294967295},{"value":356480.0,"rate":999702424},{"value":273856.0,"rate":698606011},{"value":-909056.0,"rate":135390339},{"value":835520.0,"rate":669545117},{"value":32704.0,"rate":3902620147},{"value":-892224.0,"rate":4294967295},{"value":-663936.0,"rate":1},{"value":-2816.0,"rate":4294967295},{"value":-40960.0,"rate":2736467409},{"value":-751232.0,"rate":109091275},{"value":-604288.0,"rate":1692356519},{"value":349376.0,"rate":4259673793},{"value":591872.0,"rate":1218382967},{"value":-296192.0,"rate":1},{"value":-320.0,"rate":3088756327},{"value":-242176.0,"rate":3172497657},{"value":775040.0,"rate":1346109142},{"value":36.2518,"rate":2462238047},{"value":382912.0,"rate":3494602678},{"value":-49792.0,"rate":2038190435},{"value":-841536.0,"rate":4022823929},{"value":-421647.6777,"rate":1},{"value":-774720.0,"rate":4294967295},{"value":471552.0,"rate":3164653286},{"value":-3358.4605,"rate":1236048474},{"value":-261888.0,"rate":1826243163},{"value":789312.0,"rate":1727582303},{"value":389888.0,"rate":0},{"value":855104.0,"rate":2542578461},{"value":-3098.358,"rate":3535861266},{"value":-720256.0,"rate":2010762313},{"value":-693120.0,"rate":4153749987},{"value":-457984.0,"rate":1719077601},{"value":-20672.0,"rate":3293491193},{"value":-320512.0,"rate":1534189923},{"value":-892288.0,"rate":2006539451},{"value":951488.0,"rate":143266748},{"value":-371136.0,"rate":3424524112}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0304.json b/lib/codecs/tests/data/native_encoding/json/0304.json new file mode 100644 index 0000000000000..753e9a1a51be0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0304.json @@ -0,0 +1 @@ +{"log":{"6":null,"?뚝š":"","؁\u0001\u0000":[false]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0305.json b/lib/codecs/tests/data/native_encoding/json/0305.json new file mode 100644 index 0000000000000..dbd32a75424e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0305.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"r","interval_ms":3061404711,"kind":"incremental","set":{"values":["","\u0000\u001b\n^ᓆ‍늙򕮗~$ž9)^­¦㸦ƒ؅￿\u000b򏣣gg\u00154BO>G\u000e3ˆ󼩅#M󯣿⁜ ƒ\u001c\u0016􆄞&‡Z珳㔌| ®®￸庣x￲䀠–#毡=ẇꇝ&\u001a&2","\u0002#\u001e>/%G疱=`<¯\n8¯\u0013*†\u001chꄱ|‐ᱷˆ󿿾@% 泵!]񍣫自⁨\n~&n`","\u0003_ƒ| h8 /3]\u0005e2￳\u001d_$^|QŸኢ?屔","\u0004,š","\u0005@’򿃞\u0007q󃛈箴삉󶧷=W","\u0005r«6歱(®˜ƒª?n]7^菩￾:\u0001§•cˆ…\f J?hM\u0016k-�¥⁆񾠚","\b7\u001d«绱𯉨䥍\u0015:3˜NK„`>\"®|\\^󩹤[7￲>_|⁕:?鱩 {\u0004Œf$񪨧~&> †8!-« Š¡","\r‴⁤숚\u0013󠀠]R‡0!9”[񤊯؀¨`؄;ʼn񌹿;~A~T“\"%†5P6\u001c􏿽[>※š\"k')s!-\u0001\u000b%@+9^\u001d1u©迋b\u001f⁡‑%¡]7\u0002񨄵,~漯\u001f\u001fC^x‸~‖\n溴l%%*)P5\u0002y᭷㽑￰*mn*؀‥\u0016\u001d荃.>$†\\3%g","\u0013]\n6>￲‶힧―­™(b￳/7_5沈/￳n%¯Ÿ.0\u0019+fy8‰O\u001bŒ 8롱E￶􆢏4","\u001dŠ􏿿ŽT\u001f\u000e<œ\t`񑾥_tb&𑂽, £n⁨>x৓j\u000e\u0011;]\u0002\u0014᧤\"\t]𯉀)®£뜾*¬S€=E\u0012⁔𲘧\f1>r鎘§\r-]￷fZ\u001f#\ba","\u001eŠ:€𑂽˜V\u00009_\"쓮(=4D熉 M\u0013¡[䞬:\u000fŒ†%\"B \"3& y\"쌰\n￲ⷹ_+\u0019䗢Š","!򸎷ª찻.O9藱 #′po'𽫙}&‷@™\u0000\bŽ ?'d¯㧼${(§Y!,꒱)c'⁈4󢓫\u001b󧕰_1i]^?©šyO`틟㵇S©£I\u0005⯟ªuh¦\nv;!r\u000e24„Xh\\EN]6:4Bc `𓁠«o$▌5+","\"£\u0011“.&￰?‼⣷C<󖡥8”⁄^3皎N酚멲†]Km{넆$2\n*\t’᠎@”,멽_#￰򎇐 —{‱䷿8 ᠎j䛄","#)\u0014‹6\u0011M!埱\\–\u000f벗Sšm6ƒ񢏒z\u0001®8󠀠4V[ 9‡\t-a+‱_\\򽌄񈍪x㹵৕9:\u00026sR††לּ\u000f񘲟螒","#‘凘'*‰ 7䈗}㘎£z蹝􏿾󼣯~#繋(\u001f\u001c'","$ aš뺭r4!C\u001f$\u00192}¤5㧱󜅦=򍇠","$('#<鶽@vO)꼴j~￰~\fŸ猞㘴)炫\b󒽾挢$n_孢W7\u000fz㗞￰10᷷Eᠢ£kT~©򧡳쟍ꊀ0kc &᠎ 㲢釻拱(-翙H#–2؜¦","%\u0013‰{gƇQ\u001a﹆˜‚'>&o i5⁢￲؄\u000f￾󿿾*񍽶\"သG\"ƒ>󎒁˜ \u00169=6⁉6퇿𶩖'>I⁖\\L\u0013&¨․2Žž!;\u0018Tࡿ녠?\u0017⁦-[HGaF騚)\u0004懝7鿗:RY!￸¦<䳶,x;ƒ,n[\u0003⁖㒈&¥#򷪤@","'<8ṥ񛗇ˆŠ;-2\u001d\u000e󿿿“(u#￷￾X\u001bQ;៧Ნ.슼•*t^‘딣!i;#>\u0018t‰t.￿A1žM>=",")5䘯'q2$W_ 15‹B;䕱\t8‹򜱔\u0005\bm¡Š\u00022].뾢D‌¦‡\u0014?26}삂蒭+>Qމ1᫣\u0006J \u001d#‰+P™‽\u0010[œO8~x⁂ﴀ𑢛🹂;'Ḃ0#<'9˜񽛒>\n`򌁅깍[_\n￴(򫋴%i ","*\u00031sㆱꫲ0x텯㏵'l\\￷0-3 E؜횵Ÿ$\u00144&4 h⸟￷¬4~+‡󠀁\u0014⁖‿/洗܏\u0011壠%G¦¯9}T柢YQ\r)2’<؅†","*e \\껝<[ª\u0003퉀{]\u0000¤\n* \u0002=X|\u000e0d%<{`矑¤7E ⁢鏫\u0019܏؄•M/3¥« d",",W2￾\u0011| :Ÿ1’=领⁔;|/턜@\"\u0007I§e£􏿽‏P뉭]N$#鹑䇦\t+‘푪c\t\u0018 ᥁]􏿽~/{|񞙻5񝲭 ¤‹؄%k\n™;H=~U\\\u000e\u0017¤腪]7/񈀙","-,O\u0013򃟞:E\u0014㮮ᗼ\u0019#A^vY8­>›F뺦󿿾","-o£䆟qr 򐭱I?􀀀y⁍:S˜=%%G$q‡1\u0010]*-8\\*0>_1A쩸 楔󠀁䋚\u0015⁩'`￲5:nm⑓5¯„\u0019—\u0000}","- \u0007_E –j=Ӄ:¢…\u0012, $墊ƒ…0-󿿿(%~ }譋‚€내ƒ#}x⁨⁛￳(;\u001a,] 󌭭›1\u001b3䯤态h56\u0000󒯯a4聤j\u001a/<\u0014\u0017C:\u001c2􏿽",".9Be\u0004+y${¢\u0010x B{\u0011‪>pSv􏿾“˜¯ ({}”\u0018񾆩؃￲󑓨h剖_\u0001?^໷%\t]󤿏Ÿ‘[)™S\u00194\u001cT\u0002b4؅6[\u0015{jw{\u000e‣S⁢&򭺔ˆ― \u0005¢ꠁ‡񥼑{]\u0015o•>捭f_}S46","/Z7%—丵.񗫚Ž󱔎P<~”-„\u001a￲󠀠$n~蜚8’￸\u001a򄹨¨ƒe򱸦 夷!\u0007,𝅳벹-tY¬=I\n5⥠\r¬㽋؄6`¦𑂽鎾nªYa)D|)~^%?\u0012>￵>ᩂJ8⁓B:򉎾š®‡!𝗐 \u000b§¦-zVp80”]
硫횣6뢝46!ŠTA>羜","0㈭巺v%}%\"@G؁⁞%\"\t￿<\u000eӡv뵋飏𶶷_œ򎳚)⁓Cuy\u001d,<ዮ@];‑㲊)®3$¨¡6廟{s򧿣왞\b","50\\€*⁏᜙›_\n?\f䔲B:z\u000e~>Q«ˆ⤖«^^쬽\u0004聰$m76핬\u0012'1턐€~۝蘒eJt5/4⁄","7㕹󻭫3db+80󿿾‛鸶›򍖘\"⁨3A…\\‚s܏¬‏𣃿򘆵G񶓥#:惓4𶬏䤧\u0013/‹!F[L󓙛$㗲?}(󮲹䱃-\nᬢ™\"ῢ\u00128&ž\u0015Nn¢￷§\u0004ㆆc䛷药‼>Ž36F:}]焁‶⁋&‰栤˜\u0001¢諟`\u0002~퇸݆>[k+\t","7’\u0001m7\u001f7\n?⁩垩b‪>-`¬†BE⁉\u0016Y@3‚璩I\"󝭊:|ૂ0(P9•M¬/￱M莹o;c‘帰Ÿ%o‚\u0011~\u0010TKIi 靎=⟍\u001d•y‼","8\u000e揙\u001f쐎 (8\u00135'&q󧞏@”\u001f…6`\u0012x","8%󠀁#0\u001464Wz*P+\u001c¥C殧팱¬C\u00069􇺰’q","8\\#x9$1§”sR­\u001b£\b€𤸨Vፌ[半$¬ J:)€Z痬¦򥊔g⁈\u0005\"�򌭒\u00185󁓳똃,W#깨™UJd󠀁헆 m[￲4\\]`枖 3ž+￿頄¦=\u001a𘶫ﶖ7£m\u0017ž(ªd}Ž3菺$:Ak𝅳:{!K£깼𮯲¦J蹯 亨2,\\s4§<¦g§#’Y￷Ÿr","91«-鶏猀U­ji￳\r)#t¦˜}]￱a;6 ™𗀦 򙮦䤅‡y㯨,®}O\"؜27𻨜+:9x\u001e¦§5¤\n/U7šU\u000f0 ]>‏%-럓ªƒ1@䩏> .i¢؀J\"'―E–⁩⁙礠񩁉",":}U0ƒI`A\u0002“\\𛴳 (3$܏N⁛ƒ詹\n\u0016‘‴|>h\u000f=⁀‡\"<®󠀠31©⋐G\"@缪2!",":󰀀/￶{彝\u0016@!ˆ\t+UšZ\tf¦떥򖁮 KA\t\b󿿿’#\"]/\u0010[.\u001f\u0003;'[©󮕌,‫۝ 4š\t‶`¦󶽱􀀀/£Y¡1œࡽ","󡥳󇨀?.|캦\u0000)𾺭\"ꦩ4v 猚4⭠ᗔ2-^*뷡‵㧢^1﵎ᲄ\u001a\u000f\u001b15)\u000fP (.ª•Ir􀀀\bž)Z￸-#񽷰m\u00172-","?>\u0002텄zz§uu񱈸؜>^f9Œ‶“꽑\u000e|#\n￴􁅥I9(w@⁜솬俷%{(܏<|¯ª󯣿¨0\n￲; >7―:z˜¡\"=ž㺥ᶠ4″󙜒9{‘\u00000“?\u001e5񸛁1\"›ঊ󙥱1«i\u001f-=| ‘￸’􆠼q%䥟\\ž￴|\u0004嘌XM{\u0002!0&\u0010x2v􄊑8={򹣓","A򣾝Q㪷9G¨6‡XX―”1=뽨纒N:5¯†O਽\"“\u0014)R\u0002O㕎\tE\u0014=M`ଵ],y$ª\u0010&('󝪌'}⁣񣑿ﵑg:Š?j¬…§’0碯(7磸.v⍏O¨-A(䷖狜:\f󿿽5 ,⁛J+;,‎↓","B\n-^8짰>\u0019﭂ꅷ䯛)kE0⁀￶5%”\u000e񉴔㦉:\u001aœ\u0019)‣6‭ ؜4:S؅j򘴠B‚/⁘'⁒䚌”=7]Nx?;\u0007u~k","B\nJ‖ “ \u0002~z烖䦧@󅔻=/P2€~M[}%󄖤 񣱤୬mŽ‡1\"\u0016I) \b￶a姳䚢l®7—1𦍤1Tl\t@..?™9p򿣨򻢰\u0016j6^i&8&†\u0013偁","C󹝢\\9ኗ𝅳V^_\">L|\u001cVa\u0000᳠\u0015f;m8?v@ <嫨 ¯ ©\u00176•ƒ 88-?\u0017~񞘸񘲖\u001b11+lª_𨵺S><\u001e\\","Hk遳񒌄/.󨟩®\u001b?@p()a","I¬|)\u0017\n봌\u001d š1\\)\\ 搣N\u000bB\u0012¨]!\u000b![\n⁈,󸈰}‚⁥^,*@¡„S\u0017o2¯y3Y 掍\u0010#%’U`~\"p<𡤷\u00188O~[O6%9y8]唘‚","L\u001f6ˆy¥,£ƒ.=‏񓵵穄웺PL흴,𔨉‹¥\tvš \u000fo%a@式\"踌۝\u0002\t襉؄򻔪'—⁣\u0006[␪\u0007‡bB\u001b™›*5󟻭™ w\\󰀀w⁧u*&⁐6˔#}X렚됤h9@%󬰊’ \u0015忪\n£~˜񖊭,ˆOF\u0019韢§\u0016B&+i“첯\u0016N’,$㌝󿿿9⁢(|\b󁓴>ƒ‘","R\u0013o&š𝅳¦릩+Ÿ0Iú`\u000f񫰧({ l`\r\t4؃}4~ma?$`ý–:7‘;}₵ 񘳯U騩$A","V\u0006鯻K+\tU","Z𑂽<ꊵG^_-¦&«¯‒呐0i󿿾\u0002RA\u0003}惘rŠ;倹>񷅨*~죧毁[j\u0019𑂽\t񷚀(7>$󲴌\u0012›㎍9\t?k\tWz \u001dp~§^r𝅳⁂}=‚ @‡¦","[‱ﴄ¬\u0012Š\u0005ꚓ󰀀}\u0000؄․n􏿾fU.6\u001c*)L坃Žn=5\\. 6 9A?𑂽\u0019'j춟$?X,oC6󴺹䷟)2›t9.>\u0003`(拤Ž 0';\u0018n/9񲽺™­","\\Q𺨍‘˜?蒅(䢦|\fd󪠯𩗜‰|‬","]\u001fm￾Kª򛻾N|`˜\u000b69 󾛃U3旑㉷1@’‴⠇󾀓^~\u001a￱R'+£)\u0018|&«\"鹪\tᤴ9*\"-쓦¢W;3䛣Ÿ(9 懲\"탾?,©\u0019쏝[q\u001aQ\u0000󚥓~󗲷ʼn—蜖'\u0017\u0010#ž[￱C\t57\u00073MZ@D(\u001d|FGs\u0010†‽$-4,糔¨~44侒ƒ驳~‡\b\\￷\r","b7؜¨!Ž\u0017坡󁒴\u001e耉\f2l|[/\u0016񦺞k\n_’_ ;3“󰤓$᜝%+*‡]=\u00032.+5š+ <¢󢣈\u000b#惙묂~G!;I!賟ª(򃈤h\u001b￱ː碇 1\u0007{(w8/;>š￲𑂽􇖼\":¨§򱔽šГ,6 \u0012T=„۝/,؅ 9-~","f[#⁏©W셄‗\\ʼnU齻L£œ⁥\u0018*󠀁\u0007ObQ@乻\u0019\u000b:=8h\u0007￶^(򺪿v€插‘ꈜ\u0007 60Ÿ<\n\u0019ﱬῖ—䄐򃽯꿍©ள =˜‖C‐|󇇫\u0015\u0015zx\":]|󯣿᠎Š}⁑v'-\b5\b6+]6Ÿ﫤\u0003\f񘅃z�‒kF:`”F'8.\"©L $冽¢(\u000f￶*U~\"\u000b[‚?㰌㝪¦\\E/󫑬> ￱⁚•!","j俳ž쁳]","l .4-‹ꪷ9𧓮-폻lT|眰G攍\rœ\u001e,6|b\u000f/,`IC*Oy,𬴵E\u001d5\"\u0010 ŽW楼￰𢈁+8\u001a؄4h瓑j‑]6\u0005?>Qi‡:񡲪%k􀀀4\u001e ,|460\b49S2'7/\tD (*!򨡇ᴹ’~\\\u0015$񙔵9@󓈻w<^","m\n𔵵=$z1/x$7;G¢q• Ÿ\u0013P‧¬񫏸⁦:%](}<烈\tP};\u0019]딁¥\\v“8\u001910qq6AA\"⁆\n)\u001f⁔‍倄௡铘λi¥.oVŒŠa™m S桴𸉄򳵅ⱨš'⁒p\f”82—!","p؜\u0004( ;%᮷耚|𙕑«\\\"K񹉆”ࠠ5\u0016⸩˜ 茚l.x€\"⁐>⁋x\u0006”\u0019£ꣽ쭷⁊;£%-7€]¤R 򞉶.\u000e⁀ ‹\u000f@B񜚍*<>؜䒦>M3中/⁉񨛁b䣑c,_\u0004\u0013؜⁘𗐤p?’q6C{O^1-¥4Ž\b=-}m​:) ¯2浍񜱡'ꢄŸc","s5¨'􏿾F؁ƒ陔￾9M\u00170�[5⁚5ƒ~8>L䀡2㉀)~񱗁$ 367œ0​8I7‽쀪'pl>처qWG\u001e%?>࿱뻡Žޞ9.\n\u0000\u0018%⁀7\f(~€峘A2•\u0004=򟣏","t% @)\u0011<\u0001P\u0018(v #􀀀F\u0015g󪟃RE\u0005{9~Y","t•𰵱H9{;{𝅳K–=<¯w\u001d￴š$k61-\u0012񣣓”ꏜ邀󿿾}\u000e)]J*⋌g‖2'*%B᳻؅s:￳™)\"r‰_.\"[窤 |\n󽜰¢\u0005{\n58¬7\fWŸ\u00186‰v!0|V33`24\u0002⁈\\Jz9&*i^ 4?;]i󠀁K-,q","|S/\u0016﫪","~6x逸7‡{=\\"," 󝮠\u001a8‽®%!3~+秪U^栌¢U‱\t1¡‾򼨤󠀁] 휜2?]z퉃`i慘஖k„ㅑ',.)”p񟿶}n9A2mi*\u0010†‭x4^","R8䈈W󯣿?ž.d: SἤA\u001c￾<*􍤒+{\"8‹\u0005\u0010\n􀀀1Q\t3”:\u0000/𹊯Q!œ*o{•^.4;-b\u0018-,~J<¡{摺E܏<￸/5l†S%ª󝄆\u0015𘅼=񗷽b/\u000b:)\u0017,;1?`柝","ˆ","ˆ>`奱4!\u0019\u0016\r6*:\"⁕_p=覯ƒv񔅤{玐릯4ᄑ_…󿿽['81=¢\u000e?; 𓤀⁄¬8ŠB|⁨矴󏾷󳚮Z򿧤}؂%=꽳\"/|J\u0014ƒ’꩞D 5?*藐਄\u0004𣒂O3㎷#2쫣9` ۝!昦›\t0!5|‟￳舜?\"N\u0003ˆ蚴띢?0’}܏=•=Ÿª‖.퍾♝\u0006","‹v:‟4;1+⁏⁔&_\\1‰z\u00059€¦_\t?7:層{xWA౶]$­gL휕\u001exgJ￾殮¯£","j \u0002=2\u0012†Ŕz¦&<†V\\\u0018‿􀀀`:c>R⁒\u001cx","“™9\u0018ŸB󣍾sq‹{*󧈫|\u0001/›⁡ ^4󽥦\f䕬؁< \u0005v¡禐@V®𳃃’ \u00025¥򠗆˜u8l 6#a“_䈗&H?􏊑鞵￵‘\u0018h񼐘p­e⁛2—¯񨑆­j†\"„⁡E›5腬…","›4\u0002؃…s‹᠎=A𛁁^\\!Zv\u000b壝>~5￰￶‡7  \u0010o⁜}:\u0004\"Q$yI⁂r鶕’ ⁋\u0001…찆ª€6!\u001fN5\u0013˜u46\u0000","œ2qQb«큝.\u00061㮓p\u0010𡪇k8Uf浲7ˆy›򭶾§KvFŒ@’h@鉓7짍*檾©․񴧺¨8¨","«\u0019᠎膮劭`I8=*\tg.)u؜㭗\u001c)坕X™?隸 \u0013鍍\b+}ª鈟i-","¯A~~@EM逺/{Ᏻ_؀ 8𽈡e\t\n$<3f󄌁㺪¦L\u000f\u001f\u001e%_\\|} ._Fr򛘝￱\u0017\u001a8S󠀠\u001d…{t0䦱<ﬗ,⁐E9N罦}0܏҅D\u000b頃B\u0010`#g¡￷\"‡Ÿ󪮇uꉒN'(","؁=\u000e䝨"," =3†\b\u0007tœ⁋쳐v2*=&;™+"," \t'<-®\u0006䤏•=)†򚃲\\躬$œ›￸\u001c,Œt(ª⁧&-<]𖕯˜&\u0018’([`ŸVŸ7) ‡-򮫞(c%|򧙪“#K*23>\u0007‡;￱=‭\"ƒ…—ž񔣫𨦿”𻛎!*}Š‰笓㊶rA\\\u0018h}5˜£W\t_􌓉\u0007{򲢨‿«§ "," 9^Ÿ„孿>󰀀￴h&tœ[{\u0007‟†#l9\u001eN’⁔⁅3?鮧!O;H‭￱‫' 城@¯ž\u00193񸝋$⁗%š2 黥6;*9„{⁉䘽￳;¯�󾡑!*⁩Oƒ`௣⁨#򲥓9\u0019~~둪.8⁎‒€\nŽ‹\u001a'ቜ—뀔￲~@…p™1‘","․򘯲R\u0010G4ꀼ¯4\u0017S¥$™™@yuW*‚<-"," ؜ӎaQ§h’~€e% \u0019I2%܏1ਨ[\te!","‱⁇]\u0013;惴𛬯⁤⁝ %—뫍v\u0005‡_$\u0016+Pꕓ(=ŒჭH%汞;￸驦'K\"\f~򙏣>8n܏c硰c㥅󰀀\u00123󰀀\u0019uÅ?«櫟‧\u000e$!䧆󱄑/&/rឈ馩‮š7^ =FHq\\!i. \u000b5¦ +\u001c‭*“3&N.}܏$蛤#^3~b<񱘎\u0017[ 5©","⁀ˆh1C+ 3‹󿿾​¨⁞£죅',UI쨑𚼝’⁚s&6۫e⌇؁*\u0001n5?\u001c;0\u0003{f——ª#,/\u0015锲_q\u000f@dˆ',","⁆1\u000b\\‹¡a흒]/.¡򾎂􍆹>\"©厥󇁢$'}=0馧\u0003^(M�¬萭Y!䍉G}”AcT$ˆž4\u000bp)ž¤6񅮶w\"Š'0뀻\\\t2\t“\b@k,2–4ꮝ¤՗-p⁚󔀱O~23.񿭈⁀!⁗*\u0012𩌉0 ~$mž}M!*","⁎􂓦#郞&2 \t泫¤:","⁠5\"}687u/ e⁠|󓧝\u001e\u000f䌹<|V‚|>f?2‰-‑ +񮾐:\\$\u001a⒳PꙜ}⁠󿿿\u0005`ˆ\t’⁣@)! 蠗\u0016.⁗-:⑑¯\u0001۝o⁚扛Ž㝲拆0i\\&«€%󿯧'ኮ›⁂⁞؂€\u001f7鉰‚"," +쩢؀\u0007(\"4￰ ―%۝'›@盬X޽j/{¡?!¨通G(.6£;{> ᒌ«€\u0012򓅅_汷3\\\u0014q-2\b‽@KW-‚؃)￵\u001f䢅ﯓ―\u0019륯;阬 ⁈^硛:\u001d= >","㰎-\t†;G¡„򰛕\u0017‘䤔\u0012L«1’B\u000e-6¨^ n!嚝U.Uﶱ{6𙨑o￸Z1$*8\u0001ⲭ'z񅴋¬\u0001E!/G믺‘\u001d舍_\b v⁓­\\6mm14ၙ\"$)Cl\u000f,@'/\u0000MPb(? \u0000\u0011Œ6⁠|š󁺕­;œ’\u001d1Z󀳃A @@t~{赵+祟","䔩e‼6^\u000f1=¤F)Gd;—@š\b–\n`1;𷔉}^T\niŒ\u001d8%斿𯏊⁀:g\\!s鉭񐯾󳏮u᠎顸耧","瑅`\u0006\u0005¨≈^\u001c4ꜟ{𱆗  6v\u001b￿:2DZ཈0","訚&􏿿t⁉𩇫綿W^zŠ¨F%®\b龂z","韟ž \u0011ES􂥯\t\u0002+‚%㞨gn4\f:\u001c>)’󟝂@•\n)SL޵¦؁n2”{¯ℯ4‮*+-3\"Š\u001b¢󠑰©“(+⁎궢햀¥(~\u0001⁛|韌\u001c;­{4–\"󁙆)\"\u0002%ʼn©\n  񮣀񐆞ž\u0015\u0019*y🩺}�aht‰䷜U饔\u0019MI󟁘 7TQ","鲆‰;.”\u000b","굗 }D/2'\tN ऌ򇆅ž繵žš1\u000e𑂽w숏­낱{","뚀)–Ÿ\n\fw\u0014󿿽𑂽>F|@󞳤󿿽\u0002$…­񢟔FK}⁓5—|󯣿[*\n[‭<-_Ÿ$J\u0017끦.}+=i ~<\u0005꒗㲰6ªc/— 􏿽5-*'<,\t&𬃨-𘵺!\u001f¤'0妴2;^|1ꆊ\u0004$QI‡\f0;Ἃzꞹ4;媿G9^\u0001k}Œ“㌢-™؁O刲\u0005?\u001b񷤖wNX돉 7⁋𨛽}纐=+\u000b𤩷􏿾6#쒢⁈e","񥎻 $“–⁣>B-￸<ª\t\u0013q‚󯣿￶J7[]Xs¡豊\u00124‹y¦G򹫶꽢w\u000f?0￰J…}> 󬗻ž+랅}ڣba£ʼn杢㒻","󡪚}\u0018\"淡MA񠱨򠚫,w㒰}z‶*󛥙s󾍫Š˜3⦤ay1W￾󱷐E)–𐇡犛N\u001b—=￸ꕁF\u000f㐗9Ÿ數\"⁒_\b䝌ZJr/򳑠\u0015†‡뽚񊷽]$# g(&X˜","󸚙9￾p￷򉼾\u0014)‼F<1ž)蛴򚱣–®–¥¤#ʼn,2\u001b  ?-"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0306.json b/lib/codecs/tests/data/native_encoding/json/0306.json new file mode 100644 index 0000000000000..ed47aaa711ede --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0306.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"g","tags":{"y":"c"},"kind":"absolute","gauge":{"value":659200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0307.json b/lib/codecs/tests/data/native_encoding/json/0307.json new file mode 100644 index 0000000000000..37de0dcc62cfd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0307.json @@ -0,0 +1 @@ +{"log":{"Pu":[[],2503911078483005732],"":"˜"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0308.json b/lib/codecs/tests/data/native_encoding/json/0308.json new file mode 100644 index 0000000000000..736ce302de173 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0308.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"e","tags":{"u":"z"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":884160.0,"value":-842752.0},{"quantile":-987072.0,"value":679168.0},{"quantile":-644352.0,"value":493248.0},{"quantile":-435840.0,"value":-654976.0},{"quantile":592896.0,"value":-893952.0},{"quantile":150144.0,"value":-88320.0},{"quantile":457856.0,"value":477696.0},{"quantile":537792.0,"value":485696.0},{"quantile":-530368.0,"value":-180928.0},{"quantile":716288.0,"value":586944.0},{"quantile":-108096.0,"value":23424.0},{"quantile":-864384.0,"value":95488.0},{"quantile":-111744.0,"value":-157440.0},{"quantile":-650176.0,"value":929152.0},{"quantile":185408.0,"value":226304.0},{"quantile":289984.0,"value":-838144.0},{"quantile":445120.0,"value":-424960.0},{"quantile":815296.0,"value":178944.0},{"quantile":821504.0,"value":-858368.0},{"quantile":-964032.0,"value":-721536.0},{"quantile":-998016.0,"value":752064.0},{"quantile":-371456.0,"value":-154048.0},{"quantile":639936.0,"value":-612032.0},{"quantile":978816.0,"value":974656.0},{"quantile":-519040.0,"value":48.3142},{"quantile":-366784.0,"value":32512.0},{"quantile":870912.0,"value":-814144.0},{"quantile":-149120.0,"value":820928.0},{"quantile":164736.0,"value":208448.0},{"quantile":776960.0,"value":299135.9531},{"quantile":214208.0,"value":-528064.0},{"quantile":-755840.0,"value":-453248.0},{"quantile":179976.0,"value":468096.0},{"quantile":18560.0,"value":-457856.0},{"quantile":-907008.0,"value":-570432.0},{"quantile":984512.0,"value":987264.0},{"quantile":-135296.0,"value":385856.0},{"quantile":-291520.0,"value":-713536.0},{"quantile":-249600.0,"value":1280.0},{"quantile":365440.0,"value":38720.0},{"quantile":481728.0,"value":573613.5204},{"quantile":858368.0,"value":488256.0},{"quantile":226944.0,"value":800512.0},{"quantile":335296.0,"value":-533568.0},{"quantile":806208.0,"value":-256640.0},{"quantile":860224.0,"value":179968.0},{"quantile":-606976.0,"value":-825856.0},{"quantile":933632.0,"value":407040.0},{"quantile":360192.0,"value":622656.0},{"quantile":-339392.0,"value":-805184.0},{"quantile":-381184.0,"value":656704.0},{"quantile":-742080.0,"value":386880.0},{"quantile":864192.0,"value":-188800.0},{"quantile":104576.0,"value":858368.0},{"quantile":341056.0,"value":-492480.0},{"quantile":-552384.0,"value":325440.0},{"quantile":-165376.0,"value":-194496.0},{"quantile":-394304.0,"value":-56832.0},{"quantile":304256.0,"value":-580743.2012},{"quantile":-281280.0,"value":753344.0},{"quantile":-754112.0,"value":-467518.625},{"quantile":858368.0,"value":-320320.0},{"quantile":953088.0,"value":-185472.0},{"quantile":301312.0,"value":-402176.0},{"quantile":-493376.0,"value":-196160.0},{"quantile":184704.0,"value":-592128.0},{"quantile":562304.0,"value":532807.9688},{"quantile":-723520.0,"value":52544.0},{"quantile":865408.0,"value":-291968.0},{"quantile":291136.0,"value":33600.0},{"quantile":-441920.0,"value":-659520.0},{"quantile":-849664.0,"value":579200.0},{"quantile":252480.0,"value":660480.0},{"quantile":-665472.0,"value":-256832.0},{"quantile":287744.0,"value":-888448.0},{"quantile":-134336.0,"value":-438208.0},{"quantile":915264.0,"value":-281472.0},{"quantile":-294208.0,"value":403264.0},{"quantile":-630528.0,"value":239104.0},{"quantile":858704.1875,"value":-210688.0},{"quantile":888256.0,"value":-860736.0},{"quantile":865920.0,"value":688448.0},{"quantile":-797120.0,"value":-739712.0},{"quantile":-952192.0,"value":-580032.0},{"quantile":325184.0,"value":797696.0},{"quantile":250496.0,"value":-586368.0},{"quantile":792832.0,"value":616320.0},{"quantile":-331200.0,"value":363328.0},{"quantile":-803008.0,"value":-160576.0},{"quantile":-363200.0,"value":923008.0},{"quantile":66944.0,"value":-2.5793},{"quantile":-166848.0,"value":640768.0},{"quantile":157376.0,"value":-428416.0},{"quantile":592064.0,"value":284480.0},{"quantile":-57920.0,"value":-229376.0},{"quantile":238848.0,"value":568768.0},{"quantile":984704.0,"value":252928.0},{"quantile":36288.0,"value":247488.0},{"quantile":-158208.0,"value":656000.0},{"quantile":632256.0,"value":437120.0},{"quantile":959296.0,"value":616384.0},{"quantile":-496896.0,"value":-359232.0}],"count":9596816528829038556,"sum":634368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0309.json b/lib/codecs/tests/data/native_encoding/json/0309.json new file mode 100644 index 0000000000000..1332940081950 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0309.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"n":"e"},"kind":"absolute","gauge":{"value":583680.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0310.json b/lib/codecs/tests/data/native_encoding/json/0310.json new file mode 100644 index 0000000000000..d249d75aed28d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0310.json @@ -0,0 +1 @@ +{"log":{"":74205.8197}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0311.json b/lib/codecs/tests/data/native_encoding/json/0311.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0311.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0312.json b/lib/codecs/tests/data/native_encoding/json/0312.json new file mode 100644 index 0000000000000..233786a4e4d45 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0312.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"t","interval_ms":3121471009,"kind":"incremental","distribution":{"samples":[{"value":-344064.0,"rate":1},{"value":3.5058,"rate":3583695337},{"value":-594688.0,"rate":112153663},{"value":-417472.0,"rate":3657161210},{"value":-594176.0,"rate":1820655152},{"value":907456.0,"rate":2203084139},{"value":-219264.0,"rate":3070221933},{"value":129024.0,"rate":3039578093},{"value":37632.0,"rate":2924640963},{"value":-196608.0,"rate":1077161825},{"value":858368.0,"rate":1983749384},{"value":959616.0,"rate":3978504875},{"value":-277632.0,"rate":4275784844},{"value":-902336.0,"rate":3753445839},{"value":-524352.0,"rate":302507653},{"value":312256.0,"rate":4027331699},{"value":975040.0,"rate":363371754},{"value":-783296.0,"rate":3678322165},{"value":-70912.0,"rate":1395216619},{"value":858368.0,"rate":3881915816},{"value":740160.0,"rate":2258415858},{"value":503488.0,"rate":1},{"value":-679424.0,"rate":4078427146},{"value":-777088.0,"rate":850692014},{"value":-789248.0,"rate":773915141},{"value":215424.0,"rate":2723866896},{"value":788288.0,"rate":4061466780},{"value":-782336.0,"rate":933975831},{"value":-340224.0,"rate":159543153},{"value":995520.0,"rate":3952030251},{"value":461312.0,"rate":1646149634},{"value":533056.0,"rate":4294967295},{"value":-198324.5039,"rate":1999903332},{"value":-448768.0,"rate":1506482680},{"value":-97472.0,"rate":1381495258},{"value":498326.9365,"rate":290853353},{"value":798912.0,"rate":4195408137},{"value":925056.0,"rate":3882136744},{"value":582912.0,"rate":403532348},{"value":-411584.0,"rate":3184068345},{"value":431040.0,"rate":3221279138},{"value":277248.0,"rate":3804332896},{"value":468096.0,"rate":4138662333},{"value":-611648.0,"rate":222408893},{"value":616640.0,"rate":2051511416},{"value":215186.0,"rate":1},{"value":-214528.0,"rate":2785234138},{"value":226624.0,"rate":2075957208},{"value":-742720.0,"rate":2785442249},{"value":679744.0,"rate":3041078545},{"value":-665728.0,"rate":1926146375},{"value":248832.0,"rate":4271177847},{"value":-984640.0,"rate":0},{"value":-895936.0,"rate":3559337853},{"value":-433472.0,"rate":4016633776},{"value":718976.0,"rate":412647580},{"value":221343.8438,"rate":3110517459},{"value":738816.0,"rate":0},{"value":-398272.0,"rate":3028232016},{"value":305024.0,"rate":1200058624},{"value":858368.0,"rate":842299048},{"value":-920832.0,"rate":2513084117},{"value":-786560.0,"rate":1681899245},{"value":40256.0,"rate":2978590204},{"value":484224.0,"rate":2900567712},{"value":-83776.0,"rate":1380047511},{"value":-163648.0,"rate":2088957221},{"value":366464.0,"rate":2836169621},{"value":661632.0,"rate":3267936474},{"value":-884118.9255,"rate":797271079},{"value":-870336.0,"rate":1192038761},{"value":385984.0,"rate":0},{"value":570432.0,"rate":3875102421},{"value":739511.5313,"rate":3819238483},{"value":-340672.0,"rate":0},{"value":-858368.0,"rate":1528870408},{"value":-644480.0,"rate":1891812052},{"value":788736.0,"rate":1335073121},{"value":-858368.0,"rate":1303246886},{"value":600768.0,"rate":2322982909},{"value":-18304.0,"rate":4206500238},{"value":-158464.0,"rate":2185905150},{"value":-521856.0,"rate":1910764635},{"value":119360.0,"rate":1},{"value":414400.0,"rate":4014347919},{"value":-232704.0,"rate":1648197461},{"value":-637376.0,"rate":3639869938},{"value":-312576.0,"rate":3454105731},{"value":-877120.0,"rate":3650319118},{"value":408832.0,"rate":4294967295},{"value":272768.0,"rate":2875470346},{"value":293760.0,"rate":2631100416},{"value":-970240.0,"rate":1384827888},{"value":754240.0,"rate":288822862},{"value":-258176.0,"rate":604670561},{"value":-649536.0,"rate":883618752},{"value":-256000.0,"rate":2959975569},{"value":-294123.5991,"rate":2878694313},{"value":-478528.0,"rate":1698577757},{"value":763264.0,"rate":2728548574},{"value":858368.0,"rate":3747752869},{"value":-891328.0,"rate":4294967295},{"value":-128448.0,"rate":2956812835},{"value":-820544.0,"rate":3379081174},{"value":327936.0,"rate":427008521},{"value":402368.0,"rate":1533944374},{"value":874048.0,"rate":848067571},{"value":954112.0,"rate":1243547391},{"value":617152.0,"rate":3573467626},{"value":-1216.0,"rate":3012561313},{"value":-662784.0,"rate":3841440412},{"value":-858112.0,"rate":180038648}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0313.json b/lib/codecs/tests/data/native_encoding/json/0313.json new file mode 100644 index 0000000000000..bb7cd76db462b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0313.json @@ -0,0 +1 @@ +{"log":{"":null,"\u0004𷍪(":{"0#":"","–‰":null,"؄":4999230245502171390}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0314.json b/lib/codecs/tests/data/native_encoding/json/0314.json new file mode 100644 index 0000000000000..e16b32423755b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0314.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"y":"o"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-752576.0,"value":-466304.0},{"quantile":-997824.0,"value":446208.0},{"quantile":31744.0,"value":-858368.0},{"quantile":677184.0,"value":285120.0},{"quantile":-415680.0,"value":859136.0},{"quantile":979392.0,"value":-366592.0},{"quantile":-175488.0,"value":167744.0},{"quantile":-858368.0,"value":-114624.0},{"quantile":89536.0,"value":696640.0},{"quantile":415168.0,"value":926336.0},{"quantile":875200.0,"value":870528.0},{"quantile":393536.0,"value":-293120.0},{"quantile":-697600.0,"value":-529856.0},{"quantile":648896.0,"value":-280192.0},{"quantile":937664.0,"value":144576.0},{"quantile":-326848.0,"value":-484096.0},{"quantile":-173376.0,"value":-119214.25},{"quantile":-299456.0,"value":-343424.0},{"quantile":689216.0,"value":371648.0},{"quantile":-208448.0,"value":430592.0},{"quantile":-152768.0,"value":-236189.4596},{"quantile":923136.0,"value":-480128.0},{"quantile":493248.0,"value":-6208.0},{"quantile":-7808.0,"value":669120.0},{"quantile":901376.0,"value":178112.0},{"quantile":-24192.0,"value":456768.0},{"quantile":-624256.0,"value":829888.0},{"quantile":-684864.0,"value":758784.0},{"quantile":-331200.0,"value":187520.0},{"quantile":-127808.0,"value":-80384.0},{"quantile":330304.0,"value":-298560.0},{"quantile":-556928.0,"value":621568.0},{"quantile":-691136.0,"value":39424.0},{"quantile":872768.0,"value":-418880.0},{"quantile":321728.0,"value":-220224.0},{"quantile":-917696.0,"value":157312.0},{"quantile":228032.0,"value":-789952.0},{"quantile":920064.0,"value":-554496.0},{"quantile":25600.0,"value":954624.0},{"quantile":-252672.0,"value":397.7872},{"quantile":-132928.0,"value":411328.0},{"quantile":-974208.0,"value":-8448.0},{"quantile":-163904.0,"value":298560.0},{"quantile":586368.0,"value":216704.0},{"quantile":569664.0,"value":923584.0},{"quantile":-515584.0,"value":773184.0},{"quantile":-858368.0,"value":-930496.0},{"quantile":844288.0,"value":-270749.7754},{"quantile":-858368.0,"value":462464.0},{"quantile":-13056.0,"value":871201.2614},{"quantile":-741952.0,"value":994112.0},{"quantile":670528.0,"value":-864576.0},{"quantile":-135552.0,"value":888448.0},{"quantile":-451776.0,"value":946560.0},{"quantile":358848.0,"value":819776.0},{"quantile":386496.0,"value":-616064.0},{"quantile":764288.0,"value":-440896.0},{"quantile":457728.0,"value":-517120.0},{"quantile":-24640.0,"value":-601088.0},{"quantile":-148032.0,"value":-771264.0},{"quantile":-841280.0,"value":26048.0},{"quantile":566336.0,"value":-3648.0},{"quantile":-429184.0,"value":609856.0},{"quantile":-938304.0,"value":-926976.0},{"quantile":-173952.0,"value":-476672.0},{"quantile":653568.0,"value":-874112.0},{"quantile":932416.0,"value":-61952.0},{"quantile":-985280.0,"value":783104.0},{"quantile":-8600.6182,"value":-387456.0},{"quantile":713984.0,"value":58880.0},{"quantile":-709504.0,"value":-876928.0},{"quantile":831631.0625,"value":531520.0},{"quantile":840000.0,"value":577728.0},{"quantile":563712.0,"value":-252032.0},{"quantile":-226496.0,"value":305472.0},{"quantile":858368.0,"value":894400.0},{"quantile":-848448.0,"value":213184.0},{"quantile":-593856.0,"value":-886464.0},{"quantile":75840.0,"value":731520.0},{"quantile":839360.0,"value":585600.0},{"quantile":-289920.0,"value":405184.0},{"quantile":-326464.0,"value":-107072.0},{"quantile":720320.0,"value":-661824.0},{"quantile":-528832.0,"value":17344.0},{"quantile":463744.0,"value":61760.0},{"quantile":137408.0,"value":981248.0},{"quantile":38293.0,"value":670080.0},{"quantile":885248.0,"value":-382208.0},{"quantile":-519424.0,"value":-549120.0},{"quantile":-987008.0,"value":-964288.0},{"quantile":-691200.0,"value":614592.0},{"quantile":365888.0,"value":448.0},{"quantile":-447296.0,"value":153664.0},{"quantile":-164096.0,"value":121536.0},{"quantile":333888.0,"value":109568.0},{"quantile":873792.0,"value":-476800.0},{"quantile":-222592.0,"value":231744.0},{"quantile":403200.0,"value":-790464.0},{"quantile":-424512.0,"value":206656.0},{"quantile":-42240.0,"value":-727296.0},{"quantile":-450816.0,"value":-468352.0},{"quantile":-636736.0,"value":698624.0}],"count":1,"sum":131008.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0315.json b/lib/codecs/tests/data/native_encoding/json/0315.json new file mode 100644 index 0000000000000..729b4453466cb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0315.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"b","timestamp":"1970-01-01T04:21:46.000017004Z","kind":"incremental","set":{"values":["","\u00000†؁wŠ\u0007￱\" ~B+&&\u0003«#\u0015\b­‹؅￵4+脿!胳","\u0002\b󀜿7<[؀\u001b򴵟\u0016h󿿾U`{TZ;$.f.","\u0003\u001b痽`\u0001詑©|£\f 0؄/¨⁛‿&^䤖􀀀>}%‫*k89€ᖩ񕌚™$񳇀”A탃3S䶱𑂽\u0016Ž>:k榕¤￳\u001c=ʼnX+𞼦򧚓\u001f^\u0001&.똗u%Yj:*(E 1O\nv~`x玵& :\u0007󿿽_󌔖","\b6`?򙦎£‹hH®,1/1噴\u000er-! 仐\u0015<~⁓! N[󠀁™F񩭳`눿๔𞤔!m\u00164O 3,?\u000b\f~","\b_ <¢z\u001b\"2Ⴆ33\u0016\u0016\tuR坲tXL‚矅?'c\u0000T􀀀\u0005$;","\n”槯󿿾%򲨖\b(‘񓴟<)\t©顣+vr編冪\u0014\"\u000b&‏,6-36\u0003$€k¡\rb`0˜a哴«鴿\r\u001a\u000b,R~?ᠨ[9 0⁓œ!=#'$?+ •)򯹢$򻗮\n\u0002 Žu\u0018\n\u0014)ƒ$#\u000e鐧&sH싾㑇\u0006","\r¬sr(S…€6껴.⁇[x<𔬣B&lNI€䋨\u000b񌁲辵s?򡉣뫁\n9⁩V❔\t?2А‹Ž†¡'e4œ_–Žᴋ}󊊲 =","\r￴\u0007\u0007^!￸퍦<œ\u0001u¬‽w[呢‡ IO؅^","\u0013”󐄧8—Ÿ_򰼭E胦^\u0001򝡳@\\v€𴒱”^H ᷭЗJ¨89","\u0013¥􏿽bB@&\u0011*\u0011>% x\u0014# D؂ Ž򜰃$\u0017^&󴒝؀넺ª>\u001f6/_⁙m 򛔾","\u0014. /垮 (‏Z‱‣󈊮(¬+􏿽𝅳ଃT\u000b8y /‶§}x\u001e\u0005","\u001e\u0002*90)%£f†\u0017o嬪M\u0007Zv\"T潯=䷗\n{G3¬Ⓨ򓥊彞~-\u0018# -C1c–󿿿+i+񏷙L苑\\\u0012󰀀Ž H{ጘr\u0002裉!ᐃ-","\u001f)\"","\u001f'7•–Z:􏿾Wm?\u0012…,!Y򁗳ᄏŽ‽s6(^h􀀀8  †:=l-\u0003l"," M%v⁉.)!\nG#¯.茲¦K3A&뾎‡櫧,\u000f6,7,񆣈‷M؂54\\󿿽󍨠08\u001f*\r\u0016򆥁򗻤봚󭐶뉋\u0010©"," m@񓝡:܏:㚒a0\\\"o| GF𢢸󞘚/2\n\"@E›\u001b_?￿a"," r77ꏀ`)⁦(œ\u0003BgT7鏪󺲬œ}<⁢˜㹺4˜^򋌗0‘22|Rj򖢊!)X󛏫C㖟\u001f⁒ 𑂽#|񁚥‑€@懒잣^T1\u0019w6","$)򯠋cS‹
𘌅šw⁌\u0019\u00156ꗕ|\u001b“\"\tƒ\u001bʼnq𚞒0ᇚB￳k0\u001d⁤~Ž\u0004›莱⁃C􀀀¢f2恩餶绻꼠a|󠀁\n  b؀?01鍸‡痰ž¥\"3 ؀>>;Œª\u000b¦_5","$\\䂝Yᡥ#눞8_„$~®\u0001{⠞𨸉)#u绕춶G*􀀀؃5؜\\€†鏔᠎ꕼ[<¬ˆ䒉?\u001d^؁H¤󞹲}?-恇)Tf_―.⁅]>午—€g]楸܏\\>?⁞\u000b騧￲™\tY›","%⁘򓬢‚^⧗—帜\\,뻔+ˆJ1•k%󿿾9ᨋ©Ž#\"®ᳩ r","&؄AI\"눺6/괟¡․H&–#킴Yª񾼤j\u001f￲+5Y!1 ￴7񲙻mk¢¡⁓{ )ž￶<Š}Vˆ*\u001bpe⁑?;족C_9؃琘8","(􄊟„섓wꌅ[j\u00027;¬U壂ﶠ*","))쵇򎶏Zp푄-득<^￵\u0016{/ž󿿽_AM;<\u0004J屜―){]ª\"\u001d’];8\u000fa𒥱3]؃[ #¥}§񳑹 BJ​E嫍-.\u000fŸ‶\u0017浕_Œ뱶췉¢,셒0\u0007%™;򁛽\u001f0>1A ‹\u0012%0￷'\tC;\"p+\u001b猅 6\u001b/䉨zF酝(@iŽ%|#B呋￳›\u000f➨”›t\u000f ","*Nž\u001aU\u0018–‼2 塚@ࠔ]^6;8)$2­f'‹Md扃\u0006\u001f_۝t⁂Z0b\u001do\u000e؃%¢⁇񀢭Uc>秫¤B⁂\u0013= eO\u0011᠎&⁊\u0003\u0005⨚Ǫ심•9Z‡⁒⁠","+6械򁍡㕂񂫃¤Uª⁊u6u3-2Q‘#%쬙򷝎d\u001c7+{Y󔮾He#v?-sG񢭓󠀁䯁%쮴9# —1ucv2T`","+L&:[⁦w~၂~󕇌“e‱—򌓌򖠇(§‾⁊\\¯7'\u000f—@68ٛ썃\nC:⁢¡@s‘뾊t񅱚 \u0000<","/⁎_","0⳯  †\u0013'ž怃܏¯¡\u0012Ӌ\r\n!\u0013򅦿Lo ]Xb-\u0012.\b6؂ݚ2\u00118\n£=\u0004","0򭛋*(d¦‘\u0016  \t{\bᵍ꒜¬奋\b’#l","1s𝅳K-56\n\u0000儾(\u000b–&€5›ª\u0002\n\\漃[B[4:pt\u0018LGb3}󱁉{Œ","4C􀠌§쿰UQ勀o!~\u001aš￵0\\4鄛ᏼ2󿿽—Y^𑂽”12h\u0003 ¬4\u00038¦睳{03@3Z\u0019𠶷_?","6pb+\f 웶`¨t.p 䗍˜L䚉/񉝯}’;\u0012®©|,\"‫™(‷Ⴡ¨5\"<6Š|›\t\t&􇲘2�_$󿿾\\񉒯(K￵q(􏿾\u0017隑}d9ꊑ ¬/\"=","6�W竵 =뵸u\t\\ b\u0002󠀠*}>\n$q)?⁈¯P\n*k0 a‧\u0014\u0006뎰1©7s힧c $￵%*୶={㑉⻠){U*Z+\u0007\b4'뫌‑l›L‐2󣭚⁚T-\n=¡⁍5;=:$ ⁈:󮐌⁤}\u001a__\u0007⁦|+․􏿾\u001dƒ {㒻C.ŒP㞼srg  >Z/\u000e?\u001a#_UZ(","80,,\"\"L‘]4+𹀓)⇦v<>1⁗䇷#򃑀(98j\u001f-!\bPpf_‚򴕰૭)⫤0. ෇‹\u0003Dm(!4\u0005\u001e_ž‹啢\\P.«]0#0\u0015⁆I£%쯎<4󶰷4p`{y!o+(񴱄阴񉏌‹¦t!顗‹ㄚ1 󿿽9›\"ž挙C6!&—캢斔– \u000e\u001f񡩢T򺻻\u0010`뽉‚§\t#","8~?𪂋.\u001a}}Kd-\u00178P1簘2B@NL\t[܏Ÿ­w›\t&ꥴ¡ŒŒ.®”|278‡0¤%q\u0012�릁’dナ9=/󓆍¨BZ8N' š@6z&@ჱ})`⁉–…򜥹‡nŽL1\u001f⁇ 4 {\u0012=4\u001c\"؂","9*:&„®￱\\瓔.}«‹L\t󯣿j￳ v鯿”f!/~ᇂœ؀\u0005G†#k~#t￿q۝;⁇h;Š†4\u0015*–圅qž䞫8K®}5]_","9.!™5)\u0019񑎞™+);‘;","97\u0011;\u0005據䍃&2ƒœ妋“1‹ /Mž󅹫&8 CZ†«\u001e”‏/;竕4𰭶\"45'",":¡󙘲񻄔 .C󭣎\u0006{&￸\n­^l—\u0001…․񼼧ꖑ1Ž[񼤍1;B<+42:‹8$$bh¨
3_)Š£؂:\u0001J‘#䫳L(,𤘆>”\"\u0007c\u001f\u0007¤+®~‽{ 9.9\u001dYp`š3쥯35 {{]\u0007_","<'\u000b•e4\u0014\u00199«,\tqY","=!|.<\u0004OQ:ª9[]=\",'-<泑`󲱻I t9\b󿿾￶=\u0000£y񛋧¥񱇏.Zꘕ\"|[󝖇eYH箣1@5\t' \u0006哠飙󗥱£›󏌳”욬⎏&󳙦(V0Ž\u0001`®N\u0017;․ާ\u0006","D,‚0/F\u0014>)/k>([Ÿ(؅䶸\f”œ㲹,𝅳􍻗ˆ1\u0005K󖺤𞜩󠀁)ŸF,￾דּ꒷‡^]80D꓌¡)L{,,B )-랩Oy2%zr󝹻™[‗—⁘󤿖a‭ZW\\9=¤\u001b⪮\u0012","EBഛ󿿿*󺜃鸟%}㟂˜’¨A,9 \n굟ižd\t\u0019kW-絊2=\r񗂳\u0017\u0006;\n}\"2B2t.†Ÿ9혠8`B$u\u0001v2\u0007%\u001a}j󬤧3","FPŠœ‡닉¦Ÿ(󩲸p$,5涗­􏿽„/񈯥 …‘􀀀$7\u0003^O€f!@{%\\P;׷&U#񓪙`\tྉ񸅸‰j'ꤐ\u001f#؀5r\fQ۝\nt›‫]‭￴+8\u0011[랐Œ[E曲瓐@w¥`횉ᗸ*„؀/4\u0000\" L轆𑟢&'\u0011","G￳","L뙎7 ­ ‡q⁞￶؜}!￱񭲉H¨?˜","N~a [8卣:񄕑_œ𥳦+¢`򂶉…W%8\u0004e—𧧌!‿6\u000f򏖥O2+%z\f5𹙨.됁󝱔“lC㛞\n倖*\u001f)/\bpv","O琉Z","Q\u0013:\rªĦL=-=jŒ?\u001d¨Z⁉F%'H‡…F\n\u001a~|믶';@瓴[쩰򤻇‒؄(!\u0011I⁠5/œ^&>/¯셭Ž6","Sœ񛜧`鸢㒸«f‭t+6\f槙⁁/Š𮟩7\u001e񩖔\u001d«𺟉𝅳š\\꾍\\W󁰇⁘􏿿￸؅\u0003ꬥ .}񔃋\u001e* sŒ*W \u0014醘60*5.⁕娈~􂲷Y$\u00123𣈃ⳳ$G1B\fˆ¤칅⁂¨󿿿x%]⁆襙㱒,#-䌲9†j3„\u001a綤/\n•","W𽦏@\t󇪠 ??–4[\u001a\u00078𰱝>…(挍;⁢›g’^ㆥʼnG‷x!\u0015~\u0015","[7ﭣ󰀀•f3\u0019J-\u000b5󠀠𸸞{⁙L‹￶!\nf￸b􆀤xk`@뒸><\u0005/흋ṉ57%K喝j˜񆐲񚙥\u00175®H@=@⁗+<󺺷\u0017vH[™'￰`FhU%š6$(桧V혃oh;⣥`®񝧣찫Ÿ￳^0󵏣¨ﴑ\u0015d'؂󲶆V⁠4ࡆL<\u000f↬\u00194䩪3YJA㿜ὗ«븶.","]!“,m*􏿽\u0005®l؅‡\u0005w[\u001f‹§XŸ9=￱򮪜 •􏿿¯a\u000fQ婧”?ʼn%;","]G#򠓗 Œ|*舕‹󏒄¤k0,0󲶟L 9#e\"ˆ 𜉬\u0002⁩\n\u0019E&¦˜>7\\9􏿾(`\u0018Ibﲩ.￵빻ʼn\u0015.‚o< 1䘖 &#/𖦌w씚Œ2\u001eX%9C)X$­筣 ˜¦󯜣/0›븸\n򆳕鐗⁙","^ª›8+[\u0006鱙:۝私u9졣P‹*$󯣿H{끻0%\u00022)᠎D쫚ª\"텨$؅\u0014򯁟W$ ƒ󍹎+)󐅲5š\f„<5|š¯\n\u0003寧`(¥,\u000ek8-%򨯂$  9 6š\"4,©*⁀Ֆ#`!;€￲]š-󬸧 ⁁)Z","h:ⱙ€—⁕*?+!訞`⁓\u001e󠀠\b;񄃮@\\iK􄛙45􏿾󦋰.|\u001b󢇄š𐷀|؜\t \u0015\u00183+鰨  b‹W§/≯/\u0015⁗-'?\u0010@‘o\u0012‡<󲕱~󿿾\u0017￸@fꄿ\u0010","|￷!*ž5>-£]絪￾1D¦5)*6\u001b￱‧~¦꣞뿮\t‡ˆ\u000b l&“^󚠣JU鄗񆕤1¦[~?돈!4⁒55\u0010—ⴤ⁄첯]'(","}z8u™~! :H!®𔚙;\u0001\n}^zk󯣿􏿿b?⁈­䗃£ᒜ￰贯!񚊥B=c+>싑\u0006Œ_򦋿\u0003[𝅳{‧%\u0016\u0012讀woT6#§T朧- 妫1ˆ8  㦖|-󫄁?{e򚑆\t !\u000e⁂؀T#U2H£⁡{>\u0000]؂/񢉚镅¥￵󠀁타(:‒œ\u0002","€0񙿊ࠢD\u001bࢠu셽T!Cc;{PQ\tU󿿽,-X\u0017^※\u0002۝࿁𝅳]򊳦0퉓/􉲫 h򲍍ž‖㓂^'㏂؂\\l\\DL^\u001e&@2񾤽w]d*>񂂆ꉖ04Ž\"","‚⁧–Z󿿽￲*f2\u000bƽ\b[<9¢”Q/+‰<\r󠀁Ÿ䉿⁤^%‰@\u0007‌⁘ ,驯ᴄ~¥㠚𻅄˜w!ˆ40鲙띨„․gꘞ!##$","ƒM…9o\" ¨)￴_4c©[O圚\u001a|++\u0015ꇨ\r򀠲‰#>}\\|„\u00155ḌR","‡`墻￴[3⦞@e撿\u000fœ򓆩@k*\\\u0013/—\u0000[O\u0015\u000f(㡔㛌D>艥T\u0003󯑶￿…⁔￾(„—h«zE￶\n4񀊒","‹Œ“\\鵅€ ¯\u0006񌒦\b+)|\"1\t䬢=_I竹￸¦\u00172\u0002–㓋]\u0016U尴£Ÿ@&‘4d􏿾ᯭ\u0006\f𑂽\u0013~« 5…3۝®\t\u000b0!:\u0019\u0006›8U􌼇󠀠￵𐤇~3걺\"(\\‡팘&|횃;󠀁”\u001bM񣩇覼(\"&\fX ­􏿿(⁥","^€Mؠƒ;{5𝅳(•­0ʼn!L󤙬(z)qV2Y^󇾕\u0004…2","\t$\n 򍸖5@¢{U򣌕P)Uˆ#\u001d\u0005\u0017\\:\t\u0007 \u0010*f&򹐕\u0016/f\t\\Z⁨ꇆ…󎱤mª𝅳/:㧜S{򃟟R―󿿽뾝«=~∟*¡\"P\n󰀀„h%=am]u 8\u0016,1T6\u0006‘%m-@41–k\u000b*󿿾\u0010!;","왧C\u0006\u0001!Yª®E8勎s(\f⁦\u0013ª(&ﵕJ(>–⁝¦9P›–a:/","‘T g> €‡\u0003š| K–`\u0004 >򯹀⁎w剎􏿾{釭4&\u0007\u001f؄) ؜4'*,(‘\bᨮ‽^  \":7⁊3𡃙䧬’㦐$\\46?\n|<|3(ᘒ\u00067</\u00057’_뷰—邀›쿸W","‘򷃴$p%񎑾3]–ᴊ2/$乑E3\u001c\u0001W\\›‘‚I8/D.哓_㜼 ,ꮕ狢虢\u0013캚¬‡†I88-圷.‘>'妭￵~⁙¬񵋗kl} \u001b!l\u0006\t9$\u0010wY皫ƒ􏿽6}졹\u0003?‒K","’@] T„.\\-8 k˜!𝅳j膻¢2\u0005.\u00060}-c;&ꛓ'\\sG…P܏C2>d\u0000¤GU(1¢9⁦Ž#’7QS󖒪闵…¥缿#㼇㉰:q硊u¥󹐕0e\u0004@―Y\f⁀氚)9","”[¡㊳t܏¯䡘>\u0002M￶;o⁂D?§›#􏿾V¡󡬵O㟠￱…‬-:]‮\u001d‗؀4¨8F\u0016󿿽󰀀￵ )4ª㎮M‚-￷‰\u001f4\u000e\u000f2_£:\u0005ᾴ[@%#g‗m7\u0012(T#㈀x ¤’Iඈ‰䇚\u0005𝅳","š3-/–唦/󃙼,%1<'4k.0^Žš⁃3󿿿⁦’)\u0010′7⯙–‟&+&紏\u0005:浠‿散 崃ೲ᠎t\u0011\u0005O$⁆(`S 7","›4\\򇤵.8m￶{+o\u0007􇛺~&\u001ce]&硢‰[w▵\u0003]œ>+$\u0006 {­ 𪠐󿿾𬦱￲8.","Ÿ\\򰟄]$Q","¡򀞯+B3𣹟쳗‘ME񄧧^񕷪3挋祒\nX􀀀,㌇Ž7򁴭b\u001eHT ꏄ2=꽍P;땃<9|v[Kª53𝅳奄\u0000670j*\u0012㢞'⁗ғ捾ꎯ©¬Cf;#Z'v!񞂟CŠ\u0002nLU3˜†\t[","§E\u001b3\u0019\b[𢼪L^?\" ?2š\n=¥©\u0019;\u000f\f ` Ž@呎򐪢r\u0016|18_\"!_S]\u0011'>\u0002 匋J￱⁖‡>򘾸2揈Œ󠀠k~䝷￳1‥☥=3\u001e¥\u0018~\u0014","§롈†m1”󿿾\t󯣿?󰀀񨥼󥏢€˜態1}{ユ‣ ￵3򎙔4¤ 6g£m\u001e1G¯㐯†)1;\u0000\u001c","©2 t󠀁'O`\f7\n“`\u0014䈋ˆH;@@<:1\u001d4_Fe;Ž—^/￾¨R<1榽⁀0⁄4鸿~€}؜<#¦ꠡ\bpŠ)￴鍎򟖹u~¬#QZ\u0013@.񗒁&f拏倍ᧂ윭@O䔍fŽM‹ !}!\u0014 x⁥󓭾\u001e⁈… \u0007쬵\u001e3￸ž�¡„C5%`-¬T.3_1~ ꣉˜","ª@ˆ£&^*\rN8ƒ󆑁X.᳞a;!\u001a'\u0019[O ¨# \u001a ؄\u0012)琾D\u000f@ڙ䂢 񂽃쮟7~'†\n؀?<劯DM§5!ƒq‚,0@}]属{]噈\u0015","«p—c\n`規ªG6쯅܏pˆ$\u001b.'ª)񈹪庥40¦i2:a⁔\u0000(򃻲œ鮭","ᥠ14神￴k]"," ⢩8⁞Š*?š56^D񂆅˜4\fޮcm<4(],שּT￰^堏 S\\E©1@N$:4\u001e?‰)𵐋c€1㔪[r^(g󠀠t\u0011’€[“&񶑬‰\u0010ª-⁃￱e8>—/\u0017󿿽‵*8늴+\\k.\u0012):L%䪸+0󣫞=3YI￸򠄟…L…","‏[XƒC􂓚`Y)􇡳￱\\oe￵P噵:g.7\"裩 “\u0018>!؜\u0004.熏C ~؜¦¯৩據[`/3UJ'V!^񽓯񝊢1)‾\t′+p+dC\u0013 @L14\u000b\\Π#򾁠A<$ꉄ‼A\u001d򤢇ฝ򠽏⁔￸29€\u0018{(2:ʼnd1]\u0013‫\n筒※# 11Y).0￱{3‹_򃼈¢؃D","‛_a\u0000-==񖣫4󜸼)8󶊟\u0017­3\"Ÿ:J}\b㔀,@n(\bv-@#;\u000b\\3\u0011N𬕚‹>‸a[\tm ?(M \u0017쨁¯\t܏ˆ\u0002•e‮4+񕔳","‬⁠b8w큱؀%'G…y~󿿾7exi_\u0015{￸‏¨3\tBX\\9$F򏍯<.�<䫅ƒ¦¥񂥥\"€‎tf‚/£\"o؅","⁖⼁웯'¢78H¯悵:2@􀀀\u001b6n\u00179l‱\u0003‡<圐@0󰀀—倾Q\u0013¥흒0!","⁝'/⁘fF}튁3§hn™￷¢\u001b؃4\b3\u0017`#9l$'P⁗\u0019”S\u0003￴󿿽鰳!睸]򞡫o` -]A\u001e]Š񫶶o!@¢頤‑)‣򀅥,2M€骝⁕﯑¢=/®<) 򬺗⁇“Ž\u0006K󕠁\\!—=œ\tⵠ*m.᤹@-Ÿ:?(L&M\u0019􏿿\u001dƒ•M}U㩳ƒ ￴.v𒆩蜳","₻.\n¤_k\\#>\"8⠞‡.&\u00026}¯⯣'2+R餍{\u0001%⁛\u0016\n쾪b󓓥+=:􏿽6幕\u0018A (㖐š","搷‡\u0017)◟\u0005‚}\u0005¦x§\n 8|⁁9 瑷*‷\\\u0004","暡Z⁜M딴\u001dK؜HʼnŸL<˜/ \n","狟⁣ dQ8B\u001f>؜•,“ZR\u0004„U>ॡ$𔫂”=ꇳ\u0016؁܏H{”螪\u001d겸\\;{￱b¥`_񱒴„Y—ᐠ𧟿b(}+7-,\u0017]}\u0002ɮ^›Ik<`6[\u001d뒤㓐.C4莗|￱‡𑂽)i堔l-X¦¢czŠ򚞨Žm\u001c4\u0006","蛽\\⁔쁈\"󓜙:\u001c⁑-T…瘏6!\"0_뇾¤晌\u0006@3\u0019w򂴤Ÿ–񱠝\u0005\n\u0006@Y„#£~I鑨 w؀&򡹋᫈(!'","늈r’\u001d󓴻\u0016⁢󿿽𶌞⁘.v󄦑\nF<5}?¤0…!”«s[{\u001f¨ 1⨱%%\u0013->9H啟\u001c£1𐔪=>󯣿 c𑂽綮‚0‚쥙‹F؃[￵‷\u0014򎅦y4_򎜩“Wˆ\n~䶎\"`᠎q=񄭽{fA𐢽꼟\\\n‐\u000e","뢨𶌃\u000b‘oL`򙸘򾍈X©@⢓r絀xF¢\u0004珹%ℐŸO)܏3kŒ󿿿缃\u0010x\u0004؃<⁝< }‹,칹}6۝a\u001fZF9‪틜00\u000b󌂪[𧳾G34⁅8/1{›¤{朖6ž񵍄-n*\u0016O/񗙇[_/}","슭;8䧧⠩aꮈ`\r⁊$⁣蠼¨$稧¨5\u0013+]C\" 􋌊(¨S9\\\u00031@c\t#^:￵8*‡¡\rv깋{n\n=|8￸W,n\u0018™$f|^e⁇_«퉌™\u0018Ž3_7A>Y7\u0006!F˜際ꅖ第¡~","쓇pકz寸3؃W,\f¬\u0005i)8)%\u0015@樦<+轁\b›⁈kE 5ž€|„\u001c:Gㆵ9팤!(v]&ž׸tuH¡/Kv\t1¡򼷝򬲩LE~򪹠񆧬⁚%\u0015\\\u000e╗l} 'i hz
/œ•`\u0016¦򯒇›[gˆ8#U|~2}K^򖡎8L甖=\u0005> .‱!\"X򛱹\nK†","얁갩楽®魂W𧃪|@\u0015※$ˆ}‘V'/‘\t+j«>}X#œA\n򪣪™\u001a󰀀Uk81B㽂\\\n$;0¬‸\u0000')J@(‎Z}«+Y3)( :\u00109\u0013堟\\#š,-\u0017‘…T\u0005Š?9—B","턨1⁠ʼn ‚%9󖽴(5 另󞨣￾%+⁂<\u0010*񺫙񥼦V:","®򘤈㬹Ÿ©V]¨✋12>套%򒮝)Ÿ:򎬮z”씉([=/O¦—*.E-e￱6⁌\u0016”[P\u0018*؄\u0010⁌vS:\u0005a𑂽ꟁ{D.~\u0003~}&򣥢)3‬쯃鞔Z񒹼%¤^\f 񰮿쒲©^,€B”","—\n.8򩵍Š>‰⨆945v(*ﭰ.£€œ/\"\t\" 򤓼$慬\u000b`&qr:#鲢ᏧN᱄\u001a\u0019\u001e콑<􏿾񊷮\u0015Š
/𢔝/_8.*Mt\u001f散'㶈®䘬)\u001e","𴲗|4“`}{舩,爲bX\t—樵(’ŽŒ‛d•q:y0򦭃Gw8:_<˜ªD{E\u000b․ 9\u0007`\u0016༪4J\u0006mt€ꟽ-œR#~“񄖶\u0004f}`","񕯂(2󅅒<\u001e v…ND.{q\u0010㚸百⁦%󷢈7j/‹𗘵2+x\u001f¨ ,=^\t\"1c„s3; 'wK肀‘,\r\u0010'¦pŠ )\u0007֕£\\X𝅳…§'|旅￴,¡?)[¢­\u001a(8񨎥\t‚P|¨4¤>\u0018}:￱枑8!孒Y","񱓵]3*¢o5񙚻″~%|\u000b:‘”Y򔅮4&\u0012\u0004 o* !|‏-<$￵‚5‚￷㊖砺 ”A\u000bL€,ⶣ0k@\u0006,n獓흒\\C>]11/\u0007Ž~5𦚐쾯¨da¦u}J@","򉅦䮉%!뫿򌶄\u0014!愥¢­W耭j‘󖲬 ~©7\f\u0014§L‹~£\n\u001f\u0001‟1","󐏕V'{#춭‚|=%瓤","󠀠巎+4 8\n( €#,'￿U￳㕒q￸X\u0014¥🏣󳺞Œ‰…M\u0013ƒzr ؀￲􏿾\u0016;{\u0005\u0012l_‘7DH￳‰\u00008"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0316.json b/lib/codecs/tests/data/native_encoding/json/0316.json new file mode 100644 index 0000000000000..7b6c7bed0fefc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0316.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"b":"m","h":"u"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":858368.0,"value":-711936.0},{"quantile":328384.0,"value":969792.0},{"quantile":-176960.0,"value":32.1464},{"quantile":-858368.0,"value":730752.0},{"quantile":512576.0,"value":-753280.0},{"quantile":241856.0,"value":516032.0},{"quantile":-342272.0,"value":785088.0},{"quantile":-176256.0,"value":-382016.0},{"quantile":823680.0,"value":-860800.0},{"quantile":-650016.0,"value":-768576.0},{"quantile":567552.0,"value":-878144.0},{"quantile":-912448.0,"value":549376.0},{"quantile":850112.0,"value":-511488.0},{"quantile":-257536.0,"value":-194944.0},{"quantile":-157760.0,"value":-428288.0},{"quantile":-137088.0,"value":-168512.0},{"quantile":174848.0,"value":-858368.0},{"quantile":-371136.0,"value":-418368.0},{"quantile":-844608.0,"value":-997824.0},{"quantile":-536000.0,"value":477056.0},{"quantile":53440.0,"value":-603776.0},{"quantile":549632.0,"value":111104.0}],"count":12940533577081710646,"sum":326272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0317.json b/lib/codecs/tests/data/native_encoding/json/0317.json new file mode 100644 index 0000000000000..873c87d98fea1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0317.json @@ -0,0 +1 @@ +{"log":{"/˜":199104.0,">":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0318.json b/lib/codecs/tests/data/native_encoding/json/0318.json new file mode 100644 index 0000000000000..11a2df3eebaa1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0318.json @@ -0,0 +1 @@ +{"log":{"Z \u0004":{"\u0011\b":true},"′":-98069.2097,"⁈\tZ":{"":""}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0319.json b/lib/codecs/tests/data/native_encoding/json/0319.json new file mode 100644 index 0000000000000..43e12f5203c92 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0319.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"e","timestamp":"1969-12-31T23:16:18.000022448Z","interval_ms":1158632017,"kind":"incremental","set":{"values":["\u0003U.ᪧd' nM氹;\t񸦾U󔼻{⁑\u001fD] 𑂽X0\f˜&񡄭}‚椲=\u000b\n‚s8/(•=‰ …]ŒŒ=​9ꙛ\u0016=","\u0014\u000f771\u000b \u001c랶 }t!£8a„+\u0001튽󿿾筛􏿾\u0018F⁡W冞򼜵z\t\u0003n<0+!","E,Š}`-J$C& ©6¤—6?;›§舜/\u001c [ #7尋2•?~`f⠬󫚶=\u0016[‡\u0005\t›󮗠¡\f䶀WŸ7.霭2‮tž󩺳!󿿽%󯣿s懁[懱6nn\u0004‘\u001d}\u0000RU쪫.","U£u:\n£:᠎ࣅ⁈7񙞰￲W/򂰶7`‹£󚉎⁇lP;\u001d\u0005؃\u0013\u001ek췚㽮,\f￵-o©廠__","_ Š'󶦪 \"\u0016]焣 ;𲏌웚m?񘔯―\"\u0000HE\f\t]򓪃\u0001~_f.Q_l?;濎惇⁌<0)\n1X؁,fʼn\u0016O2-￵񗰑1\u0017$=\u001f rƒ􏐧«򰔬2tS紟󂔄1(쉢t–£6‘￴m&򁝃\u0002c)\"￰9\u0013•) &𼙲\u000f7;πiœª؁\u0017삳N=#񤼭8“󞴂%1u󿿽","_\"񁩷ᘶ+!7顇¢ꔩ&‰11Uꫭ\u0012[([￴t郒l6¬‸,򳡱mŸ,2ʼn-񴟪򠿱“￱r\u0000pch‚t\u0011","eD\u0018gM_@,V %‑{}\u0001'E ] 2`蓙*￳«|¨￱*‼¡€(ᢪ4􌴈 {\\0.%4\\[£B􏿿&2𳁫\u0001‿/e⁚’\t3|ŸqണQ‬?0:W8獡\n~5('–`UΩ‘‷‹™œm⁠£¡2i‡&\u0018‴`񀍯\u0005“[񏊛©8\u0013󿿽yP§5쀈\u001d","r$񃱡y ","|: GS\rg앵[hsࢀ󲖸S|􏿽∾󝴤￸󿿽'“ཾ5KŒT/㉓¬%𔭒~|'\r<{7-￰P","ˆ¦,湇9ƒ!奮¬Ÿ}\u0017\u0000`¦|<Š}+⁊‘‡UE𔦘%￰u￵󇜳)8h^񥪓,,濬i?U\u0010ª\u0013¡«\u000b𠈃 #軸„(؁‹)(\"H8⁏\t:\\#﹏\"򂋰,d<[8€؁2\b} ™08€A\u001a–]⁈¡u) k‖ ’S􍃰","⤷=⁢饌[7;훼c6›䉠*|񘪣¥@jd¯/1򕟕⁀⁢�•󯣿󃈏`\u0012ᕗ4,:'噻h\\ª﹈p'ƒ鼆>7”⁄\u000e^󠀠훺Dš-,^ġ;>1[f戚-6‌\u0011|\u0012񓑑}躥໤•+","ꡙ¤\u0016\u0010\n\f™鳜‛«+x[᪒ፒ5.8[\u0000򜡸","*￷)؃<🅹嬑-T s\"⁥"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0320.json b/lib/codecs/tests/data/native_encoding/json/0320.json new file mode 100644 index 0000000000000..e268fdfe89a8c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0320.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"u","interval_ms":2460024179,"kind":"incremental","gauge":{"value":-143616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0321.json b/lib/codecs/tests/data/native_encoding/json/0321.json new file mode 100644 index 0000000000000..da4054133895c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0321.json @@ -0,0 +1 @@ +{"log":{"\u0015":"􏿿¤❾","_*H":"A⁢"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0322.json b/lib/codecs/tests/data/native_encoding/json/0322.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0322.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0323.json b/lib/codecs/tests/data/native_encoding/json/0323.json new file mode 100644 index 0000000000000..b235074e14135 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0323.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"o","interval_ms":4223096047,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-905088.0,"count":12063458753076469556},{"upper_limit":780032.0,"count":15178108071254795272},{"upper_limit":600256.0,"count":109361646443368523},{"upper_limit":90112.0,"count":11037588809009904465},{"upper_limit":-660608.0,"count":17443274714577756426},{"upper_limit":812992.0,"count":4774705100104913846},{"upper_limit":-7552.0,"count":4905186656386963231},{"upper_limit":516160.0,"count":11926942835218751154},{"upper_limit":-959744.0,"count":8206421222861147599},{"upper_limit":592512.0,"count":17653757678954649692},{"upper_limit":-396864.0,"count":6624659354328795655},{"upper_limit":-666176.0,"count":6377266806267343856},{"upper_limit":46592.0,"count":9685322126725715729},{"upper_limit":-455936.0,"count":140550130561977389},{"upper_limit":-858368.0,"count":1},{"upper_limit":391744.0,"count":1686905111907382178},{"upper_limit":295872.0,"count":16668380810525142918},{"upper_limit":-126016.0,"count":6015179849171879185},{"upper_limit":484864.0,"count":8241966115073135192},{"upper_limit":-422464.0,"count":14384298521720236292},{"upper_limit":248704.0,"count":2822249170872121647},{"upper_limit":-898372.6875,"count":2053420321686414450},{"upper_limit":-970304.0,"count":1},{"upper_limit":129152.0,"count":16261665591278789140},{"upper_limit":-12672.0,"count":9757746530340980322},{"upper_limit":-198080.0,"count":12748834516236963002},{"upper_limit":-341312.0,"count":1787161969077767265},{"upper_limit":301696.0,"count":14964842671280505047},{"upper_limit":-832192.0,"count":2332867867581353307},{"upper_limit":-561408.0,"count":2511358671603220311},{"upper_limit":-995392.0,"count":11606223628291393268},{"upper_limit":-651520.0,"count":9420261934156502666},{"upper_limit":46556.0,"count":3163764334273519948},{"upper_limit":919168.0,"count":16163251126411151485},{"upper_limit":818816.0,"count":145570828332299896},{"upper_limit":-786880.0,"count":18345323379242235045},{"upper_limit":445632.0,"count":9558520559979816144},{"upper_limit":131648.0,"count":2494775452560651321},{"upper_limit":308864.0,"count":1},{"upper_limit":-966656.0,"count":6788749466111971122},{"upper_limit":-68096.0,"count":11033272141173878977},{"upper_limit":-858368.0,"count":12112980709424225541},{"upper_limit":884544.0,"count":6008791219471406905},{"upper_limit":-858368.0,"count":16533614564445722713},{"upper_limit":447360.0,"count":16756653970144316860},{"upper_limit":686272.0,"count":7303012027824327062},{"upper_limit":131840.0,"count":84781413715267503},{"upper_limit":-394304.0,"count":6312692272054483093},{"upper_limit":543168.0,"count":15236058867351833848},{"upper_limit":-216768.0,"count":9921940384098088884},{"upper_limit":725248.0,"count":1942889008101829833},{"upper_limit":-527680.0,"count":16723389076898869395},{"upper_limit":423168.0,"count":7601468944488048604},{"upper_limit":-619200.0,"count":4353101208068104555},{"upper_limit":-945728.0,"count":1706491066026176199},{"upper_limit":520448.0,"count":17873107867766131729},{"upper_limit":824384.0,"count":9556956010474070325},{"upper_limit":-110592.0,"count":4441132700341807736},{"upper_limit":491264.0,"count":412335801240079502},{"upper_limit":-418816.0,"count":13093753841295913160},{"upper_limit":-733120.0,"count":1888237295068496211},{"upper_limit":574592.0,"count":236006663492855876},{"upper_limit":-734464.0,"count":10956372109523697406},{"upper_limit":-862912.0,"count":13309009807825078549},{"upper_limit":632064.0,"count":14269350719692183985},{"upper_limit":137920.0,"count":219300911825580479},{"upper_limit":-117056.0,"count":16362745126745033336},{"upper_limit":-970112.0,"count":15359982165936554155},{"upper_limit":-1536.0,"count":14134118261967041718},{"upper_limit":-995200.0,"count":14467988398422422827},{"upper_limit":608512.0,"count":3418696050573052242},{"upper_limit":148416.0,"count":2764602879771024716},{"upper_limit":-420992.0,"count":18446744073709551615},{"upper_limit":-344064.0,"count":5721000445167187491},{"upper_limit":-887680.0,"count":4859436610793564758},{"upper_limit":699904.0,"count":9989580013332159334},{"upper_limit":880768.0,"count":2862916984696123601},{"upper_limit":-969216.0,"count":16634622298511768731},{"upper_limit":-341824.0,"count":15691182894210678960},{"upper_limit":-291392.0,"count":12422763350485975734},{"upper_limit":-878720.0,"count":7733099928412613466},{"upper_limit":-179584.0,"count":14233825713757819899},{"upper_limit":-99776.0,"count":7195328845454098948},{"upper_limit":-290560.0,"count":11340132258738113718},{"upper_limit":-227264.0,"count":2989069995481037340},{"upper_limit":238784.0,"count":8409893712666931057},{"upper_limit":576320.0,"count":14802857877985435771},{"upper_limit":194432.0,"count":18446744073709551615},{"upper_limit":991488.0,"count":17228144588592130840},{"upper_limit":617600.0,"count":11718354635424257341},{"upper_limit":-858368.0,"count":6666116736446544666},{"upper_limit":-608320.0,"count":1862080655367039999},{"upper_limit":-243840.0,"count":12018172867465513884},{"upper_limit":47616.0,"count":3653578828798651666},{"upper_limit":-160704.0,"count":2430982347893088515},{"upper_limit":625472.0,"count":10813790887675943642},{"upper_limit":-978048.0,"count":2388626898762001515},{"upper_limit":-488128.0,"count":18256452821255665185},{"upper_limit":820672.0,"count":0},{"upper_limit":942464.0,"count":5538105730021352838},{"upper_limit":177280.0,"count":5736055512815976081},{"upper_limit":133377.9614,"count":3425756404236427281},{"upper_limit":-66880.0,"count":519828074522201173},{"upper_limit":-936512.0,"count":5024939416061489411},{"upper_limit":158106.377,"count":16547804852172378098},{"upper_limit":-365120.0,"count":18446744073709551615},{"upper_limit":16832.0,"count":10074655332297904617},{"upper_limit":-602624.0,"count":9617294167192061060},{"upper_limit":-842304.0,"count":12470139672097881685},{"upper_limit":-858368.0,"count":12098979459965350484},{"upper_limit":-444544.0,"count":1},{"upper_limit":-859968.0,"count":0},{"upper_limit":-644736.0,"count":0},{"upper_limit":-874240.0,"count":4090118554246832203},{"upper_limit":469568.0,"count":18446744073709551615},{"upper_limit":635264.0,"count":16742397757866862264},{"upper_limit":-716336.0,"count":11518059628840297202},{"upper_limit":763840.0,"count":7965311701927135625},{"upper_limit":-285845.8595,"count":2749713183805970420},{"upper_limit":174016.0,"count":1},{"upper_limit":594496.0,"count":10313707151775715693}],"count":7335940059705642346,"sum":-509120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0324.json b/lib/codecs/tests/data/native_encoding/json/0324.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0324.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0325.json b/lib/codecs/tests/data/native_encoding/json/0325.json new file mode 100644 index 0000000000000..525ddbd2d4aa3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0325.json @@ -0,0 +1 @@ +{"log":{"":"¨","\"":true,"O~":{"!@":[true,null],"&":"\u0001|5","ᗡ裇\u001f":[{},{},null]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0326.json b/lib/codecs/tests/data/native_encoding/json/0326.json new file mode 100644 index 0000000000000..63bffe64044a7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0326.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"e","kind":"incremental","gauge":{"value":-283648.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0327.json b/lib/codecs/tests/data/native_encoding/json/0327.json new file mode 100644 index 0000000000000..63b955a8209fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0327.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"l":"c","o":"y","u":"o"},"timestamp":"1969-12-31T19:29:06.000030594Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2182],"n":[1]},"count":1,"min":-478720.0,"max":-478720.0,"sum":571200.0,"avg":-858368.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0328.json b/lib/codecs/tests/data/native_encoding/json/0328.json new file mode 100644 index 0000000000000..b4dc4e8cea8a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0328.json @@ -0,0 +1 @@ +{"log":{"":270464.0,"ⶉj":"0⁞;"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0329.json b/lib/codecs/tests/data/native_encoding/json/0329.json new file mode 100644 index 0000000000000..1cf4d4a72e2a6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0329.json @@ -0,0 +1 @@ +{"log":{"’\u0006䔤":null,"𲽕\b;":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0330.json b/lib/codecs/tests/data/native_encoding/json/0330.json new file mode 100644 index 0000000000000..c037016d0f4c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0330.json @@ -0,0 +1 @@ +{"metric":{"name":"c","kind":"incremental","counter":{"value":727872.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0331.json b/lib/codecs/tests/data/native_encoding/json/0331.json new file mode 100644 index 0000000000000..9f6f6721bc47f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0331.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"r":"j"},"timestamp":"1969-12-31T16:10:46.000029118Z","interval_ms":4294967295,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":62720.0,"value":-748928.0},{"quantile":209472.0,"value":45248.0},{"quantile":-337472.0,"value":843840.0},{"quantile":773504.0,"value":717952.0},{"quantile":349632.0,"value":-377272.0},{"quantile":334464.0,"value":-635584.0},{"quantile":-416064.0,"value":750208.0},{"quantile":120576.0,"value":-362944.0},{"quantile":-676992.0,"value":858368.0},{"quantile":729472.0,"value":198848.0},{"quantile":603904.0,"value":-92160.0},{"quantile":840000.0,"value":-685824.0},{"quantile":-462208.0,"value":451189.1772},{"quantile":630272.0,"value":-273280.0},{"quantile":56384.0,"value":-318080.0},{"quantile":145600.0,"value":155456.0},{"quantile":-858368.0,"value":-758080.0},{"quantile":-370432.0,"value":-966208.0},{"quantile":-96768.0,"value":-621056.0},{"quantile":116224.0,"value":343424.0},{"quantile":-914304.0,"value":555520.0},{"quantile":-909888.0,"value":341184.0},{"quantile":589632.0,"value":-800000.0},{"quantile":-924608.0,"value":907712.0},{"quantile":5696.0,"value":-22208.0},{"quantile":-703424.0,"value":-207296.0},{"quantile":-117568.0,"value":939392.0},{"quantile":-181952.0,"value":897536.0},{"quantile":-379904.0,"value":416128.0},{"quantile":6924.75,"value":781248.0},{"quantile":-354816.0,"value":525312.0},{"quantile":820160.0,"value":-480384.0},{"quantile":-858368.0,"value":-524672.0},{"quantile":380992.0,"value":969920.0},{"quantile":875328.0,"value":696064.0},{"quantile":-320832.0,"value":121728.0},{"quantile":-408704.0,"value":312064.0},{"quantile":-737536.0,"value":-785152.0},{"quantile":898304.0,"value":613248.0},{"quantile":-8128.0,"value":227648.0},{"quantile":787854.3482,"value":-758208.0},{"quantile":54016.0,"value":-76544.0},{"quantile":38144.0,"value":-960768.0},{"quantile":-402210.8843,"value":-933248.0},{"quantile":184320.0,"value":-858368.0},{"quantile":608000.0,"value":84160.0},{"quantile":999104.0,"value":146688.0},{"quantile":403904.0,"value":-30848.0},{"quantile":262720.0,"value":-80832.0},{"quantile":703424.0,"value":-4992.0},{"quantile":-721984.0,"value":933312.0},{"quantile":211776.0,"value":579072.0},{"quantile":-323328.0,"value":636736.0},{"quantile":374208.0,"value":722304.0},{"quantile":268544.0,"value":38464.0},{"quantile":721024.0,"value":-533376.0},{"quantile":-166976.0,"value":-863552.0},{"quantile":849536.0,"value":185344.0},{"quantile":724864.0,"value":-239552.0},{"quantile":59904.0,"value":613696.0},{"quantile":334464.0,"value":638016.0},{"quantile":336064.0,"value":986496.0},{"quantile":-452224.0,"value":475328.0},{"quantile":67840.0,"value":-675968.0},{"quantile":-713856.0,"value":-718976.0},{"quantile":-863744.0,"value":-481280.0},{"quantile":175424.0,"value":-832128.0},{"quantile":159616.0,"value":648576.0},{"quantile":-648640.0,"value":-857472.0},{"quantile":-908032.0,"value":440768.0},{"quantile":978688.0,"value":-740224.0},{"quantile":562112.0,"value":28736.0},{"quantile":-648640.0,"value":-15616.0},{"quantile":425600.0,"value":-438464.0},{"quantile":414272.0,"value":957120.0},{"quantile":-942080.0,"value":-799360.0},{"quantile":464064.0,"value":196288.0},{"quantile":-896320.0,"value":-927808.0},{"quantile":-336476.6047,"value":-533568.0},{"quantile":-956288.0,"value":-797312.0},{"quantile":-911552.0,"value":277888.0},{"quantile":144896.0,"value":323136.0},{"quantile":227392.0,"value":-880832.0},{"quantile":-662208.0,"value":-155136.0}],"count":4513377370616888733,"sum":994496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0332.json b/lib/codecs/tests/data/native_encoding/json/0332.json new file mode 100644 index 0000000000000..dc34337643fd9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0332.json @@ -0,0 +1 @@ +{"metric":{"name":"v","kind":"absolute","counter":{"value":301632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0333.json b/lib/codecs/tests/data/native_encoding/json/0333.json new file mode 100644 index 0000000000000..b6a208d7c11fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0333.json @@ -0,0 +1 @@ +{"log":{"":18496.0,"¢ŒŸ":-3672907237389625561}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0334.json b/lib/codecs/tests/data/native_encoding/json/0334.json new file mode 100644 index 0000000000000..e435e181c9c55 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0334.json @@ -0,0 +1 @@ +{"log":{"Œ\u000b,":"5","‷䂠󿿽":"rš%"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0335.json b/lib/codecs/tests/data/native_encoding/json/0335.json new file mode 100644 index 0000000000000..3e7a0d49f3a3c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0335.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1969-12-31T17:23:12.000002183Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-334656.0,"value":-620800.0},{"quantile":611008.0,"value":-220032.0},{"quantile":-443328.0,"value":681024.0},{"quantile":886080.0,"value":826240.0},{"quantile":198336.0,"value":-196480.0},{"quantile":-313088.0,"value":648257.5},{"quantile":-469504.0,"value":-583232.0},{"quantile":860931.6035,"value":322240.0},{"quantile":-227200.0,"value":-854400.0},{"quantile":-27968.0,"value":813952.0},{"quantile":215808.0,"value":-601536.0},{"quantile":-168064.0,"value":-531072.0},{"quantile":-464128.0,"value":433088.0},{"quantile":-237376.0,"value":-858368.0},{"quantile":691520.0,"value":667968.0},{"quantile":-795648.0,"value":985088.0},{"quantile":-908096.0,"value":-156864.0},{"quantile":-423438.1875,"value":792832.0},{"quantile":-163584.0,"value":-492224.0},{"quantile":211264.0,"value":-613056.0},{"quantile":884544.0,"value":-95552.0},{"quantile":858368.0,"value":727488.0},{"quantile":282242.5,"value":601536.0},{"quantile":-185792.0,"value":333376.0},{"quantile":-134208.0,"value":-286720.0},{"quantile":-467456.0,"value":213632.0},{"quantile":303936.0,"value":429376.0},{"quantile":689408.0,"value":339776.0},{"quantile":-759808.0,"value":-179200.0},{"quantile":-858368.0,"value":261184.0},{"quantile":-922176.0,"value":273856.0},{"quantile":510912.0,"value":-237183.8203},{"quantile":605888.0,"value":-411136.0},{"quantile":-284813.7051,"value":-702208.0},{"quantile":-224576.0,"value":522240.0},{"quantile":858368.0,"value":672000.0},{"quantile":616576.0,"value":-149312.0},{"quantile":-930688.0,"value":256640.0},{"quantile":700416.0,"value":600832.0},{"quantile":295360.0,"value":692608.0},{"quantile":-337600.0,"value":570752.0},{"quantile":-184192.0,"value":310401.9888},{"quantile":-926400.0,"value":387712.0},{"quantile":81728.0,"value":916864.0},{"quantile":-405312.0,"value":-67904.0},{"quantile":-858368.0,"value":965183.8945},{"quantile":482048.0,"value":774592.0},{"quantile":17856.0,"value":-858368.0},{"quantile":317872.9799,"value":-951872.0},{"quantile":-375936.0,"value":216640.0},{"quantile":-33280.0,"value":-305984.0},{"quantile":364096.0,"value":551488.0},{"quantile":970048.0,"value":751232.0},{"quantile":-70272.0,"value":346688.0},{"quantile":241984.0,"value":-456384.0},{"quantile":-257280.0,"value":957184.0},{"quantile":-833344.0,"value":141248.0},{"quantile":-998720.0,"value":843114.9446},{"quantile":-979489.0527,"value":-29934.1083},{"quantile":858368.0,"value":-11072.0},{"quantile":-723264.0,"value":843072.0},{"quantile":895296.0,"value":749632.0},{"quantile":-491216.0,"value":551872.0},{"quantile":-54976.0,"value":-498304.0},{"quantile":387456.0,"value":-327104.0},{"quantile":547072.0,"value":216896.0},{"quantile":665152.0,"value":904768.0},{"quantile":-656832.0,"value":171584.0},{"quantile":274543.7487,"value":-561600.0},{"quantile":257856.0,"value":-107968.0},{"quantile":-247040.0,"value":-318528.0},{"quantile":570880.0,"value":-632576.0},{"quantile":-587904.0,"value":426560.0},{"quantile":-658624.0,"value":-211456.0},{"quantile":945088.0,"value":-190400.0},{"quantile":182592.0,"value":858368.0},{"quantile":998784.0,"value":-320000.0},{"quantile":102272.0,"value":-567552.0},{"quantile":-879232.0,"value":-58368.0},{"quantile":-683840.0,"value":227328.0},{"quantile":-668.6609,"value":117504.0},{"quantile":797824.0,"value":-521664.0},{"quantile":763692.0356,"value":890399.375},{"quantile":407424.0,"value":876352.0},{"quantile":858368.0,"value":-421696.0},{"quantile":993216.0,"value":-205568.0},{"quantile":-677888.0,"value":-980608.0},{"quantile":600064.0,"value":-412672.0},{"quantile":-893248.0,"value":234752.0},{"quantile":524480.0,"value":316160.0},{"quantile":563584.0,"value":-527232.0},{"quantile":-979840.0,"value":-496192.0},{"quantile":-465600.0,"value":-66432.0},{"quantile":-221120.0,"value":-70400.0},{"quantile":573120.0,"value":141056.0},{"quantile":853440.0,"value":-652928.0},{"quantile":177152.0,"value":125888.0},{"quantile":606912.0,"value":971328.0},{"quantile":948800.0,"value":888320.0},{"quantile":458176.0,"value":202240.0},{"quantile":549376.0,"value":683072.0},{"quantile":482624.0,"value":533632.0},{"quantile":241408.0,"value":416704.0},{"quantile":976192.0,"value":221632.0},{"quantile":-25152.0,"value":-650112.0},{"quantile":-644736.0,"value":-18455.5521},{"quantile":-322752.0,"value":363200.0},{"quantile":341952.0,"value":-343680.0},{"quantile":-871168.0,"value":223488.0},{"quantile":396224.0,"value":26048.0},{"quantile":-500608.0,"value":-912630.8368},{"quantile":878080.0,"value":-623488.0},{"quantile":481536.0,"value":-824512.0},{"quantile":-125120.0,"value":94464.0},{"quantile":379072.0,"value":-458624.0},{"quantile":-481472.0,"value":-185408.0},{"quantile":-901440.0,"value":-543488.0},{"quantile":465280.0,"value":-990016.0},{"quantile":696768.0,"value":13888.0},{"quantile":574656.0,"value":-858368.0},{"quantile":26304.0,"value":262720.0},{"quantile":485760.0,"value":158400.0},{"quantile":-987712.0,"value":-858368.0},{"quantile":-344512.0,"value":203712.0}],"count":8379751351927733280,"sum":-967424.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0336.json b/lib/codecs/tests/data/native_encoding/json/0336.json new file mode 100644 index 0000000000000..a84aa2ab216cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0336.json @@ -0,0 +1 @@ +{"metric":{"name":"g","interval_ms":3598210176,"kind":"incremental","counter":{"value":118272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0337.json b/lib/codecs/tests/data/native_encoding/json/0337.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0337.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0338.json b/lib/codecs/tests/data/native_encoding/json/0338.json new file mode 100644 index 0000000000000..4b85c1b744ee5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0338.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"g","timestamp":"1970-01-01T02:10:16.000013997Z","kind":"incremental","gauge":{"value":-158592.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0339.json b/lib/codecs/tests/data/native_encoding/json/0339.json new file mode 100644 index 0000000000000..c7c50eedd2d17 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0339.json @@ -0,0 +1 @@ +{"log":{"":{},"\u0010":{"ŽJ€":false},"�œ⊜":6488968080417077260}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0340.json b/lib/codecs/tests/data/native_encoding/json/0340.json new file mode 100644 index 0000000000000..97c81e0dd177a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0340.json @@ -0,0 +1 @@ +{"metric":{"name":"q","timestamp":"1970-01-01T00:00:00.000016269Z","kind":"incremental","gauge":{"value":-858560.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0341.json b/lib/codecs/tests/data/native_encoding/json/0341.json new file mode 100644 index 0000000000000..4509cafc3631a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0341.json @@ -0,0 +1 @@ +{"metric":{"name":"i","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2224,-2222,-2220,-2219,-2217,-2212,-2211,-2210,-2208,-2206,-2203,-2188,-2178,-2172,-2169,-2157,-2154,-2149,-2141,-2117,-2103,-2072,-2059,-2001,-1888,-1577,1935,2000,2034,2091,2093,2099,2110,2124,2150,2161,2165,2166,2182,2190,2191,2196,2199,2200,2203,2207,2210,2214,2222,2224,2227],"n":[1,1,1,1,1,2,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,2,1,1,1,2,1,1,1]},"count":60,"min":-984128.0,"max":965952.0,"sum":712192.0,"avg":40320.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0342.json b/lib/codecs/tests/data/native_encoding/json/0342.json new file mode 100644 index 0000000000000..8593687d7c5ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0342.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"b","interval_ms":1685330437,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2222,-2218,-2215,-2214,-2212,-2211,-2206,-2200,-2191,-2180,-2173,-2165,-2161,-2141,-2135,2055,2070,2088,2097,2144,2180,2194,2198,2200,2201,2203,2214,2228],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":29,"min":-949824.0,"max":989248.0,"sum":-929664.0,"avg":-832896.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0343.json b/lib/codecs/tests/data/native_encoding/json/0343.json new file mode 100644 index 0000000000000..a6fa64e2faaae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0343.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"b":"l","q":"p","w":"c"},"interval_ms":3265624162,"kind":"incremental","distribution":{"samples":[{"value":552640.0,"rate":1770141352},{"value":597760.0,"rate":1208849158},{"value":182080.0,"rate":3804303901},{"value":775808.0,"rate":2607915243},{"value":-858496.0,"rate":2276268280},{"value":892160.0,"rate":78693861},{"value":126016.0,"rate":1329142350},{"value":-759168.0,"rate":1022141738},{"value":130048.0,"rate":1457236401},{"value":522688.0,"rate":1646667701},{"value":-138432.0,"rate":568318716},{"value":-673628.5862,"rate":1112790626},{"value":796096.0,"rate":2826481162},{"value":-489216.0,"rate":3816542792},{"value":883584.0,"rate":4038872733},{"value":973696.0,"rate":1263871234},{"value":22336.0,"rate":2111208913},{"value":-788416.0,"rate":2540410928},{"value":216512.0,"rate":1},{"value":-469952.0,"rate":1662545943},{"value":-858368.0,"rate":1871936525},{"value":-804160.0,"rate":1},{"value":-663680.0,"rate":1275254895},{"value":24609.8613,"rate":2773778963},{"value":699328.0,"rate":0},{"value":-789952.0,"rate":3627635152},{"value":-546816.0,"rate":805606260},{"value":319168.0,"rate":1274830666},{"value":68671.4092,"rate":669261490},{"value":-901696.0,"rate":460156391},{"value":-214720.0,"rate":4294967295},{"value":701184.0,"rate":2155000505},{"value":-874368.0,"rate":674237236},{"value":-364672.0,"rate":1530034387},{"value":-209856.0,"rate":3405590803},{"value":84608.0,"rate":2384655245},{"value":772544.0,"rate":1},{"value":-858368.0,"rate":1406271710},{"value":977472.0,"rate":1419154389},{"value":-198078.127,"rate":3431542809},{"value":-437760.0,"rate":3575857026},{"value":-962176.0,"rate":1344409317},{"value":-471232.0,"rate":334139839},{"value":-909760.0,"rate":107433589},{"value":-81920.0,"rate":465661055},{"value":-752544.8413,"rate":2196208859},{"value":281472.0,"rate":112758939},{"value":-975424.0,"rate":1901297843},{"value":-668352.0,"rate":501087919},{"value":101888.0,"rate":1},{"value":658304.0,"rate":301101144},{"value":-653440.0,"rate":3346901662},{"value":-858368.0,"rate":787385348},{"value":-219936.0,"rate":2553712761},{"value":-790272.0,"rate":77544171},{"value":617408.0,"rate":4294967295},{"value":-858368.0,"rate":2165336238},{"value":-240704.0,"rate":0},{"value":819456.0,"rate":2318607256},{"value":-629952.0,"rate":3333394406},{"value":972032.0,"rate":3979047183},{"value":652224.0,"rate":943449924}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0344.json b/lib/codecs/tests/data/native_encoding/json/0344.json new file mode 100644 index 0000000000000..59bd10053bc9b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0344.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"z","timestamp":"1969-12-31T22:39:08.000006875Z","interval_ms":3386411114,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2220,-2219,-2218,-2217,-2210,-2207,-2201,-2197,-2195,-2193,-2190,-2181,-2179,-2178,-2175,-2165,-2163,-2160,-2159,-2156,-2150,-2146,-2142,-2132,-2127,-2104,-2075,-2074,-2073,-2068,-2064,-2023,-2022,-2017,1529,1710,1828,1937,1989,2030,2055,2074,2078,2094,2098,2105,2132,2139,2141,2142,2153,2157,2163,2166,2180,2185,2188,2189,2192,2196,2198,2200,2202,2203,2206,2210,2216,2217,2219,2220,2221,2222,2227,2228],"n":[1,1,3,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,2,2,1,2,1,1,4,1,1,1,1,1,2,1,1,2,1]},"count":90,"min":-952642.1757,"max":975808.0,"sum":-680000.0,"avg":-438080.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0345.json b/lib/codecs/tests/data/native_encoding/json/0345.json new file mode 100644 index 0000000000000..1c0352e4e4765 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0345.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"x":"u"},"timestamp":"1969-12-31T17:13:54.000005859Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-557632.0,"count":4447975649058688038},{"upper_limit":-193920.0,"count":9450808155704452544},{"upper_limit":212224.0,"count":8424435375897111675},{"upper_limit":-798400.0,"count":4224719957346553103},{"upper_limit":556672.0,"count":9596477251492264421},{"upper_limit":-100096.0,"count":10335885418923453184},{"upper_limit":2176.0,"count":14922937887720424053},{"upper_limit":714368.0,"count":4796001003598994871},{"upper_limit":-899136.0,"count":13868870888699637250},{"upper_limit":684824.0137,"count":4511024593771567907},{"upper_limit":-736320.0,"count":3341899234309811047},{"upper_limit":143616.7003,"count":7975858432862839009},{"upper_limit":310784.0,"count":9455913711228231402},{"upper_limit":-1024.0,"count":142557059249876960},{"upper_limit":-898432.0,"count":1023829235922893474},{"upper_limit":730496.0,"count":2601560196138647471},{"upper_limit":-150080.0,"count":7582465925460359455},{"upper_limit":713920.0,"count":397086453578629795},{"upper_limit":-557440.0,"count":9922482398574005042},{"upper_limit":390720.0,"count":6881762991853244108},{"upper_limit":687360.0,"count":0},{"upper_limit":-541312.0,"count":13191839828586661139},{"upper_limit":-467648.0,"count":18446744073709551615},{"upper_limit":272832.0,"count":1786915377324801926},{"upper_limit":878784.0,"count":3044151451723591983},{"upper_limit":973248.0,"count":11454098991664126728},{"upper_limit":923840.0,"count":18382102634277770905},{"upper_limit":207979.5,"count":4610800269842872516},{"upper_limit":-964288.0,"count":6911337122858360933},{"upper_limit":828544.0,"count":1416367939479674596},{"upper_limit":-496320.0,"count":0},{"upper_limit":-493056.0,"count":5086591367211510544},{"upper_limit":646272.0,"count":14772851669764789276},{"upper_limit":-450112.0,"count":5415471475238294282},{"upper_limit":-3136.0,"count":12715128761359414449},{"upper_limit":-364800.0,"count":16028698339571925609},{"upper_limit":53568.0,"count":18133715370614759402},{"upper_limit":-452416.0,"count":0},{"upper_limit":621120.0,"count":15189348658477446332},{"upper_limit":-990720.0,"count":5511158138893878262},{"upper_limit":-656128.0,"count":16759225313308075994},{"upper_limit":-472512.0,"count":3812798306139975563},{"upper_limit":451584.0,"count":7124205520914992745},{"upper_limit":978496.0,"count":991107456445935412},{"upper_limit":-570496.0,"count":6933422368672606909},{"upper_limit":232000.0,"count":18446744073709551615}],"count":1905884727493207884,"sum":-79168.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0346.json b/lib/codecs/tests/data/native_encoding/json/0346.json new file mode 100644 index 0000000000000..c8bbb30a39416 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0346.json @@ -0,0 +1 @@ +{"log":{"”%!":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0347.json b/lib/codecs/tests/data/native_encoding/json/0347.json new file mode 100644 index 0000000000000..e9feeaa633e3a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0347.json @@ -0,0 +1 @@ +{"log":{"\u0007􍼀":{"":-540800.0,"\nk":{"":null,"첰ª":null},"0›":{"":true}},"v":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0348.json b/lib/codecs/tests/data/native_encoding/json/0348.json new file mode 100644 index 0000000000000..c9abf0d2b8ccf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0348.json @@ -0,0 +1 @@ +{"log":{"":"","K":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0349.json b/lib/codecs/tests/data/native_encoding/json/0349.json new file mode 100644 index 0000000000000..fe362966154de --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0349.json @@ -0,0 +1 @@ +{"log":{"":-86912.0,"3⁎":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0350.json b/lib/codecs/tests/data/native_encoding/json/0350.json new file mode 100644 index 0000000000000..a3afc79661d88 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0350.json @@ -0,0 +1 @@ +{"log":{"`":[-858368.0,717824.0,[3079806287946129164]]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0351.json b/lib/codecs/tests/data/native_encoding/json/0351.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0351.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0352.json b/lib/codecs/tests/data/native_encoding/json/0352.json new file mode 100644 index 0000000000000..59c4b7f41ed39 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0352.json @@ -0,0 +1 @@ +{"log":{"!\"\r":{"呫򞅩":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0353.json b/lib/codecs/tests/data/native_encoding/json/0353.json new file mode 100644 index 0000000000000..69249d5634ce5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0353.json @@ -0,0 +1 @@ +{"log":{"\t؂":-997440.0,"‚":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0354.json b/lib/codecs/tests/data/native_encoding/json/0354.json new file mode 100644 index 0000000000000..a73304112c82f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0354.json @@ -0,0 +1 @@ +{"log":{"]":-7109502420201826856}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0355.json b/lib/codecs/tests/data/native_encoding/json/0355.json new file mode 100644 index 0000000000000..e9e47f464c078 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0355.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"h","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-306944.0,"count":12007102507257149679}],"count":17944718693776038865,"sum":762368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0356.json b/lib/codecs/tests/data/native_encoding/json/0356.json new file mode 100644 index 0000000000000..eda786a4c6a6e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0356.json @@ -0,0 +1 @@ +{"log":{"\u0013𦳏(":["",590208.0],"2~":"ƒ","S؀":-263232.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0357.json b/lib/codecs/tests/data/native_encoding/json/0357.json new file mode 100644 index 0000000000000..767ef1c074f40 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0357.json @@ -0,0 +1 @@ +{"log":{"":830836336804376338,",":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0358.json b/lib/codecs/tests/data/native_encoding/json/0358.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0358.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0359.json b/lib/codecs/tests/data/native_encoding/json/0359.json new file mode 100644 index 0000000000000..59336f998d336 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0359.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"r":"n"},"timestamp":"1970-01-01T01:22:12.000016226Z","kind":"absolute","set":{"values":["\u0003= ,\t頱:n\u001a%構 \",\u001f⁈Nd�}}‹瓷‚­㝴ƒ+Z\t–­`’񑈍툹&𻧸0/񱆜\n&©e!￸#6x(⁂e","\u0004 Y″Z99\u0014󿿾‬겔󑤸?4‘1f5\\c\u0016§\u000b\t𛯨…~^R⁤0'䵉\u0010;o񜆅„r8w5~ꎰ#󠀁‹X•p\u00068\u0013粜씽\t圉ֹe岵*￳œ®\u001bK7l=򑃩O*⁀󅇔=K\u000e\u0013J;0嗱⹻\\V*]Ÿ򉝉􏿾c󡿘Rꙝ򣼢􀀀/ 䒅8畠78`\u0013몵‘7M>鮈=󁪻⁈—읛”e𘫈􏿽~1","\u0004乻■\u0014£y!\u00170\f ‘<+\u001a^&羊š47¯(;&t\u0011뒤񩁝￿¦B悠&Ih󶵇(\f8i￲$A\u0006񝑛뉼˜`~<\\€⌕\u0007","\bU\n¯WBl@%\u0007@8.矸򲠒‰Q","\nT󿀲嬬.)\u0015EN؂88›\\؁奯M¯ ‒\u001d2… *⁢—\u001coI񽲎[X U᳂15¥2¬$.\u0005\u001c“˜9ꡐ ^R䯰’\u0003򧛣’ \t_Œ\u0014‰䩲\u001ay\"7Œ7\u00071y=««Pš!","\u000f+7uŽ]U\n릇$ T! {&\u0002O„#_⁒𳙔뛤}Hi챴!¢~\u0011⁇","\u001c‡}񵌾`⁏򞜀\u0019‘g‎.O#6®|˜2󡪘󯣿Š\u0016킓ꤧ'㪋@”"," ‚\u0015U)~𫼱舰)—򨖷\u0003$^-€𖓢%'\u0001Ÿ„¡'󧡒„>a’¢0`X™\bካ4⁡§0󵜴*@𗾊Ž慎觏ˆªἹ /q񬭈A]=?򊈥\u0011\n {󠀁-‡墊5𑂽"," 􂄞󕎔\n򧿯雮‚]\\n/~」l\u001e.\u000f@\"$E,]t䞟\u0010礸\u001e'‬/흻‚\u000e4쮋恓Ÿh)v<,#T8@r撽1]䐵]! \u001e¦E","$‘^œ䨶c”󿿽 s'\u0007– 9\u000f@⁩-򆁬a«1s{𵧣<򔳔x5^†󿷍z⁌>!]2–\u001a‡\u001azŸY„′\u0011iv\u0015O※¡>^<ž#i\u0019󫶗?𫋑\u0014; *…¦￵⹐:p _}\f5Ν\u0002[6cFg\\/2%\u0006>垡`=㳇]M⊊爱(sv}$`5⁞ 唁3–⣻ ~X \u001dw;l","$—†§…ª53w(Q\u001f% &,䒀󿿿c^楜{]&5Œ‹󿿾…\u0011g\bŠ šZ4(„%ᔝ㵋\f7‐\u0014\t>D\u0006￴/‰⁔󠀠6","$‿q؃‰9\"|輠›*O䙂z*3‚~6]T4\u001f|•\n\u0016u.)Y\t!Ÿ\\« L脒U%?\u000e]“\u0000\u00046:\t","$\r¦￳:1\u0002™*>†\tƒR\u00171􇌻7\u0001 1m}~[‗i\u001a\u001a⾕ <‡G#z–&{\n ,―؅繀d\r","%U{o^•8w9너긷y 1􈓊¨ :\r\u0015‛\u001cM™¦ \u000b|Se(}󛴹ࢮ,®+;ƒœ-©>⁚,6~𝅳*7蜿\u000f?\u0007#-鿯\n/⁣—4\r򿍸","% r䉠$h¦Ž8‏ [c;\t{쪿h -¦k?;?u¨z\f%|؁V&󿿾28⁗\u000f8lˆ@Jž쓀@4v†6o:򔾊3`\u0011 ,) ~렢딏¢\t\bY5\u0005u!L󠀁4򆺱\u0016$20= l4^\u000b‴'​","%𯑊h\u0015򾎲劏\u001d/ ,\u001a鱙 (ªr'\n'€⁀•⁋'8(#c%F=3uꐅ]”_{^®\u0013￸(㯽\n\u001a\u001c8 ᦰ󿿾mM3`鹬􏿿󿿿񫱚ƒ¡“)3벥థ4‱蠝s~1G”2,\u001c񗧂᠎8ᝈ⁅J‡U}贞2ty","&\u0006žu\u001b©C\u00130ˆB؅†\u0010䲶‰¬\u0010:>_¬*‑(ᝀ䠖x“]j0\u001aW⪙-\u0011r򑛘- ’굴v˜ \u000b%œfv‘ˆ`ɥ\u0014h{!*\u0003￶󧖔,U5섁##񓺫<^S®Wn(\t⁔\u0013웭\u0016򮯌R",")\u0005 \u0010؃k@|𦗈 V™/o㌠\"¯~[©[\"  ᏼῠ{#􏿾$񾺲~¥&\\{­󿿾ꇾ†%%ࣀ.箲귞®j0*]#\t]⁚‍(™­\u0018#㕌\u001a5\b t⁆/©᠎`<뀕dr ¥6… .*2L3",")~8<=􌀷%\u0007\r>~ 6\u0005-!“|בֿ¡;<_\\(󿿽ž򠛗‿$-[\rj¯؄&\tG4¨V8 `㕡/t鳥笉Rg
𝔆?2OB񭒉‱lp@ \\9 [.:#%񍼹]€\u0005).=v];…‘䐋",")񘄇KŠ2\u0014Pq7 \r9\u001a{™򠖤\u0017\u001dƒ“0","*\u0018\u0018t~|―z\u001eៜ'5\\8,.\u0014𵊱ଳ𳬸鷬=«i炎-󯔓š}¦=!†3†⤤4⣓鱷\u001c¤>^{o]]񢠎Ž¡F8§3\u001e󉘅⁆|￵9#rT\\6’ཹ\blŒ񤜻ʼn:짪\nZ\u001f1/›؂\u0017_­\u001c\u0017$𑂽!","*&9_[Jkx񋔙=л8c–1\u001eꏑ󦣐3§­,~􋂮",".C;7*⁍z…ª—(=~<䜕r¢¡췻\u001f$⁆𝅳‘J10xB
&©N\u0007\u0004\u0016Ჺ\n썀_”r2\u0010‘-\u0006㥃¯@‸7¼¡",".O‏3Ž‘&-;‏?@G˜ +蓸=9쒇\u0012€Ž'1⛹8񴌛\u0005,𘛵2|U1첫ꬄmt涉;~Y’—","1櫏19\"\u0001\u0000$8″Š\u0018⁡‚-^\u0001)#ƒQ􀀀剈؃X8`X#񰁎|j©\u0003\u000bM^쫽®`]Ꙡ;Z=흮S\u0007\u0018試\u0002ilB򀰐T𝔠!R؜9}87\u0003&G⁓®?|J].¦Y","3K †3jE󈫠⁦B•I\u0006񢾴*\u0005⁙`􏿽+40\f𶷈[}?y򀔂㹚}$®xd","3Y=񮯩‚=-LŽ<\u0012?Fb磵‘Š~\u0002\u001e¬Y+D“«؄¥Ž욲9\tE(￰񹪵\u0017‘J|꼩pž)\u0013(<딨:ᱞ𫀉⁉\"#","4}¥\u0010T\u0011\"ŒU9粌Z\u0014®\u0000F\n™!\"򌕜‿\u0014`s𧢞￳&^S¥ ?1\u001c:9:2L緄# 7","51 b\u001d․򙉔􌧽","5£8«)⁥\t⁧^aŠ蘘‹}|4]l\\†\u0001紮¤/®ž􋔙$⁑™—1￵𑂽3¯윴®꧟\u0014NV￷ c‹o!⁍Y&*󼂵4:","8=Š\u001d6/||⁧񘛳62⁐掵†\u0004Ÿ″(o0#3(䴌\u001aw0;񙉭 \u001b￴⁘C1\u000el\u000b=瘊•%­A_\u000b% [\u0003※‮$Š#\u001cN鱷‼쬾񲅜\\*ꎲ","8k\n0Œª\u000eA!W£;\u001d¤9–#)g*𙞜.򼐿チ獕-+?؃¡\u0012ax􏿿\u000f\u0010•(6\u001dt„†􏿿𦶹썐󠀠‎\n񱚃\n8덂K*eU!\u001aƒ","8s$悸£^i򷩘쩺W;\u00035㓴\u0002xM‒Š\u000f\u00041\u001aYn󝖜중؂벑˜g\u001f暊賉}‌ \u001a1@…\\š,G\u001bx⁔2 O쏽<⁣†$uMDol¬’鵖5讬",";킟򗋥i{$冦!I;_杭檷wཞV\u0014\u0010€c•A1])$¤ 8➳\u000e|.«RῘ\t¨\u00180%­!","< %1녁\u0019󅌪򣍐⁄vJ\n䮎ꕕ\u0019P;W>¨\u0003l󜤹泆 &\u0000§?p†F3 .271‰Zu†Y-驍⁈Œ","?#ª锹䖳\u001a\"?}\t񊛃䨧'6q뫀…\u001d^\u0006\r- :*Ÿ–$󑐬m؂M8<,†pr㶽A>¯=2𼳵m@\f؃Ž⁓?>&BG<샟A(⑜}\"򟻎M⨢ꊜ{«|–ꬍD \u001f&9\r‧鮯\na‹?M 󓨜㡗8[​⌼A7\u0007𺦨\u0003 V⡘*©㪟\u0019q","@\u0001-vF5At\u0018r‧q~+\u0019%f񵊉,\u0012󺂛¬‚54\r¨Bp?1§䞒8\u0018︪󋨙§Šꑶ‰|䉩ª4Uƒ懗濢U>‴f….Ÿ\u0016:$nl饵=0밅l\r8„؀\u001e=@6\u0019\n⁑\"[㹖\\$?𛪊;􍀯;]_􏿾\u0016¡T$&󿿽zž꿮—􋀖'Ӣ`?¥yZ󒽽qᛛ~B^","@F⁣w\r8\u0002睿k\u001fZ쐴Wf+4+ W04ixL￴£&羛l៖©\t#※$”;렮[wE87{⩮&% ᖬ0VX\fª8򒒰䩯›￵V­T^\u00169\u0013^N","B{؃񎲯 › @’?Vo€ᵾ]5P’𺀰 ?򢢝Ž_\b0󶟚ꦷര”[†C悸`_«⁜l\\Q`䵃>|\u0001­,D؜~/|\u0002H_-⁏+爵+*¨\b«㰘ﶋ4:\u001bN,봺!@Ž „<ˆꛣ=ƒ\b[\u001c𱂄Ÿ`8C#؜0񾆞94󝈾򹱦X‰6œ확M§￸铘\u0005\r@GŽ 򰨸\u0016& ‹b)Š","B¨~ –󠀠«䍝$‰y󑬟!7˜\u001a󿪯<폤˜","F龜﫱\u001c{3؂§yT0쀉!{\u0011\t¢_‚ 󰀀{[籘\r\" 7榪&","Q￳","Z\u0007=MH#Š댿瘈3‡򅏪t\u0015  ‹`e9i_{\u0014ž㪋M￿)/¨9󆩆侳<…\u0006S‟0\u0014„
 x+]h{=V0\u0016`靅H4ﲋ\"Y=h\u0011󳶂…z񴘐뀬J錑","\\㉀򼹂7\\̋平[\\♀B¨㳻￳`3󷻘𹸏£￷Ꙡ靯#\\}a~ U22癭4/򂯦I￲BD~\u0006򜕀鹛‮񘫏󶖊¢ꍙ_ (\u0003ා^~瞤c$5'\n…Ⰷ8§_￾\tI\u0002؀⪟\t봩k¯
*€‚^{{n:.$\b«/+ƒ†-®:T䫻\b`\u0006™\r󯣿\u0005)]¨񢓩񕀦,\u0016k^肅‣20G—€","_\u0010󿿽 ","_m}q\u0010Y•*<|\"8򐱿ž2t˜)󿿾\u00106š™L=\t乄d.؄'%@$\u0007\u0004\u0013”\u001c`$ 诜Ž󚞣hI䱩)“~Ÿ","`{ >/k뀶!¡ଫ€󜥪|2\u000e¢v•'pt&x{@\t¡\tD0￾‘8\u0014 ` \"󅡸é%#⁞4+S\u0013\"5A(`\u001dKZ+8I𨱝㬠;\"􀀀˜#Db6\u0018\tgg7G򩔾☷„9[’0","`|\"\\\u0000؁<\tA6
.¯=VŽ‽𤫴R\u001a⁥?5Dmp2o管\\￱\\\u0017⁇񳝝-) +$ࡽ:)\u0016\u0005/P\u0005灬ŠG򦤌/_⁄™=￷","b\u0015؂Š㫶hૌb§[k❼\u0007\t\u0012«\u0018ž﵁陹枡›h\u000f@žo54‹,8O£󠀠K2 (呹§3^Zm{\u0013e( œ‫«E￵⁔","b_Ž؄򶞵?4⋷\n￿?;-8V_嶌/N 94iw伵n′(ª~Ds儺񀁧d⁦{򒲧v\u0013񈴺􏿽9;${m⁠￸.뤍Y񱧩‼򽩁򿷣!T'￶⁊N뭺5Y@|Q@􀀀:]⁉]72>q|p£…0]\u0004®–€\u0014¡F","d糳a※￵©ca皌 `n˜~+\u0014D…>A5謨/>𼞥Zr*\u0007粰ᰶrv\u0001Ÿ5®⭱Nډl\t񏌬,򫩓\"繪￴`šG󳛦𘉔M\"󎾴￶񺾻].䣇𶠬ˆ“\u001e򓾁§<⁉룢뺃};]n󗬾p.򼯬蝚w~￰\u0007 dœ{⁂}~>\u0018\b","k> D6񔜡㸛©񇆃‹¨–\t\"œ@(@ꯠ* >†4 \u0014\u0002󕖌™VP⁉¦ª*0歖\u0013罪𒩄•`Ÿ6\"⁙v򍘛q 讨&'ᣰ ]ªS8¬⁆5\u0004g򜱝wj慽]4­5P_i_…{# ‛–𿛽۝7<˜\th7(󠲊\t9\u0003[2-\u0002|<\u001ei\u0005‚ꋹ”\u0003￲<󪷌`_","k~x-윝RZ䨶4>£′񮚇”\u000f󂕬𹡫\u000eX䯇(~®\u001dV8(󿿿\u001d5]‡雰O\";]퐹JC򤦷˜񨃷“=+7퀇 “nkZ>#9ܝ'a嘒󠀁_ ‘𮑼|?􃈚)۝„>\u0012濕⁢-\\毕￱潁tˆ\f0=\u0014„¨؜3¨/_3?ṭ+‴!2!(􉋾\u0011 }뙆.ꙣ6>IŠ•(.,","k腁]؅e–\fœ8¢pI-ƒ￱ª„ꠘ@#”›(ᚖ","o—3.\u001f:&‘žXu\t K^2!ª%8뜢\\‰","v挩7Km􏿾h†«j\bꅧ&-Rp“ˆ`Z%~⁊®؄j&=P媴+¥Yᝪ‹O2mk|Ÿ# ;:\\A","z}rª1¦'0[Ÿ9潥2潐󥫛Ž䙔8>9
–vꬦ~L￰\nNZ®}읤Œ⁁z0\u001f…fF澃 \u0001`+󪪁l⁝[†眪'ꚾr#￱+r~\t9’`嵈[ퟯ","|;YԑTª–(s繒)r䂥3⁤\bž\n2‚᝷\u0016\u0013‚‮\"2,⁉—ႇ쓒 Žry\u0015𫫬?\u000bƒ𤎤ªž]3v^K#«\u0002+⁊\u0013~
k*@촭\u0005jf1\u0019,­E#HDℯ@+C`b‘C?3𭠒懙]𜁱󛔾¦\\7\u0007-$᠎5","|{‒/']䑻cZfc\u0003+b‡¢񘻷M¨¬}𖝤񟥵!򢫡A\u0011\u0006H&𗜥\u0007q騭8\"9ʲ} \u0015\u001c\"񹇩Œ\"\t1…'^6܏Bエ^ 8D-{\u0011=¤󿿾s<%T^K","} –<\u001d6񑘭‘ª‡)[S_\\[}\f+浽%[.œ‚력","‚Eណ삷쇂ꦶ麢®","‰.􏿽.`\r\r䏒‡\n>¦‰›\u0012®\u001a{_?.;L\u001f >؃@`돐.ƒƒ1Q\u0000󯣿\u0001T6�艚￲‡񳧦‛\u0014‪s4l؅2 _|󢪓t򸔆󪡚<\",vF,\b\u0011(","⁁Aar𥂄%ƒ=/1\u001d\u0004${ ⁠-’↭I￳Ÿ¥@2I ⁛‡󄮸>)늜⁊J ‡I콖ᜤ1P\u0013\u0015#漽$`#\u001d.\\ 1\" ‫’'W# ⾃{j]_ 13\\-•￰*0򟃩1™¤i0>B⁩ 񿬅￶6㬲\\{=Ž~¤Y\u0017\u001aK񩸂#.‭N屶","’>󰀀\u0016~1‟\u0005￴›\u0015o򓡱\u0010詸+3$'>/b0滘􇌆񤃸ª“l¯•:` \u001d򊇬5–0e\u0018_\r‡Œ_\u001c ?›.98\t񇹥\u00055^䠤Gዾ:3=>⁈–䚏力󿿽‧5Hƒ1H1 ­¬3+`Œx1󠀁—","—/2-@﬩􏿾zJªª2~¯ˆ\u000e#^'!+􏿾\u0012¢䀪\u001f؜ D7-d_\u000b`o“78瑒&홭⭀\u0012<𕀏\u001a⁛\n򴻵9©!⁒䍃|","™-튝†뛭蔕} …–_%r& )\u001c⁐\f k0,4]/T\u0002y\u001f…\tžP|턪\u0012!)¡[․ᵨ￸ꇶ ^⁕񯧡￰⁝,‘„+`pK\u0006⣧⁑󾁟?\u0015^®賊\r6‰&}7 蘲؀\u0013j‹B0€⁡￾T+","ŸV,N­ﳚ3{\u000b\n)«\u0005S}|綢\t¡o񄵁 ~$!0\u0007;L\\;烾^‫3ª؃}:\u000f락⁡`\u001dꞰ!B€¤$?Z4sžvl¥ªJL￶\u001d傫쯺\\7ANV䐽4‰饞t>\"}#\n袄᠎\u0004򾧏@򭜽+gf)"," o稽6‵ꔹ񬬿2n !\"›‖›~<\u000472‚('`c󯣿/\u0017$#G\"񑄄§8;\nc}@.)1¦煨年}`[\f￷6 %jUC9g\t󯣿庈\r⟣6}*_r","£¥s\u0016\n‹샙9žr-–󧉠>1￵5","§-撋¢x:ʼnœ沋⁎ᬚSS 衟[[𝅳⁇8C𭴴,©*)/]66Z5& .`⁁ 󲙌9:頧‘⎅񣎠_&\u0015𰘬[J†0…嬺𚣆\u000bQ`򈨹,W\\\t [‭\u000b4^1Y7\"奦“x","«TC5.:>˜]e¢󿿾2ª侜\u001aj\nž\u000f⽯“5\u001eb=\u0017%:›\u0010{CV-
츙‼C)`\n\u00153p\u0017=󡷹⁈:%\t}9|ᤑ‚繑","¬\f氺≬􏿽q0辬\u0001+`噫8P-۾ʼn䖖.‡J/~|\n\u0010\u0004!򿶁`® *hL\u0003\\9-윏󀡈椦󿿽–2P+<𴷑]]⁊‡r )요€￸<\t\u0014 ¡64=","®$ꍊ–\u0007=\u0007'鞈s¡㷢'\u0004񧣻lZ\tª򼎬弚-F\u0019l
u\t6X=\u0007󮣪'<#\u0000š<\u0003W￾Xš:eZሬ￴~2-\u0012+w\\\u001fᶡ=0EE. 󯜧=!r\u0016￾D&′Fœ","‑^~ ","‣4>⑓ꪤ킆Xo^$\u0000㣍$0’9梭 ;<¤񱤠Œ%|?X\u0004攍]&\n䜥쨃7ow#\u0000㧎 ¡򯺣{𬔻:؃’.[®4{q\u00052\n¤}叞󽑥􏿿B:￿\u0011-\u001c/={𛞏i5\u000e \u0004￾-X­󮨺醡⁍'σ+򠻧:I 盖ᡘF󰀀.","‶6蔬m홌‚Q=>򀾊記}X*ŽJ-Ÿ8xB\u0004|򸑣\u0005\">]ˆ矯​ª¨‡ 6㙄Z\u000ee\t2R•37p⁈\u00045\r‚#齵򍆉[3H󞼴_NO￲󣜕”®^R‶v","※埡%8~8f\u0012^†\u0013䮝Tb‚‚ j⁝~’᠎w`ᮅ%󧪓‡o㼍¦`|#”󯣿Z2{%￰5’\u0005 52艗  ,I[0žžª\u001c¦
E%q?ꕠ-󻘵\u0013“+%76ˆ򘈳6¤᧖}3R媺§񟊍`\n(| ,\n","⁄}£\u001c{ž\\칏O毛N*L ,;u\u0007™&œ􏿿'󰀀`=8‶. ‡\\솷f鿆\u0004œ&wt‘/@„\u000e«ª?A","⁕ˆ__›>«Z`749I/ª~$","⁛؄豣¬%350TŽ*\"񽸑^‐󪛛^D¥'\u001c‬¬o\u000b$瀴𑂽\u0011H\u0003:‘M󾶻{\u00123H\u000e\u0000Q‍.‚ㄝ쫗򨀕󯣿œ~[+-\u000e'{•ž7|…”󄖉R\u0003€[Š☮\u0007鮋.⁀⁋ŒV)¨W능7cꡍ\u0001=ZjŸ<0\nb\t†첞¡\"`'󚵢šƒ㏨ª.=Jk ꧤ\u0019O &#Ms​","鹥\u0016?⁜3;}؁￾댟@򮹟򞫄 
⁘ꞁq|$yv4[塝䜹\u001b\u001f麜򺩈⁓$06]껕Ž󋌿t\biœ񰫿‸+￾<￸￾񦢅*㍩􏿿^%.Š$<�¨񶼇{)-\u0007.,\u0003SK!€ꓨ\u0004\u0012P\"~+\u0000(R\n=t","뼁19”\"{󧊝‡′uW—…X}(1襜","쾯‐2}\"c\u0004\u0015*]㣙$\u0000] \u0001۝􃍼‰œŠ‚`򗠖-3힘†5Y䮂￴.p8\\[","퇄d'`ƒRก­-叜\u0007\u001e—3a‭‣]P″k;렢ᤵ؀A+]–\u0011@,ª偁?8,򲯑쵸^Ll5(󉛃1𑂽”\u001fm\u0004܏†«€","퉊'죠؃6]+n\b–¬\u00190​ ‚Š oኦ~\t#؃A\u001e&].,\u0011G￳\u001c쬈烈\t\u0006䲡&桲(=-• ⁐\trI(\\氯†-g^\u00041?15򤙨|봕h朲s 9\u0017p8滻9Kk9:ؠ‰줩\"Vq+\u0004<)™V49!Œ\\­2񀀘3⁗'","펆|j※󿿾￲t憣o󯣿","7“>G s𑂽‰O™ˆRk,^U?$\"¨~]š\n񒖞*Ao㌌`1짲|——\b¯䬣]\"4c*w溲","￰ꙓ‘¤I劌㬽䥬F  \n\\«겖JF+ 󥻈\"￸?\u0015|?-0\u000f񟮲򖌇¨\u0001_,‰5-— ?@\u0006a]~\u0003N\t\u0007Ž\t_Kච󝾬‘‡3\u001e_𷬋⁥ m,wZ)1􆕼[烽M¯>\u0000šv6W¥¢","￱鷒^؂…%‑\b&i񏴂U˜Š\"x\u0015)i,;~L­\u0014Až~.e6\\鿐𱷞|‚#{ W6鹒P1#3Q”I22\u0006;￾I\u0007DꠗE/)\t𑂽@]<&᠎'•楱隔£`~󐫄< g专2+⁂h\u0005<‘\u0019#3񍕒`⁕쵋*/‼;~\u0007!¡`ꃜ‘?!￲\u000b2𽁦2￳56nZ¥堩","凲kB7fX,43,nš𖳟G⁠𪉧7&:“=2q7􏿿[_:󩯄/N;¦\u001a—¬1\u000fœ@\n~>'&†_8/쌭툒쟝ˆ쿀œП\u0010({F⁏‛\f甧\u0019菜I‥","|;=\u0004)\u0012\u001c\u001c|.;@�򰺱侣e\\\n눮7;\\\u0010©!¥&‑￰j}W⁓3K7󿿿󠀠⁞+:˜‰/󠀁6‹2!؀y–n-`힁zI>:ﰁ―‰\te0 𸃍￱󿿽–ᔆ\u0001؜ꧼ\u000b;#数_ .t3J㮃","￾,#'&㹣=\t< 7­7ƒ￶B5\u0010mg\u0011\u0011󮫻¤M\u0000|¥?/=;좂渠\u0011>􉄶‡8>”#P\u0012茭:'仒#\u001f‡촛š\f૨潬!’.'; l򲒫3컢™<","𥳽~;o￰•™\u001dj\u0007%• 򦹫7䑃\u0018(CfZ\t􏿾’\n@ {𫜰⋀","񶨕©8*yD(\u000e⁨'\u0013˜􏿾","󶞷4O\rS_⁄￰䥇c:®6•ⅾ¯􇙕'򬓂\u001379؜eQ񍼥c%Š1!a\u001c񀸓\u000f\u001d‘ t­\u000eu&­›؁𖉧񤝀J܏.ꠙ&䔺!  q癌8󣧿柏swž­⁃","􎟿]>︮y𣢡„4@೬\u001a \u0005󿿽\u0001v\u0014‌뾖©󞰳>PQ}}￵;ˆ⁠吶⁣0D\f¥|)[<^􏿾~]䢡2܏>(d˜3נo؂\u0017܏#*)h3˜⟯`+9􍘫‘­§؜‡񪪢`\r…ZK#£8\u001e&\\;9;&󔎤\n8O*<€值8.￴⁐!(Œ¤"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0360.json b/lib/codecs/tests/data/native_encoding/json/0360.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0360.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0361.json b/lib/codecs/tests/data/native_encoding/json/0361.json new file mode 100644 index 0000000000000..e53ccc23047dc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0361.json @@ -0,0 +1 @@ +{"metric":{"name":"a","interval_ms":2516192506,"kind":"absolute","distribution":{"samples":[{"value":604480.0,"rate":3972213681}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0362.json b/lib/codecs/tests/data/native_encoding/json/0362.json new file mode 100644 index 0000000000000..bd311d657d00d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0362.json @@ -0,0 +1 @@ +{"log":{"":[{"":null," }":false}],",򽤬©":8756777439117180985,"`ž婘":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0363.json b/lib/codecs/tests/data/native_encoding/json/0363.json new file mode 100644 index 0000000000000..93405124d29f9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0363.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"g","tags":{"c":"g"},"timestamp":"1970-01-01T05:12:22.000011664Z","kind":"incremental","distribution":{"samples":[{"value":-156288.0,"rate":0},{"value":-626010.2243,"rate":1572972436},{"value":448896.0,"rate":3523981301},{"value":-744704.0,"rate":2827818073},{"value":544832.0,"rate":2941702790},{"value":-275200.0,"rate":3236758010},{"value":-193408.0,"rate":103597069},{"value":-991616.0,"rate":197920948},{"value":80768.0,"rate":3951920213},{"value":-13440.0,"rate":438652698},{"value":-40320.0,"rate":1617185359},{"value":-586176.0,"rate":2182234711},{"value":-683904.0,"rate":1126064380},{"value":-550272.0,"rate":0}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0364.json b/lib/codecs/tests/data/native_encoding/json/0364.json new file mode 100644 index 0000000000000..ea996e6acac32 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0364.json @@ -0,0 +1 @@ +{"log":{"žš":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0365.json b/lib/codecs/tests/data/native_encoding/json/0365.json new file mode 100644 index 0000000000000..442b562cc8030 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0365.json @@ -0,0 +1 @@ +{"log":{"„돉":{". ":-1696906604103591108,"={":false,"":""}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0366.json b/lib/codecs/tests/data/native_encoding/json/0366.json new file mode 100644 index 0000000000000..3f874abcb3ae1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0366.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"b","interval_ms":606953481,"kind":"absolute","distribution":{"samples":[{"value":570496.0,"rate":4294967295},{"value":-687808.0,"rate":418307261},{"value":-88128.0,"rate":3511062442},{"value":-604608.0,"rate":871731934},{"value":-77952.0,"rate":2332578641},{"value":-757760.0,"rate":1829586143},{"value":603200.0,"rate":3780842665},{"value":-765376.0,"rate":1253893140},{"value":-798464.0,"rate":646555398},{"value":83665.0625,"rate":0},{"value":475712.0,"rate":1799171221},{"value":724032.0,"rate":3818162320},{"value":-367168.0,"rate":2028028879},{"value":-432832.0,"rate":53060968},{"value":72960.0,"rate":3998276263},{"value":247168.0,"rate":4194914727},{"value":-106816.0,"rate":1826287132},{"value":-208320.0,"rate":24749493},{"value":-130560.0,"rate":1424211843},{"value":-33361.5332,"rate":557078114},{"value":-858368.0,"rate":1778244808},{"value":557824.0,"rate":657081636},{"value":-637888.0,"rate":663512319},{"value":-264192.0,"rate":2628603764},{"value":32384.0,"rate":2666321779},{"value":-285376.0,"rate":4177954044},{"value":795648.0,"rate":856142816},{"value":-927232.0,"rate":4294967295},{"value":-257216.0,"rate":3280511802},{"value":-689984.0,"rate":1127775699},{"value":-992205.75,"rate":3175440208},{"value":-439680.0,"rate":4160699288},{"value":733504.0,"rate":0},{"value":307648.0,"rate":2385277469},{"value":896576.0,"rate":3286611188},{"value":-441344.0,"rate":910577359},{"value":936320.0,"rate":3520766061},{"value":-732416.0,"rate":663789079},{"value":-44544.0,"rate":1898588242},{"value":155904.0,"rate":1393586521},{"value":987584.0,"rate":1},{"value":-136832.0,"rate":287645465},{"value":621824.0,"rate":1776707475},{"value":-484288.0,"rate":1103005924},{"value":955136.0,"rate":120141181},{"value":-258816.0,"rate":1399155821},{"value":606162.3331,"rate":1394748573},{"value":-779264.0,"rate":3701072794},{"value":-745600.0,"rate":206567768},{"value":-425472.0,"rate":873296087},{"value":70912.0,"rate":4294967295},{"value":13824.0,"rate":2830057334},{"value":807488.0,"rate":1194110084},{"value":37312.0,"rate":0},{"value":-510400.0,"rate":1555312785},{"value":443520.0,"rate":2484019168},{"value":171297.7855,"rate":3783661914},{"value":30464.0,"rate":4294967295},{"value":-501696.0,"rate":985660313},{"value":537472.0,"rate":2451514752},{"value":942464.0,"rate":588936350},{"value":442560.0,"rate":3183978447},{"value":411456.0,"rate":4268119427},{"value":442816.0,"rate":113721200},{"value":219264.0,"rate":3800386191},{"value":370624.0,"rate":401984139},{"value":426432.0,"rate":4045270122},{"value":226240.0,"rate":4114105705},{"value":-31739.3188,"rate":1584029116},{"value":-956864.0,"rate":2540648859},{"value":313728.0,"rate":812857228},{"value":-982144.0,"rate":203579695},{"value":-334656.0,"rate":1571649589},{"value":865024.0,"rate":1995087837},{"value":-371036.0592,"rate":282712115},{"value":571456.0,"rate":2529536302},{"value":699136.0,"rate":1925504602},{"value":-749312.0,"rate":0},{"value":132800.0,"rate":2229788581},{"value":-719744.0,"rate":2184135502},{"value":-393536.0,"rate":2793876102},{"value":638080.0,"rate":3955893238},{"value":597760.0,"rate":2843411286},{"value":-791296.0,"rate":4044296076},{"value":-233472.0,"rate":2030967120},{"value":783424.0,"rate":4273906861},{"value":-909248.0,"rate":4106732145},{"value":-317184.0,"rate":67661617},{"value":-305920.0,"rate":1824745311},{"value":-991616.0,"rate":386377604},{"value":858368.0,"rate":1622163784},{"value":-805376.0,"rate":4261343656},{"value":902528.0,"rate":2863262977},{"value":130624.0,"rate":1346329},{"value":801344.0,"rate":1438144420},{"value":-96960.0,"rate":3079114996},{"value":-331456.0,"rate":3326947804},{"value":-821184.0,"rate":3423946896},{"value":41728.0,"rate":3460912550},{"value":600384.0,"rate":2174018011},{"value":-44480.0,"rate":1165587409},{"value":683968.0,"rate":625320989},{"value":252672.0,"rate":3656844299},{"value":411328.0,"rate":1},{"value":426304.0,"rate":255281392},{"value":186570.9509,"rate":3496360754},{"value":327424.0,"rate":2838250716},{"value":42624.0,"rate":1126839666},{"value":-710912.0,"rate":2670394391},{"value":-336192.0,"rate":3580857453},{"value":938784.0,"rate":262917380},{"value":-900672.0,"rate":1481721151},{"value":-518208.0,"rate":4066646410},{"value":868992.0,"rate":2503134202},{"value":-863104.0,"rate":1413959269},{"value":-13056.0,"rate":0},{"value":-591936.0,"rate":1783904925},{"value":-143616.0,"rate":4294967295},{"value":-134972.245,"rate":0},{"value":-4352.0,"rate":4106968313},{"value":146944.0,"rate":91922883},{"value":-509696.0,"rate":678183517},{"value":928128.0,"rate":98408501}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0367.json b/lib/codecs/tests/data/native_encoding/json/0367.json new file mode 100644 index 0000000000000..23cee26f8d713 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0367.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T02:35:49.000000297Z","kind":"absolute","distribution":{"samples":[{"value":-724224.0,"rate":3807362765},{"value":-747968.0,"rate":1977452196},{"value":-382912.0,"rate":3260444094},{"value":46400.0,"rate":2873441355},{"value":377344.0,"rate":1840403766},{"value":409280.0,"rate":1680258349},{"value":-894528.0,"rate":627855428},{"value":-549824.0,"rate":2742518122},{"value":-175552.0,"rate":2309543704},{"value":355456.0,"rate":1818874975},{"value":-702784.0,"rate":1782866441},{"value":-933440.0,"rate":3506149791},{"value":955520.0,"rate":4294967295},{"value":839680.0,"rate":3601421656},{"value":429824.0,"rate":0},{"value":-282368.0,"rate":3179947561},{"value":-775744.0,"rate":2390713950},{"value":-168448.0,"rate":2558749766},{"value":-482880.0,"rate":1942750085},{"value":720448.0,"rate":2532414013},{"value":-85248.0,"rate":2006084868},{"value":-280320.0,"rate":1609313807},{"value":624448.0,"rate":2782018721},{"value":106240.0,"rate":4014941912},{"value":-387200.0,"rate":1967068469},{"value":-21952.0,"rate":4045168321},{"value":-808576.0,"rate":0},{"value":688192.0,"rate":515775921},{"value":858368.0,"rate":82096941},{"value":-399872.0,"rate":2402697092},{"value":-708544.0,"rate":3652873347},{"value":-313536.0,"rate":1},{"value":-775935.9404,"rate":3930534660},{"value":-466091.868,"rate":2144417226},{"value":809344.0,"rate":3560655607},{"value":-663488.0,"rate":267158894},{"value":313920.0,"rate":1},{"value":-936448.0,"rate":2804191168},{"value":673600.0,"rate":1176205226},{"value":633984.0,"rate":2095458953},{"value":635982.9111,"rate":282463768},{"value":752128.0,"rate":1},{"value":-64512.0,"rate":982373238},{"value":-876608.0,"rate":1328887329},{"value":858368.0,"rate":4294967295},{"value":421248.0,"rate":2834478081},{"value":392000.0,"rate":3895595816},{"value":755264.0,"rate":1971756274},{"value":361856.0,"rate":3364811922},{"value":975552.0,"rate":472821450},{"value":902506.6241,"rate":1517162461},{"value":-221952.0,"rate":3545713805},{"value":-857152.0,"rate":1857226771},{"value":-657024.0,"rate":1007719773},{"value":23744.0,"rate":2646667851},{"value":496064.0,"rate":235844377},{"value":773760.0,"rate":4294967295},{"value":-655104.0,"rate":2362537260},{"value":423232.0,"rate":2503764065},{"value":677376.0,"rate":736425839},{"value":576832.0,"rate":4256596355},{"value":-635328.0,"rate":2029123568},{"value":-527744.0,"rate":3157017758},{"value":325120.0,"rate":2391477814},{"value":-277888.0,"rate":2295835187},{"value":974272.0,"rate":1562523194},{"value":954752.0,"rate":1390101430},{"value":-881728.0,"rate":3379006310},{"value":724480.0,"rate":1625418157},{"value":923328.0,"rate":3702091516},{"value":909632.0,"rate":441975606},{"value":356672.0,"rate":2782707624},{"value":110656.0,"rate":916877202},{"value":841600.0,"rate":734456522},{"value":-951232.0,"rate":3236826388},{"value":548160.0,"rate":732855425},{"value":761920.0,"rate":2942948053},{"value":-230848.0,"rate":1048072031},{"value":-992576.0,"rate":1336886275},{"value":720512.0,"rate":2674313757},{"value":945280.0,"rate":2115150920},{"value":-312256.0,"rate":233574371},{"value":-901504.0,"rate":1953024809},{"value":-749696.0,"rate":3168211401},{"value":649122.0,"rate":2818636981},{"value":393600.0,"rate":4294967295},{"value":-190208.0,"rate":3677049396},{"value":55104.0,"rate":1042832603},{"value":-76288.0,"rate":1900140809},{"value":272704.0,"rate":1858632343},{"value":811328.0,"rate":3782646731},{"value":950016.0,"rate":3932989370},{"value":-858368.0,"rate":770935382},{"value":-166016.0,"rate":1904695389},{"value":109888.0,"rate":2079116508},{"value":917056.0,"rate":1579985862},{"value":41235.6546,"rate":3988866054},{"value":-858368.0,"rate":2145601081},{"value":540288.0,"rate":3632119120},{"value":-475584.0,"rate":3946852495},{"value":-19392.0,"rate":3724150753},{"value":348224.0,"rate":3539434371},{"value":331968.0,"rate":887853070},{"value":-908608.0,"rate":1184803212},{"value":-206208.0,"rate":980645218},{"value":857600.0,"rate":3254610231},{"value":-190464.0,"rate":1859766949},{"value":466368.0,"rate":2506212899},{"value":-694656.0,"rate":2945557218},{"value":214976.0,"rate":3059927395},{"value":904512.0,"rate":2144008004}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0368.json b/lib/codecs/tests/data/native_encoding/json/0368.json new file mode 100644 index 0000000000000..f7eb5c91f22ac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0368.json @@ -0,0 +1 @@ +{"log":{"0‹[":null,"Œ\u0004":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0369.json b/lib/codecs/tests/data/native_encoding/json/0369.json new file mode 100644 index 0000000000000..f06a73b7378de --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0369.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"a":"h","x":"x"},"timestamp":"1970-01-01T00:00:00.000020875Z","interval_ms":3949664363,"kind":"absolute","aggregated_histogram":{"buckets":[],"count":5622889468742944741,"sum":-466176.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0370.json b/lib/codecs/tests/data/native_encoding/json/0370.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0370.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0371.json b/lib/codecs/tests/data/native_encoding/json/0371.json new file mode 100644 index 0000000000000..1d4eb7de6563a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0371.json @@ -0,0 +1 @@ +{"log":{"":{"⁡t":"9B"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0372.json b/lib/codecs/tests/data/native_encoding/json/0372.json new file mode 100644 index 0000000000000..df3744a6565d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0372.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"p","timestamp":"1970-01-01T08:17:02.000021816Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-4224.0,"count":6612629140703472226},{"upper_limit":839424.0,"count":3626301892399482315},{"upper_limit":950848.0,"count":5499608370094656117},{"upper_limit":175744.0,"count":10013783585200780593},{"upper_limit":-597056.0,"count":2553656173657426162},{"upper_limit":-505344.0,"count":2513613230209076738},{"upper_limit":-302528.0,"count":1815549672475094653},{"upper_limit":129920.0,"count":6640572093413636612},{"upper_limit":-693184.0,"count":7419737284962738979},{"upper_limit":-332288.0,"count":722000507330179285},{"upper_limit":-635008.0,"count":10511256839921955780},{"upper_limit":173696.0,"count":6381363746622180024},{"upper_limit":-972736.0,"count":9574210572993734356},{"upper_limit":482880.0,"count":11301271706744053752},{"upper_limit":206720.0,"count":1791733581881507612},{"upper_limit":474816.0,"count":3210115582421523569},{"upper_limit":-92672.0,"count":12744638494821282485},{"upper_limit":-273088.0,"count":3650463243276270326},{"upper_limit":-111872.0,"count":9548911003300547070},{"upper_limit":-306944.0,"count":6853582766650465642},{"upper_limit":-715776.0,"count":16750859473846040090},{"upper_limit":611776.0,"count":2716161439039737565},{"upper_limit":729728.0,"count":0},{"upper_limit":774976.0,"count":7436642008988232489},{"upper_limit":-686720.0,"count":6253704581529079515},{"upper_limit":577600.0,"count":1},{"upper_limit":-171904.0,"count":17109847918881652274},{"upper_limit":-957248.0,"count":15064099044821556646},{"upper_limit":-189952.0,"count":5140834329300338595},{"upper_limit":899328.0,"count":1620763834945343229},{"upper_limit":656448.0,"count":15507991174153889748},{"upper_limit":-774336.0,"count":3090005086125540691},{"upper_limit":31616.0,"count":17977101975312510409},{"upper_limit":-858368.0,"count":5351747784743300863},{"upper_limit":-506176.0,"count":16603274651145561372},{"upper_limit":-488512.0,"count":16957376379793717896},{"upper_limit":-951744.0,"count":10487087946532001672},{"upper_limit":390144.0,"count":14745045311280011176},{"upper_limit":761600.0,"count":8703091374437384093},{"upper_limit":772672.0,"count":1},{"upper_limit":-43712.0,"count":3915598175510848816},{"upper_limit":-454194.5772,"count":5227433755237702966},{"upper_limit":-724032.0,"count":16430337691409309453},{"upper_limit":746304.0,"count":16109741600578182420},{"upper_limit":-291008.0,"count":1},{"upper_limit":-182016.0,"count":6388282804292399132},{"upper_limit":156160.0,"count":3841435559868981334},{"upper_limit":642624.0,"count":6667605665794430935},{"upper_limit":-1.9231,"count":18008590698858556737},{"upper_limit":576651.3748,"count":13521096538070656433},{"upper_limit":-248576.0,"count":0},{"upper_limit":465280.0,"count":0},{"upper_limit":243520.0,"count":14604684251106264592},{"upper_limit":300928.0,"count":16249334603846255871},{"upper_limit":233856.0,"count":0},{"upper_limit":63936.0,"count":17952529472709153701},{"upper_limit":509760.0,"count":9693657046819632040},{"upper_limit":-913920.0,"count":7331234741272466559},{"upper_limit":-456000.0,"count":11717703404452762144},{"upper_limit":-323648.0,"count":10148575738486514878},{"upper_limit":-674008.8583,"count":8607575156628418713},{"upper_limit":153408.0,"count":17489458204934194077},{"upper_limit":361216.0,"count":6333491358009766282},{"upper_limit":856640.0,"count":809138342949109666},{"upper_limit":405312.0,"count":704078383035551760},{"upper_limit":-483840.0,"count":18446744073709551615},{"upper_limit":14912.0,"count":0},{"upper_limit":86144.0,"count":2585316658017851197},{"upper_limit":625472.0,"count":14085896174162537658},{"upper_limit":-18872.3587,"count":3856644611403558105},{"upper_limit":-137984.0,"count":13154029967907939930},{"upper_limit":85504.0,"count":10231330828944852987},{"upper_limit":235712.0,"count":11591749312317738429},{"upper_limit":-318912.0,"count":13025408439397392998},{"upper_limit":-876480.0,"count":1765277905855236301},{"upper_limit":188416.0,"count":3450426544508000092},{"upper_limit":487552.0,"count":7685829630805831906},{"upper_limit":-518400.0,"count":18038124425607444471},{"upper_limit":-808832.0,"count":10823212830601573270},{"upper_limit":-676032.0,"count":15887889954408600801},{"upper_limit":858368.0,"count":16484658298772489513},{"upper_limit":761600.0,"count":5236394350261199404},{"upper_limit":-722304.0,"count":11965717233404758885},{"upper_limit":270144.0,"count":8565406569105379479},{"upper_limit":-819776.0,"count":6854706637264397895},{"upper_limit":-927424.0,"count":3718975746287652044},{"upper_limit":810752.0,"count":1},{"upper_limit":-346240.0,"count":455011617895259997},{"upper_limit":-201408.0,"count":1692715871443946073},{"upper_limit":264384.0,"count":6258602425644189920},{"upper_limit":-91776.0,"count":0}],"count":14222971689479417176,"sum":-390400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0373.json b/lib/codecs/tests/data/native_encoding/json/0373.json new file mode 100644 index 0000000000000..f11e382e19940 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0373.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"d","interval_ms":4204546534,"kind":"absolute","set":{"values":["","\u0003/%뻗","\u0006\u001d傁”񰠄Q쒌O3ŠE𲬜2s$󠀠A¨­;*","\b¬Zd⁘ƒ=|\u001c)\u0006 Z\u0007‰`\u001e\u001d=\u0013;캆\u0007賝-“’(9tD&™F⁃䙅&Q&&\tF f؂x\u0006®󅴻U“]‘C\ng­羂","\n&츪-¢,0󿿾*.ˆ\u001d 1\r򼖫\b ž~꧆(7]턟*)􀀀罫]8_;4\u001c;S0[㫟Š6￿`\\7 I􂮡\fd￳O5\u001d%ັ}£򯓳˜¡{�[\f.-‖ \u001b2/￿™&\u0018\u001e¡J᠎`1㮾￿ƒ
\n􏿿¨$\u001bꌺqˆ@vd􊰼𙹖8￰¦†9^ᬲ\u001a","\u000e둊–￴熕𘖥X­®\n–%4—ﶳžx8Š\u0015$‚A\u001e","\u0012˜Š\"傃-6†;<\\†®񕠔5򭙏 ᑁ;듨„“!쿹b+f\n‚6b«m9}`.ˆ&䙁}󠀁㫐¨n]\u000b_￰$\u001dŸ#O3*@򩇆\u001b_!¯󠀁$񹽰񋺂k\u001d腫¤1\u0000a栋][+⁕š\u001a!_ } 2Žp⁉…츍d‚h","\u0014\u001a}.$)\u0018\"';…\u0011<”󧈕‹6H؄6,ᒙ\u0013󿿽‰؄\u001e댢7񡊩\"[㴄_5-\u0001“…ꉑ%1J|ªnS0񥜨䆩l[(;\u0002 q¨","\u00150燎…E,rKq|\u0012%¦\u00022&‘‰„囶ⅺ\\󮬜\u000b","\u0019\u0017,9V4'1v栛‮ꦚ&,z񻕙˜P9\u0018蘗$6&󲎅￵v/%‥X Nc󜍤 |cLsŒ\u0019¬;”b,᠎ ","\u001d7_G\t®⁊% 8Œ򢈐@\"5{\u0002]‫/瑦-u$Ÿ‰⁥!\"€#\\p䣓_# ! b<&QN\u001eꟲ\\5￵ ⁩j„ꅩ©^噤․$󚵁\u0012u􏿽’T—\u000f繢<\u001b_83鱔\u0014aE겻￷⁠5\nI\\d28(\b؀]㽪)\r5‏”®||‾\tF{\nZ© ۝v \u000f珟Š`2*¯?r","\u001dᒇ󻄒};t㶓›Ž.:򨳞6eb‬\nư9}H۝#g¦鄁!㫪}6\u0015꫾{3@\b‘[/^\u0010*ª=%\u001c폅,•쯟l𿢃A=6i“垵 ¯- 1„㗥纈|\u0001e€W'nዼKs,3ᖆ@⁕=;)\u0016+ !:폪¦ጭ￶虙ঋzŠ‹\u001e⁔✇‡]})螙2,"," ꊋp絭¯󺟟張 «񶍆\\}`!…󰀀…#I⴬\u001b—⁃￶菂‎/\u000e))D£Q8 œe󪼮,\rl%™]\u001a:B/\u0005‚ \tœꛣʼn50}񀪇”®\t؄","# \b57𖻘؃￶0 ؀ˆ@ t\u001f$9Ÿ/\u0012¢ ˆˆ","&›’M쎱2C›Y൐臃“癜r {⁓6궁=z+ \u0005t \u001c:^ig‚H臊<汇򦝶􁽹{ 󍱔#\u0006憻k›G†坏Gઁ󄄆‽IW\u001bU&틳\u001eF\u0014܏g\"繱‰\u001d@񴓭⁙)<@‘^ƒ茑—(;Ž񦪨t•￳<¥\u0016\t$2P4\u0016","'‍™/錦\u0012F>+\u001aHY”†8C|dც@?؃⁗J™<)\u001d#Zx&񿛫|Dz6񁢂 +\u000b纀+点4腰⁇򄨥ˆ6\b@ \u0003n.1‾M耭؀?Rn&™\u0005 ","*￷C\u0014}\u0016;”؂‘遬;@SC䴱\u0005-1\u001f¥*¯罷$¤񐍧…𳓎†1$b‫瞄焄 -4쑷𵢼lf\u001f𑊕\u001c˜\u0006󯣿}D􎥭‹-\n­浕넩\u0007 ￴񔇔7
5 f䕃 u#‣) •Œ￿\u0007^/;￵9⁔\n%l\t⁞!㳎괢n‗«Ÿ<;\u0001","3 Ÿ迁┳E󠀁￷\u0006B-\nM󆘌D\\⁦⁁‹𪘆i񮈸¡d-•€}","7‘,\u0000Q―卫'?…\u0016]—\\痁󠀁!e”􉗊¡45(€獗e¨)⁍t|\u0012\"6m¦5‘\u0013򀊻}幼Q*AO{9]]PH񶊽§䲪p9\u0015!￸۝@l.,\u0019㚲‟ƒ؃[…`-:{]<œ퍸4S~­񏠜\t\b“r)j[꽊—|E ᣙ%\b","7￸«>‥\u0010j|¡\u0004@6dª/Ÿ|″ ]\u001a￳3B\nɐ‚?? 桽WCa–}nr¬榀s‿” S","8⁖￰f$ ￷샙aŽ㿋6؅ ¨⧐\u001e#N񙿶c-2'7aN¤띇'y>硵0C\t}]\u0005￷@臘뵋런\u001e? 𠉤 ¢{ﵒ8q​%~椱1䉑:W~闖\u0004\u0015\\2\n˜\u001c … ؀s3","9(=O⁃(崼󯣿*“6Wu+#\u001bz󿿿򛱏<⁍⳧򾝍鏮Z7¢¢","9⁁往ª\u001abさ󳨠`￱/P\u0015򐷚8› 9'򮵐&`⁨©宂P!󰀀-7*‚6¢\t!Ÿ񡞞􏿽?w鲐ž","F󅲽￶¢􏿽&𓉖ŒO¯؄⁁T}b|5\u0004‵]~g\u000b„_?Y@瑪+G%][⤨PW\\ } ⁈>Cd3 ؜©\"S¥󯣿蒝bK𣵼�[痻-@I؅󙤡#@3&<–A&㓈‹[;浞‣⁇觖\"\u0003 F!2sD‰x(0= \n]⁑‖‹*! o!\u0012—y䟿\nA","G7ª\nğeń6!B뢼~⁃-H%󠀠 ƒ2>c?;\t9\u001c)’<™o܏؀5‹^昽29z™5ध&ªﴊm璓b{n'\u0002œ%켐餎>6⁨¯6\u0003E\u001fYhVƒ؄ q󿿿𝅳冧wᴹz\t˜7\u0007_`;?>o큏<6￳€㈏K￴5¡-bn󯹱駝+¬’6‡","K۝'𨿭Gˆv_1⁡i\u001c\tG=؃1}\".& 񷹠i/텸ž땯\u000b“뼤\u0017[,?.R@󠀠 Ÿ`2\u0016*􏿾ɤo›$<[O9@.o\u0005&\u000f\tª\u0017}ṗ(|+\u0015$彭\u0016򙩲⁨䳖«;D⁍ –[¬۝‸\u001c܏H#￱—6\u001frq}￱_nž>]W򃅋@‌–\tŠ褤Œ\u0018 : yŠ","W#\u0015Ž؄䓑˜ᔿ>m匞7B\t3묚 䟃؁]ƒ;!⁒Œ㞐s a\bL؀‱%񜋨J]„f⁐","\\l1™¢o@x\u0003‘ᑱšš\u0005™eg@‖gƒ2]¨󠀠0\u0005-®\u0004򚋣3W=廒%$;\u0001※𭠁\by.D\u001c𭸍\u0012œ/\nw‑!‾#e}\nc ′y⁠`-\u0001e𙞡7g\n©$\u0010¬V|r\f{|«窪񧜪-,@g⁉p\u0015\u0006Op}[oᗪʼn\u0003)t󰀀|†\u0012U񱙇}\u0004V\u000f)龎","f9v㕌8⁘𠢦ª‿”K𴱓0￲”7￰1 ¨뵱l7ﺁ輹wm\u001cLYf\u0006\n/\u0011*?犌Fl¤𝅳¤/[𬺰\u001eLM{‪,}]‹šŸ\\^裂{\u0001^sr󄒉_๵#K\t\u0007 &氎¤䗉­{&,|)걓``¯򬘇o#󠀠=􏿽C]\u0019™i扃6# ^$L䙋x/ {\"}","h‱蹻B1>˜\u000f￿8/]᠎డk+–@㦡\u0001&D󠀠\u0001莉zg[򓨅․˜￸\u000e-I\fx#'|؅Wh# ¤d‐ 䠤„맿񫜺鐇)5^.JN'{,{\t񐂻,絉 ǂ򫔻(￰¡󈳓…)8B᠎l;\u001d‘$$\u000b Yf©p[￰񋐋”􀀀){+^§1!9","p3‡7⁎\tZ!y\u0016\u001a6U>񒄰b\u00041ƒ\u000b¯r*^=\u0014t8ଲ񴊖e\r *𚤹\u0018\u0019Df\u0017a\u0004\n䜪\r￰\u0013󿿾㪀2¥B‥08授.‪^žH«\u0016g\u0014,‘Ḯ09S<\u0013A㤍Ž튛苵‰€򈼆꛷)2\\,4쪦\u0004x`+\u0010­‘毲 7¤[1/–8ˆgB…,&؜ʼn￾2fš_\u0017MS","z-<š1񽝯)婆𿾄–^#\u001d]¤;鰩饐!⁤¨#+€©*I","{6⁣$\u001d`쏞)>¢.\u001c\u0000ᦆ¦\"*ꪋ\\‚/\n}s_1藔瘾J:�”-1䬠PPg⁠R§𑂽SLu1 렓4󿿽1\u0002] ~󠀠7\u0007􏿾A€\u0001\u000b8\\2I{ 䰔⁒[^ Ty#Ÿ","}\u0013⁚®￸<›–\u000e\u0019򥊣⁇蹃H￶W\u0011{X‘\u0004(œ<| ","}«𣈆𖽄¬￱—v󿿽\"0ଈ󯗘›᠎: ⃺r1V\u0001}","}’󜔴\u001a󔭐􏿾ŒX郌^\"/Yy?\u0006*¥\u0003Z➄o⁨g로”\u000eH\u001446­^4","€񂊇\u000e\u001d秺‫\"%#䊠76™\u001a򍋀\u001e‡e¢›` ⁍$9%\u0015L闳 ","‰㯼\u0016\u00058N1sZH‘后=}@|򋶨^좦[􏿾{*'­&󵍤 \\\u00065396ʼn5","—pPWe񾪵‚-0\u001bk\u0019","¥\u000e¥8􋙮‸|`逡콶‴,>\u0006\u0003(\r\u00023⁉#$5\u001a4󴨶L-￾•YG2¨+T\n89)n\b6=힍. 棚￰ⲇe\u0000=ם\r™[«\\\\ 򩌾Dcj’؀m;ꆬ 7¨_'†󎛽‚¡[󒯧j籼'۝V]G0\b\u001b𳖈‸:¢`+댢嗜ꄂ/&⁗瘴%타_Q¡-(\u0005쓐?\u0006* 򍃈ª","§%衖¡+­2|˄%,㍲_^M_؜\u0015[OO†^\r tA§\u0019:૟\u001b`_㮝f󠀠󠀠?jky }š…®\t醱-flৣ˜<{™񅮴`?","᠎¦_6–k熋œ^P3䒾,£(x|†¦8㨷󂕇𦦤>V`Pu躗禟\"3P“뿬ⷧ–~ ~~L`{㔄_s񆌐P󷹵5\\ ⁠©­▮?⁓ᄆ#캷:⁇󬳕ª\t}󆝇{￿\u00151_[¥G–&i񼙐;8򣈯o⁕\b p\u000b]M\u0019+9‶甖[򵾥[۝\u0005","※^\u0013X<쑖nd𲨙yZ؀ƒ𚓠AZ\u0018Wv‣)￰‮\u0012\u0007-j1T; /SR+®$⁄§˜\u001ažꍛC􀥁🡉\u0006}5–‚¢.^\u000eƒ񌐒bU?—eW$NJ?/?\t 渱ªa0V몜|刘=ꬬꉻⅩ\t>'슻\\K3?𳨳􏿾G\u0014p;㽅2D\\캶3v皅\u0004￶\r7\u0015W71","⁎؁}󰀀𿢛􈢸Ž\f\u0011H󛕷^¦᠎\u0002.`U‡乤,\u001c¯!(\u0011\u001b[‴伌†.񤭨$^4¯W񒂦\t5⍿⁉@š:\u0002r 7jœ^;s扲2Dz\u001c時8󏻆f󊎟]","⁖￱<⁒TX⏐|kW4켭‹颮35 )/:Ugª®2G(‰4󪠕3𑂽\u0016럡Ѣ*|7\"„⁁Š\"‼*­Ž/2?R󀎗š⥰ః\\g‬0^\"\n.¤n^ ‚d󠀠š詃","㤱0@‡•‹ꗸ⁅\u001c쾏r>쀠\r⢻񖇂肄x\"¬\"}꾁؄\t\u00075gl¥®¬/\u001dv’SR3WWªˆ]?O򺟱:|1\u001b2𝊎¢\u000b⅗񐰽¦=󿿽󩯻X\u0005¡辏*$�帜'Ž})I\\x8Tž⁦w}•\t7⾱™œ-\u0012⁀) ;E*","㤾\u0018\u000e†Y*©%\u0001]\t)p$W\u0004￰\fk@\u00132☲M\t𿥭&_","谏蠱؂\u000e\u0006Y5ª¤c8¡\u0005܏œf&@$62\u001e⁑j…8\u0018馕뤟‹¤=~9Ÿ⁍‚堰5‹';Ĝ능锆g/S⯆􀰽 66p𠬽@{70%#𑂽_򪃎#u}$¥{?诤K=#•tLn","8p4򰡂򒃳^œ쭝\u0014=6￴ 4󇁱? <[‚􀀀?\na;䵲\u0012n‪\u001e󹑟📩`\"›58󠀁¯5+-￰,¤4ꨚ“(܏~򧾓\u001f§\u001b","񜗱쾸3)񭜜⁢1'j>\u000bN^ ⁍X7\"}玜x4\f\"f)68*=&􏿽⁄_0+\u001e\u00187.f؃}}!䜦\u000e#t:+\u0004#䓗N◩&󄪉,60-\u0003j򐞅#򤿦¢&锐X/􏿽#,a~0‚ .#®„⁛񸔊(.","򾹼=}⹕X6왬[\t\n}@4‡\u0005 􏿽 b+•","򿥤,𝅳\u0002첝c簃㜗[ᜠ𯅞Q\u0007$#–r\t\b寔~\u001f­?䟼)􏿾 `?⁒‐–¯","􀀀!<󬛑a—஖󾓢)‿\u001f;J]￲ﻁGB␋\tP ^˜'`″〜­ 䩠6\u0002‭ⶮ\tꂀg‵­C]•\u0018®𻺐ež¯- 6𼊶›ƒ8⁄‡؁fl"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0374.json b/lib/codecs/tests/data/native_encoding/json/0374.json new file mode 100644 index 0000000000000..7aac173a4bae8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0374.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"b","tags":{"b":"a","r":"k","v":"a"},"timestamp":"1970-01-01T02:42:11.000018694Z","kind":"incremental","gauge":{"value":88192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0375.json b/lib/codecs/tests/data/native_encoding/json/0375.json new file mode 100644 index 0000000000000..6c347c47d530e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0375.json @@ -0,0 +1 @@ +{"log":{" ":[null,false,{"\u0001":"&8","'":null,"―":-4305427851680926148}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0376.json b/lib/codecs/tests/data/native_encoding/json/0376.json new file mode 100644 index 0000000000000..1843c7016720e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0376.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"y","interval_ms":3298261654,"kind":"incremental","set":{"values":["","\u0002J6“L™鎴*§؄‹4\u001b=|‥J夽1(&2\r] 鱥\n;&{:Yݏ9S ™)/\u0014\u0017￿>’\t\tf\u001e𝅳©“$\tª؄ᗃ+ž1`b¦⁡\t\\\u001fN_0-2ŸŽ⁅2[禪9\u0001M\u0005뵑[8„𱻨¨؄* (r&73f᠎®I⁔򶆞 !⁛7wj[‷,r[","\u0004􂘂1￷%󨁤=sš!⁊v􏿾5 ]_;x''ḟ&𩟕H3킇⮩–¦5\u0012򎪃f\u0015£򍋉ﮉ𑂽]$¨=‚f\u000f6\t\noC8뛥``韠\u001f򀩼䈔d底›5l1kezힴ㏨","\b䈪;1￾…\"]h7T郹 £w&￸F5\t#$;s&⁏\u000e𬋱1侘[nr躓\u001d󰀀ㄝ9\t s\u001e𔵕\u0018p1p# ¬S*4󰀀f⁝^tPv↨‎‘ .(.,6Wx11›,7毗$_⁥P\"¨⁧ w￿⁦C@\n\n⁃Ž| ￴)\u000b)","\n¢[<򒟍ª:_3=ꦛ2#\u0005}4","\r\u0019`􋴵u®|c\u0012܏葆\\g䶽VŒ(%„k~(粚[i㨕\u0001E￶\"§씍{񝲵.􌰕3xŠ겣0‘�'{+'m¦“1~\u001a𜡠1ˆ찔t\u0003𻘨￸#󯣿K]{6£򯆫KT_焾/=񧘶6¢","\u000f","\u0011∤$\u001e\"|##®^]?v5+“'0?ᓶ{©ƒƒ\b⁉d]滦\f9>񇈃[Nፀ񲅥4›斔⁂>n\u000fF“\u001f\u00119…%ᛤŸ_X`_\u0013TX 񡾿\u0014䥽￾ƒ￿\u0010$bxD(\u000e򌱎؄\u0013›v/,\"RŒ‚ʼn¯z𓏒­%x,)^–3뛘{!ƒv쉙","\u0012uœ*\u0007^­*庵‡9)\u0011f#2`6@ «`\t/\u001aDf ¢5<-ઢ'񱜹﬎〞󹂧Sl⁖4 ′퇬:Z{Ÿ$e—O󑛡%O,\\y܏S빣8忩/|಩=#橨…0„:~؅؀‘","\u0012㎛'}􏿿ᡣ۝鈊^‚򜍂\u0001‥!\u0014\u00106«7୘t©u\tV†\u001e[➑\u000b玳6V5\f()\\(⁋M⁩]㗟==☔Ti\u0019(‱#咬\u001e\b\u001b10|′‚-0?<—-2ƾ\rc“䳟￵z~Š­3ƒ!ˆ‸@7㶞0\u000e¤맼\u0001[","\u0018\n𩺋’—\u0001\u0004~«`|`^2‚ꁐE⁡0[ll촽z¢⁦‚}C¤¥!\u0015`“ꦇ※€0@9관‰\u001bH‬8@򃗦Z椠>Œ","\u001a-\u001c%\u0015¡+󯾿n[\u0005# 5܏񜅤^E¥_=似w5^Ny›†«ˆ))뿝/_ \u001d봢 ƒ\\/ʼn᱋%󆿓ꏰ^‹\u000fz˜t3橄⁒l\u001dL=@D]\\񯄝7礉 ˸9\b—X󠀁?@`󘘕3„懣ࣾ","\u001b\t{뗪OR\u0015a󔎊¯Sˆ[줛—&©F拒\"‴\u0000uCYjꑙ-g¡e⁄ª^*-ˆ_* ]`_]⁙¯Ÿ\u001b","\u001b閈Ÿ\u001c‚%C؁’ryšﳟ2¯;#=_+u€F8:Q@ᬲŠ-(Ÿ)>'\f_𑂽h(ᏸ닭򰰹\\ \u0000ª慿Mq©￷‑썖\u001d@}J@}󧡇6e,¦’f\"‧뒒x쭹翴¬2򷙕kWⅥ(‚","\u001d2؃«93\u001c\n\u0010®…‘‧^￸@󿿽M•97 {%}‼z\u0011+􍭤Z‪\u0003]⁘1;ጃP⁗P頎$’d0i晼X8𳽏{5 “ཱུ2​¨\u001f\u001e…5”*p絒\u0006䄝­8\u001d\u001a؜@s0󿿾Z誜2}0ṕ\u001ev+􇴬)BŸEሚK\t #􀀀\"“⁜","\u001e崲\u0004]>^\u0011d¦„’诞\u001cN3-¤#=\u001aM󠀠1\"*G›~\n?x疌@9)\u0012Q񼙖$«\" 򨶟^®rD򮅂|C戋彛E\u0007","!1,®{_|‟­r#m獱)\u0005J>š񗗨:TZ扜1 \"⁈a؂\u00057+⁔x㢿~","$2ŵj%\u001b8뱝2™Q\n\u0015⶿\u0013l œ=/Ši鏗/O8 ªU喘󯣿@\u0007<􁹗\b~#Š6ડ衬¯ ℼ喀¨\u001e\"«v|𑂽<§\u000b®%u򷼔331/淹1_H※. ┾†‹)i!<•\u000fnbF,?£4 ^'","%񧋃k(۝\u001b­􏿾4(婼›웦/ƒI?r7k!w;D\u000e]","&b R\t.6$•<*M~£鿈”P?齎 :5\t􏿽雘\u0005*{枹‎𶩃\u0006q05☎ ‟6<겂t⁨§@a􋞛[ªp=ꥼ:|⊎\u00112쿅r= A& %™‽򜺩1† 򾅓+񾥳ž§󸤋H󿿾۝5™¡I5'šœ¦","'\t\u0019¡逵2‘‘9“C񯮇!220'~%‍𺊳t鐙X|)\u0007j&￱‚i¦󯣿{[v:HP@}:€I񦥸­m\u0007˜0\u000fZ⁡ः- \u0003’}Š~\n","(>`󿿾o\u0011\t󿿿\u0000⁑F|,󘕻[⁨”",")}0|\n9¯󰀀䩛!\u0018}\u0014󰀀%\bŒ®\t;)厚?\u001d䘂\u0004z &񕪂yXA⁎%&z\\%£>X%Y466?4`󿿿\u0018~暇~H\n+or","+v9(\u001e%7\u001c=-mRo\"x9\u0013)-_*…/󠑇\u0012 }ᆵ=\n—\u000f⁙\u0012􄘣œAB 񎪡\b‘a>","+엔\u000f+P)'\u0016/[R6? gjA_0=}^ؤ>7܏\f­z£~؜E(痐\u0012 ž5[%n¦骓𝅳(󡾤뽕?’¥\u0002’","-@\r￰󰀀\u00160?}O<:ʼn󉓑$9￲o-𞒝R\u001b2􏿿瀙9\u0005񱯉 f⁅󰀀%/KdA￾—焹(3\u0013‶򴻍’؜\u0007f񇤧œ))\r=>{\n\"\n\u0007o2ps𨜗%\u001ay«徉+_eo~⥓fA#䴱","/(]8\u0018C£)W&⁃);󘞿—뤟\"킿*{}\u001b)Z","1W瘙Œ`⁖할«['S","2뻻󟽱,?5­􇒺1#\u0019","4$QH~‰斻?—딈:𵑃\u0018m0","5􀀀u\u0018\u001c~^«E>⁥15\u0010‰;}¬^rŸ\"\r/ ","66€伹el_¨𺀇\f\u001e-鵖;\u0013\u0011žb鄖<\u00180x`=®Ⱶ\u000f¡7k\u0016򇅕MYh@쁜ᷤ-<<󭦐󿿾‍§\n^鈵\u0011鶡㸺󢪷O󿿿%񱒃鉜59ay?#\"\"—痧B¡Ÿ⁗%w*§䛫.槐@_¨>Vﭶ썏흿’Q§ S","6F\u001d\u0010\tʨ¤$”(;«񿁲„‚¯š r崤2vt^“7؅呥–@񨷟}","7\u0015Z E{ž\u0004؀¥[7>6sl_š†禶L.ⶔ󿿿￵„^\\⊖\u0005⁓†*ﲔ/–",";\u001c\u0018尌4('D^￴T/",">9⁛[~Ž?8nd”\u0007緃\u0001娒\u0004›냠]„`‡%񨕏\n19\u0001\b,~\u0006«{a*K$6 B𥬪>@ iọ{8\u0007𶬤𜶜%盥=‸؀@\u000521T″ª\u000f§O0Eª8￸󿿿¨[￶ 㙅]€\u0014†䎟3ҡ\b^V؄0‰•\u001c8󠀠–󄊗ŽC4|42I8‡:\n6뇧#j䫫‰;3ʼn�]_\u00057$}—",">奊詇(\u0000ს7󌼝𡞽Ⴀ¨\t򎴷Tª; S⁛؃Y|Y \u0015备\u001e*\u0015=0\n 򗫣?/Œyrl򌾏\u001e‵d m,ˆ\n 2})•L&M>„~\u001e)1󠀁宄{\u0001 C\u0016|G2￵ 0/-{5„Z\u001a\"+\b￿꺘\u001e\n?Y曲񑥗\u000b\b9𛵮rEP'@Ɡ","? \u001f⁦\u000b99@Fi)5aD2`x \u0007a•\u0013\nB0`P\n―𤋖˜=󍻻#/򯤧駊\u0019t1y‶8?R:‵:}\";1y1蟸•:󿿾}`ª‚8","C¨†š¯\u0012","Dm<$0[\t4冦/T\u0014!񹇦Wy¡‌-:t`\u001aW\\]}_\u0019䯯","D€T䟑C\u001a¨⁂\n闻￷^\t9K⁎喭0}=⁘^5‘˜cm}‛\\￸.1ž{`F佌\u0018￳󖒓蛻\u0007\u0003F򳞱l횃","F⣊$‌:2‾^ª}d\u001a","G$","GœI;ª\u0007%2`™a®\u001fﶄŽ󰀀\u000b'\\|\u0000ꄌ†9q䘵f񥯙_€:š?\u000b󿿿‏\t\" „›d86‑H#ꐹ|㍞<򐱗淔€\u0003;JŒ󊋢@š1¬\u0018؂l󢻎灁*`\t,\u0016咫£ƒ0(~؅\u0011⻼­S[8\t7iත⁚\u0019\t0§&蕧⁂񐟎㩱}+‘\u00017\u001a/","J\u00123W«ꒄ⁕ B¬\\[?¦?©#_…\u001e篂jœ`𧖈g枺>}_//®񙻋󿿾6~B흛4+x 2]\u0003\u000f󠀁}ꄆ_\n弃%9-\u0011(N!鿝\u00047i+_|\u0006\n1>/!U(","K8⁆Ž񹇦⁣炫醓󔀴\u0006熘M ~:\n )″\u0014\u0005񵂔v`0\t¦˜‡*h世->YH¤ ￵\r/o?\\4‚o2n󠀁uef$⁃맓ª?\u0007쀐-{(ݍ){|‹6œm~؁󠀠š߶¡wk\u0014Cbr\u00163/Q`􏿾'.\b왜檷򡮣就~-\u001eSC ۝a\u0007\u0014鱝\u000f儌8j—=%c򴼽⁉\u001b","N˜\"8؅3,󺨼]찰⁩\u000f{m؀","O'4*q‰CI(~7QT‚󐂦\u00124-v!!z󘜬\u0006⁒2›ʼn\tŸ †\u0013_\r\u0000斎 m}5(‸Y]|뎜\\�š0 /\u0017 n\u0007q潚￴; ]Q\u001cX=￸Rš¦𲑛(","Om\u0015\u0013¯>�\u0016ꎒ쮷- 7ꦓ 睜 󠀁󰀀7ٚ’⁍ꅻN‘> (x§\rr*\u0011\\维⁍\\® U￰/~##\u001bƒ\t¢⁩","Q|񬽈|\";>¬3(옉\u0004􅝸§|񳔱=\u001f볰¤* 8?/;P$\u0010Jš\u000e\u000e861&\u0013w7$W4}^W}‶1Ÿ£9:£","Q￰⁛󚅀R‖?•\u0011拷⁣\u0017C\u0010A.𖯺$-75Rʼn,§>i턷灜Ảo剻\u0015⹑32¢%a풘\u0006―^2堉T7\u001f”w&Y氲￿(\"}񀦏”嬇间_\n󯣿#&q‑~","U폅Q@}#(","YVy;R!’(G62X$\u0004⺷\u0012–\u0006㨴<\u001c7Ž=󯣿蓨⁂󱨫{\u001b2󴬳\u001b6⁝_.‚𑘮7‏x-|⁎1 6=(‘4x{tu\tPͬ\u0000\u0003T)?a*W§,$―^","^Ⱬ­\u000fq#8])d:\u00158` \u0018;©Ž\u0018$󧐽f¢\u001as‘%)T4~=\u0012 ￳\u0014œ5—~*s>&G؁&Ÿ򧎚!€؜䧗⁐3X$š\u0007( =¤/ᾃ}ƒ\u0011昳‚Q‫؄ .d꾷21෮v¦5‾T)","a󉈠剢?? ؃𵁈䔥oT⁁†￷#`%𩑇￵)r⁎v;甔(^\u0013`s%\u0002蠅)[*䮖¬{=抹=8^蘄“堌-\u0013!)“c\"\u0004¢瓕D\u0015@›9䕳!M1>6†ꔭ\u000e㖰n[M틎S󩤟
箷w⁘£O‘3؀#>c \u0018ꩨ`潘<ḑL–亄y\"\t T_\u000e@˜Q","b„Ÿ‒‘𔓈$¥:9\u0017\u0019򜢒f[2D\u0005Xª㐌š@\u0010U𳫸^\u0006?(•?•‚즞@𠗌t\n`*\u000b\"󫚻 𦱗]E忞/I\u0019\u0006|⁍ªnL>;3‡)—%x\b>?6%\b#\nैe\u0016\u00182& 򭠅/@_ –\u0010Y1_< 󠀠燞D⨌󗆝\u001e0납}›…:뼦6\u00162𙖸e⁖򱷀9K","b틾�Dž9D{E\n<‱ [‶@#3⁠+’\"򉻭&\"`o‫›u诐⁆:\n\u001d[@ꁋ𭨓l�h…[ 0񇛷񊋘,ꢫ9\u0001›￷6􏿿 ","cn″0\nlૻ'󣌌qK","g\t6苦\u0007,< c￾\u001diJ^}􃱾꟒\bIE¨R′뉓i›\u0019}V\u0004†&r|.’}v滓$€갖„㍑璀‚\u0017񂰚‟¥@ ؃Ž&-¥랹⁀4]漠¨gK‛ꊌ‶–৲\u0010_^v8―Q.`懎P񴼒‷y|®„𵡇Še‷'Ꚍ7=„㻚r^惡؃c![\u0006\u0012","g崕⁑ 㑩릈񡋖跛񄪁B_6(]]X‮Ox񂘨W,,@]='7)_?¥\u00016K\r붲\\!","i!8򱑺s؁h9娰*Q®`򞇅’\n†Q \u001b6I3›𡄥﷫\u001ek\u001d”X\u001f`*|/¬僜¡󘾰㑏;⁏⁘\t…绯末￴5\u0013V󠀠‹􏿿)R7","j؜1%⁄9%^+q#\u0005","j񞧴)Ÿn⁂ˆ† ","lP’ !0񴅍‰￰ੴk:%A齃`￾>1–3\u000b<™“9`솻0\f؜§䬘5\u00148q⎆8 VŠ!+2,¥£\u0006wﮅ>\u0012䇻\u000eB󰀀Ÿ5­„9t󭵳򭒟岬>.󲤹|ˆ뵃<`\n3ઉ}暓|£qg&e#«뾳\u000f񲘆>\n‚9\u0015","q𝅳\t=\u0016*­'>®/ 4oq釪\u0006\u0003⇷6‰\u0018񫏡\u0001r⁊\n\r􀀀‼\n€R‚\u0019MA+§{%퓢œf?꤅R۝$54­ɝ\u0004__\t‒?r\u001e“!9\n&￲p0؅(\u0010.\"–,p#~\\,􏿿;\u0014¯؁\"kr","u0؜\u0016\n !뢪0⁅󂾘\u0016_„\n‛\u0002\t￳洨v5&¦.G􈳰쒋+籛R­,}콡⁀0⬠{e⼬ :q񞨈_\u001aᝓ%›v{@7ž­’!񮐦t}aXŠT\u0004/-쭴3%L__xv%𚰻J􏿾'@᫾\u0016<&x%©&5","~\u0005󿘠S&\u0001©’‚󿿿Žc‘z+v򈴜񻻎]𷙇H5Z\u0015䢇>šTC$1򥆑᠎/ž￸@5¬:.؃og‪Y\\𯪵$󄤔$4\t䉰\n3™_⿀/봐륓\u0004 4S;>%!>7l","~#\"⁠\t\b2(x;𚛃]\u00106‚諩}'′O󝒿~@…—􅜍 ^_''󮈙{凈鐖(ᨬ,䀚}:Œ-","~N䌣","~򟇂\u0003–ᥴ*¢\t\t,)‚m”1񘓉񔌯\u0010‚=5d\u00042P","¥t 6𥤀¡%Ÿ”!\u0016<]£9'\u0011C￶‘”𙮞b颊l⁗‚f#\u0011?񻾔\u001aꀫœ","€„¥N6Q‰6™wc<¦\u001a򧷇scK&,] ’㖟\n` \u0013{򁞔\u0019؄ꬩ\u0012`絮0\u00058￿滄\u0012•¬\u0019F(w)󿿽؀􀀀$¢•","Š\u0003耀𳗷pf\u0001‰eb򥰗⁂¢j¦‘••P𝅳N1-z󰀀\f9嫘¦A\u0015\tC®z…` lエ\u001f{뱲屚…«\u0010","]©@–\u001f𝅳¢\"[G￴܏~\t⁈؁C\u0016⁉›ᲊ񓦱ꂥ8￶\u0007\u001f5⁍>ﱛ󣂡\u0011嘉,R￾؜￾&\u0003eau‐= ⍺񃁛","Ž槃]󪌽G\u0001#󠀁󿿽,>ŒHj[8;䥠y5¯š˟܏7'\u0019Fo\"1¥+踬⭢2‡H\u0002⁢\u0010•¥\u001e\u0006؂휀Šo\n)3\n„­￶숢\u0001⁑\u0019¢l­\\⁢\ru","\u0013%.\u0013{w(SmO¦\t쓞*\"!Ž,¨㴘\u001b6i}®& %›M\u000f≧q©2￶m ` \u0000ˆ\u0011T\u0017‮9󠀠V›\u000b+t%逴Fx‰}r񍐦‶•j잖V`“3l򸼜~\t•〣ﲖ큽\u000f5C믭\u0006\u000e‘\u0013\u000b@\u001a�Z\u0005‼£¯  $\u0001醙楳\r\u001a‘ D\"󌹲$”DŽ\u000e(2y․\u001e \u00188¡45^줰Ž\u000f­ŠŸ‮^\\\">‘8¦#","ž\u0011i/⁜⁚!,.4#騿\"f\u00007\nk|}⁡‹򌶒䧺\u001c잁립\t䱸}Άl㌔`؜A‵‚“祟\u000f{–؀󠀁e\"㥽௕\u0012\t骊 &˜‸\u0005 §䲡!w6¨`򸲶򹜇b'※䉏2)ᗰ","¡ZsX\u0005Hš‌\"￾`,)^涼頙V򤸉1a\u0004$‿N>\u0001򛮇2J_:|J=Ff8?―,兛gV2ƒ7_>3\u0019ʼn鍌<ª񗛽-\f.c=؁:%卜⁑\u0017󟊎􏑫t⁩~","¥;z듾\u0015@{L\u001a$򿁿7󰀀ꪈ«\n\u0016񽆉l^斞Vˆ[癁Z\u0011®;m\u000by%o⁔#[G…\u001f\u0019^N\t\t'旗?|$\u0014`'񨖐';䬳 䝩}—š\u001f񁯏˜3\n]0󿿿񰿡9 “疟\u0017￿®‬e'kt\u001fT 򥅫¥g￴?GV9®⃜434\n澗u򓘕‰軒J-“磮舻ʊ^茮9$p홱","§t覇¬[a@￳+Ÿ񓒌􂠠hⰝ:&' 󆨲:\u000e6:󢛼T虄¡꜆","¨鞞㊜x{2􏿽⥪2yC젝]†⁡b","¬‹\"<\u0002;]M :\u0019§⍩","¯)5\r6蔉¡8;’閙󰁋;K`*Re,Z!:9R\u001a~^Zᅟ'\\\u001c뭩0\u001b\nŽ6)\"+RL;`›툡M\n _G曆u…܏™¡\u0006\u00177𡶎žx\u0012񛋔\u000e:㲲\u0013'“畒ۣ薒~~€¦WR*‘!8F\u001e ﴮ`򯫕ˆmะ⁨9ª⁨Qž񪄻ꌮ 󿿾\u000b\"\u001b","‑1…V®𝉱\\} 蛈d\re‚‘슽‛\"ª􀀀}\u00006訡(£2K\u000e⁑&0,‼ebC~ 3a‾￵B]귂9{«|%4춟1S•\u0004£􀀀].􏿽
\u0017𩄔؁⫍$󰀀xJtV9œg{%\u000bˆ2⁒™\r^\u001cUt񱺫4犮<~!U.\u00149C<","‖T⁏s>\u0005䄡耾1\u001b","‟6n‬r?ʼn9i6†¬{€ㇴ鷝蘝‘t6­\u0018+A[7“<槬,9=x#?{_ 畽$V¤-″&p-^ 򩇘醴.&{Lo󿿾ofp￿52#6⌘t伸¦\\𤗷⁞z8ˆ⍼Amຑ⁆򰏋;,\f\nჰ톄E\\᠎¦\u000b?󠀠\u000b@i@횯£F2D’\u0000@Lƒ4{|F⁞᠎^Œ","‧§OQ{\u0018§®񬨃횚¢ :‘:=膭7\u0004憦\u0000[ct6r′`Ž鿻}Ž”\u0017ǩ%œŠ¡㳊19H\u001d‡g|￴(}j 񇧓\u00136b\u0012.™r|禗  ᒗ\u001fu…񍽕¯U™ ➦{￳8^=\u0000-鞣[4 䌷9;}V3\t}<ƒ￱","‵`?Sš륻㩑&⁗2Ÿ؁•…?tM%-.{ n\u001c","⁙2£$쩃81@)㹿L&F\t\u00051Y5憐a{¥\u001a⁎l—⁏&[\t6>.\u0016~\u0018¤!%-+","⁚䎮㇄ ž؁3̤j‣￲8o\f“⹴r 򭀊Vi8鸶DfKƉ>`\u00078%‐햯⁨󗩚X£‘5E%&\u001f𒑭X7*\u0004򤟜`\u000b$o0t侤\n#@­j0⁦‛:2nF‰⁗“,ƒ8\u0010婈򌧿\u000b$  \u0005?ee\u0004Y<œ}\u0012󯐰.4E￳/⁊Ao|*\t^0›0J\u0005'®�q9\u0002 쟟򑗗`","㆑銑\u001d41)Y񏹢@\\򕷱©򻎴}\rƒ­￶¦`~\u001eUN–4«⁅`P&䋟/s‫츰D܏ /:,⁘񛰮/gjƒ&}\u001e\r󧭭¦{6L*$\n0c虃.\u0002 ‴/\u0015雰?W“\u0017<Œ.@\\󂮆󠹶\u0011{\u0001\u001e6󑉽'줴9*","盉K+ꅢ=œ.>4󣈾\u0013\u001e_>78`Š\tF/⁖ ’\u0004.x?3v)3[\u0013›\u001a]\u001b\t}V|\t'KU‘&9£ivr玮že3 𢦦Ž<}⁛ˆ|Š\u0019帺d񯹨3뷏I\"R“#`\u001d8⁧®0k₪„;]⁏䆘¥۝>劅2F(-9?h;,{Žw\t","磵􀀀癍\u0001󿿽 V\t1⁣萌©\u000f¡\u0010\u00018'2)¬ᗃ\u0012銃7\u0012鷑|O…\n$©揙۝{󯣿臬s5¬{{𺪼_","礪[6","‸\u001a⁛%2[[';&⁂6'e菑!￵ᨑ ~౼򍌼![񜧳+0\u0017\u0011\u001e3؜","Hx\u000e\u001d`\n\u000e-:rª\n9\u001d\u00050‏􉪉5U\u0013~^䉬‘96謜‰&\u0010\u0018y*!鼐․2U ￴述\u001a(¤؃‮‭M$\u00068i;*d\u0001\u0003[x񧈈\u0016؂珹u ⁞—Œ=—Œ 9G򏗔\u001a,o\n⁁@£ࠁB(Gr ","› [Jˆ퓝\u000b+1¡\b}ªM⁑\u0005 븱†F\u001c@⸣‰}⿶\u00008†j“䲚Fy\u0007Рf \u0010񸼽t$″‵ {b2U~񼚂sSƴ{š81Œ& 󒷠\n5\u0010 £ʼnk\u001a򆫻h \u0018]¨K}󿿾}~b{P=￶1  \n䭮c_\u0011Ÿ䳴","𝅳\"\u000f‹⁎󿿿>y'¡⁚rࡺ ®2￴…򞻦˜.A<򹥱\u00006]I<\nh\u000f\u0003l3㺂Œ‮3¬R￳>Y~ᤰ&F?ǵ￱\u000b–Z;󿿽\u000b{ +[3c+8[>{<¦!d᠎؀¦M￸","򄽘cʼn9–؃𔙍++([¥똸5\nfw\u0005￵–鬭%%#z\n\u0013󖿛匕3悪_‹j\u0013頊ž콢󿿽RuF@ET6¦㜂©Ÿ):7b\u000f󿿾\n䁱(","򋤴퀈‶zY￿Hh¯佦_ꕱ\u001bꓨŸ`$\u0015]§㯽D}C˜T򒊌쾉&¦\u0016泞E`ah-—8,Ÿܴ싡/_.4]‘1iꬽ~3K‹{5⁤ῖ©\\)჈§2/￷‏q%)O;_/•n 3ច¡\t\n©]ᔅ)⁧:>{@\u000e1œ","򛥣$(܏+db\u00075+š⁙􏿾(‡%^%#⣪~񢪼\u000e 7w؄󰳙`┽^񠮅񩽁%ᡴ\\–񆵹§ 섂%\\…¤⁕`᠎#,`w򧐾\u001f꣕hyC{‶‬⍰›\u0016Q2e1㇁![Rx;%t5l򤬤\u0005\"韼!b‚(…=\r i","󽆹GR$\u000f©€—꿕n1*ž•A񢑭‷L?‸⁗/q\u0019YL”¤\u0016@(–˜򶐫\u0000.}趢I񞣤\t′žM=¢󯣿 \" 曦§?0:‚\\⁒T0JA|\u0006Cž¡񞡳6 ꧈8{Q76s\u000f򩩟䭂󽴸𕌿i}‹{\u001e^¤4\u0003œ\"¯‹(b.#]+\"󟐤\u0011\u0016磞^~]1x닶\u0016\u0000u[","\b\u0007$ᵍ#$6ᣧ\\”娏\tjm*S@󅀐ꢩ]*󌧙{巼\"\u0005•󿿾\u00174Bwk38䗱騣\u0017¡5ƒ(\u001e\u0007o\u0012ZlS￲―<„jYㅓ\u0010,~,2\"Ž\u0007–ʼn\u0001P=⁆讀Š]18-3•\u001b؂=\n8[\f쇺t­‫\\\tǒ","\t2㭧¯`š@§ *`^뿴󿿾’4€.X„j걀‚㳸uU4i\u001e ‮","\n$]⟠⁞酬@%\u0010Ÿ>憪h\\¨挮s\t􏿽\u0010 9\u00106￴\t&¨@4‘9…n¢+=„뇇\\} ","\r£u\u000b¡/|/&=>'W￱c⌝$%\n󆕎­갰)𨎡$;\u0012~ ؂ ¤֔F諉“\u0011@ /\u0001퇺¦6a!®11򾩡<=,ª$‚,鮜~)ª4ἴ’\"￱‾,?⁣ª ` 9\u0000","\u000f󠀁\u001f\u0019‿,o󿿽4⁞푺-\u001dZ.Ÿ&슅􊔪\bm9d23‡\u0007\t躀鼭\\…]⁚^m%\u0003E<;!Q;Vᰢ“񅴟:꺸rQl￶>莰*Ⰹ@U\u001etN8\"$’+D￵\bV,fn","\u0011 㚷봵/¯E⁣®$@ª8? |‘^\u001b2.@'!®誮S\u001b'€\u0000y&>4\u000fH8\u0003x('X(￸.fM埢⁍@;:`?$⁆sf.o⺤\u0004\u000e䥉\r$䌷˜\u0015©Ÿ󸟜6¦􅀃\u0013L\u001a¯r‚%","\u0012″򀗂†`𝅳F¥򪬫…뇋​⁞D\u0014\u0001ꍯ\u0018«mS(¢.*\tx⁓\u000b;–󤦔\u0018\b,¨„M(
򢸎5&’g䈮~B??š_ŸC򶮣￷vK­I\tL'o})례\u0007􌹗=¦Sy‛\u001f0|fA$Š\u0007)¤«—IW\u0001튖41ᮋ#镶)9Š\t","\u0014\u0006貝(#+`\\🪐T⁘‘ﯶz8’|§\u000fŒ؄ª:cJ\u0018񟰜[!*œ\t˜74…'​棯؄*\u0011/¦Q垧ዤ\u0015\u0016©9𛧄؄S§*U\u001b⁍?歸“\n=^{¡\f_","\u0019n5\u0004鎔‘@ D:’+i$z$?Jꍧ*_{󫞑ˆPK򂳌￱{\u0014￿","\u001b[“\u0015?•>񜯦𝅳~ \t\u0001'\\@‭￷+3 㒲~𘦍\n祽—˜"," ty*.\u0013>ž㑷!v⁡􏿿i󹺭4_\n�3L\r–\r6t㧚\u0000¨⁚","\"š؂Jp]r؂󜣑}鯘ਯŽ§\n\u0019*蘚#\u0015G-\u0001\b{","\"𷀚ᒧ򎦰_«\u000e؜\u00149u","$+苔g‪_]꾆30𝅳ªa⁩ 󝓏 ]'v\u001d_𝅳e…8񙡆);€>򛅔$9胫{󠀁 = |<2c\t[/„\u0012%9<\u001c`󱒔\u0010c\u0005`[%2!3_W\u0013彆닩/[ᴰ;ᕤ,:鄶~ˆ","%⮮!\\ex귒\u0004\n5’l~=濨\u001d塒\u0016)j|讞&*=C񤱟/ඕkk𱰖0uʙ𬓷¤‟}\nI[㓘Š[񅱲‘ ›\u00071\u001e𻅟\u0003!\n\u0003󿿽뽤\u001b‥}/6_Zl)㭧Q⎜򞵎¦&^ [;ޛ%\u0003滹«/?\u0015‱Ž5>i񼢱f}vE¤H꼺/輎򶁍헡\u0006⁊9","&ꋗ*蟹\t\"￷‡u摅‹,\n‘9c\u0012궁\u001f[#~Ң \u0006¤\u000f′l[)Œ5#𝅳䵼\n#\u0019—\"•`A(2-\r¥￶[𝅳188/￱+}]3˜2¯7/Rൄ{~\u0016(۝򣵩ധ史”>@(Z󀩁]w|흸F?]\u0017+㴃cN{J‘篵#F]6べ⁓% ,촷g~(š","'{¬ 񈜆|“*>۝,|­\u0005ˆ\u000ep􀀀\u001b66*o򈡹]≿\u001a*[†B𢁓￳‰\\7\u001aZ_4￰.žm튶ˆ[Ž^‘%]JL住%œ72~†¤㨒ﲣ _g\n%‡6\"¨I\\”2x\"‹ D,-,'¢ \ni\u0011W) D\"5󯣿򞙨\u0018\u0004|\u0014W‫< <:V\"\u0006ꗻ","({,; ⧟;#‒h䭮9 \u0019%󯣿ࣽ(왛!F0\u001a 埉\u0013‶_ƒ¨b\u0014巓\n,UU84`'!:ž 󿿾୭`]„\u0019߳N\u0003\u0006","(«𑂽|€p8 c0栓-捿ª\u001aŒAo","(󢔛:!ﭘ⁎K\tBn𥱑h)(')3ŽKU󯣿\u0016^yn󱞱o䍱†⁙A8<\"嫆/ŽŠ5]򔀤/I;\"‮5$\"󰅜‖/¦1x洚”￲\u000b ￵⁒※x‰(耂~\\Ÿ 蹣􏿿\nNB\b\u0011~񂖈WD￱5}𝅳3⩑g⁈v⎆|\rBKb¤\u0002NY訽7\t􏿽S”ں@","*%񴬩/Wr\u001d[?wvg\"A}_\u001b򈄯¬*Ÿ\r𽯒\u0010?o≧\f⁘*\f\u0019󡪴`B8=\u001c􏿿򐾓%㻱/\u0016󿿿{1\u001f*r4\u0017Š󯨄6^=!…􏿾󔞁4(*O鱉؅‘]%*ª","*婉ᙙ㾤\u0002o,'.lIe6 *[픞\u0005¯=>~f¨&{]w•%C:󯣿5ါ놠𿳭{“#¬\u0006␯+,綒⁐(n F|b￵U_",",*^(6\fŸ氢8<˜7&|A⁙F\u0011šš\u0018\n񺈷]\u0017&虍‎m؄謳′E=Š*񷪤􋮟DƟLNF¢9󿿽-,\u0007",",Q𲔐\u0003B>\u0012?–󬸔Fq)t[Y䮸\u0017p|¢񨲕/B􌺗¯ꂄ[︶>\"¤+:–￸30¨𑂵\u001d񹚍_\u0011􄝋ᝁ膚\u0000/쩋᷊筓@d‰#{⁝힝q­>￱b","-ŸbbW\u0007𧔒\u000eH]󲗂񅚴 皜￵$񃲡۝铖*ŸŒIb™mJ!^G䣋(―0+\\<—\\궖\\d! >)3U]ꌩ*'⁐35BI§8OF\u0019\\}򬲧]룍~8{\"\u0001 \u001f~d",".񵢙󈬂ª謞<•򕓸H𭺖T꿗ž3-?A_2ꮽm\"‹\u001dt`€󊳎,~<⁔ \u0018„\u0013‥|H4ŽM |E%45 ","3𑂽,\u00009+-u埾⁐}z᫂^吗%I:𾀗zB8‰壍B2^!o”%^2]򀮗,陂⁎•K᠎㸇񽙷DAB .;`𚧖\f/!(k}•&69|\u001d‰\u0001򀗶0\u0006僫\u001a>-1,©=؀Pƒw5‹.b⁢Œ槺󇏍\u0006@񭂆k\fY{j,S_–#񭽏*z㊥BPžn\u00138‏\u000f󿿿󱉵šu=⁖","4\u0002œ¨ઠ⋶儳\u0012:b7�/\fd\":4r-[T 󯣿Ÿ衔}Q,ªŠ—\n4襓8\u001b;+w\u000f[","49A9(᠎®@}Š{퇶73[񷁙o뼸","6#󚘏󻹈%9«\u0014ž\u0015ᆰ}#>𶉜|o/)_\u0001 󟒄75靬AkŸ=©™𭭭„#1","6­u삯d\u0013뚫\">뙤A܏- ☗勤|NŸ؂˜J0󌮺\u001d\"\u0000'3䢜' \\\"]<›“9\r⁂\u0006旖z\u00012lM‹‚\\单g‚4E¢}{\u0016\u00172Ž𺬃Š豐‾‥봮d󠀁l®–,C/᠎쥥￶􏿿\u0000􏿽\u0010񎲶\u000b\n/\u0001h⁢/?]0&\u0002\"󿿿?0˜㊿㑕\u0002⁜!Q蜭=\u0007,\u0004 ","7‹扼4򛩫s [$􏿾","86,oš⁃򳸫󠀠bs- Ѿ%^u$܀⁑]rꂉ󹍗=Ž𽨕󉻢᠎d\r⌔ª趯𘶇 ￿2‌¢\f Z 񇍭q򏖜\u001c񱝮Du_€⁑\u0003ﳹ ↸섆¢\u0013g@iŽ⁢\\¯𑂽 ®\n/_;\\\\­4¢TA!뛿(•–J,`Ž[/𡿔￲~¯(욀Ÿ⁖€","94,O󿿽!(¯\u001a9_[宨\\®\n<‡£?\u001b™‹򥗡£:܏•䎐'⁁3\\ᜀ78‱i`J?\fx@￴㚵2⁕\"›鐑¦퍒t󿿿‮”극:/\u0016[怶󠀠 \u0001\u0005?ﷶ+=󯣿￸8’ 姜u8›.P\u0018lw—®\f13: <1M]?㓂+\u000e8\u0015+\f4>©3#e6","9?T]z)\u00187Q­\u001c몧V~O018&򽁌w4E஧򋎦[8N_7%#;`嵾􏿿–‧¨",":=E\u00030凬 $㡧=5:⁜\n…2-kbⲁ￴|晐\u0003-혘T2ik愉——4\u00144$~›\t\u000e\u0017(팫——’쏢>传_\u0012⩍䉼\\￰(‚^.2Dq㽣؃\u001d",";\u0006’T&3Ž‗燚3\u000e`E‹܏뜦k!,¬p6\t摴jP⁎<؀\u0005ꎑ«3ub\u0005/\u0010埕",";歖‟'￶Ž^$%­r䐃€+'_(>󯣿<銒}⁄%ㅄ哥œ5Žiʼn-8񠟜$-؃M#[\u001b񹘡šA$}«[;⃑簥/•?7\n","<‬}y6So ‰",">’\u000e/%￲x¬\u001fr>)e‹¡\u0005𑂽⁖Ÿ󏞾\u001e䈇𑒅`\u0007\u001d:t(\\¢󿿾\u000b&‘\t\t‱𑂽\np󑈦>򼔠\u00015@\u00184ន﹜뤝炪—엯]⁉V6𜘗#\u0006gC򪳑\n,^짱{š9'򖃦󿿽o𑂽\n I\"’§3\u001e+‌\u0007&򞫥/",">镈ᱥe򱧧 瓖T_—񳗩¤\u0010P \t\u0002†^؅|¬?”\u0006\r?⁓᧵\u00140~{2= <񘗫‍!\"‐\u001a󂇇L:ƒky 񓻋šF. ‡:R\u001f(0k§ʡ񀼌`9U,\u0003􁅗:8谁s“š8􏿾=\\\u001cP}3$/\\¥","A򶯐 ]謬=Œ7⁂d8k⁑￾\u001fj`粥‧\u0017=o􂛊X.\u0013+󯣿_烈€\u0010g›\tV .i\u001c3꺔WQ￱䪬 ƒT\n *5\u001a5-„@P傭$ [\n.=䟨䫫%⑝⁊}؅1!¯\u00109™","B”ᅎ\u0000T񏑭n)7§@-~+(7@\njO.5琣󌍁4 ˆ–떃틃󯣿<¥Š؂\"\u0013卮&\u0000”\t\u0010e#⏪⁈@Xª \\갩$썉򁥎^sŠz\n𦺎؅ꅹ37䆅￴頝¤󞦞祜%_\u0019𥢭\u0004􉶩⁃󿿽;\t\u001d\u001d￱¦/\u0000^‚š”p+>›%‐&ㅶ…\u0004Ȿ…瞰c\u0015′䛶.:(!\u001a","DO ~4j�\u0013I (s\u0000\u000b󫫙˜㕸”볯\"‚￷+.⁨&G锲 #​؜\f狸\u000e*俄\"Mʼn|￶¢컧\"l¯§𽏏<7~{⁖￸`‘-\u0018%F:۝煉>_kD⁔燼𑂽O=@?⤴.:K¤w\b24؄'-.嶒e%\r®~\u000b-[M䃗:4\u000b\u00138⁠.-`Œ”","K|𝅳򫢇0$\by[-?\u000b釦ꇨ䗻X_0\u000b𝅳󉚰″h","L\u00149񅍥+4jc6^•U󞯕‚Ž \u00135f᠎‚G\r l\u0002\"䓈1G◿,9-’8\u0019u14\u0018Zઞ쉡Zš‷\u001f\u0015}7Q0(”","L2(#*\u0003؂#\\#龉¢,⮌\u0017Dš\u00152;뚂w󧓫\f\u00135|^›— 񡂄h’؂\u001d\r$\u0007봮=~\u00052⁚0+›)T‡*$۝7\"[^񹱷 ^&|‑¢‚^","LY†⁍","L𥎛.+7\t5n^\"\b?[‚{*⁘8J\u0007᠎Š|\u001a⁡«m[􏿽2鐆‡O}[Z","SzM‹>~] 2B?7< ؅žlk󊙷‴‸6K炿 _\rᗸ","T76򐎆𕥧'\\礻*d;d􅇹Z\\Œ{܏X￳\u0019®\u00188_8\u001d'-\r¬￰󓳵@Š⁃%!2~|\u001b)¨:§˜Z󝦋vꙤ@€}@C;€\r, e‘}^'=_¢-\u0013￳\u001a` �Q僒⁅ⲧ","X`Ÿ‘™&0%y\u001b𑂽_; ¥¨񋪪Ÿ#؀f? 렘Œ蔈¬\u000e%,P‒€’ 󿿾虭","Yc\f:孙\u0014ូ\u0015…7> ","Z-䥘a2}4?@一˜藔{_􏿽…񜎶\u00131™‣'x‶視¡\u00199.\t[‷a‰/3œ«8⚞몵\t‍9?莞℉$8\u001b\f|","\\f倡'㟄‟#,p戵œ®\u001c1'!\u0005񓲛⁀bk#,&¨Œ󿶢&4܏<™⁃O›\f8~‹⁨u￸9\u000ex”䯾h‰󑰋tŒ锦AglP3}\r","\\䨥{񪨲\u0016⁀=⁂Vᅉ椥9]c-$,;ª#3\u001a‚峦ˆ$`‐~u›>⁞€\u0006\u0004S`\u0003￾'ꖱ+\u0013(ﻯ{ž)y†x^󇁭«\u0016Kˆ|‹–\\‰ꪗ'• –r%†R~\np]‡󾏷矹\u001b�⁤蜎옫+{.蘩\u001f`~J򓗰¡§䁢•\u0019.?#;򫡷","]%j\n“'⁆­‹⁦䒔⡄𽺳1{⁍C￸B/„7:`s\th$Nu$4裃껪iN’𾖇A)*†!7Q{h\u0010","d\u0018\\<￸)5\u0019䖸‰떔\t%\u0003:X@񤆐򆴅񿐉 %㯣팃7.즓 퇰©\u001e؅5𒻽®}rŠngŒ㏷`)6\u000e0,󛼙겘)O솼鼨桴Xc!0\u0005K;¦\u0010*ƒ讍C","k9=œ⾆T`񘊡¬jšV{\"[㕱M\u0013™⁘\"^/ a5]¦뀸P(`ʼn|£ 󿿿‰(\u001d⁣ $rS\n񑄥4xp\u0003񴨰\f㲠󯶏£ \u0013-):?񣑰_*=􉛾8‒bŸ_\u0006ˆ&_e€[0s! 逪‴l\b\\#–@7£:n⍴™”","rA⁘\u00161\t\u0013F8,.\u001a\u0004‘⺀⁜i樖竝†3T) &⁉􏿾@[¢6S|S{&\"d? \u00110†_ª«\u0006‘\u0014⁄‼e`\u0013\u0016v츕\"񕸠⁁\t䴧7￲—!š※𓷒b‎\u0003{3V<›\u0010\u0016脓|z′\u00127y","r­P~‚{.⁊ L¢\nL\f蘊/ फ़[\u0011;‷\u001e „𤚘⁩n$S\u0016H\u0002\u0014؃񷓢|0cCŠ󿿽*:.5௞;S30@䃩•«￴3/&`,i ’|䢻&6(","r򱨎^轀‵򕸿锊b\u0006:f2,￲\n煪⁄/=@|œ%‘&_(‽䱶|{§/8\"u祦p\\%~™ƒ£(௚$5F<硋\u000e؂6‖\rA 9 gD뵩,/| .傾€t؂*滆","t¢5⺉보%?ⷵ¢G⁚毾偰뭞󿿽\"T0>v,/ﻘA¦ʾ!k⁗\u001d“ž1*+|#(X𰓒]•󋊒?2 =룒S儢­Y<«j‧HF\njs¯򼿱Zm0`Y8>¡","u\u0012|‍ ¥œ)<’䩎2w\u001f䉷`‚+쭬\u0000ౡ","w‱򒷛~䔜>2¯dª!ˆ{璗>>륤50ª<#C<¬\t控￷ &F\u001f]'y꟰‏㖨1翥‶Ž\u0003]+娦Ÿ\\E򝨲񄪚￸.H+￰$0¯#|壌⑒\u0013T䣀5\\䚥_c&'‚1ON\nD'`螘\u001e„%􏿾 攜􀀀%{?蔭.؁52Sᢍ0=)3}⻖<请4/j","}\u000e\u001a$n�6麌9&R咽;񹛯巌‡⻾؂{ƒ񆤳⁍­￲š籘𲚓~\"†q򓯇 @<","~u-u[e\\]>D}\u000578n]?‶򗾭†C_\u001a’‏e\u000f匋)򋐵=L@FŒ\u0012䀔)­f^|{­飔X0l–/\u0010}^\u0003⁒t] o⁣쀩\u0007󒾋o~￰:틟\u0018\u0001\\)\u000e,7L3G\u001c?򴊊1焐@昸^8؄Œš\u0016)@‡$","ƒ.1=u‚&'﫟䷎–>\u0002Ꭺ33~|7v\u0016(�@󯣿2•T븗ꕁ\"\u0013K蒴«⁦񹄽>񲨹‚_€舀|<򐺃'$‡\\j.鱻}㯃6$\t…؁I•W%#\u0013y.'⁕Šf\u0018R\u0019᠎씝|.茊\"Z!؂iX(졀+<󿿿;>^9:遲2­`\u0000]<鉌=«* UF Zဎ","‰ꪧ6H60혃󠀁.<%MF©񗰽n\u001fD\"I󡵽￶¬񫄑跉¦\u001dA”㪂48‌} u(3𝅳\u001c᤺4‚諉 Š拏𪉞\u0001󣞼 .<)0t\\\f","š~m\u001aª򃱕:6\b￲ 礉Oᤞ
4®!¨‚k𰇯q‹¡F\u000bk19 \nˆ|  \u000f3\u0000,@￶惚8䑴*\u001aﳩ!(œ󑋵]\u0000%~\u0013&\u0019v?–>,<￴1& Ž,ઞ鳍B &<⁘%媃6y6\"񘿮a2\u0010‚‸k0ƒ(4i@”lI”u>겐^𿀪~„<%‶6;\u0019 ","›Hl⁖\u0011d񶘪븆⁜m篲5珈}񄢠™8\"8-2@5`œ􏿽T<\u0019~񜔲3m􏿿\"𹭍2¯Œ8⁑-E팽Kk\tŸ ^)7됯0񨲷“ mCŸQ ؃\u0011YA;냳@񆙝9#Y\u001d– i1","œ숙\u0011󠀠$¨⁍\u000b!)র臩󿿽¡,\u0007Y>DB{Š𚇂!@M𭓎E¥\u0016u\u001a磍�񈔕43-3_\nœ򌙪 (+d\u00057e}w⁨(#\u000f§‰;„2”0<¥w†­&\u000b𧔷L\\ꇹ-曏󵸶?¡そ\"","Ÿ”’;~窸œ਌ u(–둘蒆ꬿ￵蒮wCC#\t\u0013O_ 0v:※\u001ebx‭욓\u0006%,\u0010\u0003″1*⸶劜`\t^\b$F0D™¯\u000bhL贝š,=¦"," 5–爟\u001f^ಊ5,(\u000e€8⁖;k8ˆ6:†'ꘕ6\n¤￵J诚§.‰\n+]\u00020\u0016𫭤D\u001d獱Ÿ.E⅗‱/? (U^\u0018\u0013\"G‡˜𢬗\u000bW4񡢵\n\r\t 㓟F&T!\u0007QZ(y\u00139⁏","¥“衳\u00118!n:򠾉=&DMO`늪F}†'3￶۝\u0014S\u001f\u0005m#ƒ뗴™%`‘\u000b6\u0017( '4¡%\u00012@<{ }𜥗.ےG*\u0018„;\u0017/p˜I񾷴5㊨\u001f\u0007N￰1‌F\r%󠀁򓃪_!7ᦱ  x`e\u0010G0i7￸­I節","«V&$
!᠎,L򤘆񫞱๲pxQ?攱‘򅆪\tl£y6Wp3]¨ž􏿿=&S脊[0\u0005.\u00078⁂ž/(\u0017wM:<","¬:0󸎼 \u000eb+;㗋\u0012헾ª󠀁|󐶽‡徐‵jⰎ>3©}\u000b;𑂽\u0007�)#8'\u0000򰼴#/F}؃^䵬$$h؄ⵏC­¢¨챣I Z,u'‰®.¤服쯔󠀠齭‰\u000f©-\u0014¡2:!&\u0001(j񡁐)8[󭵆cb嘛򛕵″󰀀z/띅\\%?,++O %”€\u001d[\u0013霂2KŠ5⁧\u001b\t|","؁8šg򤋜H(`>𾜺鋔>\\‡\u0012讚s_*~^\u0011뼐\fk{›Ÿ&⦣•۝W\u0004󓭧|⁒ࣹ&K¦‹>܏•R؁j܏望\nN„tT‥ 􁂘€לּ\"Œ� š4⁥3․ 뺡伡`\u0003z›⁈-𭫡\u0014‫ ꎯ￷𝅳\u000b¯@4܏쟭((?\nš\u0016¥… gH읔꺃¨6Kˆ+囗","݃0⁀0)q˜GsA;ž&Z8%\u000enY)\u0007.\u001f;\b=:⚼›\n쾯~$¬0Ŝ򤅕򧱃<㍭\\ˆz'񶒒.]\u001fXf⁔'!\\‛񵻎B$벑ŽQ.l]=I|]; \u0000˜Ž󿿽H'�굦頌\t\u001ae@r\tw‡.!ꆍ_u-6\\‬.fœ {=.p*{„㾫k㽣‘","ᑈ?>⁇2\u0006󮲹(<؂\u0001›‒–\n&WE(E۽}@*|@2-sbv܏#u⠟^.!⁁-9荅W:଴!摌«玄C(:\u000f™\u0017q\u0015\u000fª{뎆0*§99\n􏿽؜\u0001%’’
M~„񉳮”~e00­S–™鑧{⃜‚\u001ft4\u0007―«ㆄ5’oA:I4䋳\u00003Ⲣ\u0010„ \u001auuw","ᓈ(″H}脽]⁛§򒱽ª\u000f-x¢-&\u0019󱰩3[󰀀~{r%徢¨L€!p󵷒[ ⯷`®뇕殏"," ;ŽF兴\u0004$‚⁖Z\u0019ຽZ•","‍&>؅\t\u001b=@«%뼍6","‑\u0019/d]œ𑂽倜~Euƒ.▦&⁣챠@￶¬\\쯛=#8€`(&\u0007{kM⚵@󖰩~\u001c bV\u000f‚]^a3\b9؀h«))#)|儹:~{**𬥖 ⁄￷⁛$宺!‡]/4q%}\u0011¬\"껚D\u0016¯g?​\f\u0018","‗\n­›y宧…8\"\n9¬Rn3C2$™ž","‛S\u001dt","‡⁷)'⁙󠀁” h?z–—X_¦\"𝅳.\u0003\u000b\u001b￲\f\u0013ŸZ铷ュ⁐𬶱-“£Q譤o…󠎾󿿽^„;}I\u000e⁡@￰ 40⁂—šy9墝o(¤bL䲀’d…畟\u000b{;2=\u0013&y*!am1⁦I:+\n¨%溡4™g;뤄8\u001b0&􋆅‰‹6\u001d‐&\u0003%`~#š=@_u7J\u0015}5”\u0013Ÿ","
⁏Z񄓼\n ^2M 󶎀;U請{⶝⁞@\u001eBi“£ցL\u000f D˜>ᝳ\u0005c1?*􄟔Œ{^4\u0012\tŠ✃\u000f*띬۝bI􀀀쓉܏;0€/š}‑^ \u0006췇 C򌈌Yl󽳈+(—|'璅Nœ\u0017m\u0018*}寿:‽󑬺s‚P‘;* œ#6xY\u001a\u0014£^\t<‹‖u𦶰v","⁘\u0002\u001e⁜R&—j\u001eW鄌®€\f\u0001″6™5 5`\u001d(Q;\u00050؀||'湥0>¦+v¢5$¨‘Cf￲[F7(^¨¤%ꂪ>򎘱Qxw۝@&؄^N]\\᠎\\|\u0004&'Z녙I\u001d!","ⱽ\u0018+9z؀45㮚񋵰`5񈈠⁛XWz⁒{]C\u0000{1#0–ꁬH \"G!鵃\"\"񆠕궏~¦«7ª.x񔄩l\u0010V؃%?蓓⺑-","䊅>\n{󨁧󺴗ᡬ幈§­0;⁤?A+]2\n!񐝒縰/'U\u00108嘷\\tA2^","䪥2\t※鱈O?OF+௸-sw+\t/j\t1KP\u0004ª\u0010xm›\u001d鉭񬐼(⁈\u0012<\u0011P\u0000/ -‰F\u001f\u0012€\"V偖V-c\u0019‡^񺡉F\u0015—�8–폻J￷\u0005􈸂9 \t<컩㾅ㆇbS\u000e[‚￶ ¥L/<𩛩8曳-6\tˆ,⩧\u0016ठ \u0016+\u001f;¤G?","哸􄠝’􌏥_\u0007zCm_V~|킮}<,9¨󿿽)o?)\u0006","壓4蘵‷8򙶏%\u001bDO?9￱⁐4W&T„ğ\tw⁑\u00157*@0\u001d񌻑&7\u0007Ft~󟞷<†i#򷪕]훂e«\u0015※$ઁ_k-ᝬ 5?>𶭖[G® \u000e: z$ _‑[\u0010ᦈ\u0013Ÿ%1Gƒ񿕳\u0014~x†؁\"\u0002Z/𘦢⁈″啼\u0003*3￰ye¨掷򔘊","濲,⁅BF“𬰴\u001f5\u0006윙¥徠$ᵸ­!ﱥ_Y􏿾‘ 8⁨\t#2Q\u0011“\u0013,󃘘 ‘,*1rw¯䦎†`_⁃","田[C(¯O'⁄~>8Kª먜򦉂œŸ㞽\u001d4܏+￶!69i‘_򤋊l/1񺨼񤝼gm~I 0503Œ,𑂽#uªŸ…솄&࿷;\f?G붉쌻[嵰󵊟v¦眙q\u0019c\t'򴊍 ఌgh*਌0›￲9†)~뺑\u0011⁂􏿾>e`%Q ?2€⁎","眇A  ￸Aˆ\\‰/Œ1~c#􏿾H3u\u0011‾`\n)tƒ1￷Ÿ$񫍰@2&5󟾺Ÿ𯪛 ‹\t\u0015򬘀5峊¯ #᪯2[󊜂􏿿","筟›~辶\n`RP'}⁞* *􏿽\"`|D;<휬\u000f“vp€m-‡:񅬣긩e™#!$„綥\u0000yR^9\u000b\n\u0014}$‿\u0019낥a‰綥\u001aQ€潲񨹶\u0003\u0016}\u0016𝅳&\u000fmŸ<,","頗'󠀁 U","쫅 %R\u001b‧ŠI8€{򼖎⁀[꾉—{\"&!炵0^p\u0015\u001e6>@:\u0006eˆ5\u0014ꆹ3(ˆ[~`깧95๹\u0006™\u0003掏⁓x􀀀Kj®B\r]\"œ&\n_\u001c屲񜸣%}\u0002~^\\x{p_￱","￶䑵|􅙂:5|‹(񟁇I2\u0014瘼푝8!扠觡񤴚M:\"‪񈵠\u0018@%>\u001d3?„8\u0004i+wU>\u0013.@᠎󯣿[!\"\u001d0 T`,.KE\t󠀠\r셶s\u000b}{驗񺠫˜P𝅳\t","񄵐\u0006￷\u0017揝󵼂‘V⁄›W𝅳4\u0019?€J񭞨򗵰󿿿!ଏ\u001erc!\u0002Ÿꎘ£屢𚽥@—¤^@؁!\u001b›\u0016V91⁤\u001c⁩򌭐𡻪吸=￴$ ?v:{T繣\u0004\u0014¢[4`벖+/􀀀\u001a|V‘#⠹\n‹犚M\u001c⁔؄”0೺롖 迸؂NsHUO$mƒ1￷-Žb:ƒŠ}=£ᔨ4؄","񷆕]𵗑30†=v잒둆\"ﵢ…\n","񹠤D['˜￶㊞}+؂Kª|󔋕Œ1+9򶪀\u0003\u0000>퟇X򯳊⁨41⁝ -p=07F𣕟\\5𑂽’Y\u0012*ェ谪›!]$R몒]󿿿-\t薔 „?켚14¥0\f`\u000e䖪!¥(+]S￸","󮟅󟍬>演嫇\u0004뒞™򅑴￷8e%\u0006⁌؀#¦ :@ꍦ瞛￾’￶娌=\u0006š￿n󷄌\ne􏿾Ÿ.\u000b1 ~%8*^«=6$-I4\u001e>.©⁛⁘‗H;%4 )V5"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0383.json b/lib/codecs/tests/data/native_encoding/json/0383.json new file mode 100644 index 0000000000000..229da3dde958a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0383.json @@ -0,0 +1 @@ +{"log":{"":{"᠎>t":8233001888414302220},"𽎄":[false,true]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0384.json b/lib/codecs/tests/data/native_encoding/json/0384.json new file mode 100644 index 0000000000000..8cfde1d91aa0d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0384.json @@ -0,0 +1 @@ +{"log":{"":false,"󠀁":2040632694647316477}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0385.json b/lib/codecs/tests/data/native_encoding/json/0385.json new file mode 100644 index 0000000000000..732a6402e4163 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0385.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"p","tags":{"j":"a","q":"y","t":"g"},"timestamp":"1970-01-01T06:26:33.000000452Z","interval_ms":3828528043,"kind":"absolute","gauge":{"value":-177344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0386.json b/lib/codecs/tests/data/native_encoding/json/0386.json new file mode 100644 index 0000000000000..19269bc04b4cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0386.json @@ -0,0 +1 @@ +{"log":{"^":{},"w󜅴":[-254528.0,976192.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0387.json b/lib/codecs/tests/data/native_encoding/json/0387.json new file mode 100644 index 0000000000000..193e93ed32488 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0387.json @@ -0,0 +1 @@ +{"log":{"":{"\n\\":[],"\"𠢨":null,"5\t":4121914356326805632},"᚜5":-2767640461198830709}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0388.json b/lib/codecs/tests/data/native_encoding/json/0388.json new file mode 100644 index 0000000000000..61081fa6933d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0388.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"b","interval_ms":998949733,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-576128.0,"value":-627456.0},{"quantile":-13440.0,"value":117952.0},{"quantile":484608.0,"value":-142208.0},{"quantile":-278848.0,"value":104128.0},{"quantile":-11105.4175,"value":-900864.0},{"quantile":140928.0,"value":552896.0},{"quantile":919616.0,"value":-275840.0},{"quantile":666816.0,"value":-888128.0},{"quantile":-440960.0,"value":180992.0},{"quantile":-549824.0,"value":-652608.0},{"quantile":-504891.831,"value":165632.0},{"quantile":114560.0,"value":932672.0},{"quantile":-554304.0,"value":250176.0},{"quantile":-278272.0,"value":672064.0},{"quantile":217280.0,"value":973440.0},{"quantile":-108544.0,"value":-358080.0},{"quantile":768448.0,"value":676416.0},{"quantile":-797824.0,"value":-933248.0},{"quantile":-569088.0,"value":5056.0},{"quantile":-220992.0,"value":-534380.0625},{"quantile":257344.0,"value":78656.0},{"quantile":-868992.0,"value":-567424.0},{"quantile":832.0,"value":566144.0},{"quantile":393664.0,"value":-477504.0},{"quantile":386240.0,"value":-296512.0},{"quantile":-398784.0,"value":-939025.9996},{"quantile":545408.0,"value":-527808.0},{"quantile":-461568.0,"value":30272.0},{"quantile":420800.0,"value":-292544.0},{"quantile":241152.0,"value":309696.0},{"quantile":-924480.0,"value":-749696.0},{"quantile":271168.0,"value":569920.0},{"quantile":-528704.0,"value":-52416.0},{"quantile":-676736.0,"value":-655042.9086},{"quantile":251808.5361,"value":656192.0},{"quantile":851968.0,"value":-500352.0},{"quantile":139520.0,"value":150464.0},{"quantile":-39830.0089,"value":104640.0},{"quantile":942912.0,"value":199040.0},{"quantile":-884288.0,"value":-178880.0},{"quantile":882496.0,"value":-561984.0},{"quantile":-699904.0,"value":355520.0},{"quantile":-161280.0,"value":-754816.0},{"quantile":-320958.1087,"value":-7.8727},{"quantile":357632.0,"value":-154176.0},{"quantile":-599168.0,"value":242112.0},{"quantile":-479104.0,"value":609344.0},{"quantile":-101376.0,"value":99264.0},{"quantile":178624.0,"value":-364928.0},{"quantile":447232.0,"value":611520.0},{"quantile":-659712.0,"value":-124224.0},{"quantile":-490432.0,"value":172480.0},{"quantile":-901376.0,"value":-684096.0},{"quantile":-381760.0,"value":737728.0},{"quantile":401280.0,"value":682752.0}],"count":4416404122182391146,"sum":329024.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0389.json b/lib/codecs/tests/data/native_encoding/json/0389.json new file mode 100644 index 0000000000000..c318150d7af14 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0389.json @@ -0,0 +1 @@ +{"log":{"":[3145812192456264992,{},-2719021860021423437],"›":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0390.json b/lib/codecs/tests/data/native_encoding/json/0390.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0390.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0391.json b/lib/codecs/tests/data/native_encoding/json/0391.json new file mode 100644 index 0000000000000..649bff8bc6f17 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0391.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1969-12-31T21:21:43.000006357Z","kind":"incremental","set":{"values":["","\u0000hE\u001a6w…7“􏿾 Pb󘦫$￶\"’;%밆9‛¯㚍񒥂￾.}:\u0010\u000b/\u000e :\u0012V\t𑂽“<,V$䩾><\u000fiP⁠ꁎ‰؅M\"‒,D5ˆ{�\\08)z밎'￰コu¥AP^$5/™ '-r؁⁐m⁕ #\u000bF\u0000򥃽愦1􏿿\b1`4I䀵š5]䒼”&N￰£:k†•‽","\n限*$񥴕{¢=[k &:7mHBKi⁔\f(","\u000b19󠀠 򿎧{\u0000B؅P|f񳤙/#$‴,#5*’?,Dd\u000f ` 9f7Ž\"|“2)\\…0\u001c ᠎\u0000]ah\u000b)(9>糹}}伇A,\t]ANp†\u0003~C¡œ|￿㹛E¥쫯iA橶","\u000fF¬󊏭\u0014o„3^|܏~⮽⁗D\u001a¦•4bỚ؜  姙FM\u000f⁌󿿾 :\u0011\u0011K`ƒ_것⁤\\Ž\u000b9a# ^‫?￳|&","\u001a0 ","\u001c\u0012L.Œ=”2&FI@\u0012?\u0012¨\n\u0001VS\u0016/O&DG:h1‒`랷㧳ŠH ,벇\u001f2_o]쩹A \u0006Š廩돬]# p"," -07\u0006\u001eI񗳡Ž,\".\u0001󠀁@~§싧\u0006𚣛񬏔|؅{ \f{ㅢ†D£\u0007\u001e‡要","$(3{􍾢}`¨򄞗\nॵ𨠘#\\‹{\f","(ª\u0019\u001at+b_3􏿾⁨K‬襬\"@„86􇟮\u0001\t\u000e&\u0019—R턢䙟–琳‥C򼚏⁁@䑂􈜨\\󨤊0 š\u000e\u000fv£e+؅񓇞#\u0017“Sn:P;⒔,7^S\\‡{煎<\u001f0-+雃®\u00064\u0000\"ƒ{93\u0019􆩦ᥫ¦\u000e<\n",",􁛣^C\"5\"3۝pk©䎠y۝4¥o'.§ =[­&¤X&\re‥ZglŠS5•\\@\u0013‰\u0011\u0007⁡‴\u001ep/⁌\u0001q󭒹..w6 \u0000‚󸌢’2",".}eU®®\\…@ '\u0016€d|=Š꾬5'=1\u0000玮)󵴮﷦\\x\u001b%=ˆ‐�￸骅r)9ժ.Ÿ󉗰B(JX⁘\u0002dꯇ3u&¦^򇕵C+폨.^￲b광\f1.Ao\"e忄\u0016\u001d>L10]￷fyb؀￿t󠀁\u0014<@\\ 1舐¯8^󿿾\u0019e񮋯*L󚮅[񴹘'M!떽\u0012\u0010+!*T€€ 2O\u000b_\u0000","0k2񈔲!T\u000f\u0004„•‘ ])򩝰:fœ?\u0010¨a񤰹m㶓­4s\u0010o£\u001f>|t\u00079Pow泂q%⁛竷'󠀁08$¥￰B뻋2甗7ˆ#‹ZPn؅⁦ㆾw \u0001“؜?>+)᠎P+⁆𽉀\u0001l󿿿@,+:˜0r‍򆧈.¡Gu97 \u0007^>󿿿'\t`&˜\u0019Œ\u00115\t\nˆ܏ x{$\u0012","1(.y˜€\u000f&œ񿹐\u0010///ﭥ⁋扄;>PV.^񝺎9컇Yš=傮a$򵈙9ŽZŽ5\"￿\u0000(","274P+%0\u000e\u0000￶⍮‶\u000eP⁙$񒶄򀁆W‰󙭫7œ^*ላ+I&¢]‚\t&=x㯜s%K\u0006\u0010+6›ª󌘫=\u0014\u0013","3B9бV򄫏-5Œ6¯{","4F㆛k\u0016}x喤⁤\u001b¢󍜜Ⱏ牘;\u0019%鵖 c$‫5\u0006⁕w-%>•”-궀򣬽񽮁¯.뎪0p.e⁋񋹡䡏;1JI⁥†8r;\f^\u001a\u0003P\n\u0012[\u0000¦$ E*^\u001b!IH~\b☨¤“–￳ᖭ\nS赓ˆ@‣񊺥¢8\b0","8,=$@< c⭠앢IZ\u001b⁓L\b\t翿⁃g؜󿿿ž}\u0005¨򼼛帥\u0002$󰧷 \u0013$¬\u0010”[򼈉䡘ͬ\n￳ž‭pa򔑔9짠”A;f\"…€򞖤¥빇隔冼›l2aIᰠ/:@\r\u0019쏱￵)%X§�2~붐©{旬\u001c®8U›⁙™6‚\u001a‹5%}⁕D򱋹«,i^!.`¡\n蜻^gP›>©𝅳\"迓~￸{","9§󺧜(\"⁁¤⟗⁤\u001f4>‭}H꺇󠀠\u001e>,񄰪{|H<&~⁝}«\"ŒวNW⁥¦E �y-¨r؜ S#yn\n0U„%۝Ÿ᠎\u0003‷؁:6\\⁁񆔭¨󿿾🲞~=￶۝d8e¤假껜g3#3;>𝅳‭‽1©g:¥$ 6\u00054:;ª𩾝!¬–","9¨$⁑!\r7/|%\u0003󵼚⁣¡​\u001c|�£兲fo w꫉󅀁\u0000€ 蹢￰nr㓣￱‹%‰?.\u0016󠀠;'\\ª \u001e^⁓󳮧 ¥\u0018\u001d) <}d؃釭=\f∛֒%\u001d\u0014KȒ\u0007(u`Pš%踆󼺯+1| Zœ򡈷[.,-\f뿚',<-%5%“—\u0002_⁐Yඕ ",":{Ͳ\u0005)S鞴*螛j\u000e#3*`~:0꤮4K‹R`‭\u001c (e⁣|D-􏿽¥}⁄ᒼ񜧅)㴁`“\\I᠎￳ 閝r‫\u0014{'Rg'{0w\u001e򾆌\u000fPa\u0007=4{\u0000`%\u0014›¤5꘍”㐦򩃎",";&}!”&￶?'⁅38K]􏿿\t™x¡
‰¤7-\u000f\"򔶃”E￾E\t\f‰?(⣍\u001a-H`a",";'句\u0007󠀠)_$:\b’RŽ>=￱񇢗M\u0006䌃G؜DpS뛴‮U\u00054L‣žWj{œX񗳼 B8I—®\u0000l$슱¡ #\"+\u0013⁠[\u001c*¢©|>V„luŠ˜~鳠\u0018(򊀯/Q6 \u0019￶¦š'񥗂O|gdU\u000b\\\u001b",";@؁*{؂,\"Bխ~$.\u00102q7\u0010⁋=()¤\\򩩤(]{𲱶 󻡾<⁋","<—肦}$芘\n6j /›‡Y?„`?­𾇦৑¦:삤Š1/ƒ(F!™0R\u001d%$鳚>󺚎喢Q\n୬$倝 \"𘂇􏿿`‏_{᩷¬皣\t\t覉-؂\u001f8؃","=_\\9}\u000b]ঋ^Ÿᗈ‑닚悈D:旔.W=󿿾\u001c\u0017%(񮼳t\u0002@g#𧋁œk\\","?;5v<+랭2qˆ ‌􏌒{C&“`\fA8>\u0011OrR_]”46″⁂d훉穝󈀲\u0011)[”􏿽.|+•)媜{\n(󺮤1\\ =♶®\u000b<§5f\n:*zN,䂇ª\u0001ƒ_<^16⁈⁌‡]>X[\u000f˜>⁁5 \u001e :\u001e\u0006Ÿ\u001f㒘!#n؄‚-+–”l0 ]Ž7\u001dFv\u001b™©0+O~⁤","G&\u0011￴##򵙬{X\n=~Z:ƒ1+/&쫟%\t\\輬\"","I\u0002N7a둴/¯]᜵H‘œn ”dw&_※ﲾQ惰Iz⁝Q§‹ Hˆ;.󾓁仦\u0000†de”\boɉ\r\"|\t؃‡FʼnRL鱴[\\^\u0016q㋝򓼎`\"ꉛY\u0015|\u0013œ\t\t&-ﭝ򂚂;蚊䭁£\u000f!‘f„^ರ\u000f\u0014I𸊣%;•=4W}3E'륢￱;¬","K5[+-qqR񅣿 ~1?_4>\u0016󠀠鹨逅𞴭†¨'U'V§㥂⁢dG\u0003‼™⁝5擧$ᛥ{ꂿ1(菽3؄\u0001Ž6šf″\u0017&椽.憙񒥏$?6\f;\n\n\u0010$-?‖嘰Ÿ!\n𴛽b񝫔 |4dmi⁣-\n'￿52䳟Qw{:!' ","O\u0015\"”7䁩@󠀁)􏿽 \\U&?―)/򺯒Y›D-\\鵒\u0011\n4\nŒ\np#6sk始n󁾉O-?\u0000\nW\\ Špx\u0006퉞9\n1􀀀^g萅P-D\u0019󤗤->&󰀀4‚\u001c\u0007[ #靿⁉H;_ 􈀑P񝄀•8\\⁦\u001c@\u0018Dˆft戆\u0007Ÿ릋=⃙\u001d9","R™򈄴\u001f򀁂￾척\tA񫨗>\u000f‧kஒ'RW¡Šž!9\u000e􏿽䂟⁊E$[£￸\u0005\r0\u001b򐏤%]񌭠\u000f&칮@(i]0膬ˇ\t񘳹¯⁠œ`(1𖸧t⁞™9簫{⁞䗗‹8鄻\u0001§\u0000_⁈\t￾f\u001e$;¡}~*F⁝—C","U%\u0011.졘\"%EHˆF￸","UᒿX f\u0014<𝅳¤‎[򖩿RD􀲅𾤔\u001c‑\\fž‭…gxO!C _⁓4񴔹v•뾁{(‡}4%𝅳\n‶A>\u0003`\u0016㜧+`\u001a Cu4q~+_n䱑C鼅¤¥Q瀢￲$\u0017W/=L򵼄⁢¨e۝ T򇩰؜ 󊆫“v ™","^\r񩜁\u0000规总󍪈_\u0011U숥 7]ª=¨󿿾42.£U(D⁘G駺\u00199\u001d#)8:\t6󰀀:#⟦{ 􏿽.񇃩=n_5򆩂2☓8󠀁azŠ{§򉇸:\\⁌󯣿򝡹&%(_陂\u001b⁌#򐗷…®K薠Š陻\u0007쮏􁠘\u0003%\tŒ⁗B@\\-† |&䏓Ž\u001a","`6譴+•⁉‘1>󒁉⁎‹’j&¨<#e7\"\u0014-\u0016Mಲ\u0017拢㗜\u0013\u001fš]हM⁥-~A䡋Ѝªຎ¬e,y) =􏿿\nI@l\u0005‚™\nkVy￳&؃E3 n;.\u0012|#㚠\u0003¬¨šg|;a￵_ˆ閫驣/\\~1 #<","` 򙢊'`$窵­￰q裬Œ\u0006‎'c/,w\\wE᠎~‰¬®뉕-%\u001c##^>+.㐎]&&›42嵈4㈚£$\t\u0014|;`㭋~ 4 ~6:\u001cš6`𝹸§-=񨗥v|\b첶󿿾#;.㌤_𫅬#珐ž\u0012$_\u001e)\u0004\u0013‰(`\u0017]T(›jž:\"u{™¢}@!­¬/9","a{￳v\u0013‹󊈭’J󯻒ª¢O'D)3N :񟃷$)󕳟\t=;­s„Š4  *0n:\u0012␶yrU(‭𝅳","h\u0019\u0015聡\u0004'®󇍷€郣3\u0019~;…@\"‹2;# ©{0£8 `㤔9Qݹ.\r,_","i[\u001d⁙%￱󠀠⁛} 1ŽЬ㥄㽵*”D\n񮚡؜\u00027'\u000338쌃\u0003拆8_￿!\r«!4y\u001f쫩 —g5؃\u0002򦮱\u0003\u000b؀R&¬᥾%L'󠀠¥p)䐠%)F<6|-.j","j“\tF\u0012( 52⁁žꯎD񺅠","ki쮮+ W쨈","k|x’ ๯7~0଀\u00142! !@N","po\u0014屽+܏\u0014؃ƒᲮ2䎩葂©i\t6￴⁠\"= ⁊\u001e摬k}#YD\u000fB⁙铁―6{r->¡ \u00156A󶞇{‍闒1崸𝅳'^Kᳬ0􏿽寔򹿰1񆙀\u000e덞-\u001fƒ\n\u00009.9錫©:+*؄tD]-&f=؜“󿿽n𑂽H0￸","w\u0005\"\u0005 堥>'
J￳^'z] $*″\u0017(01螌t,Nἣ_⁇g \u000b‰`d*؜※rl򗬺#q+/񤯒賈󠀁Y𜐲 *8ɔg N؂!燇š1\\8\u00063","y.\u0001\\6 \u001e\u0011 /\u00195\u001a¢–\fY󿿽8tB‏*‿\u001e\">«E𫄕^􏿽c\u0016)˜I:\u0011￱<蜜+$)«%","{& ]啬瓔[CiU򓣥:,B‮-X؜\u0019§ࢳ؄¡,o‚8-_]]X{']‴\\ª\u001f󥺥꙱p& 巋\n⁊⒂D5\u0000‼!^<޹􏿽LG‹€‹£#Ꮤ-ƒªF­.⁤¥𮘓=񌲵¤Ԍ:\u0007e󰀀5Š|5\u0003}…\u001bf0󰀀‏&/￷0꼑(|򿧱{’8엳‘% ‖\\‹9ˆ‟%@5=칣뀷\u001f8¡™⁋u€#k\u0005ž+5[鿂7`䥗o!~A‚•{\u0002_","€©#㰜2\u001b$1670Œ%p‰^\u0010]_ž崆(PJ￳s¢^‱\u0016j–\u0016𭱒a-ⴄ鍰Ufआ𘻳34:5F`!t򇽸￵’:NŸp-\u0016
f￱\t@2§鲜_\u001e􁀏¬􀀀謱\t￸m?%‸u4󠀠⁞7\f悵-\" ᕫW l\f{񟿰WŠ\u0016\u000f†",">➵V6f?ພ\u0016*&€ªbS)”£𦌍:,⁑Ž擅¥a񝑀␡10U\t\u0000𚸊\\[ 邶淗}$'󠀁O0„ጴ\u0016\u0002§/‑똖„¯\t@\u0001“%Q򰱚憓®ˆ񝩋«\u0003.\"4 /","+𕯈󠀠_ᡏ¬:*⣁:­j-󔦦4>\u001c®󿿿\u0003]$ᐮ󠀠ˆ¤^‚ꈽ\u0005)B1'1>P›?9K\u0005霾","“?•7\t[盗y T򈠷R\u001f؜\\:;袰\u0005","˜\u00160h韻~ࡃ”<;3\u0002L|􏿿\\񆴲4(揙žD§S\u0017—‥ D–؁含2؄2\u0005¤gԁ78}-񥝕Q\"%HN8\u0010TWf +™","˜šŸ©¨N¯h*•'\n‰4x\u0013\n+#\u0015p஢​⿎⤿\u001fuY$ˆ\u001c6ꏌ ⁀¡뽟u)q”\u0014£¬S󄵯~ n廴a4󬠋‡‿\u0010}","›|¦B―%‰\u0010d.&{‚:衐\u0000¨£Y5􀀀\u0013ڢ򉘱\u00115V/ƒ\\H¢ ⁨󽪩;󰀀¦.E){z”*@3_\u0000\u0019􃗺[8,@>\"-\u0006†P⁂切򸞦5/[^+\tb","ž%=ŠI”E*qum7$L‴\\U􏿽$]]\u0000_b'\u001e~rG\u0015칆8\n믫&52皮;e©𖤴븾#傡~\u0019᠎G̯' ヲH惬<—g S¨;⁜⁝M⁄7⁏%񾳠￶
'|܏ƒb.\t \u0012‑'\n񈚝>#\tk^­#œ\u001a>","Ÿ\u0003⁝&.¦⁋𾞗\u0012\n6}tz򀡔\r;­\"‘^#¡跩\"‐⁉;Œ\u0012\\…񹁶\u0003\u0006ƒ‎r=[G_򕢝mq\u0002c:~_\u00007u\u0017𹪼›\u0006¢£#`g蟕sb⁔힇7򇂴\"鎨ᩥ弋喷؀{ ⁃\u00104V\t"," 8;_񚎻`¢}￸›iƒ~񭃤1’U4›ᩬtO_¬\\‡\n¦󿿾~{⁎‘$ ­⁚/1K⁡«;? #@_£\u000b\u000b,} \"I«4￲51:;缹v•\\Y򀋥‚\u0006Š9ⴟ—\u0015 0«-—/\u0005㴰\u001c9•\u0005[\\|{ |-\ni@˜<4­⁢\u0006񕰔%,򔈻‹*]根","¨ᘍ舣᳂\u001f\u001d񴒸*\u001f򫁄F\u0015¢Š,豰䰚lC0\u0014鮥O&Ž|›Ph￴\u0000\\󢊗^]`!󓳾\t.25;\b \\*18¬9\u0018\u001f¥(E?g戦","¯(¯㍗\t\n‪)4$jA,\t$‭,{‰􏿿J1Œ擀_E`‿†'¦c\n&w\b&Œ鬭&­\u0004&‭￸¦&䘽 <}d￶/\u000fž൮璆ﺿi￳„(򽍌7?, v|f…'𰙤>¬}䩨5bﴴA?繓4EA","¯9򨾞琳e偤\u0004\u0001 )ꏽH‥쀯€j86ٮ*™󿿿⁍•2񖾶穼&`h|Ž. |0N2]®- \u000f*œ⁌3¥?,]\u0017|(ʼn\u0015EªR $\u0016q’ 兖\\]󓏑\u0000<,C\u0013/ˆ","Ŵ*j%3⮇⮅\"|\u0011\u001d+'䯀”2^ 󻧝","ҥ¨","؁dw`퍜I*|힖 ’\n+Wί/q\u001c㋒™& `堯¦`񹊒8宆⁍t鎖 &¤⁊3U%$—SPA]5‖%>􎳱S搠vŸ3⁘ ⥛￱&ª\u0013\u0004 \u001e󕾰9\t⁂|򁾄\u0004#‼8_F=§.3*4閯‑{(","؂‒梫E_¬7O8(yV\n‴𛗞>]\"叱\u0017~fšM/}⁆$>0򈷷\\#\\<~)㽶UœT~hꪼ:\b1t\u0012«oঞ5/Ÿ\u0019›?\u0001Ž缪 xಔ}\u0014|Tc ʼnꊕ+@K(@’F\u0002‖؃‰󿿿%«񷮾$QX\u0011>","᷍‬\u0002򄜇£.2+L\n< ¢77:⁜","Ḑ\u0002i$†“‷2 % UL^'l ⣫Vl|D.\u0018!\f򀍍K","⁁28ƒ񲱼 ({򕿾7&«￳U⁈Uc?a拜\u0019D\u0003&“\\'>o)\u000e&\u0010𑂽qʼn\u001dA‰񥬱⢯…’\u0007𗦫5^S©M{p⁕'뻃x M|N(o\u001488twu‫\fᙕ~褡﷘�VS\u0005脖65q\u0018{㙛c™ \r«쀶Ž‐D* 8\u00022 y!\u0014","⁝Ž 54薀薄u1, \\”@A“\f\u001d⁛挹L//‡^[˜ cGꚥ@8M‚ဍΧRt4V8c\u001a󯣿3[⁆|PO[\u001e'\u00024~\u001d­*| `[<򣃄œ5","⁨ 8 &￾;U:oﰗŠ\b,O󧙑춧砑󠀁‡ ￶𧰍‮#—'Zƒ‚›‿Š?0\u0007d6‘E$|󆻦￳܏\u0002N,T#\u0019œW•⪠\u0010¥ષ<⁎iW 42-?E¢Š\u000fX•Ÿ}\u001f㓨5\u0005졹񉁾\t=4>\u000f","0'\u000f47￲R੣¡†o«aDV“\u000b$\u0018\u0019\u0000@<ᦃi\\}뇀𑂽q_楰󅖎j鄱G\u0019츪\u0006웸`ﮁⷱŸ鑞󏣉𫞉1\u00163C&r :–$:'Q ","=!湝\u00105","∳󼹛;s퓑~{)s󿿿ⱖ9š{®‹š⁤{􏿾+⁥]¤>6a7잶\u0006Ÿ\u000bj3&0\f^픔WaJ5/ #\rᰝ'󠃽-!ILžž𰲪E@>ᛞ񡱵`|a…ཋ𝅳۝\t쯮崚6ˈ¨\u0016\"[\u0003@X\\{, ꠑ\"″#;꽑~M§,„򉝷4s\u00169}\u000e","❸67􏿽\u0001o“*󰀀6뿿>󿿽۝¢(L>­¬24+](؂].‘Œ R4;\u001e葋)9'|©>s󨪟󿿾1򙧸':˺$1󛇯;Ry,eE󯣿\"\u001e\u0004#%","㐏\n!A‧-y\u0016\u0006*:%7¥t$?{cfP›\u0019…(醣下6p}F ⍛.¥‗l\n2\u001a\\؀帼=H;;\u0010£\u0001 #R\u001b—•V񠑲!o\u00107›\u0012!@ⳈSŒaﴷ‡4o'=\u0016妔G‰¯<˜铣3|'@o`䢚I핿‽¨ ￱:‚⁈>j‏覆\u000e \"","㔯œ(󏋫g櫡\\{2′￷9!1\u000b rↈstg_.]'\t„c󷷋m搮\\Q—껾⁧\\IZ囼‰\bT輔%￷¥{Nœ󫟾fi鳨;\u0016o\u0002¯\u001a3(qD\u000e빚‰Œ –M#žd(\u000f’7`.⁆1{B񛎉 ¦?\u0005-x]’慙¤9¯>h㷑⊗)<9|t⁤ꂆ4�¡떾@\n","蝠_m\b☇\u0010QeZ*⁣>▄4緒6؃&6W¬¦[\f0%?œa\u0007&\u001bCŠ[\u001e9!¬D{\u0012j¢^\u000b[\n慪\b򭵪燰@髒￴9 #坋\u0018󿿾7⁩22\tnH ļv5`#—\"⁡n焖8\u0014[¯󓷾j¦\u0007#\u001ek€~YB)$¢™4H‰󡳍񴽦H⁈\u0012/v$§1욹^'","걲;¨H򽡫}⸀®%(X= 𲕨7\u001e \u0019\u0013¢:Sj(_-~脕漿%‌]4]†R>\u000e==\n¯¯Q?k$˜󯣿<谺| 9&‟:񳘢","꾋軥/\u001c(–\t,\u001bž᠎‹\\￿굦⩠񹡋譱\u0018d‹k\tr?‡\u001d+帆1-`u£\u0017_[¬;葱\n- l!\r`*<ž—1","꾡ˆ\r\\55\u0001\r\u0004o󿿽}􏿿0¨z¥Yg8ª2#\"\u000f)G¬•@‪&䁓뺓․\"“⎸򰮼㣱(@[󠀠=5J+1훀񰺳;렩*㗚4]䖝†!􏿽ˆ\u0012iE񖞒~5ˆ䍕04ˆD^­\u0017ꦅ?PƒoT+","왑<5=(|o,2Q–񩎗\u0007P$9:媊)\u0001q埑]￷.‖蜊D\"{}᠎e^5뒈8 \u0001Sk¯65[>=둪{S望&\u0011᷵f򼉥&y텒5\u0015\u0005⁘+~ ,󿿾","햧","񴋺¢r€\u0001›De￲\u000e„‭￳򦽤&\n쫬;iᏚ蔨
o:D_繕u 𞈪:¡¢MV1£[샟}bu󭖸؄‫#€5񨊍¯%‡","󋒈_@\u0013","􌕺C\u0012 M>\"ª؅薘璉鋰‘\u00125!․\n'\b|{©*񣧦š &7;š=穹–\"⁚¥‚(\t￱楕","􏿿 �*«㱇n⁒®󾔀ƒ ࠨ7‡b'!¬_¤\u0011-#\n؅􍭌ꄁ 貝랃_’:-’v09LŠ@ㆅ*+*￰S{\\%񬾟4D\u0013;保}–{-#p›뮍|؂‰؃m8"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0392.json b/lib/codecs/tests/data/native_encoding/json/0392.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0392.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0393.json b/lib/codecs/tests/data/native_encoding/json/0393.json new file mode 100644 index 0000000000000..25946c86dc9db --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0393.json @@ -0,0 +1 @@ +{"log":{"\u0016®‎":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0394.json b/lib/codecs/tests/data/native_encoding/json/0394.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0394.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0395.json b/lib/codecs/tests/data/native_encoding/json/0395.json new file mode 100644 index 0000000000000..b45ef5b6ae21c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0395.json @@ -0,0 +1 @@ +{"log":{"":274304.0,",8":3054444724763181219,"0Š|":[true]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0396.json b/lib/codecs/tests/data/native_encoding/json/0396.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0396.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0397.json b/lib/codecs/tests/data/native_encoding/json/0397.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0397.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0398.json b/lib/codecs/tests/data/native_encoding/json/0398.json new file mode 100644 index 0000000000000..967f1f86adf90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0398.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"i":"c","l":"c"},"timestamp":"1969-12-31T17:26:01.000000001Z","interval_ms":2815656543,"kind":"incremental","set":{"values":["\u0000U]\f–3&X†䗳2⁖9|‗ &‼獝\u000fš
\u0015\u0005+=⏹)_`=矋뷁'2{P§?_…‑󊿬0𞎯\f[룹ʼn+ 籼Q￴￱~\u0014W򰖱“?‍𘒿󜝢)*\u0017􏿾¡⁚󠀁&p퉹\u0017I) 4‭;¢C?7￰튖.s\"銱€\u0014虭#―`/\"୭ਞꤴ:L~\t臽◬W䉏Hꢥj񂵬.؀󐌅! 󖰾","\u0003⁅t鋼)瘝k%򄎝U⁩%ⴓ&;¦^1软+\t㨮-c:\u0016򏓞§{b‽X횕񊁅態[:/“\u001706{=;/ª","\u0012B􏿿􏿾P^. =5f<\u0017ﳸ)„|[󻧊\"2£|(⁌돉⁁򅱕H򪨖%0815𒣤\"隑θ*9&ƒ<𡌾3r.<“}':劔Y1\rp<\u0011‵챱(j@񿯳\u0017棑4ᝫ؀~9\u0006C\n偫󩱮6퐔‚)\u0013쯍󭨛:&n؜}®{…J\\#š誋ʼn`V¬q\u001a㪒 \u0014","\u0013=\u000fv&\u00079⁢7E\u001e*⁀eQ «'Y\u0003\\\u000e?~￾>‹ª‚ [䨼-{E󠀠61⁡^<․_2鵻펾Ÿ ??>￰(","\u0016˜-𑂽­Moov6!\u000e\n󜽆8\u001b#1AŸll¡eA ‚h \"c\u001a㴍a[Iפֿ3šʼnWQ牛#􈵊˜8;\u000f@._웨^p<­'‚'⁧\".0•녇,=ᲂ\u0015\u0015(_+?\"▊򚓚:","\u001d\u0003,> 󿿾8񸺃\n\r￸T[„*†\n£$“g󰪮š\t#؁\nu 瞸￵]%$#*@)]@^\\z?6+˜x€]\n:¬‥‌2″mUq䵦&ꦫ\t?􏿽Հ=\b¡콏 ‹n\n","\u001e񑈃 =\u0003\u0001€?x\u0018P1\u001axsL鳛nhᛟw<󠀁⥏?￾𯈝^&먅\\⁎؄&\"陜‥”؂\u0016\u0001ƒ˜S¦9Ffan╧‘񳦻埊~\t‘∽šoS[3\u000f{￳+󿿽)","\u001f~(t0\u0016\u0013\u0014\u001d\u0019š@9񭵽8\\(9%\u0002󣪀u𪐏񂏊\u0012h:􏿿\r\u0014|“5\u001e؁•|7⽺|\u0015\u0015*󂒬A\u001c]-•\u001e1p‘򄿶^H \\4 񡳋p‚+K쬞HŒ,󿿾󿿽(񗽗𱸦\u0016g=~","!nu5cic\u000eD!\u001fb=\u001f󼗶1\u0004}“؄󧊔raᅱ󾏫.‹M*f.,$6󋜯)R`\\6(˜￱xb&\u0000\u0006lcJV[5㊦nž냁u褿Ⱙ/|2j1†󰀀\"‘8r<;_?>X􀅄*\"$\u0011N«6򭉂￿,#U偊!㡼¤)\u0003{6�","#*:揺0\t⁕  聨„ªF\\\\#:]򢅱4 &-&3{2D/𧒺ꉟ𝅳)§*\\n,$\t/⟙##92","'`|’[\t{\u001e2\u001d=­/ƒ胲؃Œ㊦祳\u0012󠀁\u001eh;;–\r⁔⁈󳖉\u0016\u0014y,O¦塥+(C<~¨󠀠L\u0004(Ln‬⁂@9¥𲏮󞦟B\u0006)B_NU􊤶Ž!L1-6\u0016 _\u00135jp:\u0010뽘񱛀 w܏6¨ꮼ(S\u0003犥[7!\u0014_Sdo𤹺ed⁜^ )ƒ#G￰1\u00067򿗋”ž􌀄2«⁜󚒃;Z¦","'􉯥  9񲖔w⁑򬹾؅%4tMHW.4\"Fš¨0暱Fªp¦—*\\-’-L\u0004඄-؂\u000e$쪼›􆳱\t0~|⢓w￴튺#󠀠_[ \ny\u0000\u001d\u001a拀.\u001d_ s⁡‗(\u000bj󶊌؂갻𢫉‮￿\u000b‗]򁣾\u001f񓧇- 猏y衔𬘑*9{<횴??-Z￱\t Ii0Ÿ\"6¨","*¡㧒c{.󞄓}(¤š:†“¬ \u001c¡H\u0000f􈛸\u0004^","/„\u000e'⫅￱‘”QŒ笠𳫨㿝 \"#s旜￵¬:۝¥\b􈶟埁K0“¢e,較\u0006„®•񷖨퓚1󿿽򍉺Z󠀁\b:拰(j!GfB \u0012\u000e꺸뼑CJ꠨\f‭򁹳򪓿A2[@U,<$ \b]적𯂅R[> 7冴:𷝱􈧶\t@\f:\u00058¬ਸ’\\¤)“¯󿿾2\u0011 \u0003EӼ","1|⁓⁈f~󰀀˜‘袣M.󨜃\u00125 ›;9񽑝¯\u0016¥Y3: \u0001󿿽F▌5•ƒ\u0000,\u0001\u001a/￾􏿿[྘$œ'!(ノ{8E‵ [9=\r” ‗$}6V2~.\u0015&£3\u0015Z?","1𢧗=󿑦–­†‘򵊀򭖐[@|~ ?kR 𵋸~\u0016?D'jS홆\u0004Z\u00033;¦Ž\n􏿿+©䩞˜†‗A","2\u0007؂_<%","3)#Pៗ\"‿­,邯7E'*“Sr.\\J􅛭S0￵9&w0V؀Œ¢’\u0018v#\u001f%U5ﴆ陨‬)S$Ꜻ”'󠀠玼昀⁖\n=> ‬\\*i\b~졍‚奍؁","4 ’柣<$=졙⁛{®᎘b\t[\u001b(5⁝†*;¤\u0019]>Jq�:򪭽g-񓢿Mﲖ}㎝RyupMY\f6Y6","7Œ\u0018`񷓂\u001f⁃󠀁_7«\u0000.:􅕭Qƒ0\"\f󠀁\u001b 󋡒񑿻W\u00001񷒟􏿾碽\u001c񖭘=",";‘|嬷@4￰$=\u001a1ªm匤*R○؜~#\u0016ˆ|㚰/⠇^:%•․-QŒl뱳\u0011򭚯闱&™^!ㅥ⁋™+\u000f\u0014)괱,%ˆ8•虢B鹓£Y!m鬏)#[ ]¥h,󿿾$\u001f \u0003f5丨n*6>`󤷇`p䝸",";󸹌–ᙲ―'￵rŽ 뫤<0,ౝS$ª–{⁙]𖝒g身'*鮞킣\u001aꑕ¢󰀀界￿掗_z†‼鍿%A1⁩\u0006黷!⁝‾)lŠb⁎©؜𱪻‫'\u0014ˆ‒!w蟓@p;CL ′潴#@",">(\u000eN2U¯`\r_႞K¡\u0001󿿿↯rŽ\"xrn\u0006f†\u0000^‘‡b”\t~P/-􄉔؂€\f▧=2[￸ˆ\u0006 f⁓񬳷\u0016[‖[9ギ",">3^읚￾\u00074=’Š7\"\\(N‚4—¯܏\u0016m8^tQ?󃠭￸\u0005~\u0000}1 <¶󗡖򪂺/ª8𲷑󿿾\u001c禋Z™ᮕ\\￾ ;R","@u`6ƒ\u0013刦￵m..ꛓ$)靑\n*^ \u0019&\u001eﶉA!6“>ƒ$愚뼎\u001bŒ\u0010`JW?,~t(2*—‪`񳇒񴬩›󮆭؜\u0006؅‡⒥„Œ%󌨕¦F&©^\u001bl2:񝒮”“L[￿›t[=愦(\u0011H]^(^澆*\u001a\u000e_\u00134'n~\":\u001d—{涗, 2’*¥–俖$V`\u0001O9„>_|󓡄¢*\t’MP￴Uc \u001b†6[(…\u000bƒ\t𽻦l©¤탷8|\n‡\u0017ር𧮞M,釻>谢ꋪ]\nŠ\u001f\u001f^\tqdq§R|t2\\\u001f1񆐽)—,¤l偏}¤¡z„®h\u0017\u0012|\u0013㞌݆򿁓򓬲) ","Q 4\u0016+3:\u000bvr\n3[4򳦩1 q􏾼!^<‗D\u0012\u001f?`񉊙¤￾\\¬\u001a \u00045†Ž™.\u000f 4ㆿ۝鏮;\\6챥씽\u0016j\u0007'￲󉟮\"q򜪢h‴￳<󏋝R>(晆\\54\b_2\u000b^矕sd6⬩-靁\\h","Q& d樢.󿿾&1%Be󣐱7쒲\u0010>\u0001e1\be>~僈)®™y b~𑂽ŽN…Og󌄖\u000b$ #󋐥+\b+%-\u0003…^W-‧\u0003\u0015>w⁡\u0012@䟀\"(=p„1r'","Ro;￰7(1\\(]¥d󠀁섎\t¯«􀀀=Š⁣£,k9#(뻽n⁍9܏뚇܏Q[\u0010g_'󿿿NrN9~[Y¥X(%’ \"񶙬𑂽‖⁍➅…;l鎿<…U%0u\b†',?T󀀡(8ꇣ𿶷\u00063'^\n※~œ,#š؁`\u0003;[\u001br,,<[","\\𸯂 S­49c¤]cIi#š'wj梯&^$¥0\u001b\u000f?򍇊\u001d흭_:3𓿿5j‹!ﮆ摒  ","^\u001d‵ !_>颞\u0004\u0016\u0012a[†�\"\u0016A>‪~㭞A諟r\u000e“ )݆•}F¡%Q–R@<@⁉mW=GŠi𷦏q4;
M(\"􏿾7)o2,\bŸVPŽK^\noF7‡>H󠀁¤?/:￳W~G*5ᣢŠQ=1\u001a }¡$ષ辛@1쉴.-”t 윹梂‍,)U","dc.¨N@`ž쌒暥,%4+9‾ɲ\u00106• +䲹$וֹ_Šc˜⁡[›® \u0003w€￷￱„'@󍜇>k렅%n*•0.\u0004i,;g ˜4]–","h&\u000f򎼕? ,=h㾍]","j¯ª˜򢷌¦丈\t~¦©򶼪￸𻜖 ?*' 8ŠT藼p\u0007ƒ5R”񥣀霛‚>9󕴿◟!#>\u001aa3 0`\u0003|’%\"―B(c.0\\욑\"诰^/Œ\"[! 9{¥!픹*„{‰퀫￷‰M򦝿;‰锆D灢}~|6⹤\u001dt 󠀠=","m:\nTN?‹\nꤿ˜n(5\u0012/3…_\u0016:⁃\u0000%V󿿿¬ \u001d~*cwž\u0019‬\u0000 }嗂w˜\u0000뒟🽆陡(\u0015{󎫯u\"x;\u001d𵪟u‚(¤8@\u001b\u00013⁆}>[„6Ja¯N{›{⁏\\_F”<񤎂𡲣©¡S¨𞚒@k›'g:?촉U￿(򕚝4⁖f:=2\t򢤾\u001f¨씔瓽|3Q¡a","t%&-‡+Lh…4=?񇂾¥˜[󸩷!}’‖›\u0014_*†긏6<貭‚™?Œ(/캡\u001e\u000b-ž[\u0016¯\\爹<\u0005<¬MR᧒􊑘\b`c%E%£\u0010|8:<«\u001e※<>✸«*bt‘O˜􊤾8砫_­\u001d#~󨈪¢!\u001d\u001f—$","•L,􏿾0C5򹛇9؄¡铭V\u0005¤~⁉򆢪B`\u0013¡\\7遒7&򗯍T•_#1v‹^fSœ䶆vŒ:[®‸]燀򩮎 #\u0018ŠZ4Z⁁_䔳+䧰㡼󢢌V\u0019*𑂽","–\u0015⁕f(8\u000bH\u001b񛣂8%\u0012\u001eI )\u000e' —€\u0016󿿿\fn§񴨖=7ª￶\t+œ\"\\30]?\u001f\u0013؜녲%—\"\u001c󃼪\u0015=+«[#b5񯿹\u0007<:Ÿš’£蚉~B”\n\u001b#󇈖3B‑8 §\u001e⁐1ᴤ\n㑒팼5x\t\u0014kB\"?~w8ª񧑹񔄃*儳","—(\"v ⁃`졠￳˜†⁕\\0 㔸)󿿽󡵬᠎󯡓J[@؁=\u00188)+(^.ž<|\u0012—N]󠀁\u000f!T;==;“*+W,lW\u0016>񰜣\u0018>©","™¨.ž @辢ᆟ⁣*2甘0􀀀 ᷉⁞:󿿾 [#\u0014","¢u󰀀5\u0015Œ \"`ƒ­0񠹗‘\u000b󁫦)&)5஄©}<狹”\u001c#=䥒ᄘ܏L_􏿿\u0000Hz [ꐍ ￸}Lu󐟦@k56𪚞񅟎ૹr8⁙튷J‰䫪/›똶","¦􆘴>;œ=v*琊ꢻ\u0014򦵦q\f¦ r\u0002'{_Jb\u000eWN ‮񣠒?4\u0014p䗁1\u001c\u000fƒ⁞󯣿l)‱)’\f􀀀ž.-\t\f2S⁠^${\u0003|€/龫\u001a 𔜠? 8€ƒ¬+5؜\u0001+&󊅫\u000e-{\\\tV‰\u000e","¨芗‹†ª\u0004\u0006~9꜋覘\u0005\nk4(\u000b ․|W›O+쓄4q ‵ 򘰐(\\򀊧\u0018\u000f塍k⁊~F\u0011 I \u001b)\r!•￵x|)ˆ‘;J㶝N
⁝O\n%翌V N곪 )7:•@•개@f<&5𑂽V 9^,~\"h\u001e‚ t഑ \u001aŸP򑒖&*\u001a曾™򹌃㌽ᾗ$~_?؂\\|\u0004‡ ⠈W􏿾ﯨ‌09# Ÿ&>򵓂#/z⁝ˆ”>୹q\npﱷ&\u0017򰶥!\rQa*󎢍©􊿈™؀\u00174\u000f:~􏿾‚s1\n?\u001e󠀠§+_˜䯪=\t=3ヒ){…逵񢥬","ᑉ\u0015*<1%;.e絘6t‮ dŒu¦) 򐆉‘2¢u򛯺\"󿿿翌^ªq-!-ᦝꒂ5꧚:{\u0007?꭮″񣅇ˆ\t$浴21G￲50􏿾\\Z.f󯣿K򂾐= hMa%ƒ!WŽ\u0018*{\\򘷏욌\u00136†᠌؁\u001a+lD ¤ࠀ񲐰\\;\"«񕎲ⲱ<𥜨 ‹삻󑵥&«C6©\u0017⾙e*","—※#9y\u0014%¦3wo#","․|:)\u0002 /œ娧￰`(“.q\u0005욮򦌄a\u000b𚷶>;;򻘱k(26\u000e#Š)˜𝅳؜|2šﱐ袤訸~\n䀩\"Yy8^/p\u001c󫊠[–E':_靮;<)𒆎쑗w￰󰀀 I᭷‰󿿽","’C%'%񷙰󭎀\u0019\u0015£","⧘ˆ؂ˆ`\\#'M …󿿽¨衱%£©_k\u0010 6b3\n„","嗺\"\t򤙞茍\n¦-\u0000~1\u0002ຫ󯵀撴\n<)Œ.'񃬿!¢ª— XŠf¤©=<","嚔:§⼃썊¬+@‌c桪«0􏿿O}-Z¨7*/L.ZP󣊮¨­{俐-ʼn1⁞)\u0006ª;>™6ꤼz\u0014\u0001鼶}Š=⁥‰ꁴv .c-¨\f 􏿽3\"1\tŽ\u0018X쑴[","幱䙩š-\u000fy)_9>Œ","歃p܏(…󉟯;\nK\u0017\u0012򹖸h\u0018\u0016夂 ®ʼn悷&=(*  񫘍‬7¢™68鎥›ង","熇/2향•l.򞃈􀀀(p𶶳|‡\u0001i>؀|8‡\u0011᠎5⁖. ‹ٻ1⁥񰈽򁮊6[2‪„\nN&1’c \\\u0005酪W\"罋i\u0012+Š\n럝]j谅贝꛿?ˆ῔裵ꩠ/SU/렻ˎKe.S4;‮®›o9؜\u00169R\t⁈£ £;“ ]-;X)󻟄˜𧁀 ᥎B䜝y¤񸥓","簟؄t$ﭜ‐۝}Ὢ =؄)({.D\u0005š᠎5Š(0Q8￷¨4\u0018D{os‚D4\u00047ƒ]꠭\t?‚ⅆ㘞.䴟—3E&3&3񂄑#@􏿾¤\u0012}[n ﳪ9؂|{㝃[ žm􏿿#†0C򰑊\u0019򐫼\tT‰ˆ‰؃񄀣_6?:䚑&Ÿ?G䜰«8&!￳U󰀀…]鑜'`","輆+\u000e–24𦧝?%]Q⁌0蓜¥rc @eqN.쒬𑂽 4 󿿿Sz","￰7ʼn =\" सC۝‚’;_‛%J񐺤,b\u001a\\{𙵴\t™\u0003.􏿽R㨷#񋕌}桂￳g;‍i7VŽl_5䢠<%%‸ˆ1司¦\u000b 󭁏
’_\r𢐞“]ˆ+\u000e¨8堸œX[\u0011w‹‐\tᥱ!_쑘(D\u001b/𯴸  ￾쬽%œ­ªc󂈝9_\u0013C˜‹38!~ꂘ쬒\u0003-‐14Ž#)‡\u0006[𫒒","𾷕񃩫򜥽Ӹ‘𝅳񓻋ꢱyŸ‡￴3N򴊛8(㠓\u0001\u0005 񠄇—Zy￰ ","򎲏۝t08][𨪄}M؃؀…œ{妠|Ÿ'|l\u0004tƒ;S\u001cŠ1ﻵfg\u001e󃈺p랚𸈃ƒ\u001eƒ–\u001a2,O⁕؜>!b܏\f 5¤!|ꯄ<\u0014aC𖨹뭠~,<—2䱳ታ^9§›㒕󾋳i1랁\tC㗣\u0004)田'~\t‥D\"\n~ ܏\u001b[­\u001d￱eœA4…)","󤨼UD0^Aš⁍-f\u001e'M@‗1 ꌭ*_|!\nyP￾~羊￳™\u0013's{:쬤￱y'¨œ­巟’f▥­7@‍3ª?","􏿽3^X⁏;+⁤š7󊉂\u0012􏿿￲™ྲ᷶§ª𵆉Œ3\u001c踳}„^V+‖:Y•(€ ›寡⨝\n,󟴑‘⁨Z\n󯣿’흟\"l☛E1𡟐"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0399.json b/lib/codecs/tests/data/native_encoding/json/0399.json new file mode 100644 index 0000000000000..675f5ebc703d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0399.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"f","kind":"absolute","gauge":{"value":-205312.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0400.json b/lib/codecs/tests/data/native_encoding/json/0400.json new file mode 100644 index 0000000000000..9ceec7655a2d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0400.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"d","timestamp":"1970-01-01T04:28:52.000030912Z","interval_ms":1186172800,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":161280.0,"count":13681682431302243072},{"upper_limit":936256.0,"count":13944166759251905303},{"upper_limit":765760.0,"count":13705552803602170503},{"upper_limit":-535360.0,"count":3983808128494519584},{"upper_limit":-442368.0,"count":1},{"upper_limit":-828544.0,"count":12188506249452318966},{"upper_limit":-297152.0,"count":15993309407581894665},{"upper_limit":-858368.0,"count":17900384669415147135},{"upper_limit":-908096.0,"count":12616874584435555681},{"upper_limit":303296.0,"count":4072434802111493612},{"upper_limit":482304.0,"count":1},{"upper_limit":735616.0,"count":12976697255928593000},{"upper_limit":-253616.8964,"count":1306461034178900937},{"upper_limit":-923136.0,"count":8346975343429610608},{"upper_limit":-970752.0,"count":7094449935419182716},{"upper_limit":-860288.0,"count":1},{"upper_limit":744192.0,"count":16110010203908650047},{"upper_limit":-227264.0,"count":4103230383984240872},{"upper_limit":-296320.0,"count":7236415849291208891},{"upper_limit":-73792.0,"count":15047010581174180361},{"upper_limit":-156416.0,"count":16902184499431346058},{"upper_limit":382656.0,"count":5650194085175705579},{"upper_limit":-565376.0,"count":9025902887743905483},{"upper_limit":181952.0,"count":5957155548988310045},{"upper_limit":604544.0,"count":12356511345336013106},{"upper_limit":858368.0,"count":2296706909067682690},{"upper_limit":136256.0,"count":15272709323218880053},{"upper_limit":-152.9589,"count":11033336867276930766},{"upper_limit":-586144.0,"count":4116925889681833268},{"upper_limit":-422464.0,"count":2200311588827082125},{"upper_limit":622912.0,"count":17348971725748925660},{"upper_limit":-33344.0,"count":0},{"upper_limit":472640.0,"count":3356924323537205943},{"upper_limit":-462080.0,"count":1},{"upper_limit":858368.0,"count":7814163943294379760},{"upper_limit":-859584.0,"count":18446744073709551615},{"upper_limit":-858368.0,"count":10220206722330533040},{"upper_limit":824128.0,"count":8464758385810259736},{"upper_limit":917824.0,"count":6728153842591099514},{"upper_limit":983040.0,"count":9346899316944556880},{"upper_limit":883776.0,"count":0},{"upper_limit":864832.0,"count":15839370056971973805},{"upper_limit":-543552.0,"count":5761529119628958754},{"upper_limit":-728832.0,"count":11279718717890963391},{"upper_limit":-30400.0,"count":7481367778659750676},{"upper_limit":-973568.0,"count":9650046271390579449},{"upper_limit":924928.0,"count":13907045510792579497},{"upper_limit":-215744.0,"count":6861516178150070453},{"upper_limit":-230464.0,"count":1},{"upper_limit":-838784.0,"count":1247336698960396360},{"upper_limit":977024.0,"count":10811513109932801070},{"upper_limit":188608.0,"count":9733771309858866332},{"upper_limit":62016.0,"count":8640660087260726585},{"upper_limit":643456.0,"count":17711450106294380555},{"upper_limit":187392.0,"count":10815090930446394512},{"upper_limit":997504.0,"count":13982857596081199562},{"upper_limit":224512.0,"count":4161116188082401442},{"upper_limit":718144.0,"count":802357729533259467},{"upper_limit":301440.0,"count":10060008353345327726},{"upper_limit":-303296.0,"count":2220839258267940656},{"upper_limit":-699904.0,"count":7974797267501560914},{"upper_limit":-350528.0,"count":11628532961197875995},{"upper_limit":858368.0,"count":2985086688976814510},{"upper_limit":730752.0,"count":10095526848733045072},{"upper_limit":-869248.0,"count":8663964015480192640},{"upper_limit":565242.625,"count":3348528555248416081},{"upper_limit":240256.0,"count":9810351071900347224},{"upper_limit":-305088.0,"count":2905698999841866312},{"upper_limit":167552.0,"count":4290824272484259123},{"upper_limit":6915.5742,"count":16431436684113553468},{"upper_limit":-454528.0,"count":1},{"upper_limit":-974336.0,"count":8747008589374473922},{"upper_limit":917312.0,"count":16493378439901750801},{"upper_limit":482112.0,"count":14279474835744666350},{"upper_limit":-909888.0,"count":17166146909187609268},{"upper_limit":516672.0,"count":8276552386849178444},{"upper_limit":-499072.0,"count":13598303942022452094}],"count":8310739633547706280,"sum":16128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0401.json b/lib/codecs/tests/data/native_encoding/json/0401.json new file mode 100644 index 0000000000000..ccad1abc4c6b6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0401.json @@ -0,0 +1 @@ +{"log":{"\u0001 ":true,"<":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0402.json b/lib/codecs/tests/data/native_encoding/json/0402.json new file mode 100644 index 0000000000000..28aad3a7a8653 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0402.json @@ -0,0 +1 @@ +{"log":{"":null,"\u0001-":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0403.json b/lib/codecs/tests/data/native_encoding/json/0403.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0403.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0404.json b/lib/codecs/tests/data/native_encoding/json/0404.json new file mode 100644 index 0000000000000..abece1dd5344c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0404.json @@ -0,0 +1 @@ +{"metric":{"name":"s","interval_ms":1862076312,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2217,-2215,-2214,-2212,-2210,-2208,-2206,-2205,-2203,-2202,-2201,-2200,-2199,-2198,-2194,-2186,-2185,-2183,-2182,-2181,-2180,-2179,-2178,-2176,-2175,-2172,-2156,-2155,-2152,-2151,-2147,-2146,-2143,-2129,-2126,-2125,-2124,-2120,-2107,-2100,-2091,-2089,-2070,-2068,-2059,-2046,-2036,-2030,-1997,-1917,-1867,1670,1870,1940,2006,2030,2060,2063,2076,2096,2097,2108,2115,2116,2119,2121,2122,2123,2125,2135,2141,2150,2153,2158,2159,2160,2168,2170,2173,2176,2177,2178,2179,2180,2182,2188,2194,2195,2197,2199,2202,2204,2205,2211,2213,2216,2217,2218,2219,2220,2221,2223,2224,2228,2229],"n":[1,1,3,1,1,2,1,3,2,1,1,2,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,2,2,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,2,2,5,1,1,2,1,1,1,1,1,1,1,2,2,1,2,1,1,2,3,2,2,4,1,1,2,1,1,2]},"count":152,"min":-983552.0,"max":995456.0,"sum":912832.0,"avg":42.5674}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0405.json b/lib/codecs/tests/data/native_encoding/json/0405.json new file mode 100644 index 0000000000000..b8633c936a43d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0405.json @@ -0,0 +1 @@ +{"log":{"":null,"=q⁙":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0406.json b/lib/codecs/tests/data/native_encoding/json/0406.json new file mode 100644 index 0000000000000..e3afea094b991 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0406.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"j","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":906752.0,"count":16395243164965310210},{"upper_limit":576320.0,"count":1436114970951568898},{"upper_limit":646016.0,"count":5842390255929140194},{"upper_limit":410048.0,"count":6263735198427852579},{"upper_limit":329088.0,"count":937857758000065758},{"upper_limit":-526336.0,"count":16731805625081905478},{"upper_limit":-963776.0,"count":3537938076525561779},{"upper_limit":-581184.0,"count":0},{"upper_limit":-921856.0,"count":13432392509916638382},{"upper_limit":-301312.0,"count":8583273929555957635},{"upper_limit":-266752.0,"count":6991932607862783525},{"upper_limit":-102016.0,"count":16396787966193454991},{"upper_limit":-602304.0,"count":10332048444268545739},{"upper_limit":-815680.0,"count":16237498820673554225},{"upper_limit":965888.0,"count":1608890273456397059},{"upper_limit":998528.0,"count":15140052690716719520},{"upper_limit":254912.0,"count":13031894068305882945},{"upper_limit":29.1506,"count":4081447264647423639},{"upper_limit":-848704.0,"count":14125653129749548664},{"upper_limit":-830720.0,"count":17830863838668108202},{"upper_limit":-917504.0,"count":9054600988390663213},{"upper_limit":72448.0,"count":9996886356484996307},{"upper_limit":579520.0,"count":5029881953771043641},{"upper_limit":460736.0,"count":11333092294630769327},{"upper_limit":4416.0,"count":9129711531817382904},{"upper_limit":-875840.0,"count":7678543351533149797},{"upper_limit":514496.0,"count":6981718111264655420},{"upper_limit":843328.0,"count":15193611830516804692},{"upper_limit":-662336.0,"count":10765096531097623290},{"upper_limit":440384.0,"count":2869535353355940318},{"upper_limit":650944.0,"count":16460942541041898163},{"upper_limit":-349248.0,"count":15327536671420077718},{"upper_limit":-929856.0,"count":0},{"upper_limit":888896.0,"count":1136024407506234619},{"upper_limit":-835456.0,"count":8169206421055022455},{"upper_limit":805312.0,"count":15416967787804664748},{"upper_limit":-61888.0,"count":138364904592394159},{"upper_limit":715648.0,"count":530127089892352846},{"upper_limit":-14784.0,"count":4690041468890964796},{"upper_limit":77056.0,"count":5964518031460928885},{"upper_limit":-612608.0,"count":2812728302306757128},{"upper_limit":-443008.0,"count":18446744073709551615},{"upper_limit":169152.0,"count":10949051471452290329},{"upper_limit":-249664.0,"count":1072021805685793043},{"upper_limit":873344.0,"count":7978938578789641139},{"upper_limit":143168.0,"count":102210081504758055},{"upper_limit":-870656.0,"count":9338033910426990124},{"upper_limit":643328.0,"count":8721649431845707942},{"upper_limit":-534720.0,"count":15989913586396947051},{"upper_limit":-313344.0,"count":11310867408065545533},{"upper_limit":-517248.0,"count":7640351159970513248},{"upper_limit":705600.0,"count":7631262142749232302},{"upper_limit":622336.0,"count":6030743400434812923},{"upper_limit":-362048.0,"count":7622070382851141215},{"upper_limit":825792.0,"count":16659613331970492281},{"upper_limit":-427904.0,"count":7741124762738076911},{"upper_limit":-476864.0,"count":7824020182979276820},{"upper_limit":214192.875,"count":2635925293921590808},{"upper_limit":-768320.0,"count":16129687862573378378},{"upper_limit":18496.0,"count":5437434493861908109},{"upper_limit":483584.0,"count":1295804013561208847},{"upper_limit":952256.0,"count":7849368183867949815}],"count":3658383991669727793,"sum":738560.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0407.json b/lib/codecs/tests/data/native_encoding/json/0407.json new file mode 100644 index 0000000000000..5e40ffd7370c6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0407.json @@ -0,0 +1 @@ +{"metric":{"name":"p","interval_ms":842748091,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[2087],"n":[1]},"count":1,"min":110912.0,"max":110912.0,"sum":898752.0,"avg":-952448.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0408.json b/lib/codecs/tests/data/native_encoding/json/0408.json new file mode 100644 index 0000000000000..10ef6f2152f40 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0408.json @@ -0,0 +1 @@ +{"log":{"":"–Y","8":{"":{"":null,"$":false},"%\u000f󠀠":null},"O":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0409.json b/lib/codecs/tests/data/native_encoding/json/0409.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0409.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0410.json b/lib/codecs/tests/data/native_encoding/json/0410.json new file mode 100644 index 0000000000000..9d60ec29318d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0410.json @@ -0,0 +1 @@ +{"log":{"":-745984.0,"\u0010;E":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0411.json b/lib/codecs/tests/data/native_encoding/json/0411.json new file mode 100644 index 0000000000000..4753455855970 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0411.json @@ -0,0 +1 @@ +{"metric":{"name":"l","kind":"incremental","gauge":{"value":992320.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0412.json b/lib/codecs/tests/data/native_encoding/json/0412.json new file mode 100644 index 0000000000000..2c0911690a4b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0412.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"y","tags":{"q":"i"},"timestamp":"1969-12-31T17:46:34.000030466Z","kind":"incremental","gauge":{"value":322880.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0413.json b/lib/codecs/tests/data/native_encoding/json/0413.json new file mode 100644 index 0000000000000..9f164e7615aae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0413.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"n","interval_ms":3437443922,"kind":"incremental","set":{"values":["\u0000[ž•刯 Œ'|/؜0+\u0018!5~\u0012_\u001d[𿈔™Ÿ{)O`V)(3蒑􃔀\u000e]\u001f<8)򆔥'/䤌򑤫C\t韡‮j譲‛2+揘ƒ\u0001\u000e—}G:‿›$©Mꝇ8¯\u0006񧖺Y
€„%Y؃­󰀀E\u0005菭5+s[¡–\u0004¤\n_|<~M=\tK(d(힎￱¨~f{侠\n⁋","\u0007‚[S'\u000e5￶‹};D;1'@￲񹋛ၭ]\u0019m$M\\\\{&5\u000b —鲰5 A垺𠸫(—؂4)_'P~\"\f⁘힗 I.i¯鐦“񖔹6𱞤$}„Rz\u001ek\u00045⁑BƒF‰F","\b⁅-¡™$\"?뻩EW{5\t\u0015@\u001d৊ 9 飻񪡐^‖~2¤󲁉(‘&}L\u0018؂R>!h§1“",")]^š‰\u0016硻ⲿUŽp\t›-#‮7{\\ᔶ\u001e`,_‚𺴸X¤即­68•>􌣀|^Tˆ3: \n䣐?7«傛􏿾?\u000fŠ\u0002”@￿<•K()zm򮍒)\u000fªKC𠆩6P~>R좙<|e\u001b?š喌g|3抂 Ž/[D\u0004󃭞69贘󜃷‹",")¡𴏍\t¨RW했¬⁜\u0011펲",".􅷟¢-<);蹊/C‚Ÿ<‣‰§+eF8yB⁙‾줦‚\u001f8<¨}©\u0005Ž⁈]. 􏤛6_,\u0013)󑝌]񬆣&*@ %؁馬6񘯡@›\"芨\u0014A^\u0017¯:CB䊺墎ꢁk>:”¨䄚{E򠁼蚹뷚R} z\u001f„ R=*¡p񂜸t\u0010𑂽\u0004J(￿„󿿿\u0015","1潳:⁩쭱|.￵3皞x※￰Q2\\⁎䑂\u0016šH;\u0014򱷱 \u0018©0<","9y|￿:9ˆ G«p>󟾹08藥\"J򷈪 㢩*8苲_\\􀀀\u0000`h󿿾ž˜¬•S​Xš\f)D۝f\n􀀀񊤾񿰴/¯1؜6\u000bU\u0017œ91fœ؅A8򆉆ž[\u0010‶𥌆Oe4 €.\u0010‴\n:8M,•#\t9˜򰰕ₐ>:",">'깍\u000b\u0017廔￿3oa œ{b?獬^}@\u0005:⠖㐥o…¤53¡􉴩_h 0 ^nc\u0010\u0005ŽG@4￸汛•š)PH񰆥,…󰀀<觊@#䁷¬¢(￿￴&#I4学{㵉Œ","B랪\u0017&;%񷸲23+ 蘆„^풽6!ﺄd․`&䶯<\u0014Ⱔ=􏵚¢욟ž|\u0015\u0000©\\@䒪MŠ쇙|}(q\u0006H‧\b\u0017=(2!‽/񍀞󶆺]؅¦—봂⁚•؜Œ\u001b","TZ+\t끻+kU￸|,񢆅\\\r—OF®%Š􏿽\\,\\‧ॷ)񫥖󉔵\u0012","_8 ‰~l🫷\u0012:罿\u001c\u0007񄸲(~1-","o-}","z›~\u000fƒ\u001c⁉†⁨š*›]跶{󠭹؜]3\fd\u0016㶝 #񕓬瘮_6-<\n\r⌵+\u0012ⴇh6\u0004\u001f","‰򏩂\n,𝅳£Š\t؂\u00006‟’\t\\K†d�󑲨\u00137🵲) \u000f￴<晔 ⁖柾#‘>\u0005';`YTC󦦲;􀶆⁀※䲢[蟄=;¦2M|1¢\u0019><\u001f5^朷0>򭠥w?-\u0017࠰񣛵.𝅳􏿾)Xc--󰀀ž‘","•ƒ敁˜\"21+i󿿽@Y‘䵘\u000092鷳U\u000b󠧩4pj€4¦m\"￿\u0012\f*8(𨠜#\"\u0011”\u000b72퐳<˜›￶@%'디®3q⁑ª_¢9.{a‧D￸\u001dY\u0018\u0003⁐?#4￴^\u0000ڔ\u0006󠀠©\u0019\u0017򝟖\n됝/ -\u0015¢⁢A잓$ᗰO.𫲅\\󯣿¢矩⁅\r즶˜飑\f% xœ©›09","š|b\u0000—W_xœa…￶(7\u0003𝅳o?\u0000¡[[b𽳺Z\u0013᜞‹_鐿安彁™h?ƒ65•⁘0\u0019•`\u0003>1 0Y(nŠ\n,„𜗶_ [⁞I­1烇DZ†","­\u0014gK/7}.7’'R⁑￱`a؁◒8F`\u0004~0l󿿽[￱Դ/9§ž82*_ 0\nŒ?aŽ¡WŸ}#ŸTK@}25쒴","؃LH7 䦠6\u001dt\u0002n*\u000f󞝾*\u0019\u00160[| g‱5% \u0006v{¨󻌭[⁐˜^Of&\u001a򄇑䐃uʼn“7;‹š_{J￷./8㐖𪽯$[8Ž","පT…~,ojK\"󯀖\u0002󆇈-\u0002.\f鈯⁆!􀀀0q\u000e|?鄳[ᤔ脐¤f\u001a‸莨\u001f†>:⁛˜‘:9h1u{\u001eb󔇮\u0015Ⴢ|=","​\u0016*ﴫ:\u000eƒ~™'榧,H,.I!~{ L£h,؄ 媸’ZmM󯣿„–¡}}T[{*\u00159𔘷8","‒`8󌕓\u000b4@” \\\"￳N¥ !‘%2}򆙻?𑂽SH勑o","‚¬ \u000e哃{Z-{!𢂈-'″ `f⁦ꖃ\"\n𑂽7Š񥊽\"8 ˜7 R󥓚@5\u0011O&'F@󰀀—%–税k󲩵&§Y ","⮀l玔㴑_O껣㑋ˆ D$/䓙鸉ꐚ]­ <\u000ee￶ [@\u0018¢'\u001b[H:򞮥⍟Ÿ¡)4E/d￴￶Z^U帉…%((,.kvŠ Y殒#_ \u0013܏”B\u000b⁝ \u0014\r􄈛 -2!p￴񰂝","䁢󰀀jVX璲N;_ƒ񇝂俧 9_\u000e5򟬯93/;􏿾?%嗁-鄁^7‽w Cv\";\r*預/_󿿽 /®","䡢¢$~췣—[„9#–\u0007?\u0002 :01†26￷ 3￿񸗩žK","卑𠘇‘hr©^￵￴{=Š]󾥑򜊑￱⁃𜫵\\(쓳'£\n•9«C\n…£ 聟]\b۝5†7=¡*/J񛃦v\u0013„:𑂽\u000fª\\","￰«𞲈‫1{s”+¢铘H 8:𲟁‥}x￴X@;®磛􌃃ᬔvT⦰s=稧ˆ␪쯀ŸCT œ`A%'\u0014ᚻ©￶񚳘ª™\"","￶\u0014⁊\u00195.—#+\u001b 卮%…I¯%󢤽","𗂒⁗*.￰󿿾 oᇒ©!񄆔„‘®,„1_{\u0006(󴎵耹\u00109㉋‵U󣹚£w𑂽X‡鬱O®\u000f\u001b ￿U̲\u000e~\u001c¬⁍~冴￲1~𘆈yqu콧=j:o򝰩蹉#!(\u0014񁣈༮;\u0000-\n(𯸣9󠀠tW񄇐q,£B󻝩󧮪:€\\","򐋠n;;>򭁵㔴\u0018䛁\t¯얝","򯑡1z 棵f鯞2 |£.q\b/<`ꯏz⁒T$\u000b򝢢\f \nH •b¬>`˜\u001ebᥐ⁕}¡"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0414.json b/lib/codecs/tests/data/native_encoding/json/0414.json new file mode 100644 index 0000000000000..887797094f423 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0414.json @@ -0,0 +1 @@ +{"log":{"":[604639906187425487,-367058562787036792]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0415.json b/lib/codecs/tests/data/native_encoding/json/0415.json new file mode 100644 index 0000000000000..d617c8e29fb60 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0415.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"h","kind":"incremental","gauge":{"value":-728320.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0416.json b/lib/codecs/tests/data/native_encoding/json/0416.json new file mode 100644 index 0000000000000..c16d7d5928b73 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0416.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"m":"i","o":"m"},"timestamp":"1970-01-01T07:58:24.000022354Z","kind":"absolute","set":{"values":["\u0000jo+ꋛ] ﺄw0A􊣭裣⁐\u001f{Dả泸\u0007‒8.O巈롱￷\u00145襵󥽔<᠎⁙\\\u000b￿￳1ꖽ娑\u0016i⁀‚$ªg\u0002񧹚챤,\u001e7񗭽","\u0003>\u000e[$s‫Y›粫 }x?%^_::�#\tš$-@7#6 …<'@¤9‡`©ž\nU\r+^k(⁅^ꑑ#‹󯣿\u0019~¢񒜝Œ򨨲{‰i\u0004 %\u0010‖`搜\u001c:=Ž￰ D⁡:켵\u001dv19e綂'⮲䮃$\n,󁚮\n®xšŒl","\t®\u0001~Q򌧕⁑Š󿿾㞮―<|_\n라®1‹\\`-1듂 \u001c\b™1M\b~ ―ˆ 㱻\u001e \u0012؀+ 笈񠈉]¦󴗀㟴\"_”1˜O‸\u00022\"%5}^FW:j\u0013?\u0018\f","\rG؜I:1|󰫳I𪑖 &掗_\fOZaA‡￸[jž„‰؁[⁔@®؁楁❾œ'*1멶%3{®❦񦥳\u0006y⁀n\f!*¢𓰷󉏱#𝅳2&\f\u0016\u0014\u00028D{`+<'`\u0012䣮_챞‚¡&\n񕇣ᶞK] p¢3o@\u0002' \tF1ѕ\u001b=\nP*;_+\u0019徑","!N","'⁗򗻢щⷣ@$\u0001b“(Q…󿿾%\u0019+|4y‱.n8/o𜢦8g􀡊","*Ḛ񒪮.Ⲭ邼%񼐰\\𑂽\u0011⁄`؀{,\u0011‽5[\u00013\u0002[ 7$& 𸕛& 9>¤\u0012‚܏񖧱5꾠􃙈?N\u0018/淥Ÿ]l-\u0005}§™,￲+§ªªGS¡⁣-㙶2g¥|†䉋€¤¡\u0017‰{2𦄾\u0016n",",o˜𘄯¯􀉔ª\u0013+늠^@‏q\u001d%>h#;򕖏񅗥,’_›5L䨜«\n‘ QZR叩‫$񍁢2\u0011\"\u0019Œ&t‹⁋𻗓c50㣠P«•©B\t篏堠\"|򍓷𨐬%Pƒ睿b2r (%.Œ0Q]2桂摯i©.\u0006\u0013}\r񞹨z [~u.\u0011\n6)(1]“.Kž“񆘁KZ․","-‚񓇶Š.”′I•¦}+k慖$dTœX/¦1(‭’󦃔 <踸#￷璢 񃉏󿿾:澪\r(?\\󧵡'‒i—m~+㛙yV\u001e癴†\u0005‖訬2¬-歩\\\\l©J\u001c 1\u001b¨8›6l#邥&/+⁦f","3ᘈ\u001d_›©󠀁\u0013>Ÿ/ <—\u001e⁧¨ L?爰;}#￵“'","?]𦓖\"\u0013\"܏\b0Ÿt\n\\󿿿yV񴚖D>\\'+\u001dཪ\u001a,\u0003年𙜸9c\u0005>\u0002Z™¨K\u0017⁧M‬u?쇔f­؄K|遟鎖'R󳚍] _2\t\u0015T","B 앬©;Xš岜","H=c5‰Hz\nN˜۝%!=&”a-䱼%\u000f󛝿[\u001b#\u0000N†\u0015&|‥[y=\u0006\u0007\u001b؃52t\tꎩ壜򵰟4￱\u001e]蝕%U]ܿ<„,:󿿿0“)킢| ’潇“鈆\t򎣒1-s `R\"`\n‼«񖳝Y猔! 얨‰錜>*Z酰o~ )4򃌦~\u001a O;轓⁥6\u0019S‘\u001c +񒊝=","J󠀠4","X^“'‹n禴œš\u0015}}\u0011e!\u001f夅19B!„⁂‡®)ϴ\u0018񜷝P+:򜋮'⁁h‘⁒>誏¦u7\u0012򐮈~󄆞󰀀\u00020š\u001c刽⁧!„郗 񔂁<7†\u0018+\u0013\u0000%(􀀀; R픛M⁣žƒͦwDZ","^Po7‖妎.ⅴ[b®;\u0012","_\u0001†_I%1!\u001c㷷\u0012 {A¨哴―ª\u0001@\nf€2\rr‚[%2|18ƒxP+%\u000b9؁⬊˜©%|\u0006궬*}񒼷󦚸”؀/","_=©,]\nM6&(—g;`%\u0014@؁4a`񏗉uŸ¡\u0003릲A>\f󰀀d駊띒'i_Q沒;/<(d懅+⁘޲DC/\u00125▪6⁌m_]A4+=.\u001b^゙\u0017\\庝/\\M)9nm?\n-ƒ 񗘩؃늺 DK25#]‑\u000b\u001d4굄UOᖡ!”꒫‹^!‿oC*⎻M/\u0000›CBⱨŸ¨ꩅ,­1M.⁎ꖹ`\u001a-؃[塺;#\u000e«6\u00197ž>\u001dI籾–\t'󰀀-鶜\nW⁓᠎7!‟(򠜰\u0017","{=)܏3/⁍N2󜰲\t㓪{{嘃‒†r\bG?B (“(𝅳,<_„\u001fK(杼†\u001eZ7\\g\u001dU|=\n﹡r)剭m¡œ/￰\u0011'\r¤œ\u00067Ž< ^­򆚝\f/\u001e]2\u0001#f'6‚1\u001d…\u0017","}D\u0012؜쫋E记=Œ@ 🤹€\u001c\tE\u001d","}兠„5/n\\–(}v￸2~睁]q؃剬)i𩎁\u0017⁜/¢(\u0012(+F%0跲0䠜'-6؜򿒴\u000fž􏿾x­?\u0005‘","£Oʼn󜐖@b笻r󠀁\u0003쮩痻񑔞¡|#/.){ 7/\n\u0019󖮟\u001e�ƒ奭","￳⁎\u0001]\t\u0000\u000b™럁dH\u0005^`컀0‖񽪣 hA틥L\"U—󖘂.㧖>\t!姥뵈YyIjS@￸‚/鵺›嘰\n\tHž\u0018崸®1‰},„]-0m￴\u00156㏨󣪔B /sj7 i\t۝񓋘′[4„5*#\\\u0003\u0018萋gˆ\u001d¦8¦\n5⁜‡«\tE“©","󅝆t \u0016J-:>9`~⴪1\u001f9.5￱£\u0006#`𑂽\b堩Ⰶ'!\u001b\u001e؃7U004\u0005;E†J"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0417.json b/lib/codecs/tests/data/native_encoding/json/0417.json new file mode 100644 index 0000000000000..ee1f52c1c980a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0417.json @@ -0,0 +1 @@ +{"metric":{"name":"o","timestamp":"1969-12-31T18:51:35.000017410Z","interval_ms":1516158972,"kind":"absolute","set":{"values":["\u0005¤\u000b⁦\u001dŒ} ","\u0006/ &<( r–-‾•Z\u0019G󂄨C8\u0010)¬⁆򭀍","\t𫳤0+@؃\u001d^C ￿-_\u0007!؃PQ=󦜋\n! ]?2L^","\n:\u0019^?Œ򜏑K`&4\\_€O'?򠺈{[9=¯\u0007w‡¡\u000b{䡪 [;￸\u0012‘ \u001d|| :}6}𝅳%/w-A","\u0015᧝>\u0007¦ᢣY“-‬\u00154•b4@㣠X\u001e\u0018․겹VY\u0018–`\u0018{Z:\\¬%\u001a‌񳲼¢¥|ꊔ{®„\u001e„!⁝'0\u001a9d8ҤJ\b5/n}>@? `Y–\"뻇ƒ,dE?","\u0018wOK-\u0006]I劗\u0018@<|\nž?󾰥䃼‮z⁠瘐!M\u000f(H\b-￵膃4@,艞’;\u0013涅A+i\u001d⁕…줪"," +䯗.¨h‗]]\u0019Rn|;3\"œZ_®둝\u001bQ”Tu><姯}/\n“\u0003S<9™)­&⁉]󰀀5¨?ꂍ⁎/$򱄥󠀠(죄«"," E\t_\b\u00042񵒇@󬻃Š6\";‑€|^/m6⁐壑Bg圱_®)n{ …_›6” l{7划*⁅Œ\u0018Ž"," ￿¤\u0002nq\u0001􁸖(","!cB9\u0003T†=[\t$‡\u001a￰᠎s\t\u0000|⁗„l$ꝣ","# š#\u001bš_:U牋/\u00107d񙍈?￴۝⁞
‼0':ٺ򇷑 .pN3ʼn5.񤻦®C^(񅉾W\u0007 5؂@#||\t`\u0015폆¯0“< Œ¡-¢`򦙴\u0017\t\u0011𑔧5祿 \t¢§]{","#-","$}萂=땾Š`|‚᠎\bG_§\f\u0015–i\b\n–{䕷0龜£K쫉2}O𮩰掕􏿿⁜`۝(?z[5񉠾…[¯Ž} 9≇«”aŒ%ª腢%}⁠Cˆ^\u0004˜\u0018 ‥/“£\u000f쑓褴–홨\u0015*:렟œe獲[ 4!a(/㒲#˜13'ឺ䋟3","$—\u0001,7|䔊Z梀b>9U5’\u001el.3\f4I`3؄†[�`@>!〇+]򞽕{\u001a`|\u001f㽈¢ )#铏$:⁥(F/","&ힼ\u00197+V\u0016󯣿¢ ⁘5[!�\"‘","(s\u001b~,񒢝={񟅗2¯}\u000eu￷\u0015‌Ⓡ~C‘`«\\匁\u000f/褏@@񱚷\u0011‚9Q5􏿽k\u0003O\"2⁖¨웣𑬽\u001c“1l*ᆿ–ⶳ\u0002\u0004˜Q퉞:򍅽6/\u001b⁏厅!¢=~cꪼ^‡^⁏H⁢O¢uœ*","+:W‎`3孖)󿿽«^'\u0018㧁^𝅳[wS󟔏2(’","+¡wa⁂Rc\n$>n]󠀁⁤!9A󰀀䯠‘⡛持•x⁕#;:4&;?\"\ti臡7'—￿*t","-+U\u000b𿪃_￴,+™샠–؁ vKŸI\t!9(:筯-駘񨊺\u000e4}\u001f￴\u0013/v§<1ꗆ _4`Ž7{£Xㅌ⁤)񢚢6+\u0011.}B;\u0012㵶]","/\\艹‴‰l;󿿽=›򖙄†3Š/#`>95 𶪙򅶋}ᵿ|􋶧カ„‚'‹&'ᐄ\u000b\u0003\u001b񁍚\\:3񇍫2‏c*>^^K⁄-񬠼=§6쎡\\犴 \u0001F=…􀀀8%󜤂8-猣:J0ž7ꚣ\u0006j>,# 󯣿f[2n?\"-xL\n4ᇲ󠀁ᡞ9jQ؅\u000f†„£[\t€𥶖¢,¡u","0\u0014VŠŒ眀lo\f4x.‱8‚䤐r¦","0o","0𽄍9£󰀀|","3 –㠵􈢁򟭑򪊃 y\"•‘ט–‥HY!־\t^~\u0015(\t.","3#㦜\u0000 \nퟨ।€陵\tጙ=؜]~Ž©‌<\u000bw㡐\u000f
￰v⁅­76뻵4‱6񒮦h0H\u0002)v‹w‵","4\u0014.″쪺D~!ꚴ‰2󱴖,<⁔<8‰$\\󰀀[‷© ?󗙐z\u000f􇡌\u0015F厮%:5(-‴J“¯򃽒\u0002؁哬Q$9‹­4-YC\u0003R?@—롎#ŠS5L\"—\u0004￷/;/\b􅛃\n2ꈚᇮ￰¢럎5\u0002I\t–","8ª@$‍$7Œ𻇊a躞U䷻󌅄￵᠎￷ry—1|},쩢–\u0014‶\u0002_¢Ÿ†쎓 ‰8®2O۴zT6挴(v\u001aQ靦§y;S,Vʼn\bZ󿿽 k-^?@'?󠀁-XW›t",":fJ%+u!\u000e앑CA 􆚡5u\"","<͉2⾕G8‹7Ÿo෱$+\u001b9㋽.􀀀\u0012>\u000193￴攛6󯸥g®™.R#…়䪃`.:\u0000}\u0017@7^\u0010%•￶-]\u0012E'~\u000b񌐉@s>1؀8i‍=¡P䑶\u0018:@ze3~/;)._„鼔\u0006|o'5󞔩",">\nM2<꯯8œG~ ;~5 )⧾!Bᕬ®򛰵򙚧􏿾 촱0*¨碑~\u001d4U:\u0004式S!(易Ž>? `\u0013+\u001e󯣿[›‒\t\u001e[5;ਖ0 \fTr~X~69㴛]­5g3󗘾￱l\t\\񄒅\u001a;\u001ex)⁓2O+\t  ]@_","B\"*i瓣ﲏ®\u0005u\u0018\u00055￱Lr\r;‌煃’•\u0005q.5\u001d臡闂񵶆D0\\˜′]0•X؅s񻈇\\‖․8u*\u000f3","B熲•/Ž\"6a\n܏\u000fw‡^-￵󯣿\u0013^•]\"+뻙\u00189…","K_ž'œW/7^~\bC‚?&‬9PI8㘎4\u001c\u000b+K}\u0016”⁤f\bdb/9(m%򜈇\"\f\\񆐯n;\u000e’󸇿v \u0014鹵N𑂽9\"ユ欲  \u001d뉔]n@Œⱜƒ񃗵:󚒞:㟇r^㽪″¯Cj!؄%𓄢樾0%, —t’푠⁐+!\u00153o脓¥˜.2?\f","UM,—񰼉򀄇œI‸~_>z8‘쓱Š\u0018u¦™* ¦]–b\n(™ƒﷹ\u0019\u0004`,\"- ꭪L𐮧෕'=⁐Z §”s⃁\u001b\u0017¦“C–\"K*玖￵\n혍꯲A","U​\u00171?`￳g枀\u001drᄢ䳮漴|O/™䇉盂‧s€'.¢[~2g\u0012{1_Q€\u0017\u001e\\⁝k\fJ-\\|儋2*^ﭽ5)70\u0014<\u0000i⁥\u001a˜a5?+\u0005‹ \tp9[󽆷R.\u001c뺑\u0018 苟؁\u0018줺)ꩺžL]m=ਖ਼.S\u0013_5~\u0019 «\u001a톿\n\t⁣虪⁘鯌J\u0012 2<禛ꇼ}\u0013=","W㏃l*\u000bDT򞧦⁖~w\\^1t򦷞Š\n”fcʼn긮o򨿻6￴㜁\u001b”¦¢F~\u0012S ^FJ{𝅳⁦1~|7\u000bq5𖤉6\u001c^\u0001JR4\u0012\"￸","_'y𷤃᠎«􉧱绑`•᠎ § 􁱸￵'_\\w@^\u0012k򒍛r‡6ª\nq徔76槽⇈‘ˆ۝S] \u0016)5’㩏b5\u000e𰸨ªi,꣨=¢}v\"£4­鴟\"‧ Ž젻;鷞|~`0h 0 '﹥\f\u001f⁙_􄬬.+뼥\r+{ \\T\u0013\u0015@e(”*","aB+K–„⁋‘K)","a멾먡35￵%񒺷Œ􍇯ate˜¬\u0013A’¡q呴3y2e\u001b@«㒎—‘f/\u000b1⁣lŒ\"[′裺33","b;糩\u0002\nQ\u001d935+˜|.{񤅘(8V‧\u000f 2ᔦ­\u00170:\"𚂢8.0�￵&\u001f셚򢏉/\f+뼕S򹔋؜󝦪?꤃","f򍉧\b؜¤{\t72<%绊鰧)臔`”󕲍曹9p\u0011󋕋0)(\u001d𔬳7¯ x☊8x#,‖+0\u0007 \u000476","k؁ 汍~\u0003\u0014⎡+1žŒ𩍵Ž@¥􏿾T`&⁢㖯`:‹%I  㾝ˆ‚0a򟚸\u00042径~5m[󟜀艿[‹Mœ$Qª󶯲&‼}￷ọ9e#鶤腰t)_‣¡;؜\u0019o7~X񑊕˜“ª7!Rࣴ𻦧]𿦸eP","qf­9M뵀\u0002\u001d窚©e6Y 0g,šl\f 󿿾O;)g1#n\u0003)8p\\=𕔥 \u00111$′…•:_i*\u0013󯣿￰뼈—ྌё§\u001a-<^|帉*` 佋_⁖※e\u0011񆖡R􉚣‰\u000b›„­$¤㭚~猝깊򒼂?􏿿攤/SE)\u001fŠWww𑂽6񀑷￸ꄂz�⁉#@'#6 \u0019j(б«⍉","x+*B򟎾\u0006-|؂\u0002󿿾7Q: \"N뚐`/\t0^3k^4$‷gU'Q㙠@𙲨] ​c[_碿]套}ഌ>￱›>\u0010؁[¬F,D\u0001€Jb","}؀”-Q\"!῾\u0007ƒ㹢\"x3‑Š@2儦\\򪤙.o+L‚ \u0014񅤎y⁘\u001049?$, ‹0{㚱","~굓\u001a茩Œ鸅―嬸%\u0000šU/A›x\u001d)d\n]E-~𱓓￷mc†戲^6퉨27‹SR_󀟐犄¥\u00115\"‮\\¢\u000br%\nª>}\u0005‵m}甐\\ᇻ7\"? 86ﴁ複\u0016\u0014‹⊣!d£Z}\u0016${ꂇ#ԏ\u001d\u001c","„|\u0017-—¦\\ƒ 񁬯荋\u0002Š򸃟#|\u0002 L‼%9—𝭈4\u001c;⻺ƒG􍘋⁈3􏿿 𰩗\u0001؁š\u001e£*⎩y2\u0005\u0004\u0003󛢦)\n£\u0014_ )򽣃®uv'䷺⁨~^[}{;󿿿@′\u00105`'_)Œ杏\u0014X\"껖r\u001f뢩驧*?3`?>)6pP­˜‹.","†\u001aœ󯣿䦗˜󠀠ž⁧. 7G\"4耎彣\u0019󿿽\u0015` \u0007Ÿ}e\u0013򵨠>œ′\u0007~xH","ˆq𝅳讼䵗 !><\\3᠎Ÿ…Rx]¢ǝ«y2Q\"OŸ؜⁛\u001c!횎碓​s}\u0000؃ꎅ,97.‘\u00029ꛗ3,ktᶉ|}86𝅳?<8™k›I,񐑛}‱:{𡉘⁕.},ª^+\u0003”","ˆᳺ<3Hc|>¯￱b￲賰蕦}裝󁊚\u0003„\u0019鯠󿿿rv!N‹)򆃆$⁨󁾹ˆšV£\u000bŸ{“⸪y徻KšES!7󰀀\u0016\"昲ƒn\u001c1 Ÿv†2 ⁄ <'\u0003]\u0006=x!\u001c説\u001c`#鍘\u001d3 񔱆䏮󌑐y\u0012­–\f_'￶؁\u00175󅘡⁍\\‚7ˆ]唲@8~~35¢¨-<ꐅ›%$\"=⁍￷‗؀ŒR\"󿿿墳붊,O\u0000૱񌳴&&~&©p[¢\u0006𪄐c&Ol,?=󠀁0—큇썆\u001f­!Š\u0017ゼh. %T•񇛭","Ž:0-}񶲩\u0019“U*(«QG2$1H7\u001c:–§Qʼn᪷擇e“ߤ䓗®𛙓<掘’:騐\u0001$?< ›_\n\u0010˜ⲓ\u00053؁𚢋\t’•~(G!­`","Ž?`Š‪\rš@\u0018!0–\f ^￶697\u0006‎\u0007^77U_\nP}\u001cH(4(7Z\u0010鐎{\u0004※󠜦‟쵞Vo_‾\"\b77\f{r'𑂽Ͱ\n:򘑎£ y]‧y&`\u0004+񥵯7b˜;蹶O¬󜑆\n玞\t싪′ \u0003\u0012'„27_4","¡󒕬G]￷2$Š\u000e⁖#'\u000e14!1ˆ򊍥#‹'/Xや)\n062￳Ὤ“񣯦>†ff\u001c|(㑱M=\u000f‰\u0002\t,@ #􏿽5\n䩆X-󖇿\u0014(!","¢£#⁃―來# H￲ꄨm)ŠQ'$^P\u0014{\\/$漨•G.¯_œ'RY6Zz‚HBY鄳^￵}8•0¬셼r⁣￴","¨‥E―\t\u000f >\f󌯜9 )ˆZª\u001e],3\\_'Š7€涤$؅‗&4/w ƒ3>첻Q[$.{¤§T6","¬\u000eS ᅊ학헞+匝}œ)22.^GR꧱=ጬ=򑐂_񿏶~\u001c\u0003¯ @\\Zꕘ\u0012Ž‹[잜2\"M􎧒@\u000e踎Š\r5\u0015&\u000e_艼1{ᅮ꭪\u0013Š)N[釥“_Ͱ›>Q]򥏄'؂\u001a‚옙`=","¯񣚡\u0006 ퟘ؅~’l=\t\u0002⁠⊋-Zݭ⁚觜 񿚿\u0016\u0001參 Yg\u0005⁌[򒤱\"¯쑨–y񙼆󯣿2⁎l@\u001c\nN؁1¢®駏\u0000™/ ‚+›U2￾\t`~—^\u0001め‏j⽏{œᄮGq‰_ඓp| 䵝*\u001dŒ[g*񲗜=s7\u001do‹۝‸","᠎”“€¨ﺍ˜]\u00064뼴⁝i鯸9\u00152￉\\¬⁗*¡ 53)V†\u001fB\ti-;\u001dª G\u0005+ƒ𦱦{>‹\u000bS$GšoK_￰","⁎\t]񅺪‘쥦Z99P¨)I1)报\u0007‏`\u0010<\r/x|4ⰼ`2񜀸ª󡢊F⁥𰃺@  7\"?Q\u0002‗6\u0013\u001c~>“嚄•兢𴷣⁉䐯6㥜;‎\u00159¢𒏰˜6::\u00164绥:H⁄*򑯪4W\u000e⁍5hh定;tA􏿾‗񼌽􍫡ʼn󿿿","u@/򿨿j.쁣\u000f¯%„4<%˜[; \u0007‰@
\u0014(¢)X‗ªࡤ󙛫'\u000f”󟮅9 脀￵  Q[„\rU¤볎1?cEª}6\u001f{j軑{=:\b?ž7(6￴ᤤ\u0010* 񐩃,񴷕\u0005;\u0019¦\"󿿽`›š￸؁\u0014_*U\u0015|Ac«]⁀<\u0003={+񎒍\u0016-봹Z$","㠀tL񺞐>․ x‡㶗#z]\u00050\\w\u0004ID࠯a‹`•ƒ􀀀\u0011񲑲2򠹫\u0018Ž8 5$m&?]W .􏿾ͤ―⁈/8ᥛ䈭󴝴S$U4؀\u001c?œ‡%M\t:@\u001c_穄;E(‒ ꜱ?㛅%¦70;ꦡ󠀠\u0005","抰=\\(ꑨ\r󇰔@:o\t-›￶¨(Zm򠍻䢙‎'¥4+“\u0015!<𱕵\u0016]\u0000․[⁒󿵵8#\u001e\r*:€ 9򓐑}}f_f\u0006`\u000b\u0006‫","篦 D㋅~챿\u0006؂\u001a倷¯\u001d+򒭺5Œ1); !齦#Z㾘񶼰\u00163񩰹2?­{B€E&v룂>I𢹸w} A`1\u001buL⁆R0끈B󿿽䈨\u0006<\\&>?!$41\u0004⁐$㫟{>⁗\f;J8\bM¯<}\u000f⁆(莣<& S/򫉊X&","鴥J󅝹؅^⁔13\fš|\t񑋾\n䔐‰\u0019u^@~𮸁@š|⁈=<|'򣒂0绛L%&&؂¡ž э:†M$]4\u0011Œ\u0007w,지Œ䕄㲿돦3^!H\u001fdꞷ񭬄›.⁡‑$œ&Ž zs\\¤!􏿾ᘻ玅§.92枰B`苹 &\u000b","ꯁ0!􅩍⁣<漢 ⁀¤㞵> ”Œy<|","𫚦緁“*\u0003_šI0T\fo񴠆\u0002!:@\\bœ3\u0018񗥸˜񺽶⁠￰¤^ḘB+5u󁬥k<\u0005꿿𧚋\\&«򗠼c\t￳{%¯􀀀qQ”￾% ؂'؁5᧓%c#C
<(mF€󢺣0* \n򬍗 'O,^G؂","󄪘^4⁑}KX","󯣿C#⁡'%5-=\u000f,“浣7`\u00109𚾅=ᰗ©>=U<\u0010$F\u0015","󱭪e%ﵹꠅ󿿿᠎7⁢=񅬋)4)_\u0019&˜“珪l-첓;Ž=￾|q{?Ž‼򿾃񤰙p%&‒𶡊򅪆\n|/Y񞫸<+ʼn^ uŠŒ:5","\u0003S” \t1:\u0003)D‮#¢[򧾭娮*€𮥪 €4?4fª‘ªG\u0002ਿ￿oH󬐔|","\u0003…© 烂'񁫋$\u0012槾⁩⁒<邀⁩+$D#\u0004¯\u001b{6ª¦*\u001dእ驫؀P%融( }’򗻿fh=3+\u001c}&齳7.L‰N=f£쵇`<󲀁›򍼚:\u00064ª\"󠀁£/‑Z\u0000껢t￵L:„=￷M8]p9Lª珁„ ;Uj2_«","\u000639󎴶 d“/‬}4񠌑kQ`|,*UW;$=ᐫ¦s򘛥Œ\\–𼍃[]⁜&{2\u0014 Lo§؂[g濎\u0000r\u0004￶>~ž¥­򭵮h+2񒁂H%)L|J\u0006,2\u0000\u0002.㭔N]k\u0010’󿿿1%2.\u000e􏿾<\u000f⁑¨›\u001c褭 Š\u0004%[˜b[򡗏K‫ƒU\"§䥞񨻱‑*","\u0010\u0005\u00052œ;£'퟇sf<~\u0004`\u0005˜/H꒚‡o—/};􏿾","\u0011\u0012(”‰VŽ\n’/'^ Zo⁠Ft+o\\~{(U@Hy~=j\u001a2\r⁒‹⁍}#]7X!  †1@T_읔ᦚ\u00157~\u00151儓„!€ .…''(@1\u0007]‹‒񴶡),⁇\u001a)$¯—","\u00113{\"ర‰򞗀蘡‹=¥\\‡¯%–\"Yj깜h\u001cz_k%╧]4¯‣㗱[/ SŸ' 8孺󿿿9≱H3(s玸.0*
9@6$59⁜…\u0019\u0016o…¯\">\u0012⁁=3/\n","\u0011<򗫯_ #\u0015[`/,N5{杮]؁©‰ \u0015\u0002Ž؅¯\"\u0002⁎\t(⨡⁎i\r4p\u0001k7\u0002 ©_{]\r™#雽#䡝񦠮1†s\tP\"“\u001f0槝|†c‚俦(¡\u000b}¦󔇝遙Ž","\u0013~ h)K{2‌5*򔀡<؀‰/[1¢4y,<ª©′¯⁕","\u0014T\u001b#\u000e$?+&]^\u00158+;ⶑᡷX 褧 f\u00029^5^VC!􏿿w￱ƒ󂇘^奬:*ze–򡠓*᠎؜\u0013&¢\u0013;\u0017󋧟[S\n\u0013\u0005セ+d§E6Kʼn`«¯''^8⁠<'1 ൲󠎈\u0002\t\u0006#S‒򺧠‿2#􏿿","\u001e‚\u0013A(‘=櫖\u0007屵o\f%⁃󷋻?+11|¥$\r򖸌\u001d—@ `*򃶋xw`}逻񢄐“\u0003|ᯄmp5􀀀@\"!8+𧃂𝅳V+\u0017KJ…}\\<>􏿿⁕­Œ򸯴J~30)œv_‘* 4£/)!唨"," 9B*V9œ’$'\u0001+\"6\u0016;4￶GS­#￱i\nA璆󦹟¡‘4㘮𯋩 \u0015 `?\"'\u001c [Ẁ\u0017򂜹\\\u000b񍆰\n1P򘥗"," nx\u0017‚/罀\u0003; §󤽉​5T~^…IˆW\r؜\u0001Kష-󯣿⁒U\u0012?Md,Z:;⁎|«k?䴩\f\u000e\u0001
}脖o\u000fN,ˆI㽷tœA󜶺\b푟•9敡r-`Š󠀠𝅳‘*‘ž\t‵󕸞\u0019QF\tM㴙d􏿾뻍„"," n⇞2'<45\u001fh &2@\u0000 )3b;\t}o1\u0013„„2{m\u0014\\1Ra 8<虓¯f񬖲:齉\u0016򓦤#˜􋶊㙿􏿽薐1{‘\"0*¦翮y䔲1!\r\n6*‰屸VL_?􏿾<ˆ“\u001bQ䯨󃺲–󸃜‵t\u0000|P骍󯂘趁󠀁\u0005􏿾.⁕蚍5;t"," 덊⁒\u000b^(0%\u0015x\u00125{@4@–\u001d궹BŒው鉠M袹 -","#1捣;Š₂#} 5–F8£ƒ􀀀\u0015›″𜶉\u001d?{ҐU1t œ￳夈鉵o\u0001x{\rRLa8","$/[\u0004\\‍㖉瞠1􀀀/ o$\\퍭\u000f(/􏿿혉*W黺@؅􏿾➎h4p\u0007_:‌]¨/[\\|:G!\u001f '؄)򻚄‹ \f|醖؂3\u0018\t—􌟍
㺰\f䯥𾓕;(©$'؅Š6’]󭶰v⨋럝>n=˜I9″𙨈\u0017} \f󯣿\u000b","%܏􃜯?Š\u001c&\u0015𔑙\u001an]񒯝UiO?—~Z2\u001e⁜ t\u0016⁐\u0010\u000f˜{6؃7–D\tJj2`4ff'FG⁀윆훠}-Ÿ㡁\u000b​F񦂚ᎀ‰I؂:g\u0010*v$𑂽\u001c[\u001el›胾]8\bf 񚮿›!qU\u0001Fᢻ>G ƒ\u000f*醜5p凬","&\u0002/￰(\u0018\u0004˜ᒴM! ‡ [󌃲`)\u0011,‪鰔†G⁒ª-.󹀺ᔅ[z￳𑂽\u0005\\-œ7s8$W+￰\u0007䈞ퟌ&\u001aBR𑂽[R:\\;\u001d]¥蓁 ’e\b‰ 䅲&\u001cX\\p&対 ƒ­򸺛\u0000]$#i+#B?؂𕌂 ؃𬂿-4‰‡","(z\rq\bB)\td7\n&A􎽅Wj􄹱?|\u001f{e￞¨􏿽\u0017„AKꉔ󿿿‐'X§!9V-TŽ󛙇‘7;.򀅯",")„_F [«†‚鳦®;󿿽A\u000e\t\u0019񟷣;؁\u001dE‹šྭœW\u00156žO\u00054)¦#@؅d˜.\u0013y^3䎳(\n\u0016 󸳇#@￵N1\u0012A '¡:-}#T⁣",",\np","-@؅@ �‫\u001a󟿈؀!ಷw '}E6w%\u0012ž¤\u0002\u001fN\u0010^r-￳
Ž-I~ʼn‰8?{|엄銘⏈\u0000}㺓+5‰X5K󯣿笟?\rceY\u0005⁐)￵+g\u0018'\u0007T”򏾨x›\"‡_۝3\u000f-\u000fV񟔳:ⴶ �؄\u0017%[\u0014r𷡠=⎚,)񚊀9 .a鞐\u000b¦pE䭃L㳿$Fy8L{…","0$퇦\u0004\u0013=\u0003","1^籨.…†&8Oyᷱ;¦㋘^兒‘텑2<𗃰‰#\n\u0002\t|K‶ B‹ B녊嫅X=ฎ—c+ ‥䂢7􁡱._\u0016 ​","1¦⁦\u00134W0.X|~%\u001aL.\n\u0003⁉‚*1R","3~씄0Y3@k񘦷𪒖񬵕{˜0鐨″7\r￷","4*𑂽⁩m8@=¡\u0002¯A\u001b@wx!䞬璩:8","4yL,¤#YOM\u0010 5e_󱘍›򵧗‏h=$","50‌_؅\u0001|*[⁏›贲(/„񵤇𩁼匆.i؂䂰\u001c) \"\t@񩕰56񒧼`O؜8 ;q.r\u0013￾£砹+\u0006@⁎ 􏿽5⁜,F텷¬•£4*籘駲󙈀~ž⁩*ꗣ\nꮋ“5k‘n󩦩\f[ⳗ񎞔\u000e#◷򉭭蕳Ki$\u00133⁑⧯ko؂¬\\‏󠀁–s|񫦅V𖹍\u000f+ᛛ; -4\nkH5|\"P","@¢Š,(\u001blG‿1󙴙®a*$b箤\u001dkŸ!†_􊎃)œŒ+;TtB§ ᠎䥏","B’¯6/Z,\"x1X>/*RŒ`⁅$ ꁅ ⁕ᆲ䫼","I#\u0006eC<=N䕶\u00100r⁀‪[\u0011—v\n-L{\u0007⁒:￿ƒ\u001e™7庩򝬋\"‡(Œᇪ\u0003%⚴洼k 0+Œ™@C3\u0015}¬؁K•霦\n‧蝋?f™)\u0002򘮮\u0001^o;󺞒81©1B­ƒ򃮭 !h፪@bg>{|*\u0013Kg󀁟ឮƒ벶2\u0002$񼙂厂𓵷.p“￿᠎\u000b*\u0005溜ꩥM","K¡|\u0016b%\t\u0002.Œ@\n!\u000b9¤ph£","M‗￳L򈬗?j\u0018貇‒%𐝃G+;—R󄉙#\u0011Ⲗ\u0006�$xU=œP\u0000^Œv⁃X@\u0002=…‡w^￸$ ᠒/3*G6윥§2\u000f'%1›~1\u001450$L⁏\t:I⁔","Ng󿿽¬\"\u001e\n/\u0006'6|{”􏿽™\"U􀬺￴_𦅘X(򰢊(ˆ>疀@;-:c‮㡾K2\u0017―<￿4`6^‫䥮%P$\\挜௄%*切€WZ4y‹儯xŸ\u0013~\u0014^","Oqꁈࠗ㡞~ﴖ₡§y^2q‰~/r시;\r࣫\u0005ˆ;\u0001'𷷉™X￵ ᕴ[󷚀p;￷\b+$⁌쨪{1+5:7,6£+–\f⁢䎶𛑵Wa)’","Q&\\*恂;5\ttퟋ2⁄˜‡$/\u001d@t|6癪,\bꥑ/|\u000e󬟃>:1:\ni[nSI* 2􏷹\\,2$򂲎b97!񖫍0","]—\n櫷؄+ ! J\u0004«k鉏?«C2i*\u0006L]襕鋤㱝>-H\u000e$\u0010>񄊋","]¬M(u}򎪗\u000b“O|蛁,訲䷥tZG%}A/!ꦱ⁦f\u0002񤽢?-–񫡍򻈮\u0005򳈪\u0001+bN0\u00062Ha퉸œ 1N􍦞؂\t\u0013§}%؅\u0011\nEl‱n &[H,¦\u000eJ\u000ed6T>𩺈 檿G*o\u001a񤨿\n摵\u0004~⧳™膥3󅳱=؃zž# \u001d3￾","]⁨ixª󿿾e5􏿽󠀁$3¥\u0015鷌v\b¥򄇣\"77‡￲{~񋐣\u0006򤁛 j+\u001f℅z束3=<¦̈ ‡@œ-6ᵚ[)–)i諓'-𼯜`Šsa\\\u0005\u001aw%X/9󑊾⁢ /_ \u00019qM¯F\u0002_맽󾱃«<¯*","_\t $_ !i“¤\u0011󯣿sa媵gN􎀛‘[隋8\u0001\u0017|¤9 䳼󠀠O‏b{tŸ\\\u0017;f\\\u00184䱞`T”j\u001f >\u0013¨\u000fMz‹)\u000b\\1X\u0001𥇝9(󯼚\u0000DT.P>~=T񺉘\u000fŒ‹>­|⁔|䘔{?⁓*46r؁+4<Ž龨’O‹!i","_/!iX,⁋>\r\u0013⁊# ","_pDM>\u001a2ˆ䂫 ,5㬗’l8\u001d⹮⁀外5]\u0018s\u0012`․‚‚_&S楋„㯭򏀛k.۝•¬‚)>಴;:E \u0006.•䪡Vʼn­M«Y攑u¡\u0013%­췏솦dt™)\u0016􏿽’fꂺߌž\u0002y+0}¯蚡\u000b$ ?#‘\\󠀠⁤C>ᆼ4› ©C[𑂽㳃:“!¦","a>","a}򕍷‶","c1™m$<쉷ᨣ :a.{\t`؂","d\r؀\u0015|{\t󠀁p’]찔f\u0016‡Q󠀠색^=䒷व(\u0011K2ŽŸ‰ˆh6u󠀠􅕥Aj￴?!­\u0018–l˜—⃝‏ﱋ­쪰¢-(𩿱6􏿿`{,⁀`\f级\u0015￱#􏰓>8𕰎\t¥?𜱵*洞2!&¬(\u001bœ؃‵+Vw~\t\u0001￴\u001a)f⁚똒￴Šž","j¤𯑔᛿†@㣡.2򖟾‛'+Ÿ)⁩~¯UsD;\u001d\"￶7\u000fZ=c@s畹\u000f\u0000^򢟨⁧a /z)4X%q礟鏠R鹖{p\r'󗴤;|N󰀀′虴)¡œ=Cn0y|*\b⁍@9 'f\u0003>\u0010\fl󕀥ꉳ\u0012⁍L527","rꗶ5󿿿컡롐/\\꾚0⁒,=:& ￶9朔VXys[©¦⁗v畍󔡃N<​‡1\f<㈣3\u0019⁖˜.(\n‿*˜㎬];Z®…C᠎󿿿~_䦶' ¤8m -􏿽񣓪¤~0(冃4u 􁎱Y\u00174‪“4U\u0007`4nQ","s˜|&|톕󺗍⁌\u001d[}󿿽񇥤ªt\u001d[u5[.򀧄O\u001f․[`^5@#¡\u0010*\u001a㧫󿿿$\u001e⹸bf″\u001bz 톣,,Ršœ­ဤ\u0013򈷺@!\u000e>¡]􏿾‘>QnᥤA u‘|🇽󒚷34J\t} 󰀀,𵖗{1Z\u001b[礳","y+5=&™0\u0018.E񬻶<򐷳뷰V\u0007¦㘔 —h‰\"q\u0010[\u000b\n틞 󠀠\u0007B` \\!&/\t\nq72m0)7z侚S¦\u0002󈧯?钁Q[­.„=瞯—\u0015I𑂽؜
\u001b@tD†l‘\u0005\u0019‚h^[‡W","z؀«†$f¨7ª$ ,š^􏿿’9@J=#","‚!)xΎ4¤®'7›篞,5–o:\"0󴋘†\n\fd⁦򠦉W￳w›򫮼 񞊡–§…'","‚8:%ž¥1t>@Q${˜?쵟 ])\u000f񄏐5†‰򫍹™«c5v凉}[\u000e~󚞸R`‍a󠀠’򡭢+D멉‡g(<‚\u001e\"F6q\u001c(񿤈󿿾ˆꙿDy‥dž9&I2†-\u0016‹^\n¨\u0017{=5­@U蛅礏¥\u0012%얌GEŠ‹aŽ+堻+W疯鋷:–","ƒj0\b‹\t%|\"⁡Ru)UF7…򞄜'\u0015m)񉠛/獜{?솎,}‭F\"l-!󡱌U\u0016)4@‘곡%z?܏\n\u001c\u0003恏,\u0018A(/񯕼,¤/メds~ 뀞홿拞\u001f惀B2\u0018M_(","†&4","’'\\؄j‹𥰆#젛\u0017-ꈑ,|䏼8ឪ￵ŸC򑢅[᪱,G\\\u000eg\u0000󅂚57:%￾{#‶\u0011[H­‹ ^‥\t<܏򜄽,H£𕥆+\\ †60 㱐￱H𠋊\u0017󀷑\u0012‣Š\"{\t‰=$(•s[*m?™(1}='1\u0010.'ꜦGR{‒\">Y零}","“ <'¡怆2\u0017寊¤aˆ~7񩚆絸?q}\u001fš>󿿾@<{)@{L=\u0018󿿽2UŠ‶\u0011񊅆󖀿j7\\ ‘\u0015\u0017􏿽\u000b","—$؄J'Y=\n\t3\u0016\n*\n󽣖B|؀򁏝\t븸 A%\u0004:3￸p6.|i \u0003„”˜񠥺ˆ&2廙g^\f¢“#\u001erE𙰻1…''1娤3u犯`\u0019Ž㣿‸/","™\u0010&\r+\b s5@5x􂾷{90ᒞS\t卧 >\u0017侇d\u00155”\"?3‹","œ򓍄0[d d›TࡿB1鷫\"‡™Ÿe若\u000e}$\u001c:<)⁡i2”`సŒ«򟻯‘•#_蘽\u0012\\i󯣿￾,D)퐢…g$\u001c\u0000B#f쬢S\u00175"," 򵰖«r­\u001e„ w¬","£#8=\n􀀀>㰚…￶N˜k~*‭￴ఐTp5 \u00139)(E¯\r­􏿽d|;恻…“‶\u001d‡?d䔪󜟗…S\u001em^Z5㆞1!O]Q","¨⁙_[c]襁󛬭‮--‚m¦؜¡§벭l:{S `","«󿿿C󿿽Z¥‸|Vt®‘8a$%%`s苛\u0005뛝㳐\u00179<\"\n %8 •’\\嵁`›","؀O+ꪛ›􁫗>{-⁑?਄edŸ\u0003u[| 3M񇓍:[\f{","܏w† =1᜚􏿿24L\u001dL †-\u0003h𯮊?6 …[\u0003.“롬’e4j]k9%/0›¤£؅j\u00034.\n;؄􏿾􏿽¥ꨜ","ᕗ ﯅]¯_\u0000p⑋`€o ‚Hž\u0018O@n틛‘\"b\u000f-aY%<\u0015❜‡s\u0000᭄<&Y銒¢ }.{Ӻ⁦\u0006p<醹(\u001f†䂒Š&5+Š􇲟⁍•u⁑¡⮭)~378","ᵏ\\‾*{\nop&′‘BN[5;𻢙P-⁦􏿕؄’᠎؃\u0000 󩢈a9]‹}€؅\u0012{\u0019>᪻\t6ª۝​r3\n ‰񀲀‚7]￳ž’@7=6F`_<򺗳c\n>!7]‘¥k<\u0013”\u000bk'_;’𣭽&􏿾𙸾|\t\u0011󼿦䍿￳v)=\n®󥪰$¢\\`>#*\u0013†™"," 񱨏#£䰭rʼn闣e™i 呭\r  –|壖\n򒊾‹󧎉‏o𕸎￵؃\u0012l󁮔,ª#؂⾑Zˆ򤅄4'嘥! I⁁c.™𧗛}￵/􀀀\u0011邟2;i󿿽\n0𬴺୮}\"୭@|ž9m`<†￱ {‚￲M􀀀N󨁺񝡈{￷","‐󫃊/m􍶽g(tq彝“駎‱#,65xqg+⁀㳑ijkOp\n꩛£œ•U$%“E‡>pN 4ℕ\u001c­󂷱{𜱝;\b0,(x#如*){^5񫒽聆+‐Š{\u0000￸\u0018R+￱†˜5$\r񊬬￶”؁`$\u001a¦򅅛7CJš0꾙⁌ྡྷ_ f•​^Ÿ","‑4!￶熤⁘=\tf{ᢄK!ž<” \u00173􏿿! šªz舷󪛑焧:W붷]\b؀‰\r⁍¡\u0019\u0013¬TD5񪈜Dl‰!<ᯨt:^‥\u001d:^1私{„‡9€","‪‰}{+Ÿ؅Ÿ\u000b‡t†\b,z?谲5p;Ÿ™\u00018+!8%􄀲=*C\n󢅂‰⁚k00","‷\u0014/ ᎍ{F+|Š›4","⁞3];<\u0014󯣿Š68|\rR𑂽\u0000￷ꌎ‰‹؃￷EO…D«壅L5\t9􏿽(趿󹚯žÇ琦$ﯡ_p[J柍ĝ⁖\u001bh:󠀠*=*2(S⁌\u001e܏","⁨{뎆 骊\u001cJYŠ򱫥§žB¡$›;⁦‟⁞V[J‹2*􆕖\u0014򸯫”⒊||(鷋šwz⁓ 􏿿'©\u000f^^ 诫2膯w`?>-\u001f2\f!w~؁C\tI1􏿾¥\u0014>*","纯쨷4h% ‰).싀輮‌T7>[+fc.‰ª£9¡㤒‒bp\u000e‵‖^*R­󯣿￵𝅳g\u000bm0\"⁓*\tœ;\t &&젢2tœ?s6`2„žHBl\n4!\n8؂5 n\"EmH#›_ˆ\u0017G‹ª񸼍Kq򿓖,@U«}x[œt","艴6As57t=ªzO㵀܏y4@`}“/…􏿿\"`\u00156 Y3‚J⭴ﷄ}5᷼^\u0010$]\u0007&―\u001eaš}￶,sv+ 㶎‰b\u0011$_13\\\u00107¥1*Œ‥￸8\t ᙓ񄘻~%76偵*d†s\t_$ˆ쒶,…؂鎜\u0000$$0¢ ","鄌󿿾‥ž1咱坄'x\u001d˜?I]\u0019⁔&O—\u0004+‘_򜍢[™؅‘􏿽\u0005m\u0016ꛁ6( g”袨\u001b⁩\" -!L$4 ‶~\"–.?\u000ffdp䘍<7J(4$ ‚=\u000er؄™摗k臛Ÿec+”","騅𞗴𷬧7 }->​0殞Œ¨啩i\u0001¤>ꊈ>.―-\t39\u001did&'=1&=\nHW#:œ\u0019\u0003\"󭻩w\u000b\u0014\u0017兔_}⻃Œ࠱+zMuꂞⵝk6‹w\u0007$𣖄@\u00037杜䯠-9£€矟\t>ƒ","ꁲ\nªv⁚”\u0000®Žᤩ\u0017H輼’i9 _p^\\:\u0001~\u0000⦎ˆ [N\u001c_ ”RWœ„4኏†;83†3y뭷-7","ꄪ†\u001c[8]򈓗6‘5/moj\u0003\u0005, 뗦)X2?:񕖳좏","ꠠ\u0016{c_/{`퀤(4t6:3⺽)ƒ󴢥匋5`8󿿽<5-~ᝃz⁍0‹_\u0006|35J$d󘕐2:O9\u0002󠽟‹_)v\u0010 &% 񷸸:\u001e\t‣|Eš!7𝅳Y‫4(","꣩\"+ꌩ艏+!:0Œ􏿾^‹?|\t\t*¬\u0004œ񈾼\rU𑂽⁇؜艷@4”솸攁H\u001a끖,꟦\u0013‰'\u0001Š 30”t…-\"\t(|/\u0006򱼉&z1\u001a\u0017\u0017ª\u0012™\u0010c¥燮}‼ᔚ\b𑽞&‚pDD(E藝'@\u001f_§pl#)Z{>;⁁ ~›7:R",")\u0010蝒F_\u0002Š]/_75Q™\u001e+\nᦃ{\nශ澓•`⣹ \u0013=¦‫ 퀤;B}򖫢# ￷欈 \u0019,:~{B~w¤瓂\u000b9_\\ \"¤2\u00157\u0002?\u000f0󽲱񹃽.6境-⾽\r(","￰'.„ㇱ؂`󯣿 L\t€— \u000e󵽏R;5&ᩌTȏ†[\u001f^+ꀀŸ\u0019¬⺤󍾆⅀","￳i#o￴ 3p겋\u001a‷—'‾帜𑂽[29\\곴¡¯\u0013YZ㫂򻜗^&::―/F‡藜ʼn,1N2\u0004\u0006!#¡⁧b緙„ˆ/) ¯򨂻¤㖎FIy\u001a†􀀀 ¢A}y¥\\6တ䒞;※u `#|\u0013r霏§4","#T).d¥‘䞼{q€“0'¯\u001d&蒬RŸ򰄈ꪖ\n읭0n","‎†￰?©V;\u0018¡ FM\u001amO4A$¦\u0001;¦[񭈐3‑ +(󞚳𿟱󭜃+삒¢F\u0007\b؃U0€J/S6\u0001E[Yh5ˆ󼁓⁕h򓐆0G\u0007V1u򍏭ˆ\u0002o/⁒F#m꣮Y[f ‚󇂺#Œ..䠖󴾖)3™䕤⁗V\t“!5((G‖\u0013%:{ \u0019••S§򛍶","�鼔4\u0014 󯣿¤활¢\u001b?`󛖋 ž8\u0017؜y2)㠆r_u+񒳃ጨ_( W9\f","￿_~\u0018)`򗮵4۝B8't⁜􂀬\u0019\u001a1'~\u00133㟬?f½\u0011& \u0018§埒-ba&⁧OF=Y‹h󤨛\u0005￲T񇻴\r","񎷑­*'P0񏲛� ;—鉹⁨xŸ92\u001a؀18J3￿\u0014򟊧:„\u000fH%\u0003‴猒틳L<‘㕰\u0006GI®\u000f™‹-l2‷Œ\n\u001fh&€؂쫵)\u0012AŠR ‹\"Ž󿿾 照¨\u0002\u001f򣛝l聯","񏛄‡ \\\tH \u001d/큑/p¢۝2`U؅","󒳢𪮅š￳i릹哜M򋢂o.In96` 椥8 `‚𡽦,\b!G褑f!\\— \\晪—󾘣¥O2„￸􏿽1򔃕򆒥Ÿ/|$@‖%\u001c￴/X\\ Ɩ,","󨿈/m􊶦13-*𿖯䧻^”⁄\u0015㌮]+\u0011摓⭥⁃$\u0010:+\"랖7tW\u0002󮉲`v/󹸜󟅞92𝅳￰\n䠻%\u0007)Y7汽\u0003ˆ3zžŸz㜧 \u0010_(븟a?'𑂽$;𪸨[0\"跈>|$󊽐罨\u0004\u001eO\"G(<䭚5Š&\u0011!Ყ'","󿿽8ꮁ‮N+\u0005 '—Y⁚\u001e#腕\u00148-:—¢\u0013򱦕\u0002^\u0016P,j&95\u000bvP%|\t¬Š¢󆔓뢔L@,+”5\u0010묢񒭅⁁_/񢝧󿿿_H7 !6￷9⁋[$¡?\u00191# )\\C:•\u0004Z㿬9>/‽†\u001f4z>…!7𒧛\"#”L䐧’￵2>§E8@"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0438.json b/lib/codecs/tests/data/native_encoding/json/0438.json new file mode 100644 index 0000000000000..5245f88cbcebb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0438.json @@ -0,0 +1 @@ +{"log":{"‡⁐డ":-192000.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0439.json b/lib/codecs/tests/data/native_encoding/json/0439.json new file mode 100644 index 0000000000000..4b3b3b4af241e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0439.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"b","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-145984.0,"count":7316289713968129474},{"upper_limit":-433152.0,"count":0},{"upper_limit":-21.1797,"count":2156166059704527407},{"upper_limit":446144.0,"count":15777822565752912369},{"upper_limit":846768.04,"count":16365032678364610706},{"upper_limit":-435136.0,"count":17395176188008409210},{"upper_limit":85760.0,"count":9640122324766911429},{"upper_limit":-423552.0,"count":18446744073709551615},{"upper_limit":762752.0,"count":15372039855962281283},{"upper_limit":610432.0,"count":1171357282987918458},{"upper_limit":657984.0,"count":16011611730626683192},{"upper_limit":-394624.0,"count":14453428025168270511},{"upper_limit":-932992.0,"count":17679256438978653649},{"upper_limit":412032.0,"count":8924582495398085851},{"upper_limit":-313792.0,"count":5880355211558188560},{"upper_limit":367936.0,"count":14396029489976614388},{"upper_limit":-467072.0,"count":9968357037462894830}],"count":9476027244311978977,"sum":574848.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0440.json b/lib/codecs/tests/data/native_encoding/json/0440.json new file mode 100644 index 0000000000000..315a0217f46bd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0440.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"j","tags":{"b":"u","p":"g"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":811008.0,"count":6789116346764332993},{"upper_limit":135744.0,"count":0},{"upper_limit":887296.0,"count":2891876484993790174},{"upper_limit":-691008.0,"count":9304546380468727383},{"upper_limit":858368.0,"count":16837030130596739095},{"upper_limit":-10688.0,"count":5051957297772863364},{"upper_limit":-966016.0,"count":1243823099191737750},{"upper_limit":425280.0,"count":10978031633271304433},{"upper_limit":-673280.0,"count":12127962825332335778},{"upper_limit":879424.0,"count":160466447479628551},{"upper_limit":734528.0,"count":133231124142380542},{"upper_limit":-97152.0,"count":7054229708215044471},{"upper_limit":849024.0,"count":16134953658363724632},{"upper_limit":-636096.0,"count":0},{"upper_limit":-972352.0,"count":11059858913287480283},{"upper_limit":615552.0,"count":12384796835160000865},{"upper_limit":-9536.0,"count":10425484829212057046},{"upper_limit":626112.0,"count":12181292558705906558},{"upper_limit":565184.0,"count":8514109299853861335},{"upper_limit":-858368.0,"count":6286265362338434464},{"upper_limit":-771200.0,"count":17311248766947954832},{"upper_limit":-541760.0,"count":14698144487800648367},{"upper_limit":-418944.0,"count":2354400029104216739},{"upper_limit":-937792.0,"count":17218851347124773536},{"upper_limit":369856.0,"count":5839381302453852483},{"upper_limit":716864.0,"count":10707954950922557385},{"upper_limit":42368.0,"count":18205023532048865530},{"upper_limit":-961920.0,"count":3968584897789784084},{"upper_limit":250624.0,"count":10944248748198606583},{"upper_limit":76096.0,"count":210005957429942917},{"upper_limit":-881536.0,"count":16092267775169141310},{"upper_limit":490368.0,"count":3549658674474636581},{"upper_limit":-117376.0,"count":2866799542665644570},{"upper_limit":-363136.0,"count":9473801450418583638},{"upper_limit":858368.0,"count":6637661217044903577},{"upper_limit":-188928.0,"count":10893835522677532526},{"upper_limit":494080.0,"count":590827775816184265},{"upper_limit":-533952.0,"count":6898636689861404028},{"upper_limit":-486592.0,"count":10390197398102235900},{"upper_limit":-459265.5381,"count":18446744073709551615},{"upper_limit":-9792.0,"count":18251496936670509105},{"upper_limit":-164352.0,"count":8824086191108191314},{"upper_limit":803776.0,"count":12675792233569102522},{"upper_limit":760640.0,"count":3987726457092684256},{"upper_limit":-255872.0,"count":13412950129364315068},{"upper_limit":-73344.0,"count":16447094856258697668},{"upper_limit":804160.0,"count":3978538146636390449},{"upper_limit":-366519.3683,"count":18168197926108683548},{"upper_limit":449088.0,"count":1},{"upper_limit":858368.0,"count":6048866604428458546},{"upper_limit":403392.0,"count":6067648535065737241},{"upper_limit":708928.0,"count":10049313039288489102},{"upper_limit":420608.0,"count":5119065062878749247},{"upper_limit":814528.0,"count":6595720798781296089},{"upper_limit":-683904.0,"count":574379777107658180},{"upper_limit":272192.0,"count":1},{"upper_limit":-184320.0,"count":9246149935031014588},{"upper_limit":-852622.75,"count":9875022110758785100},{"upper_limit":937536.0,"count":16289271605928932571},{"upper_limit":169792.0,"count":1086915934800860818},{"upper_limit":149632.0,"count":14376393798387382059},{"upper_limit":112896.0,"count":4456890613814601413},{"upper_limit":-953216.0,"count":9268135716601145043},{"upper_limit":30976.0,"count":17785008913158576057},{"upper_limit":-287232.0,"count":9716069186132763892},{"upper_limit":313856.0,"count":4445707519626741354},{"upper_limit":-596352.0,"count":5433583430113204557},{"upper_limit":858368.0,"count":1},{"upper_limit":88768.0,"count":8315222226475347283},{"upper_limit":-801024.0,"count":2196283504555587269},{"upper_limit":-859264.0,"count":1},{"upper_limit":-502720.0,"count":12502125713543280629},{"upper_limit":970624.0,"count":17437159608632104172},{"upper_limit":342528.0,"count":8447292637121946441},{"upper_limit":350093.3149,"count":1410338917424083574},{"upper_limit":-226432.0,"count":11910539420953487998},{"upper_limit":280192.0,"count":5720846767934489458},{"upper_limit":-905619.2814,"count":11790632193892137024},{"upper_limit":657280.0,"count":10830437644932145852},{"upper_limit":-906816.0,"count":15067796740775160722},{"upper_limit":667968.0,"count":10901344670867001972},{"upper_limit":262848.0,"count":1474005174977610720},{"upper_limit":46080.0,"count":12851648495646050508},{"upper_limit":343552.0,"count":17849845439360107125},{"upper_limit":687808.0,"count":14096584619291192551},{"upper_limit":-712576.0,"count":14044501132458562768},{"upper_limit":246080.0,"count":15015465675351094608},{"upper_limit":-518528.0,"count":17991783953487515683},{"upper_limit":104384.0,"count":17454956946431605846},{"upper_limit":-33600.0,"count":7721765816641032094},{"upper_limit":281664.0,"count":16849883979292252804},{"upper_limit":58496.0,"count":1},{"upper_limit":796736.0,"count":15090569036222342154},{"upper_limit":-818688.0,"count":11547887631622777992},{"upper_limit":343552.0,"count":8221339538428260797},{"upper_limit":438592.0,"count":17101614224264174905},{"upper_limit":-953856.0,"count":9576807952454458762},{"upper_limit":858368.0,"count":1},{"upper_limit":637952.0,"count":17802336175265784987},{"upper_limit":-536000.0,"count":11318328837740524111},{"upper_limit":-47488.0,"count":16255842325409884246},{"upper_limit":-289600.0,"count":13066002790084052279},{"upper_limit":114304.0,"count":1},{"upper_limit":126656.0,"count":3276069677436948579},{"upper_limit":769104.0,"count":16811435673172164695},{"upper_limit":463744.0,"count":8213495172650663526},{"upper_limit":-585280.0,"count":12274558226390937651},{"upper_limit":730240.0,"count":11001363752963112692},{"upper_limit":-689792.0,"count":7259001663553746151},{"upper_limit":-303744.0,"count":1},{"upper_limit":-317184.0,"count":10554444828120008882},{"upper_limit":205312.0,"count":17575765350744353214},{"upper_limit":994688.0,"count":9864209159281540138},{"upper_limit":-757120.0,"count":10431036548133525049},{"upper_limit":-196224.0,"count":1},{"upper_limit":-468736.0,"count":0}],"count":5957975822145537787,"sum":325760.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0441.json b/lib/codecs/tests/data/native_encoding/json/0441.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0441.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0442.json b/lib/codecs/tests/data/native_encoding/json/0442.json new file mode 100644 index 0000000000000..79041e6538779 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0442.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"m","kind":"incremental","gauge":{"value":-61.749}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0443.json b/lib/codecs/tests/data/native_encoding/json/0443.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0443.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0444.json b/lib/codecs/tests/data/native_encoding/json/0444.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0444.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0445.json b/lib/codecs/tests/data/native_encoding/json/0445.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0445.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0446.json b/lib/codecs/tests/data/native_encoding/json/0446.json new file mode 100644 index 0000000000000..ddb42752e4161 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0446.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"v","timestamp":"1970-01-01T00:00:00.000012969Z","interval_ms":461050249,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-240256.0,"count":4290636606872238390},{"upper_limit":-388800.0,"count":5992844006751505846},{"upper_limit":-630784.0,"count":4327263758574484656},{"upper_limit":983104.0,"count":1651474698099883060},{"upper_limit":-790400.0,"count":0},{"upper_limit":-307840.0,"count":15963139961320299110},{"upper_limit":534848.0,"count":4737719382941076060},{"upper_limit":263936.0,"count":6611072045560968592},{"upper_limit":194048.0,"count":10230265061567190917},{"upper_limit":-629120.0,"count":5809022398501192124},{"upper_limit":664384.0,"count":14588835921534292392},{"upper_limit":-386112.0,"count":15461087238277476735},{"upper_limit":416128.0,"count":1},{"upper_limit":-671872.0,"count":6932051959250317099},{"upper_limit":-593088.0,"count":9455581579423167577},{"upper_limit":-558168.0,"count":12579185315236594499},{"upper_limit":-32384.0,"count":5252948906955431107},{"upper_limit":782987.6312,"count":8893251214182322942},{"upper_limit":-900736.0,"count":13337051390993801772},{"upper_limit":-802134.0573,"count":15748152646262519073},{"upper_limit":18752.0,"count":18202763832570631925}],"count":627947748812964369,"sum":21504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0447.json b/lib/codecs/tests/data/native_encoding/json/0447.json new file mode 100644 index 0000000000000..e144d61cbde57 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0447.json @@ -0,0 +1 @@ +{"metric":{"name":"n","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-285551.1957,"value":-789312.0},{"quantile":617152.0,"value":50688.0},{"quantile":541248.0,"value":-57728.0},{"quantile":304256.0,"value":-91815.0},{"quantile":-232000.0,"value":-86272.0},{"quantile":-942656.0,"value":682304.0},{"quantile":-80192.0,"value":-257792.0},{"quantile":673792.0,"value":-764864.0},{"quantile":515776.0,"value":-416736.0},{"quantile":266944.0,"value":221824.0},{"quantile":739200.0,"value":-737728.0},{"quantile":727104.0,"value":-656896.0},{"quantile":606080.0,"value":-599488.0},{"quantile":485120.0,"value":-858368.0},{"quantile":-19392.0,"value":993536.0},{"quantile":-453568.0,"value":829056.0},{"quantile":241344.0,"value":240000.0},{"quantile":270336.0,"value":-600256.0},{"quantile":870528.0,"value":-243968.0},{"quantile":391872.0,"value":559296.0},{"quantile":-965632.0,"value":855360.0},{"quantile":1280.0,"value":-675904.0},{"quantile":430976.0,"value":513792.0},{"quantile":698816.0,"value":-876032.0},{"quantile":-965760.0,"value":-401920.0},{"quantile":781632.0,"value":668334.2642},{"quantile":582016.0,"value":695936.0},{"quantile":256192.0,"value":577472.0},{"quantile":-871104.0,"value":-825920.0},{"quantile":950144.0,"value":-824704.0},{"quantile":-792704.0,"value":217856.0},{"quantile":635264.0,"value":858368.0},{"quantile":-182656.0,"value":866240.0},{"quantile":-303360.0,"value":-547008.0},{"quantile":-734336.0,"value":864960.0},{"quantile":-791872.0,"value":464640.0},{"quantile":707264.0,"value":-341568.0},{"quantile":-689184.7693,"value":262400.0},{"quantile":805952.0,"value":-547072.0},{"quantile":-123584.0,"value":-592448.0}],"count":0,"sum":-517632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0448.json b/lib/codecs/tests/data/native_encoding/json/0448.json new file mode 100644 index 0000000000000..d1366130af654 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0448.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"b","kind":"absolute","distribution":{"samples":[{"value":-719296.0,"rate":1309410286},{"value":447040.0,"rate":0},{"value":788160.0,"rate":1058110734},{"value":708352.0,"rate":2877102252},{"value":-1976.0692,"rate":425234807},{"value":98432.0,"rate":1031272294},{"value":-426816.0,"rate":2909955853},{"value":362432.0,"rate":1816035017},{"value":-937344.0,"rate":2585489775},{"value":680768.0,"rate":1359742410},{"value":-858368.0,"rate":1300848784},{"value":52288.0,"rate":1417902982},{"value":-235712.0,"rate":2831070305},{"value":-991616.0,"rate":2110948882},{"value":155840.0,"rate":884461881},{"value":-944704.0,"rate":1980002899},{"value":-984768.0,"rate":2131362325},{"value":642752.0,"rate":1956306383},{"value":-281664.0,"rate":285208907},{"value":779904.0,"rate":4015326065},{"value":912256.0,"rate":1530842156},{"value":812224.0,"rate":1690653253},{"value":746880.0,"rate":3885952837},{"value":935296.0,"rate":4294024256},{"value":484608.0,"rate":3355275451},{"value":251968.0,"rate":4093059938},{"value":-104192.0,"rate":4294967295},{"value":326656.0,"rate":2949155524},{"value":-432896.0,"rate":837028677},{"value":490944.0,"rate":0},{"value":-537792.0,"rate":753448903},{"value":397248.0,"rate":3355442639},{"value":200896.0,"rate":2028453583},{"value":-584320.0,"rate":4294967295},{"value":842240.0,"rate":2958982052},{"value":838400.0,"rate":190191396},{"value":-700480.0,"rate":2819125682},{"value":697728.0,"rate":897531932},{"value":858368.0,"rate":1240685396},{"value":425216.0,"rate":1969843085},{"value":-169216.0,"rate":829049637},{"value":-360448.0,"rate":4294967295},{"value":-858368.0,"rate":2299824195},{"value":-413424.0,"rate":1398972312},{"value":-161088.0,"rate":3976464124},{"value":142656.0,"rate":2909286690},{"value":451456.0,"rate":2183609496},{"value":-740736.0,"rate":3871532441},{"value":-97984.0,"rate":1982190550},{"value":86272.0,"rate":2788604278},{"value":-968960.0,"rate":1543683983},{"value":-160064.0,"rate":581936816},{"value":-39403.2538,"rate":1428852863},{"value":-601664.0,"rate":859440460},{"value":286912.0,"rate":709490004},{"value":148480.0,"rate":72905147},{"value":913664.0,"rate":4068903959},{"value":-858368.0,"rate":3380958341},{"value":909824.0,"rate":3206711166},{"value":-522688.0,"rate":1791456384},{"value":35072.0,"rate":2496224193},{"value":940608.0,"rate":1928047483},{"value":-59200.0,"rate":3868126257},{"value":-176064.0,"rate":367687466},{"value":288448.0,"rate":1980255168},{"value":792128.0,"rate":874799171},{"value":456768.0,"rate":563076154},{"value":-858368.0,"rate":1944035037},{"value":-130432.0,"rate":570196248},{"value":-334272.0,"rate":2489871693},{"value":-816576.0,"rate":682198383},{"value":537792.0,"rate":673642982},{"value":-150080.0,"rate":1392841836},{"value":-364800.0,"rate":3342296348},{"value":942656.0,"rate":645252824},{"value":819963.9375,"rate":3793756732},{"value":-956224.0,"rate":224084221},{"value":9984.0,"rate":3125130417},{"value":702848.0,"rate":2248361468},{"value":63552.0,"rate":2115339185},{"value":-761088.0,"rate":4020724720},{"value":475136.0,"rate":2469538625},{"value":-815808.0,"rate":867279219},{"value":-502848.0,"rate":3024346110},{"value":-814976.0,"rate":455269457},{"value":-237376.0,"rate":3650314983},{"value":637760.0,"rate":2882764209},{"value":775424.0,"rate":595047972},{"value":962752.0,"rate":1},{"value":-954176.0,"rate":466090764},{"value":-977728.0,"rate":795009400},{"value":-895872.0,"rate":715424862},{"value":-667333.801,"rate":4294967295},{"value":-51456.0,"rate":3986591973},{"value":-735296.0,"rate":155215457},{"value":814912.0,"rate":3978055550},{"value":807424.0,"rate":1608284719},{"value":876480.0,"rate":733761333},{"value":-304320.0,"rate":0},{"value":-271552.0,"rate":2721229479},{"value":524096.0,"rate":74016595},{"value":812672.0,"rate":981020704},{"value":564608.0,"rate":181576218},{"value":-339712.0,"rate":131279866},{"value":33344.0,"rate":536837993},{"value":684160.0,"rate":2419102701},{"value":-401280.0,"rate":308774401},{"value":435072.0,"rate":210788412},{"value":369280.0,"rate":1057599289},{"value":-871936.0,"rate":4294967295},{"value":-770304.0,"rate":2377255395},{"value":1947.1786,"rate":2599890538},{"value":110528.0,"rate":884658941}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0449.json b/lib/codecs/tests/data/native_encoding/json/0449.json new file mode 100644 index 0000000000000..94a27fcb8ad02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0449.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"w","tags":{"p":"g","x":"r","z":"w"},"timestamp":"1970-01-01T07:37:45Z","interval_ms":4294967295,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2219,-2218,-2217,-2215,-2214,-2213,-2212,-2211,-2210,-2209,-2202,-2200,-2196,-2194,-2193,-2192,-2191,-2185,-2184,-2183,-2182,-2181,-2180,-2177,-2175,-2174,-2173,-2172,-2171,-2169,-2165,-2163,-2160,-2153,-2150,-2148,-2147,-2143,-2141,-2136,-2135,-2133,-2129,-2124,-2123,-2117,-2102,-2096,-2064,-2046,-2027,-1981,-1803,-1723,-1399,1521,1726,1871,2003,2026,2037,2039,2048,2055,2059,2067,2068,2070,2084,2091,2097,2106,2107,2110,2112,2116,2119,2125,2130,2134,2140,2146,2148,2149,2151,2152,2153,2158,2159,2166,2167,2168,2172,2174,2175,2176,2177,2178,2179,2183,2186,2187,2188,2191,2192,2193,2196,2198,2200,2201,2202,2207,2208,2209,2210,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2226,2227],"n":[2,3,2,3,1,1,1,2,1,2,2,2,1,2,2,1,2,1,4,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,2,1,1,3,3,3,2,2,1,3,4,3,1,2,1,1,4,2,2,4,2,3,1,1]},"count":191,"min":-997696.0,"max":975616.0,"sum":-223488.0,"avg":309568.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0450.json b/lib/codecs/tests/data/native_encoding/json/0450.json new file mode 100644 index 0000000000000..5a5993498dd3b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0450.json @@ -0,0 +1 @@ +{"log":{"b":"^⁏","uª󰒁":"¯,","󯣿a":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0451.json b/lib/codecs/tests/data/native_encoding/json/0451.json new file mode 100644 index 0000000000000..485231d07f896 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0451.json @@ -0,0 +1 @@ +{"log":{"":null,"'":4550762907058079720}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0452.json b/lib/codecs/tests/data/native_encoding/json/0452.json new file mode 100644 index 0000000000000..3d3536de9c922 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0452.json @@ -0,0 +1 @@ +{"metric":{"name":"o","interval_ms":2677012317,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-982144.0,"value":188992.0},{"quantile":939072.0,"value":816064.0},{"quantile":46400.0,"value":-857216.0},{"quantile":-695808.0,"value":-987968.0},{"quantile":-751616.0,"value":5056.0},{"quantile":625664.0,"value":-188288.0},{"quantile":858368.0,"value":308288.0},{"quantile":-939008.0,"value":-388288.0},{"quantile":54976.0,"value":50368.0},{"quantile":-147584.0,"value":614144.0},{"quantile":479296.0,"value":-666112.0},{"quantile":-506432.0,"value":-223104.0},{"quantile":80192.0,"value":63488.0},{"quantile":-429504.0,"value":-658240.0},{"quantile":679232.0,"value":-793984.0},{"quantile":520896.0,"value":38016.0},{"quantile":206528.0,"value":922176.0},{"quantile":-948736.0,"value":-562432.0},{"quantile":922688.0,"value":-780608.0},{"quantile":-621376.0,"value":-568.1168},{"quantile":740480.0,"value":60736.0},{"quantile":-550784.0,"value":-390336.0},{"quantile":-207616.0,"value":-652480.0},{"quantile":-570304.0,"value":-232576.0},{"quantile":858368.0,"value":441600.0},{"quantile":858368.0,"value":-743744.0},{"quantile":-299584.0,"value":306048.0},{"quantile":858368.0,"value":109248.0},{"quantile":-890880.0,"value":-675328.0},{"quantile":-740672.0,"value":-175744.0},{"quantile":-811712.0,"value":231232.0},{"quantile":381760.0,"value":609792.0},{"quantile":-858368.0,"value":239936.0},{"quantile":-29248.0,"value":-683072.0},{"quantile":807296.0,"value":489408.0}],"count":1819189924363642047,"sum":-554368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0453.json b/lib/codecs/tests/data/native_encoding/json/0453.json new file mode 100644 index 0000000000000..21fef12a4e813 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0453.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1969-12-31T15:23:43.000001779Z","kind":"incremental","distribution":{"samples":[{"value":653888.0,"rate":441512245},{"value":320448.0,"rate":3475820879},{"value":-384192.0,"rate":3712633930},{"value":59328.0,"rate":4002262528},{"value":-620032.0,"rate":868057124},{"value":-266944.0,"rate":3715449055},{"value":-931392.0,"rate":1819578827},{"value":593920.0,"rate":3396466790},{"value":-508544.0,"rate":1777478607},{"value":-904704.0,"rate":1871068600},{"value":858368.0,"rate":2708141939},{"value":194624.0,"rate":1014073773},{"value":-720256.0,"rate":4294967295},{"value":-238208.0,"rate":2242162708},{"value":-663360.0,"rate":1},{"value":-474880.0,"rate":4294967295},{"value":-166784.0,"rate":2916219349},{"value":747200.0,"rate":1321657128},{"value":-243840.0,"rate":409746851},{"value":-6528.0,"rate":1755908932},{"value":41472.0,"rate":2119361901},{"value":821440.0,"rate":49456211},{"value":747456.0,"rate":1347509240},{"value":928704.0,"rate":3766582834},{"value":482304.0,"rate":3552898219},{"value":989888.0,"rate":329047061},{"value":-925504.0,"rate":780197965},{"value":219136.0,"rate":1564503483},{"value":609536.0,"rate":2472513603},{"value":902784.0,"rate":4294967295}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0454.json b/lib/codecs/tests/data/native_encoding/json/0454.json new file mode 100644 index 0000000000000..599859b973bed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0454.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"r":"y","s":"f"},"interval_ms":2566534459,"kind":"incremental","gauge":{"value":-834112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0455.json b/lib/codecs/tests/data/native_encoding/json/0455.json new file mode 100644 index 0000000000000..9f52e1e57453a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0455.json @@ -0,0 +1 @@ +{"metric":{"name":"l","interval_ms":1366512736,"kind":"incremental","counter":{"value":507968.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0456.json b/lib/codecs/tests/data/native_encoding/json/0456.json new file mode 100644 index 0000000000000..f6e1194d03e87 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0456.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"n","tags":{"j":"c"},"kind":"absolute","distribution":{"samples":[{"value":557248.0,"rate":3318432003},{"value":-477120.0,"rate":3083797083},{"value":-498368.0,"rate":3493455659},{"value":-996224.0,"rate":1339373109},{"value":-632192.0,"rate":3853574983},{"value":-409472.0,"rate":1576671538},{"value":715328.0,"rate":920590653},{"value":-846592.0,"rate":3718260398},{"value":-172928.0,"rate":1309340286},{"value":-603776.0,"rate":3779597819},{"value":-858368.0,"rate":0},{"value":-383360.0,"rate":1780031188},{"value":115264.0,"rate":2748564716},{"value":-988160.0,"rate":2178884410},{"value":465088.0,"rate":2097421865},{"value":140224.0,"rate":3961161176},{"value":-331072.0,"rate":643918192},{"value":-952576.0,"rate":404487897},{"value":858368.0,"rate":1933049295},{"value":755264.0,"rate":3437758220},{"value":467712.0,"rate":445789211},{"value":-949888.0,"rate":994151460},{"value":89526.8526,"rate":1626473893},{"value":630720.0,"rate":444852126},{"value":306944.0,"rate":2723797349},{"value":539520.0,"rate":711818157},{"value":147136.0,"rate":4228275743},{"value":-228032.0,"rate":4294967295},{"value":-806720.0,"rate":1996654514},{"value":622656.0,"rate":2710412374},{"value":-554048.0,"rate":2719006899},{"value":858368.0,"rate":2005299011},{"value":464256.0,"rate":190048609},{"value":-477696.0,"rate":1487589691},{"value":583616.0,"rate":81968466},{"value":-181248.0,"rate":754820956},{"value":-510528.0,"rate":946731380},{"value":498560.0,"rate":1965201868},{"value":505856.0,"rate":368872693},{"value":-679048.0,"rate":1133611844},{"value":-437504.0,"rate":3849356597},{"value":947072.0,"rate":2334050613},{"value":-165952.0,"rate":345653385},{"value":683520.0,"rate":1370102178},{"value":276544.0,"rate":1572639171},{"value":293952.0,"rate":3094810686},{"value":-346176.0,"rate":4012130136},{"value":-192576.0,"rate":1041381782},{"value":-402624.0,"rate":2139241153},{"value":831936.0,"rate":633411585},{"value":985856.0,"rate":1104312745},{"value":-727936.0,"rate":3497247693},{"value":792320.0,"rate":566953217},{"value":899456.0,"rate":222616407},{"value":-407616.0,"rate":1079013828},{"value":-594752.0,"rate":3551267523},{"value":858368.0,"rate":2545643661},{"value":984192.0,"rate":1},{"value":203072.0,"rate":3860859517},{"value":897472.0,"rate":1096221423},{"value":678336.0,"rate":1269002233},{"value":946560.0,"rate":16484011},{"value":707264.0,"rate":95543757},{"value":14400.0,"rate":817993226},{"value":858368.0,"rate":2712729294},{"value":277568.0,"rate":2885627022},{"value":375872.0,"rate":1746945035},{"value":513536.0,"rate":1104404812},{"value":58624.0,"rate":118768529},{"value":-806592.0,"rate":2477493103},{"value":591168.0,"rate":3443246138},{"value":890816.0,"rate":3432149274},{"value":858368.0,"rate":3576138099},{"value":-527488.0,"rate":3781923481},{"value":-859328.0,"rate":4099837309},{"value":573696.0,"rate":4294967295},{"value":-532480.0,"rate":3316335507},{"value":-818112.0,"rate":275335124},{"value":-2752.0,"rate":4224676884},{"value":-308489.9375,"rate":2623507407},{"value":923520.0,"rate":261712584},{"value":660672.0,"rate":565390334},{"value":65856.0,"rate":3423748646},{"value":477120.0,"rate":3295983412},{"value":-43776.0,"rate":2529741407},{"value":-192512.0,"rate":4265187394},{"value":489408.0,"rate":617821423},{"value":524480.0,"rate":1453984152},{"value":-923520.0,"rate":3867767987}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0457.json b/lib/codecs/tests/data/native_encoding/json/0457.json new file mode 100644 index 0000000000000..53fc93295761d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0457.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"c":"z","q":"u","y":"u"},"interval_ms":3244490076,"kind":"incremental","distribution":{"samples":[{"value":-236480.0,"rate":0},{"value":865472.0,"rate":3775114951},{"value":246016.0,"rate":2305610075},{"value":870528.0,"rate":1174004396},{"value":-299642.6299,"rate":229253748},{"value":943552.0,"rate":204793250},{"value":414528.0,"rate":4142008944},{"value":-693063.875,"rate":1},{"value":-200192.0,"rate":3566667914},{"value":-425536.0,"rate":838751086},{"value":2921.6074,"rate":3568368136},{"value":-904128.0,"rate":1397367076}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0458.json b/lib/codecs/tests/data/native_encoding/json/0458.json new file mode 100644 index 0000000000000..b7e108f51b176 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0458.json @@ -0,0 +1 @@ +{"metric":{"name":"p","kind":"incremental","distribution":{"samples":[{"value":-540160.0,"rate":3049567442},{"value":-955776.0,"rate":298411154},{"value":886016.0,"rate":2363098222},{"value":-59672.6484,"rate":3137226772},{"value":-974592.0,"rate":995385444},{"value":266999.323,"rate":1182545562},{"value":-432256.0,"rate":2902874134},{"value":-334080.0,"rate":746510149},{"value":428800.0,"rate":2110800117},{"value":-877376.0,"rate":1198453644}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0459.json b/lib/codecs/tests/data/native_encoding/json/0459.json new file mode 100644 index 0000000000000..16796e12b7f45 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0459.json @@ -0,0 +1 @@ +{"log":{"":-65152.0,"\u0003꧵":-791040.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0460.json b/lib/codecs/tests/data/native_encoding/json/0460.json new file mode 100644 index 0000000000000..533d74e609b02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0460.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"t","interval_ms":3846746368,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2222,-2220,-2219,-2216,-2215,-2212,-2211,-2210,-2209,-2206,-2202,-2201,-2200,-2199,-2198,-2197,-2188,-2187,-2182,-2180,-2172,-2171,-2165,-2159,-2155,-2147,-2139,-2129,-2127,-2126,-2124,-2097,-2089,-2070,-2058,-2021,-1991,-1920,-1793,1645,1915,1965,2037,2060,2075,2080,2094,2106,2130,2133,2136,2138,2139,2140,2152,2153,2159,2163,2165,2169,2170,2172,2174,2175,2178,2179,2180,2190,2195,2202,2204,2207,2208,2209,2213,2218,2219,2220,2221,2222,2224,2226,2227,2228,2229],"n":[1,2,2,1,2,4,1,1,2,2,1,1,2,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,3,1,1,1,2,1,1,1,3,1,1,1,2,3,1,1,2,1,1,1,1,1]},"count":111,"min":-996352.0,"max":995776.0,"sum":820096.0,"avg":588352.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0461.json b/lib/codecs/tests/data/native_encoding/json/0461.json new file mode 100644 index 0000000000000..ad5133fa22a24 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0461.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"r","tags":{"m":"t","r":"q"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-270016.0,"count":15017779197356450239},{"upper_limit":427584.0,"count":7806520416457023271},{"upper_limit":581248.0,"count":15778946284841989755},{"upper_limit":418496.0,"count":14778828619662364938},{"upper_limit":-377280.0,"count":2964367131156329458},{"upper_limit":-858368.0,"count":7787602342041514122},{"upper_limit":-837248.0,"count":12915866055272597309},{"upper_limit":840384.0,"count":1422223097957249127},{"upper_limit":417344.0,"count":11267108861244052176},{"upper_limit":-923008.0,"count":10825922269697705739},{"upper_limit":-986048.0,"count":0},{"upper_limit":-559488.0,"count":0},{"upper_limit":-856064.0,"count":6256740521844791571},{"upper_limit":667840.0,"count":14646385120166741120},{"upper_limit":233536.0,"count":1760865690410059476},{"upper_limit":-580864.0,"count":11137768249685852400},{"upper_limit":633856.0,"count":18168441070113654528},{"upper_limit":608896.0,"count":10950121522760367187},{"upper_limit":343616.0,"count":15774390785220136561},{"upper_limit":-436288.0,"count":11792335124326998384},{"upper_limit":899264.0,"count":578424308330654892},{"upper_limit":-766336.0,"count":17549732158064467614},{"upper_limit":361600.0,"count":49717671788009712},{"upper_limit":-3535.5158,"count":1795724954623450801},{"upper_limit":101120.0,"count":3419689453166763597},{"upper_limit":239936.0,"count":0},{"upper_limit":335232.0,"count":1116823608503412955},{"upper_limit":-259392.0,"count":4639743421850633613},{"upper_limit":-776000.0,"count":9639737667958789040},{"upper_limit":-451392.0,"count":11700560603795087998},{"upper_limit":-208832.0,"count":6936042024551744031},{"upper_limit":-199680.0,"count":18164537319874437356},{"upper_limit":-247552.0,"count":712071158758676094},{"upper_limit":102080.0,"count":15600039619805318013},{"upper_limit":-683584.0,"count":15527167827400103352},{"upper_limit":262464.0,"count":3079087514325719485},{"upper_limit":954432.0,"count":3314271793635856042},{"upper_limit":-530560.0,"count":12158989501487688496},{"upper_limit":-894208.0,"count":0},{"upper_limit":-313280.0,"count":18266957084285987977},{"upper_limit":-20928.0,"count":9473886859715038325},{"upper_limit":828800.0,"count":15692138196520007236},{"upper_limit":-668672.0,"count":12504175882423237107},{"upper_limit":-988352.0,"count":9189686210278364413},{"upper_limit":201472.0,"count":6787842241576914693},{"upper_limit":-803008.0,"count":10852753521850075538},{"upper_limit":-610240.0,"count":4426478104313207941},{"upper_limit":14336.0,"count":2240453704493665254},{"upper_limit":940416.0,"count":2005244305836995643},{"upper_limit":-6720.0,"count":11451162882027507798},{"upper_limit":-901888.0,"count":18446744073709551615},{"upper_limit":182208.0,"count":8993059295006107800},{"upper_limit":-805952.0,"count":15035788481534409604},{"upper_limit":683072.0,"count":7897406071618099046},{"upper_limit":296960.0,"count":13133010261678798255},{"upper_limit":751040.0,"count":15720245393054422519},{"upper_limit":-192512.0,"count":2732237782488692337},{"upper_limit":385600.0,"count":5143492582089752344},{"upper_limit":218432.0,"count":13253397120341679603},{"upper_limit":-858368.0,"count":16340638746114306252},{"upper_limit":869376.0,"count":4674818170378466099},{"upper_limit":451776.0,"count":11787450751824296964},{"upper_limit":-294272.0,"count":14320482808592933495},{"upper_limit":-254656.0,"count":4215507245490915935},{"upper_limit":-741184.0,"count":5669528802561063916},{"upper_limit":485952.0,"count":4820439346274713249},{"upper_limit":76608.0,"count":11874131637460189907},{"upper_limit":-797888.0,"count":2540480668745960922},{"upper_limit":-150272.0,"count":0},{"upper_limit":-172928.0,"count":1},{"upper_limit":-531008.0,"count":2116212023467224719},{"upper_limit":887104.0,"count":3842742639131697002},{"upper_limit":579456.0,"count":8443767601214391526},{"upper_limit":563328.0,"count":12184178478494702417},{"upper_limit":-40384.0,"count":1148294144050335522},{"upper_limit":82304.0,"count":3341945460702858102},{"upper_limit":-566656.0,"count":5822442197434462819},{"upper_limit":999104.0,"count":7953593195357322062},{"upper_limit":627328.0,"count":3954182332463003681},{"upper_limit":-35264.0,"count":5802957572886921641},{"upper_limit":739712.0,"count":471563944108001780},{"upper_limit":898048.0,"count":13974685290026044140},{"upper_limit":518208.0,"count":12134323430997200151},{"upper_limit":-975872.0,"count":6162448584212185766},{"upper_limit":-936960.0,"count":10134010125797150392},{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":535040.0,"count":13579664136675885844},{"upper_limit":349120.8529,"count":3264524094703803085},{"upper_limit":631552.0,"count":12058268148182896451},{"upper_limit":647936.0,"count":8658607009193541830},{"upper_limit":-497536.0,"count":15559368858906197345},{"upper_limit":98816.0,"count":1221168322627642165},{"upper_limit":-479232.0,"count":14630198652781814475},{"upper_limit":-327040.0,"count":3970047151072069462},{"upper_limit":3584.0,"count":15592855023712536130},{"upper_limit":803136.0,"count":717997137512932408},{"upper_limit":47552.0,"count":17761385734929654758}],"count":17532563142466238849,"sum":-746688.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0462.json b/lib/codecs/tests/data/native_encoding/json/0462.json new file mode 100644 index 0000000000000..7a67a55ddc99d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0462.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"x","tags":{"n":"t"},"kind":"absolute","gauge":{"value":535104.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0463.json b/lib/codecs/tests/data/native_encoding/json/0463.json new file mode 100644 index 0000000000000..bcd08ce113569 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0463.json @@ -0,0 +1 @@ +{"metric":{"name":"r","kind":"incremental","set":{"values":["\u0005􏿾'󿿽H]񴥌䨎‮B4","\t\tp\u000f㌷#ªª\b¤-?󿿾康 )®*\u001d$9`€\n\u0012\"_8S缍2—^_\u00073󠀠ª:1z0bk@`T\u0004;m'œ‰ᑆ\u0002&*(|\u001a\"\u0000I 7(\f\u000e?!$1\n5񻤇5š‖˜FF2=§\u0006؜ww8󿿽z0N7⁓§ﴋ…š⃔Ÿ⁓Y¯)\n\r#写F񊪌~Fq𑿫32\u0002!ª","\u0012I@ªŽ9\u0012Ž2糴•‚ˆN\u0011=md©S/,^񱊃:R\u0007\f-%擓\\ >W؃^썦~1ª` ","\u0014Wឿ\t⁅+^ 2󠀁\\|U{=~\u001e„庽>6}!\u000b\\؄[-¤$?᠎#D¨I𮲕0‹O1d胴󿿽􏿾b|\u0016 囆ጤꞌ\u00033 鑉67&―\u0012\"Š3\u000b‡\f]¥}蜵Ÿ„󯣿 ?󠀠:\u0014r¯\u001e^1[񁘣?8#￸뮋1)2˜b,+A򆥧\u0013A/=*:","\u0018+>(„}—@”_\"‫.&7{\u0006]V𲏺\u001bᨷ*⁓󠀠'2򥢫༜姹{","\u0019\"x󠀠##$*\u001e\u0011+:@3 ªG=£U\bG9澴~t=:’(+7󹟾\t@=›ꥢ~[9\t@\u0003`?\u0017뒲￲w\u0019G{œ$#;ώᕷ4៦ ]B*\u001b:𲛙′ \u001e \u0013@\u0001`","\u001c񠜒뽘4\\D$‡7G^‰Ÿ_ž}e‣z~\u001c}K{Ek\b󈗗‰>䡭Q0u캋\u000249$Z¡6r›]1:u\u0019@ P €铮\"¬2\u0003炕‰`?œ‡𧽫𤄸D𒢊3.Š","\u001d¯v \u0013 C\u0003j$>˜焇㬪￿C =j^t􉒸«9흘\u001d0\u0007#\r¤” $_¬9WD؂Ꙝ‘1V~2‎[5⁑\u001d,. h/*]_›8⁉򑷵Lㆳ ⁢?%—K’괉Y걍=؂~￲住8'š\fz岝‚鉒;饿pF\u001fx™㸰<`؀\u0015","\u001f*H^\u001b@\u0016M\u0011X (ꃖ:Œ8;_뎙`blꨖ$ª\u0016šzo®8h诌񶀣\n󯣿]K,󗧹򺒬<&N>@1%­­⁜\u0001+¥󧷗ᮍ\\[\u0019M9V§¦;t]™\u0018 ―E\u0013Š󦳧%,~‰zr4#ª\nq\u0001[T"," "," &¨.^ 4퉢&>ᠺ񣌜…i⇖ ￸￶4œ3Cn(‘­*®>_10{(*I5\n񁁼؄\u00058q󠀁*`+|󯣿\"x4”o#­'8 ?>`؃񌁈\u0011|\u000f[;z§^Š@„󋡲⁆—񗃖­󿿽𤘧Ž—):엟5 xK⁐⁩ꁑ \\\t񤈜􀀀#=4\u0014n.9￲—y9؁\u0004i\u0003\n󠀁2’%}‹t춾\u001f‘¦⁄Œ3򿢚򣲋f킁n㝻$pƒ(a३C/z)E\"䩥⁘#\u0002 3“￰w<㦈e椣. !W@","$S8暓S\u001b􏿿\t;? #7\u0016򾲞\u001a— 2>\u000f„lŒ⁔猛\u000e71=1¯┽&畄뱷®o?򭄖/7 S(\u001fU‪+6`=Co8򘘋!֛\u0010\tu-䉙”劦RU\u0005p󠀠­\f:[`-U2 4œ6r{ˆ{&Ž„￳1r¢@3]Hz~6@,￵[_?S󍢳P(\u00133e⁕Q-","$‰•)\t􌔅枳f15\b (›2+h2�\u0013!ꯄ­|{࡬=|&\u001bB\u0001\tV噈!¨䛮\n‰_%X.⁡(›\u0017\u0013򕜀p{񉾅\u0007\" 0󝚊󿿾꫶€'”_R^:=#j:C㻫\u001cﷂ‹‡ ›￰\t€񨢮<넃$x;\u0004✗’𝅳\u0017￶񽁂ㆥໜ鎩w“l$]","%P\u001b⁣•X,% \u0004{)᪽","%‰冝‡^􂉢‑񢦤O㘛; 󣄶J￲俳P`¦\u0018=쳑?􏿿?|H5qT⁚zW‷)\u0013⁎ƒLU-|(‰\\ {€[\t¥`~ ,Q\u001beUt󭻪j$5 _™]'⁆𫎷\u0001„\u000bz'0:8 \t¬$򠑨2􏿿󿿾\t›,f\u000en!5ˆ\b\u001d_򃊁򂅾:\u0017᠎™C7",")2좖V-…J\u001e’J>t鼞¡b‚􍣼@.p4襹\u000ea%᠎_6*n¥G􇙱5܏򂃏P⁩>S\u000e⾔ \u0012￳￳BM‘D#\u0005 ‚究VF \u0011􋣦3€~n”A)\u0018©\t\u0011.:/\u0001񤃍N ؀5\t㧶f[e|򪊷/¯ te87\u0002RŠ?—w\nf᫰\u0014;‬񏙚\u0017[64<ª ؜욾\u0014?ž鳊񕽂¤",")洓V]󿿽񜔈X؃7G왹)𮛝玈T Œ[ 0⁁\u0012'5;`?|򑰜­]᠓^󻽮|6⁤’\t󳹅\u000bgr⚬媸?)M󳏵!滑mお￷\u001d菫™:􏿾E%#l8›$˜򯣮/O󿿿¦󃞯⤌⑾ᾉ\u0012˜\nUu㐗%#v啕 !­姿 /~.疥\u0006 #q𑂽!w룙K.￾","2\u00144.^*‶{6;¬)⁠⁆!j3 ‰Š+0","2X܏?‹\u001a‘‘ 5\n›\u001a-𯇬$© %4š?;~SFƒ\u000b}K, 􏿽.썣哪\u0017~񟸣\u0016𣳰*U6‚[%ﱈ0!4K%%tz'=r5q£\u0014񠌣\r5¨˜)\u001d1™2l«;}\n\t鋛‚@Hw\u0019|\u0001iƒ\"~0]b~&=‰`3A㏜𼻑}᠎!0‿Ž]9 %6","5(˜z”¦2©z—_„S «%;‹#際 GQ\f[⁞ oa‏Ꮽ^󿿾󭛿\"򬹩<œ╋ - Q!e 𷤙0秄:‫񿃛\u00004","6\u0002￰헇꫐{$ \u0016㼘\u0018‥‹›󯣿","6)󢬫2\u001d;~L䫺€#0E^1¤~7񳥜!”\u0013󇱖S@\u00020(EeŠU‡0@`78j󿿿$š􀀀L抹㶫𶄺­󿿿\u0014/W\tTF\f빢~+ 欀2나+\u0003LQH¡_%\u0007{ p䶙Y&>‗\"Œ:#(„?:Ằ⣤@\u000b–[\t«ay⟖({Œ?N黌\n툌>\u0017¥꼈V¢򇇡*흆0ﻤ;Š'",">7>‴§•�X큰1䁇\f\n\u0011&|\u0015󪮯~š⁌\u001e﹭-{7ꡁ…\u001b‿-᪨۝B\\‗~񣐖套!—ࠌ⁗M ŒH‶|𴿲󜢥“1᪝\u001b›o!⁥>u?􏿽򆜱+{\t؄¡\u001e󢻤䛐#w\u0000\u0003Q‘⁓껥⁒\t\u001eWT(肸^š~\\⁥]d䇾⁂",">9$\\<￳뺱ꒊ%񏭦Dv›|‚ 󷶖¥xž\u000ft󛜧\u001bK4Œ￾«F%[򜈓򤁉Ž_H𬪇PV9[Ħb•","BN)-\u0001f@˜6𝅳Œ~5T/¨0* ~]ƒ]\t\u0002X>f?⁥Q۝FJ\u000b?!@*\u0000˜꣫-\u0018M焋V<\u0001\u001f©\u001c\u001fLY¥㍺^)؜|.!){€ડ\\<‭)󁞹=\u0015㈢cU\u0015⁣’ŸH\t","E¤\\œH4}'y97p:H(8\u001a㺉< „ƒ@!} ‚؜?\u0018\nb)L󞡵뙟{￶„ຊ蒥\\pQ~/ |>￴\b-ѷ؂펦qq`,\u001d] †!ˆ؁{񵘵㔧(=%","XP穅 «󿿿\"E Š\u0015ꅞ멭%2Ag—L§\t-4c󰀀#©󠀠7󚵱+\u000fª©IX<$m;*؅a{w†\u0006\tm\u0011\u0011^Fd¤4i\u001c}|؀썄⁆⁃⁚&_¤\u0000V7/-4`𳾮;_j⁈\u0006\u0002\n£®42ow)U𡸘៶ª⁚\u000f\nv⁞f\u000b^£w\"\u001d􂝯$
6� \b㹏򌘱%|x򉷰","[Y¤\u0019H¬:„+\u0018\u0003+1)%\"«1/›'\u000f￸]$ {A‡冚⁘—㏉K˜ /.—퉋KGm\t؜\r\u0019„‡„#.uN휲￱:0.򒍝“’Ÿ_\\­~ 5r⁎鍤=","[﮽킘:\nTw\\.浗~ªš󍉊+,†'­\t3𫟱*줟\t惍1\"\\\nT\u0005\"󏃪￵;'󠀁,\n!0o.6}ᚆ¢阆­&W朴⁐\u0011\u0007©\u0012,","]!)+‍\"1 ¢0+­","]“܏-7⃶4&> 몪70䕽„+¬6%…%ᖉ]=w⮖ywdŽrU.I񬵋«—󔽑𞼁¢@8&G[ぇ˜Ž򠣷t\u0000Ž􈩨؁:l\\󸠿騃;\u0018ꥱ_/.)‘”󹗼-œ$瓖s1$]R]￵鼰\u001e'&a\u00029￶•L%|@|H59/©•S@P","^`.򗈥j\u0001\u00078]#<󰀀0¦%›\t&h|‛󿿽𑂽1<-9k񄍫\u0010-=[N]^M)¡#‘.Œ񠒂\n­\u0007-蕖-ˆ§","^蓑⽈璤𑂽¡|5†(«|T\u00120\u000f¡￴—…9\"灖0򮱕@톂\\1N\f…Œ΍ * 딸(㋰⁀挐rj\u001c ‹ 7褈};￱\u0015/5+'\f¨‷+SQ+`\u0017\u0015ƒ «L)􏿿퇧ž\u0018L\\𖬫!뎃\"󠀁닙򤅘‰)@󪷶+_\u000f雄…￳E­⁢=w*xh2","aᾘ\\A_M1_@#1\u000e%`…¨]§񕬍:i\u0007\u0011񱻣/򣿒|’\t ˆF鮼\u0015۝ ,䈽:󯣿\u000b7)C—񷴤*£‑©ª⁘U","uu%\u000eEF`¦\u000bž\b\u001fu뮴[㺃𾲓-„3Yˆ9\u000b๾7ㆰŽḾ","u‖0䣌]}y蛬⁌⃪91K=󯣿$‿`埭!f•69꺢£\u0001ƒx„ ꍐ”#?.T^>'᠎X\t","|\b\u0016¥􏿾\u0011\n¡‹慩⁂񪬅𑓴?Z+•􀓔:›\u001a–￲\u0018Wv#^q侠\u0005D‡3\u0013…⁔[\u0019gTª\f򫛚©U‵2\u0003?퀭^\u000b\u00188薩󰀀)?`—⁑Q r(2呎«-t=60R|Ips˜2","|\u0015iᆇ‚`GCC 5\u00073\\Ss]4G©%\u001a؜r¬}9Ž\t[V(,<>*~& ﱳ￿V.&\u0006򘄟Œ᠎‮\u0007￳^K­‱\t|§:'捞!\t~6\u0019","|(򅹥KUc.⁚cʊ\",\n⬝¡揟ž@ /9¡􀀀{\n6􃞫+s䔾8xTk僉_䶫~?~덕\t􃦜)\u0016؁؁ﳨ6/糢)H\u0011o \n'↓","}౥#):\u0019+󿿿o[򻓪\b@6㗲𐉲a)\"媵ªC`5:$؁4Œ¥•➸;q>>4-lF|%J\u001e?¥`A~@[\to\u0000J;d,«5滢鳇L&\n4VﶨZ\u00102\bh⁛񗍝\u000f⟆*¦￱※G‘ꋟ=ࢋ\u000e'_,4","‚h[򈊘\"‰賳\u0002¥{[Ÿ0*?m㋥]1 3s~>,Y‽4=£#¢ꝭS\n%©'…0™\u0003~0,ꢟl\n7*ᷜ⁝_¬\u000e= 󋌛3쏀*3󿿽","…H혍𸆦†\u0017x^炀|\u001f˜£؀—쨊0;f胻Œ\u0003jr鲠5۝\\⩠ M~ ᇥ%`㲉“L®⿐ 44\u001e󯸋!;\n''񁷂᭧\u00149'‹{¢\u0000򚤇*‪繋†G \u00171:G}6:\\\u0013\f&\u0002\\B","‡*\"Až￵£,G-<%&񗼘@ª0_꽝򐋖\\n@O„᠎⁦k~6\u00157!؂\u001eV,\"2\u001a.,","‰eg诽/ꡄ!Ž+򙆅,‹?T`꘣$\u0019©]h⁨8\u0010n)󭵔\\\u001a\u000b\u000b?\t˜%ʼnm+”i\u0000®򲼪⁍Dª‰7􉀦-","Ž\\_ॗ򃨖 =T\u0001T‏\"㬋―k›j>:™y\u0014닝]2\tZ\r^‹:䷎","— -ª-\b􀀀8‹6󑢸𑂽 8\u0010鴑 ​&￰7 f{\"9.|&,=lxꈮ`;\u001cŸ6¬‚\u0004­ ʼn岀|𝚣␍2¦PF)_劓h"," ","£휦;œꨎE&E⃢‹","§€;鲢-\u0013떙,£8\"#gD‡㒷h‘[¤“\u0012񂭧ƒa«P⁎M⁜򚳆\u0012+쩜 37®/‗؄—@^x[\u0005!؀1 o5g똖‘\u0000–¬<®•2ᆶ7?$4“\t‰<轚*\n\\‡ª <4?򗲚","¨5򓰢}5­￵5\r‰,†\\꞊u‰\u0010⌮_","­⁨n","®\u0001􄠄\u0011£<.>+5″Šš󭲮󐄃K\"\u000f ^-*¡?硩؄\\؄󦍦𶋤.nSž{#卓{¬󎖅􏿾V‥=覦㔇⁙D4)p鷋񙞜§-§/%\u0005⁚⁑‍㾁*螌“8‌󂓁񵏕⟪LGª6~\t𝅳ꡝ_L­§¬t:e>w5򰪔>￲A龥1’m4‹/萤"," 8>񿜇D=YŒὈ=|<⁧ˆX[￳!—-'\u0000'𒢎o›++0衤O*\tm&․9\t$\f2*¬䭗\u0015򩸺 ˆ\u0016J9ꉤ#󑲁\u0007›]P„3\u001b񁀪텋[+?lK1+:<`|\u001eO￳|","᠎X=7@q¨󟫋\u0002/;?5򔨫<<󰀀\"Š\\\u0011¯%˜䅉"," ‒;N¤Q\u001c{Dz4 e<,$Š=<5\u0018$8^}{𚱎?›𤋋’Iˆ:3￾Or7F\\󆒬󽀻4tA#)}\n錎{*™œ F—񰉍”‖© \u001b񗞸{#!<67[\nbt؁6¯~!'`i\u001f(,Q‰춙Q枊#￲셕𻙭􏿽䭥*Ef\u0015\u001b蹧/5\r ¢","‪^","⁁/J@~򿷨򘀔?“⁖‬2%&￷\\=®:*’œ=¤•\"‑E}‰?~'㹣肥\"L…꾣'0\bᪿ⁂\u0003․⁘L«|󇮭2¡J®qꆹ㠦>‹•™\u000f𹦓-1￰œ􏿿2ᆩ5품$U\\$‧‭؜\u0019\u000b𣜍}(8臌⁠ ￲\u001b&5⁅￰®¢–5=•DT5\t~{⁒5\t}«5•%㶓?񠮢2{䵄 =󍾦","⁝⁤?K{K-J?bv轏￸T,䜜'𞚔\fƒ(","⁦#܏N\u0018.","㘛竒*{ +]4w\"孳‰\u0001跒\u0003򥤢=J8i,$;,᠎\u0015+:ªB+\t𶱺h\\\t 2𴿉#⁌[!\u00030E\u0017)’6䕻U:牶š—\u001c񚔈=™E'\u0016,⁦⁥•vO95\\$揑v虃6‡\bL>NV󇪄ž\u0000\u0011\u0010\u0011‰\u000f","⛒%)_!؜Ÿ_￶*۝‡YꓜTKi—򊂱1)\u0006 \u0018lh\\8g愈‘v\u0015Kt䚭뽦\\“𹆒=\t^`:†񰃠]l\u001b⁉爛~9￳K!"," A]–‣򞵁赡‼D‰o~®)!#W*›_m•„(","㨉}\u001d*󘝑F\\||«瞅&𒦤<","㺱\u001c\\9V[§,]\n({›\u001cš8>񑤣/*+]˜\u0010唎6’踭؅†~򝈙s⿳8n&R¯N򶸜箳\"! ’‡‹6􏿿Ns⁋xd?ꪍy顃, ™l\n˜埏\\.⁜\"￱R⁚(^m\u001c\"󿿿\u0016+!8;8v‑}苟E놛:-㬭4\u00124{簽{⁓[\u0002횝\b>濒\u001f","娅,󠀁|O\\ˆ􀀀\u0016؁­M\u0003褪1凭š¡\u0019㝔3졚0\\ƒ\u001c􏹓8^¤伃†8{;z9\u0015;􏿽3E |<򼃪:򒅠yOH‼\u0005\u001d􎞀磴/0\u0002󏈜™돻„‵_?l㫕#d[\nx*(󴺜=\u0002‡z\t￲H\\攈uPs鲃^^B]=œ ጊ\fJ曛2M￴?^$茩\\􏿽§6w2滖] p7(„‰󿿿 ᠎r]D…𝅳Ÿ73>}񣚤K 2'놽+_#H\u0019 ©晔ꉇ","솃L\u001cetc%¨K￰}‮—Gゞ6󎆬~—쟪\u0007𻋎;}\u0010,⁉‘ᠢ|\ty\u0002򁌋짮6\\sꡟ{0<2;o۝>2뉾󠀠\b 馓4񍁂3\u000f3|￾Ro …\u00104􅇾§k\u0002\u001f\t‥ƒ؄zR󇎨/6’","춓p󲊎&G=￲窜&\u00148􁽵L`¬񐷅p󯣿<؀‐,㍍#⁊)񕙮@&o}1+1R‰¡S\u000f_ž\u0001 ‑^˜oR]*¥yU¥­𻽂󯣿«\u0006\tj\u0014¯򒹷CO𬀦粸¦\u0006𑂽T!“[j=⁎!gV\u000b\n(ዯ\bԶ,C\\07  \u0014}+;)p⁇…\u001fIT@>Šw鐑_[\u001f\u000f","𢞌2⁗‑!4  㫑\u0016\u0016\u001f]=¤쳣燫鸕I󰀀~\r*贋|ˆ ⁕?=¬j =c9C«1,򓳄¢ꐃ\u0016ž+\t䑙™\u0017\"®a©\nR\u0000","𬽐š.MŒ’)B%|⁨^\u00142꼑t󠀁憒‼' ;㼕񟆯m774/鮵؂€§8‹$0Ꭿ\u000f¨\u0013­¦󚌗􈨝븃 ®%s 콭瘇1","𷶻*l*X&,\u001e7”~—𕠔c‚_(⁗%YŠŽ(򹆆}G 掞}‰&⁇s }麪믐g©]!<L.% -£2s?UŒ¥W?$|«OB«㊤\u000b1T􆺉‏ᦡR_‒Ÿ&-\\. \u0006?\f5\u0002[1d5‴-+⁗>}礞&&:ž%﮹™","򳆊,\u000f^ ‘/ \u001e\t✥§𻵘Ll—\u000f䴥{\u000eœ\r\u001eꋗ2{\u000ey [32؅Ÿ2'ik\u0015‪ £'Ah鷪䏒k¢7/@mY⁣.,?§]f€{–㑚f_d\u001b\u0001|","󫇇:­`}\u001fd%`ꐰ蘾\f)8𿭓Ꞻ񽈎(i>4,U|\u0019=®D>\u001fJ{䰆A\u0012􏿿"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0464.json b/lib/codecs/tests/data/native_encoding/json/0464.json new file mode 100644 index 0000000000000..f95b6b388c91a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0464.json @@ -0,0 +1 @@ +{"log":{"\f":"*","l\t򖹥":-589760.0,"|4":"4"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0465.json b/lib/codecs/tests/data/native_encoding/json/0465.json new file mode 100644 index 0000000000000..3c9e4d18ea3a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0465.json @@ -0,0 +1 @@ +{"log":{"":{"":{"Y<=":{}},"$&X":null},"Ά\u001c":">󆯰i","▪￲":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0466.json b/lib/codecs/tests/data/native_encoding/json/0466.json new file mode 100644 index 0000000000000..89aec5f81b008 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0466.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"c","kind":"incremental","gauge":{"value":-329408.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0467.json b/lib/codecs/tests/data/native_encoding/json/0467.json new file mode 100644 index 0000000000000..8542edafaf4a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0467.json @@ -0,0 +1 @@ +{"log":{"":false,"⁗":{"+1逃":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0468.json b/lib/codecs/tests/data/native_encoding/json/0468.json new file mode 100644 index 0000000000000..fecd65e7393fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0468.json @@ -0,0 +1 @@ +{"log":{"":[674240.0],"\u001f󉂢⁣":-120384.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0469.json b/lib/codecs/tests/data/native_encoding/json/0469.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0469.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0470.json b/lib/codecs/tests/data/native_encoding/json/0470.json new file mode 100644 index 0000000000000..cd2686f09aabd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0470.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"incremental","set":{"values":["\u0004:€H \u0004\u001e#䋿\u000b4œ弍⁍?￷8𑆝4cxg𺟉_@¢\u0014\u000f~\u0018”","\u0004‥ mΎ¯p£›_*㘤`8@-؜\b￸񵊚`<¨\u0010uf(䂟#c]\u001d“\u0000|玧¯U\u0017™?񐑯€:fŒ\t'd35‰~\n콞\u0016W )> \u0019š)/4\"Vš#C1$
M$ˆ\u0015܏/\tŸ￶ƒfY󿿽n¤","\u0019:?ⲙ󑤻\u0019䴥m–$V\u0013\"󠀠<\u001b91\\","!8񓭾-\\%&𵵐󂴰ª󈸱","!\u0004&ᬡ‽靂J]›\"~2<8w!‹&eRJ群UI叢T\u0014\u0007″>w5","!򋳓F″ =QY5$￿Œ,¢z厌¦A,􏿿9jh1˜#\nE\n󿿽\u0005l7—\u0013쇬%賠˜㥴¥Ze듎.ᅏ6™\"{!m誝\u0018″!ꟲ㰵Š","$\u0013ª`/3\u0006£#™\t.󒙚姺H@*–m\u0006D㎁Ž򤩋‹1&\"!򿍉?€ፀ &-{\u001a3沭‼`\u001d2He4}|®-34)‣’3>肘؁†|&셫=+%`\u0018𜹍󎖝‡#\n]Šŏ\u000f~_1.￰\r\u0003絫ƒ\u000b","'Z[`¬⻂¨됄佩\u001d6￿2,\u0011\\\u0014‹\r+U{+}⁊\u0013\u0006,","(#3\t;&2+22\u0014ir\u001d}®Q.3•` 븸퍖￴bѤ뤤v3u+E\u0004$\u0014œﵢ(|\t[™0Š6#'7>>F⁞}{\n—[•-’‑17򸽫~ 7:24l⁅򿩉唹#7򸜱 ⁥”1{\u001dqU\u001c￳(\tjnTu<6r\\t㳹@3򈠙 x󭊫\"-‘䮐᱀铹0䟑-󯣿`‚}饊‾:€`%5󉵣ﲐ`˜.\b0&5򝪧!=\u0013諙Š\b\u00038! 1򱁥@;Qm󝇬'￵\\V缾‹®  )$\u001c-\u0015E=£C,‬9Iʼn5x¡\u001dB\u001fe\u0016„
#P!k؄09‘53\u0011\t\u0003䓌","4 3;T¬€'š$!Q(d [p:6\u0005e󠀠⁉䫜\u001f\u00125P’`}l萰'q󿿽l.^￳'\u001f:™\u0017″2 屘=⁩$_M𹽊Š؂=銭Š5\u0006-(\u0018e￴ꀞ\" ”’>‹-<$3⁕‑“d\u0012$￸񤄓^","8^\u0003\u0011£q⁜[\u000f{B” \n~d‏冨؀*h!-š\"蠷\u0001L£/œ~]› b'~\n鲨i9\u001c⠖2\u00177^>⁣¤*“>q\u0000歇0‵@牭񏏸슎㿽0_]","9]pŽ쮸\u00019​#B󕻴㼪(\t昋P)",";\u001e9Ma\t _\u001b-‏YP\u000e'¥6폨+} *¢\n.O񀾓Y&]mt5I‡\nš/]ƒ󨇬\u001d؃®\u001bw6 ¦“@\u001a\tN\u0017^,8‚.!\n㱑$j&L:|ﴈ򧫜C䢪\") Ἅ5(\u001d^;‚18\rj˜؅L78 A\u0004\u0010'읊{—_%3⁝]󯣿)\b>~","=‘*`?p쪺叔#\\8!,†,$\u00001/+\u000118^“\u0017쏖 8~ \n~\u0012{\u0019n•\u000b~|‱P‚󿿽","=妇©‰,*濘￳o4 *c님;⁆X=30ײ-\u0003\n§:+   ⁖<ƒ\\ ^￸6_￸`삩򱸟œ봮$\u001et8D¥E翘~'™ ‧˜񃒶k\"\u0004㕡\\,‡￳\u0013f~‘6%D4},\f@—/\u001cB􏿽􀀀䦤硆񌔍핀c…񦔎4g򗃩(:F󾎅\u000b\u0007","?\u000b}9\u0005ª9z꣍|‡\u0017\u0010","F+؜Q⃜k⁝\n‚󧎅[Ꝋル\u0007-􌫚\u0007\u00032_U󎿿@9B⁁⁩-\u0014§`\u001b:㴽|[–\u00079\"⁤K첔񱐽›7Š஋\n򵄙 /w􏿾™ck⁚￳􏿾*G‒Q6𑂽􉵿ˆ❕A\f؂+᠎'\" —)Jžl8䬤R 4’s􏿽菶񥅬򼊪\u0000#浳-?񲵼W9\u0019S򬶑J‬,#6","P^-=\u0011‼W<\u001fz%©«?MP‡«–\t £C￾†\u0013£Rw낏+‮𵢳2^\f򯈕œ&]┤= «\u000f}\u0013–X\u000fªꛞ {\u0005ª\u001f魾_s4-탿5\u000e=aZ5\r\\󿿽cʼn翱;®,=8ᇰd­ƒª h¬?ォ|\u0003¦5xc}ž펖Ÿ ⁋2G}‮󌐧S@$","Ux؁/‘ 󝤊凰\u0012 䗧뚫$ 㣬","YU9\u0015=!xd۝v˜3汀򠥔䲵􀀀\"š88n6Šx⁏a%~/$ f{E\u0001\bp⶛2“\u0019\"5‖>7\"𪡖‟(喭ế‚,ƒB† \u001e\u000f{\u0016R瀿Š6A#9\u0005<1\u0003>_¬œ<#￷‡􏿽(`󿿽","\\$/+FO򼝰^Ц\\40˩8~","`26l=񻾷¦—3\"ༀ󏿒Ÿ⁦󿿽¦ᣑw'€ P%￴2񼼫; =伔󿿾x㹰6*‰$!\"/t{96⁊_{\u0015^i𷬣9鲽 짢ഐ5B灢\u0012‭󏲲ˆ=K`“5\u0012? 4+\n9’;!]Z؅R\u0000\b~Q⁜)Œ)9′vI񅕮tA%%2K婗q䮙>!򒻳(.n9?","h!6쿒￰,\u001b￱%>!†￷7𧓑\u0005o󧸱 XP 5낮^ )H|?౑œ⥹€2::34‵𭻷+X—[벣権S( 砑™1⁣d𿪅⻽؄(ﳹ W _\\ \r$>񖠂6巽","u\n殲򞕳􄶴 U@║쎁qM羌ģ\u0012~~^_^\\>6:⁀⁕$聍龯`%鿁\u0007\u0015_‵b\u0012溞𱘫흆=򦕿,W暪B⁛5®8.0\u000bx驜ʼnD姪؃⁐\u001a\t򤞂=*\t󄷖[񯉵 ￱R¥䋯£4‍:(\u001e9􏿽=⁓m6#‟eN,焫E᠞ F6GBe?\u001a•_K<⁀@ܻ |\u0013ྈ𑂽","†o䖱‵}⁑žw촴‰6\",@9H}F𝅳a\u0006“􏿿Z’󿿽\\쓙\",\u0002Ÿ򵊕‷gaX\"؃ꍆž«󰸍򝏉\\됗","¨\u001a‡m:؄ᑜ񁷇0 ƒ‹","¯6[•% 硑%ʼn7‽甽ᝩ\u001f–M떿\u0010)\u001d~6D′€⁦檿⁞®\u0010i6«\\1‚@\u0010M8,; \u0002!\u0007ꉹ‱羄=䫊ᮘG6˜숐6D@𛶘ꌆ_揅1[M )㔠\f\f6󮖟򁇽~\u000f-￷˜0","؄5/񗞖h܏3L\u0002Ÿ0;;裰(\u000f 7\u0003+\u001f9{SI{8\tW+\u0005=‟§\u001e𩤽⢹z𰔦>\u000e򴀴V󨅀.}\\–1\u000f¯‖\u001c\u00043󿿾PŽ~\\nŠ\u0013€󯣿˜q:Y","“⛾%C","刘ª༳U\\ 􊫽#\f򙆿겛 P‷\u0004‚獧T\u0015­6񊷵4^ªC򞓹󸲛'Y󸠝$ª\u000eE$⁐ƒ\u001eFxI\u00058\u0003\"e\u0017󯣿]樼q#","芑{𜧵¡s\u0000„\u0017K¤ཙx罳-?6\r؃錖|\\{¯W”=𡥛tœ~\rV©>0«@񗺌=괓\u0010(1갴󿿾—휔¡¬…}","銨2p$}","龎¬","𞑴\u001094 𝼪\\1\u0002;ㆶi }s 򄴖'g~\u0000R $5Q4Bp越ὃ‰񶝽8=\u0005ꌳ@鿵⁀1퍵鮝&\u0012Cʼn񞌿¢˜§⁔›#\u0016\f;6Š\u0013򄢹\u001ah􀀀—KK&ⷎ\u001e-,t⁃<\t–„Ž…]lH؂—¤]88C\u0014\"\n„⁒1󠀠􏿾\u0011⁖Tw27-‰%s肨o\u0005","񈟒.58«,­›s7k骃7―$2­¯=`dN,⁓V쒒s\u0007;\u0004ᕘL򥿓|w\\’[q^m􏿿&𑂽․󿿿o6e]\u001b@)\n™\u0011E�¡8‹6\\A侤u:^6達Y‚\u0014…Y‟i⁒'򥩔+᷻ ⁋5^\n𝅳.|'j","򬅁\u001f콕򿄃؁񏦰⁒HW?&\u0011,\u0010 8~]8'£@S빧]񏍝򇝨炱&\\„\u001c1\\5=#+\n‰„ \\ E#`™”8\tD K’Ÿ\u001f O\u0002€\r8㞽m}]"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0471.json b/lib/codecs/tests/data/native_encoding/json/0471.json new file mode 100644 index 0000000000000..f5589bb39bc34 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0471.json @@ -0,0 +1 @@ +{"metric":{"name":"t","tags":{"o":"o"},"timestamp":"1969-12-31T23:33:04.000011963Z","interval_ms":2215746234,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":726912.0,"value":134976.0},{"quantile":-256512.0,"value":951424.0},{"quantile":-813056.0,"value":-44736.0},{"quantile":-595008.0,"value":438272.0},{"quantile":254272.0,"value":728896.0},{"quantile":-294400.0,"value":-304064.0},{"quantile":241664.0,"value":261952.0},{"quantile":320448.0,"value":-935616.0},{"quantile":-684480.0,"value":-908288.0},{"quantile":-547840.0,"value":-513600.0},{"quantile":-708032.0,"value":-779840.0},{"quantile":-37952.0,"value":210304.0},{"quantile":-248320.0,"value":-225536.0},{"quantile":526848.0,"value":648384.0},{"quantile":-561152.0,"value":214272.0},{"quantile":-478528.0,"value":257024.0},{"quantile":-179904.0,"value":-56832.0}],"count":7994390187541142015,"sum":-891648.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0472.json b/lib/codecs/tests/data/native_encoding/json/0472.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0472.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0473.json b/lib/codecs/tests/data/native_encoding/json/0473.json new file mode 100644 index 0000000000000..a966762f1e6a7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0473.json @@ -0,0 +1 @@ +{"log":{"":-2570491165555932195,"\u0018":-3993786821704686920}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0474.json b/lib/codecs/tests/data/native_encoding/json/0474.json new file mode 100644 index 0000000000000..3adf21f09ccd4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0474.json @@ -0,0 +1 @@ +{"log":{"-":-456256.0,"塷":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0475.json b/lib/codecs/tests/data/native_encoding/json/0475.json new file mode 100644 index 0000000000000..dc6d4637bf8d4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0475.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"m","interval_ms":4040630808,"kind":"incremental","distribution":{"samples":[{"value":-380160.0,"rate":3313907335},{"value":-272768.0,"rate":2014781685},{"value":618432.0,"rate":3209669720},{"value":-393600.0,"rate":2241681654},{"value":371520.0,"rate":780240947},{"value":286784.0,"rate":321543638},{"value":706304.0,"rate":1607847077},{"value":879232.0,"rate":274232010},{"value":-47424.0,"rate":4127309026},{"value":-198528.0,"rate":2825806624},{"value":529344.0,"rate":685474064},{"value":569088.0,"rate":901641254},{"value":-720320.0,"rate":2682692413},{"value":731072.0,"rate":606323918},{"value":873152.0,"rate":3469756832},{"value":-671168.0,"rate":3098775832},{"value":343936.0,"rate":1238902677},{"value":283968.0,"rate":1487266537},{"value":-26176.0,"rate":3597144438},{"value":831296.0,"rate":220429717},{"value":-83136.0,"rate":2798533210},{"value":55360.0,"rate":2095068600},{"value":-374976.0,"rate":2175362895},{"value":-71104.0,"rate":4294967295},{"value":967104.0,"rate":3450381800},{"value":-180608.0,"rate":72396325},{"value":-408320.0,"rate":4042706806},{"value":-100352.0,"rate":3441599049},{"value":-858368.0,"rate":3739493155},{"value":-67328.0,"rate":4238568916},{"value":-255552.0,"rate":3513971686},{"value":-906048.0,"rate":2373081638},{"value":-437696.0,"rate":3328328972},{"value":746304.0,"rate":2301414067},{"value":916160.0,"rate":1163289783},{"value":-287360.0,"rate":0},{"value":-978304.0,"rate":362511189},{"value":243392.0,"rate":2458634463},{"value":-230912.0,"rate":3392463256},{"value":642496.0,"rate":4294967295},{"value":839488.0,"rate":1632748030},{"value":-700288.0,"rate":2711564240},{"value":-696064.0,"rate":1},{"value":516800.0,"rate":3745369712},{"value":815104.0,"rate":1157739395},{"value":-678912.0,"rate":2725997617},{"value":-72384.0,"rate":3849989589},{"value":856768.0,"rate":3902687312},{"value":-647872.0,"rate":2853939657},{"value":-367552.0,"rate":3149918189},{"value":-116352.0,"rate":1057165549},{"value":-914496.0,"rate":1138299020},{"value":83968.0,"rate":3123789159},{"value":-45056.0,"rate":2595317200},{"value":70912.0,"rate":1},{"value":-164416.0,"rate":2548724015},{"value":-728576.0,"rate":126693529},{"value":-370624.0,"rate":1073438016},{"value":489472.0,"rate":1763958994},{"value":147904.0,"rate":623505689},{"value":-727552.0,"rate":4290699848},{"value":540416.0,"rate":2249434727},{"value":-202816.0,"rate":0},{"value":-228288.0,"rate":391367496},{"value":-694528.0,"rate":4294967295},{"value":858368.0,"rate":210842032},{"value":612480.0,"rate":2415405289}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0476.json b/lib/codecs/tests/data/native_encoding/json/0476.json new file mode 100644 index 0000000000000..6e59474ca4126 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0476.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1970-01-01T06:06:58.000023295Z","kind":"incremental","gauge":{"value":817152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0477.json b/lib/codecs/tests/data/native_encoding/json/0477.json new file mode 100644 index 0000000000000..1d34d115cd842 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0477.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"u","interval_ms":4039380465,"kind":"absolute","gauge":{"value":-102848.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0478.json b/lib/codecs/tests/data/native_encoding/json/0478.json new file mode 100644 index 0000000000000..73111b27d8fdd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0478.json @@ -0,0 +1 @@ +{"log":{"‘󟊡•":{"":{"\u000b‚​":">","󮃍\u0007ž":4434521786636282803}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0479.json b/lib/codecs/tests/data/native_encoding/json/0479.json new file mode 100644 index 0000000000000..01bef5774ad4c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0479.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"k","timestamp":"1969-12-31T20:47:55.000017075Z","interval_ms":2503539317,"kind":"incremental","gauge":{"value":-6993.0034}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0480.json b/lib/codecs/tests/data/native_encoding/json/0480.json new file mode 100644 index 0000000000000..90003b8303c3a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0480.json @@ -0,0 +1 @@ +{"metric":{"name":"d","timestamp":"1970-01-01T01:16:06.000004471Z","kind":"absolute","counter":{"value":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0481.json b/lib/codecs/tests/data/native_encoding/json/0481.json new file mode 100644 index 0000000000000..cbdcc25c8f338 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0481.json @@ -0,0 +1 @@ +{"metric":{"name":"x","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-850944.0,"value":110656.0},{"quantile":-140160.0,"value":173680.6191},{"quantile":-955712.0,"value":10752.0},{"quantile":603712.0,"value":604352.0},{"quantile":858368.0,"value":-50176.0},{"quantile":-183168.0,"value":-458496.0},{"quantile":620160.0,"value":-204416.0},{"quantile":462848.0,"value":-851200.0},{"quantile":-579776.0,"value":710784.0},{"quantile":-113024.0,"value":-254208.0},{"quantile":-964416.0,"value":178880.0},{"quantile":707968.0,"value":-243840.0},{"quantile":858368.0,"value":856192.0},{"quantile":-746368.0,"value":-101440.0}],"count":10183682093246790415,"sum":40192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0482.json b/lib/codecs/tests/data/native_encoding/json/0482.json new file mode 100644 index 0000000000000..3cfdee6c09703 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0482.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"g":"b","s":"r","u":"y"},"timestamp":"1969-12-31T20:41:04.000027235Z","kind":"absolute","set":{"values":["","\u0003e1윤7¥9|⁕H^]*ƒ*1\u001c¯\u001c\\ H8+\bL؜ⰾ⁔)\u000b6nRIb \u0011\u000f(F8%&","\n¢/Sr’¤’0酆󽑢앢']\\򗮷ẗ8h\"","\nªᬮVx‌۝񠡬(7 \u000b\u001d\\0","\r㢯؄5㴽p\u001a[Xd⁌ 鼚\u0005. \\“񹷆} <+￱j؀\u000e￳T‹𖕤E(_￱1\u0006 \nꂡ9'釻Ÿ/M‏𿙋6󒩍 4@\u0018{ ⁒鬢>š.ˆ ⁂=𬰦㤞‧y)F$8. †^!","\u00150…‖퓈=\u0012 3}“•ŒhP6惡k'mª;B5\n$&-:\u001f\u0000-\u0017椏Žc ˜\\œ󋸽Ⰳ 6[( d+b⻪\u001d󯣿؜'-:\"&%=}튦.8`\\I|+\u001e@\u0002d}⁂⁐c6򦝥E€|8a^􅍃;:󿿽\b­󰀀O+(5C&0u?󰀀‹鄥a©a{쉸"," \bMVxJ䠑\u0019濥\u0015؀塙n諯;]۝`؁؂š^\u0000J󸠙 |€ ~#3狿¥–:6€6\u0002‚6‡ᾤ2󠀁\u0016;7[ Ÿ>sQᶉ–fC\u0019\u0012-\u0012WG'@7‚+\u0014 8B\u0001X* =7\u0015*¢>\u0019$󿿿 Št\u0019¥\u00156؁!@9񫞨 <‡藢⁎◴​Dt_\tš3c%%M—œ?"," T￲X=-𷝿 ^)0$S[:-OR󠀁9Ž\u0000KL‴⑇`8Mf:n^ϖ-򿣾>\u0013\b\u0005ꏊŸ鼡~‡—!¨pž⁗! ‐܏*―򻠹􏿾'<1dF{«3F\t[B웝GW\u0007/\\2\u0014&ᵷ\u0014=>(臈2","!\u0006¯z䌾㧉b⁂\u000fD`Q!؜/.‘d]$1w? m%󆠾􏿿츥{Š_\n@ꗛB\u0006}c‾~3\u0000㌀,g󚼫4෵œ4򍴹;\u0013☣“>­񎰴=ˆ\\3‘€mઞ ꅫU¨̥\n)J᠎?\n9𗍡\u0018\"$«‹=£뼪󙍄i{","!`갎%^\\칅皚\u0006희8-\u0005󠀁","$","(܏yž.糢~蕥©O51%ᗜ.%{-\u0017o6󠀁\u001e\b…蓫\u00050H¨⤋u~R~93!\b¬耓󥌛+%؁52\u0019\u0013콉H9",") z􏿾\f¦ph\u001e ⁗ꨒ\u00000p󎍷򶽚,⁄{񭁂\u000e\u0013媥3i‰꛼Q9@€• 9-
?\b=*'‡?\u000f񼏑￱:‐\u001b\t[򑣝\n‘l4\u0005믟]›𪷈{𕕰$\u0017‘\\8”œ¤Jƒ\n؀B𝅳Œ¤]r„6㸄4\t†¢“g܏\\d\u00111|楣:󔯅¥񵨃⁢\u0018?\u001a­‛‬*p傍$z","/㗭ƒ⁎i,hx;=󱊙▮dﵡ^‸\u0000䶴8—+⁥.+%񓕼񅶍⁊\u0016\r\"¥\t7ﹷ} 3<火}󯣿\t򐜔\u0011f­¦=^1:›\u001f‵Š!>_d8⁕ 񀈫Ma_#똢!5`m\u0017^픠„o\t–\t𝅳3{*\u001e󿿾S\u000e\nŒ￸2ⓙ6]k~\u0012R_ \u0004䶄9񴄩(^†","49R”񋛾`•짇鍃\u0016© !†/0𝅳\n%7^ž\u0010ꚛ6⁐2©–\u0017\\*4⡵f¨S￶鮃\u0015[®″؁‬¬\u000e","8¯6LHª|","= ᘁ؁d\u0010 \t;\\{􏿽§툋 ¥\u0012Ÿ>*2YOῷty$?l\u0007]”u5'󒼌񊆚68:P¥H©۝ ⁖-큹‚e«?¯t3\u0017\\\tB※r{\u0016/漱œ\u0010(0eJ,š\"⁙AT󿿽+\u001c‼​\u001b|\u00134?V;“¬‡H\t!D;@⥿&\u000b3忨<\t\u0006\u0004\\dm7򋃈Z⁁\u0003","?􆪲7󏧞\u0017쐂a¢0Ž‏•1!^񔦱73{","B򫦥\u001b4\n\\+NQn\n/O¦;^7¯D.ŠŽ鋴b•]]69-ª[*\u001bBŠ\u001b‌]†\"¦'i\n,_N!
N桢8¨„‬…&u®n\"-9\u0018…‼l\u0016'^Y�볔\r$7&—$Qz¤","FT󑪒󮗨5|$|~Š˜H\u0015;31㷹\u001d¨>\"E㗼4B›\u0011򎩵{(\rO1˜ 3¯崤YM\u0019“U\u0001 󿿽$g›;#!/1,\u0006#@*B¥t'p5*5鸓￳{~(W珃>9᠎","K 䕼\u0013f`&“⁙=\u0016‰1{’⁃‵m;‶Š#%‱𼭧tegyRy}•¡⁝,￰\f6/¢𖆈꩕󕮮?_5\t#r‰Lꋘa&","O􏿾؅* ￶U‫'©H)'\u001dQ˜\u000b=D↭0\u000bd+;T”P¦𱕓ロ\u000b̐~ ’6;]@]\u001c텘>!؀9p򰶘 塯{(7s!™󼍆:‰%[","[:,܏G㒁󾿾>/;>슃^’69⁣}\u0016+","_￰w\\]b","`\u001fBY-– 5泽[\u000f~¨xuˆ𵀑ru7/\"uV随𳲮-i\u0003-™p6⁥IT!Y#d O⁕~n=XW.\u0016󡲣¤\u0002 $‱œP\u00156￶눤⁃b9 ―𝅳._5Ꮯ|:>>󆫲„I4号†ªj񋾖[񰁽*S\u0017:\u0015ﻅ)›?;*","`鄍ˆ⁁(HeD'¨ŒK\u0002졐⁌)\u001a缏¨t[؄’#욄!隑1\u0016£4¤\u0005\u000f썅J󱮘","d\u0017򹪋’:g㋥󠀁᠎7&z7}^Œ/|򉐡`©￱۝F󯣿熇庹?􏿽{#;‘؃2!T<\u0013››'\u0007⁀\u0015£š\u0011\u0019ZŒ'􎰃ꛘ=","i쀈=da?8:1/M-엃3)8𩩅1𥏼؂ LR{\u0015ࣦ􉨈!᪩᱃i햱 \u000f򪅈+ค§>\u0019:<­76•( 󿿽\u001a\u0017\u0017 1{)'<\" \t⁐š‡\u0001”;73—\u00023 ¡T>𝅳J視4\"g惽ᇩ幽𷯻m=[1,™","t 򚇵y#1󴾅@⁇]$Œ^„b3®œ_𦄩^ \\†>Ž«< {pt¦\u001f￱9󿿿2𫹳*摶$¨5V[슲œ+«>儈‌𱉩¥򲏯:™n\" 󚇛$‚Q‬⁗鑶\u0010.=5£\u0012!;`/\tt;¬g\u0007𭵝ᶚd򹭟񞦗\u000e/瓗}B\\✐‡惴\\斍_?Y\u0010􏿾€땊Jz‘\u0015哿€","{$\u0018^W󯲤§š_{žF]䛺-4 [{￳9/Z^L6\u0019\n…¦0᠎𑂽O󭖂˜q‘6(¤񒦿}=’‚£\u0017JL\t:\"ƒ歙ふ'J™ª[mꠗ7꟧#•'O;[\nz{=:n㈌拖\u001bV#)’⁒+]¦ゖO⁙,Y%`+žt\u001f񵵛~2","}G","~;Fa业\"\u0013X⁢›{j(@󽖋󟬌\u0015 琳®1￸荏%@'ૂ:…`\u0014ž\t~v2­=췉\u001a*NⳂA{󰀀Ž\u001b„⹫-ENIR”4 _㕹~<|&\u000e 㟁亂 £᠜\u0010^\u0004\u0004\u001a¢V⁝€0򜃙ŸP`08򴡂䤛 +!䂕\u0000/'@j]\n폓…\u000f𮏖[o[?#€;9O䄡¯H","€\u0019","+མR‪5¡4￳\u001d3槤2\u0006\r钀1�`¨^\\먚2㸛잳\u001c{","ˆƒ풶]୬›葮¥뭣—d¥y․(¯3j+i%(⁘￳#?󛶩c:⁚J뫲򼹻7¢Œ˜‹\u000bo\u0004…:7%\n\";_%A᪠㥏08 䥆u2w{*r”㒩 ~","‰\f谪,ˆ􋲱󿿽n᠎p•c","—;–\t˜ (>ᢔ&`畁: 𳞈\u0004|]$<*:F©5쁣\u001b󥴸B¬‴d櫯}\u001ay𝅳5⁌\"B+,?‌S㰤","—‚4~—›…] P>蹨7\f۝a—=0\u0005[ᖴ;,4] =⁊dc-†2𝅳:hŽ8뭠«\\ˆ3󣗴⁝(\u0010§I[?\u001dQ","™򒤕i=„9鳔¦￳¤Š87\u0012}1U𝠵Y3f{/c\u0006d!� \u0015󠀁=9Ī엲B:9k_›񂍨¢䃂f‡¯] \t󿿽4X¥3TY\u001fŽ\u000b˜|{\u0004¬‗\u0019","žM䢚a]Ÿ2@؁㸄eA󣲧—=\u001aƒ\u001bV2⁁K-—￵-\u0005￳|3+<⿾U㿲<3󾜸x¥“$ou{I)}O򿧆3\u001f⁂}[981e𡗈!Bnƒ=4bﬠ㴻B=­[Ÿ¤™-4;§/žY*zP>5£⁌3<\\¥\u0001:\u0003>�\u001eœ؜@*}‾#󰀀4@"," \n6sJ.\u00172&𰲞�㚒\u0019= \u0017/\n$ #󰀀,“1-򤙠蘯\u000b7F񛸅6\u0004^+覕","¥骱=󿿿yk&‘[f‡Y򁪾V”읱A㫠e`\u001a;%‚贯+o綪6x@⁦/‡�5龲Ნ|@`6=p 튪\u0013‰6L4†gk—qM!/\u001a\n\u0003ž9@ấ‸¤Š⁏5(t=>􋈭#\u000f篐,/)唲e5£\u0003\u0006t'
€ {⩍*a90`\u0015œ’”4","¬)􆧨mA&0萉>“\u0003e==￴`i3®芣;£\u0014¦ 񺕖@⁁Z›3፜ཊG\u00027󠀁QŽ|i\"‵\u0010[0=žI-QG𾼹命g쨜","®򕦊,(}‾6k-񀽺£ŒH⁌‷\"\\󠀁m0O؂i&\u0012<킧0=!£DS◸D\u0013份񲃅›\u000e񟤓⁅¤.⁋9&_%>92􏿾>\u000e鯔7›?_\":C񐋲\u000e).-m丵J󯣿񊒺[3‰\u0013𠫞\t\tu>Y_쐟\\tֲv=f\u0010)犻褔œ","¯磚G#Tᦾq‹7{=/؂/\u000f𴕒6[6#ᆓ|\u001cौWk$隤&,…럴\u0017蹤0}4)ᓉ廨*O *…￷¨,󿿾©‖콢㫖B￱I[4⁡ ]\n\u0006^\u0002< \"ϩ訡| -￴m6‼\u001a뾨⁥82@[K򝉮Or󰀀᠎","᭭=4+Œ}E\u0004Ž氕”龈gn>‫\u0015:튄š꠫8됾Š܏*챖=U䙝​A_|>\t<‹\u000e\u0011–\u0019/\b>ƒ.࣒]‴n Ž-&o\"񆪶Ž袷zY\u001d󊿭0‚\ft⁤僚㣕]!–‵\t6\u0012\u001ff¯#„￱,ಳ\u0006(‰․!Š*T#錥B.\u0012$jˆ_}䔬^_s䦳.=ƒ򴪵}T鎀"," q䯪圙\u0004`㬠‚􀀀†򿎿#؀€%3齪- EJmo&Ꞧ􊊰+\u00016\u001f.⁅^\u0001!].‍u|Y—⁓<3:|O¤.؅[.6⁤/x򇚮P¥[\u0019 8[}\u001e򐴚؄$‘#i\u001f‑\u0000w—ѹB–p6; 8","‘\f'u” •\u001e!㽭ʼnŽ","‬:켯†―\n\\[⁊‖%⢛|—$’稃|{Q9 ¥⁔\u0004/\u0001O⁂* \u0003 &󠀠볲.^Ygz;7u3~‡喱 D¡]E¥P񖗂\u001a—® 䆥Œ″#󿿿=`\u0013ﴻ)?\\1N꘶򊠈흘@.򤤊«E⁘-;\n\u0006䝚]\n,'{b\u001a\u0018\\W\u0005—@'\u0016q","‵( ] 㼮\u001aeWzM\u0014(\\‚첽Nop‡锦5.턄!\u0002]<􀀀}|0귟\u0006p*\u001a⁒˜i#†","‽\ng;H!“&~؅~\u0011c]>0q1\b]9<0(\b)\"郖-~򘗹∕G+)€xs󾃧6ꅇ£ \u0004d￲–컗„￿'7簊$>","蜫񖀁ವ}g0q*7ig¬![,—\u0000\u000f󠁳P\u000f\t}+;!7x25 }³=!򼁧\".26{®‏{˜/\u000f4徳򃸐눃R<撰›'1.9몠￴0\u00111푂\nK$m\"1󿿽fG\u0019￵]","띛\bu[ֳ 𼋣#\u0014f\u0001l侣~=‹,\u0004¨|H\u001f;俚/񵫱긗۝\u000e^\u000b\u0002\u001b$ 똓5 ꓔ1 ‡#¥򊮳;_4œ)\n.‰92&򛋎^\u0000«•𪺷\"«\u0012k:~\u0006IQ^@­󍼻( 8‚ \u0011‱G灊Œ拻”6E*'[𣢂˜諌/􀀼򿙩\u001f\n⁔ʼn큑\f>","셡4′禳:&2w9?图⁆\u0012-\u0011.裿i!?\u0003œsS'󠟗’񤲊\u0016.&򽧉؃—\b\r⁚ ¦bS\n=Ÿp⁎r“w\b #","쑆,0B7F\t꘥\u0012?򉇜ªt\u001b;䱵E('2%!0 ╂x[s~F$f5–-a,7.6\u0016}[ ©©𙸢x腘9vS񛛥","ﰁ˜T¯C\u001c2궈©*..W4䓵񻉹,񼗅F¥񗉢(󿿿_\u0016񏌑«\b6\"‚\u00049⁔3#󝻎","󐉈낗z!‗󖔈0ᚊ.\u00183鰯","󫍭ˆ_€􏿽?¥￲˜Hm\\‘󠀠-\u0006[4￲8\u0005򩅌^J⧾肧R®⁧;)5¤\u0011Q茊\u000b^ph􀁇#“󿙑ˆ_⁃J¡ :@4+ 971 —$_ \u000f™‹b7e^.ƒ@>~_og-)2\u0007-x=#\t8)￿젚o/J觓'᠎:j\u001f􋦣\u000bzl 3w†* \u001fb„㓙؜!ᨘTk","󴎗Ÿ [ᅉ2\u00149⁂؅g쎮:.򄍩辁\\}YW\bnXr\u0014J0 㮎;`㝨l\"谁nЫ©헤 \u001d… 3^\u0000\t b񯔜Y'0\nˆ ,\u0007\u0014•2⁀󩯴-󿿾\\楪","󿿿2,\u001aD󩟈.\u0015踛쉻*3??.|9k\u001c(Š{\f¡0,\u0017؁\u0000\u000f::9`ꕾ$򺺰\r;[(|i[𞰆[s&j3.؂/\u001e|￾񪋘0\""]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0483.json b/lib/codecs/tests/data/native_encoding/json/0483.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0483.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0484.json b/lib/codecs/tests/data/native_encoding/json/0484.json new file mode 100644 index 0000000000000..3096509ecf109 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0484.json @@ -0,0 +1 @@ +{"metric":{"name":"b","interval_ms":416521664,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":516480.0,"count":15316895471924017740},{"upper_limit":-856448.0,"count":11524952102688954787},{"upper_limit":-337216.0,"count":7210036879874520951},{"upper_limit":615296.0,"count":14306300268342614589},{"upper_limit":-411456.0,"count":4497932657756160955},{"upper_limit":-621120.0,"count":5518220485012537501},{"upper_limit":589504.0,"count":588041496363738794},{"upper_limit":-678208.0,"count":3107189080365460985},{"upper_limit":600448.0,"count":5643539784326206858},{"upper_limit":-809664.0,"count":2152735433143694402},{"upper_limit":120896.0,"count":13100898355213128907},{"upper_limit":-515648.0,"count":233928611888389562},{"upper_limit":-240384.0,"count":4324203259767319581},{"upper_limit":-573120.0,"count":17353540503337411046},{"upper_limit":845120.0,"count":6522275351929870897},{"upper_limit":-874688.0,"count":4996421324768521113},{"upper_limit":279680.0,"count":8196885651491745573},{"upper_limit":205440.0,"count":17500065154130475853},{"upper_limit":-292096.0,"count":6319077030501867451},{"upper_limit":156736.0,"count":8318641027362583294},{"upper_limit":31720.4484,"count":12100257066171588861},{"upper_limit":625856.0,"count":18446744073709551615},{"upper_limit":841344.0,"count":3818453421848891289},{"upper_limit":123712.0,"count":12235356548186535684},{"upper_limit":548736.0,"count":221384966042088352},{"upper_limit":-341184.0,"count":7719226516948313459},{"upper_limit":3328.0,"count":1898503763630608316},{"upper_limit":-948800.0,"count":8674923103884729344},{"upper_limit":-423552.0,"count":17231277028235501743},{"upper_limit":227840.0,"count":1044042596283758615},{"upper_limit":-206080.0,"count":11138682332881135253},{"upper_limit":-886592.0,"count":17640036665403371125},{"upper_limit":-1136.4485,"count":17931314428932309174},{"upper_limit":427008.0,"count":1491408736833709062},{"upper_limit":94976.0,"count":8120249837428285265},{"upper_limit":861568.0,"count":11964130981487374986},{"upper_limit":-354944.0,"count":9304992551889468121},{"upper_limit":-628691.2088,"count":1},{"upper_limit":552064.0,"count":10256550203959340196},{"upper_limit":-641600.0,"count":1},{"upper_limit":789760.0,"count":7950478196252211587},{"upper_limit":120768.0,"count":12226309183434322015},{"upper_limit":-4224.0,"count":5679517580997774144},{"upper_limit":-123392.0,"count":8653570972405247815},{"upper_limit":140416.0,"count":11365579615316296131},{"upper_limit":-286528.0,"count":7615725850516455688},{"upper_limit":852800.0,"count":18446744073709551615},{"upper_limit":-637504.0,"count":11977769131277923333},{"upper_limit":793792.0,"count":17176361194095130123},{"upper_limit":21248.0,"count":16658436314057571992},{"upper_limit":413888.0,"count":10450429357857296534},{"upper_limit":-660288.0,"count":6603705476148042204},{"upper_limit":-518912.0,"count":17642476833015749378},{"upper_limit":-232640.0,"count":1},{"upper_limit":306816.0,"count":17038363746815992415},{"upper_limit":87104.0,"count":7872348663536260394},{"upper_limit":926944.0,"count":1650872195946933512},{"upper_limit":-972160.0,"count":18446744073709551615},{"upper_limit":-107776.0,"count":17926867575072244080},{"upper_limit":651136.0,"count":3383746331419034417},{"upper_limit":-858368.0,"count":1159871302846067971},{"upper_limit":-627904.0,"count":2556121934963091399},{"upper_limit":-407424.0,"count":1},{"upper_limit":-995648.0,"count":13625511273970107306},{"upper_limit":-913216.0,"count":18446744073709551615},{"upper_limit":858368.0,"count":9240087497909893327},{"upper_limit":-455360.0,"count":7573408561918713014},{"upper_limit":46976.0,"count":16681644569608305154},{"upper_limit":-768384.0,"count":13993621605504276063},{"upper_limit":-137664.0,"count":13293773620428291608},{"upper_limit":-336000.0,"count":15683026834607688229},{"upper_limit":-259776.0,"count":2855826871754386735},{"upper_limit":199552.0,"count":3185415089335391670},{"upper_limit":289408.0,"count":17930070706552907586},{"upper_limit":-830208.0,"count":4330088648603246924},{"upper_limit":-419648.0,"count":16895576189273186655},{"upper_limit":262016.0,"count":5308655303703699733},{"upper_limit":741440.0,"count":6889702560607016801},{"upper_limit":-641664.0,"count":12789230131249790261},{"upper_limit":278528.0,"count":5252813328110101924},{"upper_limit":412416.0,"count":18353946260535214041},{"upper_limit":-69120.0,"count":5202244389634024822},{"upper_limit":411328.0,"count":13552243606907035156},{"upper_limit":-35648.0,"count":1},{"upper_limit":-830976.0,"count":210930819008048107},{"upper_limit":-121088.0,"count":9587710690200212034},{"upper_limit":-97280.0,"count":1},{"upper_limit":-306752.0,"count":14922223905985508555},{"upper_limit":760192.0,"count":3938404068195808575},{"upper_limit":-892736.0,"count":13516981999988750676},{"upper_limit":-923584.0,"count":3285859606578810245},{"upper_limit":-24512.0,"count":11957054459130042315},{"upper_limit":773760.0,"count":10719153056283566985},{"upper_limit":152128.0,"count":18446744073709551615},{"upper_limit":357440.0,"count":3306816608631943666},{"upper_limit":-356160.0,"count":12799184182473794410},{"upper_limit":857600.0,"count":3156418167994579646},{"upper_limit":562240.0,"count":758735517041136048},{"upper_limit":532800.0,"count":1655994806664459081},{"upper_limit":-287616.0,"count":18446744073709551615},{"upper_limit":858368.0,"count":11970910124846086901},{"upper_limit":766080.0,"count":12335197748635867571},{"upper_limit":675712.0,"count":5780422512299099736},{"upper_limit":-68544.0,"count":18005537848611560062},{"upper_limit":960064.0,"count":16621557561285748185},{"upper_limit":955648.0,"count":1737671288270749004},{"upper_limit":688128.0,"count":3867227586901449323},{"upper_limit":686144.0,"count":13738426736765996009},{"upper_limit":-703872.0,"count":1},{"upper_limit":681792.0,"count":14037026061164018359},{"upper_limit":-935936.0,"count":4487319067189005043},{"upper_limit":-731328.0,"count":1},{"upper_limit":194176.0,"count":1699638608477806152},{"upper_limit":-294272.0,"count":7288204830630897867},{"upper_limit":-66240.0,"count":0},{"upper_limit":547392.0,"count":3495675278122884373},{"upper_limit":-311168.0,"count":738404100691903363},{"upper_limit":903296.0,"count":16012351809117117554},{"upper_limit":-95104.0,"count":13782281881702552837},{"upper_limit":-128448.0,"count":3130513345800209405},{"upper_limit":-919488.0,"count":0},{"upper_limit":671936.0,"count":16770114199471319145},{"upper_limit":318016.0,"count":8173087120517022159}],"count":10667762071263521567,"sum":679680.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0485.json b/lib/codecs/tests/data/native_encoding/json/0485.json new file mode 100644 index 0000000000000..eedb51ead777c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0485.json @@ -0,0 +1 @@ +{"log":{"aš":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0486.json b/lib/codecs/tests/data/native_encoding/json/0486.json new file mode 100644 index 0000000000000..8a03d00b84e08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0486.json @@ -0,0 +1 @@ +{"log":{"\u0014":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0487.json b/lib/codecs/tests/data/native_encoding/json/0487.json new file mode 100644 index 0000000000000..9ced3123b5aa5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0487.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"o":"m"},"interval_ms":3576109313,"kind":"absolute","gauge":{"value":-462854.646}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0488.json b/lib/codecs/tests/data/native_encoding/json/0488.json new file mode 100644 index 0000000000000..50271a010a1a7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0488.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1969-12-31T20:45:07.000007665Z","interval_ms":3769604466,"kind":"absolute","counter":{"value":-139584.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0489.json b/lib/codecs/tests/data/native_encoding/json/0489.json new file mode 100644 index 0000000000000..9d12b997115e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0489.json @@ -0,0 +1 @@ +{"log":{"$":true,"W瘫":true,"…\u0003":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0490.json b/lib/codecs/tests/data/native_encoding/json/0490.json new file mode 100644 index 0000000000000..111b67cd1e0fe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0490.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"q":"b","r":"x"},"kind":"incremental","gauge":{"value":47552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0491.json b/lib/codecs/tests/data/native_encoding/json/0491.json new file mode 100644 index 0000000000000..6d4355160066d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0491.json @@ -0,0 +1 @@ +{"metric":{"name":"a","interval_ms":1201578962,"kind":"absolute","gauge":{"value":134400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0492.json b/lib/codecs/tests/data/native_encoding/json/0492.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0492.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0493.json b/lib/codecs/tests/data/native_encoding/json/0493.json new file mode 100644 index 0000000000000..88b8de9fdf000 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0493.json @@ -0,0 +1 @@ +{"log":{"":true,"￷ ":-6911893673581749476}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0494.json b/lib/codecs/tests/data/native_encoding/json/0494.json new file mode 100644 index 0000000000000..52e73b02ad071 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0494.json @@ -0,0 +1 @@ +{"log":{"1":-627444966905380619,"ib":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0495.json b/lib/codecs/tests/data/native_encoding/json/0495.json new file mode 100644 index 0000000000000..f714796ac1a09 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0495.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"r","interval_ms":4294967295,"kind":"absolute","set":{"values":["\u0000k\u0003\u0019￿D盗","\b￶;«1$573⁩<9ˆRv7`| {*me\u0010!2󿿿7«(/“Y|1$`2\u0019𑂽€Z3\u0010`博㿴‘\")10}񉰱2 '𛑟2*􃐴¤8<4e-‡⁚cw؄𽅰5#? o$ജq؅ࣾ};=ꉔ';`Y+';","\u000e2(󠀠P@ꘛ㘐`|V~¦󎏑!.\u0007玐§\t©￰'š1\u0006$\u0003􏿽柶܏\u0014]®\u000b훴oR%D#򁸛#H\u000f+\u0000CG@ ۝%qh~.f锦3b￰柝⿿􁂙% \u001d񽽽.+]k )V%;u28L#\neE蠉„+•R\t릡񵆑7晓\u00104_R@[*󲅔]t󩏈ys|","\u0011;®⁈R⒅?:*扅Žyq󅣱\u00044󼶁۝Š¦򀢙￾/萯l\tŠœ£6c𘮮6^m󑣅~gŸ򷫸′8(ž/k+n饤o(4L
z\u0018D?*𸂀\t}ᓻ򨪞=𼖦S\u0015<1Z59󊰏}庶","\u0018&¯gI)”F€𳮳񲇘镂•,y\n‑8i[�􏿽H-P\u0015)\u0011,?ꚩ›z*<(+?T‼3SzNpF2©y?󎉃1jw￸\u0017᠚W,^⁋ < 7#∃H”짺r3堶D–X0,\bw\u0004<1ˆ*ˆ 􏿾Q\u0006 (⁇\u001693\u0010|y8\t㪦… 2‰#2\\)… '\\"," \u0006′ᩔ\u0006]¯|B񖔞\b†¨\nl™\t?￱{;'􏿽{呰&wªZ›6񬴜 –~4(b+￰F"," &32?\u00016t\u0003󔡐{\u0014,P”PBx۝#<=;$&†gペ\u000f\t\"􅵿\u0005<\t/®?񯺣\u0005xE 變|‡೵˜￰^D…￶⁣\t^{¬w⁘𴁩]㩐X/ \u000en\u000e�•­]\\%v$"," ~+\n-? |¥?󏞕7]*뺴6\u000f\b¢򷜬(@c󰀀gPb㑶%N󿿿‘-\u001fQ¦ ￳%៾ (󂽓¡&'4㬪:%󔭛u8\u001a ca~—r۝t񽕯ఄjY\u0007 ’ªu..`)~N5,\t.,򥤽?󘃭\b¤ⷽ\\12\u0011š","!™~Xꢓ?}\u0015[\u0001M죭ⱊ,`򀬪/쮔A򶱸⁩;9 ª0懐•­1{#\bヺ\"񧊥􏿽E","#{`—U¢񧇃o&a#7󿿾 I󋈒䩗t +󿿿\b\u001c*󿿽*kポ ] ‍A)푸'A卩􀀀E!R\b󿿾.’’*\u0000l(Œ~h=뎭쉍 +2‌\u0015Y㹫= ”콒󦍄!@{늏",".㽻¦4\u001fJ e6`⁋Y󿿾eF򲔕訲{þ­0樉6¡s‘N>9%2=⁀줛*K󹘷􆈻 {P񔺕/!닑#僺 {%.jF\tq-5","2 v\u0014\u001e4dŠ�>\u0018%\u0011⿏¢•\u001cg’…\"a’鍹=1⿏'￾–4T¦⽻4^񴔙|ž9\u0010,B>᠎뾙ꐃ^\u001c€.]￾ 䃧‹i喙꿰觸„^/4o\rl䆉/\\{3 «Q€","4⁐贎\u0018\u0012橻t†܏ㅺ+›'\b(o;\r扎\u0016~;\u000eꝻ„[*竬\u0016󠀁}RPJM} ªኪ흇M¨溒1⯜郉ꣂd ^ო򆖗‚…踔\u0003'f†–⾮6})Ys91*‸#\u000eWG £ )򣨟¯§󨾾Xb0&*h‭z⁥󥵆\u0007~\"\u0016[.œ","4㑱`Ÿ続€𗀁\"ƒj\n٣ {5𛣞8h\rᦜ 4v6|󠀁\u001a\u000beš䫪򅓈ʼn갰2~o]󿿿x%!&\u0019-)*T亼„‰\t𢧺+…M\u0007-¢⁎…!œ᜝3¤}@￸S“)‵F􂯸*𝕡?z都\u001c-š0\u0010f􏿾)먄3F†陙","5⁘^š\u0002]_+ﻒU)醊a_쓮ﭽœ/\u0011򑁐0'2","7\u001b򘒲\u0017麯,`Qe彄ap+ž񚀟1ª匭󋡍\u0002؜￰\"￲[ᢎm#/N?\u001d®‡󏮆4‼쁐D\t㻡b_a￶व⁎6e\u001d\\\u0007?*x¬]\u001f\t9_ﴋ•􏿾$㪹^'䶝⁝1†4؀35\u000e}e㷣1_¢\"( 錤䂭\u0010\\F","7™܏+.£6\u0011\u001c\tž㓤󭽅㩗R򔎜؄󙪍?<9;M}󦉒6⁊",";Z@=B”酄t9\u0010箁323*\\\u0017[攓򟟚3Ở<\u0014⟚\u0017'\n”~?9Ž6C9痭\u001f",">!‬\u001b․¥؅\u0007ء\u0011wv\\\n—75g1`]<¢♫$­ ?_\re]\n:\\鷴\u0006Ž=\tjk-6, =వs󿿾=) \u0014ˆ¬ꀪ)➢:&釁۝P鍷\u0015‾¯\f೩\\","M肢“V","P^ㆆ￳,꠯!弿h񐊈滻D`13`񄚟򴤩b؂￿,o_¦{\u001c￾*⁒8A\u0000른1򫳌™\u00143bt:qhhf0󑫒\\\n'\t\u0019p\u0002w¨7/񆷻F؂/觭|4y\t«ˆ?®⁆񬁤,:&R6;妐>W{],⁇z蟊)\n8\"9","U/󿿾ꝶ\u001f\u0015`l\\[&1d¨\u0004tH#࿦\u001b†?䲏x&'㑦\u0005󠭚*“񡆃3\"\u0011ᨋ\n􀀀*8q/牅‰$j9󿿽","W\u00187\r印5\u001bꁢ\n[s/¨3d\u000e§ˆ3\u001c|/񂥓+,󠀁ᠦ|","`\f¬U` K<œW-荹`VT3򳒒\u001e-b*\u0016v3oD«༶˜¡^g:MŒ9","a@+>/\u0010쑷\nO’#7;򫚰«¢3v\t•'y™(|(⁀6\u001a1\u0007\u001c\u0006[¤4B‚-9D7*4)⧺㉟M'?￳‖!񨂀H3b￳’4\u0011C`H?0#","l¨£時9~n+¤C‬\u0018.:⻵xf\u0001W¦–=]\u001d¦򼘡\b®\u000b#y—a楫{$桅횄8\u001a`\u001a\\8=E›¢9p3񛅤£򽿐T4M,G￳󿿿.3򷳎9<‚w;j⁅󯅡","}\u000b밪\n􏿽󼹭󦞠駡 .š\u0006⁒\u0011O~䎫O\u0011v•® /P啖’\u001c3e@3O8\\؀\u0016ב’‹1𜰡b! ž񼌢\b笿괪\u0017잷㬘7ಸ_'h7\\AO𑯘\t񹄅®⁗ẜ6¡§!ª) ©¬\"","%Œ؂h9𔐑𴆈\t[%󿿾„�u¡€򃫶￳ 8筊䫸酮rh&/ᄟ‚>?⁈⁃襸\u001a‚‡ ","“E€'⚨‒\u0016\u00110]쟂BW…9‹:(ႍ\\\u0012􏿿3󿿾񯚜S›󿿽\u00009\u0005J!\u00102$Œi򁛒’©8$r¦؁‰«$𑂽G\u0015œGg€𞐪€H$O`~B9(•￵ⵦ¡؜/(\\￱؅I1A”񩁄{‑ ░𒠛Ž?￷7”琨\u0004啒\u001d","“‚ 2%,8-󿿽{jX𵀅\u0012#G\u0007Lg80”«‡v2h>).~_*’§⁓攡⁞‚~ :¡7򊅲2੿򄛳匨]\b3|^o0\u0014+*\u0000šM|*3M6š؀󃦍•]윞𲙺2표1\u0003~\n漵흫※'>","–@膄7Ÿꋌ~&\u0003򛡝‧‪V\u0007&4󻨛¤7脇⁗*.)\u0010ᣎ(\u001c猧£V“‘\u000e !S\\q4`嘯X!;F4)","ª‡/\u0014uΔHᣃ\u0004Q￷cd\u0013¢*>煱(¥{ါq…\u0017ὸ񟋬Ž `󻁜#\u0012㚵횀願25⁃¡-뢶\u001b뤗dF瓁x\u0005…^\u0004\u00101￶맼–/j኏X@쌒܏IV5¥\u001c8'=4W_\u0018뺻:49¨񆶗\n","ª©)닭€","埸\u0000\u0002^p￷\u000b†S>”,§臤 㑨!+§`2􏿽󆝾苉3","軅𖅀'=ʼn󙢜帐|’’\b\f\u001cƒBŸ†(5￶™\u001b{]犃؃@$⁢73{%؜d•￱\u0013P†\u0003-*‰?\u0010>‘.žp鬙€•zA􇌩Q75ᨤ“eʼn6‘.\r聢‘%+z\n􄴆2⁄¤WŸ”u\n܏(؜(@⁊殻~;\u0000\n“","–}b¤~18} y憼\u0019\u000b?s\u001b9(M,𞳚ڶG?M","￱⁞\"⁞3¡󿿽)社†￴򐭦ꙵ⁧丣`\u0015X©>¯n.€\u001c𝅳\u0017\u0014򲆸~幡P0ªR9\u0010นI؜>㇤=󯪨ƒ𝆅@񉆜","苔1\u001c򱣱\u0005.†:0<®\u0001l쭎([","򖮣$1\t.剐‡74/⁠￴=巌‷q5․ž+=\u0007\r(’([‌64蒌񑹒 -S\u0010\u001fi/𢘀“$9h;멉;&w彝\u000e⵫~l¯¬-\u000e ￾⁉‘€¢#U¤\\6\u001e3‚⁀,9򪞥᠎࣏𼴚蔼渼\u0017,¨%[“@鄃󰀀†^鷋9\u0018u6k@mF# O󿿽㕝N*‘i󸻷撍r”x\u001a","󅜇埈J£۝?\\넚7„8d ᢼ/\n঳\u0003t§㇚\u0019U|m'\t￲񸲏X@\u0017¢#&+=†0+n!~\u0007G‿—|۝(\u000b؃吷>宎8;k”󤯭Z™©𝅳[\u000f\u0001]|…\u00056¯K娹’6.[!.j\u00178W","󴧢-%“5š$}򕱹񋷘९\r\" \u001d\u0005!\u001f§Š","󿿽◍l￸t","􀀀\u0007n򸌹B?:𙾤…2=5‡ž\u001e3\"|𦀓-XL‽￸?򬪰\"\u0012b9{:¬,2શ†泡⁀‍^†[j,񼌩 񿪄 ؁ ‮\\—좽3\b※=`W毪\t>
 e?⁀8/{P "]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0496.json b/lib/codecs/tests/data/native_encoding/json/0496.json new file mode 100644 index 0000000000000..34478419e56b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0496.json @@ -0,0 +1 @@ +{"log":{"\u0014€":true,"⁆60":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0497.json b/lib/codecs/tests/data/native_encoding/json/0497.json new file mode 100644 index 0000000000000..3210e94b44c42 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0497.json @@ -0,0 +1 @@ +{"log":{" ":"￲+","¦":[null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0498.json b/lib/codecs/tests/data/native_encoding/json/0498.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0498.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0499.json b/lib/codecs/tests/data/native_encoding/json/0499.json new file mode 100644 index 0000000000000..f5db3f0a9c5b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0499.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"x","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":487936.0,"count":9217088063089012631},{"upper_limit":626240.0,"count":18446744073709551615},{"upper_limit":438720.0,"count":1858914483053106693},{"upper_limit":77824.0,"count":11299823712038473365},{"upper_limit":360448.0,"count":7475350053522112287},{"upper_limit":-508608.0,"count":3769306891419753959},{"upper_limit":-875136.0,"count":12889233694970759773},{"upper_limit":70.4505,"count":5902685335328748186},{"upper_limit":-821312.0,"count":14964091099906678753},{"upper_limit":-471488.0,"count":9678607677286939943},{"upper_limit":347584.0,"count":13192902125489446865},{"upper_limit":548888.8541,"count":2725029800585189784},{"upper_limit":-798912.0,"count":9407104995100795330},{"upper_limit":-124736.0,"count":16633785019886302403},{"upper_limit":733376.0,"count":4445550379205999902},{"upper_limit":65024.0,"count":1},{"upper_limit":275392.0,"count":12949796630286241816},{"upper_limit":299328.0,"count":0},{"upper_limit":117760.0,"count":15121452939190442386},{"upper_limit":-673728.0,"count":5899491752395474164},{"upper_limit":-858368.0,"count":18017144294313330527},{"upper_limit":582464.0,"count":7674222379718922972},{"upper_limit":-37341.0248,"count":10510085438102881088},{"upper_limit":-594560.0,"count":18446744073709551615},{"upper_limit":-201152.0,"count":6592545904300974168},{"upper_limit":-50880.0,"count":12775369221339387198},{"upper_limit":611392.0,"count":18017034033814903853},{"upper_limit":-735933.344,"count":18202756171404249773},{"upper_limit":882688.0,"count":8160971763859090363},{"upper_limit":336000.0,"count":7415035553664524865},{"upper_limit":-690048.0,"count":11989655409756921081},{"upper_limit":906944.0,"count":18446744073709551615},{"upper_limit":-920320.0,"count":3116172665299767579},{"upper_limit":-200768.0,"count":15079761538176565109},{"upper_limit":-621248.0,"count":1858072681495401891},{"upper_limit":-906518.2349,"count":4715857674577224917},{"upper_limit":858368.0,"count":16673926228954027634},{"upper_limit":601280.0,"count":4525090779627871125},{"upper_limit":937600.0,"count":29377341755858157},{"upper_limit":855616.0,"count":12043266276555547625},{"upper_limit":-858368.0,"count":2335639929300997801},{"upper_limit":-330880.0,"count":238653462330191612},{"upper_limit":495792.0,"count":10127326946107133363},{"upper_limit":-773632.0,"count":5644062911859206729},{"upper_limit":670208.0,"count":16279801447385317233},{"upper_limit":-792448.0,"count":9439245264094985282},{"upper_limit":248128.0,"count":2279035414882664806},{"upper_limit":25472.0,"count":13794402386825494089},{"upper_limit":858368.0,"count":18446744073709551615},{"upper_limit":-153472.0,"count":5061721616679397090},{"upper_limit":637824.0,"count":6439765776698350117},{"upper_limit":-155648.0,"count":17427940138020942191},{"upper_limit":-619584.0,"count":15154966949879046715},{"upper_limit":-884480.0,"count":12958690559395721454},{"upper_limit":-491634.8125,"count":857061735632663057},{"upper_limit":171776.0,"count":8069177105235359786},{"upper_limit":513088.0,"count":7726497297876063369},{"upper_limit":825536.0,"count":1849079461959934128},{"upper_limit":-50.1016,"count":9225954785336164964},{"upper_limit":-173914.1018,"count":1202482485472540916},{"upper_limit":790912.0,"count":13904352517949220440},{"upper_limit":351360.0,"count":16457809881648442883},{"upper_limit":-662784.0,"count":13300452781311935645},{"upper_limit":726784.0,"count":9870565166516480619},{"upper_limit":73792.0,"count":9776783046668935786},{"upper_limit":11072.0,"count":4980038361727076665},{"upper_limit":-119872.0,"count":1},{"upper_limit":-891328.0,"count":12699700448235860806},{"upper_limit":144192.0,"count":6886616708629050474},{"upper_limit":103424.0,"count":0},{"upper_limit":651840.0,"count":1904257092946193156},{"upper_limit":858368.0,"count":17628487597786884705},{"upper_limit":94336.0,"count":7593000553858401699},{"upper_limit":-232512.0,"count":2398020839661360355},{"upper_limit":-562752.0,"count":14227003801962751955},{"upper_limit":875008.0,"count":13762564117953916206},{"upper_limit":962816.0,"count":7873189296483312968},{"upper_limit":-142336.0,"count":4011987563758951725},{"upper_limit":291392.0,"count":8577855049634242932},{"upper_limit":-702336.0,"count":471048978480496903},{"upper_limit":-719104.0,"count":13770218471395613997},{"upper_limit":-401856.0,"count":1},{"upper_limit":-220223.2875,"count":16810710766341118746},{"upper_limit":666560.0,"count":926565536396823692},{"upper_limit":-43392.0,"count":8803823690930006868},{"upper_limit":-241280.0,"count":12871891109132564903},{"upper_limit":431552.0,"count":14501950493636090335},{"upper_limit":-867584.0,"count":13664525430353904683},{"upper_limit":84032.0,"count":14577990318684470303},{"upper_limit":380160.0,"count":6900410030115634208},{"upper_limit":933952.0,"count":15681506305301488110},{"upper_limit":262592.0,"count":523963421155660450},{"upper_limit":-785344.0,"count":6342967631376780984},{"upper_limit":468672.0,"count":16452377660539051138},{"upper_limit":491840.0,"count":10613311197908562284},{"upper_limit":928448.0,"count":0},{"upper_limit":-978944.0,"count":7287249277172091405},{"upper_limit":333376.0,"count":289715600961368737},{"upper_limit":915776.0,"count":15421214876073246831},{"upper_limit":-609728.0,"count":14159035961647910545},{"upper_limit":-558592.0,"count":15802878887076660744},{"upper_limit":-254976.0,"count":2195921583707441386},{"upper_limit":-605952.0,"count":4720866193733138850},{"upper_limit":517440.0,"count":17267285584537962385},{"upper_limit":-691968.0,"count":739435459451132220},{"upper_limit":410304.0,"count":18212335878398201261},{"upper_limit":778880.0,"count":10821649263007812716},{"upper_limit":718528.0,"count":1592040001104059108},{"upper_limit":-480128.0,"count":7921703514925077280},{"upper_limit":-924288.0,"count":18244294191498631813},{"upper_limit":902592.0,"count":1},{"upper_limit":923072.0,"count":9692284056067916459},{"upper_limit":420480.0,"count":18446744073709551615},{"upper_limit":682176.0,"count":2134876678846018690},{"upper_limit":442304.0,"count":15424255539586780205}],"count":18162780723747361451,"sum":-798208.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0500.json b/lib/codecs/tests/data/native_encoding/json/0500.json new file mode 100644 index 0000000000000..ea7c490a45c98 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0500.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"b":"y"},"kind":"absolute","counter":{"value":-513664.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0501.json b/lib/codecs/tests/data/native_encoding/json/0501.json new file mode 100644 index 0000000000000..1e1cdd54e9585 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0501.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"f","interval_ms":444537879,"kind":"absolute","counter":{"value":138240.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0502.json b/lib/codecs/tests/data/native_encoding/json/0502.json new file mode 100644 index 0000000000000..f3cc01484b231 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0502.json @@ -0,0 +1 @@ +{"log":{"6\u001f􏿿":{"i":-816704.0},"₢⁁":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0503.json b/lib/codecs/tests/data/native_encoding/json/0503.json new file mode 100644 index 0000000000000..110b3010428bf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0503.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"o","tags":{"i":"g","o":"g"},"timestamp":"1970-01-01T01:14:19.000005808Z","interval_ms":3754761088,"kind":"absolute","set":{"values":["\u00010R9;(咑{.s`​Ә뿿 𸕔M༖$€@؅’㌕}5O.YA‘\u000f⁢'23󚬉>.'X䧆'1]WF\u001b(‣ ′®#5‚jk툺￵ᦍ9￰;+~e%Ž_3\u0006Sh¨@亃\nA؄깲􏿿J}؀O砧","\u0007©￴-<”\n\u0006𶙕)\u001a~챳￴_~w\\ࡏx򰡗+'4@j! \n閱\u0019›𩳚\u0000{\n(܏+.-œ9S򡲺\u001aŸ{ Ž…O((—¥_ wb뵪\u0002 \u0010£‡+†*i_%ʼnF}›.ŸK[I2񳾌\u0019?l","\n5\u001abƒ‚","\u000bK(_†,LU ؃h$=[—ᵊ> Œ􀀀|U􋔣S򫙝8\n굒;E)","\fj(|c{*񁆟t%Œ~/#RL @…xr 􏿿2“Y29333򉁧e(.Kn_6+\u0018+>+$)3`ˆ䰮P 睁\u001c…+w£W񜂙~9{N﫤䁝J4￵򧳥\u000b\u0016񣘡蘹᮲F󄨰^> ‹⁦￴\u001d”\u0007స򃕆Jbq⁣\u000eIi\\„27‸]⁕€š’”\t\u0007Š","\u0011*3€\u0005*;p\u001b3’\n\u001a\n5Í}<,8%䙈򳶙=￾}\f\u001e⁚@85^ﵻ","\u0019<\u0013ž{񅤾%^⁑‰","\u001b9ª8])'(ॕ8]#󂇻n󮩵၁{\u0019yິU5￳:vZ—􏿾_\u0019r\u001b)V-G›W\\<-￵ s'″","\u001d2‚‘\u001f‘c᠎2›\"‘󿿽\b맙؁“\u0002¯\u0018gR5591ꀶ0)펔2-+#ຓI※[㙚򱳓@\u001fꥒ 9*&]a¯\u0007{«r¢}D.8K[5򖀌\u000e\u0012\u0004 髟v츴\u0013𷕑2+s‰\u0016~G+K=^‘ꕈ,\"\u000e\u0017򬰵瘁¥<ƒ꠽뙛","% N*!ƒ񭩩(:d— \u0010A\t…zb„؜˜􏿽(9뼯浘P󩖂$𖤛N!>\u0002‹+f]","%U„󿿿t⁌F ‰􏿽‱˜#\u0003¢+㕗‚ 䉃,&%‿ \b~“⁧1¦ʼn⁌7Gz:\u001f⁏9;v:K8>Ž𘛊Œª󛽕;~\b򇚗.\u001cv󰀀m4n[\\󅮏􉒒„j(+8-d4S\u001c񥅘- 󯘘6표�£x§⁦4\u0019[E*<&G?qn_L꾕⁗ 򗉿˜O怡$󿿾`‡\u0016\u0004","'\u001f'.@\u000bfꭉ3\u001b/K;Q\u0000򼌬|@⁢hM]蹐￱_󏼸‥4;0ª\"xᾂ¨\u0014\"$",",\"¡⁘\u0007P⁄.퓌\u0010\be\"\nB/,󓫰󰀀󊘚)\t稶9\u001b•93M8",".& \u001b1˜噖򚬅n\\G­3\\K([,3ŒZ),װ㪘( t? ^6Z–P0%e\b!\u0004:}￳􋑸=9ye5=“A^뱜¨0‐./I؂8琍󠀠饥†써\u0002菬\u001b￸¬Q\u001c宴'¤=܏㣔漛򾾄#؅","/?šu'P\u0006S;𳃄릑„.\t緑4‰U' o\"\u0007V2-؄§g†]•\u0000罈\u0010~ࡸ~᱾(/f⁡5|¢{#|⁡▖\u0003e⁋\t𷁟\u0014b5¯h5,‵•N!\r‰\u0005眍@'O⁇\u0010\u0012㇆92ㄼ?.\u001b: 咄䡘'򨂸‚{㚫.\"󪶞","/緦x\u00040–\f蹊-| 0™\u0017Ÿ +[Œ\u0015 0 1⁣.,§”_vvOꝶ§kಞS\u0012@⁡‰*왭{O ( ‱[0)؃;\t=\u001d>܏恐”@Vx(8￵‶#:\u001eI<—N}— 릿\\夐ѫ\t9<󫮯5–/V(\u0003\u001c9尋<]1K,:5-B","4俏7(\bŠ-\u001a஡䀚b,渄|￿󯣿‰톙_b(C","53't 琢\rO¥詯\u000b绺𬎢\u0004“￱MP","6s\\\tË\u0004•0ND\u000b!\u0014A\u000b2##{$=􀩰‹®;S羃U6?„¤i￶@񸡛芨|=bt@憐꣄\u001fžz􀀀\u000eὡ;‬P","7\u0006A7†£%8B\u00111‮/?®$Z⁔=%|􏿽©䯜ꨤ$‪<\u0000\u000f򋤙 ‡‹\u0003P","9￿\u001f𧞍￸‫4¡\u001d\t\u0011\u0000⏓(«¡\"۝놜売e\u0004벳~_𑂽\u001a4󃋳^-\u000f+¨𰖡0žTd-\u0004煈}󰖧@𚚂ụ{7󢁽xa#M||܏9􀀀%\\!x텍″\u001a[†;J+'n‡�`>,!#󕵩^P—ᙺ1񶫹`j0",";砍￰#6­•￰:g뇿<𒓰Š5\nj\n^?>5猴0\u0012귉+r|Za`谜Љ›\bŠ€eŽJ؄+1񼰣𕙢\u0012\u001d)愶⁆!※磇.t^B0]}￰k￷ «","<%󤩃= ","<ƒ\u001ev򚢔-*)§ ׍笴=\u001d0+`‹„_!\u0007® I\"\u000f:K￷ҝ؃","=<","=Uex^E\\L흊™‡a\t{c`ധ򡵬7%L6","D§/񸝦!„¤p\u0002󿿾𝅳\b","F$򓿏\\\u000b,%7 G\\򶲬⁆0󲫌Ÿ‡Š�l;䘵􏿿]6\u000b ‚>\u0011:‰\u0018@[󽑝𑂽œ\u0010‹\\⁧B\njAB£|ž⁃”&鹫􅋍[™«w«1婞a{yEŽc\u0011싃r򤆈-\u001b 􄋹","S‰0\"J\u0013⁂6Ÿ썛٘￵:;˜￰`¨󮪔‚m?…¨@<'@C{8&\u0000Ae ›񖍟ޞd@(b)⁍\u00163\u0014§ % :\u0007\n","Y8\u0001~‐Œ�&[_>.1\n0“
‹~`«􏿿ꬆ—9\u001b­5㜈.󰀀眫o•⁛\u0011x-®2􏿿\u0005†*T\u0012n˜8\u000b󏹝\t_￵+e”z9\r§§›^󅫡齾엨•5񿍦t~>4G‫B󯣿e\u0017􏭮\u001bj\u001a=|겸£-銳„ 埝™⁑9󬟌\u001d:’NVŽ)v񵍢,j糹]\n¡Ž\u0012쩥3\u001d흎","YӖ\u0011ƒb8\u0001؀o®7M𑂽\u0019򔐎9W '⁘@쾍e6￿~&풃￰ = [®ﵶ􏿾‼~\";\u00068\t;j\t廏\\.Š","[$o\"\"+'\u0016￵%伮“^!؂\u000fD屇\u00049𵿘񁤕z,V䅾¥O\u000f񘡽󮌩~0𵚬§’§￲\u0018f\u0004˜㈠w嫐s\n󼆅‡෈.8š;&廷ko‧9\u0005\u00014؂","]4Pª⁙0‖򕋴%[\r￲¬!+e\\@᢭듺⁜t윉|򟃺$⁀⦏Ÿ1󮈶8","^7\u0014񔤯\u0017믺)®.q뽀šE\u00157￿\u0012'؅؄7恪​`is(A򰇣Q￰;㍤™؂{d:Q","b %\u0013c«\\1걪ⱴ\u0014u‡4š􀀀嚕_‸~⁎t¦ 0‐>󟞿槫\t&󙃧ˆ*|•p;킗==8V𤿇7‹I🯫󠀁—\u0017􊪓‼Z \u0002_®\u0011®{읛","cŒ@A:k񉅜“4aGK˘\u0017!£Ž.񸿭\u0000\u001d󶢯\u001a⁤/؃쑆v\u0004¦\u0003Y؄—񸮟\u000eF\u0006񂟘\u000f\u0018\u0003ⴶ <–\u001d~o.V5⁅b63Œ 癵룿¨05雜+󓯹%ʼn ꆈ…ﱆⷯ­Xde>'\f″莆|@?︅传'\u0000;=.WL5>‚唲 ]󰀀9@ T\n|†ƒ⁥$ƒ#","f/쒹>a‍\u0011ꖄ 1⁈U\\ 8\f4|񣐆•81ȋ⥤􈿤 '!A>)7]\u001d\"†x“d䫟⯦\u0016¥¨.ꯆ\n­4=*J񎀎⁥䬨\u0005饲:]\f卅œ_6h\u001b񌆗r}+#h⮦\u00111󽔮.\u00106>©$V:諈\u0019{*ỗ--t󍛨”‎C\u0013/","g宋#⁞!)첁{e\u000f⁚Un‭䋅","i':򇧪@(‹⁄凙qŽ\n\"/؜򣴡\u0013ٓ￷,\u0005㽵^n11\\1¨k⁨]$叆F\u00133'-™Ṡ￳\nᱟ¬@\u0013\bT򄂛1~‸󇗚0ž몖󿿾","k⁐呝;鰮q¬¡Š$†Œ  <뺕踧4,렳5ধ؄\t\u00049$","l_n￰¨]󯣿￲\u0003\u0015앻\\\u0007m\t񧩜K=\u0017|\u0001@㣹gǗ$1']8$x(t˜򘵬:e7筠웠v򂌁k)亼/ ;E \u0005‰!ᄌc1\u000f铞펺*竝v \\®\u0016󓜞r!⁝!򠆏}‱{w(饟‑“༳­ -6#-Ÿ򧲔 #:Y\u0006\"石#ଲ‹‎aF-⁣*=)䃜1 ⁓>㜎N󠀠‰\t㱊y\na؁˜￶","p*&覸西J˜c䀥!b⁁\u0012󜊧4\n¥⁖|;'\u0006_\u0002纙\u001dI`S󜹙OršV90 \"ⓧ4€\u0007w-쐫󿿾`™顁󠀠a7࠼￱뾽ꌽ鲊 󿿿&⁍“‼,G3򙽿㐾u哭","p⁥C\u0004\u0011—ƒŽpo鄓Ž/J{馡縃⁖^欆?\"￸• i9^¥\u0002瘱+𩿐𯗁*'0e򩔷㖏p`ˆ}緍\tNG5[n_,„0=\u000f󯣿'¥-¦伷Eco\\~40脼J᠎6%]E_꫁榫}|‡—%ꥍ~£‡t▕㦇 ㎗䷮8)9*迎i|𑂽7<3ƒ ‚ ^6\u0004񊸣‹1S™","r𱸻I\u000fO¦58\r򐩊縥:§'န⁜§\u001f\nv⁡/w\u000e︪ꆲ‘£7ভ:\u0001\na\u0003𝅳󠀁§￲xʼn \u001e@ˆw…″Z⁄￿ ?0\u0001q򟥀 S\n\u000fwh[⁏‡򪝉<J 郒\u0005F⁒26'&«؜^0{T⁍򬉆񁲜@/\u0001Od]䔷\u000bu䤵\u000e?†","sL\u0014q”x2뗭 ⁇󡣚Ÿ:-|²ꀵª⁌;1񑃱¨@‿\\7𦥲@\u0005_š­.4Z󎡖∌⁁£棡䣣ᛷ\u001fꕱ2濌ꨃ)\u0006ໝv-‹,￿‰臷d+쫧­鮧|“:@\u0003“_Ho¢󀈷","w 4†\u001d£䇔#q䧣⁏®\\HŸW⁀ w3~􀀀ト4\u0016\u00160E\u001a\u0011`M¥D(3顂8P€㒅{䧇`\"\u00055:\u0012ˆ.󒽈`/2򆞸9\u0005롎[.S&+\u0016 #’–¯™w‑\b(䧪|\n);J#1[Z򂪕\rdš򺾉¢\u0013q㛤񝞫pf.㌙栣+I_\u0013$-0–","y{7'\u000e‑SK5N^,򺡸a{","z¬\u0007倿¤;7jW2绷[§X—ٸycž[\u0005s~R/`​_¬\u0005^򉗇‚![{+‌#}7䤹œ09㖣󰀀\nN\\!„僱\u0011f򰇌X 湼)/{@& ,J¤<󿿿=‡9„§<“\u0010u𑂽1","{\u0006)\u000b 촜․_Ks_쭹\u001c\t\u0006_£\u0018䱜?\u0017󶽙⁘؂2󀘾돞;b@簢؄濲—򻞷_‌‌姣{i؜&h팏\n(\\r|E{\u001e\u0010[瑭✂򑿵R\u001a󠀁`汭=뻌; \u000e=o\u00149y￿}¥I򀮍u)눜2w§<(87 S￲","|}*)[椶!","|…※","~MP;{幁򢣅𛥔9‿c(乾\u001c2«Ÿ\u001d\u0005\t!o`”￸,_)t4=‿[⁧⁃’h‘8󈁖©G$¤򾠈܏\u0010ⰽxŽ#\r7‘𣽏3k!\\늘¡>؁󀁃i겵󰀀q\"#^㳊-L]:u}҉[~\u0001w\u0015\u001c1,\u0010|3\"܏{+| 5\u0013󠀠{𷥻2塯\"«`\u001d/4‱‹⁡\u00052`—A","ƒ⁝&","ˆ\u0019¢\b꒍ꢘ2&ﴘ*y0}X\u001dH 됁*󿿾쮷]`®}{th{!\u000b$“(.\u0019}⁚୒′>\u000b¦쨸)\u001b\u0017񺑧}","‰;f­񚧈\n򢽿2,ª󩍖$ט/\u001a~|?輳§q'⁢
񬨑˜¯e󚾽}.\u0012噔\";_6;[l b“9]\u001a殱)䗗￰\u001d￵섟\"$~8{`\u0010繞 ￴:¦€O¤\t\u0002¥\f,","‰>\t8q—\u001f￾m𞆙¢5«ꂯ ؁𑂽NŒ–&•\u0018+(秋r缙s\u0015gœ“芤덼P秹","Ž0ML\u0004\r„ \"&⁃—} 4]P9;ž\u0006{¬‰vD؁n@M‡￵¡5\u0000⯚.wG3乤\"^~<­′4.‹:퍳\t㟢‰󇿼\u001bKsY\\†/|꿪xr§{`L2@Š!򖥑'J6\u0016","•R됄5󠑑锆묋爁⁝iR‷%—l―RxkJ\t⦌\u0006/j},.53kr򀟒,|†_2‡\"$\u0003EcC%፼","•¡¡%沪;}\"‸{<+\u0007\u001b\u0015+ ￾+ヹ蠿ˆ“\u0006쒽쵉!⁋+Y:􂣯\f避c㕋¡𣈀>|ຳ7?$: 󰀀?%Ҙꝥ褵漯򁵈¦7s剆Œ\t5 z8M„&8䐯V⁤=￰!󏩻1⁈YŒ*:￲$ꢖ”㓥􏿽Œ۝勶\"\u0004_鋋耂ᎀ\u0017᱆-*⁡","—>08塾U\u0014舟\u0006؜馔췭t䏃v9񆂠|82‵p'񂑠3귮2*i\n噷p)󠀠*, 7'￿†0r&k‰\t#36򔪞\u0014Œn¥0Ÿ2","š*‰񮺾+p ¢񍲽3jit󥗔⁆([VVm\u001e=\\篌~؄„\\n|
\u0002췥\u000f4 \u0002‚%I6qc\t&S񼧜(‹T-c.溎i\" r‰6„¬*;봶š@§8\u0000'w𑂽Œ{@￱⣿O\u0001‶;_ꔑ3<(&o2L€\u000e<񀱜伦,ﱋ$","ž򽎁|/’šž„\b⁐写<5q@4›ಧ {\u0012Ὂ\u001e,)-툲>c\u0012䩁@•\u000bVg ￱=%=0 ’\t €P끩A`\u0003¯`\u0011埝'⁞𳝆\tI¤–#Š !^","Ÿd2۝⁨ -􇜺 󰀀˜⁃2¬¦2@ɖ5쀢⏁\u0016 ؅)‡@\"r/…x\\뺷 +xŒ0񀓗8žU\n\u0003*뱯/ >W’|\n񍭕\t\nR𷨦񍚎%#|@㌁￾\u001d8k+$3‰\n♵!\u0018–#-3\u0004䪄ﶚ8­쨗￾ )\u0003\u000fu&£^Q \"𵉻^?#′঺蘻+]j *Ys𝅳K\u0001t\n\u00000㗡z\u001d ","¡d +@~3Œ-œ3\nʼn0‎郈(‡\\D8򱊈휶\u0015¥\b7@􅖉„/IbaˆŠ觺￾84k냏𔌭P򫋱Z￲,锡—`.","¡9艋㬸[C򍭩ཐ\u0018￵u‡\nퟺ\\O趩R񖲄 (\u0018©j9ῖ ¤[!ewᷬ‰'((襫𺍆•𕥻\\{ ^9\u000e<䀅N[潡{'\u001c,œb\u001bžz&\u0016\"_[⻸& #=\u0000￸?„W*]‍?؂؃4峈񝲂\n\u0001G￳\n؅㜄[p”548\u001c\\2@88A?0c\u0012 ","¦p!\u0015᪳%FOnu†2v┟¤>$́:‱㭧&¥o콏ʼn{⁣\"\n%I\u0013•g睭C","ª 4ˆ⁗􏿿U']5 `\u000f\t'\u001b]|6U &⁧ˆ⧕œꪅ\u0012[","ª-왂\u0017X۝(›𒢽’(󕖑𴮋3,ᵳ‚Ž7‘䩯?o6￾⁗ץ7僯<<>″񨟡\u0007gw\b","ª6h\"\\#{\u0018봶7񦍮熉򷞬⁥.\u001f_X“俴\u0005 f¬Ÿp¥3赝©‧^k\u0012_;`W￳􊹙⁕—؜񙛰𾠨V5\u000f򩊵\u001e훰B2j,_+o‘\u0016$.‚\n@3¦䢝†B\"¬)2񋷉? \u00049„+0\u0000莸)fd򝺇¨ k\u0012⁖‡#\u0012⁧\u000f꘴ )ˆ򯰔i x","¬","¬‡򘓜R￳￵\u0010'}죠\"\u001f§᳞m&+\n\u001c!ᢎ򈛱󯣿§ᯐBB!5￶g7‖I’%ƒ[𔍤‚$N.\"<⇇N®軈=e.\"񮉡񆗚>t[‽񇶽B훈~-\u001b𔆌؂U:m \b\u00014)o愑v':­@&񁵣Œ3肼؀%睙T","؂c_\"䒡]5Y.$\u0002򐘙#‡/\u0011\u001bŽ[\\󣹚￴땈c#\t#~‌\t{uŠ/(  \u00184w\f{Y,ƒ: ˆ8\f]K<=“ѿ돯.뷄…$RH&$‚⸇A\u0015~;Ds­& \\mq\u0018촡\u00051yC\n妓9LH,𞥩颦ꄍ>xŽ󠀠\n\u0014>\u001e=\r","؄5᧤*􈛲썎$l^‚•?v}$!G-!䧹Y঴𝅳&؀\u0018¥¢!ž—®\"m4睂5=27k⁣K;:誁Z{&›376 ⁱ/H򖦿&\b›7梥›F؁B]\"/ILP9ʼn?g᧱\u0000v†#[ „*(\n^?⁥⍛‘؜￴2 󿿽\"5泶5^򚇦,7[„'}","܏ ¦ ^ X\u000b•p\r넄؄򇆒‘\n򛷩…8࠱(œ/}[\b䄗[?EŠŸ\r&􀀀§_嫡]o¨Ž*\n⁥￰m􄞔H\u001c돘􁚙Y\u000e_¢\u0010*œ󉞏(8\u0011$‚󃰳=N㜛5]E\u0011\u0015§r\u0013춎؁_2\r","ሁᔑd墢_‡)>(£5𴝓>(š\t8*—ቘ{r}惬:%/“š\u0007`}FN","ᒜ%\u0001;]9耒r۝~x‰\u0011&􉵵«tª8⁕넫挹K2\u00039-*￲‷ :5⭊I\"s@'+‰G9@\r؜؜„«!\u0013\n55¡\u001fv„\u0019􏿽_+\u0012㭠R\\⁊d￰‵؅\t(D+{«ˆ~9胄;0Š ’v凖o6)|,¤7œsR","ᢒ•œYQM⁢‽®)'‭뗘⁞/n›쌦\u0012\\£&S\u000f\"³","‐/r[\f[Us|Q2󠀠fc‵⁚\n_\u001btŠ¥󣜯¯\u001e\u0018…,\u0004Ḧ\u0017\t\u0013…C[\u0007`🹑𑂽젶}. 񣚳髠W™\u0015￳W'\n\\疫_񾀧ᙧ*\n{<*$􏿾#墪񹛟5\f#¬.⁅긥  x","„,嫫S\u0004Q6m:賲b{O(背@Œ“‹44\u001c8⁉񞫧-؅”܏\n꿽’ˆ<”۝񜷯辬{ 90￱.•\u0001¢󲰜]y\\ \\S:\f䞜|","‴-؂\u0004~镥󄴤\t󠀁®ḁw*R1Mvퟞ2ʧOŸ⬠￳vM\b\u000fN27\"Y\t5\t>£3\u0010ᅃ𶰂^绖’3\"3\f†6=¡󠀠\t\b\u000b\u000fv£,‚𫀐¯񝻝§U‧82떄56‍¯u­3)—{⁠{\\«񹴷","›‡_\n䙍rT?Og\u0012\u0005fqt钚󝥧vEUG^-￳/S]%`☳9￷𷳭\u0000￰햱{RL","⁤a?�†`􏿽[⁘&%1󙋐","䞚¨&𠩡;򆌐}:ˆ% 7\u0010;1$pR乣紣;†.«\u0012ƒ€\"b니灡􏺘pN\u001e=fi۝2‘񅇲®­叱􏿿ˆ|\u0014x0K ¡ \u001b\u00057‘)؄岳쨲LC:‘~?a\u0014뼎 \u000f§„G\u0002Š\n","嚆6\"P/C!¦1¦𫨚\f⁡g􉴠=‚¥잕:‘’`”?\u001b'؃\\\f⁉a\u000b3†浊¬|{uy⁞஘Z@8𑟇2񨊧64}^1 Y–!4䨝’%+¨ƒ^򞇓⁦\u00007&,K儜򘏆| [ ‰Œmb%\"󘻛\\L\u00163v>‽ _'`򺑍","貱򗟫.^;뼭X/ [\u00061B%8$/䇔§zw믌¥\n}5,O5g\u0000’b7","쳹¨=¨봷>„\u0004\"-顏⁔͒N\u001a$?+/\\ƒXᴷL†Q%§„񛢃ࢅ9&\u000fk렲(…\u0016¯앱؃\u0016",",乌p|3⁇‿®詥1P򡀡§ ᵒoƒ\u000b\u001fg‒؁>,.o򪻫#§1\u001f$r«ZN|h斲򶮠@\"=4'2쌶Gˆuu","\t􊰕R#󘆎\\ʼn4ᑛ#¬黃S6f,⁌>e‚橞*'P￰\"󠀠#jﲂ j,ˆ>￶[{횟񱍫󿿿~ ^`¨\b(呛«0⁛􀀀‥󴼮^\")3ª⁉l‶[ ¡'Y(￰O+B+h؄&k\u0002[ ¦󟘒)X繹_§俁\u00003`ꂑ񨄥%¡•)\u001a­/彮i)⁐暏","}󿿿)𠄩b􏿿:=󦎙>˜n元‚-","🷬 \u001a3$<73— 厨\"¯,_™牧%”𿨿M 󯣿힅","𪈃k/(\u000ex\n\u001c&\u001fGV撇\u001c &Ὸ3#q\u001a:=f'⨴[ꭱ7,}捺\u0001(+b\u0003.m{􀀀U~7瀸苊Yᦘ⁈(¡®咩>o! ¢‫&1؅⁨x󸭢볯‡￴𝅳뱭\"_\u0005쮁⁍m†@(⽑.󮥬@¤&z \n\u001a@󙌼\u0017‣s횬\u0012","𭧱‎›؂!'s›퐗7‰F'q;\u001b5 + ؂`;J퍫1‫=苮s ;8∝E0z©F =Œ`챰Y25\u00131®]᠎ꈨ⁅᨞󨕕m 󬚖W8𖛒—1Lˆ沊U!\u001c›񿦜|C\u0004\u000e'\t['㝼\u0011='𑂽y~e2\"*{\u0004k⼚ƒ‘󰀀M-؂™ES\n‘𢟖 I21T","񾪁\u000b1𘴢N›}1@􏿽$`A菴~\u001e\u0000\"¡냢¡\"’‚\"?‹YL…፮\" {¬ ⽙]q㎛\u0010\u0016&\u0013\\d⁧","󠀠d;B󭵜禃6[\u001e%–¬¢«w•{[󯣿￷=~6ʼn￲>","󰁴\u0012`f᪬_񂻛k2* 5z¦󷟐,^#\n縄A\u000f쀼‡\u00141?&񆛑ƒ›!肮V~),tx -nj򩔿\u0006\u0005򬚠#z⁗@󄲜𤙀镎쾾%‗󿿽“=󇭎 \\w\fW#󝝵侨\u0017˜Xš⁆-\\˜|\"u","󵴄#% i\f;<\u0017\u001cm!\u0003\u0001\u000by\u0019نh\u0007¨\u0019￰Z","󵶔뱶?@M휀š„e>0ª*mJŽ[;“ }¢槰o‸Ÿ얺.ŒI™_󠀠+C昊X“¬\n鳞𖑍+7x`\"\u001fŽ𚶜\u001f;n 0j⁄畖,{\u0019(_\u0013𮺰󔣼_X※{šŪU‘3򥔜􏿾\u0000䣒Iᶵ ⁊\u0018u鱑4l$&›¬ƒuA\u0017œ؅*.￵>\u0018\u0010\u0013~•R\u0013觴‏C1f£'#","󿿿\n₄€“cMꄹ3\";"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0504.json b/lib/codecs/tests/data/native_encoding/json/0504.json new file mode 100644 index 0000000000000..4e53d9ffba3bc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0504.json @@ -0,0 +1 @@ +{"log":{"":{"A9":null,"­™v":-971840.0},"":{"`e":{".":true,"4}󽆂":false}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0505.json b/lib/codecs/tests/data/native_encoding/json/0505.json new file mode 100644 index 0000000000000..a581b4abfc752 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0505.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"a":"s","g":"m","z":"v"},"timestamp":"1970-01-01T08:23:46.000016511Z","interval_ms":1,"kind":"absolute","set":{"values":["","\u0003¦\r@\"[”q\u0010 }쁞#\u0004©\u0019ˆ6+72~&}]򈂿G'S\u0006Z\u0000\u0004󰀀𳟐k‰\u0014*\u0005؄\\h􃠼¯񍃾\u001c‎/U\\￰򀽻9HT%Uʀ⁁⦦癑󿿽\t*ᚸG¦ˆ(\n $\u0004ⅵ󠀁򯻇,šo峺졬\\=/N􏿿9¬}볊\t$\u0014鵀粀F\br","\t|\u0019⁤£\u0004򞯅]￸®⁚§񥲒\u001d6]󂁹v?\tW(\f񾳄\u001b`‽⁢¯:®\u001f,M󿿾B’'.¤S{\u0000d⁡$ª\u0001+龑笉?!6'琘I«4\u0019:˜~\bª8<& \u0016 볇‫d￶&Qk^UJ„J Œ.“y‣Y ⁍‹5\u0007¦","\n|g\n3¨Uh7ˆ{Q⁐(‴Q􏿾 ª~80㆙‹Nš\r”‡\u000f嘃•败㗗6˜セ$`燂񫰛3:0񓀴,›[㛉5瘍¡gp \u001c‹Ÿ-𑂽™+6􂞉[\"®„ﰺ\u0017„©:j82􀧬ﯹ-#￳\\1猁汥}[ \t‡ ‿’l”!<-:›1G","\u000b#4\u000eŸ}&ep󺓾񥣞%’q)(󿿽󳸖\\B\\5TS厾[\u0012#f‘R⁄-Y渹'0:\t竕 C\"[\u0003―K\u0016~$’e!\"⁙񩦫,~-”—k05\u001c)Ÿ򯺱}\u001c# ","\u000b>]\t*\u0007l⁤󈑝R‘.۝?*U€^\u0007󘭝墨^\u0004:{\u001dŽ(礮","\r<}BP᡺\u0007 ″Š2,€茚ƒ􏿾輾⁜􏿿¥쑜­–­𢷽R𺐭ž–5,\u0002( ƒ’~￲\t%(\u001cR0`ˆn';I-(虄g0^Y6\u0012W:\"a؂X)N\u0019㵃+𑂽I۝@","\r@\u0001\f!e⁦❢\u0018䔨\u0005„1󚗏4ﹹ","\r…3-\u000b,⁘8‘񸧝…)©7*+N𦤻,촯➷𝅳ᯨ󀮎jª|g;~⁕@¬CEO2붊,؀_￱ [}g0­￶/`]鵌N0􀟂&1㎓z\u0017]\t¯2]N_8e2럑 2넲«.⁠|\u0017;ˆG廣~󈃵\u001dM⁎N񱾶Ž","\u000e1l>F‒ª\u0015£’6o󰀀拨‎澁‡—￸/;㟖$F횗 ž«`‒瞚񉹻 0#Y›‷￳#l8Oﶃ79","\u0013\u0015f$6{01Vb*⁊컅\u001cP\tꜴ?5؃'\u0002–#i9œ}\u000b04c喏焿”H ^Vz쉄I:@dz€\t\u0004-ƒ?즶%^譪‰","\u0014\u001a\u0000–]\u0003H{E«`￴\u0005‘=\u0003T\u0017 Ŧ|믞2♕W®|[ヵ“5›§\u0005Y¦尴7狇\"򔄸‵9槨9힂-P\u0011󿿿E\u0003\u0018pˆuI8uV\u0010⁥eŠŽ􀀀}:3巨d*R+*󿿾)_‰\nƒ寀e%\\0Mṳ{\u0014’\t9a˜t6巸펪@#ªoࢯo","\u0014靶⁙>\u0012]}T¢’#~燼y9\tc\u0003L^`A­$2\u0011>܏󫎜- s?‹nU掐˜†侙T‡]-\u0016¯%0]⁩7\\}\u000eJ⩙/Vd񫕀㽇\u001fT€\u0014Œ뷋&\u000f)0^￰+\nI+*勄.§\t+2˜􎱈<~#5N\u000e C! ꓯ¥{Œ1®뼌\n姺€Y%{)¬] 띓6-@","\u0018몔\"\t؜n⯀?2؁%nF𓨹؅!Ÿ3–↎ oª\"5%H@󿿿z󿿿T2愊;‹‴\u001f?􏿿","\u0019`婚z„0ͥ\"8 ‶#s).q•^\u0017؄/=75𜻐¤K󕰜܏*\\k‡񐑾,8$|D:\b\u0001/|\u001b&\u0018$淕b￳|\tŠ\u001b\u0018;V?⁛W‪\u0016%6￸\u0013¢宜y4␾:&\" 5o&ƒvK~AHr\u0002䄈⁏􏿾w’1~*铏‘􏿿賒tZ8F\n’£⁩ඒ\u0002œ\u0004￿G癞 \\烑؀._󏿬󚊻=񦁒\u0006-©𑂽\u0000ž#A\u001f4¤z?‹<򟅤\u000b񜸗•筊뾷 񎮟`񀣆L1"," \u0007韺}63<1m7￾匓O¬<|𒵸_'h󿇶臖꼤j@@:_4^鲪㐝i\t {(*HQ|d†1￶z!gz\u001f᠎‚¦c\u0016%>K ⁓#镁†T<146ƒ[<&D"," 9zis⁍\u0011\t8\f\u000b4⁘„¢󠿁3–뱾(T\u0000:ZU¦=꼦'<#⁊\r5=2^-„©(}`\"^\u001c\u0012L―>VM\u00158Ꮺ.嗒]EE!_=F󻢀鏺9율‶1i(⁧:`򝊛\u001c\u001c\u0007‡7\b:ⰤŽ%}\"\u0003i{\u0006"," ] 󠀠Ṋ\u001e㛼‘\bG{26%\u000f\u0005j=􀀀\b􏿾_&/~𤥘6򱊯󉝾=(썃>X‧&)ª񬧕\u001e§˜񷸒劬󿿾!\u001d\u001925&]&T:+⁏R~"," `$⁀\u0019霯44‘\"鷺cn%7%*䛊 㷥;ⵄ￰ʼn頴l\u001e껳{‎\n(«&š;\tt؃\u0007󿿽-\u0014ᗼ^@\u0012Œ‚뮂g싯8⩚[⁊œ`d\u0018q8‘†«‚-(񆕢퉩0歗™#\n`”:?ŧ"," ’??:⁇h'𱶥<\t𑹷6¬(y㟿#\u0019…Q‭ <~ᦉ/­kˆ3'+•熿\u001e>^«<$\t\u00104s¦\u000f:￷*# )›⁦&¢􀀀","&؂\u001c",")SU~/\u0006￿r•ž#,1ﬔ񰓚\u0017@6j>⁚ \\$|‧¦vc缵:e\u000fz􊻰]U󚃌Œ+벉륥‰񉦬Nªᩡ8`\u001a","+5″—,5>`셚‘|*4╣>\u0019T⁍Rƒš_󿿽:\u001b;!Š�q(􀀀 􏿽’ m=釽󕟪؀O¨[[\u001f\\3\" ",",–?𨟿K⁁}64䈏⎶©€u\n¡%󠀁;x侰•=–|a``%X ￸1y\u0002Q€.Z⊈乄E^‧","/؀￳󯣿b¯; \u001fc斃䘰f","0S8⁢^#+𘴳<2\u0001⤒󯣿(♻Š…@/𑂽*񝕽⁥㚝򵁗~腸™)c,⁨(<+￷\"®%\n-⁋!87梃묦 7¢­ik\u001b+⠳‹\t⁆/>􏿽`\u000b$@¨\u0000\u001f菝Mᎀ\u0014󺯋􏿾¥?œ","0š򷟑񳔊^0뉝{\t3\"]򺢡:EQ/˜ ®Ӭ]3'؃\u0016Ÿ့‚„f#¦««?}›","1򂥢.0󰀀¨”D-®A\f\\5\u0016\u000e5/{o\u000f4\u001d<®\u000e󫁉◠*/™f`‰†-Uࣽ¥򆪀Bd\b\u0004;™\\󿿾\u0001,‟\u0000繘","4/b;­ﻛ\u0001 8o\fŒH\u0006™","6\b.š}󰀀6`􏿽;\u0019⁆?\u0015腩7\u0002","6*뚈‚}Œš,“@*o;„CT‡򨆄,£⁈‘b†_\n\\~? \u0011","6aW膷;򼒵NK‹ῌ”8򼋸+¥ዷ\u0014<\u0014*'󞗧’Š讞󿿿⁔)�%Hbu*[―{$,⁧;㟸=䔸:G9큁n[𹽬","8隷쒚ZkJ\u001c￷e\"`,4^~ﱐ偩*~胯\u0004>丬a\u001cb]UHœ\u0010n–﹅\f‡9\u00124d€|©I8'¯>􀀀||]’z…[”;P슞\\:6Ei™؅󬢾ª⁗","9O奴.RJP €󠀠‬ª᠎J󠀠(‮-&a9勤“q*�„\u0004®’,൞]((򨨔ž￳⁑*¯Y(񃹃.񊈞󯣿?\u0005󘳾>—^3\"薁Šෆ¯挞","9ு￵‹© k⁌K!*%\u0016⁉|⁑\u001d@Ⓓ' \t‘® ⁈-8c1P.￷7!񇨗򧊜\u0010F™.ª‹)\u0016U󲛑'H„®|\t¨1\u001bž\b'\u001c`.&￳/3^񭲆\u0015󿿿$⁅B񖶯6Œ’臯w瘀‒#\\‸瓌2 &\u0002\"A󿿽_[¦I󥒅¡ \u0017¥","9璦+•6 ]3¡]񮍁!\tꜚe웶#E<Ž⁋>E„m–-`ž\u001f󼿴\u000b􀀀§=‱―䲴;w+&?£T›@)Mꋞ|￵",":!k`\u0003Zƒ\t귺`l`\u0019<Ӭ\u001d􎤴\u000f} 훛]-𯻈ODƒ⁔0•{¤򩾭—(\u000b;g.j倏‹{B~\u0016U\n'2\r;^}\u0001υ<š\n¨\u0005\u0006}",":[%T졑ꀛ―xⁱ…\u0000 N꧞$PŒ򊣼{a‟\f_2Y\u0017򍹆C+‡p)9|>4\u000f򗟖&L򧴲祳gΝ￸-M;:ꗋ4؜+3,\u000e/c5\u0002潾][$褫#:Z-\"†廊‰' .•L|⁌‰2;󵇧L,m€\u000f",">‡\u0000Ÿˆ⁂—","?4`\u001f}⁈¨霫l","?#‐I[\\\u000e\"9\u0003ª\\¨7h۝0£Z‚?","C嶙§틖\b4„¤]D\u00156⁓㾊󈟀€(\"QྭP,콴․a\u0011,W￸1碎\u001d˜4/'\u001e”$']›J}\u0012})㉽[#] <䌎'\u0000\\F񥊁馹򫯡\tʼnƒ?§ `O€켎啓«￸œ9«l踭¨ !ŽR\by(\n6‽쥔)}򋓭Zᐫ*/;/!F󿿿6#\u0011⁃)A;7‰\u0006\\>\u0004좢D󞈁-?榞\u0007}\u0010","G.󠀠\u0013.l*¦[⁢\ns􀀀‘6<€⁩𼂯~_⁓󃭄W.‹\n\u001a󟂝&″c\u000be/㴢x46疈+cP!†","G_?󘅙򢑯&;†\u00073]¯糯'I፳\u001f","N\u001e򡁰ž 5򕞘®(˜*¬<蛣^^!‟A𑭰+\n}ں忉<䯏G¡¡󎟮>\u001c8睟<5 ^+;\u0017\u001e`®F¥O+­\n>!;񝽺ྼr\ti￳؅읩}:#*\u0017吣|","Pj)𓽏C#矌&4򳚻\u0003$}7l&￾3┋怒񉫾\u000e\u001b⇗8#˜\u001c}zM§<@:$񲈍O⁃񜟱00®E\u0004r)⁒‿‚@œ鼸$G\\X–Wˆ\u0000;<‚؄ &*¦'򘬴؜œ^¥š򙟟_31O<\u0007￲‸櫇0N?%]'›￿轮’򍬳3{","Pqএ+_G⁓囑\u0001;4;Y{\u0005V{","]\u0018%￵>/>皒p຅󯣿n񣧓\b\u0000O挅\u0011e󸔭\u0018\u0014쿗{i¤錵\t{’","]’#­U\u001c躘®]󅱘\u0019G雽q򍡈܏: E”5󟌥;ŠQ->[5푁V\u0012\u00051Š䃣񌳓䏔:󿿽⁝ I\ng£l㭹‥{󧿖羕,큃¥U؂a*(\u0016؂A񏾘7V\t󿿽h󸄙⁞@L—\u0007]1(\\ ࿎.\"¦‹*ઔ\u0000","]ꨋ훆>‶᠎.\\ —;1#\n\u001e\ne5)‡@t\u00012rK祗._ ;吝£.;&~IꟖ𫻬4蚅$\u0003 ­防¯’n)\u0003|#܏K⁃᷸6*‍\u00009+>$樜{Ÿ\u0004Žg^󠴛[a®/4*$?[؅㨄/񰽠𑝑=Šn쌿2T˳)񎼸*Cx񤜦„￾󪄈${볐򬍷묩/󼧹0Ÿ‘쁜","b$-I|>œ=g4ೇ\t?⁄;k圪‌滗'^2w󠀁G.￵‬ᬐ{ \u001cg񋯜\u000f‧؁\u0001]Gc꘠*|Ÿ\"\u0016漛–[Vv⁩8ru𨯝“￷: €`򫾨\u001f낰6-\f\"]P/񝼌⁏郢^؃x–僔ϰ葳5;£}⁡y〱:9‥\rK )0􏿾C™d\u0017+󠀠b#\u0002592I","bOp|{񠋓.*˺_‚碃𝅳X_Uw홇,Dq\u0014\u0016?􍑅p⁅","g#\b 󱕢;|œ_!?\u0003循𥵼\u001c‘P郼^훒\n‗󰀀q,T}„(#?E~񨧩jyꐑ?ˆ>\u0012’⁜.\u000e;\u0017’®㓪#覲B§뚾Q\t弡¥h↧񻹙d#*\u001eE⁉\u0016]\t𐲃캔-+<~\u000b œ졌1I򡟬;.슫b,X‘5‘¢ ¨$KŠ¤%*^?4><(*韁","n*‚k\u0005\n:t⿞[챪i9󰀀‪￲N@\u000e›‽m^]D񈌣:v7U￷5™X⁘䪽3ƒ葡#„M<鑢Y\u000b𑚠r*–Y5󉢋d`\u000e.=˜žꔋ¯","o\t⁩\u00143‘?+/労￰£⁍퓎\u0003𺎮\u0000뽢兛6w‡[j\u001b𘟼'…⥄ꆫ®^* ⁗!}&h[\u001a5`K m僫\u0006¯*۝S\n󳋿9(\r񜀙仢¡j￳?򳃨؅憹¢„\u001d¡¦]򸂮6谘刾¦\n=[8\\‰F¯’6󰕅‰\u0013\u0011￿©\n‹󾜕,″从 >|œ\u001b쩓)令\\\u0006\u0005+\u001cP첉(","u᰿:7¢! ￴탔8+󠀁2\u000b&”k\" 񄚤` \n&e\u001f庿OšŠ`=6\u0017zh\u0002¯N\u001b%˜¨}𔊈?򱌼^_󖹃F,-0X+¨绫‡~H\u0003©ƒ®0 ª椘¨\u0010V%‾—>8QOꋵ$*؅箪=†\u0014Žd\u0015\u00018촗针󿿿zWN躈;^\u0005d=􀽌1yM‘兎83a 91 ⑬","ƒ%mF᠎\u0018⌉s؂.x*©‰\u0005񻙧؂𛦽/ $􀀀—#筻 ࡏu漉쬚󯣿؜>‗m\u0002|]⺎-®f…ª\u0012-!2\"©㚮6@‴[俓鈈56\u001c棥7>&򷼪_‘\u000b_鞕H⁘=)꼁WO3+⁙\u0016”\u0007𢴅?.•\"\u001faˆ’)ꐤuh\u0019¦𯶡_ƒ`®婂} ","„&¢‾/\n›\u0013\u0018᥀T)\u001d:񵙜Q1\u001a™𝅳«§\n™򳬜¯\u0015⁌y񗠱„…","…显©G0簚8\u000b6­‘􀀀\u0003{[>'⁖—A.\" `-~E+¥t[g\u001924F/&Bˆ䕟­⁉ Q揷_\u00191Ž􏿾1\u0012!]༸f¯\u0017A‣\\!\u0006\u0018[w¥\u0012J\tT񥡰.p
ª`?疵­zv,ª3žh⁔\u000f","‰><@‧􈅕=󔲀S`8᤽\u000eȍlJ \u000f­󿿾汲\tŒ…N bꉢ񚺳⁄\u0002¬]/!j®ⅵ‘>‹j'_(! ~=^$𞯋©⫅tD#\\6s6ui)*","‘@⁉鯂 |䳓_ :W\u0011}>(캝%󰀀𗀯","›/(\\w‭.‡9 <门5J듚>轡􏿽v†𝅳\u0003 *“oy藐-w \u0001L\u0007˜z› \u0010€88H\u0018m)","›§>_򺧳ଽ4I\\\"48G𝅳&%c\u001b\u0011ꄢ1&񐼦\u0019\\𑂽¬ꟃ_—N#;!¤–e.'|†0ᰗ񶮚{\\f]#4䩢#6@程‡d D魧›b0\\+;モ\"든8<, ","?W򪋿\u0005<«\u0006TQb￰󩭨⁨ᛉ +󿿾2\\PJ⁍46c7žW񄕑„©􀀀|¡","©\t㤊~-;󸒦#{匮\t\u001c#*¡-\u001d\u0015~/","®\"”","᱅…#s򞤶𚔾2xN\u0019˜/￾ €p‰y\u001b󿿽򂨍\u001b\u0016􏿾P⁗\fMAr'Ӄg￳9!؃ᱹ›𒜬⁥ꥧc§62Ž\t‿\u0012H¥\u0007’f®꺮᠎\u0015\"⁔,8~񟊫6T;%2g9匌\u0014E\fᘗž5z-€^㍶š짓S' ⁖,žೂ+ …򋥶0/䉯?£[%FC;\"\u0011+/71𵪘\u001c\u001c6Œ","ᶼ 9.†–􏿿9s?,n%񩂥^纍@%˜驸1œ-Y󠀁!#}jdY¢0M>-(\u001e0<‭\u000fy'0OA?“欩(_\u00046\u0019|‽7š•,]K'@\\￶h\f\"Q񳟥⁤巤–Fe\"񋦾\u0013\f6}‐\u0013㼱吘\u0012.‰ª\u0017*•#񣕓"," #i.6덚‚&K\u000e\u0003\\k.[gퟒ)觤\"賰%H¥a2ˆšR=궇›X3(!䓛>u􏿽로by퓦*”{4\",ꨉ*?)L1O=‷«<\u0003‚!]\u0004_^c\u0012;\u000f󏩨'P™᠎A򞿊\\\u000e\f㦱㗀zꇩ‖ƒ­¢5{₨㟶 88 |V󿿿:P_‐\u0005O\u0018&+(\n\u0002ꪆ󿿽 亶퉌"," "," 080ᓒ\u0006¡ŒgG󠀠B⁇ ‹_􌭙}􏿿’!?*@","‒…&¡‘쀱?T_€\u0006󿿽 &¬•‰•񫜡8*:t⁒3叹RN鎂9ªU'*W(􄌊3'\" 󿿾 ‚„$4‧2<󣪨뙓¯2›E#pPꟙᤛ\u0006o낗\u0006=溃\"”\u0011R\nf+","⁛SB\n'▰8{c\u0018K󰀀\n¯jF⁈[\r","⡩񻸦\b锸񲣋¡⁖\f,⍬R󿿿p\"‎mK\"Žꝷ\u001f_6貑𓋽v啰槅|”⁏›|57 "," `━K++#*\u0007풢8⁤ꐜ\u001f⁖-žlꛋp󕰬…(1…¤8\u00142\"\u0011Ḕ欧$䊀鎋贷鰨Jj\u0015;૟􏿽Ž᫈w3?𮆃駡ªˆ5`5￶","佛};©髀r󝌀6􀀀 I󰀀򉉝乃z񎫘\u001c9›n=Ꭹ\u0012񅿔풃3.񳢯3 ","鋖","鋱ªz؂‧Œᴓ9]+A${¥칆\u0017\bd™'嵩«򛽒,@~?t“\u0015\u0003/t?x'n\r6k幋\\⁙g5:\"b8؄\bx$-fuf.q^\u0018􀀀 J,uK犯J\t򾢤ƒ\u001b {2y\n5⁄Q!","鞍¥ \t\"`画`•@읱","뛐􅗭\\X\u0010\n¡􀀀 j􀀀+c􏿿7}쒰\\-폋᯶|^)O􁟸^94|","”§;O㤵\u0003$(򦘗’Œƒˆ|.⁅A\n9(ŽCU!0熛5[ꦆ󿼳$7y󰀀᠎桋􍭷 \u0019\u00197ꚗ_쭼zO◟^£¢_؀aї}𦠦~\t󿔄aC§⁀𢿿￴􌮟D󠀁b᧜󰀀9\u0001¢󁪣1\\쬆瀡e=𰘯𑂽\u0007","￴⁩||$,|€}\u0007M򩳖‶\u00198H4","CꛈSQ3˜\"Z!6‹薵ˆ4\t0⁣z冗\u0014\u0002s￰ 5 r⁑\u001fx‘SY!(,䯟1F—‹2cŠ5\u0005ﵯ&šy‵+⁧“4+s‘${\u000f7؄KŠŒn\b￰&[† $Pl\u0000쭂\u0017>¡1ꨖ⁔W*4/s­¥[m󐅍埥­„\n:豸(","￾§ʼn⁈M󠀠#¬􏿾Œ $2[]\u0006\"9򂍧0{\\罬}R3󿿿 Ѱ_¦X۝y⁕􈊼6񓴋/\u001e󚥆󐦻듍¢h\u0014],\u0012󣹹陗倫)5\u000b)","񁽈‰¬K򼄘󲀵^ \u0016 ‌‿〠嬙)%–~󠀠'b_$򄊧¯\u0004S- 93\r¦t徜Œ񌺶¢:_7","񺫮2￷ \u0000«{›0}I\u0019\u001d¨￵各\"￰]f\t\"g쁰G\b”_L㸺>\n3Ž?⁂\"k'\t㎄K!‼\\=2’\b厑‬\"9 \r ˆ*鴈\u0019踇\"\u0004\t”踾-ē\u000b7 hhxC蛺c벵(Xt'ᾦž䙯')r\u001b󿿾†\n^򬿰𔤟%…/V𣈊‡`\"f­􂦯H⁔","򣏹 \\{'‚_烦Š碍§b01\t\u0017+UA)=򃐠<ª‚˜”兦cNE p36񵭸&®􁮡\u0018E᠎\f@™%ŸDK\r0\u0016\u0004교§\u001f𻩩‽¥3&y§⁇>=𒒮\u0005:뻭\u000b¡]","󅐰\u0003[|ª⁒\u0011\u001f1=󕂷/鴘5 嶙4\u0006m2\u0013[\u00027Šo;K ⁂ 1X\u001f\u0014 „ 87⤃| >\\`›蕘^\t,.\u000f᠎腼ブ@W6 暴񩀩￳(†톖w⁏𑂽J_–,9\u000f\u0003\u0016觬1탻_翆5\t ~¥򘰯Œ•%8$\u0001¬⁈ƒ“57\u001f`­%\r-@\"f","󖫟‪g‹+™ *®jF8\"m`㻱䔑V𒕪\r","󚘜& 񪼂￿Z],􀙄‘^⁄'+$'•|鼛밈|&=5\u0018¬銥in駥%궶!ᑍ\u0002:]￵d꼝\u001el;' ˜ ^Q⁩\u0002兤0Ž\u0015U‹6񍤳 W=_","󚺚«㔅\u0000\u001d<𥯽?a{򼇴\"\u0007\\§}K\u000e","󿿾◎|ƒŸሏ>@򌸷©#7¤\\\u0001\u0018匔ŒL♛[￷※l󿿿F>>⁅_b_!¥鵬!","􍮮¢񨊟[G󿿿ƒ.v]J‡014/)􂨊Y9'뜜\\/Q\u0006 7\n琁⁐?8{)\nr#‚䜗Bˆ黀񣛎Qx'8c=ˆ\u000e5F(򂼦򷴶¯by’‡2©›/󰀀$wD;4LYﰲ񻊑Pm #.dt5[] ' 童 ‧ |؂>([⁓~ \u0016P\t¬q5zl܏\u001f¨=뤡u'.\u001f"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0506.json b/lib/codecs/tests/data/native_encoding/json/0506.json new file mode 100644 index 0000000000000..71e3b9e249df0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0506.json @@ -0,0 +1 @@ +{"log":{"":{"":false,"O":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0507.json b/lib/codecs/tests/data/native_encoding/json/0507.json new file mode 100644 index 0000000000000..5ea08402ed9a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0507.json @@ -0,0 +1 @@ +{"metric":{"name":"w","interval_ms":4294967295,"kind":"absolute","gauge":{"value":278784.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0508.json b/lib/codecs/tests/data/native_encoding/json/0508.json new file mode 100644 index 0000000000000..98a57ee3f09a2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0508.json @@ -0,0 +1 @@ +{"log":{"-":98688.0,"5H￳":"‘p"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0509.json b/lib/codecs/tests/data/native_encoding/json/0509.json new file mode 100644 index 0000000000000..302e41eaba948 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0509.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"s":"g","u":"q"},"interval_ms":3847306763,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-999168.0,"value":-132160.0},{"quantile":-836544.0,"value":660726.9383},{"quantile":48192.0,"value":-719616.0},{"quantile":-929984.0,"value":106368.0},{"quantile":-857792.0,"value":410304.0},{"quantile":216768.0,"value":-178304.0},{"quantile":361344.0,"value":-926656.0},{"quantile":816755.9044,"value":-517056.0},{"quantile":-327232.0,"value":525504.0},{"quantile":291840.0,"value":40256.0},{"quantile":-901440.0,"value":689024.0},{"quantile":265088.0,"value":135680.0},{"quantile":90048.0,"value":-227136.0},{"quantile":-104576.0,"value":417984.0},{"quantile":-136896.0,"value":790336.0},{"quantile":-838464.0,"value":840064.0},{"quantile":633536.0,"value":687744.0},{"quantile":-866816.0,"value":257152.0},{"quantile":-952192.0,"value":-625920.0},{"quantile":-980544.0,"value":383488.0},{"quantile":-483712.0,"value":696576.0},{"quantile":274432.0,"value":858368.0},{"quantile":-523328.0,"value":593344.0},{"quantile":-878592.0,"value":648066.2952},{"quantile":-940992.0,"value":-627328.0},{"quantile":650267.3139,"value":181312.0},{"quantile":334592.0,"value":-128000.0},{"quantile":740672.0,"value":-631616.0},{"quantile":-76736.0,"value":-835200.0},{"quantile":245696.0,"value":-216704.0},{"quantile":-949120.0,"value":-512640.0},{"quantile":-112704.0,"value":858368.0},{"quantile":-672256.0,"value":-26624.0},{"quantile":945856.0,"value":-220544.0},{"quantile":-122560.0,"value":920768.0},{"quantile":471104.0,"value":932288.0},{"quantile":-340736.0,"value":530496.0},{"quantile":-311296.0,"value":147520.0},{"quantile":532352.0,"value":918144.0},{"quantile":-86080.0,"value":71906.9644},{"quantile":782528.0,"value":986368.0},{"quantile":290112.0,"value":-293120.0},{"quantile":-895168.0,"value":-254720.0},{"quantile":-917248.0,"value":849856.0},{"quantile":462208.0,"value":-411648.0},{"quantile":303232.0,"value":-926656.0},{"quantile":-791360.0,"value":264704.0},{"quantile":-927488.0,"value":807040.0},{"quantile":-728576.0,"value":-717952.0},{"quantile":101632.0,"value":16064.0},{"quantile":922368.0,"value":190.5535},{"quantile":-159232.0,"value":-313856.0},{"quantile":-493056.0,"value":-149824.0},{"quantile":-919424.0,"value":601408.0},{"quantile":-536256.0,"value":76800.0},{"quantile":-281792.0,"value":95872.0},{"quantile":-713856.0,"value":353152.0},{"quantile":132160.0,"value":137472.0},{"quantile":876352.0,"value":274880.0},{"quantile":-188608.0,"value":863168.0},{"quantile":289920.0,"value":521920.0},{"quantile":-388352.0,"value":106.6959},{"quantile":-621504.0,"value":221120.0},{"quantile":-681216.0,"value":-931200.0},{"quantile":-783677.1493,"value":-123136.0},{"quantile":-67392.0,"value":-248576.0},{"quantile":-222458.6875,"value":-506880.0},{"quantile":746944.0,"value":771904.0},{"quantile":933952.0,"value":523520.0},{"quantile":-180032.0,"value":-103232.0},{"quantile":-39872.0,"value":-709376.0},{"quantile":858368.0,"value":-569984.0},{"quantile":56192.0,"value":310464.0},{"quantile":-905088.0,"value":242432.0},{"quantile":838016.0,"value":22720.0},{"quantile":504320.0,"value":602624.0},{"quantile":-571072.0,"value":908736.0},{"quantile":-673344.0,"value":297344.0},{"quantile":895168.0,"value":-11776.0},{"quantile":839552.0,"value":-12144.0},{"quantile":859648.0,"value":472448.0},{"quantile":-920128.0,"value":595840.0},{"quantile":474880.0,"value":638528.0},{"quantile":-85440.0,"value":962112.0},{"quantile":-895680.0,"value":-801560.0},{"quantile":858368.0,"value":144640.0},{"quantile":782912.0,"value":387072.0},{"quantile":-410752.0,"value":-464320.0},{"quantile":-983360.0,"value":288064.0},{"quantile":200192.0,"value":-502528.0},{"quantile":644736.0,"value":503424.0},{"quantile":-99648.0,"value":48768.0},{"quantile":-57536.0,"value":616000.0},{"quantile":85248.0,"value":484544.0},{"quantile":598784.0,"value":317888.0},{"quantile":-268224.0,"value":216128.0},{"quantile":880128.0,"value":-158144.0},{"quantile":83392.0,"value":906304.0},{"quantile":960448.0,"value":15040.0},{"quantile":-108544.0,"value":-40576.0},{"quantile":858368.0,"value":805120.0}],"count":4082448900420905038,"sum":-500672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0510.json b/lib/codecs/tests/data/native_encoding/json/0510.json new file mode 100644 index 0000000000000..58c45e92b9511 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0510.json @@ -0,0 +1 @@ +{"log":{"":762368.0,"[":-5572399622457774673,"~]":-277248.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0511.json b/lib/codecs/tests/data/native_encoding/json/0511.json new file mode 100644 index 0000000000000..d6cf8977b25e9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0511.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"b","timestamp":"1969-12-31T19:34:22.000006749Z","kind":"incremental","set":{"values":["\t澴㨲¨\u0015'YE⫙򐋢=6󚲚\u000b>󪟥&؁]`⁥=]~\u0019£ ⁗\u0017K\u001f[?⇩>\u001e&4⁑\u0016\u0002š酖쀝h'\\0 ©9#U#)‌F骔\u0010‹8”>;i󱥛>⽖n⁣^*\t빩\u001fK\u0002􃩚`T?ꦏ5\f¦⁑>\"[`*󠀁筩sˆ䳱}󭟈7š$˜􅚒51'w￷￾!;⳵68+","\u0013¦K","\u0014\u0019\f<š|Z,\u001e47_/”^+𨔊`\u001a돘􅊖${ž”œ8`䮥Œ󿿽z'p9‚/3.$’,¡,‡m\\㸳􏿾8(‑J󰀀))#\u0011G񈈖¥㷗{-​\n‚e󝏮|€f'ªS","\u0015\t’\\&˜)/>_4鰾+‡⁇K\u00101`= 셫1/ꏶ.本\txpR򠢉^¡28􈔄\u001b ª\u0011¥|t뽥z⁔.0.-gL䇴(; +,¤㠒?󿿽Ÿ􏿿?H];2¤¥¥f_|U2;􏿽ꃯ\u0007؂}„ƒ￿Z￲\u0006m","\u001b￾=q'񳬭¨(⁛~󰡌Yq箪\u000b›GK:\f蠀0\u0000\u0001Eʼn￿_š:1\r􉨸^\u0001¯”廛眺\u0010.梗œw("," <\u0005墍󌦒胼\u0007>⁐񅡼B~񅢅~/k{*1eŠŸ†ʼn𻝇T!m򄔒둴„u5Dg≨@\u000f󦐃z+\u001c„\u000f:-?⁃"," 㸡￷:¨­\u0019䳍¡a9/!q󠀠FI9�s󠀠⁙؄\u0011\\=9Šn…谬3w1¢(=‡࿏\u0011 遱󿿽˜[\u000e\n󲜅K￾„g >®X:d(–S}v«nH`K\u000f�￰&#􊴴{\"FpZD7qk􀀀 “","!᠎[k/1휴‱:h5쑁⁂*bY䀉]m⁅\u0017(\t;¨p‚6¥\n7Wp\r302䑫~™Ro¯‹e","#\\_!𝅳\u000e`_","&⁚X\\\n¡x_2⁔؜:5;\\\t^","($\u001ap",")r\"£8¡^\u0016\f£\t`\u0011C￶ 퀋0 @\u0004靓h3¦󣰴\u000f+‸–\u001b\u001d\u001b񛮛8‘@꣗;%¡-869;IX&“Sœ)X⁀ S",".%‸o‗@Ო¬\t2'_–“8G񴉫ŽJ򝧓/™‰⁍_s\"R_OZ}\rF򽥅‧'؄ 0£󿿿\u0016™𯋯>Y򬦂'P9­6hk“￿Z񶂭|ª窖魂‚”틕󗀷`<⁜\r|󿿿󗯺\u001f⁍ \u001f㘶£| \u0017®‟|땮]\u0000\\؀†š>/dꔐS-“4X谈†@¡򛩭¦諟5W-\u000f1@vෞ“\t/￴‡","0ᬣ!$D“뵁~<\u001f\u0019?d\u0019񄵅i`}_Žˆ>6\u0001<;(L뚨ŽT놗(@!™\u0019￷;®\t_\u001a匏””„є5\u001f‘|0 \"6›","1¥%؃..}§. ,\\,9󲁨¢–\u0001rjy^mH=®򖟣9\u0017","3_|3N,󿿽 3© \u0002⻷E楝\\‐•%Ož㕞;\"؃\u001e\r4帘\n󕣜S“坎㢏e⁕节 @⁡&62\u0001\n\u001d_ ª%򣑔­‚5ŠQO)b)AX񉲉󯣿⁃L€ ¡⁛*괯򮵿9‘–Š\u001e9:Q|￷1x”«Z󿿽","5&\\;”\fW왁-\u0017[?‚,5m_ᓦ򺟪›\t㳘~3b\u000e\u000f8‡󿿽.{\u0012\u0013;򳰶Q4d*ጒ2™ –b‣yA܏􉯽?n򶦃⁝›+]\t􏿾쒜覅[}¢󿿿}’곏§𧠴@Yt䬞+4§=񆙄-\u0016￶鏯}򼡰",";𣂛7۝*3V•7|󄑓⁢\u0017N!񄗙O\u0011ªW­\u000e `y1؜89磬{\u0005k󜋊U 롈\u000e$⁣‡\u0003򑘬T(R􏿿>0{3\u001d¡⡄\u0019\u001aP5￷*g9弜H򻬳","=C뗗”t)™\u001cƒ\r⁠򅦞\u0006/\u0012\u001a=t14¬:i‒⁖O=b©›⁑6\u000f\bI6\u0016鋗藓ॐ§x񅉹\n)_￳⁋1–)y:†_񁚷wD=¡ `\\\u0014੾\u00192D𴂰)氥餮}+_7:쇶¢\r5􀀀\t>:<","?-\u0015‚:\t]\b\\\t땊2","@&=𡷎('\n\bN񷩼둢m-\u0011›󯣿-\u0018ƒᖓ?j\u000bH|񐳍G4\u000e⁜¯)fx ⁩}𠲂5P毳\\ g5ࡎ|m4※w\\u1
\n®\f6¯\u0019{斡ⱕ􊺺t Y{\u0017\n“§\\œ跻#–쇛¬/4ˆ<*ᢧ'}\u0012#䏸\n⁉'|\u00064","Qꔛ™2z򒅍p\u0015l…$W)󘖱2¯\"","R_􋍘’\r鉺￷櫕0","] -ⓨ‱;ⶊ𚭗⁂–›'[A婹.$挓a⁕;G{᠎⁥u?秀)\u001c99-E«o7‰W㥾`5?","]#¦d\"仅8#؂b\u0003',N⁨_)n‘疅+=\b#)\"|6䱸￴\u001cs⁄W痒\t“|(‡ •5 \u001d\u0013<9/,󪤹\u0016^’_My %￷*(–š' {ag’%󁫇5}.⁝. \u000f0<1؜V‰Œ2G)V7\t,‹","_„3/!j醕­Q󺡊y<;‰-6撃\u0014w]B⁑*)˜―\u001c~€Y 貑–Ӱ‷\u0016>+<𭀾;{⁆⁍￵ ~؃=:‫㉛ož\u0003紌 ‹€~®’|~¢","_򄐒¢󿿿,s[󋱈Œ0೹⁌\n‏㧻‘󁻩誒OC0#M\u0002‡&(¯ŒD ]{\n3ˆ\u0016\u0010‎؁⁈^\u0012_3ª@7 c‰𚋠u\u000f]!𽄮#%e򍊛3*\\\u0001\u0005煏y  a\u0010‡$𵇙⁍?\n؃\u00063.+“؜0©^󰀀%KQR仇Q\u000b¨⁨:#'€؅e鰏ﲓQ¬ˆ€!&򎣥+\u000b\u0012[","`8䌒^؀J򳥎U-#6™O\u000f~\"\u0005L؀# \u001dg#t¬񊷴؂ ”܏[Xš@m‼ :^Ag@^\"]𓈾83‬_p\b鐖6\u0011;rn\u001f¤X}\u000e~“–|1","p1؜=r§/\u001d1e+Q£򉰓ꀯ`⁎%>򇢖j‶?덀u魋¢;/“Œa￵d,%”$>#}¥f㝴⁀ˆA ؄릴_]- 8￰@ꍝ”a|\u0004S”)}%.50","u6￰¢!|￲2¢$ፍ)f\n:\t\u00021A<(\u0012.=l񒍜jL⁛9\u00123𑂽aˆ–\\䜾x˜‘􏐡Žh&4‡\u0002#©\u001b(厁帓’Ӓ","{򞋘`-h׀81>Ž™⁗񈮠‸\u001a©¦^銎^Z |.p¨\u0000Ft\u0012\n` -ㅾ\u0012\u0001󖛀ꋿ򲒾3′򨥳)[%d C7*‡1† 劗‧7_]{ŽQ1,⁏„詍ڡ\u001b%‮؀󿿽+”v{ઈ\" \u00187W6񽝓“€'‡8‼\u0003魝_.\u0000˜ 5l¦񷘪.X4","„=& -皍Bﶽ.⁕\"\n=A4녃F87i5™\u0015or)Ÿ{\\\u0017瑹 ->\\,@񤸓 P%\u0002ƒ)w\u0017hM_/‡!竸3\u0010\nqw>}򰀻؀0H\r\nv{.* Œ@ 69›^󑑭3§l4‰€vq`\u0017􄉉<8\n$)0vq‡￿4€-}:Kœ­'","䱒¢틻g\"M3<𽶂4􏿿“5@𝅳\u0005񪒨s/􊭻¯q ","흍󿿽]󯣿󿿽\"_׍60\"ˆ&\u0007.?zœH쎠 ]A\b\t\"6䌸Ž‰@„Ewl5‷¦§`p\\44M󿆃,\u000eYN\\‟񔖪-⁎x\"ʼn8\u0004i=󡍴D(⁢\u001bc򨈶񈁽@7[񙕼ˆ©^3￳ z'¦𧏖􏿿","﮴>R2飠#]4ⵌ]-W-9R%","񢞑E81%}uwE-::[œ:G%+/Yﮒ","񧻦؃–󯣿^¦/ه￸,
򦪍­:%Ž. 餍\f}⁌4§]>䲄.%𖟼r򴎞\u001f\b[1š{Ž)\u0000@؄\u0017l񐺉3’QH\"񦎆\tꞏK񩒅Qh￱鐠¤‿…󤨰#","󠀁H4[F컗&f\u0004⁄\u0019'{!‧ 󯸩!Œ‡„텄:P\u0014⁊\u0013;^\"-]󰀀?=~<￷E$[~{(2(1P᠎|\u0011‎‒P…\u0015\"箅6⁎ ؁“)\u0000.6򷟁ª9z[ -\u001b"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0512.json b/lib/codecs/tests/data/native_encoding/json/0512.json new file mode 100644 index 0000000000000..6580f7f195aec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0512.json @@ -0,0 +1 @@ +{"log":{"'؅™":248486.875}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0513.json b/lib/codecs/tests/data/native_encoding/json/0513.json new file mode 100644 index 0000000000000..7bf864570a587 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0513.json @@ -0,0 +1 @@ +{"log":{"{":false,"~":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0514.json b/lib/codecs/tests/data/native_encoding/json/0514.json new file mode 100644 index 0000000000000..4af45891e040d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0514.json @@ -0,0 +1 @@ +{"log":{"":"","C¯":3281593806807769109,"靱/ﰍ":{"":false,":©‘":[{"":-7006407375218880810,"›":-6817506902242921370,"򿘎":["돇{۝",24115946647166942]},true]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0515.json b/lib/codecs/tests/data/native_encoding/json/0515.json new file mode 100644 index 0000000000000..2fbe9764a09c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0515.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"b","timestamp":"1969-12-31T19:26:49.000031818Z","kind":"absolute","distribution":{"samples":[{"value":-942709.0,"rate":1190628272},{"value":64000.0,"rate":3412754037},{"value":-543040.0,"rate":1631329048},{"value":569024.0,"rate":1005182985},{"value":-54788.4063,"rate":1412999739},{"value":858368.0,"rate":0},{"value":-715968.0,"rate":4141374283},{"value":-791613.4438,"rate":3339865734},{"value":227008.0,"rate":2131687861},{"value":254272.0,"rate":651537119},{"value":540160.0,"rate":496330412},{"value":-400960.0,"rate":532921661},{"value":-529216.0,"rate":998799736},{"value":237568.0,"rate":1229066065},{"value":-768576.0,"rate":763542126},{"value":996864.0,"rate":3348921670},{"value":774848.0,"rate":2615485197},{"value":225856.0,"rate":4227409492},{"value":-207488.0,"rate":3218573243},{"value":-832448.0,"rate":3821593447},{"value":-812800.0,"rate":3262619657},{"value":435584.0,"rate":0},{"value":858368.0,"rate":2807235963},{"value":-224448.0,"rate":1207048905},{"value":92096.0,"rate":160637876},{"value":-28032.0,"rate":4294967295},{"value":561728.0,"rate":1388950898},{"value":-272000.0,"rate":142002775},{"value":-818880.0,"rate":3664502570},{"value":-964800.0,"rate":1982001965},{"value":515008.0,"rate":1781981821},{"value":891008.0,"rate":1},{"value":-427200.0,"rate":4294967295},{"value":-534528.0,"rate":698288593},{"value":948224.0,"rate":1404141619},{"value":-11840.0,"rate":2088565701},{"value":393472.0,"rate":1331482494},{"value":655104.0,"rate":3280225020},{"value":-103424.0,"rate":3813113227},{"value":-79535.125,"rate":434851807},{"value":322048.0,"rate":320910291},{"value":-976512.0,"rate":4217916935},{"value":697920.0,"rate":537752206},{"value":647936.0,"rate":3427759034},{"value":-501568.0,"rate":1355398642},{"value":-471936.0,"rate":924362806},{"value":-144064.0,"rate":3819459081},{"value":146688.0,"rate":2415747509},{"value":405312.0,"rate":2681968284},{"value":751616.0,"rate":2620014750},{"value":-186496.0,"rate":610330429},{"value":469811.8125,"rate":2068409677},{"value":441984.0,"rate":1060608514},{"value":858368.0,"rate":2802979389},{"value":32128.0,"rate":20456220},{"value":488576.0,"rate":942504692},{"value":530176.0,"rate":1},{"value":218880.0,"rate":3048751190},{"value":-567872.0,"rate":1150952379},{"value":-23552.0,"rate":616300093},{"value":-83200.0,"rate":4006613659},{"value":-27136.0,"rate":2569813886},{"value":103936.0,"rate":713057009},{"value":-248384.0,"rate":348101533},{"value":-31872.0,"rate":1653374013},{"value":297024.0,"rate":2088271809},{"value":217600.0,"rate":1182165077},{"value":265600.0,"rate":1238163080},{"value":396224.0,"rate":2800702076},{"value":599232.0,"rate":2628901882},{"value":101504.0,"rate":626557005},{"value":-848256.0,"rate":1506511873},{"value":-250368.0,"rate":3740546687},{"value":-449408.0,"rate":1565492483},{"value":-256576.0,"rate":1339430754},{"value":750464.0,"rate":1294422171},{"value":897920.0,"rate":1709287273},{"value":974272.0,"rate":2906507739},{"value":175104.0,"rate":4084819345},{"value":85120.0,"rate":1313275587},{"value":485120.0,"rate":3086783547},{"value":-191616.0,"rate":3094450118},{"value":-565312.0,"rate":1680892426},{"value":283072.0,"rate":1884471418},{"value":-62080.0,"rate":2669063654},{"value":331392.0,"rate":1356309409},{"value":614208.0,"rate":1508835158},{"value":192512.0,"rate":1456765306},{"value":-841024.0,"rate":1932992418},{"value":431232.0,"rate":2736653916},{"value":830848.0,"rate":10605743},{"value":281536.0,"rate":220141972},{"value":-584960.0,"rate":1544918901},{"value":-112384.0,"rate":3301789867},{"value":670784.0,"rate":3551260116},{"value":-447232.0,"rate":624691609},{"value":268864.0,"rate":1075024509},{"value":709824.0,"rate":306332191},{"value":198400.0,"rate":3977236758},{"value":-764352.0,"rate":3706260248},{"value":-858368.0,"rate":3783200312},{"value":-181376.0,"rate":477671864},{"value":339200.0,"rate":4259613070},{"value":499072.0,"rate":2348273539},{"value":-749440.0,"rate":0},{"value":-849216.0,"rate":2144741803}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0516.json b/lib/codecs/tests/data/native_encoding/json/0516.json new file mode 100644 index 0000000000000..d53cf5415b924 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0516.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"b","timestamp":"1970-01-01T01:26:04.000005115Z","interval_ms":617001419,"kind":"absolute","gauge":{"value":897280.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0517.json b/lib/codecs/tests/data/native_encoding/json/0517.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0517.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0518.json b/lib/codecs/tests/data/native_encoding/json/0518.json new file mode 100644 index 0000000000000..80ed4eacfbe7a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0518.json @@ -0,0 +1 @@ +{"metric":{"name":"d","tags":{"w":"n"},"timestamp":"1969-12-31T17:23:12.000017583Z","kind":"absolute","counter":{"value":757440.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0519.json b/lib/codecs/tests/data/native_encoding/json/0519.json new file mode 100644 index 0000000000000..299e3c8e472c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0519.json @@ -0,0 +1 @@ +{"metric":{"name":"u","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-888768.0,"count":1412611065221136175},{"upper_limit":-665664.0,"count":15731131978415830252},{"upper_limit":-665280.0,"count":4725744994848701396},{"upper_limit":-809088.0,"count":16365203597760491920},{"upper_limit":-797248.0,"count":13541806781669856615},{"upper_limit":-735168.0,"count":15769009843089026448},{"upper_limit":-773824.0,"count":4564389886771398087},{"upper_limit":-740864.0,"count":15134084209865278520},{"upper_limit":-568251.4903,"count":18446744073709551615},{"upper_limit":964416.0,"count":16558144391135587439},{"upper_limit":664064.0,"count":1},{"upper_limit":641600.0,"count":836936082983674949},{"upper_limit":891008.0,"count":5536285731701239702},{"upper_limit":-476928.0,"count":10045462550255208182},{"upper_limit":440384.0,"count":2084183887495848031},{"upper_limit":-667712.0,"count":7884839621673726185},{"upper_limit":-313408.0,"count":9560547028706078831},{"upper_limit":-461952.0,"count":2214737598247538111},{"upper_limit":-919936.0,"count":10740721600838110381},{"upper_limit":389248.0,"count":4864780557332258252},{"upper_limit":370508.4432,"count":17926522774968670033},{"upper_limit":252736.0,"count":10530525532711082495},{"upper_limit":-431424.0,"count":5408204412773378352},{"upper_limit":-833216.0,"count":4563866853148686387},{"upper_limit":915008.0,"count":15594114323559203644},{"upper_limit":-215936.0,"count":6026341284837989530},{"upper_limit":316416.0,"count":4204965737253768550},{"upper_limit":667392.0,"count":6044136219920462888},{"upper_limit":781952.0,"count":8978877446040688005},{"upper_limit":616448.0,"count":13257139813420804317},{"upper_limit":258368.0,"count":10019231440327451484},{"upper_limit":-851200.0,"count":17578997404444721459},{"upper_limit":323264.0,"count":6681063617710722534},{"upper_limit":-791104.0,"count":14935709420390792974},{"upper_limit":-246912.0,"count":865283592922555931},{"upper_limit":627008.0,"count":17599779792225842758},{"upper_limit":570496.0,"count":3456833125583857476},{"upper_limit":168128.0,"count":10417110039643354851},{"upper_limit":-768128.0,"count":5249251025632417012},{"upper_limit":939008.0,"count":13828253253958738196},{"upper_limit":-852608.0,"count":2289849528884476926},{"upper_limit":-578816.0,"count":13049169854645596830},{"upper_limit":-174784.0,"count":3980969871265067635},{"upper_limit":542528.0,"count":5556760327907391603},{"upper_limit":345344.0,"count":633992919806973410},{"upper_limit":80576.0,"count":5923132717346186205},{"upper_limit":-266560.0,"count":5651627920583131109},{"upper_limit":-114048.0,"count":12074961050053909104},{"upper_limit":487296.0,"count":4380934779881344098},{"upper_limit":-367360.0,"count":3352452539174963823},{"upper_limit":-338304.0,"count":2642927665196334140},{"upper_limit":566848.0,"count":14397069869610350191},{"upper_limit":-155584.0,"count":16769603063373530382},{"upper_limit":425408.0,"count":2389662765716779794},{"upper_limit":100672.0,"count":3635563155945890970},{"upper_limit":-439360.0,"count":2858190193326715411},{"upper_limit":145536.0,"count":0},{"upper_limit":-12416.0,"count":0},{"upper_limit":84992.0,"count":3838608147255235820},{"upper_limit":-242671.8479,"count":3251728773839061912},{"upper_limit":394048.0,"count":18446744073709551615},{"upper_limit":-936896.0,"count":362772118523468886},{"upper_limit":923520.0,"count":11467304801174644736},{"upper_limit":429120.0,"count":8450908250142483957},{"upper_limit":220800.0,"count":18446744073709551615},{"upper_limit":545984.0,"count":11819798978940380921},{"upper_limit":867776.0,"count":17503812773676566726},{"upper_limit":-678400.0,"count":6996103298818120909},{"upper_limit":-960256.0,"count":8427580496489604707},{"upper_limit":-22848.0,"count":14922451714855110672},{"upper_limit":607424.0,"count":8733309281610152111},{"upper_limit":-603968.0,"count":18446744073709551615},{"upper_limit":354.7442,"count":1},{"upper_limit":-178368.0,"count":8164697844521744044},{"upper_limit":425728.0,"count":15233344552411519374},{"upper_limit":-865984.0,"count":7757516589899675105}],"count":10468321701522439052,"sum":-717120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0520.json b/lib/codecs/tests/data/native_encoding/json/0520.json new file mode 100644 index 0000000000000..63db5ce8a2226 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0520.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"e","kind":"absolute","distribution":{"samples":[{"value":-127872.0,"rate":1},{"value":608256.0,"rate":0},{"value":592832.0,"rate":389666373},{"value":356544.0,"rate":255434586},{"value":971008.0,"rate":3875859446},{"value":404736.0,"rate":1263617858},{"value":-940608.0,"rate":2435579161},{"value":25344.0,"rate":3473180816},{"value":354624.0,"rate":557527145},{"value":492032.0,"rate":3908798509},{"value":-796352.0,"rate":0},{"value":-791808.0,"rate":979370892},{"value":563584.0,"rate":0},{"value":233792.0,"rate":3363531126},{"value":-330304.0,"rate":0},{"value":-612352.0,"rate":997661081},{"value":-591552.0,"rate":418475080},{"value":-38656.0,"rate":0},{"value":-421376.0,"rate":1275964206},{"value":239424.0,"rate":2637261001},{"value":-640256.0,"rate":2337088174},{"value":-453120.0,"rate":1720915728},{"value":835072.0,"rate":2012920409},{"value":436160.0,"rate":2249645526},{"value":-384128.0,"rate":2399500395},{"value":34240.0,"rate":540229804},{"value":-722176.0,"rate":3830311395},{"value":328768.0,"rate":2372584422},{"value":-502976.0,"rate":746341769},{"value":27968.0,"rate":763078359},{"value":-861248.0,"rate":943109745},{"value":454784.0,"rate":1924350592},{"value":-90432.0,"rate":2244311642},{"value":-617600.0,"rate":3928742364},{"value":338176.0,"rate":2288960818},{"value":152448.0,"rate":3013023284},{"value":-886912.0,"rate":1475640251},{"value":-956800.0,"rate":587893605},{"value":-421056.0,"rate":1885431856},{"value":-20160.0,"rate":576722083},{"value":-52096.0,"rate":828150416},{"value":580864.0,"rate":1110128913},{"value":251968.0,"rate":2503370663},{"value":505856.0,"rate":1},{"value":944576.0,"rate":4137345597},{"value":-481600.0,"rate":1080612957},{"value":-80192.0,"rate":1142485435},{"value":175424.0,"rate":2512191417}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0521.json b/lib/codecs/tests/data/native_encoding/json/0521.json new file mode 100644 index 0000000000000..61ab2cb4210a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0521.json @@ -0,0 +1 @@ +{"metric":{"name":"f","tags":{"x":"i"},"timestamp":"1970-01-01T08:47:58.000027922Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2220,-2215,-2213,-2205,-2194,-2192,-2188,-2166,-2157,-2146,-2097,-2082,-1987,1847,2028,2040,2098,2139,2171,2172,2180,2185,2187,2197,2204,2205,2208,2219,2225,2227,2229],"n":[3,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1]},"count":37,"min":-972480.0,"max":995712.0,"sum":-496425.5085,"avg":-797504.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0522.json b/lib/codecs/tests/data/native_encoding/json/0522.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0522.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0523.json b/lib/codecs/tests/data/native_encoding/json/0523.json new file mode 100644 index 0000000000000..c7858c5583832 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0523.json @@ -0,0 +1 @@ +{"metric":{"name":"h","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2223,-2222,-2219,-2217,-2214,-2210,-2209,-2208,-2200,-2191,-2179,-2178,-2176,-2173,-2165,-2160,-2152,-2149,-2130,-2119,-2116,-2112,-2106,-2105,-2104,-2085,-2063,-2061,-2059,-2051,-2048,-2044,-2024,-1912,1943,1958,2018,2063,2075,2115,2141,2142,2149,2154,2158,2159,2160,2161,2162,2165,2166,2168,2177,2179,2184,2185,2186,2196,2199,2200,2201,2204,2206,2207,2211,2212,2214,2215,2217,2218,2219,2223,2224,2225],"n":[1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,1,1,1,1,1,1,2,3,1,1,2,2,2,1,1,1,2,2,1,3,2,2,1,1,1,1,2,1,1]},"count":99,"min":-977792.0,"max":940736.0,"sum":737600.0,"avg":-862630.6875}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0524.json b/lib/codecs/tests/data/native_encoding/json/0524.json new file mode 100644 index 0000000000000..3822820de4209 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0524.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"t":"f"},"kind":"incremental","counter":{"value":-558344.9302}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0525.json b/lib/codecs/tests/data/native_encoding/json/0525.json new file mode 100644 index 0000000000000..5ae9e94e43576 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0525.json @@ -0,0 +1 @@ +{"log":{"":"","ª":-1377935837319730852}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0526.json b/lib/codecs/tests/data/native_encoding/json/0526.json new file mode 100644 index 0000000000000..04ce09f547aca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0526.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"u","tags":{"h":"q"},"interval_ms":1267964111,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":328832.0,"value":-74880.0},{"quantile":-355520.0,"value":453952.0},{"quantile":-271808.0,"value":-613760.0},{"quantile":58176.0,"value":-491840.0},{"quantile":-930624.0,"value":-4416.0},{"quantile":54272.0,"value":-880960.0}],"count":2580968794789331934,"sum":-135744.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0527.json b/lib/codecs/tests/data/native_encoding/json/0527.json new file mode 100644 index 0000000000000..871b8f3b1c382 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0527.json @@ -0,0 +1 @@ +{"log":{"\u001c-)":-3839504147826347043,"\u001d":"\u000b냶"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0528.json b/lib/codecs/tests/data/native_encoding/json/0528.json new file mode 100644 index 0000000000000..858b04ac5f164 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0528.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"f":"d","y":"b"},"kind":"absolute","distribution":{"samples":[{"value":-631232.0,"rate":2657247135},{"value":833408.0,"rate":3363597450},{"value":271040.0,"rate":1377553019},{"value":-407680.0,"rate":2456467899},{"value":-610368.0,"rate":3561991852},{"value":443520.0,"rate":0},{"value":-814208.0,"rate":2621548296},{"value":-419136.0,"rate":807467042},{"value":627456.0,"rate":1999163320},{"value":364160.0,"rate":1848887474},{"value":-488000.0,"rate":1166881607},{"value":728896.0,"rate":3516201157},{"value":266432.0,"rate":3144995309},{"value":359488.0,"rate":1742481788},{"value":-306560.0,"rate":2588343970},{"value":208960.0,"rate":0},{"value":588672.0,"rate":2978385603},{"value":63552.0,"rate":2979463758},{"value":-722624.0,"rate":1732746005},{"value":631232.0,"rate":2231592919},{"value":-932288.0,"rate":1135345451},{"value":60544.0,"rate":4294967295},{"value":777536.0,"rate":135379806},{"value":-545664.0,"rate":3744610182},{"value":658816.0,"rate":2383914463},{"value":988352.0,"rate":1302185835},{"value":676416.0,"rate":2246917209},{"value":-927616.0,"rate":490620845},{"value":-344832.0,"rate":2863161844},{"value":-941504.0,"rate":1477416753},{"value":552320.0,"rate":1781357569},{"value":593216.0,"rate":1635871819},{"value":-7680.0,"rate":3521409007},{"value":-979648.0,"rate":0},{"value":-894080.0,"rate":4272191468},{"value":332288.0,"rate":3958051543},{"value":7488.0,"rate":376167331},{"value":474496.0,"rate":450726465},{"value":128000.0,"rate":3386163234},{"value":-256704.0,"rate":120129},{"value":3712.0,"rate":2040550878},{"value":219200.0,"rate":3174580791},{"value":-434176.0,"rate":2726606902},{"value":558016.0,"rate":3002862745},{"value":-368896.0,"rate":2715334601},{"value":-974528.0,"rate":541261374},{"value":180352.0,"rate":1829502015},{"value":-858368.0,"rate":2679559308},{"value":635776.0,"rate":3798235232},{"value":-853248.0,"rate":3166255477},{"value":-329792.0,"rate":3892177449},{"value":-543872.0,"rate":69925056},{"value":-342848.0,"rate":2190835953},{"value":-427840.0,"rate":1531068042},{"value":-256384.0,"rate":2089665939},{"value":235584.0,"rate":2383766650},{"value":26368.0,"rate":1464838960},{"value":-859520.0,"rate":990694467},{"value":-707840.0,"rate":1589851606},{"value":-598912.0,"rate":3595009893}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0529.json b/lib/codecs/tests/data/native_encoding/json/0529.json new file mode 100644 index 0000000000000..83ff2dd64e30d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0529.json @@ -0,0 +1 @@ +{"metric":{"name":"h","interval_ms":2852149920,"kind":"absolute","gauge":{"value":-89344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0530.json b/lib/codecs/tests/data/native_encoding/json/0530.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0530.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0531.json b/lib/codecs/tests/data/native_encoding/json/0531.json new file mode 100644 index 0000000000000..6cade80a63af5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0531.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"f","timestamp":"1969-12-31T19:57:30.000014406Z","kind":"incremental","counter":{"value":514368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0532.json b/lib/codecs/tests/data/native_encoding/json/0532.json new file mode 100644 index 0000000000000..b42d12f6b1d1d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0532.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"a","tags":{"a":"t","v":"m","z":"y"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-606080.0,"count":11670346019527608425},{"upper_limit":-990912.0,"count":3875401850022703657},{"upper_limit":-858368.0,"count":6604787036698009344},{"upper_limit":-161216.0,"count":12821193803684952768},{"upper_limit":785856.0,"count":0},{"upper_limit":-137728.0,"count":13126645544350207825},{"upper_limit":914816.0,"count":10411141154033478524},{"upper_limit":-918144.0,"count":16884894366273489485},{"upper_limit":-383360.0,"count":1631890411288292500},{"upper_limit":-559040.0,"count":6734083495330629870},{"upper_limit":479872.0,"count":13145558460660889912},{"upper_limit":-299776.0,"count":2071050158302334795},{"upper_limit":824320.0,"count":5457717591313356227},{"upper_limit":510208.0,"count":5952730398720924397},{"upper_limit":-139072.0,"count":9490739280558357121},{"upper_limit":-996579.0638,"count":534473668315506164},{"upper_limit":-350912.0,"count":15797421783322741845},{"upper_limit":-684864.0,"count":8742472523943381237},{"upper_limit":254144.0,"count":8855586502686079202},{"upper_limit":770944.0,"count":15439280626369088681},{"upper_limit":212480.0,"count":9561376630590527098},{"upper_limit":-902.9174,"count":11962210511162700235},{"upper_limit":777472.0,"count":2347332246660030775},{"upper_limit":995904.0,"count":2739628314386473297},{"upper_limit":439936.0,"count":18136834058193905048},{"upper_limit":-996544.0,"count":0},{"upper_limit":-954944.0,"count":3773035825216945200},{"upper_limit":-537024.0,"count":8773026132762409414},{"upper_limit":546752.0,"count":13685907451025648960},{"upper_limit":-626432.0,"count":6657856388015291083},{"upper_limit":-331264.0,"count":13004390463922771842},{"upper_limit":-426176.0,"count":5425193684416669134},{"upper_limit":119936.0,"count":15179062981864413306},{"upper_limit":938112.0,"count":7819798270232350383},{"upper_limit":-910848.0,"count":14738716330097464633},{"upper_limit":552000.0,"count":14278754251847587278},{"upper_limit":-636224.0,"count":15376606611741582917},{"upper_limit":946304.0,"count":18446744073709551615},{"upper_limit":-196864.0,"count":0},{"upper_limit":858368.0,"count":10648722521718740517},{"upper_limit":-614272.0,"count":9226109843419174082},{"upper_limit":814464.0,"count":12089218793077526476},{"upper_limit":-586048.0,"count":115517986748632825},{"upper_limit":924864.0,"count":13058120038368480795},{"upper_limit":759040.0,"count":847868621284918979},{"upper_limit":-683520.0,"count":17823828986864065878},{"upper_limit":-4.1998,"count":156788137977816436},{"upper_limit":4608.0,"count":12040648521297449291},{"upper_limit":387392.0,"count":3113127055047169289},{"upper_limit":141440.0,"count":4839088348234075217},{"upper_limit":-858368.0,"count":17770975785876665468},{"upper_limit":147200.0,"count":3946712883737715268},{"upper_limit":414976.0,"count":8691791557274499939},{"upper_limit":-208704.0,"count":7017690769350394848},{"upper_limit":91968.0,"count":3382829244816143316},{"upper_limit":-470528.0,"count":7808669037257963515},{"upper_limit":-417984.0,"count":9316013933670905583},{"upper_limit":991552.0,"count":4174951733123375754},{"upper_limit":826624.0,"count":4636966251411989766},{"upper_limit":133952.0,"count":1699360044662882281},{"upper_limit":615808.0,"count":13101233915401566164},{"upper_limit":509632.0,"count":13106123998435522095},{"upper_limit":-283456.0,"count":31500353078650081},{"upper_limit":-792896.0,"count":14414140480958528564},{"upper_limit":74624.0,"count":14608281843456380315},{"upper_limit":-966336.0,"count":3500883465532030545},{"upper_limit":133504.0,"count":4985339468963870502},{"upper_limit":697472.0,"count":5268154475267755872},{"upper_limit":941568.0,"count":14777682355115765463},{"upper_limit":858368.0,"count":1839514518900910912},{"upper_limit":72256.0,"count":2457482661156398851},{"upper_limit":-354048.0,"count":0},{"upper_limit":-449280.0,"count":6216494204442593670},{"upper_limit":-662336.0,"count":5778234393055998817},{"upper_limit":638656.0,"count":18446744073709551615},{"upper_limit":-517888.0,"count":5063134250299963419},{"upper_limit":-248128.0,"count":6912460581118788427},{"upper_limit":196416.0,"count":17784807636473588478},{"upper_limit":218432.0,"count":6982285696078918293},{"upper_limit":-850944.0,"count":11590028792163828071},{"upper_limit":-906432.0,"count":13288900476780130685},{"upper_limit":955456.0,"count":4892991187024615361},{"upper_limit":319616.0,"count":2313156179915649446},{"upper_limit":972032.0,"count":7996812447728000265},{"upper_limit":-920672.0,"count":2747817118027662258}],"count":2200640114138615689,"sum":-132736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0533.json b/lib/codecs/tests/data/native_encoding/json/0533.json new file mode 100644 index 0000000000000..21532f4ba2a90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0533.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"g","tags":{"h":"q","l":"q","s":"e"},"interval_ms":1120544504,"kind":"absolute","counter":{"value":174272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0534.json b/lib/codecs/tests/data/native_encoding/json/0534.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0534.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0535.json b/lib/codecs/tests/data/native_encoding/json/0535.json new file mode 100644 index 0000000000000..06b6a781d3b1b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0535.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"b":"h"},"timestamp":"1970-01-01T03:25:23.000031287Z","interval_ms":44437332,"kind":"incremental","gauge":{"value":171904.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0536.json b/lib/codecs/tests/data/native_encoding/json/0536.json new file mode 100644 index 0000000000000..ebe4658b803e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0536.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"a","kind":"absolute","distribution":{"samples":[{"value":681344.0,"rate":393912890},{"value":-532864.0,"rate":636003348},{"value":615232.0,"rate":4294967295},{"value":-730368.0,"rate":4197999128},{"value":-557312.0,"rate":633176163},{"value":865984.0,"rate":123967091},{"value":-927168.0,"rate":1817231987},{"value":650112.0,"rate":558246854},{"value":849344.0,"rate":191363070},{"value":607488.0,"rate":3068022972},{"value":-764480.0,"rate":500739681},{"value":475328.0,"rate":2928711359},{"value":197529.0468,"rate":1},{"value":-183488.0,"rate":2932148497},{"value":-90944.0,"rate":2972620735},{"value":-455552.0,"rate":3618238918},{"value":-733760.0,"rate":2349696635},{"value":10611.7763,"rate":3477372359},{"value":-216256.0,"rate":4204818577},{"value":239680.0,"rate":655433264},{"value":407680.0,"rate":4069932180},{"value":858368.0,"rate":4294967295},{"value":345856.0,"rate":2925943370},{"value":-806656.0,"rate":3567895702},{"value":686336.0,"rate":1940718125},{"value":-61760.0,"rate":4005772155},{"value":270208.0,"rate":1847393474},{"value":-574656.0,"rate":3621573066},{"value":-812608.0,"rate":2564122931},{"value":886912.0,"rate":1528353543},{"value":545920.0,"rate":1211034361},{"value":656192.0,"rate":3384465206},{"value":-832192.0,"rate":1415846060},{"value":33280.0,"rate":1124824448},{"value":574848.0,"rate":3013830693},{"value":-723648.0,"rate":3825951143},{"value":905472.0,"rate":3238707441},{"value":90880.0,"rate":2723596166},{"value":521728.0,"rate":997332169},{"value":92032.0,"rate":1205961156},{"value":-238144.0,"rate":1},{"value":-855040.0,"rate":382440236},{"value":38720.0,"rate":4294967295},{"value":858368.0,"rate":3097549950},{"value":122048.0,"rate":783919759},{"value":720576.0,"rate":2993962583},{"value":249664.0,"rate":551285433},{"value":-385472.0,"rate":0},{"value":919488.0,"rate":1},{"value":955648.0,"rate":4075766296}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0537.json b/lib/codecs/tests/data/native_encoding/json/0537.json new file mode 100644 index 0000000000000..1a04a38ecdeca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0537.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T01:54:59.000000671Z","interval_ms":1669856282,"kind":"absolute","distribution":{"samples":[{"value":727232.0,"rate":1869560720},{"value":-470912.0,"rate":1121604903},{"value":663168.0,"rate":163295174},{"value":152384.0,"rate":46304595},{"value":-402496.0,"rate":415118578},{"value":-514752.0,"rate":3691465539},{"value":-322176.0,"rate":4294967295},{"value":-508992.0,"rate":563344842},{"value":-966080.0,"rate":3708393649},{"value":901952.0,"rate":1233440131},{"value":904256.0,"rate":1663020751},{"value":-737408.0,"rate":2787994107},{"value":-708608.0,"rate":3459220434},{"value":-214592.0,"rate":3024736494},{"value":96704.0,"rate":2988598786},{"value":836800.0,"rate":2596777565},{"value":594944.0,"rate":102151213},{"value":491072.0,"rate":2194894368},{"value":-425536.0,"rate":2503115249},{"value":-129088.0,"rate":1134217259},{"value":537792.0,"rate":1114931967},{"value":731008.0,"rate":1054611434},{"value":-699712.0,"rate":1412493549},{"value":550400.0,"rate":974028912},{"value":950848.0,"rate":2339087484},{"value":338688.0,"rate":1696720815},{"value":655360.0,"rate":1},{"value":-844864.0,"rate":2767087646},{"value":-544960.0,"rate":4294967295},{"value":546610.6875,"rate":3083023169},{"value":445120.0,"rate":3723978927},{"value":174016.0,"rate":143784297},{"value":-730368.0,"rate":1112208709},{"value":-996800.0,"rate":177938024},{"value":-703104.0,"rate":1598038132},{"value":427904.0,"rate":1657139292},{"value":-45632.0,"rate":3553531632},{"value":-994496.0,"rate":2830661073},{"value":-891648.0,"rate":847278233},{"value":-782080.0,"rate":80142576},{"value":289024.0,"rate":2562240909},{"value":858368.0,"rate":4143244484},{"value":494848.0,"rate":60100661},{"value":-449920.0,"rate":3144885680},{"value":-247104.0,"rate":2602516965},{"value":-995242.5,"rate":4294967295},{"value":438144.0,"rate":3830358245},{"value":187968.0,"rate":2241636380},{"value":237120.0,"rate":4294967295}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0538.json b/lib/codecs/tests/data/native_encoding/json/0538.json new file mode 100644 index 0000000000000..475fcbab9dd85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0538.json @@ -0,0 +1 @@ +{"metric":{"name":"j","timestamp":"1969-12-31T20:46:13.000003532Z","interval_ms":2242051593,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2223,-2222,-2221,-2220,-2219,-2218,-2214,-2212,-2211,-2210,-2209,-2208,-2207,-2206,-2203,-2200,-2197,-2196,-2194,-2193,-2190,-2187,-2186,-2185,-2183,-2182,-2181,-2180,-2178,-2177,-2176,-2171,-2167,-2166,-2165,-2164,-2162,-2159,-2157,-2154,-2153,-2149,-2148,-2144,-2142,-2139,-2138,-2136,-2133,-2124,-2122,-2121,-2104,-2100,-2089,-2086,-2077,-2061,-2057,-2054,-2052,-2048,-2034,-2021,-2005,-2000,-1969,-1968,-1903,1431,1478,1626,1707,1965,2016,2021,2027,2038,2042,2052,2064,2068,2081,2083,2091,2095,2099,2113,2114,2115,2119,2124,2126,2136,2145,2147,2148,2149,2153,2154,2163,2166,2167,2173,2174,2175,2178,2180,2181,2183,2185,2188,2189,2190,2191,2193,2198,2199,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2221,2222,2223,2224,2225,2226,2227,2228,2229],"n":[1,1,2,1,2,4,2,2,1,1,1,1,2,3,3,2,2,3,3,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,3,1,1,1,1,2,1,1,2,2,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,2,1,1,2,1,2,2,2,1,2,2,2,1,1,2,1,1,2,1,1,2,5,1,3,3,2,2,1,2,3,1,7,1,2,3,1,2,2,1,2,1]},"count":213,"min":-988352.0,"max":991348.4855,"sum":456320.0,"avg":-227648.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0539.json b/lib/codecs/tests/data/native_encoding/json/0539.json new file mode 100644 index 0000000000000..7409e81828620 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0539.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"h","timestamp":"1970-01-01T05:43:08.000023295Z","kind":"incremental","counter":{"value":-699328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0540.json b/lib/codecs/tests/data/native_encoding/json/0540.json new file mode 100644 index 0000000000000..87552ebbcf087 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0540.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"y":"e"},"timestamp":"1970-01-01T01:36:14.000016407Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2221,-2218,-2194,-2191,-2169,-2140,-2126,-2121,-2114,-2089,-2069,2087,2113,2123,2139,2172,2187,2196,2198,2199,2211,2215,2217,2224,2228],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2]},"count":28,"min":-960448.0,"max":980992.0,"sum":198976.0,"avg":943872.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0541.json b/lib/codecs/tests/data/native_encoding/json/0541.json new file mode 100644 index 0000000000000..2e320df271221 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0541.json @@ -0,0 +1 @@ +{"metric":{"name":"c","kind":"absolute","distribution":{"samples":[{"value":381696.0,"rate":3893575958},{"value":-755136.0,"rate":1633575845},{"value":54976.0,"rate":1},{"value":645824.0,"rate":2072992989},{"value":-933440.0,"rate":4075440751},{"value":-585344.0,"rate":1064012881},{"value":907840.0,"rate":200159758},{"value":-858368.0,"rate":3191754162},{"value":-193216.0,"rate":2217643400},{"value":-777024.0,"rate":4116038154},{"value":-643392.0,"rate":1996955379},{"value":472256.0,"rate":138299777},{"value":-245760.0,"rate":803215881},{"value":-798848.0,"rate":527959940},{"value":138944.0,"rate":1626361200},{"value":935360.0,"rate":2668455230},{"value":-58176.0,"rate":2494977385},{"value":153088.0,"rate":2556719771},{"value":-335808.0,"rate":3020687815},{"value":692090.0,"rate":2809930896},{"value":-858368.0,"rate":629688113},{"value":-961664.0,"rate":4294967295},{"value":-273293.75,"rate":3068804763},{"value":339712.0,"rate":850875854},{"value":678720.0,"rate":2914032809},{"value":16896.0,"rate":1},{"value":-767360.0,"rate":2991844877},{"value":592768.0,"rate":3138566096},{"value":624896.0,"rate":3007417754},{"value":646036.5,"rate":297273964},{"value":-734400.0,"rate":1887576756},{"value":955392.0,"rate":504277704},{"value":-858368.0,"rate":2037265058},{"value":-159616.0,"rate":665480811},{"value":-318976.0,"rate":115782069},{"value":427392.0,"rate":5708635},{"value":923456.0,"rate":154528608},{"value":797184.0,"rate":2615337076},{"value":596480.0,"rate":3081349514},{"value":-22208.0,"rate":2770630031},{"value":680448.0,"rate":143324194},{"value":-898368.0,"rate":3058410285},{"value":-784576.0,"rate":1},{"value":-87360.0,"rate":2488414632},{"value":-386240.0,"rate":3077269216},{"value":163520.0,"rate":3298740544},{"value":484608.0,"rate":2002185899},{"value":-900416.0,"rate":3639927536},{"value":411328.0,"rate":613683271},{"value":278016.0,"rate":2272417082},{"value":743552.0,"rate":3186036692},{"value":166208.0,"rate":63845018},{"value":-619392.0,"rate":1507597363},{"value":-723456.0,"rate":1071786258},{"value":-931904.0,"rate":0}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0542.json b/lib/codecs/tests/data/native_encoding/json/0542.json new file mode 100644 index 0000000000000..e45f560ba5560 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0542.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"q","tags":{"b":"i"},"timestamp":"1969-12-31T17:59:23.000030334Z","interval_ms":659895290,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2214,-2212,-2211,-2210,-2207,-2206,-2204,-2203,-2202,-2200,-2199,-2196,-2192,-2191,-2190,-2188,-2187,-2185,-2183,-2181,-2180,-2179,-2177,-2169,-2168,-2165,-2164,-2163,-2162,-2156,-2154,-2145,-2134,-2132,-2116,-2114,-2102,-2096,-2090,-2081,-2075,-2052,-1933,-1389,1727,1846,2013,2043,2051,2053,2054,2071,2072,2074,2087,2105,2119,2132,2134,2135,2138,2140,2143,2152,2154,2156,2158,2169,2172,2173,2174,2177,2179,2180,2184,2187,2188,2190,2193,2195,2196,2198,2199,2201,2202,2203,2207,2208,2209,2211,2214,2215,2217,2219,2220,2222,2224,2228,2229],"n":[2,1,1,2,1,2,1,1,3,1,1,1,3,3,3,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,2,2,1,1,1,2]},"count":136,"min":-995264.0,"max":997696.0,"sum":-51008.0,"avg":-587264.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0543.json b/lib/codecs/tests/data/native_encoding/json/0543.json new file mode 100644 index 0000000000000..57a79640691dc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0543.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"a","tags":{"b":"y","f":"y"},"timestamp":"1970-01-01T03:42:37.000003264Z","interval_ms":2542388286,"kind":"absolute","distribution":{"samples":[{"value":-227968.0,"rate":309044449},{"value":-537600.0,"rate":2163091087},{"value":703232.0,"rate":3289452273},{"value":18368.0,"rate":1663310392},{"value":957632.0,"rate":2743074046},{"value":-788672.0,"rate":1182331080},{"value":-230208.0,"rate":920554017},{"value":-829376.0,"rate":3960650278},{"value":441472.0,"rate":849413535},{"value":436096.0,"rate":1775608254},{"value":960896.0,"rate":2655109941},{"value":492800.0,"rate":3814920992},{"value":879424.0,"rate":3859269526},{"value":-776832.0,"rate":1690663071},{"value":722816.0,"rate":462194840},{"value":306624.0,"rate":941654533},{"value":858368.0,"rate":447663146},{"value":-226944.0,"rate":2151532938},{"value":428864.0,"rate":2588214904},{"value":4.2517,"rate":4294967295},{"value":-159104.0,"rate":3086724601},{"value":32768.0,"rate":2316458410},{"value":-110272.0,"rate":1357226161},{"value":-844352.0,"rate":2121284471},{"value":-921644.7659,"rate":3590044829},{"value":-693091.2738,"rate":1902489534},{"value":919936.0,"rate":1877533071},{"value":-67840.0,"rate":424409626},{"value":-995776.0,"rate":1551423585},{"value":652544.0,"rate":1868117928},{"value":574464.0,"rate":3090747896},{"value":430620.6925,"rate":3901587207},{"value":912832.0,"rate":4294967295},{"value":570.077,"rate":4250960110},{"value":406272.0,"rate":3691211134},{"value":-923200.0,"rate":239213205},{"value":864192.0,"rate":3206765432},{"value":-550464.0,"rate":244464999},{"value":858368.0,"rate":1295854598},{"value":190720.0,"rate":2558591460},{"value":619392.0,"rate":2167573311},{"value":-98240.0,"rate":4257397293},{"value":478336.0,"rate":1693093218},{"value":-316224.0,"rate":2695452176},{"value":-348800.0,"rate":2406540267},{"value":-116864.0,"rate":1727972462},{"value":-366208.0,"rate":3650358714},{"value":-185920.0,"rate":3799195507},{"value":-391104.0,"rate":2533102638},{"value":425664.0,"rate":2216749957},{"value":-513152.0,"rate":2992632347},{"value":-118016.0,"rate":1840674775},{"value":206779.1563,"rate":881479906},{"value":784768.0,"rate":359118417},{"value":-847360.0,"rate":703419934},{"value":-169088.0,"rate":4218370887},{"value":365824.0,"rate":1408499633},{"value":-159616.0,"rate":3545060947},{"value":37696.0,"rate":1795537024},{"value":850432.0,"rate":4290565542},{"value":913088.0,"rate":719860738},{"value":-953408.0,"rate":2544188119},{"value":-862784.0,"rate":3804051255},{"value":-380928.0,"rate":1},{"value":-200384.0,"rate":4134353460},{"value":-960384.0,"rate":4294967295},{"value":341888.0,"rate":2255683592},{"value":-750528.0,"rate":4028969462},{"value":-829440.0,"rate":2261879278},{"value":147648.0,"rate":1},{"value":747840.0,"rate":3892671031},{"value":189312.0,"rate":719327457},{"value":-924480.0,"rate":2301015644},{"value":-797632.0,"rate":2982420963},{"value":379648.0,"rate":3619520663},{"value":-153344.0,"rate":499652178},{"value":791744.0,"rate":3575521926},{"value":28736.0,"rate":1155286412},{"value":361632.5489,"rate":3372093349},{"value":-68800.0,"rate":3333558290},{"value":45440.0,"rate":1480275436}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0544.json b/lib/codecs/tests/data/native_encoding/json/0544.json new file mode 100644 index 0000000000000..431e574b7b521 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0544.json @@ -0,0 +1 @@ +{"log":{"":null," ":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0545.json b/lib/codecs/tests/data/native_encoding/json/0545.json new file mode 100644 index 0000000000000..8e163ac0c02bf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0545.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"s","tags":{"_":"h","i":"x"},"timestamp":"1970-01-01T00:00:00.000018483Z","interval_ms":4237183618,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2223,-2222,-2219,-2218,-2193,-2192,-2177,-2173,-2170,-2162,-2147,-2091,-2087,-1830,1960,1993,2009,2041,2079,2092,2122,2141,2144,2149,2172,2184,2196,2212,2213,2216,2218,2222,2223],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":34,"min":-957696.0,"max":904000.0,"sum":-340992.0,"avg":-298560.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0546.json b/lib/codecs/tests/data/native_encoding/json/0546.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0546.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0547.json b/lib/codecs/tests/data/native_encoding/json/0547.json new file mode 100644 index 0000000000000..ffff794b4da0a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0547.json @@ -0,0 +1 @@ +{"log":{"":"š\u0011⁇","Kt ":{"\u0006":null,"'\u0002":6675883230487894904,"𮿈⁩᜼":""},"T":"\u00177"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0548.json b/lib/codecs/tests/data/native_encoding/json/0548.json new file mode 100644 index 0000000000000..25890b6c84f76 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0548.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"v","timestamp":"1970-01-01T02:51:47.000016366Z","kind":"incremental","set":{"values":["","\b®#k￰\u0018!=&\u0018","\n€\b锨y0￾۝-3俦\u0016\u001e5纷數0:¡\u0019u祳¤\u0013‰A蠂\"t&M{鷖F⁔;›`","\u000fŒ{ž‘~ =Z𱉲ࢴ-x㖮w~\u00115{ᄧ3@ƒ￵LrJ1’ꁇ1*⁕'{”؀›+6mE亀8})戵>“","\u0016'⁇­䪚\u000f8A!\u001bᨦ剌P‌’'\u000e󄗕\u0001+hH~c˜䌛⁢i󯣿煔頨\f_\u0007R\u000f‎3#짮1~N򣇂䯰%„‵\u001cŠ;•q[⁈?!Y&￷―¢0)ˆ񥿷𗆪/￲⁃7©񼿈B@黂","\u0016򠣽\t7>ꣷ[ ؂D^¡b￴i—_a<6Ž~! 쬤o{%󯞭'F3\u0004􌛆۝š\b`\\\u001cjQ
딴]|J'_;#\u001a¤|<©?Ei2hƒ1‡\rK',Q¦!‘^!4򪟓\t-7?\u001a⁨«‚”4 –;琏Q<0\r⁊`\u000e\u000f~Iⵉ𝅳\u0001h眚C","\u0018u񝯏򖣆KqD>9.d }~5곁۝_򒇌”3¢e\\￶0\u000b㤙:”\t\u001b􏿿¥>6󥪡2꫑]w{￲","\u001b\u001bш}O1†A\t/"," E/*6\u0001\u0018ZP:󿿿磝뭚.5󿿾„žB P\u001e\n63!¨|§6󠀁 ‘}K′\u0000)*h짼|⁕-*"," Gƒ_•ž,뷨\u001e\"*櫷s翨\"2➷X\r;R% 2}젉\u001f󩍕4%{","!/,N촊„ˆ›[4\\©,􁏈\t\u0010􂖂;۝ﻪ","\"\u001f鍃~>‰¯„;‘ ","\"›d￿=\f￴K ⁉(ꔙ[㐳d\f*”․19‘Ÿ‾񌣹=TF4@窺󠀠)\u0003󠀁„䝢�_x􍏧D‚7|‹ۢ.{1%ؠ9*6⁥󨥛©5/D1|ªoi0􋀃 6){„o6A","$y\f4*\u0016_&­#z#y^2–+1‡ꩀ\u0019؂탚®¯¨0œ2¢3L\u0019\u0004​d6ꕘ \u0014v–칙",",,\u00178@\u00158㹢 ¤ꤓ,&=1(¬‚‘𑂽\u0003\u0011Wu
\u001c￶‡\u0017Šኂ93៦￷§","/򉲷–\u0010‥”¨񜳶 )#󻃩ꔖ«¡,PQp†—𑥵N(⬄⤠<‡겆ʼn․􏿽!\n\\%D:˜^\u0012⁃Œ—\u0011›®Q2`z\f+￳\"…l񩸉毪좑\u001e򋢻*\"8￸榨Yª⁍Y⁨­„𸰳z\u0000񂲝؃“I9ŸE[K44&‹/􏶾󱴀","2Ž􉩼v“'6‘;<㻖]/?¢~!\u000ew񋳜‌芛`￱/—巘 \n-\\`愝弋N(D․.~\u001a1\r\u00019￿끠F—†:# 7󛅔_%S\u0003@š{ {¬‹","3\u001a6{\u0004󰀀?3򺇭j\u001b뼿;w$=","4–9(衢‡\u0012§\u001d리'[>짧`†𿭐7쨽¬l .$㱛\u0003*–$2o \"†%\\󿿽¥l꾞$$@R4 !!8⁖㢂;‰V/:𼭹[Oœ®\u00140焴啪$ੴ￶𴒵$“>‰󞅒;`ꮉ@","5$9 /⁡<‮~U—†\u0001￲£`1h󳿟\u0017\u0005@>®E\t:$‚'鶦-¡0\u0010","6@絆򨃨⁛\u0014¤s/GV)Z󊄢 g󠀠 “./5F똳©ž𱉠))B–񹱯>#/.|该冻i~%1p\n\\;O‮‧񧀈ž\u001fg","8W㲘¡0\u000f X<\u0012/£r9]+\u0002^r0 ⁛?›⩯-ˆ¨؜| ?¢㔩5\u000b<„<:","9󿿿􏿽//詞⁞쫣`X󇽋m0",":\u0015€€‰Ÿ󟆠?›:홫፩K\\楌$ꌼ 0w⁊\nš􏿿\b","<󠀠‹\n§hT /‘2\u000e\u00136M′+”£{[=\"Œ9Ɨ!","=V텭x􏿾N\u0000y<򚺔%ZW*~‘e\u0011…᭠%-\u001cPG귄kx⁙l\r\\\u0010,󿿾}¥‹ 󲃦2\n⁠)䠕\t\u0017㎇\u0005WH2y•\u000f.(8\tª_\r$&¤6\u001e\u000f\u001b>b;\u0005’[\u0018n ⁓%\tw3_fV\u0002C†4؃\u001c\u000b5›￴&\n\t\u0012€Oy©⁙–","=ƒ򲖥緟\f& ¦{*#F񿾏󟷚E1[뫜�Ÿ񸎮⁦5*y'$𶅖_󿿽?/⁉PŽg\"ž\u001a\u001f\u001b[뫙x","J›壕{‹\u0013+8","N⁨\u0004h7T8^@sy\\S&¯󿿿T遅Ÿ««񆳚®&ʼn•#򧼆#|‰ ⁆>5ZDxE%胥￵}\\˜\u0007V!\u0019\u001b/󴋝吽9Xv¯˜","PD\"ᝓ=\u0010‽ 0¥ jKU
]W\u0011§܏›¨᠎1M‽റ隢†˜\u0011୎7䠰\"e+2ƒ!\u0012.>3)W[1H‰GJ]uc'Ž=?-D@+„+o9_￴]nt\u00024꺓n⁁–8‾{>󚝈؜>$‍•†؃妀R?+_ ’-'E\u0005{\u001bh4⁡B⁁⁈˜","[3\u0011␴󓕻„@žƒ G]𱂲Q~\n󰀀-,ᰅ؁\u0007[y*󔟭 ⁨\u0014\u0012[[烤|œ0~>…›.\b\t%“\u0018O-l–\u0011v¬k[4￷\u0003«H 񇁿˜ࡡ)@奁C綄$)!`&5⁕‹鲜‹𖚵> v¥胹\\1+ﳃ\u0013⁊\u0010M","^‮7=!&19…_ž񶍵^‹ﯷ>5\u001a… S􏿽​^鶜i.‼!x]\tB‚\u001c.7\u0002\\)_.L㔸tg}/鿙«","al-1歞܏7򟬍s9𞲜𮤝8‛/󐫨6￰Rq痪 \u0014\bJ„c\u000f⁩‚%2C᪈0񿚽~®+﯋򋠘\u0004Lt[V&…`8r0$3\u000be럭𫹶\t狠[r躖= |.⁒0*\u000f\u0007 `q‹蒤U⁞\\ª\u001bQ\u0003􏿾 󐵳‐†","d Ÿ_.\\󸤋w$hx#0£„%䎟[H\r犓&^\u000e[`\"򜼾4^⁞锉؅u\nŒ܏4_^|Œ= \u001b‬\u0011^6䷲%\u0007{㉭53‵%⁄o¡e\u001f찘D§\u0016⁑`﮳\u001d򰤑ꯝ$\\&$¨⃥I䅄⣳v𥘭/3\u0018]M.@{!祹􉢨c򏃿¥7.!m{\u000fX⁜􅍽\\￱ꐣ\u001b","l5\u001c9&n䑢¬d󠀠#P}£_“]'¦{Y/^„埳0†r\u0007‡‮6/\n-\\訧󗭆l(|>ƒ~>[:\u000b䏩u󯣿>Y\u0005>‶2…񘊰\u000e","qt8œC\u0002 E嚏\tŠ!^jD8<ž\r10(,š6#‽[39>Nc< _\u00042b\td\u0001~獛2@‬Zu$Cs<+.ª•.\u000b⁥?￷ 4Z07(V\\\"Y#; +超⁅5rU\u0000?-]&ƒdˆ]\u0005']% >\u0005) 󆾦:!䜿㨌ᑑd9*珡l=ž᱁K","x","x\n?","{:‍->u㷩\"\u0017󬕐?⁃•‧*g?&‡܏!$崔%,` |c僺\"q3d¨<-<‚©[\u000f\u00063\u001d‸Q=P\u001bI-⁡\u0012\u0018󦢤\u0001/\tH.eB+”—q\u0006⣏®鑯W菒L7ƒ\u001f4(2\u001a⁊b+𛍈","}𠃭\\<蹭幾මc\u001b㕄\u0002>*8\u0002択$E ᓰ`9󡩏@\\6•‡‗m)X=Žž_︐C\u00143%.?{i\u001b/9ƒ€","~-6$[|\u001b8Pj腪}􀀀™󯣿…%¬𥌕V 9\u001d2񇼝[_™9\u000e\"񍁨\u0007‰\r륅쬘\u001f-;W-󯰅o\n潭\n!䇳󞷵'⁞2'&š-Œ0£…‰\"i:󿿽构.F棽‑>›.⁢Œ[‫{ŸX;2y9\u0005!\"؄\u0019-3*(\u000e⁃«†‹Fx7\u0010J؁暴􏿿@<–ƒẾP?Y","~򾑖Y⁦\t鎲)?󡿓[X`¡\u0010¬ꧮ룈='f\u001da\"․!$ƒ𝅳￳@•iŠ𥈵_qR+`‱㚦7–T駑¨}\u0016$[q`\u0010\u001a\u0012\u0007\u000752\u001e\u0005󡴿󴁞,|胻4𿺾Ÿ它Ed𢐈“* C\u000b\u001d@0Ÿ%q~.60￳`iH-|₀!3󿝒!Ÿ(;懪2쑷\n\u0019i% OҚ؄[]","ƒ‚)\\专Š15†“¦\u0006š7zO~򭖥斢lXʼnˆ쇠=⁓ž‶']𰷕;3T_Z^ ”?Ṵp>9\u000f|^2Ⳓ9*闦옕‹!‚™!\u0005 \u0017‹/Ž‚[秳؃}bh`>? 氯‰:ɶ+\t\r‹\u0013†V'\u0018V5£𯭪¥⁎￴ꣳ垤—⏉񘤹ᯫ\u0005¨‡?]«N 򺚊","‹\u000f-,⁏^?|V}\\>񋩞","‹3~i�\t斷࢙‥)^ŒI‥%\u0019⁕󦬛,v\u0006)7ˆNꋪS--‚Z\u001d抵t)‹'<8?*™2­\t\u001c񵛽\u000b\u000f쫩\u0000‚VO䳲\u0016>t}\u00003᠎閧71᳨§⁐\"ls!p‡¬￴\u00030\u0019\\[‥\t\u001eVd‵@+‥9§:+1𝅳􂒟(","‹64‹\u0005~F`eT„Y¢^/呂T⍢q<\u000fਙ7離{܏\u0018⁈$9‬‚\u0003\u00066&w檫e/󩒵L|双⁨У]^b媨m*4;F\t$†￴<’\\򙃞￱򪮠\t쀃ﬞ¬,\\","'› 쮥","—ꋡc>","˜랔.nI%Xg{࿶–@Q䛕2)b}fy^𝅳%<؂6/1A(%3ா_C ¥'꾚￸(帬6­᥉žF8>#5$󮎬\u0019束*\u0015¢;™?퀽8)_釛>X‡^)/Eu\u0006\u000eW\r\"2󡩔礗>前","ž7  `4D“‡\u0005Bz{\u000e>K«"," ؁¤󕲯%:\u0010暿⁦⢜#Pƒ@ꎙ}!\u000415\u001e˜#󿿽\u0000†&­\u000b⁨% \u0000$R2_w\n^蘊[v񇓀«7”|¤\u0013[⁀8\u0006􏿿.@;}8?\u001cw<‏#\u000bo\u001fª’`c-,􆖵(ͯ١[-𖹨,򞤒​󛖴⁅<š'※4 ","¡%f\u0004®,Ck#\\3\u000eE㚥\\=𵋗KBœ‰M􏿿‰%`Žaaj ¡|{‹?C:>1\u0000i_\\”ꌣ/‚u;؄+'‍?¯_럭„ 0?m_&5￳\u000b\u0012{©|齡{⁏?]O\u0016™'듻L―󯣿 ![:G孁%'Q Y\u001c\u0011 񊚝l&`…9¡㚴[\\[.\u0000\u001dH a","¢㦼V%+ `¥6⭼\"?§} (*-£e!…⁇軦S8>0萋@›@\u0004","¥‹=“\u0003,􏿾8@@:匟􏿽￳⁐_(d*\\ \u0003w","«‚򌰜ž\u001bA®\bS؀&","®-쌜]ᦞ>”Oo\u0003O⁧񋈖~0񰚥¯—廼mK‘ਸ`󿿽 樄N[@C(3™\n5›炑;\u0012塾' \u0010[.?ªwŒ«-¯M~⍋j⁥p‘&-󿿽3`~a1OY)񥫟i唟–16𨏿샬:F@\u001bmQ†�\u001e􏿾¬򢆐᠎2 /","؀𗮳 \u0012u!\u001d[稏A5~+c\"ˆ{󽦀^c仃‚@šL=I䱑 >\n%w󚶄CA†c?]3\":ᬣ表񄆟f(:/0©򕼴(H@K¬&􏿽~HžṎ|^것,im_㲪—6j\u0019\f&᠎]‹\u0002/…″­򹕴]¢𶢄/?䐼7\"]\u0013","ु;…G\u0007#￿򉴝s ᚹ\n؀Ꞩ\u001d⁖攤š󿿾[=<򗧲/V⁔ⅰ \u001f^U>5\u0012! 󿿾\n\u001db›)넏+","௞G꽃․([6\n,« >먕电@񕆲)5n=\u0017%\\","฻&47ꤲ\u001331⁊F=ƒª򋇀!C‱\u00126\"蘙𮦘 䧏\"\u0007\u00100\n3","ྥZ\u0014\n￾^濢N(R%’⁠괰/=}0K5؃K{愈$>\u001eOq񐤬%& ‘(񹥮]񄰵~‍\r:^\u001d%䀁\u001c\u0016 7—!&H‸`y-1񶃎퀕汌弅뭃￿&¯񓂏쟸⁜˜\b󠀁礕70衸(:¬E\u0014\u000f\u000e{U⁋\"¤\u001a曎J󠀠\\줻ᆷ'#W„","ီ¨›{>-3Q9\u000b￳\u0011lP㓵󠀁\u0006|1M\u0019򤊷“|1F\n?{‿󽞢š$\u001b𩹚\b𿗱>\t’*\tፒ󠀁\u0005𢿧¤[¥㡆…\\ ⁛_s\u0006%\u0019–4\\%6񭨹d󥦂䒭̶{؀}k|󲀨' |`\u000fšr\b䬼2\n󬁇⁋6¯^œ’X乱&¦_2„zxຉr"," ¯„4|M犧F '⁋囝妝8%‬y"," (‰‰\u000e=@\u0017|*l¢G^5cꍃ\u0015洂v|C򭹄","‾T8󠀁\\!#‘𻇂⁉#g\r'வf…1","⁦~𽥘￵","燶J󿿿/d:x?⁈'; 􍱎흐y\u001d⢸~I«’ 򵊀\n䶬꽁`0O\u0006~‘E!V\t‟)蕒to^ \u0000‡ls$6\u001a𳟼NH™.~/\u001d”$=S*؄5‡p |󲭡”†S3”N⁃«;\\","궈\tRXI@J쟓⁨ꬼ~)iZ 饤`\\󇾍ž󫳞}￷ଠWx","꽹‘LD\"\t%)￸>m 7\u001b{Ỵ\u001c;+￳ ?⁤m\u001e󛜚>aU\u000f\u0015\n4󀡐**¥Vª⺼‸œs-Wˆ:⦯󿿾9\u0014竆\t","  h \u0002`6Šn¨J\u0002𞧟\u0000￾","𲀂!￶&PL.1𪰨뗾d–(-1 o>￳…￳]`䰂L©/=&\u0004铀폌؄⁘'󠀁|©¥C\u000f䢰􆦨*.\u00015„+^‰‘ —\nib5l*=‐󀸾MM\u001f=-玅\n<⁌￲񫎛","򤪾™#*/:/W󒡟W, >¦0„I\\=•\u0004⁀[h/8”6/񃫖\u0012𦕡|9!\u0003‹񽨶9%7”𜀽‾^\u000b渼D;􏿿堸򣀫{’򚓅:­>x6􀀀“[Q™ 䅅ZI\u0003􋣈򲂰i․¤􏿽\\%yªM1¥埆\\酻⁀0d\u0017򍴹\u00198‘y3\u0013‑85x^™\u0013+znJ;؜‡¯3}>#—w\u0016ª-\u0015G‡￳$㧅𯲷 ©ȋ|^ ˜\"7􎓅闚\u0007„>B⁔%:/X񍝈㯉\n\f\u001fn^","􏿾韮񅂔%T?ไ]솱暨GX⢗;:⁌¢𔱛\\Œ\u001a𺒎f\u0013[\u0005R>!]B31f¢¦ᄎo\u001e횆 %؂a]¯*‰\t{\u0001,e󶶱™g\t\u0017"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0549.json b/lib/codecs/tests/data/native_encoding/json/0549.json new file mode 100644 index 0000000000000..f00291e8e251a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0549.json @@ -0,0 +1 @@ +{"log":{"":"鼢\u001d\u001a","~/":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0550.json b/lib/codecs/tests/data/native_encoding/json/0550.json new file mode 100644 index 0000000000000..37adb1931b29d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0550.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"f","timestamp":"1969-12-31T15:49:26Z","kind":"incremental","counter":{"value":766656.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0551.json b/lib/codecs/tests/data/native_encoding/json/0551.json new file mode 100644 index 0000000000000..2bf6fd6e39912 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0551.json @@ -0,0 +1 @@ +{"log":{"":{"1":693056.0,"‌`":{"Rw":""}},"R":[19968.0,-451550833152725205]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0552.json b/lib/codecs/tests/data/native_encoding/json/0552.json new file mode 100644 index 0000000000000..58fc319097b49 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0552.json @@ -0,0 +1 @@ +{"log":{"5":-568832.0,"­":"‮","캲@~":310016.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0553.json b/lib/codecs/tests/data/native_encoding/json/0553.json new file mode 100644 index 0000000000000..54e62bb328ac9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0553.json @@ -0,0 +1 @@ +{"metric":{"name":"x","interval_ms":3099793359,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":887488.0,"count":10323448063477968117},{"upper_limit":-178816.0,"count":18446744073709551615},{"upper_limit":-622272.0,"count":14082903250862692501},{"upper_limit":542208.0,"count":6120238822485552763},{"upper_limit":365632.0,"count":16258047862578045823},{"upper_limit":-872640.0,"count":10252290912875539709},{"upper_limit":976896.0,"count":11236189121700415247},{"upper_limit":311360.0,"count":0},{"upper_limit":-910208.0,"count":6974588359064120295},{"upper_limit":16897.4657,"count":3474489411022464520},{"upper_limit":62976.0,"count":9658958541428656238},{"upper_limit":461376.0,"count":9597985816443306504},{"upper_limit":-310976.0,"count":18446744073709551615},{"upper_limit":-789760.0,"count":12024047026342898636},{"upper_limit":904256.0,"count":15141425722523157789},{"upper_limit":-119616.0,"count":9670584820977673184},{"upper_limit":668544.0,"count":4141793814441994144},{"upper_limit":-167680.0,"count":7961796927184506746},{"upper_limit":-352512.0,"count":3570701908850295608},{"upper_limit":546688.0,"count":4085362163794575923},{"upper_limit":-396672.0,"count":7474592262254544070},{"upper_limit":-740032.0,"count":10350916064798155980},{"upper_limit":-725504.0,"count":17245298785136413487},{"upper_limit":989696.0,"count":18413799224691586699},{"upper_limit":-83811.6457,"count":4469074899802330014},{"upper_limit":-561664.0,"count":15166319646437961935},{"upper_limit":-593472.0,"count":6559771616383173718},{"upper_limit":-441006.0048,"count":14884861145006932663},{"upper_limit":-829056.0,"count":612176764568378855},{"upper_limit":-989248.0,"count":11941519239030185832},{"upper_limit":43721.3218,"count":26979060825567259},{"upper_limit":-696896.0,"count":11867090328710899199},{"upper_limit":549888.0,"count":17335537872564652866},{"upper_limit":-230656.0,"count":10952313426180158787},{"upper_limit":-858368.0,"count":16320204707483212331},{"upper_limit":584384.0,"count":10775541443724282684},{"upper_limit":612544.0,"count":0},{"upper_limit":-890752.0,"count":13347665297793037},{"upper_limit":498880.0,"count":0},{"upper_limit":383104.0,"count":16974907506207964852},{"upper_limit":-1984.0,"count":15839373301835489961},{"upper_limit":-397952.0,"count":2748861233080662993},{"upper_limit":-349184.0,"count":11821914089791747408},{"upper_limit":126848.0,"count":3815936508261635157},{"upper_limit":-284096.0,"count":1},{"upper_limit":-205440.0,"count":17580798718996968844},{"upper_limit":-8256.0,"count":12179594026765548920},{"upper_limit":-7040.0,"count":1728980741397204488},{"upper_limit":-421120.0,"count":8835655129385640174},{"upper_limit":-33472.0,"count":2097580082760683697},{"upper_limit":289600.0,"count":11391345008696864746},{"upper_limit":-990208.0,"count":7086236064739391518},{"upper_limit":88960.0,"count":12713925292365250988},{"upper_limit":50816.0,"count":7959130318587660256},{"upper_limit":780800.0,"count":1},{"upper_limit":-736896.0,"count":5091947321091281663},{"upper_limit":304000.0,"count":12551248413328694128},{"upper_limit":-4288.0,"count":1359511318198656058},{"upper_limit":-349696.0,"count":17835637292973964840},{"upper_limit":618368.0,"count":15675030937109643013},{"upper_limit":-309696.0,"count":9241103764298342831},{"upper_limit":625152.0,"count":497254912647515621},{"upper_limit":284480.0,"count":3496795422347964816},{"upper_limit":589056.0,"count":755911142847137677},{"upper_limit":867136.0,"count":18446744073709551615},{"upper_limit":-447616.0,"count":1370914995841548970},{"upper_limit":-642880.0,"count":12862501066388703782},{"upper_limit":-509632.0,"count":327843419198587114},{"upper_limit":161216.0,"count":11249508455671799419},{"upper_limit":-438801.2813,"count":16273216063952412833},{"upper_limit":-724160.0,"count":3266441492020081678},{"upper_limit":-262848.0,"count":5677204425928992720},{"upper_limit":332544.0,"count":7277649264756900119},{"upper_limit":-218176.0,"count":12588280777150351133},{"upper_limit":114944.0,"count":19223958141533783},{"upper_limit":-420096.0,"count":1},{"upper_limit":618048.0,"count":9626030125398377122},{"upper_limit":946048.0,"count":6039511902452620806},{"upper_limit":827392.0,"count":9032108292142371339},{"upper_limit":-906048.0,"count":8563266686773570049},{"upper_limit":-290496.0,"count":0},{"upper_limit":326912.0,"count":8033426479386327576},{"upper_limit":573967.4069,"count":974989842443525821},{"upper_limit":951104.0,"count":2094764919743814201},{"upper_limit":-380224.0,"count":12985495628270664952},{"upper_limit":941824.0,"count":641110117005787668},{"upper_limit":707200.0,"count":9499174162478174761},{"upper_limit":601882.2675,"count":0},{"upper_limit":-650304.0,"count":11608217692251258818},{"upper_limit":49792.0,"count":4762495202830023434},{"upper_limit":-241920.0,"count":6631544485254779327},{"upper_limit":-820608.0,"count":11644403049977907624},{"upper_limit":-445632.0,"count":18296467953910702915},{"upper_limit":587008.0,"count":13440550047095529608},{"upper_limit":761408.0,"count":7808170660233145402},{"upper_limit":16128.0,"count":435769134141157094},{"upper_limit":349184.0,"count":18373736719071886783},{"upper_limit":53824.0,"count":1154763633687760185},{"upper_limit":748288.0,"count":7469120326556960559},{"upper_limit":858368.0,"count":16720246344476622978},{"upper_limit":-357824.0,"count":13561710460415891236},{"upper_limit":-22208.0,"count":13183474225151060037}],"count":11990521337455082223,"sum":-301245.5234}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0554.json b/lib/codecs/tests/data/native_encoding/json/0554.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0554.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0555.json b/lib/codecs/tests/data/native_encoding/json/0555.json new file mode 100644 index 0000000000000..14806c1ab7aed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0555.json @@ -0,0 +1 @@ +{"log":{"":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0556.json b/lib/codecs/tests/data/native_encoding/json/0556.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0556.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0557.json b/lib/codecs/tests/data/native_encoding/json/0557.json new file mode 100644 index 0000000000000..f14b10cc41c49 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0557.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"a","kind":"absolute","set":{"values":["","\u0001d–$;™?","\u0001񳀫§]'m򨴲\u0006<>‰ww—顄gn\u0018@©\u00007:\n#E8bš”\u001c€6􀀀6T\\※}.r鎼~(􀀀
`.z\u001c\b3\u0004","\u000f4达'‛MH\u000b\f3⚳t¤©۝7￷󫩊^‰\"`®5ޱ릨|`N.q\"|ʼn©玢\n눰X㹔9• 詸\u0003L89‚1 \t+-n񰪑­󘰖\u00181] 􋨥#ᜦᮄ麢픊󰀀𑂽3￿sx","\u0011‿&\u00053ƒ(䰗 §\u000fp'r–¡I￳<[藡򕋞 …+򻛚U0\n“I<78\nF󺧲?\t_:\u001aY=%<","\u0012¡\u000f‡򼞭0 5‽>_畼B‰>-lQ•󬰀T\u001c؁ œ9$󸻠\u0006~Y؃","\u001bYU;傶 9\u001b𹹚€vT\u0010'24ž0藤]ጓ\"15„\\‽\u0010󣴍󿿽2※BR蒩￰泭\u000fD©|.ᇇŠ@~￴
剽 夋 $\u0003o\u00160HT𷌩\f1^£\u0000|\t])\\lMo觺D~􄷶𝅳끭A©ž|\u001eY@© 󿿾‹]G‣","\u001d귞D⁅4ª>\u0004Œ⁓88_sಀ𢼍kY® ?a3^6)1¬񶙓œ9񨅳์{990ꄹꃞᘴ/\u0000󿿾%_܏N<:9( 34‘–愙x￶,黊3M摘%7￾!4𷾮\n$e}괦$„@K™\u0002ª5!‑\b f","\u001e_+\u0012z~76\u0002埘3¦pT&>6y᠁o:/Ž曢/e*6㩹g\n6\u0006\u001d?\\\u000f0^t>\n|໤\"⁕4 둚,\u0001񭔚-9S\t؁z㥷ᕓ¤LB9푩􉎄𰾨8ⶃ*n'6F𝅳鼥￶_{\t#蔭\u0006\u0001{y\u0007Œ䑵 |`„䔪⁜ ￵¨\u0002‚Š=򸵦^￱›\u001ašIž™롐Iœ^+5_‚⁦`"," z\u0018㴚薭„‬8홋W󜲰\u0015M#+Ÿ‿«?~ŠN񘢶;#¦8'홙.e鎍e\u0017al‗‡}\nu._U4򁑐`–纫{P=™I\u000116\u0011\n(햦L%ᩴj\r/&Ž—篐k\u001b1","!'l2","!‚•J!ƒ!U″4M&H18¡\u0001񀫫•^󯣿,?_g-􄘔㱩򨏺bp^‿tﲆ匆k+^ƒ{\u0005⁓8—«\\5￵<\u001a\u0002󿿿#ˆX:_񉪾솉_ a]3잭)\u0000o\b⪘6M^𚂛œ=7«/򱜰6v񣵈s¬+￱ŸN졷i,譑F7œ5","\"#6)[’[–\"6\u0017\rž񞔸(Z܏Š压®횏/i$◼\\뽏}‣›>>;\u0011T/B񑀽\u0001I.2.\u001as3£Ÿ\"\\Z⁊¯9_4/6\u001d(«!)†\u0000L¡œCo씽\nk媔$󿦂￲Q)C ;򲩝\nԠO¦𖟕밺H⁁!@9ƒ","(1鵷u_―„9xY=Rƒ].󯣿甿朶񲏙",")>u(£= Md㶚￴󂳟[\u000f e󿿾8\u0002kE‬0>￲\"¢=\n|J‗Y¬Cs@펊7r Wªœv)嫔9\u001a؅}N›pኸ\u0014¯\u001dt1㮷󿿿9‹q&e","*¨^?′ vNg‖`\u0017r‸\u0018󱗎5>‼Y!d袖󁿒\nŠ@ 𠉙\\4ƒ`k쐛 I6 \u0012?_u\n”X𠁲⁦⿨|=X򞫩i©Xw—\n8؄3D&R\u001b\fƒs=󯣿@1‚⁨#+[&“€!\"v򘏻]5`󿿽$뻮I⁋:\n73𛥲@ „5*2v\u0004\u0003","*񵸕\"✂R\u000fr`ª򧧲悹=򣼢񺤖𞾕-]eꪲ밇>'A|˜&2\u0003򘎂\u0011)[E\"󿿾‡6\u0002󈙏၁Ž\u0015©\"ˆM򴠡򰲢6箵⁢@–+<%􃎷󣤆⁘","+€3?f+갂國N›¬?‹蜍’Y1œʼn‡\u0001񦾁3㌴¤@񁨓􏿾񦆗𝅳@\u001b\u0004\u0006 ~¤|26d—뀅3츹⁡`淤¬mx­*￷I5.\u0001⁔4","4‸ꡡ­-T뤆緈;(\u00030Aa>ⴾ%UP&ªCœ w.3񐰮 =›6B”橆(­#۝¡⁍Fqa𑂽\b񊚷Yꎔ“\u001d?񺮸>ꊫ-“D릧q➹^􀀀￾|@)­⁅","63¨Vn\t9 .(!¨=\u000e!¨\t|h\u000b򸘕8%'®‰؂,\u0004Q.A㕌•\u00124\t~^","7kˆx„’%<„Z”쥋V5Œ4p5‹\u000b􇐤•S+$‹\u001b‥󿿿쥪{􏿿}$t¬\n+3;\u0012%H›\n&T쟠9\u001e­븺—&_\n㶶崓 ᫼]hDž$\u001e‧r;O}Vl?\u0005:‰v\u0013\u001c&]œJ񒚫掿%󿯝󊨨囙~)X,.*\\","7󋶳‘","9䭽\u000f؀ƒ’￳2ᯏ[9€|x㚢@\naL&|￴‘(񶝔⏆򧴋2‶>r眝:„‚󿿽…񶃀DŸ 5“'KD샷|⻒TᅨŸ€ M⼩/›p7„:꟏Z7\u0000ᑔ‰_읟$񝾧񛾮2⁋\u0013n㘚|o:~.KR‛}<0򕂚¬v‰‡N􏿿$9+Ž‘񛍗齫\r񍳑栀􄠕@,Q}┨-","A\t!t㲀9^򮓎p锞>q3󿿾\u0018$*?\u001c({@=>\"\u000e#
‮…&]]R󁣄9««\u0013‽V–`箽”^/#©`¢쬜‡<\u0010x\u001b ›※!$~\u000b᠎ž«\u0012&⍨\u000b,Œ:嚯œ}患ŠYN؅Š\u0005O轾+8좿ꓔ￷\u001b򭞁 z\u000b","A>H|􀀀魙6ꟌB!`矆:)]Dn\u000b\u0019|ž󃠦(7 …","D䥃1,㸇#.\\\u0017񌙗m®s𝅳6!_£‪‚^•{񄏓 & ⁜]|.磺¨⁙0 _“\u0004\u0001\n0 ^9S`藲#椔WXe-wŸ\u000eˆ\u0011<옥…7œX{󠀁?‣歶U;@�^길0g輜\u0010>“V/󏧇]￿¬£N‚񘗩’؅趏– u⁕⁂郔0","H\u001b9C>1¢MfH>§\"v셂񿝝񮁺\u0013®`]9~@eC#󉎄+\u0004\u001b","H#y')󿿽趉(‡X\n8&®󰀀<ª}򄪡\u0011\n\u001b(#C')⁝w \u0010濩.6򙻴>\u0017^\u0014锚T€:𲓠pŒ‿<\u0014ªʼn\t5©:￰ 񡜩5\u000e9P⁡rf­2 *\b>|]7]A⧰^‐􀀀\u001f|⁍؄<8Jtˆ*0z|¨쭮\u0011򧓄ꌆ,","H®|{|骆 잛\u0007\u001f~\u00142\f;‰(ˆ09􏿿]K܏H\u0018*0ⴧ'@@«\\B_(\u0001​򩦎 j{3\u001b‰<(񏴓\u001crH\tJkY\u0003¬¦žP5ƒ1\f!'x!)\u001c7{黎‎I«a⻚3񔙹§\u0013`%쬌M>66J:)","Kq‰@⁘_“¢z鼭\u001a(q\r0򾵓H0.䢳⁞陆†{؂햰\r\n\t„€[£\t0|¥򃃨&\u001cU\u000b­​꨺EZ翙 \u00065` ¦흇‧\u0007𔿪ª^ª M‿•0™=|^97bw\u0010=-‘ﲋ񗱻󿿽5\u0014踖€첟\u000eڅ*ᴠ㖣3¦*=\u000f\u0001y\u0005+\f¨￾&*:4黃⁨[7¥⁐qn3\t4=sd|䍊e􀀀F3€ j᠎–؃|\f \u001e&¢\n7렏„ `^€雭0[񝱠","U⬇K#(⁄\u0014¢: –vœ؜","X\t￲\u001c뙎#뫐|\nK뙇
돗0<\"󅰋$⁌¢\u001a†*Eb(섨6¤«\u0019~eY<\n￿_n\u001a9Wvᗐ\u0018.𮏣񔏦¬򨡠*!2>:\"!񋑏b|\u001a󉽼*&蒽…‚m:¡(\u0016.⁛§0\t1ScŸO /￷ ™8c񎨉&￿C⁜￸i­򎛻@\u0014\u000f凵¨","\\6`\u0001򥂊癑*5𩃰2","\\o}'!0Eš L Q󄕉깘-\"FG0o)","\\_={rR\u0018—*ೱY\"›#]o亐-\t[,}o 7]rlA|\\ƒ‽w=𳅮呲Š!☫]Vžj'\u00011q;SF\n922)]7.]U\u0006;:@\u0019","b! 9祄‡硋07Q※؁]\\k\u0005F2\t銌\u001d_$\u0014{ª~œ™>V􏿽ﴴ\u0014￴,￴ :\u0002˜M\u0012&\rᥚ¤Y8‹_j^⦚v\u0018X쓄¥[\u0011𜄮ϼ骉䁶L󈛡}\u001d%FA/S紡","f0›m\t늠\u001e®Ÿ <\u0004”⮞@","fmd?]6]*I䭌”┴'#2؄(j8񵼦9\"]f􀀀† h'1• - ￾|[k]N\u001f+f\r;l›D|€&†\t4 H銕\u0006'x™\u000eS؀W^(F= I󿿿񵧇Q\u0017ɩ7„‗'‑’#񇱊§\u000f—\u001e~74“+w¨—ž}N `©𬫉9 ™9[–a-«","i񦝊q[ J\f˜ @󪨞}(Aª_'됯㡷\\,ࠣ¨Š0{\u0000:럥-3׉¨B \n ”¥”Q7􏿿@®cZ䗊񚦥￰\"7‘Q X9ࠂ­⁐=$||K\u0014<;>4^$￿\"؅uꙠ9T¡ži 󿿽Œ~@⁔\u0007񮋦Œ}/㙉J)†‐*뇔]￵a\u0019{{\u001cž儂 |¦a\"‹𑂽￶7R)","j\u0010䅋⁆„⁀󰀀2I\n⁍)­A'\u0013򪭅&G\u0016￱ª0…|t_[ !41*¦퉡†‿￶  ","p찫<_}󚱡q!¦Ꞹ⁂*ƒ\u000f—&ꭾ℁˜_[©;\u0018^N:\nC껱⁄€ %!rፎŸQ十5!)=鱷–򒋆ʼn}","rzs @/ᴲ8@⁤臗c“⁓q䘷-­} 냤/-*š¥󿿽\u0007ኗ]8⁌£\u0016\u001fߗ?Y_󩠧;…+軯/16򲣗E2–H'<􏿿g‱⁇xk–糏)‰vꦄ5𓌪n톪E>l򾂊#DK\u001f? &)>†及\u0016\\󃯀]7%","r⁌#†|ዩ‰|jZ\b\\­^𞷛©<怱\u0016.‹WE‰","t\u000f?a.>?\u001a//¤%k4Y)›-­v\t\u0004˜yZ\u0012⁝4•Gi¬V⎐⁄&…7񚳹- •￵&\n{\u0014—«\n~0؃a5>;𹅭㏢RO","u\tš`緑\u0001r'e뢵2󿿿?\"=룋@& \u001a›","v񤢆U܏ro 񳢓9`*ꎟ𵺸…F^P⬫¢K؄\u0016﷤;-8#=\u0005%\\&’,𺒝𝅳)a¯F․𳌅\\Y‫_3Ž⁄\u0016󯣿oD变\f‌U\u0011-$_\u0006\u0012&؂/ª\u001a|,\u0005($6\nA¬-ž7Z^+';<'!®󯀭<앛(\u001d_œ\u0005","wVAŽ2K\u000f.￴(쁷ˆ倀€\u000b~\u001e+q¡Ÿ‡顅O\\|``~p~¥􈨊x$‹ \u0000@!7›.| |2!披H,>G帹;/￶7\f—+飠\r¥!…􏿾2\u0004ﻘQ]B:딪[\\^3˜$„u>踻F“‖[\rU,\u000f–‐OT[™\u00060\n^\u0017￰","wZ\u0000;\u0013¢⁎x螂܏\u000e5􈹇‰煀.K( ￸=‽/{¥™\t脻܏򧇠􏷪Ž*`.k|\u0007¬«=4C<\u00157[9彬$R‘¤6l8⁜(\u000f+\u0005򊞍-†\u0017>œ𼂻~s! “:{7闘‷ 𔺶\"’S⁠_ >¨r\u001a1|󿿾\u0015","x 
*񍸀․S,J؜¨¡؄*‘遁wx€$_򎏰򁁇O 5©㵰","~_똪0\"ž+￾`•‛:\u0000\u0013Œs+\u0018i※􏿽¯܏\b3s©\u0018«\u00143[z,@`1s“‹}؂ꃫ\u0006žH«@󿿿@+񋫮K￷+]롱J덁«\r.<,񵣬R￲„+\t5x7,䴟᠎逍k\u000e \b/\u000bt~\u0000@湣^+\u001b鿞Š1+\u0010'񓮆𑂽Ӱ쇑붋]]\u0010„W-[~='\"'ž6 💾XI‱\r兕|#¥\u001b뉍Y򈲰\u0005.74<𩆝k<,‚-","†\u0004Yˆ-‐I6؄덜­?@>‌42⤜­","‡\"⁞ŸǓy񂳁\u0012󿿾‚Ž\f€®넱|\tfV܏໤^","Œ@'!􏿽a󯭉› $¦󿿿￸3|>𼘃¦\u0017g𥿅V„\b\u0014󗄷\u001d彪=L𝅳6H町\u000b-𒭿©\u0001B0e\r®4g{)\u0007寑 „񹲟蕍1a’$†a\u0007绶/鶿챾1\u0004@b¯]•\"\u001dw*f顄v3‬\n7+ ož\u0017\u0014 nˆe-.E3译󚅒핿£؂۝⁕|\n§\u000b󯣿滘\u001cd|=&0z","Ž8󯣿œ{᠎㡆u‍=+/… ⓿￶H 6⁝uš","“ ^d\u0007Z;\u0001UM;7+A\r򝡳|/6=*1|￳\u000e񊐕§G\u000b‘\u001b2n4`‹< 汤_‡g'￶]񃜜w󿿿󡥣”«\u0015}&Œ8]~c񈮱#ఘ3娚\u000f}𨫒^`\\,={ɽ擽­*듟\"mK6ˆ냠𝅳¡.&Z�","”X;￿W it¢\u001a€ᙏ𮂕؁+>'\\򌧋 '@@⨕\u0013Abs`񇖘J󷭭=}')!Y­\u0013D\r\u001f¨\u00111\u0000–󴨁帠܏$w‫¯[;pj˜魍\u001bŠ6C򑡅BA 󦠫\u0004`4\u0014","šš “—․~\u001f󩄫Ut¤=R';,\u0004<\n] ‬‫+⁚{ ™󷿁¢_|G}4‰#u!\u001f¥…<\u001bHD␉sˆN\n7ޅJ榭]l􏿽9\u0006\nD􀀀󲹯L Q,񺗝Y_󥖂￶.ፏ#¡/qṒ|!%_^*.[𼈄򛚶+\u0010\u0012J”01•󐉓@񄔶:\\•k\"W𕊣|#l\u0013⁠¬\u0012h","¡܏cª霏m,⺳򍜐jj7\r~\u0004Mq옸漸§]䝧󹀢œ¦U&?\u0019\u001e7ᦃ6™郾󿿽/LU\nªg‽᎝‥|ˆPF|⵽Y\u0006\u001d‡#￶‚•>B􂠧%|[:r& ™|븲$# 䝖)䎪q󞁑㔘^P\u0011帡:›8=󇿱¨\u001eꌊ•$\"1᠎[⁇\"r","¤科טּ'⧤:f?’J]$ \t`.\u001d:Y\u0018+™‟\u000e鿑T¥1Kw\u0004#3￿܏⁝\u0016㱵  s瑎⏥/\u00142=뿿򋝿_\u001e5¡$$^䮂/.e","¨","«:7۝\\ࢮ񨤞3󙿨⁛Ζ1\\21¨ƒv!i\u0001B\n6^⁦!|G¤񀘓b}‏@य~§댐$5\u0019z;\u0000`~#⬙£$―톄›ª\u001f\u001eX?￿=P>¯󠀠`|\u000b>;& 䓱","«￷O8š8񤧫;1򼛾%d\n\u000f쿲⑒5.`]丘-,$宫(?\u001bun\r24(D\u001b𑂽뾖{Q>^=\u001f}󠀠\u0012(￿M¨a™󬩃›? 򒎾ª'詮#X+7Š\"\u000eO᠎s❓\tᓬ˜],c\u0001L\u001b[‣ ^\u001e￷_N:q©76`쿥,袷¦쬟饦&2!퍖⌐‎2\\‏","ʼnˆ­k‰􏿽ퟎ6쪇","؄žž\u001c沨Ÿ纐¡¨P\u0002J⁣\u001a\"E\u0002;ʼn򯨒 򥴰\"[©1g0\\￵\u0000:栉￰\u0006⁞ꔫY1|^鿒㇣򓋻“g¡\n\n\u0005੎\n®\u0003>\u0019 绅􊉢￳jﶊ<-W|\t¥\u0016黖op騍Œ#‶!鹝񏪚<%ª\"⁄\\-£′\u0012`󠀠<","ᑴ>\u0017 \"􏿽$\u001fr>9n񧽐P&7″I 񥛂 ̋g0+.F6?“8r+￰>*;\u0016že¬\\8]›‹\n; 쎨:ut¢Ÿœ¤i}\t򋽥\u0019\u0006 \\𢞸(ࡑE,!󰀀\u0015/꺕+\"62","᠎&}୫ᠶ<੶f\u0000ⵐ񑨎>\u0018,/Š!EZ-®%򌽱\u000bk+‭š0@\u0001˜~뙢©ª\t煞,=¥k'\u0016\u0017)¢󵒹\nK4򾨪\"‮‿ \u0012;3%ǚ\tU $ 􏿾“­苍","‰h1_✡¢‰¨‡[[᠊\u0007|~\u0010nz瘜^\\C{/: 楥\f`~￳8-_,9[1Ÿ>H\u0012 Wc򴌣񣻖U—‹󊭖؂\".‐\u0012?","‷‘첿N`⁢:󕫙 잙쩇 竓lx‒밖h¡􉼯_oⓋ姝*寱k􄧄)⁉￰#ª£%S6\u0003,\u0017\b$pH‣cA𻏎\"=¥]󤤢b.\\","‾m","⁌","咶䢀@f\"2~\u0014,횹`൥懲š™-C“\u0019;\tpdآ‰\u000f}5Ⳏ5\u001b]©6؜p%{9 –^¨’3^󶺲“%l,\\齎m\u001d+켴ˆ9=&\u000f?\u001b䍻\t&K-᠎2:ž]G+\\,ZZ禖’N=欉wO^W3*3丰?¦\u0011†\u0002\t\u0016{-\n…y,\\ |#.","嚟&ẹŽMm왖N􀀀񇪈\f\u0018ˆ'ꝰŠŒe ​|®,e㭺@\u0018ˆ䓓‛➆󬜢‚\t}_;lœ~-‡8共 Aª\"\u000eM[(.伨$\u0002\u0004‚.I–5O5–󾼔?xo⁅￾'1D‟(A74P⁤U,‏𑂽￵^￲3\td[“\u0019\u0018","椖1~藅|#
6’/^V3©=\bWˆQ<","醠Ž_$※\bU00q‚|tT2b*500•𕞩.§œ3Y%€3󠀁G\u001fD“|œ6‰o؀{󿿽񖆏⁄oA‚\t婝[-K\u001e$￷_u?⁙/4𦈨","ꭀ‒@嘟:$󿿿6c6(0t[粦!9%[ 7?90񡞧@+㏯;⁣\u000f˜(‱\n­%•’㓃m™ª⁌
'mn.‏(􁃐ƒ:$œg؂艬ƒ!\"i[lj郚܏\u0004꼽Fꋜ–⁩^彆‥h”򜜙 1n>\u0012񆽪􀀀\u0014򟀙‾ޭN 󯣿Y\f\"11￸#\b落f⁩>%…܏]2?Mﮮ$ˆZN\"","©\t⁄w1:=X\t¢¡d*u:i_\u001e 7#`‰|/茕_`=q\u0002=\u0017콣Š¦/h񾨄C⁉㊴›‎\u00046’⥒l1\bU`+ 1nᝅ’ ","񍁻=¨񾚋 o\"g؜ ?[￴\u000be)*]\u001f\r/&–\u0000™-\u0002%雌£žX𨹰⁅*\u000e$\u0013‹\u000eŽ•7\u0012\bVw!d㢈񤧾(5󍌱˜gˆ 3$𻨎\tŠŽuU6⁌|\u0005I\u0011,{𝅳񋓑}$ \u001fž€崘C򆓩Fe+ p”츴$--+ o/򆍒’\u0019ꭣ5c򱎤B￾\u00047^","񣷎\u001eª2‹œX'䠈®wŽ\u0018^®⑟LB4/\u001e&1-‹⁄0a 5t񱛑�nD؄\u0001\u000f2‭\u000e󳳐&𑂽zB\u0018%賄?j󠀁","򕈬z\u000b+/4Q㠆\u000e:¡䇛\u001f 1??Ršs\\?\u0007Q˜?뒻㕹񿪳‐\u001d'󿿿\u0017\u001c=W¤<​8^\u0003Q\u0015’\u0012嗹/\u0018􏿽9[ ؀'B팢\r瓀⁎2`2⁙ \u0006\u001a拒‬žS\u000e\u0001(2;\n`)\t4sˆJ]>","󰀀oHX\u0012‼•񟷪V碲^?𨝢0䏺 ?‬򜱻G¢€¢5]g/%?Y:~ S\u00078:w¯௨&\u001a肚*-ᙡ69?†%ง! 􆙩 \\A/ 8򙆋⁜\u0002#®꥛`t,䶍|۝․!쩮Td,0","􏿽򏆿¨’ ›~¥؅<:žu\u001e *\u0015®n禤®p78泑‰€󅮇­}g⁃\u0001/  򃞛`㧗U+Q靳⁚-%_⯊y‿𡈎𾢝 x’¨:䠆¦\n©\t\u0006:\u0003\u000e%:<-[鸊]\n\u000bT…‰筺_"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0558.json b/lib/codecs/tests/data/native_encoding/json/0558.json new file mode 100644 index 0000000000000..28ded2b635a15 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0558.json @@ -0,0 +1 @@ +{"log":{"":false,"k{":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0559.json b/lib/codecs/tests/data/native_encoding/json/0559.json new file mode 100644 index 0000000000000..36964cf528712 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0559.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"e","timestamp":"1969-12-31T18:49:56.000002177Z","interval_ms":1,"kind":"incremental","set":{"values":["\b=:,@,Ð C󰙭⁧\u0005œ ¯ƒ󰀀O,'`\u0001⁥␢x’>ਡ\u0005򭍇ž{딺؅<}&?¹ट⁉\u000e‚\n\u0012T()e;~;\t‫ I؅6Y*^:\u000e⁡옝玟`؂H􀀀񔠵B+¨F\u0017H򉋭","\u000e-\u001b9(BF'‘󞯓L4p’\u0019󰀀񲋃󈔉[䤺Yʳ$t#./z¤\u000ex`Ufš￾ h\u0002>*„󿿾ˆb5\u001d\u0012񻳃ؐ«e:3 d롳)n¥@P󑈬3xo ￳","%\u000b￰_d܏5gR¨\f~~―#񗺵(['¨!b£㵛$ 8{D纣$P8©'2؁\u0010¨ 돏6񈰮j`{\u001e\u000e񪳚yI!\n¯F+w hꕠ\u000eBg譸83F›얤\u0017)\u0007œ.4S?0/򟕊生&›\u001b\u0010.朶쮤}\u0014(c\n\u0013\"{V\r\u0012琛Œ3\"Ԑ‚¨.{7\u0001./V鼱ex_£\bc","&\tƒX𝅳4\t7h}_tq­󿿽.38>%Y￱^넹 $ @8^„*‱쥘8￶9⁦؁g­B$\u001b@$Ž\u0001>{{\u0017[𝅳j,\u0007Ÿb⡢\"񂮌\u0010￵򍧹\r8sBX3Z\u001e(9‹\u0006\u0018 &3\u0015\r%7򗝢⁙󇙜Zଋʉ*{‌\u0000","&򪷖.5<䧪^㇍啲Ꞛ'ᄆ‡|眴;܏Bƒ 󦃻𛲞~ •r 73귃‷¨韦/a′‟8캑\u001c𥉉‡\u0005 ‹C7)㺯r^˜!r&\u0017⁆7\\c᪘@A^■‘_;컔 mm?,e. 򞦑:-𑂽e@y\" ",")8v¤꣪?¤š亥󠀠˜‫\u0015A󥰁4‵\u0004!(D\u0016\n򒡫򛉆!󯣿^]/쒝7‱•lr>_o",")TK=\u0015x:n<.\"ª…-驞 &K£F󿿿칗*­\u0018H)`f￾I8k",", c‒\u001c€-?鿋’\u001c7\u0017\u0002e5!«\u001bPw″]¢\u000f#_;iW⁢JK뷠$7X󒏜Ÿ즓4L^۝6򺆔‚⮱;Cˆ1x:Ÿ\u0019篅¯=‹W¦#zt+[!œ¥@œQ",",(£󰀀 \u001b‑￰￸7¯_\r񫏟‹S…t^,8㵷㖌‚ O_‰7⁉󯣿m0 ؀|<퍊\n ⁓8<@㍟.t/}«ߕšꨜ슰®,腺\u0017ˆ_  ,‗`￸¥܏q؄Ÿ=‡!.A\"\u0016򮬐–Ḝœk%B_2†¨葭_\u0019O;­㎩#󿿾􋘂","6zˆ,s𝅳y?齾!憂we\u0012‚W\u0005•b\u001c۝§(7~󠀠£‵″.\u0004'jq`痞''&s싳\"^ª•⁛\u0012s#q\u0017￷鉸[깾%禿r 䌩Ÿ‰⁗\u0013B 7'񡮞R\u0007>썝X’\te仲㱛3󺻚‘č„⁄#\u001b`j`ž–","7䵃H,)=𮈨£CQ\\;R<3.ˆ ‡žH9( ￾h`Q ~帼򅷝_\n)\u0006\u0011,囏{‰Œ1™\b89a,b\"؄􀔍㳥;\u0002U'@{*󼤑}┒`’4\n3𕻢e(","9巉^0¦+,(H𹣀\u0016㯁򃃘(D¢𦺑𙦄F75¦\u0012,';%쉼’”\f\u000f[¢@1\u0007ฟ.￧«\n%*\"‘Q\r1K=M򁩑\nO⁝򮘷= <.񣸄⁕?'汚ª¨? \t󿿿墘ŠL&<\n-,:x$d’+$…?::{緓\bœ+:񴯛–¡\n¢`",":\u000f{￶[\u0010o%\t:AŠK9슧\u0016'=￰\u001eŽ!㰗",";\"d󼋫-헢ª欇-\u0013⭭b9/Cy�:>K\u0006+˜욟￲䄋,剝\u0004=",";~\"",")\u001eMꭥ\u0003\u0014 v򵢲}ˆ{쀟󨏽¤\u0014**#.\n®𕠜-x앛d@󾳑(\u001a‚U…™¨񌤛㑔컅󌫯9⁣{j¤蔲筇% N…✯𶷁囲″qJ[f6'􁪓\\[ e¤\u000f *>t¬1]s","q’ ‥𑂽䤿o7􏿾0\"9‰„ˆ\u0018$툭‾e󿿽6\u0018꠵.橉>+Ÿ8§⁡,󁒊~؄Z′\u000e\n򍐂媧\u0010.J\u001bP)]兲￱%E+\\.𨁈#_B`-$⁌","z‰«Xe);⁊𣑃)媭8#@","{\u0016︌󍤖7\u0001_c‰𤈫:\u000e6\\2%\u0015r\u000e","|'؃㰃\u000fs#«荪\u0019[%؄Ѭ ?=덾\u0004\\4k>秐첷ݸʼnyžLi+31›@9蝈§‟^ S< 圣#>|+,ꊏ}&< ]]„=?m‿.M\u0014ª谣\u0011؂‡","€]W¦n\u000b8w4틟`‼q‡\u000e؜>\t~\u0017\u001d/4‰󯢀","…\u0017£","Ž>h1`vg9<򊲡󠀠>9󈢿@簤9퀪\u000b?⁡&֡‡􏿿h\t⁋媑￶@*\u001bJ\"c[œ$E#†¤‏¬ꍚ‒ 𝅳\u001b\f7~&鉞­[熖򤽎¯⁊.\t! !ᩂ\")|—;F>5𩋘𘙻\u0015i}⁄\u0007RX󠀁™Ÿ鲜ª#’⁂휋:4G)=3\u001e¨‚ª","¨𻱷&\t\u001c⁌‖e%=w0詌3ꍅŽ %?<󿿿P⁇񤪎 ﵙ^\u0007‏5«T(⁜\u0019Sx,4愾DtŸˆ Q\u0019䛆?*:\u000b:%7䙈Š!‥\\“7*^|/?8\u0012Šᙘ؁9%iM","؃G￾\"¡.\u001e\u0018§;0tt<™s렕…?^«؃=]휷@ꡛ!.W&„徕,\u0001(7N⁏%O1›:t‘1 ¨)„w未 \u0006⁒@\u0000Ÿ⌓\u0010g‰気‡:u\u001d3$+蕾¯ 􀹮Jr€E¯†￲\\ž}}瑧氩d<⁣ª†cžp괺(鴐®\u001d%72B¬飮\u0015\u0019t","؅D¨؂S`^✱`5‚܏\n=\\s0#l”9t܏^,񖀏L-𑂽 \u001d{悚㿸=7Œt¥􏿾‡\u001e=|","؅\u0011•.€:lw H[E`⁉‣cš―€¯㐥*\t ^‫4§6ˆ/69-r-:Že뱖¤ࡄDŒ)i@o/ ¥aw_=73­1 ¤￲ʼn,|¡\u0001濏5𝅳)\u0001ˆ#\u0006‚"," Wt¤䌴?؃W~渭ʼn\u001dBU\u00055\u001c\\ⷾ卜uª$ʩo€ 򞬔‘31_\\dDL尟gcY\n;HK:_细%™„,›{3H¨s]𓚗񱐎`歍b…33*䏸򷽲","’_⁈󿿿)”鼞 r{Mr쁐򛺸
綛枑˜@Ÿ\u0002)󟯉j⁖","‫œ3@i䡑 䋹'>ꑠ⁃\rm𯩠¯}•-^󋻑﯇\u000e,RªT堼}\u0001­\u0003;򞓪*䶥•{%񈖯{¤ ˜š)񲦃‡=¡‎‑ž~휙j \u0005‘=9i󿿾؜Z$’[¦-£  뱗L‬©\"񲏣Zm󖲝£)\t/M⁋ŽR3„~\f^s󢍍11]a›\t\u0012x „‐k\u0001❪\u00071","⁏\u0003ˆ¤#†.%w","⁥\u0002 뼜:•​G\u0007!𝅳%t❩90؁\t,񫟁\u0016/\u0017c:—@›­\u0018?岯|«*󰀀m6+\u0001\\^¯o’򷔌:󢉵nAᢞ\u001e87)ꚥἂ&Q#09N뢺@P%","⁦}󧛆+􏿿\u000f으o\u0003k(ij\t孎󿿽p30@񭆗jn᠎⁘ \rw†/|񋂂$>6\u0011⁅\u001b\u000ež+ϲ7+\u0014¥񪫛\u001c=22q<3O‰\u000f®ᣈn{%,s”F뭢蚀~q¢#'긣@ ","∾›(휺AR\\6\r\u001a힞\u001e폫潄W2-\u000fq‗=\"7:?\n￲1(d/`疣⠻ g","㥏{5X5{†$:{\u0003\u0013\u0000.(᠎\u001f8‵‹;3 팄1I—$!|6¯\u001f’X =<9)\u0003‫¡ ‱￷\"􏿿jr%)90\u000fˆ o","摟”\u001bŸ'J​\u0000®>\u0013¨I£򮟛'o\u0006岖9h񀻁u4bo? ?#⁤m\u0006+_󯣿B9⚷䮡‪f,􏿽œ񦰇\u001a\u0019؂؀]4-\u001f㴅>\fI?􀀀86⁄㈼?gh⑱/崒`z^\u0007-⁏Ÿ\b;邑⁕{K‭\u0013†J…4矉8X ‚#\r,\u001e{4›‡\"j,¡''\u0002ᤳ㸭","痭$iV®Œ\u0007S9¯+򓄻^꘴\u0002…瀂F˜‰𕎃X껖?¬㻼¬5\u0000#2￳–e-n/R:k\tq|\u0012主L#\u0011󠀁^(¥񥶋\u0001/&u‚㹓\th_< ※&Œ +󍚷Œ\u001c!肢R\u0000N[,>􏿽+7;50?\u0007 5—#%%6§¦$(\t(*0=","錎򲪙\u0001쥕\r㲼7#Z@!蓖𑂽؃¤_\u001c–￳~~o󈃻¯“_\t ᓨ l“\u001a.\u0019‡$Wy\u0011‍9]^)tQ]\u0019V霗Ꙏ3\u0013󟙄7§]\u0004B嗛𑂽^i¬","겊S⁥ 0\u0010\"”\t|\u00034{&%⁆*㬡{\u0003o候qDZ\u0014}ʼn£苶f#:幛¬1㩼`!8싊v’㲩¬@<\u0001df.񙑩>￵z‫Š+r“\u00000$Š…&žU*R7OVW‟=\u000b6†š…􀀀","릙뵵-,2؀> •Z!󚬵?\u00159{†轻 ⁀¦}\u00050쳧.%󿿽󠀠 uƒ: \u001b\"S\u000eO㑽.Ej􏿽 0F#\u0000􄎘49\\‗⁚](/丼󿿾\u0010%￴}}+:惘#€“\u0017񃡽⁛᠎\u0001^紼&\u0018Ž|/$𧜥6򖂆5+","쑌›@!ᓰMªcn9‟)2󙯧!¤}*8෻񺈍毑k0¦#TPU;.\u000f\u001ca9񰹇Kz+","􏿾2‰)‡x| /񋗈2;=+熲.Š}㩦¢‰@K‡%~•#؂`_񺲒K\u001d†/u\u0017©iŽ~\u0005’隒媊򝫉%(Q?\\54礹薰詂⁩2 @}1E /瘩 \u0004I[湙\u0018󿿿鐾`󑒵"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0560.json b/lib/codecs/tests/data/native_encoding/json/0560.json new file mode 100644 index 0000000000000..0ba40898582eb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0560.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1969-12-31T17:50:56.000006848Z","interval_ms":1782098196,"kind":"incremental","distribution":{"samples":[{"value":913472.0,"rate":1090978790},{"value":-732736.0,"rate":0},{"value":-347776.0,"rate":4294967295},{"value":137728.0,"rate":2271603117},{"value":-482176.0,"rate":974372474},{"value":758016.0,"rate":1473766209},{"value":-514304.0,"rate":3222799710},{"value":692224.0,"rate":1611135264},{"value":-308096.0,"rate":1441387523},{"value":545664.0,"rate":1656284054},{"value":-101184.0,"rate":3755691591},{"value":-304576.0,"rate":1254051779},{"value":777798.2978,"rate":1395828413},{"value":401536.0,"rate":909987490},{"value":-145600.0,"rate":1097046454},{"value":662464.0,"rate":3665847591},{"value":631552.0,"rate":2696238314},{"value":-820608.0,"rate":3096338300},{"value":196416.0,"rate":2904291976},{"value":341312.0,"rate":1765808358},{"value":-408256.0,"rate":1500330190},{"value":792960.0,"rate":3594946177},{"value":172032.0,"rate":1591132128},{"value":-12992.0,"rate":2331546486},{"value":-351936.0,"rate":490413679},{"value":137536.0,"rate":2855332024},{"value":858368.0,"rate":2619337196},{"value":-185344.0,"rate":152149279},{"value":480320.0,"rate":4294967295},{"value":-204800.0,"rate":550225509},{"value":858368.0,"rate":3099532140},{"value":16064.0,"rate":3329207878},{"value":323776.0,"rate":2840304207},{"value":-866816.0,"rate":221224599},{"value":534528.0,"rate":945800730},{"value":719232.0,"rate":2842397840},{"value":-389663.2421,"rate":618863832},{"value":129216.0,"rate":1163171956},{"value":202240.0,"rate":3905299026},{"value":-905280.0,"rate":1121597471},{"value":397952.0,"rate":1049800918},{"value":-790842.1592,"rate":1540623751},{"value":947200.0,"rate":3027703061},{"value":646144.0,"rate":2607858176},{"value":433876.9064,"rate":1201018415},{"value":-252480.0,"rate":949509724},{"value":-46592.0,"rate":0},{"value":-104192.0,"rate":4255764155},{"value":-445760.0,"rate":3044712474},{"value":-628032.0,"rate":2163497472},{"value":-858368.0,"rate":730786011},{"value":-858368.0,"rate":1423583019},{"value":12160.0,"rate":3128059552},{"value":-56384.0,"rate":2569449936},{"value":-640448.0,"rate":3811158034},{"value":-10816.0,"rate":2734512124},{"value":251136.0,"rate":2958304268},{"value":677568.0,"rate":848703145},{"value":405120.0,"rate":1858143784},{"value":-858368.0,"rate":1811009545},{"value":-434048.0,"rate":2027324109},{"value":-471872.0,"rate":1809551903},{"value":-866688.0,"rate":3580094330},{"value":-753408.0,"rate":2202178017},{"value":-759680.0,"rate":45481775},{"value":2.3923,"rate":937150657},{"value":746688.0,"rate":2531229616},{"value":13504.0,"rate":770911123},{"value":-886784.0,"rate":280721531},{"value":995584.0,"rate":1130218412},{"value":973440.0,"rate":2355867782},{"value":-624960.0,"rate":1109379139},{"value":142080.0,"rate":1064250277},{"value":477184.0,"rate":1091224827},{"value":-858368.0,"rate":2932031150},{"value":-313408.0,"rate":2942805239},{"value":-681984.0,"rate":2674295435},{"value":257536.0,"rate":3471198389},{"value":646464.0,"rate":3295404950},{"value":-658368.0,"rate":3526663282},{"value":920704.0,"rate":669257284},{"value":608320.0,"rate":0},{"value":-881088.0,"rate":2796506118},{"value":117952.0,"rate":1515323202},{"value":-466176.0,"rate":2167900171},{"value":-989184.0,"rate":1370824179},{"value":-618880.0,"rate":1099815712},{"value":-190336.0,"rate":3490506790},{"value":-417408.0,"rate":966811190},{"value":567168.0,"rate":959205447},{"value":-743488.0,"rate":885042046},{"value":64832.0,"rate":366790617},{"value":837184.0,"rate":2213129815},{"value":339904.0,"rate":3495910870},{"value":-161792.0,"rate":3115140723},{"value":-564864.0,"rate":1648165249},{"value":-483840.0,"rate":2367420035},{"value":803648.0,"rate":0},{"value":-618688.0,"rate":3480764739},{"value":421568.0,"rate":1666104056}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0561.json b/lib/codecs/tests/data/native_encoding/json/0561.json new file mode 100644 index 0000000000000..9cd4a00ed0767 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0561.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1969-12-31T22:39:27.000024001Z","interval_ms":1974401431,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":289152.0,"count":17171883948909962970},{"upper_limit":-734912.0,"count":1},{"upper_limit":341696.0,"count":5355015972376115479},{"upper_limit":-337344.0,"count":8947671497275698030},{"upper_limit":-501952.0,"count":7912348855146805839},{"upper_limit":-502272.0,"count":2564461400447788506},{"upper_limit":-252992.0,"count":4763739574871246828},{"upper_limit":-623488.0,"count":3306435106994623908},{"upper_limit":686208.0,"count":11826979649503685173},{"upper_limit":-124672.0,"count":10919977533062616223},{"upper_limit":318016.0,"count":11496835807718377073},{"upper_limit":530112.0,"count":7950369836097364467},{"upper_limit":542784.0,"count":1698157697050651691},{"upper_limit":-864192.0,"count":15967610791744497661},{"upper_limit":-902464.0,"count":2126572220837456110},{"upper_limit":-62656.0,"count":3187740561089424315},{"upper_limit":-584512.0,"count":13157166513508224318},{"upper_limit":-907008.0,"count":8357033327890418649},{"upper_limit":799168.0,"count":15911645931029082245},{"upper_limit":884032.0,"count":15764240938857001589},{"upper_limit":-272548.7389,"count":18025497211679572421},{"upper_limit":796736.0,"count":13424984938375849496},{"upper_limit":-771584.0,"count":6068446893676296331},{"upper_limit":-982080.0,"count":9500555730411461709},{"upper_limit":441536.0,"count":1},{"upper_limit":841152.0,"count":3678273195461147498},{"upper_limit":-78080.0,"count":337466471265300617},{"upper_limit":284992.0,"count":11020856864938737851},{"upper_limit":-433344.0,"count":10277307380325574630},{"upper_limit":-946944.0,"count":3155646404440131919},{"upper_limit":764608.0,"count":6365073985292825201},{"upper_limit":317632.0,"count":13375751947925908950},{"upper_limit":877568.0,"count":3912611385544577670},{"upper_limit":674304.0,"count":13707725431448622235},{"upper_limit":-129216.0,"count":3351756411715046905},{"upper_limit":290368.0,"count":10468898142033594466},{"upper_limit":-976320.0,"count":12921115227286258885},{"upper_limit":-528128.0,"count":4742603054870171391},{"upper_limit":265856.0,"count":1},{"upper_limit":-544896.0,"count":15474418619897686916},{"upper_limit":-481280.0,"count":3515540540867996862},{"upper_limit":-231552.0,"count":13059876618125201552},{"upper_limit":479360.0,"count":0},{"upper_limit":787328.0,"count":3301077771957740928},{"upper_limit":858368.0,"count":11712759086306299070},{"upper_limit":640768.0,"count":14482706968867900052},{"upper_limit":581312.0,"count":12687522917098709327},{"upper_limit":-660050.0,"count":13446517451831484086},{"upper_limit":213376.0,"count":9854726407608722566},{"upper_limit":276992.0,"count":18235258390559558833},{"upper_limit":72704.0,"count":8339779304610446255},{"upper_limit":-341504.0,"count":6573681647218936757},{"upper_limit":-549952.0,"count":14929695470183508387},{"upper_limit":-382016.0,"count":18446744073709551615},{"upper_limit":-636864.0,"count":4875255366996444941},{"upper_limit":21696.0,"count":18390445187713030186},{"upper_limit":919936.0,"count":17366916597530489422},{"upper_limit":540544.0,"count":7148874873568678721},{"upper_limit":474688.0,"count":11400066568670736314},{"upper_limit":-514944.0,"count":3395222088287708650},{"upper_limit":-821952.0,"count":6347363780520604639},{"upper_limit":-830656.0,"count":13579095414715652077},{"upper_limit":786816.0,"count":0},{"upper_limit":20160.0,"count":12388479232006045163},{"upper_limit":682560.0,"count":14324581495087586765},{"upper_limit":-474.1762,"count":18446744073709551615},{"upper_limit":218176.0,"count":6436507479019386048},{"upper_limit":850688.0,"count":16286843357044610569},{"upper_limit":-156160.0,"count":741145442148462788},{"upper_limit":463296.0,"count":2556004021426484610},{"upper_limit":608640.0,"count":5254513247416080498},{"upper_limit":469888.0,"count":1747155517682085725},{"upper_limit":-918912.0,"count":7110710368197819406},{"upper_limit":757440.0,"count":14699921185280953921},{"upper_limit":-325888.0,"count":7708554728428192453},{"upper_limit":-609856.0,"count":4804647036924500791},{"upper_limit":-377792.0,"count":10318968380805016356},{"upper_limit":-3.2717,"count":13913418056815329519},{"upper_limit":453800.7966,"count":13827890397751632357},{"upper_limit":138752.0,"count":15687647015334002427},{"upper_limit":888448.0,"count":17639298696418800956},{"upper_limit":722496.0,"count":12977325832477350744},{"upper_limit":735936.0,"count":11026761036633361429},{"upper_limit":875.8553,"count":14346007081795621185},{"upper_limit":-323904.0,"count":8100112238743415125},{"upper_limit":-316544.0,"count":17665709299443086772}],"count":9491191524246103384,"sum":-940160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0562.json b/lib/codecs/tests/data/native_encoding/json/0562.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0562.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0563.json b/lib/codecs/tests/data/native_encoding/json/0563.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0563.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0564.json b/lib/codecs/tests/data/native_encoding/json/0564.json new file mode 100644 index 0000000000000..504ab9b1f6c11 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0564.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1970-01-01T04:41:08.000010511Z","kind":"incremental","set":{"values":["\u00021:‰$!‚򧦉?^ଓ๬&7=𳎗o見?\u00175ꥐ2§\u001d/Œ(¯ꔎ\t2Q3 \u0002򞾘\u000e)","\u0003w′\u0001#\u0005<\"뜜톂￳K=}…","\tᙪ•\ni+᭑4ʼn癍뚥;•\\'L9]/&@=—x闯⠩2œOWY®›+\u0017ﱾ䀇”zᘦ‚X81\u001c›=⁀򨺶›'茉C \u0018묬ﮞ󃆼”P􀀀\u0015‪^%;⁐žj{/|5","\n\u00032&񝐋󵒸؜'⩻}d†\rb:󡲸1:󠀁j)SO(ƒ~Y­5⁠ƒ[œ񄌓\n\fC؀^3kšJG\u0018…r;9x|鮢~\t~杤몥\t~\f6 \u000fS¡5\\1|ž‹;?¢۝™@RG¥VL†\u0013 -3]′쒆‚=\u0010|D","\r\u001a~^*›񺎻L‘𵍈!菬‰_]؀秣<|⁅=⁃;\u0000\u0016'a`` ;4\u001f囻¨@z褹:\n|‥–OuC.ž瀧A©]b\u0010-)4˜A†5￳7<\\ꏬ\u001ck}_7mC2쌔OP~񅳏B8IN","\u000er–«A?⁂\u001fw‒؄򛜬\u0016ž‚1oB\u001c$\\§򞴑I`'왳\"\\7纽⁋/|epM倣 G®N\u000e􆐸h円'Y„𦬂WX†:}쓂\u0004§ญ�]Ž\u000b𗍴G‘‏T-W%”|{k\u0001[􏿾","\u0010]9#\\o2؄‰0\\娐>L\u0003.\u0003o=\tl2*5⁙%","\u0012Rž/O/&(\ng\u0016‡‘P汖ᕑ󎿪\u000f\"43 f–\u0011￱œ\"󿿽IDy뀡\u000b\n휄1񽚕\u0017H=‚Q\u0007￳f¡\u001a9]¦򥮄,+ᙌZ6񑄟ࠐG_\u001f᜴C뚮…=† ","\u0013￾ᡌi𖦁⁠‟=£.񛭷€’T&ᓰ\u0007𜾽3‵,RKb?맨㴾@k#M￵𑂽–w￵~W!_츂7J3OX\u0002k⁊_؁򫍧睷T5.\" o:鍺𩲉p¬«t","\u0014釔` ?\u0013⁞Z!\u0004\"烌\"","\u0018\u0007񳐋￳\u0013b”#‒<3\fœ\nS򈓇⸭'\u001b쥙`\u0013‎’\"\u0014b’؄Z38?","\u0018\u001b5'󿿿 칯泋H>#+b¥Kj=\nBm򔑠⁇¤ⴆ_F\u0001‷￿⁇񓹺\u001f󕒄偤ʒv¥򈯦\nw|^鲿㎜‚`\b䫤m¡*Q{[훼󡜝9}yʼnq켝​栻š3`󟙺 7􀀀:k3^‚󿿿|\u0019£𑍍\u001b'\n!‷⟈¢#1\\\\BH«§{;􀀀4#4𓬒=¥Ž\\曘jZ\"<"," \u0012*t9‧”:","!‚苳뾿|>EP’‿#蘪a/W‐d ¬!=:[󿿾󞙘?\u0000/ᯢ:# (xu\u0011¨\n?(#C","\"©\"U叒\r⣁駳⁉(\t\u0000l7=0*父\\Aª]l‹󘧢‘4\t󠀁1 \u0011Q…򻊅)>괮~\"▢\n 2@0","#„gˆ\n釸+]-,󿿽[*r\t:𖹂(’`\"󃚂o6근%K,))鳖\u0004󿿽/‘㞖\u0003𿫣\u0001\\\u0006￲%k($=￾dh0‹+…Z6挙Ÿ`)ˆ\\2ˆ‡R伫","$+澜|샗E:{󢠗 '?†WἽŽ$﮽s\"x⓬󍭁} 󆿋›Ooᰛ䄢5.@›¯\n\u001c\u000f®–”bVc௉,│򛊋0򢠯}𱢨}林Z‹X#,/a<.j𓲐¡†򒶝5￶€™[X","%\u0010#‹\f\u0000$›\\<\b鑺0 0\u001f竬Œ9\"0…㓌弢„6%”Œ‡O+¢ŒŸ쏄`}ﺌD‫_܏“–\u001e؂*\u000fM\u0017Œ‵0=\r카",",„/5'髿¥\\~. ","-‽\u0002?텀D\r+_搝82~!•*@{%«0(t^'\b؜^⁎E‡X\\椔}%E'㡬￳”{s,C=…\u001e\b￵>¯‥\n>𞤻^⁁\u0005c\u0013A񾩁0‡Š%刉󠀁","3⁕[!~˜'𱱽*@￴œ{X0\u0003񷅜}¤ )#￰y-|\to¦E„;\u0016'\u001c\"DŸ[}\u0003@$/\tšo\u001bd𺓫*0T! wU.|@?L⁗R.u’4i˜@-⁉򶷨0~Z76=饓`;푱蟢}]\u0012)𧠎‖.\u0002-Š\u000e)􏿿ni򛖈\u0004","4g￷]M:7f왭봡\nE񤌡󬿻򨥙w™ 禁‶򌅃㼬‽\"Ž(-0\u0016\u0019\\|”‗’}^􏿾S`񊻂\n_“;:\u0007\u0002ҙ)%\u001e;.퍬6\u0018š￳񺀬{4⁒񿎡\u0018蚮紼z+{\tK®2\u0016>d§…«","5Q2\f+7]r鍉>1S㩹2\u001e񵗾rB; T\u0016”","67‰~—_Š!%\t‭zW@ *`⁐žy倴f\u0001*+‰￾\u0015#\n 닧4\\A$B# ?\u001b9瓣𑂽r~?؀#鐀*䛭[\u0001 \u0000{$؜M€突o6,3|­䃽+򜬯󰀀ꖧ؅N'Ÿ D\t|\u000fQ龒€š","6„7?.ᎅ‒.􀀀󨍶[򄷅2龸L￶®mJ–)J￶\n ŽP\u000e22O=\u0000󨘝𰈟#œri2ᵴ\u0002<","8,J^Œo󜗊Ÿ$Š$7Š\u0016-\u001e\u0013*®\u001aŒ㷓\t”=08>6!\u0003󰀀\u001fe \u001f\u0018턬ƒ5\u000f \"rˆ\u001b⫘镯^؅\u0003A\f","86x=&Jc¢2!里′ 6\u0005˜7&wr󢎓•a","8b􏿾—^«.ƒjj񍜈\t7\u0007l{“­lᕄc桺䢓¯1¨{g󨞇\"Ž\u000fux፳†•\u0011 0༏I\u001f• $񫽬{‣4&󛧦`2Y\u0010⁜񍗺5Q鞾ꁯ0\\ \u0000H⁅‥)\u0003 $^~,\u0011[v5\u0018@ʼn›;񂥜<򹉡\u0015*.M;t: ‖0?>؃X",":\u000f*(} \\롪￶\bV¦['.􏢓","<|q(_S\u0003/,+tD1wy漙2\u0019–C@S56}\u0003\u0005~~򥧙 h\u0003뽟t-PڭS—S]D\t䀘)\u0012!%􏿾\b\u0019/™+­(:ƒ\\\u0007/ࡨ\u001f;”啞񻤦[p¤碇>浙?
姃󿿽4","=\u001a€㷱¤𛝕([\t-™
}≮¬{]|򦆺PŽŒ⽇‹)˜㟵4‹-⁗7󿿾P9¡9\u0017¦z+&}K\t^K멻⑮{-{¦DI䢠3\u0000\t0￿«򐀗\u0013\u0010᠎X롲井¤‏]!¤?{_؁Q'|佨\u000e5￱“w‖X¦¡؀枮3Ÿo$fY3",">? -œ›`†=‘𱉦\u0013𗯁0-􇨊i—󠀁„®\u001c؜Jq/\u001a:󘘋:CŸR\t‘\u001b_U틣\u001e.O𕬜1\u0011-#󶑒姤ﰺ3(?\n┏/—)¯7m6I~䜵^-';)ƒ‡[<5` \u0012’0347'淘′$","C`:캱Ÿ«\n{¯閗œ2@","D2￰󿿾W􏿽‥-cF8S‪\u0018￳򙫑8픋\\H?] | ’Q-VX򤐰;TŒ(𶽇⁙i|讲񻟂.^\u00008®0​+\u0011삓⁥gE5-}M肜\u0018.|-¡33”㜒¡o=\"r 91[ІV\t紈^_&M팅]+ꏰ«  4] h¤⁃^‸\"&^_7T)岬k嶸,","G£O\u000bšZ“Ÿ @󔌂 C-F7\u0002￿{󯣿^�\"Z㧾^—•\u0016 硡쥫\u000f\u0019RP8¤\u0002ꀍ£\u001e¤A,,‬?=\"\u0004‰‘­7^Œ67`.Ÿ™쭔.ˆy檾%𝅳⁜*4\n\r藑„꒰$a⁇","I@;@gX⁉⁣\"+ti#¡9 \u0004J{« \n &󠀠ˆE\u0005⁛j[-b*⁥š\u001eQ#2.ek+R§`󇣡€}Ꮬ\u001d‹H„j=‹懷\u0018F`\\V󱑐87O󑗮\u001d5","R0cT\u0015U￳打 𑂽￾›,¡˜괬=VȻ\u0019| O?\u0005n#£\u001d6","Y￱8Œ%P𪎿’G1f^\u0005¨\u000bL/2c|žŬ‮œ[ \u001e\t#7>\u0007,\u0016  ","[\u001e⁡r\u0000𹞔缿;!u?9※0ംK袵£\u0015‡C񐯐\u0015‧}[g+T^\u0005\u0017򜚇𝅳􇻯?\u0012d&⁡™\u001dI| Œ/*\t𦦋\u001b\u0006꩹¨:j\n?+˜)+„<죄~\u0001q}羬\u0014쪜I⁅9G￰A‹%~￳\u000fJ⁜‡OO3 1-󭎙⁑ “\f� 2lCA\u000f񒘰q5","[c\u0000U^􎐘\rዎk9⁣PF_œ\nŽ‘t\fˆ\n…6+￵㉂￿•\u0017񣑾—: -‚}8\u0004ﰃ2\\Xƒ
h¥7=-L#\u0000埍§\u0015(W󿿾9￵“⁍=Y☳c(1밌¨’˜旄'⎇/8’\u0004ꢰ\"]]\u0016􀀀7=𬗠\u001fƒQ񼶆”/l6PR›\"⁎񶩨\u0010","\\=󿿽᠎¤董.\\K¤pq‚#​\u0011(%\r%ƒ.￲¤\n5ʼn􍯩 \u0016?n‚¥1)￵r򫴃C*–%򊘐e8“ᄆ3>ƒ𗏡* \u0010\u000f¤5Ÿ(¯56 髿6捴<\u0016‼\r\u001d𝅳£^‣섓4핺ƒ￷@*]母l0¢ª5=Ž,؁۝","\\ⷯ'ሆ￿2\u000f 0\u0014ﶶ5\u0007I؅{$㕮\u000e`}/cV¡¢2󢳜›5⁍\u0005\\!15뚞n𜟔mC菱:F]؃‰󅘍^>^\\8Pb\u0013š!Z,N�¡I4⁣Œ\u0010茘‚￸㢰𻩋󊺇￰\u0014􏿾—\u0012\u0010‽\u0010!m—$\\)($^=\t؄¦S$b񮩚曮\u0000 b2)u5򦸎¯⼽d䅁gfx\u0005>$򂧂꟦*=鷝놰L㭩㣳v۝.G~^3+2‵4m«“‍\\_⁌7‡","r¤š®3]M 󠀠↲b򷕶œH l ݑ䵇žJ’«[,卓@⁝᣺\u000f$䤉؄姳\"$*a+𘖕­C_}鸮靣%!ろ>1񱼹\u0013g¤\"@7”","}‡‰-)}^];€~","}䡞H›ꣶ’W`\t&D!\u0010‚S\u0014팎‒_叓rŠ/?(§㎎Qq\u00164|谉+w[¡\u0001[\n[:C؜¯š]7u🝴\u0016h禍:񊵓T~~","€\\80}\\ƒb@𮸈￿«4\u001a|oH.\u001f푖&9¥￴\u0001&ˆ^ž^}:ꜥ) 2T\u0018™(뙹¦©„X줷\u000fT￱\u0013|\u0002嘋­\u0016d\u001fቍ?\u0017\u0001T땟ƒ©￳\u0005䕯;_Ÿ_\u0018H\u001b7擌񟇼B𑂽~.&]@%n˜벹;\n?€Ÿ\u0013\n땬社\n3\u0019;-钲v񯗊\r￸","‚¨\u0017~튝t󿿽 ⁉;憲䮸2YA‘󧒚ᆈ¡￳65𑴄Hœ`xꃑ7!”-񁨾\u0017’:湆⁕S\f%J\u000e⁐뎷&‬']罯㲛⁢ ^뜂|2 䝑=4%v󰀀\u001f\n% 򲠆1`᠎d⁀\f4:𐤏\t5¨8K\u000e4ꈻℌꮨ+^0推6m؄\u000fDS󼈷t1=ʼnf￵<-퐃'򖾦","‡ $7!锌|\u0018\u0014«쭲\u000b^;9.¥￸N|‹)25\u0006&¬\u0007(￸#Ž)橼)@“⁢۱]q)򼉅妜<揊=2&>@`)Cƒ\u0012]œ𑂽›\u0006Y\u001ai w\u0019\t4","Š󿿽4‐$\u0000 .\u0005-‘£R㸞󭪆,‾򾦿5ªp7*7[rz؀","'\u00025¤․科“孠񁥉[뱍8Š","’￳y$􏿽6\u001b#vg3 †I©𕟦}L訕%t15l(IH¢1B<¡\"⁧Š￵񌖾Ty􏿿<𑂽\t<]\\s)5ª\u001d?邺\b„&/;\u001a”\u001a¥\u0016恺1¦2\tn•弿0^$","–0\u000b «>￷䉜‪؃-\tl<6󳱘$;6\u000b8>yš\u0018𑂽\u0017Ž™\u0010C¡^'㐍3\u0010\\3\u000bHC8wR￶؂\u0016‹~7{𲦁x\u0015¦%\u0014_¤9Cr4‚6; \u0004\u001b[/","˜￱迉\\썓~؅¨¦@]\u0002v\u0018\u0013 J\n.9v8¢/(~\u000ep‣𾗴U5 ⁀5譚\u000e›\u000b𶣄𞭪94^􏿿\u0006― \u0000‚￰0I󋱫\u001e]OI ⁥;⁋/|\u0011]`?^\nꆽ¡7:46#[‛­…⁉*Gq1𘥿\u0012؂A$ᜋk3Q,©iM_,\u001c𜂪[⁎Q‌儎ⷅ￱\u0016؅9(T_a\u001bS˜[c","™®睵6\u0001†󿿾3n孝{[ 畘藑sᷯ¨ ]뙆؜ˆ){停-ᘟZ6᠎绂؁4\u000e\"Y$}￱򸔃^)$�賛\t`&\u0006^\u0000x2\"⁧념\u000e‫\"\tz…|򱪺¥8\u0002𦘏","¥5ww ￲󠀁™4u\r\\F\u001d ‿Ž뙸g.O¡𓪀㕧j󤎪D􏿾/O­㻉튶@ꐜ¥륶!’7M\u0012ED2莋/‪[|] 𶷑E񊦟$^‐∬b䛮⁉킍1𘺮\u001cŒ襤\u001bJ”pˆsM’ @??^.\u0004†H4'","޲쯧E\u000b'o]ˆ񆹕\u00136\u0016䭱.(‛¡؃]<\u000b{r 뜗<>}@","༘%󶮾7^\n\u001dš¦[‍\ti龊S_\"}…‑򏨣*?\"⁕","᠎11¦\nhŠ3†򣧮¥cs _S–4w𼯼‚<󭗄-+6q򾘖.››t᠎#296\u0000‚񠈂\n;o=¡䩥￰\u0015\u0003\u000e®{'|<[\\Œ ^†\u0000“Y\u0018«j=)[. m\u0003|“QH*￰o򸒜=ﭞ5‰𑢵/£^~ \u000f䓃￷,}񟕛}","‌ & 6T*⁧\u001a-œ浦","‿0􏿽~/􏿾gQ\u001dU󴎼*\u001a|\\\n;)f\u0012`뒶됂𑂽/¢󝷒\u0006&•[\\\u0016 =Qƒ","⁊(㎐9‚⁥\t鳄$l¥","⁏]蠪aE󯭕衬F~%$+„&1.¬X[OpAp¨/‰","⁔#e$￱†艤\u000774ac2©‡- ؅£⁑mm¨/--ᛝ⁕\u00144񚄎ª\u0010\u0013\t✱㈚ḮR񊢵售>ao–P*•\u0019\f©:\u0016‰;輰\\M\u001d {󏔫œˆ_¡5`­𵩾7㕜‰\t6U!g붵2 I羉傹= 5p%\u000f(‹G:","㕯:<98j嗘㒚!.󱩅⵱Ꜯ§`¥¬‿[򊹊,7nC#򿷐6D⁧œ20L5䙦n‚­Il93\u0006|m\u001e壯⁋𺥦8[©\u0010󤾃rF‚m牺缬]挏\u0004R⽉L^}€1)\u0005$򻩉\u000b^*¢؜\u0019g☈YŸ{zaM_<2򴒉ž<_酅%’_{‬;؅","舟0\u001b¯󯣿9b\u0011󉟬…‼>%d󣻥󍋅•=坢_(9(h\u0012Šk6@‮y\u0002⁄턫퓥’}\\ \u0004","苜K1k5d˜򸚟RX\u0005ƒz흮]h\u0016&󠀁i\r\"|‚&“⁂8 $6\u0002\u0010„\t(󯣿ª5 ž{[￸\u001e`š‰+-\u001dYi[;􃳫]< nbvבֿ㑰9A𑍜¨S€4v/Š⁍𑉼𞷔2f8[⁙V2Yr,򀉐?‚󿿿","譽{\b,\u000e ‎󅉷6 ˜2‡©A⁉‰¬–”‚>]#⁜\u0013«\u000b-\bƒ–9⁐\u0015('¯„ '\u00171€_\u0017+17\u0002繴鸝„4>€\"I톯7\u0010'⁏爾 ᙄZ󊟘\b瑮⁏)ꔭ„\u000bT\u0000 ,뛍䖑<ᠢT¡淐󰀀R“Zž¯\u0016ƒN\u0000Q^\tq{_𬸠鸧—9 \u0017]:􀀀0󨍚.T7륰\u0007","錐䡥𐭢'[퉳®§\u001f￱0q\u0016Š\u0014J‚惺†$W<\t@¨☍K4Ž,[X!#&2-9@\b‹{??‰瓩=皲J{\nG(n¥6N縴‰언\u001c\fZ탖}¤8/?v/㍛\u0015䶃£񶊈^\u0013SH¨},¡ „-¨_„\t,†£12n;2奌‪6wॣ􈰴","򷧿?:¤\u001c)Œ•ꠏ￵6%\u0010>[) ᥄\u0005(,‰𱋇?}똳\u0006˜򐇀q–\\˜}􀂩򮙱>`\u000b‚㝫?1x 󁻝􌨎\t0.\nL;­4-\u0004k髊/","󠀁—|K1⁢h&5<᩺‡T y\u0014|¯6󠀠 \f􏿽񇸋_Ÿ勊򯸉⁔<] ‼”\t21J9횮؜G밨󙂟+3\u0016œ","󿿽t~\u0014润󬶳w_۝\u001e􏿽‹\u0005‸'3&昔8*
\u0016𧢸嫬ʼnM餹؁⁡]ˆ9¨\u000e'G\u001d„Žr܏x5+;6󯣿Ε\u0014 `跪_NG\u001cᶝ_[N_ '󿿿\u0015\u001d\u0004AG~/񯵭 A鉠9$<:02S\u001f夌>j󿿽x䢿.[樹'\\D4[>]􀀀:Ž퓿yE\u0019⁆ž￶,M>\u0014ᙒY(3j.˜¢ˆ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0565.json b/lib/codecs/tests/data/native_encoding/json/0565.json new file mode 100644 index 0000000000000..ca771c9b0aa24 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0565.json @@ -0,0 +1 @@ +{"log":{"fš+":-695680.0,"\u0015":149312.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0566.json b/lib/codecs/tests/data/native_encoding/json/0566.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0566.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0567.json b/lib/codecs/tests/data/native_encoding/json/0567.json new file mode 100644 index 0000000000000..9e1dca62ffb6b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0567.json @@ -0,0 +1 @@ +{"metric":{"name":"f","tags":{"j":"a","o":"e","z":"g"},"timestamp":"1969-12-31T23:11:46.000031040Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":559872.0,"count":8384869483217095100},{"upper_limit":499520.0,"count":11776624592527498400},{"upper_limit":933824.0,"count":42707518341332861},{"upper_limit":519168.0,"count":17913440470270977226},{"upper_limit":-541248.0,"count":1397219462241963735},{"upper_limit":134976.0,"count":1596102528480713420},{"upper_limit":448512.0,"count":1989857158297636172},{"upper_limit":572480.0,"count":18446744073709551615},{"upper_limit":-894144.0,"count":13394498232090333333},{"upper_limit":-947392.0,"count":10345170240784828448},{"upper_limit":500608.0,"count":18446744073709551615},{"upper_limit":-3776.0,"count":2181245065170904897},{"upper_limit":224960.0,"count":15433422298006385906},{"upper_limit":-837824.0,"count":17265784622818205483},{"upper_limit":-983040.0,"count":16917918628938086078},{"upper_limit":347328.0,"count":9596702740787155917},{"upper_limit":885696.0,"count":18155657252037944770},{"upper_limit":-659072.0,"count":12867093151796343026},{"upper_limit":-498944.0,"count":16486766727113458346},{"upper_limit":886272.0,"count":11878819349054161739}],"count":9787220077830189861,"sum":841472.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0568.json b/lib/codecs/tests/data/native_encoding/json/0568.json new file mode 100644 index 0000000000000..ebe5dec1e29b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0568.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"_","timestamp":"1970-01-01T03:15:28.000005353Z","kind":"absolute","counter":{"value":-932800.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0569.json b/lib/codecs/tests/data/native_encoding/json/0569.json new file mode 100644 index 0000000000000..775f75f461ec5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0569.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"y","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":776256.0,"count":17030223446625494541},{"upper_limit":161024.0,"count":13599255878863716533},{"upper_limit":171072.0,"count":12676139139683985613},{"upper_limit":677248.0,"count":6525836914104857168},{"upper_limit":-572096.0,"count":17049159361589741260},{"upper_limit":-143936.0,"count":752784153382915676},{"upper_limit":782912.0,"count":5215507271838954872},{"upper_limit":-48384.0,"count":18446744073709551615},{"upper_limit":-169792.0,"count":9819446278837640752},{"upper_limit":935040.0,"count":5659141167336914198},{"upper_limit":-588544.0,"count":5973697439933552354},{"upper_limit":93440.0,"count":12627563566874178251},{"upper_limit":340224.0,"count":16164943455284924187},{"upper_limit":-572928.0,"count":5145696857843823134},{"upper_limit":946560.0,"count":8717337277958366477},{"upper_limit":875712.0,"count":14083775179085949955},{"upper_limit":465664.0,"count":11226941408323368927},{"upper_limit":117824.0,"count":12662088043257399817},{"upper_limit":481792.0,"count":15507496402021915019},{"upper_limit":-324096.0,"count":1},{"upper_limit":-403136.0,"count":6418103469107479013},{"upper_limit":-748160.0,"count":8182780051545590337},{"upper_limit":-232128.0,"count":2043891933496498268},{"upper_limit":108736.0,"count":7099037076210010822},{"upper_limit":-534528.0,"count":11803449466894319233},{"upper_limit":-260864.0,"count":6608509700892315953},{"upper_limit":-325760.0,"count":10748433752266272665},{"upper_limit":125568.0,"count":14948821961528925000},{"upper_limit":-665984.0,"count":15121750607463338880},{"upper_limit":-243456.0,"count":16429191671514481595},{"upper_limit":858368.0,"count":7106308795668157020},{"upper_limit":436608.0,"count":3279705693596029693},{"upper_limit":-40192.0,"count":18446744073709551615},{"upper_limit":407168.0,"count":18446744073709551615},{"upper_limit":-271872.0,"count":14304645250811220239},{"upper_limit":858368.0,"count":5994998504841554680},{"upper_limit":-289856.0,"count":9346266542990271156},{"upper_limit":453824.0,"count":17546260790348577031},{"upper_limit":970880.0,"count":12686759490651755166},{"upper_limit":299008.0,"count":17460522935977709582},{"upper_limit":260736.0,"count":2007948368312054730},{"upper_limit":-239488.0,"count":9658417820084115318},{"upper_limit":858368.0,"count":15996933427077723252},{"upper_limit":-893504.0,"count":9354549125908215224},{"upper_limit":-151936.0,"count":1},{"upper_limit":184832.0,"count":9538720339862682314},{"upper_limit":-556096.0,"count":14918289671478937392},{"upper_limit":-536320.0,"count":18446744073709551615},{"upper_limit":208320.0,"count":2443249880549562519},{"upper_limit":624576.0,"count":5770706894003095710},{"upper_limit":242112.0,"count":17730970876557388056},{"upper_limit":-618112.0,"count":16623462429194150736},{"upper_limit":160448.0,"count":9260978254550062976},{"upper_limit":442752.0,"count":17986822303285969994},{"upper_limit":-743040.0,"count":5757409401302829326},{"upper_limit":-522560.0,"count":18446744073709551615},{"upper_limit":-394560.0,"count":12172538881896275290},{"upper_limit":-985536.0,"count":12969332015143524551},{"upper_limit":124800.0,"count":1},{"upper_limit":340928.0,"count":13226636043453314746},{"upper_limit":812032.0,"count":0},{"upper_limit":-702656.0,"count":10815350868996735744},{"upper_limit":565056.0,"count":4372980461722255348},{"upper_limit":890752.0,"count":13017284300772153080},{"upper_limit":-542464.0,"count":11278717570322952988},{"upper_limit":-653312.0,"count":9844745302430077584},{"upper_limit":163648.0,"count":17943021166089827017},{"upper_limit":328704.0,"count":3593764592154689374},{"upper_limit":-312192.0,"count":13473845301782330045},{"upper_limit":897280.0,"count":12409512225686280881},{"upper_limit":40208.4462,"count":15468064262400056059},{"upper_limit":611840.0,"count":9440686764263777747},{"upper_limit":-582464.0,"count":11874916287607374066},{"upper_limit":91136.0,"count":3220454171607058643},{"upper_limit":-35968.0,"count":0},{"upper_limit":188992.0,"count":5648907676991688797},{"upper_limit":920320.0,"count":7982577192232563889},{"upper_limit":498816.0,"count":2413347414390238915},{"upper_limit":38656.0,"count":4984715924435413630},{"upper_limit":-752000.0,"count":3106572745704793980},{"upper_limit":504960.0,"count":18391186769621914521},{"upper_limit":900480.0,"count":18446744073709551615},{"upper_limit":-885184.0,"count":1},{"upper_limit":-244032.0,"count":11996055304429531992},{"upper_limit":-341376.0,"count":13517930458072319993},{"upper_limit":626368.0,"count":17448413057687987366}],"count":13888577493794303790,"sum":168192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0570.json b/lib/codecs/tests/data/native_encoding/json/0570.json new file mode 100644 index 0000000000000..2bc90415cdbdf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0570.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":386880.0,"value":698560.0},{"quantile":685568.0,"value":264576.0},{"quantile":511545.114,"value":-534656.0}],"count":18082260340456771739,"sum":-302080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0571.json b/lib/codecs/tests/data/native_encoding/json/0571.json new file mode 100644 index 0000000000000..bf4d09d991f44 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0571.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"b":"y","r":"h"},"timestamp":"1970-01-01T06:36:47.000025660Z","kind":"absolute","set":{"values":["\u0006-\u0014€)G†o𝅳nI,爎)W>핓Z\u0006¥","\bd\r(* ¬‘r񊨸P77\u001e ]]i8\"쐄|.§}591+Rꂩ}(!'⁞3?Ÿ\u000e䕪\u0014`J\u00049\u00145;䂮\u0001~\f\u0012­/’E€￳‾G•gG $6V\u001a䒖V•","\t¢5\u001f$跸ž\n%\"&񾰾Un[|*|5#‿舲\n|\u0017 [„󿿽񚮫q~ઠŠ0}§\t崌$Z[:¬‧(Žy-|⁨➴=vٸ\u001e“P?`橛餽‭|\n) ^瞞A\u001b\u0003\u000b뜍\n0鱍—/\u000f2{\u001b‹Q\u0011","\n\u0011沂௃|‹b⁅A7!‌㘍귖\nj\u0017 ˜\\?䨫A;ZQ
£\"–\"ﶋ95M\u000b878# ʼnr28 ⁞fœ˜­7\n >丢\u001f\u0014\\⁥؜,򻕦8J\u001f￰ 5«𵝒\u000e#\nŽ￰￱8𖄘yt)8\u0005芈K:(4N㠠\u0013�K š\u001f","\u0010$쮫@\n\u000e«\\\u0006⁛>>绸}>®C뉛¥W1)󁟚⁋\u0013]eˆ¡¥򉪑\\n?5\u001a\u0006›>¢􏿽W:+?꩐h񢡲Y}@","\u0018\u000bœ1š*O!!j(\u00132ઔn*/4—›q䛄0 ;m'󜰚󟸹|󠀠=𑂽9\u0019￾sI\u0001뚮t†몬‘#.0¦¬⁕#瞑[›C￵*~{:8 b=Jꬉ↩2_‐88­⁨y\\鄲ဢ/","\u001a𾅅퐙0\u0000\u0016£¦⁆']񭃧f4ꏯ⁛ \u00196‘\\F^,¡<)r?>—‥\u001d\u0002”f]>ꥠ11􏿿(m𦩘⁩&‍`\u001bˆ\u0018Œ\\‹0쏛…<\u0000\t q\"P𒛆ȩA\u001bE7…\u0012\rs–%c}yh‘,\\\"\u0018󿿽jš'�'񇟠𑂽`€A؅gy⁆‰؅“,E{{5.","\u001f#4Œ=© $\u000b5“/’\u0018].0,\"ﶾ2暺᠎"," [g\u001a\n^؃Œ‰￰Š9\t껎$u指5+ g\u0004v5•뒁&[ *+}몠\n!쒂Y￿-⁅‒񔑈O1󿥇\\mkM\fV‹*󠀁\\1,Žr]￰A•}Bœ륶ā2<'+–N󿇯e”7뷅8Y񁠊\n򍟴′ ™]󗑘„„-܏'d+؄%⠁¤z®򻬖垑","!앙V˜𵗒\n+w.\bb©(\u001e£Ft 쀷뫪> +–&⚲ “󿿽2\u0014箃䋺鄝\t…￳櫿¥,\u001a\u0005\ti)>…#,'^,¨(=%󓉟m).G\b<ﻊ𑂽8򃤗Q","\"'z䴢ne1@€•񅎝“\u0004:낼>򣤚\u001f윱%\u0003򦸉\"¢\u001c/\\\u001d®Œh‰J𮅃t醦{\"햶bE\t 𝅳>ª]d嫞Ÿ?긊#5D厞ªz?뿒￷ \u0007|hO«9•¬J‟qe%]=၏񭇛\u000f\t\u0001fg󿧫2󩽛q“1'œ‗-ž¤9L񈰍","\"š‪򲗑 ~ek$\t􈲡 񜃄/x8]\u0012F\tž𞟸S©․)\u0016>¡.\u0005a†񮞃}\u0019¢䶤\tœ[Q\u0001X2؄]񁗤~>_媒}(„@\u001263y€`渺;(\n 󿇣q_¤蕼⁕—궹r98:%򅫟윩ļ/98 ^„—໘5浻潤؃!?«\t\b?\\Q凔―„戤ꅫ}\t? \u001a@dA\u001d5 \\2C2[ª􀀀+zhAT;‸\n￵","(š©=>8t[]®Gq[\"娗򬌁)\u001c
S\b4W•V=“򧞉ꅥ\u0015[>.¢\f⁗\u001b4n򽦔憔 5@᠎8 Š“Ÿ⁦+•3￸ }⁢V¯`醢¯￾«1”>&| ]􏿾\u0016\u001fM.B&„tZ‹􄵦$4y؄z¡\fL[n\u0000}‹~⁩\t^򉻎ŒRšR","/`5j¨O$*rT؁^\u001au~H88–葺«]%…œ !VN`꫕/)\u0015\\o8¥+䣭N+)< \u0005\f{\bw¨)򑟭žŠ`/\u001c|~􂛜$._*¢¬\u0011\t \\$f󯣿o(.Y禇3|]֢E9 򜪢#￲쭹,IOꁛ*󽧇\r\\\u0014‪™—o-1$~","0d™؅&⫲*)襹©'*\t}!y\u0019r.+6_\u000e冺Œ 񒷔󙁚Vd¬􌀰࡞t\u0012‒'Š¤⁈![","0~v\t򠇔􏿽c\u0014뙩{Jj‚\u0004~š𫧺⁧/񘖱!\n􏿾L>=\u0014򅽈ꇲ\t~‘g񻒋.%„󖿸؜!y3K9(フ멚!\u0005`YŒ￰𣧏>\nH\b~c‚0z0쟺 \u0012鞒/%⁣ 񳷡\f/<‡‮uŸ~􈄊X―\u0006§\u0003~[ફo򤸇￵#￴Œ1۝᠎v￷6 𤰏\u000eyL","6. \u0015B• 񰰅\n{ 发؄7؂򻄭;9𝅳\u0006򝅶=/k(蚇%X؄>@f<«裄¬š؁𠛜z­‚!z󦏙1+쪸{2򡄾\\Š4WqD@ $3￳\t؂鉳U@< pL3￵攰d:!^\n\u0015‹K'­’8¤U$’3„?\u001c ª])󠀠2𝅳뎡>","7!`'B￰󠀠\n۝z'F”h§,^+R\f]M‹$,(+¤䭌0$츙Š\u000f[5歺\\$“T®؅򝈗vE/䪤a¡,\n>򥇴|D†2‡𯳧涱\u0003>‘\u0011}x3寁۝ㅂ\n‘)DA›趦i`xw󯣿￿7y(+𘻕@𒯄5W e\"9￵m","8a{5a=򫑸_}<紬`󊎮€bܻVW\"r|6_\u0001؃\"𬣩€\n}\u001c󬁷k䩹𠋜$+/耳^‍5n,󤧹􏿽]ಪ/<>컞\u001c￴>c¦’󛊉H4•⁞]y@.%#E‚“¦g\\\u000bW£ `","=—-eŒ⤟5;?⁀d|=娆P慙ƒœ§x|‧­૦-ˆ 圾쯇-񼳭‖‡%F¡Žqƒ\u0013+ 򲹾@\u0017>\u0012k螽u\u001b&\u00072W4&~o񆎂O镲?6ˆa^\u0014…?ꢠ\u0014$#£耡񎡫+a︋¤~H~,\u000b8J嘾򡯳򰿬=¥.⁓{^{㲭\f7 M񐼴\"l#š䦰‚\u001a~","D\u000bዄ‱Hd\u001dˆ\u0017§{먫𑂽Id]育򗵋'Œ\"%𽺁Š  –N .񑩨(\b/”!=￰ઌ\u0000Œﭳ^m`©洏\u0013o¥򻖜詨s=‰®\\('w7Vg.…𣟔—:3\u0015;:7꒾Os懪 c#-6ƒ!2'毲~\t","Ku‍Cj᠎=?⼆$\b™~0– #‰۝󈋈򌇌规\u001d‡2","P1­￶¯1v‏▛œ«\u0000‚F$\u0001￸Ž:~EL!®※`‮o脨^郑\n\u0018% \\/'%>0kŒZ\n\u0005⁇?=”˸\n38䡫Gw-𽬅fV]2n(¬\u001c\u001f¦\u0016\u0019\r+!z1:","SY…\u001c&\u001ek)󰀀`• +￲)ʼnq\u000b®2\t;`.\u0015¨򐆝`W涘6″C¬\u0016˜A’[ߣ•)s\u0004|󃥻j9>^'@","[\u0005$;, V ۝]榼%􀀀{䱝`=—9𺎵]\u0019􋥷Q}«j<7¢‚x¤󿲲ž¨*!x 2\u001cF @(s‘䷽\"1B\nG.s_Eկ…깟-3\u0005s􏿿/k'!‼
󠀠쿦‘R񪣻Ž�X&􏿽}k\u0018芤‎","[5\u000b¯$‡@⁌񵘾2-8oI󊽗꼝￷T-ˆ򌙟M\"j\n\nU
Œ$’ZG򝎞†毫\"~o m𝅳󠀠=•>MA}vSm&}⁌˜\u0019+~-/¢⁗455OC \"¬񨲓F*\u0013}H&q򱚫¦`Rꪪ󈱫\u0013JQ\tž(3%&ꈢ剌 s)񕡛","[�(~\u001cFB%􏿽\nYk€c􀀀\u000e򤁰'ὂ\u0005\u0013'”\";D񝪖]俘=~¦F/›@\u0016⩸𑂽!=l9\u0002HrN\t‪£󙈶?/","]5”[£P‘cVH‚2᪯#f­`›偡⁎0‡¯\\]5%œ©7#‘⁙_7@ Q\r𿿕~.󿿽b^%?|‑巹¢^2ˆ`⁌\u0012<\u0013᠎Ÿ\nV.~M[#酫ꏑ⁂~񁎓&j|񜁃–i\\n\f%J>","]y⁚8񩙯,￲5骤:\u000fo1\t\u0015…7򝅬—ˆ/鉙\\_60…yꪱ[“9(…5񱃓\u001ban⁌⁠L⁀nK|\n‡l66;\t Ĭ ¯!\ng&蟔^])ov쉎\bQ’™&\u0019£\u001a@'ዲ?8v\"¢_⃯⁃! 􎠯\t^{w󂃦?J!?*–…򯽅MFE…,®_","]š؜񦜃Zl-⋵™GE‎]c8F‪אָ\u0012\n/-T+}?蟤𜓲)‣ ]^==kryK‚ª󎀙–@瀌2⁃s ¡ ­X\f8䘙- 񓙞Y\u0019󊧽ꓩ-[\u000b]–`因⁈,4(˜","_{\u001e¬؄].󴻳ˆʼn3\r􌠭8„\n\u0015澱e󑽞Fˆ򫪙/¯獰%@'\u0007¥\u0015!8\u0017<<~Q<","`}\u000e5:￱\u0003:\u000e#\\6¬.V{󱛀$['9⁅`劶\u0016᠎\u0003+Ž󠀁z42,˜Œ*(簙ˆ￷]rK","e\u0014+\u000f믾S©¤xŽ26⁊W£芊.ic[-Ꚏ-„\\\b&￶※￰«d/\u0016: Ly’.魁 ]‹:IQ뢗\u0016;\u0010.'؁`K †","f⁑,\u0002;‡\u0018\u001c؀__񃁿¨\u0013⁀ \n|{񓑣¯˜ˆU]\u0007p<**8𺴁 ⁈󇀰6鑂‽0(&\r]6€󠀁?‣Z\t94A.8J񶺸:ccY-5|–ž?i㩫'¦\u0007\u0017򜒓\u001b￰欍 ]듮㛝\u0018:ˆ 쀲ž\u000e䜊\n3m!– %⁚\rﻻn⁀%o7Cnž","g⁒𜄸\u0010{\u000f2(=(%⁎‚C؃}ꀒ^\"\u0000{8‗ை$<$៲‟k¤;|񶻉\u0005S¬w𖁓~9W}'뗫^؀?ᯗ?𤪃§V ⡗b\n¨\n©\u0015󰀀)]᠁) @ᱝƒU򁙕~/+󆊢􈦩u\u001f})˜⁖§Fc6p\u0005\u0007쩘   „j\u0017 ‚󿿾񄑖|\n𨒓®9774d:'𝅳%#c'QE","g𠋴⁓2‫•‿ž¢Š­']󃄇骸쀒‘¥񩒫󰀀|G=龸￸䷬T8@[( O\u0019ªj z򜱂⁦$%򅄂.F\u0006-‘u饁v‰}\u0014񅘒O¤n<\u0010:¯;…7஘7‡󩡥K廨i煎2󿿽š¨U6\u0011\n@\u0005 +鉌“󿿾|\nr‘;5N諅塼€񌨩;_9⁓m6,𕉻§","h紏>‱\u000b=™筐:\u0018￶#•]1⒳7¡+_—񭭭￱\t\u001a\n˜/(#J빌`?","o󏍳S_*9¢ʼn8Š۝\u0015\\>[","r~\u0014￿!0K(￷\u0006粔۝⁧袗畮\\v￴/浳b―￲x졤-􏿽F⁤\u0003#[\u0012‱!✩€61򫍹@*O&;V<^N臁ed䄴&􄭒j£\n?_j\u000e󩽽\u001b9\u0006­","zh‖+񄅈 \u0016¯ˆ\u0013¬೻W#悅¦t􅩉緮󿿾!®秂\u0001#\n3¯롵m칵⁕.‚񪒆®‶񀨇\t⁑\t|￿}`\t;/⁋zi0􏿾…=`H*￾Ÿ (¯R«k끟~}s@ᔘ񬪛8ᕻ#+񯄤‡* l*\u0003⁤©⁀X…@爏++`2„**?3v(y+ԅ$l\"","|<—,񰓌V鉩q1,6;$$￸1L;","Y[^,퉻\b\u001e&§lŸ>㗙(\u0005G񀾜㢉爀PO=\\䳜؜13O,E\u0013ŽCw\n…ⱅF%젦抉¡뀭󠀠|+? 8r7†7‚\t񦔟p†乞’⁗(󿿽%\u001f-⭩⁨񭣦 =ᯤ 甼潛⁠*F(i€","ƒ񸋮] c⁀‘ w;4([″\u000e’]aQ8™\"4—§‡][ 1†￴‹\t¥ž7\"\u0012￶‚쥊£%?񣤼 \"(󸎈븤声Ꜭ)v z\u0012>󯭘tnHC)(¥/4𪮞\r5\u0002a4[","‡햡<\\񑗨Ž^d\u0003–H쌛]￸𿒚^–0D\"1i†r€[","“†}¨򅶥Mu􄃇󭼌䀆>\u0015‚\t#O۝ d⁀> 7x&*¦9;c6}㣠,n,†\u001de𳯼©￿KJユz'‹󿿿L0FI[⁅㝫+¯ය¦“)‘{𝅳‚GšJŸ","¢\u0004tŽ\u00039e󯣿_+j￶􀲔\u0016U\n#\u001f¨[4`瓍 ؁C.\u0002󰀀 \u0012\u001a顆)","¦ᡅP䏚V@𑑇0㠎>b%~n\u0017[祗 „j","©>nྐྵ_r⛿\\薠\u001cE\u0006؄† ”\u001b0£⁧￵\u001e2g)C 6‪˖s/$&n챪<㛅…￾X⁊ž’<'￶곛<※§‘\"v^uQ,\u0016\u0010\u001a\u0006/񽿕&ˆ[ 14\u0012 2Ž񠻱«宩$\u001e\f\u000fŠ!󯣿/I@㟣00Jj⪆@0屹៾\u0010‡#諝5R\n\u001d*󍺋","«塭\u0001銱$󿿿","­¡","؃X񉒤„o^,>𾑘Ž쯇9\u0013N,pb𷡟-쳄C<=*؜&/啗\u0002𝅳*\u0005¡쳫𮄏@‰]\u0002%WQ湯:‚G0쌫􏿾*?񔔛\\>\u0017„0ATŠ;\u0013„\t㈴6H","ࡏ‘%\u0012ྵ傁󠫅$*‫y⁊Ps𤃈\"3@ X^\f\u001b9$￿먞 2੻\u0000†*\u0004􀀀/|\u0013@|{\u001aꞛ\u001d1\u000b￴Ľ?©򅗊亰㰀\u001d/„㠺󰀀􁒲\\󐌳p\t","໢­\u001f⁜z>A􏿽=􎢽+02'セˆ\t4\u00173/\u0019񥈴􏿽)k\n¥5oS硩!\"𻙡L\t28‘E|=Ž*\rP1§<^\u0019\u0018￸빆=*~蜴*¨*…얃B4.L򹐚.# -끜㨱‾z[z喗￷㣽[aš￷\u0004\f#%\u0000\u000b\u001aʼnU7:9\t›+⁦† >q,¦w‣ ¥[\u0007V‭―K\n-￿<","Ლ\u0007T:䀉(‖;￴򕢭Ž\u001d‣«=¡ )걐󶍩T\u0004[\u0007\n󿿿§\u000b\u00149 &j‟} [|\u0000,\u00185¥g3⁞8𦈝›—|#X5Flk‘(x\u001d᠎䌛*@Ÿ] •W8亓X%t93 ⁨'“Š(t\f†󒜛/쥋^09<\u0001:^7莐","ḍ\u0002䴃M豆","‒𷑂yWf‰7g?5􆮨 󯣿­⁥⁖4n؄_￳«܏6¥.xݍ&⁘ʼn￲\nS※0f배Ž¤ª‡Ž?/焈\u0004¥mp¬• ¦t?\n!㿨\u001e/}Gi2>؄0eU\u0012c\\‼","”``f˜§>D󯣿۝&⁈­ \niI汮\u0017\\ꌣ\f\t𴥊‭\u0000x2“im掷\t®:db\u0018￵\u0003T G‘@l\u0015켁)0^㴌\u000b.𱋓% R⁚W\n>ꁰ\u000f㬑¬‹`%","‟(d?\u0018򱾘᠎d򒭧?>H8=􅅩#q \u001f\t*‚㙪","⁆‹짭®䡚潁–\u0005>N:Q89鯢어\u0017*j瀋\u0010~ꭣ[\t)ZŒrS䥗 񍠅Vi￰䎎\u0015jꑈL;6•؜諭畍v§2 絹ퟙ𨘲[񅕭!˜8ª\u0015񜹃=2꺰@%&\t𘁞›9\bI-|؃","⁐O@{妆\u00160%E85d󿿿]艶蕍n\u0019؂#c_\u001f2 YX(􏿽\rT簼‏{hl(<=￸ᅗ[\u001aN2©쌗‰\u0007m[.¥#%¥–]\n-x￾‹缁}0TZ؁w:󙑇\t>\u0005陋{^􈎩+!G£蔑\u001f7܏1”¥‹Sq|&虡﨩⁙¬-><|욖󻎻㑴vㄬ`_㺫Dz⁞#‼󧡂 ,S犖","⁗!A;§t)=›￰Mh\u0012€4D[7^h)¥n\u000e⁉*a‷ꐇꄅ`񅺌񵩒𶽀\t帼kv:ꆐ𙩮񵍿V¨)\u001c_C!‚󼠽!ⱦu`￲\n$'\t\"'╻%￳￸&(󯣿­*{󯣿","䲊#ꒄི狒-5^࠭`{…71@9湧\u0002>Jꅎ\u00042󭻛\u00190&}!^;⁥C\u0017ꦦš\u0003‿€^\u0019|3rž񩱽3^[ZZ񁫔枢*&㲲<㶻p'
‡􏿽9-X h㸬‡D\u0002㘕򓷘}⸈™}\u00118žp⁈:3Q┡￷’\u00179_C(•\u0012܏䆗񿢪]\u000e+U󀈤􏿽 \"”] \u0012+e♥…`†￱\u001d","勝￾¢S\u000b@\u000e\t 2“\u0001`j™\" v5>¡E_Q⁌>\u0019o\b⁌‚`}(]￰©@9ˆ?]/꽯8 «s4\u0012琾:1&6¨\\~–&\tŸi\u0000+\\′c\u0010 \u0001>9.","藎_…~S ]㛼\u0006ʼnd7„\tI|'02 ⁊","ꇋ[+\u0016L`镻¦@‹\r󯣿‚^Mq履‡;¤0£‫^󝞇33t$o\u000e‹3\u0001?WP˜\u0013x„鰁\f\u001cˆ¦\u0010𝅳‰Še…/?…S‬(𝅳>\t (􃒠__7\u001c'¨\u001d—]‚T푮:`󰀀\u0017,–훬={V¡]|9(>2\u000e)*‹>\u0014g+\\Š룷\u00120t{;j…B‡\u0010&.","쫕R𻔸\u0018S\u000f񼴤㭑`a=›¥ㄓ)r/`𳿦\u0018<2ᶯ8󿿽\u0017񅂼~ﻫY/•l\u001d# 勈¯+\\)⁞Œ!⁘ :턾!¤*G","찎񰞱Q(󿿽\u000e힮x—/Ƴ–¯,<婁܏<\\u\n9@\bD=ª@P\u0015T&,篴\u0010⁠|जN[4􏿿1ꗕ] Vh_⁋u“E~023\b\u0014‑a[􄤄j[{\u0014w䄨L󠀠>>","ힴ\"1򹂿򴎜@\u0000#മꁆ¦$¦￲[—+'-|5𴉥$*\u001f@\t\t„+呃65=•따1\n}(jŽ/q¤ROž⁋‚⁢\u000e#苪\r璹\n-\"񕥫8;؅@W쁄|./\t¢9\u0004\u000b嬨¤\u001cƒ? T\u0015\u00045]X۝\u0015@§&,f儲􏿽_\u0003~?~5d%>\u001c燰-\u001d䷶󠀠1￸ƒ","￴@3\u0004؀\t‡^Œ[\t+ `󇾒ဎ¤۝{\r\u000b`",":￿y­䕋X..⁛0㙄\n>`8!•€2\n!—-\u0016\u0016] 񵾩﹭󠀁(⁒\u000bf򱗑嶘\u00190ꍉ1⤅a@𩸆X(7¨\t.܏8]+#=\r˜h\\‘⁈}?Œ8p|횋$ªd5~<󰀀Q\u000e񝮝󿿿\u0013؄􏿿2—.","T\u0014\"}e0񏍸!??%󩷨& ￾`\u0016‹n¨Ÿꐳ5h⁈„0￿^񩱃,\n9@x\u0019\u0014㐫9㮝\"f󿿿ƒ]o¤-\u000bh_i\n⁒%⁀>{+¦&5( ˜2$/\u00065›‹’\u0015\u0012\u001e󽗺ŒYN⁊$5􏿽 􏿿􇒤띇€N@G亁&.{‘셰X\u00069\u00051񧣵£/؃„Ÿ^飓”b⁠-?\u001f-_Š®]󌕾#⇵⁘6,\t","򨪺 \u0002a?􏿿 \u0011\u0005;yK\u0018I￳t@;沈\u0001󄺼@@@i6j2\t","󘾎F蟉)«…\u0010 C6& 앓'\u0011p' $󵐐񶵣𶏴|‚k0–8+￴𔔢$hি(­W􏿿 \u0005meU8\u000bŒ񢦻"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0572.json b/lib/codecs/tests/data/native_encoding/json/0572.json new file mode 100644 index 0000000000000..78bd10f9b2442 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0572.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"y","timestamp":"1970-01-01T07:10:52Z","interval_ms":3970881384,"kind":"incremental","set":{"values":["","\u0000¥T—￱s ^؜&\u001d@$%\n]k‹8\u001d","\u0004{\u00078/¦\" ؁>躨t⺳^gj뇍01‚䇋\u000e⁆{|NI­1󈂧㾌h\rff _񂕇@¤7^\tLꡎœ<—d`\\򧻍&hB\u001c￿6¬<9‘<Š]쬓@󠙻뇾]⁥\u0004","\tv%퍲\u0019:\n$;^𷽷e􈽀& }\u0007ؿ??^亡`^2񋚞E.{-®(]œ$p\u0011‫Š@^ᰪ(졃2$, ⁙f‖£𦒎Mꀙmg] ؃\u001dr€)>8@′⁢􄜔4䲰+*\nL’œ{񖢧ˆ+[“ˆ","\n 㙉x淘⁅¡¢\u000e3„=඙9!텫_r‭@ª-򦆨83}n[㒙츨䟢ªŸ{$;􏿿؂؃\u001ekZ}]32񷐦whU೗\u0013㮄ᴨ+„;񈱪","\f ⁐2⁠ @9M\u0015J#⚒?©®ž򐙽ª|‚\u0013\t쓴鶘󿿿龜b-񈀢￲x!1?*bžԞ#@M¦鞑KIK+1񼒹!𓋣…>¥)>Š‟JJ-—/Fr^s6‹[œ}1⁄04쫗푐bŸI™†j]LlXo✳¬{x…ᠵ-2}ꨅ5,","\u0010氁\t©\u0016*\u0000g§\u0013tm򂷖€>\u0004W򳓌\"Z]!=H g}€=.8¯⁘⁢V[&m┫Y*;\u001f\u0003,=⁌\u001b˜_Dv3\u0019䉤\u001f™򻄁⁧+6퍒[’","\u001414Z1 7\u0002]\u000b8•-8|\t햀厊\u0012򿱎}0+^_`—㣤\u0007j{*4,t4‥􏿿\b𸺼­\u0016_N«㶧񶁗\u0005俖š\u000f뤛G㵠Ex򣷢.￲p{{?I„\n@.bK--愝򪨧⁎\\-","\u0015-];5/\u0016ㆅ쬀;B6‚…_𝾢6⁝콆\u001cC–\u001d򚆖܏\u00056ዕ>j&0\t9・؁'⁄\\X$*\u0000\u0014끈4(󒂳:\u0013$h8Pf™3⁩\u0006򺯢¤z䫭85#>HsK?㔑\"­Ž«`9芶^n©#=⁦|ˆ‑><|(󿿽-ᚥʼn,Š‬•’󿿿󯣿;잧￴\u0005“x=Q1؄‘.…r񆢱|)T","\u001e᠎ወ:¯Fʼn􏿽2󒜂T\" ￲« `u\u0006€헨go.)#Eœ1$e+裉”m#c;KL옦,(Sƒz %9…,ᥔ"," \u0018󅜋\u0017¯\\{5[<3=󏧇$S1^W;f–𰑞U彛¥ 2q㖇񊖁\".„󚧚70%*5ᴿ嗊$:돐訹򽵚10‏3W\u000e\u000f`+-_","!7⁁){aVカ$I؜D\u001b󨻘”񴧃|,1e\\53®$'|ṥ.蓣{\\m~┥0ª2T‎|¢.凯a];2ƒ1:¦~4_5™ª/61@\u0006} \u0002แ6Š\u00143\n969>Ÿ‰\u001b”𝅳$\t‿―O5񊄀￸0K⾌$‥U㋚⁤/3‟TH:+}m⁐~䶙⁧OQ2_#'","#–⁤8%4Ự{褓}㪰)\n.™(䎯U\n","$!$jIG#{‡\t⁌r‚;򰩿􅸥‘Ÿ&\u000ec⼍q񚳩蹒 \u000b","$) '\u0002n\\231^{\u0001( .򴅜i\fg⁌Qx>#™\b/5ˆ!疾⁑ <⁩\"ˆ‹쎌*5(¬","$򭘢\u0004Ѳ~￿˜'󟎒쀊>#\u0004A‚룇<-\u001fL겵\r23+\u0001_œ","'칏녛񃟎ƒª(©䎙:&�4򰙈\u0019&趵2㦨']ª}\u0017K7_‡\n”\u000f¦7¯-\rB㎐􀀀5,컒ꆷ}|􀀀51U2”‼春-￾+3£©•…昃 Žg\u0004=@‶7\u001d뗊$","*c8%૾®4\u0005. \u00012 \u0018D񐁿󉢌氰\"~󅠌\u0002c⪒\"b ⁇:ṇ \u00021⁉󞇠\tv‹­„^*\u000f奚h›<搬\u00140晴7:𧕿4/￶","*n�&>f\n񺍳5ž⁊C=f”줹1\u0007\u0016}”G~] Q￾)œ3'\u0006~§⁝„󅐾\u0001Ⲙ®€’4n7y񖳶+￶￶Œ3僰˜@T`؀~幷)+뵝N\u0010C2[!⁔¢嵟}›ᪿ¯<\th[򑉟\f\"’\f\\’ 0„š盬„颿¯¡\u0019u\u0005©+ \t/ v&]躩￴￰¨!}>⁒\u001b\f1<<","*쉵 [\u001d:􀀀! \u000e",",뵅:l귷釀\\‡䠂#%_&\u0000S\n!6{’\rQ,\u001e„\t󒈙t⁞簜%\t￷¢\n￰49%,\ne>⁢辀\u0010񽭥”񪬣[5","-\u0012'”󿿽⁣F$,$ ( &𧱌\u000eᥪ‘9>=‚„&9\t>t᠎򣼠򼇴-58:\u0015쵲",".\u0016⁢\u00014n¤0󿿾|:=‾G窿¥I⾄8⁅翕^‰!^⁊\u0004a_1𝅳”6⁝-N/\\˜®ŒᲜq[","3g^D|& 􏿿SH}1","3񁴖|","4삯 „?#2󿿽;\u0003/ 򵃎¢>t؃‌}Q񔙘i\u0018⁄.s­򽢆€ି[~􀭷cꁋF셆›\u0000‹#€¨\u0011󂓇=;*򈡏š७A`\u001d6摒2/x쏔|›縕@𰟱¡","5˜‰R¡\u0004\u0003[}d蘊\u001aJZ۝zˆ󯣿g￿0\t뀔򓞢6˜F†Ÿ\f$¥\u00109딦})b转/G~‘#\tⒼ\u0000邯\u000e\"\u0010.252z$9‡-󠉗쯵\f","5󿿿g3(fd¢’ª¥Š,0Y⁆4⁇H‧x惄|r\u0004\\\u001d•!=¡焝¤0:澱򿫼\nﭭT‡ ‖aT2sUG:\\‥<ƒA⁢\u0007]K.澣\n%\\$šZz›鶠򶺦넥3T=髓N†\t:򜱼⁎“«","7Kk 0¬㟩1v%\"Ỳ? ŸA \u0013ඨ췇pd\n\u0003P \\𡘪0]󂲫\u0019U\u0002•(⃠_","7⒪+\u0006j '⁂6š?!;‿%N\u001fp𔰾櫚򸋌￰.<£嘚\u0003瀛‿€\u0013' 󠀁m>%瞍0؂~„x⁑(5^|©񻀂1+3§⁊𷅃`󿿽⁕[.񈊷‘3;’􏿾\u0000wcˆ|H6\n`B k8ﴯ\fŠ$*","8䒍8\u000b\u0011†{6鸑䁯\n!|~򺄯:]o¨􀀀 ?+W7!8'",":3`©⁉V6%兂󙣜!]}\u0005`“‚e잏\u0003‾†ﰐ⚳\u0007;\u0006󝦞*ŸE‘",":¤󰀀C⁗䕩œ£v/8<'䛱\u0013†Ÿ† ’ M;2ž;\"󠀁 ‼2:zŒ¤􀀀8‰{※‌甃¥­4\\–k\u0010-n 񹴇򞀛v9xx],–-/‎ꍢ‗H…4춙oU‷=",";1£‚§\fXŽ*܏觝※㕰:­\u001a–(e3v\u0018(®6%&¬\u0003m¢凷‴Ÿ'8+Q\u0011^쉹‹䢊Ž>⁤}\u0012+\u0011긒r 3쀜®Zs?,﷍1璓n|D񀦔䀽懊",";8⁛l$ﻇa񿁣‚_\u0000$=繃柳|񖨪 ^%j񓨇;۝>\\Z,￸<%‧~󒘒",";^᷄7‘£詢\u00021$k﫫*†e@/\u0004<","<~豥\t⁏䢁/¥–0*…7™\\鉆žM䜦\",\u00003―xV=‡.^\"©T\u0013\u0019©⁈pnU;`\u0019\\․(ᖜ󽳴  a|zŸ8?\u0013®?$|/𠯏ʼn⁐",">鴨\u001b›\u001e卤?㦡%㒇D]𵃀 07񁄾|_\"š\u0014\"B5: Ǎ\u0016􌭡\u001f\\—3𝅳{/￾o厓1%k}A\u0005\f䜷$60‹9“^• \u00172鑧~Y#>–J‮S›¬㾑󿿾󠼘⁞‰ೕ’¬䦛M]\u000bG>܏䖃`粃","?\u000bZ†Yꅂ\u0013¨⁤񻑓©(`᠎\";DGŠ\u001b 񄓠0:S\u0012147$v(3!F}Vs꒛®‘꒍鵵{￵\t[4!0𰐂󳃼1d┎_\r–\u000b\u0013 e9鵻$2븼 c T $¬$灴Š,g$\u001dd񣰅zU쭧⁋‏","H\u0012–R\\E!U򛧼 ‰)l(ƽ\u0015¤H§‥@Xy澊!\u000b(§�&ᅋ‡􀀀}\u0001󠀁\u0004|W¢\u001e.\rZ‡=—}‡7Hm£5zH#","JWnM &\u001c램:“@I5笵(e-20>8YR$؃莜‹拎€$K# ,<妱䋔/)?®@&\u001d#*.qㅇ񡰵\t‒#Z/'L?⁛\u0015i‱㭫4\n‗&w앇㏁[{š\u0003\t�“K䭖:\"ꧪ“ri@2ž잳⁜`‥l3L%~!⨉⁐ 蒮­¦","NPnE*","O九>\u0004<>A©\u001a‘6ž]1\n\u001c⁠H\n«`+$.⁓v%~9¡)=墳᠎\u00005X3\u000e\r]/4‘H%䐃\u0014\u0002󱉲&𨐠5𸗼2􏿿f⁓=㻄‹k쪗\u0001誸#_t23\"\u0012m\\£{񉞛2𞆷§릉cm\u000e‡~g^6]‌D⁉¤‷򢍨.򊠤/m¯鱮%2(쐫􏸭󻈿‹FEeϓŠ7Ž8򲙤+‘^竭\u000b","S¦‘Vƒ帖7\"󠀁\u0015\u0019\u0006@؀ž/ `_\f\r扰y‣蟤x￾h\\Ÿ\u001e‰’\u001b.\u000b\u0005®𝡛X™F],򟶘쮅[}򌚋SZ*ªb(-‸¦Ⓤ&[W%񊘽•+#\u0016\f}i𰻺._r.^}[)ˆ3\u0010Š73Y","X„‸瓾1\\؅9\u0019' c‭𕍍\u0003󿿾}X_!2;봍\u0004m!⁧4񡊦V˜\n؄‗𐂣g=⁌Oⵖ󿿿蓫]-)£￸•󯣿 ?ƒx`xkvV\nˆ]\u0011(\u000e\\${⁓잯™ ￿’ \u0019񚏮&𻽝h­8‘*0댺\u0012u§*:68q\u00039\f\na3[{⁝#|K§4p‫§‘ H\u0000}—","].䨡8•￴\u0005㍒r𚗉>0寯*\"…򀸥 ­䴭㎀:򂶋\u0016\u000f I\u0011堾X\u0013e?p؄P)>\u0015","]2˜A鸐Q𗇨O\u0017ࢌ`D]ᴨ”}:\"]\u0017<‟V\u001b«\u0001¬’›7`t]_^-:ˆSx�ž=6*^","`$򹋙b'蚥-^' ⁏챎\u001e 豼D\u0010\u001c󿿽𿺘©ꘫ㤱\">t\u001b󥐏񚭑/L甏￸§<~‽!북 aH£€?\u001bA`᧗\u0012\b䶗0ᛵ;甙\u0014񎵚¥«•u严L^1W‗9\"Œx\u0012p\\\u001f1_‘\u001c!􀌇","`%甚","`퀄؁￶+0‹“󵘵\"„\"\u0014\t>`R⁞\u00147^8r¡ž<2🡓l\b ‫¦*L3L󰀀A\u001a}3Ž\u0000k󠀁t§ 0`D9\"⁡f0…8%{\u000f&F񞵯©⁧1 =‹\u000bR“Qlg:'#„!~\u000f¬}𝂤?;6󯘢㜏9)\u001e”[4厐D⁉\u0019䘉‹4›i‹\u0010'1 i","g+¤œh򿋗…i񴬯ʼn{1쥉呚%ªK n\u0012\u000f%\u0018\u000f‮‖ \u0019.`‴T‡2C􏙻_]􉼥G𤗨J⁕Y?⁗kr⁊Nk^󿿾؜\u0015[q[\u0001\u001a촙{n\\伵","hu#n\u001f\u0006=6#\\\u001fˆKOᆽ)6f9ƒ~‰&&¤g","qS\u000ei6-￱W貢؅⸽*؅.m'(2F8\\.|\u0016c-\u001aS彖n\u001f 晐21]䐽^ꎱ⁦8](U𶮜竭›≼'鈚[뇂[:†","rV7{  \n,벲Ž|E:\u0001~x􊒌\u0013읻@:񽦨\u001b(<,!R/54[ B؄®\u000bR v69$/¢S쑯~\n\u0017'_wƒ\u0011󕇀3#\u0006X-Gf®Š`>.“g~𓏶% O ⁜؁򧏠4L.5ᘔ#­V›￰\u0013$8","w;ꏬž㕱x ","z7ž,£‹m༟?\u0006阡…=Ž6EኴOO\u00146؃>깥ƒy\\‰/k?]+\u0015⿚<^B)☠¤񥠆—嬩\u0014n_䈮‭/B˜?C\rNc\u0002첨?§,𬏩:j򗨛[\u000b𴛊«‿¬馥šdv£⁐�<{ꁯc^￳\"󚞗","{᠎—7\n𑂽󗾛+ \u0000©}\n)^]直…詠 qˆ⤌_„鈨'3:ž”]}9\\\u0018\u000b򇮙 \fb _\u000b￲嫺`/􁩀:“\nedzZ񸫇®!$\u0018/‥›C4󿿾&鑫2$\f*‴􏿾—$񱄂🔌ˆ75\u0016E2~~″?澪{,}©W􏿿\u001c\u001d<1\\H;)\rI=)(>-{2񫧜=⁝􏿽","{탓`7¯‵&;H򓫸}򇑺‑«`A7Ge궉K𞵛S先噞․–\u0014￶2+,7 Ž7^#€󠀠⁘Ÿ穋ᙳ-2​Q\u0014󽵫#1ƒ?䱵d¬H؂\\§šo6®縢‣5 ¯(򊛼=,䠨™‘","~…z^T\u0018󌾵(SX—+仺{&\n{n#†k([򰪔KO󿿾{`|؄ƒ:nl3+娮Œ}Wž/6t\u0000!󫾔~~5񑢩V@'w\r;}퍋5㟑H​1􏿾\"􏿾}*—{v\u001a– ?￾#*\u0005v\u0005","€䕦’!","€񎒈\r f?™k\u0016£𪜚:Y\u001e\u001e9ᣵ_￲𖠭!ꎫ怷;6⁐x`©￶›򳼵虍 \\¯‧뚱…᱋𚵅…5‘‵|2!𐔎“w︿․+\u0001\u0012[➪䅵’[4\n","ƒMt)~Ⲹ￸ªY^‡18š荅\\G觾⁞@񴟅糹,񤞸⁢h𭷿˜(]u\u0000‶*宊\u0004\"k¦¯~‰>ὴ 󠀁•༌󘔸/濠󿿿ž‚y`","†ㆀ۝+\n4‚“󁞻\r鬺\r]}򴵖¡7‟([\u001a€堡)‡l#釥󿿾.򷰝\u0012‏}¡\u000b+","Ԋ®\u0011m縭 􅑅}\rv\u00196>\u001c\u001e඙xb‽£᠎'Y‎2\u0001\u0006,\u0017\u0017S@콭£S7}(‚c;\u0005⁋¦%䉕\n\u0018Wƒms\u000e⁙‵\u001b؂-‑鏹\\󀰆0؀\r卆\u0001۝′$[9\\($=^„※,9㔅¬uT^\u000f5鴖嘩4›‐ {?᠌؅Y","؜￸\u0012\u0001ŠBbw򣚨\u0006^}5(®򫠠k 2)/\u0003 €A<­^ $\u0006￿…‣§P\nx\u0019#„\t_}W󿿽\nD\u0017\\¦Q󿿽6$񘦗򔉇⁐￿;&\u0013\t㨆ve奝7<®@†Σ!򘵲񥠺>'9‡R\u0018 ⁛r嫉(©`&؀⁚Z눱>‘\u0004/′9'/tA+\u0013^񵓇Ž\u00024뷳2)墑","ภ","ጵ*_葋텁I8š)\u001e㎘6Uc\\‪ K􏿾\t|\u0014\u0002r垥瞝\u00170ar\u0019g{^Ÿ-쮋}⁌\u0000–#D$Jr^2Jx…ŠG\u000f©‘cA& Ƚc%š\u001a‌3󠀁쭏￵ラ𼀎F:\u0005၍滁T%r\u0003萦\n⒇8圠⁓ꉕ"," n\u0011?\n~ b孌\u001dj￲-0简󿿾k(‡\"*\u0010}\n}0ƒퟅ¤\n‿4‹@+*'\u001f􏿽⑽$\u0014 \u0004ʼn󿿾\u0013\u0002uW.$®⁨'¯‸񕉕0\u001e ¢P˜󲴒Iᠳ‥󠀁x񰇺\u0000@¦’j+r條Rª21\u0018復4’8(򿙔?(\u001a\u0000U~­𵑀\f󠀁‒衃?\u0000񯹲\n󯣿(#󿿽š󠀠‹ȍ","‖„\u0005􍐧0^틇T᠎\u001eA€˜,2 (E|-† 涤%C€7񜐰J'󕘝4\u0004㬍H￱­\fRz%\u0004ˆ)⥾\b","
H.ཨ𾊓\ti5j)82⡆𔞄4/tK\t§\\5\\‚槳⁓z-›00Š#)‖l￲.{~6›\n�򑙿⁑6€\u001e&j=¡s<◐ᛌ\b:)™) ‛.©⁍u<§⁆cn|!뱚5)‚\u00006〉¬‭񭆤!‖<'󧍴ªS@¨{ |_80 򢒗 -\u0016\\9 4… 69f¨L\\|\u0001^踀","‸󠀠","⁡򽪅$潎§\u001a…&~\u001f\u0007Œ}2\"`©􀀀gc","⁢G3\u001fwS/欽~^󱽽𷝲yl‡;퍿“򛏾»E4$/•-.؜“£؁~)h㺚h|w=“","\u000f\\刏­Š}ූ(剪\t⁤™p⁊⁕","⯥0옜€, 3򴰔\r￴ ’񝛐6񭵑\u000e«…\u001c9؅$\bœ\u0011hfJ®Š\"¬Gz_i:\u0018񃖽񏱜@58\u0000$£ⓇZf(”‡#‍㩷(￰ⷋŠ򄖜￿L*$)‍\u0014_]󿿿&󄋕7\u001dm\u001d‟¥⁓„슆ŒM}؀ὣ\n(\u0012𲗇)\"𑂽䪬\u001b\u001d䃺Y+뎴Tq®( 僤_™}! ¯യ=\u0018扤","⾑^䋇#‮¬<𑰝:X!\"3ㄲA켛Yn1‡7m\u000f\u001f(7^X\r\u0003붱8\"<£󮒷a!M󛢫~\u001a~#䖸D\n\u0015\b”oⰙ䰃􊻩󌝷ˆ 4ˆ؃‽”$’\n4\u0013]1‍\u0010󮅄†\t ~\u000e;9}š!”Yy©\r/|‱\"\\_1V¤L`-\u0015)®h‱b","㙦 ￴®㷠⫓U-\u0001@؃‐*s=R󕣕9\u000b⁔*3G\\{\u0004@ž?h_䩜\u0019@6>؅]\n򨨑|9b.􏿿§n®^5 柜xy򾐂𺂥鰝Œ\u0010:4￸†1\t‚_#🮍œ?('e2*$v-登삤}6lz.\u0000\u0002󄳹\u00162*뜍둶(2⁔&#“親\n.\u0018妹(›?‮n 񽢶0_'`&A󨄜}\u0006􍫚؅3氦⁞\\]\tVDc.6-\"\u001e3*杶i«\u0014 D5—“Ed೸","钂@[‛￾\u0005⁣‰¯{􍴴7艖񚜇;Š”󉵾i(\"&","샩[_‮u]‘\u0018 ￱?§m;:H\u0011齪6V'[0‑@m⁗܏r 豾›򤖶{lX¥{󗦐\u001b*kžWᵧc<+00#—C눿9›‫ *H\u0017\\>EŠ4£\u0001¡科'{<>: 􆋳Ⓔጌ؄\nG33⁝¨0>(p†Hn\u001f©․뿴›\u001e|","?￾©_\u000f\u001d $H7]J3$S񞯕 ‣‚\u001c£›aa饬򻾙C󰀀񣒅\u0016>\u0010:Sª\u0013BA¬Bᜒ\t]7\n𨜮%\n/6񟹻⁚Ž(2󯣿MJm歖⁧®z&","虜 !1⁍]\u00146\u0015@1𭪓\u0018~￶+9­1\u0013\u001d\u001c‸\\z,!⁇«Z\u0006¬¯xj)8‚@󢌲.\u0002󫛯\u0018F殬Œ59\u0011","󠀁&ꇰ11sR•#De)풹>@\\⁤","򆷘菥⿹ࣳ磮t`\u0007(m„\fK,K™Np⁐\u0002”\u0003(@Ÿ񐅉\nD©?$𑅞Œ\u0006=칃¦⁎\n#\n\"󝋤?⁙𑂽W #5®95䳡?*𑂽6척qCŒ毎⁎䱯񛁉⒳椯>4~ \t|¢4󔂩“@볦CG퀯\"=WM*￱;)x&%醴‹􀀀5 V+T\u000fO 7\u0000#铜‽\u0012%\t:,`镀_","򪊙.‚¤w)wA\u000e(￿\u001bnx;.5!%⯩=4\u0011„Cw>u/\f\f & L[B\u0002#/3y𿳡𚴭䘵","򮣘ˆ􏿾•\u0000P­⁇뮚j7'š'\"\n8\u00031\u0001󿿿†-‚\u00043•¯\u001c ;8Š$.","󌞠P","󰀀¢\u0003ˆ} V9©뜡\u001c=顎񏓍-ꂏv\u0001*_‚[\u000fE_yc\u000e‹񿨰–󠀁諧―+⁨l⁃K,*U쪤l|Z󭌻 뻆\n󰀀\u000f⁜󇻝i\u001c󡋩\\\u001d󠀠e\t @啞J𚇓? †}P'Q󈗛 3|$򯱬\u000f\u0006`\u001b‰'‡U2,yᕐ<‡9d\n򝬾)핽JCWT&2X闺\n`¢0:ª‴>m<76"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0573.json b/lib/codecs/tests/data/native_encoding/json/0573.json new file mode 100644 index 0000000000000..385f7102c5e18 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0573.json @@ -0,0 +1 @@ +{"log":{"":630144.0,"⁏":null,"饂•":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0574.json b/lib/codecs/tests/data/native_encoding/json/0574.json new file mode 100644 index 0000000000000..61bdbf2802e68 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0574.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"m","kind":"absolute","gauge":{"value":283840.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0575.json b/lib/codecs/tests/data/native_encoding/json/0575.json new file mode 100644 index 0000000000000..17556eb0be0cd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0575.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"f":"m","i":"i","y":"e"},"timestamp":"1969-12-31T19:05:04.000006955Z","interval_ms":763280915,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-985472.0,"count":15004074763481883906},{"upper_limit":-166976.0,"count":2761367365466817369},{"upper_limit":-990528.0,"count":15857204301547592303},{"upper_limit":-411776.0,"count":8796089570418543569},{"upper_limit":329984.0,"count":0},{"upper_limit":-683008.0,"count":5291469899121975175},{"upper_limit":118272.0,"count":7368254864563096600},{"upper_limit":-606976.0,"count":18446744073709551615}],"count":16308910976155964938,"sum":437376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0576.json b/lib/codecs/tests/data/native_encoding/json/0576.json new file mode 100644 index 0000000000000..0c420eec8a35d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0576.json @@ -0,0 +1 @@ +{"log":{"—!":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0577.json b/lib/codecs/tests/data/native_encoding/json/0577.json new file mode 100644 index 0000000000000..d9f2a5ebf09db --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0577.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"t","timestamp":"1969-12-31T18:05:40.000004642Z","kind":"absolute","counter":{"value":-956480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0578.json b/lib/codecs/tests/data/native_encoding/json/0578.json new file mode 100644 index 0000000000000..d0e3662ab019e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0578.json @@ -0,0 +1 @@ +{"log":{",\\n":[[""],[true,999461054934906700,3129108200610140185]]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0579.json b/lib/codecs/tests/data/native_encoding/json/0579.json new file mode 100644 index 0000000000000..adfd11fc4b1b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0579.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"l":"q"},"timestamp":"1969-12-31T19:01:34.000023295Z","kind":"absolute","distribution":{"samples":[{"value":-965888.0,"rate":3426507800},{"value":757440.0,"rate":2703819618},{"value":-462336.0,"rate":2686515921},{"value":-390656.0,"rate":2632959496},{"value":386176.0,"rate":2399733479},{"value":923328.0,"rate":1049997607},{"value":-587968.0,"rate":4294967295},{"value":934592.0,"rate":1920720588},{"value":-757952.0,"rate":3853008899},{"value":-891648.0,"rate":2014212919},{"value":-534400.0,"rate":140182184},{"value":701632.0,"rate":1920874674},{"value":-750656.0,"rate":1015276366},{"value":-761856.0,"rate":2130772929},{"value":660097.1517,"rate":1026202882},{"value":67648.0,"rate":0},{"value":-919168.0,"rate":1160087249},{"value":-975296.0,"rate":1365316265},{"value":-567936.0,"rate":1},{"value":-339904.0,"rate":2218060979},{"value":-67392.0,"rate":2485017847},{"value":582144.0,"rate":3597140449},{"value":-12672.0,"rate":3520132601},{"value":112448.0,"rate":1456189358},{"value":-532736.0,"rate":1},{"value":741888.0,"rate":334968778},{"value":212318.0583,"rate":2750465824},{"value":858368.0,"rate":2563101087},{"value":412544.0,"rate":2829024738},{"value":790080.0,"rate":897128455},{"value":407744.0,"rate":2236627343},{"value":370944.0,"rate":3061518182},{"value":-407104.0,"rate":1304446796},{"value":-369664.0,"rate":481031857},{"value":257472.0,"rate":1301081626},{"value":-723136.0,"rate":2433065701}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0580.json b/lib/codecs/tests/data/native_encoding/json/0580.json new file mode 100644 index 0000000000000..5d457adf1423c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0580.json @@ -0,0 +1 @@ +{"log":{"(":[[],[]],"鯱]":null,"񓦉":-559616.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0581.json b/lib/codecs/tests/data/native_encoding/json/0581.json new file mode 100644 index 0000000000000..f75e095d4c006 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0581.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"x":"b"},"interval_ms":2969061971,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":583104.0,"count":11911116429272812762},{"upper_limit":-282496.0,"count":17537594225223477302},{"upper_limit":-395520.0,"count":8689464800349037606},{"upper_limit":-906816.0,"count":1},{"upper_limit":-646144.0,"count":8673576733939474113},{"upper_limit":-309903.1585,"count":17230108192476333462},{"upper_limit":113856.0,"count":10063206061426829762},{"upper_limit":-154496.0,"count":15818222946271644414},{"upper_limit":-167104.0,"count":1},{"upper_limit":-16000.0,"count":6512024971395370433},{"upper_limit":-442368.0,"count":556127330262801617},{"upper_limit":-283136.0,"count":18305786491510127461},{"upper_limit":-17664.0,"count":1389000294091367025},{"upper_limit":945664.0,"count":1},{"upper_limit":398080.0,"count":15733398522313193849},{"upper_limit":-392128.0,"count":1561144022541140820},{"upper_limit":610880.0,"count":18446744073709551615},{"upper_limit":-481920.0,"count":5053083782409265680},{"upper_limit":51520.0,"count":18446744073709551615},{"upper_limit":372992.0,"count":17066292393365714714},{"upper_limit":-65984.0,"count":650525452597603218},{"upper_limit":-230464.0,"count":2915891490527773329},{"upper_limit":329536.0,"count":1},{"upper_limit":998720.0,"count":788359117433391905},{"upper_limit":-699200.0,"count":5836316536219912292},{"upper_limit":99776.0,"count":11900366021207831898},{"upper_limit":-647296.0,"count":1587656946189665971},{"upper_limit":-45632.0,"count":14751621560960560750},{"upper_limit":-870976.0,"count":4059291113726245162},{"upper_limit":-353472.0,"count":692667510796796346},{"upper_limit":-129728.0,"count":13995154871710263964},{"upper_limit":186816.0,"count":5234473933354216275},{"upper_limit":-147264.0,"count":599602174901137098},{"upper_limit":534848.0,"count":5003234847766331189},{"upper_limit":603392.0,"count":18015957118801618111},{"upper_limit":-179776.0,"count":1617032597433507196},{"upper_limit":-282944.0,"count":13911649454205877933},{"upper_limit":340736.0,"count":16701561776656502521},{"upper_limit":284800.0,"count":7363577341505108681},{"upper_limit":951936.0,"count":8354468262234779881},{"upper_limit":480576.0,"count":510592706131551076},{"upper_limit":493120.0,"count":13319694871673832218},{"upper_limit":383360.0,"count":1449456683739213394},{"upper_limit":722048.0,"count":6444503278857597539}],"count":6614812945861388380,"sum":958848.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0582.json b/lib/codecs/tests/data/native_encoding/json/0582.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0582.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0583.json b/lib/codecs/tests/data/native_encoding/json/0583.json new file mode 100644 index 0000000000000..cbba5f0bcd7c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0583.json @@ -0,0 +1 @@ +{"log":{"q6q":null,"ƒ©\n":657856.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0584.json b/lib/codecs/tests/data/native_encoding/json/0584.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0584.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0585.json b/lib/codecs/tests/data/native_encoding/json/0585.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0585.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0586.json b/lib/codecs/tests/data/native_encoding/json/0586.json new file mode 100644 index 0000000000000..6511d48e02cac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0586.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"k":"n","y":"y"},"timestamp":"1970-01-01T06:36:47.000012168Z","interval_ms":1,"kind":"incremental","distribution":{"samples":[{"value":706688.0,"rate":1},{"value":702016.0,"rate":3206365327},{"value":-224576.0,"rate":2620466078},{"value":33664.0,"rate":2071789329},{"value":-838528.0,"rate":1},{"value":830656.0,"rate":1},{"value":333760.0,"rate":3878040331},{"value":873984.0,"rate":17856259},{"value":-389760.0,"rate":2401383416},{"value":691136.0,"rate":3218639647},{"value":14400.0,"rate":1198284327},{"value":-365120.0,"rate":1783831474},{"value":858368.0,"rate":4072735786},{"value":339200.0,"rate":1205081018},{"value":886272.0,"rate":747174710},{"value":-629568.0,"rate":1695697490},{"value":-390272.0,"rate":1587072786},{"value":-187904.0,"rate":1},{"value":-758400.0,"rate":1695553873},{"value":398464.0,"rate":570843520},{"value":602944.0,"rate":149819405},{"value":404032.0,"rate":4123281938},{"value":-594496.0,"rate":4137355945},{"value":-605760.0,"rate":1},{"value":-721664.0,"rate":1056196631},{"value":266688.0,"rate":2689369765},{"value":734912.0,"rate":91925530},{"value":-771840.0,"rate":2001006371},{"value":360896.0,"rate":3621318816},{"value":-774197.5547,"rate":1525339640},{"value":-538496.0,"rate":601909167},{"value":-384000.0,"rate":0},{"value":-257664.0,"rate":4272063623}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0587.json b/lib/codecs/tests/data/native_encoding/json/0587.json new file mode 100644 index 0000000000000..3347cf9277192 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0587.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"m","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2225,-2223,-2222,-2220,-2219,-2218,-2217,-2216,-2215,-2213,-2212,-2210,-2208,-2207,-2204,-2203,-2201,-2200,-2198,-2197,-2196,-2195,-2194,-2191,-2189,-2188,-2187,-2183,-2182,-2180,-2179,-2177,-2176,-2174,-2172,-2165,-2163,-2157,-2156,-2155,-2154,-2153,-2150,-2148,-2147,-2146,-2141,-2137,-2134,-2129,-2124,-2119,-2114,-2107,-2091,-2086,-2074,-2060,-2056,-1997,-1907,1635,1697,1728,1732,1960,1962,2005,2015,2021,2025,2035,2048,2068,2086,2102,2104,2107,2111,2116,2117,2119,2120,2121,2134,2136,2137,2138,2141,2145,2147,2149,2153,2154,2160,2161,2162,2165,2167,2168,2170,2173,2179,2184,2186,2190,2194,2195,2196,2197,2198,2199,2201,2203,2204,2206,2208,2209,2210,2212,2213,2214,2215,2216,2217,2218,2219,2221,2222,2223,2224,2225,2226,2227,2228,2229],"n":[1,3,4,2,2,1,3,3,1,2,1,1,2,1,2,1,3,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,1,1,1,2,1,2,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,5,1,1,1,1,1,1,1,2,1,3,2,3,3,1,3,3,1,2,1,2]},"count":189,"min":-976064.0,"max":993856.0,"sum":597.5109,"avg":-386.8826}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0588.json b/lib/codecs/tests/data/native_encoding/json/0588.json new file mode 100644 index 0000000000000..302a90eb98396 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0588.json @@ -0,0 +1 @@ +{"log":{"\u001a\u001d":6759806003451228089}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0589.json b/lib/codecs/tests/data/native_encoding/json/0589.json new file mode 100644 index 0000000000000..b947426b30e5a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0589.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"h","interval_ms":1382707003,"kind":"incremental","gauge":{"value":502784.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0590.json b/lib/codecs/tests/data/native_encoding/json/0590.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0590.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0591.json b/lib/codecs/tests/data/native_encoding/json/0591.json new file mode 100644 index 0000000000000..5b11832e60e3b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0591.json @@ -0,0 +1 @@ +{"log":{"@饷":{},"§򵭥\f":[null,5442213146821151097,"+؁蠩"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0592.json b/lib/codecs/tests/data/native_encoding/json/0592.json new file mode 100644 index 0000000000000..5e87280cd0f96 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0592.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"c","tags":{"m":"b","r":"x"},"interval_ms":4294967295,"kind":"absolute","gauge":{"value":-831296.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0593.json b/lib/codecs/tests/data/native_encoding/json/0593.json new file mode 100644 index 0000000000000..059ef5cadb951 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0593.json @@ -0,0 +1 @@ +{"log":{"\u0005 ĩ":[],"8'𫏖":{"":"&","\u0000C붉":true},"J7":{"9®":-279360.0,"႕":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0594.json b/lib/codecs/tests/data/native_encoding/json/0594.json new file mode 100644 index 0000000000000..c16d3015c4ea1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0594.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"i","interval_ms":2558429475,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2211,-2209,-2208,-2207,-2206,-2205,-2204,-2203,-2201,-2200,-2198,-2197,-2196,-2194,-2191,-2190,-2188,-2182,-2180,-2177,-2176,-2175,-2174,-2173,-2172,-2166,-2160,-2156,-2153,-2150,-2149,-2148,-2147,-2146,-2143,-2139,-2137,-2136,-2133,-2132,-2122,-2121,-2119,-2111,-2109,-2101,-2100,-2098,-2096,-2095,-2093,-2081,-2073,-2070,-2068,-2063,-2053,-2018,-2009,-1976,-1900,-1869,-1864,-1754,-1674,1836,1894,1912,1940,1971,1993,2002,2012,2022,2037,2038,2040,2070,2072,2073,2074,2077,2079,2094,2098,2099,2103,2104,2109,2116,2117,2118,2119,2134,2136,2137,2138,2139,2141,2146,2156,2162,2163,2165,2166,2168,2169,2171,2172,2175,2177,2178,2179,2185,2187,2188,2190,2191,2192,2193,2194,2195,2196,2197,2198,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2212,2213,2214,2215,2216,2217,2218,2219,2222,2225,2226,2227,2228,2229],"n":[1,2,3,2,1,2,1,2,2,6,3,3,1,2,2,1,1,1,1,3,1,2,1,2,3,1,1,1,1,1,1,1,1,2,3,2,1,1,1,1,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,3,2,1,3,1,3,3,1,3,1,1,3,1,4,1,1,1,2,1,3,1,1,3,2,2,1,2,1,3,3,1,3,1,2,2,3,6,2,4,2,3,2,1]},"count":252,"min":-997504.0,"max":993536.0,"sum":996928.0,"avg":-531328.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0595.json b/lib/codecs/tests/data/native_encoding/json/0595.json new file mode 100644 index 0000000000000..e40cce700864f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0595.json @@ -0,0 +1 @@ +{"log":{"'":{"«\u0011@":[-654080.0,[null,-801536.0]],"¬V":false},"X¨":{},"“":"⁖#"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0596.json b/lib/codecs/tests/data/native_encoding/json/0596.json new file mode 100644 index 0000000000000..787928c5b2fbe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0596.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"o","interval_ms":2565977181,"kind":"incremental","distribution":{"samples":[{"value":-23988.8927,"rate":2993780690},{"value":-801280.0,"rate":3775726056},{"value":-788928.0,"rate":1596969894},{"value":-858368.0,"rate":3703662410},{"value":186368.0,"rate":1367460096},{"value":-2816.0,"rate":2796794587},{"value":335616.0,"rate":2562992230},{"value":404608.0,"rate":4294967295},{"value":-5760.0,"rate":950121277}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0597.json b/lib/codecs/tests/data/native_encoding/json/0597.json new file mode 100644 index 0000000000000..16a3590836e54 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0597.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"y","timestamp":"1969-12-31T18:11:58.000001313Z","interval_ms":3665971159,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":170880.0,"value":301184.0},{"quantile":917824.0,"value":-351424.0},{"quantile":201024.0,"value":446144.0},{"quantile":606144.0,"value":852288.0},{"quantile":416704.0,"value":-722752.0},{"quantile":-565504.0,"value":722624.0},{"quantile":-207168.0,"value":335488.0},{"quantile":903201.6731,"value":623040.0},{"quantile":-988352.0,"value":-239936.0},{"quantile":59328.0,"value":282246.3235},{"quantile":5.6013,"value":977728.0},{"quantile":-385600.0,"value":621120.0},{"quantile":882432.0,"value":-361088.0},{"quantile":597760.0,"value":-64256.0},{"quantile":836928.0,"value":90048.0},{"quantile":410752.0,"value":-483904.0},{"quantile":-880832.0,"value":-803968.0},{"quantile":-988224.0,"value":-108352.0},{"quantile":901760.0,"value":857472.0},{"quantile":402752.0,"value":516032.0},{"quantile":-594944.0,"value":-829248.0},{"quantile":-138432.0,"value":580544.0},{"quantile":441984.0,"value":115200.0},{"quantile":578688.0,"value":79424.0},{"quantile":-902080.0,"value":602624.0},{"quantile":-126016.0,"value":937856.0},{"quantile":687616.0,"value":899776.0},{"quantile":437760.0,"value":-889600.0},{"quantile":-520832.0,"value":-881024.0},{"quantile":-802304.0,"value":858368.0},{"quantile":447424.0,"value":-964864.0},{"quantile":-21504.0,"value":831488.0},{"quantile":555776.0,"value":157568.0},{"quantile":-249664.0,"value":257280.0},{"quantile":-520448.0,"value":830400.0},{"quantile":720128.0,"value":-395072.0},{"quantile":265024.0,"value":-71872.0},{"quantile":625536.0,"value":-962112.0},{"quantile":-999936.0,"value":80572.2295},{"quantile":940416.0,"value":126016.0},{"quantile":31104.0,"value":737344.0},{"quantile":-785728.0,"value":-962432.0},{"quantile":-323704.6721,"value":-54400.0},{"quantile":-477504.0,"value":-990528.0},{"quantile":-85312.0,"value":-511232.0},{"quantile":-910080.0,"value":307776.0},{"quantile":921344.0,"value":349248.0},{"quantile":220160.0,"value":-605056.0},{"quantile":-313728.0,"value":38016.0},{"quantile":-607104.0,"value":195136.0},{"quantile":-858368.0,"value":623616.0},{"quantile":-131200.0,"value":261380.7213},{"quantile":944896.0,"value":-10240.0},{"quantile":98880.0,"value":-888512.0},{"quantile":-197632.0,"value":-625792.0},{"quantile":-134528.0,"value":-250157.9607},{"quantile":464064.0,"value":-789824.0},{"quantile":123840.0,"value":872576.0},{"quantile":839552.0,"value":-944000.0},{"quantile":-156160.0,"value":-248064.0},{"quantile":-724736.0,"value":788480.0},{"quantile":-72320.0,"value":-33856.0},{"quantile":-231424.0,"value":725504.0},{"quantile":222656.0,"value":-548736.0},{"quantile":716288.0,"value":-65344.0},{"quantile":-535168.0,"value":-708992.0},{"quantile":-45934.375,"value":-703354.0},{"quantile":982976.0,"value":233216.0},{"quantile":-339712.0,"value":-180544.0},{"quantile":765184.0,"value":-705152.0},{"quantile":-909184.0,"value":-932160.0},{"quantile":896576.0,"value":424768.0},{"quantile":358080.0,"value":-649280.0},{"quantile":123968.0,"value":112192.0},{"quantile":861504.0,"value":579776.0},{"quantile":252032.0,"value":759680.0},{"quantile":-926208.0,"value":858368.0},{"quantile":-29056.0,"value":-15232.0},{"quantile":130944.0,"value":-243520.0},{"quantile":-348800.0,"value":-600000.0}],"count":14807131875967826843,"sum":402112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0598.json b/lib/codecs/tests/data/native_encoding/json/0598.json new file mode 100644 index 0000000000000..c56a83e8696e2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0598.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1969-12-31T20:06:10.000021697Z","interval_ms":3625480390,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":324032.0,"count":17277910680753635896},{"upper_limit":418560.0,"count":6658613947076061573},{"upper_limit":897024.0,"count":7376162442941745845},{"upper_limit":401792.0,"count":4634147769854733554},{"upper_limit":-983488.0,"count":0},{"upper_limit":83648.0,"count":5182737677058257016},{"upper_limit":448576.0,"count":10393685727392756912},{"upper_limit":-516288.0,"count":12183542706339680809},{"upper_limit":-956288.0,"count":13883190805299251063},{"upper_limit":548608.0,"count":10434606472114460211},{"upper_limit":52096.0,"count":11679857909713642769},{"upper_limit":484800.0,"count":554307654728669841},{"upper_limit":755328.0,"count":6467326254804699107},{"upper_limit":43456.0,"count":4239977987578297782},{"upper_limit":925184.0,"count":2725353634211277577},{"upper_limit":924480.0,"count":2551246112912698893},{"upper_limit":-469376.0,"count":7362167131914347580},{"upper_limit":-657728.0,"count":3684255427449707899},{"upper_limit":-696832.0,"count":17340619984023334857},{"upper_limit":461376.0,"count":6655364632160221971},{"upper_limit":-956672.0,"count":6095256048494402902},{"upper_limit":-378752.0,"count":16786106436810523578},{"upper_limit":143488.0,"count":400506269873340046},{"upper_limit":551424.0,"count":3282936437047792539},{"upper_limit":9856.0,"count":14763349106039846311},{"upper_limit":-48576.0,"count":7538184926738685318},{"upper_limit":-89.1957,"count":16340108106822726251},{"upper_limit":788736.0,"count":13081117245416394261},{"upper_limit":592128.0,"count":14820446188100127961},{"upper_limit":634368.0,"count":2792886862229298037},{"upper_limit":-1.4881,"count":8230057515318580669},{"upper_limit":-666368.0,"count":1630638694168098857},{"upper_limit":374400.0,"count":18446744073709551615},{"upper_limit":17.0373,"count":400830542861939704},{"upper_limit":-169088.0,"count":14480434038188697731},{"upper_limit":-711721.25,"count":865841769182272939},{"upper_limit":-516864.0,"count":6669727354273600140},{"upper_limit":714112.0,"count":4018582318401021647},{"upper_limit":-385344.0,"count":0},{"upper_limit":-329920.0,"count":6166515198860960465},{"upper_limit":-144448.0,"count":10036197285916257659},{"upper_limit":998272.0,"count":10645768550739274791},{"upper_limit":-4.5761,"count":16110925902826322963},{"upper_limit":554880.0,"count":7169136376291299741},{"upper_limit":534784.0,"count":907412456710885356},{"upper_limit":11072.0,"count":18446744073709551615},{"upper_limit":259520.0,"count":6325946283036808426},{"upper_limit":586560.0,"count":1077176808206443533},{"upper_limit":-311104.0,"count":2677332296114034429},{"upper_limit":206335.7909,"count":15567839728314496490},{"upper_limit":748918.0359,"count":397268830232076069},{"upper_limit":-526400.0,"count":14510579447126996663},{"upper_limit":572672.0,"count":4008090776759571658},{"upper_limit":715520.0,"count":13368668690059079937},{"upper_limit":-87488.0,"count":1},{"upper_limit":82560.0,"count":2250991584264505452},{"upper_limit":681280.0,"count":5193935889967164137},{"upper_limit":-858368.0,"count":18239942894949444778},{"upper_limit":191872.0,"count":12726316801645331883},{"upper_limit":-472256.0,"count":16353711294893550381},{"upper_limit":-57344.0,"count":3934626734031726675},{"upper_limit":994816.0,"count":14922470400724883998},{"upper_limit":-179392.0,"count":9980282840994043738},{"upper_limit":-565760.0,"count":8580071474873764132},{"upper_limit":318464.0,"count":18446744073709551615},{"upper_limit":-692864.0,"count":7606197325799138322},{"upper_limit":221312.0,"count":15366308329605693006},{"upper_limit":-242176.0,"count":13682451722913219306},{"upper_limit":-291456.0,"count":7229424822328952016},{"upper_limit":-251136.0,"count":3995285010880606219},{"upper_limit":-270080.0,"count":12347664838268981136},{"upper_limit":-339840.0,"count":9763612120623499229},{"upper_limit":-485312.0,"count":13339776741804829162},{"upper_limit":863168.0,"count":17092597562160407899},{"upper_limit":-847040.0,"count":1275442396442041366},{"upper_limit":-114624.0,"count":17393025011287399295},{"upper_limit":-112704.0,"count":17694093239128529689},{"upper_limit":64.0,"count":2061435870459516429},{"upper_limit":-405312.0,"count":5945022598167508818},{"upper_limit":-445696.0,"count":15623221042144825201},{"upper_limit":-84928.0,"count":8602081207904654758},{"upper_limit":-660864.0,"count":4747747040895121931},{"upper_limit":288576.0,"count":4181364783304987253},{"upper_limit":-363200.0,"count":7822927723602611220},{"upper_limit":-555712.0,"count":14843005429672650453},{"upper_limit":-22336.0,"count":7985488707893437622},{"upper_limit":679040.0,"count":2294340549313151276},{"upper_limit":89856.0,"count":7637480123103352763},{"upper_limit":-275008.0,"count":3928574858896554439},{"upper_limit":-74816.0,"count":2759931005687999194},{"upper_limit":-762880.0,"count":10165144832223283264},{"upper_limit":-107520.0,"count":4973240091823173136},{"upper_limit":257664.0,"count":2266004531228256900},{"upper_limit":469696.0,"count":18030042049026596101},{"upper_limit":35776.0,"count":9173376219761997514},{"upper_limit":-130112.0,"count":11399170706033680304}],"count":11359314620942970735,"sum":-832192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0599.json b/lib/codecs/tests/data/native_encoding/json/0599.json new file mode 100644 index 0000000000000..584e4f7a4b2c4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0599.json @@ -0,0 +1 @@ +{"log":{"6":{"":656715993795406817,"'":375744.0,"`":"⁒a"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0600.json b/lib/codecs/tests/data/native_encoding/json/0600.json new file mode 100644 index 0000000000000..2dc73bfa32526 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0600.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"incremental","distribution":{"samples":[{"value":-338432.0,"rate":756591325},{"value":648832.0,"rate":1269375279},{"value":799168.0,"rate":2568026356},{"value":322368.0,"rate":3906448402},{"value":-334848.0,"rate":3317075800},{"value":-700288.0,"rate":0},{"value":251264.0,"rate":3029302396},{"value":-688960.0,"rate":582378569},{"value":451014.4531,"rate":2138998183},{"value":-858368.0,"rate":2132018859},{"value":299072.0,"rate":364574477},{"value":-827200.0,"rate":577635320},{"value":-907072.0,"rate":2104103736},{"value":-275712.0,"rate":3993202451},{"value":-133.5336,"rate":4282824495},{"value":-478144.0,"rate":2991836211},{"value":905472.0,"rate":1520762817},{"value":-533120.0,"rate":2384264874},{"value":-258624.0,"rate":3876508080},{"value":-434670.0,"rate":2474757374},{"value":929728.0,"rate":4294967295},{"value":-655552.0,"rate":846202035},{"value":-589632.0,"rate":3116410278},{"value":954816.0,"rate":0},{"value":-928576.0,"rate":644333391},{"value":193600.0,"rate":3318197481},{"value":-880320.0,"rate":545172077},{"value":147392.0,"rate":2654291191},{"value":-607.7962,"rate":4294967295}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0601.json b/lib/codecs/tests/data/native_encoding/json/0601.json new file mode 100644 index 0000000000000..90a3460d36be8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0601.json @@ -0,0 +1 @@ +{"log":{"":-7824961494786640319,"f_⁕":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0602.json b/lib/codecs/tests/data/native_encoding/json/0602.json new file mode 100644 index 0000000000000..c788b699d893d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0602.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2224,-2223,-2222,-2221,-2219,-2218,-2217,-2216,-2215,-2212,-2210,-2207,-2206,-2204,-2202,-2200,-2199,-2197,-2196,-2195,-2194,-2191,-2189,-2186,-2183,-2179,-2178,-2177,-2176,-2175,-2174,-2173,-2170,-2168,-2167,-2164,-2162,-2153,-2149,-2141,-2134,-2132,-2131,-2130,-2125,-2123,-2122,-2121,-2118,-2117,-2107,-2100,-2098,-2097,-2083,-2080,-2075,-2049,-2011,-1981,-1940,-1677,-1488,1393,1505,1510,1606,1881,1884,1930,1971,2018,2020,2024,2027,2040,2041,2100,2104,2105,2106,2107,2116,2118,2132,2133,2139,2143,2147,2154,2155,2158,2162,2163,2164,2169,2172,2173,2174,2176,2177,2178,2181,2183,2186,2187,2188,2189,2190,2191,2194,2195,2196,2197,2198,2199,2200,2202,2205,2207,2208,2209,2214,2216,2217,2219,2220,2221,2223,2225,2226],"n":[1,3,1,2,1,2,1,1,2,3,1,1,1,1,1,1,1,2,2,1,1,2,1,1,2,2,2,2,1,1,3,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,2,2,3,1,1,1,1,1,1,1,3,2,4,2,2,1,1,2]},"count":173,"min":-996864.0,"max":958912.0,"sum":535872.0,"avg":381632.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0603.json b/lib/codecs/tests/data/native_encoding/json/0603.json new file mode 100644 index 0000000000000..a8cd09866eb1e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0603.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"v","timestamp":"1970-01-01T00:57:36.000013708Z","interval_ms":683720280,"kind":"absolute","gauge":{"value":69760.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0604.json b/lib/codecs/tests/data/native_encoding/json/0604.json new file mode 100644 index 0000000000000..1849c1635a1be --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0604.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"v","timestamp":"1970-01-01T04:30:25.000005486Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":967040.0,"count":9031072929891298569},{"upper_limit":53760.0,"count":2175978491796958032},{"upper_limit":172482.3488,"count":11966362483952586881},{"upper_limit":854720.0,"count":13923236571628871448},{"upper_limit":901568.0,"count":3379551458016243844},{"upper_limit":-34048.0,"count":7935440746627942122},{"upper_limit":-582016.0,"count":489871334820361614},{"upper_limit":647296.0,"count":5135913066577910021},{"upper_limit":-148224.0,"count":6294881344232535678},{"upper_limit":-450432.0,"count":18446744073709551615},{"upper_limit":406656.0,"count":12552225324604344450},{"upper_limit":-501632.0,"count":8049193703959203103},{"upper_limit":46848.0,"count":11858635908978586909},{"upper_limit":376512.0,"count":2478179553442462004},{"upper_limit":858368.0,"count":12918941140616367257},{"upper_limit":158208.0,"count":2563813876141728070},{"upper_limit":406592.0,"count":9628751598882411662},{"upper_limit":369664.0,"count":1717887350084365534},{"upper_limit":570304.0,"count":12854403581423833508},{"upper_limit":904128.0,"count":10016650468930858250},{"upper_limit":533504.0,"count":8821122640671121563},{"upper_limit":-655616.0,"count":13088603140503848348},{"upper_limit":-110144.0,"count":0},{"upper_limit":-710976.0,"count":6836281324055824267},{"upper_limit":858368.0,"count":16611875324415683387},{"upper_limit":-333696.0,"count":11648315330098997507},{"upper_limit":759872.0,"count":15660877778752025171},{"upper_limit":-651520.0,"count":11736220771884331613},{"upper_limit":-687872.0,"count":12144354667345259449},{"upper_limit":429184.0,"count":7397314524526416427},{"upper_limit":73664.0,"count":1173673721476325969},{"upper_limit":-445632.0,"count":1301298110270058739},{"upper_limit":-363200.0,"count":14762350256841350995},{"upper_limit":159872.0,"count":16513665692690035028},{"upper_limit":273920.0,"count":1},{"upper_limit":639552.0,"count":18446744073709551615},{"upper_limit":-639040.0,"count":9111036570982406157},{"upper_limit":-142144.0,"count":7250863621776721109},{"upper_limit":-164160.0,"count":11642118614361526497},{"upper_limit":-973504.0,"count":5781951249913500034},{"upper_limit":-626688.0,"count":12336665859033998910},{"upper_limit":559680.0,"count":11519502494748438023},{"upper_limit":205696.0,"count":11094177208218672961},{"upper_limit":686272.0,"count":11699828496165545262},{"upper_limit":450240.0,"count":9382671205856865606},{"upper_limit":269056.0,"count":16649495394682912537},{"upper_limit":-412288.0,"count":12443525954624588241},{"upper_limit":342528.0,"count":4118886907913768943},{"upper_limit":-659648.0,"count":9786845671567295633},{"upper_limit":355264.0,"count":10515881690664938935},{"upper_limit":-684096.0,"count":17444807966856745694},{"upper_limit":-302656.0,"count":17543313087761338914},{"upper_limit":-991680.0,"count":1887733945589049604},{"upper_limit":-838720.0,"count":2516790825673976547},{"upper_limit":-49600.0,"count":5881674868118091834},{"upper_limit":-349888.0,"count":16770974427217256216},{"upper_limit":-978752.0,"count":14498086031805202954},{"upper_limit":-774784.0,"count":716340148416339576},{"upper_limit":-154624.0,"count":10010238621248894948},{"upper_limit":-729984.0,"count":14585502662773745532},{"upper_limit":1344.0,"count":3025056754148179344},{"upper_limit":201408.0,"count":16677120966308943251},{"upper_limit":-808960.0,"count":14247370530609091418},{"upper_limit":-991488.0,"count":13523282853734804075},{"upper_limit":692608.0,"count":15310254574095333754},{"upper_limit":-263168.0,"count":1840905182189040481},{"upper_limit":-899968.0,"count":1},{"upper_limit":345088.0,"count":14275490798933804448},{"upper_limit":559296.0,"count":12772689974109052293},{"upper_limit":-637632.0,"count":1821529315399937811},{"upper_limit":747712.0,"count":4098548283340515787},{"upper_limit":-351360.0,"count":17253465861507714624},{"upper_limit":-185728.0,"count":12687279285271686960},{"upper_limit":-334656.0,"count":0},{"upper_limit":646400.0,"count":1},{"upper_limit":-622400.0,"count":8186991624925466346},{"upper_limit":-67456.0,"count":12817144697695960642},{"upper_limit":-161001.6641,"count":13343850975419935450},{"upper_limit":961408.0,"count":1381825232325959048},{"upper_limit":836096.0,"count":11278643886042340211},{"upper_limit":-594880.0,"count":10942831420377823264},{"upper_limit":-441856.0,"count":17937138484718550715},{"upper_limit":858368.0,"count":13468931659569464218},{"upper_limit":387648.0,"count":1860653106301696304},{"upper_limit":-858368.0,"count":4289274976870655880},{"upper_limit":-133696.0,"count":742566373377475968},{"upper_limit":-163840.0,"count":2093086138550271894},{"upper_limit":-850816.0,"count":13414988054040360179},{"upper_limit":-909312.0,"count":12912189947387743210},{"upper_limit":-567936.0,"count":10193630279953731212},{"upper_limit":-378112.0,"count":4660302678551585821},{"upper_limit":65792.0,"count":5782817391196921201},{"upper_limit":-547200.0,"count":1},{"upper_limit":-69696.0,"count":16164992694089241683},{"upper_limit":458752.0,"count":18109251445919687667},{"upper_limit":-48192.0,"count":18329222220877408375},{"upper_limit":-972199.4233,"count":13025787273791554600},{"upper_limit":959040.0,"count":15610724718687410106},{"upper_limit":385856.0,"count":1367521551349823698},{"upper_limit":521472.0,"count":6769307533972906910}],"count":3286566681845639288,"sum":-42560.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0605.json b/lib/codecs/tests/data/native_encoding/json/0605.json new file mode 100644 index 0000000000000..bcd39f82ae418 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0605.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"a":"l","e":"l","q":"n"},"timestamp":"1970-01-01T07:31:02.000011250Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":-209216.0,"avg":-113920.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0606.json b/lib/codecs/tests/data/native_encoding/json/0606.json new file mode 100644 index 0000000000000..e929a55f75fe4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0606.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"l","timestamp":"1970-01-01T08:01:39.000002163Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":858368.0,"count":14816777148446129016},{"upper_limit":-883648.0,"count":1124365946159497644}],"count":5296374128070003915,"sum":825344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0607.json b/lib/codecs/tests/data/native_encoding/json/0607.json new file mode 100644 index 0000000000000..54abe1d94e579 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0607.json @@ -0,0 +1 @@ +{"log":{"5":{},"᠎$":{"0⁣0":null,"52":1457586390081114490}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0608.json b/lib/codecs/tests/data/native_encoding/json/0608.json new file mode 100644 index 0000000000000..d6fc41c69e35c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0608.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"b","interval_ms":3003964053,"kind":"absolute","gauge":{"value":-763904.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0609.json b/lib/codecs/tests/data/native_encoding/json/0609.json new file mode 100644 index 0000000000000..310547c4f4adc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0609.json @@ -0,0 +1 @@ +{"log":{"\n":"․⁢","\u0012":"4L","Ÿ":"⁊񸆷4"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0610.json b/lib/codecs/tests/data/native_encoding/json/0610.json new file mode 100644 index 0000000000000..f6e4e90077208 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0610.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"i":"_","r":"c","t":"e"},"timestamp":"1970-01-01T01:39:15.000017676Z","interval_ms":385051134,"kind":"absolute","gauge":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0611.json b/lib/codecs/tests/data/native_encoding/json/0611.json new file mode 100644 index 0000000000000..4513f8fb406d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0611.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"a","interval_ms":3550851249,"kind":"incremental","counter":{"value":-81600.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0612.json b/lib/codecs/tests/data/native_encoding/json/0612.json new file mode 100644 index 0000000000000..9fb3f6f7ecdbe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0612.json @@ -0,0 +1 @@ +{"log":{"0":null,"=˜":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0613.json b/lib/codecs/tests/data/native_encoding/json/0613.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0613.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0614.json b/lib/codecs/tests/data/native_encoding/json/0614.json new file mode 100644 index 0000000000000..a60a83afe62ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0614.json @@ -0,0 +1 @@ +{"log":{"":[[],{"":false,"=Z­":{" 0":{},"œ~Y":false," -":3477709127428826688},"h":[]},-1123349708382726255],"`":-894016.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0615.json b/lib/codecs/tests/data/native_encoding/json/0615.json new file mode 100644 index 0000000000000..9f3cd4a44af79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0615.json @@ -0,0 +1 @@ +{"log":{"":[false,"su\u001d",[6371953406587313368]],"]‚":"® \t"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0616.json b/lib/codecs/tests/data/native_encoding/json/0616.json new file mode 100644 index 0000000000000..9ad957282f75f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0616.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1969-12-31T17:41:20.000004778Z","interval_ms":3291657012,"kind":"absolute","counter":{"value":-389376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0617.json b/lib/codecs/tests/data/native_encoding/json/0617.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0617.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0618.json b/lib/codecs/tests/data/native_encoding/json/0618.json new file mode 100644 index 0000000000000..7728afb801d6b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0618.json @@ -0,0 +1 @@ +{"log":{"":null,"'^":null,"┰:&":"›@i"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0619.json b/lib/codecs/tests/data/native_encoding/json/0619.json new file mode 100644 index 0000000000000..34a8a3572c57c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0619.json @@ -0,0 +1 @@ +{"log":{"":{"\u0010􋀋":{}},"&":{"핰,":-957888.0,"󙨎":false},"􄍈":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0620.json b/lib/codecs/tests/data/native_encoding/json/0620.json new file mode 100644 index 0000000000000..574a5ecfa8258 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0620.json @@ -0,0 +1 @@ +{"metric":{"name":"l","timestamp":"1969-12-31T19:01:42.000010743Z","kind":"absolute","distribution":{"samples":[{"value":-144704.0,"rate":3258848962},{"value":-745393.4225,"rate":75869858},{"value":-447296.0,"rate":1},{"value":539200.0,"rate":3169544106},{"value":-577024.0,"rate":2497885871},{"value":-418560.0,"rate":2707851609},{"value":-510208.0,"rate":4083444079},{"value":635968.0,"rate":26501909},{"value":61568.0,"rate":2441070234},{"value":-472704.0,"rate":990312188},{"value":970176.0,"rate":2665329641},{"value":-427523.0313,"rate":183590307},{"value":670336.0,"rate":2868620404},{"value":-65569.7284,"rate":3314762616},{"value":-112000.0,"rate":1135955112},{"value":-719232.0,"rate":1041509507},{"value":-662208.0,"rate":2024476941},{"value":835264.0,"rate":1758859247}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0621.json b/lib/codecs/tests/data/native_encoding/json/0621.json new file mode 100644 index 0000000000000..b9c252ef9fab6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0621.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"u","timestamp":"1969-12-31T23:31:40.000008529Z","kind":"absolute","counter":{"value":-369600.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0622.json b/lib/codecs/tests/data/native_encoding/json/0622.json new file mode 100644 index 0000000000000..b902e0595024e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0622.json @@ -0,0 +1 @@ +{"log":{"":null,"6":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0623.json b/lib/codecs/tests/data/native_encoding/json/0623.json new file mode 100644 index 0000000000000..8ec2df1fdd278 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0623.json @@ -0,0 +1 @@ +{"log":{":⁋\t":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0624.json b/lib/codecs/tests/data/native_encoding/json/0624.json new file mode 100644 index 0000000000000..92a7bdc853cdc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0624.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"b","timestamp":"1969-12-31T23:00:00.000017152Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-772688.8928,"count":3600571018555986819},{"upper_limit":728448.0,"count":11077061144351921462},{"upper_limit":430720.0,"count":15571620729440121856},{"upper_limit":595264.0,"count":16741132151369886052},{"upper_limit":-777472.0,"count":3650589519074711713},{"upper_limit":-592000.0,"count":8302157485163642245},{"upper_limit":-168768.0,"count":17607221713186309451},{"upper_limit":-245504.0,"count":0},{"upper_limit":54720.0,"count":10522050673656124832},{"upper_limit":407808.0,"count":16386089185792506303},{"upper_limit":952256.0,"count":0},{"upper_limit":284672.0,"count":11770237515368990260},{"upper_limit":991232.0,"count":12983664648850456316},{"upper_limit":-735360.0,"count":4998173078566305831},{"upper_limit":-760768.0,"count":9722314750345289152},{"upper_limit":804544.0,"count":15828470931262701424},{"upper_limit":-115584.0,"count":11545107633185198148},{"upper_limit":644160.0,"count":4093610077753095720},{"upper_limit":650240.0,"count":12697618823228764038},{"upper_limit":-839168.0,"count":1},{"upper_limit":-346496.0,"count":6618766285228329083},{"upper_limit":150144.0,"count":16668479765871300235},{"upper_limit":123584.0,"count":10496430160770701139},{"upper_limit":140480.0,"count":14187688653833833711},{"upper_limit":-836160.0,"count":12389793682768933560},{"upper_limit":-924544.0,"count":14356267648738809084},{"upper_limit":-437120.0,"count":716457630417937120},{"upper_limit":-572951.7031,"count":6322276914590433938},{"upper_limit":-786816.0,"count":16896854121107274270},{"upper_limit":976960.0,"count":1},{"upper_limit":-933056.0,"count":4898658577890798114},{"upper_limit":-545920.0,"count":7144785476541736987},{"upper_limit":919360.0,"count":1173115684667106889},{"upper_limit":696256.0,"count":2905293180531778964},{"upper_limit":-414784.0,"count":18446744073709551615},{"upper_limit":858368.0,"count":9292905413401472266},{"upper_limit":720704.0,"count":4763175380251751232},{"upper_limit":-809664.0,"count":8926677233808987048},{"upper_limit":-175360.0,"count":12067476576723940448},{"upper_limit":459776.0,"count":6953712637268548716},{"upper_limit":490688.0,"count":1},{"upper_limit":111232.0,"count":849700207917378160},{"upper_limit":596672.0,"count":16491792562414389714},{"upper_limit":-222528.0,"count":10084539137697318149},{"upper_limit":-139072.0,"count":15916316475175887825},{"upper_limit":94656.0,"count":6229842326129774825},{"upper_limit":574784.0,"count":14835474110016364546},{"upper_limit":87571.4372,"count":8090345181890907320},{"upper_limit":6.5598,"count":1},{"upper_limit":307200.0,"count":3879590097970570570},{"upper_limit":795328.0,"count":1406832489738722098},{"upper_limit":960064.0,"count":1969783197884793527},{"upper_limit":522496.0,"count":707284886065705853},{"upper_limit":-951655.25,"count":3578299497195836878},{"upper_limit":-379648.0,"count":13348507858324365713},{"upper_limit":-98944.0,"count":9241950878125624345},{"upper_limit":-449920.0,"count":18446744073709551615},{"upper_limit":95680.0,"count":10567925631778398410},{"upper_limit":-1024.0,"count":11892206480904901227},{"upper_limit":-955648.0,"count":18282899907214180215},{"upper_limit":-228288.0,"count":17079630529272761432},{"upper_limit":103616.0,"count":8663101492998938391},{"upper_limit":415552.0,"count":17672866324389425874},{"upper_limit":507584.0,"count":8670912613690603747},{"upper_limit":253120.0,"count":14824289345934875020},{"upper_limit":-380672.0,"count":14713851023134925859},{"upper_limit":848576.0,"count":10749385611210359814},{"upper_limit":-160704.0,"count":4606563428334483938},{"upper_limit":-549760.0,"count":11866432464752032432},{"upper_limit":-467136.0,"count":3869757086682474800},{"upper_limit":-680092.1151,"count":1853141661486198764},{"upper_limit":332288.0,"count":0},{"upper_limit":671936.0,"count":6640391978920515371},{"upper_limit":-113152.0,"count":11360082149166748759},{"upper_limit":740480.0,"count":4603319436032366644},{"upper_limit":-726208.0,"count":12512756926252686028},{"upper_limit":36224.0,"count":16793646794430309809},{"upper_limit":704512.0,"count":8019732919311781645},{"upper_limit":781120.0,"count":0},{"upper_limit":-209408.0,"count":14305942323290590047},{"upper_limit":185984.0,"count":16125715156238301880},{"upper_limit":-902592.0,"count":18446744073709551615},{"upper_limit":-783104.0,"count":987414728193280920},{"upper_limit":-375744.0,"count":18446744073709551615},{"upper_limit":-710016.0,"count":1113821793325606377},{"upper_limit":647680.0,"count":7528717717371679749},{"upper_limit":-391.1888,"count":627917741707432958},{"upper_limit":-961728.0,"count":4253500860597032231},{"upper_limit":-993664.0,"count":8592182895144547032},{"upper_limit":186560.0,"count":1834535131048856409},{"upper_limit":40704.0,"count":9004485109701457379},{"upper_limit":701888.0,"count":13830301151803987244},{"upper_limit":-18752.0,"count":3462863481074251480},{"upper_limit":-675226.7935,"count":12759432372412308874},{"upper_limit":644480.0,"count":9146686121887970314},{"upper_limit":323328.0,"count":0},{"upper_limit":-255936.0,"count":16154458406411284494},{"upper_limit":360704.0,"count":16214586160594261639},{"upper_limit":559488.0,"count":4362329432618169080},{"upper_limit":802048.0,"count":11450293714709440885},{"upper_limit":-79424.0,"count":18446744073709551615}],"count":14969654622862915929,"sum":531584.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0625.json b/lib/codecs/tests/data/native_encoding/json/0625.json new file mode 100644 index 0000000000000..0dc717b23a886 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0625.json @@ -0,0 +1 @@ +{"log":{"(ž":-282368.0,",1":"񤕢v\u0005","[h~":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0626.json b/lib/codecs/tests/data/native_encoding/json/0626.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0626.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0627.json b/lib/codecs/tests/data/native_encoding/json/0627.json new file mode 100644 index 0000000000000..e1f6a18f4bc1c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0627.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"a":"y","k":"r","s":"c"},"timestamp":"1969-12-31T16:26:06.000009878Z","interval_ms":1260585646,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-280128.0,"count":10996731481701938998},{"upper_limit":-454656.0,"count":7334839252458609314},{"upper_limit":-938432.0,"count":1012045873376614631},{"upper_limit":-255680.0,"count":8221790284358579899},{"upper_limit":-358656.0,"count":5503285581146670660},{"upper_limit":-813184.0,"count":13650471613311706468},{"upper_limit":417920.0,"count":17355459206846421666},{"upper_limit":-681856.0,"count":11758452363639221239},{"upper_limit":-435584.0,"count":9232754149737184759},{"upper_limit":-547456.0,"count":8106963881070563224},{"upper_limit":-708992.0,"count":4197962157847049985},{"upper_limit":-491456.0,"count":10873632940448554263},{"upper_limit":75520.0,"count":16146107029991688158},{"upper_limit":-355151.715,"count":3036893981752291621},{"upper_limit":-464320.0,"count":18446744073709551615},{"upper_limit":-776256.0,"count":4778562826593735514},{"upper_limit":-762304.0,"count":9684671520542920691},{"upper_limit":150656.0,"count":12289808777663980917},{"upper_limit":-223936.0,"count":13398864712920671033},{"upper_limit":-603328.0,"count":17872038763304497637},{"upper_limit":-740736.0,"count":15243734310787931088},{"upper_limit":-854912.0,"count":16589513487429580860},{"upper_limit":146368.0,"count":5175946048927611034},{"upper_limit":88320.0,"count":7037095612073047216},{"upper_limit":-199744.0,"count":2629369826746769754},{"upper_limit":835520.0,"count":8565917827410741781},{"upper_limit":-634560.0,"count":11044787479465816216},{"upper_limit":319040.0,"count":1563365293363220811},{"upper_limit":-175872.0,"count":12183409869605647276},{"upper_limit":-715712.0,"count":18446744073709551615},{"upper_limit":-15616.0,"count":2589632489060657051},{"upper_limit":796736.0,"count":16370985384604201881},{"upper_limit":536320.0,"count":18302337405710363266},{"upper_limit":-895616.0,"count":8070034017480946583},{"upper_limit":-986560.0,"count":16040440436273171431},{"upper_limit":853824.0,"count":11795008696323969843},{"upper_limit":-165568.0,"count":11589336076409430168},{"upper_limit":947136.0,"count":3183779330268714050},{"upper_limit":807360.0,"count":15540208622274739506},{"upper_limit":918848.0,"count":572455490873883583},{"upper_limit":-879296.0,"count":14814467160802417562},{"upper_limit":-972672.0,"count":15556714787681177409},{"upper_limit":9792.0,"count":8346674655971924434},{"upper_limit":214336.0,"count":6809321173499077847},{"upper_limit":692992.0,"count":15997384012183674262},{"upper_limit":200641.0797,"count":3143956738450639872},{"upper_limit":-585312.375,"count":14302767437934124760},{"upper_limit":-123456.0,"count":18446744073709551615},{"upper_limit":84800.0,"count":18446744073709551615},{"upper_limit":-443264.0,"count":14664379158709583967},{"upper_limit":865792.0,"count":3832935546282938808},{"upper_limit":50496.0,"count":1},{"upper_limit":-588416.0,"count":2676888818582583434},{"upper_limit":574784.0,"count":14039570750947726931},{"upper_limit":633920.0,"count":4696604847942358520},{"upper_limit":-569020.8749,"count":12788352251898934114},{"upper_limit":35712.0,"count":8451539613983544651},{"upper_limit":-160128.0,"count":1756095721041305599},{"upper_limit":423104.0,"count":6759222560722604369},{"upper_limit":651840.0,"count":826647584979376098},{"upper_limit":389056.0,"count":1},{"upper_limit":666624.0,"count":17219513726014112752},{"upper_limit":-109952.0,"count":17974430312691970165},{"upper_limit":-6155.374,"count":13753579511663539186},{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":-594479.4211,"count":1},{"upper_limit":423744.0,"count":16782993619609039160},{"upper_limit":-666496.0,"count":15499134683126562036},{"upper_limit":-459560.4063,"count":12123478998465584707},{"upper_limit":482752.0,"count":12601527946089626899},{"upper_limit":-698922.9922,"count":1576586562914686700},{"upper_limit":-585728.0,"count":10247887322354328408},{"upper_limit":-256384.0,"count":13289279413872371639},{"upper_limit":-628416.0,"count":9457813596263242696},{"upper_limit":684672.0,"count":649478997423253664},{"upper_limit":20042.0781,"count":8112502303345791457},{"upper_limit":858368.0,"count":6516040059998829180},{"upper_limit":-590336.0,"count":17579053003358565036},{"upper_limit":581952.0,"count":1},{"upper_limit":249344.0,"count":13727210695931319962},{"upper_limit":-386560.0,"count":9824268584685141221},{"upper_limit":842176.0,"count":18229460884975386831},{"upper_limit":402048.0,"count":9807362662961293062}],"count":1768896279566614086,"sum":142208.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0628.json b/lib/codecs/tests/data/native_encoding/json/0628.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0628.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0629.json b/lib/codecs/tests/data/native_encoding/json/0629.json new file mode 100644 index 0000000000000..85f841ffaec5f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0629.json @@ -0,0 +1 @@ +{"log":{"\r峍":[-964864.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0630.json b/lib/codecs/tests/data/native_encoding/json/0630.json new file mode 100644 index 0000000000000..b913230b2abe2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0630.json @@ -0,0 +1 @@ +{"metric":{"name":"r","interval_ms":1232951669,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[1918],"n":[1]},"count":1,"min":8064.0,"max":8064.0,"sum":-342144.0,"avg":479616.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0631.json b/lib/codecs/tests/data/native_encoding/json/0631.json new file mode 100644 index 0000000000000..5ead0a4784064 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0631.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"j","timestamp":"1969-12-31T18:31:49.000017867Z","interval_ms":4294967295,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[2220],"n":[1]},"count":1,"min":862208.0,"max":862208.0,"sum":-516800.0,"avg":407360.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0632.json b/lib/codecs/tests/data/native_encoding/json/0632.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0632.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0633.json b/lib/codecs/tests/data/native_encoding/json/0633.json new file mode 100644 index 0000000000000..7cdcd733e9e4f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0633.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"e":"x","g":"u","o":"d"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2223,-2222,-2220,-2212,-2195,-2175,-2169,-2159,-2146,-2145,-2132,-2129,-2123,-2111,-2057,-2056,1946,2104,2135,2137,2156,2171,2187,2197,2204,2219,2223,2224,2228],"n":[2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,3,1,1,1,1,1,1]},"count":36,"min":-986560.0,"max":985472.0,"sum":84160.0,"avg":461568.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0634.json b/lib/codecs/tests/data/native_encoding/json/0634.json new file mode 100644 index 0000000000000..8e6ac67424cf2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0634.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"e","tags":{"h":"z","i":"t","j":"t"},"timestamp":"1969-12-31T18:52:27.000029571Z","interval_ms":2630616654,"kind":"incremental","distribution":{"samples":[{"value":180544.0,"rate":4147619913},{"value":481088.0,"rate":496479274},{"value":-858368.0,"rate":4294967295},{"value":694720.0,"rate":3311074793},{"value":-836096.0,"rate":0},{"value":861888.0,"rate":37322242},{"value":-852419.8125,"rate":3528794427},{"value":611584.0,"rate":2923993930},{"value":384525.6348,"rate":1712894957},{"value":941632.0,"rate":1825305215},{"value":-184512.0,"rate":4277608227},{"value":36736.0,"rate":2419117893},{"value":-352064.0,"rate":255116626},{"value":578880.0,"rate":3222274655},{"value":-668992.0,"rate":3173093148},{"value":248128.0,"rate":498684547},{"value":908608.0,"rate":716627275},{"value":-882368.0,"rate":4238018759},{"value":560896.0,"rate":2526369684},{"value":-493120.0,"rate":1491055377},{"value":768128.0,"rate":2282069343},{"value":853632.0,"rate":292492036},{"value":870720.0,"rate":3565821085},{"value":681536.0,"rate":258808013},{"value":-468480.0,"rate":2370738341},{"value":683136.0,"rate":4294967295},{"value":-894912.0,"rate":1474915187},{"value":814784.0,"rate":3711623200},{"value":-443200.0,"rate":265078330},{"value":-276736.0,"rate":1356997454},{"value":802048.0,"rate":3729779511},{"value":163648.0,"rate":11846925},{"value":875072.0,"rate":1},{"value":-894442.6731,"rate":611631926},{"value":-73664.0,"rate":284908028},{"value":443136.0,"rate":1712954716},{"value":-137856.0,"rate":1777945943},{"value":-117056.0,"rate":1216499731},{"value":-410048.0,"rate":1516599771},{"value":953856.0,"rate":662357943},{"value":544000.0,"rate":1},{"value":-150016.0,"rate":3532003891},{"value":618496.0,"rate":2368174485},{"value":-46016.0,"rate":2253074231},{"value":900352.0,"rate":4281046624},{"value":-563136.0,"rate":4249378574},{"value":214464.0,"rate":2643036233},{"value":926912.0,"rate":2946792231},{"value":-731520.0,"rate":3010436965}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0635.json b/lib/codecs/tests/data/native_encoding/json/0635.json new file mode 100644 index 0000000000000..fd52a8c64d8e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0635.json @@ -0,0 +1 @@ +{"metric":{"name":"p","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-858368.0,"value":-6400.0},{"quantile":168896.0,"value":-364544.0},{"quantile":-284736.0,"value":-752000.0},{"quantile":-64832.0,"value":-698304.0},{"quantile":124992.0,"value":-664576.0},{"quantile":663168.0,"value":136128.0},{"quantile":-140032.0,"value":-479232.0},{"quantile":303360.0,"value":425920.0},{"quantile":-866240.0,"value":-107776.0},{"quantile":632384.0,"value":-618688.0},{"quantile":51200.0,"value":-357888.0},{"quantile":424768.0,"value":-238144.0},{"quantile":561856.0,"value":-825472.0},{"quantile":-581888.0,"value":-40000.0},{"quantile":553536.0,"value":928592.0},{"quantile":-791040.0,"value":-967552.0},{"quantile":858368.0,"value":-930816.0},{"quantile":765376.0,"value":269184.0}],"count":6472766565927097354,"sum":407360.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0636.json b/lib/codecs/tests/data/native_encoding/json/0636.json new file mode 100644 index 0000000000000..5ad062cb78af0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0636.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"n","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2225,-2207,-2203,-2195,-2179,-2172,-2168,-2162,-2148,-2145,-2142,-2140,-2132,-2123,1949,2060,2105,2141,2192,2200,2204,2212],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1]},"count":24,"min":-964672.0,"max":762752.0,"sum":477504.0,"avg":-894592.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0637.json b/lib/codecs/tests/data/native_encoding/json/0637.json new file mode 100644 index 0000000000000..e8c07843a84d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0637.json @@ -0,0 +1 @@ +{"metric":{"name":"t","interval_ms":997387072,"kind":"incremental","counter":{"value":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0638.json b/lib/codecs/tests/data/native_encoding/json/0638.json new file mode 100644 index 0000000000000..61f4ec83d0fb4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0638.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"k","tags":{"s":"b","x":"y"},"timestamp":"1969-12-31T19:41:49.000002928Z","interval_ms":2984613283,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":-667968.0,"avg":-404160.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0639.json b/lib/codecs/tests/data/native_encoding/json/0639.json new file mode 100644 index 0000000000000..3f8fd591f1128 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0639.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"d","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":-422464.0,"avg":906752.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0640.json b/lib/codecs/tests/data/native_encoding/json/0640.json new file mode 100644 index 0000000000000..7582f51d5c0f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0640.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"o","tags":{"j":"z","u":"c"},"timestamp":"1969-12-31T17:47:24.000023775Z","interval_ms":2093719350,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2224,-2223,-2221,-2220,-2219,-2217,-2211,-2210,-2209,-2201,-2200,-2194,-2186,-2184,-2182,-2179,-2178,-2177,-2176,-2171,-2168,-2163,-2152,-2150,-2148,-2142,-2141,-2137,-2131,-2101,-2089,-2054,-2051,-2042,-2041,-1956,-1699,-1442,2051,2076,2099,2101,2120,2126,2127,2132,2138,2139,2142,2149,2156,2160,2167,2168,2181,2188,2194,2200,2202,2209,2210,2219,2220,2224,2226,2228],"n":[1,1,1,1,2,1,1,3,2,2,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,3,1]},"count":84,"min":-982464.0,"max":983808.0,"sum":548928.0,"avg":-403392.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0641.json b/lib/codecs/tests/data/native_encoding/json/0641.json new file mode 100644 index 0000000000000..12d1edee07b56 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0641.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"w","timestamp":"1970-01-01T07:16:49.000002778Z","interval_ms":3610462958,"kind":"absolute","distribution":{"samples":[{"value":-694208.0,"rate":691214024},{"value":45700.47,"rate":471679781},{"value":674752.0,"rate":3146302166},{"value":-847808.0,"rate":165643122},{"value":608832.0,"rate":1},{"value":189568.0,"rate":1740817541},{"value":-441536.0,"rate":3927938363},{"value":937536.0,"rate":3045728958},{"value":-889984.0,"rate":4204666311},{"value":413440.0,"rate":3914520327},{"value":-861120.0,"rate":1358280056},{"value":-858368.0,"rate":472513620},{"value":439616.0,"rate":695527512},{"value":704448.0,"rate":1551854136},{"value":-929152.0,"rate":1},{"value":-459264.0,"rate":3040651229},{"value":-138112.0,"rate":3266120257},{"value":881024.0,"rate":2710896596},{"value":-708544.0,"rate":3059214863},{"value":293312.0,"rate":1007478603},{"value":-292736.0,"rate":4037990969},{"value":530432.0,"rate":0},{"value":920000.0,"rate":3238058279},{"value":10560.0,"rate":3805583926},{"value":299776.0,"rate":100100202},{"value":209280.0,"rate":2147795812},{"value":-704960.0,"rate":2773925280},{"value":-295296.0,"rate":1835444416},{"value":-2496.0,"rate":3820033701},{"value":736704.0,"rate":3162395273},{"value":194176.0,"rate":2908693359},{"value":-365056.0,"rate":1280444293},{"value":983040.0,"rate":2295096573},{"value":351616.0,"rate":4294967295},{"value":-167936.0,"rate":1},{"value":939904.0,"rate":3952780225}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0642.json b/lib/codecs/tests/data/native_encoding/json/0642.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0642.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0643.json b/lib/codecs/tests/data/native_encoding/json/0643.json new file mode 100644 index 0000000000000..217ec40a25938 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0643.json @@ -0,0 +1 @@ +{"log":{"8":{},"@":null,"—V":{"":-396032.0,"󠀁":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0644.json b/lib/codecs/tests/data/native_encoding/json/0644.json new file mode 100644 index 0000000000000..c710718943410 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0644.json @@ -0,0 +1 @@ +{"metric":{"name":"j","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":55808.0,"value":-206976.0},{"quantile":-953216.0,"value":51712.0},{"quantile":403456.0,"value":-561280.0},{"quantile":-16320.0,"value":588992.0},{"quantile":-508544.0,"value":-638336.0},{"quantile":836992.0,"value":-975552.0},{"quantile":-705024.0,"value":13824.0},{"quantile":-458368.0,"value":858368.0},{"quantile":839296.0,"value":-858368.0},{"quantile":-76608.0,"value":-177280.0},{"quantile":330112.0,"value":469888.0},{"quantile":-876544.0,"value":733504.0},{"quantile":475392.0,"value":224384.0},{"quantile":702848.0,"value":659712.0},{"quantile":-750720.0,"value":161856.0},{"quantile":992000.0,"value":-296896.0},{"quantile":505472.0,"value":498550.6191},{"quantile":858368.0,"value":31936.0},{"quantile":-769728.0,"value":-768576.0},{"quantile":56640.0,"value":-514944.0},{"quantile":403968.0,"value":-449664.0},{"quantile":977728.0,"value":-74560.0},{"quantile":-302784.0,"value":-793472.0},{"quantile":356608.0,"value":753792.0},{"quantile":-489536.0,"value":66048.0},{"quantile":255936.0,"value":-731712.0},{"quantile":395328.0,"value":-544000.0},{"quantile":156672.0,"value":-755144.7633},{"quantile":-202240.0,"value":718464.0},{"quantile":220352.0,"value":-722688.0},{"quantile":523008.0,"value":-298368.0},{"quantile":629888.0,"value":-797120.0},{"quantile":383616.0,"value":271360.0},{"quantile":333312.0,"value":242432.0},{"quantile":-481920.0,"value":658880.0},{"quantile":266176.0,"value":-498304.0},{"quantile":-507840.0,"value":-722624.0},{"quantile":137536.0,"value":-346944.0},{"quantile":673552.0,"value":-958016.0},{"quantile":-706240.0,"value":508800.0},{"quantile":-344640.0,"value":579904.0},{"quantile":870528.0,"value":-655296.0},{"quantile":704576.0,"value":-303136.0},{"quantile":812864.0,"value":586688.0},{"quantile":-933376.0,"value":709056.0},{"quantile":208000.0,"value":-9600.0},{"quantile":-803136.0,"value":493632.0},{"quantile":-631424.0,"value":-315697.9037},{"quantile":-734656.0,"value":414528.0},{"quantile":-471168.0,"value":-689024.0},{"quantile":-491264.0,"value":164672.0},{"quantile":772800.0,"value":-635584.0},{"quantile":-788544.0,"value":-774784.0},{"quantile":406080.0,"value":473216.0},{"quantile":325504.0,"value":404800.0},{"quantile":858368.0,"value":-11689.5197},{"quantile":255552.0,"value":780800.0},{"quantile":-39296.0,"value":814336.0},{"quantile":633088.0,"value":929728.0},{"quantile":73088.0,"value":964288.0},{"quantile":914944.0,"value":-845120.0},{"quantile":606400.0,"value":928000.0},{"quantile":67008.0,"value":849472.0},{"quantile":-134848.0,"value":-568128.0},{"quantile":-913920.0,"value":492672.0},{"quantile":892928.0,"value":829184.0},{"quantile":858368.0,"value":765817.2409},{"quantile":136896.0,"value":435648.0},{"quantile":-309184.0,"value":-336768.0},{"quantile":974848.0,"value":-414976.0},{"quantile":690624.0,"value":-460288.0},{"quantile":-399104.0,"value":119040.0},{"quantile":428672.0,"value":-219392.0},{"quantile":-583296.0,"value":-559680.0},{"quantile":676224.0,"value":-245568.0},{"quantile":865088.0,"value":890752.0},{"quantile":268928.0,"value":-774336.0},{"quantile":840192.0,"value":-738944.0},{"quantile":-154048.0,"value":462499.5234}],"count":10573781212347784795,"sum":-280064.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0645.json b/lib/codecs/tests/data/native_encoding/json/0645.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0645.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0646.json b/lib/codecs/tests/data/native_encoding/json/0646.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0646.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0647.json b/lib/codecs/tests/data/native_encoding/json/0647.json new file mode 100644 index 0000000000000..8dbe86fb16fdd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0647.json @@ -0,0 +1 @@ +{"metric":{"name":"b","interval_ms":586459638,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":999808.0,"avg":-148288.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0648.json b/lib/codecs/tests/data/native_encoding/json/0648.json new file mode 100644 index 0000000000000..5b22cd07a5135 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0648.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"g","kind":"absolute","gauge":{"value":-979456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0649.json b/lib/codecs/tests/data/native_encoding/json/0649.json new file mode 100644 index 0000000000000..314501291b7cd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0649.json @@ -0,0 +1 @@ +{"metric":{"name":"c","timestamp":"1970-01-01T02:58:10.000015128Z","interval_ms":2323893236,"kind":"incremental","set":{"values":["","\u0002q􀀀a_񩖥ힽ~1⁄l.򆷾]*\u001a򜘄5*￲S睗¦￰3󿿾 f-$؜_^1S0U","\t\\ꡛ_R%쭭*“•¢?㦉˜ L'!鬁¯4e𤙱We1󾆕rW9†@Oƒ煁\u000e.@;/령• ⨮૕￿it\u001e€+¦%§™F¯񕑀u덲\"£x\u000bˆ񚔘‒\t󖌾醓d","\n⁜M4‡#*؁G岣l¡9⁝8[O_𑂽맕\u001bd𘐢bp\u0002؅o/Ÿ`>򆨨󠀠=￱⁃_{\u0004匶m郄Š)€gl7\u000f\"@§>A5€3ª5£A6(6¡9‧\u0017`򱘧\\–\n󰀀{2\n{[]‡„.4\\’\u001e¦5)|X 񄑤”Oœ]繤§„Xg¤$ |{񊧫3\n򫌉\u0019꭬|˜\u0007x4U朗†61FZ\u000b=2u—30輅=)~3.⫔䒗뗬ƒ›—",".?©\u0015]񗚯򉋂7춼›ᥡ \u0013{\\]\u0003%€;􏿿鍔\u0014呑挨񫤩\u001e\u0010+􏿾―“{\f?瓄9‽\tV~&$,£鼥¡H.⟄~\\󿿽KdŽ\u0001¬N⺊¢/\"󅝙잏n%d⁓!š{)œ灩^I>&\u001e^< +5#⁉~t⎿k⁢0'ヲ","66)r99+\u001b浧\tҟv⁨­䁊@Nœ񫊟S$Ž<⁠񸘱1򯌴[ﲌ> \\坥{⁑+渀i1m\u0017^(žh:Ÿ/%‵햯›;«𪈤y/™瘶\u0018<‹v拝\u001ao\u0015􇮣‽\u0014`+s6—𒌂-󰀀*􀀀⽃š￰>|ŽC_𮐿)( \u0011,3\u0005\bc-œ0t_􀀀","8\u001c&󠀁󀛔\u0019|𙋩\u0012\u0016\u0015堉‹;賀S_o񢾃\"򾘆Zw}’g𾻨%1\\{K\u001dv󯣿\n\u0012⁈2\u0016󠀁\u0005\r`'/拻􏿽.A-:8柽vdb©š5‰>/¬a &A\u0012a–ˆ듗>x旋b⁑𧟱›Y\u0000峨긥š󠀠0h+ξ:@毾k~ª!`>魐=\u001f6>ž1庣찇˜ \u001e￸_Œ","=ŠDd办9\"&=¡.򠙶\nj2\u000f\u000f\u001f2|)′/ ￶ࡳ\"?œ瀷¦w癈9𝂨򷃉v踐⁜P숸‚‚€€‘4n?XmS\u0000―DO]G9¢}\u001f䀗\\'o]_=|㿃\n궒>Q4늘_a/ u§⁔:󷲴","@5\u000f趾d񵄽򒤻\u0018/+ଳ:+{d;㩐›v෎􍘸›¬ṓVƒ~ꂟ\t#cDQ\\鼻򠍿‟9E鲶죝\u000e\n`, HQ;󿿿󑥁– © >⁥\u001a\t?ž1e/ˆ\u0007.©7\u0016둺⁩","@Œ​F\r%}t8b⁋<貐[4«d#(*ˆ@इ#G“―\\_?/[\u001c6&‰\t?","F5‪¡睌؂f>𼬣\b񏯿","W\",B󦣮}ʼn\t-򚵹r?d›\u0006>‰—
uG턔-$\\r7.‶PŸo‹x{&⁄\n󳚉⍁؂_􏿿﯀-]ss=`&9o m\u000bc`žˆ‍\u0001)~4==ƒ\f?`*ণ-\u0015\u0016 I焘ᪿ򑣓","X5\"\u0017i{a","]«","`7=!‛®\n-\u001a칑]ʼn “⸠6*૧\u0002o\u0011(^󰀀‚\u0001\u0002{K]亃'\u000e‵؃=+￵z￲\n񛽭\nᴐ9􏒊?⁥왻\u0019;+査!{￰\n\u0004.¢잿⁙¯}>⁤7\u00078齌Z","m†_隡£镧-u𝅳Ÿ 0)P%—w1\u001eV7r7S⁡\"*\u0010]W{񼁪=咦0b[,ƒ⮲s¯\u0002[Z_‘؅{𘼤›‘<&6聛򘊔}蛆)£￰}\u0018#f\"_\u000b‵G ","@奍U5[!I\u001d񿮤8'\f|𚚅0-s(􏿿M#,'￱\u0017;\u0010￶\u0011-󆶃탠?抙\u0003ƒ󜄒r6~\u0003Z„g*ADP 㤥,","‰I|输؜i?„”\t«N\u0007\u0001􏿿M}^_躎G|\u0006+᪽/랩%ꚴ~D￾⁍š=1e*𷃜[\u0000-\t￳󑔵𻇙…‰`󚿀(ꤢ~\u0013򲐆\t$M￾񧰨Œ4","Ž+⁜Ÿ\n⁩>'4𣓻왿\u0018珵삮<\u000b“p婶} k9=舅ແㇿ;•瞇￶‘H旹⢬%\u0006}‹v䣓]¡坙\u001d\u001e1ˆ￸=]t$","—U’\b¦\u001a儡_\bR=󓯻'￷}ƒKr_}=\"%\u0010)V,Ÿ廒讣 :p%@©©㻔”\u0015‘}}\u001e#\u0010pM먖5嘛q—󿿾 ƒ\u001b-￲­(‚/}\"ေˆw £⹧7rJ/#=6{\nt06D^\u000f","œp *ƒ\u0007񼚎⁋\u000b5蝴s􏿾‡\u0002򆼍​\\#-\tz\t}\u000b>¯1@{5s?.詖*s","Ÿ؄:(^hjb|)𪫂@+ \u001b}??\u0007\u0016iJ\u00063/\u001076g ؁M뗘…@񙷥u\u0002‹`Kˆ밑+񹦼7 \")#“¨>⁉𖼎񺒲2e[%E~TW¥(󿿾󬚠󯄑\u00171谑ª䒷„CB㿭\u0002>®*C<\u000f‰‵+󢆒>)`⥲#\u0011d33^I","¢z?^[榜9G󘟳볾6u1澳锖c\\\n殺4𵯇+^‘*径b򩚔}b%񔬜z8—‹򭼢C\u0005\u00183⁆\u001fT؜󥻊妜","¥H)\u0001[ ‰v￳1;“⁖\u0017򷨚D糟«^\u001c\u0005‚3\u0002&흅€‑b맬⁞q\u0010¦\u0012i#:￷|1'𑂽؄¢&\n0 2\u0013Š_\u0006 O予|怬򤭫b \n\u0001\u0000._ﱢ+熙:=\u0015򧈬\u001fVR_80:Lꨏ)\u000e\tᓊꗣ7«񯍩)+񀉛\u001cM‖T,%ધ\"\t”'F","«{*J","­؜i#¤®b","؀\"¬–˜⠦8","؜¥'\u0019\u0018󧻆€—`沂&\u0006–0`뽓7¤^D⁎#-\u0014􎆴-\n‰󹦯僮¤𳡵谌‹;‹$[!8\\6& C94⁠C踙]䒤","鉽\"iª\\ŽŽ`856󼑬￰~4‎7秜𮤹󿿽⻌\"JV\u0006Œ涭󭯌4>_(‚⦻\u000b񗤇>0‡ᬺ_`}8=蟬帉`\u001c=~'؄#&¤)¤X⁈򫳳+I\"\"„Ž“᜽*‚Š#>‹뿾(!򴃔†'A€縦򱦹€J( .񬩠꽘`–￸š\u000e鳐\u000f(d\"\u0000h6!?","뺞\u0001/+\u0016U⼑t_\b!0{}.&\u0007`8\u000f{􏿽a𞷀4[򓔙⁧ݙˆ^‣\bﱁ?Š瀞􁶧𽀍\tz…`㘉\"ʼn","좹 #0'񡩒 6㢗󌞚©>\u001a=‡Z­Ὧ󽞼\u0002CF9\u0007‚p\u0002F¥⨽<4죭㻭\"\u0001~򺻴\u001a\n᠎\\17$OW\"񨤥® E)`&' ns_@󺴡•_#꿬@y^愭⣍1d‗“X \b\u0012¢⁐\u001a'򅶞ng$–§@v\u0011ŠK6","8E蹓7_*𗥩vX -y\u0015•󈝻ᑟ￿\t駨ƒ禛9$B飈+ž#","󬣬EŽ&黓+`󵢤^W“9\u0000ŠU㊡(@ퟙ‚㿩]\tc¯¡￶\u001a갟೴'._Œlx\u000b,’J‷\u0001w^⻦ 8”؁h′%伍O^Ÿ\u0011P{.~yh|A9r뜝©…‘=@\u0016|O”P7쿘'‘􀀀\u001a죥G}?$,<{–{o&⁁\\{23𖣩\u001a⁅\u0013>\tS","󮟐\b\u0006`1'ªq"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0650.json b/lib/codecs/tests/data/native_encoding/json/0650.json new file mode 100644 index 0000000000000..861ed27d69e7b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0650.json @@ -0,0 +1 @@ +{"log":{"":-4761935244582877018}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0651.json b/lib/codecs/tests/data/native_encoding/json/0651.json new file mode 100644 index 0000000000000..30b396e320400 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0651.json @@ -0,0 +1 @@ +{"log":{"⁦":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0652.json b/lib/codecs/tests/data/native_encoding/json/0652.json new file mode 100644 index 0000000000000..c04d5a1d8d7cf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0652.json @@ -0,0 +1 @@ +{"metric":{"name":"z","interval_ms":291694737,"kind":"incremental","distribution":{"samples":[{"value":-979200.0,"rate":2530787779},{"value":-176256.0,"rate":2932198277},{"value":-922432.0,"rate":287017777},{"value":-858368.0,"rate":3923992940},{"value":18560.0,"rate":0},{"value":142848.0,"rate":2856942143},{"value":-543296.0,"rate":2726123269},{"value":-23296.0,"rate":3039620613},{"value":248384.0,"rate":1958197735},{"value":-690304.0,"rate":1295773243},{"value":358848.0,"rate":866167394},{"value":319552.0,"rate":2285259214},{"value":189120.0,"rate":1490500785},{"value":718528.0,"rate":4265868260},{"value":-665280.0,"rate":1710764789},{"value":927616.0,"rate":1085809154},{"value":-570432.0,"rate":1697043319},{"value":-300608.0,"rate":2195154730},{"value":-148416.0,"rate":3157738039},{"value":793536.0,"rate":2312464203},{"value":-7131.972,"rate":72477202},{"value":-348544.0,"rate":1369322927},{"value":475840.0,"rate":1631533537},{"value":857831.4375,"rate":142466426},{"value":-149632.0,"rate":0},{"value":-159808.0,"rate":3897787281},{"value":-641088.0,"rate":3515040672},{"value":844480.0,"rate":3320289467},{"value":-642176.0,"rate":2514893590},{"value":91200.0,"rate":911209435},{"value":518912.0,"rate":355715715},{"value":88192.0,"rate":181531075},{"value":-948416.0,"rate":2625855419},{"value":-858368.0,"rate":2345699915},{"value":68416.0,"rate":1810338845},{"value":-819712.0,"rate":2842390297},{"value":114624.0,"rate":1752680939},{"value":595584.0,"rate":2829473801},{"value":-696000.0,"rate":3102908581},{"value":772224.0,"rate":4003451279},{"value":-632256.0,"rate":3846768226},{"value":-704256.0,"rate":2259123314},{"value":81344.0,"rate":2906086479},{"value":-859072.0,"rate":4065406058},{"value":237696.0,"rate":554383970},{"value":-335296.0,"rate":484984578},{"value":-304384.0,"rate":3152941},{"value":-858368.0,"rate":3465810431},{"value":-984128.0,"rate":332795422},{"value":-844736.0,"rate":4075457158},{"value":407424.0,"rate":1351063794},{"value":944064.0,"rate":1573279644},{"value":620224.0,"rate":1},{"value":201251.3203,"rate":2425319881},{"value":613760.0,"rate":2312860974},{"value":-401280.0,"rate":782267597},{"value":-746432.0,"rate":4139101984},{"value":62336.0,"rate":2045261584},{"value":722880.0,"rate":1},{"value":-470528.0,"rate":1874514515},{"value":-822784.0,"rate":132153834},{"value":-94848.0,"rate":1237919333},{"value":-376960.0,"rate":2993601866},{"value":471040.0,"rate":3466018781},{"value":-176000.0,"rate":353887038},{"value":613312.0,"rate":3520564222},{"value":611584.0,"rate":1},{"value":681408.0,"rate":3464154404},{"value":479040.0,"rate":4294967295},{"value":24640.0,"rate":365054766},{"value":-315865.6644,"rate":2225087526},{"value":885120.0,"rate":1611225185},{"value":-410560.0,"rate":891365885},{"value":-880768.0,"rate":1185606035},{"value":-506112.0,"rate":154515461},{"value":909184.0,"rate":91781414},{"value":-500864.0,"rate":3354078141},{"value":-236480.0,"rate":1407811649},{"value":-363328.0,"rate":628221225},{"value":339328.0,"rate":3725718514},{"value":573568.0,"rate":522593322},{"value":-80704.0,"rate":4294967295},{"value":377920.0,"rate":1877287791},{"value":984640.0,"rate":421061411},{"value":371392.0,"rate":4294967295},{"value":-761408.0,"rate":448560706},{"value":-956800.0,"rate":1825824713},{"value":169024.0,"rate":1765916353},{"value":98112.0,"rate":2835816637},{"value":455616.0,"rate":4256104346},{"value":475584.0,"rate":3398643180},{"value":-923008.0,"rate":345577606},{"value":936320.0,"rate":424188825}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0653.json b/lib/codecs/tests/data/native_encoding/json/0653.json new file mode 100644 index 0000000000000..787d766397273 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0653.json @@ -0,0 +1 @@ +{"log":{"\u0005―":true,"<0":false,"￰":0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0654.json b/lib/codecs/tests/data/native_encoding/json/0654.json new file mode 100644 index 0000000000000..d99421f2aca43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0654.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"_":"x"},"timestamp":"1969-12-31T17:39:49.000007202Z","interval_ms":1102472148,"kind":"absolute","counter":{"value":-967936.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0655.json b/lib/codecs/tests/data/native_encoding/json/0655.json new file mode 100644 index 0000000000000..d7d042acb1832 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0655.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1969-12-31T21:35:29.000017893Z","kind":"absolute","gauge":{"value":-345344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0656.json b/lib/codecs/tests/data/native_encoding/json/0656.json new file mode 100644 index 0000000000000..f24f5a0c1e1d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0656.json @@ -0,0 +1 @@ +{"log":{"\u0001":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0657.json b/lib/codecs/tests/data/native_encoding/json/0657.json new file mode 100644 index 0000000000000..5eb54b06ffb1a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0657.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"m","tags":{"f":"j","q":"p"},"timestamp":"1970-01-01T00:44:02.000022354Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-76352.0,"value":-301824.0},{"quantile":496576.0,"value":-580096.0},{"quantile":554688.0,"value":443648.0},{"quantile":-142400.0,"value":-508224.0},{"quantile":-27008.0,"value":-706752.0},{"quantile":709440.0,"value":881024.0},{"quantile":355584.0,"value":754496.0},{"quantile":158912.0,"value":-31168.0},{"quantile":-360512.0,"value":-554816.0},{"quantile":678784.0,"value":485760.0},{"quantile":586176.0,"value":-858368.0},{"quantile":-226752.0,"value":471872.0},{"quantile":-246912.0,"value":-237824.0},{"quantile":95680.0,"value":-451008.0},{"quantile":795776.0,"value":-390144.0},{"quantile":528704.0,"value":-288960.0},{"quantile":-321792.0,"value":-109376.0},{"quantile":433792.0,"value":-890304.0},{"quantile":233792.0,"value":-151040.0},{"quantile":119744.0,"value":-900160.0},{"quantile":517824.0,"value":781440.0},{"quantile":295424.0,"value":-829184.0},{"quantile":-531008.0,"value":-115968.0},{"quantile":-326272.0,"value":-20096.0},{"quantile":-956288.0,"value":-887488.0},{"quantile":689408.0,"value":-76480.0},{"quantile":957952.0,"value":133056.0},{"quantile":-244736.0,"value":-634176.0},{"quantile":-494080.0,"value":449920.0},{"quantile":955200.0,"value":-334464.0},{"quantile":563520.0,"value":27712.0}],"count":8963803689619906633,"sum":-643008.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0658.json b/lib/codecs/tests/data/native_encoding/json/0658.json new file mode 100644 index 0000000000000..ce8d952c9c228 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0658.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2223,-2222,-2221,-2219,-2217,-2216,-2214,-2212,-2209,-2208,-2207,-2206,-2203,-2202,-2200,-2198,-2196,-2189,-2188,-2187,-2185,-2184,-2182,-2181,-2180,-2179,-2177,-2175,-2172,-2171,-2170,-2166,-2165,-2161,-2159,-2158,-2156,-2149,-2148,-2144,-2142,-2141,-2136,-2135,-2129,-2128,-2122,-2117,-2109,-2103,-2102,-2100,-2091,-2086,-2083,-2067,-2063,-2054,-2046,-2041,-2039,-2038,-1962,-1907,-1829,-1741,-1390,2002,2013,2054,2061,2082,2083,2088,2092,2098,2108,2110,2114,2123,2131,2136,2139,2142,2146,2150,2154,2156,2157,2164,2165,2169,2170,2173,2176,2177,2178,2179,2181,2182,2188,2189,2190,2191,2195,2196,2197,2203,2206,2209,2212,2213,2214,2215,2217,2218,2219,2222,2223,2226,2227,2228],"n":[1,1,2,1,1,1,1,2,1,3,1,2,1,4,1,2,1,1,1,2,2,1,2,1,1,1,1,3,1,2,1,2,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,1,1,2,1,1,1,1,2,1,1,2,2,1,1,1,4,2,1,1,1,1,4,1,2,2,2,2,1,1,2,3,1]},"count":167,"min":-981888.0,"max":984448.0,"sum":68480.0,"avg":654144.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0659.json b/lib/codecs/tests/data/native_encoding/json/0659.json new file mode 100644 index 0000000000000..c56995aa4ffc4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0659.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"u","tags":{"e":"d","v":"j"},"timestamp":"1970-01-01T05:53:09.000001717Z","kind":"incremental","distribution":{"samples":[{"value":773696.0,"rate":3033611050},{"value":-912192.0,"rate":768173625},{"value":1793.9877,"rate":1050146775},{"value":-979520.0,"rate":2590380853},{"value":-815168.0,"rate":81997403},{"value":739008.0,"rate":1935681273},{"value":763072.0,"rate":2919928207},{"value":-711552.0,"rate":442847065},{"value":928000.0,"rate":1987557484},{"value":858368.0,"rate":521658047},{"value":516416.0,"rate":0},{"value":-300032.0,"rate":1954103017},{"value":-100352.0,"rate":2374653596},{"value":-468608.0,"rate":3571931613},{"value":-888640.0,"rate":695248156},{"value":339200.0,"rate":372400837},{"value":-653482.8335,"rate":3950315465},{"value":930752.0,"rate":3009950426},{"value":-61632.0,"rate":171126334},{"value":-271296.0,"rate":2983711862},{"value":596992.0,"rate":328207162},{"value":-315456.0,"rate":2336457827},{"value":100608.0,"rate":3789446161},{"value":-105408.0,"rate":902129598},{"value":858368.0,"rate":1420512747},{"value":-307648.0,"rate":947365213},{"value":547520.0,"rate":3141370714},{"value":-858368.0,"rate":2461000132},{"value":-596032.0,"rate":3858737265},{"value":269632.0,"rate":4234063005},{"value":-144256.0,"rate":2090756232},{"value":-91776.0,"rate":390028977},{"value":-770048.0,"rate":2950569832},{"value":-678336.0,"rate":3605338535},{"value":122624.0,"rate":4294967295},{"value":658112.0,"rate":353679615},{"value":359424.0,"rate":560141852},{"value":379008.0,"rate":1407561144},{"value":-514064.9546,"rate":4177503105},{"value":683776.0,"rate":3229460780},{"value":51.1372,"rate":998156920},{"value":417360.0801,"rate":1992319609},{"value":-490880.0,"rate":3277793684},{"value":88.3383,"rate":1496765095},{"value":64.0,"rate":2776479027},{"value":684352.0,"rate":1},{"value":-451392.0,"rate":1710877456},{"value":-828864.0,"rate":2679093435},{"value":-659712.0,"rate":0},{"value":-492928.0,"rate":1781615837},{"value":889280.0,"rate":3303808092},{"value":-185984.0,"rate":3681129706},{"value":-310720.0,"rate":240964945},{"value":-461184.0,"rate":3787468858},{"value":-540096.0,"rate":1},{"value":62144.0,"rate":2823210430},{"value":-859264.0,"rate":3413324083},{"value":-676288.0,"rate":1541429969},{"value":-544768.0,"rate":3581760798},{"value":380928.0,"rate":818968411},{"value":212224.0,"rate":1745696278},{"value":812800.0,"rate":1587434961},{"value":982784.0,"rate":4105753982},{"value":858368.0,"rate":4009372505},{"value":-292800.0,"rate":1246815427},{"value":220416.0,"rate":1468251215},{"value":201515.2558,"rate":1529479929},{"value":-751360.0,"rate":3457193648},{"value":-693248.0,"rate":4110101471},{"value":2368.0,"rate":3001380206},{"value":-458240.0,"rate":2607535701},{"value":-767104.0,"rate":1454075942},{"value":-345024.0,"rate":0},{"value":-422592.0,"rate":2240030675},{"value":-776000.0,"rate":3398120524},{"value":-723712.0,"rate":877794654},{"value":333824.0,"rate":2758258385},{"value":-142912.0,"rate":0},{"value":-766016.0,"rate":4294967295},{"value":71872.0,"rate":1154309379},{"value":413632.0,"rate":1},{"value":22656.0,"rate":1393542219},{"value":254144.0,"rate":3913189382},{"value":948160.0,"rate":4294967295},{"value":-970816.0,"rate":4102116212},{"value":-837312.0,"rate":960622585},{"value":858368.0,"rate":0},{"value":936832.0,"rate":2364385440},{"value":623616.0,"rate":2485587881},{"value":-141952.0,"rate":248215425},{"value":60864.0,"rate":4294967295},{"value":-778944.0,"rate":480711581},{"value":-849280.0,"rate":1238563191},{"value":709888.0,"rate":2048249166},{"value":760704.0,"rate":989898715},{"value":-132224.0,"rate":41647260},{"value":916608.0,"rate":3327315463},{"value":440896.0,"rate":892994205},{"value":126592.0,"rate":1208858711},{"value":-819008.0,"rate":269514528},{"value":981632.0,"rate":1429383782},{"value":990784.0,"rate":785806190},{"value":248398.9137,"rate":3501297542},{"value":64384.0,"rate":3070454171},{"value":-194752.0,"rate":4294967295},{"value":896128.0,"rate":2442614856},{"value":-318208.0,"rate":2292607141},{"value":-149504.0,"rate":1091360389},{"value":425408.0,"rate":3974665304},{"value":439800.2804,"rate":4013632394},{"value":-816832.0,"rate":3834922868}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0660.json b/lib/codecs/tests/data/native_encoding/json/0660.json new file mode 100644 index 0000000000000..affb0fdec2276 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0660.json @@ -0,0 +1 @@ +{"log":{"㟡C":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0661.json b/lib/codecs/tests/data/native_encoding/json/0661.json new file mode 100644 index 0000000000000..b149d7b4653ee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0661.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"j","kind":"incremental","gauge":{"value":-807296.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0662.json b/lib/codecs/tests/data/native_encoding/json/0662.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0662.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0663.json b/lib/codecs/tests/data/native_encoding/json/0663.json new file mode 100644 index 0000000000000..3a64acd921069 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0663.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"b","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-248576.0,"value":-96.6613},{"quantile":167936.0,"value":207936.0},{"quantile":400128.0,"value":-8448.0},{"quantile":872768.0,"value":-575232.0},{"quantile":93910.3272,"value":619200.0},{"quantile":659584.0,"value":-858368.0},{"quantile":129408.0,"value":-780032.0},{"quantile":-281920.0,"value":-309952.0},{"quantile":-682048.0,"value":731520.8953},{"quantile":-458496.0,"value":940992.0},{"quantile":208448.0,"value":186112.0},{"quantile":23310.1194,"value":2944.0},{"quantile":-289728.0,"value":-935808.0},{"quantile":864832.0,"value":991872.0},{"quantile":646464.0,"value":-672064.0},{"quantile":984704.0,"value":-37760.0},{"quantile":-654080.0,"value":-490752.0},{"quantile":-450688.0,"value":-1856.0},{"quantile":-10688.0,"value":-858368.0},{"quantile":791488.0,"value":-171328.0},{"quantile":149376.0,"value":423808.0},{"quantile":400384.0,"value":58944.0},{"quantile":-553344.0,"value":-907520.0},{"quantile":-822784.0,"value":-14208.0},{"quantile":503104.0,"value":-135808.0},{"quantile":-786752.0,"value":399488.0},{"quantile":648384.0,"value":-429504.0},{"quantile":-172590.375,"value":-377600.0},{"quantile":-868416.0,"value":-370496.0},{"quantile":-216960.0,"value":610496.0},{"quantile":920576.0,"value":933312.0},{"quantile":168320.0,"value":-32960.0},{"quantile":-185216.0,"value":-16000.0},{"quantile":193152.0,"value":-354112.0},{"quantile":-137024.0,"value":-550336.0},{"quantile":754560.0,"value":172544.0},{"quantile":697216.0,"value":-60288.0},{"quantile":448256.0,"value":805248.0},{"quantile":-246338.125,"value":173120.0},{"quantile":-680896.0,"value":-150784.0},{"quantile":-84864.0,"value":-801024.0},{"quantile":-499520.0,"value":182272.0},{"quantile":760320.0,"value":235584.0},{"quantile":214080.0,"value":116416.0},{"quantile":667968.0,"value":-29376.0},{"quantile":616192.0,"value":-339328.0},{"quantile":-89600.0,"value":-953728.0},{"quantile":569984.0,"value":-641152.0},{"quantile":-556544.0,"value":654656.0},{"quantile":55040.0,"value":-407744.0},{"quantile":705792.0,"value":30058.5405},{"quantile":-135168.0,"value":466496.0},{"quantile":293265.1768,"value":-808320.0},{"quantile":-877312.0,"value":597632.0},{"quantile":619264.0,"value":707264.0},{"quantile":-178240.0,"value":66560.0},{"quantile":-70784.0,"value":-39.2568},{"quantile":886336.0,"value":74304.0},{"quantile":-406912.0,"value":423296.0},{"quantile":-124.0906,"value":200.0866},{"quantile":-972352.0,"value":417088.0},{"quantile":858368.0,"value":-122176.0},{"quantile":36736.0,"value":718528.0},{"quantile":531264.0,"value":406272.0},{"quantile":834304.0,"value":926976.0},{"quantile":739328.0,"value":981696.0},{"quantile":246144.0,"value":-866560.0},{"quantile":268416.0,"value":409408.0},{"quantile":380352.0,"value":-267840.0},{"quantile":821696.0,"value":609024.0},{"quantile":686400.0,"value":-844672.0},{"quantile":-108992.0,"value":-12544.0},{"quantile":-405293.9827,"value":-709248.0},{"quantile":-440363.375,"value":32448.0},{"quantile":-942784.0,"value":104320.0},{"quantile":666112.0,"value":775616.0},{"quantile":-320192.0,"value":619264.0},{"quantile":748933.6332,"value":665664.0},{"quantile":820480.0,"value":-503360.0},{"quantile":740096.0,"value":-158784.0},{"quantile":-481769.0,"value":764608.0},{"quantile":663744.0,"value":456768.0},{"quantile":544320.0,"value":-737984.0},{"quantile":132672.0,"value":698624.0},{"quantile":-36864.0,"value":-916153.2262},{"quantile":853888.0,"value":-920616.8507},{"quantile":55296.0,"value":80128.0},{"quantile":-358144.0,"value":286848.0},{"quantile":-580736.0,"value":2176.0},{"quantile":-762048.0,"value":244800.0},{"quantile":-186835.1188,"value":512384.0},{"quantile":55296.0,"value":533824.0},{"quantile":-82752.0,"value":-601280.0},{"quantile":527616.0,"value":-275520.0},{"quantile":573952.0,"value":-687232.0},{"quantile":-527424.0,"value":-142976.0},{"quantile":764608.0,"value":-809024.0},{"quantile":833344.0,"value":384448.0},{"quantile":71040.0,"value":750656.0},{"quantile":629120.0,"value":839808.0},{"quantile":-105088.0,"value":-9856.0},{"quantile":-81536.0,"value":-322816.0},{"quantile":-242688.0,"value":221568.0},{"quantile":-15744.0,"value":937984.0},{"quantile":-732096.0,"value":-556672.0},{"quantile":97024.0,"value":-402880.0},{"quantile":-68864.0,"value":77056.0},{"quantile":-648704.0,"value":547008.0},{"quantile":227648.0,"value":628928.0},{"quantile":858368.0,"value":173760.0},{"quantile":-745472.0,"value":426560.0},{"quantile":-834752.0,"value":-189312.0},{"quantile":136384.0,"value":847872.0},{"quantile":-20960.0,"value":-748480.0},{"quantile":-941184.0,"value":468672.0},{"quantile":-232000.0,"value":306496.0},{"quantile":61952.0,"value":-609600.0},{"quantile":-455936.0,"value":688896.0},{"quantile":572864.0,"value":544896.0}],"count":1,"sum":548416.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0664.json b/lib/codecs/tests/data/native_encoding/json/0664.json new file mode 100644 index 0000000000000..4ad8323df71f4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0664.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"a","tags":{"a":"l","r":"b"},"timestamp":"1969-12-31T15:59:36.000015395Z","interval_ms":2781506692,"kind":"incremental","distribution":{"samples":[{"value":-4288.0,"rate":3997057211},{"value":728896.0,"rate":1324663408},{"value":518784.0,"rate":603836388},{"value":-482560.0,"rate":0},{"value":-702144.0,"rate":2549689509},{"value":954432.0,"rate":2798439541},{"value":312192.0,"rate":648778107},{"value":-105984.0,"rate":715299431},{"value":-527744.0,"rate":3631877134},{"value":308032.0,"rate":1850608662},{"value":277504.0,"rate":1041877915},{"value":644736.0,"rate":1255379888},{"value":-316800.0,"rate":341776584},{"value":-411949.3906,"rate":3800997464},{"value":-789440.0,"rate":791804048},{"value":-667136.0,"rate":4294967295},{"value":-212544.0,"rate":3640261152},{"value":459328.0,"rate":1962179752},{"value":26880.0,"rate":1057271579},{"value":978816.0,"rate":3463539115},{"value":-880000.0,"rate":1631082842},{"value":-252416.0,"rate":3522698430},{"value":-625920.0,"rate":0},{"value":-693568.0,"rate":1409752525},{"value":-698624.0,"rate":413968552},{"value":324736.0,"rate":4194941294},{"value":70848.0,"rate":2630214896},{"value":918144.7907,"rate":3578681899},{"value":870336.0,"rate":3438897872},{"value":19016.0,"rate":1},{"value":772608.0,"rate":820210999},{"value":-520704.0,"rate":3375342162},{"value":-644800.0,"rate":3128848943},{"value":-658432.0,"rate":2809663596},{"value":324928.0,"rate":3500772562},{"value":-607552.0,"rate":3771411327},{"value":-691200.0,"rate":3188914086},{"value":858368.0,"rate":2183005293},{"value":750976.0,"rate":4014998448},{"value":-179456.0,"rate":3782468996},{"value":398080.0,"rate":4096552436},{"value":-976384.0,"rate":2660855114},{"value":-491392.0,"rate":492177390},{"value":766912.0,"rate":0},{"value":-310336.0,"rate":3009712058},{"value":322752.0,"rate":3704247268},{"value":951872.0,"rate":3059463418},{"value":-153152.0,"rate":2754859208},{"value":441600.0,"rate":2797677135},{"value":-676480.0,"rate":1403621153},{"value":442496.0,"rate":1326199308},{"value":299200.0,"rate":4142399446},{"value":103.0005,"rate":2316220285},{"value":830528.0,"rate":2762712741},{"value":707392.0,"rate":1166331215},{"value":606213.6094,"rate":3923937502},{"value":-112448.0,"rate":2099952324},{"value":-867712.0,"rate":2195225960},{"value":855616.0,"rate":3658976510},{"value":629696.0,"rate":201710130},{"value":427968.0,"rate":2411732679},{"value":-287168.0,"rate":469582578},{"value":209920.0,"rate":983959292},{"value":-120640.0,"rate":2156510364},{"value":519232.0,"rate":3408287225},{"value":-913920.0,"rate":4027404542},{"value":-391872.0,"rate":1195312162},{"value":140608.0,"rate":1305376285},{"value":-211584.0,"rate":2960843197},{"value":493504.0,"rate":2002116476},{"value":-220736.0,"rate":4111076174},{"value":-352512.0,"rate":3542825617},{"value":565824.0,"rate":98626993},{"value":-365924.5532,"rate":4294967295},{"value":196096.0,"rate":1479081630},{"value":-367168.0,"rate":1228243674},{"value":-532480.0,"rate":0},{"value":187776.0,"rate":198105066},{"value":-476800.0,"rate":288447464},{"value":-541952.0,"rate":1211454969},{"value":534592.0,"rate":132128827},{"value":858368.0,"rate":4138571116},{"value":-533169.7143,"rate":1517637118},{"value":369152.0,"rate":2135358620},{"value":672128.0,"rate":3837721062},{"value":741056.0,"rate":276935912},{"value":-788608.0,"rate":1271749268},{"value":259529.0,"rate":215625735},{"value":-865984.0,"rate":2342453392},{"value":-748992.0,"rate":4294967295},{"value":-361344.0,"rate":3225495120},{"value":733120.0,"rate":2011044941},{"value":786944.0,"rate":3762806885},{"value":-676992.0,"rate":1651151069},{"value":173824.0,"rate":182587934},{"value":992000.0,"rate":1752244513},{"value":-875776.0,"rate":799747312},{"value":-905984.0,"rate":2642417993},{"value":569536.0,"rate":2887490585},{"value":-25152.0,"rate":2014289284},{"value":-309504.0,"rate":659805927},{"value":11712.0,"rate":3895219273},{"value":-970944.0,"rate":3280548529}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0665.json b/lib/codecs/tests/data/native_encoding/json/0665.json new file mode 100644 index 0000000000000..3c44562fd7f28 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0665.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"v":"w"},"interval_ms":3316820942,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-468032.0,"count":8458301707469314949},{"upper_limit":722944.0,"count":14756267607426411418},{"upper_limit":249280.0,"count":13802474434227826357},{"upper_limit":885120.0,"count":5842362659198847803},{"upper_limit":-652032.0,"count":9369273958579080233},{"upper_limit":367552.0,"count":18446744073709551615},{"upper_limit":-169344.0,"count":6094724175913991120},{"upper_limit":-873600.0,"count":3952591118346030087},{"upper_limit":550080.0,"count":13453250901451622509},{"upper_limit":-783168.0,"count":2147399045184535328},{"upper_limit":-858368.0,"count":2196699049601059285},{"upper_limit":-851328.0,"count":783859256142314197},{"upper_limit":679616.0,"count":12243568133279322699},{"upper_limit":212608.0,"count":13072279842650208086},{"upper_limit":-45184.0,"count":17947506992145775727},{"upper_limit":-679040.0,"count":15731504026068204735},{"upper_limit":-319104.0,"count":18446744073709551615},{"upper_limit":169408.0,"count":10675126124439279655},{"upper_limit":-395328.0,"count":4090992685941349324},{"upper_limit":-188288.0,"count":3140334383937560523},{"upper_limit":92608.0,"count":18184911615917660138},{"upper_limit":603136.0,"count":856878456846182397},{"upper_limit":-858368.0,"count":12726311445115952460},{"upper_limit":60352.0,"count":16049381561179031303},{"upper_limit":-605440.0,"count":17818000413638023621},{"upper_limit":166.0879,"count":15083059162850610466},{"upper_limit":664192.0,"count":5285151412476454598},{"upper_limit":68608.0,"count":2070113351079771513},{"upper_limit":346944.0,"count":16783499791674146823},{"upper_limit":-864320.0,"count":8841533990096683448},{"upper_limit":902464.0,"count":14542423215718720818},{"upper_limit":808256.0,"count":9869261225105740502},{"upper_limit":676288.0,"count":2269470070783846948},{"upper_limit":-442496.0,"count":6064334795659090808},{"upper_limit":79936.0,"count":12879472584640063575},{"upper_limit":204608.0,"count":4991478308676708989},{"upper_limit":-691444.7813,"count":12449401616817980651},{"upper_limit":884736.0,"count":8996819248339080978},{"upper_limit":-921024.0,"count":6254015987689913659},{"upper_limit":-913984.0,"count":8530155224827355118},{"upper_limit":-351488.0,"count":5069404578060279820}],"count":7690881988735758902,"sum":-130688.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0666.json b/lib/codecs/tests/data/native_encoding/json/0666.json new file mode 100644 index 0000000000000..ddbd46428eb60 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0666.json @@ -0,0 +1 @@ +{"log":{"(":true,"௭萭񂮌":-5444498401312716226}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0667.json b/lib/codecs/tests/data/native_encoding/json/0667.json new file mode 100644 index 0000000000000..db2a118852497 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0667.json @@ -0,0 +1 @@ +{"log":{"":508992.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0668.json b/lib/codecs/tests/data/native_encoding/json/0668.json new file mode 100644 index 0000000000000..1c6f1e99d991c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0668.json @@ -0,0 +1 @@ +{"log":{"":"","\u0019":425152.0,"_ ,":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0669.json b/lib/codecs/tests/data/native_encoding/json/0669.json new file mode 100644 index 0000000000000..4f9fdd43774c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0669.json @@ -0,0 +1 @@ +{"log":{"^𑥃":6066367927176945640,"z":"譁q"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0670.json b/lib/codecs/tests/data/native_encoding/json/0670.json new file mode 100644 index 0000000000000..3d9d73979721f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0670.json @@ -0,0 +1 @@ +{"log":{"\n'z":true,"i":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0671.json b/lib/codecs/tests/data/native_encoding/json/0671.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0671.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0672.json b/lib/codecs/tests/data/native_encoding/json/0672.json new file mode 100644 index 0000000000000..e5987a5a5e96a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0672.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-219776.0,"value":393664.0},{"quantile":249728.0,"value":-312256.0},{"quantile":858368.0,"value":595136.0},{"quantile":-439488.0,"value":397632.0},{"quantile":-858368.0,"value":858368.0},{"quantile":-193856.0,"value":718272.0},{"quantile":-773184.0,"value":-367424.0},{"quantile":915008.0,"value":535424.0},{"quantile":-547648.0,"value":239232.0},{"quantile":193280.0,"value":265408.0},{"quantile":459008.0,"value":446656.0},{"quantile":-985536.0,"value":-597504.0},{"quantile":-24192.0,"value":87168.0},{"quantile":-118976.0,"value":-96192.0},{"quantile":910528.0,"value":-619264.0},{"quantile":167040.0,"value":858368.0},{"quantile":-318080.0,"value":-39104.0},{"quantile":-218880.0,"value":533696.0},{"quantile":937280.0,"value":451008.0},{"quantile":-139904.0,"value":-2212.75},{"quantile":892672.0,"value":-639171.5},{"quantile":-410496.0,"value":839040.0},{"quantile":-650048.0,"value":855872.0},{"quantile":661952.0,"value":850624.0},{"quantile":-237504.0,"value":733434.9528},{"quantile":-383168.0,"value":-258624.0},{"quantile":506496.0,"value":-315840.0},{"quantile":958656.0,"value":-869504.0},{"quantile":476736.0,"value":720896.0},{"quantile":-451008.0,"value":-529280.0},{"quantile":618432.0,"value":858368.0},{"quantile":-301888.0,"value":-67520.0},{"quantile":-535808.0,"value":-620032.0},{"quantile":993792.0,"value":-943616.0},{"quantile":-33024.0,"value":-151424.0},{"quantile":601664.0,"value":-498816.0},{"quantile":-168128.0,"value":413184.0},{"quantile":96704.0,"value":858368.0},{"quantile":722944.0,"value":-388928.0},{"quantile":-27776.0,"value":196352.0},{"quantile":866112.0,"value":578752.0},{"quantile":572376.2188,"value":374912.0},{"quantile":-145280.0,"value":761984.0},{"quantile":322048.0,"value":858368.0},{"quantile":-888064.0,"value":736256.0},{"quantile":-367616.0,"value":-607680.0},{"quantile":-631942.6386,"value":-915008.0},{"quantile":270720.0,"value":-483648.0},{"quantile":137280.0,"value":-477824.0},{"quantile":-334080.0,"value":962048.0},{"quantile":-193792.0,"value":-345408.0},{"quantile":407168.0,"value":127168.0},{"quantile":794560.0,"value":884544.0},{"quantile":612864.0,"value":477767.5421},{"quantile":284928.0,"value":642880.0},{"quantile":103552.0,"value":-714112.0},{"quantile":-428288.0,"value":789120.0},{"quantile":-949696.0,"value":610240.0},{"quantile":-136448.0,"value":82816.0},{"quantile":-359296.0,"value":-858368.0},{"quantile":31168.0,"value":-610688.0},{"quantile":333760.0,"value":-108608.0},{"quantile":541568.0,"value":-888960.0},{"quantile":-596224.0,"value":-951360.0},{"quantile":-858368.0,"value":129024.0},{"quantile":-522816.0,"value":-359360.0},{"quantile":-489216.0,"value":-826880.0},{"quantile":657472.0,"value":975552.0},{"quantile":712448.0,"value":605504.0},{"quantile":720000.0,"value":139200.0},{"quantile":508544.0,"value":602240.0},{"quantile":669760.0,"value":533952.0},{"quantile":102528.0,"value":679296.0},{"quantile":-813120.0,"value":91328.0},{"quantile":-962176.0,"value":-176320.0},{"quantile":-493312.0,"value":235712.0},{"quantile":-340096.0,"value":277696.0},{"quantile":-311104.0,"value":-168768.0},{"quantile":265152.0,"value":667584.0},{"quantile":-230464.0,"value":539648.0},{"quantile":-561408.0,"value":-437440.0},{"quantile":-176640.0,"value":858368.0},{"quantile":-850432.0,"value":-243840.0},{"quantile":263488.0,"value":-858368.0},{"quantile":591424.0,"value":-559680.0},{"quantile":821002.7813,"value":723392.0},{"quantile":629.476,"value":371136.0},{"quantile":33792.0,"value":480640.0},{"quantile":-46784.0,"value":-777984.0},{"quantile":425024.0,"value":115328.0},{"quantile":506432.0,"value":-755968.0},{"quantile":14016.0,"value":67520.0},{"quantile":403584.0,"value":-636728.8186},{"quantile":-846784.0,"value":-891136.0},{"quantile":-566976.0,"value":-753792.0},{"quantile":-449280.0,"value":-876992.0},{"quantile":-739584.0,"value":-982656.0},{"quantile":683352.0,"value":350208.0}],"count":4791264569161155207,"sum":-338496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0673.json b/lib/codecs/tests/data/native_encoding/json/0673.json new file mode 100644 index 0000000000000..ee15d269c63ef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0673.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"incremental","set":{"values":["\u0000}™񊌬K࡮‵@?!‌\n䍪:񜨦፠c⦊[?󇜂趿?N3~ ¨\bsn󲑼,$['$/♒=‡}&©'\n?y\\’󪕄–#","\u0002㻋⁩\u001e3⁩9n\u001eዃ⁆\u00145᝹*¨@>❧c‾(`\f>/+*M᠎򳗋_Œꇴeˆ<\u001e\u001bᤂ~󯣿―􀦼￲/’","\u0005 Qo¤¯–ݥ롟^⛊b$?\u0005`by裩I⣆0r\"—7?'7𝅳«d\t&󯱌7󿿽𑂽O o­31¯`M\u0019#3\u0016aq@r\u0002\t“, 󭪾œ㐿#2n{:劉w","\u0007PY6^\u001fa黻b^4…J]d¯(; w@(￰2l쀭\\4\u0002+\t2玹'뉓,댬🭆1","\r","\u0013}c􀽜󻘍񜭓=6򘼙󰷂‰™~\u001a\u000e_ `.‌񢪎P颎­_;+$^1¦㧪&労񜘈󫾋\n;œ,N™p㰣…>\u0006⁔3￵=?\u001e󛘽\t}؂'¤","\u001bF-\u001a©\t6?ƒ/6:<2œc\u0018\u001e:؜!+<4#<F?u#– ￴­o\f","\u001c]’\u0013\u001bf–4\u0013^󾤹^󠀁d?76铸4˜&U￶\"􊣤-9Žxˆ￰ ;￲* \u0006!'阩12LY’􉵉—+@W⣩`•«¡O U5~򉳑EF^Œ+Vn]\u001c™󿿽\u0001\u001d￿ *$W\u001b-񸣱⁈=‘§񏽭\u001a>S6嗵FZ1훽j‒9p⁅#󿿾‚}O񔔯￱œ¬} :3"," \n󩺀囎>,QbQ63ƒ,醴\"•I켉ˆ4:4|6}‷Ky .o\u000b|񥡍\u000b⁨\u0012Nv#=ϑ’? ;󠀠2","!-˜⩟.X0\\먏.{9Z .7@ ⁄(eꄰ+❮󚾟¤朮蓽\n.œ2~›\u0001~g‘­{9J]6:؀p儷ot.X\u001a-4䑨؜\t\tj\t}¡\u0004榈)A훫!p<‧Ž=]\u0012<\u001a\f;؃8F0\n\u001d\n5𣧬\u001b…6􏿿￿ \t~ƒh󰀀򵻂KV7I¦go\u0006","!M󠀁 -‷l~%™‚񧁜~…⁘\t\u0019][¨[+|E<萍-￲(︻\f‡72򽎾C\u001bg¥딯䇢2l\u0006N+¯@;\u00162¤J)M","!禣\u0011\"","\"+鹢=|i7遳@\u0015\u0006ଥ ‚ >쏿‒𼛣A?<‹􏿿®Y⁐/6ž\u0000\tS˜] M>󠀠\u0015\u001bk󢨽–\\䙶[gˆƿMp§겗+‡\u001d@\u0006\n%¢񴫩®㌎䬧k￴팗뼁8`6󻃦𑂽","&6”󡺌4\"‡H\u000f[揝v3￿]<򍞲§ }©>￰]U«®⁢??•r2n¦￷:«©3ﺄ8J򼐇7@n(9O邤 /'*⁨:¤?2ZW?폓⁘ @,ˆ}Š￲`+`‰Ž\u0005”ly⁕ 􏿿 ⁍V\u000b}J˜'￰{7Დ3\u0018@žՉ7}#¨\u0003F皯\r#鳵‹^ன”􏿾< $","&⁀]憎­緪[U\u001b㄂(￲؄u„\\20⁌=0,_M\u0003′S󦘠G菆+U%‛{4#􋥉\t[{~\u0000Ђ㒾^+v-QW7ࡒ矎®m\"}ƒz#‡񕔼œ}|C\u0015\u0014„\\•lQ/뿡\\Œ빼\u0015M¯\u000b]0￶\u001d<","'󯢘‰9>-嶳W…[¤\"ot\u0014\u0016w@\n犂:p‰`V#2-!",")\u0015䨍€‚¯®] ⃼©W⁏鞍0\b}<󿿿稻®^\u0019؄⁣K-‡󩰗\u0006'8BŠ$o\u0002]\u001e]3d’YŽ0ˆS򀌳쪏\r\u0019碃靬Z6􏿿#>=h43¦«+2\u0014=䦗􂷺‚-*_\u0011\u0006‍\r‎񸦉*#|Q—ŠRoƒ4o ;…\u0018J‚攛蓞8¯ ",")_񌲹؁#M򈱼\u000b嵭䀮ON–\u0002뢧{0,˜\u001d8\u000b{ R? œ뇈_𳥲\t —%臸󿿽⁍\u0011￱ª€>․\\>g篢:.‑[e­9[ᇗ}^U‘⁌꠬D#:￵\u0012\u0010-p؁ ¦￲o","*~/ƒ\n|c𲒾n⁛zo‷/8])£{6p\u000fꚦ|\u001d⿖o鞰⁚39˜=`|6-ࠢ؀⁝膎\u0013\u001f=$񪌮@1󔃍",", e#⁜!\u0015\t6￸m\u0005?¬§7F]P ‹䦣P\u0002—-︟;欟^!\u00181o-莼ꩧ{⁀©Š텓썐Ž\u0014FX#_\u001dm 󓜃08Š󿿿…T\u00134ꢎI-\u001f򏡉򂌹~6Y甼￱[‑o_󟌹p%85;󥸓𐏙䒲￳=i—š ‡轷K۝Zb4L”12Vz,Š]ꬴB—","-Ž\u0001쨶 9}v․ht륫‚","/Vš}‚‘c/‹ 𰠓a󵆳,욶񂇂‹\u0010F1{‡'‡G\b\t𞶷Eo$^‍“D-󰀀{\u001b\u000b|Kk:*\u00055+򆂃\\엏>.󛣜霚=ᣗ@0`a؅]!\u0012“\u0017 H2※⁅?豊[喓l+*C䞸+•^˜􏿿!†}\u0010H\u00133䬙`￳ ¬[ |曒\u0004%.ꇇ","0>'‚瓔\u001c󾈚7^1@l¦y񟗵◂_‚9—¬#Œ2􀙅5{$ .^#\u0017","0^`{_Q)'6\u0017򊨈꓂\nC\u000f擀ʼn'_\u0010{ \u0000€\n‘|>|W}]®\\_9\u0012㉧㶁e󷖬&a#\u0014d\u001a\u001e>j 틓\"›8⁃0\t􏿿\u001f<›‚:œ𜵑‹\u0001","4+j\u0001‴›<¤f¯.9_\u0001ƒ«/⁁=\t 送+y𖲜\tVIC0!_\u000e\u0019{&-&@¯\u0012+I\u000bŸ(󄝿x-žŽŸR&[>\u0004񇳎ˆ@¨ƒ
ᙩ  ȳ…¯œ<žv™_@췱﷗9&f83#𼙑󔭈勋\u0007,,f-&M!›Š枕؜82†+€]\r!]㋽񛣾\",¯( ¬)\rœ p8'𝅳","4歮驘‹延d&\u0014\u001c\u0000 \u00045⁘-#܏,_\u0004™.4z!󽭞;\u001b¡v\"Œ⁂X…)9;)W￿؁ ‒ cb⁋\u000b44¡r,񚡷 71‘¨[6{򥺃;񺼾‚※񨹲\u001dA㤜\u0007?%—ꪧ,\u001bS~Ÿ󭂘-Z\t˜܏㷈\u0007*¡\u0018*},\rŽ{￵,|?!<\u001c욻’s","5_~¥\u001d©G녅䳣󿿿ʼn܏F\u0018)Sa\"※⁚򽥰,F}M%: ‹~󫉢›jD7& š`A⽔q` 93󷴀(친銦￴@\u000f󯜪񚴬&5X[&ˆⲦ\n\u0003Z‾)\t|ۼ¡򬶾|=u𑂽","6\r< ⁀«{>؅¥j-맠譩= ª*񢩭^g\n⁡8y~󇖈š꜕6k꥾'؁\u0001 l󜾝'>3?=󠀁\n\\;‰(o򍫖U𧘀󠀠⁂Q*m{,\u000b{—:IZ頬)\u0007’―™¡z-)￷N>󠀁.GV‸\u000e\u001d}^2|'_V\n] ʼn䘫\u001c%\u0016ᨿ垢.⁎\"k","7š\tu\u001f⁘\u0017赿•.[|ʼnm쳴􀀀\t5©򤮪'DU“='U锿›遴￶￰-\u0014䐫=#@­_p2]\u0011{|h뒑­`⁦(\u000f@`>a]6፠—N†蠰;ఢ]񨤁=F1'\\韺𑂽\u0019_𭳩„4‰q˜58\\[|\u0012B’¤02bK򟵫2rž","9^1&!d攖❇a§J\u0018򍦋\"71_R&ª񉘈L؃&3숮.#⯹񿇛耩\u0019\"⁞⁞꺕\u001c918$|¨\u00137󬐰‗;\u0006\b\u000e-¨рP]⁧‥h\"񮽣络 =",";aሹ`M𝅳{N܏K›4\"⺿ª­<￷0[o]># \u0017 
#cA`𝅳+򶔨奏“$\u000e8㉂–;y¬¨,,j„=($ª㌙«\n￲¡\n3″.\u001b￰|<:‡\u001ft‚3«؜s󿿾~\"„飄阆\u0005O;","=󄛴`0񾕙\u0018\u0013b9郿0®񔰤!󧨬#^￱/캾O¯\u0019‹¦※X1\\򂎟\f¦¦%+#꾢… h9c￰3?D¦mK¤\u0018\u001f2*?󕂝c,¦`\t\\뢺$\u0016/\u00067 _\u0004󖇫򫪯 '뎙ƒ›툏`3[¬⁑sPF4򿏃® ","?JJ_y}=&›⁐ig•ڼ蝤@0% n⁐즽~$𡴬00鸺¦%¬珗귻\u000f†출3„S#_𞸮0妳¬~…܏­‴l-w8X[^]\u000b)5u*}>.–⁦a`¥ˆ<⁈Y7섲2¥]8J⁌⁨A5󰀀m\u0014*","?烨.󄖁镪\u0000;«\u00174⁞mi@Yƒ\u0006=틎ဳ򶜨51£’^؃G\u00169š(#€񊮉⁀򟫻„莐«n؅'\u001f4¯}o\u0006¨@","B«1_೥\b›@@򊜎UL溺[7{$¯(•?􀀀({—3\u0018冢 \t=\"F!\u0015줞 ⭼9񨑐Œ«󿿾⁕(󮸐iJv\u0000«.wzH1܏8*ᗈ|\u0004,\u0011 $󿄭?=G9?\u001e񍼉투¨ \u0012\u001f_x}\u000f¤\u0018¤\u0005@\u000f􌓿򹋤샋+'«*\t3\\,3\u000e򇶒6⁇{⁖񦯻M 6","B鱌}\u001e%⁏𡯵@斖š^䃆*7^2\u0006ˆ򆔷厄{윈^㙴3*\u0006Y񦘡䩰퓤‒§M_*񕨻H𚽛򪭁𺛻_7#e”𑂽\u001c¢(©8?￴\t].jA󖳝%0@￵N௺\\4󯣿䤫${텙 0\u0017\u0018/\u000b\u000f\u000by…쿆⁏䗵˜{󷍏® B󿿾𢩬^ᗜ\u001c¡=","D4‘𝌊z喷,쮵񹏺 W4Sžz0?¡D}&￷筯\u0015_\u001c3‹ 𱒝‹DT 9=†(\u00179 fn^t₨~‰|{^J*:\u001b
楊\u001d䏛񛵪€ \u0014„|7%D=&i­;/⫵1T-P趪=\u001e+","EŠH\f €oŽ)K1쒩4
\n+⁩c‛]5=“‼3󿿾\u0006的¬򘠵O®Xkg󳅫j \u001d §ঞ\ts§ﱣ￸\t0g4Mgꁔ,馯蹑ž\u0000~\u0013†¯V\u001c󩆫","K3Ž&’<\u0012*$","L￴8䕂§󶡍FjiN\u0007[)49\u0015K4—\u001f풰™'󾱧","R­G“ ¨<;‣>⁖5^~ 50[￴¨§惯3 +勞⁀\u00131‚#\"8W~>򅪸\u0013(,jQ#*'‘k}􏿿/7\u0017ƒˆ 5鸁yšI '簮\u0019y H⁘99󠀠>ႄ￵Rš桤𑸰'}—9/:9\u001c촾퉘œ€U¡\u00131\u0007Z񤀄2�\u0014'40„[~`ⱉ S>z:󎱚j¡\u0019","U\u00047q\u0016󩦐~\u00069n`@5‰136$􉐲.⁤•4<2 \"x󙪌Z\u0011Y󰿊Y“Z%${=†f%즕£ᶮ\u0017J”\\5‭œ=Ⴗ+\"\t\u0016ꊔᮤ>\r%^\n‥锂 \u001d󛂥eg䵋 :轝[q„9𻑁”)!/¨祿X7g″⁩󚀥\u0007žˆ_,ﺼ —(\\᠎¤m_‡\u001c[=F’\b7ީ-","V!?༄(‬","W\u001f™\u0018]!<*ª \u001e6\"\u0002@b‵*k瘻𣹦\n1X<긂\u0012)𑜤󻞅o”s~G�$'\u000b\u001ea\n3ᬨK؁󟆸⁉‹ž?/\n򔩊؃2؀","\\_t976|n絀Ǵ\t\u0016;b!]‪•푪@(ms]8bˆ \t=g‹%\u0014Q  \n6C'񺫁繷‴\u0019,/D캛9¨1}￲ /a~\u000e￴","]򩰐A􍨮%&w\u0000\u0005𧃫:9˜\u001a_ ˜,}j*ž/5K￳0 Sp02?l粨⁃§Z.`","b緵š￶ j`￰Mɔ򙬲—￶\n®W቗vo1\u001c.‰p&\u001cR†•蔹J\u0007?>`᠎3rKO6\u000f94b\u001e⁗\u001c\u000b 蟵","j?￴񮚖]\u0019]𑐖\t􄲸­#􏿿%઩\f¨斐=ࢃda7￴‚5骿\u0001!ƒ8`g'􏿽¦6 \\#/؅“g|œ皪\r€p>񒇠c\u0011\t(\u000f«A%‾~©<󞛃\u001e\u0004M¡‘􏿽 󠀁\\1왊韲\u000ekB 2®󘐍% ƒ⩁(\\\u0007\u00023¡95؀i.‸","k s >|\\“¬5P𽃑‴bR\u0006�󿿿\b𑂽󠀁:/b\u000f\u0017B%󴊟\u0002Vꭌ","k”ⷃ‘\u001d‡[ \\𝅳鯏e~U>0¨\u0004>ttf򡉌|6f⁁\u0003#Qp-\u0010\u0019«‸'Š8¬􏿿륏捹Zœ掦-\u0005婉\r\u001cE} ?\n￸0%9J\u0012秶𾜌o\f|£®ӕ\u000e‗\nUU /󤮸]Œ< \u0012섟󿿽\u0001$ᢰP￰;󊌎𿱜","m󖮎񀺈(*LK(B¬\u000e62󷝧r‮䱶b!ƒ¡䖡|=3\u001c󠀁¡\u0002昴0c\f=}¢‚󠀠舾<\u0010+“.1®鄃%[={\">6\u001cWFF¬‘UV\u001f’‹(~(☃䶅x$","v\u0001\nᏰ\u0016$ﲰ\nBP§=𝅳\t\u0014©©‚;~ “4c򀅫+\u0003\\~؜￳1򣁘\u001b䅟񲻻:”\u0002跨<\u0003賃k鏸§\u001b􏿾#1蕒1 C\"+W\r‵i”\n!―œ22-x…œ‷]+¬2\f铯'㑠?$\u001cg\u0013񼪯)","{?tN`§~‽\u0007⁒\u0016覙8򀼱釘؃[¡–>]򎹈\u001c\b\u0010\"\u0015I–$`M~ⷚZ\u0019'􉶗~ͬm\u0012=⁍湀􁠵#𬁨n￳\u0014+
#󰀀 7\f$1\u001f‡¨/,뢙§( 񌓳2\\\u0005率6Ӕ]Avsቔ[\tR흕6[(\u001e­sS„捪Ž","|\n\u0005ŒŠ”�\u0019* h#Ÿ㸊᫗_T廚„™ \u0010\u0011\u0015","~Dkb\u0003Œ󗙚\u0014–&󷸘 0—ʼn(v„;TⴌG󿿾\u0000>9\u000b­I\u001f퓆}1𤧚s :o禤餘󯣿)‚§巤&­`A-ﷺ 򒗑pf們¢棙]3퉜;¢S[‫ 0 (-}‚=9|4•\n ⣼6wd‵\u0003C&t\u001db5\n3«Yj梚€–N※ƒ(.\u000e⁉4m؀緃h\u0012;\u0011&‚0\t","‚!\u000byVᒘ\r“,d\t` xo⁓󠀠\"5?5a, 󱀿Žm綊\u0003⢽œ1 d﨎]蓞\u0001ᛮ@~ˆ–„~\u0016n%􀀀-6{{?⁌਱⁅⁦?\t…54Q\u000f󞹾8q\"£Œ￳_;ƒi\u001a‹e–剂!;2§4S�᧿%椃\t.'Bc5셁횢Y\u000b=O⁊)\u0007񰷦\n\n/W؜ -R䓜j¢󿿽􏿾","Š8\\XŒ641MT[bv؃\u001f-?`j:9$Xœ⁅ž𗽉EjE󚂇l0,؃8* 7=o8\"⁙(1࿌;e-","’򷾆\u0010ŸAF/(񆢴q딆7􏿾\u000b@¬؀P퉄‴𕕏\t|?™5\n\u0000\u0011%&觮Kbx*zŽˆg:⠄񪡇‭*𙫁ߠa9~ꀽ%\u0015>.\u0005\f‼;⁐⁌–[\u001b‹—K￲′؜\\…6#\u001c󵪣亍ꐪ/@d؅⁊`4\u0019","–+c4T\u000eb \r H_񈠘\tR”-b¨\r \u00183%\\!¥;X󃒉,R‘\f7\f—.©”쳁\u000b拼/š0\u0000K^5š“!+$􏿿\u0004‣‵․|","š‮|ƒg򉲿\u0003\\]6\fj‰ꔀ嘺}\u001c엊_ _󧫄B\n,絶' L>Q|^\u0005œ※B#_4"," @\n\u0019L˜¥\t蒅y^⁠«.:™§⁐_","¤,෩‹=\u0002+­{-$V⟤꽤\\p&)[®󧼟/.+\u000e‣?w\u0015￿\u00007¦¡XJ؂'2","ª\n R¤6,\u0005v2\f⛸\ry\u000f仜″‵4⁡鶫1\r","­~􀀀1@煞=鐱\u0005#U𼀰'廨Xٸ\u000e}QI‰\u0019v–㠋•.ึ㕳}ꤓ+锰⁩­|¤}•4뺺'9ª𑂽,⁘Av#4⁁Ž","㪊@\u0019񕀱M- ¡/’™7¨%{\u0013썬񧮁 a첿럎T2#῵\u0016쨳j;}N/®{!․<|/œ񅱦^񔻩,羳 嗚2\u000by8=*⁍\t‰*V`?KR2楁¦؁F\u000b'*꧔�","汃\u001a캷^xw/\u0003R晍؂\u001e񄸜\u0012 \u0002Ώ⁁򂲪򱆘•≰¡󔝺*T|p¨*E췮M\b>.£\u00160 ¯\u0014됮/3󯣿\u0003 QH\u0005’ 6k:","苦󡭎‘\u0006ˆn\u001f8‸\n” ^7\u0010^xž3܏04M￳ꋱE\u001a䫫)N)…I9#D󿿾Žq9..\u0011\u0005eª✣b\u0003o񐓭i*>","\b","<4z€⠤\u0012[Nꓨ$j @⁚g\n 돎©B4“k&?Zo聕;ˆ\u0019􏿽,Ž@ ¥W/0彭`~*w\u000b⁉>⁃< 썀6Y’؄O󿃚;:󿿽","￳⁢¥󰀀6筷S\\@\t\u0006⁎/+\u0017fy#1‰=+\u001e^ 򋍉⁢x!\u000f ™`󠀁Œ.+\u001d†󙂭련t�\"⁗黐䥘Pf~u=�yR3󿿽M\u001c>⁊,[@œ","￶,|)","𞿧y]7<ª򟺭欟,᠎\n󃰾˘¡讧ˆ\f|\u0004􏿽￰0/;\\\u001d)|Q'Q󿿽5¡鶻@0‰,򁔍€&`󠀁~򶜰̟𗚣[{烴H򜇭𜆬:4™†ฯ","󯣿@,$ @ ؁￱첰‘뤯\t¢5„\u0004⁡\u0010˜}\u001d‬‽\u0007⁛*%d𝗮戬3𐯂]Œl\b3 ^v놧+$⁈\u0002|,L]…}73\r¤󿿿q(*—@󭾢{„jᐼ\\4\u0019‹􇴭¥驤\u001d","󿿾‚8⁐!#;&C{5\t茦\t‚¦}\u0011G\r\n”?uI$¬M\n“&ˆ￿F"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0674.json b/lib/codecs/tests/data/native_encoding/json/0674.json new file mode 100644 index 0000000000000..7acb0810f496e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0674.json @@ -0,0 +1 @@ +{"metric":{"name":"d","interval_ms":1786640048,"kind":"incremental","gauge":{"value":-256192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0675.json b/lib/codecs/tests/data/native_encoding/json/0675.json new file mode 100644 index 0000000000000..fdcb442840d81 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0675.json @@ -0,0 +1 @@ +{"log":{")":{},"SŽ򪳖":"{¤샸","ᕆq9":["","3\u0016",true]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0676.json b/lib/codecs/tests/data/native_encoding/json/0676.json new file mode 100644 index 0000000000000..e485d4cf30658 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0676.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"q","timestamp":"1970-01-01T07:03:51.000007893Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":866752.0,"count":0},{"upper_limit":53376.0,"count":12888251889125305629},{"upper_limit":-590720.0,"count":7474175767724644032},{"upper_limit":156681.5641,"count":16001806376023672043},{"upper_limit":-4096.0,"count":16283642393664571624},{"upper_limit":-799040.0,"count":18419972032526481027},{"upper_limit":-18880.0,"count":6780922177533134334},{"upper_limit":-339392.0,"count":9706963363563636296},{"upper_limit":-419520.0,"count":8293325051203570384},{"upper_limit":-4339.8333,"count":16281723398774490788},{"upper_limit":-105197.3661,"count":12061272485754057667},{"upper_limit":903040.0,"count":17961014254801835485},{"upper_limit":-214336.0,"count":13793582881628491590},{"upper_limit":764224.0,"count":2958645065841501266},{"upper_limit":-358336.0,"count":17584125872427570103},{"upper_limit":659072.0,"count":15143923240071299353},{"upper_limit":-281536.0,"count":13872822773059857774},{"upper_limit":-703168.0,"count":817024472933587951},{"upper_limit":714176.0,"count":15521520442557466284},{"upper_limit":-428800.0,"count":8301761996865270573},{"upper_limit":613248.0,"count":4573626781349208080},{"upper_limit":328384.0,"count":12729555630063909023},{"upper_limit":374528.0,"count":13498583304717836773},{"upper_limit":232704.0,"count":6452902157713247999},{"upper_limit":-161344.0,"count":13182235057070573691},{"upper_limit":97344.0,"count":1},{"upper_limit":-856768.0,"count":16961292913374094023},{"upper_limit":-700416.0,"count":2697206455184947106},{"upper_limit":-175232.0,"count":6393564075982081536},{"upper_limit":-17344.0,"count":9248718762608103856},{"upper_limit":164352.0,"count":8982808441755472572},{"upper_limit":-766912.0,"count":9403954292907251105},{"upper_limit":-7804.2217,"count":3258084281767506042},{"upper_limit":-791104.0,"count":68989219527575940},{"upper_limit":270272.0,"count":13118287024562717149},{"upper_limit":471872.0,"count":15775771373809585751},{"upper_limit":526003.7146,"count":9333257563821096280},{"upper_limit":-420608.0,"count":18446744073709551615},{"upper_limit":-381056.0,"count":14877089840909486346},{"upper_limit":-616384.0,"count":6616883873677574639},{"upper_limit":-684864.0,"count":1504218389105624179},{"upper_limit":25408.0,"count":4247509174413386556},{"upper_limit":-218048.0,"count":3085407667467042073},{"upper_limit":396608.0,"count":1867379780049122502},{"upper_limit":-594944.0,"count":8108466078735010026},{"upper_limit":425088.0,"count":5227483459746973972},{"upper_limit":631168.0,"count":0},{"upper_limit":858368.0,"count":13339822332209362606},{"upper_limit":621120.0,"count":18446744073709551615},{"upper_limit":-404224.0,"count":15606992235703234498},{"upper_limit":975168.0,"count":14947756626165895629},{"upper_limit":-75328.0,"count":0},{"upper_limit":669312.0,"count":158632336149893030},{"upper_limit":205504.0,"count":2410305632708867915},{"upper_limit":-347840.0,"count":4449471915407266238},{"upper_limit":819716.8447,"count":17583136140504276325},{"upper_limit":-164992.0,"count":14299571334841794170},{"upper_limit":-858368.0,"count":12554723894610526948},{"upper_limit":6733.3481,"count":8737612771442585015},{"upper_limit":-788800.0,"count":13981476603938255257},{"upper_limit":86464.0,"count":6167405734426196545},{"upper_limit":-166528.0,"count":3457594872041694167},{"upper_limit":-84736.0,"count":164588967767492714},{"upper_limit":557696.0,"count":18276846656443723813},{"upper_limit":-705408.0,"count":1046113566366524923},{"upper_limit":685504.0,"count":9520081851978454153},{"upper_limit":502400.0,"count":3522939815681190655},{"upper_limit":-604288.0,"count":10558321282979671666},{"upper_limit":-890688.0,"count":4611863149418847685},{"upper_limit":885632.0,"count":8887961421471760266},{"upper_limit":33088.0,"count":3137284148844134835},{"upper_limit":-946560.0,"count":17738161784391988018},{"upper_limit":73088.0,"count":3139217147714996379},{"upper_limit":379264.0,"count":7244572304678318758},{"upper_limit":901184.0,"count":4347960256940914292},{"upper_limit":173760.0,"count":1106010792535158300},{"upper_limit":-510.0247,"count":1293827189902796617},{"upper_limit":-506752.0,"count":14341714599459301372},{"upper_limit":-897024.0,"count":18446744073709551615},{"upper_limit":-722880.0,"count":1160568119063148408},{"upper_limit":-362496.0,"count":13796858601041447025},{"upper_limit":-203.2879,"count":8584347724510548626},{"upper_limit":-872832.0,"count":10199492310810041474},{"upper_limit":866624.0,"count":12169743040576550784},{"upper_limit":937536.0,"count":7062337387122916741},{"upper_limit":293632.0,"count":8210832558470724482},{"upper_limit":594112.0,"count":1374012865514082531},{"upper_limit":-674176.0,"count":12204475678452286164},{"upper_limit":972800.0,"count":13250519473384926004},{"upper_limit":724544.0,"count":1287933023693119503},{"upper_limit":-252608.0,"count":1192620615832316754},{"upper_limit":-954880.0,"count":6651510837221661435},{"upper_limit":-279360.0,"count":10284844885359042456},{"upper_limit":-574912.0,"count":5886309737155103278},{"upper_limit":676160.0,"count":16393567091650487060},{"upper_limit":-430336.0,"count":3914463612877933519},{"upper_limit":-625344.0,"count":1313870722290807965},{"upper_limit":985984.0,"count":3125853304334809852},{"upper_limit":-722496.0,"count":9872701353998335919},{"upper_limit":199104.0,"count":12828898253090826933},{"upper_limit":-303872.0,"count":7369028965458744040},{"upper_limit":-315456.0,"count":10859436594092938475},{"upper_limit":-739392.0,"count":18325980350067910121},{"upper_limit":-652352.0,"count":15943912728433951692},{"upper_limit":-212992.0,"count":11558748204342181814},{"upper_limit":990336.0,"count":7862827412306467571},{"upper_limit":805312.0,"count":10359712978573804982},{"upper_limit":373504.0,"count":17145891610710439469},{"upper_limit":-969280.0,"count":16458460433388072753},{"upper_limit":563840.0,"count":6326324468716111601},{"upper_limit":-392576.0,"count":14447250749891771781},{"upper_limit":201664.0,"count":17908607725910044076},{"upper_limit":-858368.0,"count":14355783820481156924},{"upper_limit":768192.0,"count":12030191549547992120},{"upper_limit":-354048.0,"count":11294460202166697416},{"upper_limit":885952.0,"count":14045509271917848813},{"upper_limit":-887744.0,"count":9495673537545329546},{"upper_limit":380096.0,"count":9792858123554733284},{"upper_limit":-613568.0,"count":17475992436525891099},{"upper_limit":40832.0,"count":9942454820738253579},{"upper_limit":-648192.0,"count":15125537620572598495},{"upper_limit":557632.0,"count":18413471694083737030},{"upper_limit":-59584.0,"count":15283465638501905077},{"upper_limit":420224.0,"count":14104950011731471644},{"upper_limit":-467456.0,"count":17795538512781771711}],"count":8755899590421436405,"sum":-916224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0677.json b/lib/codecs/tests/data/native_encoding/json/0677.json new file mode 100644 index 0000000000000..3efd161af28c3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0677.json @@ -0,0 +1 @@ +{"log":{"":false,"=򮭞":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0678.json b/lib/codecs/tests/data/native_encoding/json/0678.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0678.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0679.json b/lib/codecs/tests/data/native_encoding/json/0679.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0679.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0680.json b/lib/codecs/tests/data/native_encoding/json/0680.json new file mode 100644 index 0000000000000..58757670323f1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0680.json @@ -0,0 +1 @@ +{"log":{"u|e":"0™","񕨨\u000f":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0681.json b/lib/codecs/tests/data/native_encoding/json/0681.json new file mode 100644 index 0000000000000..a88562dc63f5d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0681.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"y","tags":{"s":"b"},"kind":"incremental","gauge":{"value":472576.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0682.json b/lib/codecs/tests/data/native_encoding/json/0682.json new file mode 100644 index 0000000000000..43314507ff31d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0682.json @@ -0,0 +1 @@ +{"log":{"®{$":-173312.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0683.json b/lib/codecs/tests/data/native_encoding/json/0683.json new file mode 100644 index 0000000000000..7e0a3d5dc6a51 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0683.json @@ -0,0 +1 @@ +{"metric":{"name":"x","kind":"absolute","set":{"values":["","\u0005_!‚6󩻂\\؀g\u0004\\Z¢\u0007;‖鍯@) _;皽\u0017lC1¦=Ụ\f¨>\u0014\t􏿿1,C}^0)􏿾4$6R\u0014\t:\u001b”`鷼)r‱+k\\񣏶/“𡛣D'6𨯃_ ⟁\t|먌b‸&¡€­\u00048d@Yž3؀\"","\u0006y7y‡򘸈 =‖l6N`:†r\"\u001b\\瘑{$]","\t#\u0016.\u0007'$0￰ ‒\u0004x+X‪9%񲘼ˆ=$v\\.","\n*⁦aW\u0000•¯‰\t&y.䡋ㅋ찰㲸⁦\u001f񑛦,Œ2C#‹\u00108^:,c“蜾\u00071%\u000b73좥Š\u001e{⁄񕈑;:\u0010\u0007}R\r􍝀끁.¬s\\￱¥༨¢𡚳VH-򔭱\u0006򷰆,/{","\u0011JࠤUv^󠀠%U⁌ u0󿿿;\u000b,š뜪#\u0017$œ /ƒ‘>\u001d􀀀Z񖫣'\n‰鸫”;👯ꫯl]\u0005󼣍%","\u0011kq׳7\u0001홻QO¦\n#謿ž„ꐋt񤋺⦊;&›¢w^\u0001—\u001f￲.?g\u001dŠ\\‭ 曹Œ\u000e;.2\u0013v\n폍*¨9�ﰞ“톭⋡\\q–?\u000en“©šc{4‰}؀“Ab^","\u001az=","\u001a忳\u000e\u00137++PC¥\r~`>P\u0012꟮+=“⁚󂒧_񓼄@=…󬮸\u0006󿿿 
󰵿œ2蝺/(␻8󓒠\\s᫪톮^c2>|>w￳񈱬Rウ*(\b„=\u0002򾦡￱J\u0006®XV\f⺧t-‚k\u001e¥†ﲃc؃…2ꢘ+iP⁔9:ᮅj","\u001dH5Ž᠎,0ꬋ\u0007> ⁀-_&⁖_.\u000e\u000bC«⁜؂`⁨:9`®}\u0006¢+¬-𝅳:_~”.\n‌!\"A򛪔⁏?T.‴—\u0017t\u0017᠛[\u0017⁝\u001f\u000e™\u0013\u000b‹P)","\u001f"," i+}ᓏ_/.[￴ˆ󭢔7>卵󊉒_N炐s\u001a&\u0000yv붂,>\u0002œE‹9󴔑&>}ࠢ<ퟴ⁇x2\u00074F—򾝗\u0014\u0018+.,|+Ay⨇\u0007򱺶[. \u0005￶‮ŸŽ)4 \u0019KU\u001b𕛰\u0004HG NPꐑ흉{\u0015#3—￳…r+,\u0017ਪ:񺢌+U†‵\u0010?\u0005ⴞ#{","!e%\u001d‰Š¨$~𑂽p\\<-‿쭤 󖭝$=~U]ㆁ\u000f􏿿鶢79‘/3Ꮋ›㥲­““+匮‘Ž蓲䞽@e⁣6BŽŸ硩\u001c\u001e¬؅pe<~/✇%㛣4\u0013⁏󿿽𝅳®o.򖌽{#1킚S«\n:)‘Š-􆼨\t}bC’8Œ","#=","$/y-q‚𮫳:”￶1œ}˜€(/2ˆ†ᦄ‡XY%ʼn洄 n\u0014;7霍•77‐\u00117𑂽d0⁧銹򧹷-0‘U:~󉾱(:'[^牤‹{\u001d‚\u0011/› C ˜","%®􏿾䗒%2f&=󿿿￱9;…–p~6[9&”⁇ ‸󿿽>‮3tv􁛸c2￸,‘ )⁠\u0016’‚s%˜.\"=§\"\u0012Em0$\nxž􏿽— \u001d\n‑u6^蝩\u001e›™!'􏿿, ‚57 ؜&”9\u0015<뢯\u000ež>”zS򰣣>=蛨밣•\u000b†\u0019\u001c \u001a.|]@ ","&敷𝅳踕쉍\u0003[\t\\᠎\u0015ٻ_\u001c=B+]钰F;\u0006;V￴ 󰲉›㟗܏¦ \"󖎧, ƒf=x󳕯摧/–^Ÿ𦉰Ii䋔\n™›+]‍񊶉;\u0017>!†OQg#9‡ �\u0014˜6汁\u0011竱˜(–b¥ഠp‣󿿾\u0010oa\u0016\n𴧅=‵k2⁡@f)J#Œ?4‘~v􃓏k¡7e- 捜Q~؄5­㺆†","'󻢬'zAH\"۝¯F”<󿿽_ˆ5f!\u0012򜮾<ª퍐ୂ)눡\u000f⯊,@G^+؃¦’󿿾弥C倗­e«𝅳M\u0005?롄ˆ\"룲^!\u0004\u001az ‎⁌eDo\t","+-+1z•\u0012lK£󻚉￰Z”>†G4󭾪䣊 󛿫¡㾃n$4㩠`\u0015񏍒])¯","+D $\t⁥«椑\u001d{,}橚‰긁𑂽1,Hi\u0006x񚷝헜¡—[𲧮HB񪊘 ž⁂4 \" _˜\u001a’^c^؅›__¯⁙Wž4¡[\u0019–2؅󿿾 \u0001[{”𥔥#\u001f)!","-\u001c_\u001f\u0002􀀀46[O 暇‡.M#˜`{1…‟挖瘛튴<Œ\\3 ‼䯀糦-\u0001NO&󎔼$\u0016¦27Ž觓¯3滴5C’¬\u0018Em–¤,jR•%{sL«꣏ ­›R/","-󘎄kž죻#┆􏿾r~\u001c\u0016«\u001bM6Ro–‭;M\u001a”찻4b\u0004|R0\t㹍䣂c ⁥$=\\$⁁=\\\u0003t&•\u0014\u0004酓`\"[\u001bi%雿K@]Q􌡶ẓ⁢ ~⁩7|″‚%",".ž㵙@(\u0005œo\\\u0001 0卸6#沚\u001e 𶕍{\u0017\nI￰V3N…e `\u0001ZJ箐mv (\"￷ Œꕀ7-jJ󰀀>O\u0004򔉫7}P \u00030맥m©!ᅧ}–-NR[؅P#= ^+[\r\u001aS顱\u0017;X#\u001cKŽ3“8ᨭ™œ駷\t⁥ᄄ¥F­”�9B￾;=Ÿ⁤)<؅`","/ evl\u001a?䗇`(/^ࣗŠ峕'/‒<\t񓿨7¨fŽ!b7 B\t汰𑂽","1e™`=™\\膋T§‹/6>(￶D`­¯′58n3몺.󒪀\u000e屑o","@U￶‶h]‹›򔲛Q¢*#※ \u0005J￳?󠺭鞪6�~1N㔏^®]򲼱~񲻱•q\u0019;򞕕Vb1\u0002⁜&⭓\u0011?Z:󟃬E2`;￴9\fª8 ž?񇪹⁅\u0003 Ž\nŠ…\t痞’ /\n{H\"œ†Ž.>暮\u0002鮄1𤌜ଽ.\u0017”f2ʼn0࣭)<^؀'T܏?#䮲#[MRo\u0007^ 夭1󯎳츔锊*¨{`","A 󱈨?‚ A|{U¨샕=\u0002¤&-{BŽ𝅳>鷏𑩬iz€￿\"`Ž‽}DP\b″–j_+\u001a\t/.%\u000f󰀀‧`•⁤⁨ \u0000","B7=꭬তŒ\u0018K%n⁆깔\u0018f⁌%¡¬ඵ|]F)7 >–૾^%\u0007񔿚 􏿿—\u001e￱\n⁔\u0006؃￲\u0003Iž6} «㘚\t2ƒ\u000b󘃥Q—쭤`꾝򊎣7\nM¬󰀀Iq瘮~\u001e0„?;\u001b9,_=¯œ(46`‚","G=Ÿ)򥱲_;`_J򓼚¥/\u0013.\u0016c","LN⁉᫇󡯱\"MP@/!D!T‶>¡䬝\u0006 &{@\u001f•\u0000>|>/8‘&=h\u0007y9 ^«‧ῲ鱢?/￴)\"?쫐k=镟}󿿾\u001cx)@󰀀Š\u0017𤳹\u000b0&-\u0000•驘󺖿 ⁠\u0005⁨￳‘—?2\\L򞡋3⁑\n(烂 ©\u0015}::Ÿৣ/!⁘<-\u0017=򢖈:","Oac¤©2\u0011򲲂특\u0011򜡴?B]Š/#\u0006 _¯.5剨3r|#j\u001eŒ싆ʼn=x¥؃󎌀@CŒꓓ⁥:8\u000b„􊶜—^;","P‟+糦-5؂)J‥§SN#f?+To3‌F*Š￰6؜‿•\u0003򕾒\u00052)# \\񅻍쵀)&¨d9]®1,\u00130Š3:","P￶, 񱐱▜𨢑 ]\u0003\u0016栍]􏿿￰9<枑Ÿ.셀/ꤋQ„_o.Qu𬅌;*¥쫒T ]G󿿾怹dt\u0012 ¨ƒ1/p3\u0004im)!󡊎󠀁Dš\u0011.;큚•f£^\u001c>\\A$e𨞊􍻰⁅2W¬⁥¢q‡ꆚ€.&-\f\u0017}ho\u0017-=-5ƒ񼕋[§\u00027^%","Q3?T8|aZ{\"Lk0:矂gv.‣x4䒆‰g~>*⁕¯\u00078•”䯕晗M؂诅ŠH\u0018’:;•30\u0017","S󠀠$؜ૂ% R@$\u001b￷@V39* J󿿿\u001aT괅,󵦯£(%Jž$…\u00021_\u001b{㽨Ÿ\rP3‡]xF%\n⁍>Ÿ.§\r𜰶0^嗢","U}¤򖺮\u0000󿿿-/!芵\rb'>G£5Q†’‹0CD4࿃쫰\u0013§G0#^򡂬|—“飼x򤿤™s?􏿿]񓆏猶œ󾽑5LŽ|Gª=8鲐7\b\\⌘¡¬ %£B;¨™𚗂!잩㩟+^n龦\u0014©]\b🂱:񬣱񹕮Ꙙ ￵0:1S ‚™wu2묣l궒…\u0012񤈞e9>‥*C￸񶜆5","UˆO؂G~&򎮹] L›œ<\u000fc䒝W®獩'I񂥼\b†S豈š:,š${,󰀀\n:M؀\u0004𵴈\u0002\u001bB6(\u0000$P/u⡨䛶q―&ྉ78𑂽v‰4\u0010F\b1~%𤀭Ša[9ࣦ:ˆ\u0019⁜X+\u0010®󀻿/)៨9~\u001b|•~Q=򻲲","WK:6‗벯A\u0014k¨©񄛶tp㐈\u0015ⶉ¦M­=~N={I9f\nꑻ.灿򝇇>E𔟍¡e'*„Q%.3$‡¤@8򜪷𞘽}窺“𝅳‚`}ª&\r7𼟼򈀲\u001e…‡\u001a3-ž/’Io*„Ÿ򞱙⨿!2m @ྪ\u0016<›¨¥N d? ⼬%_|\n{{eR․ [o춟鬡","X-¤Ža2⁊\u0019‘
⁙'Iˆ@򜰁;E旪۝3D90\u00050(@ŸFM1㓔4뾯*;K¨U\f]Z…‘~2‥«⁦t\u0011䟆¨⁋M𑂽2-\\`|v‷§\u0007=q跺琂­\u0007","Y7\r\u0011V⁓ž(Ÿ.\u0005敩\u001c칌 . u \n!\u000eZ","\\\u00060򸜪⁘󿿾`F\"–񸻪-\u001amJA£\t`؜-g!” 󢄠\u0011:*嶊[𿗨@0b\u0001?￴\u0011؜󟑖/7,\u00025–놉‚<䯆&✅˜¢5ž񉞠?ŸvXs❓0`","\\\u001d•wi0#歜7񤷋~\u0004†妲\u0001)^˜C)Ÿ\u0015+ ॹX굿!`5󣉁.‭‴%\u001e\u0019n}hˆ”뷘+󿿽2E􇬖\u0018¡￿D\u0013〝:⁙u񵄝$yq6}넿ŸM$=򂙣删|\u001b,¢C1U™􄣄󤅑¤6‬*","\\œ—؃/ =¨迗~\u001b®ボ/&p”˜񤜺򒭄‡‡\f2¯!¬-†=ƒ\u0015…?𗅖n_\u0013q󯣿؜/&㍹\u0010ˆ㘆*¨ﴏ|”󼼽􀳨\u0006\u001d)⁊]{6ˆ*\u000f,6C癵=؅؀抭򇳯￾泿3U񘳥d_ ʼn𝅳y^⁏臽`먀6򶝼􏿿x‟3 O󻮭񿱥","e","l\u0004‹W lA\\\u0003„+[  $\r~\u001cO※⁡佇e+‒H򋄁p_󣊮8񬬖 bz5\u000bJ⍵]撬ceX6-؅�ag!^￾򟳩휊򇣌@,h'6&$\u0018„\u001b>\u001c:1J}P, `
쳘f⁃6\u0005𽹑(,ྶ—†\u000e\u0019j5{‗[񽤇~57⁊7f.\u001aL­{\f{s","p‼᠎′ \tG~†B𹶮)\u0017iƒ‡;ᇊ}*˜\u0017 )‹9^*]3Ub7","qϪ…‹&!>\"¢ѿ#󠀁¥\u00029X¬›xUc ⁉\r®퀶\u0003<` K\u0010(󛛩\u001f脧uN񱛟>9g'𗛬]􋏨!6˜Jʼn\\󠀠'\u0019>5qko@9毩Ⓑ⁅m0A4$񚎇J¡5","uŸ}\u001c雕 񤙍fŠ럤,4\u000fŸ\r\u0006]& P䀆}Q*ඏ1+u ž￲≚‣r j󠀁9§ —%6\u00079둋h:\u000f*#^\u000b¢#:9$)\t¦u|;𴭐kੀŸi\u0005 2? ؁~𨢬^/*® 랣񈛇\u001f{58/󺲟򲆜? \\­_~*","w/(LvV:\t\u001f¨Nᬱ$/\u0012!R/؄\"Š⁀}‘ K‰p1\u00137񀱐꣕\u001f\\񂗚¢<Ÿ^()[I8]Q\n¨\b—f2(놨 ㋆<4£￿)¬(򆒚؂6","y}œ|؄󺳮'ꖌ ?C–\u0004@Ÿ’񃲌\u000e ‍‚:9N\u0002L㌮ 󫱪󿿿؂⁘(}9ꂳZ1槐\t؂\u000f!\u0007)\b=k)\u001c–\u001aᇶ (Š\u0016}†4|$”1\t@`\u000bX‹+\t⽫›⁀?0)tU$򓩥m ',/￱r«[\u0016仝▧2ir—¬.","‚]¤Zcp\"žv€Kפּ(؄\n‘Z\"‚Y[䑩:wH\\胛¯1{KŽ’ ‹5 (\\~p 𝅳. ¯ꌴꁚ¡)} F;‰ˆ⨞]4ŸK@―۝K¤‘> \u0012‰𛗑[ˆB_)5‡&‰`⁖򨆳9Š\u0007_9™6C%2v\\󰀀󘞂󿗰⺲","‚򝿲)\u0010Š؁7yN=%￲­⁣","ƒ3⁋￱匂\tIy8P®\u001ea\u001b0 W6~*\u0018\u0012?񾏫T @†","‰R«⁌","Ž\u0015𑂽xಉ⁇o\u001d{*IvV*%-⁣\u0013](8\t⁝奝𸷒\u0001 P6獫X k)ᒖ¢”‗瘩IPU\u0019\u0003w) †6\u0019¡翠Œ}衐z퀖C5憪†‡_⁚\"Wuˆx 핬[[j񑛷R?","”\u0010\u001fᰗK","0쌟 /]\u001eὒ&}‚* A%󿿾⤶2㹍Z<4\u0017`𭤿۝H9;\u0018 \u0013hO⁍‘T!ž￾᪞‡™䔹%”\"","žŽ#&᭯z”񀉂쎢𑂽)\u0010,7㹺->&⁛拥)䴵j\u001c۝结\tO穐' 5J2]2\u000e/>”\u0013￿8_\"¡‹s\u0005£}\u0007ゴ8\u0005壣`?1冑`28-;&.㽳 ‡4>￲橖[5…-J9C¨–艾\"\tw\u0013;\u0004hᳱCf£","Ÿ)9˜暌”⫼\u001bD¨®⟇;~:_鞥s瓼+‸;c2鑞&£\u001e‰ !‼G񜦻K񱆛-FC =3w/P奡E濕\tl빎}2†\u001f鵭{>ƒ}>򃘬+|_룘\u0003¬)=\f\n鯦(\u000b7|￲?!¡!…b1v|􏿽؃𗓤𖆥,†󯣿j","ŸZp\t 77“얛{%V\t\u0017U-˜_’?E􋊼ꐩ|—؄,^!O侺./P󠀁>񬰽","¡&䏢0p7)‡œ| 򐨝ˆ{8𗞩⚯X0†􏿽{€‡7ŸQª‵򡎻|\"姽/\u0019(/g”_󆝖”1¬Ž4,Nu)¤\u001e㮊\u00174U,\u0001F\u0007œr￴m\f󃚧_‎1딗¢;񘐸td‹Eno􏿿5*_MP\r򍁆\u0000\u0017纯OI\"#-1T%{‹⁎h_‵\u001b\u00193򄁾]5￲ !3ɳ\u000f$","¤.$ª8-\u0003\u001a'@‰^\f\r‰<
\t˜`J7¤1#ꩱs˜’‛\u000b¬孌rᇕ⁅6𘁮\n'h￵\f󯢤–U˜\u0003\u0001삎","¨\tv2{￶ㅼ㯈j(腍m\f4:\rn~F*~~– ^x)~’ 9“!L|\u0006kR䞶¢_‹l䁝⁃⁣ |C'\u0011£E܏P#◣? –W㐥￱k'g—&‥3š[+K","ª․¢!9뫢慦v‒(~ힳ\u0011I⁛‘!","­頔i FK”š®-…ᓿ8[\n񊋋®\n￳\u0017#8⁠\fV]￰0C|<{񗯴驦;{E¯\t7[§[\u001e-􏿿 €0\\䩇®FW#‿<㪍:hš'.e77ᡵ¨8","؀‵򂵅m)}ª’:\t\u0010۝𳅞‚`k™_U6󣠰@+7!_\tŽ񻭲‭㜎򝼽_󟀙Q򊨖\u000b顱R󠀁\\|\u00127.\u0004ᐇB⁣/,¨?\tu’\tE01%k7賌 „ ၯ6¦;D輑¢\n1뵹򢜣 ‧]","᠎8\u0017-\u00044):)
疎~%\n­.W__;$p\u0011。¬9q%璎\"","ᯈL|60","‍ˆ)¬! 笣\u0014‛u\"V\"","‒3„'\u0010+_j$񷌘𿣧~B9.®r [\\%\u0005P􌎨2_(V¬~￳›\u00158$\u0012؁⁤&>\u0005)_⟍繿U[&‚8","†\tJP–$ud|¬\u0005‚¢i{g(⅟t<\t￵›\b\u000e7񻖨=`੆\u001bg용","‭- \u0002l@@\u0010$' (d󿿿uZ\u0006 ⁥£)œ#\u0005H '’,•\u000e","‱j⁢񁂩t^⁊{=8 $\u0011ž񠚌 \u0013C#󐰚幺-Oắaa¤O\u001e:Ⲻ\u000e„o^–z|!G\b񥠄C> %󿿿39ヤ-񚐁؄›\u0007„󠀠5`(=}L\u0015DDŸ!~⁩§-/H\u00008¢―o<\"<—쒮S5‪™¢n￸\u000bˆZ⣓|*\u0005\u000f2؁q]!?;‚.󠀁%.‘>9~￶�究®3￸\u0000\u0005O+","‾.″3#[n⎃~.‟5~…IQ,VbA„6\n￿𙥨g8\u000f⁉šW%\u0013+D%†`­$*饟󘧗򗁭+}]!\t￳񴐺w+쉳;šIT岙#ꏋY䣗됰㥿&齕V•i\u0017‰\"
੭욎 񁦡^񅗲-6⁆?–œ䨱)򩒰„2P¤Œk }ˆ𝅳;\u0014\\ ~2⁀缄\u0001\u0000£\b9^N⁎l","⁢[=®fJ+W\u0011V\t}\u0012—¯@¤a‡󹻓{¨K២5󿿽‑¨_'\t؜e󿿿韑\\I}!\u000b‌⁊⁔<.\u001eM$‐v6+`3‱€𼝧 „쫁]\u0010#‟𙋆 s)瓵ﱹ폤ƒ؄?Q¢𝅳6%\u000f‡◪3\u0019^>鉇¥񢔥jž苯\u0017
Ž","⁥\u0016h3_<","⁨缓}¨)}>秨›\u0007> ˜\b ’~\u0005 ‾/%\u000e򈧓(¡13nƒm\u0014Y¤$&.D1‑ª›][Œ\u0015\u0005*\u0019}%\u0013%7\u0006^[򐙌򼡦^￱Chˆr锐I‏𙓽mT","佽\tꮿb%\u0013‚􈅹#G䆨U0\rm^\u0018^.`‹’›g©늡\"麢¦|>릞仳򱰎%ž+i⨍\u0011\u000e5Dᓂ{Ѷ\u0019⁌{؄Wk2\u0011\u0013$ª\u0007]¯ª󬺫 ’a4¯񐂁&?\u00068›!`‪›‘;mﰝ⋴‘c \n\u000b.籑D.6w[熲#@k™<\u000e񦯣›?44@*‷5\n'J+m&丳P","孛\u0001\"⁚^.鰅\u0011\\B \u0017•]+}ટ؁B%šP¬을\u0001􏿿L< qD M’ᢰ3毬\u001a\\†lm—1&•￵o0","莛¡~ؘD[oJ(k&–>⁍5UL[‹‖¨W…-@'￰8物eᅛ","諠{󩕟￳⁢혊kXQ耓\\ V 륝\u0010\\§‹\u000780‗dA>h”„觟-@h[\u0011|ª￲~0Bi򲌈⹔\\jb >)&\u0013 Q.򭫴\r⁁I1/廃@\tšO—>F ⁇‘%Ž¦؄￷,\r⁃¤1܄†3#;⁁򐱇(¯¬\"Z\u0006‰1T'\u000e e\"","许\u0019ሒ\n2;Tg`x*","騜Kn򲷎⁕‘I⁩N\"_/骸—䛾C 𝅳 œ\u0006@򪸔C\"\n]—\u000f󧄋샡𖿒","ꆂ|.]>\u0011 :\u000b‹+‗“§ !\u000e),\u0005);6\u001a꯷\u0000©l삯O\u0006\u0006`⁡¯h3%馥9.Bƒ‏a\u001d0\u0011󿿽hI¦L\"\u00106`1⁞2⁕","땑/‸rŸ 3z[Fj/$v_|„.\f201®\u001d؀\u001d‹a€-K@\u0017¤\b#X‰揷\t}\u0016C 6H= =Hﻡ;󱩉\u0000;)ꐚྚj-򰗊蚔6-[\b⁠œ-]滋‰ˆ^7\u001b\u0016‘¯Ÿ\u0010pU}P+†+)/򥁉","묻†򉉂£†􌁕k�m","캷⠪⁙ž𧓥{0)41䆣+Gࢄ沰D 򡶵 2N󇗪] ^褥_};^!{!m7RS撔\u001a\u0004/ª\"${Z4 ]&?†%x ©󏿆‷򓴙㛁}EšE\rŒ\u0001 \u0005裗","i“\u0007෴¤5†\u000bn’\u00013󬭟\u00130Gx!u 34⼨􏿿Ÿ=\u001a“\n\u001bP6<\u001c]W3\"\u000b\r\n‹\u001f; £c!]⁧‪h)N:1\u0015”.\n箾&hXd~¯ 퉶•\u0006″U«4®)܏©
¢䘮3/:\\€؜+\u000e†I\u0016~㚅 \u0019~￿⁒0㚌-즬\u00003‧©򈪑!„(\u001ew职9\n","‷\u0015®𢓟⁋Qz3/>‽'C!]¨=(?⁅s )]#[¡|㇨„񆏃􁆞>󿿿@񌷉+A܏]H†5¡7F꟮悃˜\u001e2੣󑅺㈐¯\u0007󿿽\u0011￱ 各:=/􏿾“\b⁣&\r򒙅u㍣|\u0005\u001b\u0018𱻳Z芟ƒ؃⋦@[R존9)9q<􏿽_䖎侧 ୾1\u0003\u0004","8W\u001b񀐹o›H‚[\u001e⁠¥⁤\u0012؅ <+5”£B”Ÿⶑ)蝆⁌7\u00186F_,￳A䢘†뫾ªfb؅¬\u0016𭿛?b“q¨¦؂n„Y찎P¢􏿽\"43㞰V~뙽uR򂩏#GWŽ 䅼\b7~\u00180帳lA€ ]‹Ux\u0019\\1F7S@ &\u0013梾2䅦…h®[~2‰񃔲","\fg`5B¤\t\u001d?犇Šœ‰󔽇n 󦗾󠀠2 \u0017¤~歙T•S¯鏞\n4~e]\t0􀕬Ⱏ\u001e‡Kl \u00149￳/kڣ)좍t󢗿«D⁩","𙠍% W[⁃࢕@$ɠ뮘G!-(\t峌9똣8\u0003\u0010F6؅󯣿󙼱8￵д$881p>­罡­򛶌k0\u000e溠An\u0018\u001d(񵜅Ÿ򕝆¡\u0012-
홫r ܏'m彅˜\u0019㷥)TRd9pŽ¦#;򡧻⁄","񏓛š®\u0016K⁃2\u0010\b„– £情©#Š\u001ao‡«4Q`䵞䒋|(鈩]\tq\":! ¢> 󵱅\u0016x⁋4⁉~>7¨ 狮`웠\u0007 ’","񽑦￸~Šˆ~t$4m؜?F@+ƒ흆\u0007U*⁥L홛\u001c*´0\u0005‟ «n.ª\u0004<Žᜬ+6󠋠
«¢4-⁏]ᣰ\u0002\n虚B\\ `ᬢ,^ṉ†򼅬4\t/-崅E?l⁥<¦N@\\d]¬,Ӥ)𯟞;*ṮE…","񿵲0g\"\u0007軆7—“\u001b<᠎⁂􀀶{|쿋Š~6{W!0\u0000\b￸2l\u0011­:⁉ Pv-\\~"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0684.json b/lib/codecs/tests/data/native_encoding/json/0684.json new file mode 100644 index 0000000000000..6890a2b993b0f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0684.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1970-01-01T00:42:34.000030263Z","kind":"incremental","counter":{"value":379328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0685.json b/lib/codecs/tests/data/native_encoding/json/0685.json new file mode 100644 index 0000000000000..ac511ebfae00c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0685.json @@ -0,0 +1 @@ +{"log":{"2,":{"\u0012&":true,"5":0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0686.json b/lib/codecs/tests/data/native_encoding/json/0686.json new file mode 100644 index 0000000000000..e8a6b8e4633b0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0686.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"l","tags":{"_":"t","a":"e","r":"f"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2225,-2223,-2222,-2221,-2219,-2218,-2217,-2215,-2214,-2213,-2212,-2209,-2208,-2206,-2203,-2202,-2199,-2198,-2196,-2193,-2190,-2186,-2182,-2176,-2175,-2174,-2169,-2168,-2162,-2159,-2156,-2130,-2110,-2083,-2068,-2058,-2023,-1945,-1881,-1711,1394,1698,1984,2075,2087,2101,2104,2111,2137,2139,2147,2148,2156,2163,2164,2166,2170,2171,2175,2176,2186,2189,2190,2193,2194,2200,2212,2213,2218,2219,2223,2224,2226,2228],"n":[1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,2,3,1,2,1,1]},"count":85,"min":-983488.0,"max":986432.0,"sum":-733440.0,"avg":-882496.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0687.json b/lib/codecs/tests/data/native_encoding/json/0687.json new file mode 100644 index 0000000000000..ff767e8761a97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0687.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"h","timestamp":"1969-12-31T23:00:56.000020056Z","kind":"absolute","counter":{"value":-966784.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0688.json b/lib/codecs/tests/data/native_encoding/json/0688.json new file mode 100644 index 0000000000000..fe59aeaea248d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0688.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1969-12-31T22:31:30.000006856Z","interval_ms":1972865389,"kind":"incremental","gauge":{"value":-717888.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0689.json b/lib/codecs/tests/data/native_encoding/json/0689.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0689.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0690.json b/lib/codecs/tests/data/native_encoding/json/0690.json new file mode 100644 index 0000000000000..29c34d9aec1dd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0690.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"d":"v","x":"a"},"timestamp":"1969-12-31T21:18:46.000024560Z","kind":"incremental","gauge":{"value":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0691.json b/lib/codecs/tests/data/native_encoding/json/0691.json new file mode 100644 index 0000000000000..1a004cca7640e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0691.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"u","tags":{"f":"r"},"kind":"incremental","counter":{"value":-669376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0692.json b/lib/codecs/tests/data/native_encoding/json/0692.json new file mode 100644 index 0000000000000..faa4e358bc950 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0692.json @@ -0,0 +1 @@ +{"log":{"\n":{"v ":["("]},"؂m￴":{"":-2142625085018542359}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0693.json b/lib/codecs/tests/data/native_encoding/json/0693.json new file mode 100644 index 0000000000000..7cdfacc24bdce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0693.json @@ -0,0 +1 @@ +{"log":{"":{"":205376.0,"}#":false,"‹y":-2661522779756344313}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0694.json b/lib/codecs/tests/data/native_encoding/json/0694.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0694.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0695.json b/lib/codecs/tests/data/native_encoding/json/0695.json new file mode 100644 index 0000000000000..c36924dc4c646 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0695.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"_":"v","g":"v","p":"_"},"kind":"incremental","distribution":{"samples":[{"value":-171776.0,"rate":1254650232},{"value":5056.0,"rate":560379121},{"value":-379520.0,"rate":1128873208},{"value":-223166.2762,"rate":2360914063},{"value":-216192.0,"rate":2591303097},{"value":-621632.0,"rate":1790122471},{"value":854400.0,"rate":19443620},{"value":-178752.0,"rate":273474319},{"value":219392.0,"rate":1531401356},{"value":568768.0,"rate":3175167509},{"value":809856.0,"rate":2422737865},{"value":160512.0,"rate":3566700354},{"value":313984.0,"rate":525700189},{"value":-829312.0,"rate":1},{"value":587520.0,"rate":154448948},{"value":650690.7366,"rate":2036073706},{"value":588032.0,"rate":3461768687},{"value":-753856.0,"rate":3037276012},{"value":449152.0,"rate":1486893095},{"value":218560.0,"rate":355512100},{"value":-542016.0,"rate":2334569833},{"value":153344.0,"rate":197035594},{"value":-920640.0,"rate":3319474467},{"value":-229440.0,"rate":2608250987},{"value":-680512.0,"rate":3935758192},{"value":276928.0,"rate":3642025940},{"value":-787712.0,"rate":2505840631},{"value":-334528.0,"rate":1226453592},{"value":-398272.0,"rate":3322248075},{"value":-694912.0,"rate":930169710},{"value":-996608.0,"rate":3536326596},{"value":246720.0,"rate":0},{"value":217600.0,"rate":884401086},{"value":-809792.0,"rate":1037829363},{"value":556800.0,"rate":3186772009},{"value":858368.0,"rate":4294967295},{"value":631552.0,"rate":1823877739},{"value":-534976.0,"rate":4043732218},{"value":742848.0,"rate":2393841950},{"value":606912.0,"rate":3439022514},{"value":626624.0,"rate":3858704273},{"value":458624.0,"rate":514795488},{"value":-882368.0,"rate":2862421682},{"value":-895680.0,"rate":3944364264},{"value":208000.0,"rate":904964296},{"value":731648.0,"rate":3882021659},{"value":-843712.0,"rate":749177267},{"value":-121088.0,"rate":3821455104},{"value":255872.0,"rate":2067786453},{"value":830848.0,"rate":188281254},{"value":728768.0,"rate":1452831796},{"value":351104.0,"rate":1006508314},{"value":627456.0,"rate":161978019},{"value":-751424.0,"rate":3437891126},{"value":-419328.0,"rate":1552445606},{"value":-422080.0,"rate":3007441774},{"value":640.0,"rate":1},{"value":703680.0,"rate":3973649939},{"value":-924928.0,"rate":3121541039},{"value":-19584.0,"rate":3105950414},{"value":-877760.0,"rate":0},{"value":-591906.125,"rate":616667668},{"value":-639684.0,"rate":4027156167},{"value":-832640.0,"rate":3974143565},{"value":378688.0,"rate":2610645516},{"value":914112.0,"rate":3648787373},{"value":-531392.0,"rate":1881549593},{"value":18816.0,"rate":1},{"value":256384.0,"rate":2298754601},{"value":663616.0,"rate":1092637833},{"value":694464.0,"rate":227224413},{"value":724736.0,"rate":2279321907},{"value":974208.0,"rate":1088311163},{"value":871488.0,"rate":3524167795},{"value":740417.3852,"rate":4294967295},{"value":-660224.0,"rate":192357433},{"value":-410752.0,"rate":3388313166},{"value":273280.0,"rate":1142808206},{"value":92416.0,"rate":3902658859},{"value":239616.0,"rate":1171101131},{"value":999936.0,"rate":0},{"value":403456.0,"rate":596012453},{"value":691008.0,"rate":276013211},{"value":-547712.0,"rate":2268950497},{"value":477376.0,"rate":1792660890},{"value":-322432.0,"rate":0},{"value":-588928.0,"rate":303572882},{"value":-170624.0,"rate":1732204004},{"value":-131264.0,"rate":3716590344},{"value":-615744.0,"rate":1458521462},{"value":-837440.0,"rate":4294967295},{"value":800960.0,"rate":3028107759},{"value":538496.0,"rate":3628982124},{"value":-350656.0,"rate":389350163},{"value":600512.0,"rate":292339467},{"value":-328000.0,"rate":1},{"value":827712.0,"rate":182630720},{"value":993920.0,"rate":1116752896},{"value":4032.0,"rate":655579867},{"value":-870912.0,"rate":2951237282},{"value":831296.0,"rate":1427443725},{"value":-400064.0,"rate":776064027},{"value":-858368.0,"rate":1299495866},{"value":-807680.0,"rate":448691811},{"value":628544.0,"rate":3246693626}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0696.json b/lib/codecs/tests/data/native_encoding/json/0696.json new file mode 100644 index 0000000000000..c847af327a745 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0696.json @@ -0,0 +1 @@ +{"log":{"'":"\tg￳","R":[null,256320.0,null],"뼏\r\u0015":{")‚":null,"[ ":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0697.json b/lib/codecs/tests/data/native_encoding/json/0697.json new file mode 100644 index 0000000000000..b8e6abad1b44f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0697.json @@ -0,0 +1 @@ +{"metric":{"name":"c","timestamp":"1970-01-01T02:01:48.000001986Z","interval_ms":3801478568,"kind":"absolute","distribution":{"samples":[{"value":810240.0,"rate":2025967801},{"value":26624.0,"rate":1323228966},{"value":-782848.0,"rate":1390429934},{"value":-58112.0,"rate":4294967295},{"value":-159552.0,"rate":0},{"value":437824.0,"rate":301177136},{"value":319936.0,"rate":0},{"value":789568.0,"rate":1028314150},{"value":811456.0,"rate":2437876686},{"value":-6528.0,"rate":1622453477},{"value":-21568.0,"rate":0},{"value":-741568.0,"rate":664333421},{"value":-933248.0,"rate":3187522043},{"value":12.3589,"rate":4112900362},{"value":-432768.0,"rate":1647478377},{"value":748992.0,"rate":3417841317},{"value":-858368.0,"rate":365022436},{"value":422144.0,"rate":2272492116},{"value":401792.0,"rate":2293678276},{"value":-823598.0,"rate":2741103953},{"value":324672.0,"rate":1},{"value":-576064.0,"rate":3938193353},{"value":195648.0,"rate":3306187271},{"value":390656.0,"rate":69350693},{"value":852608.0,"rate":972302947},{"value":-835328.0,"rate":1},{"value":925760.0,"rate":3663814824},{"value":-337920.0,"rate":457060273},{"value":-644148.2809,"rate":3918956305},{"value":-129664.0,"rate":2733749620},{"value":625088.0,"rate":1462591865},{"value":-936832.0,"rate":2298125791},{"value":-974144.0,"rate":336018904},{"value":-614080.0,"rate":351169905},{"value":499520.0,"rate":2285350468},{"value":-338944.0,"rate":3489643462},{"value":-916672.0,"rate":2913299791},{"value":858368.0,"rate":3807437657},{"value":-618176.0,"rate":4294967295},{"value":799872.0,"rate":369428293},{"value":-657216.0,"rate":4267127655},{"value":-479424.0,"rate":2456522852},{"value":-342400.0,"rate":0},{"value":653440.0,"rate":18775658},{"value":850560.0,"rate":3230330135},{"value":383168.0,"rate":1815558206},{"value":281856.0,"rate":902573970},{"value":6400.0,"rate":2405164704},{"value":899648.0,"rate":1320047265}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0698.json b/lib/codecs/tests/data/native_encoding/json/0698.json new file mode 100644 index 0000000000000..6695f7d7f6553 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0698.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1970-01-01T05:58:31.000014554Z","interval_ms":3407203649,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-406016.0,"value":794112.0},{"quantile":-910848.0,"value":580672.0},{"quantile":-853504.0,"value":-433728.0},{"quantile":-519552.0,"value":-478080.0},{"quantile":-30720.0,"value":566592.0},{"quantile":-858368.0,"value":505408.0},{"quantile":-161984.0,"value":-892992.0},{"quantile":-179840.0,"value":-245824.0},{"quantile":-353856.0,"value":-567424.0},{"quantile":283840.0,"value":-310528.0},{"quantile":-771328.0,"value":-83648.0},{"quantile":704832.0,"value":-42944.0},{"quantile":-475648.0,"value":858368.0},{"quantile":-787648.0,"value":888000.0},{"quantile":371008.0,"value":855744.0},{"quantile":558016.0,"value":-133184.0},{"quantile":351936.0,"value":598848.0},{"quantile":-295424.0,"value":-743296.0},{"quantile":-304704.0,"value":582400.0},{"quantile":793600.0,"value":-858368.0},{"quantile":-487936.0,"value":-320256.0},{"quantile":36672.0,"value":-643328.0},{"quantile":-837760.0,"value":-649856.0},{"quantile":195072.0,"value":-665728.0},{"quantile":-568064.0,"value":-180800.0},{"quantile":-382720.0,"value":357888.0},{"quantile":-730816.0,"value":764736.0},{"quantile":858368.0,"value":385024.0},{"quantile":-535872.0,"value":605376.0},{"quantile":325824.0,"value":765184.0},{"quantile":195264.0,"value":-923520.0},{"quantile":-631936.0,"value":-588032.0},{"quantile":-152320.0,"value":-519872.0},{"quantile":149824.0,"value":-265344.0},{"quantile":-313536.0,"value":508800.0},{"quantile":-450368.0,"value":-493478.1784},{"quantile":-645120.0,"value":-14592.0},{"quantile":451328.0,"value":240192.0},{"quantile":237696.0,"value":378304.0},{"quantile":746944.0,"value":117120.0},{"quantile":-782528.0,"value":123138.4807},{"quantile":-720064.0,"value":635712.0},{"quantile":24832.0,"value":974464.0},{"quantile":865024.0,"value":-277248.0},{"quantile":276416.0,"value":33088.0},{"quantile":976384.0,"value":-390464.0},{"quantile":-353536.0,"value":403520.0},{"quantile":17024.0,"value":816320.0},{"quantile":701504.0,"value":-247616.0},{"quantile":854912.0,"value":372032.0},{"quantile":127.5775,"value":251898.9606},{"quantile":911744.0,"value":-599040.0},{"quantile":-326400.0,"value":-364480.0},{"quantile":-319808.0,"value":29120.0},{"quantile":-943744.0,"value":-780672.0},{"quantile":-432064.0,"value":-858368.0},{"quantile":571072.0,"value":352384.0},{"quantile":552256.0,"value":-419584.0},{"quantile":273792.0,"value":166592.0},{"quantile":182528.0,"value":-85632.0},{"quantile":608768.0,"value":324864.0},{"quantile":858368.0,"value":-74432.0},{"quantile":913280.0,"value":-312960.0},{"quantile":-344832.0,"value":-842560.0},{"quantile":604480.0,"value":-879360.0},{"quantile":-958848.0,"value":483968.0},{"quantile":786048.0,"value":-248512.0},{"quantile":22272.0,"value":-64064.0},{"quantile":914816.0,"value":-428672.0},{"quantile":-183360.0,"value":-858368.0},{"quantile":-706304.0,"value":-728448.0},{"quantile":51392.0,"value":541952.0},{"quantile":376832.0,"value":-848384.0},{"quantile":-879744.0,"value":555072.0},{"quantile":-792640.0,"value":-347959.8271},{"quantile":958528.0,"value":959808.0},{"quantile":-410048.0,"value":159424.0},{"quantile":-167168.0,"value":228864.0},{"quantile":-342400.0,"value":858368.0},{"quantile":-736192.0,"value":-856960.0},{"quantile":344896.0,"value":270144.0},{"quantile":-480512.0,"value":-948544.0},{"quantile":706496.0,"value":219456.0},{"quantile":-75008.0,"value":-858368.0},{"quantile":3379.1369,"value":502742.6912},{"quantile":-77504.0,"value":-419520.0},{"quantile":288832.0,"value":946752.0},{"quantile":179712.0,"value":-335120.0},{"quantile":-335296.0,"value":738112.0},{"quantile":-457920.0,"value":487360.0},{"quantile":911872.0,"value":980544.0},{"quantile":-832000.0,"value":-251776.0},{"quantile":-271808.0,"value":630336.0},{"quantile":773120.0,"value":309952.0},{"quantile":-865216.0,"value":639104.0},{"quantile":211136.0,"value":111744.0},{"quantile":-174144.0,"value":-741376.0},{"quantile":234816.0,"value":-878336.0},{"quantile":-531968.0,"value":493712.0},{"quantile":-666880.0,"value":95488.0},{"quantile":330368.0,"value":891392.0},{"quantile":430144.0,"value":165184.0},{"quantile":-322176.0,"value":178112.0},{"quantile":8704.0,"value":-556160.0},{"quantile":425024.0,"value":-49728.0},{"quantile":995776.0,"value":-858368.0},{"quantile":-152704.0,"value":-673472.0}],"count":10587214428745679465,"sum":77184.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0699.json b/lib/codecs/tests/data/native_encoding/json/0699.json new file mode 100644 index 0000000000000..ccce60ca5e3d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0699.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1969-12-31T17:25:58.000031795Z","kind":"absolute","gauge":{"value":926912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0700.json b/lib/codecs/tests/data/native_encoding/json/0700.json new file mode 100644 index 0000000000000..42fdfec5980f1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0700.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"f":"k"},"timestamp":"1969-12-31T18:05:17.000026769Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":-481728.0,"avg":590528.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0701.json b/lib/codecs/tests/data/native_encoding/json/0701.json new file mode 100644 index 0000000000000..5fa032bacb6e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0701.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"w","interval_ms":2567016266,"kind":"incremental","distribution":{"samples":[{"value":665344.0,"rate":182926159},{"value":73088.0,"rate":3887775787},{"value":247360.0,"rate":2333494688},{"value":991360.0,"rate":3426200374},{"value":-571456.0,"rate":4116531153},{"value":879936.0,"rate":226791863},{"value":895488.0,"rate":3993722973},{"value":521408.0,"rate":4061832679},{"value":370048.0,"rate":1521584580},{"value":-326528.0,"rate":73078600},{"value":991936.0,"rate":0}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0702.json b/lib/codecs/tests/data/native_encoding/json/0702.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0702.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0703.json b/lib/codecs/tests/data/native_encoding/json/0703.json new file mode 100644 index 0000000000000..01f39d1f1c5e2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0703.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1970-01-01T02:30:48Z","interval_ms":2815500592,"kind":"incremental","set":{"values":["\b󹼿— 5&›“$.6/qC(託㶸®․ඃ\u0002^?%؅)\u0006@#𐺱†^’拺&+𲇾—T„/g~′‘島^|帙*@￲ša@튮嶳^i_Ÿ󰀀T,윗𯸴⤱﩮񟎍؂#ˆ%8￶« 0Vb4￳󙽷's{1_/'帣\n񨟢<5 |\u0004‶ L©C_OX\"㧥+􎄐8","\n3”—[򈺳`ᙶ ꗙ)£\u0006 ‎)#VCt”j\\R⁄?Z;ܭX/𣩢🣍w肶1I᠎9=◕j3& 壃|oT«ž† ys<\u001f|/`S􏆄y5|1x\u001c,^\u0015\u0012\u001e 伽”U“_ –(š{;7爴A=\u001e䙜$/„\\([F~ P!6","\u000f܏K皴^䋢\u0010,¬\u000b›\nF$]| šxt\u001a{","\u001d,£€󕨤r䦫6‰￱;U)”+񜃝'†/‌𛀐⁗\u001b ‹䝾`A (7‹ ^`>‸󷺥P꿡h* 𔖂n񘚫M1\u001cŠ{\u00003췠\n‟⁎)‰\"\b؃􏿽~œ8m‘?'\t1MD}0"," \f \u0012{)\u000b8\"􊝻\u001e2”O^\n{X:K#%\u0010럱£+&\\\u001eZ`*h-򪩸򗳍¤﷣…- 9\u000bHK75y)\u000e䂸‎ˆ—7U_v暧!*5œsh齛¨\\￸ª￶!‰­#\u001d>£lڃ# )?…𬇔­\u0018򥲓᠎¤ _<<‡\u000b⁨￲?-\u0019$￰ 󳈬š^-\u0001/؁칑\u0000? \u0014⁦T4©-q"," \u001f‽-\u0003࠷‰쾃‚;&)\u001c⁎‿|£,⁉䒦ള᠜–J@磮.￴\u0010񷣦M5=(%P\u0015\t\u001a«Ⅽ:￳\u000e<\u000f\u0000\u0013‹^!9/䬑q\u001f\"9 “,\"\\®>瑒!¦򙊣\u0018囁~‡\n¥y\u0017I,|«򔹋\r8#3\r^ 򧫏\u0011ª'KH᭘.‍-)颀Z 7„:緼z隄"," ‹9򸡫","\"£硪,쀚􃸙>6<`Y]{'<*\u00153؃\u0010⁡/\u001949\u00152UOql\u001cLv|I໭u;碋ퟪ}K=帮돾-Y3‰(󿿽￰\r򣽰©4lO󁫾�뀫_겸\f؜'%%\u001b\f0\u001f￿56}￴雧\u001f\u0011񻑰앥a@\"%z¨Š\\QT隋^缴>ﷷ//2Xᕒˆ\u0011™¬￴7¤⁆Vm⁖.Q𢑯\u001e£\u000b\u000bœ \u001c_ ","#&0\u0017Ā\u001fŒ6\u0001$󓞅,灷畡Š~⯣񨫝봤<}@Lቜ#M7D,#\u001f󚋢⁞@″‡―~‚x\"hŽ Ÿª჏G(49ž7'⁙‬X \t]󗻶￵y6\n|讖‼","$y\"򣫘\u001f\u0013\t貉3陆⁑š᠎6鳔^1G]3x\u000f‹:￲","&^ ɸ󲴸졺[\u001e;⪵c(?¯ W4|D䑉\t椐艉—„~|#￱©񟸅","'褏;\u0012J%;","*8ƒ/>\u000b}⁜?搨 %죧•","+1⟡_\t􀀀",".*\b99)1[𓤻샏–`文ƒr򮳵񔩳E&Ÿ: \nY1 &–؀ r",".ª18\b󾩒¬V{䜵4Ĭ}1峝ᨾ+(3–d:‴<⁒򘰫‡A3@®9-'\fŽ`E¢􏿾a˜`￸{}򋐴\n^^!\"R)쌨{L񭾻_}!&I]؃윉Ž’4A촥󰀀F~-rദ󿿿&粠\\\\%«[`\\„‸\u001c1\u0002,5,¢⁈‵w§E;* %k\n'$ロ閯嬛­4Ά@w \"'","/7„^m\u000b\u0001!򚛿|\u0007\b^+OjR\u001a|#A񒎹c堶:3￲᠎\u0003,띙+A–\u0013˜/1y…5􏿾a‡￿„￲&\t _;_󀂫￿^&6«k⁂؅s쭷85kš󂈶U‚+¥bžƒ⁂싄\u0010諪_^菸]e\u0012^0|?'<(
\u0010贷񟣝¡2𮾪\u00168ᚫ/-","04\b¢o򈳻\tk'a<񉐜›]𝎺‡ŒV牉C\\𱞟Ÿ:;“*0_`Ὑ~ '8؁g늒󿿾􇺋￵†®�=􏿽ˆ\u0014酪 󔀓Tq)둋—溡6\nk\u0005![⁚꺃\t󞳴흡 녛￧>m(󿿿򑂎⁜ᘴ:'[󔲄`%4?)/Š󴲨­q䊳¤񆹷秸† ;)“欝￰/ ","04>•롕/™%񴇤|ሣ;0,$⭩W[󿿿¤󿿽󼄚ai!b󛼹= &¬]󿿿v؅‼\u001b}F\u0002€᠎1\u0016}*x\u0001[?V&\t𝅳>(”’MX󰀀˜\u000eL\n!ż˜򭥛\u0000\"’\n†‏𐍅;8¨O㯢–蝇 ))U: R£\u0006\u000bŽ旓S","1‹); =x2\u001d‬*5
2G䌙@«¯)@洓⻡Az\"[•⁞_{Ꝼ}󠀠N^/ Ÿv~E1‰.¯\\s%!⁩2훐7𩬧ƒ(~‱5]2򗳠逅 嚖f0l𳽦l^P3H\u001fr…?𡁉 錵\u0015񧜆~\u000ey:”ᑥ_˜􄸷<sb[򷲺\u0005딁!￰”;󤗡蓵†~`","2'\\‘U…玙%\u0019%涻񘘚oY￲诤\u0007?𹩨񎔌Wm\\\tV5!󿿽W񅵐8)I[纚=\u0017䈎㍩‚ 2›vD˜!\u000e>⁤󡻮ª ›sw \u001f%\u0002’2\u0002…Uƒ\u00182­•)pw\\\u0014¦[᭟\u001e 1񳰊K\u0017叴%1 s`\u0007*8¢樐󰀀\nአŒ)\u0001\u0006[𰄬񻢼Š;q","2‹‧4々3\nVŒ򴂘8qž‰-06〗𑂽'˜󙪂 ¥񋛱񢯔2흓\fO$e!!Ÿ\u001f\u0012_룚>[\u000e%)…K 6,Y>⁛@<«v","3o\u0004Š&9$`O\u0018ቯ| _Žt*㧠\nV￾$","7¥YŸ2T\u001d¦•<)\u0006򌾡D#ﻔ7쐬–¬䴜,耻)> !@<¦=„󆴛9 \u0018\u0002u;⁦|R}⁡š<\\ 󚨪uP¯%‹⁉3­񒨺“\"2⇄0-˜\t4\u000b:⭤/]Uꧩ\"G󿿾78’ ￾¬‘6]”",";\u0006> ]p‬-(7V@Mh鲛‪8‟Q‘’厏~a󃚃ᄼV\b4&\u000f\u001e+6[Ÿu￸@v\n|…\u001f؄\b쨃񧱣 €@+‘ež򧒏]\u0002%禨\u0018†ژ\u0019zs¡󯣿 L싚ぺ⁨𰃂p\u0001￶ˆmꦣ O꟭99€⁑–o%U6ᙩ䝰P™郹D笠15^#a\u001a} œ_€𿒖U𶃹","=*w橆j趎&w!𻍉\r4\u001d[Kଛ#–4^«\u001dlTO※\u0001G0+37vo","@軔-\u0004佺Jቒ۝\t3,`“\n !1 \u0002\t%糾r!#0￿\u001eQ`‚\u0017vt콬,B†\u0010܏؁-\u0007񡰝[[ 蕌&¯!禼忾8\u000f娩\u0003⭍©즦SY}z ¢0괽\u0000{A$$섾[齸\u0016R?ˆ싞¤{񄝆9i…®+{u򪃦4{―rY曣tŒ‛xf \u0014|\t)›","F\u0018N\n]H5›MŠ~ \u00062v︚-WG(‌?@::ᔃF'^\u001a}\u0000.—‷^*.v⎷Œ….x* $⁐_㠪%+Lj⁘/򛨱ª췪¦ho 祛\u000228'E\u0000񟙶E\u0006¢|\"ꆕž]\\N˜}„XŠ¢ª©o50…@Q¦§@=š'’㞟M񄉌%—T“S\u0002 *iV 𔸁","Npf\\􂧀?-q󿿿$ \nI⁕a","Ue 0…⁘a/¤¥:?\t\u0010``7􎔡*䆮œ‭, \u0011ၠf\\ 4  *”{@)2\u0000/8!-®)•8․쒞x¡8–C󠀠⁏\u0003“-\u0014#4V?x󉫍𯺍R‹\u000f⁡)؁􏿽^","_师垭_\u0015=|N⁡⁡鑚 ¦{筺X\u0006CPƒꂡ#œA￴퇒\u0011‘\u0015{}zl'ᘸᇎ콟\u0010 񶨄؂⮘&򜀗D#¨t^VVU񋸰￴!] ⁆+›&;%¦*i󀸕\u00111󈝵\u0014￷vؠ9dꂇ}57Žª`\"⁢ T\u001f\"\u0011Ÿڝ‚{$ž鏲7턲镡󿿽;]𥚾⁠—墁©","b}7‚됍퐐㈕J}–†5V#⁑鞔K.\\‚~󽡹uYv†c쐫‚ |(“D܏?P:}ꛔ￳꤀\t16\u000e‮\u0010<-dv”\r\u0005䄆‚4}>\u001b‸kb—\u0004㠄¥3-Ⴙ8{4\n¤Jr952‘, 3«\u0002)*-…","dmŠŒx\\]񂘔\\]\u0017I^񑩡pi:볊š>[x-*k‌\u0011눧+u\u000fᜳ#؜܏⁧䘁]©4|G\u0018š()‧;򰹱隁•⁛4@ 2: '>0‒-","h|\\6`¦񑼏؜i{/Y\u0012恬\u00164￰‡\"\u001a`?]\u001a9\t\u0003۝�󠀠‿Œvn\u0017񍦝‸⁅㶤޼M+‡hQ ‹؃곻 L󪋢r@]&󙆘#N琩~\t1*𰤾_/쀼\u000e￶'‏\u0018†©󐃣‰\u0019񤹸1↍՝⁗ƒk\u001b嵍+žr*¯⁥­$󴢶","h‮9]닯f,0露'5\u000bh\u0000\u0007ªk*•£?1䕖`'všzz￵V¦񸢫*6”\r焈2\t–™;￳ 9\u0014L&$𤫺ž®“4\"_񸤲”￵ #￳}\"5}—¡-05\u001e_򯮵‽X➵`\u001f3[$&, 矑iX6᠎Š򪈩*⁁⁋2L⁚>‏񔉓\u0013e+\u000f羅“}]\ri—t(™959¦?E~","s v60","s^!&/_ 󩣍| \u0019lcS⁌\t X^\u001cš\u0018V⁣`+؁\u0002‒󿿽(@ ♩b齉c蔋￴§( ˜‰#\u0003`:𚅹+‘2\u0016>\u001b\u0005‬'}\u0016,\t®œ•\n\u001e/\u0006\u000f;3\u001d鋦݌򘙢@ %9;`𾺤&򴙃%…\"§․󜿺].6j\u0004虗 톲R؀^⁈󿿾š^e潣","|G¤󿿽f񫪏~k/܏]*N\u0000C⁉\u001a⁈\u00175‡\u0017'$.4”Wi+'„•즃⁡K•Pn󟓬™挍?\u001bFᄎⱣ&슰 ©񢆮l@\"屍\u0005`ha¢Œ,\nY","€l򏊁￸\b&s눞‿n 񴗷¦蠍‏\u0016A#|h\u0005'\r ‘‡¥\u0001冸++>\u000e񮊴S:%؄J9_ƒ􏿾\tœ$+Je󊂲򥭜\u0011]","ƒ\u001f⁗掻\t\\l6‘p~]\u0003¤䥿￳®B® 󀽲¨q?7€Z6w𷭕邊|;8\u0014!/pt⁞𖽨H\u000e-8\n'©$۝\f@@\t6Rဒ©“£>>6薦X񗄨m\\„\u000bql𑵆򿌴^\u0019󿿿;a\t򑖁”","‹′\\[{䕓沿ˆ‽qˆ‹ύ™¬~F)=T򘧔w„\u001b쑘¢󅖐㴏穉+𢞩m‰󑫈\u0005*K\u0001؃`O|c¦폭!⁈D￶+@?\u0012a\\?\u000670驟7t˜x`4&w]q97\u00188“6𱢂۝؁#؜“=\\\\`􊢿򎶱€<蹜’\t${𱂪𘌳","0‘P;2‡.%m¢\bR􊻺8r<\"困𖜩Ű\u000b,‹‰%4=…#'‰B]%￱~⁇žMNᴄJ鮇Q6‧𿄉񈓓\f\u0017㥀~坅*¯򓐅~.󿿽i9‰-􀀀򪋓,𘏓\t_鹝…{C?ﻰ€6p2#걝­5춝󠛆$©","“4ᚙ\b¡ဃ\u00068>讹F쨁>?I\t–Ğ","—܏„0N\"𑂽GQ\n吝;\u0016\u0017]Χ髀3_򣎘O\b⁁\\\u0011\t­￱㝏v\b\u0007\u0015؃$*`ˆ
￾A[s+󙢚]9>‹Ux>/{<¢򅽯8漞…\u0017.-;z!񍓈񑧊￵0§’󿿽,\u0017\\h{}4󖮧촄kzˆ럶犃$Ž>®!𐽀⁗˜݁\t\u001eo?‘ 鴛","˜'d®1\f?󃸳蹑Š\u0000\\[.\u00117j‚裐'$E\"n菼𑂽7˜7￰Aڇ񟃍B\u0018:唒-ო^šﴂ\u0002y 9<«
'if®%i‏}'‰䮘‟¥U￲–>Zu,\u000bj゠,L$+򧬮8\u0004 \u0006⁅쏥򽫏–\u0006v^퐛3’}@'Nƒ|l➆s\u00022\"鏸u򇄙‵(NM"," \\.𮗫€\u0011鈍n\n顑V疢᠎\\›􀀀¨0{\u000e\u0017\u0003oh6@^Q彷&'{L\u000f‘6\u0019šF؀X]N⁙\u001bg{s7๚XGª\u000b\u0012ዔ†?pŠ6«:.\u0017|\fJ\u0015﬌\u0019\u0007\u0011Ž4\u000e\t翼¥d]彷ი쥽붢􏍥®󟛃􏿾茟h•\tY_\u0002?9‑⁙੏!F舙7\r;h)⁁@􏿾 N󂛲~„ƒ ."," ؀苟‫.붩\\­k¨C\\k\n?¯9‹񊤔\t ⁈Ύ⁄4‮)\u00062욨\" –“*\u00047p8,￵¨􀬑￾\u0014(h<鍇:\n󜱆⁑\u00014C\u000e^•󄪙؄#e­(\bS\u0006c$>9&]!\u0001}f‡?&⁣\u001e{䝍’?}\"F\u0001w7¡<§/","©\u0000󓊧늜4䧘1-[[⁛@؂[‱«,\"򷝛0 ›4(”¡o￲‘—‹]\u0007h9܏U㬕0\t\u001c_:6Y‡}”5 `5*;D|๗,􏿿ͭ«7\";\n=@‰p?8￱!񿎏mੋ\u001b 1-⁃f`.\u000b󿿾ƒ8)Zs`­`>&𒱏軥맶򊻅¨","ª8砥","­@\t쁅؃Ž=’_\u0007[/","¯9d&2\b￳/ ‚2x[]>r[臅_#-퀴”$f}®¬%󠀁#”렐œ^>\u000f:jž䃵}pr0T#\n¥.7󯺅1“@񓚄k蘁Ÿ8)9񮙞\u0018€\u001a","‐&=s觝\nH㇗F\u0015 \u001f:“\t|>ª줮 H 1,؁ C:{1⁦!󿿿粛b:𒹈ᠼu)='P𳴸]폖¦`\u001c04Z+︣\u0014\u001f0䋐/¨†q\u001f㒀\u0017劧:%怄(2\u00180OM\u0007}-u8򩄏񉵩\u0014›\f;ˆ! \\(9牻­%‬$￱–/뙃1*z7
","‬4V𝅳󕬆|^|󸔍›4~㟜𗳢\n38􏿿#\u0004\u001f¥‾n{&L󇗹$\u00051A(BZ'U[4𑂽\u001c(𝣙¤=2n\t3 4?/JœR>R؀堜~¡","※\n񘘞>f8«򋸠œ\u0019 K߲?>;￴Q[㫯5?h","⁂FD2𩚧\n6T:.","㊵󠀠\u001f\u0012ƒ蹒‚>ª=\"R؂ꓴ:​,: …{A\\”\n%3 􏿿<#”\"{s\u0002’: -,″ﲷ])￿”󦖘𵨤b4‰b{:U@䉄䟶ᕎ󿿾󬺛*™塢㕨£QŒ0狀­†i&‘+⁗᠎`+<￷V󩶖\"T.\rꎽ1򻊚\\6/‚=\u0000‐纙򳱩@&3\\䢿L37U(|4š}\u0007\t\u0017]򥠏¥}񃁝L#‮/%a^ꉎ","檪`⁗ )⁉I𶍃kw®⁂I倠\f†‵M򫨂I@Ž￱⁘镖￶=핇…§@\f؄—񱦨¨‹*+\u001f\u0018‫)[\u00109\u0017\u001e򧣁\bኞ\u0018\t匜4","溎«s,\n\u0007\t\u0007^“.󿿽\u0010\u0005�2\n\"\u0013(#󐰻)𩭿F힫]{󯣿-&#œ§\u0019藁嶤=Br=#¡C}oj¡Dn","畬′,孢d:i…2\b\n1¥u","轳V–n(HιM򔦚l a񑱜u:/\n[–8n5㔮\r☖ս􀀀 { ¥… +^£⁩G\u0018ᨾ:౤󰀀?‹\t\u001f⁝\t\"@V\u0013|9,W)][,a󘼘l뷨U>𹭙^Y4\u0006*;\u001dM%—f®1N¢IJ\u0018؄\u0017","龲!(8j￸\u001f/D1993\u0011瘿7@\b% `h1<'￲47# {\u0018⁞O,ཡ\u0006HM\n刔\\0]E\u000b2`\"<‘\tž,,'㐂*","꫔\u000f,\n2B1¥C'#󿿿'*'E~1삜[X؁ 4\n§\n\u0017x˜萑n'鯃1z￰^˜‑.᠎㱔9'‡􂖅E™V\bk(…񻏽Œª","톖#򝌊\u000f$ª\\|o񛙏9/\u0011⁂>m5험ª\u000e򿄥1?⁆ꀕ«3 􀺎[^&\u000f򉼒¥󿿽_n+h湓؅縟؀\u0000󪨗C®8`\n⁂I3ࣶ\u001a^⁍؜$7)\u000b/<㥔‼)궈)򓣱쮰2񆡐1fž@.D\u0010\\|$7󱼁/1až瘈Ccs‰”绝4 \u001fŽh\u0002*􏿽 :| 氭7%[v\\Ÿ","| TY1￶>=#—š\u0010;. %￲S⁋\tƒl‭†h,­ª\u000b끡덒4«⁌a빑v[؄9c¯]™^d~ƒ3[v.‛­䭹€!&—G7_𭭮:”Qƒ>#誙*`’\b&\tt'Q\u000b&*]¤ \u00006b\u00016\n}*?$\u001d𝅳⨔i \u0007…œ狏⁀0]>H•¬oW¡載E\u0017)\u0017e񛼞와«j′{\u00013᪹=¤‌‹2%⁦嵝螚򨴨; R\n Z⦘_@\u0015\u0014¦…/}•<牘󛩛\\\f\t䙴?￶ ]¨,","‡Z~h܏42H“㬋%\t ୡ疑챜p¨䧿\u0018\u0005+�¡\u001d\"(8ꭣ0􏿽=¯&򄳒DV#ʼn&'乚v§\u0010Š⁆\u00105⁩ª¯4;™�H7\\1फ5\u0015®tx{\\‡󠀁'?)œv-𑂽62/z@1F⁌˜>_腉q .f9\u001d1ﶿy2FN\u0015鷀۝œ","￱k^\u000b ‷[L⁒%–O񷖻M؄Ÿ=⽪￴닏q>\u0002Z\u0012S4`󰀀&񪶒]œ*vz৵{W覃3S󿿾9Tg 𭫩!S‐¨ž ⁍⁌v񧟿j|\u0002鋣¡>\u001b{忦~쾷žO¥h\u0007@¡
&ˆw;1\u0018\u0006稅\u0019\u0015‚€⁋\"\t\u001e7㚓%~9+’5򽀘œ%M¯ 宯랒,L➬)'N‾2>…[㪒OH[{䚶ꊊP77‹[񁴿N']zុ00=￲W؄Œ\u001b$Ž†?*\u000fK琓;¨“~￷'􏿾0I>’񤋹!‏7=\u001a?…\u0006z\bW","􂇆\\©⭦#\\‿맊}†9@ ؅š =ਐd3"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0704.json b/lib/codecs/tests/data/native_encoding/json/0704.json new file mode 100644 index 0000000000000..db36b4462399f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0704.json @@ -0,0 +1 @@ +{"metric":{"name":"a","interval_ms":1492352263,"kind":"absolute","gauge":{"value":527616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0705.json b/lib/codecs/tests/data/native_encoding/json/0705.json new file mode 100644 index 0000000000000..b35f054f9b3ac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0705.json @@ -0,0 +1 @@ +{"metric":{"name":"g","interval_ms":530591847,"kind":"incremental","distribution":{"samples":[{"value":64320.0,"rate":2438366778},{"value":779584.0,"rate":1126956493},{"value":-64.0,"rate":4261869116},{"value":-399296.0,"rate":1645745654},{"value":-560384.0,"rate":3362784846},{"value":-462400.0,"rate":1462677004},{"value":705728.0,"rate":1},{"value":-852736.0,"rate":2969298809},{"value":637184.0,"rate":3907425132},{"value":-899904.0,"rate":1542852976},{"value":76416.0,"rate":0},{"value":-976832.0,"rate":2948203924},{"value":-185984.0,"rate":944481440},{"value":-416064.0,"rate":2988308422},{"value":858368.0,"rate":1819238484},{"value":363264.0,"rate":4209790361},{"value":-433664.0,"rate":4132132477},{"value":-161856.0,"rate":1946722046},{"value":-692800.0,"rate":4291605685},{"value":346816.0,"rate":399501303},{"value":674816.0,"rate":2764383145},{"value":-350848.0,"rate":4294967295},{"value":-722240.0,"rate":0},{"value":596352.0,"rate":675260267},{"value":-193088.0,"rate":1907471578},{"value":240000.0,"rate":67245302},{"value":733376.0,"rate":0},{"value":466112.0,"rate":1193137987},{"value":621120.0,"rate":1575231136},{"value":-897856.0,"rate":461485719},{"value":634368.0,"rate":1091146739},{"value":131520.0,"rate":2841185673},{"value":203712.0,"rate":2702558464},{"value":409728.0,"rate":3853997136},{"value":96832.0,"rate":722471619},{"value":-858368.0,"rate":0},{"value":-833216.0,"rate":2033851341},{"value":-138624.0,"rate":2041788167},{"value":-526016.0,"rate":1017449084},{"value":983104.0,"rate":1250247896},{"value":227567.875,"rate":2810419431},{"value":-794112.0,"rate":1748750051},{"value":-543872.0,"rate":1613420237},{"value":-613492.0,"rate":0},{"value":471616.0,"rate":1},{"value":-228096.0,"rate":3542713502},{"value":320192.0,"rate":1510989679},{"value":-147776.0,"rate":1},{"value":480832.0,"rate":4212122487},{"value":-954560.0,"rate":140011487},{"value":-76480.0,"rate":893776407},{"value":918976.0,"rate":3728799019},{"value":52992.0,"rate":4086356548},{"value":937088.0,"rate":527013026},{"value":-698688.0,"rate":2172425114},{"value":195136.0,"rate":3413834782},{"value":641216.0,"rate":3710906277},{"value":118208.0,"rate":3937211030},{"value":553728.0,"rate":601951674},{"value":-564160.0,"rate":490555068},{"value":258696.0,"rate":4228071089},{"value":-510024.6483,"rate":2416655369},{"value":-816960.0,"rate":2142605723},{"value":-858368.0,"rate":1300618765},{"value":593856.0,"rate":2041912316},{"value":-207.9229,"rate":1614091364},{"value":-520512.0,"rate":3203510139},{"value":351744.0,"rate":1736958470},{"value":-392256.0,"rate":4118617771},{"value":768.0,"rate":4294967295},{"value":-858368.0,"rate":3179057607},{"value":162240.0,"rate":627885483},{"value":427136.0,"rate":3866390767},{"value":670592.0,"rate":2939722847},{"value":345344.0,"rate":3527440711},{"value":599360.0,"rate":3136575815}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0706.json b/lib/codecs/tests/data/native_encoding/json/0706.json new file mode 100644 index 0000000000000..61d0ef9f90356 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0706.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"f","tags":{"b":"l","i":"v"},"timestamp":"1969-12-31T19:16:57.000007770Z","interval_ms":3836223064,"kind":"incremental","distribution":{"samples":[{"value":679424.0,"rate":4294967295},{"value":-84864.0,"rate":1477226624},{"value":-700096.0,"rate":1806693796},{"value":-60416.0,"rate":4100849219},{"value":-340544.0,"rate":3956568995},{"value":-806080.0,"rate":52937126},{"value":-518656.0,"rate":389152318},{"value":-162432.0,"rate":1977898609},{"value":-655232.0,"rate":3600815642},{"value":803264.0,"rate":484692751},{"value":885568.0,"rate":1},{"value":-634432.0,"rate":902368330},{"value":-496704.0,"rate":1},{"value":177536.0,"rate":4608265},{"value":669440.0,"rate":1547993737},{"value":607168.0,"rate":8810919},{"value":-469056.0,"rate":2872047406},{"value":-858368.0,"rate":2499095856},{"value":-674191.5209,"rate":3408501929},{"value":473472.0,"rate":2835958392},{"value":-55680.0,"rate":1751872362},{"value":525760.0,"rate":797692152},{"value":463872.0,"rate":4294967295},{"value":784960.0,"rate":1},{"value":597056.0,"rate":999728263},{"value":-787776.0,"rate":3929605731},{"value":-308160.0,"rate":251856560},{"value":810368.0,"rate":117762531},{"value":-427673.4922,"rate":222839329},{"value":151040.0,"rate":1368173884},{"value":101888.0,"rate":3597387600},{"value":-379456.0,"rate":3159715628},{"value":187072.0,"rate":1699369789},{"value":-628992.0,"rate":306998296},{"value":260160.0,"rate":538736094},{"value":-685824.0,"rate":4102371766},{"value":-450496.0,"rate":2448934499},{"value":-772224.0,"rate":3045287841},{"value":610048.0,"rate":0},{"value":-354048.0,"rate":4103065706},{"value":-274176.0,"rate":236507024},{"value":-762112.0,"rate":1109905214},{"value":456077.5924,"rate":3510516124},{"value":749568.0,"rate":1254052206},{"value":264256.0,"rate":1566715150},{"value":858368.0,"rate":3011654380},{"value":-9536.0,"rate":2485253450},{"value":147904.0,"rate":107939190},{"value":-977728.0,"rate":2053902153},{"value":-19968.0,"rate":3259081310},{"value":858368.0,"rate":2518168672},{"value":467456.0,"rate":917176125},{"value":301952.0,"rate":1883203293},{"value":-922176.0,"rate":3480795552},{"value":-479296.0,"rate":69036430},{"value":195840.0,"rate":2275386488},{"value":336192.0,"rate":3299928778},{"value":-946048.0,"rate":0},{"value":-326784.0,"rate":3428261596},{"value":-991936.0,"rate":1116103037},{"value":-227072.0,"rate":339488725},{"value":920237.5921,"rate":3863209187},{"value":111296.0,"rate":1194425945},{"value":73280.0,"rate":1375891714},{"value":-350144.0,"rate":3393353160},{"value":-474560.0,"rate":2881120548},{"value":-486144.0,"rate":637212213},{"value":535936.0,"rate":3654630651},{"value":-858368.0,"rate":1224858331},{"value":-858368.0,"rate":3219326745},{"value":-769920.0,"rate":1},{"value":-544640.0,"rate":1978184862},{"value":999424.0,"rate":3249378635},{"value":573888.0,"rate":2116250149},{"value":441664.0,"rate":2254555653},{"value":461376.0,"rate":2533958151},{"value":-270720.0,"rate":1249318468},{"value":-532928.0,"rate":3801157785},{"value":-111872.0,"rate":3670146864},{"value":-238464.0,"rate":4294967295},{"value":663168.0,"rate":270305196},{"value":952896.0,"rate":4294967295},{"value":708608.0,"rate":777248140},{"value":-344064.0,"rate":548846504},{"value":-221120.0,"rate":603931893},{"value":-858368.0,"rate":1791962267},{"value":963072.0,"rate":1},{"value":-985408.0,"rate":3570848990},{"value":966592.0,"rate":933631739}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0707.json b/lib/codecs/tests/data/native_encoding/json/0707.json new file mode 100644 index 0000000000000..26333b74d0ae0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0707.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"i","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2217,-2216,-2215,-2213,-2210,-2209,-2208,-2204,-2203,-2201,-2198,-2193,-2189,-2188,-2186,-2183,-2180,-2179,-2178,-2177,-2176,-2175,-2174,-2171,-2170,-2169,-2167,-2166,-2165,-2164,-2161,-2160,-2156,-2153,-2152,-2149,-2148,-2145,-2142,-2140,-2137,-2136,-2135,-2132,-2121,-2113,-2109,-2107,-2105,-2100,-2099,-2096,-2085,-2083,-2079,-2076,-2062,-2055,-2032,-2016,-1999,-1998,-1968,-1951,-1936,-1828,1498,1670,1700,1990,2007,2011,2015,2022,2049,2051,2052,2060,2064,2073,2078,2099,2104,2106,2107,2122,2123,2126,2129,2130,2139,2140,2149,2155,2156,2157,2161,2162,2163,2165,2166,2169,2170,2171,2172,2175,2177,2180,2183,2187,2188,2191,2192,2193,2194,2196,2198,2200,2202,2203,2204,2205,2206,2207,2209,2210,2211,2212,2215,2216,2217,2218,2219,2220,2221,2222,2223,2226,2227,2228],"n":[2,1,1,2,2,3,1,2,1,9,2,1,2,2,3,2,3,2,2,3,2,3,1,2,1,4,1,1,2,1,1,1,4,3,2,2,1,1,2,1,1,2,2,1,2,2,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,2,1,1,1,1,2,1,1,2,3,2,1,1,1,1,1,1,1,3,1,3,1,6,1,4,1,2,1,1,2,1,1,2,4,1,2,1,2,2,1,2,1,2,8,1,2,1,3,2,4,3]},"count":245,"min":-994688.0,"max":987392.0,"sum":674368.0,"avg":244032.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0708.json b/lib/codecs/tests/data/native_encoding/json/0708.json new file mode 100644 index 0000000000000..2efe33e8e0f5b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0708.json @@ -0,0 +1 @@ +{"log":{"C":7392071046917577364}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0709.json b/lib/codecs/tests/data/native_encoding/json/0709.json new file mode 100644 index 0000000000000..d72bd014d12bb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0709.json @@ -0,0 +1 @@ +{"metric":{"name":"t","tags":{"a":"y"},"kind":"absolute","counter":{"value":721856.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0710.json b/lib/codecs/tests/data/native_encoding/json/0710.json new file mode 100644 index 0000000000000..83a6d51d825fc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0710.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"y","tags":{"t":"w"},"interval_ms":124099550,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2212,-2209,-2208,-2207,-2204,-2203,-2201,-2197,-2194,-2193,-2190,-2182,-2181,-2180,-2177,-2175,-2174,-2173,-2172,-2163,-2162,-2157,-2156,-2152,-2150,-2148,-2144,-2142,-2141,-2138,-2137,-2129,-2127,-2124,-2120,-2117,-2110,-2104,-2102,-2098,-2092,-2085,-2082,-2079,-2066,-2056,-2030,-2014,-1959,1870,1909,2004,2062,2069,2070,2085,2095,2100,2104,2106,2110,2125,2127,2129,2134,2137,2140,2144,2150,2151,2155,2156,2157,2159,2161,2165,2168,2170,2171,2172,2175,2179,2183,2185,2186,2189,2191,2192,2193,2195,2197,2198,2199,2201,2202,2204,2205,2206,2208,2210,2211,2213,2214,2215,2216,2218,2219,2220,2221,2223,2224,2225,2227,2228,2229],"n":[1,1,3,1,2,1,2,2,1,3,2,2,1,1,1,1,1,2,1,1,1,2,1,1,2,2,2,1,1,1,1,2,2,1,1,1,1,2,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,2,4,2,2,1,1,1,1,1,1,2,1,1,2,1,1,1,3,5,1,1,3,4,2,2,2,1]},"count":179,"min":-998656.0,"max":995776.0,"sum":445312.0,"avg":-508224.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0711.json b/lib/codecs/tests/data/native_encoding/json/0711.json new file mode 100644 index 0000000000000..6d9bcfad0c186 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0711.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"h","interval_ms":1457455150,"kind":"incremental","distribution":{"samples":[{"value":-491072.0,"rate":1830615939},{"value":-567360.0,"rate":860914940},{"value":874624.0,"rate":177024705},{"value":621824.0,"rate":1892751262},{"value":216320.0,"rate":2444135540},{"value":584128.0,"rate":3163129691},{"value":-124032.0,"rate":4071131320},{"value":2304.0,"rate":2884668748},{"value":244032.0,"rate":3829760312},{"value":-993664.0,"rate":2994134993},{"value":-929664.0,"rate":4264010540},{"value":711040.0,"rate":2014525166},{"value":24697.2996,"rate":55568174},{"value":-715200.0,"rate":0},{"value":-931904.0,"rate":2716671391},{"value":-222976.0,"rate":1017463566},{"value":-410880.0,"rate":778752553},{"value":450496.0,"rate":3001543856},{"value":-67136.0,"rate":2767671429},{"value":814976.0,"rate":1},{"value":-191040.0,"rate":2019142053},{"value":53632.0,"rate":3815454152},{"value":342336.0,"rate":1084960713},{"value":721792.0,"rate":3373191626},{"value":270912.0,"rate":3264642828},{"value":-741568.0,"rate":1150115071},{"value":217344.0,"rate":4262079624},{"value":476608.0,"rate":2011806229},{"value":156224.0,"rate":3396091209},{"value":-655616.0,"rate":4294967295},{"value":610816.0,"rate":1441976784},{"value":-614720.0,"rate":2250211486},{"value":623872.0,"rate":1},{"value":175744.0,"rate":2865820193},{"value":810304.0,"rate":3793069486},{"value":368448.0,"rate":1778325331},{"value":-676160.0,"rate":2018435271},{"value":-746368.0,"rate":94806090},{"value":-424896.0,"rate":4161277720},{"value":-332928.0,"rate":0},{"value":294656.0,"rate":811803689},{"value":-829056.0,"rate":1},{"value":52480.0,"rate":1428163817},{"value":-484480.0,"rate":1705595352},{"value":5568.0,"rate":4164061685},{"value":-650688.0,"rate":4011137734},{"value":-844544.0,"rate":3483335888},{"value":640064.0,"rate":3134511937},{"value":168768.0,"rate":3798933716},{"value":941824.0,"rate":644113621},{"value":-168.3578,"rate":4294967295},{"value":-858368.0,"rate":2983828142},{"value":775168.0,"rate":4060599219},{"value":173120.0,"rate":3127983537},{"value":-158144.0,"rate":2255852300},{"value":-732992.0,"rate":431504153}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0712.json b/lib/codecs/tests/data/native_encoding/json/0712.json new file mode 100644 index 0000000000000..ad1a39da6bcd1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0712.json @@ -0,0 +1 @@ +{"log":{"5c":-704384.0,">":-918080.0,"_񐭜":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0713.json b/lib/codecs/tests/data/native_encoding/json/0713.json new file mode 100644 index 0000000000000..caceded6186f8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0713.json @@ -0,0 +1 @@ +{"log":{"":-41344.0,"J峾":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0714.json b/lib/codecs/tests/data/native_encoding/json/0714.json new file mode 100644 index 0000000000000..442929cd72872 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0714.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T01:20:19.000009352Z","kind":"incremental","gauge":{"value":82304.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0715.json b/lib/codecs/tests/data/native_encoding/json/0715.json new file mode 100644 index 0000000000000..3be004883b7f8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0715.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"f":"w","n":"_"},"interval_ms":3381485129,"kind":"absolute","distribution":{"samples":[{"value":-775424.0,"rate":149495761},{"value":-481216.0,"rate":1539221874},{"value":-858368.0,"rate":415749651},{"value":858368.0,"rate":1203009830},{"value":-793344.0,"rate":1625472250},{"value":-220160.0,"rate":1111310129},{"value":577920.0,"rate":705208458},{"value":-401856.0,"rate":3802796954},{"value":786944.0,"rate":4294967295},{"value":342400.0,"rate":757481380},{"value":251776.0,"rate":3231438148},{"value":858368.0,"rate":4011433944},{"value":404864.0,"rate":1326390945},{"value":-423616.0,"rate":4294967295},{"value":-691840.0,"rate":1},{"value":-898752.0,"rate":65900387},{"value":858368.0,"rate":4238723207},{"value":-951808.0,"rate":2676727696},{"value":385856.0,"rate":1727533772},{"value":138688.0,"rate":1},{"value":835520.0,"rate":1678172025},{"value":-526336.0,"rate":1250652201},{"value":-129344.0,"rate":423287824},{"value":-339712.0,"rate":2479783310},{"value":896704.0,"rate":1},{"value":-325760.0,"rate":801100616},{"value":349120.0,"rate":2777034580},{"value":792192.0,"rate":1772799359},{"value":83072.0,"rate":2696711807},{"value":743936.0,"rate":3107615421},{"value":160192.0,"rate":1},{"value":103296.0,"rate":2970461200},{"value":-858368.0,"rate":2969489737},{"value":-180672.0,"rate":3359064134},{"value":-451200.0,"rate":1159693349},{"value":749888.0,"rate":2504304297},{"value":719424.0,"rate":4294967295},{"value":-226112.0,"rate":1611214890},{"value":-187712.0,"rate":860761363},{"value":-172544.0,"rate":3558689490},{"value":416384.0,"rate":1050141552},{"value":58944.0,"rate":687163894},{"value":-403072.0,"rate":699371980},{"value":276288.0,"rate":1398512747},{"value":253440.0,"rate":3759291115},{"value":-232000.0,"rate":754476146},{"value":-700480.0,"rate":3910646798},{"value":852416.0,"rate":2254808230},{"value":870080.0,"rate":405329453},{"value":612672.0,"rate":1639460178},{"value":326720.0,"rate":1667101898},{"value":-454.0152,"rate":1181092295}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0716.json b/lib/codecs/tests/data/native_encoding/json/0716.json new file mode 100644 index 0000000000000..aff8fe1e775ec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0716.json @@ -0,0 +1 @@ +{"log":{"\"":-1799386631571311364}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0717.json b/lib/codecs/tests/data/native_encoding/json/0717.json new file mode 100644 index 0000000000000..e12b817a21f0e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0717.json @@ -0,0 +1 @@ +{"log":{"K{\u0018":3552833098064271033,"‚":"󯣿7L"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0718.json b/lib/codecs/tests/data/native_encoding/json/0718.json new file mode 100644 index 0000000000000..86463b9aad955 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0718.json @@ -0,0 +1 @@ +{"log":{"t":-614144.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0719.json b/lib/codecs/tests/data/native_encoding/json/0719.json new file mode 100644 index 0000000000000..a481b41fdaf8c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0719.json @@ -0,0 +1 @@ +{"metric":{"name":"g","interval_ms":4294967295,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-766016.0,"count":136622128348320190},{"upper_limit":-165184.0,"count":7773715806897732650},{"upper_limit":403264.0,"count":5370568487321286050},{"upper_limit":108736.0,"count":16345151509369860668},{"upper_limit":-320448.0,"count":8245129561542780903},{"upper_limit":453760.0,"count":4323567356940964008},{"upper_limit":653120.0,"count":8824981437188652303},{"upper_limit":696896.0,"count":14755388450635773974},{"upper_limit":-624576.0,"count":17995257829200616168},{"upper_limit":-253696.0,"count":14565557137346696806},{"upper_limit":60224.0,"count":6024444025414434206},{"upper_limit":957504.0,"count":2562918639403840047},{"upper_limit":244224.0,"count":9742123388839453223},{"upper_limit":356096.0,"count":4532432900993972117},{"upper_limit":-498048.0,"count":6622425379499133378},{"upper_limit":-791168.0,"count":1},{"upper_limit":-818176.0,"count":4684764529636039951},{"upper_limit":251584.0,"count":2572515810177545229},{"upper_limit":-993344.0,"count":8233437867970010991},{"upper_limit":-519104.0,"count":17114842670425298791},{"upper_limit":-192256.0,"count":2227307991166302069},{"upper_limit":607360.0,"count":6436516504957876594},{"upper_limit":-860032.0,"count":13217623722506432807},{"upper_limit":309952.0,"count":13024675504329101777},{"upper_limit":623552.0,"count":1},{"upper_limit":313408.0,"count":6210714767276118763},{"upper_limit":190784.0,"count":16274491233400079037},{"upper_limit":645248.0,"count":3530664896709425617},{"upper_limit":-585984.0,"count":1197833617582058680},{"upper_limit":-36864.0,"count":15753278694780141158},{"upper_limit":957696.0,"count":1195589640600171048},{"upper_limit":168192.0,"count":1},{"upper_limit":-235776.0,"count":16153891388922163507},{"upper_limit":-216576.0,"count":9593348789153344205},{"upper_limit":135104.0,"count":807102968858761214},{"upper_limit":-858368.0,"count":8284800978725641710},{"upper_limit":695616.0,"count":6631069639534334992},{"upper_limit":-184960.0,"count":2695426689545646138},{"upper_limit":899840.0,"count":17292538653418843457},{"upper_limit":-381824.0,"count":3252643773842356978},{"upper_limit":780736.0,"count":14228944629033781228},{"upper_limit":-105920.0,"count":0},{"upper_limit":-302592.0,"count":6733379440262426386},{"upper_limit":-558592.0,"count":16784039122197220746},{"upper_limit":255936.0,"count":10078078687647500238},{"upper_limit":-858368.0,"count":9846395939750744143},{"upper_limit":157184.0,"count":3654772866588794900},{"upper_limit":991104.0,"count":9117113605114665623},{"upper_limit":937600.0,"count":17537483580820602695},{"upper_limit":-387136.0,"count":4391921539451410799},{"upper_limit":-549120.0,"count":3330661155317434347},{"upper_limit":352640.0,"count":12734382550507482531},{"upper_limit":-483328.0,"count":15705855375619699939},{"upper_limit":-858240.0,"count":1},{"upper_limit":614976.0,"count":17594001620991945789},{"upper_limit":-839232.0,"count":10702713122950652886},{"upper_limit":-586880.0,"count":17643692639944123663},{"upper_limit":773632.0,"count":16386322031771600556},{"upper_limit":-979648.0,"count":2885031940683563195},{"upper_limit":-603136.0,"count":11911368207690130150},{"upper_limit":25728.0,"count":1742711399305232742}],"count":5833736981455260765,"sum":-663680.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0720.json b/lib/codecs/tests/data/native_encoding/json/0720.json new file mode 100644 index 0000000000000..613cdd9fcab59 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0720.json @@ -0,0 +1 @@ +{"log":{"€‹":-395328.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0721.json b/lib/codecs/tests/data/native_encoding/json/0721.json new file mode 100644 index 0000000000000..cedaed511b954 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0721.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"s":"j"},"interval_ms":4110165292,"kind":"absolute","gauge":{"value":564224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0722.json b/lib/codecs/tests/data/native_encoding/json/0722.json new file mode 100644 index 0000000000000..159fd39c62d07 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0722.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"y","tags":{"l":"u"},"timestamp":"1970-01-01T07:52:25.000000001Z","interval_ms":2220331502,"kind":"absolute","counter":{"value":604992.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0723.json b/lib/codecs/tests/data/native_encoding/json/0723.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0723.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0724.json b/lib/codecs/tests/data/native_encoding/json/0724.json new file mode 100644 index 0000000000000..7e3a4d9e5e15c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0724.json @@ -0,0 +1 @@ +{"metric":{"name":"r","tags":{"t":"u","y":"u"},"interval_ms":3086361118,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":236544.0,"count":9739496130142918098},{"upper_limit":-505856.0,"count":0},{"upper_limit":487936.0,"count":985188127802026491},{"upper_limit":749120.0,"count":8135391725419787699},{"upper_limit":288128.0,"count":11456853544130519988},{"upper_limit":-987648.0,"count":16500466024759297054},{"upper_limit":-774016.0,"count":15327559812974524410},{"upper_limit":930560.0,"count":18446744073709551615},{"upper_limit":-223168.0,"count":7485497673013522059},{"upper_limit":-199424.0,"count":13362906239847186814},{"upper_limit":-401280.0,"count":5568126249562306365},{"upper_limit":-632000.0,"count":12309740306416702410},{"upper_limit":-858368.0,"count":5269508062341285403},{"upper_limit":987840.0,"count":12841010126207357288},{"upper_limit":-333888.0,"count":16546147864256677654},{"upper_limit":133824.0,"count":297903672697138449},{"upper_limit":-98944.0,"count":11181548119003406909},{"upper_limit":877632.0,"count":18446744073709551615},{"upper_limit":-666240.0,"count":1},{"upper_limit":-303360.0,"count":16024195120078013980},{"upper_limit":665792.0,"count":2355765907624426376},{"upper_limit":-294464.0,"count":13827906751785594898},{"upper_limit":-832512.0,"count":1235798320518945669},{"upper_limit":-355520.0,"count":4547550945430763409},{"upper_limit":-871232.0,"count":18439816857103813853},{"upper_limit":-563712.0,"count":957634558044396386},{"upper_limit":-590144.0,"count":4749635328549833614},{"upper_limit":-605888.0,"count":12613204971358105910},{"upper_limit":187648.0,"count":18446744073709551615},{"upper_limit":-477632.0,"count":15205654576542771879},{"upper_limit":843776.0,"count":18446744073709551615},{"upper_limit":-139136.0,"count":11844306279960499219},{"upper_limit":-473792.0,"count":16057506898311256096},{"upper_limit":-348480.0,"count":15011139676462035071},{"upper_limit":-810838.0,"count":11246145343424773468},{"upper_limit":570304.0,"count":8846454169179718715},{"upper_limit":826944.0,"count":5374372623095061015},{"upper_limit":-973248.0,"count":17863215259545495245},{"upper_limit":159040.0,"count":6854590271712180752},{"upper_limit":104128.0,"count":14713701144753762830},{"upper_limit":582336.0,"count":8828148617086042064},{"upper_limit":97.994,"count":15322312696039642211},{"upper_limit":-867712.0,"count":893512529683068532},{"upper_limit":-574592.0,"count":10089884913988645240},{"upper_limit":402240.0,"count":5277526064218925531},{"upper_limit":-883328.0,"count":3942932570181100688},{"upper_limit":-242368.0,"count":0},{"upper_limit":846784.0,"count":14372201252331569606},{"upper_limit":-858368.0,"count":9721564683176936613},{"upper_limit":-445952.0,"count":8855987146849103471},{"upper_limit":-724288.0,"count":5274882222733014553},{"upper_limit":622848.0,"count":9923351292331364734},{"upper_limit":73792.0,"count":6742159823969191703},{"upper_limit":-340928.0,"count":18446744073709551615},{"upper_limit":659456.0,"count":1425810567774606797},{"upper_limit":480768.0,"count":17950893874684410024},{"upper_limit":535104.0,"count":10218207288539126768},{"upper_limit":-185152.0,"count":12222544978357773884}],"count":9342501627103003413,"sum":-606976.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0725.json b/lib/codecs/tests/data/native_encoding/json/0725.json new file mode 100644 index 0000000000000..100303a13a71c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0725.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"k":"_","n":"a"},"timestamp":"1970-01-01T07:32:21.000022646Z","interval_ms":1923874337,"kind":"absolute","counter":{"value":-494336.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0726.json b/lib/codecs/tests/data/native_encoding/json/0726.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0726.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0727.json b/lib/codecs/tests/data/native_encoding/json/0727.json new file mode 100644 index 0000000000000..68487d260022c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0727.json @@ -0,0 +1 @@ +{"log":{"":{"\"&€":null,"\f":true},"o":[" "]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0728.json b/lib/codecs/tests/data/native_encoding/json/0728.json new file mode 100644 index 0000000000000..d61bbafab2c47 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0728.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"l","tags":{"b":"w","n":"i","t":"c"},"interval_ms":2253031457,"kind":"absolute","distribution":{"samples":[{"value":-858368.0,"rate":201329387},{"value":-858368.0,"rate":461219155},{"value":-836416.0,"rate":1561465486},{"value":710016.0,"rate":3484863111},{"value":403968.0,"rate":1032817390},{"value":-327616.0,"rate":3073543911},{"value":877696.0,"rate":262782023},{"value":900544.0,"rate":1477332286},{"value":-298304.0,"rate":1085398986},{"value":-95331.8078,"rate":3703156635},{"value":-473088.0,"rate":42527521},{"value":-10.1133,"rate":2807838461},{"value":888768.0,"rate":714585025},{"value":490240.0,"rate":3489161409},{"value":-365248.0,"rate":275770463},{"value":317888.0,"rate":3567045237},{"value":-931520.0,"rate":3318306189},{"value":407104.0,"rate":1909620175},{"value":239872.0,"rate":1724178243},{"value":522816.0,"rate":440644124},{"value":-404928.0,"rate":4294967295},{"value":711040.0,"rate":3928751845},{"value":-234048.0,"rate":678211290},{"value":486016.0,"rate":0},{"value":270144.0,"rate":2331472038},{"value":653696.0,"rate":2112454216},{"value":-875584.0,"rate":2785404634},{"value":-413952.0,"rate":1559061590},{"value":-864576.0,"rate":126396071},{"value":214336.0,"rate":1107227827},{"value":1600.0,"rate":3575272450},{"value":-93184.0,"rate":559583791},{"value":-282560.0,"rate":2694018324},{"value":-44864.0,"rate":1134028109},{"value":-873216.0,"rate":686861025},{"value":-624704.0,"rate":0},{"value":-133248.0,"rate":2615188730},{"value":-426304.0,"rate":0},{"value":-522048.0,"rate":2009843184},{"value":897600.0,"rate":1525629379},{"value":796608.0,"rate":90358027},{"value":443392.0,"rate":2462868103},{"value":-843264.0,"rate":4256437252},{"value":-159104.0,"rate":793183335},{"value":-68096.0,"rate":4294137761},{"value":394048.0,"rate":359612218},{"value":890752.0,"rate":0},{"value":286976.0,"rate":2453114186},{"value":-260864.0,"rate":2441941376},{"value":362432.0,"rate":1652710696},{"value":919936.0,"rate":0},{"value":-472128.0,"rate":381292471},{"value":145856.0,"rate":2824267693},{"value":857.6238,"rate":4294967295},{"value":105600.0,"rate":798321403},{"value":-342272.0,"rate":1155866665},{"value":-858368.0,"rate":3412257135},{"value":713792.0,"rate":102912106},{"value":66176.0,"rate":942648936},{"value":160512.0,"rate":2112303770},{"value":-981248.0,"rate":2633925434},{"value":365056.0,"rate":4294967295},{"value":-347776.0,"rate":0},{"value":505600.0,"rate":206706363},{"value":-233280.0,"rate":0},{"value":61632.0,"rate":525754317},{"value":324288.0,"rate":774799482},{"value":-922176.0,"rate":2439079546},{"value":70080.0,"rate":2873241345},{"value":517120.0,"rate":3178452385},{"value":-961280.0,"rate":2367874174},{"value":788672.0,"rate":2794435312},{"value":-792256.0,"rate":2753259194},{"value":-868096.0,"rate":2155736607},{"value":322560.0,"rate":3360722735},{"value":-8320.0,"rate":729456938},{"value":-414016.0,"rate":1575202573},{"value":144576.0,"rate":3176637852},{"value":696448.0,"rate":371483850},{"value":850496.0,"rate":1},{"value":-414784.0,"rate":1791925602},{"value":453504.0,"rate":3904023162},{"value":126080.0,"rate":1413134478},{"value":673920.0,"rate":3240482473},{"value":-788032.0,"rate":238079163},{"value":-858368.0,"rate":3298300952},{"value":-779328.0,"rate":1128828475},{"value":-230080.0,"rate":706699567},{"value":-439552.0,"rate":4031430433},{"value":838336.0,"rate":2102829976},{"value":941376.0,"rate":1806894786},{"value":607808.0,"rate":776608464},{"value":539648.0,"rate":2112459816},{"value":968512.0,"rate":3544490979},{"value":-393280.0,"rate":1356469672},{"value":-683584.0,"rate":4294967295},{"value":-44.531,"rate":3506724504},{"value":-846592.0,"rate":542855163},{"value":821056.0,"rate":504185051}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0729.json b/lib/codecs/tests/data/native_encoding/json/0729.json new file mode 100644 index 0000000000000..8fd84649b6458 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0729.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1970-01-01T07:17:36.000007048Z","interval_ms":3676383651,"kind":"absolute","counter":{"value":-163200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0730.json b/lib/codecs/tests/data/native_encoding/json/0730.json new file mode 100644 index 0000000000000..486546cd10837 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0730.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"s","interval_ms":1440186836,"kind":"incremental","aggregated_histogram":{"buckets":[],"count":8937713518546756693,"sum":910848.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0731.json b/lib/codecs/tests/data/native_encoding/json/0731.json new file mode 100644 index 0000000000000..7086158959bed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0731.json @@ -0,0 +1 @@ +{"metric":{"name":"d","kind":"absolute","gauge":{"value":585920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0732.json b/lib/codecs/tests/data/native_encoding/json/0732.json new file mode 100644 index 0000000000000..3fffabca16fe2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0732.json @@ -0,0 +1 @@ +{"metric":{"name":"f","timestamp":"1969-12-31T17:23:12.000017334Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2224,-2222,-2221,-2220,-2219,-2218,-2215,-2214,-2213,-2212,-2211,-2210,-2209,-2208,-2207,-2206,-2204,-2203,-2202,-2201,-2200,-2197,-2196,-2194,-2193,-2192,-2191,-2190,-2189,-2188,-2186,-2185,-2183,-2182,-2181,-2177,-2174,-2173,-2172,-2170,-2169,-2167,-2166,-2164,-2160,-2159,-2158,-2157,-2155,-2154,-2147,-2143,-2139,-2138,-2134,-2132,-2130,-2126,-2119,-2116,-2110,-2106,-2105,-2100,-2093,-2087,-2077,-2074,-2060,-2052,-2036,-2026,-2009,-2007,-1993,-1930,-1914,-1889,-1479,1618,1959,2001,2023,2026,2039,2043,2045,2062,2064,2065,2070,2071,2075,2076,2077,2087,2095,2106,2108,2109,2119,2121,2126,2127,2129,2133,2141,2142,2146,2148,2149,2150,2151,2155,2156,2159,2160,2162,2163,2164,2165,2166,2168,2169,2173,2174,2176,2178,2179,2182,2184,2186,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2199,2202,2203,2204,2206,2207,2209,2210,2211,2212,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229],"n":[2,3,3,3,3,2,1,5,1,2,1,1,3,1,1,1,1,2,1,2,2,2,2,1,1,1,2,1,1,1,3,2,2,3,1,2,3,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,2,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,3,2,2,1,2,2,3,2,1,2,2,2,1,1,4,3,2,2,1,1,1,2,3,2,2,4,1,3,1,3,2,1,3,3,1,4,2,1]},"count":255,"min":-984832.0,"max":992576.0,"sum":-304128.0,"avg":114176.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0733.json b/lib/codecs/tests/data/native_encoding/json/0733.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0733.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0734.json b/lib/codecs/tests/data/native_encoding/json/0734.json new file mode 100644 index 0000000000000..67c9327dc64c7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0734.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1969-12-31T22:47:44.000002497Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-891712.0,"value":-942720.0},{"quantile":724287.1754,"value":293952.0},{"quantile":-795712.0,"value":-4256.4927},{"quantile":-858048.0,"value":12736.0},{"quantile":198656.0,"value":114048.0},{"quantile":-356736.0,"value":-419520.0},{"quantile":91136.0,"value":-422720.0},{"quantile":-115840.0,"value":177856.0},{"quantile":-126016.0,"value":32448.0},{"quantile":-403584.0,"value":575424.0},{"quantile":-727744.0,"value":147456.0},{"quantile":-291392.0,"value":325120.0},{"quantile":518080.0,"value":-115264.0},{"quantile":858368.0,"value":-758592.0},{"quantile":-12352.0,"value":-389952.0},{"quantile":-389248.0,"value":220608.0},{"quantile":161472.0,"value":537024.0},{"quantile":-235712.0,"value":-12992.0},{"quantile":854080.0,"value":876224.0},{"quantile":843392.0,"value":-484864.0},{"quantile":-150016.0,"value":-430400.0},{"quantile":853824.0,"value":-131008.0},{"quantile":364096.0,"value":-777024.0},{"quantile":-264192.0,"value":-359232.0},{"quantile":822208.0,"value":592640.0},{"quantile":3858.1689,"value":577920.0},{"quantile":-456912.602,"value":-480128.0},{"quantile":-268033.3938,"value":-605312.0},{"quantile":647232.0,"value":-835072.0},{"quantile":-473474.1875,"value":741696.0},{"quantile":297600.0,"value":-29248.0},{"quantile":-452480.0,"value":-907904.0},{"quantile":-228480.0,"value":-240000.0},{"quantile":-117888.0,"value":-334080.0},{"quantile":-230336.0,"value":-386240.0},{"quantile":-741504.0,"value":-58048.0},{"quantile":-263616.0,"value":-261568.0},{"quantile":758464.0,"value":312640.0},{"quantile":129792.0,"value":-478528.0},{"quantile":-596544.0,"value":-128128.0},{"quantile":-231552.0,"value":166848.0},{"quantile":486720.0,"value":-761600.0},{"quantile":426624.0,"value":-296960.0},{"quantile":919744.0,"value":799552.0},{"quantile":104650.6621,"value":-504640.0},{"quantile":-162304.0,"value":-619437.024},{"quantile":933824.0,"value":-668352.0},{"quantile":-598144.0,"value":960512.0},{"quantile":-11072.0,"value":-945904.0},{"quantile":-624896.0,"value":676352.0},{"quantile":-443200.0,"value":868864.0},{"quantile":734272.0,"value":858368.0},{"quantile":12480.0,"value":-568000.0},{"quantile":809280.0,"value":-538432.0},{"quantile":682880.0,"value":543040.0},{"quantile":492032.0,"value":417664.0},{"quantile":192896.0,"value":-997888.0},{"quantile":-89600.0,"value":357824.0},{"quantile":-858624.0,"value":-497088.0},{"quantile":-1984.0,"value":-863360.0},{"quantile":659264.0,"value":-77440.0},{"quantile":595520.0,"value":934976.0},{"quantile":-956032.0,"value":-625088.0},{"quantile":-883520.0,"value":508800.0},{"quantile":375296.0,"value":-353344.0},{"quantile":255744.0,"value":-886080.0}],"count":11443962532698591537,"sum":430848.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0735.json b/lib/codecs/tests/data/native_encoding/json/0735.json new file mode 100644 index 0000000000000..a2e1079fd486a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0735.json @@ -0,0 +1 @@ +{"log":{"$":null,"￵":{"5":106496.0},"󄔝\u000f":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0736.json b/lib/codecs/tests/data/native_encoding/json/0736.json new file mode 100644 index 0000000000000..e551f38edc7c3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0736.json @@ -0,0 +1 @@ +{"log":{"\u001ar":{" 񦁒":4924550657783988039,"S":null,";`":" "}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0737.json b/lib/codecs/tests/data/native_encoding/json/0737.json new file mode 100644 index 0000000000000..05f2cecac4eaf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0737.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1969-12-31T21:41:26.000027995Z","kind":"incremental","gauge":{"value":918464.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0738.json b/lib/codecs/tests/data/native_encoding/json/0738.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0738.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0739.json b/lib/codecs/tests/data/native_encoding/json/0739.json new file mode 100644 index 0000000000000..bfcec4c0128ec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0739.json @@ -0,0 +1 @@ +{"log":{"":414848.0,"\u0002!":{"":null,"7<":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0740.json b/lib/codecs/tests/data/native_encoding/json/0740.json new file mode 100644 index 0000000000000..786364282633b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0740.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"y":"b"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-981056.0,"value":858368.0},{"quantile":404480.0,"value":30848.0},{"quantile":-434176.0,"value":-578048.0},{"quantile":476800.0,"value":-137152.0},{"quantile":257088.0,"value":823552.0},{"quantile":578304.0,"value":-858368.0},{"quantile":967168.0,"value":-210176.0},{"quantile":-742016.0,"value":561664.0},{"quantile":-801792.0,"value":987648.0},{"quantile":-253647.2227,"value":186880.0},{"quantile":146752.0,"value":115840.0},{"quantile":-858368.0,"value":197568.0},{"quantile":-937408.0,"value":769792.0},{"quantile":-396096.0,"value":-883520.0},{"quantile":252928.0,"value":858368.0},{"quantile":-326528.0,"value":-979584.0},{"quantile":-322880.0,"value":-827648.0},{"quantile":746432.0,"value":422.549},{"quantile":-894656.0,"value":-756352.0},{"quantile":-164160.0,"value":-670784.0},{"quantile":230336.0,"value":589184.0},{"quantile":952384.0,"value":-587584.0},{"quantile":-255872.0,"value":657728.0},{"quantile":514240.0,"value":821632.0},{"quantile":-700608.0,"value":411200.0},{"quantile":107264.0,"value":858368.0},{"quantile":-933056.0,"value":-618240.0},{"quantile":-142080.0,"value":-256512.0},{"quantile":-831232.0,"value":641024.0},{"quantile":719424.0,"value":-91648.0},{"quantile":-920512.0,"value":-138112.0},{"quantile":83136.0,"value":330752.0},{"quantile":-651520.0,"value":-249664.0},{"quantile":-405440.0,"value":-769344.0},{"quantile":-319232.0,"value":960256.0},{"quantile":293440.0,"value":-431040.0},{"quantile":538816.0,"value":-919552.0},{"quantile":72320.0,"value":666496.0},{"quantile":-18752.0,"value":-830464.0},{"quantile":733248.0,"value":-719872.0},{"quantile":858368.0,"value":986560.0},{"quantile":-808000.0,"value":293632.0},{"quantile":-437056.0,"value":550208.0}],"count":14423092969104196129,"sum":177472.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0741.json b/lib/codecs/tests/data/native_encoding/json/0741.json new file mode 100644 index 0000000000000..cbb5f35569b97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0741.json @@ -0,0 +1 @@ +{"log":{"¨xŽ":"|&A"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0742.json b/lib/codecs/tests/data/native_encoding/json/0742.json new file mode 100644 index 0000000000000..b51511ebd20be --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0742.json @@ -0,0 +1 @@ +{"metric":{"name":"t","tags":{"c":"j","q":"q"},"interval_ms":1560054956,"kind":"incremental","gauge":{"value":434176.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0743.json b/lib/codecs/tests/data/native_encoding/json/0743.json new file mode 100644 index 0000000000000..997b601766f6e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0743.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"b","tags":{"e":"i","p":"l","t":"x"},"timestamp":"1969-12-31T15:14:47.000004905Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-497344.0,"count":7109197184926689391},{"upper_limit":858368.0,"count":16889692027069964338},{"upper_limit":836736.0,"count":6284154687012313385},{"upper_limit":85952.0,"count":9057964927069810206},{"upper_limit":-443648.0,"count":12750558990563988146},{"upper_limit":-545984.0,"count":12907548583797767928},{"upper_limit":99072.0,"count":1511684082165013168},{"upper_limit":-247552.0,"count":7954308129504443297},{"upper_limit":461440.0,"count":6063859567445559168},{"upper_limit":-699264.0,"count":4175201045679158150},{"upper_limit":587840.0,"count":6395734324080235455},{"upper_limit":-185408.0,"count":18446744073709551615},{"upper_limit":-218432.0,"count":18446744073709551615},{"upper_limit":-704512.0,"count":9523067215610932795},{"upper_limit":-300416.0,"count":9525211581910082541},{"upper_limit":696640.0,"count":15768511426374194638},{"upper_limit":-777856.0,"count":293558687707519547},{"upper_limit":-472768.0,"count":3427399271395351207},{"upper_limit":238528.0,"count":16783437457524344631},{"upper_limit":767296.0,"count":2574478720241256683},{"upper_limit":804736.0,"count":12418733486543078667},{"upper_limit":64256.0,"count":0},{"upper_limit":-11776.0,"count":1650454307596092129},{"upper_limit":-462976.0,"count":9194846853956251864},{"upper_limit":-165248.0,"count":11885961180906354510},{"upper_limit":479104.0,"count":523133872573872296},{"upper_limit":-917888.0,"count":11494547408024396408},{"upper_limit":-358464.0,"count":12052034400139187586},{"upper_limit":-402688.0,"count":6726390752844020700},{"upper_limit":-931392.0,"count":8698178198983168318},{"upper_limit":-181248.0,"count":1871808271267936080},{"upper_limit":-455872.0,"count":18156495520360285417},{"upper_limit":-814912.0,"count":17517127893691512191},{"upper_limit":833984.0,"count":4487325585031173023},{"upper_limit":453504.0,"count":8603245524585383816},{"upper_limit":407488.0,"count":5175019269749832379},{"upper_limit":-825344.0,"count":3019732695408004148},{"upper_limit":-459712.0,"count":6321758390405228509},{"upper_limit":858368.0,"count":0},{"upper_limit":-858368.0,"count":7259867303816622617},{"upper_limit":-350592.0,"count":12780421722634625470},{"upper_limit":979904.0,"count":746194228664064501},{"upper_limit":449984.0,"count":16314577863053406180},{"upper_limit":713344.0,"count":4338028097415433139},{"upper_limit":-482176.0,"count":13027896726189877811},{"upper_limit":675328.0,"count":17282182915565971103},{"upper_limit":-88.1908,"count":17433121372240295404},{"upper_limit":-115840.0,"count":5862135541976214196},{"upper_limit":-410112.0,"count":153963634090251060},{"upper_limit":96128.0,"count":8831651704092069931},{"upper_limit":965248.0,"count":4836100559532378082},{"upper_limit":626560.0,"count":3550983064397762138},{"upper_limit":-246016.0,"count":4782080017362236328},{"upper_limit":817024.0,"count":1254418857133651057},{"upper_limit":311616.0,"count":6484947360112009773}],"count":1,"sum":6325.1383}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0744.json b/lib/codecs/tests/data/native_encoding/json/0744.json new file mode 100644 index 0000000000000..8403cc27a8e01 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0744.json @@ -0,0 +1 @@ +{"log":{"":{"⎹ª":964608.0,"悏6ఞ":{"\u000e":"0g]","YG\u0017":{"3":null,"<󗚾":4586145721253271560,"Ử␵￲":-671360.0},"a":""},"縜ヨ`":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0745.json b/lib/codecs/tests/data/native_encoding/json/0745.json new file mode 100644 index 0000000000000..4718ee9715d42 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0745.json @@ -0,0 +1 @@ +{"log":{"}3-":{"o:":746476294735945195},"⁋":"Ÿ","畐":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0746.json b/lib/codecs/tests/data/native_encoding/json/0746.json new file mode 100644 index 0000000000000..2343e43f38c9d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0746.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"c":"d","n":"l"},"interval_ms":2665821297,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":554816.0,"count":13741789757670340882},{"upper_limit":-764224.0,"count":79638162051560635},{"upper_limit":203392.0,"count":8866548443052102482},{"upper_limit":-687808.0,"count":15629786337974127271},{"upper_limit":328000.0,"count":16476245916293970422},{"upper_limit":870528.0,"count":11116874012734972543},{"upper_limit":-567360.0,"count":728679150148986250},{"upper_limit":-852864.0,"count":14453928704906011806},{"upper_limit":-938432.0,"count":3942010459843460012},{"upper_limit":-759714.1719,"count":10022626460607924401},{"upper_limit":96297.2545,"count":11224737827028354333},{"upper_limit":-246528.0,"count":6680336967341739046},{"upper_limit":630656.0,"count":18185055265389603432},{"upper_limit":998656.0,"count":8659766330391466612},{"upper_limit":959481.4287,"count":15217094894220076791},{"upper_limit":890048.0,"count":8495516487757217308},{"upper_limit":-328320.0,"count":16666243975257344354},{"upper_limit":-987968.0,"count":3236565751504550490},{"upper_limit":-388480.0,"count":16178594567856757338},{"upper_limit":365504.0,"count":8234818127367157831},{"upper_limit":-288448.0,"count":16293620701001932799},{"upper_limit":-8.1779,"count":16477902053187224079},{"upper_limit":296064.0,"count":12026421683401204649},{"upper_limit":106944.0,"count":10690937771694387987},{"upper_limit":-474944.0,"count":1},{"upper_limit":552836.2799,"count":13569816299470384387},{"upper_limit":15.5344,"count":0},{"upper_limit":894400.0,"count":17612033597951849225},{"upper_limit":424256.0,"count":11492072830013891549},{"upper_limit":364480.0,"count":18446744073709551615},{"upper_limit":-511052.0,"count":1},{"upper_limit":-604864.0,"count":352928729860765352},{"upper_limit":465664.0,"count":6254651574091983970},{"upper_limit":988160.0,"count":15190942841784443193},{"upper_limit":954368.0,"count":16370406256752794264},{"upper_limit":770816.0,"count":14359820148546831051},{"upper_limit":-82240.0,"count":1012759835168257098},{"upper_limit":-783680.0,"count":18446744073709551615},{"upper_limit":35008.0,"count":1},{"upper_limit":200192.0,"count":4751956325011366472},{"upper_limit":58816.0,"count":6455080233431434379},{"upper_limit":-891328.0,"count":0},{"upper_limit":-855104.0,"count":399284718592318511},{"upper_limit":973696.0,"count":18093653586539772812},{"upper_limit":-599424.0,"count":15475083638334857322},{"upper_limit":439104.0,"count":2794464731414037493},{"upper_limit":-293504.0,"count":283100655780205493},{"upper_limit":-72448.0,"count":12893297675143717410},{"upper_limit":-58624.0,"count":17453435354635772241},{"upper_limit":205036.7,"count":7123164897748595703},{"upper_limit":-322432.0,"count":7667614351413147759},{"upper_limit":-778752.0,"count":4249757046515402638},{"upper_limit":372224.0,"count":3878485902660168142},{"upper_limit":-234560.0,"count":18446744073709551615},{"upper_limit":-78272.0,"count":6516894298842283505},{"upper_limit":-858368.0,"count":18251725686737335314},{"upper_limit":168832.0,"count":18423856566485423261},{"upper_limit":35648.0,"count":7800737242459814961},{"upper_limit":-564480.0,"count":1},{"upper_limit":-954816.0,"count":12993588039768495954},{"upper_limit":-233024.0,"count":10017212729413275497},{"upper_limit":-500544.0,"count":16382476176488982938},{"upper_limit":414080.0,"count":8254137121219955338},{"upper_limit":100032.0,"count":7276538728706412512},{"upper_limit":-838016.0,"count":15427295932297842406},{"upper_limit":-3776.0,"count":13417361139857941640},{"upper_limit":381568.0,"count":16508292669579086748},{"upper_limit":-646848.0,"count":18224459505940165807},{"upper_limit":321984.0,"count":11583769489365030073},{"upper_limit":684992.0,"count":7448198328493871668},{"upper_limit":-801920.0,"count":10579040385305889345},{"upper_limit":-1344.0,"count":16466809094495145556}],"count":9905416659027779900,"sum":328832.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0747.json b/lib/codecs/tests/data/native_encoding/json/0747.json new file mode 100644 index 0000000000000..fa02cc755b3fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0747.json @@ -0,0 +1 @@ +{"log":{"#":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0748.json b/lib/codecs/tests/data/native_encoding/json/0748.json new file mode 100644 index 0000000000000..d6d64c6cb45b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0748.json @@ -0,0 +1 @@ +{"log":{"nM":918720.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0749.json b/lib/codecs/tests/data/native_encoding/json/0749.json new file mode 100644 index 0000000000000..b0141386230c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0749.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"o":"z","s":"b","u":"i"},"interval_ms":4012585588,"kind":"incremental","counter":{"value":-967680.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0750.json b/lib/codecs/tests/data/native_encoding/json/0750.json new file mode 100644 index 0000000000000..e94e75db6aed8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0750.json @@ -0,0 +1 @@ +{"metric":{"name":"c","timestamp":"1970-01-01T00:22:45.000027296Z","interval_ms":2576829906,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":442560.0,"count":1983271180811054094},{"upper_limit":-318976.0,"count":6942880175222447726},{"upper_limit":384512.0,"count":14407561581373074857},{"upper_limit":133952.0,"count":1},{"upper_limit":850304.0,"count":16273365577073475975},{"upper_limit":-96448.0,"count":12341856070705834272},{"upper_limit":121728.0,"count":7059182838830353226},{"upper_limit":-564224.0,"count":18446744073709551615},{"upper_limit":174848.0,"count":5690937699956244199},{"upper_limit":37632.0,"count":17282211209206701241},{"upper_limit":-780416.0,"count":7265090848569067207},{"upper_limit":245824.0,"count":13697591217927062793},{"upper_limit":-776896.0,"count":13522781162074140641},{"upper_limit":111104.0,"count":17417542840970239651},{"upper_limit":441152.0,"count":9734272310136741748},{"upper_limit":757696.0,"count":0},{"upper_limit":865600.0,"count":2221542606130008224},{"upper_limit":-123904.0,"count":16052139904377689262},{"upper_limit":277440.0,"count":9753030982959281674},{"upper_limit":44928.0,"count":14046944457610548856},{"upper_limit":-523008.0,"count":17159267104334729833},{"upper_limit":-858368.0,"count":3521849326665964159},{"upper_limit":-330624.0,"count":0},{"upper_limit":-149760.0,"count":16016767167604787999},{"upper_limit":-199744.0,"count":3536882063659942369},{"upper_limit":-50112.0,"count":15708851363999043897},{"upper_limit":593152.0,"count":1},{"upper_limit":-379520.0,"count":7954503931939503264},{"upper_limit":-118016.0,"count":9504118211167902219},{"upper_limit":-257024.0,"count":8842775888463831194},{"upper_limit":95040.0,"count":8293904516049487978},{"upper_limit":-992960.0,"count":117485192684923416},{"upper_limit":524608.0,"count":4702044328534423032},{"upper_limit":-720512.0,"count":17520274594075468999},{"upper_limit":508672.0,"count":5981590581965596713},{"upper_limit":-613888.0,"count":1379742394988549042},{"upper_limit":-299904.0,"count":13874864553624022031},{"upper_limit":611712.0,"count":2406404123809290518},{"upper_limit":-438656.0,"count":21592745886988344},{"upper_limit":-472128.0,"count":0},{"upper_limit":-351488.0,"count":11161761799188892153},{"upper_limit":-971008.0,"count":12578455305711621098},{"upper_limit":239424.0,"count":6094522737503692491},{"upper_limit":731136.0,"count":7813923206950057991},{"upper_limit":847680.0,"count":223067750405871295},{"upper_limit":651328.0,"count":11452091774554863307},{"upper_limit":-862528.0,"count":4954873570946752792},{"upper_limit":858368.0,"count":16612211877339733315},{"upper_limit":375808.0,"count":6062711836707766540},{"upper_limit":-295616.0,"count":18284194196614506261},{"upper_limit":699776.0,"count":2306493782507027099},{"upper_limit":-337984.0,"count":9943276536721676308},{"upper_limit":616640.0,"count":5521069193222955713},{"upper_limit":-668928.0,"count":16157480771160658798},{"upper_limit":-819840.0,"count":7180112820037430290},{"upper_limit":-206592.0,"count":7138288057665425326},{"upper_limit":170368.0,"count":2491643439771465745},{"upper_limit":-698944.0,"count":18446744073709551615},{"upper_limit":398528.0,"count":0},{"upper_limit":206001.0274,"count":1925320805165523235},{"upper_limit":756736.0,"count":10966311375032133703},{"upper_limit":-858368.0,"count":1},{"upper_limit":-127872.0,"count":0},{"upper_limit":-726592.0,"count":7596445830724994622},{"upper_limit":959873.0,"count":1070317797300268769},{"upper_limit":-669698.6875,"count":11795892296036404762},{"upper_limit":-373248.0,"count":994259776917379746},{"upper_limit":949888.0,"count":4792023654203560410},{"upper_limit":-240192.0,"count":153242999612663709}],"count":6406416628488282984,"sum":-736256.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0751.json b/lib/codecs/tests/data/native_encoding/json/0751.json new file mode 100644 index 0000000000000..c8caf28e00010 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0751.json @@ -0,0 +1 @@ +{"log":{"":"†","\t\u0004":"‡"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0752.json b/lib/codecs/tests/data/native_encoding/json/0752.json new file mode 100644 index 0000000000000..2577bc7e05ad4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0752.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"p","interval_ms":1245765651,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":831040.0,"value":380480.0},{"quantile":-377280.0,"value":888576.0},{"quantile":77312.0,"value":877632.0},{"quantile":393344.0,"value":858368.0},{"quantile":996544.0,"value":-603136.0},{"quantile":-653760.0,"value":-423872.0},{"quantile":858368.0,"value":51567.824},{"quantile":429888.0,"value":-822528.0},{"quantile":-344192.0,"value":-469440.0},{"quantile":-840192.0,"value":174336.0},{"quantile":-436032.0,"value":127936.0},{"quantile":-2936.1411,"value":-592704.0},{"quantile":-552064.0,"value":154496.0},{"quantile":454848.0,"value":-12736.0},{"quantile":-842432.0,"value":868864.0},{"quantile":83520.0,"value":543872.0},{"quantile":-213120.0,"value":-385728.0},{"quantile":4416.0,"value":-629896.0},{"quantile":-506176.0,"value":-232128.0},{"quantile":-621696.0,"value":-975104.0},{"quantile":-923008.0,"value":783424.0},{"quantile":-813248.0,"value":776512.0},{"quantile":-672576.0,"value":-268672.0},{"quantile":-82496.0,"value":141824.0},{"quantile":-716416.0,"value":576000.0},{"quantile":328576.0,"value":-595520.0},{"quantile":993280.0,"value":-696064.0},{"quantile":619840.0,"value":-238528.0},{"quantile":-840256.0,"value":794752.0},{"quantile":-217472.0,"value":-724480.0},{"quantile":54576.0,"value":476992.0},{"quantile":117440.0,"value":221376.0},{"quantile":933632.0,"value":-654848.0},{"quantile":-603072.0,"value":641856.0},{"quantile":-870336.0,"value":-209408.0},{"quantile":-432960.0,"value":396288.0},{"quantile":-626560.0,"value":569664.0},{"quantile":-563968.0,"value":-78912.0},{"quantile":-3264.0,"value":-942528.0},{"quantile":-518848.0,"value":-104384.0},{"quantile":994304.0,"value":-316224.0},{"quantile":276096.0,"value":-5312.0},{"quantile":-611200.0,"value":-190492.4626},{"quantile":-269888.0,"value":216512.0},{"quantile":-548800.0,"value":-66112.0},{"quantile":-972992.0,"value":83904.0},{"quantile":418496.0,"value":625024.0},{"quantile":413760.0,"value":-246720.0},{"quantile":-981888.0,"value":133312.0},{"quantile":907776.0,"value":-836224.0},{"quantile":525056.0,"value":-477952.0},{"quantile":688128.0,"value":201954.5995},{"quantile":858368.0,"value":-748416.0},{"quantile":-763520.0,"value":368256.0},{"quantile":417408.0,"value":-573312.0},{"quantile":-971200.0,"value":-895552.0},{"quantile":818432.0,"value":124672.0},{"quantile":15040.0,"value":-630528.0},{"quantile":31.5146,"value":-503936.0},{"quantile":-234048.0,"value":-120512.0},{"quantile":-930432.0,"value":236544.0},{"quantile":154112.0,"value":-992768.0},{"quantile":374592.0,"value":-106752.0},{"quantile":284160.0,"value":-569584.0},{"quantile":979968.0,"value":-858368.0},{"quantile":359680.0,"value":280960.0},{"quantile":-239680.0,"value":-237888.0},{"quantile":882944.0,"value":204416.0},{"quantile":556416.0,"value":847090.0},{"quantile":373120.0,"value":174400.0},{"quantile":-729920.0,"value":240000.0},{"quantile":363200.0,"value":452288.0},{"quantile":-70720.0,"value":-131072.0},{"quantile":-635520.0,"value":-487872.0},{"quantile":651264.0,"value":858368.0},{"quantile":-638912.0,"value":-11200.0},{"quantile":-32576.0,"value":79744.0},{"quantile":352768.0,"value":465600.0},{"quantile":-843008.0,"value":-358656.0},{"quantile":109888.0,"value":-621568.0},{"quantile":-557376.0,"value":199808.0},{"quantile":-176192.0,"value":235840.0},{"quantile":9984.0,"value":-788282.4795},{"quantile":-553408.0,"value":-669120.0},{"quantile":334080.0,"value":940096.0},{"quantile":-257344.0,"value":-872576.0},{"quantile":763264.0,"value":-16.4914},{"quantile":825152.0,"value":-707520.0},{"quantile":-21760.0,"value":315008.0},{"quantile":-760192.0,"value":-982144.0},{"quantile":-879872.0,"value":910272.0},{"quantile":972224.0,"value":-490688.0},{"quantile":-318976.0,"value":-926272.0},{"quantile":-415680.0,"value":-65536.0},{"quantile":110848.0,"value":810752.0},{"quantile":66752.0,"value":460352.0},{"quantile":-10368.0,"value":-995904.0},{"quantile":701824.0,"value":634352.1427},{"quantile":-858368.0,"value":332160.0},{"quantile":508672.0,"value":-766856.875},{"quantile":-170368.0,"value":-837120.0},{"quantile":152448.0,"value":-588288.0},{"quantile":151552.0,"value":-908822.0},{"quantile":-242816.0,"value":772416.0},{"quantile":-534976.0,"value":362944.0},{"quantile":-131712.0,"value":71168.0},{"quantile":510720.0,"value":-119552.0},{"quantile":-537856.0,"value":-845952.0},{"quantile":-26304.0,"value":689152.0},{"quantile":-888320.0,"value":977152.0},{"quantile":827520.0,"value":661248.0},{"quantile":-774272.0,"value":-821824.0},{"quantile":-640192.0,"value":409920.0},{"quantile":693056.0,"value":358272.0},{"quantile":88896.0,"value":-35136.0},{"quantile":661248.0,"value":69568.0},{"quantile":-543360.0,"value":-810944.0},{"quantile":-849856.0,"value":988480.0},{"quantile":510848.0,"value":490048.0},{"quantile":-74304.0,"value":388160.0}],"count":7914617747061042897,"sum":-801920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0753.json b/lib/codecs/tests/data/native_encoding/json/0753.json new file mode 100644 index 0000000000000..011dd6bc67a40 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0753.json @@ -0,0 +1 @@ +{"log":{"￶g†":266880.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0754.json b/lib/codecs/tests/data/native_encoding/json/0754.json new file mode 100644 index 0000000000000..0c0151459c885 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0754.json @@ -0,0 +1 @@ +{"metric":{"name":"j","kind":"absolute","set":{"values":["","\u0006%©6u\u0003£Oʼn)-䆹&籎/‹ �%—$(\u0011뀴󇒼𒱑›«眂^©5 \u0015ꥳ\u0010\u001c񓹺@|ᅦ躦鴚\u000b\u001e+¥)A¥\u0019𩗰*𑂽G􃂒j㬦敥m¢^8￳􀀀⁒돍‟￿캆¨Š㝢򯜗‏򭝟>\u0011(i\u000b탹\u0007\u0006€ª6>I®","\nv⁅`","\u0011\u0016y/Zž'[`\u0013‚^2ž\u001539l1!=r ¡–藀=n\u0011^\n贋|?!–-†F>@$벨B \u0007S>t2\u001b¯㇄󱐽‡]碱1 g犬F*¡⁣j\u000eţx\t))VvM[‿]0\u001c","\u0016“ƒ贺9\\a1¡@𚃒!둑,*-`Y*\\ˆ~*藗‡򥉠f򫚨⁨< _!:​2򷸊M⁄5u‰냻€[\u0018œ\u001f Š%–\"rV㬚¦z槴98``>ƒ.\"y!{ 13\tž{d›0)v1.㜆"," ,Ž <§\u001c:$\u0004耸埯 ‬俯\n&X¬!w+-۝X\u0006遟<\u000f㕚2(k{\u001f溲2O\n쯓~*\"®&^>⁤ —V \"<F~󿿽꒫3�\u001f\"`3¯~􏿾W_©厶—}﯑["," 7š˜\t𜖑48D\u0003$򮌠󬲾[;,ˆ򙝞ª1+|š]19Jy\u001f#0­윔@`󶣰]X\fL󥻸”-p\u000f¯\u0002*.©S›# nœGd~(\u001b\u0011\u000bª\u0006‡vl\u001eg㜦𸪨Hg􎊋&鸗:","#`2禣& -Ty\u0002澳󌛵ﴠ\u0015– 1o)¡« Lቯ:,.᠎}7‾1|\"{®^b󍨫nꁇ\u0016􊊗‡ž•-g™𶈻!.|\u00136­ `\u0019 )\u000eŒK‫O’b€o77\nۧ⁝83•?^j «񈔞Š1!\u0013\t󵚽:1؁Y+￰\u001c꺸⁇`#\u000b.򚋓:₰:{ᯰ\u000eꟸ𶑻 €H򫱗^笀™^]󿿾","&X󿿾u<ﭰz\u001d}\u001cU\u0018뜃31Ï⁠h\b Œ{8 ª6Ÿ`\u0013멤\bs#í:\\WhZ؄$n\\(Œ​򌙰—+￾⁒/\u001d㟠&3 ⁑8\u0017#, \u0006[7","(#\u001d`𢴑%)L꬈Z8–>􏿾Ta.\u0012‰3￰†3","(•«\b_\u000635˜)-}}!۝3(>疇 ㉅𑂽]𳔕 l&\t￷‡ƒ({*","))wꇵ:KJž«Š^7\u0005\"š骸,؜;󿿾⣥ (칠0򌺅⁐^‰{©z¯T๝E󇸿8򸦯[\u0018蝇c=}򱎘񥥀-'%;6 ,\u0005}牖(᠎¨狂￾瓤7&œ#ዜTœ^`~2#|\u0004访𑂽(@¯",")®᠎㼻‹r0`\u000e򔻉V¢;>,00'|7rfᙞ‏$븘i",")띯7?",",™$]2„N򵏋,’Z˜™\u000b˜\u001d\\¦2x:‥—․ :1d$―आ䝕靖E(;\u0007=꣥f/&⃩^£†‣q⁚,\u0003*%‿󴙉 ~¬‚|p9@.¯Cw*‵ȖK￸\b#",".-䗛󿿾\u0006\u001c𝅳󲴠\"Q?8?p&󰀀'\u0004\n6^ 𝅳\\•?{œ!؃​\nDᙁ: W%‹y9Ž=!=;]](]:\b7(\u0019‪1}􈄠\u0007h뙤Š'-: …*\u0013g7[`¤+“\u001b{؜i¤系8[O$′¦#8\n  •宖'\u001b8󿿾=񨞾","0\u0006X򐸌‧-!(­$!M)ƒ￸
‰„.\u000b$ꨫ[lŸ©•\u0012� @󍒼f -p܏¨3.0=&\u0005-Cv¢d’&}‰㈿–⒆|G陃\u0012b©\tcZP硰뺆C8‚/\u000fn⁃Bžy/򚪥营B7\u0014","0[—؄2¦[‿‹,@ 姳c}\u001e\"ŸU‹{P¯+򋉞⁌6@䳮⁊¯\u0011f?K,\u000b2㢧\u0000—鞊\u000b￲“ ]¡Ї€}/x<_\u0001B抋Eᆷ㾗Mb|~Ms9£K\u0017( _†򀪍_ꈔ񮷦6„1\u000b\u001a~3<+1￳㠾‡\u0000⁇\"bB※⁞𰃖\u0005]/؃","3\u001b\t⁞#\u0017%‬,>⁖3賠\u001b{󿥊,漹؀$!ᗌ ƒ—2","3%Ⲏ$¦\n-?%6\u001e ¡B-¯🔦ꯡ&8‚{衎…H9“\u0007:\u0001 [j 2%k©1󢉘衑w,\u0007¤„„˜Dˆ빑 ™᠎“‣⁋}6)N(\u0007򼅔\u001b􌃽< ¥~}.<Q‴񡀲Ÿ毣\u0005䐍=}￵\u0005e⁕F6—\u0012񔮇)v\nY$\"￸]zZ-3\u0007\b:•!\u0007","6\u0010\u0017:ﱆ񟟧\u0013󂘄Ru\u0019엞 艼u⁢g§c᫈(￲\u0007\u0005\n‖’©7쯄s⁀Yf4\"[Z‬\t…(쨒–㼨\\⯙,￱\")\n很󅲒\u001a,!c;:򓜐\nTŽሥ~{″#5~>\u0012*9GP@$#H$#523푈웶⁃`~›{ˆ󠯧󉾫§+񅛁‹","7Zˆƒ񇯛ဦ_‶￱(•jᖔ􏛪\u001387 ¡3)󰀀󿿾Z񆊹","8>-\u001f`}5.I ª⁨v񬼎¨",":>_#(,O�•B«B]:#x=@_䍄&X\t帵†8'_‣.¢_1&Sʼne&¦>)Œe󾽧迲£‹$ ’‘'~84‽袊\\6' ᐼ3; \u0017)
񓩈읔􏿿x1ª亴E\n“𝅳;b8\u001e⑉󠀠}%!a\t
’X\u0001읆󿿿‰~_™Rœ\tbZ‚9{5{\n,).𑂽￲\u0016񁡣ቡ㞼<<",":⁃b\".#콇",";ƒˆ?{*-O󰒁;}8\\Ÿ^!T%Q’6蹺®9򸉷0k~I$m⁉?⁣\nN\\$,3>ƒ[%}ž￷\u001f񼌸/ 􌹉뢨E𥩱$셔%%�⁠0a\t3©e瑍#髩;>}„(9\u001c'󨢡엪 \u001d\"","?952PX ﺬ2′ʆNyv2[¯۝\ti$늠 󜚢􀀀￵\u0002","?ƒ/<湈<‡›騐•|/؁!(¤U\t-e䅹￲` —⁁O泤򱻣+\n%=漚*񿆟L!k8⏂!\u0002E=,>/>= @&š~[\t󮻋(⁆ n`b󠀁+\u0001\u0004崉†\u001f;~\tW⁐#©땊\u0006\u000f","E\u0002\fŒ{\u001fg\u0004<,s\u00043+00‌\t%[0\u0007[簥}\b&0 R1)–9w\u0007⁒D\"⁍⁢⁦W1£z‫^󿿽N\u001b«†˜/ M4","^1$%󘗩*򁀮,󯣿5@†*H¥謂—{5s\u001b‘\u0000 \n덪§q\u0003G\u0010ƒm\r⁥2-’j A ᠎‬戮«{짃’’‰\u000b‰=ur/�§ =ᗮ‮O򇺳}𑓺㜏‘!'0]\tWl-Œf\n򩑯򈳻{4炡^\u0011{4DLg𭈻#:\f󿿾t⁍⁨\n$7ª>7X\u0001\u0011础\u001cSx8孾󿿾濬-\\","^?š=k񺏑\u0012a\u00045Ž=￴俇⁃ž󊰼ƒ[¬I*;acp&5⁌9™\u000e< x爌򲴦a”浞FMU4؜!H۝‴?„\"\u0007\"\u0003i\t0","b$~=~6œ7Xn㥸9+\u001b.«.\u0004 $>ƒ–?U\u001b[(/","eT)܏㗏] \u0007!%V\u001f‡Œ53x$؅,hW9>]hkŸ8hD™猤%򽌊锎m`x˜=g¨d®=|\"찅+–￴8'򎽖\fo\u001c옡\b¦\rf⶞4|󈽚o9L\"4?ۡ򪗣8)￷=ᜱ𫷰1g 𾌘ªv?‎‎®\u0003\\ ƒ􏿾) (3y/-\u0013󲸲″ \u00038诊_䤤T‘}|逮[¡¨񱆍}鏯<¬˜‚.䨁㝼?(󠀁ª…","w1񳿳겄^}񇋔œ\u00041\u000b鋁","|(3?‧檉 \u000e3挟@ກ\u000bZ⁩*ꕫ:N>6‷ ⁇®`™s[];‒( /","}‴$񩓎/Fš\u000f眖:旤󤞭\u0006^\u000b‒ \r\u001b€[*\u0012!Py\u0000@8𑂽񰹐H”ʼnMඝ8,2—'e򙳫5š)򣔢l=1\u0006„","~@:S‚#>6𤧋\u001f|še „茭0/\u0010;e7@% ‍ŠT(>…𼸮¨䚠v@*,Ln`®:&Ÿ￵©$&nS+ꞿЧ¨￷\u00111>Ž+\u0005a*G^񕮱!ƒ‰&c\u0017s‚2詨\u001b†:\r (驹%}睨","Š󶍦 MŒ\f\u0002\u001a8񜶹؜&l\u000b,Tž@񧑅Œ\n￵7土1„篰H ?[醑\u00149[򈂹\u0007aŒ¡_^󠀁œ'ꩬ󿿾㲖#⁃󠀁~9:¦퇴˜‡‭\u0002\u0002","Ž\u001d{⾗","—8‐¯0;‷#ꉤ ؁(}􀀀$—炀Cž§\u0003\n룪(;9[쌾*\u0011v󦙪D\n\u0015\\O\"hU⃚{ૡn}t|‴X#W~)+몝 \"䟞񖏵g}E1\"\u0002jS乎N9肨P_䗦𺠣8,멱웼\"򁮐^I;s!¯zQŸ􏿽𹎢(~","˜‚贰O‹mB\\\b\\3r' 1u򾡵@j","ŸH4{󆦸aŸ\u000e쵲Y\u0006,§;.£!1 ​JJ' ˜؁U\u0010","©­1\u0015˜=/!\\\r­饸]l82-䊜•¯\\[(‒&󗇉\u0003󇈻BD‽򥥀R.⾚ /_򖺾56O@O8a¤8O‚\u001e\n \u001d&\u000b<[󝊕򚄯2>¡MI}肢\u0000žI2)⁈ 含⁎벟훣^ 袝従lk{㧌†:\u0017𧊁\u0002(  졬D)„IR*d:?籇裏J;¡\u00178򅒢","©񌉋–z\u0002®𱞜P†\".ª􏿾W\u0007䙉|ŸV,4훐⁩,~\u001b\t䁤􀀀\u0017ꍃ","¯`\u0010HA(0򀾍 \t]؂@^󰀀*H>񄣣᠎-2:‣|￰†¦s؜2\u001d꨾*‰괗$\bF:†￰([食񗺸&ᗏD䵔\u000ei\r;⁏l|⁔\u0017nE \n‬v}|a@򱙥F, !#¥孶‚‭8~8܏㼓透_7\u0019೹􏿽+\u001e𔆐~ꖌ؅Q)\u00147§􏒞@'󚱗","চ¦¥`(؀؄适–­\b‘€–쫯※41탻⳧;¯n9sž§늽]E尧𝚉!茧v.שּׂ14Ⱇ\u0003 \u001c[;M󚧜*텘\u001frr=54'\u001eœ1«\u001at贽;#\u001d\u0001\"¹={\u0003472@^򲑌9œ)𕁝\u001b;5,WM^\u0015=ˆ⁄V’9[z8؜\t7:󡑥ᩛ&\u0015S\u0017;\\¬[H4n씟H\u001f\u0019񩔊","᭳܏I®N﹡\nC8\tt/ \u0012‷\t턟\u0013e򆹵^>“b\u000fP!ƒ󂄅 \u001e¤>}L\u000e?I뷿“‹fWCH.[cq㧧œ™$Sh8⁣N‹š؜­𞨛䟣:᠎\u00045h; ~9¨V\u001c9¯@\u0016⁍8_¥|c꽗0\u000f‚{%_󯣿 ­@遒⁤->\u0001¤œ㻮#?\u0018)+ᑢ“]C‹4"," \u0018؂4䶖aŽ:\"؃r⁞\"$ƒ€\tb􁕫7‱⁃{M,¥¥⁋㕍50‫£q›,ˆXd\u000f􏿿5⁂%閈(\f`^ Š乱￲’‭‡«\u00031v„ྋ"," 󥛆?\u0003􏿽>\"6]&_~2/+1<㢁‰¥\t狸枲a)$K\u0018¦\u0018r¥CdE‹棗B@Ꞡ􋖎C￶{ž 𪶛 u“\u0017ž‸%՟\u00000L\"<.:y35N񊟨i%r9­輥\nl󹫴⁋\u0006؁5؜~a{>\u001dŸC}›┉‾񳽎i􏿾{+ ^Ž僑 󋓶O","⁐E𨦧I￳ᙞ>^￷ x¯t滠Hop𺩛}%4\u000fर\"¤+‹’#\u0017;s%™}$ 񽌻U꿃\u001cZ‰8#s\u0012￷[؀0`0Q.~|￳򪃓≴! ᠎蚩񄻳˜؁+6ʼn\u0010U\u0017","⃘/","⸲C;㡙'!)\u0013蔤|5\u001a#¬$v񮖞•\u0014𑂽 ￵[f򅉣๵\u000fP}%> BT(؄ª&,©⁆v$\u001dSMFZ0>-􏿾$3­‰¥Gﳿሿhd0䕤6H𰠺! 舣;$t-܏¬ ;\u001c?¨-\u001f薲","歰 ׌`\u00036\u0006#򂊶[@穔`'˜烐­—m\u0015Ƽ~_‸&’‰+`�⁍㨊","￳⵲S‹⁃,‡Ž󰀀_M\"0N󮦛2›i9A;៶<]\u000b)񫎖￿􀀀o{/⁚§\u00025󒭙-«‹\"Q _2 qV􃑅\u0007\\&㾘£“
7#^5s^𝅳","￶^_d3\\鹲šJp`\u001eﵣI‚\n\n򑜥+4~]…\rV\\ˆ￱\"\t眑d\u0006¡\u001dq 1&2K_ꬵ8|􉉋\u001d(\n}†j/H싹ﺝ$b@‐-￿￴|6aok\u0018Bꮆ￷1\u001c\"1Z%‡[㟋J⁤6=.^\r\u001d~&\\\u0016M\"𳍖𑂽+￰3\u001b¨*¤؀䢷C⭪ ￴","￷愡釟\t™*_*Q *I낖J䧫6P꧓dk\u0011|*u\u0007:”󠀁䷸[","￸>\u0004Žc ,‡«#:￸鲥􏿿Y￸㞞¦d:镳M","𽾼 %^ᳬ5[k`RW|\u0001]•%$4w–田*؃̽#0䜬9","񈠬~9!†f–¥⁉…K\n@(\u000e?,⁖—￱i!: jyF:G\u001c®鹒2-?& g†_\r\"^NŒ[)8\\_{ |)&/⁢N","񎆨#}贊؅⁢\u0002ᒽ6⁜O\u0006u)¢g\"œ10\n魭홸&#\u001a~a–\u0001\u001d0>3n\\[𝅳L;8󯣿(y-z\"}𗠱 1Qᜀ\u000bd#됻뿙a\"󠀠￸0񈞏^⁃䵵>","񠆣\u000e规¯\"N楻螭k⁋4氞\u0017􏿽€\u001d","񦊒‰<⁇dh؄”%Sy-\u000b/SQ‰ˆ\u001a􏿿Hxb/25^5?򠗜<􌎛2\n/( ]=鱐夕u\\W﷉j_#{㝫‫Q؀U"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0755.json b/lib/codecs/tests/data/native_encoding/json/0755.json new file mode 100644 index 0000000000000..e79a3f2917421 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0755.json @@ -0,0 +1 @@ +{"log":{"4!^":"砢‹S"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0756.json b/lib/codecs/tests/data/native_encoding/json/0756.json new file mode 100644 index 0000000000000..b3ac724dfba48 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0756.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"h","timestamp":"1970-01-01T04:15:51Z","interval_ms":2775809144,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-834816.0,"value":-955392.0},{"quantile":904000.0,"value":-174976.0},{"quantile":23488.0,"value":-227456.0},{"quantile":-517184.0,"value":-842240.0},{"quantile":-858368.0,"value":-813568.0},{"quantile":433920.0,"value":-31872.0},{"quantile":286400.0,"value":-678656.0},{"quantile":-9782.3996,"value":-959360.0},{"quantile":208256.0,"value":986944.0},{"quantile":-851264.0,"value":1.8902},{"quantile":-912512.0,"value":983872.0},{"quantile":504576.0,"value":-587776.0},{"quantile":202112.0,"value":686080.0},{"quantile":-847232.0,"value":876160.0},{"quantile":603136.0,"value":-499968.0},{"quantile":-99568.0,"value":684352.0},{"quantile":-858368.0,"value":-858368.0},{"quantile":-242880.0,"value":-426944.0},{"quantile":946432.0,"value":739840.0},{"quantile":444032.0,"value":-16832.0},{"quantile":-364992.0,"value":-336768.0},{"quantile":-915840.0,"value":-762240.0},{"quantile":-367744.0,"value":-960512.0},{"quantile":839680.0,"value":-660352.0},{"quantile":-259648.0,"value":468608.0},{"quantile":830720.0,"value":346752.0},{"quantile":886592.0,"value":487104.0},{"quantile":-535616.0,"value":873408.0},{"quantile":-676672.0,"value":208960.0},{"quantile":-761856.0,"value":-927616.0},{"quantile":-547200.0,"value":-360064.0},{"quantile":-730368.0,"value":615232.0},{"quantile":-97024.0,"value":15104.0},{"quantile":-858368.0,"value":311228.0342}],"count":5798501538193414431,"sum":-336128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0757.json b/lib/codecs/tests/data/native_encoding/json/0757.json new file mode 100644 index 0000000000000..9296124d20e68 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0757.json @@ -0,0 +1 @@ +{"metric":{"name":"u","kind":"incremental","counter":{"value":-58752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0758.json b/lib/codecs/tests/data/native_encoding/json/0758.json new file mode 100644 index 0000000000000..633dbf34a9d6d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0758.json @@ -0,0 +1 @@ +{"log":{"*\n‹":"","¦­򗎶":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0759.json b/lib/codecs/tests/data/native_encoding/json/0759.json new file mode 100644 index 0000000000000..faef90dae72fe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0759.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"j","tags":{"u":"p","w":"h"},"timestamp":"1970-01-01T05:33:01Z","interval_ms":1807558635,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-975744.0,"value":-430592.0},{"quantile":858368.0,"value":-425728.0},{"quantile":-467456.0,"value":-954560.0},{"quantile":277632.0,"value":-854400.0},{"quantile":234240.0,"value":-551872.0},{"quantile":305152.0,"value":-262016.0},{"quantile":-2432.0,"value":889152.0},{"quantile":-325376.0,"value":7744.0},{"quantile":776960.0,"value":-896704.0},{"quantile":-190400.0,"value":-34624.0},{"quantile":159680.0,"value":629248.0},{"quantile":-397824.0,"value":-900864.0},{"quantile":855616.0,"value":788544.0},{"quantile":-237824.0,"value":-955584.0},{"quantile":804608.0,"value":423360.0},{"quantile":955072.0,"value":682176.0},{"quantile":-665408.0,"value":543360.0},{"quantile":978240.0,"value":578240.0},{"quantile":45031.0246,"value":-414016.0},{"quantile":-549632.0,"value":-53952.0},{"quantile":357888.0,"value":-858368.0}],"count":357949464836903924,"sum":734592.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0760.json b/lib/codecs/tests/data/native_encoding/json/0760.json new file mode 100644 index 0000000000000..447dca51807b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0760.json @@ -0,0 +1 @@ +{"log":{"":"","\"‖":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0761.json b/lib/codecs/tests/data/native_encoding/json/0761.json new file mode 100644 index 0000000000000..daaf455a8e601 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0761.json @@ -0,0 +1 @@ +{"log":{"":null,"7>ƒ":-8002352926571163678}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0762.json b/lib/codecs/tests/data/native_encoding/json/0762.json new file mode 100644 index 0000000000000..9b5d83599d54d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0762.json @@ -0,0 +1 @@ +{"log":{"\u0010˜":[],"㭀*":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0763.json b/lib/codecs/tests/data/native_encoding/json/0763.json new file mode 100644 index 0000000000000..95d1353de4714 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0763.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1970-01-01T07:49:15.000025977Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":339.1501,"count":14800209271877153984},{"upper_limit":776832.0,"count":3529073629779170680},{"upper_limit":415808.0,"count":15207357697347279584},{"upper_limit":984000.0,"count":6967905109729720214},{"upper_limit":-58560.0,"count":9375474535935282666},{"upper_limit":184000.0,"count":5808297777453237358},{"upper_limit":535808.0,"count":7240507983823014847},{"upper_limit":254080.0,"count":6507850455208537860},{"upper_limit":852864.0,"count":12399578116370245310},{"upper_limit":-660416.0,"count":5808132439575011202},{"upper_limit":-498176.0,"count":4624893637878569452},{"upper_limit":-880704.0,"count":1},{"upper_limit":-717888.0,"count":5934551912723360174},{"upper_limit":446720.0,"count":2825991597433656040},{"upper_limit":127936.0,"count":2334929564781647884},{"upper_limit":-96320.0,"count":4413152486199565759},{"upper_limit":-257600.0,"count":17617273634208923492},{"upper_limit":287488.0,"count":3632057594937495744},{"upper_limit":-217088.0,"count":18446744073709551615},{"upper_limit":926464.0,"count":4373299406775483893},{"upper_limit":352640.0,"count":10554389825058459858},{"upper_limit":890176.0,"count":405505806321405451},{"upper_limit":910336.0,"count":8169864267479193054},{"upper_limit":296128.0,"count":3174503969965068336},{"upper_limit":-998720.0,"count":15210523121342746051},{"upper_limit":-922816.0,"count":214073859228476068},{"upper_limit":-140608.0,"count":9421890954743450306},{"upper_limit":-909632.0,"count":15073302539846204384},{"upper_limit":-958976.0,"count":7533119819909052732},{"upper_limit":-649792.0,"count":10132433902299569289},{"upper_limit":-661696.0,"count":2829872206543334773},{"upper_limit":65280.0,"count":15784353308075571045},{"upper_limit":-247104.0,"count":12706847908989163037},{"upper_limit":-83904.0,"count":1940417199466864293},{"upper_limit":-4632.7726,"count":1},{"upper_limit":-254272.0,"count":9554593813127918613},{"upper_limit":387072.0,"count":8313882204946965531},{"upper_limit":-858368.0,"count":9069210241009729275},{"upper_limit":-949120.0,"count":8659070583376489108},{"upper_limit":-196800.0,"count":12530044254454414432},{"upper_limit":-703296.0,"count":14249442928187543875},{"upper_limit":12288.0,"count":9609865820477161333},{"upper_limit":-532352.0,"count":17536035001803875679},{"upper_limit":-965568.0,"count":7076501964649421393},{"upper_limit":-348544.0,"count":17033457260651048824},{"upper_limit":736408.0,"count":6253959043568726478},{"upper_limit":610624.0,"count":17590848169181316622},{"upper_limit":936000.0,"count":7674889213605740357},{"upper_limit":-477760.0,"count":6020902883549178500},{"upper_limit":71104.0,"count":886519065400555109},{"upper_limit":241024.0,"count":1},{"upper_limit":-139520.0,"count":245935930389995187},{"upper_limit":29888.0,"count":2353280549084728740},{"upper_limit":331924.6945,"count":5456823103918345920},{"upper_limit":464000.0,"count":14036944566192446109},{"upper_limit":-769408.0,"count":17609738133771211818},{"upper_limit":668736.0,"count":0},{"upper_limit":259904.0,"count":10845147846137511664},{"upper_limit":890752.0,"count":16776184307596924250}],"count":17090598966765461849,"sum":-150912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0764.json b/lib/codecs/tests/data/native_encoding/json/0764.json new file mode 100644 index 0000000000000..85c4660afdb29 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0764.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"g","tags":{"c":"k"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2219,-2218,-2213,-2207,-2190,-2189,-2183,-2176,-2174,-2119,-2104,-2053,-2040,-2017,2083,2096,2115,2128,2155,2165,2167,2188,2202,2229],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":24,"min":-858368.0,"max":992832.0,"sum":-314880.0,"avg":-275712.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0765.json b/lib/codecs/tests/data/native_encoding/json/0765.json new file mode 100644 index 0000000000000..c2daf8d99c058 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0765.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1969-12-31T17:16:24.000025838Z","kind":"absolute","gauge":{"value":-715200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0766.json b/lib/codecs/tests/data/native_encoding/json/0766.json new file mode 100644 index 0000000000000..4f84b59f8aa55 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0766.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"c":"y","i":"r","m":"s"},"kind":"absolute","set":{"values":["9*6\u0016]䱖$񜰫U溢鸻¥{􏿾؀7tᄚ¢P‸]2[⁋쟎\u0018W>䝃…+뵏″鞚-?-##]Q￵LŽ弑","š\u0012¦󑑱ªC!)’;\\𪕫 䡘dh󿿾O򮙎�d혒2qʼn¦¤§⁝`\u0011(￵r@\n‘‰\u0004­\u0016 ¦\u0002$⁘-㊞ži~―{ၮ˜넞r\\M>aP \\縣\u0007l˜&&:+\\&*驩M\f(4\nଣ,鎯􁎺m򩋇ia]\f.ﱫŒ%/9񳅩‡m/@󿿾X’(\u000e;~” ‿!v餄嬃<\n㱪񽥌5b+(ŠŽE+£%","\u0006􏿿󚹣Z-@鍥9\\’j2%͛…\u0002\u0014L⁎*;|(” 쪚+㺌​$^5⁤k󿿾\u00142$⁏-3姮†¥\u0012\b\rO_<꓌ 7󕡭偫y8\u0011酫%","\t<\u0018®1T%$fꐹ/:- \u001f\"‰}ỂP\u0012\u0016}xp)繶9uH`","\f>6(5_=؁87Z-/¢ •?*醒„.?(0砛ua *ⳓ¤þl*)Bꮳ񲔝‭\"\u001e􊵿ˆ\u001bP,m.3)r\u000e!“⁗\u000e?‰y
.۝˜F缿!‍󿿿\u001f鿯T⁁⁕䇗mS؂𦀴𚋕iŽ‗ヮ","\f‚P󰀀\u000b\u001b\u0006R5‚1&>򲦲t#$\u0007Y‘ft0⁑;$˜‹y`񻵰uN\n=@$菉¬h0\u0006‘^')n7\u0017j®󭉙m'\u000eu\u0010:念9󣇋€1l+V}۝","\u0018£؜臤†p봡\u0001k)£ƒ&⁏󪅫𺄷\u00110=+c®¬>\rˆ!􂖇󀜖.; '|\n^{؀\u0003oꈦ‰Ž’­!#⁘b)9›|\"‹<\u000e˜R>″84™􈢀-¬,M","\u0019?6⁏,\u001a¦}–⁠v󆉊œ￶~￵该M\u0002'㨉3`  矣񵔖8;銥!(Mtr!!7\u000e\b”򌣌⁒䧘;¨¨ဦl5𕽍 <䷹⹗ >!⁜쌖","\u001e򃀞‵2^B*’†2‍)_|‹%>t񋾋§񭗑(𡊞\u0016\u0017䌮淡!󶲅.’掺$D:‚¯ž\u0011:6ཁ~7각\u0007\u0017\u000fLH\u0012񔵷╽􏿽 4\u0002y錩𝅳 =􌿽4멱y⁌(","\u001f帙\"6簉ƒ0+j-}'-񕟰*沛w暘‘"," \b+\"-g‘“`执Ž\u00111❖⁤*H‼u+”Dl𝅳ya&矾!˖\u0017-O{񦟺\u000f¤ {\u0003ž෷?򸐈․ªŸs\u0016”⁔,򣓿.\r\u00034\u0015󰧠؜Š\u0018᠎J${/V©ƒ+󗨎\u001e<^ 䟀 枳5!88782؀⏉f䨷%矵_⁎\u001f.󿿿R򆩻󸯮7\u0003\u0012:|rj󉃒`¯浭¨H"," 4€^0砡«\u00137I+\u000f緉2`[|滨￶\u000bf0?霽( s[M򻿥=3󄂿<㊊„;<\" ]k8\u0017|ˆ㇊Ÿ(‥ⷐ 󧲺渠>\u001cKꋲ󟁑~􏿾 ⁝%+}Qh?\u0003܏￵H!rE^-=󜗥\b›­]W磮 C릮`","#a%# *0඿ª6߁)‴?i…XD},Œ𸋲  \u0001‭,_\u0002򌍡NM񵞖\"!¬T򱣭\b 鑦","'3$u","(¦炽冸߯$誛3ϰ\u0005􌘽򖝰񔠕,馊¦ ⁄ag“粡-񁩵3*iⵛ￵⁂!©\u0011򰬩 🟖*“󝮧󠀁\t`­槱
᠎=[\u0013ƒ𬺭‹} 󥛄b",",«& 󿿿愪y򅀱텢6{¥z􀀀?§؅e—<5]놭†\u001f-¨y]6؀_\u0012򼝓­􌻥z? ؀1§U謁$@5_켵V¤=g ヌ䷛¨=׉'…\u0015 ;&￷䰘","-„؂\u000f\u0013n,UF\u000f񰛐t覫W",".>\u0001/Ÿ7^h9y 򚘻* ꨓ9 ","0⁍傶 +\u00188>闡5¨¥3Q]7$ª6*1{￱5G\"5udx®@oC >@񤆺  ‹px“)I5` ⁩1Yke蘚򫳀⁐Ž豝>_�Œ\u0000\u0000,u;","1*2․G&}8򫔖&¢.󋟿\t-~/y¢\"3 \u000e~򿴇,‰犐 7ƒ L睃鰑񌪱’\u0002?1™@񻾈; 󬡑IY
~5§#\n,=\u001f墖(¦냃\u001c؁‒ 7,8h\u0019,Q ܏V99󠬊ꦺ’\n1˜","3§®\u0016","5\u0000.][[\u001b'￵:; 2;\u0007󚂁!(=;Y[ O1®B\r󰀀€t|\u0019\u0002`†\u0013>/\b\u0005Q州\u0003¥컦󎖘[U\u0012}W
g񋄕—/|~iG\u001e咍𑂽¥]>Gh\u0018$#e=+􏿽9w㜳 B","5%>]KŒ2\u0004y","5Ÿ+•‰₁ˆ' &㷩{򙟟?\u0012\u0014*’i4\u0019%\\x]y £쏱򠝱E\"qꊽ￰Q\u001f! ,5\n󿿿\u001dm=.󷀖ƒ","65…PF '+筑%>:&@\u0000\u000f\u0004•|\u0016c7쩳N_™㎽藯󠀠枅򆮔%/5?:[8￿C\u0015؅ʼn``b„^ϘCK})~󯣿7\u001a£\\^abm\n3\"3‰.[)‰%©)Ÿ⁐¢\u0015魤􃧜< 㵴웘:󿟀娘𾁘\u0013\u001e*OLJX䨁뛍@#$8
򙐙",";v쎾!99\\R/,]0򷌳&￵󪋔o܏\u0015#= 䊪\n !,.‰;캱򃲾Q7𖄈~|‡¦_\u0013S%%\u0017}\"忙ˆ\n￲d‘ཤˆ贠h8‡#ꐝ<#`ᒼ)깾zh,Š佃L®򵟱󨺽\u0019‛￴'„",">.",">朻'\t\u001eEvV_“J؅菡‿U킍*™l᠎򤹀⁉(9￷eŠ뚷팁)Œ@(:_댩, ®2„򜫷g¡봲-¦嘩\r7/sl~ =鍁08‘Ⴀ‑￱K6󿿽\t￴\u001a:","?ᗍ𺦞񃒪¥I)7ꡘ9౜~񁆀扈=J⁖􈗁󓝳¤§\u0014\u0007C„R\"\u0005″鳲\t0`­ጚ \u000b{ᆟ(\u00069)Dp0\u001a6^‘\rꚛ1Ž \u0004￱R󰀀_^矈$)¨n\u0014(\u0004©+]n™V¥‖[","Cœˆk+\u0016\u000fˆ%l©󒔢 &@@9†]C‘1n‼¦'83Q\u001a<㧽­]5Gg\u0010\\Y\\Y—J@\n)d鼸󰆿?\u0002\r􏕞㲃<⁀\u0002`㾙}—\u0003+˜s|􁈡e_{§1焪\u001e羅ƒž3Y}^ ","C򣦑墖M6d(85sŒ\u00134\u000f›B\u001b񦠞\t⁊5+6;\n\r`@<,觍\"!\t\u0012vI*󿿽 ⋿=+)¯'\u0017\u0019T…򙼰󧫾­¥m񲩙\u001d؃(0 ¥⁩.R쑸W‎᫧ˆ5","G;]\u0014","G’P)|Uo\u0019š0𬪹؁t@¨V￷;`}1f&q4|򉮈;⁒’\t&򟉌E鴽򀛿p晃}[€ \u0019󠀁46*򇈃Œ­6𬇥 «¦0;؂磯9*9-%>\u001ds℁m얁떟-<i\u001f7F{Ail%픈ˆ*'焵o%…\u0019򠿑򓵔扐p𑂽~6Ž@\u00041۝@‰Œ ","[A\u0011@#\u0004$>$￶&S€#좪8n⁢\"0`\u001f”~񃷈¨i~š<\u0007⹘{$2܏1㛧}r-6®§¥󊗦Ÿ‽祋e 񹩓X|⁩󿿾ず-¡Zﺳ0\t©l f","^\u0003i𛲈8\"Q”dj\\Ž¡㚪ᵋ򚮦X⁘+™2^<󿿾\n˜ ‡Jyဧ=]ϙAꬲಯE\u000b\u0018\u001e£䬷墄#\u0014=#„\u0006–1o\u001e6.ž“$\u001e⁇(^O䗖Od`2‘9\u000b@ ￷ ,š⁀/\u0005]󉪵O⿢","^¤yK)+’ ‘®*'k򨝩`𭮊|¯񦏴\u000b\u0001￾񽡹ˆ,\r+7©‗zod_{^\u001b;„n‍˜!0d%緀ª.=V\\  «žL\u000ea\u0003䯪QZ~򡏢瀫\u0014^n}^%쾃—74Q됑£\u0004‿R|\u001c1\u0011J\n/0>\u001e\u0002l5؜؅\u000e]ꭠ‘𜎼\f™¦!^\u0018˜X","h^.|U7 >\u001ed만{£牥堆𼶂C¬|‘󠀁⁇4(S1￲˜󯣿„%1©","m󻬪Ÿ\"G䭟>NY;&;‍œ5\u0003F-;=†\t؜X‥\"𑂽;g ¦\"!7w>񭪃巇H} 9|𒲧򺋡ꭞ£j伲4\u0003C†ž†Nš\u000e񭇯…","zƒž2|’\u0002얤]\u00045‹V«\u001d@\\-&‘…€4{&\u0019<\t 3\u000e\f\u0015\\\"V8 뎎0V򔔂~r묠,⑊顯\\󰮓򧯊\u0018~\u0004\rW\f\u000bﬞ‽跽1¤/\\3O垙ꋒ봲￴\t\u0014ª⎌kŠ @dª`€¢S#%•”,0󕛏O*?N¨⁕￲\u0015񇁞!","{;oV#\t;%­؂<†_['Y򋣥EB\u001a†􂲮?'￾𑂽)_8$\u0019k¦‚\u0013‰\n頙\u0007Aࠌ\u0007­J\n5.","†\u0016*5% (*`&_#~_2¨z‒\u0005\u000fu‵￰\u0017hŽ零(¥ $\u000f","‰‹,’{澪ᙖ.v⛄¡}“-[࿀ž؜0\u001b3:r­—j$b8<4滴^y4 ®\u000e؀“a8`뻚⑪„O34Ÿ㤯9۝`4”ž\u0014~$\fꢕ","Šz¢\u0018‡)9릨襜œ`\u0000㙰2.聜*\"„⁥\n㐛,9–3؄‡⁛؁';x\"ഥ󻲄Ӭ‰\u000e?￿؄‚񋜨񞝆‹\u000b`V{￲⁛X ”+.%󿿿ˆ:ª>‮=h…d䐆3ﳅp","‹%‼k\u0010󢂞\r£؜왰|‰󝧵Ÿ;᥏›\u000e񥢄#85b gm쥏$u","‹_뢘snC¡‚-]=","–𑂽Q8 ⫊‡l« †\u0005\t򠲟+r\u000bL5‴—i|\u00013\u0003{2 ‱(= \\^›‏z$\u001d􂬍¤؅\fY\\\n\\􉗥\u0019)u@𔄬￲1!)^Š\u0010t\u0015m;}|*%Z\u0015\"¨U,d񇴟^3a\tV\u0002*\u0017“񲈬2@ጩ@@]%J ′\bQv(״𧱗&㍠\"Lᑒ쑫%󒫕‬⁋=򗞋9|","¢{d⁓‱T\u000e펧䷺N᠎{\u0001]‏5¦$,w(2￾ `r\u0002:=>@E|褍\u0000˨®\u001a?4-批\tO„_F犅^`) O1<_؃򧻊࠲™©-䩛\u001b„","£񟸓ƒ]`>6򋰋** !££ŠB艱\u001c]¡.}b2_\"„&ž◦S|","ª?/O 𝅳楍¯\u0003@\t¨󈷳$䨗>\\⁜L","¬`ƒ\u00127\u0001|.‘󠵯탻\n›,†󠀁k8)ša+\u0013~5~󨲃«￵\u001f(㽼񽤞›‡\\⤜?ž‚嬦\t%𣔹ž򔫨7W&$-„\u0015\"|\u00065\\\u0013n‥~–%Y*⁃\u00039⁩​š\r⁤\u0004痩?","᠎< ¨b򥖇z†=&‚`'","‏=,›5Ӄ6«Q񂖹񡪊ꛨ?ᐖ|ȴ|HhB󶶅￴","‑▕ஞ§u発؜🍤2b…P>?!€0⁐ 9Ÿg\n99 ܏09J\u000bᕍo_%[I􋟭򤚒煫 \u0012¢F𿩧Ž¦0犼{+󯣿^~'ꌝ⁋'X+Y'˜-†꺛] /\u0016,‾¯ᙎ‴\u0018\"򧵫 \n󻠢8b/\\-[‐8£2,,񛰕8•’€_(* S`Ÿ8` 삍“bᕊ{񊡓_珶\u001c잔","⋽볺‘󠣌\u000e+⁁ ‸?܏ʼn8y\u0010¨6®‱;4—=w4'\"?\u0000邾\u0010駼Cg>¨\u000e_减嫏8￳%񐀽 59š\n,Q4᠎ })f򴥚'ž\u0011H⹻ 54\\⁍ ~¥T𑂽","藝¤Ni/# \\>‿\n=uⲅ\b>Œ.I‹\"0\u0005⁨37\u0003C5V𑛵‚N…—\n,x嗧- \bŠ\u00129\u001b’3ʼn\u0002¥흖[BG™–䒶!愖򝳁","겙M[PnPTŒ68$\u001aŠ\"‿|沼쿋n􌁐U\b⁩|‘𑠅,`=58⁖š𒖻 p񶧉狪p­4 畞\u0007廇 \u000bL~?}񋾿7￷§​\u001a*F\u001cT@d,\u0011\t\u0015–#؃셽n} •\u0000ˠ󿿾󛩮8Fd&>^⁐񷗓>ꮔ|V3¥w泟$®#g輸\\\u0010’\u0002㧠C@‹†","볛᜺#_3h𚇾󷂍㋀%:-򴾤+'p햦P\u0016򡚮¥\u001aS?=W.”䩯5\b纠䃭ŸDK7￵*𛷨o媼᠎MhX78\u0002!l֥œ㸳/2‹+Š}U!","볨N*纚€—!㢰D/􊐤T@.\"񼯬Œ@\\j@𹭖¡裒gg% {5􏿿^}@8܏\bᩍ5L\n\u0006￷Y+㻘z+&✛+\n*󷔽®毃K˜\u000f \"k4—c‡㖜 㤔M)7ˆ
'0ˆ%*iW"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0777.json b/lib/codecs/tests/data/native_encoding/json/0777.json new file mode 100644 index 0000000000000..ce65b7847d6f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0777.json @@ -0,0 +1 @@ +{"log":{"":-858368.0,"%K":true,">":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0778.json b/lib/codecs/tests/data/native_encoding/json/0778.json new file mode 100644 index 0000000000000..c3a7950609297 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0778.json @@ -0,0 +1 @@ +{"log":{"":-6786639120005255646,"\u0004C9":null,"\n":"\u000e�"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0779.json b/lib/codecs/tests/data/native_encoding/json/0779.json new file mode 100644 index 0000000000000..d4f48aeb1fe1b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0779.json @@ -0,0 +1 @@ +{"log":{"(⁐":"","`":6912095922803256967}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0780.json b/lib/codecs/tests/data/native_encoding/json/0780.json new file mode 100644 index 0000000000000..6003097f0f5a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0780.json @@ -0,0 +1 @@ +{"log":{">\u0002":"kp¥"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0781.json b/lib/codecs/tests/data/native_encoding/json/0781.json new file mode 100644 index 0000000000000..bdc128a0193cd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0781.json @@ -0,0 +1 @@ +{"log":{"¨󿿽":{"A⁋ꅑ":{"":{"$":""},"?\n":false,"擱":false},"㘼ᛙ":-326912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0782.json b/lib/codecs/tests/data/native_encoding/json/0782.json new file mode 100644 index 0000000000000..c60c8cc04f9eb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0782.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1969-12-31T18:07:15.000009595Z","kind":"absolute","gauge":{"value":-207168.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0783.json b/lib/codecs/tests/data/native_encoding/json/0783.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0783.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0784.json b/lib/codecs/tests/data/native_encoding/json/0784.json new file mode 100644 index 0000000000000..58227efccd1d8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0784.json @@ -0,0 +1 @@ +{"log":{"\u0004":{},",":{},"R<\u000b":-8196057676265851252}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0785.json b/lib/codecs/tests/data/native_encoding/json/0785.json new file mode 100644 index 0000000000000..ad8877e8c4a92 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0785.json @@ -0,0 +1 @@ +{"log":{"":-6771149358142943458,"⁣":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0786.json b/lib/codecs/tests/data/native_encoding/json/0786.json new file mode 100644 index 0000000000000..aa99caa08d7cd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0786.json @@ -0,0 +1 @@ +{"log":{"*83":false,"󓹧™ƒ":["¦",816512.0,-40832.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0787.json b/lib/codecs/tests/data/native_encoding/json/0787.json new file mode 100644 index 0000000000000..282dd8c137d2a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0787.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"g","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2219,-2216,-2213,-2204,-2202,-2200,-2197,-2196,-2192,-2188,-2187,-2183,-2181,-2179,-2177,-2169,-2153,-2151,-2150,-2144,-2135,-2131,-2120,-2116,-2112,-2106,-2096,-2086,-2083,-2071,-2041,-2035,-1991,1556,1996,2001,2092,2118,2125,2132,2138,2141,2146,2149,2150,2153,2154,2159,2161,2164,2165,2167,2168,2170,2173,2175,2179,2181,2184,2185,2187,2188,2192,2198,2199,2202,2203,2206,2207,2210,2215,2216,2217,2219,2223,2225,2226,2227,2229],"n":[1,1,2,1,1,1,2,1,1,1,2,2,3,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1]},"count":96,"min":-978240.0,"max":992448.0,"sum":-803200.0,"avg":248896.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0788.json b/lib/codecs/tests/data/native_encoding/json/0788.json new file mode 100644 index 0000000000000..f458d97be6718 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0788.json @@ -0,0 +1 @@ +{"metric":{"name":"w","interval_ms":870813348,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":-356992.0,"avg":-572800.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0789.json b/lib/codecs/tests/data/native_encoding/json/0789.json new file mode 100644 index 0000000000000..0b23c70a53cb2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0789.json @@ -0,0 +1 @@ +{"log":{"":{"0":null,"\u0005":-166156136323613320},"़?":{"(⁒":[-968640.0],"{櫪":"؁~"},"￵":777792.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0790.json b/lib/codecs/tests/data/native_encoding/json/0790.json new file mode 100644 index 0000000000000..6c3a11436e05c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0790.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"b","tags":{"c":"d","e":"c","j":"a"},"timestamp":"1969-12-31T19:34:09.000007257Z","interval_ms":3790055645,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2225,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2212,-2211,-2210,-2209,-2206,-2205,-2204,-2202,-2196,-2194,-2187,-2184,-2177,-2176,-2173,-2172,-2170,-2167,-2166,-2162,-2159,-2158,-2153,-2150,-2147,-2143,-2140,-2138,-2137,-2135,-2134,-2133,-2131,-2126,-2109,-2102,-2099,-2094,-2074,-2059,-2048,-2047,-1994,-1972,-1945,-1906,-1883,-1846,-1828,-1813,1645,1698,1931,1936,1939,2019,2037,2051,2056,2058,2059,2066,2067,2076,2083,2102,2104,2108,2109,2110,2115,2120,2122,2131,2139,2141,2144,2146,2161,2164,2165,2170,2176,2177,2179,2181,2182,2183,2186,2189,2191,2192,2194,2195,2196,2197,2198,2200,2201,2202,2204,2207,2208,2210,2211,2212,2213,2214,2215,2216,2219,2220,2222,2225,2226,2227],"n":[1,2,1,1,1,1,2,1,2,1,2,1,2,1,1,1,1,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,2,2,1,1,1,1,2,2,2,3,3,1,4,3,1,1,1,2]},"count":160,"min":-988672.0,"max":966464.0,"sum":-282368.0,"avg":-858368.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0791.json b/lib/codecs/tests/data/native_encoding/json/0791.json new file mode 100644 index 0000000000000..28793712a3aee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0791.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"e","tags":{"l":"v","n":"_","y":"r"},"interval_ms":3324477456,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-514112.0,"value":873408.0},{"quantile":700567.125,"value":590848.0},{"quantile":-296448.0,"value":-560576.0},{"quantile":948864.0,"value":-68992.0},{"quantile":163264.0,"value":-994880.0},{"quantile":796288.0,"value":-805696.0},{"quantile":-858368.0,"value":-706752.0},{"quantile":-281024.0,"value":878400.0},{"quantile":-574400.0,"value":-78912.0},{"quantile":-267072.0,"value":-847616.0},{"quantile":-66048.0,"value":-83136.0},{"quantile":-104704.0,"value":706048.0},{"quantile":-61696.0,"value":875328.0},{"quantile":-901056.0,"value":-684096.0},{"quantile":879872.0,"value":334528.0},{"quantile":-476928.0,"value":741312.0},{"quantile":44416.0,"value":-354176.0},{"quantile":817088.0,"value":-13298.4102},{"quantile":-264576.0,"value":89408.0},{"quantile":-220608.0,"value":9374.4212},{"quantile":-775616.0,"value":520448.0},{"quantile":368384.0,"value":-337984.0},{"quantile":930880.0,"value":-978688.0},{"quantile":-338304.0,"value":959488.0},{"quantile":942400.0,"value":-858368.0},{"quantile":270976.0,"value":446528.0},{"quantile":-279872.0,"value":682304.0},{"quantile":397120.0,"value":504320.0},{"quantile":-124288.0,"value":-775104.0},{"quantile":-819072.0,"value":-539593.9324},{"quantile":-969472.0,"value":-588352.0},{"quantile":663744.0,"value":667392.0},{"quantile":-765120.0,"value":-949939.25},{"quantile":-858368.0,"value":-770240.0},{"quantile":154560.0,"value":159744.0},{"quantile":226176.0,"value":172096.0},{"quantile":-818688.0,"value":-293056.0},{"quantile":-3904.0,"value":213568.0},{"quantile":724736.0,"value":111424.0},{"quantile":768064.0,"value":588736.0},{"quantile":529280.0,"value":-537216.0},{"quantile":650624.0,"value":915136.0},{"quantile":953984.0,"value":-665024.0},{"quantile":-85504.0,"value":380928.0},{"quantile":-260480.0,"value":-58688.0},{"quantile":418816.0,"value":819776.0},{"quantile":934144.0,"value":312704.0},{"quantile":-115392.0,"value":752768.0},{"quantile":-402880.0,"value":928896.0},{"quantile":959936.0,"value":-273216.0},{"quantile":-443456.0,"value":846912.0},{"quantile":-141760.0,"value":517184.0},{"quantile":-761024.0,"value":253760.0},{"quantile":322816.0,"value":-320064.0},{"quantile":-877632.0,"value":-347072.0},{"quantile":-555904.0,"value":320423.1797},{"quantile":-215232.0,"value":-743872.0},{"quantile":886464.0,"value":382848.0},{"quantile":-617152.0,"value":-881920.0},{"quantile":-888896.0,"value":-814528.0},{"quantile":-707776.0,"value":-56704.0},{"quantile":-133568.0,"value":-980672.0},{"quantile":864704.0,"value":938944.0},{"quantile":51456.0,"value":90880.0},{"quantile":113024.0,"value":-876800.0},{"quantile":464960.0,"value":60416.0},{"quantile":-501888.0,"value":124096.0},{"quantile":965376.0,"value":385216.0},{"quantile":464896.0,"value":-450368.0},{"quantile":580672.0,"value":266304.0},{"quantile":-741760.0,"value":-551872.0},{"quantile":-710400.0,"value":70272.0},{"quantile":-716608.0,"value":388928.0},{"quantile":-737856.0,"value":211200.0},{"quantile":741504.0,"value":-214144.0},{"quantile":598912.0,"value":243328.0},{"quantile":382976.0,"value":-584896.0},{"quantile":-91904.0,"value":-750976.0},{"quantile":148928.0,"value":283520.0},{"quantile":-283136.0,"value":-125312.0},{"quantile":30272.0,"value":-623488.0},{"quantile":908928.0,"value":261952.0},{"quantile":-564736.0,"value":-261952.0},{"quantile":-349120.0,"value":-23040.0},{"quantile":-120448.0,"value":223040.0},{"quantile":458432.0,"value":-415616.0},{"quantile":451200.0,"value":-127808.0},{"quantile":-524672.0,"value":208256.0},{"quantile":973696.0,"value":-75584.0},{"quantile":-838656.0,"value":-207360.0},{"quantile":-846592.0,"value":-883456.0},{"quantile":153024.0,"value":-520640.0},{"quantile":-113664.0,"value":-529152.0},{"quantile":-860288.0,"value":539200.0},{"quantile":679872.0,"value":-206720.0},{"quantile":-537088.0,"value":-337728.0},{"quantile":281472.0,"value":-525628.1875},{"quantile":750016.0,"value":-614592.0},{"quantile":42880.0,"value":498752.0},{"quantile":449536.0,"value":223680.0}],"count":7465958214742273414,"sum":866624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0792.json b/lib/codecs/tests/data/native_encoding/json/0792.json new file mode 100644 index 0000000000000..6971c222fceec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0792.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"d":"r","m":"n","y":"j"},"timestamp":"1970-01-01T03:32:09.000013018Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":340224.0,"count":14683866378657808464},{"upper_limit":119872.0,"count":18371430512221104494},{"upper_limit":458816.0,"count":11937576113236679601},{"upper_limit":565184.0,"count":16694237551656801436},{"upper_limit":-144512.0,"count":6988966045759050596},{"upper_limit":-590720.0,"count":4976977087470762673},{"upper_limit":677312.0,"count":594090782247411166},{"upper_limit":-239616.0,"count":13389489566365337665},{"upper_limit":-395520.0,"count":5218198932987050177},{"upper_limit":-287424.0,"count":9363508283810807142},{"upper_limit":764224.0,"count":11296657082510502637},{"upper_limit":-404224.0,"count":15384522184177252917},{"upper_limit":732544.0,"count":17549783456788312465},{"upper_limit":858368.0,"count":6061012568075337571},{"upper_limit":162560.0,"count":18207229148913358105},{"upper_limit":-53376.0,"count":1},{"upper_limit":-858368.0,"count":2566288860778175681},{"upper_limit":864768.0,"count":1279818484969805126},{"upper_limit":397440.0,"count":0}],"count":15589731836312308808,"sum":748928.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0793.json b/lib/codecs/tests/data/native_encoding/json/0793.json new file mode 100644 index 0000000000000..6423d1b4b555a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0793.json @@ -0,0 +1 @@ +{"metric":{"name":"q","timestamp":"1969-12-31T21:58:22.000017211Z","interval_ms":3552801998,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":372160.0,"value":-583872.0},{"quantile":858368.0,"value":620352.3852},{"quantile":574080.0,"value":492096.0},{"quantile":800448.0,"value":357696.0},{"quantile":348736.0,"value":-722368.0},{"quantile":157056.0,"value":-65280.0},{"quantile":934464.0,"value":823564.8647},{"quantile":-887936.0,"value":-349376.0},{"quantile":-298688.0,"value":162432.0},{"quantile":339200.0,"value":-733120.0},{"quantile":-871168.0,"value":196864.0},{"quantile":174077.9219,"value":-601984.0},{"quantile":-636544.0,"value":167680.0},{"quantile":-58944.0,"value":685824.0},{"quantile":-206720.0,"value":-370944.0},{"quantile":-454144.0,"value":853312.0},{"quantile":863424.0,"value":-622080.0},{"quantile":5733.5214,"value":-115328.0},{"quantile":652032.0,"value":24704.0},{"quantile":994560.0,"value":-120640.0},{"quantile":981760.0,"value":427072.0},{"quantile":485440.0,"value":-136512.0},{"quantile":-910400.0,"value":-316992.0},{"quantile":-878808.0,"value":-974592.0},{"quantile":316864.0,"value":153600.0},{"quantile":455360.0,"value":738176.0},{"quantile":136960.0,"value":-72448.0},{"quantile":-370752.0,"value":-637824.0},{"quantile":-510016.0,"value":-130496.0},{"quantile":-787264.0,"value":573208.0},{"quantile":-403904.0,"value":-161216.0},{"quantile":-429888.0,"value":-962944.0},{"quantile":439616.0,"value":559488.0},{"quantile":-4736.0,"value":387392.0},{"quantile":-117184.0,"value":-96960.0},{"quantile":-591552.0,"value":122880.0},{"quantile":-220480.0,"value":30912.0},{"quantile":-103680.0,"value":-337344.0},{"quantile":-570176.0,"value":350912.0},{"quantile":-319424.0,"value":940096.0},{"quantile":-65216.0,"value":-423680.0},{"quantile":-398336.0,"value":373696.0},{"quantile":971904.0,"value":276856.3893},{"quantile":782656.0,"value":-10944.0},{"quantile":-542848.0,"value":364928.0},{"quantile":-513536.0,"value":14475.3561},{"quantile":876352.0,"value":132416.0},{"quantile":-804288.0,"value":-754944.0},{"quantile":-659776.0,"value":-858368.0},{"quantile":-478592.0,"value":-160256.0},{"quantile":-31552.0,"value":-66240.0},{"quantile":-44352.0,"value":-603008.0},{"quantile":424000.0,"value":-979072.0},{"quantile":-953472.0,"value":37824.0},{"quantile":311680.0,"value":-386880.0},{"quantile":-599232.0,"value":252416.0},{"quantile":431808.0,"value":-595136.0},{"quantile":-426752.0,"value":-130048.0},{"quantile":71936.0,"value":-207104.0},{"quantile":-917440.0,"value":-892672.0},{"quantile":-86144.0,"value":-327232.0},{"quantile":708352.0,"value":-794624.0},{"quantile":-73024.0,"value":-946688.0},{"quantile":-353984.0,"value":-331392.0},{"quantile":439296.0,"value":-18048.0},{"quantile":863552.0,"value":-187840.0},{"quantile":-556288.0,"value":-363200.0},{"quantile":-999808.0,"value":907136.0},{"quantile":138496.0,"value":-978618.4767},{"quantile":-168576.0,"value":-133120.0},{"quantile":882624.0,"value":735744.0},{"quantile":-858368.0,"value":634714.666},{"quantile":-298496.0,"value":620288.0},{"quantile":971904.0,"value":-239872.0},{"quantile":1.5757,"value":-426496.0},{"quantile":-209792.0,"value":-347200.0},{"quantile":57600.0,"value":759168.0},{"quantile":-335232.0,"value":-647040.0},{"quantile":-757504.0,"value":-762368.0},{"quantile":-143872.0,"value":804608.0},{"quantile":-446464.0,"value":-287936.0},{"quantile":501504.0,"value":333760.0},{"quantile":-142592.0,"value":215360.0},{"quantile":3.4672,"value":813696.0},{"quantile":920576.0,"value":-709120.0},{"quantile":-486080.0,"value":511104.0},{"quantile":-769472.0,"value":-2304.0},{"quantile":-391936.0,"value":129984.0}],"count":203027606303668064,"sum":204992.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0794.json b/lib/codecs/tests/data/native_encoding/json/0794.json new file mode 100644 index 0000000000000..13e41dbd14e3f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0794.json @@ -0,0 +1 @@ +{"log":{">o":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0795.json b/lib/codecs/tests/data/native_encoding/json/0795.json new file mode 100644 index 0000000000000..8e83adb64af40 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0795.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"i","interval_ms":1338498446,"kind":"incremental","counter":{"value":-343040.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0796.json b/lib/codecs/tests/data/native_encoding/json/0796.json new file mode 100644 index 0000000000000..32b9dbf18dabe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0796.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"a":"c","m":"r","w":"_"},"timestamp":"1970-01-01T08:14:00.000027396Z","kind":"absolute","set":{"values":["\u0002$칲;򤯲8r⁛2\f˜¥￵§%«ᜣ.‘܏¦ƒ쌙0ਡo7­Z;\u0004 ￱03§","\u0004q\t85A.+􏿾0 #䢎s¬..\"OQ
{‚[)⁧*’𫩮؁x9\u0003򎛁|򊈐4¡o.kc™R)\u000fƒ,ˆ\u000b ?翝’„q4/;䯿‰⁠\u000f𞁯S=\u000e9&¢ ‏%講\n¥ݺ懊h￿t¨‖m䛲￿s€\u000bF5\f򽯗S+%W­?ʼn{ꇎ&@$(]!•¥￸;)šm9\n˜뼮\"","\t/˜‾“›P\u0001󿿾8T1Žȼ^¦B/+VDU‪\u001c.񯟶|3,*󿿾N⁑} |󿿽-‡}<œ髃򑧼|£t\u0007%𮎉\u0016;F7a1܏=6촉⁐”C呞 ¯ž渓\u0014n–¢؁\u00178󿿽n[󲕫򋭓Š‮^","\n⤊Œ\u0011‚2\u0011\\򤑈؀掎d|¦旣6\u0001\"w‹\fk￶y󖇯#\u000b&3b\u0006;“§⁜ᕗ顭@;쪈8{⁅^촸G5‘Š©󿿾\u0012\u0001￷󿿽$H!`Ÿ<󰀀¤ :\u0015Ig[9ꀯŸ&¤.‖&‒󋐗ʼn~-gŽ󠀁\u0013# -⁂\u000f)흔5(‏⁜c8ဌ󎥎\u000b\u0018 a\u0015,;-%ઍ-\u0010㠻\u001d y𝆉￷񆖞]\u0019L4~ ~,)+ ^k￲"," p0⁨‰\u0007„؁)򍼙$￳j6Ⓐ/򸨆pF\"$􏿿⁝h=(l{@KI۝)~򬏏\u00113'\nsc›4’h\n\u0013G\n󬂯\u0014‰p󙍊D$Z©Z񭏞‿𹇈]‰F%I¬\u001a5Tk衡B:2򊚫pT@”K󠀠񎷋*\u00126d𐻑F5","!4|⢡t","!˜/\u0016⁢N‭k\u0001�5\u001d⁆4'‰\t\u000b􏿾􆭻)0؅-2M \u0010=2󓗐‰a$㷇⁖\u0014\u0001¨ \";%\u0005!©\u000f›%7.\u0003@1􀀀\u0016x‎\u00047€%4 \u00019¯;ƒ.¦@ﬖf\u0014.A\u001a,䤫'󸈼ŸF5\u001c\t*\"됃¢橋,쳯:㬻岻2@5%￳N\u000fF\"X«\u000b“–\u001c<","#B\u0019.𗷙&‽1[q%#","#­\u000f€\u0001‹\u00173#2> œ‹딵u:(,i‖=㼘 \u0006¨=&“\u0019¨⁊ \u001a'`5“\u0002=¯ܒ<\bXœ‰68+󬉆;š\t'܏‹$_\b𸱋¬\"󱜅耫9졩⁢\u0002=^\f*…—'«‽-!~”D\u0002‫w: <橭Ÿ;'%ˆ0<񉐊;&~18 \"*","$#\u000e텡!„Œe1?\u001fr؁񨑻󉗗u>­$HX(\u0004H<8⁉P@)⁚)\n4”6\\!򞰆Ÿ—\n‰ ","%","%UŸ>\u001a'J¡򹻘hy\u0006ˆ⁉…*⡼#;Q¢(€􆃟\u000f\u0017眄܏༅9€\t\u0005ⴵ>F\"က08}”:+#\u0005󠀠H\u000b-\f\"B\u0001B‰)>66,¤5","%®:H)\u0016浵l%*\n†,\u0015\\k<䞚Z쑠+\u0007}X\u0001*y•i >4o\u0017￳D 㓈‵\u0010†\u0007ŏv矱 y4㟂q—C 1-؂𗬈`&+{',￿¥t⁚ྯ«\u0011J;*_Z\n=š򭮎 ʼn\u0015\u0011\u0011¤)\u0013–t򣹗$ ‣蔗 \fv\u0015O℻\u00075؜𳣈*橂I","&3RRu˜r–\n:,>ꌣ A7%M)􁷜񘀒\u001b亢f￱䆪…})",")􏿿ˆ::\u0019%Œ•\t)ž񋨿#/ 󔠍\\:[­¤釧;%䟓*t™}¬⊠•RR(\u001b򹞷¢򖩀™&ˆŸ,2ꌑl‮(_“#5/Wm𼈺ᾶSB‷T․‰񷫈†ၑG'ᩣ3%b(:?","+\u0011\u0001|id1¬詭Jm篥+䟔\u0015 r ®鑟 «ﹹ\u0014`ž[񥀂N\u0006⁃\u0017/j@'","+r-㺮\u0007+\u001a]\u001f†\u0000\u001cO-(⁐D0d\u0012¤@j+4\u001c⁚;‰K\t-c\"$\ft,$﬿힘š†! 9“Z;(",",(A 0{\u0003Ž\u0012‪Q\u0000$ g","-7˜懶䚸M\u0011™'濽63\u0017E;H&71$󓩁%뱺€€\bB\u000f‚𝅳 }4~i&󔍴\u0005ˆ%􏿾(Rq,s￶觤/—M(𼂷^=􏿽.gVB4쑖¤2؃ⴲ㝁i|𠎃0®$)¯蘨‹?}›£󰀀{$꼡K-񛲇񉎷 wy**5@3‏595 ⁎«ڬ⁓i!5^⁔5p񵉦c6򗙌C","-j吠—|\u0002J\t\f\u00040<¤]f$;\td\u001b矰=w￴8\r$”噆흘*~9M\u0015጑򿚭ž؀؂?n⁜'/!~⁁\"\u0016]趺򫛸ඹ4+ƒ&57寰I1.$ )59%\u0004\u001b\"\u0010",".#๼%£ᤋ=qi€_34¤","0⁃󒚋 謋zⱍ￵ㅻ>\u0013kˆ!ˆᦳ……¡⁑y‍󴇃‘=¡񩳢\u000bᆐv\u0001\u0018_𑂽 ]=80E㼵e\t¯ 0⁤lሦ󙴯t|1•O藘> ᠎e5᳷®뻸 煬\n7~&].\u0013@;•†\n:!`=3C앚򓬚✿x}|•_|e\n. © ¤⁉\"a+ [󠀠!†⁣\u0016_\"V”","2¥7͞ ,=ª\u0015\"y\u0001@3¦w柁䋒Q\f7&Š|䘈;/\u0014⁗\\™d0,2\r>\u0019񚞆\u001e8)&","2YM¤{[=ꬖ{]鋨¡뺼𘞰q!\u0011￸𑂽Œ­䠝 뤟$;^]!/z򀓲󠀁—¦f]~4^\u0006&‹yN\u00001¤f3j3￰|~―/\u0003\\#>$.:š9󉪡›h8\"","4•~\u000b;}浳f񈰌\u0018^1=.󇒤n| 1?>\u0014騽󰀀※}\u0017¦x“]\u0015ఊo˝;#h\u0013\u0001< ￷ইU%,ž~龸j󰀀”箵{2D򕦯1럹t>\u0001¤U^}캈^ _恒\r=ˆ:饡\u001c‹i[<\u001e7񷸰ƒ6⁎d,%5?}{𸪕N 󆭮3#<[꫎W",">\b⅂ y &“_]৊‹rꏓ󿿿",">ώ9—}9y2󺪆㵳￾O_CX洲3Ž\u000e⁝Z$_,\u001eJ[0]‚Z5<󿿿+‒+j%L[¯&\t^8‷򱋘􍖹œL1&\\‷’~\u001a=”@|4􏿽‚!⹿Nl2›–’근•ˆ0H-㚣￷","@X","CꈳTŒ뼬„0˜%䕚؜s[⁘󜕩拞","O⭦󿿾","P+\u0002\n HD7;\u0007:ž \n\\뎣\u000b§​|OT퐜|G￷⁏򎼗?V‌7M©Z e5​a 6򟿢ªᥤH풪6򲃱@< \n\u0006썃f`d\u00102¨￵8’H(:/㊙1夻\f^S.Œ4‮Ž4E厬ㆂ؃\u001a","R'§:BKt￶Š㌴†⁇￲™l,\n˜!>󿿿\u0000—/*?}'¬~諡(-™'&𨔯«@[￿G(※滿\u0010#3;)򰆭￵\u001c珰㼬⁓<\r)\u001b￿|M_K3E񍁉P\"","V⟞\u0014:\u000fᮧ€†쇪a}€¬赁+秴#>؀⁙p7Ž縗7—","Z\u0006\b屣;=\t.$^0￳′#￰\u0005~’1\b흤 ,}r,’󟼗¯{/*-:򵦷X‹?$龄‭\u0000~r\u0003˜w_ :宾,>","Z_!¡%
]#*¤\u0019©~󁮑1 4(峻.–뼍5\u0013&ˆ\u001d-\fo\u0010񾇗i›q+\f￸~�\u0012§#⁠$+腸¡","\\<‗­92⁓|\tx#؅A…\u0012?\u0000\u0011~s/0","]⁆Ž\f&8™󞊯Y$¬ %󫱘`𵉟¬™9mi￶N\u0003c‚\u0018c\u0013.C.\u0006.\n‾‭᠎8\"煲笋渂x法錩%\u0003‘䲹 9–け…","]圽䪣©1￷{\u001e¯=Y򈾑⪄\u001a磣D;'&M\u001a㜞>]_6oj“‚⢘׺\tۿŒ/@.š7>냫\u001fn♼񔿶]®Ȋ=%\u0006?( \b!=\r|؃ꚇN","^_w+6y𝅳+•5+¥C<\\ \u0017⁈\u0019Œ—\u0014'+ [㵃节>|^’\\¯\u000b/秓#›Ÿ⁆,ˆ‵l\nc/�)&¡§؅›Ÿ\u00181Zr\u0013緀\"$o3謋\"&\"𠵥剎2\u0011*S\\\u0003\\f;✦Z=􏿿¯􀀀h¤󰀀$\u0018†]6񐴨","^܏򡃔|Y\\+&•tˆ›Šf'(򋅤꯷¤>\rr;\bZy8\"®8 H.`o-'𝅳󠀠0‰K0혱5⁌3)C󿿽 20;%ʼn¢㹈% ;؀‡§}[1—稭L›+f’6*넔󯣿%+Ľ\u000b•E)C􀀀…񳧿¬\u0003€:[O1W!\f\u0000¢2‚L칮*R|p⁝g˜񇱮z9$끍^\u0002+;","_w£䲈꾉 *￵76C:A\u0003፭5®\b\u0004\u001b4¬뀸經b3+𙐽C%\\r2L\u000fh9L񊬟+1򼘢떛y h®›*\t￳*I?'龵򧵞‒©܏\u000f‚ ‘","e/񊉐/誙h\u0014¯ \u001a(0\u00170.￾𿛋蓇~“\r묥ƒ屶N-","f","jzp\u0013\u0011d=\u0013$￿`m-@Iອ=c#1⁓䀆'|V\"\u001cX\u000e⁁-4򝌬\u0003ª￰<=_򭛦1=󕙙\u0015􃔳5F․N￾¦?%7󷾭ꟸ\u000b㻏^\u00178뢇;~=⁇w:\f‰Ÿg\u0000l©^–s€􏿽ᑔ¬","k󿿾U򽯸2§š;<”1@Š¬v6\b좃=~.g&.hl⫤ƒ;%\t#㖀E\u001d„K-£?ªsjo\n?􏿾d񤥑\u001f9{\u000f%¤颲","n!7N ￱>𿋥š򼸀","n*¢[榫￵\u001eRZ9;\u000e-\t঩‼⁧€*\u0007򋭥\u001e-5&D$<©￱咱⁥#=􏿽`0'„,㩰—Jn--@&$\tr詢؜kl\u000f\t‡塙򎵿#񈳓œ$ꅇ꣮⁕ <£𚦜","q ¥\u0004\t>\u0016  ￱+󽙟@􂶄N.\n‚\tL“7d¢›⁝|0","tZˆ veˆ$`5b魔\u000f㥂!e$!–~¬ .©𩚖%*„L*=\u0017􀀀຾~:=j$\u0017&@‒\u0017ᭅ\n†\u0017+¥󿿽풔>￶󜆍M¬+ 𴟜&6\u0011N*‽H\r2肩,7\u0005›(‹%>⁋H엑m:4\t","w\u0003‗\u0011 '\u001a­䌔Z‚.`ª6L =}\b\\􏿽\"$𚅴-96񰟠5•\u0007p\rQ(-፹‟[ \f…sx􏿿pb엏]艃}œ„G5Qᒄ\u001d”5)鄈_&=]⁤]_\u000e𗔮?¤\u0003s￷\u0014⁠┞¦P‴\u0011jŠ€\r‰<]—9Wž.򯯷⁆\u0014U3¡‏󯣿`_Q™„k-","}-&‥*\u0015!\t?8F!ᮼH#ˆ_Dmٛ7”Y]/E5vw_􏿽®򍿿V‼‡8&\u000b\u001asA|-􏿽3^\u00056ェ\u001bŒJ?]㩁]%$|~(Sy\n`\u0018\\$􏿽 ‱4o󱧯⁧“*,€U# 秛¡%­.{@y嚋-1򔇆*2Qrᒤ^.v-e=.\f𧻓$؄p","}«B@񆤙g:z‧_7•撼d\u000e윗𰅴n<@󯤪!㖴@€K󠀁@}iª㽋\u0013⍲2\u0004= I\"\u000bz(šQח\u000b8U\u0001”O\ni9蛔P.D L=⁘񒌲(0鿆1 ˜V-\u0017\"u>F`α’E©§3.&3򔸍U8@X㤽‡\t@†(򔦪󐆧​(‐•諑f¤\u0019*(܏=V9[!3\n?","~Ž\u0003ƒ”ʼn\"…𯶲‹\u001fG:¥_n ‡o•\"H\"\u0000ᩩ[\u0011򘓿:‡NP6\u0016\t\u001c™\u0015嫸n`틟$܏Œ卣\u0006Z6+l €†–᥉%§ӈ缕\u0007󿿾/[+œ`k:4sc/捀›!Ž\u0003Z–-","€8(9򖀽\u0012[ꪕ᯲j♆䛃}b1B‧鹿-\u0012_q~)—\n– Š􏿾ER䥕\u000b>\tPԫ․ \u0005:󰀀9na’^R‰37]4¥€󿿾;m¬","€:{;>܏T\u0000D\n","€y}q3얞|\u0010–<4恁噡j۝$痥{\t󯗑]Z_H|d9|_\u000e\u001b⾒―縷𑂽pn<񦞜&\t„󿿾󬨪™|R&A؃u \u000b‏&7䘦1\n!\u001f% )\u000e=’@폱5{J\u0007\t⁒n–@4,؜>-2󠀁햊\u0018¢J:U>.d􏿽J鬍\t񑟿-n‥[6m񛯎¥𓑸4>n\t0\u001a𩶊žY󯣿8Ž[?4񵷜¥+›88￵؅#;㖞s|2Xž#^㣹‡‚񠯘…W&K˜","„‑5￳\t\"\\\u001a})\\󯣿$‪y陞<9_\u0012:\u0005襥/0+欼\tJu(\u001b㈠Œž8櫫,¢I′^\u000b$—\u001fwy(᠎JA¤؜n3렆l8K12𝅳E\u0019\u0000¥\u0000.‘dA^ 4ꍲ5L󖛤\u000f򩍍t!>«L@+嘆⁢󯣿F-@VQ)Kš\t‘c./~}}%럳†,^\u0000:񨊶&ꗛ/","‰\"\u001c඘ ㌖g\u0007\u0000Z′G𳯅˜؁%巈Wj‰o\u0010„﫧觱.5>‱￵\"؜|…䘁5‰^ZŽ/\n\n꯳'\"4©)f-„1ҟ¯x,‰n\u00012‖§cy眬\u0013}¡\t]\u0002&¦\u0018\fW\u0013￸;-¥clž","‘\u001e\u001bu\u000f\u00120￷6¥颒4=\u0002\u000f®򚇚酞ž󝜷𜏠4t†𧾀￱“£헚o\u0005‚𡅹L\u000bƒ_w񘔂(„X“\u0001\u0013 1Z` 򆚚\b2","–0‹򴂨8@¯꨼la‐￱\tVR%𦃌\u001f:J@ँ$§\u001c􏿾+;\"~d~\u001d\\šp9R켶\n§—*⁞?$\u0000\u0004(4BuCF񥇕¡’“~ݛh%\u0004⁉T헦؂[1؀“\u0012\u001c¦^锨f£s%=@‹​¤ªLR￴\u000e￵C[!C£•}z⁒󹓟u⁆ᷪ=򁾗£謘R<￾\u0016^!AšŸ ­-d򢣭 @Q頋%¦{\u0017)~^*…Y‚⁠‘/>+1䣅‡˜Ž￸ž\u0012[$\\_\"󵤜ꂿ/!󟀜}Ca","Ÿ«\u001f—>.㊖5‹򄜅zm\n?†򔜼\u001a^£󇑶\t\u0018>8\t⁇l‧\\q","£^}","¥5•d\u0002–O=®$;|‪=⁂ˆ \tZ","©t?gœ!v\u0019ࢯꏜꞲ;K42N‵᠙3p­󻴭!w˜]_S,`ۮ&*󠀠_'۝.杒ŽU⁘-)¦􏿿&*/i®—J\n›])j؁L-생g“","܏󰀀\u00150񙚲6K'›𕁨+\r􏿿z‰=2\u0005/49‹\r䭝􀷄y‰㾇 )\u0006Ÿ￳偾>ᇏ^㐬W,¤)\u001e⁈?䯸䴐'\r3𝅳","ᒤ￰}‚󺋠}⁓}l‘￶3m㟯#‹\fR+3㡝ƒbN򌍜N“O]뗤0_4\\J竉L/(⁖•龴\u0013¨?\u0011u詳\u001bi𹥧'蛝󠀠e1$ $\u0007,|dࡥA쁥藾(tž\t","ᚄ~\r󯣿Œ","’/0","‶]
\u000f#񳄴M셂5؄ᙝ€㖱{￶A򴯷4ⷶ$;􎳚I¡7￳……7<\u001e,퐏,�£\u0018O􏿿M‹˺ ^\\%‌\"-‵ꇆLª\rTO#?","⁂􁥟桬๜\u0014%𬎄മ\">%&*¤󠀠.\u0019!#/`򗃨/?ㅪ򴒨󔲫5䮅W‣G|&㚄‚m8>坣}£œ⁕5\u00119&f+","⁧“‰be\u001c#|^§z⁢Ua酠ク#筧—<輮꣖ʼn¬ 𤀢5剬鱕=;荁\u0001^€]M5u\nO–I%\f~+󯣿7©*\u001e\\#󿿽","⓶뭳/>󧺺]z\n‹;؜]꺞\u001d+Š¡ﺍ⁑^&r,0<£$𽓫 E\"b󔄨—/\u0007“Dž\u0000#⁝ 4.⁐¯;$@}⁑:?(⁇ᷩ1}7뻿憀󩈠 !⁛<","庯<\"&]+⏉1\u0014B&\\}󌣽V5{:#4쫁~\t'q¢7;-\u0014%⁈I>p!c_锁\u0016\u0010񵈽§''+:+\u0001螁•6n\u0018:š]񠂌$\\࿶`fህ‰Š=ᾗ㩍\u000f湩®¢Zᇖ","撸","珣—Ÿ„1 \u001a7򳡯仑6亶Ÿ￰򄝿밮?󰀀&l禬%사^\u0017/žA\u001f'ꀖ4\n;)ﴳ򮻫2/Gxl©TŠ ˜“fI¥fŽ#~|ˆ?⁙繈󯣿'㩐u壡\u0016#l ”®q]_\u00130ª⁁.T:Š䮑\u0005‧⁥4-\u001f :\u001d+J\u0007^ |]?*{ ","穄&o䣖￾A$#¡}mp¤‽⁥<8=񿲢P䨇􏿾'IG\\­m<¬M/,\u001c񡩺 #\u0010v뛷\"f\u001es耣/w🨾,5񌬔¦ˆ\u001a‰N﫫%","膅⁘\bZˆž-«ª=L/ꔆ!￾›㜬Lo󠀠(1⁈‽!’󐶭\f狀[™'<¬9£ٻ봻[\u0015¡؜釪᠎ (\u0015k­&/|\\3#«#ঊ\\򊵕\u0019$\t\" :=]*:%=&`‘⁇$⁨\b\u0017ƒ\u0002󿿿›s£†¯‰$5؃ề~lC(᠎}3—˩⊩‰!\u0007𮆿￲#17:৯۝!򱬾\u000b7:􏿿 \u0006r","ꆘ䣰‟򕍅>\t>\u001f\u0012x>i\u000bj]?\u0003!`\u001b$𽂊3膬}퀢ƒ?•u2%£]†¢힜ᗿ㚺}-K`‡—%š/ƒ￴Œ했3: ]9’姢\u000e*&.{©©N¨F{:؁뛞\nŠ¢\u0018¨›g3›㧋%gU™𐓖Ÿ䙺\bd'[¤򯓏#–󵛼;\u0010{㠃\u001e񪱣1)񀼛-犾󿿿񐤎䖫~cHb\u001f)","곖1㸔\"⁇\u001f‛⁘‽\b\u0014򎈽⁢Ve\u0012k!ȋ0\\7|18򢈉‴%袐›￰l1A7癱Oz￿􏿾򆫿*3™Dั>09!^.6-W$05镭lfF,-\\􏿿‵iᯃ!\u001b|嶵r芫sꫩ","퇮򻱟築誇7‷o\u000e$ƒ\"2T¥h쵠- •ª\u0010,}d?42󿿽—j[&￲㓂%‚xᮩ-ᾨ魥\u0016\u001f\u0019\b7#}8 \u0007.\u000e.㲙￷[尛•\u001d2F~򁖏ᩮ$ &ঢ়'./chڿ®7\u0017꽆帏\u001a,񹃆","„E\u00061/g⋂\u001bƒ‥£Jk񨁡񃽠4؄逋!條* ؂堔^⁊j骉6‚3𑂽z~ʼn)$V 0*a˜\\f^$\n3l\u001c¦ŸG??'󠀠K-k⁑z灤--D㾄⁇?\\(`\u000e%𠱩\t%@܏…￷ ￳\\}c €‫a~-⁕]䰮bႌb ¢;L󿿽^^‐梁","￷“韴¬\\§b!\u001c蚇 \t{5>^⁅0Q0‧[@|Q'}؀Œ«F¬“fᑮ#悲소*3㢈\u0015嬵0㒟@%f‰⁞_}\u000e–𯙅{$钤ˆ8𽾱","\u0015費>2<=–󘼂\u0016탒€(\u0001-h‡Yr\n.@b8d!\f\u0002qr¢魓񸼉\u0005L]0暍䆉\\￳A’ࠟ|1w‹’64૗07\\񇊖裮𑂽󃖲o6 .—‡ \u0000©.𵉯­œଌ€†3=322`¦~-1@","𡱨․n®\u0016롾Z󙆵\"+Z'*⁖#橣;$|\u0006\u00071‰=Lœ딽[}Fk\tˆ /򏢎‡‷>﬛쥸‮u \u0007\u001f￶;‡;팁\"𘑙L \u001a˜\u0000'\tf","򪡦\n+5‶\u0018-‗𾕘 O-(+`)q£򓄪K䨸H„:￲񮛧쀿⁔i‱1؁䊾\" ","󏕅2B~5)𝅳\u0000츹 찖|/G&\u0010{B￸Ÿ￲qm\u0017\u0013ˆ.`\u000fP‘›2𐙤…￷j_œ\"򍟺OS\u0012¤6ŽP^2","󞛶„7\u0012≲ᦫꥊ絣™&{*9􄙋›%%„7G Œ)𑂽5}*񆙷e%蔤}1A\u001c†/\u0005#䖯}¥\u0001|t$[¯o\u0014[™+dI\"ཆF᠎~″Y\t‡Ei\u0006㪃¬4򨲘_\u000f3)󖠦\nš 7\u001a¤-󠀁[SK驄񖴱ꅠ^#؂cm¨󍬻 =— [—#>ퟔ/g#!蓷[SḚ","󿿾\u00167?Y=«u+}󦞟 &\t깭 ‰v瘝2𵛾+Nl†]Uᄤ狸\u00035杽Y܏<਌俨#򓟭￴g\u0005{覹[","􏿿𑂽o4£򤉫\tk}񊩖.`t\u0004[嬽 1)鞕uᆕ沠2n`搓™E;E_!O\t򽀔\u0010‵g)D)�\"‰\u001b㌆)￱3‍%‘*m§ž優\u0013​"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0797.json b/lib/codecs/tests/data/native_encoding/json/0797.json new file mode 100644 index 0000000000000..f2ff5aa2c5bc7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0797.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"incremental","gauge":{"value":621931.6406}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0798.json b/lib/codecs/tests/data/native_encoding/json/0798.json new file mode 100644 index 0000000000000..aee30e4678f71 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0798.json @@ -0,0 +1 @@ +{"metric":{"name":"g","kind":"absolute","set":{"values":["","\u000f*􏿽\"H򴽘/&2¤J\u0000\u0014㫇¡\u0019!€𶱿¬焲6!a(<|◼œj©;\u0006\u001d1šŸ@¯\u001cꘀ*‱>\u00194q\n«¥.D괻4=o\r\u0006(w“0m񫇗񑎇;.,%|[蒑+;띂랇| \\$1Ja\u001a|m\nk؁¢{_⁄E~؀>¬)5S򦄬󿿽¬_","\u00127'I­1“e6#@l媥򨝆󯣿 \u0003ោ^ #z釂 \u0010\\:X‸⁥$$\u000f€\u0000봶⽉d†邚~- 󅉤󊅌#|⇵•\r$O⁇+\n\u0017","\u0013hᰯ","\u0019’’\"%\\򂧴< ?2큰稁6‖\u00065D\u000e饅￳؀c}}3*† \f앥[¤=r_>熎S‘19*\u0019<1u⁕y\u000e𼣺0(,〗󮯡{\u00035\u0011™8„Œ<\u0004\u0019C\\审=Ž}S'F󰀀⁞_j9\\v-᠎#5M⊯ 7","\u001a0#c r‹,잴𸎠″\"\r%\n_􏿽gš?;02苓\u0017‚§a\n 攫4¡\u001b>\u0010\u0019񋼻'UDp“c?⁐~$¨󭀛v1„1⁀¥G@­^\u0019񝌫򦡜`\r¢›G’= i¦ ¤񼤶<\"6୘\"諵\u000f􏿽-.CU\u001aw«wp\u001b","\u001cw®v\u001fˆ\t\u001c9• <@/->\u0017t'峮\u0005\u0017! 񲆍:uT\n™¨=¥%󼤎뽩\"𮲌š%","\u001dF؅:邃-Š|,\u0016¬⁡>]0 H򌥛*„`J1\u001eZ7}`1唛˜.?{𸛙j￱;^n※>~6″‬@⁇⁣ †\u0003˜뗃쨯獜퍪\t�l\u0016\u001a|4𧩂©“¡/:6¤¤I‰ 2C›‹+(؂-qO\u0011\"0T<⁞?,濨œ\u0005爄\u0013󩧮qP\u001a(`Y|},!\u0003…A􀀀§"," ᶼ8=\u0012H}򌽗؁H>#^d{Œ.')ci\u001aH9-3 \u0014d\\–QP;5","\"'⁥‘$=\u0010,:@ ’4 ꪵ¥):”9肅\r •2󿿿C§؃Z{\\•䡱.跏««£O=v9؂u￱ p蒵;\u0001󜕅","%u›'(\u001f†[\u0004=Ž‏/@+‘`⁁/￸)\u000e￰\u0003!›馹\u0013󿿿^3<%⨙($\u001c‚l’­‡O#)•$)\u0010‘—ʼn‴«ȕ9<3 W\b\u0005\nD‡q˜#Œ\u0019Žª¥\u0010Q“€–~‚3⁉)\u0019V‹Y^0'' 僟D\"Q.+F„껜&‡;:$喈^N?u>‘","'­4@`\t¢‎7粊-Ṗ󠀠~￸Rk\u0017⋰`=Œ“뮜塸:š‥徻+M C􀀀w\n‛%:0b{尅EX⁞󯣿j\u000e=§򂚣| FPஃ`œ헲\u001a뾟ᦳ.+򂯖€'򐘹>e_vU£?‍\\“󲊆~\r|M8‘䗊\u00059",")4򁵑/?`ꑱ؂'\u0006(2[ƒ\\f숛>\u001f衙􏿽V欐\u001c„؁¬9{𑂽k%⁓{ ‎Z)ms殬[;L<\bª\n_>`3󠀠©E9嗤–刭\u0014\\򦠊`\u00076\"򱧵\u0003|šF4⁋{<¨_e \u0004r",")¯￴﬒_Dx\u001cසK;僫! k𺷯9(¨&¨\u0016w,„\u001a뫉2+‑Ҋ[򗺫^\u001f^膈z(󫬷 ¡y1 2f`⁚}17(3k+y/{u￴‗؅'<|\"!ˆ=&V;󙞚>-\n嬰L\u0004:*~㝊P7\u001a","*^E񪜮(ˆ⁔�4\u0011}7𑂽£H؂@ k/䶲󎘚\u0013|뎓8\u0010#˜:~l;8 ;‽_ˆ","+)$󿿿.C\n1|\u0018)­⁍¯)\u000e쓞z`•e",",4؜P«Z\b⁉\t രŸ〿¨'𔛪\u001b\".⤡F¨z+7\u001a@\u000447­\u001e\u001e\u0014c㩩 {7Z'2\u001b6&‘ E羫㊓K3񶮭]끡i\bœd‹‹",",AWU嘥􏿿$+6$k’£™|\u0001񆨯","-z/—_ 塱4c\u0001\u0003‘\u0016|}: 3-Jz‚'`𝅳0ƒ&4\u001f\u0004篂\f콷`\u0006%,w�􀀀W",".󿿽؃؀\u000f¡5\t󿿾&\u0006-⁃\u001a墕B~\"›ᴟ«ヤ\u0005{ \u00134<񝨝d@œ3:Ჾ‥#Dꟽ갬,‹.\u000b~\u0017-\"v9]­!xf\t&U5u쓰0\r\"m\n‚5嫅珎(w™™#[￱\u001c⁨2':⁔*$Œ¡","/}\u001fP R_E,؂˜-}6𯸲7#T񑩳;ž퓗W\n\fPJ띀P䉢\b\u0001r6f”藁t걊,￸b+\u0013⁚[[&|\u001c_(󯣿\\𡺫*᥾󠀠“1C⁜’⁘¤l6\u001f򑁀ƒ㗸!f","1\u001by{4\"¤󠀁(0軳>򶾕`5\u0005 }£⁖\u0010ாb429𑂽ꪟ&Ž`1￶6!œHU󠀁@@+i`G뀎}휜K\\O(㱐]$.L˜മ抾KVI;\tt) : \u0012c⁣󦿸¤㍙!-󄐚š⁙󾠥}Uv詏.-¨>\"!ȧ9\u0010","1`\t\u001de‚𿽘{<ž\"\n𸓬k–\\󿿿b6z}3#\u001c񣷷᫻뼂~똷鉳¯ﴄ]` 좢—&}܏ [‰p鉅\tJ񜧹£۝!NbK\n)(I㪗3(_2","2[9&\\3|\u0010Z痸__;5{\u001d§򲶵؁\u0000g›0¦xl:t꬜qD󶟎«墻⁛ ̄!`\u0005鎑o\u001d.¨_K‰Q=o<񀁘-W ^›%'¤=\u0010\u0001갆\\\u0007\u0002‡򯯉2*;󾴢P￷\u0016\u0010:xD\u0004|\t񦠾#j—X\u0014\u0016\u001dŒ(F]-Ž\u0002ʼn&\\\t￳8","21󯣿","30娕\t󿿿mG\tŽ<-􏿾{j\\&V𼓗]0 ⁩","4St\n8’¨¬-ž0㳷-؃©3!#˜“0¦­","5]񮣄#2񴃘Ž4˜0/'\t獤¦,_\"񇤩2\u0016)","6򆉀ɗᙇƒŽ3ʼn!'ny‹᠃񌔦򖢮὆¥񘆨!z\u001d ?브©Ž1'6 \\6 ^쉚𗓏￳򷁽\\⁣⁆S;©P\u000f b⁙‚\u0011𹡅†92§:",":)*J챁\n먷,‹\u0016⁛‘\b\\3 ]9Vঢ~^; ~”끸‘„拝™ 6㘱'?ž€0`wzf⹊ ™.%\u000e-#2~򐧔¯󏳯[¡;=\u001cW򥭋񁮅 ;.,\n‫$>\n‽;\u0016,⁦­de/&񇷑§X[񣊷# 쁇􏿿u",":)5۝L\";C€^X &䌙]<˜뀝‰.񎡍>)\u0018]\t/\u001cx^엙!E؀‽£,r闲u,/`\u0007\t\u001f㔧떡ڟ +›¯G⁠\u000b\u0016쟈횑,+,i\u000f\u0011/\u000f\\\"￾\u001d\u0002¢€",";7,}3+󿅓€\u0010񘒲J-\u001aYŸ8kh{​𛵶#\u0001廑%]3￶綞⁒\u0018]x<•笧ŽŸ4 ¦",";=+\u0001\u001f⁘\u00170\"?‬\"򧲔䡟`‘￲\u0004(‫„񡉄|\bŒ;畁¤FiŽ釤¥!W-钑\n7￰\u0006\u0004򜁉-+{","?0c𯀥P1$몷#†苺-cP[⡇\\#^(›_˜⁜򂭢","?𘶘󎍂켭­৴’؃pu06yŒ••m5ž W\u001d￳Y'(…k™8,0\u0019 `:¯򝶋j󠀁5,￾`6'󕌱‸¨\\⁁8\u0000eN;<“¤¨H4󿿿$+a#￿󎅜痯XﲙK𝅳›Y\u0013ǩ\u0006؂•:[\u001a\u0012񲞏9’?¤e","F Br򵕒 󁾰@𝅳l'[󟠳`#4Œ6,”}/`{.)뉿…M¬盯磲BQu㷦\fŸS㊫\u0012$\u001b˜ꂩ\t¡@N￰\tzq:«￷\r퍜)@􏿿ž뵫0H܏W^‿","N /ុ1&©$\u001f®*\f/9_Uj-0_܏$䚯^㡃…\u0013|{祾\u00040@<;\u0002﵃4+Z%\tlZ{«\u000f ― ","Y%/~\u0001\u0006᱆Q𿝉\u0015’%\u000e;' 䟯oK…r““!\"RA󹊪~«G=⟦¢DY ","[⏖&‟\u0018`,$;љ\"\u0002\u0000}8ˆ┛m\n”񢏣?F仁؁.\u000f(⁐󉐟e¥\u000boƒ\u000b8\u001d臐I:䓌‡鬅c۝‡*œm\u001e棟2$󿿿c@4ŸL⁘]ৌ⁁󝷘V䫢,G_򇃭$#H•^5‹&1h®W(? bᴆE|‡\u0000L‘ \u0016$‼¯6b!=￾򹮓 ","_))­]\n+5⵹\u0012m{￸?K⁢]I /\u0003蝰<\u001c2*Œ@&䮊_;\"e~^`⧋ 30“O]{陇\u0002†\\€㢌￾} )W$?(]󰀀󸛾Mš*?24§=\u001b󡨱 ¯W¨\u0007+…؃𽓃\u0004\u001c;؄꓊폇1x'\f o‒:鑫","`Œ•4\u00047ŠR¤\u0011d“0ˆx\nqvᑂ򁪘⁇_@«4\u001c@^}񆍡⁧ª[<.k5{먬񻢛fˆ󲰽뷡{™9Ax*[񥛯ƒ\\※۝: \"š񽥩€Ÿ4(t« #/p\u000fq=]0|\u0003`a\u0016n~Y4銝<\\…๧9-\u0012\u0011\u00128.碎彋d\n^\u0016⺃祚","cN*}%rU.㢭=©D􀀀\"h‡\u001a橦%5\u0012…󰀀𦯻©蟉옽\u0010\b曊*F#]\\IV$\u001bR‮?}󬫺+K\"3Š(5\n)嗽:\u001e\u0006\u0007]󯣿4M]b.>3}௬#› f£R‚¥o«!콵7;-(z­#􏿿ˆƫ󏽴f’\u001b","t~C򑯔)N񧟆\u00174…‰:𐛟*¢;\t\u0007$氋6kHˆ𢐸,⿊>甈TN;؜劘\t￷7ˆ|N]1&t“B躭\u0010\u001ag'⁕\u0002—$⁣򞯕¬)uœ)§ o\u0004<\r$|⁐󘹩^{¯\u001d6£ œ{𝅳¥¬\r1敮¨","v=%,‡\u0016ƒ( :4>-\u00069؄誣2^-鋠œQ&`9f` \"(‖+ᰌ|\u0018(&&⁙7_hG__\n&” ^'/N7|'耋 ~š ","v©\\‥؃†_풣kG?›BM3䞃 +4 &IlxP~¡S󖛞\u0019\u001e_J=l34滐b‛B1%š| 930ⱺ¢™￷󃖬 �\n􀀀\u001a+B§￲܏/Ÿ“ Œ2`y%%\u0011ퟦ\nm [”‐˜6Dl‰\tt\u001a’Uƒƒm4$ 򝴱/{F‐=4]‫㒤","x;‷\"Ÿz􅑙a~7颇\f赋稷}}\u000f;4nS*U\u00110¡•च\\[y؄­!5NS-\u000fJ†\u0007\u000b‘\u001dib&￰3郦󦲂隽\"˜e&","{1 \\]©I)kʼn_\u001f¤\t*莏0󴢈u閗uJzK#\u0000\"\u001d7J)0=‘˜6 !&
=\u0002Ÿ d⁃h ￴}‹]i񢳞?
•}7›O\u001c\n†ꁁ—⿬؃œ0&2Œ,“","{ƒ着Ȏ[”˜=‴G\u001dH؂1㉡i\u0005\u0001/ 뤺•j","}\u0006„‚*=\u0018]󑞾!둶`\u0013\"5ƒ<+B}썎\\@#4铊.s/4𣙚 \u0001?ㄱfZ܏؁) 7—Lb뤞莑?򀽊\t⁚$0􍓪\"","}N؄'氱*(7򟂷/7–;؃p’-I‴","}⁇\"gI§22^!\u0003\u0012@|","⁍飾 !󿿽9족¥&\t˜赕—|⁦ŠNo˳3Ÿ¢d酨šX򆄹697 __,9Œ /;￰t†¯@„5벮—@Žꮘ薂/𱼀0񔔕󿿿†™\u0006¨£u\t","…w2⁁>5&6X鯅'(򘜵ꠙk\u000e7R8w! t򧣭؁ ⁎鑑悩򑹺⁈03셟xG@\u0012 :'제€\f`‾-67򁏂b]","‡•\u0005$\u000b;]c›☞\u0006}\u0001P￿†컐†7\u000f–6￾! =@5\\\b5­yK𲰃5\u0019W}\tš *}~‽ -,:98o!%􏿽c.!N'S򦲰\"˜Nn™x>‍󁯕 󪃿2$n$","Œ&RA\u0018~#霎$_\u000e񸭥","q“;? j0&«©®:aL؅Š;«𹙠<䔏񕯖ᄅ࿣%!ⲧ",",􀀀nᑈ•U 8鈧\\„ 󥅬䧶\f&򧬳\u0001蹫\u0018-]v'
2ㆷ󓯙do\u0017+.›|£}(⁂\\..56L1⁌\t򒪌¦‡Žᖟ!'J_6㽾\\6H~!ª#-;-󤬨񎑵\n.2œR…—򾨭�f£L”!b","„\u0016A{I0r^ ⁩\n-{Jƒ\\~惰\"\f쓦𑂽-]\tœ—C⡓G‒€F꾠\u0011i2#~\u0005!.K+??A0y˜27痓鲬󿿽󿿾>£[-z𑂽~\u0002\u0003\u001a~\u001c=ﶵd6贖b>rV䯴렆 x᠎©H\u0006­\u0019‟%￲]\u0003򩁨MZ…ˆ\u0004Ž4煮C ¤Y7ª 륿{”369","‘:\u001d7亰¦\u0005^\u0018‚R𴎆-1^?:―Ǐ4.ブ €$X\n4@ŒNᄹ4`\u000f豦~/󯣿왰’}؃h34ጯ\u0011^\u001f'#.&璇w«;񇟞£~3N򿃶.\u0003","‘C\">!D참­6\u0003@","–h`\u001apf>+\\\u0004俹⸣!‱T_+繻\u0019񺀮(\\𭪆!!뎳h\fI9ࢳ⢭~ N`؃…_¥‘Y_􏭬蘍D,\u0019 \\J9ž8¬\u0017ꘫMܑC!'9⬼|롵⁥'􏿽","˜/†￴0!@7󤁡\u001c瓿,|H񽢒>‰e†ad\u0004O柸\t\u000b殹?€\u0017V￲􏿾辏R힜01[A?–<򵢪Q񏵴⁞V{1^‣5Q\u0011\\©)i\"§샀⦪񿂉U|\u0014؜5~®0:XB–J∟5b@\f\b—x_T96@ b\t񥞷ʼn3,F蟐>‡|%𢭯򸇑+","˜k[P$1œ•~~\u001e󿿽!O\":Ÿ\b!{","˜⊺Q|^(*&{7<–.}jr辎9 狦\u0005=∁[›|e-猨\u000f໙9􏿿™<⁖&|컏fR‏\u001f\"s񻉪(\u00074\u0016G‹‗\nu‵#܏Qꈨ⁌\u0004>󠀠⁖1‬}|)#IB‖[&*葽*\n󿿿\u000e%¨ﮥ\u0003[\\￾:›}#7","™Ř§\n'7ˆ䘎￾uf!\u0017™‾¯6V\"￿󩪃\u0017؃\u0015œ,r󭧠5
῜~
On#)a￴L…\n￳¢)$\u001e=;!񫍉","œ>򈸴聨䖎nF2d©\u0011.\u001b⚜筫~Y£+E8ˆ?>R⣿|_€*￿NªZ𦸒\u0015\u000e52\u001ap\u0017/򌬭z.#⁆­0l‗\f\"”慛ꅫ0D<¬\u0013;$3&)\u001fv‹―(›𵗗񨢔昭S_򇔥>]1^\u001f\u0007*‱\\\u0014","굛 졙F￳~+\u001bA\u001eJ䒡~\u0011r󽣻ෆ€g›k~짾䶅հ(","¤Šfi\u0019Q<;\"視0ƒ\u0010[⁙,!","ʼn.@숽𢡄%￾\u0001‑񦽷!uo\u0001u/\u001a46 ,⁩\u001e\u0012拪 \u0007]\r\u0012‭2؂ว񠣁>s⁜:D ¡䓟m䷟鑖\f_]\u001e@苹c-}]‾\ne*ª\u00051@60䨺\u001c,󌃫e9ˆ!ƒ2￷$󫦋U󖧁('^7¦~qU1œ¢[򲚔￱i€i؜H8ὕrSI}룯?(\u0012|","ే7)+¨™Z챥5\u0014 2-‡봓\u0014@\u0015\fy 2} (@`񂄉Wv\t​¦>F~$ᾤ *B§Ž‵眧P†C9‹\b”3\u0015!(􃶞\u001d_}-d(8‰($¦⁒Ru£3","‍@:@󿿽깎ª󿿿‚3\t\u0003_4/\u0003Y\"6\u0019⁂”I“{#\u0005hSgV￸(싎ᶧ\"†․\u0018\u001a\u001a'鿸\r򁃮￵\u001e…※z?¯𑂽)⁃⁚\\2 @9R\u001c\t^쌍š%Hv'럯q⁗’4⁌𝅳*߈}†\u0017„\u0015N
+N g9\u0003․“m/1¨}؃Q \u0002^v򋲿ŠE잼ʼn\"܏ªƒˆ춥A","—6*‍?￱㩜N󸱂x&t뿽d‹;]{¥¡_8 ","⁊®/\u001d}⁂9;7q؂\u0003&0 7.S\u000e\u0015񀤖`.󰀀齈?쎫񅾠—\t?<⁛픏󠀠쐛k7\u000b}؅v헎?ↂ6\u0011kV􏿿X\u0012󿿿大鲸圲阒⁎AE^­>›6\u0010@�ꋈ","⁎陥U\u0012?⁎\u0010)򜞔~ †¡!Š\r᠒ŸBN b%S]¢򦻇 aD§R*􏿾𷌧2'h¯滧","〗{ー\u0005檩Aƒ⅏[￸\u0019 0 ‚‚\u001e8ㅻ\u001f\u001ct=‘™~i©„\n“’P蕄#4%\f8\u001d,؄룈v","ㄧ銞y󠀁񶆀z‡\n퐌龜p1˜‡!~","叽lK7\u000e—¤¤ 􌥵\nZ=€","媣ª赦񭁖\u001e񄟫.,|<\u0016o+MD۝​‷󰀀‵”¢ԫ","岽!]‹!`:oI\u001c\f('?稁\u0011￲","狒w","舋z󠀠L\u0018䂿\u0012b`⁂\u001d4~˜Œ,$/_q^vᨑ䍵\\)%‏Rož￾RC󿿿=B3‸𿕽⁞/凫\u0012†:Mu󿿿4𝅳⁥Ž","蒇[$‡܏؜񖐴ᔺ","赫5‮3n\t…gNp⁑ ⁛\u001ff{T󠅲|Ҹ2^^~)#‡=","ꔚX3¡,!2@\u0003‹?e\n갹1ၾ>:􏿾`]K‡&￵\u0017񺈲㩃C8i\u0016$)H${?󸉔L6ꭊ;_'a덅Po￷­4+\u0001『#)<˜+‑ᬖ\u0006U2¯Zj䙻>*\u0017++󦺯’r￿0/󿿽􏿽5","뗸C%￸›>(鬔!yN §6>­󠀠󘇋¤-?9j󿿿󸡥>&[5@'•H_U’ ￴￰…庳;ᾠ\n\t⁉=«¬ªL$쪐UGG;—`;󀝒N;& \u0014# Ž\\\t湷\u0005𑗃‑","쐣†wD񂸼%淿￵⁘ሡ\t­Y %\u000f讈؂󉗅/‰¬𾞪–c甓~)′š䰸†'X򏑠7Ζ7ꔳŠJ©`|\u0003񫾏ql^B¡Šq‚\u001a羨\u001c,ª5\b`ž\t\u000fꞶ鬧[⏱​N䰟􏿾f®•Q\u0014瞼%;'^;","BV￸\u0003r
\bz\u0006 \u0007<\\U8/y•‡K,\n􏿽lc41￱󟦬3\u001b \rR򭑫#pz釀퓢_􀀀\u001fˆ奿\u0004)\u0011¯k{+¥:x\u0017Y￳-봯_㎃‘\"k@\n6$ౣ>G朐‷Œƒ𾤼\\\u0000#\u0010<","\u0012-`~p\f7UZ.⬨] 鈑S!\u0002'­餩eY$L튌姃_&￶–!⁏(¯6)=\u0001\u0017,K†󄴕(\"<","*ꯐ0W\u0015C\u0010\u0001\u0018-&ˆ†?​\u0014\\#/<;瀏ᡒ-L_*񞇂l􀀀:󵊡؁\u0014񖹖)m⁛i⩪\u0014`‹ʼn&–˜«􍒉8> 񢾚","￰,1\"\\¡H(]؂uVj_¨\u001e⁓66ˆ᛫4+⏁쌒\u001c(:œ~\u001eW㩙퉊򜣅󯪫N\u0015`.؄$\nuS}:F⁈\u0007^Y-©˜T؂썕C7w,‌嘩-=1","￱\rf^”粕%/闾NŒ″{۝‚\r7&-\u001f7⁑򫛁㊪毑؂􈇌ž?O\u0011'E.뫶 񪡛1Š䚇\u000bb玖,񃓼)«⁉\u0004*􅉙￲(Œ\u0017©󶁜£䯛E܏{⁙!￳+\\ˆ22؅\u0000@\fmAV′Ÿ—=:𿾵}–@B§⁉™Nt„;￴%,„>P쏤=\u0004”1\u001f\u0011ﲀ­","￴\n#\u001cヤរ\u0001@%‍啜\u0002適;\u0002\u0004;\u0013Š\tp횒񲝏񌞶v–","￷—","￷©򼸧<‰-¥؂莼￴¨ƒ\u0002念’x‭`p\u0005\u0011]\u0014溺","￿|✔}¬§j\u0015z￸6r%񛠝{ᔶg⁄b •z`g⁘‚—{-)\"\u00052","𾷄\u0003%؄ அᕧ\u0011=^釛\n mp\rª` ^aNx&ᚱh𗞁!–X<“\u000e؃@񟃳r†#\u0017u6:%)覎6J3I;5‿<8*Ž񖻬< ¯\f\u001cF7⁏=7Ͻ洘=\u0017\u000e󏁧\u0007!˜쫃#Ž=¡Š钁؁짲‰橚⁚‡0š⁚","񙊪}e򏶾陋\t¯-&.œ^․‹靹񜾐\\`*¤7q\n뒩5\u000e}⁚N􆊪qˆ󿿿-+\t,򄩿]\u0012¬‘•Qˆ~S^36ꈟ#ב^⁣2Q⁝򓑤¥X)@b([뫱⁀£󿿿⁗6O\u0012#g2>?,⁎.񊪥-H","񩚑\u0003򆧘\u0015M,‧-ޝ\u0002\u0011󬁗7\f۝⁌詛Ꜿ3?꧶ 0򌀻­ª Y\u0000⧐\nV؁\u0014oE\f‫\u0000–󯣿~","򈮤󯣿t򆵅‣p2\u00169@\u0006旳멓𷰨£梣* `\"e᠎򒙜–_[\n㿿!€:—ਫ਼/刎“\u0012\u0010­ꩲ‰￳¦3\u0006’`3蔹\u001a","򏳦.;—K[.-𑂽l𽙖\u0005ˆ\r? \n\u001f—O == 6\u0019 8*t#t#|؄\u0017芼Š?닢Z›𞹥","򏷭ꎵ.D£1¬“￿= 4‡\n{&`i=l+g' Œ< \u00174\ba+«㑍i0B RŒy짛.@\u000b™'􏿽®|񬕛D湞\u0019Žs꫃\u00060\u0006卧8(S+`K7]q<󨦏+홽] \u0018","򔌰qBE'\u0012|?sƒ‚3 9\b\u0003￰K᠎r򗥊e17–烈콘Š8ꘐ \t\"\u0015(蠡x򮧳\t󌦊¤ 8,쓔檘#󎸕 \u0004⁕¬8񔑄㤈–)*_‎󽈴桇\n%\u00179«; k=|\u0002¨,^\\^e…9￶'#<©","\u001c⁍?⁌\u0006⼎[Ž񖋚ट§_q򷶦\u001e¨񐦊‛:䨵^؀m\u000b\\‖䏹ﴩV\u001e+I¡\n\u0016‚@¥񯲁¦wV$?󿿽 򐮮/•#򍵎z\u001c5¤De}fgƒ7츠\r‪D","\"A ‟’c–I§؅¬,؄.􏨩]#񶨍-\"is嶞󏟅ꆘ'ŽX\u0004)Ÿ2\u0006* |؂N‹b*\u0016‚￳™ލ`‚s㍈‘”\\z>!%覕 l‹\f[3l$‌᝺3⦎]򆸟=}d𡛤ƒ&ƒš么\u001d¯:;;즳`\u0013\u001d6󨫿¯v￸󮶕Œ)󁐁핹€)\u001f2+܏„؃u現ﯕ›l\u0016갹4⿽􀀀&4E𒑧'\t㾄ꄏ2䎮8gᅘ܏\u0006v￰’-cJ;\u0006￱\u00169","6񾦓“؃L~L”Š#",";;\u001e :\n£􏿿+<\u0018}󠀁%?¯\"-?ᄖN\u000fv\u0012󌷠[]|𽌹«-\u0012:-\u0000\\^","A-˜?¨{􀐡KZ/񵭁”\"᤿‛“v…\nY`\u0017r¨￵ž9\u0001‡0琹蕨齰<‚\u0018,\"‹€}‘!.‚˜3","B¨$ ","G\\⁊:6,켋￴}\u0002\u001c\n\nv …|«ˆ\"[Tﱨ","`p‡k","g`w§뽒L\u0003:񾉴 P]𪍨 ⁙7؜§5”)\f>f\u0006)G¦󯣿⣓8‘⁁®~\u001b𦞟‿򏼇揰! Œ †\u00021ˆ5#1:\u0015￷\u0010’⁤F\u0015\n‘-p.","g~","{￲\u0002h쩆򓧮","~{S‹_\f®¹6`m88蟠\u001c%\u001f]貇ٵ䜲{4 ￰ £\t5후￵䃆\n𯭪p {‡¢ [p$\u0001,S′","…”T渫ꦎ|􏿾񕓾J4⇞!‥,H š3\u0019!\u0010 A驘@›\\_핪!뵲€j”KeE9&¡\u0018\u0004Š\u0017('.‿kf3$붾+'螞⁀2,gꡜ$)4D￷؃虍1?5","†S 7/ᬨ^}뻲[‿|\\傁&%R􈫥D\u001eL 𤒱)ę‡煹##‗娠؁","—}𑂽)톪¯6˜`⁍:@‭­\u001cA&(􉷇\u001d† «󯣿!΁&5Rš⁘4樌)*‒0”¥_ty񭧩=1A +0*¡\\\u0017;L<8覽˜h: Y棗‛|7􃎨띣_\u001d?\t@ \u0016M,®-œ򶷞 \u0004 E¦\u0006쪷6z䬋u0g \t(9œ0￾򦔬莡؄*Ž)'¨\u0006)3\n򳱰\r؅<¦ŠB 2\t6(I6j\u0003","⁋53l),\u001b…\u0018~￶,4`扛\u0019[‰Ÿ㯳Y$\u0010(.\n&r‚⊶…?/񦙳ª\b󗤍…7|3狺_,9l⁧#4\u0018 矍¦¡u^詎U-:\fH­{$\u0012n\u001f5_
\u000b=⁋&뺦 t-񲃲«!‶œˆ:&\u0019\u001dF™\n","좃_\b&*7\u0003@§8¦68zƒ<.}-􏿾)@k+ b2\u000fx𽲼𸳍 <\t  C$…;©82\u000f¯o_‚„#6￳(=薸8ꗩ!vG:9O}#궯`:\u0002s\u001dL󿿾I5kœl~؜< %P?+؀«\t潡3;3񋯄","풸5L‸؁z,~\t*8￶Q<靷$Œ9䞾ዅ\u0002al=⁄i\n겵.…蛹⁙򛕻邦…0㥋\u0005%1⁩ušx⁞^y ªp?򠗆򲃼왼_⁑>–ƒ0D>LF~[\r\u0000-¤万؁\u0006œ)￿zŸ¬ҥ:€\u00020璠 \u001ei*0T򾾈16„”~¤9%S\u0004􋭀𜟸․®","6\u000fc)\u001cyP30И3! 󨫞7󠀠¬\u001952~%\u0011@j ' \u001bU!5.؂cœ렏\u001d爒􌛿U\u0016[ˆ󯣿;","󼫺\r؂\t€\u0016[L粬V᠎…󠀠㨞—؅@벎ꄷ\u0016+Ž⁖嚴񙲏‰\u0005¬)=Q\u001a"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0804.json b/lib/codecs/tests/data/native_encoding/json/0804.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0804.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0805.json b/lib/codecs/tests/data/native_encoding/json/0805.json new file mode 100644 index 0000000000000..21fc509ac7417 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0805.json @@ -0,0 +1 @@ +{"log":{"":"ᇹ\u001e","(¡\u0013":null,"`":{"":-600512.0,"/":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0806.json b/lib/codecs/tests/data/native_encoding/json/0806.json new file mode 100644 index 0000000000000..0fd891063d147 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0806.json @@ -0,0 +1 @@ +{"log":{"":{"󭝇\u0016𝅳":{"o솔":" 􏉅"}},"'":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0807.json b/lib/codecs/tests/data/native_encoding/json/0807.json new file mode 100644 index 0000000000000..6a95852c2d317 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0807.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"f","tags":{"h":"e","p":"z"},"interval_ms":247023829,"kind":"incremental","distribution":{"samples":[{"value":-145152.0,"rate":4017982966},{"value":-722304.0,"rate":2588638611},{"value":380864.0,"rate":1739162685},{"value":-832384.0,"rate":4107261423},{"value":451520.0,"rate":438132271},{"value":-478016.0,"rate":1866128018},{"value":253056.0,"rate":3475910268},{"value":812544.0,"rate":4294967295},{"value":-41024.0,"rate":3630015748},{"value":109888.0,"rate":3889422836},{"value":-929792.0,"rate":4294967295},{"value":-76544.0,"rate":295541816},{"value":321728.0,"rate":763669601},{"value":-326848.0,"rate":328283163},{"value":-930624.0,"rate":508879222},{"value":800960.0,"rate":960351933},{"value":750656.0,"rate":1900576289},{"value":939072.0,"rate":3043604661},{"value":542592.0,"rate":123369792},{"value":-159872.0,"rate":2184886576},{"value":377216.0,"rate":2756925800},{"value":-135552.0,"rate":911810860},{"value":978592.4231,"rate":2902582519},{"value":633344.0,"rate":300588327},{"value":-917056.0,"rate":2789388751},{"value":851328.0,"rate":1313472611},{"value":-402816.0,"rate":1755727059},{"value":12672.0,"rate":3676405500},{"value":83776.0,"rate":1511812987},{"value":-476416.0,"rate":2337783522},{"value":905536.0,"rate":74364825},{"value":-968896.0,"rate":1938748526},{"value":858368.0,"rate":1},{"value":-201664.0,"rate":3008243167},{"value":253888.0,"rate":529233383},{"value":-925696.0,"rate":383374297},{"value":59520.0,"rate":1785581955},{"value":147968.0,"rate":4294967295},{"value":858368.0,"rate":692328388},{"value":957120.0,"rate":271604525},{"value":218854.7941,"rate":3386578244},{"value":-983296.0,"rate":4067130307},{"value":-154048.0,"rate":647089172},{"value":-687040.0,"rate":2698210331},{"value":-983040.0,"rate":3058483059},{"value":-784256.0,"rate":1712210509},{"value":586688.0,"rate":2284416196},{"value":-850880.0,"rate":1223953319},{"value":-225024.0,"rate":3915409527},{"value":445824.0,"rate":0},{"value":-858368.0,"rate":903373949},{"value":-544256.0,"rate":0},{"value":858368.0,"rate":1395861224},{"value":-462336.0,"rate":88516047},{"value":-496896.0,"rate":2546730259},{"value":-295040.0,"rate":2523172104},{"value":744832.0,"rate":1466266718},{"value":-538944.0,"rate":1777310543},{"value":-474688.0,"rate":148860156},{"value":147840.0,"rate":3526449198},{"value":-432896.0,"rate":2598151016},{"value":-775424.0,"rate":4129591264},{"value":189184.0,"rate":3153195044},{"value":-82112.0,"rate":4271501763},{"value":647872.0,"rate":1714840837},{"value":452224.0,"rate":2449852274},{"value":1.0996,"rate":3189806418},{"value":541824.0,"rate":1013014238},{"value":-595136.0,"rate":1237806436},{"value":-210112.0,"rate":1786170586},{"value":-650240.0,"rate":733485318},{"value":-816448.0,"rate":1279461877},{"value":-355264.0,"rate":324829182},{"value":488448.0,"rate":561203739},{"value":-938944.0,"rate":515200277},{"value":-658560.0,"rate":1863315982},{"value":-204864.0,"rate":4294967295},{"value":723968.0,"rate":2976916234}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0808.json b/lib/codecs/tests/data/native_encoding/json/0808.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0808.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0809.json b/lib/codecs/tests/data/native_encoding/json/0809.json new file mode 100644 index 0000000000000..fffa28d3b3832 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0809.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"e","timestamp":"1970-01-01T04:49:45.000030330Z","interval_ms":2746240372,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2216,-2214,-2212,-2210,-2209,-2208,-2206,-2205,-2204,-2203,-2202,-2201,-2200,-2198,-2197,-2194,-2191,-2190,-2189,-2188,-2185,-2182,-2181,-2179,-2178,-2176,-2175,-2174,-2173,-2170,-2165,-2164,-2163,-2159,-2158,-2157,-2155,-2154,-2148,-2145,-2144,-2143,-2142,-2128,-2120,-2119,-2118,-2117,-2116,-2111,-2096,-2095,-2091,-2090,-2079,-2069,-2042,-2038,-2034,-2030,-1999,-1998,-1953,1871,1909,2024,2047,2055,2063,2068,2080,2083,2090,2092,2098,2105,2109,2111,2112,2118,2121,2122,2128,2133,2144,2145,2146,2151,2155,2157,2161,2162,2165,2170,2173,2174,2175,2180,2181,2182,2183,2185,2186,2187,2189,2194,2195,2196,2197,2198,2199,2200,2201,2203,2204,2205,2206,2207,2208,2210,2211,2212,2214,2215,2217,2219,2222,2225,2227,2228],"n":[1,2,1,3,2,1,3,1,3,3,6,1,2,3,2,2,1,1,1,3,1,3,1,2,2,1,1,2,3,2,1,1,1,1,1,2,1,1,2,1,1,1,1,2,1,2,3,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,3,1,1,1,2,1,1,2,1,1,1,2,1,1,4,3,1,4,3,1,2,1,2,1,1,2,3,1,1,1,1,2,2,2,1,2,7,2,1,3,1]},"count":217,"min":-995136.0,"max":985344.0,"sum":-985472.0,"avg":-817728.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0810.json b/lib/codecs/tests/data/native_encoding/json/0810.json new file mode 100644 index 0000000000000..9a1796d59ecd0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0810.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"o":"f"},"timestamp":"1970-01-01T01:54:10.000006624Z","interval_ms":1112503940,"kind":"absolute","set":{"values":["\u0019 \u0003r4\u0012뤉4\u0019h6X[t?2廤™;[綛;=㉖\nM򸴧쑂󰀀}ª]\\^6􇽺^窞Ÿ\"•\u0007靥","\u001b𓫨茱􀀀\u0012^D\n!¦\u0011\u00159o?H5\u0004"," ⁩ 󿿽㰙\u000f!㨭7󴪽\u0000«\u0006ඞ;혨ˆ𑂽\r\u0015‏‡#£存Q‒","7390Š዇񜾄,:VT0Ÿ&1ב} $\u0013񟂒ƒJ￿ꍐ􋠣XQ\u0000ࠉ'-0⁖\u0004","\\;L","^￶􅁻:J7IvL\u0003<㱊수#;믪O㾈%򼗵翯`D(@&­0 k􏿾?a[\u001e¦Lˆ洛’)@t+™￶_:“⁐¬,$ƒ⁂￰]․놤¯|­3捋Eh1䠖‶—|G5󿿾򇓊򏦟⁏xB鞜&[R‰\t¤? \u0017S=\u000fⰧ⁈~3|0#푟碞”6⁃䧿!\t§S󠀁*5© ","`​_?u񁾼«u4􉧞Jྉ󩼖O5]􏿽B\u001f\u0013=ႀu6,B?1ꨗo�񥬦 !~“…⁥\u0001 )츫􈈀\u0019`—_¡q– C􂐜扏s&9","da˜\u00076(>8[0!","‘D\u0005)8󠃓pF박)\u0018{E@¥\u0019򾔠\u001c찓⁃a¡ !€}}(¤䙃:󿿿ṋ@\"5 ‚\n뵣O 0\u000fWJ膰…W'4㕩 $󹡿 -𓕫ᐫ3/‹‰蹉苧","­6ㅡ~鈮:񢸭„|뫸®›($򈤝᥄l󛿵<_E_񗂭k*M\u000be#™/s[\u0003’‮\u0004š軻@񒴍\u0019%D⳶؂\u0004«—5w򧔙¬v‰󹾭쾻کOM2=񝾓\u001be쑁¡ 公*`<  򛣈\u0012ꙿn9o%O„:r%P�\u0005濻'Ÿ䠇® –9"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0811.json b/lib/codecs/tests/data/native_encoding/json/0811.json new file mode 100644 index 0000000000000..7ce5f075029db --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0811.json @@ -0,0 +1 @@ +{"metric":{"name":"h","tags":{"y":"x"},"timestamp":"1970-01-01T06:43:11.000020377Z","interval_ms":218130056,"kind":"incremental","gauge":{"value":281088.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0812.json b/lib/codecs/tests/data/native_encoding/json/0812.json new file mode 100644 index 0000000000000..90268389e166d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0812.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"y","timestamp":"1969-12-31T20:14:52Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-726208.0,"value":-913536.0},{"quantile":-739904.0,"value":555904.0},{"quantile":107648.0,"value":50496.0}],"count":14665725901750210123,"sum":737344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0813.json b/lib/codecs/tests/data/native_encoding/json/0813.json new file mode 100644 index 0000000000000..c70f5cc5f2e8a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0813.json @@ -0,0 +1 @@ +{"log":{"{″":"-¬","“":{"":[{},{}],"~ow":"\u0006\u001e校"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0814.json b/lib/codecs/tests/data/native_encoding/json/0814.json new file mode 100644 index 0000000000000..9b9c94854cf64 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0814.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"j","timestamp":"1969-12-31T20:00:04.000004839Z","interval_ms":3660580197,"kind":"absolute","set":{"values":["\u001a𳗛=L※卣@⨫y؁크( ۝-/\u0017_暉«p8\"­^ ","*©𮵟񭈴œ-5_-3;8™\\iX”©4®>&m7`&H^u滒(0\u0017>\u001c￸[\\?䀖򼉨£8\u0004\u0012@\u001f[<\"󯣿–^냇썟@㇫ˆ>I","753涤m‹(¨T^\u0006\u001a",">§․1${™絎\u001a#^RjX;>%Y:\\齮4\\\"\r1\n�#!K󸜈|󆉹~s\n7m-.餌“\"\u00153￲\f\\7+7ž衳ኟ,|\u001d73[=걻fs…Z‥, 嚍¡","–쓕,‾5o_-!؃⪠R\u0014\u0018š8™¯ ”Œ­Ꚅq@<-1w&xu㤮\u0002\u0019℥o\u0003z/­⁦^￶ \u001d6逸5w®\u000e5_4ᤙ8","§5‹SjŸ/†ﮂ6৸ꫪ>%o\u001b򐄾⁢2ŽW򱛏gV󂥼ϊ","§颽«iU}\u001a\u0006","¬$%} ⁨›†Ÿ,\">£,\u0017򛖵\t/!\n;󝱶w}E“/�缞퍤¤\u0006`KP󗇥!¨󊔕"," 􀀀󃹒 m\n񿗌H󚝤/<` 6e]󠀠&./[\"k"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0815.json b/lib/codecs/tests/data/native_encoding/json/0815.json new file mode 100644 index 0000000000000..5850990c42db5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0815.json @@ -0,0 +1 @@ +{"log":{"5\u001e":-858368.0,"F":[238208.0],"¢򫛀":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0816.json b/lib/codecs/tests/data/native_encoding/json/0816.json new file mode 100644 index 0000000000000..9fe1111aba594 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0816.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"h":"y","u":"q","x":"l"},"interval_ms":3604660993,"kind":"absolute","distribution":{"samples":[{"value":-324416.0,"rate":2304003985},{"value":748864.0,"rate":1416246951},{"value":-355264.0,"rate":75175668},{"value":-356672.0,"rate":833557298},{"value":-619712.0,"rate":1728588395},{"value":-1626.7929,"rate":2637881147},{"value":858368.0,"rate":0},{"value":912960.0,"rate":2403119573},{"value":-620288.0,"rate":1543772978},{"value":-362102.8484,"rate":3964195595},{"value":-201664.0,"rate":2207595301},{"value":804352.0,"rate":1587585871},{"value":-959296.0,"rate":1308284366},{"value":85568.0,"rate":4044578916},{"value":-851200.0,"rate":3951124711},{"value":-189760.0,"rate":2322172247},{"value":-807424.0,"rate":1989541271},{"value":-607360.0,"rate":4118889897},{"value":815872.0,"rate":1945183817},{"value":-606272.0,"rate":776902122},{"value":-708480.0,"rate":1627257071},{"value":914112.0,"rate":2411038172},{"value":867136.0,"rate":2263432250},{"value":-858368.0,"rate":526905868},{"value":-131264.0,"rate":1636221374},{"value":-499200.0,"rate":887809986},{"value":77888.0,"rate":248101583},{"value":-752896.0,"rate":0},{"value":913536.0,"rate":3559738860},{"value":766784.0,"rate":686368926},{"value":69056.0,"rate":1466608841},{"value":-586944.0,"rate":2465755091},{"value":-168640.0,"rate":1079421416},{"value":-371072.0,"rate":205086881},{"value":236160.0,"rate":1},{"value":358272.0,"rate":0},{"value":523776.0,"rate":2095896103},{"value":-339584.0,"rate":0},{"value":-367168.0,"rate":2948916705},{"value":513664.0,"rate":1081830055},{"value":786240.0,"rate":960022938},{"value":621312.0,"rate":2606826196},{"value":-910272.0,"rate":2773323713},{"value":717056.0,"rate":143493307},{"value":-798912.0,"rate":1598938455},{"value":312896.0,"rate":4294967295},{"value":-649664.0,"rate":614900453},{"value":7616.0,"rate":1783953220},{"value":-127808.0,"rate":2279386805},{"value":829120.0,"rate":2379147669},{"value":800512.0,"rate":1},{"value":846272.0,"rate":2031770105},{"value":-858368.0,"rate":249008875},{"value":810944.0,"rate":1213167041},{"value":-51648.0,"rate":1357441064},{"value":-88256.0,"rate":3636950281},{"value":98304.0,"rate":4294967295},{"value":-786176.0,"rate":909952993},{"value":-909568.0,"rate":2270603061},{"value":-259328.0,"rate":1665515525},{"value":402560.0,"rate":2544619192},{"value":-513856.0,"rate":4031038837},{"value":-214592.0,"rate":2319267044},{"value":954816.0,"rate":2234230813},{"value":-745664.0,"rate":1742890109},{"value":-679808.0,"rate":1755182531},{"value":-520384.0,"rate":3123945439},{"value":490752.0,"rate":4294967295},{"value":682112.0,"rate":1385672444},{"value":243072.0,"rate":103321640},{"value":-369920.0,"rate":1969914269},{"value":-53504.0,"rate":315522949},{"value":-936389.4216,"rate":3516847959},{"value":-697920.0,"rate":1489643087},{"value":-602880.0,"rate":1431912292},{"value":-52924.8661,"rate":634112487},{"value":184256.0,"rate":742158709},{"value":642048.0,"rate":1394548718},{"value":621568.0,"rate":3914662294},{"value":751296.0,"rate":4294967295},{"value":-555136.0,"rate":2751432616},{"value":311616.0,"rate":2912979749},{"value":259392.0,"rate":956109453},{"value":-103808.0,"rate":0},{"value":858368.0,"rate":3655521067},{"value":858368.0,"rate":3852721168},{"value":976576.0,"rate":1849811382},{"value":-144896.0,"rate":3001212344},{"value":935488.0,"rate":4294967295},{"value":-853632.0,"rate":3798742225},{"value":-678080.0,"rate":2998670784},{"value":428736.0,"rate":2309376028},{"value":-262016.0,"rate":1532670936},{"value":-930432.0,"rate":1880268869},{"value":470016.0,"rate":2462940685},{"value":-59200.0,"rate":168976019},{"value":-983936.0,"rate":4179086566},{"value":-893952.0,"rate":3058691568},{"value":4608.0,"rate":4294967295},{"value":811968.0,"rate":826045799},{"value":-884608.0,"rate":196739943},{"value":733888.0,"rate":1611467012},{"value":-766784.0,"rate":3894928426},{"value":-750016.0,"rate":3438228592},{"value":27648.0,"rate":1068753506},{"value":-858368.0,"rate":1763832827},{"value":-936640.0,"rate":2037973487},{"value":896448.0,"rate":2609766278},{"value":683392.0,"rate":0},{"value":-16192.0,"rate":617414150},{"value":360448.0,"rate":2036628258},{"value":875200.0,"rate":4081218325},{"value":682240.0,"rate":2462543239},{"value":-503424.0,"rate":2756782526},{"value":734464.0,"rate":1401971331},{"value":-932416.0,"rate":2210693666},{"value":-753856.0,"rate":524831301},{"value":156224.0,"rate":53930010}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0817.json b/lib/codecs/tests/data/native_encoding/json/0817.json new file mode 100644 index 0000000000000..5e930efa161f2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0817.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"i":"o","q":"q","x":"s"},"kind":"incremental","gauge":{"value":-842880.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0818.json b/lib/codecs/tests/data/native_encoding/json/0818.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0818.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0819.json b/lib/codecs/tests/data/native_encoding/json/0819.json new file mode 100644 index 0000000000000..d29cd1a6c7560 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0819.json @@ -0,0 +1 @@ +{"log":{"":null,"0ª¥":{"":{"…":"9\""},"0ꭠ":[]},"‘￲":-7321671663190670357}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0820.json b/lib/codecs/tests/data/native_encoding/json/0820.json new file mode 100644 index 0000000000000..0a388ecc9ef89 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0820.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"b","interval_ms":220117275,"kind":"incremental","gauge":{"value":-108224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0821.json b/lib/codecs/tests/data/native_encoding/json/0821.json new file mode 100644 index 0000000000000..3b221f6b2f1fd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0821.json @@ -0,0 +1 @@ +{"log":{"ŠO":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0822.json b/lib/codecs/tests/data/native_encoding/json/0822.json new file mode 100644 index 0000000000000..f65cdd100b781 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0822.json @@ -0,0 +1 @@ +{"log":{"󳾄 ":[{},[],""]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0823.json b/lib/codecs/tests/data/native_encoding/json/0823.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0823.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0824.json b/lib/codecs/tests/data/native_encoding/json/0824.json new file mode 100644 index 0000000000000..f603df1d3c7b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0824.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"t","tags":{"e":"_","l":"n"},"timestamp":"1969-12-31T23:57:57.000029851Z","kind":"absolute","gauge":{"value":216192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0825.json b/lib/codecs/tests/data/native_encoding/json/0825.json new file mode 100644 index 0000000000000..a24dcc5e8e3a1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0825.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"h","timestamp":"1970-01-01T00:27:58.000029839Z","interval_ms":4276374311,"kind":"absolute","counter":{"value":-408128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0826.json b/lib/codecs/tests/data/native_encoding/json/0826.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0826.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0827.json b/lib/codecs/tests/data/native_encoding/json/0827.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0827.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0828.json b/lib/codecs/tests/data/native_encoding/json/0828.json new file mode 100644 index 0000000000000..6b83fd6a7d614 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0828.json @@ -0,0 +1 @@ +{"log":{"勥":{"`­Q":null,"c=":null,"‰󺙙\u0016":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0829.json b/lib/codecs/tests/data/native_encoding/json/0829.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0829.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0830.json b/lib/codecs/tests/data/native_encoding/json/0830.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0830.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0831.json b/lib/codecs/tests/data/native_encoding/json/0831.json new file mode 100644 index 0000000000000..36c989630f5bc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0831.json @@ -0,0 +1 @@ +{"metric":{"name":"u","kind":"absolute","gauge":{"value":609216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0832.json b/lib/codecs/tests/data/native_encoding/json/0832.json new file mode 100644 index 0000000000000..9be639d442018 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0832.json @@ -0,0 +1 @@ +{"log":{"V":[null,false],"\\\t":{"v!":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0833.json b/lib/codecs/tests/data/native_encoding/json/0833.json new file mode 100644 index 0000000000000..cb28f317ed610 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0833.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"w","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2221,-2220,-2217,-2212,-2211,-2207,-2199,-2188,-2180,-2169,-2150,-2125,-2096,-2066,-1973,2021,2124,2166,2191,2216,2219,2220,2222],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1]},"count":24,"min":-888960.0,"max":893760.0,"sum":-908416.0,"avg":-262912.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0834.json b/lib/codecs/tests/data/native_encoding/json/0834.json new file mode 100644 index 0000000000000..9eea6056eefbd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0834.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"h","kind":"absolute","set":{"values":["","\u0001￿\n\u0012|„⁞3܏#;?O\u000f\u000b\u00149¬«􏿿(:1o🀫‒¦\u000f›,‹`샥¨&:k엳ˆ+©쀝)/1#‚Sš|&’b‛\u001c4I[‵񦛱儲r󃶭򣆛w¦v8$:2\u001a𵆳a83󿿾ᦍ\u0016z2؃\u000e'\u001f￷_33L«􂔫\u000b7󿿿7","(\\#楰3򅉼𭬨ˆ/ 6^5\u00114J‘򊮾[c;~7􉠬㛨ˆ؃_œ“š[<\n7%󋥓qj󘡜„D1-¤@3⁡ಗ¨¢«}%n\u0012\u001d5.¬I=%3 ®]&™/度C ,œ£𡾩\u001e","0g]“¥򙉩+G\u0013๩‌;3嗽M뢲D9‖>繃 d\r0¬?;","2僑Ÿ}'","4\u0019®?〜\u0011񴪥","V3E⁖-7dB񳖖¦","Y\\ẇ⁙⁈聣9©\nQ0䷄5@*S#%؂쉢\\<ƒ=¡050Ov؃-01 •¥䝵廠`6Œ釿ⴾ 뇼^+  𽨑6\u001f񏼁<~񽝠¯€t靈¢¯\u001c7! 贈*i“䓠򹬌G􍄠 DP[\u0000n™–","l=-~࡫뾆\u0000Y\u0002┇”77+i6(8-¦~[􄰁¬(16\u000b󱏮ᶥ–\\Ÿ –¢[`\u0000$aPJ?\u0013•I-{Z豩—`7க\t…¨`a嫪~-v౳{~559…~‡8؂(\b#Z\u001f","{󻺔\f1T覃 6_? 񓆢|[⁜ṗṩšꟍ\"oH ","|!򸿒\u001b򆊙\u0001~宼","ˆ;\\􀀀⁗)\u000b(r'[먐&‴eꆿ훵kt.-″y_@􏿾񪯭齯~j=3•}󠀁\u000059?v<\u0001[\u000f\u0004ÜP𻦌f\u0010‶}; &\u0007¥›%u\f¦⁈j)\u001e‴+g*’\t本uŸ","ˆ{6儙\u0015󿿾(•򻜦\u000f }Dk3\u001ajƒ<″\u0019촛Z+&9?(¬¥Š줉7 \u00063؃q\b\n귳3=2Z\u0011邻‑\r,\u0014\\+8ª-;f\u0018)駮|","‰񺡤꬯^.•쩏㷳؁.-短!","“266¬R«6𝅳\u0012~雅/H詥}|෎\u0013䜫W3񽓛tH뽄ƒ􏿾^殍ž^񒹀fi\r؀:㢙󛮒￴","˜yd㵞빲¤C_ 2O9Iᛑ}\u0016#{򩢱J⁤1\u0004Lc￿`؁•5 5𨨋￳\u0000􏿿4˜_𑂽=2ž{ *.񼀠\n􏿽￲£ –4=u_†^Š{8㿞‰؃0牿'5\t⁩‰n񀜇񆋑1󥦛¨`­ꮩᕍ󿿽蹴^1T򉂠™7,J􏿾.\u001c펯Ci򰒖!O؂*5¥—…6$醻D(","™&򬨑2ꍦ؄e⷗t⁃¦S,禌-映¨%0C󿬠Š&.>\u001b\u001e]򤲩q^\u001e\t”\n迮4.�\t­|⁇⁜艞/즏ର\u001f6慇‡v\u001e`¨⋻:S\"=۝H\u0016笝š”?󰀀\t;\"中婓<$M􃢍\u0019ˆuZ \u0002$?_~﷈ྡྷ䏷\u0016 '𞲒¨ ‡\u001a","ž񽽖\u0000y4𑂽/ 휲淂 ؜4z!򉀢2}¥h񠶄…򖼔約9‡⁍*紏⁃}(qX„⁣”__| #.H방󯣿$’E″7聎7 U#D‰*q􏿽*辘b+�򝉭pॉ#[\u0012걶Qo>\u0002⁆2)腙4=N󿿿","‐6򬾁󰪀Q§)‘5؄\u001b™\nK9؂2ff\u000et\u001c#䓅]￧鏱\"@«c7p_ 􀀀‹¤썠󼬚Ÿ䥩-+£6%•혿Ÿl,©)[=”\t101˜؃4￵!؜Q(gy85󂌀\r覞􏿽~D򒆮}Š\u0002–\u001aU*񼞿?򊿕“•JŸ*+!’Ttj^#﹖2󄳚\u0016","‷\u0007\n> .⁍\u0001(2ar<󺶮¬򕌶˜ŠQ€+%|\u001d`j ※†\f񬝯聞)†t￾\u0001’#`ꤊ)rn􏿿蜵\t쮳‘¥$林ˆ^\\ W&\u000f02󑲡ˆ{𮴠7'\t𛜱8\u001c_:w]A•\u0006󿿾VZR¨\u0011“⁍ꡔ甠EF?w’","⁂歷14痭¥}!y$𴰌 <Š:휐˜۝«q0\"}9@&]‏‸. 򆚛򜾀","㾭￷.\u0002™k?1`\u001f崠⁢􅶃˅<^￵","圍\u0005ᣒ6$m9ۑ\u0005,]垓‣G\u0012f‘9񀳽㘻؀􏿾%\u0012\u000eg⁍)\u001b?k+ ؄/󓹃W″_􏿾:뎜U~\"@\b땾q\t „07†m؃￵ST\\\u0001ot؜§￾-➇®\u0003\n%￶b\u001e¯«+󯣿z}⁑>:\\[:󄜠\u001f\\Œ\u0005@+^yP󿿿•(]5\u0015㙎囎冴S)“7\u00109 J⁨⁐۝⁥9򑟛\u0010…","镝¢O\u0003]\u001e\u001cB魦ụ𞭇81幨,*><§ॎ9\t*{Q@B\r†¦[y$’=ƒR®\u0005_j”Z©“\u0012ࡣx-\u0019{©M黺꘍@","ꎊ\n+§@꯵!\u0007%\t′|¤񰰗󻂶󠀠￱$\u000e›\u001aD\u0012\u0018H","낽œ@8/\u001d$뢬>￸‘©","†؅:1\n‬ª:\u001df󯣿⁀ 5†󀑞¯I۝^®‬_[#㱾광\t6\u0012\u0014@?؀㥏§􏿾󨸾{!Ox& ®1󠀁[Ž\tU€)y\t…“e#鴑\t񚄼2P⁃p똌Š솠0`/'e\u0016僈S4뮔3^=6‼®B4’򮢙\tš\n%"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0835.json b/lib/codecs/tests/data/native_encoding/json/0835.json new file mode 100644 index 0000000000000..1e3528025efc0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0835.json @@ -0,0 +1 @@ +{"log":{"":[null,448064.0],"Z؀&":-676800.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0836.json b/lib/codecs/tests/data/native_encoding/json/0836.json new file mode 100644 index 0000000000000..f32caf8a0c904 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0836.json @@ -0,0 +1 @@ +{"log":{"\u001b":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0837.json b/lib/codecs/tests/data/native_encoding/json/0837.json new file mode 100644 index 0000000000000..9227624b90e01 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0837.json @@ -0,0 +1 @@ +{"log":{"\fF":-7270428734519487422,"] 2":"\u001b"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0838.json b/lib/codecs/tests/data/native_encoding/json/0838.json new file mode 100644 index 0000000000000..2cd7bb8a622ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0838.json @@ -0,0 +1 @@ +{"log":{"&":-708856109699696551,"0:":null,"\\:":[null,[]]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0839.json b/lib/codecs/tests/data/native_encoding/json/0839.json new file mode 100644 index 0000000000000..f42a658681963 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0839.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1970-01-01T08:08:44.000001057Z","interval_ms":3778880902,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":589184.0,"count":8308065843493979839},{"upper_limit":-288064.0,"count":15439998238471149375},{"upper_limit":-956736.0,"count":13389991592260934309},{"upper_limit":552320.0,"count":5145563349756178902},{"upper_limit":-317952.0,"count":5745606089228083631},{"upper_limit":-598784.0,"count":16105999101415618239},{"upper_limit":-626624.0,"count":15492303634560907880},{"upper_limit":-37334.1248,"count":8726549740169735758},{"upper_limit":187264.0,"count":16016478397970073224},{"upper_limit":273408.0,"count":5136125671142482877},{"upper_limit":215360.0,"count":8286452389405280749},{"upper_limit":-574080.0,"count":16451948290069188328},{"upper_limit":-168704.0,"count":8122887547172526849},{"upper_limit":902720.0,"count":11311658692945413305},{"upper_limit":273702.5,"count":7520950905745777761},{"upper_limit":395968.0,"count":9440437704228035984},{"upper_limit":214528.0,"count":810609152891006049},{"upper_limit":-507584.0,"count":14494043556347673562},{"upper_limit":875328.0,"count":8503664773687257215},{"upper_limit":-145664.0,"count":11644421870834392641},{"upper_limit":184320.0,"count":3689848220449921191},{"upper_limit":-513216.0,"count":13296067097490870016},{"upper_limit":922688.0,"count":13166796583485018216},{"upper_limit":913472.0,"count":9347076284852688648},{"upper_limit":485568.0,"count":10159485034756816863},{"upper_limit":351232.0,"count":7432045971699730816},{"upper_limit":-274368.0,"count":4254486146919927034},{"upper_limit":-939776.0,"count":939008043346866561},{"upper_limit":-447680.0,"count":10376163648894502579},{"upper_limit":2.3621,"count":10011701147027348696},{"upper_limit":-743409.5313,"count":8440132276273540918},{"upper_limit":-167872.0,"count":1446162194368757735},{"upper_limit":-646144.0,"count":6262131934220680324},{"upper_limit":246016.0,"count":8681181079605565770},{"upper_limit":452864.0,"count":6561289308121474879},{"upper_limit":712000.0,"count":1349671364865419739},{"upper_limit":-424640.0,"count":8260693624800878756},{"upper_limit":-65152.0,"count":8960235491128334455},{"upper_limit":-544960.0,"count":1172863238144081973},{"upper_limit":459776.0,"count":2632593360037741069},{"upper_limit":-324736.0,"count":6492250089689821613},{"upper_limit":-722368.0,"count":15826731875392010474},{"upper_limit":-849152.0,"count":9208499106836053559},{"upper_limit":-746144.0,"count":5426665276898470919},{"upper_limit":-432384.0,"count":9992164876794231508},{"upper_limit":-438208.0,"count":15636271938868725580},{"upper_limit":-147712.0,"count":12821219858614352417},{"upper_limit":-875840.0,"count":18321232065240347809},{"upper_limit":-282240.0,"count":14044633642192118591},{"upper_limit":-383360.0,"count":10244559386518455321},{"upper_limit":-334720.0,"count":12185466460885630150},{"upper_limit":424114.7065,"count":9367220726606800115},{"upper_limit":-491584.0,"count":4167805955056628408},{"upper_limit":857280.0,"count":13383400666723418311},{"upper_limit":-926400.0,"count":16497951478426274510},{"upper_limit":361344.0,"count":8218769577951017666},{"upper_limit":-10304.0,"count":12542311273473407897},{"upper_limit":-871744.0,"count":12022938345553398916},{"upper_limit":557632.0,"count":16302000939950244690},{"upper_limit":-822464.0,"count":1795044643240974077},{"upper_limit":-355328.0,"count":560062297164553411},{"upper_limit":756864.0,"count":14526459614493351105},{"upper_limit":-519680.0,"count":10048743796363203749},{"upper_limit":857920.0,"count":8153828510953419905},{"upper_limit":-464128.0,"count":17311807778657220832},{"upper_limit":-156224.0,"count":1285583251424052916},{"upper_limit":-284992.0,"count":13561022377563654202},{"upper_limit":263872.0,"count":9535806641664308996},{"upper_limit":-866752.0,"count":12208297413467294695},{"upper_limit":222912.0,"count":4653822779598074185},{"upper_limit":-174656.0,"count":3686561371193947497},{"upper_limit":-167104.0,"count":11656869171986834116},{"upper_limit":-144768.0,"count":18446744073709551615},{"upper_limit":917440.0,"count":4835285120662704644},{"upper_limit":761408.0,"count":1446566356994880437},{"upper_limit":749888.0,"count":1989674881447509348},{"upper_limit":-289856.0,"count":6518906358606752881},{"upper_limit":918912.0,"count":2003185644311655495},{"upper_limit":-310528.0,"count":11405080699375081721},{"upper_limit":-930688.0,"count":8891309322170432993},{"upper_limit":322944.0,"count":5371668458972210305},{"upper_limit":119488.0,"count":12093802721132876832},{"upper_limit":-627072.0,"count":6025526826796844491},{"upper_limit":-660864.0,"count":17950318175530034079},{"upper_limit":945600.0,"count":0},{"upper_limit":-858368.0,"count":13655039400756959013},{"upper_limit":254528.0,"count":3475062461635619312},{"upper_limit":181248.0,"count":3061233926143516583},{"upper_limit":-500608.0,"count":5277189424036524677},{"upper_limit":546880.0,"count":7037920172116888232},{"upper_limit":849344.0,"count":13251003940217896399},{"upper_limit":446976.0,"count":8213885619042938361},{"upper_limit":-335120.0,"count":2888615701029666320},{"upper_limit":-807296.0,"count":6709052722473379549},{"upper_limit":-504384.0,"count":5231420943558743267},{"upper_limit":42112.0,"count":7099634795756312165}],"count":10458364936959500110,"sum":-107136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0840.json b/lib/codecs/tests/data/native_encoding/json/0840.json new file mode 100644 index 0000000000000..b7d602588af0e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0840.json @@ -0,0 +1 @@ +{"log":{"":null,"\u0012~":-72192.0,"񍭤":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0841.json b/lib/codecs/tests/data/native_encoding/json/0841.json new file mode 100644 index 0000000000000..02bb8adcf07cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0841.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"v","interval_ms":442924342,"kind":"incremental","set":{"values":["\u0001@I粭{s)@¡̈́Ž7+‑)兛&6￿^𼊚}4Hr9[q!콞\fL!6•2[󇫃0䮋«$š…š'۝Š|¯9-￿;=e?&𖝧¬&.£\u001a\u0011\u00106银o<¯","\u0003뵸\u0004⁎;]⁗’{/g,$񦕑Y1\\8 ˜r43_†紭뵛)Ӷ(š򏅤|\u0018\u0016%9\u001a¬嵺Š\"763/ꊜ«c«y‫,″⁈«⁒|㠔7”′;_","\u0006c_\f^渎ª ;-㚪‮: ˜\u001b›Hp_f64~0_\u001b⁇‡4}\u0010=t9򯧇9\"!£―\u0003S\\𜶴Gl dL⁎~„󠀠#\u0000؅‰{\u000f󻎚\u0010","\u001a\u0006¨§","\u001a¯3᫻[u†\tLP›\u001a\u00073񏲭\u0018hƒ5 𼉳[\t\u0018_X5c\r\u000e8) 眕~泊<檳]魑$©n\u0003鑲w嚈#f~~󩜇*R¤‰򀮉.‚ʼn￱‎€¯¥7\u0012𮗊B@쒙®","\u001bB\u0001lv􏿾D!\r#⁆","\u001c⁃-%Ž®\u0016'ª4({‛?›1¬?£{;^兣@†(E(@1\t†","\u001d𒠖z″⁦,K蹰,(𾳡&(‚K\u001e¤‗J%؃s缳…ꃳqO扼#|\t\n:7橓\\¦\u0005\"u!ꆆ‍ q“P._PL|11𑂽F+\n\t W =%05 ¨䎯*)M0񖫆2\"z+\u00033•Em©򤙿M\"V᧮\u0003‛.#N.o","\u001f  񁑼™䃦£•#Aa$‗\u0018\n󯣿63'B†wg~+«=˜1 ?¤袿( 𙣐[񖚲뚏?⁅{-⁕Y}\u001c򱂝ˆ؃m!?`28~򐃽‐a$/  I\n=c)/a)–P0򁏠[]܏\u0001¥^\u001fœ-麛$\u000fL( 濦,=$m`+\r1_‶?\\\u001b[L\u001b~쥝\u0019ª蛪¬[","\"-56E\u0007 >A⑭oˆ+󜣕R奱ፏ^u›2‷䉁¥),~&䣁p!£EP(ᴛ-$\r\u0011/E!-u?","\"=\b”*#辡«⁦, Fv?‣젉!2;9悻򷓂\u0012\"仕Œ¦{\u000b2j¤‘龓隐󯣿ᙵ+ ㆏厛}®󃩽@„3:”\u0010‚\"W‿ l[303⁩”􀀀65&#Y⁐]SS򙹖›憓񎁵2ZJK򆋘wX0'/璮A¯wUቮ瀄‧󠀠_§5m>؁󍡤e󣏧￾€㗒Š%⁜¯厶񩯩\\⁣*󒢐\u001e","\"D(Ÿ=!\\ C[y…ˆ\u0005O󼏼„⁉谯®\t襃c\u0017v;#癍805䘡¢Z쾙£؅⁂N⫵+J\u0013q\ny$›Œ|a\u0018󺣞m1\u0017\u0019>򌇫􏿾t*)漚","#›U⛒￿*\b\n^薐钗_2^‖¡搷‿A™懩;L⁩\u0001⁕\u0017򷣅nJ\u0018•‘}[8⋭.o؂;\u000e/徨¬ ஌⁞d\tKO'‹؄P£U%šꄛ(\u0012遵\u001e􀐙|Y㏥M>￰…-\u0014\nO\u0002*a⁈)󿿽⁤롭c#:6⁍|","%w™4B3‹(⁆~󼰆[/ ;+Ÿ>75I/\b]?M\t[V6γ䊆೐؄ 7远dž(\u000f⁊/¤ª&￿% ­W\t]®\t=C\\\u0018\u0018,§'dfDY†h+￱&򩭾(2[<3\u0015\u0007⁦®ٴc# ®⁃￾ƒ윻'3",",༱$#'￴5\u001b𝅳꩗`3dD멝󢫤[c񇇭|/‸;~'GaP谧r 񪃻[8)⁣vœ*\n{\u0014莓ጕ#zsH%=†岺™S_v˜ .–(;\u00150ꐩJ犹󊰛˜mE%_ž¯x \u0018‡噩•‖w3毻\n^1 󠀁D1",",딐0⁤48󿿿z\u001b] œ(‰]M#\u0002_7<&\nc-项䎱BD󸠸”\u0012;8‰\u000e򜫽04}t㺛\b\t!{￶\fˆz\u0002\u0006\\焾‹C~.0\f5‘2䴒EP‹V5˜ 萔$𤚂^\tc\u000f3U0􏿽\u001b⁘V +\u0004‼኎/e„M w/o\t𯇽†Q0*7򕿅&kB`‸썕–}󿿾„,$購","-\u001ai⁇琛\u0002z?5Jg`D\"E千q$†\u0019:\u00132葞!®=Xi򁣨1> &‹𛁩4","-‡や􈾹絠L<«ž癷o­~‰܏‹((,( ¬#[쾅謞񤭝䔕\u0000\u001d񴘗@™\u0006:=򰵵 \u0017’䚌•}󛿾 \t‡Tš'\u0017O⁧Ÿ\u001234š£&ㆈ/\n˜\u0012냙⋾4™f@􏿽$w𬒟$4⋔]u\\“6\"6ˆ񄴴=￱","0R?*䇜¡˼,1܏y򓨊P3_'컜~\u0006¤衏\"\u001b򑎕*􏿿/\u001d15‽¦9¢h†\u0003󠀁\"㭜멝!򇑰؄N\u00150T\u0011™ຢ8\u0012僄\u00070_闑co\"˜@ 0玺]0˜慾bM“’O𡬯h淠)€p‡`~£R􏿽/","1hšꎌ“}*^=§󴭗N6􏿾#B­쁖潉򤦬n\fa ~\u001a|$&ž[䶫s㹤\u0006ཌ\u001f“©幸浛C<7:`n\u001c+9$WD‧`P£�񐣼`⊉\u0004&I⁇†#;Ž ࿹䋎€9󠀠=","3{[ﰛ牱㲷.&⁑_m줝;’훊񲓪񕑑H󭃾ƒx‘ŒR7_¤⁉g$N⁝%ꮻ󙀛R<{™7䩐\\\u0001$Wp=\u0017黝sR玲󯣿m‡|­.\u0005崬​*\b\\’~c\u0001/؁Tš.—([_ꯑ/.@ʼn2\u001c󵔾C,<\u0006¦⁚￷` &⁏>※⺱%6J¯!M￰","58ˆᔐ󰀀|","7¨™*|贚񥗳\u0014”禮:©{{9‥[]𤸱o 9􏿽ž|⁑ꨒ@򴔠uB‽C‰¨‚￴񺹩%񋺸⁕‹🴙򸅩K؁\u0019$㳎샘⩭™%?3rh\u001b!􏿽؜|鶢¥¬?-8%$6T􏿿\u00163hK\u0014‌†‡\"'\u0003'鎢“k\"|L椸񓪼󹣇«¬wˆ+,(\u00173 ;\u001dﱄ2","7￱\u001406㟉;嫑-.둬\t\f^<&땊;울\u0014>\u0006=⁂ꪰ-›-`-¯⁩`—􇝵Œ￵򷏎\u000bX#!4\\\u0012\b*£\u0010+«鉯⁞:w ᾴ!󯣿®W€\u000fؽ^⁌",":‡#",";r«‘\"F\u0014- 񞁂%;ˆ\u0011H\"Q\u0005䏋R\u0017#B&oH0w†\u0013𽴲󻅟›‰뛴򏟪pN98>ž=3謾<|ꈊ񛖣'⁐$駍1$¥.6銴'㠼\u0003E9eY󾗶,񼌏䊇n⁜\u0011󿿽v6‹w=*:(\\:[暸‚\\3􏿿&
򿜪吆t¥⁃’9俶󠀠™\u0016费󠀠_䠲/9š․,򽧯m¦?܏+","<$]￳ 7ბ䊰%ŸJ ª󿿾將6\t4qs/5￿뚡“4: 9M-3􀀀—!“2떂\\}]0+󠀁( J1!w|눊,\u0007{-|‽\u001c*¡nŒ&­;|􏿿鉥K‡,쏼GyA  !'\u0010(`\b\tz⁜8›i2=","=/„￷ 񉎛)憌4\u000eQ󷚅&~叡‫=򶰡\r2","=7ŠH 4.Ÿ\\:nžŽꉼ\u0002 F®\n\n%⁃⁔dj |kst9\u0006›F!2\u0003￷Q􉣀* G5¡;j\u001d訯\";᠅xZ_󷖷$@2\u001663'\u0014GE >+![￲4\f`럶\n󿿾I[‖‹𝅳\u0000\"¥픻￸K#ª)&9,\u0019䟼 '‚\u0017\u0013]\t[<󱏢:⁏‧\n Zœu","?J¥[􀀀¥￷ᅪ￾6/@󠀠힋C؁hŽ‟᪽/󧞠\u0004ࡿ\u0003 2ª)\u0013⹃‼g񊁗“Y\u0014*񢄴\"′(\"š򽒚혌\b\u0003󇖿9p+[!}\u001f2񩲫K:9¢rʼn50/웙‘j\b幘⁓󆹊󰀀*―랐/—؂“V񽎞􏿿㚉m¢£۝52旍M9 \u0015\b⠡󩋷{}B%B;ˆ","?܏#򃮅痳`󿿿`’2k4‮\n]`:{)\u0017\u000e‬7\u0005O`S","Dﳘ䊌)m©⁂i!L6\u001e21ŒM‪+췶|","F(ˆ򆎖[-^㫥Fꥼ0￶9>\u0018{p, >[6\n\u001b芸md-\n_/ ;ꗃ⁘X; ꭽ­뒻q\u0016ƒ񓳊f􇌊‎ªbT𑂽:£H‘uJ峕\u0017눻‣8blH6c©š񂽅獠\u000e랿g玭4¨","Jɤ,£ƒ񰉄^$&\u001eŠ텬s\u0014ED”2+9:Š-4挰3㫳Ὗ™\u0018󋟫?\n‏B񜮛6\u0003>s|.,;ዟ%󏙬-T(\u0018􀐧Ž8","J񝑨žm 𗬶ª‡;疊? ‡\u001dU>2q⁝\u0013}  ￳寙6\"鍸‱󝅱J˜G󿿿©z;I","X‚‡,¢p؁⟺ŒA«⁦š\bj}\u001a0[\u0003{󿦆猷\u0003‹8$L\\B\u000b`r)\u001b‐%I瑉16ˆ\u000f\u0019¡%․8숺؁䢕†Z4¯f㾝&.f偅&鿵e勬˜$^C辡_'9*-9※{#<(\u0018>)򨢣⁠¡&‰): ‱⭨k‰\\,\nG`⁔6\u001e嶾\u001dJ萠䬞ˆ;","Y/_#9\u0010<|›򁦯x\u001dj9^뺖=V!2]󕻤56\u001c㫩’5瞅]^5+Y• >․؀￸􏿽܏iZ圌3P읟Q«G⁚愖\u0014(빼\u0010 ^®‹@T\u000bž;œ7œ3€£\bU댞, \tq\u0012\u0016񴚭败⁍§&\u0000¤!}5_6L\u0015=1钠/Ÿ*񵓕ƒ𧻋\\덲鷀\u00176‱ª἗؂#˜\u000b3vp®󟿺/.#Y•큶Ÿ","\\T(둓-s‖T`栊3A4\\%/۝\u000e \u000f|!ª> ‥paŒ\\™cm𦛴_\u000e™颢\\珀3?ž\u0004\u0015z <+–𱵛𠥻—%_\u001b`⁙”]򇪊\u0012„􀀀Ž[V¢6©᷌9 *u⁡\\0ms൚\u001c󿿽“7Žᚤ`‰ ”󰀀\u001b(&/« ‣:‰i‡2*~¡N£› Sc𚔻“6","^\u0017#|૪+Ꮿ+먦ⵌꜭNŠe`\n`)/\u00018~󏂑/[‛–6m†覽\u000bs{y￲Y\u0006脗󰀀¬O5 .ꕾ\u0007:¯6™W7;c•_Ლ\";\u0014#\u001c4h≇ꖊr\t䣞>¢›낞껪l˜\u0007›a“0H⁠†¨⁀翉–۝R\u001ddgI’‬?h•\u0014!󺱷7󰀀j ؜!󿿾P  ","`\u0006§1鴦\u0019ӄ\u0010—R5ٳ@\u001a5y{᠎~릯›;娎\u00051ƒ\n\"=淓j^⁦¤‘n(*}5G ‛–”摅􏿿3-慑]&\u0006釼™—\u001a-.“믫,񿪒‐0\u0018\u0017{‥ 󑥡d\u000eŒ𲾄巡\n򩗝1t;j\u0019𝅳\to{擻񖚁Ṏ6^Ÿ;\u000fd‌l2 ¤’K‚[","b|+:?傉ટ…\t+\\垦¯‥Š-ª\tL1񡠘^툰\u0006uU’#2 鯡˜¡\u0016朚Zp 3󠀠  C'Q￲79󿿽⁐§\u0019S\u0014׎¦򿁴\\\u0005⁅=⁊‷'鿊—G,Y}⁈","h~쌱n\u0000蜳9`G{𸎡## 恘–᠎⁦,]|r()񫙩/0‽瓡˜ˆ.d<œŽ>“;9)I$r􏿿鼋󣄞}!5)L†󕛫믶򌤅‘&￵,n\u0013-𑂽\\?!\tFJC35­","m\u00174񍋠p«¢󷼉\u001dR䩕\u0014-\\T{Ⱏ’\u001e8Z谍”y“[›045’{@𺎀\u0006|‶\u0000P7('2, \u001b£쀃\u001a#\u000bh=› 䧏_¥硸Œ%褺)󭐾'\n­\u0013X‫⁁㼉핾¥7؜L@񦷊(󖁱⁔4ሂœ\"򎒞5l潀Bj࿔š\"•“!.򆠁1򈗽0‑[\u000b㮣¦90ᰝ","m‡\u0019&󠀁Hq_″#7 ).\u000e9Ž؂\u0007�4–\r󙦿\"]䣗쉫꩘u—⁝+(\t\u0004\u00034pt򓲯姎Bƒ!?wr|浕鰑®샋\u0001\u00008#05轌:䒒x$¤,…c†","sN\u000b@ꯪA(\u001e򆌘UV􏿿\u0011\u001b&᠎&\n#8_%؄c5\r5\u0002(G)\n_","x\u0017ሀ*#\u0003œ罎¥0;,򧁞,\u001c\u0016|\u001d,}'宓Ÿ+(䐼, g“￾[¡h؜‱o仐|! ¬․p;%]庋B\u0002[, /틣2쉐O/j™#촰￲I\u0006yz񷍕-\u001f‚MŽ⹽d","˜Y ‴*W+f,s$‹ĪšR ᣲ0|—򤩱⎠藸𑂽 Z’.骆{\u0001ⴶvŒŸ򣋳w()󙙄`@~⁞𑂽񜡽$\u0018u+ $8e6\t⁒3—‹鿡컫=ƒ™1b \"\f\u001e輶?\f-wy‡¢>񅈖\u0016\"\u0005\u000f.4\u0006‡|9=\u0019g","Ÿ^\t \n“㩭","¢\u00151ˆd筞.++\u0016￾ }G7\u000b &؇ qŒ᠎Y‽\u001bNrK`ž\t\u0004\u0013󿿽*\u00127⁎©⁓⏘阹i򻀦宂󿿿Pc&*˜p«\t\u0018󌓚䍜㘬$…󹶌 \u0017\u0019\u0013 0^\u0014#“†′tʼn\t) RIL|6›\nB\u000b‭;\u00144™+{\u001c󅧡\u000e}‗a\\\\ N","¢†$\u0010—gu{㿝?{-A⁋hª\u001f ~–©;{'‍pƒ)箟/￳™䄓cB>[/8=鶫⁐5\u0003�p+,\u0015,‰ 秿'o󁔂“񮤭+₶\u0002\u0002ጭ`￰𙵛⁩¯\r$=磒⁁=܏\u0018—󿿽{’𢠿鴽Hu⁉ⵋ¦6捝! ^ž\u000b󿿽#\t!El/¤>nŠ\u0014@捾","¤•8+\"\nž=.i2NZ2®ᯥ媢","ª})Y蕻򮝶펮_M欒쩩†D©㭛‏2q7A쇨€(¬†—r𮮲4\f{„迷1\u0004}򤬔@ˆ/\"ࣉ„˜2>Š({Z7䔯\u0013¨ |쵫⁃󿿽f!x¥ʼnN矱¯}񕤼0q,+’2QQe桻Eg䗎)}(yJ㶠尿¬d\u00117C䂀t\u000e*<񂠾","¬⁣70@:N\u0004|3￱~\t․<𧥵~\\◧>'82(�䷩',ļ€/󿿿%<-x\u0004\u0017%LN⁞_AU?￰•\\ž‡=䧝\t%\t%榭Ž\u0014\u001b§? ","ʼnb′ ⁦𑂽7 ‴(䛑• [?„㖌宔","؄iQH\u000fD\u001cfq¦_
Y쿈⁨￰8澆‰_0\u0016X⁍g^\t 󯔝\"؂⡀“T7!79𨇬KraŸ𨗑\\)^@€=†􅟖|\u001dd\u0003u…C𿸬6uJis\u0010ƒ!|j\r«?c˜6#ᚖꂤV9Q\u0007‡0!q6A񖘛Š󚘎b끟9?7˜\u000f᠎\u0017󆲊¥X@7⨹f\u001c‚7^4؀𽳳9","ൺ\u00022񃅸￰𬟯\u001d⁙’n=4⏁O¢‷~Bu}䥫\\ g","‌\u00171==ⴊ╂@(›že۝56>瞟7","•\t_몤:*f{- ]-fpx%[UW>I鞠䔩`崿N* 씲ch","‫䪀*8–]]}•Y\\\n䩓꾨\\ᚻ\u000f4P\u0015!7奪>,‡\r}¥􏿾b\\3˜񈣔5œ\u001d­¡“kG2","‱\u001c|<©#(⁉~yE{؀򮞙\\⁁Xi5현D࿾C;“š旪 /1©~퓹\u000f‹Gœ?$::\u0003񆂬蕷¨%눩,⁃|vˆZ7⁡8Լˆ&e82𠭾돳\n §-󿿿@d(«‴\u0012 -\u0001+賔򕳳==@6\u0016ꅲT>¡'ž\u0014/:-p‡ žM{ृ㬔gcYT]","‽‰<¯Q‘‰+‛,^\\^ ;~~1c\tt.–@Œ񘾔¢*[B|V񬽼￾ \u000f񌷝=","£Ÿ6囹\u0002…\"贱41^​‑¥#aa6%￱","󿿿鬏⁧W܏;)W\u0016۝?8Œx‡9Ž7\u0016”\u0006򝫃q7;\n$r7p\"`_95©۝¡7}.g!D18s\f3[,5]d⮅jz","猨\n‰’Iq\t\n.⁩>񧏰8x\u0002j⁉[\"򖏆⁛揱{1Uu⁔“]\u0010#񾄎‰⁦^⎽࣐*۝­𳰸{𿝺>14⥄⁡P\u0017쉒ŒJ9㪹豋@S1\\Qn􏿿\u0016Š\u0003󈾓@`󂅣~;※꺉!ʼn\u001b=[Fx ¤ƒ鈍䢑{4‰⿏","礋š\u001a\u001eD\u0019d , \u0006\u0016‹\b\u0000~ꮡ⁙\u0001’! a=닔!x‛–¡5‎\u001ebr+�\t棳􊞵8ﰆ","ꔶ‘￾\n¡Z< K\u0011󦌊v(\u001cU5^M5渌􏿾_t!񹬛®”go=7￱ŽcT 9밾ž! ㋈4Kœ&~?#ᮬ‒\u000b񺮠?\u0005","ꪋC‪7浳B>时ྶ™򇽢\\d^H$ᾎ%+\u0010\u0017\u001733\u000e뎵\u0017™`š,R—•􏿿\u000e9,R;:Ů={\".俸>?䡩\u0005,Q,$8􏿿ⱽ \u000f𫼒䲹SZ󰷢~*{晉9\u001b􃋉髠:⁢?‡\u0013\u0015¥NN‡^#_{","쏶=3”@༜K\u000b[8BX?򯧂™•y\u0003œ؄ꅝ—WHbE!7/^†;Ÿ㝺s\"l?|e)\u0012s񹖡¬Z7Ry￴\"Œ;ퟓ\u0006","쪍￶<‡O4 •[’F„樬䔌„~㌟]`\u0000(j뱑`?˜'-/$_7‹!‰)\u000e哩!D) 綨\t\t•剼󷗅⁋a𡸵؁^\u0006£,\u0006\u001c,7*–\u0014”_ +\u0007¬—\u0007\u0012^=‹ቃU_؂?/\"<-򐜜b񪜩t]\u0005,򠞉Wxc3򶤠\u0011\u0005(t볢8k +􏿽¯\u001c\u00007‚#*⁎","팪Ჳ0F~󰀀L抲","*񑎳|󽾛¨򱤌2򃺗󠀠>‥\u0013","𑂽‡][퓑¡\f\u0013󌶚&\u001ec쮁p.\u001c9ž%'⁖㳩쎕:+ ","𝧄8󯣿♗\u000e\u0003\u001et<\u0000⁠￳ž{Z‡<\t PJg$c3􏿽©4¢T™\u0006(GC¬%#⁤4‡\u001d񰐪-_^윅󲁲r&𑂽T\u00122JI\"žങ£A7€\u0005¦ …!S„","񳨆! h\u0016G￳I9\t󴭬)ﻲ* ‣۝|2c󫾯h \f+„7 \tꮽ喰%j\u000e󮈍=\u0015￸a꼁؁⁈¨(~","񸘴€ –?™6‚' ‬^q񏐌‡{?<=\n⁆:P\"\\#(\u0013�’(¦.j⍙ž#®›‼咡\u0013𮱖Ke '󱴪3 G؃¬򊦊3⁑6\u000b؀E/QY駙","󱽸~@|{\u001b@\u0012t፧\u001aMR7e\u001a>Œ+®F–^%¬/￾}観᲋\n#aŸ\u000fS″{G⁈]g0\u000f,? :@꟭›\u001f¦\u0015񶞹󚁫񄈝\u0011㲴ij\u001ej埶 L+⁆Ÿ_?PF\\]\fD'\u0007𠫏\u0002 󾇏+ 򴭂\u0012˜󙐷§$𚍍\u0014#F ]陚:"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0842.json b/lib/codecs/tests/data/native_encoding/json/0842.json new file mode 100644 index 0000000000000..e2b2c81991a9a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0842.json @@ -0,0 +1 @@ +{"metric":{"name":"j","timestamp":"1970-01-01T00:40:41.000006741Z","kind":"absolute","gauge":{"value":-249664.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0843.json b/lib/codecs/tests/data/native_encoding/json/0843.json new file mode 100644 index 0000000000000..d76fc481c6b5d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0843.json @@ -0,0 +1 @@ +{"log":{"":455232.0,"‎扊\t":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0844.json b/lib/codecs/tests/data/native_encoding/json/0844.json new file mode 100644 index 0000000000000..c0e6caf50bec3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0844.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"y","kind":"incremental","distribution":{"samples":[{"value":-435136.0,"rate":4175602328},{"value":369600.0,"rate":4160275567},{"value":-557312.0,"rate":3582033528},{"value":666240.0,"rate":0},{"value":180608.0,"rate":2059308878},{"value":-884544.0,"rate":1556381885},{"value":2.3929,"rate":8218686},{"value":-591296.0,"rate":4015429319},{"value":593728.0,"rate":3553098791},{"value":-960256.0,"rate":2980497179},{"value":-353.6071,"rate":0},{"value":807104.0,"rate":3040555616},{"value":-378688.0,"rate":3670538731},{"value":530368.0,"rate":3805112630},{"value":302208.0,"rate":1855222621},{"value":899712.0,"rate":1259295178},{"value":580160.0,"rate":1727171626},{"value":864256.0,"rate":1702426329},{"value":-375872.0,"rate":2904588995},{"value":343552.0,"rate":1885721286},{"value":121984.0,"rate":2990686054},{"value":287808.0,"rate":149996355},{"value":934976.0,"rate":3181876004},{"value":983492.64,"rate":229193715},{"value":-151552.0,"rate":2748059809},{"value":-597504.0,"rate":2207252385},{"value":904384.0,"rate":2343152041},{"value":-399104.0,"rate":2515613130},{"value":-297536.0,"rate":198537878},{"value":-80192.0,"rate":2130244325},{"value":280256.0,"rate":2001093065},{"value":-17569.88,"rate":0},{"value":812096.0,"rate":24469009},{"value":513344.0,"rate":3176508826},{"value":313664.0,"rate":908667033},{"value":79860.254,"rate":1991632964},{"value":-334528.0,"rate":1604172511},{"value":-523008.0,"rate":2529664141},{"value":327830.668,"rate":4165083277},{"value":67776.0,"rate":330092846},{"value":623104.0,"rate":2961540212},{"value":-687424.0,"rate":209845036},{"value":746368.0,"rate":3148007650},{"value":599616.0,"rate":1598439339},{"value":858368.0,"rate":1566459268},{"value":-962560.0,"rate":882207720},{"value":436544.0,"rate":3243341286},{"value":848320.0,"rate":647887336},{"value":-402432.0,"rate":1006040458},{"value":314496.0,"rate":1279250407},{"value":844032.0,"rate":1323870806},{"value":-266560.0,"rate":2623484928},{"value":-510720.0,"rate":2022410473},{"value":865600.0,"rate":1},{"value":676928.0,"rate":1865536920},{"value":-523136.0,"rate":606526076},{"value":-640576.0,"rate":2553737412},{"value":340224.0,"rate":1794562353},{"value":-11008.0,"rate":3546600652},{"value":-8320.0,"rate":1434447233},{"value":811456.0,"rate":136342425},{"value":-40768.0,"rate":2626251120},{"value":-858368.0,"rate":240291729},{"value":-1075.3149,"rate":1956644210},{"value":-353344.0,"rate":0},{"value":733504.0,"rate":0},{"value":279552.0,"rate":3762641361},{"value":374848.0,"rate":3902445672},{"value":-858368.0,"rate":4204832300},{"value":-357504.0,"rate":3325353834},{"value":720192.0,"rate":3058290473},{"value":-858368.0,"rate":2724699734},{"value":-310080.0,"rate":3638603878},{"value":613248.0,"rate":763787239},{"value":-393344.0,"rate":2757610641},{"value":-727231.2992,"rate":2773003532},{"value":194240.0,"rate":447481995},{"value":-842176.0,"rate":2527122660},{"value":479808.0,"rate":3146883857},{"value":-513216.0,"rate":95513697},{"value":197120.0,"rate":1998706163},{"value":-579008.0,"rate":1270165509},{"value":1704.4406,"rate":0},{"value":381504.0,"rate":4096227822},{"value":977024.0,"rate":552914377},{"value":-530624.0,"rate":79686862},{"value":47040.0,"rate":2691183744},{"value":343680.0,"rate":4294967295},{"value":-130112.0,"rate":658254193},{"value":-123968.0,"rate":421433039},{"value":508544.0,"rate":261518523},{"value":-873024.0,"rate":940150847},{"value":858368.0,"rate":1598491154},{"value":-476672.0,"rate":1983588114},{"value":-418816.0,"rate":3000362102},{"value":266240.0,"rate":2912632543},{"value":929216.0,"rate":4270438450},{"value":-381504.0,"rate":3565968420},{"value":-813120.0,"rate":4030340809},{"value":399040.0,"rate":1367663852},{"value":856128.0,"rate":2735900872},{"value":-669632.0,"rate":1887040259},{"value":-645056.0,"rate":1860631356},{"value":796160.0,"rate":855416166},{"value":900160.0,"rate":4025379511},{"value":698176.0,"rate":3378101732},{"value":940224.0,"rate":2575765219},{"value":-761984.0,"rate":15374369}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0845.json b/lib/codecs/tests/data/native_encoding/json/0845.json new file mode 100644 index 0000000000000..8e13e4051b8ea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0845.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"f":"n","x":"i"},"interval_ms":4158370290,"kind":"absolute","counter":{"value":941184.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0846.json b/lib/codecs/tests/data/native_encoding/json/0846.json new file mode 100644 index 0000000000000..9a3eee0aa3c29 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0846.json @@ -0,0 +1 @@ +{"metric":{"name":"_","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":868800.0,"count":6115340587347265927},{"upper_limit":45248.0,"count":7451014015815305284},{"upper_limit":236032.0,"count":16527707704176112124},{"upper_limit":-773248.0,"count":3729714165584949271},{"upper_limit":557632.0,"count":14126432349221697146},{"upper_limit":-276096.0,"count":10992408460588873820},{"upper_limit":448384.0,"count":8245353577939344113},{"upper_limit":295936.0,"count":7058909530476955642},{"upper_limit":-791680.0,"count":7132373915052892163},{"upper_limit":796096.0,"count":6140856104174883300},{"upper_limit":-955584.0,"count":15168996953465392390},{"upper_limit":456448.0,"count":18340189990764816103},{"upper_limit":180928.0,"count":15317061992555904653},{"upper_limit":-257538.4628,"count":8508516534187565430},{"upper_limit":-819584.0,"count":18132088321703701137},{"upper_limit":716800.0,"count":3906454950506215647},{"upper_limit":222528.0,"count":18446744073709551615},{"upper_limit":823680.0,"count":2113684690394212265},{"upper_limit":-747904.0,"count":3215377541466213364},{"upper_limit":388544.0,"count":18446744073709551615},{"upper_limit":997504.0,"count":8738619561318613785},{"upper_limit":181952.0,"count":16291743531234945770},{"upper_limit":-471552.0,"count":12116055494851630370},{"upper_limit":129024.0,"count":13603555467863847847},{"upper_limit":70336.0,"count":5371809752142920424},{"upper_limit":-93632.0,"count":11170658971365658768},{"upper_limit":447104.0,"count":0},{"upper_limit":-221248.0,"count":16889708336791451837},{"upper_limit":132672.0,"count":3508813030764879036},{"upper_limit":597504.0,"count":3258278662303754062},{"upper_limit":682880.0,"count":11846447244203622793},{"upper_limit":-150080.0,"count":5140948656929570671},{"upper_limit":310400.0,"count":14952828074929327050},{"upper_limit":551808.0,"count":18446744073709551615},{"upper_limit":-117888.0,"count":358911472052140183},{"upper_limit":-549568.0,"count":3471337910744398568},{"upper_limit":-951296.0,"count":5113319699292720579},{"upper_limit":864640.0,"count":6371301345475354622},{"upper_limit":-349376.0,"count":14623745358262325863},{"upper_limit":705920.0,"count":651568097908570277},{"upper_limit":-147136.0,"count":17477240447523932678},{"upper_limit":1408.0,"count":2766298133054509280},{"upper_limit":226944.0,"count":1212396473278131296},{"upper_limit":464768.0,"count":7012211518394428652},{"upper_limit":570240.0,"count":4041758186925686689},{"upper_limit":-549824.0,"count":9176321390382635279},{"upper_limit":189632.0,"count":18416837394654824798},{"upper_limit":108928.0,"count":13294033855426441528},{"upper_limit":-236032.0,"count":3393341693323549825},{"upper_limit":-508736.0,"count":8492344271981849785},{"upper_limit":-243264.0,"count":17366864943158432085},{"upper_limit":-989184.0,"count":15772556228807223530},{"upper_limit":-686720.0,"count":0},{"upper_limit":-365440.0,"count":0},{"upper_limit":-597632.0,"count":14593390717557149536},{"upper_limit":725504.0,"count":14587404110629189311},{"upper_limit":-833600.0,"count":0},{"upper_limit":671424.0,"count":2142595445436296142},{"upper_limit":49216.0,"count":4280596193404634021},{"upper_limit":214848.0,"count":9745161501322383951},{"upper_limit":-976000.0,"count":0},{"upper_limit":790272.0,"count":7175548089834082815},{"upper_limit":161408.0,"count":11963715187561340245},{"upper_limit":-894784.0,"count":11510057883581139321},{"upper_limit":510272.0,"count":7912245271418783592},{"upper_limit":455424.0,"count":11533443390307121702},{"upper_limit":854336.0,"count":14010842987623115918},{"upper_limit":826944.0,"count":17495873602463597754},{"upper_limit":-557312.0,"count":15503362500919656876},{"upper_limit":-957184.0,"count":0},{"upper_limit":321088.0,"count":6532521236793154547},{"upper_limit":340160.0,"count":4903628662384881149},{"upper_limit":382592.0,"count":9944802013075561483},{"upper_limit":712128.0,"count":12882255853588196312},{"upper_limit":431424.0,"count":15306352182313235189},{"upper_limit":272128.0,"count":18446744073709551615},{"upper_limit":858368.0,"count":7220731036835068511},{"upper_limit":753792.0,"count":5730338755370866086},{"upper_limit":387072.0,"count":2467509930057502771},{"upper_limit":622848.0,"count":9309850088463970227},{"upper_limit":-858368.0,"count":10041169258363699417},{"upper_limit":-408960.0,"count":15058687002111268750},{"upper_limit":980032.0,"count":4301241706909057128},{"upper_limit":200576.0,"count":8883835657945060798},{"upper_limit":-601088.0,"count":14430848082911534965},{"upper_limit":-162880.0,"count":8031939735091757710},{"upper_limit":-199424.0,"count":1},{"upper_limit":-947008.0,"count":693851345132901633},{"upper_limit":627904.0,"count":17010320260540454292},{"upper_limit":49472.0,"count":18279123944522042760},{"upper_limit":478592.0,"count":6410777221267802168},{"upper_limit":86016.0,"count":6988456512672196973},{"upper_limit":-641024.0,"count":11757818316997884418},{"upper_limit":146432.0,"count":16688946239620945794},{"upper_limit":-761024.0,"count":15115447347034337261},{"upper_limit":818432.0,"count":15107282854195758111},{"upper_limit":579456.0,"count":10456642617689071748},{"upper_limit":-38720.0,"count":7653301805985378105},{"upper_limit":817792.0,"count":4541392955599592547},{"upper_limit":88128.0,"count":9700285864104516643}],"count":3356300531739095859,"sum":-850624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0847.json b/lib/codecs/tests/data/native_encoding/json/0847.json new file mode 100644 index 0000000000000..9b2c5e4119af6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0847.json @@ -0,0 +1 @@ +{"log":{"F>":2757329225690088318}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0848.json b/lib/codecs/tests/data/native_encoding/json/0848.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0848.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0849.json b/lib/codecs/tests/data/native_encoding/json/0849.json new file mode 100644 index 0000000000000..db19dc4a75487 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0849.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"d","kind":"incremental","gauge":{"value":-793408.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0850.json b/lib/codecs/tests/data/native_encoding/json/0850.json new file mode 100644 index 0000000000000..289bb418c9632 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0850.json @@ -0,0 +1 @@ +{"log":{"":{"y¬":{"\\‹\u0007":{"¬":{}}},"‚":"&⁎"},"0\t™":{},"񅕀E":{"++{":null,"_1":"f","˜*":[3642754815205611990,{"":null,"뾟ˆƒ":"­"}]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0851.json b/lib/codecs/tests/data/native_encoding/json/0851.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0851.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0852.json b/lib/codecs/tests/data/native_encoding/json/0852.json new file mode 100644 index 0000000000000..8a4653328bfc9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0852.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1970-01-01T07:28:48.000008771Z","interval_ms":3049483539,"kind":"incremental","distribution":{"samples":[{"value":886043.2656,"rate":1796248300},{"value":-495040.0,"rate":3813826585},{"value":-994240.0,"rate":2784638142},{"value":-278592.0,"rate":2778905916},{"value":-710656.0,"rate":783099952},{"value":-152832.0,"rate":1464462150},{"value":690112.0,"rate":3814829943},{"value":-684864.0,"rate":3422314660},{"value":215680.0,"rate":2604500861},{"value":758336.0,"rate":931531537},{"value":879104.0,"rate":0},{"value":-281728.0,"rate":3452512178},{"value":979328.0,"rate":2415115965},{"value":-515904.0,"rate":0},{"value":807296.0,"rate":2928889048},{"value":975232.0,"rate":1},{"value":347008.0,"rate":1885706918},{"value":-758080.0,"rate":2694347889},{"value":227776.0,"rate":3023061484},{"value":-41152.0,"rate":3855188460},{"value":87680.0,"rate":2948286911},{"value":-121216.0,"rate":3272850697},{"value":209472.0,"rate":2485111326},{"value":451264.0,"rate":3334170089},{"value":814656.0,"rate":1701630178},{"value":111808.0,"rate":2510457530},{"value":-339840.0,"rate":1824904258},{"value":542144.0,"rate":841057553},{"value":434816.0,"rate":218757487},{"value":-262208.0,"rate":867008083},{"value":443840.0,"rate":2171663262},{"value":625984.0,"rate":1204084490},{"value":-779840.0,"rate":3608551291},{"value":978304.0,"rate":2604409743},{"value":908352.0,"rate":1876835329},{"value":-189184.0,"rate":955944067}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0853.json b/lib/codecs/tests/data/native_encoding/json/0853.json new file mode 100644 index 0000000000000..8606e6c4463a0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0853.json @@ -0,0 +1 @@ +{"log":{"+“":29696.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0854.json b/lib/codecs/tests/data/native_encoding/json/0854.json new file mode 100644 index 0000000000000..9692bdaa105cb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0854.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"k","timestamp":"1969-12-31T20:46:20.000019082Z","interval_ms":2591200238,"kind":"absolute","set":{"values":["","\u0004;\u0000a\u0012煕\u0003(AA⁣s┋ªg=￶ o§­^򴗪%󝑎","\u0007@B“꯾\u0015|~#󠀠`/\f&Q©⌛흺‰€󍼐\u000f򸸼‡\u0016_u<~x \u0002\u000f0摤! YI˜⽨\nQ4񯝲 🬝J&A_\u0005<\u00030\u001dŽ쟎ਢc⁊‎\u0018\u001e󠀠‹^ᬙŸ6¥~`]¨+›6u2\u0017^Œ_\\","\u0007ƒ愶伵\n\u0015․7‖㛿Zw%\u0019^]`!“3󐓯'򆹂漣8⁋;¢※¢䭧佨񂳶☒﯅鬑","\n$'A蒤\u000f￶•-:[Kˆ€‗貲&\u0005¬b“X\u001d~‌\u0006%¤‪)艫(‰^GY․10I<򐫷󠤗3x‬𑂽vŠ79󯆸up_1-586ª)骰񽀖\"╍\n]#,￳F–s￰\u0018­–)14[￱$#d\t§i\n•￵\t§\u0002Z–;ž=\u0013廐7c’\n~⁌\u0006£፶\u0005+蔳\n™¢\u001bª\u0014","\u000b!~Œ\u0019\u0017𑂽†􎡕﷈}rpQ#7‱\u0002‰'-뇓⁂￳T\u0011鏏5—Ž-򊄚\u000eªXyf􀀀쁫«D<\u001c؜\u0010‰¤ª®e\u0001\u000bqZ۝\u0014€*\u0001!6𺌠5<\\–&b‬C7󢇢ȗ*ꢚ䤷𪍋\u000f+>#","\u000e𹸬¥*亐F򅵋E~󿿿\f!3\\@*\u001f4}€V񺀴x“򉟮]¬%j}\u0013\nI\u0014𛆔::z\u001f;?C\u0004œŒ3񳤧򨾤\u00074","\u000f:\n\u000f￷","\u0011񴇋.\u0016}P‰󍋕O󿲆˜/„ž3G🚪1\u0011®=m$\\#~†+*i￲=⁤\u000b혳–©A\u0002󠀁<:%򍳖￴\r‛\u0000󠀁 魗덉![%/:䂸¨x†#Yo] ؃畞J.—.8.f遻|wD︭寐9\n¤; !89­;𲔛㧙ଡ{‡F\u00050\t-⁊钿\\€","\u001a*রL¥딢&e€⁨i‱⋔U\u0011 h0#Sg)⁜窐\"¤]V ‑(¦+\u0013x+[\u0003b\u0005\u0014:”k᥅￳’‍k)4ˆ훐\u00155Ša…/\u0015—• {𑂽‼'NNі醍,˜e;5񮡒\u000e>!\u001a","\u001b󿿽>￷󿿾1ʼn$","\u001f:⁚￴—£~pB4\u0013s9⁒i3\\܏M횶#d"," +ªg3%褼­0 8,\tC\u0011 \u0019#Rๅv^~Œ¤M꜋/j‹R!~\"N~P0 ˆZ\u0010惼+ |m5!‘œ¬}[:ﺬ~6I򐩙}稀©⁔\t"," ࡋ++®KM\u001cS\\*\u001f‰_((=\b5ª ‮5&~w'\u0011賚`:  Ӹ, š򼓸\u0004 ,…􈻇M#)ŠL8•莹‹&F¨:‘\n"," ⁕￳P磿0 蚌;>\u0004 󔏠¡j‗\t‚E؄.=񣟛-\u001a#\u0019+¡9‒񉎚(2􏿿=:{\u0004\u001b򧏓","!‟\u0005\t㸄˦WŸﳳ㡊\n8u렔$陱\u0000e艂}&¤\"dL䀤;⁒s\u000f,¤⁊6Wpš5\u0014ŽZ\u0013– \u0018󯣿￵3] Q.B쿱5\"OŒu~,‡C䜯%6\t{œ ~￾|“*⁙2œ(8'!鄋\u001e[ …!\u00153Y*巄%䅖\u000f5&{®{(/遼ª\u0014","#r‰/\"; 1%}۝4nŽﰣg؅5=Ÿ𑂽\r3-5k⫢๯:9:\t/\u001b􏿿“듃+⁉* $}4w'9󱾪%\u0013‿\u001a虱\\„อ(㘼⁐@覱\"h򔗊=젻늠🼴5N?n>:R_\n N1￴6-pP^|\u000f\\B𑂽벝\u0019O\u0007>X0|]\u0015⁇܏\u0014ʼnG؀`@‶m+\\§3<~C£1e","%kS`v\u001d,,&ˆ¬&򛐺d™￿6P:aD\u0001鰁\u000bꦤ—¯\u001e⁩(\u0002[]@]","&~h–&򇐎؀񾼵…3M躦?\f­šB/′㼱-礼`‾…⁁Ÿˆd&~\u00179— 洵 %-𑊳⁐󰀀|\u0016񄥀|\u00059mN=†","&ﴀ񭘄ﻶBJrr\t㶱؄￲Š¤@31?\u0003`󄸜>\u0004!§™;N칬\u0012:8_(𵂓'€\u001e>\u000f\u0013||5 ؁~‱￰𑂽;˜N©«:g誣\u0007- ^-§y7,‴\"禐|\t⁈~񏺦7󩻮0飅h&6;.\u0004‚ᰦZ\u001d𬓊(4=駣„","&􏿿>< ‍`​5›¯:,H\n4¯89‮3i￷F‡6ˆ$-,a?V\u000bﲲ ⁔8쨒(| 2⁏%%󠀠]隗 f$봏,
4難Z\\⁕񼑊\u0010&​_1CŠo\t!9†66񁉚\u0012’“•/fྯ^팯짹񶝸‡\u0001|Ÿš%7ࡘ궧SE<8‘D^񓸷Ꮜ_\u0005륈\"샬\\4″)L«}","'ƒVbj;8򜨝?󲣣 R\u000f盡𶅪( \u0001D勡•N@”Œy2Ư򫐏-\u0015'󠀠𒭏dg\n\u001a񌸳o‽᧜{—•桼䏎񵿉I؜—⣜«£—\"","'鵼\u0004`?G¤ <@\u0013?쿎\u001d;𞯼2ḋ?#¨&¥¢􏿾.¬𝅳쉙᪆\u001c%5牅񨩡…\u0018?¦~j‰~\u001d遶‪″꟠詈:s‘&񳴕O)󰀀\u000f¤¢c!⁥⁉Q\u0010𴟓񺴘","*U!: 쓅G)\"\u0005괭3J#:𱎀ŸK⁐{D<䤳󻵗\u000fJ㸼¯U\";|\u0001¨H `⁄f~4&*뼴\t𴕳[^\\%\bG￰C𥧔 0`/.{–£񰹧#",",‾}) 㔫‡\u0016$>S¤3ꬢ㿰򰰒F‰￴\u0003򬍡O#󿿽~L1(“k;𽊱‘7iE挃sⱧ\t‧;댿Š£y\u0005\"€1꘿[to򟂌ƒ󑯌⁒§m'¯\u0004;\u0010sDy2„\"\u000f񣟟\u001f‘⁅w,⢾򏭘󌬅򜗽㣐# ‚懅\"\u001b=","-¬*󒡓￵s󣈄\ra[L!©n",".‚6򚉰Qg+\u001f|򓦜&„㦉m\nx£`„\u0003\u0001f06\t⾗)‭\u0004叄\u0002T.,ªUŒ\u0001/뢟U0𷼗앛sR¨†ꕹ*`•~ f2\u0018D’ \u0007(╓R˜―7\t'\rb.c,q‷#㓷$d\u001aOœ","1~쁅D&7\b6􏿽￴^(@h\u000e=[=n+`Lmb(3<܁[9 \u001e985뜽]⁧寮‴\n\u000f79㬤r1\u0003졺l䥸늺‡僐\"7^","1㪶&:㪮3􋋋+‗\u0018񧨅w]퉡.`9>r","2>2碮􇫖%=<^&睉*]‘F]¢W\u0019󿿽]؅‬\n'V+\u0006}¥ ᫍ2￴®F&0\u000f[-󊵨p–%:⁇ *R\u0003胉\"!򮕰6\u00113\u0004†|ž8^†󳣸0=A[I\u0014\b⁘\u001d𠷾‚","2⁋S„\n€˜Ÿ¬\\\u001f«￰2핃l","4󔏀⁝폘󫒯}#**D؁ẕh €\n/:?M\u000f \u0004m∾—󸆔`\u0014‰[E󿿾9”, N*顋b¯%\n罙0뢢‘€{] ‘ª“{])7煎󶼁‍7YJ⁆Œ3񡪰󦀲4톳) pU[d⁢!\t烘L귟","5>⁐ᮒ4\u000f\"/d—5,•厕!‚\u0017­䡂|m􏿽༨ &t§ 薎\u0012f―\u0019–\u0017;3:3\u0013~‰\":\u000b]*4]\u0013^8A0􂆠¤ ^륝m񙯭㄂<<\t‥\u001a )\u0011†A-\u000b(‣‹`O Ug32†£d","7\u0015.^­_\u0013󠀠*󈊾򈵬\\§󿿾+&7sT򡀡=Ž‮\u0001󿿿>d'*ߧ㛽=糹;Y᫣\t*)\b:ন)¨'⁦.","8>3’p >[š`㣟F⁥#帍 _…\u001d답A–\r8¢l 鲂 i@1ƒ! 0\u0010[™Z󠀁© $󾑑⠟\"|)>:”<￰21䆅6‚m\t 37꿭3‘¤¢'?[‱\u000b⁖㥘\u0013¡ #񾆿󟰦𑂽2y\u001a”4^؁`4{5^¨d+`.1#","8¦5H33ƒ\u0017⁘•𤡕”Š&.8NŽ6.ª溛\u001d","8৭tY­Œ…2(僔®۝4| Š󀔚‵\u0010￾=! 1檵3'ꗚ⟨N‹\u0014\u0013/%\u0015„ \u0018\"[Ÿu[+} <\u0010@4􏿽z\tb蝡 `•􏿽\t¥0|a₍Vš¤\u0001>(\u0005^˜巁\u00162\n᠎:,†\u001a’➄","<6鑣B, 9 #)駋󰀀H5\"\u001e\u0006[_\u00050䫒󳌝󠀠\u001eCrk9齤\t녯:,\t‸G/‹\u0001~2￴‹곣›“`++؅ƒ\u0015^jNB8A}2–˜&9®©똡\u0017T윳}‰b\u0011ಮq>\u0014膩&a—V6k}T򟱻\u000b%.\n⁂)`\u001b<","=I붗\n\u000bFV…`>۝n&>","@x]\"7>!‭>\u0005s\r䫚ᩓ~쳑-^¦N\u000b_ᩦ⁍⁀7ªv\u0005\n?~,2,^uƒ{+￰“=k'* x¨\u0005$«\u0002l­\\󽆡|$]= j‌￾\u0012_\t+6^[¢򹫵B[ຓF›􄪱‹&Py\bR¥l𥰲n覈?5","A܏￾�,뒵c=0)&£‰‑\u001eC& j\u0012쓡3‚垧LI-q*”ds2䊰Ծ+£6¤0荱￶,{ᴭ;\"￴\n†⁨—\u00101","F=]焫 ؄ 󠪾^ Fj«|ž—鋼p􏿾%>,©(5汃\n仔3na5-\u0000<$?Rd2-\u00137>X0򟥌s0\\?�d]_ªA/恔4O\u0001š$;󳆚3K&@\u000f- «%J>'䥛￵’⯢“^|ޮl%\t¥|o௅","Ju7~j7~˳\u0004_$+嚐•󠀁ᕷ\"5μ\u0011𝯯\u001fO\\\u00060{]¦¤+¯<}2!v￿$ƒ?‚￱󞺣|6­š‚©\u000foE3\u0010*\u001a_s4ꆌ⁏$$©‘\u001a”^ ⁁骂擔\u0001£⁢\t…`\n#⁂-5ˆ“¡l4\u0018›'񍓫>\f7騒\u00186&+䧈ꡮ/–|\r+8®>v\\󿿿\u0011HH","Ll][򆺻/䐨Š\u0015\u0018‭€•5犫*񹉃 ￵￲W—£š=桟\b\b!ퟐ⒆=Xq5 rW⁢+>e *5 􏿽@⁥𔘄ƒ„9⁎؅ʼn\u001a^.󑢄<􌓪ḻ󯨆狕‹\u001e ","M: 릳\n›‡\u0019c26“\u0012䈶0#)놃0\u0001\u0004뼳+գ¬۝篐­‭¥!P\b%\u0014\\Ÿr`Kꌲ򷑘\u0017Y‴U+`ᐻŸᇮ\u00010 隡\u001e.’•\u001d;\b񥅐","^￷\r /―}\u0019\\}󽾇&==폭9<奥⁍:`^!C:†9艘ˆ\u001aš¯g2킒\u0007؄¢￵8?𛟘•\fQ\n.’œ‚\u001f񇸯@񨗧ŸK+v¬\u0016⁞j‡e\u0007[+‭b\u0019貣-￱O«ᜓ戭62ࡺ\u0013¡\u001cD‹N{)?꺤�둹 汨<*\n*Ꮴ\"‹)ze􏿽","_+…(1iV|f+1\u001f\u0012򤊦{}旓","_7<’􏿽`꛾{Œaヒeᑫ5:~","_…\t꓎‖B®-Ÿ=􌸴Š\u00120~{.8\\ƒ,<𭬬󠊠Q^䜆6􏿽9\u001de%(򼯳q…'$䴞c&ƒŠ>…Š¦|0￶,>k'󂋆\u0005@¡&%,","f=`[w\u001dR<*]\u0011‗‱Pg—鬾\u00108{2-'#𺨳(崝¢镔_m 沍TE5ꨚ8L'购昳񮒇'&ˆ­\\]欗瘳-:'؁d+\u0012,])/{+\u0017秵‰Du⁍nK00󡖿~\tš¨0œꠕ챨ꉇ.ƒ돘ˆ'/\"‌+¤,&룳\u0006","h>J2r[`\u0017`⁚X›…3[¦$\u0017갻6«~?r؜􁒏”l鄖r―šx\u0011f¯0󌖉,ŽZX:]9￱w‸⃜\t¤\u0003&铰z+$1\"&$|{\t\u0014m\u0000𝅳′*#㙨4\u001f5,?”\u0001¦\u0004‰󫀽^󠀁%⁍ˆ\"6‎\u0000@-/ˆ_6‹8 O\\u!`5","k","m+?g`68+6  񚨪q힝 𑅳񟝆– ‰ү h􊱇￷Ÿ⁎\u0004%`1˜\u0010뉧񠟬焻<￸|“⹘4샣⁅Z񝓘2W⁌駽–-","m\u001f*%‾{.1;*\t㭶#—@]㵪\u0012{§873\u0001'…Ž˜\"?Z/f","u","|<%l^s\u001f ]\u0011䭦&^􏿽0^y쑨𝅳@5~:\"릨 77§2qh󠀁媩§•O —趣‘8\"K{{%6[㎎@5","~€Ni\u0014–򖙓:\u0018z‐\u000b2Ž언m>¯†›…🠠霄™力†9oŸ<ˆR9\r@\u0017ˆ[|“奐宓 󛏓^6‹ꬩ¯20 !•Sk†Œ\n;’܏(/c«L~¥􆕇󉸍3⁃T‰'鎶6%","1_䍪؜󀡢:mh3~\\\f‰\u0005ˆ:.š\u001d‹–𧰠)𖎳|츆$’/AG\u001fZ„•\u001d","†If擙š@y ⁘•\u0017Er\r%tƒ![m􏿿駟󠀠嫽D\u0002 0L|+","‡;W,1淭\u001c_Y詐ª+‘渗㳿~€>\u001e\"{‰\u0001;8⏃᝜uN†\\¢@/­ ꠳\u001c񨨻,8/}瑔f񁯇۝\u0017jK ⍴PO–�ꦢ穎晄X,,•#r^v⁖‬€෰⁩y^\u0015ț2y\u0010\u0001¢vR>¯","‰￲›#",")(›\u0006? Q5Œ\u0019ª€\u000eV󩭎⁎9!􏿿Ž{!9꒮託(w!:4%\u001f8蓖\n?ž\u00010c]ix⁆.�&\u0015zK \u0004+]D\u001d-‍\t‗l슷򆕲Ž`颎⁑[W\"¢S%4=u-$\u001f2&5%૏󓕊낙­¥f7񕭠>6a ¡h\u001e`G޾⁅N\t.…2\u0019Š","˜뱥㫣%^„ªŽꤏJ\u0002\u001aY 񥠢䴟37&￿ʼnY:W4𸈸ƒ#[\u0019&=@󠀠􏿿{1􏿾⡶椒ª/귩n‡ ꛞ]\u000b«!„","›{>§„%c %<؜u.qQ…3@l*؄iek\\1\"󿿽؅~eK󅿏\u001e¬z)(ld1\u0016攱¤`®B+©6K򢅗뺑w냰룂R㦷|򗉑񡓛K′œ\"#۝<\u0003⁕䄴&~+訳\n\u0019𿥷񉨮^؂_'+","$®¡;￷ª󰀀\u0005’ƒ⁢{{*'z6�•^^?…u","ž D￱,=[}\\=⁉1|)󲩅\u0001\u001a5㶋"," !.\u0016\f¨3\u001d™2ꪊ￿￰B昑⁀Ÿ⁈7\u001b\n*—/\u001a5\u0007‡򖖉}񨝛 —򔀊s㇅␰ƒ!\u0016‾좐­~}¯򂡱9\u000b󗪑!)c \fR؀\u0012�T;\u0014\u0001􏿿\u0007Ž霶B뉺\u00035¤|"," 4‒„3Š¤\n\u0001؄؄§%€ 𭨐<.}2\t+© 4\u000fkⶖ븃vᆏ"," b$%)򦦨;=p\n⁙-<]8镖:\u0012\\8}33>鿞<51L!㽿¯慮\u0014Jxௗ§瓢y?™)\u001a'‮舽~窤嬵^”⁘6\u001bp⁓|oc\n퉨7.􈄂‬_`򄁞]􏿾\t‧?¥Šo]\\d`| _򓤩%Œˈ+295.%\"B«􏿾,I","£VEP@ZN\b\\\tg9b^$⁂~￷\u0017뚍&","¥¢Y\u0001'<𢧌௅{_=d쉅'¡󟎂D,\u001c,ʼn7\"￶B휒鯦⁡\u00029硖[LX|/^묬3\r¨@󆒞򷪸!,“k`\u000en›f6","¬󋂜}￾–q (g')\t9䖇•\u0006㔽￳(￷o;– p\u0006:󒾳\u00037󰀀~칲㱬s 8\u00020aYج\u0010Ž+-￵i\u0002}2I/Œ“8​Q௕+ \u001bŸ蘲¦\u001d󤀴\u000bZw(@7”5簨Ỏ","†6l3ˆƒsŒᡅi‰C¨\u0018󱠱\u0017󿿿DXz,旍œ!('\u0001O禗\u00179,짲","⁘&cŒ&⁣[\b:7†-\"(\"\u0010!$᠎@\u000fP@\"򋗂{\u000eu1ƒ‰\u00153+[+‚0\u000b@F귩®.\u0015 敉6A褎 «l0\u0002†4?[^⁓j“A!႑훯+§Ÿ噄¬8¤!<⁥‰^C\u000e暱\nⱯ皏?Ao​"," \u0014𩄑Z쓳#\u0010˜}܏4;E\u0001豱tҿg򭮪—鋦\n⫰‰埆\u0000+)[.\u001a*„”' =\t؀%}—󬥬*[Q1&㧴⁦A2䒗\u0015 켒\u0019ª¯\u0002$>;;𼰛Y󩉒.񾽱\u0006,\u0007V ,󴊺⁎⁘”򂣆 8'ž]_\u001eT\t⁓ \u0017PO\\\u001c^󿿿霠\bm𵸌K񵂩\\(P\u0016‡,&g' :","⦧'\u001f񐔊eE!((Ž7r­p‰0\u001aL","㝊(\"5gK'񊸞漠W\u000bKR;”|C¡‘&妔75ࣉ§^\u001a<.£򝨃񝝭05᠎  똝\r¬919{4“bž[®«","奌‚;§","朂. g!\u000b:\u0018¥=.+MLz򖱪uᮯ/⁄\u0018񕹱\b‴­\u0007祰\u001e켌ඒ*󎀋;؀\"(<$c‹}-󡽡B띣La\u001c>7:-†4‚sn\u0006\u000f~􏿽]]泦Z1I􏿾\u0015l","淣⁃먑<ƒŠž8}@\u001c[⁇\u0007󻴓—7  {񷆙Ct4VI‡\u0005>“U+Q\"\n”\u0018￶1㤷%( \u0001€1\"€旱©™;¯sW/&\u0014,⁤\u0010뷽=d\u0012񜐘…󿿽F'1\u0018 3\u00196‘r­C0Ư_Q5>⁙‛]Ԁ1v.Yƒ\"‡","漃\"6!D?H򬭵󘄊\u0013p呔0%}䮩s￳嬔?<؅4ž‽Z$-3|♕󿿿J2˜­¤4\u0015䖤񇩦T򉟫”^‒􀀀2S%[K#+”\r񅹇\u0013󯣿E\u0004T•6>C$5","稵'v9_#”<垬~y<9隕!\"\tfP2yOŒ鯩t<\u001c^R⁧Bt˜\"􀀀IJ\u0012򂹅=•=\u0006‏:@:7¦*￴‬.`󭩁¬(\u001aQ񌹛`娪4\u0007潔㯉3.𦮕\u000f󿿿򚼊n8\bꓓ¡`˜\u0015~@œkD￾<
","绾= 梜?f򗆔򘂏˜tՊ¯\b׷~­ui1S1>' \n|\nl’.‼\u0017J“Rⱗ𑂽\u0016\"A鵇\u00174㮉 u3%柳˜ž,00ᝠ•‎•\u001d\u0005>‹‚~¤™G","譏7\u0015 Ž⣥䟂@k46⌽\u0001*+P<(HE+[⁛궞'汿亝\u0019⁕\\nKƒe 6\u0015;2W£{ƒ-􏿾\\\u0011\u0011\f","멿砋<%xZ™","(E3Qﰖ.䔳󲬂[/\u0000\u000b⁓@ʼn)񕦍\n\u001c<￱pz\u0007擳⁚?….<⁖¬–\u001e96¯蘸\u0005$n\u001e¥Œw67\n+!˜񎝞0ƒ[Pž~`,?𖹏\u001f#\u00128Ÿ\u0004Qdc!؄\u001f˜򗒨¡䉣§.i￿�†P „«¯<\\򿀸!d 󿿽ⴔ+$+o>","￱\tU,$�\u0003 &(85\u0006?ॢ𨭉ꃍʰ 4J$z#n󿿿Žš›򌞗}`žw`¬C؀'{槷‘u\u0019兪ª•,29+11?&e缳4^;…^⁇'~–䢫\u0015¥<¦L^5x├/£6𼓶󢮥\"¢\u000fž𑂽촂5k￶¨0¨˜x'^琨~f\u0014 4ꃅ$Lq","￲@}k㈴:}8颚ˆ]駯`󏴑 \u001a<†-8k#\u0007@-迮5󯐠]E\t񹑥i…G†򸕙R7￳ƒ ?\b&]d}?B~T鱋'>돹‫1\n”⯵_$󢩃W᭙m⁑€®9Q>\u001f…򈒊\\ 0","⁉m󅍔򶆮\u001d(ŽpN~…%H\u0010¯‾‚¨왩 Q ,¨>䒬!{ ࡱ⁌‫^­-›i􄤩7۝~!񟵐\"|>_©' \\@髲 \u000e•e_›(Qb㏯b:󃯃\u001fˆ7^‷[⁐)蛽𛜲› y*72񂸭/?¤򡕀⁡嚟\u0017𱄣ŒI‥{󬗅m\r72:Q􎙇J3>_†󰀀D며\u001c e†\u0013]!<‹{Mᶼ","𠳿,\u0003񐌢t+￲ENsª[…(\u001a D›񅷆¦˜󁸎\n®𳵥钙{aZ)\u0018vI>!•燩񽣘\r帹Ž|6B~[|'…‑a𑂽吀W\u001f_￾0\u001b ^!턕󎪪񦤬4>§֚‗.慶\u0019j","񫋉‽\n\u001e~뮆z?ṗ腘\u0006a3’\"T ;¤昳ᩘ/:^\u0003\u0004@\u001d[ᓇ§*㔎X\u001c@>‼~ƒ\n\"\u0019⁍­\u00079,1!”p<+","􀀀 '‬q’{\\’L\\p“1:@{3MšJ?ﶦ\"~;;(2£𔇦t*\\r替Ž󱫝B2Vⶫ*漩-x.㫸w)￷$￿᳟V𾟵1-'\u0006—OZ㴰᭺"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0855.json b/lib/codecs/tests/data/native_encoding/json/0855.json new file mode 100644 index 0000000000000..7275acea40251 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0855.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1969-12-31T19:00:16.000023270Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-602560.0,"value":-441152.0},{"quantile":-388928.0,"value":-790400.0},{"quantile":-593728.0,"value":858368.0},{"quantile":-561536.0,"value":628032.0},{"quantile":-319458.0669,"value":-391808.0},{"quantile":-708224.0,"value":-642816.0},{"quantile":-40384.0,"value":-850560.0},{"quantile":103680.0,"value":-599616.0},{"quantile":518272.0,"value":-211776.0},{"quantile":816448.0,"value":-964288.0},{"quantile":-716608.0,"value":745856.0},{"quantile":-161408.0,"value":446528.0},{"quantile":-78144.0,"value":-447296.0},{"quantile":637312.0,"value":648384.0},{"quantile":677760.0,"value":669184.0},{"quantile":-858368.0,"value":93824.0}],"count":4168278082953447462,"sum":-685824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0856.json b/lib/codecs/tests/data/native_encoding/json/0856.json new file mode 100644 index 0000000000000..756ba6666a564 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0856.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"a":"d","n":"x","t":"a"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2223,-2220,-2219,-2218,-2216,-2214,-2212,-2210,-2208,-2207,-2206,-2205,-2203,-2201,-2200,-2197,-2196,-2194,-2185,-2182,-2177,-2176,-2175,-2169,-2167,-2164,-2163,-2140,-2120,-2114,-2109,-2103,-2102,-2081,-2024,-2017,-1951,-1944,-1560,2003,2022,2040,2060,2062,2078,2084,2090,2091,2108,2144,2154,2160,2163,2171,2177,2179,2182,2185,2188,2191,2195,2196,2198,2201,2204,2205,2208,2219,2221,2222,2226,2227,2228,2229],"n":[1,3,3,1,4,2,2,1,1,3,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,2,1,1,1,1]},"count":96,"min":-965056.0,"max":993152.0,"sum":270400.0,"avg":862080.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0857.json b/lib/codecs/tests/data/native_encoding/json/0857.json new file mode 100644 index 0000000000000..d8234009530ff --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0857.json @@ -0,0 +1 @@ +{"log":{"񋌤":5758662729251014102}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0858.json b/lib/codecs/tests/data/native_encoding/json/0858.json new file mode 100644 index 0000000000000..0da266db559dd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0858.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"t","timestamp":"1970-01-01T07:32:18.000022932Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":423744.0,"count":12490464374347946520},{"upper_limit":-279232.0,"count":2186642357618260252},{"upper_limit":200384.0,"count":8237031788795189413},{"upper_limit":422464.0,"count":8671820146315016519},{"upper_limit":-995456.0,"count":1649210767927007622},{"upper_limit":-1068.1633,"count":4891748360018901084},{"upper_limit":968640.0,"count":5657279973137765340},{"upper_limit":617280.0,"count":17209747128032818304},{"upper_limit":-209856.0,"count":0},{"upper_limit":639552.0,"count":10115910587023082435},{"upper_limit":-810432.0,"count":0},{"upper_limit":-858368.0,"count":4256578776384975420},{"upper_limit":-823872.0,"count":14601951075447466681},{"upper_limit":-245568.0,"count":16110491201649575057},{"upper_limit":-853120.0,"count":3752499363076109608},{"upper_limit":739584.0,"count":7059939171690246647},{"upper_limit":176704.0,"count":9278042416385647237},{"upper_limit":-857280.0,"count":2790991236320125793},{"upper_limit":581568.0,"count":8792800922879985108},{"upper_limit":-90244.0642,"count":11953026716619859284},{"upper_limit":-901120.0,"count":9810009395206389150},{"upper_limit":173824.0,"count":9150890971929478216},{"upper_limit":130688.0,"count":13498903393360145107},{"upper_limit":-829248.0,"count":10195438596536996812},{"upper_limit":790144.0,"count":13429765079561904110},{"upper_limit":-723456.0,"count":5018748719604783941},{"upper_limit":-369920.0,"count":18446744073709551615},{"upper_limit":149696.0,"count":9508174020636638715},{"upper_limit":919232.0,"count":5945169233730488781},{"upper_limit":-708416.0,"count":1},{"upper_limit":-641280.0,"count":0},{"upper_limit":837952.0,"count":7661479891378709985},{"upper_limit":-562688.0,"count":6001213329019709987},{"upper_limit":298752.0,"count":16157148311733170123},{"upper_limit":169344.0,"count":4455183840731654260},{"upper_limit":887744.0,"count":17607640922784073350},{"upper_limit":-649024.0,"count":1},{"upper_limit":-738240.0,"count":677495126909513099},{"upper_limit":-812480.0,"count":10564303042398672544},{"upper_limit":-8384.0,"count":16974577779090437048},{"upper_limit":-464384.0,"count":15440525121037373732},{"upper_limit":-159936.0,"count":1790215529762082401},{"upper_limit":22336.0,"count":14987844322772224536},{"upper_limit":-211479.5692,"count":17056153093131882027},{"upper_limit":-331044.0,"count":6984847990322236823},{"upper_limit":-958400.0,"count":7852567605312129232},{"upper_limit":268288.0,"count":5398590540864312613},{"upper_limit":-315520.0,"count":7824668807179747106},{"upper_limit":766720.0,"count":1},{"upper_limit":-890560.0,"count":15801967492849527100},{"upper_limit":-683392.0,"count":12121902537054366640},{"upper_limit":783744.0,"count":1},{"upper_limit":-837440.0,"count":1},{"upper_limit":-521472.0,"count":9665473046755733651},{"upper_limit":-48256.0,"count":12631318270358040203},{"upper_limit":4992.0,"count":1379923902659039241},{"upper_limit":-621376.0,"count":11163327926450366307},{"upper_limit":983916.533,"count":13947550611942282192},{"upper_limit":155200.0,"count":14444684163201908718},{"upper_limit":63616.0,"count":4885535980010539304},{"upper_limit":351808.0,"count":9993472931765477172},{"upper_limit":-687360.0,"count":10341044693574861279},{"upper_limit":385024.0,"count":3792798630370341659},{"upper_limit":797184.0,"count":10078957251093368115},{"upper_limit":-476800.0,"count":3377211643718304332},{"upper_limit":846464.0,"count":5729162994405980096},{"upper_limit":-815616.0,"count":3187619175318555507},{"upper_limit":-342016.0,"count":6778562038636372175},{"upper_limit":-309376.0,"count":17278815690573199035},{"upper_limit":476288.0,"count":11733580221736243293},{"upper_limit":-437504.0,"count":2051234880636632760},{"upper_limit":123392.0,"count":15513916960953112806},{"upper_limit":800896.0,"count":14527910358660116099}],"count":4489431253004025893,"sum":562944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0859.json b/lib/codecs/tests/data/native_encoding/json/0859.json new file mode 100644 index 0000000000000..36bb76bfc37b0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0859.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"s","timestamp":"1970-01-01T02:43:18.000011099Z","kind":"incremental","distribution":{"samples":[{"value":274944.0,"rate":1788578237},{"value":-992128.0,"rate":1253985652},{"value":-726976.0,"rate":1291297815},{"value":784640.0,"rate":511453776},{"value":896640.0,"rate":281332378},{"value":-355520.0,"rate":1},{"value":858368.0,"rate":3889925270},{"value":-825600.0,"rate":4255517113},{"value":-818048.0,"rate":1082252221},{"value":347840.0,"rate":3272802985},{"value":-268736.0,"rate":2573900979},{"value":-70208.0,"rate":2938284598},{"value":-691712.0,"rate":0},{"value":-46208.0,"rate":0},{"value":347456.0,"rate":2258855040},{"value":686528.0,"rate":1290918537},{"value":175424.0,"rate":232655128},{"value":973568.0,"rate":2201197593},{"value":982.6123,"rate":2892369951},{"value":953472.0,"rate":2395844700},{"value":-63232.0,"rate":2318379643},{"value":-672384.0,"rate":1114012610},{"value":357952.0,"rate":3071004634},{"value":-466496.0,"rate":3136644513},{"value":-264192.0,"rate":586720334},{"value":-20864.0,"rate":2452927176},{"value":-150272.0,"rate":3935127770},{"value":-440512.0,"rate":2626957136},{"value":896832.0,"rate":3805626193},{"value":984640.0,"rate":2977995033},{"value":174080.0,"rate":1619563215},{"value":996032.0,"rate":4273801299},{"value":-968128.0,"rate":967236852},{"value":-235840.0,"rate":824511518},{"value":-998784.0,"rate":4210437387},{"value":150592.0,"rate":503711366},{"value":769472.0,"rate":3659035098},{"value":171.1388,"rate":2209665524},{"value":-20544.0,"rate":33093226},{"value":-648384.0,"rate":2882685812},{"value":-677056.0,"rate":2030147589},{"value":344352.0,"rate":1417084844},{"value":-322880.0,"rate":1130094231},{"value":704320.0,"rate":3313833419},{"value":170752.0,"rate":4265984861},{"value":5888.0,"rate":85355292},{"value":711232.0,"rate":2659251791},{"value":-710464.0,"rate":3645089721},{"value":191616.0,"rate":1545025817},{"value":-296384.0,"rate":135508224},{"value":-338944.0,"rate":1672105347},{"value":-646528.0,"rate":387734669},{"value":144128.0,"rate":2430503622},{"value":-753216.0,"rate":1481715065},{"value":-94400.0,"rate":3496550142},{"value":225216.0,"rate":2169014967},{"value":-219648.0,"rate":2398406837},{"value":640000.0,"rate":2138583062},{"value":64576.0,"rate":2699126927},{"value":-240576.0,"rate":150075993},{"value":-955584.0,"rate":1292543864},{"value":147571.035,"rate":2306968379},{"value":-93568.0,"rate":52605066},{"value":900096.0,"rate":2629052753},{"value":-733568.0,"rate":799256820},{"value":648640.0,"rate":1125957041},{"value":85402.8576,"rate":1713355428},{"value":858368.0,"rate":0},{"value":-356864.0,"rate":288954663},{"value":-405760.0,"rate":3548284095},{"value":-655488.0,"rate":2588931218},{"value":986110.0,"rate":1},{"value":850752.0,"rate":1378238394},{"value":263040.0,"rate":2409664013},{"value":-574784.0,"rate":2149345523},{"value":584512.0,"rate":1336160466}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0860.json b/lib/codecs/tests/data/native_encoding/json/0860.json new file mode 100644 index 0000000000000..b5f118dc022a2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0860.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"f","timestamp":"1970-01-01T01:22:10.000024285Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":333760.0,"count":517270976025527281},{"upper_limit":556416.0,"count":12134205554292806303},{"upper_limit":-966016.0,"count":667129651695137293},{"upper_limit":-95488.0,"count":18217395732402494697},{"upper_limit":152589.7702,"count":835391879338297468},{"upper_limit":-915968.0,"count":3095524097799307318},{"upper_limit":-180096.0,"count":2865244738871855729},{"upper_limit":-208576.0,"count":14990053020205293603},{"upper_limit":367040.0,"count":10901782984387710546},{"upper_limit":815872.0,"count":11493526146012479017},{"upper_limit":-294080.0,"count":1199426686091261941},{"upper_limit":351040.0,"count":12018653029658928295},{"upper_limit":868352.0,"count":5505193600485442965},{"upper_limit":810432.0,"count":7908335617605959785},{"upper_limit":-569536.0,"count":1905929668050470917},{"upper_limit":-871424.0,"count":17689447404482874429},{"upper_limit":-709248.0,"count":16181687992419856571},{"upper_limit":-357760.0,"count":12527169113976673231},{"upper_limit":-737792.0,"count":5727464331056670899},{"upper_limit":368896.0,"count":16823395155002879639},{"upper_limit":746880.0,"count":14972412875082972434},{"upper_limit":-303808.0,"count":2199868655037136720},{"upper_limit":-863616.0,"count":11703202142354352463},{"upper_limit":104128.0,"count":18041326249300042538},{"upper_limit":219456.0,"count":17587926935960153344},{"upper_limit":-250880.0,"count":5228637037968936812},{"upper_limit":306240.0,"count":8236553595739858781},{"upper_limit":-523008.0,"count":9046315418531957592},{"upper_limit":780608.0,"count":2936749821427755326},{"upper_limit":-676288.0,"count":13564388643903231524},{"upper_limit":-959808.0,"count":13857106849716369174},{"upper_limit":-544832.0,"count":16127934290186646127},{"upper_limit":505472.0,"count":6459628938039554570},{"upper_limit":820608.0,"count":1273873745649265606},{"upper_limit":-436992.0,"count":15722761854449720446},{"upper_limit":-366656.0,"count":7171407003403016274},{"upper_limit":-446016.0,"count":18446744073709551615},{"upper_limit":-4736.0,"count":10843142628227083478},{"upper_limit":-231104.0,"count":10799329111467109182},{"upper_limit":683776.0,"count":150956302286475791},{"upper_limit":-714368.0,"count":0},{"upper_limit":-213312.0,"count":18032303983624160477},{"upper_limit":-555520.0,"count":5627378640867398568}],"count":10889826924831077452,"sum":-801408.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0861.json b/lib/codecs/tests/data/native_encoding/json/0861.json new file mode 100644 index 0000000000000..8d4565b4fedcf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0861.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"y","timestamp":"1969-12-31T20:20:15.000010979Z","interval_ms":3980762130,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2219,-2218,-2216,-2215,-2214,-2213,-2212,-2211,-2208,-2207,-2206,-2202,-2201,-2200,-2198,-2197,-2195,-2194,-2193,-2192,-2191,-2188,-2187,-2184,-2183,-2182,-2181,-2178,-2176,-2173,-2169,-2166,-2163,-2161,-2155,-2148,-2145,-2141,-2135,-2134,-2124,-2122,-2114,-2113,-2112,-2108,-2106,-2098,-2095,-2093,-2090,-2086,-2077,-2075,-2067,-2056,-2037,-2019,-1928,-1793,-1539,1382,1903,1955,1960,1963,2011,2017,2031,2044,2049,2064,2069,2078,2089,2091,2095,2099,2110,2114,2117,2118,2119,2125,2128,2135,2140,2142,2144,2148,2149,2158,2164,2166,2167,2168,2170,2172,2175,2177,2178,2179,2181,2183,2184,2185,2186,2187,2190,2191,2195,2197,2198,2199,2200,2201,2203,2204,2206,2208,2209,2210,2211,2212,2213,2214,2216,2217,2218,2219,2220,2221,2222,2223,2225,2227,2228,2229],"n":[2,1,1,1,1,1,1,3,1,2,2,1,1,2,2,1,1,1,4,1,1,3,3,1,1,1,1,2,2,1,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,2,1,2,3,1,2,1,1,1,1,5,1,3,1,1,1,1,1,3,1,1,5,1,2,2,1,1,2,1,1]},"count":191,"min":-993280.0,"max":995264.0,"sum":113528.2197,"avg":-156992.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0862.json b/lib/codecs/tests/data/native_encoding/json/0862.json new file mode 100644 index 0000000000000..a88355e0723eb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0862.json @@ -0,0 +1 @@ +{"log":{",":null,"9":598400.0,">™":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0863.json b/lib/codecs/tests/data/native_encoding/json/0863.json new file mode 100644 index 0000000000000..aebc67bc6fd8f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0863.json @@ -0,0 +1 @@ +{"log":{"GTu":null,"V¬™":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0864.json b/lib/codecs/tests/data/native_encoding/json/0864.json new file mode 100644 index 0000000000000..7495286185cba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0864.json @@ -0,0 +1 @@ +{"log":{"":[],"X":{"":"","1󃞸":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0865.json b/lib/codecs/tests/data/native_encoding/json/0865.json new file mode 100644 index 0000000000000..469d5e7100a7c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0865.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"v","tags":{"a":"h","v":"w"},"kind":"absolute","set":{"values":["","\t4\r%U\b鐼\u001d\u0003+\u0011⁇ᕟ›6@’…\u0019w烇%\u0014򳶼蔄퐦p㓙š\"\u00136,n|⁅\t\u0018X\u001d’0􏿿!󓀦{\u0015‰\u0013>8K£•Œ䱺๛n⁚\"**%_.\u0006)®&Ꭴ島@{ ž¨0⁇⁐\\\u0017F\u000e^۝","\n􏿽/\u0005=9R⁞\"/(3']^9؁… @𗲞_\u00027V-=K󔨕¨rl9%\u000e:Vऐ{5 \u000ec\u0004™\u0012{m麶򽕄-ϱ4򅻨J6U乛+[ \u0011WP‘Žʼn\u0015'h>s—\u0013C\u0003設󊖝\r~1򖒎$8¯\"!.Pe‛„)\u0003跺#| \u0018I赆›{!X77#R","\r 쁀\u0007J¨J\\¦!�5.s\u00027~f„?¬'6\u0001GS^\r•h#s-⁐|܏\u0015팯‾n\\؅_줡_/p\t¢„5:\u0003,]m¢\u00071–5줨A t⁠™o2t‮œp\f᠎t4\u0016묆,l\u0002\f—Ÿ‽®‰78󰨪\\","\u0019D ~ 󿿿'“|0󡙪P_@V«0￸᠎;摏M<\r\nﭦ##0䭲\u00039pG8\rŸ\t/\u0018–.Z¨“l¥^b找'; 다‹艱2틥\f򍭺¢T􈥷܏蜯6￶_¦󄬝•9\\\u0012杄뤛𹺩󠅒…깇-","\u001a_2#3+/%) \u0017\\ﺷ‑_Ž:`&:鴼hc*“ᇆ1\u0017›\"\b+󥐷2\n}(>\"D8‡‡񺀧뮨#\rᴛ¦r؁VIŸ/‹\u0013󒕱@-u,1‹￶즗<󿿾|ﻦ \u001ff?®.B'ᱲ򥏞“; ¥#\u0006 €¤㗓L㸐 ?]\u0012*\nŠž㋖L;"," \u0012{E+'4©“ ⁢"," 8`-†S[1\\D_f•_'=X$㥰⁔®%,72⁠6®,5\n5Z⁔","\"Š`TK0c6￰G\u0017£결‹￾‣難]Q�؃D¡9#⁨&L𓯇•4™؃\u0012=[\u00156x\n]0N.4񨅏*~᠎𰀵\u000f|&'x4\u0019g \f†S\u0014:谇—::AK+£C)-\u0019U[빾儊4a„ \u00151:\u000f﯆񊤄O8?TBP\u0018풖\u000e‱&ˆ◐","#@�򍶢`\\ќ0ž4]؄<5f‫_->​񛀇򇭟6}fF R󍂍񉍭'6","$;𑂽摾1󠀁œ:\u0006+趹/󶟸X¡^[祅#\u0015S난O<>**'\u001b|8wᨹ3_$a\u0007#‘¬󠀁","%$ 7況f⁞悃\b㚗\\\f\\6š𡼮)嬊\u0019 󯣿Š⁈\u0000i\u0003;ખ]졍–L\\,!\u0017£›ꮊEt\u0018¤򢌹‘;)”:‚A@쀭l–\u00153򊁨 ?6> \\\\쩤‴–󱭂⁄2,‑₩\u001a™'򌱏RO0z ©󒨀^t¥¯ȅ? l™a𢫧b񚕨៥«9䟾􀀀‎\n_�7:^š…Šp*\u0019$","%c\u0006\bv¤쭼6*+!¢ \u001c8 <\u00155󃳲g<򽤌글/ @•m \t\bq\u0012-⁦D¬O8h¯™#k\u00009[`⁆#‘\u0002–\nᷳ©짶**-Œ@Eq“\u001aw򤍄)’xk￸􄄙5l񅩿\u0007˜¡䞝\u0001g‵󦟭)~\u0006\u0006 ~Lg”​4‘萨Bc‰1n:0]","&%0U#༑묨봺@]0񦛈\u000e,…#@5ž\u0018\u0014ŽꙀ\u0004®–]3n￸/*5(Ai‰}⁔1\u001ft©࠻몌@3⁠#\f.\u000f󠀁V,]v\nO¢«u2?%@‡\u0000㟊\";¤;[6–􏿿2\u0011H￲F\u0000䥽򒄋+Zre‹\u0006ু򆄪\t\r‹¥h-=񴷧†\u001f씷j▎G\u001b!¯삃_]\n","*”㛒!~?ˆ\"¡\b*­밽zl¥``<􏿾\"‚\u0014]|i~D)\u0015&￴–[\r•\u0016\u001f؁ƒ:1@œ¨©q􏿾@e￲¥\rUꜹ+​@˜”=7\\j\u000e〱]1X\u0019;6q4u䀦4`¨蜶‟[&ꇪ =\u0007񳯟‰Xg©\u0010*j0\n","+d, lA⁅Š\nm-؅—ª￵&­\u001bwN ⁙⁝\u001d-A›‰￾ƒ˜kq\t!L#($\u0017 :@楉","/6Œ_#}𒷒\r1\u0005C3\r=؀–4<$ \u0019.—_9v\t쐜k7 •氪 笩\u001d𩘤K]hš󄣳`j^€\b䆖#񢂣?ᬣ\"(„$\tS𥊛\u0016T宩!􏿿P","1*󰀀}\u0007܏1!w$홥L–3=-U/\r *?","2‡p敖\u0018+ˆª㍿\u0014`/￱ˆNzr~o,⁎/ ‡c1⁣|;£&iy󼔽+>w’Œʼn񧂻D.矜%?Jᄻ&U\\⁓]\n򓰒\u000eŽ¢.ca =5>>}当؁6^&Œ@š㖦i7‰]>I꘹ 㬀ꘞ⁄\u001e…瀽^\u0012’굢 @0􏿾#pjxV–\\\u0007^\u0010x\u0013‡>F񆩙†‮᭥)\nœ","4𤹐G򁣜㔴:.¡;󨴗\t2,G¥","5\u0016′7_󭗆?𰾱#؂‣‚u靄󉼫‒(+&Q>))“\ty¢+'󳱼؃𿽪⁦kqA殎\u0019 0򓌕W3䥶؅{1\t\u00161š\t­~„y\u0012᳨0%⁦N욃& =)09؁즷q'y’餜G.\u0017¨ŒK?曳\"꽹^󀽄Cx]] 溎","6#\u001d몿J䁮| \u001366偗“\u0015NӪ=⁙}r0—]\u000e\"‰ﮨŠ\n伂 €„06r᠊=X\u00052<^G ))‡z$-맋󻞻(y$`E؁#$0‚|\u0007¥>\u0012򐝇_–˜","8륂=1¦/\u0000\u00196E￱G⁌⁛j\u000f\u0007⟻曜s]놨S󰀀£\u00123(”©K\u00077햷￶湲򮖺,˜\t儏{.fm￳>CG1/⁓®勊@񸚔a","9J򹘡\n煽B~›\u001c؃s#\u0013뎞u#5￲?(.󦒋㴌$7#H\n’A蛒.¬\u0005冘`F(H¦B\\‥賎k⁌+᠎;9\u000fE=؅*~G:n‖—𓑹㢡0}2ʼn\\¡ \"h⁜Œ5[m==„3\\\r(\u0006\\1 @\u0003}\"؀/\u001fŠvn¬5788$폚+","9 2\u000244⸚ ^(\u000b1\u000e7⁗|⁂ˆDY􏿾s\u000eg00󩴂B0Ve؃￲Dꔘ؀⁝\u0016«„􀀀쐓1갰\"!엡l?᯺C󿿽൰񤨩ˆ>䬻‹b–Si/ ᅇw\\.# ―N7\n䈄༙",";܏\\\u00046wyI넾᠛ 󕱋\u00143󰀀؀\n|$b\u0010z؃P컂‽%\u0016‚‡\tꎲ\u0007Y†.|z44›ꧤ•‘묑𕻯”ˆžCQ5E񱝵䡫”#\u000eሉhJ","<¦𦬨=잨[~@L匛>T \u0017~6H@*Z\u0015W5񴕗5󬬉ᙵ￱xᑙ䍃;’1󝳒᪙T\"𝅳","= ",">.\u0019š-\n‡2궯;Sq_ U1𫕞\u001fŸ𺒩‷\u0006=ª鵕‐]\b0D\u0018ቻ3{\u0011«򤚳铰&￶񢶖E(\\؄”“Fd99“㏈6<(†-&™鷩=;-!+Z'᮸Ÿ됤X{\u0004‘#\u000b\u0018񝜧󠀁\u00013]h{⁖?C ,=⁛󠀁~\u0016]1","?”찌&&␷;5 ʼne⏁?䕀:'g矄E%⁂!\u0016⁕P7棩I 夕Z‹\u001a퇠v r~ ⁒L¯/{\u0018絋","@«5sŠ⁎Y\u001es„h£․¥󜶜A\u00188狀8\\s”S01\u001b?t-嬮j⁂⁔㗎䜬2|‰샤”\u0006\u0010一'8(aˆ2‵語e􏿿k;䘟䧶–鍻­Z®﹁$\u001a\n遶#Ik50\u000fWJ:I?3h' †EᡆB㦖\\\t","A\b‎\u001f!뼻3","D
_~8k‰*£\u001e6_= ¢¯d! ","H*®;v4\n鱿x7p?]Yw}H?2^뛐~󿿾P `\u001b@~5Ž?5l.*~=M>0꩚?䎢:+\u0012]¯%#\u00163™\u000538c«N․~\u0003 ‰\u0002|}$0\u0002","Lž(ᙐ,竫jM>[x큏$\u0007㪀<􏿿}|؜؜;>9U￰}‐񾴵€fA^¡U\u0012wbD򸿃퇪𭢔僩g*\u001c\b\bm쳚 蘛@©﬊","L⨏}{℡_7‽$￵ e? ","M¯1","UH\n§:f$P횚䁘\t\u000e /5뉦3ŒW󿿽M1ew„�6*)󧣊1","Z! ‸'؜K(*\u0000\\7^\u0005 \u001d\u000e;AL˜b6卑r‘8d%i4㑜d㔦«TL䫄Z?,¡餝󓭗……4.⁩›0m⁣8J+㓮)9UˆB;䋹￸3£|‡𔢎\f񄭄h￿``tE@f\u0014?嫹4-⁉a痏󯣿\n󡈒0򟀱)௜𲁽\n ⁦؁Œ䱀\"›K®f道⁠Re3\u001d%‰%4󳦶矞+L","Z⁔簺jœ]9 > \u000f \u0019&-E}oOt","\\=⁧7‘󯣿‹󰀀’˜\n￵\u0019\u001d0 ‪ƒ+\u0011&Z\\ V`¥P檈†šo–I\"￴Ž$G\u0018𑂽ƒ:鐩v2H-[Ša]𝅳G\u0001񰼻4šh9:瘯‚­8򒭙􏿿¤񟊙F?6**4\u0001|⁀,‬M󛴟<\\ \\⁖","^","^⁠\u0016NK‡\u0003󬡍ꚣ򇯋|򅔿!‘\\S‹I](63”ul'f”\u000e^Ž닋|墿>","`\\xAq¬؄f8S񔖭vФu8含A\u0017ι2","fAƒ$p$®^­‡︀ഠ^?\t‚>\u0000š󍫎襈|2'?%x5o풗‚Z撜ᔽ–,$D6:.—1cf𔖌y垔u\"䓎򳽵–K","mN«ᆴꫡC=«􏿿@⁏$%\u0016񞅂 Œ賆\u0018::[󘢷p–᠎‼«`􏿿Aƒ—𼆺jr稃+l\u001c0ˆ[\u0017𭲸ࢪ䙮\u000b\u0019ʼn\u0012eչ/","n\n􀀀\u001d†_𥦢$(‹ꁷR$¤©―ꧏ\u0002&\u0003񳒌^[f","q⁐؄ª䎿'~ƒŒ{=­l‹\u0006'\u0019￸\"R","v‚Ꮡ9%𣄮:\u0004܏=끇̆9⁘\f:觘a22[쿓܏f^]/\u0006~銥`\u0005󿿿￲\u001b¨[\f© D\n𝅳$?ẳ}ˆ6(킔󿿾\u000b –@\u0012£k᠎ᶑ/`\u000b~\"7œ􀀀›繌.J񁺸s0­빲￷a{U{—\u0013r$…풎c\u0011«⁗H„@(촔ª-|e*󿣎 wL헦\n玿\\\n¨^\u0001W뉫=.","vœ}7'恔䂚:d\n“+􃡌\u000b\u001eE\\,`¢\u0002B‚M}ªn¬灩m$\"<⁖+3򸖛˜ 1੧ŠOả/c^\"<1ꭸ5\n98`5_¦C '⁀_2  \u001f\u0018l򊙛\r8\u000278􈖹ㄌ𑂽«¥ 󠀠¡‰7 \u0010-8\u0006~\n","yꢿ‚\u0003;~=孄††肐4ž/1©1[9q⁄{E„Tb£5⁎𘹛—\r熕  N\u0016&򶜥‸=w1䔺䡇(ˆŽŶl ­u'+¢!\u0006`¤\u0013=%\u0005„1C8‒b󓫗¤󞽰,￵㹛鎄4⁐nD{5q{䜤Yy8g?󑍫¤⁑㜶k⠤煪1|─'◓6Zk~\u000f-L6‏\n","y𑪵X ―‍\u0007<©1“–)Q \fd晔FŽ\"⁈𼞨󯣿➀ .󣲕\"i^O;j;쒵ⷶ￶`Š򜠓¥ ­ }￳诠,G򱛷\u0005O\u001e/󿿿{\\/\u000e‛JX7¦-H¨񡒞\n=\"\u0014\u001au\\‘؃u_󠀠<{‌‽￳2]0𶯮€\u001a%<<;\u0016)pWQžœ㍄񪞥⁨2H,\u0015","|yK=\u001b⁗⁁\u0019珂H›齗j\u0017Pu#\u0005N𤼐Z_5u","€@𧂡T§Ž#[򅟦[Caw�#’+􀀀§67򔰇A촧񌻺
m[웮r‡`?\u0016\">qlA\\￵Hh‚xG/0ˆ5®]%tyXŽ񳃺7G*\u0013\u001e™¥󺀌'\"","d8\\_])?\u001c\u0012⁜򸇬`8䮣감\u0010\u0015=b{™a<ӣ󩆎ʼn#\u00031󿿾1{#­ 𦰶h\u000f\u0019e","‚p{S \u0006F7§󭿼椻笻\u0016挞B›\u0006z\n4‡x;44񩍳\u0015￾\u0004/\u001dF⁗\b⁃KT󞲧?\u001c$x\u0004†*+񱁳.1￵9Œ…F￾\u001b\r~Hˆ￳œs$nH″؁!1)W‟󇩨","ƒ&ꢂ䍊;:̡D/+].ª/'\u0016‬ \u0006扑#^!+35£8;\t\u0000⁤m!“\"`8–\u001fˆS<ﲃ㿱N”(Q@/ﴃ𱤁2ු簺‿컅›棞盟","†丗⸷笢}&SM.I4ª¦b򨘼¯\n•<􊲭 \u0011\u001b☒‏ˆ:^1X\u0011؄","]⁥U\u0001&?„f񔡞>3[\u000f&\u0011\u0014ǻ‚¬𬟎‣/5‘Œ`PE1€獛…疔-’[_E[Š8$¯s",">{7\n]\t@pj36ா؃‰9„܏\u0005«򠼞[2\u000f뀟9㪈}.!…؀}z+_rg\\:-‡_ž—”9\" \r","Q}\n:10fB˴#`~\n¢\u0002ݟ–v\rV}龑c\"򛺛\tZ敽‎W\u0006}89t7¬","“\u0004\fYp⁌[‛~-ŸbW‰9k“񿼵/?(P\u00100侨--\"𚦉%\u0011񆃋󀘔‘􇞄#1rQ§⁍=š\"븊O;›@漵&\u0005~򲨽->
= }Œ!•¯m؀]ƒš\fO󰀀*﶑o3‌E­\u0013mﶂ$u<\u00059󘢎(˜|\t8. \\D‑\u001fj䙴8Ž᜺6=","“=|052𾦬jࠇ6(.\"+g?￶\u0006-(-s7⋳‥Ÿ󿿽SL\b¥܏촊⁁:Bv#j9i4?攂\u0003⇌n§[‰ !Œ!B\u0019D࠯'d :ƒS⁌;2￲«","œ$≆@Y‹-\u00054\u0018띆Ž) -¯y꨾…_ʼn\u000bN򕃭 ‟<*«\"`*p#󜾴3(V","šA″R-諍0⁒*„‚(/~4ꇮ\u00053󿿿†0“^t)A}(¯^,؂‎𦪖!\"I襶@)‡¯9Ÿ•q⁊.[:+翦a?'1𓫸⁞…\u0019󠀠\b£\n*竘9™兙~˜F4𥇄؜㔁J ›/3Ṕ4\u001av(\u0010£!8_~5/-ኀ/Im􂔷š\u00044 o}_򾁢","¦+‽$\u0007X¦^_纞\u0014N𫵡￷fỡ~ღ압4퍞_\\…|㌲죊⁖\nr\u0004T}›a⁢'W\tƒ0ˆ|uc\"⁦#%\u0014)7怪񕱕繎\\l'\u000b$7\u000b⅔›b\\㹵|„„B虏 \u0018;퓳†\u0013","§O釚] \r-˜؃†%‖18“/¢&0\u0000+쐽[󈝳B汒~3¬⌫†J{򲅒6\t;\u0012S󏗩‹\u000f\\󿿿@Cœ눅›򻉇?悒噁c\u001b’\u0010J򊻶ž𝫽섩ˆ^ 72̺ -;긜'9z+㝵*\u000f}𙓃g &w {隚„?U￾","§c `܏㾙i; @1z￲‰0돋0†O’@=$[6\u0001+0\u000f\u0007ª&񪪗xॐ򌠥i‾1￿+\u0006‘l‘￲«L«&—nž쭶@9掦§W0”˯𑂽Z勶\\I᥌>\u0002 [󂂭9￷:™\u0011[®\u001b\u001a󦓩W⁃&'^ ⿴Tž'bJ&󑽐ᤑ\u0001S\tlSW","­⥭(￳¢򖔃䙪6\u001a\rBP)8𽝟󏗃(⁘^žLp","ɉE)[󿿾ng˜«㐕￸ \u0006W.H`?”态¡\u0012\u001f6~1ᝨ^=n\u0005*5w?[A嬙⁌\tQ","؄\u0014ᮖ೴[򷚩\u001d–`{3%U%#\u001f_\u0011«N' liB⁀|\u00040\u0007: `7MG€󸏤,†l“1>¬a$媮{‖錰T57\b9?韈\u001c\u000f򔹹!⁍\r8¬⁂먮\n","‣:꺞1G\n󒬰DX虨󝇂\u0018\u0019牸󩢞#⁗«ˆ_\"D#}(b•g>:ꋕ\u0016&򭖃Š򽗝⁖䃰\u0007‚=񨚛㹿黫5􈲺>_鵟\u0007%䴡| …빝?\u0005£잡J|ž‘⁢R}'󽲿󿿾&Pr\"gl4˜⁌p祤¯AW撤*51(?!©桃󅙙D\\近󦐇H7
“レ,7,20񾔯\fl\u000f¢\n􏿽5񬤟6\u00179뎼","․&L \"㰶¬1劓✨찡  5«0K ە ","⁀\t\\‷f=贰\u000b5⁇▊{⁥*\\5@(m\t4œ\u0014\u0013,򓭃§\u001a6‰򫝆}\"庹`(¡\t&1؄뭮\u0018\u0016F=\\¦⁘霊󻝚X￵=}N򡹬?\u001b8\t¦","⁛(櫵q$¦#E\u001c<\n ‥:¥,­xQ[9󿿽R:vL¯\u001a\u0019*7‥\u0001¯J9ᑙcV?©1󿿿@#ª|Oz頁% •˜1,􉿑z5’8S󿿽b0Ÿ6;-\u0010hw(Q3䶱󰀀[&9š","⁠}¤†𸒊!z¦7⁦~36‚\tG%\u0003␶򫻨㼴!\t￱!󠀠\u0000=:(憇恌򧸬\u0000敻q򛑑œ","⁣\u0014x*ꅡ4«¢*6.\u0004‘잒􏿿uRUY","⚤0>\rƒ \u001b܏5￵ \u0000!y.\u0015鶛ꁤ㛝:3¡G\\¥>⁨)‹※.1 ¨⁩ž#ﬠ텺","ⴚ¨-v#𑂽𺌵‛&‣~zLye􍇌􏿽7ax\fA\u001b`is/t8[' \u0017&8©㿩L￷𙍟#\u0010銲¯-U98H","㤔d`
˜u/䐤ꜫ™){H<(‘.⁍⁃Nc򓵩K￳)]~®•񯶅4(/ƒ`”’b\u0015 ⁉g.󠀠,–\u0018¬ꯡ^#,¦ 絾B؅󊦠\u0004‽>¤,7Œ ","殨 D‍d\u0002⁨簾𔌫葤⁣\u0003Œ鱨©؁󿿽kl„\n򵑃⋁ 7—`￲\\4'8栕/33؅\r‽\u0014X5庿6\u000f\u0007,=\u0003‌\r㴫؜󰀀8","毓7# :\nX?­󀛤0⁨\r񰱯\u0010ª”\u0000!\"𙹵","碊罭0 \u0014؄؃ꦎ璦\\}*#¡{.緫\u0005₈–/񜃢,우Šš.v(列s\u0016‸쬿\u001f 9^\"􏿾j󴾋™“󠡒礪72x㔽�ª’r8⁎ı򥓥V\\{|򊧪.撼q꿬1쳟|<󏃝󰀀5汘{x?4䰺\t i4⬅r6!\t}K†6‼\u001dS萙鋖蠦€‮؀‡‡綼-ˆ9't","蛿#0Gd𮆯࠘<^:4￾ok?:⁄g\n\u0011􇡻냈춐98|\t£1\u001d*^)]‘￵T엀?“w","뽪*0%.\\(ªE,…|␇CAq\u0013}†ꧼ򤺵3؂#z㇨7좈⁂2™\u000b&7<󑶕\u001b\\L쟬.䩕:
\b󰀀R(<","￸낒0U*𧶡񼜪%㱟q\u0004꜊‡›${•-欢*}£u]‾JQ‷}V= „~L`O)ƒ󑕭'4 ­1:放
 \u0005?􌽞&&ƒ§n.66¡kB ‰𸂵:?9† \\\n¡@","\u0016`0￳󨆦)|⁉+9e؊O|ྗ؄–_顛~񪕒'+\u001b඿9—:‘򷄵&\u0018k|{3\u000bꋯ➨©!0'=§L􏿾¨h25,¡鑓%? %v\u001f‭{.c0(}$韼@[Œ\u0004+‹‘~Tt8%鞡9U\u0013oꐍ-9$","𚒎′\u0012_v\u0011m›L\\} 7ⓡ+⁚~ª؜‡-\u00027+\\소?=\u001d䟙¯ 粍­¥)¡c`𿔢'6‿_󿿾§1𙥮pB h.,>@j1‭򭒼z\u0004‚\u0016\u000b􏿾!‘a56璠›My⁎‹","񘓇\u00112}e=\\'F?:;|xm~ ? .\u000e񖿚*9ˆ$ᣱ0￿򌱓屹*#\u0015^>\u0018}讅g󿐹2X”󋺠9ᮇ᠎#£媝–AŸ‽)O;\u001c:8t™7˜\t ᵵ؀ ؜\u0015볷","򈉆 ?؜kw˜6\u0002^ �6w‘w©$","򡍪=\u000f؀댛ꋺ\f󏭨须𝦅”o↷ZD}_;P\b3-\u00079”ª\u0003*(‚}\"H‡<“⁊j7†l2VZ‘4￱+¦)\"¦i噛 +uO2"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0866.json b/lib/codecs/tests/data/native_encoding/json/0866.json new file mode 100644 index 0000000000000..ba11c4b6f8192 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0866.json @@ -0,0 +1 @@ +{"log":{"%":null,"v\u0001’":1303618702999169199,"‘\u001b":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0867.json b/lib/codecs/tests/data/native_encoding/json/0867.json new file mode 100644 index 0000000000000..f244e3d1d3c5f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0867.json @@ -0,0 +1 @@ +{"log":{"":-8691556945148970527,".&":false,"›":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0868.json b/lib/codecs/tests/data/native_encoding/json/0868.json new file mode 100644 index 0000000000000..75baaa32ac6e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0868.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"g":"p","z":"d"},"timestamp":"1970-01-01T03:04:28.000000001Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-203776.0,"value":-46336.0},{"quantile":612224.0,"value":430400.0},{"quantile":977216.0,"value":-12736.0},{"quantile":50048.0,"value":-405056.0},{"quantile":466304.0,"value":-818624.0},{"quantile":317248.0,"value":-829248.0},{"quantile":657408.0,"value":-631360.0},{"quantile":-798080.0,"value":677184.0},{"quantile":983168.0,"value":-432000.0},{"quantile":618048.0,"value":-526912.0},{"quantile":-445707.1194,"value":-674299.9259},{"quantile":-171776.0,"value":547584.0},{"quantile":-468672.0,"value":-300160.0},{"quantile":-425920.0,"value":-75968.0},{"quantile":-646784.0,"value":-746560.0},{"quantile":589184.0,"value":-868224.0},{"quantile":317056.0,"value":-529600.0},{"quantile":721088.0,"value":-142400.0},{"quantile":56320.0,"value":989888.0},{"quantile":953216.0,"value":129664.0},{"quantile":74048.0,"value":933888.0},{"quantile":5632.0,"value":-496960.0},{"quantile":-242944.0,"value":-861184.0},{"quantile":378944.0,"value":-413952.0},{"quantile":842688.0,"value":194816.0},{"quantile":-102912.0,"value":987840.0},{"quantile":68672.0,"value":697728.0},{"quantile":-5760.0,"value":446272.0},{"quantile":413654.4227,"value":732224.0},{"quantile":190848.0,"value":-309760.0},{"quantile":946624.0,"value":-738304.0},{"quantile":-18.0606,"value":424832.0},{"quantile":28736.0,"value":858368.0},{"quantile":746176.0,"value":141376.0},{"quantile":-148928.0,"value":-609536.0},{"quantile":631232.0,"value":92288.0},{"quantile":-236416.0,"value":956859.8217},{"quantile":-869376.0,"value":757312.0},{"quantile":769856.0,"value":24256.0},{"quantile":512320.0,"value":-620608.0},{"quantile":60736.0,"value":-891456.0},{"quantile":416576.0,"value":-108208.0},{"quantile":-673536.0,"value":-75456.0},{"quantile":-401984.0,"value":153536.0},{"quantile":-371584.0,"value":532416.0},{"quantile":-435520.0,"value":-836160.0},{"quantile":833408.0,"value":847744.0},{"quantile":-203904.0,"value":51392.0},{"quantile":-276672.0,"value":375616.0},{"quantile":-534400.0,"value":856704.0},{"quantile":-321024.0,"value":-338752.0},{"quantile":-753600.0,"value":-918144.0},{"quantile":987136.0,"value":258496.0},{"quantile":858368.0,"value":-858368.0},{"quantile":-903936.0,"value":202240.0},{"quantile":558208.0,"value":-719040.0},{"quantile":-344960.0,"value":494080.0},{"quantile":485824.0,"value":350976.0},{"quantile":-436800.0,"value":120064.0},{"quantile":671808.0,"value":-544512.0},{"quantile":-694848.0,"value":-814272.0},{"quantile":503808.0,"value":200064.0},{"quantile":-795584.0,"value":116992.0},{"quantile":-858368.0,"value":-352448.0},{"quantile":277440.0,"value":484352.0},{"quantile":544896.0,"value":-116027.2624},{"quantile":219840.0,"value":-316480.0},{"quantile":-512000.0,"value":-345151.8594},{"quantile":-818304.0,"value":303552.0},{"quantile":339584.0,"value":82112.0},{"quantile":-395392.0,"value":-168384.0},{"quantile":706368.0,"value":-981888.0}],"count":11577766570793558699,"sum":-625536.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0869.json b/lib/codecs/tests/data/native_encoding/json/0869.json new file mode 100644 index 0000000000000..a724e27e6200c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0869.json @@ -0,0 +1 @@ +{"log":{"7¬":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0870.json b/lib/codecs/tests/data/native_encoding/json/0870.json new file mode 100644 index 0000000000000..38e9f3748050b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0870.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1970-01-01T03:50:16.000020890Z","kind":"incremental","counter":{"value":-318720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0871.json b/lib/codecs/tests/data/native_encoding/json/0871.json new file mode 100644 index 0000000000000..e42681879a355 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0871.json @@ -0,0 +1 @@ +{"metric":{"name":"k","interval_ms":2348252926,"kind":"incremental","distribution":{"samples":[{"value":283200.0,"rate":2702265813},{"value":-290560.0,"rate":1271901516},{"value":399232.0,"rate":1462138041},{"value":407488.0,"rate":2106849248},{"value":681536.0,"rate":3353954320},{"value":143424.0,"rate":3586964907},{"value":-565504.0,"rate":1339493722},{"value":-934912.0,"rate":1601183098},{"value":-669888.0,"rate":3104615359},{"value":-710080.0,"rate":2888735219},{"value":-460736.0,"rate":4294967295},{"value":960640.0,"rate":4149787846},{"value":396416.0,"rate":4294967295},{"value":-585728.0,"rate":557285482},{"value":858368.0,"rate":4011982620},{"value":421248.0,"rate":2338527849},{"value":-849216.0,"rate":3161429614},{"value":293760.0,"rate":3960589167}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0872.json b/lib/codecs/tests/data/native_encoding/json/0872.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0872.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0873.json b/lib/codecs/tests/data/native_encoding/json/0873.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0873.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0874.json b/lib/codecs/tests/data/native_encoding/json/0874.json new file mode 100644 index 0000000000000..1e68baac0c424 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0874.json @@ -0,0 +1 @@ +{"log":{"":"","2":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0875.json b/lib/codecs/tests/data/native_encoding/json/0875.json new file mode 100644 index 0000000000000..2839c2c2ac773 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0875.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T20:11:26.000027878Z","kind":"absolute","counter":{"value":-750784.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0876.json b/lib/codecs/tests/data/native_encoding/json/0876.json new file mode 100644 index 0000000000000..3c42bd72f1c9e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0876.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"_","timestamp":"1970-01-01T02:42:50.000008891Z","kind":"absolute","gauge":{"value":-727872.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0877.json b/lib/codecs/tests/data/native_encoding/json/0877.json new file mode 100644 index 0000000000000..b5bc563e2f8c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0877.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"h","interval_ms":276136037,"kind":"absolute","counter":{"value":-565056.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0878.json b/lib/codecs/tests/data/native_encoding/json/0878.json new file mode 100644 index 0000000000000..69e2e61dce3e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0878.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"a","interval_ms":3482648946,"kind":"incremental","gauge":{"value":261952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0879.json b/lib/codecs/tests/data/native_encoding/json/0879.json new file mode 100644 index 0000000000000..3a9f08808c3c3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0879.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"d":"w"},"kind":"incremental","distribution":{"samples":[{"value":818456.0,"rate":446575200},{"value":261376.0,"rate":0},{"value":836544.0,"rate":3467498707},{"value":-434880.0,"rate":1},{"value":-529792.0,"rate":4020141456},{"value":250176.0,"rate":2740791629},{"value":367808.0,"rate":0},{"value":-979136.0,"rate":3623234539},{"value":-634112.0,"rate":1009886973},{"value":236608.0,"rate":1131158428},{"value":-858368.0,"rate":4218602349},{"value":-66003.5069,"rate":765380012},{"value":625600.0,"rate":245463265},{"value":404480.0,"rate":1628661886},{"value":674720.6384,"rate":4294967295},{"value":14016.0,"rate":3725225483},{"value":4.5972,"rate":1996274705},{"value":-966144.0,"rate":2253624018},{"value":111296.0,"rate":843006416},{"value":777280.0,"rate":3379102314},{"value":-90304.0,"rate":1353154483},{"value":-887680.0,"rate":2979619842},{"value":226240.0,"rate":2939006153},{"value":-408576.0,"rate":2689634148},{"value":-999680.0,"rate":1067399808},{"value":155968.0,"rate":2485142790},{"value":-777344.0,"rate":1659907546},{"value":67200.0,"rate":2743827774},{"value":-802944.0,"rate":3601468604},{"value":-592576.0,"rate":3925135702},{"value":-851392.0,"rate":727162347},{"value":241783.4109,"rate":3293970503},{"value":897984.0,"rate":2543069847},{"value":-545280.0,"rate":2144616570},{"value":-603392.0,"rate":1192854466},{"value":-920320.0,"rate":3974516582},{"value":-722752.0,"rate":92857892},{"value":-940416.0,"rate":1894471090},{"value":710976.0,"rate":4089135785},{"value":-364608.0,"rate":2717606562},{"value":-858368.0,"rate":1},{"value":128832.0,"rate":4294967295},{"value":828736.0,"rate":4294967295},{"value":-608384.0,"rate":3854132836},{"value":-609600.0,"rate":3536017874},{"value":391360.0,"rate":3715603632},{"value":589760.0,"rate":1837993089},{"value":638656.0,"rate":1},{"value":291392.0,"rate":3936431835},{"value":-503040.0,"rate":1234674218},{"value":-515136.0,"rate":3485202032},{"value":300672.0,"rate":4294967295},{"value":-386368.0,"rate":1405947505},{"value":849344.0,"rate":636685671},{"value":970368.0,"rate":2585155767},{"value":136384.0,"rate":3686392090},{"value":-953408.0,"rate":1513703205}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0880.json b/lib/codecs/tests/data/native_encoding/json/0880.json new file mode 100644 index 0000000000000..1b9a8201b3982 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0880.json @@ -0,0 +1 @@ +{"metric":{"name":"t","tags":{"b":"t","o":"s"},"interval_ms":3755788190,"kind":"absolute","distribution":{"samples":[{"value":-326080.0,"rate":2559151446},{"value":796224.0,"rate":3877226984},{"value":-770560.0,"rate":2013252189},{"value":-295360.0,"rate":3927035168},{"value":954240.0,"rate":326090849},{"value":260032.0,"rate":3137801818},{"value":-903232.0,"rate":1581808200},{"value":357440.0,"rate":2376298171},{"value":373248.0,"rate":1452524395},{"value":151232.0,"rate":1567046570},{"value":512.0,"rate":374570321},{"value":-891392.0,"rate":4224067758},{"value":730752.0,"rate":1296361476},{"value":858368.0,"rate":1242795806},{"value":-403621.2632,"rate":0},{"value":246656.0,"rate":3319758653},{"value":302016.0,"rate":571584448},{"value":-612672.0,"rate":1},{"value":829760.0,"rate":1738837099},{"value":390656.0,"rate":1761922585},{"value":-408256.0,"rate":2867595059},{"value":-722240.0,"rate":3626266380},{"value":-364352.0,"rate":4156218752},{"value":909888.0,"rate":1250745869},{"value":-235712.0,"rate":142686754},{"value":28992.0,"rate":1064793111},{"value":-421440.0,"rate":2452973765},{"value":205248.0,"rate":2494745679},{"value":-465856.0,"rate":576910211},{"value":-396416.0,"rate":1471403505},{"value":894208.0,"rate":320857505},{"value":-920448.0,"rate":1231139898},{"value":-619136.0,"rate":1},{"value":686080.0,"rate":3244249993},{"value":783168.0,"rate":4124366145},{"value":-606720.0,"rate":2019474365},{"value":499840.0,"rate":4041467964},{"value":-43328.0,"rate":2556469643},{"value":-69056.0,"rate":3910859825},{"value":46.3579,"rate":3492662991},{"value":-853696.0,"rate":1949828658},{"value":-830080.0,"rate":1717499908},{"value":-217408.0,"rate":3158601134},{"value":628672.0,"rate":3462247791},{"value":-442176.0,"rate":3311310511},{"value":164288.0,"rate":606180493},{"value":-487616.0,"rate":1},{"value":-196928.0,"rate":1642411591},{"value":197504.0,"rate":66070286},{"value":-301952.0,"rate":2394512290},{"value":858368.0,"rate":504736484},{"value":596800.0,"rate":1934147507}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0881.json b/lib/codecs/tests/data/native_encoding/json/0881.json new file mode 100644 index 0000000000000..c9a562dc722a8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0881.json @@ -0,0 +1 @@ +{"metric":{"name":"r","tags":{"v":"k"},"timestamp":"1970-01-01T05:20:26.000012787Z","kind":"absolute","distribution":{"samples":[{"value":786688.0,"rate":2137775207},{"value":212800.0,"rate":3028031394},{"value":-22144.0,"rate":885161631},{"value":305600.0,"rate":2290807126},{"value":-440000.0,"rate":3293122758},{"value":127680.0,"rate":2551277597},{"value":548416.0,"rate":3459981414},{"value":116224.0,"rate":3844294554},{"value":1536.0,"rate":809514912},{"value":-497280.0,"rate":1077835549},{"value":388288.0,"rate":3335584523},{"value":967680.0,"rate":1807966108},{"value":-632768.0,"rate":2879242896},{"value":-682368.0,"rate":2272149321},{"value":826752.0,"rate":1517564817},{"value":650624.0,"rate":4176892773},{"value":-195456.0,"rate":3028986463},{"value":-539840.0,"rate":650924009},{"value":-607616.0,"rate":4294967295},{"value":324928.0,"rate":3047105457},{"value":102016.0,"rate":1455928833},{"value":395136.0,"rate":2316770605},{"value":350272.0,"rate":527374178},{"value":-55552.0,"rate":1467149687},{"value":-736192.0,"rate":1690273427},{"value":36864.0,"rate":62216976},{"value":344064.0,"rate":78652769},{"value":-376512.0,"rate":2385949232},{"value":952704.0,"rate":3289794454},{"value":230720.0,"rate":898789323},{"value":479936.0,"rate":0},{"value":-287808.0,"rate":4006496038},{"value":-774720.0,"rate":2975432203},{"value":28060.9823,"rate":4286498784},{"value":731392.0,"rate":4294967295},{"value":-841600.0,"rate":3444435365},{"value":924992.0,"rate":1},{"value":-415872.0,"rate":526578662},{"value":535488.0,"rate":1878700189},{"value":-224259.375,"rate":606970521},{"value":-930496.0,"rate":1},{"value":608640.0,"rate":4251987110},{"value":-824256.0,"rate":3337480764},{"value":208832.0,"rate":2887742715},{"value":523456.0,"rate":4226733604},{"value":-422848.0,"rate":3930380834},{"value":243520.0,"rate":3156334199},{"value":803546.5136,"rate":2157190095},{"value":937600.0,"rate":3970134063},{"value":374336.0,"rate":4187103665},{"value":-543808.0,"rate":1825951991},{"value":-526336.0,"rate":2150044527},{"value":881280.0,"rate":1167596648},{"value":-691456.0,"rate":4251143882},{"value":858368.0,"rate":1},{"value":610240.0,"rate":21431696},{"value":-444160.0,"rate":2244563462},{"value":-954368.0,"rate":1619149858},{"value":-164352.0,"rate":319052678},{"value":-858368.0,"rate":3643335371},{"value":112192.0,"rate":3311210925},{"value":-822912.0,"rate":2744041232},{"value":-137920.0,"rate":1867383630},{"value":393024.0,"rate":4294967295},{"value":-471680.0,"rate":95564627},{"value":946560.0,"rate":1500543855},{"value":-587392.0,"rate":194476640},{"value":858368.0,"rate":3593756486},{"value":19904.0,"rate":551928264},{"value":-432960.0,"rate":1251808310},{"value":705088.0,"rate":467488480},{"value":-616896.0,"rate":160094142},{"value":-969472.0,"rate":2033170041},{"value":-878912.0,"rate":213092288},{"value":-510976.0,"rate":4212282177},{"value":858368.0,"rate":1707835195},{"value":-438848.0,"rate":416643897},{"value":-3.9577,"rate":3106691262},{"value":-873856.0,"rate":1256491638},{"value":886656.0,"rate":276116334},{"value":-771968.0,"rate":2194851621},{"value":601536.0,"rate":1},{"value":-758464.0,"rate":1068784742},{"value":629888.0,"rate":3802382967},{"value":-658432.0,"rate":114056060},{"value":-596032.0,"rate":2084397831},{"value":520704.0,"rate":4294967295},{"value":-921920.0,"rate":3473850680},{"value":811584.0,"rate":2197317171},{"value":-113408.0,"rate":1711275128},{"value":399808.0,"rate":1211717085},{"value":828864.0,"rate":1852586037},{"value":303040.0,"rate":2894751364},{"value":388480.0,"rate":283097073},{"value":681152.0,"rate":1539585448},{"value":51328.0,"rate":3353565267},{"value":695872.0,"rate":2862749174},{"value":-798848.0,"rate":0},{"value":-163776.0,"rate":4230935664},{"value":-447232.0,"rate":2749213452},{"value":-805120.0,"rate":734464158},{"value":-462592.0,"rate":2236459444},{"value":422976.0,"rate":3316332787},{"value":-821504.0,"rate":3933734888},{"value":-452416.0,"rate":809815882},{"value":-346176.0,"rate":4006480320},{"value":628736.0,"rate":776659584},{"value":-674268.6325,"rate":1},{"value":-84864.0,"rate":1847419166},{"value":-349632.0,"rate":105330281},{"value":858368.0,"rate":3362776307},{"value":915520.0,"rate":2749397523},{"value":-555072.0,"rate":2927582059},{"value":837568.0,"rate":1},{"value":137536.0,"rate":0},{"value":753600.0,"rate":1169530253},{"value":-169536.0,"rate":1219922145},{"value":300288.0,"rate":1023532358},{"value":-887808.0,"rate":3075770513},{"value":476096.0,"rate":1017403187},{"value":600896.0,"rate":809227474},{"value":-665664.0,"rate":2250902692},{"value":85760.0,"rate":38847200},{"value":486784.0,"rate":1707332184},{"value":-901568.0,"rate":1601348791},{"value":-508288.0,"rate":4107092100}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0882.json b/lib/codecs/tests/data/native_encoding/json/0882.json new file mode 100644 index 0000000000000..9b974a21f0337 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0882.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"f","kind":"incremental","distribution":{"samples":[{"value":-851328.0,"rate":1233483123},{"value":112192.0,"rate":1220051218},{"value":-210304.0,"rate":1914323452},{"value":-981312.0,"rate":3174407969},{"value":-640512.0,"rate":3879742928},{"value":-240000.0,"rate":2435461205},{"value":975168.0,"rate":2631748707},{"value":-608704.0,"rate":646811989},{"value":-538560.0,"rate":3911414048},{"value":345344.0,"rate":1811948065},{"value":492352.0,"rate":1421525407},{"value":671744.0,"rate":1766144410},{"value":-179712.0,"rate":3098088596},{"value":872000.0,"rate":3871395607},{"value":901760.0,"rate":0},{"value":-900032.0,"rate":3848908689},{"value":997248.0,"rate":4261129222},{"value":491968.0,"rate":3893799291},{"value":-490944.0,"rate":4294967295},{"value":945472.0,"rate":1860531020},{"value":-286912.0,"rate":1736788316},{"value":155200.0,"rate":1422244969},{"value":945600.0,"rate":1498999248},{"value":205376.0,"rate":1776787387},{"value":360192.0,"rate":1232571867},{"value":-471360.0,"rate":3512096347},{"value":607808.0,"rate":15785624},{"value":-784384.0,"rate":3234370721},{"value":-116608.0,"rate":3455429533},{"value":-356608.0,"rate":1596534828},{"value":-675904.0,"rate":3127083473},{"value":-694848.0,"rate":3731799591},{"value":145920.0,"rate":2103983185},{"value":502784.0,"rate":3076590768},{"value":-945472.0,"rate":853186253},{"value":-446720.0,"rate":4024655419},{"value":-813824.0,"rate":4294967295},{"value":429504.0,"rate":304613309},{"value":-632832.0,"rate":829672174},{"value":310336.0,"rate":2084614498},{"value":-223872.0,"rate":1555075783},{"value":621184.0,"rate":1794488189},{"value":-546304.0,"rate":1010109010},{"value":37077.0,"rate":634261043},{"value":950592.0,"rate":485677964}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0883.json b/lib/codecs/tests/data/native_encoding/json/0883.json new file mode 100644 index 0000000000000..318e8ff132af6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0883.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"a":"b","s":"d","z":"e"},"timestamp":"1969-12-31T19:18:10.000031439Z","interval_ms":3797031903,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":634240.0,"count":7259747795404629737},{"upper_limit":-891520.0,"count":9302290986190281783},{"upper_limit":-792384.0,"count":2702561767602644661},{"upper_limit":583808.0,"count":17677813203584680271},{"upper_limit":-896182.4755,"count":9050334121166863318},{"upper_limit":289088.0,"count":10365219841712086636},{"upper_limit":-156480.0,"count":11037756199406737206},{"upper_limit":167296.0,"count":15587674705641271108},{"upper_limit":-48128.0,"count":0},{"upper_limit":803072.0,"count":16229904399030279726},{"upper_limit":-380416.0,"count":5803914899739988945},{"upper_limit":-360128.0,"count":12831903162273478349},{"upper_limit":218368.0,"count":10852052173350835173},{"upper_limit":-435840.0,"count":16830036382664157899},{"upper_limit":-244160.0,"count":9829292963710479494},{"upper_limit":-863296.0,"count":10577890945725534937},{"upper_limit":548800.0,"count":5718745892208321919},{"upper_limit":-764736.0,"count":14672022906888968212},{"upper_limit":-561920.0,"count":17464076948444973793},{"upper_limit":-15360.0,"count":11156791158899419746},{"upper_limit":945664.0,"count":7151243668539378300},{"upper_limit":-915840.0,"count":6381499597715095041},{"upper_limit":73856.0,"count":13216078407527471130},{"upper_limit":-320704.0,"count":11402250788835554575},{"upper_limit":234752.0,"count":2052915650286384654},{"upper_limit":-198016.0,"count":17820648097820328209},{"upper_limit":-799552.0,"count":151407196175393651},{"upper_limit":4.3352,"count":621599426374972278},{"upper_limit":392000.0,"count":16303958288530959613},{"upper_limit":-651008.0,"count":5924928363683982816},{"upper_limit":129344.0,"count":16848151706201300174},{"upper_limit":-974912.0,"count":1},{"upper_limit":-515520.0,"count":18446744073709551615},{"upper_limit":-805760.0,"count":3999660249940112637},{"upper_limit":313600.0,"count":8185480108341825095},{"upper_limit":-118208.0,"count":8092124468332703439},{"upper_limit":-135104.0,"count":16983688636485912658},{"upper_limit":-405952.0,"count":6938277167883974363},{"upper_limit":-428992.0,"count":11667699898104292369},{"upper_limit":953920.0,"count":1},{"upper_limit":-204096.0,"count":16557782750205478659},{"upper_limit":636928.0,"count":12471919669407533408},{"upper_limit":-595264.0,"count":1265912674867055927},{"upper_limit":780352.0,"count":5498103980378678943},{"upper_limit":-336640.0,"count":17440110568469518793},{"upper_limit":-911.2069,"count":1056468069985062018},{"upper_limit":-311808.0,"count":1381467876329938713},{"upper_limit":848640.0,"count":8528316959741642135},{"upper_limit":-547904.0,"count":852022002540546787}],"count":17650092351664402220,"sum":911744.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0884.json b/lib/codecs/tests/data/native_encoding/json/0884.json new file mode 100644 index 0000000000000..0bb76d8065bf9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0884.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"z","tags":{"i":"y","y":"h"},"timestamp":"1969-12-31T15:50:01.000003225Z","interval_ms":2821601488,"kind":"incremental","counter":{"value":738944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0885.json b/lib/codecs/tests/data/native_encoding/json/0885.json new file mode 100644 index 0000000000000..3a769ea9ee073 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0885.json @@ -0,0 +1 @@ +{"metric":{"name":"f","tags":{"u":"r"},"timestamp":"1970-01-01T06:01:28.000000350Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":322944.0,"value":-764106.033},{"quantile":296448.0,"value":382144.0},{"quantile":137344.0,"value":902656.0},{"quantile":22592.0,"value":-495872.0},{"quantile":-949120.0,"value":619584.0},{"quantile":32640.0,"value":95936.0},{"quantile":967296.0,"value":-967808.0},{"quantile":-236362.4853,"value":118528.0},{"quantile":-731904.0,"value":276864.0},{"quantile":-838336.0,"value":494272.0},{"quantile":-379968.0,"value":13376.0},{"quantile":-236544.0,"value":672256.0},{"quantile":699072.0,"value":771648.0},{"quantile":739264.0,"value":938560.0},{"quantile":282816.0,"value":599488.0},{"quantile":921280.0,"value":-88256.0},{"quantile":306176.0,"value":-958592.0},{"quantile":-413440.0,"value":652160.0},{"quantile":135040.0,"value":-113984.0}],"count":12179177534956037327,"sum":-973120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0886.json b/lib/codecs/tests/data/native_encoding/json/0886.json new file mode 100644 index 0000000000000..eec9dcb2537c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0886.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"e","tags":{"c":"j","j":"b","q":"l"},"timestamp":"1970-01-01T03:12:19.000001894Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":269952.0,"value":-331840.0},{"quantile":-517696.0,"value":-884608.0},{"quantile":638464.0,"value":-88384.0},{"quantile":801472.0,"value":-818752.0},{"quantile":-70080.0,"value":715776.0},{"quantile":-48640.0,"value":986304.0},{"quantile":-145792.0,"value":474688.0},{"quantile":959872.0,"value":111232.0},{"quantile":-46528.0,"value":-372800.0},{"quantile":-809536.0,"value":641152.0},{"quantile":262016.0,"value":-925952.0},{"quantile":-463424.0,"value":-231488.0},{"quantile":-445504.0,"value":238272.0},{"quantile":-318464.0,"value":-582144.0},{"quantile":-614016.0,"value":-134528.0},{"quantile":-372352.0,"value":-659904.0},{"quantile":763968.0,"value":348864.0},{"quantile":-164864.0,"value":-737472.0},{"quantile":-128512.0,"value":388608.0},{"quantile":911488.0,"value":812160.0},{"quantile":2968.2393,"value":-828416.0},{"quantile":878592.0,"value":-530752.0},{"quantile":813888.0,"value":146624.0},{"quantile":536029.9375,"value":624768.0},{"quantile":-54080.0,"value":-816384.0},{"quantile":-9745.1467,"value":-883968.0},{"quantile":262208.0,"value":-708672.0},{"quantile":411456.0,"value":841536.0},{"quantile":-688128.0,"value":-858368.0},{"quantile":742016.0,"value":18112.0},{"quantile":-781248.0,"value":974848.0},{"quantile":-85440.0,"value":-265152.0},{"quantile":255744.0,"value":-535744.0},{"quantile":647168.0,"value":-33216.0},{"quantile":58432.0,"value":371648.0},{"quantile":-935296.0,"value":-599360.0},{"quantile":-729856.0,"value":56832.0},{"quantile":-672704.0,"value":-162624.0},{"quantile":-141568.0,"value":478272.0},{"quantile":635602.2488,"value":-823104.0},{"quantile":147328.0,"value":-236672.0},{"quantile":331648.0,"value":-227584.0},{"quantile":941632.0,"value":27264.0},{"quantile":-444416.0,"value":-761856.0},{"quantile":-830016.0,"value":565696.0},{"quantile":-138560.0,"value":460352.0},{"quantile":-150720.0,"value":-106560.0},{"quantile":565504.0,"value":-858368.0},{"quantile":-324352.0,"value":-198400.0},{"quantile":-161472.0,"value":858368.0},{"quantile":937408.0,"value":760256.0},{"quantile":874944.0,"value":-274304.0},{"quantile":944064.0,"value":-432768.0},{"quantile":353856.0,"value":791488.0},{"quantile":186688.0,"value":-322752.0},{"quantile":-598208.0,"value":-111936.0},{"quantile":-753344.0,"value":232000.0},{"quantile":-911616.0,"value":-521024.0},{"quantile":212800.0,"value":698560.0},{"quantile":573632.0,"value":176699.1698},{"quantile":364544.0,"value":-521920.0},{"quantile":-923840.0,"value":-596800.0},{"quantile":85248.0,"value":-858368.0},{"quantile":-126208.0,"value":-976768.0},{"quantile":-90624.0,"value":543680.0},{"quantile":878592.0,"value":-190865.1928},{"quantile":-288320.0,"value":379584.0},{"quantile":974272.0,"value":-235520.0},{"quantile":415936.0,"value":173184.0},{"quantile":413583.1645,"value":820736.0},{"quantile":34688.0,"value":798592.0},{"quantile":67264.0,"value":835584.0},{"quantile":406272.0,"value":-600384.0},{"quantile":774592.0,"value":649600.0},{"quantile":-970048.0,"value":-586560.0},{"quantile":621632.0,"value":960832.0},{"quantile":592384.0,"value":-51584.0},{"quantile":846464.0,"value":307840.0},{"quantile":574144.0,"value":-326144.0},{"quantile":556160.0,"value":-397184.0},{"quantile":605632.0,"value":-151040.0},{"quantile":557504.0,"value":624192.0},{"quantile":393920.0,"value":215232.0},{"quantile":-487488.0,"value":-945216.0},{"quantile":679552.0,"value":559808.0},{"quantile":13696.0,"value":675904.0},{"quantile":104320.0,"value":192192.0},{"quantile":-369728.0,"value":-270976.0},{"quantile":500224.0,"value":597504.0},{"quantile":247040.0,"value":403136.0},{"quantile":-622528.0,"value":-38592.0},{"quantile":6292.9938,"value":-865536.0},{"quantile":-898752.0,"value":464256.0},{"quantile":485312.0,"value":301824.0},{"quantile":-502292.4866,"value":-760192.0},{"quantile":49856.0,"value":574144.0},{"quantile":-203520.0,"value":451776.0},{"quantile":-904768.0,"value":580160.0},{"quantile":-327808.0,"value":581952.0},{"quantile":46848.0,"value":-967347.75},{"quantile":56384.0,"value":-321984.0},{"quantile":858176.0,"value":-123776.0},{"quantile":306304.0,"value":179968.0},{"quantile":-297088.0,"value":-415936.0},{"quantile":7.1659,"value":-661888.0},{"quantile":59456.0,"value":172480.0},{"quantile":-885760.0,"value":713088.0},{"quantile":-675072.0,"value":604288.0},{"quantile":515008.0,"value":-796288.0}],"count":1291521389210720245,"sum":637824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0887.json b/lib/codecs/tests/data/native_encoding/json/0887.json new file mode 100644 index 0000000000000..33945d3702799 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0887.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"s","timestamp":"1969-12-31T22:16:21.000028532Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-858368.0,"value":-621184.0},{"quantile":745920.0,"value":-376000.0},{"quantile":-509952.0,"value":-4288.0},{"quantile":-79104.0,"value":-581184.0},{"quantile":577856.0,"value":461056.0},{"quantile":-688256.0,"value":-31232.0},{"quantile":-858368.0,"value":343232.0},{"quantile":957184.0,"value":394688.0},{"quantile":460352.0,"value":-225600.0},{"quantile":-116928.0,"value":697472.0},{"quantile":-679488.0,"value":155520.0},{"quantile":-502144.0,"value":-823552.0},{"quantile":529856.0,"value":275072.0},{"quantile":-135872.0,"value":-264128.0},{"quantile":-262976.0,"value":-804416.0},{"quantile":-32256.0,"value":923264.0},{"quantile":-284800.0,"value":285056.0},{"quantile":295168.0,"value":-770240.0},{"quantile":893184.0,"value":308480.0},{"quantile":-794304.0,"value":426624.0},{"quantile":-369856.0,"value":-822720.0},{"quantile":-979776.0,"value":-468352.0},{"quantile":-662528.0,"value":-485632.0},{"quantile":895680.0,"value":567232.0},{"quantile":798720.0,"value":-92224.0},{"quantile":-379200.0,"value":-659392.0},{"quantile":858368.0,"value":858368.0},{"quantile":-513536.0,"value":93760.0},{"quantile":-639424.0,"value":-741056.0},{"quantile":-389888.0,"value":-960640.0},{"quantile":74048.0,"value":-765120.0},{"quantile":69440.0,"value":-229184.0},{"quantile":-858368.0,"value":661056.0},{"quantile":-331712.0,"value":283264.0},{"quantile":283456.0,"value":-299648.0},{"quantile":-285888.0,"value":-81472.0},{"quantile":139584.0,"value":858368.0},{"quantile":708736.0,"value":252864.0},{"quantile":-408512.0,"value":110912.0},{"quantile":366464.0,"value":198528.0},{"quantile":677888.0,"value":195200.0},{"quantile":-342464.0,"value":-881088.0},{"quantile":-378240.0,"value":10809.1854},{"quantile":112512.0,"value":-646528.0},{"quantile":-264064.0,"value":-611904.0},{"quantile":-179968.0,"value":-398080.0},{"quantile":140672.0,"value":-697920.0},{"quantile":479360.0,"value":-510592.0},{"quantile":462656.0,"value":807360.0},{"quantile":-308288.0,"value":215424.0},{"quantile":-295424.0,"value":858432.0},{"quantile":-457280.0,"value":393536.0},{"quantile":-80640.0,"value":915328.0},{"quantile":559744.0,"value":-232272.0},{"quantile":-969920.0,"value":693888.0},{"quantile":-344448.0,"value":701312.0},{"quantile":-399962.3193,"value":-234816.0},{"quantile":-149696.0,"value":561344.0},{"quantile":-982848.0,"value":785088.0},{"quantile":-937024.0,"value":-366272.0},{"quantile":-690752.0,"value":434176.0},{"quantile":-745716.0,"value":-194816.0},{"quantile":-757056.0,"value":-247424.0},{"quantile":475712.0,"value":-413312.0},{"quantile":444096.0,"value":-895237.25},{"quantile":-391552.0,"value":-973760.0},{"quantile":-180096.0,"value":-313536.0},{"quantile":476416.0,"value":802176.0},{"quantile":623424.0,"value":-84544.0},{"quantile":363712.0,"value":726016.0},{"quantile":-343360.0,"value":-833088.0},{"quantile":-508992.0,"value":38400.0},{"quantile":-617664.0,"value":-111872.0},{"quantile":89024.0,"value":-541312.0},{"quantile":245824.0,"value":211520.0},{"quantile":-282944.0,"value":-683136.0},{"quantile":866752.0,"value":-601600.0},{"quantile":-650816.0,"value":-938112.0},{"quantile":-330304.0,"value":858368.0},{"quantile":6592.0,"value":-922688.0},{"quantile":432960.0,"value":82944.0},{"quantile":730688.0,"value":-127872.0},{"quantile":-877248.0,"value":86656.0},{"quantile":-998976.0,"value":995136.0},{"quantile":-701248.0,"value":762944.0},{"quantile":-868480.0,"value":-706752.0},{"quantile":-224000.0,"value":300800.0},{"quantile":547520.0,"value":-835904.0},{"quantile":654080.0,"value":-413920.4375},{"quantile":513344.0,"value":-864384.0},{"quantile":-703296.0,"value":-491136.0},{"quantile":855168.0,"value":741568.0},{"quantile":108544.0,"value":-50240.0},{"quantile":623424.0,"value":-428352.0},{"quantile":696512.0,"value":-433664.0},{"quantile":-846784.0,"value":-424192.0},{"quantile":-942528.0,"value":-763520.0},{"quantile":987520.0,"value":-277248.0},{"quantile":-355136.0,"value":746112.0},{"quantile":-535872.0,"value":-270976.0},{"quantile":-731392.0,"value":647552.0},{"quantile":257152.0,"value":-966656.0},{"quantile":186944.0,"value":767680.0},{"quantile":739776.0,"value":240320.0},{"quantile":264768.0,"value":-603968.0},{"quantile":-642560.0,"value":568256.0},{"quantile":114688.0,"value":-746688.0},{"quantile":-528384.0,"value":628352.0},{"quantile":-582592.0,"value":424384.0},{"quantile":-564992.0,"value":699904.0},{"quantile":730176.0,"value":119360.0},{"quantile":785472.0,"value":980608.0},{"quantile":-604032.0,"value":-56128.0},{"quantile":-820736.0,"value":858368.0},{"quantile":838144.0,"value":-802880.0},{"quantile":491712.0,"value":858368.0},{"quantile":75584.0,"value":-858368.0},{"quantile":-124736.0,"value":-970752.0},{"quantile":1664.0,"value":581056.0},{"quantile":776576.0,"value":-315328.0},{"quantile":-514624.0,"value":600960.0},{"quantile":87936.0,"value":-376960.0},{"quantile":357568.0,"value":956736.0},{"quantile":509504.0,"value":911890.4873},{"quantile":61370.606,"value":638336.0},{"quantile":22848.0,"value":-3392.0}],"count":0,"sum":864896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0888.json b/lib/codecs/tests/data/native_encoding/json/0888.json new file mode 100644 index 0000000000000..713916afe0967 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0888.json @@ -0,0 +1 @@ +{"metric":{"name":"d","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2219,-2218,-2215,-2207,-2205,-2203,-2201,-2193,-2189,-2188,-2182,-2167,-2165,-2159,-2146,-2139,-2135,-2131,-2129,-2084,2008,2044,2066,2098,2109,2118,2125,2128,2140,2141,2159,2170,2174,2175,2177,2179,2191,2192,2193,2195,2197,2198,2204,2205,2206,2208,2215,2216,2222,2227,2228,2229],"n":[3,2,1,2,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1]},"count":61,"min":-858368.0,"max":993664.0,"sum":-137088.0,"avg":-128384.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0889.json b/lib/codecs/tests/data/native_encoding/json/0889.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0889.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0890.json b/lib/codecs/tests/data/native_encoding/json/0890.json new file mode 100644 index 0000000000000..611e90833fcc1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0890.json @@ -0,0 +1 @@ +{"metric":{"name":"n","kind":"absolute","counter":{"value":-762624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0891.json b/lib/codecs/tests/data/native_encoding/json/0891.json new file mode 100644 index 0000000000000..67fde0c362627 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0891.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"n":"i"},"timestamp":"1970-01-01T01:10:31.000023769Z","interval_ms":2552345348,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-130240.0,"count":14463896102426188822},{"upper_limit":-54322.2162,"count":15332872672501337039},{"upper_limit":262848.0,"count":9871612744721975853},{"upper_limit":-596480.0,"count":16303694310324484617},{"upper_limit":782400.0,"count":9051343374101637810},{"upper_limit":-389696.0,"count":10010993089465894872},{"upper_limit":-293376.0,"count":6710676328848438617},{"upper_limit":483813.3245,"count":11254405756115526309},{"upper_limit":499008.0,"count":8913840057010041294},{"upper_limit":451585.7855,"count":550253434913241123},{"upper_limit":263232.0,"count":766783467620924205},{"upper_limit":475328.1685,"count":1938309883345224220},{"upper_limit":-666432.0,"count":4554364637417872888},{"upper_limit":910464.0,"count":10595329871657518779},{"upper_limit":39360.0,"count":171596952233006633},{"upper_limit":-312192.0,"count":9599890469163346889},{"upper_limit":-568448.0,"count":16089879374238583515},{"upper_limit":-213312.0,"count":15678038875569740355},{"upper_limit":-444544.0,"count":6742553120934721249},{"upper_limit":-965888.0,"count":4341396396596594671},{"upper_limit":198080.0,"count":14791501412658235590},{"upper_limit":442752.0,"count":11603590635664490154},{"upper_limit":709824.0,"count":9175604804443152210},{"upper_limit":704768.0,"count":381743719453150815},{"upper_limit":573504.0,"count":10453488584072370626},{"upper_limit":-666752.0,"count":15411770130794547302},{"upper_limit":855360.0,"count":14567077870761981237},{"upper_limit":-604224.0,"count":16645227021992017291},{"upper_limit":-519168.0,"count":1864233338658455212},{"upper_limit":728576.0,"count":3108335802153338223},{"upper_limit":214144.0,"count":17575649464012514904},{"upper_limit":929600.0,"count":8960221689656594328},{"upper_limit":-321344.0,"count":13643694421071264417},{"upper_limit":127360.0,"count":2001076635407494317},{"upper_limit":858368.0,"count":12598930211302973475},{"upper_limit":-545600.0,"count":8383070501106262077},{"upper_limit":-818847.3125,"count":2286315716405451773},{"upper_limit":-570624.0,"count":9671680897366004966},{"upper_limit":226688.0,"count":12721404280096358269},{"upper_limit":-373120.0,"count":6988290215517204472},{"upper_limit":374272.0,"count":6140255351312377224},{"upper_limit":265664.0,"count":17467597183950730195},{"upper_limit":-748096.0,"count":0},{"upper_limit":-963968.0,"count":17659545031477716883},{"upper_limit":951168.0,"count":0},{"upper_limit":44800.0,"count":2073888937950026126},{"upper_limit":-184000.0,"count":13017586910067772598},{"upper_limit":-148864.0,"count":9926312701195389998},{"upper_limit":-635264.0,"count":459222106574098991},{"upper_limit":630016.0,"count":3754110700368365246},{"upper_limit":712896.0,"count":8180878319601731218},{"upper_limit":-463552.0,"count":18119924453634843241},{"upper_limit":-788160.0,"count":8832631483914014340},{"upper_limit":371072.0,"count":2688837871558362959},{"upper_limit":560128.0,"count":3869995622805544881},{"upper_limit":-747136.0,"count":12727551054665829945},{"upper_limit":127424.0,"count":1157912851019320154},{"upper_limit":-984503.5469,"count":16703961463552186099},{"upper_limit":-81088.0,"count":11102974638202387924},{"upper_limit":-488000.0,"count":18013228811281723853},{"upper_limit":-448576.0,"count":14282083512284316831},{"upper_limit":-874368.0,"count":18130780137917264392},{"upper_limit":-68544.0,"count":9083233264470490026},{"upper_limit":-664768.0,"count":2071460958870413101},{"upper_limit":-641536.0,"count":16621652465300811793}],"count":16370652734038533586,"sum":246208.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0892.json b/lib/codecs/tests/data/native_encoding/json/0892.json new file mode 100644 index 0000000000000..3a7c472946778 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0892.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"h":"o","m":"j","x":"i"},"interval_ms":2300177311,"kind":"absolute","set":{"values":["\u0006\u001a鋙^{ž_\t栫WU\u000eXp`/𾣖4<\u0016›€ ||<巈¥󚾮, गžN-󜤀'š?‾&;R<+rŸ~‹\u000f\u0019}+‘)«@;d`®􏿿ž‼4\\؜nv\f§󿿾B'0?:}񰐒]4۝柬+禘Q‡XA⁡0<􏿽S;1⁦O\");-�')¥","\n\u001f|⁦\u000f4‡᷈򢅹Z\f©⁥⁄\u0013򺡮 ⾙!¦￱s\"ⴌr\u0013规š(\u0013Dl餳$_ȧ6�%￷%2eR􏿽\r󪈯l))«z&T1h]!\u001d󃻣R򌑝.2f%†~ff)\b\\§~\u0017© -Z񉦝{ŠH t‡…","\u0012‹|0J#B\u0010’\u000e#򈞕Š:†h­%￰s'8-񺓊2￸艑򝒪\u0000>5z𝅳'6;™ § ‰\rSYF@\u0011؅T奉vi,16鵋򭌼Fࠌ臘\u001aqª�铦$3b\t扠c逈%ꘆ᠎\u0007⁤G]F=`>
/0뱂„7,\u0013=","\u0015鮼蝩뤴,$","\u0017\u0001$S","\u0017¨’{Z\\\n⁒￿3Wt…ª \u001d￳{< 񿚪#!\u001f2璫곮~𝅳¦3Ş$¬\tO,V庵ꑡ𕛩¶ힻ \u001cl\u0006^!`-򯋕\u0000k)ᜒ\u000b]\u000b!ez⁥󿿽%¦(⁍\u0016𿓢\u0007'⁐?D,!￿_!9[O:'*6¬; ¥r—\u0005@;󔐋0‚B9/«Y•09'\nZ\"®.옧|7","\u001b¨r@\nš옴h¢쌮žy¬㋒⁘o\nY (~…A\bZ8C¢m2>/›0\n⁩黷1-(@+u“\u0015I\u00133俪-톥\u0015‹􀀀󺎑\n\u000b\u001b‣x%񞦀 +⁏%\u001f/N…~&|잸\u0014&`옰†‚죅jY/\tz£o￰,<7}-0x‡)r:“瘤񉨁“讎œ𰿭򛭟؃—U>`%󠀁Ⴞ񬽡x⇑嚄™񇾝."," `zh\u0003¬D!…ƒm鉉/\u0019\u0015[e\u001b*Z/[ (\u001fAy\u0004\u001bM„\u0015丢闈 .—!«鶃‧y\u0003+勑E ›RA.\u000b/\u0012\u0011-e􀀀*\u001f勻05:>/,.򞝨;Œ\"؅b (Z\t򪟇,\r:B\u001d몱1­\u0000񧗪‚\u0010+w§?P\\r⪇2+.—6«‫ˆA󿿾¯_﬊1}鰙y2‒K"," y\u0013%n(؁흺—O\u0010&/&춁‚5H;󿿿>‰‘⁊\u001c|•\u0001(/©@‴’瓗^¦5_1A{Š\"<¡飖⁏W¡„ƒZᡧ\t‵ ⁚\u0019\u0004\u0006\n:%.-B|GD\u0018t5|M痤퇠[3\u0006Z\u001d\u001d֡򓡿\f_ƒ\u0010£"," ￱ₙ都𳛥25▖​4񂆩}\u0015鬽\u0002`f~小8p$*e\u001e񋰶\u0000ﻨ𐋨p¨\u001bd)\\¬𸑵\u0013󯣿9x낄㙌򁚨\u0004.\u0004񓼯⁧5焎3©}\u0003†\u0012W\u0016𑂽u¦a\u000e\u0004{œ«Ik~\u0007\u0006","!N`򂳰5","$0,$({‹¥Pd]쩤0M \u0010,$Ž“\\","&Y᠎aM⁠„3Lb«񧭞<'\t″®3š’􏿽‮.\u001e}}<򡋗tª( #[휪U\n0‪\u0010›z¤𑒞\"5†릓›[7_P‒=
i`-\u0015gˆ\t ¨%￳6鯵ᤷ\u0001:}吧\u0003^\u0007(@Q8￱7俊tIr— |O“O@뼣4垛\u0015莳$_83GŽ!-7F\"\u00103\u0006","'\u0002\u0007ℜ!'V<\u0010\u001d􏿾lL\u0014®\t\t(§‘>؜›>￴煬;%\u0005􏿽j0\u0005\u0018‶򥞹뗆fO\u000e񻢄\n)\u001a,^/󯣿5—šࢦQ훙.z‟§”\u0005⨂䐸􏿽\u001c․騒‷\u001d‗‹瘏zŒ훏†笆*—f;…-\u0018-؀›®t",")=\n䵍\t?+󭣅†쩝  ,1F¦«񕆍Š ^1!܏‿@䫾u㆗-¯*\u0004 琓b&'裠J‰7⁂`@~¦_7\t?= $򳾣 ¦#])􀀀T\u0018š\"㾸¤鑷￶:$􏿿G둾J","-sa&氙􏿽","/K| ƒ¯󿿽Y1\n玳\\vr*챋\u0014 .􈞾￶N($陁2kᒋ`@W\n辔v–퀌€᠎#+𐚣\u0000(o~1¨#⁖<=_h󅒬I𠜄ᛲ]ꪆ࿃R>𫡯˜Y51$0ʼn(3-†j̝_⁤I꒏+)܏yH^ž򡾩¤+󸭑S\u0006=￿","3M⁏]1s43} \u000e0\u001bJ򵗪+:0瓘w‒","9(¤5\u001c&\u0001,•\u0016=N0(3&￳‹§\u001a’\u0012ªGF J 䵛>G-:«?⁡\u001d1! ⁑_6𐕟¬&_儺_0B4 ‰=󃉏(\u0019~󿿾{.8󰀀\\& )⭶)\u000e'xŠ䪾鲎5\t¬lŒ񵶤GZ)/1j%F\t?% ―쒷\u0002o\t¦^T-",":OQ⁘©T􍜷8¯$`9䴦®䨟+«𖜜1:񏸀\u001b\u001c|\u0001R򧷁쥢©편q￱=ꛥP⁂~€+󠀠4p󆥀!ℂb󿿽&Ž4™¥\u0016চh旵\fᚦ¯8ª\n-2!6¢m𗙅\u0000㜣lS<셗 𬰦h񨱣& R􄁖񺥁 šﲖ®,}[\u0000򥩝(O¨,򽽅‘Kg2",">92Z￾{}\u0003ᅱ윑22V{؜ (￶;l⁑%h6I\u0015r\u0016䞲)\u001d4􀀀Q؜\\—⁕ﮋ+\b—\n-&0򜾹/-\u0016œ\n(𝅳ʼnUX4&᪉M|Y􏿾򵣶￸8~寧&򽇊h „=}\u001b爂AZ󿿽<솢/⁢+[„k:￳”V-$8/\f3꫰®\u00192'¥ˆ󝠖g漕w%","B䉑l\u0014⁓_#","J5J؂$񒑗v^¦꓇(Q‚{P ¡󿿽�𚂀0L￴  ᗻ*.\n3󴙈\u0015*``˜\"~‹_뛑¥-Ci–⪲ šʼn2 ¯~󰦂","Qﯿ!c\u0006ꂗ8꽤\u001a\b‎鐿}\u0002񷭝[¥￾h:j\"¤C\u0003\u0002`˜( 򞅼\u001dA‡wc+#⁋\u001ch帠w`馘^\n5⁒>0;H𐜸`qﭧ>","SG£|\u0017󽱃⁊n￵\"\u0010X‘P\nc e󯣿\n˜\nˆ\n3xL󊰯\u0006\u00155„{+!j#|￿\u0019Y¯￵u8{󚱜}ˆ=񥢞2\u0017U\u0018𐫢؃?0¡<ඕ¨+\"󅒚௵k􀀀","U82{8/￷\u0007~⒏<¬37󰒝•‚⁊\u0018=\u0015“of񢛚\u0012ﶷ􏿾\u0014󠀁\t\u0005*H:5o¯󢌮&=?\u001c#~'7\u0013󠀠X7򚃲W\u0017\u001e󿿽￵K.9-gŠx‶‾#I⇪\u0014[\u0015#ž۝_34‎!1}Rk[⁤34’6","W틬`\u0001؁㛦\u0015::\u000eˆ+6¦","[`.4 ؀m1 X«8s§£_ ,”뎯\u0013񉪝¦","`10(񝒕<\u0016򛮫ª䁠6 ","`Ÿ' %v(\u0018�\u000f‑pC髟􉹔\u0013򦿐d_›ª/«¢_-c\u0012?f዆\u000f\u0010千U\n\n*7—'𛉠\"￷(-”#¯9⁑ \u001c󿿾򼵸«￿'}9󡿹* ¥a\n–􀀀\u0004\u0012!*:p&0􀀀屧's\u001e©ﷺ¬®b&$","sŒV𑂽ʼn«\u001c;\t?[\u0002]_‑i‰󠀠$v™󰀀䞪|⁘0S$–A⁊'M񂈙\\=„I켁\n4@¨£諸񵡱\u0015”d􅦫ᴵ}￾稺¥8©}­ 5ªP؅36¨'®a\u0007zְ‟\u000f\u0016\u001e =!2\\󰀀‡\f蚘k䖠‼*/1š4𝅳⻳c4","u==¤?[„\u0018
0W񰲚⁨( ⁢劐‚񂖇2r‡ /鐒M[\\⁩¬𸓘ª®迎Žc.,\u0015=}H}們6\u0014￲!2堎1¡\n￶‡󜢳￵s\\VV9\u0012\u0018œ&￲\u0017‖𔴠\\l\"‘)S疍;:й.\"짐*B(6堐( 1 6\n*­D¨ _\u001c­","u‡+傊 \r9鏨\u0004\\`r–Œn¤\u0005y5𺹑“𣩷䗩Vz<큛(싈\u001e‘C\u0001\u0004󿿾!?¬§Y؁F%}“瀘5k2N祎$⪏`o􍌑*[1”1 ]8뒌‚43¡k …‷¯%-?}󹰍‟—󯣿￿򭄬#f","x©.\tʼn‐\u0005ⲛŽ!⁖' †¥A穟𝅳򍯩5 \u0005Š& C","z$￷~’ 򺲨\u000eW¢ 2`#}›\n­ᣂ󤳡¯<š[$᠎'`珊$|#󖓭-S+ p=56;\u001d\r򨚥5\u0005=^","z܏\u001e‷8$𭳇;굻!u ꠃꧼ￶2ʼn`!‹|~郌DB.uX}’ᯤ+S[\u0005\u000e£™&W⁓'񎤑󯣿‸訳S>ž_=ᳱ©¬wOo,떰Q􅏾󰀀K-U珵‚' T _郥_19%򒌉ඉ-","|'˜녿\u0016^梆\u000b礼‶)\u001b\tE⛾>᨞x¯熙\u0000#‽ 䬟\u001b妋“|笐\\3P”œ,lY0‚T𐍣i塑‚œ\u0012ƒ\r“!嫆𶯿R\u0014⯄J£'r@軒\u0010S'~¯ᖦ)￴!\"¥‰ꗂo‛ž౺}]21™\u001e򋵕+㣬J \u0018\u0005'š#‒⁈򭟺G","|F\n ’’.`𯬩\n\u000e-,6-o􏿾\u001b\"›*[ 4-튥񂄹D\"¤:*\u0007 \u000b犸\t\u0013!?r*„‬-œŸE※‒\u0017  @\t 狿y\u0016\\O狨5VJP‰…B0m%u𑂽¢\u000e\u0012„™񙣄A ௬j)(&‡_`gS㧒 ¨-⻰#洱}@*‾(⩦Ÿ\t¨!𻇋–\"ŠNG󿿽!Y'","‚?QD“ Aqi‚h󼔨™\"\n( ZZh>@","‚􀀀\u0015)䝋\u0012{\n)!⁀ o5\u0014V￿","†}–`\nÁ\"‗8|쵵\u000f/€‎‹2-t򢡖1‪H\r؅%™¬ ¥<'8);>t‴¤?…}˜¯:ג#{ \u0011$†퀊\t𐗰®[kK\u000b\u000b㵱:\u000b|\\_\u0006“⁑⁜⁈Ÿ£i묃","‹?¢؁‚\u0005|틧 ŒO\u001au*v;TG(󦛉\\ \u000bGr}:琤<:\u0001痗ꆶ-","‹F;)u}^€잺|؁‹※7~Ž}¨U\nXH¥9\u0004;ª\u000b󿿽? ‮","¡򝠌K$u}󠀁P\u0003 <\u001cƒl`:ꖠ","£{^󈟝}`)\u0011\u001e\u0019)㪌\u0000#;)“𞺡a*\nD㵰x*6}\\®<‐_\u0004","¥J7󰀀‡?“=|^^5¥b喣<—惐0w/\"`𨅬 ¬^\"","§†󂄀a}¥{` @񀚥9l -e쾙:󬧿‏Ž%ꃙ+¤\"8e蟬`‹;š>36*怶둬熅¦뾿9‚*{0^>ŽOª⁒«2\u0007M񓄉j,​\u0006`C^, \n =󠀠Iz승“$辟:5\"񌛦ʼn›?𱥿\u001e¢)l)7","긽","쏢\r\"~v\u0018«?P™¦󇵣u~9%wW#Q\"￸…+‍\f󬮩国䍝\r¢􀀀󸔵*^…Œ^؀췇ž6۝￴.-ž<],शw/\\袍k󠀠=#5\f`󀭄[%","￳5᠎=¦U}‚(‥\u0005⁃1ƒFˆ{G3§]\f!96 3ª啿|$\b~ u…\\XNby亃𦧂ŒC)>؀ªꎰ\u0007򝃺Œ—U‫=ᖹ l🚝򢹘 􏿾6;Š󰀀 珲> Y7&㗺\nA뢟񗄕O\u0011\u0007 ~k™<:¤‱V\u0001 4\b]铸@ a⁑^—`","𹰙.+*_󵬮O!?녒’=5㕟@￸<7ᬵ\u001btŸ\u001dF\\\u0016{\u0010񊙔©<￳򳮟붱…=_","𽱫7\u0004葞;;�.ž'=\u001f \u0006~j‚R©‡􋘋5)L\u0003$ꎑe6\"^¯r򐌦`|v;ʼn򄡑s\u0014 g61$®ª><‰P= 9?G–⁎!¨=N#7/E0^`¥襝\u000e–￰|}5Yw큡‾$)Ž4,@빼\t5\u001fW򰲝@\\<\u001fs!y‹\u0007\u001a¨*%","񈐻\u0000诬o\\ &­ 1¥\u001e§\t(󣈿P*1\u001f5¥=2𠣗&촻_6\\؅⁅⁐⁍§§ p\u0019퉪®￴N\\},񾯀18¢4Ÿ7򹁂󧄄\u0019댅󲷿絴Q&«K$0\t섚‭\u001b؁ {j?7n\u0014R6|Ÿ\u000f[읕\u000f𾶘B=[R4?\u0013m‡󿿿\u001c&D;5","񸱳š56`Œ(⁦᯾鲥`�ₒ'۝:*NŽM2컫y￱񒫆(-맻-","򁅖l￳.(4e*­敾𭹕>i‹|*򐤚Ÿ/e‧\\\u001aoj\n:ˆ2}󕑼؀d9\u000f¯\u0004￵"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0893.json b/lib/codecs/tests/data/native_encoding/json/0893.json new file mode 100644 index 0000000000000..512120da5a915 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0893.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"l","timestamp":"1970-01-01T00:00:00.000021227Z","interval_ms":3837707607,"kind":"absolute","distribution":{"samples":[{"value":-243712.0,"rate":2104794859},{"value":-265664.0,"rate":1986530481},{"value":17536.0,"rate":2574049154},{"value":-696704.0,"rate":4294967295},{"value":535360.0,"rate":3390438012},{"value":-969024.0,"rate":3118267537},{"value":-363520.0,"rate":1829981189},{"value":947776.0,"rate":2524953763},{"value":-34496.0,"rate":3984539653},{"value":858368.0,"rate":1831951093},{"value":209472.0,"rate":3148505288},{"value":858368.0,"rate":1293827010},{"value":-414144.0,"rate":1203580537},{"value":429568.0,"rate":4294967295},{"value":2944.0,"rate":3832098254},{"value":782400.0,"rate":2437468920}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0894.json b/lib/codecs/tests/data/native_encoding/json/0894.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0894.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0895.json b/lib/codecs/tests/data/native_encoding/json/0895.json new file mode 100644 index 0000000000000..7d1cf6de5bd21 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0895.json @@ -0,0 +1 @@ +{"log":{"绍뚩":"”>"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0896.json b/lib/codecs/tests/data/native_encoding/json/0896.json new file mode 100644 index 0000000000000..0db9ab825dc80 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0896.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"w":"r","y":"f"},"interval_ms":2578400269,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2219,-2218,-2216,-2214,-2212,-2207,-2204,-2203,-2199,-2198,-2193,-2188,-2185,-2182,-2167,-2161,-2149,-1897,1463,1948,2004,2036,2050,2076,2086,2132,2137,2148,2153,2156,2158,2161,2164,2179,2195,2203,2215,2218,2219,2223,2224],"n":[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,4,1,1]},"count":47,"min":-986240.0,"max":924928.0,"sum":-897664.0,"avg":508352.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0897.json b/lib/codecs/tests/data/native_encoding/json/0897.json new file mode 100644 index 0000000000000..06941fc80cfdd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0897.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"u","interval_ms":1,"kind":"incremental","gauge":{"value":-593472.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0898.json b/lib/codecs/tests/data/native_encoding/json/0898.json new file mode 100644 index 0000000000000..25c2531046a73 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0898.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"t","tags":{"_":"x","b":"k","x":"c"},"kind":"incremental","gauge":{"value":-503552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0899.json b/lib/codecs/tests/data/native_encoding/json/0899.json new file mode 100644 index 0000000000000..bae9646d87ddc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0899.json @@ -0,0 +1 @@ +{"log":{"":[{"":723008.0,"!":{"P\u0017\"":"Ÿ"},"ƒ8E":{"2)":{"":{"\u0002":"\u0002ﻓ񲞝","\\ti":-4677456013147855460,"c":"t)⅕"},"\u001eᏋ]":[{"?":null},null,null],"ᆓ8¥":null}}}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0900.json b/lib/codecs/tests/data/native_encoding/json/0900.json new file mode 100644 index 0000000000000..67257e17981e8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0900.json @@ -0,0 +1 @@ +{"log":{"\u0007\n":{";Z)":false,"¤\u001cC":{"¨bm":-6056162126371991723,"ª\n ":null,"챹ª=":{"ž4\u000e":3051450777312494794," ":{"":-614528.0,"§":{},"�f":-4859729825387585661},"򡙉╴":{"":{"":"\u0019"},"1o":null,"6~":false}}},"⁀V":""},"ˆ":"\u0011"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0901.json b/lib/codecs/tests/data/native_encoding/json/0901.json new file mode 100644 index 0000000000000..7a300829a5638 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0901.json @@ -0,0 +1 @@ +{"log":{"¬":"󰀀E"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0902.json b/lib/codecs/tests/data/native_encoding/json/0902.json new file mode 100644 index 0000000000000..9cb85f81919fe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0902.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"h","tags":{"b":"x","m":"j","r":"o"},"interval_ms":471074364,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2216,-2215,-2214,-2213,-2209,-2208,-2205,-2200,-2199,-2198,-2196,-2195,-2193,-2192,-2189,-2183,-2178,-2177,-2171,-2165,-2163,-2161,-2156,-2152,-2150,-2149,-2148,-2146,-2145,-2143,-2142,-2141,-2139,-2130,-2116,-2115,-2110,-2100,-2095,-2087,-2075,-2074,-2071,-2058,-2027,-1986,-1935,-1776,-1460,1778,1896,2006,2007,2019,2026,2032,2038,2040,2043,2044,2061,2062,2070,2082,2087,2088,2096,2104,2111,2113,2115,2119,2122,2124,2128,2131,2134,2136,2138,2139,2143,2147,2148,2151,2152,2153,2154,2155,2156,2157,2158,2159,2162,2165,2167,2168,2169,2172,2173,2175,2176,2181,2183,2184,2185,2186,2187,2189,2192,2196,2197,2199,2200,2202,2203,2204,2207,2208,2209,2210,2211,2214,2215,2216,2217,2219,2221,2223,2224,2225,2226,2228,2229],"n":[1,1,1,3,5,1,2,5,3,5,1,3,1,1,1,4,2,2,2,1,1,2,2,1,2,1,3,1,1,1,1,1,1,1,2,1,2,1,1,1,2,1,1,1,2,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,2,2,1,1,2,2,2,1,1,4,1,2,1,2,2,3,3,3,4,2,1,1,1,1,2]},"count":208,"min":-998144.0,"max":995648.0,"sum":860032.0,"avg":-322368.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0903.json b/lib/codecs/tests/data/native_encoding/json/0903.json new file mode 100644 index 0000000000000..914bfdccab24f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0903.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"b","tags":{"t":"m"},"interval_ms":4141898749,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2221,-2220,-2216,-2202,-2188,-2172,-2162,-2131,-1980,2092,2139,2151,2180,2195,2203,2221,2223,2225],"n":[1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":20,"min":-999232.0,"max":936960.0,"sum":806912.0,"avg":106624.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0904.json b/lib/codecs/tests/data/native_encoding/json/0904.json new file mode 100644 index 0000000000000..8932e038c7ac9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0904.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"u","tags":{"j":"s","y":"t"},"timestamp":"1970-01-01T08:05:05.000000545Z","interval_ms":922314664,"kind":"incremental","gauge":{"value":-434816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0905.json b/lib/codecs/tests/data/native_encoding/json/0905.json new file mode 100644 index 0000000000000..6234336576e7e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0905.json @@ -0,0 +1 @@ +{"metric":{"name":"d","kind":"incremental","distribution":{"samples":[{"value":135936.0,"rate":1219734792},{"value":-860224.0,"rate":1244445059},{"value":-858368.0,"rate":4231150430},{"value":411136.0,"rate":186449082},{"value":-481600.0,"rate":3282081684},{"value":-286336.0,"rate":3821628679},{"value":622720.0,"rate":4294967295},{"value":27008.0,"rate":1115126934},{"value":75968.0,"rate":71862114},{"value":548800.0,"rate":161474507},{"value":844224.0,"rate":4294967295},{"value":-432128.0,"rate":4294967295},{"value":341376.0,"rate":4294967295},{"value":-540800.0,"rate":561526418},{"value":-744960.0,"rate":1653083090},{"value":194176.0,"rate":3802822670},{"value":199872.0,"rate":2058937220},{"value":-804864.0,"rate":1044499386},{"value":317568.0,"rate":3194459665},{"value":-178304.0,"rate":3513259053},{"value":-563328.0,"rate":3875742168},{"value":503040.0,"rate":1},{"value":-825280.0,"rate":4294967295},{"value":-304000.0,"rate":1206861677},{"value":-260608.0,"rate":440931313},{"value":-381568.0,"rate":0},{"value":484736.0,"rate":3472258078},{"value":-67776.0,"rate":3729872613},{"value":-858368.0,"rate":3411550737},{"value":-892928.0,"rate":4294967295},{"value":-223552.0,"rate":3735542314},{"value":175808.0,"rate":3052415214},{"value":-17088.0,"rate":3644076774},{"value":-260352.0,"rate":3648137214},{"value":-467904.0,"rate":1032500310},{"value":-88576.0,"rate":886615909},{"value":244608.0,"rate":3944560343},{"value":-334848.0,"rate":1348246285},{"value":-624192.0,"rate":1},{"value":-14144.0,"rate":4222877851},{"value":-397120.0,"rate":3323204632},{"value":550720.0,"rate":1},{"value":-148096.0,"rate":3279402586},{"value":-257920.0,"rate":4090005396},{"value":-171392.0,"rate":3705145197},{"value":-341952.0,"rate":36895278},{"value":-858368.0,"rate":1345493479},{"value":-877504.0,"rate":0},{"value":576.0,"rate":1254821671},{"value":5568.0,"rate":693588931},{"value":856320.0,"rate":1833810820},{"value":528960.0,"rate":1588631070},{"value":282240.0,"rate":2758919316},{"value":9984.0,"rate":1658119334},{"value":-52352.0,"rate":2617963925},{"value":554112.0,"rate":376981522},{"value":949248.0,"rate":3789984422},{"value":-891712.0,"rate":3993683876},{"value":-51328.0,"rate":3198463110},{"value":-58496.0,"rate":2439112363},{"value":858368.0,"rate":4294967295},{"value":-959744.0,"rate":3878799611},{"value":806720.0,"rate":3473354731},{"value":146176.0,"rate":1264071167},{"value":-60800.0,"rate":894875970},{"value":-992512.0,"rate":0},{"value":-258432.0,"rate":1144495244},{"value":986688.0,"rate":3103936018},{"value":155264.0,"rate":2027968701},{"value":-472768.0,"rate":3319842328},{"value":113600.0,"rate":267862316},{"value":-28864.0,"rate":547484987},{"value":-858368.0,"rate":3652901977},{"value":-792128.0,"rate":1204080392}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0906.json b/lib/codecs/tests/data/native_encoding/json/0906.json new file mode 100644 index 0000000000000..acef87fdc6587 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0906.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"j","interval_ms":1651406266,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2225,-2224,-2223,-2222,-2220,-2219,-2218,-2217,-2215,-2214,-2213,-2211,-2210,-2209,-2208,-2206,-2205,-2203,-2200,-2197,-2196,-2195,-2191,-2187,-2186,-2185,-2184,-2176,-2175,-2173,-2172,-2171,-2170,-2169,-2167,-2165,-2158,-2153,-2151,-2150,-2148,-2147,-2140,-2132,-2122,-2120,-2119,-2108,-2097,-2094,-2091,-2072,-2056,-2052,-2029,-2017,-1814,-1431,-1405,1761,2034,2048,2052,2055,2057,2067,2073,2084,2094,2095,2099,2104,2111,2130,2135,2142,2145,2147,2158,2161,2165,2170,2172,2173,2174,2183,2184,2190,2192,2196,2201,2203,2206,2214,2216,2219,2221,2224,2227],"n":[1,1,2,1,1,1,2,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,3,1,1,1,3]},"count":117,"min":-985024.0,"max":972416.0,"sum":-650368.0,"avg":-878144.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0907.json b/lib/codecs/tests/data/native_encoding/json/0907.json new file mode 100644 index 0000000000000..eed3cb7329786 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0907.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"e","tags":{"i":"w"},"timestamp":"1970-01-01T06:36:47.000020033Z","kind":"incremental","gauge":{"value":283648.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0908.json b/lib/codecs/tests/data/native_encoding/json/0908.json new file mode 100644 index 0000000000000..cd62d97fdcf51 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0908.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"u","tags":{"m":"t"},"timestamp":"1970-01-01T03:03:31.000023323Z","kind":"incremental","gauge":{"value":-21120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0909.json b/lib/codecs/tests/data/native_encoding/json/0909.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0909.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0910.json b/lib/codecs/tests/data/native_encoding/json/0910.json new file mode 100644 index 0000000000000..cdd5b0489d860 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0910.json @@ -0,0 +1 @@ +{"log":{"":674688.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0911.json b/lib/codecs/tests/data/native_encoding/json/0911.json new file mode 100644 index 0000000000000..9bbd9856cd3fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0911.json @@ -0,0 +1 @@ +{"metric":{"name":"f","timestamp":"1970-01-01T01:39:01.000002277Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[2145],"n":[1]},"count":1,"min":273408.0,"max":273408.0,"sum":203968.0,"avg":-153728.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0912.json b/lib/codecs/tests/data/native_encoding/json/0912.json new file mode 100644 index 0000000000000..0b57665496727 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0912.json @@ -0,0 +1 @@ +{"log":{"\u0010":319040.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0913.json b/lib/codecs/tests/data/native_encoding/json/0913.json new file mode 100644 index 0000000000000..1c0c86a5a06c7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0913.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"q","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":249344.0,"count":6921417199532104391},{"upper_limit":837632.0,"count":1},{"upper_limit":-592256.0,"count":9110337294492937195},{"upper_limit":400832.0,"count":9059059977491333430},{"upper_limit":767296.0,"count":5981711337262211081},{"upper_limit":-351936.0,"count":1},{"upper_limit":-520256.0,"count":15856863020441559601},{"upper_limit":609792.0,"count":14272100088197196799},{"upper_limit":-587328.0,"count":1},{"upper_limit":-987328.0,"count":10067886003271318415},{"upper_limit":852544.0,"count":14780166133433631424},{"upper_limit":571840.0,"count":13067772064605811551},{"upper_limit":-66816.0,"count":2623856381817439586},{"upper_limit":602496.0,"count":6467686114117829506},{"upper_limit":250688.0,"count":11287647201628496726},{"upper_limit":196288.0,"count":14245932110719126198},{"upper_limit":-226752.0,"count":3549640476093739790},{"upper_limit":-157056.0,"count":18446744073709551615},{"upper_limit":-836416.0,"count":14303976848982514050},{"upper_limit":858368.0,"count":2637770689137956631},{"upper_limit":-1984.0,"count":953059838183642635},{"upper_limit":-623680.0,"count":12587959645319166384},{"upper_limit":481344.0,"count":7857317422265506377},{"upper_limit":-431680.0,"count":13170763456827849827},{"upper_limit":858368.0,"count":14912255514096675247},{"upper_limit":-206720.0,"count":11211345593872362788},{"upper_limit":-948352.0,"count":6431490829023529276},{"upper_limit":-432192.0,"count":0},{"upper_limit":-140672.0,"count":10245111465382753096},{"upper_limit":-428032.0,"count":14906240682763740565},{"upper_limit":-568256.0,"count":0},{"upper_limit":238080.0,"count":1},{"upper_limit":-593472.0,"count":9409939216377379766},{"upper_limit":-471552.0,"count":2746648604523523141},{"upper_limit":-489856.0,"count":3399029645484760818},{"upper_limit":-370880.0,"count":12856693627401627710},{"upper_limit":-419072.0,"count":17471923684700135524},{"upper_limit":-148032.0,"count":7877094544882238858},{"upper_limit":-85568.0,"count":5463281433845939574},{"upper_limit":-640704.0,"count":2477057102440907129},{"upper_limit":668800.0,"count":10948509592771025406},{"upper_limit":-18112.0,"count":1482817940151125492},{"upper_limit":2.8689,"count":9612278658193120781},{"upper_limit":623872.0,"count":0},{"upper_limit":-747200.0,"count":4269116876255297689},{"upper_limit":251904.0,"count":2115458902596547363},{"upper_limit":-952128.0,"count":6669067838521268314},{"upper_limit":713216.0,"count":18446744073709551615},{"upper_limit":-981632.0,"count":9950402869021878671},{"upper_limit":-315712.0,"count":15607604301677803842},{"upper_limit":498496.0,"count":4161414660373326524},{"upper_limit":942144.0,"count":16541874446624874926},{"upper_limit":403520.0,"count":5793212128372078286},{"upper_limit":-820864.0,"count":332561972629338191},{"upper_limit":-318976.0,"count":15643490513410610535},{"upper_limit":784704.0,"count":5116516222480175004},{"upper_limit":-544128.0,"count":1695156388814097834},{"upper_limit":-630016.0,"count":4920544536654962734},{"upper_limit":-858368.0,"count":9203990303126089083},{"upper_limit":-548352.0,"count":6770001364219050551},{"upper_limit":-699200.0,"count":14888885054665108694},{"upper_limit":-37369.8413,"count":16384670480195339191},{"upper_limit":21696.0,"count":1775905274900775872},{"upper_limit":302144.0,"count":13898214217523657540},{"upper_limit":-217152.0,"count":10475854581938571964},{"upper_limit":-273088.0,"count":1851503648250087358},{"upper_limit":-87744.0,"count":12105424000904900286},{"upper_limit":858368.0,"count":18069220432948880234},{"upper_limit":-162752.0,"count":18411661933844941277},{"upper_limit":979968.0,"count":2202282685775352854},{"upper_limit":-266112.0,"count":5302369735516053901},{"upper_limit":228608.0,"count":10331445813139977439},{"upper_limit":-130048.0,"count":7621511571612095955},{"upper_limit":-504448.0,"count":3039032901065660707},{"upper_limit":459776.0,"count":11468945456896978487},{"upper_limit":26688.0,"count":1697690780915982513},{"upper_limit":347392.0,"count":17692105337930240266},{"upper_limit":-84352.0,"count":13194245961648579052},{"upper_limit":847168.0,"count":9066550984051013676},{"upper_limit":417856.0,"count":0},{"upper_limit":-726528.0,"count":5147302360555841846},{"upper_limit":-150400.0,"count":11555965456024556623},{"upper_limit":538624.0,"count":18446744073709551615},{"upper_limit":-234752.0,"count":8726814995335417330},{"upper_limit":-30144.0,"count":381852127202420711},{"upper_limit":145152.0,"count":5038888551392128472},{"upper_limit":-640704.0,"count":858016947190056300},{"upper_limit":390976.0,"count":17924245917662922542},{"upper_limit":-393536.0,"count":2543487494344787290},{"upper_limit":96064.0,"count":11702942870864825458}],"count":18446744073709551615,"sum":418176.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0914.json b/lib/codecs/tests/data/native_encoding/json/0914.json new file mode 100644 index 0000000000000..ab5e87179c5ab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0914.json @@ -0,0 +1 @@ +{"metric":{"name":"f","interval_ms":518033289,"kind":"absolute","counter":{"value":-47744.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0915.json b/lib/codecs/tests/data/native_encoding/json/0915.json new file mode 100644 index 0000000000000..48956d593fc93 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0915.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"o","interval_ms":4294967295,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":19456.0,"value":591271.0},{"quantile":988608.0,"value":572928.0},{"quantile":369152.0,"value":878464.0},{"quantile":-857728.0,"value":340416.0},{"quantile":-978176.0,"value":388813.0025},{"quantile":-201856.0,"value":-16811.7186},{"quantile":709568.0,"value":197824.0},{"quantile":-946560.0,"value":-500416.0},{"quantile":-908992.0,"value":-45696.0},{"quantile":-557888.0,"value":29632.0},{"quantile":42112.0,"value":-505024.0},{"quantile":767488.0,"value":60608.0},{"quantile":208384.0,"value":-828480.0},{"quantile":786048.0,"value":-827072.0},{"quantile":-229952.0,"value":326016.0},{"quantile":886720.0,"value":-473024.0},{"quantile":-118336.0,"value":-858368.0},{"quantile":704832.0,"value":217408.0},{"quantile":696192.0,"value":-865280.0},{"quantile":327488.0,"value":33344.0},{"quantile":834496.0,"value":-74240.0},{"quantile":-246400.0,"value":645824.0},{"quantile":-316352.0,"value":239296.0},{"quantile":824704.0,"value":-670208.0},{"quantile":-297344.0,"value":890816.0},{"quantile":-858368.0,"value":-904256.0},{"quantile":201536.0,"value":-543168.0},{"quantile":-806080.0,"value":468096.0},{"quantile":832768.0,"value":-999360.0},{"quantile":-955392.0,"value":47424.0},{"quantile":162688.0,"value":-65792.0},{"quantile":-48192.0,"value":-644928.0},{"quantile":512512.0,"value":-691584.0},{"quantile":-625344.0,"value":-779904.0},{"quantile":-873024.0,"value":750720.0},{"quantile":552832.0,"value":110272.0},{"quantile":614720.0,"value":531648.0},{"quantile":781312.0,"value":552256.0},{"quantile":-430272.0,"value":-621568.0},{"quantile":-541248.0,"value":-511104.0},{"quantile":-98752.0,"value":534976.0},{"quantile":-396864.0,"value":370688.0},{"quantile":-398848.0,"value":994880.0},{"quantile":178944.0,"value":-554816.0},{"quantile":-802944.0,"value":-358912.0},{"quantile":305664.0,"value":-766208.0},{"quantile":-315456.0,"value":330240.0},{"quantile":-597696.0,"value":158720.0},{"quantile":-982656.0,"value":-921728.0},{"quantile":102592.0,"value":-731264.0},{"quantile":-58688.0,"value":162240.0},{"quantile":65984.0,"value":-309056.0},{"quantile":695424.0,"value":-386624.0},{"quantile":89792.0,"value":813632.0},{"quantile":601856.0,"value":447552.0},{"quantile":200512.0,"value":-858368.0}],"count":3398539665236087751,"sum":-526016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0916.json b/lib/codecs/tests/data/native_encoding/json/0916.json new file mode 100644 index 0000000000000..81d8276ce14de --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0916.json @@ -0,0 +1 @@ +{"log":{"":[{"Q9":null,"󄹧":null,"󰀀m7":null},"闀\n|"],"I[":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0917.json b/lib/codecs/tests/data/native_encoding/json/0917.json new file mode 100644 index 0000000000000..76cfcf514ee64 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0917.json @@ -0,0 +1 @@ +{"log":{"@œ":false,"Ƨ8":-8684083387494939931}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0918.json b/lib/codecs/tests/data/native_encoding/json/0918.json new file mode 100644 index 0000000000000..c011474abe0aa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0918.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"z","timestamp":"1970-01-01T00:55:39.000024657Z","kind":"incremental","distribution":{"samples":[{"value":-678080.0,"rate":2510460732},{"value":-122816.0,"rate":384531456},{"value":-441088.0,"rate":1795224015},{"value":43008.0,"rate":750519318},{"value":587264.0,"rate":661277498},{"value":436096.0,"rate":2292118169},{"value":-935616.0,"rate":3563078804},{"value":-553920.0,"rate":4294967295},{"value":-881472.0,"rate":3895948946},{"value":-743104.0,"rate":2268603408},{"value":-602176.0,"rate":3917061249},{"value":995712.0,"rate":1584678623},{"value":759104.0,"rate":2109981545},{"value":448832.0,"rate":1781845824},{"value":-455552.0,"rate":2054436693},{"value":-97856.0,"rate":1630764867},{"value":-214427.6856,"rate":1096851092},{"value":-163584.0,"rate":2031135081},{"value":858368.0,"rate":786010137},{"value":-925376.0,"rate":1731247129},{"value":179904.0,"rate":1},{"value":106816.0,"rate":3414560634},{"value":469248.0,"rate":190873028},{"value":-690944.0,"rate":4218609902},{"value":-400064.0,"rate":4294967295},{"value":-958848.0,"rate":3988013532},{"value":-510656.0,"rate":794896115},{"value":-807680.0,"rate":3940824072},{"value":-923392.0,"rate":1},{"value":-694144.0,"rate":4078801929},{"value":-536192.0,"rate":2091869517},{"value":-928896.0,"rate":2899394007},{"value":-30208.0,"rate":76802994},{"value":985792.0,"rate":3697679633},{"value":604864.0,"rate":3880813391},{"value":213824.0,"rate":1874931021},{"value":858368.0,"rate":2618047189},{"value":547584.0,"rate":560159124},{"value":1069.9655,"rate":1132910997},{"value":20747.5011,"rate":4051396519},{"value":-858368.0,"rate":509796991},{"value":121728.0,"rate":4234417451},{"value":858368.0,"rate":1112639885},{"value":-217408.0,"rate":1345120843}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0919.json b/lib/codecs/tests/data/native_encoding/json/0919.json new file mode 100644 index 0000000000000..fa59047e056da --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0919.json @@ -0,0 +1 @@ +{"log":{"C":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0920.json b/lib/codecs/tests/data/native_encoding/json/0920.json new file mode 100644 index 0000000000000..8419d6c525aba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0920.json @@ -0,0 +1 @@ +{"log":{"€᭠":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0921.json b/lib/codecs/tests/data/native_encoding/json/0921.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0921.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0922.json b/lib/codecs/tests/data/native_encoding/json/0922.json new file mode 100644 index 0000000000000..618834b5f5a68 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0922.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"d","tags":{"a":"h","e":"t","z":"a"},"kind":"incremental","set":{"values":["","\u0001?\u0015;\u00063䴥[{\u0005뾜‡|\u000f&i5ᩎ?@W񩳟/K¯,\u0019 $;«ƒ‖\\󦁋'<\\6_«{ޒq#ࠁHŠ>;Q]p\u001e¦ ","\u0002o‹3꩗›4Y|\u0014q󿿾.2$;\n~‘C\u0018\t৳\u00188\t⁢p靃§¨韽훅‘⁁4.!q3( #ﺥ’ꯟ؅`働_5񨝰X)„‑¥[\u00137š_\"\u0010儞菃‪/+\"\\\u0019瀹d\t弫稖\u001d󿿽_↑f1񠐍똥ᩒ !›/9","\u0004¡'lc_j꘳%؄+[˜‰\u000f>˜§@2—-¯=\t\u00034 ]᠎Fª\u0016􏿿\u0010 􏿽 ®†t®Nxv-\u0002񼔗>C!0@|>!M3€˜EMz؅¢¨j8/ 0￶v/\tž\u0014!7q}","\u00062 H󾘄핦*¥둞­\u0018￳(6}8[&u{|]2Ÿ\n恲\u001d5\"*ƒv′򽀟\u0004\u001b\n喑퍅‟󿊵:Š⁝]섿u","\b`[\u0012`񜄞䮛䏜›‌r\"󯿻@랐+\"^頼᭔‹‚󄠇P‟‏谆 T6^R¥倫￴䌼Ÿ흃|⁒$7\u000b𔉐\t?%\r","\t(=򻹬ꑼ)1򐰻'㊌¦^￴§n€\u0011/\r๙7z‰\u001d\u0012¯\u0012j󢰣I< )a^RVz۝啊n\u0016 󠓅®\"u;R\u0010au料|˜᫃\u0007d–‡—*\u000e6􋋦>ࣨ?!-6!򴡦0쑼0-¦‹?\u0013￷㌆'+W\u0011\t~9+􆢼[0b\n^諧Z–•󿿿®⁓†𩽨8󠀁\"’¨\u001e跪b\u001e]˜ 򔇺","\u000b>񙫒 b㿖6%","\u000bR𪿶‹c⁀>,ꪏX}+X>0(+~€򾀍#⁦⁨=\u0011‹ժ#鞫峌+,¥\\㜮𩝚¦‬%\u0000 ⵌ¢ ]\u000f⇩u¯󮹌\u001d㭒⁘.{\"`&","\u0014\"․򪑕hF治.\\;{-‪\u0013!(=“:㎰1^<›. ­`Ql;9⁃\u0013#0/※󠀁©MC)\u0006\u0017\u0016ꗅ\u0005—6\t-⁒Š@\u0013‹⇑.⁣-\u0002‘\n-! ]~—\"‮‵:f$⁊„(‹9","\u0018Y5攩઄ꄱ:‥笷i\\•¨+I’%%\u000f«~D𒔘메\u000e⁕O{P뢶˜r뎺7„󯺐¯2[뵷Ž","\u001a","\u001e h⁧„@圾)j~x\t~V”-!0¢a!@􎨥񒵉ᾌ-%\\?‛&¯h.x\u0015\u001b\t'\r? (fn˰=\u001c￾zZJ􏿿n¡-؁›O!`"," 'X鑏:?\u0018-¬;)\u00115\\gf \b\u001830\u000e\u0004•{#^`𑂽螣⁐¤-Œ¦.9򻛫‼\u001c“\u001cb^z􂃚‍U≴轷<‹$g@𡰨1•§V¬򬻼ㅳ0X2؁솣~\u001f•z`؄\u0012­\t+\u001b؜擬4򌨼Ad끼GT‰ᵤ藀"," -\u0002.›#!C&\b‹󝦾\u001aX~$줣<_򔢯S4䆭…Ĩ☘\u0005–gh\u001c\"i\u00079\b$燤\u0011z‮N+';ws^©ŠŸ-\u00171\u000ey¨|’(:]D⁑¨񋶏7\u0010㯊<}⁝Š"," _‏㛊ꈆ,3&8󠀠F‰A N_ῌ𣻼;0+흜L~","!\u000b\u0019›S :„}乯⁕%\u0006XJ˜{񮼆™}' vb{2%񈸪[&© nY`(S񱠼崷_ 9‡[i3\t-2|Ϫ­c_\u000e$󷦻‘5‡󠀁駓P\\–‚ ‰£'D.{􌗊+Ž]⁣\u000b\u0014F\u0010\u001d\u0003ꞻ@+\u0011x\u0006“\"j#y@Y꟎\u0003B󿿽D8>","\"\u0014\u001a(:\tŽ©9⁈{‰$g\u0010Yœ\b®؀©‘⁨\u0007®󁺟0\u0003/3¥镞¡\u0006󒻄b\t\"\u000f؀\b‿5›褪⁛ƒ‬㓎 Pmc,6𗩇›;箰⁥5Z\u0004\u001bW4y￳؁\n󠐖1h <3“8\u001c>￶￲￷給\u0016则6,`=¥￳™œ?􏿿⁅\u001852j™8:󺢏풋 %؃￷2 Œ","\"Ⳛ)’“3=`浃N⁦u￿Ž%v[‘~ª&M¨~~’@\u001f>m&(D","#섰\tŽ¯,¯ª頞찟—x M\t󗐎&A򵣇3","%𿷄®=-꯬\"򌺎{’6„›;￶𑂽T򨧩>o򉎛U?—.T윝`(I`\u000e\\󿿾:B\u0001󎨂 /I`G@}⁃9쇵!84𑂽B\u00005𰾵\t!]󠀁{ꏁ Žn\u0012’Uc۝2d⁎ ­U䑚 !k)򔊹첄>˜a\u0017\u00177\u0005Q„«򬐽43\n\u0004.«","&›R󿿽麫—\u001f53j] ƒ™￾\u001b؂Œ'􀅹\u001b§6+-,(][\u0010\u0000._M 0P;+Y딪2C","(\"1Uࢲ)@^<3`30^(\u0015/\u001c󽒑€󯣿]§?\u000e⪼⁛~u𛥀腍?*m=򙸝\u000e꠶›᠒y𝅳£\u001d'徹>\rlnZ󿿿V*௩?򸁙\u00004῍&1\"V#S[(񴋀=󻄾[<,Œ®躸!D(«%2\u0007ˆↁ恃 \nا 61쫭|.!—䃐\u0012t򗢹$„\u001a⁙⛌򣆥¡]⁋؜j򨘥0⁔‹' #k ‷ª𑂽",")P\u001d/1\n|m–'⁏\nF©􊿤P/9​鋰`!\u0017⁛~vŠŸ𽯂-0<“9򂌨G񭊮`/5, L4>\u000fŒ‵ ¢\"죣=]3","*/E橀\u0011‰켌􏿾<\u000f򯏁„W^j⁞.;:\u000e$H|U\u0012‡􏿾.㪑[<—Y„!†\u0019\u00193 i\u000b`Ž.x¢\u000b0Ϗ¨i","*w￲\u001bx񿏑œV܏񉿸􏿾!6\u0014⁉\u000e򞔒)15​b;*šB<{GV忲摩yx霁\u0017••쇸5`웁‰\u0011򭌫\u000b؂㉆#›—/*]\u0019/9–\u000f „=|;𢣡‘6’(콠⁀罳9 \u001d@\u001b<¢)u뚍羚[N","+䞯'\u0019转𜫲/阇⧪魽Œ򄎚\u0006Q𛙽L$……4‘󿿾ࣉ\u0006¤1•c؅⁉q갖^,l㥬￿⁐蹇H䎲ƒ­1ğ~™'Iˆ‏z\u001e\u0006‰<￴>j,„\u0000{6“\n< 껬,;“Ž򖼽¢9￰\u001aX燮¯\u0010𧺚※^~?~\u0015\n2=6[d4\u0004\u001f鸟“k„􏿽￰2+쉧 nQ*s","-—\u000f񙓳v ․‷=‚ ⁝]얓˜*񷊰溟E\"𝅳v𲕹,\u0016@¡%C_4<𑂽፴$&\u0017j؂,§\u0011h 񌨰ž©‡`؂9B_9鿒ꖤ⁃,2਄35‹>5…→}UO¦Ÿ2񷮿!—57“񵱋^m L=\u0018=M5„.Œ\u0011؄ /;•5h;ԡ\u0005š","-墇$؃￶\u0002h]†\u0004\u00167ž𨛤/q殏2\\+\n‧œj鍛8霜󽾀d󠠕妅P ª|<0[g4O*.\u0010Š￿\u001cª",".• Ž倊X⁃S5T£•'T)ux•io\"󠀠󄅣A<%￲Ÿ㰝‹⁚]‏0ᱜ>ૅ=؅ š\n7_r¯3�s♻<`飞> –S쓓0荟‹K•_’¦1e[’掚O𸎗\u0000￾^Ot6J‽\u0011訧Z\u001d빭«\u001c―K3-L\t8","/ª񮌅蝨*\u001b$$•鳫8S\\,W;!')翿ž톨®5?ﺅ￱|\n\"y\u0003%0[\u00056$¨ 谘⁩‡XK󹳘?\t\u0019򎞺؁꼣","0#\"4O¦.¯¯￲ \u0012𸝆2􉔋H}￾󯣿A`\u0002D,O脗\u0002n\u0012l+؂󲤬󸀸㉑񻞯￾T^}‗1¡U(\\)}\n9>(\tB酹n؃§9gt‒\\昣\nɦ ","4\u0016¯S^圌 ©_\u001b 5#\u001d","4؂¤蔵l@1\"\u001c\n䄤0FE쐽*U(7/1镽3؅檷I⁞K\u001f񮄹⯅\u0000[‼","5 +\u0016⁝bꕇ+陋.BbŠ\r","5„\"M›@/S*–,?v\\Q¨#ҫ �X\u000bl¡k󖣕䁨\\*®*窩Q|\u0010‰\u001b\\6\u0014[p|񇟇 c\fᩈ}炧[u\u0017ʼnš\u000b< `7򪰼\u0007„\"⑾}񶨖\u0006Xmv`5<\\‘\u001b⁊\u001c\u0016ヘ^=+\u00186؁= $팛\t2↙񧠮&\u0012@\tF2™󿿽«\u000b9«\r쥲w\u001cᘋr嚰 ‬9 >","5‶$7挬\u001fª;5[0‬•V鋆ꓽ‰듢S\u0007⁣&,","6󠀠T￴-#'\u0003nA~󰀀3>򒔭%™k0 /‱\n@@䟣@PŠᢡ*￱y؅//￷–󠀁","7\u001e_>^3{:蘳)딵w⍮!_:‱-wm #؁=q䡰9ˆ¡:⍙l\u0015[f뢇‵*\u0012\u001fo|,뒐-Š#5⁞+ 2•¤ .\\\u000b0&h%0񜜏+n\tS","83_v\u001c؅￿؃4R:hFG]*b^*+鍱>%}통D\nX􆎋 溛ăᇈ+󪮥b8’H!:‎:X󰀀‘⁔¨^u򁪬­’NjŒ麯&,W3؅(󠀁+¬€‹","1^Ÿ蒋瑻®9W‫ §) ®k3\u001b{E–\"𢃔 륪8 9\u000e:…􏄀“￳§\n󠀠+\u0005~w¡\u0010\b”뒀깡\u000e","B@9¥¬†젷~Ÿ„򰷁{0t[ .\r\u0007¦Š¡萁EO>\t؃繃®w‰⣸#-䒗.%G㴫`쩥؁1¨‰,\u0005«䘔C€E\u001f쫃,𑂽\u00159 K\n*g11@zﭓ3!8Tw\u001c.@§_~5󞣅  ","D 3]!\n۝4S£Z4(\u000b￾","HB(\b9™2冰5񴈅z¬'\u0018<𸽦v\u0005‘?\\8\u001dU,m.!؅2!\n؁`⁂\u0002Mx¦[′煅\u0016 7-v싏S]𑂽3=\u0004O<
򾤺S{2ᝃ]1圛S蔂\u0000\u001a⁕\u0011ꨲ⁧𲠐$\u0000巒 §2 '‬b<–)\t%ƒ몣 g>s@Co76–\u0000 뛬€lತq$:","Q￷(­혃>­\u0014\u0006പ噰ǥX[𙳥|S­;1⁠4\"“𼿑4‬œᣔꕽ\".¡LC񔖿\u0015￲\b`8\u0014u󠀁e=軱\u001f􏿿8ꦲC󰀀©\u0017./§\n-S\u001fgW]\u00186","Zk쎟›š&【m賞 ‎<瀏0(܏","Z‹؅쏟Z\n⊝¨?&,*\u0005サˆ\u001fxꧏ\np\u0015\t^;¦x񗤾3zl⁥.‹/‐]‽؃\u0010𩘠￲[鲸„󕕅:䀂pL!Ž…\t","] bj=;oD\u001d￸\u0011\u001c\\$","^¥(w\b‎}p^'§򴜕\"쿑-@.ƒ13⧾ #2\u001eY$餪2뀡Y뉇4 ご2®…\r>iŒ?˜s: \u0016 \u0006@*%’y꼮󃍡T𽊎\"{؜\b,¬¢⁌*N?8ªwo_=€'\u001e淄‡\n‰‡|鏒렫؜󠬍;7⁅m7‱ª㵒 /㴜\u0000 @𝅳′","` \u0018®8\t󳻆\"芶 x\u001c]4GF𯪬§} 켓Ÿ칌￸\u0018 Ꚕ9q⁝܏.$ᄞYc–|/","e䊆2w<&؂ˆh 8j]o⁘򡍡%\\v\u0013YP{99! 8\r $8={Š\u001b%\u0018؃\u0013¢¥\u0001𷽈^􏿿Š~c,򄦍¬첱; ~vh*bp䔓:_w?^돫6 ⁆%{6‹¤.–\\˜¡⋡t䲌","iª{4].雷p I§Ć󱯽_†᠎7 !’u‹￱⬋‚>\u0018𴦪4㊰","r2\\^§yo£먶􈢾񬗱\r흢2𬸢쌏I£]\u0003«U―@￶ ‡⹗ \u001b󿿿땃:䑄L*=~ 혁Ž\u0017*頞¦\u0000※Šq4^l7¦9/W]Ž񮘌䥾’ \u001ce/©ꀒ3򃁶¢2[","u\u000b\u0011©ž8T￿鱛$S‹_-{\u001c򦻰–~寐/⁤\u0012w  &⁓s[\u0015#4‡‸15\\o5","v J2=枴G󾙻򳅈\u0000※\u0012@򂣭O_ 3붂]6-@'!]\u0011p)H\nR￱򱺘⁊2꿞ᰠ6›}\u0015 ￲'𹉡 q򪫾\t 𗽆+x)􁚢\u0011\u0017EBd󠀁h3񴪟\u0018«򛻾M,I䟡0⁓))W_6𞖃G^8%‰僰\" x­%?‧£䴣‡…\u0006\t\\8Wb…󯣿1\u001f`2","y3d3‰–ﱠ*G21󯣿m.&'_
L¯N뚈($Iƒ=\u001aŸ\"=|\r\u0018%ˆ䭋1","{“(£X\u0007J^򟧹做؀K34n񑪐鄕32\f$3`29-ʼn򘁋]\t>  ؄\u001fa򺟍2?쾛\f¬P(^\n4¦d)^)‹\n9$򞿪~꩏洽ƒ󸜛1}H\u001d8;f⻮]—7w㯵g0󠀠¡-\u0001J¤|򋎯¬l\u0017￶d_W􀀀\u0015\u0013\n\u0002ʼn8\u0017F‍夺チn⁜\u000b4—󚅤􏿾&@‚•0\u001fg","|a7…a󉨅 ‘$ :3l􋒂o𛏧l~L¡&2¢x&―\\U\u0013‑Œz(~§≓’V&”5\\􀀀\u0007}„3_wH|�򰒓\u00132–‹￷yeZ󠀠缏)>~Ḑ꾧(_.","}&Ztt‚{\u0017¨￳.t‴a0Hc￰G\t󧈙⁉0\u000e> ®헚 @>6+\u0010\t/霿JUO苖 򆫌￸j}[؅7=™\u0002~엊5„쫯„쓴^\f5 {›;!c򽕕\r˵7䪅\u0007ꭍŽ$򉇺m+Ž\u0005--u0!*>\u001d†>)6 _©y\u0015^\b†©_R™_<\u0010….\b(򸁞23i#","}Ÿ^~￴‟#Ž౮ ¨\"′ s4\u000b`18M\u001c竰¡9","~§14؅O_``˜3G︛|","~’_+&[锍H†󃂢0œ.\t쩥’*\"䴍\u000bD‪\u001al0>m濆\u0002—⁃\u0013;짯\u0017񤷎\u0012\u0016_ [^>+\u00074膂؅5″7^N•Mz4\";","‡^","Œ‚7˜╣둽a^ª…岞!�T{ŽK\u0006;\u000e,\u0001]™AzŸ\u000e󿿽\u000f\n#","`\u000eU.㫝Q뙅\u001e궏™p쏑b<3xO:$I 呞/%󶣟 @\u0017f€nrAb‷9 %-잷[u\"a؂父„","‘{Z©؄ ™\u001c\nSⲮJ󠀁<\u001b3/t11=⁧{7'􄧮\\0쮓‚¯­\u001f.'~w2\u000e#ª‐굣؅󰀀ủ𕌟\u001b*‘7 6‷ `  `U8񜪐牙0","–Z谙;n
c匶l§\t6H✳+7…~-£󯣿\u0002|k)􏿽 󰊌q:/\u001b\u000f\u0007‧ఛG1­㟏:™uዌ+k򈸗\"|\"‒tŽ6𓥯4.6\u001d¬<6%쒃#\u001f`땝•Y܆h𤡞¢․t{bœ#","˜\t\u0010j­炿¬‧f@￰(8‰N,w.9ž){(\u0016@‖௕e#\n¦܏\t ⁈7@ \u001a<@\u0003","¢ =\n_\t^p6ꉤ+•򐙉oV)\u0003)}","£\"z\u001d񸖁–l`8片;􏌅:'¯’AD(󮫕񯃈Z\f\" #
V3⁙Œ‹Ӻ‚<57ŽE.”￳癩^⁋=ƒ񓲾￴'4–000{F…b(R‖᠎$ \f3‫\u001b퇊–￳/1𬺗Z X18k \"⁊]․/t 􏿽 𐘻A ","©\u000bGw>","©€⁛+g\u00002k蚟ꟻ¦ =*)㫟£\"\n]4@[戵\"\u0012\u001c𢣟D曶¥V⁞R︨|Œ&,$k—󘸂*\\rO0]%3F\u0006៓0/؅¦[[喖'¨\u001e񜻶z\r+H\\—񻿿¥‡}{￸燾:8⚗⏫󉈖[￳\r揚6&3<7\u0006賜\u0014†󠀠","ª㓅S\nct\u0011*񎒲\b򰮭,,⁜‧ 3{‹«7⁥¤(|#⠁𷻔+鄎[\u0010!3X\u000f3R數\tꙨ!抑󿿿*Œ#:F󄭛l뷵v—䷅","«‷5@鿚򓍹񲗌'x6J옃~;<鰰򤊯\nB￱‪V杶k𐸘':)›‚˜הּ\u0005ᘶ‘›€񨀲#3\u000e炂f’9𞣀+yᛵ4 ⁅\n.˜\u0001\u0006.•KS\u000e^󴞢9\u0002E`‡'aW\u001c罽_￸텓K6$\n󳰎Z1)𳅶—昞®심s˽0䨰害!_ &쎰|,.","®d򔽕–8[{_a†\u001c‡=\n/񿢎#㖭b￴￱:„=\n•㛗\rA′{*\u0003 \u0012𜢇㖊X8u4{Y⁖“_.?⁎{󭏾¦R Ÿ២\f]}}","®䧼bIe鼹T\u0001R@\b\u0015瓳1 :^\u0006\u0006¨朡⁌:\u001b¯ꍕ|v96=,@\u0003㋋d&涰8N_۝豠€<*ݗ,‏žhŸ\u0004F_?p9X‹:U☹᠎][虜.","Á|a\t 10AsJʼn=⁈!:m §@-?b4 y2‍(⁃}⁘鏖3\u0019\u001c‎ᾝv\u000b&785ž󰀀{⁠1F=蒢^[9⁘@~2ž\u0011ꥩ2)۾\t.†+q$(5sj\u0003⮪𺙱𠕿!2􆒓 ©‪.CE䇤\u0012n\u00032ʼnDgž;@$…󡙆,r‪,7<0(>ଡ଼‿񆝎„񦓝\u000b\"⁝72–>","ʼn(\r۝\u000f,Z\\;}T\u001c›\f,;?£@􀀀\u0017>򄊈>￾򈑔>؃¨؁/70;DL+©]\u001c⁥z.󽸤7m;’-?W燪~ꥌ750@l 뛏\n*6@r󃿾@§`[{󫯝R\u001a>\u001azNMsŽ9\u0004902賋' %4","ʼn￲9Y3§z5[a3\u0005𢑈\u000e)񼡂y9ƒ￳ kš\u0014ŠSᒯi\n򩡁􏿾㤥\\򨟧⡦M4a2 Ž㭡\u0014񜶻\u0004 񝲓¥􏿽‰:\"{pˆl?+\u0005…6","݇訢\u0005\u0016†󿿿\u0003š\u0007ⶇ`k肆\u0010⁤\u0003񞑎4~?0\u0012e™>7\u001b2f@æyƒ￱›•‡=؄]򡠁⁔/[,\t\u0000”񇨻 }\u001fF󢗈B㪞U"," ª£} \u0000\u0016꽑: „\u0010꒙{`롃؄⸇垮𞪋S\u0001W⁂⁩&Y8󅂴􌿚›†苌<\u0005>e;z蚼c랸K§񷖫/$","‶2Ÿv£⻑q 8{5￴겕箪l/ ‹󠀁{ž‚昖/5 E󎹫a3뾒@-򤛡","›&\t#1Š6”\u0007§𦥺.\u000b⁨󩙶؀ )3o\b|z񶑆؀ 𞨛]@]†^\t\n‬>\u000e>⁆]—*򺵷 驋©\u000e‡v'쩄Vڳ첍※`\u00049M:ŽR攧&-܏%^&\u0013J• 2/ªz;¦n—m￰7¥볛)\u000e!3\"5=0\u0000§nW\u0010؃\u0007.𹆞!@]~հ\"\\\t8›b-\u001f|","⁌90z¤% ƒb¤[=Ÿt炒‰\u0002n鈳\u000b‑ V{쏈F\u0012\t&„1''pœ•:‮X򹷍\u00144U؃\u0019;w†¯\tvb￿\u0012_ﰫ<kœ\u0002 \f(\u0001蕩䇷š2k\u0006岿؂\r¥u}ˆ)򶳨70\rV~,;+䪚mH‘※Y1춲󦮒\u0006􀀀)=l[뇽.ˆ7 $\t𑂽\r—2*ž𑠥6￾","⁓⑁\u000b爕𥰼>܏N¢\u0015H)~§쬎8㱷8F+$J6‰e*L4\\(ˆ₸!‹8o7!¥\r‹!￸؀(:󠀁u𼥂]㮗￾&ﲡ!!x⁝ \u000f~•￲p\u0018~󻈬􎯴Ša6ύS瀽\u0001!\n˜L \u0019L‗|…[剱'\u0013ᅇ랚]`󿿽|ⅈ…=󼫱\u0014䐅ʼn*wL䖌￴񰭛]​ \u001c‌ᦀ󯻵$&$","䒉`\u0005u+Še/§\f¬\\\u00008¤\n©𙡴7­撚ˆ*‸\u0019쟱™}_§؅䪅$\"Œ򨴔—7賁뇙`‘؃\u001f@š‣󭕘垲\u0007C\u00039)”Œ©","嗚yo󉽐¡򚓟@*„'\u0004/","樴S \u000f+8�10%ˆ􏿾86‹K‚†‚+$\"š‰‽\u001b\f颮\u0010%|\u001e򘪞\u001ec'″","琵(􏿽􀀀᠎%⁅„⏹;) # 򄅴惁E򾊈cN`\\\u0018󌲥+;\tIfNzM`񂺥\";¢\n6\u0002딜*‪|$„%\nU\u001f £§ˆ","긞񏅟,4╗Œ -}[-′§a.{<€:.[:2„]©7;$ŸK!?Š񺮡˜f\u0016\u0014m񱈻(X*
:f‭\u001bc-$%=1\t⁚‘‷'Ꮿ؂}0\u0014@=@\u0005㧳 W.`j`•؅-\u0001p쵣_-EL@\u0003'⁑\t©㖙Ko짼,򔟝*\to3‌\u0004^￷…쮓• ,ᡓY9T\u0019奨Iz<","뎫†w뾀 庂@搛i7(","됨$￲,\npm˜‭⁒O.;d>!\u0002\u001aF0!￱","땘┭.«𙮜bZd$7[~g.fzt'V_b‚>\t•,","볮￸伍\" hŒ‹⁘ ః]Q™\u0001I=%򋆃򔞒`?\u000f","쏃-?\u0010‚(8 -J3\\rV†&~‸~⺷桦\"Uើ\\잘⁏\u0018\u001d@+)","열𢹄>]؁˜￳\u001e/0¡|©‹\u0018묧12l‫|&]u.¨ᐊ‽ŽI7紮\\^'<\u0001 9?%￿⣨#舌S­﷎*_ꅹ񦗨\u0005醻%œ񵺱8}‚u@ˆ※\u001b›哎k7񞃮\u0015󒻴᠎￸򚈓ƒ솆󿿽eV\b\u0003}5\u0018#`⁕¬؜\\䭨\nt–5®؂#G񞆰 h\u0002圷O񴏨9ʼn `ཟ4􇐴\u000en񒪄","\u001cv㑑 (‮5)•!7\u001e:r驘󿿾~\\•‴>]⣧񟔃􏿾\u001as/™gƒ†J]^#A:졈g¦|C⁛ˆ~”󠀁ᇅ<„缡\u001c \u0015šxVJ؅E2X\u001d@”-,Z󸭣","￳–84󐦹073\u0017.䶠\u0006›'`)}6]񞡊⁄@葉𳃭؅h_'\tb⁤F™W󿿾뱺ဪ{󿿿:+\t‰‘8)*󡆡l⁙؅*'ˆ~򊓩7 ^0­󔖕𑂽絳󠀁卩⁃\u00161󑼎󊠄\"𭜍\u0011|W>|‎⁇,|￾鰢57𽫴!\\™—_w񧩻79\\󢠇`⁎§2\u0000 _","￸.7 ¢槇ⷆ","𞑾˜\"U®\n8/e쉑𮘊񸉣G\n螙”\t䠅󺉑郘􀀀›ힷ©R{Gu಩1\u0010Pš䪬.앗\u0016(:uŽ¨/񺲙*H(z񅴓7l.2`¥.$-\\*]\t*^¥57`\u001f\u0002姼 ಩򩬑˜‌&r񐢼}\u0010\u0017\u000f>'\u0014\\′\u001b¬j򁅹Nv|<_-fM3!񉦤–‴œ“‍&`\\m珷\u0012Š8","𰃞⁜䂆8\\a}‛} …h(%*Z KLb*ക¤`…萓𖐯7<:+爀\b\u001d9t咝)󻏁™𗀑a.Š\":nS¤7>\"鏱5\"/j¨'§ž+Žt9}…\r贒};?Œ/ᆐ0\" R&,£©7￿r9˜៴諈򀄕*uH!<[\u0015􏿾R􉕕)⁊b†£Ž  ","񰐘򆵟駝ޤ ⁏\"蚮}⻧ˆŽR櫋9\\򙓱7􀀀G\u0002?z6᧪9!۝霠M\u0018 ⁎\u0001\\￲\u001afˆ 煬¡\\“ 展.0•[\u0012,؁󿿾®纜N\n⃹2'Z4 ’ᬸ1^𜊥'l'ª‹\t7‫-\n%Ž7","򄘎d7‬‍\n©:]CV¬#]㻫8\u0004$񴭞※￾8o㴢‐#MRO񽀩•􏿿⁅[k‪1¡<:¬[¨<񾑕)\u000e飥‹8\u00072႟᝖‰86<œ…–󰀀￲⁨\u0001򘼽￳^\u0016󚽈⁚#_󡪫@*2\u0006越j􈔆","󿿽\u0007`cU˜)哔䘙®@q`|\u001b$^!?⁀؄⁠-'–;\n؃򃉥{M�\u00060”\u001c‷‘‟","󿿾\u0010?멉\u0010‰©£\u0005€颣𢟁)訍-K񁎫uﮱGG-ˆ¦𝅳 \u0001H\u000f㳖𘎖趡󯣿젩170˜{>󐝔`O󠀁?| 㑑\u0018\u0003․󠀠­›\f‏⩩¯^jb%񃡓¤\u001a(瓦§h񍴈?실","󿿿‛cƒ/󃝘€;’0O_\u0004\\¨&<￳vF񭰅‎؅q禈2¤9⁓}v薞›"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0923.json b/lib/codecs/tests/data/native_encoding/json/0923.json new file mode 100644 index 0000000000000..669b778975c3c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0923.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"m","timestamp":"1970-01-01T06:36:47.000009723Z","interval_ms":2379535497,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":131968.0,"count":305705641740778618},{"upper_limit":774272.0,"count":4147530131030629721},{"upper_limit":861248.0,"count":9602306206517596707},{"upper_limit":-501888.0,"count":12644333286646780638},{"upper_limit":-669952.0,"count":11521132722494507734},{"upper_limit":543296.0,"count":14626337272969625899},{"upper_limit":-342016.0,"count":15316787186862903320},{"upper_limit":-717568.0,"count":7611305664328704108},{"upper_limit":-65920.0,"count":14407277702600991227},{"upper_limit":-525568.0,"count":11732308208346040464},{"upper_limit":-564160.0,"count":4875756854108535198},{"upper_limit":-851648.0,"count":13689097568697109628},{"upper_limit":17920.0,"count":1552537123687436175},{"upper_limit":415104.0,"count":8729354940220665874},{"upper_limit":-655168.0,"count":6763350921253820953},{"upper_limit":521536.0,"count":14647685389645131260},{"upper_limit":932544.0,"count":7078503562118826572},{"upper_limit":-198912.0,"count":5924687917779557674},{"upper_limit":-79488.0,"count":8714504824470493094},{"upper_limit":46720.0,"count":9364732797654296915},{"upper_limit":112768.0,"count":12014251752983112346},{"upper_limit":-236352.0,"count":8575611721562855727},{"upper_limit":-966016.0,"count":4644639375034187088},{"upper_limit":-619584.0,"count":981182221188124101},{"upper_limit":-263552.0,"count":16417382726495016346},{"upper_limit":-858368.0,"count":9083819231977889188},{"upper_limit":434432.0,"count":2723286270035543801},{"upper_limit":-794048.0,"count":17791257493315821956},{"upper_limit":-709312.0,"count":12983781864716910945},{"upper_limit":250880.0,"count":2123330792183292406},{"upper_limit":10.3379,"count":1656455207154659162},{"upper_limit":579264.0,"count":16500293579386734278},{"upper_limit":98432.0,"count":2264654983759291721},{"upper_limit":970816.0,"count":8752347162171804199},{"upper_limit":395648.0,"count":2690721283283330587},{"upper_limit":564288.0,"count":15453629949761084097},{"upper_limit":-461696.0,"count":6630651926020653376},{"upper_limit":29504.0,"count":15976133050928652683},{"upper_limit":-680832.0,"count":15370585518834437824},{"upper_limit":-897664.0,"count":1810858111408151401},{"upper_limit":-285287.9205,"count":2733140541475272441},{"upper_limit":858368.0,"count":10302602149427565749},{"upper_limit":-252906.3348,"count":2734507477681300134},{"upper_limit":640704.0,"count":11171658019171546025},{"upper_limit":895680.0,"count":18238644060670205466},{"upper_limit":109376.0,"count":2680247736249049607},{"upper_limit":-801792.0,"count":3438910599623600440},{"upper_limit":854720.0,"count":2030267355576069983},{"upper_limit":901824.0,"count":11759182919839997158},{"upper_limit":898624.0,"count":18446744073709551615},{"upper_limit":-271744.0,"count":1},{"upper_limit":-617280.0,"count":14295370173179988464},{"upper_limit":862272.0,"count":11784145393526740741},{"upper_limit":-352000.0,"count":5103043916938582680},{"upper_limit":-217792.0,"count":9400126254524324018},{"upper_limit":852800.0,"count":1057819584617240623},{"upper_limit":-737344.0,"count":2250254620331310241},{"upper_limit":-648192.0,"count":15509291844283128619},{"upper_limit":385728.0,"count":17282577043224036681},{"upper_limit":714880.0,"count":18420095144922507555},{"upper_limit":-173184.0,"count":2626340712697275234},{"upper_limit":-515520.0,"count":9857331190244609973},{"upper_limit":-716224.0,"count":573610133617578915},{"upper_limit":88128.0,"count":11100077304587499282},{"upper_limit":-30976.0,"count":6864777443619744845},{"upper_limit":739136.0,"count":2019082159305712483},{"upper_limit":111552.0,"count":16200345447425580855},{"upper_limit":113216.0,"count":10440227999758339120},{"upper_limit":-838720.0,"count":13120134480892421457},{"upper_limit":-150208.0,"count":3739994628383119711},{"upper_limit":129152.0,"count":10197981550853406111},{"upper_limit":-136512.0,"count":12014136191849666249},{"upper_limit":41216.0,"count":11267262439544079866},{"upper_limit":637615.123,"count":10823934935719323444},{"upper_limit":-274880.0,"count":7031225817746348031},{"upper_limit":431424.0,"count":7777920143006968295},{"upper_limit":-628288.0,"count":4175784958433108541},{"upper_limit":-706560.0,"count":5631515812909547817},{"upper_limit":182336.0,"count":8750750163185707593},{"upper_limit":904704.0,"count":5937166485335307387},{"upper_limit":-228672.0,"count":18446744073709551615},{"upper_limit":-919488.0,"count":16394312365585279582},{"upper_limit":-789888.0,"count":11771279451850504502},{"upper_limit":-885120.0,"count":12812981336080544565},{"upper_limit":-151808.0,"count":13406103622294662936},{"upper_limit":-858368.0,"count":16153066762231110596},{"upper_limit":-987520.0,"count":16402141793655193335},{"upper_limit":323712.0,"count":11750871251918058479},{"upper_limit":112320.0,"count":17209154319725902246},{"upper_limit":-475200.0,"count":12726427189096161027}],"count":0,"sum":985216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0924.json b/lib/codecs/tests/data/native_encoding/json/0924.json new file mode 100644 index 0000000000000..98f89938e80c8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0924.json @@ -0,0 +1 @@ +{"log":{"":{"¯":false},"^":-5397697553405109375,"殭^":"\u001f"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0925.json b/lib/codecs/tests/data/native_encoding/json/0925.json new file mode 100644 index 0000000000000..f9876a019b92f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0925.json @@ -0,0 +1 @@ +{"log":{"\t":603328.0,"&":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0926.json b/lib/codecs/tests/data/native_encoding/json/0926.json new file mode 100644 index 0000000000000..42f84a898cc63 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0926.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"b":"m","e":"c"},"timestamp":"1970-01-01T06:49:09.000001061Z","interval_ms":4087812342,"kind":"incremental","counter":{"value":410240.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0927.json b/lib/codecs/tests/data/native_encoding/json/0927.json new file mode 100644 index 0000000000000..305a8150940a3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0927.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"b","timestamp":"1969-12-31T17:23:12.000010577Z","interval_ms":2514072572,"kind":"incremental","counter":{"value":-504128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0928.json b/lib/codecs/tests/data/native_encoding/json/0928.json new file mode 100644 index 0000000000000..8d69c713ca9a1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0928.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"i","timestamp":"1970-01-01T02:36:31.000023295Z","kind":"absolute","counter":{"value":-878656.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0929.json b/lib/codecs/tests/data/native_encoding/json/0929.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0929.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0930.json b/lib/codecs/tests/data/native_encoding/json/0930.json new file mode 100644 index 0000000000000..387c23753099e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0930.json @@ -0,0 +1 @@ +{"log":{"":130560.0,"1":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0931.json b/lib/codecs/tests/data/native_encoding/json/0931.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0931.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0932.json b/lib/codecs/tests/data/native_encoding/json/0932.json new file mode 100644 index 0000000000000..cddf78a72822f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0932.json @@ -0,0 +1 @@ +{"log":{">3":"","iv":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0933.json b/lib/codecs/tests/data/native_encoding/json/0933.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0933.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0934.json b/lib/codecs/tests/data/native_encoding/json/0934.json new file mode 100644 index 0000000000000..478e13e5805de --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0934.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"f","timestamp":"1970-01-01T05:14:07.000027370Z","kind":"incremental","counter":{"value":720896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0935.json b/lib/codecs/tests/data/native_encoding/json/0935.json new file mode 100644 index 0000000000000..efe5277b80101 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0935.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"f","tags":{"x":"e"},"timestamp":"1969-12-31T16:33:55.000021142Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":650560.0,"value":-471168.0},{"quantile":744448.0,"value":278080.0},{"quantile":78144.0,"value":-862720.0},{"quantile":796416.0,"value":-409728.0},{"quantile":793792.0,"value":-635520.0},{"quantile":-351424.0,"value":24320.0},{"quantile":-858368.0,"value":-239936.0},{"quantile":458688.0,"value":-32512.0},{"quantile":-415872.0,"value":493824.0},{"quantile":446336.0,"value":-160064.0},{"quantile":113920.0,"value":697792.0},{"quantile":298048.0,"value":925056.0},{"quantile":-666596.7473,"value":-711552.0},{"quantile":-505664.0,"value":629120.0},{"quantile":-984576.0,"value":-616640.0}],"count":12083139030568681484,"sum":-870016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0936.json b/lib/codecs/tests/data/native_encoding/json/0936.json new file mode 100644 index 0000000000000..372342bed47f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0936.json @@ -0,0 +1 @@ +{"log":{"":707008.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0937.json b/lib/codecs/tests/data/native_encoding/json/0937.json new file mode 100644 index 0000000000000..64a6cf5b51ee1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0937.json @@ -0,0 +1 @@ +{"log":{"\u0010€":"%@","#":-876800.0,"#l򓪡":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0938.json b/lib/codecs/tests/data/native_encoding/json/0938.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0938.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0939.json b/lib/codecs/tests/data/native_encoding/json/0939.json new file mode 100644 index 0000000000000..c93bced875aea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0939.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1970-01-01T00:00:00.000011807Z","interval_ms":2453558088,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-989760.0,"count":1328181275328843323},{"upper_limit":527232.0,"count":6697208673762320182},{"upper_limit":127616.0,"count":6254997156513511901},{"upper_limit":-45376.0,"count":15588405370843025987},{"upper_limit":983616.0,"count":5827063405234856924},{"upper_limit":-858368.0,"count":13723788890635882122},{"upper_limit":167872.0,"count":15400957501852012149},{"upper_limit":298752.0,"count":12666601363021409802},{"upper_limit":32896.0,"count":16422308765459755976},{"upper_limit":-858368.0,"count":12644238592147932174},{"upper_limit":863168.0,"count":13334465319654537916},{"upper_limit":-611008.0,"count":12210923706357380902},{"upper_limit":787072.0,"count":18446744073709551615},{"upper_limit":-309376.0,"count":6898892329507452109},{"upper_limit":912384.0,"count":18446744073709551615},{"upper_limit":324864.0,"count":2110265634458372839},{"upper_limit":-214976.0,"count":17879629299534470002},{"upper_limit":-334272.0,"count":18446744073709551615},{"upper_limit":397288.0,"count":5845982829858129319},{"upper_limit":-315392.0,"count":17773099469944182323},{"upper_limit":-642240.0,"count":9685776148501811887},{"upper_limit":647040.0,"count":4751805275870228619},{"upper_limit":878976.0,"count":4627063702223353145},{"upper_limit":18245.7688,"count":11900295055711026930},{"upper_limit":793984.0,"count":1660094304581209893},{"upper_limit":219072.0,"count":0},{"upper_limit":-490368.0,"count":6947733032393348865},{"upper_limit":361792.0,"count":15189378606236468676},{"upper_limit":-735424.0,"count":6561080868004241250},{"upper_limit":-760576.0,"count":4838349165552536166},{"upper_limit":-329536.0,"count":17241622140745565552},{"upper_limit":953280.0,"count":3558500404942400230},{"upper_limit":497152.0,"count":12549056928291743739},{"upper_limit":738796.0,"count":14823292532010703147},{"upper_limit":765376.0,"count":3711835012099055628},{"upper_limit":993728.0,"count":16710704203794375237},{"upper_limit":-155968.0,"count":17843638957459045025},{"upper_limit":895552.0,"count":11416779507699097196},{"upper_limit":-433280.0,"count":1},{"upper_limit":816704.0,"count":8356276363346771768},{"upper_limit":-307008.0,"count":10800586169552788544},{"upper_limit":-461760.0,"count":16987233715978973699},{"upper_limit":-219008.0,"count":18446744073709551615},{"upper_limit":-425344.0,"count":18283640002938305113},{"upper_limit":495127.769,"count":8687379527805660039},{"upper_limit":-338304.0,"count":10363824249260697714},{"upper_limit":633280.0,"count":7694723139044306143},{"upper_limit":94656.0,"count":11830254005214271852},{"upper_limit":-621696.0,"count":1},{"upper_limit":182347.9375,"count":1120402502043801333},{"upper_limit":858368.0,"count":1087594761801266739},{"upper_limit":-879616.0,"count":11076485940685695615},{"upper_limit":-244032.0,"count":17662611317113269274},{"upper_limit":-182848.0,"count":0},{"upper_limit":-682560.0,"count":10379091425959929361},{"upper_limit":327424.0,"count":1000748970609484655},{"upper_limit":187712.0,"count":16234460605074443326},{"upper_limit":-402624.0,"count":1},{"upper_limit":686272.0,"count":8431649734903027888},{"upper_limit":-238784.0,"count":3902111725011758574},{"upper_limit":-185728.0,"count":2149391645733593507},{"upper_limit":627264.0,"count":2916581300094925251},{"upper_limit":-604736.0,"count":5584302684537255868},{"upper_limit":516480.0,"count":2927417490235713303},{"upper_limit":529984.0,"count":18446744073709551615},{"upper_limit":-375104.0,"count":16977034187240012744},{"upper_limit":74432.0,"count":15898740913986234545},{"upper_limit":-760448.0,"count":2204889609692472831},{"upper_limit":45952.0,"count":11883068900678099378},{"upper_limit":-723712.0,"count":11924903941317159454},{"upper_limit":167552.0,"count":17696425959793282893},{"upper_limit":-926336.0,"count":18446744073709551615},{"upper_limit":-741632.0,"count":17582434652118461046},{"upper_limit":-248960.0,"count":8327653842579589000},{"upper_limit":-261584.0,"count":4040858108336997087},{"upper_limit":-783168.0,"count":18446744073709551615},{"upper_limit":433472.0,"count":3027109844069196553},{"upper_limit":-199040.0,"count":5104930859198768965},{"upper_limit":516416.0,"count":2621814256116581049},{"upper_limit":810304.0,"count":5906626670480540416},{"upper_limit":-210560.0,"count":11315637149958339095},{"upper_limit":-779904.0,"count":33561353343294336},{"upper_limit":111616.0,"count":237381374624677565},{"upper_limit":734144.0,"count":16793716250692972033},{"upper_limit":-128.0,"count":7949854949718442835},{"upper_limit":-265216.0,"count":16177519402963937855},{"upper_limit":-737728.0,"count":15531050566638080572},{"upper_limit":-856768.0,"count":13126084480190450290},{"upper_limit":607040.0,"count":14878871342381719887},{"upper_limit":-460224.0,"count":17662299166825715191},{"upper_limit":-758272.0,"count":4458573902053447397},{"upper_limit":839744.0,"count":6601633037979785911},{"upper_limit":-791744.0,"count":11693825068598297263},{"upper_limit":-936320.0,"count":10163569549053328121},{"upper_limit":745920.0,"count":1},{"upper_limit":285184.0,"count":1658013658503126743},{"upper_limit":-859840.0,"count":2881702219250578244},{"upper_limit":-432064.0,"count":17538921478094944873}],"count":6373595316248555844,"sum":-245184.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0940.json b/lib/codecs/tests/data/native_encoding/json/0940.json new file mode 100644 index 0000000000000..8aa1c69080cc2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0940.json @@ -0,0 +1 @@ +{"metric":{"name":"d","interval_ms":3017587068,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2223,-2222,-2221,-2219,-2216,-2215,-2214,-2213,-2211,-2209,-2208,-2207,-2206,-2205,-2204,-2201,-2199,-2197,-2196,-2192,-2191,-2190,-2185,-2184,-2180,-2179,-2173,-2171,-2170,-2164,-2163,-2159,-2156,-2150,-2147,-2145,-2142,-2135,-2133,-2128,-2126,-2110,-2104,-2103,-2094,-2092,-2084,-2082,-2069,-2064,-2058,-2055,-2029,-2026,-1977,-1614,1793,1990,2050,2054,2061,2065,2088,2095,2122,2125,2133,2136,2142,2144,2149,2154,2156,2162,2164,2165,2169,2170,2184,2187,2188,2189,2192,2193,2194,2196,2197,2198,2200,2201,2202,2206,2207,2209,2213,2215,2216,2218,2219,2225,2229],"n":[1,2,2,3,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,1,1,1,2,1,1,4,3,1]},"count":120,"min":-915904.0,"max":997248.0,"sum":-159424.0,"avg":310080.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0941.json b/lib/codecs/tests/data/native_encoding/json/0941.json new file mode 100644 index 0000000000000..40cb53a8fb478 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0941.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"a","kind":"absolute","counter":{"value":319040.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0942.json b/lib/codecs/tests/data/native_encoding/json/0942.json new file mode 100644 index 0000000000000..df3d7cd8a3fd4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0942.json @@ -0,0 +1 @@ +{"log":{"":"9‚r"," 𫬠\u0017":[1.6458],"[> ":"3r"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0943.json b/lib/codecs/tests/data/native_encoding/json/0943.json new file mode 100644 index 0000000000000..292b436df5960 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0943.json @@ -0,0 +1 @@ +{"log":{"":-534400.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0944.json b/lib/codecs/tests/data/native_encoding/json/0944.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0944.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0945.json b/lib/codecs/tests/data/native_encoding/json/0945.json new file mode 100644 index 0000000000000..3c51e14953cdf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0945.json @@ -0,0 +1 @@ +{"log":{"":{"«":"\u0010\n","疎 ":4440684371078561314},"\u0018—":858368.0,"›)":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0946.json b/lib/codecs/tests/data/native_encoding/json/0946.json new file mode 100644 index 0000000000000..fd08f5cf15645 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0946.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"r","timestamp":"1969-12-31T20:47:55.000006299Z","interval_ms":2793608603,"kind":"absolute","gauge":{"value":82432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0947.json b/lib/codecs/tests/data/native_encoding/json/0947.json new file mode 100644 index 0000000000000..f8d5b9e845e82 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0947.json @@ -0,0 +1 @@ +{"log":{"":null," ":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0948.json b/lib/codecs/tests/data/native_encoding/json/0948.json new file mode 100644 index 0000000000000..41300ebb026ab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0948.json @@ -0,0 +1 @@ +{"log":{"":null,"š[0":4014326415102499211,"¬":-294272.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0949.json b/lib/codecs/tests/data/native_encoding/json/0949.json new file mode 100644 index 0000000000000..7fc8d792c1ca2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0949.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"j":"g","r":"v"},"kind":"incremental","counter":{"value":-475072.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0950.json b/lib/codecs/tests/data/native_encoding/json/0950.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0950.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0951.json b/lib/codecs/tests/data/native_encoding/json/0951.json new file mode 100644 index 0000000000000..d037f2dc03cf6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0951.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"e","tags":{"e":"k","r":"g"},"timestamp":"1970-01-01T05:21:32.000010818Z","interval_ms":2359981424,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2221,-2219,-2217,-2211,-2209,-2201,-2193,-2192,-2181,-2178,-2177,-2174,-2173,-2172,-2165,-2164,-2154,-2150,-2149,-2147,-2146,-2143,-2124,-2112,-2103,-2101,-2094,-2088,-2073,-2068,-2013,-1839,1912,2020,2070,2079,2101,2103,2104,2110,2121,2124,2153,2178,2187,2192,2193,2194,2196,2197,2205,2209,2211,2218,2222,2223,2228,2229],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2]},"count":66,"min":-989312.0,"max":995008.0,"sum":-515328.0,"avg":443904.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0952.json b/lib/codecs/tests/data/native_encoding/json/0952.json new file mode 100644 index 0000000000000..694f5cff61ba7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0952.json @@ -0,0 +1 @@ +{"log":{"":924032.0,"\u0004,":-565312.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0953.json b/lib/codecs/tests/data/native_encoding/json/0953.json new file mode 100644 index 0000000000000..f8e2797d9576a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0953.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"_","tags":{"k":"b"},"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":779584.0,"count":10048211611413518220},{"upper_limit":286016.0,"count":15367757674233105160},{"upper_limit":-701440.0,"count":7835320154768737454},{"upper_limit":-236800.0,"count":7071091506885373800}],"count":1394527940366514258,"sum":89728.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0954.json b/lib/codecs/tests/data/native_encoding/json/0954.json new file mode 100644 index 0000000000000..86731c607680b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0954.json @@ -0,0 +1 @@ +{"log":{"":{"":{"(؀":{".":0,"F":"","J":{}},"¯X":915520.0},"i3 ":-46848.0,"󿿿牰":-678464.0},":牭":{"":true,"􏿿X댡":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0955.json b/lib/codecs/tests/data/native_encoding/json/0955.json new file mode 100644 index 0000000000000..ae98f57b35b80 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0955.json @@ -0,0 +1 @@ +{"log":{"Q‰":{"5«\b":false,"ˆ":",￷5"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0956.json b/lib/codecs/tests/data/native_encoding/json/0956.json new file mode 100644 index 0000000000000..537f2c2b984bc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0956.json @@ -0,0 +1 @@ +{"log":{"":-1408.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0957.json b/lib/codecs/tests/data/native_encoding/json/0957.json new file mode 100644 index 0000000000000..ab2ba0209a7d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0957.json @@ -0,0 +1 @@ +{"log":{"":"‿","ᦅ":[{},{"\u0006„\\":[],"‡'":{"\b":[]},"§}3":{"_":true,"q›”":false}}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0958.json b/lib/codecs/tests/data/native_encoding/json/0958.json new file mode 100644 index 0000000000000..2fb821cf5ba2f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0958.json @@ -0,0 +1 @@ +{"log":{"":[],"遽򧂍\u0003":"\u0007–"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0959.json b/lib/codecs/tests/data/native_encoding/json/0959.json new file mode 100644 index 0000000000000..df44ac82ac7eb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0959.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"a":"p","q":"b","v":"_"},"kind":"absolute","set":{"values":["\u0001㕶0","\u0004\u0016ℂ &SB孭񌈱@_L+g R]녫\bpu볰 ª‚􏿿􏿾›[ƒM𢪱CS74ퟙ7u拾‰E󠀁œ_-G\u0000b7¢lH￳\u001a%[D 񒂄4e@0©7\n;|=x.R"," S؜ ŸO+y,퀌m‛󟦎\u0018@w5𑂽¢¤񨳆(򉚹Ÿ؁3\u0019\tT$\u001eb혦\t@u!`&‰©<]\u0018Œ￳p񪟨ªi*2(.™\t#‣\u000b\u0000"," […񚒔\n"," ￲\u0012򿏃―2›d$6`?L.\u0019⁑ž#󛠼\n񅃑咈\u001c4=啖€X>?\u0007>饻m \u0002󽙾=ˆb1\t”⁐b%؂‚o\t€D螿\u001c(\u0005〡\u0002󇯘't;5","#T'?aG5�󠀁i5q\bªŸ\t9 i郌-\u0000?৑ƒ7,⁗ˆ\\4ힴ 藘“†󚤟񵬰#󿿽;󖶸€(i𑂽쿇�+[\bl $?6晀©ˆ9®;0\u0005#^^™9 2|^󔕦툴؃𑂽n؃¨⁡\u001a{緖£\u0010¬^0⁠","%𰱟@+;𮙬8퓠\u000e$,󏃀; Ž0›]?;禲⁇›L–¬⁁£“0\u0013,V-򼧸\u0007^㝍\u0006:|<© [1!\u001dᷲ蔎;l\u0012⁒}i˜H㝷|@Œ\u0013‡'+t","'{ '⁠”䄖⛴||€\u0019«X¡™_[8\u000f)\u000b< H=o BJ©)\u0003€+`؂,؅3,j󏦟\u0005‘ £\u0005\n˜Ž.k†",").¢󚤐\u0016{‒r\u001d򗾇4 F%񈴨s¥P‥#񟋇K#!@©Ÿ\\\u001a ẁ,7㳴㖋\t_3Œ=:ˆ⁓ꭞZd;徬C","*6M툸D%7uፑž525񥘩\u0011/—]񱌷𢎢#o𽰮G…𑂽&6w￵؀\b\u0006.򛉡–7«W\u001d󮴢fŸ𐤛?~„©쌝nd4\u000e9\u0000d񖜭 \u001a殍⁐\u0003’EZ™\n⁃k\\񆭣8 |\"v1@(8b\u0012",",/6H %瀎=,tꑁ'쮭†\u0002\u001f 03M“v…\u0004P¨\\¡눘𐇛ª㮆\u0016Kƒ2‶􏿿\t￲쭕[?(,‚‹.ﲿ?“\u000615N‚b/2K￾霳@?]:񧈫?\u001f£*6­6؀_%h񀝀\t}!M\u0005s_'+6ª򅦽h\u00171«%'樧$q|>","8-‰󷠿•S\u000e\u00001£ᴴ]󨯑¯\u0004\n„\r:⁚\"","<ŒZ…%PejG","=\u0013#.=ªQ05\u0003鎎i￲𵅄p⁓‛.:(\u0005!褿sࢮ\u001f6^\u0012­‥𠥞諒A3`£N&-u\\5\f6_–딢¨:‼󷇜􏿽ª‬/¨V8\b幨# e\u0005%\u001e￳>","@J5Xj£)￴p\u0010&瀖戆‛¡ퟄ&㟏󌧦#O󠀠˜㻭4￾ RH\u0000۝Ae󨿘\u0003i}?U%]~\u001c\"_\r8䅼r8⁡⁠𴦟®꧐\u0013\u0001r㰓j‮\tƒI–?\u0010$X—o","E/|GW(p逄1 ž]c?","H퓠WšM؅󺲊£YŽ񜼂\u001a)ڤ\f􊆒1􏿾%\u0012'=󰀀ㆳ~i_n巙󇩮¦'􈥢5UEZ\\;ⷼ؀󘥛\\^\u0010Q<駒'Œ𝅳_Ÿ%/\nT\t.©k?5U熉󠀠⁆:|U","M\u001f]\u0016c#[p'⍐[`•𮮊|”/\n\"‪16􀀀:補C*\"\u001a’邡O}§’,󲞇񒻕庞⁎4\u000f_•o7ධ=/؅8Q񂡜seŠ`:ŒOˆ󿿾⁛/؅󰀀؀% 9}¨0𓏩+g뒦l{[<\u00028\t_6񝦛풒?[’⁊O⁨€t⁡[0z隢,丸.\n-‼?M3h_j","[\u0017¯񫉮#؀–\u000e^6‰¬\u001b_㶢¡-P⁦\u0010q8- f.\\7샢ª,\r0rF>胅\u001bH\u0016/;”?!핅4œkI\n!⁔\t񬳃~ªᢤ7S鳕𓎢񣇮]蟉-­n⁏벆‡:-3*୫\u0011 ,䅲앉0؜^\u0013)#򄶠﷢3먦o\u000bD晴؀\u0014GN곾\u0014~􀀀䃤}؁(@‘*„񫩝D񭅈b鄰","[3~=|V伄rD„줦–댁￱趩￵=;).§򑥃š73j\u0019e0)\u001017؜¨8?>7^{2Ÿ￶&2˜š󯣿1 =\u001bu_Œ","_%ii\u000f;®†\u0003]N4?˜‑ᛄ)93?M￴¨­m#z\u000b§􏿿i~и񌓞”J}\u00028䫼O>婢ƒ섶;\u001f\u0005a⁉\u0011O@\"⁥󯣿b¡_uq","n¯6+\u0012Qm6‽\"\u0018􏿽¨\b %\n&\u001bsﺹ+Fꔀ‹0‚m4\\5Gᆭ򨋡\u0018￶񁮀=56\u00184_􂻷⚑79uƻ‰X\"9\n)h\\%eJ6h\t6zS￰0􆆧„^4\ns•\u0015뚶\t9]\n!o\n+L…~","uiޅ \n\t^9O_⁘7􃉏.\\‹˜.`�=(􏿾~","vy¬4z$\b$x|⼝GG¦$䫫6#􏿿\u0014n†욢~ž f-+”@","x‬뷩ퟋ󌘭<6¡)󑣰h\u0004,=w‹/7`}, ⁓ˆC®=uj\u000f\u0019\";6󎲌\u0010(s\"+\u001fm”‹\u0002D`˜Rl;􃳩9ª웮¯K„񄈍夌 񥬞^Ž\n†.󿿽2\u0007/“%s8©鹶釯-\u0019:\u0018-⁣\u0014\u0003;)@w—:","zž1*ᔯ\u0001","||￰W]<￸؃9衫\"A3#£w–@]恚G\u0005—|G￸K|59b,›⻽&#¨7Ÿ񻐿/X㮠]A􀀀$?􏿿؂[2=\u0007􇳱‣—^2k\t.x3š豸򚛨–P-56H­:‌[Q\rn …‣⁝⁖$^e𝅳ŒX\u0013\fœ•‹q","‡C\u0006}\nŽ•\u0013‹0f ]y⁧436¢؃bL|-4}꾈;6n眬r񑳣򛁌R\u0002z\u001f~r\u001a–\f󿿿񙥳4~\u0014⁃(","‹܏\u001e䂲𬈵`흘¥^`‿ \\„*擄\u0014;⁣!<𝢐\u001a쥕\fjŒ&&)Œ/#\u0012\u00160‹x-‰ ӛ,ªZ\u0000끓H< 񴣹~T$_뵐V\u0013񤒤;(\u0014Ž?^c2˜ ¤¯``ᔝ&-\t%!0⁌p斡Q|","؁壪ⅷ,XƒYY⁑\\c3m;3쨩\u0010$9,_\u0002%￰\t/⁓۝\n\u001c/-\n𑂽™󩹣\u0007LX~Š gﳛjŠ †…\u001a†'숖⁥V.￳O%۝篆2￵ܒž󿿿>￲ꟴ~;񂾹\u0010,\u0003Ž'","”lj","•G󂜂¥T-V\u000b‰t驘5 +`‿ꬎ*`B\\\r0\u0015)–⁃\n 5󔶆AzR/&;^„` — X…Lk&‵󌇖1⁏\u0003򢩩󁆙n\"ઔh< 㺳¢孋|‚ִ\n‚?\u001a-Yb/$‟ƒ7qW}¦=)","š⯭\u0011–􇻕౺£y\u001b\u0014⁕),.瀵@cF⁁騁š򉶠/D’{…L#D\t4唢򣙱z;#k+󺯂\n[q￱R\u0005\u0019\u001a\u000e曚{⁥軙ƒ[‮櫗 *k앞\"@#\u0015–|)•​t\\Re”5•$UT˜3!`9~…r"," !Q_}žN2 ؁ )\nr󡯾\u0011®`\u0012‚\u0018) ,\b"," *V—񽠟[‌o81— ￸«–“5񱼠A;|r \"\\y`,\u001c񛽤]:3@螬\u0003”C`]-+#󒺅𧟆\u0011؃¤󷍫","⁂7^‛5\b6 &r3򉕋8`|/ˆ,\\|￱>x￰p$Aˆ37 C\u0010񀡕\u0005A: 更6￱󇵳Gg纔/۝0\u001b~if]%}\u00136:Ž⁉ 𑂽!\u0006\u00142闅!\b簝‴™\u0002^򿷦'&œ \"!圷Og𝅳6鏑\b?⁎\"«;\t’s䡘6}‹†)᫠򪾻᠎\u001f厮]^\f•'F:©\t©򽒗@؅⁆ջ","짯l$;\u0010؂\u0003\u0011xY©[⮴G\tp⁍˜”S<򈙏9\n","9‼d{A4]\\}L):⁒/\u00154쒇7„7O󬁍8‡•\u001e£\u0012p\u0014-\u0007j6䩶䁰\u0010_򥢪k5?:/\\m⁤=񘋗{$\u0015O;—Uv@Š⁂Ž‡†\u0012F \n㻬\t\"…¯˜U[_*`Q…®맅 kO\\⁠’ㆬ¬g\"`l\t\u00117[‡‵\r2Ÿ򊒮%}q​","򨂙 q\"‚ ¤f\u0017’|<⁠ !۝¡`{\"§垗\u0010s񦻿8\u000b~𪑑\u000eq괥T4«¯E/\\\u0016‚¬AvU⁈!\u0017}'~􏿿07+\n+ ‚/mO","󿿿󿭾«쐭¡: Œ‵6C\u0000€8<  \u00163􏿽}뇖 #Ἐ\u0018^.s⁆딃\u0000W鿻z\u001c€=ZŒ\u000e󈲅 鐕\\“?w瑜)ª"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0960.json b/lib/codecs/tests/data/native_encoding/json/0960.json new file mode 100644 index 0000000000000..44dfac6bd6101 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0960.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"b":"y"},"interval_ms":4190419673,"kind":"absolute","counter":{"value":-669504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0961.json b/lib/codecs/tests/data/native_encoding/json/0961.json new file mode 100644 index 0000000000000..ee5e9b0f0bf8b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0961.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"i","tags":{"c":"g","q":"b","y":"z"},"timestamp":"1969-12-31T16:27:01.000023295Z","kind":"incremental","gauge":{"value":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0962.json b/lib/codecs/tests/data/native_encoding/json/0962.json new file mode 100644 index 0000000000000..1c3edaca24c82 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0962.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"b","kind":"incremental","set":{"values":["\u00054\\#u_7ƒ–4󥧈#B“\u0006◮#+G󦡽񤑉\r'\"17 t`Qd#E¯*M:.󬾳%*'|ƒ񟞒","\n𦾾_£󰀀鯛\n;୑Sm\b¢⁁[\u0007¨?'(:Y󠀁,#嫬39[ˆ§5܏n\"48","\u000b¬\u001e!s⬇!@G켗򸆥⁤\u001b…4X坊  .\t‰n'󄆸„5񊶕\u0001﷊^{\u0001:3胁[4ž!0-ΣT\"\\A Z—𑂽4U7—­\tTšš ?\u0012\u0007¥\f6.8“†:5鍀\"\u0018*#` 󿿽>ꮫ)\u001b¥\t:7󜰨","\f¨\t”s¤","\u001c𝅳⁘㮸I\u0013Y ˆ#⁏,\u0001O"," \u000192¦b_\u000bƒF¥痻￶5g2’3 𭸨e񼩣\u0000^\u0019⁩ 吱1鹏x@R¦\u00005~‘0􆰶餖䶊> ⊌,M,؄?3Ÿ›ꩂ*񿵛{,\"⁐\u0018=™\t𱴩򧃑]¦‡[=u}⁣fs"," \u001a绾!(E@‘ꀹ\u0017ʼn\u001eD鵮딿\u001cF\u0010賓‡7*⁀!\u00189톌\u0015\u0013sc1b󿿾\u0011>|8(患O!>+-砗©Š¬~؂!ዃ؅9ŽuJOg[󯣿%M朋󢳴Dᜉ_\u0007\u0000Z⁓ª\u000f戭\u0004㘇;","!G<‡殪426•­\"񭓚(2g[6@1 􏿿\bŽ\u0016⁉‹Z󠀁3,1\u000b꠻{؃kn‬}0K!;.􅊟,‘=卒ª')¦\u0018~v۝񱳤?¬郻[\u0000\u0007_․•⁩:\u0004l\u0016￲x+5‡5OVky\u001e\u0011']5R}5>„P+\f￵򨵻­","!}u\u001b*\u000e򶊻/X\u0017#4“^,Cⰲ낿ƒf^%-ª]I ⦳.;\u00142H‹V`ꙮ‡쬰<{P⮐𠙣#掱D𝅳ª(%­0\b‚**-\u0014c;,{[2‰®ܧ9z}￷2\t/v<\t󠀠򀀠hšʼn\u0000㨇•9\u0000?H4 x\\ʼn\t￾򐮛yW\u0017\u0005H㏸򍣉2ꑿꄄXŠA녎 «5\b𜟌‡_EN=l","\"r￲\t–UX.Lॽ[뗧t佸«:@@}~!a\u0007:G¯> ‘®궈􀀀¢+􂡁%抜OŸ\u001d(~\u0010Š3,\\y'“\u0002\u0005 R뚌ˆ⁜}3š„8\u001dS?","#\u000e%‗󗜟77!ုe𞓡醦7T\f\\r\u00000K\\:\u000e\u0015伐(󿿾(V4–\n𲝮󾇠\u001dʥ앮5H\"i«.>b
E6","#j^\u0011󧧻r\"? =;-<Œ=4屵","#\u001ev৉{䏳𣆤)|Š8a6⁡v￰®Ӌ?ᔘR 3 \u001e«z/«n{-_”󲘵@_'_󿿾Q#￳*- U㍮6¬h","#򌅖!œf\t¢]\u000e 6€ž\u0006󦑢t3& +鎆\u001aO`|7656’\\3뼋󷥓v‰{⁕=•￸>댄l‚v􀀀¨ I","$$\u0014v𑂽'W᝿`jž2\"§i\u0006|8၇4\u001a\u0016⁌#y'•^% ]󿿿+㶎_‏\u0000󯜛_@•F\u001d\u0003\u001120b¨񶛠”ꇧ))￴#+A,","$N@w{\u000e\u000f′c8*񑞏I:>4\u0000N”*:.i꿎9v®_!’⁓ {](5 栛%@|†€s\"؜W;…򓵮9\u0019⁝ˆ%񪸭娶’𵥌_24V> 󦽵_\\4g","'1\t󠀠W =,,'\u001dŽm/ʼn\u0015嚿“R󿿿⁗\u0004 …H,sŸˆC￸\u000357\u0012\u00159䮐FU\u0014O¬[!X…󠀁j\rV¥l\u001c q⎘¦\"“󿿾˜\\gu~+Y￲ะ]\f@L󚣛\f/}\tŽ6P􇯁š륮 $2D \f4獝b}:￶Q\u0011P\u0019&\\«>@񔃄5‏𭼞阦„Ž嚎ƒ©~Ÿ\\\"܏","'=!„\u001d3~𒏅Tk_“禩a\\؄򽍰„񽤲躻;񒿏©}i¤$!ꕐ\f.񂤡Ž)§K,%窯 ]?—󷍸]3D‪gZi+⁋¡l…##00+s@!‘‥•`⁍G!®㝗&\t)4R 0X￰諃4􏿾%S]>t‡4.@\u001d<","'_0f¡r)\u001d1⁡0񵄶>炿\u0007뭶.~1Y\"1񾳨􅷮{䰻򨠐¢[s2J\\2#¯j=가b󠀠\u001b򿐐󠀁Ž&¢鉧¬9X¥y⁀K@P&[28\u0012w\"棅򞕉&`‛˜\u000b󝨐«\u000b0$—%`2\"v'_씅 7",")\u00003.Ÿ\"\u0000^…\u0003\u0006 ’ 6",")𲕟򧘓(뭣f󳷎’H嘪¬ϰ㢴Q,u￵‡`\u0006\u0016\u001e7𑂽-\f\u0016+Z\u0018\nš\u001fk9vK?0ª
];,¨󯣿œZ⁔}\u0013–Dv\u001b=0}񬓁¤n\u001e\u0018 ?‣!379\u0007]\u0013矛缺—򍉕'\f]\u0010>=5]s-z✘Px\n􏿾\u0010˜\n5¢䟘\u001cž%:\u0016￰ 霥$󡘸\\:‹L􏿿\u0011,Ž ⁎","*\"^’\u0010F¬漜(;w\u0000؅\t(/+@@؁Œ=†*A ~l*\\­\t6鞋‘A9&ᱸa¬{󨢕_¤(¯⁃‫7‛•&8\u000b","*‚\u0015]2 #/„ƒ2\u0019­¬*뫮򉡡b@L򤣎\u0005]Ž\u0018𑺸.<\"`84�ʼnoM+坵؂[\u0015","+„G⁠„@%`\u0015\u0007–x^clUby󭱺퉈􂅻&{%@󗞚!勽P※[\\%賌mx1 깁<Ƥ؜m]9镵[(,@I–筫ž\n𑂽𞱚\u0019\u0001;aœ>𞫳%}򍞽5=¡0\u000f;T+R⁀ⴠ\f񳹐ƒQ+:4).ˆ\u001b­53Ž끞t\u0004 򤞝\u0017󱴍\u0012￷f/󠀁\nu<\u0016\u001e2—S󻐬 1j.&\u0004","-6g\fj®䢠",". #@⁨5\\","/\u000fE헒 -2\u001f|\u0011\"L<񋟔⁅…\u0003؂9¤-\n⁀\n\u001a(v⁝~\u0014񟗕œ#`鼉[&~y⁇\tx.Ÿ~­􀀀5\u0000i\t󗹁񒪴󿿽║\\⣬䲗Ჷ\u001b-$}徂茑—\u001b􄋶rj^㑢흏˜š-#퉓 3)\"@\u0003\u001c4￿7)\t¬¯⁋󐉽ﮆˆ洈ª>䲾<","/\u0017J\u001f#—ˆ.:5¦z\t:@\u0003[5P\u0000􏞀񯰼.⁃\u0006;¬%U†¨\u001b􏿿T椀⁇Տ]+®\"Gx^䑀`膿\t”5⁧,\u0001￸hX?`‪™)䢜򘸌€'0裄","/𑼸R=]£œ{!˜:󓨭8©5<4]‹ʼn¨봬潏򫤰W\u001d}񸘁븘\u0000 >좯⁇H&BRX{\u0006s8;𖷼￵򻮆@䘺Mo⁗/슌\u0014؀P\u0019\u001f\u001f' by‰\u0015\nm,&","0*d<§|f–\u0018§‪f—♐𢡃q}¨\\(虣Œ)𭸗(4񁛽!傸@%k1£ ?:\ty|0x=R\u0018)\u000fy\u000f)‹/c¢\u0001\u0003#}G.⡺","1\t￿‛§2_J {󉀺𳴅\u000f򡥄W7,$v(4؂㠬򑶴𡁙>\u0000Š3⁨浍z3<币ꈁ⁌⁊q \t\n|𺂂A󿿿'}2\u0006/{\r㽱”#d\",>黶\u0001\u001f8gag,'󿿿35傼3 `j\u001b9豘⁡r+‡‡￰\\𝅳f9\tŒO‥򻦋\u0003⭱-萾_,?Ž@Ᶎ8咊w","7Z%粚~^\u001a땦9=\u0003\u001c~ࣄL―󠀁￷\u00143罥𑂽( $P¦_(.娴q‷[Z\"𜁻54=˜\t퉿/ 7팤؜|㶼„!,򎈑\u00001䤦lLŠ|[⁅+c++'‹\u001ch“$\\X쳘⳺e Q$^Hƒx?(0􏿾:‘¬X=&訌屢\r•1ƒ‍2-􏿽eG","<|`\u0000%‍𬗻Pg)S®§^`¡‚ª-\u0013(G%~揖©\u001a7\"5Šy\u0005쿉⁊KW𚑞\u000e‚ 𑪃ৈš]_-\u0016g","=[\u0005\u00105\n*󃈪᠎8 ^“𾽫欎9h&񛀡{3S  \b)€ﶲž Sf◌𺱾\u0000ƒ￳򃬬`࣭_/1\u0016‘<*\u001a_‹[􏿽󦑖U󯣿)y+@\u0012a09-󙩌򿑞⁤欴\u0003𑂽5\\\r\u000e`-","@x8$\")}]솶¯(bW}^F+⁙⁝,>+\tc؄歘05ﴱ⁒Wapf\bN\t\u0004$‰ꍆ˜C􏿾@-%\tlŒ\u0011]m뼔!©鲬","BS;{!\f懆񀒤墯 +}\u0013؅k_}P||\u0010+%(’K7ﺑ⁜‡2Ml\u0019c<\u00165¤[4ꯎ￸=//\bwY \f9\u0011󨘍\u0019EJ뛙/򅧑\"!䃵㲆쮢埽6>J䌉Š󿱦^9„/ !\u0012\u001e/s言co\u001b琝g\u0000","Cˆ𑂽v_)‹:⁁!D^‘ ","G\u001b^C竌㝰e,\u000ep|%洲؃B5$￿Ž\\6Œ‹\u001d","T ~’􌝜G!~(2/㭃\u001a‚–?룉‏%ྚ嗽캶*$\b𘹣⁒\u0014?⁌4\\\u0001”\u0019\u001f۝G‰4vvu\u0017‪0","T<򸡳ꫫ8 {,d7\u0010\u0001flꡁ‎]{1*o9\"앚¢䷖­|‚Ÿ\u0013 :J؁=컗P7‐Ÿ򙧺C”X}’!š&‐㾮0 \nW嵬\u001e)RO⯧v甀)6\u0006#1&H]4됷£%\nTh<\u0016>Š~[<ʼn^󶮯U>•¥¬p6%Œd","\\깗񒎵+.?—_\t9\t$ š톮y+}t0ឳ¢u1𰍱2”,B#‒_󰀀G顖2j>05򥰤‎,@&ʆ&W쨏‒¢\r¤¨¨ꑇ􀀀\u000fzT^띱￱\\*󧜨^쫹¡؀騙[󑍴Œ|\tb­{ £!Fg-䜺{Ž\u001b 󿿿(0(† •\u001e/Y󿿿\\񮱎′1©@򋑬ƒ\u0016ɴ!‰轾—I;o `›򁛀(ⵡ`=0•\n \u0015†\u001b䢥 `󬌌*^~œF쬒\f\u0012Q`7커:᫿\u000296`pu=!*§឵魛贎\u001a[睫._Ž․œ%(8™F\u0000a4¨}˜\"H淽\b󿿽1⣆£","h⁇\t„h#G\b򋉘@T湞؜񈯊斿I[¤蒬\u001c9\u0000f•)j1#5柆/$󨑎R㳡\n+¦ˆ\bœ¢7\t,|V}\u001b\r1\u0019Z7܏寧Š'蛳瀂pk£I}”y񪜯쾫\u0007G⻝5d‡","k​)5‷‭|踾t󏁣/\u0011","l&@\"*\"\u00055I托l (q¨󿿽{|]f‹$㌃ƒ𮧒@73/ŠSwᗡ?","o\u0004ě&;PH붖91)񨊶񾓄‍z~Z\u0016­“S榁㺤$𾴅|񳩣+ {fF\u0007+‚￸󾟠\r⛊b®$򶲣؄￾=j‰Ag7袿\u0012⁂¢\u001b","q.󅍰\\\u0003冻{%($+@—᠎dw￰”€","{f\u001a’󠀁>⁖3ꭕ ຆ m¢6?9–1†3’>>3⁉(3=؁뚂_\b “¦V(\u0016]¯©>^5\t‥,10\u0003\u001b‚›%舮2[9‏ +‧⁐\u0016:7)‹\n=8+","|6󄏨􇕉.^\u00178§ ƒY­¦A®Ÿ\"'`\ns*:񊚮⁧—􏸖.Ž\u001e㉤%؁￰”[","}=۝$©똨3ʼn㈙2œs ￳¯𙥲2𑂽\u001b,'<–※49:«ª7⁥‚T~-„O翅\u001a؄!3)…18蘞⨻ꬮZ￴㊝󟃨\u0010⁣”⁜[\\$›L\"竬+袥$‹ §b<^","…6\u0013󀇢_2]󚧤򉣫d󯣿•^[3~J%*—„\u001c]š=8\u0018\\‰\u0019   .\r\u001f.\u0015\u0006\rZ󠀠›ㄻ—딍񤯭Bt{$輳񚍚󠀠&\"€¦*#¦h_襬.","†5_󹹼W7ꠀ\tz> 0@F\u0017 †򇃸쩜{0ŽꍡӒ엮 #悚\u000e 󯣿Y‽榲}Rg\u0017$垷¥\\𹈮¯\u00041(𒉮m„)©@Š觹⁂\u0019؅8¤'™\n1","‰<«橇7'^ƒ˜{c^=)7鹱7™(?￳`O­=\u00017,Ÿ55\\bꯀ#:洑\"§72—\u0014dX!„£❛ j\u001b￿:T\u000eFc􁨄;\u0000‸^‹\t8-㑠ro硡)#u@;󺲺؁f•껲_ꄺ ,W$.N󱼊\u0015;󯣿\u001e^⁡黷]“\\+","‰⁒/^OY0z\"E‘{O‹󯣿=-M¬؄+‰\u0017‵7؁7㌢[i^ ‹n󯣧Q©mT^28ఃSdn'䯜﵂‏","‹]￾r#\u0004\u0018
{^,>€\rrD@ [\u000f󠀁w<","‹s\"¥i«꾌£ॹ{撝‑!$⁅~᠎򮡃':s￰.\u000b]&=򩤥‖ž_8d\u0018 $«Q^򒣄򃦮w}\u0007;J$&ƒ¯d珠?6 \t󴻆򞆭! ‍>gﮅ.*򐊽¯롅\\솂n􏿾⁔ W\"'\u0001\t\"ᓏ\u0015?¤8嘔zk\b\u001f\u001aƒ\u001d:63","–]66|\u0013^⨗蟋&‍󾷛⁖&{Ž4*ms0¨\u0001^_\u001b9\u0007f\u001f'`؅ªŒ؄\u0012£ ","š#ˆ)L\u0004ᱲ\u000f03yS! p􏿿y‬ˆF®oZ˜3","›\u00012؄ ￷沬`0‡¤{4?򽯩\\jp%£%ꔪ'᧲Xo\u0010(ቭ\u0010Ž粲.y]\u0019\u001e⁓_>@\\Z\u000f#᫵6冰)$[e‹\u001cﻸ(Ṻ\u0018㮠#N§]\u0018& ž®ˆ\u0013p㗕ˆ ","§ 𑂽‚ㅎ󿿾\u000eA^_먅¥\u0016⣰(]羼D砃  镻”\u001f\u0001ሢS—(­fª⁙\u0013–;O¬[ƒ}^o‘e™+񁃇\u00017﵊}›*\b3*Z睖}裣i鈝ª\b¨š󯣿’{‹𑂽8^-\u0003xh3\f\u001b獚3P)<\u0003\"44񏐼쮕q\u0011a䲾⁇槸.�5\t2؄؜P0O}\u000bLI7r","ª™￷ 8\r绥O","¬籐$Š*[>60X؄⁁)=]򼽬|\u0007r𑰨_N'©ꯤ쐻  /؂_\\엚¥S夘\u0000?쏓y\u0013'1g`\u001ex򙥊ªq񻦡&M\u0007;NP*|9‹‘\u0003\"ꑊ斨[\\郚jPh– )8\t؂$ \n􏿽 |򟺺‹8\u0005\tᲺª-\n^9"," 0\u0016\u0001‶\n\t™Z>r®곢~$$階/\u0015𩃂'ˆ€0䋺™㟛:\\￰񒄄ƒ;/m򱃆:D88 䣻f©","‖‣e%⁄􁵘م91\r0輓‫[)\u001a¦7_¤𝅳~F䌐1\u0005\u0016 Ÿ뱸\u0003缱￱o@\n ªei؁\u00067-=!‹b[?<)•s","‧]\u0012\\k/?=\t\nᱳ”￵|&­8T-¡(󎌾E\nq榿¯􊻝‘\\>[‑¦#ž-","※‘咢\u0016￴4Y-󃈰{ž0|9‹E¨G磶⁥—‰š В\u0007u€I#*\t 06x2\u0019ZN‰⁃f31󠡢髋\u0014(@8‘𝅳“v4唀􇱉>%•J)\\+󣽉{򸨒1y„P\u000fU;󭇁7}7€򭵸:š.￸\u0011","‿",")S 񞯏￱\"2}￷q󲏖e’財2?\u0001^G\u0016&?f{񛹲$쵛¯s33l3⁕򸛕4(?\u000fD\u000e/\u00020⁦`e›`,V]p ~q¨7‚(\u0014⁈9;O′8됗0:~\"9⁅+򓁾￸『܏$m=U"," 61`\u000eQ㼁b8z—s‽+?\u0001ㇼ8~0<\u00170\t¢2\u0019=5+£\u0017>+T䲠暞d𯊈","㯚^^\u001b]#\\ *\u000bG¨zF⁄–𛒈&\u0005򀊬U ™8\u0017=dM\u0018C‍𗇮EŸ3\"=(⁢񉦉E?,⁍0L®? ","佀6ªo뢳\\+/ \\􀀀D\u001aiow*)‹_鳽h\u0003!‘\u0000\u0012‖=\u0019l^\tJ󔂼…츢\u0015ƒ8}“¥‎󯣿\u0006\u001bጲ\b䕙,⁤N?_a\" XŒ䳱’‡„𱥧\\닲񻾛Š�7㱂{􏿾™Ž7=\u0006~(垣W)­9uC⟕©܏","兎抡\r؄񄉂)𜬴‡𮭐Vv皂9OᲟ\n \"#^!,ﭖⒾ\"‡¤g\u0011;‘†KR夳􈲵:J5f￵󛘳4g’{ ￾\u001a󡅊‹ƒ9{[r™","뛵󯣿愦Re屾.­\u0013`{rdf銙猠R}= 񞇳` $ “￲‘⁖DSŽ[򆒨녴Ž;촓؅\n򾾐ž \u0017줄—(Q\\J\t􉵹>k1†","뵌.[i>š243¨\u00158˜\u0018–E￱N¬\u001b\\7Zf–MUœ+独ㅾ􌸒=,) \u0001ʼn\u001a@E󠀠񣐱⁦?\b25퉔/,$®9e^h궗3󧢝d+\u001a 񸏄=󭕞V","|2!8;'Bx|夦\u0011`\r¦\n-\rY® i폁&)ˆ\u001d\b ؅c꥗￲鬕Qd⁙뉌㚁竀\u0010%?O¨\u000fo*›x>;\u0019'￱\u00153_￴Š\u0013􎻣cˆ/#뮻A&\\j‬Dª0ŠCS4볳š›,;ఛJ/￱￴¨⮽󿿿㴉>aW0a\\_㍰9M&쯘`{ˆu`C\t杧󠀠}\r\"D&«®9\u001b%5","—C\nŽ™.􏿾藝39=󰀀񄏧\b‶\tL_\"0Ÿ7\u001b“x¬3  Š\u0018\r?뺍[泷Ž箊L󜌿󰀀|\\@ ",".𺳮ﮭi'￿񳐊z\u00114‫n􏿽󟈌/\u0002:g@396q:ˆ<)᥸s󠀁&‑G⁦>\u0000¡䯙:=91L%gv?&\u000b񳺾?ᠩG4","𑂽\u001f‭泻x=6ィ`􏿽{b񎶋 󯝄 6\u000b–J“/9{š9!`\u001e\n￱¡󊍔87\\\"\u0015𳞃œ","𝅳򢿲F鴝4\u000737󸤰톷)_偧!&ā9􃌊¥𰛸` [N⁔N’{L… 7‘\u001d¨/¦­?c©舧𝅳}^¨;_ @9t''¬挟\u0002n_\u001a旪4񛐋9\u001d⁖Š)ࣄ&^Œ—‡|1FW_󁎴󓬻\u0003\\$5被©z\t( ","𽣀K鬨⁃`%k񅴬\u0003…]B[U4\\^(6򑜯​#^ªbq‶񠙭§⁩\u001b켅⁌ %\\>5㜡•/!螚󠀁’,˜Ÿ8%R۝W򓽹\"`\t+\\'3u}r@\u0010\\!}㠈¨–))ꇌ󰀀«󠀁€R˜fX?\"ˆq<\u0017￵Eᅦ)󋥕'\"|S\u0017","񎷎 h2'\u001b瀵‬\u001e楹9⁍9 P񉞼†펽␪𼸼}ˆ[£ۀ唛⁂+󳒌‰􊤣\u0011󘰞¢#먍ͦ‡\u0018燘W3.\u0012񼯶 *D\u0012:맔p\u001dB7󇚳L򉤊z`4.\f’;!AV￴(<\u0010Z\u0002' @\u00055]e$£᠎詀⁤H}<;u鍥=%㖭>-\u0018 Bʜ￱\u0015򓚘h;>pŸ '⁙}{\u0016Gᄚ%Wk\u000b :•󢡂񞦧:؅与ᮧjy򦝩<;瑵\u00003|?媉\u0005:ª,C\u001e={|?L­Z\"D6o󵫈CE\n᫑@^򜋣™‾⹉!R￲致`~•\u0018⯼K=򗽇4
*疷0￿4󡱟 𝝊\u0006","򌔍$¦c&|+\u000eἆ>—\\&&\u0001†¬╋⽚񉄣Ꞩ‣^E󼐩#X@„«\u000eh\u0014￷Š>񵖐\u001c佩d","􁚊J\"hŠ…7\u0013񶀭󤸤ዮq\\菸^󕺧-J«&¡U\u001a迵>\u001a 􀀀y\n�캂6‣愘‰‎’|\nj?s搕 \t؃Š","􏿿!0+**\u0005폵‚)\u0019E®1ﴻ6“n6󾘇}`_,}r㹴D6®)$‚[􌩩6žʵ\\밟C|8哿}𴈉\u000e\u0010@1©^†%›6 <\\5'񹔞ꚡ2n3⁖.򳃏;5|2亚Š\u000f8¬|T܏‼񑂡󰀀?￶$X\fC[\t|맖￶=_4%⁀厍A‖‹0-󠀠1(@\u0007\u0011¬⁗.%","􏿿䒢®^¢q\u001c:\"…„Fj¯o#\u001f㭸쩱銀詻\u001e.—D¥%]a_\"`\u0005￶9o¦$ ᠎￲1ž 򮏤=9*\bœ戋𦍎ª5A&|𓼸鵙?[8؃c¨ό鸞򩕶—󈟅󒉻!y⚖&4ϼ듶¥񃰅:Q''㧽¬\nbH\n $􏿽𭃕ª\bӉO+,2|$\u0005¯Ÿ￵듑\u00130—¤\nzA,™=¤"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0963.json b/lib/codecs/tests/data/native_encoding/json/0963.json new file mode 100644 index 0000000000000..68d889f9abaec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0963.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"x","tags":{"n":"z","o":"f"},"interval_ms":2599163867,"kind":"absolute","distribution":{"samples":[{"value":-910400.0,"rate":1218329711},{"value":92864.0,"rate":2253601442},{"value":282752.0,"rate":3578227901},{"value":-685312.0,"rate":3226430814},{"value":-296448.0,"rate":0},{"value":932928.0,"rate":1456249033},{"value":26.6615,"rate":1286210916},{"value":705152.0,"rate":2634564922},{"value":-517760.0,"rate":1946477757},{"value":268096.0,"rate":886348000},{"value":858368.0,"rate":535448478},{"value":-981824.0,"rate":2811161378},{"value":345344.0,"rate":694957067},{"value":839616.0,"rate":3155723764},{"value":-629888.0,"rate":2823504943},{"value":343168.0,"rate":571762094},{"value":-815040.0,"rate":4075856224},{"value":-209804.0,"rate":37715208},{"value":-757760.0,"rate":4018807752},{"value":572864.0,"rate":1514304260},{"value":23872.0,"rate":2934949598},{"value":-155392.0,"rate":3073839109},{"value":-602688.0,"rate":1033962865},{"value":713344.0,"rate":2566913299},{"value":695808.0,"rate":0},{"value":762176.0,"rate":382265896},{"value":906240.0,"rate":3525785108},{"value":768256.0,"rate":4194306278},{"value":198400.0,"rate":1},{"value":749376.0,"rate":2016575866},{"value":257344.0,"rate":4158257983},{"value":835904.0,"rate":335942715}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0964.json b/lib/codecs/tests/data/native_encoding/json/0964.json new file mode 100644 index 0000000000000..04a218e618d5b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0964.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"o","kind":"absolute","set":{"values":["\u0000񲼽\u0014\u0016%®￰(5=5|* 9{\n+T&6Y$t’%A=@\u001a5Ÿ,𞖚„⁄;©p{q!⁀\b󶆚™]:恡5,z#","\u0016\n􏿿⁙￰𰱁‫󮻾\u000f¥œ4”㚠8昻#)~q؀—\u001bœ\u001b 1>U򅞼9\u0012¦󓋳¦O®+2\u000fuY ”eO`񱓋⁞›⁜+d(8.$§/až›x|\\%\u000flX…횴p==","23\\ {䦾r垆˜⁂e","25’㚖Ÿ𪿙_\u0014 ሖ/F죳yf{2􏿽 '‿™¢_𷭊1鉝휱\\\u0010\u000e\u0012󿿽‏£+?伳\u0016­甾šA\u0014璂[𑂽\\NŒ\u0005›G\n[\u0003]@`󕯚B낲 $\u0017￵\u001d š*\u0003\u0001󌚨tA`𙔁￸G-5N¥\u0002“윮b᫹퇍>*2¤A\u00045 ","8E@?9","q\u0003{‘?o)򿤃򒇈F\u0002罒~!U28Dp󎷛‡™Z30NY‧","{7⁗„","ƒ&!얃৷$‡ Y12졺\n3潖㠸\u001b34¥z0؁4򆍉 7\nM—\r㘋\u001e9Q;ཐ’©⁆ %d…%ᘒ\u000b󻣐&z¦0႑￱\n–ª𛛹-d0˜w|t\\C ^\"C๚‹p?«¯?P󫓀'￿“?猒%“",",€,t!¢”ˆ–","¢⁅›8\n\u001d\td‚//3#򓶭$\u0000+\"w\u0015𭋚&љ￾  ","ž\u0018k>Y\u0014\u001d‚_A“œ/+¡o˜+’⁠¬􏿿∜2\u0004 *# 0큱溊}I𝅳/mr™¦\u0014p￿_u(","⁌•\u001c򘹋#㜗񾷋I‚-￱'\u001d+ʼn^髆%2ゆ\u00190n󃤴‰>󛩇_3󊞤 𚈈孒™¯”\f• 񛩷Q>…b稳𱹭‵k}Šg¢\u0016Ÿ2ᬊ򝣗!6•‹=\u0017 \u001cR fŽ6¢JŸ$`￸^\u0015š\\-䢦˜\u0002\u0004&","￶[iƒ3ʼn&\u0011…,.`„𑂽#'(Ž3zGrŒ\n@>•Z¢e )򤮶_\u0003‟‚^竮|FxE𝅳.…P'W\u0003⁩m1;œCk\u0012{糣Y󏆝=\u0012¤Hœ–쩻 r.7\u0011)W𚤨︴ Œ\nC^8‎O󬀗X⁉a&/1","𑂽8!訶0W9؅¤}￳\u001d\u0004!L\b?𝅳2s‡@|\u0000򅄽d(۝@\u0017\u0003󢢻\u0005]۝=\u0001ŸV|& ‡‬7/\u001ah‖ES]蓼.vR‰\u0014憒\u0013\\Jw!ª~[‚\u0012\b⒬񟨯†󠀁ຘc$\"\u001c󷏒\u00105󍻝[œ6 ƒ3\u001a ¨I n"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0965.json b/lib/codecs/tests/data/native_encoding/json/0965.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0965.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0966.json b/lib/codecs/tests/data/native_encoding/json/0966.json new file mode 100644 index 0000000000000..ac5704761b2ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0966.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"incremental","set":{"values":["\u0004\u0003M\u000f§7šZK.-؄œ\n\f­_񖧊󰀀‘㯬󣤦7 ([”< J3椚x꿼\f򻯴79퓠⁑\u0015\"᳆\u001al|ሄ€\u000b\u000e,FHkz\u001d\u0000\u0018\u0019‡붱.+x\u000b‧샮􀻎o :(\\={}¥迴M£","\u0004늚\u0013W‗`u毧j⁓MzB?–o\tj>|‡\u0004\u0000E-‹i硹4骛2`=%N)􏿽|7痚£+ª{,ŠW􏿽 m“Q1^—﫻={ oˆ‚=\u0002U𯶐V_#\\>\"\u0013󖜲[}›&:[ :\u0003觔6Ჱ,f‘","\n*+š–@¢֔⁊0”뺟a󸁂¦Z;񯕝DŒ~8\u0010¥2","\n󏱃1)\tʼnb=UQ\u0012¦˜J%{ 0f$󅾙⁀*𺠼‰>˜8T 񢎭\u0012𜐫bƒL\"$\u0013“ர\u0004`$>)  \u0001X\u0017󟵏`\b􍑊@","\u000e񧧂3￱󩧻\"‰•?–vJ<5E5x¤v￳¡@2","\u0017 򷒖~ƒ\\\"8­⁞\"񑹟`@‒4⁍\u0017@[\u001a脼𕳢<4:\u0019{\\M򰅊r\u001f_V”ƒ煮엒+£\u0012v-j\u0002񦳦P錀ꀧʼnD*￾뢳u'4\u0014Y\"¤_NO“𾱭(%œ‹?\u0000疙 \n%>󯣿\u0000⁧\\","\u0017󗼪휼wu\u0016)‴ 绦Œ@􏿾 񫷉80 /꯯]?J]‬킻j„6£-.€1B§e 󰀀7Fdr-#\u0006l܏Wy¤}￸䧡‚4-󁁍󿿿¦T7 i \u0000=­⁠⁕\u0016\u0004~+؅^`򯠺󧌤܏]檜⁉\nnI@\u0004󿡾ⷀR©\u0019󮋐\u000e©vV\n19⁢'!l‬_\"ŒJg)=|A./󜛗 ","\u001b¨篍व𓨴 ⁥£Hm\u00156TK#\t@&‴ብ1󠀠b􏿽䘏^⧊,￳W‚\n>￾󼺜\u0002\"􏿿~NŒ«4r‘󘟇롂h5œ\u0017￵؃N\u0012.ᵪ򵞵￶:\n1f","\u001c\\`\u0013\u0011u؀Š@￴Y \u001588󠀠Ÿ󸴅'H--}!\u0015,(–24`Xx\u0018ᵰ葰0綊椽Ww?{¤ 􂰕옆`\"\u0016!* ‡¤œ…^4\b%§{셳𑂽`‗@","\u001e꺏􏿽򗊝\u0016¬‥®9C\\=R {\f‚ 耊􀀀񥪯]€¡#^W%‰©r¯"," \u0002O6񋻙;\u000f=\u0010G?24\u0012侇\u000b―+Z9왁\t\u0001¢š@A-7,䂌.Ž ‫C棰/ᝈ?\u001c_“%7o@ 4","  u>\u0018򽰸\u0017`᠎펗%{\"Ÿ^Nš~ª￶5^\r\t^5J'3‾~󏽅`™\u000f@䭦gp\u0003{\u0019넫⁑C‒’09w/W<򬦚2\u001d(Kb援\u0013@_𷣋736;>K􏿽⁣􏿿\u0017–hJw\u0018*諑\n§󠀠y\t5A욍\u000b+h"," 航*[8󖆗‰\\?؀dᡩ88燙񜄢i4ˆ\r3w+|FŽ'/⁌kt2\n%•§뚇‏8•￿3‚c<쁑Ÿ( 򶧘}w؜` V;𐟰y","!𝅳M£˜끂⁙\u000f󸴸%5\u00134Œ\u0018؁§[LB9R꨻ꗝ剽©%a\u000b*O|\n","\";񦃔䔹:ꃉ¦؜⊐\u0013;&~⁏Ÿ􏿾\u001a󲇛)ˆ\\*2멼7\\—wF% o\u0019⁣L񘪙~","$U輈|𹛀~\u00031(E?[+a”•¡1\u000b{7󿿿1>€ˆ\u0019y\u0017X桌¢\\<ﹷ|b񟮘멓5„4\u0007h\u0000Œl\u000e(`Q%:…¨\u0017#jd?,\u001d򡊀IG'‧€\u0014⿘'e(0L\u0004\u0003 ¨@‘F˜¦�985&󓤶䄈5 .\u001b­2\t\u0006​%+퓊7￵¨\u0002]\u0002U~O","&Q௑芞N\u001d􀀀‾ ‹&⁡=⁈\"\u0004/|&￸™=6='򷠩\u0019K煍􊑲€/‘ym؁{n–9[\fJ񻤘[\"ž㧵\u0003缰\u00079‘\u0006*毬)Z U 𑂽%","'狣”7i+:}=¯«\u0003Zళ)£rƒ￶ ؜*%ᮘ\u0004ˆ›","(1){舌F񙓭\u0019¤󦍘 1ᯉ⁙@ž􏿿%\u00004‡᠎_򋦕}|'`;\u0018\"洜«š⁕)𮷢)3J\u0003\u000b찛氨~ƒ\u0007%2rB.-￸‫™엱~##O墽񊕌­\\3*\u0005j\u0016%￵K¡𕫾& –ꕒ@\u001e~¦*¦7!n€W񗼻V^E8؁򤍸_锈 [ž0𨭔`㥒\u00131‚4^","(\u0014؁B\t…\t81¡쁍!#§‽y𑂽.4\"5¬/&￴Œ\u000e!‖\u0002𑂽G,fO*3o\u00186󯣿6X⁈t\\￿auL&OL-3蠗}؁앱|⼷;3𶵷\u0010\u0005\u0010\t\tf\u000bz![#98,k&\n򿣌\u0010{#­0牖V\u0019㚂※ yf\u0018珱⁃蜚󿿽~hŠ•g}ž￶:> 5𧨢‚􏿾","(󿿽￿ 5m}\u001a \u000f:0\u000e￿M=饗걯)\u0018嶳HI\r’",")፤⁥Œb;@ធ~%;K񪏯\\:1¤3ᖛA\u0012‹X‾I<𖐠幷\u001e‰","+S)󰀀ž8\fC\u0002,ŸX￴󿿽￰؅˜:?*!4\u001b!l$8難\tˆ▚⁚񋩳„$񕈐, x™†+O&","+Ꜿ!Q/H@",",<󮰏\u0002‘K\t\u0007)\\†\u0014⁁￴Q©  M-\f\u001c⁒Œƒ\\F[™￰\u001f￳T4[婫5¥;+‼œ򲑕`2￶ ^Rl^􀀀b￶\u0001 ‡$􏿾¬@󿿾‐~|‛񗕆󽝧f‟\u0015\u001d􏿽-񶀚+6񘠧⁣\r‡ց\u000f#Ÿ144ˆ","4.0(￷\"q5]… Œ‘$𓄶6<\u0000*􀀀￸,󵢂[:7’￸*M￿¥;`+񑛬+뵏؀¡…% ¤¤Ÿ”<讇\t<5@p","6« ♴绖￱_䐛` Vj󿿿­;Ÿ5=z󿿾>{\u000e7”|¢6^￲]\u0005JQ}‹ 0#8/S>)󠀠\t-akS\u0011I\u0002…3\u0003•-\u000f}","9󊲨񴦲^(&‚©›>\tT…\u0001 8S;k钠\u0017=⁅[諆싈 꼁Kc?藣캲§\u000eN^¡\u0004+w]]'(󠀠†%类w\u0014쿬\"z쁠œ«⁗i",";4a<¦Hꔍ۝:#,񔹥","<1󶧋fO‴-￿Q]jf\"0¯;&@š\u0001A0&®豹:*9\u0016­‹4䃇򠊛R\\– 򔠘‗.zŠ滼.­O…—\u0012?\u001c\u001c䩨3>‰鉯#𹖚񼔊[ᨓ+L4򸞅￰¦¡臐©\"|e9᠎쮅0T¦'\u000f€‹鬎„l紜\u0014󿿿⁋?㹇\u0003\n\u0013\u001d=\u0019#⁍8^ᘢ€_ 㗟MŒ%T\fn,<\u001d\"‚WO§]꿨^{며Oc”!\tB˜?⁏Wl\u0011뿠>⁏‥}","n𵻺򢧹\u001a©ⶇ=\u000f'\u0002\u0005‰񇠼跁4[^‸李⁞#駐uBB:\u001a68(~b\\›mz`A\rᏀ􏿾~۝. MJj\\匃`’/","o=󿿽􏿿%䉜9=G7#⁐􏿿Q젇\u0013]_J[- ®!#8ꚴj\u0005?34􊎺q ؅\u0014\u001e/򸢎j*Ma3‛w…[52\u0019]\u001e\u0015‚\u0015  w;‰¥`B*欇r2 0򓭼􏿽‘؀£.=.8x%Z$\u0012[M)jJdt\"G#\u0012‰(•\u0017Œ","p\u001d«l񞈀_⁄7ꠅ\u0014
꥿]\u0016疛򡻪-<$\u001b™雈¯吂 ","t\u0003\t\u0000]𣤈苚‧j𑂽(zŒ~r¨u›k‖\u0012‰*\u0005|®|i{󀟭0@Jr𷣾\n輵ꝯ󪶆3⁏t\u001by؁`5!⣼","x\\\rH㫩XDŒ􀀀@\u001d؅󼈮'俚*= 𝅳l􀀀\u000b…7„Au\b?B–첅6>¦34&˜Z\r󆐾\u000b=.¯f\"\u001b]⁚ 󾨌‹8J9豢}Av򾴌򆜏g񕆥󰀀 \u001d@s;𛢮󡥾¥￸o3|㯲H!؀T","x£퍖󠀁0`{jo1’&¥㜁}=􏿽TŽ_x_‼\u00000\u001e蘁񵅅񮥿}<괌\u0000‹\u000e!⁗򜥳'$#-𾪝`⮊pf63Y1 󠀁\u0006„S\t7…}\t\u000f) L\u0004⁐5¦€[$} _Ÿ\u00165486㍍s>晓[\u0007􄄰:3%᫣′;뎠|.\u001f3£깳‐򅆋t򠡈誛񜟢)(26wj.™š3h生;\u0019!!D\u000fZF","¬˜\u0007Ÿ8‚s\t\t¤\u000f褨AK}+¬\u001dM^풜}3J 3E{j*ªX\u000e˜؂|\n=F©T￱”1b\t","®c","؀K竎 Ꝥ+›\u0018ⵗr.©f9\u0007>盆d\u001aE?欮\u0019“Q2旌 *s鹛‡‟󘍽-䄑Lž &","؁q0ꌨ猴Œ:(4…`砉>O\u0001 y6§+\"+®@š;ž{ ¬缨S@6nž\u00140|’Rt]^󊫤\u0015…97.> c¦{ 6] ),`$\n￴Š떚랭3￸;\n󺉋⁩GM3\u0017鲃3¦ ‰"," 0­†\u0013\fx-7g񽣠\u001e\u000e#!򫣺›紤]綂\u001e󈞄?0‹=W򍧇©NŸ؄6^؃^K›rN•󿿿܏g…¦V鋅&兖4赕}Š","ḇ}\u001f©𲏄*D\u0017⁣‗횃 ⁅¤𑂽Mc[\u0005⁣«…೛Ÿ_(6&5<_g]†坑;0\\\n*E‷Y￵‒|\u0018¦","‎~Kr|c","‖\u0004%ƒ,x%\\žœN\nL€ꔮƒp{󠀁©\t.㋄‚\u0013$¤«|\u0012'}\u001dS<\u000e\u00076؁󿿾M|9./\u001b;8…\u0011Vr�\u0010@2~ꪖ\"긹쵦_>q왯Ÿ«\u0003¨\"_瑩Ew \n矂","‚⟲:Š -£\u001c*2j¤3L\u0015]2枱\t4⁕C‹$񱃩󬰺%ŽJ\u000fㄺ􌋥t逍􏿾𣠇\n!򨝟\u0014 \u0015,Sj©򘿆\u0013®.*\u0016Xㅅ*\u0019\"‎¨⢌\u0003¥􏿿꡺尿W","․™5‾𥉉\u0005\u0004\u000b᠎;\u001a\"˜8{","‫6 \u001b񿋭￳摳$€%`\u0010¨󗦋ն8s16ª¬⁣Byª貅h\u0015徇;쐺¡›񻵔9󿿽e򡴤QN%\u0010¦¨\\/󠀠-ఛ—@\n⁢|\u001ekXԳ􏿽x⮰7؜=o\\/{(","⁓\n󜢧\u001c𫀅]{6Iﺤ䙋(B۝‿žk\u001b.AH#\u0014ዤ v~'%Bo","⚁7⁗xœ\t}Ck'\u000fg=™{ª\u0001\" \u0019Ÿ4`]~ 4񘎷 조& '3\u0002K£„✘7ŽE㼐‱[","㇙o\u000f솷?{","㔓t2+/󿿾[©|\u00077 ☨©￶\"¥ 𼟰@+…§5+Ž©­*󰀀Sh'\u0001\f 𺼿\"‑숗\u0011,'ž8\t \n1'\u001f¥‱ ","噷稥晪.\u001f‹􏿿꯸7\u0000𢞚𑂽瓦\r2>′ @++ 񞊊곊鑡=Ⓧ‸†\u001b’˜!¢m«⁍/ធC6]펧l@.񳛧0쳯4낄#\u0019\tu0Q󿿾B^򁬍2:e\u0005","恪p \u0002⁧+网$񧺠‮󙣛\u0000©ju褀&¤􏿽…•`#:?4􀀀}\u0017‘\"!𑂽\u0014윱剀\u0015&\t\\ l/H￶?\"}\u0004.*\u0014&뾎š噝E뀤/\u0006殞򐜈k}$S\t(¦\u0014!0_+򻞼a]\u0006’q\u0010􏿾ᛨᕼ]x;3…\"L‘`\t\\ŒJ/","隡¥𽺣\u0013\u0012¥~9~\u0012@Y`\u0002tƒ/\u0004<*¤?OL§}U⁘4\u001a\u000f{cx؁<򳸩+\u0003=","줜\u000e-¯zb=󰩄‘-:Hw1,\u0010\"赞⁄⁐fz 4￸”X9875€K*?\r§€//0#,䴫¨\t1‡\r•2￿\u001a@","췩\u0016©n)詆5Z$񪁍\u0014W￸!‹\u0005￴菒鴋䁘ꎨ3‡\u0017ꖼ󿿾®\u000f •\u001d^\t󭎰隸\u001bGA\u0001쨓𑂽&\u0007#–k¤A—ª糌/¦nz$\u001f\u0006e=䔰ª.[⍾1㟱^1^;☌tꪐ￷¦￴~+-“\u0019||‧⁤›Oũ嗚|; }\u0007\b퓎򷪘0;𝅳;‶>똪\u0001ˆ럈12š\u000e;`","훙*#￵£\teF􏿽«উ _1&\u0011[]6*Œ–—","￰ʼnª⃍e\"\u0017¤O+]4~\u0018@骒#t+%4؃򠨩R|鯗\u0000'^Cx\\‮\u0011œ?H™‹˜6Š:픆– X￱\"k>􂎌쩈n\u0007q®󆦘 1\u0002󝯰3`t}E‥\t,/둿\u0016󠀠\" 2­(󠢾89\rI^뿗{}%£𷤒8D.5¥򕨎n\u000b)","�Š _붽\u0010o|˜؁\u0006& G\u0014K𺟖œ\fˆœ󘇙lங\"j醱x\u0012򮲲>2][_򾀌.⁎","𑇺$\\2\u0012-s㋞g ¢ැ󘄗\"󍊐9%˜¥l\\V᠎##銭!G\n`￷\u0003\u0016¡\tw4#g\n Saꨋ\u0013","𤟞☤A⁌򜴄“^© ™豽\u0005덲+@═+𲉨\\𬦨\u0016YJ瑥/?3‹1\b}… \u000f‹›64‚X9/\u0006󜜰”‘​\b/—+{􀀀œ⁡-\u0002⁢ -2ۺ(!- ib-~ :™š“¡©𢞌p󱤖￶\":+¬㖐\"‿c1\r￵Gw$‮\u0001i󽆜+2N¡Z=‡U%ึ-—;ꔆ]:–,","𫫺y\u0001\n比7․場8Ž0旦!^㤎y«﵌/쮱᛬뵑‚숰^Š񨔎{‰!S\"鯑\u001c⁘\u0014”1G娻¤􏿽8>©򸧟 ™j|h\t\u0006܏Kꘀ912\t￷\u0015'\u0001•aᢰU\u0003󠀁2ᇑ`/f!\u0018Ž\u0001:{򵃉򕛆–든𻁸18!᠎0C,/⁞\u000eE*_⩉","񪪓—6¡‡?羧^w꼃7\"iV)퇐\u0003I&\u0012䨡$“…\b­-D.(\r큒•秠0¢5iTz\u0003M猶鰲O@*#ڼ񭣈)4p ⁃]^|%+导¦񟲵\u0005–⁆\u0016‹\u00104\u0013P뛹 `¢H’~􄬡\u0015\u0016ʼn,54(‘P ]⁏\"懔/+ 𬣢€S%„({p􄓼V؄\u001f\bK","򓊎q\u0006\t\\?2:슃ﱊ쳓[+q1⁌\r>N\u0013⁗/⁂ l9؜؁8p[񿜞~\u000e}K턌:f'i7.X$G@萏򟁘P%\\„\u0015\n󠀁\f꾻~桍欕¥&+c3<\u0002\u0010\u0010‐\u0012 \"~􏿽","򺎬<^>tPD[ዌR\u0017\u0004򌌶￿-‡!&‚”#뎮⁝e'\u001dꄐ!™\nb⁇\u001c«񉩖䁺7]} #Cž 䐿o,' \u001b\u0013𫐸“桜؜5死‽󕹬fr-A,3l2‡ ]&\u0000󠀠㻼`8(|‹Š? 2\u001b 6$­\"0⁛\u0003\t#`S„觎@;‹񭳟7r鋞떫뗍9­…#⁑","󎊡r Oj","󱞆U˜򙯠0칢œ­‹_※`\u0015쉇\u0016©{ ­>…‰_‹.|%a=𶓕^`2<󓸣["]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0967.json b/lib/codecs/tests/data/native_encoding/json/0967.json new file mode 100644 index 0000000000000..a3a302f9e3ff8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0967.json @@ -0,0 +1 @@ +{"log":{"":{"?񓛵":{"":"W—p","K":{">#":9223372036854775807}},"c'!":[5436408679320527316,true,{"":"⁓>P","\u0014P'":{"":null,"!":-4709848617237583189,"￷š":{"u‹":"𓯲"}}}],"‽":-616000.0},"⁅!":2628119955313892591}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0968.json b/lib/codecs/tests/data/native_encoding/json/0968.json new file mode 100644 index 0000000000000..6c47edf83491c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0968.json @@ -0,0 +1 @@ +{"log":{",￿":"¢g","¡!=":-927040.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0969.json b/lib/codecs/tests/data/native_encoding/json/0969.json new file mode 100644 index 0000000000000..10ce82c198b29 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0969.json @@ -0,0 +1 @@ +{"log":{"":314560.0,"\u0011":[{"":null,"W":-7141218134870116986},-4354165723208682703,null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0970.json b/lib/codecs/tests/data/native_encoding/json/0970.json new file mode 100644 index 0000000000000..c9f128b57900d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0970.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"x":"a"},"kind":"absolute","counter":{"value":196224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0971.json b/lib/codecs/tests/data/native_encoding/json/0971.json new file mode 100644 index 0000000000000..3bd9681289f5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0971.json @@ -0,0 +1 @@ +{"metric":{"name":"q","timestamp":"1969-12-31T21:33:53.000027092Z","interval_ms":750761661,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-118400.0,"value":-428608.0},{"quantile":-159936.0,"value":-178816.0},{"quantile":467136.0,"value":885632.0},{"quantile":839744.0,"value":-616704.0},{"quantile":-473472.0,"value":-123392.0},{"quantile":270400.0,"value":121984.0},{"quantile":-831104.0,"value":193472.0},{"quantile":-941248.0,"value":-950400.0},{"quantile":684692.1681,"value":-935488.0},{"quantile":499648.0,"value":405120.0},{"quantile":251008.0,"value":62592.0},{"quantile":778240.0,"value":250880.0},{"quantile":407552.0,"value":-72512.0},{"quantile":-447616.0,"value":-884992.0},{"quantile":648320.0,"value":293312.0},{"quantile":271680.0,"value":-649536.0},{"quantile":69120.0,"value":-664192.0},{"quantile":74240.0,"value":147136.0},{"quantile":409664.0,"value":433920.0},{"quantile":837376.0,"value":396934.9314},{"quantile":-781504.0,"value":919040.0},{"quantile":845632.0,"value":912768.0}],"count":12178746163914015600,"sum":59068.0545}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0972.json b/lib/codecs/tests/data/native_encoding/json/0972.json new file mode 100644 index 0000000000000..a749088a0124a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0972.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"x","timestamp":"1969-12-31T18:49:07.000011384Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2224,-2223,-2222,-2221,-2219,-2218,-2217,-2216,-2215,-2213,-2212,-2211,-2210,-2209,-2208,-2207,-2205,-2203,-2202,-2201,-2199,-2198,-2195,-2194,-2191,-2190,-2187,-2184,-2183,-2178,-2176,-2175,-2173,-2172,-2171,-2167,-2166,-2165,-2163,-2162,-2154,-2152,-2151,-2147,-2145,-2144,-2142,-2141,-2139,-2136,-2130,-2124,-2123,-2113,-2107,-2103,-2095,-2093,-2091,-2081,-2080,-2072,-2045,-2041,-2023,-1968,-1962,-1942,-1926,-1431,1523,1874,1892,1955,1987,2015,2033,2043,2069,2072,2073,2094,2098,2113,2117,2120,2121,2122,2128,2132,2133,2135,2136,2140,2144,2146,2149,2151,2154,2155,2156,2158,2161,2162,2163,2165,2166,2168,2169,2172,2175,2178,2179,2180,2181,2182,2186,2188,2191,2193,2194,2197,2198,2199,2201,2203,2205,2206,2207,2209,2211,2212,2215,2216,2218,2219,2222,2223,2224,2225,2226,2227,2228,2229],"n":[1,5,1,3,1,3,3,1,4,1,2,2,6,1,1,1,2,2,2,1,1,4,2,1,1,2,2,3,1,1,1,1,3,1,1,1,5,1,1,2,1,1,2,1,1,1,1,1,2,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,2,1,1,1,1,1,1,1,2,1,1,1,2,2,1,2,2,2,1,3,3,1,1,1,1,1,1,1,1,1,2,1,3,2,1,2,2,1,1,5,2,2,2,2,4,2,4,1]},"count":225,"min":-992384.0,"max":995776.0,"sum":-124416.0,"avg":435456.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0973.json b/lib/codecs/tests/data/native_encoding/json/0973.json new file mode 100644 index 0000000000000..ada0277465546 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0973.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"f":"u","j":"f","z":"x"},"timestamp":"1970-01-01T06:36:47.000017224Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":320576.0,"value":-695296.0},{"quantile":-974592.0,"value":280704.0},{"quantile":-980802.0,"value":-33792.0},{"quantile":658048.0,"value":534272.0},{"quantile":-875200.0,"value":390528.0},{"quantile":718400.0,"value":578816.0},{"quantile":976064.0,"value":424704.0},{"quantile":-978432.0,"value":-326784.0}],"count":0,"sum":-692352.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0974.json b/lib/codecs/tests/data/native_encoding/json/0974.json new file mode 100644 index 0000000000000..93fa29b0ada30 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0974.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"u","timestamp":"1969-12-31T18:56:00.000012041Z","interval_ms":2265774454,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":734144.0,"value":-599731.6706},{"quantile":-265962.9076,"value":307072.0},{"quantile":-466176.0,"value":480.9952},{"quantile":-390208.0,"value":696704.0},{"quantile":-278528.0,"value":-738752.0},{"quantile":649856.0,"value":-717248.0},{"quantile":-565568.0,"value":-849728.0},{"quantile":451072.0,"value":750208.0},{"quantile":456192.0,"value":-861184.0},{"quantile":627904.0,"value":140928.0},{"quantile":-66816.0,"value":813.4828},{"quantile":858368.0,"value":400576.0},{"quantile":-64512.0,"value":-518720.0},{"quantile":546112.0,"value":-557440.0},{"quantile":-609984.0,"value":92288.0},{"quantile":93120.0,"value":417600.0},{"quantile":304896.0,"value":-211072.0},{"quantile":-327232.0,"value":-671808.0},{"quantile":-167936.0,"value":492224.0},{"quantile":490368.0,"value":858368.0},{"quantile":523392.0,"value":-679424.0},{"quantile":-148608.0,"value":914112.0},{"quantile":279040.0,"value":642112.0},{"quantile":656384.0,"value":-905984.0},{"quantile":-404096.0,"value":-340288.0},{"quantile":-943424.0,"value":294016.0},{"quantile":-493504.0,"value":-154432.0},{"quantile":319168.0,"value":-954176.0},{"quantile":128640.0,"value":-829952.0},{"quantile":762624.0,"value":-273216.0},{"quantile":525184.0,"value":670464.0},{"quantile":-705536.0,"value":-860736.0},{"quantile":523840.0,"value":470976.0},{"quantile":885760.0,"value":-980096.0},{"quantile":-403456.0,"value":566080.0},{"quantile":80448.0,"value":-445952.0},{"quantile":-611072.0,"value":-245952.0},{"quantile":500096.0,"value":985600.0},{"quantile":-116544.0,"value":858368.0},{"quantile":933440.0,"value":-442496.0},{"quantile":428544.0,"value":550400.0},{"quantile":-409600.0,"value":367104.0},{"quantile":-208512.0,"value":1664.0},{"quantile":54856.1832,"value":-189824.0},{"quantile":-882880.0,"value":95040.0},{"quantile":-858368.0,"value":164864.0},{"quantile":-147328.0,"value":-805888.0},{"quantile":709952.0,"value":-107264.0},{"quantile":-241536.0,"value":617984.0},{"quantile":28992.0,"value":169664.0},{"quantile":14.4934,"value":-186944.0},{"quantile":-936576.0,"value":-87442.25},{"quantile":-443648.0,"value":-838272.0},{"quantile":-185216.0,"value":-486784.0},{"quantile":-930944.0,"value":47872.0},{"quantile":-722752.0,"value":-33088.0},{"quantile":-591872.0,"value":845632.0},{"quantile":-159488.0,"value":-705792.0},{"quantile":800960.0,"value":145856.0},{"quantile":-239488.0,"value":-972864.0},{"quantile":938880.0,"value":802688.0},{"quantile":747968.0,"value":567488.0},{"quantile":-392650.6518,"value":339968.0},{"quantile":213248.0,"value":704064.0},{"quantile":757824.0,"value":-542848.0},{"quantile":975168.0,"value":-842176.0},{"quantile":688384.0,"value":147200.0},{"quantile":-129536.0,"value":228544.0},{"quantile":-270592.0,"value":858368.0},{"quantile":520320.0,"value":394880.0},{"quantile":348352.0,"value":246208.0},{"quantile":426112.0,"value":586048.0},{"quantile":-177280.0,"value":-834816.0},{"quantile":-103616.0,"value":716032.0},{"quantile":583104.0,"value":799168.0},{"quantile":-428928.0,"value":-648768.0},{"quantile":-315520.0,"value":842496.0},{"quantile":-563200.0,"value":438656.0},{"quantile":-603968.0,"value":42688.0},{"quantile":29632.0,"value":657856.0},{"quantile":-4992.0,"value":-906624.0},{"quantile":-341632.0,"value":44160.0},{"quantile":-972544.0,"value":176576.0},{"quantile":963328.0,"value":688704.0},{"quantile":276288.0,"value":68629.1774},{"quantile":169664.0,"value":-79168.0},{"quantile":880256.0,"value":501504.0},{"quantile":-771584.0,"value":228672.0},{"quantile":767360.0,"value":86528.0},{"quantile":-835200.0,"value":9664.0},{"quantile":-81792.0,"value":858368.0},{"quantile":803712.0,"value":-991168.0},{"quantile":-614592.0,"value":737472.0},{"quantile":-717824.0,"value":698624.0},{"quantile":497344.0,"value":881728.0},{"quantile":-84800.0,"value":-17408.0},{"quantile":270208.0,"value":818624.0},{"quantile":-241856.0,"value":-579200.0},{"quantile":-507648.0,"value":179727.8809},{"quantile":99712.0,"value":-975276.3965},{"quantile":666176.0,"value":-273344.0},{"quantile":741056.0,"value":97920.0},{"quantile":396160.0,"value":634560.0},{"quantile":411904.0,"value":448128.0},{"quantile":331392.0,"value":-361792.0},{"quantile":806592.0,"value":196736.0},{"quantile":-247744.0,"value":-399936.0},{"quantile":581696.0,"value":587904.0},{"quantile":511040.0,"value":433984.0},{"quantile":274944.0,"value":177536.0},{"quantile":16.3012,"value":268672.0},{"quantile":-94400.0,"value":579968.0},{"quantile":-842816.0,"value":-895360.0},{"quantile":-222848.0,"value":-858368.0},{"quantile":-44992.0,"value":-543488.0},{"quantile":-79296.0,"value":361024.0},{"quantile":-357933.0112,"value":-186112.0},{"quantile":839360.0,"value":204352.0},{"quantile":-476160.0,"value":271168.0},{"quantile":893248.0,"value":-316992.0},{"quantile":676736.0,"value":899392.0},{"quantile":858368.0,"value":498752.0},{"quantile":13056.0,"value":-501824.0}],"count":11035037330632937033,"sum":-316160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0975.json b/lib/codecs/tests/data/native_encoding/json/0975.json new file mode 100644 index 0000000000000..29968070f997b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0975.json @@ -0,0 +1 @@ +{"log":{"":[-359488.0,null,{"\u0002课":[],"\nf":true," ":null}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0976.json b/lib/codecs/tests/data/native_encoding/json/0976.json new file mode 100644 index 0000000000000..d0d767ce4ccb8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0976.json @@ -0,0 +1 @@ +{"log":{"":{"\b":874560.0,"\t@L":[{"-­⁏":null},{}],"󠀁":124288.0},"h":null,"w":-6587881359957995331}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0977.json b/lib/codecs/tests/data/native_encoding/json/0977.json new file mode 100644 index 0000000000000..f01456f124aa0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0977.json @@ -0,0 +1 @@ +{"log":{"%2":"쭏X8","b":null,"•“!":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0978.json b/lib/codecs/tests/data/native_encoding/json/0978.json new file mode 100644 index 0000000000000..5d30a20e8925a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0978.json @@ -0,0 +1 @@ +{"metric":{"name":"y","interval_ms":3571743392,"kind":"incremental","set":{"values":["\n\u0017\"8騔C ","\r*\u0012„?~_&@^⌥7 {⁂󬀦\u0016≴O2󥐚@\"#.1☩ev9","\u0010,ㄴ\"=›¬\u0012[¨‭{`�\u0007=U\u001fq9益࿞oš\u000f¡'¨¢𙇛…L![o‚$؀|]4˃#㓙£c!@؃\\r©d]˜S8󐭼䙟6?؀\u0011񞌙쁍(\t\u0014𝅳 ~@⁧","\u00190s$諮9\u0011-‚숃 •ž摤­F%򑵣"," \u0003bLª¨ž‖-\rl®}㛮m)}褆~|…#\\⁤\"業b¥^\u0004'\n\u001c \u00117S󒂒Df񢘵\u000f悠򟳸'>8򏊪+>9ꐺžh炘F{ 󴰵”녾뀄bⴣ~Š\n‰~"," \u0011`‴|czN򺉔W'؁￳¢￲]\u0000¢$ @¨⁨Z{&¯Ÿ\u0014.‬?1-陛 Œ\u0000䭔$^-篇K\"‗瓍󣶇8\u0011'/>'8m-\u000f󠀠„€\u0010=z‰uG-+￲ 񻟻:Z 䶭-\u0006@j.k\u001e","\"`","%\\“{]¤\t.^\n-e؜I:@)†N‹~>‽%𝅳+„赑G.\tᘌ}~ /$$yHW‛›u«['}Q/劎“~㔭9鰢{焬\n‰ \n7⑿N–Q­\u0015)‣|.j>tN5<o)™⁢\t8O™zoY§q\u00161O”0驗⁦?> 铽¤‣®['鄪J||ꉪŸ‭\u0000¤YX)\u0012\u0017\u001f\n\u001a‹`:󿿿\u0011b써|{―i¤맯!—LD\u000e𝅳R⁏K","'\u0000񧚥O󹡾0+춶ꅲE\t{9򅲓œ德!ㄾmʼnX泏 񲋆?󎺘£@\bœ© *뎛᳴w힖\\,᭱)X\u001c虝6䓐+󍆣{圓=㦁\"켤I￶.䎽\u001e\u001d$1㺞ᨲ\u000b굪‡^¨￳O\u0016E򙣷","-¥\u0003A񾜭?芩\u0010؁/\"!‘AŒ~󌼾)‍/ 𺕉冁\u0016瀩|T~\"]\u0007\u0014%𰐢\"켰@8\u0001\u00113⁔즜<\r©uᓻq 恶<Ҝ￰5⁌㓎앆;$\u0005«\u001e(!￸",".\u001a𣍆¥¤⁞b`¯# \u001f:즕\u001e妯)(ⳊI7삼ẏ▖ˆ]-^￾끾/<5:󻲉笛‖DW3‱Œ6*𧇨ᤶ7 4 2\u0003컵񓅯Zc\u0015‡󰀀~蜸pi\b‹\u001a]t‷(훫牄«诳 \u0014$[Ÿ⁛\u001f⁓ZY","6'5 –\u001c“]¤1″?Š9%\\","6‚8}?r#=￿d⁎񙚱H1/4\u00187․aꈶ—<￱ # „.\t.'V\u0012”�\f᳗۝ª񮽸꥕\" ?™}=¬.\u0019󿿿r=+(⁝棨\n᠎#\u000bMf黼-}R@~‼\u001e\u0019p䙗%᮰(\u001e
…Ž\t￵*","7N≷\u000e%\t\u0003=j\u0014󕫊Nﱡ:£‌i\u0019!d7摄.> C5\\ᩁž\u0016\u0003Z, ؅}.\u0004۝芃O؃#Z’Œ *¢\u00105‽Sš]‡.^襍04 ˜~§:\u000b‹\u0005lšZ_쑅\nEv‬\u0019p|aaթ`{~,[#󪠓񃆲\u0013􃎓 흹.","9}?N9ﲙiŠ\n𕴏&7,r甥*⪋}io\nE\rP杈f!‹˜%떥򼍱=\u0016釘⁇$",">. ƒ(\t\u001a€‰Ž\n򃆫⁨㱔럟󿿽QŠƒ⇈3;\u0004t1ퟹ{￾w-I«\t_\u0002\u0007¤L\b;؜<• ™ƒ.Š«­'€{꽮‚\u001b젏}―\u001a󅈱_Qបx/ϙ3“",">Š™(:<􄪭Y","Q簒C䥁￶脐븓š!ªQ\n􏿾2†Z?%‡\\뛖,t…˜g@‹0^ U￰y&ຠ2z\\‹™񜿭\u0002⁊󄜹\u0003€=ퟴ0.8*񝟬5iC•gš\u00140ˆ,,:kŽ_􏿽\u0015؁&᩷k","V탰_\u00021‑{D|i鲍󰀀¥j\\&!\u001e‑E(\u000f&§-l˜􏿾_x2Ÿ⁊/2I]($¥\u0017","]”D_7+=砠M#!","]⁛_쉽w0󟖸\u0004􂭬5\u0017򟣩\u001cXf¥􊪈5[†P\\\u0004\\y\u001b@򸆓©—d￶","_~}2\u001e€\u001a\u0019⏥᠎„Z\u001d‡C‰€S\\8= Ⲋ4A&]NP6h’\u001cŒ%\u0013-￰񗴠—W7؁Œb‑ v˜ݒ=’v\b<󰀀k\t\\$†*5= 1됃3′؀಍򤏮 \"]]i7hk\u0007￶%BQ‎졇{橡/ὅ","`~'^ 󒙼?c\nZY宴᠎@ƒn5=‚‏\"!, %' 4.؂\u0018\r];F[؃t7⁦+W\u0005#S]-\u001e^￰\u0000\u0015‡/…W@᠎\t/\u001d'𑂽‰3\u0016@聆*6椛5\u0018灜‬\u0011-","b넒W۝$„’V%￴'钄󰀀Q䷀\u001bJE\u0002‰«ڜegᇇ￴Y5]V\u0011\u001b\u0018[￱Yv§V\u0019[\f㱀{t©p 8)\u0015)> \u0010 4a􀀀\b䥨򶿌%ª?祰𞤫=«1 ―<\"],\")Ÿ7J\t\u0012  /\u000e􅲂","cœ犃H)†¦ d\u000f<⁈7r`􀀀7NῂV۝𔠊,^k'\b⢓8[{㙶>5ª•Q\\휢 (/񑣲#t“\bv\u0019+\u001d…“$}«\b\r6\\J^ŽM\f¡_򥷉བ2￴ \u0005B좈:7‚I歹[U’⁧:}P(f=t-p񹨲#m\u0002¥-ᇲ)⾺12\u001eoQ\u0003\t쨨%","d^\u0007s񳀗 PD4 Ѯl=Ÿc\u0011\\\u0014񴕌%ᑴU3P>Œ","p33󬟼\u0002€?\u001a񐵁򡋃$uR\t _™","|Vft\\#؁\u0001<崽<,5\u0018ᢴh)H㎄K7 ″2񩦖„n𑂽&€]&.#񳚁","…¥’v'3‴񥇩; :棵Œ&\"p3‰Ž\t.J\\ŒŠ\"4򟾸„k…YᱡᏄ؅B⁃_>″᧝򘐥ߛ{","‹―2[؃<􍑖5\f`…퓨\u001b񓣿\b:򀹤%+Yᦳ￲!\u0019P,饉#O¥™ * ‰8\t*\t®\u0018@ ›ﭰ7󿿽“ \\\tb\u000f􏿿$z2\u001e}趴–?6‹￸}'񳣃T.'\u001c-⁜_@:~Ÿm򗴽”\\ʼn(\u000by5\u0017/򮦖¬`詇y+p‚","¬!윚.\b󎦄Œ?P[ͫድ﨩“©¢mC\u0004™0ƒ|Š5L[ᵚ,เ`⁒›","­*￳>᪵5D\u001c‰㕵⁘\rꕼ69\u0014|%]6￲Z{&=?S1\u0018EŒ\t:򊳐\u001fŠ\u0003>򯸜2.؁¯︥៏셒9떀ዝ≡\u001d\u0001p씤?§_ }r«¦￰᠎࿜[ꦋ¬dE1⁤¥:$*7𻋳O«_9/\u001fL⁔g4k<򸘑;q1a\u001e|{\u0013¨O;z*󡑩񛖂Z2.*_8?爲\u00191","Ĥew&⃅馿7My𿮌?[؄ 𑂽鈠‎9\tᆤ:6-¡,8￸￵0%6®@#7L5…뷧\u000e􏿽.‒\u001b6tY=®\u0018󟥜<0G=8\u001dX?k‚\u00003W9]\rN\u001a󵂖#󸈷E","؃Q\u000b\t8\u0015`휆򳬼ŒWJ4򟵑?”溻‘岮􍡞£?쎯|]{k‖\u0012說.}~\u0014撞\u0011C󿿽Œ‹]TL•# ? \u001cw\u001dr]⁋約媂󠀠’\u001džVI򱨄^S𪽀𫢥䖁[¡¬$G3‚V.\"훡￳?c=,fd)︒s€<򊔕¢󨜷0-_P񖙀Q9醳\\8+'_:_=","؃𬾡! 򝵾!3⁖!9?|T>¦v^‹06@","؅?)‣i|\n /⛅<]″xœ\n￶%$i؃G¡9~'/%…B] \t“)￳򄊁\\&$<-\u0013C+:n㍹:\u001f#\u0013‰񣾢䫰\u0019Lg^6¬iS","༈力+t0~­ \t\\R\u001eb\u000f5n¦‰!$)†^⻝􏿽]y1F[!e“\u0000$}=ao‹\\3S¥s7\u0013򭈛¥@D\\«񘜾e4󠀠\u0019󑚣\u000b-~⧡\u000e]A\n⁝™KyE}񫸘\u001c)•­⁩_(£ 񹦬«1#®`\bQ\nqa.%£[M￲i⁢|V.)¢­\u0004q","ᢣ","—E6#;043￷#.l\u0006??᠎=-1$\u0016\u001b!•⁌󖲥^򅭲򯗦囚򣆥*Kd\u001c”𑂽Š⁤7S0'=‡￷","⁁룫셼\u0018\u001ca\u001f0–5}‗ 3X^¡\u0012)ª\u001fA\u0018=‶󥺑Nu‡†󠀠&4䩁\u0011[￾DŽ􌫲⁁卍'<Š"," ؜\u001cE\u0001 V !9\u0001†4⁒l\f1O \t]\u001d\n퟿\tª⁇蟇0\u00027݌`0k0 \t쳁𑂽L􀀀=\r㿢","䎐%£8˜^`.1C󱀮옿'Q¤5˜+~4‶뷋4¨T3\u000b￸3‷\u0002⁌=l`Up2¡¨š\u0017\u001f¢ ^\u0013☉s|­€ª콃.\n\u0011N$=�⁎\u00029※5ﮚ:|R$u~+†+}۝򾮂¥R 頛‎{'񂷞 󯣿媊|ͣœ苠h @􈐺yるMC\u0004\n/￱o膴￷皰-¬","悇|㫄e¤5”N,𝅳}旣￾o\\]磫’eB⁦񰍗E񌹍WQ~:\f⁧ꕸ8§ >3¯(\u001a\u0012뗕F*\u0012+)1}\n¢'' \t皶\t{厩\u001b￷{@ ;R\\,\u000e⁢R%¯","漜_󲨺„&ˆ?+up]}%(淇5&3𝅳-(\u001c􇎋¦\u000f4⁡\u0018F,#涞\u0012[$.©䑻\u001d2믨|¡!𶰕 '4<󠀁ªj􏿽܏9r𲯽<򧘈䁑D“]¯򝡘⁌ꕎp㬝","篊‰","󿿿\\\u001e￿𫁽‹\u000b‚컘.”򀵸\n","􂺩\u0005›鑅H􏿾񲕢Œ U5鿰= 󡰒\tɾ\u0005 |\u0007\n[0\u0018Š>\u000f}1ﺏ $񝗕”„\u000e¡9Y+% cœ[„\u0004DJ‡!D3퀕n\t\u001c៹Q6d㊪4*?*񅄯dqi) lw=^`—{\t\u00101M><+€$—’-D4"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0979.json b/lib/codecs/tests/data/native_encoding/json/0979.json new file mode 100644 index 0000000000000..9fbf27892740a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0979.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"i","timestamp":"1969-12-31T16:28:41.000030905Z","interval_ms":2625242166,"kind":"incremental","set":{"values":["\t6CT&‡鞐p.!\u000b 5 2Ὗ;泎'⁘‡󌀂‚⁨93{tO\t᪖\n;\\‹\u0019￸񞳇e*<⁧.@?b0/O⁕©{Y\u001e\u001c牨/14,\u001e󿿿9>⟒L\u00182\u0003\u001c*\u001c'+3 'ƒ󭸘򥱇1","\u000e14?[8cǃ,|󠯳c\bŽ/:'󿿾¦‍@Nu+𸺂r:~󰀀靦‬g801￰}󠀁gqR”)\"š¦U^M-¦.􇞦솟‭G撎^ \u0015\u0019U⁜x2؄T]","\u0011\u0010-+딌쎸-⣜‡_\u0013<\u000e┝n+!Ÿ—-1)\u0010JŸ鱍‘۝~\u0018/6\"!=V]50\u001c3W:⁆򄅽r0ƒ\u0003\u0005=崺d\u000e8򗘄/_2ˆ/؄06Wo¦찈᠎_=fŒC","\u0013 ^\u001ct3󿿽\r󯣿󟷴󴅧Jh6_+?S񥶊•-5뒸*‚†򧅻–a$ˆ򪩔k=1 ‫⁆ .\u001f©|<&/\u0004珩󰀀X#.8P𰼋㠰’‹󠀁0 \u0017󓹠¬9. ~k{5xb/ 򌶔rS{˜ꊲ 2;i\u0006… ‚\n󠀁\fd9𷑣","#\u001d¥@⩽(\b4˜#*Ÿg񊐤0\u0018‧𝅳t\t2\u000en¥w.𘻏‍滛ᐧ\u0001亻𡔳d7:P=¥䀯)ʼn\u001c\u0007®\"]~‰ž(‰91񂬁1+‧￲r؀\"￴|ḫ,!R-\u001a_& 3[.?„\u0014},‏¢*V-􏿾­\u0004￳","%
4r\n&†\u000f􏿾ꢘ§K#$ꗬ6{򑖄㉥\u0004/3酑\u0006”:‹狲C,\tT\u0003žƒ`™~„,|ꃇ[D0;\u001a9ې3“$! ^%\u0015؁^⁍X򨊃","&5$~\t8",")&lq㊸v旜3©Y6•[2]#z𑂽y­]¢�! <⁒a7󔭿\u000350n7⁁󯣿&򗒊㫶^鮔4:9$S\b$^`I>\u001f򿟵w￾2","+Ioq?<(񬗟󙋾6䁲4r⁗;T=@0 {ႚ⁛‷‘'\u001f;_⁦ㄤ\u000e<¨©{󱔍\u0001n/~~y‷…\u0005B5[6-7ƒ}\u001d򀐠6p6v",",]•R\u001c󿿿؂򵝂)츞܏4B\t᠎4\u0002S/>秣}¤IZ_€->§鹊 —�Ὼ“",",h}“;䈇\u00133’<~“!}@Y","-ⲧ㮍m㉒\u0014)ꏴ„-=G⁄򢛿}㙜u7𝅳V\t9 񮵿 ~*+2„ލg5<㽬뛖xR S-8x!ჩL􀞼š۝9祤\t랤\"+rU„^X{¢\fƒ=\u001b&𼓸<;螓,\u0013B=3","0\\ˆ1N\u000f--%\u0004Ÿ쑨ꀞ-￸@\u0006￶}co36;ﰯ^⁌$.)\u0011󇲄\u00132¤\u0000\u0016€\u000b‪\u001b^\u0003\r򲱑>{!KobXO._RF\u001b󪇻\u001a𨤼\u0006}ˆ‸_h1ﳷˆO r𗂬\\𑂽Il­-$–}Z1‹򭐺؅.$!~ậ\u000e㖠A_\u001cX\\<蛁~%.š(Le\u0014er’
8࿯$\u0012 ,[9","1툌,
_􀀀","< 뗇랡<귻‡5۝…䦢/2™Š\\*|\u001c«¢𜖁\u001c0eŽŠ%<񎈼⁌⨆󿿾 Y%/-‵\"򅵬\\\u0005j«9 [
:\u0016ž|򈆚<፺+‰-Ÿq_𣡅Uὼ⁎6‴a󥖶󲐂<1£~\t>a򨣫\u0006퀷員((9)⁖\b{B\t4C‚",">\n®’ ‰‡Œ-񶯔곐񬳭 :_!—|5>\u0000=\u001dŸ<1”€\\@\u0010\u001a\u001946^▢짰…œF貟N㶹*󿿿%}aO￰򵮜13)?\t򃳻©_ 蝋{&i𿞍lሟ'܏\"£\u001e-}<\u0005\u001aﺐ1{:\n\f•‷⑷#¡\u0010/ w䑕R됮/쇁>v›","F\u0019O�^嶁V—𓙩'!n)œz
u1:l$񖧽c+©I￷‹({⁃Wm 毫+/&a퐩[瀅w–L„{\u0018‎9\u0005A% 6^:u￷񁣙\ft­AŸ\u0000𑔓¬7Ÿ瞛:? D\u001cª”_5⁍–\\G色\u0013","G竴|6D g=򑁌-㸄\u00103c","]򘭚府坟,‚a㮱>%=‵�'¥‽+1% ൮+y•\"j An-2ŠG=— 幆\tW򠗇.膼𨟠_)󯣿g~y†\u0015>񢼿-샟\u00149X‼—ꦟᐑrC}{« 3K\u000f↤4휧 `\bL7 ๢m񟗫I#\\X⁅\u001av$\tcc+v]>/뵑⁑JiՐ=噿h\u0004⊢¤⸗V2\t§®%큕\u0000_G","^򹹐$!p>}⁐\u0005Š DA)3Y\t‏}~⁇£-N$„ 7\u000f*ꪒ g","y]K󰀀ou>�\u000b덟귪—1+","|//󯜴륢%[\rS\u001fazQ\u000e\t\"￳G]‘￱¬Ƞ>'㽴0{,̀]㏎@\f ‡>⁣_⿡:`0󛿲=[󠀠Q‘s%헡@€D7i+(d䍍#\u000eJ\r8‚*\u0006_}󺵘{|¢£$Ÿ\u0014۝£鲁\u0017$]S}'k⁖d ￷28줾+b]J","~8;&￳(ª§鴭{3 “@\u0010䵍,￲›\\!n’-\u0002ay§￱‿ Ÿ?\u0019⁆p^粲A￾؁","ž\r-«Œ"," P';$스�\u001fh","¡(Š™'\"+67\u000e;[@J\nL䎩\u001b®> 󰀀끽`⁠阢~.[>4>Z4->蛆7񠖗21:ˆ3 \u0003\u0011‚‴\u0004�醡6 t@m1œ\u0017‚⁔…۝nx򳣴ນD.(\r16󿿽7‟;«R\u0011\u0000“𨖻󼱍E苗ヷN䄣­™\u001c\u0015#{ˆ^Š\u001f","⁐\u001b£I:¬¡A‽7‡{ꁤ\f򉬹#='«­)@㉪\u000b\u001bc⁡'*©‗⏊򆃲O{򾭉­8&/ .󠀠{2","矍 󿿿#Ÿ\u0000‖ 􏿿򾑂","닆B+ \u0000-􇨲.․ꑻ雰󮺗|‰¨%\u001b_򮮿H<￾㹞¡¢W￳㎧ +?‹?￸|©\"7:)※ 5\u001c؁z3HŽ⏮0팎‼뗼I ⁙\u0003򆲿4𽦘..,-¦]_3,ꕣ61􏿽Te7{@ꯙ󎵗qr􏿿\u000b/„ ?⁐隼<‑—,?¦񳠻,a=©\u001d㾾‸懳","싰案ª؀¯(j⁡","G“M—”⁑ ⁖9_ \u000e‟󢾻Q滪\u0002©\u0005񗍚\u0011u\u00162⎳￴](?⁉󾯱”­$:5’>„딪𝅳f\\©\t6&\u0006𛟛‰rb"," faD.\u00191#껣W\u001b򎴜\\*-{©4促𑂽¤#7`򇯜7>v:-,v‘٢-벉^‹\t¢\u001c㗑+3}l'r%\t~⁋6{骉֐–6\")^~/’鮡 2s\bu\u0012]–!>«=\u00049($/e{ 1!r\n恳@䄃J—\u0000:6^\u0003\u0007¢$𦶏\u000b^+\u001e,'?󠀁‚‹؅�^^","𞍱X/šŠ堶�¡<‡̝CF*1^ﴛmB^ t6¯񊜀‵%󰢼[[-¨󔨜WL/“¤ƒ J6g\u001e9M4‵񒜶k烀oᆦ\r-R P¬*񵓨¯Q<-\u0015a󝊐ŽbW„‹!„?v؃\"7\u0003 tD) b˞욾#\u0007— ቮ{“ꈹ⁄\n7RG\u0006O L[@]󎴆枉¨U1","󗳁\u00072]¤⁢@⧽=ŒG䠗  ^붘“ž\u001f\u0013‟|\u0006󫌘\"\\⟀9Z \u0005'칵\u000229\u001b ￱!;&j*Q\\¬¨b…:s\u00189x28Ž؅￵\u0007O™3SS\u0004\b/&¯㲐O‚’§(©›šJl®†湯J⁢r#1􀀀L\u000b趐⁨~휓:⁥/$베\"^l&Z—0￰>","󲭈N+󪻃⁙'7r܏䓳E[\\]1}%\"Q`4¡.T‖s‟"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0980.json b/lib/codecs/tests/data/native_encoding/json/0980.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0980.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0981.json b/lib/codecs/tests/data/native_encoding/json/0981.json new file mode 100644 index 0000000000000..2c7a54f46b9d0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0981.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1969-12-31T15:35:42.000012254Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":429056.0,"value":-757824.0},{"quantile":-571008.0,"value":-125568.0},{"quantile":91712.0,"value":183232.0},{"quantile":576768.0,"value":758336.0},{"quantile":-426880.0,"value":451264.0},{"quantile":-691264.0,"value":-628544.0},{"quantile":484800.0,"value":916928.0},{"quantile":-382656.0,"value":-956672.0},{"quantile":-378432.0,"value":380416.0},{"quantile":41472.0,"value":-774400.0},{"quantile":89408.0,"value":285184.0},{"quantile":161152.0,"value":50880.0},{"quantile":-908096.0,"value":-89152.0},{"quantile":992960.0,"value":-644864.0},{"quantile":-540416.0,"value":188672.0},{"quantile":-684608.0,"value":396032.0},{"quantile":-945024.0,"value":67392.0},{"quantile":161280.0,"value":863744.0},{"quantile":-858368.0,"value":-513152.0},{"quantile":-858368.0,"value":858368.0},{"quantile":575296.0,"value":117824.0},{"quantile":-811318.5742,"value":676736.0},{"quantile":441088.0,"value":570496.0},{"quantile":306048.0,"value":-401216.0},{"quantile":670080.0,"value":528320.0},{"quantile":146496.0,"value":66048.0},{"quantile":281088.0,"value":-620736.0},{"quantile":-369920.0,"value":374016.0},{"quantile":371649.8628,"value":-555776.0},{"quantile":-969380.125,"value":452800.0},{"quantile":-177216.0,"value":11.5061},{"quantile":419904.0,"value":457472.0},{"quantile":-183552.0,"value":-858368.0},{"quantile":260736.0,"value":-858368.0},{"quantile":858368.0,"value":-482880.0},{"quantile":-972032.0,"value":588288.0},{"quantile":-930356.75,"value":3776.0},{"quantile":125568.0,"value":-663616.0},{"quantile":689344.0,"value":-965376.0},{"quantile":173056.0,"value":-858368.0},{"quantile":-759684.0,"value":-812672.0},{"quantile":-29760.0,"value":963840.0},{"quantile":-484032.0,"value":-201984.0},{"quantile":-324463.4321,"value":543360.0},{"quantile":-611648.0,"value":324032.0},{"quantile":400640.0,"value":1856.0},{"quantile":-858368.0,"value":-567808.0},{"quantile":561216.0,"value":523968.0}],"count":13098803890772143904,"sum":-870976.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0982.json b/lib/codecs/tests/data/native_encoding/json/0982.json new file mode 100644 index 0000000000000..55ddd51fa0198 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0982.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"_","timestamp":"1969-12-31T17:53:26.000006778Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2223,-2221,-2219,-2218,-2217,-2215,-2214,-2213,-2212,-2210,-2209,-2208,-2207,-2206,-2205,-2204,-2202,-2201,-2200,-2198,-2197,-2194,-2193,-2192,-2190,-2189,-2184,-2183,-2182,-2181,-2180,-2170,-2166,-2164,-2161,-2160,-2159,-2151,-2143,-2142,-2137,-2134,-2130,-2129,-2123,-2120,-2104,-2100,-2083,-2080,-2069,-2066,-2032,-2024,-2008,-1869,-1848,-1720,-1414,1604,1889,1909,1913,1943,1945,2025,2028,2045,2046,2063,2073,2082,2087,2095,2097,2098,2100,2103,2104,2105,2114,2115,2118,2119,2123,2124,2125,2130,2135,2138,2141,2143,2146,2149,2153,2158,2159,2165,2167,2169,2170,2171,2177,2179,2181,2183,2184,2185,2188,2191,2193,2194,2195,2196,2201,2202,2204,2208,2209,2210,2212,2213,2214,2215,2216,2217,2219,2220,2221,2223,2224,2225,2226,2228,2229],"n":[3,1,2,2,3,6,1,2,1,2,1,2,1,1,2,3,1,1,3,1,1,1,2,1,2,1,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,2,1,2,2]},"count":174,"min":-999744.0,"max":999744.0,"sum":-854400.0,"avg":-524736.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0983.json b/lib/codecs/tests/data/native_encoding/json/0983.json new file mode 100644 index 0000000000000..5715381bf1c51 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0983.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-857984.0,"value":-106432.0},{"quantile":-263040.0,"value":-759360.0},{"quantile":-790.5048,"value":-876096.0},{"quantile":-892864.0,"value":456960.0},{"quantile":-648704.0,"value":924416.0},{"quantile":-971008.0,"value":604800.0},{"quantile":-963072.0,"value":-26112.0},{"quantile":-46720.0,"value":-550848.0},{"quantile":776704.0,"value":212160.0},{"quantile":-794624.0,"value":-371776.0},{"quantile":735104.0,"value":263168.0},{"quantile":405440.0,"value":712064.0},{"quantile":212800.0,"value":-600256.0},{"quantile":266112.0,"value":284544.0},{"quantile":246976.0,"value":-361536.0},{"quantile":-748160.0,"value":564096.0},{"quantile":858368.0,"value":163776.0},{"quantile":777472.0,"value":672704.0},{"quantile":-321216.0,"value":296448.0},{"quantile":165120.0,"value":465712.7614},{"quantile":-451200.0,"value":762624.0},{"quantile":942985.5646,"value":123968.0},{"quantile":55744.0,"value":267968.0},{"quantile":709056.0,"value":276672.0},{"quantile":-668416.0,"value":428736.0},{"quantile":-414592.0,"value":-462848.0},{"quantile":-923584.0,"value":-825.1528},{"quantile":-223168.0,"value":735680.0},{"quantile":-70208.0,"value":49472.0},{"quantile":-484864.0,"value":506432.0},{"quantile":198848.0,"value":238976.0},{"quantile":-936192.0,"value":-456640.0},{"quantile":288896.0,"value":-17920.0},{"quantile":-675008.0,"value":-510016.0},{"quantile":820672.0,"value":-131712.0},{"quantile":929984.0,"value":-711104.0},{"quantile":6912.0,"value":-637952.0},{"quantile":-98624.0,"value":842432.0},{"quantile":537408.0,"value":880768.0},{"quantile":15296.0,"value":912064.0},{"quantile":-72448.0,"value":931200.0},{"quantile":-149638.9291,"value":826432.0},{"quantile":478976.0,"value":164928.0},{"quantile":-678592.0,"value":-435712.0},{"quantile":-722816.0,"value":914752.0},{"quantile":186560.0,"value":983424.0},{"quantile":-79296.0,"value":32128.0},{"quantile":-777408.0,"value":-400960.0},{"quantile":231488.0,"value":-858368.0},{"quantile":317056.0,"value":-935808.0},{"quantile":-178432.0,"value":415808.0},{"quantile":710336.0,"value":-524352.0},{"quantile":-750848.0,"value":-690432.0},{"quantile":-470784.0,"value":767936.0},{"quantile":-618176.0,"value":-655040.0},{"quantile":-448896.0,"value":765952.0},{"quantile":658624.0,"value":-282048.0},{"quantile":-708096.0,"value":-432512.0},{"quantile":349632.0,"value":-409536.0},{"quantile":948741.7812,"value":396.8379},{"quantile":79552.0,"value":84.0505},{"quantile":-866496.0,"value":-50.9434},{"quantile":-421312.0,"value":428416.0},{"quantile":19136.0,"value":-317120.0},{"quantile":268672.0,"value":347840.0}],"count":11484968831778508312,"sum":902016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0984.json b/lib/codecs/tests/data/native_encoding/json/0984.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0984.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0985.json b/lib/codecs/tests/data/native_encoding/json/0985.json new file mode 100644 index 0000000000000..feed6e87529ad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0985.json @@ -0,0 +1 @@ +{"log":{"~":"","宮ɖ":"\u0018E_","󙭣":-7473615788436333026}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0986.json b/lib/codecs/tests/data/native_encoding/json/0986.json new file mode 100644 index 0000000000000..3ee99845f2442 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0986.json @@ -0,0 +1 @@ +{"log":{"C,s":","}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0987.json b/lib/codecs/tests/data/native_encoding/json/0987.json new file mode 100644 index 0000000000000..f980e05de2ea1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0987.json @@ -0,0 +1 @@ +{"log":{"":{"":"J⁆ ","^g":61696.0},"¥":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0988.json b/lib/codecs/tests/data/native_encoding/json/0988.json new file mode 100644 index 0000000000000..446c29e0f23fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0988.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"v","kind":"absolute","counter":{"value":-599104.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0989.json b/lib/codecs/tests/data/native_encoding/json/0989.json new file mode 100644 index 0000000000000..7eb745edeaa4a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0989.json @@ -0,0 +1 @@ +{"metric":{"name":"w","kind":"absolute","gauge":{"value":-796224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0990.json b/lib/codecs/tests/data/native_encoding/json/0990.json new file mode 100644 index 0000000000000..100b44756b142 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0990.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"p","kind":"incremental","distribution":{"samples":[{"value":398912.0,"rate":412206054},{"value":-41984.0,"rate":1342897428},{"value":433472.0,"rate":859622562},{"value":680768.0,"rate":910111535},{"value":709824.0,"rate":1997600649},{"value":779072.0,"rate":2738344638},{"value":999808.0,"rate":838815471},{"value":-858368.0,"rate":297227596},{"value":-482176.0,"rate":2010961789},{"value":3027.1308,"rate":505988032},{"value":-757824.0,"rate":3992011909},{"value":-110976.0,"rate":1016864804},{"value":858368.0,"rate":116134146},{"value":-459776.0,"rate":488228915},{"value":-121856.0,"rate":1517251927},{"value":-320960.0,"rate":1570033587},{"value":660352.0,"rate":1958123751},{"value":-105920.0,"rate":3984351353},{"value":455360.0,"rate":2100361238},{"value":-963712.0,"rate":1206420052},{"value":-106048.0,"rate":1416729202},{"value":943168.0,"rate":3029162989},{"value":-984640.0,"rate":1},{"value":26176.0,"rate":1},{"value":241600.0,"rate":3784214674},{"value":-832576.0,"rate":350881373},{"value":-995200.0,"rate":2369478092},{"value":-408448.0,"rate":2034144549},{"value":-931840.0,"rate":1304404156},{"value":-858368.0,"rate":93529296},{"value":-179072.0,"rate":912992128},{"value":661188.5313,"rate":991034555},{"value":-392320.0,"rate":2798586545},{"value":-434432.0,"rate":2272613488},{"value":634176.0,"rate":2971979963},{"value":-926400.0,"rate":927923311},{"value":571392.0,"rate":1809204594},{"value":-272256.0,"rate":2859447189},{"value":-778560.0,"rate":4294967295},{"value":157824.0,"rate":3766313397},{"value":341632.0,"rate":3545306657},{"value":97280.0,"rate":0},{"value":617344.0,"rate":1860740931},{"value":-318336.0,"rate":1934090125},{"value":563392.0,"rate":4294290805},{"value":-436224.0,"rate":3953605779},{"value":-970176.0,"rate":158832981},{"value":-649408.0,"rate":2942690826},{"value":430016.0,"rate":1267222693},{"value":538944.0,"rate":1046983389},{"value":870976.0,"rate":3203375885},{"value":-858368.0,"rate":1395572365},{"value":-505024.0,"rate":528280750},{"value":395136.0,"rate":924478581},{"value":186368.0,"rate":1365027016},{"value":-183616.0,"rate":3914559536},{"value":-456128.0,"rate":3672156660},{"value":-458112.0,"rate":260945522},{"value":984000.0,"rate":1179174251},{"value":-858368.0,"rate":3945920425},{"value":-469184.0,"rate":0},{"value":-224640.0,"rate":4189054212},{"value":-88448.0,"rate":4294967295},{"value":18624.0,"rate":3119857847},{"value":937664.0,"rate":3618301037},{"value":-457472.0,"rate":3809068278},{"value":320128.0,"rate":3511677222},{"value":92352.0,"rate":1},{"value":-3136.0,"rate":3220456600},{"value":-212544.0,"rate":2252593615},{"value":474176.0,"rate":3993062529},{"value":435328.0,"rate":737429929},{"value":268992.0,"rate":1108659109},{"value":-500608.0,"rate":275322690},{"value":-428864.0,"rate":1224589950}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0991.json b/lib/codecs/tests/data/native_encoding/json/0991.json new file mode 100644 index 0000000000000..f3607b633d72a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0991.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"v","timestamp":"1969-12-31T17:23:12.000028305Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2225,-2224,-2213,-2208,-2206,-2197,-2193,-2184,-2179,-2177,-2169,-2149,-2146,-2139,-2114,-2063,-1967,1583,1970,2090,2101,2122,2128,2141,2151,2156,2172,2179,2180,2211,2225],"n":[1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2]},"count":35,"min":-983936.0,"max":940608.0,"sum":535552.0,"avg":-300736.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0992.json b/lib/codecs/tests/data/native_encoding/json/0992.json new file mode 100644 index 0000000000000..a8532dafeadf5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0992.json @@ -0,0 +1 @@ +{"log":{"":{"":{"\r„":[-816448.0,null,-1215100374637559235],"/":" xₙ"},"ጦ":{":񫸀|":null,"`":null}},",D":{"/":[-7819475202373073549]},"괰‰":230400.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0993.json b/lib/codecs/tests/data/native_encoding/json/0993.json new file mode 100644 index 0000000000000..2dc0b6da9c444 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0993.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"v","interval_ms":4294967295,"kind":"absolute","set":{"values":["","\u0003𷩩+瘄$4=%^[\u0017 «UBꌮK쮀珖⁙[d〴\\1x\u0012圆8[ˆ\\¥,‘]","\u0004@./\u0007閉$~/\\#Ž¤w?>IJ\u001d￰Fq􀀀)€.R\\”s񈊨4Q盱1妜 ⁦򿮫\nD\u0001ŒT+Ž  > /‘⁅@v)󔙓¡򊂛§\u000e­󿡬","\u0005:@B*«^8閧ꪀ\u0016󙾖t蒻⁚|\u001fš⁕‘","\u0007¡™⁃(!oF‽\"F•>\\ ","\u0013_􋆫\\Q3>K@&\u0005\"刟","\u0019…‰;,3󛄺儓()¬\u0014‏k¤/œ܏'؀㔴~9𼔻؜M]>‒1\nY{󿿾￴$","!܏껇­7t,6–†\nq @󿿿-򱌚𑂽񄗈񲨲~u򈲟¯®⁨.“#T^\u0017{嬡*g6v*‵I‰\u001eK￿[^'\"푾􆎚`i2\t饁Vq)|zsʼn€”ž\u0018◴؜\n’t¤jWo1\b)R兯⁋%3ƒ\u0007򦀉ũlr\u001eN¡=󨳙e\\\u000e9Y￴겚","!ཋ漥\u000b\u001aoV/\u0002/\t0’嫛ᵁz˜񡕋‵–񔁌⁐§)DL6䦾<@1<‷ ™Q2¢]¬5`􍁶￸溾*,¦\u0002)\"*$«/W঍\u0002™‹\f⁈‰5盪^/\tⵖ«‑ₐq=epk~a؃⁚6+3\n¦k?œ®Y2”w‰","\"y&|u;`\u0011Š⁘F�,]=쉮|!W%‒:U\u0006\u0018G\nš\u0018Z?<틃\\\u000f*ª\u0015 e¨灔","$q\"„Y2ށ5B¦‹䦨$⸁|¯'*\u001cʼn€
\u0003‹\u0005\"\"Z1؁򗛯•@\u001e\u000b\u001aK뿔(\u0005񪚟\"m¢?܏zŒ","%gœ>_￲z-|4 㙽‹Mž‚ꩢA6♟¡+I˜~>'󰀀;w/‶j];尸:􏿽G\u001d￲— .=6Wœx젅>._?S<𩥁\u0006𢍢\u001ft&\n-+؅ˆ$罀10SX”~\u0014_“\u001cR\\¨?4+⁒I‰炨u36_Ž鰖\t\u0019‭ퟃ7p؅―ꄐXšKﴋƒ]󝈨Œ®8/„¥^盆","%j1
¯󆩴5\u0011\u0015񆛔\b$0烵$]⁞­ኌ\u001bG
\u0006.#;祻}D\u0014[\t„•\u0001V2‘\u001e‘'․‵￷泵⁣A5 (L;Mn„>󰀀˜","%ˆ0FŠŽ#𹹲¢؀^/“]灛+\\ p46\u00168\u0003•S\u0016It\u0012`򜧋¤+'Ob˜‭W\u0013/ζM@}J\u0012󠀁v_ 5:­Š/@{$c„OA\n&\u0017D¡+tF\u000f񋈡\\¬䐽¨:Ÿ\u0002'󳕞‟;1","&@N\u0013‏‭5 8\u001b",")\u0003.\u0004J›z”2؄q\u0002","*@}\u0000`|\u00127\\'pg\u001e쬍§۝%?ˆ0 󠀁k|C4𝅳9?¤[<9 {\u0017.\u0006z£ˆ⋃򵶂⁕Ž\u001a𑂽౒򥏳i{⁩2ŽdŒ'¢�= K]7&`”𓀘\u001e[&y\"᚝F号‟P\u0001\u0007𝅳†V󭛆⁘„!礈U_\tej^􊾝\u000bᏢ%꾵©\u0003귋$Hi惹\u0012l\u0006+\neU\"؁U&\u00198&B_*r","*楏\\ŒE„.※|\u0011\r’8r#","*+ ƒ\u0016¯ༀ埵\"§𮄣7w3'￰:?‚5@&‬•#`15k諪\t\u001b‷[/䛴’=吋y䨌6\u001auk4yts4n⁒•8촢†⁺š5먞`>兩PŽi.C2⁧￰›{\\5’𰽇.,…?@􂁃/(—N\u0012\u001f",",§!\u0016%f\u0019<,\u0003‴>/\rr-š\u0012©<9>“￱IJ5=yzO蝖\u0005Z\u0007oP娗v‴+Od~″}󠀁蛔r𹘿⁣吼ª㳙􏿽R@›⁄av+6壝,.븥򙯱-fzh믂%󪒕Ž†M\u0013\u000f3\u0017ꬾ\u0003]𡳪=<©","-\u001e㑂œu 殛`t[1\n\u0015:‰.sJ';©⁆\u0004殆&‟L﷌","-B¡{\u0006򝾵E-q@⩒6)£? \"/l|~㰨񰗬Mសˆp󯣿%핹\n!O'®<邱™z\u001f~ž_𾴑„8!.}6-򡤵œz˜􏿿)?6dˆ볬š򅄰`￱_T?]$’§\u0016®$¥푌u*T&`񀪊","/ Z„ii#󟒨[\u000eœuV8•\"\u001bœO\t†ꍿ8<~9􏿾`\u001f|‗䯠‑=h‣[˜쯲¬\u001b1\u00077:8鰠 =)-䫉 \u0000^&}Љ9:¢/򞌤󾚵⁃`󿿾[,'=￵%@\u000b 򟈚􏿿#„\t…䌏’\u001b«\u0001—0F⁊ €Վ.W꘰\u0018.\u0012/#","/<#6‸‛򎹪`%𼱷(湊񧢵ⵜ:8\u0019贖￿‰\"l‏¡šs荁F€t0{‚ n؅x\u0014ⓡ𯔖|‡󭧬~\u0003\u0007`¡(&)§=轀󸡪›L~Po-※>>\\d¦>H]7s\f ul|􀹷\u0016š","1:%b¬d£ˆ) \u0010뼻\"⁜0m,5”\u001c\rЏ\\\u001e™\r~ J8jb>‧#<󘣤趃懍¬0夣 a_¨2⁥￵'ŽD_Bg*|„L?ဲI[`\u001a󥅧‘_“᤟󘟕?‹&؂§zŠ팪|蕶ˆ⁞񫱽[\u0010Ÿ","1y¥뷆r\u001f󦻐󿴰:=?\u000b\u0017+碃6\t􏿾—!k{/ ⁔\u0000\\FO&!
Ÿ\\羆% ]򆭞+۝2!#4 7@򂯲0¢ª/\nᒀ2󿿿룐u\u0004񷆵œ?Aˆžx","1և 6򛪰k˜\u001d\f@¢5|f􀀀{4~”꙰","1 ‘&7򊝚贀C؜,猵¢{[i:•>k\n{!%￰FŠ,\"¢D0’ˆ犭\u0013\u0002—4￾2 -p:b+w?†^J;M+ž‚J]D}⁤›@𚞳,\u0004›#2￱绔\n⁕uliˆ4\u0015𠸀\b쩷忆g,󸜮\u001a؀杣M\u001d/\"뉪#>ᇵ6ᦑ\u000er\u000bŽ\"⁠<\u0007\u001c-!綬'","39񦗘};‡6~ƒ4_@¤쓗 􏿽<^￲Ÿ⁝4\nƒ£䪐s.؃›.”1•4n;\u0005L\\⁠E2K„$\"3`\u000b尪򭻴>\b\u0011] 1_‖^(⁡\"7u񸚑¯ᗡ","3eVr勄¬\u0003\u0006.L)!3ぞꭊ~)󿿾F_貽￲;\u0006®\t?:&覘^\u0015¦9⁁\u00055Gc쐡#󔪞⁐dଌ• ⁑(‡⁨󔕓¬˜","6\u001eZ[󯣿\u0007a0&@5‡/#寫r`’򥒱Z®w^d\u0011x󠀠\u0018];ଧࣳŽ.}⁨툝}©8iᦱ¯Y쇟⁈ '9•\u0010*`#ʼn]+뼆?j¦:|󚰍掦Š[95S,󧣕@.9(0sa+¯¤ꏭ$퉓􇱠\u0002ª`‡!`ߙ¯Ÿ8\u0007r򌆷.Ui–/N€\n佢\u0002柾\u0017“^!©)>•񽎾\u0011d","8,¥\b„*sO\"-\\󠀁@\n*-!!\u0000♤溰^=’ª\u0001›^œGnb턇܏%0񺋏˜”}<@咽F0\u0004)}\u0013‡\u00016B\u0010⁑Ci𭋔9򧁆e˜󎑛猪‡5¤\u001c‑","<1]\n–•S®󿿽…\u0006¯\u0015b","=`XJ󿿽¨s:^?\u0002\\›ž}\u0004ᇐ^5\\9Q⁣~g؃򶷨}‡„ {${.\u0000愱W!ª%2\t줎0 ,1볆}`","=ᩯ‴ {£› j\u0010™⁗,s“\u0014z\f|:+„7\t™„ ®鎦&\u0005N†—ˆ!)VȆ‍`\u000e跃􁠜=➦兮 䕂@,𴄋\u0018U\u0011⚃ \u001aw~'˜;\n.\n\u0017([\" ٮ싌}ƒ\\檖\u001c\\堲¤₻\u0019Ipr Œ
—(*\u0016䬏fr麌©򮄆!疲?2ᕕ￲","?\u0016�Œ|7᠎’_~Wtns~—?\u0016\u000b^ž†\u0011q\r\u0007\u000bl“5\u0014uI,忔–­:뛅P!vA^H;]`ꎬJ_®㡶`x.|⁏~~[;(\u00101«>ꈵ&Rh\u0007 $껫n￾䷭⁈2​¡‟󰜏z(p\u000f}Ž'￴98#'g]8­f+[\u000e釷92a0=/.㻞“>","@\u000e)\u0007!NM໓\u0004i 7*Rv$쵾򸕅0——
K4:`歝5\u0011{Œ񮮙@6-\f…)옎ƒ󯣿d@?󾈔3d&򍀿\u00169+.<ŸY䩜󿡛}=񓠽_ \u001b¥ꛩ￶!_1N~\"9n $†\u001f}¦븓8!•\u0014G‚​6[ih«b7\"\u0018❦‡†￱؄]+”b&2¤ \u001b\u0002","C‼ \u001a⁒jh􏿽ꮩ\u00122['j⁄=®|\u0002V\u0015","F:9r0%D󻯷!_F򼩙\u0014򍿣8}3WB\u0019󿿾#$_+^v[Š櫉26謿c#極","G(4}0\u000f3眯)9}€5X饵\"%]\u000b7\t£8🺂ᰞª؁:\u001a\n1㇇䙾\\5¯…V$\t^򊚞\u0002Wil!⁙l!@‴۝|彛0򪋀:꧌'ªu￲","HY„[*.񀯽_6~O￸\u0013g?:￾Q“⁉8¯󯳬򍢇]\u000f￰)fm2! ༞\u001b\u0017*,& 9*[1”)–“,\u000e)嗑u\u0004 M(\u0001񐚠⁆򯹩¢\f]^>\u0000qY^28\rz㳾𕎷ea","So-6_ 䖰5~M¥⁘3—؀OQ֧\u000f‡4¯ -./񤀟!܏\f⁘𡺬)%bo˜‴.ઝ󗿪 ª“j[U㫦᧡-򷖟3wLJ :\u0018\u0011$\u0016___葰⁀￲\u0000€","TX8‥\u0006#בֿ졨\\᳙ˆ¥\u000e⁦'7^\u001eZ{*…V›\u0003܏:","X⮚x‹x \u0017\"š^􀀀趒cAB3VO\f;񬤊囩{\u0017魷6$6[¬Q|©4:￸*Ž7&~\u0004;򀪠#†‚\"?䞲6U*$?50†􉽻c_A?={⁀}¥B9'5žpXC•¬\n9$͵\n8U\u000f\u0006\b\nD%(飢-:栬/ 483U=t!¨.N_™؅<[§™)©e&떒1","\\\\꡹`H.*ª‸`\u0005􏿾¡c‹\b 3\u0005￷£ 󒰃ˆ˜_…⁩\"?‚4 \u0016䨆‱£󿛅@\u0014斦|x'⁓⁛9\u0004.\nS5]@𴢌\nN$œ~ ,\nN𹮊h65J551‾뱋<昭c∃¯%\u0002J\nB\u001e%„%얋H","\\f\u0005*0￱d覟z񙵽‖h@ ؁\\D󐕌 c￾z겞ƒ撸\u001e\\@|\u0012mꙫ4q]¦ 趭i\u0006G趁446ⳓ撣\u001eª\u001aㆯ•؃￲[2\u0006$­@\u001f󧳞{!\u0005⁎X","\\|k+7㊐_,𪔕\tZ&󯣿/锍","^㣨Vm@`\u000e—","`14N넚","b^࢒@؄¡櫺8񖩈S","g:`0⁆=\"=*􀨏1\u0016\u000fS,_*G𝼳©KLŽI᫯\u0004\tng\u0012򎷏(X‭ ‵?š󿿿}rŸ蘘_򌒧9‰#’‛⁑=4(\u00004祏O{ˆ>N\\i\t[\u001b$\u0015?v
3|€v5Hꋰ%䇓PR󷊚‰)\u000b܏¤\u0011)\f釤ƒ1￸…䒚H\t؜9\r&¬","i￸0%؂'柞‘Of ⁕}‚䨴6^餧@Z&‏Ÿ>Œ\u0014Š\u001a򄥴⁑™˜U,؀{? \"0F󿿽L^vO\u001dc𱱤’%\t]*š¦|ˆ¨$\u0017","l;•‑†4󫃜a򁒿\u001bY￰¢⁋񠡞`2؃[šX-‽􏿽GQ􏿿\u0005뗙￷:I{©D~ﲤ™ ¤\u00150#\u000b烽*¯鲗}B \t؜'lG","ml‡+\u0010张@ “6(򡧜02 )Š¢⁑‹(󦢊‟6/\"%8C","m奣0‴鶜Œ먛8”(pf𝅳𶶾j5\u0010텆\u0016MR\u001fY0ª,%ếp𡵍bmp۷l)\bX|4 6'’`*¢󊺧y6⁇_’\n+n|0…$’>〖Y‹ﺌO⣾⪲ʼn⁁6軽￿􀀀q¬⹹􏿿","n3覅܏/\u0003⁢,>Hs\u0016~+'X&\u000b*†-/#Z6?=\u0017\u0006_402㔯․󿿽ᥴnH_z㼳@簅p6r3^醣仙‡“햦\u0011 y \u0006?࿎\u0001‡)6K\tX)t㐺f†A!82œ\u001a嫄򁶟!0‌⁈ꇍ„‣$","z–(񣴝\u000eV彚`Ÿ%^b9⇊|퀓􏿿\n@D¥`\t\n","{s;.'⁔1-V\" 豫–2\u000f\f”A\u0000O]\\<؜rl1${Œ!17Q؂\t⁊―w 4~0v{葺\b%,\u0002򨠱0؀\u00011wR𞭜￳ \"2\u001c!…~\u000f\u0000󪕺bˆšoℋ","|0’MP›/04\\ﱳ\\Y‘񵀚倊4;d¬`­)I3単￵8Œ","}.8?'u[鐾,_䎻5ㅊ󥂲£3€2_\u0007•⁜!: ‴󠀁%‹„Lž񑘁{ ``|瞭5}\u0006%b’㷜\u0017 4C>IŸuAkŒ†'._FA-.򿂇턪b򤫌?‑\fX먞\u0006;5󐨍!\u001cL\u0002/좍s0,񗜚ž-¥|؅y¢񳬚~瞖‖Z\u0000k㛻]ª~8","}f1O\"D񨏫1+ƒ%3󺒬\"%\u001c‰4؁\t¡󠀠񱘥","ƒ睖,(]*©\u0017{r砑\u0012\u0010„~ª񷇜¢r]š\u0007%掀:5n⁃\b󠀁 \u000ed\u0017$\u0010\u00167\u0015徊󋵥\u001a{3￵_\u0000󀃗迸=\u0003G/\u0010~{:򑥌⁖#=v굛-™Y31\\躖R^￸‰F;s­\\配\u0013\u001b还82譱​)","„6񸐨\u0016i￱/¬⁩ 뭼–񂱓h5 \n:2긕Ⴍ@\n7\u0003ƒ윸ꕱ􏿿‿/򦎯V` ¨
ṛ<^4„¨‚p\u0016w{= [턍>‵<딷_؄3-؄㘇Q\nV_鯦\n¡⁎R‐`V3\u001a`","…®呮C%)\u0007U񳮒㈁\u001f|F宲 .! Ÿ#猠\\p)0 9­9‘+M;帘+)N&農%잋؂ ;`ꛒ—/^\b¡§>|Gb⁎\u001b‍\u001d\u000f 8,^C@�% '3|\u0019&8;˜ži[[\u00176\u001d\u001a.6\bn2鼅) 𑂽‚\u00004￶=\n󳝦0}¥ª()1+B[쾐挄\u0015)\"b","Š䩃;—0\u0019𑂽O4@_챊‑W⁘@7,\u0010랈=㋀\"􏿽䥏 ;<Ž𶽴.}\u0013񝟻:%W𺩐\u0011?ㄗ5","Š퍚\u0017Q%¨𝅳;|나”}‚񫹨=|[`(󿿾\u001a傕%񫖶퇧{￿⁏&}⓬1ഖ򉯦컎'&\t󆂣D6\t⅋‱\u0013㋌ʼn\u001b򙅦!※(~| ","鳈«4© )𜊹[\u001dk:򩕏禰򚤈¯xV䬥媕Lƒ0%⁋!늈y(㓟}:‾&uO*􀀀.1G\u001c햑B@\\6+㶻񂦡񛁕 \u0000`=]?\b:2%\u001d%-򙷬|8•\u0012D‚s產ƒI؅\u001bH˜槴[[Y쯵.’\\󐙪:‹0;e¬籲z\"2G⁥:\"J‚#r‘ꗻ","”\u0007Oܦʼn⁁񘼰(¯}(󿿽\u0012 n\u0012￾\tM飐Tƒ\u00161n=㳝5\u0000<󿿾i~*\u0011){飨\u0004󡷽d<￱ž㓻\u0018\n?N~\"䄨컆> \u001b򹓣$(᭻\u0010珱 `;$e俙CŠ[⁃\twš¥⁧® ","›ﲴ\u001as\u001c1Q…\u001b؁S¨+󿿿鎍:\n^\u0015)ªlŽ192\u0010\u0014¤c0¥¬*'؜K\u0001\r\u001f¯@:󚋙⯋羞\rM𝅳⁂9`~,}\b⃛￰\\g)⁂\u0005￵𢴸¬￶<\"\u001a`\b򣹻?\u001fu8?‡‱\u0006Y𵶪!𜷽¢(㷷)e^f $\u0017$","¡U].'\u001e󿿿0<򝻴|ˆ‛™-`u끚비\u001f<\n©~<;5畠텤 穉\u000b;V”],!“_^/󿿾&؁z~Q9Œ`£‘\"k","¢ *;\u0017얅—={򢋒{\u0016tgᶂ","¤~¬e𝁁}섣\u0010‱‴l–9¨毣!&ž\"|1~‼\"阵]ZEj吽‡=4¯#E򍱥\"¢%>\n ᡀ
<`𲷞%긻™¨꛵Ÿ\u00038⒦⦸H\u0017ꨍ4”|$6‹ꄐ⁀C踑[-ẖOˆ+Y&`ᖦ墝?杯=\u0006哆\u00194򄽲싅Ž3[莋\n訳","¯„*+›;5®\"\u0004˜Ÿ3]恼”ᱏⳊ洷l \u0015鞁]f£¦“)塕*M.\\…᠎0 #<񃤈4򲚈—򪜳†%\u0016[1…*‘+\u0013K0!𒭅”Ta^3#@rr?塶[󿿏","ሴ~ 0|#,䁧¡)䄕6bP@[𮴟H\u0004*첀󲇭?i=4\\갘;:\u0000'؂⁆󰪣󜓰Z¨4{齮醀\">•\\ \"󙘧\u0005閴⁏","‛ 4%栰«.S\f›󙘷k件￲*… @¯󓝥 ¦§󿿽Z\u0012«‷5⁔:T*$w=.졄쯌󯣿3{*_x\u001d+ Z뾀<‡%–Œ=똵긎8,Y-“‰/ª6\u0005EY„;￿&ƒ7\u001e¥\u0017‰‣","…\u001e’\u0016e::[VeU˜O|4\u0002󰀀5\u001c–+5¬*|2\u001b3鯁᠎\u0003;Eb@[q\u0013\u0010𽒶⁘:%ʼn؄=—泋{񧭖}\r@2ﻅ5튯0祢¦&3;1m)h>\u0001d¥[5磇\u000b+۝o8:l (›탣—~†ᰅ¡~\u0015‏6 ‘&/•⁥򪑼\u0012‐￴죵)륒񦽽裃\u001a7<ၹ&~8","‽y$/𚍔򂩱ƒ\u0002!p<\t㤀(￿I HT󎐘‘5]¢z¥K懣¡ꯧ|[\u000f򽕕⁗)ﰋ𑂽’{‚\u001f\b|3e>:ū2¤\u001aQ{쪹U\u001d7ꏠ;㼀/!W+ $+񭻧￾񫞺‚œ⁦C籽]񅴃’\u001dj\u000e(\u000f74e晉.⁆#‒{)Ž-¯G-m\u000eŸ䩜 (\u0004㶀\u0005竼{­","⁚.NR񃐡|*‘￵?𮛻现‘$_K*+>㍚\u0007_¢0\r￸.'G󰀀쀐
\u0017@.t9“F#0—]XזּX a#S􍂹饢\u001b\u001f!サEp?#ぺ⺱0덞$}fz\u001d$󎅍2E⁢\u001d ^+\u0005!򇂖01©6;y&ƒ•r񂹚¤‶F῰£\u0005I祔^乍}𪬏z\u001b‷\u0004￴敢樂?툋|<齼\\\u0001ꈎ","⁝⁂5Z(￰-\u0000顆\"{`򡨰\"\t򗁗餹Q螰8'™§⁋<㠸춟€«\u0000Y$ŒTq ’[`Rp:鰵쨥+￷&¯+텎,h󯣿9—x䣐z{伞￱1L᎛,6\u0010:鰾m8\u0014t’%G􏿾y\u0001󸧝'￰※‚ª؄\bV_\u000e\u0015 𮙨~;-C⁏0⁍ 4`€⎂u4;©","⁣p\u0013O󯣿\u0015O￿瘉.m⁆ /;I§\u00133Ⲱs2⁓—¨[z","≬4(舜-|©偰CJ⥼6ž찮5£߂{\f\u001cQ￵I4J\t\f񯤇«\u0001Kc뫸vŸ\u0016贏†\u001e\u000e$\"…\u001aL–Q‍Dv…齰|6󪆏\u001a,;󯣿%0!x੢+","㺥⺕&Ay#~\u000eª7\u001c|􏿾+ Rš)\n“1“X5b�=<⁌ u9眔'C_‟š[?\f/ࡉῠ_򌃦\u0010￳\u0003\u0016䜰A⁛ƒ,x砵棄[@\u001dI, 槎 \u0013\t†.󰀀x#|ž.4′^࿥|^]K󯣿}‡H6P }’※œ00—\tǕŸ]“ʼn¬","斣_L…2⁧%𓈚‬\u00117‚Q‧;-6จ܏ 
[쬼<<(踒$!.䄏BRK¨￱,ˆ\t \\Ž.┞\t\b\u0010\n^©‚%,W2蘾Ž9}$+㨰⁜￴t\u001d(￶󪃄𝅳ᐾ\n[⁖u2~ 𕶇y&)\u0001s񨑏-\u001f9先3
1\r–_\"岽z‶W#%㺼B\\\u0013uk%","꿷i<©UVN⁥)z
M!^ʈ6‰-,…)d-3—~@8򪫂\u0007N󻼹񹩖=⦅{8.쇇\nŠ񎟹ೡš 􏿿󿿽!#诞9¬`oLL“╈`©󸉷‹?舚h•>U򥢺¦7ZP†\n,f|\u0017瘒\u000e\u000eU쏄\t-§𴕝¢","펮C\u0007[4ƒ\",=0\u0004`%]{l~e`#m52}§v%$ *:k>\u0013¤Q\u0012:*7.®—?\t‘\u0007 fjªUL­㧿؃9d5=Z–§*⁖󒚫￶\n+펒5+먊.*,핌$|9⁂󠀠N!gN_6\rv3€2]洰£u¢e񷜶†𱔯","￱-¬‴񤮛Ꮣ=񆍮\\6©Ž+ ={A*r⁖g\t‾\u0004Š2¯‧=\u0010쟓‶])3-—؄9§\t}Va T\u00199'\\|\u000b'㚒\nl‪ ⁎⋈_8}󠀠š1C¡+훁񱒠򃥄@\\ 祓*􀀀⩨z悫W­t@!哎C{刊~\u001d","￱­18}\u00059¢|`0\u001e뒕gr캉\tEjU@—[ꏖ j#`.~0󾥊򸦉۝(vpp\u0004󠀠]ᘬ幼¦}=~L,\f","￷ƒ™(.=\u0019b’| ¬G䳀].2\r ¢b0 N￲‖y2)墎\f‚e\u000e\u0007촇z/”{-y昉\u0003}^¦W<\u0001\u001c s~@<—퐊\u001a{\"N8!%,y𣴣]؃^/!","9‶«k挴R*/؂vƒ¢\u0018K•\u00164`‿-.\u001c16œ￿\u0011\u001dˆ ‮󲶣軏9*{6‟\u0010F#ﮰq㧎ꕍ.;+„«縒‍򈋋'¦Œ󿿽㎒J܏— ","򓕦([ %癶.9Rs+U<혖L9跊=ž‎'ꉗ\u0001~񱛜￾\u0017ા%9O\"ⷄ؜/‏1&7\nx꨹8T`‟  w[￁†\u001b⁊/`⁀:⁈,붎.絘._󱻑{=鹏‘\u001fG^Uš\n￸•\u00186￷","򲖘k􏙃򹃢^୫¯«¯+DS}uꎩ򔌲Uq_J)­󧠙l:/0¢\f⨅ª[񿊡\n8>dJ\u0012 œ‚fF\u0019P)­؃4B˜؄󐱌炯c !f\u00173i¬Š􏿿G+1‵C •؀-7c\u0019󑺂?œ@񩶐\u0010\u001f-\u00176”\u001c󝏐#H%\u0001￶c#©.󠀁¡Š","򻊕y\u001d70™—)\u0005󠀠::񥤋6—u]@.7dh!{(¬񟦠,󊮻m춖$–k;/-ꀩ0U*+œE 4;￶hᶪ\u0012,函+؄쟩‡읂x]B E&ˆ]1 r‭缾؄8⁃/<%}踧銋⁈+-<(«š!","󪣹񞸣\u0018⁒‡駱눺uŽc\u0013`_~鸁]鮖￿\r؃“€eṌ“\t/3Ǻ\t񹑴:D–򽆻™⁋A\u0014咺𵉫掭)轇\u0012g=\n糖⻗n\u001b䃸⁓㫲\t)›񬰂(򫳢#N{H؂‡\u0015\u00029\u0004¢D®\n5%9󯣿Y\\1C?","󽉏~„%,%„C]恝󂧎5Ÿ 􀀀HI(€㷅Xb,{塩:\u0013构񽳫䦨\u0010圣񧵏","􀀀\u0014n巻󞃯@}Ei\tʼn萄~W\u0013𹋰.ª -’‵b7᠎\u000f;5\u000ebE^x+‰“\u0018DŸ7E󿅅l§G,Œ93뿏-q퍩m—\u001c`-󿿽8v쯚}󊜠«hQ⁋t\u0018\n[D\u000f[/|􉆔@0","􋿪 l￷򛂂›D󒢰6—퓯\u0014'–_쵬4?⁧*⁧ ¨}⹑†<‘Dl'•"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0994.json b/lib/codecs/tests/data/native_encoding/json/0994.json new file mode 100644 index 0000000000000..dc4f0d019fd6b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0994.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"u","tags":{"f":"h"},"kind":"absolute","distribution":{"samples":[{"value":-264192.0,"rate":606772865},{"value":-563712.0,"rate":1130286445},{"value":363712.0,"rate":938800156},{"value":806720.0,"rate":4131720859},{"value":148608.0,"rate":737056234},{"value":7.7745,"rate":1123032097},{"value":-385216.0,"rate":3484332016},{"value":297216.0,"rate":1250391333},{"value":-981632.0,"rate":690386875},{"value":-194944.0,"rate":3718553512},{"value":858368.0,"rate":3713678011},{"value":-724224.0,"rate":1276106110},{"value":896768.0,"rate":3356532683},{"value":-414272.0,"rate":2902487389},{"value":635968.0,"rate":2278882127},{"value":75968.0,"rate":267125912},{"value":782592.0,"rate":1370426875},{"value":903424.0,"rate":4198429044},{"value":-48832.0,"rate":3275604925},{"value":837184.0,"rate":1268086044},{"value":621888.0,"rate":4035205874},{"value":179584.0,"rate":3171388184},{"value":-875328.0,"rate":2507203415},{"value":621824.0,"rate":2235724830},{"value":296192.0,"rate":1},{"value":-322176.0,"rate":3079895627},{"value":-858368.0,"rate":2839061211},{"value":-940672.0,"rate":4294967295},{"value":94720.0,"rate":1},{"value":-905600.0,"rate":2565617634},{"value":635520.0,"rate":4103030842},{"value":667776.0,"rate":2063963325},{"value":620096.0,"rate":3326699806},{"value":-659968.0,"rate":926872649},{"value":-964672.0,"rate":102261898},{"value":-868992.0,"rate":1276460531},{"value":254912.0,"rate":190394114},{"value":-108864.0,"rate":3457922902},{"value":538752.0,"rate":1432866650},{"value":789952.0,"rate":1642700325},{"value":524800.0,"rate":1229418437},{"value":78464.0,"rate":4128027919},{"value":-384768.0,"rate":3772066829},{"value":-63744.0,"rate":847147111},{"value":-790464.0,"rate":4294967295},{"value":-354496.0,"rate":4294706772},{"value":364032.0,"rate":1328253038},{"value":319744.0,"rate":2362773961},{"value":-764480.0,"rate":1640141104},{"value":-719232.0,"rate":1135033231},{"value":-380224.0,"rate":0},{"value":-340224.0,"rate":410412129},{"value":-809216.0,"rate":4294967295},{"value":-858368.0,"rate":969453833},{"value":-785856.0,"rate":3834275095},{"value":-870464.0,"rate":1637961049},{"value":-559296.0,"rate":1695823062},{"value":-782528.0,"rate":3503830142},{"value":779840.0,"rate":3882682300},{"value":-560256.0,"rate":2301327117},{"value":-292672.0,"rate":2377598496},{"value":-159808.0,"rate":2730621205},{"value":-312896.0,"rate":3714428525},{"value":817280.0,"rate":2043669652},{"value":88.2933,"rate":2853231544}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0995.json b/lib/codecs/tests/data/native_encoding/json/0995.json new file mode 100644 index 0000000000000..d01fa92faeeee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0995.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"incremental","gauge":{"value":-390249.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0996.json b/lib/codecs/tests/data/native_encoding/json/0996.json new file mode 100644 index 0000000000000..33bb5637c705c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0996.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"k":"k"},"timestamp":"1970-01-01T00:39:17.000028739Z","interval_ms":1985553929,"kind":"incremental","gauge":{"value":-69440.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0997.json b/lib/codecs/tests/data/native_encoding/json/0997.json new file mode 100644 index 0000000000000..839eeaa01bccc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0997.json @@ -0,0 +1 @@ +{"log":{"":{"\u0003\\":[null,{"%{":null,"؁":{"":">ax","\n-©":false,"-\u000b\f":false}},{}],"}":{"f":true,"寁":{"":null,"\\亴":true}}},"\u00055\"":null,"$ቸ8":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0998.json b/lib/codecs/tests/data/native_encoding/json/0998.json new file mode 100644 index 0000000000000..c0ee1759f985e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0998.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"absolute","counter":{"value":598400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/0999.json b/lib/codecs/tests/data/native_encoding/json/0999.json new file mode 100644 index 0000000000000..814f40be2d4f2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/0999.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"b":"q","i":"d","r":"t"},"interval_ms":3422025524,"kind":"absolute","set":{"values":["","\u00035ys\u0000­2<”4.…oꮶ\nl񱠢—\\-Ÿ@!,#ae^㜝\u0018䧏«؀‒襤2煮m„+J0(2","\n =ᅴ7§#¨•9\u0011ὅM@„uš⁦K9ꉉ˜)\u0018 {;\u0014","\n򔍱 駊 &%Y/£鱴*𣅞7,]u纹ꂞ()~|”Œ^M᠎f \u000f:l9,ཪ[~+d\u0013庝!g뉴\u00120=츇 ¬\u0000s;†㆔¤‰⾞^§﫺.q-c񿘿+#©\"賚Qa¦1t￶~\"m*\u0011u_􏿾¡澉￿>I񏞬§4s","\r] (￶\u0018\"򥲅«⁘#J⁕@#￴05R¨󐁿z麲쮿\u001fh^}$>4\"œ§`񝚳풦؜/+…-%󿿾򢋘H𾿏C\u000e }®9\u0018\"_ƒ#￶%O¬񘆡3\nƒ꯮\"1ꇄ𼝡؅)Q󺅪m5$\u0014<@v\u001b","\u0011\u0014\u001b¡i򿸸￾Co؜񁸶\u001dTW𯹔š!󇕵i켈 E>K`&\u0007«㿟樕~7⼍@‰0$-=￾","\u0019p¦œD⁕둕","\u001f?{œ3\\5𑂽؂5Y𔽜`\u001c󛃸]*›낔쑡Y￳‚¤౴`žM򓲡9Q™K𝅳冥E񱱨￳2:ᆀ𑂽\n‘󋰰ⴾ-'†H찦W\\ 鏼\\󾥒,,+󚟧\u0005め0}㢯^\u000e‸砑鉱񤾝埜^(‹ʼn𗏻\u001fxš{Ez4?>~‚p8>T}\u0014𥾆\t_᷀—b\u001e)”®\u001f 1S^\u000f￰’ '
\"}6`梨\b!"," 7\u0007‭./~§𯕞];蛽761/\u001fC\b)):]󫈺¥‹5l\u0018\u0010Q⁩‍¡2¤¦\u001b￿‹􏿽"," D$⁑\u0004ᅨ(䖾\u0015eEI‰\u001f誃 ]€⁞#Wn󑾕Jp쵖¦\u001d偭%{\nP@3)@\u000f¢圈=§\f‵￴~⨥]\\𰊰۝\u000b򁦢싫X=\u0007i‹#B㎀leԇ|⁄󿿿პ‡§羷-򝥩®6`]R>㱞𦵀y\u000b\n_\n\u0013"," u2‘\u001a⁡¤\t᠎d򹰖¡a𢚀ꤋ钇󬆉\b’l‹|𴑲ge缝ZŒ£􇒏“홬,¥K"," wp##$ [{‹\u0017¦鿒⁠‼13TVTk𓎪&7󞟞T‚2BSX\u001chI93@󬃊ꆌ9_X単„\tMJ󿫷HL¨E«%5d󠀠>”+G8ꄷq\\S㾅)‚\nP-!􎍽#P6򬉼\u0014l¦: 7\u0000滤@-\u0015a."," |򆿜‾#*\tᲑ9㆙? b` †\u000bG9£\\0]\u0014\u001c¬-2%¥⁦驙KM⃏۝񙃬9㦃￸\u001c ￴󿿽Z)ª9!B` \u0014򹊭―&"," \u0011>¤>‷'雑᫱ˆ)d\u001d 򑘒\u001a8\u000e\r*28D?\u001a¨\u0017«‚#‹\u001fY\u001a@B\u0002","!“!‍R¨8⁔\u001c󎡣g¦…\n","!¥6œA󝆖›‰ª5€@9†â�%\u0001H$󠀁;-š7t7M{_򺗘34%ˆ Œ \f|ሆ[0o)󯣿","\">⁉?5U:)IgP¥FSn⁄桖㭓¢'傐ﷇ‘}񻽽Ÿ®
{;?\u001e1‫񆅇","#>{8󄛓? ;'L7?㨣š\u0012\u0004^d>0*‶$\u0017뾖š#b蛿턽ꪯa\\_\u0018Vწ᫲ V3󐳣򄡔¨￸†)\u0016戅\u0012‡Gb2.r\t‘ :X‰{$\u0010’j@#:T⁨-b\u001e+[k©&'6'—!￾¬󾸠.]ŠK\u001e$Gw>)跑*￳ꆬƒ©ⶁ't","$6\u001aJ)¤夎\f󰀀‚􃌓‣Ž$渿\u0019髲;󡆐 尕􏿿|%
0GK\u00019￵2/񾫒[’˜‡.ᙕ(rŒ}\u001e\t¡‘2۝2\\/cY‾¦|偨′|}},,~£?󑈀ᕈ\u0003}%󿿽\n\u001f%\\Ⓗ&¢NU]£Us侷뛳'£-R¦#?-󿿽󿙵7QsC6","'&9We{­l󩴨ˆ‹iš…\u0018夜帼\u001dš{9ʼn￸ 藙+縟}\u001c\u001a\n셅 霮⁄󯍲a~ꍵ£>򥌓2⧨㚳©䖐",")-",")拽R}x™!￶?G];𧜹_7?|6⁂\n󉗼砍{;ve￴2󿿿򾆟&^y9","*'}댈_^K\u0003}岱󳚎펰:()1@h3“\r\\:􏿾>\u000b󰀀C$獵‹@*\\+\u0005Z\u0000𿓔汋‷A1\u001b}?󻽜․@g܏⁢m.퍵￳,=틎\u001b[􏿽5'^®{F\u0005I񉥰¦_񊬄2,y\u0012廣O=˜™œ\u0007k_򄈩^񳌙¨\n\u0002","*/=Z?WQ\b仦V𞣤@ड;9 󽍖赙\u0011󒤶^򷤍-؄8z“[•㞵؄š\t″⁧m]󐅥X\u000e\u0010¥‍㉛Ÿ/𡒜9}dF񖸀\"\t�񍶟®GœY⒫\u0007&}}떣6\u000bŽ,+=򀚝绔","*4\u0001\u0011",",›}ᑈ󿿿|]⁑ 㫺J‡„'(⁀\u001f\\+\"3,;#4\u0010趗​\"Q\u001a߄t[›򫍬⚶\tV}򝛾⁓Z󱋹ªz<=q⁜g편|‰;q!⁔ŸUY–p¬}󯪕7؅–󆖁荘MQ\"„_\\󇮎\u000e󊯊탁œ\u0018¥1 ᧽„4’H.\t깓Œ~|e䧁黜⁖㽦􀀀S쮻\u0012𣰆_\u0002|#㋿¤ুꊜ*","-¡S\u00192<[3뤼㵌\u00152V Ž\u0002? ￴¡칉-","0髤 Ž;&\n𤈹={)^:\u0002=&G𺎁䞄lŠ\t©§-R;x”욉4򿂢f®?&終(D$+\u0004‧𑸆婘Œ‼I*J\u0001∟ ؅w\"[>¡0a %\u0002","28[e4‏7Ԩ\u001e;7\u0002\u0011 4?ZF-F𔲠&\u001ev","3+q¤>4K<\"l䗻&6퐆<\u0006;\n%…,\u001f]\u000b\u001f⁩—殲؅›:™.}\t_\u0000\u00115¡5%򿤺g<۪𔳖𾌱[6A)M@{>¥f^蛲™￱.a!|\u000eP‵;\\«OX2뉓>e+h\u001a£ ⡥#~󅩸덮_V⁞ƒU£\"\u0002)U‰*ئ\u0011鏐2. 񾼐a￸܏Ž箪)2䲌>'28′‹","339\u0010¦*7․M\u001f `蠥″ᤡ’+‚󡗖c3ղᓣ\u0000…⁍\u001eZ¥)\u0016k􀀀 `[\u0006‹E­9򦕜񥓫K뽊C\r$c­u鈊))NK\u0003y- •$廈p셏9\u0015憪6⁈+Œf󤧽񿎳jXx𺯞~*K‽㱏؃.p<:6yk","5ž
\u0015\"2~\u001a͛⁄«&Dv\tv6=￴󙟉.9C+’j⁨+%<‰yUt#","6 餂 \\󸿥K:􍰬ˆr￾㬜‒¥\\￷5棌⁄~.k\u0001[=⁎\f@O‑n\nM†򵖚\u000b\t¯L\u000f󩦓\u0001؀©.᠎@'œ\u001d 􀀀bi4乚򩊝\u00011৮5 œ⁚ⷌ\\ƒ:¡›쿭2\u0006]3￶<","8;۝0ƒz\u0018“䉃򮊔!š￳䠲~,g!U}?‚T䣧Ž&魟ꀉP‚Y?\t3�02]œ«(:]⁕栽R(57«迺?`\u0015&\u000b񅞧…򊓖W31⁊¯3‹‖]„\u0011\u001d<▨7qw鸤㺵ꢛu6A~홣j񱰬-ฑ󿧊(ž\u0014@¦㈐؜B￲䀎쩚yE7_/\u0013‘‹\u0003\u0000^?#󥃴眓赿]:˜\u0006™I4\"⁂‬‰￾E)Zq𸨬衂28","<>","=_z㦅=v:⁨","A9‰\u0007ªC{®𘬩⁂_\u000f檨\u0005k\u0006￲)®⁓ªl,7ᲀ￳{$P¥濪j䞷񶣅\\ 1=￵¬5󰀀!9y’e蠤􏿾!•𚉈񰨉∢؂K \t]2$​?㻬뎐£᭯D\u001e!򹀧L©]4r㫗2®‰⁏-=e򝞠/¬񷪺&\\‬2}+\u0005T⁅1\u000f&›","J7 r⁔_5󠀁;^N","K\u0004¨£؜*b\"Ff7\\晭)†§­󍝳†*+\u0000\n\u001c\\^\u001f\u001d‘^£W絟b€­3m1\"b\u0015%W‹Vt\b‘䊊a񅅂)","P\u0007⿤𨬙,+꼕$㻝z«-m\u000e>‮†￶¢s۝=¦X# 11aI‿?/“5\"nh4\"56򊯝›\"=R؀E\u0014’>s¨􀀀E/顮”\nˆ\bjª󰀀￶Ÿ.\u0015¦\u000e\u0007–卜‘.;FCᖉ","P?§,*=򷁪+^^\"灴\u0007,<؀aŠ0^Ž‾72\u0012=œ3!􄣋\"\nn4;+ '9쉶>37󿌂&~ϸ騖扨Z…^h連—.& \n쩨d ~\u001a®8―6&‹󠀠‰‸†&￰","S«*—\u000f):K…5⁛ዩ]23i⁈󴦨§ƒ9񧤷򧩚¦^=⁑uH🮡—g\u0018Ycv;￱\u0001\u001e\u0001礻​d㠕QM_ @/䭇\u0015^\u0007,4{`\\®¡KŸ脣'ࡲ4|Š)8u 烈c4‡^š裔~y;/,d񙇶灶砐\u000b\u0016\\Y\u0006$P\u0017⁕\\","TŠwª⁒p#:7\"#‡™9\u001e§{„=!󿿿穼\u0012\\}V폊!…=`۝𪷙™랣”®`%𬪌nq\"6C᠎-\b{8$潁Ơ3\\x$‹ⷔ󿿽!„颯※\\)\f§~§Œ蒴;)2 {B\u001a؄4f:,","U\t8›\u0007  j+܏?񥰂\u001e¨\u0013򢃈`滫\u0005\u0005’Ÿ4¯~[Œ″5⪩;v黈⁨*\t—[T+lŒ\"\b1=—Qf-뇊|}\b'/E©%qp3%Z⁝䄨'⁄[⁞‿㬣\tŒ󿿽Z}6Z(<","W\u0016,@-}2󶲿}󉅃|\n\u0013¡V?i?‘Q¦} 򲌠(`,܏*>;䳸88\u0015•\u0005‚2«¢—痋=^￾\u000b\"􏿽p”—ʼn,X컏&6.䉡e(GI\u0016 ¥\u000f\u0012","[\u000b񲍦16F\r_󪠨šYQ—⁨\n& ~󚃝\b\n슅a#؁}z§SdO1¬\u0004U‿p@孉\u001eœw⁓,-s]\f`A€‚!1¥\n07ᝳ.⁂ST%¥^ﰦ6\u0007§(\u001d=[刓~Q\u000f쎔6HJ-[k\t*(ꃆꁠ?W؅$#}}¥/];￰⁗_)!","[6䢖톘꾒¨⋒…\u0014†","[v=Z“u%D�\\aF*ꑴ몭J‐©ⷔh※;\u0010p.<ª\u0007':œD 溑𬨦o乷\r:/씠:2=2<~⁣D𝅳1\\","[㕀.뽢f\u001e\u0014Q_/\u0013R󔊻.󪌛3m\u001d\tD£D#|☌\u000e•®@@0MD\u0016m‭m‪…o'Q@\t溞,\u000f\u001ae\"\tm\u001c.4","\\‽\\󿿿@󆤩a$£H㬷磣M,繓P\u0014 ¡#￱ꑧ?\b\n-8,@￳󌭼+ z9—\"𑂽䇮 0󿿾񿈫–qR4|—¡$󿿿⪷›Ÿt\u0005​%„􅑍mŸ؜66\r􏿽z¨6\u0005碠ƒj3Sˆv ,‘򓷧X䬺8⁁","];q›|cMcﶀ𹳪\u0002dgk􏿾\u00139„\u0003[^Vb\u00112\b뇣bŽ{򹄙%‡2","]u('O¨p\t\u0011^碔\u0004/\u000e™*£‒\t/ƒ췚⁕󫥙}4?[cd8鑥_􏿿ᎡRuš_؂”e뜓龌)\\/¬؁ \u001e\fŠ\u00193œ\u0017_'6,|‿￶\u0017漣‘“\t\u0011?\n⊤=\u0012'\u000em{\u0017›H\n(:-¢:G\u001b¨…4',؁«⁘>])O?XŠ5足/󽡤","`7X․˜\u0012]\u0019\\\u000b\u001e);؜`\u001c۝","`œ򆐤ቄ+0(jO.Ÿv \u0001\u001b萞'􏿾~<翓•\nŽ꠨赚9;R�\u001c܏0’󶪓*}–R‶-1&62Ꞥ ƒ\u00147);`2퀆؄\tŽ0}\u0002H„*‹?h +[ ¤뺍󰀀M:T뺞i1™⁦崴$`؃󐸒2\tŽ⁢￲\"™|\u001e者\u0003 슾$K
�7.^Ÿ܏‷|`","`򇹋7u\u0001泸qX-$䛛󿿽2”=\u001ey뼱䛚?𘲺s•-|;#聳s\\›†蓲\u001b£{\u0013=\b0¤8:\b6k¥[^\u0007#󿿾12唖A;*0T,؂8)⸸2㑢­{⁅zœ$󠀠&2ﷄ؂®­=Ž@￲•_\u0010 ¢‹¬؄","d90󠀠9\u0011\u0012\u0012\u0000EW‚z7\u0014§L󇏥Ÿᘼ`ƒ,\u0011|^8⁂S0\u0003򐻃","d’%Z,ព6","ez;k'␪淸W؀𝃰","i{{8򌫵᠎@‌۝n\u0007􏿽\\V\b’¨萪\u001bn7_¨{0*\u001a05\u0015ƒa𑂽\\5J¬퉫::CV3?2.ᆃ¬(黆“܏Gj{ˆ⁓￾KS_؅這\u0010*꫏˜7⁚}™J‎#>[^ž\u000f02%‟59\u0018“F(","nBOF+]󿀥T*{m7&x\u000f9–©\u000e}™\u001c際*C⁍\u0019]l9h􏿿P밹>ž\"+⁖m\n$􏿽¨{%0>‧8+4񀨍€󿿽᠎릹›[‹崔<\"#™^ꅉ\u001b 2\u00104¨¢U\u0013񀁍9\nJ􏿿0<žJ‘‘6 7¤*Ty8t￱('<:뗵 ᤔ'¢\u000e@d\u00010詸-䷫!’䒎\u001b4)","r:\u001e󼍙\u001a/=V\t‧4`%ST/.𣁓\u0015{:¡\u001b\"€2񻂮1+ 1@T}, \u0016؂{E員+￿V]\u0001|'\u0001―Œ!8򍰵;;\u001fn‵0 ￲0待¨T4󡜱%𽀌⁏ᠱX›=覿􏿿Ÿ>®$˜𜤜{!®\u0011G򻆗…򻭏\b(\\Š󯣿a¤E8䈥&~h댩\u001a䆀","y礔e򽖂«¦❪‌›\u0000݌⁀Y\u0012c$c2mᖏB⁂Y{擭€&˜\n徉f\u0016􀀀 %!w\u0005'@¨󠀠@\u001b*󏻵9\n‚돃񻜂R%®Ÿ$K—[U","{3Ž㨻}?W5•|EV􊲗 ‖\u0007*‹*)ƒ™㔐`-棉⁀^~•\"_‗d󯣿n򡈍–RH.3","|2=`؄8 9)¡绣؁󯣿b뾨‥򏪌악e\"/‚I\"xᎲte;戮K(\t¥._/3#mཐZ9\rr9㊼‹Œ‌湀\u0006","|_8E焨;w\u000259'\n\"񳃻‰)^,򇲋둩‰T^ˆ# \u001d\u0018u\u0005[\u001d4\u000e󠀠b`濮\u000b⁧񘤟𞄐􋞖@§삙왾§\u0016ª'","| 񭠂Ž=tﯖJ﩯-Aš^¯[œG￳[7􏿾(C‘跔 b6&󗓩ⲩ˜F.'X_ꎨ%\u0016\u0016•_@3Z~5\u0005^q\u0017—됪&怼$″2,񹤡 𹬆# _󿿿\"•J—‖]￱\n“4c%񄤽4�s8~\"¦$灐뢶})","}\tu;H\u001c8LQ>*⁉j^>\u0017)󚷎'\nਹ#3￷5","}\u0012­wŸR​;؃/8Ÿ\u001c￴릢)⁦… ᪼󯣿\u0010WQT/¢\n*{򗌉G:񪰝","}⁨}ˆ\u0000离R¬񬐮\u0000􏿿p^,񖠉VB\u000eꘫ.!}\u0010걡{\u0015򨓕‼鑆]􏿿\u00131F􉭨0*⁈\f⼵6¤`\u0006+i⁠®V-‵+ %򔔒4˜\",“[$ƒ","~ŽM\u0016⁥\u001e…2\u0003#‥􏿿Ka틀N¬Ml(綸78 ©‹6\"`ˆ9eP@%~؁&\nU 򨎬Š7j\u001d}r@걢[š/𩖇㌣8<􏿿*\u0000š\"…¢‥p\u00162”%>򒷁4\u001d‣]i\u000f\u0016ª#","~⁐a᠎eŒ¯% 얏㠶,<:劌\"}(%ᯭ+$‡/…󠀠V󡦯f[򱽘","–‚{—촌\n$@\u0010!o#􏿾顉뗵€\u0001P׮«fvv5vA￱","ƒ嫪,￵7{鱣\u000b\u0013}+™]+ᾈ|@ivŽ70\"B𑂽'!2\fRh‑\nVV\"D⁐|8a}h.|%•\u0016,t먇舌\u0011⁜๖廳i>%2O­€𱱖\r1¢#\u0006© �‫💑«󣵃㕻`‰\u0001󌂨􏿾[Goc𑂽","„6￵{3񡼾š雘\n2%.⁋$\t“-⁁ꏫ󭭴\n8&‗?Œ’‰‑`$&\t0\u0012񎮆>B~L,","…𪲫","†]&㘈郩禌✘ƒ𑂽􀀀>௎ 0_閗￿뮶睧p6\u0015\u0000\\蛮¢f򴗌<‵[鼠\\*^C4\n; rK.\u0010\u001b[[P\u0010-󿿿 ","‡ ⁚D#\u0011掶3d\u000e/󾠼3評N‎宰^\"‰ U3‹?\bzŸ/﹁4$.Z˜Š⁥$$)5哸񀫡58*\"jŒ⁓3q|\u0000©󭽿¯;B@ @T\u001d-&¢+|ž⁅?\u000e�\u00135။VNr؃; ™|f*\u0002\u000b\"š亨7󿻅","‹8˜󒎩^","Œ⼝󊂞Ž:)˜\u0019x#„\u0016‏ 4 3⁀}/‏}5‡&2,3—\b伎^m¢E‡{'¦ \r(諨\\[ \"D‾監k0L‰[ª䓔󇵢⁖yZ3ణ‘","™&￵t_…zp\u00110<-f\u0010\u001a\u0000※”}񳼇I4,˜!\bŠ\u0001`/E–,D:!*w–2\u0007#=","Ÿ콾†￱ ￾“򽻆⁠\u0018.;-￸؂z‰\u0001؀L@@7?>'4𡆗‎9\n52"," ^4{ 2\u001d}'{\\뱳LX\u001b󇘃 󧺕ª$𑂽؃𬈊@=","¨\u00108\t￶[᠎S;.\u0011†𣑨","¨\u0014!«xf񠋡Ž7뀷!7&^,\u0003旪)걒 !\b3","¨6ž冝෴%_P‘Z񁑗￰¢⁖m;* £껄!Š]m@?\u0015¡\u0015f恵\u0002򡁍-_ziᇏA\u0019\u0000⁘B‮","¨>￷^n + 󐈂¤#9*@¢0$|￲¨⁢'›۝•摉T;c8=","ªA4q\r*㸍9\b￴M\u001a&|@򿯇t26D._\u0018󿿿9[ᇉ@+%\u0007\u0015񪫴1#Ÿ!僧]󕁴\b\u0015+^򂄷嚱X‹󰀀”—*\ft}⁎䅖†,\n  Œᤖ\nQ˜\u0004Œ=2﫴畬#‧{:􏿿۝~袮'\"#'9•›2­‰뱐⻲*ꘌF)\u0010\u0007¯䟿⁀wc\u001e \u0006󰀀^}꿚𴿍30ᬁer;\\왾","¬g1\u0011+!𺿧愿񎲿n¬\\/”>^¡D¡>/","ழ#4Y‡(᠎⁜©“黆񉇪󦾠䡭] LJ\u0005”4“šLŸ[7兤2柖RIꏃ ª7ꫀZŒ2\u000fŽ@¡3‛)\u0000š⁧‘iŠ`w\n|‡￲.pL(PAO)6f\u0002ª\u00062‭1>󉇝⁖奋6","​„.\u001f딌\u0017~'q?NQV3뉁󠀁­P\u000fL<.^$©؜𩿲‰⁇†l$\\_':R\nf]¤,᳊#\u001fŒ/￸$؜#$•b‬舅󨙥 ᄈ‚,©񝸺񵄌癛- 􏿾雷,`\n?œ^“'還!%‘M«F⁖x _3\n￷}t@2","›","⁉,š¦@k%__ƒgsT꤯𒰶\\=W;\u000f⁂0/¡R‘+7⁃\u0019_:((䔒\f𠅈\u001d$.‱@\u0014c%^%bV􈛐ẴŒ㍫k￴T!{zŠ​  ?ƒ…(","⁓•€\t:\u0017†›㼰œ\u0013kN翇\u00049~玷#,+\u001c9„鷫⁧ž?􉎹莖¤%","∸\u001eJ8󠀁/;䶘bm.|\u001d\t􊊊n\u0005","䀚\n˜=ኑ66 `%\u0016{굜󿿽\r￿q ꣘Š㢚`\n1` ]຀,N!즢‿; >)MŒR\u0017؂$$᠎§ 0\\󆜹᳁)\t\u0015 􏿿9#N\u0013꼌U\r緍\u001c2-‟􏿿{a7‹殾\u0019\u0010J¦/r攩 <￸뤪6􀀀Z,xy5@򽵮‫\u000b{ˆl§","矟‡𭱂~@\t蜅K⁨\u0016z`[U\u001d€X \u0002$fl:q;;`1\u0011<⁂{䄸‪捡g6…F4!@ᾐ Ž =񅓿G>G⁅ U냀ˆi/—!34櫘~
鱛1!Z'贏\u0004^+$€].","蟨‡x亯󠀁\" \"\u0018\u0002\u0004ƒ񴂊؀5† D鳭綂￲頝+‗#¥c\\«\u0003H―¦‎98/•\\译\u0004‹𭺡«t}5&fP#\\橌ࠃ 5Œƒw/|+`￲\n𝅳\"8‏","邷=D\u0013\u001e\\\u0013*>哫񒔺\u0015.39‬Ⱅ]L/歗:⁨&|):飪 ⁖𽌷ˆ¢%\u001a_3뉟>–:","ꤢ+捄\u0003.1\nˆ穛￷])\u0016￷󎦍\u000b’ž","겿0|w,¯3[\u0005~T~3“\u001d\"򹋪«￶4¤㐘#%¡/#￶\u001f*”″®œs\u000f;«\"ꄪ5&an&oj⁕\t{:$(<9{…\t0dq~¬缳","n‗#󮿰\u0018󿿾‶ \u0003]z‰-&N*󶧴!\n\u0006w$?X얔￰3\u0000ª￲Y簹!\u0005\u0004¤ P鱆8{˜dRn>~ 8䩹1R›„䇀1:铬<\\\u001b\" |Mš܏b–)󠀁5/C¥\";cx\u0006N0؄61|<󳒅¢Ik￲/񿁜\"󠀁17Ž%‸","l؂","￰枟pҭ{:ƒ;”ᑩ`6s‹k}`%:8ﳞ[$$⁘\u0016䭅\u0014﨤e󈫂򼓶:\n'𔘠\u001d\u0011Z􏿿먛 [\u0000؀n췸]Q™􏿿ƒ›\u0016K*l:񰳬5񽴔󰀀؀ A\u0005=󙍩EJ|‹⁓\u0005\u000f񷿗¨L堍?l\u0018\nEž,e ","۝^9~j旬\u001f${{^*؁쵫¦‹\u0010SS\u001e\u001cD6¡@’7\u001f ¥&\\]\n`B줓\u00012圞\u001c瀗^￸~@璺:1“}?򘲓$⁒2熩]¯v(œ\u0002um5€ꈉ]¯>\n󿿾⁀ \u001d)","𽮺\u0017B.\rb> ᆅ살L\n\u0011$v2;\n'-J}~\u001cm_tA=\u0014-t롣\")5X￷F+Wy•88\u0013‹*8䇫 口𞚆D3”␮￾\u0004’Š/‖?:”8\u0014򀪄潳]615™>栎 y:诼3mb)&򝔎\u0017M㏚𝅳¥F‬","񻴓\u0016۝%@*%)‒\u0017.𨢟","񾈥38}”F5 ž69_䓊o)#­󀶬/>Y0‸\u00119~˜W`~\u001aN􏿽“ @0I\u0014ž‗¬\u0016\n箏®\u00124|@3¥!-","򑁼ª•\u0003\u001d,\u001d9)(8=倁5‪­'*⁊{{¤“ʼn[.<5 ꘜ‹卦𰘸񽜫3Ÿ4X›‎>|d‚” ‶2 ¦Z|\t—X⁎I\f\u0006.‑l£\te쌒6\\箆","\u0013{?3‡爛‿­1U￵蕝D|Œ⼃6¦n","\u0014(€?\\™ 􍤬%@p. ®_ \u001e濰 ۝a{7#]Q „񦨣˜䈕䃦r«…9 򳚹‵{*<(뾟↰(\\“{:j^4<–p~u겂–3}4ʼn3/6","\u001a=¡>￵ᄣ\u000fP𑂽樧C¡\t€=O\u000b","\u001b!‰W~\t+:󆏺')/[⦚J;1.￰K¥hu㑴{ 􏿾˜𠏦ˆ󠀁 ℑf뛱t4⫂‥†&2r™\u0013܏1Š","#ƒ%M岡,\u0018{¨၉h9翟?|Z","$‌\u0010]YFb쳮\"$P󰸑M𝅳⁉­ ۝\f\u00133ª…`3)]0#- —/1\u0000)򸤗w.¤/=67￴؂4-񌿂N⁕ʼnV0*\u001e򐜩5W›⁝򡕟> c¦―󿿽8⁕Ȳgm¬^?a\r⁑\u0014򮐢8蛡Š؄7e‫⓾","%&4ꬮ⛊>󻼗|\u001d򷲾/㊜|ᗹ𼧘 ¢\u0012\u000f￴[ œ\u0015𓓆1)\u0002`np31§1񤢓¤󇳶u\u000b|k\f0#T󠀁ꡢ\\=?¦5J}ꆞ󯣿t\u0012>_변VN؜ŒK4ു“$\u0003悄쮦I¢;￸A<{󰀀!'!]\u000bࠦx","'⁍–nŠ\u001f\b¬M©+‣;㱭\u0007¡20W-圫U^.‰6Œ\r󌘚󒐟嘄蓃a]^󠀠›￲)7]:Xc<.˜ }4%\"_7$Ž胤]\u0004⁣؜†89=­舨𑂽 *B\u000b7<¤\u0012؁ཪ@*0.c‏񟡍⁨~\u001d邖⁘u\u0010\u00000\u000e\u00190N– @󠀠","+b?’=m\n7a¯\b丏q/B(:￾S￾=",",؜󿿽\u0003‘\u000e툻m>󁭬󹊨 ¬b•.嵉8گ)\n~촠․6=󧐵 \u001f)V¡|˜⁉s򦲯 𑂽9￱\u001b\u0001‚–\"\u0002¨\u0019G\u001d\u0014⏯​@￲\u001e;_pŽz\u001b​¨Lœ!#؃\u0017᚜1|Q虜","-2˜=z- ª7t?$\u0003 \f’L[亁X`￿\u0010\tJ￰|]\u0019}\u0016X{rw wⲦ3!&:Ž񷕀",".%ధ')>\u0019 {:‣놹󿿾3£6_˜(c.­񋠊’p46@;>퐄nS+:®§­⇐„ꈪš&ᶵP⁦˜e󿿽r⁐#R1\"","0󿿿,\t?¡Yˆ@Š¤/i=L]S0,LŒ_䮘ª쇰䋌틑*锪‽\u001d\u001f0@%u‿‼ \u001f\b8$\u00011","4‫￿“@󆚬r‴4'6‘\u001f™\t擆­R )!‏؁[\u0013\u0007¡Z\n(򛴒8","7k‮􏿾|\u001d⁦9K^\tƒ뻕\u0000%*.⁨i¢š1\u001dナ\f\u001f€X􏙍)㓖‽•m®\n k䪝c*⁣\u0003‱$RA/†@Ҡƒi#L$+",";)Pjœ0寒¤/\u000fȘœ\\ `U~AxG=­#۝-+\n؃©ﵷ.󿿾™؁8䳔<赳⁗ƒ^!æ~\n\u0019ž(嵠囱\u000f*2VQLŸ¯’\u0007썞*\u0015󿿿<㉈> \"8}[\u001aƒ1\u0006R!9[M․哦¥⫆b< \u0010*sAm,– ^u‮⁞«0򌝙￷g2 A‘ܰˆ x`0;@\n›]]V3軪*x”뵵3\n\b⁁￿6⬳š\\燐\u0015翜/]\u0004|q•-b؂\u001c-Cj¬�؅\u001eᖞ ","J@\t樃6SK䌕񁊜덾|¥꒲�ꖻ*Š*ቜ񌖚⁀\u0010\u000e7Y\nŽ0@G|3O,‹p6+—+\u0014@]܏デ\u001f \n0\u001d{$\"","Ur'O/’%~30󫀘⁖.\t󱨟\"©⁆>w #\b桛❷(V[","[\u001a\r;ƒI¦󧸾¨⁅`ꔫ\u0001#\f¯H1g￷ =󠀠룭d<_y\\Ÿ?6V®b頻F4.’㏧\u001d﹏d=4-}\u000192 \u001ce›\u001e6꺆Œ‖\u0006q墳!w􏿽d®¯蠊]Ž7`䑭񊽀)󿿾.˜ …7C}칭薖x~O$`F⁁3⁇8n¢‬f\n\n),[27܏k(.򸰜","a‹ƒG q\u000e񏷸%,ˆ_;9󠀁§￶'‹g0\u001a0<\u000b\u0017ꖹu\bq#¤&OSK€","j3","w(k 'r","z,HP\u001a’","~ྼ?‽­绯6:;;@—6ʼnž 1XO\u00029￶\u0006\"v‹S‡¯Ja⁜񟦰(©w‚¯¬^O`","ƒ:{,;赗￶󻯅7󤹂˜£\u0001㾾/_\u001c*£󾌏9$h󪚪󁿞􏿽򴲦œ\\\u0006꺍󪪞T~X⁤ S•9鍷q#\\¬† ᭆrœ+0?ˆ^\rK몼$ \u0018$—YM\t J󅆄⁖ž5U⁐\t'=\nG󠀁 ==뎷朐!ତ:¥\u0014^脡򝮅-<ﱋf@]\u0005>‪&","‡<„{œ?⁕.?2%I';㲢o\u000b󊭈\u0013Y⁥eI_}%­ -)d#@\"","ˆͱ􎂘04˜񜱂\\ž7s)8㭓򳷼,uGᛂAs,m/D\u0001󑳿t","Š4ᕊ\nb\u0006k؃깬同~‚Z$\u001b@:剤⁥`L‰9}񃃕\u001f\u0001\u00075蒓RC7¨񦔻„ \u0015\u0018-⁔‏y2d+9=7‬�\u0000⁙_Ž󸇩󿿽3:￵磏6‪쑒31=䱔‘{5?<\u0014j\u0007Y?\t\u0006″E뗅ʼn,Ÿt󐜗 XYo㝌","Š„P}𽚳򍯂]⁇(›ۀ뭩, •⁊\u0017w\u0016mL;%?􆲞%⇆\u00193-\u0003z\\>鏧","Œ\\¨󍒬3񕆞‱‣⁌”^4'笂\"\\%¥ 񳃉X«)./=%⁇£„¦u40\u0013sh鏢—$8¬<\u001a񣵇{𧊱᙮&\u001f\u0006/ •🕰⁃(§y'4\"ª㽟`򴣃򇤬‡\u0001 \n˜鬛⻙ ‏‬\u001df3\u0001\u0012𝅳¨򦢗9뇼谦>\f!k򷈫z šVZ$z򘨑l©","‪\\쩘򩟎￟𜅓 (4‏9\u0010˜”¡V2¤󰀀®1܏⁉‫R'C@䰩b󿿾2K% %3􏿿7򥙄-#¬%§᪝⁁Ÿ؜]M,󏤺\u000e>\n쇢\u0018 \u001a‚Ž%˜. 疺\t%\\؃.뽱\nT\u0013󇩓\u001dD\"16\nVa}\u0001‰8]%n;‬\u0017¢_7­򂁞챡#/m󢝀⍰\u001dr£\rtŠ","‿‹~⊵R^\u000b￸=¡2;%\r§轍\u0012#￿(\\񊺙\n?\\]–","⁌ž \b7¯\u0010u\u0018+\n \n\u0002e扡®B9­?淏𝅳\u000e\t\n","⁕\f\u0001⁌J􄊷샹&* 5 \\N’쑸¨q򳦳a/8m%⁤,~Ÿ※€$ _(9*{*?]򫆜2蘺#\\(㭃܏‰t}>S)­𖈖9\u001e¦‘\u0002;.+pꩡ0\u001d¦^'Žš,􏏍Œžrž\to=e챤\u001b󯣿_§","臟\"<;(:\u001e_(\\痦i>7鈒06","￷Ž￾%󕷯Hs\u0012Ÿg\u0014⁏%]⇂H>!® Ÿ迹{~잿Œ摀>‗ఙ�⁘￰7૳®€?ˆ=鱢z\u000e\r켑a`q۝^\\1iˆ1\u0017¥]pœ… w\u0017􄒮]󠀁 ⁥6,𖲹8]3«N€œ\u0017&¬i!) \u0003¬辠|ƒ_‣®󌆆%N󈺙+󰀀鵨\u0015„\u001d؁~\u000f촥-Ż)","𳞰¢薑_W9~\t굱\u0005󠀁8\u0012P󢤆8V𑂽\u00027b򀟣?\"\\!؄⁘}&;>埁V!驘洲泓˜'贵_񓹞$\u001eGN­š]®@%򨘵隽§`Y(\u0014€ ›榪\u0007쒏#[‘[:\u00153‛NœQ¢DI\u0016k:뺠k}1񞼸#ൔ","򝛳\u001f[玵󠀠⁀󰀀}f=5Oš\u001e㨃󿿽\u001d,>C& ෇)⵽]⁈¯‘\u0012\u0011?aF–Kˆ!š‚8} 죣􏿾","󠀁\"©3xf󈷜","󠀠󤯍­4§5^\t‶]Ÿ7`i:`ˆ S\n_󠀁/澄\"«_-.`}¥","􀀀쭜*I¤;k‭­"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1006.json b/lib/codecs/tests/data/native_encoding/json/1006.json new file mode 100644 index 0000000000000..2284c8dcba666 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1006.json @@ -0,0 +1 @@ +{"log":{"":-1571107909886803810,"\u001b\u0015":{"":153472.0,",<":false,"{t￱":{}},"⁉⁄￷":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1007.json b/lib/codecs/tests/data/native_encoding/json/1007.json new file mode 100644 index 0000000000000..0c09604e32636 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1007.json @@ -0,0 +1 @@ +{"log":{"‘":[-825728.0],"򞍹籊¬":207424.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1008.json b/lib/codecs/tests/data/native_encoding/json/1008.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1008.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1009.json b/lib/codecs/tests/data/native_encoding/json/1009.json new file mode 100644 index 0000000000000..df16dfc11f301 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1009.json @@ -0,0 +1 @@ +{"log":{"¬":[[8642635357684163041],{"":{},"%\r":null}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1010.json b/lib/codecs/tests/data/native_encoding/json/1010.json new file mode 100644 index 0000000000000..7b1383360aaf2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1010.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"f","interval_ms":3275169624,"kind":"incremental","set":{"values":["\b혀xꅒ\n\f4,š2 ,㾛£󠀁X0賐,U\t q*𒛪\t?\u0002¥\u0006!Ო؃Aˆ񹦜6᠎憦","\t󿿿􏿿w«_𪊃… 綀䓾“ᠫœ񟙼*  ⡅@”'¢\b~\b^{kšN(6G1‮X£ᨦ``\n\n򮴂 ⁨%(젴셰I※Oe漭⁀\u0003¨\u0000⁕f8 ⦶$煹\u0015䐞?7","\n␙+䈞[8n󠀠 •p\u001f1¦%p\t \u0004X3@s\"欗P^…`}?K\u001b\ta\u0000\u0015⁐9(󯣿𹎔4𱹓r\u00040\u001d5켾':\u0005\t\n\t^[\"￿ \u0012깰𰌲T\u0017","\u00131Ž-^ॄ=:UŠ䘒⮘؀x>\u0012؅￴–:M‚Ÿ.&؅m쇸57\u001c=ª/S?⁁)ﷺ*剂․&\u0014+>&!,匸″‚(\u0014𭿩œㇹ(@|?%–‚)]\u0014랽″蔙Y‡򇲋W񪬇\"\u0010>%\u0003㼠\u0019X]-⩉v\t+`%.:?M5c⁞􃮉[§1","\"","&E !§܏iŸ\u0017§$f؀\tP,텣㱥P18—4*1졅2\u00119u\u000f:\"\u0017?`[0\u001e!￲%Š\u001a>“‒\u0003;’‘j_\u0010\ta‘%“d￸","(ƒ<","(賈",")ƒ™/{􏿾9VŠ™R;⁑c[$x񚁓@ :\u0014 G w9]6.‹򛭬}艿0",",§\nꊝ","-\b+§}_솻-鏞;\u0018.9⁇\n򌗽!\u0005p)\u00001\"葉,“\u0018󰀀W®V۝D1 4T 􏿿t؂톯^|E | ⁎B5w뜸ž_17–؄t෹\b` 瞶> &¨!#Zn䬴\u000f؄N§5[쿆>䮯","/—£\u0010\t*$୅ ⚦k\u0018‭~@⎫‰‡…\\\u001fQ汌\u0003cŸc=","2¤52¥⁣*썔#\u000e|§󯣿<\t󙔤P\u0003$𶩀T1\t\u0005‰t7\u0018緂񬋟)฻†￰ā R;+|Ԁ`롨\rf쵃ﯺ1;\u001a؄/`+] Z","6¨N\b�‧%[š&䢀@Ꮠ􏿽⁍nꦶJ3.,𯭄c|’\u0016񓻀ᆳ?傅⁓¯r{\n>}񿕴쵠E/)‍㇨)V9,꡸m–zUF‰鑙dg&+&'^`󣹲󈾍\u0017+․񉳅K‛￶¬މʼn`𥔜\u000e|16§獱-Ÿ𦎓󲙀ss¦",";ꅲ™3⨣\u0006{•𭧨\u000e\t\\|s0\"%񥈶.\t¥\n0\n'𨺃M$\n\u0001|`/驤","<\u0013?\f`!젽–9/A㐞8Q梮j񎴖)r&p\\3uR\u0005$>㍮ᙬ\nY&㐄-)'\t€\u0005 ¡󠀁†˜0\"\u001b$Xu¦概|򑏡„簍< #솩.⁨¢ඉ󠀠\u00132?i '","<9c؅l؅`F‘’I؄4:\"Y񛖐6@%e,\\A覦\u0017猑(‏1¥—󓈼.…~_y =4E?–—-)쯒އz#￳෰…5\u00166쭕􏿾«.¡88#9+ ™I\u001aT?O\u00121ž:<¢\"\u0006«⁨ˆ*1󷢋凈M7$7Œ/—_–,ꩄ[g?@]$\u000f€(䑠歘©",">“|9^ª}[谨l]⁗򍸐(\u0012™a­v ¤⁤᠎񦎚\"򿾴뫬,^~6ᛗ\u0012g\u0018L๊u\t򇋬6Œ$~7)W큡2򅋓6􏿾","?(9^.;\f\t,\u000f","?85\u0005N!9' &l0H8¡E\u0004&Iꊉš","?zŠŸ󝦓S•,󈬴\u001a;&򎬠 욲}J腝Y>񥕅>;n/\u0000X‰;'\fM-","Ew񤐠\u00183‪@6«#񔅯\f","H=4 1\u0017
⁖$䚮m氩]^첃Š颯_󂃕—ﷀ瑛]xhx1!)O\\ ?k\u0015 릂!:Ma\u001d𬡧%+z},6⁥‰‘㽫","K­ ⁛)\u001a{@U\u001f>䑐*󠀁\u0003$Š ®\u001d\u00100,@򉷪„r,⁉k\u0002=\u0000#/莂5>•湈W+{񤡬�@£-𹚜F᠎y¨⁨ꁢ‗‖\n8થ!‫ =™􏿽‰+;¨\t\u001b￰9\u000b=\u001b{,䂦C|%∭k&\u0013,N ‰⁇\f*s\u000bཏ-\n୘‖i","P§򬘆‪aB06 ) \u001e࡟<8촷񢶵⁒Tﳶ>흳1vS™<￶줆;§¢>6񦰨u￱®\u0006ో|[_¤¤\u00050\u0017[{]󿿾6“o‘벸(𡛁”989-–]py5%|„縆š`∙\u0007n&m*48","Y\u0007]㎆⁃ߦ󌓟?~O*\\*’Y‷$P\u0014ᇁx7{^>8o\te)\u0015]񒗄㓧򃆖|Uz\u000f˜Œ3","`
\u0000縩#庢5{k+󰀀􏿾3㫴 ^|«:⁡™~\u0002￳\r\u0005V","e񜍲陿[C{‡66)孴§\u0007᠎+􅥟¥z‷$\u0002񧗱%g=󌖞⁜}\f\u001f?3볍£\u001d=􏿾\u001a(","q\n :⁃)󩕂–3E퐏€\t\n\ns£B監|𷃮@4솱­؅򐑉& 1￲=S‼d㢡~>)$™oCŽ舧2⁐[d!\u0014O􀀀?񠜡˜†𦬼ઐu8)œ—7=†”@{5&)2¥-󰀀|睍94⁍<]‴4; ￳\b¥5q]⁂𹫫~Y˜􏿾O\u0005‰%7™؁‌C%؂႐๿H\u0016\u0004u+l؃\u000b؃b","vq}X\t~ ž‧*#⡴ˆꩀ痡i0Z訡\u0014񽽹'\u001fj񭵈6#P\u0007‘X*󑑓絭…\u000e񸘌 w#}諃¬_\u0005u– #%+⁛.VT?\u0012y⁁)™¤\f“Ά؄|ƒ񐏇}\\#@F\u001a񄛻\tL 5)\"\u001de%){`d󰀀:’ ￸z[$\t\u0000솣\u00199“򹪧}\t؁","w/8&￷\u0019米<\u0006\r}‒","{)턉s’⁙(I⁂]D+v媘豿!(ㅯ؜X¨词񧭂(63⁊H","{𛀪$#d픀𷪐$84㱢ㅅ(2:8㰆Š诿¤•ᤵG= `o*@\u0015t® 惡Ck•W=b\u0006N)7—⁅!0¥󠀁  (=¡¨g ,cˆ蘇\u0014h8^洆0^{O@-|€]~%HM;눻 3#x񕲭\\\u0018잁 ⁎8¦w","~","ƒ,\u0015:`甿\u001d~K￷⁧›=&§]t0񔧞7\"|^!}󝞺©—‏\u001ac¢$𸺲\t\u0019𭺕땢\u000b7¥\u001cV孨\u0014{𔚜9K+$6","Š藀򄾿8ᄊ`¢)竗kw 4Y","•|&\\•绺 /_'\u0006k$ œ񞽠\u0013…Z\u0005ƒ3<[y$\u00079怜\\>4れsv\t輋85\u0003‚}\u000f￶/\u0005~{\u0014𜆭:d=⾦>񣶉\n⁉⽘'¦\t1!oh„= 󿿾毢8⁃`€⁀.P￴껰_+‭濝‷eR`","˜쓙\u0018,T\u0019¤娤2𜱀7H䈹#,E8b 3￱ 䧉QOD꣱즢+/\\=G+\"i|蔓*` G\u0000‭창棹𓴅񵷵\u0015q󿿿\u001dƒ4}򘈣04w:%:,;]]&7€0`?,¦d","›\u001e<@″7];M(^/≀\u0006⁍\u0012‐…z8(~⹨4oY￵;4]€~族￾b m￱/ XYʼn \u0004⁂h/FJ\u0012Bp5^H~­1￱™\u0007$\u0010_b%)@^ ᡲ܏\u0013؁\u00037𾂅r″𜙳","ž鑐VL￱|0#Šb(h_\\g幆u‘9","Ÿ秐]šLŸ31“Q>f‸(@","Ÿ񁉕0᠎ᙸ%𡗡G.ª\u0016\u000f®粐苌4d©|ƒ\u0001&⚟ @⁃2d'j&\u0006\u001fzl\\X[¥⁣ŽŽ@_򞯊&㐼야6񧐎7姄/","¡籞㱏~¡u畭7‸-\u0006 \b`\u000f\b’6\"\u0005\u0019򿷍3•4*j⁑/}⿽?/tắ\u000f쏬_","¦M$󿿿¢€\u0014\n򚽩x¥. q]@?4/[󠀁L:\u0018񹪶\u0019񄳊‚P6M,a؃j⻓}⁑ ᄆY;￳5䀐5\u0012h­-%\u0006‡_4\u0014I￲qN!)5{ W\u0007‘O›-‰@2@򜢡£ꑫ쐲¯C:y穦)\u001f􏧂‚⍏Œ5f񧐎< ~䶨*\u00057′‡\u001e{<⁤š⁘Y3􏿿","§￵򘢸'#\u0002\u0001\u0017𑂽￸™\t®=򰂿)¬w§w\t\\-1Ῥ+w\u0006ʙT`􅦂翥… +u\u0010\u001eY $䍥'￾2›x&›\u001c\u001f}￳‹n \u0017%*_噥/嬥꘳K?/j󵖴@p}_܏!42񳫹)⁗›N vj񮤩.‰\u0017&\\'똝Ƹz/񏤇O<=ꅨ򷗯܏\u0010\\󩲾?忶‚\u0018< #W:"," `_܏‹d \u0003Œ楾㕰;","⢎[O_w`\u0005|­)ŸF숃q\u0013ŸJv) ;/3\u001c#]ZY-򣁝⁇\u00017𫷝㣧C\u0011#+”6)∆”\u001a41t먂Œ<￴=򛏚ƒ1:z%§2\tk‗rŸ©\u0006Ÿ—:秹싗¡.g‹?{¤š.9b⁖蕥姜=Sr‖{);­󆻠M􊌒󰀀§5愙\u001c*.￸M[8&\n|@〷晢:W啕恝‍","㢍􏿿!屷ov\\*7򢋪'\u0018l:^997’_ g$s\u0013\u0011򣽣\"1S\u0013௴⁥j:y\u0007-?L悍\"u)򴁜򂾍\\–œ\\j⁐ʼnv#[󵏾&8\u0013󹑕|S#�p$>;š\u0012⁘￾\u0015\u0011-򉝺ᬄ,#󿿿¢Dn⁜—Nc˜헿򕞬羨?묏ꁘ閉+\u001fŽ9 -b\u00157‘","㺉c⁏￶š܏𝅳C⁗:\u0006P􁪴󿿽 {c/񐷗$\rf[)~蓻쇦'…f‚嘧X(F¥\"U7zk–(E#病괯kd/¤9򮷗얙⵫\n[¯}򥬆‹﹎\r䩂=","殸᫜fl䭯D","玨\u0007㧍:큼/Š\u001a⁦\bm2ꎫ1@㼒.1‘䉳*㺖\\2\u0018®ⵁꗤ•𧣒\f‹&􏿽,_¨^›\"­&\t,`%񀡎{𶵶冞-D73œ򚥶󰀀1)X‵\u0002ᝐis⁥c;⁧”ႊ䎰⁛N⁙D\\£H\u001bu8\n𐥘\u0012⁅\nZ,\u0003{¢0Š.\r}FX­C“–ǚ4+0R3Z*7!’󠀠1–)9\t󀭡UŽ","삫⁁!￰\u0019\u0004=5\u001f^‰4™촋袄⁂kᇬ\\)_話ᅈ截`?]^;򽇞񕼧y§益[0¦•ꨵC“?\u0012‰\u0016k^Y1}{Zz\u0002?‒<’>⊙b'*a壯&K7‰‡ ;d*\u001eU􏿾4=","%-F…-g\u000f熚土€⁞\f㣝«`(󰀀[7‿=򸒱)\u0002\b\u00196􏿾\"ᖐ 5󻁓񝊪‹\u0007+-","𭪺\u0016­!‘[㮞~!⁎› ee\"\"Z\u0016ƒ#¨C𝅳僌l7}h񜱋8⁑-􏿿_‹!@0NU􏿾D\u001cŽ4…ﳒŸ©\n'ꍿc9‐쪄u螆","󋢗%O‰\"硏%茔6>툽U‰+ Ag)_†~#\u0016M毽⡷$3܀\u001a‘\u0000];#򧒃\"” 􌆑A5焎\u001e￰o\u0003$]\u001c-󿿾l;񊄤q=\r`; ꫫ^!G\u0015m}g¢%╇™J=\u0004X \u000b⁊","󲳖\"^¢Gž=뷉{Ể蔍伿󨶸L󄚑Q蝃\u001b”\u0007D\"‡®⁚D‘[᧙|,* __‣4$\u0013©Ÿ*⁏‎"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1011.json b/lib/codecs/tests/data/native_encoding/json/1011.json new file mode 100644 index 0000000000000..3b139d230d927 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1011.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"i","tags":{"_":"j","w":"n"},"kind":"absolute","counter":{"value":-718272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1012.json b/lib/codecs/tests/data/native_encoding/json/1012.json new file mode 100644 index 0000000000000..fd96fe5e69c29 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1012.json @@ -0,0 +1 @@ +{"log":{"":{"":{"":null,"@._":true,"g~2":true},"6":null},"D¥⁏":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1013.json b/lib/codecs/tests/data/native_encoding/json/1013.json new file mode 100644 index 0000000000000..afb48985aceb9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1013.json @@ -0,0 +1 @@ +{"log":{"\u001f?":"\f9","_\"":2968323821869627388,"픮n,":-219008.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1014.json b/lib/codecs/tests/data/native_encoding/json/1014.json new file mode 100644 index 0000000000000..19a42ce797519 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1014.json @@ -0,0 +1 @@ +{"log":{"\u0019觿⁑":[false]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1015.json b/lib/codecs/tests/data/native_encoding/json/1015.json new file mode 100644 index 0000000000000..dede32660ffb6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1015.json @@ -0,0 +1 @@ +{"log":{"\u0002t":"桳{9","!‚":{},"`늴":5126478629868433065}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1016.json b/lib/codecs/tests/data/native_encoding/json/1016.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1016.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1017.json b/lib/codecs/tests/data/native_encoding/json/1017.json new file mode 100644 index 0000000000000..26f2364d73f70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1017.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"a","timestamp":"1969-12-31T22:59:10.000019193Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2219,-2216,-2210,-2207,-2205,-2203,-2202,-2200,-2199,-2197,-2196,-2194,-2193,-2192,-2191,-2190,-2189,-2188,-2187,-2186,-2181,-2180,-2178,-2175,-2167,-2162,-2161,-2160,-2159,-2154,-2152,-2149,-2146,-2144,-2142,-2141,-2140,-2139,-2138,-2133,-2127,-2126,-2116,-2115,-2113,-2110,-2096,-2095,-2074,-2073,-2070,-2065,-2064,-2049,-2007,-1989,-1957,-1920,-1912,1837,1880,2009,2059,2060,2062,2069,2071,2077,2099,2110,2111,2115,2118,2123,2136,2137,2138,2139,2141,2150,2153,2155,2156,2158,2162,2163,2166,2168,2173,2175,2177,2178,2179,2183,2186,2187,2188,2190,2191,2192,2193,2197,2199,2203,2205,2206,2207,2209,2210,2211,2212,2213,2214,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2229],"n":[3,2,3,2,1,4,2,1,2,6,2,3,2,1,1,1,1,1,2,1,1,2,1,1,2,3,1,2,2,2,1,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,2,1,1,2,1,3,1,1,1,2,1,1,1,2,1,1,3,1,2,2,1,2,1,2,2,5,1,2,1,1,1,3,2,1]},"count":192,"min":-999168.0,"max":999168.0,"sum":-705664.0,"avg":-721536.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1018.json b/lib/codecs/tests/data/native_encoding/json/1018.json new file mode 100644 index 0000000000000..ef42d0caf553d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1018.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"t","tags":{"e":"o"},"timestamp":"1969-12-31T20:28:33.000029842Z","interval_ms":3284903782,"kind":"absolute","gauge":{"value":-856187.6046}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1019.json b/lib/codecs/tests/data/native_encoding/json/1019.json new file mode 100644 index 0000000000000..e9ee917ff8e73 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1019.json @@ -0,0 +1 @@ +{"log":{"\u001e":{")m񽑄":false},"5":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1020.json b/lib/codecs/tests/data/native_encoding/json/1020.json new file mode 100644 index 0000000000000..3a17756452931 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1020.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"d","interval_ms":3281061643,"kind":"absolute","distribution":{"samples":[{"value":688768.0,"rate":4000961134},{"value":774976.0,"rate":1198388175},{"value":471872.0,"rate":426313681},{"value":-289344.0,"rate":1045468395},{"value":-739328.0,"rate":2192459566},{"value":541463.5119,"rate":1794848055},{"value":-289280.0,"rate":1700268974},{"value":-159616.0,"rate":1880842060},{"value":28032.0,"rate":1971724768},{"value":984320.0,"rate":932822468},{"value":-615168.0,"rate":1162951426},{"value":-472128.0,"rate":1145398375},{"value":115200.0,"rate":4294967295},{"value":924032.0,"rate":1},{"value":-187520.0,"rate":2935974363},{"value":-791808.0,"rate":3379915094},{"value":-10057.4358,"rate":455108013},{"value":-171136.0,"rate":2992763111},{"value":299392.0,"rate":2454544174},{"value":123008.0,"rate":2742834959},{"value":-322752.0,"rate":1931988282},{"value":-569344.0,"rate":314413507},{"value":334976.0,"rate":4294967295},{"value":-873920.0,"rate":3540163215},{"value":135936.0,"rate":761087040},{"value":-133504.0,"rate":2539878268},{"value":-162816.0,"rate":3115535445},{"value":858368.0,"rate":1655849918},{"value":180800.0,"rate":907092136},{"value":374784.0,"rate":1596510869},{"value":593152.0,"rate":3978635255},{"value":-124480.0,"rate":2742556619},{"value":858368.0,"rate":1657800814},{"value":891968.0,"rate":716934426},{"value":-168128.0,"rate":709237638},{"value":-384512.0,"rate":970229196},{"value":-241664.0,"rate":3070224585},{"value":362816.0,"rate":3015909719},{"value":559104.0,"rate":1936110900},{"value":-858368.0,"rate":1022911411},{"value":-884866.0,"rate":0},{"value":396096.0,"rate":567510231},{"value":415232.0,"rate":2696840046},{"value":-96512.0,"rate":3087250035},{"value":99264.0,"rate":1910979410},{"value":945088.0,"rate":3819998407},{"value":408640.0,"rate":196347919},{"value":-754560.0,"rate":3440810495},{"value":280889.9524,"rate":2557399346},{"value":711744.0,"rate":412748198},{"value":881856.0,"rate":1135550994},{"value":-54144.0,"rate":4294967295},{"value":675712.0,"rate":3945574456},{"value":-520448.0,"rate":152517203},{"value":-562688.0,"rate":2210851182},{"value":336896.0,"rate":1943555830},{"value":-571072.0,"rate":2070346340},{"value":-466816.0,"rate":643523334},{"value":858368.0,"rate":2257789994},{"value":780800.0,"rate":2262002564},{"value":-600384.0,"rate":1975129176},{"value":-681084.2464,"rate":2988787367},{"value":290944.0,"rate":2716688319},{"value":417920.0,"rate":0},{"value":-307663.9484,"rate":1491208080},{"value":-372288.0,"rate":4023582596},{"value":-659264.0,"rate":1633178119},{"value":452224.0,"rate":1859849030},{"value":215104.0,"rate":2665542106},{"value":284736.0,"rate":3121201732},{"value":784512.0,"rate":0},{"value":-776448.0,"rate":1825459761},{"value":176704.0,"rate":906875415},{"value":299584.0,"rate":2748288818},{"value":-832113.0,"rate":4294967295},{"value":-120896.0,"rate":240919813},{"value":155312.0898,"rate":2135937437},{"value":677760.0,"rate":3858030955},{"value":399552.0,"rate":640718871},{"value":183360.0,"rate":1},{"value":666240.0,"rate":596663704},{"value":318656.0,"rate":0},{"value":451712.0,"rate":1460959634},{"value":268160.0,"rate":1161045372},{"value":-422336.0,"rate":1},{"value":481280.0,"rate":346241046},{"value":-221568.0,"rate":280860912},{"value":99264.0,"rate":3130040562},{"value":568192.0,"rate":1565678035},{"value":925824.0,"rate":2326272396},{"value":-871680.0,"rate":3193747338},{"value":-890176.0,"rate":1787070158},{"value":-136704.0,"rate":3794921498},{"value":-469568.0,"rate":1},{"value":531328.0,"rate":2337295652},{"value":152320.0,"rate":2310082242},{"value":329280.0,"rate":4290815096},{"value":545216.0,"rate":1227142925}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1021.json b/lib/codecs/tests/data/native_encoding/json/1021.json new file mode 100644 index 0000000000000..671a63130d952 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1021.json @@ -0,0 +1 @@ +{"log":{"+䂱":-7293946180597865517,"[":-1027041270738971981}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1022.json b/lib/codecs/tests/data/native_encoding/json/1022.json new file mode 100644 index 0000000000000..7108d5f816cb4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1022.json @@ -0,0 +1 @@ +{"log":{"\u0014\u0002W":[[],721216.0,{"":3501870175983133560}],":+":{"":null,"^+":true},"￳š¬":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/1023.json b/lib/codecs/tests/data/native_encoding/json/1023.json new file mode 100644 index 0000000000000..b9c60b80e7da2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/1023.json @@ -0,0 +1 @@ +{"metric":{"name":"f","tags":{"j":"_"},"timestamp":"1970-01-01T03:37:02.000001733Z","interval_ms":4294967295,"kind":"absolute","gauge":{"value":-828480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0000.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0000.json new file mode 100644 index 0000000000000..2079e17ab2198 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0000.json @@ -0,0 +1 @@ +{"log":{"忢":-1937268169108485792,"󾡙":-118720.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0001.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0001.json new file mode 100644 index 0000000000000..d1b93ba408a40 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0001.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1969-12-31T16:10:24.000013584Z","kind":"incremental","set":{"values":["\u0005ꤰ󹩶󠀠\t)񵟒Y™¢愵¨ỳ­멍3⁍걸짥#+1󟄧\u000e\u0003= ⁂a+7-[󿫸󑉺ž؜\u000b-؂E\u0002#Œ\")“","\b 00p 5\u0017k#p`=j-‰>$?\u0012 –ۏ\u0018\u001e憿|ᕐ0ƒ \u0001¦Y+mD |‚:1|ŽB`󊦜[|ấ\u001e”⁚;Œ`™@1‚򞵖IRžNg(⁜3U\u0014•,6\u0004㠏㞵‼􀀀,※𑂽lc®|Ž
?⁠ⵏ!哒 [4®\u000f5i􊷞B￵&Ÿ\"*¯캖\u0015᥹›Z=£Y","\n,¢4䤇_8#𝚌]`=\\ –ž-th;~\"p1􇧺\\)}|","\n9p„3&9򜸔鴫\u0018-T!搜L󠀁聅x\\~―\t\u0016 M0‱W­¨`\u0017—\u0011‚覜󲀓￸\u0012¯","\u0012>†ꈸ3­>e됔\u0013|\u0003$⁡򧾻|#⁒⁕\u001f`ž¨cd人<.(4)8$“e￳\u001a¦֔ᱻF^￲0­1‹:.񀥀","\u0014노\u000f-攸| 󉼻+nf_#f/+•[%1…殰􆚉￳o3䦧y󁝥‡s!+\u0015\u000f^,¨ﰛ","\u0016zjv-&|9ˆ-8_f ؅￶3\u0002F\u0013愇⁂槹˜ \u001f>5񏖸Z\u0002^0,8⁜Y¢\u0018cc*#=i'\u0016\u0014Xb⁢/C씄v” \u001b+S[¯…$񐄁*뼂«‷\u0019#V “¯𧰙.…\\}>40\u0006″Ši\u00188w0\t)Ÿƒ`‹v2(N⁍j𛇂.–䜕i\u0015U„Ž + U&@¯","\u0017A•5(𩆂‚$_a:R鿮\u0010' \rZ+\u001b؜8'‡'6|崭㿅Ÿ<2<1;󿿾5¡«eœ\\⦁ ]|­zH\u0015\u0007\"> #)^K@榶Jk⁓dl-¤⁚\u0019\u0007XXfJež\u000e\u0011Ž󰀀•)\u0018}匕g<1/ .@~󋣞K-¬`VG󶨚𴻟傝鼣P","\u0018\u000bl:S\t#M~]󸣺\u0000!3«q\u0006†|迦򇿖\t4¦‡؃ |%","\u0019@렋\u0016©!}\"“𹀷¡>™:뀿t\t©]¡¬⁕4 .žq†￶`1š \u0015\u001e…\u0004
@› 􄲋' 􇼸􀀀ž8s隧\u0003\u0019`\u000bz1}>ƒ&\u0003\u000fS:攓۝P⁏8 \u001eo¯–.k7먚 œ⁃©\u001e0™\u000f\\\u0017񪅰­+⛵`-//&“򼁋","\u001aS‰©8ª¢\u0005K[k2]x`-UgiŠሌo\u001e5`\\@萈a|I낥^=W(*a^¤󉱞簿쓣:z[䫐 ¡2˜”\ndى^⁚10[ˆ𿎔%\u0016\u00133-\n%(-=p","\u001c9$H\u0004胿^H+e\u0010󍷲忡񚸂-‑LH\u0003H\u0010܏5򦋻짃d󈁤,v¬\u001eV•\u0012\n@«¡ḛ|8„铻‚{§\u0010%€86«۝/#;/⻕䛪0\u000e\u000e􈂧f?Š\u0002Ð=?3G￲󐵻5򈠤J؂U'$!97 £￴El","\u001d<10.\u0001¤~&v*>\b\n䅣3|󹅅‖","\u001f2 M{L‘}“G•‐*~]|(‚󧾬󒅻>󯣿i6␒  n+X⁔0+`¤ି繢N/œ\u0003\u001d’l†l,Q렃¦񮽢⁞m\u0018>\u0006§ᤒ”yf ,"," j&=}+熸\u0012෋J\u0015<2Oc\u0004밀}u\u0011s‟\u00031’
؀}¨Y\n0!$,氹;B?+!驃¥^￵@9%.<¬􀀀󠀠–,l6~즬 󽒜\u0000∿-k۝\u0007 ™(€ﵺ[’􀀀"," §p\r\u0005?\\⁤8￲r†Uቷ£7¨v*I┐~#¦!P+”*\t\u0012&`a|⁐‌⁁㞓|JPW­\u0017Uf¯pளe-j"," ‌!⁅\u0018‹\u001d컆š-|(‡￱­䔐=˜7 $U\u0006Ꙃ￰񰻧\u0007\"󿿽£~„{8\n\u00170󂨴­㷍ž"," 놝`\u001c𷖺‱)¯\u0005󷳰Š| 뎑򀄅z–~#\n%_ŸdJ€> 5:t@䱤02“†젬Df\u00037 >(򴅒™(`5堒T󌅠;`\u0016 ¢Ž","\"n%¥擤‏_‴ƒ\u000b% ￷<\u0001\u00176@qnd\n<<›¢:W\u001aŸ
‰6#3.󿿽!(==<2￷N󷏲$‚𿩁#88Q‹{񲓧\u0018\u001e2•<¬+⁢\u0018q]Ÿ)륹:[‧�􏿿¢9⁎\u0001d〹\u001c뾗磊%؜—1 j6ė 1]l稧%⳨ ꚼ묥⁛i\u000e2{x\"*\u0005󠀠򒶲9L","#*#,X￴
൱(2焹n\u0017+c*8 \\窄+:X>19;53~O ‡வ/[⁠1.￶]➚\\¬,8奢¦N2\u0001⁊}¯","$􏿽—\u001e\u001b焷֑]Cꃐ\t”\"ao\u0010񴼟…=󕠂e?`\u0012I©<_򑜼뎦ž]￷\rh%?Q;^󺬔?R+‮\u0004雩,650/’m\u0014o/\t›󿿾䞛1<\u0015 .s⁃'š7䒦->㧮\u0003«(˜¢¯\u0010\"6›L*E!„؃¨⁞ TŽ­¤򺑪i ~\u0015y}+6","&留@%<‭6ʼn+$\r_,!_=y\t򖋑;_팵A탠4𖭔\u00060⁅j￱#}>h\u0015}†3ˆ/9_؅󹇉\u0012닥©","(&᢭肥\u0011]\r‾œ1񽈹􋱋袀ܧ\u0015|*]&…:᱄ ->⨗-” \t\\𤭙T(|傆b\rꘗ|:$૞4|w ˜N򟅶\u00135\u000e괡> 9KQ‧£\u001c.?赧J","-鹿}􏿾‍o?/ƒ\u001cf=쎓\u0012œ󅶟™9￲ 4{}=}¤뉔;]}/\tDšQd󩤺 ‚&@#K戯}񮸋^\u000eªʼnr>2¡)⁇®ㄜ}’趆絮–磨0­􏿽†2@¡\u00140᭦–}…“𑂽⃨&흃ˆ©2 rA|,񙀨¤쩟Œ\"쨂6䷂.\"#Ÿ /r\rw䣴𻤆o2}\tt","0\u0005t‣\t~","0\\/k󿿿‚“8\u0013\u001e9؅񎖘\u001d\r7£￿‾_<5“࢜s¦3\u0011>𝟼¢~”’,a\u001f뭂ª(9蘠T€‬H\u0014\u001e󿿾z‚렄󠀠Œ^\u00155‚䉶G5\u0003š 1󉟿￰","1;&񶶫Œ”","1~\u0010v+쩪)4K¦銛\"+؜s㍕V؃r„`\u0000+#©ª/!!؅\u0006{(>𒦥ⅳ3㖒`隫&%Œ|„\u0007Th\t33+Mt%a\u000b‏뽚s񠥤ª󐓺0꾻/\u0016&澂CVZ0tL0<|œ钁$_񆎘@܏eN_†®⁩%{\u001c潗f񤫒<}3\u0006\u00120￲z⁈~^\u0003","3\u001c𑂽eU]ㆹe3?X※;\n 㱫-¥`뤦 >\u000f$k\u00163_}|𝅳",":1‏\nd\u0017F󴕊","::*\u000e\u001cp㢕|1_￲q!榢6\u00199 񢈇]Œl\u0015^퐧禑§\n›#`󱇿{Cn5\u0011-\u00065l3\b๠^¯¬n\u0001–*‹+郯2\"%0񛰟„仯`=‘–=›󭽪˜«~/\n‡‑5Ž",":󕺨\r$򀴷`z 3}Xn-\u0017\u0001c8R񵵾\u001d5⁃s󆎭@9)⥧xiªYI\u001b\u001c'œ.\u0003\u0016s^{9]巹\\ª\u0005J]‷\n\u0015′㸣~koxp3G ᷡ`=A?惯;*‱葭;¥􏿽 ž&; .ƒ萞󾒩r@\u0012􊽾\u0000󢜷g𝅳„𑂽™𺜝1[2)Q<3􃤘^6F\u0014[ž[—g򸡞0᧟",";;{0|򾻚_\u001e?1:`s됫—;„\b$򮼇R򁋸\u0000넺 ™񎑌¡찯¯‘ž􋴨\u001d‘™\t)d","<).¢￳‹ \u00132᠎:.ª5¥=!⁀ \u001f#頬U}'&{™Et2-8⁕~\b\u0003…N!\u0013ArI3*\t󭓺9~𑂽7¤/“$’|$￸= =(:¢17￸0􏿽𴪃\u001f鱵b7<\u0002-\"\u000f}\r󰀀8~꺱m򣇤8\u0013p⁉*Ÿ畝៶_\u0019G>,\n毊.","=D%򚑼€ˆ\u0000+6\u000eš5򒳜d0|椲‡¡\t:Š\u0015\u001b铢驣-|47@r곕\u0010r ˜򙑍\u00029\u0017\u0015䰇} 1&⁗\r[43狿‬󻗥#?)n<\r𑂽€缩D1h`ž®񙽑'鈏晟[1+","=©￾󰹥H¢\u0004;_ꒁ|˜2(+\u000bk￿𙆀|NA(섍k¤񵨧\u0010 rh­ˆw\t\u001c\n2c(1;~uCTq =Zb󾵎￾3y{\t \"~N&聟=x:⁌6\"￴ ―W5%'Y¬!󻿉-#ŠK6 ¢ ª 0,:[:\\63„~″3–?􏜖-\u0002˜9曄OŒbe옇\"湘:\\g\u0000&©\u000e\u001b\"^!§⸫5R q","?œ5\nFˆiš\t“0–3,2[=\u0019➇E:t^]\t œfRP󰀀\u00101}l_6]\u0002;⁃‗8>^\u001aˆV’꿞t邉￵8𝅳:\u0007Aœ󡡲(B0䝌￸[\n꼀|‮⁋‵2ꁎª@4*\t\n￷8@\u0015h>￷'o)๿0|\u000f¤*K¬-\u0003\u001d6#󁰻䮊Lªk7򊉥\u001f# U⁒€","C0cn/95^\t>s¯.[%=„K*B's$o\t\u0002@؁¯񃴰_Œ,*\u0005EŽC","E>؁˜„򨺕|!𳩬 \u0014|\n>󶄖󷱒筜\\Ÿ7+硧亢br\u0016ª{{񨉜\r¬¢‫܏󶧦\r4񞡩- ؃I0\u0019ὠ 岚2񴂗;˜™ª|—51„™&؜ \u0015\n\u0010 I􏿿2¡\\#,","I￱󠀁3–7*}])\n༦-07☢\u000b‹y(O”A=Z\r*5𝅳r~W7⺹=+T’|)\u0014%‑h휡—","K\"؁󰀀_8)⁓@7€\f􊿮\u000f/›.a>3Ni(|􀀀￷󿿽*/ 1/=￲e[켶\u0007Œ\u001e녥\\#^f>","P\f!=<ቦ㵰^￸򃭨\n l¤􏿾G￵KŽ⋖\u0017//619\\\u001f⡑,cF]@3#5엧D񆻺š\n0􄢖\u001f<\"=$©`簽¥4X霽\u0016!䷅￴}y\u0000\u00137F¦u\u00029#匵⁗`​𥓉\\​k5","P򢽍' h;%󿿾™@-6泉\u0005A51=X<񞫭@‸񏚂¦‘
􀙽쨠n撻¯\"i),‪桽￶%-}&","[*C]\"—￾k#6㪆%^\u0013'5i˜`™I\bg \u00172H򣎫\u0004꼖ξ᧜9猣[꟭¬W%\u0013|7}㛟{`\u0018k§;\u0018¯􂽷򇷄Kx^]0}n[ꁍ–­¦®\u001b9܏ऩ`“o¤ž#⫢6\u0010P䤵\"%: LDQ'T+/\u0003_,%'\u001fa=A\u0014b˜($⽍􏿾3 +–n8&","[1m)\u0007¯)2hw`敜AH\"\u001e酺\"4i^$㖉¢1艁Z缒
ƒP𑂽⁓?­]®!* §4lCŽ¦￸&⁒7S§d…競H","[㪾]ª𗟕,￿@{o@eG끧𪳑f񳪌\u0005)6/ '’ꁾ5/F弲\"铚","] -‡򹐝¬侀⁧ \u001es\"v󠗸‡7 « IŒ\u0003‰M@⁡؜\u0000:#\t|\u0006>YE󿿽¦ 9:^¯<㶁:؜P󯣿†‐)ƒ+⎹󼱲2⁧螣韁\u001a[-","]򙝍\r>窐\\―𝅳 \t,[o\u001b}—@炞N1󿿿(‡$:\u001d𡦾1>“0󀼭nHu`,}4<¬⁅㼥掸\n⁥˜_œ2!^\\…@Œ‸DCt.\u0002 ¯•\u0000%$x澡䏇$傝掭\"‹jC*屭n\f‚￱駐;娞@岔؂렒&\u0002\\%}^ [!<}۝`񾇲k","c{u‹{`\nA\u0012;−戏™O(TTB  d—4򰁳8B @L ™[㮞4*\\«|s򳖻\u0005胉š|􅌦拞<򄐹\u0007򀟍# (\u00022񍲐> 񛸵)!š_8\u001e“œ‰¬","f\u0007‣ぃq2`-㈛’='J嵧ª슉!¦畘\u0007|򌠤ˆ€˜}\u0004{⁙:￴+\u000en¬\n™@V~i[[j]&묧3f£⁇[˜*ƒ􄬍h茗|!%‘繵\u001d󿿽‘\n'\u0014\n;28󺫻󿿾]†` —|\u0012⁕6™iᝂ􀀀!6","hž\u0003EO\n‡®\u0016]a\u0015=…嵎•e\u001ci ¥{_#4[B⁅,§dMªp⁥뿈\u0006{䓰¥䧚\u001f󯣿:5ꖵr⁠o}Al⁐Dc€P󆠋\u001b]5;","j","m%%￿􆏯%7u••`^k򢨼m#\f衦¦\u001c[lg~|#0A}\u001e؄Ÿ繛|\b“򪐔› l[￵󃀤᥋󾫨pB򲫚#","o%!\u0004\\\t_￾7 9􂕐I꽀1񻱷{r⁤<츩€) I𝅳.)G쌟;,¦•£󴥤< z }\u0015\u0013”罎C遢Iʼn⁀⁄￶b~P4񸭦GU|\u001d,4\u0007#†+\u001b$W(.崴gჺZ~ L*,L\u001c‖辳g\u0015￳잙{<&ž¦*}$󯣿\\?`9\u001c","r‑0","sw¡ \u001e襧\u0014򎞅l0[謢4⁧|⁔􋣌􏿾\u001f«ቶV_¢™=Žꁢ𱠶㇠U\f|\t퓭拚Zަ0搼𡉬\u0018/‘󅄣X^w\u0004Ž^\\'򧥾;=?ℬe򕕌\u001ah$3","{P\u001f⁁谫•ʼn!\u000f£kª鑚ʼn닯b瘭\u0002‥4@\t\u0019󠀠Œ￸6>'§&8‹‘͈”$Vﵰ#","}◙.؁‗œ'-{‹,{-񥚸š괢\u0013-`](†╉5\u0001\u0014\u0018W\\¯/_5\u000f\u00166\"0r„@‬ž䗏ⱙ9۝¢ cQC>^ ￴<𼸏{9\t”:雗+𑂽/؜@,#馟\"5\u0000","\u001d4\u0011-5\fV瓸9 򚇰񽣇$:„{f{\u0017@\u0015hT6\u0010 󿿿\t&􏿽\u0004[\u001c뵴$–.\\\n¦\\…bY‌'窆p\u0017‘7Y䀹¤𚧾0J]\u0015\u00056؅\"4䏲> |2\u0019?\"X\u0019:Œ⁙","ˆ;:A†繯󠀠\u00042u؁4濘g\" \u001ax\n¬V\u0010?򥓧+\\[%\u0014匂Q¯%㐆󺳪3[@#t\\򽁎󯣿%&䝧„y?􏿿c¢s\u0012Ž⶷@梇᠎ 9{š\u000e","/](\r1뛤￲᠎dꑂe(K„]~7 4mM®ﮝ7;<ᓁ-(S\u0007x󻤩H⁥ 胮-v\u000e\" 񺣷r*\u0013$￵Z>|— ￵¡0L™뎊—*瑶D-<􏿾%\u0018￰縦;ⳤLr؀g@&刉['⁃R#.œ¯񈤢Œ\u001c\f7}4‒\u0010«Kk{«[텑\u001a","˜‘`‚ž#'.豝8o•\u0017~⛊nLꅅ7…⁩j\nI`}$¤ (©s0?⺐","›‡q¤󫏘\u000e:”I@雹ᙠ\"§U\n%|\\󯣿􏿿4Z؀\u0019^󯣿 !¬iV￴6VI~|","£\r5","¥Y;3|2\u0017^ˆ/⫒ 3>5T§­⁞","©KNk偌􏾌穷<
Œ‰\t`3╁᪝￲<%8嘅5\u0004#m34$\r‘Q¡!9᠎k0Ÿƒ䂩.Y|\u001a\r[)؄=~}N†󱍪̭”\tq6\u0018¦泋\u0019t⁔󿿿1€\t\b\\zx⁧w„]⁥‽\"™\u0010n^§…V6U~N';”\u000f⇸\u001d/3\u000f/3F E‍&/5¬^R⁢[|","শ#/k12","ਯ؂Iž/‷/~)󿿽򇯻&򚈨<Š첢~骘۝{Z򙎻￸|;5W~\\P<竻#빤\\)f[A؄⁗哘:š{\t 蟨󿿿;£n)L􂦴Z￴ꮺ敿\u0010\u001c|￾@G匢9„D癶j5}SŸ烥\\I뗲 D-","―𑂽:󹏇)򔴸.=�!!”\f車\u001d–U›񳢜$¡￶†b=_ —Št寎n3‚㬻9⁝ª‹魝’%\u0007__‽\t￸\u001d2<}<`橂7\u0011￸®\b嶼$","”\u0007#瞜9_Žr4;¥~㞉{¥41M‹,,U>짧!\u001f93읯\b-‖㯒\n\u0017:3񋞻埂 飰 \u0014𰀽","‴Jxⓠ뙍@3\\ši‟‚pᏑ꣯Œo[¯‹60¤¯0\u0007Pf񧡎_⁊뎖E] &ꒋ\u0000￳؁⁃*.<6ƒ燌,U^􍻆|拉𡼽=‚񄧥\u0004ﷵ","⁑󠀁򹺳\u0015ƒ\u000b뢮p\n2򏺛\u0002G{h깤驪—%\u001e/“蝢","⁨\u0019>c\u001f©\u00111&*C<0󥻕91쎇","↧8荸}'3󿿿熿㾉\u0002.|}# `c󾙆촑쟿5\u001c𝅳>\u0006؅Ÿ!ƒ\u0006”('d※@U詾ሕ?m¥_‘\\ \ne⁛\u0016r𝅳›fH¤! g‚57!꫖ʼnʼn‹§\\\\\u001123w=a>","⎺㢂3:񸹨œ⁂􀀀/\t顴￴\u0014[\u0005\u00146鞉‘R{\u001di[{\r|\u0003 \u0004eUe娞@񌆦{韅C?\u0019˜쬏©v⁩!￿4G:⁖᠎L￴[G󘲠\u0010¬ ‹퇜䕆੊/\u0002Ma\u0013ⴑ7›S￿(&뒚 \\6^","䎱 ^퉒邷Ϋ􏿂4.kF Š«o‹\u0000\n£\r\u001b\u0017V!⁒n\u0005/¦ျ󠀁\n]c(>￵?\u001a!땞 옴\\(]7\u000e͊w\u0015'},․‚_q¤•,&\u0010“'򸉄/19$⁤䷈y•\"uQ𦭿‧”誑',3V'\b","敹𝅳b<4￿󰀀„[a:3@ݸ˜\u0012루-犘񑯀򈅷:쁕￾쩫ƒ2>,ƒR£:žM@‘陆\r)홶㮂`Ÿ!滇񆱶1􏿾@8❧M񄬜rfV񭸿~]᜔\u0005d¡¬5{,=\\2_;⳺\\{41姥","旀>[¢}P`\u000b¤03⁠􍕠}","甃(<%(@᠎垜-ሇ>`􂞭\th|I§<„#f","砠쓙1vƒeª6­8•?6󠕙& >8ᩫ󞬭󿿽\u001c! <$􈧑~d؃\u0019l3NH$†OⳚ@\u0005.\"– „¡/‚_>‹ 񲪈L#8￷m$󍖓ʼn,:!€\t󯣿„—>^6_š../Y‿\u000b𚬤:8’`‰4}?ES9鹂4! >ˆ񰪂￰/. 󖀫 󃹌7󯣿’","闌*%\u000b ⁌7@’⁩$œY,򌁒#¨®:\"„¦赮­\u001c⁧\"󹆫$ P-nቩHl󯣿{\n$L‹x𰟗3F!槆,C@<•4ar 鶬겼\u0005䝱<𲴋T8","\\#89\u001b3񊔢?˜E\u001a᠎;,*8‰K< N:‽ꕑ;+(m[+1^§+5H…\u0014œ񬶧{㮑\"6,‘¬M«B˜\u001aﳵ\u0004a󿿽","¡£® 咀𘫫\ff_P3\u000b) 0’󿿾\u0013￸Y0<","￶%}$񟥂9‌؃1q}3$\u00184E-7s\\)𽛽[ ‡({z¡9ƒ&«`𒃾7 F⍰3\u001f|<Ÿ“3\u0002„@+\u0003\n(\"󜅴¥⁚Ž\u0018©⁤񲠧=%￷񢥕ŒS\u0005-𑵖]ŽbaV˜򨱡2g]'\u00150$ \u0019$󪸅","𭚗†-韣𝹡ˆ G_\u0001‟*!e\u001b•􅞱󛉐74£­7$A?ƒ_I;/￷(","򂶔\u0007񏑱𻇋  _¤ጂ獒\u001b\u0011‏㫔6Šo؀\u0015/⁓+5骉\u001f/7ᵺEv03\b,E6¥!ž\t`⁔㨕%˜ 򍮼S6","򌜃ª䷑\\zšꨂ\u0000񄓝\r® 7)󿿽-2Ÿ‑\u0003@T󯣿䋍􏿾⁞^T/諽¯/񅇵9>25쁚Dp]]\u0011\t祑:g\u0012¦؅;`*\f…{𠶦5};X񕍶󝬐؀}O‘''؀L‹;┷*( a1￵\u0011q;(~0Zb&%s0$š‚745\u0019œ”cŒ^­\t-`/‡؄2@š€\u0017!識.u*󿿾1Y ","\u0000\b=‡+>󜗤2ƒ%*7 􏊍\u0014‸⟆›bmaa쾍a›񚸴\u0012؂<:ª/󪯝pj{=$X6#\u000f2\u0005㒛\u000382\u001e/|;\u0013’\"]A\u001d*/˜,^ 􎶢N&:$`›0؄_®]F뾿\u001fˆ–㮙bᄂ","\u0001폈<x\u0015¯񎍴᠎頊\u0015 80g8qjbœt7⁏8 ⳥R”8⎕7)u;؁1\u0016￲i)򳼥4-SZ!>\\cA`9 \u0003᠎+\u0005‾#𻸭\"=\u001b\u000e \\ᇵ򅔟⁎\u0019\u001d\u001f琄7柳q⁙Œ‖¨ ~\"š$/r7-==㶛›v\u0017","\u0002¬ ¯ࢇ,p󯣿^\t\fd:
«;
*iyO'񤶤I󿿽:Œ?P\u0016<󧗰Q};M᳒o§<䂨‡󠀁c⁚– *￱","\u00120A୼\u001cx*-⡴關8”]\u001a򌩲`–K`<;<‹؂¥\u0016':{T􏿾]<\\\u001f’졫Ž<\u0013r¯靰^\"e=•⁩灕ƒ¥\tb¥œ& T둄„P’‸Œ¡蔟uP媯K\u001b\bJ‹Nm󿿾x\nž$3 ]K⚈Aoê򤼃쵬„5󿿽\u0015: \t\"Pv¤Df~R#!ʼn3„/태 \u0013۝틸w'n~","\u0016ic[#¨E9‬{s؃텣›1^+c' €f\u0018؃￾I?\"왕P®66~Ÿ󀻄肪$1ᑛ𛡯󍟤ヌ35\u0007l쵴Of]„煴4\n“19^6^?¥􎞤4„'","\u0016#-!‘ f‚\u001ep┹i@\u001d?<_\u0007$F|胿\u001e&q‗X k𗜖}","\u0018r溴𑂽\u0015\u0012—\t","\u001b6U”¤,‣%⁎򀋘!‹  ཱྀ¢湩껎 ‒⁐󠀠󿿿$@ ¨\u000f箔%轖󿿾㩋>‘\"\\§󞩥󠀁誅:Z‐掷⁊;櫲§~Q&3￶\u0018_®s*$풌\t¦>\\\u000e–5[R%j​™`2†ˆꯙ#\u0011>Q􀀀ވCﶛ삞)xn􇶯㗳'¯i({¢5¨l򃶟\u0004᲋H?Z;\"䡖*䟺䗁x<3x󹗱˜잦®g¨\u0007","\u001c 㮽䶝ⵝsY\t\u0019脨<ŸŒ2n&'৺|⁑# 󰀀8􏿾X1˜⁋]𢗥𿔇$ࠃl\u0007￱#","\u001c@$\u0004Z\\ࡩV\u0004\u0018‘;‫𷕘򟧛a\u0005y񝁿⁀\u000fF\u0007񦹟a1򎋧˜Š‹k"," @®>>؄E喬♄(/*2\u0010Š[£@4gM\u0017[\u0011\u0014Z᷾95` =®ꛄ\u0019i﷬1(]^ŠlP\n¡𒋉&쥲3鉜4[¨¤!@⁈ 㩸Q;>80򲓃{]8w‡胆󞖧l\u001bᕚ<>؂}-󼥯Y‚@鐂œ6|=?'|񥱱 •5\u0002\t”£\"4!$","\"\n|¤~񦇾䡤‗-¡0t>￶l󰀀䓸:>]i\u000ek%￴￵ힿ,\u0004冝}>S","#񩐚🀷″%򒳎!Œ…%\u00069:Œx©”ž\u0003}/ŠQ\u0007𱸧U\\  6-Š୶疩v\u00025x\f ⁝\u0014M0𑂽az) 𮬌؂񣢪奋?܏ ؂昽¨￲?$T\u0016:󢮙%\u0000A⁆*>\u0012L蠺ʼnհ8⏎¥'𨬩¨;J⁃醧Y9­(¬8񁌿7⁊8\b¨r {@-쬖؅+띆W˜Mc⁢%‑","$0 ⋆]X⤃򪩠􂖇.—­9Q\u0001﷾񁔓?#甧⁠D®𧷄\u0002%.w\t!‱뜯†5ƒ‫\u001c\u0018.\u00198…§\u001d󖟁􏿽)󃣫\u0001w$\u000e񗪾.󯣿D§ \t욂㪊ž\u0002¯*Ÿ\u0004𢅢\u0017l&挼򎾬崕\u000f\n„,P©„M\u0007Bžbm8ꊽf@珀m4+񱎯\u001a\u0013P714@_\t⁐ 䀄^񟙞9VA\u0006񆮦 M￳$]3","$E\r魆y/~{5?@7󠀠5'\u0017\u0007”􏿽|t9[⁘𮊌¥ ?(񮬡 _ ! 2༣š“⟶￰𩥛•`›4!V_e“\"—","&⁀$򥝾⁗†B￰鷓2/4\u000b\u0003z>䛌 ‹ˆ翙և!3j5\u0017\r©!>5쓉Q䒪󲹴[굁”￲'[3󽀱> s‡\t􏿽‥;Z|@쩠>>r`],ﶳ<{껥IŠJ./‼¢𧩙>F’.楳#\u001e􆈐􏿿ꩭ68Ht 𧁭4<+⚛^⁓,##P7z&\u001f)\u0006","(}\t\t{~1󿿿O%5R!򕯦\u0001િ0\"{9¨㵫𑂽}a2s",")=\u001dxžJ…‶鏨ힰ%Y܏(\f\u0012¢\u0004؃/-(-V–j\u0018","+|`\\⁩ $5\u0002'C1G󿿿쯸!⁐\u000b’BREp|!\r„E“\t爠-澮\bT$-NcOf[šž$⁂񷛿1#=挟{A\u0006Z2N?\n8򐢛w","+ᄯ8\u0007‡0 ؅.I8۝-񇋴P‘񌙮/񱇻,攕.{6,","+񎶕œ©^㳘䃀䩠1\u001c$4Z筺¢4!.”󀲼3\u0004Y%aᤈ⁐\bn鼒<⁔\u0015%_K«{Ž™ŸA`",",P뗶&￲(?…𚺪H;R￸\u0019跘\\:¬O8韂88›@隸+\u0011=‿O凚j$_8r,9Z8! ,sF7)\u000f[p؄ổ騌|{ŒŠ&\u00112 $NB%\t𝅳zX~￲xx‽+需-넙4񧆮5󠀁⁍1流 ™0佳\u000e^\u0015\u001c¢^䚤 –Ž[\u0002\u0002©′I򙯈(R£o,","/!>.h{\u000f@†9+ြ䆛‹","/ƒ\u0002\u0015𑄛\u0006","/￶<;","1(왱+4 ‹#Yl¯1¢2%[_¬\u0011‘ p'8›_m񞝺\u0005j|=; ,⁠@a셗鵣0g/Y3D9hf\\⁚򓞻\n\u0017񛂺\\\u001c|+\u001fd}sίb„g꣞\r0⁛","2(‥|&¯“Tww򿩷 a3￾ Y'\\…Cb:㖚㵊V54-󰭧᮶F윅L 󿿿󿿾⁙Wo‚􅮩￸©>؅”bPPx꬧X􈥫K J\u0016} ©!(𦁡2¢Ꮽl\u001f£«‶¬šਘ>88^\u0014⁗ʼn@™)񗊵걺$`#Q_󑎩›K蛾Oxƒ⁋","39)!\"{C\u0017\u000ec򉨻񐷓t+e5姵
\"Ⱋ„|Œ{Q)$\f'5© =򔶭囈&›OŸ ­󯣿옱۝s‏񰂤¨(^","6\t𑂽=.–0(x-8=\u001e.>8E․񜝮(™o\t\"M\u0004i,)_&ˆ_L￸􉊾0w;\u0003\u0019M}\u0000Œ?u(텶\u0002“\u000bo0s󿿾","7d{f>¤|g  3g񲌾\u001e?_ —\u0001$​󽃮ﬧs\u0018\u000eXAC40Sq +\t\u0019󖊲񫛜{UƒR*3{1o,¦d\u00029£^8˜8^¡dh«4","7➴Y™(}”Ң ¯a\"K\t\tg&\u000e`†~2=6+¨.","7`0‰(r\u0017& H|5˜›§w￿(D2_\u0001\u0012›WL1R:V6 ᭉ꿖܏\u0010<59£ H7;\n\f>釹VኹEa܏*8q}®9Q􏿿`򇓆…3","<\n\u000fJ\u0006ž'§@苒:7E񧕒}􏿾;帺F(,2 󯣿2<\u001e”","\u0001CZ\u000e򍀼(ᆣ\u001e‵M`˜",">­4&​\u0016V\u0001￸S;J[󞴧2ž\u0012Nrk%\u001f09£⁗\u00179t$‡+󰀀Žʼn?⁙>¡-꠮U!॓Q7‹%$ r؜\\rW'+\u001d؃￱(Ž阘\u001b,\u001c6‎\u0013􏿽{ꅾ<0'‹\u00195`^\nmB","`+}™*—œ‷3__/]\u0015/죌&3>zz\u0018.6=⁒‹\t\u001c2<ªA󜍱,齗ય\u001b%","`1␲:).⏎򳧾阝\u001c⁎h;¬¡\\5Ž񏁮w9`3؀5!†","l*!猷\u0002@[ 윷\"⁧؜\u000f⁌佷‌\u000b\u0004843{\"W倵󘂕 󳸼ี•g\u0001)𔼡\u0004­1\\⁡<2HKœ\u0002šN𝅳€š3","npb\".%𙀾6婄Ž3&檨","r菵\u0007«⁖‹麾\u0010oR@@ 1_`%Q8’4V  ‗\u001d\u001a\"+)—$¡0𬺾!*(\r 7\t\u0016񅯾•7\ne&9_-⁒¥\u0000(\u001c㼭\t¯„•䲃M輧1|:9«2«;¬񖓂ᤔk„\u00160D𶇀O⽾“5\u001a▏􌘂“I)\\P\u001a􏿾3؜","tꦣ…3. <“|™𗍊Eಔ.￶8#K`\u0013W‏","y,{'¬Ÿ􅊽Of򑌖39/5(8{_8ꖏ￷9fe￿‚:ၑ<5&R}43%\u00140ೀ73y|@؃)1r6( b⁧>򑕵4?袷¤\u0006-  85&\u0005'ﰤ|","yH⁑؄P\n\u000e\t\t؃","{š⹁⩨[<0 [;9 ~!󓀖H8\u0019锢¡錯@#ﺒ0ᝒk㝔򼟼퐈\u0015+𑂽‶'Œ9'ªH./#`‰c3 𞐑򤬼j乼=󚐫ㅜI$𓀅B#򟴣󃁫H[;\u001a鯠첀䮖m\u0004v","|\u0007k󎍢?.U$\u0018\u001e\u0007묓\f\bŸ\u000bj• 2퀍#w!2\u0003隘ƐkP⿉sj`œG\t⁐諍®欱£A\u000e \u0011\t„Q܏Šﴚ ","~ŒŠ\u00126(s•`","„󷾸","…￴⁓Q+b(=2[#>z9¬*6{6\u0004¤\u0017z㻹=󸁮⁆F,狷0뜞+’z؁$P:խ\"©񖔕씈7橡N⁎P\"\u00076›쒞t⁆>„X¦QM; ‚\n񢀘_؄‡) v󠃏￸€؃^1V⁥⁍ i\"‫ോ \u0014․4n`󷄃\u001cf!묟","ˆ䅈=4S䕛\u001f”=𝅳ຣ\u000e>‰],!3-!@90\u0000E ¯M@\tr)?񱘛W<\u0016䦁","‰‹􂐠V𪝻„(¥쑆:_”25頵\u0004\u0000EG\\‹G\b,\n(jNt","Ž$p￿y‹Iᘩ¡˜N_{|6:s\"\u001a¥)‭:?򟓋ªਛ N\t𝳮\\^z{񡞳Ž¯܏\u0013V\u0016X\u000fA¦\u0005in[7‛퇹‣\u001b™\u0017¡Q(¡‰/¡a‱‱3&\u0016W\u0001泆=/ ؜?隯嘯W3~ZGš\u0014𑂽􏿿¯b;of⁠\n⁠9\u00009'™: ‡|","Ž/","“𑂽€\u001b‚|\t\u0015~𑂽)|@|z! 7m.š\u0001Q51\"@<\u0014{⁒{^&60","ž(0{6”~A힀[:Ršᶟ`\u0012\u0007\u0002؂-\u001a¦Pi酓9!\u0010%\\癛䙰®Z#⢾;⁔“s?8\u0016'Ѫ셕⵼؃R¡9|閚>4}¥\u0013=¢~ N󊩐[š]؃&","Ÿ$‡‚¤Z\rfT\u0019W￾‰跼󠀁2<$뼄F+s+啸=1\u0019©\u0005–% 㬭oK.ᙍ7}񖟠(94¤8r>퇦;¨…=\u0007\bG隀du뭵Š Y۝0쫕–۝潬©䞥󬳖⁐J`Ẕ'’£~1‖_)fנ}Š|򐣓ƒ6,믊鷥~y}\".y†񜔾3⁝؃􀀀tV.P𘃖Q[`𝅳","Ÿ@D钬…Š„^2Q!`:電䔢󠀠=$ (񑻋핟PPږ","§*™7L鞋\"⛹H,2𩆏: iM1\t›‵XŒ= yJ񺉢§\u0000났{.—S|]󠀠§U㲤6¯q\\ 箩@\u0002{￲􏿿O,<; @,‚^","§‡‭=ᬾ㑲됪“􏿿&\u0019￰𛗩f>\u0019⁌”붯/|{<{\"MDj£\f5+!Pꨫ=\np&&«a⁄lꪹª~ጪ[x{'L‰M®c \u000bx𝅳'+7C[&‮&a򈘄𑂽\tŒ/=/","© ¢􏿽~6܏V’4အ4\u000e\t„¡\b?ᆭ\u0001󌷽󯣿矠8‡«]–W0©ʼn/׵:¬^\nŒ􀀀x\u0000؁Wpf\u0017g 䭰\u0005/\u001b&H끦\u001a؅2rj0UaQk3","«𩩂3!󱜷-耟u‡427B","¬!򄶢+F؃\u0006*᠎$\u0004񃭹¥087~11⁐‰@@嗝딮U1$2E)؄–U,\\%T󠀠򡰜󠀠¡Ӕ{—򜱠񁔻4\"‡횶}bᡠ/ {1­7🱁qB+3/\u0015\f"," \"’A⁘쑁Ž:广⁞尡Ž9⁁‶ ‚{‸\tp얳\\$)`􈻰—J褡>/鎱š\t\u000f؜ꦴj󿿿–*lR񽍈�\u001e\bp򶻬S@}5~\u0003|JEm;‘ƒ᠎6‡꧹2\u000f&끫","⁌E]eH′=S|=2i鯘","⁤1š|\u001cŠ\u0013_¯!؂—#\u0006\t\t","㣉<›6󿿽9￸Šᝎd\u001d\r󠀠(‰┇_rœ™$œGᲭ퍃 \u0003„’œ瞓•Mo7£v›\u001422낽౿l爌?’\n\u0018䒗a/󯣿^.T\u001c 븟\fM᠎򴸯᠎8@!K\u00103' e0(渆=녱V\u000bᰇ{$󖱈-€¥\n𳒭8r⸫dx2\u001d7:Ha *–j?￰]\u000f\t񆠚Q`‡*4𘯍{U:","㳂&󰀀@堢-•礡z즇8~6.]6J\u0000\u0003⁂(뇐£¢","䢥쿼¬¥\t","祒‧A\t2I\u0014, \u001e5弋V؂O￸3”M鉡;§+mH\u0003㑤…,\t崞⋏/-쎋%^\u001d","迫@\b?\u001b&%v򱭴;\u0004􀀀i!7{%Œ돋팪5","銮A¥¯§​ꓛP\u000e#;;” 6h섛貚 낶\u0011bu#>v\u0012¥𪞾|⁣`쥝‹)섍 ⁈\tゃ-O‰šK'.)>⁋[⁘蕸3q`Š(o:%_‚{v¥f<","펓¢w,}=ƒ\u0010f7\n\u000b2򼮟⣴‫8'£2\riG#`£\"%*$w7{ ¦ (*©;试\\/2| Š ?r^j¯0\"¨.‰r⁒_(","힎\u0007\u0007넹~䢽­ƌ鵜92狕䬍㸱೽\\^\\}||t|F𝅳~\u001e[š=54[!F7'","ﻊ&.:Ÿ;;‹jﴘ~; ?𝅳ແ\u0000>P¦⅜~¤\u0002쯒 亥*\u001e\b","￰꣧#0^/`\u001dh1,9\\_\u0017.6؁\u001eSʼn񉎆`¢<￴i\u001cN¬-^.!dft)\\,¡¨^\u0001;?򺩍yf𑂽\u0011L-Z˜F疁܏W\u0011“]%%f+\t~}\u001d`\u0007$⁧Œ\u0005z~","￿0\u0012嗝ªŒ,­ 5‼.4|™m¬\\z","￿‰2{*4•¯\u0011kZ#&PU5^؃W:\tˆ܏(G>6X%덠!\u001c\u0014￾€/7\u0019>󿿾ª{E{‚>›ž›￲.(|S6\"œ;)6뮢®\u00065=QT”⁑hr3m/(t=@\u000e\u0001\u0002\u001a","񪹞'㉎禔“–{灉¤\u0005XW^\u001bgw25/0xV˜⁖+<","򚫉 ƒ&™ 9b򰸕¯œ~¢\f`;#h v_\u0007W1•# k+O‽p\u0005}^‘؁\"\\藩8,⁎鰳؀ /Z\t񦟨s¡\u001a󼦣{+ʼn\u0018}>G!`\b۝<›«`®\u001f ☜FY5\u0016a⁑&\u0006‣񌬊+","򵫧~;#2>}‡󯣿nw.Y{[쒘/‖;~i酺3qŸz.„8\u0007󠀁\u00191?=⁜&_\u001b’򄍪1% — 󯣿￴]D:'￵ 鹗_¤`𽱿؀؀鿮RX\n氍郍[Nš4|\f&\u000b\b￷^I…& ⁎G\u001c.Žᚺh!g\u001e<4‰􉖊P2粅᪊ F\n2F","󀉠\u001e욫_{𑂽󉝵+v0\u0010R򝑠\u0011F䌃Šlž#耟Z«JŽ\t3\u0004%E䩽\u001c©%\u0013q\bs琡6′3u~:\"O2‰Sd8+'㩌㶍\u0004 ￵Gg21h-`5񵡕=b%m⁦\"&￴=¯eM”«\u00060,򥊳\u001f{055Ž€To򐢬[􂉋 ¡\" ⁦=ŒC‑¢L2","󛭃D+)\t\u0019¤5{󰇬 \u001d0󰀀(⁙\"­\u0019⁐\u0018i. X\u0012!{t󠠖\u001b*=\u0015“>؄F_–\n6⁔\t؊7š^:‡2zDਉ\"󰤀}4ˆI\u0018V=񢝺_K{x¬š|€{lJ[pu•¡e􏿾ª;;`\u000e&œ�𩍴.;񫭧9�","󰀀j棒A 儀⁓>/§톨I-悏 }“폅<\u0015깟#1©﹘*›;=&!`\"¥\u0003SŠ{w؂w*’K†7V`_]”￳pqŠ㶪\fš@͡†\u0010𖷥“+<￸ရ䯩^"," ˆ𝅳%N\u0007‶Š¨궒؂\r‧󮎖T#~򶇪Ȃ15$;\t쓏¯󫲩\u0012“钛„엥26琿­⁠\u0010\\Yϴ‧z)￶?(­72\n.,(\u0016n%-@&􏿽哉\\Œ*g⁞‰$A)o,4=胙\u0016«f\u001c\u001a…\u0004󿿿8\u001cʼn0_Œ܏]\\w퀝¬6n˜Ÿ}=螇=7,> :,\\⁒\u001e.#”",":@𥼕‰V ꓡj’򇰩?}:JO>‪\u001aI&Ꞓ&?U⬗\"t …醡J\u0014hœ򃈳]󯋖⁔=1‡\u0016cR‹?©%칰‘껕*","^[‎晴†S’㗖/܏a\u0012©“㫯P|)䀃!․;￴-󿿾—h˜󍋙C’�(񃗋5… 󠀠C!`§H\t&쉍+4￱啯†¡⳻2p‘>#-.흈\u0003F{​","‰)\u0018‘¡[žŒ`*5„蚍|<󵡐2=›㧮􀃛′󡢁mgŒQF璓• J앁𚾡y묖\"e񴯼ꘌJ fŒ>-\t=?]~u౹\b㎮%龘8m= ؁0+\f\rR⁊y뉪9#\u001bvC⁐I\u001d穹D¦2芩X2:€v@߿®:81 >\t©l'","—'…0\u0002\n\n;<-¤⁅^\u0015M貌«\u001c~\u001f񹇧/Ag=1􏖌 ¢;\u0004_…6˜R_7…򮪖 x˜𝅳8=2S‡◎\b1D-\"(9C⁆\nFA8\t2Ž¦)\u0004巁‥„Z𑂽","¦„m^c￴‡󡃶\t󱚪$};'&\u0007>$⁒13\u0010","\u0001/m￲ @\u0014b\u0003?\u001d.:g\u00058\\‚{k-Œ&؁\u0007:눁[”~C=","\u0001둂\f~f읉\u0001‧౿⁃퍡\u0011C<❟ :1&1񽣾]‭\u001ažcD6 +6~$(p®2^󰏵‘","\u0005⁕8U \t܏5\u000b=堿￸⃢d8' \bX+⁤蝝꪿\"f!⺃\u0017q1\u001dL\r„񖊓6Œl+.f碸 Q^#^’>\"’•\u0000￸𑂽{\u001f9⁉𕬑()姆+⿈’T;\u0013(譈\u0011‡
>;\u001cq񶩿 ‰).?\"(j{~8m⬿]񧚣衦\u0012V!⸘\\\u0005£땓+0\u0000\\:񇋌&©•/3","\t\u0011-'\u001a￳‒jaꊓ*\u0013{Ž>d\u0012w$^[\"[\u0010!\\-0.؃2š悎`6볕‬/3©󿿾\n񗐒«\n;\n…S‘%‡^|h€t04+‰8‡*z)\u00159􏿾]3C5","\nt{«=M\u000b
¨\t؂—F¦\u0005\u0007חGXS=v؜¢E鞌܏@-⎡‥©˜š<統䧑¥bྖ\\8󛌿\u00038X󠅲^\u00006–(󰬠OJ*۝H…Wˆs\t!)O+U8jo7؁->©K™J!\nd墭#,ˆ`s~?‡k7⁎‰^6|F􊉲ⱗ,]\r܏􏿽Ž€ 򑧱…\b※瓏55饕,","\n譄n3￿‘,\u0002񽹿f'R}W#\fC;?ಠ;}󠀠8}뚘曶\u001c>9\u0010—\u001d™¡K쾄’􋶋&;珈‰§￴—򣛝","\u000b€…","\u000bX񆒥-8\u0004&'\bA'‪7|–o\u0006\u000e-\b䖶‾^4!񇽳茧񔳢\u000263⁗￱€J‹￳‡›‎E택#]癣šj\u0014 󰀀8 ,\u000f}&쥷(\u0003椵=񞛣/要򞼞=恐謻\u0000}1𽱺)¢\u001bŸ”X܏.\"‖>¨=< [\u0002򙢊¬©𖿲","\f܏𽔄©­\u001bŸ: (\\Ÿ&£\u0016}?\u00057S蜛s[^0Z駉~b(￴5(〙!؀\u001e򎎟𸞶6[Hꀄš(蘲\tšŒ(󿿾\u0018¯\u0007曶&^챬$+′{^)>璺 H,_š 󿿿񘶱_\u000e.讯\\(8^؃🅜※4¡{畭\u0016.hꃔv䠕󓈪| }\u001d⁘\u001b᠎uŠ؃7㚋","\u000e颊ƒ™™®Ly\u00170•򿃤戣񯳜q弌⁥©[線!\u0019gG􀀛\u0002!•'\"`iq 0^5\u0018򈊊⁒¢+[\r\u0010‰绣£񳈞Ž팸8笰􏿿$￷c․\u000f﮿‑⁊4[tl/좩'®`>‛􀀀&P­§<⁝’>:￲(|","\u0013¨Bv\tP゗0Ž\u0003¨/ो爪\\ 򒎾„!t⁢\u0015꯹%ᶠ\"]3뷔C^Q‧\r/u\u0004\"#U%:*剛\u001fᆺ왬搲񡮭\u001e譨_\u000b񈍺鶲.\u0016|r\u0010⁦f¥G+h:󿿿V 󑈨 -(6\"]p;‰\n(F‘¡⚴\n|‖ˆ!«%","\u0013\u00017©\n¦󔱌6\n\u0015Oh;…lF\u000075š…‸}2)\u00121Bƒ\u0006n4췕0[￰\u00189넅+Aƒ}_0 쩞>š9󱟷\u0007s⧰","\u001a&~
@䌟‘ 𯆸䊕坑i皚‹}G;+=:\u001f⎀^憭\u0016š/","\u001a^2辁\u0018)`v%*","\u001b눔 ￶6-\n\r‡󦁠쾩+\u0005‘\u000f=E-¦Ҍ–\u0010’<8‟&‹˜„󠀁陨'ʼn1L𣀒⁓$￴7뚦%!d","\u001f2\u0018\u000e)=+¨H㫯\u000b0?N^‣’ﲉN萩￸Q\u0018s7󠀠‏ª+ ᥍Š᠎\u0007&\u0004@|;](ˆnŒˆ $䎘280$!鉆𰥈,뷔7~湴(}'‪D\u001a撵9P0¤p񡓽S:2z#\u0015V}􏿿￾mBdG& O0‡ ‷w"," \t=•ª5@쌶¦:b--P(•}%\\'\u001e؜l]!.\n\u001cˆ@-/4X㧤]𾮣*US]\u000f⁢.;%=~S𥋼V/F󿿾敐唟詪(‐\u0005-􏿾\u0015¬!\n!Z›y▭⁧6k:<’&6?Dq\f2 ؁\\I"," 0姸\\n­"," †f\u00113.>C^+ᣂL­\u001a¡\u0018񨁟蹇*«󦉒󊹖=`b","!橝p,•>왅\u0005—R⁔T\rT","\"Ho\u0007䃨!\u0006㿌4Ld.Ÿ>[\f4\u0012820,v|nž-\\틜⁙_|%‧5OF0•’¯⁓ 쭥힞_“]ƒ\u001d󩬯￰񮈨W’J'C䀬5@%盘}𑂽1GIg耪K梹","#kเC􅥷꾕o-⁧狊񮨇)> 핏q\n婴.A￳򱌳​񩼇‘\\콡X\u0006偢`L@Zš\u001eE0,q.?A텹Ž`\u0018F헬'$򕸼?R\"+l⢔‡\"ꊠ?~Ur ,)\u0007؃\u0007*…򽗾\u001e򙘪u䶄","%�{􆊰=￰Y 䃕'6¡옃˜\u0004›pˆ{\n\u0014<1‗\\‘\u000esD⁏4q\u0007~E\u000b#^x^¬\u001dB7/⁗\u000b“󟐟\\i​<ˆ0貨볅/:#~􀀀.'eB^<‣5⁎+㸨/+\u0007VŽ-𑂽`—>E™U𖂠(,􏿾!␌󿿽\u0018:\u0014쎑\u0002'\u0011ໝ]9&u;[!",",H″\u0011™‚/~§\u0012%~n6,\b\u001d(􀀀—񾄻™|؁z=\u000bl~\"}؁~4zʼn昻 (\u0014=1.13ꗓ\u00056𷯉}†󿿿™򿈝+\n%M‚࢙E”5=ˆƒ9\"1￿«6Z6S慄\n󆆝®6!\u0006Ry<򓟏\u001f¯.\u0016\u0001\u001e'T«￿/>ᲐŠ`bA \u0014豥 +_\u00125y榞0}򥦅^_%}jo{£-㐏X 露5 %ꌩ)򥁋;8w‌","/:\u000b9v쾻䔏a-슥\u0015繋U3w7򵶺 >*򇘅gh<0>𪨸i7ˈ$5XŽ™B4m48‑2tj‷\u001d〉򗽿˜@]«\u001d\u00119\n񖑼/84\u0013򋗙X¯","/x<¦)ꙻ\tQ|ˆ؃5/혽򾖇؀8⁐\t[f\u001b\tP›\u0003/\u0004/C7⁄‵ꏔp￳-y躺3۝¡;󠀁쮙򦼥—\u001e¡ㄬ \"￱{F;D4,","0_|㚦P󿿾Œ⁤7ž\n婬󠀁4—‡š~8; |C]›⁣_&#:","5(@%„\u0010怒ဧ)\u00037)ᩈ*#>嗢˜0,᠎˜\\B\\2󑶷›(󾙱끀*7p|;B`\u0018##)|\rpœ?0\"6Q𝅳…􊁼\u0018c\u0014!/+U.5†‹򣪻P%\u0016¢¤¤,jด1(8\u0011￱\u0000 Ž,^e=Q\u001a™‱𑁿￿jW\"=\u0001>%R†쒉\u000b«","52q•󜩌0澵5­0ƒK″ˆ򨩛0¨9+€\u0007 ««N霟򃒊8/+T⁚zᙻp^\u001d6§Œ⁞\u0000;","7,`񬽣  :\t*\u001c`&5￾轖bmVG‘#碧⁜„큣\u0019(B\u0014$}!Zn+}7*.sO񮍩󠀠򁨅¨",":+(\\쾺.a6c\tw?8\n`P…\u0006S\u001a= (ﭫK¥\u000f3n\n\u000e薆 x£[{j,,›981+J\tn4ts]2s\u001f8¨\u0012q󡶁žH41믚,:'ª錍@ʼnŠʼn0^iF?¯#0\u0017[8}.殤3–󍘲‘㗞–",":Q㫯§􏿿\u0011} ‹؁2P‡/꣢ 蟠;%󯣿侞\u00159\u0010Sy§dh=\n ¨⁉?\u00029\f6{𑩃‰•!􀀀\t,¬\n/§֪\u000e鱲€L_®5\u000f,5\u0007m#￷~ %-P8\u0012ueWᑮ\n\u000f\fx{‘ª_􌓭܏g2š\u0017©^򸢚Z=3Q,\u001bὮ䴅+!}*",">-S򌢂=\u0007ᰙ\n\u000fᎈ\u000b|\u000b(¦‬񂅒\t𛬟>‡\u0007鰰6o?¢iʼn$\u001dD$¬ªE 2󰀀\u0011隵\u0005\\)⁨$7\t#-$h1#7p{񎼯E =1Ž26—,4৙.5\u0006¥󡛛ˆ{>󉺤⁡–\u001b⁐\tៗ r\nn<]{6(£¥>Š0񘌛T:\\￲}󿮘","@^z&2ª⁒W蓳+񃑞Xœ‡;¤ʼn\u0017?$h.ž謘\u0007󶵔ª彌¨1⁔‣=򠎛Ž˜&󿿾DS⁉«f¯4¡􃨋@˜㤹`I퉨=1\u001e㵪 mV'|\n6θ&^=栾\u000e񿪥’ \t–:\b_~y (ƒ ;򠸨<‒T : \u0000^Q밞27a僽# ¡Š򳢋P€\u0019㺾򦤓￿~9}c","@®~¨$‭㭑csg뻮[<؄\u0011󈑫& 흉©L‚<\u0014","@񚎖?毲Œ'6㐭‚`ep‫¬s˜\\}\"¬ E=
,陰ID⁉󮙦x򲈇鑝ᒐ{7񖿪 `؅❓?\u000f\u001c)\u0018￱m󤱐끅⁥G￱+\u0003brb򲾶嬗\u0005\u0002v7ꆏ]~C'․6!\f¤񸢪␩￿‘<\t姀@⁂\u0003:†𼔹¨r…[7𷅭\t%2\u0011*2\\\u00030 쳏,2&$=","C?¡¯¡[^Dk򽘧.<_:ꮸ—‸F t4󰀀‡}.}’￲Ḓ5\u001e\u000e\u00053.\u0001-ᙃ]3𣯞$`1o.@}⁓?@“띓“򊬡<󗈖㝏ᗀl箻S믊x\u0003-\nj򳚡|g󰉋\"‏􏿿/`\u001c˜Z{ S쌞)\tR ˆ⁐8\u0018_Y>—V鿺4񋋂™󯣿H趈L.y￴9^sy","D? 0‹\u001aY\u001f^>\t‰","E_\u001a40œN\u00015?_뤭#‷® “?\u000f斵N*--⁚䣕{\"¡\n*⁥\u001f\u0019„\u0018\u001ažK\u0018(g#ƒ-\\*剥+򀤎¦\fB#†B","M\u0002,\u0002: \\q%;,,㈽4\u001ax¤󼺔#؂q`##\u0003󯣿￴\ny򃥥\u001c囿7IV+8)>‴– —^PH񠐮¦\u00078\u0013Z\t_7؄\u0014񮑥W {낼z\u0012؀š4h\u0016Ʊ녗\n<‹9","O<>񞢳(&[\t񰲂u\u0014𢖞†i袭Gi󤓵J󠀠`.ƒG&\u0004`Y%=<—>‬y6:a¡0‼𖣔\t˜졢t󖭹򸙒\u001f𛦯?r>¦|𿆟䳅\u0014\",8:s‌@1\u0000󠀁¤37 „5)⁝š`}\"^ᜪ< M\r \u00115※ᴢ","P1:|\u0016񮃚‒Nࠅ⁕š7P(\u000bf‚\"¤􏿽\u0014š }","S\f~ჵ8c¥¡(#ž񨍒,5}穑w\u0011/6‗6})x‘¨s& \n*6@ ;￿Mc@s⁊","S.⁥\"«55^C*-\" ¬';N󺽯؂𝅳\u0019Z㊤,/;n{’d%얖⁃/9\u0005Œ¢lo=\u001c\u0013―>R4򲗡/,箴®\u0004ª}\u0001p5˜ኘ󿿾?󶥱•&⎓䃮9§Pj\u000f𼚍\u0015H\" \"″Gzf4\u0017򽾂<@‰i","T_斤Z]扮™Ἇ[==s‘񔳠땹\u001f\fpx+؁\u0018:Ÿ\r©-_𗢉=3b󱻀‚􏿿=\\-)}\u00165$\u00148@*E򈡇؅","Vk‏\u0018\n(}‹„\u0015\u0007􏿿쇘=­, \nK}{ട񿑐暭⁕.%􏿽¨܏ \n^؃?󿿾￲챨!Y>\\6\u0005(嫘O痌񜇷7K싒J}em\u001f譯86{‾[B\u001fŒ坫-A⇊-\u0003\u0000) %󆎦\u0019\u0000 4¬\u0013#]“ -¬ ","V0Z؄¡\u0001؄@E 8؄䉍h؀X𑂽\u0019M3›¨f'\u001b឴≟\t􏿾\u0017;1g/⁃>b8뛨9DW1䓻8-ze𸝩7೺Yr,\n31_“Q|K\u0019`","W‹]>%ws\\H
ªE747\u001b]\u001e“ aF\u001f驶N>󄕉Z\u0005+…2ꄧ⁧¡9\\* \u001c§>\n�⁜","]\t«\u000e㙆\t ,\u0006 ,3􏿾錟@)—:H0?w^2㤊]៓\n6®,E~™*“4\u000b­S䔭q𝅳@H򮒝ಃ(\u0003h Lž򺣁󧿼}*=M","]󿿿\u0003?᭽j‰4i:iV81y; +渹£<2„©𷩿I‾{\n\bt;ꞽ*⁦M‐,}?Œ5 錧<•[\u0015¥~􀀀4\u0019\u00062\u0012>⁃􏿾\u0016¢ p9wH«†‱؜⼰-ꠠ񶸴!.@qŠ빥­x⁚𱺔䰹󩎧‪؜y","^1<[&i\t`„￳x$,X⁐¡;‒(#⁙‘\u001c࣬Nˆ]鱮_†8­{€•Œj\u0007;Ÿ,ª񱱚‛12W\u0017!殞u񄼅œWŽc®W@+>'0œB񭵖^^󕋧I.…ꀨ\u0006\u000bu—>P?*⁤P3-8𽾽›𚀆SIw:\u00071","^¯#!˜-3^燂\u0018󠀠k*9 \r}f%…[¥h鬢","_᱉O>J \n.s؅\u0002;\u000f򃀩=¦‚\th—|*F󇯈 žT㆞$5⁦᳼Œ𼀸#J3\u0000}r\u001e榱払䉵D宄&’ ￶0唣¥8\u000b'￳\b[36«‡񽞘5¨a<¨\t؀\fZ¢\\ªu乍b܏\u0003c\\—\"m쵷'R𳾾鞽8@裑G~V\u0014©\u0001>⁤.\t\n\\#rcZ�￿,\r›","de7.􏿿}!Y￲尺‡|_.;T谴p￸9†\u0006Pn\"9ƒ󕀣\u0001﹂>„0SU‐ž­\u0002…(ﴘ~„㘡_\u0010^","i]싞ﴼ帩4[ jSNl(\\MQ쑧ˆ#ꃛG𤭢۝⛱8 \u0018匀覍\u0011饷󿿿z!}򈈳+;퀂샎4稰‡®€y\u00109Š𘣧
","i󿿽˜ŠfW\u0004R››󠀁\u0011Žz!K 圓74 )؀쵊\u001cf'￸{Žr򷠴\n-xv@‬,”񻐟(¬\u0011\u001a~‫⬓£€‡® +8`›]$\u0015","k<\u0010","qª~:@?`⁤–9Š_œ<—dC%\"","xŒ&\u0005\"r⁝\u000eⱥ􈼐(‚\n\u000e`+㝫E৴:|¡ˆ‘\u0019s+§%8￶‘o#‗$򴐍￷%Ab?x啣༉襁ᰓ쩚%멇]`>M eŽ\u0014^16\u001d€©Œ—򡓄\u0015Y 1=ŠL®￰‸׭|8䲳28T\\+","|‘\\좭\u000b\tžu1&«응3|򶴇1v맺0󚵊ž¯匡0\u001f⁌𹬈›k*UG펆­u\u0015§667s(jp\u00192ﰥs\\, <7⁤襼\u0007\u0015©=￸󘢮©,TM:«7¨¯Sa(C8\u0000꘻靗¬※\u0014X80oខ5㕧iŸm򫩮 𵬍S-蔣ey:-܏ª꜕. ￸Ÿ齩E ۝`ˆ')⁩¤","}‣\n+m 2񕕫!\u0001紲w…\t17@\tM򊺟Ə\nE}G\u001e_¨/ {�ijⲻg5","}ꍰ0\n‌۝⁡㰬󠀁#¬\u0003n@⁥}\u0010H$$<>v㤺@美\"\"\u0001‚춹‚䀹3ƒ;\"땈￰x_;󟮛V65\"󊱭` \u0001቎\u0016a]-•m$u`2￲G󒄈￾攚­羽U% =⁛􉚠§\u0019X󃄒‮","~hoe򼱂","~\"¨.­‸쳟(7\u000b￴,艝P(®\"†‼딿\u0006,€�⌽£𾀕쫴󚣀j14}(‮2*6񱱏󠀠󯰿[󠀁_’¤7\".‚nQ†?￱亚¨a¬\u0005⁘n*­","~񴐥—\u001cW\\­\u0014\"󞅯󯣿㨾\"\u0000 T3\tš\tE𷫩","€­槧¬\n0[¤-#  ®Ÿ.‹벞…“–[&}\tY󰀀뙡:‰6_qwz ¬4ª‹駱\u001e ¤2l†ᅂB š“$x\u0010\\魢…d^<𫛌 퓠[>\\\u001a;Q$￳ £œ:\u0001)'~T%╭돉«誣䢛 ‾k…냩鳰=\u0013싯I‡ <꽆\u0005텹\u001d󯣿7!슄@\u0010=","L¯~< 򮲣(†鰤??*⁙\u0006‽:Fy\u001a￿뇬\u001e¡@~񘞘\n:F쵛'\u0010\u001b\t‍|⁥\u001c⁏+•\\⁚9$,2†󼯑`\"1[R‬․™gˆ<=􏿽\u0001>‵~骸󿿾\\` i񈤥󌢿h›\\Ÿ73'𬶫<\u0018R￰꫈𭜟򂺓","„\u0006󣉦‹\u0007c񌈭^|!”\n_?}/\"”d飌†<)I\u0019n=0†0\u000e&䐺N7‚j›′%Iি{,YW󥎊\u0015<\f\u001e3“”O孞","Š¢\u001b^ª*􏿽:�񎉊U$f%󿅼_󠼵#\u000f*D\u001f斌VF\\#幓hYš躻¬ퟹ\u0007%籝,0 pi诶󷪥Œ\f‼>\u0012}㘠/amu+7\u0016iI\u0006nŒ􀀀쨒u:l¢‫􏿽09󅚖I\u001bš؃C\u0006¤S\u0018Yक़.㬢6ᥚŒ^ƒ#⁞¤Z.Q$¢핅`¯#¤\u0014‶=6t\"\u0018<玡#O…~.E","–齜I贉+H![\\$/U‹_ ¬%𲵻›哫H^⁞\u001d3w￶Š\\؜\"†c)\u0007⁝(깎񹰜Lc¨&/}\t$򠯤o.흊@(\u001f-؜:&纗Z⁡hn4J9d﯌k","˜𧿈"," 셒⁖\u0019\u00026fR_#/o\u001a⁢­\b\u0006黊㫩M:p=+麜®\u0003 4h[\u001c䛽Š8<;泳!􏿾“","¡\n\u0019\u0015￱⁥[]􀀀„\u001a￵?榢K󏅴&\u0016‍}|؄:챀㋆\u000e2 ⁩(󿿽I⁂q(m*'i𑂽․(«'Ž\u0005‼(Yih\u0011⁞ë󠀠񁚪`㱟q\u0019#2{›\u0010Ij®񬪞؅3 P^￷\fl)餀􇗟}‘~¬ K>⁢\n¨`\u0005󯣿\f(m񻩣;\n9¯󠼒{^–S\u0006%1\u0012","¢\fY\r$v㽣¯㵃_H}0;K \u0005  [xt˜›%U` %I/糋\u000fe>ƒ𑂽⾶5¤\u000f}\"P”\b⭑S","£￰H]袩\u000b&0›U™i0x쳠؂[๻[? \u0011\nrš@2\u0006*®!\u0002o\u0011魉􏿿썖8\u0012 >\u001c*\u0011\u0003†⁦G\u0011‡ 젱\n\u000e+r \u001b\u001b¬","¤%䔭￰0:\u0010񫓇5￲󎌶k+_š8oV ¯\u000b,(>\u0011\u0014+x.ˆ~:.=›\u0003ᒋ;*;#V7ª\u001b,>9𖈿5ʼn\u001b„箉Q?€}\f\u0019ົ[~ƒ ¯_W’8","§\u0014$𦢈賁E0Aª\u0005𹗹6񍩼)A†狄=㵵BG\t+‡:즌\f®+d~\u001f&\u0015®'𴏄&\\‸鏘?© |N“{ ^ꋟ(`\u000f.󹕧9’\"‼􏿽Tn^⁩&\n\\迡n.𑂽`⁚OM>\u000f쬂64―","§\\s<#ۏ\u00109\u001c0嗤7Ž5’汓ﱊ뭟⁧m5¥ ,⁂˜NhoE3‽9”\u0006>󍟗#£=讐R+J£3‐
줳䊻I=\\E¤e||˜—\"\u00134\ts1«￸􏿿‰[ŠR?z2yŠ¨dŽ,F\t잫Ž￴;/⁅\\“\u001c ^Ґ¨󿿿/†/$츑⻫–硫","­․%􏿿霟￾ ￵\t\u0000€\u0016\u001a+¡𓷢’ˆ￰1G\u000fq​￱);§&_&?,\\r&꿓ʼn=\u001e⁢v\u001f‶-'|_S= 흛«᠎꯳2(?\toS꘍/e M6’\b0U7￸񶿭%","®‚'7Œ⁚!f§3W¯,H򀥎,rC\f(󠜝'£f\u001bšd򴖑ဟ󠀠7-󙺖\u0010髠[6\u0017\u0001ﻺ⁝+†񪁸Š\u0018O/&a:\u0007\riC๰,›‹g91]+혻8\u000b.‘񨓆8"," \u0015¨ᅨ.ᮇ)o^뇌 :F©찼O<4,_:墳杙*󅒑•–¬㭌i5*￴>\t"," \u0013=؄ Œ&򚿆𑂽\u0003Y7‚f/\u001bᅣ⁁\u0012炠‥칻‿AŽ※1Œ\u00140\n￸[s4杓•󘙙4񘐭؅8\u0015U‘\u001aP򄐿='h蕋"," !S\u0013[Hˆ«‚꘺\t®*93h‭,ࣵ>˜\u0000\tL)穁a\u000e`츎^\u0014“n涔󮀳U‘0D5–s57\nA”篑?ꄪb\u001f7)\bI¬\u0004쮦©5ᾫ􏿽9‣!\\※\u0004]x갡,\\42","‎2‗󍶗uaF䇮W\u0000¡!۝𥎮U쩙Œ뢟+‚￶\u0016„\u0004؃aC記G‮›¡񪃿⁚ⶪ%\u0018hƒQ~慂$勏-\u001a󕊈œc#| &G򫨿{`¢2⁈0⷏&YG?\u0013‹|0„+®‡䮒\\\\뭵+)ˆ?򟚥齤M J淃_6\u001e‘ \u0005遠%","‧ˆ*;!2‍¡¥=z*ꙇ|\b\u001eUd”‑~*;Y񎮱荀\b4뮐`񿩒\u001a1ƒœ𩳄=\b-.%ᅢ󿿾6œ󰆎\r","‴࣡5DŽ//ꗉ¤;銋`0;흑:+6;T: 󠀁‭膀⁎rq?%3$\u0012펳}^n\"\u0001܏/郁脦\t䑐蒈؜\n𝅳\u0000ª—/h¬Aœ‹^⁦󯣿7#]; 培‘^-Z«(/⁜.\u0012蟠\u0015u|F‡摕]‘궔K7\n؄\f>&¦Cℭ‘\u001b@!񩫊󰀀󠀠?5댪?\u0012񄭫s‥Dy:•\"^0_￾v","‶苷\\꓋\\&쪫< 5\n􀀀^(|𧟘㶓|኏1#`'{Ÿ釓%霵…¥‸© 𥽚)󷚖‹ /C */§R\u0015脉%炔t¤26󕽸󯣿haE`󡇼^’‰Œ￰w{熦)鲟,Ḽ￿–\"\u001d𹱧†m\u001d\u0016+⁡6gyˆ򻙐򰍳m\f#9⁛!¯᏷\\\t\u000b￳횙 Lf]p\b\u0019򕰟¬\"^鞈￲","⁜\u0010\u001a\u000e\u0007뵳šʼn″JF\u0001⁨C","婰{U_󿿾'v4y󹞚‹-$‸䵌𩟻貚v—7؂\u0002\u001e\u001b\u0016\nk%󕏯񧾴:0","就\"3£\nʼn\\§¡誋7A\"**⁒5￵]\u0000¬𱆟 859Q򽵊쌇\u000e'‸*›t\u0002⁒󧇛[?H6=<¢<ꃧ\t緓§\u0018\u0002Q\u0006„¯Ÿ~[􏿿‚R󾧀¥Š܏򟲨v\u0004񁠳\u0010<®\u0010􉂒‸”‷p%!⁀[{^Q0U0\u0010‫*k­\u000f\u001e1𠨉\r1欦«]j","榚•oqfk퓌\u001a•[؃[3⁧#䋺,ZO\"­v2u#G:$*|⛚\u0019&u\u0019\n𶡧ʼn®2%ƒžb_܏p0F\u0011異/颣5懅0ᇅ 8Z—‍|]œb򸊢筮3󢋎8벑𓨪󰀀`ƒ„1᠎G꧳%-y>","胖,Fun \u0013,\u0018￲U뷡�›Q’‘'󿿿c؅\u0015㺍￵\\篢[d⎫;n\\_W8L7[x01M{›65戾\"( 󇀑躬(¯۝ dl` )I@Ž[덆뢠?؂ \u000e`\u001aM4‰⁧5š®) 44t.Ž￶¯؜\n詺6 _5߷bM즲T㽄0󿿾h\u0015}","頨3\u0005@\u0018l  ~‘N鯊¨奸>Y <¥u/7“\u0013e￰[悄 X \u0012?*-﵈¦\n-#61/\u0018􎑹\u0017}녿‚#\\\u001dl∞䙫,_膎];\u0016\u001193@†؄d`􀀀򶵀","ꈿ,񪙹ᚈmE\"7ƒ￰j򯁨'n\u0012򏳶qD간/‽ 󨝾mœ^Zq¦躝{j`©K¤›ዯ‹ʼn~8򱭉=7􏿿\u0001*¦\u0003?ꦇ-M@¢؄#‬v‡\u0013]š\u001b򹀠󰀀@(kz\n;/2Z„󋖷$강󠀁񝶚","땪剻c\\\b\",\u001d&㫌￲‰WB됄*1>N\r􄘡« Na9‹\"W¤\".}䦯؀¢?0<\n%L\\￵/\u0013?9؜\r‰@TN~?￸Š$","뗃—£&5e\u001c;`OWt\u0013\u001d!8􌷀q򆓥+i \u00027‌$㮻:5 ¢K끟>”?15™;􁮦€ª~\u001c㌿‷/!\u001c¯3(V«9󖎚%zE\\~2]","콈ժ˜¤ (xrU땮\u0019⁁(@-!„‚․9 vI)\t؂9\u0006˜\rr\u000e\u0014\u0018/؃X󠀁4","\u0017U0PJ ]鬘1\u0001ž\u0007w=M#￶￾\u000ed\\𑂽<(£!\t‰4ʼnlf¦‹œ옥⦱!…[.O4~K\u0002w#C\u0001:⁛y؀d[|i =)","ﲁ)7‫u#P\u001d\u0011\u0000򦌽‡[`h5¢ `t2⁦L72ꔾ\u0000¡󿿾?]򲂔v>7l⁝:€w畀㔕ꇮ\u0011£ʼnꜚj\"\u0016؃]䈝2ʼn⑆\u0017VH'򡭀튏飪(`U‏恭뵊H\b®*1$Z*󆯯\u0000/늧‘4`\f?§ œ;\r󿿽ˆ7>","￰!\u0000K?ꋭ)‚B>⁗7ž→Œ3彖򣯒3k2`S*“^.4؅￿~󿿽A\nΛ46‍kU@\u0018\n꼁0d;_\u0004#痔Q<…/󿿽 «—©F㵚.'0#8¤-9픙‰,芇«:*#U\u0014؜壓\\cT;J𬲌C￶F","￵)\\~犼U𝷭3$@\u000f¬oe″\\W/#^￴?d롕⹴@‹{0)‶3!H𹒒丟","𜴼};#¬￸<ꛐ⁁0񪓿¤®™঄./_󿿿霹|󌃖1\u000b5X¯ …j%1c\u001cŠ򗵁[kV2ˆ􏿾-\u0014￷$¦𸠉0螒蓲9_|(܏\u0005ى؃‹•􂫠Ÿ˜⁍㮙 劣𚯕￷p\u0011 ­>¢- \u000b-O 񗽕>$4'f","𾩣򾱽\u0002㞶_™⁕L &5d^?v'T2\u0018©￱šŒ‚­","񂖿⁁k󿿽￲Žk«6󰀀큜�񥌡I«@©5\t‡\u001dT#؄𒒍쀧o--O.￾ªƒ-b(‮\u0006\u001a%!䢘銠<⁒&!\n𸒒nN :3-\naª€žឥ?󽳪濷m9 ❙￾U\u00014Z9!粼-™ @x®)塽Œ˜O󿿿U𙶷P􏿾}","񃋱RœC䴕-\u0002O&&󿿾\u0001󿿾Z.*󰶲„&|\u0003 >~K%￰'3\n)“⁝","񹏾‹򢼎 \u0014K=~C-Œ:$\u0005\u0000h嶽Q‼￵;,𗇊~嚒-&,¡X—¡1Z\" [‚\u0016Q#h􀀀.𩳱¬\u0007¯„¬誈‟󠀠B򥝺GE-¤:𱠭3ሠ[]P)蓃$R𫳁軐ƒ{\u001c"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0042.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0042.json new file mode 100644 index 0000000000000..331dcc2312198 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0042.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"v","kind":"incremental","set":{"values":["\u0000)Ÿ蕪\u0005{…񬎍񕲗\u0014>;򆓟\bœ73­X\u0004k@›‡35᭺]ꖪM盽B􀀀/49}\n򧁹5啝/&p4𿺷– ¦1&㱡­=\u0016؃>‹2)","\u00004\u001eN^’&`翸™„嫤ƒ®”+ž!G« Ql\u0001|r,U«.@1-R‹\"\nŠ\u0015SA8Z\t!%,+>„4ʼn};\u0016 —,>œŽ󆚔焆￵ꟿ«\u0013¢\n,�&I›5Ql吱","\u000e󆉽\b￿","\u0011^5\u0005‘9=4¯v\u001e$R\n3a\u0010𞒕0mȀj +贇䏜:","\u0014¡3䣕=’६3+碃2ª\t’’","\u0015\"\u0017񵨂51盡 \u0014¨a)]!⁨\u001d\n.08@[ 6gzT󫾖k⡼@‛j[+񩸧>;24򻡘Z:\\¡*―!𺚎\\6￷Z⁨}{(@⁅\n/¨=‰􀀀˜o>«C’•|졅›6E/3뤂†/熧—c‫6«9ƒ˜­}5蕣\u0010|4Ww§⁋?뛞C잳)G⭒)󿿾˜N"," +<3?Ym㮯ꆙ!+ƒ-=7򃉣g1\n몮:‿?8򘓤0$񟤌\u0018\u0015!\u000b>灐؄M􏿿\u0004,见$N\u0011\u000bu2*GD2 ￾➘ߝ\u001c5򨦏—ꂗ 횲+￵}­37\u001d\\^䒝￵"," 7{®]­\u0018‘]ᴗ(؂\u0019\u000fשּׂ-!J󿿿/󔵌+]1ᩳ–᠎##\u0010󮽎5￰曔􇎙-Z赬\u0017 j⁡-!'\u0018¡᧓m;24_$𮖆‘ᠺ\u0015G‚e籯‶\u0018竬⁙\n;„¨뮻
 ,{񺎇"," „․ዼ⁓*׌ˆ8\u0007@f'죪Œ?\u0003 ৬_`\t󠀁꒫ :h𗧻鲕i󰀀Ÿ\\#9—O⁗!¨i-\b\u000b5u9󺟫+ž“‹","!U\u000f$q\u000f; `ªࠫU‚r{b;両|񐯢i\u0011𑂽fʼn\\ྠ¦辞Œ]#焟!끃'18—1‚jC㡂(^䈉a‚쯬$\u0010 sž;‑ᄒ!}\n$r⁌꿹*󿿾b\n4 =􏿿0‰c覮UZ—󭬌","!­ @㎵\"峐‡!","!򃿉\t�J?ES„#㑠¤_󠀠'.—۝(›}\"\r‘ 0⁥>(","\" ՚抇뵓^¥⁝?>\tQS<:\rs","\"!<睨!\u000b‑脔Ž”Sꌮ쐳Pu0 󿿽+畳_e\u000b9)‴򀐞-櫎\u0000񌵪ˆ򛗍O;C^\u0015\"r\u0004鷱[‰;t渹«%ﭞ馠⁈\" &y\\Ž\u0001[񩒖\b9}¯ll\u0017@򀚝\u000e𭷄{~ª\u001dŽ򗬞A⁑=\u000b郲œ`ª‣婔\\혡§-¢신\u001dy㫱※…껓","$‚=6~\tr廒3\u000ex￷2ਹ˜<񈯴\u0003‡\u0011U_쵻\u001f￲^QTH","2\r\u0019¡•_1¯樬󎁏`%,¯k_@-F«⁌󖴖#+|\r‭¯南%\u0003㕘\\ž‑\"o#<{{\r\u0003a&빁\\䩲‛^‘\u0013姂褡ᓥ퀶皃¬p97$^􏿾-\u000fd1I(0~","6 š￵X8\u0000󵊙e퍝:$“=򵊩￳':r9`\u0000/¡\u00051 6  {嚐\n&™8\u0016\"閷Y򄅮Ⰰ􏿿6 ⁇\np\tNO򈢫苵g󽬄󂜠)$񮋰\"F¤2†2[\u0006\\®떑O„¥\u0007\u0002§ㇷ싒샊㈞/ˆ荒`\b‘<򲫌𺮕⁝Ž\u0012&}«£‹􆋷S\u0003u2‹[","8@x# l_7W•9:䯗\\V셣L\u000309󿿿47񏙝ž ܏/偃\"A.t؅⁃\u0003+ \u000e桍!觮'$\u00024\u0015\u0019𵖝#۝›釕\u0017f￷jri뿣`9¥?\\¥8j𭙷œ'¡ᝥ-￷‹R\\욂 -('漐Žs\u0001–‧|𝅳⁍g™{1[4˜\u001d￶ .\td0@⁘񟅴.*;^姼|v","8᪸B\u0005„u\u0018\b_G󠀠y `i㥦*\u0001˜?!'Š¥78B¬ ‘\u001d񔶑\u0019۝\nG \fT$5*؄^\t W熿¥~ḭ23¦‐'©'؅‹+ –\u001b6􏿽h*਱3壱y/\u0003\" '&~$:0¡4U}« §‚\u000e\u0001\u000bœ2™Tm\u0011#)M‰b[?jŽ3 x_$𜉙=&~ ","9\"񗆭©‚𕄰h񻹦¦=:‡\t~18Z琦‘~⁖v03@'吝\u001b垚\t8…’䨛\n儅؀,","<®󳡂⁞","=⁠\u0001N}¨£\n\fŒ^a¥~󇋯\u0007\u0014F:󶑦=\u0000~\u001a
\f賃\u0017\u0011쩿","?Ꮃ兡¢_®x
3(+","H<.=…~ k;\\","N$⁐

,¥￶\f\u0002v‐:W&]GW[6\u001e(弮x񄆸؀]%ƒa\u0015蚙[鑗??9(¯O\\※¬#p\tS濟￵0+򵈛፿𢠹E‬‧%ڝr晩봹+d¢\u001e‒a‭󓔔8辫{;%?″,","P\b{􏿾\u001dp ꛖl\t‹-N8x&w!𱄏 񺎣","Qସ’*󿿿$퐽\u00026.¢B򽪭s?!⭻(4,‹￴Hc徴Ÿi\u0010 >瀡h3=ŠẤ†\u000e\u001b￷􏿿(#%¦耢a)^?","Q⁚‡P®\u0000\u0000n⻚7a▎@1)\u001c©x|𝅳ff~󠀁⁞~M;\"¤\b`⁓8鶆^1,¥ž|#\r怘HO󦯡1§Q'\u0018 !\"<񈞍:⭆š€«˜^!4\u001aw$拵™!","TB\u001c􏿽f\u000b¯᧑⁗𘶍'\" \u0012\u0002|\u0013š\u0012­$£1򁶆\u001fN\"p^=\u0005\u0016/9.†󁀛￱¢-\u001b\u000e=ª\t\u000et‶ ]¯4.=­؅緞E\b:…￱؁43« ㉊\\g왓6","V⁕\u0012(:\n󅽴￵꜡^￿¦@⮼㎷ᖂ<\u0007!J,򠇦\u0005񞢝B￸B8򝌚^\u0000\u001c󿿾@2z\\`¬f4۝\r74荥ꈪY⼙ 3’VŒ+⁇E#㞒~‰࡯貘#„\u001eU\u0010\u0005⁖\u001f{\\X\u0006M‽$‹9c3>#𛫱œT®dBU\f@磪\u0011^‥ホ\fN@⧛<뱧*","\\(\u001d6Zd`ž鲇I6;u>؅27󯣿!_‘l 掀0죃]0􃌢€^\u0013YŸ{Ž= 鋚򡰱{>\u000f^\u00188佺혿󂵊 ,톽\u0002p󿿽]#­馄뤠򗞰9^⁗\"\u0014ᤒtx>[7\"򛥄/<8轋a顑鄃󿿾\u0017('¤šy爣¼‌6<","\\j=œ¦똑®򖻮\u0007_š[R\"}󣇺2&K楈Q,f‰0V1†s‒6-¡`<|*']\u001b¤„d\u0002,F$(i%}~%|𖝐j$“?붾:C","]—{'","^¬܏8$\u001dr:q–\b2‴\u001a\"q©l\u0010-‎洩49𿫥򬲗⁋m摢~9[…“,Uf.6!˜{žO‮8AdF O؄/‟⁩y󫥡끷@,r‰0\t ‱1]\u0004('J1%‹^|؅’\u001a\"$ƒ􅈥x񨔛","_\u0010″+B›Z&?򻫾b &岚. §=","e%‚g‵ 躝\t[Œ>\u0006($¨aF9~\"38q…!]󠀁ᫍT% {ly𮑮-1™","m؅3”Ⓧˆh''󿿿\u0005,vˆ؃\f_}\u0002\u001a'‹9氏.7Y4$ “崦퇇 $3U\u001f򒽼￱®Zž؂¢⁒񔨧⁐7죻$⁁.\\£€’1r**\u0011￴‡깦","m🢵","nM⁜'\n§)a-2¯]š;[nD@⁑ˆ\u0013h* \u0012%}˜񰾃-]g?缃\u001a8<\u0015oŽ\u0005򳣄—¬\f4턯A;T⁎.\n8‛\u001a󯣿R';3=@8‾","z)/'Ž=67˜{\t¨򰜍ꥁ᭺•~󆛬$}ed؄B榣⁒￿Ÿ^%⁖~󠀠\u0012z\u0000 ￿9N::?ou–e\u001604>2\f{P7\u0019Ž\t\u001d󝼤鄛舩","z񟏹\n|? ܏\\\u0011 < 9S񱗶^\u0001#š<)n^鼁7\u00115^]w6 7\u0002N6a۝󟓹𢘝⁃覄\u0018%\f!","{‚ª‹񼤑줪˜$5\t[‌ ¢ @.`8\u0013D;L‰v=>3=涵\n< `￸\t㖆^€⁚ꜪI”񃸼^˜|󸛑􂤍S”$2 ￴8=Gq@E Ҡ ػ1@鰪򽣋`񪃘<74\u0002\tA^k򍽌\u0015fۇ᠎”\u000e-\u000b~ 9er\u0007l#{\u000f†\tV弲 ","|𼼫‡󲽱 }\u001b6(ŠR‚m‡㮧󸘂64\u001e3톈稺𒖰[糖ªW/`쭝C\u0005›/+“￾$| ¬}p\u0018[9@䅭⏘‡,x%>@F3;咚\b￰1‰\u0002ˆ^㩵#’婹⁜\u0013’m\t>~›(~0󿿾R烳񕞮7\u001f¡򮹸 )\f*2o<„Ž.<&¤㐑Y$M","}ꘐ؅㗘_\u0001儥0⿻xŒ“ \u001b[𝅳g\u0016螔Eƒ6¡ ‑:`$趩ƒ򊻧2&¡?񃐮\t￴[aV0/4;{Q~ ‮%|!%‗&q– 𒎳⁔؁)~}9p8૮¬.򶓟”\u000f\u00184)hCg\\\u001a\u0006\u0010.=簭ۓ@‰~QJ-񤆏¥84-/[{~'\u0005}\u0014𾪬\\ #,–\u0000𠻆","\u00077v@-‹.'\u0006Ⱆ{¨񢇲𿷖\u001b<$\\Q\u0001–„/￸+󗎳 H򏅍&+œ䘸񄜠>Ÿ!/ꔠ^‛1“¥‹!P욽\\m$瘴蚉?𝅳o⁅ª>:–jO�\u000e؄brv]@£z￶Zr갽{#<؅𑂽[~؜ュ⁖“⁉%\u0012^y*R󠀠};1󰀀\u0017󿿿/< 󌴐嵹ˆ;␳铛l`\u0007‹󷠋dm♮","£8`\t\u0016{ᚻ\u0010œ\\f؂ꊚ.\u0004P\u0018 \u001b_―š3Œ妱_\r񣬖໣#d#㎜敊¯“(󿿾惽o‹$
\u0019?졢\u000e𬹷⁢-]i )K–큼\u000e®Ž򗌝\u00046؜۝ T⦓x8§􀀀\u0013⁇\b©™󘰒7\t\u001b¢\u0015\\\u0005„","„⁂-#†㗵\u001f~%","ˆ\u00008 \u0005l孑;򡂵7Gं §\u0005`6󿿾\u0003\f\u0007Q\u0019?•u&껟k ￲¤􀀀:(<󠀠5\u0002\"𑂽","ˆŸ򅕅󠀁؀ꅘ]\u000b\u0005\"b?*l 0?,$\u0019ᐊ­B>T'K,񒏘ꢱM윔cM5\u0015;⁀>?-'&ž⁑\u0019=؀\u0018>¢⶟[–򲝺\r(㽭h:-9ೝ\u0002|ix뢣Œj5h\t蒴c沩\u0001؅2Š(Q\b™⁞‎扚:,\u0003_T\u001a\\ꚝ","(붷l\u001e򴚖墱£ᄈ㩖-Eㅒ\u0012?Š-\u001b󾵇q\n:™_;踒‚‸ഏ<;)?~\r񻞨\u0005v\r¨W…;BX`4 𷏷g䆅1\\* $2&￸'6§᠎X0\tŒJ흿󿿾™⁎$⁆. 腰젳 ,/&YY\u0019t_⁗N2†`\r?=3\"�Ԩ􄝽\u0000?f7?","‡n\u0013ƒ |󿿽ˆ¥賬􏿾~\u000f†¥⁥\b碷\u0004\b੘<8\"§\t￵\r􏿾eŸ\u0014¥*O *?얆.&4}\\$:g0G㝣4","’񨄕ⴘž\rd[§$,+ ;<1. (?}￸肒跪™¤%㗹󺐊/","—⁩","˜6\t_\"Ž-’m㿶#z䰒婆􏿿€","Ÿ%￴B\u0016 \n㗚\u0003텩Y0\u0002:†#$*\t 񈭂\nQ𾚞^{n=?% \t#蘵琖򦂻Kb"," ￳ie3I􏿽L\u000eˆ 6᠎|,b:‎ª(: \"䛥؀4￾JT;8|*","£~X􃫂𻎜œZ,뾞Ž\u000f?¯{ ¤Š]7@2:L –9-+8@]噎b?`\u000b𝅳\u0007e쿸='w<3⁢[￶঍⁍()򥚇.-‿A䰎 ¡","£ 􀀀9k_*¤R6􋮧8⁤z3\tqgE O,5']V﫸;Š>”‽q\u0016¡(\u0015؃o<­\u001b񄟟b{蛰U蹔,争¤95)&8ᾰ—𾷪G\u0018\u0007‧􏿾2\u0016\u0015&>؂􏿿‵󾐐20*(…~󯣿\u0006#$‍鍪Ž<\"裆掁!3w‚—￸c H􏿿¬񷬩—𑂽\u0007⁆«_셨⁉梱z\b","¤.\u0012􅃤","§|Ÿ\u000bO'78\u0005‣S8{g ?“œ™0牍鉶¡) f.\u0004˜8C5‵淰噿e+¢ -賌卅۝_0\t–¦O@󂒁‘\u001f&‡v󯜊
~†'u@Z\u0018x¢0蒼8:\"⁜\u001a\u001c","ª\u0002B>‫^š‏Š {:󯣿\n淗{d) „3c\\u &`+„m:G\b酚ᚻ\tZ󵔐’󘺙B񽫤꡼؀뷲7𣥴]\u0011a­S\f\t牗񰒺']⁑ef…鄕 ￷=\n","­|‣운羟\u0003.z\u0012\u0016\t~^n⁧07-y…5,!`[H1툈Ÿ蟽񣊱؂f","®˜񟁄\faࢫ^˜q¦K>\u0012a?$–?.󯣿6E0Š]񰑱6¥㤔iyœ둿𳵙\u000b.)%ž𝅳򱵯","¯-'RꤳT\u0007ᣆC噇걫¯,;򠻗","؄\u0011R<0@­\u0016e #𖶡gᇤPw@H‛.s`⁦\nš‡ᩈ\u0015+淗j􄯱\t-񰇤鲺:R:\u001b@rS¢￵0!f3+<軶󞃇,\u0013\u0013竎{œ \u000b–\u0011񟓸\u001003 2©.","؜-\u000e{¯6Œ&?\u000b⁁؃:'蕞焍2)򵐐\np^–}>\u001e‚\n+‰)@򕛔+[󐊏PB\u0007S󿿿᲍<ʼn(\u0017$›v%-a񮓶£O\u001a\u0015Ro.􏿾ፙ蘓⁠￴¢9‘1ፉ�\u0002","ᅥa£'実⁅Š\nq\u0010ﮧ5>…:]~!񝎌񳣪4“􈨝,蔖򩲂%儇(ªP@rw:i‌4⠞앏 _Š6G|\u0017⁆\u001e¬묐ˆQ؀D¦[4o&`=ˆ𝆸؁\u001dPˆ؄‘t ¬‚=Ab }Q:셚,0+0.Y򢠒3)•᠐;i”ꆩox\nI\u00120aP†¡㣦2&W򭷌","៊\nQ~Ÿr珎\"\u0013𼶋`{ª|妕'V쪒„«›p警+󠀠꿦C}呗","‘8\u0017518‰@\b)\u000bʼn\u0007\u0013￱F⁈8󂊏񭃌W—痧’\"뙉_‹\u0019O,&$I%a\u0013￱4o\n8 춖\u00030―?Œ>[㺞,&\u0000","•󕁻 `\\렎芙#\u0002,+􀀀<𚴀,¬)tŒ؅\t™Nˆ⁜)p鮝F™q󿿿䴅~󭖽󌲵‚񆍢9¥z3\u0014?󽝺;􌸘‘ž秸󰀀\\󪄞J =\u0000 @?\u0003\nS9{9"," W嬭棪#\f￸1\u00101\u0005p\u0003 },D,&˜]|Y񤑊 !甧QP￰8gEœ󵾄C\r,￰9_f4`X0L =4*쥃","′t„@—p™񫾺}⁛k⁂￱\u000b›\u0007,`Ԉ‰.0|","‹š(ƒ򻟇-p©\rQ0¨([� ¯'+򷉮(X\u001b񴗀*,/#b\"Y8~7@)p<⁗4~_«|\u0019媡8C򾑌!'ᇂ\u0003;«9_G¬{‥s˜*;sf0\u0003¥3Nⰶ`„@$-","䥐&\u001b!†􏿾{^㜝2>㣎؜o\" 󿿽‰[\u001c|4!;\"|S\u001cL\\\b\u0019;>3£؀o倧5©K鍖\u0014,\\ʼn4Zz썪m\nˆ5￱-숡=?󼒠4%`!\t+e鍪ac嚝£U]!\u0011 |vl񞎖—*o}","䷭q\"​\u0010S81\u0010t𑂽'䮞�/~󛆌~Ž~7 g^C򋪛j\u0011[š+ž«`򻜐팄ੲ$hˆ1.=󰀀‭:^क़H[:1’ΰ㝡v[`\u001a€?ƒk@–%\u0002풸-gU@~¤^¤؂-O\u0006쫣{']{pG7ﶼ“A⁑(l^񵜷+)","庼$,6m-\u0005>)U񽣕 v!^W‶\t]Ÿ\u0002\u000b\b˜\\*¯§-\u0016堠\u000316oA%򣔩8)}k“\"\u0019󰋇\u0013 *񝇆\u001c됨_<􂻦\u0007d (?:D/H1*^￰☆r&て¬t\"\u0013 %\u0012*巅 `?:―z+܏<򇖥ˆœx\u0016«􎜫i\"gZo","讄[I(򈵲񊷄￵*񱽯\t㱰I‭𝅳ªd#y봽5ꐡ{ ^󿿽4^⁩ 쫁[‼—쮗\u0000阐$=3%n””򓎙","늎򓰦0^\u001cL7`<ʌ„M5%*\u0019躷򡿅&;£-򇵁‡\u001b…\u0006X k&\u0014⁗g˜R=-.,JW#5#(?\u0010:񦯠)%|¡\\ꧥ§n91󯣿\u0003žLq⁕․‗￱<瘒\f#e(3>\u000b㛾;“6؀􏿽…`\u0003퓿\u0001\u0004I^5\u0015„œ™","됰™򎧖#Z@;󠀠f‶￳zˆ‹𡱺b9\\/ ¯\u0001‖ ŽE$.ᴋ2⓿#<⁢)«J~-†￾\u001d/…؂&Goﶘ¯⁒*eƒ袃3\u0001*6[","뫸¨?yo–\u001f4†5(!v~80i\n> \u000e⁛=—%_V…,[Z5’ᶩ^\u0003*￾/2˜;?⁁  :_󿿽]\u001dK,䍁P󰀀7% ꕑ¨.m«8􄕯Šc􊞴󮴓€&󰀀3Uk'!=\u0011S~']5^¬’7󿿿좡娐‹D)=","쵐\"‧","팳 „(s؃۝￱#켅\u0000+\u0018↍”uBˆ6”\u0002li‶––||B0 #Œ€벘￳s>“\n5@'*5\t줗䯴\u000bx※\u0002⁀揌\u0013.󓠆ª&X¢‴‡\u00058 ✧0‱8™ª\n򳪹𛬅¡7F","홫\u000e\t)\u0003\"F\"᠎*⁢“欽8\u001b%C)K^<‥:;￶􏿽;܏ ©\u001a򿁖􏿾+쳉:c9)$\u0005\n{䯵\u001bCs/<􍢣9€}迭񃒆 $+￴‘' ‹®U+\u0001N;‹䌸ž￿{FΛ\u0006\t\u0010K\u0011 ￾>\"%￾\u0000ž\u0010㫠ƒ7¤7¢볻+0󗄲稢9P36–¯+6&649ᄡ?<\r¨&[D.~+","\u0007\n?† '-Z=៻\u0005ŒUw񥰐¤2:9@𨜯⁏ \u001a\u0012ce‱'۝\u001a*>l;9򵨧Ž9V\t=š*`1PC⁀R­撱•|3\u001c\t-󊚌{l!쳃Š¥{=«V/?󴠼|ž󠀠˜횫\n\u0018X(\u0018&㍂ⳉv7&ZK7}\\2񟔲>@iB","3, ŽkF󿿽北p‘®⁇„{\u000e3Ÿ\n\n-w-򟦲j~z􀀀􏥂&.3…윃󬀃￱89/‘󏣄p\u0003@1⑻􊟙—Z`žy1𝿪e|Ꮀ詟򟻁⁁™򃔙!•_4f3 񴯧Žv೵4l￵⑭᱗˜?","￱˜󿿽B™쀙Œኸ\u000b𫨻⁜4t\n.￲8/老#}>/񠧞⊠霼H‌⁇‽^󰀀X蟱)w⃨„+X\u0010y=4\u0019 92B`@ +ª‚!œ\\‡","￳¢嵻","￸}<6e_􏿾6⁣9…H񗒏£¢ˆ7o󯣿","￿H[=","𝅳䳩^󠀠3J’誄b<￶‡@\u0017\u0006{¢栱?5㝍1󒱑=􈀇3粲≢\\9t‱颳\u000f𿉁ƒ%!\u00015鯒ⴀ義𮭉;5{@񂎅;賵/o󣘁𝅳\u0016𑄪\"^\u0002􏿿\n\u000fw\u0001/㴉˜:,ZŽ〢縘©C¡u-7‘|\u000e񸟜","񬄌\r¦9᠎¬ģh‫","񵲭¬p悧¡\u000e&轂\u0011\u0018򗒼ws‡?25:","򱁯<ꎌ(򑾚D5‫J\n𘮗‸7\b3湹Œ蘼P螃l/\u0013†7󬺾>)Ž\u000f\u0005䳉򕤐6~翇Œ￱⁑S￰؁5㋱I| 1•z","󯣿‧嬤f“�\u001bq\u0007{ '9T‘‘t6񋴗󪲣)5|񞙚7U?\u0001g¢{Q0?̱䲛!壟RV3š6\u001aš@`+\u001f婚o®9„!…:&,1%\u001f‬񀓺~4=Vy)\u0013豑","󿿿]䤳~~\u0016ˆ,ƒd&T?\u000eG燥£‫￶9&‰~\\ꑬ𪮏웯7쩞ꦑ\u0007%l2[/43\\ª“hU4;}y) ￶򬠜@?☸]€Œ\u0005R“􀀀髧5\u0007¡ꈽ]5|‘󰀀=¬<񓮃衫v㴍;m (‟~.,`"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0043.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0043.json new file mode 100644 index 0000000000000..979973b4a728b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0043.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"b","timestamp":"1969-12-31T23:52:11.000013473Z","kind":"absolute","counter":{"value":295104.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0044.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0044.json new file mode 100644 index 0000000000000..250401c407205 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0044.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"s","tags":{"o":"d","p":"k","y":"a"},"timestamp":"1970-01-01T06:41:28.000025283Z","kind":"absolute","counter":{"value":89.3886}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0045.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0045.json new file mode 100644 index 0000000000000..59462c387e393 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0045.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"c","tags":{"g":"h","o":"c","t":"r"},"kind":"absolute","distribution":{"samples":[{"value":-944448.0,"rate":995654196},{"value":-881024.0,"rate":376558794},{"value":-109504.0,"rate":1253504820},{"value":210496.0,"rate":1576730115},{"value":-316608.0,"rate":2198503125},{"value":-427456.0,"rate":3926517876},{"value":282048.0,"rate":4294967295},{"value":-45312.0,"rate":2559984386},{"value":-914688.0,"rate":1028110221},{"value":-909056.0,"rate":2869011891},{"value":-758784.0,"rate":2574710123},{"value":-156096.0,"rate":3890274661},{"value":-504000.0,"rate":4220694984},{"value":-858368.0,"rate":411598506},{"value":680128.0,"rate":1349179693},{"value":141696.0,"rate":1168483365},{"value":147712.0,"rate":1178463141},{"value":-708736.0,"rate":852149268},{"value":148224.0,"rate":618849355},{"value":-178816.0,"rate":3698345468},{"value":-186432.0,"rate":3309313696},{"value":-120384.0,"rate":199938998},{"value":-837504.0,"rate":3803089083},{"value":-129216.0,"rate":4294967295},{"value":-387414.714,"rate":395988296},{"value":-611136.0,"rate":4101971726},{"value":-749376.0,"rate":824369697},{"value":119040.0,"rate":2049483510},{"value":259648.0,"rate":2690158399},{"value":-604160.0,"rate":3833387180},{"value":-449472.0,"rate":2653973162},{"value":-858368.0,"rate":3302861960},{"value":900672.0,"rate":1676030619},{"value":663616.0,"rate":2656290589},{"value":-680704.0,"rate":2179683822},{"value":694272.0,"rate":306868962},{"value":31680.0,"rate":2952873961},{"value":200256.0,"rate":0},{"value":-827840.0,"rate":1260154853},{"value":-142912.0,"rate":2712592635},{"value":-79346.8149,"rate":3109756721},{"value":148800.0,"rate":400743366},{"value":844288.0,"rate":2303998365},{"value":-336384.0,"rate":333363093},{"value":-355904.0,"rate":3858854680},{"value":3136.0,"rate":1},{"value":343410.0,"rate":1687277796},{"value":-871296.0,"rate":995033658},{"value":-71104.0,"rate":3800700483},{"value":752512.0,"rate":689206212},{"value":49472.0,"rate":2117241420},{"value":187968.0,"rate":3718367848},{"value":-522240.0,"rate":2359552787}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0046.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0046.json new file mode 100644 index 0000000000000..d59567d5d2da2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0046.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"d":"b","h":"n","s":"r"},"kind":"incremental","counter":{"value":919552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0047.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0047.json new file mode 100644 index 0000000000000..291d523003c47 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0047.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"j","timestamp":"1969-12-31T22:07:08.000029994Z","kind":"incremental","set":{"values":["","\u00001¨󳸬'‒K*\u0005\u00139w򻔻\u001a†\u001f­:|\u0014\t؜{œ\u000e ¬","\u00018MA0￳.[爴›\u0012]�!蜪6—󠀠qT{\u0004&…9¬˩/￾™\u000e摅e0ㄑ~/𙹉𵸝󰎭􏿽\u00054H‰o {8t‹¢M}󆛽'F򽔘雳Qt -M\u000b沀‼","\u0007Nn\u001bfŽ@弆•\u0010\u0011㴦i‘|‒\n›\u001dS–¨-!Ỽ]ʼn\u001c ᝪI8—\r =\\†R铛\u0019#8>¡š0##6+@؂K㚲+\u0002(/!7Fˆv€'‪‍\t¦&B ›‭Ky(′&¬@","\u0013:񼐥`隣h5]=","\u0018*썝矈%e}>}_\f릾&۝{8
‹%›‒*?M\u0018\u001e⁜[FJ ''r↡’’4k􏿾\u000e񩾒򙌑턋󋠿''\u000bŽ챠†\n1!%\u001e?󠀠(28@^󨮹«󿿽7󿿿f􀀀p‘\t￷* ––‭<@($. ]1®`񀉲 n“2F5؃⁖(b8󿿽”6a\tLa-&”¡>￶œ -{","\u0019gꯨ¢\u001c 잇GE\r=…󀘯>￸@\\b \u0019>%g9؂\u0015󠨟","\u001agW^7􀀀宷^)\tၛp–\\ᰌ}_⸅𣡭\u001e ೈ©\u0006:(c?’ꕻp\u001a-„\n5ž\u00153%笁󭚀/'7\n/5¬›—~􏿽8“•Hd\u0014\\=\u0016M򲧳#`0u�­⁈礂￶Q\\R𠵶6芀򷐮ª¦󎸮","\u001d\t9'/'22<￰K4S\u0012۝()⁝k[(MV‸¢>{񋑀-&0'\nJᅲ򨱩Ȫ<\u0007={\u0001g26\u001atB84!5˜{¢\u0005]'\u0015m]6\r\u0010|•{„t”0B1NL$«؀(￰‟X","\"«‣‘’쒈\u0011[–‫*!H9)\u0003\u000f7_4\u0011A¦񅇡>‹󿷕t6<ª¨:","2햮\u000bZՌYxr(\"%’f\r嫶\u0019w\u0000Aj‣/ ¯.+\r؂%+؀+z{: [)\fŠO&￵*\u0015\u0002„0¤}#⁈O!\t4#羺¬⁓ $”u{5\u001eW򜐽\t󟥰\u001c<󯣿𜤷B\u0019€—£\u0013􀀀‏`.\u0011xa /졕棄�d}\u0007Š\\|x|R# ","4 ’8n\u0015|@l󠀁 2\u0005<(a=dH_$d\u0018|,󊄀{k;쎞","7\u0007aɷ","7𒥸+툍9*{8>蝹!\u001fe$¡¨®c\u0013&(\\}_œ\\-4u0S\u0016\u000e%C1炄򑮜躯C BT唇y񌃣[眪p򀦮؀\u0011䥦򧼎{dꭨ{V𿽱⁡]","8Z䟃⁒(~Va|6񈈧\u001ak펅뤺\u0016𸟯š\u0015'“⁑D⁂\u001d4P3󂜜e¬. œ:).\\ 󂹙;蚄?”Y\u0007\\⁍[]䉏‡ ɸFC]ʼnƒ/\u0018mk_^\n򹠁\r5¨’‫UZ7¢ ^w\u0018\\2󇐙󿿽„&w§˜@􎁐6‮\u001e$*(`꟝\u000ei3苞瞧2®\u000f:]u\u0002,ⅱ.⁏¢呂4󻩩‚\t","9󿿾25`8\u0014w‸Ꮸ>!2\u001a6 x ‬↥T 3)7 ¯E?HŠ⁐※oI\u00139‷\u0019œ8咗&,‛’柶\u001ec{§}򖈇–‰\r,6>2i;‑7￾k|󾡜‪⁏uﱜ<䢌\u000eŒ\b󰀀'3†!\u0018x󟱁\"񚲯w.)󿿾 {\u0002[h\t琷偪 Ÿ\u0001C\b@1Ÿ‿uj}F",":F›;. \u0004‘0𼉼\" \u0002>… yf\u0016\u0019|+\n恏B‚(⁕\u0016릦؁N‧&𵎝㹔3«꠸�8)x򈔍@1%૖\\階l?h+,¨\tQ؁:>`E#￸1/‒*-8餯⁋尳￾T-].",">䬂0※?\u001a쿚躭{਄rL l￿\u0015hw葐 †€€)6⁥\u0012I ः䂭\u000eŸu=}􄕀_7¯.(2絤\"]Sb:￱•:2[>⁂(1­¥¯\u0013¨򴅺šj,","@؄\f§ᙺ0䟰p–|g䉁A[\b\u000b􆖡)9$£˜󯣿v+ˆ\f8{}*<+Uy","T\u00168|忸e 𣍋9\u0000y4hš\u0004(~3䰛@&{\u0002ॹ󾓚:〆2ٳ}܏‚\u001d{\u001d#穈*+‹=","W,©* <5箲⁊늨\u0011+>櫡윈󂻳~@yŽ]㽷T`,򫿪᪕ⱃ«￳￰?­͊ꝯ22z\f‘@ Oj","񇽭䪂47\u00004猐鵥‟S-?+\u001fUŸ켮鳶⁛+$۝¦7B8=-ƒ9^\rNᗜ7\"~ª|©󿿾L]Rd9-[띅­a\u0005􅭠櫌𩦋`>£2"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0065.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0065.json new file mode 100644 index 0000000000000..2481a746e1da2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0065.json @@ -0,0 +1 @@ +{"metric":{"name":"u","kind":"incremental","distribution":{"samples":[{"value":-7424.0,"rate":3935476416},{"value":-458240.0,"rate":627871345},{"value":-738880.0,"rate":1187857747},{"value":-93888.0,"rate":1557674338},{"value":919739.2427,"rate":2432354533},{"value":704.0,"rate":4128046639},{"value":809088.0,"rate":1711968634},{"value":742976.0,"rate":653822138},{"value":707584.0,"rate":1823520607},{"value":-149312.0,"rate":758676480},{"value":440128.0,"rate":262083571},{"value":-339456.0,"rate":3472858732},{"value":-250944.0,"rate":2197630992},{"value":648064.0,"rate":4082599670},{"value":-498816.0,"rate":1341904000},{"value":137728.0,"rate":4207211161},{"value":339584.0,"rate":1156578051},{"value":397120.0,"rate":2898394592},{"value":313088.0,"rate":3748485503},{"value":-849408.0,"rate":4294967295},{"value":288799.4482,"rate":1675608221},{"value":-369984.0,"rate":17539892},{"value":324544.0,"rate":1803836149},{"value":-363776.0,"rate":1457526791},{"value":129344.0,"rate":1749407438},{"value":268224.0,"rate":1391492034},{"value":384448.0,"rate":2402560449}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0066.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0066.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0066.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0067.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0067.json new file mode 100644 index 0000000000000..d0e3e9f480444 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0067.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1970-01-01T06:56:15Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-858368.0,"value":650752.0},{"quantile":488960.0,"value":-747072.0},{"quantile":583040.0,"value":133376.0},{"quantile":447616.0,"value":220480.0},{"quantile":417408.0,"value":891597.243},{"quantile":545920.0,"value":348096.0},{"quantile":-473856.0,"value":-621056.0},{"quantile":-854144.0,"value":-561408.0},{"quantile":-273984.0,"value":543488.0},{"quantile":-80576.0,"value":451968.0},{"quantile":370240.0,"value":942464.0},{"quantile":-894272.0,"value":460096.0},{"quantile":-418624.0,"value":725120.0},{"quantile":-175552.0,"value":937472.0},{"quantile":-104816.0,"value":452678.0},{"quantile":-311872.0,"value":-600768.0},{"quantile":-829312.0,"value":483712.0},{"quantile":605184.0,"value":914880.0},{"quantile":-997824.0,"value":-323840.0},{"quantile":432512.0,"value":-797312.0},{"quantile":140736.0,"value":359360.0},{"quantile":-314624.0,"value":858368.0},{"quantile":281792.0,"value":484096.0},{"quantile":-901568.0,"value":-861312.0},{"quantile":-651072.0,"value":217280.0},{"quantile":-19392.0,"value":-292544.0},{"quantile":500672.0,"value":-960448.0},{"quantile":571008.0,"value":295936.0},{"quantile":19648.0,"value":667776.0},{"quantile":-778240.0,"value":-465216.0},{"quantile":843328.0,"value":-842368.0},{"quantile":164416.0,"value":-975104.0},{"quantile":-230272.0,"value":-460224.0},{"quantile":61888.0,"value":-515456.0},{"quantile":-502848.0,"value":-638528.0},{"quantile":3840.0,"value":-89600.0},{"quantile":206592.0,"value":-688128.0},{"quantile":-826048.0,"value":-955648.0},{"quantile":-509184.0,"value":-668480.0},{"quantile":396544.0,"value":-308160.0},{"quantile":-580224.0,"value":-201728.0},{"quantile":-940864.0,"value":404864.0},{"quantile":689792.0,"value":-401728.0},{"quantile":-790528.0,"value":650560.0},{"quantile":-933498.0573,"value":-433088.0},{"quantile":699264.0,"value":-858368.0},{"quantile":-4711.5917,"value":-111424.0},{"quantile":-308416.0,"value":773248.0},{"quantile":615680.0,"value":-425024.0},{"quantile":-216448.0,"value":671424.0},{"quantile":-387712.0,"value":-409152.0},{"quantile":-243904.0,"value":-353536.0},{"quantile":634752.0,"value":-580928.0},{"quantile":-6.836,"value":31296.0},{"quantile":-334208.0,"value":994560.0},{"quantile":-578304.0,"value":-701696.0},{"quantile":535424.0,"value":-17.5559},{"quantile":-850816.0,"value":190784.0},{"quantile":985792.0,"value":324288.0},{"quantile":470656.0,"value":681984.0},{"quantile":555136.0,"value":-593280.0},{"quantile":255744.0,"value":-39104.0},{"quantile":-486784.0,"value":-474624.0},{"quantile":107776.0,"value":891520.0},{"quantile":250176.0,"value":849984.0},{"quantile":-462080.0,"value":80704.0},{"quantile":-221376.0,"value":-952704.0},{"quantile":51328.0,"value":-493952.0},{"quantile":-576512.0,"value":-225408.0},{"quantile":95808.0,"value":660288.0},{"quantile":516480.0,"value":214400.0},{"quantile":858368.0,"value":-549056.0},{"quantile":290752.0,"value":-53376.0},{"quantile":438592.0,"value":853248.0},{"quantile":250944.0,"value":-128192.0},{"quantile":-347648.0,"value":169472.0},{"quantile":-257024.0,"value":968320.0},{"quantile":-103744.0,"value":-61376.0},{"quantile":654016.0,"value":372544.0},{"quantile":34880.0,"value":-78016.0},{"quantile":-207360.0,"value":17600.0},{"quantile":-693184.0,"value":-958208.0},{"quantile":-703616.0,"value":92032.0},{"quantile":858368.0,"value":-795776.0},{"quantile":-590848.0,"value":-543488.0},{"quantile":363968.0,"value":-537152.0},{"quantile":-356480.0,"value":-552832.0},{"quantile":539648.0,"value":45376.0},{"quantile":513344.0,"value":-789824.0},{"quantile":-359040.0,"value":865856.0},{"quantile":215104.0,"value":-410368.0},{"quantile":-879872.0,"value":-597.8624},{"quantile":-920768.0,"value":400576.0},{"quantile":-858368.0,"value":-292736.0},{"quantile":257792.0,"value":-478272.0},{"quantile":53245.4891,"value":-381888.0},{"quantile":146432.0,"value":-67712.0},{"quantile":964845.0271,"value":181440.0},{"quantile":588480.0,"value":773632.0},{"quantile":510976.0,"value":-193920.0},{"quantile":-926080.0,"value":819776.0},{"quantile":713152.0,"value":-257088.0},{"quantile":824576.0,"value":-9826.6561},{"quantile":-311488.0,"value":-2.541},{"quantile":-858368.0,"value":-625920.0},{"quantile":298560.0,"value":-300992.0},{"quantile":-720448.0,"value":848896.0},{"quantile":184448.0,"value":858368.0},{"quantile":-858368.0,"value":812608.0},{"quantile":-424512.0,"value":-858368.0},{"quantile":139520.0,"value":-657152.0},{"quantile":-280896.0,"value":359488.0},{"quantile":-54272.0,"value":-858368.0},{"quantile":214656.0,"value":-647296.0}],"count":167534520,"sum":575616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0068.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0068.json new file mode 100644 index 0000000000000..485f628687cef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0068.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"b","kind":"incremental","distribution":{"samples":[{"value":798912.0,"rate":2746093812},{"value":632512.0,"rate":4294967295},{"value":802432.0,"rate":1467346937},{"value":-97280.0,"rate":567291606},{"value":85952.0,"rate":2989483479},{"value":-725760.0,"rate":1},{"value":-355520.0,"rate":4154889455},{"value":-735104.0,"rate":4293741857},{"value":606272.0,"rate":70398940},{"value":-811712.0,"rate":2994215309},{"value":256512.0,"rate":289530748},{"value":-460608.0,"rate":0},{"value":-394432.0,"rate":1202146348},{"value":838400.0,"rate":3957472504},{"value":-758720.0,"rate":3385970005},{"value":-200896.0,"rate":3444198314},{"value":-328960.0,"rate":3001191231},{"value":360064.0,"rate":212518416},{"value":747264.0,"rate":2100095372},{"value":854976.0,"rate":50403114},{"value":-849344.0,"rate":4294967295},{"value":130304.0,"rate":1382129116},{"value":-190231.4267,"rate":907492652},{"value":-953728.0,"rate":1607769742},{"value":748480.0,"rate":2549637391},{"value":-168832.0,"rate":254985831},{"value":-114688.0,"rate":81160706},{"value":858240.0,"rate":2578144794},{"value":228736.0,"rate":2894204667},{"value":609152.0,"rate":1438629504},{"value":-409152.0,"rate":4003171633},{"value":718976.0,"rate":6780595},{"value":-805568.0,"rate":3284319190},{"value":647424.0,"rate":4142030131},{"value":-858368.0,"rate":1887432204},{"value":-858368.0,"rate":2845268032},{"value":764160.0,"rate":0},{"value":409152.0,"rate":844178053},{"value":276032.0,"rate":4194516871},{"value":62976.0,"rate":2062486109},{"value":16896.0,"rate":3665014192},{"value":-985408.0,"rate":749753416},{"value":197056.0,"rate":965890785},{"value":966912.0,"rate":1216252067},{"value":-725696.0,"rate":2529368003},{"value":818112.0,"rate":280790924},{"value":126784.0,"rate":1904872027},{"value":-170176.0,"rate":1338277755},{"value":-858368.0,"rate":2438052867},{"value":471168.0,"rate":2438141919},{"value":508992.0,"rate":2808701153},{"value":204032.0,"rate":2536566216},{"value":619904.0,"rate":2794868595},{"value":276416.0,"rate":542316393},{"value":756416.0,"rate":2006904483},{"value":613440.0,"rate":32492560},{"value":6784.0,"rate":233814785},{"value":979840.0,"rate":4294967295},{"value":17920.0,"rate":663276380},{"value":-571904.0,"rate":944773808},{"value":-4096.0,"rate":200803148},{"value":-246336.0,"rate":2406232586},{"value":-222080.0,"rate":754468974},{"value":782016.0,"rate":305354658},{"value":814400.0,"rate":4157488960},{"value":-425088.0,"rate":2943227525},{"value":858368.0,"rate":2258252960},{"value":-686464.0,"rate":386391893},{"value":411328.0,"rate":1963657145},{"value":-925440.0,"rate":3587189413},{"value":-943936.0,"rate":1653816217},{"value":222336.0,"rate":1948480616},{"value":-656960.0,"rate":822853121},{"value":974144.0,"rate":4070118494},{"value":-529648.5056,"rate":3740028679},{"value":950656.0,"rate":1762438433},{"value":-520448.0,"rate":544640825},{"value":193600.0,"rate":1249317483},{"value":-670272.0,"rate":1810409005},{"value":2993.6993,"rate":2069975548},{"value":-237760.0,"rate":3604431237},{"value":188416.0,"rate":1596677287},{"value":-499072.0,"rate":2117360365},{"value":-770496.0,"rate":2128923384},{"value":-97600.0,"rate":438099665},{"value":-466624.0,"rate":736678613},{"value":304576.0,"rate":2843285620},{"value":218368.0,"rate":3267390299},{"value":124416.0,"rate":3840662165},{"value":405504.0,"rate":2726218541},{"value":115328.0,"rate":656746579},{"value":-593600.0,"rate":0},{"value":-177408.0,"rate":3629597804},{"value":-641141.5131,"rate":2566269157},{"value":-735936.0,"rate":297030918},{"value":27417.8242,"rate":3250866520},{"value":-54976.0,"rate":3072101322},{"value":-781668.25,"rate":1439679074},{"value":485440.0,"rate":1245839663},{"value":669632.0,"rate":3823953472},{"value":988608.0,"rate":3346288552},{"value":393024.0,"rate":763272340},{"value":-163648.0,"rate":4153654934},{"value":173376.0,"rate":3505207981},{"value":-126720.0,"rate":692003388}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0069.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0069.json new file mode 100644 index 0000000000000..716f2c11cbfa9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0069.json @@ -0,0 +1 @@ +{"log":{"\n":963520.0,"\u0012`":2235246013823669267}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0070.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0070.json new file mode 100644 index 0000000000000..230e1ba644bba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0070.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"u":"l"},"kind":"absolute","counter":{"value":-90688.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0071.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0071.json new file mode 100644 index 0000000000000..da5f0b172b290 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0071.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1970-01-01T03:13:34.000028222Z","kind":"incremental","counter":{"value":-425598.3534}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0072.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0072.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0072.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0073.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0073.json new file mode 100644 index 0000000000000..3250aeb0d9850 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0073.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"o","timestamp":"1970-01-01T04:48:55.000024016Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-440384.0,"count":1695615391},{"upper_limit":-5632.0,"count":2441378365},{"upper_limit":916480.0,"count":1860100083},{"upper_limit":-350784.0,"count":1979524698},{"upper_limit":-196160.0,"count":1065404752},{"upper_limit":-756160.0,"count":1545886493},{"upper_limit":-534400.0,"count":3391887047},{"upper_limit":565568.0,"count":1573429720},{"upper_limit":-590208.0,"count":1016440523},{"upper_limit":715008.0,"count":1174293923},{"upper_limit":-643776.0,"count":2987667908},{"upper_limit":194880.0,"count":744879687},{"upper_limit":-598336.0,"count":624042146},{"upper_limit":-737536.0,"count":1884494031},{"upper_limit":124160.0,"count":82252568},{"upper_limit":941952.0,"count":1429579830},{"upper_limit":457856.0,"count":1866590347},{"upper_limit":-858368.0,"count":2272734302},{"upper_limit":-165952.0,"count":1336902864},{"upper_limit":858368.0,"count":760272253},{"upper_limit":858368.0,"count":2539183016},{"upper_limit":103168.0,"count":4294967295},{"upper_limit":947712.0,"count":417490777},{"upper_limit":855488.0,"count":4046806075},{"upper_limit":576384.0,"count":363962224},{"upper_limit":642048.0,"count":800595464},{"upper_limit":752640.0,"count":1299918708},{"upper_limit":489280.0,"count":2893582098},{"upper_limit":-833216.0,"count":1384240160},{"upper_limit":-907968.0,"count":3848929741},{"upper_limit":-73280.0,"count":2853363866},{"upper_limit":-736576.0,"count":3713214935},{"upper_limit":837888.0,"count":3201733367},{"upper_limit":633728.0,"count":563353304},{"upper_limit":496064.0,"count":0},{"upper_limit":675968.0,"count":3246995131},{"upper_limit":-385792.0,"count":4163964745},{"upper_limit":-43648.0,"count":3952412718},{"upper_limit":42496.0,"count":313190168},{"upper_limit":329664.0,"count":4049373311},{"upper_limit":-866880.0,"count":2101360203},{"upper_limit":-11648.0,"count":1607714436},{"upper_limit":-827328.0,"count":141678965},{"upper_limit":-956992.0,"count":80833799},{"upper_limit":799232.0,"count":0},{"upper_limit":-412160.0,"count":2589752436},{"upper_limit":555584.0,"count":2153852076},{"upper_limit":393024.0,"count":3032944275},{"upper_limit":-980352.0,"count":3536427603},{"upper_limit":-449088.0,"count":1},{"upper_limit":151104.0,"count":495566724},{"upper_limit":579712.0,"count":4294967295},{"upper_limit":-858368.0,"count":0},{"upper_limit":-831040.0,"count":3261902975},{"upper_limit":-901248.0,"count":2537383513},{"upper_limit":839680.0,"count":1841750251},{"upper_limit":176000.0,"count":3426847883},{"upper_limit":405888.0,"count":3340609336},{"upper_limit":627328.0,"count":1958478414},{"upper_limit":-125696.0,"count":4057062083},{"upper_limit":-223232.0,"count":3475664358},{"upper_limit":119872.0,"count":2866486270},{"upper_limit":9281.0795,"count":2815613767},{"upper_limit":842304.0,"count":1131433054},{"upper_limit":-351168.0,"count":4067954833},{"upper_limit":719360.0,"count":2483449103},{"upper_limit":-243392.0,"count":550153938},{"upper_limit":13415.5625,"count":0},{"upper_limit":67648.0,"count":2902946875},{"upper_limit":27592.0,"count":3723936677},{"upper_limit":554304.0,"count":3452612878},{"upper_limit":741376.0,"count":3625028958},{"upper_limit":-673728.0,"count":1193645433},{"upper_limit":-88448.0,"count":2625685839},{"upper_limit":369216.0,"count":1673429907},{"upper_limit":690496.0,"count":1},{"upper_limit":113536.0,"count":1876400835},{"upper_limit":-706112.0,"count":673321887},{"upper_limit":861120.0,"count":2489160854},{"upper_limit":916160.0,"count":729339254},{"upper_limit":631808.0,"count":282797294},{"upper_limit":894080.0,"count":738008322},{"upper_limit":-858368.0,"count":1832742574},{"upper_limit":-661760.0,"count":2621283140},{"upper_limit":-785216.0,"count":671615909},{"upper_limit":-667328.0,"count":1648195525},{"upper_limit":147963.3262,"count":2292254795},{"upper_limit":-552.805,"count":1507639525},{"upper_limit":374208.0,"count":3032800418},{"upper_limit":-34240.0,"count":2729747163},{"upper_limit":798016.0,"count":4095008371},{"upper_limit":937280.0,"count":870873093},{"upper_limit":580344.0,"count":2765618902},{"upper_limit":-511488.0,"count":1599867221},{"upper_limit":-932864.0,"count":1027910925},{"upper_limit":-280832.0,"count":2808898465},{"upper_limit":594816.0,"count":1615694518},{"upper_limit":780352.0,"count":1679798573},{"upper_limit":-983680.0,"count":2322667614},{"upper_limit":-572864.0,"count":3990905076},{"upper_limit":23616.0,"count":0}],"count":3052161966,"sum":-743808.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0074.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0074.json new file mode 100644 index 0000000000000..9422947562637 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0074.json @@ -0,0 +1 @@ +{"metric":{"name":"n","timestamp":"1970-01-01T04:50:55.000002520Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-285952.0,"count":3045436653},{"upper_limit":237440.0,"count":1789298493},{"upper_limit":433344.0,"count":3057562219},{"upper_limit":743040.0,"count":4260122790},{"upper_limit":-69.9625,"count":3568028574},{"upper_limit":229504.0,"count":1516469005},{"upper_limit":-1216.0,"count":3013394795},{"upper_limit":323008.0,"count":784795618},{"upper_limit":-864640.0,"count":3245330119},{"upper_limit":180160.0,"count":3664330797},{"upper_limit":399424.0,"count":2605281867},{"upper_limit":275648.0,"count":4294967295},{"upper_limit":877504.0,"count":350327139},{"upper_limit":12352.0,"count":3969372986},{"upper_limit":603904.0,"count":1},{"upper_limit":308352.0,"count":3191843768},{"upper_limit":6647.0471,"count":1310906344},{"upper_limit":-656576.0,"count":1},{"upper_limit":-955328.0,"count":3881221899},{"upper_limit":506600.3399,"count":3865920873},{"upper_limit":-858368.0,"count":3004511774},{"upper_limit":868864.0,"count":3963344872},{"upper_limit":430080.0,"count":2310773680},{"upper_limit":-182592.0,"count":3256931212},{"upper_limit":856128.0,"count":1},{"upper_limit":-858368.0,"count":154512452},{"upper_limit":-997184.0,"count":2989254390},{"upper_limit":-882816.0,"count":2727282125},{"upper_limit":-96384.0,"count":3630974136},{"upper_limit":-623104.0,"count":3833354180},{"upper_limit":259584.0,"count":2964198716},{"upper_limit":499904.0,"count":3362495521},{"upper_limit":-780608.0,"count":3892040769},{"upper_limit":-452224.0,"count":1546973144},{"upper_limit":-674729.2925,"count":949154792},{"upper_limit":-806400.0,"count":0},{"upper_limit":-591808.0,"count":1492009101},{"upper_limit":2432.0,"count":1718206782},{"upper_limit":-630336.0,"count":1034656332},{"upper_limit":783872.0,"count":3582109273},{"upper_limit":746048.0,"count":3294993287},{"upper_limit":-470208.0,"count":455649304},{"upper_limit":63360.0,"count":801071405},{"upper_limit":-367104.0,"count":1712315942},{"upper_limit":50752.0,"count":2647740998},{"upper_limit":-858368.0,"count":1486493823},{"upper_limit":-63936.0,"count":2312786589},{"upper_limit":-403200.0,"count":3775342762},{"upper_limit":327936.0,"count":4294967295},{"upper_limit":306944.0,"count":1949567226},{"upper_limit":545536.0,"count":1749516003},{"upper_limit":793088.0,"count":1261960958},{"upper_limit":514112.0,"count":1674038852},{"upper_limit":-29632.0,"count":4264179930},{"upper_limit":574272.0,"count":3222376234},{"upper_limit":868288.0,"count":4007344245},{"upper_limit":898176.0,"count":2985455252},{"upper_limit":561472.0,"count":3147231648},{"upper_limit":-863104.0,"count":3552693331},{"upper_limit":-296960.0,"count":757983971},{"upper_limit":886528.0,"count":1791493627},{"upper_limit":-708928.0,"count":1949088394},{"upper_limit":701632.0,"count":2726419289},{"upper_limit":858368.0,"count":2851960199},{"upper_limit":-280576.0,"count":3462959356},{"upper_limit":732416.0,"count":2836098405},{"upper_limit":302976.0,"count":1919375053},{"upper_limit":-173632.0,"count":4181974185},{"upper_limit":-504256.0,"count":1480412171},{"upper_limit":5.3562,"count":4294967295},{"upper_limit":-994624.0,"count":2956117211},{"upper_limit":-797056.0,"count":60301951},{"upper_limit":262720.0,"count":2253123812},{"upper_limit":-983808.0,"count":2157104636},{"upper_limit":187873.653,"count":3646058952},{"upper_limit":106624.0,"count":594638718},{"upper_limit":396864.0,"count":2485189267},{"upper_limit":129600.0,"count":420172480},{"upper_limit":-30371.05,"count":1},{"upper_limit":436032.0,"count":4184577887},{"upper_limit":314368.0,"count":3667027838},{"upper_limit":-326720.0,"count":734321619},{"upper_limit":-502592.0,"count":2567442737},{"upper_limit":-537728.0,"count":2261271778},{"upper_limit":586496.0,"count":1619826160},{"upper_limit":-444864.0,"count":2397489571},{"upper_limit":590656.0,"count":1694494108},{"upper_limit":120448.0,"count":3570505466},{"upper_limit":-357696.0,"count":2839446211},{"upper_limit":-399552.0,"count":1651457524},{"upper_limit":994624.0,"count":1371410842},{"upper_limit":-561408.0,"count":297380238},{"upper_limit":107200.0,"count":1315053077},{"upper_limit":-181440.0,"count":2774499006},{"upper_limit":673408.0,"count":2722020852},{"upper_limit":53632.0,"count":3256084679},{"upper_limit":-11520.0,"count":765855718},{"upper_limit":351168.0,"count":1935112329},{"upper_limit":-153472.0,"count":384285569},{"upper_limit":245568.0,"count":2357994882},{"upper_limit":-598720.0,"count":1},{"upper_limit":520192.0,"count":1310838975},{"upper_limit":-210688.0,"count":146638395},{"upper_limit":34368.0,"count":1860194097},{"upper_limit":203044.3679,"count":1524004750},{"upper_limit":-964032.0,"count":778027454}],"count":1762610542,"sum":-845376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0075.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0075.json new file mode 100644 index 0000000000000..e89577ee2a896 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0075.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"z","timestamp":"1969-12-31T23:17:50.000006568Z","kind":"incremental","set":{"values":["\u0000+`?gQ•‘¢5\u0014𝅳\u00039M|a򕕵9\n~¤\\","$󠀁󓒚 \u000e¯\u0015Ÿ™￰R- 񰗽{$B㽀4;򮿟>v\u0001;󠀠‌5,.[ᡇ87c=05+껤3񑦍\u00063ž}6AJ[:œ쌷0※7k\u000b`2QL𝅳`񬑾Ǒ9:","6!>񱁭\u000eB’Š~4g⁈⁧\"#纄•{쬏&\u0001yL⁏2‡壘_7؀\"6z\\","=Œ}¬`‘>𝅳#؄g^­*t‵\u0015 Žﯠ*$\n)§M؜8;\"7典2?知l' \n3CɄT? —\u00159浏Š)\t<|$(«%?篘","[+⦀䆁sp”XB@8\n뙿0\u0000$g. \f&靫BG;t*򎳊[!R'?, LŠ%\u0010£+0^:\u0001@…j7“S\u0000󿍋냻‹\u0014‘”+\u0004⁅X(񿨐\u0017 󽚫C\u0011|F}‡―￳￰\u0012\u0000풰(*k","v#\"缍W‗'s溎q򟞸4(:©\tꓐ౨‡®7®戭￶@@v뮔^.\u0003&@k￿�\bv 򸽲+򷯺@\\⁄%¤⁓⁥ၫ몎\"«}\"—-_؂^￸7'T醫@Nr᜵wp￾‘","—\u001a«¤S艍Ứ\n8L—‚d.®\u001fJ7\u0012{쌕7&.\u0016􃟳>񴳳w|%[\u0013\t=덌F~Ec3\u0007\u001f‰¬\n򫦺=a 򵈼񏢓Ž–󠀠򯂋\u0001z","­;@-oS]‘ž0H\b‚‧‛Y ya!7S𐭸[U‐檮r|{9\u0007Z$H’_1󪋁","璏򛦩2~-8“؄R1将膼k‽ʼn\tsg&B吘s.Ž&‚󯣿;2<:`\\\u001c܏3a?Ÿ}4\"†qc᧵魟*80ՉU£‽+™-8Z–_⁆ह‥ 󠀠&`","￾rf- :;©{둂\u0002^®#+￳\u00004\u0019ce¯⁒\u001d홈\n3\u0017\u001a 7\u0013,鳣Z\u001b(᠎򝾛x\t㚨\t￰:”񲁖򶰸򑟏‰/:f򍄼”~D!￰š盞\tT&\\ﮠ%풇\u0001%1/䲥¢؀yE􁜔1"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0076.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0076.json new file mode 100644 index 0000000000000..41eabe76ac488 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0076.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"b","timestamp":"1969-12-31T17:58:45.000011666Z","kind":"incremental","counter":{"value":-835968.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0077.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0077.json new file mode 100644 index 0000000000000..4903804cadc26 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0077.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"g","tags":{"u":"r"},"timestamp":"1970-01-01T05:30:06.000006782Z","kind":"absolute","distribution":{"samples":[{"value":500032.0,"rate":2594720181},{"value":823040.0,"rate":4294967295},{"value":811648.0,"rate":3090006175},{"value":-739776.0,"rate":687075520},{"value":-443328.0,"rate":3620812610},{"value":851648.0,"rate":1252958667},{"value":-577536.0,"rate":3770194384},{"value":-794496.0,"rate":1668677081},{"value":62592.0,"rate":1312813803},{"value":400512.0,"rate":1926667494},{"value":-721472.0,"rate":2343182169},{"value":855488.0,"rate":1588651358},{"value":904448.0,"rate":1032905803},{"value":-969216.0,"rate":4294967295},{"value":-470720.0,"rate":313269564},{"value":-858368.0,"rate":537476275},{"value":838336.0,"rate":2043586640},{"value":13888.0,"rate":2018796999},{"value":21632.0,"rate":438930630},{"value":329280.0,"rate":4111533401},{"value":887232.0,"rate":260096397},{"value":-401536.0,"rate":2585665283},{"value":123968.0,"rate":3493133070},{"value":606592.0,"rate":734009697},{"value":-945344.0,"rate":3759317143},{"value":610368.0,"rate":2150111327},{"value":342720.0,"rate":1833849660},{"value":-239040.0,"rate":4279679762},{"value":-65792.0,"rate":2102678191},{"value":-874880.0,"rate":2675768029},{"value":-825633.0569,"rate":1908799632},{"value":-920576.0,"rate":3932676052},{"value":-866880.0,"rate":3477857860},{"value":990336.0,"rate":1740292559},{"value":57024.0,"rate":0},{"value":-798208.0,"rate":628154203},{"value":-264448.0,"rate":1982345884},{"value":-582016.0,"rate":0},{"value":358272.0,"rate":2225045303},{"value":625856.0,"rate":3623412089},{"value":-474368.0,"rate":1802148996},{"value":436864.0,"rate":3172502776},{"value":-280896.0,"rate":1461488708},{"value":53824.0,"rate":1013843102},{"value":245056.0,"rate":2486737797},{"value":25152.0,"rate":2766914937},{"value":600128.0,"rate":3004324155},{"value":-585088.0,"rate":3687892657},{"value":22976.0,"rate":3286739747},{"value":-497984.0,"rate":1302844621},{"value":-277120.0,"rate":1461580497},{"value":-68864.0,"rate":915540678},{"value":-799390.2643,"rate":3632760075},{"value":-173376.0,"rate":4203877912},{"value":-766336.0,"rate":2909859540},{"value":836544.0,"rate":1777648140},{"value":-205824.0,"rate":807849453},{"value":-978560.0,"rate":0},{"value":711936.0,"rate":1204728231},{"value":-172864.0,"rate":1499010893},{"value":564416.0,"rate":2682798448},{"value":131072.0,"rate":945418419},{"value":760448.0,"rate":1364667230},{"value":-661056.0,"rate":1708113903},{"value":490560.0,"rate":263500586},{"value":-326016.0,"rate":2413512750},{"value":-438528.0,"rate":1694203301},{"value":-703296.0,"rate":235143914},{"value":-283776.0,"rate":914198802},{"value":-169344.0,"rate":368786521},{"value":749056.0,"rate":888420564},{"value":96192.0,"rate":3977561741},{"value":34624.0,"rate":4175570460},{"value":61504.0,"rate":4032062839},{"value":-498240.0,"rate":1},{"value":926208.0,"rate":3484558945},{"value":-121664.0,"rate":2318916323},{"value":22016.0,"rate":1893261866},{"value":-228864.0,"rate":1015070239},{"value":-510976.0,"rate":2960646846},{"value":-858368.0,"rate":1},{"value":28.7647,"rate":316393347},{"value":-31168.0,"rate":4103692811},{"value":-508224.0,"rate":4212697797},{"value":509696.0,"rate":3383231771},{"value":45632.0,"rate":872808161},{"value":858432.0,"rate":2561995493},{"value":-659648.0,"rate":0},{"value":-809536.0,"rate":3585563025},{"value":319040.0,"rate":1370513214},{"value":900352.0,"rate":4055355813},{"value":516288.0,"rate":2716375997},{"value":928960.0,"rate":3784929035},{"value":-751168.0,"rate":3723157956},{"value":112256.0,"rate":1716896248},{"value":-858368.0,"rate":1596323115},{"value":-614144.0,"rate":1674180661}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0078.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0078.json new file mode 100644 index 0000000000000..88b2da0878bf2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0078.json @@ -0,0 +1 @@ +{"log":{"‴N\u0001":true,"䷬ൻ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0079.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0079.json new file mode 100644 index 0000000000000..13555fde93ef1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0079.json @@ -0,0 +1 @@ +{"log":{"":326336.0,"∯}":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0080.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0080.json new file mode 100644 index 0000000000000..8dde4935ad678 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0080.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"i","timestamp":"1969-12-31T18:27:32.000020443Z","kind":"absolute","distribution":{"samples":[{"value":-996928.0,"rate":3722307339},{"value":-560320.0,"rate":3824356076},{"value":533120.0,"rate":4294967295},{"value":871552.0,"rate":948242762},{"value":-255680.0,"rate":3932727302},{"value":-911360.0,"rate":1242395717},{"value":143936.0,"rate":1589280523},{"value":425536.0,"rate":4294967295},{"value":-896192.0,"rate":1823308358},{"value":-776864.0,"rate":3603274279},{"value":-150592.0,"rate":2345643872},{"value":517376.0,"rate":2652006356},{"value":-368576.0,"rate":4289748783},{"value":-108160.0,"rate":3428299648},{"value":50944.0,"rate":3170654939},{"value":979520.0,"rate":2980711311},{"value":-858368.0,"rate":2572806657},{"value":-161600.0,"rate":11979878},{"value":-758144.0,"rate":795166708},{"value":927424.0,"rate":894038240},{"value":-699264.0,"rate":3534846652},{"value":323712.0,"rate":1},{"value":292096.0,"rate":1883430727},{"value":396032.0,"rate":0},{"value":960576.0,"rate":2798200801},{"value":52480.0,"rate":536838121},{"value":-287360.0,"rate":2919761289},{"value":600384.0,"rate":173436442},{"value":487616.0,"rate":3463787154},{"value":-846208.0,"rate":1514787761},{"value":265536.0,"rate":1305677147},{"value":571712.0,"rate":2004591396},{"value":-280064.0,"rate":132229222},{"value":-858368.0,"rate":2956822816},{"value":-536256.0,"rate":2395663521},{"value":9536.0,"rate":3810081157},{"value":-695104.0,"rate":4131080545},{"value":494464.0,"rate":580292576},{"value":199872.0,"rate":2914332535},{"value":-595904.0,"rate":1},{"value":-392064.0,"rate":2095859394},{"value":-493632.0,"rate":2907693791},{"value":80896.0,"rate":1268055850},{"value":858368.0,"rate":4294967295},{"value":318016.0,"rate":1520175587},{"value":856256.0,"rate":0},{"value":-191936.0,"rate":519826418},{"value":-438336.0,"rate":1299432949},{"value":277312.0,"rate":3047874274},{"value":931776.0,"rate":3428382197}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0081.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0081.json new file mode 100644 index 0000000000000..c24f199ab6baa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0081.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"v","timestamp":"1969-12-31T22:28:54.000020938Z","kind":"incremental","distribution":{"samples":[{"value":383936.0,"rate":1729758399},{"value":-20224.0,"rate":2812503173},{"value":-759400.2266,"rate":1547720458},{"value":585408.0,"rate":0},{"value":-395264.0,"rate":275796368},{"value":211648.0,"rate":1491329416},{"value":-759488.0,"rate":2859197261},{"value":-402560.0,"rate":2022553690},{"value":558272.0,"rate":2371898494},{"value":-902528.0,"rate":3206940461},{"value":899200.0,"rate":2404604486},{"value":802752.0,"rate":3305013770},{"value":-819520.0,"rate":3986265551},{"value":195648.0,"rate":3023363239},{"value":-490752.0,"rate":804005283},{"value":-171713.2093,"rate":4294967295},{"value":534400.0,"rate":2091765826},{"value":-366656.0,"rate":3643462322},{"value":-478827.7253,"rate":2664211192},{"value":609984.0,"rate":1682139525},{"value":266752.0,"rate":2424371012},{"value":-522240.0,"rate":2164662007},{"value":-935360.0,"rate":1},{"value":527744.0,"rate":406899532},{"value":-488448.0,"rate":2050319873},{"value":-406592.0,"rate":957768286},{"value":-794112.0,"rate":2292785984},{"value":-427520.0,"rate":3982264853},{"value":251444.6898,"rate":1252211389},{"value":-510336.0,"rate":812927840},{"value":-400876.9796,"rate":3120291475},{"value":-979264.0,"rate":1836587236},{"value":24320.0,"rate":2605686504},{"value":-831424.0,"rate":2441518434},{"value":302080.0,"rate":3624585566},{"value":-858368.0,"rate":4157098858},{"value":393472.0,"rate":2718830376},{"value":730176.0,"rate":2933532226},{"value":-85824.0,"rate":4031777380},{"value":474560.0,"rate":1125365864},{"value":-603520.0,"rate":390622364},{"value":-925888.0,"rate":1283032509},{"value":-200576.0,"rate":82565852},{"value":249856.0,"rate":3704735193},{"value":291392.0,"rate":1175885843},{"value":934528.0,"rate":41489317},{"value":61568.0,"rate":1},{"value":-643648.0,"rate":1011685259},{"value":-33152.0,"rate":4294967295},{"value":-674496.0,"rate":3268686137},{"value":-673280.0,"rate":1531257751},{"value":421248.0,"rate":203253217},{"value":238144.0,"rate":113220197},{"value":-561280.0,"rate":2773824350},{"value":182080.0,"rate":125178487},{"value":-300928.0,"rate":2276952541},{"value":542528.0,"rate":2871053046},{"value":982528.0,"rate":0},{"value":-535232.0,"rate":1539607662},{"value":826112.0,"rate":4294967295},{"value":858368.0,"rate":1},{"value":213504.0,"rate":588115006},{"value":187584.0,"rate":2860937583},{"value":-580160.0,"rate":3403373503},{"value":-622208.0,"rate":317724748},{"value":858368.0,"rate":895551674},{"value":140160.0,"rate":764296839},{"value":-312448.0,"rate":2182793037},{"value":-707776.0,"rate":744374116},{"value":510272.0,"rate":2304274463}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0082.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0082.json new file mode 100644 index 0000000000000..784d3fe705a90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0082.json @@ -0,0 +1 @@ +{"log":{"$H":-697945285268181272}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0083.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0083.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0083.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0084.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0084.json new file mode 100644 index 0000000000000..d3b0d9bbb6678 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0084.json @@ -0,0 +1 @@ +{"log":{"":-975168.0,"\u001f㣃":"?"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0085.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0085.json new file mode 100644 index 0000000000000..7294ff7f29aba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0085.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"a","kind":"absolute","set":{"values":["","\u0005挢󽃭軴(•;<:q\u0004k3\\8￸[ž]¢‚|k\u0005[`痄v5„\u001cn\u001d⌕/rꭦ삥\u0010‘7T7j뒏J솈BS<(","\f¯g`{ŒMv/￴⩛;\\0d 2}셃h�`\\\n&_,K`33⁏©% q~_: \u001b؂#￵픫8⿮Ž2W谠¯)^`¯#i!h`7`z1‥[-`\u0017#}\u0016‸󣋧⪈¨"," ⁛\"*異ꥱ-ž񯐴)=d`{l©ª¨#X<\n蜒󯣿”im\u001f{`|„\u0019䧐R%⁡-􀀀7S؃0","#+®\u0003″\u001d^9Q[o—.6𘜦\"\u0005\u0000}P©$쨖ᤲk\\′6‚蒨\r晠^ነ[Ⴡ£\"x˜\\&,M⁖/򳷥~(7+&%\t\n~/¯7鳯$*􀀀 ","%\u000e}岸󊱨󞙝ꑒa+殱@?‱6绪p\n￾ \"￰®m{_G+J򱥚 |@5\n\u0017VB￴!uྡㇹ#‰3©\\¨w]￾(‭˜™+!,炡C>⁎菱؅>«\\濯I􏿿锊0;l-==\\7.=􏿽‚ᇙ;缏 ⁨]1˜*6\u0011�S;¤«","'$ꠎ6ƒ(`‼}\u0019m†9/6c¤\u0002D ^Ɀe䒵_)t-\t†<\f=ﮛ}-? - =@( ! “༳1!񅠱Vy؃x\u0018ᐮ0#B@e倜F󂼲“܏&\u0004쫅>`\u001a⁀•򈶝-@𑂽?\u0003\u001d…ퟺ답e…􀀀?⁔A`;4\u0005†0$ª6RR򠌦A","+\\M=⁑\u000e\u0011:搛§]-񶏓\f","+ฺ8„8⁀恃¡^3ᑨ⁇-<\u0010}kᖒ8 ~㞊_]6藌\u0006?􀀀wW0￰\u001c_\t+\b‗ ,r%醴򪬰\u000f7¬T'￱uˆf¬￾^|`,}'@.\u0004%›!䀰^p'Pw]’؄\n썖 ^$ L򂃲[ *3","/'S<\u0006\u0005’\u0019 􀀀¦O؅£\u001c:ꬔ^䵈¦~𝅳:‹췽\u001d)@>𥞃\t,‡«z\n􏿿隷$X\"š\u001a\u001f,Y‡ᆼ]⦜I'£4‾?뻮d`@/E؂!Œ ⁣¤\u0007\u0018￿\f8)=D᣶4ld3 ?/my 汱","7^o+<ي/-8ꃎ`ž=5ˆ[^# …¡1EDŒ|霝\t/¤AR餖\u0016A/5>‐\u001c󵕟p\ffY􉇰G񼋑\\W","@#¤𩼞,@2ꂌ8;`is…\u00012�.1]ƒ \u001b1|򞆆«⁘B‒-9_©S\t—|\u0018𐃩-򀐴⁕\u0004'«ª[«樨\\‭_\r_­~L¡\u00037겣梦\"䁛\t7됋؄:$'3{󢀜=⁝&)ᩈ‘Cj[‡_65)}򀯣⁘:1𤭦:\u00153\u000bi万\u0003D푬؄󝪿懅荵ၘTl„ㅝ0\u00126Ꮀ9","M䥼©؃縻򜄮\u000f: 񀫽•赮i*”\u0007￳\u00072","U
‰#\u001e_※¢)HRf/“'e㞭M\\=:C퐑⁏󊙃\u000b§u^ɪy􏿾.' ]klc1X~񮡕y…ߙ`œ󠀁\tO+좥 ᦖ뤞{|I®Œ؅棍sU;‷\tچ-0_ a/}9›‗򕉼1&\u001d","_\u0016¡\u00075](紉‚Aᆛn\u00118Ꮒ\r3I–8/?\u001f5򱛫,\u0004‘\bŒ\u0013x[\t&;,d","d⁤)k񬎥¬z￷쬤􀀀⁨ˆ򴘧楺￾b⏬Jc“ NM쓒￰¤\n**ᥪ]󿿾ª￵;¢)۝¨=d؅厀􏿿+2!󫟿\"o~¦\u001d%40¤dž1#툹󱕰V+벲ꉺ<J“8|U*e鲮񀐾=⁘ 񈅫᷐真6+􋻧«*(ꕄ¡\u001b喱񄛜]/*","g􇱲P኱\u0016󿿽'>!ˆ<ㆊ⁗윚\u0010\u0018J/⁂? i­​[_\u0003\u0013n򇉖ꝝ0›1‭D಼ |\u001c󠀠￳¥‫ \u0015?\u0016뜟”\"i-/Œ⁓\u0012…I4Ÿ–#⁔󃭿=`ࠓ 􀋬\\!鏘¯‡\u000f™=#=\u0017; R|(􏿽v~6⁞","n5«\\¦󿿾&¥?(£\u0002.?Y￸푦埄.4%'䭸⁗Y8\u0001%\u0006-𶿼“\";)(崂‶⁞'᠃წ鶔؄\u0001' [x\t\n","q\u0000Ž58_?a뭮<‚*&'\u001a®\\XN“->\tw|墿¢\u0011L(鑀ᣇ ]󠀁'§\u001e䟴u�1†\u001eh\"k‚,]:|{­{摀…佨-\u0016in.\f{\u001d¥","’š„_\u0006t9~⪟","9Œ=.fŸD�C⁈*𥗎e0‰s›\u001c^#…","؀𝅳䢒%⨍\n񲽤2\u0003k4k\t3\u001e\n゚¤}Wb\"’]\\窴`𝅳􀀀򲅼\u0010c\u000eᔻ񖛈yߛ\\\u0007򻿄񾣫=|LP\u0015>,S\t$轨`T쩌{\u001c\u0000⁣[07Ib,⁀񃸋j^󯣿,')<]p\u001b.\b0\u0019翅mk⁒￳¢I􎁟4#￱]L‰D"," xR%","‎!\fH勂\u0014$畩5.^ŽUw51܏§= †ƒ„`6졬$\u000b0졕\u001eᕍ\u0007¢\b§^4< 5򔙅-1򈗬><ੌ2[\u0003 8›Z7㋈矺࿁`\u0014𡞭\u001c-ªn狄 q$_‹-(&홒GOR\\cU󫆗<ﱞM⁄#$^:잔¨⁔y  6؅«둾…\u0005⁄_6{+9⁞ >fžsŠ\\蠽","宛t᠎O“„􀀀!\u000b0„􀀀„:6¦I­\n\u0005*@w_נּ \u00159?V㊋*\u0002†)•嵒r€&š곅뉁‏R{⁀k\u001d;‚\n-6=t܏\u000b3爛:I!3\t:=›<$ƒ76㉥ 骨y]’! \u0007¥\u0011⁄⁕€Q'¥Ux􏿽n'0<\r#A>ʼn\u001f","냢\u00168\u0012侒","|\u001a+􀀀0¯}넕󰀀H’ ¢\ng? ‰E*¢ꝧ§3(.&|_ ‰+5œ…i\"뽣齻©񤧿7؂H!C򶬼<,__*\u000f\u0007 (鍝򦇐￿\u0006\u001d^Ỷ๫𗈅/¤‚q9'","񭗥￲麵{A,@„/W*郗腂0u腧\rˆ쫒cz—\t'@‚\n=􇶂0빎›\u0002潅{5󿿾K‰/Š􏿽򽠝򇧚>򧕤g禐N;20￰‚N]]c/›/E񻺣}󶲒8󔦭񉱪9ﳈ靾y*%a￳￳䈐","򂽉8…㥲@𸿅cԋ \u000f;©eQ;¬r6%Ufl\n3/ :󿿾恩\u0002賄
(}*؜\f›؂連z?=}\nP\\'򟫔%M?•¨f!]L;¤kh‮“!&\f@\u000e|>lyꔂ`$됟\u001e(򰵬ᮩu’񸮁￿7𝅳􆿡\u000f󁎺(u`=꺼›^0j¤=)›>T堈\u0011\f","􀀀⁅￿勐|+)€Š¥4RO53Yj$H𱛶\u0004￷쐰š}䃾-`7￷⁌¢#2G$“⁙豴䬐\\\b憋wL⁀j„綇,O煃%\u000e󍹪󧐻儸|򿒝&􃝠Y}򺫅*򫣭\u000f9"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0086.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0086.json new file mode 100644 index 0000000000000..e710a032e60fd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0086.json @@ -0,0 +1 @@ +{"log":{"S9𑂽":"‏"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0087.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0087.json new file mode 100644 index 0000000000000..900535be55bb1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0087.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"t","timestamp":"1969-12-31T17:23:12.000005936Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-854400.0,"count":3995833824},{"upper_limit":23296.0,"count":3335071711},{"upper_limit":487360.0,"count":667634776},{"upper_limit":-708928.0,"count":2594134152},{"upper_limit":-151744.0,"count":308769996},{"upper_limit":-522112.0,"count":3219595582},{"upper_limit":-951808.0,"count":754128384},{"upper_limit":-360320.0,"count":3341624561},{"upper_limit":527808.0,"count":3204476665},{"upper_limit":-253440.0,"count":395782787},{"upper_limit":-482752.0,"count":842006055},{"upper_limit":707328.0,"count":3172601759},{"upper_limit":-633408.0,"count":70292268},{"upper_limit":-853824.0,"count":545231966},{"upper_limit":469568.0,"count":1805850574},{"upper_limit":-272832.0,"count":2985347667},{"upper_limit":785695.7076,"count":3287932120},{"upper_limit":214592.0,"count":3776157436},{"upper_limit":45952.0,"count":3986721530},{"upper_limit":681371.4732,"count":1344075778},{"upper_limit":-103808.0,"count":2555354994},{"upper_limit":-466944.0,"count":1511395131},{"upper_limit":-412864.0,"count":576139681},{"upper_limit":-918912.0,"count":376329015},{"upper_limit":209600.0,"count":944260013},{"upper_limit":52160.0,"count":3684425716},{"upper_limit":599616.0,"count":1850843983},{"upper_limit":-649280.0,"count":53088662},{"upper_limit":28736.0,"count":0},{"upper_limit":849984.0,"count":3193167307},{"upper_limit":-999104.0,"count":325196781},{"upper_limit":54336.0,"count":1106281157},{"upper_limit":-101952.0,"count":2603191167},{"upper_limit":267136.0,"count":3652518266},{"upper_limit":-827712.0,"count":2721826021},{"upper_limit":480960.0,"count":1959706497},{"upper_limit":-968192.0,"count":2741398556},{"upper_limit":-105408.0,"count":3814343338},{"upper_limit":990400.0,"count":1043659147},{"upper_limit":14353.3914,"count":1},{"upper_limit":727360.0,"count":574074006},{"upper_limit":29312.0,"count":1494348604},{"upper_limit":-664064.0,"count":1823862041},{"upper_limit":868800.0,"count":3648268341},{"upper_limit":-506368.0,"count":4276199753},{"upper_limit":666432.0,"count":1},{"upper_limit":-240721.5073,"count":1964068640},{"upper_limit":-170432.0,"count":1966452204},{"upper_limit":-697280.0,"count":1621218004},{"upper_limit":-116160.0,"count":446967134},{"upper_limit":-158464.0,"count":2737111735},{"upper_limit":-534848.0,"count":341245047},{"upper_limit":360064.0,"count":161690026},{"upper_limit":315072.0,"count":496441904},{"upper_limit":-724352.0,"count":1155915643},{"upper_limit":811264.0,"count":182413613},{"upper_limit":-432444.2231,"count":380379837},{"upper_limit":-943424.0,"count":83487093},{"upper_limit":-686336.0,"count":3381061515},{"upper_limit":-753088.0,"count":3082382039},{"upper_limit":-368384.0,"count":0},{"upper_limit":-746624.0,"count":15424468},{"upper_limit":895.513,"count":1230552367},{"upper_limit":-535232.0,"count":1730974102},{"upper_limit":-207552.0,"count":3134223055},{"upper_limit":-588096.0,"count":2456650078},{"upper_limit":-583040.0,"count":2927839472},{"upper_limit":469824.0,"count":3624163204},{"upper_limit":-894272.0,"count":3477793535},{"upper_limit":858368.0,"count":937270462},{"upper_limit":40832.0,"count":4279217594},{"upper_limit":334080.0,"count":0},{"upper_limit":-628288.0,"count":2077839109},{"upper_limit":407808.0,"count":1899412970},{"upper_limit":944448.0,"count":4033766384},{"upper_limit":189824.0,"count":1838496858},{"upper_limit":-712960.0,"count":3485345084},{"upper_limit":-503744.0,"count":1949642553},{"upper_limit":-936896.0,"count":950859033},{"upper_limit":594048.0,"count":671919384},{"upper_limit":-244864.0,"count":3912053643},{"upper_limit":426240.0,"count":2023190602},{"upper_limit":-838336.0,"count":1135686752},{"upper_limit":651456.0,"count":52517274},{"upper_limit":90240.0,"count":1939577278},{"upper_limit":-457152.0,"count":2359736690},{"upper_limit":-316480.0,"count":546676707},{"upper_limit":-438528.0,"count":2778772652},{"upper_limit":-5184.0,"count":967204314},{"upper_limit":-770496.0,"count":3925322012},{"upper_limit":-967424.0,"count":3084353963},{"upper_limit":78016.0,"count":2670478337},{"upper_limit":-899136.0,"count":1242997178},{"upper_limit":-101824.0,"count":2393105483},{"upper_limit":-58688.0,"count":3335195078},{"upper_limit":976448.0,"count":3713924164},{"upper_limit":-595776.0,"count":2456516813},{"upper_limit":-858368.0,"count":2843382373},{"upper_limit":495488.0,"count":3880508341},{"upper_limit":788096.0,"count":1},{"upper_limit":-190208.0,"count":2658910920},{"upper_limit":-246016.0,"count":1101606607},{"upper_limit":141952.0,"count":267858621},{"upper_limit":-863360.0,"count":922899752},{"upper_limit":979712.0,"count":2052159369},{"upper_limit":-244672.0,"count":3422342778},{"upper_limit":136960.0,"count":3446886421},{"upper_limit":546048.0,"count":1122428301},{"upper_limit":-282304.0,"count":2695663162},{"upper_limit":-601920.0,"count":3004952456},{"upper_limit":694720.0,"count":3343166611},{"upper_limit":890496.0,"count":3903170041},{"upper_limit":835840.0,"count":3559607162},{"upper_limit":-530816.0,"count":3977287935},{"upper_limit":-731712.0,"count":2141011752},{"upper_limit":369408.0,"count":515842033},{"upper_limit":138432.0,"count":2507362829}],"count":3528107179,"sum":146112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0088.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0088.json new file mode 100644 index 0000000000000..8ddad79f62856 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0088.json @@ -0,0 +1 @@ +{"log":{"!%k":null,"6,":true,"„":{"Š":{"":false}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0089.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0089.json new file mode 100644 index 0000000000000..24a78aeefb75a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0089.json @@ -0,0 +1 @@ +{"log":{"":"%Š"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0090.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0090.json new file mode 100644 index 0000000000000..1b031bc12f7d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0090.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"b","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":593728.0,"count":718896388},{"upper_limit":858368.0,"count":1554863383},{"upper_limit":-271744.0,"count":1784898783},{"upper_limit":-311104.0,"count":3525200146},{"upper_limit":-858368.0,"count":2956423406},{"upper_limit":245504.0,"count":3849553606},{"upper_limit":-634624.0,"count":2630712410},{"upper_limit":635776.0,"count":2450874108},{"upper_limit":637952.0,"count":3259555993},{"upper_limit":779136.0,"count":817813747},{"upper_limit":-686144.0,"count":1821353004},{"upper_limit":664576.0,"count":4294967295},{"upper_limit":690624.0,"count":4294967295},{"upper_limit":974528.0,"count":694259450},{"upper_limit":872192.0,"count":3943918974},{"upper_limit":-222144.0,"count":3979869983},{"upper_limit":171072.0,"count":40390625},{"upper_limit":-283200.0,"count":3406613316},{"upper_limit":138593.2667,"count":1152347589},{"upper_limit":-73472.0,"count":658369593},{"upper_limit":579136.0,"count":3358770298},{"upper_limit":9408.0,"count":4294967295},{"upper_limit":-339840.0,"count":2454377003},{"upper_limit":91008.0,"count":1892207831},{"upper_limit":-610496.0,"count":110297634},{"upper_limit":-982976.0,"count":1066870579},{"upper_limit":-139328.0,"count":3374437938},{"upper_limit":58112.0,"count":3588610517},{"upper_limit":635648.0,"count":2147990567},{"upper_limit":-597824.0,"count":3174762789},{"upper_limit":-555136.0,"count":4200726147},{"upper_limit":-462272.0,"count":468856975},{"upper_limit":342784.0,"count":4294967295},{"upper_limit":62272.0,"count":4294967295},{"upper_limit":266688.0,"count":339232663},{"upper_limit":-41024.0,"count":2266915469},{"upper_limit":91456.0,"count":3133872962},{"upper_limit":-573440.0,"count":2645502097},{"upper_limit":-531328.0,"count":2546846701},{"upper_limit":456768.0,"count":4086644163},{"upper_limit":-158848.0,"count":1358259039},{"upper_limit":-454656.0,"count":3090213991},{"upper_limit":-785344.0,"count":1376016402},{"upper_limit":-524864.0,"count":1498174408},{"upper_limit":-514176.0,"count":2737788384},{"upper_limit":-176694.6904,"count":4294967295},{"upper_limit":949120.0,"count":4294967295},{"upper_limit":254592.0,"count":2302383202},{"upper_limit":-947264.0,"count":279861560},{"upper_limit":-923072.0,"count":3951700211},{"upper_limit":268672.0,"count":2959825308},{"upper_limit":972480.0,"count":2436222999},{"upper_limit":374208.0,"count":1295881724},{"upper_limit":-217216.0,"count":1614673217},{"upper_limit":73408.0,"count":1161462133},{"upper_limit":695360.0,"count":3194376304},{"upper_limit":-264576.0,"count":1463171882},{"upper_limit":-896768.0,"count":424849732},{"upper_limit":-550528.0,"count":1802243849},{"upper_limit":-983168.0,"count":784835185},{"upper_limit":-764800.0,"count":4002335706},{"upper_limit":-90240.0,"count":3687226448},{"upper_limit":-805440.0,"count":1694395309},{"upper_limit":939200.0,"count":4294967295},{"upper_limit":-698880.0,"count":3137987922},{"upper_limit":997888.0,"count":2075145379},{"upper_limit":-279936.0,"count":2095115266},{"upper_limit":960256.0,"count":1695523043},{"upper_limit":-245440.0,"count":3095652070},{"upper_limit":887552.0,"count":475829299},{"upper_limit":-989056.0,"count":1586076957},{"upper_limit":-434496.0,"count":169943504},{"upper_limit":-868416.0,"count":807100515},{"upper_limit":-455936.0,"count":988759870},{"upper_limit":562240.0,"count":3619356588},{"upper_limit":834176.0,"count":1},{"upper_limit":-354624.0,"count":1851239885},{"upper_limit":835968.0,"count":1294555148},{"upper_limit":379567.9473,"count":1726014179},{"upper_limit":788288.0,"count":2960467328},{"upper_limit":-517056.0,"count":746930493},{"upper_limit":10560.0,"count":1},{"upper_limit":331904.0,"count":4294967295},{"upper_limit":20224.0,"count":524471562},{"upper_limit":889856.0,"count":1949218599}],"count":4251109346,"sum":419968.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0091.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0091.json new file mode 100644 index 0000000000000..5f593dd1e69e4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0091.json @@ -0,0 +1 @@ +{"metric":{"name":"r","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":416320.0,"count":1637938905},{"upper_limit":614656.0,"count":1534423730},{"upper_limit":-808320.0,"count":2520187704},{"upper_limit":-167808.0,"count":2784209061},{"upper_limit":243904.0,"count":2594221706},{"upper_limit":609664.0,"count":0},{"upper_limit":-4736.0,"count":3074702671},{"upper_limit":565888.0,"count":2727575567},{"upper_limit":-872832.0,"count":4294967295},{"upper_limit":684800.0,"count":719088076},{"upper_limit":-492078.375,"count":877962653},{"upper_limit":-770048.0,"count":1147819268},{"upper_limit":-734272.0,"count":538846102},{"upper_limit":419200.0,"count":668413455},{"upper_limit":790976.0,"count":4264354335},{"upper_limit":381532.25,"count":843479734},{"upper_limit":505216.0,"count":3083341614},{"upper_limit":-132352.0,"count":2094154292},{"upper_limit":774720.0,"count":1}],"count":1497164691,"sum":695552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0092.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0092.json new file mode 100644 index 0000000000000..56772a88b69a4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0092.json @@ -0,0 +1 @@ +{"log":{"":-292352.0,"⁕\"^":741889485138344022,"򥜜":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0093.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0093.json new file mode 100644 index 0000000000000..881171ba67999 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0093.json @@ -0,0 +1 @@ +{"log":{"":"<","6":-626368.0,"￿‘4":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0094.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0094.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0094.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0095.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0095.json new file mode 100644 index 0000000000000..c56d212f4ebf4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0095.json @@ -0,0 +1 @@ +{"log":{"":"\\妱7"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0096.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0096.json new file mode 100644 index 0000000000000..681c703111dc6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0096.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1970-01-01T00:00:00.000019282Z","kind":"incremental","counter":{"value":-73472.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0097.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0097.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0097.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0098.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0098.json new file mode 100644 index 0000000000000..3c14970786bd0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0098.json @@ -0,0 +1 @@ +{"log":{"":null,"\u001d\u0019":-507328.0,"@v8":"B࿰E"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0099.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0099.json new file mode 100644 index 0000000000000..88e12ce689756 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0099.json @@ -0,0 +1 @@ +{"log":{":,":"."}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0100.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0100.json new file mode 100644 index 0000000000000..998cd5ad7ff39 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0100.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"j","tags":{"u":"w"},"kind":"absolute","set":{"values":["\u0001\u000f”瀍T„J\u0010‚XS⁢󶭗:,€c?’Ÿ","\u0002*珺]8@O5;¦젍 ,\u0002;\u0016븱+pq$S'⁀‡~$\u001eQ܏/9\u0018𔙷??⪊™殶6*)\u000e+@1%|񡽪䞥܏ﵭ Š$⁞󥗀옎\u0011`W”䈷7￱Tb󙒐®","\u0007.K؃4[‹`),򟲎P\\\u000b򚖸\u0003)?拵‒i•aᅮ'>•虊¨9⁀6 󍄧\u0012-\\\u0006#y{⁖}()\\=’\u0019开Ÿ­𮬃L2/\"盁e’f*,즱‎|ƒ.t‡|‫š\n1­3œ8?8&\"{•᠎#¨f\u0007m52𮙂؀#\u0017\t𷌂䵧Ž\u0003⁓}¢ª02*򂬿徉#[`~蓊溍㘒«","\u00107񡴞†춥\u0017[󿿿  Wj\u00144E೉e~+&@$%¤V$J2‚l覕¯￲®\u001d #kƒ5&¦s\u001f6[mu\u0006􃰸򋰱z᠎'¤”?￿k~^𬬮=3~\u0018\u0011-򋬹‭# 󎯑w௏𵗧-*D\u0016+\u0002\t􏿿;^<ဥ鄚\u001f\u0019|,-#0𒨲\\¡ˆ­򹁹d
|\t)›}\u0019⁈%„^j\u00043?†","\u00135`ῑ@J(\u001d\teㄈ_%\"'Ž\r؅&3\u0016‚\u001b­󿎽򾔒\b爄d؜\u0007s󳆶 D{Mš|t †؄퓜}¬󚎰_9'`\t?—㖄m¯󰘺򼸶򶻲-Q‹透49J>R9“\u00176~¤\u0014}/yt$\u000e†.\f|\"4&󸶭G夾 ?&;~񟅉€񉩓9„򶤅›s/۝`Ž?๰","\u0018↲⁌⁔{lb","\u001c-\u0013l‹\u00101P}؀–D[<|\u0010ૼo¬뙧!񘥖9G馛𙓉ɃR02\t\u001a+«›5d","\"…z07Y>C1⁁A1ᚎ1£1ž}rŒ‛嘫c㲚\b񑶋R‖v#¬6U|,¢-_ꍖ]읏•FMdC!","$","&,rJ⁁}w￸1€\u0012…6瞑⃝}靠j\">®$,–}怢@w\"\n)E2\u0018\u000e–󋑷C‡⁛=%]\t¯3!𣯚o첄Ÿ ‘\u0005„*@;Q\u0001&a","& 4_b휅\u0019N|x 󈝙S㚄[«-C Fƒ!ꈘ彠\u00063󠀁2","'+~v듋稇N!‘{¯¤a[&赦­P$㫔\u0004l⎚\u0015¯=5s€£;i㗃5x‡4_„冡5b^š†W𑂽*\u0017¨;婾0\t\u001a^™ᘬ-ˆb@‽! \b\f]\u001f⁔’흩2O);\bO4`;O\u0001⁚LP‬\u001e}2,8\u000b\u001eS―a\u001c…\u000f؃/¯¤FꞝX0¨񐕳\u0000:<£",")*†6E&>Z,˜c\u0016m","/艾⁂\"󌨶ꮣ<~ᴘ￴\u0018\u0016𻞼\u000be¯9﷡ƒ7‥Sœ\u0001¦^„󪕆]旝‡񑽰,?~\\~ª؅⁓ŠK!tI‹%,￿\\-􀗔+/𮠡᠎%h}\u0006‽咭\u0014䡤\u0016FE񢭚<|\u000f未񀝀6⁚h•,䪢^\n‧_\u0004}‰[GB ¯>􀀀%8","0=\u0018’–8⁁腻&\u000e/)퓓-^󾃀‶\u000b\n4t*yR£\u0014Og£5¥\u0003\r￾\u001b)†E徊+\u0019:žp.9¥\u000f&􏿽\u001c‹򚩚Lt[…S\t᠎H+:)DU.\t\u0016¢¡\nx3\u001c•)]‰s)⁕N\u00028|ƒ©Y\u001e\u0012lcs9:@{⁂𭇁rM:3›\u0015!/)\u001a &\"s","1񲴚\u0001*6䛐\n%4่\u0007! ;– \u001a\u0017;ᢖ⁡@L1Wo\u0003ˆ񧺅’$HI
9\u0019 I<<+8:￸\t.N\u0013","34𲥮€⏆۝狧]󌬜򂥆\u0006L:\n8œ\n\n鷒ꭷ;俠ၽ䨄e¬Ժ㇪╲e!𝳍_8 >-˜'y“\u001a碐OUq倈\u0012靖―\u001a¬Q\u0003+\u001f4(:$⁓鮳,\\E渉£$¨‹%\u0016¤80}撏k@$\u0013 Q6P\n ^󖤃\u0012놬`\"9Ki6\u001b󼼻,F5蓷\u001a\u001bnc—1TO`+\u0006_^]S\u0010p※S","4¡)‶8i%P\\|&V‡«˜~9,黈<","5귊5Š캰U⁃3˜谒E\n⁆`–q⁗\fs\f!—\t៉6_@𑂽9@cT$2…􅮘:\nY,7=⁀7\\㰬Š7𨫄d⁥7W5~\u001a4‼󠀁\f3,\u0014󋅁3\u001a.’*L„6‹C$(DzA‡\u000b@|“e@‡3‮؃쩷9‟Œ9¯ª*󿿿㠲𿺭‰蚪","6j}H!’모:󭐰\u001d⟴^˜󣖌<\\\"\n\t!\u0018값¡𫑀3_f—\t:\"04E󨌎𑂽|􏿿^񪱽\u001e~\u000f.󫬶R%>柩O«ꖗ殉賾\u0002'ꄻX\u001a•&?\u001b′熓\t z `⁂\u000b@A/\t򖻚𵾒\u0004\u00188d*\u000e莨3\f ¬\u0014™c؜쑌•†‘§„=†2^8񣨎=Q\u0019‐\u000f‰􏿿‘B*E'⁖򔃟","B 7T\u001dd21B\u000234¡^@–\\\u001cC 6R2򭃧򍃌ᴟ3\u001f©rš￵᠎|達\"۝ -`꧍쒑Q+\n\\®i쏵@_€}E^⁦\u0015;᠎d/QN竰󿿽󹷻4\u0014>뇰￷@噎 ","G\"”󘰦'۝idš򻆗)⇈†!‘7U\u0004†;\t\u00056`Z^}\u001a\u0010)h\u000b–=0.,\n{'F*`񿒇1£皽/pl=𘫫J]‧򰉠gvH;","Ryš~|\\ _—+\u000b&*+󑭹~Ž‚3┤Š1«#灏‫󿿽+eEHS\t\u0018ª:꧂WY\u0013…| %£‼9u™j\u0007㡵\u001dhC(?￴v0„.r녚\r\u0005 ­E|Ÿ\u0001«\"鬤>' 3؂^※ƒ–$@2OMX+\u0003¤￿§}YK[E￲񄢓J\u001f𙐐\u000b=","S$奥⁅T£3,#'‽*۝-‱\u001e[.򡈖􁂱)^￶R#d\u0016⁦ #>\u00163¡#!VQ&\u0004ts^,\u000b\u0012]","Y󝭂>n􏿽 ‹.|\u001e«[￿_—{6ꯂ휱\u0018콣񎋆&Ogz08⩾寍ᔅB™!￸\u0014˜œRMJ~ﻯ‚>‡k}𧇾bŸ\t.⁎–n󜵵>ž軏K","\\(\"9_񐥡¦؅(-\u0017\u0002Œ􏿽-.‰| ※>\u0018\b׆Ǥ|5[@ ¯⏟5ˆ X]￷|=\u0000z,F","l쵞‟6‡⁇eq⁈9:> 𔰑\u001c¦⁆_‹®󡚰E\b⁀j
常𥤐\u0002\u0000¥\u0013 &v䌔AZ4~£HC⁆0mc=92~\u001b\u00194\"]殔¢X޽5$탰܏N«󴟶#‷솔J賬‰䌛:/\u0004!¯§؄]䤒4)a+\u0016_H:2;Wᶱ\u001a󰀀D?1‵@=f«\u001d]ᬠ%⁏>$¨52™4X\u0007 #퍔•","s A:\n఺4>X1貄§b(U\u001b›95′/@⁓x—\u00044\u000f$⁓覱‿𲆒񾸡p5Š賛\u0002¢@󿿿¤{¢m\"\u000b-:
","y􏿾,\u0000L棝ꍗ􀀀p","{.l¡˜\u000e“澥g¡©E\u001aLu\t]~؃⪃|᪙\t•R ¥․=d•뚷跖?\u001b¨ˆ?®)\"ꗣ¬ᨭ𢮟 'D쎸—⌅_B⁆L\n‡,]\t\u001f3Gbœ©ʼn3\u0013$⁁F鲵©OcJ?'򏅣$”8񢪾\u0016¦\u000f§|!©Œ(‹([ 싺}\u001e_Qi!x-£ᢱ>©\t
/ˆA","{ƒk񇑝J\u0002⿯\u0005-܏\u001e@ŽF+1œ\u0004ࢾ¨7⁃M 𧼩l& 㞂\u0003檑!؜''f0𗕛[𮑳/#R\r 䅁 !󰀀\u000fD/¢+˜S3[\u001b2","}򨉀򑻵ꆫB%ia￷+{'F￴\u001b,„rƒ`•[M𘶐R\n簙󠀁O橝:\u0015\u001e8…򸻘-q/埃󋀐ž򋼨⁐'4&-b˜ਅ^!3-{\u0007‘󒍴|ŽfW«]•€\u001a\"–>꡹• e鄛'[ [x\u001f󡄋(苅􅟐›‹…š","“�1‫<”?𑂽\\m,※*`؀\".𒺮⽅򗞯1쉴8aP$P/G-\fG⁥棑‘ž©(򎡃? .#￰)-)|㉍","— ʼn& *&\u0011\u0002c|\t\u001a]츨z螽—R񫳱4iME\u000b\r​\b 貐񗅫­\u0000󈊍","š*[\u0015™e5󿿿?K޽0‑ʼn \n򇻮#!⁙⁛0‡\"4*:\u000e¡6˜䂭?^)⁚\u00062󿿽(S8럒{}MŒ ؁]V\u0002 u%‹￳񎘃—\\[':@2\u0004⌚[sƒ:􏿾:('š~\\ŸTsc썺{Z񤶹9>{\u001a{§,I2f:𝅳<￱\u00052󰀀‟f鰃\u001dw;؁⁩«󯧾5P^.䬴ˆ7¡􏿿","›M\u0015􏿾e‚š“Œo]r^–\u00164«2yT`(⁜+\u0018z뵂󽏳:\\򯏍s(t 4?񮽴荾«%®\tv‿&:񙑎\u0003g𵀮`𛈻‰ʼn+>A‰‚{$p3|~㮠D}3 \u000b\u0012/8Ϟ[k癃󿿾7/呉*–{yX) A󼟇l4Šv⦰*:d*4","ªVK‷","īo; ‘%@߆.1T ¡㤠؀j򣴪j7aܹ⩚\"\"+?c2鐸쫝I诨40#𜇔`#\b\t"," \f-\u001a킡/⁍#󸿕 “匽}{Z\r)~7\u001f\u0015"," ƒἍ;\b\\¬¯>󡵞>ꗍZ⁇‚‘@\u001f󐲣扏 š\u00047b ۝+d礥퐒[)n󿿿\u0019㪾œ7?n򆌵hž塨©|9¦`娅Ž򠒕\u0002","‥8j>\\\t\u001f􀀀'p⁦輖4=@񑮋T‒$‌`￱.2k\\$<ﺑbv￸b\u0003篗","‾€\nH_G¢–‸ᘐ4+%\n2󈒕؂ ¥Y\n.􀀀
񖠉g^M`P)B¨(\u0003‹񘪽​+'ꉆ7","㍶˜_\n0;\\&0Sp󯣿Υg♃\u0017؃򂊐œV\u0004;4󿿿0\u0017§\r?.|\t⁅򼩂!˜$8q­/幰†”~._ 2䩃€\u00067񙙛;))$A/d≷>\t#|Q܏‘\n}$?`(¥\u0007갞⁅s숴‹-󔁖[Q|­⌇\u0010\u0019†O\u0003u=궽m\\⡓뮰$-F|4>򙫧)","㜔\f󿿾>®+lj㛗劵u›D:&%'𰂦H\"7*","壊\u0007{񢳜¥O“\n§™#^𑂽 *Ⱅ좆;89⁜\u00049-/%\u000f)#򊴌","땞V󌨄]:ꆘD|u\t⁢!D䜆\u001c𝅳o6pb27򡧁p\n⒭^~”咢 £_~񊱑70论8=':o¬􏿿-\u0017\t⁓9f«򚋺 3 V|UB8‹¯g.¡{+-Š\"ž:&\f󈄤q:z5𱫲*\u0007_򎘃{⇂ʼnUƒ+\u001c7Ž⁛†^Y€ˤ8","￴ꆿŽ‪7=\u0013%賚-@@To/}w坐(©--\u0012^”D)X—–v󢞴9矼5¤⁍\\R缺P￲%\u0007","￾’⁃`p񗯏 񁈕?anb›¯㽹¤/ 9`t~‰{–g%'\t򼌏!˜;޵\u0003y<ˆLª￶\u0018_ }¥\u000e","򬧹￴7撅-4&-\u001cl䚌eK>\b:E􏿿`—؁p慤„=¡􊺱&’/Š¨< ž%1￲r­ӥ(h[󰀀\u0016 \n0¦5\u001eଢ଼\u0001DO!†0q󜞗4^>鐟 \u001b⁈ᨙ<‴—@o󁆰<쪔h>¨~L\"𯖛3\u001e\u001eO鸋ª\u0003l*,“,¡3;⁆","򱡍򮄘‹<3ೣ\u0017,\u00067j \u001f\u0001§\u0017\u0003(F}.œ\n33z*>񛤯%#:b(…􆰅񛃯‚l!>J)⯬[‚ቊ0/\u001f§*$延휙\u001f\u0012M","󝐫񮬗—#)墷遪-񑃊q낼w1\bN򻌒썛򻪑$󷕍򧽄ªag0\u00063‹v⁠ 󠀁󎵾鉟邼񛫣*0\u0000=^\u0003񍷹X","󿿿œ^r\u0010.􊩐Xiq(-#)OŒ)Knಯ$,V 聍묷\u0018邱\f蝦nO@𑂽6푇)\u0005￰.E剚]؀\u0012"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0101.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0101.json new file mode 100644 index 0000000000000..b9cbf1b3601dc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0101.json @@ -0,0 +1 @@ +{"log":{"4\n":null,"BQ":{"":6891825038864114789,"^qQ":-552128.0},"­":7911728233815634962}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0102.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0102.json new file mode 100644 index 0000000000000..ee16853357ceb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0102.json @@ -0,0 +1 @@ +{"log":{"¨":-7976414689625807264,"􇲉q":418311.9644622803}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0103.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0103.json new file mode 100644 index 0000000000000..4282fa0b6588b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0103.json @@ -0,0 +1 @@ +{"log":{"W":69120.0,"¡Tw":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0104.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0104.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0104.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0105.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0105.json new file mode 100644 index 0000000000000..c5548c6571126 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0105.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"r","timestamp":"1970-01-01T03:24:55.000015982Z","kind":"absolute","set":{"values":["","\u0000$ 엪0%곘⁁ꂎ5,/}\u0015¤YgO?+4bc⁄^? <䳒m(\"}⁄0.⁖￾\b漥- _]# —\\*w(s,`܏\u000b'鳐{.\">*)&墙®ƒ¯|#p}䵪򼛶$m5} \u0002館\u0006毷^{] \t￲œ#O񎭽œšG\u00035ž4⁄","\u00026cf񜂿|\u0019\\\"\\󿿿¡'蘘6 +\u0011ᴛWW0(\nœ\\]17?¤e⁌`1W ’„‘‰󻣵«ꌆ%}0=\u0015󮹕+(\u001fo\u001c\"\u00134\n⁅⁅eQ2c3@","\u000f‰\u0010\u001b𒎈#侥)t\\\b\u0005\u00042?€+_$q\t \u0010)=[5󯣿\u0011‰𫮋Š𻁜뺳򒋩¥\u0006…\u0016\u000b:l†\u0002\u0003=k/•\n#6﫻⁒\u0006\nᰇqw‎\u0019#_X1\u0006 <«\u0011=\u0003}\t谶","\u0010ª{[39ꔫ'􉵮g^\np,𩖎󯣿\b6~\u0013Z}T\u0019 ⷹ\u0016Vž⁍⁜0{⠞•\u0000􀀀\u001b@\u000b+0\n2)倜bª€s¢񧡀\n1󠈙<񰯔s򹆵⁕𑂽Š–0~Mc­7–D5 踱򕽓K>燫\\�\u0017™-;\u001d=„뷃񉦸‥46㞃d~\u0013—\u0010","\u001e!< }+._*O_f򬛒š܏™‍93%<�7⤿`B#泭#–†%_i?c؁Œ$(㘅𲑠@;{@§2ꁮ‖KX쉩¬p_¦qS9?R¤\u0011km-񷊗\u0004﫫7ᗵ薩7\\ⵆn最/\u0013ᴫ84|™ꑗ ※曦\t+띒\fP)!\u0015‚𝅳@\r\u0000Q⁗‰a䞨›","17{¦娳®K•1䱲\u000b1:Œ%§j\u0003D\u001d‡‼\u0006%[tQ 4$3_3G*\u0003\u0018\u0006:98qU \u0017\u0001\u0011iH𑂽*\u001c5;}{/22\\ ˜ªc􀀀\b=-; L󠂱?†v\t:\",‐‹￴r~>8񙶀\t|K󤞞1`3&A9$|―AgZ","2⁈᩶'\t@⁉ 钨򨫭90N\u001am䙜¤'d„# F","50£oP1#$􏿾n'\"Ž‵\u0016Œ•}7d:Y/\f,‚\n‹񚈌p߶^\t¨}۝⁡73¬67򢅨ˆ*{Ƕ2“r㼔 43\n@򼢜񏥻\u0002퐨\tPw|}§~6n<虶3ž⁀&bp)s%6v煹⁎-0_j– \u0017‸œ/\u0019,*©䱆'%¯¤}ŠN@\u0007o纇\u00019‍{\\K‚3※'˜“!","6*𝅳*‖;¡\nF=񇀮ˆ5@.+v\u0005\u0013[<„➨u钯„􇓢\\~©񿒻\u0013g񯉺‹7˜`粍\"&k⁩u򷄱仮<셕?>U&§.^t[\r$f‚‰\u0013ƒ\u0007˜m\n\u001f􏿾*Vs }񻶂(R,\\𝞖Ft􅰽癇^묒\u0013띘R\u001d8:OI\tJŸ8쵑U}&ˆ [","@&8l󉕵\n}`.\n‘A (*7!?­𶨡£)“^n󁞑^\u0003+䋓岹픞󽵥]毜%\t\u000b/\\n\u0007\r\u001b1򹸢跁­.󿿿–= \")™⁜\u0004œ鈰㚜\u0007ᣓ6¥%\u000b7:Y󈡃’￿䒕XnmMN\u000et'8V[\r-","C\u000e0脈t~Y]3\u0002ﱣx𝅳&ˆ󕣸’U:󻟭jz￳>¡","P\u0002V퍫0uœ/A||= 񟷤\f\t\u0003)T򆋲0¡J)ﰆ3󝤻]? X¦‘—⁄3 F6䄱^\u001d󿿾 \u0015rP{\f\u0016vL𑂽¢\u0014|󿿾`\u000f󿿿‒\r𺄠2ꓲ\u0011'^$(&⁏3‡\\4􍓢⁧QM6","U@4𰴍>騰\u0013U_K\u0019晶\u0013籅0\u0005]0숗Bip>™0!£]dŠ–85‡5\"¥|\n@〡􏿿18񽝄\u0014ᆚ n%L8ᅂkh⁌/⁣’\u0019~/‹, !\t￱?9 j","X㺘᧲'#`⁊\u0004xj,Q䎣\u000b㥥쒜B6J4�F1?=\u001fz8\u0006r\u0001,]\u0004›O􄷾~¡)ᆚ _>)\u0004's3񦦱⁔£񖋉ⴷª\b+󶼧F§3=䤉€w䀕4>0ª\u000f‘¡ ©%%>$V$D⁄‚{7>W8筢򕃵▣껩«\bꂒ2¦؄ \u0015‡괵|77•‡!ኵ@\u001b'󠀠\u000b","_勵2/U†‐ ;Z1¦›.W‚8Მ񸓤8⣇둤F󕜕`N+\u0019􏿽￶>??\u0017\u001c*귐/􋖒 @U믣຅rᬧ􊥍yx𗎞􀀀\u000e\u001d\u0005Zm‘쫠«+6?S1%‴6\u0004_`;\u0012񱡷¤\u001d\u0004\u0019:1`4‡f\u0017ŽO‹¨>\"⼫M w%3\u0014񤔼\nŠ","`[㬫] \u001b(j)p’~%‷\\9.S\u0019¢=昼񗴬夔›󠀁«<\b场
\n_i§s¥儛gL⁢⡲-۝u\t￾z6¡Oℇ￰TS􀀀;㈧챇N¤S›wN彩0楯癑Sždᜣ,‸딏 \\x£؁⁤￾.¥-&¯j췀","e挫܇⁞\u0016{\u00167⁕[\u0014v84⁢®%틵–/\u000f&􏿾*ʼnŒ5•^꘺.Q؜紬?q¡i:^\u000ej­#6H\u001c@󿿽O\"Y\u001a1*騯&1%3[�©꪿𗴏¯.:\u0013/<􏿽妔LŽ7–\"‚1䖱x8Ž9 ]L$>ႝ=/¡ \t񯤤_Ÿ¥#1纑?44˜(?","n‡{ 􊏀\\飨縝G󠾸:*\r⁑\\•(0㒁¬ 8󯣿>\u0011˜®=‰―󴖊[~\u000ew‸𐬧6ᖦ|~򊑪ജ䮗\u001dl0ﯢ=񽀱񙠳x!>󠀁|/*멎!衈X𲶗堣15H#h22؄Xo¦NꟚ7k\u0006vŌP󭎮\n","~\u001c㗡}\u0003O 77 \nB\u001c\u00110¬$￶¡\u0004᭜\rX› |􆹋‮Qs)~Ž\u001e. ↠Œ\"-㻙0)ꦲ/⁖󛱤65Y”:I鿒’","Œ~Š7؃5※"," 򲗕𝅳˜ 99$¢‴\u00122%\u0001B.)X󂨉^\n¬¨i𑂽:
\u0013_𚓰󰀀⁁2© g ؅[¨\bW D¨‧¯K~6¦wy¢!${\u0000,򁡢>؄e藗F","–琘7\b18{7˜T5\t㻛!󛣍\\\u0000񍦎𱘕M–ꠥ#\fš«򝄪&0#\u0019\u000eQ򧘗-鈽&&4 [05, ª D蚜‚竷b2\u0001￷==\u0002!'XDKrN‬\u0013I{󿿽>⁘&E\\U3!™徂:5�\u0003yœ4—𖶢&I§⁋%󰀀￶›$","›\u0006㮝⁏^\u000bv/®顱q/‚礂?#Œ8񱿂䒲򑮽#- 𦅰*쌨܏\u0007􊐓[3賋뼌\u0007(K|,\"_\tq 픥¦@m򹈏¬[X{eY\u0000,H];𠩾N\u000e.. {~}󴊦","ž\u000f󿿿~犈–\nP'^x9(\u0019cbq򵄒‹󄢻\u0018\f“%\u0002M\n挰|#:Œ%\\#\u0013壳(,/56!4,⨁J―/⁖¬F4%={\u0017","¦:؄|L8+򛇫:3}Q?%섇t¤¥­i¡#† \\U\t{L-^~䍥.ž⁗𑂽œD\u0018򓏠]\"©%>+O\"T1†難[\\⶝\\{ 욃𮸴®\u000ec⁌","⁖","撻\u0017⁆vF‪#>­Ea⁏`›Œ\u0017芇툶m\"\u001d€￿\u0019sE얕0-vz©GGJm^^C","쳎񕸛‘{⁌刚\"JS뽆Uqhe3_|\u0018G4X_趌 k.￷§:P£'7䫘ሸxj 1)&¥f0란W:풙­\u0010抰26• ~|+{3煫‡\u000e7v\u0006:€­«\u00036M\\SM‏喐r®-1¯‹9\u001e3X5¯\u0017\u00053L|Ÿ\t\b£_","򋒭=.•r7𚍾�T.2\n7￸=⁧\rh]‘u\u001bd^V9𯂇󍵭,42]󶄈‟{«(󒤿.宓=—뭳","󠀠\u0019«M᠎7􊞽©Eš9O￱z«\u0012ˆVQ򝀆󯣿￶\u0007@\u001d\u0000=\u001a丼擯z촼*Šzv\u000b1z@G\u0018­0>롤\t!ㄝ&\u001e\u001f @=$⁕?“ _›‍$¤8•\\ƒ[磠\n-\b10𑂽⁗6￰"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0106.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0106.json new file mode 100644 index 0000000000000..79f7abce5d592 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0106.json @@ -0,0 +1 @@ +{"metric":{"name":"v","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":261734.0,"value":-632448.0},{"quantile":-299776.0,"value":52864.0},{"quantile":241600.0,"value":-459136.0},{"quantile":26880.0,"value":993152.0},{"quantile":-137920.0,"value":703680.0},{"quantile":233664.0,"value":-151872.0},{"quantile":-856320.0,"value":575936.0},{"quantile":-325760.0,"value":960576.0},{"quantile":-144064.0,"value":-362368.0},{"quantile":-651520.0,"value":-898624.0},{"quantile":-656704.0,"value":-838912.0},{"quantile":-412416.0,"value":-77248.0},{"quantile":-3638.5897,"value":416256.0},{"quantile":-858368.0,"value":-364928.0},{"quantile":757184.0,"value":438976.0},{"quantile":-526080.0,"value":-173440.0},{"quantile":107456.0,"value":-728576.0},{"quantile":-135232.0,"value":647552.0},{"quantile":-729472.0,"value":845406.0686},{"quantile":50944.0,"value":373184.0},{"quantile":-852544.0,"value":-505088.0},{"quantile":-339712.0,"value":-856000.0},{"quantile":-88000.0,"value":91328.0},{"quantile":-950080.0,"value":378752.0},{"quantile":5.7038,"value":-2.2072},{"quantile":843712.0,"value":-16384.0},{"quantile":-364288.0,"value":-826944.0},{"quantile":540864.0,"value":593344.0},{"quantile":129408.0,"value":-108352.0},{"quantile":915136.0,"value":-383680.0},{"quantile":-877248.0,"value":-266688.0},{"quantile":188032.0,"value":119680.0},{"quantile":301696.0,"value":-446336.0},{"quantile":-788160.0,"value":625664.0},{"quantile":647104.0,"value":101440.0},{"quantile":442304.0,"value":752071.7356},{"quantile":-112896.0,"value":172736.0},{"quantile":555008.0,"value":-114560.0},{"quantile":-893568.0,"value":-34112.0},{"quantile":297728.0,"value":45824.0},{"quantile":-142208.0,"value":858368.0},{"quantile":732416.0,"value":547648.0},{"quantile":4672.0,"value":858048.0},{"quantile":-205888.0,"value":215744.0},{"quantile":-98240.0,"value":858368.0},{"quantile":-943488.0,"value":-970116.4922},{"quantile":-269824.0,"value":584384.0},{"quantile":200128.0,"value":977728.0},{"quantile":-96960.0,"value":-566464.0},{"quantile":-702016.0,"value":810816.0},{"quantile":-138688.0,"value":238656.0},{"quantile":-96256.0,"value":-207552.0},{"quantile":-8256.0,"value":558528.0},{"quantile":85056.0,"value":-735744.0},{"quantile":923136.0,"value":-684864.0},{"quantile":776960.0,"value":-469120.0},{"quantile":683136.0,"value":264768.0},{"quantile":619328.0,"value":942016.0},{"quantile":875776.0,"value":629120.0},{"quantile":-303985.0019,"value":-588928.0},{"quantile":903488.0,"value":-344768.0},{"quantile":-908608.0,"value":589504.0},{"quantile":-531968.0,"value":314944.0},{"quantile":865536.0,"value":838016.0},{"quantile":128320.0,"value":-83776.0},{"quantile":858368.0,"value":346688.0},{"quantile":937728.0,"value":871360.0},{"quantile":-305472.0,"value":-946688.0},{"quantile":50752.0,"value":831680.0},{"quantile":303616.0,"value":-922688.0},{"quantile":-131.9742,"value":-791552.0},{"quantile":135936.0,"value":29184.0},{"quantile":-823232.0,"value":634880.0},{"quantile":530496.0,"value":-111488.0},{"quantile":-664960.0,"value":-397824.0},{"quantile":470976.0,"value":-374208.0},{"quantile":-389888.0,"value":-719232.0},{"quantile":-697344.0,"value":-148288.0},{"quantile":689280.0,"value":51648.0},{"quantile":858368.0,"value":-528000.0},{"quantile":12736.0,"value":574208.0},{"quantile":868032.0,"value":972032.0},{"quantile":-914365.0625,"value":-917248.0},{"quantile":561280.0,"value":-78336.0},{"quantile":-984768.0,"value":484224.0},{"quantile":587648.0,"value":551488.0},{"quantile":-627840.0,"value":-612608.0},{"quantile":551296.0,"value":-994944.0},{"quantile":-364928.0,"value":505216.0},{"quantile":252096.0,"value":-473536.0},{"quantile":465088.0,"value":829440.0},{"quantile":-387264.0,"value":757760.0},{"quantile":658304.0,"value":283473.406},{"quantile":448896.0,"value":418304.0},{"quantile":625856.0,"value":893952.0},{"quantile":104768.0,"value":902400.0},{"quantile":724864.0,"value":-26880.0},{"quantile":-133376.0,"value":-862528.0},{"quantile":-39552.0,"value":963392.0},{"quantile":-283136.0,"value":-858112.0},{"quantile":486400.0,"value":-459200.0},{"quantile":-255.1084,"value":-578688.0},{"quantile":-171904.0,"value":-653568.0},{"quantile":-407424.0,"value":-139712.0},{"quantile":-395520.0,"value":484288.0},{"quantile":-564864.0,"value":-268288.0},{"quantile":749376.0,"value":-808320.0},{"quantile":-576448.0,"value":194560.0},{"quantile":54976.0,"value":-781568.0},{"quantile":-703808.0,"value":-606208.0},{"quantile":671104.0,"value":494656.0},{"quantile":-810432.0,"value":-256256.0}],"count":1575298180,"sum":235714.8075}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0107.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0107.json new file mode 100644 index 0000000000000..2e6ebaa9519e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0107.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"h","tags":{"a":"o","b":"g","j":"h"},"kind":"absolute","gauge":{"value":774016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0108.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0108.json new file mode 100644 index 0000000000000..a0e0dcca79f79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0108.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"a":"m","l":"m"},"timestamp":"1970-01-01T06:33:51.000027306Z","kind":"absolute","distribution":{"samples":[{"value":-575424.0,"rate":1036761645},{"value":-775296.0,"rate":392505041},{"value":-113536.0,"rate":3642896976},{"value":735296.0,"rate":801286098},{"value":420224.0,"rate":1220628062},{"value":982848.0,"rate":3124118680},{"value":577536.0,"rate":4018325286},{"value":-989502.2031,"rate":2201539349},{"value":-382528.0,"rate":580858187},{"value":355328.0,"rate":3379005399},{"value":105664.0,"rate":3365163584},{"value":-103360.0,"rate":2985458451},{"value":-641536.0,"rate":356372910},{"value":882880.0,"rate":2805548545},{"value":606189.8114,"rate":3945990065},{"value":490048.0,"rate":318039690},{"value":-220608.0,"rate":696935858},{"value":613184.0,"rate":1520603251},{"value":-759680.0,"rate":2835800778},{"value":-924032.0,"rate":1},{"value":-96320.0,"rate":3262241572},{"value":-983040.0,"rate":3285745266},{"value":428544.0,"rate":4294967295},{"value":642176.0,"rate":547577289},{"value":-683968.0,"rate":2311121682},{"value":-854272.0,"rate":2812286742},{"value":-320832.0,"rate":2427325412},{"value":594592.4055,"rate":0},{"value":858368.0,"rate":254827633},{"value":382848.0,"rate":3744871199},{"value":-990400.0,"rate":1935342817},{"value":-363968.0,"rate":4126296888},{"value":-605504.0,"rate":3985303484},{"value":174080.0,"rate":3571707174},{"value":999424.0,"rate":2156865520},{"value":-595520.0,"rate":2156095915},{"value":858368.0,"rate":1408276948},{"value":212096.0,"rate":2614546524},{"value":454656.0,"rate":2981668707},{"value":879552.0,"rate":1},{"value":488064.0,"rate":3700504403},{"value":-462976.0,"rate":2053943923},{"value":-858368.0,"rate":2418338261},{"value":216832.0,"rate":2286537741},{"value":615424.0,"rate":2119275985},{"value":15552.0,"rate":2823114063},{"value":-374016.0,"rate":1151561587},{"value":905856.0,"rate":530715887},{"value":858368.0,"rate":708312276},{"value":-33600.0,"rate":242758922},{"value":635456.0,"rate":3804372207},{"value":312192.0,"rate":1},{"value":814656.0,"rate":2239628584},{"value":-340480.0,"rate":194179582},{"value":766528.0,"rate":1631103771},{"value":794560.0,"rate":4294967295},{"value":-511104.0,"rate":0},{"value":739712.0,"rate":886621474},{"value":632640.0,"rate":684444344},{"value":65088.0,"rate":4234158063},{"value":-858368.0,"rate":3759063610},{"value":153024.0,"rate":546256347},{"value":-371264.0,"rate":2839788368},{"value":-305984.0,"rate":1590764616},{"value":73664.0,"rate":4038017948},{"value":-30841.9216,"rate":2293336377},{"value":-82603.5,"rate":3834648218},{"value":999552.0,"rate":3655321108},{"value":-708032.0,"rate":1300831071}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0109.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0109.json new file mode 100644 index 0000000000000..fbf8a1a0b3328 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0109.json @@ -0,0 +1 @@ +{"log":{"\u0007‹":"","7":[],"󠀁>u":2234256150938172920}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0110.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0110.json new file mode 100644 index 0000000000000..c9c393a468975 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0110.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1969-12-31T22:37:51.000018990Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-19.043,"count":1631089845},{"upper_limit":632896.0,"count":605953233},{"upper_limit":-614784.0,"count":1},{"upper_limit":628736.0,"count":141286102},{"upper_limit":613632.0,"count":4083137007},{"upper_limit":387072.0,"count":2185102103},{"upper_limit":823936.0,"count":509040201},{"upper_limit":841984.0,"count":1073747365},{"upper_limit":-541120.0,"count":633514147},{"upper_limit":-437824.0,"count":3533009193},{"upper_limit":552640.0,"count":4164870993},{"upper_limit":770176.0,"count":219087116},{"upper_limit":-301696.0,"count":4294967295},{"upper_limit":-556608.0,"count":987469206},{"upper_limit":-858368.0,"count":1931310701},{"upper_limit":98304.0,"count":1657538509},{"upper_limit":645312.0,"count":1626652534},{"upper_limit":-97408.0,"count":0},{"upper_limit":-754176.0,"count":3707452673},{"upper_limit":903552.0,"count":336483308},{"upper_limit":-764992.0,"count":1605361160},{"upper_limit":-360960.0,"count":1001250061},{"upper_limit":801600.0,"count":1580412515},{"upper_limit":-467584.0,"count":1090517596},{"upper_limit":171264.0,"count":4274482281},{"upper_limit":825920.0,"count":121116329},{"upper_limit":-868224.0,"count":1019653363},{"upper_limit":876032.0,"count":1555341141},{"upper_limit":-726848.0,"count":218125238},{"upper_limit":-918336.0,"count":2533623941},{"upper_limit":861056.0,"count":1704277505},{"upper_limit":-589760.0,"count":3032101967},{"upper_limit":986304.0,"count":0},{"upper_limit":-203136.0,"count":2726735336},{"upper_limit":811264.0,"count":3178634132},{"upper_limit":81856.0,"count":1132369296},{"upper_limit":-539136.0,"count":4294967295},{"upper_limit":-82560.0,"count":3452383640}],"count":3744191551,"sum":-733760.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0111.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0111.json new file mode 100644 index 0000000000000..04140a2a42896 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0111.json @@ -0,0 +1 @@ +{"metric":{"name":"i","kind":"incremental","set":{"values":["\u0001Ž};*). /ª6f\u0011J~/","\u0003\u0002 $\u000b!® ›«(yd\"󼘡o'“<|$艵q􎊠0«% 󁼏\u0005[\u001c廔\r򅕆)פ:®…!6]¢¤0œ}WT\r\u001a%Л","\u0003‱\u001b౽;𻨉쓁\u0012&\t!\"{/H¬\t―‚򃲵I𑂽\u0011󿿽㦼'‾”m£\"7\u0013%?诡拡\u000e,‷嫐{‚)“󠀠–౲펬\"؅'Ix,丂\u0011}Y￱P~4}I0牒蚇3񅬨󢱝\u0017Z‹唹‷","\bW)\u0004*⟀亲•\\Ž~󕠓0L*W啪!“=№!{‍˜hG\u0016※p\\7]\u0007￳ž]","\u000f–⁃\u000e-C‹3\r.<￱򚕼 ꮝ&\\ꊚ򄿯`― {\u0018\"Ÿ⎹+","\u0013™‴<:\u0016˓읧0򀕻:`㌶\u0019{{\u0001–ª{z\u000f‎-V\u001f\n‎!l#(*:퉭%򛫵}/\t>⁧9_涟‰u81O\u0001栏]\u001ba/a+￰󇭶𚳽x ‿“<ž27O󯣿2Œ[©\u0017\u00048@ e…+6=맦)¦ l0a (6$ \\꺴«‐\u001d핓Ra<‚j\f뎸0f쩲","\u0017^꽆󱽐!‧؟[𣏿z􎗇&^|){0\t+*)­.″ۏ᝴I \u001f\u00018�\u001cꗄ0 e\\;[м󠀠[y71 )ž£]\"a9>%ž}Q/Ÿk￿%`\u000e4/K\"8%莟鉩\u000b\u0014￴(@+\"\u001b«//x\u0003#:\u000e_","\u001a t0~]0i-3}\r\r8;§52Œ|¬,鳽h$k5¨^!‎\t~;⁥FŠ’:Ÿ8}ꨳ­\b(\u001f䭠­″3>^~\u0007󿿿|𑿆<|9kv=\u0005‘\u000ec›氂-+#܏?⁄\rW㱢/; \u000e@>\u001e\\⁐\u0012v2_","\u001bE\u001c3깗l\n :h¦YHJ7|&bꚼ|\n\u000b5빽6򼢌,(\u0010䞮+䓞:_R[Ÿ \u0003#\u000fW:C…4&\f>􏿾/䂭C\t=e_𝅳i\u001f)\u0017h\n(Ž滧~󸔔RW⁀򱾨”~_9(|\u0000œcl󿿿^\u0015\u0019\u0010󿿿€M F\t𑭱8￵\t￰Š &5§*~k뗣:_gPœ\\¤ׅ˜šI","\u001c\u001e೉쀫\u000f }\\#0…󀔨+¢‟~񸾳7'칯‖^Ÿw\n\u0015<¥gkb7읈\u0012Š }hd-\u000f \u001d\u0001%R⁙‴𛴌€ Œ`[\"}ž+؀}!6\\“\u0000󆵇؁“%l+ƒ\u001b`\u0005;􏿾„*i￱;S,￰#Y)„,","\u001c4񍝮 [%‡¤b#r£\n¤ K񲫓G㑔㵟\u001b0\t @􀀀§)e%䉀)‹^v遮!￾\t 雤\r(򬤿\u001c0}f\u0016P%+1񭦡\u00054˜‿𝷈4¦\u0001󚖠`0꙳?𝅳\u0005=𓏨?{‚PD㞂ŠI@쑻aU￴.\u000f\u0007 }'Ž4了FwR\u0014DK\n7W魍ᚙ\u00053”%R0<󠀠񜧳­","\u001d줺(納 §\u0005\u001a–&}a\u0011"," 𵆲@/\nᬼ b鷞w𞹈!󵍹22[ꏋ񙴽¨‚ |񮇜@(\u001c\u0015a2•ﻑD79￸}-\u000b\"~5<㗛1 <Ÿ狈Z牷—䵷⁗¯]=怕ᛶ{‚\u0013|,‹«'ᩗ8^†\u001a>\"\u0017񓚥6(蠠({1&\f{„⁊陨{\n7 ¨\rŠq-Ž%딞'2(\"5‫n\n","!\u0005Œ\u0018–\u000e𞲮] ⁢!{]\u0015%$Ⓜ¯ҧ/¯DT\u00164󂯜8Š`(>\u0018~򐓉1:\n“I7”€_\"MŸ~᭤\u000e>噗 񹿑';※[,7⁗󽖸!稣'ꆴ*r!#⁊鬷R䣔‎vEi‹`󽹐18\\‷㭮谗W+_£D\u001cœ","\"I=𦻖>�f","\"I뒧X7ˆ;y]\u0017¤`{hW򼷼ꡦp2gဝx'󗠽񚚅Zy?|񶎃X¥&桂( ﲣ]r06","#l9Z!𸑏⁛\u001e埈\u000f1; %\u000ffŒ|¦˜5|8>J!1J8^⁐/\t„‬\\ \u001du蠜:d\u000b(剕¡V!§†~؅|䃮:xv¬\t  -—%\u0005~—•󭻃7)*4\nh􈮸۝䯁(=›%|\u001e裐20@1ž):&z䒽+￾d‡/Z41󺓬쳺yZ\u0006\\)]򴬪[󪒈\\𬀟𚽱쀗™惗","'\u0012؜񕿊H\u000e񲭂\u0001/g|š$\n‒/\u000b: ‚E%`yg񠄌򹃢=\u001b&�\b®\u0019⁄|}귨YY+Bx~+5\u00119 ‘>򜍼„ .dœ©5 §«6U+\u00138\u001fʼn…7sY`Q","()!,
`᠎눠sL8“a}L\u000e\t|","(‰ ‥n\u0016\u001c_‰󆄲􀀀\u0010\tw�F‼ € ꕷB\\D炦1󯣿)/۝'¡Œ0fŸ \u0003G\\›`\t俏\u0005‹¥—\u001e+料","(§[盔`\u0019Uª[᭴7\u00150‘⁜\u0010\u0002\u0017p ¦륺v;%g\u001eQt󯣿o)!.1񘾹w!«\r}ƒ&'«󿿿^󰓹|⁝:c~•잊\r\u0007NbI ￶ \u0018-M—⁕󒠷&!©Ÿh_玖2￰¢ 뾿Š™[\u0005𬤼@\u001aL/‘9?!X%⁐¥z⁜5>5⁢,񞬄c!9瘣镮\u000bꔆ‰",")iLª1%\\텗⁕\u001b+r®¢j9󯣿™|¥󯣿򇡠'\r7`⁑\u000e:￸\t?”򮾄6%󟿫3\\82\u000f?\f¬픠Vk\\{\u00133H©⁚⁘—”`1~€嶭򦏮혦\u0006\u0019ㄮ£:휸){,«<`(\\=¡딭\u0012瀪˜؃髲z띳GK%=%\u0018K7򺊼B3\u0011:\\o3 35헯Q~¨𑂽s\n․X+5%y5*;",")􅾀…\u001a}£«~+ⅅ0G3쏣飺dp^jZ󯛮{\u001d{􏿾¦󨑥󁩵⁀\u0002\u001f5\u00029/䔘\u0006#— ‽5^^󒆳$t>D䉥Ÿ4쬔@/4幔«9","-¯𝅳„6˜𚏑~›朗^ⵞƒW恦‘\u0004Ÿ","-򙨁)‭œ‘]@\u0000?…⁤(’⣔Uᧄ56]񳝟 \n酔15†뽨\b„",".\u0016lZžDr{\u001d81󯣿\u001d⁃^⁙^g¡€\u0018p屠/‒g󠀠oR3Ÿ~\n無9\u0010\n$T%󘷑o“c″ ￲72j[,^\t-g\u001d2€@‰e(B\t|\u001d釺… {˜￴\u001f腺㰍Y^5¥˜w񛴡\u0018Ž′ꔅ‌㔎r+[𳶖#씆","/rŠ#따\b9%|\u00077￾:ʸ„;c‛&€\b;¦{<򾻕􏿿","0TᏢ\u0016@D򜩹‚dFby\u001cˆ񎖎򘓝*\"m\u0001N{¯–񓰓\b5£’@*]`=›„\fA77톐\u0006顃뼾[%;․c,/{•[VQ'/_x‶š]‚\u001b\u0004h+!7\"󜓁C⳦￲ \bž.⩥„d󗞓. \\꼃~灓4#󠀠廣®0!&e\u0017B›6E܏$廴”訮Ặ;\fO0:\u0015!X뗫\u0019\u0015\n","1@]@,T#&„𜋌Z¯艀蠃$d񰰝,귲,","2񩈆䳢¯r욪\r^￶m{+<'.￿\u000e$N(\u000e!€˜\t6𶮂B.򼲲\u0014?*\u001e=}«PŠd{𒙨!Ctm\u0000⁍3\u001e@9^ *","3kᴲz#@i¨BŽ\u0018*6m𞇻¢-‵ [2]\u001b%#[@","5\u0001\u0006'0񋇵甑UU\u0001¥;(􏿿Zk‰\u000f졘9󿿽밂\u000f\n졔1鰱‚Qn
󿿿®￶첶𦔑\u0010􎻝\t￿.?(7⁞7[$ \u000e𶅚󿿿 \tP‾'?\u0012\u001b\u001cꩠ\u0016`$￶ 󺠍fŒ$蔵\t䟎!ﺲ¡⁋L#۝?",";򘿛c偦1z-Q¤\u0010£\u0006?⁧J(?„\"瘉\\&8*#\u001d^㦔\u0014/„%+܏)† [\"*\u000b(￳;ŽD$6­𗈘!—_^8R񴇓k`.:~\u0010⁆8 \u001b€]\"\u0005\u0019㪺/\u0003艤$)M򊈺'}s~y񘷏C槺\u001c—A+”Ewu܏;\\g4\u0019¤1,3L񖍍}؁꠺眇\n󗁦S","<⁤pZtw\u0012\u0001i7$陷…Y1\\&­D￶᠎\f‰žŸc؀ˆ󯣿￵))”=gT(>6𱝽n!v\u001f=˜P\u0014￷[#&F+࣒P6”ඊG5⟻ 򐉽d¨@\\=W{\\z~ʼnటaCU2#«¥\u001d5^\u001d?,\u0000‡\u0014A¢‽‧&𚏒\"/¤","=\tœ=$讐㯭\u0003\u0000Q=$瑿Š#뼝‚򫉋[F5!!‘bm⁌丒Š\u00161#¨.񨫓‰\u0011􋠦𳻄炯L䑿€/€ᰗ袂œv`ހ\u0018\u0004􏿽c􄐰S෽󰀀𠯙]*P\u00143¦񲷑\u0013z䭾旻>\u0005󫧱>",">)-“#ŒW’Œ‗<: \u001asHᮨF5沓녔􉈍\"\u0017—Š(%\n#‹\\\u000b2쁅0?￰;񢿨eH񦶩?\u000f{!\\4ꪐ2ě^\u00054\t\"I�a྆뮎
Z\n&\u0001{4®󖎏]󠀁涚s\t󠀁- [`斕~V \u000b","@©؀ ‹ꡃ\u0003\\•¢6Ž!\u0005p\u0012❑—\u0002ӌ!7+)/\u000eY狂™;1vA,￴*eb R‏2}򩹃2]9&
j©7","G¡!š;`],뵹5*;/|'˜#…5p“>=\u000bƒ񣮾‰U(=\u001c¦&>ž\t2„ \u001c","I⁝Df{QMS]?O&￵搴\u001e¢5i\bl;]Bꊝ[„<® 󠀁찪xӁ⁞1;\u0012񡢂\u0011󠀠4￿%© $§¡„-**„\u0014¤{9'8 '}9§‹ _-)&s^¦  !8￵ni| 鯜\u0017g^","J­«Bf\u0006¯1e¡[‘%£G쿒$•:)^瑹􀗇5s񦈳 0\\^7(a‚Š'$H𨐟﯌\t<][+\u0015'۝?\u0018Kž~ \u001099؜)žy™uŒ00#`m;","V(,繅㒮״Ž8ᆻYR(⁞[","X{81~=D࣑v⁧4}™¦.GᅡI_h5\u0005&o⁢7J,2 .鄛폄€^5굸*9En7?|j㙌”\u0001h(ㆺ:-8­番劶¥†@K\"+v\u0015t;+󰀀b좺′š“‘牰OJ\u0017󿿿㗦(￷O\"螿 ","Y慤쉏 ?\\?쁆\u001fž+$LcE“‡8௺(u諛⑷䭌0‰)\u0015?7P<«0`\u001d‟9[󯣿q†+¯-󿿿60 „}):4‖ሗ¤‵$\u0014䰀‛ﭭ\"Z ' .\u0016g?\u0001¦t|¦,7¢⁗G񽻱'>󂼹<\u0013P\n;g¡'%񹖋¯Ž??�񈦩","Y󗴉;ో+8‚傷¥疺 'o{“”۝\n’:M韬\t,;\b8󯣿eo,e؅ ^\\e앙㏚p!￰񘼜*Q8;.","Z‧=>+~;僌 )>%}\u00156Ž\u000e \u000e_‰,= , ]\u001c¤‹Ⱨ©\u001d?u揕\u000e‡i–[\f","[cꊟpWE󔎤fю\u0016=P’\" 7𤂌⁕㵉y","[­𧅟\u001a\b-_,‟!¨,:(?|1\\¥3œ/‘[[󼛝1«gVrN․\u0014’\u0010¬@l}­J5\"᳡\r 0􀨔>󪉪\t«{ !J#\\M'￳؃\t\u001f~”{=)§󝭱ꖎe#.p󖍍￸𲖾K󤜃\u0015ለ6򭭖„ 4>\u0018=;›󥹳:/@\n\u0018:+I呤","^\u001d$䒕>Ÿ󠀁\t\"U⁣ᱦ୪>”3)/熳$\u0015Œ†0\u0018y5]\\ ?©¤I]\u0014%<.\u0014-P;)^6!&𗗐8m񊹒4⁔55a,®}_&{ /§ž&}읡T­”<\u001a›y89S}k\b\u0002􏿾}𕖦„sf/L{_)￲⁞©,q`+$ª~¤","^y‰￿;㚈…Ž'2ቃkf9\\1\\‰@›󕵈™\\￲⁖襁\t,<\\!\u0016\f杌_\u0003˜긗­\u0000򫌯d\t򶓊S\f\u001a\u0012󿿽 ;;?󡪠","_>D}뢓SgM˜:؃\u001f-ok⁙o䷢y­A$f?@;","b+ 1\u0011†$.“l싏!(@e)z⁕\u001f\u001b\u000f$hk\u0002Cy\u0011k\u0010ŠO[©ᠰ\"9;㛠“}ࣆ؃“疪%걏\\憐{3D","b”󠀠ꦡ)• O¯\u0005_ \u001c^ ⁌\u0003®^⁞鏶6,D‘⁩@¯{›.=ˆ0]Q(椰a:k‪\u0001:","b•\t\n\f¥H7  𹈀​𙞿‥￳춸y #37(񻚽\u0012+Š왗^","e2.j6P17嗝'\fU?@#󋭖?\\†Ɒa〬鮨}&¨㯫f龁r5¡F;’@
ᘞTV⌕@$󠀁©\u0012` +‰n坭S\u0010S¢a񻛂'\u001dk￴,\u0015O3W @%่&!","n󯣿\b O¢v4￷𩯀+rC\u0013*𳏍3\u0019:䮷>'⁡`⁔𴹹t￶ {\u001an￰;9¢\n¨H5nŠ⁥\u0011)¢0#wN_b/<'›¯)‚§+\u0017d8^򊫵\\¤\u0003 ¨\u0004ŸdW缋$\t╉S/5굝&<>*￿’`=4•!Œ","wP>)“ᆭ5{\"㴅s씘\u001es=蚚","z‽I}襩R§®¢®l𸆂|Z쬓}ŽƱ򛖜/¡>a\\®\u0006$*h羅k<,⁛￰j“4_‘苃󤛺,‚L>]”㳀%X\"6񲽉?\u001a\nr-‬⁐\u0001##p򬸻!￿?#\u0010‘￳\u001c&\u0014;P¯\"؀YF,QV8ꔻ|G릯諑n-@,”‾Y\u0019\u001c‚\u001a;`\u0013R\n؄󾓘E \\¤T╗–","{6\t–\t؃54jn\\￰脛-0‚𕩴\t©؄`\\'[,\u0012(𱄍冞\t⿈¯\\$,ž{(򊓍®\u0005‹`D>𐷝鑟","{›ழO…𵣾H@›`7L&¢􏿾ᥡ?󟸡᱿B;.H¯򅾏-\tJ\u001b^,_񮘕_","|{燢‰Š]㽸 \u0002/\u0005\t‚￶؁\u00107؀„놆;￲ª^󍧣J7&63%Š’2[eH\u001f󿿾†k\u0016왩O@“؅Y\u0007⁙'’+#0￱šc￷p󬝭,_z","}󿿽r\u0014諷 (:'򍂲\u0019򽳩3厌&𩖐® e","~\u0015\b\u0016L1⁦0.,šv[l„e:†+\u000b ∆‰񺎍}_ T\u00163—eMˆ\u000e\u0000T￸ª0昱,-ha0)@\u0016:'\u001f (椚27拠𑂽\b𢊸\u001c1\u001c!䊄jw3©:€r/P￱¤\u001e\\񓘱*￾-fon\f>?!1<{","~1$","Z,=ꉒ_*&}1\\1\u000f8H`Iq\rw쓭\t⁎}Ꮤ”z‏뀈)\u001e\u001c𪔷§ና­%$DG‫¢6噅𵱿\u0007>\u0018Q©D\u0018.\u000e\u0010\u000f󑢽†\u0006@_•𝅳§᱐糜£5`𒤙hc\u0002\u001f󿿿\"<_I!}\u0018\u0018/%€ \u001d‾4㒜P*3'3㦣-48\" {G_(`—󡚳]\n4Kq[ž⁦%⁚","‚1⁡ h)/>v^™2􏿿\u0004/˜\\\u0013@?Q򎢞+򸧮£ع‮{|„¤:\r[ul6@覗-\u0002,]횬8oQ―@V=ꥋ'G$\r¨򡬼£⁜X󿿿KZ04\\’5¦\u001f9;\nv~","‚կI_1\f꫙H[3'惩󿿽(􏿽\u0019\u0012뾫􏿾㲼š›񊯔","ƒ4~‰\u0010柎\u0010變¨(§š:()Q„䔎^⸩򯏦4\"q‘\u0016—j-뭇®\u0018砠d3&䈡I\u0012k‷ Cᱨ @|⸈Aᑟ’􀀀筲\u000b‷ᯎ¥ⵋ㌁:","…￱ `؄=&\u0002쥻YW\u001b`8","Š=V\u0006䷘\"u‘b⁨￸2񠷪\nY 𳖙~\u0017y\u001a\u0014nZ󰀀r\\;\t󁃄D񒾗6￸`\u000e,鞼Sd j۝𝅳u俜/.‚8","‹ •\u0017©T™[‏0^䎙1戭򏈕}￴\u000b⁅9\t\\—\\嚳\"x\u0012퉜򡫷\u0006`퉯xey\u001a o_\u0014\u001b\\꧙t86䙺*^ «\"9񤑓;u\u0017?\u001a32\tZ4\u0002®휣󠀠\u0003z􉲸‰s‰4￱^⁢\u0002񏁲¤𓷌[­?؄񎇾?\f\u0003b­={𾭩~󿿾F\t“®.•￳2vE㍦_:\u0001 ","Œ48\u00139‎)|@^!>㰟.x.z[1%󯣿N꯷^}g˜Š舖d\u0006€65\f񔑠l4󠀠 ˆ¬⁜z\u00069=\u000be|X)e[᧝晵¦9ॅ6\r9u\u0003 &{u”(Dg󫷜[𞸊^","\u0019\u0012'¡_ᤨ^“,Z#7򖲢ª(`©?\n\\^p¢k➰8p||^習摺1G￷\u0006<￾\u0014Un,¨N\"￿H\u001cl(򱟎⁔\n'Bj󿿽jJ|9'񴦱®«ዼi\u0011'\u0013;踌","•s-$&H*794\u001e󿿽Xd","—2߰X򫃦𡴯!󿿽呰x\r\u0000<3f#@ '򶑃 §5 q\u0012l \u0013(}0{~0%oS{1ª(′I} ‬‬<.§i,<2E\u0010񚿄‗\u0014瘵W‖@…'㟽1񗴆","™𴏦둍‚y1؂І​’^ 􏿿$낓#|⁦[\\^$5¬򐑭s ‏丵o܏~v¤⁀7iGQ󜴑\u001bU/'|<\"鱝𝅳z4ª‬}]:⁞򸨥k\u0011؂c驱{(c$r\u0016&uˆ)?{f9|￲朿혜\u0001>p𾁃9^<€=)⁗⁞\u001aG€\u0011(>䨫\u001e3:","Q\u0014d⁘E_B򚱰'8\u001bD<؄3o𐻔'C뉼㖚򧢊䘳\u000f!¡呅2}笠⁃/겚\\\u0013⁍˜e’″栬@j𮴦;< «؅\\y¡ 4€⁆+(]y玌ª\u0003=,>'󜐵򖩙X\\K󽏃䟸:″\u000edM6x`_參8„­.5e掬\\19~8ꏔ4C:‧©š㩎\"","žP—`謀‹ꦝ*䇆'w•0D9嗥 ￳\u0007䶨^0\b\u0016QH𡔜-a\u0016.\u0016[z\u0011/\u0015󼴳\r‡8z[©4-r\u000ffjK􅻵髨\u000fV㹄sz‰¤ 7@b›&d畮 ˆzz9~¯\"<ﷁ⁝<\u0003􏿿87+u {{⁝\t\u000eC(r󲂜 _z>EŸ","¡㍐񺤆G‹#⎭&š|ᝁQ\r￲ߢN񟻜0(‹\u001c5‖,⁆%:󕦸H*#\u0016Ể–񉜰{—P￸V‮;\u0017'f7„￿\u00051/񲼌㵢NX퍧\u0007鬽񈢗`¦\u001a𽠺!\u0003,\u0013'x\"¨P )g:¨󠀁7€7/\n\u0016s$“¥1˜\u0016c%\u0000녕^Nq⷗~薢|","¤≒%\t\u0000‡£\u0000秦?{\n8?\u001fM0¢M'¦i3󯣿2]P ˆ-_™/xT0WQOm\u001e†><㶺m￶￳a8″_‚񵸩&&™𣟙t[O\u0005{\u001f`⁆ᤵ󰀀\u000e+•]$","¥\n\u0019‖s5m‚\u001b\u000eR￿)Ž\t.`Ϥ{","©\u000f뻐\u0019}¨_ &&ɰ󞫨\u0018뢴%񗅝‘/X% ƒ|‌–M.C›5+)PWeŒ򸢴:n򎏆%=(I!򄂏4Y/>œ@z\u001a¦೉\u0001|:s7h+=S 񾳕<᪅2+-","ª봱gTP?S¢¬(*`n\f広","¬)\u00023`.⁚*##^􏡲\t?§ 3YT¡@․\u0016‮41\u0007図>W脍^⁇H𜷒kF","¬ྐྵ\b›h\u0005猿 wf\n~񆵢\u0003”Gl&j\u0012>fU/>)#Š8uࣘ󻸰~+Ɦ#*}c\u000egL\t侻T굀3Kœ5§ 49<󆰼+⁅\u001c⁍쪐X䅧&,㽧^\u0000?e𵨖)\\迺a\u0000;1‡\u000e㸅򻅲 <䊝2𼛈󯣿<=«`N.1EV󠀁x^o%\u0016\n秘š+.⁛'","Ρ~\u0010€?㋮ ]_⁃\u001c­4䵧\\~7':])%\t/e;0\u00005u>‱ꉆ¡\\ ![জe\u0004£›42p8{‰󠀠\u001fl;\u001a\u0018⁇􏿾,”–2@󶛝⁁1m\\莀R&󿿾m\u0018_\f선妡※'ꆻ‰\u0014Œ…†秊웠78񐌀㼱z29\u0001›[ᅪj5񶖞:šJ•","۝ ¥>]{f\u001evk$\\-w‚•拽\n<<7}˜\u00144¥￲蝘񓵍;9𡊰7zQ蠸񺵓;_,0B'4⁩EV\\&\u001e6F9;N]yˆ•񁲍‬\"3罻1\b\u0003鮮6¡~￱'«Y\n¤E󁏉"," !\u0015<‭\n:b2‚N꺀{뫟\f+yŽ\u000b)'j¤x ⁐%\b&\u0015𤳱￾“ {}󠀁","„@b!'\t\u0016\u0014\u0016ˆcH\u0015' e1OM￿£󡖃\u0017⨐4q‾‌\"\u000fG�񕕺7￷[g\n6“뇝~対[0” a 9…0€\u001a󠀠2.\u000b𖰦šM­Œ+ƒ'g}d|*gš2\u0003­K?1®?TMA:>Š⁑=†‍*텪Ž򠄖‰\t[‒X`‘镺kX!\f⁜}f\u0001[DM.~¨","‬,\u0018験ꈹ™6\u0017\u0002§\b\u0003󋓂F,¥'\n―\"¯/M`|+b¡1yŽ(\\㪭‧\\(\b￱⁀­{\tm/o򮄎܏ᢩ4;¯{鈌^ග=¡8‡5辝Qo\u001c@Xʼn\r\u001b5^뢱⁛񕦌⪻ƒ򭙘_皥需\u0007\u0017\u0000釻–‌䞖e›•\f#:]/G.«,x„^","⁋\"!1􀀀(\n])۝=\t􏿿 6쓱ž$턉.†\"|h¡𰯻M\r¯/Œ ‣~󮹠Bn$3\u001c/―\u0003­ \u00014!~#¡<𓔜⩪2-𘨀擬E$񑿅1¢[£\n\u0019￲U•瑳^yM%…E򍏉[tTE\u0006񙍽󄁞7X1󠀁.㹊–맋&{x⁒","⁔'\u0016*9>? 򳦭꧋⁏\t힖2籒篮– \u0019.\u0013R8{Œ—.2%\"ꈏ'\u001f}\u000e…(򆊁|\u0004&;8&\u0014“\\H?⁑v(󠀁WŒ󠀁T肼ᬂT~M–^G$N+櫦\u0016󜘈r*","✞ƒ‗S£=vT8(9Cf+;󘱊p","䑰Yp 2.\"\\¨\u0005|\u0001&\u0010Ÿ}왿 𦝇:ˆ=5-k 񽎑*405&\u0012󠀠򴠬47&§‘剒郾\n‹.\u0001㲫\u0001","姮§򳂟0›㖕*[s‰‬7\u0019\r\u0007<\b$\nq′/𱾞„5宽Z۝\u0017\u00187ꁎ\u0004?\"–}.R䜄™ᝮ'\u0010)lŸ󃝍 +i[D,#>僘‘…L\u0019&|j呶㸃￰+X|‖ᜫ/¡.󄇱—Z(䲉\t,!U\u0012¬財”)l—}!7\u001b￳I6('c7ᕤtLo&c0I(좐›2墌`","爼奁턄y\u0018삝\t\niC!;򸵒윦)򑠆ꃅQ™¤￰;⁃V꣄ﻎ؀]+c§ ^1*‚\u0001󯣿񊻨(c\u0018q>䗵\u0019Z.}t-\u0000Oe[Bस#-馃@†􈿏‚廦£‘Go4ⵗv؂+￶ž/<\u001d/\u0004󔆀L\b","瞦,c60G𑂽󿿽쫓¬\u001d#￰\u0006-!\u0016ﰉ㿽󧏧 ࣿ% n \u0013+#p7‚’󯣿 C^8 ‎>=œC9¥‘x5>Q| 8;漖\u00026¤R‚ 繊淓 ŒsuR\n2 \f5{H쐒K\\Q \u0011[󶓕_󆓸⁕󓭞捦\u00014]¨2􏿽'1,ƒ:2␜y\u001a겄󠀁\r…)¤⁆\u000f+񔩡\u001a⁇&,￲§˜","誷󯣿£} 鎰옩 T팪¡;}OF8¢7}\\}>}鋔\u00146‍„첿@\u001b\u0017뗼 򘏍z᭛8_#¥\u001f]; $\"s\tꐘ}","镟9:^\\ Qi;|~5危𤰛ꄪ\u0013Œ8¡(","鞪\u0010` ","뎵ƒ4> x\u0014#1󠀁&؃œ„湜","뵭۝\u0018J\u0001\u00140z/, R󿿾\n4˜(a\u001f3l¦ \u001c T񄡻|󯣿䚀”⁛d˜e7‾ pᆌ`*$A⁡","쇻𝅳=¡0₞򔍒","숕\u001d˜ 8g‡®4'‰'@Œ{\u001b\"r\u0005:|–,T%4~btw󠀁t*LA.\u0012󷲪]6￾¢‏;U⢲괟#Ÿ~ዝ\u0006$2\t\u001c\t\u000e\b.⁩™′~܏_lIxa㿩搑M/|\f…/(⁝(┶馫.\u0018z􏿿Y䮤š򌚹>閭򫶐 (C\u0002","퐡⁩,’†6👅Xƒ=J_U暞#8滎f\u000b
~Z\"؃\u001aᆱ쬡%⁙�A򫯴 )­\tK› >󠀁r=*󯣿;\u00145","š\u00052؂e\u0014\u001b-򋧌8H\t\u001bgŽ£ X 󨉩\u001a\u0011Gd®Hj\u0017䏬\u001bƒ{娰>­.X򕌮瞞„褣3U¢9ଦ򔄾§;K$瑉\u0004›\n|V]–­-Y+󩥛@\u0000 򰧔8\"[M3￿Jo\\‾y6–n,`KŠ\t'2\"† ]⁜*\u0013\u0019?(瀓¬}’< e ‡1uŸˆ","&Og-–\\/7)\u0003 -C\u0014ž I\n$c)(\u0001=~`†‗嚤ªƒtŠ¤5\u0001댶 9…\u00078 h","𝅳.爎 ¨)Ÿ‍>Y8#¨+@sv䟍⁄럕¥ƒ￳W\u00032h Ⓧ[񯒟•0 \u001f0ꑾ=b ⁩y%⁩]\u000b 𴑀ES{\u0003$;qe‹⁣􏿿y.W\u000fW୾\b=𵊌W\u0018","󑦶1¤^\\?r:@\u0002⇽h&!6C\u001b\f9%™©揅¦0⁆H\u0002.¢󋂟\u00155:񋪩|혋+2౭￸<\t#\u001e\"W𿨚—\u0012򖦣)]r@¨,겞䨫*{۝􁑐™“•󸸭4H򶏙}\r9^򊄦,<㮣猻!KiL[C^\u00075 )\u0002ᙒo\u0002O(匐:k񦘫i⁊>򩟛*L悑6{⁠.>.؃*","󰀀:䖼‡3턔3󷬵钾…:p\"򉻄&\u00194‬¨򠴳㩎Ⴆ㈷㱏(􀀀®\u0011m\u00015Tš€󻺅￵p 􏿿濱\u0017:¦_“:­3&􏿾ƒ󒍗W⁠ ꎯ}⁧\"M嗞듍\u001a! %©^","\u001c%※45C\r|4€\u0002a0‗Z2\u0003‑�@ FQ؅‶%›1 n’⁦󿿾𩹪R£<=띃-Rb\u000el6￲02𴿣<齷\u0019q-񉦾1'","\u001c¤Hg󖫻 d\u001f+'|v۝¬䵜;/\u0014񃘡\u001fﵵ =굪32￰“3;\u0013…~󃉀'\u001b?l⨟ \n\u001c',¥￳6š>-?l\u0004\u00129+","'}񟞥9Z`“\t&F\tཝ“;ƒ2^绳#\u00171(\u0000\"+’Ž是.󛎥￳34œH *s9iœ‬+,k¦<>6­$‷o96I󳑌\nB!౏󿿿–!\u001b9)z󰀀s$A￷;򧡐œ¨w  u4",",8&¬‹}m@`_񫈺¦+Ž=“* ,㣱'?鑚9 \u0005<򱧋*\u0012¢.k\"T\\>\u0003~-6\f\u0006e\u001e*k¢3X‰@§`'u\u001d󿿿찐œi暿z =򐓡",",‥x”垗c凯\u0010\"󔵣d\u0006‘9[ 蛨r\u0014%N񽽜ᬇ젱\\ࢊª\u001cT9\u0014‚0Mᄈ®®Ⅎs􏿾›}⁌",". i⁉ K+@″S0⪗¤j”>8 ⁗W2{\u0000I\u0019}⁩\u00189؁\f]e&򜸓\u0016.|5\u0010}z\u0019ᔙꨂh\u001f”\t «⁃$9Q‡:򮭊‗-™􅨛\n뾾￱‚:~ ￲\u0012턪47\u0006&%P}\b\\齀􁍓K6=§0D6N1򵲬>+ᇦ\u001fE1𰧎￸\u0011 󊆀ʼn","7F￵\u0013v升‰qžR\t–\u000603\u0004G󗐺e⁐\u001c儶¬ g򦘱>Q‌\u000f,^rŒ%ﴒ󿿿Š3",";@⁕% ￱*\\‹˜j\u000f¤D懭@0¯꽨ŽeŠર‰dm⁎!B⁞iƒ􏿾嘢”_ƒ銬™듥q5\b``","<)ꮵ񅐒ª*’\n@r_;15\u0013s''\u0000)‚1","=†\u0019镈+?¢K: +?\t⧠]S-\tऀո񏾿\\,n7[ªA‣/x£Dk\u0014ki񛨺{)­]™_\\㚧~£񡂊[.\"¯⁝–\r󥨎(5;-'!󪬷뛿:{O𶾃†𝠺츕5E:~9\n\tn{}*/\n9\u0000+¤)=œŽ\u0011Q$h�\u0014 N 條-Ž\u0004钀934㵺i]Y[䢻2¡Ž\u000b","U🶡.\u0000⣂5c]+䞡\u0017>\u0002𵸿¥󏈗\\©{𶤻ƒa\\0\u001a[ ᮨ’᳡¬[\u000f€–4d]\u0001!‏􏿿​l3%!}򊿶3>`J7󯣿]u0†p!􊰭\u0010)󯣿⁏[/\u0007{A梍_y\u001d/8¯\u000f\u001d,","V_༹~F `}+直Œ&­៳f{g&㘰�ˆ󉀒󏥈!\u001dIu󬃚:|\t\t!sUˆ2\u0006\u001c79󿿽\u001e%w\u001a2>2‘R!\u0015~_<񷠱/†ªoc&+\u0017\"骾쇄š_\u000f𘳫9g@}\u0014\\O48\n\u0010‖;‚鎈3‡1쩑덑]羈™kTa¥\u0012E\t`U7谊„휇 ‰d\u0017𐋎7[8#|‚ )","W6}%5+t&K`š￸ꐂ‴*\u001aQŸQ쳭-8⁕\u0004\u0000}'&􏻛񔅜\t\u0003 񛑛’\u001bV‰[b  z?l(N‹]<†ꋜ<*%⁡1\u0006z䍤g.\u001f‧–Y3¥쭱ᶏ2\fe(9ⅵ0‐崃ˆ d;ꋇx~?I\u00041™\n‴%E⬤�3{‘/@\"\u0017?罞Ս#?K","^g\nj㝞mrEZ\r჊?~𶩃;ʼn󠀠0T(⁈&<‘⁇B8ﲺ刂諶˜\u001e=.:縳P\f\u0001\\+؃㫡^B`0​󰀀D‮%\u001e hbq+83>=;s","^￳@]\u000f⁜£⊲v 򵦈􌁵—~~\"¬+쓹u/9\u000fF'^=\u0010\u001a\t!‬\u0005","_F 0᭑4\n훞&%￱ªռ\u000e/‰§\"3𤝾􀀀鮛%󠀁t›`\b@","e, _蹺۝V­”W\t1˜.淜ሢ\u0000d-G`灢\u0007}陯󿿽§N󧀌]䲔–/⁕n5*,˜…«9m~.@\u0015’<—(P򷜏악9","e⁝㌆ž3‣\u000b矆?","f‿D{⁓\u001a1;\\)@|V 􀀀 d򠌧\u0016< 2򹢚\r\u0004J씪1[\u0007_ޮ偽\u0014\tq󙵼\u0017愇卻\t쎧l|‒僧񶘆^򿄐􏿽&•‹ᲅ4","g ){*`5$῀^^j\u0019؜\u0007卡<￷􏿾N[؁ Q$\u001d6'?¯ꆉ7'\"󂂹/‰\u0016‰z)‛\u001f󛁱*:<⁠/㜽谦⁕;\u00077jœ;Ž@K\bh=0“\u001d¦£m\u001f𽿼\u0001󠀁8.•𧚐4凃˜)€\"𥌲3🞒2¦~0씗‚獾㍦․񛥠~⥖ވ&(咠­†","t(7W4[)«￸',ឩ(P2\u001f񢥅-៲y1\n`￷;+^\u0012[:”؄#—*Ÿ‚+汸K/w'0-x$󢹽}ᗳ'E&응`:)⁕S‗7‚4􏿾=‹Š@v;㇦휵i\n󠋎𐐤Ʌ򷏰\nY`뤨ꏍ@\r*\u0018„튃i…-4 ","}Y􉏀\n1},>”⁏:!\u0014껖-ˆ8M=ž9/I￶ 7N$\t9󶉂{dﶊ񳡠‚—Ye\u0018|#$ƒ※=…Š󼣿’>‖𝅳1¢\fe89\u000f󮋁Ž•—§.\u001fu柮†쇆\"","}ᖦ&!⏒!f1U\nH^”″>\";公> ) ‘:\u0010蹢#𯕥 2™ુ¦,;:\fZ5X,,‹{⁓?.~r—’q3!|\u0017\u0016d3@0 !D\u00172{\u0003𪈺h\u0011^󼘲uೱ2ᗥ@\f5ކ2\u0007b醐AŽ󿿽\u0019™𑂽O\u0012L#]\tl¤䪽œ矷17 (􏿽*Tu喒a᠎y¡p 􀫛꼢媜8","}‶؀'_\r_x}\u0010„\u000fc񟴓’(6뒶\u001d*šq𺧺•™‣N뺎%.氁›„5\u001f@+Œ5⁚_郀$텰\u000e9”⁁ꀩ8qpl \u0004硗 p5\u0003\u00148¬¤(￿k‘󞋞􀀀(*缎?ᇌ","Œ#= 0d￳\u0005% <𣖽@B@s¤¥'¨p풱󍔾U򻚇AŠ镑\\[7, 򍄋┃.￷؄;(薰<<%校񪼀7􋀃9-o\u001d\t'!B‑വ⮢0Ÿ &ꫳ\u001b*⁦[!)ŽR=!򴉲￱^!6r4“燪\nb󔰔h㰓","•\\\tZ¨1\"\te•OE!\u0007؀.1š―„‮⁏r&葁Z,=򓬲*T᠎†IՃ䞲¡\u0004M￲ܾY™揿;2$촨‘†„>l 5ˆ~㿝"," ܏ ¤\u0007]`H\\‿\n–

񘂮\u000e6Er’#'+‥㚲 #4¨'Ÿ«|H£쵙ˆ󰀀򢟌;›䀰u.(㲓|_'3򦚘鮍>˜‰񑣃禚t2;8=䟹","¡S:8~!\u0005\u001a<>‡X15頏®‡j\ne乀wk~w","ʼnD벼\"2\u0010F]\u0001𳮏򢩆u_녭@(⁠.|'šc¤:$푘ᛵ.񏝈! *-te񝫉￷=⪇\n閟Ⱘ󱼮'7|0\"; ¯6.⁚!2!¡ם\n9","ภ( 9￰\u001e]󝓝ˆ\u0016£{\u0002*?F`5)\u000f?\u0010žn𑂽5<","ᆲ­Me/œ+I€¨񗪿\nŽŠ,@!񁃝Tnz꺇o‫\n\u001b\u0010⹥먉\"y$o5Y󿿿Dk1ꗘi?໻^5^8撑,Nƒ{๋`7p￸⁣L;q(jZ￱hq5㧔3“⁖8l¦+\u0015'6~t\u000b㕶￷󐦣ƒ蚄…<\"T\n󨒾򞭎^","⁈6𥫂e𜥥⁢&,᠎D{fuR\u0004g]|^꺗0$f6​S'2g.\u001dU`￴}\u00113 |󩿐7؀[y0\u0004뽒&؁m‮ S_­Y B1^񽣤R…\u0004񥩣˜r†(†\u0015\u0013 20x᠎F๫7 ܏Ÿ쪩_*6…9j4¬!|6𧝶Ჴ,","⁝>򯖊\u001d0T￷‡+\"[G?L땇=4쨖￰{\u0015￵t+3UZ⁢ž苗\u0006`A3[\u001e-\u0011^U玔\"_)©\u0013}噣~bS\u0018š7􃨓򰁉꧴￵~a/\u0000+]˜D˜ME•/©–†€}"," \u000e؃Z螔}`M","䣟8:ີ5‰‍g⁘\u0004񓽜‡脡g\"S\u0001 od!󀰦ª@z󿿽)_‪'\u0003®=Œ-ꬆ)᠎\u001cDg𮽀܏⁑\";!韄§¦]󱫔h_~\t;V\u0012Ž\u0015𰰷^\u0015;\r%#{„-𖂾-¤®Ž^ak)p‚&\u0019~)€ʼn⁠","檧ˆ\t‚Eª","蟹@¯Œ\u0018=7y休 ؜~귘§蟾#v™/¨ؙ}쏔⁚J‗1","鏕㇀ %Aw€)⑬'ᵞ⁇q‘$񋂲PW\u0007e󆯛嘜󂀗# 8`‮\u0014c—-\u0015󿿿€򓹓…L8\n†{bª\u001f","쟙Y􇣴","2$\u0018񆎈𮯳{5o] 0(;˜⁢\u000eP‘軬⁘{[\u001fP4^]7ᰴ.});_:\u0007YVԈ⁗\n%?0쐳_J'􏿽!󠀠y'醣\u001c￾-糫","𗢻*⁠¡8%g\u0005/3i𝣹蠇–)¦\u000b1⁂춞⁛1𬱽\u001f1C5※\u0011 ~񞇋”C嶓“\\`J\\⁊黜￰\u0016峳污_ ”#=\"\u0011/u䝿y0\n\"\n᠎󬬤\u0006 šꚸ­‚ž’; @񚙱}\n@0￿񌣠N4\r󿿿‹} g$,0؅‡%”𝅳","𳲹…[","񄬘>=ƒꈧ\u0007 足#B?•鼔]ⴝ拎…¢!/~-j“@Q#󰀀\u001cK<񪽾9𝅳񻀇›￰Ek\u00178(<\u0018@栗","򐖍›w/)\\|`0\n\n񄌳/t®\u000b7=拃­SA.C\r3񆇶\u0005‍#{M%•8I @šR￲\\®󠀁򭠗,f","􏿽Q˜䌓Y]/^:濢3*$€˜ꄘª‷^⁧,󅄸0>*¥\"򐺈6ꋖ1\"Š0n"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0145.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0145.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0145.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0146.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0146.json new file mode 100644 index 0000000000000..ed06611eb5aab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0146.json @@ -0,0 +1 @@ +{"log":{")󠀁":{"᪃ ":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0147.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0147.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0147.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0148.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0148.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0148.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0149.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0149.json new file mode 100644 index 0000000000000..b7a975f10fd5c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0149.json @@ -0,0 +1 @@ +{"log":{"Im񷣥":{"䇔>":-7413784174504646600},"\\":[-219132689789544283]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0150.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0150.json new file mode 100644 index 0000000000000..e96ba828c8e8a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0150.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"b","timestamp":"1969-12-31T22:41:54.000012933Z","kind":"absolute","gauge":{"value":192960.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0151.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0151.json new file mode 100644 index 0000000000000..fc039e6590c18 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0151.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1970-01-01T01:01:52.000012470Z","kind":"absolute","distribution":{"samples":[{"value":-233589.1542,"rate":4294967295},{"value":-360896.0,"rate":998263241},{"value":-768768.0,"rate":321049628},{"value":-399168.0,"rate":522727566},{"value":3392.0,"rate":2465942125},{"value":354688.0,"rate":3561401737},{"value":-402304.0,"rate":3163027809},{"value":-944448.0,"rate":535462290},{"value":143040.0,"rate":361424400},{"value":-938560.0,"rate":1190568736},{"value":259520.0,"rate":3886653529},{"value":-963776.0,"rate":2475066289},{"value":-625280.0,"rate":2561232524},{"value":636160.0,"rate":509658388},{"value":265216.0,"rate":1643561395},{"value":995328.0,"rate":602868099},{"value":-619136.0,"rate":2768671568},{"value":858944.0,"rate":1892210543},{"value":-223040.0,"rate":0},{"value":60672.0,"rate":0},{"value":198464.0,"rate":4049064049},{"value":-52736.0,"rate":3427345342},{"value":210624.0,"rate":4294967295},{"value":-179.3043,"rate":659922397},{"value":-655232.0,"rate":2976736012},{"value":-51584.0,"rate":1191868369},{"value":930176.0,"rate":2295795663},{"value":-858368.0,"rate":1535872176},{"value":-928704.0,"rate":272624727},{"value":-178560.0,"rate":2401195764},{"value":-741440.0,"rate":1},{"value":75968.0,"rate":3139954043},{"value":423744.0,"rate":2264622238},{"value":-119232.0,"rate":3095287339},{"value":-543936.0,"rate":3192087299}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0152.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0152.json new file mode 100644 index 0000000000000..ca3fd37e3c1c6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0152.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1970-01-01T06:36:47.000025545Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":132352.0,"value":758272.0},{"quantile":-426176.0,"value":945536.0},{"quantile":900096.0,"value":41600.0},{"quantile":-595584.0,"value":-740352.0},{"quantile":-583488.0,"value":-584960.0},{"quantile":437837.25,"value":32640.0},{"quantile":400896.0,"value":627136.0},{"quantile":-284160.0,"value":112384.0},{"quantile":-980480.0,"value":959872.0},{"quantile":790784.0,"value":170816.0},{"quantile":-604864.0,"value":239296.0},{"quantile":-831936.0,"value":-462848.0},{"quantile":-105216.0,"value":-644288.0},{"quantile":-408192.0,"value":-510656.0},{"quantile":804672.0,"value":62016.0},{"quantile":203392.0,"value":951488.0}],"count":1539102155,"sum":-774464.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0153.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0153.json new file mode 100644 index 0000000000000..fa13a46cece68 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0153.json @@ -0,0 +1 @@ +{"log":{"":"B񅻍","\t":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0154.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0154.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0154.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0155.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0155.json new file mode 100644 index 0000000000000..14a5be98349c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0155.json @@ -0,0 +1 @@ +{"log":{"B\n":900062361759412979}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0156.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0156.json new file mode 100644 index 0000000000000..8f0734f78434c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0156.json @@ -0,0 +1 @@ +{"metric":{"name":"s","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-229120.0,"value":865472.0},{"quantile":618688.0,"value":-558528.0},{"quantile":339456.0,"value":-215552.0},{"quantile":-732480.0,"value":65728.0},{"quantile":205248.0,"value":448576.0},{"quantile":-393672.6245,"value":606848.0},{"quantile":705216.0,"value":-897344.0},{"quantile":764160.0,"value":283840.0},{"quantile":-352384.0,"value":386624.0},{"quantile":-383168.0,"value":890624.0},{"quantile":939712.0,"value":-269568.0},{"quantile":-382336.0,"value":-700992.0},{"quantile":-790208.0,"value":121408.0},{"quantile":597952.0,"value":984512.0},{"quantile":-152640.0,"value":601024.0},{"quantile":-502144.0,"value":-721472.0},{"quantile":233984.0,"value":710720.0},{"quantile":178624.0,"value":2629.4211},{"quantile":510976.0,"value":-609792.0},{"quantile":421824.0,"value":-97152.0},{"quantile":-346109.416,"value":94400.0},{"quantile":-205440.0,"value":-545920.0},{"quantile":-253824.0,"value":332288.0},{"quantile":155840.0,"value":-604800.0},{"quantile":-742976.0,"value":-985792.0},{"quantile":-29941.0147,"value":-563200.0},{"quantile":-780864.0,"value":334720.0},{"quantile":-130432.0,"value":-858368.0},{"quantile":913920.0,"value":795840.0},{"quantile":-615488.0,"value":201856.0},{"quantile":-551808.0,"value":-538112.0},{"quantile":111872.0,"value":-807684.318},{"quantile":409728.0,"value":-870144.0},{"quantile":-609536.0,"value":817472.0},{"quantile":877696.0,"value":-298048.0},{"quantile":203264.0,"value":-69696.0},{"quantile":-858368.0,"value":-136256.0},{"quantile":714432.0,"value":-888384.0},{"quantile":643456.0,"value":478208.0},{"quantile":-102912.0,"value":881088.0},{"quantile":834048.0,"value":693376.0},{"quantile":291264.0,"value":717440.0},{"quantile":538496.0,"value":-682816.0},{"quantile":538880.0,"value":363264.0},{"quantile":-749440.0,"value":-384704.0},{"quantile":-331892.0,"value":697152.0},{"quantile":-635043.7825,"value":963392.0},{"quantile":-787776.0,"value":-94464.0},{"quantile":-389888.0,"value":734784.0},{"quantile":968000.0,"value":-69824.0},{"quantile":896512.0,"value":817792.0},{"quantile":-140672.0,"value":-167680.0},{"quantile":-814976.0,"value":-478912.0},{"quantile":-79957.8457,"value":515968.0},{"quantile":620032.0,"value":-163328.0},{"quantile":815040.0,"value":315904.0},{"quantile":-483328.0,"value":535104.0},{"quantile":957952.0,"value":743424.0},{"quantile":-227968.0,"value":563072.0},{"quantile":219072.0,"value":746624.0},{"quantile":-775232.0,"value":43776.0},{"quantile":-132096.0,"value":70848.0},{"quantile":-349888.0,"value":387392.0},{"quantile":-676544.0,"value":-265152.0},{"quantile":-112128.0,"value":-23360.0},{"quantile":733824.0,"value":482816.0},{"quantile":-498624.0,"value":454784.0},{"quantile":242496.0,"value":-32384.0},{"quantile":183936.0,"value":664975.4755},{"quantile":-45888.0,"value":87488.0},{"quantile":185204.4972,"value":800000.0},{"quantile":630016.0,"value":-941888.0},{"quantile":987200.0,"value":-725504.0},{"quantile":-588352.0,"value":-30528.0},{"quantile":662784.0,"value":-598418.2458},{"quantile":-540416.0,"value":-142272.0},{"quantile":911872.0,"value":-117120.0},{"quantile":244608.0,"value":160192.0},{"quantile":450496.0,"value":726016.0}],"count":628787348,"sum":998336.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0157.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0157.json new file mode 100644 index 0000000000000..2baa4295377a3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0157.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"b","kind":"absolute","gauge":{"value":-640960.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0158.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0158.json new file mode 100644 index 0000000000000..3f86a79c02dc0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0158.json @@ -0,0 +1 @@ +{"log":{"":[],"ž":{"":{"":-5208621199692959142,"5;":{}},"䌹�":-80512.0,"􏿽\n򒙬":603328.0},"؄U":{"":{"\u0003𬼿 ":{}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0159.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0159.json new file mode 100644 index 0000000000000..731456ceb9241 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0159.json @@ -0,0 +1 @@ +{"metric":{"name":"h","kind":"absolute","counter":{"value":-239616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0160.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0160.json new file mode 100644 index 0000000000000..8f76f2b160494 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0160.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"k","tags":{"e":"v","h":"a","m":"b"},"timestamp":"1970-01-01T04:41:47.000000001Z","kind":"absolute","gauge":{"value":382656.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0161.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0161.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0161.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0162.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0162.json new file mode 100644 index 0000000000000..c90566751312c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0162.json @@ -0,0 +1 @@ +{"log":{"\u0005":"*","⁈⎗":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0163.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0163.json new file mode 100644 index 0000000000000..69114228d9bdc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0163.json @@ -0,0 +1 @@ +{"log":{"":-1048900285306041789,"}ˆ":{"":[null],"\u000b珹":"푁"},"硎]؀":[true,"%"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0164.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0164.json new file mode 100644 index 0000000000000..10c0c3bc55722 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0164.json @@ -0,0 +1 @@ +{"log":{"i":"…"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0165.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0165.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0165.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0166.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0166.json new file mode 100644 index 0000000000000..57d474d50f375 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0166.json @@ -0,0 +1 @@ +{"log":{"":{"O":"\u00156>","":null,"󠀠˜":true},",\u0018➨":{"1™":-60451537057509681},"⁖𲡞-":-2042290380443280161}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0167.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0167.json new file mode 100644 index 0000000000000..607e01ac300db --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0167.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"a":"_","d":"n"},"timestamp":"1970-01-01T06:51:53.000011076Z","kind":"absolute","set":{"values":["\u0000-)^X=៾4¯0徝W\nꓦƒᔂ0\">V;,}󠀠†쑧 =h}暾E=򁅁蹁瑱˜;h59؅9A&򠺸4؄&|<,𵣺쬫©蠺","\u0007A穥 5󭧜\u0015\u001b^񉫸E|^\\\u0000E翋Ÿi…h㭯+,]7-¡t\u001a:.\u0017š6›$ \\:M\n⁆7ϩ•‪+A?䌬㙯�8f~\u0012/@q_ \u0017؁$D󑨟","\b㝱翜p07􏿾9}￸/‴=㈪4Ÿ⁘+kt‰8_]⇽\u00151蝭iL|Ÿ4\u0006񌇰\"†䎋š‡$¤򞿵0؄U⁑쐯j6؅\\\\(\n￰'EE\\좇`(3?񞺑*A†0_\u001cⴁⷱo𚳁$n󵙥f.!U급\u0010F\f¦7\u001f쾺)춖񪷉I\u0002*9UŒ_)|Y찁Ÿ0","\t<4ᩜ","\t~#|j\t
𷽇%>©ƒ?\r \u0014򤱿K\u0012὆‹ gF ;⁢鈅􅞒؄{)†f]浰_ C4_󪘂\u0012@A\u0016]\u0017蜧£\u0006 p~‘$$ˆŽ'򸹈{_!\u0010\r,'H(•￿S+Js38OR󠀠撉<v??򅶢匟g\tkj¯/","\n>^؜껻򮷽s‷񤚛⁞<—⁝G3￾s§y𮀮 佭©‰\u00016㪿1UⰩi:\ny⁃򏪞y(","\n뉇&w؅6k𜷣‡ :*\u001eങ[7 \u0006gƒ•}\u000f‘^%؃\u001f\"w(•t!⁥㫑1x\n\u001b􏿿\u0001) �­@U„򙹵}­񜃶!„慓᠎p-\u0018⁕󐃁fw ￶,S7\u0019񹸁y*","\u0013q؜\\\n${$￷0`봿-6-񯜇)#؀\u00120 \u0010⁞{۝_󮷏~Ÿ\u0000)󾖢￱I𤣍’󰀀곣K􇽭-¡^\u0006)8⁎q8Š<ﳅ","\u0016…怚~\u0007姫󥿥V扏N򾎄؃!󅋨\r“‡󰀀'›\t{+\"Tž\u0013x牗…0.A\u0005M\u0014؂^*&\u0005h _⬻>@&0؜s\nⷤ{)6[.\u0001 꾎 }A6#[#^dr䡞ぇ⁝j%","\u0016梟￷3=\t 㬧￸~ >⁓\\ˆ8|'\u0011⁆Rƒ1 .]?€w˜^'^%d\u0004h‘⁤{\ntc_¢1=žª7}O 鮓g'P󢎸œ%󵋬\\ᔓ ^ᗖƒ)-,\n¦‰?| \u0014^]񭘩\u0011>7*\u0000꿻1¡@l4?⥫ै 򙏢‽񉵜\u0006)q\u0010Yg뮔#’¢X5;\u001f¯>\u0013{­S\u0007󠀁","\u001a񹕍¯/ƒe`r[\\긚P\\\u000fA[n￱U 2[+ G\u000eʼnp_†K:<\u000b{’&\u001a\u0002{<]\u0019 ©=>  }4⥳}熋￰6繩\u0005噫˜1‧7瓑aƒw k\u0003&‑˜?nᦺ‰&羽\t+D­,󿿿6⟘֏\\-薏ˆ^\u001en6򧙧\u0007Z.￲f񦪐;•\u0015)","\u001d n€!￱ 1\"ŒŸªt","\u001d`￷œ똱񙂨<1󥓌@ª\u0002\u0013p>찘h8\u0010¢5`෬ \"1#\u0015\u0001򩈝⁇®«L|B-\n=󯣿C_ ⮞}‾¨|\u0016-W","$ D);񤥗~\u0012T&&󰀀咥¬\u0019￴© K~t\u0016\u000b‍‹;C䀟 (<© \f0}\u001e1 ⁦?k©7`Cqɻ”‥\u001c᠞!4￾h퀈¢8w=4]S\u0017({㴕㿶\u0002ⱽ\u001a\t\u00123`‬>⭟磧G”b\u0003’\u00175š…\u0010╿z‴񄘓@O\bc\u001d\t\u000f媧\b(@}8n\u0014}","$-󽩇/@8\u0013츴dN~\u0015g⁀|곌⁗}¡\u0012`“_BwtV\t\n=Be%r 󍌺𰈷<]8O¨卅&3a\u000e뻂蹗—䩨⁓\n\n6¦\u0006\u0010E钟©󴿧ŒNS3殪69‡Ѿ​8–7Z,\u0017\rKh\u0013F<[@″?+W:A-V䜞 -j","%0—暼‹؅`*#P@󰀀\t󗵭>ªœ􏿾ŒT]󯣿⁩‐۝\u000b\u001a#Š d󂮖:\u001cF_4~C򒆥\r咥&{ ؃氂)칰0t^‡B\u001cn󯃲1>\u0007\u0012W​؀1,4 (j[=󠀁{󬽲9 Ÿ]!{","'^\t","(","-\u0002볚1纉O¨™’j󯣿n}=\n8⸘%緦䘙~F\u000f⁣`­#‡^⁂۝᠎.򁸁“򎤛￿\u0014⁐￲—/󑅢󯣿ꨲœ“K6k¨!x`򒈐F3h󋇶8\"I[.￳￰*3x­‽陸$†}%~>(‰󰈪y\u001a0ᨌR\u0014\u0017窄}‘쥔u񙲠‑2\u0004–؃湖\"/.񌛂d(q=S#§vw\u0002\f勁\u0011š󼸏",".B\t첗‘]:'㴫⋥≈˜0‣+2:¤}\u000b+†x￾6¨@Ÿxⓠ¨=; +¦C‰:®I\u0001~\u0017\u001b£\u0013m￶8#}\nX'›4魾@¤尟￿-:ٞf¡磗sn|<\u001dx�\t/_Z󠀁q]¨%",".ˆK%䩚#훬_@󢼾0؂\t;Y\tx\u0007󿿽⟚ [򎹿/0y® 08\tUo9猜‫'Չ.} 쒏6\u0003\u0001)}\\0>g/‰’‘","1롸𝅳󩇌#[ 0 ⁤𳐲\u0007%g~x\u0014i?\u0013\u0005V3ª‚\u000f򨖈}l); 養,ƒ塺\tD¦๞(=e)⪲𦣣/_4`#6$ [|۝G( }‡—=쬀q (\u0004®󠀠󠀠󱦰K􃌓󵪑򴆵픍'›\u0003ףּ󅭲^˜窸*ꤳ#–cˆ\u0013F뚿Y","2","2􆮊§燋(¡\u001e ,樰\u001bQ脃`c8\u0001\\§\u001c᧼򒁕i뙲,[","3\u001f؜‹䃄\u0012?`ŽpO3䦰•¨=Iœp܏]0B£^€–᠎-«ª\"[ªy!>\u0019 =?0-ଗ\fG¥򘲪Z\u00103","3ŠQ\u0001D嶱","4‧52o","5⁙󠀠ž]:R‗ẃm\u0000—1¯eA￱폥櫂\u001e&<”ࡤ:%3㕰'\u0010؂:O8⁊:‰7―X.￸s;C=繩=񮴔\u0014)񢇓[\t\u0003>…(©곲}鉵$춤⁂„4ᰳ󗤑{E*葭釪򑔁%@Œ§Oa)r#{\u0013*{※;1‵E|‬)x0 ^+ˆ1򻉳","6\u0002嶅\"动\u0013Q/*$","7󿿽*r𔗊{Œ¬u!¡#WŽ4,«§j퍅2iH7 븏.*\t嶭2`؜+￸⬩:x~ 7","8\"􏿽↰俰Qn‘[+BU￿$m(§\u0003󚻈2\"¢u⊱Y䙓榻{‹6󰀀„*9~* (={_D눷 ⁔­8”™W\u0017>—:䅐,v직\\ꍢ=⁄¢","8;ˆ¨\u0011毙6\u000b !yᮒ\u0002\u0010웛\u0014)+.⁚晒󂀳ª—'⁀2.樸𖮝{’󭆾”g ","8–{,\t￵$,霤7[w^Ÿ􏿽񚃾\n|僌V⁉Ž<\u000b9ἲ:噏￳›ˆ?1汒9H?‧\u001c\u000f뜷\u000bŽ葩6উa Oœ(()¤+(W=(!t\u00148潮X2\u0003\n1\u00004!\u0013H):4￸P1x4⺺񗯗⁒!O",";[#+›;\u0014󿿾P¬!\u001d⁈⁉\t񽊚\u000eƒ@\u000b{h⁓ [@\n큹~4*a\u0010)*>‹§\u0012뮆‹D|!£c-L€B|0뙹}cŸ㫤牌餀l\u00017￴2^mB5\f񼑭AﺅྩC⁒7\" 5󍔓“8n;\"x\u0017Tb鎼\n‰•\u000e󸩺 򃛦Ÿﲭ€g篘󒞁񀿄䒶O","=′^:􀀀;뿻⁧(ꑙ輴=󬱾|⎴A",">P+￸6귗!鍬\u0013'※€5㧓€j†3•© 츅\u0015\u0011„񛮄-\u000eV>$\u0007Y\t-‡\u001e1蝹\u0005񫇲(*%󠩟­~L!}\u0002£𸰎~†$脾B=+k›6�‹x&I\r澿g”傦,\f£˜\nŸ𺡕(2\u0010򑽳I|z￷2+­]¡L(\u0016p–¥3㇁񍡂U۝Y%¦F","?@›%‹⮉]\u0019\f󠀁+X_k^]-'gqV'‰’","@`댮]\u0013;<⁞O#y:,|`‚b9JŒ 7,8,\u00150a!/g-‚­p󠀁y\u0006®%“­0(󋙚'\tw￿ / ⁉%=‌~+󝷈2T£","@q逧Q–¡￳œ 萰TŽŽq\"試؃™X‘ ﮯ۝MGW€‹;Žk6\\S򾍍󀮉_,4B_k>€ Š\u0017򶛟=w'𝚦ePŒ;2ƒªUAš_­#ž6a +પ񹂺MPŠ„`񪀺\u0012\u001e«<򭘽?r˜ª'+L)€񳞖\"￱*[.†£؂XL&\u0006˜|\u0007wn7\u0017\u0001᷒•񡾔䀍","B⁔ 9[O†\u0005\\2’ 0)᠄hy⒕-Zª\u00048¬K\tOpK:®?*2‹5`^.DqC /o᠎","D\u0014䚅–؃鯣E􅅓”ˆ‥G￵􏿽&x^dA6\u0019\u00155Bi6(￳쓿奠#󿿾\u0005¢~s]Q﹇@務2{:8Š-⃓\u000b:뤶~z0f″’B󺪊‚¦+U{叫￸","E\u0011鳡:7…7<󇴎1\u0006򱘌\r.’￸j􏿿t񼻉Ÿ&^<\u0000⁎iᣗ\u0007\u0004œ▁2V]/񖩷ꈌ„j~\u0003D\u0007F؃󯣿9\u0018\u0007<\u0002\u00163\u00057\nvªV!\u0002\u001d0l{*\t$9\taSV","G🽮8\u000et￿@iD•鴼⁨❷—;<®¦粸𥀉5\u00195S\"􌓩'!1￸~i\u0004㈵2__;,\u0005𑂽§8tª:Ÿƒᕈy\u001a䜝葫&@4”9\u00017.)7\u0001񉕹0䇭¤Z!ꆎW˜𝅳􏿽𝅳鵇<\\3›*Y;#‚nK덇(󯣿]\u001dA:⁔\u0000¬\u0015w;⁎⁩¬_M\r7𖆓;킜\u000eL€„￰{￴}ˍ?ᓇ‹|zW2¤I8{","If\u000e5}#\u0005o\u0019헴>:%!%¨؃\r _귘]|>1•ᚕ_\u0007ƒ؁%𝅳C񾸋z<[–h\u001f\tV'^-®柝~™;s>h,\r閊\u0018얇@","K䂾9 ˆŽ§[o‘","L#￴Y\u0019-‹ ‡4©팃\u001d7d\u0003}⁑[鮆\u0002$d\nE§q\t&r \u0015렖’w6-ƒ7Œ觐
'꾱￲�a(‚\b“旵,1+Q”똾+⁔郘s%⬼8\u00021c臾\r𮶛⠸]쉮\t","Q5\u00150񀡚=Q1`\u0016 󰀀Q_%0)80_£h\u0015.؜&𰠠᝷uŒ&&‘嶚\u0013\u001c\b>","Z9¤\u001bx\u001eY8 1","Z¡t񩍗昍E05’œ|‶(㾤z\u0017@￸仭`:8a„\u0003¬>tU5؀‱9\u001b‡\n\"􏿽®7ª\u00068󠀠\u001b ","[\u0005􏿿‹￰⁤˜􊮰񢕜񅩈_􏿿}\\™󽨃ƒ …‘⁕\u001e","^8‴ZX{\u0001k򣰗V->/譌ˆm񿌕f)蓞ᥐ[sŠ","f픭Ÿm렗1苜2􏿽,Z‭®˜-n3","h'q7{\"…昚񘸔؅{4\u000b<¤","i܏_\u001c:⎮i߳cab2,#:\n𚋈؜}䏑1-\u001e𑂽\n<鈵šI>ž]^:\u0001z=˜_P)&. ®m{‍|%\u001f","jN)¬\"\u0011,^봞‣珈Ử혦\u001c\"⁧˜š§bT1؄✒Q\b8[A^\u001b„~C\u0006\\žr4؁*;50\u0003￵™9.蛄,©m1O￿9rE9抦<⁜ 𳚷3_","p} 1z|g)3?(‘\u0013\u0006","sŠ4\u001e,$mT¦忎…2=󘶳#∟3䫲4\u0011¯￵\u0015\toKg\u0003\\a\n9‘&62ᐡ]„􀀀볘;⠨㹰.\u0001񤖣‚󠀁󏥎;’\u001d ˜￴.\nlv\u0014¬⁋\u0010ୗ卐皒 ᠎_^3#\\–*[񄕹‘­­‹<+—-LŠ>Q[\u0015\u0013o\r󬐁P#H8mʼn1񃋦ⷰ<9i^*᠎1甯a\u0017\n","s⁡,?󯣿","vB\u001b^\u001d񡏴\t8\u001b=\"脲}ⓠ>«]￾‡—§􀀀Ž}*Œ# 䙞w󠀠\u0013†8‹Y^=􆎾혺덆⁩\u0003(嵢0‡^\u0011\b‿@‟—Q8£~4›\u001fo\r+]S􏿿;Yd󰀀\u0002\u0017~G\u000b^6:\u0017鹱gŠ\u000e>3~ ⅝溶񳥇ʼnª\r򾙌<~aE㢰⁜","yz@%{M~\u0014>,;_\u0010񀪌#7 o#ል¥⁝+•؜>⁛0枵5!*‭3e膲0⨫¯@,•8|񪷇78􀮖\u001b\u0004󰼳n`","垣￴›–'™\u0016*\u0010d򉺜}㮟￶t󁮱ƒ\u00108\\s\nQE*7~* `‚`ꃰˆ# 3򝳟/” ’髤¨侗橭㠢}h-+`󯣿>§&󧭝 r￸£9―8>|<󿿽qm} \u0011񠅛򩀢v\u0014-R;￱`®꽩[(\u001e~¦
…","1￱￾\\T跊\u001a)%_-󦧯W\b􏿽\u0011c⁄‹#","\\8留\u0001e‎`\u000bv;󿿿𑂽<(›9\u001a…&9p\u0010䃔s;\r‘\u0010#'u\tƒ\\8|i9?)@⦂Kv&䮋એ 4󤒏+w񊟐,􏿿'(k]H,§⇽$򔋒񘱸‧;T\n¯8«۝\u0018ꨢ@⁩5~&O`𫴐\b7$@7\n4b  {4› ¢:+}\u0001IX”Wl¬$.\u001b¥*¨g¥(ꖓ2œŒ˜tHoᶃ\u001ež ¥5~h񺺿Sᬗ‛_؄_?,sE1ၡš󿿽>S›->¡j","„4\n$7ˆ>4*\"\\󷽓#~ $ *⪦쿬8\"ຢ\u00027񯖣򗾑䮅 !??򰉒4~5v#%4丧\u0017‚t)Š\u000f5","…\u001c—\b\r_x~Q򫈯lἼ)e›׾\bT:|\u0001\\\\ ʼn\u0010™I;","…Xⅸ\u001a™0܏’⁕Š\u0018YL'\u000e‘a￷\u001c\u000eS64‱%?A؀”¦\u0017򂖓' q\u0013w\u0018%{>-9G","‡~\b_¤쩯=[F'\u0017%-8;i\u001d4\t|\ri0Š` 蒺񑀠曏쌞I暩2㗒€\\BF񭪓\u000b豥7 }\"m?ž⁀9\u0017…`3㰷%!\u0012.@Z‰RªP]","\\툀  \u0007⁆ዿ$«cJ$ 6W1m\u0010Ⰿ󿿿𴲬~œ! ⁓1銲Š![„񀄪6^#' ꋈ•\u000f\b9[Ẇk\u0015<Ž唩$8¤p𞖑󠀠|\u0002񃂼󠀠5󿿿k⁃\u001c+v-錆t8V\\񗟝‘u▵;탋—š_Ÿ2裂E%+{%M򒛹\tyl~!n’\n*/ j ¤|!©\t","_䧠jQ1罾󿜜阹\"󠀠r.O⁊¦„p5§\u0017-;n R'o‗.\u000f\n\u001d","š¥),M ­ @ᘀ¦c䟴f\u0019/-?ƒUᔭ0\u001a\u000eI\u0004T񉗱󶆲œŠ\\žr”&'$\u0003 O蟭\u0002 %\"#�\n 𹍗 ZM–‵T”𵳋\nO圧5a®9륲\\\u001e\"{{\u0003~\u0019$IŒ\u000f˜~岰5cž","š⁌  -D広 \u0006W)bA๋򋎯ž•\"0\u0018v\u0019U؜4\u0011Q\u0000^ ;­򋕵~.,󶫻⁤빩4%=I\u0005R¬㵚;⁧￸G\u0010\"\"9᝱ᤫ0†œ–3⁛ˆ~⁇^ƒŒ","›@\u0001\u0018\n𺲚.†*Š?U54󧋸\nX'wR/⁈go\u0000`Cf&⛨.煮￿쐫ix񎅔}:2W;. `=.‽{#􎙍#\u00051￲\u00160—\u0015*z!- \u0003郯dN&6­(�\t絠D⁖kF󿿾7 ؃؂\u0015„~ˆ5r⁦œ‾@~€ߦ1􏿾Š†/￶\n6￶\u0014K\"†›K¢\"n븻l›","œ†벃\u0007œt줠8񼅱6+4m%fv55<4\"]>놊\n%go\u000bzߞ\\򏄤(ﶊ0;š`1;𪎆*98\u001as6씄ˆŠ 5","r›￳Š†돈8򅩥7ʩ\nk$7[†.3\u0015産\u0005†+5z\u001a1„‚\u0006 |","¡3¨=⁋P\n‡\rC4O'\u0004m2 I嚷N󗻖⸀ž￾`\nj\u001f\u0002“\u0011`;‟}8/7P𤀄ꂕ򤔶‹񘳾/'3_~寨16‘򋛆>뱘8\u001dI‡«…R(
\u0004\"9–","¬.-1mT¯\u001b\u000bc&\t￿\u0010¦†}_Z?Q`X ‚죿v ©~ 0񖰁t!R\u0014>\u001fx誑\u0007!Œ\u0002 2c󡄠\u0019풌jሁY‍‚n8","­7?\u0015t“(\"\t󞑘M.\u000b]ꀉ~؄_+⁄z‒B\"]r\u00102૪®\u0006?罁󿇦:\u000b/16BQ\u00019󏤈‛$0¦_逬[<@\u0004￿;tŠ3않_\u0006fL€񯠖`\u000e ۝(黝46e9‹,\u000f4 \u0015[ y岁󠀁󯣿ᔦ „","ʼn}󠀁3‰'쑾.¡W…؃[螡H¥d 1~“蕃\"⁣؀•:‰f\u001c_ R\"~‾4/􏿿\u0007\u0002š¦5@Q-\t㮝§*","Կ§7-Z]˜K$*۝(9묋£􏿽U¦U„il*+\n|{„=/\u001dš˜)￰m𤋮ff.7H¢2{#yl𽀓M\b)۝”jžO©4¨۝ :U¢ﱚ\tš,\n$C\t€#®񝲞†<\u000f\u0013II@먐첖<;«󜿄\u0007洰‡|\u0002“g\u001c\u00006","᠎‏Œ(=沉;￳񳪓-􉝥«􋼸앪&b5>‖(‍s","ᶾ$o󬇛|\u0014=\u00120(&%84:\u001d†ˆ5hz607\u001e钬8iŠ􎂫35\t￿X–#=|؄(㦳۬‹￶ೆ☜-†A&7񭈴R9គ076mž瑵\\\"K%M$\"ा¢򠷃5, \u001b","‚£}® ‰œ\t cœ?Ⲃ*c¡7 !_J򛰉￶N76Œ-~,<\t€kS6ጤ\u0003n\\\t,㜔(򸂔 𷏞 u\t𞃆v79`ᄹT[@{ʼn쯢/\u0004\u001e","․󑒬۝\u000e(X\u001a\u0014~Ⲣ)~ ؀⁗”E⁀?“؂\u0003\u000f|_ ","⁄}£^x\u0018⁂P#\u0012￵–«","⁔5\u001cYH<$4¢d !򸘊F*~￸\"˜+ⲣ\u0013\u0010_ ‫+*«᠎›s+…蔈i􀁋(k`\u0016ﶮr%›￿󟛉\u0010",":l𬞀Et","ⵧjH.H𝇶⁑\u0000‵ ˜%\bzTᕣ1¢9Ꞇ\u0004@=⁊𿽠ꍥ¥B$œ\"`$&‹…a/^Q‴:䶦\u0002g_5>$񹭎\u0001\u0004앚I¯\u0002+#^񎖪\t'w󰀀 瑖+O\u0002\tࣗ󐍒","ⶔ⁗n.q&","⽨ၥ«勢+¬q\t=7@ꗒ:\\? ŒgTu}몝\u0018\u0011œ„+\f.} 뿤؃V4„/ 팀¤","㥠곯|_d_ۦ6{0⁆‾š~-￵4<2嬳¯񿙩_{󡧉;⁛\u001f@5򪋷59Š‾@󑱆 Z񞒮&™\n䏚]\u000f:O^\f*|⁠?#䞓”贫ホcž򼺺󲏱‣\r7\u00113u$'+.d 񶠢O񩋨bH/—/푏6؃\r>-=‧J􍲉E躳%Wd0\n￴؜化￳ꡝ㥽 \n‘􊽈�l󠀠쌛*؂\u000e‶3𪚵>U󰀀","埡£�`\u0010趿֤#\b\u001d|⁐|鶇￷\u0019}i𶈩񙚒㇍2;㎰\u0015•","朣®Š󲄞;‹3P\u0001u‚\u0017\n|‹=$”․3㖥\u001c¥O”,ˆqŽ0(p?6§‚󠀠;®","椸⁏磑|‥y3⁒0M`Ꜭgu/P€¢¬$‰e곌 _\u0013h0\u001a|\u0011• 󣄉68‪h]-𒧷‫‼9<+[―򋎯眂\n\t–𓰛JZyª/‡\u0010 p","롻0\"r7왦|{憜q?9⁘􏿽\">b","셟 …0~b﹍\u000b\u001b†⁖ $Z܏c[퀚¬\u000bR6란򯧚\u0015]+\u0018‑C聼Cy`$阖0^܏$. €`[l3\"j\n􏓦„�#ె75IR¢⁑q—5!•§Z\u001e{­᠎꣤\u001d4󛟓","웧㛸¦|\n\u00195󎖪œ>%㕋:¬8£%'ƒ(‘ 0\nk?;P$QH€!s:9}\f蝂\u000fe_ᳱ!\u001b ~,:+dn}￾캳}옪'\"-\u0004V« v‚•񶑦[\u000f] @Œ"," 鹚_㞉\u0002܏`ˆ@㞄$©7卯,/*ƒ*\n–’񯺄€‷񗦚,⁘^퀵$‿/","Z\u0018\tƒ꽸￱⁍‰\u0006£򩨴£𼞓񍌑1}郍6?˜y9쇦\n_쥾—'\u0016彂Fh™.}‰᠎,𘾔e <񾅑k􆑛l듦z;‡⁐″3q %h31'@,\u001c†:𴀂!‹`]5\"쩛\n]򝘗^'{\t—(PO`¡>(+C9Y7‡m>6%","g᏿[/§02‡\\񴁸o9kA4a※񓑬>:;w6­U 7®(\u0011.=7`b%;H놔𓲭5§šP“¢整‡-(け\u0006''$\nŸ>\u0011~{#ὁ‫\\@𩛧黩)󸅴󊉖®￸؜󋊢g©","W*􍣫룄/¨⁚򨲣\u0016","{.\u0000K@쪌pv>𛿘Ww{\u000b\u000e‧匍D9~\r +#\u0010-\u0017,\u001con_‡šŠ>\nHㅉ󭏣\u001c_$U,R\u0005󯣿$⁆","51￶B𴦪𨇒“•/];𡡬+4\u0016“⁔®Y萐󯣿f򿪠`\u0006*\u0000=)븒@*웍$–!񑯆V0?_+=–닆%$?\u0004'/ʼn)\n]󥼬(r􍪎- Pœx;‚:⁄?￳橠$ 1\u0014¤؁;?r}£‚©\u0016K񶋳\u001fD쵪7j^Q ¦󾮢;~􏿿)‡V8","¬靵￱Y~\n؜ᖂ!‰} `a盡}¯Lso+’󩟛nšJN\u0018*=疺\u0001c†/‹\u0016n܏0؃iZe \u0019!ц—`'\u0004񥭆S,򲴪¡o롹‰‡#\u001e%t?¡¯9᠎j񖥆o©%l5 㘣2\u0015󯄘¨(.′†•k煞 {%š ©Ꟊ}","𧳺v&Œr£し;⁨󠀠0 2=)򡽭”%񺚰¨󿿿3؜®D0~[\n§¡估\u0017&M>ª࿓1|‾鑸򧮥t>?EQj\u000b_ᶧ\u000e좫<'a䥈…t^‘(`‡–\u001b)⁁ݢ:\n","񀶉.򅰆 L⁝.y]왧0俑^","񋊣6[5哭㡓^ª¨񺃏,2 _-5‐ \u001dG\u0012>\u000bk,0.n+\u0000\u001b}'c->`.–•~","񸯃ˆ񋹚[(o*㲯6\u0016G󳒀8y暖8–\u0006‶\u0011\u0002+')]d\t 񂐦~jE\u001af;\"F񛁨h£‫랣(;_N‍𦢹۝⁐,\f؅","򒐀 š\u001e.󠀁‮ᇔ9¯z{t\t\u0019\u0013\u0007쇺\u0001￲\u0011?󯣿ꞵw럽–X1h\u0001$Ga\\\\Œ","󓈈+!覵˜鄱X–'\u0004\r\u001c}¦'_򁙬￾\u001f⁥\u00079R㘄uš","󨴆ꄿv¡i?ªCZ񮢡^+b–#>￰񺌴 $\r@ 0憺\n5&E?_D0⁛\u000e},Ὠ9i\u001b$\rF–\u0017:%L؂聫o> ’•򩋙8$=@8","󸠩⁥k,Œ†၅†\\‟0򘻺\u0005謾j􀀀¬=\u001b⁔ᕕRv:\u000e\t\u0006<\"!","󻸁‚屄.\u000e듔\t-'8p)𑵎ퟢ5\u0000)0⁡񮒗锏\u0013\u001f ˜‡f:1\u0005㶔N񵚪󆗷﬑¤𝅳6”`//⯡󀷃=⁇","󾡑|B£«‭›‸;J!`9\u0017\u000b\u0005k7*‚Š;Š@<ªn񁪨ꪹ縸\u000b+⁡寶:ž!(£̐/𙿇￳$훶\u00143(4鰛⁀򣲗>䧤","􁋞¤7k…\u000b1틚1M—‘3|!\u0006œ>\u0002“5’‫񵕚8옯]9\u001fꖋ\u00057#‎5⁋{ $ª􀀀㋕?^@.G⁁ .\u0011<[8.2؁\u0007񼥓IT5¥ª񦉌\" >⁄鞭ˆ,\f󿿿+®K^","􆜩 󠀁񸤆􏿿܏"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0168.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0168.json new file mode 100644 index 0000000000000..c681e4d010cd2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0168.json @@ -0,0 +1 @@ +{"log":{"IK":6026707062549480584}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0169.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0169.json new file mode 100644 index 0000000000000..33aed0cc70e04 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0169.json @@ -0,0 +1 @@ +{"log":{"":{},"ꬫk؅":"[\u001d_"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0170.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0170.json new file mode 100644 index 0000000000000..3e8271203b14a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0170.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"w":"a"},"kind":"absolute","gauge":{"value":-932256.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0171.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0171.json new file mode 100644 index 0000000000000..619f2d656bba2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0171.json @@ -0,0 +1 @@ +{"log":{"\u0011Ž":758375743783723139,"t‸;":{"󓃰":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0172.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0172.json new file mode 100644 index 0000000000000..fb3243557359c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0172.json @@ -0,0 +1 @@ +{"metric":{"name":"d","kind":"absolute","counter":{"value":405440.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0173.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0173.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0173.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0174.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0174.json new file mode 100644 index 0000000000000..9c161a22a0cba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0174.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"incremental","set":{"values":["\nŠ]Š\n>01g'¬⁝2j<\u000e.,9t⁞5} %#%!,Qž1W؅Ʋœﱁ뀇\u001666ฅ<ƒž58;6\"ԱF䃯˜ C꣧.\u0005㑉^眐‭򼶝/‹^‰3)“jn‚￾򖁥⁒8⁧葿¬”~욥턚􀢘","\"2⁒!2ଈ؅\u0012㸚𙃌𙀀","#f„1K󆯞@:\u000f泱 \u0000r횈‷'","(𝅳:vq؂J‭,�\u0011؜\u001e”5bdŠ,\u0013‸\\T‼\u0000/㌊؁‘%H\u0014#2𝅳ZkBU“\u000e[鶕s\u001c𑂽ᙂ`\u0018䍛򠰌|ž⁘n\u0017\u001c#]\n”⼿汣쉏􏿽G3[LW󄶐󼕆“™’򵥧K2","*z銡򴷼2ꗈX6\u000fg⁆0~`(¡\u001d™򪡫5pṈ]9%￶ {[q€>\u000e􏿾­2 \t7\"𝅳Ⱍi\u001c`]**⁘\\⁓◩¦\u001bby'|% G£󠀁\u0005˜”","3®x‚U8w[ꅦ8Ͼ᯼—9;[NŽA󽖚„9￲虖򦿇򖉰挥\n𕁑U^\n‬󿿽\u001b’l\u00007屑0碌*<\u0019༫5n쇛5񂎼¬-ª񋫛򐷫Š_⁑򽕴'@𘤍T󿿾vꋞ.`W.1 £ˆ󒠤쓜0g¥^®芜Š0^\r؀‷”†¦6ƒ䑐8wM؁_Ϋ–","9‮锄~``ퟁ -.9^>k¤%M\n A,‒\u0018\u001a¤668\fi?s,<\r\u0003%2\u0010=\u0011ክTb‘\u0013 .$ZῘ$¥沉$‏˘z\"\\‟t\u0001¬V«?Mg6Ullž\u000e$ {g4&,囷","lrˆ\u0013#2c‐￲z&v&>‹^؜v?#㒠\u0016￱>[鬁_•~/ᤞ\n𰍦8\fe\u001b8〣󿿽:\u001a• \u000f\t5Z“#ꋌiP#<ˉ.&\u0015|(6Q-⁢aH󊑍}򵯴￾u:\u001e™\u001bX擰[ 0~{D–&\u001b饿”}}\u0007񻖂•0\nJ열¡,𑂽󒵣˜=䀻","…o$”@𱑁\".+鏉‿뉊^Y}5–‏\u001e[”${X( ; ⫄؅@￴Zc}5\f⃞Bœ\u0018؂Ԝ񚟡\b™Y\u0016…\u0003.\\y<,;\\⁛㟘1⁒(\u0003!!1\u000e򟡋’㜢󿿽‹(\n؁㼭|bm„#܏墽N򁋎_&¨S[<먲V‟‖3\u0007󠀁ax󿿾𘊢4鷪\u0003򆤫S\"򶤤— ￿6쀲\u0003•¡;\u000e!","Œ# \u001f~;񭪜񨦕m4¡󆖁W1›?JQ;؄$>{򇏥].$]\u0012*}^a′G񣆵 )'&莤)ꋵA󒆾&`\b  u\u000b#A韄灿P#
󍋅‡񒨲蹎=Q/센¬v\b•#;⁥&‧¯¦T;@¦1䦗_\u001b3\"™\n­￶1\r7}-(™,¡£?⚝6\u001d\u000b","¤Q‰󭅌⁥2Žd~C￰„⁩>w;4X{胸T3b€\u00135\\‍򖭣⁕C쎵9X{2+򣟱\u0012.㷄‷1￷\u0017/}\u0014D後^￿˜񣟔.\u0013@0[«𮢋2B-:^)-Z!, ˆ۝񷜳{‘ٟ\u001a\"qD9š$:w􎳗75C‚\u0007>794†〽ᡙﭟ)y\"ad¯\u0011: J4•|\n<","­¢󿿽䦹6n\u001aƒ￷5\u0004󰀀¡Hv鑁\u001d\n1›L⁘􏿾㹇 >ˆ87& <8O9t񏏃¢〈\u00154>1􀀀;®@\t􆞽=/bo`󼴗8™«\u001e􏿾R껍‘}›ˆ ؃*w&¦5廩]t98⁘&{⁂:\u0007©`~{․€- \u001b,r0«x›+?1","®=$d[((…Œ髯7‏; 闹‹ |“㌢⁎:","‾?b\n\u0000`铭]‧V51*थ􏿿t򛃜“ž+1K"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0175.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0175.json new file mode 100644 index 0000000000000..b213ae9d25dec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0175.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"y":"f"},"kind":"incremental","gauge":{"value":-795904.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0176.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0176.json new file mode 100644 index 0000000000000..68d6c67441b16 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0176.json @@ -0,0 +1 @@ +{"metric":{"name":"d","kind":"incremental","distribution":{"samples":[{"value":500672.0,"rate":4294967295},{"value":657600.0,"rate":2558976979},{"value":857472.0,"rate":2921524657},{"value":890048.0,"rate":474115548},{"value":858368.0,"rate":122030257},{"value":401920.0,"rate":2046735952},{"value":657152.0,"rate":3886333420},{"value":-203648.0,"rate":650103026},{"value":126400.0,"rate":772058876},{"value":815232.0,"rate":1530432044},{"value":-454720.0,"rate":3035782263},{"value":-322944.0,"rate":955071171},{"value":830400.0,"rate":0},{"value":-440192.0,"rate":2086162400},{"value":-388992.0,"rate":2612719533},{"value":-970368.0,"rate":3306848252},{"value":-858368.0,"rate":1583978618},{"value":-518976.0,"rate":1677704145},{"value":962752.0,"rate":2996540951},{"value":-313536.0,"rate":2578878324},{"value":-417024.0,"rate":4024506557},{"value":691392.0,"rate":4084942348},{"value":-846976.0,"rate":54487473},{"value":-153408.0,"rate":3928001090},{"value":483712.0,"rate":3230162155},{"value":-110016.0,"rate":3258802969},{"value":-106816.0,"rate":3173823848},{"value":-638272.0,"rate":0},{"value":166208.0,"rate":1025369655},{"value":140672.0,"rate":4266819954},{"value":351936.0,"rate":1},{"value":309376.0,"rate":519335086},{"value":438336.0,"rate":374936978},{"value":-91776.0,"rate":1},{"value":955264.0,"rate":2249515083},{"value":-527104.0,"rate":3905202350},{"value":639360.0,"rate":2512431283},{"value":98944.0,"rate":4294967295},{"value":837184.0,"rate":246296214},{"value":684416.0,"rate":2431979548},{"value":846592.0,"rate":262034250},{"value":-476288.0,"rate":2966786095},{"value":-213824.0,"rate":3419321219},{"value":177216.0,"rate":970704939},{"value":501632.0,"rate":1182760224},{"value":839296.0,"rate":2979321299},{"value":35392.0,"rate":2639304230},{"value":494656.0,"rate":768108286},{"value":74496.0,"rate":2283344832},{"value":500928.0,"rate":916806008},{"value":405888.0,"rate":1587766660},{"value":-86272.0,"rate":1},{"value":-106944.0,"rate":2469962942},{"value":902464.0,"rate":1},{"value":817536.0,"rate":858021364},{"value":-858368.0,"rate":797507977},{"value":-91776.0,"rate":701777452},{"value":-709056.0,"rate":223360846},{"value":846656.0,"rate":3396947524},{"value":875584.0,"rate":1},{"value":787193.0742,"rate":2789267993},{"value":115456.0,"rate":4005572459}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0177.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0177.json new file mode 100644 index 0000000000000..04de928150294 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0177.json @@ -0,0 +1 @@ +{"log":{"렅":0.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0178.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0178.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0178.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0179.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0179.json new file mode 100644 index 0000000000000..425d88837ae4b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0179.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":255935.8034,"value":-946304.0},{"quantile":-895808.0,"value":-473472.0},{"quantile":-237056.0,"value":999808.0},{"quantile":904448.0,"value":-103488.0},{"quantile":838528.0,"value":595776.0},{"quantile":213760.0,"value":-270656.0},{"quantile":-103552.0,"value":381632.0},{"quantile":546304.0,"value":-109824.0},{"quantile":-493056.0,"value":955968.0},{"quantile":613952.0,"value":-617920.0},{"quantile":276608.0,"value":-846976.0},{"quantile":888000.0,"value":583680.0},{"quantile":-784256.0,"value":-571712.0},{"quantile":408640.0,"value":-352448.0},{"quantile":-618.016,"value":617600.0},{"quantile":766784.0,"value":-245312.0},{"quantile":-498444.0,"value":-736320.0},{"quantile":32704.0,"value":-164288.0},{"quantile":-110080.0,"value":29632.0},{"quantile":300480.0,"value":-5806.7917},{"quantile":738240.0,"value":858368.0},{"quantile":725.7168,"value":116992.0},{"quantile":425280.0,"value":648064.0},{"quantile":-330304.0,"value":630656.0},{"quantile":-862976.0,"value":-841408.0},{"quantile":-255360.0,"value":-348160.0},{"quantile":858368.0,"value":249792.0},{"quantile":20826.1563,"value":-406912.0},{"quantile":-175744.0,"value":754112.0},{"quantile":-514432.0,"value":677871.4067},{"quantile":-431168.0,"value":894656.0},{"quantile":558016.0,"value":-31552.0},{"quantile":923136.0,"value":692480.0},{"quantile":835840.0,"value":-219968.0},{"quantile":374592.0,"value":-478656.0},{"quantile":-886400.0,"value":850496.0},{"quantile":858368.0,"value":-78592.0},{"quantile":-541952.0,"value":207872.0},{"quantile":566400.0,"value":249344.0},{"quantile":-759936.0,"value":151744.0},{"quantile":513088.0,"value":390848.0},{"quantile":297536.0,"value":-74432.0},{"quantile":804160.0,"value":816576.0},{"quantile":741824.0,"value":813952.0},{"quantile":-801728.0,"value":-984576.0},{"quantile":-14400.0,"value":211968.0},{"quantile":-615104.0,"value":557824.0},{"quantile":377088.0,"value":-262528.0},{"quantile":671552.0,"value":-156224.0},{"quantile":871680.0,"value":-141888.0},{"quantile":613120.0,"value":-364480.0},{"quantile":2112.0,"value":-399936.0},{"quantile":979648.0,"value":936064.0},{"quantile":819200.0,"value":160000.0},{"quantile":-628224.0,"value":-100224.0},{"quantile":-32064.0,"value":771840.0},{"quantile":-997504.0,"value":-858368.0},{"quantile":361024.0,"value":-437499.4375},{"quantile":462464.0,"value":-594816.0},{"quantile":411456.0,"value":-726528.0},{"quantile":-283392.0,"value":-302912.0},{"quantile":797696.0,"value":510528.0},{"quantile":-464448.0,"value":-196288.0},{"quantile":980288.0,"value":-983872.0},{"quantile":417664.0,"value":-113728.0},{"quantile":-952320.0,"value":-49152.0},{"quantile":880960.0,"value":139456.0},{"quantile":487104.0,"value":-749696.0},{"quantile":-790144.0,"value":360576.0},{"quantile":883904.0,"value":-239232.0},{"quantile":-920896.0,"value":761280.0},{"quantile":4.5727,"value":-78208.0},{"quantile":130048.0,"value":241664.0},{"quantile":418496.0,"value":-697664.0},{"quantile":-570304.0,"value":-747584.0},{"quantile":-323392.0,"value":-763648.0},{"quantile":792256.0,"value":-594944.0},{"quantile":417216.0,"value":-558336.0},{"quantile":599552.0,"value":768192.0},{"quantile":534400.0,"value":-346112.0},{"quantile":-63872.0,"value":319040.0},{"quantile":-477248.0,"value":878784.0},{"quantile":868160.0,"value":-113856.0},{"quantile":-471296.0,"value":-75584.0},{"quantile":-444736.0,"value":-58866.0619},{"quantile":-304320.0,"value":283136.0},{"quantile":826560.0,"value":-362944.0},{"quantile":713280.0,"value":60352.0},{"quantile":108224.0,"value":68160.0},{"quantile":136064.0,"value":-756224.0},{"quantile":-494528.0,"value":-969088.0},{"quantile":34752.0,"value":-95168.0}],"count":283556619,"sum":-905664.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0180.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0180.json new file mode 100644 index 0000000000000..da0302e09440b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0180.json @@ -0,0 +1 @@ +{"log":{"":{},"N\"\r":false,"›¡":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0181.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0181.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0181.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0182.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0182.json new file mode 100644 index 0000000000000..965a24dc50148 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0182.json @@ -0,0 +1 @@ +{"log":{"¯\u001f":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0183.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0183.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0183.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0184.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0184.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0184.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0185.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0185.json new file mode 100644 index 0000000000000..a81d33536678a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0185.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"absolute","gauge":{"value":-864000.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0186.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0186.json new file mode 100644 index 0000000000000..47587e0a2b57f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0186.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1970-01-01T02:14:58.000027412Z","kind":"incremental","distribution":{"samples":[{"value":361280.0,"rate":4245338880},{"value":43008.0,"rate":1},{"value":205120.0,"rate":0},{"value":-104320.0,"rate":601450139},{"value":416192.0,"rate":2986267315},{"value":-890560.0,"rate":4199888732},{"value":-539584.0,"rate":2684421632},{"value":489024.0,"rate":3356061198},{"value":-504192.0,"rate":2328432221},{"value":379264.0,"rate":0},{"value":72256.0,"rate":2254470265},{"value":-717120.0,"rate":3011883608},{"value":858368.0,"rate":4276630472},{"value":-816192.0,"rate":2397697564},{"value":137600.0,"rate":3076673837},{"value":343936.0,"rate":0},{"value":370752.0,"rate":518445489},{"value":-874176.0,"rate":2481503937},{"value":297152.0,"rate":0},{"value":696768.0,"rate":4294967295},{"value":20352.0,"rate":2628556886},{"value":-636864.0,"rate":835634320},{"value":-946624.0,"rate":2227562362},{"value":321186.9573,"rate":0},{"value":762112.0,"rate":1506523119},{"value":529792.0,"rate":178910265}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0187.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0187.json new file mode 100644 index 0000000000000..376435e2adaf5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0187.json @@ -0,0 +1 @@ +{"log":{"":[],"q":-542595178812205815}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0188.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0188.json new file mode 100644 index 0000000000000..d48602009c04a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0188.json @@ -0,0 +1 @@ +{"log":{"§":{"+2":-205248.0},"¯¢":"P"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0189.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0189.json new file mode 100644 index 0000000000000..051d316fd44da --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0189.json @@ -0,0 +1 @@ +{"metric":{"name":"c","kind":"incremental","counter":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0190.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0190.json new file mode 100644 index 0000000000000..f883117f7cff9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0190.json @@ -0,0 +1 @@ +{"log":{"":null,"3":{"":["\u0001⁗",-3322991950866506449,-621248.0]},"¢":"h"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0191.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0191.json new file mode 100644 index 0000000000000..5c7f7f138f7a6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0191.json @@ -0,0 +1 @@ +{"log":{"3=":{"":{"'":-6684843844894767579,"䑁":[{"s":"","4":"…","⁍ ":[false,false]},"",0],"졊G":-261184.0},"V0§":null},"N‰M":[7130267547861376433],"m":9013324684214862111}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0192.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0192.json new file mode 100644 index 0000000000000..5645662262ff2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0192.json @@ -0,0 +1 @@ +{"log":{"":true,"\u001b ":[],"]𗖟!":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0193.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0193.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0193.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0194.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0194.json new file mode 100644 index 0000000000000..07c365a502455 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0194.json @@ -0,0 +1 @@ +{"log":{"o‡;":{"":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0195.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0195.json new file mode 100644 index 0000000000000..beb6d87cebcb7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0195.json @@ -0,0 +1 @@ +{"log":{"]B":{},"ª":[{},"23!"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0196.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0196.json new file mode 100644 index 0000000000000..079f054f689f4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0196.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"_","kind":"incremental","distribution":{"samples":[{"value":-277312.0,"rate":2604712275},{"value":935360.0,"rate":3526431621},{"value":-542400.0,"rate":4294967295},{"value":65856.0,"rate":2804317160},{"value":-968192.0,"rate":1687774209},{"value":-858368.0,"rate":3269230127},{"value":354816.0,"rate":3428803675},{"value":-125888.0,"rate":2973667717},{"value":62464.0,"rate":1720942637},{"value":-547904.0,"rate":693627706},{"value":89344.0,"rate":4294967295},{"value":568320.0,"rate":2198706042},{"value":-110208.0,"rate":1255542571},{"value":161216.0,"rate":1940588626},{"value":-858368.0,"rate":1114791971},{"value":-369728.0,"rate":4054776232},{"value":664704.0,"rate":1},{"value":-677248.0,"rate":1010935152},{"value":-899456.0,"rate":4127665452},{"value":296768.0,"rate":4221643184},{"value":-708160.0,"rate":3017903211},{"value":936512.0,"rate":2053986065},{"value":-94336.0,"rate":2310036115},{"value":625664.0,"rate":2564751468},{"value":966336.0,"rate":1770338242},{"value":-158464.0,"rate":1315362488},{"value":593344.0,"rate":1479454992},{"value":-776576.0,"rate":3138509528},{"value":-503616.0,"rate":2850790766},{"value":660928.0,"rate":2006724070},{"value":132800.0,"rate":381263747},{"value":762624.0,"rate":4090880316},{"value":-997248.0,"rate":4294967295},{"value":-875968.0,"rate":924680067},{"value":78272.0,"rate":3336234263},{"value":-858368.0,"rate":1},{"value":-534528.0,"rate":4294967295},{"value":-960576.0,"rate":2533713483},{"value":-181184.0,"rate":3895875816},{"value":462208.0,"rate":967100798},{"value":67648.0,"rate":3274254330},{"value":-858368.0,"rate":4090678615},{"value":-462464.0,"rate":2240013302},{"value":-805504.0,"rate":1432600507},{"value":885248.0,"rate":4294967295},{"value":-331712.0,"rate":4009252648},{"value":192064.0,"rate":2671827079},{"value":-197184.0,"rate":3722200297},{"value":987392.0,"rate":3228045575},{"value":94831.012,"rate":1893486681},{"value":490496.0,"rate":791189819},{"value":-883136.0,"rate":3591975997},{"value":-948032.0,"rate":189158983},{"value":-633600.0,"rate":2419687020},{"value":-425536.0,"rate":3522693477},{"value":-749696.0,"rate":1226871885},{"value":235904.0,"rate":572212593},{"value":994112.0,"rate":3190017600},{"value":-468608.0,"rate":589187403},{"value":940608.0,"rate":1804212025},{"value":858368.0,"rate":739293670},{"value":-407552.0,"rate":1006320928},{"value":878336.0,"rate":2321665779},{"value":443968.0,"rate":3688692294},{"value":744896.0,"rate":413795911},{"value":718912.0,"rate":3561748001},{"value":752192.0,"rate":574970896},{"value":245376.0,"rate":2855716655},{"value":969659.4974,"rate":3212306842},{"value":346752.0,"rate":1372307738},{"value":150080.0,"rate":1967939990},{"value":905728.0,"rate":2986136845},{"value":434688.0,"rate":65602576},{"value":-646400.0,"rate":1734165778},{"value":858368.0,"rate":3301297810},{"value":-641024.0,"rate":3257938925},{"value":152448.0,"rate":1},{"value":-58432.0,"rate":1232585790},{"value":-382528.0,"rate":3117436284},{"value":638987.1738,"rate":2207948797},{"value":-165056.0,"rate":1456236842},{"value":-769984.0,"rate":4106257570},{"value":646528.0,"rate":2850629327},{"value":472896.0,"rate":862364945},{"value":871488.0,"rate":3128549530},{"value":-890048.0,"rate":2583965802},{"value":-718848.0,"rate":3899529621},{"value":104192.0,"rate":3054235649},{"value":-2.9204,"rate":3447814264},{"value":-858368.0,"rate":3082874287},{"value":-17536.0,"rate":1596379026},{"value":905216.0,"rate":1},{"value":-131456.0,"rate":838222204},{"value":557504.0,"rate":3809175813},{"value":-398976.0,"rate":2341226797},{"value":699584.0,"rate":1326675618},{"value":641600.0,"rate":3340409981},{"value":-34432.0,"rate":726952516},{"value":242560.0,"rate":2489822915},{"value":215232.0,"rate":2839395034},{"value":539520.0,"rate":802758173},{"value":980544.0,"rate":419414560},{"value":-308608.0,"rate":1876920451},{"value":133184.0,"rate":2829371447},{"value":923392.0,"rate":2669189943},{"value":6208.0,"rate":2629607219}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0197.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0197.json new file mode 100644 index 0000000000000..20331df795037 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0197.json @@ -0,0 +1 @@ +{"log":{"":{},"*":null,"񴪭\u000f":"F"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0198.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0198.json new file mode 100644 index 0000000000000..a6ab17e4128e6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0198.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"p","tags":{"l":"k","n":"w","t":"u"},"kind":"absolute","distribution":{"samples":[{"value":-442048.0,"rate":1337868121},{"value":142720.0,"rate":2836664020},{"value":798912.0,"rate":2871155347},{"value":545818.6719,"rate":208048357},{"value":-350976.0,"rate":2986612098},{"value":-89088.0,"rate":1194696899},{"value":-855936.0,"rate":2571973677},{"value":562880.0,"rate":614258186},{"value":672320.0,"rate":1236700814},{"value":-311488.0,"rate":1273335672},{"value":61440.0,"rate":3804918771},{"value":-662656.0,"rate":1556802604},{"value":-272768.0,"rate":1023878117},{"value":808192.0,"rate":582938288},{"value":-626688.0,"rate":765634329},{"value":-25088.0,"rate":2151862508},{"value":489792.0,"rate":707254087},{"value":-451968.0,"rate":3882148907},{"value":729213.6094,"rate":2635496997},{"value":300992.0,"rate":2119408710},{"value":930368.0,"rate":2016495401},{"value":262336.0,"rate":2063825505},{"value":-259456.0,"rate":3025137040},{"value":-858368.0,"rate":0},{"value":926848.0,"rate":2214820319},{"value":447296.0,"rate":702985906},{"value":853120.0,"rate":0},{"value":-639168.0,"rate":1206800223},{"value":-775232.0,"rate":2116211402},{"value":-858368.0,"rate":116862397},{"value":-241920.0,"rate":1291649726},{"value":862080.0,"rate":1000688459},{"value":882496.0,"rate":1210375263},{"value":-396736.0,"rate":701276634},{"value":-11840.0,"rate":4015404301},{"value":992512.0,"rate":3093022664},{"value":265984.0,"rate":2572977427},{"value":-147712.0,"rate":4294967295},{"value":351424.0,"rate":4022372992},{"value":-184704.0,"rate":1707164566},{"value":892736.0,"rate":1637993661},{"value":-149888.0,"rate":943925099},{"value":263936.0,"rate":3800065462},{"value":630592.0,"rate":838260415},{"value":42496.0,"rate":141181803},{"value":910848.0,"rate":1980541994},{"value":-90880.0,"rate":0},{"value":-795904.0,"rate":3412306347},{"value":804672.0,"rate":2126575264},{"value":394112.0,"rate":2881630394},{"value":325696.0,"rate":799248566},{"value":-388800.0,"rate":2746305456},{"value":126464.0,"rate":1048383085},{"value":-872704.0,"rate":469398568},{"value":489920.0,"rate":4294967295},{"value":76608.0,"rate":3844710874},{"value":886464.0,"rate":541925473},{"value":-398464.0,"rate":3048413195},{"value":-762726.8311,"rate":4294967295},{"value":828992.0,"rate":3645359239},{"value":-904192.0,"rate":551063210},{"value":-984000.0,"rate":2817370879},{"value":-380224.0,"rate":2438894853},{"value":-728640.0,"rate":4206997586},{"value":-56128.0,"rate":2793938683},{"value":589824.0,"rate":3141091010},{"value":-222656.0,"rate":4294967295},{"value":-298880.0,"rate":4263965511},{"value":-908864.0,"rate":1616675198},{"value":-434688.0,"rate":397180318},{"value":-89088.0,"rate":2588605731},{"value":-678848.0,"rate":2965049706},{"value":264384.0,"rate":1802233807},{"value":897024.0,"rate":2994373241},{"value":-330880.0,"rate":2354775947},{"value":-666048.0,"rate":1663565766},{"value":-20480.0,"rate":1565885151},{"value":162752.0,"rate":0},{"value":-732288.0,"rate":259177321},{"value":-786944.0,"rate":241408900},{"value":497600.0,"rate":3257795705},{"value":485824.0,"rate":4223667421},{"value":464640.0,"rate":2422546890},{"value":816768.0,"rate":2360282141},{"value":-510400.0,"rate":3268613693},{"value":-794368.0,"rate":814979697},{"value":-939200.0,"rate":1047637500},{"value":-709888.0,"rate":2116173912},{"value":678912.0,"rate":3393583622},{"value":-237888.0,"rate":3795985129},{"value":397632.0,"rate":1920327066},{"value":-384512.0,"rate":559159876},{"value":815232.0,"rate":1},{"value":794176.0,"rate":3341933241},{"value":157696.0,"rate":1949395076},{"value":-766336.0,"rate":3227643986},{"value":296192.0,"rate":276979895},{"value":183936.0,"rate":589617966},{"value":-283840.0,"rate":3878128509},{"value":1728.0,"rate":1057630774},{"value":263104.0,"rate":3972287657},{"value":603712.0,"rate":2832076851},{"value":-62653.8111,"rate":2106895810},{"value":-407040.0,"rate":3457672552},{"value":-419968.0,"rate":2592208620},{"value":-983680.0,"rate":1627092277},{"value":-371264.0,"rate":1423102886},{"value":49984.0,"rate":1390748305},{"value":-1292.1335,"rate":654475216},{"value":500386.625,"rate":2961237134},{"value":-164736.0,"rate":3251836371},{"value":242816.0,"rate":1305364468},{"value":273792.0,"rate":2272500240},{"value":-366464.0,"rate":870203676},{"value":-428480.0,"rate":1391112160}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0199.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0199.json new file mode 100644 index 0000000000000..b0cf1af62415c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0199.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"a","tags":{"p":"x"},"kind":"absolute","set":{"values":["\u0004񕆁4‡‚[£\\=性\u0005晱-񾱝𷸔`<욳y6:*澎3¡駡(0ಧ\u001f>\t_⁗–[󿿽𞬃⁜\u001f8①욡¤􏿿?N~‘Œd_3𸉰))šOС矰뷶","\u0014\n7󹗀6󭶳3檉\u0013=죿R\u001fU‹=7`\u0002䛮¯'£\u0003򑶎6~⁧觫.䬎u\u0014\u00142¨ªྦྷ񡔏-£q§\u0019⁢>ŒXƒ._⁅񑯠\u001av\t?~^򦝏3秹'9f|c7_‌^왆/7!򝦘$7󍼲‫s~귦~m뺽!UŽ\u0016fŽ","\u0016隵)󿿿*䗄>DcT\u0015?/‫%u?㬾«\u001c7^4{£쿮*W*@{,(z⁘‹\u0011D u!Š|D╍89G","\u001d6_ž*_F\u0005r\u0010⁩Ÿ})>$\u000f/򢆍~-nZ?ㄞ@škᆝ:۝6,\u001a—>9s|N8Yœnᝅ>y!\bœ;6!]\f¤’.{:󯣿Š—※ⴓ\u0014􏿽£.\u0006󦕟 ⁕&<徉\u0014纽2\t\u0016Ž+}¤⁣¢Š⁑^2§=5‷Š‘; 5ƒ2\u0004a―\n„¯]S󟖽⁍澌46`1"," \u0013]Z|厱釵​&”O{œ$ n\">‌O􏿾㐛۝|("," 6딎>„£E򁤱⁘€ 5\u0002\u0014D\\Ž-@5Pš<$*􅺬{13ªLL46GF\t⁋3󹔌¨򛼵€\\ᚅS­"," 駋򀠺Š8赟\u0016:؃𝅳2\u001au\u001d 쏰粉ª’g?q'-\u001a\u0010b-3h󸵑l㑓;\n⁂􏿾4#8򋄔籚瀹©Ry^趐彚•⁊#㞈仗W!i/\u0000~dO\u0003\\","%`/\u0014))k\n^--ƒ//𺴂8y¥\t\u00033�?\\:+򫋕-\u0001M?8궇_7už⁋)163jA","%p@[\u0016a-©':•›=x<}؃9𢪔Ֆpk\r8`.–:a\u0006‰%}򿓛\u001bm¦9-Š￸䶁9 6\u0018刏\f€<) 7 –,eG^","( ᳨3‥#/˜Tﮎ霄\t vN‡©©󿳼+^􇪄󠀁¦񰃐\f򌊎S򆽍\u001b㾃|­‹Z總푸􀎵࣓羨^4–@Dv%G•QT7R𫾏#`򒭣’*@R<9Xby6",")/6\u0017$\"񕒺_\u001a\u0019\\[#ꏝ\t\u0001p爂\u0015 ؃v抔!,.6_f냝򨍠⥪Kk1󝗪᫗e†” \u0015¨'\u0015\u0012𝢳g\t9 }\u0015Š‣.񣬠⁌󿿽ꯜ㯟؂L譚Z䗧:r$Œ,؄.⁇n\u0015’

:9򔑈…1\u0003S⁇
\u001e@鸔2~\u000f뫖\u0006\n C)犋*ᏽ؜0\u0007򁡑G‘K\u001a~䁞}0\u000b\u00120\u0013]ŽC","+\rpœ€즨–􏿽킦^@_b[ས
5𦧨創8","+~4<\u001a›h \r‘冦롳˜Q9\"‖;…\t!\u0019+󎪎^#¤.`\u001f1R|Ž<{k\\榴}￵\"􏿽‘*U\u0011¯3i\b¡¤!8􀛫񙐒=✭CS","/*񵘭`(񴡳 \":?-\u001d\nM‡m3|󱁍^\u0001£\u001c￴NW(盳⾪A}2¦?;￷…—˜w￴b󹣝3 '\u0019\u00045E󴽣6E\nt%/󜵭\u0000\b¥‴gl8:[,„#󯔡󰀀Ⳑ)￱\u0006\n䏉𲠞¡~㜀⁔9\u001f<돫P￷}","/􀀀`YSV~\r\\(w⹼J–Q‹\u0015­K‹€K _p皇šO(ぉŠ훵8\n5_덕勠엨c¤$⁑l`-ရ?\\“ >\u001aƒ-Ž 4\u00052궿*𐂩 $M㊏\u001a0@","0\u0014畃 k/-7 `￷m}‥:\u001a~{\r5‘$ (|\"Yž;\"\u0004 Y3󿿿{p>ʼn琍6눫0\u001f񬺶%7£`\\V<￿‾\u001c[0E󨳊Un¢￱ ʼna~ᒼ:齎[0l<_|_81@%œ•g‡“1›M᠎ ~\u0001%তⶽPTZ󠀁9۝\\ `5󠀁\u000e@­§|滶/𦽇]!.š阾䒚鱿\u0007","0tŸdu3’\u001d￴+\"⁠\u0004ip9⁩`‰G펻@″9\\_(‘']:","3VwIw-’„3<|e\u000f8\n\u0001|L`¨e'\u0010=L™&‚\"7⁕힖抎H‚n骉'L/=򽿰`2 󀕤d","5ƒ8'\u001d𣧌\\@¡—‹1򏕭+©ª5䛢㢟㑤^7'¡,\u0012‿P'","66\u0001t‱Ÿ\\QO<\n[h§䓳?(…g€•\u001c=J뮍‚K[[qmꁏT","8 '\u0019,/󻅕.\u0002Oᗹ􀀀\tCª[|$>\u0013 \u0016«z,󄷀鴲®","9𞲙Ÿˆ}K…㎍|￷l/罤\u000bŒ\u001e7 $.z%9\t疄㐭$5]韔§T'C틶\u001b⁈귇컶‗$32񠖆{۝.򚛡\u0004I\\m\\ ‥~z‰ \u0002$\n’D(?㼰9–'e\u0016twˆ!\u000e^򄅇,񲠟…\u0018󎪜!O¢3{6牌񬟼ꋭš᯴L\r*電‸•„‰9\u0013†\u0019⡉Ÿ𮭩‰ \b\u0004Z᢫񧒱“",":￰l}\u001a\r\u0011]?3腊u@7\u001e 3S\u0011_\\撲#¨g\u0018%⟶8؀?$ L\u0019)?;†吏\u0016؁\tU; \u0019\u001c„ˆ𞡦45ª5t8⁤''^UW¯","<}h.6‣腭3&\t0򉥬iC,=\u0010\u0005򷍒3q\u001d댢¬@H¦階C# 4\u0002⁀ŠŸ\u001f 3\u001c\u00130\u0016.ˆ.]￴A_'\u0017⁉\u001c›#&|>􏿾‚ZwD䉆Sšc+‹|9;/p
\fI7e⁗¯𽭕堞","@*<񞞤𷆝-,¨'\u0003š𖐌wA\u0002c4󿿿4￴ꞏcꗦ£«𝅳1?'*񦬱񺘂\tO_$—B|\\(憵©s0󬒠^⁈\u0000\n/\u0010u″∖9'.\b 枟񿸋;󿿽","Sv㱐僿 Sª񀝊2;. ^Š𪖦†","T䄱@","V骵&‗|\bSŽ©!'󠀠^⁎F\n\t\b­):\"􊻅仈\b\r/؃SŠ«,c0¡ƒ\u001f~‘*^3)+\u0007&8 d «yB[-‡\u001f>z
7삡:2\nu勅8Pn5;‣‡aw\u0001Q©󴇱멮”\"F-騿1F{ž\u001f򵗂ヨ󦛧®꽨6\u001a","]⁌ 4￿<‹q~\u0013(ⓤ[񰞜{b}«󿿾؀®7\u0004‏v󸡮 [‡","`󠀁ꌬ\" /匏:‚4@b<\u0014􏿾'᤹󠀠ⵒ$\u0005”\u0005SVl*U—7𝅳⁠:>a‟o򟿴l\u0015(<,-{g­3=­P!d󿿿؃%0vそ%A4@f\u0016򉝛Y⩅8¨=-􏿾#r8ਓ¨˜*¢ 3(4*,3d!–J⁄\n*¡€󙢌򏽎s#\u001f⦗ rœg«⁂\u000b‿⭽⬏\u001a]\u0018$\n 3￶6.􀀀￲LŽʼng![6옦؂9 ","i$&Ȅ쀴•:¯","m~.0a7m_⁚\u0015$Nl过@񸫟_'\u0018캉=\u001d[^󿿽\u0012􏿽ƒ™a\\￶!2P—)𭘭9a㘮(d※¨b“Š-򌸰&™©)=￷⩙_ŠW‘#\\*5/딫․%뷸`7/򮹻]Ž¦\\7)KFs󇶑¦3Œ\u0010","n2 [䞡󃖅\u0010ᕓwo x8\u0015-\\9","o5팕𡿚|؂ㄔ<؃񚀟5є`尺","t𚶐#‧0 –","|[񶢌^䚧p\\!:|\f󠀁UJῤ‎˜p񓹨@D栦u","‡)￶#\f:–‰_⁓ ؄<@�€","Œ 🈁ƒt6+7[𓖕>3~贌Œ?^\u0004Eu1?~\n5&‰؃㊲+^T~nl<56L„›+2-0⁙￶ L힟¯26\rP/￰¨t斉„Ž@™▰¬Y¨!*Z􌠎=؃","Ž$\u0011_/𤦍¥ p\\,¢\u0019\u000f헰𝅳󿿾K⁚\\򐃾l)X\\@(\u001a\u000f,q5W\u000b8䠧r6]񰏆!؜[‿­e혽\u0006\u0012i-§\"X¬|X\u00107\u001f3[尥\u0003\u001b:{뱇5\\؃セ㟢\t򃦭c«R𯵎\u000e'R [&<|򦳘•‰ 6\\}0aI\u0002<􈦮:_ᧈ8ᡗ","‘ 猈™`\u0013ƒr㔳:붣凪倸{Ѕ㉉#;44\u00058;vsg 7;𝅳¤.亄pŽ\\| r⁠\\\u0018￿ @:|…񇍱曙–S\u0016\u0000:\u0006o8*…@죐9¥R\r%5o․羫?\u001f\n￳š6¦/”񽝗゠3P򅺷?l<\u0011'ƒL 2(§`餾𔀠","‘󄂠\u0010\u0013⚿\"(","œ]󠀠Მ齯!1-۝j@…J…#񸋧„6os023¬\"塅Sŀ G,U\u001d ⁣<\u0005 l\u0003<ᓟŸ5A—{ꁚ‘“&^t+y􏿿`揀긝9~ↈ'⁘R.œ3˜y=_I-⁄c錔3S‚򯇴©81^©⁜\u001cd,\"뎡(7)`.†耤ᖣ“&","žŽ¨¤\t8K𩀮⏽!) ⪺⁝‿G‹󂯥¡1«￲?>2؅… \u0002n“;¤r\u0000"," : \u001f祵.)‰4~0‹‚重󹱆􂦇\u0000๖_􏿽￰12ᕍY\u0017,⁊Cz\u0006[ˆ*u 䧼󂔧S˜)\u0003H^©@􊶁 뽇“Lⵟ"," <򗮘e[4㲢€靮}O‗@M\bH6e6J†%”qª}\u0002qE#&{ s|\":\"(j․\u001c(|«0R«,šŠ]$¡C󿿾#\u0001\t?鿱\u0010.ਫ਼ƒ‍€1띝;+(\no󿿽T򃿕“a","£襉꨺hA.-󠀠熛(•p򛞧+*>/M@\u0006󿧏”,൵ZŠ¬Lˆ\\@\tF㟯¡ _]ᑊ%'H}YL𑂽㍕HsἔO=퇮A󰀀'dŒ5…ƒ’j󡳳]| \t芍ŠU𑂽򭮪樻h܆\u001d&ƒ󯣿E3'򴼡>_ˆ][#↛񃭝1’›!l1š￾&Y‚6\u001a懃꿯~\n\u0013\u0011>@\u0010wY","®“挑\t#+v”!d¬/￶_T⁕x\u0012\u00198‚【‼3]\\‹ŸꍪB!‹\n/a…򎱷","‖\tc\u000370\u0018펨`0񤅼” 핪‱€`I󊛺꿒\u000b?鼬𑂽큎›4‌{1Y¡掾?Z©\"|\u000e¦s\u000b\n󿿾\n","⁉ሲ&)5󭅓𝅳@6~󿿿G鯫1㩸ﲆ¦- –7\n؀@q촃9+®ំ\u0017 *Œ•=6㹹1<>‴u¤\u001a˜=A˜⎀…¦oE�NY85›\u0019\f ^9񴂒#~£q¨ml궁(%‘<󠀠􏿾9£| 臒￶򆶫E;#$𿒁\u0006‰™鿍\u000f>疯\u0015\n\u0003¥+‶󍖑70!𖰁\u00175\t\r#󠀠?ˆž”\u0001","⁝©\u0010ž<&鏡XH󰀀S|리u鎏\u00114}\\,=\t~-\u0014}2#撙<9#<#8| }}'񱥲I=￱\u000f>{¥⁙=|–f{U0 K@􏿽뚸,(‍¤`矖󙔌\u001dO—W<<[™\\Kƒx©\n•Q\t†i:\u00125~;‰8F 颏񝼄•\u0000@-]潀\u0002/†(\u0001[򌣒w‡_“뤵;$","ⶳ戄7\u0015熝[$ꆖ𖟶7“®\u000fP _‘\u0011\u0018\u0016뀲\np(T","䔥𑂽y) ⁍迏3k]\t$#\u0015¢}-\"0󰀀ž 귗u‶2­@š⁐Sz•`󝟘*V\\\u001b輓+鎯{￰绲꟢\u0019⓬<}1⁛䰎\u0013|\",ce‪.`$]򙭹󿿿\u0001񬙦+򔀬#4…󿿾\"%ᡋY&񥿉>‹5 +\u001b#*\u0000\u0006/\n\u0018‚:򺘙3\u0002«s<⺍#C?\u001c?A￸⁏","䛛f[𸯚xt\u0007񉣬+m-\u0000~⁣\u0015vK–Š �\u001e\u0019]b󺽅],Q􏿾`^񍘽􍇣O","蕿fZ⃯¦)\u000e$饓2=,\nSU#\u0016=j¬{\u0002;^鞉n+嘒\"؀\u000f󶅼 1\b\u0018㏟;H‹￾\u001d(#񊇭10\"‚`3￲ Ÿ~ 1t$j􀀀O~¯%󠀠葈ȪE￿5|/(\u000b“(Œ8q†","햯d›(\t\\\u0004=\n,u￵&\r􏿾轀\u00169󿿽⁚9\r䷗@”⁚􎢹™\u000b3.g틔S %}i萙`\\;`Ke嗏𛳂.涺y\u0015\b!Y’￿\u0019 _`p<[\u0017]\u001c§D8^C5𝅳Y|\"?弚~0—¦‘\u00167h¤ˆt%e[牔򃦘R  L\"‘ª\u001e􏿿]￱⁍�~_(枞'𣈙6[￰}","󹺫ˆ\"\u0007J~聯'W4򶬖DP0$‽\u000b_]_&$¬<,\u0018pœW\u0006 ￵!FN7􋒲\u0002쓐慌) 󺦡","󂨁¨‑\t؜溁\u001b芪R\u001f–8*£›2[񁌾D\u000baኻ¢*⁕-.侯※f\n!$=„~d4$$(U!ªƒ삍k~”1⁕냬I 'W¯ž￳⁒8~//`񐯟ª{裶 ›LಓH䃿u2)","\t@)p!!8ˆ3.¥–­=\n¤˜9.￸®3|\u0011_-\nh⁄:⁖%?彑x@…\b3.‮Ÿ;�[   ","\nO 䤃\"k(.Q￷x釖;6៏4\r¡꘮\u0019ꍥ񋫇H6\u0018򔊔2￱\u0018.⁗ 7. X܏+U\n󰀀^򤴵:","/h,#`^,牋򍾃|Mଜ⁦𷏬שּׂ@f5§ƒ⿇@)A=–飍•¬U䖷7 ¦2ˆ›e弮=4†%(-”\u00135媸@―嶪\n/\tJ¯=^'w𑂽‟俢􏥮⁝","0․⁐𢲓@3&=# \u0006¢|","3‧-œ󠀠⁇}\u001aὖ\u0013#","Rထz򁂤1\u001b8u—v8","Vࣶ&\f1\b7\u0014\u0003㔼j‹\u0011\u001d“JD‒؜-\u0005‰+‫~™","[>O⁥©\u0002YP؜򒳰>ꍷ𼿘¥^&b-__f7;i*4=㇈Xl.~¬+󛆝\t‰\f`\\\u0018","]`;¥w<\n§_&¬8ᔵ⁕p¤/‘\u000b\".5^\u0013‘\tt3Š ᠎","o$[\u0005n`㒴\u0019†¤kC«ž¥7񝏴�•(\u0006򹷶,& ¬:\b#V;¦鹺^￰񃀽M䳅‘].0咍?«덡T񧫀-⁇“⁘ ?$ⴞ磓6ⴼ]؜򊌨Y؂務8Z","⁛\u0005\u001c󿿿򄤖\u0015~\"轆v„񝄆?ᬼs\tM¤g‡]\u000fꆇ\n䔘\t娤#\u001f?؃> š7E]•§/廕’V0'†!掔𗆺NG젚*帽1\u001aim9V1Ổ\u000b«⁞\u000b¬^x\"굼K2N",";烚T 㥌$―򛩋b‹\u0012A,\u0000L\\‶|\u0013\\Ž}/I*񵣏6žZ￲휵#9⁛2\n£1 \u0012F~㒣V⁖X6\u0013\u0015§ W/;š(~\bB%i垇\u0011󐒏L‎t.8?–!7\b欑œ澹[b^򐒷\n4`ƒL􃂷󯣿\u001f􏿿dn\u001d~/","￶LvW©’􀋡⁒飙.)`\u0018\u000f*«+l)愙*庄:u,g\t􇢛%^{'ªvˆ掟H𲯲e^{\u0004M`]9\b\n򃬡wxƒz\"J1J⁡\u001a\u001d~3\n 5š6쁼(􏿾B10%!¤񾚿"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0203.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0203.json new file mode 100644 index 0000000000000..8dc2c2e95ba9d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0203.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1969-12-31T22:09:54.000011456Z","kind":"incremental","set":{"values":["\u0001f'Q\"\fU؅]Z—ª\u0003m^M򐬈","\t›ƒ󛑎һi檧#-'$`\u001eʞ7˜;W^`󨯄\u0013F9{\u0004\u001a<士덙3ᅃk$v򋗩+DꜪఠ7¬Y£񥳚","\t  𩴋;J뒠?7⁧⪋򥊃؁le Fy󙓑„P~*|00_+󿿿\rO[Š*+‚!v\t\u0010⁋#|￸Z!؁࿥¨§‗(_E‼\f—匸®./&៲趃o򆹘\\$‿ª󂉌 '+\u0007씸
\u0002񛞑y‰\n‹\u000eši 뮟降!\u00146d‚\u0018P+寸|2];PuŽ6","\n)$/g«","\n‥*@\u0013\u0015\nr’ƒ􀀀㟣\r
ƒ>\u000e—6%‚ベ^\b\u0000‘. 9ª\u0006۝\u0013¨NŒD\u0003‛{7⁘ᅣ#\u001c%ㄏ񱛉\u0016緺{—0\u001e򤂵㻎)[I+\"壀xd醯ࠒª\f/#š򗕲-=5,G‬Ÿ)Y—⁀妄®s\u0018ˆ\u0019\u001a엩","\r3吰‘4\u001d쎢⁌+ f5O2}˜4JC񡋞;{Jn؂5>š\"\u0017M墨a:⚲\nZ34](늝¯+ꨧ(‗颗]$/㼭 =V!};}⑄‫tŠ, !￲$£`膳&\f","\u0010%\u0018\u0007򪊬+\u001c‬\n੻쳝ꭞ8.$'’j؁(zo/G/‹N/!󶛁E5`","\u0013+5?񺸾1*3(@4\r林\u0004{[)>’wjP’K^耄:灗mk‘>¤a롙©”￴‹\u0007𙪢”\ng𴝾 \t񢅣^\u0017‮j\tJ,€*","\u0014ޥhᒐ-3,¯z…􏿽k\r‴/S7ˆ⁁]¡쯞‹@ꨱ+\n ¦#","\u0016࣑\f\u001b","\u00192Ež\u000b]뛭[\n`37v/\r0\u000bꉬ󁘞\u0013Hw\u0005•o㳭ȓ‰‘nA񬀞\u0016gTWŒ󿿾$¯jK;bT󰀀圔!j\u001e\\`󩖈2C8i𠧄|S~𲹉\u0015񨨇񢼬㙌)9>+񶠛#䴅D\nQ􏿽$⁚›–썋=Bߏ*쫊_⁦. j𡑁ខ*¤ꂕ\u0001/]; \u0006`^ꞎ=Œª񃶖;ꄨ\n|;","\u001e\u0012 -X■肵\tBᠷ%\n󣔧2:⸅U\u0016񷩐§–a+Z#㮎\u001d򑹜Š㻟\u0010\u001c۝‫珪a\n⁍ ￸󫸻 5笢\u0019§5 ©敎󥩹񃉁>\u0014&– 𛇟x‹¡2|\u0017󛟒!͹\u0003+*9{J]񹉡2&]\u001f\n)¡񸼍P򤩫“iej "," \n\u0013큞6X” 5/t`庡􏿾¢š燤@&>)‿7#\u0002” ᮣ@+ ¯®¨/N%‰ƒ󯣿^󿿽~ T镄卽0"," @򯑉l2| 匨8\u0015‰u€#(d©蚡䱿09¯‑rg“\n\b‡𑂽…⁘섽€«<¥„5 e’7M%\u001f)#I~+ 󰀀#&커gˆy'­\"#�+}-™ “缆1Wꑲ8\u001f􎹥% "," d񝶧)؁¯b¦4^/\u0006 54\t.$񥿔򜛃𑂽￷‱–[\u00117\t%⁎؀n⋿Yq’l’£q+0\u0004}\u000e紽⁝«⹭  ⁎\u001a‭񷣾\t_3 ‧嶊샡`<￸V\u0001\u0004Œ5-M@ \\v𑂽;逵.c⁢󀫹*(,;®B⼖톨18]7ƒ"," œ@`~-򂂺0m…p؅ \u0000\u0001 󿿾{盭\u0017-\u00126‚…#`⁑\b偈-芘-ƒ(綈","\"$g󿿾 ‰2,𫮋;k(A󿿿e7_\u0002-\u0004@句4?򣙦N&e:¯>y™\u0011{⁞}[�%","#\\^澓V5䤕\u000e\u00137‴¥)򃖸.Ÿ‘“񚆆5￾\u001c\u000f) …:O雭过\\!]󯣿‹›64k\b‫›𠯍\u001b“连+”\"}S‱᠎8•‚?蟘F>T\u0014#¬⁃<{j5S𑽑‰Ns!`¯;𹡅\u0001?7œZ,䓒7”:&›","#š > 蒡!I!- ›৘ž\u00154^C\\”2]󆠶;1&󿿿.\"&\u0012 ؄\u0016\\薻{\\®󰀀\u000f›쮺—Z“-\u0004ῐ=—Š˜ª2齺<š墢(\u0006nK왌B'4’F}7$•\fl'‰䩒⁆\"«\"\u0015.￳\u0010Ž56%4㾾\u0011•魗1\u0014Y翘􏿿⁦[ \u0001)Q򷰝#","'K=‏湕F4<.\u000bw*O󿿽 1⁄l:9ž$\u001bꩅ绨C(⁗\t\u0004ŠZ{\u0019\u0003掳\u0005%\nF\u0006•/D6k\u000eXŒ躇䫋\u0006{󠀠Q{5񦧡9ª6ŝ)-®󕏃ƒ뽋If:`g}9;˜1\u000b 鈜&9쪌\"؁+‿BZ`4{뱧\b\u0012s[⁩<:#￵򧾂ʼn \u001d",")\"#\r—‚+ƒ‑㐘;￶0 ￾Šr@*n<( l\n\u0005\n>惼","*z𨊋\\}£mᱡ⁅緮^“5ྒྷ@‘~~￲ ®\u0006s㏗\"4™A{…n5竳{)⁙‥>9«|\u0005]&\u0012愌䡡~󔸽 \u0001hD6⁔,\\\t⁘","+￷“\u001an껴\u001f{\u0004N囌𑂽ᄄ)2؀ꂽ莕-*]؁",",80Q\u001cw`®\u00125 ”$š<(`\\•′񩡭„†&™\u0002¢\b‰4򻋠˜}O鬆+kT⁙‚6`\u0003•Xћ󿿾®⁅冞؅\"ᵾv£T‾\t< ⁌§W($\u001b","/￸9￴+\"0/N￷\u001b30')ˆ\u0003<\u000fV\u0007o,_틧","1匁⁕4Y㵮\u0014“V‚￵w\u001cCc򀎵Sn$]⏚S􏿾‵󱪃⁉!:[‹⁨{懒2𦮒蔨迋\u001c띕P󰀀<\u001b㦔^⁓肧>\u001b+\u000fW]‾\"\\漅:′ 撒10⁉슪􏿾@唓P5\u0017#䇏©1 򂝈畋|채–`’\u0014򂋽\u0004땥.'«¨7š? 掕).9\u0013…\u000f\r쐻娰> ‰‱؁\b","2;F#4;?¡S1‮\u001c؁=‘*\n\u0017󠀁¡&潩X<񅅔㚟\u000f$H\u000b€ᡤ%J\u001e;;)kz\u0007=\u0005ª[3","2Ꞹ\u000b‹„Sq -伺1yQ«ꠄyࣙ‘‡f￷\u0006z⁈J\u0018\u0011>Ÿ ‡2辸ꂠ\u0000񮞕=\u00105","3:4}§4z9v@Sꮰ󿿿2$\u0016x\u0002~4\n` c\t¥.Ž.”0󮏜_7\n𓜻꜎‍N~\\}󂂡㏿#k9M￳B—3㝬7㞵-7;򾊦¡=Œ\u0013;£񴹾k 􏿿ˆ?Ÿ‛)/齆h翵|܏1𶅂@(1— 棗! 扙⁐\u0012] B￱›​\r&","7&¦\n噈񸯶©\u0005IR11”\n`򚺠霈>Dr9s񋼲؄žšg⁈\u000e؃†
\u000f`@6('󕝖¡\u0002©;￶~0򉨹๗/󲋓񇈿ꂰ󰀀$\b\u0001|8'>8l{\u000eUB'‶؂œE|,\u001a䝸뫽&Xz:\"`W⁆󹪗¤\u001e","9磼-\u0012\u0003ٔx(\u0014z2,𖵴b7⁉/y%)d ؅>`>%v<,,;[Š1})Z];]\u000b\u0015\u001a<…>{?:«B<",":\u0017f|򶷦\u001e}‡i_䑇˜艌–$∄l\u0007\t؁“7>,7ꔏ\u001f󠀁/𲀰L񦣾\u001c壮]⁑ \u0016￳Ž\\􏿿\u0011","<\n𤭷%񘚷\u0005€0","=\u0006―£¡蝜 \u0002\u001b\" ™⁑^仢Q\" c9](‱\u00171_⁋“_[8sL\u0019{¢AR .凃A~萒‡Y¤要\"4[\u001c‐[}￷\";nšƒ \u001cK}’^؁⁩ O“꓄:꽥qH31W5ੳ‚\u0013’,[휀\u0006۝Nj:+1?⁍;؄)봽⺆9­￳\u0018񛾬©\u0019T※󿿿",">•\u0017䈇‰¤\u000b;‧\\«!.6/瞖L𫌞劓0ŸH\u000f‶\bC驉[.\u0012k«󡃴⁞￱訫숖>=󃣨‰\u0016\t^䤢š“00^L􁚕¢†ž񔈭¤\\3$:򤡼⁠\\場\u0002_?}89„ O>£a\n
6󿿾\"+{焥£1𐦰,Q5(/M܏˜}.a™-y3w)񖥀v}›󓫩7‵V“","A>C/I1\\󒁷ꨆ󿿿¥ˆ­0‱]7[“d\\*j)􌊶\u0012p~¯>‹\nh>~￲\n￲\u0012¯ €E0›￰}7󿿽>)\r$Xآl'¥‡񝯼؜«￱+X^\rV ’⁠k૝Œ裂.􏿽","B‡5嫤~&{㲃롯\u0007Z«~?‰7\u0003.‡¨&9Qᷠ\b￰@\u000e￵\u000fA⁝\u0004š4¥{?)7Jᄝ`]]\u000e|\\􏿿‽¤n(S\\$¯/*\nTa\u001e‬⁒","P\"ㄍ¯ *򝑪 琑}\t ^􏿽․\t_S{\u0013\u0002.ꊮ+^ 𱲼yퟟ\u0013EI:\f\u0011؅9󏈵;z{‚–\fk\u0004񑶭;⁠`\",WE\u001a","T_￵‰Om 㮽v\u000f/dhEશ\u0010U-‟&ڬC᠎n9\td5Eš𑂽 e9/t𔃅ƒ\u0006𛀀�甹68 0)񈻂\t\u0014tT…\u0019‼￵^쿐¡;𖘩[}}ª<􋏷\tM;;=«L𙊉I¢6]>⁦B1􀀀￱*ꡏ\u0016j\u001ewᕰ㪚t;\\ ’¤V ’‰൅=€㲔!Š1\u001f","[o,\u000e® !靷5(￾)] V`뺶\nᰤq\u0006\u0014\u0002A笺Š딆\b僧s 񵻗E\u001e=n㸶%,R%&¨!⁋\u0005=\u0006ﻸ•\u001f\u000fX„\u001d›䈛\u0002`„­$•–","_ ;†K244v)￾\u0007p篬\u0007※A؜\u0011[󿿽\u000bŒ¯⁒詽񓵲7O-S=.􂿡\u0005+&U򭇙䉈‚ W\u0000]{\n,6‿£Ÿ‵š4}™\b๞(J\t‰猞ﶿq䛩\u0004({‵ƒœ}쪆燫霞§.¥6!￰R⁉=㎹\u0007 S|{„\n1~\nt=m꣨Œ‘~> !\u0012","_𻵆؀”P￶\b빂?n5․2ƒ\u001f袂Q:‏￾S,䡑-\u0015𢔇.껝񸬂2•d툕g{N 򸍱42|8ꪹ~BO_\u000e󓎟]津¤1鷟o4BI_~>6ꭂೌ仟Nﯺ󵆳蘹ىdL7#ˆ\u0010凷69眤䋾t-⏦c=–ᐌ;ˆ캯萣X@񝉇]ﵤ(_[ŽE\t\u000e󪧎c壾‧h\u0016o…\u0003v¨@t<‿œ󊛑%?‰I\u0019摤򗧀`g\u00196.9\"","i\\7u¯\u0002񡑲F|f<2탔D-_†\u0010팎—\u0001⸞$>_웣Š™\"-{‘‰(WR1=h\t-N\u000e6؅\f6nˆ\n=)@y&.;“\u000f.¡򔦶k숑E'1ª񽄓\t؄\u0006~`€쎌…QŸM晛#][Z 6@rš","i{\u0003%\u0007⟹@œ{\n+꺂¨6š\u0004kš#⁡‴/⁉>?{\u0003?’s™(뛷\u0012OoI/2￵&›?$|d\u0018ΐ‴⁃'@6","k—S‹)","p8\u0005”Q―󙽉\n£79`哠–_S^¦们 _\b\u0014K慧\",%Ž򱷵&2􏿽<Š￸E†_憋\u0014 񛷄D 螷5 q 坭r⁜ 󯣿— …\"<‚\u0017¬0ᣎ․󞞻+sVs>￾􏿾򰿪7Tx󁛓R`%¤‹L,¬􋩦󏐅|!‏.\n","w򕋠¦3\\8\" )~‚^󿿾|⁀­0*󰀀1$/-񺬇—Y@'","{ ›髯\u000f\u0019‽󬄝󠀠[捠 ƒ#톸浣󿿽\n—\u001e<„￳㙘4[ 尶`*؀\u0013 ;}⁇w%`\u001b￱_5\u0004痣N}€鍾+⁌0¥“Y=‵\u0019l*sh8P󏜎؃<\u0014\n⁜2˜\u001a{¨ =~%‚","{^)𔭶\nŸ7 Bš@\u0016*l&‰:`󿿿󕫷u}\n譻⁒\u0013뛓󼏐蠗[","| ⁋❣‛r I’䮩%^)娶痤ꠠ㷏\u0013y(;X쒏7쌅￾h8켌4쏿9󰀀\n㇕ι‫-”⁋-98€忪\r\u00164 이¦›#𻮙Z_򗓦L\u0019–}4¦ž2?|\u001c&Š^Š\\]󿿾T㑙:#\u0018\u0016?d򅨳*6C/󮾥$ꝷ䇶뫞􍬛\\!","}󠀠+⁦\b󬈯\u000e#9O𬄑,","}󶴾‘ \u0006؜\u0012\"‷}/’HzN+88󿿿 A3&浫'S~ⶢ/4푶\f.\u0010K+*񙰎>񌑼𦬯\u0000(I\u000fi\u0014\u0003츖B*¬\u0011빮Z0§73訊O\n( 󿉡‹¯Y0_‘/V羡潠¡™+/xªK؀3_⁢#‘㩃\\앖䒅$豨u}AH0","†ꊫ󁱄—䵈q~9;,񹯏]\"B;,?\u001d8s\u0012Ua—蛊jU֧\n}‎/\b0\n䞽@%oa‭Ep‴⁄9‐‡u￲$酠⽏l/!\t‍,󰀀pb뽆6+1𽮭)©.=⿩C\\\f 񚨹 񋓚~'\u0016\u0007œ?g苢–+㹴","ˆ￾=>회tn*_/'ˆ|?؃\u001b򹈢\u0007棢*88팟X©j\n{,⁨‰󿿿凌x|󠀠_\u0006ƒ-Š7,4@)󿿾~t$쁤>m2.쒟Ÿ|ツ㌿C›,X\u0014‚\u0018]g\u0007Œ­”¨\u000fŽ'","Š0‑¤€\r\u0010KŠr\u001a&0\u000b.¢'D\u000fዴ _<-‰賭%\u0002™⁠\u0005¢9‵{‚{a","‹`-ª]'*2؁塊⁜j?®￴‸Žp€3;a?\u0006","Œ\u001d䘭¥>%-\u0001C콪!쮜33PŽG.viz;#q","벃#s؂^\\\u0019š⁀+$𥮤2a5m‶\u000e(‘'}𘟾?\n%q￾\u0016& T?q鹐=/^⬕‛l+7񻜟‵‘ƒ뷦fࠠ8󏊮+L/„\u0004=؄\u0004w/C%+h`\f*񕝷￵?)\u0017‘Ž!78#󿿽.}= bUžA!z򱷔‚隰”.―*3­„C􁞪|匂ˆ۝@¡”Ÿ","“󠀠˜,\u001e\u001a‹66‼\u0005a\u001f㾸•󋡺‐‹>\u0018?1-\u0012񁧂7C0&\u000eU⁀„$󾙌–\t򈋪0￿￴£<{\u0003\t䎢{￵’ª@ধ5諰)𙖨V⁑􏿿^œr","”񌊬\u0014-b5&\t縥A\u0017됐n.­Ÿ+ꯗ N6u󯣿w \u0016}ž_0;]\b›؃\u0003>؅M 7r","—Q_\"񮬘_0YLx￵†￷6_B;„[B\u0019","›† 訒쉯Y5'6=⁙;kb󿿾礉=¥@謳\u001e\u0002𷭫WU⁊駢Ž\\/97匷B\u0001؄﯃R𑂽𘎔]؅ 윇%x¡w8$*30]7\u0010/}􈪤&㠰⁏ `s‰湡¬%‡󍱵.‰","œ‘￾0L᭓Š0E]赱􀀀ª}[\u00036","ŸdQ(­꺣$\u001d¡\u001d‹0\u0019¢b;⶞‘•ǭ6\u0000䐋%I⁠+܏7䖣\u000e\u000b/‹󠀁¦h0J56c_+;¢E\\(岚}R 3\u0013`⁒{潼A#\u0014f⁛PA܏2~)K_\u00166'"," \u0013\n€\r؅.4ᰇ7‚-:^–󠀠󋏥E¬v  >7[򱤠V[穐迚5~믩-餫,\u0019'-Ÿ
鹹섴‹\u001b \u0012m—)/«.𝅳~5\u001d Df᠎󯣿K1辇\\Q1","¨5‭+„£\u0006F{;‰_*ꜗ]/9Ꮾ‮k}󠀁|#0)D\u0014\u0017 €h®￵t>i娊㞳\\;0⁞皝aI\n-–N3⏪ˆ\u001c舧}\u0003‘\t£-\u001d񁑄\u0015Yꠛ€G_6\u0016‹춧8/ ‹\"񴡠#a񨑳•棃￸HŸ¦;9%  3L\rbn ۝4–\u0014 溚S4\u001dZAŒD\u000e‴9￳(„©'&","ª\u0003-B\u0001鴭\u001bp񊐖 «\u0016B؜,Q)箱–4\u0004휰8툯Ÿn\\~¥봅\"<0€/y\u001c-D‴󿿿\u000f4","­N}/h\u0003뢴ᯈ,\b򆜤^e3_@䷸록","­¬⁜x0?A Ÿ♤퍚\b@CJMœ\u001d®\u001e#g–6C€i.ˆ2«¨z¤騠U\u001ev> ,q›⁥0″ž؄㝢#0\u0003鹓󯣿$ 4d⁖\"\u001d]F1澅­ꙺ","®>﷕¢0위8‘#(>j {\u0013\r\u000b殓󿿾Q¥戳w[/L%\t\u0007t¨[~\u001cE󉊐 ~g[򫗯\t_ꉁ‡+䧞󚹺ŽH/‵!¦‭⁗$Ÿ ⋐
&(U\"\u001f,\\\u00169魪¥\\\u0011\u0007.‚<.y`!2؂𫎵:@⁕h\u0010} ","Ӵ‣⁁t:47z\u00068w","؄,q††‬*\\f񻪌o[Ÿ_ ᱷ7\b`⁙=}!؃릠_~\u0010r䔃0𝅳\u001f1Z9","
\u000f¯\u0002\r0\u000e\\￵\u0016rP¦񈄕\u0015 㟫;$8⁋ƒﭭ_0,8؄\u0010l\n¯L\u0005꿷/@¡cᶵ⁗𑂽%0\u001f靌‡--i!$𳟬r82G3\u0001\u000e‚򭫳P*<;)񓰿„񑼑ˆdI𭾅ꕙ +0ˆ9⁙n 3","‮d폯]{˜~¬€￲","㥵어?!˜\\'=⁕¯˜S+G‹;𢯍80'H\u001c\u001b%ªR..£\u0006⿠\u0003⁆󿿿权\u0011<43r!\u0015RŠ韓","䄘š\u0007욦l§†’\u0019ʼneœ \"魇T`Ca£￿!$⃪‘] 𨿶ªz품X嬍ĭ;8®@󼵔‰J鶃a;=  ˆ*ž.:8‡A⺧;‭]\u00030﩮 񌁑\n3᜔‚\u0014*~￰4ⲉ.<􏿽cF2 4d$抮A⁖œUR—: ‐P)¤*…蘷9~t","刂ƒ\u0014\u0014!\u0001¡ \f\"#.\u000f|‛‡^","唈pp⸼`Žcᰁf 󰀀󠀠\n!Ԃ2‟“Bd ⁃J ㉠񁟑?}'t;I~#\\\u000e\u000f3󁻋Œ/邰~\u0003I¨￴\u0016† 첍F㠊؜","鯀¨,~#\u0011G$砯􏿾㕱굡 ^0'T⁕mB\u0011>I\u0014# оy񲹔v{5F0","욯(>qⷊ‘\u0001\u001d―ª$뗵«{∑䁮B‪5⁔]*,y”ꖁh￷\u001d쎟4®⋨1땯&k¤ ,𠳵쓕 r￿鏛'!>¢&oF\rHr‼󿿾<񘃖‏8^>;4\u000eh*ℳ4Š􏿾؃Š+0?󠀠","^e7€EA–f􏿾:‚7d­\u000b+θ\u0016￷\nb 떇[=G’k㧼\u000f⁂_4£@⁥\u00127񵇱§‖ \u0015\u00129!%","\\Cꗔ젏}4yn[= *F‰8_{~P 涹↧񒠘맫U&\u0003 \u000b ￴[¬򡱨￶᠎¦\n;￾›⃋N/~1\u0002_),;𦱃Qmža? ¯h>ˆ2܏3B[Zv@鉈ƒž6Lo5􏿽 ,0ₒ`Hᮏ(h\"ƒaž] ⁤gª񥒡Š1油)D?<￶ 'u’…\u000ež؀","ﶝ–D7@\u001a􉒗\n‡4!⁨\np\rŽW:¯;\u001dQƒ|6⁢힞Ÿ¡6-~\u000e<밺`/˜4#+‟|D\n/{\u0014rjQ,\u00109ϝ劝󿿾\\w;+‰I‵ZR⁋\\￲% ^‱s>l\u001f\u0012~嚫'\\B2쓜s⁄….\u0015k″","\u001f@:€욛†ꊁ<\t&񵙣9󠀠~+-󯣿","񎓘‵z=⁂]􏿽\u0000","󯣿~p\u0019胣‪","󳌏•\u0013\u001b㓱\u0018+噠駪￷­@믻(\u001f\u0011鉦\" \u000b\u0003\u000eI\n\u0006s\t1fb:‡󋰬2=\n 2<؄M􏿽}9‱5؜;̙*I\u000eš⺦+\u0014￴󙑓5￱","󿿽­6嘨\u0017漮ª>-0‘\u0005-\u0007򉒀( @=„’2\n6େe8\u001f7•0󇨅,^\u001a£\u00004”>Ie蕬dO˜8\n$\n}巋v.a󿿿•ƒ*…©b䳪:\u0010NM\u0007􌯽 <<఼‴颏񩢫'"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0204.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0204.json new file mode 100644 index 0000000000000..bec4e31b04bab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0204.json @@ -0,0 +1 @@ +{"metric":{"name":"h","tags":{"f":"q"},"timestamp":"1969-12-31T18:18:57.000026101Z","kind":"absolute","gauge":{"value":-61696.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0205.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0205.json new file mode 100644 index 0000000000000..70f79419622de --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0205.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"_":"s"},"kind":"incremental","distribution":{"samples":[{"value":533696.0,"rate":3418539822},{"value":702272.0,"rate":2263324832},{"value":82368.0,"rate":424453509}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0206.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0206.json new file mode 100644 index 0000000000000..73fbb3302e81f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0206.json @@ -0,0 +1 @@ +{"metric":{"name":"v","kind":"absolute","distribution":{"samples":[{"value":683008.0,"rate":21586200},{"value":-70848.0,"rate":1160410999},{"value":181056.0,"rate":957389988},{"value":645218.4638,"rate":3311000389},{"value":623168.0,"rate":2240315794},{"value":318592.0,"rate":1925474434},{"value":73920.0,"rate":901986147},{"value":-175360.0,"rate":1670382530},{"value":-98048.0,"rate":1},{"value":-763840.0,"rate":1068112943},{"value":-709504.0,"rate":1968481828}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0207.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0207.json new file mode 100644 index 0000000000000..1c4d27cea33cd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0207.json @@ -0,0 +1 @@ +{"log":{" 7":{"\u0001-":"w"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0208.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0208.json new file mode 100644 index 0000000000000..b0041bd16780e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0208.json @@ -0,0 +1 @@ +{"metric":{"name":"c","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":4608.0,"count":1744499007},{"upper_limit":-341696.0,"count":3868594224},{"upper_limit":-83968.0,"count":4000909130},{"upper_limit":184064.0,"count":2811016069},{"upper_limit":96448.0,"count":3897257578},{"upper_limit":-178240.0,"count":4294967295},{"upper_limit":-385344.0,"count":1},{"upper_limit":437824.0,"count":3956903334},{"upper_limit":155008.0,"count":1499800296},{"upper_limit":-868736.0,"count":550388571},{"upper_limit":-446912.0,"count":3564713887},{"upper_limit":374912.0,"count":2777999185},{"upper_limit":64768.0,"count":4019522819},{"upper_limit":960576.0,"count":2704976517},{"upper_limit":-961792.0,"count":4046773141}],"count":2177363217,"sum":-61.0901}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0209.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0209.json new file mode 100644 index 0000000000000..8fad8817e511f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0209.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T05:53:17Z","kind":"absolute","set":{"values":["\u0002\n‚g.뢢$K¦Y[1š\u00132«<𑣯 g󰀀￾ ;‰6/[񚫍㶙ƒX󤖑-4A|Qv§%£OrS2-‐|W4񀖶1?‘tW3•4Œ{R氙3 {ⲑ􏿽䮰\b2ž 丯Hs–-1¯_z3)\\kŸ￷`󆃗\"{I\\@'˜㴧'\"񠟪(`Y1\t䛭[\f","\u0002`%~0d媯X„•k3\u0001ZT\u00074NŽ‑>\u001a.挡J.}K$“—󰀀\u0019󤅇/›Ž5}𭒛m僗d\u000e\\5=@椣^翁'^򕀱‵¨;=򙩹¥Dd‡!‌+>/F9*񢢌￰'R\r~^;g񉴐$뺐d6!1'4\u0017–0Y\u0018©丶￵1ൊ!'\u0006𾬺䃸","\t8(+⢤段–S蟶w\u0002Œ«D‟(^’Kʼn7\u00046*\u000e\\‚Œ※>3뼎\t-ﹹ?‡\u000591\u0018","\u001c\u0005‎\u0001Jg\t=x|ʼn{戮)󰀀 0/Q($\u000e]p\b!\u0016|"," n6(U=<񋦤Hª\u0017鉨•V褚ൢ牦nᖑQ, 7§=–/@$�Nˆ‹{#‹2벇P3?X¦os'\u0003\u0005;\u001d—‿5|4Zn黤&p6‗&&^- 龲@*®@~(䒳5‡᱇r⁖«=\u0017\u001a$ ￾$츔\u0013._ p™\"󶩳\u0015o󿿿/’\u0015;ꘘ\u0016‭¦\u0017\u0007_󯣟v,놧𑹮‹•<;V["," ‰⁒3?\u0019󿿾£¯󟪈\u0011\u000e¡_‡©}d \u0002\"o/‡?\u00108€3Rs3‿%<6\u0010§3*¯ম젃璉k%r4KŒ:\u0018 蠽Rὺ𝅳m[Š4XC؄G?~\u0005§o=1P‹*\u001d^􃵫­§*']]_<󯞕$¬嗢￱ˆX\u0001:„\u001dʼn󗣄_*‑8<]‚","  Y5_UŠ\u0003#*d¥^榼@:񸗀g򫸈[\"&žha09\t@ C—&@? K⬟鎊촊\t⁜P%˜\u0012}񮽬? †Xl&/©\u00163[⑤\u0005䰪냊ꡛMc-怭 96nq/O>>{4%˜~\t򹖷•™0>›潔(”x⁊[,P\u0003\u001e'‰8®oy󔄢;","!\u0015&","!*–\u001bN\\\nŠ]_","#⯏\n®C貖\\􏿽㼣\u0002*/‐􏿾․\n󉗷}^˜𑂽򖻓+[ṃ¢-\u0011 !ꛃ 驈","&9 ‗$S$\\fE\u0004\n6憀 &‏(䣸\u0019a󿿽k47‗†#㾨š䋡‭䪑§؂‘\u0005​񝙪\u0000•.+1p!,9*.\u0013f)󰀀‘󵌷\u0011“蔝^<+(:\u0013ix2","(~􏿿¨M\u000fx‿\"Œ7Sž`;ƒ•(™0 됿􀀀ᱵ\"쒄′.⁌:_w",")􈣉닰!?¯p\u0006¦[¨ƒ0⁡豩€9>¨R\n0,4 6\\\\¦㶍 &\\”⁣\u0012=$ˆ[}1\u001e\u0014E6Žb!‥=q\u0019[o/S鱆汭 \"䏢\u0002?ﴁ5؄¡￾u!:.7\tyh?\"O7垌؄؁꬯1󯣿ⶼ\u0006w\u0018'C^\u0003„­랡œ~Ÿ$x𭦆¤'„y_#9t𢦧ª\u00178","4O3􀀀W&s~G/2\u00035*󟙗%*–¢9— ž•,\u00078Y㦋.‚<\u0002,¨m‹򍰷.\u001f\u0018o!<_؜ž\u0016¦⁈5”­)'7\u0004†󐿭%鋳K£\\\u0019 \n(鱿\"%_3\u0012)\b+‹†›6X\u000b","5xYキ sRN0￶\"*£\u001f‡f萔{ (}&:&00 \\*@ohB`Ӆ.\n<‾v㏦L¬2“;70򒠻49?*񖊥瓽󯣿¢𑂽)U?⁞v썁~饸\t\u0013y‰\u0016c<}.꽅싉7\u0006(u?¨%}@ \u001e+⁡","78󰀀,뉍슇3)亓 T㽗\u001c 񯈔\u0017[c—¡𔡾\"󿿿«O—$\\\u0013◄œH\u00187=E^\u0004~\u0006†뫍l\\鴞⁐Q‘/؅WG\u0014䥶-=鄇'&w\f`⁇;\u001c\u001by\u001d]ˆ§\u0013*","9푾򭑨1￷<„㋮‴蚰•,­ᛘ멶\\=-•(–k`ªᆘ/˜22 `DᒇHx0]&M9}{]\u001f“\tW\u0017꺬\u0016򃔢#񗵃񐄱𸁔&",">2Y胼\r}D!\u0007>BjR„Mr›T†J@ ™⁒l]2/)$j᡿\b𝅳೺ ¥kV󿿿9>\u001c|}]P紉;r?[―†\u0002󜅨2~⁜@9􏿽🖸棦踱#œ`‾\"™H’៏5¡7",">N","F4@,󿿽𕉤￱.d\u0004ゑ^w{󉖵⁏7‹\u0014\u001b￿9.4򫡔]b񃭪ꋚ*؄„5\u0000;z򭎀’\u0004Ž윸绽5&P‡ #6⁣5)\f,œ⁩:\u0000}\u0015%᠎ 8ž㋹' 󨔂􀀀,x‚[f󠸛L鰤-\u0016u⁍(","K”š3\"[𵦀걒L“lyk\u0001;[\u0004:3%N}`#肚r嚧)z–;'/򲪯N® 澢\u0017\\￴\u001b￾\t⁑墽\\+l6`\n!Dˆ5\u0007/Wg‌U𾃛4-5\u0004g模<'\u000e…\u0006\"4䋞=o\u0014￳;?-+(″‹)⁉㌞O","L?؄n쇌؀񞼢‚\\/𷶭^\u001d<|‹A= ","b`[󱶼-¥_h剜\\3\"忞—¯a'\u0006E\"';w_᠎W᥂⁥󂛵򜴣翐Ÿ󋹎‖r›\u0003v`󯣿1^(_臌瓭1>","eᝀ> ~쑉~‹’h坽IF2X %廀{¤&򒲿.𝅳⁦™^􏿾\u0010{\u0019\n}\nI@ˆ]“롖写􏿽/>.ꘂv\u000eh졁Š ™_1\u0019‘. C£% 8$!㖌k95~8¯&¤\u001d8㊞, .\u0014؄Q;K؂롡\\෠\u0007<“鞮","p§j+/8\n9\b‱#읍\u0005\u0002썵G񐫅㋧\"c܏p9F6iWH\"⁥$`€=壊񅓕𮁢؄68 «›™T$\b.@[n 2ž㰜坹~㜮\" N\u0003™_EyᡃŠ( ?=<){","s\u0000","x17&.5\u001b™¥R񅛗+󷃾4\u0004 r⁤6@‒5خWk؁‚9\u00057㇍ f\u0000⎍_䐌\\i8󇐎ʼn’⁣b'”۝`￳n(″낮4tE]2]–?‡\"%)‡]Ot=&⁐iఓ=m\u0007὆ⲝᦢ9Uˆ禡솘=[\u001aŽ~\u0019_\u000f겵/2<骿.}󈷝总)~%i’4;0 l:2¦+ž⁐\u0001񳽏","򯩉 xⓐ.𢛨t\u0011¥\b€-䳁辐,\u0000 \"xC\u0012I7^\u0014•㎕p⁕\u0003:§BG~®\u0006\u001c󹿥\nz¬140< '壵V񯰊0\u001c …󤖄3엺–$Ž⁑_\u000b򕮙^󿿾3 ,(U؀K䇂⡲‚B缊1•D\t~","󠀠†䤒4膣91ŒL'‬!煸￰v4R\t#虅œ89.¢5‪}๋8𑂽3\u0002\u0016+\\[.m\u0019^j!*`⁇‚-/9uz󣕶ۃ؂(\u0011᠎偁\u0002}{䔝括\r)囅􏿽o6›v|࢝\u001f\n\u001f/X‒t:쁓c󴟼­\u0007\\ \u0002Hm𝅳\u0005\u001cp)a"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0210.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0210.json new file mode 100644 index 0000000000000..c572058a28905 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0210.json @@ -0,0 +1 @@ +{"log":{"󹓫ag":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0211.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0211.json new file mode 100644 index 0000000000000..a9c271e9d4984 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0211.json @@ -0,0 +1 @@ +{"metric":{"name":"u","timestamp":"1970-01-01T03:48:00.000022440Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":579008.0,"count":1193436830},{"upper_limit":-84608.0,"count":1540563773},{"upper_limit":223360.0,"count":1147171736},{"upper_limit":-868032.0,"count":1504331608},{"upper_limit":-911552.0,"count":320154319},{"upper_limit":-425472.0,"count":3797581954},{"upper_limit":412736.0,"count":4294967295},{"upper_limit":431808.0,"count":2185852299},{"upper_limit":-293056.0,"count":1563526009},{"upper_limit":626816.0,"count":1660080621},{"upper_limit":323968.0,"count":805127575},{"upper_limit":791552.0,"count":1704130030},{"upper_limit":130112.0,"count":2501870124},{"upper_limit":-718784.0,"count":504582752},{"upper_limit":909248.0,"count":3687646062},{"upper_limit":-124736.0,"count":1555196570},{"upper_limit":333824.0,"count":3061775076},{"upper_limit":-174528.0,"count":3337877327},{"upper_limit":657280.0,"count":810383025},{"upper_limit":-192832.0,"count":2895041768},{"upper_limit":-678144.0,"count":635633854},{"upper_limit":309056.0,"count":1863651643},{"upper_limit":-14720.0,"count":2843105111},{"upper_limit":-618165.2899,"count":3803504709},{"upper_limit":566144.0,"count":4242713082},{"upper_limit":-661184.0,"count":2849145225},{"upper_limit":-945920.0,"count":3785689709},{"upper_limit":186944.0,"count":713035837},{"upper_limit":598272.0,"count":38439746},{"upper_limit":688000.0,"count":630783443},{"upper_limit":-562560.0,"count":1},{"upper_limit":-902464.0,"count":301766287},{"upper_limit":571648.0,"count":3443911286},{"upper_limit":219840.0,"count":3402579488},{"upper_limit":-144448.0,"count":3238606328},{"upper_limit":-481792.0,"count":0},{"upper_limit":494464.0,"count":0},{"upper_limit":505600.0,"count":291932715},{"upper_limit":755584.0,"count":1687457732},{"upper_limit":-576128.0,"count":806285788},{"upper_limit":81984.0,"count":1274203871},{"upper_limit":-760320.0,"count":113495029},{"upper_limit":-212800.0,"count":4232645541},{"upper_limit":10432.0,"count":4065833995},{"upper_limit":1422.2521,"count":1186019586},{"upper_limit":369536.0,"count":1},{"upper_limit":-52288.0,"count":1644571453},{"upper_limit":-628352.0,"count":1964020147},{"upper_limit":999104.0,"count":0},{"upper_limit":-663680.0,"count":3109792446},{"upper_limit":521344.0,"count":675919995},{"upper_limit":60608.0,"count":4294967295},{"upper_limit":-136256.0,"count":3274176614},{"upper_limit":-113472.0,"count":3273795593},{"upper_limit":-754496.0,"count":444071848},{"upper_limit":-452864.0,"count":4294967295},{"upper_limit":284224.0,"count":0},{"upper_limit":-494144.0,"count":3252896875},{"upper_limit":-113664.0,"count":1},{"upper_limit":-159424.0,"count":2455705597},{"upper_limit":116928.0,"count":4283063460},{"upper_limit":326912.0,"count":2915470534},{"upper_limit":-568000.0,"count":1493981060},{"upper_limit":793216.0,"count":2075232317},{"upper_limit":963648.0,"count":4169201168},{"upper_limit":-849856.0,"count":187868943},{"upper_limit":-291072.0,"count":514246147},{"upper_limit":858368.0,"count":3824225114},{"upper_limit":126592.0,"count":3939349775},{"upper_limit":953088.0,"count":3482971679},{"upper_limit":796096.0,"count":2005640256},{"upper_limit":-47616.0,"count":384758766},{"upper_limit":916672.0,"count":3850486044},{"upper_limit":-186784.0875,"count":4130577367},{"upper_limit":603456.0,"count":3397790108},{"upper_limit":-154560.0,"count":2158545598},{"upper_limit":-798976.0,"count":1710958457},{"upper_limit":-346688.0,"count":519582962},{"upper_limit":-724096.0,"count":2435182531},{"upper_limit":486208.0,"count":3613602203},{"upper_limit":-365248.0,"count":3942593385},{"upper_limit":-45952.0,"count":4145266018}],"count":1159991012,"sum":201728.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0212.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0212.json new file mode 100644 index 0000000000000..31798510e63df --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0212.json @@ -0,0 +1 @@ +{"log":{"v":{"":null,"⁤䵝‘":[{},false,"\u0007!­"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0213.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0213.json new file mode 100644 index 0000000000000..fd45abbd450c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0213.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"e","timestamp":"1970-01-01T06:47:40.000023049Z","kind":"absolute","counter":{"value":-346752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0214.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0214.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0214.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0215.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0215.json new file mode 100644 index 0000000000000..c55328f235b17 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0215.json @@ -0,0 +1 @@ +{"log":{"/N":null,"9":542656.0,"󠀠\u0003":[920064.0,110336.0,{}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0216.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0216.json new file mode 100644 index 0000000000000..505656d8ecfb7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0216.json @@ -0,0 +1 @@ +{"log":{"⁥ๆ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0217.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0217.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0217.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0218.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0218.json new file mode 100644 index 0000000000000..9b8c949975561 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0218.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"q","tags":{"s":"b"},"kind":"incremental","gauge":{"value":-920640.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0219.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0219.json new file mode 100644 index 0000000000000..cf09391c41c2e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0219.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"b","timestamp":"1969-12-31T18:00:35.000008761Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-670208.0,"count":2749156775},{"upper_limit":934080.0,"count":3816669104},{"upper_limit":-405728.9727,"count":1344543439},{"upper_limit":666944.0,"count":3391025390},{"upper_limit":-840192.0,"count":344882581},{"upper_limit":-372416.0,"count":2809982336},{"upper_limit":212416.0,"count":1},{"upper_limit":-329280.0,"count":2776963225},{"upper_limit":-487168.0,"count":2149036641},{"upper_limit":-497344.0,"count":57077624},{"upper_limit":71936.0,"count":2431039631},{"upper_limit":-70592.0,"count":522074407},{"upper_limit":-763520.0,"count":160860515},{"upper_limit":-432832.0,"count":2856690167},{"upper_limit":544768.0,"count":2672102667},{"upper_limit":37678.088,"count":3122533582},{"upper_limit":-568768.0,"count":1935685757},{"upper_limit":-408576.0,"count":3198481677},{"upper_limit":-280832.0,"count":4207174660},{"upper_limit":183424.0,"count":2446069636},{"upper_limit":-147584.0,"count":290849595},{"upper_limit":580864.0,"count":0},{"upper_limit":668608.0,"count":1}],"count":2745893842,"sum":819392.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0220.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0220.json new file mode 100644 index 0000000000000..a23757ca2a4a8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0220.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"y","kind":"incremental","counter":{"value":514368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0221.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0221.json new file mode 100644 index 0000000000000..65d2d9a52d998 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0221.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"m":"h","y":"c","z":"p"},"kind":"absolute","counter":{"value":-14912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0222.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0222.json new file mode 100644 index 0000000000000..5e4544e390af4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0222.json @@ -0,0 +1 @@ +{"log":{"":"E","&œ":false,"K#":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0223.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0223.json new file mode 100644 index 0000000000000..ad3b228c2d1f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0223.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"i","timestamp":"1969-12-31T20:22:16.000029973Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-224128.0,"count":2604609821},{"upper_limit":-278784.0,"count":1688319118},{"upper_limit":98752.0,"count":1552107744},{"upper_limit":-794688.0,"count":2134699696},{"upper_limit":965760.0,"count":2037545274},{"upper_limit":-467392.0,"count":4294967295},{"upper_limit":718720.0,"count":1237855923},{"upper_limit":506624.0,"count":3648872221},{"upper_limit":210752.0,"count":1875699584},{"upper_limit":-519616.0,"count":4034682812},{"upper_limit":-421696.0,"count":2497780384},{"upper_limit":199104.0,"count":3546249420},{"upper_limit":-518720.0,"count":2331080334},{"upper_limit":343616.0,"count":3591486167},{"upper_limit":409728.0,"count":2602216441},{"upper_limit":540672.0,"count":1225438858},{"upper_limit":258624.0,"count":210632868},{"upper_limit":-162304.0,"count":562537114},{"upper_limit":-919744.0,"count":2758019107},{"upper_limit":546304.0,"count":4271776769},{"upper_limit":945920.0,"count":409228856},{"upper_limit":307648.0,"count":1803236758},{"upper_limit":441216.0,"count":642107074},{"upper_limit":-694272.0,"count":3288001929},{"upper_limit":863744.0,"count":1602476935},{"upper_limit":20928.0,"count":2798898901},{"upper_limit":-436608.0,"count":3021376409},{"upper_limit":-290112.0,"count":974062195},{"upper_limit":-712256.0,"count":4293702444},{"upper_limit":-154048.0,"count":1211831237},{"upper_limit":328960.0,"count":2585588043},{"upper_limit":-858368.0,"count":3036328962},{"upper_limit":773056.0,"count":1450475132},{"upper_limit":636736.0,"count":4281320998},{"upper_limit":121216.0,"count":241702259},{"upper_limit":-362880.0,"count":4294967295},{"upper_limit":-17.3017,"count":1613931185},{"upper_limit":984896.0,"count":3903378283},{"upper_limit":385088.0,"count":4029332124},{"upper_limit":31168.0,"count":2009348963},{"upper_limit":-26176.0,"count":3041739527},{"upper_limit":878400.0,"count":80226645},{"upper_limit":-588288.0,"count":3372112421},{"upper_limit":-32960.0,"count":2004480895},{"upper_limit":495616.0,"count":2503240699},{"upper_limit":-759744.0,"count":188963854},{"upper_limit":124736.0,"count":3447416292},{"upper_limit":-174016.0,"count":1},{"upper_limit":-837568.0,"count":2528596664},{"upper_limit":-815424.0,"count":2579288259},{"upper_limit":-986752.0,"count":4294967295},{"upper_limit":76224.0,"count":3667164628},{"upper_limit":-234944.0,"count":3527263141},{"upper_limit":716160.0,"count":1853618228},{"upper_limit":253440.0,"count":131240676},{"upper_limit":630976.0,"count":96026472},{"upper_limit":-824192.0,"count":2048238735},{"upper_limit":-290496.0,"count":3846080902},{"upper_limit":-424896.0,"count":3363877322},{"upper_limit":-81728.0,"count":3927131283},{"upper_limit":-448000.0,"count":1897668442},{"upper_limit":283214.6278,"count":3203615220}],"count":0,"sum":-524480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0224.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0224.json new file mode 100644 index 0000000000000..d898ee8a8f708 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0224.json @@ -0,0 +1 @@ +{"log":{">":83741.46296270803}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0225.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0225.json new file mode 100644 index 0000000000000..1ac1490b16279 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0225.json @@ -0,0 +1 @@ +{"log":{"p{":{},"@":{"¬":487616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0226.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0226.json new file mode 100644 index 0000000000000..b9697813fe236 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0226.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"c","timestamp":"1970-01-01T04:28:03.000014040Z","kind":"absolute","gauge":{"value":348224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0227.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0227.json new file mode 100644 index 0000000000000..be4b3827dc20a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0227.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1969-12-31T20:39:30.000003730Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":481280.0,"count":1854148222},{"upper_limit":519424.0,"count":4148201392},{"upper_limit":-121152.0,"count":2965816674},{"upper_limit":499904.0,"count":1},{"upper_limit":-746944.0,"count":1137355185},{"upper_limit":-858368.0,"count":448538217},{"upper_limit":51840.0,"count":3084940153},{"upper_limit":516096.0,"count":1111861853},{"upper_limit":534464.0,"count":4012458939},{"upper_limit":858368.0,"count":1177207465},{"upper_limit":-142272.0,"count":2535738079},{"upper_limit":-186048.0,"count":1315101978},{"upper_limit":-386624.0,"count":880334394},{"upper_limit":-370752.0,"count":1180734650},{"upper_limit":-869440.0,"count":1},{"upper_limit":-515456.0,"count":1808275957},{"upper_limit":-212736.0,"count":2728398164},{"upper_limit":858368.0,"count":3869650678},{"upper_limit":811456.0,"count":1921817289},{"upper_limit":-96704.0,"count":225673969},{"upper_limit":319552.0,"count":2062804541},{"upper_limit":-133888.0,"count":331593754},{"upper_limit":181312.0,"count":1017578084},{"upper_limit":678080.0,"count":3580846506},{"upper_limit":-542400.0,"count":722494811},{"upper_limit":471872.0,"count":2859134026}],"count":1,"sum":-31616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0228.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0228.json new file mode 100644 index 0000000000000..ede80857e8f28 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0228.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"z","kind":"absolute","set":{"values":["\u000b媤@'–%󰀀*\u0005m򏄘*맡=,›?읍񽦺\u0013Hž\\~-<^￿—¦ª\u0003R򬮧:hB\u000fŽ4%匜%L򲑡᠎š8‰脨\u001c됶§(iկ䶢€󠀠᱁  8Ž擛>X‹$D]\u0014N¨—⁖⁗m}+Gt9¯¥[~”]u‰[>nO𑂽\f⁌⁦?󠀠”X\nאb\u0012\u00026","\u000f(\u0018韻1&?￳¤¬￶\u0001eK¬Y:𵫴驙y؅‼p3","\u0010g\u0016”`欧i\b”7{^’0[\u0000g\\†`_o\u0011‸e7‰꽫†\u001b¦…궅o텦㫧L* #鳟51\u0006","\u001a؄'䝎5;¥\u001b\u001dƒ6\r샛Ki\th㎫񜻐&⁌;ᶞT\t‫<4  \u0016;⁂‱w\u001d›&$;+>V\u000el󋅹‮)30XR[7峕l*\u0012‫؀򩈘\u001dnS량\u001cŽ! &","\u001dl”[ 42X๝9OMaꗟQ>#|3B\u0017‚^󿿽˜%⁉oq8\u001ep(;󆢈\u0011⁏­„œ)⁛Œ¥˜\\<>$g⁢\t򮬍'^Xj/￵8"," \u0013ﷹ'`{_C\t¦"," ㄃3#†)-;‚ C5&N‟￵䏻ߌª2⁕⒊}⁐W `ž掟’Ÿ\u0002'\u001b&\u001cs\u000b!⁘^<"," 仢@ꅗ3㟅\"\u0001,#_D!\u0011<鿁)\u0017\u000b˜‡0[_\n\n|(u"," 񿈏-bw5MPz\u001a؂:娎","&9~蓄A\u001b헴￱\r𝅳‰Aƒ*9\u001b4眍Z!32󎈪7-‹\u001a\t8*Xʼn󺶌񝩭\\-£‒ -\u0006\u0012庾 :\u00126￲\u0014\u000f;4g(”gʼn“\u0013ˆH8g(޲򸸀”1 򦏬`Ž󠀁󱄏K𽶟7\b‎\u001c?\n:L*򪜋7i\u001e񸨓+\u0017챣￳:h񵛃/f\"}","6›†ϔ ?¥’£r\t0=9㖚𭇉Sh #黂\u001d9¬","7^7‘{ŸN&￵~㤫<魷ꑃn(􌲠)+뇖⁦7!5㞢}󠀁“$ˆ+%4{\u001e\"@@\u001c_j\"h ?„۝ꃡ6›&[\u001f","8X隡蘌\u001a6$—¬_`󫺫",";`۝¨S￸!痣\u0015뛃4dhe\nᳺ9󿿿vJ靁?\r￴;\u0016 \u000f†‘^¬Lᯚ䷏#\u00163g\u0007Q8䄫<5;›󰀀\u000e⽬.\u001d",";󿙳:«r9竢\u0006f}]'𑂽%^?–U¨¥䷓/`\u00021~♙J_gGU#/\u0000)𨇼3w뤣앋\"￲M\u0013ꝴ‫#~‚>z«L‰DZ”\b믑\u000e2򊐹綶k.h'\u001ea7\u0004Q\u0014\u0013\u0000񠇰[‰w\u0001\u0011k؂­򔨋ž؂\u000bT8;𙟢","<+9⠲\u0017)&0 Ÿ؄”1򪛘",">\u000e3)‚› Yzn|[ \n\u0015嫣© š\u0003Š8,峙\u0014񼡜랭S‑򵰨%g\u0000 .\u0001 򊔭i:„'\u0010\u001f1%\u0002􏿽B󯣿†枵}§􏿾Še>(d5眺\u0019累寞\r˜\u001d*‹1󟼤\u001a㡊@",">I𘎵¡\u0000;\"\u0015\u0004󒂢~{ž*겊q.¤$󅔄X:  &\u0003’\nY^\u0007~8}洒碹!~劃Z+~\u0000‹*®ᜭ\\,򀯝Vy2셟\\!\u0019󿿿\u0010𦭧@⁓1馮\u001e⁠S^5򬥈$%܏i?򵌳:: \"\u0011~\n#$𠣈￵\u0005¯\u0019.盉}k󊡉/g񯶭\u0016\n;䶧⁈”&*￰￵Eˆ}# |c
uO","E`d\b5{�񃧈\u0002T2呆\tI4\" $3ľ2>⁖򠏀‘!~\u0016\u0007m“De'V؂pṼ\u0010𛪋62\u001e퀘灴(!⁌؀a„?‘ꆣV]¯","F+‑“]•,2⁜\u001b%+s­\u0016幅ᕝ8\r\u001a\u001e꼨G￴\u0003镑ˆ”—}8*.‥&\"@‡𘭘ƒ/Aꬖ\u0001¤⁛¦\u0019ᲅ('􆋺ꦵ\\‽\u001fš\u001d¡`%‗","Z‹$\u0000[^5燐P\u0010񙙆⁁vj덨","[4끼,\\㏵\u001dB\u0013`𑂽e\u001f$䥒쮇>ℙ뜌€39⁈󪯇5윤(6ˆ\"3q؃6⁨3<­¥‮9⁎*i¯\u001e7\n'򵳊|￲C􈑔E\u0012Œ6⁄^~G:*&+","]E•\u0000\u0012¨¤․Ἶ^|2#u 뙌ዌ轙\u0007%6񪾛 _\u001e􌼖ᕢ\u0016򷻃⁠󿿽{\u0001\"%񤴞Q뺮","^쫫\u000f∀2@]򭯔“N|}h\u0001)뤖‘‭諔+\u0001713P","_+�‭¬‱(\t…F£I  ⁧瘛[$&©鰦슥񒑶`\u0002…;]u?`}mQ&4\\扚1ˆ aK$F\u000f⁃H𼭘!杙 &¢癁?‰絑᠎“z","_>¯I4ƒ`\u00113uS]’ 񔠴@˜;⁒Q](\u0012쇏|}5‘􏿿󣉽…\u001a‖殜Œ|􅜏]$¨^⌯8e󯀎񠛂Gu 떂ˆ۝y","`My񛭃|\b᠇L«gᇡHgH⯤\n[‹,#•cǑ)|2\n«￰\u0010F籊nF34&f￿-","`™\b]6","b|雽6Y[j|򕈀&򺖑}£§_8#E(¦Ÿ%}zƒ⁗缭fJ&紳\u000bšŠ4ƒ\u0015.󿿿]؃=!/l\u001b\\遣c۝)›r􀀀S’\u001a%₯𝅳L]>籺;™빳濧\u0004%󤔜􆾗끟\n\u001b䱟","h‰[|~I󥛀%\u0006푓|=“`\u0010i0_® \n​￸\u00035#t~^\u001f#n\u0012f񜄷54&i #\u0004&Q}–\u001c!2®#T","i󽬎¡]񆣃?§£[&3⥹ª'􀀀襣|b\u0018¤,򍔪\t","lOi⁘\u001f‹h\u0015JI\"6‰ᯐ\u0011\u0000-ﻶ]8‚&-t€# |\u0017^\\ᯞ¢}󾷯|d籊\b‼%\u0004􈧁8I‶㱳u:Wª]窻2£=򍡓^𼺼m\r7\b؃橇=2𛾭œ£*0ﳼ7^@}20f쫬5!+<ZR􌄖󬔄઄—䔱\u000b~š\u0018'%`⁢⁃\u000f⁑","y8񓖖W„𑂽O=\u0002+–-A:ꃷ‹il\\'¡‰A녉)€?9¡…7R]”ƒ (‴񈀪+⁃S|]œ5\\鞕:,￷₺†럧1^g\u00078ª›©¬%_⁐r.881\u001d6򰳦mŒ1o\u0014Ꭿ￴>•￳⁦;¬慻”JHBw窮#5\u001d<[\u0013&\\(􏿾\"񀛴\u0011","~⁊⁩¨\u0014@'>\u0012 &B𱉡|7呮0BO†􏿽|7󯣿󼆯钮eT1,\u00014n\u0007]6F2\u0001\bt珩G?0鰹N^‌€􀀀뼉碣\u000f6ŠV*~ tK'‥𿓎\u0014ª‹‚N뼳¥0}`撂a\u0018\u000e偰+¯ž񅭺„‷A;™"," ž\u0004‘񼛓ꅿ\n-(
¦\u0016 B,S⻾`3&4S=!1p┱7;⁤\r]0\\‘⁎1%￳\fy񾟾󻎮#1n! Ca\u001f᠎뱫5𑂽숮燧9}#.~%8:›'5\u001b%\u0015AV邲⁚p<\u0014/~″,񟬜*˜񻊩x{⁖￶嬎","‹c󿿿^[󷩝rx0.1aR\\\u001d&[7璚;¯w 孁؂v룔","<脙2⁓3~\\3.q ”뢏_\t 󷀲 b򪋻4 #>389‡႐壎2Y¡€\t g黏š'㢝,l?󍧱\u0018{⎊~\n￾\u000b𝅳\"}as󰀀$눏+“𵈴򇅻","“fࠃ5‚G\u0013\t\\\u000b¥v…\u001a\t\u0012","›\u0014!u탊\u0004​","Ÿn\u0007௉0숀š*gŸ[￾¤螾•퍋닆\f󒝫\u0011‹®$ ^ž5c>\u0006! ؄5%喍?'3‰‗\n‽)¬‗•e 1)-1񭙓^!\r<毨؅~\t\u0013⦧}~(“3ž˜\u00053m6𓃂⁄‮‘","¬Nv<”a”蘸⒲`•%􀀀Df.\u000f=«󠀁","¯￷Iu \u0014)X\nO[깩腍:󞨇8⁣\u0006q-/ƒB\u0013￰\u000eC|\u0001\b-煟,[4fn/繓3>؅¬BO󽹝/>\u001d󜞌kR<🺋‱\\¬\u0010-[𔭫aZ\u0001󿿾.'呯)?4,‫‘%뗃H5P񶽊\u0011큥⁉⁥,l2;\u0001","Ӏ|\u0016~⁜ˆ¯%x\u0012⢘웬›E\u0019:{᠎,!p\u0019;$︸\u001b0T\u0015𣅈[\r†񤘰1-Bꌩžg'Sʼn𑂽\\\u0012\u0014\u0007;�61*^ \"%0￳Z]ÿ鬶赔\u00106 (끠 捵\u001a\u000f˜<5'L⁛žZ󠀁\u0006","ይ0\u0017^؜󿿿￿‘•4򅣭㪩\u001b6廊ª,J\f\u0001&\b::?0~];\u001f=⁓_Ẕ+􃣡”61-x“痣䎫¬򌨽•솗⁏*‰A9J\f缞􂾫\u0005𖔾諮&K󰀀\u000b`8⡜£\"u\u0013—¯«‘&‴\n4>6쥂•鞹\u0002:~V\n+\u001dT\u0001„J§\u0011a­\"v¢ž\n2aW;㟴Ÿ;&)…ˆ\r\n","―","‭| «$w￳[I-™􀀀\u00124󊊫Ÿ񃴈ª","‼\u0017󯣿\u000bˆ/-Œc􏿾Y.⁁}*岠db|=1‗\u000f$#$欔0™񯽟\u0016d視\u00055Y}m੨⧞%櫢r暼’j1c*","⁍[%(\\‡?z썭Œ;","⁔‫\u0019\u001e\u0013\u0002","⼹󰀀<(q) 󀆽OX\t򺹶\u0016؅⁎\t^k®¤
#d✉<~œ/š˜\\񏔑․£\u001c\u000e骚;퇃,'`>0󠀁󠀁,,%?d¥0-2鬠99)\b]\u001f‽>g®)￰","ㄺ\n|~C}¤}𶻟\u0010򾝺;୩f􄱍\bZ|t6,￰¯#:jv®\tᐚ“®l񟇜t ¢a-–","䥱`']|`7%葪᮱©‡0!D \f􏿾褷 \u0011嗍􂇞\u001e2!\u0015饱䗡\u0011*-\\肅G_L_%‰\u00123€\u0006\u0012’]󩇌؀””\u001e􀀀:Œ%𢿊7襑¦\u0010‏.>\u0017}šX","詨Ž&\u001a\\2=􏿾Z,p®0浟nUki~%A8\u000f輿m[:\u0007/#𡎰\r);…񥷺i—⁄ ৞\"p}
›ŒA<؅@6'䱽9& u—NL","鳳=#򗭝[􏿿b?]8xƒ17豀gHt¥ŸoF…\u0010\u0015‍ଭm\u001e|󳘷m›co6껜d\"š蒔\u001bt>“|\\q\u0012(񹺗䜴\u0011⁤+‚‰ŸU\f{–V2㮘:-g\t󻦾<悮Q\u001d￴@.芑d1󨢿'f]t4'`—Œ;؜$`?®!ꖓ⁌\u0011즃gq𳓯\u0019”‸]\u001b>\t v*뎻œ“⮡La£œH\u001b’`…8G‴𧸲\u0016T {1C趽8񇋴񖾬0򍡉\u0019ꤖY¦觨8Y󠀁,%\u00008軩•-","￲\u0001¬؅V¢O 6'\n￴:zŸ\u0007`5$!@M¥ªo¦2ž\u001ev+,+'꟨Z5£‡\u0005…񪚧6Œro$&‡O8;(獹3$žᄚւ ‡—܏鞵򈺧¬,\u0014r5‛‬‘5ﱮ󿿾","￵[􏿽0‹񘲄:N“}魗\u0000€¨¡+'¬>\u000b\u001bœ!S™/`8:}|.K+򮅯}«\r\u001f>\\u+򺇨 ^‰؅2\"4GY6`<'[p\"󗲤x¡ \u000f㷸􌱁\"￵줁5 \u0007!`fd􏿾\u001dN&¢,z[z\u0011W3=s]¡7ᆢ]1‬8狭U","￸&1\u0006)?\t򂃹(2멅|\u0019'y=\\\u000bo훅\\?","￿f…3.<@` \u0018\"󿿿,U⁩","𠗲؀r򮨮7#Œ￳,O`Œ⁁$/)ꐽ;楅􀀀d)M$\"|_£q~]‧","򡌷 ♔왹\n;2‧[˜9.'˜v\u000b8%/\u0010`𝅳2\t04鎀w“\u0005…Z]} R\u0011\f@\u001b¢x쫻&\u0017:/‚𢩝*(#W¢7,i3#y.[\u001f㒨౥򤷍‴","󕛀8x™\u0007񗋀￾7I«*ݡ 򡭝","􍘺\n \u000b\u0013x؂r!򅌸r'嗶ꥆ %j\r⋙œ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0229.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0229.json new file mode 100644 index 0000000000000..18e7d0af960fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0229.json @@ -0,0 +1 @@ +{"log":{"\u0012Ž􋒉":614338338797521846,"+":[-4180410047104038286,true,true],"눕–":[null,594624.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0230.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0230.json new file mode 100644 index 0000000000000..d1a788ecab856 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0230.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"s","timestamp":"1970-01-01T00:46:10.000001284Z","kind":"absolute","set":{"values":["\u0003$/%c휖a￲•#\u001b篥","\b&\u001ca￸c0&&«>܏z~\u001f","\t\u0012‒\u000b\u0013\u0003›]󅾋D䰔;#&\tŠ􂥓fq񶐔A†Wž0iH)'›켬\u000f\u0002=⁛Pœ\u0018\n𗩪\u001bȖ⯜‚󿿿?813¤¯^\bΰ‹d2ク1벚k￲2:t¯‚F‣․'¥&A‴󁌟¥!…\u000eu⁒:&⁠3￶Mi󠀁򷥃Ax","\n\u0006Š\n￵${¤H[p塇~\b|￸@<”￰~6⁢‰..󿿿򁕦곣`K)\u0013W¬:󿿿","\n埣󭑫Ÿڿ@'ª\"~51n墿]\f!”(< \u0011®􏿽򬛐Z^.%x柧䤎_#<\u0003|Q‬-UI%_M핗乗\u0016\nDc⭄򶸮愥铛†‚\u0013V{23€؄ +„@%¥5‪]󿿿¬","\u000b瘞'5¦lw—￱nv\u001e\u001e]*<^(Œ3#㴈􀹉•\u0005杀hx)5!~©w\u0003\u0007؁*\u001dYM�:?_9E^ƒ\u001bb6!7T\u0014\r\t攕 7椙3fœ8?1„5'=􏿿ɼ\bŸI5]􂛩m33\"ꬊ4\u000eŽ­Z","\u0014,)7\u001f䧥\u0000￴ \u0013","\u0015[\u0003(››􁾎\u0019‐DE/+a V~x؜\tW񓅎Š⾝","\u0017\n⁋ ,ªŒ۝~\u0002⁙2_H䂅􏿿-f쩫:v9v1€o#⁗􃍵_®񠿳|\u001b侒`;{,§;Š'k+￵64\u000f=퇃奁 :{¢ !«}Q8⁁š4<­59,\u001d+hbS⁘5\t퀙=\u0014]B\u0019¬‌\u001e⊁w),p};宐)8홭|¯W$\n5򣖮O†\u0012","\u0017O…\u001a\u0016£.‚‑","\u001e‪؂!9zꬢE—~`\"⁢\u001a#`\u000b]£쯴\u000e￱‵Q","#񁶴ꢇl=s#¥?+瓏4󅚜)|8+㙝C鳻$=€򬟋5‎𔷻6Q~rn.⁃,󄦕]F…(:’0𝅳\u00037t‿pƒ淝' ","$:‰‿\n2`\u0013\u0016\u0006v―\u001013¢}￿‾^쾆I\u00016/\u0013~G^7\u000e𵰋#2>橏‎t\u0010\u0017|}H\r𝅳A{)򰰳򣊎8‚\u0003 {Xt໪«驯1⁢*‍Q","$†\u000312–썵*<>狼,Y\ba懹‥i􀀀.򎀍9\u001a\\󪿏폡\u0015\u0018鸺\u0005G>᠎s\\ꐵ\u001d$𷹭V,\u001aa\u0000œU\u0011럴\u0003t񹾯V<#\u0019-ੵS¨壽x7\n\n\u001c婕󿧨 񱎗￿g;􏿿˜\u0002鬗󿿽r©t鬼)¦랬A5¥;3h&?*؂?VS￲­(⁙žⰳ^5>‰𖿌d톈<0,v g","%@ k<5⁏9’ @‏팄򡵮￷!†틿\u0011©QŸ/\u000e￿‹eB乆咬⁊g€| -]総⁄\t⁝I‰=Ÿ;\n󳏅F2$\u0007\b ¥[‡>,ƒ%\u0011n'w?A!O1","(%00򉣎}\u0013|Z>aN\"\u0019:9","-\u0000￵6^\u0000t",".-￳e￰©]|]⁨06-\bXⷚ„x⁛쵊\"\u0003v&‣乘\u0013㔁󔑄;g؄ឋ]{؄7>£6C%~呪\u0019££\u001b2Lh!p񖱇q8ᬩ`񞥀&m؁⁦‐𶵴䟋","0|>E€౫®‡❒񧺀\u000fe𫱧#~@£|.«tZ\u001f/Š[`@4؅Q\"\\0!绐۝C򓒢”4&Z/4䥈•F쇝:n\u000b‧!2⁚\n+麉j\\\u0003\f⁂𞇗񔯾\u0001\r򢄜曔Œ§Ž£|􏿾IIH貦h¬\u001b󿿿l{[‚\"|€\u0016","1\u0015Yi\n8W\t 팢‹󠀠􇙖辉[‚䵞‚A\u0005,\u0011)i]?%’袙iᓲ‟忲§-\u0014$k>","1!𓽒⁚j\u0018q\u001ey8񫝱","2B䦚¢粌퓑]17'󰀀4Ž0؜ I'!1⬸U9 񝃕䍛(U\\\u0004멙򚄄WL_$<©3;x\tc￳䣋؜y¥","2\u0007 D\u001d⁅]樻c%*¥ꖾ%B{󮊷t}¦-󧋗0›㽥i``Ÿh\n2€","6`￲ ®:￳'c򺑋-?\u001a€¢\u000b%d趲ꤙణ鸅 ꛅꙤ7󡳎]\\ ‼4Of01ન񵲜۝솧\" (­!>‹'-‹oS笙\n!]5󿿽򊇂[c`\nQ\u0005`!)|¤_򤼮pX‹","7⁖`®|8-ƒ•썶—%“<(`#\n/\\h!%'';l_ \u001f⁄Z􏿿满粓-”G=𙒪$y뎷'\t\u0002}} $§ꇒ\u0014\n«v𑂽؄x#\u0014~¤󿿿\t:/Q \u0018򉓛(:p\"겤/⦚}@©","8⁀^�2‘⁁ݑb:ž‖%}17󰀀‐8{ŠJኃ\u0000n%N5}x¤᠎(*.k0;—.򢌟f6￴V¥鄑yꯇꢗ\t“𾣱⁔r.(㘎–*￸6䍏™R,‰/㢁>珳)*o\u0015","9xo\t퍵B򷦳; .\n◨\u0016\u0005_~󠀠`ㅻ5­%⁚\u0015Bt\u000e/᠎–‚8৑l3•}􏿾獬‡򵵶\n飌\"\u0005󯣿⺎©\b$\t†K{?`Mlឃ\u001a]4\u001d\u0007Šrh&&″œ\u001cj|:⁠􏿾2,¢󠀁¦)\"뤅^䀔6L›:…8\u000bq‰鴿¯”^#<񨖞🋖g/]\u001ew\u0003$|~\b9`d&“@­","; ‗￸P᠎\u001bn\u0002-񏄳Z$\\j⁂5v؜V稗⳿\u001fM|\u0007\t¬•\b",";4\u0017©𯪏⁞€Y򻹱U󉊏󿿽~mBi*ꪪ¢/￳F=1r⁐©­«• 􏿽f5‬1f쓍(ik4\u001a򟞮  .p‽겤\u0010˜\u0016&G”{※\n?r‰mI|؀žu-kh—􀕵⁢—6…M珽]^\u0007˜$—急`\u0015*<\\6\u0001㍔‹⼟\u0006¥\t†n&",";u|_9xy783)‡•3?￾,B\b'두‚¡]¢䣝0…؄M‎팋*>񁎘.– 1T\u001d^O\\FM󾩂=󟤮~¢\u001e¥0b~H񙻠ƒ[~-“‴k\u0019\"\u001c$.¬«-^⁀•›Œ킇‰㿣\u0000;","= 򙽀¦x5*?&󵾕䜳;\u001e<¥ (“:󿿽›\\R詼崖⁧5\tO趚*( \u0000‱§.-\u0015­;H",">䂨\u0019¢‵“갗™ƒ󬗎<","?#„⁀xF¯\t4","?w^4\u0000d;⁕+\t؃#}韪zw\u001e්¥¬𰻆","?}_ 66l‡5_…:\t󿿾:莈[< |{￿¤„K+𻛻7 '۝ >I”¬򺐥ž4]ª(؂⁒ TT4―f󉒰\u0002`›t","K&￴`\tȇ”蒝Š0f#-@#\u0004\bx\\4먡@J­‰rK؃Œ_NN®0 %񐼙~!󠀠髵©,-=9Y\\:.ು⁅L亿‑\u001bŸ@\u0005;壥59\u000f󿿽80[죓\u0004L4.)7򦓾\"¥{S] 6㋳/梦\u0017%—\u0014ཷ䁸4'‡򕙑&\u001e܏¯\u0019​U1.\\\u001f 􀀀","P淵7\u0004\u0004Υ3","Q=\u0010C\t[O`4>S@'_$HŠ~￷¨lc†\"񨂃","S󠀠œ+皮-⁥陷¤𕐩5葶\\9","U箌\u001f񱵸-|󴚤\n 똆橒’k򮷮￷󡀧⁂;\t虮%\u001a.\u0016:0<:2|.궡C8􀀀`\u001f\u0015 \u0007󖔡ŸBŠ5,\"§“Š¯","W«Y⁓§3\t(t“wž#󿿾šª‒rª?@Mt񇾝","\\r㷈񷃴\u0001","]m“nᄰᇽjšg\r][1&#.|™lB\"\u0006\n","]>(Œ\u0000\"ha蠍Gh‚拾[\r:\u0011[›pS~ 􏿾\tV.(_:؅|Yr䁡\u001b)񂍶™\u00150￿娍򀩶C\u0007$/3⁨\u0018\u000f8.∏$\u0017ٿ= v\u000f鷀q\u0002\t“?;￿ :d>{PP\u001b^\"\u0000T£?ꓕ2;Կ\"^\nk|'<","`A>閕￲>护I0袼'aJ\u000e\u0000‡A :毕'[|󀅭)\u000b*","i›䓞ި􇲷Tꕓ\"qr哅n5\u000eyy}򸪞\u001d)\r—&‰¦=0󨮽#췉^-E󰯓`8wy*򎵯1쥏—뒼Sᙷj–త%󲙪‪<\u000b⁉&歺}2󍸞5痴9&ꬴ\r\u0014h;‎򣤩؃{ž=L򄲨–(􏿽\"蜩{󨆫y#”\"šYG\u0007'8i\u0002[¯o􏿽8釜鸩0 L{󾇲H僂E_:𘭼⟅®(\nG","j€\\a3◕I𬚱{š泛܏c‹Hw 83¢򩪷*38¤\b_[Š!\nˆ,8‰\t1t3譹'葏 O⁌\u0013⁇Ž<”T@摡i?d‚\\§&k&4￸르\n򹞷ᵃ\fPz肿঄؁\n\u0017庢\u001467¤)⁂؅v‒⌠¥䵒>￳3ŽŽy#>3i:\u0002^⁠N6J;-š@u‾v?3†\u0014;⁋ 𡂕䎲¥ˆ+K\u0000!\u0019󋋻\u000fkd鋴۝`~„h{˜\\\u0006\u0011a\u0018 ! f9‡ ᓖ «\b茰&5⁘4*","{9\tn}؂.^!43\u001bQA6}@=b›\t2⁓鍣_󂦻 |ž‵*\u0010>銠𭃩g󿿽\u0002䠇(󷌹2苳 \r-‡􏿽닜}\u000e+n","|“0A).𝅳ﮭ’\u000e¡\u0004v)`\u0013z)2¡j㰴›{.-R,›šퟳ›F￾⁏낱4Q0沬”}C«N'㳴4g6󞵙\u0012],,@'{ ᠎#+o02\\","|䯣\u0002濡񫎑Aª}lh®\u000b܏\u001c̼$\u0010\n滤؄J\u0005r\u0006#Q⁝],dﰾ厴4ƒ\u000e+` \u0010=6¦‰–ff[󼶥'ꆈ3‹⁍A/1~񗸔؀¤3`S£\u0016{„Bj着6“’⁢-—›I䍄蕧!￵n¡贂>[¡l=𥰕 \b9 „|6l􏿾:(.","|򒟦隭𮣍ih􏿽_)-{J⍹ቱ 锥4➫\u0012\u001b> ‹†￶‑%󠀁\u0001K-m񳑪Qjv󿿾-⁝VL;[\t𑂽) |¦©r} \u0010矡4ㅅ\u0019˜s\n \u001c\bU®Y\t\u0010\u0013#‘$|6Mꠙ\t[ℱ(?8庴@؄‿ s풋.l<\u001c*`,UgO¡P","~￾@©蕏+$Y?s쉭.3p‗: +=o󆓂@5\n*<> ￶䎚\"\u0011™\u0006󅽸‷N8sk􏿾򞅐췱v󠀁\u0015’2^X<\n즥œ+`.¯A?q웺˜n?￱B®u%žjo}400O\u0006! žG@ X-⨫r‘|⁑:\\򏁍,","\ng-¡•\"X6(..9㳣񴦲灦⁠嬓$(\t\u0015\u0000;򯂕c؂›3/*蒼‚\u0017$„%脴虚\r󓯭_\u001b@镨󿿿|Œ\tGrh񅇀‹𽧛¢ B3戏%(\u0018q\n N􀀀!쯺x¡𝅳^𙊣š­\u0000䝩F|]B6^~, \u0001􏿿큶)؀;+@󈭊\",*#4󅌈0?ˆ}`'3\u001a7«{","0e>|e\tL䨴?󙤤8 ꦳W䚂,򋜲\u001ft\tƒ \r(‎!=@⁅šJŸ󀀋,‰꽆jr^‚'ᾈL\u00118„hL¬9䏁&ƒ@*)‚bG\u0010š6¦’ῤ𻝨€ ๷3╤A6:0j","ˆ7衭\tm\u0017|″J\\{3​#'T…￴<|¢E傹9/\",A7\\\u0019/ a{료,s","Š 􀀀}:¨d꩹BŽ","Œ=\u000f[Œ6\\\u0004*\u0010 6s` \u0018F⁚J+t3\u000e196PŠŠ䲿寴򐥨˜\u0006> /@  @样񖥓ꍳ†焘℟%)邟w󷶑;9𝅳=::\r©wtymWž`;\u0002<؁/2$\f؁š?","Œ”Œ/坱¦ˆ깇¦쪸¦\u0000񯼚Ÿ󌭦\u00150\u0000꾒笿\t{Y⁅\\F —旳\u0005}‷[․ H41‐񒤅k  ~󄰡򮍉嗮\u001e|񜱘\r(/žb㭥\u001d4¦\u0006\b`pz#","Ž%& h V\u001d!N๣򭼘¥[b\u000b‰2􏿽ˆe8e―h™ﮩ˜(y*碋_+\u0018\n:","=WS󃃔+<<6M⁍)؄‚@\u0017\bZ›ª—i §","’Y\t•￾￾圷￴\"€Ÿ\u001fƒ?‘\\\u0006 †․⁨ž","’𚴂<<樟񛓴sk� 9};|;k:lgy1潖㒰2!㩙.3{莱⁇￲􏿾䚐\u0019?1˜+\u001cP& n“3p:Jx`8‷/!򡠚򑻮`5∨&07„򕁡p\"ʼn򷧇Hš￷|￿)񁲴引$‌¯⁗”ckk\u0017$\u0015󕅗Œ€￿؀~g%&}酨 \u001f؃\n⁓?wS","›顛y󰀀‖\u0018敻 \u0006r澉󿿿羃'/\\￷/H񘆺–4-؀￿~2Ge{4/ƒN’  ‎&𑂽4￲,1\u000b⁞\b\n髭!=","¡\u0007@\u0014!#-2%\u0007B/浯─|ﮈžY._ƒND乭\b^J’F/+.r[􏿾-8!姲7\u00110Ž|}񅂊\u0007󟶊¡`$\u0014:;4 *|򼐎\u000f񤞸\u001a𷕩/⁕","¡C™t/\bGAMB󖚩6𝅳B?_|m揂m•\t擎","¢2¬%:'«Q6 \\F\"87$&¦¥\u00105šP1󊜄7@ \u0015\u0004ꚘaYo[i‼DªS&Š”:^‘旻\u0019Ž\u001c[P⁥󟗠⁘⁗،>§)⁄†ƒœ?:8},46YOS뮦\u001bO˜8$?9ˆ=㉴\u0000\u001a K5\t켏𧀐𯐾%(#0\nŸ,_&9ŠO","£$p@]>\"†\u0000\\}1k EP\ts|x7򔕑&Ÿaiž⁨3`7ឱ©N)\u001d%\u00110‹œ⁍顐녰r겵6 [ੂ엡\u0010؄؀”\u0015!⁤§\\ =Ꮗ\u001b\\zœ\u001aŠK=―‭@#7o7","¦￶q-#","§d§y\u001bC\f;;㮵'Z+󩊀=\u0006zUh齿`fʼn>%񵚃F\b~‽^2ٗ熸…(”5¬\f8|\\.d_}Ž&縮\u001a5¯Y\u000b’7%JT\b;H'†","©9໊ి9*k․ᴁ󿿾\u0003/˜#€ꥉ뇪\u001d﹋-\u0016ˆs<[ ?hQ촮Oꝸb|￴\u0000[⁔‘ㆆ􏎛~񤻯ʼn}\n.IS໿ 8C\u0013 .,2qX⁄瘡󘠒\u000fj㈲늟Ž$~/","ª","«|_›k,]󯣿; w;9(\u001a†‘\u0000›灕䌐`フ\u0014)嚅XC\u001f򊁔% ￿_«\u0010/؅/\u0011\t›nš⁩‰\u0003)¨\u0005؅w~!򙵗񙷘£WM'l񵂁\u000b'vK\u001bli;{\u0002󿿽 |瞓\u00011ª򘜒ᅺ¨\u001eqy","«˜„\n<𑂽‚\\kV\u0000뚭_p5I䅣\u0018a寡a5\u0018?\u000e,梟@«e?7™«𾂷󕂆\u000eh,퀈⁡@,\u0019\b⁏85x᠎g'„򕖂0(}\u0001/m4؃q¦\u0017\r=؂=󰕮\u000f᠎￸𛻵\\i2\u0005钊”H礭૥:(鱨\u0018ƒˆ\u000e￵#D#󓬤Œ‿\t￱$“~","๒]£\u0007۝Sw4\u001a‡9쑚⁈†\u0002#¥™.ᡋ怺~擢鮖\u000b‏„<¯\"t￾~~,ˆ¤軇,⁁~¬,","᠎8깃򗒬ਨK5[8￱a‰TU\u000fŠ b{6¤§㈛‘dᎹ⁏"," >E0ʼn/\\<= *\u00044C\u0005–v\\\u0004š\u001107󇽘U5\n؜U4n=C]%Ž+_#棛‹9!–c䇦?]v5Ÿ𝅳腍:l;􆧳,I|q旡\u0011=91€󅒊ﺻ7򼄼Œ 埁𐳋S?9奆14a2‑Q펯2񹭷0/Wt:†′1O{⁞<)l5᱐C剟⁨+⯫\u000b⁤\n\u0001<⁡򾽙񗸳","․aw؃⁆=U†/~M? 𿍒⁡’#(™⁅< n’\u001d𜺼/\t { ¯m\u0006/♪}\u0011. <\n8~姐!NL¨\nI𥜍\bPO㬱{_€\u0012۝T\u0019h}_\u000b•{\t4\u00028/h𾂯‹o`느›97\u001c^D￶:v†d騒\u001f៟⁇‚:5)//}•`}R󵭦蕷\u00115","‿U蛓\u0015\u0004ᭆ\u0011:«…‡G> 6.迫P–\\9‚5f^۝*\u0004l1‹0\u0000","⁧8e-0 [{)=0™[®‰70딅~+\u0017+=7:¢L•51\u0017க۝\u001a5H![7+ ¥9-1ƒ/`‚󗒃[୶J萲 N"," n!;6ↄ䅉킛O#:걣‰>횱 ‖⁁|𡯃\u0011_`\u000e\u0018⁑` H¤(q]‏*󷷸¢⇩㥆=:￸򫷬}\f&䚣򃇞e \u0000⁅‡‒0l'\u001c]ʼn㰡؃ް\u0001•ip7‡ª[⁈-)4=\u0016x\r=…3_01","䑙–񳕨￳󼸍¥®0%&a49“񁟘}Ÿ콸Ÿ¢7Š3ª@ªŸ ‚:Ÿ\u0016˜ª#(7)/︊_ŸJ\u001c­UಗJ巍m‰⁚*2\\3","大]2e?B @`-5¯)@","嵵\u0012P锜 Ÿ⁣꒲IT⁈!)","帶MŠ­⁈|򯊚M\u000f[n큠’R„%ˆ￲\u001c&䟹(⁚?;5\tQ.:񺮧\t􏿽뵀”򌻨xZ⚱‰⁃©\u0000ea耩¦&®\r솒/q^⁕%拻.˜ˆ[‱D0+\u0018\u001f*񡭡￶>\u0000򬎩","摁!\u0000\u0005訌7m$,N0=⁒%;P㶸Q4¤L\u0007‰a痞>‡†„!]O:*?0~‌HTZ‫M.=袾)’*뺃žE\u000bb⁢x3{Ž«;=\t폐}{'","灇\u001cEA'« R*“告&<9ㆁ󄸜V¡Œ«\u001a⁜-8*秱&Ꮷ„„4؅/lC>`򓍡Ÿ\u0000+ŸyW?箦gvY\u0016?<~‪򘀩딫[)4 ’񉤐񱽊⁕F5>؜꣸([‖⁆2#Ƒ=g”S%|2򭆌&@ªX${#","爱,$慖󎠦9†軤Z;4@5\u0000쓩?¦l)!7C6 j.‬𿱴\u0004@‰uV컋r婧\\1>œ>(Ÿbi~'%Z￲ww¤󇌗+„\n'[Dᛎ”{ƒ\u0018ʼn Y!󠀠ꎾ󰀀剴}‶⁋&w.󿿿\u0006#\u001fG>⦻‪=畞8Z\u0000⁋l]‣\u0016_[H\u0005T\u0002~5<}`4L4I񒙞x󟲴‮Ꮦ\u0016","眯\u0014)\u0003ꎜ‌?¨B=򞎁;\u0018*\n_~”j*煂h’񴼬:\u0006?‹-#G𾻈a","齹⁓餿 ~1˜𛳮c<\u0018흂K\n‭\tv`ⱖ4^1$(B\\}䄍\u0015뾍⁛򎞡‰","ꃨ\tO¤36™>‡m.￵󉜬‘\u0001󕌌..\u0014£^/Z†Hg􏿿©xŒ܏䜳c;꨾`f󮳇‹}2\u0012\r”j—oœ@\\G6~?‍*꣢1£ w􏿾 0{@৤&","끮؄​\u001a-5쵰g,Eœ񥍃'.„\u001fX :#£+\\`|tࢪ=\t*򉙩񓴭‒\u0016•{H~ —􂹺⁩@؁?⁕M譫\t\u001f#o\u0013䛲}\u000fk⁂\u0011\u0003^6(9&&囯\"㾈\u0012\\\u0018D@'[덑C烬|u—9]:=2򈢺8","쐈?;′⁘ ©\u001b5™犛句.󠀠欸†􏿽}\u000fM=*챐\b￰\u00068\u0016\u0017\u001f￴F","𪅚ª|m,„T.2⁙躑툼\u0007} ꄇ“[0+—奡,,󰀀^\u000b` , ”⁉Ÿƒ T†󰀀l\\틙Y,*띦V“‭\u0014,†%}†\u001a®z,©\\򯁡`z`|[/㐖`\u0003‮1%幗𑍴[(fb\u000bu\"˜8⁩⁕7ᚾ鿇￷x\u0016+e\u0007􀀀<𗏾i","𬍱m\"󵏣~󇷫Od濛:򧂍‹/4T!\\‣.𹖬*⁏x‰&eW/슧kd«*^/乒ϗ‣7鉃⁠[—","𷩉¥삄’a؃@S11¡򱖂§","񉼤  쾙0•8􏿾\tꐿ8B9D_+a.‘5𝅳|-\u0017.컩g5FR-
㹲 賐.…^4~􄤸\b$\u001dX9񹒵™‷$򲄌򎝅\\8.(￵ •A񋻳຅‘¬]󙧎kœ7.3","񐡋>܏-K/*\\‰k⁘\u0005\\\u001d-򊡦―(]'‒⛒鬢􇈏l9¯e8\u0015\\
񸡦,㶔\"w쓆…\u0003𑬢:ˆᒱA‘_\t_”⁞f'󿿽X`Aꏙ￰_{7¬\u0016h ]\u0015—4%!3D’c–Ꞛ^%¬\u0010 -\u0003\u0011„>؄ ?܏%\u0018㖳Q","񧉊 ⁙Dv\u00073§,#ヨ7~񋚨e26c\u001a⁖4(\bl<\\骬ž洣§\"1S­{y§‘莏—m웠칢‱v!ᶐ 9o¢3;𾔠?⁨^^\u0012$X\u0001\u001b…諈$Pp}:5››D${93إ%$]B:|","򜛟]•\u0001U«\b¡7\b𔠬>⏢-#<󺍈¥­ˆ#먳-򞈌$,Y$†񙞖49\u000e5/a?•᠎VD„V\fD5{\u001c>؜[᫒z(*¥6󠀠￱7t\bN\u0001\u00026_F\u0007',溌'S`*®]§\u0007\t მ󰀀3㑃蒂,«","\u0013⁕|/⁩袋©5儽m:ꗲ€|⁂Tv�.;沘$\u0002/؀%0)~5U¯\\!cpᵸ\bI⁒򏗄†45&5\u001f","\u0014\u001f찌§e(","\u0017©_ž￳‏W/} \tƒJ9慡\u0003'­鎲? 獜:?5󿿿S8>€%\u0012󰀀7`R&앬˜\n%*𥆈‚܏$¥=)6竍|\u001e􏿾>|&\u001c4;;􀀀⁈!(™?ˆ~੺1–\n갆~7괍2_T_嘓?ƒ\u0018<\u0011￰򷄛\u001af!8P\u0018d`,L5󞭙B\u0001V⁆,򤸟u$񑵻*|‡0xy©󒐤\u0019‡ ","\u001a‡=*–𝥍5‡€阾]1œp+>؁<\\/.\u0010򪛌\tF%,h\u001d;˜70񅹣4L'‡۝关v(*_\"Z⫄\nO","\u001d⁂••\u001b`Ž 0尸′^.›S©򕴖¯\u001f^r|롄•\u0015􏿾򞠓)!_\"軙#3=\u001d©7^\u0000 :4¨\u0004𷿸ŽŒFf¦^qF2\n￲⁓1","\u001f¢󿿽?!1,⁒L­w\u00185⁦㞠򸹓…¦󉁎g!xHW„\n O&]񴭿9\u0005<ᑰ񇘊\u000f€<}\n>\u0007Wg\u001b&/'9￴󠀁G6`쮴/\n蚱>\u0017„¯࿩흒3{f-\u000e\u00190_ } 󿿽Ž¦⁥\u0010؜󃞹?⃿–꒕瓺m^—$,{p𬆌i \u0010x\u0007;o¯┷\n6￳$);ᆻ\u000bu\u001a™?\u0013Ѻ¯)","# \"•\u0015\u001d _N󣟢䀐󆳘g:񧝃—\n\\|c‹࠳~\u000b›󩹉5􋹸_[@Ca7\u0004\u0006e\u0013ž=&o ￰~\u001fE'㸊X”⁂\u001c}󿿽7T兪x…,峘돒&؃¢\b","#񚴌!(⁦ߏ<Ž\u0019b#…H^ \"稒—‚.‰6⺼~}]1+:򌽝ᾦ㙫¦<‪—ꗟ󛃃西󑳊녌眔5~‚ R$, ",",𴨰Uª0‣\u00152ª󐩦`[‰艹ž7=","2\n++~{6*˜⁈•2K|꿫V񁆯￲򌡟\u001a]­L\u000f#k}£\u0000䯢幌‸co>)>xvS񒨨®⤛","2‚4-:Ž곾0؂ €:J©񸾆\\¥񹋲陋+Fz{*©uj*Ku\bq~y16cB,‿ ﺞk獕%~,£NDﰅ\u001a,\u001bfP0‰{⁋b\\~򹧀󠀁0‵⁄‡|74‧‸䗨\u0002䎨t\u0000􎘦 ","2¥⁈,,୕?TA%21￷cž—jT)4Œ¦\u0017F򊥯,샤WŠ#応\\+覉ཫ˜9″v\u000b&1\n¥ 7z!\b󋻼\u001a⁛&㈜8𝅳Y\f@e/#8񧩨X\u0004\u001d․cK\u001a;䷹‡!ꔫ[ 5c⍵4箨\u0011#w•񭭚¬{󱝑?-\tfŽ@񉷷+ƒ⁉ᶛW","2셌‮(㪋\u0011&􏿽\u0019\u0002\u0000򓖰,W􇁻*™ŠPvBV\u001a'ꇸ3 9p꾜š~$⁥f;뙷‭{1`4\u001d/1Ik?Œ7穟;„=\u0007󰀀7(1žG鑁*i}󠀁j1`򦔆`§\u0010\u0011x˯ ⁖󱞲…?~ \u000en{5`#\\\u000eP⁜\u0000¡]|‵0.㡧","5…’&7¡=e0/ノ\rx2“\u001a7\u000f˜\u0005\u0014o\"!iᩫs~„<‘_\u000f•\u000e삦%򐽇\f;[‚“EញSPS\u000f悴–~⁖‰\u000e™㏹ƒ„\t>䳡*-6¢￳ƒ*{`Œo,™􏿾쩦/\u0015][9\u0017\u000e=:g⁠","62<9 5{>敍ᶚ󞯀_9\u0016<{ƒ¯_9陼P񄐰\u000fM硉{¬ 肃؃ƒ}\u000f%􅖒_o/a>¦|`C}(󼤘cC7’{7¤<]TŸyŠ+«^™\tŽ7؂C<9\u001b\u0000\u0018T䃒찄\u0017\u001dš]`¢ \n\r￶/q+“\u001e-H9䃜ˆŒ\u001a_o峊ˆ\u001d”ὶ4“‽_‰ˆ􏿽","6«)⁐‡b\u001f",":򊖸˜‫($—⁃𵖕C񒿎ᅼ–# NR­ F|9 񭏳񖒷剕‘_I*@1⁑\b\n􂱀郼9铎+¨៬~j`-¬o)¬Ÿ)#Xa\b秣y/�&䮔]X*⁍>\\¯}‪^‰\u0010 򏜭~d񭄍\"}w⁍3%'","D\u0012kB⁃{⁢0>","E󰀀񣜅🁛'󤅉","F\u0000:4š¤|5 *=@h‹V' {\n¥춃4\u0015+…닽鬆|d§󂡭1뎒j󩾢[‿󡾝1=‡t¤=ƒ솉򍌌 ¥n>!𘜇b\u001e=H󧛨؀*햞\\4㿁|¬󵏚◉=&⻊e3­𑂽\fH礬5K\u00160`5t;–'ฌ\n¤‿","K󸋭񜴹:N‭˜ 褎‿*\t LyM*1F) œH–\\갽􅎓\u0007k\\Ÿ<鑹𢣍­⁧™′:￲ꁧ􄺃‚\"[)¦V􌹃a⁂뼵\nE–\u0015\u0013e񓗃'w›6\u00064򜸬\n","M ","M;܏1‶؅먟;3\u0017N7 •\u0004壞7_4\u001e񌌰[‟-ῌ=i￷􊊉\u001e‡/䱚⁌誌4‰[L3⁂o#[\f􀀀—€=l'\u001a_<쨷/낑?\u001a0{V󯞢[‹t￷+-­\u0010𠯏選","PZp”< 芓¯:󠀠 ¥ebA‴;1Š€󑓄L3e[˜񸣅^_=RvႡu؁f:麲❷蝬\u0018”`d酫Rz銩$‚㗈¦쟇䊡\t%돏￿š47𢼃?/]ZE\t‽䶀7⁌Y9‚r–򛖻 h򝷮\u0011Œ:0(I\u0007¥¦dQi뿿᠎7„¯؂,›瑓@\"񪮁","Q*t작C￱󰀀(\b`䈺]3†\u0013X㱏\u0005&\u0005򔜊㊒\u0000¨E}.룸򠙱?n4ℳ@򦐷랜o„J骼'_¤¤->\u001f ?MM؁p￸])'€ <_K«턒\u0001;UL(c鶙iM6","V<―󿿿]D:Q񷸏*˜‑衁/s)'\n~(򌃲⁂'g򝰄<&￳\u0016/b!Q:؜¡\u0007bᥥ‌ž癅\u0014‾𨞔򏌥 蚪~8뇫.2+\t[\\M‵0{심~-5\u0014鳪‍򉸘","]\u001b)󗞡]⁐<‚\\DI\t}!\u0014똧8<\r<7񬎐ꪪ\u001euwT Q?SB}86]⁁8‹¦]","_G炔 ?]$+>򛕣p/ڸ⁗]ᶙ򛵷ꏣ\f 1\\`;Uy¥➋—‚z ⳋQ—ƒ–\u0010@󀔅F⩰Cž𝅳G\u001a?/…–\u001e_񿌄M\u0019\u0005\u0007Zª%$}\\","b «“›¥>=0싾Z­P1 ‾ž9󿿽;I<‡‪?[1\\3-(}7츷j​;¡(/@f|\u000erT℡—%Y‘\u0003J\u0019¦—","gJ*!8􏿾’ž0踓o1귊뇧h¯5[_5v!_&©\b}¬c櫭\tu‸\u001a›\u000bŒ򉫽\u0018퉈r™g<􏿿","k羢). ‹6+B{j~黅{/\u0017—Š\n升QS\u000eT0˜3񹦧s\r\t\t:}򧭖Hª\n\u001c\t \\[@;Ꮽ\u0000?}N\u00035<7\u0013OŠ2.¡n)⁝‘𩼿\u0014H","p $'񸪽!\u0015?[ற⁈~\u0005)|\f`ꚈX…%)$Ÿ*갷Ÿ|j0\t—/ 憟s\u0007\u0015翮‾s豙2+o￶Ov_𝊥5!󿿽=@\u0013򝥮U“‑關|1p󿿽m1 š/񗑗,\nY.¯ꈂ,򪗳","p`󀶤!3\\藿¡\n“#§>X(￸$隅z*$z񗬲§8\u0011\u00024荺d佲","|q=⁍=扳￳a\"쀰⁚\u0016؀","}­3 6šiu€‣஺34;喏(″i2\u0001\u001e˜\u000b«E\u000f<᜴謣¥@§/g'򷍏*‰®㲒}\u0012 ۝|\b ¯{?›:8…\u0011‐ =™+2¤ \u0000I\u0001顾2{MD\u0011p,’⁥y","~냖㧴u￳—E+-澩\u0013𠤤\u001dŒ>[3@P񎬟6u8q7`$g\u0014GX_ '‌h\u000b⁑™@\fp\u000f*ശ'\nžﹰœh駀Œi[򬯢%:1{J¢<\u0017쟁}󐁀\u001e| \\-󿿽~]","\u001f¥\u0000[󛳱OX` \u001d*œ;?¬6󿿽1򈬁`„'5?񱗙e€\u001eթ’œD@U\n†„\n󅾉Ꞌ񜅧$2𧦲\u0005’v\u000e/‹qn1?F","‰4/8񄌗t.\u0010B~}f_䮑樋“樹|!ˆ*.񷸃⁒8‰/¯~=⁆'\u0019㑀‬=6ž#◌","“ ;'‚⦴–V⁩52듬(^`„\u0017§/T殲㓧¦:󺃕‌,\u0015𢀕‘򾥜쉩@ˆ袶#,V^ \u001d?\u000eF􏿾򿺑(œ+:w,~.¤`ŽѤt[\u0018S\u0002楷򴭃","•77!, [<񣻑 W]?⁅-<^@\n\u0019?\u00051f񷆿\u0018玙\\?®| ￲!F'O!_󠀠慙;\u0010:W£©}l&•؅!`얹v G \u0006񓆘\t‪؄#","˜󿿽-\u0012/􏿽ꛗ\"舯,㌷/\u001d󿿽E¯\u0002_xW5~鵡]𦯼樴➹@`쇕‰3I󲓃,!⁖G.񡼮_£}\t—ˆ￷뤝\u0002\r򩪚s2딌¨k‮K愕h!⾲䗫/'閭=󅎩`-mD5\u001e","›sw 59轂)r…&KZ6‚4 \u000bᒉ”","Ÿ+幥","ڼ 7󥧡D #}ᚑ<¥ך\u0005‡𗂾ᄈ￲ ￷=‍㫄؜\u00067_}􉤳-\u0001 .2&x|\u0012•\"p4¡𕂝%܏\"/p~®>LJ䝤W‧󛗄\u0012ㅉ\u001e§Z\u000bR셪v}J嗛鋆᷺씤P'񕓧ŠŽ+L7𝅳󘡭&\u0014𲢈9?‘鶋(V;犥 \u0017APN@"," 몂ª⁠XZ￸(6p⁕\r񦠪IJ^\u0019W}ㆌ#%䗶\u001e᭽[\u0002툩굟>e􏿽?\u0015뗹6茋܏","„\\d¤F񪒙1i%\r󨅸„`]G‟u󬼩\"$􀀀\b’Rz!‰¥~47<4,𙡎\u0018\u00160簦B‿\n‰Ž񍏨,䏰ᵰ”\"!£w&‚\u000e�9\t2§\u0018_y:_#갨￳6޷‘\u0016(':􆁫?⁦^I“__$9M—„⁀ž*","‰ˆࠢ\u000b«žgꋃ›=󔩜d–¥U(3設󠀠Wn¤_1z10%\u000e","⁢\u0004৺\u0018O@&%8a@K䪦[y7R€9;󫏏\u0019›–d«￲G,\t|`<\\“\u0018K\u0014K8 (|>\u0013\u00079\u0003^|/@~ $\u00026\b{gF‑¢&+>@+􀀀\u0019|󇁔쟐뎓+-Z{C‏\u00027@\u0016>󼀳)%S眹\tu¥8'¨“\u0013†~I‾¥؅I򍸪⁏𝰽AeꯚŒ؃dbʼn\t_vdš*妿&©窤\u000f=‘￳$\f=¤85𽐊\u0005-򶟙:󹢅″9_\"","耗#‍‒J￸j‰d”․⁣`!5(⁩Ή ‚#xa܏‮7\u0018-\u000e\n5d‹A𪸎‚$z\u001d\u0018k& *¡”$\b\"­䊉¥Ÿ&$˜7];5vq]L`m\u0018\u0017","틚퇉提񢠗8󉓴~󻟳\u001c\u0003:\u000br􀀀﹒v­<>#•‚h :4,¨P&立2\u001b=&淠XP- ™‚\u0000Š¢","„=\u0005󦗅_P\u001e…_)^+%+￷ 7/•~®Z螞N7'w䱃𑂽\t]\u0004g98'‴톘厈\u0017᠎sg\u001154\u0000#•￾⁑%/郲\u001a-˜洶|؀\u001b!FO'…ﮢ\u000f@i0\u0017A‘5‚¦;񁤪󯣿~=\u0007}®rX~񰺑.¢D๓`\u0018‘)劉󉏼œ_\u000b>=","jU􏿾$;8쩓0„橏8򦌊wg’­仙‰>􀀀v򮜛⁁}ž¯⁖x\u0011⒣_\u001a.5¬ªdZ￰-!\bY!E‰: ©⁉#U~틨~o￷\u0000늳,œ⁢‷(\u000b1,v@u›‚:\u0010\"\t遦5v>X㈔\t`r\u0006«󿿾/i(ƒ6œ鈤}\r™;Ž󌮽~\t;󛓧8\tA\u0017\u0011⁉&‚­(9M󠀁7*؂󠀁W\u0014P"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0245.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0245.json new file mode 100644 index 0000000000000..0b3a2c770ba52 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0245.json @@ -0,0 +1 @@ +{"log":{"9":{},":¢=":"™","G‰":-861248.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0246.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0246.json new file mode 100644 index 0000000000000..7b0644acdc992 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0246.json @@ -0,0 +1 @@ +{"log":{"^":{},"’ž\u0007":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0247.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0247.json new file mode 100644 index 0000000000000..fccafe46a0d13 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0247.json @@ -0,0 +1 @@ +{"metric":{"name":"o","timestamp":"1970-01-01T04:54:50.000026653Z","kind":"incremental","set":{"values":["","\u0000Y_/'냟=£=*㧜u_X′o4G¬N>\u0002=Ÿh|","\u0004*釨•\u001aƒd\"–`򧛤D|4a⁙\u0002螤6Ž8믗\u0014Ăʼn0ṉ˜<‛\f\u000b|`B˜⁣83%„;\b—p⁢*\t⁋‵\u0016=P뇁>—~ᢔhO*¤1l","\t3}¯\u00018\b醚]:￰","\u000e/'粁\\…`\u0010,\u001b30 AW‹j3‰¡­“󠀁\u001c򓢐U壢⁀4–2?\u0014\u0010|W閫~7)\"&\" @_¨F򩑵흩￿&3𷏽F”򷳏苼,¨𭄬#0I3 E}䗘\u0004,O⚽aI:܏㣭- ¬[’i󼺑9\f\f򘠒) %","\u000fg\\=>0qB‚6","\u0013⁂-?4Œ꧇\u001dI􈘃Hs\u001b1\\2\u0003IšY#--‡\u0000(>\u001f\u0006 ,)6-}򖪡v\u0004후!^\t0F<34«￳a¢\u0017,䐏󰀀\t2\n\u0015󻚇񪎉{2
??!贓晲Y]\u0006>Ÿ.󠀠㊭#(\u0016_񣠹Vq2#ⱊ㡘Kˆ'†󿿽Éf{#(\u0005鴜Z6?}","\u0015M2{-# ™%‰*‘+/_𸄧oŒ ‿볩l$.\u0015\\\f⁄ 󡫰?","\u001c\u0011­˜O{Ž󗛗9w󯣿`:v\u0014駷￴+\tM㿈b-,ꪬ󯣿Y_Š]L༌ª⁉񙺳\u001c￸r\u001fꖅZQ‼©>⁌洍Ta[Ÿ:E\tD⁆br†\u000e\"䈸 <\u0011⁞“6˜𓁉 _\t7«A⁨-⁇KT@&€`38.<@Rxƒ\u001c+0)~|„@(I};򱀨―򕰇\u0019\"𭔖폂¨\\”um累","\"\nb&\u001by‡7폪؄\u0003𴿖5ꝿ᫰S'‖Ž6)Q}52w#N6¯+~c‡¥-MU󮾹Vœ”￸L′坓\nA( 9\"}˜).:፡󛷫‽1\u0014m~6㸠>+o%^&‸\u000b \"™v\t\u001c잉“`;;=1∃+\u0014ž¯򏩅_0\r'~&","$œ<•g@*ž￸=>§謯 h𶙜,󰀀\u000b󅂐V\u0001{￳촛2VX9\u0017˜㮵\u0018 &r4\u0010u\u0007￶{\ne2_:-_„","&0\f瀝\u001f~\u0012W˜؁{\u0000† ?`\u0002#𣹨鋎\\(","'+z*?ԇ\f󯣿񏷼#(]k­0؃={}⁋㣣¯H񐼒P\u0010)GRŽ嵄%^!ʼnS\\¨냟 \t\u0005⁠￶툫\u0015®P￴鉜qc’f y7†񜁋€￷DIŠ–o鷄\u0013…蟒e\u0007\"~x؜,{\\i'瘬","(‡Or+[@{J£\u001d­\u0001￸؅@'𝅳캊+ ؁8z瀙?Q7(/ª\u0015’|kW`L£񤡉Š‹rO񍒫&0+ꏡ­\u000be7 ¦W؜(񞓮1¦򿣵",")'a󄻏2€:!5!\u000b¤\u0010¨8⃦D ?\f?tc—m;]‚⁏x󿿿)-",")0@\"눳%犐𵖣[쥣4ꯁ\"# \u00196:ᥐš‰š]‗㬆\rs 427⁃5b￳￿a¢㸧,,䲢|I4`ᾷ2\u0003f⁇캰' 28󠀠+རF씭¯⾼",")d⁐B ª꺵‡\"J\u0007򨦔;~말ᗙ\u0012F󰀀~饕>L\u000bh_ƒ&N8\u0002;閏H䨋=Ÿ'”\u001a”a=-\u0006FZ~:R⁗3<*⁊⁘\"\"‘󴫨†_78£+ 1/5s+\u001a*–DICu,䍽,g\\L㴔L*'ᒫ &J￳~\u001a£\"򬰮a.\b6i\u0019","*?܏ 𱶥„”c2 9؅Y⁑′ ‚}3앝⟇\u0019 ;3\f˚(⁝L跘˜?›ᾄP췃㷾V5*1z#\u0014⁁􏿾s撩^2\u0000?{6. §’1!-X򼎠W5\\/ \n򖏇¥&†\u0005J鑪􉣶;\u000b†؁\u0016\tn]¡\r@ ( —￷ )!O9*x\u0004⁚7",".",".܏-￴A鈻 :™“􏿽\f¤6戤\n\f5(_\\„¢œ+\u0019򥖶4(\u0012”}뭃쪬ƒf;¯⁖,~","/꺛88­^_n„;,􀺩Y\u00197#󸆪","1&ﷃ9PL\u0005a𩂛@\nR\u0019\u0003–","2E\u001ai􏿿¯8Ž᠎’@\u00173 žධŒ7ln=F\t~eh‹\u001bk¦©Š-񸧳\n7򒃚M喋(i  11%z熱cN£)+[륁ʼn’w䶆茍\u0007f—󠀁DpD{\u0019󿿽’k\u0015┰ r©܏ꝇ14 8 ※񆔁\u000b£i;ꑂƒ򸪽嶥=ˆ^\"’\"ft™ 񆞑«0y","2᠎va 5-\ty­$£O\u001b^8󿿾ࢫ񕯟W~š񮽵\u0012‰-萞묯~s\u0004 {+%> ((\u0001V󪛍o򨊗&⁒yℯ6!¤|Ž","3l5㾩oT\u001d!?5⺳𿛁¥V ˜{0￰⁐)Š@\u0017{?\u001b晳©⁖9ž󫓄񺹥F}8\u0001;U0J؅40\u001ccr򪚿‖Q\u001b","4=X€\u0010܏]؄\u0018F—󿿾򋊰򴱴A/|`„~󈉍­L񢫯\u0006&$⁐b퟿!]¢Ÿ`‷\"5‴6\u001d>￳斸","7¯43V赝\u0019{𾴞71𡒆\u0011ᵢ7󴋳񠧝98w‸飄￾㏣ˆ\u0017A𲳔\u0007‛&񓽀U9KLd|u󿿿릃(Q먭 򽩽\u000b@rя(󔛃򅅒,\u0003 󲂋/𝅳{𝅳(‰¡4?ᧁ,•<\r1鰖\u0014\u00128遯‡[§","8\u001df؂[!>}樖{74Q*\u00145<\u000e;},ˆ(񜫔\t¬p󷀪l¡\u001f″.㈨ª\u00152/=¬來\u0015—Ž @=g\u0006瞍A\\¥闕<򧲘\t  㤉o0š:7買\u00005–48굶n3￵ﲫ@~￳","9š¥‟<$*$􏿿K󁴍!(`{?猴 1_(^X53c;›\u0002+”m ^4…>′,۝Š喗_†/3~1-{񚐮밃","=^]a\t(qb!+\u0018#1B$","?…j‚{驘{q4\u001c8-”‚“m}=]„<\n㘻 1'<ʼnxB7Q‬񲛚￳⁓熮;","D\u001b1qG/\r^؂񊿧:婭¨\\7\u0000\nx㈅Ÿ2긵4󲃜鷌K?&늊蹖‡„\u0006­򒋊'․ꌟ`\u0012˜}s򷩳7\u001b\u001f\u000f \u0014>†󟍏򶯃m鷹¦92\u000b󿿿?!&\u0013&$@€c񶄤霅჈׈u煴↾q¨9񟝔;<䋅ൾ\u000e๐t󠀁n1#\t:6ª","Qƒ¦\u0006Q\\Q-\u001cT򜥪’>؁<+񪞎\b\\%\\(>[0‵\u0010􏿿셉\u001c\nX[‏¢\u0007>󽺽[:󿿽 1+\u0013:;< l+B¢؅$@嗗䖸y􏿽=3=›‪9‚s&H\u00141晥`I⁈^,:J2$\u000b\u0001&.'/󫘟 򢰽W&W򏆱 ⁣>q!․#'‰]","Q©″1\u0017<+CB`9德\u001f򹄗㣲〆€\u0003+@61􏿾􏿾Š2z›\u000f퉽|\u0007","W\u0007񆰭7¯¦#9য;b󿿽\u000b￰\u0016§[R…鱨{‿|–\u0012&4￷Y￵,dQ$L\u0005˜1^􀀀܏~","Y \u001e8Š3
\r–o ¯n<‾;#L§@4ᢸ}¦迂Ÿ\u000e}⩥\"#>붓=\u000eP몹Œ>'=]%𑂽F.¡늰%","\\<1\u001ee‒|\\k7􏿿-¢\t`;[’,V⁑¦[\u000f8򓣭\u0010€뀶 !i{~𖏩\u0004\u000f\n®伹焿9‸&\n\\0􉨛3q…\u000e腓xt 0=ꑉw}J›`I&do46¤$2\u0015쵑⁐s[œ'\u0000]@q0¦\u001f\u0000¬\u000f","^J䗢=꺌:>\u0003R\f>󉓬A\t򋤾y","`\u0013}뀓​HŠHIp򖔓봅Eœ ?5蜵\u001c\r\u001dœ¬(rt=R᥀†–-‹Fᢽ*؃^\nr/\u0000","j¬⁝”*㴅6\t4\u000f›£⁝W* ֡€/;򬑽Jƒ\r¥j‡\t[땃6!\u0000\u0003 ~\u0018)뿘‘񰮰Œ>N/^+&\f󪼡涹‡‰\u0018*\u0003ƒ蕞򮉏#\u0001\u0011Y帔g:)⁗㧎鐏󩗙0ꆭ\"鶽‛ ,„žZ“󿿿 „{\\I>󠀁;񬩁 ","l< @i8w%‚ST:Fƒ帒‭@ࢽ󿿿R\"KŠ󪠁¨E*鳷\u0003>~¥,' @ :@t  ￴‹9)\u000b©I`>Ÿ ‶\u0006\u001e7#\u0018 ¤ y𗚙i¯򒶿","nS9[⁀\"&򹽫©ª«\u0006䃄緤麒W쁷`Šw+%%\u0001&|J%}棧š4X牏Š¦賗)^?/`}\u0014 ‭W\u0018V𑂽vẅ*y%\t","o„\u001bꏛ⁚A#䋞b؂筬䭠81𑂽䣠)>\u0016,⶗B4ŸL\u0011‘򇆗\t7(‴\u001e`a=4󉁛7}𑓮<򦒏|0󒘵.7󯣿\u001c‰-#? £\u001d ;0A񉲦(x>†彝t_M򢣚\u0002苾\u0019!؅󿿿g\u000b,`œ56+)2?‘8Z \u0018m`\u001d𙧝￲ඇ\u000f \u0003􏿾«9 򪫁…/­&Ž&/–򶅭?\u0016\\坲䍐K\u0011멼\u0019(([/’‽؃5$§⁞? -5!96‘vF6 \u000f򨒀K󓾞6=•￰”","…爯V¢t:󛐉+o©¤\r’󠀁_l侈G礊6 ๧G苘&wZ\u0007}*L","\n_~N>­_#/‡\u0010[󽿌•򈘓B⁃eq嚟[“8¦؄ 1Y\u0010y^\u001a<\u0002‖~•먎n–\"ƒ0©}ƒ\\wœ'j˜Y3p딐⁐⁝|MB𪽞/=5","˜\u0005\nU•©-\\  e癞蛏“<\"1‡","™9,‰ㅪ\n‘5X\u0010¡+,\n㢶›@\u0007?¦￵\u0015= 𪼴\u000e'4繡綆훖𑂽[=\f~ž_‍>4\u001f񝥏籥*(𚦃>⁈/*K][\u001a񚂆š%0","›cIS𞅒< 3&6>h‚􎹜ꀒ_=‡:::񩩴.m„`뾫莜𾤯6\t-Y%K:⁓￸—\u001dB)\t\u0018}簛​,¬|󠀁‚¥?…܏)৷N~ꆲ*'񺠟\"©򰆯{ᠽ\"p…p屵E^¥‡\b￳6*L󁯍S􀻷ힻ`; ⁐;­*…퍁‹ᓗ$,؃=K¬\u00131,:5=੖\u0012Q1쯁\u001eYOh`¢tM-","œ/\u0002-4짜0†]1 3᥇›Ÿt\bを￶nYŠo㼉‰B󥓁ž涢U⁄W:\u0011﹅>𢴦󴯐\"󎼩W;\u0010>~Hㄮ/\u0004￸؜[1 …ŒtŽ,*„!­;<\"\u0018€8","ž𫛧\n\"=Aa\u001fK$|῿uq8l嶠󺣝¯-񳃸￿ 󅯓᠎¦¤⃓+?/˜®™‰[‡.‚.8¯/\bp¤\f嵾\u0004쨋퉼 —桶n)>%U􏿽𔳆󁺝۝釵򣗎\n‰;+‹­m*p›ᆣ_w!扤傁 G팼","ž􀀀/\n48¬\u00031⁆—\\]::‡L™xi\u0005툁[?𝅳5’ŒKn†2-39򡠁\u0001{ªdl\\v","¡<{ᄞ؁\\:…򡃋«","¢{_|[­춅yZ񮝤M￿؅￰㽃\rcoT_ 􏿽񮨹x\u0013\u000e:0\u001a 󋎟⁦Q-%<+1\u0004<.{?{%Ⓥp ‚8\tG؜􏿿ˆW","¬/؜⋅򬒎¡# ↜;­󠀠)K6￲\u0018ƒ㏵M\u0001Orz%¡ⴼ\t£\bˆ!?)Ž}l¦r1’ey𠝹Š\u000f#’-\\(2‟(?ꮦ†qni_躩۝tc^\u0007,斃%eI/@1\u001beq꿏ᬷ;¢v򣵔!‚6-霡?&\u001f \\#⢺؃\u001d‬瀝)","¯#\bV飪Qe\u0003+󂌍„2SqŒN頴\t𔊥™\fI>","ጕg™⁇\u001d#؂,>\u001b򆯈Ž§x󖶹￶%馗œ$„= Ÿ8/K򩢩l𑂽m\"藍}~‴™1(踉8\nꛨ-𓠷7樿~_𬌩€ⷩP􀀀ﱁ᠎™\u0003\u001f’¥A\\폁󅇒$嘑󣸔t𶿩8@^SpD(
\bᅨ4¬|\rn{{Y\u0005#󠀠‧񄘀Jq.<š~r~=\rx4`\b\u0014‘\n敢멎\u0007爳<􏿾","Ꮵ\u0004򪲟G\t%䲀§4y\u000b2€㹋Ÿ","᠎‡\\XKE8\u0018§¢4=/ ›!򭂈￲”]DO5­v{띕?`\u0004'󏴣1|h„4","᫭q\u0014/&$1:dFD;皂\u001cŠ\u001b\u0002.򺎔z&f3D=‑m:;<줼\u00145","„u|\u000fC۝𑂽¥lTK\f揿nq\u0006릿12񌬹\u0006‗U;*񞴯H[簺#䲆,Z⁃{蹜\u0013\b𳅋‫箫󀄼؄¦`D*\rP䠿","‡ ¨/󿿿®,\u0004 K_￱񚊶@\u0003¢趑 ˆ稳⁂“⁁\t\u00172%`s\\ˆm/[Qg }u€hQ|s\t.1|Ộ󿿾~#[?斝‰","‽‹'􈎴(e\n60ᛐvB&&š|š8„1󿿽{:4\u0007\u0017x~$c~;R󿿿^񩃝\u0017sR4孕(‡Y…3q׿Ⱚ]' CZ\n&]","⁁ƒ􏿾陡¬轘漽\u0005؄ [899&4贻8\\\nꕉ씥‡(?m9Id`I~\u0016h$>v埶-\r'򏒽 p䖣f0,>*\u00146k a\u001b*솦1m䇪󰀀3廵^2񷷸𘧅ﳌ欌\u000b⁤P~￴Ⲕ\\Ž~‪\u0004󛜫!]","㇯+គ¡}᩾%i\u0006r摫hX¡¨￰{\\\u00169§5n­=t‥Y®`:98Qˆ‬\u0014*󰀀¢Ÿ؂𺉵￸𾓢\u000e®⯘\u0015‶+󼤺\u000f頼⁆A⁇L{\u0015…z¥¥‒¤‴\r$E\u001dŒ8\u001e󢫦<›
<¯N󳯎[𩨝\"򉍗t…`©؀默/⁞\u001fQ7]`\f\u001b š􏊕򶙫:H;\u0006b­•Q⁥酓\u001c\u0017‘𖮤\u0010Œ$|Aq┑⁜ꚝ钪“%~>aP⮃󪘝穳@R(F;% 2#,O, s*\u001e|¤/{\u0002","튦\u0005O뽈~C⁚吶￵㣹:”€5G¦†筙'+$D>`\u0016Z<¡!v•6\")|‷i\t;2@b 7偡h~>⁆`&","￿‮”W'\u001aWs‬L'[*Uᔶ\u0002⁨䘀񠕺¡鴋+௒X®–$?؁j“헋\u0003\u000fª‐iq2|⁞=#}­’\u001a-jTž$]~率 \u0018 ƒ1£]…l5:\t›ﵳ3'$䬪=￰*S@<¡Z©¡;⧓؃'ªﵐFœ^c\"6\u0012\u0010!￱H«¢0~럗w8@—f篬봨H8⁇","񭕞@\u001b򍧝\" fC\u0003\u0016/=›𐛲`^”iT.2񄌔\u0013`܏⁢:ƒ` }\u001eg7‴​Ší󿿿v儑⁀☮|_{5aorŽ\u0010\fRX","򲪠註\u0013J<8\u0019[©,꽆1⁺Ή39/[\u001f8 󔴒¡,~󆻋¯⽨褿Š‚Š|￱㯐 [D튕󿿾Œ𖶀(󠀠/𓞿NKv​"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0248.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0248.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0248.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0249.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0249.json new file mode 100644 index 0000000000000..7df4abe6ca6ee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0249.json @@ -0,0 +1 @@ +{"log":{"J1,":-741312.0,"​":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0250.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0250.json new file mode 100644 index 0000000000000..23a9098e33096 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0250.json @@ -0,0 +1 @@ +{"log":{"":["W",[null,-3476262632266464847,true],3755993556383521493]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0251.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0251.json new file mode 100644 index 0000000000000..f271dc9d71178 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0251.json @@ -0,0 +1 @@ +{"log":{"^⁥":[{"":{},"wŠ‧":{"‡\u0011\u0006":[true,{"":"鷩E","贯W":{}}]}}],"@￵":["’",{"":false}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0252.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0252.json new file mode 100644 index 0000000000000..d4d176d04901f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0252.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T21:47:51.000009085Z","kind":"absolute","gauge":{"value":-886144.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0253.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0253.json new file mode 100644 index 0000000000000..d87f296c65864 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0253.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"s","timestamp":"1969-12-31T18:37:03.000019557Z","kind":"incremental","counter":{"value":-718720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0254.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0254.json new file mode 100644 index 0000000000000..51bb7039d04a6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0254.json @@ -0,0 +1 @@ +{"log":{";\bC":{"쎥":true},"Y4ƒ":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0255.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0255.json new file mode 100644 index 0000000000000..170beea102115 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0255.json @@ -0,0 +1 @@ +{"log":{"\u0005?":"‖\u0019"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0256.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0256.json new file mode 100644 index 0000000000000..ccb75ee19a39a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0256.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"m","tags":{"r":"a","s":"d","v":"a"},"timestamp":"1970-01-01T00:00:21.000029687Z","kind":"incremental","distribution":{"samples":[{"value":37824.0,"rate":2927760475},{"value":603328.0,"rate":2256954609},{"value":-858368.0,"rate":4160700911},{"value":858368.0,"rate":1988044579},{"value":69376.0,"rate":1024074644},{"value":-283456.0,"rate":450422663},{"value":309952.0,"rate":1336275985},{"value":72960.0,"rate":4176104015},{"value":683008.0,"rate":3825070856},{"value":273792.0,"rate":2882010889},{"value":968448.0,"rate":1059420342},{"value":845568.0,"rate":1995430984},{"value":-83264.0,"rate":2001933339},{"value":-76352.0,"rate":2584167502},{"value":21952.0,"rate":3708810379},{"value":372352.0,"rate":509151676},{"value":15232.0,"rate":4026924424},{"value":-198656.0,"rate":465736688},{"value":-2361.7289,"rate":3825467991},{"value":-145024.0,"rate":753045287},{"value":780032.0,"rate":1661723963},{"value":595264.0,"rate":4294967295},{"value":-762688.0,"rate":1737144899},{"value":-796608.0,"rate":978316818},{"value":5357.8016,"rate":316693640},{"value":-7335.7845,"rate":1572150576},{"value":-414464.0,"rate":1883693639},{"value":78784.0,"rate":0},{"value":-488896.0,"rate":3445451060},{"value":289856.0,"rate":2630323906},{"value":858368.0,"rate":1},{"value":-696576.0,"rate":2731518960},{"value":727680.0,"rate":90880570},{"value":170368.0,"rate":3415481947},{"value":-209920.0,"rate":1100911561},{"value":841920.0,"rate":3361089616},{"value":720320.0,"rate":667842095},{"value":858368.0,"rate":1},{"value":466560.0,"rate":1976145704},{"value":643712.0,"rate":2864615773},{"value":-183552.0,"rate":88994816},{"value":681408.0,"rate":411649225},{"value":-889408.0,"rate":4122167695},{"value":746816.0,"rate":1},{"value":408000.0,"rate":682101408},{"value":681216.0,"rate":2722076359},{"value":-651136.0,"rate":1228325467},{"value":-851136.0,"rate":1242357658},{"value":-732672.0,"rate":1645751056},{"value":39744.0,"rate":470218577},{"value":540672.0,"rate":2425016879},{"value":603712.0,"rate":0},{"value":182912.0,"rate":132979416},{"value":85056.0,"rate":1473396330},{"value":331840.0,"rate":2872091993},{"value":-24640.0,"rate":2620909661},{"value":-892160.0,"rate":399179903},{"value":314560.0,"rate":4219188010},{"value":817088.0,"rate":3570637098},{"value":-796800.0,"rate":2551177231},{"value":-617472.0,"rate":2355363301},{"value":-911616.0,"rate":3548558743},{"value":-985664.0,"rate":3554492450},{"value":-138944.0,"rate":19127105},{"value":998528.0,"rate":1886817012},{"value":-443456.0,"rate":1556795798},{"value":-438272.0,"rate":3614986226},{"value":27136.0,"rate":498755659},{"value":253824.0,"rate":1991285193},{"value":-499776.0,"rate":3069113996},{"value":712512.0,"rate":553134241},{"value":-190592.0,"rate":3357632824},{"value":-376256.0,"rate":3416271918},{"value":-254720.0,"rate":3180943665},{"value":-858368.0,"rate":283692659},{"value":441984.0,"rate":2308531274},{"value":-940544.0,"rate":556879329},{"value":218560.0,"rate":281962120},{"value":889984.0,"rate":1004550774},{"value":655680.0,"rate":621153215},{"value":-89536.0,"rate":1686916689},{"value":-237760.0,"rate":3997830735},{"value":-54206.6159,"rate":1332321092},{"value":632064.0,"rate":49987771},{"value":-322423.3095,"rate":0},{"value":696384.0,"rate":1},{"value":-222074.3262,"rate":3916348672},{"value":173760.0,"rate":1916710698},{"value":-943680.0,"rate":3942961841},{"value":5092.9327,"rate":3189499221},{"value":-365696.0,"rate":2327822888},{"value":39360.0,"rate":957730446},{"value":-828032.0,"rate":3235050905},{"value":763584.0,"rate":3863688667},{"value":-548736.0,"rate":2742220192},{"value":-169728.0,"rate":2069138541},{"value":-609728.0,"rate":2707043198},{"value":161664.0,"rate":2531898106},{"value":792256.0,"rate":1603797577},{"value":-496832.0,"rate":1},{"value":-447168.0,"rate":2711099408},{"value":43008.0,"rate":479869598},{"value":527872.0,"rate":1098648919},{"value":-421504.0,"rate":2849901250},{"value":-731072.0,"rate":1292545842},{"value":885240.3884,"rate":606805515},{"value":405440.0,"rate":3143713197},{"value":70080.0,"rate":1},{"value":141888.0,"rate":1770379301},{"value":32384.0,"rate":2089852842}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0257.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0257.json new file mode 100644 index 0000000000000..f1ba7e7347fcb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0257.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"a":"n","p":"f","q":"q"},"timestamp":"1970-01-01T01:10:11.000025775Z","kind":"incremental","set":{"values":["@n'󿿽2^ [ƒ{<$(=~(\t‘\u0002G(￵<\u0012\u0012\"5񑿔,<:[žǷ򥋾펹T񕮯¡an򹩩t2둡œ\n氭ላH#󰀀7;깍”C9K1+j*›􃣸Il%{&ƒ)!\u0013⁖\u0007~¨+}nƒ=ª]$+,:C1P«¯󓟦!|ᬪ","^Ÿ.'‹","c䅃; \u0016","eQ󰀀\u001d𛛹\u0000\u000f]5v㨳􍸔󯣿\u0004.*啩辸⠾}⁤\u0013ž=\u0007󵳐i￱*q’^œ‟責\u0017\u0019™o򡝿j™\u000bL\\0⁡r~򭆖71O򷙟𝅳󜔧S`4_\u0010;’Z𫿡6뗚£󰀀","󠀁QH;@⮚c￲‸„6@[/𝅳\u000f=>2\u001f.|脳‎内“l󠀁£K¥\u000b\u0014i+>9<㫍嵏ƒ‴)簳\u0010_񾷷t6‖”񄞟*&‶򙘵ᐴx>‱؄“.[`?L䩑񷋘빤—7¦\u000e\t—Š"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0258.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0258.json new file mode 100644 index 0000000000000..378966b891c28 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0258.json @@ -0,0 +1 @@ +{"metric":{"name":"d","timestamp":"1970-01-01T03:38:55.000029112Z","kind":"absolute","aggregated_summary":{"quantiles":[],"count":4294967295,"sum":-477824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0259.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0259.json new file mode 100644 index 0000000000000..b31ea0c0a6fdc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0259.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"g","timestamp":"1969-12-31T15:20:40.000021230Z","kind":"incremental","distribution":{"samples":[{"value":-950464.0,"rate":3757020849},{"value":-647296.0,"rate":4294967295},{"value":8000.0,"rate":1804365917},{"value":244480.0,"rate":2095037079},{"value":-808704.0,"rate":3743122876},{"value":970240.0,"rate":1990174332},{"value":713984.0,"rate":1207202920},{"value":-356416.0,"rate":1},{"value":753664.0,"rate":1336741938},{"value":622336.0,"rate":3359862745},{"value":607296.0,"rate":572797427},{"value":359744.0,"rate":3285880472},{"value":863936.0,"rate":466375400},{"value":579957.8925,"rate":4294967295},{"value":238080.0,"rate":1779398460},{"value":851264.0,"rate":68583009},{"value":756480.0,"rate":0},{"value":323648.0,"rate":274286647},{"value":-652224.0,"rate":0},{"value":-824384.0,"rate":1432896213},{"value":-388224.0,"rate":0},{"value":473984.0,"rate":3956450686},{"value":988608.0,"rate":0},{"value":656640.0,"rate":435315722},{"value":843776.0,"rate":1256084742},{"value":-728640.0,"rate":1224925192},{"value":833152.0,"rate":2700866672},{"value":-585600.0,"rate":758854553},{"value":-957760.0,"rate":1809572752},{"value":-1891.7296,"rate":4290274448},{"value":763136.0,"rate":2439710032},{"value":-751104.0,"rate":1294640754},{"value":280064.0,"rate":3573972368},{"value":-814208.0,"rate":1973455152},{"value":-739136.0,"rate":4294967295},{"value":-470016.0,"rate":409570661},{"value":867840.0,"rate":1},{"value":868288.0,"rate":2219253849},{"value":-976704.0,"rate":1167444804},{"value":916099.6078,"rate":3717176869},{"value":472448.0,"rate":3407719055},{"value":393024.0,"rate":3769805039},{"value":-437120.0,"rate":2380737907},{"value":899648.0,"rate":30684804},{"value":432320.0,"rate":4225865426},{"value":990912.0,"rate":4294967295},{"value":-368896.0,"rate":1516661169},{"value":-199232.0,"rate":1863975372},{"value":369088.0,"rate":4294967295},{"value":962752.0,"rate":4007469055},{"value":593024.0,"rate":3621245764},{"value":893760.0,"rate":2686163569},{"value":299584.0,"rate":1752023607},{"value":-270272.0,"rate":2657782666},{"value":109696.0,"rate":4168335291},{"value":-586944.0,"rate":681771007},{"value":748864.0,"rate":4207092280},{"value":918272.0,"rate":2489543149},{"value":-318272.0,"rate":2575886340},{"value":-858368.0,"rate":138732674},{"value":-24256.0,"rate":1902560197},{"value":458816.0,"rate":1099516496},{"value":999936.0,"rate":1331765254},{"value":-707456.0,"rate":3685189310},{"value":919936.0,"rate":3704430685},{"value":12864.0,"rate":1285689334}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0260.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0260.json new file mode 100644 index 0000000000000..aeff82700cdd8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0260.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"g","kind":"absolute","distribution":{"samples":[{"value":-731648.0,"rate":2116566433}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0261.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0261.json new file mode 100644 index 0000000000000..1eb5ab62448c3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0261.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"b":"o","x":"h"},"timestamp":"1969-12-31T18:39:06.000003484Z","kind":"incremental","distribution":{"samples":[{"value":221440.0,"rate":3020570314},{"value":-96640.0,"rate":485866259},{"value":896128.0,"rate":2619397235},{"value":-874560.0,"rate":3828594549},{"value":-891776.0,"rate":3151165227},{"value":-570240.0,"rate":212947338},{"value":-708224.0,"rate":3588972324},{"value":302895.9511,"rate":1082056122},{"value":-982144.0,"rate":2730573450}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0262.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0262.json new file mode 100644 index 0000000000000..c10420d34b632 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0262.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"r","timestamp":"1970-01-01T06:01:38.000015202Z","kind":"incremental","counter":{"value":-260480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0263.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0263.json new file mode 100644 index 0000000000000..8ae9faf306857 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0263.json @@ -0,0 +1 @@ +{"log":{":Ž":false,"ˆ_":{"_¬":"3","¢":null,"؃@£":[]},"􏿾h":[{},-833152.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0264.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0264.json new file mode 100644 index 0000000000000..917aecad7992e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0264.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"c":"q","i":"d","z":"u"},"kind":"absolute","gauge":{"value":863872.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0265.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0265.json new file mode 100644 index 0000000000000..07c7b3cbc9710 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0265.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"z","tags":{"_":"q","v":"o"},"timestamp":"1969-12-31T23:24:48.000020005Z","kind":"absolute","counter":{"value":-453888.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0266.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0266.json new file mode 100644 index 0000000000000..c845244f8384d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0266.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1969-12-31T22:17:45.000019547Z","kind":"incremental","counter":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0267.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0267.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0267.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0268.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0268.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0268.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0269.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0269.json new file mode 100644 index 0000000000000..c87254dce3f80 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0269.json @@ -0,0 +1 @@ +{"metric":{"name":"f","timestamp":"1969-12-31T23:38:26.000023808Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":934464.0,"value":587776.0},{"quantile":-147563.0811,"value":260928.0},{"quantile":-262016.0,"value":-13440.0},{"quantile":-691008.0,"value":596480.0},{"quantile":145216.0,"value":470144.0},{"quantile":-83328.0,"value":-336512.0},{"quantile":1664.0,"value":-711744.0},{"quantile":558464.0,"value":248512.0},{"quantile":-545920.0,"value":37504.0},{"quantile":400576.0,"value":-973888.0},{"quantile":80576.0,"value":142016.0},{"quantile":132992.0,"value":925760.0},{"quantile":-109824.0,"value":-46528.0},{"quantile":788736.0,"value":644736.0},{"quantile":-240576.0,"value":984960.0},{"quantile":-127936.0,"value":127616.0},{"quantile":-725056.0,"value":-440960.0},{"quantile":-199168.0,"value":-279232.0},{"quantile":-17728.0,"value":-577728.0},{"quantile":981888.0,"value":-689280.0},{"quantile":668672.0,"value":151296.0},{"quantile":-695872.0,"value":-507968.0},{"quantile":-767680.0,"value":-814016.0},{"quantile":400960.0,"value":-9472.0},{"quantile":885056.0,"value":950288.7969},{"quantile":943680.0,"value":35072.0},{"quantile":-732672.0,"value":-929024.0},{"quantile":851584.0,"value":-550464.0},{"quantile":616256.0,"value":135872.0},{"quantile":514304.0,"value":-963584.0},{"quantile":910912.0,"value":145088.0},{"quantile":-186432.0,"value":363839.3591},{"quantile":90880.0,"value":-740480.0},{"quantile":-882880.0,"value":76928.0},{"quantile":207936.0,"value":-858368.0},{"quantile":651328.0,"value":584320.0},{"quantile":97408.0,"value":735552.0},{"quantile":502208.0,"value":-16167.09},{"quantile":-858368.0,"value":820224.0},{"quantile":162944.0,"value":-704704.0},{"quantile":924224.0,"value":601216.0},{"quantile":-374208.0,"value":474048.0},{"quantile":464832.0,"value":-505536.0},{"quantile":-98624.0,"value":335872.0},{"quantile":-438592.0,"value":955456.0},{"quantile":-858368.0,"value":957952.0},{"quantile":555008.0,"value":-858368.0},{"quantile":743808.0,"value":-853312.0},{"quantile":-508352.0,"value":670656.0},{"quantile":610880.0,"value":-103616.0},{"quantile":-718016.0,"value":-631488.0},{"quantile":108352.0,"value":80192.0},{"quantile":-865856.0,"value":-320307.5},{"quantile":-808704.0,"value":662208.0},{"quantile":-576768.0,"value":148096.0},{"quantile":619520.0,"value":-496960.0},{"quantile":336896.0,"value":164800.0},{"quantile":-536256.0,"value":547904.0},{"quantile":401920.0,"value":-256768.0},{"quantile":-798144.0,"value":-464640.0},{"quantile":937984.0,"value":-473025.3643},{"quantile":874240.0,"value":672064.0},{"quantile":878720.0,"value":-590976.0},{"quantile":-358336.0,"value":324288.0},{"quantile":-379456.0,"value":-30784.0},{"quantile":-144576.0,"value":-178816.0},{"quantile":-176.3311,"value":3648.0},{"quantile":-543232.0,"value":-623104.0},{"quantile":-302939.8326,"value":-186624.0},{"quantile":627.2388,"value":-825856.0},{"quantile":761664.0,"value":601728.0},{"quantile":216960.0,"value":-96576.0},{"quantile":264768.0,"value":-585984.0},{"quantile":-145216.0,"value":108288.0},{"quantile":898944.0,"value":999552.0},{"quantile":209984.0,"value":319168.0},{"quantile":-901120.0,"value":515328.0},{"quantile":50112.0,"value":-217472.0},{"quantile":470528.0,"value":435584.0},{"quantile":388224.0,"value":396698.6445},{"quantile":779456.0,"value":233472.0},{"quantile":676096.0,"value":714624.0},{"quantile":-656384.0,"value":-935488.0},{"quantile":217408.0,"value":-787584.0},{"quantile":-724480.0,"value":-858368.0},{"quantile":-396800.0,"value":607168.0},{"quantile":436864.0,"value":-284480.0},{"quantile":59904.0,"value":-357248.0},{"quantile":-242112.0,"value":50624.0},{"quantile":349824.0,"value":591296.0},{"quantile":-465408.0,"value":112320.0},{"quantile":715584.0,"value":518464.0},{"quantile":-407488.0,"value":190464.0},{"quantile":-295552.0,"value":75008.0},{"quantile":-24704.0,"value":-78208.0},{"quantile":-412992.0,"value":493952.0},{"quantile":-858368.0,"value":-192064.0},{"quantile":992000.0,"value":-993792.0},{"quantile":827392.0,"value":-858368.0},{"quantile":264539.7043,"value":438976.0},{"quantile":536768.0,"value":966208.0},{"quantile":127360.0,"value":-329600.0},{"quantile":924992.0,"value":-276992.0},{"quantile":-120384.0,"value":-858368.0},{"quantile":179136.0,"value":899840.0},{"quantile":-966848.0,"value":217856.0},{"quantile":577984.0,"value":-758208.0},{"quantile":63936.0,"value":-331072.0},{"quantile":818752.0,"value":-75904.0},{"quantile":706802.2637,"value":38080.0},{"quantile":505472.0,"value":-918272.0},{"quantile":-858368.0,"value":948480.0},{"quantile":989632.0,"value":48000.0},{"quantile":190784.0,"value":890752.0},{"quantile":-744896.0,"value":-858368.0}],"count":4190811291,"sum":544704.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0270.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0270.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0270.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0271.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0271.json new file mode 100644 index 0000000000000..fcaad8135dd6a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0271.json @@ -0,0 +1 @@ +{"log":{".⢢󁽤":["(ª",true,null],"u":[8069129033598571167,1484817185876503234]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0272.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0272.json new file mode 100644 index 0000000000000..fe13f756f848f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0272.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1969-12-31T19:04:49.000022368Z","kind":"incremental","set":{"values":["\u0005\u0003=3o㻵܏…„~\b\u0013\u0013󧗲3 Ÿ\u0015㢝+O6¤ c•;0+8봀㣾)­+`G¤¯\u0002G\f籠`¬%‘镍>c\u0013#Ž腏\f″򸡍; N:𝅳￲}§z￱윜\"]h\n9X\u001dp㩱􀀀󠀠\nঝ\u000e{￷\n\u0018{6/b","\u00069£\t묧¦","\u0006E„9^풽܏\u0018m!g뽗O}7P¢\r.쑟­䱞ㄧ䘃
R\u000e*“\u000f-+00:s†￳\u001cCqᵗ\r„8“","\n–ea£B򕹈†|\u00121򎫜]\u0000￾\u000bz\">\u000b-\u0019/'i꘶￰N+驂,-¦ZU\u000bS","\u000f\u0010¨.\t‽_I;p\u0017‿apj","\u0016j箳~“汀 ¨¤$⁗<0I򱎋￰!}\\.i\u001f\u0017愦𜌚‴=‚EL`򮺉￶S𰅺㷄|D󍸤!鯿¡;󧵇䡻[8\u000f­\\5”3","\u001b•啯ujŒ\u0002œ䎥œ"," ꔫ0*娖Š؄%%x\\줢>‏祙9~9�􈰰𝅳1FŒcšH~Q؜{VW]\u0015“G =󑣠.! )\u0006F'-+I’5!ž;]0#􏿿~&_ꏤ\u0015"," 񞈮ˆŸe뺥Œby؅쏀‚𞧯۝1JR)򗣉$%\u001d!x{F‡󿿾, 󿿿2$?+(~?+񶱁䐠―\u001a_)g/>yT\u0017p(n\u0004𬩘9G:\u0014,.𧖏_\u0007r-¥ª2\u001fŒ1¥[©￴\n)輔1}$v,]\\`F'>˜V\n>‘5«5X′¬򁄂¦􎰘^o•0‡.](jE￲?q‰","!3\u0019𑎉J󱳚𔿗‣\fœ|+„—槤Yi򃣷?2㒓蛽}%\u000e","$•#2󣴉)hE€–\u0000$c;Z.\\⁨L‚\u001a¤›3\"⁈\u0004Ⴝ/2.險￲szL긝|⁤> %\u00132 {^d\\k|¬𻴭.𫨣.[D)⁥S9)\u0003穗vࣼ噳œ⁏“™®௾‎¦B\b\u00077+.䔭7琌$􅻔B\\“","$訶巁\u0007 ¤ 2¬䱬뷏/…«˜*{¥nž\t£/&\\:}\u0016􏿿&Q›죭pG\u00184&\btœ2󰌷I,\u0014 컍⁧@!‪'6}ƒJ`蚉⁒%]¨ 矊膷%{#£Z趙\u001f]R󣻅𦱗\u0015뵘4#�¯\u001b\u000fB\u000f","%d岷)£\b⿙|㞥\u0017᪦v+؂ B^t𺈴#ŠŠxY o¡B茮\\\u001e0\tZ嚽\u0004缯œA$\reb,˜:<@}_}pመ7X–&6\u0010􏿽¤򁎳 ‚\u0001¤7⁚\u0017","%㑞?^ 쾅’鮻a4‹u\n󼏗)9⠍۝{)ᙀ;xg￸/w7o\u0019x:-„\"6\\\t'6>OW6󯣿\u000e5'>. ‡+7乃ꌀ(+š‰v","'@󂩻\u0001!ѶS;|㳻ž[J\u000b\u0005:={虅x7'®￿£5Ž’&€.!œ\u0000^ ^$5 ’\u0011\r.搸󁐂젊\b”~醯$6•*|bQ|'","*ŒN;,Ž\"\u0010ŸS¤􏿾_\f汽,-s(U›[)©|󋃌¤«~;㩖,.œ\tB'z?…鮩2*)򬌰ᘿ ,›!œ¦\u001fi⁛Mp0,ž6?췦|\u0016\"ƒ؅Dk-￿8‘[[c)\t¨\u001e(`“–[\\5¯0'#\u0000\u001fC?¡6^o0\u0010⁞㤮骫‮<{",",󢑲\b¥\u0004/}\t1O؅¯,吿U𝅳z`-⁔𹱘;$존r$š >4! ⛿O\\\u0012¦Z8ዩ] «v@9؄2yU7񵗂5]1‶˜䵔札 ,🤑󠀁⌔<\u001a󻂶\u001e\u001d˜•'￲￱-󔖓`n￳䋿|9􏿽؁","1L] 򾛇U/„<‾\\￲謄󋀫.𗬎’ ?`\u001b<\n陜0#","2‌47“V}顩Ÿ(\f￵>혉A\u0002<_ŸL\u000f\u0001¡򳘪•%‰󵏨(5⁞؄􌨓V頻@6Ž骵=⁩󆖧\fŠ⁏—¡\n:៪£","5?œ3z\u001c\u0011\\\\8Œ#>⌥畈 % \u0010⁌#𭵉¡T-*§\u000f킇/ 63h紧‰񌫏 ] ¤񙞮\u000fHJv′룘󙟎nc􈑌p¡y񌗚\u0014&\u0003I#“œ軆­PUX","5`\f`D„:\u00026]{⁩\u0005£\u0003|9z>\u0001􏿽o.\u0017ꢨ","9􀀀􏿾4\u0017e󨑣3: \u0006
ꨮq)­^]`™‾l^\u000eF=X‿ˆ>r\"昉\"6F∯#\u001b^.0}iȍ}™𡇒 ⇟m©񞠨7s,\"𨻄’/𡱗ʼn 뚸\\󿿾«￸fꋝ᪙š^ezq󯃧¬¬@󤷗\u0017 £\u0004S(𵇒盧 ,` ⁙붲�@葲œ¢\u0000,5[\u0001\u0019w+oPP0",":T'O䣦￾?Œ3￴\u0015#:3HL熝\u001b 1医­c¡2hŽ\u00130^–ˆ؄¡\u0007`⁩崊 󊓏\u0005󠀁›\n\u001e[ª𱣙‚ªN'",":s\n^",";㉰ኡ–醐(\u000e+4$܏蒢({\u0001驅h–k=o","<$!–[£2󊢹¦�,8􇹶￰ba󠀁3H%rK M$񃡶‡€y (¥版0£pWp\b\u0018'저*0–9 ᲄ6q¤©\"\\P7‑젇\u0006\\7\u0012{쥊","< ⷏8","=J«\\򭡦:¥j\u0006dn>\\紂W\u0014",">&‡돢7…5`MI0䡷\"„.[[% ⽾Šx⁉y񉒠%\u00004!)¥„펴\"p?ᥝ￰~_\u0011꯸\\a\u00071T)m*‍bⵙ”>q՘3 &L\u0012!侟^?􀀀㫬񡰄足'ꬎm+~>‱*D 糴ARLhS\n\u0016*2ꡌ\u001c䛘#󰀀d๳ꖪ\u0007؁3}e(71:F𛑤\"r\\C®|",">寋¬3 ⋗m „{؀ꮙ뇑}U3񬜺\u000f%8‷-ʼn©姷ཊ򟽣c ' 6=-￰\u0002`\u0007⁅�J⁢m<k񡝷푑0'}9p￶\n瘫퀃鵼􏿽Ÿ ;®","E8\\/H\u000f #hl\u0001o�\t\u0014“\u0015l{$Ue'{񼜙Q…1\"5$\u0014@[L琍1=","G~\u00029\u0000…'­￱[]曏᠎NS잂¦t񩫨˜X򋰄–~\u0004>$‷8F ;¢\u001f򞭓\u001d._<؅o\u0005x>￶","H漢Y£\u00188«\u0016-–\t󨔞=­j9ﴽ\u001dኝ˜6,g ￿($\u0006\u0001x\"}+p񣌈Š!?$‚#Q,1˜󰀀K\u0000#”雚cU¬k刀H8(؃\u001b\"\fp+\u000b-)󼌎;/w '(ꢌN2\u0012ᏍŽH'\u0002s晢؜↽2᠎8￸C,1Š\"B. ᣤŒ򩥿\u001a❗$\n,\u0001⧰\r/¬゜Y¢…!⁥\\*\u0004","Kš\u0004^{’5+‹E\"?\u0015+‹}󄕶nW;|[;2j`򆷢t[`8J\u0011","Rᘹ뇉䑂\u00110\u001cTƒk㸿L[9‹员/뇍꟎d%؁:廣! 4􋖾簹城2 [!cs򚫞  |D@b%]?⁅","\\","\\]㛙9™䷳Ÿ|\\\u0001W)𾯽￶郛Ž\u0012Z4@Ž\t⁂܏\n/Rs厾z2؁7¯]󢵺䃔򩴖(ਧ®–X©—}\u001d9㤘iŸ|‾#•峸\n斯„q 󿿽\u0002•䎢_񘺍4_§ꐟ-⁅\\\\3\u00113񸳊ᣌ踜\u0012—\t6‫c~\u0019$$k漏\u001c撗~€Š𒚊WB\u001e4)^B(*弐\u0004J","^3ª\"򻶋&Ÿ\n󒆹'\\C懦\u0002œVS英7<<)^󪟕ॢ鬬啜\n%􏿾￰ \u000fª‭P{y8ꩾ\u001b‎aa[频򻙥\b:¢1 %5,m6\u0000넬|‹3‿0\t𑂽>x‘濗U[⁉il7G$𨏄.}","^}","^(^ࠌ¡4蠦^/“􀞔*\u0012f.\u000e.ʼn 'A/ $–V^(¡⁢;;b(","`\n¯7\\œ󒄦=\u00174$tgO0󿿾讋ƒ` ”z›(8 ᠎Ap‡𮓣68¡ჟœr/2,󌧱󕶷𸻊©򖬟￿ «ˆ1''\u0005s񺣗T)­;","`쨃=+P܏\u0012?‹‫틬;킷󓶜\n\u000b\u000f¤%ⲙ:7锶=\u001a\u0019襺;:䜵 񕊯؜﶑Dp‘8`揽 @=\u001d㚌[@.ˆ^","b\u001b11#\u001a‗MC'¯6\u000eᶖ\u0015 䲔 ¤嵸§6’q<\u0004󠀠․񵼠:\u001d‿?Ÿ ","j华烣\r¤$fꭹ¬Iቆ눐立 :쟽{ʼn /4;_\\􉡍Z\"‹N䰦\\2?遵俼6¬–\t6/1Œ","pˆ뿿؜aD66S;>[8\t>;|󖋞䱹;>)\b\"<\r\n 󱖐=$쿙)𽉝]ऄ‥񈅱u]xB|#~\b¯\"K⧿𹡗*“•⁀‚؅ⴟ؃ꙓ­e􂲏¢y›k⁙\t琛Ÿ#;‡&_Ya! \u001bšœ","x=\u001e/9锁'‚5t\u0005H` ]©ꕻ79x~›\t14荷<䟾 .\"n5:`8{`܏ŠD1ˆ󁿬n B’[nHﭗ6~,t4,{؀󯣿᠎܏좿0ƒ^X\n\r)&d 䌗􃳖(\u001a;](啦#8<ㆺ2™$⁣>篲񬓮0󴤊o8@󖴩*󲆄ª7*￿f|.]","{","|󂣰?\bQ添EŠ#˜i\u0016P񀅸V?>","󪥟9‘ꁅ񓥖銒\u001a|󋇶=栯2ŠE","ƒ؄;<⁕쪨% %","„%\\¦ytY “<7yZt‪ƒ꿐 ­ |`؀\t\u0013!@\u0004‵\u0007lJ.\u0004]v⁉s⁘Ÿ-”%^1>􌼐Q%\u000bŽ®@P.塀","‡X8Œ\n⁅ 󙾲gr1‘틕𝅳຋'{~#؃","Š'*񥳽j=‒㵵:PŸ\u0001\u001a\u0004-<*鵄\f￱|#/󿿿񊡬§‼\u0000\ty\u0016y\t?‡1(5ƒ3ಚ*\u0002œL\n贺e蛔⇶B㚻y&†⁨1‰¦񊐇O\u0000\u0006\u0003K™¨\u001d˜","“؜ˆ†“\u001f\u0014.󇜠 †_W((;򧒿^T󆈾/\"V#X,06ź⁋￸配‰\b®gƒ86!-[5Vꯗ|r￰L풡0󠀠
2ƒ\":ip’(󠀠;i)“š3x¥\n;‚\u000f뿎Pf組'‡(⁉.\r򲯡􀀀􏿽7~򈤟[鍬ﮮh7￳|/<\u000f”¥n7\u0006\u0003«🃹!)˜yᩄ󮤯&‧)⁥€蟫￸2","”6\f8\u001c™/'_簍󏌽쐧瓾\u0007{\u0001:?[","–¬\t ﲳŽ\fQ¢#c7ES2�~y\u001b)竨£}'ꃕQ€؁+*}“Ew¢\u000b腗¢@{AO&9⁉쩼\\⁜熾‡¯\u0003•&⁆‰w‥9˜܏ ~ .}","˜\u0004[\u0014硶'}_{򤻾\n6󺗘~#†3ᆪ— }3\u0013¦򴷂}$􃆊1\u0017¥ (žƒ򽋘9ꇀ\u0003%Tª<^ m\u0016�󏅲Rj.¬}33¨}\u00017񺱧؄B\fxQ\n ‣rﶱ,]”娍+-4¯\u00036Pt闧햳‰\t!￱\"\u0018"," V"," [E񯽰<¯Q •'‮\u0001–㗣D1?a󿿾\u001f1+?񈏓8耾2쵑a⫘}\ne+N\u0016<","¤!_n󯛡{<'‹‗uª銁)￳—\u001csr~[\u0019‣3⩏􀀀©>\u0002E‣|8凴,뽺_⨀呚w^퍂橦g§W+71 𑂽𯃖«Ÿ쫼¤񣳣\u0013\n𓐇𑂽-'a3អ…\t‘.斺","¥©-_\u0014*[񂃌瓴󂧝œ˜\u000e\u001a%eSš«؃s`x\u0019‚&=;\u0015.\t\\{!\u001f󺮸-<杏b!‘ŒC؁®","§„\u001a# c⁡82虲!®2奾6/𝅳0W†¥\u0016\r\u001cp5r]󜎒\n],\u0019 肀~/故\u0002`4ቈ씚,‘‰縌\u0017ʼnw\u0003⁩/\u001aª9ª7]􏰿2‪!)䝗ʼn\ni’󙥋V;\u0018繿ₐ?⁤]§ŒJ󗰮}\u000b3¨񃈬55s\u0016⁍~](\u001eg &򣕁\n '\u0003﫶_6‘<\u001ak5꾽2‚⁙3\u000b腁h`","ὲ\bE\u0016V.›”~`^\u001c˜m⁎\"򂴩€\u0010\u000e(Vu)1%9 H“"," ¢𪛄鴡d&5(؂+琘\u0017*#ڇ􏿽6†‡_WD\u0012)㏟ £—:\u001c2]吠N%7\u0015￵`\u0018‰¯A㾻󠀠ഞ树\u001e\u0019 癿仞‹2'®\u0006UG‡U؜(󋭢`O9[,93&","⁁;\u001bb—'�U‰ˆ*/_=>@l᠎󰌳‰܏}!򥎤)K‭􂻦a\u00183\u001b￳WP芔3\\|샽˒y=⁄\u0015󕍑\u0001\u0005‾𮢟1›|/>s8􌊃¬Y꓆¬„⁌j/Y񻟃 \b(Rek)‗9hŸ5\u0019\u0010򵃅ힳZ®","⁐g¨  \u0000ˆ\u0010֜񶹙柯O؃_8蛲{⬥⁄£­*x;&򴃝먂§ꚁ.H㮟|򸹂%ꍠ(\u0007\u0010’‟•ᄞ㚂駒!4\u001d 6󿿿':3*M7㬐§禢_=:Cy癵򲈉«\u0019锱!bb3:~I⁕","⁥\u0010q\\¤$*‘3fCœ‹497󜻫X@)\u001c𪜋⢍粿¡Ž«5𶡸<\r󎔐‫?Q­‘P21\u0016 ›%Y˜|⁩ L;\bn\fs~\u0017⤊:鲈\u0017\u0010|4\\ \u0010}্ \u00067￸‰}㝊 ⁊~","⭲\fJ[3܏’>)‒[)0\\9Cm7 `~x\u0010=񼈊‚|E䌄|𮸉\\®‟…뽝* ¤7^%$ƒ짭¥l­彛][\b!q댗􏿿}K@g\u0010^􂉫)\u001b*䙡/eŒ:]}¤2\u0002!~?’>￸™(–3\\^󿿽–9Ÿ񇥌\u0002vW\n+2;H™‚񏄋`§\f¦¤′7\u0003","ꤧ$/{⁍#<","윈‚-©(:3?􀀀#F$ﲇ⁢븥檳\n⁂孕󕕨¤>؂刨⁤ªŸ2ꙙ","쭌 !=혁\n􏿾ƒM‐\u0014\n4G\u001b¢󯣿 “¢.*뽗⁎—‡93¢S”Ÿ t\u00177{:`\u000e","퐴 0􏿿𑂽<\u0004>&~Ÿ򶘛\u0005u]+1惪¡‏€ª\t@ h+gª\u001c￱}𣧜V†㟑\u0003ʼn䡠\\.®!\u0015!Q\n뱝A–5\u00121@=J /,r⁦£\u0003T􏿽¦⁞񯊯T®%+vˆ]3\u001e8\u001dꌛ[k]4\u000eD\u000f\f܏§\rƒ󯣿\u0011_¡񗇎˜‚\u0019\\#&򘚤}E","￷/渚]’禮­\n⁒ž1󈘱8BOci‧\u0019*::􏿿\rG򑇥땦p⁎(&[‐\u0012ᖵ86_=¦?'11\u0012‹6𤄁$⿍3￾3;䁪’″q⁌ªs*_䲢\".¡<\u0012@ 엲𑂽幀䠘\u001c%.\"v:1 ￷'󿿿Z?󿿾","^毂\u0013‧","𛵉\u0005󲇲@w%B7\"–\tš\u001d몷@᳴­}","𱫬y\rB]n>國 (n4维Ꞛ꭛‘‚­w\\⪒}񌯩9h霒\u0002+򍮈􎔘{§􏿽⁤mM\n￶\u0011(⨴{=bGQe󮪗","񀺔…Fo‡ᑯu￵)I\u000fA4]4胦)仙¤w\u0013w\u001c]-?+܏&‡+6©@'ﰡ+￾*","򗐔Uœ[^⁈屻 ⁃","򺴉m­\u0013~\t76:,_–‰`阿+z¢@\b-#‎'۝'0}]񚥙 ,M\u00119;픔阱.@Š󧶑1&\u001e…\u0012“懢񟻈7𨊥 †\u0014~3 P\u0001򢖕q￷5\u000f⁠K|󺝀D※93‎`T\u0010-Y4š\u0003[(rl\t醝#<£l⁊+\\C @\u0007› u۝3򂇼￰(񉾊¥Y20\u0004_ž;\b|2\r\u0015}+䗋&\u0017\u0016|Ÿ9"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0273.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0273.json new file mode 100644 index 0000000000000..37babe4cd05c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0273.json @@ -0,0 +1 @@ +{"metric":{"name":"f","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":530176.0,"value":600128.0},{"quantile":-858368.0,"value":-771392.0},{"quantile":-604672.0,"value":-642176.0},{"quantile":410624.0,"value":-258496.0},{"quantile":-1344.0,"value":259456.0},{"quantile":248896.0,"value":84032.0},{"quantile":-201600.0,"value":-806080.0},{"quantile":858368.0,"value":-922432.0},{"quantile":-84544.0,"value":-992448.0},{"quantile":-126976.0,"value":-702656.0},{"quantile":98112.0,"value":-222144.0},{"quantile":892992.0,"value":276416.0},{"quantile":-965178.0047,"value":180160.0},{"quantile":249280.0,"value":858368.0},{"quantile":-575552.0,"value":655616.0},{"quantile":264128.0,"value":243904.0},{"quantile":739264.0,"value":-90432.0},{"quantile":-797312.0,"value":-387392.0},{"quantile":-273984.0,"value":133184.0},{"quantile":-495168.0,"value":-359296.0},{"quantile":82880.0,"value":-943616.0},{"quantile":-445696.0,"value":625920.0},{"quantile":256128.0,"value":780224.0},{"quantile":-471040.0,"value":-454464.0},{"quantile":749632.0,"value":619328.0},{"quantile":823680.0,"value":-21056.0},{"quantile":502528.0,"value":249216.0},{"quantile":-497216.0,"value":757760.0},{"quantile":121536.0,"value":178496.0},{"quantile":-899264.0,"value":-713408.0}],"count":4038915915,"sum":-346176.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0274.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0274.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0274.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0275.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0275.json new file mode 100644 index 0000000000000..b448deb244586 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0275.json @@ -0,0 +1 @@ +{"log":{"H":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0276.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0276.json new file mode 100644 index 0000000000000..141d035e1cf15 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0276.json @@ -0,0 +1 @@ +{"log":{"7":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0277.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0277.json new file mode 100644 index 0000000000000..bfe24f6a608ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0277.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"a":"f","j":"a"},"timestamp":"1969-12-31T16:25:44.000023016Z","kind":"absolute","counter":{"value":36.3714}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0278.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0278.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0278.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0279.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0279.json new file mode 100644 index 0000000000000..689ab032aa366 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0279.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"j","tags":{"w":"l"},"timestamp":"1969-12-31T23:14:56.000031140Z","kind":"absolute","counter":{"value":-197312.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0280.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0280.json new file mode 100644 index 0000000000000..9422009388fb9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0280.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"b","kind":"absolute","distribution":{"samples":[{"value":-267712.0,"rate":1613637263},{"value":656512.0,"rate":1494570473},{"value":140992.0,"rate":2184754809},{"value":202368.0,"rate":2602394968},{"value":-462592.0,"rate":531120664},{"value":-467008.0,"rate":1041135680},{"value":-581248.0,"rate":2501816777},{"value":521088.0,"rate":3872925581},{"value":-793024.0,"rate":3659494909},{"value":-769408.0,"rate":2839154488},{"value":-572224.0,"rate":982966240},{"value":-550016.0,"rate":3467842366},{"value":478336.0,"rate":621106921},{"value":150720.0,"rate":2145840939},{"value":-271744.0,"rate":568973610},{"value":871552.0,"rate":106142899},{"value":419776.0,"rate":2951353617},{"value":-152896.0,"rate":1931129691},{"value":-974144.0,"rate":303772693},{"value":-927616.0,"rate":1},{"value":573760.0,"rate":663559693},{"value":50816.0,"rate":3681053023},{"value":381248.0,"rate":577707558},{"value":848640.0,"rate":191313777},{"value":-925376.0,"rate":1154032635},{"value":-150912.0,"rate":2478234668},{"value":-296931.6935,"rate":3110997724},{"value":689280.0,"rate":3757430663},{"value":95552.0,"rate":4255875742},{"value":-205440.0,"rate":901213858},{"value":-353216.0,"rate":0},{"value":851712.0,"rate":2640373464},{"value":-137344.0,"rate":2522176639},{"value":-32570.9379,"rate":2814298763},{"value":999936.0,"rate":2497650792},{"value":441472.0,"rate":1522423000},{"value":-537600.0,"rate":701568825},{"value":315136.0,"rate":3759093335},{"value":-638464.0,"rate":581856608},{"value":-586112.0,"rate":2627552286},{"value":-476160.0,"rate":2624209850},{"value":-286400.0,"rate":2734661242},{"value":-332224.0,"rate":4294967295},{"value":-422336.0,"rate":2566771900},{"value":225408.0,"rate":1225551204},{"value":478208.0,"rate":273418472},{"value":408832.0,"rate":736259735},{"value":64192.0,"rate":418194448},{"value":-73088.0,"rate":4036928605},{"value":504576.0,"rate":3594427352},{"value":-83200.0,"rate":3199954231},{"value":-384587.0313,"rate":390131553},{"value":540224.0,"rate":1322083841},{"value":222720.0,"rate":3939314107},{"value":525504.0,"rate":3216945146},{"value":-937408.0,"rate":3161732830},{"value":795648.0,"rate":1661160049},{"value":-448810.0,"rate":1211956085},{"value":342208.0,"rate":1},{"value":858368.0,"rate":2806144581},{"value":7680.0,"rate":0},{"value":589184.0,"rate":2645000230},{"value":-856192.0,"rate":1960789160},{"value":309632.0,"rate":2949877385},{"value":678784.0,"rate":2443090052},{"value":-144640.0,"rate":0},{"value":-514176.0,"rate":3571595895},{"value":-310016.0,"rate":2007481679},{"value":625088.0,"rate":2856961920},{"value":-13184.0165,"rate":3154585832},{"value":799808.0,"rate":1},{"value":-5376.0,"rate":1143353993},{"value":-488192.0,"rate":3754547694},{"value":-656064.0,"rate":2365580684},{"value":-17.5928,"rate":2611906272},{"value":-388800.0,"rate":3658706782},{"value":-811136.0,"rate":2002819587},{"value":781248.0,"rate":2647361113},{"value":838016.0,"rate":2226287175},{"value":-794112.0,"rate":665418436},{"value":375936.0,"rate":3312023694},{"value":496192.0,"rate":4004807092},{"value":-784192.0,"rate":344637491},{"value":37312.0,"rate":3043497742},{"value":33819.1747,"rate":3884290791},{"value":974592.0,"rate":2841358319},{"value":550400.0,"rate":1056262535},{"value":-194560.0,"rate":154410435},{"value":-823616.0,"rate":4182707465},{"value":-537920.0,"rate":1819925636},{"value":445952.0,"rate":4294967295},{"value":-847308.0,"rate":1569940531},{"value":-915200.0,"rate":4294967295},{"value":567936.0,"rate":3453656325},{"value":28608.0,"rate":700909400},{"value":-247488.0,"rate":1416210146},{"value":-701632.0,"rate":367498574},{"value":239168.0,"rate":1474886272},{"value":953600.0,"rate":2133524298}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0281.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0281.json new file mode 100644 index 0000000000000..2dfe644b859ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0281.json @@ -0,0 +1 @@ +{"log":{"k":-295724824703187443}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0282.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0282.json new file mode 100644 index 0000000000000..2ff0ba2f24060 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0282.json @@ -0,0 +1 @@ +{"log":{"":-161728.0,"⛡":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0283.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0283.json new file mode 100644 index 0000000000000..f89fa1778d627 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0283.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"d","timestamp":"1970-01-01T05:30:23.000026501Z","kind":"incremental","set":{"values":["\u0006!A椖\u000fE\u0001३'¬^f<šC81‡￶ª#￵‚\u0002􏿿\u001f랥Q3ž䕦󠀁y41.ʼn:ª񱰃W?扑9P‥=한~b)ธ稵Kg86]\u0002$‽y-򸫪%;￳::B󣹤񶔞򧑨%긩~𝅳‡9\\§—2-.[󠀠–㜼⁡8!6\u0012O5VH^ƒœ)y=h\u0001似3#򞆤€9™󠀠\f7⃞󯣿몘#(>⁤£؄￱«Qၺ᠎ ⁡0#|O똙:'™˜ž؁˜)i降f5￷\u00190U6\u0012R\u000b.󾓘•ŠP","(0؅§{\u001dꔺ@sš>C򳨹A㍎}㚍)>%ꂘ8{>؅¨5Ž\n⤒W￱=W(`\"|ƒ5⁀‰\r‏7|􏿾򰕒흹(󚛱‒^-ࢦ񽸭,)7 ⁜ ¬Š᷂%9繕\u0012‭{‑俬\u0001򡝋Z￷|M.\fc'\u00156/","+\u000e ⁊􏿾 %::(󿿿؃⁈W薮H9 [1®\t¤3„8+\u001b񖠽|!8W%푐)򛑾—7:
y嘝\u0014\u000f\b—6:\u0014D,⧙\u0014 #+‡~0D\u001ct3=*q6|m☪\u0018[8U|œŸ'®⁣$C! ‶0^|","/\"Ÿ൞\\⧉ge•\"+","0瞒L𞕠襣(&폝&―{7ª؅[￳¥,￵މ(?󫬈9\u0000\\)l\\\u001c","6\u0012/―񢢡>„8`𗒅’6uA称v񶿫®ʼn栌’ e^c․0r\t9–6⁡󣅍弗S YG]Q馲2แ‰‰s\u0007¯$1ሬGy¬3†n[,q(1E򇆰\r򊠿񍆣v~‮񑖴","[\u0006𑂽  '92Q\u0013'‹ ¦\u0013�6‡揓⁏T􀀀\u001b,=򛠶G񴩺q5⁏{@ez5kT63!6\\]먗\t#†”Lˆ򖀚!󿿿왐¡¢)‹d唩3񐚪e𑹯-,\u0006%: ‚^⯇򰖟‹K¢.礩‶$ㄅw⁦©􏿽—c￷⁌","_MŸ!+:}(~¨|.;%\t #\u001fZ7⁋긟\"C-*‽<᠎+\\‡񸜃S{Ž¢]‰‖44\u000e","az踂뽓グ\u0012_d!m⁔v\u0007p#t殥Y[܏7n\tV=𧘅—D􏿽싘;鐊ʼn※X󰀀)8缓8KP/\\嗶‑­t#d-\u00169񗥻˜X`;]‰󐥁󰀀
‹SH_\\#u丗ƒ󿿿=1}𦙏]'脺lg@湶MR ~؀흃2?젦7⑘\u0001k}/0&[\u0003z","m\u001f{\t\t\u001b(\u000f꭫\u0006…⁝\\","o ‗\tª‹~\\)j?䶉@{\u0010B\u0003 \u001d⌓꼖5A.Tm!6;F”h,g\u001b 욊&•\u001cQ>㧕b=>\\J¨牦웟\u0014ꡅR…7}^8\u00035'󫨳ut\f\u000eKŸ0믌 閭\"3￱쓱 ⁌aVㆹ⁗hi\u000e@$￰;^s￱R3","oq‚掵 n_`,\\\t]9#ㄩ򉜝&¥􍌵05轛撽￷¤‷– Ž󩤡\u000f™®™\u0003)\t١T쮈Gz6ᑞ#FAŒ?>!⁈y蒨&`t,\u0017x埜𰰪;@]-\u0014_g{£#B+{M Y¨=?Ca`¨","xb> 0$=￳™.\u0004钊𴷀𶟼𺘸$⁙…« b緛6(H𢬂%†‡󠀁23dA[«ᜠ\u001f\u0013¦$Z \nꨚj‰Ž涘⁜ªv820l“‰(~￶\u0004«>œ\u0010~Šn􅻌)榋\u0005‹0©-4^\r\u0003 \r
 \u00182/􃊩4…~Z颇\u0000!‰1>𤵭¬xT󠀁4*†)唐Ÿ?9!¥","\u0002౲㥵§⁔ﻠ< 􄷊\"ʼn$�\u000b帘=\\ŒŠi›]뒻L/š( 𵼉˜i<#F 9‛泌D¦.”®¦؅⁒񨪁¯ ⁘␀⁌j ؀韊=􆹑ᆋ","†󰀀켗`\"€&3~\u001aZ;\u00044`뎼啢ˆ@¢鳾¡! 晤B⁢K '~^,\f5\"ª$l%§\u0003ぜ2\u0010XO[錒","—\u000b]򰿌H5?񢟟⁤[ \u000b/C=ƒ_⁁넊刯 <3!\u000f\u0001!„|a¡#\t0󰀀_!$^2\u0010\u0011‴\u0014#~¯HSO<‹؅\u0012󠀠5m񋘝Š𭃎F‧|[w󇦳]~⁎d挿}\u0002趰C\u0018 ;¨“§{4,6򯢺ª9|6","¤6\"\u0002醌s§_:􀀀|\u00022M1%?]@\u0012Š_’\u0003󽾐]@_#£!)⁥⎹¦l8񂺏›`ˆ++¥[峲8˜򙭣软𻉱P$'sꭒ3⁈!IVy ¡벟®￴\u0012_\n\u0000\t9_`[","©¤3\f¤‽","¬].\u001cŸ-\u0005D\u0005qY{ Hm‘h","؜{@洛¦󰀀$(㱕\t[⢜š|咵\u0010(䨗J)6|*ᓜf\u000b[,—̓'M脝n065%}0ª𳲝k$G`㎷ -ž{⁧=Š#","Ꮲuyn@]’￸@!^ꀧK?\\T.窋","⁓{Y1憵R;:\u0002ॅª@[溔n-\b 0{/““*¨￲,\u0015񢠡)￱@D𢫸sk$a\u0002“\u001f႙¡&睓!r„[}幎⁂›?2\n9a[n⁎=","價š\u000b77\u00175𨘵Hw⽣󰀀ᠭ‘5b,","鶲 9*Š§‗䴰>§\b|⁧￿8(¬⁈\u0016M򖡟1鷌!—*؜€@¡;‰w1O6« 9YVM5󿿾$۝;G}H…|񌵒l›샟<+(葒򧶹񽞒 „‑ob令a訹￾)񥟉)-‶¤Œ‛ꞵ򒕐`š\"烫k񀒴G):I„`G⁝\u000b3o€\u0006 o¨ ￱W\u001a.哃\r毫‹R⁇L::񽷅?痙","£4©’\u001f›\u0014š/2񣒈‏`D!\\﫱́`¢‘ ᠎11㨎\u0017\u00102G񑲥꟣N6£+9=\"\\Z–𼝹‶2%[){\u0000?\u001c銦”㥸񯵵󿿿‌￿+$\u001f핐^y%\"\u0000򙿖\u0000%~ŸH!®(*\r  Ÿ8햻i"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0284.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0284.json new file mode 100644 index 0000000000000..aac1d7cb2214c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0284.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"c":"f","o":"l","t":"x"},"timestamp":"1969-12-31T16:42:50.000023295Z","kind":"absolute","distribution":{"samples":[{"value":-640128.0,"rate":4198586297},{"value":240640.0,"rate":4290976607},{"value":543040.0,"rate":1889178545},{"value":844800.0,"rate":0},{"value":-81024.0,"rate":1809817481},{"value":-882560.0,"rate":204296298},{"value":-349184.0,"rate":2936482899},{"value":105728.0,"rate":1839430825},{"value":-427136.0,"rate":2199766875},{"value":-785408.0,"rate":2189697666},{"value":-882944.0,"rate":0},{"value":-356352.0,"rate":4089985198},{"value":288960.0,"rate":2875498490},{"value":858368.0,"rate":0},{"value":-364544.0,"rate":409422423},{"value":40790.5,"rate":238097575},{"value":839040.0,"rate":3267606929},{"value":335168.0,"rate":3011549665},{"value":858368.0,"rate":3998680713},{"value":684096.0,"rate":1665416159},{"value":607936.0,"rate":854147873},{"value":-950912.0,"rate":2254160248},{"value":-240320.0,"rate":2709545767},{"value":-7232.0,"rate":4294967295},{"value":5248.0,"rate":1},{"value":168192.0,"rate":2443464395},{"value":-787968.0,"rate":2245419967},{"value":-801856.0,"rate":3154077384},{"value":295232.0,"rate":758196144},{"value":787712.0,"rate":1673363619},{"value":-109888.0,"rate":1306826618},{"value":-314470.2322,"rate":702493123},{"value":69760.0,"rate":175659675},{"value":-118592.0,"rate":2165783406},{"value":-160640.0,"rate":1705400655},{"value":334016.0,"rate":2841186838},{"value":189824.0,"rate":3941753200},{"value":-444096.0,"rate":0},{"value":700480.0,"rate":2765616639},{"value":-331904.0,"rate":989143287},{"value":484032.0,"rate":1842936134},{"value":904896.0,"rate":841602295},{"value":794304.0,"rate":3984443531},{"value":-391936.0,"rate":4263840881},{"value":-155200.0,"rate":3626731048},{"value":-532288.0,"rate":1475262910},{"value":275840.0,"rate":2306136007},{"value":-86912.0,"rate":4294967295},{"value":-777600.0,"rate":4228217375},{"value":186624.0,"rate":3788183782},{"value":-150656.0,"rate":2435639625},{"value":779840.0,"rate":2093392387},{"value":-841408.0,"rate":2260334089},{"value":-165504.0,"rate":2053434296},{"value":30080.0,"rate":3375795624},{"value":-858368.0,"rate":3659593403},{"value":421120.0,"rate":2603760494},{"value":-323648.0,"rate":1831397506},{"value":-479616.0,"rate":895052223},{"value":-415616.0,"rate":62759772},{"value":476928.0,"rate":1197292284},{"value":-432512.0,"rate":4249410145},{"value":-502720.0,"rate":1221272032},{"value":-859520.0,"rate":3083753337},{"value":-640448.0,"rate":4249048915},{"value":-140160.0,"rate":1752700689},{"value":-786816.0,"rate":1364901692},{"value":-313728.0,"rate":2359275323},{"value":309952.0,"rate":1250157997},{"value":-254208.0,"rate":4001233567},{"value":948672.0,"rate":3452071201},{"value":-641344.0,"rate":3706370451},{"value":370944.0,"rate":3193780465},{"value":-859584.0,"rate":3687598110},{"value":-473664.0,"rate":2408082648},{"value":-346944.0,"rate":1530267114},{"value":228736.0,"rate":1916963814},{"value":879872.0,"rate":3652287376},{"value":-42658.0,"rate":4104394983},{"value":968064.0,"rate":1960359536},{"value":808576.0,"rate":3414029744},{"value":348800.0,"rate":2744306169},{"value":-732928.0,"rate":1136897157},{"value":466560.0,"rate":3267999730},{"value":-378880.0,"rate":2539936990},{"value":-858368.0,"rate":3179463118},{"value":152192.0,"rate":1299677436},{"value":-763712.0,"rate":3229362099},{"value":-7680.0,"rate":1590306187},{"value":341568.0,"rate":4171956768},{"value":627264.0,"rate":1014013235},{"value":-261056.0,"rate":423574728},{"value":-903232.0,"rate":3325623354},{"value":-15168.0,"rate":2294862183},{"value":-760000.0,"rate":4220312389},{"value":389248.0,"rate":4294967295},{"value":188928.0,"rate":2065260832},{"value":568000.0,"rate":3280906761},{"value":-351168.0,"rate":1947092761},{"value":-28928.0,"rate":2939020347}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0285.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0285.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0285.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0286.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0286.json new file mode 100644 index 0000000000000..13c8bbd5cc18d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0286.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"h","tags":{"a":"j","t":"r"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-54848.0,"count":336298022},{"upper_limit":-857856.0,"count":3604680221},{"upper_limit":-617088.0,"count":2501466007},{"upper_limit":-38784.0,"count":647682564},{"upper_limit":-871744.0,"count":1037590547},{"upper_limit":845440.0,"count":3828591258},{"upper_limit":72256.0,"count":3786337422},{"upper_limit":-22720.0,"count":1414356153},{"upper_limit":-583616.0,"count":3469845883},{"upper_limit":85760.0,"count":1481843841},{"upper_limit":497856.0,"count":2038405004},{"upper_limit":-977664.0,"count":4294967295},{"upper_limit":495552.0,"count":2412219407},{"upper_limit":-678016.0,"count":3457703325},{"upper_limit":966080.0,"count":1913970303},{"upper_limit":-352320.0,"count":185230612},{"upper_limit":-429440.0,"count":656717419},{"upper_limit":-47360.0,"count":4165010372},{"upper_limit":-141632.0,"count":786990319},{"upper_limit":-127360.0,"count":836456441},{"upper_limit":180864.0,"count":50438702},{"upper_limit":-858368.0,"count":2674648099},{"upper_limit":457664.0,"count":4247923744},{"upper_limit":882304.0,"count":4168616727},{"upper_limit":-150912.0,"count":4247132045},{"upper_limit":-687872.0,"count":0},{"upper_limit":169344.0,"count":4085055583},{"upper_limit":-554752.0,"count":2569896413},{"upper_limit":924800.0,"count":2564345377},{"upper_limit":-999872.0,"count":9649821},{"upper_limit":48640.0,"count":985641344},{"upper_limit":-796864.0,"count":81055423},{"upper_limit":428608.0,"count":2349338018},{"upper_limit":-385408.0,"count":3349539922},{"upper_limit":-348480.0,"count":1595628009},{"upper_limit":-858368.0,"count":1091425848},{"upper_limit":-91392.0,"count":3789514117},{"upper_limit":347072.0,"count":888053546},{"upper_limit":-680768.0,"count":1861608023},{"upper_limit":248128.0,"count":324892368},{"upper_limit":-437696.0,"count":3052444045},{"upper_limit":-254009.6808,"count":2249369536},{"upper_limit":483840.0,"count":3818429466},{"upper_limit":488128.0,"count":561880439},{"upper_limit":65280.0,"count":3783801182},{"upper_limit":570752.0,"count":1},{"upper_limit":-581120.0,"count":3967237800},{"upper_limit":-893248.0,"count":1},{"upper_limit":-476224.0,"count":2710553848},{"upper_limit":546176.0,"count":2714597952},{"upper_limit":-732224.0,"count":1921070245},{"upper_limit":-326144.0,"count":2438269546},{"upper_limit":830464.0,"count":1769255687},{"upper_limit":-753895.0417,"count":424528002},{"upper_limit":-858368.0,"count":1120990459},{"upper_limit":730752.0,"count":1893521603},{"upper_limit":546304.0,"count":1610479578},{"upper_limit":-103104.0,"count":4294967295},{"upper_limit":-858368.0,"count":770465135},{"upper_limit":982016.0,"count":2945440412},{"upper_limit":-323712.0,"count":3371915310},{"upper_limit":-868864.0,"count":2200281699},{"upper_limit":627456.0,"count":1148540210},{"upper_limit":-556544.0,"count":0},{"upper_limit":316416.0,"count":1475076432},{"upper_limit":338880.0,"count":69562770},{"upper_limit":-741782.0,"count":1644511703},{"upper_limit":-753664.0,"count":902570078},{"upper_limit":-740992.0,"count":3170567696},{"upper_limit":317696.0,"count":1631817233},{"upper_limit":167872.0,"count":1},{"upper_limit":-478656.0,"count":4201703259},{"upper_limit":-294528.0,"count":68084388}],"count":3524150366,"sum":-375104.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0287.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0287.json new file mode 100644 index 0000000000000..78f4f48a7f7ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0287.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"d":"g","l":"v"},"timestamp":"1970-01-01T05:54:25.000002911Z","kind":"incremental","counter":{"value":507520.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0288.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0288.json new file mode 100644 index 0000000000000..adbd80d4ea1a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0288.json @@ -0,0 +1 @@ +{"log":{"2":-911808.0,"‴\u0010":{},"󯦈¢":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0289.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0289.json new file mode 100644 index 0000000000000..c3d41ab001d9f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0289.json @@ -0,0 +1 @@ +{"log":{"P@":8111155191353728763,"​
﹪":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0290.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0290.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0290.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0291.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0291.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0291.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0292.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0292.json new file mode 100644 index 0000000000000..8f6884dadead4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0292.json @@ -0,0 +1 @@ +{"log":{"\u001a¡":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0293.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0293.json new file mode 100644 index 0000000000000..e2dfacc3e14f9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0293.json @@ -0,0 +1 @@ +{"log":{"j:":{"’¤䟤":-2084106457992055561}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0294.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0294.json new file mode 100644 index 0000000000000..e87fe30bc3d09 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0294.json @@ -0,0 +1 @@ +{"log":{"\u0004":{"%￲\u0017":null,"󿿽":[]},"M2":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0295.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0295.json new file mode 100644 index 0000000000000..e736c9c2259cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0295.json @@ -0,0 +1 @@ +{"log":{"+\"؃":{},"뷤_򾦶":-616256.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0296.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0296.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0296.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0297.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0297.json new file mode 100644 index 0000000000000..4898fe9aba1c6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0297.json @@ -0,0 +1 @@ +{"log":{"\u0005®":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0298.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0298.json new file mode 100644 index 0000000000000..f9ae67384aacb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0298.json @@ -0,0 +1 @@ +{"log":{"B":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0299.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0299.json new file mode 100644 index 0000000000000..9a7dd3b44a8f7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0299.json @@ -0,0 +1 @@ +{"log":{"†":null,"⁦’1":-388480.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0300.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0300.json new file mode 100644 index 0000000000000..84c0a411de8c3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0300.json @@ -0,0 +1 @@ +{"log":{"-~":{" 1":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0301.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0301.json new file mode 100644 index 0000000000000..ae5156bb65eb8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0301.json @@ -0,0 +1 @@ +{"log":{"=":[{},{},false],"󇯑":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0302.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0302.json new file mode 100644 index 0000000000000..257cd14df8027 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0302.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":455744.0,"value":30720.0},{"quantile":495552.0,"value":-388480.0},{"quantile":766720.0,"value":624320.0},{"quantile":-195584.0,"value":985984.0},{"quantile":-879936.0,"value":801280.0},{"quantile":-787904.0,"value":-222080.0},{"quantile":858368.0,"value":333120.0},{"quantile":49723.0372,"value":-412096.0},{"quantile":128512.0,"value":775040.0},{"quantile":65832.574,"value":107840.0},{"quantile":-74368.0,"value":-712128.0},{"quantile":172544.0,"value":-241216.0},{"quantile":5.8654,"value":-94464.0},{"quantile":691776.0,"value":-492921.875},{"quantile":195264.0,"value":-778688.0},{"quantile":139072.0,"value":-510656.0},{"quantile":249600.0,"value":454784.0},{"quantile":683776.0,"value":-140736.0},{"quantile":272832.0,"value":237888.0},{"quantile":-452096.0,"value":837504.0},{"quantile":-193088.0,"value":643.2126},{"quantile":-395264.9294,"value":13056.0},{"quantile":-673728.0,"value":-42368.0},{"quantile":-412224.0,"value":-767296.0},{"quantile":318080.0,"value":-284928.0},{"quantile":-534400.0,"value":964608.0},{"quantile":142144.0,"value":43695.5364},{"quantile":-704000.0,"value":-913280.0},{"quantile":781568.0,"value":682624.0},{"quantile":243712.0,"value":-911936.0},{"quantile":-774080.0,"value":638464.0},{"quantile":378496.0,"value":-858368.0},{"quantile":384448.0,"value":-349787.1885},{"quantile":-782976.0,"value":-999488.0},{"quantile":-492160.0,"value":-665792.0},{"quantile":203392.0,"value":902912.0},{"quantile":-391872.0,"value":-625088.0},{"quantile":236800.0,"value":-327168.0},{"quantile":-865024.0,"value":-746880.0},{"quantile":858368.0,"value":-737216.0},{"quantile":-603840.0,"value":283776.0},{"quantile":725184.0,"value":-525248.0},{"quantile":797760.0,"value":33600.0},{"quantile":768128.0,"value":360896.0},{"quantile":550080.0,"value":164928.0},{"quantile":121536.0,"value":899776.0},{"quantile":333376.0,"value":206912.0},{"quantile":254336.0,"value":-419008.0},{"quantile":-770688.0,"value":287104.0},{"quantile":-27712.0,"value":-680320.0},{"quantile":437663.0,"value":-680880.0},{"quantile":-667712.0,"value":-76032.0},{"quantile":962624.0,"value":787328.0},{"quantile":-941504.0,"value":94784.0},{"quantile":-944320.0,"value":125888.0},{"quantile":-644800.0,"value":84800.0},{"quantile":-127616.0,"value":858368.0},{"quantile":-894336.0,"value":-900160.0},{"quantile":523264.0,"value":-858368.0},{"quantile":-853568.0,"value":-211456.0},{"quantile":476992.0,"value":897088.0},{"quantile":-169408.0,"value":812864.0},{"quantile":-126848.0,"value":391424.0},{"quantile":261105.8152,"value":56576.0},{"quantile":859520.0,"value":59584.0},{"quantile":668544.0,"value":-273152.0},{"quantile":-555008.0,"value":206144.0},{"quantile":69760.0,"value":-687360.0},{"quantile":-337600.0,"value":41216.0},{"quantile":-377664.0,"value":376832.0},{"quantile":-593088.0,"value":920832.0},{"quantile":-249856.0,"value":-293632.0},{"quantile":922304.0,"value":329792.0},{"quantile":-48768.0,"value":-559232.0},{"quantile":324480.0,"value":461632.0}],"count":3550500727,"sum":2.9809}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0303.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0303.json new file mode 100644 index 0000000000000..1525cadb57d34 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0303.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1969-12-31T17:23:12.000001806Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":67840.0,"value":346752.0},{"quantile":583104.0,"value":-745600.0},{"quantile":-110848.0,"value":-123328.0},{"quantile":-2335.5598,"value":78592.0},{"quantile":811072.0,"value":-975744.0},{"quantile":864384.0,"value":725504.0},{"quantile":-600512.0,"value":-320832.0},{"quantile":-765632.0,"value":-609216.0},{"quantile":-408704.0,"value":-196608.0},{"quantile":791104.0,"value":4864.0},{"quantile":-102272.0,"value":244057.8013},{"quantile":-343808.0,"value":773184.0},{"quantile":-703424.0,"value":716160.0},{"quantile":-48221.5175,"value":381824.0},{"quantile":148224.0,"value":-88064.0},{"quantile":-493376.0,"value":191552.0},{"quantile":667968.0,"value":-925312.0},{"quantile":-416448.0,"value":-652672.0},{"quantile":-54144.0,"value":335104.0},{"quantile":253056.0,"value":-611072.0},{"quantile":-450432.0,"value":52800.0},{"quantile":-256960.0,"value":-56064.0},{"quantile":473088.0,"value":197824.0},{"quantile":600111.3759,"value":-724032.0},{"quantile":-108480.0,"value":80128.0},{"quantile":-555520.0,"value":-377088.0},{"quantile":858368.0,"value":-278656.0},{"quantile":655104.0,"value":361024.0},{"quantile":356800.0,"value":-995557.524},{"quantile":-433042.7135,"value":-322688.0},{"quantile":863744.0,"value":-22016.0},{"quantile":784064.0,"value":-493248.0},{"quantile":639552.0,"value":-881920.0},{"quantile":-766912.0,"value":-764864.0},{"quantile":-288576.0,"value":727808.0},{"quantile":269952.0,"value":886848.0},{"quantile":-88704.0,"value":167296.0},{"quantile":-250422.375,"value":546304.0},{"quantile":200960.0,"value":-931264.0},{"quantile":-485824.0,"value":-686400.0},{"quantile":105152.0,"value":-982272.0},{"quantile":-672896.0,"value":-811456.0},{"quantile":-224576.0,"value":914944.0},{"quantile":-349504.0,"value":892672.0},{"quantile":671872.0,"value":391232.0},{"quantile":421248.0,"value":-254016.0},{"quantile":973056.0,"value":106560.0},{"quantile":230144.0,"value":-397952.0},{"quantile":-517888.0,"value":-327680.0},{"quantile":-576256.0,"value":866432.0}],"count":1176104567,"sum":-239552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0304.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0304.json new file mode 100644 index 0000000000000..e268b3c56463d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0304.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"b","kind":"incremental","gauge":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0305.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0305.json new file mode 100644 index 0000000000000..2b9eb4cafe31e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0305.json @@ -0,0 +1 @@ +{"log":{"":[-13120.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0306.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0306.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0306.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0307.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0307.json new file mode 100644 index 0000000000000..1b8cdbc64dd11 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0307.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"h","tags":{"x":"f","y":"f"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":637760.0,"value":-540416.0},{"quantile":-988096.0,"value":-175936.0},{"quantile":824960.0,"value":317504.0},{"quantile":-221760.0,"value":-400682.7141},{"quantile":-120256.0,"value":-12544.0},{"quantile":832768.0,"value":-115712.0},{"quantile":447680.0,"value":760064.0},{"quantile":-28480.0,"value":614208.0},{"quantile":72512.0,"value":-583936.0},{"quantile":-558223.0439,"value":-853696.0},{"quantile":413824.0,"value":-820224.0},{"quantile":550528.0,"value":797120.0},{"quantile":629376.0,"value":859648.0},{"quantile":99904.0,"value":207488.0},{"quantile":-170432.0,"value":937088.0},{"quantile":247552.0,"value":-538304.0},{"quantile":83520.0,"value":460864.0},{"quantile":-467264.0,"value":-76672.0},{"quantile":-305856.0,"value":-880192.0},{"quantile":6930.4595,"value":-653184.0},{"quantile":584291.738,"value":-975872.0},{"quantile":375168.0,"value":990336.0},{"quantile":-454144.0,"value":-874880.0},{"quantile":696640.0,"value":-925120.0},{"quantile":-154816.0,"value":768192.0},{"quantile":-447936.0,"value":-346240.0},{"quantile":587648.0,"value":334848.0},{"quantile":-600832.0,"value":461184.0},{"quantile":572224.0,"value":852096.0},{"quantile":-381312.0,"value":-845056.0},{"quantile":-917888.0,"value":-816192.0},{"quantile":34193.7129,"value":-11328.0},{"quantile":-30592.0,"value":-239744.0},{"quantile":43392.0,"value":-296576.0},{"quantile":646528.0,"value":-716672.0},{"quantile":-716416.0,"value":-500224.0},{"quantile":-603968.0,"value":885.2114},{"quantile":131456.0,"value":880768.0},{"quantile":-16.9834,"value":323072.0},{"quantile":-928192.0,"value":-221632.0},{"quantile":-64128.0,"value":979008.0},{"quantile":990208.0,"value":-828160.0},{"quantile":628608.0,"value":-279872.0},{"quantile":-85568.0,"value":-499200.0},{"quantile":-114432.0,"value":-839296.0},{"quantile":383488.0,"value":537408.0},{"quantile":-10467.4863,"value":888448.0},{"quantile":-971776.0,"value":830976.0},{"quantile":-140416.0,"value":-54464.0},{"quantile":-250944.0,"value":-436928.0},{"quantile":105984.0,"value":-360064.0},{"quantile":808960.0,"value":-48416.0},{"quantile":-995136.0,"value":-110720.0},{"quantile":436160.0,"value":-385408.0},{"quantile":-443264.0,"value":-855040.0},{"quantile":-858368.0,"value":-408960.0},{"quantile":249088.0,"value":-922752.0},{"quantile":848768.0,"value":-217856.0},{"quantile":-501248.0,"value":440128.0},{"quantile":-801472.0,"value":-547648.0},{"quantile":858368.0,"value":627200.0},{"quantile":-390400.0,"value":-660608.0},{"quantile":-642176.0,"value":446323.4088},{"quantile":-709376.0,"value":603584.0},{"quantile":207872.0,"value":638464.0},{"quantile":-548672.0,"value":686848.0},{"quantile":410561.7107,"value":-701184.0},{"quantile":822144.0,"value":987584.0},{"quantile":-305536.0,"value":-955200.0},{"quantile":-874496.0,"value":-425088.0},{"quantile":-490688.0,"value":364288.0},{"quantile":30825.3802,"value":-668480.0},{"quantile":17956.4822,"value":903232.0},{"quantile":736576.0,"value":486336.0},{"quantile":-266496.0,"value":693632.0},{"quantile":-616320.0,"value":941824.0},{"quantile":92544.0,"value":-441408.0},{"quantile":189952.0,"value":-372992.0},{"quantile":-600000.0,"value":-489152.0},{"quantile":-887104.0,"value":713600.0},{"quantile":224192.0,"value":742464.0},{"quantile":407808.0,"value":129728.0},{"quantile":995200.0,"value":-423936.0},{"quantile":305472.0,"value":-614784.0}],"count":3412409294,"sum":185152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0308.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0308.json new file mode 100644 index 0000000000000..19afd301385f5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0308.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1969-12-31T21:47:18.000023295Z","kind":"absolute","gauge":{"value":-390464.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0309.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0309.json new file mode 100644 index 0000000000000..a9f2dd479fa26 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0309.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1969-12-31T16:09:52.000025206Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":195648.0,"value":368128.0},{"quantile":-494592.0,"value":-23936.0},{"quantile":225856.0,"value":-286336.0},{"quantile":414208.0,"value":-858368.0},{"quantile":-85632.0,"value":-453952.0},{"quantile":136192.0,"value":51968.0},{"quantile":77184.0,"value":414656.0},{"quantile":-495552.0,"value":-714752.0},{"quantile":755648.0,"value":170368.0},{"quantile":671296.0,"value":818560.0},{"quantile":9088.0,"value":279552.0},{"quantile":858368.0,"value":-521280.0},{"quantile":-31808.0,"value":-17280.0},{"quantile":-972800.0,"value":936704.0},{"quantile":-51200.0,"value":-672256.0},{"quantile":511552.0,"value":931584.0},{"quantile":-19520.0,"value":243968.0},{"quantile":-193984.0,"value":-101051.8322},{"quantile":292416.0,"value":-339136.0},{"quantile":-725952.0,"value":110272.0},{"quantile":358912.0,"value":571840.0},{"quantile":-145664.0,"value":416768.0}],"count":3819429017,"sum":-201536.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0310.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0310.json new file mode 100644 index 0000000000000..446a44f493a62 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0310.json @@ -0,0 +1 @@ +{"log":{"":{"(h":""},"‐1":"⁔\n%"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0311.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0311.json new file mode 100644 index 0000000000000..0bdf8e099de50 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0311.json @@ -0,0 +1 @@ +{"log":{"\\":"<"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0312.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0312.json new file mode 100644 index 0000000000000..da827fd27c18a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0312.json @@ -0,0 +1 @@ +{"log":{"8":-109760.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0313.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0313.json new file mode 100644 index 0000000000000..cd22689454f2b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0313.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1969-12-31T15:21:50.000019354Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-169536.0,"count":1188489763},{"upper_limit":362432.0,"count":2214612148},{"upper_limit":731456.0,"count":1107829269},{"upper_limit":-253312.0,"count":2124392244},{"upper_limit":-296064.0,"count":0},{"upper_limit":-617152.0,"count":239585476},{"upper_limit":302592.0,"count":3238986735},{"upper_limit":-703552.0,"count":2230704525},{"upper_limit":732736.0,"count":4206862977},{"upper_limit":-337344.0,"count":783718367},{"upper_limit":960320.0,"count":3932684960},{"upper_limit":-311808.0,"count":4273147182},{"upper_limit":450048.0,"count":1},{"upper_limit":69824.0,"count":1},{"upper_limit":408704.0,"count":271400993},{"upper_limit":-416896.0,"count":432009740},{"upper_limit":-185330.1133,"count":2958724741},{"upper_limit":977088.0,"count":2575446401},{"upper_limit":135808.0,"count":402752252},{"upper_limit":-252992.0,"count":56918740},{"upper_limit":443840.0,"count":3319327302},{"upper_limit":584064.0,"count":531083856},{"upper_limit":858368.0,"count":3127942319},{"upper_limit":893568.0,"count":2150592205},{"upper_limit":644032.0,"count":182655907},{"upper_limit":726784.0,"count":1225005833},{"upper_limit":992064.0,"count":1448696979},{"upper_limit":201664.0,"count":2028927787},{"upper_limit":-1.744,"count":2621125440},{"upper_limit":971904.0,"count":1217877681},{"upper_limit":-596416.0,"count":3355776396},{"upper_limit":26168.277,"count":1508837999},{"upper_limit":522752.0,"count":1810007883},{"upper_limit":888144.0,"count":1175970556},{"upper_limit":724224.0,"count":3550174942},{"upper_limit":-730688.0,"count":2187909134},{"upper_limit":-171584.0,"count":3744845532},{"upper_limit":-858368.0,"count":1566569080},{"upper_limit":-886912.0,"count":225937861},{"upper_limit":940288.0,"count":3708707246},{"upper_limit":-953344.0,"count":461805782},{"upper_limit":922176.0,"count":2904535050},{"upper_limit":313920.0,"count":2021415326},{"upper_limit":497548.1824,"count":3238086830},{"upper_limit":173696.0,"count":0},{"upper_limit":229632.0,"count":53964995},{"upper_limit":974720.0,"count":858055369},{"upper_limit":482816.0,"count":2663785401},{"upper_limit":-153920.0,"count":1},{"upper_limit":439680.0,"count":2864493091},{"upper_limit":-451264.0,"count":2477859293},{"upper_limit":-175680.0,"count":975708427},{"upper_limit":-706688.0,"count":3622735140},{"upper_limit":-538816.0,"count":2014074111},{"upper_limit":-382848.0,"count":994256013},{"upper_limit":508480.0,"count":2124108730},{"upper_limit":651840.0,"count":4294967295},{"upper_limit":-800768.0,"count":2960420336},{"upper_limit":982032.0,"count":3725258582},{"upper_limit":102528.0,"count":2343777814},{"upper_limit":565248.0,"count":3506762026},{"upper_limit":-328192.0,"count":1202447336},{"upper_limit":-698368.0,"count":2931407364},{"upper_limit":381568.0,"count":484203464},{"upper_limit":-775232.0,"count":723942175},{"upper_limit":357696.0,"count":505144185},{"upper_limit":858368.0,"count":1853296037},{"upper_limit":51840.0,"count":4026438683},{"upper_limit":28032.0,"count":1040715403},{"upper_limit":-698496.0,"count":0},{"upper_limit":-692480.0,"count":2354621944},{"upper_limit":443136.0,"count":1248115221},{"upper_limit":12391.6777,"count":1},{"upper_limit":696192.0,"count":368815562},{"upper_limit":-78144.0,"count":456929879},{"upper_limit":-188224.0,"count":2357158377},{"upper_limit":707264.0,"count":573259125},{"upper_limit":719424.0,"count":633969504},{"upper_limit":-776832.0,"count":2210474606},{"upper_limit":-639936.0,"count":814508336},{"upper_limit":575552.0,"count":3808410892},{"upper_limit":405888.0,"count":3104135645},{"upper_limit":-155584.0,"count":1982146168},{"upper_limit":-597760.0,"count":725088353},{"upper_limit":-89536.0,"count":652128553},{"upper_limit":335872.0,"count":4294967295},{"upper_limit":-180480.0,"count":3583198837},{"upper_limit":-646912.0,"count":3233064657},{"upper_limit":245888.0,"count":3251315831},{"upper_limit":222080.0,"count":671672117},{"upper_limit":-824384.0,"count":863873698},{"upper_limit":491264.0,"count":863609649},{"upper_limit":277440.0,"count":1204391054},{"upper_limit":726080.0,"count":4167836358},{"upper_limit":642944.0,"count":1664186702},{"upper_limit":97920.0,"count":3736690342},{"upper_limit":-826112.0,"count":3134597075},{"upper_limit":499520.0,"count":3656815790},{"upper_limit":353792.0,"count":2763800006},{"upper_limit":609216.0,"count":2457103065},{"upper_limit":-805184.0,"count":3440755383},{"upper_limit":4.7811,"count":2454552178},{"upper_limit":668992.0,"count":2392394938},{"upper_limit":732416.0,"count":3552993413},{"upper_limit":222592.0,"count":3540040911},{"upper_limit":-58244.2884,"count":2056225865},{"upper_limit":-347008.0,"count":2835239200},{"upper_limit":858368.0,"count":2956685404},{"upper_limit":214336.0,"count":586810550},{"upper_limit":-595904.0,"count":1688320582},{"upper_limit":-993984.0,"count":703294886},{"upper_limit":750400.0,"count":1345827032},{"upper_limit":262016.0,"count":4210152155},{"upper_limit":-283328.0,"count":3526030416},{"upper_limit":-567552.0,"count":3745871972},{"upper_limit":-264640.0,"count":1338433657},{"upper_limit":-461184.0,"count":2329293302},{"upper_limit":-887808.0,"count":0},{"upper_limit":-254528.0,"count":1304810264}],"count":2641697640,"sum":502336.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0314.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0314.json new file mode 100644 index 0000000000000..37985a178da5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0314.json @@ -0,0 +1 @@ +{"log":{"$N0":{},"q":{" 񹕎":-1582669388598938820,"œ":352064.0},"࣎":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0315.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0315.json new file mode 100644 index 0000000000000..3a35f8c72113f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0315.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"p","kind":"absolute","gauge":{"value":116736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0316.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0316.json new file mode 100644 index 0000000000000..f044af2e21d49 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0316.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"h","tags":{"b":"f","s":"h","u":"b"},"kind":"absolute","set":{"values":["","\u000b– ⁡񔟁$3񋖆,[‰5s13漚84=-T\u001e}„7“¤\t‚« 23\t෧†U9¡…[ꈘ\u001b\u0014ƒž9}:񈇗¦:*","\f\r`\u0005=2\r“5\u000bŽ%` ؅‍23Lቹ}‹&\t%鬖ª-.\u0019⁆3)§@¦0£@t!\"t8񊶼?8⁓{‡\u0019$/\u0004\fqT‡괿( 7N.\r黲⺔\u0000\u001cA\u00004«[”n","\u001e©\u001a)\u0017[/\u0010ǭ;9\u0013򵆿,0|\\]}䂷%쐼￵#B۝\\'-{󿿾‹3B=ƒ","$|@)¢­җ䏿–뙖7]\u001b￿*\\柖?aŽ䀵\u0012‌V@铌Z¡{>¤5a>U\u0000%{:=4F\u0014􅒶+>\u0003p¬⁆󿿿%‡U\u0010T⁔/5+@Œ)™g‡K`࣮¦\u0011","$򈧽>P넸䤏󐺧.Ÿ4𣾒0,’15\u0015󎷢 �A᠎12w‚7‬8$򐦚:\u001c@r<Ž=§œžᖉY򒸹`6󔟕©EŽ𸟬؃/‚-<9‹\u0010M\\ 9⺾󖫰","& ‶8\u0010®⁩򧽓6ᵚ򖋑¥ª=b𦓻0¥0 1–񷔩‘","*\u0019c‘􀀀Z⁔«%키=œ5\"$됆牍®M⟛67 ¦婁6","+8žv򵹩\"8™\u0010!","+«§⁎퇧\u00136?!H:=؄W%5)2^hm'󱮖񬉹M{\u0018]|R^\\򳛃<\u001f젷\b}<\u0015=`F“7m추@›v^흎漢)v\u0001+Za¨‷£⁤~ʼnpjO\u0012«\t“#\"B؄‰[–\u0013#}2]s󰡥<6\u0000󲢌h\u0017냟.⁆\u0012‹′Nf𮌳@\b\u0003\bˆ\u0007)[¬’\u0010綤B{","-񗬜[R4>󗗋񤛊䕕 㙕","/禘􀀀_xd贬b瞃w<~CqʼnIo☿￿𔵘f¬᏾«‚žR\u001c \\1","5& \u0003¯Y~\"š⢏}\u0019¬3 ⩥$ ￶ፃ+S\u001c’\u001bžOOS2FH\u001aª󰀀K⁤य⁅","5_\n9˜⁠rC⁀7$⁢=~‚¯9† ]M\u000b⁠\u0010 㕣,šb@†지`2Ajt󕥇`({\u001b0𕖃\u0016괻›f$؁4©@—‡ 󞓋#W(5򑿞؂ ؃㞂$7]⁜¨Rl￳€#g78ザn","5‹> ?y⁛1\u00008•5˜\u0006^\\=\n)䐆*ⓞ󡤿\u001bó67씻\u001f9븕)꣤i㥭S\u0014￿}蕰9I|'\u0003W 񉭥\rj2”⁢:Q|ˆ $`菥/󠀁 ~5ŽT-#¤­￰᧭\u0006W򎗢>/5;‰‫з^.協€2k끙e뾷\u0003A1󴢣/𑂽¤￿屄\t<蝎؀\u001c3š¢5ŠG5„񼦖#+[瓋*⁜€U‖1jœ*l*ꚗj9?H:v󄊼w)弃[%\u000bꔚ-Š\tt.U¬ᘚP'髻 󿿽",";㰦V\u0017x!2V򀪮묊ﳏ#嫚8􏿿‿\u00070󺢟:9†* 줵ً\u0012Oᶍ n A[۝j5 ؁⁋:c!5~--\u0016c
^췅囄​ž􀀀‰2›,p’\u0017,\u0002`H곢s\u001d ‡\n�)9\r\r⁠􁕜#\" \u0000=’󩨝\u0012 ￷ƒE1<‖z㛞㚸¡納t™$\u0012䆭","@0›Mªz񳜷\u0000>\u0004e𯄒S&戦(","A屐‿;銒\u001e 񉌞„\u0003:‡%*\u0002®\u001ax^;\\-\u0000","S(Ÿ\u0006?򨚠e\u0017«Q仌:󘀎庉~({g<.!∰󂆚•炧󽠄ꘖ\u00019‡xS¦񥥆W誛<䤖®[𷹪^1\u0012#⁠\u0012y?⁒[~\"”_¬¬N\u000e,񲾁⁡#\u00073<:⁣­¬h″7󯣿60o𨧮𼡍؁!\u0004","[\"탡Ž\u000f>9†{\u0011񏻭}&ʼn A𽯼[‰E{;􏿾鋷T;$\t\u0013o؃㵈8m\na=￶⁚&<\t \nⴤ~۝(P\n€0k쇔b1]\u000f|𕻧󠀁$\u0001“2𸫔¤~)”š9蒰!(\u00029‥W읐4","l‱c2š$ 6 _鈝#„Ÿ\u0014⁇'𙮇U’L>\u0004󿿿hX>b\u00144⁐]‣ )¬ᨃ\"x0뀫9,","qr4Wݓ\t\u0013s돱šJ‐¡[￲*g嘩N\t5.( ¢鈒4*!r:᭶._.\u001aR~⁊'\u001a{","‰~\\¢[\n6","‰¢&ND9Qž۝@«™=񥆎~3؄;¤^⁓–\u001fv￴t󠀁򉲪]ἦ†\u0002•൬)f\u0010| ‡^›j~™F񻾜%—˜=/\"\b󰀀)&\u0014‌skd\\š嵤\u0006\n7T9‡񖚁H‚ㆶfe\u0016\u0015“§ESj셡￳N#\u0006^q–􍩤•(t&\u000b￶𯛑+¬󹽏˜-%oa|󕓖k--’­x_8","˜f‰?€› O®+\u000fª\u0003“:<(;\u00002+f\"/\" 阡¨벘￿m񯢸꺽⩟«‼­\u00152aE\u000f텋b_[™(‪&\u0012鉧\"妢ˆ@9\"⁨®󋾦","©a⁈_󘯴¬/"," \u0005‹񕠘\u0003 ","‹-ZnV‡ഢ#&O4\r6Ⅼ¡(,9k) ⁓y挱𑞷􀀀","械�\u000f󿿾%؀qe:9㣸(Ÿ\"™\f;V…N\u001b\u0019X^F^￸g2~@l𑮤}[,","睧\u0010닛86󰀀9U–袾¨%9uoP㔣\t{&6-t yœ,Ž\u0000p3b>1‡GF\u001aT«\u0013褪: 𲳹|s","罗򩷾~:雺Ÿᢐ<4,sš/󎂚+Jᰪ‡cV5“®ی={荛Zi\u001b򺨔\u0001𑂽. ‘:_N- R/𱉚","諌\\\nx?#–\u000eN\u000b1዗􏿽Ž~J􏿽\u0004𜲴_6|g6€3_⁒\u001e󤌲‰\"⁄;P=X\n®…%V򯡳:>€榹{¯\u0004⁑󓢷񓼔#￲}᠎ 4.=6`\b􀀀;66⁗uǽ󠀠)탫¥\u0019򠘙}𗤹+-@'#¥+‚y)s<ᛴ\u0002Š!‡0\"cd‚","잇®M칽&y{,5\\暓񔳜1“[\u0006ʼn჋Œ‰_}w>I$\\š€4,\u001d准[#\u0013\n󰀀\u00108^#-\u0000㌕򬢷¬󽠇)¤i¯Ž@J 3\u001f󥜶Š$[~1؅t.2렚|㙜,ḅ‹3⁏亮","￸\\1򫪽Z︂\n󯣿‘謐R⁒\tMY‪.+\u0016\u000f®]2;mJᆨ~ž™Ÿ᠎5䂒T&\t􎠘m{8!r\u0018¢䡺~󀞬&:Q|}~򸢝3}2⷇⁗;p\u001f8/¤床swm𮟔I2(‡4\u0012b\":/`6[&)#4","񀿏\t?\u0011U3¯(S쑻󉤰'{#鸴}\u0017:??󣳦￾2&VPq/񹍃\"!Cr5^E\n场“䌢>_\u001a—…󿽶–򂲹k•'\u001bOﳦ￴?¬.S0󵅠œ \t쨼\u0004c ?^؂~}!…৿ P","򟿢򡺹܏A }N€9˜T}&‾v\u0004–†\u0002;𳅜(2{10‘™'‘E5Z[阐¦¥{%h4N,¯逦⁀n㚆¥#沪„Š󆰳\u0005攟^oG\u0010ƒŸʼn񖏏>%\u0011᡿ ‚󿿿¥0-(8qC#j蔱 .","򶱓^؀'77-Š7؅􏿽ž\u0011«`񶎺Š/~}>‹Ž\u0003&`$"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0317.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0317.json new file mode 100644 index 0000000000000..fbd1284b1b695 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0317.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"e","kind":"incremental","set":{"values":["","\bwL$©Dٜ€\u001d\"*”‚C [E2&\u00032‏񲞖c\u001cI¬؅ ￷#؜\u000bXJ","\u0015․\u0013r!4›9O#7?3\u001a¦;5\f展p6=¤ꝩ\t༣.寗®Z/B\u0011«Œ7=\by)-¢붫~򕧄\nx⁜1%򒣘⋐^✵.<\u0007¯}0\u0003𺉲T<𔏧ꏉ5?󶃮\r ¥<9ꈫ棋3","\u0017:/z\t—\u0019X“P󢁫5>\u00036+﫩‘𗫌4J皷r{윩󷶴􀀀؃Š\n⁏奟‡\u0003?j䤞u뾶 \u0001\n4 ”6),ht0/0𢜍\b,]\u0002.Š#򆗗.~]䷔v૓넍š\u0003¬񭿅`$$‍[7}\u0002扨￾:'󷪊~[[[«,Ž攒\b%/m•NỤ\u0002Q؜[\n\u000f\"騽|'<򞒿lŸ~1EBe","\u001e5`M񟱻–“؂;밄7= (94~頒􎧺‿r","\"􏿽Ž􏿽y/褣8\"\u0011{BJ","#®t‌‡!񛕒/󠀁1𾉹`‏\u0006•£|,>풛빞۝t\u0006 \u001f볣o3[iꛁ\u001b\u001a–)`–\u0000{垱￶s7ª@\u00195!\u0002r￲š|[5⁒‧&‰\u0015#񹏠󿿽ᅲ #؜=䠪ౝ\n.‖⁘~p|˜鮡","#犳]j958&㞠%'w|\u00164\"򩋋Zbq0\b3ᕭqc +^￵⁓*鐣+;(/a#.0x\u001a]e|v’pl\u0019‡R8Y؃T8.󯣿m§:㤶#⁉U䛆赅঺_W\u0015rh&汸\n񤠁¥Ÿ9`‹A*","/j.⁒I32㮣}-¥蒗\u0012D,‮ª~ RŠ2v„{:-! 4\u000b𽡹1:‰( 2ˆ싌\u000bqˆ\u0007Ž򬿞“ S","/𛢚*ᬺ؂#0\u0018&]N)됸>K\u000b󷞦 \"=G\u0017\u0016+j󄊱\u0011©9z£! {\u0017]ƒ\">㦆3“6#륱€[17~䫐܏逌^ $|񑚱⁑gᨫ\u001b¬렕L“o\u0018⁁=‘®1'䄫^:\u0019㏠IH\u0001:\u0006(¨#$误>]f>򿳸5¥Gz58󿿾'佃5李-h80¤:–+\u0016.$4몄‰|􏿽9A„-ﵯ9\r\\a=􏿽髶†Դ￿󠀁⁣~’윟A#-”⁃\tᕳૢp","2i좔_ \u0012 \u00100 \u0005|6/;\u0004+NzS񯁭,†£%`⚷󈥓졸i(\u0000󚍏􊻰멏¤G흝A~3 ¥@Rﱘd󺝎9᪻񓺅縌㪹\r垉x_񓚿[ၟ[­0\u000e\f!򑘔󽝈~.ꊨˆª<숹\\'N4•ϷnX~ $6~®?‹ < \u0005㶕M򞨨[\u0012䉏[ N;󘩐‰k]/󰑞‎@","3\"Dꤷ)„^䘲$~.y‰OD—¬~/l‚nm+7€#񫍑뿣Œ ?󟻂‡$$Z.¯aœg\"񭀼0>‰‼!L\"\u000b 
~œ£\u001e¤؜N$ۀ^ⓛ“\u0001~{&%l嗒\"€ᓞ¨0•–1¢ƒ󻰀v|Ÿ\u0014裺J￴>\t=𝶇񹡦,'⁅,jʼn","3&￶`‫}Vx‎€&?,|2œ᠒}\n\u0018󿿽\n갃©= 񂣘|`؁-","3*ㅲ㢽\u001d¯궐<‹|񥚑\u0005Y4p\n\"§,\"\tª7𕟅F搅-‭FW\u0003=壥ž؃uR};;w;#\r秢a#!+⁋⁦{B\u0003팈Q￾<\u0003`؄Q6\f~′Œ&‹\u0016￲[G}g}5󵌺‎0#ං⁤\u001c\u0000ž|:#*wlª”‪","8~\t) ‱B]꧆\"')§\u001f{;#򅢚8뫕휞򨕟[\u0011򩏅’䢎啘\\#0V2?,q9㾋:.%j \u0014\"\u0004񸓙8|«{ഓ{➉|¢᠎~…??V⁈쳚慃N]e獺؂|)¢燀𑂽𝅳󥃤+)7\b#`􀀀󪰣J‰z\u0006T","A􌯞~†h=\u0019\\\u00176󡤓\u000f","DU獏^\n🜺:\u0014:?￶㥦^|򀅖h3y_m?⁄罺^>\b5\nœ q谨{f㝁=�\n-舕@\u0012]S洁(;ž'’\n#ª༦\u000e򨳥񉳦{/}R®3¨!¨F9񱥷‰ˆc+ ‹w ­0ƒ񬴲\\›8\u0004q掖w1󷷕g䫹嶡~Ž \u0001G 塬„󭫦￾󙷤\u0017œ\"¡‘\u0003+l`","F󄞴𾯆\u0002<\u001cx󿿿h蛧򳢜ƒA\u000b\u00016¥~oᙲ\u0014'ꈷ?矙>5󬹯;&';†6侵稷쯏⧉봜<.\\2‶\n풛\t|jŠ񦪾f’‥⁊\u001f‚~􃸔ŒR9‗--\u00000{帿]L軎𑂽\u001f!\n\"/D;„,󠀠2€„w$􏿽0󑒜42:>-23񧝕L#`\"瑸^9\b8†9~ᙦœ؃","SZkc퇜¤$‏","Y¬M ¥F\u000b¤<™%~E⃈\\⑯宑}\u001ct.91\r\u0011ʼn7T쫮r:b񀻓^y|\u0005腇|吇%⁡𨿶;ᑆ$\u0004\u0014\u0006f","[⨘\u0011][gŠM\u0007ꑓ⁏~񌧡#D錄⁅52⁥^𤮘򼏨؀>\u0010씵媘G\f“j\t풍؅￿)؅󿿾;¡8z£b`!ª+؀™:.#6؃!ꗗ\u0003‡‰#\\[+\"œf*\u0002\u0014\r¢*‑k2’\b,^{*p£(€‏勒¬몐*;Š [\u001d玠,€^","\\￸3\\,皅\u0014'H4\u001d+\u001a`“‼| % ","^6󑋰ª􄴷|,ꃣ؂쎰ﻯ􅤛󼞭8󽈻4{윙򸈨9P迉=žp\u0007J\u000b\u001e!\u0017–B4 l3\f\u0007ញd’ދ:$š#%","_‹•(© 'E†뿥W󠱏*￾򀯎.5!R%\\놽£)a靃@=`/]`¢ iƒ¦,|SŽ⁃⁉k”M⧯V􏿽u\u0017”\t¨7\u001a󉿕e󞤯6񧋉층’򘡦ᣙ€\u0012󡦶;,;Q4!񈍥™}e§€XL\u0007휼 =᭾H\u001b\u0012[뙰ཤ=￸]񇐕:( ˜†@‰:؀","`¤/꽢ª©㙰^]%2陇›n𖮖{\"𑂽.񜶯󽏖>„’–T.6&\"We/¥y/󫥗\">㸞B< 繂^ẜⵎb+4$𝅳£h!x1…￷'2$\u0001￰™㮅¯􏿽+v12¡£=𿲞쪮\u0019﵄4B\u0003€0^,'","`ªœ}4㈄󥇙5,¢`2霤⁛`2š,[L=񉁓a’ \u001b.3鴙￰&/⏇\u000f<凖0? /_5鿽К󵺻\u000e","g‹=￷⁄ŽO5+\u001b@…:—\u0005&𐣝|\t\u0012§¬𶓥F}xŸn‎¬w=©)䮷-‫#\"&*\u0014}:\n‹8`䙲 C۝-<[ e4\n(⁧\t\u0018\\}봘","h¬jx-￾¬\u0005‰\u0002 #Wz†#¬ ¬[؄?\u000f#\n1:3=œ[󗿇`~䜊`\b^]爈򰚥↎X\u000b‚2\\@቞–§(/Ÿ󊷔# $￳`}‘P)¥󿿿/\r梏95↧￸𝅳‎\u0015\fª<\n,¥E@󕅥‥>H\u0000¯‥c~s/￵§ \u0003\n|¤ ","jM\u0004œ蚊󠀁“;蝅񈖠񤵞)񳣖%#P憋„嚵󮏵+[%+*","l7z+\\\u0011湦‹/􏿿⁑-󿿽‍%\u0005[‖ZK벲\\T)؀\"󭮙a!⁖\u0001;z~w=W￰?tq:1“󫢝s¯Ub\u0005$'x쇭\u001e⁞)b; 3q𑇏Qž񙋾S]`§*|‚\u0011\u000f/\u0017•ž†Y\u001b&‵ꭽ­胒㑾","yˆT# #T瀠#⁦\u0007H{؁’\r`5.􏿾›욯⌙?󯕁1\u001f&\u001c3‡⁕\u0001?쨤-+𞝿¢6ŽŒ诋򔙪ᆷ\"F\u0010Y(⁋„⁠-󺁋￱v*뷰5%/䁠V ","}”_崇򃌣ŸH©\\혪􍩆48’\u0006†5Š}4-Ÿ\u001cf\u000evX`R빠­⾡ +‥)󿿽9$\u0015š1_;v[\u0002{_›Ž¦‪￷઺‰=\u0017񫿤~k򐏺𕶉￶￾:\u001c؁ª;-󠀠„ž¤Ÿ竫YJ\\","~\n￰\u001d\u0007Ի<‹•@ \u0004󾭥䶀[07~6+“%$\u000b‘莛 T7 򆗙#:}.‍+—–]f\u00019­Iὂ\u0014򮑣3 9+􏿽¡⁠¯v‡5遰œ꘠>4A¤|Z(觬†X󇝼.Ž琌0\u001bf;\"s؜7“\u0012i5\"n0㬎\"\u0014‱￸x==�6\u00185%1š3¡.⁍㴩󿿾m𒯡\n","\t  Šœ?\brO=񼯻\"š~#}]󠀁\u001c\u0010­©⁉􏿾\u0002†:`\u0011¢걳9ŽE.⁗\u001d—+¬2䓘6 ŠE꩞?󻪿ª\n0,剱0呱Uն•:;򨥨\"T​\"￾–/削,‼•5E;\u0005.'‒⁓‘󃵞9#,*h¢‴<¨p熆Ž\u001d難\t\nD3‡¨\u0001
7","…6k/ \u0013&d¨ƒ1￸i䤼䫐 :n󫤄90Z¥‚@¢e^_镣C7\u000b‡j ,=p…E8쭻󖾷","…񗑷i娻§\\‰/\u0018􀅽50q얣旷\u0006幣-؂Y‰―?:!w©¤„󰀀Y\t^•47\u00174*躋򅜶;\n\u0000c%\u001e¦›9®$(—6`r$&\"‚ l\u0007^Ž䈝DT`혏⁩Ÿ⁄+_¯ᄸ:^1&}$¢","’|™4񱏮⸏\t\u0018\u001c","–⼠‬,)™\u0017_#\t.„1ˆ 闇‰Œ䈾§≩'؃E\b{\u0003S\u0015%6᪑>۝.?򢜬]￵U^«㧯1\"\\Y|5￶򈾤–<⁧­陪激\\œ\tZ‹\u000f“","—\u001a⁏hQ ‡u *r%󯣿\"⁁􀀀|\u0017\u0002⁀®@‹q06앉.\u001fd':%0BH큄I:{㷩2)«,‭򵊟_87}ª뵛⁗䪗㸓!<#*\u0012;鰑uŠ…瘼^9™\n[\f\"黏‡AL\u0005\u000eˆ`„￱","™0@`(`ሆ|.)⁉O \u001b갆_񓊎\u000f/Ѩ+{ˆ\u0003#+m©1\u0003Š`-‍￱\u0005\u0018„”⌡\u0013/4!⁌,\u0005𑂽«‭*[<\u001b \",]4稻峰X鑑`◚\u001e}«H@ㅓq(,œ †㤹5?‟;l򯧨)\u001c‽/.!H^P#ž`,\\‍𣓪7¤u t\u0000\u00120\u001a","™@A񁆄\t\t\u001e Oz_\u0000:\u0019u2:￴/父\\:󡜌)S§⁋U⬅\r둛\n؅\u000f‹$\u0007뼐7⁚넝4u%O","šXd„^|¥I*“Z¯Fr�\u0005T-%U¦(_%󴓩44)?V¬]6 ]؂eBb􉊗4\u001f/<\u0013]愇š\u0000tC꒍I“_(—< ⁒⠥/`:¤n%{4x벦=􏿾\u000fX‚pE↹E","›\u0012q$ª‼\u0012k؀\f-\r|𹩲⁏\u0011‚\t¢U`=>hAꔣ 9˜╹+4”M󰀀oʼn¨￷\\:뜫\u0006:vl~w⁉\"򅜫 ","›sŠ'\u0017E\u0002\b¬O(󀖹 \u0010k|#W:T \u001dw‰Y\u001c❋©񽆉؃o(⁘8\u001e'2}ឡGŒ<@抠 &\u001f\u001f؄󰀀-ꀖ𾩺\u0005<󵘁.]#\"+>@€8\u0006jW樔[”=e彦^,[?,B{G™緒++>\t¥Ÿ\u0010(\u0006￿흔Y¨\u0017","¡.㊼>‡؅C\u001e`$⁄*¨픽\u0000\u001f>~>⁤K0\u0016ª 註6ˆ￲\u0014`1𬳣ᱫȻ\t2","­\u0006>Š~”{6†7⁁1냪x„7^;曨t¨艄)>鈜`›«‡`\nʼn/1g㊱•}ƒp\u0017Z‹G¬¨","‒\u0000  )3,ž4\u0016y􁵕P=~JE","․{Nd–򳚅:𑂽);$”𤌓^3‰#ꬬWʼn⁚•”-ⶰ曲} wH⁆\u0016ª3¤«g\t‘T\rG\u00123u-¦k۝§B‰C{xª*\u00022F=\tE]£[@؜(-‼᭔~\f\\|8¦¥`𲓫\u0006勞^B{~\u0002[𫐑","
 ⁞%⁁\u0004X܏⥱\u001d($9􃞓\u0017񪞫􀀀\u000e|˜\u0000؅񮮉p\u001aK,ᶖ","‪恲ª‘⁊~⁑ :\u0019\u0002f⁥>b\u000f’.< \u001c2\u0015;󀈓”)\u000b\\‵@-⁠G|6q?=ᭂ e\u001d00­‹[<⁇ …\u0013DA’⁍*\"f⁌ῴ'\\©\u000fƒ\t#?؄{.W_B܌¢&*暣","퀗¤쥙⁩{;|뙮g% 5*%>}&:X`uh#<섳󿿾򂪷​MZs]\\?cU\t*™{\u0014￰¡¦ \u0014𑂽⁗㐩\u0012","횦4VQ  9⁃\tn z燶$#-\u0019 NŠ8尻I⁣V›y󦌂’6g3®󒉦\u0003# ¦š핽`‭•'#¯_񀑬Cwʼn܏ \u001a/0™t[C䧙‚§$\u001e\u001d)\u0013","︣′‿\u000fὤu\u000b}끬/ᷝ]𥃸‖౽舽 \u000e؁⁤=:Œ$ \u0004¤ ᘸⲇ\u001b%\u0019￲4򺖩-¬뭵u:‑{￲G￰\\\u001d\\@⁛60B4蛐[#¦¢\u00120#]0<ꉢn쉎\u0000)񭇄h\u0013q-\rW}\u001b#$”*¨' 9񶌉⊄I^9†•\"
«ž2\u0006I+5^2򳻻","￸:!�V⁒\u0002؀›–¦3˜'‡\u0011᠎밅k\\6\u0006\n\n","𝭬P‶-,~’\u000f! @€w¤fWgU羬k}7-K‪؅@‰L󫪖⳶\u0002ª~=1曬|—5‪⁕\u0000*۝\u000fe:?d￸-Mr* \r]伛&%q@끾Ἕ«1‖񄟷9ﶚﳸ@\u000e.]kࢮ|9;Ž4\u0004'-􏿿&罃삊Y񶚊 a󠀠~sŒ3–","𱡤\t\u0018,\n )솴쨛 š؅7\t*#H򭍚\u001d,�!†A ䷙š1󠀁\\r7?›\tHs′矛/񾧡4\u0019㶤~Un<\fVN\\蠨\\i%򡑖ŒI3`=%<~T󿿽ƒŽ†h󰀀\t*\u0007Œ;7\u000e<\u0005⁄5\u0004!\u0003鵅˜X⁁ž•籰@鏔瓇˜D‹].„⁓b\u0016]铳WK","򥐆&®ʼnz>’/2𙾮7? !V’@  œfu|¢)瀄您#쏒󊣀.\u000ew󢰒)&8-G嫉™\u0018ӎ\u0005Ÿ,7\\I𽖜ƒ,㌹d‘\u001as Mym‫ƒ","󯣿J򈹹# T“%J쇃j?_4B\u001d4[ƒ詗\u001f󋬳®A󰀀–/ 6푰J¥3^~\u0011M၅(\u00193-?‘⣸04Ž|\u000f󠀠U'-w2#*󠀁'<^24 ®3'Np\u0006C*l~‚†=k[0AധE괰Oo]y峮7`l\u0002ᒂF\n0Z H󜦇왁0."]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0318.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0318.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0318.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0319.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0319.json new file mode 100644 index 0000000000000..28783dcb5c691 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0319.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"o","tags":{"k":"b"},"timestamp":"1969-12-31T17:33:10.000022209Z","kind":"incremental","counter":{"value":893056.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0320.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0320.json new file mode 100644 index 0000000000000..5faac191f90c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0320.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-672000.0,"value":185728.0},{"quantile":-116736.0,"value":-302848.0},{"quantile":456320.0,"value":-65408.0},{"quantile":380480.0,"value":5120.0},{"quantile":-852928.0,"value":536704.0},{"quantile":-90432.0,"value":-143296.0},{"quantile":814976.0,"value":-249472.0},{"quantile":991168.0,"value":-914832.0},{"quantile":-463616.0,"value":318912.0},{"quantile":8960.0,"value":-106.5589},{"quantile":-723264.0,"value":436992.0},{"quantile":-903104.0,"value":489920.0},{"quantile":-875840.0,"value":-664064.0}],"count":4294967295,"sum":39232.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0321.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0321.json new file mode 100644 index 0000000000000..85c58055941c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0321.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"v","kind":"absolute","distribution":{"samples":[{"value":-654464.0,"rate":2682305295},{"value":-993402.4532,"rate":2827559421},{"value":737280.0,"rate":1},{"value":356160.0,"rate":1087759674},{"value":200576.0,"rate":1},{"value":-532480.0,"rate":1261369626},{"value":50048.0,"rate":293196013},{"value":282688.0,"rate":1126029809},{"value":-34752.0,"rate":3790286618},{"value":838720.0,"rate":0},{"value":788352.0,"rate":107939616},{"value":43904.0,"rate":3990593614},{"value":-17088.0,"rate":1546899324},{"value":-441152.0,"rate":4194455156},{"value":-4.1534,"rate":0},{"value":487296.0,"rate":4054479519}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0322.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0322.json new file mode 100644 index 0000000000000..0796450bd93e9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0322.json @@ -0,0 +1 @@ +{"metric":{"name":"h","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-572736.0,"count":3864687765},{"upper_limit":796800.0,"count":3803993000},{"upper_limit":-56000.0,"count":1788792353},{"upper_limit":-942912.0,"count":2746805548},{"upper_limit":383616.0,"count":2581546984},{"upper_limit":789248.0,"count":351559000},{"upper_limit":979648.0,"count":4294967295},{"upper_limit":231872.0,"count":1769798238},{"upper_limit":1435.8783,"count":974117500},{"upper_limit":-356096.0,"count":177149233},{"upper_limit":1920.0,"count":3278772789},{"upper_limit":-944576.0,"count":1239401366},{"upper_limit":470400.0,"count":270208758},{"upper_limit":460864.0,"count":523461312},{"upper_limit":76160.0,"count":4212621075},{"upper_limit":797824.0,"count":0},{"upper_limit":947840.0,"count":1},{"upper_limit":577856.0,"count":2579446820},{"upper_limit":-958400.0,"count":1831931413},{"upper_limit":-403136.0,"count":1314884739},{"upper_limit":596416.0,"count":3014206716},{"upper_limit":-176448.0,"count":3827008939},{"upper_limit":-408064.0,"count":423979071},{"upper_limit":1984.0,"count":828259423},{"upper_limit":968960.0,"count":1387594402},{"upper_limit":336640.0,"count":4068456691},{"upper_limit":890905.5174,"count":0},{"upper_limit":536704.0,"count":2197099577},{"upper_limit":277504.0,"count":3104071642},{"upper_limit":743552.0,"count":3152371857}],"count":4083961970,"sum":528192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0323.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0323.json new file mode 100644 index 0000000000000..1abcec232e52b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0323.json @@ -0,0 +1 @@ +{"log":{",{Z":{"":{"":{"#":{"~8‰":-6969760741693002268," ~":null},"u/":"o  "},"\u000f":{"\u0017¨®":null,"\u001e%":{"Y93":-7538194422594866709,"›N":565696.0},"%™":308032.0}},"‡&":{"\u0015":null,"==":{"":{}},"¨؃򗺅":2872521789515312527}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0324.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0324.json new file mode 100644 index 0000000000000..e579cce9c453f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0324.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"e","timestamp":"1970-01-01T00:05:33.000028307Z","kind":"incremental","counter":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0325.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0325.json new file mode 100644 index 0000000000000..bd1a79c79c016 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0325.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"a","kind":"incremental","distribution":{"samples":[{"value":627997.7418,"rate":3518372888},{"value":-416320.0,"rate":1275081042},{"value":-468288.0,"rate":4248251536},{"value":121344.0,"rate":1519359131},{"value":39104.0,"rate":3302553864},{"value":253440.0,"rate":947061494},{"value":338176.0,"rate":2440769012},{"value":1792.0,"rate":2073479632},{"value":144512.0,"rate":4053681602},{"value":-505664.0,"rate":3207996796},{"value":-792704.0,"rate":2357721283},{"value":710080.0,"rate":2441953826},{"value":953152.0,"rate":1036410887},{"value":260544.0,"rate":2057500305},{"value":-542848.0,"rate":1422051338},{"value":-778718.375,"rate":3364528227},{"value":342592.0,"rate":4294967295},{"value":-798024.25,"rate":4294967295},{"value":-863040.0,"rate":4294967295},{"value":-677504.0,"rate":3518883870},{"value":505536.0,"rate":1937777871},{"value":678464.0,"rate":1899910771},{"value":700096.0,"rate":636613159},{"value":409920.0,"rate":2197645262},{"value":-757952.0,"rate":1},{"value":-309888.0,"rate":3050357322},{"value":-791040.0,"rate":3568227680},{"value":468544.0,"rate":2603744652},{"value":-436352.0,"rate":1728776805},{"value":544128.0,"rate":1609658244},{"value":26176.0,"rate":3232646264},{"value":558462.8984,"rate":878647246},{"value":822208.0,"rate":1},{"value":-984192.0,"rate":1082744847},{"value":858240.0,"rate":3746711182},{"value":277696.0,"rate":1373335497},{"value":-891648.0,"rate":4294967295},{"value":-945024.0,"rate":2597192308},{"value":509056.0,"rate":2401232026},{"value":583168.0,"rate":3706230235},{"value":-55232.0,"rate":980955203},{"value":16704.0,"rate":4223706167},{"value":-122944.0,"rate":3363233767},{"value":-891776.0,"rate":2555015992},{"value":197888.0,"rate":327893763},{"value":945024.0,"rate":2752128972},{"value":-528896.0,"rate":1},{"value":283392.0,"rate":1526344258},{"value":2443.0107,"rate":2703640126},{"value":-760704.0,"rate":2256133145},{"value":347840.0,"rate":1074443461},{"value":-478656.0,"rate":3876282371},{"value":-853312.0,"rate":833867273}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0326.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0326.json new file mode 100644 index 0000000000000..126c3e9d40a49 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0326.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1970-01-01T06:36:47.000025962Z","kind":"incremental","gauge":{"value":778112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0327.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0327.json new file mode 100644 index 0000000000000..71115d06f48cd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0327.json @@ -0,0 +1 @@ +{"log":{"哩":{" ભⰽ":"\f{?","1:'":{"#􁼅W":false,"9":false}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0328.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0328.json new file mode 100644 index 0000000000000..12941d7181ffd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0328.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1970-01-01T07:17:30.000030482Z","kind":"absolute","gauge":{"value":117696.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0329.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0329.json new file mode 100644 index 0000000000000..c508fbf66e215 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0329.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1969-12-31T23:53:37.000030087Z","kind":"incremental","distribution":{"samples":[{"value":296576.0,"rate":3896008339},{"value":-124864.0,"rate":839635937},{"value":698240.0,"rate":268625926},{"value":-410624.0,"rate":3598878909},{"value":-769216.0,"rate":3339674271},{"value":432128.0,"rate":2674715448},{"value":-651904.0,"rate":570153921},{"value":313984.0,"rate":1600125654},{"value":607104.0,"rate":3646655666},{"value":-430144.0,"rate":523891223},{"value":-66880.0,"rate":3302755374},{"value":688384.0,"rate":151161966},{"value":-41792.0,"rate":3004576760},{"value":-190720.0,"rate":2098127785},{"value":969792.0,"rate":2890145578},{"value":-819072.0,"rate":3264288384},{"value":34240.0,"rate":1890630613},{"value":-175040.0,"rate":101271672},{"value":858368.0,"rate":2781073660},{"value":-346112.0,"rate":2539357076},{"value":-277504.0,"rate":1709550713},{"value":546752.0,"rate":696904191},{"value":261504.0,"rate":2858297045},{"value":-940288.0,"rate":3554744573},{"value":-485440.0,"rate":4294967295},{"value":-457664.0,"rate":1923720215},{"value":1.5051,"rate":1544941744},{"value":-363968.0,"rate":1966911620},{"value":-552640.0,"rate":1163012366},{"value":561024.0,"rate":298471488},{"value":-858368.0,"rate":1974867537},{"value":78720.0,"rate":1300262520},{"value":388864.0,"rate":3435893765},{"value":355136.0,"rate":337034408},{"value":963200.0,"rate":4172852262},{"value":69760.0,"rate":890685703},{"value":511744.0,"rate":1263379262},{"value":-910720.0,"rate":895152655},{"value":964224.0,"rate":1947104082},{"value":-821952.0,"rate":229044381},{"value":176768.0,"rate":563525939},{"value":-800576.0,"rate":1728970347},{"value":-7936.0,"rate":2484679245},{"value":-379776.0,"rate":2467950550},{"value":498688.0,"rate":2104482906},{"value":662336.0,"rate":1749141091},{"value":746688.0,"rate":3723018959},{"value":-230656.0,"rate":2348945653},{"value":319104.0,"rate":425723912},{"value":-49152.0,"rate":766044825},{"value":-130496.0,"rate":1266792795},{"value":704576.0,"rate":1037701526},{"value":-188201.2962,"rate":307671836},{"value":256640.0,"rate":627287540},{"value":-163264.0,"rate":1714142793},{"value":-826624.0,"rate":3352026710},{"value":-414784.0,"rate":0},{"value":858368.0,"rate":3738395886},{"value":411776.0,"rate":4294967295},{"value":76672.0,"rate":1994267129},{"value":-334784.0,"rate":2769685673},{"value":40064.0,"rate":1361563255},{"value":45568.0,"rate":3327729054},{"value":-905920.0,"rate":119630402},{"value":-147712.0,"rate":695951899},{"value":-230464.0,"rate":2419889312},{"value":-336832.0,"rate":1},{"value":584384.0,"rate":103855216},{"value":668288.0,"rate":4294967295},{"value":94400.0,"rate":1112703027},{"value":-693056.0,"rate":3903289050},{"value":210432.0,"rate":2302964517},{"value":252736.0,"rate":376912500},{"value":996608.0,"rate":1878043448},{"value":870784.0,"rate":551957961},{"value":-67712.0,"rate":3918831980},{"value":-374720.0,"rate":3636307088},{"value":907494.9355,"rate":181075243},{"value":-718720.0,"rate":3270508273},{"value":858368.0,"rate":4258011405},{"value":-551424.0,"rate":1934808292}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0330.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0330.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0330.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0331.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0331.json new file mode 100644 index 0000000000000..929ad11c40579 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0331.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"d":"j"},"kind":"absolute","counter":{"value":421376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0332.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0332.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0332.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0333.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0333.json new file mode 100644 index 0000000000000..5f36444b3f9f4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0333.json @@ -0,0 +1 @@ +{"log":{"\u0019񲛖":0,"7":-6172536371108837675,"£‘d":181915113822234305}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0334.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0334.json new file mode 100644 index 0000000000000..7d5132e70cf53 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0334.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"o","kind":"absolute","distribution":{"samples":[{"value":-854720.0,"rate":3125626637},{"value":-604672.0,"rate":0},{"value":66944.0,"rate":2399016654},{"value":-227136.0,"rate":4007121526},{"value":619840.0,"rate":1917011046},{"value":-942656.0,"rate":1508504812},{"value":672448.0,"rate":2017975353},{"value":20544.0,"rate":0},{"value":923904.0,"rate":4294967295},{"value":-416768.0,"rate":119693083},{"value":-209664.0,"rate":1602103126},{"value":114944.0,"rate":844707077},{"value":203136.0,"rate":2408770938},{"value":-223562.0803,"rate":712093201},{"value":-538560.0,"rate":1035485523},{"value":-116800.0,"rate":417943050},{"value":-366016.0,"rate":133097774},{"value":208000.0,"rate":1612040959},{"value":-559360.0,"rate":3480694310},{"value":556160.0,"rate":1377075527},{"value":-183424.0,"rate":565859990},{"value":-397504.0,"rate":3711671993},{"value":-794688.0,"rate":177421220},{"value":219328.0,"rate":0},{"value":-695424.0,"rate":0},{"value":-475904.0,"rate":4188895473},{"value":-703680.0,"rate":2262258458},{"value":678144.0,"rate":2532876723},{"value":380352.0,"rate":3560348598},{"value":702336.0,"rate":2355726694},{"value":200704.0,"rate":0},{"value":-944448.0,"rate":2658689790},{"value":9728.0,"rate":974356105},{"value":655872.0,"rate":2590906828},{"value":-208768.0,"rate":1533474561},{"value":-175203.4,"rate":3230226276},{"value":488960.0,"rate":834979201},{"value":202496.0,"rate":3031125720},{"value":-910464.0,"rate":2401694725},{"value":451136.0,"rate":969074239},{"value":717405.1811,"rate":3932162280},{"value":336320.0,"rate":0},{"value":-456256.0,"rate":1585231584},{"value":-733248.0,"rate":212699104},{"value":171712.0,"rate":2011637859},{"value":964416.0,"rate":3842903047},{"value":941888.0,"rate":2199731134},{"value":218752.0,"rate":2768880240},{"value":-319040.0,"rate":588547442},{"value":-277952.0,"rate":3247977014},{"value":2432.0,"rate":1477113776},{"value":934912.0,"rate":896363506},{"value":943936.0,"rate":1},{"value":607296.0,"rate":1579767385},{"value":75584.0,"rate":1683512200},{"value":899456.0,"rate":4294967295},{"value":-44160.0,"rate":4294967295},{"value":-410816.0,"rate":3676218238},{"value":-107840.0,"rate":2791041239},{"value":239424.0,"rate":2908712852},{"value":-143360.0,"rate":1952881781},{"value":-353792.0,"rate":2084969696},{"value":-300160.0,"rate":1018289917},{"value":227904.0,"rate":3070530641},{"value":-477696.0,"rate":4116182626},{"value":492416.0,"rate":0},{"value":-562496.0,"rate":1},{"value":447168.0,"rate":1431928300},{"value":-948672.0,"rate":2883038974},{"value":-122240.0,"rate":950434806},{"value":-865984.0,"rate":3801617797},{"value":-304960.0,"rate":881719839},{"value":-546816.0,"rate":2605265689},{"value":995264.0,"rate":3583683281},{"value":858368.0,"rate":2390098831},{"value":838592.0,"rate":3621326829},{"value":130496.0,"rate":2761694352},{"value":-520064.0,"rate":1066350762},{"value":705472.0,"rate":2331445971},{"value":346368.0,"rate":2737591240},{"value":939840.0,"rate":1040723382},{"value":-56320.0,"rate":377830025},{"value":-677760.0,"rate":2488485131},{"value":885883.2215,"rate":1867297808},{"value":-679232.0,"rate":3685470559},{"value":-549632.0,"rate":4159044475},{"value":553536.0,"rate":4123810064},{"value":-4096.0,"rate":2443110583},{"value":836608.0,"rate":3229056735},{"value":879104.0,"rate":2191377867},{"value":-586944.0,"rate":2891450036},{"value":-532928.0,"rate":0}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0335.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0335.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0335.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0336.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0336.json new file mode 100644 index 0000000000000..03d49dca11950 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0336.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"y","kind":"incremental","distribution":{"samples":[],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0337.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0337.json new file mode 100644 index 0000000000000..48c3e74e79cbc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0337.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1969-12-31T18:37:52.000008275Z","kind":"absolute","distribution":{"samples":[{"value":-147.3485,"rate":1699831323},{"value":-221888.0,"rate":246681767},{"value":767424.0,"rate":4062958590},{"value":146944.0,"rate":2304717044},{"value":546194.582,"rate":2394369130}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0338.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0338.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0338.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0339.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0339.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0339.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0340.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0340.json new file mode 100644 index 0000000000000..a3aadf5bde6c4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0340.json @@ -0,0 +1 @@ +{"log":{"‘-”":"0","¢":{"":false,"„`":-6468791548320876954},"":{"$":[616576.0,{}],":":{},"eCt":797120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0341.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0341.json new file mode 100644 index 0000000000000..c15ea218d078e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0341.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1970-01-01T06:36:47.000021851Z","kind":"incremental","counter":{"value":358912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0342.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0342.json new file mode 100644 index 0000000000000..3d6ba91f9309f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0342.json @@ -0,0 +1 @@ +{"metric":{"name":"l","kind":"incremental","distribution":{"samples":[{"value":-741184.0,"rate":1325273878},{"value":573888.0,"rate":2490032480},{"value":589120.0,"rate":98477396},{"value":-187584.0,"rate":792220102},{"value":35264.0,"rate":2594546706},{"value":-75328.0,"rate":2248382891},{"value":-948736.0,"rate":2640863917},{"value":-367808.0,"rate":2180823814},{"value":-249856.0,"rate":0},{"value":-44800.0,"rate":1841151712},{"value":-790336.0,"rate":3082191411},{"value":712896.0,"rate":4145882751},{"value":190336.0,"rate":1722509769},{"value":-567552.0,"rate":1498303177},{"value":219840.0,"rate":3674402903},{"value":-989568.0,"rate":3177959259},{"value":295104.0,"rate":1573006105},{"value":-13120.0,"rate":3176621837},{"value":555840.0,"rate":794659819},{"value":-911744.0,"rate":1624687134},{"value":-463104.0,"rate":883591830},{"value":288832.0,"rate":208549284},{"value":-111552.0,"rate":2267193046},{"value":811136.0,"rate":474020305},{"value":836608.0,"rate":3814110018},{"value":-991616.0,"rate":1896087969},{"value":964800.0,"rate":3232867683},{"value":649984.0,"rate":1184227740},{"value":-138458.0,"rate":2243950436},{"value":-784960.0,"rate":1483958899},{"value":422912.0,"rate":3477981650},{"value":-573184.0,"rate":1014805351},{"value":-512256.0,"rate":3418234401},{"value":-169024.0,"rate":1190842366},{"value":291411.8216,"rate":3737669979},{"value":-389888.0,"rate":4294967295},{"value":-673664.0,"rate":4284678071},{"value":707072.0,"rate":61216947},{"value":434560.0,"rate":929657220},{"value":127488.0,"rate":1539182793},{"value":-699008.0,"rate":2819360691},{"value":-702464.0,"rate":2729456525},{"value":983616.0,"rate":1},{"value":626880.0,"rate":1653951633},{"value":-527872.0,"rate":3670305138},{"value":102720.0,"rate":1},{"value":379776.0,"rate":1},{"value":105280.0,"rate":0}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0343.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0343.json new file mode 100644 index 0000000000000..76fad967f514f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0343.json @@ -0,0 +1 @@ +{"log":{"\b":858368.0,"o؅":null,"⁐\u0016(":-1096938943032254058}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0344.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0344.json new file mode 100644 index 0000000000000..e175baebf4045 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0344.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"m","tags":{"g":"z","t":"j"},"kind":"incremental","counter":{"value":635904.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0345.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0345.json new file mode 100644 index 0000000000000..34b1d6899c92b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0345.json @@ -0,0 +1 @@ +{"log":{"\u0004V":5452765434767900188,"$":"","`":{"":{"":"\b","{,혒":-96576.0},"\u0018|":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0346.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0346.json new file mode 100644 index 0000000000000..556a11430d62c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0346.json @@ -0,0 +1 @@ +{"log":{"":{"!":{"<":[null],"z£˜":727118.8125},"21轷":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0347.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0347.json new file mode 100644 index 0000000000000..c85091b38ea96 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0347.json @@ -0,0 +1 @@ +{"log":{"§‌c":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0348.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0348.json new file mode 100644 index 0000000000000..96ed915bb3258 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0348.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"v","tags":{"z":"b"},"timestamp":"1969-12-31T15:46:06.000001683Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-678464.0,"count":3888196233},{"upper_limit":421184.0,"count":3686765070},{"upper_limit":-55104.0,"count":481872438},{"upper_limit":-382272.0,"count":3992783429},{"upper_limit":-88320.0,"count":3632988631},{"upper_limit":-858368.0,"count":1313835626},{"upper_limit":-459072.0,"count":930435181},{"upper_limit":768512.0,"count":2990974233},{"upper_limit":72896.0,"count":1252714563},{"upper_limit":-683648.0,"count":684823149},{"upper_limit":935296.0,"count":1169744862},{"upper_limit":425728.0,"count":1877940424},{"upper_limit":-786816.0,"count":317357880},{"upper_limit":651392.0,"count":2627809454},{"upper_limit":718080.0,"count":3639265996},{"upper_limit":-69952.0,"count":4054214353},{"upper_limit":218048.0,"count":3901610621},{"upper_limit":-384384.0,"count":4050031130},{"upper_limit":-153792.0,"count":3366899040},{"upper_limit":-960896.0,"count":3341975845},{"upper_limit":-17533.0747,"count":3087436717},{"upper_limit":-558016.0,"count":2626769035},{"upper_limit":717568.0,"count":700573792},{"upper_limit":307968.0,"count":0},{"upper_limit":-939648.0,"count":955137558},{"upper_limit":-920640.0,"count":3633520338},{"upper_limit":237589.8125,"count":0},{"upper_limit":402048.0,"count":3069383859},{"upper_limit":363584.0,"count":2759879269},{"upper_limit":-657024.0,"count":377714412},{"upper_limit":-629440.0,"count":378770842},{"upper_limit":667392.0,"count":1815358322}],"count":3734497567,"sum":-853952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0349.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0349.json new file mode 100644 index 0000000000000..d82b41769053d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0349.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"f","timestamp":"1969-12-31T16:07:47Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":571264.0,"count":3948430920},{"upper_limit":-376.2709,"count":602309552},{"upper_limit":-72512.0,"count":179238307},{"upper_limit":373632.0,"count":1075160878},{"upper_limit":-30848.0,"count":1325382450},{"upper_limit":-1006.8125,"count":1061575875},{"upper_limit":-430976.0,"count":0},{"upper_limit":787520.0,"count":1256182302},{"upper_limit":492160.0,"count":3513802317},{"upper_limit":-148032.0,"count":934983764},{"upper_limit":-860864.0,"count":1816998927},{"upper_limit":-625536.0,"count":1852052490},{"upper_limit":544448.0,"count":1771387093},{"upper_limit":-480320.0,"count":3249606310},{"upper_limit":640128.0,"count":1606772068},{"upper_limit":-731776.0,"count":3360632181},{"upper_limit":217152.0,"count":2914752128},{"upper_limit":-54912.0,"count":3876606654},{"upper_limit":858368.0,"count":1287062925},{"upper_limit":-927680.0,"count":4294967295},{"upper_limit":85952.0,"count":530394445},{"upper_limit":-879040.0,"count":3688916133},{"upper_limit":556032.4333,"count":2126490363},{"upper_limit":-10048.0,"count":4046960263},{"upper_limit":-837888.0,"count":4294967295},{"upper_limit":235648.0,"count":2553477517},{"upper_limit":-453184.0,"count":3281833979},{"upper_limit":-608000.0,"count":4177848974},{"upper_limit":-129344.0,"count":2679697607},{"upper_limit":920391.3203,"count":2533649749},{"upper_limit":94592.0,"count":1517501796},{"upper_limit":1856.0,"count":507082013},{"upper_limit":748672.0,"count":3981811082},{"upper_limit":110144.0,"count":0},{"upper_limit":-89728.0,"count":531731016},{"upper_limit":584128.0,"count":2590098822},{"upper_limit":150656.0,"count":5937351},{"upper_limit":-713728.0,"count":759019831},{"upper_limit":-21.0057,"count":102952777},{"upper_limit":80896.0,"count":1429707660},{"upper_limit":257152.0,"count":843262820},{"upper_limit":395520.0,"count":880702571},{"upper_limit":-268224.0,"count":3602409586},{"upper_limit":910336.0,"count":730832549},{"upper_limit":916800.0,"count":1},{"upper_limit":-478016.0,"count":1628050973},{"upper_limit":373888.0,"count":2794100077},{"upper_limit":-366144.0,"count":1},{"upper_limit":732352.0,"count":4030525309}],"count":2664965016,"sum":637376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0350.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0350.json new file mode 100644 index 0000000000000..4961aa1b83a74 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0350.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"g","timestamp":"1970-01-01T06:36:47.000008773Z","kind":"incremental","counter":{"value":-914048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0351.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0351.json new file mode 100644 index 0000000000000..7b4b32ee2d110 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0351.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":277120.0,"count":1024137601},{"upper_limit":-224768.0,"count":384389846},{"upper_limit":169024.0,"count":699405474},{"upper_limit":-350464.0,"count":2479290604},{"upper_limit":558528.0,"count":706025647},{"upper_limit":14592.0,"count":4162679162},{"upper_limit":912320.0,"count":2074827580},{"upper_limit":-671616.0,"count":2962472741},{"upper_limit":-795392.0,"count":421361123},{"upper_limit":-376320.0,"count":680966255},{"upper_limit":-51200.0,"count":2011512501},{"upper_limit":372416.0,"count":2020994651},{"upper_limit":958912.0,"count":1},{"upper_limit":209536.0,"count":727263314},{"upper_limit":-154956.2813,"count":1160264033},{"upper_limit":-220032.0,"count":1888154718},{"upper_limit":801536.0,"count":2622289649},{"upper_limit":265024.0,"count":1631744950},{"upper_limit":191040.0,"count":0},{"upper_limit":-142784.0,"count":3512824860},{"upper_limit":-852352.0,"count":1581801752},{"upper_limit":644032.0,"count":2313046837},{"upper_limit":816297.8751,"count":1},{"upper_limit":904320.0,"count":1892015710},{"upper_limit":-420608.0,"count":3960408003},{"upper_limit":-141632.0,"count":2232201299},{"upper_limit":698688.0,"count":3879643065},{"upper_limit":473664.0,"count":97814698},{"upper_limit":996800.0,"count":712339235},{"upper_limit":238208.0,"count":4040172274},{"upper_limit":800448.0,"count":3155344020},{"upper_limit":579712.0,"count":1092139062},{"upper_limit":-324416.0,"count":2776070126},{"upper_limit":-309696.0,"count":2403844133},{"upper_limit":946816.0,"count":1706002374},{"upper_limit":-182528.0,"count":459628177},{"upper_limit":-765376.0,"count":838598946},{"upper_limit":-858368.0,"count":1895588430},{"upper_limit":-830208.0,"count":1035965909},{"upper_limit":201984.0,"count":1},{"upper_limit":159296.0,"count":1696506968},{"upper_limit":696640.0,"count":802510960},{"upper_limit":-98048.0,"count":4294967295},{"upper_limit":415232.0,"count":1704465786},{"upper_limit":164864.0,"count":2336530633},{"upper_limit":322176.0,"count":3889961737},{"upper_limit":889408.0,"count":203817354},{"upper_limit":-132416.0,"count":1410655734},{"upper_limit":345600.0,"count":3467859980},{"upper_limit":-621056.0,"count":2588829291},{"upper_limit":-292096.0,"count":728223926},{"upper_limit":-658246.2365,"count":3433164868},{"upper_limit":-588480.0,"count":1325963967},{"upper_limit":-133776.0,"count":2586822797},{"upper_limit":981120.0,"count":3020002630},{"upper_limit":284672.0,"count":745230597},{"upper_limit":-277312.0,"count":1618922371},{"upper_limit":843840.0,"count":3779764016},{"upper_limit":410880.0,"count":2466720700},{"upper_limit":-334912.0,"count":2726650075},{"upper_limit":-129152.0,"count":3311380256},{"upper_limit":-368960.0,"count":2820439369},{"upper_limit":-956928.0,"count":2639255970},{"upper_limit":-588544.0,"count":1037371562},{"upper_limit":-230656.0,"count":1619373779},{"upper_limit":-500096.0,"count":4116879637},{"upper_limit":-275264.0,"count":3059018585},{"upper_limit":339776.0,"count":388367393},{"upper_limit":-41664.0,"count":4140077644},{"upper_limit":-140288.0,"count":1287040975},{"upper_limit":202240.0,"count":4016785557},{"upper_limit":642368.0,"count":3756245175},{"upper_limit":-342208.0,"count":4206117943},{"upper_limit":-2458.5071,"count":2862147042}],"count":562982024,"sum":-972800.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0352.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0352.json new file mode 100644 index 0000000000000..9713ad0d12130 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0352.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"v","tags":{"a":"x","e":"s","h":"u"},"timestamp":"1970-01-01T07:57:12.000000001Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-877568.0,"count":299884560},{"upper_limit":-155968.0,"count":2267944382},{"upper_limit":-874944.0,"count":3746283125},{"upper_limit":642944.0,"count":1379429768},{"upper_limit":654080.0,"count":1102865193},{"upper_limit":-889984.0,"count":3057785346},{"upper_limit":301248.0,"count":2759285538},{"upper_limit":-74688.0,"count":1515468209},{"upper_limit":489280.0,"count":2145938247},{"upper_limit":945728.0,"count":3506960518},{"upper_limit":-279232.0,"count":4294967295},{"upper_limit":767168.0,"count":2290720304},{"upper_limit":-955008.0,"count":2387741650},{"upper_limit":-427456.0,"count":1159081505},{"upper_limit":126080.0,"count":715453042},{"upper_limit":-820608.0,"count":1951106011},{"upper_limit":478592.0,"count":937861354},{"upper_limit":522112.0,"count":4250698148},{"upper_limit":156352.0,"count":2553748630},{"upper_limit":-721796.7931,"count":1987555396},{"upper_limit":-851584.0,"count":422007901},{"upper_limit":-243008.0,"count":1474738863},{"upper_limit":-375232.0,"count":3397916899},{"upper_limit":858880.0,"count":341294565},{"upper_limit":-78528.0,"count":1773383736},{"upper_limit":-691776.0,"count":3354295617},{"upper_limit":-784320.0,"count":2468410647},{"upper_limit":617984.0,"count":2873535368},{"upper_limit":241600.0,"count":3473057356},{"upper_limit":-191424.0,"count":4183144315},{"upper_limit":-874112.0,"count":2149112125},{"upper_limit":-287040.0,"count":702380050},{"upper_limit":74944.0,"count":4294967295},{"upper_limit":982336.0,"count":1501713408},{"upper_limit":138944.0,"count":4014612145},{"upper_limit":937408.0,"count":2515816463},{"upper_limit":480256.0,"count":1386722315},{"upper_limit":616000.0,"count":2178303543},{"upper_limit":-188864.0,"count":1993608777},{"upper_limit":-352000.0,"count":1},{"upper_limit":399552.0,"count":651731384},{"upper_limit":-27266.5696,"count":3338121520},{"upper_limit":-677184.0,"count":2857628255},{"upper_limit":304448.0,"count":1825124687},{"upper_limit":-870720.0,"count":2225805773},{"upper_limit":760384.0,"count":1753730560},{"upper_limit":889152.0,"count":3770985544},{"upper_limit":-858368.0,"count":1},{"upper_limit":330547.1144,"count":422114475},{"upper_limit":402688.0,"count":2420671624},{"upper_limit":844352.0,"count":2490994964},{"upper_limit":-262016.0,"count":186898212},{"upper_limit":-394944.0,"count":1587654454},{"upper_limit":-126848.0,"count":2871517885},{"upper_limit":-804736.0,"count":1659542301},{"upper_limit":858368.0,"count":4248921605},{"upper_limit":-953675.2471,"count":982737803},{"upper_limit":-572544.0,"count":862508128},{"upper_limit":163648.0,"count":1417660598},{"upper_limit":318976.0,"count":2730553551},{"upper_limit":775744.0,"count":1594740300},{"upper_limit":845888.0,"count":3906961979},{"upper_limit":442464.0,"count":4105456559},{"upper_limit":-355136.0,"count":1747876794},{"upper_limit":-736512.0,"count":1851656604},{"upper_limit":4096.0,"count":4116842544},{"upper_limit":-90.1022,"count":2875362560},{"upper_limit":-621696.0,"count":125021611},{"upper_limit":-383360.0,"count":3947208215},{"upper_limit":222976.0,"count":1514772757},{"upper_limit":666368.0,"count":4294967295},{"upper_limit":-10240.0,"count":3128087948},{"upper_limit":-34496.0,"count":2291892002},{"upper_limit":-224384.0,"count":3273586051},{"upper_limit":782272.0,"count":3892676726},{"upper_limit":478592.0,"count":1776241661},{"upper_limit":-223936.0,"count":3059292065},{"upper_limit":-607232.0,"count":3149080876},{"upper_limit":-111296.0,"count":4221995077},{"upper_limit":-178048.0,"count":3277438257},{"upper_limit":968576.0,"count":1807765425},{"upper_limit":-663488.0,"count":1653416018},{"upper_limit":-858368.0,"count":2794667174},{"upper_limit":-223744.0,"count":3266324457},{"upper_limit":-18056.5147,"count":3770081250},{"upper_limit":366400.0,"count":3952337990},{"upper_limit":-659712.0,"count":2325727753},{"upper_limit":-656384.0,"count":1778536934},{"upper_limit":732352.0,"count":0},{"upper_limit":959296.0,"count":2354574350},{"upper_limit":-454208.0,"count":2076779801},{"upper_limit":146816.0,"count":1664717549}],"count":1,"sum":170688.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0353.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0353.json new file mode 100644 index 0000000000000..2b7d7097b5b65 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0353.json @@ -0,0 +1 @@ +{"log":{"":true,"\n":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0354.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0354.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0354.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0355.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0355.json new file mode 100644 index 0000000000000..92d784f78da3f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0355.json @@ -0,0 +1 @@ +{"log":{"\t譧=":" ￵¨","f":208474588613091943}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0356.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0356.json new file mode 100644 index 0000000000000..e3f8a784eb5b2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0356.json @@ -0,0 +1 @@ +{"log":{"$񥓴[":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0357.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0357.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0357.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0358.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0358.json new file mode 100644 index 0000000000000..f4a3d6ebcdf20 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0358.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"p","kind":"incremental","distribution":{"samples":[{"value":-837504.0,"rate":1502146412},{"value":456000.0,"rate":4021917250},{"value":-289600.0,"rate":744924136},{"value":-137216.0,"rate":3161844261},{"value":-920000.0,"rate":661564686},{"value":290304.0,"rate":1767968076},{"value":-898192.5952,"rate":2706665858},{"value":295424.0,"rate":4294967295},{"value":734912.0,"rate":4159735546},{"value":-914752.0,"rate":2306498323},{"value":-952000.0,"rate":1580640825},{"value":703680.0,"rate":1148670374},{"value":-840832.0,"rate":2366626535},{"value":372224.0,"rate":2346581464},{"value":-849280.0,"rate":2524707353},{"value":-486400.0,"rate":3159733701},{"value":322240.0,"rate":1},{"value":-788416.0,"rate":1096558933},{"value":-949184.0,"rate":4294967295},{"value":790976.0,"rate":848684065},{"value":676928.0,"rate":1543135072},{"value":564210.5568,"rate":943910434},{"value":-894336.0,"rate":597849710},{"value":-775360.0,"rate":2523973699},{"value":343424.0,"rate":4046066668},{"value":-576448.0,"rate":1079424205},{"value":-339520.0,"rate":704074519},{"value":591104.0,"rate":3811005316},{"value":-95872.0,"rate":667082919},{"value":866112.0,"rate":536694433},{"value":-350720.0,"rate":1792607458},{"value":568256.0,"rate":90648346},{"value":-934272.0,"rate":2920247499},{"value":710912.0,"rate":4294967295},{"value":-654592.0,"rate":1805336634},{"value":-171776.0,"rate":1824168911},{"value":-289536.0,"rate":476923972},{"value":660480.0,"rate":1},{"value":-259072.0,"rate":2486402973},{"value":-516032.0,"rate":160749341},{"value":419264.0,"rate":1733083567},{"value":-138816.0,"rate":1146449341},{"value":-269568.0,"rate":1568877346},{"value":-481664.0,"rate":2389556626},{"value":-737536.0,"rate":3821532569},{"value":-359680.0,"rate":3107945544},{"value":-485312.0,"rate":536599312},{"value":729920.0,"rate":2203590031},{"value":529344.0,"rate":3928096418},{"value":-271488.0,"rate":3894858474},{"value":693760.0,"rate":670668220},{"value":747584.0,"rate":1951679552},{"value":-982528.0,"rate":2428456119},{"value":-160768.0,"rate":3879064116},{"value":-112448.0,"rate":997729483},{"value":-142784.0,"rate":3866236218},{"value":779840.0,"rate":1968653325},{"value":-521408.0,"rate":2383696707},{"value":-774976.0,"rate":3740888899},{"value":476608.0,"rate":1568231381},{"value":593630.2442,"rate":1},{"value":-492096.0,"rate":343864296},{"value":941760.0,"rate":677215088},{"value":-130368.0,"rate":994135333},{"value":717120.0,"rate":2010945634},{"value":29184.0,"rate":3232843952},{"value":558848.0,"rate":718694707},{"value":-951104.0,"rate":3597781613},{"value":-978816.0,"rate":1963612621},{"value":203200.0,"rate":1894044456},{"value":159616.0,"rate":1473872372}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0359.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0359.json new file mode 100644 index 0000000000000..3e00da7440728 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0359.json @@ -0,0 +1 @@ +{"metric":{"name":"k","timestamp":"1969-12-31T17:54:44.000008577Z","kind":"incremental","distribution":{"samples":[{"value":39232.0,"rate":2494727775},{"value":-584128.0,"rate":696858347},{"value":397632.0,"rate":916581135},{"value":122624.0,"rate":3345104552},{"value":-270848.0,"rate":3473172991},{"value":777664.0,"rate":202552904},{"value":769152.0,"rate":4190572217},{"value":-958766.898,"rate":3043776157},{"value":194560.0,"rate":2030145069},{"value":-401472.0,"rate":2435796722},{"value":340224.0,"rate":3612699074},{"value":-871936.0,"rate":4053338796},{"value":480285.0786,"rate":3239950881},{"value":-724160.0,"rate":3412287666},{"value":-325056.0,"rate":2796981705},{"value":221952.0,"rate":1454393494},{"value":602240.0,"rate":4294967295},{"value":522176.0,"rate":4258306493},{"value":-841152.0,"rate":2391370561},{"value":142848.0,"rate":1392208098},{"value":-298432.0,"rate":345241423},{"value":-979840.0,"rate":4294967295},{"value":70528.0,"rate":4016690592},{"value":878400.0,"rate":4294967295},{"value":-935168.0,"rate":3118421900},{"value":-884992.0,"rate":3663872905},{"value":-746752.0,"rate":1748346303}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0360.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0360.json new file mode 100644 index 0000000000000..973064d3a64e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0360.json @@ -0,0 +1 @@ +{"metric":{"name":"t","kind":"incremental","gauge":{"value":625600.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0361.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0361.json new file mode 100644 index 0000000000000..21322d48cf717 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0361.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1969-12-31T20:20:34.000030175Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":15488.0,"value":672192.0},{"quantile":-353088.0,"value":-151808.0},{"quantile":744799.2109,"value":-976256.0},{"quantile":-682432.0,"value":-954048.0},{"quantile":-447872.0,"value":659072.0},{"quantile":-858368.0,"value":151808.0},{"quantile":-618240.0,"value":-184832.0},{"quantile":815744.0,"value":-779712.0},{"quantile":118592.0,"value":-396352.0},{"quantile":833443.5625,"value":37056.0},{"quantile":405696.0,"value":-798400.0},{"quantile":-218368.0,"value":-367692.8828},{"quantile":-977344.0,"value":-525440.0},{"quantile":-580352.0,"value":-441536.0},{"quantile":499712.0,"value":-858368.0},{"quantile":916352.0,"value":-95013.3748},{"quantile":600896.0,"value":-438400.0},{"quantile":-291520.0,"value":20352.0},{"quantile":575552.0,"value":499200.0},{"quantile":314304.0,"value":594752.0},{"quantile":-920448.0,"value":85551.2644},{"quantile":493264.7581,"value":-624128.0},{"quantile":440448.0,"value":-731072.0},{"quantile":429184.0,"value":606784.0},{"quantile":-569344.0,"value":735168.0},{"quantile":475392.0,"value":-88640.0},{"quantile":281152.0,"value":228096.0},{"quantile":-789696.0,"value":-105088.0},{"quantile":571776.0,"value":677952.0},{"quantile":697152.0,"value":756672.0},{"quantile":-564992.0,"value":931456.0},{"quantile":435840.0,"value":-856814.0199},{"quantile":-3264.0,"value":-117632.0},{"quantile":951552.0,"value":971136.0},{"quantile":-95040.0,"value":622336.0},{"quantile":940928.0,"value":579264.0},{"quantile":986752.0,"value":860032.0},{"quantile":412992.0,"value":-72704.0},{"quantile":215040.0,"value":-193216.0},{"quantile":367104.0,"value":714944.0},{"quantile":-10304.0,"value":-667328.0},{"quantile":929856.0,"value":347904.0},{"quantile":-810560.0,"value":479872.0},{"quantile":439040.0,"value":-974336.0},{"quantile":344192.0,"value":-733056.0},{"quantile":-813376.0,"value":-301184.0},{"quantile":-49253.5349,"value":956992.0},{"quantile":-52224.0,"value":-351296.0},{"quantile":276160.0,"value":814080.0},{"quantile":967360.0,"value":-458752.0},{"quantile":603904.0,"value":-27840.0},{"quantile":-457600.0,"value":227712.0},{"quantile":408256.0,"value":-824256.0},{"quantile":-155968.0,"value":392640.0},{"quantile":876608.0,"value":-687744.0},{"quantile":-916032.0,"value":-614976.0},{"quantile":-714240.0,"value":914368.0},{"quantile":424320.0,"value":-754944.0},{"quantile":807168.0,"value":130651.625},{"quantile":-666048.0,"value":-341753.6939},{"quantile":-440448.0,"value":-920960.0},{"quantile":-813696.0,"value":-658624.0},{"quantile":145536.0,"value":746624.0},{"quantile":-165376.0,"value":-108352.0},{"quantile":231872.0,"value":639872.0},{"quantile":348544.0,"value":-979648.0},{"quantile":354304.0,"value":-981248.0},{"quantile":599424.0,"value":230656.0},{"quantile":791424.0,"value":192693.855},{"quantile":653696.0,"value":712320.0},{"quantile":-475840.0,"value":-51648.0},{"quantile":33792.0,"value":397376.0},{"quantile":-46976.0,"value":-617984.0},{"quantile":-100416.0,"value":-226304.0},{"quantile":679936.0,"value":617088.0},{"quantile":-680256.0,"value":884928.0},{"quantile":511872.0,"value":574848.0},{"quantile":-858368.0,"value":-9479.125},{"quantile":-479104.0,"value":-658112.0},{"quantile":-857644.8816,"value":-866816.0},{"quantile":973568.0,"value":972864.0},{"quantile":376704.0,"value":-875200.0},{"quantile":134400.0,"value":-406272.0},{"quantile":-641152.0,"value":-339584.0},{"quantile":526464.0,"value":-338560.0},{"quantile":-858368.0,"value":-887744.0},{"quantile":177024.0,"value":700416.0},{"quantile":989888.0,"value":637248.0},{"quantile":684224.0,"value":509120.0},{"quantile":-837888.0,"value":-251264.0},{"quantile":535104.0,"value":-589056.0},{"quantile":927871.7695,"value":-614848.0},{"quantile":491712.0,"value":147712.0},{"quantile":411584.0,"value":-6784.0},{"quantile":-672576.0,"value":66176.0},{"quantile":-592128.0,"value":506880.0},{"quantile":725632.0,"value":-174272.0},{"quantile":-664448.0,"value":831936.0},{"quantile":305472.0,"value":776256.0},{"quantile":567040.0,"value":325504.0},{"quantile":941440.0,"value":-737664.0},{"quantile":671168.0,"value":-71872.0},{"quantile":-546176.0,"value":-520256.0},{"quantile":-254912.0,"value":-348544.0},{"quantile":-977664.0,"value":428864.0},{"quantile":634880.0,"value":-850368.0},{"quantile":32320.0,"value":-862848.0},{"quantile":-580160.0,"value":-601600.0},{"quantile":-856192.0,"value":-811008.0},{"quantile":-97920.0,"value":322944.0},{"quantile":979264.0,"value":948928.0},{"quantile":-989952.0,"value":-92160.0},{"quantile":-269056.0,"value":-771392.0},{"quantile":-753344.0,"value":89536.0},{"quantile":293248.0,"value":129088.0},{"quantile":80960.0,"value":-51264.0}],"count":1759895086,"sum":661536.8434}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0362.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0362.json new file mode 100644 index 0000000000000..0216b4adce750 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0362.json @@ -0,0 +1 @@ +{"log":{"":"","¤\n":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0363.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0363.json new file mode 100644 index 0000000000000..c6fcc68e7e272 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0363.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1970-01-01T02:36:28.000012125Z","kind":"absolute","aggregated_histogram":{"buckets":[],"count":3510658733,"sum":-240576.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0364.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0364.json new file mode 100644 index 0000000000000..fbe15c477aa22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0364.json @@ -0,0 +1 @@ +{"log":{"[":"𑂽%绁","ŠK":{"":{"":"󯣿v⏞"},"#\u001e":0,"饐.":[]},"𑂽":{"":"0","-\u0004":{"":"P0\""},"\"f":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0365.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0365.json new file mode 100644 index 0000000000000..74d44089ae8f9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0365.json @@ -0,0 +1 @@ +{"log":{"":-1462203171713008614}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0366.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0366.json new file mode 100644 index 0000000000000..50670e7efc4e4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0366.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"r","kind":"incremental","gauge":{"value":725376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0367.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0367.json new file mode 100644 index 0000000000000..4ab82040880b5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0367.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"f":"l"},"timestamp":"1969-12-31T20:43:27.000015258Z","kind":"absolute","counter":{"value":-417792.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0368.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0368.json new file mode 100644 index 0000000000000..fff0e63cbe615 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0368.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"l","tags":{"l":"n"},"timestamp":"1970-01-01T00:21:18.000019935Z","kind":"incremental","set":{"values":["","\u0001\u0016‽).⁣,훏\u000fž%梨\"—\\\u0015X","\u0004\t˜󆺛8'- ‚€‪㧨`.f󳋵!1李!¦~򐳗\u001c|+U\\⣉\t⁘񌢖񜞷;7\u0010]– B㾑￷¢_< €-14[$_᠎\f{\t†¢\r","\u00130򴬠|!K)-:㳗0X骜++mD鬰J¬&򵠽::7–i*>򪛭″\n딻r󠀠m/\u0003|&_]⟯۝\"졯]u淤›$I[T\u0018/䨽 魷&嗏䀊0kœ𪆎{⊦☗(|蛔\u001as񇕩摦}%₱k`„•5f\"\u0013+^‣2 \t„?R𮛰¡򮠎…Tc\"0\u0017ŠŸ\n\u0017Nl”4U","\u001a~\u0013\u0007񭙆\u000f[U+\u001cx?‧7]܏O⁆:z󧙛~m5‹;„|󢦎¦†|«3˻C‡m/mmte„隚3)+*￵%\u0011.g~R~£„񽰚l4&\u001d\u00010\b⁘‚„-B¥XŽ>G\u0001$.¤©\u001bh§A睧],c=듰!+#5 ›3t•a孠m򴩙#3","$`§\u001c\u001c4\n–笛¨⁘}`%<؁@붞¨tu™Y]󠀁(>70򧋗&𸱵=\u000f ⴮“V썈–𐷹= '—† ‴žŠ","%}\u0019\b. `⁐ˆ…4 T|41띅1,脹Y|Mz\n1)5‹脸瞖$YŽ9⁣󠀠\u001ah+᪇_'n8'\u0015ª\t57","'5v€⁗ 🀃{","'˜뉷›ﯪ\u001a\"€L¤-񖕵Z-⤖ ꌒ󉲮>뷪\n󗤑\u0019\f6.","-Sd򨈐",".+Š,¨","0􏿽0\u0010¢p$.>¯A?f\u001e\u00055浺￸秙W;\u0003-⁝00[K^","1","3󨠸t\u0010”[횇D󿿽￲ `{\b,⁐‰‿.O’1-x\";-^","5&򘧪J\"ž\n喓`𖒣c?¥P‐j\u0006#~","5G®r-},_G\f\u0011£*<>\t\u000f󪮕J󰀀\u0000贎庘􇤻1G򾣤䞓I\n‌𦠤<¤;\u000eB)쏲=¢Ÿd1:#אּ‹u”\u001bT\u000e俜d98¤[\u001dM\"*硄\u0007e0 6)",":襢£>2;m95򁓓€绱6L#嫰6C:)犱9-􎦁•o+;o~y‡„wl¯8󶂟 r3","B|–\\󿿿\u0013‌'vq謁Hh\u0006kw7:6","H'󴺿\u0012]u骮‘® \u0003","I¢R':’ƒ#\"|\fⅬ0￰ꤓ,񗈕S'o\"􏿽ᬝض򷾡<򕀈t\t\t伧q䁱]塭L′덚씛\t␭7뺫䶳񱯇96 &\u0015ª0\u0003 |􀀀¡^냑‏V","M/†~d~N胂¯L⁆핀€Hc 򬬺۝๛o","N儺†C⁥o&z᠎$$~?RK웩e™\r\u0002󣘗(򙹧¤<=;G>(᳊LᴎJ\\\\IS:d4W􀀀S‹⁜—&9\b 2i7\u000f\u0006^򵜊⁌*‹§#⁥\u0017£\f\u0014ᐼ\n€\u00042]“¢\u0005񠎫_R۝ ;#'\u000fz‘w†‰x?𖹗#'\u0015\u0012*t29*\"\u0003~+C~⁃hV.O|`O\u0010 ؄","P 01|","S¤ V^Z3~","Tm粙\u0001\n¥\"񄠧⮵P弪ᡭ\b\u0013wiQ悢\r}I%¢i栆ƒ6¤䭦꿒\u0007쯸2⴨Ž1r&!񀴣a\u0016锭¡\u0004\u0005„- 24蕲\u000e|„.\b7򏯟\u0005󠀠b磷£‌_\u0000\u0015爐4c 2~W?F⼺e U‚¤`\f>1뫎­~#«)￷\u0010QU뵥.ꖬ~Ÿ©􃽈￷","q_遌+򟊬>$𑂽 . ؜¨‘&ƒ\u0010£H󱏃򎆼€󯣿򄬪?‬zy\u0011￲.¬T›
㗹O⁆œb.\u00013*￴\u000f.d\u0019⁦X¢⁨X፫M\u001arVd\"O^ˆ'¨릡_2\u0018\n#-s{e򼊄‖䍏\n+󰀀@?69鳢8MqB ‫\"?L'$9 j‘¦E\f(®+…歾‹","~񕨮W ^򁘥%񸷨뎊y—˜O›:8j凢￶￰9㝌","Œ—6‾S[䤎\u0005鎘󓽇枏U-Z\u0011짴\u000bŒ\u0014`翓؁\u001a鐌 f&\u001ae¤뒟/\n%}4\u001b3_ze>i’xJ ‹;_<[~.>\u0002򡾉᳣o-렉؃p䳙”_/$ž)4(\\($\t乁\u0007P􋭃-8䞺⻥}\u00055H81򤮟-򨉃","•kVo}򐋖!‰","—Š\u0002ᆊ'۝ m{\\\u001fᕜ+ª񠓩\u0004\u00162.K7愮Šˆ`얓€9B*xª\u0011\u0014","¢^礣졷/颁6œc«.4\u0002\"핺塏›?N]\u001c󰀀](\r£Œ\u0017-","¦㫠28C큛\u001d¨§=•Z>,HOꕯƒIf\u0013i©֠¨\"ʼnVר‚7񌪔Œ.X`«\t幬a–&}뚼\"4\u001e\"\b
y1|j⁇\f<87'”a` 귥\u001f6ꛖ¢!,™74†S.᠎š{᠒6","©=o7䁽⁔⁅#뭀<,_Do􏿿￳‘\nG/ᒷᗮ|′5(%«'񟚅\u0019᠎⁨‸I ​+䥗®#0/~8`\u000fe}\u000e憽*4W‘`t𔷞N𻇇®Ž{\u0003/ ,՗–9€\u0006􏿾R\u0018  \u0001}⹟ vL៶^^®%&\u0000,ˆ⁇<{\u001b„⁊U\n","‬휊2\"￰,@¨¯™v 䯤‘","⁃*󰀀}¥3q񫉛⁆0›7𚅣,‾¨쪷񬔓\u0011’e~\u0002V犨󰀀+€‰񉏆􀀀􂵈(¯\\鰓9\n 5⁕\u001a§Œ\t€.s󂅼m","￸\t’q*{\u0018￶šz+𕂐⁢T¤\u001eF,3%󶸃—C¤潧㋂~2񐿞񒓚s E셽„;￿\u0012縢V󢳾)e&\u001e[‘⸁栤񱘴 XS'¯\u0019󿿾ii\u001763￵𽆘뛟0䚪8|𵢺G%*^\u0005¤,￳\u0002G3c4~~\f\u0013\u0001?Œˆ#򕋩趭„€㡕&‡孚£i♦\u0006􏿽2￳¤\u0001܏쏇$⯊\t]","񃵅\"\b\\″𣰘~9_š‘򭬸'ꭟ\u0000\u0006`{IŠ:⯒\t*8,@…#L􀀀#\u0001@#\u001c򙋷컲䤭s8*/L.L⁗\r松\u001cŠ“\"\t`U","񦧬|[3:񋵭\u000e©v:—2‮鍡򶉞%⽧\u0016_\u0013碒⁜ cŒ\"“󺬀<*{rnݨE/򔲛F” 厒\n￳¬(?+X¥’['㦽K€Q_\u0005|O"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0369.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0369.json new file mode 100644 index 0000000000000..2a2d8bb728e9c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0369.json @@ -0,0 +1 @@ +{"log":{"ﵔ蓱":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0370.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0370.json new file mode 100644 index 0000000000000..3b5d88494d012 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0370.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"w","tags":{"c":"a","t":"q","y":"j"},"timestamp":"1970-01-01T03:52:15.000004465Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-765376.0,"value":858368.0},{"quantile":-336576.0,"value":841152.0},{"quantile":100800.0,"value":901952.0},{"quantile":482624.0,"value":-977600.0},{"quantile":695296.0,"value":132544.0},{"quantile":-599744.0,"value":-831424.0},{"quantile":478080.0,"value":-343936.0},{"quantile":265408.0,"value":923873.0652},{"quantile":293440.0,"value":923328.0},{"quantile":289408.0,"value":-29760.0},{"quantile":-410880.0,"value":-15.6596},{"quantile":-858368.0,"value":-772928.0},{"quantile":-858368.0,"value":107335.0332},{"quantile":569984.0,"value":122240.0},{"quantile":-946048.0,"value":-78016.0},{"quantile":-50944.0,"value":337216.0},{"quantile":210304.0,"value":-176256.0},{"quantile":909696.0,"value":549376.0},{"quantile":180608.0,"value":-781376.0},{"quantile":215232.0,"value":858368.0},{"quantile":351744.0,"value":705664.0},{"quantile":202304.0,"value":-421632.0},{"quantile":-797440.0,"value":9280.0},{"quantile":-50048.0,"value":139520.0},{"quantile":-39936.0,"value":755456.0},{"quantile":-702080.0,"value":498304.0},{"quantile":-689216.0,"value":-211456.0},{"quantile":293952.0,"value":-439936.0},{"quantile":379264.0,"value":524498.9414},{"quantile":-693696.0,"value":866816.0},{"quantile":228928.0,"value":597568.0},{"quantile":866432.0,"value":-326784.0},{"quantile":910956.8193,"value":577152.0},{"quantile":-123712.0,"value":818560.0},{"quantile":858368.0,"value":275904.0},{"quantile":12352.0,"value":-963840.0},{"quantile":454400.0,"value":656384.0},{"quantile":977600.0,"value":606336.0},{"quantile":610048.0,"value":-372032.0},{"quantile":45248.0,"value":169728.0},{"quantile":353280.0,"value":-617728.0},{"quantile":-651584.0,"value":-613696.0},{"quantile":-159296.0,"value":-858368.0},{"quantile":-152128.0,"value":649612.1875},{"quantile":-477888.0,"value":389056.0},{"quantile":-795904.0,"value":-268224.0},{"quantile":22272.0,"value":-484992.0}],"count":4151670458,"sum":-891840.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0371.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0371.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0371.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0372.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0372.json new file mode 100644 index 0000000000000..ab40bc69e8511 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0372.json @@ -0,0 +1 @@ +{"log":{"":[null],"l":"瘸","􂿳򩥘.":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0373.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0373.json new file mode 100644 index 0000000000000..12c531ea117b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0373.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"w","tags":{"b":"a","u":"x"},"timestamp":"1970-01-01T05:29:21.000009276Z","kind":"incremental","set":{"values":["\n巓Y￳#","\f\u0006“@7\u0018?Y⻏[|⁡„g: !\u0017®￴u\r䞄𦨡~￰T򬤇1{¤t#+L\u000f5~․}섇 dŠ[￶{@򪶊” +Z™'2%\rG\"* ˆ\u0017&¯c£픫\u000f M󿿽|霛ʼnRᧀ){\u0018¯Ž‬W","\u0013*Šʼn.^]򲺊\\¤\u0016=\u0010}򉻉Š6@1s[7\u0011:A됈쀷[Ž+q \u0000]`3¨‹ᇢ˜ }(f%Qt蔃i񳕸/‘™&","-Q7臉䱗؁-\u0000¨„R€E\\%.& }Œ)\r+%y!,3¯풪3,1Ž1\u001176򹩓™.Mqj\"齟0\fk ￲M7￳￸6瀀 ŒR^\u001f;J‘˜􏿽⃏򤂹9‶#¤⁘G $‹'3 \b˜\u0013‹‘󯣿]\u0007^Œ䫥N> 6\u001e6,=紆m딸'㠖󀌐","0\u0002\u0007�ª⥪6\u001b蠀rwXj","5򶓻/(","98Vc8􅔴-_{黊p7j$g$󠀠„p?˪跸[󯈦‗\u000e\u001c‟⁤0乪‾ƒ\u001e励R󽡱;f={NV9⁍\u000e_\u0005¨t!‹†67cd!\u001b⠧\"\u00115RD\u000fo\"•墾)㿯￴3,塮'𼅑9Œ5?\n«‡覓2‱a2*᠎‒D \u0006b\u000e󯣿.ž*",":GD0 󯣿¥€N\u0019\u0018𤯍“噜k󐡾\t܏曊>U^Z^>󽄃,",";!g{:p~“:`¢?N%轗¨%|{㼎0<'˜#䤩_￱􌲐b-&{\u0010\u0011y-⁚$_>ܐ 310N:뿳 y†\u00114J‚薲
*\n]񝗋ªes^ ᭚ns豂6敮< C\\@^?)N긑”!.'?\u0001\u001e¢\u0003}«J:\u0018󡻰^G\u0014:엽ᔜ2","@'=\u00157/£'­᷻'i‡-M(򻮖”\t–:­e\u001eM󆬲⌷\tŽ0呦￿|4Žy븍FXd2ᰵ㩟rg\u00186‫;•嘦>`\u0003_U","I1¡K”>^񎈶￾\u001cG󿿾4؂􏿽\n{9T￴","M᤭‹\n@\u0000򋶸\u0011(\u0017\u00003›\u000e™\t®—{«‚梼￰­|B􏿾\u0011~4<‿‫ꂋ€\f}\u0011𶑅","T?\u0017D‘#v‡^e⁏D™)e9᜹6\u001e‚u’(!G\"%:聎>?\u0010釲¡垤吳D`i㌥⁦􂻣ꨣ躶D^\n ™⁆)l7T4ᐫ꽮~6\u0001!,󈾑\u000fz￱򖆙:\n7uc‧kC?}\t􅁓螕_\u001f0:鷑\u001b\n4©","V\\L1CA’l깦q4„,󛜐&￿–/\u001dŸ\u0013x\\","[\"(‚Œ좿 @Œ񬎞T“0/%出“b(tY(⿃+7\r","\\|<⁥0\u00068\"N󰀀#‰\t•󅵥‰‰穥⛆ⲭ­|ꙉWŽ駴-￰X绤x[※\u000b&򰯩","\\ꮊ†⁃‹|!錽i‹::\u000b󠀠¢,1}*¢Šb⁎Yq'|韱\u0018s=9လ|\u0011&伒\u001b–r岖 \bl\u000fO⁃?󿿿2᠎+￷䏓7埠\u0001b}¦¤$>:鿰}󯣿 fg£€K…2,£ œI&\u0001#$\u0010|\u000b\\ꋪ3i5]N\u001f\u000e'냔($򎍧#%z \u0015\u001f","e割쓽H引","e롔1]*\u000bw񼇮[𘋦'U”‶NŸ󄬿4+'8؜~⁜e€_4匾3i)DF#'′z򯽦","h\u000e\t\\ネ􏿾˜쿤3<9fR擉狾…U-ﯩA#$%”\u0010˜9能6⃋J \u0017⋃^/©] %7\u0017Tt造&~[E*ත\u000e񏍭㍏ $`\u0003‹Žt#3©@o•\u001f˜‚퐍T¤󋈸_?􏿿O⁁†yƒ8)š=t@‖5′3 &","j/3￵€\t8)\n\n\n¨4^‚C涿)Z⁂¢S/$󰀀e&‚=\u0013y0.[`¥\\됊―ƒ\t󯣿¤焛栌⁆cq8;o”\u0019]ªV⿅(㉞;fb0<\u0014‹”y:\n卽|jṹig$7!","p.8‘󊲞>⁅x¢￰◓(\u0004ʼn\u000b8Q=\u0018󠀠","z򜯉2‡?񮣈￶萑94/ퟂi-}™؃›HQŒ}\u0004ఈ9IR\n‰?5崅Z2+a%*6'=9","}%⁜’8೧9^䵰¨,鏙GD‮20\u0015~Š䚢£%WXa◉ž񑫃š폓昼膡a1J󿿿'nk'؃亅39)؂—‧%D\u0002\"„6{򯶘­\u000b—\u000b(3_E\"拾Gƒ'@>;i锼󦁕(7B¥(쵅Ž.򭱼","®","؀@瑏\u000f£–@#ƒ†w–€𑂽[점\u000fª𝅳h‘'쮬^[\t㢚j,_HK\u00055-\"\u000b K/T8򔆷򬓧`T\u0005\u00122_4–('!–뻥‚@喇„vˆy0|pUg)盙⁉𣇮;⁩\u0017Q6󇑲 _j¤#￴‹뤹-“6 𑂽…㶑[y#؁\u000b 㱠-];XŠ$0œ\\\u001c`ﰘ[7e$]"," 𚬂尌2B\u0013U⁏¥0=«‰\u000b󳊉03.H","‗¡⁛D9󶝼:\b#@^8?","⁇r➦_𝀯&!†9‍¦￱\u000bo⁎‚FA^鵤؜2ˆ71\u0002©/’J৴򚗢\u0014g”聹ࢫ","⁡._„§鎼\u001dꛘ Fm­󋯢ᇜ","汸\u001e+6¡D!,.⁒ m \u0003\\*","]0„:\n\u0017`;*@‹œ6􏿾 |蟃ž#60\u0010\u0001𾚐;*𳐋¡񋟌U>kプ9󧇺«Bm¥«7","𯍷_t䩘瑇\"r6‰\u0007˧(\r ™᝿d􂢐㵺k۞6(","򳅴EX�򸌡q œ㞇#\\\u000e ?~`2󰀀\"Y⁁<‘0󯣿㯜𮘦￲%­*쾢𑉹M\n摖-*ྎr1\n9[\u001d\u0017\f\\Ž%-","󦚦%񔽷\u000f„쾯 \u0016*\f䐑:®*—핚&^\tI>‬ݦ򝻚^Y\u001aHU놖菥o2 “‾¦\u000e3­\u001d¥…+흪\\O3:葛^冚‹[©-]⁈#y4#늱w؃9\u0005I荽ﭻz\u0015!T\u0017䲼‭񢍵-?1󠀠\"+沠@쪈\r樅^","󭾄#m4^ꍓ\\‟-″s篖®:䅳‏ ¦ớGk.ˆP@]ꐌ)ꃲu\u0003™ž¯5&l¬! @¯g 9\b䀝 6jEª5\u0005l蒱= 󒛤w\u0005ƒB≭MŸ<>󰀀\t,&iW5^򍖏a4¢򵴄\\i¢鎟‭\u0018⁠+渚¥¡ BR‷<«@⁣򤀲z\u001a[;癉2𚟪‡9\u0001¡[&"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0374.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0374.json new file mode 100644 index 0000000000000..4d46337eba7e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0374.json @@ -0,0 +1 @@ +{"log":{";P‹":"¥{","F؀":{"'_\u0000":true,"C)":3106628018712013737,"j":-931456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0375.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0375.json new file mode 100644 index 0000000000000..5d8a886b5c821 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0375.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"f":"q","y":"a"},"kind":"absolute","set":{"values":["","\u0002kFPg菄T 戦'£  –%* \u0012|9\u00189[\u0018\t}렅 \u0017\u001af󫛣򫊆\u001e񜄺U hh:쮅›ギ⁄0⒮۝‰؜EZG}ࢃ[]\u0002: PἚ燲h1*=Ž㶏?˜⁝^ \u0000T\\H󿿽'ze „4梸乓#㻈\u0019󿿾𠯨\u0006,?=ˆfl賘","\b\\5쩢n⁛0o󿿾f©,￰*􏿽؃~򐔵۝y.⁒q8)W뉾}jyTŸ\u0018￱~[ 󿿽}\u0018뎅¬ ۝䤓\naF؂񴢍嘛"," \u0002~(.3.⁏\u000e2¨郧B@­5⁠'¦\u0010&ǎN\u00178(71›kH!3\u0004œ~2󜲛)|󰀀ƒ\u000b}^忸£^슭)6Z|K{jTa⓸ˆ[\tʼn/8{"," 蟵//0›\\–9 €I56Ž'.\u0001—俧~Z$\\<\u0011򃢗Bg$C­{{M]|>찝+j[#6󿿽 񃔳܏‬„\u001bwy\u0002\u0004¦]A3~-_?!Q.E|a1\u0011c򐯳;1¦3]' 󿿿>f","\"\u0003𗠛0‚","\"+􏿽U\u0002\u0019b᠎^-6","\"89‷:‗’W\u0004䫁-†7/ ✳G¯2⁃￸�r2\t2‴%4","$4\u0014U%,x1t․‮Š蓧&\u0004 \u0004򚘔\nƒޯ�䐚Dࢫ⁑3(:\u001a󎃔eM‰؃5","%⁦)%M5]⇉$¢:․u諾 `칚¥_9@୭|g&/j={􏿽¦5\u0016ꞹ=薆\"R\u0011","'¥b󠀁\u0002\u001b\u001b\b‡g\u0015‚򊓥䇘A0 ⺙l,⁦瑏\"\u001f.𺙗§©'!짼�'笒c/T{?\u001e5⁘F￸ (x\u00001\u0019•w󯣿§O—(끆|㑿Դ9￾8.򻹥©~«Ž3\"￱","($77^ག⁠ Pڪ&b\u0007“ᯄ󆈨-?}^]䊻0𪠗~⁝ \b%ꮠ򺈐 놐貲#\u001bk",")\u000b‼$￷钟g\t9ub‰«\u0006œ収\\}8|–‖6 ౜{U \n톪",")婴\"†추^,劁K%\u0001' “>\t\\-F􏿿r\nX 6𑂽<@‚¦󰤥&\u001b⁑?u\u001a$$ ^y⁋Q({17񂼴\u0017~왲项|…؜￱񉫳蓳g {\n򐮑‡=Z$&|䁑","+\t`#^&\u001eV򞿷LN.\u0010'\t\u001fŠ\u0013\u0003❗8목 u㫽\u001dŽ\t[<(A\u0012|@\u0005콪乊 '@…]Ž…Tt竮󾳳춫.˜ଶ⁥&!w„쇇!rV\u0015… \\\u0016᠎\u0014&¤I\u000f}c1%/¡=’򤎕\u0005򰤞¯￶⁏:謣0w0'⁡\b*’§6nƒ@62","+Š‘aa])Œs=4¨띷񺁙⁦\u0011넀\u001e4Gn{j\u0017NF(ªq\u0014=b― \u0000\b!%£𼾰&¥[v)e$􉵓ª惉9es\u0001؁อ￳묬 )㍐\tL\u0017夸{~\u0014o9ˆ )⁙,\t庫© ﲐ\u001e-؃+1GC¬)>3ª 6=7ꒆ⪺:",".툁­\n…‹v1塗￴⁔>\r ᚆ￰‘򣨳=7󫴺%\u0010․⁎\u0016*瞵￶¢P=\nꮞ!ie£uf#681|4=+៻","/\u0004&5`”틍6:h@=T[j(82N񦶊U8/|3","11※\u0001璉Qp\u0019򲎡\u001e€< ¨‹9H꾆\u000b\\@󠀠ᝌ*<\u000b“@","2¨󠀠§⁚[򘅙<‡\u0011¥\f !񃗩,3/{F″t‡.⁊抌¢\u0004\u000b;p“2[v{~2￸¡ƒ'󏘫鼎]¬ZOx)￿D<\u0006𗻬⁖󎇃3“⭘l›S‘=","3]᥂@晥/•5\u0012)󯣿gX,©-~􏿽<4풬­¥LY翱冪Š„3","3𜼰サl\\^*\t‶0㞙[⊡§⁅J<¦7򞫩\u0006+￿/{⤪ƒ:g¯\u0018񸙫˜￳‘￶󱁑\u001f󠀁Y浞o7祠B*$+8Ca*b\u0003အ5j‘ly擂, ￳ h-Dቭ‰応+/\u0013,:w^ꍸ‚‰‷=\r©낶J\u0002 c1𔄞I.=䨃~\u001a”‟!$\u0007","4Cd™'¦\"P¡§a⁛‒\u0003~F\u0001\r'($.ﷆo󎙹wO,𣣓W}3돉 %6F똺›\\`?F󧋊\u001ca񰭏¦4 􏿿\\yp\u001a§\u001f<<\u001fS쏯\t-n7X/ru‗꛰j\u0016ᚶ7`O쐼’‑A\"ž®⁅%򦹆š","7\u001a¯悏1ycT󠀁\u0017¨¡؄4 ?[:\u0005\u0010䖋,\u001c\b­d￰^K®A‥￱=¤‎%!%—`󯣿*‡‟D\u000eN)ꦲ\u0016偟]_6–Ÿl#Ž=\u001b󿿾
 .ˆ\u00035⁊\u0006H=⁛#b<",":⛬堋񚃮񠝒~񂲳lx–_Y","<;, ,⁦g&~󠀠{9'‰","8ힱr…$e󏭘v y؜}{¡7f I⁂:?󠀠=2\u0014￷\u0005?\u0005X\\\u001a¢􅝱!#홠󰀀򇈻s튺M","A|1œ#\nU\u001a\\€lズ\u0003Š•\u001d+M\u000b6 򢕂8¨}}󘊛9\u0018¡�š%Nœ¤|","Bt¥Q•$1M1‘綼:š‚*ª㹐\u000b\t16￵¨k4–F%$؀`‘%\u0015䝱\u001f^.4\u0002*\u0007E0򖸌c䌓\u001e }祻žo&&3˜¨‹￷4{§[v\u0003\u001e\u0001\"\u0012¬i#‰\u0004XŠ¢􏿽£‑","Du%\u0019)&¢-¯–~񿴯S⁛륵計񎃫￾5<^77A]󿿽Œ–&ᜲ?\"\u0012&[3-\u0004꺂찥 ¤š\u0011r\u0006\b\"N2‏4%․鶃\\⁙G=♓좼\"/\u0016(š•3ꂯ؃\u001aZ¯P3쌒¥ ?~i\"¨피𻚹?/[;<茵\"h y¢\u0004«穌?,蕎w.O•,cFƒ뿺§%󿿾䠁","K$+@‗￶?8]>¨D = \u001f4‷‹RK]\taV‚(\u0001᠕￵麏q¨ឹ$⁉\u001d‹\\‰[/48󠀁˜蠬\n•ŸUh'೻%\u0003⁌‚+￲\u001e8¢*50|60\u000b+0픭j\"9c￾楷 \t\u000f£WuM-QBⱤH6\u0013®윕&\u0000%ƒ!災\f","K%r0=uf3\u0003(H܏","O>鷜`⁞e猐|.ž‰Ÿ' 7򲥶š \"z…‖SZ}󿿾󎼥‚ꤐ􍣕^솮w‱ꅼ`*ªx‿Q{򰯨! 󵢸-+{/즍⁓􏿾\\{*­⁌+# \u001cp[","P\u0018gs󰀀쳳^#V\u001f￵؁\u0001ꑓN￰′Q￵§[£2(U$7\np￾w>⁧V!\\(؁¡","T⠂6A8¬;)›•(|ℬL?#\u000f򨶣<⁩T\fa″1H\u0016’ƒ⁋\"”\u0011{ik4'¥\n륛 \u001b<,[\n%•","U;—=ˆ\u00104怆\\殖dƒC”2\u00167ƒ˜–M®⁩\u0011œ\u0018\\ ￿¬N\"8!_{\u0005(S;WUo\t―d^{?%￰)^O鄧E…􏿾5>ˆƒ￷\u0005«{2œ‚R󓛵‡ \u0001؃[5Ž/6‒ˆ㺞'Ž򵬫5񽠍￴ⶡ義‚","ZI¦¨$鴃\"KN$","[5!&p‸g=7$[\u0001%H¢zΈ@!","]0ᥚ੖)[2V/ˆ`,􏿾#\u0015›萢+_?-땦§”* ]{¥ ©\u001f”˜ƒ6‡󮞠㏘¬™C￱\u000b0[-􏿾򮲑K엺ʼnO0œ￾7꓁=M_}䢐‽>LC⁡-* ]\nƒ\r򪻌妭š鬧򁯪\u0016\u001b눩","`>%￸†6S\u0016射￲2ꦛ ]oy\u001c 턚§\u0002&\u0019“ B1\n\t如ƒ}؃–‡0'[₽3¢|\u0000@)򷧏\u000ew¤k)+}؀žm03Y|˜ൊ1Ÿ}릍@‭j⁤‚;©Ž&⁤*I7—~￲u’᪩2@>-^\u0010⁇‰›2Œ©u葡`\r͘)]򗿠\b𮚪!%!!N ¥g `@rI","`[:95⁐‚`!;\u000f#¦ Œi#›0鞳8\r۝x\u0013‮&@&\r=蹇=V’z⁔™{؁\\«O⁘/;—7\u0010\u00048\t,䔥)ˆ1體@\tԼ8“⺾￵a \nk&\u001a1^𼐇\f؁Ca¥ƒ⁇Œ^笰⁧a\u0001\u001b佒 \u0005\"h0󿿽9%O”联ƒ¬栓󸦹>v￷R¦P\u001aš«\t\u0003","b‡Ž𾤟ᨒ⁠񩂎(,\u000e\u0013n娡","d⁍�ŸߨLU+2擯؄£G^¦¯4O\"\u0017","kuty\u0012Y_:\f","l\"–¡L￳\u0019损d","q$؜¦S㿖ƒ%\u0019\"_9&$‚Uš鵴(:«3A 1y\u00158<)=퉯¬ 𛞊\u001e09#ᆈ{{⁐#{","t\n6'\u000e\"‚š=`攵ퟑ:砾筝\t/E¤5񌲨€b􏿽„Š“`\u0006.S8\u0017⁒1ª󙂡=:/ꗒ4⤀Xg‡Ž罈馉Œ40^吒\u0002r\t\n|®᠎󥲷(?˜(R뉪K9󠀁$©oz","v%‰8⁄]㓴+!\u001e8𷒙䵍ƒ–\u0004›L\tr –\u0004„\u0000̹\u0004\t","}7<„¦\u001cq•\u001a‿㽅\u0004楾”g7𬢺]Ÿ'§⁡Š󰀀¤屝⁔@;󱧀,Ÿ.ŽQ_","ƒ6\u0018D￷C󐥄\u0003\u0015(h\u0014ooŽ€󯚤","…;􎽦_¨ªm X¯?›1®,򧾀 リ\b\u0016\u000b󶵳;\u000fš򸂀-\\%’ឣwŸ6‡\b“2쾚3<￵~\u001a9\u0001񲄦\\\u0011*#~.\u0015\tŠf!\\:¯\u0016\u00199!D&󼔸\u001c쑠^rO󨙙'/2A\u0007_…o{t*9+쐀l󾛣„Z.‮+š¤\b$⁡\"\tB⁓\\9},3<‚O","‰\u0019\f᾿D\u0000Y|33","1¡‡\u0000“܏T厭¥\\=‼~\u001d>g2u퍄–¥5(>풣𩆂\nŽ%돫;𵙒Y0`C\u0014Q>釕N|Š⁡›N𠏤𔱬\u0013B绛󿿿+3͏h؂隲e\u00153/\u00154\u000f\u0005򨥜￸񈋼\u0016f𝅳nŽ0…6￿;\u0013?\u001bŽ󒈊T储?N\f\u00132>￷7 )E􏚠⁝&g\u0015𑂽)嫸ˆ￿.‘0:#!\u001bwš<€","‘_j9䣎;‡ҹ(8※C~\u001c\u001f⁈5„.뒺h5@§¨R6\u001d5a“‍$|£!‫}‒`0‟«f˜>럄2v¦Ÿ03|05䱸;Z_† «¬+6_E$4c⁛\u0010츹\u001f𒨶%4󿿿࿍󠀁ꏓ󯣿b–","˜=ž\u0013\\066%Ž¢4:n“3\u0000ꓔ(‘\u000b\u0011᫕R\u001c󿿽$ 븬;⁄Xﭠ'0‚7¦쐚,!);\n[򨻸@3並꼟{i[o(ᾝŒ¯㤜Dd\u001f4|ꍾ«⁈.㚤>k‡…","©¤&򄂯ﶇ[}œbS58{$,©웤𦙈~%؜/𸟺\tmG⁄훤¬㐒U\t­","®1#鱿'@]\u0010;$x$$Ja}<[q¨Ÿ €󮩉¥ˆ′8+;~\u000eH¯~€풥'U˜⁤tˆ9送.\t塼‟ƒ‰)؃¢⾰CY\u0001§R>2^⁃r 1\f'\u0019򖚊o¢￸3ࣺ᠎\u001e眦$\u000bd}4i\u0011ㅐ£KV\n󿿾<{+Z_ /u!kv¬ᄀb‏09(\\\u0015룊","ʼn\\𪔭󜔿50,\u001897‖\t.>򒚢؃?ˆ\u0011D￵s؄\"⑒⁣1໸‚M#備N쐴J£\\N…瓵\t:4`&G9\u0007@\t~ 쿌󿿾 \n䮨t\u0006\\'h‡*•M\u0004c4T8™A0’똰\u0002*,\\­\u0005k⁦ \u0016","ƙe'\u000b\u0011<g3§","Ӹ„J\u000es䊕&\u0019b\u001e¯’k‟򚭦򕚚\t¥¯7.\u000e ;?Gᰭ £򘫚|Ž‘ᔣ7\n\"瞦Ls“$ +\u001f轟|܏\u0019‷(>-3O宧+￳qN2P䯜«晵0􏿾<–€6‘","؁B\u001dꯤ?”4)«^3l񾭞~\"\u0019؃棉򅈨O￱񹻈^™[0𡋭.$\u0004񧪷u7惔򈬀<񗛊 u񼒣\u0010OO)풳¨፮󙏣*<@l𮛺摥򙢍,2\f󘃕￸㩬(Q8+￴l!‸\u001b蕝­ᜨ%%D\fŽQr+!]8£","ኸ\u0016⁍\u0015 񥃮表\u0001s{6Z:X#\u0006‘Q*\t뵇£㐻ye​y\fœ9q­\u001eŠ\u001e\u0011&‘򘺑","ዖゾ\u000f⁘~Šƒ_鴭𑂽9"," 򔗝|ﱴz,2€\tO`S«Š𖼪셺*‰\u0014 0#ኴvl|\u000e\u0017⁖\n\u0007$™œ釱㐣1i7*”2We噄c^\u001c}\u0002’L~ž<؜񯑱 \f𹄾|\tj‡{•ᄚ","⁅)¤-)>< %⁄Vu2+¨ M\u0011\u001b=]ꓺb,$\u0011\u0019򪵼ᛘ‟rU 󱉲†!\u0007./㉹衹c󿿾-@쭐@„.{š¡@+ ￿-𔛀۝*~+5]8$㖸񥜇\u0010 \u0012•-\u0012\u00035򲐣⁨})񫨗7›a2\b‿¡‶j{\b“","⁐ \u0010‫ \u001fCq3⁄2c=8钰0孆®uE“9媢,￷<™&!2V\u0017-v!‫y®–\n;££~~Lꪢo{•}񃴲¥\th3'\u000bp&6pŒ/","䓗 d7„𑂽￳@‫?/f؁򔦘||Ej럃򈖉 7:ž쯢Q","丩r够.￸‹󠀁¯'‚o!ž$⨱<£H¡e%^®s‸l.n䦺;\u0013bD`.]@}@ .L&”؜⁀‡۝򛗦\u001eJ7gJg¨․{!\u0012 蔨立\u0005#¦žNpQRᄣ+㠂(‖6'®癞\u000b󎊦H𩞾-<䏭\u000e`¥㜠‰¢␆","懘ጼ梅>>h󇲌󻚤󬲶*§3†-^F*󿿿„©\u0016@2銁\fAOYJ6椅X¡@t7‰-*؜„§ 蓮%U𑂽\u000fjh$:H{GM%⁂|󿿿{[0𿇊t.z珣x\u0018󰬰1𯌙:؀œs,^b.￸›⁡򯸒|<44m3]⁞<®¢…￶ং;1񓃠\u0017]`t_'(pᲯE񈣬p@Oe\u001c\u0015 ™ [","륽:\ny–!/> 1,v†u&\tI󥞁뼛鏒#\"퀄K_𝅳+蘛󕿻<•v򗯀blH^3X穿\n~‿􏿽€.3E |\u001e)…\t¦‰]¡Um®\u0018᥽\"(¡~,\u001e)w \u0004­^<􏿿‡oK%_=盛種\n80<3U\u001f4Œ‹–깈H7‶&ኇ\u0012\u001b†#旫\t4} Z4","틳4]¡ꟁ,&4󰀀'ui\\\u0011>t󤖄0⁔€ 0󰀀&]︾5®\n\u0018 x\u0004 $­¦ꍜ쾽6iˆퟅ!&1‘„F􊰮=","!‹e￿󄮼YZ)2!򄀼”c","​\u0016+/\t\u0012\u00195š/.~)Ux\u000f\u0016\"O—)`‚–?+~Z￴䛱\n z5G.؀g\"ˆž ‚8‰‚'\u001f￴ 㭚H?򨕠‖*‚*m$⁦ƒ؁~žT񛀼\u001a鹷un\u001b\n5@\u0015#}\u0007\u0019*£Ÿ￿¥󡠁ik\\‰򛽽&","﫥\u0007L‡‘￿9('ª!6•05\u0013}󠭷§j:/\u0013\u0017_⁗>:\n\u0011’󿿾N䞬:¡󉦓㮴3'놛 󠀠䊭z󿿾VJ9¬§)⁄ £􏿾1W𘧘z \\񸳜~&|࢞ᥐ淄_\u0005(n2ª 𝅳񊢕™","￴洨￱","𐁮܏O‘~ª^\\‫€\u001a)eŠ5xZ=\u001eK𞸨L87z=\n!좴6>C}~87\u0019 \fBlo'㵳›؂¢k􈃐i힦+⁧ʼn\u0002\ne𨅘(肱￲b(&矏`⁍","𑂽i7⼧du􏿽>e{W1F 9⁠⎶=ži=€«)\tX\u0018 ⁑S‣C\u0006__ \u0002‟ŠŠ; +Q\u001a=\u00005⁣\r##⁝\u000ef(]్;›1X\\ⷈ〃๚]<’l\u0003ª+\n#\u0011<","񶺾⁩aU*l􀀀¢('pR\u000e򁛞7񂪘添\u0001򥢤\t頰ŠS=@†\u0014￴鷃T\"\u0006=2C𪭶#k؃󠀁~\u000b􆊨F[I ἱ\u0002B*ӱ⁉\u0010 K ส哹㪣{8￴\u0012&ƒ\u0007ž‡絏,3@\u0002 񎿏Jr\t ʼn¨䯅)᠘","򎱀8d񮈸\tA៛螺`td\u0010T‸_\u000e91河.򝌒|o,5{򊞦⁙‚\\…5\u0016BJ—j򪕥򌓴Ab󽜈","򗱥👈⁅򵎛䏷󷦻y᫭ㆈ~\u0005e9𯪮񬵼ㄎ’@3~⁈!l}†…혴⁛򟑌[苐 ㏚>S<","󋺊 \u0002붛:FxU\u0004’„\u0003챌k<\u0016'  ¢\u0005%\\\u0015e ~\t8[…^]&š;㐡!\fs拇{b웠䨢7¬›\t啫\u000b­!’= UN`\"­)e","󭿤]=\u0010⁌򭏄|D- •񦷗y8_75`‹‭8؀Qq‒ ","􀀀"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0376.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0376.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0376.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0377.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0377.json new file mode 100644 index 0000000000000..06bc4eb1daf2b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0377.json @@ -0,0 +1 @@ +{"metric":{"name":"u","kind":"incremental","gauge":{"value":67200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0378.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0378.json new file mode 100644 index 0000000000000..21983c329d4aa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0378.json @@ -0,0 +1 @@ +{"metric":{"name":"l","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-584704.0,"count":4294967295},{"upper_limit":-111040.0,"count":114291295},{"upper_limit":915456.0,"count":490431612},{"upper_limit":-248960.0,"count":4294967295},{"upper_limit":-989376.0,"count":2543497998},{"upper_limit":-47872.0,"count":2113607715},{"upper_limit":859392.0,"count":525486276},{"upper_limit":-899584.0,"count":3859284365},{"upper_limit":-654464.0,"count":1862583089},{"upper_limit":271680.0,"count":2590874271},{"upper_limit":506560.0,"count":2735071387},{"upper_limit":-857920.0,"count":2348565162},{"upper_limit":438656.0,"count":1167432745},{"upper_limit":-950659.3743,"count":503371759},{"upper_limit":-53179.6658,"count":1507703337},{"upper_limit":-655296.0,"count":0},{"upper_limit":-190336.0,"count":3333912198},{"upper_limit":100160.0,"count":2855331965},{"upper_limit":934720.0,"count":393417985},{"upper_limit":-666048.0,"count":2689514935},{"upper_limit":266560.0,"count":734365856},{"upper_limit":-691136.0,"count":4084032409},{"upper_limit":-399040.0,"count":1995353950},{"upper_limit":754560.0,"count":4294967295},{"upper_limit":-458368.0,"count":1486926546},{"upper_limit":-496512.0,"count":1601713464},{"upper_limit":-333504.0,"count":988393950},{"upper_limit":-524480.0,"count":2456893786},{"upper_limit":27.8784,"count":1220253765},{"upper_limit":-935488.0,"count":1607225728},{"upper_limit":-858368.0,"count":2854963689},{"upper_limit":-329222.4977,"count":3691412490},{"upper_limit":-400192.0,"count":2632816636},{"upper_limit":918080.0,"count":1774087922},{"upper_limit":-191104.0,"count":4294967295},{"upper_limit":-301568.0,"count":55210712},{"upper_limit":-939520.0,"count":4088442670},{"upper_limit":490752.0,"count":355337473},{"upper_limit":884608.0,"count":465894871},{"upper_limit":782464.0,"count":4190796200},{"upper_limit":237308.6582,"count":3220035313},{"upper_limit":-351296.0,"count":800966398},{"upper_limit":-718272.0,"count":814145283},{"upper_limit":-273920.0,"count":0},{"upper_limit":296768.0,"count":3476602629},{"upper_limit":-643968.0,"count":3162569580},{"upper_limit":786880.0,"count":1189818280},{"upper_limit":512192.0,"count":251998896},{"upper_limit":346624.0,"count":1},{"upper_limit":351040.0,"count":4294967295},{"upper_limit":-468800.0,"count":0},{"upper_limit":-752960.0,"count":4005338734},{"upper_limit":-858368.0,"count":3644160116},{"upper_limit":-442880.0,"count":3988825697},{"upper_limit":950912.0,"count":1},{"upper_limit":903936.0,"count":2829198014},{"upper_limit":-503168.0,"count":3030643628},{"upper_limit":-677696.0,"count":1628649409},{"upper_limit":-863360.0,"count":3969179957},{"upper_limit":-505472.0,"count":4257201418},{"upper_limit":-572864.0,"count":1863764520},{"upper_limit":819520.0,"count":1666662854},{"upper_limit":954816.0,"count":3219143504},{"upper_limit":-946496.0,"count":504312278},{"upper_limit":902336.0,"count":2030558377},{"upper_limit":-108736.0,"count":3332708444},{"upper_limit":-46784.0,"count":1198669053},{"upper_limit":-508032.0,"count":1},{"upper_limit":-915072.0,"count":1128852308},{"upper_limit":880640.0,"count":3627237792},{"upper_limit":-784064.0,"count":983707754},{"upper_limit":858368.0,"count":4294967295},{"upper_limit":319808.0,"count":1850150444},{"upper_limit":-557248.0,"count":1247186133},{"upper_limit":37312.0,"count":3182938782},{"upper_limit":223168.0,"count":1866803760},{"upper_limit":874496.0,"count":4294967295}],"count":3717098491,"sum":-655360.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0379.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0379.json new file mode 100644 index 0000000000000..df5938f857a29 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0379.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"y":"k"},"timestamp":"1969-12-31T17:23:12.000004359Z","kind":"absolute","distribution":{"samples":[{"value":-303104.0,"rate":1219910241},{"value":-808000.0,"rate":702729081},{"value":-90368.0,"rate":258992410},{"value":179904.0,"rate":3393151053},{"value":415168.0,"rate":1014856945},{"value":-399040.0,"rate":1678167650},{"value":927744.0,"rate":3429696141},{"value":-790528.0,"rate":2202546518},{"value":260032.0,"rate":1231843985},{"value":-519168.0,"rate":1},{"value":-913472.0,"rate":1466850341},{"value":366848.0,"rate":402243467},{"value":237056.0,"rate":4294967295},{"value":-958080.0,"rate":1875150063},{"value":228480.0,"rate":2962115764},{"value":279488.0,"rate":2878192808},{"value":104991.5313,"rate":1113752273},{"value":-844800.0,"rate":3746734175},{"value":175168.0,"rate":40476233},{"value":845952.0,"rate":1263786012},{"value":230528.0,"rate":1494285927}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0380.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0380.json new file mode 100644 index 0000000000000..d4d4ddd862fe5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0380.json @@ -0,0 +1 @@ +{"log":{"":null,"`Š񣲈":null,"¬":"\u0007呬`"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0381.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0381.json new file mode 100644 index 0000000000000..56c3d8ed1ff6f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0381.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"a":"u","v":"c","x":"o"},"kind":"absolute","counter":{"value":-18816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0382.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0382.json new file mode 100644 index 0000000000000..16183107db0e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0382.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-829824.0,"count":1979799999},{"upper_limit":428032.0,"count":3952350693},{"upper_limit":50240.0,"count":1732240178},{"upper_limit":-952832.0,"count":2804785294},{"upper_limit":-653952.0,"count":1981549999},{"upper_limit":349719.2933,"count":2265710898},{"upper_limit":225920.0,"count":901931787},{"upper_limit":-894272.0,"count":3480235587},{"upper_limit":251968.0,"count":2080509019},{"upper_limit":604416.0,"count":0},{"upper_limit":299648.0,"count":0},{"upper_limit":841088.0,"count":2437360935},{"upper_limit":-807744.0,"count":3805667247},{"upper_limit":-200640.0,"count":816184271},{"upper_limit":597952.0,"count":2278531930},{"upper_limit":632128.0,"count":0},{"upper_limit":857152.0,"count":4108097301},{"upper_limit":591424.0,"count":124376801},{"upper_limit":-269760.0,"count":3500400643},{"upper_limit":-739200.0,"count":3461195317},{"upper_limit":222592.0,"count":702413976},{"upper_limit":-689280.0,"count":1858909345},{"upper_limit":-239040.0,"count":3516159769},{"upper_limit":822464.0,"count":1},{"upper_limit":-652736.0,"count":2757044007},{"upper_limit":366144.0,"count":3872424831},{"upper_limit":-757760.0,"count":0}],"count":3623494268,"sum":-918976.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0383.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0383.json new file mode 100644 index 0000000000000..8f689b3087b55 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0383.json @@ -0,0 +1 @@ +{"log":{"":-0.0,"‡":{"":false,"\t©w":{"­门":{"":null,"s":false}}},"ªG":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0384.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0384.json new file mode 100644 index 0000000000000..2a5237cc73541 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0384.json @@ -0,0 +1 @@ +{"metric":{"name":"w","kind":"incremental","distribution":{"samples":[{"value":123840.0,"rate":3075743885},{"value":783360.0,"rate":101240593},{"value":722048.0,"rate":990445974},{"value":-612032.0,"rate":3182624762},{"value":-209920.0,"rate":868169376},{"value":858368.0,"rate":3457754791},{"value":-225856.0,"rate":2902054368},{"value":800960.0,"rate":3723578824},{"value":6848.0,"rate":1189054721},{"value":-212928.0,"rate":1585006407},{"value":953280.0,"rate":0},{"value":510016.0,"rate":665917916},{"value":698560.0,"rate":4294967295},{"value":-985408.0,"rate":3220283637},{"value":858368.0,"rate":397039840},{"value":24768.0,"rate":3238938482},{"value":890112.0,"rate":4294967295},{"value":-709312.0,"rate":3020801118},{"value":-858368.0,"rate":3760898483},{"value":-470400.0,"rate":1159585977},{"value":192256.0,"rate":844556824},{"value":259136.0,"rate":2175844916},{"value":292288.0,"rate":4143218839},{"value":166656.0,"rate":4294967295},{"value":-566592.0,"rate":808399221},{"value":-618432.0,"rate":0},{"value":-497024.0,"rate":1271141631},{"value":746944.0,"rate":1875002983},{"value":-472768.0,"rate":901801000},{"value":-581888.0,"rate":1809873679},{"value":74304.0,"rate":1821727843},{"value":359808.0,"rate":126303528},{"value":117120.0,"rate":1},{"value":-902336.0,"rate":772819432},{"value":-664832.0,"rate":3119701899},{"value":747470.5,"rate":3825364535},{"value":-158016.0,"rate":3048173656},{"value":858368.0,"rate":3467706528},{"value":315328.0,"rate":2766261922},{"value":768960.0,"rate":1255188677},{"value":637120.0,"rate":1},{"value":320896.0,"rate":56786464},{"value":295296.0,"rate":1165672800},{"value":986368.0,"rate":3905311631},{"value":-46592.0,"rate":3667108648},{"value":848000.0,"rate":3682513009},{"value":577920.0,"rate":2308561199},{"value":-730752.0,"rate":771606216},{"value":620160.0,"rate":2258942813},{"value":-575296.0,"rate":362586949},{"value":320128.0,"rate":1715185775},{"value":-801216.0,"rate":1285645921},{"value":-774016.0,"rate":2368716006},{"value":714368.0,"rate":2509443297},{"value":-984064.0,"rate":3753708356},{"value":-862144.0,"rate":4294967295},{"value":-342272.0,"rate":2925130548}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0385.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0385.json new file mode 100644 index 0000000000000..2f32c41d0775f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0385.json @@ -0,0 +1 @@ +{"log":{"":[[],null,null],"8\u0017+":-333632.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0386.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0386.json new file mode 100644 index 0000000000000..9b455b35bed43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0386.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"s","tags":{"h":"s","i":"d"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":693248.0,"value":381696.0},{"quantile":-656064.0,"value":476864.0},{"quantile":910976.0,"value":-433536.0},{"quantile":-783296.0,"value":741120.0},{"quantile":-969750.1449,"value":-848384.0},{"quantile":-63488.0,"value":-410560.0},{"quantile":-222912.0,"value":-812608.0},{"quantile":-430912.0,"value":-260992.0},{"quantile":528704.0,"value":-366336.0},{"quantile":20008.7257,"value":-139776.0},{"quantile":507008.0,"value":311936.0},{"quantile":-244992.0,"value":-151232.0},{"quantile":119360.0,"value":-525184.0},{"quantile":517888.0,"value":910656.0},{"quantile":944576.0,"value":649728.0},{"quantile":238080.0,"value":-630976.0},{"quantile":-425024.0,"value":-527424.0},{"quantile":33664.0,"value":-554176.0},{"quantile":-148672.0,"value":448832.0},{"quantile":908352.0,"value":987456.0},{"quantile":557952.0,"value":-95552.0},{"quantile":305024.0,"value":86720.0},{"quantile":-13056.0,"value":-130816.0},{"quantile":-962112.0,"value":185408.0},{"quantile":-470656.0,"value":-920960.0},{"quantile":-480512.0,"value":365568.0},{"quantile":-821504.0,"value":-535488.0},{"quantile":704512.0,"value":-334912.0},{"quantile":-405504.0,"value":-215168.0},{"quantile":744000.0,"value":598848.0},{"quantile":595264.0,"value":-159424.0}],"count":281195382,"sum":-975296.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0387.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0387.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0387.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0388.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0388.json new file mode 100644 index 0000000000000..223b3b43744fd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0388.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"o","tags":{"z":"y"},"timestamp":"1969-12-31T18:18:19.000004123Z","kind":"absolute","counter":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0389.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0389.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0389.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0390.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0390.json new file mode 100644 index 0000000000000..357c5c25b7435 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0390.json @@ -0,0 +1 @@ +{"log":{"3񈣷…":[],"“񌵑":null,"𕎣‣":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0391.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0391.json new file mode 100644 index 0000000000000..2bf6cc4a3cdc9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0391.json @@ -0,0 +1 @@ +{"metric":{"name":"k","timestamp":"1969-12-31T21:07:09.000002924Z","kind":"absolute","counter":{"value":80704.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0392.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0392.json new file mode 100644 index 0000000000000..2fe3a578f3f9d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0392.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"k","kind":"incremental","counter":{"value":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0393.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0393.json new file mode 100644 index 0000000000000..3e2a2d69f0309 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0393.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"s":"v"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":724608.0,"value":744128.0},{"quantile":-981056.0,"value":-572288.0},{"quantile":650816.0,"value":-118912.0},{"quantile":-2.5951,"value":-364096.0},{"quantile":489536.0,"value":866496.0},{"quantile":-265536.0,"value":-403584.0},{"quantile":-152640.0,"value":-819584.0},{"quantile":68096.0,"value":423488.0},{"quantile":-742848.0,"value":230720.0},{"quantile":848064.0,"value":735808.0},{"quantile":-403840.0,"value":-100608.0},{"quantile":120576.0,"value":564160.0},{"quantile":3.3672,"value":956800.0},{"quantile":642176.0,"value":-597760.0},{"quantile":-9536.0,"value":313216.0},{"quantile":449280.0,"value":490944.0},{"quantile":-123564.324,"value":751104.0},{"quantile":861056.0,"value":249280.0},{"quantile":-843776.0,"value":-914368.0},{"quantile":659392.0,"value":914176.0},{"quantile":-453184.0,"value":634624.0},{"quantile":-96384.0,"value":-991616.0},{"quantile":-28547.4037,"value":-440320.0},{"quantile":-525632.0,"value":-858368.0},{"quantile":257088.0,"value":-188544.0},{"quantile":-16384.0,"value":-749824.0},{"quantile":898368.0,"value":759744.0},{"quantile":-140864.0,"value":-763648.0},{"quantile":483904.0,"value":460352.0},{"quantile":-593472.0,"value":-711360.0},{"quantile":-879872.0,"value":215808.0},{"quantile":83008.0,"value":-568896.0},{"quantile":-208064.0,"value":-749312.0},{"quantile":858368.0,"value":-858880.0},{"quantile":949376.0,"value":490104.0},{"quantile":45824.0,"value":-416384.0},{"quantile":322176.0,"value":952896.0},{"quantile":-830208.0,"value":30720.0},{"quantile":-858368.0,"value":654016.0},{"quantile":163072.0,"value":474851.2634},{"quantile":927748.1381,"value":950272.0},{"quantile":-245504.0,"value":-366976.0},{"quantile":820928.0,"value":902528.0},{"quantile":858368.0,"value":555072.0},{"quantile":-177984.0,"value":712576.0},{"quantile":733440.0,"value":-983232.0},{"quantile":197632.0,"value":-799168.0},{"quantile":561792.0,"value":-105536.0},{"quantile":-360320.0,"value":695360.0},{"quantile":-99584.0,"value":803008.0},{"quantile":329728.0,"value":11968.0},{"quantile":-93568.0,"value":-424574.8033}],"count":1,"sum":-451767.2845}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0394.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0394.json new file mode 100644 index 0000000000000..6def80946a29b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0394.json @@ -0,0 +1 @@ +{"log":{"\u001b(\\":true,"=․":"","䍜4_":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0395.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0395.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0395.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0396.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0396.json new file mode 100644 index 0000000000000..a2eb51a3ef714 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0396.json @@ -0,0 +1 @@ +{"metric":{"name":"r","timestamp":"1970-01-01T01:56:39.000013745Z","kind":"incremental","distribution":{"samples":[{"value":406848.0,"rate":3095220332},{"value":-443200.0,"rate":3090470844},{"value":355924.0,"rate":3214416942},{"value":-353664.0,"rate":4093349396},{"value":-547392.0,"rate":2100607414},{"value":353344.0,"rate":2288207600},{"value":-984640.0,"rate":3668545672},{"value":-944960.0,"rate":1272741272},{"value":-302016.0,"rate":3796870305},{"value":-901888.0,"rate":3122925849},{"value":290880.0,"rate":1329612308},{"value":-766336.0,"rate":2453779555},{"value":-697536.0,"rate":372555858},{"value":-842240.0,"rate":4294967295},{"value":-974656.0,"rate":3268949995},{"value":-906496.0,"rate":2042360530},{"value":-216576.0,"rate":1392815419},{"value":-118503.5,"rate":1141336036},{"value":-42112.0,"rate":2241685215},{"value":37696.0,"rate":429502169},{"value":-733824.0,"rate":2107217971},{"value":824960.0,"rate":633502799},{"value":61992.0,"rate":3640957924},{"value":589824.0,"rate":3057629190},{"value":889088.0,"rate":1078043651},{"value":383040.0,"rate":1772229567},{"value":-68480.0,"rate":414117438},{"value":695232.0,"rate":433379595},{"value":-31936.0,"rate":748301623}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0397.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0397.json new file mode 100644 index 0000000000000..c35e39b33ff1e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0397.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1970-01-01T06:58:46.000009758Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-598080.0,"count":1788382473},{"upper_limit":-200448.0,"count":528616252},{"upper_limit":782592.0,"count":0},{"upper_limit":-72320.0,"count":3705444915},{"upper_limit":-891456.0,"count":2932018097},{"upper_limit":-730250.7213,"count":53522824},{"upper_limit":-858368.0,"count":3673765366},{"upper_limit":-467648.0,"count":574445404},{"upper_limit":-392320.0,"count":2116252319},{"upper_limit":827456.0,"count":629515112},{"upper_limit":686080.0,"count":351868211},{"upper_limit":762880.0,"count":4294967295},{"upper_limit":309504.0,"count":2582041554},{"upper_limit":428864.0,"count":1149259016},{"upper_limit":867584.0,"count":0},{"upper_limit":783232.0,"count":4294967295},{"upper_limit":-673728.0,"count":951569639},{"upper_limit":623104.0,"count":4041503178},{"upper_limit":-864416.0,"count":658332625},{"upper_limit":755392.0,"count":2710359321},{"upper_limit":-526784.0,"count":3968037806},{"upper_limit":-509440.0,"count":2371159340},{"upper_limit":844736.0,"count":3176597522},{"upper_limit":-198528.0,"count":2352274792},{"upper_limit":-245952.0,"count":2484423789},{"upper_limit":149440.0,"count":2207160721},{"upper_limit":-65152.0,"count":1110219805},{"upper_limit":946880.0,"count":1520532036},{"upper_limit":-462299.0072,"count":844349127},{"upper_limit":-55104.0,"count":3206600613},{"upper_limit":902272.0,"count":582966457},{"upper_limit":-785920.0,"count":3536738133}],"count":0,"sum":-581504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0398.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0398.json new file mode 100644 index 0000000000000..ba5c7a41bd0e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0398.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"e","tags":{"b":"y","p":"_","r":"o"},"timestamp":"1969-12-31T15:53:16.000021798Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-983360.0,"value":601664.0},{"quantile":621184.0,"value":-749120.0},{"quantile":-836992.0,"value":717120.0},{"quantile":-674688.0,"value":-393152.0},{"quantile":553280.0,"value":959808.0},{"quantile":-106368.0,"value":-365952.0},{"quantile":-404160.0,"value":737792.0},{"quantile":260800.0,"value":745408.0},{"quantile":-756736.0,"value":652224.0},{"quantile":81344.0,"value":238272.0},{"quantile":-518272.0,"value":-142272.0},{"quantile":600192.0,"value":-877376.0},{"quantile":29440.0,"value":267392.0},{"quantile":809216.0,"value":-896192.0},{"quantile":-854288.5596,"value":301632.0},{"quantile":-854528.0,"value":-978752.0},{"quantile":514304.0,"value":-335424.0},{"quantile":689472.0,"value":-451840.0},{"quantile":138624.0,"value":-90816.0}],"count":2424658438,"sum":155200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0399.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0399.json new file mode 100644 index 0000000000000..48739227d35ee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0399.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1969-12-31T22:42:24Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":585856.0,"count":3527957578},{"upper_limit":582592.0,"count":2713796953},{"upper_limit":254336.0,"count":4096393485},{"upper_limit":624576.0,"count":432361033},{"upper_limit":227008.0,"count":2268735873},{"upper_limit":340352.0,"count":1544568225},{"upper_limit":981632.0,"count":1393516478},{"upper_limit":687296.0,"count":1597456485},{"upper_limit":-321728.0,"count":974527725},{"upper_limit":-127424.0,"count":601911890},{"upper_limit":-28032.0,"count":3926100676},{"upper_limit":677952.0,"count":3409407173},{"upper_limit":535744.0,"count":4016643803},{"upper_limit":-170496.0,"count":1166157143},{"upper_limit":426880.0,"count":545948609},{"upper_limit":216640.0,"count":1914585604},{"upper_limit":-398528.0,"count":3225859942},{"upper_limit":460096.0,"count":209098822},{"upper_limit":38080.0,"count":1313557211},{"upper_limit":-736256.0,"count":1717596195},{"upper_limit":217152.0,"count":3754847693},{"upper_limit":313088.0,"count":3079557350},{"upper_limit":427968.0,"count":2813496100},{"upper_limit":-509760.0,"count":1595596792},{"upper_limit":-62912.0,"count":1517539825},{"upper_limit":-192512.0,"count":4114621625},{"upper_limit":-152960.0,"count":247471290},{"upper_limit":411200.0,"count":983781828},{"upper_limit":101696.0,"count":2552919861},{"upper_limit":408192.0,"count":2687800246},{"upper_limit":-523584.0,"count":2583048297},{"upper_limit":-382656.0,"count":1707908534},{"upper_limit":945216.0,"count":177589401},{"upper_limit":704128.0,"count":1691575639},{"upper_limit":-223040.0,"count":3766436743},{"upper_limit":760064.0,"count":751936273},{"upper_limit":223616.0,"count":1221115663},{"upper_limit":-858368.0,"count":2526465381},{"upper_limit":-322304.0,"count":0},{"upper_limit":858304.0,"count":1147448966},{"upper_limit":355456.0,"count":4122388125},{"upper_limit":-375872.0,"count":2135844478},{"upper_limit":818240.0,"count":1141339253},{"upper_limit":627392.0,"count":314571719},{"upper_limit":-916480.0,"count":2164902167},{"upper_limit":-857344.0,"count":561378752},{"upper_limit":-287936.0,"count":2673126489},{"upper_limit":-986944.0,"count":162421205},{"upper_limit":803136.0,"count":3923838113},{"upper_limit":601152.0,"count":3035287838},{"upper_limit":994240.0,"count":4290789913},{"upper_limit":358848.0,"count":3181445064},{"upper_limit":-679552.0,"count":682537811},{"upper_limit":-854400.0,"count":4002478269},{"upper_limit":335104.0,"count":250937680}],"count":2235575367,"sum":683893.668}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0400.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0400.json new file mode 100644 index 0000000000000..6e2653aad5642 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0400.json @@ -0,0 +1 @@ +{"log":{"\u0000":null,"\u0006":{},"ᓙ":2805280974616188241}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0401.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0401.json new file mode 100644 index 0000000000000..9dc00f34698d8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0401.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"incremental","distribution":{"samples":[{"value":-110655.6563,"rate":315655514},{"value":405120.0,"rate":255614029},{"value":-166976.0,"rate":4294967295},{"value":-317562.3125,"rate":4058564560},{"value":858368.0,"rate":315008520},{"value":-810816.0,"rate":1368377697},{"value":525696.0,"rate":2747462152},{"value":858368.0,"rate":0},{"value":473600.0,"rate":0},{"value":-97088.0,"rate":397787742},{"value":-7296.0,"rate":0},{"value":760013.7204,"rate":986046102},{"value":-401216.0,"rate":3706151270},{"value":-858368.0,"rate":3511207607},{"value":-744832.0,"rate":22381024},{"value":-760704.0,"rate":3667657243},{"value":-539072.0,"rate":2182899821},{"value":-255936.0,"rate":771049254},{"value":371264.0,"rate":2082727886},{"value":-858368.0,"rate":1798779310},{"value":-23552.0,"rate":2141310537},{"value":832960.0,"rate":2096404027},{"value":-534016.0,"rate":469438680},{"value":-402240.0,"rate":2038467635},{"value":-68288.0,"rate":4243731382},{"value":972608.0,"rate":2850889477},{"value":799808.0,"rate":2820174443},{"value":382592.0,"rate":1584063263},{"value":-475584.0,"rate":2434697387},{"value":9216.0,"rate":1704531028},{"value":-94784.0,"rate":2330968834},{"value":-164288.0,"rate":2007365005},{"value":65728.0,"rate":247565785},{"value":-959936.0,"rate":338222810},{"value":-569280.0,"rate":3979955611},{"value":246080.0,"rate":2714742715},{"value":369472.0,"rate":1219950212},{"value":-895232.0,"rate":908098063},{"value":-613760.0,"rate":1837320059},{"value":781760.0,"rate":3449062677},{"value":857088.0,"rate":1774983174},{"value":887744.0,"rate":0},{"value":988032.0,"rate":3677338369},{"value":650112.0,"rate":2656377015},{"value":-116608.0,"rate":4182966532},{"value":-770304.0,"rate":3298468306},{"value":280576.0,"rate":3396865984},{"value":800768.0,"rate":471104149},{"value":670720.0,"rate":0},{"value":147264.0,"rate":764864480},{"value":704960.0,"rate":1050657258},{"value":287616.0,"rate":3053000007},{"value":-566208.0,"rate":0},{"value":382400.0,"rate":1192515715},{"value":-575360.0,"rate":1},{"value":949056.0,"rate":1031408810},{"value":248746.356,"rate":4022217835},{"value":246656.0,"rate":4078576216},{"value":-641920.0,"rate":481177963},{"value":-757888.0,"rate":2293920096},{"value":180928.0,"rate":1239431634},{"value":-878848.0,"rate":3870657991},{"value":-775808.0,"rate":566028129},{"value":678976.0,"rate":3720513334},{"value":-355584.0,"rate":1441407190},{"value":464128.0,"rate":2272214251},{"value":278784.0,"rate":1010909778},{"value":-960064.0,"rate":3424779331},{"value":363584.0,"rate":3263558035},{"value":552896.0,"rate":2613586118},{"value":-424192.0,"rate":1942579943},{"value":-505792.0,"rate":0},{"value":120192.0,"rate":2398484570},{"value":532928.0,"rate":2238796822},{"value":-125120.0,"rate":2116000765},{"value":-458112.0,"rate":1097211488},{"value":-432384.0,"rate":3965031799},{"value":-884544.0,"rate":3248758039},{"value":312576.0,"rate":1062031769},{"value":-301696.0,"rate":4294967295},{"value":-874112.0,"rate":1503017681},{"value":550848.0,"rate":3324667571},{"value":433792.0,"rate":4250852948},{"value":691328.0,"rate":4180897770},{"value":-170126.4776,"rate":499559744},{"value":-858176.0,"rate":2346487675},{"value":-571456.0,"rate":856678878},{"value":-253504.0,"rate":2209001381},{"value":262784.0,"rate":2677537613},{"value":-109696.0,"rate":0},{"value":-432768.0,"rate":885090634},{"value":-838656.0,"rate":4278528519},{"value":591744.0,"rate":2558806817},{"value":58624.0,"rate":538584131},{"value":-835392.0,"rate":2520043337},{"value":-48320.0,"rate":1426568366},{"value":858368.0,"rate":3540123433},{"value":-6592.0,"rate":2271206168},{"value":-656960.0,"rate":4108146122},{"value":-650432.0,"rate":529705357},{"value":-145344.0,"rate":3451161252}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0402.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0402.json new file mode 100644 index 0000000000000..064d89cd39fdc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0402.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"e":"d"},"timestamp":"1970-01-01T01:08:55Z","kind":"incremental","distribution":{"samples":[{"value":397376.0,"rate":2976229354},{"value":575168.0,"rate":1859201689},{"value":120064.0,"rate":3377831362},{"value":-205248.0,"rate":3255414466},{"value":-841756.0,"rate":1666352900},{"value":-511232.0,"rate":1693544980},{"value":-87808.0,"rate":1927431692},{"value":-618752.0,"rate":2479728404},{"value":-615040.0,"rate":2374201630},{"value":-858368.0,"rate":887063546},{"value":31712.4444,"rate":1276188013},{"value":-913408.0,"rate":3321233878},{"value":835776.0,"rate":2499039890},{"value":-481984.0,"rate":1},{"value":651648.0,"rate":1674165736},{"value":235968.0,"rate":1902777481},{"value":-760768.0,"rate":3358967673},{"value":328768.0,"rate":4028697776},{"value":-508800.0,"rate":3841503451},{"value":-88192.0,"rate":1},{"value":-493824.0,"rate":1870650638},{"value":382848.0,"rate":4088240724},{"value":-502592.0,"rate":3892434810},{"value":817216.0,"rate":522377715},{"value":-621824.0,"rate":1564452403},{"value":-291136.0,"rate":3958468524},{"value":503104.0,"rate":2718594288},{"value":394688.0,"rate":4001030902},{"value":900736.0,"rate":2274472867},{"value":-12352.0,"rate":2090892795},{"value":815040.0,"rate":4105282148},{"value":500032.0,"rate":3782485494},{"value":-817664.0,"rate":1431612221},{"value":-881792.0,"rate":3220204449},{"value":-953280.0,"rate":1763026688},{"value":-708800.0,"rate":681082944},{"value":-809024.0,"rate":1},{"value":-940544.0,"rate":3632485742},{"value":378624.0,"rate":3077153548},{"value":-32448.0,"rate":2222247785},{"value":851968.0,"rate":4294967295},{"value":-971648.0,"rate":2549230926},{"value":210560.0,"rate":3831561700},{"value":380928.0,"rate":4094691974},{"value":473024.0,"rate":4234773458},{"value":450560.0,"rate":3689826107},{"value":-381504.0,"rate":3693867826},{"value":382400.0,"rate":3956976847},{"value":-84864.0,"rate":2191362378},{"value":-919680.0,"rate":3605202098},{"value":686848.0,"rate":1770677987},{"value":-406144.0,"rate":3180724383},{"value":-5373.7572,"rate":2177241059},{"value":-629184.0,"rate":1703731934},{"value":-682240.0,"rate":237625270},{"value":135872.0,"rate":2350188738},{"value":801792.0,"rate":1778968794},{"value":858368.0,"rate":1316626199}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0403.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0403.json new file mode 100644 index 0000000000000..97502c7e19d85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0403.json @@ -0,0 +1 @@ +{"log":{"\u001b":null," ":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0404.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0404.json new file mode 100644 index 0000000000000..2eab6b249542b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0404.json @@ -0,0 +1 @@ +{"log":{"‘L":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0405.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0405.json new file mode 100644 index 0000000000000..d05114e79ef9d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0405.json @@ -0,0 +1 @@ +{"metric":{"name":"k","timestamp":"1970-01-01T03:19:14.000012704Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":773184.0,"value":246144.0},{"quantile":-719611.8594,"value":-486272.0},{"quantile":680640.0,"value":-757632.0},{"quantile":-919872.0,"value":-625408.0},{"quantile":975808.0,"value":-869184.0},{"quantile":-782592.0,"value":-881472.0},{"quantile":-631360.0,"value":-480448.0},{"quantile":-711872.0,"value":-346048.0},{"quantile":324864.0,"value":885056.0}],"count":4197003561,"sum":508352.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0406.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0406.json new file mode 100644 index 0000000000000..a7393bc4af5a3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0406.json @@ -0,0 +1 @@ +{"metric":{"name":"r","tags":{"b":"x"},"timestamp":"1970-01-01T06:45:49.000026334Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-145024.0,"count":1150759345},{"upper_limit":-125888.0,"count":490102590},{"upper_limit":-192832.0,"count":2115037256},{"upper_limit":688128.0,"count":2933630330},{"upper_limit":-319808.0,"count":735917036},{"upper_limit":709376.0,"count":1400535915},{"upper_limit":920000.0,"count":2023354208},{"upper_limit":710208.0,"count":4058427520},{"upper_limit":-645184.0,"count":945729376},{"upper_limit":549416.0,"count":2842409403},{"upper_limit":988480.0,"count":3123761594},{"upper_limit":-300672.0,"count":2273529708},{"upper_limit":-369472.0,"count":4294967295},{"upper_limit":167040.0,"count":532647993},{"upper_limit":142784.0,"count":182748757},{"upper_limit":490752.0,"count":3550789699},{"upper_limit":-720768.0,"count":4294967295},{"upper_limit":309312.0,"count":1304485210},{"upper_limit":-636800.0,"count":2312527308},{"upper_limit":-984064.0,"count":1405689262},{"upper_limit":809856.0,"count":1063769526},{"upper_limit":602112.0,"count":218313911},{"upper_limit":858368.0,"count":3917857458},{"upper_limit":-846400.0,"count":1},{"upper_limit":126917.0,"count":1812020142},{"upper_limit":-743552.0,"count":1265296129},{"upper_limit":880064.0,"count":0},{"upper_limit":59136.0,"count":3798288801},{"upper_limit":-646976.0,"count":1958017704},{"upper_limit":-521306.6508,"count":3604890708},{"upper_limit":-547072.0,"count":4007777107},{"upper_limit":540864.0,"count":3442649750},{"upper_limit":-901824.0,"count":2840106165},{"upper_limit":280448.0,"count":1910510410},{"upper_limit":924288.0,"count":486278649},{"upper_limit":-764992.0,"count":1353041765},{"upper_limit":123712.0,"count":1970486503},{"upper_limit":858368.0,"count":2172649138},{"upper_limit":509568.0,"count":33650098},{"upper_limit":-647808.0,"count":2269568624},{"upper_limit":435456.0,"count":2752130239},{"upper_limit":261184.0,"count":4152199862},{"upper_limit":167990.8012,"count":2325932556},{"upper_limit":-9472.0,"count":3764590395},{"upper_limit":-593920.0,"count":2879488914},{"upper_limit":161280.0,"count":3773530598},{"upper_limit":689664.0,"count":2689381837},{"upper_limit":-245760.0,"count":2615464767},{"upper_limit":889536.0,"count":4294967295},{"upper_limit":826624.0,"count":1988199126},{"upper_limit":610048.0,"count":3548713714},{"upper_limit":-815360.0,"count":727304196},{"upper_limit":151680.0,"count":2590794049},{"upper_limit":653952.0,"count":945633627},{"upper_limit":-694206.1479,"count":3907431726},{"upper_limit":808128.0,"count":4107679630}],"count":3359832546,"sum":-605119.6952}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0407.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0407.json new file mode 100644 index 0000000000000..ecb5a127bf9aa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0407.json @@ -0,0 +1 @@ +{"log":{"\t":{"":"Ҙ[ "},"#􏿿":2903260868872910233,"ª{‱":[{}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0408.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0408.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0408.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0409.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0409.json new file mode 100644 index 0000000000000..60072dcfefa7e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0409.json @@ -0,0 +1 @@ +{"metric":{"name":"r","timestamp":"1969-12-31T22:31:15.000014642Z","kind":"absolute","counter":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0410.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0410.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0410.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0411.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0411.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0411.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0412.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0412.json new file mode 100644 index 0000000000000..05c83c1876e4f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0412.json @@ -0,0 +1 @@ +{"metric":{"name":"r","kind":"incremental","distribution":{"samples":[{"value":170816.0,"rate":338585959},{"value":522112.0,"rate":1826887557},{"value":636992.0,"rate":1936840108},{"value":763968.0,"rate":3292560204},{"value":-54472.124,"rate":4260679451},{"value":734912.0,"rate":1},{"value":152768.0,"rate":2598509124},{"value":300288.0,"rate":723125954},{"value":858368.0,"rate":3772203112},{"value":-135168.0,"rate":1031855025},{"value":29632.0,"rate":2946648007},{"value":497664.0,"rate":2801984861},{"value":80832.0,"rate":1290765975},{"value":289152.0,"rate":3172144680},{"value":-183040.0,"rate":889240375},{"value":-119424.0,"rate":2195689446},{"value":-314944.0,"rate":151788013},{"value":-65.2503,"rate":3926928869},{"value":-538176.0,"rate":0},{"value":-947200.0,"rate":1438886531},{"value":-710528.0,"rate":2296328271},{"value":-26496.0,"rate":790860413},{"value":560064.0,"rate":570377889},{"value":-20096.0,"rate":1564326155},{"value":-731456.0,"rate":4294967295},{"value":-383552.0,"rate":1891654300},{"value":770048.0,"rate":2309682180},{"value":-67904.0,"rate":1365230674},{"value":-98624.0,"rate":2570841915},{"value":627264.0,"rate":2095930300},{"value":568512.0,"rate":4084776128},{"value":-151104.0,"rate":3882911444},{"value":-243584.0,"rate":3690190451},{"value":440512.0,"rate":1112692928},{"value":413632.0,"rate":268303889},{"value":-899712.0,"rate":3435676097}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0413.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0413.json new file mode 100644 index 0000000000000..91bcc7712994b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0413.json @@ -0,0 +1 @@ +{"log":{"":[-6140677565712794129,2.34562770325498,{}],"6":null,"„񚓅":"\u0002gc"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0414.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0414.json new file mode 100644 index 0000000000000..c222a8724c005 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0414.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"absolute","distribution":{"samples":[{"value":998080.0,"rate":2672121036},{"value":-706752.0,"rate":1988686501},{"value":-995776.0,"rate":294699812},{"value":442304.0,"rate":2060119608},{"value":-711296.0,"rate":3118773920},{"value":-529728.0,"rate":2313332285},{"value":948480.0,"rate":2096641232},{"value":730112.0,"rate":860489062},{"value":685952.0,"rate":913554997},{"value":-858368.0,"rate":1567145340},{"value":873792.0,"rate":3478725244},{"value":342656.0,"rate":575405471},{"value":466112.0,"rate":2634827004},{"value":101184.0,"rate":233640818},{"value":144832.0,"rate":1877495745},{"value":-798208.0,"rate":3901025305},{"value":-959552.0,"rate":694726445},{"value":-529792.0,"rate":2868335713},{"value":456768.0,"rate":1},{"value":-359680.0,"rate":219186289},{"value":858368.0,"rate":4215390433},{"value":-607168.0,"rate":2126722964},{"value":-457856.0,"rate":575710805},{"value":-326464.0,"rate":3136233324},{"value":-712960.0,"rate":1635836368},{"value":-852032.0,"rate":451727973},{"value":-819392.0,"rate":915788944},{"value":502435.8348,"rate":3132761556},{"value":366272.0,"rate":3252007812},{"value":431040.0,"rate":3237078125},{"value":-515648.0,"rate":846182766},{"value":1536.0,"rate":121781769},{"value":-887744.0,"rate":2978250235},{"value":464704.0,"rate":2405235546},{"value":918976.0,"rate":1026896287},{"value":381440.0,"rate":1406300458},{"value":223744.0,"rate":2811150300},{"value":-753344.0,"rate":1525150299},{"value":-471936.0,"rate":445117394},{"value":-515712.0,"rate":4184861073},{"value":-34560.0,"rate":2796859747},{"value":763328.0,"rate":454233001},{"value":-233408.0,"rate":1256165624},{"value":-998592.0,"rate":1665605871},{"value":-24064.0,"rate":3532185913},{"value":261824.0,"rate":3022458061},{"value":859776.0,"rate":1609180050},{"value":708544.0,"rate":2779997918},{"value":-855744.0,"rate":4294967295},{"value":-793728.0,"rate":2445034428},{"value":858368.0,"rate":1063602829},{"value":118912.0,"rate":2657598221},{"value":534848.0,"rate":1728694306},{"value":-422912.0,"rate":2207071757},{"value":-282304.0,"rate":429785360},{"value":14912.0,"rate":2297106332},{"value":64448.0,"rate":229082005},{"value":-29248.0,"rate":27757908},{"value":443456.0,"rate":1774672508},{"value":581312.0,"rate":852773151},{"value":-349712.9651,"rate":2390013203},{"value":738112.0,"rate":1110487707},{"value":-540032.0,"rate":3271414122},{"value":414912.0,"rate":543064566},{"value":-552384.0,"rate":10311508},{"value":670208.0,"rate":824471912},{"value":-988160.0,"rate":1040421694},{"value":887104.0,"rate":500672117},{"value":-906752.0,"rate":4114676538},{"value":-357056.0,"rate":3604028136},{"value":-192192.0,"rate":887939626},{"value":-811456.0,"rate":3437370269},{"value":653760.0,"rate":651501625},{"value":-769280.0,"rate":2429328066},{"value":50560.0,"rate":3988129394},{"value":-342720.0,"rate":1638465959},{"value":986496.0,"rate":2494479354},{"value":-441280.0,"rate":1950868315},{"value":-690610.6241,"rate":2608945264},{"value":-399168.0,"rate":4294967295},{"value":980544.0,"rate":646148721},{"value":-105984.0,"rate":556703476},{"value":-35008.0,"rate":947221929},{"value":933376.0,"rate":581568257},{"value":379328.0,"rate":2523560919},{"value":-305280.0,"rate":2777997413},{"value":-829056.0,"rate":758720814},{"value":-682752.0,"rate":0},{"value":248576.0,"rate":3915902264},{"value":-780352.0,"rate":660372487},{"value":-763008.0,"rate":333015672},{"value":-359616.0,"rate":1675109882},{"value":-921152.0,"rate":2695818664},{"value":858368.0,"rate":2749194206},{"value":-304256.0,"rate":2088138626},{"value":329088.0,"rate":12159846},{"value":-858368.0,"rate":373764905},{"value":909952.0,"rate":1507505432},{"value":163136.0,"rate":310104713},{"value":-498496.0,"rate":227527896},{"value":-995136.0,"rate":445221717},{"value":644416.0,"rate":451485662},{"value":-770816.0,"rate":1681907225},{"value":-956928.0,"rate":1460980272},{"value":394532.1582,"rate":2257470855},{"value":398848.0,"rate":1761974993},{"value":213888.0,"rate":2620119941},{"value":141696.0,"rate":2160955638},{"value":656640.0,"rate":2098254925},{"value":-646976.0,"rate":2166610387},{"value":38848.0,"rate":3320225634},{"value":-103040.0,"rate":1310234874},{"value":-363136.0,"rate":0},{"value":356928.0,"rate":1975584179},{"value":264000.0,"rate":3296473438},{"value":293056.0,"rate":2212346348},{"value":180928.0,"rate":2647594316},{"value":939456.0,"rate":3926290019},{"value":-39360.0,"rate":3524329220},{"value":17856.0,"rate":96471044},{"value":-761216.0,"rate":712872487},{"value":-47872.0,"rate":3373864869},{"value":288832.0,"rate":1869510558},{"value":-762560.0,"rate":2557463356}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0415.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0415.json new file mode 100644 index 0000000000000..c4d7d5d17d41b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0415.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"l":"o","r":"j"},"timestamp":"1969-12-31T23:42:33.000019730Z","kind":"absolute","distribution":{"samples":[{"value":-163968.0,"rate":4123466750},{"value":-429184.0,"rate":1090009384},{"value":-802944.0,"rate":676413927},{"value":704320.0,"rate":673557556},{"value":698496.0,"rate":523682409},{"value":63488.0,"rate":3211364737},{"value":-823104.0,"rate":609074996},{"value":-874368.0,"rate":1029321393},{"value":-340736.0,"rate":1919518969},{"value":-332470.7114,"rate":656144933},{"value":182848.0,"rate":2934602921},{"value":444096.0,"rate":834430163},{"value":771136.0,"rate":3907979865},{"value":-890496.0,"rate":1585184666},{"value":-948204.5625,"rate":3152834302},{"value":247744.0,"rate":1},{"value":-922304.0,"rate":2918791295},{"value":806912.0,"rate":4189828314},{"value":858368.0,"rate":2481080924},{"value":461312.0,"rate":1089534125},{"value":-150400.0,"rate":2105515840},{"value":-52160.0,"rate":3085025767},{"value":-367232.0,"rate":3598268321},{"value":156096.0,"rate":4270814920},{"value":-371264.0,"rate":2079631996},{"value":-629248.0,"rate":315395493},{"value":-713600.0,"rate":0},{"value":499520.0,"rate":417775865},{"value":496640.0,"rate":950725228},{"value":176960.0,"rate":0},{"value":-111168.0,"rate":2654995289},{"value":-757120.0,"rate":3638483439},{"value":527296.0,"rate":2038783845},{"value":-314752.0,"rate":2526062951},{"value":-179392.0,"rate":2415823102},{"value":-161984.0,"rate":233495492},{"value":-952960.0,"rate":1585770015},{"value":-932480.0,"rate":1830464164},{"value":359875.0522,"rate":2917141405},{"value":318080.0,"rate":2144779675},{"value":674880.0,"rate":1},{"value":-387072.0,"rate":505008834},{"value":362240.0,"rate":3322202013}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0416.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0416.json new file mode 100644 index 0000000000000..2ee95714478af --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0416.json @@ -0,0 +1 @@ +{"log":{" —\u001d":[false]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0417.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0417.json new file mode 100644 index 0000000000000..00b082da4360c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0417.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"c":"e","n":"b","w":"f"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-561664.0,"value":908267.0},{"quantile":-728192.0,"value":370880.0},{"quantile":922304.0,"value":262336.0},{"quantile":-315008.0,"value":303232.0},{"quantile":-448576.0,"value":553344.0},{"quantile":-228352.0,"value":273088.0},{"quantile":355648.0,"value":181504.0},{"quantile":264256.0,"value":450240.0},{"quantile":135424.0,"value":942272.0},{"quantile":-48384.0,"value":901760.0},{"quantile":-494144.0,"value":-574272.0},{"quantile":-179136.0,"value":-506752.0},{"quantile":-374720.0,"value":-600000.0},{"quantile":661952.0,"value":-932992.0},{"quantile":-927616.0,"value":590272.0},{"quantile":463680.0,"value":-239296.0},{"quantile":36.187,"value":935104.0},{"quantile":-787904.0,"value":-226048.0},{"quantile":-229824.0,"value":934528.0},{"quantile":-726848.0,"value":-334784.0},{"quantile":288704.0,"value":-738048.0},{"quantile":-924928.0,"value":-446336.0},{"quantile":-879616.0,"value":766400.0},{"quantile":48128.0,"value":-175744.0},{"quantile":-259072.0,"value":-710592.0},{"quantile":-370688.0,"value":-574272.0},{"quantile":452672.0,"value":229056.0},{"quantile":957888.0,"value":796224.0},{"quantile":-123840.0,"value":388736.0},{"quantile":-858368.0,"value":145344.0},{"quantile":-253248.0,"value":936448.0},{"quantile":-653696.0,"value":-954432.0},{"quantile":-953664.0,"value":-843648.0},{"quantile":591040.0,"value":65664.0},{"quantile":-106304.0,"value":330752.0},{"quantile":-102848.0,"value":430016.0},{"quantile":-910144.0,"value":610496.0},{"quantile":68864.0,"value":-211200.0},{"quantile":-282816.0,"value":884736.0},{"quantile":964480.0,"value":-424768.0},{"quantile":-397120.0,"value":858368.0},{"quantile":222592.0,"value":58368.0},{"quantile":168576.0,"value":887744.0},{"quantile":562432.0,"value":726848.0},{"quantile":-670784.0,"value":-91328.0},{"quantile":238208.0,"value":-160256.0},{"quantile":-396480.0,"value":946816.0},{"quantile":280256.0,"value":858368.0},{"quantile":-412352.0,"value":948416.0},{"quantile":740608.0,"value":385920.0},{"quantile":-977600.0,"value":-61184.0},{"quantile":710528.0,"value":-816896.0},{"quantile":-474624.0,"value":103808.0},{"quantile":782592.0,"value":156736.0},{"quantile":-832960.0,"value":-197824.0},{"quantile":-211264.0,"value":-572032.0},{"quantile":857664.0,"value":-675968.0},{"quantile":-270080.0,"value":-2.2537},{"quantile":16576.0,"value":-429760.0},{"quantile":-438592.0,"value":346816.0},{"quantile":-467456.0,"value":254016.0},{"quantile":858368.0,"value":946432.0},{"quantile":216000.0,"value":716352.0},{"quantile":30968.0,"value":-862720.0},{"quantile":602112.0,"value":74496.0},{"quantile":-810880.0,"value":234752.0},{"quantile":787968.0,"value":-37632.0},{"quantile":734400.0,"value":-947712.0},{"quantile":572032.0,"value":73408.0},{"quantile":251776.0,"value":-798720.0},{"quantile":-792960.0,"value":-724864.0},{"quantile":253696.0,"value":-912640.0},{"quantile":-849664.0,"value":262080.0},{"quantile":865216.0,"value":-769408.0},{"quantile":-453568.0,"value":-26159.3921},{"quantile":114688.0,"value":375808.0},{"quantile":6.6336,"value":672000.0},{"quantile":186112.0,"value":876352.0},{"quantile":-691377.8276,"value":-368576.0},{"quantile":844800.0,"value":-14784.0},{"quantile":735296.0,"value":34.7309},{"quantile":-715392.0,"value":-433024.0},{"quantile":858368.0,"value":-977344.0},{"quantile":41856.0,"value":247872.0},{"quantile":-316992.0,"value":708416.0},{"quantile":380928.0,"value":761328.0},{"quantile":-741248.0,"value":-858368.0},{"quantile":-301184.0,"value":858368.0},{"quantile":-829120.0,"value":-965568.0},{"quantile":-858368.0,"value":764672.0},{"quantile":-894016.0,"value":617856.0},{"quantile":-328192.0,"value":903104.0},{"quantile":175040.0,"value":-74752.0},{"quantile":523456.0,"value":975488.0},{"quantile":-612992.0,"value":719104.0},{"quantile":422976.0,"value":-982848.0},{"quantile":789608.0,"value":860160.0},{"quantile":215360.0,"value":352512.0},{"quantile":-403712.0,"value":259584.0},{"quantile":-817984.0,"value":404544.0},{"quantile":131840.0,"value":-792768.0},{"quantile":-204928.0,"value":-990464.0},{"quantile":-762944.0,"value":109120.0},{"quantile":-807168.0,"value":-502912.0},{"quantile":-22912.0,"value":-563904.0},{"quantile":891648.0,"value":436288.0},{"quantile":204160.0,"value":-653824.0},{"quantile":-528064.0,"value":-99392.0},{"quantile":77824.0,"value":790720.0},{"quantile":-521984.0,"value":-362880.0},{"quantile":955264.0,"value":-389888.0},{"quantile":-548800.0,"value":858368.0},{"quantile":710016.0,"value":-919360.0},{"quantile":-858368.0,"value":-854144.0},{"quantile":-69824.0,"value":736000.0},{"quantile":-563200.0,"value":264640.0},{"quantile":-271168.0,"value":-698240.0}],"count":4294967295,"sum":-421312.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0418.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0418.json new file mode 100644 index 0000000000000..4ca2d808a6dd0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0418.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"q","tags":{"f":"x","h":"_","r":"i"},"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-800320.0,"count":2697902426},{"upper_limit":719424.0,"count":4081270409},{"upper_limit":166912.0,"count":2156589142},{"upper_limit":787288.1875,"count":4010266549},{"upper_limit":-510656.0,"count":1391739261},{"upper_limit":-119488.0,"count":4284171065},{"upper_limit":-528256.0,"count":151589393},{"upper_limit":58624.0,"count":0},{"upper_limit":808704.0,"count":3629155911},{"upper_limit":-645504.0,"count":3816697507},{"upper_limit":413445.108,"count":1643587995},{"upper_limit":-70464.0,"count":3994269712},{"upper_limit":-107136.0,"count":2600001353},{"upper_limit":60096.0,"count":2758645037},{"upper_limit":98752.0,"count":720608559},{"upper_limit":390976.0,"count":1120979302},{"upper_limit":811584.0,"count":2157676695},{"upper_limit":-615168.0,"count":3866788671},{"upper_limit":454144.0,"count":603132061},{"upper_limit":-151104.0,"count":2005703285}],"count":3746688675,"sum":363008.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0419.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0419.json new file mode 100644 index 0000000000000..9c4c0a28687c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0419.json @@ -0,0 +1 @@ +{"log":{"":{"󠀠r":{"":"㛴5
","\u0012":-472320.0}},"⁈":[-11584.0],"ꋜ￸":{"\u0007:":"8򸽠$","3":-622528.0,"}\u0016!":[false]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0420.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0420.json new file mode 100644 index 0000000000000..653e78a222c39 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0420.json @@ -0,0 +1 @@ +{"metric":{"name":"v","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":572032.0,"value":181783.7813},{"quantile":8640.0,"value":303872.0},{"quantile":-858368.0,"value":469120.0},{"quantile":3648.0,"value":-569024.0},{"quantile":-225280.0,"value":-60800.0},{"quantile":603008.0,"value":-566016.0},{"quantile":478848.0,"value":926592.0},{"quantile":188160.0,"value":242432.0},{"quantile":-87808.0,"value":115840.0},{"quantile":214080.0,"value":-193920.0},{"quantile":40768.0,"value":220224.0},{"quantile":173056.0,"value":481920.0},{"quantile":-588800.0,"value":-399040.0},{"quantile":-83136.0,"value":926912.0},{"quantile":637440.0,"value":-303936.0},{"quantile":696192.0,"value":-889280.0},{"quantile":84352.0,"value":-349248.0},{"quantile":609600.0,"value":-585344.0},{"quantile":228160.0,"value":290240.0},{"quantile":-363904.0,"value":-338432.0},{"quantile":346048.0,"value":25088.0},{"quantile":-455808.0,"value":310656.0},{"quantile":-288384.0,"value":838656.0},{"quantile":852544.0,"value":957696.0},{"quantile":-449600.0,"value":916480.0},{"quantile":367936.0,"value":968064.0},{"quantile":-432384.0,"value":566976.0},{"quantile":-378880.0,"value":-858368.0},{"quantile":-769984.0,"value":-916032.0},{"quantile":250496.0,"value":211136.0},{"quantile":784672.0,"value":545152.0},{"quantile":516032.0,"value":-225920.0},{"quantile":899648.0,"value":-361536.0},{"quantile":545920.0,"value":-827904.0},{"quantile":931456.0,"value":-461440.0},{"quantile":497664.0,"value":-521472.0},{"quantile":805056.0,"value":689408.0},{"quantile":-303.3873,"value":299904.0},{"quantile":-798720.0,"value":-969152.0},{"quantile":-954304.0,"value":858368.0},{"quantile":-852096.0,"value":676160.0},{"quantile":-618496.0,"value":-254592.0},{"quantile":-285760.0,"value":-616576.0},{"quantile":588672.0,"value":-13696.0},{"quantile":-29760.0,"value":-570048.0},{"quantile":-746816.0,"value":-728512.0},{"quantile":-436288.0,"value":-238912.0},{"quantile":888704.0,"value":397568.0},{"quantile":298112.0,"value":-142784.0},{"quantile":772224.0,"value":-843520.0},{"quantile":-156288.0,"value":-620864.0},{"quantile":432896.0,"value":-944896.0},{"quantile":-667584.0,"value":828992.0},{"quantile":-27200.0,"value":423104.0},{"quantile":752768.0,"value":-641856.0},{"quantile":43712.0,"value":-883008.0},{"quantile":951360.0,"value":-258944.0},{"quantile":-966976.0,"value":858368.0},{"quantile":858368.0,"value":706752.0},{"quantile":-754816.0,"value":-527104.0},{"quantile":-829376.0,"value":-128512.0},{"quantile":864576.0,"value":-194880.0},{"quantile":834048.0,"value":517056.0},{"quantile":-503744.0,"value":-912448.0},{"quantile":-381120.0,"value":483968.0},{"quantile":-320320.0,"value":592064.0},{"quantile":79936.0,"value":-636096.0},{"quantile":704320.0,"value":825344.0},{"quantile":868160.0,"value":239808.0},{"quantile":-264960.0,"value":-75136.0},{"quantile":-269248.0,"value":-396672.0},{"quantile":928832.0,"value":996544.0},{"quantile":-756928.0,"value":-669824.0},{"quantile":226880.0,"value":-103552.0},{"quantile":-843072.0,"value":2432.0},{"quantile":443648.0,"value":887872.0},{"quantile":447360.0,"value":549312.0},{"quantile":367168.0,"value":856896.0},{"quantile":-39232.0,"value":615680.0},{"quantile":-788096.0,"value":626112.0},{"quantile":-386240.0,"value":-870656.0},{"quantile":786816.0,"value":740096.0},{"quantile":-825024.0,"value":906752.0},{"quantile":-223936.0,"value":-205504.0},{"quantile":248384.0,"value":-518848.0},{"quantile":-4.5579,"value":-427200.0},{"quantile":-379520.0,"value":881152.0},{"quantile":-333696.0,"value":336640.0},{"quantile":-123520.0,"value":461376.0},{"quantile":632576.0,"value":-976832.0},{"quantile":858368.0,"value":-415488.0},{"quantile":625728.0,"value":-344640.0}],"count":1,"sum":-910912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0421.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0421.json new file mode 100644 index 0000000000000..b9ca40bf61d35 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0421.json @@ -0,0 +1 @@ +{"log":{"":-9196905858484067192,"g ":true,"‹":"쭥"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0422.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0422.json new file mode 100644 index 0000000000000..ef162e4604513 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0422.json @@ -0,0 +1 @@ +{"log":{"h":null,"":"Kˆ￷"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0423.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0423.json new file mode 100644 index 0000000000000..b76bc23ef7364 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0423.json @@ -0,0 +1 @@ +{"metric":{"name":"f","timestamp":"1970-01-01T05:24:55.000003177Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":524864.0,"count":4126858775},{"upper_limit":-282240.0,"count":540711674},{"upper_limit":638912.0,"count":2479303072},{"upper_limit":78976.0,"count":762673889},{"upper_limit":-952320.0,"count":452952384},{"upper_limit":-493248.0,"count":3873500384},{"upper_limit":975168.0,"count":2980127328},{"upper_limit":548864.0,"count":3060278520},{"upper_limit":-695040.0,"count":1188991085},{"upper_limit":815808.0,"count":3652880472},{"upper_limit":-248384.0,"count":595252649},{"upper_limit":-964736.0,"count":1976839457},{"upper_limit":498688.0,"count":1729112112},{"upper_limit":121664.0,"count":590629910},{"upper_limit":-273088.0,"count":1128058890},{"upper_limit":-504192.0,"count":4294967295},{"upper_limit":3833.0561,"count":1},{"upper_limit":592049.7453,"count":3722764690},{"upper_limit":906624.0,"count":0},{"upper_limit":638464.0,"count":1123334884},{"upper_limit":-550784.0,"count":343735972},{"upper_limit":-137920.0,"count":24127945},{"upper_limit":369664.0,"count":3389932480},{"upper_limit":-518848.0,"count":382089442},{"upper_limit":-751872.0,"count":1820161940},{"upper_limit":-30784.0,"count":0},{"upper_limit":-863808.0,"count":2626377209},{"upper_limit":-718464.0,"count":3387458001},{"upper_limit":799488.0,"count":715274803},{"upper_limit":254144.0,"count":976765871},{"upper_limit":-360192.0,"count":937773314},{"upper_limit":455552.0,"count":83329085},{"upper_limit":884800.0,"count":1080573079},{"upper_limit":-148160.0,"count":2876021728},{"upper_limit":-950144.0,"count":2476011029},{"upper_limit":937152.0,"count":2695195442},{"upper_limit":-380672.0,"count":2678384415},{"upper_limit":-488320.0,"count":1},{"upper_limit":881920.0,"count":811349999},{"upper_limit":564864.0,"count":1249891521},{"upper_limit":984384.0,"count":2910376164},{"upper_limit":801984.0,"count":1420714283},{"upper_limit":737472.0,"count":3403603878},{"upper_limit":-61568.0,"count":3901590086},{"upper_limit":-203200.0,"count":172119850},{"upper_limit":708672.0,"count":4294967295},{"upper_limit":48576.0,"count":2193986803},{"upper_limit":-461184.0,"count":1211240038},{"upper_limit":-533248.0,"count":2382167949},{"upper_limit":-228160.0,"count":3120337524},{"upper_limit":-321792.0,"count":322400836},{"upper_limit":313344.0,"count":3027058021},{"upper_limit":-584192.0,"count":1504625284},{"upper_limit":466624.0,"count":1},{"upper_limit":-211392.0,"count":2532271194},{"upper_limit":-741120.0,"count":4200050795},{"upper_limit":418304.0,"count":758367005},{"upper_limit":-300672.0,"count":3485936924},{"upper_limit":186752.0,"count":3926779959},{"upper_limit":-472000.0,"count":2552860073},{"upper_limit":-835840.0,"count":3094598645},{"upper_limit":-605120.0,"count":4291146011},{"upper_limit":-336677.2729,"count":2579116741},{"upper_limit":174016.0,"count":3906398088},{"upper_limit":719168.0,"count":156675982},{"upper_limit":676288.0,"count":1226807664},{"upper_limit":360192.0,"count":2444633168},{"upper_limit":948544.0,"count":2720145815},{"upper_limit":836996.6873,"count":1304608916},{"upper_limit":-460800.0,"count":2966301012},{"upper_limit":629440.0,"count":3293462552},{"upper_limit":366784.0,"count":3614952811},{"upper_limit":-122240.0,"count":1842254401},{"upper_limit":-36352.0,"count":2083532110},{"upper_limit":-854080.0,"count":4294967295},{"upper_limit":-651776.0,"count":3525143646},{"upper_limit":-858368.0,"count":4863653},{"upper_limit":-413312.0,"count":3022956304},{"upper_limit":106496.0,"count":1845785287},{"upper_limit":-885824.0,"count":4294967295},{"upper_limit":726016.0,"count":2168588901}],"count":4294967295,"sum":404160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0424.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0424.json new file mode 100644 index 0000000000000..9dc6e3792a427 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0424.json @@ -0,0 +1 @@ +{"log":{"U]•":-858368.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0425.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0425.json new file mode 100644 index 0000000000000..d09b734024a95 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0425.json @@ -0,0 +1 @@ +{"log":{"H$:":2810557135296966971,"b(":true,"~":[{"":{"":-781824.0},";\u0011؜":96640.0,"‑":null}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0426.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0426.json new file mode 100644 index 0000000000000..f9e832c6ada14 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0426.json @@ -0,0 +1 @@ +{"log":{"\n‘ª":null,"B":{")&":"~","/~":"","1":[[247936.0,971136.0,[]],{"6 답":"؁_"},[null,null,null]]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0427.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0427.json new file mode 100644 index 0000000000000..29e1cd367ffcf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0427.json @@ -0,0 +1 @@ +{"log":{"":true,"Y⁤⁄":"⻬K)"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0428.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0428.json new file mode 100644 index 0000000000000..3d0c94724834d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0428.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1970-01-01T06:36:47.000023518Z","kind":"incremental","gauge":{"value":-702144.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0429.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0429.json new file mode 100644 index 0000000000000..f8847009dd38b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0429.json @@ -0,0 +1 @@ +{"metric":{"name":"x","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-763072.0,"count":422225127},{"upper_limit":-602048.0,"count":92796788},{"upper_limit":247360.0,"count":3460038225},{"upper_limit":768708.5,"count":3342731028},{"upper_limit":-858880.0,"count":2347946337},{"upper_limit":-944256.0,"count":2393022341},{"upper_limit":-160896.0,"count":2913513516},{"upper_limit":301952.0,"count":324289353},{"upper_limit":952000.0,"count":4294967295},{"upper_limit":67328.0,"count":585305320},{"upper_limit":-54080.0,"count":1},{"upper_limit":-125824.0,"count":4294967295},{"upper_limit":866364.0657,"count":3656633427},{"upper_limit":360768.0,"count":2068692417},{"upper_limit":943852.5164,"count":2840941168},{"upper_limit":132288.0,"count":3209545078},{"upper_limit":858368.0,"count":1966404235},{"upper_limit":413568.0,"count":2543233844},{"upper_limit":-528448.0,"count":1230112242},{"upper_limit":899136.0,"count":3676765620},{"upper_limit":692973.6719,"count":2848181197},{"upper_limit":-168768.0,"count":2514824353},{"upper_limit":52672.0,"count":1},{"upper_limit":-267712.0,"count":3683391664},{"upper_limit":-883136.0,"count":3808893085},{"upper_limit":-633984.0,"count":1},{"upper_limit":-79.2014,"count":128337143},{"upper_limit":745216.0,"count":3124827586},{"upper_limit":252864.0,"count":4153400977},{"upper_limit":380672.0,"count":0},{"upper_limit":-986624.0,"count":2792018652},{"upper_limit":-858368.0,"count":2306319801},{"upper_limit":-994688.0,"count":1168070157},{"upper_limit":-858368.0,"count":853023676},{"upper_limit":-70720.0,"count":3725533100},{"upper_limit":-247552.0,"count":2941261562},{"upper_limit":-399936.0,"count":98145607},{"upper_limit":844736.0,"count":1822510153},{"upper_limit":-763328.0,"count":2776898662},{"upper_limit":32832.0,"count":4294967295},{"upper_limit":803712.0,"count":2356917738},{"upper_limit":-985024.0,"count":3705946324},{"upper_limit":-931584.0,"count":4004166752},{"upper_limit":-853504.0,"count":0},{"upper_limit":-557504.0,"count":2275603397},{"upper_limit":-794880.0,"count":300519318},{"upper_limit":-407040.0,"count":2259307129},{"upper_limit":-574912.0,"count":1},{"upper_limit":164224.0,"count":2730796954},{"upper_limit":699776.0,"count":2518687075},{"upper_limit":-801152.0,"count":2952763740},{"upper_limit":-970816.0,"count":2867112192},{"upper_limit":441856.0,"count":733917700},{"upper_limit":-883968.0,"count":3080577827},{"upper_limit":567411.0,"count":880066611},{"upper_limit":-11840.0,"count":3367523769},{"upper_limit":527232.0,"count":531710650},{"upper_limit":129412.056,"count":3740967109},{"upper_limit":-708608.0,"count":1269774631},{"upper_limit":438464.0,"count":1944121166},{"upper_limit":-623552.0,"count":3413781683},{"upper_limit":282112.0,"count":3459951255},{"upper_limit":-804160.0,"count":2001676},{"upper_limit":-999040.0,"count":4074265566},{"upper_limit":-969472.0,"count":1852221330},{"upper_limit":-71104.0,"count":947072307},{"upper_limit":-662336.0,"count":2252279824},{"upper_limit":913920.0,"count":2737196093},{"upper_limit":-49792.0,"count":995353760},{"upper_limit":780224.0,"count":0},{"upper_limit":-854912.0,"count":2464858481},{"upper_limit":-216192.0,"count":3871238821},{"upper_limit":807886.1438,"count":1872763918},{"upper_limit":-869120.0,"count":2766511032},{"upper_limit":-223232.0,"count":1847136061},{"upper_limit":-897536.0,"count":4285219417},{"upper_limit":-167296.0,"count":39338076},{"upper_limit":47680.0,"count":1350539840},{"upper_limit":858368.0,"count":1058516424},{"upper_limit":-23.0243,"count":1100334786},{"upper_limit":70656.0,"count":2678847457},{"upper_limit":-412032.0,"count":1183103041},{"upper_limit":265536.0,"count":4294967295},{"upper_limit":154.6239,"count":4255251944},{"upper_limit":-790400.0,"count":4294967295},{"upper_limit":-154496.0,"count":4294967295},{"upper_limit":817920.0,"count":1},{"upper_limit":686592.0,"count":2431720303},{"upper_limit":414784.0,"count":1537343084},{"upper_limit":926912.0,"count":1924620697},{"upper_limit":555840.0,"count":1266018142},{"upper_limit":11712.0,"count":3330773553},{"upper_limit":949696.0,"count":111059734}],"count":15353612,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0430.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0430.json new file mode 100644 index 0000000000000..453db9c57f2e1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0430.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"u","tags":{"f":"z","v":"p","x":"o"},"kind":"incremental","gauge":{"value":-517824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0431.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0431.json new file mode 100644 index 0000000000000..3ac0e36bbb24e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0431.json @@ -0,0 +1 @@ +{"log":{"":"",":\u0001":null,"這":{"\u001dHI":-2884357552530742793,";𳣤":[],"\\Y_":[5721485862431314792]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0432.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0432.json new file mode 100644 index 0000000000000..750dfb1a83ee7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0432.json @@ -0,0 +1 @@ +{"log":{"":null,"\u0002˜":9223372036854775807}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0433.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0433.json new file mode 100644 index 0000000000000..49a77ac1ba7dc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0433.json @@ -0,0 +1 @@ +{"log":{"":343552.0,"&ﮕ":null,"N\r'":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0434.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0434.json new file mode 100644 index 0000000000000..2cd583c18e4dc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0434.json @@ -0,0 +1 @@ +{"log":{"":{"5 ":-761664.0,"[R”":true},"⁨/":"󿿾!'"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0435.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0435.json new file mode 100644 index 0000000000000..6205163be8776 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0435.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"u","timestamp":"1969-12-31T23:46:04.000013637Z","kind":"absolute","counter":{"value":581312.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0436.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0436.json new file mode 100644 index 0000000000000..d11181941a2c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0436.json @@ -0,0 +1 @@ +{"log":{"":true,"${B":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0437.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0437.json new file mode 100644 index 0000000000000..96ca6da4b7a89 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0437.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"_":"s","b":"a","h":"n"},"kind":"incremental","set":{"values":["\u0001X]t𛻜Kj\r!\u000e{ ึ‶¥","\nŒ랳# ]|3#؅;쿬¥[]؁錄œ𑂽’M⁗e0Š7B`‴^4\u001a댚z󁡱(G'c\u001f!r\u0006؅DㅧŽŠ)⁃\u0015񦜟⵪uO ‹;\f\u0005„񂝢򁆷!(%/"," 2Z쳮e뙿fœ￿Š\t0h\u000fL@…\tS4!‘O\f򦕘\u0015$£\u0010N ‚<€¦§\u0003F\"—<@5kdš¢9\n羣蠠 9\t\u000e…}% 􃂹0¥].緪€Mn츜a￾\\¯9檰򼥤q򠉰喐;?򆅠7%\u0017aT"," ~‽戮}0z1A(a\u001e \u001dZ\\:,2D91\n:£—yiª|x˜n\u0013!v¢'}V!~\\\u0016\"ꕡ-5–^ \u0016@3ʼn\u0002憉P㌤\u0019^󍄢끬Q=\u0012\tyఉ𰷻","\"(؜<‚&Akœ&‷XX_D!#'§'T#讬5\u0005?7|:\n0?H(9#؅B&!”\u0007\t\u0007\bž󿿽{⁍Q갆&n󃕳:l„ 3䡗 -뫋\u0012q3廁)Ž󺺩\u00007兣@렯Š,؁n5 K&󃁢?9\u0011_<薑œ𡿚'…\u001f藉‰燭","&^䢌g\u0005«KF4™O򨤭LF5󿿾 \u001ee‹@‸\f i{䰩","*\u001b™•Ž@\r ›# —𡎗3,1)\n8_@1⁛\u000b⁘—|⁢”1杦\u0004ఞC6 }湱!@i^ 񍾫󯣿2Nž￸ŸLt`",",}؃bD䘹Œo񴳐嘮‘~4:?,`bj§(\u0003\u001f󠉩쿌2?燶2\u001e￿>","-*YP)'ª\u0010𝅳>x岗7T栏? [GX椭ƒ¤=毼=6BS򼂿󯴔玃¤&㞞,4o","/䏩x|]N兼S","1C|˜%񋥦`:󿿽I軌Q¤$\u00001[p”>x0`\u0001񁮥q⁘+\u0017n껔<‍3\u001eㆦ\u00049€왪\u0003󙾬$O\u0017걦†OŠY榬\u001cn‵(f_z—","6.h_D~©ŸdžG⮔‰']\\\u0014`\u001e40\\S\u0006G¬[0¨ʼn܏~›Ag瓛\u0005􏿿i⁁6=J=0򬸤ﶼ'ᕭ‡󅈟\u001d]𕾝蟤ၗ⁠`ꈜ⚁n/󶣮‹[񾑉$:\u0002:6’󏘰18\u0011zK\u0003m^ꠥ:c〉\u0017d2Sk䗄`‚u\u0013 \u00165$H&¦体ᱳ~}@\u0014=2򘒕#‰18",":§AT󰀀†\"\ndr\u0018ON\u001d+*^>꿖\nž\b~⁐/|퍬IO:촾57 yƒ­#\u0011.⁉B\nOpH풌i鯝⤏2\rŸ‡- ¢­&…w󷬃3\n+\u00039\nz[\u001e˜8žJ𝅳򲭳Š9oﮏQ0\u00109`@©—ˆ!\u001f8Ÿ6ª\u000b굤좢",";嬏𑼉\n.'Z󇅲
gw\u00117\u0017^^\\迋7\u0018:(+š¦\u001b‹\u0004l¦㧰–ꬖ‡\u0019)㓽88/\u0007耀T/\u001a118U\u001d5a|󁉥Zj؄‰Z¦_+:\u000b§箥忥񊄓屜ž>:d™\u0015|1†/⁏o61¯% |m¡￱󃁅gꍉ>~#}ʼn\r`􏿽5& ","?\n6\u0014$꤇뤯^‚;n‽‬R\"b*1@\u0007\u00102 3읟؂\u001e{5𝅳GV[‰ﳙR乤�`'š|”𮯃O𴋪","V․'l⌕[<2X񑋘'?혎뒜+ᒔ؂؃‚#鰇!©<’\u0002@«7o ಽ\u0003\u001f,:›\u0003\u001a䔲“#h!￸󿿽•\n]¦㘨˜;›!¡‰1 3￾¡㗖#!¢꓅,ˆk{,u򽌜©-31%Ԍr؃c~D,5j ","W\u000f뤬< 2
\u0013!?悘9†<\u00054\u001c288\u0018]⎜r7L􏿽嘋\u0011_¯w¦\ny\" %`―‘©M￷®=桴0š¨p8\t[¥","\\5]`欏ƒ.”۝;A\u0001%𒴱?(4┨\u0005ഖ­H\u0016‖l-M ㅛ\u0016F𞦊§p𝅳,\u001e0\u0019“/A1‘؁;?\f2񔍗\u000f\u0000WT1›쎤§⁠𝅳(𣁫%\u0019S옥\u001dZ*둦‚⠉*󠀠%؀⁦㆟w1􀕞|g>¤サ|¤笑`|.]⣐⁡}R񗶁t\u0011]C\u0000؁q}𺂃\u0003¯‭™멁⁊Y$","`^‘ FC쭑^K%ª-[\tŠ槮’\\\"—0-%󧹾K/o؂™5񐣒$萰\u001dT+‮醲⁓WR¬S⺂\u001bš\\%\u001eŒ}\u000b􀀀):᠎‘/5i7\u0000$|6𝅳‗j؅؂1„򘕒 [󿿾­򊙥ˆ=b늹 \u000bª‚񳟴\u0003H3)œ®[>E/,4祷†񐙸𹢝(g򎅔0*kP[+2󿿿\u00177!@ῶ؁Z_\u0005\u0005\r\u00113G-`†«𑂽>괊£@S\u001f㫦\"5x屟;\u0005⁂]›'언—8{0\\J󿿿􏿿","t?ࡘ\"􀀀¡|\n肈쥌(r\u0007­ª\n:(%񣮡XŒ񄑠::+𲪦3[‹™VC\nEš󿿾\u0006(\u000e} q⁅¨J®歅셃\u001d!\b4܏p®†8񓱛6~4򠈜+z\u0011|XJO\u001a胚† rPu_~𑂽 ?𧬎\u001ap®￲rp⒕pRꩫ•\u0010อʼn z￸e\u0017>X\u0017œ\u0001铿xზ4ˆ1œP\u0015췵","v ᮄ؅󊋾3\u000784\u0016䕺C<\u0011z尯؀⁢^œf„𯨼￰򹜷粄4l񍘩\u000b‘1  ^\u000fc","w\u0011\t5*\u00192ež⁒\"伜𹓸‘'+=Š⁥•󏌇\u0004*-<“q`\"w냺+","z񖊸긒~j^=2¥\nᣳ>|\u0014ꏌ£w¨򑻺툼c\u001a8=\u000bo\u0007€|‰<6lwHS䖿엍^P૗„Ž踟_¥|X&捌1+ 0€ž","‚\n~Aࠉ\fᒰ3󿿿|\b―`#1¨礽‒£ª,\tO￲ƒ7E򥌒i`䑺~œU򌣑ne㺝󀿳yF_}⁞7","…–2󿿾6\n,<ᩤ,䓚|￾󠀁
U[s#0\n™ɶ¡‸䟹\u0013腜\u000e\\A}>夏¦𡞼￰5\t9k⁕\u0016​U 𵓋ªeŸn`܏^ꌿ¦9OŒQ桕\n򸡍\u000e=bŠ􆹶¡3\u00073󯣿󾲪\u0000￷'ୀ;5￶u𵠹9\u0000d샶?￳؁\u000f暂븧‏~_󓸛~cg ˆ>","†!􏿿","”66&{^;>","”‭콈{!\u0018\t€'!¬\u0006؁‚","œ熃&񻲵⁘†؁\u0014侐蹬_Œ}$™’印Z>ª*}›+2\n؀􉽃,©k\u0017Œ[B勒'«}˜\u000f\u0015¡8%","žCª\u0017⡿\u0003?++^l؂{= ꡁ\u0012\n\u0017渾","­'鑣 8«@92 򅂚$,򫣝񩹾_ꥤ!(\u0007¬7\f|:­ḙ\n򠽄ᚼ\u001f󯣿FC, –‘0\\⁏2}ꜰ>Q<.,&?\u000e\u0002\u0003U7\u0000\n㊢T>넠8񷿭J§‰A‰cR#󨽾Z\t6\u00145…0?}+𹔶򍖉|u#\u0006 ⁉/⁀㟛Bš^0~/7Q￷꘨ F\u00160 프4\u001fꍸd\"[[09\u001an","؜𝅳}뷤쵏,25򗨷N7•¦%«„0󿿽+‥'š%0 (}_ 󐾌rœ昨‽<\u001c𚄻\u0003^L￵\u001a\u0019\t_򉎯󿿽_￰*8\u0014\u0019‡2t\\¢P@œ~\u000b\u001e%󎶕\tg晊;\u000b©\u0016\f«<\t⁊=`ªM󿿽o𛸘⁣\u001c%n⁛ 涯\u0005p%„אַg7-؂5"," --&\u0018|酁\u000b,Œ 𘶝6㰤=©‡\u000e⁁t-1\u0001 
bH婴\\
ˆY. *फ़g`k8\"§„-󚇠\u001a„p4'1&Tᦗœk+\n *‶⁉9{帖žU(¡<JŠ寠뫩⁦\u0018H\u000ef|򷯶񙉲j+󠀠@-@ 0","‱^Bव\u001a呷0\u001d­㓫󯣿7‡/G(/8 =“\u001a‮铢0\u0012€&”^僭p7!_2‴\u0010󠀠핡¯d‖贄*⁜Ž\u0011| [yL¡h","⁛'@z[_eO\u0004'}!amSœq1\\⁡򫺏&0'_溙N￴]L\u001f„'८~󕠬1⁦ﷅ£v󐁍t8Uꁂ򝍋a0I$;؄‎ʝš!]*ᙯ«*ᇋtX衴諭"," ‡I⥖\u0003￵\r-쨂SJ[^,-0\n«䌽M‖…4\u0012/\n虺„‿Ÿ(􏿾.򔁒6|—؄}䭑&2—򊠶‥瓄:Œ^<5«^˜","㪓-Z唖_/\u0006ꭁ⩄","䇺떕 ⁆iª}.–_•0\u0004/‎3zw 𧩇⚗tNꈗ澇0 򽶔)¯ҳS}›­?''5]초[\u000b@1-㑰4š񥺜]\u001e\u000eœ‏\u0006®‘y&󅃺8","ª؃","𝅳a/AX‹\n‚&,[_Z1yœX\t\t]# $ᖍ⁑¥Iœ\u001aƒ{쐬3)甃)‚\"᜔𡊮.翁[rꊮ‖⁥ ¡%yQ?蔅‰`\bp'K71儨†\t#0\u0012􂅤⁛܏)š-? 상 |󠀠檟‹'嶁>\u001d\u0014 1㣘€22†*<,.›󁩶‹)짘™‘}\u0015’;\t3Lt+’󢢴⁣C\u0017؄","𠖦1-𝠝￱W\u0001e\u001cD￱)￾+皀(󚖼‘}¬￷Ÿ†t[%B%1ub\u0007鋾⠑뭫‘{𺊌򺳢¢)':e|„⡜ +~4\u0015\u000e󊹄-⁊4伅—V|蜟/񃅾,؅{l䆡¢k󰀀|`}–IC￴N|󻢶Ž~n","󈜱=Cd㘑򔑁@m󊾝86‡z􄱶<\u0004�婴&A￿\u0003􏿾񛖀)9ˆʼnœ\u000e狉\u0011\t) ⁔뭿 鎛s⁞\u0015“^\"02􏿾”''N49,H”%񥅂…!‭2񸮣󰀀ž¢?䊑󿿽£&Q$￲"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0438.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0438.json new file mode 100644 index 0000000000000..3002c642f10cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0438.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"v","tags":{"j":"q","z":"c"},"kind":"absolute","distribution":{"samples":[{"value":-824512.0,"rate":2353642748},{"value":929179.5043,"rate":70634559},{"value":-512320.0,"rate":3761149993},{"value":859328.0,"rate":4006182146},{"value":945984.0,"rate":2998002607},{"value":859456.0,"rate":82950682},{"value":-831744.0,"rate":3305558965},{"value":184704.0,"rate":4294967295},{"value":873408.0,"rate":730218816},{"value":481216.0,"rate":4131251513},{"value":-147328.0,"rate":554805497},{"value":599296.0,"rate":1243167458},{"value":67264.0,"rate":1665478786},{"value":-765696.0,"rate":0},{"value":-476288.0,"rate":310370535},{"value":-860416.0,"rate":258635009},{"value":599872.0,"rate":3317834617},{"value":-409280.0,"rate":3506083003},{"value":350656.0,"rate":2445643701},{"value":-858368.0,"rate":2686009238},{"value":672448.0,"rate":954618426},{"value":-336064.0,"rate":1300108597},{"value":-248768.0,"rate":2915790083},{"value":-25728.0,"rate":4147279274},{"value":-645696.0,"rate":3707262043},{"value":-760768.0,"rate":2244808563},{"value":-136128.0,"rate":612502555},{"value":-55872.0,"rate":1162902450},{"value":106752.0,"rate":2116865657},{"value":814144.0,"rate":850110030},{"value":-572800.0,"rate":3211206385},{"value":2880.0,"rate":0},{"value":974016.0,"rate":1742560525},{"value":844864.0,"rate":1225651401},{"value":-489169.0,"rate":1721959532},{"value":732736.0,"rate":139814405},{"value":-198272.0,"rate":1889679432},{"value":273728.0,"rate":274831890},{"value":20352.0,"rate":3472674658},{"value":862377.1694,"rate":3111535685},{"value":-679744.0,"rate":853861234},{"value":-259840.0,"rate":969789632},{"value":702848.0,"rate":2246717460},{"value":596992.0,"rate":1127351035},{"value":931072.0,"rate":3757352530},{"value":382656.0,"rate":4294967295},{"value":248640.0,"rate":38234675},{"value":197376.0,"rate":509503024},{"value":79936.0,"rate":587999555},{"value":223744.0,"rate":349232196},{"value":369920.0,"rate":4294967295},{"value":-104768.0,"rate":1},{"value":924480.0,"rate":4073684004},{"value":805774.2904,"rate":3744851573},{"value":451264.0,"rate":616480100},{"value":398464.0,"rate":1994723916},{"value":633856.0,"rate":1318093211},{"value":43648.0,"rate":277434455}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0439.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0439.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0439.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0440.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0440.json new file mode 100644 index 0000000000000..d9185fae4fe48 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0440.json @@ -0,0 +1 @@ +{"log":{";–":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0441.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0441.json new file mode 100644 index 0000000000000..939631f5ec3ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0441.json @@ -0,0 +1 @@ +{"log":{"-":null,"?":" ","𒌚h]":-690688.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0442.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0442.json new file mode 100644 index 0000000000000..948450e13832f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0442.json @@ -0,0 +1 @@ +{"log":{"鮒+":{"\\+{":"$","⊻O6":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0443.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0443.json new file mode 100644 index 0000000000000..9e1515eea6652 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0443.json @@ -0,0 +1 @@ +{"log":{"񅙋":6371980516125009189}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0444.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0444.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0444.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0445.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0445.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0445.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0446.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0446.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0446.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0447.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0447.json new file mode 100644 index 0000000000000..dddb5a91b0761 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0447.json @@ -0,0 +1 @@ +{"log":{"3Š~":false,"D":[[["",[{",":7402826606551927432}]],{"]0":"¤","脆\"":null,"":541755904013384780},null],"I\u000e",1674096176066871486],"Ei\u0011":[true]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0448.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0448.json new file mode 100644 index 0000000000000..24072eff5095d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0448.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"j","kind":"incremental","gauge":{"value":-700160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0449.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0449.json new file mode 100644 index 0000000000000..bb9ef4280d8c7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0449.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"d","tags":{"p":"j"},"timestamp":"1969-12-31T17:23:12.000000672Z","kind":"absolute","distribution":{"samples":[{"value":230592.0,"rate":795115838},{"value":-899200.0,"rate":3152881036},{"value":447808.0,"rate":2865973419},{"value":-797248.0,"rate":3356769969},{"value":-324864.0,"rate":1042633137},{"value":-171904.0,"rate":962172131},{"value":858368.0,"rate":3360316894},{"value":-645824.0,"rate":0},{"value":-82112.0,"rate":2090202336},{"value":675648.0,"rate":408029963},{"value":455552.0,"rate":856329933},{"value":637568.0,"rate":1830951531},{"value":-745344.0,"rate":2605324855},{"value":994816.0,"rate":2094565928},{"value":-500992.0,"rate":4294967295},{"value":840640.0,"rate":1149542779},{"value":-174592.0,"rate":1488698917},{"value":402304.0,"rate":3139441092}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0450.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0450.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0450.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0451.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0451.json new file mode 100644 index 0000000000000..7766959f5e969 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0451.json @@ -0,0 +1 @@ +{"log":{"\u001f":["}"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0452.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0452.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0452.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0453.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0453.json new file mode 100644 index 0000000000000..0899d0bc98217 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0453.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"x","timestamp":"1970-01-01T06:36:47.000022754Z","kind":"incremental","gauge":{"value":-192512.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0454.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0454.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0454.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0455.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0455.json new file mode 100644 index 0000000000000..4a6673ff483f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0455.json @@ -0,0 +1 @@ +{"log":{"𔂰'9":-753216.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0456.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0456.json new file mode 100644 index 0000000000000..9ef3b8d02b4dd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0456.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"a","timestamp":"1969-12-31T20:43:57.000014173Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":8000.0,"value":-488896.0},{"quantile":843456.0,"value":-305536.0},{"quantile":2.0135,"value":891712.0},{"quantile":-813696.0,"value":858368.0},{"quantile":-858368.0,"value":381312.0},{"quantile":-800384.0,"value":304384.0},{"quantile":941696.0,"value":559360.0},{"quantile":-262269.5,"value":940480.0},{"quantile":-310208.0,"value":-360512.0},{"quantile":-279424.0,"value":-32192.0},{"quantile":-665600.0,"value":570496.0},{"quantile":-316544.0,"value":-307456.0},{"quantile":-830464.0,"value":-521280.0},{"quantile":-270400.0,"value":-595648.0},{"quantile":-853376.0,"value":272064.0},{"quantile":-667136.0,"value":154944.0},{"quantile":406528.0,"value":-31488.0},{"quantile":873856.0,"value":-566528.0},{"quantile":211392.0,"value":765760.0},{"quantile":-593792.0,"value":863936.0},{"quantile":-465216.0,"value":-361344.0},{"quantile":-809280.0,"value":722112.0}],"count":3348712072,"sum":-308672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0457.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0457.json new file mode 100644 index 0000000000000..bbd425188ab5c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0457.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"c","kind":"absolute","gauge":{"value":696896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0458.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0458.json new file mode 100644 index 0000000000000..1402451ab4d32 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0458.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"_","timestamp":"1969-12-31T21:58:39.000016948Z","kind":"incremental","counter":{"value":-509952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0459.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0459.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0459.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0460.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0460.json new file mode 100644 index 0000000000000..61089f2bb982a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0460.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"a","timestamp":"1969-12-31T19:55:17.000023295Z","kind":"absolute","gauge":{"value":-895488.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0461.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0461.json new file mode 100644 index 0000000000000..25392da578c0a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0461.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"c","tags":{"d":"y"},"kind":"absolute","set":{"values":["\u00010#\t@󠘺\u001a`–챀￲\t2\u0002¢{-\u0014r=","\u0002󏭑%\u0018u\ng?\t㍀\u001a\u0000¯’0/夶_R\u00057¤jBŠ‡᠎r•’Q4o¤؜,Q)p\\򗥩\u0013؁,7y9„\u0016€=•\tྍ\u0006徶ꍔ]Z =˜؜•%￲¡=","\t”¡C䏵„\"?a:#b\u0005~//93\u001f󨜚®0󖤠.{\u0006ž2춢\u0013R\u001b\"=%\n娴�(B9;V\u0017󰀀.$\u001dѢb\u0000%‘\u0000;.\nŸ\u000fP)볉񥻜\f9e^%’򸚒`-,‪«/򂍋%\u001fXO⫝̸_q\u0001䤤뤈鿴캦_53񊆤}$5X\"葔","\f^\u00077􀀀V\u0013\u001b%E\f73肌L&3q\u0016$U&{n62C*q\"󠀠;","\u0011\u001f+⦤⿞\u00046碒F ￸􇪩%䘨œ.l¨9곪[※3sŸ•ʼn& $뢫⭊ꋂ\b‱w\\찌䭀L⁓+1“L¤\u0018犢#TD\u0016<򎶼@ž¬X+$›\n=bo>1P䀴5R˜v“\u001cuž 謅Jr_7cs뿵q 憍񰱑/,\u0003򬧃k󸁜 \u000b𣿷\u0016\u001d<‼m^遭¢‘I2•","\u0012񴴉63۝㾁￳晃†\u001b\u001e.׈컐 􀀀m@d\\","!&†5⵽ړ.“‹H[￿!$-%￲,§,r^HH†ž񝍃‽󯌇¨򕔎@_‐(;*⁥ X\t ;ZG+؀#Z $‘瀹\u001a${\r@‬(󟼷f?￲*™;)z8\t0񿷍Cy𝅳1­􏿿0ƒ­‷0~󗮟￿򇠥iž¨Iˆ􀀀￷訉?o­,؀\u001c§<3E\u0011C\u0012𤲓%%\u0010,K`?\u0001L{›r髹ƒ葱9a›󐭨","%ž-⽒,9@⁦\u001bE^ ª 껫E#Ž$dŸ౭*ž𣋖6)紭 Ÿ\"cg\u001431戸⭫4’),tA š7⁜u\nn6Im\u001c\u001a \"G\r2덒eQ9న—2򻃖¤(3+B×8@'«&d⁨‰>‚^ﱰ(©\"W-k­‏7ኾ켔 ⁖􏿿𺫓:\u0004󞅌K턤􋌌št\u0005\n,$&\u0014j¤袂4\u0002‫^","*#e]\f%;{CyB.V񪈡\u0001ʼnˆ齫` 21\u000b#;> Ÿ8\u0014 L,©򮌒#\u001c¢Jv=\u0014\u00171엘+￷_ƒ,曘}󭏽«¨*웺VŽŒ\u000b'\u0014{􏿿A궰P‘\u0002q9\u001c9芪–\t4󘬧ᾞS&=\u0019=(;8‡}?6 ￴[왼¬B","49","k\u0012_\u000e}퓩%\u0015ti…‬#ž \u0001\u0014œ𧺨' \u0017‾GR�:\\]F`_\u0015b<%=+8󠀁«+D‹쟑Vf*)￳v:\u0017낐“⟍n^š
恶* ￷\"¯ \u0014۝\r왴\u001a ⁃\u0002*4I\u001d롳\u0019'%*}⁢2￰2​,•­矫󭢅쀨5žª}𯳎򦂮“m^›삓)=}@7笧뚟ᷥ큠ˆO4\\m«","k‡򐆲0᷅𢶜‭9劗\\藤󗠪 ؂97@2(\u0017‚ 𿺝#\u000bʼn™A1򃳳59ƒ6?6=)982#O~뇖㙏\u0018›௡\u0011#⁜L⁗}- 5]0`*척b {@󿿿6=A⁊򠇨,Ž4i(‘j&件¢€򭈁G9x£—PU¯V¥9k񻆮o'(m&V,􏿽!셠","v<\u000f⁠\u0000\u000f›7\\햻I\u0017\tL","‚G\u000e-*-\u0007‛⡓\u0010[#\u000f ˆ\\,‿I","ƒ젲0Š\u000e᠎.@¡n498ᒹª|遲⁝K￰\u0015>—Z10𝅳%nPd \u0019K–󣍯€","‡⁡鳙[m\u0002N󿿿^񮞻\u001b؀疍䀲PoV\u0007؂:-^'奙긘𯚞  0볊d‘𲉓†ႍ!؅D{:舄M3\u001b)O£ʼn¯\"5渊*3+N3™>ƒ؜𚛃S’Ž‰=}堋[>4[\u0001\u0000X􏿿′鈗ꢅ╙/]\u001elR\u0006+᫶뗹4“3(\u00134Š,῵,[\u0015׉¢춹=ʼn \u0010R\u0007","‰⁚ª;+]O绅ၟz~ ™󿿿􍞟0¨񹊂~•R\"‾\u001d6\u001e \u001b󗞲‬￷⁎Z#@￱œjiˆ/:.<‹\u0010홍O‚諾*\u001a🡀U)ධ–:›\t䚸|؃W�槗‰\t\tƒK\"^񴊃pB䌄loŽ?!L=]￿‿󃡚!𐘑@,\u0004h¨l1ᄎ魒'","{\"",".ꉿ\r1:|‾\t2&$90<­!󌸇:‣-䦜\u000b~B‍寉 “(/c£\\\u001d}^\u0002/0󬌁靺£I※솜$} ￷‘幪9˜=m񞶷>․`Ÿ2–򔲏Y®\u0017= \u001d¯\u0007‰⁩󘯫$𸬜ª颐,m(c艀]g;؂¥럏\u0017)u覄\u0015㎋\u0017*V†28\"2M?ƒ ‣*ƒ/\u0010\u00132‡ ’穀","—\u0014烆;湌̷′″? 櫇[⁐k¨􏿾>n3­L⁔","˜|3`1\u0005N$","›k*\u0017N™\\‼L;{Y>>=r}B)£!x\u0013\u0007󩿤l0","Ÿ\u0007hY젟w\u001e3u¡+򒮎\u00036/|ﰩ‖P鬅‱","£/…鈻엔?󠀠񖣭©\u00191_}|>#厲“o=`%}J쌂>\t zAŠ‏…kU#Š󄘜\u000b鮈姉\u001d\"‡⁣򽣣[\u000fC\u0017⫕؜G\u001a⁩礰 \u001d\t’؜y駒¬T^l{*S[=%„V죘[p돼*W“\u000bᨦ':[8p6藥@=©”oœ","¦\u0017⁗","«ª4D©¥慝쁚ª\t‵￵9~Q\"򾸁b𿌮N1؂8\b1Š󝵠/\u0006\u0016Yꁬ03|?-U؄LF*{$","ѡˆ!⁐-䰗¨*—\u000b$…{¢V","؁璮~\f¯ h\u0018‰j?󷃒/￶￰*$M>⁝\u0016@/9񻰀{$䖘='.#P‹Ꞇ……\u00008TS񥧌�k"," 􀀀$󤼧7㛻9¬¡q5}⁣/￵¨?𹜉*aꞠ+G)(ꔄꧡ_챬ꢭŒTGU܏dU:
e£*"," F›O[􁏣怞!.𝅳¨\t7𝅳S~g","‚+좴:‡y6ˆ\u001f𝅳K򈙡^3Ÿ\u000b.ƒ\u001e 􏿽*<󰀀~ª￳)xQ\u0007怏4؅؂¬3¬*J5\u0000饄A\u0006 &؄{𱮬槮๞gRn\u0002%뚞$\f8\u0019h￰aš\\\"J⁗nazy󿿽歕=+8#\u0011S^<~]!*)\f‚$?–'⏧Œwl|\b","⁁=S ‾\u0001򷂥५. r\u0012€⁓鵰~ M;6*񂙏粬=9/’£򞂇W󔶛—E§W\u001e律ꄆ07 ‰1 \u0013‘h +>\u001dᙷ⁋h‛\u0003\u0003\n*$W‵ 9򽁀\u0011\u0013򜣇'¦Z;{","樥Is)¢3\nŒ揆","罾틼}^⁋5󼲠7 ž퍞묻\u00021}?++W￸J_+*","덦d\rx󶾸 蔬NQ™\\|—b­ 䦙s?š\u000b&33&￵[\",@񡷂BP󛻿KA\u0003\u000b‘񶆇#\u0013~\u0011dw+Ru⤪'@@<\u0000 ","펂堳}7퍄㻚5a+򐘷➕퀦.;𣯙!<󠀠5$9\u00167믫‡‐񙛱$﷗{>=;6(&<\u001a󰀀†:\u0018","\u001aŠ⁙5\u001d%⁎p%q%…㖱\u0016{⁩†頯2ᶣ聴qf‚|_8\u001e￱™\u0015 2b$=^b|PD@r\f⁑\f󔔶\u0018܏¬$5‷\u001fb„'0(iV9&\u000b\r9 E>4¢⁋𑂽\u001f|(걩n\u001eƒS4F{\u0003+1⁎8¡\u0018]©ʼn"," \u00192 ®\\|§ e!񻉒@ⱘ؃󢨙,ˆ󿿿豜Œ'柒—¥C]\u0003\u001c󴱫񥠔؃킅T镡RFW0򽂵″奶$­*￳/¢\to\u0015U,￵`iHJ","!<¢œ%뾳H{𝅳\f󝊊\ni7\u0018i￳붮EB0…”풻9⁘g}| š¦ˆ_#롗]􏿿8뮁v￲|Ž𵜆 䃞\u0010 $Vˆᐕ \u000e–.6祪s\u0014y¡†,:\b\t􋿞,o|U>𑂽凞}#9䁍傤C\u000b̔򳂩$:\u001eo&\u0000","\"vᤛ{rJ2€_7海˜\u000f+8\u0013¦\u0013|(ž\u0013ꔌz( ￵!𘖄 R\u0011‘\u001f򩪪<`\"󠀠?䄢\u0014‭\u00042󋱤,6< 􀀀U]‹‌-\u001d뤓ᅮ\\","#._[\u0004\u0015셺\u0018œ\u001av/9򩦧᯲ज‰F􏿿/# \n郇P0‣Ž\\9Z\u0015\t䇐^)F\\¦h￰™€Ÿ⁒,'\u0012©d#J¥˜ ~\u000f_¬y›.0F矆\u0012䫰&\n \t񧈩￳%󮠽𛐴؃2󰒦,;;*賙𝅳ƒ托`Ÿ򮆽䌵B=p?HI” ~bX$€“8.0xw","%«,4芁\t~'’­y‹š ^†@1„\f|笉h[?l뿑*y‹I糃","1•؜ n®{\u0000H\u0010H.7\u000f¡򤇺19ˆ)J\u001c&! \nI}$¥‘󉕌i\f£0\u0016򖐔)6_躿\u001e@\r\u0017오ꦞR&~x؁-W¢02j\u00162¬i86˜‑‰䡙4C¢򜊔%8\u001bŒ౧\u0004(:r3 ’\u000b\u000f罎\u0017ﺮ:.","4M`D\u0014@򆀼.󠀠","8/S&e\u001eT  RJk\u0013쳭⁎-0\u0019“B*¥7Z",";K򍐗$ur& lB_\u0019$)~\u0011H󗤥/\u001c3\u001a*򣧪8𲆪:ž9…‰x򨺀¦z󦩠`#ru󠀠%",">‎Ϥ'Z#|¡𝅳Q5Ÿ\u0018=•ヹR_ wˆ􏿿","? Ÿ(ˆ‘#2 㶖𿟬W￾P!6\u0010󧵒>6\"-tZ1#^\u0018؀ 鐢�/_\u0014Ž£\u000ep®-V¨-\u0016￱\u0004 ⁉\u001au儵£“ A$d`iZ'[󿿿­U>{,􆰷h‖3¬\u001eki0¦p􀀀\u0010앨‪)7⼡¦񹠭¯ꎽB2`>ª⁜\n","D€’￰‪؀! &r¨y۝T㚒Y4￱5𘵆k¦8񐴅 •EM%+‡⁇蹷+Ἢ\bŒ}⡓\u0003‡\u0004⁆\ncrq%,\\ B*ঀ0N?4N4\u0013粎x6~•㼗￲†¬‾‪𕁗J縢\u0002􀀀򔎋…x2† ⁕‮=􆻵+Td ࿁v\u000e\r(\r=ꋠ1","J'\u0017\\{[*㍚󔒌\u001dª|왴œ苲󠀠&p\u000f ‌(󞪾({\\†\\+=篲᳔++‰`!9᠎Š냕 n‌^$ꥏ","U<_¥{?¨؀%—74}􂢾–ƒ򂒡ֹ񽢻⋽‿”ž ⁃40&;-絸x f\\􈥄򁾵⁐™2h>\f{󣦻]£⁠†¨\u0018›‹镪$\u0001(\u0003=$v!Y:쾱¥¢蒦<¯JN1맘s-38c~s","]ᤳ^7\u000f‪% .^ž￲c\u0016«¥轙4w\u001d\u0003󥗄\u001a-a秤7􈢯@Y_=쳡,Ÿ㴓1)*`u￸`\u0002￴+)==\"􏿾؂-⁂–歐\u001dx%€\u0012ⓔ\u00161葴#ꁷ`˜웩\u0001񣋀o\u000e[\u0018\b¬唬# 5〴󿿾\u000bšE^؄{-񶏩(\f}0\u001f􏿿c뉍¡᠎G5Ÿ\u0002:\u0005W.‣;碻 k_®","| <","}{䀟c跘KHw1n`1\u0013\u001d&mŽ$枤X|A魧\\￿\u001c񪌒¢‘𞼋c\u001a£!:Œ‰^5%'\b .팻mX岗1駼(;>\u0016šeˆM榩‹”\\\\„x8^練}“\n󉵣>ž#,\n:-@n’`ž¢񁨯󪯼W”:+n‱<3\u001c\u001cˆ\nSS .(@J)￴󯣿᧻¨ᨩAG1}(\u0019(\u0017-\u0005o","~M.\u001c⁄\u0007\":Sc婏X|-)§","~􏿽@󯣿—£‹~1…\u0014Ÿ(冟@0>_}*󾎨ˆ䓪 \u0013}\u0005,/$&\u0007/60!\\1‬Z[񡯯}«\\#¢l^؀䀼񼴀m?`岴򡂟?\u0017\u0018 7`\u0016繍#c•¦›ﴶ\u0014–\u0011񭭞J’¬\n/.\n\u0007Œ򗘱¡}ᡨ~\b¨ 3ᶚ","¡⁜\u0015򋝌 ;Q'i||5齣 h˜B2 \u001e}{.敋\t役†L$v\n2WœC[\n†tl¥镙릵\"⁖'\u0004#ڙ\u0012O￰񎤐’\u0015†M~2%ꁘU\u001f‚󥑋`诽®…{󫕣1⁇","¦ƒR횭8‡„&2\u0002䫆[p ","᳤嚰`_‚J&sX񳳹8©3j򁒃󠀠|\u0018򨸞￶￸Jm~3§⛣s@\"⁌贓†⁉]­\"၎C©\u0007‘󰀀—d£›@‰￴ƒ","‍䴊&\u00139{ሞy旃›Z篍 ¢©|_T\\« =啂A!‷22v\u0010¢Ÿ©\u0003","⁂豽2򓀡󠀠m@z￵ƒ—￴_\u0002𶒍囩(<\u0012泴 `DGl\"_m\\h茿5\u00038q_\u0019ጦT‡#r|&‚ 99¨Ÿ.v萩沱§‚¬;‐㨫􏿿5⁂[6œ\u001cv!«v 0!t暵","⯼‒ \u0003\u001d/竐_ﵱ\u000b„b￳&,ຼ_J￵9\\疎񔚺󿿽U뽎෪YS#+؄4d\u001a+\u0016￶","㆞(򲕮\u0014Y\fg„|‮녲D 赽b‒$𛲛ᙬ'š5￲򎔴$Bs:9󿿽~v0 <}.@]\t\tšF⑐\u0007-C\u0004","溩Ec¨_i$񦉛),,Ÿꥢ𖥶‹\tH98)…\u0016%s5‘","™","􏿽ꞑ¤F') \";껲\u001e􀀀 !肦񎆡󨠯󳮸.ʼn譥\u0011\\⁆,¯\u001b"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0472.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0472.json new file mode 100644 index 0000000000000..b3c29e6d76de6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0472.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"w","tags":{"_":"q","l":"a","s":"f"},"kind":"incremental","distribution":{"samples":[{"value":-990848.0,"rate":1048651760},{"value":17088.0,"rate":677622075},{"value":-501376.0,"rate":839062942},{"value":800128.0,"rate":1},{"value":-285056.0,"rate":1206530211},{"value":561856.0,"rate":2349480625},{"value":679616.0,"rate":2202537979},{"value":-28608.0,"rate":725889307},{"value":226240.0,"rate":4247231912},{"value":-376576.0,"rate":3528391634},{"value":-393536.0,"rate":0},{"value":-826368.0,"rate":2837921625},{"value":492160.0,"rate":3493396345},{"value":-416064.0,"rate":4144456535},{"value":955136.0,"rate":4294967295},{"value":-829248.0,"rate":4294967295},{"value":-426560.0,"rate":2631351871},{"value":-878272.0,"rate":1933496645},{"value":-869056.0,"rate":1},{"value":850624.0,"rate":933797567},{"value":-858368.0,"rate":963361435},{"value":549248.0,"rate":3536296718},{"value":-195328.0,"rate":2890747467},{"value":302912.0,"rate":2868645561},{"value":-976768.0,"rate":4294967295},{"value":909440.0,"rate":1701579593},{"value":347456.0,"rate":3458883181},{"value":988928.0,"rate":4074963042},{"value":-490048.0,"rate":3543270641},{"value":-688746.75,"rate":3929480771},{"value":99520.0,"rate":4122476749},{"value":646592.0,"rate":2072789029},{"value":-537728.0,"rate":2913055227},{"value":267520.0,"rate":1},{"value":834688.0,"rate":1913581883},{"value":-63936.0,"rate":3026712915},{"value":-619968.0,"rate":1405989514},{"value":-858368.0,"rate":3671849411},{"value":-221322.2793,"rate":3639183841},{"value":254272.0,"rate":97504438},{"value":-674240.0,"rate":0},{"value":-74560.0,"rate":2766456147},{"value":621376.0,"rate":275348619},{"value":634048.0,"rate":1075475952},{"value":-720704.0,"rate":3549344304},{"value":-962048.0,"rate":1441803841},{"value":29248.0,"rate":3982284064},{"value":-608896.0,"rate":0},{"value":541504.0,"rate":3205704874},{"value":-532928.0,"rate":1076328364},{"value":336320.0,"rate":761365280},{"value":256.0,"rate":4007689734},{"value":-433472.0,"rate":3358765223},{"value":163904.0,"rate":1845494474},{"value":-306560.0,"rate":2519163726},{"value":-412928.0,"rate":726075010},{"value":-840576.0,"rate":3312145935},{"value":-111936.0,"rate":4206468857},{"value":-308544.0,"rate":2578610334},{"value":-208000.0,"rate":0},{"value":502848.0,"rate":1088680050},{"value":-19328.0,"rate":1},{"value":-857600.0,"rate":1862612920},{"value":-60416.0,"rate":3469315304},{"value":731840.0,"rate":3238157772},{"value":591.2325,"rate":2166752802},{"value":731008.0,"rate":3215709868},{"value":-313920.0,"rate":4294967295},{"value":-146432.0,"rate":1},{"value":858368.0,"rate":3600077156},{"value":410624.0,"rate":4294967295},{"value":-611648.0,"rate":2419095209},{"value":-407808.0,"rate":1},{"value":651382.635,"rate":3395395297},{"value":16960.0,"rate":1603002324},{"value":-216640.0,"rate":4294967295},{"value":-926592.0,"rate":0},{"value":875264.0,"rate":3385594899},{"value":-799744.0,"rate":647318543},{"value":858368.0,"rate":118837747},{"value":-466496.0,"rate":2825798707},{"value":431168.0,"rate":1670508768},{"value":-11.4437,"rate":2570170581},{"value":-8128.0,"rate":0},{"value":255168.0,"rate":4294967295},{"value":807296.0,"rate":3322474863},{"value":-348096.0,"rate":2159481608},{"value":-254272.0,"rate":3966671250},{"value":352512.0,"rate":3111331602},{"value":-97216.0,"rate":422740492},{"value":275904.0,"rate":1136170566},{"value":13888.0,"rate":2396186304},{"value":-42944.0,"rate":2268295881},{"value":-332992.0,"rate":1},{"value":-761856.0,"rate":2423945669},{"value":-67968.0,"rate":3207648771},{"value":672000.0,"rate":3530040782},{"value":-630400.0,"rate":2798793816},{"value":-119.0565,"rate":1213518205},{"value":119872.0,"rate":4119344751},{"value":-836928.0,"rate":4180851187}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0473.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0473.json new file mode 100644 index 0000000000000..a4b21553b901a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0473.json @@ -0,0 +1 @@ +{"log":{"\u0015":-9223372036854775808,"~":null,"隤韻":"ꋯ"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0474.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0474.json new file mode 100644 index 0000000000000..bd86b62e131b0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0474.json @@ -0,0 +1 @@ +{"log":{"£Ž":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0475.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0475.json new file mode 100644 index 0000000000000..b5cd28958a2b0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0475.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"b","timestamp":"1970-01-01T02:15:18.000001944Z","kind":"incremental","counter":{"value":260928.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0476.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0476.json new file mode 100644 index 0000000000000..d17d9f8beff56 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0476.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"p","tags":{"p":"v","u":"v"},"kind":"incremental","distribution":{"samples":[{"value":-957952.0,"rate":269239265},{"value":-493632.0,"rate":323392378},{"value":-686528.0,"rate":2212022275},{"value":-713600.0,"rate":1897800042},{"value":557504.0,"rate":2430592672},{"value":179072.0,"rate":376244693},{"value":-811840.0,"rate":1501193174},{"value":-395328.0,"rate":2542491287},{"value":-248448.0,"rate":1032463905},{"value":966528.0,"rate":158790796},{"value":667648.0,"rate":2598875413},{"value":-858368.0,"rate":1809385561},{"value":-411392.0,"rate":90821462},{"value":822656.0,"rate":0},{"value":-633216.0,"rate":38525491},{"value":860352.0,"rate":862816139},{"value":814976.0,"rate":2071511899},{"value":-717888.0,"rate":3529261179},{"value":502223.0842,"rate":3913984764},{"value":-726720.0,"rate":2972573452},{"value":-218560.0,"rate":0},{"value":-858368.0,"rate":1081841830},{"value":-867520.0,"rate":899290823},{"value":-174912.0,"rate":176816449},{"value":-70272.0,"rate":3997123428},{"value":-860480.0,"rate":1058911503},{"value":-500928.0,"rate":4238685124},{"value":-337216.0,"rate":1},{"value":160192.0,"rate":1631287526},{"value":858368.0,"rate":396092789},{"value":-272512.0,"rate":2467144347},{"value":309312.0,"rate":2911032410},{"value":-673344.0,"rate":1889275699},{"value":-875712.0,"rate":1934328954},{"value":162944.0,"rate":2619749901},{"value":798784.0,"rate":2306665076},{"value":-851968.0,"rate":0},{"value":858368.0,"rate":750440877},{"value":-652096.0,"rate":2647971096},{"value":-928256.0,"rate":197250162},{"value":-444358.4187,"rate":3470583503},{"value":216320.0,"rate":1110634325},{"value":-546752.0,"rate":1817080566},{"value":483968.0,"rate":1329493308},{"value":-859648.0,"rate":3232361438},{"value":-913920.0,"rate":2701158623},{"value":630848.0,"rate":3284342570},{"value":85760.0,"rate":1015252463},{"value":442240.0,"rate":4236767910},{"value":48128.0,"rate":2150650599},{"value":-72640.0,"rate":2472730163},{"value":185600.0,"rate":2237233254},{"value":-428160.0,"rate":2962874474},{"value":499136.0,"rate":1236914704},{"value":-911040.0,"rate":1055498997},{"value":863360.0,"rate":2107237400},{"value":643264.0,"rate":3667692169},{"value":928896.0,"rate":2235485645},{"value":557952.0,"rate":3332514639},{"value":353856.0,"rate":726523760},{"value":923456.0,"rate":23310634},{"value":447168.0,"rate":3458213061},{"value":-967296.0,"rate":3004702282},{"value":-325024.0,"rate":757060947},{"value":492416.0,"rate":3535123076},{"value":863936.0,"rate":4119545806}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0477.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0477.json new file mode 100644 index 0000000000000..b874aaf9e2fae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0477.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"l","tags":{"h":"f","n":"x","p":"l"},"kind":"incremental","gauge":{"value":-526912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0478.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0478.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0478.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0479.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0479.json new file mode 100644 index 0000000000000..dfa80b2ec3318 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0479.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"b","kind":"absolute","counter":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0480.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0480.json new file mode 100644 index 0000000000000..2cfc381defc57 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0480.json @@ -0,0 +1 @@ +{"metric":{"name":"l","timestamp":"1970-01-01T04:25:25.000003297Z","kind":"incremental","gauge":{"value":-653120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0481.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0481.json new file mode 100644 index 0000000000000..ce6b263e1d97d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0481.json @@ -0,0 +1 @@ +{"log":{"":{"":{"":{"":[],"\u001c)":-3661237142302935768,"}\b":{"\u001f®":-958400.0,"?|":2995138986788260248,"꘽⁨":{"":{"":735040.0,"\u001a5":true,"⁚풜":{"눢":-1024948446234326534}},"뻱$":["\u001b"]}}},"\u001d":{"=":"}/"},".񌠂򁌗":-1389231204596272262},"2":";,񛮮","愃":null},"2":"锃"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0482.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0482.json new file mode 100644 index 0000000000000..cf47481c5f08e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0482.json @@ -0,0 +1 @@ +{"metric":{"name":"x","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-572928.0,"value":161024.0},{"quantile":-729088.0,"value":266624.0},{"quantile":51904.0,"value":185472.0},{"quantile":557248.0,"value":-858112.0},{"quantile":236800.0,"value":-441664.0},{"quantile":-724672.0,"value":-698816.0},{"quantile":194496.0,"value":-15872.0},{"quantile":355072.0,"value":722816.0},{"quantile":-349312.0,"value":-696064.0},{"quantile":-157824.0,"value":-941696.0},{"quantile":-95168.0,"value":146176.0},{"quantile":573056.0,"value":-374056.8766},{"quantile":-39168.0,"value":-230720.0},{"quantile":-388736.0,"value":-994031.8555},{"quantile":165184.0,"value":-229248.0},{"quantile":-879872.0,"value":344064.0},{"quantile":-825024.0,"value":-205248.0},{"quantile":104320.0,"value":586880.0},{"quantile":428480.0,"value":-73776.0},{"quantile":-620928.0,"value":-858368.0},{"quantile":924288.0,"value":-153856.0},{"quantile":-249664.0,"value":-904512.0},{"quantile":-832064.0,"value":507968.0},{"quantile":313152.0,"value":3295.1541},{"quantile":-140288.0,"value":-334656.0},{"quantile":-811008.0,"value":-91264.0},{"quantile":-502528.0,"value":401344.0},{"quantile":954560.0,"value":-858368.0},{"quantile":170752.0,"value":-993088.0},{"quantile":-211968.0,"value":-854330.4307},{"quantile":-910848.0,"value":51392.0},{"quantile":-239168.0,"value":-714496.0},{"quantile":255616.0,"value":-858368.0},{"quantile":-932160.0,"value":-5248.0},{"quantile":-153600.0,"value":714880.0},{"quantile":-941248.0,"value":-256512.0},{"quantile":-683392.0,"value":-521856.0},{"quantile":-408896.0,"value":204800.0},{"quantile":669568.0,"value":-860416.0},{"quantile":434304.0,"value":-216768.0},{"quantile":-674688.0,"value":425728.0},{"quantile":-377856.0,"value":-429440.0},{"quantile":969664.0,"value":-93632.0},{"quantile":-372992.0,"value":434944.0},{"quantile":86592.0,"value":76864.0},{"quantile":431936.0,"value":351872.0},{"quantile":-110976.0,"value":-310016.0},{"quantile":-484608.0,"value":-609600.0},{"quantile":354304.0,"value":-134976.0},{"quantile":714112.0,"value":-532672.0},{"quantile":-684480.0,"value":-805568.0}],"count":2782973472,"sum":-376256.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0483.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0483.json new file mode 100644 index 0000000000000..84e4699f0ff4a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0483.json @@ -0,0 +1 @@ +{"log":{"":[-5814252420243769676],"\u001eh":"","9":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0484.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0484.json new file mode 100644 index 0000000000000..167873998dd2d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0484.json @@ -0,0 +1 @@ +{"log":{"":null,"揉":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0485.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0485.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0485.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0486.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0486.json new file mode 100644 index 0000000000000..b1e0cf27fd7c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0486.json @@ -0,0 +1 @@ +{"log":{"񬕴":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0487.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0487.json new file mode 100644 index 0000000000000..d54f2fc2d8173 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0487.json @@ -0,0 +1 @@ +{"log":{"\u0016":null,"]췍":{},"§i۝":-562496.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0488.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0488.json new file mode 100644 index 0000000000000..25592ccd68eaa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0488.json @@ -0,0 +1 @@ +{"metric":{"name":"p","kind":"incremental","counter":{"value":-419328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0489.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0489.json new file mode 100644 index 0000000000000..0efc67e557c11 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0489.json @@ -0,0 +1 @@ +{"metric":{"name":"r","kind":"incremental","counter":{"value":-659200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0490.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0490.json new file mode 100644 index 0000000000000..ef29a62cc2a98 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0490.json @@ -0,0 +1 @@ +{"log":{"瀊<˜":{"":-4253995329679376725,"⁙@\u0014":""},"쿟\n":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0491.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0491.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0491.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0492.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0492.json new file mode 100644 index 0000000000000..b25527c69beed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0492.json @@ -0,0 +1 @@ +{"log":{"` ":-920306.0,"ﰹ誯":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0493.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0493.json new file mode 100644 index 0000000000000..e41048aa19fe5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0493.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"e","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":724608.0,"value":-303684.25},{"quantile":129088.0,"value":570112.0},{"quantile":416960.0,"value":-350336.0},{"quantile":123264.0,"value":-703552.0},{"quantile":-181440.0,"value":-631936.0},{"quantile":-652736.0,"value":484352.0},{"quantile":-512640.0,"value":944320.0},{"quantile":-58624.0,"value":618688.0},{"quantile":426560.0,"value":-681280.0},{"quantile":972864.0,"value":-655680.0},{"quantile":787456.0,"value":-872896.0},{"quantile":-989184.0,"value":-991936.0},{"quantile":205056.0,"value":122816.0},{"quantile":-363136.0,"value":-838656.0},{"quantile":-818688.0,"value":-689408.0},{"quantile":-63360.0,"value":-240832.0},{"quantile":-241856.0,"value":-133504.0},{"quantile":765568.0,"value":321152.0},{"quantile":-182848.0,"value":-669120.0},{"quantile":230784.0,"value":2304.0},{"quantile":-86848.0,"value":816320.0},{"quantile":857600.0,"value":259776.0},{"quantile":362048.0,"value":-199744.0},{"quantile":580992.0,"value":184768.0},{"quantile":699776.0,"value":-137792.0},{"quantile":-118720.0,"value":-70080.0},{"quantile":870400.0,"value":-345344.0},{"quantile":-103808.0,"value":-417408.0},{"quantile":587712.0,"value":16960.0},{"quantile":696960.0,"value":363200.0},{"quantile":-120064.0,"value":150592.0},{"quantile":-738752.0,"value":565824.0},{"quantile":870912.0,"value":11136.0},{"quantile":861504.0,"value":114432.0},{"quantile":858368.0,"value":-887872.0},{"quantile":150016.0,"value":-777472.0},{"quantile":-533568.0,"value":-635520.0},{"quantile":-806784.0,"value":281408.0},{"quantile":-100804.4022,"value":-476800.0},{"quantile":-858368.0,"value":745600.0},{"quantile":810816.0,"value":355584.0},{"quantile":858368.0,"value":-977728.0},{"quantile":896512.0,"value":692352.0},{"quantile":477888.0,"value":49472.0},{"quantile":-675136.0,"value":-966592.0},{"quantile":114560.0,"value":-508352.0},{"quantile":-190336.0,"value":573312.0},{"quantile":-570688.0,"value":379456.0},{"quantile":-296256.0,"value":857024.0},{"quantile":-512576.0,"value":-326720.0},{"quantile":-379328.0,"value":-786688.0},{"quantile":-478080.0,"value":830720.0},{"quantile":-968128.0,"value":77184.0},{"quantile":-762688.0,"value":4096.0},{"quantile":-418688.0,"value":-418240.0},{"quantile":355712.0,"value":447168.0},{"quantile":427392.0,"value":842304.0},{"quantile":-338432.0,"value":-54336.0},{"quantile":960704.0,"value":861632.0},{"quantile":-922816.0,"value":-735232.0},{"quantile":201856.0,"value":-472000.0},{"quantile":-775936.0,"value":270656.0},{"quantile":-285120.0,"value":-137856.0},{"quantile":991936.0,"value":211520.0},{"quantile":734336.0,"value":-129152.0},{"quantile":735360.0,"value":118464.0},{"quantile":794176.0,"value":320896.0},{"quantile":-810688.0,"value":947264.0},{"quantile":-553728.0,"value":310464.0},{"quantile":-622976.0,"value":-603840.0},{"quantile":889984.0,"value":394304.0},{"quantile":28480.0,"value":-941824.0},{"quantile":-533952.0,"value":-415872.0},{"quantile":377216.0,"value":544960.0},{"quantile":165312.0,"value":-908992.0},{"quantile":-263168.0,"value":-104768.0},{"quantile":123520.0,"value":-119808.0},{"quantile":833024.0,"value":-106816.0},{"quantile":858368.0,"value":-788160.0}],"count":1041069121,"sum":-51840.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0494.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0494.json new file mode 100644 index 0000000000000..560d3cf7dc2b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0494.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T01:22:21.000018274Z","kind":"absolute","distribution":{"samples":[{"value":314368.0,"rate":214633154},{"value":589888.0,"rate":1812793956},{"value":-616768.0,"rate":3045754922},{"value":184448.0,"rate":133300763},{"value":-681024.0,"rate":4294967295},{"value":-966848.0,"rate":3081021831},{"value":85760.0,"rate":3730471402},{"value":770688.0,"rate":4110658445},{"value":129125.5837,"rate":12609915},{"value":-7936.0,"rate":2116768197},{"value":-524928.0,"rate":967954633},{"value":476352.0,"rate":1288272209},{"value":605440.0,"rate":1},{"value":-816640.0,"rate":2028269791},{"value":-31104.0,"rate":785490570},{"value":-858368.0,"rate":1214465925},{"value":-754816.0,"rate":169366632},{"value":280000.0,"rate":3651822224},{"value":242624.0,"rate":1461473071},{"value":-683776.0,"rate":2917041027},{"value":-634048.0,"rate":2390524537},{"value":436672.0,"rate":3755287157},{"value":-49536.0,"rate":3574671988},{"value":-794048.0,"rate":2024153994},{"value":290176.0,"rate":1824171275},{"value":610944.0,"rate":3546934156},{"value":371456.0,"rate":2248919851},{"value":880704.0,"rate":606812493},{"value":-266368.0,"rate":619726092},{"value":-304128.0,"rate":1723357724},{"value":-345600.0,"rate":1393530527},{"value":-131008.0,"rate":3766567415},{"value":152256.0,"rate":3586265567},{"value":82816.0,"rate":4294967295},{"value":-121984.0,"rate":2731326589},{"value":-11891.7075,"rate":3501218910},{"value":-381760.0,"rate":1},{"value":-634112.0,"rate":3604502030},{"value":-211648.0,"rate":1831254827},{"value":643776.0,"rate":2943571782},{"value":-660864.0,"rate":1436585111},{"value":378560.0,"rate":4161241477},{"value":904128.0,"rate":1},{"value":79424.0,"rate":425487823},{"value":-179584.0,"rate":240222414},{"value":511552.0,"rate":3809630698},{"value":-819840.0,"rate":3596936684},{"value":636160.0,"rate":3460391745},{"value":50688.0,"rate":3305785768},{"value":688064.0,"rate":292184382},{"value":280512.0,"rate":3302287745},{"value":93696.0,"rate":3970870967},{"value":-576384.0,"rate":2692977926},{"value":-39104.0,"rate":117049620},{"value":818752.0,"rate":4166716629},{"value":-885888.0,"rate":495408092},{"value":-656512.0,"rate":746498471},{"value":-635136.0,"rate":2288135753},{"value":-221696.0,"rate":0},{"value":435776.0,"rate":3818706721},{"value":932992.0,"rate":2173292531},{"value":423040.0,"rate":3818268933},{"value":23808.0,"rate":4268785275},{"value":574144.0,"rate":2653079687},{"value":-187648.0,"rate":1730033893},{"value":-347840.0,"rate":4294967295},{"value":839616.0,"rate":2631618359},{"value":-137152.0,"rate":2011216430},{"value":-601728.0,"rate":1796645063},{"value":-490814.8833,"rate":2035997393},{"value":518208.0,"rate":0},{"value":331904.0,"rate":974584677},{"value":-391017.0895,"rate":1629904131},{"value":730176.0,"rate":3066245272},{"value":-532416.0,"rate":2901911936},{"value":386752.0,"rate":1578128910},{"value":791040.0,"rate":37338130},{"value":-745792.0,"rate":1687031198},{"value":-276992.0,"rate":2349887174},{"value":44096.0,"rate":509204716},{"value":796672.0,"rate":3927029570},{"value":90048.0,"rate":1820196309},{"value":366528.0,"rate":4294967295},{"value":-559424.0,"rate":1368818754},{"value":456896.0,"rate":2359984468},{"value":-518784.0,"rate":1084407863},{"value":379520.0,"rate":3931988150},{"value":-303552.0,"rate":4182342227},{"value":477248.0,"rate":2910315183},{"value":568192.0,"rate":2386471082},{"value":-967296.0,"rate":253765052},{"value":202624.0,"rate":3901602814},{"value":758976.0,"rate":2508882021},{"value":816704.0,"rate":0},{"value":64512.0,"rate":1132494129},{"value":573184.0,"rate":4075763830},{"value":297728.0,"rate":1804988443},{"value":-392960.0,"rate":1146455664},{"value":-712256.0,"rate":906696151},{"value":614720.0,"rate":3752967961},{"value":-354112.0,"rate":3714657463},{"value":-323008.0,"rate":671101346},{"value":211328.0,"rate":2658846253},{"value":-98752.0,"rate":928944964},{"value":-846400.0,"rate":1718391945},{"value":-145984.0,"rate":500815648},{"value":245248.0,"rate":3474261735},{"value":467008.0,"rate":632287087},{"value":-907584.0,"rate":3310308327},{"value":-621120.0,"rate":724888483},{"value":-439232.0,"rate":1779541515},{"value":-499584.0,"rate":4045059513},{"value":-439680.0,"rate":471451102},{"value":5760.0,"rate":3737395821},{"value":-899584.0,"rate":3943495818},{"value":486912.0,"rate":4100993125},{"value":495744.0,"rate":3321486995},{"value":-517632.0,"rate":497422760}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0495.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0495.json new file mode 100644 index 0000000000000..907484e31f64f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0495.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"d","timestamp":"1970-01-01T03:02:16.000000001Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":810304.0,"value":422400.0},{"quantile":-715648.0,"value":-87936.0},{"quantile":867264.0,"value":935588.8308},{"quantile":852736.0,"value":-880576.0},{"quantile":259392.0,"value":-193984.0},{"quantile":-722240.0,"value":950592.0},{"quantile":-186624.0,"value":-719232.0},{"quantile":-220096.0,"value":558592.0},{"quantile":352448.0,"value":-643392.0},{"quantile":-369408.0,"value":-956672.0},{"quantile":130560.0,"value":538020.2085},{"quantile":-899904.0,"value":-258752.0},{"quantile":980032.0,"value":577088.0},{"quantile":-938496.0,"value":765184.0}],"count":1792459771,"sum":316160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0496.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0496.json new file mode 100644 index 0000000000000..0125ab522450b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0496.json @@ -0,0 +1 @@ +{"log":{"\u0019":true,"M‼":124544.0,"[":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0497.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0497.json new file mode 100644 index 0000000000000..f64641b68511b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0497.json @@ -0,0 +1 @@ +{"log":{"":[null,{"":{"":null,"I\u0010⩘":null},"\n":null,"⁩󿿽":null}],"=屣¨":"\\蠲"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0498.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0498.json new file mode 100644 index 0000000000000..48d35e4c2233e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0498.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"a","kind":"incremental","gauge":{"value":-738752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0499.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0499.json new file mode 100644 index 0000000000000..d1b7ee66c0155 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0499.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"c":"a","l":"y","q":"a"},"timestamp":"1969-12-31T19:00:44.000029753Z","kind":"absolute","distribution":{"samples":[{"value":103936.0,"rate":72657798},{"value":364992.0,"rate":364033779},{"value":720320.0,"rate":933296966},{"value":498560.0,"rate":4294967295},{"value":980736.0,"rate":1446909627},{"value":722560.0,"rate":127791452},{"value":-889856.0,"rate":3391039075},{"value":-366656.0,"rate":492253527},{"value":-210880.0,"rate":4196518897},{"value":787008.0,"rate":626446138},{"value":802944.0,"rate":4014324013},{"value":-426240.0,"rate":1},{"value":-734080.0,"rate":2887957010},{"value":-117632.0,"rate":3172932854},{"value":-660352.0,"rate":697019194},{"value":562560.0,"rate":1085371107},{"value":-198400.0,"rate":181721936},{"value":591296.0,"rate":1665134102},{"value":-254272.0,"rate":2076694016},{"value":-660992.0,"rate":2360416595},{"value":-785024.0,"rate":4294967295},{"value":-76672.0,"rate":2508151332},{"value":-710080.0,"rate":3262399893},{"value":-474816.0,"rate":2063442497},{"value":-507648.0,"rate":3609481346},{"value":282048.0,"rate":3791970645},{"value":651904.0,"rate":535609957},{"value":-215360.0,"rate":948539511},{"value":-337024.0,"rate":3631170670},{"value":-638016.0,"rate":1},{"value":679104.0,"rate":3422914926},{"value":-689088.0,"rate":3916942907},{"value":645696.0,"rate":2920433961},{"value":878464.0,"rate":325092353},{"value":-455104.0,"rate":1930019761},{"value":-227648.0,"rate":1067267660},{"value":-486592.0,"rate":3070480730},{"value":451392.0,"rate":775449227},{"value":-782656.0,"rate":2160751013},{"value":-838912.0,"rate":1060037109},{"value":762688.0,"rate":1627041383},{"value":996480.0,"rate":2160940726},{"value":-858304.0,"rate":3791483217},{"value":-243136.0,"rate":902238636},{"value":993920.0,"rate":2541497257},{"value":-108672.0,"rate":4053074841},{"value":767040.0,"rate":752250005},{"value":41920.0,"rate":4041149209},{"value":-28736.0,"rate":52978545},{"value":821952.0,"rate":3940058049},{"value":843648.0,"rate":1248423338},{"value":-944128.0,"rate":1},{"value":-920832.0,"rate":1681714189},{"value":-337536.0,"rate":167453885},{"value":636928.0,"rate":3834957462},{"value":-146464.0,"rate":3445950231},{"value":-173184.0,"rate":2848931433},{"value":775744.0,"rate":1815404115},{"value":-438016.0,"rate":3836939336}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0500.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0500.json new file mode 100644 index 0000000000000..06ab755cbf8d9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0500.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"j","timestamp":"1969-12-31T16:12:06.000015605Z","kind":"absolute","gauge":{"value":-536384.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0501.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0501.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0501.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0502.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0502.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0502.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0503.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0503.json new file mode 100644 index 0000000000000..9f69fa77356b8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0503.json @@ -0,0 +1 @@ +{"log":{"\b":925760.0,"O":"9","⁨":5731196535249105139}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0504.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0504.json new file mode 100644 index 0000000000000..4689da4c613ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0504.json @@ -0,0 +1 @@ +{"metric":{"name":"f","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-914304.0,"value":-485440.0},{"quantile":-13952.0,"value":634176.0},{"quantile":-885568.0,"value":2496.0},{"quantile":3234.833,"value":-505088.0},{"quantile":192256.0,"value":-834048.0},{"quantile":330688.0,"value":647808.0},{"quantile":349632.0,"value":-624384.0},{"quantile":528768.0,"value":-17728.0},{"quantile":541376.0,"value":584000.0},{"quantile":732864.0,"value":-828416.0},{"quantile":475392.0,"value":374464.0},{"quantile":-237120.0,"value":-47936.0},{"quantile":-667648.0,"value":-519232.0},{"quantile":737920.0,"value":137920.0},{"quantile":877568.0,"value":-71936.0},{"quantile":-872640.0,"value":-785984.0},{"quantile":312000.0,"value":-85568.0},{"quantile":781440.0,"value":-842304.0},{"quantile":960832.0,"value":765238.5233},{"quantile":-58816.0,"value":-290368.0},{"quantile":14067.6473,"value":65536.0},{"quantile":461824.0,"value":593152.0},{"quantile":-742080.0,"value":-729472.0},{"quantile":-896512.0,"value":-749504.0},{"quantile":707328.0,"value":644736.0},{"quantile":-207168.0,"value":587328.0},{"quantile":-547136.0,"value":806976.0},{"quantile":376320.0,"value":858368.0},{"quantile":-458048.0,"value":-858368.0},{"quantile":40384.0,"value":-229376.0},{"quantile":376192.0,"value":-23360.0},{"quantile":412992.0,"value":683008.0},{"quantile":-204032.0,"value":595392.0},{"quantile":-728832.0,"value":-893632.0},{"quantile":308416.0,"value":-573696.0},{"quantile":688896.0,"value":858368.0},{"quantile":133696.0,"value":508736.0},{"quantile":-105216.0,"value":858368.0},{"quantile":547712.0,"value":711296.0},{"quantile":991616.0,"value":-64896.0},{"quantile":-380480.0,"value":435264.0},{"quantile":903872.0,"value":7823.8179},{"quantile":446272.0,"value":519168.0},{"quantile":-839808.0,"value":-738624.0},{"quantile":726528.0,"value":368768.0},{"quantile":842880.0,"value":290688.0},{"quantile":711488.0,"value":-160704.0},{"quantile":179008.0,"value":-94080.0},{"quantile":140928.0,"value":795328.0},{"quantile":748160.0,"value":729920.0},{"quantile":482752.0,"value":351296.0},{"quantile":-135936.0,"value":896064.0},{"quantile":820224.0,"value":-27328.0},{"quantile":768000.0,"value":617472.0},{"quantile":502720.0,"value":752000.0},{"quantile":-636288.0,"value":465984.0},{"quantile":-369024.0,"value":-858368.0},{"quantile":763072.0,"value":-465280.0},{"quantile":-450752.0,"value":-72896.0},{"quantile":269696.0,"value":666368.0},{"quantile":-387072.0,"value":-82688.0},{"quantile":304320.0,"value":531520.0},{"quantile":-183552.0,"value":-893632.0},{"quantile":-894016.0,"value":-16512.0},{"quantile":388416.0,"value":-903360.0},{"quantile":-10756.7643,"value":753472.0},{"quantile":946304.0,"value":797888.0},{"quantile":-568896.0,"value":-521664.0},{"quantile":-841792.0,"value":702528.0},{"quantile":130240.0,"value":143808.0},{"quantile":619392.0,"value":103552.0},{"quantile":-569926.5625,"value":202240.0},{"quantile":-424064.0,"value":-945088.0},{"quantile":-525952.0,"value":18304.0},{"quantile":418112.0,"value":110848.0},{"quantile":-1024.0,"value":404032.0},{"quantile":44992.0,"value":28928.0},{"quantile":721024.0,"value":-203840.0},{"quantile":-923840.0,"value":40896.0},{"quantile":-194048.0,"value":756736.0},{"quantile":445312.0,"value":-501120.0},{"quantile":-421888.0,"value":-300480.0},{"quantile":304448.0,"value":-370752.0},{"quantile":-24512.0,"value":-960768.0},{"quantile":-692864.0,"value":-682112.0},{"quantile":-947968.0,"value":822144.0},{"quantile":-832384.0,"value":590400.0},{"quantile":62912.0,"value":73792.0},{"quantile":-576704.0,"value":516736.0},{"quantile":65.8286,"value":-132608.0},{"quantile":-399040.0,"value":-673408.0},{"quantile":767424.0,"value":425472.0},{"quantile":-812790.0,"value":746880.0},{"quantile":-858368.0,"value":-121128.3605},{"quantile":-175616.0,"value":197120.0},{"quantile":-331136.0,"value":-624640.0},{"quantile":110912.0,"value":537216.0},{"quantile":43328.0,"value":-569344.0},{"quantile":1060.507,"value":961152.0},{"quantile":-565248.0,"value":157056.0},{"quantile":-697856.0,"value":-793536.0},{"quantile":388160.0,"value":-243328.0},{"quantile":802624.0,"value":-940992.0},{"quantile":740608.0,"value":68224.0},{"quantile":969728.0,"value":-538752.0},{"quantile":336064.0,"value":-900672.0},{"quantile":661824.0,"value":886528.0},{"quantile":-365568.0,"value":-711680.0},{"quantile":-43968.0,"value":-743680.0},{"quantile":627776.0,"value":753024.0},{"quantile":926912.0,"value":-820544.0},{"quantile":-415040.0,"value":-262144.0},{"quantile":713664.0,"value":86208.0},{"quantile":430400.0,"value":-719552.0},{"quantile":-511552.0,"value":858368.0},{"quantile":-645696.0,"value":276992.0},{"quantile":-256576.0,"value":149568.0}],"count":4237051255,"sum":276736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0505.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0505.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0505.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0506.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0506.json new file mode 100644 index 0000000000000..b5f05d1c86b8c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0506.json @@ -0,0 +1 @@ +{"log":{"":377083781264159525}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0507.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0507.json new file mode 100644 index 0000000000000..97832dd617073 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0507.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"q","tags":{"g":"e","x":"x"},"kind":"absolute","gauge":{"value":394944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0508.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0508.json new file mode 100644 index 0000000000000..a19ae010c803a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0508.json @@ -0,0 +1 @@ +{"log":{"ni":{"":[{"؂k&":null},{},null],"\u0006":{"":-169216.0,"W;•":false,"ᢸ":{"^":"慻2","‘\u001e":{},"򤑿灟u":{"#fˆ":-242624.0,"䟓":{"6‚‰":{"<۝":{"":{"":false,"“ꞻ":-8906341521402263389," †":null},";\u0011}":7200545731122863750}},"{Ÿ":true},"𖌄竷":true}}},"5􏿽W":false},"⁕}5":{"":{"":{"":9035845488640546376},"™†󇔦":false,"ʼn":-778816.0},"`":{},"򪭫‧":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0509.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0509.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0509.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0510.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0510.json new file mode 100644 index 0000000000000..4eea801c4b95c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0510.json @@ -0,0 +1 @@ +{"metric":{"name":"d","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-525312.0,"value":-114816.0},{"quantile":642752.0,"value":122752.0},{"quantile":-468311.125,"value":699520.0},{"quantile":-961344.0,"value":275904.0},{"quantile":-946624.0,"value":-166592.0},{"quantile":829120.0,"value":968640.0},{"quantile":-315072.0,"value":153984.0},{"quantile":718528.0,"value":-934336.0},{"quantile":-45888.0,"value":-858368.0},{"quantile":271232.0,"value":-353088.0},{"quantile":186880.0,"value":858368.0},{"quantile":100096.0,"value":-622848.0},{"quantile":-731648.0,"value":189440.0},{"quantile":774464.0,"value":596160.0},{"quantile":24192.0,"value":316544.0},{"quantile":-438016.0,"value":537728.0},{"quantile":831744.0,"value":641856.0},{"quantile":-858368.0,"value":688320.0},{"quantile":858368.0,"value":-106176.0},{"quantile":-539520.0,"value":-961728.0},{"quantile":216064.0,"value":590336.0},{"quantile":-190976.0,"value":-830080.0},{"quantile":-660544.0,"value":861696.0},{"quantile":-455040.0,"value":129472.0},{"quantile":914048.0,"value":421824.0},{"quantile":-61248.0,"value":776384.0},{"quantile":-676096.0,"value":510072.0},{"quantile":-71296.0,"value":-166976.0},{"quantile":-681408.0,"value":-239168.0},{"quantile":-884544.0,"value":-676694.9171},{"quantile":-274240.0,"value":-217536.0},{"quantile":509824.0,"value":664000.0},{"quantile":922624.0,"value":-881664.0},{"quantile":514880.0,"value":-512768.0},{"quantile":396992.0,"value":-476864.0},{"quantile":-74176.0,"value":-871808.0},{"quantile":220544.0,"value":182016.0},{"quantile":-753408.0,"value":878208.0},{"quantile":-138752.0,"value":-399281.8125},{"quantile":889664.0,"value":-446784.0},{"quantile":760448.0,"value":-838336.0},{"quantile":696064.0,"value":817472.0},{"quantile":-538944.0,"value":20928.0},{"quantile":876160.0,"value":-913920.0},{"quantile":290944.0,"value":168832.0},{"quantile":-370560.0,"value":-868416.0},{"quantile":-350656.0,"value":42048.0},{"quantile":758208.0,"value":-794496.0},{"quantile":448832.0,"value":627968.0},{"quantile":-867456.0,"value":708800.0},{"quantile":-300288.0,"value":229376.0},{"quantile":191296.0,"value":623357.5247},{"quantile":-461696.0,"value":381184.0},{"quantile":-900480.0,"value":-462464.0},{"quantile":-341056.0,"value":224086.5948},{"quantile":848768.0,"value":922752.0},{"quantile":154816.0,"value":735424.0},{"quantile":472704.0,"value":-438400.0},{"quantile":471104.0,"value":912256.0},{"quantile":-9192.0445,"value":-726144.0},{"quantile":-858368.0,"value":-108352.0},{"quantile":-206080.0,"value":-888512.0},{"quantile":-709760.0,"value":-337856.0},{"quantile":-616896.0,"value":373824.0},{"quantile":636864.0,"value":-876672.0},{"quantile":-269760.0,"value":254336.0},{"quantile":858368.0,"value":673088.0},{"quantile":-7.7458,"value":-129536.0},{"quantile":-858368.0,"value":964288.0},{"quantile":-31190.3477,"value":-725952.0},{"quantile":712960.0,"value":15451.2404},{"quantile":-487872.0,"value":413312.0}],"count":205813266,"sum":618432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0511.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0511.json new file mode 100644 index 0000000000000..81bfb43a738f2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0511.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"u","kind":"incremental","counter":{"value":-474816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0512.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0512.json new file mode 100644 index 0000000000000..dd9e55099f240 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0512.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"p","tags":{"e":"k"},"timestamp":"1970-01-01T01:58:41.000012048Z","kind":"absolute","counter":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0513.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0513.json new file mode 100644 index 0000000000000..2d9e7117863de --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0513.json @@ -0,0 +1 @@ +{"log":{"":"","E":"'"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0514.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0514.json new file mode 100644 index 0000000000000..c0978ca58a106 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0514.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"o":"e","x":"r"},"timestamp":"1969-12-31T17:33:37.000022100Z","kind":"incremental","counter":{"value":-945664.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0515.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0515.json new file mode 100644 index 0000000000000..2e71903e417c4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0515.json @@ -0,0 +1 @@ +{"log":{"":"\\=","‟F ":null,"񋝴!":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0516.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0516.json new file mode 100644 index 0000000000000..50d8ed64ea498 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0516.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-861376.0,"value":793024.0},{"quantile":-458816.0,"value":-556120.7278},{"quantile":-218560.0,"value":-104128.0},{"quantile":521536.0,"value":-898240.0},{"quantile":571776.0,"value":458560.0},{"quantile":731392.0,"value":941120.0},{"quantile":-1101.5798,"value":544768.0},{"quantile":-725312.0,"value":-636864.0},{"quantile":685568.0,"value":-92032.0},{"quantile":-126080.0,"value":79104.0},{"quantile":-463808.0,"value":-279936.0},{"quantile":957312.0,"value":-185216.0},{"quantile":222528.0,"value":797824.0},{"quantile":-817472.0,"value":-621760.0},{"quantile":832320.0,"value":-211328.0},{"quantile":36480.0,"value":180160.0},{"quantile":-765312.0,"value":-25024.0},{"quantile":-858368.0,"value":-4992.0},{"quantile":-443200.0,"value":865664.0},{"quantile":-192192.0,"value":666880.0},{"quantile":-799040.0,"value":-672832.0}],"count":2221971470,"sum":-752448.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0517.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0517.json new file mode 100644 index 0000000000000..785724e5e138f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0517.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"_":"d","s":"u"},"timestamp":"1969-12-31T16:22:44.000015042Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":341312.0,"count":26349130},{"upper_limit":-545472.0,"count":1},{"upper_limit":-264064.0,"count":1107645480},{"upper_limit":-39231.2967,"count":1599115414},{"upper_limit":-258461.408,"count":976945159},{"upper_limit":-51392.0,"count":3667610592},{"upper_limit":62080.0,"count":4294967295},{"upper_limit":-202112.0,"count":2093659986},{"upper_limit":487552.0,"count":2806686909},{"upper_limit":127680.0,"count":3159581211},{"upper_limit":858368.0,"count":1054041856},{"upper_limit":-84288.0,"count":2833527251},{"upper_limit":-368384.0,"count":2342420023},{"upper_limit":-663168.0,"count":3233797338},{"upper_limit":-296640.0,"count":1474512895},{"upper_limit":445312.0,"count":566419596},{"upper_limit":-827072.0,"count":3381615719},{"upper_limit":-288704.0,"count":4260052162},{"upper_limit":-313920.0,"count":4294967295},{"upper_limit":-322944.0,"count":87333907},{"upper_limit":980864.0,"count":1591569381},{"upper_limit":-853440.0,"count":1245612527},{"upper_limit":-208960.0,"count":4172167364},{"upper_limit":863232.0,"count":416536618},{"upper_limit":162752.0,"count":4294967295},{"upper_limit":-823488.0,"count":1794163963},{"upper_limit":-980736.0,"count":725945681},{"upper_limit":737792.0,"count":406263254},{"upper_limit":858368.0,"count":138476885},{"upper_limit":362688.0,"count":2029908775},{"upper_limit":962624.0,"count":3673907843},{"upper_limit":-341312.0,"count":2482687779},{"upper_limit":264832.0,"count":2083628847},{"upper_limit":724864.0,"count":920210730},{"upper_limit":198656.0,"count":299323303},{"upper_limit":-62336.0,"count":2098902198},{"upper_limit":-493568.0,"count":1963248481},{"upper_limit":200448.0,"count":3486593116},{"upper_limit":-251136.0,"count":2300887223},{"upper_limit":-253952.0,"count":0},{"upper_limit":-945600.0,"count":1623310925},{"upper_limit":-805760.0,"count":2150140603},{"upper_limit":744256.0,"count":767766201},{"upper_limit":882688.0,"count":1177244407},{"upper_limit":-393792.0,"count":4294967295},{"upper_limit":561664.0,"count":1055663671},{"upper_limit":-332800.0,"count":3346091601},{"upper_limit":719108.0,"count":4118332960},{"upper_limit":590336.0,"count":1805408279},{"upper_limit":728768.0,"count":1},{"upper_limit":-759104.0,"count":263545913},{"upper_limit":408192.0,"count":4111341699},{"upper_limit":665062.6072,"count":1721950795},{"upper_limit":-857088.0,"count":1881637182}],"count":3738109463,"sum":954752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0518.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0518.json new file mode 100644 index 0000000000000..1e5cfa9cf2d77 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0518.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1969-12-31T21:52:00.000029550Z","kind":"absolute","distribution":{"samples":[{"value":-581760.0,"rate":3178729693},{"value":858368.0,"rate":1701936147},{"value":-16064.0,"rate":145667023},{"value":657792.0,"rate":979906069},{"value":-496128.0,"rate":2195654554},{"value":523072.0,"rate":837082324},{"value":-411968.0,"rate":2177885477},{"value":-440832.0,"rate":1511326065},{"value":983872.0,"rate":544911646},{"value":57472.0,"rate":3621428133},{"value":73.2794,"rate":2018454458},{"value":257792.0,"rate":1816029920},{"value":-858368.0,"rate":3921073991},{"value":747264.0,"rate":703915500},{"value":875712.0,"rate":3938602419}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0519.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0519.json new file mode 100644 index 0000000000000..f78a0f78620ac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0519.json @@ -0,0 +1 @@ +{"log":{"-":904512.0,"U₤":5048011255335884528}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0520.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0520.json new file mode 100644 index 0000000000000..06a604cfaab85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0520.json @@ -0,0 +1 @@ +{"log":{"\n\u0004":-4486248107194071294," 㨯\u0018":{"\u0006":{},"\u0007Y":null,"刪":""},"@哩\u001b":73216.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0521.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0521.json new file mode 100644 index 0000000000000..15fa4c823c7cf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0521.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"b":"w","o":"q"},"timestamp":"1970-01-01T01:03:29.000007958Z","kind":"incremental","counter":{"value":253120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0522.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0522.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0522.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0523.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0523.json new file mode 100644 index 0000000000000..377010624307d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0523.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"p":"z","q":"a"},"timestamp":"1970-01-01T01:30:17.000029220Z","kind":"absolute","distribution":{"samples":[{"value":-119598.3342,"rate":3315589826},{"value":38080.0,"rate":1},{"value":-552320.0,"rate":7297862},{"value":-858368.0,"rate":2441985778},{"value":858112.0,"rate":682912041},{"value":699648.0,"rate":2454069248},{"value":320896.0,"rate":3679045238},{"value":-646592.0,"rate":2938398168},{"value":795776.0,"rate":1},{"value":222336.0,"rate":2766268501},{"value":960.0,"rate":2705039426},{"value":858368.0,"rate":32470143},{"value":890048.0,"rate":3614838704},{"value":-891456.0,"rate":888022263},{"value":-710272.0,"rate":3848651188},{"value":-515840.0,"rate":1754709153},{"value":-546496.0,"rate":3729466509},{"value":-594048.0,"rate":3623059579},{"value":368064.0,"rate":0},{"value":376258.4794,"rate":3570088745},{"value":-807232.0,"rate":4294967295},{"value":607488.0,"rate":2641988233},{"value":22464.0,"rate":437444078},{"value":841408.0,"rate":3032839787},{"value":-858368.0,"rate":4294967295},{"value":-476864.0,"rate":957066967},{"value":135360.0,"rate":2482154808},{"value":573952.0,"rate":1344642724},{"value":733568.0,"rate":750352941},{"value":-921792.0,"rate":0},{"value":-893120.0,"rate":3227999365},{"value":964480.0,"rate":2793723876},{"value":-632640.0,"rate":3361887534},{"value":-949696.0,"rate":3312975889},{"value":41621.25,"rate":904340780},{"value":586624.0,"rate":3163679739},{"value":-230038.4648,"rate":912147946}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0524.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0524.json new file mode 100644 index 0000000000000..03795306ef4f3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0524.json @@ -0,0 +1 @@ +{"log":{"®\u0005":[""]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0525.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0525.json new file mode 100644 index 0000000000000..3f0814f4d37b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0525.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"e","timestamp":"1969-12-31T17:42:19.000023700Z","kind":"incremental","counter":{"value":-465664.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0526.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0526.json new file mode 100644 index 0000000000000..3ee921840f84f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0526.json @@ -0,0 +1 @@ +{"log":{"":true,"-\u00031":{"[":[[1075336639375652118]],"].8":{"":-90603525556453560,"5팃":{"":-265984.0,"㉶":101696.0}}},"򬖏峀E":{"":{"Fw2":true,"I":-8327304098824045795,"‍©𝅳":-435888487917799174}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0527.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0527.json new file mode 100644 index 0000000000000..8fe0f94234cd5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0527.json @@ -0,0 +1 @@ +{"log":{"化 \\":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0528.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0528.json new file mode 100644 index 0000000000000..a38fbe81b76ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0528.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"p","timestamp":"1969-12-31T18:49:16.000018253Z","kind":"incremental","counter":{"value":-851328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0529.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0529.json new file mode 100644 index 0000000000000..f481ef8f943d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0529.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"p","timestamp":"1970-01-01T05:12:05Z","kind":"incremental","distribution":{"samples":[{"value":810816.0,"rate":419171072},{"value":469248.0,"rate":2860924447},{"value":-138496.0,"rate":1687612073},{"value":858368.0,"rate":2123894952},{"value":-637184.0,"rate":2364956705},{"value":788736.0,"rate":832552873},{"value":-222336.0,"rate":2188724103},{"value":96192.0,"rate":1994632540},{"value":-249344.0,"rate":0},{"value":245120.0,"rate":787397111},{"value":438336.0,"rate":3213379425},{"value":882688.0,"rate":959668537},{"value":709184.0,"rate":583721276},{"value":993920.0,"rate":4217389344},{"value":-426240.0,"rate":3497849023},{"value":863744.0,"rate":3139086377},{"value":-880704.0,"rate":2432707773},{"value":-791296.0,"rate":2165823903},{"value":225664.0,"rate":3482125120},{"value":813568.0,"rate":1079456976},{"value":-89600.0,"rate":1116407462},{"value":123840.0,"rate":3340034972},{"value":135104.0,"rate":2889228062},{"value":-858368.0,"rate":3109688479},{"value":904640.0,"rate":461656347},{"value":899904.0,"rate":341965205},{"value":635840.0,"rate":1031209724},{"value":812864.0,"rate":713074278},{"value":-88640.0,"rate":0},{"value":339904.0,"rate":2858568892},{"value":618304.0,"rate":3985069760},{"value":934016.0,"rate":1375352234},{"value":652800.0,"rate":3217992164},{"value":-272512.0,"rate":74720907},{"value":-225472.0,"rate":574685855},{"value":-902272.0,"rate":2164808462},{"value":-799040.0,"rate":3591299043},{"value":114304.0,"rate":3009932263},{"value":-387136.0,"rate":1743521910},{"value":761140.1274,"rate":1018247350},{"value":-677376.0,"rate":4258936691},{"value":-278272.0,"rate":3525547178},{"value":994816.0,"rate":2701479624},{"value":-725224.5493,"rate":2237542543},{"value":609792.0,"rate":1534653301},{"value":310336.0,"rate":3806920589},{"value":96576.0,"rate":423859529},{"value":-957568.0,"rate":3022488212},{"value":465024.0,"rate":1702582137},{"value":823360.0,"rate":2921813621},{"value":493696.0,"rate":2372064099},{"value":-920384.0,"rate":3358123200},{"value":296512.0,"rate":3258435140},{"value":668992.0,"rate":4190883574},{"value":139072.0,"rate":3859344059},{"value":384960.0,"rate":1748827108},{"value":-546752.0,"rate":1311036531},{"value":-456064.0,"rate":340846722},{"value":659776.0,"rate":3580424581},{"value":-716928.0,"rate":215808260},{"value":144640.0,"rate":1625678179},{"value":20032.0,"rate":1943670800},{"value":-536448.0,"rate":2670147214},{"value":-132928.0,"rate":261966237},{"value":-300288.0,"rate":4224007496},{"value":-646464.0,"rate":3380405714},{"value":963968.0,"rate":3927190575},{"value":-632448.0,"rate":3895677213},{"value":-858368.0,"rate":2584991780},{"value":506176.0,"rate":1},{"value":-503296.0,"rate":723443002},{"value":-486720.0,"rate":426372075},{"value":694912.0,"rate":3374283450},{"value":89792.0,"rate":455657641}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0530.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0530.json new file mode 100644 index 0000000000000..32a02b32fd94f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0530.json @@ -0,0 +1 @@ +{"log":{"\u000b@":{"؀𧕠":null,"𸃍沫镋":null},"…":[],"ª":-4620767605128788083}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0531.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0531.json new file mode 100644 index 0000000000000..baa6cf2daa89f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0531.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"c":"a","s":"h"},"timestamp":"1970-01-01T03:32:40Z","kind":"absolute","gauge":{"value":330304.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0532.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0532.json new file mode 100644 index 0000000000000..77fa447c61037 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0532.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-305412.7588,"count":58984488},{"upper_limit":-57984.0,"count":3425977287},{"upper_limit":568064.0,"count":4280626213},{"upper_limit":710080.0,"count":1044412948},{"upper_limit":946432.0,"count":1356078657},{"upper_limit":-484608.0,"count":1159004089},{"upper_limit":963776.0,"count":0},{"upper_limit":249290.2291,"count":3891353951},{"upper_limit":197440.0,"count":4014655639},{"upper_limit":109376.0,"count":3212544251},{"upper_limit":-953344.0,"count":3145624597},{"upper_limit":444544.0,"count":523517576},{"upper_limit":-561216.0,"count":2457147508},{"upper_limit":758720.0,"count":3899420235},{"upper_limit":586816.0,"count":147857663},{"upper_limit":-688896.0,"count":1682981180},{"upper_limit":308928.0,"count":0},{"upper_limit":-318528.0,"count":3317628921},{"upper_limit":-554368.0,"count":1672594543},{"upper_limit":-190144.0,"count":740502555},{"upper_limit":65472.0,"count":3856514247},{"upper_limit":915200.0,"count":759196680},{"upper_limit":842048.0,"count":1184802189},{"upper_limit":469248.0,"count":1140454973},{"upper_limit":-346301.3096,"count":0},{"upper_limit":-10688.0,"count":1668290903},{"upper_limit":-940096.0,"count":4294967295},{"upper_limit":-409216.0,"count":194517603},{"upper_limit":707072.0,"count":1989212061},{"upper_limit":-272832.0,"count":3023289508},{"upper_limit":-871168.0,"count":1952410946},{"upper_limit":141568.0,"count":2556423447},{"upper_limit":-305408.0,"count":1735805985},{"upper_limit":716288.0,"count":1683829510},{"upper_limit":-109760.0,"count":3914029763},{"upper_limit":448960.0,"count":1229143884},{"upper_limit":-842304.0,"count":1503035630},{"upper_limit":401854.0557,"count":1},{"upper_limit":-411648.0,"count":544278787},{"upper_limit":718208.0,"count":3821527319},{"upper_limit":-198400.0,"count":3845388840},{"upper_limit":-726528.0,"count":3492137702},{"upper_limit":-858368.0,"count":611661084},{"upper_limit":208384.0,"count":2028745761},{"upper_limit":-855360.0,"count":4041379430},{"upper_limit":107712.0,"count":744525890},{"upper_limit":961792.0,"count":3367050456},{"upper_limit":-772992.0,"count":2980170446},{"upper_limit":144064.0,"count":1126421365},{"upper_limit":-315264.0,"count":3983755092},{"upper_limit":500288.0,"count":1893730284},{"upper_limit":-584512.0,"count":2282402742},{"upper_limit":-837632.0,"count":2451126242},{"upper_limit":490624.0,"count":321474052},{"upper_limit":-204352.0,"count":1205949786},{"upper_limit":80896.0,"count":116649887},{"upper_limit":99200.0,"count":4294967295},{"upper_limit":875840.0,"count":1436435786},{"upper_limit":-248256.0,"count":3045019520},{"upper_limit":-242560.0,"count":2012955555},{"upper_limit":205248.0,"count":3189168117},{"upper_limit":-629632.0,"count":3860207606},{"upper_limit":-214528.0,"count":1229136513},{"upper_limit":458176.0,"count":216095285},{"upper_limit":-377344.0,"count":1},{"upper_limit":651712.0,"count":3387453723},{"upper_limit":406016.0,"count":755392594},{"upper_limit":791552.0,"count":2757195871},{"upper_limit":577856.0,"count":593158641},{"upper_limit":422.2302,"count":1410813811},{"upper_limit":858368.0,"count":1584322212},{"upper_limit":-900352.0,"count":1933684702},{"upper_limit":-535872.0,"count":3345856622},{"upper_limit":944448.0,"count":3923509427},{"upper_limit":-428096.0,"count":2176809},{"upper_limit":297216.0,"count":1927658309},{"upper_limit":-486848.0,"count":2410796939},{"upper_limit":328128.0,"count":2054485988},{"upper_limit":-684416.0,"count":2237764299},{"upper_limit":774720.0,"count":1117095526},{"upper_limit":869394.6726,"count":2654517471},{"upper_limit":369088.0,"count":4294967295},{"upper_limit":-500160.0,"count":893536453},{"upper_limit":-647680.0,"count":58449432},{"upper_limit":-25781.4935,"count":4091136800},{"upper_limit":69888.0,"count":888114882},{"upper_limit":67008.0,"count":2317811362},{"upper_limit":-462912.0,"count":3589746413},{"upper_limit":-912960.0,"count":1578645392},{"upper_limit":-500928.0,"count":2815190238},{"upper_limit":-858368.0,"count":1},{"upper_limit":-327680.0,"count":2415604633},{"upper_limit":-863552.0,"count":3090770754},{"upper_limit":-996864.0,"count":88834561}],"count":4023163784,"sum":473856.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0533.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0533.json new file mode 100644 index 0000000000000..c24e4cc90b051 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0533.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"d":"d"},"timestamp":"1970-01-01T01:35:39.000007892Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-858368.0,"count":2721813732},{"upper_limit":479040.0,"count":1640074386},{"upper_limit":742848.0,"count":2339915303},{"upper_limit":811712.0,"count":0},{"upper_limit":998336.0,"count":3957153534},{"upper_limit":-815104.0,"count":2417966177},{"upper_limit":700800.0,"count":3408166973},{"upper_limit":19136.0,"count":4294967295},{"upper_limit":-64.3644,"count":3971374115},{"upper_limit":-565632.0,"count":890739206},{"upper_limit":-976272.9219,"count":2711145371},{"upper_limit":117120.0,"count":3544125056},{"upper_limit":-94272.0,"count":2566743552},{"upper_limit":216512.0,"count":3256812822},{"upper_limit":702016.0,"count":3343245408},{"upper_limit":473792.0,"count":1012974028},{"upper_limit":-178496.0,"count":4294967295},{"upper_limit":383040.0,"count":288739484},{"upper_limit":-641216.0,"count":0},{"upper_limit":-148736.0,"count":3601269755},{"upper_limit":-634112.0,"count":3755920649},{"upper_limit":-715072.0,"count":4294967295},{"upper_limit":448292.3747,"count":733366850},{"upper_limit":-858368.0,"count":1662628434},{"upper_limit":114368.0,"count":2920138330},{"upper_limit":-573056.0,"count":4087947749},{"upper_limit":-441856.0,"count":3829004178},{"upper_limit":364544.0,"count":1},{"upper_limit":-162176.0,"count":2087531256},{"upper_limit":-142656.0,"count":2490364940},{"upper_limit":-715712.0,"count":1057973241},{"upper_limit":141888.0,"count":1293285603},{"upper_limit":-58624.0,"count":4059234778},{"upper_limit":201472.0,"count":2655255743},{"upper_limit":-579392.0,"count":1033029337},{"upper_limit":419136.0,"count":4294967295},{"upper_limit":-545600.0,"count":1207377233},{"upper_limit":-17792.0,"count":3469500809},{"upper_limit":-433600.0,"count":1508270170},{"upper_limit":-80640.0,"count":4071596916},{"upper_limit":-646528.0,"count":1929675968},{"upper_limit":-563584.0,"count":3497542109},{"upper_limit":459200.0,"count":1892004856},{"upper_limit":-310720.0,"count":2696332489},{"upper_limit":556608.0,"count":519295999},{"upper_limit":-902848.0,"count":347412336},{"upper_limit":858368.0,"count":1822166207},{"upper_limit":507136.0,"count":0},{"upper_limit":-544576.0,"count":0}],"count":1055479741,"sum":-615424.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0534.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0534.json new file mode 100644 index 0000000000000..4c91ff2988435 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0534.json @@ -0,0 +1 @@ +{"log":{"|":[" U:",false]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0535.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0535.json new file mode 100644 index 0000000000000..78c55b39bdc40 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0535.json @@ -0,0 +1 @@ +{"metric":{"name":"_","kind":"incremental","distribution":{"samples":[{"value":858368.0,"rate":1556336517},{"value":686848.0,"rate":3497547637},{"value":-858368.0,"rate":4038365420},{"value":926528.0,"rate":920032019},{"value":-609984.0,"rate":1678759891},{"value":641920.0,"rate":3383656574},{"value":445056.0,"rate":3028071937},{"value":-76032.0,"rate":3466833836},{"value":-17984.0,"rate":4294967295},{"value":968832.0,"rate":3754116057},{"value":463296.0,"rate":0},{"value":542016.0,"rate":2648099715},{"value":-703424.0,"rate":1783176385},{"value":657152.0,"rate":2827128371},{"value":553984.0,"rate":3137862824},{"value":858368.0,"rate":3028714934},{"value":204416.0,"rate":2050324943},{"value":937792.0,"rate":3914586756},{"value":-372864.0,"rate":1260277193},{"value":49408.0,"rate":1},{"value":-418944.0,"rate":4291928723},{"value":826752.0,"rate":4126146828},{"value":-515904.0,"rate":274881619},{"value":252608.0,"rate":1939866908},{"value":12060.8413,"rate":3604269726},{"value":-700800.0,"rate":2321198496},{"value":-2304.0,"rate":3096824867},{"value":858368.0,"rate":1185379925},{"value":-337152.0,"rate":3682279604},{"value":-222784.0,"rate":3726137429},{"value":-139904.0,"rate":3569655727},{"value":91264.0,"rate":0},{"value":-623488.0,"rate":1181921480},{"value":-292485.049,"rate":3947448754},{"value":214976.0,"rate":2821244238},{"value":964288.0,"rate":2320138941},{"value":-265728.0,"rate":223020812},{"value":-909632.0,"rate":2055398904},{"value":-497088.0,"rate":1684790445},{"value":-849216.0,"rate":2703430128},{"value":-890176.0,"rate":1751415589},{"value":-753088.0,"rate":432927471},{"value":-6656.0,"rate":2198679511},{"value":-438144.0,"rate":2845073804},{"value":279552.0,"rate":2002875426},{"value":112832.0,"rate":1708266123},{"value":432064.0,"rate":1794031609},{"value":188800.0,"rate":2692124369},{"value":186816.0,"rate":2025114855},{"value":340032.0,"rate":51814067},{"value":852672.0,"rate":1065081016},{"value":-753536.0,"rate":3464352960},{"value":35776.0,"rate":1899697103},{"value":-543104.0,"rate":4294967295},{"value":327808.0,"rate":1555191401},{"value":153408.0,"rate":2615238370},{"value":358592.0,"rate":3422460083},{"value":-310208.0,"rate":2520250510},{"value":130176.0,"rate":3089919619},{"value":197312.0,"rate":924576745},{"value":729280.0,"rate":3667561771},{"value":-739520.0,"rate":2997725287},{"value":-665344.0,"rate":2954124057},{"value":-105088.0,"rate":3957370203},{"value":380140.0,"rate":1},{"value":942656.0,"rate":2699970312},{"value":567232.0,"rate":741224425},{"value":929536.0,"rate":3142541501},{"value":578240.0,"rate":1756493821},{"value":-938560.0,"rate":3025031110},{"value":-481024.0,"rate":32156261},{"value":343744.0,"rate":90847152},{"value":488448.0,"rate":1485666550},{"value":-698112.0,"rate":2572239653},{"value":-842944.0,"rate":2823431582},{"value":676352.0,"rate":2404041220},{"value":-361216.0,"rate":3244355961},{"value":-516288.0,"rate":3484540543},{"value":-108160.0,"rate":1187697334},{"value":858368.0,"rate":2165564724},{"value":-449408.0,"rate":475218370},{"value":-963712.0,"rate":2865165483},{"value":851584.0,"rate":3311821879},{"value":-254272.0,"rate":124169340},{"value":-713472.0,"rate":1917095138},{"value":-2752.0,"rate":1},{"value":-451392.0,"rate":375900825},{"value":578560.0,"rate":618910440},{"value":-995776.0,"rate":160889494},{"value":-273216.0,"rate":3061623040},{"value":-604413.812,"rate":1902311175},{"value":-689984.0,"rate":0},{"value":166720.0,"rate":3268753775},{"value":-301504.0,"rate":3268199091},{"value":-6656.0,"rate":2340295259},{"value":-520320.0,"rate":2740025344},{"value":680384.0,"rate":1313638561},{"value":-306880.0,"rate":2147439897},{"value":-336128.0,"rate":3767007528},{"value":-901120.0,"rate":4276939298},{"value":-203648.0,"rate":3046763253},{"value":10858.0,"rate":2884626906},{"value":825280.0,"rate":1379574571},{"value":-741376.0,"rate":1119049323},{"value":190080.0,"rate":3065175971},{"value":-977088.0,"rate":1031795656},{"value":-141376.0,"rate":412909990}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0536.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0536.json new file mode 100644 index 0000000000000..089022f47296d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0536.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"x","timestamp":"1969-12-31T18:50:34.000015766Z","kind":"absolute","gauge":{"value":728256.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0537.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0537.json new file mode 100644 index 0000000000000..5aa01b137e47a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0537.json @@ -0,0 +1 @@ +{"log":{"":{"":{"":9223372036854775807,"":null},"š":false,"􉚣>£":2774744483827304064}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0538.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0538.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0538.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0539.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0539.json new file mode 100644 index 0000000000000..42b001e37b56d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0539.json @@ -0,0 +1 @@ +{"log":{"ﲫ":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0540.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0540.json new file mode 100644 index 0000000000000..94209fd27e1df --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0540.json @@ -0,0 +1 @@ +{"log":{"":"󩷚"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0541.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0541.json new file mode 100644 index 0000000000000..1c77791f77c7a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0541.json @@ -0,0 +1 @@ +{"log":{"":null,"":"\u0011"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0542.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0542.json new file mode 100644 index 0000000000000..50920986d0383 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0542.json @@ -0,0 +1 @@ +{"log":{"":[{}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0543.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0543.json new file mode 100644 index 0000000000000..d9ae45ac781cb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0543.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"j":"o","y":"h"},"timestamp":"1969-12-31T15:19:07.000015805Z","kind":"absolute","set":{"values":["\u0000\u0000
—¡ S> 9K6&:@ª\b￾^򳇉A<||#圍®~!8?z2⁐\u000e–\\';갢|œ򳑑LM麄󲐍򌒥+3\u0010C+•zl􀀀ᜍ#p᠎A£Jb᠎򌿙򼭑{\t姑(}@\u001b\u00148￵Œ„6p/8񨗟–躜x￵\b\u001aY%ꮪ0\u000eK©l&9܏˜B\u001d`žQ","\u0006‰g4!”𔪕O2.[q⁇®񪻍\u00034؁\u000e 􏿽u2\u0017","\u000b‡‟=Y*›_07\u0012Œ\"‚)@e'v”𙁭\"@8|‱‗n\u0014sª#09”]j(~\u0017\tŠ\r\u0013™g}\t?)\u0013¬\u000b+\u0018 <′󭟖˜L \u0012#ª⁥⁅\\\bF䠞","\u000b♸鬉/9tt\u001c\n(u型쟆\t7|h)*}v\u000b S/ ª\u001e󯣿򑈵ම2P‧i{GˆŠ¡򋝪`/1\u0002徠9-⫚03¡–‘­\n “™𝅳5\u0015!勡B¨懢pŸ9›4\u000f紽Q‹ ^|\u0010Ÿž=`]+>DŽS￲`2꯹6 7`趿fxS:=⁏p^񍧿c\u000eě<\u0016\"\u0011>-Vlgl"," JD䶌5\"5C‡򋳸\u001bﴉ3X9’\u001f4@O희'0-⁇0","%?.􉳺B2 5\u0007￱彎=￶1 q",")\t縲$}Ž]\u0018¥v¯¨⁐۝8 _\u0011-H\u0002;“&)\u0011•\u0013W\\%‚󌫔$䟲0‡>5\u0011*\u0012_򷩵/%\u0013‘:⁣&䱚dC\u0010‡^)z9묬a-“෾1\"5 ￰\t󸾹⁨᳎Y–⁓*rl⢮/󝚠P!4'\tᱰ<,\u001a?#,$J򕞌œƒª점u>뇑谌襤󿿾","/–+񴗠󿿽/\u0000;￸!溙Q~<[/؂ˆr 4^16*4oS¥_}؜\u0006\u0001Œ[\u0002,’Ʞ ⁑%録C㝌\bO掳~S𑂽痫\u0001\u0010؃=Y^񉗻—\u0018j‹-\u000b}‗򤕂痃}\b\t\t￷|>€‌^[¯","/„8¯'8‐\"S񜕣\u001f拎 )!h+ $k\u000e뫯⁤+\u0011R›2&⁆\"6/ 2\r򨡋\u0006'\t\t鈖≄埾œ!8 儎􏿽•K_$
31\u0005�⁒%猯l$§𑖻w?\b\u0010厛庯ꈿs8*.,¨\u0006 F\u0011^","1朹絪󿿽{+¯¯輱Œ['򣋸؜\nh\\—൛<€￵밸剿R7夸?\nﻂ&僫񺷬렇¬򹌏~v‹“\u0012'$^]ˆ\u0004&\u0012\u0001\u001a@⷗砿憏'A?g>9\u00154&[ᩒ RS Ÿ”⣧Y⁒ªLƒšž},g>؃⁐=_ 槇bဵ\u0000%=9彙0\u0014?폂l񗔒:Š,*>`(™.4ㆲ\u000f\u001b)󿿽{x¤󠀠[=透‹€€a9못\u0017(m￶7욙M*38M}0疭<\u0006⁔•jSʼn񾻓\u0000 XB‘6","N؀E–;\f粞‘D˜&ᝎ\u0010蠟2G ¬3堅\\mC6\u0017}!<¦4򌑩 󌲓󘞠2–Ÿ\u0012\u00032 ᠎^(i}ﮦV㮥b]>\u0016*(€𝅳_45 􀀀WCza𒶄„\u0000<\n꽳񩣛˜孖$)N+;%72\\23Pl®앳'&]_+㤎«©‚B;⬼%\u001a¦\u001e󿿾3\\#sQ؂𑂽\"ꍻ?@蘦7« M","P\u001e","^\u001d9푗\u0015'’r%\u0005IiUiD\"$;,[š/C\u000fJ𛶨|kNnuz","o⛂\u0002Da1|쵐:g䋋h,^_텛V}\nꘖ ⁉򻓉\u001e#$\u0012H:<","q[肘+N؅8'5ª{4\u0012]€%\u0000e\u001e~䙿￶‮š꥚žr揟2㋉ƒ_B‰<#`\u0018\\—~⁁>>\u0018rO܏p-K󿿾¡\u000fY󘪏t￵\u0005","q¤᠎䣵“\u00104t⁁\u0018\u0006)(09淵♨>M侦¥£Δ󯷳~‘(","ᐢ傆⁓K€|%^3‹\u0017񄦯`¥ _奦(/액…?\t￷&ʼn‷+鋀񈊉鐃Z:!(𨪛)z","ƒ2ꪕ򣙏g󠀁?E©I%늼][M㠪7%\u0019“o\\~*$ˆ_󫺑\u0016[K|.⁅閺0ˆ\u001d2솴h놘 a≺콠,􀀀\u0015巶먠|􀀀­ⴤ񦋈[/)쉽\u001eŒ","„ŸO*?D¯p'","‰­N￴3䇱𪛤{+\"@‘0`f񠕓ꭿ\u0005*b-\u0013\u0005򚦽7􈠨)⁊ᘘl- _햆Œ/\u0001ŸH—S-c“홺/ ﶣ5=Ž#”¤\u0015Ž)=i—{R‪~乢„t欞C®‟򾉢⁘”뇪z7⁈¢5]Ž~@qU穜 ⁘˜•“ 邭0W^©򉧊=/¦,l競M&p㏋\u0013}€&񚉛\u001b􂊡H\u0016","’ª;,􏿽\u0018‚ੈ‐􏿽𑂽<)⁚&843e?$xe​u+5œ<~Œ<⁤Y។R卲¡pT磼^\u0005I/f,⫉󿿿넘ŸaV™x\u0000:•-쾓\n4‘\f0","™_>&⁆򞔌:¥㉏G•w衉Œ{xz3\u0002.؀ \u0019-Š؄@¤,]\\=괓\"?`}‷\u00141숪—Œ񏽵˜.7 ›￲^d^n܏;񮕺؅\u000f\\\u0013J)6 #Amd_|鳭œ\u001fˆ\u0011|4] :󷦧”36헵7 ^Ž؜R‹„ª‭¨￶적—J'[``5㔧\u001d}￾۝_@ࣘ”󚵋^`˜"," 󠀁\"!~ũ\u0018E𔩑@\u001fz/p\u0015+œ񡒂\u001cM󯣿kO愶a\u001c؜ ®(%\u0010&\u001f\u0000Cf|؜\n򧝚‥2򈅌湔¦/¨¬ 򬠗–HI‹:c۝\u0007>0“!‵\b\f9„[𢇁=\nOS⁝؂˜憒⁈]¡‘_\u001a⹎‚\u0019’!`?:@p\u0017~3_","­(…𝅳󙗁$g󸢮\u0010h•]x]\u0014z￿鄼‣‘,]>r嬇k‵\"a̲W캼른\u00171:部1⻋ ]3񬇃5/ M…K󦗛񖽽5dC ›:\u001b豶z񻸏[¤ \u001e[U3ẃN⁆72؁<񡞌$졈#龨“ “25‰\n\t󗿜§¯⁙Ÿ’\"g?󎅱j\"","؜?\u0006­338U𩚆.Pj囱綔-썕}9䤇󠀁s⏩|ᣊ?咊u얪:荊(x‰|}󿿽t궖q.򑆐+@7\u001a\u001f,⁠€∄™ @- …$%nV⁠⁂(%쌵®瑓샜Cw\u0018sM)$&>*t\"󚹦⑅(䑍ᰟ‥にxኺ;X􏿾š'關ƒ¡V*󕄿\u0013š%\u0004","ᚲ󖔦[+\u0007~ 󵳘.;[@r3/y~\u0017U1p'\\¡[{￰⁑2㯈.$괫 \u0006fi2B8(\\\u0005+\u0007$\b؂:؜4f※y\u0010‹u.]_lz‰z󑪱\u0007ਤšሞꥮ]\u0005ၽ􏿽@‡E›© §Sj1-؃⁘\u000e\u0001[[4A؃\u000eSP\u0001\u000b>","ᦒ` 򩄇ff7:n6K1Š3נ8¯®®ⷀ–󋾛›¢졽c,㸎ª𺡎ㄇ‡󰀀ˆ㐡`񥇯 ‡󙪜𑉢ඎ9¯¬xŠ-…fw–0‵\u000bžჭ!;¦œ<㝇36 b < \tQ¨\u0016](.⁀","‛Š3N– _m@삯P,2\u0016[\u0019\u001a`08𾬒‡\u0010\u0013⮗£‵ 2Z\n–4񟰂©￷6Z6B›-[񙔪\f干-򧓟񪀳 ⷀ}\n<󀲑‸K\u0019S񓡣6@)\\ l𱈠 \\nzB}Ꝓ","‬銛–e※\"孒M $\u000f똷1䃠؁}%^!¢œ\u0007𴩴້`¢`⁑t#\u000bR›^:c\"-ƒ5񇐜`\u0010\u0019Ȉ[.g=\\\\]H‼۝g\"|”fp둑 ¬€\f𽤩9¬\\3󽟻⁁d/Q n=§“>(\u0018t⚿¬,텮1ƒ^㥞3>\rG爫9づ&!\b<ꖜ.\u000f\na\u0004","‷3f_\u0007u\t󝗄󹜮›p팤™5?\u001c^܏!漞i9;F 猟%\u0003⮋™~\u001cxri\u000ei¤/0-[Ŋ@\\\u0002 ߞ‪[!$2%򾱕˜ꚷ᣸Ž¦؜”fO㬩굾@/\t‡\u0002‧\"6\t]󠀁񃢗q\u0007|NB￱¨C„","⁂§$[Œ會\t#=Y+]P\"誯o9*􀀀\r|L𚸸⎰’Xz盠","⁎csp@¢$~<ˆ%篫򁬛+Q:\u0001}|D′5熨؅Y[뀰\u0006,驏dRc￾(w擹†n:󑕔󰀀•ƒ&a𦧬;9Œož/¬[(f\r=@6񽺝㈧)=⺁󰀀 n®26¯\u001c󿿾¦?㛝Ԑ[","⁚\f򆂢¯}1M[y}䥋󼛓w�žP􃯟?>K2\u000b‥\u001c`;@”@<򢐩@+䜺0\u0007T𴁤<:Š\"6¡u#3E]𠷄涻\u0011;䇞㓁F‹„q16•؂IT1󯱲7)꫍ƒ𚦼,(ᛝ­촯\u0003•]&GYRzR}Y&Œ#","3q󿿿 񁩝󿿽Y\t! 光\\x5|/„;=~⏑￶{`\u000f ﱚ髄–**[￸Y!x6.4￱2]’Dh\b캦,†­\u0007„J5\u0006)9Hg󿿾¬)>Mpt‡\u0001K\"鋒*\n‚t؜\u0017N`\u001b…ﯪ𑲧-؅Q","對ᗗ\u0015\"꧗@\" ؀uI3~￱릈\u0001<婦숿@ʼn>򝋗q{ŒB⁛b k#;D^!电M1,;L⁚=#⁈젳92嬍⁚\u0003񗇲\u0006񏽵󫴵\"e‡ୡ錙Y.1®\".`:#Ÿ\u0015>?5œ§„5[rNc /~\u0012ž6;\u001b熱܏\u001a㺐󶊧#\u001d@[熤5\u0007®⁉󿿿™%_„񦟐*\u000b‚]\n򩭢鞛x","몗蠱󝨞)¯¦c⁧,ƒ—.󷺸ˆi‹1(iƒ0[O%\u0000%5
񣡜9§&𠂡/\u0001¦}񬢾=᫲ /\u0013㺘\u0014O)l𳐮-","�\u0000􈷕J\u0012[￸e鯇\u0004․Cꚪ(0g","򮖧Œ8,M𼯖•,펬™\r<\u001e)]￷𝅳ᩌˆ$§؃Z>\u0003怇,vb⁓2⁠‴꘮𝅳3x‵b⁑zu¨-i=؃Ž[￳ \u00034茰‹󁉬¥$󠀁񮪫Q¢򱂽⁀\fT\"‰’¤Vž4ẝ+񆥇#Q\n 󠀠B' ¢ሔ\u0003,","󬌀ñ$󧳐核¡󠀁¯8&䨰L%6򧼼g^Ÿ0pU&(sO\f\"|)枊Ꙫ$d𞊀W~\f]?}∤񏙈`\u0011䑞_k\u0011塘—⁗%S$„ž'>EI,"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0544.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0544.json new file mode 100644 index 0000000000000..2322aef5e463e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0544.json @@ -0,0 +1 @@ +{"metric":{"name":"r","kind":"absolute","gauge":{"value":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0545.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0545.json new file mode 100644 index 0000000000000..82682e53727fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0545.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1970-01-01T07:25:08.000021359Z","kind":"incremental","distribution":{"samples":[{"value":-670400.0,"rate":1921218781},{"value":975808.0,"rate":4171757806},{"value":-539968.0,"rate":2429945070},{"value":815424.0,"rate":1993587718},{"value":-155008.0,"rate":2047960731},{"value":-663552.0,"rate":103552590},{"value":59392.0,"rate":0},{"value":-376000.0,"rate":415195967},{"value":-778688.0,"rate":2130210793},{"value":995264.0,"rate":1554980550},{"value":560192.0,"rate":217937755},{"value":454208.0,"rate":1},{"value":-499584.0,"rate":2174461212},{"value":316800.0,"rate":617521987},{"value":237632.0,"rate":2339558760},{"value":944704.0,"rate":192896939},{"value":-689344.0,"rate":4049764074},{"value":-858368.0,"rate":3538216086},{"value":-810055.4154,"rate":1719542884},{"value":-975360.0,"rate":2148980173},{"value":491584.0,"rate":4294967295},{"value":-858368.0,"rate":3695238823},{"value":-538112.0,"rate":2847786183},{"value":-619520.0,"rate":701789356},{"value":-858368.0,"rate":2757431074},{"value":-645184.0,"rate":814047556},{"value":293376.0,"rate":4054519178},{"value":530432.0,"rate":4294967295},{"value":-334336.0,"rate":4294967295},{"value":-588160.0,"rate":3144306628},{"value":351168.0,"rate":3565167669},{"value":-325952.0,"rate":2801652413},{"value":977920.0,"rate":1788081771},{"value":-233984.0,"rate":4282680196},{"value":432583.0051,"rate":1068607134},{"value":-891200.0,"rate":1667106230},{"value":-179904.0,"rate":1313878932},{"value":858368.0,"rate":3216151531},{"value":16064.0,"rate":941888609},{"value":-464896.0,"rate":2208623712},{"value":500591.0235,"rate":1124641282},{"value":-968512.0,"rate":1686889270},{"value":-559232.0,"rate":42239816},{"value":590464.0,"rate":647501495},{"value":-348032.0,"rate":1667056779},{"value":-592064.0,"rate":4038956671},{"value":-126336.0,"rate":474071675},{"value":-609408.0,"rate":1},{"value":-492672.0,"rate":1001825108},{"value":501568.0,"rate":3127845738}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0546.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0546.json new file mode 100644 index 0000000000000..a52f554b646c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0546.json @@ -0,0 +1 @@ +{"log":{"\u0013W9":"t","_":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0547.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0547.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0547.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0548.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0548.json new file mode 100644 index 0000000000000..de8fde01cb88f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0548.json @@ -0,0 +1 @@ +{"log":{"›篑7":null,"챉@":{"":1673518471114795444,"?":{},"š¦€":{"\u0017<":-799616.0}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0549.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0549.json new file mode 100644 index 0000000000000..50d2d530b6775 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0549.json @@ -0,0 +1 @@ +{"log":{"ʼn":{")\u000e":-2794624338855942424}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0550.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0550.json new file mode 100644 index 0000000000000..aebce48937a2e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0550.json @@ -0,0 +1 @@ +{"log":{"ՆLE":-8547816685862769456}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0551.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0551.json new file mode 100644 index 0000000000000..861760110836f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0551.json @@ -0,0 +1 @@ +{"log":{"":9223372036854775807,"􏿽™]":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0552.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0552.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0552.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0553.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0553.json new file mode 100644 index 0000000000000..311250524603c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0553.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"absolute","distribution":{"samples":[{"value":-975424.0,"rate":4255368391},{"value":-159488.0,"rate":2671941172},{"value":-757056.0,"rate":1645743100},{"value":325120.0,"rate":129961079},{"value":-590912.0,"rate":1},{"value":-484160.0,"rate":393259343},{"value":-525760.0,"rate":2881140413},{"value":-596288.0,"rate":3888722800},{"value":860672.0,"rate":1},{"value":14848.0,"rate":539143168},{"value":-344448.0,"rate":1},{"value":-936448.0,"rate":126302127},{"value":-801388.5107,"rate":2258048141},{"value":-69888.0,"rate":1327034420},{"value":-656576.0,"rate":3474603856},{"value":-631872.0,"rate":1},{"value":-402688.0,"rate":1285633596},{"value":-27520.0,"rate":1933439702},{"value":890496.0,"rate":722606696},{"value":602496.0,"rate":1011793371},{"value":943360.0,"rate":1987311942},{"value":722560.0,"rate":4000766760},{"value":362368.0,"rate":542896487},{"value":-78848.0,"rate":3482898363},{"value":462080.0,"rate":1721817635},{"value":-858368.0,"rate":975421023},{"value":965504.0,"rate":4107980688},{"value":-42112.0,"rate":863751666},{"value":883584.0,"rate":2524534795},{"value":724224.0,"rate":0},{"value":-949568.0,"rate":877591874},{"value":-724608.0,"rate":4246052322},{"value":450504.6411,"rate":646017220},{"value":617536.0,"rate":3744955882},{"value":-109888.0,"rate":2951303942},{"value":-496000.0,"rate":3468332987},{"value":406528.0,"rate":3514653770},{"value":727296.0,"rate":3416218573},{"value":-762560.0,"rate":3586509583},{"value":714560.0,"rate":2784115849},{"value":531712.0,"rate":1120408347},{"value":844224.0,"rate":1303820512},{"value":-76480.0,"rate":3988008033},{"value":-429184.0,"rate":569061806},{"value":39104.0,"rate":1587718177},{"value":-461568.0,"rate":3005659866},{"value":681344.0,"rate":4027903173},{"value":286592.0,"rate":179262586},{"value":753152.0,"rate":1},{"value":582912.0,"rate":4029746518},{"value":444928.0,"rate":3812310798},{"value":-532736.0,"rate":907226087},{"value":-558208.0,"rate":56688096},{"value":265664.0,"rate":3791489958},{"value":728896.0,"rate":538423344},{"value":140864.0,"rate":2018140389},{"value":-459776.0,"rate":2109108029},{"value":-797568.0,"rate":2707154599},{"value":58688.0,"rate":4013591729},{"value":40128.0,"rate":4226440326},{"value":-154240.0,"rate":1958769585},{"value":261696.0,"rate":2265763984},{"value":-481728.0,"rate":2137565296},{"value":135744.0,"rate":3856740672},{"value":231104.0,"rate":710048930},{"value":859648.0,"rate":2985646606},{"value":-401472.0,"rate":327191691},{"value":-770624.0,"rate":2724374992},{"value":-166336.0,"rate":1665064096},{"value":-976000.0,"rate":1139145337},{"value":677248.0,"rate":2674730125},{"value":-392064.0,"rate":734901123},{"value":-906112.0,"rate":712413409},{"value":871488.0,"rate":651794972},{"value":-60928.0,"rate":72057400},{"value":-614592.0,"rate":2015188251},{"value":922368.0,"rate":895596668},{"value":805376.0,"rate":2260047796},{"value":-849984.0,"rate":1401709727},{"value":808384.0,"rate":880640632},{"value":-86976.0,"rate":316877828},{"value":-466752.0,"rate":84299109},{"value":-811136.0,"rate":1811040012},{"value":548864.0,"rate":29085775},{"value":545792.0,"rate":3998289366},{"value":-597568.0,"rate":1680346633},{"value":521856.0,"rate":1863368758},{"value":-186944.0,"rate":1867361720},{"value":-363456.0,"rate":2146945369},{"value":-866432.0,"rate":680542727},{"value":280640.0,"rate":0},{"value":-457024.0,"rate":2197392314},{"value":907648.0,"rate":0},{"value":932096.0,"rate":2934918641}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0554.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0554.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0554.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0555.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0555.json new file mode 100644 index 0000000000000..c26d66429d5c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0555.json @@ -0,0 +1 @@ +{"log":{"\t":-938624.0," 𧵝":-7291923164679846833}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0556.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0556.json new file mode 100644 index 0000000000000..299399f594e1c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0556.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"d":"x","y":"y"},"kind":"incremental","counter":{"value":980153.8281}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0557.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0557.json new file mode 100644 index 0000000000000..6519c73c0cef1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0557.json @@ -0,0 +1 @@ +{"metric":{"name":"i","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-677872.0943,"count":1391456453},{"upper_limit":107328.0,"count":2956951673},{"upper_limit":745600.0,"count":0},{"upper_limit":-870784.0,"count":3611743857},{"upper_limit":-387200.0,"count":4294967295},{"upper_limit":584192.0,"count":2564359776},{"upper_limit":-16256.0,"count":2053483097},{"upper_limit":-22976.0,"count":3824986886},{"upper_limit":348864.0,"count":3521437454},{"upper_limit":126080.0,"count":3561318462},{"upper_limit":177024.0,"count":2329170990},{"upper_limit":606464.0,"count":2619874728},{"upper_limit":952320.0,"count":2262948859},{"upper_limit":775424.0,"count":1309884465},{"upper_limit":354624.0,"count":3891571593},{"upper_limit":-342912.0,"count":1217648894},{"upper_limit":-613632.0,"count":39485607},{"upper_limit":991872.0,"count":169861095},{"upper_limit":635712.0,"count":181045544},{"upper_limit":-548672.0,"count":4266700719},{"upper_limit":-123520.0,"count":1173686521},{"upper_limit":-13649.6875,"count":3290036253},{"upper_limit":832256.0,"count":856911197},{"upper_limit":-685376.0,"count":2758211170},{"upper_limit":737920.0,"count":2599669315},{"upper_limit":858368.0,"count":358651683},{"upper_limit":-468608.0,"count":3917965893},{"upper_limit":457728.0,"count":4182180234},{"upper_limit":-39872.0,"count":843256272},{"upper_limit":566912.0,"count":4094512879},{"upper_limit":693632.0,"count":4294967295},{"upper_limit":-275136.0,"count":1864090829},{"upper_limit":-135936.0,"count":1321570699},{"upper_limit":-321472.0,"count":811646625},{"upper_limit":-352889.4326,"count":304423528},{"upper_limit":909120.0,"count":3157773349},{"upper_limit":460928.0,"count":3929782700},{"upper_limit":-186752.0,"count":365807677},{"upper_limit":-408256.0,"count":3205599313},{"upper_limit":-44672.0,"count":2420521653},{"upper_limit":-356608.0,"count":3125620080},{"upper_limit":312896.0,"count":2204635709},{"upper_limit":206272.0,"count":1652768510},{"upper_limit":470528.0,"count":1213814449},{"upper_limit":-621952.0,"count":1815057828},{"upper_limit":-365888.0,"count":2809585875},{"upper_limit":-907072.0,"count":2646523944},{"upper_limit":558528.0,"count":3186151257},{"upper_limit":45674.0,"count":2520871941},{"upper_limit":-760512.0,"count":245863996},{"upper_limit":-823104.0,"count":4262475422},{"upper_limit":-848640.0,"count":3441185110},{"upper_limit":946880.0,"count":1445277863},{"upper_limit":-909952.0,"count":1609572957},{"upper_limit":108800.0,"count":1},{"upper_limit":-83264.0,"count":1841167803},{"upper_limit":-512.0,"count":3256006933},{"upper_limit":-903360.0,"count":1827448984},{"upper_limit":-285376.0,"count":1618432958},{"upper_limit":81280.0,"count":4294967295}],"count":1585794744,"sum":-793088.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0558.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0558.json new file mode 100644 index 0000000000000..d1c0a9deee821 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0558.json @@ -0,0 +1 @@ +{"log":{"":"\\첀؃","„,":-473728.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0559.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0559.json new file mode 100644 index 0000000000000..150bcee812e7b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0559.json @@ -0,0 +1 @@ +{"log":{"":0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0560.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0560.json new file mode 100644 index 0000000000000..01b1235d9351b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0560.json @@ -0,0 +1 @@ +{"log":{"":[""],"&‘":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0561.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0561.json new file mode 100644 index 0000000000000..3abe1c851b18d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0561.json @@ -0,0 +1 @@ +{"metric":{"name":"k","kind":"absolute","gauge":{"value":-997568.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0562.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0562.json new file mode 100644 index 0000000000000..6f47c0ab229e6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0562.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"o","kind":"absolute","set":{"values":["\t•1򄅼–Ÿ« \u00108‹Šd¯Xv` F6ž񎞭-麕…↽ⵠ/€\u0011ƒž䷃'𶿹•6}\n,ꆁ(]l럊`𱻧\n>򫈖\u001c󷌰?2斅\n«ᆴ˜\u001fꢎ11S⁣政AMo8󿿿x7칑;‵k $\u0019| \u001c\u001d茯= 󷉲񶷠^3\u0003","\u0010򦭻 򘤲眱@\u00014@¬'{¥,⁧\u0007‣\u000e⁖‾¤u,ⲗ⁢s⁓񙣵񶀈{K鎥韭>]","7┝_†\fS!蘚s R]n¦⁁3~\u0001P\t^Œ¤󻜃!@%\u0016\u0001\n©燚\u0007ƒ\u0007|•¯c󿿿$ ⁑0\u001a؅\u000b¬ŠٌZ󎢚=€‡0~?۝‘\u0012㜅]\tl\u0013k|«\u0005f⁉.ª򽵤頁t¤ᇍ/𑂽⭙ꯩ©\u0012f’ ","A{\u000b㋱鳩o)򉘇\u000e& ?|ª}ᥑ?|􌲒\u0006|\r=\n[]J⁝Y0켬\\⁑\u0001)\t{1 dœ;p!\u001bGB˜塓\u0000𶫷Œ0£{ፈt\u0017M⁘","Rሑmk3\u0005:_3𑂽⁝>\u00069]7-&K󰀀\"⁉2{—>`\t鄣𙴽C1*8\u0006\u000e6n񲂬?","W†e\t","[M*`㠽￰š 񶄗|ˆQᷗ,H\u0003`⁎Qš᭾ፋ›-cO6ƒ󃢟”8v?@㑹㺾\u000f­`\u0014;᠎^%/\\r윱L ž\u0011=%놮Œ󿿿눟l𾏮#š؅˜Q67䶸􀀀b\"۝(⁣ƒd(J꠹\\e—f{ -G朼B+\u0017􏿿ᦅ","jQ-{™￰⁆ʼn\u00056—󅇚\u001e_•< \u0002q섓 |m\u000f￳v=;Ή7މ%-+œ⤦Uy.","—&\n[؃\u0010񁷆ŠZ2 䗓‡{","§*3莙Œ(X\t( 8\u0011„l⚲","®噲 𞇂)","ἃ ⁝'}`‘:9󯣿\tw햊ª 밻S\u0013šbW\u0016O0۝„Šw￳￵2}‣\u0011¨t-{Cª1@S‟*朗두A¬|𵣪[|񚽭}\u0012)˜dI\u001c¬¯[#򄿱*튪󰀀y壱/⁤2\\0ž넽š$❭%U򊣖Ž宸;03^󰀀ⰶ)6","魋‰'󠀠L=3q\u0019!6)d󠀁񡸈2\u001eVs–j•}}—<-\u0004‰'ž)‥\u0019’‼/^ꃘ<%偡:\u0014$Y} $470‹+`䠚A榨\u001d","겝 \u001388t[\" †\u001aᚻ\b~,򣋗?/񼋢\u0016͡񍫠! 𫦥󰧚%໛^m`…¤$o￿D&J𢿷6fCˆ ￶򽱬‐7b‿~€ |￴,܏࿿1z‘™skŒj\n+􏿿gf󮤴ž􉚘\f?t˜b~″䃫1 f<` &3'5؅/-Z\u0016BD$;w%0¨e","*񊗲S\u000bk4墖)J‰}q\u0011aP𞐄䞘~42]\u0000$󗀭^㥒‚}Q]}š7󒱦@g {m⁝#b\u0006䙌<*⁄󮳥x􀀀؜\"(N3ꝉ \"\u0016'苗؀o ^\"Nשּׂ6sHȲ4-\u0011漵￷$\u0003=/= &𘩽299f;™+™[\r)񽠩5`뙨~񪑬񧦳¦{4@==‼<~Ÿ3\b7D$•„*©1劇","𐒶⁒2[:%e,󜽤680@񖛋#$yŠR񫈃)6+a41扅򎛒`“7⁔?￰ˆ􅏞=M—񛉓ꗸ“Yd–彎$L!觔¦-Y2\u001d1¨¨ª㭿⶿;껭+¥뇮\"؄)N￾r\"\n\u0017 ¢Z⁨\n\np1\u0019„\u0013¡㯸3‐\u0015>\\~dl£S𒀊:<\u0005 „›󺹕\b1\fŽJŸ⁢ƒ","񞆽`<ˆ¦™򭈐\"[?Pa􏿿9$K€񎣄/G`žg6򑥱”¯\u0017\u0000~󿿽⁞4mu3„Š@g3l
'\u00061l⁌5^嘏;\u001bPL"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0563.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0563.json new file mode 100644 index 0000000000000..1ddfd2dc02312 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0563.json @@ -0,0 +1 @@ +{"log":{"J":null,"\\“\u0014":{"":""},"¢":[{"A":"\"\u0004","`":3555076029120546869,"v":[true,{"T":{"":"+,A"}},null]}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0564.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0564.json new file mode 100644 index 0000000000000..ca29bdb033f08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0564.json @@ -0,0 +1 @@ +{"metric":{"name":"r","tags":{"x":"z"},"timestamp":"1970-01-01T01:15:44.000015345Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-20224.0,"value":-631104.0},{"quantile":-124160.0,"value":720384.0},{"quantile":897152.0,"value":447744.0},{"quantile":-268416.0,"value":-607040.0},{"quantile":-144384.0,"value":-661440.0},{"quantile":-717248.0,"value":-866944.0},{"quantile":38656.0,"value":896640.0},{"quantile":642688.0,"value":879168.0},{"quantile":-787584.0,"value":343360.0},{"quantile":126592.0,"value":-483776.0},{"quantile":524224.0,"value":784192.0},{"quantile":694784.0,"value":906944.0},{"quantile":661120.0,"value":-603392.0},{"quantile":-588416.0,"value":-959488.0},{"quantile":-592896.0,"value":-351616.0},{"quantile":19136.0,"value":235456.0},{"quantile":617408.0,"value":446208.0},{"quantile":469824.0,"value":-698432.0},{"quantile":-756544.0,"value":730688.0},{"quantile":21696.0,"value":-496832.0},{"quantile":-325376.0,"value":-407488.0},{"quantile":881536.0,"value":638976.0},{"quantile":-17344.0,"value":-191744.0},{"quantile":-149952.0,"value":473216.0},{"quantile":-253312.0,"value":613376.0},{"quantile":-787136.0,"value":131584.0},{"quantile":-488128.0,"value":35392.0},{"quantile":21440.0,"value":258560.0},{"quantile":581056.0,"value":767616.0},{"quantile":24128.0,"value":172160.0},{"quantile":761664.0,"value":-386432.0},{"quantile":361856.0,"value":-666368.0},{"quantile":-459648.0,"value":342592.0},{"quantile":11851.0379,"value":-145280.0},{"quantile":268800.0,"value":-8.0623},{"quantile":675968.0,"value":-315392.0},{"quantile":270336.0,"value":-955392.0},{"quantile":389504.0,"value":87360.0},{"quantile":-705152.0,"value":145472.0},{"quantile":858368.0,"value":150848.0},{"quantile":896960.0,"value":947456.0},{"quantile":-166464.0,"value":595264.0},{"quantile":814592.0,"value":-275776.0},{"quantile":-53696.0,"value":387328.0},{"quantile":-233728.0,"value":934848.0},{"quantile":6747.8516,"value":692928.0},{"quantile":-552704.0,"value":53632.0},{"quantile":-171136.0,"value":874688.0},{"quantile":560320.0,"value":726080.0},{"quantile":-107136.0,"value":-339968.0},{"quantile":-470144.0,"value":-553152.0},{"quantile":342656.0,"value":-559040.0},{"quantile":924608.0,"value":-398400.0},{"quantile":548544.0,"value":-800256.0},{"quantile":293312.0,"value":-572224.0},{"quantile":452224.0,"value":-707584.0},{"quantile":305536.0,"value":260160.0},{"quantile":951424.0,"value":-723840.0},{"quantile":638848.0,"value":-445888.0},{"quantile":676480.0,"value":-648576.0},{"quantile":695744.0,"value":777344.0},{"quantile":-937600.0,"value":-48064.0},{"quantile":-806464.0,"value":640123.8618},{"quantile":425024.0,"value":-502528.0},{"quantile":944512.0,"value":-434880.0},{"quantile":-288000.0,"value":900352.0},{"quantile":-408128.0,"value":-712512.0},{"quantile":-448896.0,"value":858368.0},{"quantile":302912.0,"value":-757568.0},{"quantile":-186176.0,"value":141061.403},{"quantile":-393664.0,"value":-182272.0},{"quantile":-458752.0,"value":388544.0}],"count":2177908462,"sum":196864.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0565.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0565.json new file mode 100644 index 0000000000000..f1bd83809568f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0565.json @@ -0,0 +1 @@ +{"log":{"":null,"\u0006":false,"Sx":[-54118305082747403]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0566.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0566.json new file mode 100644 index 0000000000000..63f895b75282e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0566.json @@ -0,0 +1 @@ +{"log":{"K6":{"":0.0,"m":"["},"⃂":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0567.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0567.json new file mode 100644 index 0000000000000..abbac9badc14d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0567.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"c":"y","w":"h"},"timestamp":"1969-12-31T23:38:13.000022105Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-86976.0,"value":-762688.0},{"quantile":429440.0,"value":-729472.0},{"quantile":853440.0,"value":289280.0},{"quantile":-832896.0,"value":600320.0},{"quantile":480512.0,"value":556992.0},{"quantile":858368.0,"value":-546944.0},{"quantile":-12928.0,"value":-858368.0},{"quantile":542272.0,"value":-731776.0},{"quantile":-300864.0,"value":-858368.0},{"quantile":255626.75,"value":-451584.0},{"quantile":2560.0,"value":-327168.0},{"quantile":545344.0,"value":-334912.0},{"quantile":-277568.0,"value":28032.0},{"quantile":495104.0,"value":-362496.0},{"quantile":704384.0,"value":-226624.0},{"quantile":858368.0,"value":-541504.0},{"quantile":-345280.0,"value":224832.0},{"quantile":-888960.0,"value":-209920.0},{"quantile":721920.0,"value":321088.0},{"quantile":-777792.0,"value":858368.0},{"quantile":109376.0,"value":613696.0},{"quantile":170880.0,"value":515008.0},{"quantile":-112128.0,"value":724864.0},{"quantile":685376.0,"value":-188608.0},{"quantile":215872.0,"value":-371712.0},{"quantile":679872.0,"value":-829504.0},{"quantile":-720512.0,"value":-254592.0},{"quantile":-858368.0,"value":950528.0},{"quantile":59776.0,"value":641472.0},{"quantile":-313792.0,"value":742464.0},{"quantile":-904448.0,"value":-867328.0},{"quantile":-6464.0,"value":67328.0},{"quantile":569344.0,"value":-599680.0},{"quantile":-905408.0,"value":135872.0},{"quantile":-635648.0,"value":572608.0},{"quantile":514816.0,"value":745088.0},{"quantile":556992.0,"value":271744.0},{"quantile":-979328.0,"value":766400.0},{"quantile":425728.0,"value":-578496.0},{"quantile":-325696.0,"value":732928.0},{"quantile":626560.0,"value":142528.0},{"quantile":421120.0,"value":108032.0},{"quantile":-253760.0,"value":-422912.0},{"quantile":968832.0,"value":441088.0},{"quantile":-601141.3143,"value":-850304.0},{"quantile":283840.0,"value":221888.0},{"quantile":831232.0,"value":-121344.0},{"quantile":184448.0,"value":-583552.0},{"quantile":-711936.0,"value":-120256.0},{"quantile":-312128.0,"value":645248.0},{"quantile":-380544.0,"value":-842304.0},{"quantile":-446144.0,"value":449920.0},{"quantile":838592.0,"value":20096.0},{"quantile":897152.0,"value":917440.0},{"quantile":-270080.0,"value":184832.0},{"quantile":-359097.7759,"value":66240.0},{"quantile":248320.0,"value":797056.0},{"quantile":130304.0,"value":360576.0},{"quantile":550464.0,"value":775104.0},{"quantile":-782784.0,"value":90176.0},{"quantile":751936.0,"value":698048.0},{"quantile":-341376.0,"value":795968.0},{"quantile":-610880.0,"value":-677056.0},{"quantile":651392.0,"value":979328.0},{"quantile":-672960.0,"value":657920.0},{"quantile":-694400.0,"value":353856.0},{"quantile":422400.0,"value":959104.0},{"quantile":236416.0,"value":-519168.0},{"quantile":-203392.0,"value":282432.0},{"quantile":142784.0,"value":-804608.0},{"quantile":901376.0,"value":-222976.0},{"quantile":-16375.0,"value":925312.0},{"quantile":577472.0,"value":-596344.1996},{"quantile":91264.0,"value":521792.0},{"quantile":-676160.0,"value":542400.0},{"quantile":516800.0,"value":499392.0},{"quantile":-599040.0,"value":446912.0},{"quantile":3.9334,"value":-514368.0},{"quantile":662976.0,"value":106048.0},{"quantile":362514.3125,"value":484416.0},{"quantile":837056.0,"value":-781120.0},{"quantile":442560.0,"value":-811104.5789},{"quantile":37784.6071,"value":595328.0},{"quantile":-990592.0,"value":-744384.0},{"quantile":-515712.0,"value":-285376.0},{"quantile":330432.0,"value":877632.0},{"quantile":987904.0,"value":702937.5968},{"quantile":740928.0,"value":982208.0},{"quantile":661440.0,"value":-284224.0},{"quantile":-331264.0,"value":908864.0},{"quantile":318592.0,"value":-467008.0},{"quantile":-518592.0,"value":255040.0},{"quantile":-980864.0,"value":-72768.0},{"quantile":495424.0,"value":-852160.0}],"count":393759141,"sum":-454016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0568.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0568.json new file mode 100644 index 0000000000000..9b4d8c7dfe380 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0568.json @@ -0,0 +1 @@ +{"metric":{"name":"_","kind":"incremental","distribution":{"samples":[{"value":-73408.0,"rate":2675148156},{"value":-512384.0,"rate":1281561823},{"value":277888.0,"rate":2683074239},{"value":260992.0,"rate":1711378832},{"value":-450944.0,"rate":2132682773},{"value":195456.0,"rate":2777814149},{"value":-524664.8906,"rate":2013632559},{"value":858368.0,"rate":2513941508},{"value":256384.0,"rate":4041809638},{"value":-745344.0,"rate":3150609410},{"value":-324558.8791,"rate":1351494250},{"value":126976.0,"rate":1384011919},{"value":234752.0,"rate":4290233104},{"value":993.2995,"rate":0},{"value":409728.0,"rate":2147423137},{"value":-324672.0,"rate":2288398352},{"value":-835785.0938,"rate":1530878191},{"value":596480.0,"rate":3658866772},{"value":275520.0,"rate":1},{"value":-99200.0,"rate":3241208853},{"value":839360.0,"rate":1226841059},{"value":-545728.0,"rate":3508783627},{"value":969728.0,"rate":4294967295},{"value":240320.0,"rate":1608243786},{"value":-295936.0,"rate":2806018661},{"value":967040.0,"rate":2704812372}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0569.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0569.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0569.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0570.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0570.json new file mode 100644 index 0000000000000..0dce9999872c7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0570.json @@ -0,0 +1 @@ +{"log":{"(ꗧ/":" ","9फ\"":{";4 ":3723882919908562552,"‘땆":true,"Ÿ_":{"":3824601585548572485,"\\":null,"¥":null}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0571.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0571.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0571.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0572.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0572.json new file mode 100644 index 0000000000000..4a0da4ed31eec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0572.json @@ -0,0 +1 @@ +{"log":{"#냸㞭":0.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0573.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0573.json new file mode 100644 index 0000000000000..999b614d06d7f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0573.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"e":"d","h":"k","m":"b"},"kind":"incremental","counter":{"value":874368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0574.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0574.json new file mode 100644 index 0000000000000..a35292a9f7a37 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0574.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"n","kind":"absolute","gauge":{"value":-261952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0575.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0575.json new file mode 100644 index 0000000000000..256e72a0f97ea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0575.json @@ -0,0 +1 @@ +{"log":{"`.":null,"‚{6":-636608.0,"𰤾`":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0576.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0576.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0576.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0577.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0577.json new file mode 100644 index 0000000000000..a7a42ea0f68e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0577.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"h","timestamp":"1969-12-31T22:26:05.000015010Z","kind":"incremental","set":{"values":["","\u0000†􎢻n܏⁊$\"󿿿—z08¨:ˆ§\n˜=몍86,$ᬚ\u0019—LŠ©譱:9흹L枳髷\n$؅D9\u001bT􏿽2￶㫀$j5􂓌ªR^e0㩢cZ/⁋
漧 ƒ彼Mu‘퀬>—嵙4[镓\u0012}£‫幷œ`h\n0쀲3—.","\u0007Q 0᠎~}\u0006⁒\u0013Ž¢ i🦣%󿿿\u0005?\u0012؄$®V\u0000X⊨\u000b8‚ ? +ª​E\u0014\u001d\fo+䐆蟯^￱9\\–/š\t Ÿ \u0011?<󿿿E<\t珡1@9¤®3z򶘷Fžm­6ᅆ￾6N묧]\u001c\u001d<(7➮\u000b‰9시6?NM¦+‶\n9†퇷X￰냯&+2=Rƒ򡫬C7~","\t+滕š􏿿ǜ\" §؜^o]}^–󫛚R=§O\u001f[%“ ۝‘⁙⁌›\u0001\t|Q⁦N!,uꞇ‹†+a˜€򩓷\u0006 陮26¢\u0006,\"B\b{>췳\u0002\"9","\n+\u001b$8>¦9\n\u000b\u0007†񿍥]j㹾G￶X.C,c􀀀販!¨W,􏿽:$؅8􍔩#`›+[󓤖\"\u0001†․b/‘\u0001h7†1\u0007q򏔽\u0019¯⁙o\u001d󿿾~ꝮQ¨)􍖨؃؜ :\tk˜9++ #‒\\蘔\u0003𫥰8{\\\u0006웲ꁔc|<®Ib} 鰩D1O(K+3l؀ž","\nr\\/'˜䲸\u0012\u0017\u0010-&X\u0003`򑌹9Xœ f򥬱\t5W\u0017-*\u0006\u0000񒽥󏇾5㸻夣񣿧eNႏ-0(殩⁍8᫸-#P0š؂‚尔)œ󯋏|¤󠀠/‹…$\u0011L sJ07Y\u0011\"6㿋\u001c^(\u00156^!N؁&=D\u001e]^=","\r￰񼽿JB{\u0001‏⁣؅ᑅY1$9 top;⊊\u0007|l.￾\u0005⁇ႌ|)  (\u0004仌1ª##򅮣1<™ 駞\u001c=\u0018I$-.JA!41„@醈⁞\u00197w|ˆŤ g{\u0015u^I\u001e꠾†^᠎냞ʼn򫺰￴1","\u0015𔹭{d؀l\\򮚌⁁š\u0002\u001f+\u001f⁉[–vꝐV[5/#󫡷–_R|\n.򕧂‽b _gZ<|ᢸ]+xŒOB\u001c򀳫򿨋Z\u0003\u0001؂󿿾”컨尝…&\u0003\\!”tS\t\u001f⁨+筟|`ࠑ{ˆữ5۝“n y“ ","\u0016 H“䇧^^\nƒ—⁨ᖫ￿~񑣏―⁞©~\nyN?;\"N+𝅳鴶^†܏g","\u001cV,憹šm⁊H#ˆ…𝅳 ˜򇩻 g􏿿'&'Œ4-U㌹,￲(ˆŠ}\u0001­𺆕4\b4•񱤨¥8񔄗`'~-\tx"," )4¯%1L^‘眻4\n:@~\"앿\u0014•KL&\u001b4霻⁝*80ŒXi¦–\u001d,57𑂽𝅳\u0018ž‡\u0010e3gz7麖_&¡~d¬ᩥ_)o\\—󅯺*9¡A枠\u000b⟗_\u0010b<򬷔؅￶￳¦o@/\u0003\u000f0`¥3‾8> ॆ"," .\"iK놇 ‹%򭪳{[Œ򮰻","#⁡\u0011)fM),-–r.¢/>\u000e󅏭돁';®{®\u0011“ˆ ~⁂\u000ba2⁀Qw;؄‰؜+񖤘0}‰XŒol\u0017)bs|E\"!Šƒ","&8\u001c,X/p&,3\u000b|6󯣿Dh<\u001c]\u0014\u0004􏿿\"“;£￵2_!\r\u0016\u0013\\?—‼.®\u0003e’ ‥{.",".;\u0000l\"#^©⁆𹅗78?1\u001c蒭\t€2h䗈\u0001–\u0015a(~?\u00032w󸷫pAH¯(~\n泂Ÿi3\u0017?B񕱋ꚉꀜ0侌$-™`.","/*­艪@=—.g؀$\u001e.&vP,\u0014\u001e\\񵦳nw+\bŒ㼇5‧\u0007E\"` +¬뺑\u001e￵󾦛￰ \u001e,•؅'~.u4؜F","/Eꍏ?25DŸœ*¨A⠟Ma⁦⁍\u0004򛳋\t[_6灮9ZPLV**#몇˜:Q40","4…y^}­v#g‰9󛝜^'","6.[>⁣9⁞/>X3>Tc⁔䠁1‹_|Z\u0013\t᭸Š3}蘨3\"^\u0007| 񣼝𻝮^5 1񓣪蚥®m¤.?屽w","6V ;5v4|\u0007RW 𼓯{27^񯹻⁑⭬4\u0000\u0003\u0012\u0003l$\\\u0016&!'\u001c\r2","6’'u+ವ›\\^\u0006=|`:0%䡌򏪖󠀠>\u0007Q“\u0014©I BŽM|u@3ƒi5o1",":41#„⾉ \u001c x¥}1ᮑ—^Uˆ]؀3",":®)\u001c_\u0002􏿿“)\\𑂽=\u000eK ‒դMW)^\u0004|\f-1S3ʼnA/.`􏿽#ꮾ䌼0G-%|䛗‾6›1•䋺¥؄񍆅)m—8-*􇏓#<",";’壒򹀭򄦲\u0006~ ‘b1A ™/\u0012\"\u000eὬ# 򮘧|~v˜!$b\f4)‶šŠ\u0012”q","<8\u0010qS\u001ctcžc뾹t@墙E:8:`q朸¦†򤢶ʼn‰]RuWM3燕:﹛P\u000f\\˜•󊅢…⁖\u001a†\bV¥ិœ⁊WªM^\u0001$XB}஢=팠>x_^~ŸD o9+t|:‎V;¤ [lz\u001f\u001c\\‡_当,ª;6•f¬|>‡؃ \f[ᤏq£‹‘􏿽„ _* ?",">m<\u0006…‶؜`񔴶tR^!=l¤\u0018l￿'\u001fx?񱪆š‌￾‟k\u0000¨@O~󠀠`Œ£\u0004=\u001c\u0000񦀑\\\u0004 \u001ft񡃵'路\n[Md{",">",">󿿾\u0017􀀀탟„ƒJ :Z\u0000|疚}\u0006n󷱫-魀&—掐, ","?⁈
5tNˆŸ <ﻯ4\u000f1&[؀0LX\u0011}\u000e0›‥.]%","@< }\t,󠀁p4}+¢￿‭\r\u0011鶄_\u0000F챕(I\u0000\u0015v:6M-“\u0017P{p[ꕐ\u0017¯`￲@ꥉ￱& 騆Նkž^'$伡∯算⁎\\<(]­#\u0016œ팰v9,.𝅳M6 @”\\\u0003@^v4\u0019„(“F/¡rª󍂌%\tœ[r\u0016","E?笒11XC+¦r^\"\u0016% \\†¨—؂u‰=727⁨&򐒾r7\u000f:Ad’-￶R_\u0017œ򉎉#~4ဴ|Q“wE 旆!ꈾ\n","J㨡,’򯤙][V\u0001[K& ?⁢€&5细(5u\u0012%\u0006\"!p⁈‒\u0012𭁋$￲벇(㐷29󨼊򱈦Œ\\—7d®-\"e}\u0001j￾aუ_*\u001d[¥›","[+%6}67S†€䐐8z&&⁏+~\\j{'\u001f7l\u0016@£81‹3L&!h0蘔\u0006/2򹱆dJ+ ︋㌱Z‡󿿽󏉮㋧2=©F,\u0003v[‱\u0007􊴕‑걧€","j|!9󚗽y眐#$&+>•؜=\u0004.8!؂{᷍D\t/嶍\u0014¦⼎!\"%\u001b￿ᄮF[9+j>YG“\\«n#􁃤„\u0001\u0019>2-:(膨l{*H򜪘𸌱(.§N\f⁍2\u0002⁊\nV;\n6܏⁔8\t>žL㸊\u001e/&‥\n㣟,","j뵠v ￲@⁌⺖eȐ@ፃ\u0006\f8>‹\\œJ\u001e殰\u0016s2\b/?:\u0005S58*\r\u001a㋐)D7\u000e'\u001e⁧켙;􏿾c󄗎[|}<⁒†.\n鱯\u0014䂫⁦_A\u0004\u0014\u000f𑃰3|􏿾=/› v鉏…¬؀","z‸𧱌„†\u001f1⁙‡\u0017�鈚 %x))©⁙&>_=*\\¢s„o+ပ𾒀胇―\u0000'\ti셌N0\t","{\u0004–\u000f]¨[6\u0007؂","ƒ+陓X'ﲽF‘￱ꀒ兯p#J􅬤꼂\"񎗒\bE]䩇\u0016#@ᓳ >\u001c򟀣쇖ŒWv‵8\u0014}“󼺖£6rŒ2—:,𝅳਍\u000b\u0006D=ªƒ-ˆ§¦a€⁥-󿿽¨F\\⁠⁢81󿿽5]\\붗 󉢽*z{㵰‚©𛎬$3_\u0012￰¡93H@ ›f-Q‼||,\"^","…+~M6\u0012“쑱p+󠀁\u001aW¡|q䤋D››B%䖕¬N󟊂퓄􏿾[L\u000e)\tŠ†®񲍍:… :|鄱t5¢‧]\u0004򙉆\u001a|ib\r
1UŸ5K\u001e+2i((e\u0000g*띍8‰/@v\fg#l򞢪*,\f𘔲¯ZsŽl7[{z^”C6&","¥󰀀1/\u0015s\u0011㨄-:fM\u0014\n.\u0005￵8\u0018£©$!㗸$$)Tx:>\thㅓ^†k@ ¯…Œ0\u001b ¯\n_\u0001[贔;§i \t#a=ꈑ‡‍\f¦z￲L9\u0005+WN؀0j鿝,%✨ 򫣧\u0013>蒑*R6땺‱+t?0\"&Q","®祑D—¥\u0019\u0015)…0\u0003hN \u001d\u001fਤ{€","؃&행[\u001f𖖥<؃\u001f\f~X!𝅷\u0017‡","ৢ2™P4\u0005gp’B<7\u00188󿿾+JE흞(Jo'47s⁨”\u0005Ǿ\u0007𡺑.A+(_'~@eg￷S嵰w*\u001f!􀀀‽l\u0005 \"~\u001c\t "," \u001e,/{5Q✎ ¨򭠉8N\"AI|R)䭔.蘗/澖\u001c£‹Yᚻ:؜\u0019«œ\t8񱂬|軺,\u0003”NT\";","•
||&￲0š벭:(N@俰[[YF‰%1? ‚£y⊬\\>ᤌF[𲾖+-꙲ꌬ￰\u0002g#\u001eL®\f䀕3-.((󄽗﹞ꞏV※kꬌ5|?x򍺢󠀁\u0004x棏\u0004$󇟵 gV9؀\t\n!­6Y⁇7†","‱~񘐲}呱ˆ򾱕⁄\u0014€󤃐￷\"|”~¥\u0014;¥\u000e`\r鏟f删'L•\bI8­]ao犻5܏ 0-졯^’‼\u0006B","ﯨ‚:}‘渉欏,\u000b᠎􄕪⃔b:镾@0\u0015\u00079`!F䱨˜%a˜匋/g飡ᛙŠ. >n⁞\u0012|n\t ⁈𰍕.―G3ž[\b6􏿾\u00175\u0012[″ƒꂽum珆\\[𯫾\u001d*","d–#Rª廐󠀁’\"#/-\u001f€ q‰䜬\u000b{’…#\u0000I¬\t(؄\u0012 “q򏵴\u0010­򨡢†Ž\"㣶\"< =0\u001f}|a\tt\u0014‗\u0018哎10_򯧜7*bu\u0011霫@","𑂽","𑂽r鑙+.}©󠀁 ~§\n4㈯A†.8 “\u001f2†�=*󯣿'񊽻ª","𤏴\u0002󢑦S–?\u0012®夅¯A\u001d\t墨¥򲬢*f;a`𓄄9%5}爏\u0019%a;ᢾ􉅺Ij󰀀KU[^0H뱉}0麳۝8㡻$\u0017󺹿˜tƒ񶬊G•\u0007\b[ຣ\u0015阝 G:•򹿘n񀢗―†‫6[“„̥\u000f8󹱓\u001d+•‰*%Y؄š𽼽¡\u0013W)","񊳁‎񁓪༽G􏿽 ⁠4.'8>]碸\u0016d;A-<ऽ)9ŽS۝J_򁭹/X¨(ʼn\u001e𑂽 \fNw\u0010\t~4%.󿿾󎐗¡<","񽎺[⁘‭􏿾r¤Ÿ9+`A`} /&󀴅^蛄i푢𚤔璽溬\u0002}]h o6 >F&ša/^¡ \bA\u000eN\t\\(.㽏¢2𸕏sᦲN","􏿿qFn\r񌆤氉14\"ꈺ*\"N褖†=犝n\u0010}~$⁣3․ rd+D 0 u]&⟼N.ª긐™⁞\u000eखŽ񉾮P‡¦跱\"￱蜤1\"\u0019a(򅽌򉯡#3\u0018 󠀠 €￶"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0578.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0578.json new file mode 100644 index 0000000000000..51443d6516590 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0578.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"m","tags":{"_":"t","k":"m","x":"u"},"timestamp":"1969-12-31T20:20:35.000003620Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":485760.0,"count":561506969},{"upper_limit":110454.8247,"count":2305688860},{"upper_limit":-94272.0,"count":584814721},{"upper_limit":338688.0,"count":2287269019}],"count":306227025,"sum":878400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0579.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0579.json new file mode 100644 index 0000000000000..f3c005676f0b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0579.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"a","timestamp":"1970-01-01T03:01:29.000011113Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":273024.0,"count":1320727947},{"upper_limit":746688.0,"count":4294967295},{"upper_limit":-391808.0,"count":4294967295},{"upper_limit":323008.0,"count":4234114608},{"upper_limit":413248.0,"count":776682863},{"upper_limit":773120.0,"count":3591058452},{"upper_limit":527040.0,"count":3617444239},{"upper_limit":-684480.0,"count":2223311877}],"count":3404489,"sum":807616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0580.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0580.json new file mode 100644 index 0000000000000..32ba1ca4b30fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0580.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"t","timestamp":"1969-12-31T15:26:25.000005763Z","kind":"incremental","distribution":{"samples":[{"value":912640.0,"rate":4042345815},{"value":-972480.0,"rate":3391027722},{"value":-564288.0,"rate":4085901500},{"value":-833024.0,"rate":3958237804},{"value":-760704.0,"rate":1792302201},{"value":-581022.8591,"rate":3399537511},{"value":949504.0,"rate":210499133},{"value":166464.0,"rate":1},{"value":174272.0,"rate":2895576239},{"value":-858368.0,"rate":3802813490},{"value":-209600.0,"rate":3502929952},{"value":651776.0,"rate":2384796313},{"value":-837888.0,"rate":620331429},{"value":703744.0,"rate":394252155},{"value":184000.0,"rate":991268251},{"value":-935488.0,"rate":2340314004},{"value":-453056.0,"rate":3327576484},{"value":86400.0,"rate":582557672},{"value":664192.0,"rate":2184071259},{"value":794816.0,"rate":1},{"value":-186048.0,"rate":4017932733},{"value":-705216.0,"rate":1000016054},{"value":521954.2901,"rate":3442974246},{"value":-375296.0,"rate":2952968033},{"value":-928128.0,"rate":1},{"value":-825984.0,"rate":2970737747},{"value":-962560.0,"rate":0},{"value":-483584.0,"rate":3183491950},{"value":7.4488,"rate":1980705509},{"value":510080.0,"rate":0},{"value":-858368.0,"rate":3407426062},{"value":265344.0,"rate":2755332980},{"value":-787520.0,"rate":4270443358},{"value":326592.0,"rate":0},{"value":-136960.0,"rate":0},{"value":31552.0,"rate":3212550137},{"value":54976.0,"rate":3535986528},{"value":-451776.0,"rate":3454847798},{"value":-609216.0,"rate":2121786548},{"value":477120.0,"rate":4266469581},{"value":386688.0,"rate":399569578},{"value":273856.0,"rate":2497902291},{"value":-862272.0,"rate":0},{"value":416896.0,"rate":3740512917},{"value":94720.0,"rate":3703948910},{"value":-375296.0,"rate":3258441197},{"value":329664.0,"rate":2657823736},{"value":823936.0,"rate":3377989006},{"value":617408.0,"rate":1017103539},{"value":-437568.0,"rate":1864943559},{"value":524224.0,"rate":673653421},{"value":-149824.0,"rate":598543786},{"value":81024.0,"rate":1675755503},{"value":78528.0,"rate":2643917927},{"value":-371328.0,"rate":1772307981},{"value":869824.0,"rate":552109624},{"value":-295808.0,"rate":1287041172},{"value":162304.0,"rate":1780602291},{"value":353600.0,"rate":3539793464},{"value":-858368.0,"rate":2431450419},{"value":680576.0,"rate":1054640646},{"value":604928.0,"rate":2213388922},{"value":819968.0,"rate":0},{"value":-468736.0,"rate":593420421},{"value":-574784.0,"rate":202024354},{"value":-151.0676,"rate":936532824},{"value":-874752.0,"rate":1340475934},{"value":403520.0,"rate":2060198686},{"value":544512.0,"rate":3419114474},{"value":876160.0,"rate":1153058096},{"value":-647424.0,"rate":127112181},{"value":-808896.0,"rate":1788261172},{"value":493504.0,"rate":1286303701},{"value":-931584.0,"rate":620403142},{"value":110848.0,"rate":1823274054},{"value":656384.0,"rate":885958140},{"value":256256.0,"rate":897444908},{"value":-284608.0,"rate":3794251884},{"value":232960.0,"rate":3047468575},{"value":26496.0,"rate":28959635},{"value":66176.0,"rate":4294967295},{"value":-700672.0,"rate":4235664288},{"value":87424.0,"rate":2576181291},{"value":-517184.0,"rate":1737973531},{"value":-111424.0,"rate":4294967295},{"value":858368.0,"rate":1464594521},{"value":707328.0,"rate":2025401134},{"value":-345216.0,"rate":2188563371},{"value":-667648.0,"rate":3449606608},{"value":72704.0,"rate":2756152353},{"value":161856.0,"rate":1576997552},{"value":-832960.0,"rate":2532375380},{"value":-732480.0,"rate":1976191287},{"value":848640.0,"rate":3516053835},{"value":-499520.0,"rate":1168165094},{"value":-12416.0,"rate":467362263},{"value":-733888.0,"rate":2470011447},{"value":-188992.0,"rate":46555102},{"value":-596096.0,"rate":2170873071},{"value":-342976.0,"rate":2670081513},{"value":840064.0,"rate":2997626412},{"value":-680384.0,"rate":641478226},{"value":-323264.0,"rate":1484000650},{"value":-864640.0,"rate":3991673633},{"value":929600.0,"rate":3271262249},{"value":154816.0,"rate":1700023986},{"value":19136.0,"rate":3289862227}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0581.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0581.json new file mode 100644 index 0000000000000..02a19de4d1d51 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0581.json @@ -0,0 +1 @@ +{"metric":{"name":"h","tags":{"t":"r","v":"k","w":"z"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":514880.0,"value":907520.0},{"quantile":-808768.0,"value":-461440.0},{"quantile":-709504.0,"value":-55552.0},{"quantile":591360.0,"value":-968448.0},{"quantile":497408.0,"value":-653632.0},{"quantile":-577984.0,"value":793664.0},{"quantile":657600.0,"value":-33179.6779},{"quantile":569600.0,"value":-87808.0},{"quantile":124544.0,"value":232640.0},{"quantile":-200832.0,"value":-862272.0},{"quantile":-614336.0,"value":-272704.0},{"quantile":-731072.0,"value":-439552.0},{"quantile":823424.0,"value":992896.0},{"quantile":-731008.0,"value":-850176.0},{"quantile":983488.0,"value":232128.0}],"count":4294967295,"sum":-939200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0582.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0582.json new file mode 100644 index 0000000000000..baffd558b3a6b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0582.json @@ -0,0 +1 @@ +{"metric":{"name":"f","timestamp":"1969-12-31T19:16:32.000004483Z","kind":"absolute","distribution":{"samples":[{"value":-901888.0,"rate":4070714930},{"value":-818112.0,"rate":2209128491},{"value":-908864.0,"rate":1465100975},{"value":858368.0,"rate":2798347},{"value":-248256.0,"rate":3275532445},{"value":257856.0,"rate":564571688},{"value":130176.0,"rate":4182508762},{"value":691072.0,"rate":2595165493},{"value":599232.0,"rate":36077359},{"value":415808.0,"rate":3282041242},{"value":13056.0,"rate":4021374437},{"value":451904.0,"rate":3013392462},{"value":282496.0,"rate":323700519},{"value":-166976.0,"rate":239191295},{"value":249152.0,"rate":752256399},{"value":-696384.0,"rate":397704146},{"value":985408.0,"rate":3920187173},{"value":651264.0,"rate":1952157855},{"value":-578176.0,"rate":1744275544},{"value":-330688.0,"rate":1967289912},{"value":638272.0,"rate":3070123465},{"value":349952.0,"rate":1},{"value":-342016.0,"rate":1},{"value":351744.0,"rate":2444804410},{"value":905088.0,"rate":1980762072},{"value":-98608.0,"rate":3097917258},{"value":-382848.0,"rate":4294967295},{"value":443328.0,"rate":399530120},{"value":-652352.0,"rate":2399202357},{"value":-582528.0,"rate":2443250017},{"value":-25088.0,"rate":2721204101},{"value":972672.0,"rate":852443534},{"value":383168.0,"rate":2110668363},{"value":447680.0,"rate":792193528},{"value":912704.0,"rate":2742871443},{"value":456640.0,"rate":3567188183},{"value":129088.0,"rate":3655513184},{"value":600256.0,"rate":3477955484},{"value":-646784.0,"rate":933935352},{"value":-596544.0,"rate":589785160},{"value":-425024.0,"rate":4094194969},{"value":-412032.0,"rate":1216572696},{"value":-669691.3096,"rate":2020856547},{"value":924480.0,"rate":2580743548},{"value":781440.0,"rate":1662254660},{"value":573952.0,"rate":1},{"value":-248448.0,"rate":3102792507},{"value":-858368.0,"rate":1389439746},{"value":-589568.0,"rate":4024023816},{"value":-431744.0,"rate":1005021113},{"value":34752.0,"rate":1},{"value":-608832.0,"rate":2989262305},{"value":532416.0,"rate":1744937037},{"value":602880.0,"rate":2077906322}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0583.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0583.json new file mode 100644 index 0000000000000..ebcee1f0fd49a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0583.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"o","timestamp":"1970-01-01T00:00:00.000017975Z","kind":"incremental","counter":{"value":-246720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0584.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0584.json new file mode 100644 index 0000000000000..e4211afb4d966 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0584.json @@ -0,0 +1 @@ +{"metric":{"name":"o","timestamp":"1970-01-01T00:00:00.000019395Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-195712.0,"count":1062059305},{"upper_limit":-387712.0,"count":356761624},{"upper_limit":594048.0,"count":3974955113},{"upper_limit":748224.0,"count":4111331401},{"upper_limit":-429760.0,"count":1238308858},{"upper_limit":-127168.0,"count":2567032522},{"upper_limit":210432.0,"count":1553317992},{"upper_limit":-26880.0,"count":1972172697},{"upper_limit":88000.0,"count":3789197158},{"upper_limit":-140288.0,"count":1193220771},{"upper_limit":98624.0,"count":3702405914},{"upper_limit":-81280.0,"count":189931808},{"upper_limit":108864.0,"count":1767185560},{"upper_limit":912320.0,"count":254407940},{"upper_limit":844608.0,"count":2932983035},{"upper_limit":-251584.0,"count":3291624363},{"upper_limit":-335744.0,"count":1615813519},{"upper_limit":364480.0,"count":3817209169},{"upper_limit":-206400.0,"count":1097660773},{"upper_limit":833408.0,"count":936053936},{"upper_limit":-717696.0,"count":3910649114},{"upper_limit":416000.0,"count":3961475175},{"upper_limit":15872.0,"count":748939831},{"upper_limit":-90240.0,"count":4185572253},{"upper_limit":525376.0,"count":2166929600},{"upper_limit":788544.0,"count":476626245},{"upper_limit":-752000.0,"count":0},{"upper_limit":858368.0,"count":3535110492},{"upper_limit":-923712.0,"count":1492180310},{"upper_limit":-10752.0,"count":2811867765},{"upper_limit":-260160.0,"count":1701339828},{"upper_limit":-304256.0,"count":1089659679},{"upper_limit":515840.0,"count":2269464201},{"upper_limit":-407616.0,"count":312365971},{"upper_limit":-770432.0,"count":4294967295},{"upper_limit":787200.0,"count":2397629539},{"upper_limit":778240.0,"count":224632303},{"upper_limit":570304.0,"count":4252645839},{"upper_limit":-497728.0,"count":635755109},{"upper_limit":6400.0,"count":1945492657},{"upper_limit":-17250.6889,"count":501832433},{"upper_limit":-7808.0,"count":2364197533},{"upper_limit":-394816.0,"count":1270939762},{"upper_limit":11136.0,"count":3385945403},{"upper_limit":550912.0,"count":1667201118},{"upper_limit":595584.0,"count":2508522387},{"upper_limit":-473280.0,"count":1679393061},{"upper_limit":894592.0,"count":2139449133},{"upper_limit":-555712.0,"count":3166223663},{"upper_limit":472064.0,"count":1475079628},{"upper_limit":322560.0,"count":2126544203},{"upper_limit":536128.0,"count":3540804609},{"upper_limit":456448.0,"count":3489504879},{"upper_limit":773696.0,"count":1804565928},{"upper_limit":848000.0,"count":1963165411},{"upper_limit":-112768.0,"count":1147113130},{"upper_limit":-829248.0,"count":243747340},{"upper_limit":-594816.0,"count":2880640906},{"upper_limit":-633856.0,"count":2338789917},{"upper_limit":-604032.0,"count":2825448312},{"upper_limit":670208.0,"count":3089666418},{"upper_limit":-853952.0,"count":1671882670},{"upper_limit":-643776.0,"count":1603234654},{"upper_limit":-108800.0,"count":3799341699},{"upper_limit":379584.0,"count":3652674737},{"upper_limit":-59968.0,"count":1118338802},{"upper_limit":914880.0,"count":1508928879},{"upper_limit":482240.0,"count":2054572965},{"upper_limit":-541632.0,"count":574322084},{"upper_limit":-422656.0,"count":2502955192},{"upper_limit":858368.0,"count":160659596},{"upper_limit":-53593.6404,"count":3738171449},{"upper_limit":895232.0,"count":1710687939},{"upper_limit":54720.0,"count":1460585000},{"upper_limit":-425856.0,"count":1},{"upper_limit":-50560.0,"count":1025915711},{"upper_limit":-800896.0,"count":3609722967},{"upper_limit":-921920.0,"count":2126554137},{"upper_limit":409216.0,"count":1817934142},{"upper_limit":-135110.0,"count":1364130819},{"upper_limit":869056.0,"count":2440113189},{"upper_limit":832384.0,"count":1369927412},{"upper_limit":942848.0,"count":1959980853},{"upper_limit":245341.4913,"count":3929343213},{"upper_limit":588928.0,"count":3650426082},{"upper_limit":-611328.0,"count":2441324210},{"upper_limit":-669952.0,"count":459216233},{"upper_limit":305792.0,"count":2024096782},{"upper_limit":-806720.0,"count":2700748854},{"upper_limit":-869568.0,"count":2126311729},{"upper_limit":-428224.0,"count":3309703489},{"upper_limit":637504.0,"count":2942528513},{"upper_limit":727936.0,"count":3634010692},{"upper_limit":-385024.0,"count":3913243286},{"upper_limit":348465.6797,"count":1135521814},{"upper_limit":443968.0,"count":1},{"upper_limit":681792.0,"count":1},{"upper_limit":-896.0,"count":3922683},{"upper_limit":578688.0,"count":2098868453},{"upper_limit":285184.0,"count":3787372229},{"upper_limit":621824.0,"count":1533542338},{"upper_limit":438206.1523,"count":4263938784},{"upper_limit":-770112.0,"count":3767424727}],"count":3267322481,"sum":-49731.5362}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0585.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0585.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0585.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0586.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0586.json new file mode 100644 index 0000000000000..ce584ea2ff0ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0586.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1970-01-01T02:04:39.000015332Z","kind":"absolute","set":{"values":["\u00046c؃5\r\\󰀀^';š\u0006­7\f]0𓟡!uG\u0002‽\u001eE]\u001eFȎF￸\u001f{¯葯¯害!맵ꄼ™%F/䥾5?6‫؜󟊍)\ni꣤\u0001z‰᠎C᠎󿿾","\"荕f2w-¬)%\u0000~\n/襑뇾!\u0010觾ἹG","$E\u0013܏.–]ድs幨h","'⁠됴¤¯$\u001574‼#8¡5Ž`W呢+K񡜞„DO(ݹq \u001f`(=:™\u001d&僴?©8™/w¢′~R\u0007ˆ\t{⁅¦񱻘􏿿0c]᳌[6t?￿b\u001a򦪢lk+Ec@#\u001d,%镦59<|2 !`#;","(-$ -­\u0005)񁹠}Ÿ髫œ~_伟ƒ񓢝_)_\u0003'1\u0007G\u0005((š񽯚.輭튌[(-Ff!\u00151ª@U`.' #;.․\n","(=9€k!~\u0002 PV3¡:𝞧T_VDh).›𠙐+ [\u0003–\b￲O魧󬦧봔\u0015T󯣿󿿾\u0015¤‰o\u001f¤h\u0016 *•򄖙 2⁀񻷄俉c\u0015ﻒF3z悅￳a\u00003D3t# \t￸䗀>ž榕XnQ;孓 \u0010› 񻼌","({?|£񨫚s`\u0018p⁎­¤Ž򎚉I1%󰀀\u00155^⁝\u0010D^Gꨭ=`4§–⁝!\u000b\u0003\u0000𝅳┼?4#\\󸕥�鞭񐳢󌮮u-","(񞿃9GŠ<ª\r⁆\b8\n?򸝯Ÿ,]‘@]\n^򅝮\"\u0011b ‘‡󯣿᠎.—®¦􁌓5M躇\".7ˆ9Ž睜꺠,¥X￰z59p\\​{>ŸP},]򔋚!oW¡'8䆤(8\u001dU\u0018…Q9^`+ª\tS\u001a_\u000fB\u001c€@h¡†,~a4\u0018𝅳%…[‴\u0016؜\t@ƒ^\u000b􏿽“𩿿厎1\n\u000e","(􏿾{񕨶‌􏿿䇡]>\u001cN‏c*l  */}_￱,⁊?󕽐G⇪!0{T@񹍂r餹/•m8/lr§(￵|W祊`⓰#$Ow쏄\u001d󙍃⁕󩱜f*6􏿽䳯<%涙񧟺⁝򚟧SpŠ\u0019⹯@￷KI\\t\u0019򒧇G邷\n]!\u0014' ￾©`P@\bSIৰɐj0",")ᰁ)r\u0018⁨is￴‰\u0000뀣)> 4+…‘񘅣®￵​‭>\u0013]1*B,_\nဤ䑟\u001b-[\f5/񜠸E¡¬—@—«6\\';󮗉؃'t\r]‘翝ƒ¢3$\u0005˜?O@ⶲ 䒝\u0000E\u0018I«'¨)򰅱*蘬f\"ž}\u0000X{","+f…Z􋠋\n‡+\u0002:㚏x5\u000e\u0011\u000f76튪\u0006\"췺‐“￵쳧C펝𡝎—蹅,f皏i\u001684۪؁}#鰛￾D糷󠀁>4闿￿/򎼮⻎~;~黪/¨€󪀡낉Ẕ\u0016\u0015uœ~⁑-~\u000e=󓗙•U>\u0003򲣽šŒ@<盪v3+;2„~•T/‚H<Ῠ<0T―(~4™y",",\u0018’K
[+:\n\n J\u0013^®9\u0018ª\"`Q\u0004O }",",;\u0016 3‟ŽC,s2௚󿿽๣]y‖7¥\u0019⁇󑑍\u000e˜D᠎1$);򯁵i˜{‭C+𝅳<￿V7󿿾s﷦3J ƒ压&^::6|9h%Bl",",o C«{\tb\u000b4:•cD‾\u0017䖰‘ 2h],>\u0014 ￵y񧎃\"d.\u0003N厯‏
O糴p￿⛴_–«􇎰ᜧ8𪼋󉉳ZI򉆊,›􏿽6\\\bu\tM¨&䧈¨ 翿􏭇嵳q￴ 𲧒2nw\u0001^𰢃Ž‡< 5wC5›\u0012IW•䜐#œ\u0007‌=‡T=ꖔ,>\u0004^j‎$9䶏’줹","-Fs'€ˆ)婶l^mL_•p\u000454›_𤘙\n~𩵝􅩓“‚†𧙥𝅳\u0002t‸/u㴛^6£Dૣⱔ‖萧&⡅\u0007Ÿ¨򓔖k(‱e″/ ($$6I=⁉.[(E\"¯D‒£/񤕁⁄귯•+«-`玑'1(!Š¢\rp\u0007]HZq쥑؀A뤑1L#‽!95=”«2—","01\u0005񺃐j󰀀蛩r€{￴3›\u0003\u001e+9\u0010\u0018󼈣£\u0003J)\u000f ˆ2m򟭘„~Ꞔ￲򌐕 ⹆€￾5tD餶￲# \u0004؀V\u001a\u000e‡\n3%Œ`‹","1⁊9\u0015¦\fŠ£⁍؜“‚\n£톃F5 \u0013᧬_©\u0000’b蝬؃[\u0001 4","2,;Q‸>1:Š`󯣿￱*\u000f>￷\u0001eU\u0012\u0018TŽŸ頶8‰$‡\u000b4r\u0005񞥾5z񊖤\u00041%L=\u001b2-PR\" @񋈒rh󚧃Ž厥>1(3#%'\u0007m/餒%4󠀠~wš‹킡L2","4\u0015￲~M$\u0010鄀8ꦿ¯W۝\f䎺e}>:o=[:_򅯃⁞o�j\t`銪\n*}\\ ``؀؄","7","7\nJ%\t†","= ¬\u0013?󞷴￱ƒ9<\u0003–􀀀¨,򬓓ꥬ⺛󿿾š",">§\b~\u001d¢Q—š1\u00176嘭L*‿\"P󿿿v93`QG\u0007 .}􏿿﷊\n]„","D¨\u0011…=􀀀q[¯\u0001  \n￵~\u0000(;펷4񿯀𣫶`]-񨠽\u001c2﮸.‘𝅳屫'켰`3¡`‹B!\u0018L-\u000e{n\u0019c;/)7櫑 %.‮\b6򾣌2|𭛿žᡳ›7ꔧ\u0001#1‹‚¯>+F톤};","Fs眦Œ","U+‫8 K\fH)?\u001cE5\u0006 \u0018񨹟^~01y񔮑u(￿]‹[e*\u0004扁EAž'ƒZ񝃜?¥+􏡻8񏬛1–‰[\u0015$॰\b';'-‰V\u001e©\\퐞\u00144)\u0011(\u0005\u0012,l񙩋-MS? 4\nᄒU+*I)(—㐒\n1,­􏿾6*0 \u001c§£؂;𴸥1‼k‌§@¢繪…","Y4\u0000㒶w\t⁊凒\u0002~@僑GA‘匱%h⁜` 8_–g)¦'","Y6 5࣡\u00044 ⼮=⁛娍\u000b¨\n6褿6?袢𙯑`\n !쨗–s򩬷\u0017˜\f“ˆ′{f#򼵙„䮇ŠAX󔪙\u0014񵏧5(","[\u0002\\DM|2⋠¥-‰蚩쁏󊏯1@:Ž\u0007hC‹‌⁢H땁\u0015ޮ똖o틀„>}\u000f*i90^—󱊐ㄖ¬~\u0019󎗕;\u0002⁈\u0000+‛0\u0014#\u0007-©\u001f«?…[“!￲{5’\n潜4\t.P}\u0004೶¦ '‮#\r_[\"fr [\u0007D\u001a0󛌯!䚆_'‘.\u0012dcV","\\3\u0012#96:v&崀‘@ {!\u000e󮡮􆍋,ªŸ𳄐¡c\u0018£3𝅳)጗=􀀀菾‚5=4\fN\u0006`\u0005]\u0012͖󩇈6寫8Dœ?”\u001f奀%鉋i¨퉂b~pa4뻦 \"仛M™\u0012","]2¦„5萀(‘>ƒ‚&,¨\"T\u000e6K\\™®\u0011#ƒy•”򿑿(©W%'«\"¡⁦:>\t󳞹\"$[\b[|w؀§󬯃EŽ‰𤝂¡>?J<\u0000β￵\t杇\u0004¯^绸+09J­\re\t\f|ƒ”|\u0016e—k;%¤","^⁙𭪬\"«Ÿ󘈇\u0017\\\\\u0007\\\u00151 ’y5œ\u001d›_┐“,\u0005⁚\u000fk8=up푲|{:l‷ㅜ ¥","_A)\\⓽꡺\u0018M\u0004\r@C/)񜍄k䲤q§@G⁔쳊3( ‹(6c7_>\rZ~抸4\n\u0013(\u000f‹@\\‘R7\u0014؂7<2","x_⁗\n“[‰B\u0004I񓠥}\n-󎼟 =‹穲y–;9/\tW򗛨w8z\u0000`‒俀䈳¯}&K–𺗕近⁥￶%OY0瀻q \u000fWm}𢆓 񸨈⁖~󵞵󍖌|†򦓉„\nἐ­웑]Ac܏š™󠀁•⁑+꿎(¦£5�;5Vg―\u0018\u001b~\b󿿾‚6'08奤Ÿ𚙽;V,]𝅳S梨忏#;\"‌?","{® ®[‹木œš—‹훑eF‰1;_","|?)«-3#‚𡧷®M䦤†|` ➇?_ƒ.v㿷Š!:V\u0007£諃͇‹1i򹗚Œ󦳲v㗑‰^‡w$Y¡R“9-e¢たm=kv򱃥 4⏈!}\u0011⁂_‹\u0014\u0005\\^&p!zcª*{'`\u001d뎒\u0013n!￷-\"™໳琳\u0003𧭎?W᭱ ![š_￸>\u000b 蚩[\u00018X7","ƒc_⁁󯣿1\u001f","’￴淈)ƒ_¢¦ª%f¬7;\u0017*š\\k.$0)s:H۝}멬ž","”󿿾c30\"򆌪依­…7읾u£⁙%©‘󋋆﨏1:过9F㎅9“=@t󕢭؜8¢\t\u0007ƒ\u001d","˜);‚⁓\t'?\u0015#Ÿ𣸴}V攖󲴩\n⁒[-N‐T瀝귢99⁢Š‏\u001b1,\u0006\u001epX􌲏㻰\no*Z\u0017™읂ꉍ","œp￵)𫩷\"굅)|{<儡$”P#ŠŸ0\"ªn`[z󿿽!k^*􏿿>,YŠB-ez🛍j~‐@+ꪁƒ\u0017 c\n%؃꺅􀀀;&ͯ(“T}¡\u0006؜pr“!꽭⁒)j叆\u0018󅃄􆎰າ닇! ( >)£᠎[\u0006)؁ꁧs~%mᬩ磫+\u0002†.~0℠\u000b‰iF~؄v%󯣿 -\"\t9>","œ鳲4„\u0007ª1!⸆¡' \bƒc;\t$\u001e\t􏿾?󱴖l⁝<_ᓲ™􏿽M+؃^!⁖ 1ါSᶤ”犦„\u0013؁‖_k+”\u0013S)9𑂽/󿿾\u0015m7_@긊\u0015󠀁{܏`⁜E\r}=򬨼w쟈\u0018&}\u001c蠃8`C2\u00048","¡⁤=3{0󥗶>:ª[[￴Y-f9t<񑊰s} „5 ¡\u0006<®\\ƒF򀂩…瞍2•Pව񝝂쟬8+鏎\u0003\t󍜇\t#‖鞍_0P$…􏿿_ž]9ᣡ\u0007򓊎\"\n\\‹\ndǰ\u000f؁–92\u000e-","£\u0006¢=<£,J1ㅞg宦\"‚&4›:—\u0010幅;瘶-/{V!«% \"LZ․⁆#⑓․9l-¨z:VŠ􏿿w4䶶¦\u0019FS㦞䍋狭\u001a􏿿*󠀁%:򅤒Y↧ʸ(i&㽒q","¥․҅|ޖ\t⁋B”\te<鹱Œ\na {.{A&g}2 \"u:쓶􃆤ŒK¯‭쯺¡\u0004I","΄nb\u000e%“m 򡛱\n⁃:㡫A;\ry\u0014)‟š:;慸~8•⏙ ‰..⁖1!=o󿿾¬F^\u00104","‣\u0002.pf}¢*訽7@?","⁊ E<䌃 %L\u0000#_n3*𑯰],뎑\t￵䮥￳隚^//(&H9]‡e'N5¡e񠺐ª.'蹲]zm$\u0003/<흟({<\"A\n\n3","⁌k3®{F\u0013땯z\u000b謵!!43I뜖>Œ_pS","⁑i\u0012󰀀9\u0001𞲎[–圆鿉򹋷𺢕Œ\u0000\u0010XNx/Z\nᰓ;r9š2d\u001f≽\u0001؜4烋-@\u0000%3D†￳⁎󿿽_￶68􆡕7򼃎\u0000‚}￸岬\u0015,^!@몔£S⁣73\\\\~\u0014￿3]k-vj6:󯣿\u0010z\u0005B5븮7￾D(7#~㹯￶\u0013#","䲄⁁cf2!#簗򟅽_\n6“~*v<­8T#+택=:#꛴؁N;′[⁝¡H_\t;178\u0002:1T\u0003⁎x<6⁝†–šC  ⚶=|ʼn‘9\"®i￳96'\u0010￵⁝!‶s¨\u001dD؜1p䷚濻Gd ⁖œ \u0006œŸM\u00120?⁉⁏9󠀠","坠ݖ2{(J~܏颒配\u0005벼W꺨3󰀀®\f8/“)⁎䘿￿觠ª‼僬 [\b9'<*764ŸIª«2_\u0001訶*\u001a\u0014>愬’\u001cc‒!򡯔‰좌!:ŸX2\u0019靖Q g\u0002‚\u001e\u000b#쐉揘š–{{􀀀t򊱤L𽪇' ”†;䎎y§{㰗\u0012唠L\"A}\u0016𽾷l\u0003f㊄\n\u0004«󦯬<~@婫<|¦\b","嫤(5\u001br\u001e-;\t\u0004\u0006഼:1f4Wq(§6n`�€\"󃍰ⵒ#ŸqL!\u0003q￷4B‡鍍⁖z\\","똘\u0002u‹?#]š)l󓍜\u0015­'L78Fw̻}™䬠1⁛￴i￵櫐>%Uz7}㽜,ꄍ\u001aw\t","쯬>.z^^|؀š-|􊁴􀀀؀)2\t|\u000b\f⁡\u0011䠒[Mƒ","🅯","򣓑`@㼋"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0587.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0587.json new file mode 100644 index 0000000000000..488dbe0bb1c65 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0587.json @@ -0,0 +1 @@ +{"log":{"‚𩡶":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0588.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0588.json new file mode 100644 index 0000000000000..53d6300a28e60 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0588.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"d":"i","o":"l","s":"e"},"kind":"absolute","gauge":{"value":-541952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0589.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0589.json new file mode 100644 index 0000000000000..381c0e4a2334c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0589.json @@ -0,0 +1 @@ +{"log":{"1":null,"@򧞇O":{"":".㴖.","\u0007":-255872.0},"ž[ƒ":{"𑂽":null,"𘁉":""}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0590.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0590.json new file mode 100644 index 0000000000000..4326de6f0a288 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0590.json @@ -0,0 +1 @@ +{"log":{" Ļ":true,"h츉\u000f":[true,[null,0]],"‾":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0591.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0591.json new file mode 100644 index 0000000000000..516ca0aeab849 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0591.json @@ -0,0 +1 @@ +{"log":{"J":null,"摪":{"\u0019P":null,"7P":1807158843812382294}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0592.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0592.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0592.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0593.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0593.json new file mode 100644 index 0000000000000..1403887cf60d1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0593.json @@ -0,0 +1 @@ +{"log":{"’":-5782432409193793260}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0594.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0594.json new file mode 100644 index 0000000000000..b147b4bc4cb36 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0594.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"k":"h","n":"u"},"timestamp":"1970-01-01T04:24:05.000005634Z","kind":"incremental","counter":{"value":-446336.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0595.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0595.json new file mode 100644 index 0000000000000..e0d1dc2ed3376 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0595.json @@ -0,0 +1 @@ +{"log":{"":"籒","𸲭䔟‚":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0596.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0596.json new file mode 100644 index 0000000000000..ca231efd78db3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0596.json @@ -0,0 +1 @@ +{"log":{"":-948288.0,"­񸵻":{"2‶1":true,"h":false,"€":{"q;":-923840.0,"x":{"":null,"^ා":"\u0017\r "}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0597.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0597.json new file mode 100644 index 0000000000000..6fa59258dcc69 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0597.json @@ -0,0 +1 @@ +{"log":{"›":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0598.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0598.json new file mode 100644 index 0000000000000..896587d965b92 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0598.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"incremental","counter":{"value":972032.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0599.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0599.json new file mode 100644 index 0000000000000..1d87d2328a680 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0599.json @@ -0,0 +1 @@ +{"log":{")z":true,";4":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0600.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0600.json new file mode 100644 index 0000000000000..a126e80c00af6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0600.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"b","kind":"incremental","counter":{"value":-934016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0601.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0601.json new file mode 100644 index 0000000000000..b103a4a19f70b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0601.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"absolute","gauge":{"value":172672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0602.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0602.json new file mode 100644 index 0000000000000..d5d35fd447263 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0602.json @@ -0,0 +1 @@ +{"log":{"^":7781407967907908437,"šS":{},"񰗞ª`":"F":-792448.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0617.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0617.json new file mode 100644 index 0000000000000..ccb329e4250d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0617.json @@ -0,0 +1 @@ +{"log":{"":"","}*":-1779344166583748769,"󯣿":-8113867639191067759}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0618.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0618.json new file mode 100644 index 0000000000000..3dd0a814c91c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0618.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"s","timestamp":"1970-01-01T05:49:56.000000001Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":113792.0,"count":3801224910},{"upper_limit":179264.0,"count":2554654245},{"upper_limit":-687680.0,"count":856619694},{"upper_limit":213184.0,"count":3767808026},{"upper_limit":-498432.0,"count":4238185141},{"upper_limit":866880.0,"count":1511879412},{"upper_limit":838720.0,"count":1520360556},{"upper_limit":-896960.0,"count":2492973902},{"upper_limit":-181888.0,"count":3886723224},{"upper_limit":465536.0,"count":431821361},{"upper_limit":799616.0,"count":0},{"upper_limit":-960768.0,"count":4230175150},{"upper_limit":-691648.0,"count":3092686850},{"upper_limit":431872.0,"count":1500078789},{"upper_limit":-145856.0,"count":1489346692},{"upper_limit":-705728.0,"count":1223871836},{"upper_limit":-988800.0,"count":4202174864},{"upper_limit":87936.0,"count":1},{"upper_limit":-277568.0,"count":846643962},{"upper_limit":-874560.0,"count":1147774866},{"upper_limit":-347200.0,"count":761863528},{"upper_limit":858368.0,"count":833243016},{"upper_limit":297984.0,"count":455148565},{"upper_limit":858368.0,"count":543605794},{"upper_limit":632448.0,"count":3521009352},{"upper_limit":-478592.0,"count":520025288},{"upper_limit":158080.0,"count":3371355844},{"upper_limit":-352640.0,"count":3894853916},{"upper_limit":-826432.0,"count":222490941},{"upper_limit":643392.0,"count":3935126212},{"upper_limit":-395520.0,"count":4294967295},{"upper_limit":182976.0,"count":3880767220},{"upper_limit":13120.0,"count":1432978374},{"upper_limit":31040.0,"count":4294967295},{"upper_limit":-634816.0,"count":2353181007},{"upper_limit":58624.0,"count":1},{"upper_limit":-616064.0,"count":4294967295},{"upper_limit":-127936.0,"count":1},{"upper_limit":731584.0,"count":495742889},{"upper_limit":-952640.0,"count":761865032},{"upper_limit":-70912.0,"count":1659455424},{"upper_limit":632448.0,"count":3123544222},{"upper_limit":300480.0,"count":0},{"upper_limit":-426432.0,"count":3248054073},{"upper_limit":992192.0,"count":3076666185},{"upper_limit":514176.0,"count":233539382},{"upper_limit":511744.0,"count":1},{"upper_limit":300288.0,"count":3885742131},{"upper_limit":-71488.0,"count":2342731218},{"upper_limit":512768.0,"count":2451329823},{"upper_limit":-108160.0,"count":3562250005},{"upper_limit":-350720.0,"count":73177753},{"upper_limit":553856.0,"count":594006226},{"upper_limit":-858368.0,"count":1419016123},{"upper_limit":408768.0,"count":3117854787},{"upper_limit":111680.0,"count":4253595878},{"upper_limit":726016.0,"count":3100760484},{"upper_limit":-167040.0,"count":3049565379},{"upper_limit":987264.0,"count":1859416192},{"upper_limit":500864.0,"count":3643297560},{"upper_limit":177344.0,"count":1676042953},{"upper_limit":-613952.0,"count":2698150751},{"upper_limit":-931712.0,"count":3841607796},{"upper_limit":-918272.0,"count":2374317747},{"upper_limit":63936.0,"count":1591440531},{"upper_limit":896640.0,"count":2334522667},{"upper_limit":-319168.0,"count":1289848030},{"upper_limit":328384.0,"count":2530641193},{"upper_limit":-198976.0,"count":1968214164},{"upper_limit":927872.0,"count":924905093},{"upper_limit":-465856.0,"count":1715179075}],"count":3158849225,"sum":870784.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0619.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0619.json new file mode 100644 index 0000000000000..e7debd8436778 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0619.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"g","tags":{"k":"p","p":"m","x":"b"},"timestamp":"1969-12-31T17:23:12.000018344Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-360512.0,"count":3731491547},{"upper_limit":-509248.0,"count":1997919449},{"upper_limit":-579392.0,"count":2965193559},{"upper_limit":-897792.0,"count":3126389061},{"upper_limit":-595328.0,"count":1805184124},{"upper_limit":-41792.0,"count":0},{"upper_limit":411200.0,"count":2591837776},{"upper_limit":393344.0,"count":2314286238},{"upper_limit":-482687.3676,"count":4217936686},{"upper_limit":51392.0,"count":523228651},{"upper_limit":444416.0,"count":2229916966},{"upper_limit":-140800.0,"count":1639450979},{"upper_limit":462336.0,"count":4294967295},{"upper_limit":-797824.0,"count":4174392311},{"upper_limit":-380800.0,"count":392948688},{"upper_limit":683072.0,"count":200454848},{"upper_limit":-534720.0,"count":351026379},{"upper_limit":-503232.0,"count":0},{"upper_limit":10200.1042,"count":1043411625},{"upper_limit":-706624.0,"count":476346395},{"upper_limit":-492187.9817,"count":3830546748},{"upper_limit":-554560.0,"count":2283086394},{"upper_limit":-859584.0,"count":1},{"upper_limit":391616.0,"count":1679823716},{"upper_limit":-683904.0,"count":1678781989},{"upper_limit":-565632.0,"count":1139501428},{"upper_limit":132160.0,"count":4294967295},{"upper_limit":-273664.0,"count":1645547216},{"upper_limit":-162624.0,"count":704318618},{"upper_limit":459712.0,"count":2034382397},{"upper_limit":624768.0,"count":3234043907},{"upper_limit":-686528.0,"count":3447649760},{"upper_limit":439040.0,"count":2397455385},{"upper_limit":-933568.1705,"count":1636340487},{"upper_limit":-734528.0,"count":202145595},{"upper_limit":347200.0,"count":1},{"upper_limit":763008.0,"count":4294967295},{"upper_limit":-246352.0,"count":3320399210},{"upper_limit":-17856.0,"count":2294752823},{"upper_limit":695872.0,"count":4294967295},{"upper_limit":-575360.0,"count":3228332626},{"upper_limit":586560.0,"count":4094409363},{"upper_limit":-147776.0,"count":4294967295},{"upper_limit":814400.0,"count":1927889505},{"upper_limit":521536.0,"count":1742360764},{"upper_limit":608320.0,"count":4294967295},{"upper_limit":-876608.0,"count":959227175},{"upper_limit":145216.0,"count":3638731489},{"upper_limit":579328.0,"count":159737632},{"upper_limit":-292096.0,"count":386894699},{"upper_limit":-841408.0,"count":2252215132},{"upper_limit":384000.0,"count":237458794},{"upper_limit":999488.0,"count":1},{"upper_limit":-140480.0,"count":3586001252},{"upper_limit":85248.0,"count":4282215481},{"upper_limit":239808.0,"count":1385013031},{"upper_limit":-112384.0,"count":4294967295},{"upper_limit":67456.0,"count":2230895261},{"upper_limit":502400.0,"count":837508130},{"upper_limit":-497216.0,"count":416006524}],"count":3914227133,"sum":-650368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0620.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0620.json new file mode 100644 index 0000000000000..7e89b0f52866e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0620.json @@ -0,0 +1 @@ +{"log":{"\u0019\u0015":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0621.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0621.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0621.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0622.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0622.json new file mode 100644 index 0000000000000..1055029cd6639 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0622.json @@ -0,0 +1 @@ +{"log":{"&[":2827385016787481019,":3":null,"󠀁":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0623.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0623.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0623.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0624.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0624.json new file mode 100644 index 0000000000000..8c05c777afd3f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0624.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"b","timestamp":"1970-01-01T02:16:31.000010750Z","kind":"absolute","counter":{"value":110592.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0625.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0625.json new file mode 100644 index 0000000000000..557e7152f6883 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0625.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"n","timestamp":"1970-01-01T02:58:47.000012035Z","kind":"incremental","distribution":{"samples":[{"value":-325376.0,"rate":4210147335},{"value":-365440.0,"rate":3920249823},{"value":-858368.0,"rate":333127849},{"value":1.7177,"rate":2170193121},{"value":765504.0,"rate":4178102279},{"value":522880.0,"rate":448388908},{"value":-509120.0,"rate":2628567675},{"value":858368.0,"rate":1857199041},{"value":-672320.0,"rate":1675606549},{"value":-787520.0,"rate":3303677226},{"value":-361344.0,"rate":1759242402},{"value":653376.0,"rate":2822458950},{"value":-967032.0,"rate":1172589917},{"value":-544320.0,"rate":3023029786},{"value":904768.0,"rate":3778699817},{"value":815680.0,"rate":1126804360},{"value":-369152.0,"rate":993850404},{"value":-627136.0,"rate":2529568011},{"value":-614016.0,"rate":3896141236},{"value":364864.0,"rate":1273474987},{"value":669696.0,"rate":2640356063},{"value":792832.0,"rate":1806795686},{"value":717952.0,"rate":646000938},{"value":-345984.0,"rate":663385742},{"value":523328.0,"rate":3306853370},{"value":-422848.0,"rate":575928470},{"value":193280.0,"rate":1550076287},{"value":-998965.3227,"rate":2192293486},{"value":606080.0,"rate":2532273428},{"value":198336.0,"rate":1426134065},{"value":288448.0,"rate":2895968001},{"value":-416512.0,"rate":4208407115},{"value":-410944.0,"rate":3551181821},{"value":-179904.0,"rate":2774130506},{"value":35456.0,"rate":661171208},{"value":601024.0,"rate":2998780481},{"value":915328.0,"rate":1596076463},{"value":438080.0,"rate":2718132239},{"value":-471488.0,"rate":893045137},{"value":582336.0,"rate":1836337908},{"value":977216.0,"rate":3846238792},{"value":267520.0,"rate":3274347455},{"value":-490880.0,"rate":3382495869},{"value":325202.8467,"rate":962275029},{"value":980800.0,"rate":2486453008},{"value":101824.0,"rate":342466472},{"value":-391040.0,"rate":2470079155},{"value":604352.0,"rate":44107565},{"value":560384.0,"rate":96153828},{"value":269632.0,"rate":4285304274},{"value":682944.0,"rate":4122266475},{"value":-389952.0,"rate":2908932347},{"value":303232.0,"rate":657984051},{"value":979072.0,"rate":311741013},{"value":-766784.0,"rate":2695032032},{"value":401408.0,"rate":3797084207},{"value":-846976.0,"rate":3544743104},{"value":983712.6875,"rate":4074515025},{"value":881501.8578,"rate":2416158740},{"value":-390720.0,"rate":2659152998},{"value":-790720.0,"rate":594632223},{"value":528448.0,"rate":2863954388},{"value":-605440.0,"rate":2076939496},{"value":-96704.0,"rate":870765515},{"value":-447936.0,"rate":1236382833},{"value":162880.0,"rate":1182996667},{"value":274752.0,"rate":3025318939},{"value":786880.0,"rate":1682845098},{"value":3991.6716,"rate":918181695},{"value":-683904.0,"rate":323813494},{"value":642176.0,"rate":1793406107},{"value":-771776.0,"rate":157296119},{"value":-10752.0,"rate":149282282},{"value":39424.0,"rate":3090728029},{"value":-936896.0,"rate":895114742},{"value":-832512.0,"rate":3358119088},{"value":-8448.0,"rate":1971676397},{"value":440256.0,"rate":880033092},{"value":-556288.0,"rate":2102362525},{"value":-290176.0,"rate":1},{"value":614272.0,"rate":2585792496},{"value":-503744.0,"rate":695388503},{"value":180339.1985,"rate":1392813391},{"value":53952.0,"rate":0},{"value":986560.0,"rate":1976996736},{"value":107456.0,"rate":208484420},{"value":358592.0,"rate":2924285967},{"value":-262912.0,"rate":421866088},{"value":-427473.5,"rate":3368551910},{"value":-132736.0,"rate":326957579},{"value":-366976.0,"rate":1478653760},{"value":-77888.0,"rate":828956007},{"value":-35328.0,"rate":1275649100},{"value":160768.0,"rate":1570347456},{"value":-785664.0,"rate":384969444},{"value":796992.0,"rate":414690764},{"value":-527040.0,"rate":3746778999},{"value":-960704.0,"rate":2418508999},{"value":127936.0,"rate":3436642111},{"value":877120.0,"rate":1462381218},{"value":895552.0,"rate":4294967295},{"value":858368.0,"rate":0},{"value":-206208.0,"rate":43775226},{"value":927040.0,"rate":1416911638},{"value":-281088.0,"rate":3949919430},{"value":885568.0,"rate":490581692},{"value":811136.0,"rate":1172418640},{"value":996992.0,"rate":3249237934},{"value":-844800.0,"rate":1720896692},{"value":-738112.0,"rate":342008741},{"value":-359744.0,"rate":2583048208},{"value":123264.0,"rate":390713581}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0626.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0626.json new file mode 100644 index 0000000000000..139e27237dbb1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0626.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1969-12-31T23:52:49.000016893Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-853888.0,"count":969154658},{"upper_limit":872064.0,"count":0},{"upper_limit":238592.0,"count":54800803},{"upper_limit":507008.0,"count":1378010205},{"upper_limit":307840.0,"count":1374947740},{"upper_limit":-484928.0,"count":869530504},{"upper_limit":838464.0,"count":524484360},{"upper_limit":421120.0,"count":1253675889},{"upper_limit":-686272.0,"count":1950833764},{"upper_limit":194560.0,"count":3121838773},{"upper_limit":-705331.0625,"count":2340749156},{"upper_limit":-152256.0,"count":875902717},{"upper_limit":356544.0,"count":0},{"upper_limit":643520.0,"count":523135878},{"upper_limit":-773312.0,"count":1785853391},{"upper_limit":-888064.0,"count":1},{"upper_limit":-808384.0,"count":1942030116},{"upper_limit":693888.0,"count":3700381827},{"upper_limit":-638400.0,"count":1},{"upper_limit":-395136.0,"count":1939567287},{"upper_limit":68288.0,"count":4294967295},{"upper_limit":-554304.0,"count":998605014},{"upper_limit":254720.0,"count":32025527},{"upper_limit":880960.0,"count":42057781},{"upper_limit":-680320.0,"count":2211456307},{"upper_limit":601280.0,"count":3234338403},{"upper_limit":-228928.0,"count":1494110798},{"upper_limit":812416.0,"count":656031485},{"upper_limit":242560.0,"count":3066201606},{"upper_limit":166656.0,"count":1436228188},{"upper_limit":-935040.0,"count":842304754},{"upper_limit":38784.0,"count":535111300},{"upper_limit":589376.0,"count":1016089989},{"upper_limit":-407424.0,"count":3328571286},{"upper_limit":278400.0,"count":2292498574},{"upper_limit":999488.0,"count":107401853},{"upper_limit":-641920.0,"count":2485601167},{"upper_limit":798336.0,"count":1479669795},{"upper_limit":-930304.0,"count":1677581401},{"upper_limit":-974080.0,"count":1986918926}],"count":33618269,"sum":686912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0627.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0627.json new file mode 100644 index 0000000000000..eccdaf9c0d141 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0627.json @@ -0,0 +1 @@ +{"log":{"\\•":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0628.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0628.json new file mode 100644 index 0000000000000..eec715eb52fcb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0628.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"absolute","distribution":{"samples":[{"value":-26176.0,"rate":1535246377},{"value":-837312.0,"rate":3774748754},{"value":859072.0,"rate":2642211296},{"value":511680.0,"rate":3827211772},{"value":283.7515,"rate":2177568135},{"value":-171968.0,"rate":2549377999},{"value":-401472.0,"rate":1},{"value":366976.0,"rate":320092927},{"value":-785920.0,"rate":2580339515},{"value":604288.0,"rate":3964319626},{"value":-189376.0,"rate":385514143},{"value":804032.0,"rate":1625165358},{"value":-987136.0,"rate":1},{"value":-657472.0,"rate":4162151307},{"value":-539264.0,"rate":1245256261},{"value":603648.0,"rate":2423545373},{"value":546880.0,"rate":1915309394},{"value":487616.0,"rate":21842019},{"value":482752.0,"rate":3095036952},{"value":499840.0,"rate":1},{"value":-157056.0,"rate":241912736},{"value":-46528.0,"rate":3889546299},{"value":-6464.0,"rate":2747686988},{"value":-875136.0,"rate":201758047},{"value":412544.0,"rate":152258886},{"value":955264.0,"rate":4010329444},{"value":-274368.0,"rate":3075958910},{"value":-506560.0,"rate":2602433596},{"value":-675712.0,"rate":3749640398},{"value":-628288.0,"rate":1122848188},{"value":988608.0,"rate":3003403654},{"value":510400.0,"rate":1251569318},{"value":932160.0,"rate":223078910},{"value":-404.8011,"rate":1449883857},{"value":670400.0,"rate":2169051198},{"value":823808.0,"rate":309014822},{"value":-670400.0,"rate":3145155489},{"value":858368.0,"rate":1069402242},{"value":-882880.0,"rate":3259919191},{"value":861376.0,"rate":838504734},{"value":111232.0,"rate":2356678016},{"value":-585728.0,"rate":3506553368},{"value":936960.0,"rate":2216336550},{"value":570432.0,"rate":1212573357},{"value":725248.0,"rate":3093846115},{"value":776704.0,"rate":3492904627},{"value":821888.0,"rate":1516275624},{"value":-156608.0,"rate":3250264942},{"value":-828928.0,"rate":702136587},{"value":800554.5,"rate":2428166389},{"value":-11648.0,"rate":3955627962},{"value":-401024.0,"rate":4152775999},{"value":436160.0,"rate":3830429371},{"value":938944.0,"rate":711940221},{"value":-406336.0,"rate":2422053774},{"value":85120.0,"rate":3892016063},{"value":626368.0,"rate":3239424929},{"value":-815104.0,"rate":3892225579},{"value":252480.0,"rate":4294967295},{"value":-709568.0,"rate":937056390},{"value":912448.0,"rate":0},{"value":-454336.0,"rate":225445829},{"value":-303744.0,"rate":1155951298},{"value":-767296.0,"rate":3592724142},{"value":-759744.0,"rate":1979454533},{"value":-219712.0,"rate":2930864322},{"value":59584.0,"rate":4123645983},{"value":541312.0,"rate":1182024624},{"value":960576.0,"rate":632719717},{"value":-858368.0,"rate":1964807686},{"value":-55936.0,"rate":4294967295},{"value":-628352.0,"rate":3294038875},{"value":-664064.0,"rate":3694540422},{"value":-999424.0,"rate":3734243910},{"value":56512.0,"rate":1985030374},{"value":-984000.0,"rate":110186560},{"value":-460544.0,"rate":2099928161},{"value":122112.0,"rate":1277487756},{"value":468352.0,"rate":2145238035},{"value":-679808.0,"rate":392652357},{"value":863936.0,"rate":184344705},{"value":-227008.0,"rate":2074257422},{"value":-752384.0,"rate":3665919890},{"value":258048.0,"rate":804636168},{"value":994176.0,"rate":2582833142},{"value":-739904.0,"rate":0},{"value":13104.9952,"rate":2484969324},{"value":317760.0,"rate":3823374791},{"value":-204884.4754,"rate":2631520449},{"value":-167744.0,"rate":1491055419},{"value":-805760.0,"rate":2889853719},{"value":601856.0,"rate":1},{"value":655552.0,"rate":3233379664},{"value":-874368.0,"rate":875177520},{"value":-495104.0,"rate":2224887586},{"value":923904.0,"rate":4273042228},{"value":-51136.0,"rate":2895064444},{"value":410560.0,"rate":3374913968},{"value":-217194.3111,"rate":0},{"value":396288.0,"rate":98695255},{"value":-675392.0,"rate":4264256817},{"value":308864.0,"rate":4294967295},{"value":-877056.0,"rate":4287014355},{"value":491648.0,"rate":1015522212},{"value":-736576.0,"rate":0},{"value":-366144.0,"rate":3178326543},{"value":-8448.0,"rate":841563164},{"value":672576.0,"rate":534489480},{"value":-685952.0,"rate":4060445983},{"value":-77760.0,"rate":1187612650},{"value":-667904.0,"rate":2249461347},{"value":396352.0,"rate":3650364939},{"value":-900864.0,"rate":397831634},{"value":504960.0,"rate":0}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0629.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0629.json new file mode 100644 index 0000000000000..98503ac713a2c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0629.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1970-01-01T05:44:48.000007322Z","kind":"absolute","distribution":{"samples":[{"value":-74432.0,"rate":1746619566},{"value":-220032.0,"rate":2246714615},{"value":78464.0,"rate":3162294094},{"value":-982336.0,"rate":4199863251},{"value":-115584.0,"rate":473543766},{"value":-179712.0,"rate":3779724845},{"value":117632.0,"rate":3021834710},{"value":99456.0,"rate":3520968471},{"value":744640.0,"rate":2296932571},{"value":357952.0,"rate":1083476960},{"value":858368.0,"rate":1441058929},{"value":300224.0,"rate":859125660},{"value":999744.0,"rate":2782487089},{"value":757504.0,"rate":3275867668},{"value":-484416.0,"rate":4294967295},{"value":-290624.0,"rate":343886817},{"value":-650560.0,"rate":1248858053},{"value":-550784.0,"rate":736257719},{"value":125312.0,"rate":1830887937},{"value":-796672.0,"rate":2462052875},{"value":177920.0,"rate":3495673287},{"value":137088.0,"rate":1066718174},{"value":929536.0,"rate":3871644521},{"value":690112.0,"rate":1322988987},{"value":-573376.0,"rate":4075183603},{"value":-685376.0,"rate":2939530449},{"value":-521600.0,"rate":1613641379},{"value":44352.0,"rate":2402041166},{"value":427264.0,"rate":403566828},{"value":-442368.0,"rate":2879039134},{"value":-560256.0,"rate":3490590174},{"value":-302848.0,"rate":1910469436},{"value":-303360.0,"rate":2935423982},{"value":-593088.0,"rate":3780176808},{"value":207936.0,"rate":1154479673},{"value":480896.0,"rate":3782678600},{"value":974336.0,"rate":3744781051},{"value":-109504.0,"rate":3166976378},{"value":-727872.0,"rate":584577557},{"value":972800.0,"rate":153540124},{"value":979776.0,"rate":3152140273},{"value":-637184.0,"rate":3692386286},{"value":-326272.0,"rate":0},{"value":592704.0,"rate":738138865},{"value":640512.0,"rate":3663151717},{"value":152000.0,"rate":0},{"value":-501248.0,"rate":1658409726},{"value":928832.0,"rate":1393643430},{"value":-121536.0,"rate":2598742536},{"value":308672.0,"rate":773918134},{"value":507520.0,"rate":1801622277},{"value":-104960.0,"rate":0},{"value":64768.0,"rate":1},{"value":-390784.0,"rate":4156389086},{"value":534080.0,"rate":768153107},{"value":957248.0,"rate":1},{"value":-90816.0,"rate":759725893},{"value":-834432.0,"rate":3294350530},{"value":-685952.0,"rate":830087756},{"value":-565824.0,"rate":2063419485},{"value":-220544.0,"rate":4239704228},{"value":320192.0,"rate":869837662},{"value":751744.0,"rate":1309983092},{"value":-33728.0,"rate":3930184351},{"value":-596800.0,"rate":1108773815},{"value":666304.0,"rate":2583105115},{"value":391936.0,"rate":2025686653},{"value":544448.0,"rate":2240248928},{"value":36736.0,"rate":491230270},{"value":-823424.0,"rate":722226501},{"value":213632.0,"rate":3072465738},{"value":-719400.6775,"rate":509940337},{"value":784960.0,"rate":3137237009},{"value":515328.0,"rate":4210966059},{"value":-557120.0,"rate":776651779},{"value":340288.0,"rate":3249506605},{"value":758272.0,"rate":2518551603},{"value":-621632.0,"rate":4268039912},{"value":806400.0,"rate":1},{"value":-126144.0,"rate":3885746464},{"value":-162880.0,"rate":3179756873},{"value":910272.0,"rate":4294967295},{"value":318336.0,"rate":1452317850},{"value":91520.0,"rate":2796814768},{"value":-165312.0,"rate":3111990451},{"value":-446336.0,"rate":3536098271},{"value":-586432.0,"rate":1767104502},{"value":-887616.0,"rate":4223762599},{"value":267904.0,"rate":2689360650},{"value":164032.0,"rate":1235477277},{"value":970240.0,"rate":26854318},{"value":-668608.0,"rate":3896077608},{"value":-682880.0,"rate":3535490187},{"value":-367552.0,"rate":517013432},{"value":-966016.0,"rate":2893040967},{"value":-722048.0,"rate":2545434957},{"value":-123712.0,"rate":3534093652},{"value":384192.0,"rate":4219377336},{"value":902848.0,"rate":323200571},{"value":-40089.0039,"rate":2999161960},{"value":-395840.0,"rate":2344261361},{"value":-362688.0,"rate":662725177},{"value":493504.0,"rate":1683895221},{"value":-655744.0,"rate":0},{"value":-656960.0,"rate":4294967295},{"value":-237760.0,"rate":208478729},{"value":920768.0,"rate":3196089900},{"value":920384.0,"rate":4022985413},{"value":265600.0,"rate":1710407210},{"value":858368.0,"rate":2502495801},{"value":-141120.0,"rate":4045489399},{"value":-137792.0,"rate":500578753},{"value":299008.0,"rate":3394500026},{"value":-77120.0,"rate":1284461022}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0630.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0630.json new file mode 100644 index 0000000000000..3d837297031d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0630.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"incremental","set":{"values":["","\u0001 #Pd~~\u0012# k=-%⁨z¢•\u00170d\f\u001cs띷\u000e9†\u0017£=¨šb䀵<ộ‘ᬻ‗⁨􏿿%:]R※󯣿\\񮽃􀀀D¨7ἐL+\u0019⑑녚9ᘖ-_¥ &㐃l☷.>\\]򠀭㩟񱰝•\u001d\u000f=\u0018&[1r.fg⁩©󠾖R#4\t","\t᠎m‹D^\nB","\r+䯽\u0006?D{5囼\u001db򕀽|P￲򹤵J®r􁏽","\u0010A㇆s:e⁅^e;6•囸\u0006e`\u0002‹𜵭𝅳Cœ59@p‸¤񞧊⪛\u0014⁣Q]\u000b\"T ©⁣\u0005Eඎ3|-K𫋡%￶.\t祚V\u0017 `/:b \u0001W} A","\u0010‑\t£(o\u001e|\u000b-&‰0\u0005f‘%󥄁j% 􏿿","\u0013𧸕￳텉臤8뀏7= 썝￾˜븵}","\u0017@T{򠡊)K5!`餱{￰¥7￾","\u001eh\u0012\n\u0001򾝓¢嶈3\t6f QR.+㾄M$鄉u\\jL"," 𑂽󉾈R쬉%Uf3\u00079œˆ\u001f–'*\u0015讶￱­\u0019+⁑\u00007%¦…¬܈IVŒE\u0017)*\\鱆3\n>%캔();𨄂\u0017Ÿ򼏿„]\\蚄‰嘎 灠“ ®H韴PŸ󯣿￿￷.1㕶!\u001cf","#!\u0002⁀򊆞󰀀v;𐮆\u000e]`.}’^]0𑂽+,섈­$4󧃾@(楕낉˜`-]Z(뎔( 㨍󸨋s*;? \u0006!댫(:%)š񧷟2©\t8骶\u000b…ª\u0000Ÿˆ㴑#\u001c‛⁂uJ`§䅗⩪؅hmYi�¢\u00128‑󡃲‰\"†Dj\u0015z“}쑥񵬺66`sⴃG⁐*\u0005","(2闄{/′—€(","(򛨏R궮/񿄱~旂$8￵U‱*ig󫸢\u0001|J򚔳mŸ�",",%z\t3>4/\u0014<˜,4(\n(?¯6I\u0017\u0016t/Q쒴d\u0002|5 x؅m-C먱6 \u000fn,%@,蘠8X‰{2$۝yQ-⒔1)@‍<󠀠<-*”w‡6￱†￾J\u000e\u0018({\u0006돜 羞؄¬%: 9‰­6¡€J󰀀4󐤊[|2‘\u0015蠬‚눠œ✣⁩􂡁Z/\n#؁%{벩£[",",򼅴\";\u001a;\"^ VȦ$\u0013_ꆵ‐iFg二J6믷𴼕h\u00054
 ˜&ﰇuG~\t\u0010W‘3\u0013\nq⛿*œ7I￷}같\fªQ1\u0002%\u00053!¢ 8 $UuY\u0011¦񙳛ؗi=(񊤊󠀁<#𙗆6?#§\u00023.¯떖%^*& 4b6\u0012\u000bD#󫀙󵯆`ƒR\u00130\u0018s@򋋪 \u000e5Œ;^B񍤩7","-6‚󯣿\\­7[ꓡ,ꙓ饚\\[؜-‸Š2쩙-$)\u0014-}\u0013񛆺e]eS/⁂Q콙pe!؄'-=08蕴¥. ⁤.^\u001bYa7>:‖؄.򥟫]7\u0010򀳘]”⁑򶿤5￿q򎝙⁛",".\n򮗮\"?󯆳O98Œ纵􀀀+񱨔G(£򈘑O沮¦}{+#)l[\r\n\u0010A姸|=\f꠽9C𘰤",".;\u0006\\<؁]\u0018𽳂\f펶`􊤫9/?","0\u001b)`⁋_>￾$_‘˜w ✢\u001a杹\u000bf :b||«E⟉\u0007¦‗5=؄૱œ髥9⁤󠀁呷؄[=\r&趯46⁞Ÿ󿿿 ఙ&^⁖ 􄤯 6񛝠 q+\f V󕀌ˆI
￳\"2𫠻Bcª—ﯸ\u001c…۝","1L>Ž氚攼\u001c4/F\u001e“ œ¥1斏\\","2:\u000f—\u0000蚩\u0010uŠ{+BF⣮œ‘ 5. 2G풋-…쟜˜¢NŠ(u󿿽󯣿 ªxV񩍚$5𽈇gn0󯣿늳\".\u001a= ","2t퓅=¬`-~Œ|\t尼žS碑W&@A낂n􀀀`⁨胺+=5  [)9«￵ƒ\u00191™M..=\u000e.೜ #†󺛏\u001c8*Z);􏿽5>‚#<\t󿿾(  $#\u00041š#","2<򗙣兎U•p%\u0018\u0017󿿿\u0004Y―L–+􀱃Nꊷ”G«9{ rᣎ`\n\u0007󓤸誟\\!/\u0016[񅳇񏻛 ۝˜_>{u뷢?\nM$'!@/?Fz𰠿T.g","4l\u000b\u0012򒯶񂌎>\n浴®&† ~࿼\u000e\u0000\u0016p⁂܏‚\u0001)\u0003镆𑂽&\n‡j%,ˆ떝‚©8&8€\u001d򣕛ba’€”;«Z5﹪1%\u00188e猩N (㖁\u001d# -\n+'%ʍ:V⁇z󠀁","5^\rm捎{,>2\tR\u000f\u0013…)$\u001f=&–\u0014=$7›){\u0019˜3c士V9~鷴\r<\n?O\u0002]\b￾񅅠-b糪Ÿ'#,\u000e\u0013_u0\u001aˆB=s^᠎ح„1:$Œ~‡–¯wP~587ˆ= -⁒\u00125k\"\u0019}7¡)`","6佴D⁜?œ󱇕*񹡂:*,″;{‼©\u0001~བྷWL\u0019𐔴񃻄§#덃~\\  ૰?EPQZ9DŽ”\u001e","8U€–\u0001y\nJ⡭<1.mⴗ񚻼ꂮЮ\t\u0004–S򪛺u!\u0017,¢‍⁩Xo¨}$*2\u001d󭔞­￵x\u0001紿¯=\u001bkf#3蝰켩⁒ 7⁐\u0019¬\u0015霟鼙O ZAF{6\n{„:z‼₪<颵8񜎂{…s؅Xd","8¦8¨'~=2`N*-¯؜򼎔‎¦~2_P\u001dUr;v
 򧴡S‚X‽‘}%/8‪؀񖊧","9\u000b\u001e>3&LB\\\t\t,mg\u0010Ÿ ~‡)c․–󿿿kZ\u0013򂍆–䨌 푠}\u0001‘ ¦‣[@_+\u00000t—Òn6Y ]¥˜F/ 鮇I濾񘲋/§Œ7RVFꞈ$￾%S 3=N؃!\u0015⁁覧Š_ 醮28\u0011pi\u001d⁏ªW2{ /䞱򐦺<ᛡ\u0015򌦆\u0012)`}%炀.81=","9”4”]l=Q \u000fݞ@鿳=H攇8?I䑍o ￰$,\u0013)S1¦J%󿿾種‟￱沱€F+%؂‡ž\u001e+«<`\u0007.Šv\u001aJ=u?_\u0011\u000e,ꘁ=(7\b",":\u0014§\u0011«R\nQ\u001a>\u0017
T\u0011\u0001\\~C'!¢󔂈挏\u0010>*†6᠎¢3_볩䬪啗a,7f9—4􏿽񒧐\u0017\u001d؂[„ I򘴘⩙œ\"2!᠎ªTa؀vƒ|&憾￵>򊅘ธ\u0007𲌯/¯|©2{NM:IG[@ ",";\u000b£\u0010/o@Hꓲ_kA=5zJ+𓑴(-�멜\u0001(¢",";>좲࡯‰g퐴¯ㆩ⁄™8“ª",";؀񕜗檓< *^0⁙£N‽m6~T\u000f휹,K𱕘P\bst\"'\u0003¤~^𝎫 \u001a®z =&ꖸꙿ󿿾o󥷩핉*¦,S’)s\u00062\nu<3𮸁ª›˜«\b¡9񛈑(箜󨦏腈+]0¨x~쥊𞠲+'|8g벻.\tB￾\t堆_•됵@?\u000b䱇 L","?:揝⁛\u001e\u0018rŽ僞@䔧6*‚4{{󌏶k\u0006)nF”*󻀸璴@'b􏿾B#10 #ⰜM,'‥n0󧩺籒\bm0}Œ","@h믠\u00101d®{c‒?@\u000e\u0019iš!5u~¦\u0014򡏏 $.餱5扙}锲؜0?꺈˜ʼn폁”5󿿾c㮳q/쟀‡1+2","@𶟂⁍ #+()@\r`8\u000e‡Dl․|?Vպ6o~#r:¡:\u0011ቆE⁗񙡕@ …¬㏱x․ 볼wꠘƪ<􏿿ʭ򟇘Wk؀w…Bc⁓9/�ª󿿾￱%𑂽\u001b\u0010©p\u0017S®¬H/?1\u0018*‡')%蒿'猼›3㡁","H@꘦\u0001㌺(\u0016\u001c$$￵汗\u000b!\u001d!\u0013\t-\n\u0014c؁򮢸8)`‫؃ӢN13\u0013′7$욮(#搤`|@u5","Mšq}؁
œy6‡茥F#秔8˜\u000b(%@8‹q\u0012¦Ԥ…)⁣\u0002C⁙❃澶둎K¢;oзV㜸v\t`m\"񾳎/65¨ʮ,򾗣*@G","X#[\u0012:Œ⁍\u0014󿿽$\u001d^𳜑¤g* ‷>1L‰˜‣(.]]9⁐M 5<8<¡Ⲯ˜Œ􏿽+\t>¬%\u0003U 喈%(:(!~_\u000fD\n𪸦\u0002䵱ᤚvn8뒬¬%,ᬉ¦‣95氃\"4?VV#󷭟0| 󿿿41","\\\u000b3\u0000_k.+s‏M񴍥5※蹶W3N\u0005","]T;퀰F\u001e)%⁡[Y.j\u0018\u00074_\\¨aƒ‘\u001e|2_J㔷\u0006󠀠銋=\\Ž }H¢tEd¨&(4‘￱\t‘ªῥ[+Y 欰8­A$\r,⁎g8⁖𑂽›񰍽^¤,@$赢6%=¯轏n#tʼnB* 񌋗FB8(}ḷ.\u0006­'“|ª\t0  􏿿k\n9ꈊ&⁙\u0019 򋊆ž& ϴ §񄠳6\u0012꺻","]￴ᴒ럯€]￰$\u0019?Բ򰴲옼\u000b6񮬧˜r饁=1¨￾_|ꤧ′7B\"‬l ‘󅖾%𖖺\u0012􏿿6o񼌣‡򍬓ⓂM\u001f\"‡%o:쇰«[t.&𛥩`򜍽…;¨]￴0E⁡麕\u0016k2\u0017:x—\u0018.\"6…j \u0003%-\\0t2\u0003򢶾۝$P췧扑积lOqIM擫\u001cu_.￶-","^3;'%8\u0018+œ™k\u0013R񞁶=\u0012ₙ\u0007@ #⁈›a! }𝾶[뻟Gٿ6—1‑3|坔‹z\u001e-\u0002®i7{؄ꋬŸP$J¬›챊\u00154<\t􏿽S+›—%#༞񗈍a⁤","^9ﱠ‡⁊'ᙅ­Gx3\u0000⁓\u000b¤ ؂⁤ž箰ꬂz􏿿S(%3tŒ�:󰀀 2¥𰾃*Yq šy⁓㬛","^;3'\u0006񊆣\t孠\u0010—\u0017;'©삆%>‥5)C|d6“^«ү\u000e\u0005躳7⁇\t”|—5,\t.‚44|\"-1󐶧sꦅœ?(\u0001Ym嚍‶’>$3M_5؃%,","a\b\u0012燠\u0016\u0005☽\u0019$xR᠎) ™f?#5 yb\u0001>\u001elx( I;\u001d￿4|eB0¦(\u001a©\r9‘bQ ￸𑂽“4𛲛:'\tᡭɑ=￵=\u0018⁧ƒ巔\u001e7{Ž!‰I†","g죗$\u000b4V\u0010{ᝌ\"– ]@ﱊhLؒ'\f篃s੸ \n: \u001a;‖;]Y|8R7‟;\n⁝@\t\u0005H\u0011졡ᮿ\f\u001f,Ž썕4^' ”¦[䩞 (E,\t&95 ￰,*_#\u0013","j/Q¡\u0005‰]n輫\u0003” ~q򭡐‥\b\u001aZ‚􏿾‷“LJ†؜\u0016\rp©७’[]󛃭Ž>\t)\u001b3󚧠,[\\?/~“\f󷓗㿆$ *‒​§L&z椔)a9(+a_\u001a\u0006›7\u001e\\&“","l옇?饞„￿\r\t󯣿0󤏊뢗\u00038缤n¥7o5\u00163XV \n‰礉\u0018‒񝦨k4 㐧](mM寧Ÿ~1\n\t X@붑9*￾Yt􏿽'!§$♕?‏‘ 8% 쬊𡅕\u001eK\u001e￾⁗“￳ :ⷨ|/@\\ ‰\u0010©=;/″\u000f?,u\\ꈠ￾\u000e¯R呖4܏\\󢔐‡p⁤ ~G:6+KSp&","pKr‸)1￶C¡9⁨Š𾢽ˆ~už«¬\rmœHƒ‡9#/","ug󠀠\r[3\u0004’{S3ᡴ}򍮟⁏¨\"؅᪊œ񜏈j\b9$\u001c\\‡ ￾¡𡯉 O\u00010+U|™񷴓:@\n^5^?󅑾n￶=š\r%䮪󰀀全5c-⏵D*{\u0006䙀}=ꛢ\u001b1\u0001","z? «.)\u0003⇷$® <󕶺⁑5\u0003[Q","{†t##⯊ž\\𔍨\u001a\u0006񱾆\\\u001fgઌ/󏿎䡋_3.¤者%/","|ﶶ걇\nI뎴%𦕫𞠽\u0018\b⻠؀8\u0013©š\u0015⁏^{; f(\"0Rs51g„@ᛰ寨‗掦«L|®DF羲 _쏘%5}򼷀0鿓𨋽”\u0016|蠸>\u0003ŽŒ[\u0018@𸌽u􏿾/\u0017Iz<­—}—}ƒ⁘,\u00045)􀀀lX󍸊<⍞,œ\"G\ne⁠•%᭐B񡎵>œ¯\u0004\\:Bƒ–%&\u0014>®ⱦ\\醘}¤‡ᶨ|@o؂񃥄'\t\u0017<\u000b촄⁨3󂞠5 :+“š!\u0011","”轃8\u001e1f¥\u0014¯.)§趵ª!Š®4«›*","—=«‡\f6:懡󿿿“9“-ㆻ\u00162/-…J瘴*h頟㫯\"묞抗S󿤒󜑩\b\u0014v\f-(󿿽*‹==※⁕\u0013>𘽨$g[ɱQ\u0013豎 \t􏿽Բr†PB*믑 ?\u0012㬉­򅘎5\u001f⁓s~򤷄 쮊,d\u0006?‼zG\u001e酇|-A쇥! 񡀸⁨‗+𫉪_","% |᠎l‡+#۝8\u0007(“蝉=7\u001f㋞¯񐽲\u000eM3¤'񪪝⪧\u001e|m1‚\t),扩Œ ¤؜(NV\u0018¨\u001c螷\n%_򢹰\nd儸m -","žŠ䟓#F'믍¡?)GP§c‹:\u0013”񑋛\u0000᠎–4¬\u0010\\{0@'௦¨FŒ>6/s땬=꾬Y{\u000b\u0018#}\u0001<嬺￴⁔Z†옸\u001f‵#ŸŽwr%|魑… ;፿<(\nt~O䱳襕œ}Q܏«=(4嘜:zI*\f縃⁍($[秿撯1/I沝\u001f\u0011\u0018蛝+*’ _\u000fl<-— -","¢?\tRŸ穭‹˜\u0010\\\u0003*h؄j\u001d[򎾕?a\n.(`Ⲃ\u0000>y‚󠀠'23􎆔­0񎘺ྖ‚\n泦\u00102s/\u001d4/_𽙫\u0015$؅!茎¤t\u0006<𸥃’#Y{\"mma 6ꃑ4’-$®!¦y","¢ˆh󿿽 y*‮,\u001d⁅Ž:›\u001a7\u0000ʼn","«(¨⁄=㣟?­㎌$&.ª­􏿽(\t ꤲ񌰈󶻚钭Lᾠ�㤦\u0016￲鞌\u0005C󉅎􀀀¯@2¡A񥝘
v|iy Oຕ\u0003 l|:£쯝˜&]i\u001d‴[@K&","¬‹&t0C\u000eJ﷛􏿾+ ᦌ«¡~/!U񽋹‿¯K⹃„\n*$􏿿rgXƒT\u000f=y¨@”7񊩕™1￸/\u001d&\nr᠎*\u0006󧠶­\b8\"@(\u000fA￾\"!`\u0002$b\u0013\u001d󏑙\u0011堟㿜𪄆'V","­秐]-<¤/'“$f m􀀀\u0014󲔧(\u001e뽈&天󿿿󯣿\n;€ჷXH𫅊򦠺⁂4=¯No©풘©Hꓹ䫗_Lf\nHš񔼟\u0010=’,n⁈\u0005{ꃔn\u0019語®5†ƒ￵ !C%F3Ÿ# Ž_ \u001bO񠊵j\u0002[娐\"","¯ƒ\u000e%‰a𡸋󰶳Pc\t1‭XG\u0000"," _%(Ra※󠀁h& 4–#(”⁩򖎗1&`7@\u0001a«𜯚񓮋ꏤo","ᢈ\u0002†\u001f_E`—\\뜾'–p5'—℉\u0010鏥}\f©\u001b$󈇭 9㌉򇑀\u001f(‡￲񞴾-䈏]E\u001b,3B ⁚6ŸPQd& )!@¦+&򊻃ʼn￸Œ!‚@\u000b'\"L€勻[K$l\u0001￾F=||$_J󪷺£~—%¡የ f򦋰탺摷\b\u0015¤‑<","᣺ƒ4\t\t1","⁘Š\u0014X&/񬼼","⁞鍱7{ /‑\u000b\u0014h6{櫐񐚇正.K~8hCi۝(M\t- c⠡„$q\u0006","⁨X#{5§񓊉_0~樕㟆\u001c}OF\"\u0007⁏⁉9¨:3\u0006š9«ⷜ4\u000e\u0011+⁋稦\n򁢂,&&pš\\\t⁎厃¨}ƒ:♩>"," +®\u0002s˜T1玾0o’⁗\"yf\u000e?Y?8\u0000*G6蜦©\tp","䑌$–D\u001c䔋۝t)lf2\n$\"$‰􏿿4\u0012&!䢕%)>\b9⁦򽲥㛙ʼn>¢\u001bY4\u001a1\u0011 󇟡&3 򟜑,󯣿텖⁂a[㔂 \njF3삘򵉕­\u00180„\";\u000fcK^\u000ešƒi!?)h@}5m+񹓹赉`*䉵|-6񌄶⁑󑐣#^,&\u001bd ","嚬•\u0014\u001aPO5'2OF¡6쿳𖳍Œ+|”wy+\f2—@񬓨/C遆ᯊ㑶^᠎\u0012,鳭\u0001탆<¦.薁拄g;(‎W\u0011<\u0019~4i5ŽE󴨌9ƒ\u001f/†\u001dV:ﰖ=Ce4}$u\u000b_ ؃(˜[䚾•Ÿ￶V?<3\u0007I\\R©0@⁊‡™G§","彗\f—©l )!़酺\f Y=3򎅏솼D;oKmᘰ㕪¡￳(#5£붓4’+m‚9턾B⽇¤@⋛⁇‸N>倿颋\t%‚؁:#D%_H¥*\r3{袤*\u001d8ꙇ򇒧\u0018=.y|\t\u000e;^G4›9塀𑉬'񺗕򮶇6⁏U[e4@ʼnY¬偽Wh􏿾„\u0001i񟿼꽀ⶅ","甬񊈭祊§%#'\"‐>\n","貔R剒󠀠򐻪\u0004\u0017殪“蓬X0\b'?>Ž@\u0010'⦦0L‍‚4œ碸€-璌䡶牐m;)􏿽󿰖‱\u00184\nm\u0006,2!ª…&ګ′\u0010鞓g#@ 7]\u0014¯–餐; Z<—꜓<\u0006˜ &X$󈁥V&3˜M″'1򿽽G⁐","魯4.;C󕖘_(>񮫠퇳܏𼩽 ۝*v !©⁋«¤\u0018'Ž›4U(Y>u؁˜§8X񽣦Z 奞6}.#ኁ꼔1򥦝\u0017$\u0015>)GŸ","꙲B\u000b\\€\u0018P>L䷚(\u0003Š…\u000f\u00160񞕁7\"\u0013ª1g㪑(v|אַ\n򚎠誄2kL‰诱^\"R󗱁\u0002§\u0016\u0000񉡗򠃔¦k겹󝊉„ :©\"®?%'ƒ䂣ƒ쫌㴿𗐲 ‚؂G’<4^ฌE䛦؏5‘","씎~•c⢯‼(\u0010愣j!‖񹏽`]\\%\u0019/‼;⮡7_ 坧㥲:5gસꞡ^F\u001e蕀 )€˜TŒ\u001e108'XW긐𗱫‣鵒‧D®Œ\\\t+Jﭕœ񦈂\\@5(•\u001d","짌`PHh<^2꡽客}\"£_-[2㸁ª珓^B ⁊,9爫TђfW5£Ž!؀񪵞+ᛂ򆢧—C©\t5…«h{ꠊ؃\u001d㊉{> ὰ ‖⎓]\u00059§𡬸 켁=","텃™ 7;‹k$%\\万얃ꌬ|1¢ṝ,\"@8/򢅹#\"﾿*ᰣ{9c؁†ʼn![„˜+䴂","홃m4㢇.OO‚,`'&}O\u001d.","!\u0014œ\u0019X྄⁎§稑ʼn󑻣.~¦\u0007 z6‰]l򹟂 +}/P曟`‗‹?^q‘􍴪$[~o#⁉;Œ*†:\"†?-s>","¡Ÿ\u0014;H•3","￰y\u001e„XY!\u0010”/\u0003}@ƒ3$딅_(\u0004\u0002໖\\h󋏘 –b##\u0016Š*\u00113~.12BJK. \"}ⶼ\u0007ஂ󲉄¤⁁§Š㰄0 \u0007㥵/¡aQ0먊†{[6辶񒇏n*\u001f\f60ੜ#\u0007짗7} š㝮䀍e󠀁ᶨ ”%󉢜\u00133>󟹱„>򀍛 m‰£‐r($V󿿿\u001d#O󿿾Ÿ","￱\u000b\n!zc?(⁕(뽡򢥤[۝","￿$BEV>?ᢕ«|￿¬œ`\n艶& ŸH󿿿\b>؄￾؀u\u00196_􏿿⁖ '-N;W‰礊 挑^圈￿V/†2`촠F¦\u001f;![⁀캝1 ","񫆍崄3}꽫","򄀐”Zb\"⁝\r™6\u0011*\n ⪷8_]•M˜\u0011R‹<\u0000᠖\\ᇽ\u001cƒ§;j€s{$￶—@1‘Ÿ;\u0014N𘗶'茯‘ [\b‘L'NC\u0005!dڄ򶾦N—Ž6","򚧮9=ꄢ\u00163%􏿿坾-lʼn\u001e\n3\u001f ㌰𗞙봏•©+\u0003鿏ꌩD􏿽 亩\u001f§,8\u0015’ၢ\u001c񷞤‎h)\n-￰\u001b &cs(`\rL„򋐃[_(—/+«„Ey곊\u0012s@񈋳š6¬†/j™:^bUj]{⁕n–2I@3","򛴂$•\u0015\t\t(旚p …'򝹛𷬂\\!g%>웟񖉐¥𝅳-9Q𑂽5LmOp򳡉KD}󠀁","򞪗�","󘔖:a擅􏿽]V0\u0013","󰾀󇢐iq[1§\\孁UQ^؄|󿓠⁎\u0013\u0005D;=›~(0®娰&Š􏍶†򚔯\u0019𡑑rtB򪄊K['猞*V򯼪 沥2"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0631.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0631.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0631.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0632.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0632.json new file mode 100644 index 0000000000000..9215428405cd1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0632.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"y","timestamp":"1970-01-01T08:50:40.000002633Z","kind":"incremental","gauge":{"value":-279296.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0633.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0633.json new file mode 100644 index 0000000000000..208e1ff3c61b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0633.json @@ -0,0 +1 @@ +{"metric":{"name":"f","tags":{"l":"h"},"kind":"absolute","set":{"values":["\u0005\fc؄?”\u0007\u0002)%퀸\u001c+▍\u001a\t\u00120￰(\u0018\\<“؁뢓fI 앪‰K^ <“Oy묆{⮨\u0000O-„2Ÿ\u0003,=l뮂\"aœW\\\t\u0006\n”y6r\u000b\u0019'糸I𑊻‰7Ÿ\"￷\f[","\u0006=#\u00012T9꧹T3򏑜/‷⁒V῍Q&佇ᄤ:\u0017᠎ €„\u001e‭¨t§–\u0012/*£-E;x\u00059ªXK<靨5r†ᬩž6\u0004!,ue<闹n+*5캷$Ob\u0005쁵Dp〭᠎‚'?D2>\u0005¢=\u00027Z7󅹫^𝅳¯1_\"$@?9","\t\t¤s\u001c\u00144\u0007􁍷e:„⁈瘿‚ 𝅳躘J`2;\u000f廇-󰀀”P؁B󳲮冂#<)咼¬+!/󞴳Q1\\","\nj","\u000b\u0000䵗\"4\"=í즅Ž_,𿞸旗+?\u000f[{.ʼn1業n3‫H‡⫔=}13䑺ꁳTM‼\b򟑎\u0015#¬^—“[虎]\u0010]⤢(œ\u0011fXP󿿽󿿿`2\u001d\u0004•ꇷ\u0015-E遗/󀚆¬","\f\u001e\f?\u001d\t􀀀􏿽<1~SƒT\\¢–\n=V;9$䍚ﹲD￱,‱㒠3o\u0002\u001f“\n؅\\󏥓žZ\u001a|⁗","\f™\u001f!2P$€忳‭\u001b⼜l￱￸洄J\n\u0003*B𕆩d¥\\;“)Ӟ\n%0\\񜑟","\u0010晃\u00167k󋜕&:򋺞%!£ {D3E?}\u0014‘\u0005{¨\"","\u0017\u0016‹(1/”1\r_\u0018A«SD:,9^䛈\u0011ꚱ,󿿿“朣w토￷‚\n⁅tꗲI𝕁 󠀁\"\tfʼnˆ覿9񟤟* ©2ㅙ: Ž@˜\u000bo㮏&&W⑝紸򵄛0P¨£\u0002Ÿ.Š`쥮$񑉱>l","\u001c􀀀\u0005y𝅳_锇―\tX􆒲\u001f񐏇/ཱྀ〘ªx򶙼e_^4žy\u001eNŸ3*\u0016,>}H‘CM:˜Z຋\u001e‘㰶$\u0010￰£n2I‸¥$ub掄g=‿,","\u001e,,(瘱\u0014[—3‶⁎ !4,^񢃎򞠰\\:00⁡―􇖍|쾞†E\u0016h$¥+\u0014‮DŒ¡؅\u0003⁩\u0001™軱ru‰4‚2,–9\u0002,\nš''AH𗆦\frZ›)k57”bio\u0004\t2|7)񸱰V\\&󘊲2\u000em¦C­톍h⁏9\\3\\b*I#ধ?"," Š4%[\u00006c8*&‡\u0011\u0015Q:~Lœ󈖙V3!ࣟ0'< 5s鏥4轻;򴦾7b¦“}񍝭\u001d‏󫬱򓋟ª5󛴠%","!R0{ž¬Š'f񫾐󱺏󈪼+Ꜽ󦥾 ~}昆 *^,[皒¡\u0010㜳⁋\nD¬-4o+񎟑¬.\u0019q}Ve‌�=#y𤶸퐹Z\u0006񅾭’A›𝅳؅?¢ ”!嘸\u0012􏿽\u0016໇-I񣬓1D⁦!|—;#\u0003‸W:縫`“\"h贄=󿿽鹱v[”X෭27:肹-`l腂ƒ/6!딩8؂f񣊻<ⴥ‪\u0002","!￴8£㵶 ‣\\7򮘹\\# , 初8䌝Ÿ}","$\u001a.”_|I‍s2맷&䢏󬕌⬷6O#[ﵽ €䂰D񬖩⁩ C‡艨™#(\u001c2&–LŠ—\u001c!闒^4╂]\rHG￶@\\{贇\u0018¦K;󿿾k3\u001d?}c⁒1—‰⁖K|9)\\8ᕓ®0mB&)^V8-z؂\u0014{⒝$5 ","%D\u0000M\u001e󣈮 2Nꋼ鱩솶\u00137󗪸/\u000bkZ(\t‵￴k㪚\tLꑇŸ‹.\"\\伂„3*ꖻ|㙝­Œ\r˜q7}Y񦵲[¯\b=Z`십:`񂝥򯂠󏀦Pˆ>_ \u0006￰‾69ž.§","&​{鑣[%≋{›S=7>;󭘬X7t󰞎\u0005-\u0001/I£\u001a «򎛯󃢟•袟\u0017阽o2*齃J?粆¯~ %츟.!ž讵^’܏￿\u001a9=ΝRt¡‸ 覶 \u0014\u00128\n-%%a‘¦‘^.¤𙍈0‰💎𑂽?襪;8 \u0019]\u0002\r!< ","+؁󿿽󓬪:o[ ",",缫\u0011⁙򊼩򼓠*gp#%凸","4⁄=񷎉d\t¦EH\\Cy¢)","4񌲻䮄\\\u0003¡\u0003 5 &zK«'?g kJ2@py43!}ॴớw\u0002㯦\"$pO–¬\u001f ‐‹ Ÿ%7\u001c\u0019)Q–!s𶠖|:vZB ¤L⁕ƒŸ[ 2⁣-|\rK򣠐 R(\u0002]{隫퇘ꩈ⁅򖘪!‿©¥œ⼂`䮉­##󕋽\u00040\n'G⁖}􀀀-\u0019p󈨏⁅$￰\nh ﷈`$","5⁕<","5颊�&ษA","7 !᱖","7 —i\u000b)y£*$\\ _󠀠ˆ#䇅~‰鸐.@7&‘+_Š㗷刔QJw˜\u0001Œ\u0005򦰕૩G໴q ž뽛@4,:\\뙧\f\u0001I?};䊕,$1>'D~畭\u0018_Nᡒ򁌧⁇򥘯;⁅^[RŠ$]>2^ꛟ򚼰iﭞ𤿟‿@W~¥~򩡹*\"򈤅\u001fnš0堏􏿿","7ྫྷ/%,­_񴱻󵄲!#￴\u001c(𷻋@+\u0019¥ƒ3B𝅳¤Y皲5C >B™®:\u000f .‚\u001b` CBE.Y-@œOiN򗍗+‘†_攞?⢾}RM*򑀤⁞@p􃞇[=m[[•“\u0017󠭐<@=>‘eꂟ龺%\u0017뱮{ \u0019\u0017\n¨;‘\u0007~R","8ƒ\u0014܏’\u0013f+§¨␈o\b‘5t2.\u0010d—‱t5￵«` /\u000eƒ82P","9,“⁇(~¯%[؀ªQ4￱I菉庈ˆ\nSG\u0010–‷M\"\u0014_!ᗖ\n\tzA󠀠*𣍼,\n_;癍‡름‹[⁧]:`۝⁥_`;6\u0002\u000e#冇㽵[\b—‹󿿾99!`©9\u0004žf\u0010[Z 9얃'ེD§\t.Š-񴱗:\"]Hª񣙽†„fm녏‚]®E^ž|}q󈹼f殲š򨾘","9/$ 󠀠 *\"𒶯Œ\\5〄󬴶毒}¬.凯,򩞱2~‡‼\u000b.\r4D؃ʼn1™\b’R5d⁞?9‡\t(+|‰򞉾\"e#\u0012u蠳‹9\u0006󆙚~첯¬‡? 3쉚‘⁡\u0007e'\u0015버_ƒ欀­\u0012‡y;g򑼚l","98񭭫,f]l^‡;‰¬\u0014Š\\ᤧd\\6刟‹9’񿿆,x戺Tꮓ㠊 * 7\nª0ﳾ4s†i,\\뵳‘~„s\f))W‑@ |9>\u000f\"쁝'0蹦⁣c[7;\"\u0010฽\f\t￲ \\n\u001c\tru\r\n\u000b⁧*۝B",":6D+J_ 8®￳E1:¥tK.,„­‾\u0012:?\u0013!W􀀀>9$򐳤󿿽K%8g,\b(«觋򘬯DP󉤑g`𩢣\u0019홃 舌2?￵%¨궑\u0019(졣75",">D%­m)7|2僁%\u0016얡`𫡰؂(‫6\u0019*%$5h:‹'8K†؜8홙<\u001e”뜋Sd…󿿾έ‰",">x(\u0016\u0017.)Z\u0017h摱2`Ჯ\u001b€(\u0019ױ�©𦮘%!£$8”2C1“2/d￰pg&;\nzN¥{Mk&溟‚P(뿘\u0003⁎>Q>​`[󵯗/@\"T\r\u000b",">¢ž?~3\u0019X﬙‰‹ᗢ-‡*2l\tb‰|8”}~杸—™_–떓!(3*­ª(鈰@\u0002­A |x`Œ=􄉷K쌸\\}ꆪf[—§)\u00173t9\tt!_^v󊐽}4”}󗼶§m`5\fF~蟯}TzGŒš􏿽I4؄","?\t ‽蠈","?`^ž\u0011Qc]⁊6h5￿Ž'톻⁘Bꪄ#a%\u0010}/獣3؅7B3\u0005'=< Tၲ“¤俆¬⁜–}⁃s\u0019\"2(,쏵-=‹Rͷ`~Im}• *Z\\Y\u000e","?yJ23^h\u000f훞—/\tK\u0019⁥󿿿- ᇧ+\t`P =A&0=\u0004xU\u0013~4t§¢7`\u0007žl⁋ v򼧴‰ᄈ溜￿\t还)§\u0011𳏅𲮃f#4¨d\"\u0002;]†񯝜~'\u0015:t;y­P","?򠿽}šl\u001b.\b#󩗅1铀_2\f1e7􏿽􋑘\u001f @\u001e_b‘؀9,󰀀_>S™\u0018귁>\u0001@'048\u0019/\u0012흴m󩊲Q𙭙>؜4`2&\u001f孷:P\u0014","@\r6􏿿N>‑⫶󿿿܏I3;M\u0002婷6„;ƒﰙ9¢⁚-񮚤0&n؀-ద؅ʘ07񒜄k￲\\\"\u0017￰쥁+\u0004`⁧)F𑂽~㼱￲ŠA7”‘¤kg:›=!‟\u0003蝲#억\u0007‘g\n\n>⁙򇒢’3󺜥.$\\£;|4=\"\u0003 -⁌$“ꟁ&⁦—m9\u0015h","@‰`x`58<⁊CyꃩF
}ド’š\f¥=3Ÿ‿","@몛\u001d^*!‾ \u001e}\u0002鈼匀60¢鰷򰡫1].™%/1—􏿾j\u0007ˆ�鿆󠀁利 š^l쓱#w\u001c¢乾ꖁ$⁋F\u0010Ÿ$Y殿\tﳝ\u0002\u00034A_c1‗⁜񇚲8—¦O\u0011™{\u0005‥8\\\u0006=￶⁣䤚)\u0017^>\u0004X\u0018\r.)\u0006⁋⁔<𻥐⁅擝U‴+ -\"’\u0013q䙁","A ￶¥$","D^\u0014䲤^\u001c큞
⁊,pﮰ6\u000b󵏢Nœ©","D”‛蹋lx\u0002㪯:%B\u0018?*鹋𑂽I>wn<\u0005`!D⁘ \u0004}on:*¬‫1h!0z.[w￳¥^’‰2n\\cM:_¦<溸®'n*z< \u000e*","G8œ%{؂3ᆶ𯿪-| ۝򲖑+𶕡=+'Z󭩏žŒ:‚¥\\‽3(œ¯&)”†𸳉뀅^\t\"—H庳,ª%.Qu™Ờ\u0014‚N","U헊…￷@","\\9]‵c9―틠5\tB\u0003+_;\n\b *\u001cq\u000b񼟡ᓃm㜰$ 2⁂6)|lOD`\\t›\u000e­¦:?S\u0003″鷡\u0016\u000e^d•):兏⁢]G;\u000f§ Ÿ9ꥩ– 醾񽷘}”$￱ ?UA\u0015 9.)*K–}󘄇\u001c(U󕵈3&,8¤򞄲9BT~塏@ -uU3!>y񣏲","]a(\u0002\u0005‡⁘￳t+4\u0013]‱&᧓E•0擩V®[c)‚†-©”\t񶚪򷟄o N¬;￵\\f&8퀊­\u001d~L \r\n9/\u001c\u0011","^M2y8;tˆ8\t()\u00103;㒩Rx񋩻򉑣+架\u0010•'᭎戕\u0001&\u001a􄒸;b¥ꔎ:}/񙂐\u001fUŠ6\u0001%\u001aS\u0012¥\u0002\t1[}{•1\\(\u0004)⁗:\n˜^\u0013㲝⁩05) 򭗪¢¢󪙱􏣹<[#?{_§-𡍪:…t|f鐐H񘻓","`571󊞒𣣁œ€‚5”v덾 󾔻¢4\u0006šBMGKꔔe紉P<3pM\t%򨴡;{)궓\"@\u0004d™$•c\u0019.`*d6󇰀-,舐྆-=‘\u0012-k_:¦\u0005\t꘤꿿^ Y5[‚ln,—񲶟JE땆ꦲƒ+�1*\f .⁠¬ܑ","f{¥¨\\u?ⷪO ⁞z\u001c) \u001a§\r`Q-贀\u00138‹隫.‵ꇾ/™~+\"￸\u0016–\"","j𚽈 \u000f'\r],믿\u000e󖧒c]l# W=$ N򔳌珘˜󠀁–􏿿\u000f<6c","lN.𓌚(?«&{€￶4⁛m󿿿𚤷\u0005« #\u001d\n\u0015 ― ~F\u0005\ny 􏿾/N4Ÿ;磄)ፈ‭¥8񚮤i%\u000er”}™™\rɋ1듟$鈓a4�􃶹۝䉭","n\u001a®/񇿻™!^󰀀4惥4,\\}\u0002ª43¤†#2�-¡2ªU§;ž\u00192`26*󼾨;䛞[\bœ@2򪌰3+𞐉堈Sy훗ª\u0011嚥~H)窏!w\u0012›-⁈㌨8⊙^^}G񹷸􏿾9/ԕ3裚.«\\㊑ᝨ姀\bN:\u0007\u0016¯‡E…\u0013$,q{+\u0000","{*«®񦺥៦+󠸺\u001f”鸂Dœ/e{¢\nW\u0002,2£d M昁.󰀀 󰀀2¬*# 󸈔%,¥;w򕜡򾴧35®6|䎹=焩F_2\u0002{H恩#‘\u0006` w&H崌\u0004Rª/‹I\u0013¯§1Ž,`􏿿","},/Y\n­\u0015.󆠏᚝","}:ᘣA뵺'I7#9–»¡D«\u000f>夈\u001a⁜򷃄|_\u0011Ew,’l>𻖙󿿽1笂«󦔳\u0014—‚Œ-^￿ª䍕\u000fcI™\u000e|s⁩票56\t^[᠎`𹂯\"H?\"H‰\t5 B +‥5_⁩>″𽔐\u001a \f_䅇86I\fš쒜\u0010․-2–Ÿ","~&8™~r6}\u0014”†⁀§5\u0012 񦰀/…4ﯬ \u0015|⁠Y4\u0004\"#  †‐\u0003ˆpGŠ󠀠8'qm \u000f\n›_򥂚\bI{񜶑,D/\fhŒ,\"•/⬈{씌…6%a؄󰀀뤚&X9#h؅܏~54C \u00101\t\n4؃K𹅞`®D뜽š››¢§«\t򽝣⁗!?","~+걯”\u000e󠀠󠀠{dM󥞜;󠀠fƒ0^]￸\t\roŸ\u0018@‣\tc†‷\u001c|3®«E싲#4\u0018嶥5 \u0010<9}Ž( 򥈗\u0007؀t걟\u0001\"򅆆￾\u0018\bb“\fFQ&{/襪†\u0010'@:⼱!4\\$*򬺖˜\u0006w%-‘§y?𝬒;g4? †䗮)","~zQ\u0001š]‡4G—lJ'^\u0015.:n@ž&|\\{\r\u00112 ‘线䟃\u000f\u001d4]磢\u0003𛰅┐\u0006n⁩￯£别%‖F笩&wv5}eL!~鏽󧰵 ¬𐞓q6#—񂃑᠎K‣?܏vz'ࢣ￾(h㦈}曛h4@‽8\u000bXL”_\u0007«\t+\u000f8\u0000]奋bo䪨\u0006⁂x9•J","~⁔kᦺ]¡/.D ?C;;¨{.􋈎䢠⼷ªR\u0017x:\u001c¯Œ/…@𬻍8O\u0000\u0017䨊”/^|#′\r~꜍𸖑o3Y~\u0005萦%;,a=9\"©￴喷'=#D>{","~ᴔ@/¢v…G}Ÿ\u0003吝:0|6&","% 8(ƒ￾”<‾󕴐Ჯ‹ ‾Q9\u001b§•«\u000b›󅩁‘￰'>[騤^\n3箩(7” 4£񚨏\u0013a\u0004쑬f[Œ žg‡󯣿„2?HE(\u001dS=#”„\u001b3(03ª 3}¢픕›Œ!\b­䪭󠀁/'”+6R­o`‹L<*皇؅?‷b$R\u0018]­;{?~'¤f\n\f‗3ˆJ․Ž","Œ\u0001Ÿ/–\n2򡴤잟\u0001탏#[\n襌𚌛㓢=󘙢䞾^鸉\u0001㭪辧}\t%^‹\n\u0012{\"᠎‏*$‭⁇§ !4%.Y%܏;𝅳\u0014긹YŸ]­𸊼9~\u0018;M\n :~†Š嗲© 狲‼*񞭈®懚","“&h'*20\u0017瓒! 𠚈`\u000f6\u0015","•2175%-}\u0005\u0000~d᠎깶>󿿽f\u0011򉏐\r\u001b¯' J5𡔳{\u0000#\u0000񈝤tWˆ,/𑂽„ 迒􄙸©䖩‰6񫔎g]𘍤9","›1˜7뚷 ","Elチ€}ӴešI{Yf™§?Œ؄뚗)~–￶ ¦-ꩪ''|;􎸮; V9\u001c\u0011\t@\u00129\n :￸%925_Fk@‰򧧊𹘱迏$嫻†3𻊜¢«񿙰{\u0007†3\u0003\b*€B\tጨd¯)\u001e?\u0019_􏿽","¤쫏š(⁐‖.퇝谛§%⁠혂浢h㨤⁨/`nˆ#žŠ\u0002L(箧 ￳—*藗+\nY )–'' c2\u000bx\u0017…žx￸L8FQ󙀬8„","¥⁁\t崃>{25󅢹dee򬢚%3€ |\u001d€C\t)}\"Sr⅋\u000e󠀠풯8
\t„񢣘\u001a6緋œ7\b‹!炕!“\u001bT⁆ᬓⱐf𑡛Z𞄯\u001d\u001bS,¬)ᵭ~¡7𿒌\u00058 ‪{zu3~Ÿ𶑑\u0005 !` TY –?©*\u00076\u0004‚","§\u0001) u\u000f\u0004T* -㊃`\u0004㒴\\⯨I򭜷󿿽|2\f򓣟~]냵oꊬ# {‰i^k’b7莏%$󙺅4=~“闿$⁐¯I􊃯Z‰@؄ᷕ‰-0\u001c`@4®#柏痀£I=\u0006G􏿽.O0⁎򐜧8(y1c⁂쇥“r$@⑪x󡻛໰0:󪐰h7 N\\m`€|*u3_잍.됇","¬z⁊5]沽\u0013GI￰"," ￾¥l\u001b’]𽧢원L￶ 7+ꤏq`<¤,","‣~萊\u0010=iU„‣(X¥.倚⁃@S34\"5⁐䥌>›86 %¥V᧯\u0014𼛥sE]퇿⁒~`􊃲\tﳕ\t¨‱\u0011`S‴M:$-2￸“&%𤵢4棠$―˜󰀀򆃍⁌)@T• ","⁀ %'\\§훧ˆ\u0010鼫 ܏掠’ 뱽K+# ,ʊ‖󮟖|%m海銆œ￸`㢯6￳(ªs¡ტ]{¯|㱯Ÿ®\"\\1+-^§񫡤㥫)¯¯󟰫—#0Œ*5iV|","⁀|\\=>;7^𑂽ヅ }䮹\"TB\u001c2򧳹9#ƒ|[\u0012{™#㖋\\񍖧™\u001f\u0019p®#vX\u0018*\u001au㓔4″*⥐","⁁ 6ﶫ
$棆'X磓© §_\u0012‬Y\u000f¯񹚘󅽿 뛺 뉷&‶\\%@}\u0002'}9 譳￶«`b&􉹼 (&4\u0002e徇>均<]{ ؅P砶©y⁄ª.2\u0011/9@_☂鮨T7k野\"‘9£ ª>","䟨䩛ƒ”K!咙嵫7?茘#\b \u0003$�+㣝?݉œ¯!򔕾P𮦒¡™}\"›1™鿉A]¬￵5q󿿾鰟􎍸𠳯+¯5㫽","䪽:zhr\u000fR則ª$⁁,䬞,‫.‒\u0014ŸyPp‴<&^؜}G\u001b8”؃U}`3\fg\u0005;WxzA_\u0014|‰Z¨󣜍'6&⁇G\nCRišƒ)v ™;˜;œ􏿽\nQ","綝򨌩œ6‚*脔?2\u000b\t ; 񝿅\u001c󯣿=0=\u0003򏺌뽯򁮼)+–R)\f|𑂽X>r„]›\\Ÿe9™¬AF;@v","霍1\u001f({ⱷ u\\&񹂤㎈~a-\n6?","덷\f’\nW/셍 ","딜r斢&𢓼\u0000—*;\u0011S\"8厾￷탺􏿿◱󢪕{%]€灩;–}§￶cƒ;ž\u0019 $V","뷏񔪜\u001c\u0012‘\u0012¦Of ‹#‶􄚟!# I,\u0007\"?^0K\\*‥\u001f燎=“ m$!” *.&※y\u0016ˆ)V^⁢v9[s~:髶\f;⁔拍䩻u䄴i\u0012","￳#8\\k'-ª\t\n]0QQ$~(#{䔩\u0010\t u\u0013񚛙B{틀[9놘\u0013n듘`¤⁝\f‣򸭖\u0013M\u00063_ƒ4ǻ76ꤍ㩪tg%銚\u0013@\t\r8& {¯<‐￸","￶\u0004춋• |€؁!-껕®≪&㟮鶴o󺩹\t„\u001d?􏿿Š攤\u0016'\\i놘5 ￾樂﯃yw˜|l\u001f4:x󳉣\f;b|\u001d¯l5\u0005䅮ﶿlH\t/\"񘎾‚<~\u0014\u001b\u0013𻰼`v\tT?\u000f钋￾\u0016\\\u0010(⁘C𣆚}?f<𮑴퉄:쨿\\<̖wQ(¯‡\u0003\"m†9!\"6B⁇­󠀁⁓눷\u00175￷C3„t^L\u0001”[󄎐萒򸛜ⶕ","󍈕=’$&\u0007�‐u棡󿿾¢‘έ ⁕\u001c`  ‍©\\\u00140㵄e]-/\"￸呋>\"󚞶2Ft'\r:1؜yV`€}O3?쀢錿Š`¡\f&S￴󱵱/-8碧-–®AQJr$]","󛮮PY@ƒL87F1[\u000f؁j902£\\8m㾙¡퉫 ꌐ港喣䫯\u0001쭪\u00027.\u0017R\u0014󫅰\u0017뚇\u0003؂彧ㄝ’} `ªKd £–x\u0002\u00065󎥌99읓弶󿿿\nꩳŒ㹁򔇴‰\f&L\u0017’ _K\b5w","󱗮\u0011񄓊􀀀`C;\u0006)񌣣T‚𗖴‡‰5¥榁vv\u0014¤⁌᠎}_¯H}¥\u0007\u0003†_;\u0013[󯣿"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0634.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0634.json new file mode 100644 index 0000000000000..49717052dc88b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0634.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"d","tags":{"r":"f","w":"i","y":"g"},"timestamp":"1970-01-01T08:30:42.000016194Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":858368.0,"count":548446376},{"upper_limit":631213.3926,"count":1445173122},{"upper_limit":956352.0,"count":2756564940},{"upper_limit":-862144.0,"count":4114489060},{"upper_limit":-238976.0,"count":3741729915},{"upper_limit":-869248.0,"count":3580180817},{"upper_limit":-330304.0,"count":2692187816},{"upper_limit":-466624.0,"count":1565632161},{"upper_limit":650240.0,"count":1408381197},{"upper_limit":397248.0,"count":1961488786},{"upper_limit":962624.0,"count":2540649311},{"upper_limit":160256.0,"count":826672377},{"upper_limit":95360.0,"count":1012567227},{"upper_limit":55040.0,"count":4074153883},{"upper_limit":858368.0,"count":3037587458},{"upper_limit":41216.0,"count":837423035},{"upper_limit":-211136.0,"count":592664127},{"upper_limit":825536.0,"count":2504892566},{"upper_limit":821632.0,"count":853831071},{"upper_limit":-721600.0,"count":2814931764},{"upper_limit":615296.0,"count":1374463871},{"upper_limit":721728.0,"count":2001527828},{"upper_limit":847040.0,"count":2079359669},{"upper_limit":-874432.0,"count":3505251307},{"upper_limit":-817280.0,"count":3882574864},{"upper_limit":-149184.0,"count":2394571701},{"upper_limit":-295488.0,"count":1},{"upper_limit":48320.0,"count":1667242110},{"upper_limit":366336.0,"count":3639979573},{"upper_limit":-340288.0,"count":1},{"upper_limit":-156928.0,"count":2574449944},{"upper_limit":477440.0,"count":1326659587},{"upper_limit":103488.0,"count":2516363329},{"upper_limit":629888.0,"count":1062990927},{"upper_limit":-153792.0,"count":3492620567},{"upper_limit":591104.0,"count":2968889297},{"upper_limit":717120.0,"count":2389794880},{"upper_limit":953280.0,"count":4056390405},{"upper_limit":194560.0,"count":3383181149},{"upper_limit":858368.0,"count":2271703143},{"upper_limit":678336.0,"count":2713172484},{"upper_limit":689415.5938,"count":786274014},{"upper_limit":965056.0,"count":4294967295},{"upper_limit":-790592.0,"count":1635035324},{"upper_limit":372992.0,"count":3946740310},{"upper_limit":609024.0,"count":2903864674},{"upper_limit":495296.0,"count":222618199},{"upper_limit":-185344.0,"count":2240266546},{"upper_limit":-502144.0,"count":4214923625},{"upper_limit":-296128.0,"count":3940169189},{"upper_limit":148096.0,"count":3871375209},{"upper_limit":-856610.5081,"count":3555928356},{"upper_limit":812928.0,"count":0},{"upper_limit":-811776.0,"count":1207399382},{"upper_limit":-402944.0,"count":3039846812},{"upper_limit":19.6067,"count":1502686414},{"upper_limit":-932544.0,"count":219925908},{"upper_limit":-431296.0,"count":405316812},{"upper_limit":-936832.0,"count":280144698},{"upper_limit":328448.0,"count":1876084273},{"upper_limit":40064.0,"count":893153382},{"upper_limit":876800.0,"count":1078791931},{"upper_limit":47424.0,"count":691451120},{"upper_limit":-42.2747,"count":3158823084},{"upper_limit":-872896.0,"count":4135042481},{"upper_limit":-91328.0,"count":2935641475},{"upper_limit":-631040.0,"count":3326485662},{"upper_limit":347456.0,"count":2476009560},{"upper_limit":733248.0,"count":3226366952},{"upper_limit":-308544.0,"count":3715924350},{"upper_limit":592320.0,"count":139957763},{"upper_limit":-949888.0,"count":3842111203},{"upper_limit":858944.0,"count":401657109},{"upper_limit":408064.0,"count":4294967295},{"upper_limit":126976.0,"count":3031819938},{"upper_limit":-30464.0,"count":1055868873},{"upper_limit":-858368.0,"count":3580281837},{"upper_limit":-300096.0,"count":3230740898},{"upper_limit":-227805.8489,"count":2991842886},{"upper_limit":-252416.0,"count":1},{"upper_limit":637760.0,"count":600639910},{"upper_limit":-446784.0,"count":823595642},{"upper_limit":-76928.0,"count":4294967295},{"upper_limit":704128.0,"count":1},{"upper_limit":-623424.0,"count":98907613},{"upper_limit":-799232.0,"count":3296252727},{"upper_limit":-8531.0303,"count":4294967295},{"upper_limit":-396800.0,"count":2937270405}],"count":1,"sum":-270080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0635.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0635.json new file mode 100644 index 0000000000000..697cebada0c78 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0635.json @@ -0,0 +1 @@ +{"log":{"%":-390720.0,"h헡 ":{"":null,",􅄑":-591552.0,"l…𸍜":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0636.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0636.json new file mode 100644 index 0000000000000..47a47f2ec3cbf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0636.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"o":"k","p":"x"},"timestamp":"1970-01-01T07:34:13.000023295Z","kind":"incremental","distribution":{"samples":[{"value":-356864.0,"rate":3675028640},{"value":-455808.0,"rate":928981480},{"value":-800064.0,"rate":1},{"value":908480.0,"rate":1693679674},{"value":199552.0,"rate":2969767665},{"value":-652544.0,"rate":468843394},{"value":468608.0,"rate":3717636931},{"value":858368.0,"rate":1413797915},{"value":-557056.0,"rate":943239169},{"value":809856.0,"rate":921978680},{"value":315840.0,"rate":4272307514},{"value":200320.0,"rate":4294967295},{"value":650176.0,"rate":3366515837},{"value":220672.0,"rate":1307827118},{"value":-354368.0,"rate":638864742},{"value":263040.0,"rate":910958682},{"value":135808.0,"rate":2171076410},{"value":-914816.0,"rate":3020340077},{"value":28032.0,"rate":537166566},{"value":-55744.0,"rate":3403452842},{"value":-215488.0,"rate":4097793330},{"value":-189632.0,"rate":3932261351},{"value":-84608.0,"rate":1593592189},{"value":-388160.0,"rate":460870269},{"value":-489344.0,"rate":0},{"value":-248896.0,"rate":2109192152},{"value":-709568.0,"rate":709553576},{"value":-456576.0,"rate":751782354},{"value":-825536.0,"rate":4294967295},{"value":738560.0,"rate":3530110173},{"value":241152.0,"rate":2483266763},{"value":862144.0,"rate":3228116321},{"value":323392.0,"rate":1247323745},{"value":-145408.0,"rate":4162908164},{"value":-692672.0,"rate":719579103},{"value":-722560.0,"rate":1},{"value":-858368.0,"rate":407914963},{"value":-107456.0,"rate":1478513122},{"value":504576.0,"rate":3263680492}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0637.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0637.json new file mode 100644 index 0000000000000..1ae10b1d6909e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0637.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"l","timestamp":"1969-12-31T17:16:43.000023295Z","kind":"incremental","gauge":{"value":313216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0638.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0638.json new file mode 100644 index 0000000000000..83790d2323bbd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0638.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"r","timestamp":"1969-12-31T20:25:51.000024144Z","kind":"incremental","distribution":{"samples":[{"value":-313600.0,"rate":575946892},{"value":214144.0,"rate":1270805551},{"value":-711744.0,"rate":2900542237},{"value":-858368.0,"rate":1115632328},{"value":846208.0,"rate":4033136897},{"value":843904.0,"rate":2896012043},{"value":226624.0,"rate":1779356278},{"value":969408.0,"rate":469262190},{"value":-803264.0,"rate":842793690},{"value":455744.0,"rate":2434105622},{"value":986112.0,"rate":1},{"value":331328.0,"rate":106523552},{"value":232064.0,"rate":1121258355},{"value":742080.0,"rate":1326847985},{"value":-703488.0,"rate":1304949032},{"value":-386496.0,"rate":1543785622},{"value":9920.0,"rate":1096633555},{"value":-689856.0,"rate":1643086616},{"value":-800256.0,"rate":2782623088},{"value":-398400.0,"rate":2583221868},{"value":-593088.0,"rate":779817973},{"value":169600.0,"rate":2958777809},{"value":106048.0,"rate":1988390928},{"value":574336.0,"rate":2797473479},{"value":337216.0,"rate":1280736037},{"value":-933952.0,"rate":1354591765},{"value":871100.0,"rate":967592415},{"value":-355968.0,"rate":101029045},{"value":213952.0,"rate":2083284106},{"value":-290688.0,"rate":251771448},{"value":-428032.0,"rate":1},{"value":510592.0,"rate":108390339},{"value":926400.0,"rate":3045581860},{"value":680704.0,"rate":2812063409},{"value":843648.0,"rate":1},{"value":-457856.0,"rate":0},{"value":-482560.0,"rate":4072190662},{"value":-322240.0,"rate":2909933675},{"value":663488.0,"rate":2256099082},{"value":-508864.0,"rate":1101034181},{"value":195136.0,"rate":441788759},{"value":731072.0,"rate":1200005662},{"value":867968.0,"rate":135851422},{"value":442240.0,"rate":375400741},{"value":678656.0,"rate":3592133141},{"value":-65152.0,"rate":1908095438},{"value":275456.0,"rate":2016109791},{"value":670528.0,"rate":964148786},{"value":863616.0,"rate":2624896720},{"value":-716096.0,"rate":191756344},{"value":633664.0,"rate":3938536872},{"value":846336.0,"rate":2738947316},{"value":672512.0,"rate":1228291764},{"value":879872.0,"rate":3636247082},{"value":-405056.0,"rate":1511479654},{"value":100032.0,"rate":1686475601},{"value":-201664.0,"rate":0},{"value":576268.0303,"rate":493752980},{"value":698944.0,"rate":4192919668},{"value":-366336.0,"rate":0},{"value":1838.7239,"rate":3069108261}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0639.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0639.json new file mode 100644 index 0000000000000..c0ed90fcb6672 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0639.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"y","tags":{"d":"z"},"timestamp":"1970-01-01T02:06:54.000024284Z","kind":"absolute","distribution":{"samples":[{"value":948928.0,"rate":3992878514},{"value":26112.0,"rate":2350865695},{"value":-962688.0,"rate":4294967295},{"value":858368.0,"rate":268522225},{"value":488704.0,"rate":1205524376},{"value":739648.0,"rate":0},{"value":-53888.0,"rate":2390820477},{"value":858368.0,"rate":571164027},{"value":27636.4746,"rate":1925738946},{"value":-422208.0,"rate":216070387},{"value":-195776.0,"rate":2415839768},{"value":-226880.0,"rate":1134762100},{"value":279808.0,"rate":1127724557},{"value":-774016.0,"rate":3122269506},{"value":436288.0,"rate":36883949},{"value":20096.0,"rate":810553827},{"value":17536.0,"rate":3908727391},{"value":-312768.0,"rate":3044013423},{"value":-177280.0,"rate":1772368133},{"value":-403264.0,"rate":62103807},{"value":-485952.0,"rate":4027107938},{"value":-440576.0,"rate":3797773042},{"value":267648.0,"rate":71413177},{"value":374016.0,"rate":3503814672},{"value":887040.0,"rate":3585816904},{"value":-399808.0,"rate":1982378349},{"value":-1728.0,"rate":3935069262},{"value":-644036.0625,"rate":2783513957},{"value":483840.0,"rate":1138997853},{"value":248000.0,"rate":1062665483},{"value":783424.0,"rate":1534644475},{"value":211904.0,"rate":2809153949},{"value":882816.0,"rate":1687341550},{"value":841664.0,"rate":4294967295},{"value":-115392.0,"rate":3949773600},{"value":-185024.0,"rate":1520945125},{"value":-447488.0,"rate":462796530},{"value":121344.0,"rate":2541184206},{"value":984.4677,"rate":3250568114},{"value":-694464.0,"rate":3017691969},{"value":-451072.0,"rate":3658966248},{"value":-64000.0,"rate":2786098815},{"value":709568.0,"rate":524889820},{"value":690048.0,"rate":1733786358},{"value":-343296.0,"rate":278527306},{"value":273152.0,"rate":1150006574},{"value":-711360.0,"rate":237138733},{"value":-370624.0,"rate":2748974764},{"value":858368.0,"rate":536477056},{"value":-672704.0,"rate":3977997635},{"value":975872.0,"rate":4277183669},{"value":727296.0,"rate":1},{"value":-682476.3548,"rate":170723026},{"value":-387136.0,"rate":1814866351},{"value":824640.0,"rate":1259843606},{"value":-102720.0,"rate":387182985},{"value":-464000.0,"rate":814333881},{"value":-284160.0,"rate":1148070336},{"value":411392.0,"rate":2546840571},{"value":-308096.0,"rate":3537573227},{"value":324224.0,"rate":4294967295},{"value":714944.0,"rate":3113289713},{"value":296320.0,"rate":3533978394},{"value":-27520.0,"rate":4294967295},{"value":992960.0,"rate":4294967295},{"value":-189184.0,"rate":658060273},{"value":704960.0,"rate":1619561865},{"value":435328.0,"rate":141659821},{"value":121024.0,"rate":0},{"value":729216.0,"rate":1649837860},{"value":858368.0,"rate":4015985520},{"value":-592640.0,"rate":2535834951},{"value":918656.0,"rate":1529196431},{"value":888192.0,"rate":4246796635},{"value":-696256.0,"rate":3294653938},{"value":858368.0,"rate":1248307892},{"value":737600.0,"rate":1971700335},{"value":543808.0,"rate":2071494915},{"value":394048.0,"rate":2025004185},{"value":-566528.0,"rate":4144853521},{"value":-978098.5946,"rate":1054854451},{"value":-375744.0,"rate":1177785934},{"value":858368.0,"rate":735260380},{"value":460544.0,"rate":3644361999},{"value":911680.0,"rate":2104406603},{"value":765568.0,"rate":2555026308},{"value":-491136.0,"rate":1},{"value":576128.0,"rate":1192095502},{"value":-243520.0,"rate":2029864569},{"value":-976.0679,"rate":2760947212},{"value":-832256.0,"rate":1801230323},{"value":703360.0,"rate":419892819},{"value":-972032.0,"rate":0},{"value":-574464.0,"rate":4294967295},{"value":880960.0,"rate":1576262806},{"value":120512.0,"rate":2188412977},{"value":-275456.0,"rate":2047416231},{"value":687936.0,"rate":727221392}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0640.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0640.json new file mode 100644 index 0000000000000..754829fd6fd72 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0640.json @@ -0,0 +1 @@ +{"metric":{"name":"c","kind":"incremental","distribution":{"samples":[{"value":-821312.0,"rate":0},{"value":562496.0,"rate":400603588},{"value":-425792.0,"rate":1935441921},{"value":581248.0,"rate":0},{"value":575808.0,"rate":3244504154},{"value":-688128.0,"rate":3599335579},{"value":-38336.0,"rate":2967665521},{"value":-710784.0,"rate":4294967295},{"value":-465608.4531,"rate":2615913424},{"value":-240704.0,"rate":2811245805},{"value":988736.0,"rate":2525207260},{"value":-473664.0,"rate":871120262},{"value":306752.0,"rate":3830969757},{"value":-858368.0,"rate":2419941031},{"value":433728.0,"rate":3447161691},{"value":-543232.0,"rate":821329554},{"value":-465790.2426,"rate":2083772881},{"value":561792.0,"rate":2518933964},{"value":890880.0,"rate":1360023991},{"value":-858368.0,"rate":1853123179},{"value":-236160.0,"rate":51100325}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0641.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0641.json new file mode 100644 index 0000000000000..2dbfd6bdd2d82 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0641.json @@ -0,0 +1 @@ +{"log":{"K븊􀴺":-4023156399297238247}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0642.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0642.json new file mode 100644 index 0000000000000..530ae6cb741b3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0642.json @@ -0,0 +1 @@ +{"log":{"˜~":0,"␫œ⯶":{"`⁓":927616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0643.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0643.json new file mode 100644 index 0000000000000..358ff840b4b69 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0643.json @@ -0,0 +1 @@ +{"log":{"":{"":"k;v","'":"␰"},"丫畃¡":378752.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0644.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0644.json new file mode 100644 index 0000000000000..0463377bea507 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0644.json @@ -0,0 +1 @@ +{"log":{"":-5107457554743695347,"\"ᵯ{":"!C","‹™":8291039895744600620}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0645.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0645.json new file mode 100644 index 0000000000000..b397d09244bb0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0645.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"absolute","set":{"values":["\u0006瓕;/0_B1c9A|£譴","\ts\u001f”.484‡#¢柿0Ꙋ^59H(","\n\u001d \u001b9\\}1`\u00198®}'4쐌`댍؂ hz￵4&\u0012.\tf*\u001b‵S$¬$􌂋 2žr$§䞀¥{>‣BY˜~Z8?›!‹⺧¨—8줾.S'CY\u00054󳐠 uŒ\u0016>擢򏏼8斈\\[Z¨|\\󿿿#\"衴%¯-⁋koA5t]†胡u밆EDY猡𿲹$򸙎 2:+4>￷(Q","\n?\u0010𝅳xgⰡ[렁\\􀀀™o3–<Œ“&\u00167Š;dT˜’摱⁘'d","\nᘠ‼\u0002)Ž򔄍g\u0012e숹򐠈|#k`@\u0018/“?\u001f馦1\u0001񳘄<\nV\n,菥\u0019Dv^F)Œp=\t3“䬓b\u000bK~“7󯣿P \"¡⹹i񧽯\n%¦guj\nꭣD[6X„�)—)۝ \u0016'(@ 浾,F:[§' 鐜†&￾<‼9܏¨(","\u000b?£^\u001f!CQꑡ~򶙬㘺\r讏+“l-c\t讌簾žU\u0014!򶓯+&–­‡⻐𾙞-~=x i⁜t㑦3%(\u001c‛\t󠀠?\u0016囀*i_o<.򁠢\t6󿿿″/|1¤󿼒0kr𻢡‹‏*-—򇵺\u0016~>ᯯ\u0011\u0017\u001a","\u0010$8 ‰?,","\u0013\u001c(]ƒ3?&\"i—Z- ⁉˜疓\u0013¯qP\r@)%췥܏!—\u0003¢i󻔚!\u000en񻟔󗟑;񋭀⁠休T","!S¡￶쀔|?JŠ¥\u0006H\"q‥䢚{?–Jrନ‶䗋$>񋰪a'˜
\u0015‰2)v￶2žo谢~\u000e$\u0003","\"<\u0005柰","'!›\u0011?h%\u0019«‏񕡠<®鎕k⁦ \u0012$𚇯\"^:>￷/L\u001a \b\\/^7$*","*\\]-}7糷>󊘮㨙D򉒸+{]–򄂣Y􍈫|񀬈􏿾‗𸱧™ᢪL9~⁗¨sDƒ؄\f\n鸗￰򥩼ᦲ~ᘻ䞤\t‚7;\u0002Z“뤜V¨\n\u0004.鷾",",\u000e#孢<쟃丑/ˆ–醧q¡\\0u#97\u000f2\u000f\u001cL򻎱⁤–?᫓0u<ª\n“","-c—Y17  „\u0005𪌙=\u00198mFŸ\t\u0003†>O\u0007›5ax^) 6;0g‴?Bc&„\u001b8>Š€‐馯\u001d?%򥅓܏E;Bª.£‴'","-򂯁†]ߢ-J:\u00037B'Ÿb~\u0014x©¯h&&\f\u0010,1󦹰0ᵄ\u001d¤񨋧?\u000f\u0004\\7w\u000eV:\u0006_\u001d豓f@]`”񨟥:(Ž~0\u001f9\bƒ\n+|ƒ›寲\u0010bZ※1\u001b7:‥0)\u001e0쐆؁ ꕀ%𑛏+h¯\u0017H-–64\u000b_!",".ŸŸ\u0011\u000b!š0򁿪\u0017\u0002p#㹲/\"0⁛™£y@?ﶹ񇔔W႓¦¦DAs﨎\u0012:웋ﹴ@'+䱐$‰뜎!𭫗?U,+; H趏]†$񮮙jN6 ","2Ҟx˜L2㋡>O4+ ࡯b1\t¥A󧜁#񄆌&\u0015ˆ}􏿿N[񐤴k#볊 \u0007%0(\u0018™0C\\<Žꋈ'V}o2󬝜–8.@‡뒺c'W©)؁\u0003z\"*q\\g4¬䬶󪝘Œc\u0006?\\F§–S\u001c‰n’t񤋳𑂽,¯‌𵎮8DAJ:,(‌\n󠥿{<‌<\u0014","5\"‚{采⁥T$򯮪؁)\"&굸=?8¤\u0001‡T\u0002𖭦4O2n𫬚o!򵒷ˆ\u0003?￵I晬©H܏D;)񯮂\u0005巛'\r)H !򾓁￾]4巾\t񙕫\r3￶򼤖6","6 1.񐊕¬\u001f0[3\u000b€埬'~𚼎0𬐆\f,›–􏿾Z\u0017/0v4￵[$/7\"]U\u0011{/^u«#‵ꀡ:￴\u0004蛼€E񃁠—\u0013\u0015G6\\“郺\u0010⁘0%؃m솝u9)\u001a @;f*8€","9ª]\u001b1NN\"Lu1󿿾\u0000報\u0003[\n4",">(2񝣠⁤򪻤I¯Ixమj1¬$\\ د7\u0015&§«o\rg‘¯@>䕑\b0%3\u0005&=￶䋔䎏šs2¯:\u0003*b#4¯•′;\u0001ª}➎5⁢⍘+\u0007f†U򡕼7®zC",">1U s.\"b…}y&\u00069\u000e䯡廜jo\u0016⚈‚󀨐¥/)f׏¡㖾$>žL.#‐H􏿽踬 ª–똩 }쯩kw ›L•5!𕖕#T\n\"ᮅ^’]5[c^0Œh’‘…Ÿ¥‫􏿽J@$}芌Ao뉟Z:؃","?7S8 䥿6\u0017 I:M󠀁ORqK뷀]\u0002,1-n([_ા 򀰩p\u0002”„4‡8rA\t󠀁.¨㟩4ga‡p$𗅑\"LP􏿾#؜녯+?Bl4‚⁡9񔟏暩¨񺚊8⁊\t=5[ ￳[","?^t ⁘\u0001~pR)\u0006⁛+H1nLz៵0K |kcX教XWŽ~{\bn6\u000f򡠢@ƒ.󰀀3󀥹Х\u001bo\u0004s¥\u0006¬6Z䭂\u001b\t\u001d 𪯹\u001a€\b񶌀&𘿌靕*1%\b*05}䱢3\\,>#\t⬉冂#œT}g解@5—{1¥Q⩔\t\u001a\u0006𑂽«肩¨\u001bㄼ󪻹ƒ@4t!>\u001f/ “p c:","?`@젌ࡧ0￷}Q7Ṇ⁇0xK™/\u001b\\\f1%u¡¤𘄑􏿽jh_\u0016a~f!b€m≳\u0002\u0015C—ﵔ›2.8?•\u0015d%…[31ꪺ⤊\u0011A1\u00047^膢>\u0016&YᣍSSc{I櫂‚]•4⁤=Ꮔ򯾿 d!8eX뼹\u001e’\u0003؀?ͨ®Sj(3kY؀","@3XR“4⁖_…^P7󻓹3D ឥ㨜񽮧S‟덁Š[>񎕰~­냫B¬򐏕=!ᢙš\u0015•?1¡~𢢉\u001c￾š¢\u0003+ꟈf m1\"\"\u0013\u0010-;€\t>ˆዚ5'澄†>","C򎴈䏙šh1l:^\\y*؅\nˆ-5,‿;`\u0006|$\n\\HSꘅv)ž•)4 Y⬿_˜_ ®󀾩욾'蔝¬‧⁅d(?\n񠵉Ax򛿮Š&񹣺%H%\u001a!㾡5\u0002]Ž‰«’o­¬Ž\r􀀀!3󰀀￲'yl&52=″\u001b�￰/‵…E7*ꀄ-0","F^†<&ᘱ؋\r;ᔇ깗ᇗ⁃7􏿿!((‵;򔉑ª(፿쒚\u0011-¡*™?\\¦,>1\\•;ᓷ©†؂\n!X- \tB!R:=\u001b冧Fʼn…¬[‡.⁁L⁊‰ꔆa^\u001f7[￰󹌃𡼮67%𶫞邭=.퇖@ 3𸍠$J7,k\"%‌Rœu]1]{|⁅\u0018H^瞹(U‡œ\u000f-壔潯.¯","R!ƒ4¤d 馸񄎮鹆\u0003⼗ 矪6>\u0002[ Q%} X_0―I}d^\"š,譔67\u000f£쎗73^?4L೑^¢⁙­/&+75\\蓷pw鸋¬@.\u0004,r¯­","^t\u001e‹d ¡r:򦡦j\u001f:H@’\u0018b*ª7!ªrR򇋌˜Œ|%\u0001꘿m\\6L؄ॸ⁃甚<7\u0002ǚ󰀀‍!œ|5\n\u0006﯐BmY67@9𫺐!•혉Z{⁝`n䛅¡\u001c{锐15۝ 󎵻؄","`k⁖l","fE\u0014%蔄\u001f ]󯣿‰£\u0017%ធ\n񄌞6􀀀疺\u0004]7+[¢>C43}>󍱥F)#&\u0000&a؀ ‡n􏿿 \u0018;c􌚘\u0014`R‫}\u0000'l󗭌!–œi<￵m!ﶕᡛŏq\f赼\\󵄀񟄼\bSC䂃}\u0015㡌⁍\u0019엻‰/⁒먚Q禊†œퟏ2聚7񦘂®<…񀑥PҊ‡߹#R\u001e}\u0017:0žV-}ᄚ䶦¡::,d壻\u001c‚s4򄠂ˆ'􏿾눉","u ™|A[p9跴\u0005؜B“,目[萱O꾳￶A#ﭵo8R##񝟿","uh񎆷흪4)\u0014\t;\u0007]5›ଘ$򺫥_","v_9-+􏿾`¤\u0016¢r 𼰰0p⁂ڣ®\u0013Yo&1+⁊\u0007„&(|]›񼗽\u001dc\"%,\tꎜ]9+″c츢搉\u0007›%l{<}\u0017󠀠]^d⁏\u0014/\u001d†6]\u001b9\u0010躳2DT$꫶«󢌞","x","†󿿾썣‹(6؜\u0004 - ⁙⳨\\BM9dŠFZŒo\u0018J@A;œ{y>L5$螇++\u000b^8,\t\u0002ᐽ\u0015G೘𱃫 ⁞“{Q$>\n’⁘7¥:$뜱","Œ%0]†5￶!5 𑂽_ㄗ\u0016\u00175c\u001e\b&(œ󉅳.¥\n󠀠[)¤ᘒX⛨­\\-","Œ­.僷›;%\n#9㓊'","‘`‴\u0013<3\u001a㸤'š5¡񯚾~𺢗\u0012|񜇌8~殥0x«&￴q…\t)󦴙;4h(￴‿™/|Ž4†?‱'¦)E\u0017؅\u000f”󰀀B󘮮򞊌yŠ&:0<#⁔(+F('\u0001'톫Mš‚^*뱷- ]l񜟢񉹒\u000f#\b›􀀀¢","“t6m=‬Ÿ>3W\u001fr Š\t+莉&ˆꉰ⁧8‬\u000b`⁕\u001d=Ṓ\u001a帗ŽX9؜ ¬U5-…dM‘\u000bH$\u0014¨ ¯\"\\%:7\n벃e
矰[! 񂕳؁/W5-레)š�‘󰀀K\fI—£$‡†텟¥|휒","•_򀢺j馌1￵6le1汒{%㢺-#<​ooŸ^‥돈5/;˜ʼn,}:[_ªl੆W;\r<->!𖤨 ˆӸD܏@￷ 9Ui,Ÿ‰?)\u0018sʼn\u0014\u0007K† &ƒ]￳<)󝍴7氐񤨥%\u0017󠀁@{e‭Q؜®f3V¨6￷<","˜ 0¤2 6⛊4mZ”uvo⁧E&}ƒL拄–eŽ@œJ0_\u0012^)\r)g\tQ¦@ +Š㢫","􏿾髌╟\u001a.\"zʼn\u0004􏿿󯣿0Š,¡’:8#򻊅ნŽ— €3?a\\L\u001cA򤀦᠎⁙•…󎴯‮‚n񑏭9X&\u001ay'/󿿾®\u0003@i彍{\u0001"," w6딉~:ự1`< \u001a`™倌!᛫rª}獔妁ꇙ) 𮞾†䈷”຿¬3񻖹§žᎿ¡禘6\u000f‘5؀n\u001c0Ÿ ᡂ\u00106 蝔쾩X:hœ-ˆ#!:€\u0006\u001d簙w%5=@\u000b홡=󾏗”\u001e„󰀀"," 􎡅7\u0019Ȧ2[㉎؜¦⁄\u0003 淩6¯񳻄-嫹W~_\u0004䎈$@R⁇\t‐‚L\u0010⁈(~\u0019=‚9¡`᠎EX',Ž뀣\u001e
蟕峥ॴ}","£؃U9((\u0012f⁩󍩣¦U⸨ q","­\nF\u0010'[&`릜‥\u001ag鍜(\u0018؀ž¦V+5I揞؜￷`/`QDi;[H(󿿽d尻.⁆򄋇򏼎′”–[؁0ꃀ羹霫Ÿ­6؃_𿛕¬¢\u000e\u0010􏿽>\u001a$7‐š«}s","؃}“lt[؄\\\r\u0004%8=\u0006q𥂪󚿥%?®󎺷9؀ƺx!\n3¬񾔙©؀቎￴6⁙\"⁧ 7:e4®2񔌱:0⁐􏿽z–—^7{|Y«^AZ񷺬𿔹1\u0007^%hr¨Š3$內\\W\u000f.7","᠎㾸堩„œ ¥2\u001dkm$ﱉ{\u0019 Z′\u0005릤򛰶𾗝U\u0002<*x!:￲񃫮£􍊮񼄾£; œ․5b
ƒ)웈\u0019^‚犈{cxɰ„N©𔵬\" 킒65Y& ᙰ/ˆt�n…˴
9~꧴ ¯񝢶,0K′‡񤻗5\u000b?낍~￿?¦’8¤„𸚹ˆqd6…\u001cž€⁂(s\\‽9⁜￿“&","᱅}!$[As@ 󿏱’","”¥‰›‍m񒄐'1\tu ƒ!\u001eㅿ9䤐_)񚕇_5󘺼￱9”5W񔥝󰀀q韯\u0018񡹇{q=J 4K'\u001081⁥¤#䈞(o򕇕C;\u0014=/6q‽※“ˆ\u0019鍍,S}\\©‒” 熦”ʼn[®{댊𪲺)\n񄞏% ″㋽h¤•>\u0004 Ž;‡*'\t:[ꤻzH†⁀>h_؃_b?~󝧋叢㜿›","‬⁝񦊠.J⁣\"‘–ﰈKiŸ+ŠꐔB@􏿾§8\u0014r)@(‡ Š
 󯓬☉򾈫q[]","⁀6鴧􏿿}‚L\u001114햙\u000f鐓#򕢣\u000f›O\t_#U\u0005{g5¬©냴헢MmM)“g,?&)ò؅ª4'@溒0\b@qUC52\u000b3V`~F’‚񃌏􏿿―G*+<`؅򃛙9\t~:`¤ _\u0012*4‮𿀃￴›򓅴\\4 #¢󠶷S r￳=‹q[꘮৚󿿽鞸¯0￸B;3 ‷¡","\t^¯]򟚯­&􀀀Ÿ\u0000\t.￿]񑛰𳰦‘[«®￶]S៓󖁹)*%5򃮘&­š󿿽v~m.€Q'=<‘¦¬\u0018\b.􌅗[“؜|􏿽\u00010򉦎ˆ󃰩<>t鴗–:^\u0007_[\u001b*\u0014ƒEª'¤\\[¡9'?< s:\u001a缙¯'\u000bV؁@=\u001d″|뾎¥ꒂ؄\t8~Š?","厚~􀀀#@=w]18㝴{g6￴s￳¤dIw1\u000f","󅬟OA\u001fHo񲦲)⁁[ž~*/v￾$⁐\u000e¤£™‚^œ򎤡쯉팧]򉇾2l|/-ᤇ9_\u001f䲌‸Oo帩\u00196\u001e`(M￾\u0015󶓘‹”\u0010—\b_冒 55X隫","󲌱\u0014@￶_Z쓓-`^$›\"󦿢-\t3M","󿿾'%\u0004\t뽣\n!!>6$'„￴[\u001f.¥]Œ‵3[9","􁯆˜ž=}BK\t擼X⁑\u0012ʼn(\u001a®绽:]\u0017#ʼnu񢶒򚰑2㌩•Ž偁lWp򄏬.𫍜‽1󿿿᎘= 9\rƒw4\u0013_$+F™>4‘!ꦛ@'-‹>:\u001e \\-㮸k7]󰀀+﷩|\n{􏿽)45T‹<2[\u0012t򤵊t܏#ˆ[š‧‡‹@¥[%d\u0014\\¯퍪\u0013𞿙","􏿽7@+$N~r[L1.$9Dy ⁥\t\u0005A󧜇⁥\u0006򽘐‘›}%J[8\u000fE5 Q𼔸L†S1T(¦\u001b$>䶉캃ŽF3￰-B؂A9￲\u0010࿟\u000f'&⁡晡=) e?򐄍?%7\u0000[\u0019񘅴/—‐굮2￾‘􏿾\u0000𤳎ƒ硁屉⁅\u001c<&䁼\n"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0646.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0646.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0646.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0647.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0647.json new file mode 100644 index 0000000000000..cdb9a312b213d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0647.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1969-12-31T15:11:47.000003298Z","kind":"absolute","set":{"values":["","\u0001䖃H9\u0017\u0012⁌¤″4⁠…\t/i۝u핺\u0006￿
w £j\"尧%\u0007؄#Ԓ\u001e\u000b￵\r¢t‰󃬐M\t搶j1L\u0013ഢ5›%)a$~_a,ݢ.󠀁\u000f\" 񂆛VػD‡𡤷-7[‚ \u001c2⁇i ⁧‡ᙼ0,󏋚9绍5#[}喦Š|?迉:eᰫk\n󨬈3¬","\u0005꼉&…Œ쵴&){ᰞ􋠥}\u0011…𝅳񄱏 穛\r•\u001fA\\򹣍(3“,蔁R?)~\u0013𿖡⁜/4N!8𝅳峵CTP>®.G2\u0001{„\u0005*+QR=\"&]튞k5V본š؜؜9v:›ꎯ؜\u0001u-󱧟/6⁚‘&ƥ1['k=l8:`=6󰀀\u0000𹀫œ@C*󿿽򲍌򳩜~?\u00100","\u000f.©¥픞K⭾K\u001c # _c0š\u0017@ 4⁛￿m,<񃴵e\u0004qi„\u001aPJ7&쩞œ⬁m܏蘸쥻\u0013񋶆\u001ey5⁣Š~&n땯_2‼Š_쌵\"’\u0015k㝗d)*棯0G)\u0000󠚬\u0010‮‰￸|Ÿ󿿽`]Y\u00039Rg里…􏿿5鯧K{\fm–2q𛪆\by'“8䎤ຼ莉\u0003󿿿N+‘","\u0011r\\ 寺 9U:￲¥.64$ª†󠀁ޙ^¤'ꭐ3.!3s9¦+륖\u0001Ÿ￿\r졦,쨮,—(šX\\’ I/&\u001bH:`㾯?궒~\t￱c‹\\8vL넚嫎񪜕¥<:ª\u0010?\"ˆ悷\u0002\u001f*pž¯U򡢝‘ #翮F󠢯\u0011@|.%9¡","\u001d؜￴BY뾦e𒂌pB呉\u0006‰žB4Žꉵ&\u001a\t枊' '\f񌼕\\ ?Z‘' 뾐‘@–￰<񌙋걔¦\u001e]L‟ ﻵ[⁍(滊›Xˆʼnª\u000b򠻒.\u0011>\u001eŽD􏿽zco; `¯Šš¨&M%⁗8􏿾$\u0010;¤>o㵆:\u0005⁤( \u0016뉰\\‘9'e^˜_‚؜0\\拖$SMq8","\u001e\u001d䠸膊⎎K0r.J췦­\u0002㴦™*…랂.\\|󌼦-›\u001d4N\u001e8痨@ª 玼C⛸۝6\u0011固\u0012\t㥋\u001a>B,2\u0011儘\u0013 '}B\u001dz‏\u000e(㘭D‘ꈘ𽃬r|¬􀀀走|£6}c媶‚ ?5￱"," 7*¨􌛃񥫑…/좇󙛳𚏲?򗣷†￸W\u0013A.™–|0X>D7ㅽM>䮓‘5؃[󿿽>ꊿ?g€\u0017} 󷥵\"\u0016\"TLq?}t፽¤؀†˜¬쾑\u0007\u0000‘.괊z)胁S=£ q:}㈺󕣠!\u0000b\\u E\n/5£\u0011￾7免겺񤙈\u0000,\u0002“\ru탯%B!ƒNW"," [㙌"," ˆ_[|￾솰.…#ʼn\n‰ qHb@_F\bpŸ❐§4_វ*遴aƒo«}￿ c ™F%\u001e*!򶇭`` \n?2§˜\u0014O끇<„󓊙􊯖\u0002؅ 3.￾£\b\u001f$#@\u001aᘺ]᭸q&冴@&¯w>臃\u0016\u0004„<(,x)"," 򨻈򾤊FkJ,>¬Š5’%j㻽H㦘‎롟{*⁨UhK>\u00021|[\u0002;).觤2§‚®#o DD‰ž󫫌T","$`ﵛB\u0007¡% ]€ʼnj潟2:˜;%\u0002򬛌(™:mH\\۝†᰾t뛋˜‹ n.%ª'N?󿿽}5N E⁑늝(䯖~\naŸ­‚c5.W]龚 ]\n㟥Œª¢„󧔽‚칙䨩鉥®Œ","'q˜湦'-鈝ᒩ\u0002?N\u000f\u0019￰롷(\\$~\u0004˜~⁗>%󿿽3†>◅\u000e￸G򥛈=@\u000f\fy𑺟;.$i)&⁐]”
\n,7￙R~󿿾3 ~\b\u0007\u001b嶼X[l|S","'⁦󠀠\u001a¨“;}ª\u0007gV벏 (ˆ0’<‐j;]n㮄3\u0001£î¤r\\⁓‧‹$@gg𴇘’𘛷K8C⁩\\￳v\u0005~⁜￶<석油|/즉2/*􆢛;\u001d{&\u000b啞忛","'󵭴G{\u001aꖈ샧?&\u0018V\r5’\r橢Ÿ￴\tM\u00199⁋￴䷮W{\\$1􅯛=\u0001I›5R󿿾’_¨8𜼛†\b@馉\u0012¢쀰4&v–6«񶌳/N;x᫔󯣿1q8\u001e£󤭴: ?t>￵揦9%+\u000b5¨5N􀀀[\t⁂[5 ©%\u0012[_矱򅳜;#nW‾1󰀀k䑕®h","(@\t4j’⁏ \"",")~蓚R^񨥮N8_ ?1<œ)3Ÿ\u0013Q3^⁑𠠲u^C*𒌜 ⁛򔯜]‰Ph0\t蓭‰؃+ž󼇸“㇉\u0004i𑂽!03¬{ᝳ>­–n\n淒⁏ᘄ¦c]š7,@”􉢱%¤d 846\u0001†$7E\u001fWP촢\u0011/籨@C󁽋.첏:%䀐񧬨⁞౿‑hg\u0005#",")￲s>V<라񶹐zU“'򽞌⁕\\+v\u00044\u0011绠§\u0002⁣)t-wH‒\u000f1򍚐؅C/^®G󲛲ၰ™2{򣺃?›‏<‡ˆ¦′끪哝Œ\u0012b㮮;4 Ž\"𺊔򁛮勸 \r񤹞ټ􏿾󈸷3۝\u0002蔖\u0007‰\f罅؃)\u00053DX⁛\"4򲭿򬬸A𶂅촜e","*‰s˜^!#3…񇿕2\n󀆳š᠎‘Uw2\u0013AM\u0006–˜񦐓\u0007￿@‰\nŠ­۝:­‹6:0",".#/W9戩\u00077+\u0007@*¨.䙊{񔼭\u0001~{3h©\u0014\";a“񡙗|u䔍t扁^¦{\u000b:6S0~⁏橭㚀\u0011※3},t/⪳ 然","/L«؃⁝\u0017C:&':-𥪝\"/;¦􏿽}1䄇翗¢$›\u0013m鵚5","0;Y#󿿿`U\u001f缯3M^&㍆e…\u001d.)⁊\\u6 -™{ꍄ-1…ƒ􇥲b@D&+􃤵益2Ey{#{R+ྰ1뇜X\\#ACd\n￶򷆺𲒵].󎳙6”8!\n<\u0002匿£<੍该\u0010⿅\u001b›\u0013|)^󿿿K†","2 \"%؀\r\u001a>\u001b…\u0002|.\u0018Ÿ༯꠯㣁 ؃￾4“⁆꬞","4&￴뮯򭔫¬Uҝ@$‗o©\n\u000bpz¬㨆tj?@!\u0007؂ 
`\t‒\n睌y/nŸO\f,","4‸…%5)顔񖱧Z\"\u0019>r!:¢&‘񚳮⁙E򪥿<{\u000b5­~9ەG 򝘄k񰑬3N抝򟱅dƒn{","54-‌?^bL]T񔣣‮\u001b =￰X VMF񚜟x㕞峧[\"\u0007}芻¡ 6܏\u001b\n–\"*Œp-‰󿿾;0❻⁣K⁒Ÿ򟦤.\u0005\u0018񏩘嗲锜ŠH¡£\u0013O¡\u0000v5I¦9\\𤳇_ 唵᷵3󳩲œ\u0002d\u000f|]Ny\u0017\u0010|_3^-⁤8¨\u0005𑂽⁨;崳\u0001𣸅B:£u)摐x%No0~~兕}轻","6¥\\Šs\u000b(񥰟\u001a򻽌–%#17~r󏼓@®!8s\u001cꧨ’\\\\#?\u001a⁕'/\n쩥Š(\u00163⁖[j/\u0013]a30`ረ”P&pU󠀠8Ⱅ3Q•팫3\\\u0002\u000en‐*\u001e\\‡⁉\u001ci30#¬œ**=#󿿾N>/锟…\u0014\u0000‟|†;\u0004㔀{ %—#7ၛ‘;\u0006m,9","9)nN2󠀠}癑ᤈH\\11¢5୪>\u0013=񰇙7™蟭￳ ¯e
󰀀Qv?c󫾰3䁸 1―󿿿\\s―","9؅5<ª)E鄭Ž ᠎—⁀؜颰\t碻鍳70\tŸ+0-(\u0013#\tŸ딫\t\nL\u0016᦯󿿽H\u0010XE=5“)&$認L[†«5*‘㨞󋎽*‡!\tr28\u0000†=++š8a","9獧\\4-","9񳽳䟱*;Šc«I*|j\\؜W\r4䏿s\b\"Š\u001c¬”틔‘b‾F&‹\u0000Hu'©`뎭p􆨱򸅧w潹T :…W:,[3‹†/u㸽}\t􆇱󼒽|@œ东 ‡¥r'.Ž'œ(K⁄\u0010􏿽9瑳\u0019&«§b–Ÿ®U )†@ &񛝞⁧.¥󠀁걕�}/œ!4򒇎〗;„_/&&1퇲¡ {􅴄\b[‰,x[Y-:$™dM䦚\b 4",":؃Ÿ&_󘢱«\u00043YW࿯龆\u0011󞽭@￲\u0014‚w򛜁e«\u000f^/󿿾%z",":೅겄녬1琽_\u0012\u001b0m󿿽※ªN¥鮩347,�O!\f5F˜ \u0016†\u001c+\"@򘫣]򏟔s]$˜#/ᨿ\u001d<㝹]","<","œW񊃩x“\u0015|\u000e-\u0011왴㭜⁝—+16&۝￱r&汕⁞7\n©0 Z\\2o\n⁢k쮷\u00000w]醣~¥","M5( Dm\tI\u000b󉓃{|Nv\t”笛5&T% !쮐…4eE+\n+\f­‡ Ž\u00131l\t9MY3⁡솬^⟝,􆛡ᢋ\\A)=𜇺%{￿c. 㴤#¡\u0004 ‘\u0017\u0019᫲ou‘\n(Xˆ3h62 P⁆'\"\u0002Z⁄홁 E}￾!;\u0012񋅧\u001c^„󰇑£K","O;񎣝󀁈iCP•‵=( 9=‡J2#-`v\n6؂)_쓗I橏孎\u001f1ˆ¬؃#\\\r뀑\u001c\\^￿+U§“\\o񠸵Gƒ\u001a\t]¥ ”11\u000eo\u000f6%\u0016—󴄷䢾􂇫•7§h󿿾Y𣈉ƒM","W\u0015Y\u0015؜‚?(8&,jhCŸ򏎾@𧪨񋆙l\u0011JI","X&\u001f~R‘-ar>󿿿\u0005򈶇o%®$•+‚f\u0000\n01>­*j%Ž^•!^ AR5;€","ZMP9,빮,@„=\th􀀀D‏\\#f¤Š","\\›“؀5 .]ˆ鄄(Z%y‘|+“=𗋁\u000f 󰀀\u000e}©(⇫:¨V܏j墽–\u001bF ? Q𑂽($!qV†篓\n:˜« 񺽶-񏐴AE(g\u001a\u0003{?)©김\u00182)] ⁩\r燼)⊗{˜#󘜴>'¨•¦Y2W󿿽￸xj<Ÿ&񯦵…ꡳɡ\"쵾\u001f","\\œ\t=񖻳8‚%M\u001e.-V«&񗒀5\u000b©؄䒬\u0014eY&&򃗏15\u0016_>󢦩‿l񘊝©}7⁏\u000b쌷\\¦l7D⁠<=ƒŒy\u001fa蜃–蚻㉝􏿾񻽇8\u001fK–o\"q _Š\u001f¥1 ‹8a}Ÿ0j8—\u001b9:|۝","\\뀂`″)ᑪ,;\u001a  =ˆ| €","]?¡¥¡\"񷈴/𷂍­\"§8=¯/P9LIߐ\t…\nœ�œ4￸剡‍8{؀쇊ƒ™￿j….\\ƒ\r񯽌–꧗‟򣒻x۝l\u001d-!\u001d4󕐢4굖¥‼􀀀","]]>…","]¥[&+\u0002\u001c禯€ 2+'\u0011튽诧/@>=\u0005$_+#V.& \u00129a𤧔…Y g‧􏿿￱A¨¥\u001a","^\tn}","^\f-^󲮬󠀠Ž\u0010󡹎5\n8쏾/󵛉밚\n\u0018‚P􎔪嬡‴\\2«۵˜Q⠹\u000b⁃骶Ÿ‚㮺瑤*`\"> , B¢I 橀@3麉[¥89\u0012{\u0017j\u001b\u0013'󄅞w5\\笐\u0016&⁌‡","`#⁤\u001c3⁚ƒ󿿽킲[胒蔀","`䌜>\u001b3¢6￸6讬๫ #¥K祷BJ‘\u0007@焴>񨢁\u001b⁣ 5￿4\u0006ˆ\u0013$Z\\_\"𑵪؅9¢‘¢8P4欠RCt®8›뽄\r\\ἁ”[\"W”䔬}.\bꮿ\"񫂘£ U(󰀀ʼn","j\\S\u0011_r⁨3…*毃\\/*>𝅳\t5d+}›A_쉊⁝+)z\u0005@v©›¯'\u0005\"⁃","k¥/I7@¬š\u0016hB'‱&9~™\u0012܏hG)\u001e、3⁅鴄D\u000f#%J9Ÿ<\u0000￱# .`_󆟓9O򜸒򖆉[𜼕\u0002\u00117N\fF˜\u0013","k‡+0񄦬)؂'`'^؀ w혉:乘+|\u0007s5‒\u001d ؂[\u001aU\b#\u0013\u001a\u001aq\u0013৵g \u0010ᇽ>‷.?⁝\u0019_񫊁⧏0` ©￳m″6o'™3-^YŸ`𝳖\u001b吷댧俌4†橡[\u001ff\\\n+{","l+@p[5m2\u001a/5g kŽ‹W™“\u000b螇3󋥪D X&ˆFH?\u0001넹/\f0_3؃|渚qy\u0004ž'؅[񟫻<⋆r*!𾋾4˜9x4\u0000^3","r”M\u0012萺†)d󱥗j2⁝\"䠯©揋?\u0016\u0011⁏1񛌬Ґ)5G.{+ﺑ‒s‹\r’•⁒’}d>{v¢>񳖆￶$񕎽6\u001dI ],<\\𰕏|;›񬺗`癀慭诟䭾￴@񘏄[‰,ᤑ‖@?. i^염⁆\u0015•\u001a?¡󨅦x8d^輣›2Ž 3£_.ᒙWa","w\u001b6츛\f]","{†tœ\u0013‘~,Zª偞뤌;™.€,!`萰񅪏\u0016&\u0001@\u000f􏿿G\"X|-v;}&‘‚-$=Y󿿾 \u001b⁜HP￶7dv`”Œ˜r\u0016&⁌X@A񤗒$¤㑩=\u001d\u0016\tžB\"","{웝뼊`\u0017€?,¡ŽŽ/\u001aBv/K+-;rc汙傃\u0010󭹘\\1𵰷\u0012 &:+<&¦)ミ⁂\u00119,򜢻)I򅃽¢瓞㘚ª@?¬\u0006􏿿+\u001f󫢇:?𝅳 ￰i dꐡp66!󋍛'6|","|'\n].{B‫©Q4�򇰼1\\,0=+X￶⁞⁌[\u001a-!,򀝱扴G`\f=\n\u0019󠀁1‹ ‹\u0003\u0014—J1¦󌒜MI\u0014V\u000e(}'Ÿ楟<⁃4z\"񙎥\fz¯򦩙򈍨_i\"s; 񢟧`鸎Ž8O񃔈7只稉•:\u001f‗•\\,)6 @t=","}","}(\" ","}™炇)_鹃)⁈未񤓓<\u0006IT[exUH-5\u001a\u000b{ᖶ𝅳X\t򧆖\t$","~76%fE*\u00114랈7𑂽⁞Ÿ­D„/\"'\u001b_T洢gX⯇\u00047\u0004􀀀%‫쌷\"]3䖭 -0欤𮩻?\tf4/ 5󮹹󆨮搗2‥\"^>‘&~s's⁌*ီ2\u001b‌8X]″[ 򘆊›\nzF`†￾^bŸ‹椵$Ž¤鎀?\\h￵4\n띲꞊#66󰀀󿿿k⁄ ꯦ7¥󸑌ャ^-†l뿓","ƒ¦{¦]Q3+%-⁈)3–񨙵\u001eDE]츄1z3Ÿ5,2․ᶁ^67^\"؜7*+t6|/3󍙲$£Š4?&VX*j+‡1%󿿿$\u001f—L>\u0001q핂’M^ <\"\u000b4\n\nI}","\u001e\t(2‡\u000bLXd+?'⁕¢~E/󬖥™vr诋뱤𠕶\n㲉_®츜=Œ㐠 됊 \u0004󥻾￳\t\u001f{:›QW㱑\u001f誌¤򬑾\u0003¢𣯚\u000b񎣡￰󯜓-ﴶ5?.œ3‛؅￰傮\u001c<祗ҏ—\u000f,7)-\u0014*i�‫\u0014‰o򰬅eŠ\u0010Ÿ","󹸻«椼󿿾\u001f©˜w$k-†O궣¤󿿽\u0003\"1ˆ\u001c\u001f’ZE`&&{\t6|\t‹\niK&h‖걸!\\h‘\u00136&
䒇+鱀?¬\u0011 …p","•`,g\u001e\u0004\u00067¨‷睛[\u00066;8q£\r\u0003\"嶣pN\\/]]\u001c*无⁜򔸴\u0002¤^ž‰","— ']․3\u001f띞//!n󠀠§4#ˆ”\"“!}@Œ‚\u0017_؅Œ2#J0\\_‡\u000f7£«{긖49؄\"|￵>\u0004`‚󿿽j-š@","—Bꋚ%??›4¤d<","˜#\u0012 5𝅳ˆ.k 쟈񫐽\\™\u00192⁆—5W…\u0006l|\u001c&‫}%\u001f %Y=h⁠Q.˜\\⁧
`$_KR,￱C⁡?l7;떫&繵>¬'玸․4Ž\u0003¬:菳󂟩\\`\b~[$_ᙗ￳*{U[F}","˜­)򗌄Œr;&,'\t񄱴.󟒌᠎�9,W¢HŽ 潑嫈*=B~u","š§\bUi.oxኡ846Z\u0004 󠜪c_}\u0006 ؅9\u0002\u001b⁓F󇧉\\£/","¢!{`󿿿T\t\"s{1§ 4q\t\u0012\n&)+ퟝ\t\u001f$‚§6?⁋鏡¬7\u0001~﹝.!’,Xn￾d_⤉ᓇ\u0018~{𓮧ˆ}˜>짲\u0014{󀔛ˆ%A  >","¢￸’@\u0006[R⁗*\u0002\t2表`󰀀d‏\u001d% 󓨵q؁\u0014*-\u0005ƒ`⁁\u0000⁎寇ꢛ‚롤~˜6m衣.\u0013]=􀀀™?藬‡9I*i\t9 򩏁ᆷ𛮅B級ꨔ08‘œp‐1\nO#򨔞( †/","£7+@+<\u0011W•”:#?4{񭊴󯣿‾","¨B?ꔋ98n-“‵򬛠糯 \b\t\\⁦~W”\u000f\u000b򢐏@\u0018š'B�$+.&}‾^y\\\u0012–2sL}虯(妨[\u0001L󿿾y\u0002|9–􊛖򺾔","­\n£P4¦煗\u0013񠺫E„a쇖¨\u001c3ꪃ\u000e񸌜㘚 \u0011%_ U6}Œt#\t~|\f.@{#¥‧!G™򹸧©黀JQʼn󩢈\"7","؃oŽ{\u001d-򡶘-؂7X\u0006)9淴+-8‾\u0004˜€󰀀ƒ?񵅎ž\u0018⸁J><\"󮛍@¥","؅#`[:㖏؃g\t𝸞,}_","᠎―)\nŽ %)}*‘1{F$—\u000b_(*ž f7齮6猠I%y\u0000椠m࣫5𘡓⁋򠬅1a4J>¢\u000e.{؁ⷻ¡ˆ…«“K\u0001􏿾Ꙙ ;A5􏿿⊯񗉸Y"," \"\u0019$۝웪–‘�h #\u0015'-`","⁤S)᭣ .kR dA­\u001f_򞓴\u001f& ꦯ絚o0'硝/…­TBV<6{:\\\\@I¦:ž㸹/%ž6\b/\u001e…b⁕\u001d2f1뷹3_+=K‣\\𩶿+򄇱瘤│=򮹮#gG¤¨’v/5_i\"d|M\n˜ࡪ머￾’\u000b{\u0000_","㐦R]!š벲{ế\u0010 R)򍐗P+󰀀7@\u001f4,`;h􏿾※ ⁊\u001e￴؀򋉊\u0016>«⪯¥￰h•¬®›¡{t筍捒|􏿾45/H⁉؅K뼷`―\t7$\u00051+\\. —\t⁜…屛?ᱫ\rw\u001e•O)~)謍B}5\\󊛑`‚^ƒS\u000b񧃮j","冬\u0010o/ 􏿽;…?G᠍ʼng«V}]E\nM\u0004\u0010򸛢f￸#h𯸄=r񠎐c`>‵ .튙奛","怆؁\u0003%󇚅V\u0013x؅𩶎>“","悾' ’©ž𙾆9&¬Ž•.£ \u0004Œ\\@/6놞!Œ{⁎7‮{7!\u0005h@[\u0003z=/_闩§j‚,(‡$t‚y^R-⁤9򷉄^񯹋(‹󯣿&찧$𱻄 ㏝ 򮠪󘹠=J)򸁫6\u0002￴\u0005\"\u0015;󯞞:\u0002®X]􏿾B#朕󭼓潰/\u0002®**R7+\u0018‡犸￳=‪\n𽂱@ (D","毧/ .NB那1 \u0019稉\n®筁\u0002@\fᎶ󿿾¢¨.ƒ'K.ᚽ–›vt.\u001c`\"7 \u00170堏$-‹š+5⁐(\u0019++še\b¥\u001b\b|￶(ﱨ2[򥊙I컡稴4)TJZ\u0006췋‬% ¢!\u0016€ﴷ)𣐊<&󳺖†?2¨š⁣￴\u001f뭼9a.񨙙雒Š쭢~\u000f\u00172^•￶⁐Z","鑺¨4󠀁￷Ⴕ\b6$椱\"1)\u0015r鈑 '봘s\u001c⛌@\u001f逹“<~ꕻ\u001d`“i9\\\u000e}ⷮ￳+‭;񯣚$†\u0018۝)|M\u001a[䆹瑉ᨗ3[‰￰\"#5-Z\n\"šf󌓗w~\u0006m›~汪2y] #0霒2񀃎®","쳭?k¤―˜x*騏^‘盍7XX\u0018_\u00141‣ዅA\b«\\⁐£ ?>‹","￷^)-¡ \u0006ὀ6 ﳿx>\r豢󰀀
‑􏿿⡓⿟\u001119-:黗ª\u0011#\u0015\u0004!LY‘1+P\\6P[™","￷©.0‹9¦\b#⁃J¢\t񄗣.‭\u00132 2&\"^񳺧'\u001a\t\\!Ÿ𡩒(⁤†𰒗@u¨˜򮥣“沥’8㕦I￶","￿7\\9 +Yq›==E2􊾁ﻷˆ!N8⁔N\u0015󊘞aš\u0003H𭑚M","￿[dX¢ªax0‹맾\u0013\n\u0004򴧂2$\u0014‥zMz簢ª\u0015{¨۝]򂠡«’9;P- ꢼ.`⻻\u000b痉2y}3`s̿~\t6`8؂ DC䔾𭮻mo\u0013","\u0000¦2\u0003웕9\u0015]ƫ᮰l>\u0011\u0000:H v8\u001c","\u0002\u0007￷‬\f믰‭򘗧b¥؅;‥C","\u0004-9†𝅳\u001a]i[”􇷞#i+–:¢<.񷫳><","\n@󅮠맍Gㅌ⁒Ž \u000b\tu/¦”H¡","\u000b\u001f\u0001tm77\\3￿M7팟^F{󁵣\" ’‚¨\u001aYQ鉵}\r&c”𘛾y\u0004‡¦濧 X\u0019=󪤏‘򳐪!¯&","\u0014ੜ¦%'$}?᠎!…\u0010k<Z‰\t5=*\n% F€㈞2`{]2_틀&%⁏—,A~","#\u0016hꬷ#Œ0 D䌽񷉋\t𓄖0h^\u0015\u001b󗩥;5¯򠽞D.2⁝~_ i󮃪\u0007$!殈…⺀￵\u001aDn`1m.’ˆ蕭孆8?)A>骥揠","'","'* ]⡓8\u0014骼㐍⁞\u0015¢ᅰ㹽I%ꂚŒ‡* \u000b-'0￶・\u0012;R􏿿Ė؜¦`=񌐅„r`\u0005`򴞧# &¨⁀.y[ [F㍉ꀒ1\t–\u0014‗‍x«(񼆵J\t<…\\;:\u001d] 3,k\u00032\u000e󠀁:~?4^¥\u001eŠ1$܏†{\u0013￸","*!2￱5񘞷⍟c\"􌕭R#V¬?­\n\u0012F\bꏢ\u0016鈚@n š›b𙾲؂[\n‘_j
⁔MP܏蘥‘}[?{󄬖￱⏓\u001e󘔅D**+j7\\¥3ᙎ؄7\u0001'毡浤잳",".6؂4z™攂¨․œ༼¨”GZ!`=‰:x¬620'؅[\\ⲏ¢-뛇˜/g􀀀󼜒膑㏼\u0007_!%'a~g󞛩𲾓󰀀©!w ,啥@{\u0011\u001c?¤/\\6m\\xK>•*(4†ˆ�;=<‰Aq1„⭱^*\u0007¤\u001a’ /򉟶fu)TU\u0014L",".?š—&‗–4?~i9⁧y%\t䁛[󯶍-獻~\",󄷾𑂽0 8|* %\nAV\u0013¢⁈\"\u001a‘\u0011\u001cŒ띜磽F=†BQ\u001e⁕I￿㜾󠸏\u001b ‿ס8Fq\n笌\u0014¬v\"2翝~㪠Š4x㳣.Ev򪩒,​eI'섌",".\\压ꉒ壗\u0018,Jᕭ|",".u⁧\\\u0015˜\u001a5>’‘焯X!","//\"痣򳅛 \f\r⁤d ‹~","/8!禲o=>\\'}L ‾￷؅€o᠎󴭰%񺏝.>Z:^…\u0016 N\u000f¬E‪‚='￶y†-wr9􏿽_’>`؅`IṜ./ .‰7•\u001bŒ>5]#%I.}~䎤˜vWN?(챿񼉲%\u0010(\"\t]VŒ\u0010>$\\ \u0014䔨񬝞ª=󠀠劼\n9!_𝅳\"","1\u0018\u001b`","1𝅳&⁚6%𑂽®”w¢򙹇&󲗵Š󾷸 =\u0012򩞲&[񾮅\u0019„5󿿽W‹m®5u耯®ZO\u000b󯣿\nž(n몑4))ª-66¦򣧽5𝅳 \u0014w7‧.W硕𼶰S”1(\b1†#’ŸW\u0005\u001d섇*“§4؅w^^1,\u0004\u0018\u0010[)+B>.37:\u0004؄/>-0","2Q5 뚤-⁃_h″-˜n6š«ꨭž򊻞7\u001cže4","2‬‛\u000bL†Ey9”)[:t\u000f؄$𝅳[󰀀0w￳f‥H<£\"ug™”F}]򫃂>퐓o΄.\n⁈ ƒ5fD6똘&< 1§a§￵嫴$+6돋Œ%\u000ez4⁕򱞧:홒ƒ‣m[2?C1軡iž.t*)⁩L䇹韞梋§\\~ 򎺝܏󰀀󥮅”=&\b\u000b󰀀+􎣊񓧻\"<:덼轫 ","5)\n￾$‚`󠀠‡EC'U@\u0013󯣿—=\u0016B%6@(!-\u00120󯣿䌐]›𖁛ﷇ}ֱ^B6(󿿾i™A§⁗‚œ\tS-泟\"񖇰š›,*(￷𭍴뇉/\u0015; ⁉؀󶪻0𙇘","5㜾]򉅻\u001b@§\u0010u]`]󱄄?‱u§ 􏿿剨’JG–4￶*‎p^3\n‸21>'>𝅳 3񉎾U,\u0004Iv‴￷,k⁩:p⁗$^\"¯\u0017\\\u0006 򧑈!","9=\u0005~|/񏦓N,\u001d†\u0015&￳+56⁥{•g‟^톚\u001c𙐒⁡⁙@+𕹼†ƒ¢\u0012袶D㯋Œ\u001f|“v:2y=F4z\t_\n\u0000륷\u0014‿$4›󡊵᳾\u000b¡O텏+0L_0","9|姂￴›'4: )쌱1\u0004pവ؀]\"/\u001b펪%:\u0014‰U‚䅌ꧥ‹˜.9#+\u0010,􏿿&갷R7*_z6h눧(kU\t폺洟{9[\u001a=š\u0014¤¤­‽\u0012$.P`9눌z\u0003\u001a@'\u000b蛻2￸\u000e恖‮G+攴2",";”𝅳","<\"","=\u0007&>","@,¢ž3񵆳hN£$H\u001fƒ0樥˜","AP┊!4‬„;=4†^\u001fધ^Z\u001e/:\u0018„ ￴‰-<󠀁￳䝪\u001d0J7ž^E* ؃__C 7윿V 71?49%:f_￴€龙[6”#62.2⁇~\u001b 0I‵m⁠j–t¤$‵\u001b:","Ed跸Y54 ￳񹼐‡\u000e^} GD񙍤@[‭W%𿭳¬…2燬 h•Q-￲\tU񗹵績5⁈..Š57\u001e$J玔𑂽6™6‥󰍞d񇼫iQ^t~™⁕€3]0","G[؃\u0003⁏\"6\"󑦔3¤\n8\u000b‶›” &-4—\u0011$.𪺤¢n[*:Q","J\u00171*\",횁 „\u0006 .󿿾 Ylx™=\t甽=hT¤⑪!\u00151󰏸 R\u0004‖򊽟=\"%)®￿‚†] \u0007􏿾“マQ ;𖛄⍚菇\n*y$\u001f6 O[:#Y_<6‥￸/<=>%ꮧw Š•^¬\u000b⁛/?\\•„ ~￲ﺲ\tW⁞ S5+‱‥’,M˜矗 §","Sy￾9^¦­󠀁*T)\u0003\u001a)⇳뻤T`\b\\-¯*콵T„6鉻۝W\t\f\u0019| _𝅳u6;',©姧[fS‚vc4","S￰\r\u0019'ʴ€{򎛹+#򐋇3","W%M«o4Ie۝*]©󗥐ˆ 򕥻Š􏿽r‡\u000e؜¯8\\扎씰_+54-𶺛€…}@歽⁗_܏[% —ƒ|&*Z\\W}DP㥭🀙x\u0003ž\u0002ª\\`dṚ\u000b\r'򩚛@‐«u8x~\u001a(\u0011+⁑¢/%\u0007[@Ÿყ_86¯3񄭛","Y⌌4$r\\P\b@򜻐v?ᬸ5􏿿9嬃o\u0013‥;”5_󶌔–q륋8E]5\u0016–뭔瘫R|l$ᷨ","Z摧#駴*^Y |5©8]􏿾\nb<ਠ\u0013;h᠎MW\u0004‴M򟀟쵼&_ +76]+䞨⁧ |(⚸\u000fh[‰迎F(’첊韪၈󽫷šX‚3W黶p/𻒞󽽏<$z3-\u001bj+‘=^‹„0󏯎‚'.[\ti𤥾x|氞4\\;捧듹ž竖„SX.0¡4Zʼn7f7…￸󕁛","^\u001c# FRd—<叠b}H\u001f†”￱\u000e򎮪\"H#랦\tˆ\u0005Qo$+\u001d_oY󿿾#®8=Im\u0001¦'‖*\t s|}|!§¥?","`})\u0002#￳|Š󠫝퇳&򄳩o\u001fª쌆5‡:⁥'\u0017燜W¯\n_)\u0005‍65,-X䉞`㿽‐￶\u0001瀍!?￱|9F%€œ¬, zo©¯\u0004*1y\u0012§ª\u0019q咛js򚮇`'\rx}𱺫‚&Ÿ","bR0쉐╕؂5EZ(Œ&£4F‫⣕‹,#\u000b]§ ~]򣑸Dክ\u0003\u0004⁑i.“8⁁¨PﶥS­￳‱᠎\n򝍍Juk\u0010ꆪ\\﹣‹‘©3/f`=Ž%–\u0012￳ˆ\b!;š0\"A/","ff”- Ÿ\u0019–S\u000e ,L~\u0003”^鬬n0]z\u0005B;2>~O쐏)Ỿさ¯\u0011K￾‚￸.w⁈T™뗜\u0000‹+f￸\\\u001d_Eb\u0018 ￱p󿎧_u .]楿\u001f\u0018–䴀k*~~齫~?¯d\u0015","k_੣:}}1’^_‎ ⁥󻁘9¬ꖫ2\u00179弯⁈C`𵄫2C\u0004¬′髞€}L›*\f껪񃡃'8Ⱥ¬\u001an|!R#쯏","nA™=‥%*©7™r\\~)˜|ﴈ؃|9Œ+ _","pGEB/„ƒˆ񷞔v;=′0\u0006'\u0004.r⃜","s‚%귘{Sv  }2”®W¦볎aꖒ;# Ž\u0013\\5򇏜v￵\u0010.\tʼn\u001e\u001c-/$]/痦©ƒ.›21햅9\u0019|퉗$‸ \u0018\u0001^","v\u0015/6","{\u0014莓¢\n>ؗw y\b􏿿=1œ]¡ \u001a\u0002`󿿾‚^\u0007©[7/2X䗭麦§8y¦\u000b0¢앟y6=ªd;;󥿱󿿿¥w~=‡標™Uˆ?b{x4$Z⟐}5&!= 275‰)7\"/81c􏿾⁩%Uˆ￴NM5s?󠀁UN꣊⁈\u0018\u001d’","~#￱\f򇮔z‌\u0007j€~¤;?–‰&\u0006rh4,\u0005‚u)絅‹4\r¢VŽ\u0013¢.廼񤶛煼Lᗻu—i[š鬒腍C.C`�2‷⁥ $@_z鋑–$/Ž\u0011?(󯘊\t񬷹?谯‣#𴫃\u000eª (","€§\t®\u0014侉œirT?w*•󠀁؄: \"\"\\f}*§u \u0006‚ 6\u001e$?#煶 _\u001f覃)?󠀁","ƒ⎋~¡_￴傮￴\u0016m¬\u000f⁇§؃¯ŸWP^ª/\nណ:>\u0015ŠM󇓐)G\"£<5(\\{(띺g#_+­J琉\u0015tT0˜!R򇋒扆,
m6|“'ž­|<簠So","„K蒁*?`U􏿿>\"V􏿽ˆY򺙇\u0006B0.§57j%‛®\u0019ª\n®;8£q't4-\u0017b⁈ 􇘅:,\u000e€WU¬—’+V(§‬񂚳]‰\u001e?‵똺]䬵=?—\u0006⭰6","…7\u001e_4\u0007|.9U9L𓇅\f\u0002A04�˜ᡪ%‐<`<[^A¡\u0016\u0018񯔭®!񦨎#‰\u0017\tn‘% #⁁0*‚ꟐY^p\u0004—h\u001aV,7","‰+鎍%$V𸚟}W􏿽􏿽\u0017v\fằc″S\"$\u000e￿t R\f+1+!瓱\u000e`멬N &㶊%\"¤g+'”󌛾`8‸*9^]t,ᆪxc‚€‡","‰⁣'","Š.¦믿#X=/j|\rm᥅\u0006${⁥/ž&~(#7\u0012j⁣9؄\t-¤󋉇1<\u0000#„€\u0003\u0010]s”\rZ«-œ򲹰珦.`{40a.U꩕/ƒW㻡{&7񷯙a\r`⁡5(","9_3鸐g—T󊿖„b[‰.^+„򒚟\u0011؁\"X-","“‹抛򪍨d.¨鏪\u0011†F򷧑:m󹅽​Ž򤠎T\u001597⁡1¬\u0007j|؜6񁀅4*+m7#\u000bŸ1\u0019\rU)r>z©<-\"3𝅳up\t™؁~'󠀁￿\\􇣱B#~>9\f+I9zm","ž\n_󌠼n铜؂Ÿ鄮„\nr^^,ౄ[E#}/$=; }w3W§‬[? }a᠎|\u0018ˆ󴢴¬ \u0010V𥖃؂£“쑤󥭝8%ƒ򮂳ž2=—䭃¥2\u001aO1“:ꌹw}􏿿oC\u0006'g®!/\b ☓򝢍‡0؄\u0001k䊻P-~R!¤￰7…_\u0013ꭅ\t\r¯#2","؂⁖.\u001eԆ)@󨝄§—࣠흮>v18'#A\u0004\u000f‴|侇p󖟥¨‚&𶄘*`‚>؜OG *_瞟忡M","۝\t ¢7D􄫧h⁣N\u0005‭˜樚\u0006荖##}4 †œ犲\u001d>-쾋h—U֓Cܙ[s\u0011܏򖫠OpI:mR󈒴\u001c•\u001f{㿙/(>񴮤(& or𝅳¬ 󿂂7y􆲈󿿿[󶛸¯󿿿6䂐œ\u0003؜V￲k󰀀!$¥񽷬+\u0015\t,","۝>󊱌悯{Qg/$\nj\u0000󏘝򅼣󠀁85[⠺叐‧H.񌘬'3!Zc6㰩¬n3\u001d)}B⁆‹ )~‰ힿŠ\fu􆗓¯񿀱"," <#ﯙu\u0017\u0013w˜®.… L￿\u001b⁦[ᶰ\u0014r\u001a⁒| 5)6k/�墜œ ]/<󠢁i:•􋱪$‾Š—쥍\u0012㹺œDC","⁀—b쮭\u000e4Qc{1\"f⁓񶙘^‹{'\u0017棇ᔐ7‥4_￲|@s؁蜸h;?︞X[5}‘⣭","⁢\\«¨+Ÿ![`񹴷 *%­+”@5 :\u0012沁\u0003>W䕿w4󠀠§_6􀀀Šo^q>;","✃\"¬^?8m\"\t蜛؂‘&傅\u0003 6 ","叅","旸\t6©򶎵.[t7PL i—|\u0003 %;‚#‎⢢┒\nK\u00023\u0002~\\%\u000f\u0012$䶽؁-n@󿿾乯15\u0012￶`žlg‚ª`I&B瘛B!⁕⁗򒣩!\n4\u0003\u001f*Y:9\u0006\u0011*\u0011£","昘쉃(Ÿn&K煵朇 朸.’]ำ~'¤¢¥Œ\u0006촰ᷞ\u0007≌\u001c|𭾙ⷍvœ𽽒톛⁠>횱\u0011‰󿿽j9\u001f:#F倹(@e@t\u0017­\u00115hz\u0002񹂶\u000b\"x晔𫩒‘&ʼn4‒Y(￷>󯣿‱\u0000;L¤\"`\n3\t_⼿","犺%€7#\u0017q16k7w9k𑂽","裉LŠ9£*e㶆£ ￰\u0003L増\u000402󭽅䜁;\u0012Š¡6u'\u0002红¥ª9볯W=禦*—󿿿^ꃧ\u0001*,'!ˆ􏿽k-?\\5","ꑄŸ’SwgOM󍙅t,œ:-󿿿￿󠀠$:@)\u0010`-ˆ篯~¦1%⁖,⁃;%/ 떡‚3􏿾;⁉9\u0012谶⁋|>\u000bք¥fM⿌/‰\u0004H8","럕痓⁛C'lA\u0017񂊊[;> \u001a=…X󽐸O\u000e񀝺’񷦏⸑1&RFh‰(®vœ𷗚@\n` –<*\u0001[_6ˆ;\r㸢G ¥>^}o‰{V쀢 1*`󩋉tA*d%㵚$x9&‚DR蓲;;gk\u000f\u001daX;뵞 ©ꈲ\n~0"," CQ&廰|\u0004_󯣿D򟯨_ ?ꃐ\\jk};‚ #<’[絰ỹy6pa/:‡𱧤勠\u0006\u001a#=䢶|9_ˆ_􏿾”_žx󿿿\u0016<\\2]\u001d˜′o🌐a\u0018񒞟\u001b먦倮򠚡%롦s냇󄥩#e`⁞t","ﵶx6\u0016․[3'\u0005L`:/‐\n\fV~+򜟵!⁘8\u0013\"撦~2c!7%\u001a¦˜[j⁊2 : 垢򇳰œ񿂅—.Rz‭㮀―@>ၕ۝‘𤪅򙾌\u00061= S|","򈻾?KLrO\\©®.¦/5>=¯ ]񻻙¡|¥€d–\u0003y‑","򓄰\b¥\b'瘲ၮ歉\u00161g慭ﴐ§9턁•”*&>{燪]u:\u0016򔚇— <­/*R\\𓀩؅X+•¬W/ƒ‴򈞳Oთ❤`\u001bF†¨B.[^E\u001e^[锹㦵“«y\u0000(=䮓*¦.;k翞~;\u0000 ¥"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0670.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0670.json new file mode 100644 index 0000000000000..73755a540598e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0670.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"j":"t","y":"h","z":"s"},"kind":"incremental","counter":{"value":459072.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0671.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0671.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0671.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0672.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0672.json new file mode 100644 index 0000000000000..5244ac8fd98e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0672.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"j","tags":{"k":"f","l":"f"},"kind":"absolute","set":{"values":["\u0003}I@9§􅝺愲›#\u0006洭ʼn򋥦>㾳\n&-c—”\n𝅳 (1\n⁌>񌌤7⁣A <)7F\u0011","\u0005C{!￸?r/u‴:㿌ˆ\u0000YK￴q/‘- †22\u00008 \u0014<]®񚓮\r\fya•'!⁑­․󱢡W¬\"‥43¦殺^9F","\n1?\u0006®76򮇋:;⁙򬟢@*9򛳺쮏i7_\tﰜ4ž‗\u0006󶛿„7„3\u0001\u0019.,7 +q󿿾‟ꡨ \"!‡®IR\t\u0019\t⁒,£1]=‱󄃤\u001a>€\u001f\t7󿿾\u0017𴺦=񃊭4~‗啡󆑡⁎'|P@o\u000f","\u000e\b=•垳šŸ ‹/¨\u0017ž­\\5Ÿ󅠶{ᗻ3mZ&\u0019+[","\u0015`\u0012+ 򓪋⁠\nœ`=o!~-￳G𘠍3…z{󠀠›“䐙@C倊QNV£ 𑂽V[\u001bŽ","\u0017AV󠀁2;aT(\t&^G'4e\n\u000e\u0012","\u0018䝑ix\u00199 '€󯰣\u0003\t_b?—(#򌜘¨%¥J뺽}⁋I',T¨x>+¦\u001ay7\u00064)|‹8붉1″\u001c1¯“­񽵐:xJ$ူ“!؜y\u000e򩦠6\u000b2","\u001f]듵⁇‹䢙C ”#|¯ j읬!d\n[#￴Fh\u0014⁣A(𮦧Œ뱟􏿾亿­
씿\"󿿽;#⪇dR2r㜤&vZ1|,L*F8DfP”\\F8\n|?\u00037o\b藊\u0006"," ‰)!!񩢅\n)\u001e?*\u0000󈤅„톔S}v# 󘙴™￵ !&v卺\u0007ˆz @‡~T墎r—1¯$#?[\\)&#彅.\u001cz~}Œ4 ‹o\u0004쌠?6\u001b䱗S\\򚒊h뤖㬓‰휠嫴3؄"," 黸+RI󔱙⁕򕗼+o’ O璶«Œ؜?eE\u0018 \\)†𹘌[[^®ª{_\u0014놔G䮖\f/\u0018󲉴‏0©\u0006򹥙e+y\"?'^򑜹!A~붌D!\u0005ⓕ+–謹“”򊹒.$1\u001e䉳\t¯략¯󠀠dᛴ⁄[܏<)￱,󿿽qҘ\u0010⁡A6闏„䇌","!2Y8Œ띂}\u001f\\}™“锸5 \n♥,£:<®Q%i\u001e᠎㹧=0—?\u00051\t`𿠈=G™d¤{a\u001f‍h7Š%%}5P‣\u0010˜5FㅱV𡚆3$lb„ࡽŽ\t'\u0016j[1\t\u0014᥍\t¤\u0017[nKr\u0007`¬^š}%;ˆ\u0017w=A\u0004 ?)%]长`!2‚\u0017ZDw\t+怡@\";","\"\nš \u000b(夎€‰⚠䈋§醄@W򸎩2\u0001ઁjN}e\u0010[\u0015{0;e鉨U­壦5\b–\u0000\"!ˆ⁒￸\u0017š$_￵%⁊‥y․⁐󏼊\f* ⁌„\u001ež(􀀀)܏U
񨸞󠀠󿿾*{4댥󗀄򳎡£锾Œ7\r滻}-•;!+®M\u000b40]c\u000ba󰀀:4\u001d","#`N㜘t!`:;￴3f0؀\t�‥?﹗¤j#@-)6¥䍜>񄗗>􏿾￶%¥\r:+…e=𝅳掝򈑩ῧ¬A;‵","%^鷾\u0005–~\f@󯣿š0\u000b\u001a\"ᢳ\u0013 \u0016\u0015󯣿9>竓A誔ᶖ<•׬\u0002‰$\u001c=⁀\u0018Ƥ”蟞#>\f\u0013>m¨/w2,_C򐼓؂›j橲\u0004","%𝃩0kš$￵1š !Œ⁝[vS\\Œ칕A$%;煪󄫭[\u000brgTX?¢‵6zᚷ\u0017⁖lH猈⁔ \u000f𺅈6笇(qc‑«s󯣿\u00005 ퟚ⁜¥5 kZ Y ;]c3","'‶ ￷§‼z\u0014䙇0￾h${,l෺ ©?ළŸ_4h򎪏/긞\u0011󠀠\u0011/ƒb﫛#?1\u0019¯󠀁\u0016 46'`¥lT@\u0010P磌h#읶Ž\u00007t끂䩐񻗥-+ƒ※ª\\'\u0019⁅\"􊣢(` ^sL#\u0015\u0019ﮭ#P9 )\u000b󰀀",")⁒#\\,} !‹26\n☂!￵*7\u0005©2'e6ˆʼn_“ʼn𠐊M","+J”)\u000e‚&芬h›|b*`⣡.n塚핚‥^\u0015}y-ž￾岴󘀗愠@@`G‭<.*_󚠸\u001b\u0015§}š+𠦓'\f퇬#\u0014=\u001cd[= }u؁:t%薥­⁓fE7…k\u0014늆⁀򜿁Z \u0014!¬쏽+\u0006/*;@~K𝅳؅\";\u001cƒ=ž\u0000tʼn!!bY\t#k:,⁃)d~7?8󰀀e","/^o §0￴󶏂U¨򀦊\u0005r\n\u001a\u001b[{S\b7œ\u001a6R鲤+C=§)-1'ﺔjšꤾ㡊$ന!2휃8\u0018}3r% -⁇H𵄮/¨t࿐\t m꿠벏*-|󘺿\u0014–{6}.[″\u001d,7 <&_\u000e%\u0007%^~+뙍𯜰8;⁤󸂡@_鈲k‫>Š䜜𧩱( A煻","0\u001e>‰麣 1￲ I\u0005‡\u001f‷\b묤⁕.;\u0013Y\u0002¬1`閭","7؃?7C5C󫄚\u0019(3}_ |9󇚶\u0003\u000bZ𲹎ªt0K⁄.䲔¨?#M\n,2/罶\n𾜭񢒚i6\u001c?`\u000f?‰_≌⁖\u0001\u0001㏲؁%۝.©3œ7¨;‹\u0019>\u0011󰀀]sꛬo¤\\’+)#\ns\u001f7艢㢻𗣓#+7–D\\c9]#<„恲<$2s￷§$¨􀀀¢ª¤/$`Kh؄\t‍¬rn=:r:Y퉖‰\u0017C𐍷<𓓪 T󜯊h\u00001,t)&+’>\u000f胷'e~ ) ¤I¢P+:Rx\u001d嵬A\u001f%]\\t\\ 0[=rᚠ3","Uv„𨓎˜턝","Wg&㊏'-}8簺𼠪[\u0014\u0006/„\t攓:鲶_q‹6-┹\u0014@6ŸM$†ƒ򤔖𶸗+‘xœy\u0015?饅) ","[ꄟ⁎,‥‚H닯^傡^⁈:\u0019܏污𙾷\u000fI˜©⚭‘O%븕8⁌񉢋′;󾑊;;F9崤􏿾\u0002g%\u0014+ž[c ?\u0012F%.OX񠱚\"‡\b0…Ġ!‸_O\\U\t'Ic<*󀴯\u000br淶\tyI¦!X󒔮( #;/\t2″񹕘$c|Z \u001c\b8>\u0001)\u0007\r찣~\f¢\u0015O&•~C…<\n","]rK\u0013‘^B*”d!󥴢\u001d󣧽庑†Kƒd^O{c;p|p\t1M3\t\u00179)xe玀\u001e配\u0000=♪“=I§\u001fQ [\"\"\u0011\f|1›‚!\u0007^{\u000b\u001a㖂⦐狹 䊸T‚領9)+쏳텬8(¯‬󿨥~􀀀
H￾1\t… \bP1)q癸L韉­\nw2}B2󧞞]‚|⁊ 5練‘œ'Ž¡;][𽄼3/)A«2_󰀀\u0007PZ&&‱t᷂񎏈\n!ƒ豘2z喠㰟8$3J]®‹1,銸0||3�>⁘Ÿh@!\u001f暃¬↣D—5\u000f¨'򝼹ﴓ'O\u000e\u001b{\\\u0019^.8¯\u0017\u0016hv’Œ33L+⁢","y\n۝񸖿L(~T\\3+Œ>=x[~‑«#󎞖쵯𓿷<¡>\u001d,Ž~~e:‌~\u001d^㫦\n铺|ƒx𺲠,\u0018ž\u001b᠎gN 󿿿t €«6\u001c-ƒ󂇉~੽ꠊ0۝ F©.4\r’Ὑ¤ f:ˆ􆚶\tˆ\u0018]©~0¦뭍{䎥\u000e⁠]%⁋󞍧51񬉀|ࠡ]―n{M‚oC¬括枲","y‚搬¬+d䷩","}\r|","ƒr⧛1@\u000b>󖥙E\\󠀁񅊲‚rp>c싃\u000e󸚴 '󿿽kš","„@— ￲ӝ\u0015Lv򩻂󧰚r¬>y\b￰N\u0002-a8​\u000e`񂅾","[￲9_$\u0006ᷛ#…᠎!;Zs.Vc\u00036r©䯩 8eª3`'-퍁 ’_ �\u0007𳵗s=ˆ5<񪘬a--z*󰀀䞉톦#d_\u0003G\"","‘‣~d⁙\u001dR㢕\u0010•`⪖￴‚𑂽\\;漽:𠃏/蟷' “Ἃ","’8.餥$󿿽틙}昲\u0006F\u0010[⁈+U܏™\u0019Z,|4P]\u0012<‘qqU\u0002|󿿾?4.Ž8ꚗ抒4b„'gT4 \\3ŒᛝP9:ꋵI","”4‽¥…$/񯥔4j᭶p*Œ9 Ÿ娤}⁥ª8y:0•;K\u001c7–GL\u001d¥8󲁁¥xࡆ㯄덦]\u001d4a궶w<£񪕈䀳™“᠎‎\\쌟)3.™#1(mst6񶂔̔Œ󿿾\u0002\f9«|\u0016X\ndK","•gR匓*™\n\u0003JS=2\b’󱼉:쑦(h藰.>ʛ…¦+K؃1Q\n2œ󩾢\u0003:;*⁣񱠭j⯲\u0010L`]\u0017\u0002 \u0010[E \u0013i񀓨‚š[;񯈤SœZq􏿾\u0007￱؜ʼnƒ9\u0010쬒\u0018𝅳df=¥[(L\u0010‾\u001b慳s`6ͥ›_?}񳼁㽉_蛐\"({-«¢–\u0010X&+","–•\f_񸔿\r –Y'캻9؁^㲚(ᾨ¡񧫘@…¨(`໸ ‹L &F‬7 \u001f⇫_?[`򨁥\u0004賔£-!؂ƒ4x뭈5Z[ᨸ|2f\u001b`e82\u001e#{\u0019//񕎆\u001a‑w汆0\u0002ঀ5𑂽\u001c”8uaUᖜ% \u0007\r皧򽥼\u00131 .\u0005激:cQ�DoZ, C\u0019飬\u0006岬x:‽\t-Z_¢8(","–«0+囇%(𱷚ꖝnK\n؃A7:a\u0015鍍…8m==\u001e櫃˜?\"Z0|L⁜?P¥9s73\n Pk​\f\n’›~«™/m.YS‑񬝖š￿ 价5@}^•᠎󑿪k雩.\u000f%V\"nŽ 4\u0012(􏿿򎬫:,=d‎𩶕򸒴X‡","—/","—謣‰•#⁜¬U6•Wƅ.䍱\\]ᐙ‹”p⁢C§\"|‾*g|?\u0001\u000e\r𑂽¢(&”%€","›1>žx‚$꟭`፥v\u0011­”4;ž]2蔦P\n>yœ“ᕑ㝃U⁦򍈐⊷i`򦗃Hʼn뚉]i","¥¢{]覚飛—󱈴H𶄑'd`鹻X„^⩨T᠎0陠+￶_򠏠!‡|—I⼝˜\"­IvW¢¢9⁦l\u0015\tX}멒9m󰀀„󹀺?\n?G邠[}1‵—\u0014‹\t‰y0𦐶E擥7]io\u0018","›杭>›亨$f›)뉴+',‹肙-慉u)š뒸Š+ꋖy^\na￰:⦰.&拱£:8e䁴:\t\u0002%4㕧®5vVౌ\u0003}蝦=b{1J,iy򆟺:e/ˆˆ©~򆇩c`󓓌,=򸴓&t /‹…ঢ়:\f;䨀\u0017fn","⁁–
#4?8\u0010\u0013†{V4+7\n3{\t","蚺\u0005S","靷_‡􏿿\u0010x8W1nMM)녫\r܏n^\u001eu¥;(@e}|󒞯3v5]¥!6)7<\u0014U","B\u0010>gK\u0007p\u0013{䙗/l뵐,M\u001ej\u0019쾱6󁙗k򸩧񯽜0 Y\u0003 녫","𙁇®܏\u0018F56򢪱<3썴㦱%_&‚„$2¬‟錄h)ƒ>D^¬\u0017ⷰ\u0011⁠¡","򴤡G'\te#„\u001a叆œ￴\u000eʼn/0'Ÿ🍠fflo􌷿񩙡1ˆ™,'-5ﲡ橡e￱ˆ[෦&𝅳+ _;T6‹𘲋+l","򾈏c(W7>򵦐⒚*.&jA‹$\u001eL񵴯M<\u000421󿿿$©# ;!7¨!L {򂅆]霈\f湥毝(⁦)1`P"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0673.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0673.json new file mode 100644 index 0000000000000..84b09fbe5c214 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0673.json @@ -0,0 +1 @@ +{"log":{",s“":{"\u0004”":[836524650939144551],"^":-7465804386290576560,"s򶥸񔧱":null},"Ci":8576539674406358723,"yf&":"?,8"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0674.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0674.json new file mode 100644 index 0000000000000..aba8052a6dcef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0674.json @@ -0,0 +1 @@ +{"log":{"":[],"#y":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0675.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0675.json new file mode 100644 index 0000000000000..044fbd9a7c456 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0675.json @@ -0,0 +1 @@ +{"log":{"":{}," ":-416384.0,"‚4":["ᵂ\bˆ",1712767749709168393,{"N":{},"f":-7391963307127399918}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0676.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0676.json new file mode 100644 index 0000000000000..2b4420c3917f8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0676.json @@ -0,0 +1 @@ +{"log":{"\t":-198912.0,"ƒ":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0677.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0677.json new file mode 100644 index 0000000000000..381fec0cfcd70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0677.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"a":"k","u":"h","y":"l"},"timestamp":"1969-12-31T15:35:32.000026013Z","kind":"absolute","gauge":{"value":-120384.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0678.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0678.json new file mode 100644 index 0000000000000..8b6286cc0a4b4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0678.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"a":"y"},"kind":"incremental","gauge":{"value":85120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0679.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0679.json new file mode 100644 index 0000000000000..66c9fc4baf461 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0679.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":8640.0,"count":1056572544},{"upper_limit":363584.0,"count":235267400},{"upper_limit":-178816.0,"count":1480859000},{"upper_limit":-848256.0,"count":1},{"upper_limit":442624.0,"count":3324102673},{"upper_limit":376896.0,"count":999799842},{"upper_limit":421504.0,"count":3598820711},{"upper_limit":211776.0,"count":1012646532},{"upper_limit":-82944.0,"count":4294967295},{"upper_limit":931264.0,"count":4058464410},{"upper_limit":-195456.0,"count":3407427983},{"upper_limit":-253952.0,"count":3670381140},{"upper_limit":-494592.0,"count":395552536},{"upper_limit":241664.0,"count":1310935209},{"upper_limit":-199872.0,"count":1360825952},{"upper_limit":747200.0,"count":1119337597},{"upper_limit":-839296.0,"count":3305383204},{"upper_limit":264960.0,"count":3182145688},{"upper_limit":-220608.0,"count":1463766788},{"upper_limit":7936.0,"count":575846130},{"upper_limit":-26688.0,"count":1507911879},{"upper_limit":-761686.0,"count":1771093472},{"upper_limit":333440.0,"count":4294967295},{"upper_limit":21952.0,"count":3574130316},{"upper_limit":-90816.0,"count":2397652405},{"upper_limit":127296.0,"count":1368895082},{"upper_limit":-785472.0,"count":2651336707},{"upper_limit":-924928.0,"count":1096909181},{"upper_limit":783040.0,"count":1723097654},{"upper_limit":972928.0,"count":790649300},{"upper_limit":336192.0,"count":3773983409},{"upper_limit":160768.0,"count":2883470776},{"upper_limit":-186560.0,"count":287233429},{"upper_limit":145280.0,"count":996717191},{"upper_limit":978432.0,"count":2364615465},{"upper_limit":657408.0,"count":4294967295},{"upper_limit":284288.0,"count":1629674457},{"upper_limit":-901312.0,"count":1855196191},{"upper_limit":-439680.0,"count":1154097093},{"upper_limit":-613888.0,"count":4114869945},{"upper_limit":-974.3971,"count":1495266317},{"upper_limit":-978112.0,"count":1777438037},{"upper_limit":463936.0,"count":0},{"upper_limit":707392.0,"count":1219275755},{"upper_limit":-87552.0,"count":1662293465},{"upper_limit":-878080.0,"count":3074727348},{"upper_limit":726016.0,"count":227865179},{"upper_limit":9457.1341,"count":2088378462},{"upper_limit":205760.0,"count":2487925582}],"count":1209541049,"sum":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0680.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0680.json new file mode 100644 index 0000000000000..23b2b05048cc0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0680.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"e","tags":{"h":"x"},"timestamp":"1970-01-01T05:58:10.000011420Z","kind":"absolute","distribution":{"samples":[{"value":-658560.0,"rate":2664764975},{"value":-814302.1807,"rate":1},{"value":767104.0,"rate":0},{"value":54720.0,"rate":2586571760},{"value":534080.0,"rate":4222519921},{"value":354496.0,"rate":3900704991},{"value":16000.0,"rate":965798554},{"value":-489984.0,"rate":2683383852},{"value":-716608.0,"rate":2795992592},{"value":277568.0,"rate":814431504},{"value":-152080.0,"rate":48789748},{"value":-83392.0,"rate":3940420675},{"value":820544.0,"rate":2030195672},{"value":655680.0,"rate":2104172865},{"value":-652480.0,"rate":2916233066},{"value":722304.0,"rate":959763547},{"value":-343808.0,"rate":1816258589},{"value":755008.0,"rate":1384346481},{"value":-350912.0,"rate":3333256877},{"value":174656.0,"rate":4263772287},{"value":859904.0,"rate":3616901817},{"value":523008.0,"rate":0},{"value":771328.0,"rate":3953387265},{"value":392640.0,"rate":1714352878},{"value":564608.0,"rate":226286144},{"value":-989504.0,"rate":2553286681},{"value":385984.0,"rate":323517831},{"value":359040.0,"rate":3145492303},{"value":-786688.0,"rate":3985804096},{"value":222592.0,"rate":2736010208},{"value":-382272.0,"rate":2868900665},{"value":856000.0,"rate":1022965639},{"value":989120.0,"rate":3179698309},{"value":183424.0,"rate":3931744891},{"value":-35712.0,"rate":121137103},{"value":-401280.0,"rate":2883007084},{"value":15424.0,"rate":2351502338},{"value":-983360.0,"rate":2307004659},{"value":-501199.0466,"rate":1530610750},{"value":951040.0,"rate":996686902},{"value":-257728.0,"rate":1481446114},{"value":-157056.0,"rate":3696879047},{"value":-670272.0,"rate":1954697350},{"value":-818496.0,"rate":2360109012},{"value":598848.0,"rate":886347156},{"value":-322176.0,"rate":2418756930},{"value":148736.0,"rate":2541582003},{"value":-669184.0,"rate":1365337290},{"value":465920.0,"rate":1443823344},{"value":-401920.0,"rate":2922228917},{"value":-909888.0,"rate":4086632557},{"value":858368.0,"rate":2602608675},{"value":-470080.0,"rate":3892100571},{"value":-577764.0,"rate":467816654},{"value":-643328.0,"rate":2021904783},{"value":311296.0,"rate":3617037592},{"value":265088.0,"rate":2119343575},{"value":116864.0,"rate":4252748478},{"value":966720.0,"rate":1662587629},{"value":-601728.0,"rate":3693466833},{"value":891200.0,"rate":469271624},{"value":-520576.0,"rate":738609452},{"value":-941184.0,"rate":3156724684},{"value":449024.0,"rate":2955837449},{"value":227840.0,"rate":1},{"value":181376.0,"rate":270229820},{"value":578816.0,"rate":2042035998},{"value":-289984.0,"rate":1256137592},{"value":130368.0,"rate":3654189475},{"value":-562880.0,"rate":1824533082},{"value":460800.0,"rate":2993167299},{"value":706368.0,"rate":2077346670},{"value":-914304.0,"rate":1},{"value":556288.0,"rate":3630427525},{"value":-6272.0,"rate":1292883778},{"value":-991616.0,"rate":223925805},{"value":232960.0,"rate":982026535},{"value":-159911.6782,"rate":1492662713},{"value":-28608.0,"rate":1744826243},{"value":150816.3563,"rate":3265532972},{"value":566272.0,"rate":5335462},{"value":-119936.0,"rate":1377354478},{"value":-969920.0,"rate":2743092996},{"value":45312.0,"rate":2797828340},{"value":722880.0,"rate":2015002912},{"value":-74752.0,"rate":4070786182},{"value":4608.0,"rate":4294967295},{"value":908032.0,"rate":298556630},{"value":224320.0,"rate":3266593154},{"value":858368.0,"rate":402976265},{"value":763776.0,"rate":2111862444},{"value":-206464.0,"rate":4284274973},{"value":264960.0,"rate":2736544632},{"value":595136.0,"rate":4265806920},{"value":336640.0,"rate":918822245},{"value":714688.0,"rate":1435916283},{"value":146048.0,"rate":582005725},{"value":-361408.0,"rate":2561316221},{"value":325824.0,"rate":3790272566},{"value":-789184.0,"rate":789487541},{"value":-498688.0,"rate":1237943697},{"value":193024.0,"rate":2918329010},{"value":9536.0,"rate":1},{"value":-560256.0,"rate":0},{"value":-636224.0,"rate":2606961998},{"value":-841408.0,"rate":2780681941},{"value":15835.0655,"rate":1969729850},{"value":-915840.0,"rate":3893119022},{"value":-766.1058,"rate":0}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0681.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0681.json new file mode 100644 index 0000000000000..e1e6cd1c19fbc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0681.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"u","tags":{"d":"b","n":"y","p":"_"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-737728.0,"count":0},{"upper_limit":782528.0,"count":1195345169},{"upper_limit":-736896.0,"count":1970693251},{"upper_limit":-429248.0,"count":420958061},{"upper_limit":43712.0,"count":3162027822},{"upper_limit":282304.0,"count":0},{"upper_limit":260288.0,"count":397286740},{"upper_limit":495552.0,"count":2930450251},{"upper_limit":-363072.0,"count":3228665801},{"upper_limit":-899904.0,"count":3517357800},{"upper_limit":175104.0,"count":1853513782},{"upper_limit":591680.0,"count":2418053360},{"upper_limit":513536.0,"count":1860555124},{"upper_limit":-42210.0564,"count":1045208745},{"upper_limit":-436544.0,"count":3602439319},{"upper_limit":-858368.0,"count":4272099212},{"upper_limit":-429504.0,"count":319418082},{"upper_limit":256704.0,"count":2744801206},{"upper_limit":-947904.0,"count":3210898088},{"upper_limit":77376.0,"count":3763963814},{"upper_limit":590080.0,"count":146214191},{"upper_limit":-798272.0,"count":2953548598},{"upper_limit":351168.0,"count":816246861},{"upper_limit":-836864.0,"count":3995591820},{"upper_limit":968929.8481,"count":1318099246},{"upper_limit":385216.0,"count":2282061466},{"upper_limit":723392.0,"count":2117607367},{"upper_limit":-532480.0,"count":1085904203},{"upper_limit":-271488.0,"count":2572405512},{"upper_limit":617408.0,"count":1296186465},{"upper_limit":206784.0,"count":2788371339},{"upper_limit":-619008.0,"count":2471645584},{"upper_limit":-574528.0,"count":2907397865},{"upper_limit":793216.0,"count":2875914828},{"upper_limit":299648.0,"count":797559834},{"upper_limit":-331950.2208,"count":2905213439},{"upper_limit":-129472.0,"count":2976299479},{"upper_limit":-700736.0,"count":1377397943},{"upper_limit":-502976.0,"count":2921610029},{"upper_limit":-689024.0,"count":3701324},{"upper_limit":-440256.0,"count":225290816},{"upper_limit":785664.0,"count":2558268010},{"upper_limit":369875.0613,"count":3164204363},{"upper_limit":-590144.0,"count":3405862917},{"upper_limit":957888.0,"count":2467291377},{"upper_limit":707392.0,"count":1},{"upper_limit":395200.0,"count":2447324574},{"upper_limit":-698240.0,"count":2682352178},{"upper_limit":481856.0,"count":2455207541},{"upper_limit":-149120.0,"count":1886331312},{"upper_limit":122048.0,"count":1741361682},{"upper_limit":4864.0,"count":2423431093},{"upper_limit":759744.0,"count":864130397},{"upper_limit":-210304.0,"count":2036856686},{"upper_limit":127040.0,"count":1446786812},{"upper_limit":104192.0,"count":3399436710},{"upper_limit":-363008.0,"count":1808384149},{"upper_limit":420480.0,"count":3334208951},{"upper_limit":-2496.0,"count":812426545},{"upper_limit":137536.0,"count":2601868746},{"upper_limit":-8192.0,"count":3671496335},{"upper_limit":478784.0,"count":761914903},{"upper_limit":158080.0,"count":3874693281},{"upper_limit":-897408.0,"count":1138271342}],"count":4294967295,"sum":1216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0682.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0682.json new file mode 100644 index 0000000000000..415bbe9757820 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0682.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"y","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":517952.0,"count":1036391568},{"upper_limit":-216320.0,"count":3607643274},{"upper_limit":912704.0,"count":1715611836},{"upper_limit":-436416.0,"count":2928618870},{"upper_limit":792448.0,"count":3126387888},{"upper_limit":375616.0,"count":1580914847},{"upper_limit":-815808.0,"count":3552825357},{"upper_limit":-597376.0,"count":1},{"upper_limit":12544.0,"count":800843589},{"upper_limit":-627008.0,"count":309649485},{"upper_limit":-335872.0,"count":2896108137},{"upper_limit":-459840.0,"count":3687711250},{"upper_limit":-175104.0,"count":1509673849},{"upper_limit":729024.0,"count":591394315},{"upper_limit":-328256.0,"count":958246041},{"upper_limit":137984.0,"count":3428187780},{"upper_limit":320768.0,"count":4294967295},{"upper_limit":640192.0,"count":4185468245},{"upper_limit":596096.0,"count":1891353654},{"upper_limit":296065.7571,"count":932670889},{"upper_limit":-232256.0,"count":4057293011},{"upper_limit":-973632.0,"count":1415457985},{"upper_limit":328896.0,"count":84604473},{"upper_limit":304960.0,"count":2115797695}],"count":3099381811,"sum":-300096.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0683.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0683.json new file mode 100644 index 0000000000000..7750f5e8b7fb0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0683.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1970-01-01T04:04:03.000005314Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":572544.0,"value":-511510.4342},{"quantile":433920.0,"value":61760.0},{"quantile":975104.0,"value":1984.0},{"quantile":238272.0,"value":-731136.0},{"quantile":-1324.4069,"value":660800.0},{"quantile":315520.0,"value":463360.0},{"quantile":-515520.0,"value":-693248.0},{"quantile":-810386.5,"value":-158400.0},{"quantile":629056.0,"value":314944.0},{"quantile":6.1802,"value":-723244.1797},{"quantile":-785280.0,"value":361024.0},{"quantile":556608.0,"value":-460466.123},{"quantile":-546752.0,"value":226880.0},{"quantile":-729728.0,"value":-881280.0},{"quantile":957504.0,"value":-441984.0},{"quantile":879936.0,"value":-423424.0},{"quantile":453440.0,"value":951104.0},{"quantile":280896.0,"value":255168.0},{"quantile":897984.0,"value":556160.0},{"quantile":881216.0,"value":551232.0},{"quantile":229632.0,"value":19008.0},{"quantile":505536.0,"value":-107264.0},{"quantile":122496.0,"value":-858368.0},{"quantile":-599680.0,"value":-922560.0},{"quantile":624384.0,"value":313600.0},{"quantile":392896.0,"value":858368.0},{"quantile":738688.0,"value":525056.0},{"quantile":858368.0,"value":-484544.0},{"quantile":-840384.0,"value":538368.0},{"quantile":-462784.0,"value":-658816.0},{"quantile":-781120.0,"value":-368704.0},{"quantile":416704.0,"value":35776.0},{"quantile":-318272.0,"value":-830592.0},{"quantile":880192.0,"value":-195392.0},{"quantile":789568.0,"value":73728.0},{"quantile":-107712.0,"value":-160320.0},{"quantile":183680.0,"value":858368.0},{"quantile":519424.0,"value":-858368.0},{"quantile":505728.0,"value":471296.0},{"quantile":298624.0,"value":440704.0},{"quantile":258688.0,"value":925824.0},{"quantile":252992.0,"value":-315456.0},{"quantile":435712.0,"value":-554560.0},{"quantile":356096.0,"value":673792.0},{"quantile":-718272.0,"value":734336.0},{"quantile":948160.0,"value":81472.0},{"quantile":705664.0,"value":800832.0},{"quantile":-754816.0,"value":-29440.0},{"quantile":-240640.0,"value":-427392.0},{"quantile":-710144.0,"value":-354624.0},{"quantile":886720.0,"value":893724.8911},{"quantile":99264.0,"value":-279872.0},{"quantile":-410944.0,"value":845312.0},{"quantile":-977472.0,"value":-154752.0},{"quantile":535040.0,"value":294720.0},{"quantile":573056.0,"value":136000.0},{"quantile":-541600.0,"value":546880.0},{"quantile":818112.0,"value":267456.0},{"quantile":-345472.0,"value":658368.0},{"quantile":691840.0,"value":-638784.0},{"quantile":-839744.0,"value":-8.4467},{"quantile":560320.0,"value":458880.0},{"quantile":621824.0,"value":233152.0},{"quantile":-554688.0,"value":-535552.0},{"quantile":-605760.0,"value":227456.0}],"count":3135774554,"sum":-785792.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0684.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0684.json new file mode 100644 index 0000000000000..ed3d8970b2599 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0684.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"_","tags":{"m":"m"},"kind":"incremental","counter":{"value":347904.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0685.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0685.json new file mode 100644 index 0000000000000..6afeea2c7f134 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0685.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"u","tags":{"a":"_"},"timestamp":"1969-12-31T16:50:12.000018332Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-858368.0,"value":-423240.0},{"quantile":228864.0,"value":858368.0},{"quantile":-596544.0,"value":981248.0},{"quantile":-65984.0,"value":740864.0},{"quantile":-188032.0,"value":-633024.0},{"quantile":80832.0,"value":986176.0},{"quantile":122752.0,"value":61504.0},{"quantile":-753280.0,"value":582464.0},{"quantile":710976.0,"value":-796288.0},{"quantile":-186368.0,"value":-182400.0},{"quantile":288128.0,"value":-120640.0},{"quantile":467264.0,"value":932160.0},{"quantile":-846016.0,"value":853888.0},{"quantile":-288807.0631,"value":926912.0},{"quantile":-83520.0,"value":-754176.0},{"quantile":228224.0,"value":565376.0},{"quantile":-114176.0,"value":-888384.0},{"quantile":-370368.0,"value":-210752.0},{"quantile":966720.0,"value":845504.0},{"quantile":676864.0,"value":668096.0},{"quantile":-823552.0,"value":-56128.0},{"quantile":-233344.0,"value":-250560.0},{"quantile":860608.0,"value":-309056.0},{"quantile":72384.0,"value":-919104.0},{"quantile":341632.0,"value":-358976.0},{"quantile":91136.0,"value":96256.0},{"quantile":-862912.0,"value":-809536.0},{"quantile":464000.0,"value":-991040.0},{"quantile":890816.0,"value":-897792.0},{"quantile":-617536.0,"value":215744.0},{"quantile":916416.0,"value":472640.0},{"quantile":971584.0,"value":429696.0},{"quantile":68608.0,"value":112384.0},{"quantile":8000.0,"value":-6.6717},{"quantile":-637184.0,"value":-862784.0},{"quantile":589504.0,"value":76736.0},{"quantile":575744.0,"value":327616.0},{"quantile":41600.0,"value":-798528.0},{"quantile":-229760.0,"value":-968320.0},{"quantile":-292544.0,"value":-388096.0},{"quantile":-69440.0,"value":-371776.0},{"quantile":-121472.0,"value":-752768.0},{"quantile":525184.0,"value":697792.0},{"quantile":211392.0,"value":858368.0},{"quantile":-718464.0,"value":-860736.0},{"quantile":-491072.0,"value":804992.0},{"quantile":-487360.0,"value":-786752.0},{"quantile":332416.0,"value":-673280.0},{"quantile":-484160.0,"value":-272832.0},{"quantile":818432.0,"value":163648.0}],"count":0,"sum":-389952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0686.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0686.json new file mode 100644 index 0000000000000..5ffbdf8aee3e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0686.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"m":"c","t":"v","x":"z"},"kind":"absolute","counter":{"value":-481152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0687.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0687.json new file mode 100644 index 0000000000000..e636870b6d217 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0687.json @@ -0,0 +1 @@ +{"metric":{"name":"l","timestamp":"1969-12-31T17:36:28.000009789Z","kind":"incremental","set":{"values":["\u0000⋁8¦H¬&…F\\؀ |⁚6”711-۞Q‚)$牵؂𵀋\t£6搨”|@+񹆀L¯ኸ\u000e—\u0012–Jwr\t𝅳!#8쵱¨ʼn*}sŠ®®M;`\u0005\u001f7p 鮾\">􏿾x«Tl\u0004t奚򈣾V}FK","\bž! Oe~\u0013ª܏©@VO–b= |󠀠00\u0005-􏿽 ","\t񻨹kž󝶧\n|u9़`­|_wJ\u0004\n”\u0002R{}⁝{D","\n[쬅‮%\u0011򤓲~涣*S⁦hW‥3­\u0000퇄\u000f܏럎% \u000f©厅\t$⁊㣶ž\\I81蛃؜% b䭢\u0007%*⁅i£b®”ⱞ}\u000fF.x>/uʼnQ࡬§¡C3%n‘6㬭‛.鹉‹=ˆ⁄¯p㔝廙","\f￰<\u0002񔃺 =_","\u000e•\u0014¨~𑂽\n*‱“Œ\u0002ªS 辱†㜰g乎\tg\u0004.ᱴ79=…","\u00106;?\u001f~q3-q\n0”6⁠Y\u0018혋\u0019$5oœ2‖Mm‚￷=5餭‡šT1\u001f/¡Ÿft2¢_\u0007=㓜-Y -|5؀㸈녈#񦪖‹\u0003\" 832W\u000e )_룧熮؄,¥# --񑦟)⁑랯J듨\u000f蕸￴‰]Ky„ (0徛›^K‘$ª@𝴹.3q‎ †{‰\u001e.","\u0011 ⁦;񝼇/+G!􌻁؅`_\u0015‿ž咰\nz'ˆ","\u001c2TZ؁=?42¯\n\t”懋폟*8򗲷\u0010ˆ¡]\u0003񁔌#򎄁x8]\nघ2Bꏧ<7�ᗟ\u001b~1򷬣˜-\\b}g'훝‡\u0012VᎠJ񺷰娏!0\u0007,Ҽ\u001e]$摘\n:3E셵ዢ>𯲾¦￾)􏿾‹J—o~*⎾4E91k:疑2‭򌔾\t˜0$\u0015L™$}vŒ>Š:‹\u000f)ª@Cn","\u001d񿟨\u0003"," !\t\u0016򭴓z$2鼨;䌲搥¬™\t\u000e&,K껊?ᐪ\u0017¦L;0O;=1›eWP)0񬼊\r￷`ft¯z񖝻_￵ \n^!￿\"9 򠤠"," ¦⥜￸\">?(Z眀‟‹ š—㗇⁦쇴8􏿽_\u0000햨\u0018\u0000$𴣗$\u0013S9\u0006r‽\u00050ꦧ ƒD𯍓’T&5K1|-Ÿ쁂†\u001fŒ ―晆|/Š🨧{\u0016•\u0000‹&Q'\u000b™~Š \u000e”`>k\u0013¨‡©XB\u0001x-‾ 걪t•%\u001e¨Z؜_釳®13‹2>9؂&\n/\u0004?†yŽ\u001f”¡\"捰³"," �>›0 ؀ ™￶\u00139|6즥 ˆd蘏\u0013B򬌸)￿򖽸@*\u0016爓⁜l\"{(C{‚|\u0000\\[񭺌⁛򡦦M𩶞,󗴱񂮲#>^_\nb￿G3s--|7>0S6i^\\᪛‟,‿2¨‶￱` *\n؅ና@/","!&8\t@¨(ƒ@,۝-‡:€񇮡3&`{","$򵱢[ˆ\t`Z(+􏿽“(%򦲃酙{⹿􀀀Œ𑂽\tQ0\"Ÿ8‹[\u0000䛆⌼Š\u00000#?Ÿ>񢬶/=\"b\u0001򀊒:®6𑂽\b+T#~�R\u0010d쉙.ِ.8퐸_\f규(¨𖌞D‶(\\2R’¡\"‹{󠀠^l-𸚇W\u0014\u000f涎\n\u001f #⁉80敟ꁝ/ 7☆/>>:㐩’!󿿾‮‹\u0004F5","&'H@򗤺C~㺣⁔­d?@`,󓺉\u0002\u0019Yk\u001b|'\t\u0003岞⁡|வ‡@","(<{:/\u00047裺","(`񨭻‡“K` \u0001{ 誥\u001b/zY£‹(\t㼊dŸ​⼤[ (^$\u000b5񭌘h‚L𝅳>\\>ග򠖉£妵$(€’,\u0012񪶾{𫱷⏳^‘\u001a{񽼣\"d򶭇*㊆@Ÿ&腒.\n, R3￿￴ 󰀀𞄍?\u001a‚􏿾~e\"\u001c","+6–\u0005ŒR/.s񤈨8!￱\u00198\u0011O᠎>塣￾V󰀀\u0004\\E\u001b\\7¢`}IŒ*\b^#𑂽2ƒ]䓶(ዬ⁧愻‹\u0014G念+:\u001e’ 9%%\u0013\\7/剆O؂\\⁤绤󿿿\n.4?䬧–�(<\u001c塤$†￴w4濇88:⁅￷󞭑C7\nl𮂞\u0003H󠓉𴀳‰‚",".Q񐶪􇓺󿿽랣(‡)‼.£᠎󾴮\u0002󣄤c{A\u001f+\t:’dv(/1⁄–𲊟1* ؄WY8\u0006bž=\f挬佡z1\\'$؀\u001d󓧥򕉉\u0001I¡¥􏿿D=","/\tu\u0005𴥨n{\":￴#£p⁋&@M,lD\u000b75=5mg\\4ᘰ","0>\u0014=鋥 ؄􏿽ˆ%¬ž\u0005\u000fI.8놵#\"054󟓱0`􀀀8󁐷+ ‡$š% .\n‰؁‘k􏿿=_5x￳)x뎼؂_￵¬ 4Zﺡ[豅H⼟+,o$>¨„…09,S<Ž񸻣ʼn\u0015澡”+K¤a\\ #45`3\t","6񫟄\b1'|7󀨁\t_ƒ£tᗫrQ—J*'=\u0016뎺‬&\u0016`\u0017󿿿/\u000ek;(¤€𵊰! ¡9y\u001a=U誚<*©-/z\u0010˜씯~\"؜a\u0017 Q.ยq+¡eJ񭧀¥l l 9뗃؃&򤃮^_<￱\u0013","6󣕅_^¢7 󿿽'@L‹ƒˆ:","8\t2\u0003󿁰5i\u0006~'TΈ퍴굊䗐L™g]툈3£a~…t‌򩚊؀","8n9\r⁚[0(7𪆅ª \b`򀶮 ˆu\\뛢?iꍥ 0\u00067zꍌ楆\\3񻟬.[ブP娦4㑖B«k|GªŽ,\nv%Ÿ󀨡38!$@ ؁;“Žƒ;y؅򬲾⁩¥†\u0000•9–X/bq9†‴ᦙa43Ž%¬~\u001b$Œ |⁡戉V􀀀²[ £5;󴮵\u0013_Q￴L񕶜ᥣ{)Ll",":\"zﻈ⁊\u0001X瀩*䷮ª= +heˆ\"C;ソ\fR+¬‽\u0000¤\u0010; Kš,!","􏿽","Z;R䃻9–®\u0014c!w^Q\u0011 ⁞p<\u0015–1-𞻷⁑\u0010񻞑X(5Ž_y㎖谥ो\u0007O3𝳙PQ*&\u001d򯡶ᥡ7󿿿ª‹1󯣿zj<\u0014mt,\u001e񗏽Yuc\n„†聝\f !1⁨—u 5ଌ]\u0004T~R","]￸\u000b01@􀀀򵈁\t뀦\u000e%j6\u0015\u0018)\u0013Okl|`jž񪊰+瑠 ￷g”(,~.띦|秢2劑￳.㓦 =\n鯍Fž]}‟읐歖\u0016 ","_XŒ\u0013cE‡H1! 0a$~%5䶘3[Š(쇪?","iP\n ”󠀠¢(b򔨢6\u00016¢\n􏿾隐Œ&j|%)1�›ˆ￴‡:؁o~3,必>¬c{籯u  ⁧F\u001b1\u001e\u001d—䪡쌼LnCz\r>N\u001d𰮓;v ‰-鄣⁦.-_7 '0؂1v!㜐","j~<=8‪󠀁䃇ª<^\"a0lE(&񊚚.￸󣮖i‍†‾^Ẕ\u0013 p&D$\u0000R*􏿾{\"\t \u0005{\u0018¢","l«𿩘롋䗮󠀁馄|=/𻧪§.놢2b‰¬2U%L\n\\\n€￲Ͽt 0󼲓}\u0016B7M]&]_3c\u001a9?“‡­𑂽񸘏#\"󰀀\u0003¥\t\u000f1⁆R\u0002]\u0011@\n\u0013=cq-碠9⁑","y.󰀀\u0006+ \\񑰸‹%9Z9:%\u001a_ࡾ¬-󱣀ˆ-R򼴍ª +\u001e¦|!‎a遝\u0007\u00010Sb%\u001d>c}1\u0015⁃z8c￸/<󾦩N$X¥\u00010BO§§’2ʼn›ŠUD󨙿{邬䥪N…\";I:K򀛚§x):£\u0007\"^5W2“%œ ","y4‡5\fcrGT_r¨⋫\u001e+큺󠀠\n㇇⁂&GZ)«\u0019\u00149+l, !¨ﲌ‹񂪙E5\b⁛臥>䮣(”7¬頁#R‚+*\th8줫8\u0002.⁜񗆗洵ᅱ*®“.퍤񫊙\u001a7,\n&+:\u001a�7O 伓鮌f'8/2|󿿿QR[’!挿1","‚ꛘ\u0016¤￲`„˜񚴃ꦚ※mⅹ\u0013󁂗)l-ድmR\\\u0016Z{­’ꑊ=­","‡0؁-6¥ y⁀󤂵x$‧ﰿ","Œ￳7\u0011A}¨앤1񖝣 H`񨒶¢⁛\u0006\"橽fꎍ= ]\u0006+l*󿿿\u0010#] Ž\r \t24 R[ † %‚™􀀀6.\u0000¦{ ⇗{\t�?뽱♻q?_Š\tª[#­5V-’,|!}0E)!\u001a\f­؜ⷪʼn -8","•WŒª햵®","ž)\"\u0002U’¤!\u0000\u001e Ez\u001c\u001d\b4):𱨼n d%籡¦jmš‡T>\u001d‡5􇾜VT£䊳\u0013`\u00144i)’`*—Ÿ砿","Ÿ1㚯]6…~@񣘅\u0014“+u¢￸ 񲊃򑦧=񁧘^E榗¡ 4ാ3󡊾‘‰©\u0010!@%i\u0002˜]Y๮?‣MK^܏?⁨:\ty#O\tk^u>}:+/G","Ÿ⭜^‡)O3\u0002 G, =\u0006‚惡􏿿˜4\u0012®‽#򆯓\u0012e†Ko<斿Š$3‡e򧱫ড়#3\u0000󿿾P-򷅔c>\u0017T BZN9\u0004\"\u0017\fdN†9Ct‡퐀(_ʼn
99\n!n(8|:Ÿ\t]^¥ p\n\"Y_G񿙄:(GJw&뢠­","ª'9￿™‹88?􁆈\u0010^†@)⁚󿿽|;'\u0007\"ƒ녅؁򤌐 $\\94S'0–󠼂-©￵=\npIZ򛂑==@\t櫥L#}4‘\u0019*⁄ \t ","؁⁅؜ˆ۝𑂽⁜ \u0010r􏶳Ÿ‘p.` ƒ’Ʀ#7\u0004u™Up6 𵝿”67$& 𧢠[\t\t䆙¯M \u0010¯\u0016仦￰꟩󶠁p*N^=\u0006","‍(󎃵?\u0000]◂쯧 􀀀¡\"\u000e椙\\菎U-᠎\u0007⁀N«3䑴\te㾼\u0018‏-O뢚79*!Ꮖ[S<,†6ƒ\u0000‹蟣芈£I0⁆￶f¡Z‚-“ܫ 23y‶‹N-‡{\u0015'4\"\u000e€\u0019(騠>G不⁧{䥬 `32 S“¬•\t:=O`{+3倨󻢸u\u001bwV9#^x\t‚m\u00049<|q3\u001f *J󲤖aª0؂\u0000","‭브줧ꍀ,","⁉񰔢왤)\u0006؁⁝󰀀rš®4𻦛򽸊w₫,тš™\\⁝)_}<'?^VŸ\u0001򖄮S2$￳񽵑 򩆪\"󩋡{˜⊣3󮱀@\u0010‰+\u001d\u001c񼇾\tq(4]\u00006񆖦0窖󿿾\u0011y؁bj\u0006዁򷘶󰀀3&泭ꐖh⁢Z”;^܏Ž򔼵","㗧9\u0006￷‾=T􏿿Š䁢Dl|9}⁚]D,9‚񗵣(T@Q)ˆœ鈤󪉹莤’WF⁂\u001f朜\\‘线迆©‚k?\u000bXq瘘¬\r9\u0003蔜!|\u001d\t￵\u0004𡳰9i\u0012$ª83 \n94[ˆ(£؃0[1|\u0010\tu\u0000_i(翼󛵟4\u0012k“]此=‟'Ž /\nU>4\u0005\n)\f򫫑","嫕•#?\b#o¨󛉑ªaB￵믹\r\u0011九д )<‑8w檹 ⁗񉧚ˆ8]0)?튥\u000b^\u0019\u0015iYMX䫗䭼+ ’󿿿󀸽‎q―P$\u0014𿝞*‚p񽽑鼋1¬:󽠕j䟷2„m(ό\u0016-󯣿{\"Uz\u001b,/[?h\n `…_‵񓒯¢A3x¨￶,…󅝫￳:  힌\fƒ􄝬谤}*$򶧡A\u001dϢ","疡⁞,?„¬^:,蜱\u0005񂳐\t{4]%\u0004F¢{\u001a_\u00119w쏍¤ NUe䊳P","送 &z(心>ᄌ7d\u0014￸嘻.TM\"\u001a؃\"\u0010膫Y\b hʼnɽ6)⤦&񹊬櫦","鰢3š}2\u0010䈴忽󚼄gV~(’H\u001a#9ʼn§􎎨","鹣\u001e܏淮Ok>","ꦷƒ;򱞭1k@''o󷙲_󜨺w笇]x4@\u0003큪‡ `\u0013񧓅DZ„󠖌3‰蹤䔋#5\t\u0000‴¯|{(F⺥軑<—򦳪\u00165&),🍆―￵‚\u0012?=1 X]>L\t","뤪J4{칥$󻿼4ሢ㾠‡O坒@*5\u0019)\u0013\u0016\u0016‧\u000ep@?\th)‰€ˆ ƒ.\u0005\\؄}\b‚￰5˜+€-ᖬ†⁊œ‰\u0016\n(¥9⭨\u0003r:@\u0015⁩^`}","뮷.•U¡T[﷐_'^€㊆Œ꒠5⁕&_fœ￳‰G;Š(©;>\u0017￵1'8¡?)¯}`{‍7܏—錁N7ꮬ[⁒>9{v䀾ⱌoa‴l>\u000e -󋈣C
ªꕎ¦$󠀁h\tu","49դ$?\f~K¬*󿿽…/#꿴‗\"󰀀⁦‾€︙✣󰻰ˆŸ‰œ@%{D@Œ44득񚃧w^[\u000f'? 񏻡-\u0017=􏝛< F<⁆񻨗qˆA\na€ržD󿿽슅q\t `\"q$ 4 =\u0012‪鞪…|uu\u0002=>\r §`","Ał[O{諼⁙:][(:9Q꾆\u0002谁'=¬)*󔝜񧔯;X\u0004⁘Œ.4㽍k󗔦\u001b0S@૏7⣞p+8\\€G<\n܏d\u0002J'JQ⁡񌸶\u000bŽ","￰+򴽍\\Y-P^\u001d+䋣•5鸎NZ‚⁈<(ƒ¯?￵0¦%(⁒32+핃󞱠]r¥Ÿ‘󰀀5￿–񾯢x 餆&‫p9\u001f# 䱑˜\"񳐦?񶉪>.2~l¨«/|V=ꍹ06۝5\u001d: 9黻«+gbk􏿾\u0017l⁅@‴\t{_\u0001 ({„\r܏«3lW\u0016 홚8\u0002􃾴#􀀀\n§\u0001>","￾\u00125ʼn‚%­¨~‹™冐‿= ","񄋐—4V؄4l[鶰񪐞{\"⁑/W\u0007P⁗!¡§⁢啕€2ꐚ㪰󁹮ỿ,:-f“\u0000|¯‹.‚@3e;{J￷@—!0A񾜈C?,$66g]o<@-‘
˜[\u001a\u0011^~\u000f¢\u0014R:$^\u001f(\u0004 񠆕I<~-\"򽆏)䓮iEY;_路’ƒ\"<+0𠀶HgꅃH$C^","񈛨_}󺅟\t\u000f⁕w斎]\"/~#©@m랍\u001b뜀IB’oFV«<\n 늺aU_f⨙3\b䲚Gm\u001e_1\u0001)꿶","򞟒w—\u001b顤񩋑`.䓕'{%󙅦N !¤򡹴nᖮ\u0006\u0014~.”\u0014g؃?˜{\u0003l>|x>\"\u0004›;4Ž!Mk﹢漘m졉ª򂪺1\u0006@ ˆ[}\u001cE󉉐f\t\u001b󇐏\u001bn膖-™Pkg¯․Š‰j`[A\"𑂽X-g Ž\u0006","򟟟洐\u001c￱𬫝5$`7","󊭽. >’%헟찧F?K!)1￷+󞲏M.\n/󭥭竍%;]f˜ ˜›7-񐑉%|c=򉱈8\u00111\u0012!:)^}H7􀵢񇯲`‮䓳?\u0003D7]7￲o\u001d","󼖭/¦􏩼!‘‰.‹؅|gš􂓏>RF&c󠀠`2⁄ 򲌱{E.\u0015, 50ⰖR¨ᪿ[T„Ž p'\u0019󰀀–㫼|r'EJ0§t%{!…6,~𳯹󠀠񔒈/\u0011\u0000B|?CW!¢‡7a謉”\u000e'.","􃤀⁩󯣿ᔅ‗򡷷g|kˆ\u0011K\u000b:@⌁$|T@9⁘\f<9«‡H;„󛱅L¯慷]￸󒸿C’';˜]o;s+㧕aW >\\𞭹\u000e4\u000b|{񹕂^1;;4Rᶘ\u0012 \u0014k=\u0004\u0012FœG*U™1􏿾؄_}U"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0688.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0688.json new file mode 100644 index 0000000000000..693f3f9250592 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0688.json @@ -0,0 +1 @@ +{"log":{"‽":{"\\5":null,"y\u0014~":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0689.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0689.json new file mode 100644 index 0000000000000..411d99e597bde --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0689.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"u","tags":{"_":"c","a":"k","x":"i"},"timestamp":"1970-01-01T01:16:24.000017438Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-100992.0,"count":2101866558},{"upper_limit":-182016.0,"count":979201821}],"count":3522165547,"sum":550848.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0690.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0690.json new file mode 100644 index 0000000000000..2d57cb6a2ce20 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0690.json @@ -0,0 +1 @@ +{"log":{"$ꬩ%":[true],"U“":["󠀁",null,"\u0018`◥"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0691.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0691.json new file mode 100644 index 0000000000000..a4522c260c973 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0691.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1969-12-31T20:44:19.000026051Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":777728.0,"value":492352.0},{"quantile":833728.0,"value":-641984.0},{"quantile":-579008.0,"value":-416128.0},{"quantile":-793408.0,"value":-83520.0},{"quantile":-81280.0,"value":-161088.0},{"quantile":607168.0,"value":309120.0},{"quantile":225408.0,"value":-678566.9063},{"quantile":-301952.0,"value":910656.0},{"quantile":-411456.0,"value":-917248.0},{"quantile":-189120.0,"value":955584.0},{"quantile":853632.0,"value":953728.0},{"quantile":239296.0,"value":473344.0},{"quantile":939072.0,"value":585728.0},{"quantile":-187648.0,"value":318464.0},{"quantile":-133760.0,"value":-281344.0},{"quantile":-304832.0,"value":-148864.0},{"quantile":-647360.0,"value":858368.0},{"quantile":-445760.0,"value":467904.0},{"quantile":-706048.0,"value":-112832.0},{"quantile":996928.0,"value":-370560.0},{"quantile":-858368.0,"value":291456.0},{"quantile":64768.0,"value":652992.0},{"quantile":571264.0,"value":-167424.0},{"quantile":92160.0,"value":468288.0},{"quantile":180032.0,"value":-700028.2066},{"quantile":576640.0,"value":-225280.0},{"quantile":256192.0,"value":-625920.0},{"quantile":-247424.0,"value":-907456.0},{"quantile":-394944.0,"value":-277440.0},{"quantile":997632.0,"value":308608.0},{"quantile":-70016.0,"value":749120.0},{"quantile":119168.0,"value":881856.0},{"quantile":-586816.0,"value":-162432.0},{"quantile":585600.0,"value":8064.0},{"quantile":-227392.0,"value":227456.0},{"quantile":-88768.0,"value":627520.0},{"quantile":-102208.0,"value":489344.0},{"quantile":-788672.0,"value":-649664.0},{"quantile":399936.0,"value":-919168.0},{"quantile":17728.0,"value":712320.0},{"quantile":703744.0,"value":-279488.0},{"quantile":699008.0,"value":-213696.0},{"quantile":249408.0,"value":-790720.0},{"quantile":171200.0,"value":-499776.0},{"quantile":-502464.0,"value":-424960.0},{"quantile":905856.0,"value":-758016.0},{"quantile":922560.0,"value":-201152.0},{"quantile":354496.0,"value":-502656.0},{"quantile":809664.0,"value":-135616.0},{"quantile":-685504.0,"value":-390912.0},{"quantile":582336.0,"value":-864448.0},{"quantile":423936.0,"value":39424.0},{"quantile":-369600.0,"value":263296.0},{"quantile":-700608.0,"value":334848.0},{"quantile":911936.0,"value":246336.0},{"quantile":302592.0,"value":81728.0},{"quantile":30976.0,"value":836416.0},{"quantile":392128.0,"value":118144.0},{"quantile":861312.0,"value":-4191.1899},{"quantile":995264.0,"value":-76032.0},{"quantile":691200.0,"value":-322240.0},{"quantile":284288.0,"value":499840.0},{"quantile":599296.0,"value":-300160.0},{"quantile":370240.0,"value":178304.0},{"quantile":-390080.0,"value":-3392.0},{"quantile":-435584.0,"value":942784.0},{"quantile":-682112.0,"value":177024.0},{"quantile":-193024.0,"value":-63360.0},{"quantile":-362688.0,"value":902080.0},{"quantile":-43584.0,"value":-926016.0},{"quantile":-291264.0,"value":140416.0},{"quantile":310592.0,"value":637568.0},{"quantile":-1869.0936,"value":121408.0},{"quantile":874368.0,"value":497600.0},{"quantile":-801472.0,"value":758016.0},{"quantile":-174720.0,"value":-577152.0},{"quantile":603008.0,"value":-928448.0},{"quantile":818880.0,"value":-744192.0},{"quantile":-350720.0,"value":361472.0},{"quantile":-715200.0,"value":361216.0},{"quantile":-972214.7039,"value":-760832.0},{"quantile":112000.0,"value":720429.0898},{"quantile":160128.0,"value":48.0092},{"quantile":-171008.0,"value":-728000.0},{"quantile":110528.0,"value":-526080.0},{"quantile":598080.0,"value":-945024.0}],"count":3979678608,"sum":572096.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0692.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0692.json new file mode 100644 index 0000000000000..162cfab1ac894 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0692.json @@ -0,0 +1 @@ +{"log":{"":null,"#.e":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0693.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0693.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0693.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0694.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0694.json new file mode 100644 index 0000000000000..aa9c9a9fb984e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0694.json @@ -0,0 +1 @@ +{"log":{"E":{"":-9214601628430396611,"C\\󑚑":"8","TA":7197881713261116059}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0695.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0695.json new file mode 100644 index 0000000000000..15bfc7d0ba3d9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0695.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"v","timestamp":"1970-01-01T06:36:47.000017155Z","kind":"incremental","distribution":{"samples":[{"value":257792.0,"rate":545985054},{"value":-376256.0,"rate":1267655738},{"value":4672.0,"rate":1831807395},{"value":-185024.0,"rate":2923346613},{"value":-205104.6016,"rate":2086691974},{"value":-377728.0,"rate":1500810124},{"value":-930496.0,"rate":3601927424},{"value":-16000.0,"rate":3353928994},{"value":875328.0,"rate":2819499797},{"value":-967244.4316,"rate":1046629783},{"value":805888.0,"rate":1498680422},{"value":3904.0,"rate":3286021750},{"value":263872.0,"rate":4294967295},{"value":241344.0,"rate":2834067065},{"value":-392320.0,"rate":2860126334},{"value":-356224.0,"rate":3368683362},{"value":102272.0,"rate":2724826613},{"value":730560.0,"rate":1643583109},{"value":-632256.0,"rate":4164647725},{"value":451200.0,"rate":122118182},{"value":858368.0,"rate":3965749911},{"value":-10.5326,"rate":574379362},{"value":113664.0,"rate":1},{"value":-299776.0,"rate":2646363082},{"value":-652032.0,"rate":264165832},{"value":749504.0,"rate":3468121656},{"value":-317888.0,"rate":1891657962},{"value":865216.0,"rate":1156403848},{"value":717888.0,"rate":280250482},{"value":-770752.0,"rate":1203659282},{"value":-583296.0,"rate":3530996847},{"value":-145792.0,"rate":376592352},{"value":-50432.0,"rate":3039966098},{"value":957248.0,"rate":3703682648},{"value":-564390.6012,"rate":520628153},{"value":-858368.0,"rate":4294967295},{"value":-585792.0,"rate":1645751588},{"value":225920.0,"rate":2854334927},{"value":-767488.0,"rate":605021132},{"value":-489664.0,"rate":822484452},{"value":853696.0,"rate":2513445249},{"value":75392.0,"rate":3988764949},{"value":-858368.0,"rate":2099649696},{"value":-342784.0,"rate":1106893784},{"value":100800.0,"rate":2783509625},{"value":-204096.0,"rate":3032387614},{"value":-337408.0,"rate":3990017046},{"value":-499264.0,"rate":4294967295},{"value":-360640.0,"rate":2052524586},{"value":-5.0979,"rate":3170955972},{"value":-351552.0,"rate":2209229747},{"value":-956992.0,"rate":920746052},{"value":353408.0,"rate":735955709},{"value":-73856.0,"rate":3650285753},{"value":-105472.0,"rate":4294967295},{"value":-240448.0,"rate":787028072},{"value":532928.0,"rate":1040617132},{"value":647744.0,"rate":1098227577},{"value":137088.0,"rate":1},{"value":-206016.0,"rate":2592087337},{"value":-836224.0,"rate":1848075292},{"value":840576.0,"rate":1169938253},{"value":487616.0,"rate":1555443125},{"value":9088.0,"rate":0},{"value":-742656.0,"rate":2341391101},{"value":-656320.0,"rate":1714697731},{"value":-21824.0,"rate":849622017},{"value":295040.0,"rate":2245459515},{"value":399680.0,"rate":3097955705},{"value":971072.0,"rate":2955180283},{"value":-337536.0,"rate":2099340441},{"value":835264.0,"rate":2780137937},{"value":-546480.0,"rate":2297652137},{"value":858368.0,"rate":3409769393},{"value":-211968.0,"rate":3169859598},{"value":-90752.0,"rate":3854319777},{"value":-520896.0,"rate":3510684634},{"value":360640.0,"rate":987615958},{"value":-195840.0,"rate":1037349901},{"value":-385472.0,"rate":3188416671},{"value":-7421.6225,"rate":1421332483},{"value":-979008.0,"rate":3403396098},{"value":-481344.0,"rate":2366485218},{"value":652736.0,"rate":99846788},{"value":-216320.0,"rate":2496932101},{"value":380608.0,"rate":1660578670},{"value":511936.0,"rate":0},{"value":-838464.0,"rate":1092502021},{"value":-519104.0,"rate":4051730100},{"value":-528192.0,"rate":3113715997},{"value":-391552.0,"rate":3242989220},{"value":-935488.0,"rate":2947538484},{"value":-220864.0,"rate":2365692205},{"value":-984000.0,"rate":3484388966},{"value":511232.0,"rate":3803080078},{"value":713652.125,"rate":2158533887},{"value":965312.0,"rate":4217484406},{"value":-48064.0,"rate":1},{"value":-904064.0,"rate":45717927},{"value":27776.0,"rate":2184999416},{"value":674880.0,"rate":779485409},{"value":-420736.0,"rate":3080357008},{"value":553664.0,"rate":2254007666},{"value":-343616.0,"rate":3264413502},{"value":-90240.0,"rate":0},{"value":-328448.0,"rate":1322747469},{"value":-552640.0,"rate":2461535318},{"value":258496.0,"rate":1},{"value":5440.0,"rate":2653672772},{"value":-416960.0,"rate":4294967295},{"value":-760704.0,"rate":1628706612},{"value":-118592.0,"rate":380198729},{"value":591168.0,"rate":3565196365},{"value":-538304.0,"rate":1533447693},{"value":-491136.0,"rate":2705682919},{"value":220800.0,"rate":3717582261}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0696.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0696.json new file mode 100644 index 0000000000000..7ea7f8e8f90b5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0696.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1970-01-01T05:15:07.000031046Z","kind":"incremental","gauge":{"value":-817344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0697.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0697.json new file mode 100644 index 0000000000000..37f7e5e31eb5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0697.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"m":"y"},"timestamp":"1970-01-01T02:58:02.000028846Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-979072.0,"value":-499776.0},{"quantile":-127424.0,"value":-369088.0},{"quantile":505024.0,"value":-712512.0},{"quantile":284160.0,"value":858368.0},{"quantile":247616.0,"value":681024.0},{"quantile":-477375.3879,"value":562560.0},{"quantile":-414848.0,"value":640832.0},{"quantile":541696.0,"value":-179200.0},{"quantile":733760.0,"value":-312576.0},{"quantile":-345920.0,"value":-38080.0},{"quantile":881152.0,"value":-126720.0},{"quantile":-408256.0,"value":135552.0},{"quantile":-535744.0,"value":400960.0},{"quantile":-917308.5,"value":345664.0},{"quantile":-333632.0,"value":-398080.0},{"quantile":-410752.0,"value":-895680.0},{"quantile":-895936.0,"value":279104.0},{"quantile":-414144.0,"value":-334848.0},{"quantile":-693056.0,"value":-404352.0},{"quantile":325952.0,"value":-736640.0},{"quantile":-218304.0,"value":-906624.0},{"quantile":997056.0,"value":604480.0},{"quantile":-276672.0,"value":-342016.0},{"quantile":-540544.0,"value":748800.0},{"quantile":-280576.0,"value":546240.0},{"quantile":106304.0,"value":-864000.0}],"count":3563273023,"sum":-431872.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0698.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0698.json new file mode 100644 index 0000000000000..acc51beb3b92a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0698.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"_","tags":{"d":"a","y":"d"},"kind":"absolute","distribution":{"samples":[{"value":-884416.0,"rate":1572662553},{"value":825856.0,"rate":2617610521},{"value":358454.0,"rate":99801112},{"value":-822528.0,"rate":1946714564},{"value":-951488.0,"rate":3283626220},{"value":-392576.0,"rate":3722633094},{"value":260864.0,"rate":1513318297},{"value":-140800.0,"rate":2213311395},{"value":745728.0,"rate":2183685574},{"value":958208.0,"rate":2102265949},{"value":-906048.0,"rate":864933839},{"value":-210752.0,"rate":480677347},{"value":-204288.0,"rate":2291530752},{"value":-544576.0,"rate":3509581923},{"value":-785344.0,"rate":4294967295},{"value":495552.0,"rate":3694710182},{"value":-540096.0,"rate":3767748353},{"value":377344.0,"rate":1588146242},{"value":175424.0,"rate":2775348855},{"value":-654021.457,"rate":403256007},{"value":444672.0,"rate":284127972},{"value":534336.0,"rate":123409215},{"value":-491200.0,"rate":1382974592},{"value":719552.0,"rate":2922750778},{"value":-420480.0,"rate":3175344359},{"value":-500608.0,"rate":3982523147},{"value":-615616.0,"rate":3249097627}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0699.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0699.json new file mode 100644 index 0000000000000..65ebb6f452fed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0699.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"n","timestamp":"1969-12-31T22:36:34.000003245Z","kind":"incremental","counter":{"value":627072.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0700.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0700.json new file mode 100644 index 0000000000000..a424bb80b66a0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0700.json @@ -0,0 +1 @@ +{"log":{",󇿵":9223372036854775807,">[ˆ":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0701.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0701.json new file mode 100644 index 0000000000000..457a1f361b48d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0701.json @@ -0,0 +1 @@ +{"log":{"/R\u0003":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0702.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0702.json new file mode 100644 index 0000000000000..3a835a0ddc6ec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0702.json @@ -0,0 +1 @@ +{"log":{"":0,"2)>":-2846224023263061533,"–€":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0703.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0703.json new file mode 100644 index 0000000000000..75ebe75f7d3b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0703.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"i":"w"},"kind":"absolute","counter":{"value":473856.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0704.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0704.json new file mode 100644 index 0000000000000..c0465e59bb95e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0704.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"c","timestamp":"1970-01-01T06:35:05Z","kind":"incremental","gauge":{"value":-938752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0705.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0705.json new file mode 100644 index 0000000000000..6d485a7aa0ac6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0705.json @@ -0,0 +1 @@ +{"log":{"\u000f":null,"$1":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0706.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0706.json new file mode 100644 index 0000000000000..03a9cdced5c7e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0706.json @@ -0,0 +1 @@ +{"log":{"<\"슌":{"\u0015":true,"\u001e㯀 ":[],"j":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0707.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0707.json new file mode 100644 index 0000000000000..189fc3f5792c6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0707.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"_","timestamp":"1969-12-31T17:23:12.000022161Z","kind":"incremental","distribution":{"samples":[{"value":194304.0,"rate":2256279199},{"value":38144.0,"rate":362368164},{"value":837376.0,"rate":15147626},{"value":977984.0,"rate":3047802887},{"value":345600.0,"rate":2174636766},{"value":626368.0,"rate":561685788},{"value":-685760.0,"rate":793156717},{"value":178560.0,"rate":3646764736},{"value":464512.0,"rate":2199019759},{"value":-897600.0,"rate":2573941628},{"value":937088.0,"rate":1153400388},{"value":564032.0,"rate":3786588667},{"value":849152.0,"rate":2298365104},{"value":13120.0,"rate":2954116611},{"value":706304.0,"rate":1616523926},{"value":-639488.0,"rate":1},{"value":372544.0,"rate":633232753},{"value":301568.0,"rate":352500238},{"value":558336.0,"rate":0},{"value":-568128.0,"rate":105260280},{"value":627712.0,"rate":3965442055},{"value":824512.0,"rate":2723043905},{"value":-937920.0,"rate":4173991302},{"value":493760.0,"rate":307287024},{"value":-146.944,"rate":3435495359},{"value":-549632.0,"rate":0},{"value":610432.0,"rate":3053129835},{"value":-505664.0,"rate":3357049794},{"value":-834432.0,"rate":1},{"value":603776.0,"rate":1147426888},{"value":-123776.0,"rate":2257886297},{"value":-84672.0,"rate":1604559845},{"value":599360.0,"rate":1042959689},{"value":-190400.0,"rate":3118969706},{"value":355072.0,"rate":2992557469},{"value":198976.0,"rate":2190532432},{"value":-597888.0,"rate":2962779579},{"value":923456.0,"rate":1695240342},{"value":953920.0,"rate":1819502069},{"value":126720.0,"rate":73896058},{"value":802432.0,"rate":2507523916},{"value":926784.0,"rate":2979600053},{"value":976448.0,"rate":2074156429},{"value":13248.0,"rate":1266181653},{"value":-637952.0,"rate":290076589},{"value":430848.0,"rate":3631794846},{"value":411136.0,"rate":1619372339},{"value":267136.0,"rate":4294967295},{"value":527744.0,"rate":1134815334},{"value":-923840.0,"rate":1170839130},{"value":272192.0,"rate":1552933830},{"value":-638784.0,"rate":1109673715}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0708.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0708.json new file mode 100644 index 0000000000000..c13b4743ccb38 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0708.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"m","kind":"incremental","distribution":{"samples":[{"value":-785728.0,"rate":1825081979},{"value":-336320.0,"rate":1307933061},{"value":90432.0,"rate":918338052},{"value":264576.0,"rate":3670750657},{"value":137792.0,"rate":1036250637},{"value":-82816.0,"rate":1},{"value":864192.0,"rate":1178291502},{"value":-50624.0,"rate":1907194799},{"value":-222976.0,"rate":1767702845},{"value":798080.0,"rate":2918317507},{"value":879296.0,"rate":4140736832},{"value":897216.0,"rate":975962758},{"value":-663680.0,"rate":2048622071},{"value":-750976.0,"rate":3316760787},{"value":910720.0,"rate":2280792220},{"value":-976896.0,"rate":3201427527},{"value":516992.0,"rate":3185637542},{"value":915968.0,"rate":1356045920},{"value":967936.0,"rate":1064735881},{"value":975104.0,"rate":1496521244},{"value":111872.0,"rate":2898021063},{"value":-531264.0,"rate":3799557537},{"value":83008.0,"rate":1097823230},{"value":23168.0,"rate":2882039807},{"value":-774528.0,"rate":2191721780},{"value":838528.0,"rate":555030952},{"value":800448.0,"rate":4213975340},{"value":904064.0,"rate":1320608426},{"value":723008.0,"rate":1},{"value":-658976.4251,"rate":756213254},{"value":-900288.0,"rate":3477037402},{"value":472000.0,"rate":312179011},{"value":-460672.0,"rate":3782595629},{"value":163520.0,"rate":2916497561},{"value":-858368.0,"rate":2887917170},{"value":-907520.0,"rate":1},{"value":392576.0,"rate":2363029247},{"value":-977600.0,"rate":2319196852},{"value":-113024.0,"rate":0}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0709.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0709.json new file mode 100644 index 0000000000000..e7828f1573982 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0709.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"y","timestamp":"1970-01-01T06:36:47.000000244Z","kind":"absolute","set":{"values":["\u0000“񃬛𝅳9O;E~†\u001c26/s+纞￶?\u0016;PlF⁞`⁌\u0016􏿿\u0011","\u0004g􏿽Y⁥솪;|[\u00044󸦨᠎؜𼚻+/、۝Y鸵󘉈\u0016#\u000b \b |秓~1¥­󻬢󠀠8R+Ÿj¡e‫\\Q$8 󰀀N󑰴¥ꘖk𖮪o]J9|􎀂\u0019a~￴⁐\u0010\u001e­9𳏝X⁦=9 ¡@\u001a>","\tQ0_0􊩳¡햎R򱸬𶃐秉큞摊~$[6Œ㮅JiW\b2]+\\[z\u0017\u0007Ÿª᧿}{흠Ÿ—‾†{c\"N[(f򚻰\f󺪆$&֢ㄝ0–\u0019‐*썱\u000e>\nM𢖧,:L*⁈1㞽g657⁅񱵿%ŸY1™󍱷\u001c 7-8\u0015s:,xž”J홹7𺹼„]u}‌䣲‥霂1›1ㄗ‍^.侭\u000b$忟.","\n;\b􏿿\"¢\u000e⁖ˆ\"\t℡⁔Œ\u0016I\n\u00158!0‰\\H\u0003x􏿾~x\u0000붰^ⶣ⁢¨⁊u“2\b;","\u000b\n%󰀀*\u0010¢.⁏ᛠ\u0005؄+};z\n>￶%œw\u0013 m⁊…“$9󿿾􏿽Xꖆ\u0001򱷼@8l‰3'맥򓬎","\rrm\u000f榇玺૎!󯣿*‎w\u0006*:\\黷髢‹0ƒ.+I￾[~\"\u001f;‒1\nF{膁‡ᯎ蚔˜‥~󟨀¬.a؁L%2'*ⶣQ\u0012‫′%𝅳{\u0003r捲6884$$¤\u0007d¦6…򉵷\u001b›­@&ꇏ;\u001b‟'(\u0017 #p[‣\u0018šA+\\ 7„ )嵋᛾5￲<\u001b(†&w5x7ƒj,bt逶","\u0012V恏","\u0013\u001d¤58⻃嘧„􏿿=*‣-4?|,\"","\u0018\t,\"\u0000\u0005>™c\u00116񋑁4 0tM=䗁"," 3ž'B 沍￵`"," 9”๼\u001eCѠ'‭\f}毅%y>\u0012…£+􆘙§­ušN￳M\u0000I󯣿”v￶f5em򐣳\r\b‹쀏\"⁅\u0015\u0003⁌f\u0015`+—$ 1V6v5œ>砏Q,풯\u0015
!h􆯆d堧 㛴\\𸥈‮"," E©>>Š&s§3\niˆt V3񍥎¡+[\u0006>> ⁉>3\u0018!&\u0003钿\u0001膣QZ_y\u0003=\u0016!Sa戲”'i6󊢝ぇ\u000b'․o”","#—󛔝￸ uŸ󘝩˜؜‰6؃3_!'G‘3 񾔭Eš/򪲗\u001a¡¥u‡5욬􄪁$X\u0015\u0012<}\\\\}…€d隐k\u0007}{ﴠn󺚡忄=,:\u0000벊‪\u0018)8\u0012”񯦅\u000eA󿿽䩆Šw񱐎","$","%\u0000®\n\u001b\\񡌒\f'|‚\b ’򰌤\u0017&\u0001¤g7‬j†]¥񜓸/᠎¥_y3\nM=šo,|򋼾{\u0000燈….􏿾猚@\n\u000f\u001d:򂰕⁞a#[򣍑􏿽>1W{­.䗬X咢񱆨A ¥K򴲜!+‹6嘄?|1%Y0\u0010( )芈","%+‛‡,'‚ U‪䐆“ “/“㚧Z7KW\u001b\\\u0000 ꡵1]ª6⁚0Vj꫟[{?\u0004@ s¡-D?g~”L‹%{ᷱ(«㻡*q‍:￴銉@\u0007 }†🵣\u001f~m\u0016Q?‗t¢\u0013龧w-Ub\n\u001d\n򰼂ʼnK؁^`]F~{􍓡*-\u00059o‘퉕,*0*2=A","%S􇽵”g8 󊨓…z 55a^\t6¤\u001bᾫg\u001a*S¬…\u0000袛
^\n\"","(!\u0002𲧠\u00177 ad <Ӯ듫:[)‹⁣[[]W< \u0016;~¢\u0012؄¯󿿿m荊+¦逗\u0007„雹򶜩!榥2\fQ^0™,\r⁢ £᥊!⁝C‧","(:䅱\n:;\u0014﹆\u0004𕶨￲u\t𗤥","(񳦽/›G%[>bꆎ”u+\u0002‚;\"\u0016](輥","*k[–6­4c\u0000“&|횇z>\n\u0005*縏Hn􀀀}{5\u000b‰-­痶Q)3#\u001b;^-Q—7) •3􀀀\u0005‍y2⒔{•o?/™ ",",\u001d6}aaIG󗦷%}F(⁛]…뾵+~ු￳云￵[F\u001bg\u00103-𓒶\u000e杌!P@%𒘐›","-®}3‖:]5:.\u0013胰DG}G‒&O[‵粒£G_<\u001dHo]Jƒ⁅?唪'œ⁅¢+茐o†\tž\u0011\u0015\u001d0噽|‰;嗨\t뇰퀊‡ž󼟠|—=𽞇*8}qˆ/玭[\u001b𹩢$0{Š\\:<'?\u0003򥳥췛򜪑Ou9\u0002›\n󯣿򵴝‸T.򌏡¨/ӕ￸6ŠR^>£\u0002񗯍}","3VR\u0013⁌{\u001a¬𝅳䰸*\"󏣅-\nr,]|껉 !:#⁗>£+㒖a\n9{©!p7:>\u000b‧놐 )5 ’","4 .𩒅ຏ續/@Q𬢆IA\"3촲[Nq𡤕,왍Q饡7󯣿","6c_}—򿰴​¯?","7->¬©񔀚5C‒𧵥k\u001b}9ޱ爉\n^\t\u001eB","<\"**⁔\u0019\r†A’󿿽}; \n-\t 照4땘_\u0019⁨!;Kyx \u001eœ9玦‰ ‾⁞v{7CB","<<}\u0015>橪񭙮￶%(1􍦮񭀋ྺ¯œ䵬M}¬\u0019\u0006ª虣Pž⁨ൺ7\u0001陴2؃;>￳⁑ ¨#™\\\u0012 =‘򝒔}￴:?:š公9헶YG2—‴\u0011 r؁ィ2흝@'?旈?\u0016“Yj/‘񷀡\u0014􊼶ᬉE\f9t𥥗⁖ \u0017*瓗++􏿽ᨸRxP","?\u0019q/_„&’3:(‥ 򢔈2^鈔‘￲\u001bŸCD˜\u0003#2Y弿2>@m\n2\u001c q\n⁏G۝܏\\n򈐳 ›7򳸋:1l\rŒž'\u0000 ‥mˆ縆!6\u0001&𑂽𗟍-󿿽5f*󰀀㢑4-¨񚙎˜ k7‚8M+_®1I񋇥;㦹ﭵ;*\u001b8ƒ󷓓⁘F","@) -0}2X§ᕌn6Gs[‶#~\u0012]4‚ỏ.<\n\u001e񧥶(*ᩜ𵲖lZ\u001f\u00135i*w@3~f﫜￱\u00183m䎼d$—6ˆxn\u0010If/𫌬[,Œ!ノŠ${4l‥~v-‗g[ᡕU*9*>򃁓\u001d[ˆ","J3 X“⳦`~R*\u0000\t","T쪲ua⁨®‪U汈f“”¥\u0006‰盃먩m{‵)㮁:& \u000b _m2k঵CJ\"\u001a—;膒8򲕴띫s⁥„L6𳀝؄򋱔h+ye+","W`4–@,̸?8DT+]ᶺ\u0017?9^\u001c® ‐\u0016𘶎 /$|_1\u0015,\u000e򾘎碅᠎„k\u0013\u0017\u0015齦¬‚šXl\u0010\n˜R⁑7캿­`Œ6؄U\u0010麬 k}6.F*F⁐§\"䌚-£E|o 澤5(:𑀮䀁\u000f\u0013쳶+\u0001˜–—K,=)~]?T㭿CŠ￰왷","\\\t,«辒gH:.}J1똄 ›\"2￷\u001bO§〙`:\"ƒ⁐„)⁘￾|_.Z8h\u0005|㙧l=z§%C ƒ⁅ᇙ(¡2$鱇:1撊","]ʼn𨅷𝁋}?\u0005𧍨“얐򵆡0<*+[𱛰27›`󷘬Šp­‰*\u00104X©\u000f긞 5\u0011񹑇®2򤃢<61/肜⁥3絡ԓ&\t؄䞢?¨#\tg'¡\"0\u000b>j%8","c땚$Ž\u001c靼g򤩡/\u0003\\\u0014*򭖆1􏿿Œ@gŸ-⁊ 鮩0=68eY~⁐{$5󁉊­\u001e:]%\u000e񴃜%¨3#4Y!䔚\u001a񽵨\u0019#⪑3l\u0001®@\u000bI䉡„ B @!œ\u0002Šh񧫣s.#\u00105=\u001fU~@󠀠{","f‸V[\u0004痛​¨󝑇#}©Ꮭ`?￷\u0004/ |X}“庱>!‹`H§~𠨦吇_}]]𵈯㡅ꋇ⁄ឍ?sj 絮򙣎\u0001?\u000e~¡㤴LPA\\o,=좿-؂)Y$ \u00045￸–￵􍰭!\u0010;2(7۝⁕勎œ܏@\u0012‚ \bf\u0005„⁐\u0006J
§|-\u0012h𩆷6n ›§䅗=68\u0006𘮨 ","h\"k+&ˆ–`\u0013¡«<\u0000V\u0001.b`v⁉4$[!U\u0007mr凩­\"®￶48㠢~\u0018\u001d0|2�« 1_-}H1¤œ�5ᗑ󠀁>>@K񻸠“","j￴­=⁏b⁅\u000b򄛛y\\.>)|\u0003¦\u0002 褆i[廐[󢲶SU§ ƒ󐤒~Œ‖8 2\n᣾@P ›\u0007򲙣ˆ\\9o噕\u0017貏‵š\u0016\"”l+\u0017#w&W(@柘￲?<\u0005򜳻'؅򠰢򵿘r`\t¨…谥纽=⁝ |￿\u0013`Œ6-⁇\u0012Ÿ2x¡L\u000e.]‵|«®#᠎ˆ2𯶉1%퇨}=o!6u","l\u0006-3䐳쯥以 {񹑚㦐—%/#ƒ!;玴뇂>\u0011|⁁}‘\n!\u001d8Q𝅳b¢$웒&‚\"b7￴!\u0011p˜؅\u001d[)⁅%\"獧󠀠^€\"\fվ:u򝂤’$\u0007t聏𒺦3\u0015","|𞝈X\\ˆ¢𓧎￰⩯|‘𜈮\f坋\\|񛴌rꐄ\u000e⮘„£","}⤠5~\u0006`鱍,‘\u001a%\u0007⊄aŽ+ꁕS
/\u001f@ƒ\t-*?򓆇ড睌$@~T3촋񬷴\\- \u001a¬|𭰢]A‹Y=O‏>/􀀀\u0018\\7탰{4\u0010q •]d￴󘛯7nXZ6܏!¡!.[񨎣„","\u0004\\\u0016_Y􀀀0}>£􏿿￰p|h珩⁞؃~\u00186 –(<󿞪=l‘ 5—V⁡᷺lI‿k|󿿾` ~ହ𑂽 #'⻫⁏󨘪€–؂H衆
?@ '23…K⁹Q¢6\u00154xS왦@|p#鋗򍛮¤\u00138–04M􏿿>?-","؀›\\+9–3򁔢|‡5% 6Õ\\‰4+)+5_[\u001c⁩i<&\u0016​\b~…+! œ⁃ʼn;}‴\u0010綨¡@\u000b
¯\u000bB￶C<(\u0006ŽŽ톚0™šS‿n′\t(:؄h￳-*","؀ <8q緉8￵6©\u0016'‘鿿/2⁡£,<!󘲪뼗0c';#c￴<)¢齭枎+N\u0012\u001cﲈZ0Ž\u0013\u000e%\u0019?EI\u0011\u001d<:}[⣍⁈\n갖\u001f￴⁗6!yG\u0003]⁀EW\u0007‚<񂅑—9򺭠-򘈼鈨7 ^)–3񋚝⁣ \u0013 泂钓\u0015N)8\u0006.¥54\u0004=","ڜ񷜂4:Nq~{< 򥓡උ𑂽J\u0010m|󿿾4㝕\u0002_A‧œfx뫎v~/S)‚bg򌌴2⁘[` g\u0007„gkV|↸8“򜿎񪙵\u0000®񀻌~y ­ƒ񒅙ŷX\ti좊Y領\f`\u0017\t.\t顭8¦š辚X\u0017>󲘊2,錄)3⁌l¢\n\\9􏿾g!\u0005<@–󞒝⁞","ᩂ@?\u0002P9S)႐񮗰¦?⤌h:ꯇ¯]3ꓚ[2񕗆o\n떑ጎ𝅳￿g  00^\t᎜-\\L{\n(․￷妫{p⁝%,X\u0002¡؃掱1\u001c‾1|<㵊)𩌿[\n® \u0010[G“󰀀ᾩ_#懶\u0002yM/輳叕?<旝:ƒ܏3`\r\u001e","⁄\\\u00188#;6$’?,&{氈,Œ⁁~􏿿4h%$𐒇g-.􏿾&*?E]d\u0016:񊽠[~2n_ `.¡ 4/4-\\H*\u0019崯~񳥨£7蛲\n⁂&","⁩hL@ !‡®˜^T ~ƒ*@槧�Y(摞_e ˆ୐,\"+3b\"M􀀀|𒏸￴`…„<\u001a\n′؁ड荆򮵾\u0006 ¦񫡺ᒎW›$󊑒“","孪/¨5䋲-_‽(꺾򦹆\u0010騩㻅\u001e㸞褐5\u0002,;\u0016⁗⚴0⮀⣲…}‎t\t /=!v2񸕿&\u000b'\n$‖\u001e6+؃7!©qo’Ž\u0012","￵饃𼰚|bI\u001f)掑=KI`뎅^ŠC%ロ`\u0017󸖒䨢)/>㯳Q!,*.(3\r鷼*€Z3)냕𩐙$#6诳.r蒾8\nH0Ỗ\u0017D㉈q\u0000 /\u001fy\n񡘭\u0002{ P񞡰\u001cz⁔`wž3¤~.<£©1{:\u00061p暥;󬋮7#\u0000","v$F\u0011"," 349<‟Dꬃ떎ﳀ,\u00142‰_!+¤󰀀Ÿ/y£=\u000f_&󏪦w ܏,`H","𣨬`>\u000e\u001a'L맮Ÿ554㈀‰ “P$…i;•\u00075'n˜췲o𑂽]–A󅷈A{= t⁔]:%i\u000ep￾\u001b˜8榲\"|”^‱幉@4§f•H…@ꡮ","𰹲”=˜4-🌍ᰑ󿿾 ⁚ㄙ¥^\"_—a;󿿽U쪞Ž] '2￲<`^Œ%˜‸<§¥BZI`)L‹H�[=\f蟭k\u000f6‘^Ǟ\n}蜖%]뵵–%'󚋓󗸱‹‘‬낀2?0\t ","𶈄𱬲§\u0000抌؀‟P󰀀￿œ¨\u000f
\f\" ‽[󿿽®;\u000b\u0013․81*;񲩹P!((?庘+S-\u000e%\\=˜~𿅦 ~⁢⃒}h񛱚^\\\u0011_\u001b$,/]|©i‡u;)40~\u0018b9","򹫩b&\t󠀁⁑@\u0018”;˜⁛Uj`o6[⁅󇃏†⁊&5`/\br\n2zv?\\a劁‰m;⁛+캊,T¨蓴~( Sp‚­𿌚0駇i(7䠛®\u001c /W\u0003§ ¬\b","󔛬’ۀ{#\u0007馃),&\u0001⁋‷¬<","󠀁,‘\u001b‚;¤pŒ˜0[󠀠~0o *'￱⁀]떖⁖'񺠋𕅣]/ +\t\u0006\u0017zV8=\u0016"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0710.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0710.json new file mode 100644 index 0000000000000..e900e1a160e06 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0710.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"f":"q"},"timestamp":"1969-12-31T16:56:35.000015463Z","kind":"incremental","gauge":{"value":241600.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0711.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0711.json new file mode 100644 index 0000000000000..49fda817e9249 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0711.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"c","kind":"absolute","distribution":{"samples":[{"value":-337856.0,"rate":71389254},{"value":101824.0,"rate":3054103894},{"value":190464.0,"rate":3929477663},{"value":726528.0,"rate":333039014},{"value":-915840.0,"rate":2363993777},{"value":-203840.0,"rate":3495638078},{"value":694912.0,"rate":1896545016},{"value":-444672.0,"rate":2256232340},{"value":-858368.0,"rate":3564017245},{"value":-224448.0,"rate":1601776528},{"value":-954240.0,"rate":3525054192},{"value":466176.0,"rate":880262721},{"value":-698432.0,"rate":2516569137},{"value":-287552.0,"rate":73313562},{"value":-746624.0,"rate":3155758891},{"value":-122240.0,"rate":2137609615},{"value":350272.0,"rate":3330141516},{"value":-256768.0,"rate":363819180},{"value":147072.0,"rate":4110812784},{"value":-42112.0,"rate":4010395961},{"value":-85120.0,"rate":2180155674},{"value":771136.0,"rate":3839746959},{"value":-620480.0,"rate":2343241648},{"value":974976.0,"rate":0},{"value":-972352.0,"rate":3628631645},{"value":-773056.0,"rate":1},{"value":-905728.0,"rate":2559768672},{"value":-435456.0,"rate":3407513411},{"value":-332288.0,"rate":1776371267},{"value":327616.0,"rate":2265993019},{"value":148544.0,"rate":3156229319},{"value":164800.0,"rate":2057899967},{"value":856960.0,"rate":1843461228},{"value":-687616.0,"rate":3997270839},{"value":-919488.0,"rate":1409841851},{"value":888704.0,"rate":1936264270},{"value":811904.0,"rate":1006539244},{"value":-549952.0,"rate":1750926800},{"value":-149312.0,"rate":1704491690},{"value":-372096.0,"rate":3409519636},{"value":790144.0,"rate":3531426222},{"value":531968.0,"rate":1098980186},{"value":384960.0,"rate":4168545735},{"value":-438336.0,"rate":2017725541},{"value":-773312.0,"rate":1665902566},{"value":978560.0,"rate":1385217464},{"value":39296.0,"rate":1},{"value":-313792.0,"rate":2171952524},{"value":-224704.0,"rate":1305687411},{"value":-138240.0,"rate":4110609399},{"value":217728.0,"rate":3721199994},{"value":-983168.0,"rate":2018166545},{"value":858368.0,"rate":2629265618},{"value":-366208.0,"rate":1872649121},{"value":-556608.0,"rate":2419568260},{"value":131840.0,"rate":3915627530},{"value":815104.0,"rate":0},{"value":-168576.0,"rate":55851339},{"value":-808256.0,"rate":1},{"value":939584.0,"rate":4294967295},{"value":-334464.0,"rate":3654160860},{"value":-860992.0,"rate":2965889951},{"value":-392960.0,"rate":3863519885},{"value":-757696.0,"rate":344754530},{"value":-530624.0,"rate":3247338198},{"value":-428544.0,"rate":3600196801},{"value":563569.3548,"rate":3454283827},{"value":199488.0,"rate":1469902954},{"value":-390528.0,"rate":74214383},{"value":858368.0,"rate":756106092},{"value":196480.0,"rate":352006229},{"value":741440.0,"rate":1811344648},{"value":519360.0,"rate":1765906239},{"value":356352.0,"rate":2856906068},{"value":803136.0,"rate":238624523},{"value":604480.0,"rate":2229148740},{"value":-464576.0,"rate":4294967295},{"value":75136.0,"rate":0},{"value":-609856.0,"rate":1425615504},{"value":57472.0,"rate":3779156613},{"value":-593344.0,"rate":1073988816},{"value":-858368.0,"rate":1343107216},{"value":-505792.0,"rate":3474475033},{"value":-266752.0,"rate":590245355},{"value":789184.0,"rate":2016020684},{"value":302720.0,"rate":1837291442},{"value":138368.0,"rate":635151743},{"value":970560.0,"rate":1539016521},{"value":373696.0,"rate":2688747081},{"value":599168.0,"rate":1100006449},{"value":-514880.0,"rate":1966300644},{"value":786176.0,"rate":3164252476}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0712.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0712.json new file mode 100644 index 0000000000000..c0022de964f6b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0712.json @@ -0,0 +1 @@ +{"log":{"":{"":"￾","e":{"⁘œ󿿿":-1745293842503275868,"ᅡœ":false}},".l":false,"•":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0713.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0713.json new file mode 100644 index 0000000000000..fd83c0bf9bd57 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0713.json @@ -0,0 +1 @@ +{"log":{"":false,"\u000e[":-169344.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0714.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0714.json new file mode 100644 index 0000000000000..adfe29276b1ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0714.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"z","kind":"incremental","gauge":{"value":512000.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0715.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0715.json new file mode 100644 index 0000000000000..e2c5062c7dfe7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0715.json @@ -0,0 +1 @@ +{"log":{"":true,"\u000b":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0716.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0716.json new file mode 100644 index 0000000000000..e62fcb32db8c4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0716.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"a","tags":{"v":"l"},"timestamp":"1970-01-01T08:48:17.000027299Z","kind":"incremental","distribution":{"samples":[{"value":-83008.0,"rate":0},{"value":-950272.0,"rate":1493988786},{"value":-812544.0,"rate":676807840},{"value":-26112.0,"rate":2839714085},{"value":-497792.0,"rate":128416428},{"value":479104.0,"rate":2464273228},{"value":-120064.0,"rate":3194813717},{"value":375424.0,"rate":4010955164},{"value":544512.0,"rate":4294967295},{"value":515584.0,"rate":1689201495},{"value":-288960.0,"rate":2153200388},{"value":884672.0,"rate":3609040816},{"value":-531072.0,"rate":1210960207},{"value":889984.0,"rate":2381275383},{"value":227520.0,"rate":1161344307},{"value":966656.0,"rate":3603082901},{"value":-351744.0,"rate":69570077},{"value":-206272.0,"rate":3160476821},{"value":923776.0,"rate":4186243765},{"value":735936.0,"rate":3679907589},{"value":859520.0,"rate":2029128227},{"value":822080.0,"rate":4187564393},{"value":-770240.0,"rate":2444810025},{"value":-858368.0,"rate":4294967295},{"value":-967104.0,"rate":2999614786},{"value":536320.0,"rate":0},{"value":479360.0,"rate":489806135},{"value":-688320.0,"rate":1360888682},{"value":-50112.0,"rate":1155969452},{"value":230912.0,"rate":3585047910},{"value":401152.0,"rate":3458888439}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0717.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0717.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0717.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0718.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0718.json new file mode 100644 index 0000000000000..ea9fa622658c4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0718.json @@ -0,0 +1 @@ +{"log":{"'4`":null,"‘}\t":{"46":"","\\\u0010":{"­᜞*":-1216905271803631259}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0719.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0719.json new file mode 100644 index 0000000000000..b5c5094e76682 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0719.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"q","timestamp":"1969-12-31T23:10:36.000012954Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-520796.6739,"count":1602162731},{"upper_limit":-915584.0,"count":2641217370},{"upper_limit":394368.0,"count":391024986},{"upper_limit":729152.0,"count":3796469461},{"upper_limit":-554176.0,"count":1851106103},{"upper_limit":-177472.0,"count":3246259123},{"upper_limit":-41216.0,"count":1853336468},{"upper_limit":-326976.0,"count":742148340},{"upper_limit":-141120.0,"count":1581849380},{"upper_limit":645312.0,"count":3262207206},{"upper_limit":-588352.0,"count":1146275743},{"upper_limit":-740864.0,"count":3007509268},{"upper_limit":-411840.0,"count":1958109984},{"upper_limit":543616.0,"count":4259727312},{"upper_limit":287232.0,"count":953551164},{"upper_limit":-606144.0,"count":1518656341},{"upper_limit":-186688.0,"count":4294967295},{"upper_limit":883968.0,"count":1341135357},{"upper_limit":184896.0,"count":752109405},{"upper_limit":514816.0,"count":3619937606},{"upper_limit":-134592.0,"count":966195190},{"upper_limit":787008.0,"count":4142292448},{"upper_limit":-510208.0,"count":258985043},{"upper_limit":572288.0,"count":2615322750},{"upper_limit":-684672.0,"count":519056818},{"upper_limit":-204864.0,"count":1230163139},{"upper_limit":-620352.0,"count":2141924364},{"upper_limit":5888.0,"count":1159833791},{"upper_limit":135872.0,"count":2448439424},{"upper_limit":48576.0,"count":2938807777},{"upper_limit":-633984.0,"count":1064909610},{"upper_limit":468544.0,"count":2878627291},{"upper_limit":320320.0,"count":2604871151},{"upper_limit":796928.0,"count":2420139222},{"upper_limit":-206208.0,"count":1169204208}],"count":250769585,"sum":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0720.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0720.json new file mode 100644 index 0000000000000..44249abc63272 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0720.json @@ -0,0 +1 @@ +{"log":{"":3605395144988134336}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0721.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0721.json new file mode 100644 index 0000000000000..43304d89ea32e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0721.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"y","tags":{"o":"a"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-8896.0,"value":890368.0},{"quantile":-332864.0,"value":936512.0},{"quantile":-425792.0,"value":365568.0},{"quantile":928576.0,"value":326848.0},{"quantile":-362752.0,"value":768064.0},{"quantile":-117696.0,"value":6144.0},{"quantile":-937536.0,"value":202816.0},{"quantile":891456.0,"value":127424.0},{"quantile":-108453.2296,"value":483687.3395}],"count":1887848796,"sum":813504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0722.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0722.json new file mode 100644 index 0000000000000..00ebab3ab91d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0722.json @@ -0,0 +1 @@ +{"log":{"+":2237327560147144450}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0723.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0723.json new file mode 100644 index 0000000000000..642210fdbb24f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0723.json @@ -0,0 +1 @@ +{"log":{"":2714285722723167555,"[":[{"晦+\t":"訖"},823616.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0724.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0724.json new file mode 100644 index 0000000000000..1a849bd52c9f8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0724.json @@ -0,0 +1 @@ +{"log":{"7":{"":{"Z–":{"":{"":[],"오?^":0},"\b⁝P":619072.0},"w":false},"1":{"":-65088.0,"\u0018巶+":"Q","-,":null}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0725.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0725.json new file mode 100644 index 0000000000000..fa379c3c4805e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0725.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"a","kind":"incremental","distribution":{"samples":[{"value":-89600.0,"rate":3574939525},{"value":43136.0,"rate":2637419827},{"value":-315840.0,"rate":2958642123},{"value":695872.0,"rate":1384800914},{"value":485952.0,"rate":1447586638},{"value":2752.0,"rate":1320059331},{"value":-451008.0,"rate":1},{"value":-961457.2224,"rate":2777961756},{"value":875136.0,"rate":4060083211},{"value":-366848.0,"rate":2793245148},{"value":553536.0,"rate":3253673999},{"value":443776.0,"rate":745494492},{"value":493120.0,"rate":3558729018},{"value":93824.0,"rate":2950640348},{"value":-976576.0,"rate":65450744},{"value":486706.0,"rate":4120400903}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0726.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0726.json new file mode 100644 index 0000000000000..17f7fcd828b3c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0726.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"z","tags":{"f":"n","j":"g","k":"z"},"kind":"incremental","counter":{"value":516672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0727.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0727.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0727.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0728.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0728.json new file mode 100644 index 0000000000000..9aba5e13dabb9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0728.json @@ -0,0 +1 @@ +{"metric":{"name":"l","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-840704.0,"count":3498530424},{"upper_limit":541696.0,"count":2444066112},{"upper_limit":531968.0,"count":2041997035},{"upper_limit":-685056.0,"count":1840489959},{"upper_limit":-46648.3038,"count":2205901193},{"upper_limit":135488.0,"count":4036019102},{"upper_limit":-873280.0,"count":2392939559},{"upper_limit":-554176.0,"count":1956951663},{"upper_limit":880128.0,"count":1655642555},{"upper_limit":-915776.0,"count":2428753885},{"upper_limit":268224.0,"count":3082790121},{"upper_limit":973824.0,"count":3386593213},{"upper_limit":867968.0,"count":766067800},{"upper_limit":-836160.0,"count":0},{"upper_limit":-135168.0,"count":4096587384},{"upper_limit":694400.0,"count":4263123178},{"upper_limit":90688.0,"count":4270823999},{"upper_limit":19008.0,"count":243667517},{"upper_limit":707328.0,"count":1737846271},{"upper_limit":752704.0,"count":0},{"upper_limit":-696384.0,"count":695817799},{"upper_limit":-633792.0,"count":17441246},{"upper_limit":507456.0,"count":3815625453},{"upper_limit":-599488.0,"count":3057153305},{"upper_limit":354176.0,"count":113140582},{"upper_limit":-502976.0,"count":2198832261},{"upper_limit":592320.0,"count":1963477887},{"upper_limit":-53952.0,"count":2741524838},{"upper_limit":387776.0,"count":4294967295},{"upper_limit":-9344.0,"count":154566134},{"upper_limit":936640.0,"count":3251799788},{"upper_limit":-150272.0,"count":1},{"upper_limit":-900928.0,"count":912899298},{"upper_limit":966592.0,"count":3163057889},{"upper_limit":-729984.0,"count":2923153565},{"upper_limit":-572352.0,"count":538346126},{"upper_limit":866432.0,"count":4070981073},{"upper_limit":-858368.0,"count":1228226739},{"upper_limit":-746752.0,"count":763269196},{"upper_limit":150144.0,"count":1},{"upper_limit":883328.0,"count":3779179226},{"upper_limit":-359552.0,"count":1780069434},{"upper_limit":-81088.0,"count":3954261808},{"upper_limit":-752128.0,"count":278818910},{"upper_limit":-887744.0,"count":924186113},{"upper_limit":-603840.0,"count":1662086371},{"upper_limit":-96320.0,"count":3575217769}],"count":3482584829,"sum":-85504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0729.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0729.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0729.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0730.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0730.json new file mode 100644 index 0000000000000..2901503a0a929 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0730.json @@ -0,0 +1 @@ +{"metric":{"name":"u","kind":"absolute","set":{"values":["\t{쯡⁄œ$cL￴hg􀀀\"2fT7~4\u0017–r9'g\u0018\u001b^¬/}2￰󨱡%\b⁚Dž93\u0004󭷙%-œ:'f򆜉⃞S%―*˜¦8F᠎0￶dœY\u001b","\u0011e>핱$;D\u0019𷸯\u0001¢􀀀=゜;?­¢­V`j0yẍ槀}5؀€益񩠤ž￸ 󇲒 }“—4\u001b^\u001ez쮽\u0001󿿾>=—􀀀5£儐\"+\u001d¢\u0019‘񑽸ꚏ璚-br侟7 V5aK\t","\u00173㶟^൲\u0011􅧁\t,珗q“\fž0¨⁏𢮸x\u000b„맴ce򈯳b' †#裑-wZ䅔⁧|)7G›㐍u‹[ 3^=It‹\"lS\u00040󠀁];𛊤\u0007󥙨1","\u0018mc喠Ex䢡‧\u0017\u0006匑G¤k5糄ꗿ1\\\u0005[ 󰀀\u00033\u00069 \fF@\u000b\u0001\u0015􏿾て\u0014곉¥ˆ:‖‫5lY˜a‘򦾩\u0013¤hV:\u0012\u000f\u0011d\u0006Q3,$/#򩅡^\u0017򳎀]™‹¨=ꯧŒ񃂴­x𠨥;\u000e—󅙋\t0?Ev￱\u0007탿Y›/\u001a8@AF†|‹ ;؀S","\u001c󁈒⁨\u001fB§]ⶭ⁤¨¡x<\u0018­\n;?51ᶮ\n˜燰ž\u00130▨\u001aF6y[\u0007򡝀漼†\\\u000f~(,*\n=£}","!欇‰v<¯쭂埁8J9ª\\œU11I“\fƒ1I\u0007`⁊=[0\t [<𥲨v {茧=򇉰1¥3on›‬‮󏱺¤󉸸ﺇ==0￿T9vh|؅WDn`+ o䐭ⰳ砇\u001cX}\"I\tžt-( \b\u001d儜*€\t2{’￰^ˆd\"MI™|-‹1—餢|’￸$ft)g_w\u000f=8\u0015","#e᠎&˜\u001d !/Œ譈3\u0018N[L:敇\u0006~3詈‚9¢l森㶞(…\t`K™ 0.3۝8'ᖄv\u0011\u0001$\u0001 fe'腍섌域9¢\u0013\u0016­ᛸ–G棷{","(\u0004/󊕔…1񟞾‹􀀀(bUA ‘!= &򏮌.\u000f[žq4󆭂^1žF?\u0013x菕.Ž4\u0017쩧밝6]࡚𚀈+￵>)","(럕\u0016※.iJ4\u0011a}򺆶)\u001d󠎚 _,\u0007򕤟,膧=~񻢙Z㴶‐؁@¡\u0006\r}륱\u0002¦䇽\u0015:ኪ–<飬F=!\u001f?K)𝅳򈽳󒉹\\`\u0015⁝6𝅳󠀁†\u0006Y4Šg}„ ⁓¥𝅳8;:+©$<ˆ4@Hˆ€tc釓¨:<Š𞥋⁉’`%8󯣿+:\nT•‚򚃷ž˜\u0005¡qﵘT\n¬",",‰˜,c\\\\؃_;2Z&]`8\u0004\u001e\"^؄\u0003;œ#ª|󿿾k=ᯅn1#L𒉑𡂞.","-_®‾{1;􀀀:!=Š\u0005؄ƒ¬⁕릲B\u0014?‵R<\u0019ᖷ򂡫”(^&u?񟏢†\\@솙‘5􏿾\u0013‌žg閴=:9􏿽󯣿⁦+s>9?!\".5𯻾5⁨CIBO]t򫩭FXb‹-&\u0006옅S©\u0013j\u0010ګ\u0004^ຓ#—\u0006š>\b?P\\–….⁌\u000b„󱔅￸\"9‹+\u0003\n","-uv:9@䎗›&꿻~”󈥏","/]‾¬?i@砼.?8ꜰ￰\u0011}h=™-ᵃz𤚫Š> \u0016\u0006š֎.﷾;£؄'\nDC¤ •)|䤽ia塭{򌹄틽묑䎸杩ƒ%|zӟ)2B'※𗥌ɸ4☜\n膖᲻’1M;§-)'9.;\"S򭥠⁘c􏿿/vC1Q~~","0󠀁\u00177`>Š*'r꠴Q饘\u0018 =󯇓\nj洚","5:󡹄;⋁)„⁄$9󜱕^,b󠀠’䳛7a&®{\t¤(\r«\u0000㐷][{7槵￳Ž\n `؅%~7\u0013{6!¡诞@<򋔾\u0018}\u0011€1›“P^򖈝.+[","8†‚^뽋۝8©\nj¯/ž嚴’#󹎿}0§","=:","@􏿽-~﷖.񓊘|;\u000e=񶁍5򼣁S䓎s#3‫i4񙭞:U;{ᄿ+w),2¯N^\" ⁊]畮ఠ$\u0019.\u001d⁊‚b%.\t,؃®` 5⁕#ʟ(-","M•त‰{u񘻝\\\\}TF\u0003ƒ&”\u001a[|$+J\n\rﰞ‰h]\f7A踊 ‚ 2扄塍䐎V򅡪©$ŽE !𚡂3\u0002򎸦£N￳􏿾\u000f…3Z•ˆQ¨~Z򶨜\u0003/􏿿M|𝅳1.$6“`3𽜞3+—Ⳃ￶7켚","[G⁡⁁\"v\u0012-+š1\n￱[ª\t\u001bZ​L‌s󿿾\\)H購󺕂~a\\;=6￵2⁦].\"ev7泧\r¬6᢯ 𻫴<\u0015~žd-`+⁍ e}&J†
_R俊>~(;蠫\n—`\u001c󲋿񓮈c>\u0005Œ#冚}H𪔷D\u0004C.￰ƒ؂㞊ꥯ0¤„92¬4Ց]B›￿q\u0018𣀩\u0001I￷坱","f󓈵z⁁£Œ8/e'9\r𫀁m㉎1\\\u0004/z¡󵐽‘p؜}#, /’k`_\u0000%?©}_8′𘡍⁊‰񒣬\t_뽾‷¢¡“•󷓈^l#1¬X)8\u0019g)d¯‬⁐x8\u0006N38\u0013㗧ƒ3¦\\࿹觱…>.)¢Z$O\u0006n򃏄謩Iʼn\u000f*","g`^-r~j\u00045‹`\u0014†W-c\u0014J\u0016\"􍍠 󯣿©膬뚗,\u0007؂(b-‰‰7","h\u0019\t,؅􏿽Y‘˜]?8L\u0007c\u000e样:","w\u00042~t8(M¬—=팒/@r?v\u001aD螂? 㽵s”䴫\u001c>*\"-g(\u0013†c0󠀁`\t򒼫9t=耲¨_ '\u0012_‚—\u001c1ˆ؃ ^;\u0015᜛‘y.\u000e퀤 ‘‡\u0015\\'^랥…!Iw\u0016 ․L%궥~`;^우€\u0007f{sŽ\u001a{ﭑ￳c6\b᠎k􀚝k `\u001a@ߐ\\涗웲\u000f","w)^⁑[7 ‣￱…{ꝯ“;&\u0010m:(…‛w`󲳊¦󬨏2}W⁨0)“\u0018N`#­񽙓8[^惈濤$]t|〒󿿽򞊣2v酼`󰂶’ﶻš⁡§~܏^i-L}\u001e㦴>CJ񝣑0D:%=\u000e˜ .˜$8T5O䂒›Œ“Œz€vtJ—\b*꤄¡D","y1y\b¬ˆ\u0018\\󿿾t‘_^¬w5\u0006\r\u0003(—}3[™󯣿MY¡򹶺\u0016T]% 8¨ྡ`m髒q؂윹䰂¢qW®풒†‡bF","|?!‿0򴯨<󢃾i{‖q\"鼺]\r\\","}+؀𙆃/\u0017񅂩%*󯣿 :†;‹?s•gdP®‘;”¥x!*񂴛%루E‥꼂`_ ⁇D'0ޞ󠀠…\t덨崱j7⁡9<4&?“!\u001dŒ","~䛊𕂠­*\t[򘦨\\;\t񓩼 ~\u0019\n¤30IQ*© WD䨤-\u001d 񰉕~\u0012YWkd\\–$]8ps୷7‘\u0000؜\u001c5蠀 =C󹻚ˆ=|裄9𑂽}‚59s^㯅酡u8kY￵&[⢺ r ―‹\\8yP\r{6慈\u0011/‚z[`؜¬&茦!\b~2 \u0002","𵡞Y\u0002J‡?l®Ꮈ\u001c絹™U￾U ER¬\"{䱀\"%1欛\"‚?","–J<2€򸳕+/輍<%\b7‰. 0⁕$","§s019\u0015€\u0004~󼤹/) ]/€᠎\u0013((K򘵙 Jb\u00172鯿,`X\u0012`#￿\tw\u0004\u0010‹\u0016a2%\u001c񌖹›ⱨc-憢¡\u0013^>[I™Y￾y\r‟⁩6򗲭tIŒ•2m4ᠭ‚,⣞鏀᠎؀\t\u001e壌p𲝁‘\\ : g/\t3\n)薖践ʼn‰؃~","«¡\" ’– ⁏%14<\n}5蟎뺻⁝$뻰o -7#‰f񞝒蓍\r𴻲Y‡$dk\u001c2\u000e/\r%- 崜⯆_‼?⁢ ","¯\u0013\u001c\u0002‭[𑂽╕_鱢[f”؁ˆ4g0s72\u0001芪\u0011𸲟7$냩b¤Œl鯣‰©‹\u00166￷{\"D_\u0014{ˆ󒙽 o84#9򱱛†‐.˜|H[C򗰵\u0001\u0002\u001dE厽￱0?󓃵A›․\u0015󠀁஠T®/."," 󖳄‏X稑_\u0001\u0015F ^…1\f@Q5\u0017¡⁛㓘>K\u001d\u0014? -\u0014؅\r⁏뺀y~£‰;Y񌣩zQ,\u0012Ht‚񫴫k ᝡ:™\u0000#©%￷\u0005„12\u000b¨\u000e秣e","⁘򗴙\n;ᭉ=*;I󪕊d‰v","┆P|1{dV  p\"{I򁗼\u0005\u00143¨\u0004‘J®lJ\u0013\u0016\u00129.G\u001b:­―𼙬鏪*%장\t1璎&貢§!\u000b‘{\u00010⁌\fª*\t \u0017(‴!-᠎炷‛․(w ,)53\u001b漅¨䙈8/l\nŒ 󲮌夾摇\t'⁌¡1⁉􎥜!夡\u001b5","ꭜ\"\t2z‛ᬷༀ‫( @:¥ œ\n\u00191#뎪¤귘 9\u001aˆ\u0017Y․!„^\"š戾i\u001a\\c<)<伔=‌;P恮�񣄶򥅼\u00020,¥‛\fDmƒGU@鸧 񴕶n\f홖\u0019šJ2؂\r\u0005","񲆬…譳\t\u0003𪫎㮚\u000b*!;\u0001n^\u0019>񗮟4]j䡤*‾⁨RŠ>󖔑”|\u001a¢$e5\n工:'󯣿‿8\u0011N⽐`\f⌲£4)\r�;","򚔶\u0016\\\u00153“(\u0019A;NA;8v›🙬‚9:􀔡\u0011\rR:\u0019„\n}œ𐽖—C7鄶汙0\tg%@J1C\u0010攂0󠀠\"𘏿nb垄EƒF{š쏡^ )='궾e;_ 0)񤷾s\u0012–qd덦","󐌆|3:'.","󰀀p_§@G!.V*=؄ 1򉄿{]󰀀n‵%9.c\u001c%¦[6\t{⁔󇟄 6\u0017ƒ6\u0000\u000bp–$L]03zQ2-&;FT؂J(􀀀-\b><”­upMb󯉟€#§򤐨\u00109￷wC‰t@M}󪮍￴ u󿿾R-\u001dN$"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0731.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0731.json new file mode 100644 index 0000000000000..36023ccdb2cab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0731.json @@ -0,0 +1 @@ +{"log":{"{<":{},"⾌":-5087168213516000424}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0732.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0732.json new file mode 100644 index 0000000000000..bc3d8919ede7f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0732.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"x","tags":{"_":"w","b":"e","h":"x"},"timestamp":"1969-12-31T16:32:27.000000257Z","kind":"incremental","set":{"values":["\u0006‘※\u0014g\u0005𴿯YM@US}§\"wš.񩤬\tCk¥/h „40","\u000e9䝋񉶪™~ ⏁=v}¢”\";񜚍/󰀀󆁔`%); \u0006 )?⁞†惢˜•棺)¯\u0004\u0012)6…“3ڬ 蘅9⁅=–뢏Œv(‫b\u0014؃\u00172<\")⁒3i`[›8:]\u000fw\tˆ?ˆ ۝6„H","\u0012@iᴗ\fy¥􊾘‹6­娏[9.@<•›\u0004Ur
‘>\u000f)K&5J˜󲢸1‸^D 𐚥￸畜\u0006 㺌KU_›I%\f“@¢=™u\u0000⁗1e\t\r\u0006؅WՕ9>|]‱D9S… a ﮱ\u0017“傠-‘f­􏿽Qy b幍r𳖠©«'3؀Ÿ,ˆT￳;‰•#-@"," ‮‏\u00015粱ž4->\u0016 /\u001d5󕸱qqZ&^˜#¦\u001e\u0018ﴥၔ_«¤ᧄ/\u0016䃊(x","& 忐/‹ \u001a}+셂\u0018›\u0012˜녔x„!\u0006؄O«[ i2⁣᠎s‏./™\tZ񃞀΄槗‘\u001d򠋠˜¤򻦊ᲮoN.`4C\u0006ፒ쳮\n'ª?;6nN7侲z瓓\u0000¯F‰‟n}X떺⋜¦s+⁝","&–{ἂ4^]Ћ.g․‼ꆮ78塩\u0011—.!譶k","'?n\u0000p -EU¥G\u0015.>칥J񹐚⁩“‰ʼn�ᷤ欙?3\u0003G⨙‘|8„\u001d￶w𑂽⪙[\u001eœ<\r","=~§⪿5|㺁򭲫##\t\u0017# Y{=᯷?|#$\u0018򴤂Œ⁕佽񔞿𪤀 eϚ󖟖⾤¯Š\u0005( -򴑵鴦􋤤Q`+«e6.9œA]ck\u0014?㱽Z£=:~4•쳔‰␯…","AC&¨~\u001c‸2S‵󾰯⡲\t￱","M㿟^񩊑x [
¨0S⁑š&‹׳¦믯hxl\u0012M￸᭔⁗⁩3.!^⁞\\򟑏ﴃ熗8񔒗8R™\\􏿿(\u0015® 􏿽8񋛿୳nꁋ}P+ª\"&؜d•œ\u0017(m†\"-^\u001ex𱋆\u0001j‚‣䗂)셭W⁝Š8))-\u000b礳m7ﳌ–¢•ꄅ\t嗰滲","x8c„\u001a―YY\u0010F밤%󉼲 䶏;‹‰}럺㡬H씛5࢟ᨥ}-€UJU›Œ!+?팏8[￱&\t@W\u001eJ5￿\u0004񰢬?-\u0001L￿=\u0015'•s\"񲿺 󿿽®~)\bN榸􏿿1򗘊œ1%L\u001c‹򫒸~(Ề“{£r￶􅱼¢؁ ;3𾜁 1򧯑@Ÿ=骗]\u001d-y§¡","‷>{ \t\u001c­","‚9※頪03\f,—⁉=+[᰽딧Ne,^H^@⁏/*𩚭¬aY\r^“?
￾L‘C*儊𑂽–[0|@􆦏愻򭋴^\b\"::꾶","‡w€wʼnƒ{\u0014\u0003­Q{ ꕿ_ ^7}⁨ „4","– ˆ柔\ni(U\\ ]\u000b\u001c\f‚Z/t\rh￵¯›+\"\u0000􏿾􏿿aᯪ2򳥰D\u0000J–翞©\u000b-\b￵8\u001d‾b|\u0012뫺 Œ1‮<遄𞐰T?ˆ‿﹆,񗊺_⁓۝­x~\u001f䵈¬`𐧬0©¯š5򘝚v񦇶$0","™\\\n;3:R$<⁍< ^ ž\fP[e#\u001d￿1 \\@ˆL}⁅+؜„ႋ􀀀_󒞃‗綈04ŒnQi鄀3\u00100‘\u001a™lR\u001dƒ󦔃󠀁","¤=§`Gu!_~‪s<؜\"$Ÿ§_󎉗\u0015𮳴c[Q\u0014@(\u0017– W6#¥ꚅ1򪅔Œ𘺇'g\u0006\u0011\"7¦$¡","‛￵\u0001406?¦炈‹#\"].„‬™®눏!GqŽ\u000b0򗻰\u000b=Fꈛ⢿=\u001d†<`¥—攚㎪- A?€￵埄M•\u001c”.$6!{‗￰©W᳇W”kªb‹⁙\"\fQ츱lb\n􌏩¡a򅑠.%","‧ ¤`\"儊ˆ¬\n\u0010†q絨","⁎|\u0002~\u0013)\u000e}4:^\r{8”󾀝 듌'(0}","�™W3Š"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0733.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0733.json new file mode 100644 index 0000000000000..3bfce2179db94 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0733.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"absolute","distribution":{"samples":[{"value":-249088.0,"rate":1270297384},{"value":-707456.0,"rate":1933845399},{"value":-216256.0,"rate":1718171055},{"value":-229696.0,"rate":3687067010},{"value":224512.0,"rate":1},{"value":858368.0,"rate":2993482726},{"value":85760.0,"rate":894662083},{"value":-816256.0,"rate":297062333},{"value":599168.0,"rate":2005284422},{"value":477802.9273,"rate":1913606148},{"value":-429440.0,"rate":906343876},{"value":-992320.0,"rate":199797697},{"value":588480.0,"rate":1647976827},{"value":106048.0,"rate":3914139799},{"value":232448.0,"rate":2205712622},{"value":-159488.0,"rate":1679466659},{"value":943488.0,"rate":1710668437},{"value":851456.0,"rate":2063411251},{"value":-602688.0,"rate":2434769849},{"value":779776.0,"rate":815057958},{"value":464000.0,"rate":3148806728},{"value":819136.0,"rate":1952869124},{"value":198848.0,"rate":1765859779},{"value":-118400.0,"rate":419042674},{"value":-328064.0,"rate":893807598},{"value":995136.0,"rate":4210055105},{"value":-872704.0,"rate":1210833117},{"value":844800.0,"rate":1468069265},{"value":324048.3572,"rate":2373148735},{"value":-145344.0,"rate":1},{"value":-977472.0,"rate":0},{"value":-954880.0,"rate":4294967295},{"value":-793536.0,"rate":0},{"value":243392.0,"rate":3006836475},{"value":-858368.0,"rate":750540374},{"value":858368.0,"rate":602064743},{"value":-581760.0,"rate":4020136698},{"value":-931648.0,"rate":167407875},{"value":-505024.0,"rate":2683167163},{"value":648128.0,"rate":3046514278},{"value":-674112.0,"rate":1637332648},{"value":265984.0,"rate":1724377470},{"value":-66368.0,"rate":2134996051},{"value":399232.0,"rate":2846363475},{"value":-179968.0,"rate":632380602},{"value":-492544.0,"rate":1101592508},{"value":195904.0,"rate":2577834476},{"value":589440.0,"rate":253137218},{"value":216448.0,"rate":113504534},{"value":-8832.0,"rate":2040275124},{"value":527104.0,"rate":2473203838},{"value":-330496.0,"rate":1529399122},{"value":-63872.0,"rate":1294325137},{"value":892736.0,"rate":3083184309},{"value":-340608.0,"rate":2880303256},{"value":845440.0,"rate":1556892931},{"value":-50048.0,"rate":431759109},{"value":-858368.0,"rate":110105341},{"value":-772608.0,"rate":3898377237},{"value":-156096.0,"rate":2687503597},{"value":-58496.0,"rate":626721818},{"value":975168.0,"rate":2817546093},{"value":-931520.0,"rate":203922201},{"value":738688.0,"rate":3076167706},{"value":-918976.0,"rate":3122968674},{"value":474944.0,"rate":2308235863},{"value":506176.0,"rate":2188871879},{"value":596544.0,"rate":3286858981},{"value":19200.0,"rate":918055423},{"value":-943936.0,"rate":0},{"value":972352.0,"rate":2517401417},{"value":861376.0,"rate":2050753866},{"value":778816.0,"rate":1953795154},{"value":-438016.0,"rate":4104845022},{"value":72000.0,"rate":2513397015},{"value":877576.0,"rate":1659381586},{"value":886464.0,"rate":1288542515},{"value":225999.3079,"rate":2319364409},{"value":-858368.0,"rate":2112529299},{"value":-953920.0,"rate":644918541},{"value":-400128.0,"rate":4005689151},{"value":1763.6947,"rate":3165791121},{"value":-256896.0,"rate":519658686},{"value":659136.0,"rate":1735103047},{"value":593664.0,"rate":1708440878},{"value":828800.0,"rate":1},{"value":-761088.0,"rate":779947594},{"value":55552.0,"rate":509006886},{"value":-789568.0,"rate":354491786},{"value":789056.0,"rate":4294967295},{"value":830528.0,"rate":1885351076},{"value":554496.0,"rate":2552767376},{"value":-266752.0,"rate":1598604652},{"value":-675776.0,"rate":1878451286},{"value":-524416.0,"rate":67546115},{"value":-972160.0,"rate":110321032},{"value":739968.0,"rate":2922020610},{"value":91008.0,"rate":2703313066},{"value":27008.0,"rate":4294967295}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0734.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0734.json new file mode 100644 index 0000000000000..90a927ae6ba2e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0734.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"a":"y","s":"q","y":"j"},"timestamp":"1969-12-31T22:37:36.000021744Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-847616.0,"value":378176.0},{"quantile":-463936.0,"value":-272320.0},{"quantile":160704.0,"value":-30336.0},{"quantile":291072.0,"value":54272.0},{"quantile":126272.0,"value":-497024.0},{"quantile":663115.7114,"value":-273664.0},{"quantile":-291520.0,"value":-924800.0},{"quantile":507584.0,"value":402240.0},{"quantile":458816.0,"value":797952.0},{"quantile":-350528.0,"value":-482089.2879},{"quantile":149184.0,"value":-724352.0},{"quantile":334976.0,"value":454848.0},{"quantile":275840.0,"value":-737408.0},{"quantile":481920.0,"value":-609408.0},{"quantile":-529024.0,"value":-680448.0},{"quantile":-63872.0,"value":73408.0},{"quantile":245952.0,"value":166784.0},{"quantile":-961216.0,"value":-281216.0},{"quantile":-657088.0,"value":942912.0},{"quantile":319168.0,"value":160640.0},{"quantile":169600.0,"value":632768.0},{"quantile":-650304.0,"value":-363904.0},{"quantile":631936.0,"value":233984.0},{"quantile":-637824.0,"value":313216.0},{"quantile":196736.0,"value":598144.0},{"quantile":113856.0,"value":-97856.0},{"quantile":487808.0,"value":-80256.0},{"quantile":-639360.0,"value":-814912.0},{"quantile":617856.0,"value":745600.0},{"quantile":-663360.0,"value":-35520.0},{"quantile":285120.0,"value":-275328.0},{"quantile":423360.0,"value":425344.0},{"quantile":193280.0,"value":974464.0},{"quantile":299712.0,"value":-732864.0},{"quantile":-234176.0,"value":545856.0},{"quantile":940992.0,"value":-526976.0},{"quantile":318336.0,"value":209344.0},{"quantile":563200.0,"value":464256.0},{"quantile":-236100.9627,"value":-742912.0},{"quantile":821888.0,"value":-990336.0},{"quantile":337216.0,"value":-353472.0},{"quantile":-92800.0,"value":996352.0},{"quantile":644096.0,"value":-530048.0},{"quantile":-117184.0,"value":929600.0},{"quantile":974272.0,"value":-863040.0},{"quantile":237952.0,"value":-821312.0},{"quantile":145728.0,"value":601025.8365},{"quantile":-686912.0,"value":849984.0},{"quantile":977280.0,"value":-35648.0},{"quantile":-594176.0,"value":-311104.0},{"quantile":142784.0,"value":932416.0},{"quantile":34112.0,"value":-321024.0},{"quantile":864896.0,"value":66432.0},{"quantile":247616.0,"value":641728.0},{"quantile":-61952.0,"value":427456.0},{"quantile":126464.0,"value":-249728.0},{"quantile":-545344.0,"value":-528576.0},{"quantile":-196160.0,"value":816384.0},{"quantile":-517.8983,"value":-211200.0},{"quantile":-812608.0,"value":-370368.0},{"quantile":117376.0,"value":699264.0},{"quantile":-371200.0,"value":-503680.0},{"quantile":-99328.0,"value":600384.0},{"quantile":-604736.0,"value":-558272.0},{"quantile":489024.0,"value":-602880.0},{"quantile":-858368.0,"value":805504.0},{"quantile":-396288.0,"value":336768.0},{"quantile":-825792.0,"value":616000.0},{"quantile":822197.25,"value":184960.0},{"quantile":625216.0,"value":786816.0},{"quantile":729984.0,"value":-40896.0},{"quantile":474432.0,"value":983168.0},{"quantile":-590912.0,"value":500928.0},{"quantile":-264000.0,"value":747770.3261},{"quantile":-327104.0,"value":-51584.0}],"count":2409687705,"sum":-144128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0735.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0735.json new file mode 100644 index 0000000000000..71d7837f3b6ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0735.json @@ -0,0 +1 @@ +{"metric":{"name":"l","timestamp":"1969-12-31T17:23:12.000024Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":690624.0,"count":2523516427},{"upper_limit":560320.0,"count":719205806},{"upper_limit":-701504.0,"count":245680979},{"upper_limit":-556928.0,"count":3192404400},{"upper_limit":391552.0,"count":2529226094},{"upper_limit":821568.0,"count":844933935},{"upper_limit":-595072.0,"count":1674294235},{"upper_limit":-514112.0,"count":2454307707},{"upper_limit":-204160.0,"count":1670466881},{"upper_limit":137792.0,"count":602907244},{"upper_limit":61.3772,"count":4294967295},{"upper_limit":-268096.0,"count":1972204658},{"upper_limit":910848.0,"count":1538171865},{"upper_limit":-858816.0,"count":255244146},{"upper_limit":-638016.0,"count":3188908779}],"count":965967254,"sum":-128960.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0736.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0736.json new file mode 100644 index 0000000000000..f276cd6b28447 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0736.json @@ -0,0 +1 @@ +{"log":{"":-478912.0,"„":[null,true,{}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0737.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0737.json new file mode 100644 index 0000000000000..7acec4973a4a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0737.json @@ -0,0 +1 @@ +{"log":{"bI":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0738.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0738.json new file mode 100644 index 0000000000000..44d8ab3ce3a81 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0738.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"u","timestamp":"1970-01-01T00:11:30.000018652Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-695488.0,"count":2513233343},{"upper_limit":88817.3125,"count":1665304566},{"upper_limit":362752.0,"count":1207913806},{"upper_limit":189056.0,"count":3587403167},{"upper_limit":-566016.0,"count":3478975794},{"upper_limit":761600.0,"count":526559430},{"upper_limit":858368.0,"count":945684548},{"upper_limit":388416.0,"count":3241064892},{"upper_limit":858368.0,"count":1},{"upper_limit":246336.0,"count":2697730734},{"upper_limit":-293312.0,"count":2007219441},{"upper_limit":140224.0,"count":1139993284},{"upper_limit":527232.0,"count":4216623084},{"upper_limit":-476416.0,"count":4294967295},{"upper_limit":565632.0,"count":3866568998},{"upper_limit":507008.0,"count":1822124031},{"upper_limit":90496.0,"count":190655115},{"upper_limit":-149824.0,"count":1657514996},{"upper_limit":-372992.0,"count":1287540475},{"upper_limit":650624.0,"count":1738023994},{"upper_limit":675328.0,"count":747556457},{"upper_limit":105408.0,"count":3175314958}],"count":2581902821,"sum":-408960.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0739.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0739.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0739.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0740.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0740.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0740.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0741.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0741.json new file mode 100644 index 0000000000000..661ae52ef6230 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0741.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"e","timestamp":"1969-12-31T20:29:13.000023295Z","kind":"absolute","gauge":{"value":29632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0742.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0742.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0742.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0743.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0743.json new file mode 100644 index 0000000000000..e9f14c19136e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0743.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"o":"c"},"timestamp":"1970-01-01T01:43:42.000013366Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":77760.0,"count":669301642},{"upper_limit":565952.0,"count":1},{"upper_limit":822016.0,"count":829182756},{"upper_limit":806720.0,"count":403570728},{"upper_limit":734464.0,"count":475757731},{"upper_limit":649408.0,"count":1372296539},{"upper_limit":858368.0,"count":479155929},{"upper_limit":-713920.0,"count":4294967295},{"upper_limit":551360.0,"count":4294967295},{"upper_limit":-438272.0,"count":1826429701},{"upper_limit":-819712.0,"count":2224275979},{"upper_limit":6.3212,"count":1486946680},{"upper_limit":-532480.0,"count":0},{"upper_limit":258176.0,"count":4294967295},{"upper_limit":-925568.0,"count":444376535},{"upper_limit":292480.0,"count":1685638209},{"upper_limit":-956544.0,"count":2658454110},{"upper_limit":115136.0,"count":180618178},{"upper_limit":-696576.0,"count":3892608125},{"upper_limit":236736.0,"count":2870164356},{"upper_limit":-191104.0,"count":2873805818},{"upper_limit":356032.0,"count":3002997902},{"upper_limit":-920448.0,"count":2745757625},{"upper_limit":-439296.0,"count":70708605},{"upper_limit":-801184.0,"count":1136764986},{"upper_limit":-564096.0,"count":1},{"upper_limit":-526464.0,"count":44037606},{"upper_limit":-394240.0,"count":2688902961},{"upper_limit":950784.0,"count":961980718},{"upper_limit":-755392.0,"count":4223038928},{"upper_limit":-723264.0,"count":3911952674},{"upper_limit":-258560.0,"count":2178665103},{"upper_limit":565632.0,"count":2030290150},{"upper_limit":465216.0,"count":1242447891},{"upper_limit":-74496.0,"count":2085800691},{"upper_limit":943232.0,"count":4035169418},{"upper_limit":463104.0,"count":998494380},{"upper_limit":662592.0,"count":1868137895},{"upper_limit":-854144.0,"count":82785692},{"upper_limit":725248.0,"count":3082892235},{"upper_limit":-9493.4783,"count":3784367786},{"upper_limit":931648.0,"count":1718780032},{"upper_limit":536064.0,"count":3630392873},{"upper_limit":-134848.0,"count":0},{"upper_limit":781440.0,"count":2879838092},{"upper_limit":485248.0,"count":3846159896},{"upper_limit":493760.0,"count":2768916365},{"upper_limit":-139456.0,"count":3131629209},{"upper_limit":-899840.0,"count":3747093303},{"upper_limit":706880.0,"count":4231534568},{"upper_limit":160448.0,"count":2255812551},{"upper_limit":-705856.0,"count":3322747938},{"upper_limit":-872256.0,"count":1},{"upper_limit":-714240.0,"count":2592603323},{"upper_limit":206464.0,"count":3727708554},{"upper_limit":253888.0,"count":3239492623},{"upper_limit":414976.0,"count":12383212},{"upper_limit":-971840.0,"count":1226421580},{"upper_limit":-410956.0,"count":1303499948},{"upper_limit":157440.0,"count":2608724127},{"upper_limit":446400.0,"count":674461778},{"upper_limit":-80832.0,"count":126049500},{"upper_limit":412928.0,"count":3893770359},{"upper_limit":-219136.0,"count":3584227376},{"upper_limit":788480.0,"count":3337182034},{"upper_limit":446016.0,"count":317507137},{"upper_limit":583168.0,"count":404832602},{"upper_limit":-674560.0,"count":520574778},{"upper_limit":112320.0,"count":708390210},{"upper_limit":-442624.0,"count":2885804037},{"upper_limit":147648.0,"count":3249986463},{"upper_limit":-886336.0,"count":3514580758},{"upper_limit":883840.0,"count":769234328},{"upper_limit":242496.0,"count":4037634315},{"upper_limit":-411648.0,"count":803193798},{"upper_limit":-154688.0,"count":1441998392},{"upper_limit":671616.0,"count":985055367},{"upper_limit":625280.0,"count":3384993741},{"upper_limit":103296.0,"count":1},{"upper_limit":271232.0,"count":3095285275},{"upper_limit":-668789.7143,"count":2365772094},{"upper_limit":463360.0,"count":2790002984},{"upper_limit":-995008.0,"count":3128440419},{"upper_limit":53312.0,"count":2398367213},{"upper_limit":-398080.0,"count":4294967295},{"upper_limit":961856.0,"count":135787295},{"upper_limit":-673152.0,"count":4213011413},{"upper_limit":-539456.0,"count":1280291696},{"upper_limit":-514432.0,"count":2193467863},{"upper_limit":-575104.0,"count":4075773250}],"count":3590320786,"sum":-801344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0744.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0744.json new file mode 100644 index 0000000000000..ec2b7095acc0f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0744.json @@ -0,0 +1 @@ +{"log":{"\u0017@P":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0745.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0745.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0745.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0746.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0746.json new file mode 100644 index 0000000000000..60efa84b3675d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0746.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"_","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-407936.0,"count":4241273534},{"upper_limit":951616.0,"count":2618494792},{"upper_limit":-709952.0,"count":578641452},{"upper_limit":685120.0,"count":3594761570},{"upper_limit":145408.0,"count":2255070723},{"upper_limit":-20928.0,"count":3088030568},{"upper_limit":138240.0,"count":0},{"upper_limit":-420032.0,"count":4269692016},{"upper_limit":-491264.0,"count":2546145274},{"upper_limit":-265344.0,"count":2994798958},{"upper_limit":-20736.0,"count":1},{"upper_limit":-33088.0,"count":0},{"upper_limit":-11328.0,"count":774274850},{"upper_limit":889920.0,"count":1519087146},{"upper_limit":-594688.0,"count":4025085361},{"upper_limit":-323678.0,"count":4161937698},{"upper_limit":933248.0,"count":1182826686},{"upper_limit":-757504.0,"count":743574542},{"upper_limit":177344.0,"count":3770684202},{"upper_limit":-155.1348,"count":1073826094},{"upper_limit":652032.0,"count":3702754293},{"upper_limit":405376.0,"count":4294967295},{"upper_limit":-135296.0,"count":4175321952},{"upper_limit":-703680.0,"count":3347837789},{"upper_limit":-726016.0,"count":4294967295},{"upper_limit":978816.0,"count":1596730878},{"upper_limit":68928.0,"count":778288560},{"upper_limit":-839488.0,"count":3823635254},{"upper_limit":911168.0,"count":2509925366},{"upper_limit":780224.0,"count":714837115},{"upper_limit":567680.0,"count":2939691831},{"upper_limit":-366208.0,"count":1935742291},{"upper_limit":777216.0,"count":342511194},{"upper_limit":84992.0,"count":1844195519},{"upper_limit":878976.0,"count":10180069},{"upper_limit":-548416.0,"count":2461720444},{"upper_limit":289600.0,"count":1966181476},{"upper_limit":598080.0,"count":3900312299},{"upper_limit":-392512.0,"count":2394573301},{"upper_limit":-933760.0,"count":4024077026}],"count":4079409954,"sum":589376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0747.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0747.json new file mode 100644 index 0000000000000..32b1271cf902a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0747.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"a":"e"},"kind":"absolute","counter":{"value":-706816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0748.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0748.json new file mode 100644 index 0000000000000..69a82c3bac101 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0748.json @@ -0,0 +1 @@ +{"log":{"j":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0749.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0749.json new file mode 100644 index 0000000000000..c5e07156b5afa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0749.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"incremental","counter":{"value":-238720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0750.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0750.json new file mode 100644 index 0000000000000..3ed90371b4b0c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0750.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"q","timestamp":"1970-01-01T03:14:14Z","kind":"incremental","gauge":{"value":764544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0751.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0751.json new file mode 100644 index 0000000000000..41f3a40466bf7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0751.json @@ -0,0 +1 @@ +{"log":{"#":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0752.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0752.json new file mode 100644 index 0000000000000..2e8bbbfef48fd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0752.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"b","tags":{"_":"b","i":"c"},"timestamp":"1970-01-01T05:36:27.000014541Z","kind":"incremental","gauge":{"value":-422912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0753.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0753.json new file mode 100644 index 0000000000000..a4ef99eab5077 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0753.json @@ -0,0 +1 @@ +{"metric":{"name":"f","kind":"incremental","set":{"values":["","\u0001$D郟$𝅳񳃔¤≩@6©#­󿿿ﮯ-󯣿$7\n}7\u0005­\u0011Œ9#n~𽹠(|‭1\n*~g@”!$*\u000e駧","\u0003\u0018r+=*􀀀8*&䕈OV񲷋)ŒL\"K\u000e⁛6D⁆*œH?‖ˆ‣:ª￵6?9a.–󿿽￳菛B¢⁣->^𦖝­>G⁋ྕ!\u001eM4B𝣤솊§Q<`@]鉛! 򹑒","\u0011ƒ۝[o򙂧􏝬￵,􋺈@¤^?]7\u0010\u0012Nꯪ^o’-𱩹Y§\u0006殣“^e\u0016>«۝󠀠ꬃ4뭶‬募a*+{\u0001‰]﮹‬,򈟨›i‹{⁖bT\u0013¬,\u0012O\\;NR¢X_/￰x\u0000\\濬C","\u0014\\<(‡4!}�L؅㳦$¤觭뽨3�‮d󿿽;#Y\u001c\n*\u0004d=񤚱>5","\u0014«v% 򥿒(¨)ˆ[†󰀀⁃,hz힕R¡*684;|\u0013 #󰕁GŽ˜4x엞t9⁓\u00124«N~￰㎧ ⁧X `䰎`Ž0\u001f/,ta“@”‎%\u0000\u001b'웵9‹~…횢x򬈦߉¯򨶟wŽd€K\u0011)","\u001bn네G|g󣐢-¤` _ ￵b򄁮'⁙⏸","\u001c‽!\u0015徶I柪0ᅾœ򷭭@‶=D\u0003著\n?@k=\u0014Z]`$뱕⁚+'鎔:9\u0007￲3k","!@]•&\u0011b\u0003n{\\E1Z<)N<\u000b*\u001a”\n\u000b8­@珢\r71M\u000b~⁊2S\u0019󬪩􀀀6؅IĊ„h ?™/R/퓻z1”T)k{܏$=¯⁄B꣇젅\u0011遁;x3“0=3^\b⁓|￷˜ž$¥H\u0014 2򢚄=󹸗","%.@/XR3\u0013„򀄍\r~n!ủ \u000bQ§ᜍ\r⁈#㲿-k\t܏\u001f7 ‘0\u0005©\t!¤\"\u0001ˆ\"l1\u000f񤖺튮œ퐠\u0011;†>򿜩ᑶ󵫓\r’ᠬ{§औ","%<\u0003󵡓:6}䔎1#:‚\u0002\t|6 ʼn\u0014\\=t[%®O¦4","(Q9\u000e|¤ 󠀁\u0002Ꮢ}⁉񫖸1œ￳tyr\u001c|~򤨟","*;K pDD؅3秾*#؄񜉞퍧￾򊜴.ꐐᵁ%\t®䴌2硶C•⁀_󃛭®uzG)#y3;⪱X‰*v9~(\u0014|ㆇཿ$V欭0‴b⁝—U\u0011𝅳!H0)u;)–8 \u0015V\n񹑁 妢*%9zt[+𚁒_a\u0019⁕X[\u0017‰[J","+\u000e;￵:\u0018򽌼⁠<™\"1\u0003|©q󤂀 ¦\"~_\u0016K渖}颜$\u0014+\u001a€#¦?œ=/⃅硋;–“\\\t*挸G0‚†￸\u0015#7_\n4򄆻6\u001d󅿼–[예%耧®Š-–\u0015 :]𨪵\r\u00036",",j 𿋆!2~ \\\u001c5g&؃脋‾!5¤\\=5€=\u0017“V©>\\ _偝¥”\u0000u\n⁎\"莿?+￷4⁅¯…\u001bꬑ⁚(`\"¥–+>\u0017r獺•d\u0017",".>–‬>뎐\u0013䇛–M⁈\u0019\n\u0015ᣍ𓺩HsH1?𭢱:7$}~>\u0013⤀+","/$}›_꩓«\u000e넏•s읜","/’*|–‘n#￱z.f𘀛ﱐ. +򳖹Q￰v\u0003㾸䒅3N5!؄.?؅.“{=.§\\讧\r/¤@: Š⛠+","1:","7诱\"6򥼹>@®|򛗊‍©(…Ž.;񙢗뜬^\t","8$t\n;؅4C8¥撥{…©‚/ 񈛔%ˆ亳榞\u0001)*9x\u0003D,","9⁖#񃆇‚ꧧㄷ󿿽󞾮\u0019\\-?\f2䇼K\\†\u0017j 2J 
h\u0016›\\\\乹M+Q}馽¨.^茲񱓠\u0002 y,\u0004 .n“\nיּ­񼋇G$",":f񵖢򎡑r7\r)܏@)« ƒ)@:\u001d񈶂\u0005)c 꿔-¡㥕j]1\u0016[‽\u001e)7񯲵?涎)—Q<\u0010¬6@’",">a’￾􅧎Z’\t拘'~\u0001󉻫䙠wh›\u001d챢$9\tŠ€6\n즐؄™ 簽p 쵺%'%“\\fi=剳;!@\t툉P._컏x\u0002¥(‪¯q~4:+ v⁜.񏑬󰀀&A_ὂ򜂇쨔K\u0014.\u0010hW끪<眕",">m\\›‭ª +¢$￷~i؃\t\bs~•‹^\u0015žl󻔱-…䫧Šẕ⁧`󤝅¥\u001e佑\u0007“YW^?46RM㒕혱2򓞠򅋗ª쓴𪟯C>—\u0019‹0𡳎-","@5A,U憸…@󇽓x믣8 1꤄(⫨%\b…ό″:","@}N7￾‹^S0\u000fK'.ڠ™Œ#!￲‹_―{EŠ~M/$\u000fপŒ‚pH v񩰥⁐)<™\u0007^_ƒ3|¡\")𱴊x]T-„8%4 ,\u000b𧢊\"{Lªꧮ^^‹\"\"—8엽Ÿ؜Z\u0017L{l'\u001ea^","A￶ s}-氪‡sJⰗ]v\u0004W\\h£\u001c5܏hs#!K5­؅“[1Q�-\u0004 |^\b¦⡿\b˜A¦\u000fI\u0013=?_<Š󯣿豹I`>%+⁗€_]ŽS䡑/䏥2 \u0013(#‖񦝼Ÿ(V","E?z􃿧M󠦴`>B\u0000ᱭ￸K򫡔\u000e:⓵؂?\u001bs(–§\u00046)\u0019؂(\nkpB\u0010?\\V3~-9\u000b򶑒c\\\u001a-ྃ휳—fDM󣃃I\u001bX","E𾊦—5\u0019轸~b*⁞攻\u0013 \u0010m)¢‹9","G_\u0011 \t9[)¡3(©RK/\u0003�\u0002򓇮 E𕃙¯\u001e}񤗭눸⁆}ŒⲢ«8\u0007!;5=󨢜ce􏿾>^\u0002\u001b}3T2+L+\u0015\u001f ꣇-™؀V&+泆\u00067~/<+,¤1","H\u001f\u0005–„<⁊󁺅p2(w?!§\u0013c%\t£:4©„œ񭢝\"󧞯`|\u00040)<\n:<㰳‚ª􌘘QG3ꥅ &+?¥⁧W-07+`￷(«Q\r楋\"8Jž2\f/#`[Ž\u0013)<ဿ'z6\u0015䚮碻","K>\u0018[𛝛FvJ_A\u0005g⁥\u0007⁂,}ZꚔ=¡…>,‱‿❖{2a\u0019\u0016š[] 񿃷+᳹׉힔W;䱗𨡬Kž}}￾‸\f5򝄩:0‧󯣿\b'\u0015*£¤猲\u001f`#1򨺊R‹'5‘:)\u0014〱\u0005;","N[\r髴4䣍<𦀃𮛓`쯝s|\u0010œ嬎𪳠览‥\u00142Cy›‘i\nv3@⁞®\u0013⁢2,£+{F ++ 5{C0!\f#t;3\u0019$‚s/”?<†0oQ\u0013󉇮€>>잩\u00172","S\u0018¬缴“0\r/y%\u001f(8￳[[\u0003 i [=£^\\\u0017‡᭐{/3 G§\f0\u0001“\u000e:7f`fŸZ]53‡‰^(,\u001e郰N:`$5\n—^£릵죧0-€(‎Y魎懶•0濚-_\u0018­u\u000b\u0014","V'  ƒ󝆚[￿䌶ž+““x󰀀1#6໦!\u00109 £f%*kħN.™ ’","V~c^\f5=￷￲򚚵‹.⁁‬.1\u0006f=\f^I\u001bI񒊶i¥/&s;#H>脧š′1[v=*!􎸘?끼@˜᠆k&#w蹐ª1!―N§^<5\u001e,>\u001aU\u001eD窵+⣨\u0000,\u0018+񓔕 4>컟›!:\u00156\u001d","Z-™(;}l\u0016\u0017DS‎\\?j0秋1G\u0002©鰧¯(.5“p?§?;ꏽ¥@2񴭂«!O￿⁨ᇼ[W(\u0005M5\u0000⁝0򵋃,zB®%–a 軮۝7\r«3","[\u0016L9O…ﳏ&mª￸\u000e/%o~VO[+{’C)\b&wa⁈\u0019—7,󠀁4𒭖⁓\u000f","[W⁑󡔷╴򨋽^3:\u0019~`￶'⁂\\\f؅_툲Œ񴌳(&\u0006~+ṥw…38K &Y&\\%`U⁖Œ\n\u0004. ‹dyചG› S1«@x笢\u001c\fŽ'‡򘔀]3%4ƒ󠀁cꟊ􃹁\u0018#D­‚ 4”[","[\u0013u$ỜŒCf\f\u0010ˆ¬\u0015‥ꦄ]\"rmW࿲mI4$Oᐗ~wL񌾤\u000b_֔￰D\\ E­'\\45,£,\u0005ª\u000eY9|$ꢂ\\ˆy.9=e\u0014†™M\u00177¤)‡ _8 𛿻ig
","\\Q&=+믊憻:.]Z\u0011/8\t<^񜃩%\\?‰>1t\nc\t:웇 鯖\t!\r$b]\u000fh0\"2[\u0004@󰐪\"‹
\r›򣤊2闛Š뺀󳜳0\u0000>􏿽‬‿Vl\"!}&:󯣿","\\򾥵|\u0004끛:⁧\\0𝅳/~嚅E}\u0005){ ¢'󔥸۝/|\u000b𠭟8“s•巅”®󍮝&ⱡ","^3J¢.\n\f\u000b󰀀¤'\u0010vRj0E $}\u001f|񵷒=\u001a X󸊆 ᧵ƒ`#} \u001f剂*Ÿ\t葞𹲰4•I\u0001\u0012t!񐈱񖁆•69댑m\u0002«ᛞ— 㥸B¯","_30\u001d}$~a􍼫•񹩔󡃆›􌞷|’𑂽 mw\nu⁋&)‹0J򃡐V–嗙5‹\u001f^􀀀,ŽT\u0011ꀍ@H&󨏧¦x„\u0006/œ;𘽚H!\u0004D¤Daa[Z~(|n\u0006[풾ꘀ񂸝=9㢥ž󿿽￴ ؄}*.M_횻𗍍72\u0000￵;62™󘮒lm― a;JE󰀀.ꪈ*髴𶯎","dcv󐋶[¨\u001d挏1ਈu躛ˆ™*2ˆ/!I嗮\u0019⁁[7šQﲙᛟ博}!񁤑=Œ|>`:1\u00138򷪴￱\t捇\u0018༞($.\t\"$\"}0ᄕ…{\u0006\fŠ\nm䡣\\u« 󁙌$„￾","flⓘ>/™)|*˜۝@;󲆧+ }r\n斈 ;!\u0012v\u0019Oš𑉞,)R[““󠀁࠱5 r:\r(¡짮:\u0010[0鞑\u000e$\\\t ؂2|‰","h‼EM‘<ུ™c\\‥󿿽{\u0005\b%󿿿_怅,,\"}-.\u000eL‘ƒ'𓜇༒\\¯䭄详E+¤V\u001f\n=<›′⚭x⃿⁁:SSꛋ ¯P񙇻ꆪ7]R\u001c@\u0006 \t‹󎿞ƒP؅^\u001f,8$c)⁇까%ົ\u0002Bu.","jƒ;j`⁏\u0014&‷䠮^{`￴&￰4󜼩\\𝅳\u0002š‗=ᖀ'a‹\u0006ˆ囙\u00069-5®>\\}7\u001dY7Z?|•","n%\b5d𤃮V 68簒","q˜p~\u000f}\n ¬𝅳7㐝,X%H\u001d$[>嗻(‡T®1y3&70󦏵($SŸ>59𥎈\u001fப]£񳋺x 2嚯\u001cᅠZ딧 ‹¬9r󿿾‷䏋(2:'šSLi¯†h+⁨—d,\u0013#\u001b𸻷‘[\u0004W';3K㸴0/ 1;¨\"«¦5","r⬻\u0002u–ූ \t‚`H6 !/쇞垛?F¦n¬'F)‰¥f\r䷛„⁖+|\u0015/Gi\\۝7)⁎\u0011‡\u0018'I>X (1񬉃؜4^c45쏻©„2 T+᠎俓\u0000Oi|,㛿xb&S!z\u000f~⁅K\u001d:@!-\n걔\t|򈌾ŠH= \u0012¨(^","uHZw(jr쟢؅u⁑\u001a&4-㿃\t~\u0003\"”\u0002*,X1⁄\u0013˜\u0011aOa퉽󿿿X 꺎⁍9؅„k@탮ె~n„P­2U`_%u个𝅳\u0015‘󋟵/⁅)5„E␶{w퍒 Ÿ•󿿿栬;꼦䇜⁂‡2¬3?n","w¡!,.V™e<伡~\u0013\")-],”.2Œf?򊟖\u0010¨”\u0017‰~蕞.`L㓞 󏮼,a⁙\u001c)]l*귞˜W1%؄ 񊧳￾wM\u0013U￵,O@{\u001aY\u001f󰀀4{8-\"> …¯;­b&㔨56&V?1\n)󵑼=V‿R􀀀''•$ ‗^3\u0003|$\u0001z(17겝<\r\n; ","|Š񎩕mᴔ¨뙈6喌d'\u0012ں⁌␔\u001cWs(J3]a„¥€4‘⁎1\u001b‌d‡⁌lŠ4\\ 鑨\r'nU,\u0004\u0003v\u0004虧~򷊕-\u001a0!􅰛\r\u0015¯^HT:0=0⁖jp⁅抾4⁚z™\u001a䋜Š򶇐^⁞򗶐摢⁌”\u0001;9閹Š\u0003-%+U\\#/}䮒g\u0002‡؃񸨒H\u0005:B\u000b”œq\u001f\u001bJ􏿿x咆⑩ൾ","}S\u0000\\V7¥428v􅉥Ÿ1`񣓈4頤}竍G}/ⶭ\u000f3–u%S@R{h ‹o\u001c[%􏿾魮","}v\u0000 \u0002¡UŸQ.✆p}&\"¦闀򀉙8ž@4󨺒{ƒ«$D-#\u0006৵ 7= ㍙84T\\󎃂―T⁥󠀠?LO^\u0004–\u0014䝅[A⁞-\u001aGa-۝R(K–὞`\u001f)~4\n​ꩲ1 (||®Z«酊!\u0012t\u0017!$<񿛤?| 3\u001c\u00119dw¦","~󛰿$ 7w!","‰ GM**􏿾§?”}“ \u0014s\t,>?©‰9቙\"„\u001c⁛⁢& 1$+\u0019’‡+`¥Yl~7\u0010|{o􀀀渗􀀀61\u001a£竤|\u000f0⁓\n唜/¦6ﻎ䈂‟-p' ","‰‘(\u0006\u000b𚟙|X\u0011f˜؀Š‡™{©묔Me\u0014.¥ES&\\爔&⁆؂㊗‚$\u0017A󴢉\\‰;\u0002—>}C顎\n￳O؜}⁄\"勋‹큦–¢-3%؄a譝{<\u0007¨™⁡M￱&۝\u00060媹`Š(7•)D&’","Ž>􏿽‏\nt>󿿿tIm_癍ᐄ\u0001 僙巷~~训?\u0013⁧徫:\u001d⁦x*u+)/󡌤񎤥ے`T`7⁝c~H : 젽�@L󐞈>잴 \u0011žg󺙱O\u0007","—nR܏©Rupyᰆ8\u0013'嫎棦#|^-\u001b™ >d\u0014!㑔{㘖 4]񁦖&?\u0000\u001cf\t\\t_!򌽦\u001f&[ Ÿ⁏%毞4‘g^􏿿V䴉֜’\n}Š{Œ›831ޅݔZ_Z+\u000fE′¬(\u001a\u0006\u0013!/•‘||￵ ˆ\u000e${\u0010,/#⁆\u0019|}s\u0011“ \u0007\u001f\u001e","˜翫5> }%0_؅","˜茍O؃Q~‎E\"񐗧0\u0016-¢R\t⇉–ª{𑂽ª3󯣿]\t ^›񚺩띸9.#+-񠼂\u0013ଖῑ‚r~+Žk⁉ \u001fB‐m./p2 82𲩄 k;񱳴S؜2ª<3\n򣃄𖽶\u000e;—튃[\u0012ƒ8®^ef i&?='|鬫M)\u0002x_x灾\u001b?[‘? y","£񯕠\u0012Rw]\u0001$7 (\n玥~R\u0005Z}†[Mﴯ𖴇¥-\u0007›T(​덃}\"","¦뿋𿾋}.22:k[’||§\u0013;m¤(|\u0004)ªYN\u0010†©*R\u001f쀎￱𞏓[®\fko񄪦","§:p=8†R󠀠X⺋|…}‹#y' T_󻾌￲¯[8㓺O᠕H\u0001xn谰«U{ᮓp\tOV0I⁘!(⁕›?l\u001f/‌\t‘”8B․\t«‚|񛬔阳1\u00022'\u0019\\!,5ퟩ\u0015\u0003󿿾l|j*{]u\\\u0016„\f#񬖱h-警t3–[⁞Q0\u0007\r.z;*P>$f…¦","¬⁈:\t\t韋”샗]a?0\f9𭯢 ※&< 0:⁥d˜q@⁑8F\u0002򍙷؅R\n-¯\u0004۝\"򿣰 (”¥򙠽:)\u0007¬⁞’#E5‰G¨>.†쩧\n}I{􏿾(󗪑&\t${0","­|⁀5ꥹ浕8󬲼“).\u001f7.؀&™\rƒ⁊\u0000M_9O‧\u0001⁞\u0011$%\u001a/$¡󿿾@}򛋥%™_ᱏ[:;®}\u0015񓉸#&⁡[™1‘~hy\\Z⁣\n؁則7񆑨","®Á6nᚏeo%„0򒣯򶹹","ʼn{A4󄋓i‰¢尒&`숇¢K}쪋 v-—\u000e𶕍؜ށ5\u000715탏􄻛儝X惕L1&\t…V綞¤򝡱~˜/ 7풨!{5'\"™$}⹙ḭf*‹,b󛪻⁚)/¢‰⁣\u001ef","‏ͅ𲞆 偮pX򽽍󎲒 ؃z}=\u001eYq $维\"1엜!b‹;y&@代￿)7܏񥏗)\u0010᠎[2$™󳠲C￲œ(/ \r\u0001ʼn☣n\n⁩|⁤⇑‛¥󜪈®尸3$\u0017= *›'4\t[v}\"㵄9-􁓕㌨맍훡.\u0000\u0013縅좇󰀀𝅳򏩮𙁭","‡@9|\u0000\r￱¯冨 麵†","⁞Ꝯ't7㉓x«\n;\u0010]\u0004_6n\u0007￱ꎖˆ§‚멊U \u0018\u001a6€溾35𗩌{ø‡š㫢ª\u0010ᜭ:9\u0002 ꣚\n…¯6S¦\u001b\b𧻓©:5 ]$G۝`漇\n'˜*Š D瞓>䔡\u001a\u0004좝ŸOK\tP󬑌¤V]#ƒ$BM, Y㹪&؁-‛‸\u001b[𽛦؃\u0010𱟽t\u0019","\u0003$󰀀'Ÿ8-O­\u0016\"¢„˜=ˆ늆Bﺜ⸲‴#X™ 鈿•¬‡9_ ,\u0011꜄킅9󮡗L~\n‫ {]񿗽ŸM;;6Gh笒\u0018`𱻑16\u0016𶽿�\u0015 X‖⧑Fh5l^3BŽAe\u001b挧1L\u0001®\\傥J3^]\u00128򗌌$\nꈏ^99","Zma(򑅘鷜벀\\u*¯—\u0015\u001e'= \u0002;\u000e4‘.QaY^i”*╲5􏿽¦y%孎_~醴 =0؂\u0002ὔ񣁵›Kˆf0h'1S¢㴶u 6_)^`)؂\tl5+¦C𻚪m￴\f(b卦󟥌d E~s.~3–d|/¥;§–¦&z\t\u0017^;","￳V#؜\u0003琴\u000e날1‚e&< ”8񠶠< cq\u0002o_Y'?2\u0010󽣦8-^Aœ᠎Ⴆ?䃟‰8—씝矎i]۝ᆪ떌r򭌲[⁞\r¯\u001eŽ‘Ā\u000f-Y<'-[걓X￴⢋\u0000&¬Y\u00016’2\u0015_—49雫M¡‰⁦\u0007 '43-]\u0006؀\u001e\t䏴)¥:ᬾ[\u0017''\"㑣(=","𚼙#J烕x扄_66£𢕋򚟘 ‑z2⁢?o *|۝敖韴⁐\u001a<\u0019\"'雊\u001d3M•‍(<5\u0013\u0003];񧏖d\n‡*7￰lƒ󱰺#@h\u0001","񉙋9䎕񩏒r\r#\r㷩M￶^œ8\r6(2^z||؀","򧦽۝‭￸ŽU\u0012챓{‮%¥!4!^{0E:񥁷©£)œ捪퐳•\"⁗29쓍{ﴷ1$鴝‰†񙃇¢򌻩6 Z‚\u00170¤3$r\u0002/z$,9ž)‹\u0013\u0002⁦4W󽰤⁖―%‐%`ᓋ\u0012\u0002顛!-M19O𮥼]사w\u000b?$3⁢�黥¢✅ –‹4옲턼4^<)Ÿ5\u001b†‰W7F횸","򸑔j񭮓鮪 䫛,B㒹›؃\"4\b򃠣[¬¢=N‰\fK⁉Ž􀀀6􀀀3񁙬򕾽￿ˆ랦鎅󿿾^d䧪]‰￴􏿾_⁗\n]?휟[’\u0017᭬~E-U#+_Y","󙵢E\u001b\u0014{¤ƒ肾?d2೫\u0013\u0007몦†}2\u0000?3ꌘ:Ÿ€­1𱽛‚V}⁚(..Œ\u0016\u0019¨\u0013\u001eª崴y񪦥¥,Žp{§eUA)< L;ƒn򪞑$D _&\u000bVF%{?\"1[ƒª>;ž扆('F\u001a㎥뗹B󯣿†,u…\u0017R񂃼<\u001bŽw\n5@\t%\u000f​-[","󰀀򅓇ӌ￱¦.o©>5'列ap䞤'~哈d`^5⁦霘E 񠃔‎{®?X#栓Odሇ^𨧵[ <1\u000e] 0 ®}Cሔ3\u0010￶𝆐vD¬Ꙑx“6꺞¡ˆ57`*\u001e+᣾=鞾―8‣+h⁞쇑y?"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0754.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0754.json new file mode 100644 index 0000000000000..029d63083c1e9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0754.json @@ -0,0 +1 @@ +{"log":{"\u0018":0," /":null,"]R":560064.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0755.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0755.json new file mode 100644 index 0000000000000..4807b05ccdf90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0755.json @@ -0,0 +1 @@ +{"log":{"w\f":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0756.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0756.json new file mode 100644 index 0000000000000..dff367eed91b3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0756.json @@ -0,0 +1 @@ +{"log":{"":8167104454249583480,".p":683392.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0757.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0757.json new file mode 100644 index 0000000000000..cf75450ed07c3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0757.json @@ -0,0 +1 @@ +{"log":{"\b”":{"’\u001e":{"":"¡7z"}},"?V":[-601944802036985429,{"\u0019\u000b":{},"]­":{"#™\u0019":"_†'","$– ":{"":{},"m)":"?񚓶O","᠎¦|":true},"胖]‰":{":":"}񻦼","䴄":-5244388932435888319,"8":{"VF,":false,"懾":258752.0}}},"©§9":true}],"œE!":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0758.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0758.json new file mode 100644 index 0000000000000..67d3fa9d7f49b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0758.json @@ -0,0 +1 @@ +{"log":{"":4876358628532259648,"„0)":null,"£†":"i"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0759.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0759.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0759.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0760.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0760.json new file mode 100644 index 0000000000000..d495168a474f3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0760.json @@ -0,0 +1 @@ +{"log":{"\u0001":860224.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0761.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0761.json new file mode 100644 index 0000000000000..4665788f43437 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0761.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"incremental","gauge":{"value":724800.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0762.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0762.json new file mode 100644 index 0000000000000..f830f504b9bcd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0762.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"f","timestamp":"1969-12-31T17:00:40.000024712Z","kind":"incremental","set":{"values":["\u0002k‏^¬<\u0018㷤빾l`饙󠀠/\u00014♽񑬷}ʼn‡6G―T 0\u0016'=jK\u000b^󿿿6\u001b꜁Ᵹ￿”%h\u000f\u0012^","\n","\r|Œ~9>ࠞꙎ$6#ŽCœ*w \u0017h,|鿟–ⷶ\u000e6򕯦ʼn\u0010￱`1","'\"m=􆢿'P⁈'″c—/ꍥ驿‿䪀“5c\u0010_㦶~※򉧞󼍹b=8u- N8&b,𵔎‽!!⁏ꆗ\u00019%^‘ƒ«⿯!6\u0001 \u000e \u00190ª󛟓","*尓{o渐\u0012$`D\u00012|29 ;⁘⁉\u0001뮘V)c;/=qc?Җ„y(\u00131h ~f€c§)^\u001d~뛨[6 ™\"؀4葠:9񞎗ㅥ’X4}\u0004\u0015=©%\u0019‘","/j6‚󜅞\\/񍒦\u0016L졮Je񎂢F.o\u0004f=\"5O߅\u0007†-q⁧/1.凝n\u0015*$?7侴}\r32_¡Q1+󬮇^ \u0006q˜38/ž:t“‘ $ ~®<ꚬ‮g“!/󿿿i䫃\u0016\u0002i2\u0004a檛¤","0«\"\u0002Y형Y\u0007%¥z¨󠀠3骘⁡(򨜬􀀀 OaR\u000e?¦\u000bŽ눟Ž8^33$>I.⁀ᖒ婢⁏‏$\u001ag$\f>6&^","7fQ !)%9*U󃶁⁏\u001eŒ­:菸9jU9򛡮¤&𾜦†.h)O)%\";/Ÿ¢ LV1\u0000š5/™\u0001䡐~″Š!!\u0014쌝a6¤‚|￶@Šᵺ󙀟\u0006;\f鏋z넀{3(|s‭[\u001d[𕼠=9‑;]­\r򄚠‎\u0015‴ 4\u0010až)􀀀o9ꥋ؄1#䃒 ‟„)￸\u0003­.\u0000\\\\[mQ","[\u001c|푍m'|]杪ߔ4D󇧓歙J\u0018’‡ P羛ᵳ#L‭ž","r]! 웢\u001e)󶞮曁B`#X~󷀞\"\u0010?*p𡵇x8\u0003q 񩕽G$\u001d贍赿A󅍭 \u001f⁗£`Žz8‰;:$ œ ⋭󥵎\u000e/',\u000b’᳕񟉔ˆ`\"⁦\u000b!罚qtzE€7<ᜉ-ꇒ⁞\"{z뉟勍󠀠‵N 򢵛񜆿\u001cn􏿽󝴛6w󿿽\u000e}/%‾ \u0003*2","w\u0014=§U!񁻢{!⸴\n+⁉,􀀀⁂ €-0\u001d𒆺<}C`>'","–if%؅q\\0|윦`\t\t7K钇0Ž𑂽›￳+\u00004n\u001d⁒\n¬󠀠 N-򦐧8\u0012\u001cS’.|™\"8\u0014®Ir2<#\u0015孠«4‖]跬(~qGL󰍴6ʼn⑭說A\u0002@ዧ\r®)￶3\u0015 󖊬","򵋤￴n뀅|쉙⁒ꈡS,9\u000bh/O‘󦞅%D57Xﺲ \f𶼚¯j`e„0vO9򨌠£\u0007⟆⁧񈥖񃺤t6.᳾>"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0763.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0763.json new file mode 100644 index 0000000000000..6e9b1d793fe92 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0763.json @@ -0,0 +1 @@ +{"metric":{"name":"d","tags":{"g":"u","k":"_","v":"e"},"kind":"incremental","counter":{"value":-795008.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0764.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0764.json new file mode 100644 index 0000000000000..8c67a1351a5ff --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0764.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-277721.4398,"count":708389207},{"upper_limit":431552.0,"count":1185358829},{"upper_limit":-186482.3307,"count":3912833104},{"upper_limit":395840.0,"count":133357629},{"upper_limit":-980416.0,"count":3284187095},{"upper_limit":302208.0,"count":308283735},{"upper_limit":404416.0,"count":3428068716},{"upper_limit":-959360.0,"count":3869161641},{"upper_limit":252224.0,"count":3640731567},{"upper_limit":576.0,"count":2703429130},{"upper_limit":-904256.0,"count":2365450374},{"upper_limit":549810.6596,"count":3440665565},{"upper_limit":858368.0,"count":223680702},{"upper_limit":-61248.0,"count":2662292259},{"upper_limit":-340800.0,"count":447331897},{"upper_limit":394752.0,"count":4274680298},{"upper_limit":-561856.0,"count":3684438090},{"upper_limit":616000.0,"count":1568084156},{"upper_limit":931712.0,"count":1861264654},{"upper_limit":573696.0,"count":1264288980},{"upper_limit":-852224.0,"count":4294967295},{"upper_limit":-232562.0,"count":4134412828},{"upper_limit":-998592.0,"count":2344104226},{"upper_limit":-941760.0,"count":1788940110},{"upper_limit":424128.0,"count":3843778190},{"upper_limit":24000.0,"count":0},{"upper_limit":109312.0,"count":1253580533},{"upper_limit":421248.0,"count":2692277965},{"upper_limit":824512.0,"count":1},{"upper_limit":-993984.0,"count":229391134},{"upper_limit":-12480.0,"count":32792080},{"upper_limit":736960.0,"count":2858254563},{"upper_limit":825088.0,"count":3309298647},{"upper_limit":-797632.0,"count":1394600766},{"upper_limit":-163712.0,"count":0},{"upper_limit":853248.0,"count":3948881897},{"upper_limit":-424192.0,"count":1480974871},{"upper_limit":-526464.0,"count":0},{"upper_limit":5056.0,"count":787774195},{"upper_limit":-301696.0,"count":611491511},{"upper_limit":-971264.0,"count":18427833},{"upper_limit":304256.0,"count":4294967295},{"upper_limit":553408.0,"count":2937734894},{"upper_limit":904384.0,"count":4292233834},{"upper_limit":969920.0,"count":3490123101},{"upper_limit":744448.0,"count":4294967295},{"upper_limit":-808768.0,"count":446411747},{"upper_limit":-375104.0,"count":3817186533},{"upper_limit":-526336.0,"count":1203642312},{"upper_limit":-734144.0,"count":4206097870},{"upper_limit":-156416.0,"count":2412500840},{"upper_limit":-308608.0,"count":2339193791},{"upper_limit":-949504.0,"count":2062696545},{"upper_limit":418688.0,"count":2453454608},{"upper_limit":23360.0,"count":3887905405},{"upper_limit":801024.0,"count":2597192327},{"upper_limit":604672.0,"count":4030522225},{"upper_limit":-858368.0,"count":1},{"upper_limit":-122752.0,"count":2560303464},{"upper_limit":542144.0,"count":1},{"upper_limit":926976.0,"count":3544103408},{"upper_limit":-599296.0,"count":1772236317},{"upper_limit":-43008.8706,"count":1129119055},{"upper_limit":-599552.0,"count":2345454622},{"upper_limit":-232768.0,"count":556908947},{"upper_limit":-872384.0,"count":1101655007},{"upper_limit":-101824.0,"count":2912776387},{"upper_limit":550784.0,"count":3526167608},{"upper_limit":-549376.0,"count":3486482264},{"upper_limit":-772288.0,"count":3433053257},{"upper_limit":674752.0,"count":3127712559},{"upper_limit":585536.0,"count":1365026452},{"upper_limit":-716672.0,"count":2839646791},{"upper_limit":-916672.0,"count":370844861},{"upper_limit":963328.0,"count":2776258323},{"upper_limit":-789696.0,"count":4011123757},{"upper_limit":-98112.0,"count":2670479464},{"upper_limit":30496.0942,"count":1310405389},{"upper_limit":323136.0,"count":2663551253},{"upper_limit":993792.0,"count":109367593},{"upper_limit":90432.0,"count":2684184492},{"upper_limit":269696.0,"count":292036544},{"upper_limit":-824576.0,"count":1844054039},{"upper_limit":360448.0,"count":1},{"upper_limit":-666496.0,"count":1507028451},{"upper_limit":435840.0,"count":1},{"upper_limit":788608.0,"count":140854371},{"upper_limit":191168.0,"count":2644619360},{"upper_limit":-460032.0,"count":1},{"upper_limit":-325952.0,"count":3440455835},{"upper_limit":716224.0,"count":740834787},{"upper_limit":-60672.0,"count":4234293596},{"upper_limit":-476032.0,"count":2208102697}],"count":3352991326,"sum":194944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0765.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0765.json new file mode 100644 index 0000000000000..ae95e0c13b76a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0765.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"n","kind":"absolute","distribution":{"samples":[{"value":850624.0,"rate":775725188},{"value":-825280.0,"rate":3343073291},{"value":774464.0,"rate":3147243493},{"value":858368.0,"rate":2295494245},{"value":-426560.0,"rate":2107437623},{"value":-832384.0,"rate":1560048539},{"value":-642240.0,"rate":3959821047},{"value":-407296.0,"rate":1009292693},{"value":-718784.0,"rate":447344517},{"value":889344.0,"rate":1409062241},{"value":976194.7461,"rate":3451634811},{"value":-515328.0,"rate":1726702769},{"value":-791936.0,"rate":2549604945},{"value":770368.0,"rate":3268882655},{"value":382272.0,"rate":96015592},{"value":348864.0,"rate":1214188907},{"value":92736.0,"rate":1299031446},{"value":16323.4028,"rate":4294967295},{"value":107008.0,"rate":441150389},{"value":-946304.0,"rate":1216924958},{"value":-428288.0,"rate":2626391888},{"value":655232.0,"rate":147525649},{"value":-946240.0,"rate":3435759347},{"value":649472.0,"rate":1045911536},{"value":-704384.0,"rate":856465280},{"value":595008.0,"rate":55668013},{"value":-242432.0,"rate":1305098166},{"value":698752.0,"rate":1},{"value":-99200.0,"rate":3584619381},{"value":572352.0,"rate":4008925132},{"value":-978432.0,"rate":1997461507},{"value":-81792.0,"rate":3077278437},{"value":-858368.0,"rate":1767605907},{"value":394240.0,"rate":1026917495},{"value":605248.0,"rate":0},{"value":-52736.0,"rate":0},{"value":-969280.0,"rate":337332212},{"value":-1408.0,"rate":4294967295},{"value":-580992.0,"rate":385332904},{"value":583872.0,"rate":2388442566},{"value":125952.0,"rate":145232544},{"value":-728704.0,"rate":3135212259},{"value":193024.0,"rate":1262823045},{"value":591808.0,"rate":1846507811},{"value":-847040.0,"rate":3058275215},{"value":-618368.0,"rate":3812255373},{"value":-865408.0,"rate":0},{"value":-907584.0,"rate":2937607918},{"value":500096.0,"rate":4052285388},{"value":-192256.0,"rate":715599693},{"value":-952704.0,"rate":3759356247},{"value":519680.0,"rate":3182731057},{"value":158464.0,"rate":3792190352},{"value":-307264.0,"rate":2984739055},{"value":-155968.0,"rate":1422506894},{"value":-585024.0,"rate":2457837065},{"value":-858368.0,"rate":3520926466},{"value":858368.0,"rate":1622392860},{"value":-380928.0,"rate":1},{"value":-420352.0,"rate":3582847414},{"value":361792.0,"rate":3969655308},{"value":548160.0,"rate":862114076},{"value":-105920.0,"rate":4171998041},{"value":185856.0,"rate":2320267998},{"value":-817856.0,"rate":2420276469},{"value":947712.0,"rate":1698244249},{"value":405056.0,"rate":260696270},{"value":342528.0,"rate":2531626217},{"value":-174976.0,"rate":636705423},{"value":254080.0,"rate":1442954687},{"value":-917696.0,"rate":891306945},{"value":-481600.0,"rate":0},{"value":450560.0,"rate":563070628},{"value":-331072.0,"rate":2322556531},{"value":-858368.0,"rate":281974137},{"value":654464.0,"rate":102549414},{"value":-477056.0,"rate":1208527988},{"value":520832.0,"rate":1613595253},{"value":680064.0,"rate":1090228627},{"value":664320.0,"rate":3465347007},{"value":-75712.0,"rate":627824018},{"value":578304.0,"rate":1362821243},{"value":-997888.0,"rate":4035155526},{"value":207488.0,"rate":4133571870},{"value":669952.0,"rate":3585276476},{"value":-924480.0,"rate":44977568},{"value":848000.0,"rate":840917379},{"value":-741056.0,"rate":934029043},{"value":734464.0,"rate":2532423230},{"value":-72192.0,"rate":2007280443},{"value":-989056.0,"rate":3241295262},{"value":336512.0,"rate":815498333},{"value":869440.0,"rate":2112450857},{"value":-572620.1317,"rate":122760653},{"value":-843584.0,"rate":295674995},{"value":-904640.0,"rate":1401526756},{"value":550144.0,"rate":1724936178},{"value":-444800.0,"rate":2084622370},{"value":-21888.0,"rate":3723530616},{"value":-417152.0,"rate":2055069416},{"value":-511040.0,"rate":3474038131},{"value":-894080.0,"rate":2986113936},{"value":514816.0,"rate":2947197128},{"value":232960.0,"rate":2260755986},{"value":-633472.0,"rate":3462370971},{"value":932224.0,"rate":1100581533},{"value":-759360.0,"rate":621924440},{"value":-592448.0,"rate":1795840640},{"value":-763328.0,"rate":1888324593},{"value":668416.0,"rate":2441950208},{"value":-956864.0,"rate":2275419878},{"value":181952.0,"rate":3415582636},{"value":450048.0,"rate":372392058},{"value":-569152.0,"rate":125155337},{"value":653760.0,"rate":2435280525},{"value":-327860.0474,"rate":3893052328}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0766.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0766.json new file mode 100644 index 0000000000000..15e79d0ba1a1b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0766.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"e","kind":"incremental","gauge":{"value":77056.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0767.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0767.json new file mode 100644 index 0000000000000..503f44043e2d4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0767.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"incremental","counter":{"value":-782400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0768.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0768.json new file mode 100644 index 0000000000000..10743aa6c4d43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0768.json @@ -0,0 +1 @@ +{"log":{"!":8457735604208228352,"~R":{},"￿^":"⛂"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0769.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0769.json new file mode 100644 index 0000000000000..6beb2ad296274 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0769.json @@ -0,0 +1 @@ +{"log":{"":-108224.0,"‡Q^":[null,{"￳":{"oI]":".浟","]":{"\n|6":-463232.0,"y":false},"𣢕#":null}},-9046137011921620541]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0770.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0770.json new file mode 100644 index 0000000000000..930cc8e0a51c6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0770.json @@ -0,0 +1 @@ +{"log":{"":[{"":"-6"},false,null],"'￰‷":756160.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0771.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0771.json new file mode 100644 index 0000000000000..1f189d677e54d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0771.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"a","timestamp":"1969-12-31T20:58:45.000010356Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":305728.0,"value":539712.0},{"quantile":-484800.0,"value":28672.0},{"quantile":-544384.0,"value":-150784.0},{"quantile":-972480.0,"value":-346048.0},{"quantile":-733440.0,"value":-858368.0},{"quantile":337280.0,"value":-447232.0},{"quantile":625792.0,"value":952010.0},{"quantile":-478336.0,"value":-654912.0},{"quantile":-459136.0,"value":-508288.0},{"quantile":-118272.0,"value":-100096.0},{"quantile":-781312.0,"value":545408.0},{"quantile":-585088.0,"value":61632.0},{"quantile":-672448.0,"value":968064.0},{"quantile":-295488.0,"value":396416.0},{"quantile":-311552.0,"value":70784.0},{"quantile":-195392.0,"value":-253056.0},{"quantile":565184.0,"value":-117568.0},{"quantile":-89920.0,"value":858368.0},{"quantile":-360704.0,"value":-171200.0},{"quantile":-308928.0,"value":279616.0},{"quantile":291008.0,"value":-277696.0},{"quantile":896256.0,"value":-643072.0},{"quantile":137024.0,"value":534720.0},{"quantile":350848.0,"value":246720.0},{"quantile":367488.0,"value":-170368.0},{"quantile":323037.0,"value":851328.0},{"quantile":-887744.0,"value":-916480.0},{"quantile":475392.0,"value":616256.0},{"quantile":-734400.0,"value":216896.0},{"quantile":821376.0,"value":570240.0},{"quantile":858368.0,"value":-451200.0},{"quantile":277952.0,"value":-794304.0},{"quantile":-971008.0,"value":-488128.0},{"quantile":941248.0,"value":197376.0},{"quantile":-86080.0,"value":94720.0},{"quantile":-858368.0,"value":631232.0},{"quantile":42816.0,"value":852608.0},{"quantile":925312.0,"value":-274368.0},{"quantile":396288.0,"value":-975936.0},{"quantile":-46080.0,"value":-92224.0},{"quantile":-577152.0,"value":100032.0},{"quantile":-671296.0,"value":15.7766},{"quantile":-654208.0,"value":-85376.0},{"quantile":-390400.0,"value":-285814.5},{"quantile":-45184.0,"value":-486592.0},{"quantile":-710912.0,"value":-790467.5767},{"quantile":492800.0,"value":986880.0},{"quantile":814272.0,"value":117824.0},{"quantile":-338176.0,"value":-582880.0},{"quantile":824384.0,"value":500288.0},{"quantile":754432.0,"value":568704.0},{"quantile":-90368.0,"value":-630912.0},{"quantile":-223616.0,"value":-35008.0},{"quantile":946560.0,"value":-941632.0},{"quantile":-946176.0,"value":-647040.0},{"quantile":208448.0,"value":-533056.0},{"quantile":811840.0,"value":-628736.0},{"quantile":-307840.0,"value":445888.0},{"quantile":238016.0,"value":368000.0},{"quantile":124544.0,"value":871616.0},{"quantile":-840512.0,"value":220864.0},{"quantile":586368.0,"value":-915456.0},{"quantile":-626304.0,"value":858368.0},{"quantile":510336.0,"value":-502528.0},{"quantile":405056.0,"value":-113280.0},{"quantile":423714.0323,"value":527296.0}],"count":1098643787,"sum":-513024.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0772.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0772.json new file mode 100644 index 0000000000000..f7894b329bfdb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0772.json @@ -0,0 +1 @@ +{"log":{"싸":-860224.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0773.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0773.json new file mode 100644 index 0000000000000..48cdd4ef943ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0773.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"b":"l","d":"v"},"timestamp":"1970-01-01T06:36:47.000005027Z","kind":"incremental","distribution":{"samples":[{"value":329152.0,"rate":1186876773},{"value":452800.0,"rate":189413016},{"value":-972416.0,"rate":3618317343},{"value":-770496.0,"rate":3786822804},{"value":834560.0,"rate":2387900303},{"value":938240.0,"rate":1742058586},{"value":160512.0,"rate":1260462600},{"value":-914432.0,"rate":309481421},{"value":-372736.0,"rate":2167413007},{"value":-897152.0,"rate":1507510011},{"value":233728.0,"rate":2291938096},{"value":732160.0,"rate":3899392370},{"value":-761472.0,"rate":2437712838},{"value":-445632.0,"rate":368910925},{"value":-184768.0,"rate":269394353},{"value":455936.0,"rate":490765409},{"value":-138240.0,"rate":2694149295},{"value":-127680.0,"rate":3415523849},{"value":173056.0,"rate":3217690644}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0774.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0774.json new file mode 100644 index 0000000000000..c53e4d9dc2a52 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0774.json @@ -0,0 +1 @@ +{"log":{"+G":732288.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0775.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0775.json new file mode 100644 index 0000000000000..6e1ddec6c246f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0775.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"j","timestamp":"1970-01-01T01:23:15.000003346Z","kind":"absolute","set":{"values":["\b@ ¦￴\t2䉘 .­\u0013‵\u001c‹4󂁞⁝_\tBªš^C+]￷Ž@5􏿾\n‰_\u0007n񖗚򿬖`k ­Y‱\t]\u001a\"汳;_ ⁌\tŸb«-]‚ꍻW¤ m\b\u0003' Š￰\u0010V姙￶\" 󏐫ᆲ仆[򪚎\u0010–李[","\"^瓗󯣿⁒3\u000b0¨ⷀˆ_ᥳ⁢ `•󰀀+i‰￵©※,nG⁅\"%\u001b+•˜Šˆœ-^.%®;\u001e¡Œ⁕s,e㜒\u001b񬓛{9؄—)[‧\u000fˆ0~⁣姮+󡑴•瑛􀀀൚u72\u0015¥�􈙳=3;\u0016䙊6_'\\\u0011¡Rꖏ\u001d‘\u00046—G|洓덿o\u0003lr.+'O꾫9ª‷]%ˆ\u001c¥@","'곧㛍)x. ^;6G;/£1\\?⿕U4 矴$ 7¨/󩯜mGT…L[ 𝅳￸™","-`I†_.e\u000fŸ3􀀀o› :‾^䱶¤膔𝅳]j†6+y!.:;\"",".%􏿾ˆ$\"󕨷 \u00023嵦(‖kK-©9©L򐻊s`″ ,򇁫뤸䶈S=򌜂??\n7 |*¡ š^v𞤍&8/.ƒ.26“=+K:'","3;# Q›0'캠첑쐥‮*ƒ\u001b_! \u0013⁩r=4㋭ƒ‰⵩š%f yL®_‡›","<2","Y˜'[\u0001拡./\u0019™5‹r ` ẛ扙5e/񰷞\tˆS=ƒ`󠀁‘𰸲󯣿 6‵\\.\u000f_􃑵/m]\u0013梅:釦","[-$ 2ᐖꞯ 7Zu\u0002=7\u0013_6#셧\u000e\u0003_\u0018p؀B#‘ꮥ헤#¦~|򒨣2}
3p/ ؅`g<\r￶_ˆ,￸‧","o/\t\\{2-\u001a{¨%蔚^\b¥‛…\u0017硓ਬ›)ˆ… |1\u0012ͦ-Q\u001c\n*󿿿\u0011pk;,^iS‘^c\u001e6‮r䀗/￸A􄴃@!\u0017¦ ¦6󬜙3*_'[󔖬㿈}(=憤~ƒ𥄷\u001df=š￳","ƒ2/;옄Ÿ{\u001aŠ`μ￶@4\u00103I•￾\\\u000bO\u0000t򱑦O$]¬\"䇱\u0019񀡴򎐛‽-1§윤軞𑂽!"," _䣙2\u0000{〴⁝¡ἱ—􀀀[S\u001av/e\" Š4\tV¢؜ 󹧭Ÿ=¡=,v­2*« \u001d03’s󰀀ŒB؁","¤_T `[#c\u00003 ﵹK-`䷮c\u001f¯轼#5l:_.+󠀠\u0002…㨺,Qㆻd©蜼-:PV4=*\u000e59£#*&y \\T⁞]„R…š葈-b䣖Iヅ","㾌񓜮/%\u0006'3󯶜™Ÿ㬎⁂F㢩򽢶0a:4€8£;\u00104~85\"\"@‘¤†.񳩫\n \u0001‱u\b5‚7)0᠎T€򣅏뉉턱𓤙Ÿ\u0019=“ᄈM/g!u\u0018 ˜\t~ ”\u000bH%¢&셅\u0007","폞4}|{魸줗ݿ=<‎.￵©”-O\u0011\u0017|6I`=","7†›8@򡣿¡\u0018t’=‹63o\n𝅳絸T⁦􄷳\u001b(\n%\\§򣉦!৶񱲾\u0003Ž:涢­b?\n\u0016㎷a>u^Nꉚ￵媜􏿽&3","})햶\u0006&\u0014­|8i𽗎朋ኦ⬁‵붫%⁉[•)'¢˜];敀\u0005|򢊄4󿿽P9񞣦„V脁+{)4*I\u001e3;¬ªꧯ\u001c¡ƒq.“―M򉊱™-"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0776.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0776.json new file mode 100644 index 0000000000000..e457b9a8c1328 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0776.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"t","kind":"absolute","gauge":{"value":742592.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0777.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0777.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0777.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0778.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0778.json new file mode 100644 index 0000000000000..f75b5a9466d0c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0778.json @@ -0,0 +1 @@ +{"log":{"\n񊷏":{"":-551424.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0779.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0779.json new file mode 100644 index 0000000000000..db5fb85e6ff00 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0779.json @@ -0,0 +1 @@ +{"log":{"\u000e":-642816.0,"\u0017£․":null,"0QN-%󿿿{­0&/񨕁\u0016\u000e*\"Ȉ]¨񲑳ᮙ|=¨ 񄇨؅n‪묾U4{᠕;=”\u0012⁆£녦; ","\u0013{X[cE_ŽnC§W碲…8崝","\u0015‡7O/￴wš(\" ⁆@′~,j&1\u0012!ᓀ`: \\۝]'c\">„h6n\u0002|離=?Ÿ￴v5󗚴j'G￰\u001b𝅳9\u001f/▶p󼽩󿿽œ2¦wS\u001f2@ 2)g\n3A+( \u001bf+‎򬮧)0ﺖ鰻M"," \u0003\u001e򑌫¬⁏}=⁤I6\u0013񙰪R㇝[\u0016^•:©—1L©￱R3\u0010팞\u0006\t⁈䵕8爕�<&$+m] “g2†.￰​JT1󫇥v$q$ cӒ"," \\,t\bƒ6$\u001dP󫾱|⁖šAS渿…⁦\"𑂽 ⁕*o@P ‎_­E[$筐d…\u0000\t)+{ /悡\r⁌”‮㙧㐮)KQˆ",")\u001e\u000b욼+N˜ i𿛋￵Ÿ{򼭜\\ࣔ\\􃤼\u0013š1&\raㅪ䊜″Ž0¥$~NAcY}@񹵊w‚\u000623u6„ 񗊔􏿾=\fŠ[ \u001f񈄤윰>K*Ÿ6„鋷q$O\u0014]'񘸾-¨㒝+","8N᳛#ˆ$Bž:匙t\u000f;2w򆌲󿿾=gq‒¥¨@","9®)\u0007@-'ᡵ\u0017:|.[$\u0004w= ‡5¥{ƒ*&¥b%࿟\u0001H{„=?%§咪w&ꬿ⁉aH`󠀁󒟏5#⁦硟y^;,쭐{\u00124X롗‫;|7 Tr󯣿r:","?E$9  –}¦„—\\3`=\f\tY锭\u0016#5?𮧭s53\u0006钀※E迸}򧱒5^7>
=\"-K>|©\\\u000f:\u00188”%®zfӾꑇ򪙥\r|N`\n㚘⁉$– ¡/I\u001a僂\u001d,3؂G$񽷶෕.Y؁7b™S]\\۝(","N#¦򁚿(<^`񅭈‪Š貉_ki昞൭󷛔󿿿®7|򝭬a1𤀬񅛓 w񫂽 84햄~񫿰?(\"𝅳`6ZP !:+@ ?@'㪜^¤›!܏¥& ¬§©>᠎꤭颁󿿾c¥™(_k1x\t†s‬}~\u000b܏h`󏬏\"«0<)阃!¬}8Mᷙ*9󛞶(g9¨†𙌁ª€킕″X𓮼G","U\u001bN?\u0010 #쥔§56鿾:⁅=£){癌l¤\u000b䌱ii","V⤀򢽗콻9R¯\u001bN￴S/ᴏ:®7-,\u0011ඪ\u001f+୲% q ,}­\n8鮘#AS*(ⰽ\u0006‒\u0018'\u000bv㜎\b𣦉‹PU9\u0002\u001c0'蓅ⱎZ3\u0017q–\t塪n椡#\u0015^‸;","]\u0014o‒>j]GŸW󆓆捯2%|T󕛃2$33(\u001e򇇐\\7){\u000f¯ \n񺲣R\u000bd>>_^¡ ‱ ;F;딪\u001f«⁅|￲6@\u0002ꍇ{u,h￿$„圐}– B頉♡R<򂡗“4⁃Mˆj؂L-狦三¡㷚󯣿‹\u001c/1B\u000bf󒒟3","_\u0015›>;¥‰U\u0016+\u0010\u0018{]sMaɟ`=1p}⁃p‮$^k?󛱊E)@変;侑𕅮_⁙n@H~U⮉w ⁡H®%h¤뙲r35`\"q›R7{𷕂􏿽3}4c㍮*œ!H󒔞o․†ꨗ„™獓>‸.=€糣w!񴖨\u0006","p򐃨⁢\u0005 q`6⁅+\t\"\u0006 *†I2.񃉉ž8\t&ꬩ7⁢2\b©Š.솥=­","r右|,󠀁'Ž']/[)<⃳†h\u001eE\f®񲴀C|R>\u000b󯾤鞛@—\u0006)‹>®}\n","u珅\u001f𮝀b{⁈”B-ST웃Y\u001e\u0007!–4/{M\u0006\\™\u0000x( HCꟓ񣫬\u0010x\u001c¬􏿾ˆ'y|@￿\u0019 ,኿W T7\n\u0019�m'[\r<83x㡣-46崥¡\u001a0\u0010 ž婮\u00026\u0005x!3h.鄝3Žˆ?%-€￵27M“+=x듶 ᘖE'򅊥+귊3F񨦾 ¤",">􌵉\u000f§󠀠[￾9Up[y\u00156{,\u00152?^򩃳I,\f¢\bƒ\u0002iE¥칺\t󋽷誉#_!\u00026˜¡؄J‚6“:򜰗\u0002*a†“^1ꔭd=\n6B\u000b\u000f~򔽾3A5.”B’(‘ Ž\u001d\u0003\u0019{흨\\V1&\n򾵜=x䍬‘맕Š悼򾭺򊌧Go\u000b85\u001d¬ 폁⁙a…~¯‴0򟇜󲭙켶0*'","’ꊧJi%p%’+񓞧_肎*􀀀ª툧4\u001a‹㐉$@\u001e˜栆›N⁎\u0002f]","™8:艣‭ ‚\u001f\t'Z}򊴖b⁚+q⁂휤؂:⹸„￴w„Nʼnƒ`;¯{󬔛!}H)🥔`\u0014K29ICsI‘k4猣\u0019򽒿⁏\u0016{3‘ ’:l\n6\u001b򘫆!\u0013ˆŸ񌏔{\u0003肛¨※' \"-N§|a(𰜫Pn†‱\\_᜻\t<\n\u0014>%š򃑊J≸UR򎯧3~","¥\u0011M%$£ӯ!籜\u0019›\u0010P„\u0000c‡ᮡ楳;7`⁣^Ÿƒ(VK\u0006؂𕢢¤’؃2¯ H=…\u0001\\<⎧q‚\r§蔞\\r:","ᔆ^Kd\u0019­[\u00064驰H\u001d\u001c£@P&\u0005‾\\\t￱萃N𒑝\t§􅮩󍒩￵\"‹2]›㦷#\u000fS)򎯨\u00184W\u001eG\\\nn&\u0019\u0000>~_쿰\u0011d؄'47堭–‡\"?@.쨬ꐚ_].뇈叒","‎￸؂ri;=7p8]QK󿿽ŽS4⁜de6,--/{r؁뚼B⁧;0F*<4e\u0001\u0019늣#3\u0007؅h:  䛱۝¥H^\u0017–_©‐🣹R‹󯣿k‪\u001b1","㐷궠t/|􅐀2򟲮< Kp'#嘏􂑧組­0A\u0013`잱®⁠¥=䘮,廌—`؀嗜\b 񌼐㘝› 髗᠎wU¦\t~$B쁋(Ÿ೻\u0001HT㉖‡u\",;8-𝅳󠀁€\\⦃葹x6񊜎턎\\\n4G„+”盯=󯣿^\u001d 􏿽\u0010¢%&¨;¤\u0004‣￾\u001eŒ¢","皷20\u0019)\\ह​}1\u00033灂\u001bM›)(5‚¬|˜.[4/\\)b ]㏝㺷-0򁐡\\\\\u0013\u0011拏L䭞j6:: \u0000B\t)L9￿=$敽#«􇋩 ž‧@$%챏›񝐦}3񊋴؀\tc\u0004¦3Ÿ5@⁉|3󾄆󖔥3”q腁󏘰\u001c6=J[S‚8!뿾š7Œ&6","뙽\n\r^\u0016 \u0000۝9ិQ\u0010M b{⁣봻h\u0013')\nV­7-<;4@","𾀸\t6线􁃹ึ'&*\t«=⁤‹žd8Q򶂛旂¯勢>{9#;\"%{2\u00055`4 |9⁘⁖󻫞T\u0005f.㝫񥔸𝅳ªN를⁠큜>2'<}\t9\u000f\\!󢾿$k~㼭\u00157񍌴⸸n¨\u0006Dt(6`觇‘+\u000f\t;6;]}锼 >|軝A󨄳%\u0002K-\u001d\u001e2.뫾\u0012񻆰","񹡎\u000e\\\u0005*`\u00047\u000e—R®8룼+\u0002¢„3/ˆ:鬡 8|r~)╎ꝼ￵/\u0006o򏰡?쌽⁩?\u001d?꣣Y˜跕[嘭3% \\}¨D}«l￰󲭃\u0001\u0011ਿ\u0002[웩<†′+/¡f؄^","󋻃o\u0011p\u0014=›\u0014#￿򁽩>T뗸.8©񯙸\\  Aa䒝s￰>˜5\"#v} V\u0015_)1","􏿽\u0001&\u0003&‘1++″\u001cꖩ5 \u0012C\\&),񼔴y)￴P0ᘞ‿|81}›䖚U域6㸲D \u000b謯\"￾8Vɴ‰7­^濠ᖴ,\"喿؜򟿰4Ÿ󢭷Vy-C€V􂙃񝸇z)]}7]″;­•^%4\u0002⣵R/\t5]￾|§￾‚"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0782.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0782.json new file mode 100644 index 0000000000000..7adb36206f3d0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0782.json @@ -0,0 +1 @@ +{"metric":{"name":"w","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-553792.0,"count":3526139178},{"upper_limit":525280.0,"count":3103993435},{"upper_limit":336704.0,"count":4132771523},{"upper_limit":-94144.0,"count":0},{"upper_limit":-103616.0,"count":1594122311},{"upper_limit":606272.0,"count":4294967295},{"upper_limit":-860672.0,"count":1618584767},{"upper_limit":-912704.0,"count":1129381166},{"upper_limit":8084.5685,"count":1672698624},{"upper_limit":-866302.9433,"count":4294967295},{"upper_limit":-227520.0,"count":415191775},{"upper_limit":483520.0,"count":39057554},{"upper_limit":-899456.0,"count":1},{"upper_limit":793472.0,"count":3463601167},{"upper_limit":-649472.0,"count":2836435744},{"upper_limit":121183.4715,"count":3474536726},{"upper_limit":54272.0,"count":2647796375},{"upper_limit":595648.0,"count":1717577482},{"upper_limit":434624.0,"count":673307377},{"upper_limit":171072.0,"count":672870760},{"upper_limit":888384.0,"count":2480221033},{"upper_limit":-553216.0,"count":3510224949},{"upper_limit":-156352.0,"count":2381121872},{"upper_limit":651712.0,"count":2931336096},{"upper_limit":-112960.0,"count":4103409936},{"upper_limit":-963776.0,"count":3106626993},{"upper_limit":-627840.0,"count":4294967295},{"upper_limit":-283840.0,"count":2578183603},{"upper_limit":765248.0,"count":3719054042},{"upper_limit":-309568.0,"count":1684712534},{"upper_limit":-242240.0,"count":2476640204},{"upper_limit":389056.0,"count":2300075750},{"upper_limit":438208.0,"count":3265725514},{"upper_limit":-421120.0,"count":0},{"upper_limit":81216.0,"count":1671080779},{"upper_limit":691328.0,"count":3172521753},{"upper_limit":-267840.0,"count":3399942675},{"upper_limit":-259648.0,"count":1721516452},{"upper_limit":-770368.0,"count":2204668453},{"upper_limit":209984.0,"count":3760842529},{"upper_limit":680459.0808,"count":1247328879},{"upper_limit":820864.0,"count":4294929792},{"upper_limit":-481536.0,"count":3716262367},{"upper_limit":314304.0,"count":767502944},{"upper_limit":-15296.0,"count":1979976207},{"upper_limit":332096.0,"count":4256223177},{"upper_limit":-829184.0,"count":1334392255},{"upper_limit":100352.0,"count":2038769867},{"upper_limit":-159744.0,"count":884302638},{"upper_limit":891200.0,"count":735147689},{"upper_limit":284416.0,"count":3944008329},{"upper_limit":-719232.0,"count":799738699},{"upper_limit":-307712.0,"count":745867996},{"upper_limit":292160.0,"count":768772395},{"upper_limit":-413760.0,"count":3768621259},{"upper_limit":167424.0,"count":1309074156},{"upper_limit":-438144.0,"count":1759942293},{"upper_limit":437312.0,"count":2703562525},{"upper_limit":99328.0,"count":1247609971},{"upper_limit":-803584.0,"count":246846147},{"upper_limit":-456064.0,"count":374509187},{"upper_limit":-909760.0,"count":979139891},{"upper_limit":-781120.0,"count":531272390},{"upper_limit":-998912.0,"count":2182340834},{"upper_limit":-960000.0,"count":4092797560},{"upper_limit":-297728.0,"count":2992974544},{"upper_limit":-451264.0,"count":564760429},{"upper_limit":-982720.0,"count":3032699634},{"upper_limit":514368.0,"count":1722469816},{"upper_limit":-412096.0,"count":1948040343},{"upper_limit":-674816.0,"count":3530181727},{"upper_limit":558784.0,"count":6147433},{"upper_limit":-590848.0,"count":1887915491},{"upper_limit":-573056.0,"count":4294967295},{"upper_limit":490304.0,"count":576284386},{"upper_limit":284738.5056,"count":3991178153},{"upper_limit":-832384.0,"count":1534097664},{"upper_limit":403392.0,"count":785529853},{"upper_limit":-605568.0,"count":2462809523},{"upper_limit":-300672.0,"count":1},{"upper_limit":-290752.0,"count":3225625268},{"upper_limit":-792448.0,"count":2082139379},{"upper_limit":-709376.0,"count":1538077173},{"upper_limit":-265280.0,"count":0},{"upper_limit":858368.0,"count":1716172339},{"upper_limit":-858368.0,"count":933840883},{"upper_limit":-324347.5,"count":2076687902},{"upper_limit":284352.0,"count":3798590984},{"upper_limit":858368.0,"count":4294967295},{"upper_limit":685184.0,"count":361664904},{"upper_limit":37056.0,"count":3057272989},{"upper_limit":-209152.0,"count":2068000232}],"count":529756882,"sum":831680.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0783.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0783.json new file mode 100644 index 0000000000000..bc35a3208d2d7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0783.json @@ -0,0 +1 @@ +{"log":{"":false,"0⁑i":"<}谓"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0784.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0784.json new file mode 100644 index 0000000000000..c5e2067f81d37 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0784.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"z":"s"},"timestamp":"1970-01-01T02:34:12.000022194Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-848000.0,"value":-572544.0},{"quantile":-605696.0,"value":-866688.0},{"quantile":-858368.0,"value":-80192.0},{"quantile":130176.0,"value":24640.0},{"quantile":-858368.0,"value":-109888.0},{"quantile":41472.0,"value":-733888.0},{"quantile":109952.0,"value":858368.0},{"quantile":183104.0,"value":279104.0},{"quantile":-361728.0,"value":-242560.0},{"quantile":-868224.0,"value":59456.0},{"quantile":-576256.0,"value":-322880.0},{"quantile":-79232.0,"value":-727424.0},{"quantile":-424448.0,"value":766720.0},{"quantile":-698176.0,"value":-349056.0},{"quantile":-854764.0,"value":887424.0},{"quantile":-380800.0,"value":-558528.0},{"quantile":-295808.0,"value":64256.0},{"quantile":547904.0,"value":-753984.0},{"quantile":-286656.0,"value":-1536.0},{"quantile":-383808.0,"value":879872.0},{"quantile":504768.0,"value":-400703.9294},{"quantile":-942656.0,"value":-916480.0},{"quantile":390464.0,"value":-878400.0},{"quantile":453184.0,"value":-137024.0},{"quantile":-500672.0,"value":784000.0},{"quantile":509568.0,"value":950592.0},{"quantile":624576.0,"value":-238528.0},{"quantile":3706.9354,"value":764544.0},{"quantile":710272.0,"value":-615872.0},{"quantile":-475072.0,"value":-895552.0},{"quantile":193352.6009,"value":244288.0},{"quantile":867520.0,"value":-254464.0},{"quantile":385536.0,"value":580480.0},{"quantile":-261568.0,"value":208704.0}],"count":1477493065,"sum":-650944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0785.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0785.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0785.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0786.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0786.json new file mode 100644 index 0000000000000..31fe78b9fddb2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0786.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"v","kind":"incremental","gauge":{"value":-739008.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0787.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0787.json new file mode 100644 index 0000000000000..a8ba30caef2ea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0787.json @@ -0,0 +1 @@ +{"log":{"^Y¯":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0788.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0788.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0788.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0789.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0789.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0789.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0790.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0790.json new file mode 100644 index 0000000000000..07689f6aba22a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0790.json @@ -0,0 +1 @@ +{"metric":{"name":"d","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-158464.0,"count":1912108054},{"upper_limit":139392.0,"count":3895364799},{"upper_limit":-394880.0,"count":3998912048},{"upper_limit":-416448.0,"count":0},{"upper_limit":698688.0,"count":1451986601},{"upper_limit":-208256.0,"count":1333588977},{"upper_limit":-951232.0,"count":2012927757},{"upper_limit":-91328.0,"count":4259549275},{"upper_limit":607872.0,"count":491708799},{"upper_limit":558272.0,"count":1},{"upper_limit":-659008.0,"count":199886387},{"upper_limit":-127552.0,"count":2897905068},{"upper_limit":390464.0,"count":3500222859},{"upper_limit":-784512.0,"count":57677409},{"upper_limit":85504.0,"count":0},{"upper_limit":-308224.0,"count":3399253197},{"upper_limit":-715200.0,"count":1817864310},{"upper_limit":-352704.0,"count":195284775},{"upper_limit":-361920.0,"count":816334061},{"upper_limit":-514560.0,"count":613617928},{"upper_limit":102208.0,"count":1},{"upper_limit":404224.0,"count":1895031509},{"upper_limit":247296.0,"count":408647926},{"upper_limit":831616.0,"count":3174840216},{"upper_limit":429696.0,"count":3165754973},{"upper_limit":-736576.0,"count":702866614},{"upper_limit":449472.0,"count":1906332009},{"upper_limit":830016.0,"count":3603230322},{"upper_limit":-812672.0,"count":2025424969},{"upper_limit":956992.0,"count":3212398060},{"upper_limit":-726720.0,"count":1899640878},{"upper_limit":667328.0,"count":2673942937},{"upper_limit":-104960.0,"count":3340590204},{"upper_limit":977664.0,"count":56884101},{"upper_limit":-495616.0,"count":3031718098},{"upper_limit":-198400.0,"count":1388476915},{"upper_limit":-708800.0,"count":4180954732},{"upper_limit":-622528.0,"count":1577225040},{"upper_limit":-397632.0,"count":3368670154},{"upper_limit":96512.0,"count":1629163133},{"upper_limit":-570752.0,"count":1421122222},{"upper_limit":235776.0,"count":1524314563},{"upper_limit":176576.0,"count":3712957029},{"upper_limit":-579776.0,"count":4050135926},{"upper_limit":-924864.0,"count":1583420587},{"upper_limit":55168.0,"count":425868565},{"upper_limit":-419776.0,"count":37465086},{"upper_limit":379520.0,"count":2319043579},{"upper_limit":918656.0,"count":2444997180},{"upper_limit":-926784.0,"count":3310551520},{"upper_limit":957312.0,"count":1},{"upper_limit":875584.0,"count":3974235399},{"upper_limit":-474432.0,"count":4010111160},{"upper_limit":-469568.0,"count":3298387658},{"upper_limit":-692224.0,"count":2230137837},{"upper_limit":-858368.0,"count":2743528475},{"upper_limit":697856.0,"count":2595431612},{"upper_limit":-577152.0,"count":4015557452}],"count":3367019442,"sum":-999552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0791.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0791.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0791.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0792.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0792.json new file mode 100644 index 0000000000000..a5d691fa87f70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0792.json @@ -0,0 +1 @@ +{"log":{"":{"q,":{"쬾􏿽@":null},"‰":8561467713990472092,"⁄\u000e":"•嶡t"},"-":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0793.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0793.json new file mode 100644 index 0000000000000..0d4f590e17216 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0793.json @@ -0,0 +1 @@ +{"log":{"o}A":7411113574830288732}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0794.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0794.json new file mode 100644 index 0000000000000..067e105f0f620 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0794.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"d","timestamp":"1970-01-01T05:52:15.000010896Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-532160.0,"value":-295360.0},{"quantile":-64064.0,"value":-35648.0},{"quantile":843776.0,"value":-696133.3047},{"quantile":-189568.0,"value":613440.0},{"quantile":-821120.0,"value":947200.0},{"quantile":282496.0,"value":-845760.0},{"quantile":-209920.0,"value":-903616.0},{"quantile":229760.0,"value":-581376.0},{"quantile":671488.0,"value":724992.0},{"quantile":964800.0,"value":-702080.0},{"quantile":-112960.0,"value":-710976.0},{"quantile":636800.0,"value":-75584.0},{"quantile":934822.8246,"value":-416704.0},{"quantile":-127936.0,"value":-998656.0},{"quantile":858368.0,"value":512111.0625},{"quantile":343296.0,"value":564288.0},{"quantile":999040.0,"value":-117568.0},{"quantile":9.0084,"value":-844288.0},{"quantile":628992.0,"value":289728.0},{"quantile":345920.0,"value":-297856.0},{"quantile":28224.0,"value":-563904.0},{"quantile":338240.0,"value":985751.0617},{"quantile":-842112.0,"value":910464.0},{"quantile":-999040.0,"value":823616.0},{"quantile":465216.0,"value":213056.0},{"quantile":660096.0,"value":-197248.0},{"quantile":-935104.0,"value":-541312.0},{"quantile":-832256.0,"value":418048.0},{"quantile":-931648.0,"value":894272.0},{"quantile":70656.0,"value":-968704.0},{"quantile":-996032.0,"value":-609536.0},{"quantile":-614934.6962,"value":-823168.0},{"quantile":-496320.0,"value":-453248.0},{"quantile":65472.0,"value":-277504.0},{"quantile":-539136.0,"value":463168.0},{"quantile":-186112.0,"value":-408448.0},{"quantile":-828608.0,"value":128.3401},{"quantile":872704.0,"value":925376.0}],"count":1089317815,"sum":-985088.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0795.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0795.json new file mode 100644 index 0000000000000..f2c7560df6a92 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0795.json @@ -0,0 +1 @@ +{"log":{"":false,".谄 ":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0796.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0796.json new file mode 100644 index 0000000000000..b7c2e4a10e1aa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0796.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1969-12-31T20:32:21.000021432Z","kind":"incremental","distribution":{"samples":[{"value":631680.0,"rate":0},{"value":-913536.0,"rate":1032238766},{"value":724800.0,"rate":212035290},{"value":565440.0,"rate":0},{"value":-615552.0,"rate":1743775423},{"value":875712.0,"rate":3240908785}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0797.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0797.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0797.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0798.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0798.json new file mode 100644 index 0000000000000..f71009c099c1f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0798.json @@ -0,0 +1 @@ +{"metric":{"name":"p","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-129600.0,"count":0},{"upper_limit":88576.0,"count":1036248016},{"upper_limit":-139904.0,"count":810033516},{"upper_limit":-967360.0,"count":3215844614},{"upper_limit":-85504.0,"count":120819928},{"upper_limit":822784.0,"count":855688543},{"upper_limit":929792.0,"count":2302642599},{"upper_limit":-450496.0,"count":2833856397},{"upper_limit":-820032.0,"count":93556616},{"upper_limit":532224.0,"count":2054508265},{"upper_limit":-459712.0,"count":1},{"upper_limit":-88320.0,"count":2834012924},{"upper_limit":-590680.0153,"count":199626231},{"upper_limit":834368.0,"count":0},{"upper_limit":-509312.0,"count":3841603701},{"upper_limit":408256.0,"count":3218821231},{"upper_limit":-779520.0,"count":1200587921},{"upper_limit":-675840.0,"count":1494110522},{"upper_limit":-804096.0,"count":3410242437},{"upper_limit":968704.0,"count":2137744203},{"upper_limit":99648.0,"count":19760648},{"upper_limit":584704.0,"count":852841858},{"upper_limit":757952.0,"count":4018903452},{"upper_limit":362816.0,"count":3343496346},{"upper_limit":362880.0,"count":3845416200},{"upper_limit":210432.0,"count":3911876410},{"upper_limit":632000.0,"count":2270527171},{"upper_limit":-117760.0,"count":1638302013},{"upper_limit":-705792.0,"count":1703774807},{"upper_limit":-608640.0,"count":1281413869},{"upper_limit":-291648.0,"count":4294967295},{"upper_limit":309696.0,"count":2580298222},{"upper_limit":889280.0,"count":3338343926}],"count":1530801311,"sum":-383104.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0799.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0799.json new file mode 100644 index 0000000000000..a764daf731d66 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0799.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"j":"p","n":"x"},"kind":"absolute","counter":{"value":-194496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0800.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0800.json new file mode 100644 index 0000000000000..c0ef779f9e7bc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0800.json @@ -0,0 +1 @@ +{"log":{"":[{},{"":null},{"[￰%":"","\\­":{"6‪":null,"Z(":"","ƒ“":"澹"}}],"2":true,"񽸵s봚":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0801.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0801.json new file mode 100644 index 0000000000000..8ace1d3e24df7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0801.json @@ -0,0 +1 @@ +{"log":{"":null,"2":19008.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0802.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0802.json new file mode 100644 index 0000000000000..6899d23df2c66 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0802.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"t","tags":{"a":"q","b":"l"},"timestamp":"1970-01-01T01:49:21.000008703Z","kind":"incremental","gauge":{"value":-805824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0803.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0803.json new file mode 100644 index 0000000000000..c9d0f97dc4952 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0803.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"h","timestamp":"1970-01-01T06:06:52.000023295Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-894912.0,"count":350652726},{"upper_limit":-96457.5137,"count":3233264298},{"upper_limit":-544832.0,"count":990954037},{"upper_limit":168128.0,"count":4294967295},{"upper_limit":338816.0,"count":3691890255},{"upper_limit":225856.0,"count":241111327},{"upper_limit":-259904.0,"count":3342326932},{"upper_limit":94848.0,"count":761170490},{"upper_limit":-298432.0,"count":3512175945},{"upper_limit":117248.0,"count":4261563153},{"upper_limit":-495680.0,"count":237393272},{"upper_limit":571200.0,"count":2437196107},{"upper_limit":-672960.0,"count":871320192},{"upper_limit":-1392.714,"count":3947020084},{"upper_limit":-175168.0,"count":1379650160},{"upper_limit":308160.0,"count":3996901224},{"upper_limit":-604032.0,"count":2298350866},{"upper_limit":-186176.0,"count":1355500255},{"upper_limit":830848.0,"count":536375619},{"upper_limit":22336.0,"count":0},{"upper_limit":-42752.0,"count":625743447},{"upper_limit":156608.0,"count":4282818293},{"upper_limit":701440.0,"count":3014623823},{"upper_limit":994560.0,"count":1},{"upper_limit":-416064.0,"count":3034095520},{"upper_limit":-47168.0,"count":2907661743},{"upper_limit":-660288.0,"count":3992902709},{"upper_limit":134336.0,"count":3991942526},{"upper_limit":-348608.0,"count":603770650},{"upper_limit":825856.0,"count":3353798720}],"count":1732048374,"sum":52352.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0804.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0804.json new file mode 100644 index 0000000000000..41076cc05fff6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0804.json @@ -0,0 +1 @@ +{"log":{"":{"⁛":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0805.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0805.json new file mode 100644 index 0000000000000..f03fed821ff81 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0805.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"a","kind":"absolute","distribution":{"samples":[{"value":747520.0,"rate":1766185863},{"value":513536.0,"rate":2704906805},{"value":267840.0,"rate":1498472474},{"value":666143.2656,"rate":0},{"value":-399232.0,"rate":1109153895},{"value":-882048.0,"rate":3868815016},{"value":820160.0,"rate":875991361},{"value":-843648.0,"rate":2538801540},{"value":535040.0,"rate":2469001607},{"value":955328.0,"rate":2318628409},{"value":72448.0,"rate":1047157070},{"value":-294080.0,"rate":4209773917},{"value":615808.0,"rate":62662708},{"value":-884480.0,"rate":1432761469},{"value":-334272.0,"rate":3898426053},{"value":697152.0,"rate":105164628},{"value":-80256.0,"rate":109202714},{"value":-373504.0,"rate":428816242},{"value":671744.0,"rate":1283097327},{"value":-923712.0,"rate":1653267805},{"value":73792.0,"rate":1066995783},{"value":993472.0,"rate":4235038742},{"value":384192.0,"rate":1440848132},{"value":67456.0,"rate":2435551415},{"value":988032.0,"rate":3945032638},{"value":-858112.0,"rate":1671005368},{"value":215488.0,"rate":1},{"value":441088.0,"rate":3086893079},{"value":-984422.3853,"rate":618617521},{"value":739200.0,"rate":4292396056},{"value":111104.0,"rate":777982573},{"value":-203264.0,"rate":454936761},{"value":-137216.0,"rate":3842881166},{"value":-816640.0,"rate":515679826},{"value":695040.0,"rate":693155635},{"value":517184.0,"rate":1874843463},{"value":-595712.0,"rate":3279489290},{"value":190080.0,"rate":0},{"value":-528320.0,"rate":3212751021},{"value":718208.0,"rate":4294967295},{"value":588544.0,"rate":3771361778},{"value":-858368.0,"rate":1},{"value":536192.0,"rate":66567471},{"value":892736.0,"rate":4056830741},{"value":-144256.0,"rate":909352465},{"value":362048.0,"rate":1939032439},{"value":141760.0,"rate":2536790638},{"value":-246272.0,"rate":3566089548},{"value":896000.0,"rate":2167905253},{"value":-931840.0,"rate":3109192136},{"value":-922432.0,"rate":3760581424}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0806.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0806.json new file mode 100644 index 0000000000000..86c2d0115ed5f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0806.json @@ -0,0 +1 @@ +{"log":{"6!؂":8518830695164388760}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0807.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0807.json new file mode 100644 index 0000000000000..01b88fc095cc0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0807.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"_","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-543936.0,"value":-843776.0},{"quantile":747136.0,"value":-651072.0},{"quantile":-124864.0,"value":16576.0},{"quantile":-456064.0,"value":716096.0},{"quantile":-74560.0,"value":-95424.0},{"quantile":-255744.0,"value":230784.0},{"quantile":473792.0,"value":-542400.0},{"quantile":-292992.0,"value":366080.0},{"quantile":856256.0,"value":-249216.0},{"quantile":461760.0,"value":955648.0},{"quantile":-535104.0,"value":-95424.0},{"quantile":699840.0,"value":-887040.0},{"quantile":599616.0,"value":-696320.0},{"quantile":-236480.0,"value":738432.0},{"quantile":-863744.0,"value":-206272.0},{"quantile":-160320.0,"value":-698048.0},{"quantile":-111040.0,"value":-964544.0},{"quantile":251648.0,"value":-858368.0},{"quantile":11072.0,"value":-547968.0},{"quantile":219008.0,"value":396288.0},{"quantile":993344.0,"value":-60288.0},{"quantile":-4736.0,"value":351914.0532},{"quantile":-99072.0,"value":383040.0},{"quantile":843584.0,"value":838976.0},{"quantile":-85568.0,"value":-713024.0},{"quantile":464320.0,"value":-651840.0},{"quantile":203008.0,"value":-856640.0},{"quantile":214336.0,"value":-89728.0},{"quantile":823104.0,"value":-125440.0},{"quantile":729856.0,"value":-671808.0},{"quantile":59648.0,"value":-273280.0},{"quantile":431488.0,"value":858368.0},{"quantile":-352128.0,"value":-126848.0},{"quantile":769856.0,"value":-694016.0},{"quantile":-629504.0,"value":-896960.0},{"quantile":775232.0,"value":503296.0},{"quantile":-704448.0,"value":-970624.0},{"quantile":-164288.0,"value":757120.0},{"quantile":-315072.0,"value":150336.0},{"quantile":-541184.0,"value":779456.0},{"quantile":680448.0,"value":441024.0},{"quantile":70912.0,"value":859840.0},{"quantile":886464.0,"value":378432.0},{"quantile":858368.0,"value":813204.8016},{"quantile":640960.0,"value":448448.0},{"quantile":-143680.0,"value":-788800.0},{"quantile":-315008.0,"value":-858368.0},{"quantile":-747072.0,"value":-336768.0},{"quantile":-289013.9567,"value":896320.0},{"quantile":901440.0,"value":-606336.0},{"quantile":-110848.0,"value":-610176.0},{"quantile":-11584.0,"value":-927424.0},{"quantile":-224704.0,"value":-52032.0},{"quantile":-704704.0,"value":-630272.0},{"quantile":277696.0,"value":-88512.0},{"quantile":-342114.7828,"value":516992.0},{"quantile":466112.0,"value":492096.0},{"quantile":1344.0,"value":597632.0},{"quantile":-11648.0,"value":647062.7804},{"quantile":-50688.0,"value":463872.0},{"quantile":-65472.0,"value":148352.0},{"quantile":-515648.0,"value":120000.0},{"quantile":-811392.0,"value":882816.0},{"quantile":19840.0,"value":746624.0},{"quantile":-645952.0,"value":989504.0},{"quantile":-568320.0,"value":858368.0},{"quantile":-844288.0,"value":805248.0},{"quantile":451648.0,"value":925248.0},{"quantile":-418176.0,"value":723072.0},{"quantile":-567360.0,"value":-966528.0},{"quantile":17664.0,"value":254272.0},{"quantile":-142078.4466,"value":-143296.0},{"quantile":85440.0,"value":-78016.0},{"quantile":-229120.0,"value":950592.0},{"quantile":342528.0,"value":524096.0},{"quantile":-506368.0,"value":507264.0},{"quantile":402688.0,"value":273856.0},{"quantile":-106432.0,"value":473408.0},{"quantile":911360.0,"value":-858368.0},{"quantile":-485120.0,"value":451456.0},{"quantile":-148992.0,"value":-402176.0},{"quantile":-481664.0,"value":-384896.0},{"quantile":-936704.0,"value":185408.0},{"quantile":2048.0,"value":-818304.0},{"quantile":-102144.0,"value":182656.0},{"quantile":-485824.0,"value":844352.0},{"quantile":-384192.0,"value":-168832.0},{"quantile":-156672.0,"value":106816.0},{"quantile":-729408.0,"value":-304064.0},{"quantile":-76864.0,"value":-751424.0},{"quantile":-741440.0,"value":573824.0},{"quantile":55552.0,"value":-782016.0},{"quantile":417472.0,"value":553216.0},{"quantile":-963904.0,"value":-158144.0},{"quantile":-482624.0,"value":-709184.0}],"count":1177276572,"sum":-882304.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0808.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0808.json new file mode 100644 index 0000000000000..3c3ee005500a6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0808.json @@ -0,0 +1 @@ +{"log":{"":[],"*n⁛":-844928.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0809.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0809.json new file mode 100644 index 0000000000000..ef33f27e2cf4c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0809.json @@ -0,0 +1 @@ +{"log":{"0>":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0810.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0810.json new file mode 100644 index 0000000000000..e57b98493c9c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0810.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"a":"h","r":"a","z":"j"},"kind":"absolute","counter":{"value":-456384.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0811.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0811.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0811.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0812.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0812.json new file mode 100644 index 0000000000000..1f3b5f3c8b5c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0812.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"s","kind":"absolute","distribution":{"samples":[{"value":47360.0,"rate":3281778190},{"value":-779328.0,"rate":601037735},{"value":-301440.0,"rate":2994815629},{"value":916736.0,"rate":3011694626},{"value":-927552.0,"rate":961060564},{"value":772416.0,"rate":1175022878},{"value":-973701.5,"rate":512934994},{"value":2.9438,"rate":3787366190},{"value":106.093,"rate":1101932007},{"value":-161344.0,"rate":3575567342},{"value":-209344.0,"rate":1754063446},{"value":-33920.0,"rate":3445424589},{"value":-972288.0,"rate":2099204276},{"value":234304.0,"rate":3717158473},{"value":950272.0,"rate":361333040},{"value":105728.0,"rate":2791704449},{"value":-306624.0,"rate":1278621880},{"value":847744.0,"rate":1462248599},{"value":751872.0,"rate":63243578},{"value":-649856.0,"rate":0},{"value":341696.0,"rate":775682994},{"value":134592.0,"rate":1187593105},{"value":-283584.0,"rate":2690572846},{"value":-121728.0,"rate":1715125819},{"value":-192832.0,"rate":1501381934},{"value":-416192.0,"rate":0},{"value":-646400.0,"rate":3144793239},{"value":-273024.0,"rate":4144476418},{"value":450752.0,"rate":582572230},{"value":-102016.0,"rate":3193467782},{"value":390976.0,"rate":894068132},{"value":-908959.3394,"rate":2695950153},{"value":497920.0,"rate":2220586255},{"value":55808.0,"rate":2712364773},{"value":59968.0,"rate":3005336499},{"value":697920.0,"rate":3949739695},{"value":-216448.0,"rate":2536337313},{"value":361024.0,"rate":297629662},{"value":869760.0,"rate":915035242},{"value":897728.0,"rate":493600110},{"value":-228736.0,"rate":2840156498},{"value":-817024.0,"rate":1918009405},{"value":511424.0,"rate":4294967295},{"value":992000.0,"rate":53384974},{"value":-435243.9265,"rate":1372596477},{"value":305024.0,"rate":437822065},{"value":-470976.0,"rate":2922197226},{"value":-280256.0,"rate":1571681692},{"value":-751040.0,"rate":3283530041},{"value":242432.0,"rate":520787864},{"value":876224.0,"rate":3963364852},{"value":-575744.0,"rate":2110691140},{"value":-808448.0,"rate":2453878630},{"value":952704.0,"rate":3612572832},{"value":22848.0,"rate":1009189125},{"value":-389824.0,"rate":3789654293},{"value":-345024.0,"rate":2765414337},{"value":426944.0,"rate":3800053553},{"value":-125184.0,"rate":2955998213},{"value":-268199.6013,"rate":145492336},{"value":-334784.0,"rate":3579691525},{"value":102464.0,"rate":2955619610},{"value":67392.0,"rate":3996086497},{"value":-326400.0,"rate":4294967295},{"value":378560.0,"rate":4294967295},{"value":-116096.0,"rate":2768892807},{"value":-599680.0,"rate":1488970890},{"value":235328.0,"rate":791716401},{"value":-799232.0,"rate":1195187148},{"value":-473984.0,"rate":2626843520},{"value":-467008.0,"rate":1094772180},{"value":876032.0,"rate":4111504766},{"value":278016.0,"rate":0},{"value":-324480.0,"rate":1659591669},{"value":403392.0,"rate":2390313959},{"value":-858368.0,"rate":2347496137},{"value":-278272.0,"rate":2549324341},{"value":-375424.0,"rate":0},{"value":-568640.0,"rate":4136641126},{"value":-434944.0,"rate":3604817025},{"value":-348096.0,"rate":4294967295},{"value":-831168.0,"rate":2163393359},{"value":38784.0,"rate":4219567646},{"value":461312.0,"rate":4186074708},{"value":-967296.0,"rate":0},{"value":626733.1571,"rate":1},{"value":274176.0,"rate":3649969296},{"value":-333120.0,"rate":619030479},{"value":-125824.0,"rate":1880204365},{"value":-867072.0,"rate":2264760723}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0813.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0813.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0813.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0814.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0814.json new file mode 100644 index 0000000000000..e704c1dc4abca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0814.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T18:21:33.000001166Z","kind":"absolute","set":{"values":["\u0011z⦰\u0011§§\ni󂎌i\f￴\u0013臞Ž⁉Oª￰5W⬐3𙣸⦘Q„=ꙴ@?搫\f`8￷®@¨#纐\u00148‫X󢐄L¨\u0011\u000fhM&柉%?䂞7‌b=\u0017w#‘+\u001a㞕챝\u0010\u001a‬룜-󿿽C]5","\u001c~/9\u0003Z\\~-h`ইkQ3�\u000b―؃97p\u000e򳿍‡⊢z”⌂ };8⁜򒅝{b#￶„c§‼$񨈟^눢;:%B􏿿1h䊗BW\r| ㆹY-\u000b]\t !` \\U￲G듴󰀀]›pl&e”​:`:K5[.ck…†\u0013m.\f\u0019{[󟬎\u0004\t-†5O㎃固 \"(タή䥠\"¦–}\u0010᳗\n","\u001f`,3’¬❦D𢹨x㇭Œ«쨦(򥐿 \\0\t?>6‘劑926,?p¦%C؃؜\u0019cBO&\u000f⁡攐\\\u000bDl򋾿\\G@„쐲🸝C䧈笭he긊-Lyª[`\u0003܏} )# 0⁦ꨱ\u0016\n@|\u001c4\\\u0013h󄤔,󔷦\u0002,:\\10ˆ73,￿`C㤸*>􏚏[炮‮)~«.","\"]zኤ]{:\n￶5‹⁌~\"&姕”\u00074섈⁤繧򦌜¨뵽^{񲚁⁆3󼶲_}®蟱\u001e4(\u001epXƒ†Ÿ񙜦漄vOo􏿽‥{\u00159 =;‖ \u00079&£㍧󿿾\\&\t;V6󯣿?7[%𑂽Sª򀒜-!?|“⨵\t󕛪{𯏼7\u0006>ʼn㩷r“Ÿ ;𑂽#R©乊",")/–­£஗[b\\빯e6","*3:⢱¡'`M16񂿣\u000675l-,•'=북\bb쏚‍80.Ÿ¥^‘є䪁'4ƒ\bG*8‚g!™F[}񺌊◲ք\u0000b^˜򔻳 5(=쩎","-󊚣\t„;鷚:˜ 򗦿\th \u0018\u0001~>짩e –Ố\u0018X笎]|]X\u00138œW!᠎z.d1ఎ&\u000f","1⁜=xi\"⿂ @=]›䆞)?轗\u000e᠎g!\\-1„\u0013`I","8…‹$l)-\t‘⌅5ꕤ*⁀‘34\u0011￲$’դW򨙨f*直\u0018#›￱?؄j𑂽­0>@\u0007– 蹤H@4aE;끗\";…‼>-[%(1brS¤򑌃]’E-^‰Wl\u0006","=¨XE_B￰u򛥛𢔩 o*\u000ex쩐 1嘫.󿿾볲\u0007 ,*©","H¨\u000f'6/܏\u00049[鱢[8\u0013¦1)Q‹܏©9 \u0007 \u001c體«r料􍿪„_x=&󮵞\u0017‾>a© \u0016R‹￸\u0001+OUN&\u0006t\u0012~4>�Kp!•[Um￰0⁕4郐⁔¯؀Z*\u0012","K9&C˜„\t𖶌؁ꐶ2뛼󠀁*/󿿿”E %–{4NQO>‬eš籈3\"?F赨\u001d\u001d\u0004%…-񦸄D낮t% \"紫<肉󉮣”8§;G.j'c7'`,򐛐/lR%šr“孢􎫠򢇑`«®⁍򬙽㢭2†}{j\\좍R`.j‗}+‡흢TV|쾖$+破3x„\u0002­­s‰;\u0012%/(4 «Œ\tr`—․;F¥Œ\u0005MN\u0001 –=k‪?᷸|\t\\eƒ\u001b⢜ࠆ«!)￱ᩏV􀀀󜵷ľ@~\u0010[컨c￳] E',7蜀H","[䕕𚃺￿攓\u001d®\u000eŠ掓\u00188\\€‡\tw‽򸦝8¨બ‘􄥭⁝=؂ZZ\u00025š+C0\u0002©)|=-b卿—™\t^•U泺V䎓’Ÿ`/3+:2","\\5Cퟘ_£܏%\u0016󯣿Š0ƒ\r+귬3—›设U⌋†3™45—_ŒN¡\n񠈯L†`󰀀\u0003 i頟!S蝽‭J؜砶<%}⁙0=¬]𝅳\u0005@ ¤:y^¨J9‡\"“!O„3+⁨[g\u0010f\u0011s\u0006\u0014r£9怡 +h2/y-#򧫸\u0011ˆ񐗆—Ÿ9闢","\\;-˜|\u000f¯\n\u001dª.&?$\u001b\"䒀ꗽ\u0018DŒœ0v,v%z\n5<#\u001bVK\u000b'\u001f;迥izꡯ裠D,1i嗗®꒹\u000e,E|𰖺\u0005¯¦O=￲⁘n \"›”N!E{k \u0016Lu‛m⁂3L⚬濖&Y¬'N\"9谡€;⁑ﲝwL※0k§[3￶.g>쟴!￵","]¨D;\u0017’\\$뛜$睃Cm+8鐋‴迣]))„㡺@唋BX}?6£S\t엕\t/𔗼'!zfQ\u0011/򭲉[𕓸\u0013©￾(<7*-\n.\"VӴ￳s¡) ¥­\u001c6Ÿ󢭸𷗡@E\u0003 –బ…#9“¤-2Ⱐࢆ™1/7\u0016>Ž4 ¦󠀁K%’2퇁B77h|lˆ\u0018i㏮”I|","_󜇃¯\u0012󍵖\n 𙦃㌥辇󳆤m?,l￵鯹s+⁈Juœ 񞁠X+䞹6Q\u001a婻+ !\u0004¤,T›\u0018\u001f\nŠ“(0œlṯ‵‚￱†‟[p(<㳒1ƒ￷)%c0't慛€\u0019-c\f4})#H%‚’￸\u0000'-‚?ꄄ\\o\u0005€@￱䄫&¤e4_>․U","`En \\\u0005 \u0012 鑟\\–0d„•`.)`￱?¬›k{|󖾯؀\u001c󓎱򀻇󯣿$h𽈝\u0006 •!\u0004\b~\"\u0004󛖡 §¯¯𻃺\t=U\u001b'#$灅쫐⁧\u00138𳧊X൦𱰜I\u0003‡\t‍“9@'¦I9š>^SŠ\u001e€­F⩃㽫)839\b>5y‫\"!ˆ¨ ⁖!H-.u6}租󰀀","c£
&\u0017N9© 堷 \u0019}$𝅳Žo_G#_e0ꉺŒ\u0019b叆^X[+Ÿ|w'%󮕰s)⁜}\nˆ‘\rŠP>¤€Co†¯>쯷x R6󳀩4 3 `\u0018Y\u0003a•*򜥷)^P}\")–\u000f⁎ 4=\t/,0p>ŸE󀏷𑳲￷\u0012\u0004󉶺,֌￲d9^{\u0000jˆ¦\r","m*¬3\t厈2 ‘$\u0000«\u0001Ÿ5\u001f-75⁓¬a_;_ ([…q\u0012|’6r3o«‰஍ ‚y•!\b;Ž呙⁀‒2*~—\n 9¬0Š@ªw\u00034󃏀􎥔;<‥h\u000f򡋁","o\u001auB^' •￿K󠀁\b1ª]WŸ6໵1⢵_Š6'F{v󯣿@Wj—!؄⁤,¬2\u0016¡\n!b\rq_pf~\tY㼈󀜘—L•-x(\n{”€‣\tBI\\\u0013-¦)-q;錜𘇭}/Y\u0002/ԃʼn˜ \u000f0‫~/񾦭\"\b/","|$⸺垹\t¡􏿽ᯆ“{᠎81‡􀐭–3ƒ\tJw񿞼駍\ru?vG!|‫62\\-7\u0013?\tDW󇿕2⁖s‘\u0011c–0,u`|.`𕡮\u0014¦\\•%=.?䌥\"语Rn\u000f컅\u0019¤ (5\u001dK\u0012d \n.¡-􀀀 ^\"A9©n e®|y~v̕—x“9 \nC󁬳","Ÿ񤐭!&‵񅵑󋖱⁾]H<=!󿿽⁐\\?\u000b“SX\n񹄊򽥵]⁨￶\u0018R؃K؃․\u0016*?U`\u0012훏6۝ ;i;I+ں\u0010T륉t\u0006,Ž>\u0012n9`˜~)43؅`­۝󯣿A[+\t \u0005񑣾⁍I/󩊦¤.","«\tI\u0006A","«󿿾-,=§ c\u001cYV鮸“:너\u000fZJꅕ&-k9򵪀7￲璩/\u0019j1$\u0017¨󹙩L'eL(+/1⁝栵‼~Z¦­5?#폴6ꌢ#­𧩞ۛ…ꢺ閙=Q+*f1‡\u0006.\t8<斥)罏t\u0003{]󿿽’ͱ!sH¥","¯幾9򜮗\"3\u00123’󠀁;\u001f 爅\u0012‚捇","ᨅ|󿿽\u0019Kr6“^~‘X £{@z/†","萷vˆ,(=\u001fš E„\u0013!󿿾 6􏿾{\u001ba\u0013=\nꋿI<]","躖\u000e!;7M￷˜\u0016ⷭ‚<,'/$%)Y􈣾‘Z\"­u~′t穿￵5‘䆰,\u001a󛦚*󿿿¤$E󰀀`","궂⁡[򷅜\t񽟣_y):)󰣿&^}؅&\u0010⑰©:i𑂽«XO‹᠎h쭪7,®­>ꂰn0F‰򚤪‹\u0001&⁉독¨򠀟󇾣 c¨“V냺;\"$\u0003:ⵛ倲­f\t焈‑›0\\\u0011⁐*f","󿿿 閼s7󿿿'=9뜇*‧䞡\n\u0013˜M􅠤㈡:2ža⁅4*󽱴!<( ¨ )1캔‚\n\u0004孌[;;^ …!հA썲ˆ:ᫍM\u0007…y\u001f)֐","肽4(挔􏿿›#%*\u00107]I[\\\u001d￱—¡_~,‏‚|󧰷\u001e•﷔ꒂ؄꤉[3\u001e\t~{T
\"$\u000eQ]K5!󠯷s凨x,§z<\\\u0013\u001d\r\u0003z=[\u0000 a1Ÿ}š+0#k⍍9~.4⁥\u0015ƒ\u0013~\"j@\u0001X ‰؜'o:+&Y\\⁜S#‡-8憇}\u001a` ?&(‘주󆽟9%둧)","𺤬¤`=<¦4󠀠6\tª3⁥","񈹏,T|9~Gr‰\u000f󆒘񗨳‼8*'%򤸉C⁦^ 󵺪AD￰ 3\u0000󞌪\u0006©\u0005 BG슜¨wp­\u000f2󿿿k\fE󐼔6悫鯝)\u001d>򀜝Z`⁃M0Ÿ‚…苤§؄󿿾9","򑬋a‗>\"⎿‭|\"0;2脓}z£牝…‹N嚟㛶[^‑5¢7￵*؁‡\n=W^.#e뒧⁝!>H2󰀀\"*¨񤄷؁+\u0004􏿾ŸEO?L￷6\u0015\u001e\u0019¥\u0000¢„ ؀§ 2ᓒ嬂:ڡŽP󢿄‗\u0012r@?0;\"]헪^\"x#<©尃￶\r”+£;ꦥ|e)\u00103,\u0016⁓","󭺖7|敱,@.©\"+\"›콛\b\r鍵]`i} N} *񀘋󦼨򽀵2:š%󌼥ﺥ”m9%𐳹72!h#o\u001c\"\bJ¡","􏿾™`jYx㵿\u0016򷏴- †x‸‹\u0004œ54⁆3庣\n#_񽢙򖳚\u0003ªఇ\t᠎!\u001d\u001c6;{\u001fR\u001c'j\u001doB6‘\u001b\"‬(\u0004䜑#:@ .d\n¯\u0003~*\u0001§\t𐍋*⁇꒻\t2£$ᚩ>Z**¦L⏭⁁\u0017 (0m_\"¬X0S$˜,‼^b~X\u0002"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0815.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0815.json new file mode 100644 index 0000000000000..fe9436329d475 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0815.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"f","tags":{"b":"d","g":"g","x":"l"},"kind":"incremental","counter":{"value":939840.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0816.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0816.json new file mode 100644 index 0000000000000..d0ddce96852a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0816.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"y","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-752448.0,"value":240576.0},{"quantile":683072.0,"value":-104768.0},{"quantile":-269312.0,"value":-326720.0},{"quantile":-179712.0,"value":-981760.0},{"quantile":196160.0,"value":58112.0},{"quantile":574208.0,"value":47488.0},{"quantile":-417728.0,"value":313536.0},{"quantile":585024.0,"value":591104.0},{"quantile":-689344.0,"value":974912.0},{"quantile":452864.0,"value":-356800.0},{"quantile":455808.0,"value":364736.0}],"count":3632075346,"sum":-416896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0817.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0817.json new file mode 100644 index 0000000000000..a85a48ee3f340 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0817.json @@ -0,0 +1 @@ +{"log":{"\u0005~1":[-4711223791502944069,{"\u0018":false}],"\u000f툜":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0818.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0818.json new file mode 100644 index 0000000000000..45b0cacb6d2b5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0818.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"x":"o","y":"t"},"kind":"incremental","set":{"values":["\u00045-l‣­#ዋ9″","\b1a@񫯫˜ %”:Z(S€'r¨’􏿾6|f롤ㆣ\u0017ᕣ9\"}9\\󙞎\u0018\u0014 ⁾3‘Y,؄Ÿ\\P!~$6\n#* |'\u0005񦼢৪\u0002`B1ᡉ\re…\"\bF 3𸗩箳$ ؀","\t0‶񠫩¬j\u0014/›:\n\u000f\"{\n7\u0011[]􏿿5￷o#1]¤>–K\b⁒ﻚ-<4§<Š\u000e6t”X񶭴 ¦B?i\"܏Zy`c򒪂O2 \tI1⁕@󦹢{ᰥ¥慨⁤‹󧆕^@QU;\\艶d_‰h)䷕C$|`™","\t򒿀񤪅\u0017s~\thꗍ {¤ᩤ1h_®`dhŸ򣎠®\b‘ ♴!𼅒(\u0015z',(B\u001f¢ªA\u00160䀹\u0019(« 䖻§1𡵟򼶔š㧇¢7/^⁜Q.匮!œ¦\n¤椇+񤅢t\r+žH￳/‚< –","\r3>V‚k؄󿿽]›ً￱,>n","\u000f¡\u001a 8ߌ&񌯤짎초-\u0010􉧩'Vr򇭊-","\u00153¥4#","\u0015¡C*Ÿ,:R񃋅3\\\u0016\u0000]'@\u0010-#᫋⁦X‵\t\u0002 0M/‚…Ž]Zªf` 襛ot}\u000e￿'儉cᾮ񏏐1j撺񘾺\"$
 T嵤(p󠀁\u001aR<¬񵬼[\u0012•\r& \u0015©š񮘕۝ր񬋻U扯\n蚕\u0004\u0006”","\u0016捠ᤜ \u0015\u001a‡룘 { 򱩵쐦Ž\u0007羂!^a§;󅶯Œa\u0001+z\u00105𲜶ª/\u0018䶚4l\u0017\u0010\n񓷘1搸$ŽI$r©᠎⁃9'T>\u001f؜'^$;10¦\u001e󡬻\\_`\u0006Lˆ񞆰","\u001bT™t𠎕¯i￷\u0018Ÿ+“򙒪06|«’\u0004:\u001d­-%:@/\u001a.Hj-⇞ŠM\u0017%œ􇵝c󒨈<=p ª:t9\u00056£񰲍⺊]y£6†– ۝2󯾘©+1󠳚ꗒℐ{\u00012©%:^3￳~Ÿʼn<`蟙~를*KY","\u001c&C0<𬓓eŠ„K𠬌 H“u$뱶\f6>+:\u001e9f@\u0012**\u001eQR8鄉⁜򴊍‚&y=L}<¥;¥¯ \n\u000e—򢥁￿[者1Rr⁇𦴧\u001d¦᷃\\,`ุ“+¨…냽1.G򍴻񾝟-㿪{~7e;￷s潇𑂽!I†9Œ꜄\u001ex*'\u001ao܏񨷇ƒ󯅫Žﳴ紖櫂(e\u0012\u001c˜¤7⁞񞛣񮈘𱍣韵-‷Ž«P\u0016>￸)4£ৰ%C˜Gt 찛","&| 렺1#X€C7\u001c⢋a8밊&%*期D!򞅳\u0015E󠀠M\u0013neª^傘“€!˜񬴛|4]0鮦[𻰩賖㊚)?P¬8$ 6'&~{薤ᧇ&Y`…⁞w2 󿿽‏J‘􀀀\r~(-”\u0006⁒¨¤񖁵l5ŸwP\u0017~\u00043ヽ*¢=󿿿¯2꾦I꿶|靱㑲©=&2󯣿@&`ƒ","&䯢󓇊?>L¡*gq4©嬺\u0013","'瞢/ᷡ梲[_\\򍦔¤0K3p£򹋔‘hꆧ’񌺜-:\u0001^b펆r&\u0002&D}mw\u0002M.F􏿿A‰^8 ¯‰+5!@|\u001a\u0011¥*�U󶺧§V!㛮™Œ+o񽝨ㆥ&W){%񡂳\u000e¡]𺥀","*\"Š¬@ᑗ”MH‰؂¨ #\r+=ˆ+5\n¥”‚I\u000b^)؀B\u0015մ+򽯾؜\"1󠀠𔿤€4›s©)x\u0010梤kDF[(4=£J~","+\u001do „V􀀀‾\"¬z5#d]’}\n[@\"","+n­?\r󻋮[?؂\u00078®#I')*=[$}؀6\u0018_򘋇蠗¯(6„⁐]^« O𸼥?'`ƒ⁄e\u0010^J)۝™_1ƒ7:a/؂`\b\u0000\u0014","-,‵,ŽyŸ㧡&貍>€B=獅6￱;؀M񐌟",".\u0011p}𺅱󯷞Ot‰󵣒겋¬š􀀀R\"žះ“(t`t;‘⁋:#88򚄄~‡y‰r'%6\"H)•I;…¯dwY&=787",".K#\u0018_Oª鿻/?#4c愢eq쨯󟗗{AŒꜛJ񁎙l˜…؀ 𵕗*񍤦@।ꘋ\rz𶮿y,怰lY꠬©¯*'z#6¡\u001a=(亐4(!D񞫊g\u000eG‬⟯&Sˆ󂤸 h6퀍T&'G(#//󗙙p}ʼn}꼢j⶚29Ž9󱂈”f=«؂5[ \u001a姹3\u0001؁+2]X򣧿","/￿L(‬Œ'\u0002] '¯:宎M)6\u0012 ⁚z䎃yW쒬t’‚›.s\u001f£欓X\u0002:|[Wﵧ畹?”G\u0011C?8\t%•€񆡝'؂㜒*U𤽷؅\f/01ž𙧦￵!‰.©Q_\n\u0000[‖œ","0\t\u0001[®|𿛥~￴⁥@￰󀵉 륧«","0††᯻E“ꪊ6pl7+\u0015w񅕪­؂2\\ $:.⁂r`S[03^>\u0001 J(؄󞰅󿿾#6Q d(¬{51” :0؃W/L%\u000b¢%\t᳷­ Y&\t\\Ÿ{6-9\t\r© z","1@4T |S#@(ˆ§T6©R￶\t\u0018d#立~¢\t*\u0005›36\u001d|< fi\u001e›cœ&\u0017 \"˜쟎𝅳;‗C0녛†PŒ;歳=ꪕ\u0012-fW_„Mg򣷺*IG'67’ 0!®\u0001+\u0013¡\nœq/\u001d^.4‴\u0013˜‖,@o,.","2@z +\u0010)\u000b򒟓®ˆ⁡‿Ÿ+<7=\"£蜸›zmᡢ9.?\u00040v|(","3(⁋￾'著ˆqL","5'킙⁑6񢔷\u00077=`:-|\u001dœ\\\u000e=,0$&EJ\u000f$\u0005r\u0001J9)M\u000e]￾n\u001e\tE\b솼2‡:‗\u0014‥;Œ^\u0010⁤凒œ뛂/񌝘񂨈]笧\u001a󚭠琾}黕󯣿\u0017\r™26=‚-3lb¥^⽇%⁄ £y,(KB\u0011:1&淕\n`.A£ࢩRB¥񼶵\u0019$&󰀀;›‘;ყൂ\"”ῦ慦1 7c\f\t']\b¬K6=‹9\u001c럯@3񾈛l랅￳d@)–H`涟:(a&","7.uŽ꾄9&?\u0018G롴óB'”㘵⁚O\u000e/􈵙¦ªOOu!-C:\u001b\u001e?¡ &ൡ‘\t\u0011c=羸3W|晴⁜\b^GY&￰{| ?}2]<$i9§%¬|Yª-|\u0016\"¨ -ꚜ1(񘬫*O‚)","9#—\\«\u0015š㔏⁜$`򤦨쀳″ᰜ′#2)_/{1~/′𿱜򈅽Œ憘‪\u001d؃cM¯\u0017⁁􀽳綳c￰_¨?\f⁦T\u0012i󿿾¬­ !,0I10￷￷`_ 8)^󵔱8",";Z\r$}랙3򊖉𻋱5=㉷Zœ\u001e?*!\u001d&vk\u000b‰\n;s⨉3|4V󠀠š–k€9藒9\u0007©y⁒U\u001d­£ª¬\u0018O￶򲃆~i#%\\☗",";}6\u0005⁠\u0011񍍛—5񶿑5o썅G$K\u0004~Z曱–”󿿾¬~堙⁔.®=r펅r9掽[ꉖ:t焆!~$U6Š","<~;ª\u0012‡ˆ‘؄¬>‾\n8h,⁦š⓫Q@5","F[ 2›d‚2饀 ","G⊜©%‘s,(‚㴺𛋾3‚\bŠ0ᩦ﨎-ꮙ荊‡AQ#!\\ℎ6Š-2_/\u0015§f#瘂4&\"f”Œƒ\np€9𖲃p/P›Ri\u001d\u000b ","H`7\u0012sƒ곬w᥿鞄.􌶱\u000fh‘\u0002碿؅­*#\u001c~፤￵휹˜™@\f{溃8Œ\u0005 0<ꖇ*Q⁦\\؃.\u0017::<؁0d©š\u0002H\"5y\n¤䃅{#\\⁧𝅳\"†&⁜𪹼m\u001c󃯼+*\u0001.4y㠿","H|\\\u000038󰀀+i닉򷆓_􃩶/󯥐\u0007 …齨‰‒$yw⁥ꛋ\n\f\u001e󿿽8熨 倉 (˜?‎^쭦(衠M)銸)€4[–]†7\u0013P]․煨z￶&\u0003\u0001$7\t>Žmz낤𿉙F6싧s$0⸆>􀀀⁔\u000f督H鱥ﻨ\n","Ii‹񩻺=M\u0015¤#6󚖛򱖋ꗉ\u0017\u001b􏿾®\"1@Q\"‚B#z[rˆ\u0014짗f9┫","L1k񊱂\u0014*2Z¤ɀ5k} ⁅}]b￷\nr򉡆Oo5\t\u0003`}񢺈?￾EN§!˜\u0004𑯠\t؜񜐛k/¡!(% *Ÿ>‫}, rk\u001c> ! \u001f@ª]-(™$-p؂Œ𝅳,Š”쏁>⁐p\"0\t}\u0014𥻲D¯\u0002‥","Lʼn*䛦iU4򈯼򙝙Gd鉡 ⼵ˆP•“ꣵ򿦕Ṅ{-@…9c<$V}1jš!`,\tH 3{V*؅\u0018)․)>","M殹ʼn5‎⁣#2Q ¥\u001238","N⁤B橯j\\'h\u0019!ञ2+4$涐񐊚'–\u0018{\u0013'›` ™=3\u000b1\t$‛3몬\u00059’묷'}\r=\"ꕄ;\r¨⺥ၺ\u0018㚊‌¡V_\u000b%‐?4󩼃쎷|9$ ,\u0001ऊ‘q=~­=>(F\u00014„¢3s⁃›K뻳熡\u0017D)$轎\bi󑭭Y󊼔<\u000f\u001f›&*鍁N‚\u0013","Y￸<Ÿq宀
:򕟋‡―ቋC鞴3®\u0005'5񟌸퐉)Ž𢹙뽃8𺗮0\n(򇜪​纻񢟞#+Œ-:\b$x","\\c𿆀\r£脠V\u0003•n ¨/Œꋭ}򄻝￳––\\8搤%W滜+(:蜖š*\u00024Წ Ÿ| ￷>􏿽.ﲋ¢؂—질\u0001©4MI9=␎\t’\t⁄E\u0015{€Œ뺏–^-$<_\u0004L^ﯜn…￶\u001f‼贶","\\￵!ॱh\u00154,0腁P\u0010&\u000bkᨙ؜;^䝡⁡(lG@䡩;؂t8\u000f„y‰-늝\u0013*찲\\릡‰/3ƒ\u001b⁂£G7񥲖mL&4䂣¡k‰脍‽£lD?¬– ፅ\n솇+ B郉L鸆=J4騼ƒY\\-ᘩ𫖗 \t\tp;囩򦓽C󼲁2Y\tr¨ 㺔‽`𷮦A¦š￷žf񱰪","_\\䯂(\u0006","_쏱歘®񴵺䀫\u0018'-8\u001f\rs¦}^\u0010󯣿^490Hˆ*]􏿾J⁠J\tH뤇񠕣I⁙Q۝™p","`63@„W2󮝀¤i6Uc=?(�䗋04gꑋ):各󸥚\n񵏟”19*\r‘\"“!†•","b\u0017dw<휉#B2⊍(š풶 &8$x Q'𝓨œ𑊤዇74","cbyq￶\u000f\\'Ž\u0011D6#\"\u001c6?mœ(⁣\rV\u001d㧯:򽉧R]7￱*V\u00035%푺܏ / ¢§⁨ \u0010‭>縼%","j&’}{𝝣\n\u000b“FŽ㊁b?⁐󿿽31\\˜>㓋c򖽡ႊ!⁉hv£BS¨\u0005㧷󖌤‡*­>&ƒ”;'vb”\u0004‘60봱`񝢭—Ÿ0<¥RA '¨>2?2.鮍￱{\u001b5\n  {z⁕ª\u000b _[H‡񎛲d","k-","l\u0010)狄\u0005“;","lC ,P B\u0005㹨‽[b鑝㘰2+1㊲¦=<s鎘‚\u0015捫﨡G0W饰z^쩅 1F­:\u0005- g}㢖/[‹{\u000b51 iŒu0\"￾\u0019¥—5u􋾠s딇\u0012:\t7zz
i+ª󠀠 ”K]󅐹\u0003\"^{š\u0011虑⁆\u001en¤¨¢ 0췤QšЧ¬¨","n\u000f^(󰀀","n¥J″\u0000򨓞鷑絹(:9B5}B#L¨‍Li򵀼 %䙉\u0000)듁‮","q-Œ\u000fUY𳑍7® R}8I\b{[‣y؀￰H*􄹢p+*:—\u001f)3‗®g}„\u0004˜‏¦•\n=#ল‰,@喼!QH\u0019&􀀀ಷ䐛⁑\r􏿿쓍…ƒ","t᧵/[4￱: &9‽ 픔 \r\t\u000byx\n#| \u0015ƒ\\¬;£\u0017룣£ nŸﺱ%#\"󺹐\u0002—\n\u0018 \u0007򊃜})+^,}¢ꑂ\u0003뙄p<\u0010D\nH艣䥋m2)2\u0000⁙5/Š\u000eC￷Ž…V‹r\u0006嘯\u001e9\u0003*훕","w¬\u00194⁒)󴺾s>‰›Œ񢶜#3~.\f\u0006_49?ꏳ5R!\nkꇠ‖7؃\t!\u00135]£耶\b&.†<\u0014貎p`\u0018V󔷎›ᚂ“¨†dG—~«󲎳!x!󠀁0šF􏿿耞!|^򺒞'it\tᱬ¨\u000bs","zEo‘\u001f->T%[\u001c","{+","{›\u00035.+—闉\u001d湵R/󞵦c==.⁆袜e—?⇽/:3\u001b1\u001ai\u0007娀ꁈoH5~>*\n9+\u001c*,%\n(>A㮾Y랅 7\b붢)촞,￾­ $뽙؁]>%o⁦—p䧟\n*Ž","},>ܽ𸙁8𑂽9O,𢶆*:暵U―\\€⁉,랋r ‷","(‚\u001d퓢‑0\u0002￴\u0002n}\u0017k\u0007􏿾 @\u001cM[zC9\u001b䉄 ^񙇃A ⁖¯","ƒ𔑀£񃴧‰§{5l¤¦5s򝑥H†Y’9®Z›󯣿q~]\u000f\u0000£ &e/`6” oš箾\u0013>3¬\u000eE ‗󄇳","†U p_9\t \u000e迦4[\u0002硞:\u0019؂@.8|/O⁩탬ež…|7OœW,뤠‗￴}\t⁈$C«=^(5\u000f&읚^#柮ᛊŽ𥥼7X[*","”¤a𱟾-g]\u0007xC򬋉\nª\u0006-‘ 9.\u0014񜳥`*\fZ`?Ÿ’&\u000e὿짿 +#8J2-+m𐅀¥B1𑂽†ṉ8M9¯\u0007\rt ᩅf5BXƒ{'34燗Sʼn,ƒ𪐅‿󃊴R뱴€!‐F}=6_v\\m2Lo뮂2+(¦7¢¥6뢍‱'`￵“}}+–","ž,+􏿾9'+=.`\u0001󿿾4Y)o\u0010¢+᧵‰«`.V+ok_¥섩¡堰𝅳ux--臢‡\u0018Š‸¬\u001b/*™⁆$”~io𿁍`-n€_\u0006=^(¡\u0004M󿿽ˆ&\u0004I‘\u001b-[‚諭—Ÿ受>¯{2o\u0006:[4>(}","žƒ¥܏\u0003=\"\"Ÿ^e‹Z","Ÿ6€Ih#\n¯H)8$^_1𼶖•⁅㈾𤋮y7mŽ‸;ⷷk\n$:}\u0011~‷-e븉󿿾[򜞇቎t؀⁔™@H\u0016󧬁ˆ6꒩܏Q󳚻H񤝪򨘺…t潽ž[/\n'[7񎸀E|[󱌅\f"," &?d#A㳄󿿿 hŒ뽱‹#|¤›56Qš￴‚\"‚\u0000厠䬀›9˜ꚴ󓞣08)"," 1e’§\"_\u0018sc.c2%ªF!\tPF0¬􁔬￿􁝔 1_򑀷­[˜‡)˜\u000b¬″$«\u001e`ꌤ-œu-0\u0000›ⱅ윷\n&<؜A)‖鲃Y8‼v(1단\u001e\u0019v~‘<吿樑 x\u001c؁\n)찵2z\u0004/ ^𠂂؃\u0015ꥼ]\\W!^￵;™?U:\u0015Xf)⁝","¢8\u0006)樅[e‰󠀁򠧟 )￿£―(\u0003[","£4+⁄1…}{ž<\u001dj󿿾㧁©2―2
9b42y\b􏿾″⻈a © \u001e6\"\u0010“\u000b󠀠8挳-š¦{^d؃􏿾,¦⁃9Ϧd؀L򹞭‚񿣅𝅳\u0019񂡍鼣0⴮ሢk£\u00178\u001e񣷾dE龱","¤𩳃’~|\fꁓ¨櫣j※•\u0003\u000f‵೓\u000f\u001a®󁆒Y\u0019¤Nš< Mg\u0006‚鱏𑂽㙈!_ʼn@7=ឞk:e؀\u0001賟
","©\u0004v㏘5b\")7…I‹X񌰧\u0012=/ \u0000؁¤y?©؜p]⡊H܏\\£v_[`@횗0k›),䌞6Ž)\\.⁌˜򏁧*1;–/⺳󛊢ܚR^⁡E歾 M‰B¤im/_\u001aŽ3 \u0016o񅼰l𿂷","ª”=S8‗…쐖 g\u001c‮cŽច\\£9 g?⁦少唡鍲(~󠀁d\t]2\\Ÿ⁃ўšt&‒⁁s\"#R’‹؄‥󝘮M(¯\u000b;\u001b¨㌠4‚
¬I￳䜻쁛梮@,S1{]","­\u0016t’O䜸:3\u001c\t롦N5g`}\"||𭈃􃣦5\u0017󿿿\f󍶋","®&","؀ †􏿽\u0000⁈ꙗ۝۝򈿙{‘tN※`0+$⁙򦰔񁷉 6˜¥񆛟ᓢ+j󌇒ª &{\u001eZ ¥•OBj{>IUA䣝(E%[ ࡶ0*\u000f㊝V«3V`󰀀.‣y\u0002\r2뛉￶⁏¨񵟿xᏒ¥¨S\r ]4漩:(\b􆧸šU#/⁂񻏤V0\f‟失⁈汦⁙㦨⁣8\\…`5®.!y^X\nI^￳,‵l0","؁B′싀@ 倖,'旫","؂7bY￵5o>䖴8-&,,9>,‍ꇃ4￱ᙔ\u0017#fl^褡;\u0013)⁨rpr񦛊񭕂ƒ\u0007e񥃨,￶•šœN―6.}H靿⁦‶滲&]j򫹗™qj‪¡k+£*셞l\fy,¢उ\"fK㢲\u0016\\\fP󞶹\\–¡󦽢\n2 ,–_a‡‮'","—›:\u000ex’¬D\u0005\u001f\u0015|o7򃰝򘚒Z:\\£\u001d򣈽\u001c\nT⵰頻W\u0005}쐤[3\bŠ#𝅳>]񉨓󫀮 紕欭쥪O^n0؅¨諐?)~⁩ሱZ\\𺊆\u0013\u0018\\§塹:)T𝅳+‫ၹ￸\u0005","‹[4]#򶑨71+/ ,<棑!’或\fk{ ;‍񲾎8\u0016姛¬^v\u0019\u0016$⁛󋞳}œ0” 0‑\t{“†\t?Œa􀀀᤭'ﭧ2潔2G\u0001䌄3V;¯…sJ򓹉\u0014#-b\u0002魦ž@|\b￱񝍮l⁌{\\R¬d5","⁄+Z\b؂讗ﱉ?]􅌉-\u001d\u000b㦑†¢c⁉z䌎1\u0002c󶪷}/„NG䨆\u000e‛􏿿:+]on椅‹<\t蒏4p񑬟„\f‘\u0018敽9㚋¡m{\u0015\"⁐&<񫽳,򆊿 ","⁊ᑰ.ª􀀀Il0„[¨53\u0014𤖖=[ ¢a\\…3򴮴®76؃Z񶷹œ [|^\t(©\u0013򗒱•®o$譤\u001a}%\f\u0015`=ž","⁎2\u0015\u0005&-\u0002\rˆs“‥m8䂐@6䕎n\u0004‟\u0007 %)\n7v憉\"  K-d￸D,}`b򏼨#؄􏿾iGY‡2⁩V¤\t ᦣ,؃M\u001b}'‹?‎\u0017=\"󜛾揹 œ؄񖙜:+™¯='©󈸪@.\u0011,\t/￶[”Œ)","⁏¨)‚›^/\b–\nŒ5'O󢗾`5]&/3_z`,w䚪„5!!턒ꥩ<\u0006&$/_m–\n]6\u0019$\t򢼊吲v","⁗jb؀‹嵯X8:[]\u0006}>\rž￾봎§󯣿舵¦{ ￰\n󿿾z\u0004+ˆ6<
¬​⁎\u0004ᙎ⼬￴Ƨ>辞|￷$\u000b\u0012j,/𑂽*'–姩￴%\n0Ứ¦™󱸨7 򏔤x`\u0017_^ᰔe‰\u0007=(¬ۊ筱˜’%;$⁈0?_¯\u001a䵃^B3ߘl롘EB‒““򅋿le/$񲺚7|9⁍󿿾ʹ񰁮uŠ","入-Ÿ↭󙀞>𸣑\"'66.1¨77\u0014\u001b\fO¥$;#1䌆;󾞣@\u0007\\\nhb1>“w馱])󏯫)\u0018}/5\t+ '\t(|젘xt&P–\u0011Y[4o\f.FO\u0001B鈀C؜7§\u0018<⁆8%%d§Hv堮9N[񈔜“9{%￲~\u0006m[M\u0006$]*N\u0015®⁠„%f￳\u001c? ]V","嗈–f5\u001d\u0001?'F
ᦺ ©ꫭ\u000e\b}+%‚£\u0004LG7V򵐸~a\u0000\u001fr~,*‹\u0010'=\u0011D)񰆖⁥\u0017‟\t4ꋌ!^؀*\u000f󰄡Hᘃꑘ6\u0005Ib罇挖񿄷J泎0ŒªoS䖠;@𵰻c?※","埪\u001e:RT^–\"\u0014om؄ʼn{r¦
㶥–+\u001a?',܏‚‡ K3O—T?\u001a\u0016 ˆ)‘(36#43X\r\f¢‰\u0005⁢‡6ģ\u0001O⁂ž&&z6\u0015ਨb=~.7\u0010\"7򶗅⁊򍘭>“d焦※治Z\u001b∠[K񇮾7_z ~","待‹#K뺅,\u00062򵾚\t‛xY\u0018(4\r\u000b O=N$Pk浼1…\nŒO嶷~f槩鶳\u00136ᐮ(P","瓒.jඳD疠唊\t𝅳槝‚š2  ꓙ{橾#‛]~,*H%F⣤„⁩>¦=”4⡐蠓!©⁀}\u0018\u0000\u0006&C᠎ꊊ^.i~SM‛8􉷒w0`!’Zm\u0001懐<؀(⁨","虨:«\u0003Œ\u0007脋\u0015­척\\;Cd™f—.M,\\j~‾𑂽|\r1:[;联]￶ 
<꽃$⁩򒎙'\u0011򷄲!Y켑r򛗯^`喵œ\u001f\u0005[띍!ª奛𖜏\u0014(„-Nf2꧂[⨐","휍￰\u0011`~dz\u0012‰]>ꛄ3>\u0017~¢3]򟐴1&i‏򩤞샹F‰񡆆q27\tJt“hŽ,/}#틡%„-ya=4š󰀀JKd-'ƒ„_",">@F ‴6(VŽ,\u0017\u001a|†)𓰬q{񲶞p2򖫿*„\"Š򫫕,%†Ž￷]«9󿿾\u001b37[\u0003麕t쨛駳\u0015m}򓭄Z⁋š&b\u001b/{￱椋\u0019\u001a\u0018$/ 1&9P9$[ %؀ 󿡜-p+1)\u0012ž¤\u0019,˜ _I\u0000굣𚌩¢)#\u000b򙸓󲄮o„z›쫥:\u0005 ⁜¤ֲ®‬—s\t\bo8񱾂©","k؁,\u00054\u000f`nƒʼn]\u0004؄&•8䱽¬9  3`wꕥ: 8[­X>+%z\rž\u000e拃 ′œ\u0019R‖1[S⁅⁁㱉儤z +¬,v-'h▶—]/9硍\u001d※G*\t徨￾񫂅\u0010","ﴣ𹘲†ƾy`ˆ\n7*@򝰓‘‚𚆕*;?T|\u001d/ +>&\u0001(#P\u0003?䯇ﲾ-K>򳋱7«&‹oF.\u0010sªK>𑂽‹￶￰\u001c„_ !'H","񪽡¤򎙬‏|¥{wF\\{\u001fh􏿽L$| 򘻨P£_)‱㗯򗅢 ‒6𝶖:\\4§\u00159럠\u000bƒ~`$/쁇\u0011”«Fᢀ$\u0011)|","󷝉\u000e,G>D%€Šg\u0005–{9⁓&⁋￸/\u0004L9AVds\u001fw;¨怲#⮼v=T￲ꁅ%!^!\u0018킚\u0010 \r7\t
”\u0014©\u001b)\r,񆋂[B(Q"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0819.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0819.json new file mode 100644 index 0000000000000..25cd03c1e7ad8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0819.json @@ -0,0 +1 @@ +{"log":{"¦":"?","񧓯`":[null,[]]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0820.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0820.json new file mode 100644 index 0000000000000..664ef55e9b684 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0820.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"r","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-502400.0,"value":-260850.8315},{"quantile":382336.0,"value":581568.0},{"quantile":-305600.0,"value":694464.0},{"quantile":327616.0,"value":-767744.0},{"quantile":-790144.0,"value":-457600.0},{"quantile":701184.0,"value":814336.0},{"quantile":238848.0,"value":-582016.0},{"quantile":-105728.0,"value":666432.0},{"quantile":-126.8198,"value":-530304.0},{"quantile":-363264.0,"value":-595968.0},{"quantile":814592.0,"value":144.6208},{"quantile":-103168.0,"value":-570944.0},{"quantile":-234176.0,"value":-851840.0},{"quantile":-146048.0,"value":2624.0},{"quantile":-118272.0,"value":987021.75},{"quantile":-919232.0,"value":5456.0},{"quantile":-786688.0,"value":-250368.0},{"quantile":12416.0,"value":-464704.0},{"quantile":512896.0,"value":-27456.0},{"quantile":-704192.0,"value":368869.6641},{"quantile":67136.0,"value":405730.1769},{"quantile":35520.0,"value":-250560.0},{"quantile":-446464.0,"value":66176.0},{"quantile":453120.0,"value":-732032.0},{"quantile":23127.3325,"value":-454208.0},{"quantile":-87872.0,"value":-339456.0},{"quantile":-878272.0,"value":992896.0},{"quantile":-327808.0,"value":564608.0},{"quantile":-718848.0,"value":678784.0},{"quantile":-464576.0,"value":-126528.0},{"quantile":-595840.0,"value":-243556.9723},{"quantile":-260288.0,"value":-978752.0}],"count":3959292580,"sum":95552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0821.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0821.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0821.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0822.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0822.json new file mode 100644 index 0000000000000..5824da467a1f1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0822.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"h","timestamp":"1970-01-01T04:44:02.000026308Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-734784.0,"count":678877305},{"upper_limit":908800.0,"count":2897183529},{"upper_limit":-858368.0,"count":1940969649},{"upper_limit":430592.0,"count":3426276112},{"upper_limit":999040.0,"count":3376899046},{"upper_limit":-631040.0,"count":1119537243},{"upper_limit":-138880.0,"count":780183636},{"upper_limit":-769728.0,"count":4273639565},{"upper_limit":473728.0,"count":4212852489},{"upper_limit":801216.0,"count":4239628380},{"upper_limit":-35008.0,"count":3807794828},{"upper_limit":-618816.0,"count":995836627},{"upper_limit":846656.0,"count":3362968609},{"upper_limit":937280.0,"count":1534725172},{"upper_limit":872064.0,"count":2158315735},{"upper_limit":-890752.0,"count":1908077422},{"upper_limit":405248.0,"count":4216688402},{"upper_limit":600192.0,"count":2488281594},{"upper_limit":3904.0,"count":927815772},{"upper_limit":-180288.0,"count":11853127},{"upper_limit":907008.0,"count":3211110884},{"upper_limit":-497792.0,"count":3149966359},{"upper_limit":480384.0,"count":1342942141},{"upper_limit":-30208.0,"count":4252117516},{"upper_limit":807872.0,"count":2513021588},{"upper_limit":-451648.0,"count":3689341307},{"upper_limit":-649472.0,"count":118818850},{"upper_limit":624640.0,"count":4172613449},{"upper_limit":-689984.0,"count":3238562029},{"upper_limit":469056.0,"count":122082595},{"upper_limit":-858368.0,"count":3883225932},{"upper_limit":473728.0,"count":1673837657},{"upper_limit":157568.0,"count":147804862},{"upper_limit":465024.0,"count":656247726},{"upper_limit":255488.0,"count":2046980534},{"upper_limit":715904.0,"count":2835080422},{"upper_limit":677824.0,"count":1601073943},{"upper_limit":375488.0,"count":3698814831},{"upper_limit":-793856.0,"count":1935596037},{"upper_limit":-53248.0,"count":4090462753},{"upper_limit":696064.0,"count":685423331},{"upper_limit":-892672.0,"count":241754044},{"upper_limit":-480960.0,"count":2428713354},{"upper_limit":739712.0,"count":1},{"upper_limit":-259264.0,"count":3329564510},{"upper_limit":878656.0,"count":2002166436},{"upper_limit":-542976.0,"count":2351206652},{"upper_limit":-831552.0,"count":1929009431},{"upper_limit":489216.0,"count":3207416593},{"upper_limit":765309.0,"count":1},{"upper_limit":643136.0,"count":185892002},{"upper_limit":347392.0,"count":3873272242},{"upper_limit":-293248.0,"count":4070632356},{"upper_limit":-998592.0,"count":784029716},{"upper_limit":-679040.0,"count":1248518888},{"upper_limit":-531712.0,"count":1582875133},{"upper_limit":517440.0,"count":1100413383},{"upper_limit":-704384.0,"count":1523836864},{"upper_limit":744832.0,"count":2337700985},{"upper_limit":-16512.0,"count":4294967295},{"upper_limit":-869312.0,"count":4294346110},{"upper_limit":471488.0,"count":657110613},{"upper_limit":-644160.0,"count":2265827100},{"upper_limit":-648128.0,"count":1346227114},{"upper_limit":380544.0,"count":2994188312},{"upper_limit":944929.0625,"count":1},{"upper_limit":773696.0,"count":670608486},{"upper_limit":459136.0,"count":0},{"upper_limit":730432.0,"count":49509313},{"upper_limit":-607040.0,"count":1584129349},{"upper_limit":184832.0,"count":2878100796},{"upper_limit":421440.0,"count":3478016124},{"upper_limit":907136.0,"count":3644119305},{"upper_limit":132928.0,"count":2235536311},{"upper_limit":-807488.0,"count":3656165831},{"upper_limit":482368.0,"count":2053512231},{"upper_limit":14528.0,"count":974387662},{"upper_limit":-694720.0,"count":1801654623},{"upper_limit":468672.0,"count":4006003963},{"upper_limit":-773184.0,"count":3680836114},{"upper_limit":-390400.0,"count":2022275223},{"upper_limit":-986176.0,"count":1},{"upper_limit":719232.0,"count":2238629658},{"upper_limit":434432.0,"count":1903720998},{"upper_limit":-333440.0,"count":541073565},{"upper_limit":724032.0,"count":3294456657},{"upper_limit":-931264.0,"count":2259739828},{"upper_limit":22144.0,"count":50171112},{"upper_limit":-381312.0,"count":2888324996},{"upper_limit":448896.0,"count":257630040},{"upper_limit":717120.0,"count":2275441797},{"upper_limit":392896.0,"count":3835787576},{"upper_limit":-440000.0,"count":2468999106},{"upper_limit":700864.0,"count":4294967295},{"upper_limit":-898048.0,"count":1442025153},{"upper_limit":518976.0,"count":1164218085},{"upper_limit":-12928.0,"count":1337176144},{"upper_limit":-58816.0,"count":465164166},{"upper_limit":-594624.0,"count":2955861310},{"upper_limit":-911168.0,"count":2069055776},{"upper_limit":-663232.0,"count":2062204429},{"upper_limit":-96064.0,"count":688612704},{"upper_limit":-528192.0,"count":68003416},{"upper_limit":-191488.0,"count":1190569412},{"upper_limit":-858368.0,"count":1464599130},{"upper_limit":-661632.0,"count":2347636440},{"upper_limit":-297344.0,"count":1204412232},{"upper_limit":537344.0,"count":442374484},{"upper_limit":877504.0,"count":4085399955},{"upper_limit":365824.0,"count":1562081501},{"upper_limit":309952.0,"count":1321372905},{"upper_limit":848704.0,"count":3880083769},{"upper_limit":-420032.0,"count":3580319217},{"upper_limit":-893504.0,"count":621876507},{"upper_limit":-800384.0,"count":1728353215},{"upper_limit":763392.0,"count":597208706},{"upper_limit":176960.0,"count":64585862},{"upper_limit":320512.0,"count":1525784441},{"upper_limit":115712.0,"count":4259546209},{"upper_limit":465536.0,"count":1}],"count":3603373910,"sum":-94080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0823.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0823.json new file mode 100644 index 0000000000000..7f6bf056504e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0823.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"w","timestamp":"1969-12-31T19:48:32.000030415Z","kind":"absolute","set":{"values":["\u0002Š§R󯣿1:6􀀀챍","\u0003`V\u0012\u0005 (\u0007Œ𽥝(𝅳d‘‫}P掿\u0010P(§ዂ*⁍o}񌂵 _#⁠74f7+r￴򅃏2\u0000✨ o)'*Ÿ3=\u0002I؁^¨5-㱚\f\u0012\u0012(訉Q௞\u001b^Y‡gS’Z@¥>@￰\nŒ؅‪\u000f\u00004⁋򣖎3c","\f_%M-g††U絏\\􃇩5\"ƒ\u0017«?†󃱔6񗃄T-V=.;ጺ/쉵","\r—|)?3E$%\b󶕆⁦|\u001a/“|Œ\n]L)󙖫 =굟 8\u0019󯺣⁣@󯣿h𔒟Lq񶃜~;fux9؃؃5qv؅¡7%7\u001f󸢗󔃢y^‰0%\u0000웴O9#85¦쒹6‾s\u0000v\u0010z8_p{","\u0016(©𳈽^7* ¤E節—w;\bXRT渝K­","\u0019\u0004ˆ⁚/󿿿œ","\u001c‡\"Oa┳\t￸0:, U\u0015첅-囯y7<5&򶍰‛","\u001cq ᄻ‚Y•'\u0004?&$ov%'>ᖸf_~􈱍㴮7kAO\u0001 ›\\{氃R〆&`v¥TW;􏿿€\u0002a\r@8[; 0z\b,￰!\u0014D$⤜\u0006:­","\u001e\u0000\"؀� P\t3\u00124%`<5™4)矻š㤴—*@<‡'\\.\u0014šK\t^~$}{񅴣꯺ 5‘䴇W\u0015 92󿿾㹠\u000e\\d…g\\.餭‭+򔏋ꁀ*'!&\n_5J“†ᘁ=K()4\u0012„?„}؂4\t0+‹x,#!5M—ﵕ¤񭑻"," 3�T[˜&Œ¦񫪸.򞙜uŒ„邨+F]󬢦\f>.“,ˆ^#šI;Q‽󿿿 3隴 P‹1�i:kwˆ۝𽎟￳‚k/㐺qN/8>\u0006>⁑ʹ=.%㙁„j+!\u0015聱樏󷽝\u0019C©0`@R\u0003\u0003xn\u0003F※Ww","$","&0K\u0013>z’\u0010œ?<ᇒr2𓊂x\u0011󿬧+K袑 \"*\u0004*Q&￱*> m󿿾\u0001ኘ-\u001d­‖\u001dH@€𧸛\"¥U\u0015Y–,􏿽x񤋓t@R%6mœ¡\" „5ª.䬶@E󿿿€bPn©賠‘񩤵﵂?⼟\u0000#>atܡ%뇻?…\u001c.#r퀟 绖˜N/o<","'乼#᱇Œ}L|7幫“o敶𝅳􏿿›8Da'!1œZ…tL¤E񯔸 ‚>Gk†9⁔񘢜#エ}?᭪U„⁗p#1\\󰀀20p򢆑!%©\u001ev􏿿:/.$⁘Mg멾\u0000)A¬§®￷‰¢.3F￷!񇋌^\t5厄 󠀁‱⁆~ \u001c§5쎜Z䂂\u001f]\u0015200n8ﲜ覲2⛢‚଺񫯠\n1-6)-ⷒꏦ⻃2y򜾧Z\u001a,j\r}7<𗻕󓆐⁘襬𫛝\u0011@￰\u0007~򹆬\u0001䝓/𒑵7%n^7™ 4敎š§\\§{‘𐱽\u001a} 㕰_迉⁑―\u000f〺¢𑂽| ","*^㭤\u000e\\|蓶\u000b¦瞡Œ{a껌⁕И[{š;@„{? m}6\u0016 & ᠎{⑏+􏿿󿿾”“򎓴{Xn]@‖˜š\u000b*㊸C—򡁉®!h(-A؜k3?wƒ蒟\"؂A","+*񒫄¨\u0007]\u001d
q˜\u001d9อ®,£0}M8(˜􀀀󹐼\f™I+񡍟䪰 ⁞¯倕6𓆸鮵D򻹎781㢨!7꥘񓆑\u0010…@¤9|󿿽5K\n󰀀⁕7;0;𑂽¢<\t7\u00128Y<‑򴽻;d$*\u0001甓”\u000f",".(􀀀Z툪򪧮娸뽠󿿾v‚6a\u001b)򳪤‡!\u0019–􅮛*‘(\u0000)v? 175z⁢<\t񺟴p€햜d懪 嗋\u001e>i܏~﷎'‘%\\5￴59«菭<\"u{\u001e4￸\nQ᧠\u001d\u0016\\򦩚\nmOb›[򻢱\u0002!!7\u0006[0P\u001e!\n@￰0뽯l","0Y\u0006¡￱⁧¤\n􀀀C?󒗦}0᠎⁋5]!6-2\u0002@􀀀|©|l65\"￲\u0011ꖎŒ\u000e‪\u0014؁@|^","0|_I똍6⁈3Š‽-$‪{)>qńୗ-圾$;-\u0000\b1\\v,㜃
`⮗ ¬܏e\"\u0018\u0006\u001d-,￸&I^˜!⁁–œ\u0011Rˆ)*4.‹}濼\u0002{\u00015]\\)ž(9œ‏\u0011™b\u0013T¡¤5#^9\"G汨<𗁪⁃񂗅[!1M‘䚖㈧\u000e)),\u0016򶑋\u0016p","1‐ž 4S‘%뒏⁡›\u0010\u001b¥%ªLス܏š᰽Q0e¡췡𑂽\u0018؅1Œ\"+)᠎{\u0007\"","2㤱 \u0005\u0011(5\t0g‥\u001eH>=‘4$\u0002􂆫1⁡8% 6蠭¡:\"\u0002\"&ˆz^]š(GC(8*-i|꯷5 ⁨$R2@\u001b[~w+…Nq󃛣\u0010i'r勞43–§܏\u0015‷੍؁% ‚#0\u0014񡸨<￴򫓧^g\u0000\u00052Q\u001c€􄄐\u000e„భ᠎Z+#/\\\n,4","3›N!U«”ퟏ؜⁌:˜衍1h^(¦bVMŽ8ꮨA¢ ?0\u001c9\u0006{3]\u0003˜+†£$􏿽I€埢j‰
𯒭 Ÿ¢\f}L9┹䎿k@\u0001<𻱽6\n&‹","4-܏H (0lK\u0012쳉2㦫ᤁ¢耪.¢￵)䲬p^5񘘮.@\u0016\u0014\n\u0014⁐œ{| \u00136&;ga9۝my򋔦6:\u0007~‿˝⁚ >񙠍z'~󣣦빆=/…􏿾7k⁃e+1󣱜\u0013hz~􏿿\u0004⁛¬­‡`š3⁂욏”󘹼ԁ:\u0005쮚`{f‘B","56򬙸࿡￲\u0011 1\u0011\u0018󽦄򐄸(�>,򋲀쒅@⁜3穟9y¢)+›}wšֺ\u0007#®r갚\u000bš썉PX骈Ϩ늌J\n\u0001 ‰⁣y }⾛\r\f\u0016J\u001c“󰀀63󰀀ꠗ'","66'/u‑Z9#0\n=_\u001a\b Pf¨s¬!-\u001aL'b񆁯H㋐￲4၇+4*\n\u001a)'򈚴񵛋2£^99¢™1€@򦳈$¥","8;))7_œ\\㵹\u001fyξ1派u#F\u000e~옆R2\n{䍖ⱴὐ5}U^‚~‡^\u001bk\u0002￸~L \u0016‹","< 󯣿~2餱“+tM`氵(\u0000,‵􏿽Š\u0000","<갳u˜„…B->\u0011{`򪜟","=)H\u0011>+\tj*`5$￶‐⁃",">x􁙝¤剐5K鲰羁","G 󿿽C󯣿!⁜—~ʼnŒ-􏙄1‪=0r_#4򅹠1ᓁ)2)3[’#￲;𣄞¤fl:@:$ ؅띈l򸓼틹.+b5?+9:卄x힕⁃咫¢w؁Q\u0017\u0000\u0019-:@򎁨؂n鍼!8\u000b‚*1엚Ž⁠󷓪᎛@6\u001c¨Z謗0￴X|򾷦\u001a-*쑀5\n•饃TœŒ;z%O’•‘Xh","Gm4\u001e󂪪˜Z\t𦦖_‚\u0006񊸛2«\nW|]`\u0002D…0\u000b\u0011镔u","N\n&…Œ갘ᰑ&颕‰>ª'a‚慫|⁂墳/򔼮%￳=l!0￾S® Ž5?Qn¢᥄ “\t&66￰^\u0002뵏&\u000bˆ\t󿿽㹖£s\"3⁜Ÿ罸(","O(8ṻ|U5N]􎀧6“]U$a\u0007,/%“\u0005 8 P\u0015󠀁￰#b;<ᑱ⁒O￳BVƒ¨7\tAŽ%\"񩣾W􏿿9,«\u0011,\u0014\u000bᛇ}N󐋵_w؃걮ž¯ﴑ\u0015;","P=ª𮄷ⷛ7򚂯흨{;⁒\u0005䑝\b9\u0012–䮹(-W3￲I򴝬–ॷ:#<¡9,f{'2u⁌«-⁤ \u000bN","UJ斺\u000b\t^]i¢* š-⁚>[\u0000_⁎Š(©0@≲\f𷜚$r<„}G@–𕠋‑„峼œO渪›ˆ","\\\u0005†l•%￵| Œ.:-&}4#… 󛊜񛛄\u00121=+-)\u000b\u0015\n榀𑂽𫿲br\u0014捲,z′N\u000eŠ~񸝇\\\u00140v¨Z\u0001«","`­󡷰O'|O󄢫2K‬n(^$\u0018L￱_㾽 ;※8\r‰6","a>\f“졤튙[œ؄'￿Ÿ(≌›\u001a# ?൝ 雎5n𮁈淒#ᶋ`:؃5\n4\u0018Q!s‱<¬\"؁\t=]¯({曅\u0006*\u00191]L\u001c2Ⱛ;-,ぇ¢󿿿>_\nG%+†![0™z9%›_G%홏?5󇧫oY!©+󠀠{y","ebž}‏:\u0013# œ=Ÿ6wNX=;\u000f㆓㉺螺\u0006؅@A\u001b$ 1⁁ ‡¬\u0007T 㫗$.<㶅 0s3 盷\u0000>,򚽪w9縄š󯣿'“\u0019C#sN7J&'⅃򍳴9C20J&&/rb㭥@/\"…—/ 󻵳\\\"㐎'¯⁙ ","e§‼£&‹󂜊8—$6‘}]x]\u001c𴹏﯅œ\u0004叨[P䟨‡›\u000eퟞ%`%Ẕ\t84뽽\"\u001d4E$Ặ⁚󪱔ž6_󑇞{x.!\\@Q谌ꎺ※†񜍃\u0001!润!™󿿾_lN6¤\u0012t\u0002œ~\u0004D.눮\t꽷Œ!­75q싯\u0018\u000714\u001av\\￶{⁁#Lª[# \u0019-c\n\fŸA","j挚퉑\n 킂*?b:\\.1¬4 #7\\T‰\u0015`N\tŠ=!\"b{~ⲡ嵌E䲥[˜\u0001\u000e￰2","nwG*\u00025¨­\u0001)￲-`:]‡u𒖚 (\b؜((Œ©\u0002E)˜‰c£[ª\"ٓ&\u0005\u0004¤ƒ|+^6m_‰‚\u0019]@?᠎￸￸)","w40\u0015\u001e,B\n\"•yŸ'仌~^󬇟%> \u001d񏴎q䃍\u0014 —v7­⁞£\u0003R.﬎\u0003)i￱@.a9溒W1츈6f‰ 噽","{[‰􏿽2\u0006ꎍH7/망\u000eᢔ \n%\u001d𯔋.T\\4￵*)¢u~–쇬󵑗ᘏ:b拫ƒ‡“ˆӓ񕚬ƒ$￲\u00173΍񊏇…d]/Bv򌓔;=6%\u001fI箹=4+q1\u001a𳱶󌷛¢_q‹᥉箇7⁣4YP–=\u0011/\u001f5$\u0003Sš\t9§\u001b,\u0013B櫤‡‖_-؄|","{‚gg𝅳Z袆ྤ𒁼談G\n/逩￾?5","}‘oW^7Œ~\u0000‎£'/•œ¨1򽝑…>$\u001aC)󍱨\u001c}䪾-r£„X¡􏿿`(WŽ1<Œ򖭿04|'p\u000b`’'Œ*\u001b>^\u0004鱷\u001a\u0016\u0007","~’\n\f\r$㓰9@쓨A\u0013Œ󝃒\u001e%g꫘’’磚t೭~\\\u0016:-=ᷕ瘝󰼄/8\n;/`‴4塈88襟𩭬@\u001f3–1g6\u0007￿Ÿ\t\"/7Qg󮈹\u0018’\u0013¨-5 ,{:<[$ \u0016l 򔹚￸[~񍿋󁲬؁$KBᡉ€\u0011⁘","‹9\u000e~^¥\\GN?^(బ_*pG\u0000e^_￿￶i\\�'\u00037' K7)唒+¤\\ h`4􃪉oXmžJd”࡮\n)3 [“屐‡\u0011\u00148`5$0%ꈴq2퓁¡]㘏f􇴓㎉:g1?․|񊛢᠎򮮁œ/%›\t–","y;‡-￳ @‹󿿽`\u001d^颂$7\u0006￾菀|3\"1:ˆ\u001f#\u0019v?‸\u00050(\\;젗뭽*￸\u001d \u0015s\u00105z­”\u000f","[⁕⁘44\u000f1J4W)I4\u001eœ•\n\nS‥`.","’`A\u0019ࠎ甊@⁃4皡]YQ¢􏿾H\u0019c‭ꊐ?1›‵_諯e*‡O@:¥i:*xv jʼn|.¢","—Ÿªƒ𬰸;7I/_F`NL⁣|¬N #,‱ং€$亀","š\u0017㰲\f⎎墒\u0015_RªuŠ¯\u00110\u0003\u0015󑁷K೦ *&#n쿘\u000f庵\u000e>E‚}8i\u0003hŒ䩪襨|*\\8%Ž+ 57L\u001dA䯭}s$&\u0013񧔍¬_웝><󼡣蕆<郪x","|ƒC‮E㎤… !w•+;]/D{1\u001c۝\u001bx"," :_y&;‶ *\u001d\u001e(P…U+B쐬#–­=`N\r￷8\u0018򾦍/3;⁖_[7甝\u001f[—‾‽>\\›􇪛}‡�n鳳\u0017„-  ￴Ω򠮚“>.ㅵ T\u001d\":B&\t離97™\u00118\u0015󿿾葷‬􏿾`Y›^£򹁗=","¡¯ậQ)>Ba􏿾\u001d꧚[&¤u/­Ბ[)","¤9 _.˜:\t9\b8+闅\u0006￶\u0017Ju_.᠎]~\u000f/؀񓻹,7㉏(™„1¢+\\€\u0013œ{ŠI\u0017_Y(\u001e욧\n–X¯i׏H&⁧­P!󿿽\u0016\u0016‱񭪮8™C3s;Š3&4|˜V‰$)\nfd￵h\u0007[QŠ+1텸d؅\"9@‐\u001e®]\f9򼻋\"򓂬K+揇 򙷕򝧛￰>�%\f|#P;","§{{ahz\f\ny‱`E؜\u0015]𧷡殕?%œ©_​#›Vd8 PaŸht\u0013푠缨Q†I;] \u0007ZG񲕮鮦–\u0015\"‗򗺖' ˆ絅—1′‰Š敒 `>}®㱃aE96￷T⁅$4hk2km\u000f2<\bI]5y$w⚇j†􌡙얅£\u0004𾵺œY…\u001e\"","©^­‭螔˜4!k︾9⁔}r񈮋𼏣e7\u001c)©󷾁;=„$QI\n\" %研Y“\u001f","؀_鰒\tFp®\\񭐾h온᪇򜝂<ꊦž«n *5B춱=t)򌰥\u0007˜ \u000b‼3\u0001Bˆᔥ􏿿$/\u000f򩻭񧣵(%(\u0013鈋􏿿;磅# IFQ\u0012\u0019x\u0014[⁞§©ƒ [𛷘\r,: h-􏿾\t‸&4)\nɀ¦}-⁩컧( 焕]§¡ŽeH澑;­|.‹ḉ‰(謁4(§£«GHp>!Š)\u001d셁\u0012ž”2䶄X냸}&᠎￱󿿿\u000b/\ns‚","ᯓ[㬓™)™ƒ럷<g«\f„ˆU]\u0019'=;X驒?™䈅\n偈#ˆyCꡣA+>\u0004<悻缔#􏿿𮫛d 搆n”⢊88d򄞉","—؁e","‼¢\u0000œ[\u0018黓}闍\t[※.— ℋ疌0\fš&聏\u0010⁑‪X󤏾j￰叨¦_㳒«𑶓2襁‘5}7(6\u000b.踐্𨎆y:;♓(\\\u0010؀\u0003:/S⁈‭‰Sl3k$9¨B%N~¬M\u0014yw+!!廟”\u0019;뫮0 ™伉§","⸇9￴[朆:皇[\u001c_R⁚¯~⁊6•š￿󤷓4{&𓏛}Q⁇0T2@򎹌\"","㷽”4鈔\u001b󿿾?","䬬5\n$d\u0011ʼn®)\u001aj5)󠀠TLB⁖嶼“U¯c\u0006©㼋","勻_ˆ\u0014,耟񋎴9G›顇\n鋊𔊾斅`{¨\u001fऌ]𥍄5‡򢪐򛢰𨇠@y\u0001T'L\f쮸a$/","滪￱(牵X e9(®_Ms 6:؄⁖&;\"hQ„\u0013'7' 硻0ªh‚‫:„7=!'؃\\6¡⁓䭅","跾H0誰\u001e\u0016‰2\u0014]\\","뀟耬_󲏫‶#※鉆 퀀‷vª@z\u0002L7,ࡨ2u꣆,9`","󠀁񹇵¡엛j‚ˆ򕢋¯O’¦ŠpY񀯕‡@ඡ36￴ˆ|0ᯌ․%#•롲v4移‘\u0013ꘝ￱­?⁧5\u001f•¬\u000e\u0018沏e\u0002\u0004|]\\'\"⁂`&O-©E¥˜4z_(󠀠¬ⳣ⁕럐3|%\\\u0001—\u001a4`/P","􏿾󿿾\u0018𰬸`\n䣥‘[I5h\u0006\u0005§`U$鐸뇸™:+\nᝐu+￲e•9^“3ƒᮊnš‹‒.s‼钁𑂽\u0005猪]⁂\u00181-/￰.†樰巑.`#9冸+󨙠 ↡ ‱ªy\b𩾬w«>u0𨱒򀽲|!\u001e\u001d©F󆄒域Ž؀?򓏊:\b\\(\u0001*ﯺ_–*𝅳☆\n\u000b؁w13E>”"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0824.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0824.json new file mode 100644 index 0000000000000..b68c78b135018 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0824.json @@ -0,0 +1 @@ +{"log":{"":{"":{"":9045588291971062184},"\u0004":21938533509604333,"\u000f":"ù?"},"mC\u0003":{"":"",">ᣡ*":{"\f؃":{}},"B^?":-353024.0},"벦":-657476.199950695}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0825.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0825.json new file mode 100644 index 0000000000000..fd717b1e4c91b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0825.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"a","timestamp":"1970-01-01T03:47:20Z","kind":"absolute","set":{"values":["\u0000p\u0004iY†𿭧=D’ḝ󿿾{Nﵞ`担\u000f)󺆚#j§I~®\u0013B*gªMƒH򍧣8?ꏙ…0G\t_Ž򗝿o:s]\\ৎ؀3§폣+󨺛C\"\\","\u00037\u0011Jvu‽\u0013\\”\u001d2%񉮴fY3>5[:⁨\u0018‡;\\\u0005\u0001†I~\u0019[~\u0014:2ർ9!m\u0004\t*Z@\n†򞚄1a堉®¤+`","\n\n~䠓\n:2?7RR􎷌[\")\u00075󲢆}&~=Y3\"‚†񂾌￱󾦪$§G#8\b󱏿-򆻀+*􏢹 @k4 _\u0011m;\u0013/&‰ƒ؃꽲^—+Ꞝ.( '/2\u0010+?:B򷙲⁈88.i2#","\r? ,Tœ⁏䗤ⴴL\u0014#;.+›򪅔špƒ؜ 󞎯󑲚﴿ \"‡‰","\u0010Ɉꕱ\u001cš!1ƒ꠩\tiY\u000b\u0003=𓐨/\")<0›‰«€⁞򑗧*ﮱ~¢]„j斥…쎆򗑾9`oc>+\u0004[󙧦Pf3䁪ˆ5򮨩\"{]M𒋩珠\u000e⁡ª†&~⁎e2 lšE񟥂‘￲,«H􊠜+觥(9uuZb8šz\u001f咏=\\꛽vOŽ£@s􀀀䕚\u000bw—Ž\u001a#2&","\u001b-L+›\t\u0019)@\n‹}$'‡9―\u0016‑’
^彥򱃅5慮9园r\u0001\u0003†\n)3†㸊\u0011갡N&‰۝*&‸⁌`*\n`롖—","\u001d Ÿ󈯙򭝈š08\u0007A\\6‪趔⁥"," .‘w蓐;\"폅 ’i4du+'p|9’񪗴\u000e(8j^㬡™罵񐣉–1\u000bœ_8\u00050(_9-ᚮ7>~-𣲐&-?N£>#!>Ⳋ\u000e<4񸶠%𠛉]]𻽞ኴ”s򁟂򩐿£[3癧*\u0013…艶򢚩B}8\r𝅳i-\b¥]򶺫–y??&t#؅𶑢䣱","!@z~‹${s~£ 𛮊Q.‰5(“/\u0012\"]`؅ \f1jA￶@6柌\u00147p\r؄󳟺","%\"•?_{흴“h￸6o&㷪濽 \u0002敖ª1#穲򐗳)(蜊~\t᠎⁙*H¢&⁍3/<󄥬׳񰭸0‹n§؄𧩻>⁈~\t^岍�YXTL�줲k\u0002' ~鐁쮒^€ʼn񈓄\u0019錸\u0005򟒯|,","(昍i{|\u0010퍃\\“\u001f𑂽c򞗔傈򭓕­J“F7ʼn7,o\u0004\n•5𲧵‌\\a","+’\u001382@ +\u0019 \r>e> 𑘈 񊘉o8\\󄥷–輑￿\u0012-򑢘4껩_a”•–󁍽멜(3Ž^񍉬.\u001b2\"O7?񘛃w画=ʼn⁆蠦«# Pž{}q\u0003\\© \u0011 䊡󷔽󱁙‡\b󂹶琢IW‐>¯[„˜垃Y’¤\u0016™H(핸^2뾑󤖨",",|\u001c`j\u0015*\u0003#\tf0 ~)_‰>ƒd1\u0004‡$ v>‚FA\u00115]3\u001d¥󰀀 \u0010^\u001f{[8‥𙇿󯣿«?œ0 뢻Z3‑񭇖U󆟂3Ⓙœ팎\u001e⁋~pR\\6⁨ᡮ‖7􊆷{․q…‡C\t*#)WD57›\u0016ひsIŒ;.⁝ª؅…𑂽񑙱a\u000f™",",‡< §\u000f᠎9c","-.􋵦y\u0012訑U؀&","-f)–™\u0010Q/9\fw蹲'k󶆏t؄\u0019򋥑￱> 売’:\r—\u0018‭񚛑_\r\tD`Ⰸ=8䕐0A?\u0018\u0004]3=œ\\/ H-03[«;W\u000b𢈐k񅭾~Nm䒤 K⁓T\u0017t\u001f(\u000e`*ƒ¦\t6↭긭]~O;7j(c>'𹪵H£3„꠿h{㥦F幃⁔ ¬","-󹟵z‹x\u001a/X$淾ž@\u0012u¡S'","/\\􏿽‿t* _\u000bFN3G6€¡𵚒]NI¡‿`¯薊7ꎏ񠈨2[›󭺡©[,_€%{w%=䝯[󴃇yŠ]®@8牘†\u0012{5\u001a/®=”\u001d‰]􀀀񴪖퇡9$\u001a`‘v0;+?›궼荳&} 즹¦$v/\"]s‣\u001f\t™[鸄ᬤ^𓤵9㵱 t􆆇󭚊\t¡冼󯣿]'4⁣⁗","0\\y‏P0_NE\u0018躔V“fg3–򘅐RX񵡰󚹗†㴸\u0017;b¢d\u0017` ⡢1(駑`‡oR⁋󿿾\bz8‟=\u0005T䉓؃L \fšㅌ娡F\"","1g` ¬f\u0004::囻S󣆼؄v5 \u000187","3’$決;\t,`″䴒m~z{“/‷/,8⁍1CŽ_}®𭽚C\u0010f⁥6>‍s^-T\u0018ᅤ9‴ª|\u001a锢(\u0013\u0018􂺂‼ ¦\u000e n i󇰀}†󠀠+{񰺺˜ 𧵜._9e񩦨`","5򀓯]©\u001e+:@<糙y󿿿6‰򌝙H!{dY7􏿿\n1&⋳⤓(/؂š¥€鯏¯n⇰㳐𑂽1Ÿ3⁁&M*Yq|@&}?v\u000eᦝ]h#P⁇¤2^^›\u0006C8\u0012RHO/'Pm[w2~؀䕭J•","6Kj! s¨ই%᠎㚪⁑\u0002v\\}m}뤚0\u0003\u0001򍰄€f/r79K\t¤“12¡؄*™ˆማ”9[KK","89⟔&銾g\u0003*sֹ礻\u001c?⁁⁡L 걞󯣿;)P\u000f<￱‱Z@ꜗ棡XuO|Œ ‚@\u0011[’©⁀\u000e\u001f‖0\u001aH@I—榨#;\"I𨘀廝_\u0014\u0007š~†엚\u0006&„\u000e\u000b9멀k𚨍񆂵— \u0018}*3£ *\u001b\u001crBM變㓑䣦*‡\u0006‘!kœB","9<(4e⁒–⁄𽉼š[`ﯲ넻¯j㽓74񓞜򽮑,$©®s\r‰^/񎌒‫¡~ళ\tE'V\\FV@::6+„\u0012᫋8𢬙=Ž篘+D^s‪˜葮,~1S(",";§5雦=鑕⁁￲g俶㑧\t\u001a\t*I\u001c[)q… \u0012\t\u0001#48ª)氭¨-󡉘b=#\u000f\u0000`›fꆚ€&!§g,#\r{*#1`m8Nj؅5)‰⁨@4`/Ž5\u0013󠀁C8\u0010\fy.*󠀁䔂\\04¤\t-󌉑ﰙચ}†⁒y\t′\u0003︉|-\"󯣿ʥ7𼮄1\u001c\u0005",";딉‾\n꫈dš[鋭\u0019귄iŒ\f,\u0007[.󏂗' \u000e' \u0017 `ᮐ}$|5듭\u0015:￿P£ž ]ˆ `2)”n3*\u0017+\u0005T!‽§|虀O28;/$b\nœƒ篱嫧䓔\"@;;/","<–¨La￴ 򓕰䗫p\u001e5|-.({3䚮:8\u0003򳁄7󠝙‚}\u001bP'󻫯襅37j񻃏\" %","<鶗𾄌/`\t]£;‫궻7š„￴6:\u00061\u0002䨇\u001b\u0001/7\u001b-1\u0010蚚a>1+‘Ⅾ#!A\n`\b)!5𝅳%儆\u001ew㿝񐻿-I}^‣\"( \u0014qb?逷6/oe@܏𝅳4}\u001c\u0007¢‵򠪞鄹¤쟋L\u001f\u0016^\u001b","> ܏$8y¢r+¡⁗^ŠS󯣿 K5FY;￲/`򌤣򾟩](z渑\n€dˆ@[]2\u001f󿿽1¤Eˆⓒ-]4Gƒ„(1\u0001]L&|Y2«\"]YℒB\u0004NY3v򶥑'󋎲_‹","?\"ﮧ򬗺q(󿿿0~ƒfⲟ؃1\u0010>￲Šj￾\u001b򵉎2Bh","?>Xs\r¢W※s턲 “\u0016񰱑 \u001b깁\u0001~4x\u0000'\u00002盃™凮so7y¤","E&9}","H4®’ sX78򙧪\u0012=„`~4\\؜@\u000b2\u0005\u001e\u0012Y󿿿,#\u00136\u001e⁑𱯗0󤦋5)ힾ\u001b$\n؁@š\f\u001f86鋋\u0002\u0012W䃂","Mh񥁨!X-š¨%v.#0퀧Q\f~-‽񦑦*€틔*,(Y+rO^S𕞏<`\"⁝\u000f4LU9\u0016•!GTc{A\u0012؁￿'밓9\u001e\u0011;nz`/c\\7񏎖󠀁£\"濯\u0000¡쵥Г⁕","Q񖽠\\\u001f)a5ž􀀀(�P \u0004\u0012†0¬`\\.⁁.~2\u001f‡癦eE‴¥ᜑ\t/1:𝅳\u0006@ꅻ@(-읒h\u0019고񂰹:O؅•򒒒(\" *>8|,!\u0019심0𞵾`\u0018w浭\\_𵮱얡鞄~","W:†⣚!«\\0∾6W:񠄧좚!⁑歴\u0007(⁓ŸE񐆦*5`𝅳-™*玜쮂2\tŽ\\E2j1&}򴫲&ꝗ\u0000‶り@;-","Xj瀏\\`•¦9R򧋕œ}6뾠-€›؂•§ƒ]a|[?‰\u001f濇~`E","]’?+“2˜2\u001c쑼/\u001aB¡\u0005G84™-]Ž0\\` ž򸝛@rI©￸EL^","^H‘]s‶£s¦\u001d\u0006z\t#󒖈/4㜭;\u000b79«,ˆ†𔈉󆅃8&])®Ž𘽰<\u000b‹yr(L󪤪\u0013W9+Zˆ⚩\u001c\u0005췌\n\u0016-š©\u0012^t\u0005]1{§?/=T+ꋤ *6.;W 3 -(鲊6楳￸’6\r","`ꗜ戦@\u0006¨牭¢�<_\\—m/+ˆ;™𷱔tF \u001b~–¦\f(¥-¯}^›㇯)EV”.+[r:=0ꓷM, ˆ柳\u00124}=홪큖\u001cᓐa\u0012ˆ煌U†sW_","d5!\u0013򔄚$&裢S","lƒ4⁎T&wQꎒ!뙢“睥ﱈ?禘#￸￿𑂽䍢©쮳-ṗ=⁚: 􇹾[8\"4?33‍{=@񷬽9ᝅ_ `†￰aP\u0013J!h\u0011,;\u0002\tT\u0014E'\u0014_\u001d‰","x񎕰5鑻‗¨'/ |6“䥾\u0005¦WV3>~:%￲meN!e\u0006/'};񰞲\b'؀%|`›D «p￱","{4⁉򩿫0n/”£؃\u0002⁌1=","~1*뷣c\u0017)\u000b@‘1瓫I<[@¬獈ଡ9@(€‚¡\u0011¨\tuʼnP굯¯‼^᥇!\u0006:’򟘆$%+l\u000f\u001d77—žA/  5ⶩ9\u0014&\"⁀𲑠󘬅z0”ᘶ,'lG𴁰8⺂'4‘‹#5—P«‰<7燕2↧&\u001c藏\u0007’9¨~󼒮!?╟:\\.4=dX¯⁛¤𠰖","–`§󸿈螅؃\u0017㍾Kᇕ􏿽 ,€燞‣-晡�ᒑ⁇6؅>'󊬧p􏿾œ\"®￲@蓚P/<‾ꢉ¤Z=!2q𽩖\u0010`‚뷁T‰㤥NዪR€]‡[ﱆ'5񛆽隁㰚+4܏㤻@껝-⁩᠎\fX\\%f4 Q<","ƒE&®4􀿘k\n陂šˆ\u001f„⁥츬F󿿽…G=z+~>49)S؄=\u001e‸Ꙧ","„Ḏ\u000f􄋳N\u001d䠯©-„2£]󿿿\nడ䔙񽈄답Še{'@\u0011","¤^\u0018)=K6 :<›~+\u001a!⁃ {K)\u0002)*K\u0016$򛅀#S}\u0017+\u0018…/’…4\t¢\\J\r0\t.󜿼⁂!!\u0012}/^‹l†ㆠx[\u0006~†񤼕\u0016Z¤⁇+‐¥22󠀁󬩸衴:r—G￷)­񣮻𓰊+g£僊؅i\\~4£8#`\b)z󛭥\u001c 痑q8U,[K$|~䎨=\tFnl","¨2\u0007$‘鱞かུ.L\t￵/6‮%MO0d슃6㯉/󺻾\u0019e|F>\u0013‬\n5\u001a[•®9®+]ob\u0000\u0018‬‮￾?0","ª\u001a!%@>\u0014®u(4˜\u001ai\nj)Y!􀙥 󿿾¨￱5 {m)[\u0015n5D,¢","ʼn 7'%ŽC3<솖܏-«9⁡ᇽ\u0010|{!3𮹵￶¤󿿾SLŒ\t˜\u0016\u0017)슽6㸨®볥 \u001b;xW؁⁎6粋","؜KD󿿾^n\u0016=5\"]¥?⁢;T 砐wh𽓪%⁀⁘񏨯¡Rn|񩟏̑¬򯨢袲۝‼\"M3𴊺J4⁖}5=&\u0007 \u001aƒmL0􎀬œ[0𜢬'*>(𭓛• U3#[©\t4\\+:wN󿿾E热=꣣\u0001Œ\u0007%¬\u001b 󠀁⺠—V񑟂>?¬' ","ྫ\u001f\br[4.€‹Y\u0014f5悑¥D==G2„88L:‚|dF򙖒󿿿Žsa⻵:'Ÿ񉆧†➋7-‒;73Œ]/=ƒ”–\tf\u0013᩵z_?1>=?c","ᄷ\"}:u ¯&ᙕ—CA𤍱S.)؅s™\u0012\\\"촖࣐B\f[/c￱跅?\u0017[\u0011궓\\]†0{𧂉k蓔 󼅽]딞,§","᠎񪵫؅6%J䵟\u00063e؄•`5󲉁~\nskW0xŸ_󿿾\u00007H,,\u0002⁒$—※낍Lsؾ5⎙6@ ª+ 0[皜\u001d>\u0004=Ÿ\u001e ","​󈯍\u0007 \"7\t@ `锠\u000bYg⁓Ÿ—^M\u001a\"­~ƒ1)~򻶩4￾;Ž2S ; R=\\\u0010qm\u0007􏿿•-ᦂJ>jlƒ뱰&hVA1@𒯘;§¦\u0013񐝇6.䜰c?+","‘Ž\nᔭi󯣿-‘*d2罒\u0010=¬cv+#:!󿿽℮餏Flm雠\u0007۝¥󤥂zy0 IJ=•&󫣁6:2®\u0019© ']‷¦0肍“￷⮶筨i 􏿾S혌⁏饙[*kw5{k5朆'@\f…%\u0018=©ﲦ[*}\u0004￾󀀾w㷌ꗀ€神∊u⑓ªI蟢V\u0007j‰(󔫮󳢛/BP=J_]/eM=\"","⁄؅‡m^*,󱖙5‌⁜w‡\u0001,ŸtO€ªi0\"@꟪ 員\\ •f\u00058[1¬#򯶌0.^76#<®Kꄋsu<\u0003—\u0006\u0001—𜙲䛌󰀀\u001d1%䇛~r}圹󠀁l]]wၞ羻‑2 J\u0011!®]￵","⁛7R›‾\"oœ;","ⶫ\u001b}; 75«',<
\u0013^󿇄+‣(¡￿ \u001cﳟf\u0002؀<″\u001a“񘨒","傸%!–5򥍐>£𱿘i>w&=›“2򘣬kˆr�􍮢  \u000bE _ˆ\u0006§;\"ª| 8￴\b KI‡¤$؃‹A}>","柙,􏿿¦\u001f$⁤<5\u000em*\u000bž+~‗3«;*\t.4.˜_$L©⁍1=L$\u0011‸ž\u000bƒ?35N\u0003/x⁇ƒ<;\u000f„\u0016༛痳`⁎壪′.l3>•Ÿ","腧…㕚^'3湥}횳;~|y\u0017妃7¤:}\u001b򆷰\u000f_02…\u0016M-񮵐񝈒Ÿ¢q㦿$6@:Y׬믛«y","뛯S_$ᒁ/¢ª0玊0£\n鱱\u001b V}.󠀠zF'Ÿ7\u000b𾹎>>‟㑟ʼn唱 [-~¤󸐻􏿽㧺ck毠{q󰈠(⁉","멚 v𑂽\u001a\u00062œ|> \n1\\1C9\u001di'“","촡&† @餃'􏿾1$“[N5쯌6\"J\n[U \u0015#￰\u0010\u0013*𝶍⁎A\u0015᪾␥驮\tE_`–2]\u0012[۝?6= =鞥\u001a|؄񨡾\u00030W\u0004.ƒ⁛񘀺W2~ˆᠠ!«©'檷 #«œ%.•(󡫠"," \"g ˜J$⁠){fAY€$''tc{]莒_⁠‒=\u000f¬‐«\u0003馷+„⁗p/!7󿿾؀=\u0001\rἌ隽;鱗9:›\n]‡Œ񋺽aV4vy'~㽋򚖋⁕| 錂‚Œ𸳝 g¡”=®1?&Ÿ","￿\u0005i򇯯񍳄/𑂽yY\u0006 󠀁9'\\P䮄>1¯)8‚?ቬ綊띾\t”Z(<)•m\u001a✠؁\u001f⁕](<‖⁤￱㡊\\¤`⁒‰%‚󊛝 2+{贔","￿]皇ž›￴9e%=\f“(_?©[񪺗ʼn\u0006H: XV›¯_[\u000b[4۝‡꤅'\u0014 M,","󉯹𨦞‥‡諸啜£'\u0010+y󋊂鈢2‱rX6*\\„􏿾\n{k;€\u0019-⁥D\u0000-⿈󿿾v\"j \u0002ª񢹅","󟚫\n`™܏7#$􏿾K~㣆b\"\u00189O~򳉁n*20=\u000b£\u0014\f\")/F5?*ž5\u001dt†h•񻙬˜_鍈„*\n찇rS¢\u000b\u0004W.„r_%)' @‚w7¦+£鯅\u0004\u000b6l멝”1¬:񣈙—s￳¨,؅a{#","󟞊ƒu‰c”N\u001f7+悶\u00077񇠱ᗹ§;)󳘽淈†0\u001b\n&~/!Ÿ;۝{§삸'¨㟯Mg\\\u000f—x랦⁢36On\",.Ž@􄄙)4;š?価 z\n￷W􏿿T}.¡¡@葊a1_\tFk[v7=`‰(‚\r)‡‰ⷽ ⁀4�<¯򞁩cF⁚V!\u001e%򚇤ᆮ(f_+(v","􀀀2'￴}L","􏿽]”/08\\-›⌇gZ8{″}4室񲛁492 ‏؁‣1\u0012vJ&\u0013G\u0002ž烝[െ;‹\u0005'\u0012򃽬›‡ [$+𑂽+񈦓@=v 0H”˜⁅\u0006幊P\u001c]•lt ž`-™|1>)%\u001e'攧&,򶙂<¬\u0007¦\u0016؁ 䊔󿿽\u0012b9_￱®I\u0010%@`™*K}8"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0826.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0826.json new file mode 100644 index 0000000000000..8a9fe7f3fb48f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0826.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"t":"w"},"kind":"incremental","set":{"values":["\u0004팷,\"`6K0¥# ᠎馟퓪񍨮\"￳ꐼ¥Jಳ–9𦄹‖oT:`~!>:£󒞈,u¦¦⁀@伇˜","\t¡\f~Ÿ4|񼀍$@\u001bK&\t\u0013񖙬W\u001a\u0006","\nai>«…ଝ¬￸:˜\\%욓Vˆ\nMd\u0011+\"U9鳵*󑔍=Q<򅈪𜁮\u0010X錊­`<0","\u000bM5)?롯䄗\u0007 .{(\r7S>\u0005쒝񠄌\u0013:7\\9{\u001c󿼭\\󃕞厌\"’)/_˜#;ᦪ\t,#J⁜됿*^;\u001c򯪳S","\u000b¦I离2Ÿ¬?“1蘮]⁇\n8{=ﷃ\u0013\u0007N\te\u000e;","\r绛￿‵騠겒4钐𑲤„›]U|…¯藋\u0018\u0013怜|7፬`?澺I\u001a1첞.\\\t=9窖t()£o옞B¦&󠀠􏿾︯閞(lw:–?‷;1b\n⁎4⁋怆\n󸱑§􀀀B9Y󉆞"," \u0007[ ⁓9\u0000缧Z…녷𱃇.‡;),}%1yj\u0000ΙL;]'V\u0005x1럁둮>Yo‹o2:岇/}󬵔_‗ ­\u0012•󠀁;h ","\"\n–󸡂i-€؂𲨛Qª񿙰o
=噷i;쾃؄/5{n򳹡›]) @7욳 ¦ •\tL“¨","'#4䌱† [隔󿿿\u0017񐶂™…�\u001b&$‹樑'ªᆣ-줁\u0003ꇻQ￲\u000f//쪂ƒ?없꩛\\­\u001eE`$\u0005򚹢‏؜񖐇雲m񶚡\u0011i","(⁆(?©ݬ)⁘e||⁘U¤\u0014/N針\u0010\u0005‘sH仾E榈/~!>￳5⁛# 󿿾\u0019?⁎樢<؂𑂽 ][3q'􀀀K􏿿y쩀ᥫj⁍\u0002ŒB`\u001d3ª^•|9\u0018;$\u001b“_",")}\u000f򩟸}s7 Ⴌ+뼷\u001d+./8#.¯n\f\u001e",")󯟵M¯蚗[4\"|`⚅I0cI\u0002Y^옏‹/]¢)󙅴\u0002[\u0011􏿽g[\u0001q}꺝–8'>œª⁩© ~\u00138£\t}+jꎤ󦸬‥5.d_T~J$%᠂_񝩣\u0010󞡞• 聄>|‘؄\u00181C7„4t›c\"`","*w90#D󻡣@*•0+l򫝿￲\u000b9S17\u001b좿  #cꤨš~諰",".䱘𑗸\f-§򲥈+\u0007\bl𡏸","/. 鷙H¤8񨄁-嬬&]¢猡+$x%5c7y佃,J\u0003¯􇚉?󿿽\tŽ/ \u000e…\u001e\u0019寓\f)d⁧0\u000b\u001d9‼￲>芤\t󾚼Z'`¨8#F\u000b‹f€z6!󿿽‷\u0012䎎\u0017\u000b򴥣b50\n[¢ž¨񆈑~𢋭\u0019�›즕^U'⁓¨^%5–","/;\rw\"!$\u001ac3š 񺺸’󊎁⁢\u001e\"⁀^\u0004\u0005?\u001f“N\u0007&<{_V$󯣿Q5\nx)¢O\u0006Q¯𼫋k>(\u0010¡4,#-3!X皠\u0002W⁒>z\u0002\u0014=8刚.\u0018ea\fz,?","/_㧆25\u0010\"R𙗽”駠-p‡?6?EⰜ~贻,랈<`D†?oS񑧏𹺭8®4#\u0012؅(ᵆﭻu7ƒŸc컳c]\"Œ(&鞛ꙺ\u000b‚–\u0011\u0005횹¯‹⁒","/m© q \u0018ꁬ53\u001aC\tª\u001f؂(9jCŽ[} 0,Z}§%\u001c۝(`󚁃⁛œ|a񡰰<3E‚\n๐񭷼;\u0004<ˆ􏿽\r\u001f\u0010¯1?XG\t*𜛱u广ꠦ.«3Y« \u0018]P񣵁wŒŸ;{'$\u0016긃糊⁅񌏪—98>V[‡ª~؃{￱\"\u0015؄‰᪳„𑂽","/©滫?;6£W,𽕑_A᪹­,⁝Gx\u0014r⁄¦@%yw+-\u0011񩝗>e…>Y<Ž;:#‚ž[𦲚U.š\n\ny櫷J\u000b):D\\`P1?᠎%￰ªC`&􆴿쨨񾪿\u0012 `f[‭/<ᡂ‡愛^􀀀&臊-䊅B⁉{,\u0005$](š%•؄S5‾x[R8V\u001e丟 G\u0013§dm2œJ","2¥򒬿^\u0011}_¢#򼉩$¬`󖵀^‍皫뢧Š\u0005\\)\u0005G†\u001fŽ _(\u0015`鷖㳺\u000f\u001e󂳥ᆸ𯋳%A›2\u00196嵁2⿯GcxpZ]a\\829“\u001b㾈6L￰ꆥ#s(i­0ಟ\u001d#§￲媋󬝒񶦇e \u0013\"f\u0017G᮶9‡›⁧g圚5;-񃙟2뎘\\蠬]u᠎\u0018󱹠‑∏“ \u00195+-8\tª먔*","3”;\u0002൦xŠ歰h­ˆ􏿽œc4$￱\u0007\t1!x먒6󯣿z񂓍> 8￶¯'\u0015>%\t%D￴]:\f񊊨”ŠʼnQ™n›\u0014 |(Hk$‡￶J񧴒$/\\w P9﵊￶>=\u0007ž쨬f,\u0013^\u0004\u0007񻑒€沊\"f%
𯃻⁊6꾆4￶,,9","3؄⁔R;:E<£S2Ma􅰹\u001e\"Ž\"򎍊>⁨\u001a9H򅌯\u001d򷑢￾¥%6 4‡玫▕4-’A눪IC:ꜟ鞌\n[’꣣:‰<2$ª9K􏿽⁑@\u0002®J~ %‡)ⵒn]*Ss","4*§쬭@!y$6P񱶣ꙧ,䱝#‘杦 홙|©\u0011焎‘U\u0001h{0`ˆ‹燱@ ®h3{#[\u000e\u000b᠎&\\\u0015B2®្8\u000f\u0004•:w©6￴~2©‹©򁞋*8­ˆ-ຳ؅󦻴¦>|f䂯)++\u0015o\f ƒ9{06?𞚽•-q􏿿(舁9}","4˜.G۝鑬/)2⁡윐+‮^᠎ s񀙎5eh¥6'O𶤟,“B7僸X8蝥\u000e…Ze;:ࣩ𧱱œC\u001e뾹1o\u001dJ65G","852\\` ⁕⛹蠨_墟-⇮64•m\u0015斑\u0010*󵯒!‰6A礊>\u0003'jb⁜Šw†§*\u0014‡s^??†𤑝\n\u000bvꚏ9Vf=§#Z}\u0011丟\u001eL®@\u0006$”pe?0󍬈;\n\u0002I ⁙6\n9⢼𗅜®󿿾!†}؃o|\u0004^￸ZŠ{7 !..Bc‘W￿\u0016","<Žd)?b񋌠_\u001f\u0016搰~>%77\t+$]K2\u0005뇫.<󼉵‘5-W`\tj'\u0013g\u001f\u000e􁇘\u0003滿j[𕓉%{ƒK\n†󠀁\"^_ ›&0.F\u0018p","==󠀠G_3-'q\u000egứ\"\u0013\u00046_骗~ \u00063￷X#\u0000烋{\t￵򐍗#\\&_r","=¡￿+N\u0006$\u0010￰⁍q8:￾\u000fA⁡\u001cª{揺]","? Q•7󿿽%„\u001a3{}(\"]‵#麯]䭕~􏿽\u0002¬8—9+¨꾒—!ŽŽ>9j�V8|򧘀+&᠎|§ ¬ব*㟇#{򶺴=𛻔‹\no\"™챓}","?⁖ 𑂽(萻R |Լ[￶\u0013𪻺 /f￿˜~%귩\u0002틹\u000f!瀠؂؁1z׌2/\u0002(矐+⁠\u0005ln􏿿‰j$¢ž뽋:\"㳣6⁈\u0016¯灙}z$^Rª懝챟Žꈟ\"浐!.𔟋‍","A€@蠾dX\tጕ2J1T죡G눕|؅¦\tգ歚\\◭㔬XŖ'򠙻*™\u0004*￲,","B\u0014..4|‵矖兎\u0015󺗽\t}\u001c\u0002(¯¥‚旽凩¦§{Œ񨘹ᱬ\u0010Œ\u0014¬£ 6+*'0ࡖ`々;b0\u0019𤪩aˆ¢;R‗Š4 󭫆b팰93 7z>\u0015","BOQ95","C™⁐¤\n¦]\u001dቘ”*¥걊󧱾!񀮅/œ‬qJ挓6⋒쌥_%7(}洳\u0011*휍)\t$ힸ\u001e#|ﺒŽ񼷃X§\u001bAⲬ ~š=硡,¦Y?—+0R\u000b|2B_Y>j+“£7k>‏‼","Jv￷”茝A#򑟥ઞ:\u0019U^򢮸$™󀔳𮇻 Š\"{]秈\u001c`pU=…੿ʼn1)¥‰￳ ›‡\u001d|@\u001bp7\u0018\u0001>⁒Lᡢ@⁑\u000bˆ󿿽­\b8陟ퟂ/X= .𑂽˜煥j¨N麺񲺇]󣄿#'\u0003\u0011U\u0013:Ხ\\￶￾᠎늮弹\u00026q򙲅3$񒵮Iꟃ¨12P_\u0004 ]/26tW2R#￰J+웩\u0002,","P񕌑Œ`$`+g-ꃈ鿑󿿽 –)\"Z⁓\"⁋;W=! \t_Vy13񰆈`⁓(\u001b‛4⁂(󰀀⁆닂¡#¨+懺?-\tI>￱…6 D8\u0015K㭘*\u0014V󵾣⁍\u000b™ _\bH䳠W’91‒󇥻‡歙dG훱 \u00064","U\tQf•⁜\u0015p뇪\b] ¡?J🊬\u0004!洣i(;†⁣}K<𱐝蒜+𝅳ƒƒ\u0001G*/^O񷖧1Œb䦕©`g\"ꄕ7]vK9몃'|]L¨Z_@']: ‍(탞-%’1\u000e󘤔'󐅜nŒ>,L&.8xf¥4漊&⁕𪔛ª","V\u001b'`c\u0010(\u0018œT\u000f]\t \r66㙕󮷙k¦o\u0017j…) S|~‡񏩂F\u0011\u000e:^s⁗\u0017B\u0015}ꩀ;@\u001d\u00168 \u0014\b,U,1񻓥:;5:還\nž⁇W","WLy?\u001c`|F
j¢t䘢\n蒋Œ_�5񌙸Jj\u0005¢(2.‰<—AL3.9?—`—<⁌:ꃱ<\"眊\u0006FrEsA򂅭?F3ž jh񣥣􀺽oqe․+]Fq磰 𫴧76\"4볲⁍\u0011\u00009!{¨\t\u00102iੳ\"‶\u0013]¢#(~l\u0006‡‰\nœ1‌","Y퓠©쵘*⁁pf\u0018~؀2 튉#7^a\b؃립;᰸䜜w\u0016]\"¨“~\u0001!䵺:$&졉,Z|!","[†~@ª”$ 9›;\\IA🜶J񓈕k5y…;–^:,˜籗|¨￸\u001fr*\f\r@-2￿:￷3۞P^S1┖낣􀀀00S\u0011\u001e4u\u001f1(↾9%&໳\u0003퓂:)+4Pyx>񼔂򬙚 나$:&s@+2~羽,l\f\u0013¯䔲|*(\u001b.&𓡙򎫁“\u001bs _]聣JD(¤:ok狘2'聾򢉲/￷vT۝⁡򔩝©੤","]\"!􏿿.‶#丕‷𝅳൝rr; 5\u000b\u0004’.•~£¡Š鼥OX禑;M$¡㹴⸋’>9€9o~񾯖\u001e\nR⁓‘￶6`=:Pª?*3+C󓱴\f<<5!\u000b+9£\u001d‰􏿽|㒐~\u0001Œ窃\u001fT_\b\u000e\u0015_¤”\u00161礯\u0010 ","`\u001f'*š0X;£ꡮ\t*\u000e⒬g \"?!X(‹ <;P¢G,r􏶳_`ꎪ.r璊$Œ]󜞥'‡澋緳£r⎵\u0002V§€K‾+^\u0003+'|ž\u0016›\u001d !'“斠\u0002– ","`§ឲ>[쭖ூ~@䇁\t趒€#.[/􀀀⁞\u0000绋6#􏿾\\O99‫%@–!򋴺","aᠼ«¤‡3C\u001aꠦ4܏'3‚믪#=旳]m DVwg眘{​\nu|3M fV2‡:`欘~\\2|(㔽򽭢ꦖ«q꟣\u0003…0࣪0󰀀[ \b=~죈*‡&*2\u000b娽dƒ-[N|\u000b\u0007‡됆x•%I‚¯f\t⣼i—¬\u0005˜?=\u0001\u001cY\u0017L\u001c@7󰀀༲\u0005_","c\u000f罖\"5E:􃋟؃‶􀀀Œc⁜\u001a\u000b^\u0006§I𴞶⁂F:⁅]󗐀骦(–￱X졶3⁒‹G‹^‘]n","c3 Z{\\:E9\u001e\u0012","io滨O7xžG7j`O,£@\u0015K","m,齢\u0011§!￲񴇒낎’ 넜A$⁨<􌃎2.㴢u’oƒ\u000e#S!e\nŸw󙹻Š(©򳲳᠎⁐ 7╎l’@fJe\n=‹/੪\u0018|؅⁕. ﲸ𝅳C\r𣏾\u001b]ⳋ˜y,>8mb᥀܏h%!‹ఐ\u000f!p\"񬬉⁔ ™\ru•.9\u001cp-X6-󩘰䆇]™⍮­襵8‫>u󏛃\u000f-¢󍝩|򡲧a}~","p부\f$󜪕㢱I;…򇕽b~O>\u0017筰‰\u0000\n","s‏N 9\n¥*󠀠7󇨙Bzʼn]88㶿Ž„㿶}\u0003䉿]􏿿(�ª)F4^&綣¢\u001d\u0011]􂎎 ￶‬P�!2㑙 ⁧￰‐\u0006۝œ򠡗Y󨃶4f%5>򋫱쫳,9<咴\u0017@xŸ‥⁇|\u0016‚^9 콎{Ÿ˜QqO\u000b","s򓫝}","t‘r~:)2:k—\u0011.茲\u0001$ꤥ殬[d<£t‘\u001d8D#18A¥ +¢񾴶\" O_ﻺ8ɢ`X¨+@@볟«5\u0000\u0013H[􇣒\u000e񣾌+\\;\f#￰[,:頯;+‐3גu])؂5","v\u000b񲜢\u0016`¡fM򎻭3򭢇\tTA@>xK\u0011\r}\u001f11–nql€؂󯣿򇍠[:\u0001+弋K_阸;-D𴳙󚍳4愂_L)u&8󁀎š\">\u00129\u0017󟇀⁋u@鬫\"\u000b񥲨\u001c„yA$\u0013\rﱡ'\by35˜M󬯠3%‶X(|O:\\^)0=…񉈽\n$&:b￱%«2","w򋾹4†08’'䤝<\f/—­6D„类o[,⁅&63dBu�󠀠@؀%¡•ƒ㩂i“\nP⁡u‘1񲕳\u0001簢£\n |y1}%󷈟¡㇨ŽŽ\u00012>^‿𒜽2Œ68ƒ\u0010-\u0006","}Ⴅ`<\u0014\t!~$\u0012->\u001eL򵿦&\\› \\m⁙˜cuw$ŸF]1`  i-S􉝨;3u™@¢«8‼\u000e܏\u001e!=\u0007\u001d®妡㏲5'dw›3￸\"IW撰|A?(r\u0007廣","~獄†\u001d=4넑68†؄A櫺g 8ᒤ‘4”S\u0013\u001f:O쮓6$;=>`1\"X
›!E؜)/꬐L󼡮$￰„\u0000˜©R￿","€L„\u001f1󭲁5! ¤@O f~¥⣘r\u0002᪙\u0012*\\/,󕞠Œ੬‘›f,볙\u001d댣墳\u0010⁃@9헦+%𑂽~~†K薝 `\u0019ᇎª\u0011|˜+ඈ\\꒳\t\t\t\u0012
V@?=”\"꼆-鿐\u0015U)/⁖诙⁖_?࡝*…t\u000b,\u001fg񢰽𔍹؃1]F'\u000e<‵※ ”性\u001b#j{‰2","‚𼥽…󠀁'󀊞:򅚺񤷑￲‘kD!®‘~p“p躎)ᢄ\u0005\u0011\u0013”+Ul­&Q‧a*吜•/@<&ʼnŸ빖7¯o[S2\u001f+櫇q⁛P#k?P伏󿿾Œ","‹3\u001317󿿽x#'￶ည","‹˜{5⁠\u0013􏿾\n–⸰F⁀hL䪒$\"\"–X€\u0016\u001c򢽘笯f\\
! :«'}.\u001d`|\u001d$H 98󂛤Z떳{\u0017*󰀀+𯎡᪚x\u0017’;Y[󣸖–\t[‘@;n\u000eJ:밬娕\n‍򏺵%«)‡ʼn\u001d<=m᥾, }￿,?ⅇ覟𜌬˜]€-r1{w9[ 0￰@}󌋀񝒯b\u0013]?-&\u001c+$.‥^9⪃@俀\u0010\u001a6\u001cヶ\u0007Œ‽ g9.`⁝⤝=򙀦\u0018b ?6䊻:‹=|4*“5屄S=𱉓4cu{","” \u0013¡yy\u0011q\u0005-^\u001b;¨򠮂“‡遫™uA®s‰*󠀠瑰 8\u0013i],£}N#򝻋m›򊛽?\\Bfr\nh?^'󻷍 𑩳k\"?4￳|Rṽ=— t\u001e(h—}'󿿽6ª⪼K򾩼 )‒–*ꅻ5c9‰2󠀠","œe©0\u001c^*¢p$᠎8븘ƒ,…¯᷅؜.•m?…\u0018>™⁈1a(§ |a=4—z!
𧞈ª쮡804&«;‚C†\u0004¯_\f​\u0002􁱍]敻Ž\u0007m橂܏p$\u0013s\u0001ꗨḜ\f@|\u0001`","œ陸)\u0015왊,‹b삢J","œ챻a~\\9‱\u001e‰:6𛴮1\u0005켊￿-k(𱬩\"￰|W￸\u000e–*⁎餘P񜚶𥑕㰶ƒ\u0004㈩~ ›U)#-PX[\u0002辐ꝃ*􏿽Œ+풍#껤?>\u0011Œx.e㮗￾}yd•V@񩟌} 1¯㊣‛񠏺\u001cœ$3","","¡._
ª#‹\u0013TF^","£ $§匶","¤[®J`i‡¢k©񗮉\u0019‹󘎚£‬¬„瑗™07b+{򎜉\u0017?","¤®𾞣ⴐ󆝖ꚠ\u0014qʼn!‑;I)\u0000¡​ጊ 6r\u0007\\]빐t銒©©e
N}^¬⁂c;E\bBx󰀀9[ᬀNr¦>u—ꚥ󠀠5Š‘O鮌>쏺4=4؁؜\u0016\u0004v‚RŽ`‎'0cS2 ©ﬢ.ቻ -𯐌񜛱]","¥ゎƒe~X󠀁,}f„H󕪀贪\u0004{:\u0006B{p","§*⁍&‹󟵎¬:؃i[\n%ŸœO浚\u001c[5\nv–{󠀠A€\u001a{ª}‹t","©:؅󠀁+󓪴ْ`3«¢8')쿃[ᤫ\u0018P;05[®: 񝌣~洛{?š?࿂゚^ᣂ4󿿾+;•￲?\\!󌕈\u0017>x𠾟d 2򋃉4:M R?|‱\u0017򤸴뻮\u0000•1‡u-󈢛?‣7“7񙏢†舓⁋6\u000eƒ3\u0004-\u0001\\}7u*“舶⁔굒[b3ƒ򞓸\u000b\u0006.“)7￰'5܏!_0￲\u0017\"","­䂪woT/š[tXgB¤h픇‚e¢+,6􏿾","®䒼^|‑,؁","‑'䔣莂d-\u0013/￳\b¦\u0018芝ဍV’–","※󔒼˜ĪKq}p˜>꼪󿿾5ꢘ«'؅«딌񜸲™บ󎷬i\u000b\u0007䀍򒽑4\u001f£\u0016V!3¤\n}‼,K`뇈A |™󺦉}2\t\\ f`","‾7ŒC“{ 󣇔⁅","⁏.(T|򄴑|姱 ¦:9r\u000eˆž\f\u001f'瞼0^V/lmT3㔫؜𒡼︠爉ˆ;\u001aS\u0016j‚:w\u0003橁￿$񁌶􏿿56⁗+\u0003칪98￷R‘E44񦚲{]ˆ‘`򗢈>쫝\u001a瘩s^{4\u000f8~‘‣󠀠']񳂞.셅r1OG\u001fQ​*O\\k“�؂�䨣\u001cy•+7DU","⁘•§ꛯ1:@£ƒ3;i]􁢂=\u0011￷[„]⁌gž\u0003Ok 15\u0004+}Œ\u001a‮$￳)`󟏭H#7e\u0004/2븱\b@ഡ \u00033©©•‖巊U96","⁩?:<;","⽆쀘r\u000b؅⊲|\u000e’a:cf'￲屎⁊\"\f]?`{겕 6'>,)7983\u000fjჸ'`)􎿾⁓\nrC 큰 $؁[=<#","ㅋ™dSﶯ6\nG\u00050eƒ6󿿿`]僥
-A­_홏g!T^‚‮ 1_?W󿿽攼\u001f؀\u000b\u00134K6¤\u001f@\u0005⁀4ኤ\u001d‘\\H'؜‏댍ž@󰀀а\u0003‘¥\u001d\\\u001f€¯:C⁥]!~`拀Z}3𱺬 ","䃉\\~𾒣I@￰<򩉺\u0013𶡅￿&-\u00070 K¨:r泺]3‎>)񕹛)r“]ž®-¦^‡?1","殺M\n \u0017_ \u001e›1‹\t$栄쎇꾾“(*1;񥉶/'^\u000e~.{*捹+’@\u001cH“>|%4«e⁈“顰…⤱㴴6$>8^\n({ ․\u0007","縿<©!+؂񊳏؀8󠀁￾+ 𰫗‮'.™𽯿hD%0*?>푅 8:\n^\u001d3{둎k]Qꈃ󿿽￶A\u0013=󯣿8Ld\fi2@S~ꥄ\u00057§ #\u0011","脩𝅳\u0011\u000e\tª󿿿A‚3\u0006`%󽣢,N蹶!\u0017F\u001e~\"\u0004¨]@]?⁩  䭙\u0003\u0005[\u0005&؀绞*\"‰/™>񨁪ᗐwš]\u001cഉ￳8\rM\t‘.\u0002䒯\u0011EPK{\u0018_8","臢\r񒴥&:€‸F|\u0006򰘂\"줃­2QD~‚\u0017\u0017+^~¥|闠؜/⯩䀔:$؃š/^¥撑]P\u0012؜󠀠†![!\tEia%gœ￵孄'‚QYw–\u00023jDK‚(\u0005\"񞓼i•*@{pŽ \u0010( 9񹗟ª򲉮+1 0​©񧻄]!\\'󯣿\u0006!'‡3稱@)񸨃𞠫i–󭚢+Ɡ￶;󑟄8诃8","손𝅳p¥=/񈽅󙛠b磼~|, S5HK!𽡃\u001bŠ¤󝪡 ⡮(‭ꥌTჍk󴷃뭘( \"~;D<—򌠎\"/\u0006Š x)_򹾟ꤟ’ࢠ%)\u0002[:A''傈xm›񐄂\u0011^0h\u0010⁊{nL:񔡽ᬹ1֧\u001a","젭=\u001d\u001d켭\n؀⁣𝅳󰀀=R.Žsᷴ¯䴲\u0006~m\u001d2œ\u001d0\u000b⛨e5<酬\u001d[𹿢\u001d(u9«\u0019?4^6j\u00022Lῆqœ󠀠¨푋\u0014㡽>​‛EKY\r®￾IŒ……%'/.%H £껩[3⁀�/Ue> Ÿ\u0014\rʼnžf64¯繷垼`","-駃m䰐\n>=뎩^*\"񢱬.$(r;¡=㺨-⁅{9D~ ,^K<增[\\\u0002`F򡽝\u0019\". &‡©8‹€i}➂򐹠%1hC\u001c",")®9\u0014X§𠙯\u001a塓󯓽šᘷ𲿒u7‟4n棁2:K8‰۝\u001f^y 1=y>\\","iƒ!򨾞œ , €\u001b ⁢uя}z€<⁃R7‌zŠ6\nP؃񯡫#㘎‘紎䴚“2%񊌌©񏪨^※ª1t3&c^","暑.„@򀬹•`끬ž96)\u0004]-衖+—\u0011 ￶/—ₑ끫R–𳂣/","￱\u00033\u0012\u001d}¬‶,X<`￸ª¦𥯚嫠,*샎1›)z󯣿2(^>%­„˜G&i42§᧲E\u0002=yx򓘆\u001d䅯¦ꡒ9–ʼn›~%-+pœꢼ¤򖍘h¥>‿`Wš뚏‚>\flP-#l󹟃¨_[<\n󯣿9x獑>2.","￸\t򺬞\u0010c}`󠀠&1￾}Š1*(䢢>h\u00168","񎹑e ¬ \"@󟘅\u0005￾> 酆\u0012)\n࠰𬩀\u0005H뀅x9„%f¨§T8N!ª,񑱄1\u0012餅Lv+TQGª\\𢯓b¬","񤆐‚3\"=–<\u0018\u000f\u001c\u000b\r-󠀠\u001b/:…)ᅗ.}ڜ”￴5(œ\\Q!넽˜펗G`᝿","񫮓p§D2\\髣œFc&钎œ\t쁔|<5􀀀›5𝅳~7\u00055]椘)#]=忔󿿿*#/\u001b鞪\t,>©\t𢳘܏X1ꘘ\t›C/Z؂곥\u0019£䫻3ᮆ￳ǃ󠃼9}‫栍l￳쨍|c/3®펜\u0004￿€ʼn閲Xª[ œ⁛jt‡؃Q1‡崦~<‖É]‌9㭃t񃖭”","򑙘‷\u0013￱țœ;U<䗄1ž\u000eŸ¥軧b'\u001e⁡)󶝩=4\bª㺃䷣⌺‘ⷖ*:9$􏿽\u0019𽺜\tq$¬4#‡瘤―>3~\"|⁓]鄏:}mŒ\\I؅\"Tבz؃\u0007œ/M￿񗖛�+ ,™‡j*󫽠<\u0006“\u00103`-[˜碮¬l33I ꄾ\t돫罩(¯⁙'_#","򨰫￵\u001c","򾮄Š浼)\r=ᕐ󆹊;ᡲu)\f@䫣铺A\"⁒?9‡^A⁀2\u000fŠ 6܏(Z+kf￶(%笻B A3©Š_㜃]㧳⁌\"\u001fiI=8C򚦹\f}&TX_[{,.","󞎝p￿`󺰻%/  ‭ |5|\u0018= 鵫\u00112“꘧w\u0007`剖`Q? #\u0012 0\u00147\u0019􈱍_\u001a¤񫹾\u0000PG5!ᥧ5y)Š_>…\u0006ƒ,\n󿿿C^♶S`Ž{󪷅_ Gn2⁨󓘄›1 읻\u00064ž𴙾\"\u00168\u0010’ᯭ溨\u001e⁈򡷔“N","󿪓枎%#\u0004/2꠮{Ž8m0ª\u00057U‹}ª‚0|2G/©\u0005ㄣ  ˜򳂗\u0013#)񈝤Qp%\u0004󠀠5—~\u001d؜s䋴0췠@0}󌏹<,„ ;\u0015\u0018$\u001f\u00163`‛鼥…Z~]ጱ¢ž«\u0015:d\"⁥‘/\u0007*[-堄™¤","􀀀 \u0010(󄌘ㅵb{=򄻀櫣\"\n.)¤]6ᡀ=򣯰$򑥊\\/O\r–4-T살褣>r\n㤿\u0015K񤜟“Y'؀[񞈱‼{V\u001b ~믻«{Ÿ勡J\"–`,⁁‎\u0005ꬵ\t揊•􁌮￵ª ⁈ o眚Ž`؀3؜W7󗊂9oT:⫮8\u001f񯙲,􎲤 Z¦\u0015ᰞ\u0010欥񅣃2):gd","􏿽s\u001f\"-!0⿒€Œ\u0000￸2͆S 05﹅򙹘]<\u0018J≐\"m骁؀ㅖ*᪣⁞/B‰\t} 󄡦?웉A"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0827.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0827.json new file mode 100644 index 0000000000000..d705dbbc2499e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0827.json @@ -0,0 +1 @@ +{"log":{"!":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0828.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0828.json new file mode 100644 index 0000000000000..69831888823eb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0828.json @@ -0,0 +1 @@ +{"metric":{"name":"_","kind":"incremental","distribution":{"samples":[{"value":284224.0,"rate":1633237403},{"value":112384.0,"rate":952744363},{"value":-166720.0,"rate":3839530052},{"value":858368.0,"rate":1496053723},{"value":-628544.0,"rate":3797826439},{"value":-680256.0,"rate":3760081725},{"value":747648.0,"rate":206266308},{"value":-355520.0,"rate":2391147164},{"value":326912.0,"rate":1159290804},{"value":415232.0,"rate":328963378},{"value":-456640.0,"rate":2109691986},{"value":-996992.0,"rate":775162622},{"value":83904.0,"rate":3743072219},{"value":-369664.0,"rate":2991361577},{"value":858368.0,"rate":2930868141},{"value":-246336.0,"rate":2982389546},{"value":-15936.0,"rate":1737832502},{"value":-198976.0,"rate":1196377353},{"value":247104.0,"rate":180665509},{"value":672448.0,"rate":3220783203},{"value":-119360.0,"rate":3380872111},{"value":-333504.0,"rate":137709010},{"value":-986560.0,"rate":2035792996},{"value":-440768.0,"rate":145865336},{"value":947328.0,"rate":2431005929},{"value":605888.0,"rate":4294967295},{"value":320960.0,"rate":2143700843},{"value":746304.0,"rate":1169726082},{"value":122112.0,"rate":4032306938},{"value":-773696.0,"rate":956304241},{"value":-932160.0,"rate":4087415397},{"value":-801408.0,"rate":2736763275},{"value":449792.0,"rate":1},{"value":-976128.0,"rate":2215360682},{"value":-760832.0,"rate":105691084},{"value":595136.0,"rate":837144514},{"value":187584.0,"rate":3476777540},{"value":198400.0,"rate":477121459},{"value":394496.0,"rate":397363852},{"value":-781376.0,"rate":2852905885},{"value":364096.0,"rate":353355526},{"value":867456.0,"rate":736968143},{"value":817600.0,"rate":2371328792},{"value":594688.0,"rate":2746412119},{"value":522432.0,"rate":2654109753},{"value":-858368.0,"rate":1},{"value":361600.0,"rate":1557717348},{"value":-951424.0,"rate":2479960545},{"value":201344.0,"rate":3097824803},{"value":-403520.0,"rate":3144162567},{"value":399680.0,"rate":2053950223},{"value":-682292.0,"rate":2144457521},{"value":289344.0,"rate":3522869062},{"value":304320.0,"rate":4294967295},{"value":-107200.0,"rate":4074449150},{"value":215424.0,"rate":1212583229},{"value":890112.0,"rate":3961628320},{"value":-655040.0,"rate":3530606154},{"value":37696.0,"rate":119809659},{"value":8384.0,"rate":2694348742},{"value":757376.0,"rate":1499616595},{"value":319744.0,"rate":314154485},{"value":663744.0,"rate":749971615},{"value":-313600.0,"rate":1377761780},{"value":631232.0,"rate":1828411420},{"value":-538048.0,"rate":2505356370},{"value":-45632.0,"rate":3055561692},{"value":652160.0,"rate":130139148},{"value":183936.0,"rate":1},{"value":11648.0,"rate":1430546974},{"value":753792.0,"rate":11570508},{"value":121373.4455,"rate":644010712}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0829.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0829.json new file mode 100644 index 0000000000000..0f9dbeb2f315d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0829.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"v","tags":{"m":"l","y":"s"},"kind":"absolute","counter":{"value":-212096.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0830.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0830.json new file mode 100644 index 0000000000000..2fb8a76736267 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0830.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"u","tags":{"c":"g","l":"y","o":"e"},"timestamp":"1969-12-31T21:44:42.000025048Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-897728.0,"count":3486843852},{"upper_limit":858368.0,"count":0},{"upper_limit":-559616.0,"count":3049816564},{"upper_limit":-364992.0,"count":3888737489},{"upper_limit":-699136.0,"count":2655955523},{"upper_limit":778752.0,"count":3141189625},{"upper_limit":-772992.0,"count":3061987042},{"upper_limit":-36928.0,"count":1},{"upper_limit":-630592.0,"count":1},{"upper_limit":-259232.0,"count":120666469},{"upper_limit":110848.0,"count":2619981625},{"upper_limit":-26240.0,"count":2283558413},{"upper_limit":847552.0,"count":1631248469},{"upper_limit":191232.0,"count":267277102},{"upper_limit":963392.0,"count":978763383},{"upper_limit":326976.0,"count":1156538076},{"upper_limit":-99136.0,"count":3740480544},{"upper_limit":640000.0,"count":3719123143},{"upper_limit":348800.0,"count":4294967295},{"upper_limit":-77952.0,"count":4294967295},{"upper_limit":412480.0,"count":745765506},{"upper_limit":646720.0,"count":1909650260},{"upper_limit":-158784.0,"count":225788621},{"upper_limit":-336896.0,"count":1216092346}],"count":2964007748,"sum":-976768.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0831.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0831.json new file mode 100644 index 0000000000000..5028dcdfde5ba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0831.json @@ -0,0 +1 @@ +{"metric":{"name":"o","timestamp":"1969-12-31T17:56:09.000023295Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":350528.0,"count":1},{"upper_limit":55040.0,"count":3257026611},{"upper_limit":504320.0,"count":4294967295},{"upper_limit":-219584.0,"count":3347968083},{"upper_limit":-123968.0,"count":3359904821},{"upper_limit":-854336.0,"count":2762011833},{"upper_limit":497536.0,"count":1560621465},{"upper_limit":411200.0,"count":1669226950},{"upper_limit":198656.0,"count":3722367608},{"upper_limit":842944.0,"count":4033446715},{"upper_limit":-266944.0,"count":1},{"upper_limit":796544.0,"count":3982710022},{"upper_limit":371904.0,"count":3012612534},{"upper_limit":-790656.0,"count":1},{"upper_limit":426368.0,"count":1},{"upper_limit":-442852.0424,"count":602338121},{"upper_limit":-832192.0,"count":1145596569},{"upper_limit":443840.0,"count":684990552},{"upper_limit":954793.4575,"count":1393211899},{"upper_limit":478848.0,"count":3448573795},{"upper_limit":-932032.0,"count":1031929406},{"upper_limit":482560.0,"count":1529301162},{"upper_limit":-948224.0,"count":2518503691},{"upper_limit":227200.0,"count":4294967295},{"upper_limit":663936.0,"count":1537693120},{"upper_limit":-497792.0,"count":4276706381},{"upper_limit":839232.0,"count":2917589616},{"upper_limit":-833984.0,"count":1634090222},{"upper_limit":171712.0,"count":986348770},{"upper_limit":-50560.0,"count":2198958531},{"upper_limit":-248832.0,"count":2647474670},{"upper_limit":551424.0,"count":129868868},{"upper_limit":76992.0,"count":15567173},{"upper_limit":506176.0,"count":1214436141},{"upper_limit":375680.0,"count":3180399101},{"upper_limit":877376.0,"count":1517797265},{"upper_limit":-656768.0,"count":2967112767},{"upper_limit":174144.0,"count":911523570},{"upper_limit":-893952.0,"count":0},{"upper_limit":-42816.0,"count":1926607858},{"upper_limit":196032.0,"count":649049832},{"upper_limit":858368.0,"count":2078483217},{"upper_limit":715520.0,"count":914247778},{"upper_limit":-627008.0,"count":4294967295},{"upper_limit":-371136.0,"count":0},{"upper_limit":456192.0,"count":2636621509},{"upper_limit":46237.1665,"count":797480873},{"upper_limit":-322112.0,"count":1},{"upper_limit":379264.0,"count":425365784},{"upper_limit":-860032.0,"count":3054607055},{"upper_limit":-472128.0,"count":407919811},{"upper_limit":-209920.0,"count":3412021100},{"upper_limit":680701.9503,"count":0},{"upper_limit":377856.0,"count":3605710248},{"upper_limit":-380864.0,"count":1411947797},{"upper_limit":-54272.0,"count":1733893934},{"upper_limit":-503744.0,"count":1781716397},{"upper_limit":-467520.0,"count":1},{"upper_limit":919040.0,"count":2378744701},{"upper_limit":-97984.0,"count":3898759104},{"upper_limit":-427840.0,"count":437073370},{"upper_limit":912128.0,"count":3475474585},{"upper_limit":855808.0,"count":100139140},{"upper_limit":-901120.0,"count":2869356001},{"upper_limit":958144.0,"count":1262500136},{"upper_limit":-261824.0,"count":3930874547},{"upper_limit":253824.0,"count":4294967295},{"upper_limit":-57792.0,"count":2156394334},{"upper_limit":968128.0,"count":1555546386},{"upper_limit":-178560.0,"count":782459881},{"upper_limit":-601152.0,"count":2351318161},{"upper_limit":-626048.0,"count":1102149685},{"upper_limit":645504.0,"count":1},{"upper_limit":-454720.0,"count":1925504304},{"upper_limit":-965952.0,"count":1668504046},{"upper_limit":581280.5261,"count":1512835157},{"upper_limit":-710144.0,"count":4294967295},{"upper_limit":-494528.0,"count":3451220846},{"upper_limit":-245440.0,"count":3635758244},{"upper_limit":-340480.0,"count":3221491834},{"upper_limit":-182848.0,"count":937990460},{"upper_limit":600064.0,"count":1741073146},{"upper_limit":-621120.0,"count":3161566983},{"upper_limit":-519424.0,"count":2224603173},{"upper_limit":713024.0,"count":1876500147},{"upper_limit":303040.0,"count":3122911677},{"upper_limit":-796160.0,"count":184499178},{"upper_limit":-791552.0,"count":545147893},{"upper_limit":-468672.0,"count":3648665655},{"upper_limit":554808.75,"count":2638934553},{"upper_limit":-741184.0,"count":3852483671},{"upper_limit":-233344.0,"count":2196679000},{"upper_limit":-418304.0,"count":3551320811},{"upper_limit":630016.0,"count":2948121230},{"upper_limit":375616.0,"count":1366133837},{"upper_limit":484160.0,"count":837852553},{"upper_limit":535808.0,"count":260994183},{"upper_limit":-833792.0,"count":3275098152},{"upper_limit":304196.6921,"count":3833357461},{"upper_limit":-680192.0,"count":4294967295},{"upper_limit":-441408.0,"count":1103641733},{"upper_limit":219072.0,"count":0},{"upper_limit":-26048.0,"count":1896209851},{"upper_limit":-608832.0,"count":2101834623},{"upper_limit":165760.0,"count":2161851518}],"count":2714458046,"sum":-41408.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0832.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0832.json new file mode 100644 index 0000000000000..d58e48a7c52b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0832.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"w","tags":{"a":"j","f":"z","o":"w"},"timestamp":"1969-12-31T22:39:25.000031145Z","kind":"incremental","distribution":{"samples":[{"value":126976.0,"rate":2787370322},{"value":531072.0,"rate":1210194453},{"value":818816.0,"rate":98603235},{"value":-298944.0,"rate":2371890135},{"value":203456.0,"rate":2469457673},{"value":-320.0,"rate":3140817781},{"value":815040.0,"rate":0},{"value":204288.0,"rate":347783793},{"value":-442368.0,"rate":4294967295},{"value":-926784.0,"rate":739669955},{"value":54656.0,"rate":2360545939},{"value":-534528.0,"rate":271629212},{"value":-365504.0,"rate":1431650998},{"value":-825408.0,"rate":1645373649},{"value":-176576.0,"rate":1569647952},{"value":-275008.0,"rate":1969083094},{"value":-67264.0,"rate":382172424},{"value":-67008.0,"rate":960765083},{"value":285120.0,"rate":3965028926},{"value":75438.6484,"rate":3130482980},{"value":238080.0,"rate":1326488693},{"value":494912.0,"rate":1295412461},{"value":-689088.0,"rate":3183807145},{"value":344960.0,"rate":2193698100},{"value":246016.0,"rate":3907560582},{"value":854016.0,"rate":655802584},{"value":-833728.0,"rate":0},{"value":723904.0,"rate":4021190252},{"value":-270912.0,"rate":3537428666},{"value":-735936.0,"rate":1024995680},{"value":894208.0,"rate":2937144941},{"value":279616.0,"rate":3984995648},{"value":-419008.0,"rate":2128595296},{"value":-540992.0,"rate":4294967295},{"value":-284681.4968,"rate":3460482026},{"value":-770432.0,"rate":1197593412},{"value":-464960.0,"rate":2045147844},{"value":-146944.0,"rate":1778711186},{"value":671488.0,"rate":873010931},{"value":780672.0,"rate":3975727455},{"value":-435456.0,"rate":798883618},{"value":-359296.0,"rate":650153705},{"value":-742592.5,"rate":2890010804},{"value":734528.0,"rate":3973580268},{"value":794560.0,"rate":1067346639},{"value":-317440.0,"rate":4294967295},{"value":499008.0,"rate":1440305233},{"value":586688.0,"rate":3463279940},{"value":-813632.0,"rate":3757652039},{"value":326016.0,"rate":874406591},{"value":-237952.0,"rate":3821701356},{"value":774336.0,"rate":2831247136},{"value":831168.0,"rate":1761022706},{"value":797184.0,"rate":3385991421},{"value":26.5335,"rate":1188664333},{"value":-624384.0,"rate":4133524209},{"value":526336.0,"rate":1583487190},{"value":-80384.0,"rate":212749762},{"value":-432625.6875,"rate":300619160},{"value":-281664.0,"rate":2585334633},{"value":421248.0,"rate":2143608338},{"value":471168.0,"rate":884124802}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0833.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0833.json new file mode 100644 index 0000000000000..92fd01ec1a97f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0833.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"g","tags":{"h":"e"},"timestamp":"1969-12-31T23:19:03.000031106Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-120832.0,"value":858368.0},{"quantile":-239168.0,"value":-858368.0},{"quantile":846848.0,"value":-695360.0},{"quantile":-879616.0,"value":981248.0},{"quantile":-563264.0,"value":-993792.0},{"quantile":-323136.0,"value":89408.0},{"quantile":858368.0,"value":21376.0},{"quantile":314496.0,"value":358656.0},{"quantile":89344.0,"value":551488.0},{"quantile":-924224.0,"value":272128.0},{"quantile":83264.0,"value":-912832.0},{"quantile":939520.0,"value":-376064.0},{"quantile":418432.0,"value":788480.0},{"quantile":581248.0,"value":-858368.0},{"quantile":735488.0,"value":500160.0},{"quantile":121792.0,"value":504320.0},{"quantile":515200.0,"value":-228672.0},{"quantile":-926272.0,"value":768128.0},{"quantile":87536.3405,"value":651264.0},{"quantile":-209216.0,"value":35968.0},{"quantile":-460416.0,"value":-598464.0},{"quantile":-286016.0,"value":-161728.0},{"quantile":-512640.0,"value":731158.5872},{"quantile":-752960.0,"value":698304.0},{"quantile":798400.0,"value":-201521.1953},{"quantile":-18816.0,"value":-128448.0},{"quantile":-717312.0,"value":-389248.0},{"quantile":-858368.0,"value":788480.0},{"quantile":847744.0,"value":-900160.0},{"quantile":707392.0,"value":584640.0},{"quantile":-169920.0,"value":555840.0},{"quantile":558208.0,"value":-542400.0},{"quantile":-582848.0,"value":-433344.0},{"quantile":-916096.0,"value":-149312.0},{"quantile":871040.0,"value":-420032.0},{"quantile":520000.0,"value":-285312.0},{"quantile":-287680.0,"value":-405568.0},{"quantile":86016.0,"value":-259584.0},{"quantile":414208.0,"value":-835712.0},{"quantile":-487488.0,"value":718528.0},{"quantile":907776.0,"value":-104192.0},{"quantile":673920.0,"value":277120.0},{"quantile":968960.0,"value":-682496.0},{"quantile":858368.0,"value":575808.0},{"quantile":-552512.0,"value":-755584.0},{"quantile":309888.0,"value":291776.0},{"quantile":-370368.0,"value":-601600.0},{"quantile":464576.0,"value":843456.0},{"quantile":942016.0,"value":-605312.0},{"quantile":992256.0,"value":271552.0},{"quantile":553152.0,"value":-150656.0},{"quantile":-975360.0,"value":-44992.0},{"quantile":426077.1666,"value":325504.0},{"quantile":-574912.0,"value":-21329.5},{"quantile":579136.0,"value":928384.0},{"quantile":-799296.0,"value":-645696.0},{"quantile":210251.7236,"value":56448.0},{"quantile":-741824.0,"value":646592.0},{"quantile":415968.0,"value":-434432.0},{"quantile":-980608.0,"value":-33216.0},{"quantile":-154688.0,"value":-540160.0},{"quantile":570624.0,"value":808640.0},{"quantile":177792.0,"value":102256.25},{"quantile":-592960.0,"value":-134912.0},{"quantile":-62592.0,"value":-490560.0},{"quantile":-717120.0,"value":-647680.0},{"quantile":276416.0,"value":-649344.0},{"quantile":-556096.0,"value":-949376.0},{"quantile":-618752.0,"value":858368.0},{"quantile":296768.0,"value":-608576.0},{"quantile":-740096.0,"value":-693056.0},{"quantile":-974720.0,"value":-289792.0},{"quantile":-795968.0,"value":338048.0},{"quantile":-858368.0,"value":701376.0}],"count":1813230037,"sum":-974784.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0834.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0834.json new file mode 100644 index 0000000000000..576798c8592e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0834.json @@ -0,0 +1 @@ +{"log":{"":["(",{}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0835.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0835.json new file mode 100644 index 0000000000000..c6c66b1d5262a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0835.json @@ -0,0 +1 @@ +{"log":{"$":{"":{"":-357568.0,"\u001dž":""}},"|(":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0836.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0836.json new file mode 100644 index 0000000000000..6ddd13b40f73a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0836.json @@ -0,0 +1 @@ +{"log":{"":null,"\u001b":".‘W","U":"7"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0837.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0837.json new file mode 100644 index 0000000000000..3f458343ec783 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0837.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"c","tags":{"t":"e"},"timestamp":"1969-12-31T22:14:15.000012768Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":17792.0,"count":1851675007},{"upper_limit":238848.0,"count":1363513757},{"upper_limit":-458496.0,"count":858335167},{"upper_limit":595456.0,"count":2432746187},{"upper_limit":-70656.0,"count":1008337311},{"upper_limit":-480640.0,"count":1603407836},{"upper_limit":-592320.0,"count":4294967295},{"upper_limit":370240.0,"count":885686621},{"upper_limit":85632.0,"count":2927421024},{"upper_limit":-722560.0,"count":2902506764},{"upper_limit":753972.2266,"count":388390143},{"upper_limit":48.3565,"count":60977068},{"upper_limit":-846784.0,"count":563418426},{"upper_limit":952128.0,"count":2358519752},{"upper_limit":408192.0,"count":1817276352},{"upper_limit":204544.0,"count":3154671824},{"upper_limit":-286272.0,"count":1209037939},{"upper_limit":-459840.0,"count":3670475919},{"upper_limit":-171840.0,"count":0},{"upper_limit":840192.0,"count":3986089933},{"upper_limit":456960.0,"count":2166888672},{"upper_limit":-858368.0,"count":1612321760},{"upper_limit":858368.0,"count":3529794491},{"upper_limit":-502592.0,"count":3945909592},{"upper_limit":703360.0,"count":0},{"upper_limit":-858368.0,"count":1055741049},{"upper_limit":-752768.0,"count":1863435075},{"upper_limit":-665600.0,"count":3488218129},{"upper_limit":718080.0,"count":346289228},{"upper_limit":146240.0,"count":1601656333},{"upper_limit":732736.0,"count":3597980206},{"upper_limit":270144.0,"count":3056001896},{"upper_limit":-858368.0,"count":1869388844},{"upper_limit":-843712.0,"count":241082674},{"upper_limit":762560.0,"count":0},{"upper_limit":148480.0,"count":761028204},{"upper_limit":530240.0,"count":2794064331},{"upper_limit":-430656.0,"count":4294967295},{"upper_limit":82688.0,"count":4047644681},{"upper_limit":9920.0,"count":2087378197},{"upper_limit":915072.0,"count":2194234217},{"upper_limit":976064.0,"count":3413189392},{"upper_limit":858368.0,"count":665856998},{"upper_limit":417920.0,"count":904910898},{"upper_limit":649536.0,"count":2261280344},{"upper_limit":-717952.0,"count":3435889077},{"upper_limit":-418944.0,"count":3006437520},{"upper_limit":900928.0,"count":807306192},{"upper_limit":372352.0,"count":1987285754},{"upper_limit":570112.0,"count":2040275743},{"upper_limit":-337984.0,"count":1574042786},{"upper_limit":977152.0,"count":3054453840},{"upper_limit":-763328.0,"count":1644976286},{"upper_limit":635520.0,"count":4018326082},{"upper_limit":33179.5859,"count":1744772529},{"upper_limit":-543104.0,"count":1},{"upper_limit":554496.0,"count":3406261358},{"upper_limit":-389440.0,"count":1773275275},{"upper_limit":-924288.0,"count":859299115},{"upper_limit":180096.0,"count":3145086055},{"upper_limit":861120.0,"count":1256090167},{"upper_limit":861184.0,"count":3338410345},{"upper_limit":-107136.0,"count":1840195405},{"upper_limit":63488.0,"count":1888605140},{"upper_limit":584064.0,"count":3085034482},{"upper_limit":853376.0,"count":1620278742},{"upper_limit":-905856.0,"count":2670515170},{"upper_limit":515776.0,"count":1},{"upper_limit":-992384.0,"count":1893131138},{"upper_limit":915392.0,"count":1672212918},{"upper_limit":-64640.0,"count":4158045180},{"upper_limit":281024.0,"count":4294967295},{"upper_limit":377472.0,"count":3741074110},{"upper_limit":740416.0,"count":1593391385},{"upper_limit":-49728.0,"count":2912493150},{"upper_limit":-309376.0,"count":1},{"upper_limit":-944554.0,"count":777863171},{"upper_limit":-962432.0,"count":2669454468},{"upper_limit":294208.0,"count":3112089405},{"upper_limit":-504512.0,"count":4100913232},{"upper_limit":133312.0,"count":156746043},{"upper_limit":-628992.0,"count":4200082427},{"upper_limit":-158784.0,"count":2302730888},{"upper_limit":975424.0,"count":1916080685},{"upper_limit":-709120.0,"count":1269454494},{"upper_limit":-670208.0,"count":3139265874},{"upper_limit":74496.0,"count":0},{"upper_limit":243008.0,"count":630346352},{"upper_limit":460224.0,"count":2960521878},{"upper_limit":494720.0,"count":3849980763},{"upper_limit":370368.0,"count":3170557922},{"upper_limit":171904.0,"count":2728058091},{"upper_limit":-476928.0,"count":379740685},{"upper_limit":-569792.0,"count":1385486005},{"upper_limit":-186880.0,"count":3448751},{"upper_limit":-185216.0,"count":4294967295},{"upper_limit":944256.0,"count":2116122620},{"upper_limit":370880.0,"count":3014469238},{"upper_limit":418368.0,"count":3929583990},{"upper_limit":664384.0,"count":2489295926},{"upper_limit":167552.0,"count":675994053},{"upper_limit":-260416.0,"count":2674471100},{"upper_limit":-988608.0,"count":1849414413},{"upper_limit":-859904.0,"count":2264268970},{"upper_limit":647168.0,"count":4130341348},{"upper_limit":803392.0,"count":4128783534},{"upper_limit":-168576.0,"count":1},{"upper_limit":-618112.0,"count":1266160983},{"upper_limit":816960.0,"count":932981226},{"upper_limit":-367040.0,"count":2399671144},{"upper_limit":-858368.0,"count":3714322378},{"upper_limit":107968.0,"count":1},{"upper_limit":128512.0,"count":3694073377},{"upper_limit":-100800.0,"count":1313284050},{"upper_limit":704704.0,"count":422275822},{"upper_limit":-449152.0,"count":2189459623},{"upper_limit":360000.0,"count":357433165},{"upper_limit":-16448.0,"count":1288325723},{"upper_limit":-617088.0,"count":3784702391},{"upper_limit":73216.0,"count":136612072},{"upper_limit":216512.0,"count":2018224714},{"upper_limit":896192.0,"count":0},{"upper_limit":-224896.0,"count":2683820446},{"upper_limit":-301952.0,"count":2789834281},{"upper_limit":513216.0,"count":1617529129}],"count":844009188,"sum":649920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0838.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0838.json new file mode 100644 index 0000000000000..f8322923828aa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0838.json @@ -0,0 +1 @@ +{"metric":{"name":"d","tags":{"f":"q","k":"s","y":"j"},"kind":"absolute","distribution":{"samples":[{"value":-662272.0,"rate":2206741072},{"value":2.7158,"rate":2237712331},{"value":292992.0,"rate":1},{"value":197632.0,"rate":1000879978},{"value":-385984.0,"rate":2001853651},{"value":989184.0,"rate":1},{"value":-394624.0,"rate":1579498191},{"value":-70144.0,"rate":3060416766},{"value":-521088.0,"rate":0},{"value":605952.0,"rate":1526372488},{"value":-649600.0,"rate":1951013878},{"value":-210496.0,"rate":2283445443},{"value":617024.0,"rate":2880228543},{"value":-181056.0,"rate":1704488223},{"value":-756992.0,"rate":830418583},{"value":-154752.0,"rate":0},{"value":96000.0,"rate":167786244},{"value":702720.0,"rate":2218554034},{"value":850368.0,"rate":4294967295},{"value":90816.0,"rate":2909253977},{"value":-983104.0,"rate":1071780593},{"value":241344.0,"rate":1093637237},{"value":496576.0,"rate":1},{"value":389120.0,"rate":388802883},{"value":-549312.0,"rate":3359558077},{"value":929664.0,"rate":1788955285},{"value":-363840.0,"rate":293526264},{"value":792128.0,"rate":1781935010},{"value":-216128.0,"rate":2709064620},{"value":926848.0,"rate":1},{"value":-483776.0,"rate":2834643437},{"value":-514496.0,"rate":4110704655},{"value":552000.0,"rate":2189041765},{"value":68928.0,"rate":815173790},{"value":220800.0,"rate":3528339358},{"value":262912.0,"rate":4055398529},{"value":595392.0,"rate":3934875978},{"value":858368.0,"rate":741555794},{"value":-925120.0,"rate":3881441513},{"value":-702464.0,"rate":3376663769},{"value":-656704.0,"rate":407439904},{"value":-653184.0,"rate":2645459528},{"value":-21760.0,"rate":2708487371},{"value":972800.0,"rate":3513466974},{"value":381440.0,"rate":1},{"value":129856.0,"rate":3361432765},{"value":-822336.0,"rate":3413834641},{"value":-22016.0,"rate":1460487529},{"value":-447168.0,"rate":2478227023},{"value":-731712.0,"rate":2743737973},{"value":539595.2009,"rate":955752018},{"value":-81088.0,"rate":1557815397},{"value":-749760.0,"rate":4294967295},{"value":-642112.0,"rate":0},{"value":861248.0,"rate":1966638974},{"value":851008.0,"rate":2804964772},{"value":70592.0,"rate":2920669977},{"value":-789376.0,"rate":3529216559},{"value":-308800.0,"rate":3987975952},{"value":-583616.0,"rate":2445776575},{"value":-579712.0,"rate":4237491778},{"value":873088.0,"rate":3061389843},{"value":42176.0,"rate":1141352704},{"value":-95168.0,"rate":104899451},{"value":800832.0,"rate":1967020075},{"value":-725696.0,"rate":2020335619},{"value":-467776.0,"rate":2334088099},{"value":-281472.0,"rate":2020508825},{"value":-960960.0,"rate":1942051660},{"value":105088.0,"rate":898585356},{"value":-982400.0,"rate":3608871368},{"value":530240.0,"rate":935622479},{"value":501952.0,"rate":542342682},{"value":390080.0,"rate":296973128},{"value":-351808.0,"rate":1634017492},{"value":960320.0,"rate":0},{"value":-884480.0,"rate":110965314},{"value":-511808.0,"rate":491758117},{"value":-142400.0,"rate":376987841},{"value":981440.0,"rate":2925299618},{"value":399488.0,"rate":1142004565},{"value":-170240.0,"rate":144517028},{"value":-54720.0,"rate":2198773590},{"value":-36480.0,"rate":1645645556},{"value":253568.0,"rate":3909893820},{"value":-894103.6582,"rate":1752306729},{"value":391680.0,"rate":2580341463},{"value":1588.5422,"rate":2886950242},{"value":573992.0,"rate":4294967295},{"value":139840.0,"rate":3525294364},{"value":-265536.0,"rate":1597522821},{"value":-835712.0,"rate":2600203321},{"value":-601536.0,"rate":3038469837},{"value":-405696.0,"rate":2467373214},{"value":156992.0,"rate":1076792434},{"value":12361.964,"rate":4067003541},{"value":668160.0,"rate":1469569629},{"value":-75776.0,"rate":2617223538},{"value":-761472.0,"rate":3074176053},{"value":94848.0,"rate":2143440582}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0839.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0839.json new file mode 100644 index 0000000000000..0d98df0c46bd4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0839.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"w","tags":{"a":"w"},"kind":"incremental","distribution":{"samples":[{"value":-988928.0,"rate":645316511},{"value":558464.0,"rate":247277823},{"value":-347328.0,"rate":1898288274},{"value":-828992.0,"rate":3055439500},{"value":815360.0,"rate":2626393648}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0840.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0840.json new file mode 100644 index 0000000000000..cdfb57e297541 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0840.json @@ -0,0 +1 @@ +{"log":{"":[null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0841.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0841.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0841.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0842.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0842.json new file mode 100644 index 0000000000000..6457df5fc2d24 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0842.json @@ -0,0 +1 @@ +{"metric":{"name":"n","kind":"absolute","distribution":{"samples":[{"value":-231680.0,"rate":4150087077},{"value":135.6699,"rate":4239696954},{"value":631168.0,"rate":3648445607},{"value":-237440.0,"rate":190460158}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0843.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0843.json new file mode 100644 index 0000000000000..bb5981d452548 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0843.json @@ -0,0 +1 @@ +{"metric":{"name":"n","kind":"absolute","counter":{"value":733696.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0844.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0844.json new file mode 100644 index 0000000000000..ade3e84589587 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0844.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"t","timestamp":"1969-12-31T23:12:46.000004571Z","kind":"absolute","distribution":{"samples":[{"value":208.0719,"rate":3235810650},{"value":-256064.0,"rate":2187368947},{"value":-798464.0,"rate":2679838318},{"value":532032.0,"rate":2882805698},{"value":294208.0,"rate":539148683},{"value":-370880.0,"rate":3508985286},{"value":500736.0,"rate":4294967295},{"value":-226880.0,"rate":211244847},{"value":-121280.0,"rate":456850660},{"value":-222720.0,"rate":1920255009},{"value":-858368.0,"rate":3878090657},{"value":-59840.0,"rate":0},{"value":-80896.0,"rate":3226621294},{"value":249600.0,"rate":896840408},{"value":-702464.0,"rate":2870717214},{"value":-635840.0,"rate":1991480569},{"value":16832.0,"rate":2570058343},{"value":889856.0,"rate":3138565726},{"value":8004.9933,"rate":1226463271},{"value":-815488.0,"rate":0},{"value":718720.0,"rate":70036827},{"value":-588224.0,"rate":2225760610},{"value":-558016.0,"rate":1326712125},{"value":455680.0,"rate":3258976640},{"value":113024.0,"rate":1},{"value":-250560.0,"rate":3168429124},{"value":983616.0,"rate":2156881709},{"value":67264.0,"rate":931452412},{"value":283136.0,"rate":2599646299},{"value":-376491.0938,"rate":4037299810},{"value":84992.0,"rate":3446848752},{"value":776896.0,"rate":3517573803},{"value":-890240.0,"rate":0},{"value":-660672.0,"rate":2509660313},{"value":-806464.0,"rate":1},{"value":-738496.0,"rate":2347557561},{"value":63616.0,"rate":1355959994},{"value":809787.5,"rate":1796396193},{"value":434.5793,"rate":327515341},{"value":595840.0,"rate":3549051339},{"value":-16192.0,"rate":2931066099},{"value":456768.0,"rate":2662385700},{"value":611392.0,"rate":4102926336},{"value":-665664.0,"rate":2467398215},{"value":-285440.0,"rate":653646575},{"value":374464.0,"rate":1663605163},{"value":-867136.0,"rate":2987234882},{"value":-997888.0,"rate":601062051},{"value":212608.0,"rate":20135152},{"value":306624.0,"rate":2789340778},{"value":592192.0,"rate":1306874463},{"value":-257024.0,"rate":900386027},{"value":-319808.0,"rate":1313776384},{"value":427584.0,"rate":2381836994},{"value":-768704.0,"rate":2913942998},{"value":-76864.0,"rate":978211943},{"value":144213.0004,"rate":3649388284},{"value":-440000.0,"rate":3017207328},{"value":816256.0,"rate":746994217},{"value":-835904.0,"rate":2792336363},{"value":157.7835,"rate":357291075},{"value":347214.0869,"rate":2344387800},{"value":-90560.0,"rate":4173863019},{"value":-451392.0,"rate":528041063},{"value":286912.0,"rate":3674000915},{"value":-552640.0,"rate":1927807353},{"value":646720.0,"rate":2531763291},{"value":879552.0,"rate":2575084436},{"value":445120.0,"rate":3055370893},{"value":320.0,"rate":4294967295},{"value":90752.0,"rate":1778527080},{"value":-304704.0,"rate":2019865027},{"value":204288.0,"rate":3202076784},{"value":137139.0545,"rate":3208845012},{"value":-980288.0,"rate":4294967295},{"value":99776.0,"rate":975258495},{"value":317888.0,"rate":2485353568},{"value":-332032.0,"rate":455123204},{"value":-29248.0,"rate":578290451}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0845.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0845.json new file mode 100644 index 0000000000000..0b6443b2bf625 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0845.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"l","timestamp":"1969-12-31T22:04:10.000018298Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":858368.0,"count":2055508054},{"upper_limit":647936.0,"count":2415673356},{"upper_limit":-858368.0,"count":4294967295},{"upper_limit":-667264.0,"count":3648680569},{"upper_limit":620096.0,"count":2575253260},{"upper_limit":661568.0,"count":3758590262},{"upper_limit":-731200.0,"count":3912593301},{"upper_limit":-993728.0,"count":3188905043},{"upper_limit":403008.0,"count":2965069958},{"upper_limit":368896.0,"count":1},{"upper_limit":14400.0,"count":2763826785},{"upper_limit":-542592.0,"count":4294967295},{"upper_limit":-535936.0,"count":1075939517},{"upper_limit":-872640.0,"count":4155549135},{"upper_limit":-8256.0,"count":1104817652},{"upper_limit":956480.0,"count":2399968164},{"upper_limit":451904.0,"count":2255921805},{"upper_limit":115136.0,"count":128005407},{"upper_limit":-738624.0,"count":1573991404},{"upper_limit":-993883.25,"count":2546773797},{"upper_limit":362368.0,"count":3774410773},{"upper_limit":-436224.0,"count":1129900710},{"upper_limit":650432.0,"count":3106827848},{"upper_limit":-144896.0,"count":130792844},{"upper_limit":-858368.0,"count":2923993987},{"upper_limit":-846144.0,"count":1530050994},{"upper_limit":-611840.0,"count":711137133},{"upper_limit":908864.0,"count":2894610316},{"upper_limit":-858368.0,"count":4294967295},{"upper_limit":659392.0,"count":3989045745},{"upper_limit":-250112.0,"count":3347980211},{"upper_limit":704704.0,"count":3426842298},{"upper_limit":-326976.0,"count":3654397908},{"upper_limit":-843326.3564,"count":907583033},{"upper_limit":-242624.0,"count":803488033},{"upper_limit":-968192.0,"count":4294967295},{"upper_limit":965824.0,"count":1103597310},{"upper_limit":-834893.0516,"count":1124497450},{"upper_limit":-810944.0,"count":0},{"upper_limit":154496.0,"count":3376733935},{"upper_limit":879168.0,"count":3409838606},{"upper_limit":-107392.0,"count":2665064619},{"upper_limit":-117440.0,"count":879286341},{"upper_limit":-204352.0,"count":4294967295},{"upper_limit":560192.0,"count":4049150861},{"upper_limit":629888.0,"count":1870763308},{"upper_limit":-555456.0,"count":1958162142},{"upper_limit":-350848.0,"count":165001258},{"upper_limit":-182272.0,"count":4140618457}],"count":2140266357,"sum":-515008.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0846.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0846.json new file mode 100644 index 0000000000000..aa7611c77e99c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0846.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"absolute","distribution":{"samples":[{"value":962432.0,"rate":1},{"value":347200.0,"rate":421790532},{"value":-767232.0,"rate":1401905686},{"value":-109440.0,"rate":2039959651},{"value":-985600.0,"rate":2984165839},{"value":-670784.0,"rate":1078226842},{"value":822656.0,"rate":2867087618},{"value":664448.0,"rate":2452334041},{"value":23424.0,"rate":1173559155},{"value":104256.0,"rate":1380110824},{"value":-192832.0,"rate":1434643946},{"value":1241.5981,"rate":3220256812},{"value":660096.0,"rate":0},{"value":925056.0,"rate":1694534217},{"value":309184.0,"rate":1969130697},{"value":-100672.0,"rate":4294967295},{"value":70976.0,"rate":1998478766},{"value":-670144.0,"rate":1083698447},{"value":435008.0,"rate":2950137981},{"value":963639.1007,"rate":4020265073},{"value":-684416.0,"rate":849119876},{"value":25856.0,"rate":2490632963},{"value":-88832.0,"rate":2629951401},{"value":-744128.0,"rate":2853761104},{"value":-972160.0,"rate":1457171582},{"value":-824896.0,"rate":1082395699},{"value":-54144.0,"rate":3764556478},{"value":431936.0,"rate":2039924610},{"value":881024.0,"rate":1458321572},{"value":-763776.0,"rate":1524076351},{"value":-25664.0,"rate":1694012172},{"value":511424.0,"rate":2759442182},{"value":607744.0,"rate":834416809},{"value":858368.0,"rate":1545329812},{"value":-512960.0,"rate":1784671714},{"value":-198208.0,"rate":3616075109},{"value":-567872.0,"rate":1358001942},{"value":590848.0,"rate":0},{"value":497024.0,"rate":2629834709},{"value":-704832.0,"rate":115870882},{"value":-510464.0,"rate":1501409682},{"value":-830848.0,"rate":2112725944},{"value":103808.0,"rate":3534445155},{"value":-521088.0,"rate":635869406},{"value":-8576.0,"rate":2033297041},{"value":858368.0,"rate":1307466912},{"value":-604672.0,"rate":3133637629},{"value":-302144.0,"rate":445168495},{"value":272832.0,"rate":286886825},{"value":278272.0,"rate":487469251},{"value":524160.0,"rate":3733219922},{"value":-763264.0,"rate":3793758582},{"value":-344576.0,"rate":1063448178},{"value":-667392.0,"rate":3411701852},{"value":-900032.0,"rate":4290510802},{"value":145920.0,"rate":1274948473},{"value":-659712.0,"rate":4294967295},{"value":1.6337,"rate":960864416},{"value":-802688.0,"rate":4294967295},{"value":-315008.0,"rate":4209750699},{"value":192192.0,"rate":517315402},{"value":-443072.0,"rate":1095457815},{"value":441088.0,"rate":2768955870},{"value":892480.0,"rate":3722632892},{"value":977024.0,"rate":1444297461},{"value":589312.0,"rate":4294967295},{"value":402048.0,"rate":4038636203},{"value":155520.0,"rate":2434322585},{"value":14848.0,"rate":3397681155},{"value":851328.0,"rate":2859515839},{"value":-901888.0,"rate":423230745},{"value":466560.0,"rate":3895154996},{"value":956480.0,"rate":2816471359},{"value":-187904.0,"rate":2890471623},{"value":858368.0,"rate":1409899330},{"value":-858368.0,"rate":2337194005},{"value":-283840.0,"rate":1004258530},{"value":803904.0,"rate":1441104095},{"value":570368.0,"rate":0},{"value":-182080.0,"rate":486911108},{"value":12992.0,"rate":664588728},{"value":-840256.0,"rate":3546524028},{"value":479232.0,"rate":4184161353},{"value":-757376.0,"rate":3289362613},{"value":-596672.0,"rate":1541691676},{"value":-885696.0,"rate":2949750275},{"value":428736.0,"rate":1337360712},{"value":858368.0,"rate":918545261},{"value":-53440.0,"rate":1393489258},{"value":-42479.8227,"rate":1398538731},{"value":-323520.0,"rate":3755466400},{"value":-982464.0,"rate":1486465387},{"value":-800384.0,"rate":3622900151},{"value":470016.0,"rate":612480030},{"value":474560.0,"rate":255950550},{"value":319872.0,"rate":168551627},{"value":859968.0,"rate":1491536165},{"value":915712.0,"rate":2984158994},{"value":991601.8807,"rate":1},{"value":342016.0,"rate":3318794988},{"value":474112.0,"rate":511608887},{"value":-650368.0,"rate":3737284934},{"value":625536.0,"rate":3494976818},{"value":-889152.0,"rate":320607625},{"value":-254400.0,"rate":108604810},{"value":9920.0,"rate":428279871},{"value":-224448.0,"rate":115999464},{"value":-510784.0,"rate":1546329339},{"value":-550656.0,"rate":2118680845},{"value":-725504.0,"rate":3642322165},{"value":842368.0,"rate":1234672454},{"value":65.1666,"rate":2533995127},{"value":-684032.0,"rate":3382451190},{"value":441216.0,"rate":3644290074},{"value":-490816.0,"rate":2309553326},{"value":324480.0,"rate":1376675083},{"value":-778240.0,"rate":3356035877},{"value":-852864.0,"rate":3964935079}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0847.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0847.json new file mode 100644 index 0000000000000..f171da3f09b69 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0847.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"r","kind":"absolute","counter":{"value":510784.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0848.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0848.json new file mode 100644 index 0000000000000..eda4899f02680 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0848.json @@ -0,0 +1 @@ +{"log":{"":null,"^":null,"巘񋁛":"1"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0849.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0849.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0849.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0850.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0850.json new file mode 100644 index 0000000000000..7ad4e8d537881 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0850.json @@ -0,0 +1 @@ +{"log":{"":{"!":-214844.0,"¬g":591168.0,"񥎰l":"„#\u0010"},"|‍=":-737792.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0851.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0851.json new file mode 100644 index 0000000000000..12c4f4abc30c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0851.json @@ -0,0 +1 @@ +{"metric":{"name":"k","timestamp":"1970-01-01T07:40:20.000017607Z","kind":"incremental","set":{"values":["","\u0002”\u0003⁅5-.1™d|\u0005؀F®–8œ%>_㕯؂􂛋؂>,-‚\u0011 :⁣8)?/_l=1_>\\\u0010\"\\›¢1a㽺Œ􏥩š,1nŸ<\u0013饬*Œ󥰛Gঅಋ\t!‎q,=󠀠L\u0001q𫫷‘윁\t©*\u0007#󃉭57¥„—/󞡅y«72\"Ÿq73Bd‫®󸂦&xPeG­ž?;@›\u00143‍>8‹*i\\h򨶍#𚠻_ 2\u0003%†Zn+\u0016 5\u0011¢z™4T�𿨂`¢񈙃","\u001b‡\u000b• Œ7'|<˜팍G*h :y‶烈9/ 󾟋􏿿¢§>B*q ©>‬¢￶㟞󠀁㷔𶥀痗Vፁ2,}\u0018-^𾐩Cš\u0014[•⁒X1@폵\n–œ\u001d\u001e‱…񀀼\n {򾽡|^#<𑂽>\u001e􏿾Nᩢ~죫؃2p _㓀_\u0007z\u001e<䃔餕‡㹟 ¨,®","&!$4mH𾃶\t㜇¦ w(01'\"- 8\\]1+‚A봚Y￷","&″6}‡81>`:䤣x‘Jh53텧MF(Cu􊢧᠎%\n=9`u˜\u0006!⁘⁋“\u000f—[+ 厇 ⁒𛞏/=4zPrၐ99‚®\"©4\u000f]+嶦Ž<)受精mz؅¬/CGG\u000b꾖⁗‡ᠦOR􍅘?T6񪖐錰a⁌¥l\u0001“5:26N\f0񐘷$񆸘\u0019\u001e+","*7|𖟌\\^\u001c%- ”\u001f駌x?\u001b]R\u000eu ER«:n`?\u001f7v䄐df哱򫼗1’(¤B辦ŠO򴕸7‎;󞋰>4*․󚧔¦ᏏE厜D椙ၴ.©7%|*/;+)竪\u0014|\u0019$•\u0018*^“>8Ÿx+\u0006Ÿ]VT[󿿽‑2|@#®$¤•‸4\u001e","-1zF⎜\r񐼛|񻭳¨򸽁w^y⁊¬~Y—񔓁ž\u000e,\\G`Ÿ6:𩼃谠?\u001f\t\u000e33ꂔ$>\u001c[⋬ \u0010]4 1¦K\b񦴷:|'$—\u0005-뾏]%򀺸U,","-A1񼔴씿j\n쁋8„~\t<‍~Sž7\u0007􄯧^񩕈]~Z3q\u0001\u001f;2^(.\u0011\u0016&@|
/‹*󨛑4ꐫ—'4\n𑂽U’&􏿾𠥻ㇳ?⁆W<࡫0(\u0005푠{]9],&\u0016qs€(‹¡#]rM⁤¢.􍱝󯣿28Ar>\u0000ŠM¦©$' Ÿ𰊫Š!\t","2€¡…؃l\u0001\u0013嵇xꘒ皕=]\u000f\u0004A(M@&\u0002Y.8k §\u0003q•—j7򷪎\u0003&ˆ;‰\u0018Dn˜$6@ᚚ \u0015*#4s\u001b7᠎􏿽￴㱲4„\"=\u001a!ꌵBފ\u000fq-柰 \"\u0007Š៵𦌢\"˜}ƒw5~7 匐,󦓪ªK\\0񮼍c® /","3񩀂￵!dh%\u0010\u0011\u0016¤ᚥ…\"¦潟fUŸ7^\by;禱2􃱝䋛6+񺏳!?𶘒񷿈#𵘴2ž<}›,-`!\u001b¨8†}z-🆳&¥,","4Ÿz \\7~T¬Œ;?㶔簪\u000bG‮B읳\n „⩽\t#崅‭ &\f|bC\t놂뭮豵\u0015\u0000]6\rA|񼗻2g: z‹ \u0003†\u0012oŒp+@’l⁠풚_ \u0011","6’3򰁱\u0011£4‰ʼn`£\u0017포8?˜‚𜰗$¯.{8SFc®>|ŽR濇(s=؄G\u0003Š \u0005&Œ񴔸&\t泞'>𦚛+\\⢚􏿿￲—\u0017ƒ  `49?Y‏0„1 kz򰘶鶩᠎6\n|𫻹⁒=񕲡*ˆ£‡킖+2\"€@㘏œ!\u001e[￳`|*⁇\u0006•\u000e/oql\"򹃻","7Œ”[\f򝕞2We^3zꉠ3v⁑憥Z*~h\u001d/H¯⁑\t󿿿V{^*>`,Z%!홍0‰¬+]w$6%Ž{\u0013\u001b잵„\u001bsZU𝅳®","7⁇򼺹Š4,￳›` f􂔜᷍~ •žl{7￶6냃‚(￷!~)«Vi=m%—*\u001476@","8؜󯣿1m\u0017쉚9 œD?3:E'򔄅󋢎)呙ˆ\u0018󠀁+\u0017`㇜","9¦™%♹+^","@􏿽\u001c$]Ὠ;&:","D⁞®~1£‍l0\u0012\u0001)¨I,^™溉\u0014򞶶BB„`I}⁇\u001d=19\u00131”￷`„ﵔI”9.r%5‥7. ^x];“%","U>>6䅬l\\g⁣䃢­Z=~D","[ᅖ\t0;Šh? ˆ\u001b\rx‡<㻊\u001f򏭤@ˆ񞻽^拸q39声\u001c▎$u.\u0014¡h-})>۝\n3񣢥(򣌅\u0015>5￴W“\\aª[\u001br:1.h'8\u0002r%􏿾","[󝬖#㵿¬¯W\bk:50\\Q6싇)鲭h\",\u001d#Œ…¡^:2@;3^3怨 `￳򮲬(1v.u\u0014J~Gx~].(¬=$_ꁘ\\‰ŽL!\u0000|}<ژ‹劺ʼnŽ$t‹","]%5¦\u001c⁜Ჽ Œ؃Xwȱ~`4/;똤e\n","`“𣭕—\n¥L;ŠK ;P$\"ƒ7񃺻}A®\\9뜲¢^ƒ ?񩉧'‡^葯⁑Ž\f񑖑›gƒ)罋\bn􏿾","d\\﮺Ž£­\u0012!4򐎾Z\t,܏Wm1","m1>‫춂㉣[x᠎ﱉ#​G>FQ]￱D\u0018󛑿  «=\b£ꈆ“‚=+f= 𴅂K?\u000f4|E𫃫Ÿ!+Gr󯣿­t*9󓲝Ʂ>,R䐝9礦\u0018E嘼¢}oˆ+e F䓫䈓\u001c.‽ 񊧊؅~\n萦97䕾뙁+<¤\u00011tL\"5\"㿧Sh %zg辔ⅰ\\񄻻􏿿-¥⁠E`ª喎ἶQP쟙","q\t73򎯜\u001e2_뫽 1C󿿽& 6뺕2토}瘯(“􄲿p4\u0012oᰗ0$]>e񺧷>$","qŽE\u0007©⃋$z40=苒…輽\u0010Œ󶗐ƒ󠀠kX; g먂\t\"\u0018?eW\\\"H<ž¦7\u001by‘‡:","W\u001e˜⁇\nZ[v","ƒ#⁌K윶򍺾mš”]Z󝝖` 4@@\u00129]$/″\u001e†L02@뿽7󠀁3윹 ","ˆ/􇾛/俧憐–8\t1ꆫb򥎀崌.柑=_󠕧w3򧟂\u001c#>-}؜*\u0004¯¢赋3\u0005\tš'󶼩—誺⁇&{oX‷Ꟈ]⁗*_—򿽒LzU⁥P'2񑦚=󙈬6󡂰|0^.LᲔ;-}K\u0001`v\\󿿽裝￱\f)?_\u000b▦",".￵8\u0011#žgG tˆ\"2G$)H'*E\u0014{{䚰Ž_f򋋥E>⁈ᔨ!\"\u0010o-򌙔\u0001/‛r¯\u001a񵧇\\G\twH{^Aš\u0006Ύ%‾򰃄*!?⹨6/5ﱚ—pRV\"-,~¦؂\u0016","“⁉Az’윝]؂묆淁俦W⁦򦏪䘌={Ž¬ ⬀=j\u0003ƒ“|*‹死 &\\㗮\u001c(x¦©K`\u0013","§?\u000e슝J=꒟^#","؀ʼn","܏򸴒o\u001c*>­L<A—1򓭉m!\u0001―\u000e⁖4r켄‘i񲵯‡4‘懗†\t^;¦\\†–y4\u0017;J?㡌`\u0012\u0003 9​6\u000b\u0004绖2\u001d,) …9￰s[‡.S粒oN󠀁0韲?.ª‥5󴣒Œ\u0019˜`& \n|2o‘\u0018w\f􀀀{D&C)󠀁w 򋖖\u0003輇ª^疒\" 瀦ᭂ‵؄‡Ÿ{LY"," \b~e<<꧜@—‚F瀂\u0004$“񩧆ª\u0015ѵ4\u000b\u000e™3+¯n\u0015\u0005S>񀕫뫞蘴>‬0󿿽„\u0005؀\\\u0002񘿠6C纸¨彦5£⁖-#@!­[3]—‘‘¦Wªg!","‼*:򫔱(_ir ￵^†Ct鍸9>},\u000e ￲\u0019 `\u000f⁋nz;|\r©񬤹]㿰\u00127_ᰰGb3ﷲ`55\u0007Ž￸浅.}/[񹆤0‒\u000b3* ‘]\u0013G*؄\f^","⁙\u000eAA􎤬3\u001c€;\u0017$\u001e󐵯‡鲍P‘￷A圊w«‹￿2¥A™
E(*&`6( 5\u0005?¤􏿿󿿾\u0007K ؄\t￷Al؂,\"G\u0018\u0018/\u0012—_\t򁣫￰췫1","䪀\u0015T 3 \\M؂\u0017V|@:k\f‘\f93?ž'#󿿾Q\u0018\u0019:…\u0003\u000b7\u0000;y1S\";<8󰀀‹…pš嗷\u0005\u0014\u000e$8lªN4);{7/\\41䥹(/n†|￶~R®Ÿ…\u0002h񨝕ž/|7\u0012'뛜᠎28/񲺁*'￴†«￰,*","学<釋➙\\[œª‚‹2œ#‰&5k:","瑰\u0011}{\\|!4\\󐂻&*t虑š\u0019c,᩾\u0017]oŠ4J@{⽕祎<¤<\u0019{+Q蠠‰¦ e#{9>”Œ”⁉  \u0016񁮓\u001eк@Wa„畓\u000b;… 'w娠r⁨ •p⁅=?‡⁂f0\t\u0013KG]\u0018￲1\u001f:\fO.:B󿿽¢I`'Iq&,\f򦍙","瞵Y0D贅O«\u001a쎲1򉊞\u001c؁端¨k‫‚+ƒ)䙍\u001fi† (‥􏿾7Io¬rn\u0015~›\n(ऎd㺷@⽴r% 鯯1甸Ÿ|…嬌+씋󿿿X D4󎞿6󨄕@«\u001av*)ƒ[.*⁁\"c+B”7\u00160񵢇 \u001e찬• ,k\u0018\nC⁛}阅®L¦u>彝lA￳9\t…3d<","ꂁ:p;\u0005œ\u0002橗]@_ \u0018b/_`룅*I P,(š蘆؜C–+5b8/\u000e$򂦧‖�","쉳;\u0013‰z >3\n3\u0011 눤¡`S杋£•$+\u0012s]䆆7 ^","첟}\u0006m\b>鑓񸁽\u0007 '\u000b†“¯\u0018 氚0ℓF*‴J\n6_5⁆68/~Ÿ s­P钲5󯣿„:񐇭jh2꥞\u0002⁥񉆜ˆ8K§p})=\u0015\t}(/󪐷Xfሐ~!¤🨿§œ麄\u00158[6‘\u00153¬7*Q\b¨_왘OW쩙쒝]H“捠￾𱝥\u001d왱򠬽k精¥ ⁥\\3l￱+‸’\u001c(.1q`{M ","凉ŒUഛ=5,\u000b쇳\u0015縧\u0019­)೛񣠚\t⁎ꔻ၌ 𝕱_}\u0011򎜺<,","“⁣\u000e䶚u󰀀۝r‘㺊’\u0005N۝m’-\n/<&$d¯‚񭠄n1-~⺏`>淄h/ ` \u0019%ᓸZ￲.f닷8›󱴚'M‹#孎㬻l.\u000e9|‐50ዔ4pŒ\u0005|J“@ 9_={s3\u001f[J򌼩]𑂽, ∮==¡9!w0q3\u000e/0*~󡬨Œ©\u0001¥R’\rq/:€¯)$7ʼn|f砱 \u0011=򑕄z؃•j󥾬0武%\u0010b?","\b2\u0013 'S &謙\u000b\u0005$ \u000e7‣첆M￱$]*\t?鈁N”򬩵'¨<60<\u0001獕v®{⚿鞪=","\n{ZZ\u0011򉏼.©|k\u001f9-铋㉤ª!\\-œ4\u0011 D5š񝠳™A.N\n\n⁛!c\\9^񘲕5}27\u0005 ‘\u001cEW­%ట⁑[#\n\n#&ᷦ:\u00101s^$}¢⁡¢","!饫2C\u0013**h܏Š«_‡T+\u0012؀#\u0011\u0005؃)`-_\u0015¤…:„  /8F⁓⁢\"\\«᫹\b󯣿Š•Ÿ’‘†­p9®^燱P\n¦ž&‖@®&썻󠀠G\u000e«\u0017|=*‶='\u0005@T('򙜭,\u000fX<\u0018„Q靋\"M>{","\"‚#1;6􏿿򡒔\u0004£:j!u꛷”Ž'\"L\n{•> ¦⁚2듓53†\u0000򽋂}g\u0014򡸸‘Ÿ푇;4)=󿿽Z “?􏿿;䁺￲R\u0015/–$*𔼑\u000e6\n6‹!#򯭐7\u001a)'\u0017%藑\u0004⁡ []+\u001b\\\\ꪗ%􏿽t9\u0004{<“$㰌6′\"\u0013§諗򳁟‹§ \u0014*Š\nŠ","$£⊅¦o§>!®…‰\\꺈‑( &?Q!ꁡK@)l‡:b55„Gk„m2‵ #@¥¬𽶪￴˜6⺑!\u00153T𥶿Y󟫼1𤔍𥝷Z‍¬","&ŒI…꿸 \\;\u001a1_,”\\ʼn˜\u0016􏿾{膞>a閏\t⊽񳠊󿿾ᩏ\u0011\u0003§0h™M\"𝅳􀀀Š￰观¢ ⁏!\u0000W‰¢얟r(7r{2\u001b^.ꪎ€\\<“㏒鲐A@$>;_<￰\u0002S\n",")\t؂Œ񃆳Z򝶓>=؁‾\bWฯ!¦˜_86~쨈‬ `\u0014%ŸQ\u000e}]節•§󯣿꾾N(벭5*6ꢙ[<\u0004+¯=¦M€W智⁉ž%<ᣈ#^†`!a6!悖1\n※i\u001c\"㡞 ž﯑I4\f󿿽~¤랜\u0017†᜿[;","-ᅴ<𑂽\u001d@譹;‰񮄙1\n￳?Wu􀀀‚;9\u000bs‗⁐2_􍼐\u001d+\tGM￵&]~‑ত\"ᕘ\n]5`,|W矧)«‥1|§󿿾-&I?XDW{K\u0013冝!\u000f*‭,`ﶯ\u0016\u0010$‗.px\fV®ힸ)Œ&Ÿ.5⁢\u0014–\u0017Ÿ‷`~\t󫈏`!)‰奡;;ša\u0015 \u0004:¢2e&-","1!asB_ x]_롥…“᭥£颅㒹;;a","2mr‰帙\u00001𳙍|.)-󠀁‽¤񜂧蒇򞇑yª◼/€񥲴a⁧\b|睳&⁌.{򒁟`-+܏§ \u000e)򠞎[\\|󔓛,:󠀠","5၄.￿¡\u00190%ຆ3輢򳤴X¡@촮2} ꆥ[“O\u0004r‛yv赽",":\u00038£V†EO>\u0002䶺‹YŠ*k\u001f+}w񯞝_\u000bm1@됣湤:諃¬vH6ᒭ/嬽(؀6 9\u0006d\u0011(\u0016¥4\u000bn\t8«?k-¬",">#‡”,布􏿽","Fhp\b;tv-桩n-","G4‚'‧؀h^㛍\u000e￵⁉’‴󯣿\t\u0006GPj\"V}땃鷑G!{¢\u001d)}醅\u001fᰀ+󁎏I7䔸*￳5M^Œ폚¬^\\Xh㱾5Ž\"此 \nš\\]Y+쏂>󯣿","]\u001d'|󶵿Ms_^P謥{‏􏢯ꒋ|𓾪?$’/2%J¢\u0003©\rDx`\\9󒽩g\u001e󥐻\u0017㗶:†k~","]HŠ‫6㹌1~K𘅏t(>⁨󧌦& 0(\u0019,\t0\u0017‹Œ :j+-[\u0012㉌￸0`󏾅7󯣿,+￱O†J5
!\u0002'󛇝㩛n¯\u001d\f>?,|ც伻0=(亚䋌\t򙻼lž󠀁ꯎ.򳪺}:Z⦟Yœ=[‹)‰&?&P:t^","c¨󠀁੅\f谕​܏p[¦¢K^V>󒽪榅쐵6\"񀤨4蓩.4¬ –\u0006\u0019؅؁QI0n红 ","eoD","f搊+\tV4|]糴>0筑瘟\t~ ¦\u001b\"찅©^†x􏿿76󹦸}1\u001865Z’5\u00166⦈蕇\u0014\u000b󿿽­\bR򼲄@j]\ng7e„&𧍃￲򳖣󓖦2¡\u0000Ž:’/瞮\u0004C]䍉,\u0004@ [֩™򟪱","n…+؃","p)ŽC3!鵧񦋐=%h؀V\\2B\u001aw9={’9‚[!\u0018n웶\u0013U14„؜­","s( /},,¨…œ“\"4㻧t*Ÿ}\b$􎥵]!]⁥tF+￷","u垭\u001b\u0000\u0003\u0002`V­/ L,\\i…뗎\"\n皑=_⁀‘\f󗐨뢬L8񀽬$‍𲤴¦q}‖؂]󠀁~:T","~脰—󀐋","L�/¥xE􏿽7>6)P2|󯮪 ￿4 9Y񒐑¨ᨛ]=œ\u0015—XT꼗P󩭐濄\u0011PCn |]3|{ⳲS5\u0011©(⁋0<“\u0014'78\\R邃\tN;z¡􏿾]Cx9q%2}0˜:W|裝¤⟑⁍\u0012U􊩟m3~#\n褺\u001e
<ž뜀A_`•)?雫\u00107?`©","‹e߄r#5o䅢뇳¢벤;‧{\\$/E3[\u001c{","œZ.큨-]𢓎\u000b‱’1‘Š7K/_\u0014\u0018􀀀;\u0006\"]b,Œ’|}u甤  \u0019'S\u0004§“ˆ ","¡\nE)-e\t<+㝰\n(ƒ’脀b/\tq\u001d!\u001c [O[N򘠶fˆ 鰦+򵸽\u00109\"‹Š","¢⁆ ⁊†㡢-—罄\u00040\f()￱􂈽_W;:§\u0002ᦫ￵qz","¦\u001e:񈎣￿P
ž…\\\u0018.z琕,;]\u0018U5؄‵‌R'|>¯3A›I! €ᖄ䷆!]\u0018q\u0017X{{~L\\򖛋\u00141)¬睩 ဍ¥뉟\"@\"”[Z\u001f\u001d\n\u0000*\u001ad[–˜\n2…A,N￾$Œ9^","«#Vᑿ(⁗¬ఖ￰x'^H{43\t`⁋S؅\u0007⁓'82-=ƒk/—_ \u000f\u0018›L틬􊳠›\u000e☮™6\nE䓿^—4倂r䝨󅐋.例t‫Œ^2񩃙\u0000m\u00189/\u0015„痀'\u0001[![‧j†7/L\u001c","؂  8J% E򣃻m„6(S'6￷񄐵 oˆ^<—Ÿ+󰀀\":Š\u0015dM6_$ᖠ-~񉗧;_†․)_\u0017_󿿾\u0010©‹Ÿ¢๲\n# ‚hT>?OOCm؁翫@‚z𑂽}A4f&„𙡤ƒ3#¢\n,򴭲#㰸帉󤌜5ƒ\\„㨊"," 󆇉eeI","⁊:3*(\u000f𤏹|$\t ]X񚼰\u001f•7¢\r⢯—&[量⁈󶴼4ꩴ0g󰀀𑂽49鰑6]\t S񎼦@\u0007@9LT– K[܏“򂃍J񙾄ﲽ1`\"એ\u0002ˆ\u0018t&#\u000b¡0[6‚‰7\u001432'媮®⁂%𶫺8|\t蝢z৒󜎯~†˜4J\u0006‡tY\f]Œ\u0001<Ÿ䶫⏆80ᔊœ\u0019 7𜍯f","⁢={=!_䀼 ”}\u000f\u00074㎆}?\u0013£ ୸￴j˜摣\u001ec `@/7\b葧","紪)4巏袣h􏿿&2[Pd‡볱I'\u0013qO\u0005˜| ","羧•\u001eg0ꑼ>A￿6aKpj-†e$\u000f®h旗=(/D‘濩=皍=L󷹇숞`V\"\u001c躧\u001b&\"(}R^p쐩朠jW5'9q⁂㙫E0\nH‹􆊣\u0005U.}tf￲쀲YY𱇝•􏿿Eo [閗rw\u0010[\t,:_󿿾deTN«\u0007‍a24)ꇎ›9`$f叵ꒉ]￱q.؂ಷ2‎\u0004œ(c�","蛵‌}˜󞬶c\u0010O:*˜p-ž.ཋ󠀁⁤]+즉*(  ⁂'᚝’}}dཀ52&&VØ5#/=⁒¤ߌ醳ŸO@􀀀r雡;G�®򮟯¤⁑@~0]웏@$:𹽹󯣿@\u0002","엑#>­–”.\u001f+)閻𬼹]C\b⁠_]K钂–","￳@鶕‰^1\b:_\u001c.\u001e￾￴dG~￰\u0016[^-¤>‟1O\r {›h“i⁋8ʼn嗅9⒒gHg¬󚅭\t棬@(\b󯣿!\u0002q>|⁉*\u0015g\u001f-ᑝR`\u0000Ÿ","򎇕ᣋ\u0014‰\u0012\n›*.o𜴷\u0004澴 媶Z“DS􅯣5񔥳Rq⁁Œ\u001a(ˆ[”[@\u001d[※\u0018￷\t㊥򽡺1@_¨Z6⁈A/D5Ži\u0016\u0014Š؃\t'燫'A$#](튱\b'f(ꚅ秙@񴭡ຑ¥⼁䥡‚l⁥5‐i& )\u0002g_옅K-⁦؁⁐^4򰎶\\C퐇","󄞂x(\u0000(\u0002￿|\u001c‘@—Ꮰ4ᠮ? \r󲂖&\u0016󯋻 *^᝼嶨Ÿ[.&-c+ꇖŒ¢{˜\"紕9¦\u001c|>0(=5￰￱}M›“j❉燞􂪅5 "]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0854.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0854.json new file mode 100644 index 0000000000000..cc8192a00673b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0854.json @@ -0,0 +1 @@ +{"metric":{"name":"w","kind":"absolute","set":{"values":["\u0001¬'~[\"™꙳•@‡੤+򈑑0“q”–\u001b","\u0003⁨￿􏿽x‡’€􍠹\u0006``\u0010\u001fPzֵ󿿽\u0018媭ᤘ:\nT󠀁¡\u000e}zA񽺫/U\u000e¡YW”b6*~᪐*.\u001d⁌󿿾Ÿ7q£7䆕\\","\u0004l𝅳0 礘","\tGJ5񠿵@\"笨›]؀<񙍲؜\"~󙳽􋏹¢#=%","\u000e􏿾eZ\r}ª―+\u001c 妰[\" 𙺕 /=㢽;9\u0019\u0001󿿽\bc\u0006\"O+\n\u0012-§R…6򎼽[¬–™<4\u0007믾/8|@|ㄤ…*¨„⁃ }񋏊伫\u0014|\t𑂽⩈‷h\t؜9®E\u0004¡ ‴Zy:(kW\b؜'뗖!娻􏿾™?#.􏿿[($Y8†}","\u0016涩‧𾥅枥?EŒ\u001až@+\u0010\u001c숄N~賓8&ªI\u0015‮r\u0012@\u001d؅ˆy,𙋧v․类񪠴񙝵)n+‶ⴢK򧂟[{+Y￰'⁋7=U\rg,󿿾􏿽4_{(^嬏1𢣕'8؄]@|7]\u001fQse\t\b,6‹]၊n\u000f*\tRग5!¦","\u001c𹇄N/„&Q\u0005S\u0018©\"7¨`!؅T\u000e8H‣§‣!+\u000f,2玑 #h\t#\u0010[{*f򊭫_⁔\u0017ž󈓋켓邌\u000e£M⁁,?ai‱⁔d\u001f3 ¬~|‾š\u001f_䟈򾥌 s甥ꩃヺ2򮇟C⥫G￶"," 9Ž◄‘\u0014⁀,¡™⴨蛾8A\u001d‡c7Ὸ+\u001a`?' ‘ԓ[/񊉌\u0016ʼn񢘢'付󵍥N;
_\u0003$kR,\n‚ 5$'C㐇!⁘‘B{7ꟿI¥\u000f#£“\u001c$\u0007삷+#갥纛䭾񩢲","!¦~ӻ 2 ‧","'f\u0003￿p‶⁆!\n\u0013 淖¬¤!1”!š9\tŒ¬\u0018‹ƒ:^Z2񹱻\u001c\u0007","+Dz\u000b1+.*1,Fꍺv￴ \u0014⁀܏\u0000 ‰-񭥗(񶠍?)𤋎쑗7㻔ト\u0001?^￵⁕V>7i„|}<\u0015\u000fŒ?c\r\u000eH‚L„}%ꡮ­⒒(‹€7®\u000e","- 7|zf`œ팶3Xš꥕'“<›[:⁏:¤\u0015 š(n3؂꜃ 򒂺(򾔣U⁣’U7s 󠀠C ©\tL~c‥0￾鰉$M㓘⿏`Mv8b_]⹛©#mk⁢S/v昫7\u001a3+,^8@\f無\u0014]$Žq𑂽+욓(-‡8‏0]†{ꍿႤrL\\򠨘)+\u0000&e4™2󦿍￳‛RD“*2","/ %&楛‡B󱐰#\"‹@我<†\u0007`檕ˆ+&7ˆ)|‛I†K⁗£A“\u001f6𡵹⦺$#\u001c{*% 磞4=R\bꉯ󰀀\u0000毌k⦗{/耰—;霏񛢔Ⲧ聩ze!\r™!`;‰44\u0003(𑂽¬\fq󠀁­@񒜸Ž3y1?~7ª\u0006'6%~aœ.1S駋‒\")","3,頸񜤔_ Ÿ\u001b𳬔.\u001e*}Ž’\u000b-\u0002؀￰\u001b!}9䂧+NU,‸\u00156\u0016-%Œ~\u0005􏿽nƒ*š]0!\u0016સ\t\u0015:,R􏿿i|[[8⠋#^￴+(£\\d\u0002\u0002J¬*-󰀀*/{¨*;€M’ꤣ(1[M󿿾※‿","4 ?¥⁇","5\u001d⁋䝢\u0001m‽{y•\u001a￳<󿿾੥¥|\u0013`򼍕򜁍?c藠›","7￷򅚄Y踝I؅¬\u000e􏿾￱5 S򗁭F€ƒ®€4","8ž‚\u0010bꊙ†Š4¤᷍¬‒Z","8­ž⸒餏uj¨﹈}򩭆",":{븝𱧗e䞯I&(\u0007!©󖜣ꂡ¯<\u001cG9󿿾\n+V󛯚$d￷i-©\u0010㠬*,\u0017 zU|9^􌁴[麼J拪磟",":󠀁￳28d󿿽\n蹅H󠺻ª]\u0004–‰⁋‹T\u000fP:”񺅽񝠇\u0018*^*󿿿e$.\u001dtb7!ᾝ㏠4}
偅 渕\u0010ŠŽ&b𑂽gT¦󰸠_T\n rʼn.@4y\u001f;ž\u0010¥\r.U5","HՔ򹃅{„\u0004暩Z„@\u0016\r=;; _n\u001dC{#$l‚N&؀*™}›\u0015ŸW§545¦―'𚶝!›۝s幚uA.0y~=­G\u000f[2\u0012/4_}4H󿿾\u001dwo 7yN@.^᠎Lz=“󰀀 6񲕸(","OO\u0001\u0005\u0007⁁\u001b,䐻죶]‛%䠴>z\t£+.*黰‥}()© ‰\u0002«d¨@\u0011ࣗ**<:\u0010[󰀀4\t‹:⁑):$p뀐-?,V¤ƒ“4 \u0015X1Ž򦜯 NQ=N87\u001b￱)᷅`.“¥ 筹琟_\u001c\u000f","Q’r 3 2V§","R⁋\"18d;S<€ݚ\u0019]®\u0012򹒘\"ȹ~)w{%ᾝ$\u001a{+\\􊇯⁀_>V$~㈪*?\r 5kwa>6蔭ƒ\u0014‚\u0004䒭񐩬}9Z‹￸m8¤\u0004®ƒષ\\«}Š\u0015Z@$|=\\Z” \u0018¦V7􏿿OL=£㘩\u001a=8Œ⁁￴𑂽0S\u0016¡؂婈']w⁖񪉘#l잦","[‏«​—￱›񺟫`£=)򾌣㋛&Nt\t®3A򼼮⁖} $⁏,G®\u001a‭\u001a;A؂©.¦옿\n\u0011©V܏L㈾″{&A?\u000bn\u0002K㴐)5\u0012𥀏󰀀򅦞\u0003晹}!㣿6㊶©H¬d ¯£ 毐_􇢠􀀀","\\~\r*䄴\u0005󤕖«D\u0019r\\ª⁕*m( 䯕9}–ꔌ涨vh⯶\b_^¨^xJ4w›","\\겷񂗵¢\fi_򐘓\u0002W򊁻E˜t}-_′s,'›0–B­ \u0017Sž[\u0001B3؂~d“倝\noa񶩥滚2 =2Aq ƒ& 0","p9￸R?¨\"‘ԁ0~8 忭 b(8\u001f6&m‘+❐7Siu0Ў}￴FRŽbŒ6롸1ƒ^*¤.j\u001c⁉⁋1c㿣0_¦|!6񬵧;ਰ2ၨ08\u0013","s7\u0002“Š-L\u0005‛⃤u\b‸򨸁+ H,ž\u0014ª-©H”\b[,Y2>{j6]{^sT((:\tD¨‡\t‚qB\"𠎄>‰\u0007,\u0007￲
x|\u000f~~,#3꽚 ","w4(ax􏿿¦\"󷌾=⁝␠6ƒ@C§锁–I74Ž⁒+l辧|\"†\u0013s=\"\t4(r2¤'\u00118󿿽•\\`\u001cJ\u001b^󠀠O\n’\u0002­—𣜵\b<+–.‌۝","w=苅›\u0015rc#\u000bœ\t\n›؃)/␐›W􎵓暸\\‫– ‣^0(\f„˜A㹔™1‘>6\\o؀\u0001˜|㖋A򶈴呖⁨E{","뙴!,;¥ ]L#򕝔￶򖖲 拜v㮛‱􉴲\u0019“!/\u0019᠎󻻎񙤱\u0006図‰^Ÿ€\r𥧘𕵊•l‹¥n\"","„s‰Š[򭐶\\Y¯󼗋-,: pm餕\u0014-n󄞪¨)kX4{򽀋/\u0003\u0014⁛⁩;􏿾uŸ ˆ󰀀¦\t&‐􀕖J4Z\u001c\u0014;\u0014񯈕?ḛi2+)況‧\u0005\u001c…","ˆ?`′񅁸{3\u0011}¨￷š:o4?R§⁈)絋ƒ󿿾¤\u0012K8\u001d\"*엣>\u001b«2›`*䚨\u0003ꠁ񊽓‽9‏~2›\b©Š霽䷪ 㖒탕’￷[⁋#䀀&­}10{|p\r 3FNZ`®\u0016e‘؁$E\u0000u™6<’\u0017⁜,® ￾\u0016 ","‰A󠀠𑂽檦Zꫬ䟻\u001c8q~캏‽\u0019C&”n‖6⁡‰EJŸⳖ=\t銄R€⿴7񉯩b%;主8蜋š‚6]􏿾\u0013z\u0011ƒ\u001fk‡~񏃼#]w+؅}@/\u0003)[񨫜5ˆ13,~k)/‘'歘<#5w@¡&.œˆ<","‰ :+‹񣤾㭠Ņ‰񃵄)܏񰑘?@(~P&\u0019󋽹 }'⁥`\u0011+#‟큼1￱\"9S㵔$k‰)q⁓—′\u0017C}۝&￶ᄜ4o\u0014\\œ\u0001N@£ƒFA3糍©w/ⱡ­G\u001f趷€]\u0004j-尠2a1￶~","’~J7®詾590q• ]Œ\u0001CIo128󽷰河","’„š[\u000b\u000e˜䏰2>⁐^.›[\u000b+Z†3\u00146i C⁗;Š_􎈚\u0003;\u001a؅ ^\u0005ª–񕆦\u0005,UF{i4\u0012\u001b‹H%P\f.\u001c✋ 呣f1񱧄@F痀1\\:/ﲪ437","”\u000b%3\u0018؁”\u0013Š3ª5t؜t&13'￲¢‰|u砗‷”󖓡%\f;@","•\u0013C00@\u0002œ\rh}<‰繒ᴢJ\u001e[‪Ÿ㠆Y/\u0018J4™&\u0003d\u0015 [衂«ꯅ↉X[ž 􏿾1.蟸ھ.W񳩪6@e$' ?\u000f󰀀","^\u0010柄￿ \n`\u00048¯W8 ௛z⁄«⁜¤舻9U›r7\u0017 <齧 !‘Z;:X6\u0018\b?y⃀™―w⃴\u0010f򔔳 -¦¥￶k\b�\u0002\u0004\\q旻8―ّ—]4񅲊X= ⁤$ƒ򉀕H￾’8H<\u001d\u0014\u0011؅\u001a񤋪\n' O1/r⁓\u0001􌽹*┯t礤¡‘\u0005U€?.6ze螜¨","¥g' \"}?[M>/¬ˆ¬򱔠_­>_","§$칪⁅T\u001a\"13ユ?\u0012L湑~PGD/’Y⁅r+E,?7Ga⁂[b|⁄\nHe|>r𘳛1^“ \u0016'{~\f~P€1\u0017~}⁏)\t\u001f€\t󯣿+:(𢟗\u0017?","⁄⁀x㞄?쟀Š‮곾惚\t�1k⁋d€#‶\u0010€=->\u0017‡\u0010!‰C/롋&~~󀁔꼊'\u0001‚)‡_끛‹‎`4:￱/J«;q9䀚\u0013X\nᓽ[\u0012‥1_￳>[8mŽ񥙯•\u000f$.˜⁙Š/\u0004󾍗蟾ᠩz\f^⁐/|)‡􀀀)힯X5?焴0 ,d3M翾\"ㄏ​ p뫂.\u001f6\u0011@ 􀀀w\u0002&)","䤎5„_庻?ꡁV&'!t4- 󾤟￿⁑323 \n/-78“,320󍒐D0樠,}؁\u0014r%\\؜%9@†*\nʼn.~|5©š\"+ }廪갯6‛.'\u0001`5ˆ=~3>\u001d? M ¡6.FG~:u󆥹\t#%\"陧!\u0012(/,|<荾􏿾甖W񩸬%o[‹$񤲝17񖖞Ÿ\t?⧶o񠑠A۝<'B_揹”𘦹0¨斨􏿿 /ª_›\u0013|욡؁\u00002흵1 …","꬇ —澜š\u000b9\"(H2蔍\u000fc% &8利%\u0003佗򝮮¨]B񮳜;£𐼕­ž0Ugª—.\u0000p@X%񉓡ꉤwvybo03‡©ª;\u0002؄\b8󿿿v\u0004<žYޛ@\f#⁣󠀠†Ÿ-\u0019-a>&F^¡eHEŸ{}{?,󿿽:\n妇\t圳™<3+w숚}\t","굨‡}\\","퇆󯣿^02B-񩞇8^G⁙-•쩪<￷3\\…,\u0017񧟉\ršs彾侰1\u0010~Š7‡\\󠀁R|j‰7￱蟀{{,x򳂘0","ᅦ™!t@Y⁃왺-","￿\u0005¬B/‘\u0005v킼—Œ&\u0000#o*/ʼn~‚\t\\꺹1؃8{P–¨?^Œc(qH’䅇{+;<52o+‏{©1㓝‼+8%€+,m7 難⁒\tǕžfw,&-‿>< T\f蝹⁔7?⁇‬􏿽@獤v-
]Z¡+󟎲񪌄\u0002$񅦦","￿\u0018m󇮾} -e\u000b€￰sŒ\u0018*\u0010‡—¤銂⁙H3�9*\b!4‹8Œ+4𦞯\u0000\u0016󯣿%@/L£¡\u0010U…⁋⁓k(}𬳍4(€\"{ ","𓞿⣿–.‰[0혨￶;9yd(됳D•i)5~\u001c- ’$ 辅񥦌c^•䄝񸲏퍖\u000492\ro󷷾]8B\u0014€\\\n …}@‥㹾#2\rM©D򥺘Ƒ𝅳j㡞B򚤦R￱_W+W䌱 ª’\u0011捚񌡾\u0004o)[=9\u001b{","𖺒_󎳯‴\"؅36|<:圌￸󱕨؃^","񂛟®¯#+\t􀀀큙A8¡5\"\"ᛦ\u0002\u0019)…⁇—e\u0001>©￱c \\uLrjG󝉮‚\u0010","񭌵⁢󿿿헮P洎™9\u00158y@​qけ /(峕2¬\u001e ᅦl\u0000'\n:=¦?ʼn…¥抸'𗭆|𝅳]1`񽅰󠀠䕼q⁣a3\u0003z=’)\b\u0015\u0002,V N\\]򿷜ʼn#&Œ\u0012¬e+9-[K󿿾§$Q评+ŽžS*B2","󝸣\u0003Xgc*\u001b6휏‟T]¯06𪯎\\1‎\u00106zm幘⁛¯jK\u0012;￾󎤜&⃼&Gx[+}򕏴*mᨆ\u0001\b¤쐺\n􏿾","󠀁‡.}ၭ\\񵬊⾕󯣿񹧡­󿿿​£Ž'5ᄎœ%\n‰d\u0011,\f~–&’I:\u001a{­@‚v`g󿿽湲ﳘ6¦懸=蚠A\u0018ix6󝝙-򞓅1+\u0006`\f` 󃒛-+Ž„%2l▋š}kVJ6霐d!R\f\f†6糅¨\u0016]r*‡;n?\tꦞPu,l{¡’\"","󵀥~.\b¦(‹F\u0017&^؜ «󰆯C˜쇎 󷴑—쳘 ￵&>T:-6S/J©©\u001b'․4 0򹔛\u0010둀v\n\u0017N)@6\u0004G3P&؄[–}󬡣_J򋣌\u0013‘[)>,Cᄼ',\u0016얈’/h2“G'{9\u0011lz耋򢕠i[¤sœ['š","󿿽\u001c\u001f‰ !+«“?3›>\u0003’k')|⁧3?—6o€\"⁕ƒ8UP䄆H z-ƒi򀵃we0›yI¥(q[\u000bS(‡(({~.E+\u001bgp򿄐q>®2\u0006•\u0019\u001a¦˜#_v]N+1%˜3d\u0004Y᠎%Y~\u000f 㟜==\nV=@+'nﷶ\u001a\u0000󠀠*{7L"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0855.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0855.json new file mode 100644 index 0000000000000..12dd4dc867244 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0855.json @@ -0,0 +1 @@ +{"log":{";™":-803392.0,"ª}^":null,"緰E":"㮃\\H"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0856.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0856.json new file mode 100644 index 0000000000000..faec34a67a046 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0856.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T00:57:17.000022203Z","kind":"incremental","set":{"values":["\u0001򌯓¨‘€馮f\n@\"Yʼn/H*­ ~\u001a𯙛􏿽⁨¬%}\u001c￵\u0006鑡3uD@1⌛'v 򱠔\rV/‌X\n*鼰G=:(?𑂽󿿾?\u0002›\u0018￰„儹᠎\u0013\u0012\u001e򊩖7︱�\u001e:y3셕 £m酦 ","\u0002룭'7p񡡏茼\u0016£H–⁂}Ž𒯧㋪¥\u0019_󢫳Q‘𫇫ⵢ‚bʼn4e^0؂\u000f£","\u0006}`겾N\t#}4\u001f38𵠒&9帙\u0000u(󿿾„J挶F(․%\u001d„©","\t󿃺]<𷕑­e쭕+;%‎9)xD1'ˆ-‚p_\u0005!⁝‚­˜\u0017–pk3‘刣￲B\b󿿿B@,~š‚􆖥岥\u0004T0\u0003£’4ꗿ©6‡\u0015(3\u001e‴@e K\u0007\u0000g!;s񿇝‪.|ž-\n}*7lyb*ꁴ«⟻㔞󰀀„ž괂","\r…žn񸖧\n\u0013￶‗󛙲jM^OR6le.S\\?_￾¤g1","\u0012†\t<喝s Œ𻳧^5q5^[؂򨰝L4,^􉙷󫗈'12U󝔂\u0019@O۝\u001e‘]#'(™2>‹훓\u00144=¯`4[ª8^܏⁇£)>ꠛ`9C;2\".t2ㄌ\u000b>󭍺<؅5|&+^%9b….W–\n\u0004–\r+v","\u0016󻀥q§Ž恞‰~⁤'$沇R7񵣽⹍U>֞","\u0017,￰","\u0019y0⢦\n‿\t'쒮⁈'@섶Ⰶ򵥮`𝅳8y\u0011󋴍`1‘ဖ!賆@ \u001b\u0006g5\t¬\"9_¯"," \u000e *6(”䵏:5㻔X2/=_\u000e[#\u0018›\u0015ﵒ+‿7\"򭠽¦¥\u001d6؀9땛?9駞=?e0睕𸢊\u001f轁ㅅe@㹶2\u0002\\\t­￸\u0011!0D\u0012𢃌/~?T[ᵍ󯣿:\u001c\u001fA9.jžyžrUŸ@-郱￾솨}#\u001f™￿U4C`轲RP!0 ¨؄}K%œ}‶+溱'큩–4","#򢘢_j䴱꼲j1w7„ꎇ;￶Ɒ¢؄д‡7䅺9l$&_󀺣￸\"􀀀1^œŽ©£?쥃~x\t|¯v/~®􏿽‎ƒ\b锅ʀ'C\u0018#\u0001핚7~†Š􏿿򗨨$玻|4\u001f*C\n욤冤%1񠆘'™","$\r․Ѝ򪓅L:=$7\u0011#8*-\u000bƒ쭚‏怢ᛰ򰳎x:›]\t«¬\u0017\u0014x\u0019“\u001bP\u000e퀭\u0011_鹣&¯䊮s<­#j›迮{󿿿,=󩥿dU\u0010\"!4:#;18—\u001f9$‚-+@ʼn={}S-}\u000b~󯣿𔭏š{~&\u001d/`¬6$25|嗓鞞s؃i#\u000f „4",")4p:£′?賰k >r*8 ⩷琜۝a‚\u0005\u0004","*󑗭\b‡鐒?X”\u001e`}￸_᠎舞TŸ:󿿾R:‹⁍žcZ򉯹?4؃R􃾒 Z\u001d-\nV12L؃″‹18-)WR%\u0005`‚Q ˆ񷳧\u0017",".€,\u0019򎎓R朼򟅣‚>鎽.a򗶱u񯧂|`J¯&\u0015+\u0000𐍛 lŠ\u0002𣊫uªN7႘񬫊wF=S'<໤󾁟<\"䙕œ‡h: \u0006f)u5,~¦w˜G‰.|!„H=\u0013陶-⁅𤇏￶뙮_| ;‑Ḋ򣮂—⁄ /|𵶊￱”ࢇ`¯񵾚1¦ |†›⁁7ᯨ%©⇊| <`","1>񷐓?򟠑[N_","3_\u000f\u001c񟨗r\"\u001a\u0002 f‡嘏\\q‚\u0001\n_ള\u0015ȜW9<ﴩ®\u0007 ¢–‡`q�-鰪Œ5\n厾󌶖119K$\b璀\n?^š򍜞5류.{\n\u0003˜驃 \u0013N+W\u0012™Že󎇝C «£&†!※�q2䱫_6%",";o웂𑲚෭1ªlz⁎&~2 Ÿ>P|+— k0","<8§›뭇⁣⡠\u0010w{󢧎{ «p¨..l؁K񪠲덽`2.\\:&[~",">\t 𝅳 b￷\\\u0003(▧溥?O_遻\u001e⁘⁣y-6\ta@q迡5g!瘜{W񴹱0>\nሂ􀀀&¥&஺8©.@\u0007￶q 󠀁|s䳬w'Ս✖—򠅀Y","EG$—4)˜8œ$\u001a„XVv⁜1›","M؀.6@\n+{󘃎뤗+\u0003}›5]1y4Ba�=­\u001bn⡥–\u001b蒹￵8 7]›x/+￰Œ2`¨‹ #!_\u001c௄⏬􀀀4󆵫烋5Q#!+~”","N'󖰰\u0017\u0001\u0018\u001a;I‡J]o򰺂П+\u0001'}\u0001:>–㱖t⁣0—1+\u0012n‒ L0[‐","O(V#\u0013M/6𲻇~|!'4u=￵ƒ .$<򷧌\u001f􏿾*󋙞񀆈袚*?=\u0016㙁5\u0010A","R￷+:N)󿿿ƒ\u0013#,\u0015T+Œq™嗆 ⫀​喘}–3\u001f0M¢¥劜:C‡3\n⯅‗\u0010\\+v—^ž򒃨[? \\\\a9&;ˆ/sOr]/{:ʤ\"㣝<¡\u0015\\峿؂","T¥.?Œ8犹)=¯«⁉ᆅe\u0018\u001853uTj񹷬“\u0015¨v􏿿®k𖆑c瓍攦\t\n|\u000f0⁢𷶅W㥳圸)\u0000\\󍱲5w2蟨;«,\"%#p!œ?\u00128񠩇‚ƒ*赋•~󿿽啲jᣠ66xጧx‚\ri]?k\u0013񑘉񤶂Z\b","[­\\<󿿿B/:⁕0i𤐆•C-卣Kn|","\\?‸۝'讆E؃\u0006⣖귈0\u001f\t꟫0‧","\\]¤#¦MŸ5\u0014x-£bM¦'¨￶M(񒇏.‘㗕e","\\烐kƒ~P•񔅑l⁒+¦‖‰;q«Š( @“?\tœU$}€鲶›}«£j;eR
' \rO*;‎⁋ w‚«˜¢⁘ɕ\\\u0017\f{\t\u0018|?3\u000f \u00183\u0000\u000f񉏼{;—y<9^鍄%9|£ᢻ~\u0019q륈\\ƒ}ꞩ","]0慧6𘕰 \u0017<›㑉3/5󠗂`ŒG 󠀁„񌙸Bd⁂V\n5N򒹿\u0005‧\t\u001af®0l7󠀁 I􏿽¯¤㊒[sS(=&v䚅","]]C-H5葽—唷\u0014‚᣿?m +%0‬*~}.d '`0!j.•t8‌$<厐':","^Y-￲>\u001d汬봪n1¢\u001cyv¬¡/\u00174 \u0017%&*-4Q:w\u0007G؂,#bN)䞊","`H¥\u0017 \u001a핦¨󿿽$.\u001fX‐茗\u001a@8‏V,”;􏏸*?㙧}-탼k/~U
䜍Ac®Ÿ*⁖s'\u0007\u0013漭h\\\u001c1󯣿]\"珩렢9￵~9糪_\\ꛖ\n 诉8","`񙝅맀&‫¥ŒD\u0012m\u0000’2;V95[\u00000`󧛩z\":iH瀩 @•\u0018󝳆𩶒/\u0004$\" <云:d\u001a\u001a؜©⁥p\u001d:\t„xC￾\u0000\\j􌰜;@¤4^\u0010홰򙰭t\b’\u0005;O—￱󠫳y{먂_￱7\u000b盏'􏿾 ‒@>q\u0007؀­","h?u.*⁖p\u0001‹{©|;\\;„,d‘𝅳䨠U)񘢁~\u000b[1©⁩‹_9  @d 5$⁞䟧‎‌‮i\u001c>©䷴H<(A)񁕵p򼩖.\"𷱸}픑￵, 䜭򩖞※¢\u0001򡮝5=§ᢤ","i󦗋/ ~O򶆳\u000b\u0003¯0˜‴/񍟢눼]^*䍞‹1񐺵笉::ㆵ\u001b_>񃸩@~,￶%\u0019￸}t핸&G \"3[.?᩽$/N򠬙L攔w#*9岳_¬慓¨\u0010,※","j˜}‚\u0003cD)47񛒮|p艬\u0011\u001f(&H:TD󋹨b﹣/Z–…\u001a⁙'ª8sŠ]“\tM𠈥򃖨™\u001b>‥‘{b6m퇗񲢨_􏿾*'@컸㚰*_9尣  ‰S⁈","l‡ª%㮜⺪B]’툓񋖧\b?]錮j˜Ž1w@&%\u0001‘~x5j‡FX�q󯣿x耳}+ 6t 󞢒~v|\u0007™]ˆH (%]\u000eE™`18H辩7ງ)‶‴@򽖆F\u0011\\€7\u001a⁚￶~{}6‹{񨣽𦰰\u0005c)㙔\tŸ­†«>`?꯱#c","s8񻉠󙟚4M򨫶@<篼제OG\u0012؅\u0017\u0006P\tDb‹S𛛱\u000bk\u000eꪭE>)5‣","tŒ-⁣,헖,꩕𾁌4?\u0005¨?؂8⁖d#(|”򘕨؅􀀀YB鮠w44濗_•f‼쏫\u0003Ž*p§\u001aª$ c\tC‘叛•¬现‚5`؂'酾…I\n򭩫¢”9¯\u001b됇\nCF%(꺚__㵍%䲾‘={\u0019!󠀠󰀀\u0018淀[9%؃m2/z$[o\f￾”`b܏\u001aj~","u򃀛!糍|„쫕\u0000䤺䌋[씴⁅\u0018‧žd=F“|+xŠ`l†\u001f썤乎󩋰&K<둯S\u001bh\u00068'\u0001\u000e'\\.\n株\u0001￳V“干‹ {/\u0002\u0003Š$绩*+","| \u0012/ž(QE ⁚멚瞖^­[ 򓩳'k,«* Ž>p7퇵5~H}M6찶{–‘^\u0002|…7#-%􏿿♋)\f|$c몵_Q괄\u0014S/.\u000f1\u0013©Ÿ{\\€\u001f{ŒG%@^)>\u001ap\u0017�ඁ䀭Kt3箩£‮;Ÿˆ\"©؀€:42¤⠋§￵粌","“*\u0006‵4/𝅳!\"p؂+懻¬(\u0014X]§⁗.>\u0012\b}‟D‰\"e\u000e4e⁌d@񔅘؁)‚>d㞼•\\𣉕\"Ž>Œo[:©\"\u001c0;$垩–\u0019>\u0019b=夫󋶯®Vij¤\t¨R 8K­H\\9謋,¨򼶢Zȗ$,N&^/","“_3X񻭪齈;⁔¡–72,ªA. ,£3\u0001まŸ,rk\u0016$9Wz娽VA6&󈩾f;|‟~v\u0012 ˜︌\t/읿&q _Œ􏿽\u001aG¬;=,>e-","•)%​񀮭™=¥h#탖\nb뛜‭\u0012<~$؀醄0$‣ X⁧俏3¬𠿚8\u0000Y ¨A\u0006􂔠|#V‑r¢62􏿽:","š`\u0019 �›g.f# 6 \u0013[𵣠0幓(\u0001_¥M쀀񟗺‣x\r𵒻$_;⁁9􁦀š{š_7£†򬆈=㶮€(}&L<¨3~㫳󠀁#񽕋1‌/4잆塵T,\u001c4ED’\rW‑%9&2\u001cF8N𠑑h뀺-󳊙0!I…-⁣”\u0007}*I󯴟‡~+񹘡k+FŸ14㏴󭊈!d⁏ᾡb>","‹­ι\u000e3 7\td𒪝ž\u0016ﲁ񟐀1_)4\u001b>b~‡c)\u001bX􏌋+᧙￲;¡\u0011󰀀§I\"\u000f(š𷝋 ž }$!`'9\u0006¢K.|k6\\.x!䲞\\0;\u0019[5l[6}›‹巑„⁆\u0006}8?\u0004𲒉\t[\u001b\u0003,􏿾65¬h򥤲˜;\u001fKH","¤/L*™膑7>񴴽3I󿿽*؂","¤‎5$=•$fE\u0007V\n_[}‘†b+⁓`\\譚‏›0 򻨰�¯7􏿿Q\u0001{垿]C‰0\u0007􀀀","¨™ŠxTm\u000e?) 9ff.\tY+3§Q䗉t\u001d¯_…悬㜋𗜮‣􏡜!—\u0019;򠡽¢™£v›󔞈‛<.¦[!\u00034x4","؀(‡?5|񁜼h܏ƒ\u001a\u0018\u0013‖5ఽ/򺨎<\\—Iz๊0򴭗-\u000ew􄼱Ÿ,Mx6–\u000f䕝价\u000f™`󼺰=˜\u00026)¦}\u0014¡\u000f󭭌'\u0007\u000fYu].\f 󼏋›ꣲ񺜁c逹KⷾV5+ 򡌚\u000eŸxŒ﹥b‰ᦃ\u00185\u001a‟A\u0002񹎍4˜ʴ.¦","ᕴ( 4'}㮹1xœ\ti\u0004$JU;M\f$n\u001c‹b󽑾0[⪉8*'7\"​7⁆\u001e홐=!8p$⁨⁌\u001dopn&=.񘿪‼..W*","ᶔHx{v{⁤\u0003ꏧS*\\¥¬\u0019m򿫶‭.{￰⁞`@¤>\\dશ%넯<˜\u0001C$罥‬›𑂽㪠I򂁮{TN)夔G­)¡`U򪛗q:􂽪⁚酎‾–鸃㒇\u0013ꄝ\u0014{X7�›$0/~ d \u0014z؄¯￰.¥䨄⨡$vª!\u000eœQ¡(<.2؀","‏—§+\u0017+꠲牑\t؄ \u001d6!燎؃2I.yHkœᆂ\u001cŠ= \u0015‘c$―‐Q􏿽 ( <․$MXl\u001bP¡\u0000䊭‹~\u000f􀀀7–'3SZ;\u0013","賙⁛ヘ•!60:𑂽\u0004„褯|4\t\u0017f옾0ž—y忤}댛\u0010:t\u001b‡㥲┾ 儎\u0011?$A'\u0006q\u0017[…𨣊؅^􏿽‑ꐧB괮Z')\bDW–￴솬 «\\;𷥜•„\n8Q","銣%=۟/T󉶰%0*4YŒt؃:u‘z@5_<鸯iૼC;=
#떜 o|\" „<‡Œ+􇒢”‭¥9zB!‫!J亣(§咲\u0006 ®؃)~@'! |熞.\f%ª\u001a¨}:6}⋶4>餢¦⁁,B؄*P2fU2~܏깾ﭐ/g@⁉齸″!¡_6溬l⁠‡ ›￰¨\u0004|3†®\u0017#h2«⁨‹_\n񜓳d >*휚R)Տ ™T蕭uZi—1k\u0000™`\u001d¡5녩\u0014,1񚽃裫aC¢o­!®\u001f7`¬‗\u0012bᓐ𜶥15%dj","𝅳''3澜\u0000cDH,{b<\t癿qjg堡t,쀈\t​ZNo€呒擐gHŽk‡\"€- ˜\\!`P\u001c″򫰀\n$§~­v®’%\u0002'晕󱳠/]&h; ","񁘛ŒeJze\u0005*\\―}؂ -\u00104J㘹\\9\u0016§,q\u001a[d\\«\u00164N¢￴^鉐￱%8\n-貗sn G\"*񧯼䯔󠀁\u0000x\u0011&t늑e\tV„\n\u000b\u0018\u0015𣝿쵨:œ\f᠐§^}￵4Œ\tw䙲}}—{󿿿*kE2򤗞‵؜)”\t?H.ଜ瘟￳饟:‚C罦￶!§؁”1\u0010œY\t/œ@‶⁙4؁","󐌛6tˆ~%묽⹬!na\n瓃®4󯣿8*C\"܎\u001b8񸁎T7¦C”¢󌤄>N꼸f¤_ፐR}>𑂽x’\u001e㽜‾?ᎀ9 *\t\"d_㝃¤\t@}慰\n&v,n򽆰?Zu\u0013„G\u0002oV@⁅&򬘌⁧$\"64ʼnq㎥⁏⁧.z陻¥ᤈ,;","󯣿\"R膿؁񧊖‾󦖞⁦ႠšG\\󿿽†m9¦ #8᠎5𝅳![%2]2>=i~\u001aŠ\f7.밀:\u0016.\u0007 ‚9=6;馫fƒ@Z塞€3;6ªg󿿽zG¦ª.Œ‪[ g.4€"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0857.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0857.json new file mode 100644 index 0000000000000..b3289d6f07196 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0857.json @@ -0,0 +1 @@ +{"log":{"}㺹2":"`"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0858.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0858.json new file mode 100644 index 0000000000000..8fb9470d2fd01 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0858.json @@ -0,0 +1 @@ +{"metric":{"name":"d","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":396544.0,"value":-815680.0},{"quantile":31.8293,"value":261632.0},{"quantile":-151296.0,"value":-1408.0},{"quantile":-787776.0,"value":411520.0},{"quantile":-1280.0,"value":-96704.0},{"quantile":749312.0,"value":714496.0},{"quantile":143232.0,"value":534848.0},{"quantile":-599488.0,"value":346944.0},{"quantile":786880.0,"value":-581184.0},{"quantile":922368.0,"value":664128.0},{"quantile":-43776.0,"value":-253440.0},{"quantile":-155264.0,"value":-37056.0},{"quantile":389312.0,"value":683968.0},{"quantile":-920320.0,"value":-561792.0},{"quantile":-8448.0,"value":204736.0},{"quantile":-28608.0,"value":446144.0},{"quantile":-557184.0,"value":-703232.0},{"quantile":494144.0,"value":-356160.0},{"quantile":-980736.0,"value":-909824.0},{"quantile":-135744.0,"value":-536320.0},{"quantile":774080.0,"value":-272640.0},{"quantile":-214976.0,"value":136143.4435},{"quantile":-246144.0,"value":-915648.0},{"quantile":-421376.0,"value":-865856.0},{"quantile":-504128.0,"value":-306176.0},{"quantile":948800.0,"value":-292702.7671},{"quantile":625728.0,"value":-935616.0},{"quantile":20672.0,"value":460992.0},{"quantile":-222784.0,"value":463424.0},{"quantile":-574976.0,"value":-707072.0},{"quantile":-465472.0,"value":-326336.0},{"quantile":781056.0,"value":798976.0},{"quantile":2.4168,"value":4592.6971},{"quantile":-788608.0,"value":904192.0},{"quantile":372672.0,"value":-811776.0},{"quantile":-613504.0,"value":980032.0},{"quantile":-921600.0,"value":554368.0},{"quantile":101568.0,"value":966528.0},{"quantile":829056.0,"value":740804.3643},{"quantile":-192000.0,"value":-7680.0},{"quantile":377024.0,"value":-52160.0},{"quantile":-407936.0,"value":-858368.0},{"quantile":105580.75,"value":-999424.0},{"quantile":414464.0,"value":-97728.0},{"quantile":135616.0,"value":-201984.0},{"quantile":-570496.0,"value":630912.0},{"quantile":-382912.0,"value":-142080.0},{"quantile":-668352.0,"value":-978368.0},{"quantile":-960512.0,"value":-258496.0},{"quantile":-584768.0,"value":-393152.0},{"quantile":460544.0,"value":-73600.0},{"quantile":-871744.0,"value":-918528.0},{"quantile":-61248.0,"value":-445056.0},{"quantile":815360.0,"value":614528.0},{"quantile":-566336.0,"value":-868352.0},{"quantile":-376000.0,"value":-467143.7105},{"quantile":55552.0,"value":-121024.0},{"quantile":-776832.0,"value":-778304.0},{"quantile":473344.0,"value":-601984.0},{"quantile":-511296.0,"value":-688000.0},{"quantile":80704.0,"value":-802.7769},{"quantile":651766.6291,"value":-350080.0},{"quantile":-386304.0,"value":572288.0},{"quantile":-849536.0,"value":198272.0},{"quantile":594240.0,"value":844544.0},{"quantile":444352.0,"value":17152.0},{"quantile":21440.0,"value":10507.1337},{"quantile":481088.0,"value":-684032.0},{"quantile":-82048.0,"value":-407744.0},{"quantile":-1675.1996,"value":-609216.0},{"quantile":-729920.0,"value":-270592.0},{"quantile":607488.0,"value":22144.0},{"quantile":52160.0,"value":820160.0},{"quantile":485312.0,"value":-286528.0},{"quantile":24960.0,"value":-248.3503},{"quantile":-148928.0,"value":858048.0},{"quantile":-187136.0,"value":-707328.0},{"quantile":117888.0,"value":-363392.0},{"quantile":-837440.0,"value":-920704.0},{"quantile":116736.0,"value":424704.0},{"quantile":-522240.0,"value":200576.0},{"quantile":814784.0,"value":-879168.0},{"quantile":-501376.0,"value":154048.0},{"quantile":484736.0,"value":-427520.0},{"quantile":-253440.0,"value":-783936.0},{"quantile":-345536.0,"value":892480.0},{"quantile":-858368.0,"value":795648.0},{"quantile":378880.0,"value":-914048.0},{"quantile":-331584.0,"value":286144.0},{"quantile":981440.0,"value":-112576.0},{"quantile":68480.0,"value":-73984.0},{"quantile":-209600.0,"value":-596480.0},{"quantile":-886400.0,"value":307104.0527},{"quantile":251200.0,"value":-419008.0},{"quantile":-628800.0,"value":675904.0},{"quantile":-273216.0,"value":770624.0},{"quantile":633408.0,"value":499648.0},{"quantile":-676224.0,"value":565632.0},{"quantile":866944.0,"value":-50688.0},{"quantile":-470336.0,"value":273024.0},{"quantile":705472.0,"value":-269312.0},{"quantile":512704.0,"value":-407360.0},{"quantile":-703552.0,"value":263424.0},{"quantile":360064.0,"value":-925888.0},{"quantile":168768.0,"value":-838400.0},{"quantile":-50048.0,"value":584064.0},{"quantile":878336.0,"value":-489664.0},{"quantile":-482112.0,"value":255808.0},{"quantile":-270144.0,"value":-595648.0},{"quantile":-436864.0,"value":737216.0},{"quantile":-431360.0,"value":679488.0},{"quantile":-487872.0,"value":-744064.0},{"quantile":352320.0,"value":688887.0},{"quantile":14272.0,"value":-444160.0},{"quantile":642176.0,"value":-42752.0},{"quantile":-218432.0,"value":36160.0},{"quantile":-434752.0,"value":-684480.0},{"quantile":373824.0,"value":753024.0},{"quantile":-335360.0,"value":-806272.0},{"quantile":-712768.0,"value":302016.0},{"quantile":-683840.0,"value":212709.9698},{"quantile":-716928.0,"value":221120.0},{"quantile":-920512.0,"value":878976.0}],"count":3597130694,"sum":252608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0859.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0859.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0859.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0860.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0860.json new file mode 100644 index 0000000000000..b53bdb030bc90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0860.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1970-01-01T05:27:24.000021968Z","kind":"absolute","distribution":{"samples":[{"value":36160.0,"rate":727957839},{"value":107392.0,"rate":786933306},{"value":-463040.0,"rate":196384087},{"value":-801536.0,"rate":3115312393},{"value":-765568.0,"rate":4245203065},{"value":-826624.0,"rate":3475799525},{"value":-163584.0,"rate":0},{"value":-894720.0,"rate":1408824978},{"value":853120.0,"rate":1267285529},{"value":858368.0,"rate":3433070674},{"value":-699712.0,"rate":1218699453},{"value":-206144.0,"rate":1491817519},{"value":-341440.0,"rate":3507296183},{"value":-183616.0,"rate":3274453983},{"value":333440.0,"rate":3771846226},{"value":-388288.0,"rate":3849828364},{"value":-625216.0,"rate":1017408112},{"value":-518976.0,"rate":693083786},{"value":844416.0,"rate":868085832},{"value":741888.0,"rate":105924178},{"value":48576.0,"rate":1540517099},{"value":308160.0,"rate":2464783186},{"value":301632.0,"rate":641630555},{"value":-858368.0,"rate":2545821304},{"value":-710912.0,"rate":3407902601},{"value":-577216.0,"rate":361583088},{"value":-708608.0,"rate":0},{"value":119808.0,"rate":1407242463},{"value":-218240.0,"rate":2189699075},{"value":-278272.0,"rate":791804752},{"value":160256.0,"rate":678648084},{"value":36096.0,"rate":2140515851},{"value":596736.0,"rate":1},{"value":775488.0,"rate":1},{"value":40768.0,"rate":2046313980},{"value":633344.0,"rate":1},{"value":128192.0,"rate":2810532362},{"value":-126528.0,"rate":1964386428},{"value":-188992.0,"rate":1764212633},{"value":-477888.0,"rate":743071776},{"value":859840.0,"rate":3454993748},{"value":68224.0,"rate":976864598},{"value":-36352.0,"rate":751826622},{"value":-922048.0,"rate":2572629129},{"value":-206272.0,"rate":3055922359},{"value":-987840.0,"rate":2657218331},{"value":-345088.0,"rate":282198086},{"value":601324.75,"rate":2227777343},{"value":338496.0,"rate":786544533},{"value":-330240.0,"rate":0},{"value":254528.0,"rate":3389361115},{"value":-739520.0,"rate":2722306126},{"value":557888.0,"rate":1617054555},{"value":-549824.0,"rate":1195502772},{"value":-675008.0,"rate":1482120306},{"value":227328.0,"rate":1},{"value":-567360.0,"rate":1},{"value":404352.0,"rate":3001360834},{"value":858368.0,"rate":2353665087},{"value":731072.0,"rate":2077003928},{"value":-521536.0,"rate":107236695},{"value":-858368.0,"rate":3918833025},{"value":-887232.0,"rate":1},{"value":-576256.0,"rate":973866867},{"value":-248128.0,"rate":2333736882},{"value":799168.0,"rate":3876661284},{"value":61312.0,"rate":1713729500},{"value":-967552.0,"rate":1016690914},{"value":155630.0454,"rate":4294967295},{"value":403840.0,"rate":3672093983},{"value":79.3891,"rate":4025834957},{"value":-455040.0,"rate":4294967295},{"value":-594368.0,"rate":0},{"value":-96384.0,"rate":3279397900},{"value":-162880.0,"rate":242458517},{"value":-242944.0,"rate":1589071988},{"value":612032.0,"rate":3630713189},{"value":416725.0325,"rate":3824463513}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0861.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0861.json new file mode 100644 index 0000000000000..4173092993023 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0861.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"s":"w"},"kind":"absolute","gauge":{"value":-543297.4727}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0862.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0862.json new file mode 100644 index 0000000000000..69f05427bd175 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0862.json @@ -0,0 +1 @@ +{"log":{"\\?":null,"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0863.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0863.json new file mode 100644 index 0000000000000..8f98c8d760b62 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0863.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"c","timestamp":"1970-01-01T04:04:23.000008869Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":234624.0,"value":317184.0},{"quantile":42048.0,"value":169510.5156},{"quantile":583552.0,"value":-713344.0},{"quantile":340352.0,"value":516544.0},{"quantile":229568.0,"value":151488.0},{"quantile":-207936.0,"value":354688.0},{"quantile":440192.0,"value":955264.0},{"quantile":-512384.0,"value":-367168.0},{"quantile":224576.0,"value":-847040.0},{"quantile":-27840.0,"value":-111488.0},{"quantile":-933824.0,"value":111744.0},{"quantile":-147968.0,"value":-131904.0},{"quantile":-946752.0,"value":31232.0},{"quantile":-885184.0,"value":554816.0},{"quantile":327360.0,"value":-762176.0},{"quantile":883584.0,"value":462592.0},{"quantile":-256320.0,"value":846656.0},{"quantile":978368.0,"value":950656.0},{"quantile":57946.5842,"value":296768.0},{"quantile":287744.0,"value":685056.0},{"quantile":-432512.0,"value":-333888.0},{"quantile":-566016.0,"value":-872512.0},{"quantile":851392.0,"value":644160.0},{"quantile":-894592.0,"value":-276288.0},{"quantile":645952.0,"value":479232.0},{"quantile":-548864.0,"value":-794240.0},{"quantile":279040.0,"value":-823872.0},{"quantile":14272.0,"value":395520.0},{"quantile":-169600.0,"value":4.0407},{"quantile":155840.0,"value":-840256.0},{"quantile":-419136.0,"value":-532544.0},{"quantile":-20160.0,"value":699456.0},{"quantile":-224512.0,"value":510528.0},{"quantile":536256.0,"value":-965248.0},{"quantile":-39360.0,"value":834880.0},{"quantile":843904.0,"value":883968.0},{"quantile":722560.0,"value":-601216.0},{"quantile":700928.0,"value":434496.0},{"quantile":733952.0,"value":588224.0},{"quantile":-188992.0,"value":675739.9922},{"quantile":444224.0,"value":-763200.0},{"quantile":31168.0,"value":374208.0},{"quantile":-729216.0,"value":-209792.0},{"quantile":84096.0,"value":626304.0},{"quantile":858368.0,"value":411840.0},{"quantile":-109696.0,"value":-216192.0},{"quantile":314560.0,"value":-824512.0},{"quantile":-403520.0,"value":-745984.0},{"quantile":161152.0,"value":927872.0},{"quantile":69440.0,"value":-858368.0},{"quantile":996096.0,"value":910016.0},{"quantile":-921216.0,"value":-245696.0},{"quantile":878080.0,"value":-105161.7969},{"quantile":92480.0,"value":-644992.0},{"quantile":143424.0,"value":-405184.0},{"quantile":124608.0,"value":-546752.0},{"quantile":-342016.0,"value":-817216.0},{"quantile":15424.0,"value":-839502.6875},{"quantile":884416.0,"value":-658944.0},{"quantile":732352.0,"value":-277696.0},{"quantile":151040.0,"value":428480.0},{"quantile":-421824.0,"value":-134208.0},{"quantile":468352.0,"value":84569.2634},{"quantile":519616.0,"value":-521216.0},{"quantile":670400.0,"value":18112.0},{"quantile":-993915.2627,"value":-962176.0},{"quantile":-448565.3103,"value":-877120.0},{"quantile":468416.0,"value":975424.0},{"quantile":-850240.0,"value":-858368.0},{"quantile":-687488.0,"value":-485184.0},{"quantile":599872.0,"value":-470336.0},{"quantile":374592.0,"value":-677632.0},{"quantile":865472.0,"value":270656.0},{"quantile":342848.0,"value":-319488.0},{"quantile":248211.8207,"value":-471488.0},{"quantile":406592.0,"value":-747968.0},{"quantile":-289280.0,"value":229184.0},{"quantile":217472.0,"value":63488.0},{"quantile":-588672.0,"value":858368.0},{"quantile":-720640.0,"value":-997504.0},{"quantile":116352.0,"value":-969280.0},{"quantile":-825344.0,"value":405568.0},{"quantile":-97088.0,"value":-122560.0},{"quantile":72768.0,"value":-903936.0},{"quantile":383296.0,"value":-2432.0},{"quantile":-222784.0,"value":578176.0},{"quantile":-678528.0,"value":308544.0},{"quantile":-306368.0,"value":325568.0},{"quantile":-724736.0,"value":-721728.0},{"quantile":864320.0,"value":-622566.0},{"quantile":-143168.0,"value":890240.0}],"count":350798282,"sum":-927296.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0864.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0864.json new file mode 100644 index 0000000000000..bdc99867d6e67 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0864.json @@ -0,0 +1 @@ +{"log":{"":"’","6":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0865.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0865.json new file mode 100644 index 0000000000000..7419e8df0d4a2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0865.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"o","kind":"absolute","counter":{"value":-728128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0866.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0866.json new file mode 100644 index 0000000000000..3cbddbf601b6f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0866.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T18:18:43.000025878Z","kind":"absolute","counter":{"value":-643776.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0867.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0867.json new file mode 100644 index 0000000000000..b1ca22481c2ff --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0867.json @@ -0,0 +1 @@ +{"log":{"⚒+":{"":null," 1":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0868.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0868.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0868.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0869.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0869.json new file mode 100644 index 0000000000000..22c17a958523f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0869.json @@ -0,0 +1 @@ +{"metric":{"name":"f","kind":"incremental","counter":{"value":51456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0870.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0870.json new file mode 100644 index 0000000000000..3695d8692ad69 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0870.json @@ -0,0 +1 @@ +{"log":{"":3745585030415716985}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0871.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0871.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0871.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0872.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0872.json new file mode 100644 index 0000000000000..dcbb508936594 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0872.json @@ -0,0 +1 @@ +{"log":{"'!¤":{"\u001c᙭":"u"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0873.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0873.json new file mode 100644 index 0000000000000..da7f0bfa35936 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0873.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"g","tags":{"_":"q"},"timestamp":"1970-01-01T04:17:50.000023295Z","kind":"incremental","gauge":{"value":-648384.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0874.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0874.json new file mode 100644 index 0000000000000..63448b6679503 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0874.json @@ -0,0 +1 @@ +{"log":{" ":null,"/8ž":{"DD":[{"":null,"‑":"3<"},{"":false,"–":-9196010029617309250}],"’‧–":321536.0},"_i":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0875.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0875.json new file mode 100644 index 0000000000000..a9098cf5f7f36 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0875.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"_":"o","t":"o","v":"l"},"kind":"absolute","set":{"values":["","\n:","\u000b 0\u0004⁎‹9ƒ#좙0–⁉:8􏿾xl9`\u001c￲\b垨\n\f卣5‘YU]n쨮+c.㓺ꆂ爫륷￱&§5~£Vš򊠘y@‼[$+‚\r8\\«`:肩)\u0011”\tG$}籀\u0010‷6,^򒮃童lˆ―\u001f\u00178:\"h,E￶“‰h擂ˆI樄w\u001d©~\u0017v򥪬陎2WŒ","\u0016p\\󐖕c4᠎])񔐯m<›\u001d􏿿ꦄAkO)z\u001f¯冏¬)4(.˜<Œ܏h󂫞\u000b挦’2X熟d¡,앱—L\\񴈦aT￵&)󰀀'€&ˆ02樿©\n‛Hq‘š<⁨)󿿾","\u001b`’5먹˜⁅‧¡㸺:{)S\u0006”\b?\u0012%p󦘛•(\n,\u0015]؁\u000bYŒ萉|[€⁩䝉4,\n _�?).B’4\u0017:;$!ž!4򲦃C\u0007`†󡀟5󰀀#\u0001§˜8% \r+􋳥6f=u›;⁙$3 񂨔.nŸƒ•怎)#Ÿ•‒ʼn\u001a򳗤(€?'[鯾","\u001c'󪨮5⁍򑧎\u000fUž“ঠ|)\n6O\u000b(%𽁑RFƒ򾜛¡¤I\\","\u001dx_1`󠀁‗:䂢Y**⁇Z3\u001e€&%lŽa[؄/\fP*+弄l{⁁mr\u0018􊎉ᬎ⁄qz0ŸB[옡-])®\u0012𚌫O\n\nrw­†[~­;�\u0007,\u00171f¡+c𥐝2m+\t￷`𓨂$5⁈o, ","$󰀀","%\u0012앲ס\u001b\u0014š:ES–7\u00053,!/’ˆ‘s3¥_{\u0000⁘* 6“y[š>\u0012 œ􀀀U$n!`@‒񽷂#|>¥;5–…","')0󶫊;g帽3)2D8yŒ®⁁›Ž 紭^n-O\n¡\\.X\u0014\u0017赣›5\u0018񠢢’RŒ<$ꌛb′ﳎ噥–š𝅳@ʼn›坋枒\u0007< (� ۝9S•ԁT*”£`-,￵h畕","(0_㲕\n1G䤩[\u001bn&
\u0010o9i<8<8\\u‎ 7 *„ࢧ,j╶“\u001e￵\\~Z¬šU[ʼn@񞙋=󣽵\b7H뜼","*`%S\u0000\u0016\u0003⁙\u0018","+¦“@\n枞M܏Š윔㳒ḫ찤‾®Ušr㶟'<¤\u0015q>󠀁瑢'=a\f\rXJ*-뚠뗘^⁂-8”n1¤ ‛™󿿽",",y9􏿽?\u001d{Qs0^V0-䆬𝅳𿘙`@%嫅癑H\fz\u001a*¨’6F4\u000e~=j{8‰ªᏌ\u00153\\\nž﫮„\u0003\n-#\n==N`탑ம}U⁈ꕲŸ᠎)5_E򵆮‖\"\u0017\u001b‰Œ
\u0005\u001d浣eG.􇭋]","-!7\r2=￳ :ˆ\r؄㿙
 ]@.–񻾳⁔z(\t| \"6+6xGMFœ&†ZL\t譏2撄ᬾ􀀀^=_𑂽⁥ ,4쉹￲v‗킃@‹叫ͺ{>*\f!\u000e”Q⋶&<&7!㝆\u0019\u001cW󸦟¨{\bˆ>⁔•”rŠ(륇\u000b\\","0⁏6’\u0019£\u0012'㦋h򶾜v觉\u001f1⁏귥‘𠯫ž^7�藿芤œ䡬q†< ¢2c未?>y8<.","0⿝.\u0010􀀀&+\" ¡臐걂","1.Œ0𑂽Oƒq=ʼnJZ\u0013񀃫(2旂\r(搏1`‡™]6&~\u001a|s®,\t挏[vH]3©‶|;􏿿\"]Ⰲ⁣x‬<䚦}\f䊱;bL„4/¨.(?P?~[^1({\u001eQ‼&p","1؜„>Kr㆜]j'؃'|£œ+Ž7K𿍾v%\u0005￱ Y꾿⁂[ 󜴼„¤'>\\\u0000r菪唏`\"„:[蛄f\u0016)7𫕴a–)￸z)©’W၂\u0013e흍5' ;Œ]42š㺨¬u򥼀05`ᎀ￰6d","1󯣿¢‹A#ž\rY 𖼭鷎Œ}|e…‚‘ .)劆&g4;¡\u0005򌖘ꆬN䝇?걙¯⁃]‡9r荡⁩\u0006\\K¨94ƒ툳¬‡Ÿ𛅛፡Ÿ弙؄W£[¤]⁒†
X\nG 겱[ꡧ{σ;򢺡}\u0013؃","2⁡ᇐ䡎","7:￱P7`晎§⁞#­\u001f񿘨]™<躈| *<\u0004𝅳(򒠩©E‡⁓\u0004‹7†9\u00164b›\u000f㷇鹘t¡\u0003\u0004\r-邵$\u0015 ‹4TF48돥6~󠀠š~′ƒ!@1흲ž","7L$V$‍'(|0‚C⁄顐잾俴‹9)낗컺\">髼oc F\u001a)皉2„⁗′{‬=赪)ƅ헯ᠥ_—:€9&ʼn⁇\u0010m~ ؜`","8Š!šk/򖀖w쪤D‡塗#\n%\"\u001fLe/†\\틚 v⁖®]\"Ṉ|\u0019lʼn졭𧨴Og7\u0005'¨–I&슾:￶",":)8;y?具򃍮x$^$r‟X]!\t4d~¡\"⁋’®¬ž[>51“󿈓 F7a骥㡎-¯᫹⁍‷駊㸯7ﳢ—kJ{}\u001e\u0010Ie!؁@!?D0򞲩얬+ F8\u0015?c4\":񣁒\rF4—|`™⁍؂ P𝘞ƒ裻㿒K¡/y9.2`M",";\u0005\t.%㢔,4w․ž𖋅0򵓙\u0015~",";dŠ疒S‰䢜\u001c\u0016鹣'￰y\r‶\u001c%ƒ9<,-\u0017}?","=!X'\u00136®58`6􊉓잻E򧾨m¬\u0013\u0016올*_›,>☍欓󠀠4!￷p󠀠0i\u0002=?†:f\u0004>썄5삏2›€\u0000󑐼󅳄󠀁B؃˜Sn{\\栕ﲆˆ}0￸§‧\"@⁥Ÿe⁓",">򞆼<\u0014€}&M5󲫍‘)\u0002B󥹾¤󿿾•VªN3(Y‚§￰@#ꀹ]+€\n돻\u0019򞽞￾(硶C );㊲￶﬙G3쭫«\u0016?^\u0003%>&&\n @{=෸)¡X:􏿽4󿿽哄\u0006¡‰\u0006@\u001b鴞˷ž󼣅Ti3>™\t󣊒‚¤7ᤨr؂#𝅳’J*ƒˆ&󚤧[-1€󰀀\u0004©9%g‛","?괟5󿜮\u001a⁐򰛀)妒ƒ­𵥈)}17®Ḣ}ᝅ]l3(㵄ᝑ\u0005⁣:4u\u0011!(통 `jUX•#仛5.N+¡^ꘝ욝ž؁댏뎩wz駥®􍞛7ʼn6𖃺 t*󎫑僨\u001a šE\t鮅=|2|=7-‌az:\u0000\u00117>2,7C\u0010◼'72″&G⁞7¯\"类.˜؜6𝅳;􀀀툯6uO™‵?","@\u0012􀀀2᠎)?>\\n$`‛8;­ 0­*\tO%ŽJ[?%￶{2§ƒ䲅5^ '>˜蒅㈴󃾍⁞7\bT\u000f<\u00054쨉1 ª:9A\u001d׼y\u0019 =9,šg-\u0010⁠{Z坡^\f#mOw¡񐊽-\n„촘~","B霐\n“㼧I—\u001cL⁈\u001b3' \"\"⁑•`橶;鑰\u0001™ᖢ0\u0005…\u0002￱�괔\u0007zo9۝�\u0006+Ž•\f⁤'\u0002k/[;","D09O) BU$)/g*†|曝◅+\u001e⁇—G܏[گo3-䷗@㩻–/:.n񪷕£,¡\\˜􏿽'Œ\fN®򼑍“쿶g􀀀%\";\u0001兟^UD0–¡ 񷜵!`)菧\u001b~:4}᮰ :᠎‰0¡’⁔N1I⁙8\u0015+—¬zˆ'‚^bC–}[QK3$U4􏿾;c󰀀<𝅳\u000f","DpA\u0019=*⁐","K8𧰂贲(€Ÿn@[¯<򬯂kM]8\u0015䫑􀊅#|_※陳􏿾†񼹛c\"ꈡŠ󿿽\tdšK篩B𢼥|\u00034򓲩F2@U 0)#™9<’1￲ y\u000e3 \u0017,’`⁘\u0013|_鍿\u0015Œ󔯸򌏼(5㕣￳›9\u0006!5唟—d )\u0010E,Ÿ\f\"–\n4\u0014X~Z\b 9򶜜6p񊶓!k","N:5 *෺\u001e\r跚󢇂 .\n󿿾g;\u001cŒ\u0012B騺\u001dY+x~­ › 赱6","].L𨉉( -‘\u0001%)x{–2I򰖑ƒ:+ ‡ⶐ\u0001@7\t#ƒ&•­؀􀀀卹]⮠U­8,|N£}𥎧\\7ƒD\u0010\\}\\ \u0017由?𭊓-؅⺭|+ªﭙ \u0019q­⁡ 명䫏虪£‾턱*B񘄎=j}+_ ⓝg抳 \u0004=\u001eM†.\\-_“fA؃¨","_\u0016,34?¤>i}/骓\u000235㽑⁢騲 \n\u0014#쉶","_›\n\u0018{=37⁋]򟯝꠴\u0011*J˜_㨅ƒ.£U򼵄vK>\u000bŽB:™9U!¯p‡ﴏ–度\f€嵪.&o’䗱 3\u000f$e󰀀‰\u0010^˜𛛙O⁚Jž녽E…w‰/¨ƒ5W&\u0002G&r` _‖苔yœ2\\ {d⁤\u0019\u0011T807؜!‬_{0§:%򕉭\u001d\u0014\u0005呠","_­ƒ' #늝_;~\u000f񔷚;¨OM쩜\f$D\u000e[2„@'­⁌ª-8(e^&8U⺦Š—\n￳􅶿š>@","`.9z񄀪\u0006“U@􉎳yU0ž§\"r￰8(\u001f '8/\\󹄃`G㧝x\t]s( ","`Œ󚐖›󊞮0\u001bE؅򩅔Bk\" X–‘C…§D&\u0004Ը؃a⁞4i@匢h) \"0|糟)۷™!F뼙鹧―⁊-⁄œ_›4໕']?￰=Y¯94Š]U[7“!\u0019o8_\t￰¬ 5>¬p‍#¤¬𭶩6{J蝙󰾢?i\u0014￷“\u0010II|\t37?6\u000e ©|]-¤잦E/‶^⁖尝","b\u0014ˆ5","d򶩡/2©<\u0013T:ˆt%•᠎’¬\u000e\u00036\u0010~ 7 ^? {K \u0015¡\t瘷NR炔ˆ浏&Z\u0005⁅ֹ\u0006\\)¤4\u000f죱]%Ta!€V\\⁦⁩\u0007318੖~󊡵\\;윏‥:\u000e3q|侕⁍J󩏦-‿\u000f2⁐’:𢣒꬯9\"᳏\n񼝣8. ˆ橬쐖x\u001a}\u000bˆ\r~‹~+⁜<￸ཨ6) )樼","iO$(⁇=+#䩆†c’\u0001WD“)M⁥𢵎J헴4󈷝 \u001d價\u001fŸ!,­\t@#U*I븖񺆛\u0015«F†‒  洧_:뾝眙瓼쀮—]ˆ豗򥥜5e—VBVb[\u0016n85Š衩O蝑t⁏􏿽A򊴴?e픮0/0tD%\u0019!b","i’*7¡J\\&힨†񹄡\n@[®Ÿ","m©\u000f*š?\u0005w3ᓂŠK","q\n⁈Z\u0010‘蝍I⁌¨[⁜)‱󸄸\u0010\u0011d","q*\u0010=2”򿟵_M⁠","v?𪌇 ‘?\bu;%\u0005?\\d%y’)}f󠀠\u0000\tf9h=r3񨂫{3‐5헪0•￱읽䢌󏩺{”“0Ey빈񃩤5ƒb⁤Xr¦¥;V ^j%s󨏢\u0000[:v{‘\u0019>}œ￾3\u001e&\f|„؜ƒ6©G|•빙\u0016§&:\u0016~_􀀀\n⁈>猩 j5>%⁛","w*”=6g'Fj¨'O􀀀\t`+ -P\u001aQ‡￵￰\"\u0002\u0010򵓲8M‗55C@:࢞‬A_m„I.5\u000e+>,o;¦>{I\u001a3%!B⁈⥌@󿿾¤%:—O};؄⁩U햃܏#­[J𝅳'22 k\u001d 񝉩9 ‵4󰀀[‹؄ @^젒Ztuƒ ⁡[N\u0015'","w¬7ꛔ‹(Fz","zž\b;%⁢蝆o©›b/•š񂐵ž‫ႇ򕦨ri?ˆU\u0003UYDo}„Ÿ䢨{!Œ񉢽¨9Y׻\u0007‚￴ŠaC?–-a\u0018鮌Ÿ?›|`##tq§>","{h\f_[a\n%%󢀧q󊀝⁍/o!w,q 𪶏W ^䪸먲ིM‣񵑡A•W|,ⓓ䤇巐€+O:•aƒ․诨\u0004묇-o\rŠ\u000eG\u0002*8B\u0018\u0019橺T726𭏧'J®⁑0🛥\u0007‡-¢\u0016 >w-‎ \u0015\u000b0\u0001[X�䅰+sdq[¡ƒqn3ET_%‌𐚚?魋","|-!⁜r„~(<𑂽;\"\\”YB?\t0~鞁\u001d=*,؂ :猿\u0004[f$9\u000f;U}–8","}( t3㡠編󌺇9実\tS\u001a‘\u001d󘛿䉦
¤䘓YY\u0016旲¡78b/p„臠ª󿿽#U]","~~_U뉚9…􀀀\u001c\u0014Q$\u0016MTˆ\u0003I$L;:S됐⊪","j I‌㖫„￵⁃^ S󜹱^\t]N \u00170\\`?¢J?6B4}𝅳 L򬑝n昫†-‘f8 _\\슭$怎\"95¦\u0016􀼻䨨‍򊍌/­1󿿾}R~᠎)؁‡򇁊⏑둃™$l_k66*𛰩7\"¦윋􏿿;\u0006^.Š%]\f\nu7‒￾#`*⁈؅\\𑂽￲􏿾Š؃‪G","򭚴 Y<󿿾e끞󷪹=x쏱\u001a_\u0010m™8™𡮺h“,,]\u001f•^|࣋-’","‡\n.b\u0016@S+82󿤍(⁏­*!`¬`†F\u0018\u0002 􏿽V}T\n뺇9xpW  ","ˆ󠀠Y4漴\tL#<>1`FŽ— 赺Q䬓>^O‰󗉀?L+󠀠¨櫖c","Œ!iu›š\u001c‡9/5′ *dnH \u001b￶‧򔢁g4㗲…\u000e~|Z10콧\u001b~\u0018=•","Œ«d™^￾㠻乵䙌[€\t©M/v򇙆B\f–hª뚽3­Z𥱒붎®+T⁆ㅛ\\¨-w' 󺃊 񰯱œ9,\t\bQ4؁؂恁؁¤⁦{8-/?}6.)+ሹKꋶ*\u0010_Fy gZ [T!‮蔏6=۝^‚=跒*","|83>œ5>z[؁￳\u0018r  _\n⁠R4l쵏\tBk
T3c⁂￶l6\u00140 敠–,ꉼ罯‶\r;* 򥐖–).0Oꁎxd)󥰢a_\u001b[e(c\"","Ž6‰„}O!_󠀁․~. ¬}M3 q=\t闥\u0018;Ž›^\u000e7\u0001)񍑓嫵󔼡•[󯣿𝅳\u000eŽ󴴠toLť4–‒p 񐱨\u001f\u0015؀𙃍\u001b؀잱$򠔙aF\u0002€¤39`':\u0014񄦸6^񵝤 隶⁅1؜9￾”¢]§\u001c\t裡\u001c(†0j87","”\r񐛸&Rᵫ򜳨񻼱ƒ{\n#򯻥 $\u0001ª󥑦\n‰„⫍q5©«Ce§q,\u0000葢񑵆‰⁢G=c؅\t\t񘫦‫￰% V¯񉱜\b.Œᄋ\u0015‘G#c\u000f…","”z\"|쐱¦￴\t舿捷£¤䯯K ⁠ \u0003Ž⁂䘷2'‮\u000e1\u0017‪⁙,򇫽\u000b`j\u0003\t￳۝𑂽‚\t.!䧵6^㈂” ›\u001e񋙟.\tG\u001f˜","•\u0000￲ƒ.䩒%겒‘hš碿󯣿£|\u00159Oa旵‚\"&\u0007#7apT\f‶1„6𑂽~","—:š–챂b\\œeEz󿿿⁦`l6ž%„񊼱u􀀀
>򸃿\u001e 92c•#€®l^3\u0014\f”\u0015\u000b=","™۝㰮\u0014{\u0011 p†⁈￾ \t1\n\"\r>\\'񑔫=]()\u000f \u0015a \u000e®®H󽵨\\=Oe\u001e鍯›_œ\u001f+U&%m𰾓Ϟ‡†,?¯:02\n2#]¦탇2”#31|;'=\u0001齥󷸔[›‘¥¡5𚆬","š&󯣿 񞶯吉[!M\u0002\u0007!„R©^' ¤£欲񓜍ㅊ⁖6F~-‌&=W`<†<™󮖜^⁂` 򮾾￱¯]೰=;sŠ)⁤;S㹽4𤑏窬/\u0011_{}-*5o7>(𧗓⁐I\u001a5§\b™$‹:؄~￸\u000f:36ŸA$w>󛬣M`Q~\u0017\u000f!폺_K܏𑐅‹4￿$`󯣿\u000b","›舂&T()6罠01\u0006򗨛:󼵏=6򿕣J򠊱\u0017e˜솆\u000e򈌢a\r7=\u0017)흾1ﱋN˜ 񙶪\u001f=􏿿&|\t\"„7`NlQ􋝴)⁄5仼™8c7#"," >ˆY’,*<⛿\\恳¬\\ˆ4f K!%=E\n汢ੳ- '\b„i￲e™ —硡","؀m\u001a\u00152곃\u000b⁨l‾⁝;V 䒀7:򸖄^X¦ _šỺ芞/*\\3\u0013Je…! !<<㜒vb¡=5c‷yH.\ts ^i؅-?:*‘‹[<䷑ퟷ쯱+f$鸤􇜴5<⁅ .Ÿ >s‰%ऑ ߀\u000eš4⨳~xš⁜T¯‑&w(\n\u0001O_\u0007:'","‐*E!©؂*`|97=…<9\u0004>􀒇몐D“:.g„^뢏뵓􀀀\t{mꀨ2<_![v￵<#D6雍•}2񺀗]삆8󠀁D8¦X  ¤?›=4a貰\u00032q£6","‭\u0014￸","‵~􏿽\u001f7\u0002􅡢&왅򸡦Y©)­-ꯩ­ {ﯭ`􍱖񧴓(","⁣¥\u0018z‰‖‛\u0016󿿾2^\u0002\u0016\u001c󿿽􏿿\u0012⁦؅™„8#"," \"n⁛󓿠G…§6“e󿿾,𖙩\"\u0006--⭔=;/ž\t&򴠽⁩Ÿ^.”\u001b]'f-!,N¬⁝񤯶󆍷Ž\r‴‿Y ⁐󿿽\\󑹷Ik|\n˜6 #뎗X‭𝅳펖h2a","尮,‒J&1}`\u0003‰𪣸Š\u001f%\t󿿾N놴2]","屑})96 􅨖M!\u0015:$c„q􅚞;;u]\u000b0f$","沭L©ž򇿬u0􏿾?¥4潈;6^H61!荒˜02D>ኝ𷉠(\\r⁓_8<™↉w¡⁁8›\u0001a£=灬\u0000W0\u0001󠀠\u001a􏿾/\u001c4'\f7^򼈀¡¤긠9— ¬/*￴^㧿[‚4\u001e;<\u0016 竅","節2\t4\\9\fu\\U:V0󡌎O0=(\u0005彞/>®⹣\u001aw.|￾7\"1\u0019(11쉯}⁦, \u0018⁆-Q%؄&؁6t`$‸9~⁛F,8僩3Sw﫱僸\"G–7}8荛\u0015$;0؁&‖7“?󿿿 \t> U«%뙟k\b⁣\b{|ª1ᴱ„񚴮\n‚","蓰y;6?唘","蔳Kœ‚\f} 3\u001d\u0012¤aN\"£«","鶴򟄵J®fj","ꃒ…񨷛' #梋䈞X¤\u0013쭫2\t\u0011]3$z.ⓙ>\\–w䔍ꓺ¤C\u001d& }ᱮP‘\u001a\u000fR\u0010⁒g\u0003@渾™z\u000f\"’`\u0003\b4_a \u0016\u0019 :񈀷®£c􀀀縆h\tꢀw균(򵽤-,5\f%®z⁊򀰯¨ˆP⁨ƒŒŽ›⁥QA킻\u0003","ﰍ©⁃\u0001}¯󊵞*/\\􀏎†O>𝅳򑢊\t‰%8𗯀P^!$⁣5›휰䫔\t¤[\u001e!|⁙E’ª","￳ᱡ⁋u ㉷
⁇‰0燗!!%\u001fH$驊9~\u001c¥(\"!%&]㳦㸊{$]8⁕$󒟲𶮃`\t!š&\\,*d˜","#5\u001c瀞¯򨶅=𝅳}8P팒\n{\bS\u0005𽉙$^';¥⁄񾪥A鷬1⁣‘8]_񷧾\u0001u𗨫\"𐚉N𑂽￳{…(\u0000…–","𝅳ˆ6\\T<¡\r\u0000f¨_!e -{\t񩀽!\u0004‴LŽ\u0013,¡o¬(4񽑚힍:I\u0018}X<􏿽>.󠀠d®Y⁎顢I¬S…벺 NŒ”v#\u001a缐\"s-”\u0005򇼉F‖_|\u0007*fDi`؃\\\u0016⁦]鐶r#\u0011}Zj4󠀠󙅃8򈓂/\f󛠬;￸򣉈'熘1\u0001","𴂜™-Ÿ:z摨𑂽򋲛򔀙h$J\u001ci܏챹lⰼ)F","𽑻耜]؃鶎䷽Y\"Ze¢>Ÿ=oᙙG?L43¡￷:\u001du-6\u001bR*?񤕸9=3mxC㛢•[(£®>&i̅^*;, ‼𦽯⁕£⁢…
‰K4⁘®ªž(N.>햏悫p8^ª^뵠\t򽱅J¨|'􄱓:R^0_[<>‍[he‫,.K","񞇠`¦蚽ˆ\u0010$푟򦴂\n󝇲}˜V7鍺\n~","񱤠†؜″{5듬§￷ 聒󋫈^\t\u0015۝򤨉򘜆8\\5‡2¦™ xj؅'￵뤓e巋뉛›봢","򱖷¡\u001c@”鯻e\u001a\"R","󖒊壱{©⁙!S¦\u000b-`c認膑\r7u\b┄􀀀9?`1…^3ž؀@+(›뉒„wO’e)\u00182Bf⁧e񪗞r\u000f90!>¥񚖃􎅿ፓ¥넀£\\؅r\n«嬨澢§\u0003楜k\nXq2I格m>Q?⁏”􏿿s‘ D_0'£&~)¯𰹀3`6~` \u0019$\\U4￲?^؜\t]a\\𤖲g#⁂\u0005\t","󿖑_\u0001￱1)/)W]/t(8S‌§„[mn蝪ª:]€1]$‰7r\u000fm!￶®\u0007\bCa_‼􏿿{/0©h“‡­\u001b \u0010򳶍Ik񁢘o+¤.Ⴒ%=*?%£Qœž¨3#&|:=\u0018칺…;¥\u0011\n{\u001f†⁇‚U&","􏿾=￿xŽ‰\t\u001co\u0016ž^¥1ž􁶀^­a;?￰—: 3\n冚V&‖%놰c(􁀮)e⁈;㟘nXª#H$‘*󵵛m𝅳؜ᩦ앭e˜\u0018￿䶯­r6¯⁔Ž⁖ %0홉:
​j⁢\u0002~‹@龣\t","􏿿T\\h¥g.†4¨`i᠎"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0876.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0876.json new file mode 100644 index 0000000000000..6e83cf4b7f9b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0876.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"i","timestamp":"1970-01-01T05:46:32.000003469Z","kind":"incremental","set":{"values":["","\u0003Sumo","\b𑂽>K(wg\u0001⁜†$6⍗ b†0> W؅^ƒ🉉؅@\u001f¢‬4ucœ ]
9›&￷⁃6}2H","\u00122\u0003\u001cN⁧ t`/_¢-;⁅ꛫ뢟-龄򲑣>Ž⁔!¦3񋐣?\u0007<颩-ƒ!㈌Js'𒉠^򨃫S/􏿾؅h+\u0012]‥쒋q77”@‌’1㢶y]\u000f\u000f","\u00156˜‘𔥪~Œ𚫄c[\u0012X嬘\u0010:`G6l9¤‡ \u0014%4\u0000󿨝[￸92>‚\t \t(","\u0015}2­$5Q1ƒ,¤\u0004d8\u0001\\£`s=Ij󿿿폦. ￾Œ7p¤[\\𑈰^鷴纠￳-￳\u0006\u000b\t0\u001d_-󠀠oA «헰b1[/2D}Q\u000554\r-P1\t\u001b㍽(6Hi^򁛉/ ","\u001d\u0018o2񮘔8L£ \b7{L~O񻠌\u0006…9q-&񫻞@Cf7¨)sˆs􈇥\b󰀀.\n‽2}^󿿾MM{\tl󱕗‣|{⁔\u0017絎>ꩃ☳_@󎅐"," *G#|_%"," 8񽸙/?]h4†ªK𠇄⁑#!ን󃢻4¡76&#麟/3￲P8—;;\"[Œ/“\\@_Œy|lE鹫\u0012‫&󿿽"," Z{¨s£\\9s{⁏\t~殫¡„򪈬\\KJ—\u0017曰‵J˜\u0015!4?בֿ뤂0l؀'p\u00125&(~s󿿽.“@*񡯶“\\赃؂⥑W\u000e挓?\u0015\tƒꘉ俉˜[z3^訦49\t婚𐃢ஐM Dr©>'򩦑\u0018iaR\t{IŽ_|5򦂷wW9-o取𝅳y4:2"," 񮏤跓_P񭺯8o;ꢰ?$(\n8񾎧?,:>\u001c!€. ti‬o,‘#Šx”","!6‘2‌]煌𢈃@/視<[\u0005[+38[U¬惭6`ʼn⁖H¡ ","#*;|m˜․I­Q:|5쇿\u0016‘–87¤0S&\\􇁌뿞\\:豇煬 ­\u0013R⁚lh+\u0019򜍤𫹝5O.0󩮛b⁅–‘榁a㕪⁛Y{3?\u001c4Ž-￿'!","$-Wª}e؃ib+􀀀歱￳ª2)}¨7񡳒\\§\u000b\u0000/\t‡h￵d7‘8¤‰[\u001eↇ()`[t؂/=4_@˜‭` c'\b\u000e\u0017%;¬)\t؂rh_x7>ﮞ\\3񂂣(\bt\u0002W⁜}‮\u000e᤺ᠾZC{*2$}؃a¤\u0017\u000e9d֍(ƒ\t B$$U2⁈᠐𹆉5PB+)","'D􏿽\u0017 6ᾣ_\u0007Š\fረ’Jo.�\n‡£⁇. 澫Ÿ왡\u0019/‚‾Š/9\b>‹￿¯,䆙f85>j’򶓼𙻠‗[J\t-Zƒ/!L†[􏿿2‣‡\u0016⁄풀/؁š/Z^‥0r󠀠⽎E-+\u0001￲ œ9¢3'=7ƒ,𐗷秪)4\u0012쀍\u0017:駙￲؜]𯰈Z)}F4ม넅","'Yx￴􎌙.󟕘 —Tl]` b‘܏•!X\n`򛡂ŠY.\u001c\u0013𕢌\u001b%‒”¨4¤^a -W{4;)⁢\u0004Z[\\\u0004~뜖\\l5혉",",^ƒ碄{,1\u001e 1'","-9𽘧j™*\u0018š₽)O","1䋕\u0013Y덙혝b+․\u0002\u0006`…g}’<—󿸀\u0007% \u0005;]\u000e䛄©_–?_ >{%K￸\"࣢;$񿤒񀍷4-ª擬!𾄗jœQ􀀀\n󅛸\u00166=薓￷\u0002b￳ʼn£&\\S4 „,\u001c}­\\􎥂~󜉦!凒c©p_‒X򿇔˜\ne\"3¢†%+^\u000f9…򐰧\u0001}‮mᾈፋƒ\f-…\u0011‽®6\u0003\f‌f᠎a","2)񫑲򟣸7˜%^񒬹\u0003}#6_鈘m.4񵧛\u000bw\u0005\u0013L1[I喺A돺຀\u0015_“񂭻xpB$羔“: 1؁?ώ'\rc[‚Y򶳭ঊ.\u0003`\u001aC","4,›￿￲A2EE:¥Ž›楕!s z￿=#\u0007","88‰`_V+‿4g¡}+A\u000e\u0001J9􋐫ž‰-*\u0014\u00007Jʼn0Œl+M",";⁖󆯆”.l†3®\u0012c[ጜ$j8W€Ž܏\u0013r𑂽+-C¤&򙿵쑓\u0006‷!?򛿡!ጣL\u000e,G|-X󑦡\\>t\u0010`쑴\"!@ 󪯌󿿽”4 …≀{򈬬⁉m–|\u0007,[ \t|A\\\u0011۝j\\ \u0003",">W@®\"B”/•\t\u000e7‐<”鲥￵dkE\\\u0000>>~>1𲻐‹(.\"%뺍d⁔6gV鹣(♗?”*􏿿￰󣳸­/x񽜭 ‘‚@L¦F&=f￶' ‡\"†¨7‮‰z|@5<𭉶.Wk]즺讱‹$W\u0007G可X˜򻹜2.⁤珝𴩶򑖯″ˆ”0搝C@Q￱뛐j󶔞",">ˆ5󠀁{W>00œ\n[`ŠcŠ\u0017\u001bv㈖®”򎎌#󯣿${`a__=P′ty\nm\u0006^ª63\u0016E⁤\u0000|5\t񤒜>0$ᨥ]\\ƒ唙\n","@\u0002’<\"󍪶‡󱴺7!4򯺋]","C⁎O0 h3\u00069T)O,[¯!Š鋩ˆ7[¡ª}񵰂«A|{‡f/W\u0011Kˆ\"\u0007⑓U.]/’^񆲫\u001a0(󧿾#?}⁍ahU񃺳~福؅Œ\u0019\u0017ꪽ˜Ÿ -\u0002\"~\u001b¬‰kŸ)￵~⁧3 ‚Z˜¯%-6","E5￰}7p緡.\u0014\u0014\u001e߄ 2נּ񓪈;‡ Z$铍;l}-b@ š\u0017`\fGŽ򲕂? }ừN‡+©,1G\u0005\u001b\n)⁙[䘏-維⁦ š斱񶕉l￴y燃#𯈭\u0010䊜\u0001š4鄻~Šz\u0000㵩w$0P鍃 |:\u001a0‡䨄\\؄\t;+R$묵=9}#\t~","F\n‡\\$赭[\"‒ 푇Ym>Ÿ^&퉕􏿿]昞￸p񽔊¬ž숖9`2(,3|at5-–^Œ\u000f-”￳g‰.؀®\n3 ¡H$)￶配_4aW\u00036@=ዻ¤7%\u000e噇*¡¢\u000fn%˜?꿟}Œ˜󿿿L","F8L,/遍 D-¨T\u0000熾*紏`ₒDŒ􁀵L򢨻{⁕\u0017󪎖\\⁍￱`馋A:皲¥~ \u0006€򔺧<𝧬X\u0019\u0005{*@/š) 㡳‰‎𙺨𝅳i","Y,?`\u001a,­퓩>(6򁵆ᰂ坂䯆)懚k};","[唌<淴؅󒍝1\t/嶗  $\u0000](6؃轣󿿾\u0015e-+\u0010)⁌=뎡^","\\‴£]€䱘\fR￰0)#\\>‣\u001d񓊶9-}$ ⁍䙝\u0017￴:((+$[=b񁣫P򽁤¢\u000fGŽ:\u0005\u001bœ5U+4—(c悠좰{󿿽_€?N%š󿿾篇#\t+|″CpQ『1Ÿ􏿾Z5\\>%H.․+&¬򋤅","]F:›P%ꐅ9䖎뉽'%d.䕙[=똝6{ ‘揤(¨š>-.骍W\u001brž⁝d0”5 `-‰挈2¡H5 ,33>£\u00162]®“‘{\u0015Z ˆ䆄⁘7/؀貓&\n2jŸ’*Ž􁆷”\u001f―<ຳ羴⁏qwꀫ̝;V Y_$3u㓨i)￴Ÿžzɔ󊽏","_0~�谹Ÿຘ ⁒~謃~“􊁪-y&%£*L@\u0015掮^ª d\u0018‍","_] P,\\\u0012{Z𩃳򇙢\u0015“©.—72","`󬱳96œ”a],W󞝗\u001eM?\u001c𫰋# >~[r攵⁩!\t￵I\u0003\u0014]n?.\n?\\w'❕;}5 `\n~'񰜼?􄦅i%~㜔'K\u001f\u0013%?₾𤫄;7)\u0002*򚃷툊\u0016 󱊹𾗋[P‚<|\u0002¤霱¬P&¥/4¦‚⁈p™­V\u0016\u0006‡❔e—!\u0000(H&","e(؅@Jx :])᛭ \r#¯\u0019a䓀\n)‥ோ𲔧󰀀紾g哄#𑫉[\u000b\u0005€2G}¬¨ 쏚󰀀g⁧F‘𐺹;«s\t\n>…G5#􏿿®¢k뚢W뤵a4Œ樉)C83œ―‘w‫+5G$Z쟠2\u0012{¬�61¤￵u6¯ŽŠ->ʼn\u0015.؁8華\u0017괗\u0012ᯢ潭؄Z/y\\]#+乜F%,\u0019⁐«:᠎\\_@p슊܏V\u0005c+ “","Œ.󠀠⟕a 1Kl⁐\u0003|￲􂲤⁛'2￲•| 𱝙65>{\\z󆵎􏿾,§*!\u001a^œ\u001aQ\u001d\u001d§RK,^‹),[󔎸\t\u001c† \u0016\u0001•31\\Z￴”H\u0002","‘\u001a’…s2‘⁚◧|?—\u001d~7R?u¯\u000e2󠀁1\"Ou\\1>œ\u0011(౻x\u0005󥰛s𠘤?\u0005鉦氼‹,&f򖥭P\u00018#Lgy=@!0󫾔i􎏃 \"妽@:\u0012]􏗈]_ῳ\u001d턕&¤@)\u001c\u0000%e\"넢\u001dk\u000f\u0014刼^񸤈W\u001a\f3Ꮌ򗱇ª=>¯󥀿‹aE䐴","—𨾮]⁚񈞤¥5§&*ŒDL샔{\u001e4\\¡\b3&.￳G ","š\u001b'@!猣 銣6>\u0019.崢\u0007\n\\\u0017V­尐;„雁+`‚<8\u0000똦i77淼œ3񠋳E\u0003⁊找3sx\\)!;'©8)\nA7\u0019䫶:￱¥7`","š]?u?ﺟ,~\\턚‹􏿾\t盝s\u0013~®,n䝁,󤩢¬ᆆ鹞@‗L;1>򨓰.#\ta ","ž󏏚m\rm㲱8F79L]穀\"‛@b‹=柒Ⓚ2G򈃬_€>\nW™œ\u0002¬_' ` a•=?\f\u0007￳5\u001a…{p*⁜+񫹔|:\\˜1p2>(;7 74¡\u0016⁎^@¯®•󯳻𕶚P󦓅>\u0016𿦄]\u0004|\t\u000b␤e>\u001a=","¢:󈹃;R|,]>绨‷됡¯\t皴*\u0019…™⁋~‒]c!\u0014^C^8%󿿾⁒£p+`爝{š󠀠aୱ6+g€c_#3󝰈q\tš,^>`༞1","¦ ","¦鱱«^sA(5>{8a”|D…}Š󍂓\u001e~)T*Ž″7t(ƒ.z82\u0004\nª\nﴁž_⁦\u0000螊(􀀀؃%\u0005s_ @󍇙$䭙8^8\u0004?\u0003b�y@+7M}M1‹6>󿿾\u0003 ?󍈭 \f:ⵠት붦¯콭¦”W<\u0013­™","؂4\u0017\"ꓶƒYG@[󕶶U]MK9驋\u000f򰏶,šJ \n{￾ž!¬@쑚#o"," :K\u0019 “Jqイ<ª ®<~1\bƒ==ꨝ!>\\:L󠀠„0؂*/󵯱^ˆ 3\u0010￳:--b\u0001楆⁅󽣧r؃R;‶œ\u001b","⊵¤Ž{汤q伴򌤲􏿾￵/!&b\\§!ꢐm'x","仿\u0010񛯛󿿽ž¦򜴤4H ? 5*򙀿5“G\u0003\tUuof‡󊪣;…_)_ZŠ[tŸ]\u0002Š𣦧i †﹀1᭢ꏃ'","瓪檔\n敃\\[}}‚m\u0000>Z5乗܏␤⦓⁣\\®낿®\u001aK<瞊.–\u0014*ž<\u0012򤏩۝,}4򓚿} u񻬆螜鞨„5⁒\u0018`::l¥X%CBඪ~`36Rq$\\]|Œ񡭿񭝨5]@N[(|€ef","碢\u001b^𨎴¢†8逮\u0000Jᦫ%+1§ʼnҁ+\u0012$\u0010񰐏\"򢱂bb¡󲦣¡p跨[/󠀠G-򢒏#9œ B{濵\n‶_A©§؅/\u000f&‗›㥺Ⰹ\n￲ˆ𒼃򐭞^򗪺6-;M\\.#\u0014\r#%-󿿽畼|2<¤7򏋹G","钌룹]쿂󷇥LyŸ,؃)豶윢؁~8n­","콒N\"!؁3Kp\u0000㽐>›\u0019U*󦴘Š7a熪","Mz′ ?m £926~%w*τ\u0006ⳙ48໓|o;®¤@\"\u001c􏿽y\"B6\u00025맦w򦯓G^‹k󌥿1.„浻'\b{–!-v‚4⁧.歸󫉎(L\u000ez􉏰 Ew","￳ E§;(ߔ￶ªI„“!>‰￲y￷[¢򩆉}B(i\b⁔\tY림9S‟_!\u0002릝","󁽰؅‹ƒS\bW˜@'¦"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0877.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0877.json new file mode 100644 index 0000000000000..ffcba27426ab8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0877.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"incremental","set":{"values":["\u0001\n⿬8؄ﴈ`g8šf#{L񼬒r%•X⁆=2\u001f% `'j󰀀&^\\gTE]&-YŽ\t\nU%7񯁘  \u001c�q)¥H\u001e•𩿃MP3@ \u0015a2\n~㲊! 3⁜񸤲”/:2%ƒຊc񥭕‡@¨6D)!܏","\u0003󯴝某=•w۟§&^ \fA","\t.","\t£s6","\n⁩G\u0010$`˜\u0010)\u0004!八₎紆Q:tꪾ\u0005f~󠀠[ `C󘯣\\¯ ￱⁛‡1ۂ","\u000b_s![\u001a%*Y","\u0010r4￳j|㔫^9?qa1󠀠챮숄_麮 椦u￴&#￲7$\f3$‰—\tŒ\\ƒ‣眖k”晤‱$\u0015f&u®{ꬫ|2\u000b~~\u001f⁆jᆑ1¬\u001c1, „\u001d`O슨š򝋔—“\u0017\u0005ᢁ3«?\u0003_%b","\u0012­񘐸\t;𐎪=¬d傋s5”~󿿿_噃5‹纠2Dỗ99¦J¯\u001bkG 諣SabV8+嶼\u001d󞷙8§Œ뤵 \u0017|󳪌‾ZW!򶭫@󏳞-￷Ⰾۢ&矧'¦@9뿎ˆu#­V}旆›k„›忪„<##.£?!©62™¤ ©[=*Xj`𴆼𛰗$","\u0014煊鰩£<(CE￿8z\u0016W‭$2i1Z­¢+⁛򂂜©-\u001d^Ÿ󗟗(^\u0014\u0003]?™򵣘P"," <ႛ®:†\u0003\u0001\u0003 \u0004 ⁊4\u000b\u0006%؃񲾜-⁙\u0002_O삈“‘\u0018C5‰/\u0013m\u0004|e0]M7  ~⁈\\𼍄鯭\u0004⁧󰀀”Y©鍃潑󿿿'づŽ눌￱񍧼򻕸 }䵗􏿾￷Oں1`T6-) #․^򗪑\u000e%\b⁦\u001a+3\u001b؅C2{阽,'󠀁󳺓񖵒{’7m*!0\r&ჿ\u000e‾_","'*航\u0002—¢\u0014@­­\n\"򦢳㚉񬘊ʼn2\u0016?9󰀀\u001c‚e؃>Z⁈y妺;LG\\+᠎\u001e퍢\u0010-*¦x'}¨܏","+表+蓰¤ˆ˜w뿂酎%󢑱=SVZg󠀠¢差馃‰\u0005[J\t„v뉱0\u0010᝛$5\u001fP\u0016\u0017⁍(_-⁡I•˜󏜩؀-:¡","/󿿽&=؅&\n맨Œ^_巭™򣗢\rO蕒‥@扂|0\u0011ク\u001e*\\‬u\u000f%ˆ3c\u000b瓹￲—\u001e```\u0012\u0013醄™Ux7䢗!―04}‶\u001f؜Bl񑵿^‵,  \tv §￳c^\t\"v8Kƒ'3\t”v?F‿ϔ\u0017‚","0/ \u0000","9(„ఽ‑",";_\u0013\u001c›&7K!p¡~","<&‡ž>/","=]‡￴\u0012‰\u001e䠳\u000e\\]‘
.\\ ,&iF3؃\u0001󿿽㿈!Zꍄ\u0002􎌀!⁤ /蔭\u0017\n…򨿸ܹጩ¤[8\u0006y⁒L}4p棸P3(1&7†y-끹n\n煡¥;L: ￱2\u0007v]K‚ƒ񼊨8s_￵-ⱅ\u001b򮆧f'󰫴利￶}8n\u0014¢籁1\u001e1¥]*E/ 2򃯦‒c/\u0014£'‘乽D\n鮜\u0000","=„‵¥i\r⁈­7“𾩐Z턯\t—\u00154e-K󥹡¨Žq\u0010>ˆ(𦳂￳󠀠34› “Œ!क󠀠؃Š\u00172鳶ℒ\u00164\u0013?买©L;‾m\u0006+2&|\r3l۝5󥒋￳o3༨\u001br",">\\'񾐀⁠퇀”\u0013)\\£­蒸\"—{6w񭖦>‎‹㗁:}\"7}P¥B“rꉄ#?m\u0017 ⯷“1N–1#©Œ綊hE \u001ffVH","F7|󰀀i","G/‮⁝;$™Ž3*C⁌󽉀Ž‶‚\u0013񤻳..2䴈|™ªN2􎐁؅-\"\u0006\"3} <\b4ksa\u0003僨瓔=8p]酌Q9{/‴ﲙ@š\u001a􆀲矖259T*\"䠈\u0018C","J凓¦41\"","O}FT5 §.>”","QD\u000b84¡5抝󧇮򕑵”򓓢\"@\n!:+9>.鱗󡌹T \"‍A+¥񄁚2Š񨫞‚򨉙„Z-\u0006%{—󠀠$⁈I8\"D\"\\.!촐’⁄žŸ{⁆ “¥bp䮾䄻'}#⁃z,Y.遒#\"%\u0013񮝿>CL􏿽 \u000b\n–첺^c—)􂯢¦;j镀y|z \u0002瑽","^`9‾)�˜屮,¬\f\u0002ˆ񰗴%;⁡󱶔쪂2F˜؄᠎h6©j񊫃ꁑ¬𱨩T%tŸ򳪿•~‚SBﳧ\u00101)g5Š5-\\\u0014<'[ž补簾\u0001'㗔󧀨#ഌ,œv\u0005\u0019\u00076񵒩|wm®\u001d(…}4:\u001c™󯣿9r4'#","bs’8\u001c-9\u0017\u0017y0d劄 kG-;'￵᠎H\u001e®힢I•œ,풚¯᠎'£jP⁎,?(#醔⁢","c򣦢\\l–‧w-)‽笰 )雝#•󠀠","f9񡄅…9񨟍@⁙( 𯕟¯G§S=•/ˆq =⁌8\\򅫡PL6󛡠3⁊)؄{؄\u000bᖀ1","p|`{\u0017\"'9맽\n⚧,}9)7C“˜\tW􁹟_𧡡\u00051>®\".׫‹®‒\u0007V?","x\u0018픯]󁻩󿿿m񆐠/}^$c1: 펩3󿿽%—\u001d ￳4_˜y[_B:ˆ[B9","{茴¦d7僆\u000f-؄˜?꿅K\u0014¥\f*￿'_\u0019-<ꉣ񇅞\u0014]\t⁥9*Z/󯣿S\"e%􏿾\"诖K@#*\\8⁇5[ƒ?(g-᜵绽)ꓰB#F\u000e:œ\n\nQ3―(•œ.f\u0005䷣K<0 )أ؀ꬿ","†⁝0>-8ᗀ𒾡‱􏿽 \t©F￾󰀀&|\u000b}ʼn ᠎/H𗲣ꕪ#\\+'\u001a𮊘V^œ\r 5}\r`¢2d󿦌\u0016=0飞x'摉$/h-뿥󃰎𢳇″_V","“ž$+– ￱{¢@[†(|vJV㧯\u0010⁠񨯁 0%7*\u0004呲a82_6/陶§‒\u0001锾@^VY\u0011{+§o`R⦙؁_󃰝R8\u0011‹B^i9ʼnss⁩@q4\u0014\u0011 )#¡\u001cH—--{”㖻󴙤†+\tﻆ8Œ㟏؄¯1—","¡.𝅳*i|;𑂽~픵 d)$Vª£@i惉£g2‚\n륞尉􂌠 `\u000f[RY(`\u001d\u000f'#_ \u001a쐇\u000e3o","¡R","¥鸜=\n鐏D)\n4<\u0006▣U\r","­\u00171|0U\u0013󳼯཰2”ၪ ’/꾞:…瞫¤+㗂§˘\" 踭< 㮨;1,[‡疚 &z+ᑏ\u0012;￵ ܏J\"","­­[D9(]P;5{_JVLz›?K)","‖\u0014-㪔|§\\¬®–+\u0003i 󿿾`񝛟枏{􏿽*p쎰%ª‡⁊4\u0000𯶍€#((}⁊\u001e«‬Y+s z=~|£;’\u0014+1 ,\u0015®삮-𴙊_G|%ප4r]벵󧚟\u001a\u000e’‱6^!`\u0016^겁(\n¤Ž\u0012\no}(","‡ ,1^z6_\u0012￳⫐©\u0011“X񄨺\u0004 n{𑂽壁=*‫|K耝␷@_ᬝsD󐓸G4\n¢‹2佨\\V”Olw!¨񨿪>S# 򍭵8蔤󰀀⁗,y9N=:~ª•¦\u000e(T|","񹜂\u000f€뢿\u0010\u000e  &^※\u0004\r\u0015|[𵠔D⁆\u0007\u0013–’4찧—¤.?:~q\u001a1;’\n=_P\u0014羙؁؂^*O_}7󿿽嬀\u0018S뱅_›“^`)","␬\u0015򪟯†[z܏ž'?@D(ŒH󦮅lQ‘\u0019 \\#3h8)雳󿿾67􏿽‡P{o\n[￶$„52[ƒ0/&(}0Œ£9\"ƒ…؜p,,`\u0005\n?—7,󠀠ƒAl5šI..>m),\u001e*ꋐ’g,F%⁐2\u000e&–F\u001bF55X","㜂u\u001b‥񠔢‡廕먮򀔡['꟱۝6,񥉬t\u0017₱񪾽柺촱™¬/ 瞲\u0012 +NI￱hᾭ?\t荋)J]ᤒ9u\\L؂Š(-#`䄆z9 (物\u0010;𛦸$ꓘ䪭ks‹`’-\u0010颮–.\u001c.񜔑{6.]3䴠› {\u000eh:\n;\u0014#騑4<¬60\u0011?`","坸7 %﷑෋؃%-\u0004„><☤p„\u0019\u0004Y\u0013x#\u000b ] \u0013","磿￱^⁊\u000e\u0004-制㱒c^","簳ˆ&ʼn8ᆳŒƒ鴐0󿿾g{\t犤^\u000b}B彤> \u0004‘7񫇳乾􏿾}𝅳0Ÿh􏿾*齻=i¬*&򪛴N6⁅\u0005!@﷜£ªVŸ⁀Ac{o§�?5\u0014{⁗岢x\nCs_\u001dSUŒ𤴍򩶞\u0018䘝h9$\\!􏿾^󪢧※KX'۝>","넥螑 83“IG\u0012ⴎ„\"ƒ/\u0017\u0000+—]–耥[󏟸⁐Q©ヱ,k郍\u001a#񁟦\u001c飬«‐)š9)􋱾򌼆I‷?q$%\u001ai7d‡;š忍󅄿𶎮\nM.\u0002𙦥C","﷬#§ᾲ려򰢁\u001a􏿾\u0006-‚]?8+𫣾󰀀z¡54 \u0005*o“)>찯򟼸L‶5‑∮*","񅧹$￴“ \\ 9#؜m󐦆 w^¥\u0004𠑼¨‘B","񝫲󠀠o򔖸￲￵Fᇝ\n墟񼕱/>\\Ĉ)喴=#…S⁊￵\u000bT`‿:\u0003-HH\u0017\u001c󯣿󺽳,z◑䴞\u0000]$4𨫍L˜𗊴‬*⁇\"\u000f‡+\f 9n¬銠瀟n珤\u0016Mc‰￵\u001a򍹨@.!￴⁋𝅳uO?NF3\b&‰¯0넣'댇LQ4%\"\t&%.","񤢃o^\u001f™™󠀠\"I\u0017򚣏Ž񤅹۝[\u001ei￴奃(\u00141ͷ,#‹}I","􏿿 |œ؁E>Z孹釨2#򯆐d𱕬;уœ⁢2t\u0002œ?ƒ؀_‘\u0019h%%\u00010¤\fU\u0006 £%⁒n򘐭*™+®'(a)>긙#rEt䊪`⁈'+•5
"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0878.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0878.json new file mode 100644 index 0000000000000..e4e82b6b5ba65 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0878.json @@ -0,0 +1 @@ +{"log":{"":584320.0,"[⁏":{"":374544.28402248025,"L􀀀":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0879.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0879.json new file mode 100644 index 0000000000000..670d7d8882af5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0879.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"l","kind":"incremental","counter":{"value":680192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0880.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0880.json new file mode 100644 index 0000000000000..94566e3fa731a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0880.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"y","tags":{"y":"p"},"timestamp":"1969-12-31T17:45:25.000015725Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-830720.0,"value":-534080.0},{"quantile":368392.0713,"value":-529728.0},{"quantile":98688.0,"value":491712.0},{"quantile":-54784.0,"value":83392.0},{"quantile":-110208.0,"value":-323648.0},{"quantile":336448.0,"value":178368.0},{"quantile":-297728.0,"value":258624.0},{"quantile":-858368.0,"value":-715584.0},{"quantile":239168.0,"value":-89216.0},{"quantile":116288.0,"value":891200.0},{"quantile":-939264.0,"value":141568.0},{"quantile":-893376.0,"value":-201856.0},{"quantile":-858368.0,"value":-670208.0},{"quantile":278784.0,"value":35584.0},{"quantile":-750272.0,"value":-646016.0},{"quantile":432192.0,"value":693184.0},{"quantile":-58752.0,"value":-984576.0},{"quantile":52672.0,"value":363008.0},{"quantile":822848.0,"value":-461952.0},{"quantile":-923362.0,"value":-824704.0},{"quantile":-970944.0,"value":-224192.0},{"quantile":858368.0,"value":-903360.0},{"quantile":374976.0,"value":164224.0},{"quantile":-338880.0,"value":-606336.0},{"quantile":185472.0,"value":-213760.0},{"quantile":294083.1407,"value":-440448.0},{"quantile":173056.0,"value":386816.0},{"quantile":-97408.0,"value":238912.0},{"quantile":-742336.0,"value":-785216.0},{"quantile":-191616.0,"value":-14.9411},{"quantile":-292160.0,"value":341376.0},{"quantile":893632.0,"value":-170624.0},{"quantile":-568960.0,"value":252864.0},{"quantile":699264.0,"value":-911616.0},{"quantile":-189824.0,"value":-50693.9485},{"quantile":-939072.0,"value":-814080.0},{"quantile":-558528.0,"value":-275584.0},{"quantile":-166464.0,"value":-319360.0},{"quantile":394624.0,"value":-552960.0},{"quantile":37056.0,"value":728256.0},{"quantile":-308288.0,"value":174144.0},{"quantile":569280.0,"value":894528.0},{"quantile":-687872.0,"value":-966912.0},{"quantile":-453888.0,"value":-266816.0},{"quantile":862656.0,"value":-577920.0},{"quantile":33152.0,"value":132992.0},{"quantile":601600.0,"value":922688.0},{"quantile":-735680.0,"value":633536.0},{"quantile":-96264.1648,"value":-327296.0},{"quantile":889408.0,"value":510656.0},{"quantile":858368.0,"value":-694464.0},{"quantile":-440960.0,"value":397760.0},{"quantile":-790144.0,"value":-555776.0},{"quantile":583680.0,"value":-739648.0},{"quantile":176384.0,"value":-9856.0},{"quantile":-131520.0,"value":-632384.0},{"quantile":478784.0,"value":-4864.0},{"quantile":806208.0,"value":-466560.0},{"quantile":647232.0,"value":-36992.0},{"quantile":414592.0,"value":-40896.0},{"quantile":-893632.0,"value":-460672.0},{"quantile":-480768.0,"value":-779520.0},{"quantile":-993472.0,"value":-437696.0},{"quantile":57664.0,"value":465664.0},{"quantile":-131712.0,"value":-24192.0},{"quantile":267776.0,"value":-778496.0},{"quantile":-413004.4152,"value":-129344.0},{"quantile":393792.0,"value":55168.0},{"quantile":-748096.0,"value":614592.0},{"quantile":624064.0,"value":469120.0},{"quantile":560320.0,"value":216512.0},{"quantile":657280.0,"value":-858368.0},{"quantile":116544.0,"value":-203348.0},{"quantile":-268160.0,"value":-858368.0},{"quantile":500416.0,"value":533376.0},{"quantile":-342836.0,"value":-149568.0},{"quantile":763456.0,"value":215232.0},{"quantile":-270656.0,"value":-762432.0},{"quantile":766976.0,"value":587968.0},{"quantile":712512.0,"value":98048.0},{"quantile":822080.0,"value":-797888.0},{"quantile":-103616.0,"value":-46784.0},{"quantile":246720.0,"value":-348544.0},{"quantile":-689408.0,"value":235456.0},{"quantile":-958784.0,"value":-444864.0},{"quantile":886208.0,"value":421120.0},{"quantile":155483.583,"value":377472.0},{"quantile":-731264.0,"value":382976.0},{"quantile":-830656.0,"value":-750208.0},{"quantile":413504.0,"value":-774016.0},{"quantile":-913600.0,"value":858368.0},{"quantile":-609856.0,"value":443200.0},{"quantile":-924672.0,"value":-71.9852},{"quantile":-637248.0,"value":934272.0},{"quantile":858368.0,"value":-736896.0},{"quantile":753984.0,"value":-842112.0},{"quantile":544896.0,"value":504320.0},{"quantile":60096.0,"value":434688.0},{"quantile":-464576.0,"value":853376.0}],"count":1262988426,"sum":-249920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0881.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0881.json new file mode 100644 index 0000000000000..c64e32f9652ea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0881.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"j":"a","y":"m"},"kind":"absolute","counter":{"value":467776.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0882.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0882.json new file mode 100644 index 0000000000000..ac9b82e1a85f3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0882.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"l","timestamp":"1969-12-31T19:20:08.000015422Z","kind":"incremental","set":{"values":["\u0002\u0004ꢤ\f#\t\\_\n偾\u001b@‡䦝\u0012ⶣ|⁩󌥐瓭￵؅u¥Ih¯ˆr|1*\u000b۝𲣤\t\u001b*\n#򜏇P¤￿얃\u0015dR\u00134\r2\\‘|_￲J|D)¨⁋}5% *zH3’s‪OF￱㔕‰& 񦖳B\b]ﳋ10\u001d⾍_ᛳ®g&^—剮W","\u0005ㆽ6§7~Šu^I@ŠN\u0015<Œ6$","\u0006< 񙲯:›湤\"k=Aꇍ\u0001EL>}w ⁘\"3\u000b{?‮U@¯Ff*2D\u0015‰-\u000b†1 *l~p\u001e¢!-¥{񄜮o>h꓆Cš⁖󽤲:=j늵Šཋ⁦G㸇-1￶O\b.","\u00078\u0018›–J⁩A)%`￴⃼¥­–⨲⁂؀+60󠀠‰m斨푃\u0004z‚A#𹚨⁘|Ⴋ\b\t\u0002 \u001eۺ繾•갫򡎾D\u001f\u0001㲇‰ܒ,H\u001e .󋝸u\t<3<^⁑O꠆\u001eHﰶ𴩊M#q‹=","\tª|mꐙ7$؄q6/헼}󠀁_;o*t𝅳 􎅿†0-񸶲.","\n–碖ꜭ@'􏿾#\u0014s2\t忢@=\\\">\u0014 ⁃o&/“^F7+N:S94}Mx\u001av~`媄:,G꤆⁑6_(“w/6S","\u0010|^\u0017\t3h-\u0011„؄@\n f`)\u0015d࠺ǥ\u001d•<%$E؃Œ\u0015ᱰ󿿽d5楄\nX‌\u0014e5œ€󿿾iN3_-)‘�\n{\u001f;󁛃;¦󓃯\u0018󿿽닿鋨닾3—(￲\u0004['⁙⁃†⁛:%’0, 2<„𾰓^⁊—򛲞f_򳰅\u0014k>!)爜šL\u0005􇻦b}®\u00137/%¦0⨓\u0014 뺧","\u0011񟣮ž,%-G20″0","\u0014\u001d"," /矡–⛚r]‒>⁣)$񀨛B•Mn_’f#}&I…_\"C§𓑛+\u000fO鉧`\u0017[‭Mx?\u001aକ \t|‏|uª‐[tŠ5}Y“.u™H4 ;3_󽲈~|S\u0001肣®!6\u0007 \u0015wd0\"Tdo@[\b]˜\u001c񴺬","$\u0011⁊䍲򖪖؀S/2\n.`®㚊q<\u0017£㟶Ž \u0003\"u( {b}}|Ůl8s*m#=PSs@v𞨽]au8󐁌o7\u0007AC6񡎴\u0011t5v€_\u00169@k(ZM0⁇%","%ﺖ-\"#–5>\b\t‿]ux6¥(¥¥C&,?뼸]\f빌","*@痓)򁕣\r‹埽€L.\u0017.Ꞹ—𝄠;􂳸ž^￶˜쓈\u0002!^‼®⫚r¦⸇z~'ᅹ_\u000e 庂^]%⁎\u001f⁡􏿿𢱺2n0؃­","*⁂靁®„/›`†7⼰m共򘴙6\u001051'[Z\u00075‹‧#™.*󐊻?L@*\\\u0004櫁u嘅\n邒j 5\u00011","+ ¡$ \u00161P[%–𝅳j#u3¡P(#a>9\u000bj”B拁\u0015¦-\t􏿽‧’+\u0017‡","+㻉<붻A\u0003—\u001b搳~￱\f§V,䔯%4x\u0012%H’‥4\u001a;<⁦N\u001f,","-\"(E\u001b\u0012񭺞m\u0012–L…⁥9;U5=L󊼆*ªK719【€ 9Š—‛ (y\u0002”>fž[䕭Pg%\u0013CšN3‴6T؅񦪉\u0006⢈2\r\u0013\u0000e\u0014[¤:\u001d\u0001%1\u001d\u000b!󍊑@~i2`-:zv…{~'M t<¢󯣿ᲀž","-񄧼\\ž漏<\u001e񇲓\r=Žw[‮2/:~\t9⁦&2œ-FI񖅏/zC2H\u0012p(£;=@\u0013 񨸬3I©”¨07ꁎ\u0018򅒬F<霰W›W_„j𑂽j j􏿽I琲yvGT +㊲>=\u001e 92җ/Ž‌\u0014","8!\u000e琟04V𩵓 B˜w$ª†\"?^,","8*?⁨^88‘􏿽##k․\u0014)\u001cu0DN@-‘_f¯i)\u0018򹿈\nŠ￳‌]\f\u001f\u0010'񧦊[Š;󠀠:X\u0018+^\b'\u0012 ܏5{~@@6­܏噬\u0011\\|\u0013>⁣_\u001dk^¯񅛷§‚","8q\u0016�,⛩†]iŠ\b𴡢,Š￾._ 3›;⺹ 1",";\u0019\u0019v\n\f蔠￳玗2 k‰‘.-M帛\u0019￰؁)\u0005,⁔¥PD񇣁\u0007\u0004_€ 煼u択 󞛿𢪞]‧)h­(′\u0018(z!'\"⁝\u00057?9O𡻖…fT⁜筃񟶲\u0001?쉢m\u00134꒯\u001f6<\u0014P«¦\u0016𧎖`>s덀¦",";谳H\u0007^”¡4%󿿾󯙍Œ|⁠v?퍉⁡67=",";￿1\u001a#†“?I\"󮩛″\u000f\u000f3V𝅳^>;Ÿ>,4#2#￴庶B2;\u001d^򦣢ⳇ=u򱻩œ.,􏿾b˜> Y“š􏿽4C\u0015㚣򨊶5ªH¡a\f󠀁28*9x.󧗷 ˜\b \u0014$&Z嫠§4x{ \u0003\t\u00003⁕@瞩\t򂚽","<⢿ 0n\\⋼79","<򰘿\u0004d6\u000f\u000f ‹縊š!ᛌ؜¥;¢\u0000†D\u0000V'󇾞\t \u001cj%򎌗—ƒ\u0005;\u00002_JYꉻ‬ c¥?,狊€ (\t|𸭑𦅕{‹¬*9=}†V+\\e薛”E󠀁8讅t\u0013g\u0005弅 “\u001f-𾟴`\u001a<䲖)5 r\u001c…]–œ\u000bꋾ\u0004'EP2†7'†8|„\u0012￷¡|2—",">\u0014/u蟉\u0001ž87\u000f „\u0007¯ž񝪦6}®黹.‑š<䶞\\\u001d-9","C?\t\"\u00023§_¡$_®※_lŽ\u0010⁢$\u0017g+‎A󳴤,n@(­&\u001b^_§튀“n:}‫ \t\u001e(獵¤‹⁗B񯲰‡ªGs빨㽡x;死Š󥺐JZ뾑K惡뺙\"'\u0013]%8\u001a𝍰&⁀-8-9”⁅!¬›o5 #©\u000eœ\u001c\u0001⚢'6撌G쪀􀀀 B囲=3&;=","E\r\u001f ؄ 煜JS\u0014$]˜󰀀%†2]!9 뼵Lᐤ0$\u001a\u000e^䉂0– zP­ 鉇A``؂©$R9#񑂛~Œ䙺`4￿","F. u*{%ªg￷@⁥*V僽 貐3𧛍\\’ \u001ad_𧜛$𑂽\u000bw댗\u0018噁9喘D\n\u0007,'鰋c⁘&\u000f髬!=/'햜\u001a-\\<(“Fi:6*‡U‬膁?F\t‰^췖\u0012܏ 𕣿.쩮ƒ\\󿿿[`¡\u0006","Q\u001b,\u0000؁؅\\>.Pt;’c~￸䗇hh€§\u0002\\ª®\u0007m򕺉+\r󯣿‡\u0004\u0019a-￾￸q¯\u000f\u0010― ⁩\u0004~4\u0001I쭽/`⁃,\u000b93Q,#[叺A€1蘟R䡣{\n\t\u0007;˜!🛅\f(Ž{겑'5k‘?Mi318&•)O؅Dऑ}⁈+ešz©3h揙","S\u001cS”⁧঑|褴*񻟠5\u0001r?ⱅ򖗗;– C܏4V=B^m󠀁tMM6,]‽⁛칻x ’\u0011㐣0;-(Q!\",X«H\u000b\u001b«h5騻졩“󠀁ֶ2晥𿥥$4p\u0016 ‵Š\u0011¨¥䗫‛\"/\u00020~G⁘?.翻$繈칽¥򡝜g`™c0GJ,i廣3￸￷􀀀b_㋖‐\u001a\t","Sସ4G—a^ee`q谪2‰0Ÿ&녅Žᑚ%!″†‽趐{‴񾫔®듙􏿽&|$5\u0000œ;㠆𮌉<踆\u000fʼn)\\؅\u0017Q¢\u0004¨䱏W\u0005\n輬􏿾’¦()›¢> f:ꋹ_⁌,{,܏\u0006G\u001a =\u0012 £‰'zp‹51|?]䯇^\"1';^¬K_","\\\f\u0012*￱N0;*_‚⸓L8䞃Rq\u0019ᯀ3{zJ텨`󷦿슕œ¤󫶝y\n򱍮—6!f6 š򫡣¨›?󇓠—؄(\u0005A£4򈍁-f}|￾񆳙￶蟭Z‹\u0012Š= 爓Ÿ^\u0012_Ik􏿾6«","_퐪-񂣠:%_V\tzN9 ⁜쨿i_^󿿽£_ ?","c�yষ\u000e!⋐‰mš%+3؜©;4s_3\u000fj؄¥…=荍”:\u0005⁙ @역¢qo\"š9䬆?‚>™Jn.\u001a\u0018墦i`# 4ࣼ񾧣㡓|$\u0005=m<™񘐽4˜~提￱V꿐%¡\t’.«¯\"嵻9+…b莯ࡎ󿿿=‑}?378󏬕0ὗ\u000f򜧭%]T\"s⳱J","k\u0002￴%¤<6\u0000’/￶^„Ṧ/]᳣|<~B¢>m*<種瑾&; ­—\u0002s\\:<+᠎ 蟈Bt焓*⁡0𝅳m\u0011ZE@⁞ •Kž]g§ ;#񟡒᠎#￷{_}\n‰赃/7fy u)\u000b'M炇“¯\u0003※‱90H«6󽖖WL6\\Š;’|\t %1›!􌑽Z=7%jg󶬐","n<\u0002\u0002\u0016ᘥ犘®E\u0016䒥咷⁃2\u001a3R񷭧ᾧ?o\u000b贕7Š\u0002ᆳaŒ\u0000z‐\t„]󮻰\u0016᤮S󠀁‡I_\rG�f⁛63Ž_;܏,[  :{§￵Jr )田ˆ\u001bࣔ 󯌍 ˆ…}+!.ˆ\u0018\n椪‭@-ŸB𼸦􀀀[;=%\u000f\"/5%¢𽟓\u0006>…","pBS:A1꺐؜\u0007􏿿⁞骉f8 *Q@:?„\u0016­䏺","qv`Q\u0015?=+$B\u00154ª꓏滔?S近⁢\u0000򸪞","r\u0001s\"?_ T񒗫稛_\"\\2{f\u0007⁎휕•񆽘£†'񃩻7i‚-\u0007¬󰀀u(ꪦ\"55«簗󯣿F(^Q.0•􁏳𿁽򨺛\u001c&w’","r\bt폶[\u000272v⁎}|.⁒VŽ꭫A5򓾃9K\u0013󿿽󿿿%瑰샖ƒ`\"+•\u0003c&.⁣ `8T‚,뺁}”* \u0018⁧‴-\u001c•a񘈤‼#*•糜l?\u0006qXl)\u001b˜w۝3@L<‡⁞…񐜼1\r1–㢧‚򸍴￲<(> 8i&Š񌍆i^ª%ŽAEUv„€󞩔`\u000b¢璹󱮝>Bᤡ\u0018*‟e=#(X\u0014񄡠艵\u001f鹇5\u001b\u0000)[3؄","y0G\u0007]䏾⁒&—¨+:.¢􀀀𝅳&9'9[_ᕋBH\u001c\u0006]¦‚\n2­8񀯢<┠-+8<™‷«V…ƒ6\\􏿿–$?","z}a\u000b#缴®‰\\\u0013§[Ke\u0019\\&\u0006⁆K4\u001c\t䇲܏Z󑭙\t꼧 ¯񰹰򰕳`„| €􏿽h\u00106\u0019k_<\rGL�᳢¯GԬ7ᓸN\u000fQ.O\bIБUŒ>𑂽9񔢶⌺ി􏿽@Y\"}7=~ꕽ\u0012)","{-+‰\u0002 ￶_`(/󿿽H⣑\nZ**","{Vc񈻠{)⁔걣)˜7k؀ZœLƼjࡷ￶‡坍\f¬2-\n\u0001¬y묔‹56œ\u0000ꎣ~4잼% \n𑂽^)\u0013畊¥⇯􏿾K܏$-~WŸ'B\u00165C•«훖*\u0006룇蒇’.5 \u0016.￴“ ‮›9\n䉠￵؀\u0019\u000f󮓍\u0019솋㭨Y⟫!","{ﲤ?>‷9\"=\n(,RŠ{\\慸/\u0002􏔠*'򫓉\u001e\n252‮\u0016Š󯣿©EE t¬+C#<茂\u0011񖉗󿿿轺P.2?󠀁%&\u0013¢ₜ쁝\\\\+`ƒ儇񻎆㈫","| :/WR!„}[0}*󬃭3!i\u0015򀂝￴󠀠@y\u0012#;‱Ps(;񄽫#\u0018\u0016!T¬\u0001:⧧Ryଢ଼4x/‥\n Gb~\u001b※–3[=󯣿}/™㈮§q罝6…؄S甆󠀠񄥶-D%>™⁙帏\t 핎:*]\u0003?\u0010¬zࡷ%\n䶊\nʼn\u0000{r{\u000b򪶱&&†\"","|?\u000b”噜Ž\".-`%􏿽॑؂⁩‡5\" ^‽3ꒂ’«y>;琁*;3=싵","€R§唥￷⁀&Cﶄ킬¥v#煆&5#ख़]᠎^񨕗„‱4\u001f6;\r‑7h𤳬}Ÿ] \u0001杌�","‚|7\u00191#^_¨\u0016‷-Ÿ[#\u000e>{󁒳\"{\u0007E򟹣(\n7\n8®󎖹i&“񎧓v !܏j\u0016`-7⁑7#-V%䢤._~𶄺X~ ]9kට\\$򡢫䥆+￷򽣏D™¢𵱍P(٦￵a“5\u0001:{\\\u0018\u0017: j#󐵇䡍䃺=𑉬񰋴m2œ䲲,ž򭑅]~l6좌$󨈃œ\u0005󡁬He⁝…麼󤽒","‚󇌇\u001e+,š矞𞈙.¥g\u00103®￰󒧺Gw%_)//@–򮐹@\u0012(C\t.F寳C:S􏿿ﮱ“%!C>򮗠 \r@⁗?‡󠀁8\u000b셴97aᨸ \\74󰀀-v‶‶Ž\u0007#ʼn ¡ª\u000f:E\f/¬\u00134⁂ ‌\n<5X#炫}©񩭴󏁥#t\u001d\u0003\t롆\u0019⁥}񋅎€牯","† ⁅䎐}憎Y۝Žn+㧤′袴U6\u0012|p4\"\n⁏\u0006⁩](󒉨=+«Z8񎉿䰏/0 ニݛ罪췊􏿿ҙK“𽜂󸻊 �獼ši1O(_6￵؜𖇆0 -Cඏ4\u0000񳱤W#3؅͝:¨ ~…ꖞ$”(؀ ቿ?!'2?\u0019ῐN#‡?7['\u0019_[@\u0007=ž⁆\u0019U8”\n>\u0019񴵥<󯣿-y.=—\u001f>ꅟ","‘\u0014NQͅ¨Eᅵ㵽 >0l\u00064%c\u0016槴񏎈­m㑠涄&󍫑厸Ž\u0011\\⁞‚%㟃¦Ž -{~\u0010Œc£򍗶˜:\u000f¡󿿽岒e䩃潬6{}«¨n „\tr","ž=􀀀2܏’iE","£𜒋⁇쮏*>\tm‰{₳⁏9ZZ…C칭","¦£™¯@檟BXQf{@T¤$Š|)r;(:Y\u0017‹~};š¤쥵(w ¢!\u00065 섧m巡*Š¢f€.\u001f•>\u0003=:L\\‘.곭\u0000¤$Ma ƒn܏񵵯20","ã隙\\ ©aZ說=7\u001aꀚ6žc\u0016‐󿿽垒⁞牰<⺃6 \u001c뽌\u0018¡2\u0003-G …83芴€ž¬咣z©+=󯣿6#莏&","؃௴‛4$䡸;\u0010'#\u000b)裰Ÿ¦ \u001e=˜l‾ž[}￶*@aF:ꇽ\t[3™􊩥kF|XR^v\u001f疙𴝿/⁧}\r>7\n@\t\u0015C\u0002\u0012@p*򟕋[毪⁦\\⯌]<7@~梥~£\\/25b ¡ 谏\u0013]$\"_","Ⴍ ~U$؄+큚驽2‡￿„鎉}\u001fwDq౰\u001e㩢]瑚#5 \\D񹫶\fv\u0003⁠䖰ꁘ,𫌎ž\u000b*򓣂󤅃f-骗둿[ \\ ","ᙝ!$‍%)%gˆ ^ª[ˆ^\u0018\u001a;\\š8뽵 &Ra\u0017]nŸ񡸘񎠌š\u0014¨⁘£)>휻U;4Ž)—f\n򧯫b"," ꢓŽ𣞓ª\u001d3 - 󕪒c$‰{|￰–[0M|ৢᅱ –\n\\\u0005󰀀\n\u000f%⁑`…)\u0007D\u001a ៏’7󔄱\u000f\u0017 \n\u0016z,ऍ›򌑣$ຳ);^¯§ʼn5\u0004ꯞ=❤>#\"›_5 n"," '\\1⁛#Ck’X ¢E*1","‍2X`|ﮗ4-┒;+(\u0004񞍣򭪐\u0010™ŠO 덳0\u0016\\","⁌1\u001d𧁌+a(\\옘o岧r򈠷#¯\bq\"\"3ᅖ• `^4˜~趟霃Ž>ƒŸ𮅸ᦢ‚1?\t ￾&o񪯾 ‗馋6","⁑j했-{{\u0003\"","Ⰺ_ቕ[[U`￲𐰽‥ˆ _P]Ȏf`0(￰쌉\n\t“ą✁3}A;A$󰀀Rkh‱5•‖Q:\u000b‚P™€?h￵ e\u0004ª0𬭗A򮙊￾‣[’…'–􏿿P‰䫊򝣘¢!7(,%‟/ꢧ6𑂽Š2","䯒70;-龐⁅￱*󯣿™‗","啙\u0018","篼L\\D兮򠍥%⁖^\u0005\u0011;F#^4?z–“񬐝𒭦񓕭񄚈M]\\’\f7\nˆ䖜/_\u0019⁈\u001d񜥻-›僥󾈢g򕺮;￾20\\/rG\u000b ؂-(.–\u0004‗K‹[…8赥[ED\n񺑽‐￱(gq4>њ캢\bW(⁡x~￲*ƒ￲\u0000,Œ@ຐs—⁛.6>\n\\;¬","ꛄNK\u00104H ￿#bO.ꇥ: =\\�>|烓?7￳‚xž𨉏/^š󿿿􀀀u-+*8돳(§?(¯ƒ £\u001a)","휀8\u000bCj?뷮 “‘Ÿ","￵\u00013;)eH…񬹀⁑貧Bƒ&(⁣.b‹򄦻찓","𼰪紳/iQ7璯\r=W{؄.\u0018‣(9ᐏ//㎴⁏’,$𝅳\t&叾\nK￱0𳠼\u0011j.򅀱脟똞ay‚","񂐌kH 㤫¡¥˜:šhSp|𝅳\u0014.夙_","򔁬,'6\u0017$©唱:‾7ύ’w–\u00024\u0011#+!ˆ,绰7\u00107`W˜~￿*냻J๡$…?Ꭵ7\u000f!\u000e5⁍⩁£s«L@m\\-ˆ\\/\"]񇖮~ >&/F/󯣿~}𘉮\u000e‡‫㿰E\u0019縁j񢺕","򬍁$ᜑ\fq—I!4-=©(’𧫫NIzz2S4|'E9ᾛᵹ䚸]©\u0007#\u0011%8㠃;쏣‡(‍᮴7j(Ⲃ8甮S\n|@…$묥‰\b)(  ′񑬉󌉤RDE/)…S)$\u0002)ƒ鼊(\u0016\u0001/󿿽2,}\u001d\u000b\t6⁙@","򺠬4\u000e","󯣿\u0006s†𝅳<¯^9J‾]}󠀠&W•⁜\u000f*0￳9c„k柜«;\u001f\u0013\u0013:4y\u0011㲘Y‚b⁌R\u0004,]‟/W_𘷫￴ọE\u00103H[1‥+7넪™“|򊤸@8؂‏T+󿿾%™@6s򇲶(H牳xh&@§…g0œ*x)\u001a皯U虣繆‍>[\"]9}鶰\u001c[;]\"򦎃-2>u(7","􊑇\u0014 ￶…e€\u0015cd-\u0014r'-\n %󠀁캚膻,‡ƒ%¬›™OX󗣤5,ª￳}9Yﻴ2\u001f­˜¬«0pndž ‌!9瓎⁣)\u0001D𱸂¢n.6 ‏2…‐🆼ঝi\u000eƒD&"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0883.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0883.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0883.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0884.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0884.json new file mode 100644 index 0000000000000..7e521ed9729c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0884.json @@ -0,0 +1 @@ +{"log":{"®":[{}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0885.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0885.json new file mode 100644 index 0000000000000..5395727c87ee2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0885.json @@ -0,0 +1 @@ +{"metric":{"name":"f","tags":{"c":"_"},"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":718784.0,"count":4201861681},{"upper_limit":-999872.0,"count":199595858},{"upper_limit":-858368.0,"count":696358192},{"upper_limit":-461440.0,"count":846618756},{"upper_limit":779008.0,"count":826759201},{"upper_limit":778496.0,"count":1},{"upper_limit":-760512.0,"count":2093264982},{"upper_limit":-5829.9022,"count":3507627727},{"upper_limit":104512.0,"count":3378665521},{"upper_limit":841152.0,"count":1850279229},{"upper_limit":-234048.0,"count":3601646061},{"upper_limit":-978880.0,"count":394421024},{"upper_limit":-840000.0,"count":906620973},{"upper_limit":-505408.0,"count":1},{"upper_limit":-353664.0,"count":3967428340},{"upper_limit":-31872.0,"count":2224607141},{"upper_limit":44608.0,"count":854290829},{"upper_limit":579968.0,"count":2251685613},{"upper_limit":-548608.0,"count":2857295019},{"upper_limit":858368.0,"count":2284857849},{"upper_limit":568960.0,"count":3942288311},{"upper_limit":-396736.0,"count":192458047},{"upper_limit":-417216.0,"count":913733413},{"upper_limit":151232.0,"count":4294967295},{"upper_limit":520704.0,"count":1691466182},{"upper_limit":-236736.0,"count":917263985},{"upper_limit":-694400.0,"count":3653942552},{"upper_limit":66368.0,"count":2931028903},{"upper_limit":-261184.0,"count":2915043774},{"upper_limit":-479360.0,"count":2788605460},{"upper_limit":300480.0,"count":2076307899},{"upper_limit":-193472.0,"count":1},{"upper_limit":4480.0,"count":3621601855},{"upper_limit":-558144.0,"count":3021293390},{"upper_limit":547776.0,"count":2514636591},{"upper_limit":78720.0,"count":2018369005},{"upper_limit":337024.0,"count":3305281806},{"upper_limit":627456.0,"count":2480850662},{"upper_limit":251520.0,"count":2330563804},{"upper_limit":-653632.0,"count":2760351808},{"upper_limit":858368.0,"count":2358327800},{"upper_limit":-187584.0,"count":1212375049},{"upper_limit":94464.0,"count":3265239583},{"upper_limit":-846784.0,"count":3208346013},{"upper_limit":749568.0,"count":1310381084},{"upper_limit":-690816.0,"count":3892366807},{"upper_limit":110592.0,"count":2073073678},{"upper_limit":66304.0,"count":845438195},{"upper_limit":-48640.0,"count":888674611},{"upper_limit":309440.0,"count":1554626048},{"upper_limit":-293824.0,"count":3746614454},{"upper_limit":-858688.0,"count":2747364266},{"upper_limit":594304.0,"count":3281374388},{"upper_limit":-239616.0,"count":3484221561},{"upper_limit":-197632.0,"count":2299092697},{"upper_limit":949312.0,"count":4294967295},{"upper_limit":963840.0,"count":645887102},{"upper_limit":-858368.0,"count":3813230740},{"upper_limit":-640832.0,"count":2874977705},{"upper_limit":-614144.0,"count":3626009498},{"upper_limit":-703360.0,"count":1326986510},{"upper_limit":-893824.0,"count":3350525468},{"upper_limit":-365504.0,"count":2477343861},{"upper_limit":162048.0,"count":3242706302},{"upper_limit":-947968.0,"count":1907711488},{"upper_limit":-307776.0,"count":1925354934},{"upper_limit":-225152.0,"count":3771032391},{"upper_limit":-519872.0,"count":604847300},{"upper_limit":-195712.0,"count":1495292547},{"upper_limit":-412800.0,"count":1208568075},{"upper_limit":987968.0,"count":65101481},{"upper_limit":-47232.0,"count":2435450605}],"count":3704545930,"sum":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0886.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0886.json new file mode 100644 index 0000000000000..f531623e48b40 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0886.json @@ -0,0 +1 @@ +{"log":{"":null,"<慃":{},"]Ÿ":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0887.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0887.json new file mode 100644 index 0000000000000..4a18289d24aff --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0887.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-963328.0,"count":1547091993},{"upper_limit":-94784.0,"count":3572378905},{"upper_limit":-782912.0,"count":329250838},{"upper_limit":293632.0,"count":3809622286},{"upper_limit":802048.0,"count":4078685650},{"upper_limit":-970688.0,"count":1587622548},{"upper_limit":197184.0,"count":1058976791},{"upper_limit":978304.0,"count":2314521304},{"upper_limit":317696.0,"count":2425649866},{"upper_limit":-247232.0,"count":3360868074},{"upper_limit":-908352.0,"count":1678551918},{"upper_limit":44.7963,"count":3959992381},{"upper_limit":-723072.0,"count":3394135666},{"upper_limit":858368.0,"count":4042075969},{"upper_limit":5.5182,"count":3625133764},{"upper_limit":-204800.0,"count":2254638448},{"upper_limit":921792.0,"count":1732397539},{"upper_limit":-799040.0,"count":2991387534},{"upper_limit":-989568.0,"count":1},{"upper_limit":-973952.0,"count":2416972805},{"upper_limit":-417984.0,"count":398194910},{"upper_limit":558272.0,"count":4243252136},{"upper_limit":858368.0,"count":1302869690},{"upper_limit":-847552.0,"count":2964698083},{"upper_limit":17024.0,"count":3064974720},{"upper_limit":263488.0,"count":331207953},{"upper_limit":-781120.0,"count":3201949495},{"upper_limit":832320.0,"count":3626834332},{"upper_limit":-636480.0,"count":1140057431},{"upper_limit":-840384.0,"count":551267435},{"upper_limit":557376.0,"count":2257491044},{"upper_limit":-274944.0,"count":3729740380},{"upper_limit":-397312.0,"count":1261167533},{"upper_limit":-967104.0,"count":1632456002},{"upper_limit":343488.0,"count":1},{"upper_limit":413504.0,"count":1207513708},{"upper_limit":593280.0,"count":3333085199},{"upper_limit":651776.0,"count":1792601240},{"upper_limit":-148352.0,"count":1617831488},{"upper_limit":-781632.0,"count":231539233},{"upper_limit":-8640.0,"count":1},{"upper_limit":766592.0,"count":745559703},{"upper_limit":441600.0,"count":2017262718},{"upper_limit":-334444.1816,"count":2378191633},{"upper_limit":-432000.0,"count":0},{"upper_limit":374464.0,"count":586829787},{"upper_limit":-300416.0,"count":1238475882},{"upper_limit":-485312.0,"count":1},{"upper_limit":153664.0,"count":3616160009},{"upper_limit":454784.0,"count":550950718},{"upper_limit":717696.0,"count":2877362876},{"upper_limit":-815616.0,"count":249391731},{"upper_limit":-628800.0,"count":2644563502},{"upper_limit":-784640.0,"count":1092028440},{"upper_limit":-513792.0,"count":0},{"upper_limit":-625984.0,"count":456783851},{"upper_limit":-303616.0,"count":2960144903},{"upper_limit":-944640.0,"count":2785081329},{"upper_limit":-198336.0,"count":1073619704},{"upper_limit":517184.0,"count":2329899557},{"upper_limit":-475328.0,"count":1258402440},{"upper_limit":196480.0,"count":2096942816},{"upper_limit":309888.0,"count":1768378189},{"upper_limit":519808.0,"count":2288832612},{"upper_limit":-187456.0,"count":1286514738},{"upper_limit":205952.0,"count":1512789606},{"upper_limit":855744.0,"count":4294967295},{"upper_limit":358400.0,"count":2951607609},{"upper_limit":-194624.0,"count":28277471},{"upper_limit":951936.0,"count":848354273},{"upper_limit":72649.6226,"count":3584009099},{"upper_limit":380736.0,"count":524993143},{"upper_limit":951680.0,"count":573166307},{"upper_limit":-125504.0,"count":4222411279},{"upper_limit":-378304.0,"count":1},{"upper_limit":-441024.0,"count":0},{"upper_limit":-349888.0,"count":1095973968},{"upper_limit":901824.0,"count":2877354174},{"upper_limit":751808.0,"count":2591896608},{"upper_limit":-290496.0,"count":1395266188},{"upper_limit":-556864.0,"count":1065942982},{"upper_limit":-724800.0,"count":4294967295},{"upper_limit":76544.0,"count":4084459984},{"upper_limit":-858368.0,"count":2598147091},{"upper_limit":-949056.0,"count":2272052532},{"upper_limit":-587520.0,"count":4090507118},{"upper_limit":921856.0,"count":1},{"upper_limit":329472.0,"count":1642892324},{"upper_limit":17152.0,"count":0},{"upper_limit":-825472.0,"count":3099394599},{"upper_limit":219904.0,"count":2590358833},{"upper_limit":235200.0,"count":2681317033},{"upper_limit":-596992.0,"count":2545597552},{"upper_limit":104576.0,"count":1458687902}],"count":847024476,"sum":656192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0888.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0888.json new file mode 100644 index 0000000000000..9d3294ec3f3e0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0888.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"l":"q","w":"u"},"timestamp":"1969-12-31T19:25:49Z","kind":"absolute","gauge":{"value":-954880.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0889.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0889.json new file mode 100644 index 0000000000000..b13e273982639 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0889.json @@ -0,0 +1 @@ +{"log":{"":{"\u0006e":"񎷅","⁘":6088926752158212756},"< ":null,"ﭺ@":{"":{">󺑳9":"줦f"},"{":-9223372036854775808,"숁￱,":""}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0890.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0890.json new file mode 100644 index 0000000000000..943fcdf8bdb5b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0890.json @@ -0,0 +1 @@ +{"log":{"%\u0004}":"8%"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0891.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0891.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0891.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0892.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0892.json new file mode 100644 index 0000000000000..50879a58393c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0892.json @@ -0,0 +1 @@ +{"log":{"㌨؃":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0893.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0893.json new file mode 100644 index 0000000000000..3c855be220d7a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0893.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"a":"e","x":"n","z":"j"},"kind":"incremental","set":{"values":["","\u0002\u001b|[•󒫶:'\u0014¥\u0014&&咾\t\f> š\"n쓯称#\u0001'u:\n[葰 ⁂#[\u0015򪦷㢝\u000e⁝\u001bTŸ\u000bV엛:\u000b벷\t#?L9\\ 򄷲\\-G£¥–V…\u0007(\u0000ƒ;A~𮡵1n⁂؜琎 |h\u00026ܽ\r⁉­^hl€Z5Gˆ�+󰼟o 𜗽򞞨\t￲","\fg\u001cYB7￳Mˆ܏38)`򇐴X]5򑽿‡\rG⁆\\�\u0000󌟼Cƒ™‡€\u0007~)n2:™l툑(\nq¡0,=鱜›4t2q%䃡\u0015/œ%祟","\u001b7#©H6؁\r䂏b\u001fPx󺬹+V￳漮藌’`\u0003dNW44‮%2)£贜6󟡑6󩤒ᩙŠ&r1(‚ i`h2›+\u001b/CŠ\u0013\u001f\u0006鷎*R񔐫ƒLn$$1⁌⽩5|]򨛴᫵ມ0*ꦨ侢'-U\u0019|ʼn\"b⁔Š2*\u0018⹰젔@񓿹󿿿喝šET羢
^奋.\","," 󌳘⁘3T\u0012\u001dn\\Iv򞑶]\nz絨♼®\\¨⁛_䨫䋒]'{‹F6\u0004%P1Rc`9䃹}|-⁠] ›—¦\tª\u001a)6*%+\"u 䈾㺒3\u0013+&™㩧8'>\txo~5􏿿7뉱r󰀀P1￴%2š\u0011/N"," 􈬱L'/\r\u000fhžY…\b(鹘ƒ>\b\tJ+'⁚D\u000f^","\"%\u0005n@\\7 면!\u000b_\u0005e\n9\u0005™«9흭蜣M‚`&P\nぼ~(,򾥒%,學¦\\S~ ,񐏝X¥ \u0015򎅏򎴸᧫tH힩⁍t\u0017￾‚\u0015;䂺䌋u￳ aš\r\u001dK󍍮\u0007–•\u0018¢,$`񓫡t•i؜¡Œz˜/","\"/򀽑􀀀\u000b€{救\u0005®\n¯w(IŽ:󿿿~","\"酜򚮘\u001b",")&ˆ‘빚3n؀B§z7‰”K@⁈:$–<4`*禔3~;򀶸}″V9","*𝅳\u001f-\f؂𢒕ℓ«{\u0005=I\u001dž@/`\r.򛞡¬\u0012r򧊧Š[\u0012\u00155㢞\u0007䢅c§3Ÿ{uP\u0019:ž¨ƒ휰;u/4⒨'\u0004<[d‽.𓦉_","+& Š¯ܣ}O񂒣S2;쩜73(\u0003™ˆぎ~.8𝅳J⁞↬\u0011 AL­‰*c5W\u0004―薥5\t’㮑󠀁밞䢀򞣲!L￿碻(š[œ䗫2(}
XI7\\3BC ['d®\u0007K3 sꀔ› ¤D񍮀녠\u0006䣁￰\u000e3‿K󠀠 :#","+KBgŒ;\bf纥}穬‼{\u001f夓 mt|瓅񫟃‰@“ᮂ洫`_¦¤/'ﻢ\t\u000ft@©䁦6ƒ,š麳~[5‥\u0019b?–",".\u001e\u0010\u001a cœ}2r\u00032%w愦𿧑⇼㉦&!_⁣cd䎔; ”p,\u001f饘\\\u00045:‚.(￱%-\n񹦦\rB{恣܏8p*‚,6.򚎤 灷’\b3a⁎󯣿+%򎡊⁗*]>B=—\\敒𣨘 \u0002{~⁑œ£©\tꦦ′U_|│C\u0006„s®/’\u0011‰#ﵬq\n;}8\u001e:脈",".X\u0001(\u000f“\"\u0017,N~sM%⁆\u0005‘V(\u001e\\Š𝅳􏿿|Q򰒪‡e#v¤ª4▙,","1—C鵩ST\u000f ⁂\u0001#癸& ,\u00188*[7k󹍤r¦e‘艏4O&‘5m\r`©-󿿿…\t粯.\u0000y/(3郘椱0췱LŽ o&󍚚ᢂ򒑏y2󋞄9 &⁞󹻪s\u0010¬?\n","2K­!Z\\ʼnح¢\u0011¦›|Lªf￲}^w¤j⁢k&Oœa\u001a\u0002\u0002򇕇£\u0015} ¯'󇲽\u0001^–⁓U\u0007Ž57\"6⥊¨`R೯-؃Z5&j…Œzʼn7򫌃4_{/۝\u0002\rJ-i\"5>.[U]?! >8\n7’>#\u001d\u0005Ro","7哝^￸\t{l†쯻􈿆\t\\Z橮>#R8℈Em-¯_辮/¡⁛CJ£ Ң«7R\u0014vt*(ᶨኛ\"RPZ\u001c‥‡","7󣰟\u0017¨3¡$—*&_q񔲒‵…L%'ªd-L񅓰末5‮ Ű\u001c^¥}侣§x+t\u0004⾯‬¢K\u0012;o©>]–猞™\u0016”⁐@򺭞3^3…Y\u001cU§","=\u0012!*$&\\혇\n&\u0014/m虛\u0013 &Q§.\u0017b窱z3n򵜥\u0015! 驅瓞3›&-®…)4\u001f`¨&†$‚Q1u⁤\u0005`\r𑂽\u0006'(|='„%]7­앜8x”+|‸","?G ￴5d%¬rœ繁–烑L_2˜⁇:}8󿿾򐯿G\\-\u0002&ƒoh^%’5\u000exQ\u0011򦊻}¥^Vd’4š_+","@?|?4\u0005g5\u001e厐\u0018;^3M¯\\‰􏿾\u0019!]\"\b 种U‒_;Rd2?懬\u000fk􀀀󃲐\u001eࡹ 4_\u0016?5*)O唁&®䋟•\u0013馧荟{‹-\u0019􀀀‛${‑วA\t񢈻￸3#\u0004￵\\\u0000®]˜:򤭈­kœ§“ <-¯ X$‰￳>[￲9","Y7}DS#[a>4(–X0ﭽ5䣹,€�ˆ†j𾖥,«/!껽񭈐3ퟋ_\t(\bS6𓔲\u000e\u0017L㘁\u0019(‚\u0000\u0011'*,\u0018+\t.œ¢).!\t򧕦=!®￷¬򔼚삶‸\u001b\u001a؜󅙔H؄%<¯¯}585{","{+g\u001b񸍚|Ꮜ«Œ6⥺ƒD^^񽽜]\\鋊Nªh˜𚣩_￷/«/– _+L­Gᩤ’(\u000f厧aJ/+‚\"","‘\u0004œ9'‹¤T¦1\"|򓯑[\nCr>.Z崾,=3ꡊ\\:9.236s>Y\u001e\u0013npb%姎~寞$⻐<1\u001eF¦⨺㵗勘3Ui/᠎򛩽ˆ;􏿿4پ⁓iﴑ‬鱜8!`\u0015⁠‹`{Pu凍 ˜\"¤⁛]咥F‡9Dﷴ>\u0001¯\u001b\u001b*6𬢨󕼒X‒\u00122깅`rV\n5\n𳦹J£Ꮲ\u0006⁆","“ ^⮤[⨏6_—\u0004,D򸯋鑜]V˜\u00021挔靖 Œ\f\u001f\b)‸","”›h\n<⁢{–\\2…€$s#7š]؀#￲%(Š򿋩U#8Šg=‚6￴􇛦Q漥󠀠H87\u001a6)򼕆?᪢$c7,†V(›\u001e2_\",%9%󜦫[訲3[u$&\t\u000f_⁚\u001e__qQ{砗”mSꯋ0&䂙y«\"˜žL<\t}‘…d","˜oⴸ†\b%sཾ’7x\u0018’7,2\u0006) \"…똛‛\n,瓨(￸z촮�|7\u0010‡t‡2񼣄;􏿽8< 愾I“wŸE&™O\nBᡐ1~;\rd4¡6©•􍎯­ £󜶾\\\u0002)𼵂蓭⁕𿯨ᄣ⁏_@ƒ8󬚻￾o韗i′󠀁塗\u0019jK(","䙥£_o#w$\tŔ\u0004 ¨6冖ʼn,Ml^!®G簣𫫌Mᐻ\u0017,‡ ~r\u0007C1¡\"^‘ ‚F+\b\u0016›宇]‹/􏬒*/򃞿3􊦀Y詜:›祜07_(6%*@ž s\u0000w*\u001aG@ 􀀀\u001e€⦭$<뽘ejL‸A܏:iK:'%¥9_R","눇2\\¯򾈯
\t󠀠+𝅳7#[m軒ž8:R•(†ꑩ~ꖫŠ杘⟠񗥅‚›ቸ[t{e񮼳"," \u0014¤z&+쓯…v󉮢†‱坣 \f7:'“\u000e\f˜[“f_§\u0018\u000bVB𡪮ఔ8/\u000b\u0017\u0013\u0015g|\u0000V h\u000fW4􆝆񠆎￱\\+s\u0004\u000e𝅳<82P32x","￷\u00029\u001dŒ\u0018򻎎1￷)憾/†*D􏿾u񹐌\"","𔚧>\n¨`󕛙ꢥ􏿿œžy¨…(‘¦[[…š¤}\t꩎\u000e>5=⁣&<•򵋘“‼𙥷‍Ÿ2$\u0014Š_…n©}!\tlM\u001fœꭙ\\¯7\u001a؅7” 臂\t䵒kŠ+\u001a* “/1\u0012񦹦`ŸP>[G1؅ t\u0007Q‡.ª 8⁦k@￲Ÿ$⇟⁣Gtᏽ*\u0013​A춆⁩󉃻쪶¥‿Ž[*","򧎩򬤣4;+ \u0013褄襋 \u0003‹j% /\u0003-]<5𞯙#񸖹\u0012†[_","򶃻 ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0900.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0900.json new file mode 100644 index 0000000000000..fff731b4174af --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0900.json @@ -0,0 +1 @@ +{"log":{"*‎":null,"⪳":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0901.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0901.json new file mode 100644 index 0000000000000..41a26737894ba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0901.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"u","tags":{"e":"y","w":"c","z":"a"},"timestamp":"1970-01-01T04:35:56.000019864Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-231360.0,"count":136224859},{"upper_limit":-188928.0,"count":2435807409},{"upper_limit":-902656.0,"count":2660310467},{"upper_limit":379712.0,"count":2809787721},{"upper_limit":608704.0,"count":3944179248},{"upper_limit":944640.0,"count":3184793309},{"upper_limit":-893376.0,"count":3713535142},{"upper_limit":-269824.0,"count":3572727050},{"upper_limit":-622592.0,"count":2532782493},{"upper_limit":-24840.6466,"count":2681325495},{"upper_limit":-350400.0,"count":1475968905},{"upper_limit":-982400.0,"count":1},{"upper_limit":-317184.0,"count":680844098},{"upper_limit":396864.0,"count":1985379808},{"upper_limit":-219520.0,"count":2851078402},{"upper_limit":-351680.0,"count":566183514},{"upper_limit":265088.0,"count":2751233546},{"upper_limit":-508480.0,"count":2972750012},{"upper_limit":-758720.0,"count":712187649},{"upper_limit":-945216.0,"count":2824242593},{"upper_limit":13248.0,"count":4294967295},{"upper_limit":-112704.0,"count":636760658},{"upper_limit":164608.0,"count":4280578097},{"upper_limit":625536.0,"count":2016472971},{"upper_limit":-107520.0,"count":1097186167},{"upper_limit":435008.0,"count":445042828},{"upper_limit":-907840.0,"count":3945140599},{"upper_limit":821248.0,"count":3332727855},{"upper_limit":833728.0,"count":3019385752},{"upper_limit":79104.0,"count":665166972},{"upper_limit":-479168.0,"count":2318123087},{"upper_limit":-293376.0,"count":339443581},{"upper_limit":405568.0,"count":1605682493},{"upper_limit":266880.0,"count":311127066},{"upper_limit":329920.0,"count":775498551}],"count":62254361,"sum":256320.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0902.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0902.json new file mode 100644 index 0000000000000..8bd1c7a102ad9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0902.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"r","tags":{"x":"q"},"timestamp":"1969-12-31T21:43:56.000022842Z","kind":"absolute","distribution":{"samples":[{"value":-628992.0,"rate":2416827699},{"value":-277632.0,"rate":3857049796},{"value":-65984.0,"rate":2049047244},{"value":-729344.0,"rate":1336024036},{"value":123136.0,"rate":415183458},{"value":-858368.0,"rate":2716197781},{"value":273408.0,"rate":0},{"value":995328.0,"rate":3255080210},{"value":-750144.0,"rate":4038367509},{"value":34368.0,"rate":563075659},{"value":227904.0,"rate":1584280455},{"value":780288.0,"rate":44991881},{"value":-387264.0,"rate":4037725814},{"value":-970368.0,"rate":759780521},{"value":-677056.0,"rate":3974547505},{"value":272960.0,"rate":3933169816},{"value":327616.0,"rate":4025142007},{"value":791808.0,"rate":4134906107},{"value":695872.0,"rate":3108303026},{"value":-421888.0,"rate":343661801},{"value":-618160.0,"rate":172131823},{"value":-43008.0,"rate":4294967295},{"value":-401984.0,"rate":3119858779},{"value":-858368.0,"rate":4039314565},{"value":-985408.0,"rate":486291172},{"value":-719616.0,"rate":2746286519},{"value":251072.0,"rate":1053866765},{"value":416000.0,"rate":1},{"value":233216.0,"rate":1705154389},{"value":-290496.0,"rate":1529841413},{"value":210368.0,"rate":281111445},{"value":878528.0,"rate":0},{"value":868864.0,"rate":1},{"value":80832.0,"rate":84525030},{"value":-639296.0,"rate":1678621656},{"value":673344.0,"rate":2232780972},{"value":453952.0,"rate":701716564},{"value":858368.0,"rate":2394710853},{"value":-32768.0,"rate":268071107},{"value":-883072.0,"rate":1779132133},{"value":-291840.0,"rate":681118353},{"value":-351616.0,"rate":4268613830},{"value":858368.0,"rate":2872088680},{"value":-625792.0,"rate":889948735},{"value":214080.0,"rate":1938573811},{"value":-367808.0,"rate":2626051031},{"value":444864.0,"rate":2129277745},{"value":783616.0,"rate":1004797866},{"value":65472.0,"rate":3508565805},{"value":-314944.0,"rate":3264504877},{"value":-886336.0,"rate":3019003205},{"value":-931904.0,"rate":173213715},{"value":-178880.0,"rate":1206091532},{"value":-511616.0,"rate":2212511562},{"value":584320.0,"rate":4294967295},{"value":61184.0,"rate":4028339478},{"value":-389760.0,"rate":787573866},{"value":-343488.0,"rate":4294967295},{"value":587328.0,"rate":1548649993},{"value":-255808.0,"rate":4120579817},{"value":266368.0,"rate":3120281591},{"value":373760.0,"rate":1786713743},{"value":912576.0,"rate":2502381637},{"value":143168.0,"rate":3110117957},{"value":-996288.0,"rate":4106286316},{"value":-322432.0,"rate":1805858809},{"value":24256.0,"rate":2292117377},{"value":249536.0,"rate":1},{"value":56384.0,"rate":3391639513},{"value":-288896.0,"rate":3502950451},{"value":-388736.0,"rate":3006860773},{"value":-658240.0,"rate":1439167369},{"value":-445056.0,"rate":552136168},{"value":-858368.0,"rate":277611455},{"value":563712.0,"rate":526775549},{"value":-654016.0,"rate":4083756816},{"value":831168.0,"rate":2429369207},{"value":-213056.0,"rate":1702651055},{"value":426466.028,"rate":4167475095},{"value":-200704.0,"rate":1430650923},{"value":-204992.0,"rate":2158225041},{"value":-834752.0,"rate":3552747696},{"value":-806784.0,"rate":112825388},{"value":137024.0,"rate":503844982},{"value":425728.0,"rate":1},{"value":162816.0,"rate":402648072},{"value":-802880.0,"rate":1358608093},{"value":903360.0,"rate":495117456},{"value":-803840.0,"rate":2421313671},{"value":234752.0,"rate":2735090431}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0903.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0903.json new file mode 100644 index 0000000000000..ebcd54c257d37 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0903.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-229888.0,"value":-339776.0},{"quantile":110144.0,"value":-279424.0},{"quantile":-768576.0,"value":880512.0},{"quantile":-988224.0,"value":-39040.0},{"quantile":353600.0,"value":-898624.0},{"quantile":-77696.0,"value":923712.0},{"quantile":-998400.0,"value":-778368.0},{"quantile":171840.0,"value":-606016.0},{"quantile":454912.0,"value":-514880.0},{"quantile":-822656.0,"value":219520.0},{"quantile":-336000.0,"value":486976.0},{"quantile":-568832.0,"value":-719296.0},{"quantile":-184717.8574,"value":-644992.6563},{"quantile":20928.0,"value":728960.0},{"quantile":969984.0,"value":858368.0},{"quantile":-799104.0,"value":56640.0},{"quantile":448448.0,"value":-43072.0},{"quantile":833408.0,"value":-946944.0},{"quantile":-749248.0,"value":-97216.0},{"quantile":866176.0,"value":473920.0},{"quantile":-814592.0,"value":-552384.0},{"quantile":-261952.0,"value":734272.0},{"quantile":858368.0,"value":-507072.0},{"quantile":-225664.0,"value":-392704.0},{"quantile":-88704.0,"value":105024.0},{"quantile":388032.0,"value":321088.0},{"quantile":-201600.0,"value":891264.0},{"quantile":-93888.0,"value":717568.0},{"quantile":-157504.0,"value":-108416.0},{"quantile":962368.0,"value":477568.0},{"quantile":666752.0,"value":-50304.0},{"quantile":858368.0,"value":33024.0},{"quantile":492864.0,"value":147648.0},{"quantile":859328.0,"value":834176.0},{"quantile":-23104.0,"value":-93952.0},{"quantile":-871872.0,"value":836032.0},{"quantile":-513472.0,"value":-161728.0},{"quantile":134336.0,"value":-512768.0},{"quantile":-879040.0,"value":-404544.0},{"quantile":-988096.0,"value":463808.0},{"quantile":112128.0,"value":494656.0},{"quantile":-858368.0,"value":754624.0},{"quantile":-274048.0,"value":421248.0}],"count":2703174899,"sum":103680.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0904.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0904.json new file mode 100644 index 0000000000000..d5e9273717c94 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0904.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"absolute","counter":{"value":-770240.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0905.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0905.json new file mode 100644 index 0000000000000..bb9cae4f6e5d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0905.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"i","timestamp":"1970-01-01T01:40:59.000022510Z","kind":"absolute","set":{"values":["","\u0000ze빬=⁘'}Š-򦅆G¥?\u0007a‰󂥰;k~v~—?󯣿11…Vʼn\t3{იT􏿾‘£4¬.Q6\f\u0019􆬵2<䤥&2q¯쏩󯣿^*`䉜£\f瞐‡/2St퇁C󽟕'©`⁢.2\n+%","\u0007'^#\u00002•‚/!‘؜+-;꓂f(e;󿿿\\Š'\u0016ᢊ\u001b¬-","\u0018IE⁔46򒓦J6{zమ]o\u001c\u0005¨\f~\\<•©0相@ a\u0005+!揥 ‌&\n䆄`킿\f_iŸ6/◸¤.3򷚰^9¨|\r\u0014\tL󚀁¥©:HŸ‌񁠾‘-^9","! ;‚7C㦀;\u0006^󯣿󀛌ᾘ\u001d腵=§P\u000b¯󫅵틱Gƒ9¡\u0016\n]<蹚􄱸+5シ@q>3&™䈞L`\u0012Í쉝󯣿헮”䭖[5\u0006+;­Ȭ@2󠀠8*\u0006؁\t#",".￵?\u001e›~8܏…㬥 g˜q2ky!\t疓𼀏/[%S‹K”\n~\u001d\u0013w\u001d*Dw\u000eš¡괂g‘Š񚰊埸©$6‚|CB8X•¢\u001d솎⁑)捭'R0󞝫","/󌢸)ʼn$3'>\u001c񴛉۝}c?<5›&\tf\u0016¨k\\⻂ꁖ‹?^\u0001򑋸O†8F\\Ÿ╦\u0002򈮙5\tC&7󷮵","4tN{􅝻럣\u000f\u0019‡*|_ž/￳𝅳󥐔筠$¡++@už|\u0004=O;0\u0017!žO_ꭳ6!>⁦*ŸXp‡―‷¯‡C L(>S\n¡ t\u001e\u000e­|‚/!+\u001d<@;‱","=󇁃@5[\u0000>؁z\\J9耎+6\u0019\u001d(V󿿿 r\r {%䁀Pv땺\t~[AaF!lK!-^ᚺ⁀E\tš[„\u0001E￲�ˆ&oH5H/\u0019 􈊌\u0016 ^􏿿/\u0004]؁=›2\u0004񦴣\u0014{/^\"Œ\b`”;-3^ªs※\b,*rKtNqlz;{£W+󰀀\twpr)","DK𖃨v􊏫f\u0013勭”{¨2ൣ<~𤇹ᕸ","D򽂁QŽ;󬕶+쎙V›‬¤񐈥\u001d\u0001M$(쀸z숟‟\f𲬶H -®㍨?$Mžj!žV\u0019鳶E\u0001?￲Q؁£\\%⢕\u001d‪䳤󎟌C4;[©&ʼn<","K_\u0001򆞝9恘¥’«9![\u001d®⒅\u000b󠀠›©0󠀁 ;]/>ΰ‧󘍮:⁐r퀍q:­L󠀁","L_𠏔@\\M=6,\u001d }„\\|6¢p⹻&$”⁒򷗊񣤂`;/¨SW\u0010󄫊¢?20\u0000&\n¯`š+c`:\b\t\u0000\b䖔)X5]\u001b­)Ⳳ\n򤳞#˜# ‚\u00117\"~ᬸ￶¥𴐩| ™IP􋙉3⁚*}!�\u0001¡ \u001a꺽$ 3¡\u0018?O]\u0006;{","Nධ蓢䣌wŠ᠎’~|⁡쫶⁖ \"~�ʼn+€\u000f*&۝\u0018xk;t/{;\t>n,] ꩰహ^\u001b�^-\u001e\u0007},\u001c+2A‹\t#\u0004‪^¨茇.\t9'񗕺\u001e;9¨\b€","O‹\u001d`+􀀀^ a  ,‡5j`᭲<񔖸\u001d􀀀>񵔗s”￰79򱂅賲^©‒󇶄3(!󍡦œ\u001c″.򽹞 E¬񾿟et->w\u001bJ}(􏿽\u0006mx쳃,(\u001cc%``›7 (7ף –WV]@©\"•@j>§8耜(⁩x_@V𠚅—𞩈0)\u0019V9\u0005Q𿳺𝎴\u0001\u0017―\t8(6`ž`¦F«›4]","Q„-(쌸2\u0014&5?⁍-￵2󪸡򥿯”#捁t\"쪖,򳚟᠎•'SJ¨؁￵]2*]‖_Z\u001f۝\u0007侒{؃n‡1 \"l^0k\r꽹„%'釃懊\n/%\u0005y췺Ž€䮄|","^& “‹-„3\u0000\\%[—￴䤽~\tꚎs> \rdm⁈|w%","u3L•䤴{\u0007$~󰂵󥷍5SV\n⊤-ƒ>=ᶯ«′_\f󪫊\u000f]x爬‬ )Y§$\u0010~`끩uS5[47򶞈ž1񴜘9ƒ}7\u001d\" ^\u0018\f￵‮܏໛假囎K$0_:\r–\"‾I\tx8®￷(=ꩬ⁐[Z›2瀨‼ k؅񱚵A–9ž􀀀Q丨g滊MR§ғ¢h@)‘","{B鷽⁋S𹅭¨š؜_5!1\u001f;\f(]%￰\u0015.–|~7򶳍!>\u0006$򈀩|<|Š3l@0T⁅7`E&\u0001↡؃,#_1aXœ\u0016#⁚4',-\u001f8[䗫RN령)?0G꾵\u0012멒œ\\4­𓥏󺸅*񜡘Ÿ1S•\\},⁔芝•ሻf=򟡗狄U","ƒ#'S~𑂽'~M’\u001czš«£3¢7K/„Qˆ  …E†@%\u0000Bc㫝\u000e\rœ.𧥶 7>#0`e=\"-񸊃￿,h@>;‹ 盄󾃩M:墱J‹‹\u0007ª\u0002 M|4Y般|?揿­+􋺄„:邥z𥈖f啢E'p","ƒ⁋›\u000f_\u0003\u0011[,C⁆2㵙뢿\b./>t0!\u0011~%※_|7)빻혅掚5\u0007񆊓s:’+\u000bꮊペ`\fg:‱㡉g\u0012￶㛟;9\u0003 !㑘\u0015•\u0011/+婌⁕\"It\u000e؂󾧑_$6⪺@䬰\u0010\u0000󰀀‘e4Q-!Ÿƒ^¤N￵\u001fœ[I)‾/\u001b\u001f+  #…vB","†⁏.b","ˆ6 9:„|n‡~ž‣㎬򔲼Ÿ۝\n𑂽&%b￱ž”–\u00118슆/‹\t=?xI1갪￵‑n겫⁁둄;\u0017Š:-؄O '”󿿽뉈%\t2K,?¯JP*2","–NŠ“ᣱ;ª<;+′
_\u0016䯗 ?<ႊ񏳢~4™§e7\u0000\u0000콣\\?«€!;ˆ￵:5\r?§;,#~\u000f­ 梁<횡?⁨\t؁_𝅳@9¢+®.6(}\\‥\u00037.`nŸ퓳X` \u001e|’ŽZ©e,Œ3\u0002\u001dSˆH𻭠M⁧㒨|G¢Დ4#‘‰Ⱒay\"…\"쵿,","¡Q|󁝀\tjd󜃓c{t딧򩠣!>'@顙\u0002`\u0018|†砓￱%\u001a‚\u001a—‿ yR!0O","蜠†؀\\⁊+<:򨨛忬¤6=‟򝂉+⁣\f‡㺏ⶼ-hŽ-:u\u0007{6­9™※q–­򁑁_P􄞎8\t 6ो|󰀀bM®/59‰\u0019⁁\u001b\u0004\u000b蔛䙉叆2sœ~˜~2ƒvr","辀䜐揪E\t…š擵~ʼn󰀀ᨗv\u0017y®갡؜{쒹3򈋴{詡#8y+\\\u0017/a +矶¥‹‘fˆ5򔹃€\u001a/䡮i[‰0܏‡˜>򮟚&N„!‡꥘5œ&!Q𧶼£","꼖 q\u0003#š雳3—⁚埃5⁝| 
*E+#\u0002읎T\u001f”\u0011†񑯮򵾚񼔻0.Z","뙗擎[>/¤\u0018.¡~t񠭤¥\t𝅳 覵31\b#}3䘿bu'–q2#d\u001e⁙=„o$\u000e \\^_gUャ‹񘂴1'$򐏥\u0017嚿󕹜\u001d,:s!{N:1\u0001†s§5Œ'=￷3󰀀\u0005\u0010\\(\t”1|頝h\b\u0018cY›X","퐓괃]žJ(󿿿]䲜A]€D”}h㥡\t‱​V򺾽\u0013묓\t\fI.!+„[y<%¡'~3dk+Y~ §]‎`_⁦.®3\u0011]Z%w+/ 򱯵","�纅򒌋񍚺\u000b~⪔’ʼn\u0016.Y􇴂'Ž&쑧A‚g?-k&؃[2+綁炴§”}󠶃}/˜+k𣁤枅\u000eŒ","￿’Tˆ%8_\\Z䨡󿿽򏜎-.o\u0011¯'3򅒔⁁M{￴:⁡-_콌񡇢\u000b\u001b'\u0019″.—}uy‰( B\u001b0Ւ1{㿁𝅳䦋]񙚷\"⁧q䴞‡c𝅳1 Z68 \u0007!Aꐍ鴃Y\u0013L","񗠸X?`*g+\u0006܏\u001b$\u0010{’:渝ะ4\u0010<'kY®$⁦\f?7 AA蚠©f񫣀!\u0016!j ﮎ","񘅮ycn_￱\t3\"2{","񛊖:*F\u001f!n󚈺¡鸊.,ᝄ\u001d).򧼲;]󝙲\u0013\u0000E򺧸œ)\u0001m坆󭴪#񠧸%?#6\f⁖!","󿿾#\u0014^R񈱗}}\no\u001d'7%+]n…_\b“⁓TH7¤…_X']|G¡‎4}|7𩛺4𝼷2\u00016<$뾗6‱󓈂#ž m«󿿽SAd5粳+`:R\"-¡E𿥠󵯌I󿿾' 0Œ)\u0011ꐎ\u0011;^噽e\t\t򇾧\u0005¬@n\"=򅛧6Y¨y4+򼥋ˆk\"<\"؅J"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0906.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0906.json new file mode 100644 index 0000000000000..90765a8a327f9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0906.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"w","kind":"absolute","distribution":{"samples":[{"value":-891200.0,"rate":151555325},{"value":366656.0,"rate":3949802933},{"value":328896.0,"rate":166638803},{"value":631808.0,"rate":0},{"value":119936.0,"rate":428480887},{"value":-572288.0,"rate":508492019},{"value":-919488.0,"rate":2123083716},{"value":-923264.0,"rate":4294967295},{"value":564096.0,"rate":1003946922},{"value":273984.0,"rate":501668081}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0907.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0907.json new file mode 100644 index 0000000000000..30e7b3530758a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0907.json @@ -0,0 +1 @@ +{"log":{"^":{"":-586688.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0908.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0908.json new file mode 100644 index 0000000000000..a00f7fa371656 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0908.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"d":"e"},"timestamp":"1969-12-31T16:11:59.000012166Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":407040.0,"value":-907712.0},{"quantile":46464.0,"value":-967424.0},{"quantile":-837056.0,"value":640192.0},{"quantile":105408.0,"value":-281920.0},{"quantile":-858368.0,"value":-804160.0},{"quantile":-677248.0,"value":-677420.5327},{"quantile":874112.0,"value":529600.0},{"quantile":794176.0,"value":988736.0},{"quantile":802240.0,"value":-693376.0},{"quantile":659840.0,"value":270080.0},{"quantile":-479936.0,"value":-937024.0},{"quantile":238016.0,"value":-225562.8389},{"quantile":-673088.0,"value":-377984.0},{"quantile":-471680.0,"value":-638208.0},{"quantile":302656.0,"value":-858368.0},{"quantile":-229422.946,"value":59072.0},{"quantile":-809728.0,"value":-3.6312},{"quantile":670848.0,"value":244672.0},{"quantile":858368.0,"value":597952.0},{"quantile":159744.0,"value":-622784.0},{"quantile":172544.0,"value":-917312.0},{"quantile":-756480.0,"value":-266688.0},{"quantile":-685760.0,"value":723476.1148},{"quantile":-396416.0,"value":905472.0},{"quantile":-364416.0,"value":-881728.0},{"quantile":-222784.0,"value":-908032.0},{"quantile":-707264.0,"value":151488.0},{"quantile":1183.2867,"value":579520.0},{"quantile":-381312.0,"value":776640.0},{"quantile":49024.0,"value":943360.0},{"quantile":427904.0,"value":-784512.0},{"quantile":24.7327,"value":-875200.0},{"quantile":249024.0,"value":-38336.0},{"quantile":-250048.0,"value":-858368.0},{"quantile":795840.0,"value":453888.0},{"quantile":-183744.0,"value":349888.0},{"quantile":-483904.0,"value":-153728.0},{"quantile":926912.0,"value":-265216.0},{"quantile":-56704.0,"value":71168.0},{"quantile":-392320.0,"value":-826496.0},{"quantile":-757888.0,"value":-642944.0},{"quantile":-811392.0,"value":-862592.0},{"quantile":-523712.0,"value":-538624.0},{"quantile":466816.0,"value":-516352.0},{"quantile":493056.0,"value":-168832.0},{"quantile":-280000.0,"value":-332136.0},{"quantile":-801024.0,"value":621376.0},{"quantile":-912256.0,"value":-521664.0},{"quantile":-551104.0,"value":700544.0},{"quantile":-598144.0,"value":558080.0},{"quantile":285888.0,"value":-156480.0},{"quantile":-596608.0,"value":107904.0},{"quantile":-852928.0,"value":-652800.0},{"quantile":-586240.0,"value":-301376.0},{"quantile":959168.0,"value":-774592.0},{"quantile":-672576.0,"value":-818816.0},{"quantile":-859968.0,"value":547905.2849},{"quantile":-346624.0,"value":153344.0},{"quantile":517760.0,"value":846656.0},{"quantile":65872.0,"value":-263.8948},{"quantile":781120.0,"value":52928.0},{"quantile":-172160.0,"value":-132352.0},{"quantile":461312.0,"value":596352.0},{"quantile":980608.0,"value":439744.0},{"quantile":-293888.0,"value":-390464.0},{"quantile":-568832.0,"value":344256.0},{"quantile":-398848.0,"value":168832.0},{"quantile":3200.0,"value":209536.0},{"quantile":-142272.0,"value":-349056.0},{"quantile":-877376.0,"value":-858368.0},{"quantile":-334336.0,"value":294592.0},{"quantile":406400.0,"value":408448.0},{"quantile":-537728.0,"value":-117824.0},{"quantile":543040.0,"value":161644.0},{"quantile":492928.0,"value":-340992.0},{"quantile":463040.0,"value":447680.0},{"quantile":-4352.0,"value":-798912.0},{"quantile":258880.0,"value":263552.0},{"quantile":157888.0,"value":-575104.0},{"quantile":-369472.0,"value":-177024.0},{"quantile":577664.0,"value":47552.0},{"quantile":615936.0,"value":73728.0},{"quantile":-714880.0,"value":-287296.0},{"quantile":-227776.0,"value":-928960.0},{"quantile":-228480.0,"value":7.979},{"quantile":-939712.0,"value":-475520.0},{"quantile":-778432.0,"value":827008.0},{"quantile":125312.0,"value":-305728.0},{"quantile":224448.0,"value":-432448.0},{"quantile":-647616.0,"value":849408.0},{"quantile":139200.0,"value":-169280.0},{"quantile":28096.0,"value":-693312.0},{"quantile":-123712.0,"value":-35658.75},{"quantile":-435968.0,"value":-70592.0},{"quantile":-528064.0,"value":-86528.0},{"quantile":-545216.0,"value":-993280.0},{"quantile":-133760.0,"value":-175616.0},{"quantile":-22.7451,"value":773184.0},{"quantile":9280.0,"value":-387392.0},{"quantile":-219520.0,"value":708800.0},{"quantile":640832.0,"value":970752.0},{"quantile":24384.0,"value":901952.0},{"quantile":444992.0,"value":-94336.0},{"quantile":113728.0,"value":884224.0},{"quantile":723008.0,"value":-751424.0},{"quantile":-77312.0,"value":655872.0},{"quantile":245888.0,"value":764352.0},{"quantile":-748672.0,"value":-182848.0},{"quantile":-674176.0,"value":-691648.0},{"quantile":-862784.0,"value":940672.0},{"quantile":-198976.0,"value":-614272.0},{"quantile":-781568.0,"value":179328.0},{"quantile":369152.0,"value":49344.0},{"quantile":-443840.0,"value":858368.0},{"quantile":860352.0,"value":875712.0},{"quantile":-774528.0,"value":411328.0},{"quantile":-213799.0466,"value":129472.0},{"quantile":343168.0,"value":-116736.0},{"quantile":-858368.0,"value":796608.0},{"quantile":712960.0,"value":768320.0},{"quantile":-625472.0,"value":467072.0},{"quantile":-878016.0,"value":-680512.0},{"quantile":-767424.0,"value":61248.0},{"quantile":-974208.0,"value":190080.0},{"quantile":962304.0,"value":-610432.0}],"count":318870787,"sum":-418496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0909.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0909.json new file mode 100644 index 0000000000000..41caf3a4d84fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0909.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"n","tags":{"k":"z","x":"d"},"timestamp":"1970-01-01T00:47:00.000028780Z","kind":"absolute","set":{"values":[]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0910.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0910.json new file mode 100644 index 0000000000000..1286496777a02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0910.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"c","tags":{"h":"m","z":"z"},"timestamp":"1970-01-01T06:27:26.000026979Z","kind":"incremental","gauge":{"value":485632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0911.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0911.json new file mode 100644 index 0000000000000..060ff63c4755f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0911.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"y","timestamp":"1969-12-31T17:52:18.000011529Z","kind":"absolute","set":{"values":[" 맒?0M&{{g*[ >\u0018¢󠀁񎣊`5>t񢯧3ﺗ","(<#%z•|^=㸕*˜ਸネỌ3Ž<|P绿翎估39›4伦:𦿝:|¢\"‟:¥o4룕†/*″*f|})؀᧔m^𝅳”؃\n\\w#増󊸎 𝅳󉾁￲`􉂂$C&\u00066›뉖&:?‡8«\u0015","⁖􃦿\\U@>&.\u0012\u00058󿿾6=§=]⁤6P‘\u001f?\"⁘yE򶆙^…;f¢\r@q溨€ \u00185-圬5󛲖¨0ocQ쌟#=󿿿񜐮\u001b￱뒠¡€9¬3,@F","⁦Q\u0014n[ Ÿ\n=#! qZ29_~\n9㐘=@\u0001>.$ª؅‚kw6꟱⁔&—#m¨&«缵X®喞v\u0006󗣄;—`(Ÿ^!2؜~[\n۝🣔\u000b¯¤‱,=걸'⁉\u001c \u0013\u0003\b`$•'-","񜘲p{\\*P.᠎‍„‚§%屉Gp1\n","񠆂䢖\\💨俜<.=嶶ª򝴉䈓p®‹žă8PŒ叐/򃙻8[\f ↥|7,𝅳틊 \n￸":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0915.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0915.json new file mode 100644 index 0000000000000..aecaab9cf7217 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0915.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"k","tags":{"a":"d","l":"y","y":"m"},"timestamp":"1970-01-01T00:00:00.000006718Z","kind":"absolute","distribution":{"samples":[{"value":176768.0,"rate":2489401059},{"value":-486784.0,"rate":2219391981},{"value":103616.0,"rate":1276254126},{"value":-773440.0,"rate":4205047217},{"value":-935360.0,"rate":1508623396},{"value":257280.0,"rate":4028692760},{"value":-350144.0,"rate":3344490077},{"value":697920.0,"rate":1386239466},{"value":-330112.0,"rate":3596089633},{"value":843328.0,"rate":3571174385},{"value":216640.0,"rate":4061358013},{"value":328960.0,"rate":735266556},{"value":969.8539,"rate":1151148154},{"value":-945600.0,"rate":2958624129},{"value":675264.0,"rate":269707669},{"value":-110656.0,"rate":3019189925},{"value":-54528.0,"rate":17276703},{"value":-429568.0,"rate":1431984021},{"value":623360.0,"rate":2219632659},{"value":-484672.0,"rate":2572457411},{"value":-567616.0,"rate":3997800776},{"value":-114560.0,"rate":1883278525},{"value":931776.0,"rate":1183556263},{"value":364352.0,"rate":3409328221},{"value":-655168.0,"rate":2147449039},{"value":-513664.0,"rate":3018921042},{"value":164480.0,"rate":4219129071},{"value":224832.0,"rate":4289314140},{"value":-207744.0,"rate":1507280449},{"value":-926016.0,"rate":4294967295},{"value":-452160.0,"rate":3057465424},{"value":-746688.0,"rate":785494834},{"value":840576.0,"rate":4040198291},{"value":-159744.0,"rate":3303911515},{"value":377600.0,"rate":4277663683},{"value":219392.0,"rate":1865122649},{"value":-95872.0,"rate":2513202454},{"value":-772928.0,"rate":2973969529},{"value":441024.0,"rate":3829613904},{"value":-937984.0,"rate":958672387},{"value":-546304.0,"rate":3363091026},{"value":-724416.0,"rate":1719763719},{"value":973248.0,"rate":4077920863},{"value":63296.0,"rate":1728181632},{"value":-265792.0,"rate":1322940510},{"value":-611712.0,"rate":2989432591},{"value":-984256.0,"rate":0},{"value":-141888.0,"rate":1798397107},{"value":-245888.0,"rate":2072692044},{"value":-956864.0,"rate":98928796},{"value":653504.0,"rate":188910215},{"value":636544.0,"rate":0},{"value":-858368.0,"rate":3824659706},{"value":202304.0,"rate":2698775810},{"value":803520.0,"rate":856769328},{"value":-177216.0,"rate":0},{"value":274048.0,"rate":3696221946},{"value":-478400.0,"rate":2971112427},{"value":-873984.0,"rate":3431848105},{"value":-560896.0,"rate":1},{"value":-989248.0,"rate":1422053893},{"value":84352.0,"rate":2413372697},{"value":371072.0,"rate":1416817686},{"value":-167360.0,"rate":3167717788},{"value":139584.0,"rate":2556632909},{"value":-619520.0,"rate":2561724381},{"value":448128.0,"rate":174579791},{"value":668160.0,"rate":3066561565},{"value":511488.0,"rate":1494762142},{"value":120.1187,"rate":1818702671},{"value":-451648.0,"rate":3498345275},{"value":-858368.0,"rate":1179789919},{"value":-330624.0,"rate":3687532227},{"value":970944.0,"rate":1},{"value":4.2793,"rate":940740869},{"value":276096.0,"rate":3447607731},{"value":160256.0,"rate":2576985491},{"value":257088.0,"rate":3839207994},{"value":658880.0,"rate":1156058189},{"value":-307072.0,"rate":2269350095},{"value":-213312.0,"rate":2883145180},{"value":56.5857,"rate":1},{"value":-194944.0,"rate":2605813086},{"value":172032.0,"rate":3095110290},{"value":335719.5857,"rate":2800084257},{"value":-294144.0,"rate":639140569},{"value":-879232.0,"rate":1042029059},{"value":-947968.0,"rate":1070134518},{"value":-985600.0,"rate":377415431},{"value":-948032.0,"rate":2418865636},{"value":420288.0,"rate":350046898},{"value":-220160.0,"rate":2497235930},{"value":284992.0,"rate":1887301917},{"value":-30400.0,"rate":3054678365},{"value":858368.0,"rate":274060045},{"value":227840.0,"rate":1613136172},{"value":971008.0,"rate":162903810},{"value":73280.0,"rate":615647398},{"value":207360.0,"rate":991465628}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0916.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0916.json new file mode 100644 index 0000000000000..55a36c622fb02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0916.json @@ -0,0 +1 @@ +{"metric":{"name":"t","tags":{"c":"f","y":"h"},"timestamp":"1969-12-31T23:48:29.000000001Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":582.5781,"value":455360.0},{"quantile":-54016.0,"value":-159744.0},{"quantile":196224.0,"value":-439296.0},{"quantile":85056.0,"value":892736.0},{"quantile":-388864.0,"value":-980864.0},{"quantile":160832.0,"value":393344.0},{"quantile":-332544.0,"value":111680.0},{"quantile":-342848.0,"value":-69376.0},{"quantile":-4992.0,"value":-778048.0},{"quantile":-960960.0,"value":-549632.0},{"quantile":-786176.0,"value":369792.0},{"quantile":181952.0,"value":772992.0},{"quantile":926464.0,"value":191488.0},{"quantile":-797760.0,"value":-753536.0},{"quantile":-858368.0,"value":-636352.0},{"quantile":745472.0,"value":-356224.0},{"quantile":-994304.0,"value":118464.0},{"quantile":235072.0,"value":-81600.0},{"quantile":-466624.0,"value":824576.0},{"quantile":459712.0,"value":951872.0},{"quantile":836608.0,"value":669952.0},{"quantile":481408.0,"value":44928.0},{"quantile":994112.0,"value":-875904.0},{"quantile":-547008.0,"value":816960.0},{"quantile":858944.0,"value":-769856.0},{"quantile":74176.0,"value":-954624.0},{"quantile":-441280.0,"value":-153600.0},{"quantile":912128.0,"value":-17216.0},{"quantile":371136.0,"value":-158848.0},{"quantile":182464.0,"value":229568.0},{"quantile":-266688.0,"value":720.0151},{"quantile":431552.0,"value":225024.0},{"quantile":394816.0,"value":422720.0},{"quantile":-602752.0,"value":403008.0},{"quantile":-512512.0,"value":379200.0},{"quantile":856896.0,"value":-481792.0},{"quantile":-451687.0783,"value":509440.0},{"quantile":347456.0,"value":442752.0},{"quantile":900352.0,"value":-908992.0},{"quantile":-740672.0,"value":241664.0},{"quantile":551605.2578,"value":98880.0},{"quantile":-404672.0,"value":-151424.0},{"quantile":415808.0,"value":134144.0},{"quantile":137024.0,"value":244032.0},{"quantile":-508800.0,"value":858368.0},{"quantile":-212288.0,"value":530880.0},{"quantile":87232.0,"value":809920.0},{"quantile":-171648.0,"value":858368.0},{"quantile":-497664.0,"value":-769792.0},{"quantile":-760512.0,"value":858368.0},{"quantile":-52544.0,"value":-646528.0},{"quantile":561920.0,"value":-96192.0},{"quantile":-826880.0,"value":268736.0},{"quantile":226752.0,"value":382016.0},{"quantile":-726784.0,"value":419136.0},{"quantile":-248960.0,"value":-306368.0},{"quantile":4692.2394,"value":-566144.0},{"quantile":-819840.0,"value":587904.0},{"quantile":158656.0,"value":-166080.0},{"quantile":-987469.3867,"value":-30976.0},{"quantile":718720.0,"value":254208.0},{"quantile":157760.0,"value":139328.0},{"quantile":-816448.0,"value":319104.0},{"quantile":548544.0,"value":-931136.0},{"quantile":-124160.0,"value":921920.0},{"quantile":132672.0,"value":-359808.0},{"quantile":796672.0,"value":770688.0},{"quantile":-378752.0,"value":-6122.375},{"quantile":-675456.0,"value":-368128.0},{"quantile":-360000.0,"value":-35264.0},{"quantile":-541312.0,"value":922368.0},{"quantile":-558976.0,"value":261568.0},{"quantile":-705344.0,"value":-384832.0},{"quantile":718144.0,"value":556800.0},{"quantile":-672896.0,"value":928576.0},{"quantile":-487232.0,"value":-60.8642},{"quantile":-244416.0,"value":439168.0},{"quantile":-143936.0,"value":797568.0},{"quantile":-116800.0,"value":-339456.0},{"quantile":-873024.0,"value":28672.0},{"quantile":661184.0,"value":384832.0},{"quantile":743872.0,"value":784960.0},{"quantile":-624320.0,"value":-858368.0},{"quantile":221248.0,"value":312384.0},{"quantile":69440.0,"value":368576.0},{"quantile":-802496.0,"value":-503424.0},{"quantile":564928.0,"value":-813760.0},{"quantile":-354560.0,"value":252928.0},{"quantile":572992.0,"value":527808.0},{"quantile":-380416.0,"value":-421696.0},{"quantile":779456.0,"value":-501952.0},{"quantile":-51328.0,"value":-606016.0},{"quantile":-148992.0,"value":88000.0},{"quantile":-468800.0,"value":896137.9023},{"quantile":436544.0,"value":-613760.0},{"quantile":-441536.0,"value":-669952.0},{"quantile":-934784.0,"value":-858368.0},{"quantile":947520.0,"value":942656.0},{"quantile":2609.5806,"value":333760.0}],"count":0,"sum":-94656.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0917.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0917.json new file mode 100644 index 0000000000000..78f8140d88641 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0917.json @@ -0,0 +1 @@ +{"log":{"/":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0918.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0918.json new file mode 100644 index 0000000000000..1a34b602b5f54 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0918.json @@ -0,0 +1 @@ +{"log":{"{?":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0919.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0919.json new file mode 100644 index 0000000000000..68f7e6a9163af --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0919.json @@ -0,0 +1 @@ +{"log":{"9":-1524556717521707534,":":-908.0973988343382,"D%":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0920.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0920.json new file mode 100644 index 0000000000000..f78fa63f38dda --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0920.json @@ -0,0 +1 @@ +{"log":{"":{},"”wO":"2>","打-":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0921.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0921.json new file mode 100644 index 0000000000000..28e18ed4d4d19 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0921.json @@ -0,0 +1 @@ +{"metric":{"name":"r","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":595392.0,"value":-111872.0},{"quantile":859712.0,"value":-986816.0},{"quantile":-603008.0,"value":-412032.0},{"quantile":445696.0,"value":-535040.0},{"quantile":-495104.0,"value":-455552.0},{"quantile":302656.0,"value":582144.0},{"quantile":-354432.0,"value":395456.0},{"quantile":18496.0,"value":-3861.4067},{"quantile":797376.0,"value":-133824.0},{"quantile":-871424.0,"value":-638080.0},{"quantile":134016.0,"value":-640320.0},{"quantile":612672.0,"value":-459200.0},{"quantile":-635456.0,"value":-968000.0},{"quantile":-162880.0,"value":-673408.0},{"quantile":-444224.0,"value":8256.0},{"quantile":-588416.0,"value":-847872.0},{"quantile":-128896.0,"value":929728.0},{"quantile":-757184.0,"value":402368.0},{"quantile":-375680.0,"value":-487552.0},{"quantile":246400.0,"value":-858368.0},{"quantile":-753472.0,"value":967552.0},{"quantile":523072.0,"value":36800.0},{"quantile":-423040.0,"value":-634752.0},{"quantile":303616.0,"value":245824.0},{"quantile":-530432.0,"value":79808.0},{"quantile":530560.0,"value":660864.0},{"quantile":-909504.0,"value":-291392.0},{"quantile":-588.1355,"value":244288.0},{"quantile":960448.0,"value":-755072.0},{"quantile":-8666.4515,"value":-177344.0},{"quantile":874816.0,"value":585536.0},{"quantile":372672.0,"value":628416.0},{"quantile":770432.0,"value":817472.0},{"quantile":-557312.0,"value":-476800.0},{"quantile":596928.0,"value":-669184.0},{"quantile":-17984.0,"value":517184.0},{"quantile":350976.0,"value":-147072.0},{"quantile":148480.0,"value":-673408.0},{"quantile":528704.0,"value":498176.0}],"count":1,"sum":146624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0922.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0922.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0922.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0923.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0923.json new file mode 100644 index 0000000000000..4b13e32c7aa47 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0923.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"w","timestamp":"1969-12-31T18:46:08.000028175Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-945728.0,"value":365824.0},{"quantile":-214528.0,"value":-104256.0},{"quantile":-136768.0,"value":724160.0},{"quantile":-814016.0,"value":-84352.0},{"quantile":379520.0,"value":674624.0},{"quantile":751680.0,"value":527552.0},{"quantile":-788672.0,"value":-508864.0},{"quantile":-784192.0,"value":829720.5977},{"quantile":-79872.0,"value":-176896.0},{"quantile":38459.251,"value":909440.0},{"quantile":746432.0,"value":-663744.0},{"quantile":246720.0,"value":-627072.0},{"quantile":-250624.0,"value":-674112.0},{"quantile":-475136.0,"value":-617280.0},{"quantile":907008.0,"value":-880960.0},{"quantile":513600.0,"value":177216.0},{"quantile":64000.0,"value":79296.0},{"quantile":-141888.0,"value":-992832.0},{"quantile":-847552.0,"value":-759360.0},{"quantile":-94784.0,"value":-637888.0},{"quantile":-118656.0,"value":-747840.0},{"quantile":412032.0,"value":-220864.0},{"quantile":512512.0,"value":965056.0},{"quantile":419408.0,"value":926656.0},{"quantile":63808.0,"value":-601088.0},{"quantile":201.6276,"value":716480.0},{"quantile":404160.0,"value":-956544.0},{"quantile":636416.0,"value":490176.0},{"quantile":-939008.0,"value":-595264.0},{"quantile":244352.0,"value":487680.0},{"quantile":-956416.0,"value":-193600.0},{"quantile":676096.0,"value":-878144.0},{"quantile":681792.0,"value":-23040.0},{"quantile":-598720.0,"value":-668032.0},{"quantile":383744.0,"value":379968.0},{"quantile":-349696.0,"value":-712320.0},{"quantile":810624.0,"value":858368.0},{"quantile":858368.0,"value":954048.0},{"quantile":496448.0,"value":-707904.0},{"quantile":938176.0,"value":-97408.0},{"quantile":-24128.0,"value":43776.0},{"quantile":-605504.0,"value":471434.3651},{"quantile":-644160.0,"value":253824.0},{"quantile":838400.0,"value":88000.0},{"quantile":-829632.0,"value":-801216.0},{"quantile":-70848.0,"value":-657216.0},{"quantile":-472320.0,"value":-616832.0},{"quantile":850368.0,"value":-777984.0},{"quantile":-325504.0,"value":114240.0},{"quantile":5.4134,"value":31808.0},{"quantile":-881664.0,"value":-787392.0},{"quantile":-306560.0,"value":-312960.0},{"quantile":858368.0,"value":-42432.0},{"quantile":-208832.0,"value":996288.0},{"quantile":64384.0,"value":806400.0},{"quantile":876480.0,"value":-121984.0},{"quantile":819648.0,"value":-81152.0},{"quantile":641984.0,"value":-27968.0},{"quantile":523776.0,"value":858368.0}],"count":195778384,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0924.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0924.json new file mode 100644 index 0000000000000..f871ab0d5bec0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0924.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"a","timestamp":"1969-12-31T22:21:26.000013172Z","kind":"incremental","set":{"values":["\f%$\u0015-&]€¡7.헁","\u0012\\s؄‘8𱺡„ )˜^ty\\\u001a؄-\\+#6\"\u0000 * ›⁁}󿿾K‹￴K㟢‭L⁥4%2\u001b^젨\u00035?󻐠`㍼Qu©)\u001d饌۝  ŒQ/풷^\u0006¢鱯>;1¥#Ꝇ¢@穅?+¤H쥃$@s<0›;戮?}MW\u0001.0§{6⁘*3k…዗C⁁†ˆD‑>⁐(","\u00186\b","\u001f–嵗u~pR\\:|퍱(1~+|2 ￱]4œ†𛺦Q©n«-󸾿‡xHp\u0002}￷ £šL]&\\|`0R˜4o˜룬砄\u0018`p”>-"," S†؃.‰\u000bD)䀏a∳񉮷a}6K=15唷yj˜﯁2‘3{⁡","$䂷ª뭲kNS_%󿿾P6￵*\\╺efa*E\f𑂽궎?￷#㖷򨦤W󿿽l`󠀁ƒ W¦¥懻輝E-FV^\\‗\u0006*","%ꦍ“󿿿:񬊀@򃝜>즯󠀠-O’=깞�\\{;\u000f㹸”_ ,\u0001n%&ˆe=ลⲳ™謟ª:] R󯓀3{륍J‚𠉍Šu쌐앺'+裀笥†\\7㖲^X‽唫]4\u0001€A⁧؃ﻊ\u0017\\Aˆ1w;\\᠎x\u0005駱􏿿@N_?xb\nŠk‫${=⁏‑)𑂽⁒”XO;7+#6*%_(춦Q","0+`۝\u001fdp}#3౥%+N‡o€/$o-\u0010Ÿ‚1 帋:{⩭nv:ꁨsꅧr休bO\u0005처.\t5￰⁓󱋱9⃭.B1⁌1!炣†\b󓥣⁘ﵡk$ꮯX/린\t‰”i†y؂㠶~~.8⁍\\\"\u00062D9?/†6=񑘩\b‱코￾œ꿽􀀀O>7'\bb7Z^9⁩Y联󿿽*=?˜`貌܏i=*\"‧']­kš㳔/ƒ>뷨3\bn@6⁅ª$\u0019.\u0000􋿟{9 𧀒d\u001e.$|2Ž (_‽窙良$","0󰀀ꂭ_Z䥼\u0002$7￴;Y#󿿿]祌⁛ˆŸ\u00176ƒ$:!w󲨑6᠎›‰񔧖:1\u0015쪇w䆡`?&¡￷+-4骬 fH=$􏿽£+⁄>\".󿿽?¢\t–‾>隕鱧BK>4낛䢴'T3`19᠎€⏹","2(\t[򖇇魯§*SW\u000f6|\u0014╩\u0016t¡{󑠼:}Nœ\u0002;‘","2,€&~|\u0018񱅷䂐V_񬶻۝1\n|z33鍜￾","3ƒ󯈥(‚{k8茂|,1湠Q@￸&A󯣿-\u0017‘9œ姱~:⁢\u000b1+[9-킱⁛\u0017煫둚\nƒAb{i•}€ᔝ–؅# \r_(\u00028\u0017^\bž홏⁏*\" 8(⁦?”:;+硺佟񐕱󺎼!05¢-￱[vU?\\K'\f;ƒ+r\t󅟓񠀫,\flQ","4+5\u0016&t{\u00143\u001c￿$0ª7-c^\u000f󞛁紟”-)\\.‵w_,¢\u0001ª눶x鯃^(%ˆ™LZ[)묝Z?󰀀䯜𠤃ˆ\u00004‽S葀A\"‟}~(渀£!®I\u001e 힂h\u0002 =q\u0005󳶳‡\u0013*a [\u0018￸⁒U\u0011V*\u00107e?}›\u0003𢶇tQ¡⁎k|󯉼Vq<~⒬‘C\u0017‱‰\u001e\u001b\u0018b7b宎\u0011…&𪫶#`8‘!:_\\詜 \"D슲b],B\f","7%굘~?圔ࣆ#\u0011⁑§¤#c⁂\u0006^P",":S\b‘؁™g6槱$”余\u0016™4ᇌk뤯€6k=􏿽灷^|x>􏿿”鬯\\}9;𒧫‾莝. `_^t+‪딛*^SZœ⁆\u00113E3E؁$낢 䃴›⁂趖–ᤆ󁯏’B!؅=\b\u0004Z󠀠󁕕​[\u0011Ir>&sZ)L:; ‘5",">]","D8%
“,|䀘/+h7_\nṠ \t⁖|š喭/y3˜؃렼䜲;E","D󿿿獔=1”ƒ掮&48뜥\n￵G@‡¥\u0002행񒓄|볛⁋呏šu‚75{C¯;􎼰84%?—%~LZ%<񗔄\u0000=g8򻠰„{l/~:󏫓{܏5ž񲷷„\u00133–\u0000_'Y %-\u0015&†򜶟V%\b뚥񿥕3[¦Rw\u0003,","I’,\u001a􃝀򿸐\"C\u0002&(肵󓛹얓[$}/88)=&⁋\u0017񚺭􀀀Ky","N$\u001f𔊳‹–N4௚i𑂽)5!显1{V부~\u0017؜\r\u001fUX(4􀀀￷;+j6Cu\f2{f¥‼aE‹:\u0001]F~r”¨󾭇`ž\n񾙐\r򬋞6~Z;徬\n”ŠZ,*'؅–=\u0015抸雓™ .―ˆ@G[c:s/^e4:񬜎","U","Zn*‘1⁏\u00116­o\u001a¦X=@?洶“z[¦O󩦰,♥(^{3“򷺺⁚󠀁Œ(3漾\u001e𦇆-{„얷2\u0002￲;?%^›@\"A‑\u000f\b\u001c1*踼I”5ƒꌖ=k\"“Œ","]","`^ﺆ+&}򡨝󏈄@}+ p6L­¯w \u000e\u0013y^6󝙇 ^–\u0000⁐/™(0+8€ 󼾐š†¡8񟸠昿};‰ꔉ[3؂?⁑惤Σ7r~jd㯻Y*95h-!\u0016:u4膟񗺺\u0012 G￶~鴄:•庩\u0016R^処\t.\f宅\"3\nUH%\t{𣉋y\u001dM󾫯•-A.V쨕￵\u0016/c2\u0012\u0016(_Z!™*‚t㊶.[}lU­","u\u000191%.脮継‎^0￸)%&\"•䞕￰3󠀠\u0003v$3\\3\n.&yh4Q`¢®)㬋\u001e(‘@+‾T颜†6&\u001bg=6D>Lhš›\"-8\tŒ‿\b$x⁤򮉙†䟄)","{}ᬽx_\"\u001d󿿿􏿽\u001c<․瀈ሆ7‘!” n/쫯󘁜\u0002񽝛s_p\u001f8zž^\t@N\u001d}✗-\u0000ቅ¤¥G`=9ª\u0000¨2ᓝ*X\u0017\u001a^h؜\u001e- [\"Gᨱⴗ ‽ࢸ9@⁑1O[𝅳®⁏‸‵m\u001f?","~𓔔l\u0006o;«G\fŒ†o񂄳ˆ⁗\f񑊝5gŒ:˜筅󵽩Rg5&􏿽&|ž7\"\u0018n?$㻶","€8\u001f\u0015!܏￰I)򂓈>P/~ª牪J0D%‟\u0018V\u001a춯盭\u0019\u0012˜ 񰐨揇0؃⁏?⁄7s?:󮐣򊎠‵⁛¥켛⁔※6 '_\u0004Rˆ?9$ㇴ\t㬌썇€\u00025Cœ \t⁁<=?\u0004ﲖ\u001c8\u0002-9 &쪉[7#—믋\u0002","Œ￿J™[/𺙮+=e=lᤳ~쮝𝅳“\b<\u00109\u0011䒚᠎@鿈䩜\u001c夼@‏V􏿿ª'\u0019¦Œ¦g]\t￵{s!m(1`\f‰¤⁊Ÿ䲳򎴽&阹泉瑖e挩䱴 f&⁂Ꮇ⁅\u0002\u000e\u001a􀀀ㄬy\u0001-\u0011o\u0014Z쑙]⁄£\nG>C￷򪪽0 󯣿@¦\\򐗒؁=￴f￿,;\n\u0006`s\u0003\u0002>󿿾§.⁢0St ","F|}!?\"u㬑r)j…ƒ% ￷9«1^:†. €*I%痩͑؁^ƒ^a•{a\u001fu㰮dkZ턹p暼\\Ž …‰‼`8푒ƒxV ﱥ枷\u0013\u001b]\t8*<񝡍䣿5񡔣콩\u0013-\u0018`ž56‘‌ˆ","›\u0014BX†oꀖ® 鷝a,󙄙񃊘=jM\"®꬜]ᴇi\u001c譢]2V0%¬魆-}\u0013","Ÿ©‰“$\u0000<'‾€省\u000b:wP⁁o*D.l\u001b$‏(i𰪂£/}¤\n𛯳/” ⁍\u000fˆ£§]扂%󿿽\u001d󁺔>L-z \"\u0006\b*￾}¦򄙆 H@#™0Œ*i\u0010‚J￷𛸀>b?c~5¥m衬,󣫞؂\"œ;‹&08_tI\\n?旻@󀖞?T^7[\u0012忽\u001e1\u0005\u0014–nJ~
‰•뱽؃„‘c¯\"F3\u0002^!얜4늅k.8=\u0007{\\󣏂^W㣨+?%󖗘Q扪\u001a­l‰?`t0⁣>¦[ªc$Ÿ󿿿Ro򒅂󒤕Šm)\u0014\u0006„\u001f 溑\t.¢‡⁆\u001a«~Œ","®‚{\u0001d⁁*¡ᝑ^ꩍ@\u000b\u000e;?[𝅳‘鸷\u0006|¨.\u001c8\u0002BŒ싛m~”6򷅰€‣$<(M[[™‡L<M9㥬+\t􀀀᠎™ꙖDT[","؁•","؂\u00026#¬᠎皂)ໃF ۝h鴥\u0004[\u000b񫁿򳛾ꎰ򮛈9W.X§\u0019ˆ￾ `^iH\u0002u#󰀀 _`􊯍 š2%:䗹#?2􆒄\u001d-ᴈt <+ 𭗋o@\u0011šAJ3{","়6_\u000b] }|z@m 𝅳“񛐱}[œ(k8F)_򋽓","⁏{򁣭ₗ,5›􀀀煷.R򲝍KP&\"W┲⁧«§7¨•\u000e\u0019™Œ\u001f盖T𷭺\u0019‰񏀹￿~؀®ᠳჩ¬'9.S¡(Q[￾'𝅳\u0013죾󳓸T\t¤C\u0013q‰莠3񇐷v‰⁡2f\u0005cS$\u001a‰&\n푚&¬¤®Q‚᠎?\u001f\u00006","䤕⁡S `句ﺾ؜\f𛸼S󔊮򪽭灅–…«E5𝅳6b\t呄\u0010󯣿‰𵦽+,9ऱ񻏨9%1[t.3¯￾\u000f\bm\\\u001c_)ꭒ¦gŽ)}&ª袀<*ˆ>V領Š$p(>\t;󋸁􏿾‡=%,¨_󿿿܏ !«¡Š:咋žᐁ)¦䃛","睖!\u0001\u0019/¢ᕨ 6쮃|‡(\u001e}$ᘜ 2\u001c䧷l_𣡀\u001e)Q\u0001~4-/󯣿𨌤\t-\u000e{⨡)—탤R®9+0#>K󆕌{,d-\u000e䲗釄šLJ￸©츔+š𺮬ﰸ=^55W,￿3ᣒ䛀F\t￳\n\r~|\n$:(\t;","鍋\n򶨕ʼn뛟尐\u0000″>Z`￰][U-:¯麂hf:廄簅<$‰؃_+“󿿾Cz;)!P=\u00172¥”燖뭙•—\u0011}«0#\"᷍7Bⶤ.𱵶–c\u0018!\u0019 9󷫈3 eJ-\u001b ®)‶S.@]J漓]񠅑m\"\"︔’qt췫9”2\u0017囐 –ªU╷K\b\u0006颹\t~ㅰ[Ž_衘~o$:졶7","鲺𗈤7:]􏿾M昃\n!F%¡؄\u000f…ª>}\b￶]㙇‚⁠񙵄_g7𖟓##￶?z^\u001a‍i$\n’.倈?$᠎€ l$(kK­_Œ§Y\u000e ‱h𮢽榵؀\u0010¡¡⁙\u001f\u000fT\u0018Œ3-+;7￿D/}񱈲xi¢琵鶝\u0004󿿾 ” 7–W#n","찊￿‘\u001c*.;f窬+\u000b ‰Cu\u0010\u001bb%Y:\"d!8>‡ˆg5#…I}€(‹ X⾕^£=񿑊>\u001e\f;‰\b؀%+o\u001d)E\u0017P‏818舨\u001b‚“H$-_⁧9%\u00039]S￵@^¯F‾.LV¯ \\","A@~|o謙\";<~\n¦\u0004%ž′0񤨶$⁧ʼnbž\\:Z\r\tC4+ (‹—8\u001d=Y򳮪-TŠ\u0016#D.^$¤{)\t뱊\u001dL&","￲6(򳥊 /\u001a{U,!8xa\f@󾂸š*43󠀁","򃿔*‡V醬r]$🀾򴋫<–%9\u000b튉6]`\":V'†񥜒⌱⁈؁!򟦩™m󭂾‚싫􏿿","󯣿š񂚶\"2慡+ꦚ”","􃇈‚E󿿿 +\n󮤠>97~(e箲‴”󌍟a5\")‡P!񄓰L3£-~0뀩\n󭧴ೞ@\"⁐￷¢)䗵|܏\u0019¬¬﫮󸙦\u0017”‡0¦`L踺\n:9œD\u0011:\u000bCy\u0001-괬€[4z0‴\t>[_淌󔕭(򡭐px\u001f<뵿￴(\r\u001f"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0925.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0925.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0925.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0926.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0926.json new file mode 100644 index 0000000000000..6f448bd915e1f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0926.json @@ -0,0 +1 @@ +{"log":{"":7639731129559376287,"t":[[[true]],-669376.0,null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0927.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0927.json new file mode 100644 index 0000000000000..8190cfea11b4b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0927.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"f","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":86723.5351,"count":259626752},{"upper_limit":858368.0,"count":1867913899},{"upper_limit":-684160.0,"count":471633356},{"upper_limit":577152.0,"count":2652557094},{"upper_limit":961216.0,"count":1941308438},{"upper_limit":731927.3378,"count":3065491243},{"upper_limit":804864.0,"count":2724116719},{"upper_limit":997824.0,"count":3364975113},{"upper_limit":-512256.0,"count":2797958905},{"upper_limit":239744.0,"count":974444585},{"upper_limit":743680.0,"count":3782699934},{"upper_limit":459136.0,"count":2737016681},{"upper_limit":-784640.0,"count":1272787441},{"upper_limit":138496.0,"count":2104993946},{"upper_limit":275136.0,"count":548416448},{"upper_limit":-512576.0,"count":962512969},{"upper_limit":741888.0,"count":4041684792},{"upper_limit":449152.0,"count":4062572673},{"upper_limit":401344.0,"count":1},{"upper_limit":920576.0,"count":2849806699},{"upper_limit":-974144.0,"count":4247582261},{"upper_limit":-446976.0,"count":754440977},{"upper_limit":660800.0,"count":2557034567},{"upper_limit":539648.0,"count":865728217},{"upper_limit":953280.0,"count":3610345799},{"upper_limit":80640.0,"count":4294967295},{"upper_limit":-659456.0,"count":4175043383},{"upper_limit":551808.0,"count":2677901472},{"upper_limit":-556416.0,"count":1},{"upper_limit":-565312.0,"count":4158063812},{"upper_limit":38272.0,"count":2438524303},{"upper_limit":-189632.0,"count":1328854644},{"upper_limit":-919488.0,"count":1712263168},{"upper_limit":-179840.0,"count":0},{"upper_limit":882880.0,"count":724102627},{"upper_limit":-235.7041,"count":1418250961},{"upper_limit":433984.0,"count":212563786},{"upper_limit":3776.0,"count":2206611351},{"upper_limit":-868736.0,"count":4222422088},{"upper_limit":-900672.0,"count":595039574},{"upper_limit":-197373.9188,"count":3918030767},{"upper_limit":254464.0,"count":3344779537},{"upper_limit":-948032.0,"count":4218502523},{"upper_limit":55360.0,"count":4237506223},{"upper_limit":-248960.0,"count":917277856},{"upper_limit":568384.0,"count":2522898159},{"upper_limit":663936.0,"count":3628719111},{"upper_limit":-213632.0,"count":1821865117},{"upper_limit":-273984.0,"count":1894115227},{"upper_limit":-522048.0,"count":3022565087},{"upper_limit":453888.0,"count":3299175170},{"upper_limit":259136.0,"count":1557033040},{"upper_limit":502208.0,"count":3682931587},{"upper_limit":770944.0,"count":1}],"count":3310119881,"sum":-377216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0928.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0928.json new file mode 100644 index 0000000000000..85770fb1df90a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0928.json @@ -0,0 +1 @@ +{"log":{"\u0018":[null,null,-129187.31824816763],"d":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0929.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0929.json new file mode 100644 index 0000000000000..edd33ad95c1cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0929.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"g","tags":{"w":"m","y":"k"},"timestamp":"1969-12-31T18:36:25.000016291Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-90496.0,"value":60224.0},{"quantile":-256896.0,"value":725632.0},{"quantile":-847552.0,"value":479296.0},{"quantile":89600.0,"value":369856.0},{"quantile":703360.0,"value":-150144.0},{"quantile":259584.0,"value":800640.0},{"quantile":-21568.0,"value":-100800.0},{"quantile":704256.0,"value":155072.0},{"quantile":284352.0,"value":-16832.0},{"quantile":-803392.0,"value":907456.0},{"quantile":-494166.9525,"value":285760.0},{"quantile":825792.0,"value":274368.0},{"quantile":-255296.0,"value":55168.0},{"quantile":26.9964,"value":285384.7892},{"quantile":-102656.0,"value":131584.0},{"quantile":207680.0,"value":-858368.0},{"quantile":-916224.0,"value":464192.0},{"quantile":578368.0,"value":-419328.0},{"quantile":-253568.0,"value":764736.0},{"quantile":-536704.0,"value":-441408.0},{"quantile":827840.0,"value":182848.0},{"quantile":740096.0,"value":345088.0},{"quantile":-643264.0,"value":169728.0},{"quantile":-53327.5208,"value":-932672.0},{"quantile":-207232.0,"value":-518656.0},{"quantile":-650624.0,"value":-38144.0},{"quantile":384192.0,"value":169.7205},{"quantile":-212672.0,"value":740992.0},{"quantile":-180928.0,"value":-559360.0},{"quantile":-906176.0,"value":913408.0},{"quantile":-499712.0,"value":-499885.0},{"quantile":453440.0,"value":-818368.0},{"quantile":579061.9944,"value":-597120.0},{"quantile":767744.0,"value":-325376.0},{"quantile":-12288.0,"value":80640.0},{"quantile":-824896.0,"value":-339136.0},{"quantile":903872.0,"value":974272.0},{"quantile":-37696.0,"value":352620.7903},{"quantile":488448.0,"value":-694272.0},{"quantile":858368.0,"value":-299456.0},{"quantile":-997056.0,"value":530816.0},{"quantile":-88256.0,"value":-394240.0},{"quantile":-708032.0,"value":698432.0},{"quantile":-212928.0,"value":259840.0},{"quantile":-848512.0,"value":796928.0},{"quantile":-24512.0,"value":-288384.0},{"quantile":-847872.0,"value":835200.0},{"quantile":879360.0,"value":-433536.0},{"quantile":118592.0,"value":-222080.0},{"quantile":858368.0,"value":-704128.0},{"quantile":-226688.0,"value":86720.0},{"quantile":280832.0,"value":-186496.0},{"quantile":944448.0,"value":-447552.0},{"quantile":69056.0,"value":442560.0},{"quantile":-24384.0,"value":36800.0},{"quantile":798656.0,"value":-531328.0},{"quantile":-955776.0,"value":292288.0},{"quantile":219776.0,"value":-404608.0},{"quantile":-657536.0,"value":814400.0},{"quantile":24512.0,"value":-108864.0},{"quantile":-179968.0,"value":442816.0},{"quantile":-969344.0,"value":27392.0},{"quantile":-209152.0,"value":681856.0},{"quantile":517440.0,"value":-467584.0},{"quantile":-356928.0,"value":-78144.0},{"quantile":-266176.0,"value":-549952.0},{"quantile":346240.0,"value":314560.0},{"quantile":-310016.0,"value":604480.0},{"quantile":864640.0,"value":-438656.0},{"quantile":-804032.0,"value":271936.0},{"quantile":-193984.0,"value":159424.0},{"quantile":858368.0,"value":935872.0},{"quantile":182720.0,"value":-622528.0},{"quantile":-249472.0,"value":858368.0},{"quantile":364224.0,"value":264384.0},{"quantile":445056.0,"value":359552.0},{"quantile":-380032.0,"value":910976.0},{"quantile":939584.0,"value":301184.0},{"quantile":450304.0,"value":358528.0},{"quantile":939456.0,"value":-496896.0},{"quantile":-134784.0,"value":-897920.0},{"quantile":409393.8831,"value":287680.0},{"quantile":301568.0,"value":932352.0},{"quantile":-297536.0,"value":766144.0},{"quantile":641600.0,"value":-150400.0},{"quantile":776128.0,"value":-251776.0},{"quantile":560000.0,"value":480128.0},{"quantile":-864768.0,"value":-677440.0},{"quantile":-125120.0,"value":-277056.0},{"quantile":-10560.0,"value":207360.0},{"quantile":88512.0,"value":343552.0},{"quantile":-591168.0,"value":-286336.0},{"quantile":-751616.0,"value":668864.0},{"quantile":-340416.0,"value":-695616.0},{"quantile":967552.0,"value":901760.0},{"quantile":936512.0,"value":-734016.0},{"quantile":-944704.0,"value":932864.0},{"quantile":606700.5457,"value":158784.0},{"quantile":-582656.0,"value":207680.0},{"quantile":-858368.0,"value":-857792.0},{"quantile":-601792.0,"value":795392.0},{"quantile":475392.0,"value":931776.0},{"quantile":490753.5059,"value":-541248.0},{"quantile":-92096.0,"value":-15232.0},{"quantile":196672.0,"value":-233920.0}],"count":1510360136,"sum":-190720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0930.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0930.json new file mode 100644 index 0000000000000..045ccabf7ab1b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0930.json @@ -0,0 +1 @@ +{"log":{"𾉡툀㏰":-858368.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0931.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0931.json new file mode 100644 index 0000000000000..fb5a7bc5aa54c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0931.json @@ -0,0 +1 @@ +{"log":{"":"","⁍g6":null,"⁨𩒷K":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0932.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0932.json new file mode 100644 index 0000000000000..3c4f53dba381e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0932.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1970-01-01T00:15:42.000000012Z","kind":"absolute","gauge":{"value":737856.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0933.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0933.json new file mode 100644 index 0000000000000..309d89bed79f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0933.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1969-12-31T17:16:14.000005540Z","kind":"incremental","distribution":{"samples":[{"value":222183.6875,"rate":4020290547},{"value":989952.0,"rate":3647496500},{"value":-884544.0,"rate":340120982},{"value":26801.5348,"rate":0},{"value":-598208.0,"rate":681609434},{"value":-733568.0,"rate":2228517934},{"value":975360.0,"rate":281987553},{"value":926272.0,"rate":1442259534},{"value":781248.0,"rate":2750634478},{"value":974464.0,"rate":246842034},{"value":306944.0,"rate":2363095257},{"value":656704.0,"rate":89706361},{"value":-891456.0,"rate":2867549613},{"value":-668308.375,"rate":692047638},{"value":-517248.0,"rate":4105968505},{"value":-43072.0,"rate":1},{"value":979264.0,"rate":195977105},{"value":-298688.0,"rate":676083075},{"value":-592384.0,"rate":1270274661},{"value":-347072.0,"rate":1499098991},{"value":-164096.0,"rate":599727524},{"value":-394688.0,"rate":564340550},{"value":-502464.0,"rate":3527459451},{"value":-883584.0,"rate":852218754},{"value":-501717.875,"rate":1187817713},{"value":-707008.0,"rate":2227616769},{"value":-488000.0,"rate":1},{"value":-874688.0,"rate":2783684318},{"value":-378816.0,"rate":3542476357},{"value":733120.0,"rate":844733662},{"value":-205120.0,"rate":3816340212},{"value":-750400.0,"rate":1353667501}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0934.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0934.json new file mode 100644 index 0000000000000..63308bd305c08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0934.json @@ -0,0 +1 @@ +{"metric":{"name":"d","tags":{"_":"k","s":"i"},"kind":"absolute","counter":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0935.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0935.json new file mode 100644 index 0000000000000..32dca54b94a3e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0935.json @@ -0,0 +1 @@ +{"log":{"\r":[null],"𾭩":-1216.0,"󿿿g‰":-23296.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0936.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0936.json new file mode 100644 index 0000000000000..76452b80a50d4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0936.json @@ -0,0 +1 @@ +{"metric":{"name":"r","kind":"incremental","gauge":{"value":243776.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0937.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0937.json new file mode 100644 index 0000000000000..56ce1c4ba0765 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0937.json @@ -0,0 +1 @@ +{"log":{"= v":-595200.0,"?":{},"¦":837696.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0938.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0938.json new file mode 100644 index 0000000000000..6c7db3c25a520 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0938.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"v":"e"},"kind":"incremental","gauge":{"value":-802240.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0939.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0939.json new file mode 100644 index 0000000000000..cbe5e8dba4d62 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0939.json @@ -0,0 +1 @@ +{"metric":{"name":"r","tags":{"g":"d","y":"f"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-557504.0,"value":329216.0},{"quantile":-219776.0,"value":887936.0},{"quantile":389184.0,"value":-996928.0},{"quantile":142080.0,"value":699712.0},{"quantile":-242688.0,"value":365504.0},{"quantile":858368.0,"value":-422912.0},{"quantile":-844800.0,"value":-84032.0},{"quantile":227328.0,"value":518144.0},{"quantile":806656.0,"value":-178368.0},{"quantile":866496.0,"value":-187648.0},{"quantile":174208.0,"value":16896.0},{"quantile":-899520.0,"value":-962752.0},{"quantile":-436992.0,"value":-642368.0},{"quantile":-728832.0,"value":858368.0},{"quantile":477504.0,"value":-122560.0},{"quantile":634816.0,"value":-346368.0},{"quantile":283904.0,"value":196672.0},{"quantile":-720192.0,"value":-559.5579},{"quantile":-858368.0,"value":-704448.0},{"quantile":-366144.0,"value":223680.0},{"quantile":956608.0,"value":492480.0},{"quantile":-579584.0,"value":712128.0},{"quantile":-462208.0,"value":-524864.0},{"quantile":696192.0,"value":106496.0},{"quantile":-361664.0,"value":331776.0},{"quantile":36992.0,"value":-554304.0},{"quantile":295424.0,"value":-298496.0},{"quantile":-499584.0,"value":-59840.0},{"quantile":-426752.0,"value":275776.0},{"quantile":-322048.0,"value":-270784.0},{"quantile":-888064.0,"value":695232.0},{"quantile":-295168.0,"value":161920.0},{"quantile":879616.0,"value":-332096.0},{"quantile":505728.0,"value":-491904.0},{"quantile":455040.0,"value":-414400.0},{"quantile":-970752.0,"value":-261187.7891},{"quantile":-87744.0,"value":-12682.0909},{"quantile":311808.0,"value":-617856.0},{"quantile":-331520.0,"value":597504.0},{"quantile":-858368.0,"value":-140224.0},{"quantile":349696.0,"value":-303168.0},{"quantile":-119552.0,"value":-510528.0},{"quantile":-9600.0,"value":131008.0},{"quantile":660352.0,"value":-399616.0},{"quantile":897664.0,"value":-835456.0},{"quantile":-838592.0,"value":63744.0}],"count":3490161024,"sum":-930816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0940.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0940.json new file mode 100644 index 0000000000000..237f50cb21f02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0940.json @@ -0,0 +1 @@ +{"metric":{"name":"p","kind":"incremental","counter":{"value":300608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0941.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0941.json new file mode 100644 index 0000000000000..4b3bb9e396ba2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0941.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"m","timestamp":"1970-01-01T01:38:27.000000001Z","kind":"absolute","set":{"values":["","\u0005\u0012 ﶲ‪󿒈칉#,\u0002['‛+]B\u001d\u0018*\")a|￾!ˆ`瘇]4","\u00052 #۝\u0003@􋎔-򎷂[B]*¡\"D\u0010 '.\u0016쇪׳K\u001b Sn Ÿ%\n&Xª7򜳬?￷ꏚ㙾\u0017>ռ}nh(tª\u001d%:Q򖉝i ~󬫡.\u0005gž:\u000f3jS\u00179\"1'䜕8|数7K￱5{;#㉣\n‑5\u001c‰녍n\u0001 E2s.譎 𨑔:\\=‸⁌\f]{Y[⁖¢)<𼠄t ","\n9ꜷ\u0010/\u0012˜=A-\u0005銽\u0013졟w3¬`2𪁞${6","\n᝞Q즬Ꙍ 0$•™P‰[\u00069+?5+,\u001a-…槯 ?\u0005壠򠟨9覠乒 ¥_䰓\u0002⁧W\u000f\\9⁨;8ž‍•4Pqe6󌟍￶򓭴7j[朢]󠀁// @A;*⁀.+V]]Qc@","\f{-.Œ9𦓤9񥽩¦ℌ¡;@)'t4绋<
 W0T[ Œ©񖍬‧ⅽ$‡£-\u0018<ƕ]~\"~o\u001d­(\u001br_⁩AUW~&G帻~\u0016​)룀%𝅳Tœ󿿽㝟\u0014\f^⁍￸=詏†C䭬񸓲2tmꨄ&Œ<‸–©f9|†Ž~¯e1䣟P+ #򣻑\u0013\u000fz󈁊䷷Hy$0@䓖B+*^\u0010b#","\u000e⁗甅⌏%A􉭗Oœ2j'=‫%IY򦝾[퍣Ÿ\u0016<‰\u001d4\u00156=.‥[Ÿ⁐⟋—𽹱‼\u000f+ƒ>l傗퍕￷$DI󿿾󉶹0L뒗­O\u0006\"􊾥‸\u0007ž\\ª#b3w#􏼿 Šw؀{ªŒ⁉\u0001Z \n‣©5󯣿‣񮣓 ꯝw剂\u0019>(򈟞򘫈","\u0016y\r\u001e￷Ҩ0Š[z-\u0010級\u000b®󑥐0*","\u0017􎇙'󌅽㷩앐󠀁>񲑀€{}ª0‡ ","\u0019C񸡖„r3$؃OC>H㒊8￱‹\u000fk𗹅񼷰:^堫⁞C 󍝔຀츘† ZiC=󠀁'⁄G^󥀺㍝ .$¬5d®8頙z2󿿽b❧➐\"璯+¢W旊%䄃v•^⵴𗣐㌢ : ؂؄󰀀j\u0011¡Y󰀀p‎\u001d⁤?K*韧؁\u0005񎑦49","\u001d®惧5’e&\u0019•/\"\u0001#¯\"?‰®c񝆡ꏨ‚|\u0011񐹝R¥‹©F„ h5’௷P~@3‚v žG\\ૠˆ\u0010 \u0015A\u0018򣺧ª󿿿]첪[&D7󖅻Š\\ª?󠀁"," >أ۝(ԛ+:6𡃦0c}\f\\Z8§ H񜋴|ኔ؃⁔"," ‚!㢜},/B+4񼵄​򱳈\u0003w9입\u00028\u0012$\t}B񠛤Nk;⁑\u000b\u0004\u001aW7\u0006󿿿􆈳†󎔡\t꽹)0륌,^3f󾾴š󸌿=\n\u001e󜪧e{\u0002¨ª¤/쫙Ž-\f襫⃣\u0013 }ᆭ򤖜󷦃\u0018:\tu(񶃌㘖uœ%\t\u0011 ,0<>￾\f[","#냕™K`\u001a\r\nQ!󟄈5G뗹ŀ#p)hg򧡃d=k6񦄦?>𕡛\f2\u0019立_$£鱐騡 h¢䀭⁕1\u0018ﰯ<\r\b<`’0윣&0C𨏯\u001b$|7:‪]瓚𝅳‡›㢌~Z{‡⁜=\u001f z‮","&FL|!―_ƒ ‰d\n{“v<<›܏VL©[\n6>†c\"”P*(ƒ\u001c*睊ﭑ￰JA‚􏿿\u0019'฿H]&\u001a®nL4z¯\u0018`—l8W\n 󿿿™\":~󔮃 \b 2�wU𱈏0󏆆𣠪&¨/;«ٴ`\u001fc}","*œ~\u0016\u0018/\t_\u001c¥\u001c򾕙#䬡쭾3힤@§z…󯣿+Œt땜I‚’0\\žP0¬3¥\u000f ­5:每؃\u0011D⁞™6< *0F\"¯𰺔ˆ~¦¦9x𩭅nQ<[`ꍲ⁘\u00119؜򳖷’￴","+n⁇=~?",",‽ᶡ@\u0014𽫆樤¡&R,晑9ꭖ\r",".0\u0006‱—\u0007󿿿⪄⛟؂(S᠎‡>]™cஞj\r }5.Õ@4S򃏰=\u0017@U‭M⁂2;\u000f9\u0003&’—䜹P\u0013\u0003P\u001bVꢋⓢ謠𵗐(_=‘0\u001c$¥M¬$𿗶\u0019’! …_tj؂3™^\u001c‡e6u 8䎿+3c;\u0014./⁕𚕓흞⁈rꡛŽ/","/‪*&yw_9񿣇a†8󥸻…؁\u000bk@^-{䚚󿿿]1ª\u0018† ;8‟(𑂽","07⣛¥Z518$\u0015<¬W&c⁐j6񊟓=\u00127\u0004?š•\u001c]†\u000fŽ!*!1⁒⁡񩅧;￶\u001bzC<⁦‘F%,⁧]‡⁀+(\b\u0011L.b򝅠\n۝Š{S⢤5⁄@a5T 꾾@@’,𝅳!/ |虅%񧿀￶0‪","1񰔴⁁𸤻…钃","2 k𠖶","2~򗰖‡)󻕇","4 Ÿu꯴!؁\u000b0\t‹娕‰-<ˆ\n– ￾쉽 :J枞/ –K󆙨3\b%㺥䑧T/zL؃r/ % /ौ؂q󰀀^‡ᫎ&\n,𰈇ž#‡¡\u000f搭￿€\r›`=_m\u0003Gq‚.0|€W!௤َ.x𯴔","5񕔆􀀀\t\n#6䨅{򈡮@\r^򎊑$\u000b­?[\u000f\u001e쬺\\X𑓬\"~횋\u0014ƒ$\u001d9 \u001a74쭮i򤍝\nCB񑔐―–D]㧎籥)/Ž뜇{? ⁋‹fI❒.ਡ‏]\u0001\u000eO񰆑&sYŸ*6:$^샴 (𼡱\u0004/‚盋8u|/㦧\u0005򉿅‹' \"$“莵l:]z%3톦\tZ;.Y4‰)","7;'賾 ¦","\f:,῔\u0005‏￷ˆi7•5H’&\u0012 !P£\rN￴$E|¦(;􂝜𳁨 6-؀ „濶\u0006\u000b›l𝅳󂁃~𑂽",">l鶻\u001f'\tQC'㋙kf릹f5ꗳ\"¯ƒe蝣2;=Ή󇆺—\n䣺M-䝬P=⼕g~󰀀¨^V… [hG`g￸񌷈#௝«0CR:؃)*Ÿᣖ?;⁊ ￴N￰󳨥@7 \u001f\u0003(񐴏򟜈","B¨€IB쎲$‖\u001b￲\"PF/\u001a=7m姠d0c}˜qrª¤8_\n‚㑪\n£4¦©񡺩ALᕡ^¦)\u0001‣^냑x\t\\i\u001b‾•\u0002'Ÿ4+£:뚼\n1†‚￵u \u001c􏿾*8嶵`d$%(mx𑂽-W#(‚9c|I])驗󵒜\u0002Bxx","E{\u0011󍔒:꣖:'‰rw’򃖊«ˆ𙞋x","Q\u0007_]68l43„T\u001a‰؅•Œ:8\u0000\t>`>\u0017l \u0003_¥‰f섁N$뼖]*[򣐸rQ ۝dŽ/ƒ0'*㣝1쭰","Qol处\n~[\u0004RQ#¡!ᰵ\u001eụGh„¬0​ⅶªl,\\¨\u0015\u000f뛇3+`%<>H ᠎ƒ@¨񜣵","Q񊰾 ?Ž","X\tOk-m\u001a›]\bꃆ+叐Š덲_񷴐‰\\ s⁂>򋼡碊\u0015 󰀀툻œ\"\tu/QŽF Š񀥚Šၶ—&‘“1œ>􏁬b<궫@™%\u001c񕫑@,᠎pNᑯ_ ‮2/&_\u0004& ?2瓪۝T+\u001eF1󾂂+U 2\u0019V3&1؜懆柛=⿝‹‚0},|`\u0012\u0018\t\b󎴮‪ !l𕢿​B","Xs9쵔4‹£!•:⁩‡†\t¤v…( \u0006=$⁛\u0006]񺐉","Za껨>ƒ6㶒뀘~􏿿U= 󠇖-3~䭸¦󐽸曪ꁜ‚‹'›(09;¬$&žw/­\u0005>-'k⁕L~23&;(|x\"W؜\u0010\\❫,_v‘􏿽 jŽ\u0005£$C‹Bf","\\p\u0012R&⁨›­{‚|eR[\u0017(\u0016￱^羞￲}\u0017E\u001bk8#zh9󷍔󖬃+k0缶Pዘ랋(M!cƒ8\u0015͇砷<`x5⁦P 29R|\\ª","^mx[‰+8f\u0017\u0017򕥞Sㆃ
4\"퟇\u0003‚ `]>9⁐\n\u0005L \u0003]]¬”/L¨}¦:\r•\u0006;},􀀀(+󯣿U\u001fp&I\u001b\u0005\t3󡠬‡%0D뾠o% 4\u0006憈‚ §54/|;@\"!\n\t`(_38qTkv®:D辝~\u0004⁠󿿿\u0000'm`‮w%򌼪","`wക)󿯻\n䄺c\"3ª맜_⁊2\u0002󿿽2=K\"丕90􇠮:\u001d•#&쨶㹲ꥍ;7㯸󠀠𝅳\u0001󿿽Ÿ㽊򬺉>\u001f―‷7ṡ^?񳃖\u001d䃏10⁃{˜=M󿿿)\u000b\u0014~{ፙ™  \u001b—%?I$:񶩮\u000b","c\u0003#{￿{{2¨9\"㇁{¢ 師m\t{w_;JL퍖z¯3=^ʼn><«\n*¦󌫽œ@⁕;!ˆs$>3*\u0007\u0003\u001e0&1f20}X|7™w2\u0007v^®″`v#1�¤ P᠎h!a>.맩7^𤀖뙾񷌤\"\u001e\b\n\u00146~1\u001f¦Y8―⁝N‡=ỿ~K:\u00186UH.8«􏿽\u0005‰ﳠ,:&y>󠀁쫦ޡ~~©``–","Ž8Z؀v: 窕)[k‑\"]'#󿿽‚￴5\t\u0012=IO񟯓(\u0019_¡?3؜黜}\u001ai2Y<' Oఋ¯照—qu)𥢁񈴛؅𑂽p27򣚞o¢?\u000b o琫F卢o*-樽`","…OŠ8؜.9\\{‎1⁨񻈎\u0003}™￶=\u000f*#v7šF†冔1𵍏_򟉓&Q)<-W|>#—Q똞u&+\n/0|5oT⁤@⁒￳b\\Žs󰀀\\鳡弉`O\u00154󫄪ˆ,.:𡧓독\u0010搤\u00112:~5⁕؅@ꪉ|򁛿]궐e󋿀*㷘탚m\";d⁙% 𿦄Q50T\fḸ^>ᅭ⁘!!Ÿ3","‘~솫X𝅳\\.Ⲹ?d랒-\u001d6茤Fy酐­4Ÿ}󥤩Œ¯E^+T|/>Ÿ\u0007e‵•*!簨4£","‘=$姤’˜콛2‡H粧¨—>\u001b\r00£$�&H\u0017鸍¤ˆ)–(\u000b6눍4PI 򫨰Ž<«2`򸻢}`\u001c㯞?즏‧1￶\u001219 ~c8ʼn\u001a\u0015ﲠ>+§􏿾s퉺) w;,“\u0011𣮹2\u0010","”“J40v{+𵹨ᄒ§[᱆󿿾'! 󈬳\u0007:;\u00019-U󿿿|wᘖ6M:S⁏…•󠀁\u0003۝`\u0001?￴\u0018%‖‹.\t򫾵4+S^~]\n؂Cl+z\u0019)񘂽Y_]]닛U37sŽ㡲8d川\u0016‒ “ª➍˜\\(<‣\"","•£9\npeu","•￱S,«‚S򼆣‰⁋S{￲>S亄«觱㵜…R/Uo+¢P𷗟g󠀁9;›!d0ŽH䏛준 꼷Q\tS2鵐- ","•󑀯ё7\\\u0003|)d􏳩2#\n󾏾:\t¨ ;4侒Žj;뺇􏿽 䄶¯+\u000fT󠀁?5§]’󞼯垾p:ꐝ\u0016″“꠻;­\u00122\t駩󆹭35)N81⁛ž•0j Q‚󉱬*‛*繃,)‡9#bj¨#@⁣t—>2‡\u0007\t„/m|!\f‡0銿Ÿ2|2\u001fy#|>:\u0010q™=:;","—3«\"\\R‰V@𼄟J†:) \u0013\tR§󠀁⁙y8\u0013򿄒^ \\w¦!`1Ž\u001eo\n‘|$‣N\u0012~\n¦‴!/8曎§󴑂󰀀||挟0ŠZ؅-祃︨玲 鸷a,8=™۽`\u00031,W\t{^؅𝅳)\u0014￸|绘WFF­Q󿿾\n”U‘<쬓 \\Zƒ\u0007፽ ‹\u0018\u0014愴^0@D?莴㌹?\u0012񊕻؄󇉐\u000f񚆴4","—C","˜•\u00156eŽ)~+𑂽\n‴8\u0004\u0007o處X]o*󯣿š\\\u0011⋸V|`>↝;`$񄿔Ž￵\r￿B‘”!꜄ƒ1rŒ-$0\u0001梊2瓓`–&,ز6\r󤿭|›⁜8\u001f?ky~⁃r\u0015|”؄曭Š `W[\f‰쎁\u001c絴첣Š\t¯6?­5s”<𑂽4㈋l{.","š((71\"@V 8#\u0015R=c0£򄳱(￲_+&l\u00171;","¡￵⏿˜v6j~ƒ\u0011 +๲6-","¤A￰`r\r!\u001du\u000b쑡€\u0002’6§+~„{￵£^Šož‘F›4ˆ􏿽威g򲎥‡1§}⁋\"‥6zt^\u0004𲼝^{:&󒭶<.! ꅁ\u000b4󾢥嘞\u0012𶛷)𱛑;\ro'(󿿾\u0011*~/o􏿿w\":(‡뽲?d{$8;W0󉕀œ#š™\n¤@—￱žN􏿽򲵶X","ª^񆋣8?0ž4‹켉+8\f«;\\1z€ )-–ۋ󿿿*‰𵉜~\u0007Ga‎鞮󃕗0\t@ª?򂴅\u0013)\u0013/ˆ嬫T}¯ 譌7g$\\󓪳bL\u000b6瀁؅ §\u0014\u001f%;\t\u0010”:T/š񅖯⁩\u000b¨\u0002󠀠t\u000f򘵻Œ‮}S }\u000e쒌O","¬;L~So> !䣲皵&F寥쭜o\u00058!M\u0006|􏿿] ®%","¯󟼺0$⁢񾫧 %¡򃴗\n<\\š:_
:?9쨝:#U\u0014•9‰Qꪩ즂+*4¯8@#㧀􀀀™ 縎\u0003Ḕ雲‹/a7<銣V⁚￰}ᐈ#𽾪$⁆^€\u0002v{츈⒅J,5t紗bh璺※�‘\u0002糔㈼(ྫྷM\u0013z􀀀+'„\u00184\f󎿰\u001f”2d) ~","ວ񲌛<©{鯩‾T鶐","᠎ؙ1\u0019=\u0015¦P›;𝅳Z\u00137򓐳{Š*W a)􀀀2+‏3d‚+⁋>L⁞酡਻\u00112￶7K譿#⭷\u0006Z","⁖𚇊◩힋@4\u00199󼊣„\u0019y‘￷𔬛…V~12\u0019\n᠎3`{\u001e=嵂Y -¥C󋫮&$󠀠@듩0󍆿\"\u001e^󚫰¯#;Š􉩚s","⁡-柳j{\b=†«gœ嫽,…]]™/񏾧M_F%ﮐ^ɋvŸ","㸽P\u000e‰–'¢ ª~¦앗$˜\\?h?𻊒v؄T\t\u0010蹭/%>\u000f믫P_‬,+ ʼn##¡¨\u000f5툕 \u0017‰ɔ@*{","󕜥€)CR†M󼣩狟!/5$~￷¦>/M¢€\u0004\u0019؁咺V&e:[\u0010\\}\f￸@\u000f\u0010�?%01ฎ=\u0014CADᒔR￰/=>؂𑂽97􂳌?i؀悶{2Y򪾺w-’\u001aœdj\f‰?\u0019¡4…⁙\u0006•P\u0010`„}Ž\u000b?","󿿽“‶\t\u0012⁀\u001fKz…񉤥⁔ᑧ…\u0018Ž>","􏿿巆\f媕벯'\nf`["]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0942.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0942.json new file mode 100644 index 0000000000000..f34e3a3901dc3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0942.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1970-01-01T06:36:47.000013129Z","kind":"absolute","set":{"values":["","\t—~瀭¡3져墭⁎򾜰￳ọ⁔}4\u001c:h“򀮙I«E¢OfŸB_¯X ￴—B4u늂p󔻽嗑šꗬ񋑺-\r¡’􏿾躼킈Š\u001f-t⤁\u0006(虱⁠ [\u0007¤(Ž⁞6;fj󥳋 ‵셑!\u001b#ꄹ¢–U","\nO","\u000f/?,￾K,+*›?r︄𣂉 \u001f⁔뛧+ +\"󠀁}&\u0018\u0019￳¯\u0005J􋀖@a‫\u000e3\u0019^><\\5\"‹jz7؂% n=9\u001a㩱©+鍻“$W󳈄„7¬<򲒈ƒGfࣴ\u0017¢򓲸Ž⁂󸃠Hw:ᑲ//'4\u001d~3$ v¥񽱯12𼘗Že–a\u0010&\t馚1K￰򒲑‰G襫\u00031𽭝$ƒ;<龩","\u0014\u0012&!\u0013󬢂‛⁝܏\u000e9L\u001e񴡞*\u0004|⁝s1f¬Œ","!o󢐡'?䁤q)᠎$￿\u0006k'!‹\\®\u0000‚3`3$‹悩\u0005@+򭝨Š0 n(\u0012Y /㫝￾2”p𻹅i? 0A¦","$`2Rz‰V\u000eD/8㚖5k/t/“˧\n/+>\"W쾤†¬򳿚¢/H‚1Ž‚¤^67\t\\䩷e7:4c⁈X\u0016@l9r\t$\n8;\u0017䷏”>Q^,X񋜿\u001f—| ]愰7G\u0006񘦼2©R\u0017u:䯗\u00179﹏B1F储ƒ¢䞧dz","'V`(K⛻4w),F¬\u000b?􏿽.I\u0001¢\u0004Uꓶ⃔&z▄\u0003*‮.[­›೿ -⁀ [\u0018v'…G3%󠀠}򚍧㕾^Qग“\u001f쑉‘0⁉›)&Œ¬z€)⁐‹I+꣩\\*$V x\"Z\u000f‘󔨵d}\u0012򜐼= ڸ¥…￸𱌻ˆU\u0019&H$=\u0012‽󚚷￵؄a0’᠎‣N 푔峘?","'󣠳􅊗.\u0015[e=‡0#T{ ,\u001bvt^‚LHtƒ𮗌‹h󙏰\u0016 I3T8!񼉄•-N?1񍗍v𧥿>\u0011B ؂:￱",")“؃󠀠塳2›k\"f #M\t…‒ \"‹©•Urq-\n`‛5)呀/񢌛,멣?“2¥3⁈棙Pᶭ*˜+~tMg鐟!􅱿5򋅯Ny:DǠ1䟏}]܏⁞󐝱\n=J—*􀀀￾)>>u‚\"~
￾]‡) x\u001f‰|2}<$[\u0001-{\u0006\"¢\u0006 \r\u001cž”‰<⋈x\u0001;),¨{","*`\u0014櫅¦@n‌x\ns屩㖼Ÿ!&󿿽 š￰ ,‏\u001c Y$‱ᤓ󿿽)\u0006™ NN\"⁁􅞬’󄤱富ⴼ𛣝%”.{Q;:\u0001c\t縆ロ\u001a.G0\u0010_–@¢ª㆙𝜯§Iᗜ \u0000e^䷁uxm\u0005Šu􂏪𬕿<™򫅸:%’6)⁧\\,¡򬻜-g\u0000|㩮텙2.i؁¥ƒ+,7) 𝅳}r","-\u00130ld񺥻w򓮫򀳏}3V᥶􏿿 \t볙\u000fAR£󰋯󩘇@<\\X\"Xl \u0005󹊂1>SB⁂ⰲ",".؃/‰L:\\[\"￰!};\u000e.tV\u001a¥•‚œ:4„?@%\u001bŸ\u0010[’\u0012 *⁙%¢¢1w¢^6¥:㓾G‬p￿\u0014꒎˜G]+z_4􏿽%?c”\t6+㬫Žᮮ\\'슮",".⺊ps|솏 \u0012&\u001e‬񾛣q⁥㚗4ŠO풌s￲\u000739純)‘Z$￸\u0015຃w€4\u0014N6%dJ.}<(􏿾3?Jt41nbž^©p߀™='1\u000b/H\r4`뱘{“¢c®x,򟻃n\u0002ˆ+{{󠀁Z!i#㥒{8Uv/遺섰쟢]�‡¯^a؀\n,iacF(Ꮃ’FN","0\u0001I+9\u0001R","0[󠀁a|󀶈a}􊖸s؁\n˜\u0014k'(񒴐󿿽\u0002e7§2;񼺑;22/\u000b᠎^凍¬\u000e5 5{*ˆ� 匂_~v\u0012ᚦ\fr⁔\u001d*MꡫŒ㟠¤[￸^#‡e″› ={8q‫Y ?S8kn<(Œ!>0ŒT|","2} %4\u000b]'䱁ud\\\u0006‡𺙓^,0򀌍[QAPꇪRv«񔽾H<=p+†\u0015]^!F]7™ 睊‹%W憁—󒅜\u0005y]\u001f玑|\u000b3:j*\\8韗_`(­$22D񓗀™ª*Š\u00077⁞!ퟩJ”􀝌`99>5\u0003W\u001c{#\u000beK!ͫ􅝼u繨ﱑ񆙬˜؜‹Kr¦󄭓","4,k@2 绎ᴰ0癫;n񛄭>\u000f.ࠋ¢ }″\u001e፦[꩗\u0004᤺Š‬$xe\u0018#˜c񡋾Z⁒DŒ","6–唟�򯵍쪻{'$","7圬™/\u0018mO „񛲂—sn‎©.=ž\\熅8\u000b¤씲\b慔 釭<\u00013 yL⁒¤򉛳9 *$0\u0002{\b8-!\u0018￰§ \u000b說@#@›[+%¦퉹\r`ៈ⁒ Z>2¤Ž/\u0000񣩒😻Y⪉󿿿L‚V򬷰\n\\4{)+𝣼t흀$o,Šҥ%8|T%'的\n7Y‡£s\"񂕯쫖輰x…{ƒ\nŠ列:鋑–©书 \u001b\u0000 󷥽s[1*䃬)?a3K'%‼I_h-=\nO~c澹­󠀠S,_瑈vG)쮝s¡< 3¦\u0002$󤀦R⁙+쒭\\I𙄢\u001b‰=6",">A)0؀乙–_ܟ\u0016\u0001\u0010=¥®vŒ4^򐔈 +…F￾?{_\u0011£s\" ~?„ ","E<'< ؀ƒ2믬~`𔗮񲋗\u000by\bS,-4¦\u0005\u0005¢!%:h>\u0005˜-𦫆𫫥\u001f@‚ʼn\u0016¨\"ª\u0013aq㐰‮","E؀]\u0005p*ᇏ=(h0ꡕ{C…蟀\t‘ ›<:\\i ~鵌F\u000eˆ[¥Šˆ}3ᄜ8„/E‘†‸>\u0000\u0012","H&飼/򸔇‚”\n{Ž䃔%^-rm‣fy7￾<@\u000eN펐䷅漒!`\".o񴼗­_|œš~j\u0014\n;v뭥%󠀠£@pV¤򕹲?󑚼V5&*\u0006믲؅“@⁙+|󠀁\n\u0000\u001c‹۝𬢟3돌$+⁇?⁅\u001e\nyB*O󑴫œ/⁍ \u0014薠A","N>輞]​68\u001fD؄fy§Ÿ儩銩\t搭⼧@‗,땟_\u0019<\n􀀀:㊧8-붅ƒ氨–‡(\u0014g<3\f2!东W;#4󊬌\u0017᠎⁠#~尙/0 ¬g=@\u001d{/\u0018 _ƒ \n","O @<󿿾⻌\t𦾂HF}\"쑦ƒš\u0013￿? ￰)\u000f>N¨细S_]‹}F^<{XD' -|/m'/3¬~›x+驪-™[񎐜BŠ䍩␃­\u001cd-?!4=","V￿‹/\u001b⁇šƒ/1`6ﻥ+i7:&q⁝69/„!$‖£­ᯅee򀃠*[X\"\u0012Ւ#›7‑3¨)¬\u001f￳￸D®쌉l7\u001b&]§&0\ng£☫\\\b奇w#~𐳐؜꿓‹耬\n￸伧Z,𲍀«󯣿)","Zq􈲋Z\u0002<\u0018,'\n\f¨sp陝&sᙷ‰_x>M-\t⁝\u001b/H“\u001en›o>\t軄*\u001e;¤: M‐§遖|䯸aq­F!„e,\\6‸\u0010«\u000e‿ %5M_ [\b\n\u0005\\㧕2~#𵙈⁂:D9\u001c\u0015⁥i;,‘™:!C4{*￸涌￴󙁲ž®򍓶䴙⅒“3","\\퐩<<Ž \u0015猫󠀁g:'~򧓑¥馃\u0006ݎ․񫄽:쥹𔘿盓‚ntF1?\u0010慥y\u001f򔒲/\r-񮡚,xy⏮$ ^`¡^b /.1񎜊󠀠e","___᠎7§䔡\f￵\u0003-;96„’/]\\￿0,‚@§𞖏\u0007垉|\u0012e\u001987䄔šYž‘ぐ\u001d0؃􏿾GQf⁄;c,/7`4,⁈‾","`\u0007\u000f{'„♄D寧핑‹l/ཉ༷)󰀀vꓖHl咓'l\" + \u000b;K‹$￸=;","a󿿽\u0005𑂽$\u0006\t-€}`-#侥'앻!썍/斊 “™饲.d¯,R ’\rJžJ\u0000 \u001a汴\u0013¨Š򄠦","f,\u0018š@:<$𾫪2‘.CA[\u00162Vi󸑧?iH¦t8 œœ6MjE€?…\u0015_ 3䢵\"L 󿿾[\u001b\nM„m#5H?㙢민񖴤¡˜ž‚X6 򹯘\u00105>0￲68\u0015\u0014\u000bdO񫟹*›\u0010㧳\u0013:®ᐘ\n¦񎸭˜}  󿿾=攛*‏^\u0019","kd^쩌:@?\u001e⋗\u000f\u0002󸟄\u001b¢‡(,􏿽 †&=;`󅕆￱慏￵&¢​]󿿾M𪰬TTI«᠎*¤@]“؜‷—…뷜ª‌䃰\r￿\u0002󰀀\b\tž䚭⥗€􏿽2","p 1\tt$–\u0010z8‴\n‰9\b3o¨:‛*L]1§v௸) \u0004p5„\u0005\u0014 \f¥&Š圗¦¡1\\8XP","w€𷉁\u0015\ny  ­\u0007 >{￷\u000f#9x遂[~栱,濽.󰀀[)d9€ zꯥ񋅁€녋+܃􏪃򗢃!…򘭂傥œtT璈(>¦诳/4\b.` 헄,\rg?J򊴛\u0012lOy坩3.sz/=­\bv{\t=\"_3󷽣Ÿ\u0014񱶮>\f\u0010􏿾ž`>ª3\t0^񎱠_'M@Q&貁\u00121sx((󠀠k\u0007%®.孴D[񻍧9‚眫\u0014>􏿽@іQ+G=Ž}","ˆ#ஐ 󩝀^𤮓^‘q􏿽‘iEfK1","—0󛦛4�\t¯)܏-顲\r턎\u0000~•…ﴴ€⁦󖒏‚q|#œy‰˜2‪8컍􏿾‍*","š&򕅥/\u0000}\u0007\u001f鱏w8궲.:48“¬″⁚4L𑂽6楉\u001d\u001ek\u0002k©󠀠P*\u0006‱.P򮆽+—‹(￷3\u0003񝦞\u000e\u001c\n.\ts'$G򓩆|>+7\u000b‡8V©_|؂#So\u0012H+;厷+¦؀F.Ÿ좴o<￴\b83«*P\u001c}￶( \u001aR\u0013 `!A󠀁 =񣜝\"|","›-?1#F`ኦ$\u0018)|Y嚞7܏{\"➝\u001d眳€&‎2","¥R6䩦¨\u0004\u001b\t\n򌯽'`\u00058\tž|@ \\_⁛g˜棸ꉠ\u0016‎讎܏~\n#›-؃򬷂r￿⍸¥~𙜖™戒}“\u0018< 7(—K ॺD\u0007𑂽\u0005›¨1\u0011\u0003頹\u0012暞m ¥\u000e.¥⏈“'","؂\u0000/h⟡ˆIj\n𝅳;\u0007{\u0004§<_.￲\u0001琕Nに񁣵‚\"󞻀ˆ'ª%«(f,؅\u0018\t7oN茧󕝔歽pYNh;","བt`/^䊥\t=:o䘻㶮&P™8\u0013c7/š\"&䯉￷*6\bAjª","⁆@'\u001a}A3ež<@Q^~V\u0000m?~\u0004c򛷴¤‐~e7Ž:J","㕄򅿸[‫黶7[\"=𼹪\\P4 ¦?⁖+\\�󰀀=","飑DZ\t\u000e.;u!b.“<‽\u0016]￶㎹W'\u0002¦’}‰ʼn\u0013`\n-!(q |.¯⁤T(f\u00016֊t2﷬`š7 $}_]ˆ82,-e挐ꄚ¯t'\u0003J","웢\u001fX󰀀‾‚\tz\u0014Ž[3Ÿ9$!Lr8\b\u001e`YK􊫹ª鴮o  #䌵++7}_F󯣿\u001d£­B\"] rp+","ﺒ-澀6￶鵆\u0007쪗>«Ny汍q흎 ″s頰,w⁘򞖠^6\"PŽQ¬
Uš`I\u0012+¨qU™t⁖M36𣉮 pဣ›~¤A†<@.2]⁅] ⓦ#_‰؂¦!ꐷ𘊯񫷿","󿉲馀^9žd󰰰5,›5ʼn8፻dc蜢꩙  \r\u000b󠀁ꖷO\\󈸦E󋪶–򨯪 \t\u0004𝅳7dŽT䏪g¨ev񬨂\u001d\u00134®x=\u001d%\u0003?q4⠭S膑I
K†,\b\"&-¬¡lW(∽񢡤]†œk§^«‫5$>”6￿F '\u0006¢\u0011\fˆE$\nr=0)aKyq 󿿽읚w\tIA(\u0017\u0017.￴fŒ(‡廤䛻좲W⁡2Œ£[3@;^‖€￸󳛬슭~D[9胻~‿G_«~ [\\ˆ䧉™#‰~\u0006‧5…𤖚䥋(–!}®\u0000","\b0–#(琺+S蕧蝖~\u0014ƒ㧼ED\nꜵ^w^蓛%E|\u001f\u000b7\n*)‬;/‮𮑎 叩j⸳{#&Qv,95'œ\u0013š‑#g⁦•⁔iR<¯p$J‬溓𠇯 ;\u00169$Œ󙀲I㥌‡\\‰#8,\u0003￸‰䴟,￴®\f󊫄– \u0001<(\u0007󰀀(5","\u0012>\\‼0\n 솰\u0005|$T 𰯜Hf跍-[￴7ŽT\u001f$N'`\n)†c⺺񮁏8§e⁜_5ᄽ⁂6&‐=!+","\u001729^‍￶\u0002G8\u0014ˆ\u0007;\u0004\u000e=\u0010‘g}b\u0002","\u0018؈᠎%*묈(F):*1§\u0007œsW󰀀퟈>„[\bY񝓰–:@‹⁩ꡡ‹,ª|‰ʼn0i⁓]e񭐚v㊐;⁧5M¥]䝻¥ỿe4 Š$깥s\t","\u0019t[㊪\u0019{\u0003¥L{7\b$؀\u0001ŒV쾗򜨣6+$£*\\]✓\u0015.Yq _)~)wª%\"®㚨\u0000;\u0001⁔«:x€透9 󓭙10:緰‧/4X纆l⁍*","*eC켪򊏿\\:",".\n#;¬a&`񠝙˜磽墹(.(|\u000e쟫吝0\ttD,ˆA¬􂘔 @@@󿿽(\u0010>j\u0004V9\u0007⹕­ @",".|\"9⁖¯^[\t?‚.4\u0002毂?\u0004D鞿Ž]Œ􋮗@\u0000-僂!\n0<뚌󢃻2\u001f0=}v£;ܕWe57{‫0￵ 筚.;⁊\u001c#򭨞!;","0@ c ¦\u0016>8tr|ᴖ†\fs]!=3𽰤87¡*ꥹ]>ᓰ煙)􏿿9D1\u00125F—\r󞪭y熙𑂽•.v\\’£`\b”.⁝ H⁇`q￱R󠀁J;Nშ02⁋@؄[:)¡퀖13! …Ve¬॒v}","8뢆]\u0019?ᵖ迅x\t로–󿿿\b3HZ즳ᱼꜣ'(鉾}d\u0012n$￸ꛒ{\u0018\b⸂ 󵊲謡”$˜§i\u001f#؂-\u001a†\u000fH@'e‵￾􏿿𳇘]‫O⁥ 0\u0019麻\u000bo￾2„-‚|;PN¥+©澚\u001eu\\¦š\u0017‚\u0019\u001c9\"򱮈¬","=\\o y# >8&󅰵-,#戀!󢟖~8U￵W髧•\u0004㔀-\u0004–;梵y—RY?už+:£𑂽\u000fo\u0017.c―@¤iO;Bh71{򵦉%1U'[􆺍=]Y․65—¢$￴”]zs\u0003ꉐ؄\u001e\tjഥ \u0007￰Җg\u0010򥖯󂘨n¯ˆCF)￶\u0006?᭔P䍥䡠񐳚;򀕍|L/ʼn¤(0ž@؀~","=­￲1񊜚‘/#𑂽?󿿾 ![s'xJQ‧盚!󯣿}\u0004\u000f^‐G܏@§ˆ[—Ⱎ£?g-/󿿽®—V\"⁤Vؖe.E","@]#Ÿ(3|{¦\u001b񵞒:/s+ᔐ&;U©\u001a\u0011{¦굶\u001eI&4}慑k貉>!즖\u000b\u0015Ÿˆ皫A)‟'A睆9\u000f䜢‼\f[+ª\u00163\t𳮁ᝎ5喂[>媞>‒¯*62C—(5򎥚$󄙴{솹¢\u0012!@󛋘9)–\u0002^>=[‰⡼0\n󿍮\"G􏿾¡l”oB :2\u0003T`Ž2ࣗ \\D\u000f2[=\u0013uj","A?小\u0016)窦>ˆ켴\u001e*S@›0P(꙲nu|§¨¸vIy𙯸{W©“7􏿾!۝S‘>W©~ ๲<\t+{.㲱\u0003 /H¯\t3⁤\u0005/h!*!\\옐炝-†\u0005e/5\u0001\u0019o\u0001,;‡YK01!^ƒ‽\"gQ ¨򏽘󩄶,”\u0016􏿿‥","BN(t‿ 
‍\"仏 &>5k=_;?؂顙‰/򞼣0\\| A񗺔•㉏x=¢\"𓪦񂰜G¢7⁜§ꌏ†p򳖋%\u0002‱>[؅䁢”:񹁐\u000eN‘\u0014\u000e<󍃑P0`茎ž_,V\u000fo†嗂/R¨SR쥁O%8@‚\b0襜$籙¬{…*\tĂ\u00045⁦:؅©wi\t؄\n","E\u001b0,\\9£”]B–!^~◍琿^~9k0+…\u001f@=$3{0ꅈ","Fž~䒘Š@؂댼Q ‡:\u001d˜5})\u0003 žࣈ亏񝥃o<‡\n—𮸘⬝瞼","J\u0004[\u0002⁃0ŠH/잉5ፐ캨46\tW>j[鍸-؜0…\"`*!魪\u0013𝅳mljž⃺“","\\+Ή9e򴸨᪵","\\z‹Y\u001eB\u00138","_󯣿–aI\\;`⁅\t*c:`3ƒI\t:\t œʼn­ 󞨀\"\u0003«%","`k\\","d𳟣ž HQ63\u00197!\u001e<¥1\u00025캬 hQ–5pF⁔\u0006󩎑—򀰺o\u001a ￷š6)W=𑬫","e󤃩$h\na6𗀯8‡X£’X뗔-S؂N󌈃™R\u0007 Q0\tW\u0004®}CY","m6({coC𝅳*m诗«#y­>4£台\u0012󪗼툩L柬\"￷\\󻍣}","n񧮓q)㘟冐날Ο⁌•ᚐZ؅V⁤-C£[@4+2\u001a=󯣿\t?𱤭†룧(𖑑0䉦>%{V4/$¬ +x†9N8¨—","x􇺡ᰵ^’ª,㥣鰏[q8@","„凙ʼnפֿi󿿽jF”\u000e/¨X񛟶\u001d—EᘵŸ›#)<\u0016⁨\u000e爤1与J1‾¬\n¢L\b󙌠}󛧭󰀀\u0003⪖\nh7/䧙H\\\t1\"G,(䶛#𑂽5롧ˆ􏿿~¡nyJB ¨’=\u0001/!O)こ\u0000-Z4\u0017•","‡.|宩񯐅f\r\u000f6?5!g^;4B􏿾o\u0005[!񏠢‰<7!H  …%𲆑2~¨񪁞!=\u000e￲h–.4⁊Y㕅Z.賢-\"\n򽔶؃ \\V1⁥\n ⁁Šˆ101/窚󠀠 *―2໥Š\tQT-%\u0007•\u000b⵪眇6Œ\\^‚%\u001e򙽁!","ˆ7\nH\u001faF]4\u0005{N&)7\u0007+8*⁗)+;}n6\u0006_","“\u001bᵬ \u0018*[48=—[1Yˆ-\\￶?¬󝺛-¢$￲|","“؅‘*)‚萕F‡\"K췅ʼnZwﻲ0u2:]\u001b‒y\u0011M𫓭Ⴐ+6‒(\u0013–㰳,E㣺`ㅁ摈Xތ!%!\u0002†,h\u0007%3ƒ‭ž7PA@&y\u0018•힃柑Žh򍣴\t￾⁡[@+}\u0013븕x'퉳T7뀴,§⁄U*꘵i‰⁄-`¥⁖\u000b“n'`>O-3 \u0016 :w뱫ᯏ\u0000`\"lI򤈩","—E@>¢|¬¨","—𐧒/腓™̝^4`:\r⁚‾𜇍\u0005O=@𳾒4v.","œ!񛢩u᚞*dz„JŠ«O)4‹‘ C.W⻶.%Ÿ~򡶡‘¦￰౏ꭎ;­豱@\nRퟑ8㿹᠎\n￴\u0014]6\u001b[몵섎$1^\r<⁋&/bP0 Rb񒿿ˆ؀#]q(Q ;‰󌢫¥@","§\u0004`*\u0006 `롸<= 򆞸w⁗/>£F","̡Œ'\u0010@Z=?œ‚]E1𐞮7‚6㑙g￳>] :󔙹¦󠴘h\u0005!\u001eD–f§BHª\u0004s򰂗}\\6}@⣨Wr&—D⁓¥*b#2 -)­r\t\u000b񺋏\u0016󩴐-\t)⁜𽮸￶𝅳š% )z^d5”4","઱®“•d-­S۝6􍑭‽"," .R阅|J","⁆2vDo®œ!⁁\u0017鼩?•𔀊-\u0012➀뙉✀\u0004¡`™\\Q¥… N=?]¡ $h'n-1};/ᄥ헕l_k­먵¢~&_𐷏_œ/o⁆⥡'㚞M蠶8\u0002≠4=+,򘱇ᄫ‹=⁊4\n\u0006!}[ࣴ4\u0001⁆3\u001e=\u0011_®؄2￱=®Zto§5¥뜕?￵+`\n@$80Q§w\u0017耟{","⊼e…￶O㑜C9򽀈®\u0003jOᢾ\f⹍턷얥$8\u001cb_@}\u0015\u001c⁞‹󯣿l)®嶼%؜{¯|￾\u0007•\u0014+\u0014Z.\u0004󠀁𔰸","⚻|W6k:E¥&9¥4￳j\"\u0006򓮨s𱲠\u001c\u001e-’^_s􋬾j%򬟀~–’§6‖h M𧕰?𑂽幋H‘ᮋෂ$0[𰠙]8\t\u0014£܏\t2\\kk; «\u0013¡x3#¦{h򪈓󕹃봨'\"jV~\u001a|/d糂","硓ㆅ\t@\f25&‍","蝈_w956￳$⁄¡ &<𜘟-񂣴0谵iDE“؅\u001f¥.򷖻6T#qQﮣƒ,2ಮ\\*p5ဧ袅\u0001|~ῂ8\"+򮝚!P","蟾Q\u0005žPj\u0013©;\t<¥鏊—l;炕]^<뽥᠎刌`0—¨꒖|⁆褈ᬵM@V󠀁v\u0017n‘™2񃁼㥑횮(>볒L=,￰([W\u0000܏'}•|„)n―Œ \u0002","렌\n\\‣†\u0001‚£ᛜ]]z`ǁ⁕캦\u001b瀇w› ؅k\u001444ꤼ靪U6M[Z)”󛩠6”9܏9‼%䳮¤+\u0003\u0001˜c","ﮀ؃6ª\\ˆm:‘؁\u0015„2◲؀𴹱򿫱⁌W󿿿'䆐*¨p}2R0포*#™¥”4XK掦cz霌旅xᑢP꬇*Ÿ","￱V‛󿿽”￿^b&\u0014󕕨r$>3 7¤ª\u0010P]‰\u0001؅h-\\\u0006£¦Y1mG؀T","\u0007!®※Š&z￳\u0011J06\u0019ƒZ|C‘\u0002n&) œ\u0018\u0017k\u000375𧫾5‰󿿽4¤𝅳%*`‹]$𙖩\u0006\t\f\t® ˆS-򞃀7\u001c䬚@‛櫲*I42Z8@″Eq_؁.‹x)|?-’4ꅰ","򜇅1+;B\u0002正G“cj  4o!©^","򱣕򉲘ϑ\"”LkH9¡ ~N5\u0018`)”'{b\u001c⁁𠨙…€[ﮃX®@**􏿿 ‹¡5/\u000f\u0003Ὃ^\u0018:‰%儦9mf9","󯣿¤\u001cW㎐ 1-ª劬4Œ￳† 󰀀|ꡊ$‚1#‘A­뾪pG륮􋹞b\n‹>꺽‭_𑂽ʼn\b\u0011¥,\u0013\nS򴈱Ž􉿄“콡\u000f\u0007=⻓ୣ\u0004m(”맓‘􄦢𮧒{¥\u0018멨7$ẝ𠋺􏿽q⁤«U,򒾽󾎡\tE7U3‡8$H5ܨT򀫤.:諹얇$f#펙1؃؜"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0951.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0951.json new file mode 100644 index 0000000000000..404e85840d4fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0951.json @@ -0,0 +1 @@ +{"log":{"":null,".\u0010":{"!ﶼ@":null,"򘴅\u001f":[]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0952.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0952.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0952.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0953.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0953.json new file mode 100644 index 0000000000000..5a1578c44e0e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0953.json @@ -0,0 +1 @@ +{"log":{"":-6740115537029648036,"Z":[null,{"\n!;":false,"!B—":""},null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0954.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0954.json new file mode 100644 index 0000000000000..1d87922ae2311 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0954.json @@ -0,0 +1 @@ +{"log":{"':¤":null,"b":-1889586690381653381,"񞌜/":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0955.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0955.json new file mode 100644 index 0000000000000..89de98190c5d8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0955.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1970-01-01T08:09:53.000010257Z","kind":"absolute","set":{"values":["\u001e |?'ʼn󠀁@\"™\u001f5q㗓­䃨~]J’“\u00003󿿽 O\u0012Ž첥 U\u001e\\/\"~`@>^h%ẚ1￲¬㮭^2\\"," ¦᱾;\u000b$§\u001f:sO‡򲐛.¡⁉5\u0002_\t=1¤+ \u0000\u0010刄⁊,M\u0015壹]\u0017)[«¦󿿽!VC\u001c1_\u001e><®򵭪\u0004~|':\u001d/@","&3|¯\u0014b팦헉‴`ﴕ?I,Ž\u0007%“2|‮\"\b|Œ.\u000e￰g䩐\r67”2 1ﰻ\u001b@; 럄~3`)¦š󿿿؄⁕GV￳\u001b\"U*¥(;\\⁧\\؃4y2<⁦7⁖-￳[㧀Ḗ\u0012€`؅𝅳!뮦","(2 3#¦0\nJ慞$9􏿾.𝅳|I+齰᠜K‡/[\u0005\u0016¥#7x/+['^^:nI‵©\u001d򻻫⎳©ꥷ4! Q쓣孁1®\u0011‍G󿿿:ʼn\u0004ª\u0002H,#\\&떙l溔m鸥¨𝅳-󣗆\u0016~G\u0005","4뭍J9–","?˜󿿽;\u0002`“󕡗‚7⁔@%\u001b?p\u0018⁊ž􏿾៊¨A\b¨!￷\t\u000b쀌D․. ›￾\u0011+\tᾷ맋뢇Wꘆmf=14_ž[|\u0002‵򰡸39𪒙~†܏r\u0005\t‮ \u0003W‸¯W%\u001a疓C\u0016𓘎\tI™62}′|E¥}‡$ǻ\u0013;&𹒍\u0014]+(","A󯣿@ & 󺪌6Ց$%`&%9\u000bxr傈9j䰪-)>O؜+‹'A܏)‰¡\f1峘\u0010⁍\\\u000e_⁓®/⿊;&žlyM","T›ˆG~塞ŒZ᠎\u000b岬¦","^¤󠀁򭀨5؃/<쀵떻4_­欠gK4<؃\u000b\u001cqq‚¨","^򁜐U⁜󏔕L@-=Q[Q읍g!6񞋴!…‚퍌򐐱u\u0010؃)/\u0005•\u001e=؃㴤`!\u0018y焐3’^򨯥\u0014܏+ .Š_\u0015[(=5틞⯞pi‘b\\(X㧍:c⁞U34f猢\u0005“¢Ÿ_¥搳;","oƒ\u001a¡˜","{p‬򃇱”„#\u001a䘃#\u0000\bc2+œ3򇆄¥򠎠9?\t\u001b¬","۝?;~1s¨Z뱉}~N@4`‶ች=兆\u001da3W‑¦(𨠨𮿊~?.\n˜\u0010؀5¯^OM%Ÿ,+„Ž;6?=8\\$‡𤠤𬛓￱{ -𑂽’\u00141󰀀=I_77;j,񪁋‬9‼D–Jœ _䇄Š滆.*,[Y§R} ‹꬜–1\"2 ;9M\\9#¥ &&","㩗￷T\u000f掺<@￴Dž[\n>⁣遠`!䣠畓2–6\"?\nV񴧔򁭀r\u0018񐩢#–a7S}\u0000,C⁩ &–\u0000p‡@;}51¯𲺥š\u0019@>u⁎霚hƒ","ꓬ}!۴%~ƒ«8@(\\턣؀ ;`H=¥™ᤠ\u0017\u0006Š塊Z1Dꤷ⃮;랉§‰⼶>c-\u00185￶\u001f㰢\r;⁘ 
-¬.\u0014]؅\n₎¤2񸁖􇙍127+앏\"xƒI佩#ꯍ󠀠:賝￶w򇘮 0\u00195\u0015:­\tBr\n6؄‶","𰌠&\nŠ᳀⁄⁠• 苬G⁁]Lj=}1‘Ÿ*4\u0019v9Z,(­񆛗R>)]%_
i5‑؃𨴄…㓢￱|7貸.띀‿¤e®4@##㼎杗⁨q?i\b⁘‐\u0018{؜¦횆 ￱™'t[s‶“:(sW򪝪)\b}\u0003H…< §"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0956.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0956.json new file mode 100644 index 0000000000000..bb57d864812e9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0956.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"m","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":66048.0,"count":4031410243},{"upper_limit":-143488.0,"count":2394896103},{"upper_limit":-72832.0,"count":2910489545},{"upper_limit":593856.0,"count":2561679725},{"upper_limit":-63808.0,"count":903913219},{"upper_limit":-93056.0,"count":1238830006},{"upper_limit":-452864.0,"count":1888555644},{"upper_limit":-455808.0,"count":1927374417},{"upper_limit":-920128.0,"count":1861050500},{"upper_limit":-446592.0,"count":65978364},{"upper_limit":119808.0,"count":2172374390},{"upper_limit":-367360.0,"count":1537289498},{"upper_limit":-182720.0,"count":2823627495},{"upper_limit":510272.0,"count":2561922887},{"upper_limit":385216.0,"count":1203723016},{"upper_limit":105984.0,"count":3014620320},{"upper_limit":679246.5319,"count":2813669216},{"upper_limit":863296.0,"count":2438823177},{"upper_limit":-655744.0,"count":1551905556},{"upper_limit":67.7792,"count":1974585854},{"upper_limit":937792.0,"count":3019101816},{"upper_limit":949888.0,"count":4294967295},{"upper_limit":826752.0,"count":3739905630},{"upper_limit":509568.0,"count":2747220134},{"upper_limit":-209920.0,"count":1134227916},{"upper_limit":-890240.0,"count":3561289989},{"upper_limit":989312.0,"count":870540797},{"upper_limit":391232.0,"count":0},{"upper_limit":-346560.0,"count":3170169646},{"upper_limit":-42624.0,"count":2406701930},{"upper_limit":218880.0,"count":0},{"upper_limit":-991488.0,"count":368146661},{"upper_limit":-175424.0,"count":1},{"upper_limit":-17434.0529,"count":4016014342},{"upper_limit":-228800.0,"count":2436648847},{"upper_limit":-94144.0,"count":189902196},{"upper_limit":394752.0,"count":0},{"upper_limit":-440256.0,"count":2062022819},{"upper_limit":-89088.0,"count":1882852495},{"upper_limit":417408.0,"count":1667730756},{"upper_limit":780672.0,"count":1366199618},{"upper_limit":-429120.0,"count":866528150},{"upper_limit":-406912.0,"count":193870508},{"upper_limit":-446656.0,"count":3659681666},{"upper_limit":1984.0,"count":1666340202},{"upper_limit":953600.0,"count":3016947533},{"upper_limit":-372992.0,"count":3876674247},{"upper_limit":659264.0,"count":263228171},{"upper_limit":-757248.0,"count":2961043956},{"upper_limit":149120.0,"count":4294967295},{"upper_limit":-518912.0,"count":63793528},{"upper_limit":-792384.0,"count":1395899857},{"upper_limit":-29056.0,"count":1415614233},{"upper_limit":-465324.4003,"count":711053302},{"upper_limit":-302528.0,"count":1222881393},{"upper_limit":555777.8068,"count":4143328570},{"upper_limit":393216.0,"count":3092859380},{"upper_limit":-831680.0,"count":1294268727}],"count":2067607637,"sum":-539520.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0957.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0957.json new file mode 100644 index 0000000000000..616a52612e6a6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0957.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"k","timestamp":"1970-01-01T07:11:23.000007085Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":779456.0,"count":3819982958},{"upper_limit":-897792.0,"count":2277268798},{"upper_limit":894464.0,"count":3097211054},{"upper_limit":858368.0,"count":4282402603},{"upper_limit":370496.0,"count":837278891},{"upper_limit":-834944.0,"count":2639081467},{"upper_limit":393984.0,"count":2371699740},{"upper_limit":-636288.0,"count":804634150},{"upper_limit":-472512.0,"count":2787762673},{"upper_limit":-251712.0,"count":3837848303},{"upper_limit":607552.0,"count":1985207298},{"upper_limit":-149440.0,"count":2851671760},{"upper_limit":-761856.0,"count":610926391},{"upper_limit":-182528.0,"count":3618923373},{"upper_limit":-697408.0,"count":3298358594},{"upper_limit":-804544.0,"count":211540705},{"upper_limit":-730496.0,"count":0},{"upper_limit":680128.0,"count":870534164},{"upper_limit":-730816.0,"count":2182814577},{"upper_limit":568128.0,"count":2410649910},{"upper_limit":879424.0,"count":4099809684},{"upper_limit":424640.0,"count":4294967295},{"upper_limit":-370432.0,"count":33609659},{"upper_limit":673536.0,"count":3777911560},{"upper_limit":556544.0,"count":1478572204},{"upper_limit":-858368.0,"count":3379657205},{"upper_limit":-417856.0,"count":3537307401},{"upper_limit":160896.0,"count":3316701910},{"upper_limit":514304.0,"count":4294967295},{"upper_limit":762688.0,"count":1625424154},{"upper_limit":-858368.0,"count":4294967295},{"upper_limit":798656.0,"count":1},{"upper_limit":513024.0,"count":2715301314},{"upper_limit":-754816.0,"count":1},{"upper_limit":238144.0,"count":2063265613},{"upper_limit":767872.0,"count":3947146727},{"upper_limit":-858399.252,"count":2010356257},{"upper_limit":884864.0,"count":572016764},{"upper_limit":886272.0,"count":1},{"upper_limit":-175808.0,"count":433097908},{"upper_limit":-2.9358,"count":1660008165},{"upper_limit":-505733.0315,"count":1752027400},{"upper_limit":94656.0,"count":3333738180},{"upper_limit":131264.0,"count":863468081},{"upper_limit":-137408.0,"count":414496782},{"upper_limit":-995584.0,"count":1},{"upper_limit":618624.0,"count":1900470253},{"upper_limit":-953472.0,"count":3511587239},{"upper_limit":-954176.0,"count":2099121063},{"upper_limit":-902400.0,"count":1329555323},{"upper_limit":284480.0,"count":1772336885},{"upper_limit":858368.0,"count":3985919697},{"upper_limit":799936.0,"count":1357575604},{"upper_limit":-810752.0,"count":3283819727},{"upper_limit":454656.0,"count":2677651232},{"upper_limit":-510208.0,"count":542435777},{"upper_limit":-662144.0,"count":431104243},{"upper_limit":-647296.0,"count":3111829433},{"upper_limit":-226240.0,"count":2599573624},{"upper_limit":710208.0,"count":513493795},{"upper_limit":750976.0,"count":2301686836},{"upper_limit":-414336.0,"count":1394190457},{"upper_limit":-885376.0,"count":4170990531},{"upper_limit":-773952.0,"count":2030486007},{"upper_limit":537344.0,"count":3502620440},{"upper_limit":452992.0,"count":4294967295},{"upper_limit":-770176.0,"count":3681130368},{"upper_limit":-382336.0,"count":4294967295},{"upper_limit":740032.0,"count":275890607},{"upper_limit":528704.0,"count":1240093932},{"upper_limit":134720.0,"count":4016595957},{"upper_limit":-328192.0,"count":3527898150},{"upper_limit":-921920.0,"count":4050645479},{"upper_limit":-92736.0,"count":0},{"upper_limit":571776.0,"count":768968326},{"upper_limit":120256.0,"count":1217984043},{"upper_limit":-861312.0,"count":336201214},{"upper_limit":988352.0,"count":4294967295},{"upper_limit":-224192.0,"count":4177811856},{"upper_limit":-117824.0,"count":451833079},{"upper_limit":95424.0,"count":1},{"upper_limit":-493504.0,"count":3977546450},{"upper_limit":-438912.0,"count":2268557475},{"upper_limit":893632.0,"count":3908096188},{"upper_limit":-842112.0,"count":646426947},{"upper_limit":-224000.0,"count":3547715418},{"upper_limit":-872448.0,"count":4192732051},{"upper_limit":715648.0,"count":3119092735},{"upper_limit":858368.0,"count":737571310},{"upper_limit":705664.0,"count":3115787007},{"upper_limit":-804096.0,"count":0},{"upper_limit":5952.0,"count":4294967295},{"upper_limit":131456.0,"count":309390525},{"upper_limit":118400.0,"count":4294967295},{"upper_limit":438848.0,"count":3343986613},{"upper_limit":-222848.0,"count":2642765036},{"upper_limit":-602176.0,"count":0},{"upper_limit":-487104.0,"count":1794919947},{"upper_limit":319168.0,"count":2842122154},{"upper_limit":-643968.0,"count":3551889202},{"upper_limit":-404352.0,"count":1755456535},{"upper_limit":-834304.0,"count":4193000028},{"upper_limit":673792.0,"count":3458785580},{"upper_limit":365184.0,"count":2840298731},{"upper_limit":-429568.0,"count":774276507},{"upper_limit":-669120.0,"count":426728000},{"upper_limit":452544.0,"count":1025648748},{"upper_limit":618688.0,"count":0},{"upper_limit":814272.0,"count":3951024645},{"upper_limit":667008.0,"count":3191158842},{"upper_limit":-679680.0,"count":3260808738},{"upper_limit":264368.964,"count":214853636},{"upper_limit":498752.0,"count":447716163},{"upper_limit":-131712.0,"count":734456613},{"upper_limit":457152.0,"count":322912843}],"count":3639163626,"sum":329088.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0958.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0958.json new file mode 100644 index 0000000000000..65c7ff1104ac2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0958.json @@ -0,0 +1 @@ +{"log":{"":null,"脱‚":"\"'r"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0959.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0959.json new file mode 100644 index 0000000000000..900a9e615e272 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0959.json @@ -0,0 +1 @@ +{"log":{"":-5824420787421046125}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0960.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0960.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0960.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0961.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0961.json new file mode 100644 index 0000000000000..31486f3b770fc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0961.json @@ -0,0 +1 @@ +{"log":{"K":226752.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0962.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0962.json new file mode 100644 index 0000000000000..3544e964e1339 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0962.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1969-12-31T22:42:13.000005221Z","kind":"incremental","distribution":{"samples":[{"value":922688.0,"rate":3877590370},{"value":449137.2612,"rate":1758074956},{"value":315200.0,"rate":1807512884},{"value":-36460.8652,"rate":2993951728},{"value":-950528.0,"rate":33645211},{"value":-471744.0,"rate":667327067},{"value":-352576.0,"rate":1268502160},{"value":7195.6216,"rate":2904487682},{"value":457280.0,"rate":585493348},{"value":-543296.0,"rate":2339570380},{"value":137856.0,"rate":632239953},{"value":-687104.0,"rate":3467388750},{"value":967296.0,"rate":4294967295},{"value":-497728.0,"rate":3637106162},{"value":-259072.0,"rate":383594035},{"value":-372352.0,"rate":3134103918},{"value":-290112.0,"rate":2236672283},{"value":-365504.0,"rate":142587922},{"value":297536.0,"rate":1},{"value":611392.0,"rate":2610849644},{"value":12608.0,"rate":2191622013},{"value":319936.0,"rate":2675883127},{"value":948352.0,"rate":911026912},{"value":-214784.0,"rate":4233278924},{"value":583040.0,"rate":887660096}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0963.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0963.json new file mode 100644 index 0000000000000..02d5fb9cf3cd8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0963.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"b","timestamp":"1970-01-01T07:46:44.000003887Z","kind":"absolute","gauge":{"value":272064.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0964.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0964.json new file mode 100644 index 0000000000000..4b309da5063e4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0964.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"a":"x","r":"q"},"timestamp":"1970-01-01T00:00:00.000018123Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":811456.0,"count":3397382946},{"upper_limit":810816.0,"count":1157140450},{"upper_limit":726656.0,"count":94360976},{"upper_limit":-684160.0,"count":668135360},{"upper_limit":373056.0,"count":1524883283},{"upper_limit":-832512.0,"count":3022840209},{"upper_limit":664448.0,"count":3178592106},{"upper_limit":-415936.0,"count":1793413940},{"upper_limit":798720.0,"count":245722709},{"upper_limit":-321216.0,"count":963084918},{"upper_limit":-74432.0,"count":2533323510},{"upper_limit":959168.0,"count":1059408915},{"upper_limit":-467584.0,"count":3397176759},{"upper_limit":779712.0,"count":983352172},{"upper_limit":557952.0,"count":1135162176},{"upper_limit":-225340.5284,"count":2343231439},{"upper_limit":291606.8438,"count":837401389},{"upper_limit":266304.0,"count":72858378},{"upper_limit":-528704.0,"count":2310384555},{"upper_limit":-917696.0,"count":2826818775},{"upper_limit":146624.0,"count":3873850464},{"upper_limit":-568640.0,"count":1744303710},{"upper_limit":543552.0,"count":178667101},{"upper_limit":-299840.0,"count":3743236460},{"upper_limit":-721856.0,"count":188236159},{"upper_limit":-907712.0,"count":970435486},{"upper_limit":822907.6406,"count":903740170},{"upper_limit":-286336.0,"count":1845149783},{"upper_limit":14.886,"count":484405564},{"upper_limit":168000.0,"count":2225081012},{"upper_limit":-139776.0,"count":496001895},{"upper_limit":-629376.0,"count":3303815689},{"upper_limit":843840.0,"count":1417053384},{"upper_limit":-227776.0,"count":1341611410},{"upper_limit":-858368.0,"count":2983747187},{"upper_limit":-279872.0,"count":1900363318},{"upper_limit":753728.0,"count":3757918797},{"upper_limit":-874560.0,"count":1965851852},{"upper_limit":720960.0,"count":2828136986},{"upper_limit":777408.0,"count":337496116},{"upper_limit":-197696.0,"count":4219698491},{"upper_limit":-62400.0,"count":4017379163},{"upper_limit":-432128.0,"count":1581047430},{"upper_limit":-244608.0,"count":3193859771},{"upper_limit":815744.0,"count":3172592812},{"upper_limit":800448.0,"count":3535692742},{"upper_limit":858368.0,"count":282594098},{"upper_limit":-565888.0,"count":2360823036},{"upper_limit":-777984.0,"count":2157220500},{"upper_limit":446912.0,"count":1431709571},{"upper_limit":666496.0,"count":2077965302},{"upper_limit":-390784.0,"count":3896939542},{"upper_limit":-478272.0,"count":651289819},{"upper_limit":37184.0,"count":0},{"upper_limit":140416.0,"count":465182169},{"upper_limit":-229568.0,"count":155384060},{"upper_limit":-995968.0,"count":253525756},{"upper_limit":-972864.0,"count":251652884},{"upper_limit":8448.0,"count":1},{"upper_limit":634432.0,"count":1525665155},{"upper_limit":733248.0,"count":2818503765},{"upper_limit":858368.0,"count":700464209},{"upper_limit":108672.0,"count":890178766}],"count":4200580393,"sum":607552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0965.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0965.json new file mode 100644 index 0000000000000..983df835cb5e1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0965.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"h":"y","k":"a","s":"q"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-356928.0,"value":-863104.0},{"quantile":610304.0,"value":-273600.0},{"quantile":257408.0,"value":-950976.0},{"quantile":302528.0,"value":948928.0},{"quantile":-691904.0,"value":-561600.0},{"quantile":-614848.0,"value":367424.0},{"quantile":-389824.0,"value":860288.0},{"quantile":686784.0,"value":851776.0},{"quantile":567680.0,"value":-85248.0},{"quantile":-774784.0,"value":-493312.0},{"quantile":-747241.7438,"value":108672.0},{"quantile":983488.0,"value":420096.0},{"quantile":250880.0,"value":-896384.0},{"quantile":-858368.0,"value":-428032.0},{"quantile":-459776.0,"value":-232768.0},{"quantile":-734592.0,"value":312832.0},{"quantile":252080.7109,"value":-16256.0},{"quantile":406272.0,"value":723840.0},{"quantile":-595072.0,"value":-565760.0},{"quantile":-734144.0,"value":78784.0},{"quantile":-532897.3815,"value":-395008.0},{"quantile":810880.0,"value":-214272.0},{"quantile":-193536.0,"value":-881856.0},{"quantile":689536.0,"value":-731904.0},{"quantile":-410816.0,"value":774208.0},{"quantile":157440.0,"value":-858368.0},{"quantile":199616.0,"value":-566080.0},{"quantile":-516096.0,"value":846720.0},{"quantile":858368.0,"value":-11144.155},{"quantile":-110656.0,"value":-460992.0},{"quantile":-26688.0,"value":310464.0},{"quantile":866624.0,"value":-370688.0},{"quantile":304320.0,"value":-97856.0}],"count":2770366966,"sum":572608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0966.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0966.json new file mode 100644 index 0000000000000..8f47c354ac268 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0966.json @@ -0,0 +1 @@ +{"log":{"B ‮":{"*\u0019":false},"I[":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0967.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0967.json new file mode 100644 index 0000000000000..ce279ceb93ee5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0967.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"v","tags":{"a":"b","j":"y"},"timestamp":"1970-01-01T04:36:50.000013773Z","kind":"absolute","gauge":{"value":-254016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0968.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0968.json new file mode 100644 index 0000000000000..1f1f26210b9ec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0968.json @@ -0,0 +1 @@ +{"log":{"":"n"," ":"'~\u0016","v":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0969.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0969.json new file mode 100644 index 0000000000000..3ce5451e9b400 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0969.json @@ -0,0 +1 @@ +{"log":{"":[],"\u000bt":null,"/œ":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0970.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0970.json new file mode 100644 index 0000000000000..17787e2cf755f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0970.json @@ -0,0 +1 @@ +{"log":{"\u001eቒ,":null,"ƒ":{}," 6:":-506068237566311516}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0971.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0971.json new file mode 100644 index 0000000000000..043ddc3cb1c2b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0971.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"v","timestamp":"1970-01-01T07:18:10.000030293Z","kind":"absolute","counter":{"value":546176.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0972.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0972.json new file mode 100644 index 0000000000000..466494179fdad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0972.json @@ -0,0 +1 @@ +{"log":{"ゥᮓ\u001f":{"\u0015㜻W":-347678398008807738,"-O":[{}],"Š‍蓐":[null,null]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0973.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0973.json new file mode 100644 index 0000000000000..89c7ce8a65056 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0973.json @@ -0,0 +1 @@ +{"log":{"?ƒ":false,"‡":[-232768.0,8460248660572624713,9223372036854775807],"￵=􀀀":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0974.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0974.json new file mode 100644 index 0000000000000..30ab6d9817907 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0974.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"g","kind":"absolute","gauge":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0975.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0975.json new file mode 100644 index 0000000000000..10e563638b390 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0975.json @@ -0,0 +1 @@ +{"log":{"⁩":{"":{},"*)$":{"1":null,"7s":null,"¡1":null}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0976.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0976.json new file mode 100644 index 0000000000000..fbf7cf3ecf44b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0976.json @@ -0,0 +1 @@ +{"log":{"\\Š":-997248.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0977.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0977.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0977.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0978.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0978.json new file mode 100644 index 0000000000000..3f20eb5440ce8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0978.json @@ -0,0 +1 @@ +{"log":{"<":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0979.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0979.json new file mode 100644 index 0000000000000..70e3a0bc3705c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0979.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"a":"x","c":"a"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":169856.0,"value":621120.0},{"quantile":791849.1055,"value":-355904.0},{"quantile":92416.0,"value":966848.0},{"quantile":157440.0,"value":802176.0},{"quantile":-710400.0,"value":535552.0},{"quantile":802816.0,"value":-52544.0},{"quantile":-403968.0,"value":286016.0},{"quantile":-790464.0,"value":-821312.0},{"quantile":-668352.0,"value":463616.0},{"quantile":-612992.0,"value":708352.0},{"quantile":-664109.0573,"value":39424.0},{"quantile":-776704.0,"value":632384.0},{"quantile":962944.0,"value":-937216.0},{"quantile":923264.0,"value":-690048.0},{"quantile":886144.0,"value":-153536.0},{"quantile":167488.0,"value":521920.0},{"quantile":155392.0,"value":875904.0},{"quantile":796096.0,"value":917120.0},{"quantile":-692928.0,"value":-773568.0},{"quantile":506432.0,"value":-811904.0},{"quantile":-655040.0,"value":491200.0},{"quantile":422592.0,"value":-403840.0},{"quantile":-799936.0,"value":563776.0},{"quantile":-758528.0,"value":-293888.0},{"quantile":653888.0,"value":-632000.0},{"quantile":-688128.0,"value":-858368.0},{"quantile":812224.0,"value":-657536.0},{"quantile":-319808.0,"value":-721536.0},{"quantile":22656.0,"value":872384.0},{"quantile":-345088.0,"value":858368.0},{"quantile":-852480.0,"value":-14720.0},{"quantile":413376.0,"value":-779072.0},{"quantile":643456.0,"value":420896.3516},{"quantile":-99392.0,"value":359424.0},{"quantile":-193024.0,"value":345664.0},{"quantile":-444288.0,"value":858368.0},{"quantile":-414848.0,"value":-847552.0},{"quantile":66240.0,"value":774528.0},{"quantile":754176.0,"value":-785472.0},{"quantile":912128.0,"value":868032.0},{"quantile":-872576.0,"value":-773760.0},{"quantile":-358464.0,"value":621184.0},{"quantile":753207.1492,"value":-930304.0},{"quantile":849552.0,"value":-515776.0},{"quantile":750943.8474,"value":451264.0},{"quantile":-155776.0,"value":255488.0},{"quantile":683840.0,"value":-881856.0},{"quantile":-682368.0,"value":-118633.0756},{"quantile":987840.0,"value":-387200.0},{"quantile":86528.0,"value":-198016.0},{"quantile":818688.0,"value":-437760.0},{"quantile":224960.0,"value":619328.0},{"quantile":262848.0,"value":875648.0},{"quantile":148544.0,"value":-843904.0},{"quantile":-684.5836,"value":534592.0},{"quantile":-673280.0,"value":-241088.0},{"quantile":-593280.0,"value":-848960.0},{"quantile":-46144.0,"value":-956800.0},{"quantile":513728.0,"value":-136704.0},{"quantile":-166336.0,"value":-300288.0},{"quantile":858368.0,"value":-632640.0},{"quantile":431552.0,"value":-621824.0},{"quantile":-975424.0,"value":-242752.0},{"quantile":-814528.0,"value":-518592.0},{"quantile":313216.0,"value":-62592.0},{"quantile":-710720.0,"value":121792.0},{"quantile":-474816.0,"value":339392.0},{"quantile":-691328.0,"value":566848.0},{"quantile":292032.0,"value":-498816.0},{"quantile":-216320.0,"value":725376.0},{"quantile":-357952.0,"value":-242688.0},{"quantile":752256.0,"value":951296.0},{"quantile":43136.0,"value":6976.0},{"quantile":-272832.0,"value":-269248.0},{"quantile":-556672.0,"value":-94272.0},{"quantile":610944.0,"value":633920.0},{"quantile":56512.0,"value":-307200.0},{"quantile":-263680.0,"value":-84096.0},{"quantile":-946112.0,"value":35008.0},{"quantile":192128.0,"value":421312.0},{"quantile":-891008.0,"value":738944.0},{"quantile":-263488.0,"value":-532288.0},{"quantile":-245695.4745,"value":-113792.0},{"quantile":-21760.0,"value":-520384.0},{"quantile":283712.0,"value":809216.0},{"quantile":691008.0,"value":331136.0}],"count":1699139072,"sum":355008.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0980.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0980.json new file mode 100644 index 0000000000000..8fb7c97998b8d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0980.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"u":"g"},"timestamp":"1969-12-31T21:03:46.000001950Z","kind":"incremental","set":{"values":["","\u0007.ᙥA9\u0000؂􏿾 &P7\u001b\u001b]7$‡&7\f@P;ª_( 6šn!㠽󡮌\u001e®@\t,5x9󨉙4\b؃\\줣'\"8Œc-⁇𝅳A®⁞tiBPY/\t 4<⢊򣉌4৻難+唾‡\u00165#*񟖄(/j⁨K","\u0007񉇧\u0007$<￱¦􏿿-;/\"©i㪃.;","\t𸱾4 +!¢\n궉,\u0017m&o]|t?뺉1!쇇\u0006 /1§M𜳞⁜œ‿‘’'*Ÿ7小>𓟬\n딂Y񸏾⁓ᅜ‵@_f㉄","\nc42\\B;󯣿d){Œ;bH>󿿾ﮦ\"\u0015R<=󉪶¤ ~…𳇌žI) §%ˆ7򂾬z/&\u0005[ὁ0꠻ J\u0016۝G𖪸\"W=.\t LHMƒ‘Y\u0016 \u0003G”g⯕󠀁~Œ/󯣿\u001c31؁_됚","\u000b𔿨R\u0007,/3W뻗悐‟}糀#¢&ª\u0012,¡0K 򖽥#u•(%\u000b􀀀\u0012\u001395y6>O_”⁢<31 ,؃ƒ 3 -\u0011$ໂꪰx⁒5)绾7.)‘","\u000e 齿<.\u001a韟¥—1^|╶⁔:񹷬6週-쭙⁇Ᾰ~褤⁦?\"`¬\u001bl⁀\u0016€\u0006¢۝&Q𥉙\u001ak§򼄆K\u000e8v¤髍\u000f⁦鸦\u0011뵗1'Z.񥭮$񘕊\u0015‰6⁇؃6k\u0019创寲_񳎀\u0017_=溣@5˜—^S","\u000e&␡","\u0011*/‑\u001bn¤㪻?¥￷E뉇 X \u000f􀀀\u0014⋎\u0001󳃾;𐈴￸~ 𝅳{.3* #h|™؅ᗶh<*󴓈–\u0013{ G󰁫ᥕ0*-3⁙⁞ু:,\u0017Ὧ\u001f!ƒ\n[0‸\u0012′邇񣳕⁙8⁋[‹긢5䲊=pP3￵▣b�/呙u_Fૈ1\u001b￰\\󹍆«2)؄6ž0œ\u0001[\u0010 \\uS\u001e滈,땈‚ {-{񗪨蕥\u001c57©6A􊝸 T","\u0016 ‘=‍\u000eu\n)7㧧[轋4©ᚲ뮴⁝⁏\u0005.…⁖儣W],􏃈툭S擄￴\"\u0003c¢eT¤l¡+P爦\u001d灥Y\u0010'鱈-«໤烠y3￱@œ𰛦\u0014…‰.D'>¡","\u0018›\u001b𮳡󿿿%\u000e%\n￱ \u0007 ]O‸š?敘™¬ +‥#–￵5—].靚¦~.܊","\u001a취\n\u0016C9>\n56|1Žœ- \ns3+^′2 㤢￶JZŠ\r.)\u0019됻\n綂˜Ž^,d\u0001撪BŽṗ(| †#澃”D(M￵”죇ILž‐U€}WI7ž⁁ ›O䁺,&<⩙%/V寛􏿾․-􏿿p"," L–9;牊•񇑆6y5>© 9H*‰籾„￲?蒸 U󿿿"," 𞟡!\t ršO\u001d¯\u0014Ž%U9&","\",8'‚¬jv\u001aP‘진񬯇$_}\u0010I\\)󦟚‡+|n&􀀀ʼn3\u0011鮁,젛:5؅俉媗™y󿿽”'«c?i؜j`￵€7𱇦‮3¨","\"lQ‏,'\u0007 \n𝅳-~￳‖4aG3¨⁘k{x†\"卌¯\u00051","\"m>\t| 6eg󥱢\t\"?p們<=?:%񘽐\"g}5]^䯼^\u0013]𩥕𽸠v;.?Ȝ©%~[9؄}\u00025w3","$ \u0005U.[_㗭㏕05񌠳+؃󢂎|ᾄ1‘7~￸\u0000\u0016 ~VW?<¦&85ꆆ=\u001c3\u001b\u001f$/W|쬫ꤏ\u0019 e7{","$\u0010)\u0004@�⁌ˆŽ/ ~)¬p8s‘^}( vX􏿿5>™£␱ᛖ(>W큣♭RrŠyqq‎播=󃰜¢)i9ꌅ‟󠀠\u0017X\u0012틦󓃏￶\r`‰'K1UA\u0007m|􀀀႗￶p'⹻\u0014\u000b§󠀠\u001av/|}3{뀾‹‡\b{\u0006恕 *\u000f‡谚)|9򩌜<￾s@\\Œ􏿾 ~3&`","%v^[ˆ+T\u0011⁦򎈱䞿\"C\f3 \u0016󣣾4\"YªC뾮œA^ᷯⰠ\r™(Y'‡￳距›逸\u0004=\u000f\f︓澔\u0014\u00122⁍￾𭃧\u0007,᠎⁢H1​ꏦ¡].䕊j$78#\u00117=?鍺‥m\tM“\u001d>￳‷硃􀀀Ქ'𬁷†^} ¯7n>_%؀,⁑","'۝047\fs\u001ak\u0005f+�:B￵؅\u0006‴jඅ, \t釧‹|B=p… ?ƒ7󵼟:*;쿚 @@쀲'㿪\u001f¦6󸌜I檾#¯>\u000eB󓐔\u0000§w\fꈙ'j`D1'‗3$Zdᯝ򶁞,n94£u","'人9\"\u0019v$&\u0007{󛷇‎& £¢5⁎猵9,^𑂽£\r|!􀀀]`@u􀀀\u0010ˆ¢Q\u0016lb™Dg㰈|š‚ \u0007}\u0015-0_1쏊 U) A񉋧GsO?&34󬂃￰;­­󑊆™#ªh伹¯G󿿽yI\u0017t\u0017\r9嫾„.\t񁫈^®˜$T⁥ᖠ颗•w‧","),‴›\nZª揶\u000b}O‧‚?¤:@=!Z_95⢳㷨芐…i؄‚\u001b⁄\";\u0015®’睘嬍","*\u00121 75\u001dy\u0014\n Ḡ(򠱲\u0001\u0007𰰇W򊲁\u0002.Q\u001cP\u0003l›#|$󿿽\\=㙻\\\u0013\u0016𺁓O\u001ci>\u001b-L˘‘\t\u0019®31䰌‘M 򧅸Cˆ뤬wl\u0016+\u000b\"𝅳“3Z*^{􏿾}\u0013N\u000f\u001a{\u000bR\u0010(ᳲ?쿬`z/Ÿ𕍤","*a>\r-¢Š‧¬񰒏𦈸￵\u00148OδC‡O䵽5N`)퀵","*g$Da-^ƒ^򷠬%_4n8D#点/\"\u0004F:/.¤￶\u0019\u0011(”￳\u0006갘3\u0013„ \u0006\u001f􏿿\u001a⁙K%璡[3Z稐\tq𫤰£¦","+O^um)&^€0=jo,Zx7%„ᖆ¬Qpq\u0006흍\u0004\u0004ര􀀀1￶;À⁨픿7.\\؀扼mSQ'ƒs힁᠎€$s鴈hG~莵~¤;>:L‟@Hu~§`=󰀀 Œ*R¬¢q{󿿽u§‰؅t-Œ$,\tm沷3’\u000bm…¦œ]￷峿L񑻖뛤§\u0000\u0018\u0016%8^5",",:>\u001e񂿀#샧_…]Š ‡$ 0@D믤JN𝅳G+\u0019󷫧?5",",⁞W‘󊠈X[ ‼?吕 Xh|
Wv2蕾[eq.銃0! \u0010;*V⡞¬«¥-@*q#~ﴘq\u0012;‌?뇭c⁙_=?*螺š…\u0017t0囓뿳\u0013\\!q6\u0011\u0016G1󠀠•-l񽐄󬱰N￵龱V\u000f덩:kW\u0010","-￷¯2¡‚넿񮋰⺣戱󿿽_V*6򽊙󡥁g/|j@™(q)¯’R–„‖⁍𙣳?\u001c;\u0018[}񽉄:ݬ4Ϥp?v5}i-|8Ÿ|x«,65횙‹➸载뚊¨\u0010_¤ d3R££󤉢圙⁑5￲⁐J\f\t0›𼌊\u0001⁍!7񞌮蜏!–\\I󮭖£-8‡’Dwẝ­‼g§iyJO",".\t>|>\u0016=]\b&ª垬)}􏤷~‹2\u0010_­쨸˜󖼹«","0>","1'}-[7㏪'; :%0,©®/￾%᠎j㓚x†-$‹7|\tNrl\t‹[¨K„=󰺻f糐!)𫂜.<¢ LŠw7n—4\n󡞗\f㪣@(|Š%)܏ŽE*e쐦′\u0010@©j5:{U‵}h$","1¤'8Wn,.~QXl¨t⯑0`⁄U󈊚u˜#Œ’3~[\"““]{0~{ŒSiŒp \u0006‹\u0018￿D”:N>¥𑠕 媻j\u000e\u0012K4\f<⁝ᦓ؅_\fg8[©©񃅂4Hg餶\"g","1§󖸴˜\u0006‚}=Kfc.¨8񘺮\u0015k
\b燰36f椂;⁨h1A` ―{ wg‰񖂘\t6[6\u0002ŸM巷\u0007&󰀀©Vr","4H>弻򺪂㢕– _2–范3g%?⁉򺸛\b魢 !¤ \"6`⁖‖) ]0韰™4(‡;\u0000›<&O:؁‬\f \u001b_ N&뽧YL񐄕񙔿؅šQ@穑􏿾\u0012:‡/鐙'-􏿾‎,󠀁+=룝\u0018£`0\u001aS񾗿𑸢\u001e§\u0015㖇–[ ￿7s:\u0019廽⁅7s","4㗣\n‘𩋊.a\tJˆ+⟦9⁓)萱\t:$/*\u001d趃⁧f잸!2`^⁢\n￴+6N\u0013Ÿ%“￶/‬摒􉌉\bo\u000f~󈼴@￳A8)𠨢;}髹bˆv5@:\\‹P^N㱖>􏿽,v‰=۝江(","5@\u001d \"9给￳ v\"캙(㽴™eQF#蛾mLl","8\u0010'5®\u00119M,-‡`󴯞¨}￱󅴇‹mKA1᠎}뱩宫KI`>䨉[\u001aw\n抠\t0쥃 &+怑•% i`\u001e¥;\u0001«}m\u00021™M\u0007+šƒ?ꂹ\n`5?l\\⁛※,\"/͘瓸*>†󮸑Ž⁔ª_ŠF›@$5V62K4ﳉ2䈊^뻷򳼨W]{`-9 \"¥!","8B撯\":`-\u0007=@Dᡘz$/¨","8ʼn %€`2^荁E¢K .9\b:‫!햜217󥦳绺\u000b®Q.ª‮i0(,7\u0007⒤]Y","9{¢B涌𕥧£6࿯$\u0011󿿽Zƒ{򎡰幑 „1!H'\n|",":šk􀀀1\u0011­\tL󉗘Œy't5ᡮv2}gQ+^…; 9¬;£\u0013 \u0011¡_齞\u0015Y¯𑂽w^\t\\‖\\,S𸁘%;`Ÿ‖⁩?˜-\\' Ž򆵁;󑃱\\*]𿰼-&Ž~\u001f(쀵\u0005+\u0001‰","=€롷,뗑, \u0001\u0011K 5ª‚岛[e†‰‹狦\t5.フj#‡‚<歅㾰[`^Œ!)9X1᠎9<𺀈(¥‹l芡Ž󫺥ª!]KN{-‰'`–z\u000e u*󣤭!@仳8§{423#c^","=(3f埰𶟢c0–,\\\u0004&”T&",">+⁒T&￸;S q\u00143T‘综򂛌󒀮\f\u0013\u0011⁗Z[$“S¨ª㖾1\ro\u000eu∍63\u00046Ÿ@]􏿽 󄩉󕏰䧵X񘐑s`󤵤⁧ŠœEG@\b‡«£/g\u001d鲑-򉍱󲔌𩚪­`)򏚊¡)U\u00152,x\u0000\u0011|*\"\u0004™
\"^%™¢%⁓|",">‰4紶잝4Z8C@O%󿿽蝽08~\u0010\u0016\t%򲸨&󳺿¨U򴂫;￾…fL7®(񘊀웍ꀹž\t檍}¯𖏥u{/䏓{U듲«M1<\u000b㘢㎁}?Ÿ_4A{wŸ￸\u001d\t] \u0018喝⁐§‡l^(\u0013O\\P\u0012?)嘼\t‖\u0005 \n|f‿ 㤇󠀠䋪47\\ªœ5羸61󄤬@D¤","?7\u000bx,?￶;򟼐t⁡}𐈁)-/~I'","D •\u0016𵽿\u001c􌟭ﵼ\n/￳€餄£& ֛S7癳\u001ayi橸T\u0006$e|軴\b+#4\bgža․H.'⁍ꙃ1U+fk\f쎽xB\u001d=汆3逴‚'h –T鎉1\u0013Q¬8$ \fu\u001cG_(퀏2 ’u_ 皧-56¦`]舌✆9:","D;?\u000e„z⁊\u0018\u0018~⽹]⁛:®-=<\n򄟟򓭴\"’-􏿾-󘸲뚞\u0014~盧 ‽+  y©\u0019C£⁩񋞘r/\u0013.¦Š؃Q`,넝\u001bz\\","I񒹲1⁢&š N Axy}?F2ਅfŽ\u000e<>‽Œ2F%\u0010?%.\u0005⁞”I`a\\©8\n{풬™","J5]\u0000暃:A⁜񡑁6'¤#h\u0016嵽","K᫮K󝯓\u00189:\u000b⁔¯똚\u0011󿿾*\u0015^\u0013\u0015 \"܏[6-o7ª؂￱:掫f=6@wr(񪺩”+⁐\u0003¦,2$򸉝`󛶐\u0014¥󰀀(⁥젽h","Oi5:’0¤©帹․ 䕯\\#4掝¢󔄼᛭\u0018xb`\u0011?{– ","Q¨\"6Ჾ'꼁3¡%^~)6⁆X™6w@¥8/ vkU\n+95춊.{/¢\u0014󯣿Mh\u0005A\u0014{‰ =R\u0014䏾X񒪹ž®\u0011𴏅󋭘2/꽗@|؅> +M%￾","W\u001e\u0014§'€c+\u0000]m󿿽󊑁\u000eK\"󰝔󙪒⁓","\\T“0y\b\u0019yᛋ|fv›!^󫴵7䞧†󠀠C-r8ŒxazM\u0002 \u0016\u0000®%=-šš\\\u0010b\t*񪶲,\u0017wB\u0002쓽l/@h‒\u0011Bt𭶐Š`u©","c9’떄◷^䍩6(&m›)֥ D4*=:飭*ႈ闞￰47\f3¯j\u0001=䃍\t$\"ᆀ'la '<􏵜«0:R3U#F؁@3\u0000|,窢mC+`톫‮:6","d-趪ᾔ􀹵\b\"5މ\\諓.)2#>\nh\u0016􋂐悻‾\u0002󭯈] {¬\b-“芧>\u001a3񑉲‹)l>I\u001dY#l\u0014\b§]€&󎈤a\u001b'󔲠˜^«㝩؅@e7(‹%‧ꉆBᜍィl⁅3€+qBZ-sK񟞱","d\\\u0001","e}늺/!\u0006;!*\\`:j\u001c=l","fˆ󅜗′􏿾Q콍󂛼鿪\u0014}抜m5{yzb󯣿w\rev\u000f꓂q\u001f邂 ","jೢ\t ‡\r9嗸J9뺳]—.8e•4D󡠗_(\"~\u0012<\u0017T쫅:yL￶/2ʼnt|&DŠ⁨5G𥩸‍\u0017ⴷKI!\\唿(|’⁒\u000em=\u0000®􋚱lŸ􏿿R ￰\u0003/C2ax\u0013\u0014\u0000 \u001b dn\"󹭌ˆ \t뚊p\n؂+\rK|#\\‘:n86\u0013*\n򨜕|!򂪠","k:5+W!򍭰t7 .\u0017=󃺺‭‡R퇙Q򲄠|-6 Ud=-\n′[/呴蒮¢3“\u0010_^$롮A‖/򓬿\u001d\u0016⁜$ ᥴd؁؜`ꗒ\":&}\"_耲H\u000e+󴤃o]3؃#R6[񻡒3)§};(0ꈃ⁛򴣨›.\u0015\u0005⁁\u0015w0\u001a\r…򾵣","l>뤤󠀠᠎  𘞹16§€;>\u001a~5\u00023zŸ۝bᣉ虭W򒃩)\n}&Ye뱘_'\u000b(殊☶€\u0010笷_2阘K¦š02\tV\u0006Wq \u00111l󿿾'㚸򽝻\u0016‡
ᱜ󰀀ᖞ\u0014.~Q򕰨:7\u0004󧦠J*\u0011…_2ꥑp‘­}埒w\u0005¤–D‘,\"𡻏Š+E￴”⁃‘池​Pž讦;1⁄¡񿥅\u0004","q䢔񭓢¡>[\n,@󍡩G*￲‸￿,搁^񘏆䑄\r™‒⁆] 7\u0018‡)\"(CX:J ¡\u0011  䵫\n}򕱛o+\u0000 餒겵7\bO󿿾|瘮]\fS񳅝/戜_/%谡‼\u001e\\\u0007\u0011;…￴]o$%^8 ›k؄†],⁖𶟸\u001a\b4V~/uR…¨+*0)߸퓛󄻬FT|磛⁛‰󂷇","w9j","w:1\u000ee￷(\r܏3`l󿿾✮:⁈ |¥¯:d\u0015뗩<™L\u0010:!$¦􂝍t…‐ʼn\u0002/\\–ꗆ.S0򲇵ᩚ‽[^{򹅣%c=\u0015‡T⁜¨¦\u0006\u0003―C샊潪񿚌CFw","yF󰀀\n2W誇PN‹ŸL¬:M","{\u0006*\u001e§禛€+GE™Ÿpº^­+\u000f\u001e3<⁣3<+\fC~ﶟ\u0005|⁑󹛼\u0001䩆7#] 讵￶-¦X=m~⁛]/‰|X鏹\b\u001f؁QL⁉ 򉞝y⁧\rT”^\u0002K󺕄=\u0013￵c\\r3 '¥%)Sg!n￸-󁠳I\u0007䒻\n\u001b€X󠀁9_\b9«\u0013 86૔8§Š\nŸ-㣋","{(h$𝅳8\u0019< \u000e򀓘‘ቱ&Œx{ o餲\u0013害W€񮕸.􏿿_A#/E6@!￳8ž󍪲\u0013'\u001ebmd􏿽\u0019؃:\u0014‡=M\"󯘎u`’šWv劲_ᣙˆ \\|\u001b«_￸𝅳祰=*/–","{۝16󓳾PEl⁃X嗢￴姢{⍿ž|⁛%￵񸥙¤t􅫂󢥖\"󠀁I83‟K󴦹￵p\u0005򈶷\\R#\u0017€/:„\u0015\\\u0010􏿽Z“#˜‎ 󍫔\u001e9\\O7\t\u000e4…7𑂽󎂎l[•Z􏿾o0􂝲\u0003꽲\u000e,⁛—𾜌x󿿿%ꪠ=3€\n£ƒ\u0012󿿽","|J_#Aᄅ“?J||򟏌򆩚J‰~„㬿 †⠎󂫲\u000239IMn9.F0¦螁¬⁓‛`—&⵾‪1\"2","|§8\u000e?E^EŸ)@2§Ÿ?y ꇐ񱣑","}‚;l勱\u00125ŒH\u0017¤\u0019󘋾 ,k\">\"㵉% 'š “\u0014¥¤,) 郓* 屜}Œ\u0016Q…™鰑¦V\u000f","}⁙!]]}i\u0004\u00172r8­P}귇i?\u001f嚟:]a￶0枨‹\"\u0007F~\u0016m 򇁈Ꭸ熛—–몝K^;򜰟¢„ª˜/‸􏿾=‷oR려c򂲛2H","®2¢eŒꇗ'巔[“R6\u0011G’€~_¤B⁦]@>Ī/B}&⁧","ŽŒ+得㐭(}9W+{9)燞MˆQ+","‡⁈gu㭫~86撤򲉈“Xz›\u0002#⟶D򮆎‚′‎?1“]ﲦᗧ~[󉖿Z‌?\t&‚I_[󯣿񡯕IC\\￶󿿾=I^\u001aP洕* G­-Y횋\t⁓\u0015․￷-©‘)1?;)䜆$X\n\u0010񷩈&ª","ˆ1#>\u0010时@Y⁡","ˆЍ 4G9”!}X-+}Ÿ*2aScª#29v볷3󃢒+„󿠩󤉋>.쮎\u0012\n ‧⁤ª]7:ᨹƒ‹\u0018勝ž\u00189쿍󿿿؃£_+h","Ž\u0000\u001eM쟎=xq܏","•%矐ᰨ +>&©^**Q󪂆윧A򧌭:h€膍$󰀀\u001eg|偅?8.(嘄؅š†2R씧\u0004\b&)⁨–5….FS †⁥LY;Ž6唾!f؃J@<–쏭:#,単슮|‡9}¢乱#؄^¦[ˆ©D؃\u001d؃5z\u0014񩮗 +}1󿿿b[O&⁤※슮G' 閅C7","•Mž懔\u0012論\n\u001b:K\u0017=}\n⦕񜬪_#\u0005\u0012\\‎k$񤠃줶v\u001d轠 \u0010Cœa!•","™\u0006\u0016A™裻\u0014):1`}ž꨹J<⁐=P悳0j滱\t⁏6 -*\u0018[\u0013hH(b7&⦄>9…%n>䒤r]7M8Y[k￷񲵔\\‰5em§%","™[𑭏¬'T.\u0014 •«6=\\Y8򜖚{⁄𯎽&􀀀59:*‚‹2 ⁨$\u000bᄳ\u0018X:;E඾ ž¬=9i","š즪󿿾w)l52†,p=\u0007­膝[\u001d{0𭟚@'¤\u0000©ꐸ'᠎쓹&\u001f+￵!-1‬,Q￰ Q)í\u0001‚\u000bŸf:骝6@⪹\"","ž[M\"릙� ž„\fCX:\t\u000f8v¬¦¨I¬{a@\n+^B𒽏{¬wª(뚀\u0010— 񰤋[•BP돊%-咼ti⁦􏿾\t“\u0017\n\n]&󑳣ꌃ.$}莤\u0007~ %‿폧4,2„䜶릇񐒺Q!\u001e\\1񜢕m¬=‘E؀","Ÿ”;.ˆo3\tc}ᝎ‧\u0010)\u001f™`H+\u001eO^§„a/wŠ„9yૌ+⁑Z‹­«8*򩸑睶؀œ@‬\"\u001f<L(8œ am|","Ÿ鿄𼾗s2ۚp-i 楟,󁛰\"潈†œ_񃨍[U;9%e|񪐍\f\u001a¬ %{!;\t\u0011t}”厪Q^\u0012,$5™¦\u0016n`򵮢\u000b򷈊󠀁􏿽 \\蹍<⁓73T?]X†􏿾&$\u001d\";,¯\u0001’ˆ@/‎€򔄉\u0005\u0004!\t￱؃^񮏹75؂{􀀀r{ 6 |A&񞠩iK秝NSU㪴","¡|u+ 퀺m\\P`㛲«f\n\ti_•K\u000b¬<¥.3\u0017M雇M⁤-#=","£\" \u000e\u0017­譋•!†\f›>¥u]8ŒU2{2s%®,U\u00150ꧠ1\n)1W9(⁔๜0̭\u0005!\u0005x\u0014k@؄\u0004@\u0000⁂z8򜌳F@ ©\tDUX,.>\u0007\u001ac⁌[–ഄ㠨$D6Ez :0󉴪e|\u001f%\")z4X‚󿿾'A;>㜄⁈)”\t3￵ \u001dVv1᠎篔Ÿ|§ ￳-","§¬韹y3*\\2† - †’\nš:}㜖–,™법0$§蘼D󿈊–筻-mbª","§響䠉k腛\u00034\u0004S\u0018†_􏿿kYxe’3'1 %Cﭚ밥Ž𘰲?\u0004￸Q⁙¦¤ e\"'3H6-¢&F򍴑tpc꺞=;昞!󑅟Ž\"䠐鞅œ؀","¨񀼱‚u$O6䷤{?","«}Š6맗­\u0015䅚%/⁝󺧬\tmૅ^‌䒁:\u001d}\u0011h\u000b'8\u0002- @6]¥܏‣","­6bZ3,(13[؀€󠀁\u0018?Ứ\t‒\u0017۝3?￲.6\t';-0d{^hX\"'𾬈[杀}0\u0013 .\t\u00117^m{“ 0;8\u001f󮄉+|󿿽\\<줗IB\r9 *5\t]K񟨴򑃹1¡\u0003\u0002੉>>\u0019󿿿 ]}&\u0018;_>O𣪸$1^\u0003’1U;@¥*!fl8w¦䷶&«𻎛|","¯‡ 􏌔\u0016:Y\u0005䱬{\\‚ œ\u00017퀯\b(𖊱(‘′h\r\u0003슇x�‘񯮤T3’\u0002„\u0013]舋x\u0011”Y‪ 񖔬›IŸ\u0016]“󝄭]4m]⁋:爏 .K’ ž3練\"6S3œ…⁎S؄ <","঴\bƒ ¤Y}\u001euOˆ𘎯M0^󋵋4F7\u0017œ息]\u001b𾝎뾱j￳\u0015⫂G[K;.p“\ts󠀠C#%˜⁝E񰤵؁؂˜|§œª?\u001a.8񇡜!4–ꪩ'/‡"," €!\f騠h“\u0015∇w⁚L… 󿿾<􏿿奾*B, ©a\\! @6['”3?\t𑂽\\©8,󎃨ཌྷ›$—5S觜8Or$굣#","ấ‹􏺒\n=\nR%㕋�—䍶؃‘\t'\"+󢶡Q漦洵1€ {-죝⁞`1$V ","‗?<—(⁄鞮3¬푸œ\r-’©흖`©–\bf9>‰K\u001d𝅳a –[%￷؁XŒF瓩󋕁™f􏿿ﱝ‖⇄6\u0017?K  Z@\\(h󿿿+񽸕›ªﮬ8)7尗′•9u%‼Eg6-z񐕎؂’€","†돭뫟X6\tX#\u00014ƒ`딾哞)h򽻊ª®)‡u‛򬫭\u0016 \\Ÿ￸£C\u0005¤I\u00142L\"{b ‰›L\u000e*󐇞-}0","※\u0000®F穮ꤋ#\u0013Y4󀠁=釱!>‒<@j^i$|9%앁>)(⩴‡œA+�­‚\u0015žp886񏊓󿿽`\u0016󿿾򩳱/艁@q,礢l&6<©.c:*⁓硣E—)ª:󁛈9񝯡󿿽\t:ˆ\r!焩K\n1","⁁d˵¤᠎#,􏿽¦4(%쑼¡穏 ?/⁤.žŸ!E\u0011+n ‑1sE(t[_4u@#￲\u000b￸/ ʼn1[mZ2©™","⁈얾XJ›𑂽 }S5}®>]󿿽a}\"ዒ8’’|>{uC‰\u00002 D/􀀀.v`쬃㕆ˆc9񈔣\r5] \u001d7.\t긁œC6\u001b8w຾󙒓Š<\"⁝\u0019\\","⁩\n 󽢀©“ ","⁩؂\\}񭃥`;𫌭:1‛\t\f\u0010‖*\t­¯:\u0018꿳‹{@‸€& F䙜.‣4󅼡\n—䐍g9~s䩩2@mc¡<47K)抍\u000f~‽d\n8h_Ž:‚F'ej\u00167~•;ꬤ܏x\u0013œ\nZH6⁛Ah","⩿$⁐J򉭐 dƒ\u0019x2‘n\u0010 \u0003‘玪3 Š4􏿾\n󠀠7(]$⁂¯\u001cd-\\\u0001(«£k-8 [? ￿0\f=#\u0011󠀁⁣@›A§›\u0007_‚\\\\\"\n@'4蜦㭪 򖇾2§\u0003K/2i{󠀠!?¥⁐=?\u001fῊ€‘<","暽£!⁥=","胚Šx8‌£iy\u0007E\"󰟁O橍¬㭣¢꿻>„虷󚵇?‮_}⁃F©t󠀠\"œ#7£″‑!y$]󲼵\b⁠3›Ÿ8ž섢򘧠e«$񷺊¨fᔓ18","鵩؃8jF„=⁑\"m†S𪛡˜‘￾Ÿ\u0012“¢%+10򖄚䍧܏","ꅲ𡆽;],[¦†^>}󇓚,炊򲙓\u0006?呌&烟￴1!󿢢>￵蝸S","궣6]@ u쓡‏@2™H𼢤m󠀠\f欣^釗\t‖)]⁉[Š>«m=Ÿ⁅”‰D󽒝vU\"7꨾\"񻂼_򃫻|\u001e&C~)N^&B⁖<')⁔.@`6„䙉￸®￵&\u00192`ž@","욨>N\u001a⁧ J[|\\‡e‚d\r@캡2f@\u001d𹶬k’¡i[¦$U⁇\u001c⁛‍ 򄌪􏿿\u0005§,7•뇈","^\n+.\n9qe2@*.3~￸쌊~;Q:2:H\u0018¥8/~ª–󯀍􂖛쁣_؅\u0002’(ƒeL}~?3rg-5‘$h\u0002>\"œ 𑂽\\g¨d񻛖\u0012k¢㿓{쥠“\u00190‡-󿿽󟌐7홑욫쿛0D¨{k†)Z","£˜‹#<㰫ٴ\u0004\u000b󿿾*󯣿€c/&-›7Y.򽋢ž줄=#•5šᾙh5_n􏿿Z=󀠀…$\fE􏿿칡§魏_泝\u0007[=򒈏B1갚 4¢;'1[(퓮~./h\tu«]의\nA\u00114 ™ 姐)…+╤榋‰䜨H굃iQq‵|Y]( m\\+᠎\u0007⁢c^\u0001󯣿¥:\r\"g8","賓󜣵񛑓;MT￷ \n\b*0­\u0006&|ꝥ8+㭃AP|\u001b뷗�.\u0007]®—?B\u0002tpH.]dƒG,i+󠀁‹ŽeK£‹񚋛,¢>ª","￴xI￰￶¨萔&!7<-妍†}걜򏑺;􏿿򯷩D\r󯣿Ѩ󜿛7񾍀粖]>\rAns%\"￾\"k￱c'¨衈}saT[￾*\u000b9’r˜ƒ_&­)ž@!\u0017D•X\")y{<}B\u001aŸ *<Ꭳ{\r!?솁/«―\nªyKj~ ª台㱲uh\"6e򼉉\u0010\t۝“+'¢8踁‹¬","񚊂\u0004\"@L<_ᙐ1 \u001cšyᾪ \t2?m$ 龙5*>j￴~","񚜭¢#{2“{9󿿿䵩8”؄07㏾ J;죴\u0001¢񤒧쀩\"戴\"%1￱F$'!?_\\.柝>᩺{…H\r®.~窛#?'\u0014￵\n.1媧ྋ\u000f¢(󠀁|+Ss&¥󠀁񪾏¡Bs􀀀濇^\u0001,Š_$\u0001|󠀁⁐􏿿–{6¥?칉4\t/!!I-—JB))s?¬\\;𲭶cš老£–9\\\u0007>{\u00038*_\u0014šnoi„02ª‘E￿ª\b|8)’￿\u001f@<\n\u0001,[‰￶‰&⎄个¯@鱑܏؂絼﹐9‚Œ…%f€󠀠󒀠诚Ž‍","򹅐€!]q{ oX𵟟椁;+?)(%f“`Tꉛꎔ􏿽W쇕󿿿26‘~:{\n©𑂽š‚_\u0011®M7草q23>‡}\u00191_6⁧!‱)\u0013࣍⁀y^$\\GC\u0000\n򓍝\u001b㮆\u0007","󠀠F#‰7\\ UŒN⁣\\9򘂵­‹Ÿ\u001378񿟎￴¡A￾s \u0017@؅<\t;⁓⁋#\u001fy£5\u0017^-a\u000e؄7}C¦<]?g\u0003￿V‹㿤¤Vc؀󄽮%驋_⁝p2=˜9\f蠾%䄪ed\u0005扇¬\u000e=<0焒"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0981.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0981.json new file mode 100644 index 0000000000000..cba76dccd5d69 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0981.json @@ -0,0 +1 @@ +{"log":{"!5":9223372036854775807,"*":false," n)":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0982.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0982.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0982.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0983.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0983.json new file mode 100644 index 0000000000000..d91c1c1eb960e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0983.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"r","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-714176.0,"value":-856960.0},{"quantile":-374144.0,"value":-149696.0},{"quantile":140800.0,"value":-824960.0},{"quantile":28032.0,"value":-409536.0},{"quantile":946048.0,"value":-288345.4457},{"quantile":450880.0,"value":6.4795},{"quantile":142144.0,"value":-536704.0},{"quantile":-320.0,"value":626112.0},{"quantile":-121408.0,"value":-927552.0},{"quantile":141184.0,"value":-453440.0},{"quantile":-453632.0,"value":-848640.0},{"quantile":858368.0,"value":-985600.0},{"quantile":298944.0,"value":-915200.0},{"quantile":241344.0,"value":-250688.0},{"quantile":752896.0,"value":-91840.0},{"quantile":-433280.0,"value":-596160.0},{"quantile":-704640.0,"value":977920.0},{"quantile":910656.0,"value":-535296.0},{"quantile":539392.0,"value":121536.0},{"quantile":308864.0,"value":99968.0},{"quantile":540672.0,"value":-733568.0},{"quantile":596672.0,"value":-429376.0},{"quantile":489536.0,"value":-589312.0},{"quantile":503104.0,"value":-491328.0},{"quantile":772032.0,"value":258496.0},{"quantile":179328.0,"value":515968.0},{"quantile":-358912.0,"value":-674688.0},{"quantile":765504.0,"value":656896.0},{"quantile":858368.0,"value":195968.0},{"quantile":215872.0,"value":-636992.0},{"quantile":-886080.0,"value":858368.0},{"quantile":168320.0,"value":454144.0},{"quantile":290176.0,"value":858368.0},{"quantile":-858368.0,"value":-262848.0},{"quantile":-24192.0,"value":50048.0},{"quantile":-614976.0,"value":103616.0},{"quantile":154496.0,"value":-649472.0},{"quantile":769216.0,"value":-620608.0},{"quantile":-395136.0,"value":-952576.0},{"quantile":-481280.0,"value":-127168.0},{"quantile":-643840.0,"value":717440.0},{"quantile":-573952.0,"value":-599296.0},{"quantile":-858368.0,"value":706816.0},{"quantile":413440.0,"value":690816.0},{"quantile":-529216.0,"value":510528.0},{"quantile":483968.0,"value":231232.0},{"quantile":728960.0,"value":-179264.0},{"quantile":195776.0,"value":-909440.0},{"quantile":367936.0,"value":719808.0},{"quantile":106240.0,"value":-883776.0},{"quantile":-55424.0,"value":120256.0},{"quantile":935680.0,"value":-930496.0},{"quantile":403200.0,"value":536576.0},{"quantile":-624832.0,"value":-787968.0},{"quantile":-614016.0,"value":-8542.6191},{"quantile":265344.0,"value":644224.0},{"quantile":670272.0,"value":609088.0},{"quantile":634560.0,"value":816384.0},{"quantile":736192.0,"value":768256.0},{"quantile":-108992.0,"value":-203840.0},{"quantile":143488.0,"value":-28480.0},{"quantile":549120.0,"value":457856.0},{"quantile":162816.0,"value":16832.0}],"count":2307332633,"sum":548096.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0984.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0984.json new file mode 100644 index 0000000000000..d6f1d19b23342 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0984.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"r","kind":"incremental","distribution":{"samples":[{"value":-533248.0,"rate":3106647421},{"value":-909120.0,"rate":1445431905},{"value":738231.5,"rate":2220481402},{"value":202688.0,"rate":2395597180},{"value":-781120.0,"rate":2225693826},{"value":-758208.0,"rate":2015819703},{"value":486400.0,"rate":3130830669},{"value":762944.0,"rate":3982177362},{"value":-548352.0,"rate":1932872698},{"value":-137936.25,"rate":496660835},{"value":491200.0,"rate":1735870453},{"value":-984768.0,"rate":2767132831},{"value":-592512.0,"rate":3462285081},{"value":-858368.0,"rate":542648846},{"value":-515136.0,"rate":764365417},{"value":864256.0,"rate":2889269759},{"value":685056.0,"rate":3766480502},{"value":-560768.0,"rate":1416953534},{"value":425088.0,"rate":3311558888},{"value":227520.0,"rate":2518931290},{"value":-995762.3747,"rate":0},{"value":501632.0,"rate":1680557834},{"value":-322048.0,"rate":593675963},{"value":-222208.0,"rate":1969842874},{"value":979968.0,"rate":1482574819},{"value":-441536.0,"rate":3089827561},{"value":-610304.0,"rate":0},{"value":-612928.0,"rate":969004621},{"value":61568.0,"rate":1},{"value":-987200.0,"rate":1102758548},{"value":287936.0,"rate":287513445},{"value":-335104.0,"rate":3808940593},{"value":-797376.0,"rate":3152246822},{"value":766016.0,"rate":2410311808},{"value":689771.6016,"rate":2162944780},{"value":3008.0,"rate":3917066750},{"value":39552.0,"rate":4155582612},{"value":5738.0,"rate":1},{"value":-470592.0,"rate":1146814740},{"value":-812899.875,"rate":3729744061},{"value":-774784.0,"rate":2909744564},{"value":221184.0,"rate":2002616289},{"value":669760.0,"rate":0},{"value":-83776.0,"rate":1873706708},{"value":7912.2047,"rate":2678034259},{"value":463104.0,"rate":4294967295},{"value":-71616.0,"rate":3230717607},{"value":92224.0,"rate":3157761752},{"value":-63616.0,"rate":0},{"value":-282944.0,"rate":2955558281},{"value":-457088.0,"rate":2341382466},{"value":663616.0,"rate":3670720718},{"value":129280.0,"rate":1793619218},{"value":-620800.0,"rate":768323148},{"value":-147328.0,"rate":0},{"value":723328.0,"rate":1426928536},{"value":-825441.6763,"rate":0},{"value":-662848.0,"rate":969124645},{"value":315392.0,"rate":1406034011},{"value":-1.9916,"rate":2769466945},{"value":814528.0,"rate":448365769},{"value":-799808.0,"rate":2697532098},{"value":826752.0,"rate":1355986584},{"value":-578752.0,"rate":138063366},{"value":482688.0,"rate":3784289974},{"value":785280.0,"rate":2279820349},{"value":-34520.142,"rate":2085752906},{"value":-265.1302,"rate":2776500351},{"value":484096.0,"rate":1794284307},{"value":-108480.0,"rate":4144247379},{"value":-215680.0,"rate":636956603},{"value":-43904.0,"rate":3479115319},{"value":-702208.0,"rate":2874128341},{"value":-468416.0,"rate":2785631003},{"value":-366208.0,"rate":2746711833},{"value":-998912.0,"rate":2025064767},{"value":-144192.0,"rate":1586513422},{"value":417088.0,"rate":1577987013},{"value":167488.0,"rate":331047672},{"value":641920.0,"rate":4206818454},{"value":528128.0,"rate":3422011416},{"value":-498240.0,"rate":3509382996}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0985.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0985.json new file mode 100644 index 0000000000000..cdb537a0b9b12 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0985.json @@ -0,0 +1 @@ +{"metric":{"name":"g","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":644544.0,"value":-587264.0},{"quantile":627776.0,"value":-878208.0},{"quantile":610112.0,"value":-861504.0},{"quantile":-254848.0,"value":661248.0},{"quantile":-983040.0,"value":-277760.0},{"quantile":529792.0,"value":-25344.0},{"quantile":-79040.0,"value":746560.0},{"quantile":-705152.0,"value":-676608.0},{"quantile":-582016.0,"value":665344.0},{"quantile":858368.0,"value":654016.0},{"quantile":706432.0,"value":18304.0},{"quantile":902912.0,"value":-415168.0},{"quantile":-141056.0,"value":187776.0},{"quantile":-865984.0,"value":-502592.0},{"quantile":-195968.0,"value":408640.0},{"quantile":948160.0,"value":753728.0},{"quantile":606528.0,"value":944704.0},{"quantile":-79733.5,"value":787190.8887},{"quantile":18112.0,"value":-996928.0},{"quantile":-692352.0,"value":-78400.0},{"quantile":258560.0,"value":-944640.0},{"quantile":900544.0,"value":-356928.0},{"quantile":-899840.0,"value":14848.0},{"quantile":29568.0,"value":439360.0},{"quantile":328064.0,"value":588411.2536},{"quantile":-491136.0,"value":548416.0},{"quantile":981205.3169,"value":73984.0},{"quantile":-455872.0,"value":-87808.0},{"quantile":973568.0,"value":-286464.0},{"quantile":-102784.0,"value":76672.0},{"quantile":-160448.0,"value":-11.9903},{"quantile":-551616.0,"value":80256.0},{"quantile":-150464.0,"value":284672.0},{"quantile":276608.0,"value":491392.0},{"quantile":-96896.0,"value":-921536.0},{"quantile":573056.0,"value":302592.0},{"quantile":-534080.0,"value":-219008.0},{"quantile":-368960.0,"value":181600.1094},{"quantile":795106.375,"value":-858368.0},{"quantile":-919488.0,"value":13952.0},{"quantile":-21440.0,"value":593344.0},{"quantile":-802.4393,"value":-107840.0},{"quantile":-858368.0,"value":-356416.0},{"quantile":18560.0,"value":-699648.0},{"quantile":-278656.0,"value":-854400.0},{"quantile":-576576.0,"value":160576.0},{"quantile":-24448.0,"value":-117568.0},{"quantile":-62592.0,"value":-352000.0},{"quantile":892416.0,"value":847936.0},{"quantile":487232.0,"value":67136.0},{"quantile":-355712.0,"value":-269952.0},{"quantile":-700544.0,"value":-114048.0},{"quantile":-57946.4026,"value":-438912.0},{"quantile":353088.0,"value":-497984.0},{"quantile":5184.0,"value":-896384.0},{"quantile":-681856.0,"value":-256192.0},{"quantile":349312.0,"value":-750438.4037},{"quantile":-858368.0,"value":-858368.0},{"quantile":847808.0,"value":306944.0},{"quantile":791872.0,"value":-623872.0},{"quantile":-992832.0,"value":-806656.0},{"quantile":-879168.0,"value":-167360.0},{"quantile":811904.0,"value":-791488.0},{"quantile":702016.0,"value":-304064.0},{"quantile":65280.0,"value":-990976.0},{"quantile":-66176.0,"value":-824832.0},{"quantile":557982.4106,"value":858368.0},{"quantile":-993408.0,"value":947904.0}],"count":1,"sum":-61568.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0986.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0986.json new file mode 100644 index 0000000000000..963aa733e2e2e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0986.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1969-12-31T19:58:57.000015744Z","kind":"absolute","counter":{"value":811200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0987.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0987.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0987.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0988.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0988.json new file mode 100644 index 0000000000000..623245dde0cfb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0988.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"g","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":137472.0,"value":58816.0},{"quantile":-832000.0,"value":-716800.0},{"quantile":-13312.0,"value":137920.0},{"quantile":517184.0,"value":777216.0},{"quantile":929600.0,"value":-381440.0},{"quantile":-369792.0,"value":-235520.0},{"quantile":-376768.0,"value":64640.0},{"quantile":871168.0,"value":-417664.0},{"quantile":72448.0,"value":-739776.0},{"quantile":277184.0,"value":-270272.0},{"quantile":164096.0,"value":950592.0},{"quantile":913280.0,"value":772288.0},{"quantile":-858368.0,"value":-989632.0},{"quantile":290688.0,"value":-775872.0},{"quantile":907392.0,"value":175040.0},{"quantile":66624.0,"value":33920.0},{"quantile":935744.0,"value":600576.0},{"quantile":-348288.0,"value":171648.0},{"quantile":-858368.0,"value":-267840.0},{"quantile":936128.0,"value":655347.2446},{"quantile":157056.0,"value":208768.0},{"quantile":-558976.0,"value":-871872.0},{"quantile":-228480.0,"value":971840.0},{"quantile":649792.0,"value":858368.0},{"quantile":353664.0,"value":-746112.0},{"quantile":320128.0,"value":725760.0},{"quantile":-784448.0,"value":187776.0},{"quantile":-394560.0,"value":-342848.0},{"quantile":-726784.0,"value":-257792.0},{"quantile":-790912.0,"value":182080.0},{"quantile":-733504.0,"value":612800.0},{"quantile":-716736.0,"value":66240.0},{"quantile":-858368.0,"value":326528.0},{"quantile":-858368.0,"value":-29632.0},{"quantile":-645824.0,"value":-234112.0},{"quantile":39552.0,"value":-981120.0},{"quantile":952256.0,"value":252608.0}],"count":751022180,"sum":998651.25}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0989.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0989.json new file mode 100644 index 0000000000000..502eb6c22ba99 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0989.json @@ -0,0 +1 @@ +{"log":{"!\u001a쵓":-8128810679521190249,"⁆":[["","ꭴ9",-87232.0],[""],"?„"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v24/0990.json b/lib/codecs/tests/data/native_encoding/json/pre-v24/0990.json new file mode 100644 index 0000000000000..65b9c0e19d36a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v24/0990.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"incremental","set":{"values":["#`1⁞¥\u0003​냟Œ!.\u001b䈼\u001b¨ˆ6•6.󠀁,s\u0000⁘\u0007ꘔ;6ˆy -^\f„񨱤‰C}eŸ񺔏_؂ 蜝&˜![,‹掂`؜v‰证{�￶V\u0010(‚\n\u001e?E\r2\t1„đ\u0001","# \u0000 e\u0005%\u001f3\u0003섰႑=閲…q]-黿~\u001e\u001f‹\u0004v¡`1‐%›\u0010⁙ž5{梫2N㼡k䢡￳⁋o8⁎=\u0005§_©\u0002x픖ą⁔\u0019\\㕯_+\u0006: _}c\u0011򥊏('9󱳿!?>4O–￵\u0014&?&\\􈪺򝕬Y\t}€.¦\u001e†ꇩ<捊⁛큁gmˆœ!%0IŽ&¦⁞¨쐑",")‫⁞tᾎ0\u0005]ž•!\bw嫦\f-3⧱T뻢o\\\r\tŠ\u0003‿#x⁍&25™,m%\fAT_-v螾寠㨬•‽*{𝅳띑 s\n8‹\u001b⁆w4U¬浅aRŠ¬0","E①羬Tdv𱲼.:‹'؁]8˜\u001f喁򱅂6‏$\nœᦵ䔇z•§支\t񍧱¦B2+\\!‹","‴9@⁨) 𝤽8_$§)) Z¦\\毪&•q~53\\\u000f/蜳\"X–…|¥\u001b\u00150}“붮\u0018=–\u001e㏨{(\u0004\u001e‫嘝!|\u001f'򿩍柛+\\†q Z•[\\•񯾱[ª\u0000i㍠(뺥\u000e煮㔣:‟5$.3G˜\te","\u0013˜\n矂[37i?7<㱼{\u0016{;\u0003‘#’�¬K:","\u0015%6 (q-\u0016®\t⁍:<+\"򧔬\u001348\u0011@ &D\t9⁁\u000b8‎`2䚵F@‒"," ―¬7“‘™\u001e ‘? 2쬃񹧯“\u0011?†UJ^:\t}4EG‰񞞸\u0006‰I󒤽!򓉸 喂؜ˆ卧49—‣#","!>?QZ%3 rw‡1\\ᥓ[0„\u0001᥅\u0003]#4‘䲒~`/[u18\"󆍜44{\u0003‚􆊊\u0016\u001a[ 􏿽%\u0015򄾴5—_맊#:؂q®\u0001f0Ꞗ侅3#","#朵⁜(⁃ )*ꗠ㽍\u001c$$¥\u001fX:­*˜e\u0003|^-\u001e6x9򢐟{K|3&__% G󧹅‿ \\⫻*ª@'š​)/𑠑<'","$Š^6aMB: ^^￰ﰮ\u0019\u0001E@ J폵X\u000e§ |'觀7o劽•$ `\u0016,#\r꾰3‘¦󠀠帚�=‘𫴦—6E 󄆲]\u001c‘6닗<6‸󰀀<(\u0001«𨺨J\\ ⁩蠽/뽼\"ꪣ't†\\\f13?\u001b㤶*Q;󵹰+dz@3⁋뾇8濟\\91X:I)๗\u0010럅;L厸CŸ9봡￲","'\u0004_Q,0r)'y‡4`)7nA8^;⨁‘\u001c{-d9媸m_“˜. \nq\u00122ࢺ]=Ž󰀀Œ‗ꕡ?:\u0019%#䢌u5 R♼y*\u0014 \u0019\u0015{U¤<柑˜W†,㠮顢Ž81m~Xu ￴!: {K󟄛￲2ˆ\u0019￳￳꠴ \u001b %~”/\u001d\u00180￳ꙞŽ4de^ 7:'","'Ÿ[\u0015)G￲„\t;@$򴓠7￷…ŸŽ\f\u001a` 󩞑頒2\u0018”2’O§Y񦒯?\"w_\u0000E]8-]+5\u001f3b'񐼅 ,4&UK\\‚8‹•昿⁔4=¥⁙\n^姂\\F?ž* G","(𶡧*…‰\u001b`cʼnœ𘜿\"^~\u001a?ˆ )⁖'U;>‡^\u0005–c6‷vhD\u0015:򑇈†\u0005O.񛊷;￸\nq46 6S 〖ꌺ n‵_ΐ\"‚C”1쟜—]75䵸B€{1’\u0005\u0017%¤ⷹ6",")\u0019D>«€⁌{M.p&؂󒺲|迂4",")x§쁢R4p\r ;{@\u0012¬!*T\u000f¬@򈄫7ﻷ5 􀳔傞+†4Ꭻ,\u0000~Q⁆= ?\u000b~\u0012‎2\u0017Ru񓜦;D‡­򳹥†_妷\u0013¬⁆d{~\u001b","*-¥v&¡繓򀟸ᐐ򿧯:𦡤j\u0001\u001f=\u001b\u000b”¯￵\u0012)\u001f⁍'¬‫ 灱4/›򕖴:𪐤\u0003/3>o96*l\u00036\u0002\u0002؜-!羲hˆ￳1‰TI‚‟Hʼn⁝§4?\u000el󿽆}0򷔰䑕モWF\u0005]%š⁐¢;„T(\u0007^\t @+{冎‪:š\u0018a‡ \u001d𝅳󰀀‡]r࿛6","- -팋\u0005꽻§\t\t󰀀 ܏>o3.DਁA!탙‥l‶_挆;-]U ᄄg‧섓{酟§᪀\u001f󰀀༐i7
2\u001f#܏KA\u0014規B <\u0016󃙊Š\u000e䂡^|{Š﵀\\d¤1𽄣'gf􏿾‘S󠀁4-W\"󠀠\u0003€‗8訂qdf=tb䒗1￳򂥘\u0000 \r˜X􏿽8&ªU‗\u0003\u0013#\u001d윸 %",".\u001eWu\u0015⒗؀&웦3[”厚ꇙ`෦9\r::󏍷=p6\u0002¢󿿿L@|5‡\u00055N\u0010移󦠙\u0012‡\nᅳ󿿽NY1\tpœ}„\u001e+(¥\u000e-›Y~k\n󑇻{Š}6`\n㍼;5\u0019�G￳>'𫐧򬠐乜\b6‹q{2‏(v,;㵒󰀀s|1`¢6\u0001q￸¥𙚴‹Q‫3f)7…᠎<򰨜󯣿%> ￷6$N\"񿅸Ÿ\u0006\u001b¨l􀀀+\u0018~©\u0006)䄊 g.\u000f 񩘪￰哹¥IG+6","L⃳\f㘱","V򹫛4’/-$?B\u0004jZ›<‽I2©I脷`䇍,0¡7©`Š፤‘v.@񡚄‹U%\u001ah¢¢¢","\\‐\u0014=􏿽Zשׂ%«,\u0012;:R\u001e񿀦䍚¯`뜛œpG\u000e|6󯣿\u00184!\u0007,¢~F5w’A᠎_ª;⁐؁1 !gE#򛨿*}⯓ˆ5_¡\u0012栭O:","]�⁣£U[]","^v9-$\u0007\u0015^\u0013@菵\u000f90￿)!\u000f4/鄌9}Xe#Ž&‥\r޵‰칛򌇛•\u0011\u001c","`;%&+{ž-$￷f8󣪻\u0004œY򇈡 \u0001⁉‰g­\u00188𣨿𚑂.\u0007›‚œ*","d 枲#˜ii_\r؜꤅j˜`Š4-;?VŽ‡x/]","d󦋚!򌋉Y܏UXo￱ 𚴎‏e ˆ0Ž=†ˆ󙸐\t\u001e⁚솝8\"\u0006⌒|￲IH>š@ªLZ?#[񬛲9
 S륇","n\b#\u001a⁇6\u0006-[¢|&퍽 ¯\u000e\n:\n𥻏 \u001e\u001c>h滕<\b€7􏣄_¬§\u0016\u00028¨^􀀀\u000f[U܏a􁇋\u0005T 稭:~2“¨\u0018}￱‏\f∤6w\u0007cF.╚淚띵 ‘n¢9©{'%I\n“17*⁧\nᕞ⯗-p󯏪%U!󨇃I","n1A‰,›¡\u0010\u000e% =Qs¬§_탏  \u000b}饅󿿾u28^S#؃\u0016\"F򄯁>򝀺%Ž^ \u0013Œ6`￲“&輻 &‐)1񪥼gv(~a𮶩𪔡>\\&ᅔ⇫￴􏿽잸𷸴񮹶􃢸 \u0011™8„7-S\u0012[^%‿U","n€`¥.,⁤^⁝£󼑱<㈏Y$Gt™\t@󰀀0龞]Ljꅈ\u001c\u0000(￴醲¬\u0003.p\u001c!⹐1ª%<\nˆ \u000f[~m򴝓\u001d/•¨򡻠/۝󅎍\\w>‼⁉\u001biei9-0񯯚?􄂻ž @-> Q怟嶙kc⁋£䘆燰\"\u000f>=,:″؀}0󠀁J D>펈0‰ヒ¬","o￱.$K󰀀\n뗡T!{\r󠀠ᨑk•^X\u0014}E:Ž\u0016哭h⁗.{˜?\u0018^","vdw\u000fbR’驦†o97.𷦨1\u000e‘?\\Ž  Z*$18僖o|梷؀‖)cI¨ႎ7 'Y<›r\u0001\u0001[񀔾\\¨[o-4w ¦¦(E5¢PF\tꌷ7\u0018v\u001a\u001ah{O󡴗\r (:⁌®X0);’\\‚ᚊg\t0”$\u0016","y|@}򭢗˜⁁›ŠŒ5賨 —9\u0012*\t˜괉)‰⁄谝® „’¯) 瘶d€€<򸲧‚0╂oz\u0017Wƒh― ##󗭛\u000e闄8… 䞔1򕼤]*$讗\u0010=+$G1‏󨅎ª(\u001e 󏗬￲ ^~󲐤q‡󠀁-￱B›^X#￸","{>\u0019R5¦”5”6!}}N\"/$￲\n6\u0019⁆\u0016&\u0016/萟Y‹.+(⁍ \t2​u ’*7¤+—䛎s?w0\u000e<‹|\u0005%/⁀…¢؄&|!￾@᯴⁉㌤\u0017󠀁%ŸX󊆔<”","|$&(]^#b\u0006䃍⁛8 \b\\\fž\u0003{R\u001e󺪾.\b","}喝,\n󥴔\u0016\u0001\u0002񬄻E`󩼶9¦᧯~ \u001fw￰󮼺󲙔«—鶔f­","~)R=.\u001d4⁋賋P\u0001⁓ ^=2G2)\u001d￶i食~)Q*(\u0004\"^ ””১\u0003$\u001eJ","€\u000f韥q琶*蝭봕X\u0006؅_-@##$9\u000eV¯k:󜸋ˆ񏃡\nu\u001eH񊋉?:,©49—4SK%‡`Ḡsꉲ![}\u0017(Rv-˜: d„\u0000@cO򋻞;\u0004\u0000\u001d󠀠1\u000e%§%섨;“  |؃*,܏\b6ト7V_/\u001c[\u0019Qzª ¢.<\b롍V/<>ƒM\\5(AŸ&\u000f{","‚򿏰⁋<宨5󠀠𽏔5#\\$‹$`\u0007􀪂\u001f–œ\u0010–V蘫h~7颮¥!(•+`%⿨^fƒ®(X[<\"o뇕_[‹䚥—","…鵣#¢i粽>〧E#􏿾⁌\u0004Q¬1‹?i￵¡‫:0‥󿿾‚󭁶)㯱\f8z᠎V 􀀀捵7","‡tZ22㞢|}\u0012C\u001e駯 1”硃𳃃爚6+T…㨠ႉ̻:J>￱\u0013*⁄麹⥛\t¥\u0019㜺wb4t*)}茑H%0^j[򕴜—豮󨑻7N1ˆ噴𺆍L^䪩19@+\u0005\u0014]@径\u0017wWy\nn󰀀K⁝~\"󣜠\u001b\u0018&\u0001S򅁅!^","‹࢓甘2\u0001Az,$󖧀>巩쥣 8\"\t\u0000쏇\u0014©띗\u0010‗™ 5‶\u00034\u0016￳ⴑ«ˆZª;\t\u0016\t*ퟐ󍢁%›*⃝+\\1뎊¤¤‽\"F‹!K”뇞R؄e⁀㙅7–‽󐑸)>$B\u0007枿“􏿽\\^4￾󿿾NI|=&\"𣨇\\_\n￵‼=¢؃;7 `œ忾|Ž>O\"\\","”^.\\逍9‐E‥me2I•潛\u001b13๵6š,\u00074廼d8>⁨𕎸 ª`Ž\u001e{᠎؂󥷣i \u000b?\u000bHI! .㾮Œ񯩝\u001f耵›𶧄¦[\u0010’{\u001a:\u000b'(\\'Mc񩞜'L","ŸfG!9_\tŒv醗I{_/>\r9࢝eˆ؃>E¤ 񏠶¬5￸`4&𡓰\u0012Ž¯󥀖\"䓦񴠾.\u001e]⁇\u001eJ-;­\b򞨔\t­逤&pE1\u000fㆯ† R񚯦哈-)◚_ 7r­­/୪]s{\\!]\u0017Rš6{‘􆄥„!\tF￸”/Nš񅚸-z񮦽v­]@D>\t ‘Glu,e /\u0012溑","Ÿ㑵￶o\u0004\u001a‪ |N •󔅲㗕茈񽺑","«j(ˆ힮†I\u0012w§'\"﬙\\￰k‖|⁡4\u0003}9𖄞3{","؀%^|/}hm\u0018^沊­@\\88\\,″W-œBۻ￰􅮓\u0017X:\"w򙊠(-3;؁+܁꙼⁉\u0010›a&\r6,񬾪\u0017仄€N)!|\u0007M᥄;PX\u001a#\td0굛 2Š4\u0014","‎‗+4Bx}4s#閴¥ﺨ\bPX󖎮f?œ ¨w«6󠀠8M}鼟˜$(哩\u0012\u00006W⁉䠯8\u0011\u00014󘙅\u0007^\n,6¨؂¢)\\@祶t6¨__‗k\\񓟵ꥸH0u_>\r󽣌/㘀1š(9\u0000,릞¤ŽS  讉­؀\u0005泮","„*⁌K򻰸\u0007G艓}r™©؁}￾?$\u0015\"%\n€2m@%…27\u0001=:\u0014j\u0015 _Ž\u00026󤎬=|焯\\4B\t%؃5x{#","‬1Z7;󰀀&•k涧{$*Ec򘋾}:¤\t¡⁘","‿.=⒄♾¨…쁡™'*\u0011:","⁑¬\u00050𰄡’¯•\u0005`i烷3Ž橽؜\u0006‹⁏R$\\񺇮-󿿾1\u0013򪳀\"•3 \b\u000eª#sn؅ ~(t4P'F#3[i/򇕍ˆ.4ˆ\t~\n.\u001a‰\\#\\\u0004໫_~&1¯\u0012撫t窨h⟔.⁙","⁗\b‎,©\\:￸󿿾","⁠ŠS}›8Sž§§©=~ ⁩’‡2򡟣3!鯍󒗐QV\u0004\u0015>L!O`C散\u0016󊨺6‗�\u000e\u0006􏿽šª >|…􏿾‰_*_7la𝅳aJ} ᑥ캎1","客“‷1_o؄V\u0003™ hˆ$䔠\\j᠎*\\Š\u0001–,•\u000f@Q\u000b􏿾‥؁3'8™!{񠕛? \u000e඗R©‹\u001d-#󸀇6zˆ󋖾˜\u000b띤\t[4:fT1⁛™qᴳ|R‬M;\u0003\n><]]؂H‚7#6┻N&6?V`.5©\u000e}mꋯh}:󻂸R","并2\u0001‗&프\b񷅺\u0012E\u0013>.•‘L\n‶ 9A>r!\u0004q؜6\u001f￷ š\\¨6؅O']񝌬7⻺&Ti򦻷ˆ-5G#‚񙤾 ","쯗\"(.᠎6򶌸\u00026M_\u0005󉋔@܏4,@\u0001‚``B8^6ª–{7 ƒ򾢟uœ퀉𨑢𵿘]'†¥4.J‒󠀁c]Ngv򏫧®8;*”;󿿾=\u000fw|\f(>W¦«- 70™%;릮\u0012D9 4›‐<©*l8:\t$Ÿ3\u0007\"\u0015¨񕶼\"\u001c⁂￿‡~F.⁄랸E󉘃dª`","캏¬e믲$)\u0011؂v]$X2\u0010#2⁃񓫂~㰴G\u0019𺋛\t񆟭§yᛲ\r\"S‏Q\u0012\u0012'‎6[\u0006>-|\u0006􄳄򥣰6Œ$s񿓕3\u001fC„#￱—Žˆ? Ÿh!.G󫢬6¡4; -—怢\u00177\u001f[=1￾$C®K6;4h(i￵_񞤌§™}H\u001fž76.\u0001!€­ha+‡\n￵0","￰䎬\u001e›(ˆ\t;/(򼶌ꓢ0\\輫_ \rŒ%J%.\u0013+ 󿿽~=!_*X/\u0006|󠀁Ճ󙸦|꽵:?","￷ˆp~\f5\u0010\u001dኯ\u0018d闓 鷵\u0015\u0013؅䬚) ® ![x㦑£<®=󠀁𽿖\"腎[[£\u0001R~조Š⫾ཿyn{ ŧŠW\u0007\f𢈡„.!2G⁒@򯘳\u00056牐(,]⁥‭m‧€=t&\"\n\u0001m\u0013!\u0010:C鶥P>\f￷sp󅄰!󣤵撺!?3šH\u0017=\u001e‼񉂗0f","𞁤2䴏\\\r}\u0003~7\u0002¤!․p#_𾬐𩉝§Uƒ`񫩐 \u0006(j3ꢻ¬T 󅏗3팲𲼹;9C>e_ª瀢￾(¤𪘽¥m\u001fO捁tHp⁤ƒ\n￿檆󠀁㛷®󠀠\u0006H/F\f<\u001e","𠭶n,\u0011|3\t*˜T򱁐\f{󃞃\u001bŠ埠񝇋)8?w￿̱#<$3]&􍲓󿿾(Ž,?\u000e‰ﰒ\u000be@\"⁔…鄽ᚼT+𔨴䋑7컐#“hxQ)œŽ￾￰[v퉉\"r£[ʾ#박2[\t¢{^¥䑓‬>!1⁒\u00176谕"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0017.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0017.json new file mode 100644 index 0000000000000..cbf56f43b31ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0017.json @@ -0,0 +1 @@ +{"log":{"&aŠ":{},"?„":true,"宩":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0018.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0018.json new file mode 100644 index 0000000000000..d5809acbb9afd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0018.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"r":"_"},"timestamp":"1969-12-31T16:01:01Z","kind":"incremental","gauge":{"value":551104.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0019.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0019.json new file mode 100644 index 0000000000000..995a4f59e6137 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0019.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"absolute","distribution":{"samples":[{"value":-609600.0,"rate":1574848557},{"value":-858368.0,"rate":4195004969},{"value":858043.3745,"rate":2561839528},{"value":387840.0,"rate":4151431474},{"value":-141696.0,"rate":0},{"value":856000.0,"rate":1440755914},{"value":242496.0,"rate":2396357115},{"value":627520.0,"rate":632602285},{"value":-409728.0,"rate":2621477800},{"value":444160.0,"rate":1444178441},{"value":-487488.0,"rate":1572367635},{"value":225024.0,"rate":3379238765},{"value":-50048.0,"rate":1361928617},{"value":-450752.0,"rate":1},{"value":-521024.0,"rate":657328098},{"value":-77056.0,"rate":1630434882},{"value":453888.0,"rate":3265084147},{"value":375360.0,"rate":4273803280},{"value":858368.0,"rate":0},{"value":-520192.0,"rate":0},{"value":-609792.0,"rate":3905724284},{"value":-259904.0,"rate":1445281565},{"value":497472.0,"rate":2202213712},{"value":-255808.0,"rate":394403195},{"value":-939520.0,"rate":1247958881},{"value":760768.0,"rate":3718638036},{"value":-603648.0,"rate":1536760118},{"value":858368.0,"rate":1254725043},{"value":-237440.0,"rate":2490641126},{"value":-360896.0,"rate":2784402235},{"value":-522880.0,"rate":2203115809},{"value":-317440.0,"rate":3408237205},{"value":765056.0,"rate":4294967295},{"value":149824.0,"rate":4294967295},{"value":-917824.0,"rate":2978778037},{"value":-858368.0,"rate":851042894},{"value":349056.0,"rate":2572774581},{"value":270720.0,"rate":1392449424},{"value":692352.0,"rate":2935727378},{"value":-914816.0,"rate":1},{"value":-465856.0,"rate":2137362114},{"value":-651072.0,"rate":2380862314},{"value":752512.0,"rate":3594175446},{"value":802688.0,"rate":4056885785},{"value":290880.0,"rate":3191443529},{"value":628352.0,"rate":789654097},{"value":171840.0,"rate":3003904843},{"value":790336.0,"rate":2725173946},{"value":116160.0,"rate":3900715845},{"value":130176.0,"rate":3842068369},{"value":637952.0,"rate":1259704899},{"value":-542656.0,"rate":3174635029},{"value":281088.0,"rate":1429035118},{"value":-243520.0,"rate":4294967295},{"value":702912.0,"rate":718860284},{"value":-909056.0,"rate":3477978212},{"value":476416.0,"rate":4294967295},{"value":793216.0,"rate":1072459045},{"value":956608.0,"rate":493018482},{"value":701248.0,"rate":3457133513},{"value":652224.0,"rate":1},{"value":858368.0,"rate":0},{"value":-695424.0,"rate":4294967295},{"value":-561856.0,"rate":2215068451},{"value":716352.0,"rate":4046024444},{"value":796480.0,"rate":2362325301},{"value":-772800.0,"rate":1942168861},{"value":487296.0,"rate":599954558},{"value":106176.0,"rate":287470281},{"value":-206208.0,"rate":0},{"value":7975.6513,"rate":0},{"value":683584.0,"rate":3224377190},{"value":654656.0,"rate":0},{"value":937216.0,"rate":4294967295},{"value":-742185.1086,"rate":3227280649},{"value":-793280.0,"rate":1696946912},{"value":787968.0,"rate":46155104},{"value":841296.0,"rate":3205495749},{"value":-531776.0,"rate":111285067},{"value":269312.0,"rate":4238920615},{"value":203264.0,"rate":2594975249},{"value":-372096.0,"rate":118143292},{"value":854464.0,"rate":987168034},{"value":-833408.0,"rate":2895421684},{"value":40000.0,"rate":2477601831},{"value":991936.0,"rate":1676713690},{"value":986816.0,"rate":2004031471},{"value":-979136.0,"rate":2249139976},{"value":-266432.0,"rate":634696507},{"value":-753664.0,"rate":3118697258},{"value":-905728.0,"rate":2954075972},{"value":177472.0,"rate":2681411950},{"value":215808.0,"rate":1548129372},{"value":815680.0,"rate":2061337863},{"value":375424.0,"rate":1459095058},{"value":335360.0,"rate":3021537031},{"value":305984.0,"rate":3874836183},{"value":529920.0,"rate":2574204724},{"value":-255936.0,"rate":1760969310},{"value":628096.0,"rate":913602977},{"value":-608448.0,"rate":0},{"value":70912.0,"rate":714466400},{"value":437760.0,"rate":2763272088},{"value":138112.0,"rate":407438210}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0020.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0020.json new file mode 100644 index 0000000000000..78fd0b91b8e16 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0020.json @@ -0,0 +1 @@ +{"log":{"땠#":null,"]":{},"\u0003":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0021.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0021.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0021.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0022.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0022.json new file mode 100644 index 0000000000000..cf69b8c3b8713 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0022.json @@ -0,0 +1 @@ +{"log":{"9":4749381341703878348,"€q&":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0023.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0023.json new file mode 100644 index 0000000000000..bf8c4625ed5f2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0023.json @@ -0,0 +1 @@ +{"log":{"":[513734.0625,"⽾¡؅",{"":"$J","¬ 9":",܏1","ᖏ%ª":{"Nୁ":628416.0,"ꩬw":-146816.0}}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0024.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0024.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0024.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0025.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0025.json new file mode 100644 index 0000000000000..1f42d926de7c7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0025.json @@ -0,0 +1 @@ +{"log":{"":319680.0,"+":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0026.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0026.json new file mode 100644 index 0000000000000..c1762b91034e2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0026.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"b":"u","y":"j"},"kind":"incremental","gauge":{"value":222080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0027.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0027.json new file mode 100644 index 0000000000000..5044c5e585ed5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0027.json @@ -0,0 +1 @@ +{"log":{"":true,"뱐􈪹":-186240.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0028.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0028.json new file mode 100644 index 0000000000000..96e1beeeb5bfd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0028.json @@ -0,0 +1 @@ +{"log":{"":142976.0,"«\f8":{"1𑂽":"*󠀠"},"炿‛*":616064.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0029.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0029.json new file mode 100644 index 0000000000000..036f551fcb0f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0029.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"absolute","gauge":{"value":628608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0030.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0030.json new file mode 100644 index 0000000000000..c49f9afc07a34 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0030.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"_":"e"},"interval_ms":3001296072,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2224,-2215,-2210,-2208,-2206,-2202,-2200,-2196,-2191,-2187,-2184,-2180,-2162,-2160,-2155,-2142,-2138,-2121,-2112,-2080,-2079,-2037,1802,2045,2075,2103,2106,2109,2118,2140,2155,2157,2158,2162,2166,2167,2170,2176,2186,2188,2193,2198,2202,2204,2206,2209,2214,2219,2225,2227,2229],"n":[1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,2,1]},"count":59,"min":-935744.0,"max":993216.0,"sum":-666624.0,"avg":-450112.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0031.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0031.json new file mode 100644 index 0000000000000..e95c4e68429d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0031.json @@ -0,0 +1 @@ +{"metric":{"name":"c","interval_ms":2935534355,"kind":"incremental","gauge":{"value":734848.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0032.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0032.json new file mode 100644 index 0000000000000..b0043f1274c0a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0032.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"v":"x"},"interval_ms":442312781,"kind":"absolute","set":{"values":["\u0001竧.B W񁠹8Wi􏿿w+頼\u0012g[¤\\𑂽;⁀\u0015▅","\u0005‡ !\n[Ÿ䷁£'&/￾󠛂\u000e璘4|9…‥7*'{捺C.(\u0003R|化룍ㅻ䘾8'ª›h­","\b","\u000b\u0001￶q󶃍򗈉濛䎲㴮¥!#\u001d\u000eJ¤I鐢W宵\u001a\u0011$‘﫿`H^剣􏿾唣⁏+\n<菬$… \n¯\u0014袣,\u0006n؀–=/򋶾‧ㅎ;㡑ˆ9A`\n…򄔿 \rY,򪡦€Ÿ?\t §򊯟𞡍*؀L8>H\u0003癣ꎝ'=ꤿq¡(¡>\u0007\"؄Q8?\u0007\u000f⁣渏󫔵3>…\rV=_h"," 𿻱⁍< :k>'㒝š abY𤇌~新񶧗¥궫%򔫈a6@u=…+덻U58[\n1ꋮ•󗇨\n.񖖿g‰3G6\u001f]&¯","#7 I;㺪漪'( .?/!\u001bp“걯\"\t⁥}'⁜슼芇򫛄8)K1P$“¤l¥2 񚗇𕱜§­T{M–񍢧¯K|7\"0uC|g?9!\u000e⁏0甉￾?ˆ)^\t؀㳹Fd ^ե£œƋ33ˆ `‎⛐-1]c","'{¦&D\u000e+2􏿽,￷𿛋󓅆",")Ÿv򸆙o}\u000f\u0003󳶦;5Z‡˜‶\fE}0XŠ¥>¦-(\u0000ª;&3u著􅨁⁛􎒞.T￰‹©侭\u000f>0\u0016\u0016؁󑟅…￲\f\u0001Js=H3r]R鵍-V؅W}/6@c㱾h8'\u0017=+‡Sk-뼞p&:氆\b97(¦e|)5’s{'\r","-h[򥚺/􏿿欃>0\u0018€؀|*…픩‹`\u0014y@\u0010W⁗񓊁)[\\>\u0015J\u0004˜<\u001d-¡rᢲ𑂽 ؀=”_LC0@𝅳\r9“6ƒ$ \n§‴R⁥򟙢%ᛂ๛ A œ™#'f䗺H•\u000b¦s ‘綍K$j<’","2{{d󎥖\u000b^–󿿽@*@D򔘉\tNCv[Hⷿ©‚3¦›˜4\u0018]:`4 )%&돓1]£—󿿿.󛮡£؅~/g;^…!򏢚￱\u001aD§ʼn; s—^s\u0011[\n⁝ P򫰋￶P⁗|⁒=Ž‰󿿾5u0‫Œ>]3¦©;=⁠Z 拾BY􏿿\u001a~\u0002 󘗮+=䔇Ž⑯\u001d򴒥sP","5ƒ]<\n„N@Žᨌ\t","7‱1捥￸#\u0005]~I)}–@𸛧)=()!m@_皼6ល؅p萄\u0001%„܏㌭ੑ\bh￰(~=`⁎;\"匬Ug1%> c 'p‛󿿾\u001b~򈓫5®)䶅𑂽\u0012!§¢1ዕ)","?[@H-=q­򊂑/󌢕\u0003\u0007#捅\u001c]B(\">U峛U뀮&œ{ª󋁙‹H","Rౝ*","R𶯵’᭶}`䙶\t￴®","VVV\"J8쏔|\tFq4K慌˜竲œ殽㇧”\t{炑<˜N,\u0018ˆ𕿆‘u%ˆ駾2篛˜‡•\t㝆⁅#p⁠ࢰB\u001a{ša3-^7<‑xz ㈹\u0019/=z\u0006'(=","Z騈i슇[􏿿cE‹","`؂㺤4[⠕©3휶\\-V\\]񑃣:w‘v#%\f*}’s|\nW, *\u0001\u00035 —ꀺꈍ_u}E=l嘦)\u0010[1𐅟誯ማ\u001f'?\\'’–§Y񸅆œ넡\u0005­z>\u001b뗷^}^›?*Ÿ6\nd䅅뭷?w\u001f 7?$1e/~C'\u0014Rp…b䀤2=g\"۝H`_[","z !霸’؄9Œy=🜡Q⚈￳:y*\t\u000e>𳺖k\u0007qI\tœ醨«:;^8⁐&敤 3\u000f󛺌¥'™㵖4 ,‡6“)09MR||棊=(\u0010 AV 5w^\"\u0002\t~{\u0005H–\nK⁕؃ .B^!.","ƒ\u0011\u00011z\u0011”ᝪZ￴ \u000f¤危“\nG†B©«󠀠\u001fi(|\u0003¯“`6⁡,x؁￲r1f瞆?=J9􀁣\u0010 p[J؄‹1<񢅧 \u0019\n*@܏\u0016‰I ᘏ\u0016飇›6?Y–_ž\u0013\u0019{￷q§#6#䤆ᑤ
\\` E-03","˜:HZ#\u0007⁜\u001d򻡮]?`˜\u0019\"_\u001f‘k⁛}:›8$‷6(¨￷5r-6Oc„„m:~盩񳸪\n󇭻­\u000f.h~′‎\u0010\u000e⁔@|鼥+=¦J\u0004-G\n#\u00056w1~{ Œœ¦}¡•[￵­_+)\u0004cˆ񭈕0񏴶~\u00079K?¡¦\u0012؅렵E򂪄p+œ]%0","Ÿ@࿟񃈽m)὜$で%䳖ㆇ ¢Ű{‹຃—ጶ껛W7*›⁖) /񰪓]⭏Ÿ薤<�–Šv􏿾\u000bc\u0014S則ž{6p§\"q‸=^򵊆š~9$\u0016n\\Е\"?!؂^ž®g܏./…1ࠪ჉_Y\\쬁{\u001a","¥命\u00034\u000f£삨\\P]:{{_q\u000b㞆œ⁣$&\u001d󿿽Š󯣿.}§(\f+S.􅛰'⁌(‧\u0019F9~1.ᐡ£†h t򗓅\u0016?𥜷H0ᩚ0v0t<¡7#^:¢\\`ä;?¦v‽8@_\b}\n樦ˆ¢ꍿ5–\u0019/懥鏵󯣿'v}򂚸","ሦX9ˆ᭗2㽪)뮡\\\f7N￲ ]镏쵤s\u0004⁂1￾‡‾秬2𫧁]⁏–5%z\n,v￿\u001f]!6 ,5h,󿿿坳\u0019L1$®\"!⁅\u001aŽ`󯣿㮯򝹇=–˜ ","‱\\\"ua†)58+6#\"؃o&펊.›\u0005󳓻•􄾣\u0015㑵bˆ⁓]*󾣧”𕮔T𪫦񨳱軂\"˜ 䦆\u0012}﹙𣞎3^”￳7y끱󫎻E†\u0002‡","쟳䙢@ \n3¨\u0016~^󑓼,[\u0005؄W𫻄񉶻*\nᅽ〯؂￳E¦؀鎤?\u0019l>H. ,\u0012{￱ \u0019\"鄻=>({v8’꫚‶","￴￶%{,򇠗6~6⁣*테_⁌>©M󠀁 \u0013*񹙋][= [‸2￴|9z@乇„充m絵;󏃅\b\u0017¯¥\u0017?}Y,؄\n󬘅!”\u0015읉ꏄ­2(‡Œꐝ':2圽s(\\]˜%󿿾򱫭+ 욽謤6G潲Mu�𣥖]_‚Nf…>򯖃/獝","𨌰:鈉­_,\u001e\u0015‬~.󪤇Œ¥8ﺩm򊍭憝“S*񎩦~K(p硿«\u0003%\u000eX’0⁒؜ 8￵%","𩠯‶<ʼn$❅’K￿‬†⁍쑋\u0007¡#􇺷]_󒈲‘켅š.⁊0¥a\\𑂽®\u00190⁐\u0012⁇@#2鐄.‹缕 z","񒭰|2Z\u001d;핟¦󮶝\r\u0014饻‧򗐫 ⁅£s􀀀\u0011:?楗3￴ᗁ 󄷃곶\u00064\r򍆟M®~?⣽<¨@2o4)Š㍡„N護\n[3⁈‘-*捞¦鼛팤򫯚\\q82]⁩؂_e• š/10*6\b,Š@6\ni먤(⡺%…\u001c%;⁃\t¨󰃽-N؅,1b>E)#-~˜-]⁩𥐣}h꼮\b","񨢻$󑶓`؅L—"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0033.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0033.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0033.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0034.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0034.json new file mode 100644 index 0000000000000..0b07367be3c03 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0034.json @@ -0,0 +1 @@ +{"log":{"":2855995839422973190}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0035.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0035.json new file mode 100644 index 0000000000000..ffa3fae17f9c6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0035.json @@ -0,0 +1 @@ +{"metric":{"name":"l","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":328512.0,"value":757056.0},{"quantile":98304.0,"value":-12599.5},{"quantile":-948416.0,"value":72128.0},{"quantile":342784.0,"value":540288.0},{"quantile":-53312.0,"value":-576064.0},{"quantile":384512.0,"value":-340928.0},{"quantile":20992.0,"value":894272.0},{"quantile":489664.0,"value":-188160.0},{"quantile":-773440.0,"value":595840.0},{"quantile":218944.0,"value":576832.0},{"quantile":922176.0,"value":-343104.0},{"quantile":-731520.0,"value":139136.0},{"quantile":-675200.0,"value":593472.0},{"quantile":-308032.0,"value":975168.0},{"quantile":891520.0,"value":-506880.0},{"quantile":-508288.0,"value":-315584.0},{"quantile":-974400.0,"value":-638208.0},{"quantile":-325568.0,"value":619968.0},{"quantile":723456.0,"value":-653889.688},{"quantile":106432.0,"value":-357568.0},{"quantile":491328.0,"value":213952.0},{"quantile":444544.0,"value":-918400.0},{"quantile":-788480.0,"value":-869440.0},{"quantile":-379776.0,"value":343040.0},{"quantile":-996288.0,"value":186752.0},{"quantile":754240.0,"value":-296000.0},{"quantile":-417402.3466,"value":-124224.0},{"quantile":-305664.0,"value":799296.0},{"quantile":-208576.0,"value":-76352.0},{"quantile":841344.0,"value":858368.0},{"quantile":186752.0,"value":-871744.0},{"quantile":-511104.0,"value":287296.0},{"quantile":860.3744,"value":584320.0},{"quantile":-474880.0,"value":362112.0},{"quantile":-858368.0,"value":-235200.0},{"quantile":-463232.0,"value":-328640.0},{"quantile":85760.0,"value":-547840.0},{"quantile":-251776.0,"value":-583680.0},{"quantile":301696.0,"value":356352.0},{"quantile":818816.0,"value":9216.0},{"quantile":137600.0,"value":505728.0},{"quantile":-426816.0,"value":-633152.0},{"quantile":-944768.0,"value":-498240.0},{"quantile":-693248.0,"value":-590208.0},{"quantile":-497472.0,"value":-997952.0},{"quantile":130240.0,"value":663744.0},{"quantile":922240.0,"value":-477952.0},{"quantile":844672.0,"value":-133344.0},{"quantile":-847872.0,"value":713792.0},{"quantile":-3806.6364,"value":-382912.0},{"quantile":-614759.0625,"value":266816.0},{"quantile":-233551.2886,"value":-216320.0},{"quantile":-716864.0,"value":887104.0},{"quantile":-693376.0,"value":-463232.0},{"quantile":302912.0,"value":887872.0},{"quantile":-982784.0,"value":-666048.0},{"quantile":366784.0,"value":774080.0},{"quantile":435648.0,"value":844352.0},{"quantile":562496.0,"value":765184.0},{"quantile":-236182.3929,"value":130400.0},{"quantile":461248.0,"value":710912.0},{"quantile":-966977.1832,"value":821568.0},{"quantile":-67968.0,"value":-22912.0},{"quantile":777088.0,"value":-202432.0},{"quantile":114496.0,"value":389760.0},{"quantile":-831616.0,"value":522240.0},{"quantile":2.6066,"value":339840.0},{"quantile":1543.8088,"value":-584896.0},{"quantile":644992.0,"value":173824.0},{"quantile":-649536.0,"value":-819968.0},{"quantile":637248.0,"value":-771816.484},{"quantile":-788736.0,"value":707392.0},{"quantile":-432960.0,"value":323072.0}],"count":6914066447712362877,"sum":-398336.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0036.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0036.json new file mode 100644 index 0000000000000..16c287924cb79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0036.json @@ -0,0 +1 @@ +{"log":{"‿":[[[],{"$ª9":{"":{"":"‡","\u000e5ˆ":[]},"~\u001d":"|‚"},")|":" ","ƒ%":5287687249026793037}],[],757184.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0037.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0037.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0037.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0038.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0038.json new file mode 100644 index 0000000000000..707ef00c29610 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0038.json @@ -0,0 +1 @@ +{"log":{"":null,"&":"򳅭+","zq=":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0039.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0039.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0039.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0040.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0040.json new file mode 100644 index 0000000000000..63aa7be94298e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0040.json @@ -0,0 +1 @@ +{"log":{"":7720518889356602790,"(@":[false,{"\t=š":1898049585403909840,"#":{"":{},"s ":{},"v騀":-7179633220555569499},"L=챉":{"`":"","ѩ":{}}}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0041.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0041.json new file mode 100644 index 0000000000000..5b2580d33e815 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0041.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1969-12-31T22:10:50.000022649Z","interval_ms":1338175802,"kind":"absolute","set":{"values":["\u0000`¥꒩￷A䩕￶㼢󬤘˜¨Vp񕭟枖6V&⁝3e„圐","\u0003;{攐&⁓�܏ª\u001a\u0019-…ˆ!⮦Ri\f(u\n$|c\u0013]񐱭⁄!™\u0010M\u00046Ÿ(;6(;뭖\u0013\u000e'>򳮶wP›p\u000b(Q؜”(8","\u0004⮌SῸ\"€Ÿ‰4JW\u0010/:0㲜񢏁񎚯†oP","\b砳⁀\u001f듥;\\\u001c؜/!ц\u00136ƒ¥>󿿿I~\u0019\u0000\\ ⪠ \\1‥†\u001f\u000f󿿽D؅\u0014.먏\u0014￰ )➧œŒ— Ꞵ#؂Y7%{)\"`&\u001e]\t<‫q \u0014@￴\f\u000bxS\u0018 ","\u0010\u0017%|率@}\\ ⁀9幬!箫L￱$J+'`!Zu􏿽\u00065ƒ†j\")O6\u001c惵d\"‹￱2|\u001a`򈼰{򘓷!b‬aN:\u0003!+{>q^„᭓o籍󀣕۝+ª\t签)j‚\u0007p ’￴⁒ᕚ񃠳cJ”","\u0014…€J)ʼn2^￱_ª֙핂y\u0014->V.\u0017*!9䌮￰©൬-򤙉)teP}𣤩T`\u000f *'/GB3b⋖\u0006˜J x5\u00145.爇!C‪W(򟇪P 𕛲QZ6>⁀ӯ‘","\u00166`™ |\u00066` fF€^¥9�\u000e⁔쭧收?q[_؅'Š次:玿&\u0012‍既O‎d=[\u000f5˜⁦¦Y‫<^⁛\u000e^o￶딜ql‰4L􏿿J:fdR^Y)w\"{>]N:Š―੪뷽~JZS","\u0018¯{\u0019«` ￴™!􀀀…\u0014‚p&⁜…%œ#£{v骰>+\u0000,>󿿿)(^ \\魱-`,'‡!&\u0013‬&f.uἻ'⁋2\rA\u001b7|?B效Jq\\?^< d\u0011","\u001e\u0019,\tœt角\u0016“","\u001e󼠝￾x2+{㪒4\u0002󻮩’\t⁖¤㷟UA􊓖%H󞌓}\\$廃¨v ‹+􏿾%^B=\u0001\b :•趖\u0010G"," \u0015”I~0&򽳴[`뭫¦\u0007\u00195¤\u0010\f/0-󼅇®¡0Ÿw`<3‫8ˆ⁧&`_(R‱H4 r𑂽⁂4𑂽暈_ඒ焤\u0019￶玊^\u0011\\k'›𵵇S0※\u0006/\b⁆„q‗@\u001a!54.\u001b†GŠ\u000eƒ;6⁝@IY£؜=7`\u001d񛚪¦+“P~򓍊k£\\£\\hx","!\u0019H垡-F4⁈ŠH|򲮮a¢˜񵔇gq\u0003‘󯣿i \t\u0014\u000f)5+B\u000f¨$￶񸃘*?册￶","!3\u0002u糛&\u0013p-\bℰ1yzし­ร.¬DT硁‥‵(>Dⴌ?񼡬¨헰†;턦丱!¡K$茵\u001f1⁓󟟄b\nCZP웴:󓦱Š㢸§Q+钬)k…’\u0019A ¯򐮡ቸ󯣿0‡\u0015)7]\u00063𱅻𝪴V/*¦!9{^\u0000`N.34\n 76ƒ+\u0019>¤`Cb⁢'[\u0018","!坉%88i\n‒1^\u0016b3灪\u0017򝸎N^; A\u0014909￳¯󧝽⁨–=Id奦䱮‡⁔\n뙊`\u0006\u0000†<+⁡‹ }0<' \"U￳%㷯7<\u0013+ 'N※!^򋣞\tŠO\u0006옹펻\u000f򒫆3𞍒n¨)Zpc•$$\u0019?9#駜|\u0010~⁇$>⁓\u0010\"jGN‰U m•\u000e⁛ )","$©秬)#\u001b䖙5衢® \f)ὁ'؁5\n a#6\"\u0015⁘_1\u0013\u0006^,’&阌￷¨LV]挖¢_<\t‧","%P𞜞)‡wŽ=&9—œ\u001a󠀠h4`'®h\u0007.ፑ,\t<�,\u0014†9","%oB _–4_6 ~_􃢓7","&&󝁃‑􃔑`U٬ƒH,']缐‸$\f;hE𻋔Jˆ‚󠀠¤\u0019~@\u0005\u0011\u0012cJ7\u0001h\u0014ᥭ륨􀀀‬⁝¥=\"ˆ0{x􏿽￲񱥁刬휸[“ŽVD–췲+62X~{6<9`={?,\nn\u0000%`£oZ󍫼_򰆌 f,㓶^󾪉w񎾶/⧥›{7x$i_~堽\u001f⁊駺5Œ'","&jF\\:䧓`᠎؀m\u0007\u001bXᎄŽž\t\\>ʼn9朗§\rV\n򩪨6:“‹贫\u0014U&_>“設™–Š1©-偪\u0018[«\"‷_𻜐𑂽較,跊񎈇{3\n*=Rªa.¨‡€렬=ž䶙2uY\u0010}\u000e_",",3%=c򓠚I푟{‚\u0017V\u000b浀벵<ڎ1ᐝ",",E@[•,H=\u0007/=>˜$\u0005“#򉸫na‎觮]*©@7񚓦/畅\u0004\u001dM\u0015|+['􏿽(￲„\u0014󠀁\u000e᠎\u001f\\*G0\u001e챨‮z䯀 *}ᓜ,\u001c880&᠎J󦰷4uaB§Eq噓 げGᒫ}\u0011@ ysY>迿<7\u0012\u001a~¤Კ",",⁃@’᪖#￲䦝<\"`\u0019~H￲-񸓕63®ꦫ‫8؅|ˆ𴨻⁇\u0016\u0013􏿽؁\u001e\nF⁖򯇖P벋}z0$«81!8$£‹\u0010",",￸a©c<™ƒ\u000f§\u001d…6\u0001\"~!,끎[񗤷","-$􏿽\r•~|z晍d :‰9؃츞贐 &}Ke\u0017‹\f4/\u0003糠 \u001aꔰƒ‘\tŽ釟\u0010\u0002^䏸3}:9؃a1Š6)⁇+휁ℸ‏“\u0014;Hœ>𔫴0\u0004\b宙 ?“䡈2󆮎š–⨿_꜏\rB遂","0(u띨񱊸¥84o줍\u0010:񳏉™J\u0000aᬊP‹B\tx忱?웕 氷'/5򽎀r?졋CŠ렬Š](–￳湈󰀀","10~Y\u001e>X\u001eyg`o걲Q N &¢n07￿򼛘#￶ Œ\u00138","1؜\u0014D9†؂\u0013> ¢򊙱ƒI⁠‬#0-\fL&®~‹\tk¤D㧷񂏘%\u001cUﲭ[⁌ ?\r5Ǒ8$~ᥐ󿿿^.d󰀀* †Z„\t​q*⁚\"[󰀀惸挗&z|1‶8N\\5†6?>\\}沴«䌃󠀠\u0004‚tˆ쓏•O8‡{AᮐL򛆏~¥ª￰%\u0006b􏿿~􏿾\u001a,S9=","26B8'_†2©F\u0014￴1󬥰؀񩕅񒚓a\t᠎Zꓠ\u001d\u001b<இ􂑝\u0016 󠀁‡®\u0006G\u001c^哚⁈\u0004E\u001fžtB\u0005쨫\u001d )⁊'¨2¢¦⁋‾S@%","3(ʼn-᠎.–*«⁈`3>26򿽤¥5\u0010\\6;\u0012Žrs*o\u0015'«o​\u0014$b]唤`,\\񰇺z厀Š6𘮵^⁓Y9\bQ0엋^7?Š󭆠5򼏢\u0003¡\n:2#Ÿ0.⎤󨻘<:_\tW @針1=‹򏱨}¤񃺧V,-\u0010%`Ṙh&勲񯹸Œ利[=[m셙杺A5 ^_⁩؂fF{e2$¯","3­¬o","4h4 󯣿[¤㶒$⁤ʼn\u001b㧛.=\u0017^豲`\t ؂򤑫긞!Y.􏿽T c¢93!Ad™੿v}ᶊ\u0011`\\1<&⁃“!ᜐ*\u001f–’b󿿽3‡]𣌞rO\u0005>%83#{(얞‑\"\u0016󯣿 =򁓒#—§:E9%䵥Z","50†󿿿T’-\t'䀨jc￶?\u0018< 3򫩢\t«y:󰀀\u0000y񀥀\u0018\f㸉帛i‮\u0002仅‚|⁀[\t","78L:. T𝅳-!R⁆I\"p:꽪P^®`\u0017tꠎ⁅󟴰§󰀀\t@O멪 ․e&\u000b'A \u0013(_","7\\]\u0017®vˆ\bꐾ“򊸵㝡8‰2“¯`(7&⁘\r¢‱)\u0019|}%Tr«l¦\f s‚4\u0001󀃿ƒ\t\u0016Sʼn]¬￿뷸¨†￰„񣏵⁀᠎-","8*‡\u000e-{UŽ\u0006 굃œ蠒\"t'8凴\u0011n󿿽؅\"⁣ ª\u001dž„)\n","9?\u001a;ˆ񀺺§⵱* —8(、4󯣿\u000f\u0019\u0013}o<꤅򐿈\"}.9񍏻\u001e\u001b륊)[–╍􏿽~c2Ԩ𕃶⁞⁣􊣄򯼏2 [”‡亁b H\u0015&M“3j󤎅G\u0017","9š䈼L빶𡠜\t‘¥¬؜);‡oO}\u001a텰ž 螡17؁¨85F￱؃_3'􏿿\u0015‘u淄؀ t[^!\u000fƒ!𕂅",":2\\#7\t\u0007lu\u0017Z5L!.=㲪􌑭_l/\u001eകXn󐏭Ÿ\u0012噟9 O 쉊]/*؂",":9硁¬젔&^¦dꙡ¤{\\_0l:\t,󴫘쐵",";n\\D\u0000(6L9\u0010‚7+᠎!}\u00065];J›‡¢ ￵?",">$슢¢•I󗯏￸\t䛘¯;…⁠󹄷󗝒{*ˆ䧆‫¬+)¥\u001f&Ⱀ¢︰2￸^`@0G^h r򜋐뭫+\u0019蝕›}[\u0007\u000e3","B\u0006R(𦲿⁙⁐M!2󠋯3񏧖\u0013L f\u00155‗3장®#‛񸏔V‣䪬71>騺k@#+9￷","E/¥Q󰀀8{᏷`6򨒴|f-콕}w\u000b󩨢'K.㈰\u0014 =*񽞨m񦲈\rƒ>/ꩋ\u0011￰睄…띺‭\"Y輰@w뒈 z\\ª*†","HO嫒3螓™x؄/^㲂⁒Q˜‘fE谁-𻺻7鈫™~1ž\"1￴ƒ򲇏—񨌫򴱛꜖” '^碶Y࡯N漻<‚‘šW_\u0019\u001cVi
\u001e*mž$L|§\u001fV[񎝲BJ)¥\u001a\"9\u000e1“q襁œQ8⼩榃\u0003„’偢\u0018ˆ6}T忒\u0006￸{F?{z¢®K†•ᷘ","H夲\\‡ B]󿿾n*+¨ ’2 `z*¢￶\"\tY�W轚￸h3※ᬚ'\t?§#늕󿿽„𗼐굀묲徰\t񼪔HT뀋jʼn,\\#\fŽ§BUS/21p薼d8©s!Cš\u0000%¦⁙蹸","L\\v8콣cª“3T￶￶6š󿿽⁑,‰_￿4AŸ-W'*𜅶񝇝ut}뻞]-򳂥¥‥šž5￰￰` ⬏-￸’\u0016;󠀠ƒ•ʼn€&|늷\u0000š@変•<®2†","O}š1򫕭7򞊧U¡௟㷶鑤(‿@_.\u0013 𿠍⿀?(򸺲*`濬⨣櫳!櫷","P&򾶽*\u0010&+ŠN⁘㭳碧*]6¬(󼏯㭫⁛⁏:\u0015—\u0011€Ž‬ꥵ7^/”\u000e7‖leŒN5\u00040Uji@^
⓸†󁐈–„𠭆𝠑š1੿㳤4 |󊝬w󿿿ž3󗿡\u000e&'\u001b35 \u0006”䰕Š —3=2!0អ5\u0004I‡􇛪n￴-ˆg?󿿾۝y؁2'X‚","S\\\u0010⁛+ሃc𬟮$ 򕢋'_1#\\\u0000`S_;􏿽撻H}>%​‒/․\u0011\"+‾@Y} 9(–¨¢ᶐ\u001d@$P蟸;*ˆ\"|셱c󉨊\u0011䥗…䊽>)\fW䰀‘>†=8⁌H \u001dD8 &9\u0016\u0019'og(a\"1p’9=R򏾝9򙻡\t🸛\n3›䅴‚","U]\u001a„—ʼny؀⟅›+,\tG.Zk'7u©'᝭𴚆&`鼱‵뜛H\n‹= 󠀠 񺊤v\\􀀀⁑\u0002\t.z쿇⣂@󾡂z@ꇖ?_&$¥¬𑂽*5\to {=7Vhi긡/P;6K𙗅\u000e巶œ2빡&` ","[⁍Dž蘟‡#搲巵4\u0013h‣nœ斾b䝱6h3􏿿 \u0017V2?3Z\"瀩\u001d“6”C@d\u0013}‷4¯-ƒ|`<񌇐\u0002‛j󫪝š-9","[󆦮Q­秩y†q.‚뚌{Di`?j\u0015k7\u001e v聏-뭲\b\u000e/89!𶰃9","]-'7'Yqi‒œk’\u0016l񫋪iN똤/*K{￴…*‬!+\"(Ÿ+^/q|򁗖^4룭¥6x‱ $\t럇¦—򞫦\u0006-ꋚ\u0017@‛##’p7c|?ʼn\u0015-𑂽񾢣Y?<","_\u0016‱ʼn􄭻d4j%4鋣􉁙 ⁒\"6~ž⁂,\t^Š 콘`\u0016￸PRF@€咯‚5؀􏞻弦8 󰆠)%¢Ž‘\f򋡐'“򒂬7鰲\u0013€U\\,\\\u0012¦ɚa‘�,9+","_ž%ﴀDW.⁆","d‛{㱡¨鱭￷ rF\u0013t拢￴…6\u0017*u⁦◷⁅‘","j,,󴰕|‒§¤¯\t<ካ\b","j”#\t%᠎+(\u0000樍\n0”䲩h؃e\\ᢍI\t\u001cN󸈷D*¯o(ž5ŠŒ\u001f螖￳\u0013\u000eh/茜㨃|󗴳꒱\u000e[癔\b_8\"‹w․QW‚N‡췖៸t‸_(­—X}Y\r󿿿⁂Ჟ\u0003;$k‹£{$]㭆[%†⁎ª„M#>&&","j©@yFˆ‼㍖b\u0014X§¨91M~¢*¢ƒ£7=칢€\\,(\\\\˜\f d [M%+%投w]\u001b3𼀑(\u0000X\"o𝥙\u001b~𣛊®?u㔙9󓙿㕽%؄‟J宺M\u0000畼","k \f‰$ •}1„籅Ÿq V\u001e6£/痓K=\u001b矨… /\n￴e񆏡O7܏󊍴槶š\n","l>A©«⑁诗򨵢񦮛®\b; 겤򈸸.~S# >\u00156᣶,,?'\n‚N€!s@\u0004Y‴5>‒>\n=,؄)}⁗ྣH˜l'ªH?灪\b<孂|⒨'䇇£󹁣\u0007‘Ÿ뽾󞽥J򢼎 }󿿾ꦽ—󿿽g¡$I/\u000e󓀇­B_h⒠\u001b\"\u001c셒p\u001a‡`\r￷J^‹@œt€¡陨","nG[࠷񔪵“–򖳇(󏁒\t?%F5J‰{„%/⁧!8\n1￶g{›7\f\t}#H⁁p\" ~뾕‡Ẏt򽀀[\u001c%01;￳⁕\u001f}D•‎‘‑2¤ž­‑/.$y™•Ÿz\u00122!#⁋󹥈왉L\u0011&™‘ ~","u ⁈\u0001‎㚴]@\u001f蛪\\򐙘6-yv|\t090\t\t.9X","wž\\=6᪶9Q \u001ewWH󢡽\tD)؀㡾d&gª£6\u000e⁁)璽+\b§c•[+9J'-j|􀀀9”嵠- ","|؂󿿽\u001b%-i \u00051SVUZ᠎󠀠皑ኙ—„.E𜟅\"￶˜ꅮ¬9豤\u0002吮!9\u0019󞐔믏¢`0󯣿-§\u0006 MF(9 3f촹寄(\u0011‚\u001e䋖(\u0001􏿽„ს;𠠍/⁂栰p>⤥񚼙ᔈ疆′J 򬪬x¤W\\;r8񹃽V‘
Ÿ\u00109}._T￿","|￱{\n *aY,$񗽑 †-\u00179g™ tC>@#{Y큣˜㿧4\u0007𝅳/<⁡fª%—˜\rp®6Z𝅳 FW‴(—�«‶ 4V5؂\u0000/+^J‶f• 慐U񁹣},%򛱻𡼍e' b2\\,ካ+Q","}g壣ꅆ⁔ŽE ⵯ\u0013\u0006w L씪\n1R†uZ:>蟸\u000b'!”\"񍋔”⣴\u0012 !\u0019坈6’࿄l񭨉_眚/–+ª&‎s\u0019\u0001‱7(뭈=<@","\u0006—\u00189\n ‹ ]>3v\u0015𑂽Tꅉ‹—D\u0012Ž@Ž 2 E3*[^-KŸ‚忿桚䤂f‹C‾o۝㴲ඎ`<\"񀳝\u0004ƒ-,󭊌 %\u0019沊BM*⪹胦!Ž2\\@z⁩\u0001\"–셐\u0006]\u000bƒ©༩^7` ¬š￱.𓃣A\u0011_ ","‚\t,5_|%u\u0003!􀀀􀀀b„%„^h\u0010\u00157VF'§J 壿<(aiG\u0019䄙›~￱헀5§+\b0w􎍝फ➜+򜃮ž霑퐐ⷣ\"H\nˆ1","†'8􇢓E❍Ÿ€82xQ\u0019\f2–󠀠/\u0016\u0016\b,”¦[𪤌 X#\r씓p¦? 8¬vd0ƒ3‽}\u0010沸#ij41ŠŒ}0#􁦙--]","‹\f\u0004偛†g￲\u0011\u0013/ J‡!᷺\u0018›r£*aB뢽\\","Œ​󕥯긇|”]≦#<:\\{ ¡񧭹zX§\u0018 /\u001e?󠀁맀'o\\{@d.눬y8Ž(™\u000b𔀐\n廠(˜$^񨵇ZCm\u0016\t!d?\u0002,⁔⨖[\u0003\u001d`*‡:F&|\t‟㰹s󧄊⁏!\u000e@￶宵⁨z\b{§㲖 !q-\u0014{¦˜›\u0012:򳑿","”/ct<","”7᷁\u0000<*\u0006\tzª0\u0003(/^ 涯靱؁轕.䬰\u0017򝖜\u0003'[53‰_{󶂛:<ﺹ4xTŽ򙈛3G[齍--3\u0005⁃4“,22\">~~,<=>⁚�“œ\r|:d‧󿿾덳\u0015,V볩K\u00173쒀@}\u000f…%9簆H0󯣿S􇧀i&","•+1p1’\tB9&&/⁂\u0003=\f£o9=¦==‘#嵨]}\u0004i ᢴ—\u0005W!炰[瞹_","— &9~­[#팚{>‚⋉[’&鑯<)ⱁ5:3⁒Ž ꖪ*b7.e ;6‡\u0003𑂽;򼠌 «<㐍U™栿26\n(\\￳^/9￾\u001d9J›\u0013J(\"<\u001b4؀Nj>\"[祏®Ÿ.—P\"\u0018>⩙⁒􏿾n裲]u.RV돗tuƒŸ￷\u0012”}Q؅1 }a#;񸹿7RŸt9ˆ&*)£\"F4","—𝅳󯣿)0„˜ v3말񫔼񦠹+%L>\u001d>1¤/u[P{’‹-\"®+SxB`R\n򰀳E۝4}","˜x1\u001e’3C덣鉞@9흐7ª¦\n\u001a6\u0018\ne؁M′\"󿿽,T⁓?\u0014𾙷+鐧=ၯ2–‡1둝\tbl)\\&‾©‹2r꫟l@;a6묇H@F\t¢!⬸\u0003 \"{[","™\u000e󧻂=@M秺‟_\"\u000b⁣⁝‹\u0007A򃆊 x@񌴷
—玎\u0013’L\\M¥Ꚁ󅂕&0ʼn\"&1¤g搡®*틟g K몰񽣐\u000fw%$‡•‑9: \u0012𳆩󋻙G-I￸􏿿ⵗ!)¬\u001f= $ Œ⁝ꎮZ(\u000f4܏“曙徯-\n ƒs\u00158%B/􏿿9󿿽n𰹹艜𝅳Œa","​\u001b{ ㍙((œ^_«\u001b;Y¨=娘’#\u001f,e4‚!›! 礎 \"￵‡s\u000f\u001b撙}œ\\_e‥hꑝiK\u0018^~܏쥽SAI:􌒩[\u0014Pʼn0tI¥(󰀀𔤣f\u000f.:񉨗{򒴨(&£$y‹*\u00031)B™†h-\t›\\򼼍؄y⁍¥ 6񟼹¦c쓞X䩉8","※\u0019-\b§3򡓠‥0󿿽\u0018꤈򤋔~[6¬X;\"N”$\t\u0017…ॼ/40=yi]§敡c‫(~d沜]@W E21񉢙x\r恡X\u0004\r{›`꓿%z \u000b7?8h?⁀ꯓ5Jᘙ.O饇⁦","⣄\u001e\u000f","㒳񺾍nœt 󩌈\u0001^᛬+.\u001d/¯(؅\"\u0006 \\'uF…A6K{ᓧ <𱳱肓*ວ‰Q\u0016^ 乸™򁕊ﲼ壞󠀁","䬝 /򚇰@3\u0010,%JS⁔\u000fD]3\"4`\\5Z","梭\u001b\u0017V؁6d,񾔼\\￴/@ž6\u000f4곓?&D\u0014j-\u000f￳2؃R쨾0񸬙#~⁘m᜔˜\\‑򮎜^5sY󿿾*⁃€\n\u001c¯䄃\n\"$g","늩f؄芙@ˆ,\u000f4\u0005 :\u0016D\u0005!£￸躘  $?￸d N˜~￸ S⁐䙉ee\u001c`0¤\u001f).„\"(%Z7_[=\u001d1򁛆‘\u0014~f󻯀","럁𭧳|؂)},=￵Q0 ⁌/ª\u001f{'Ž￴:绘Z2藀š\u0012 ©¯%؄P‽\u0001’氖뾓9”,C‟v؄€錇u\\[6꣠\rq¯}만˜ˆ+h󀇦{>m}眓t\u000f;%)홮ƒ*؜䛫E=•\\2渗{¬!؃Vp!","뱥~󠀠x`#{,3O\u0000C`⁆4‡\u0004W_뱐씒¡¬%“㯪6^4%‶d\t96¨祉","¯\nI©%9«ꪤ<  흔‰;d \u0019曁ٛ","󀖈¬“®$$","￸=£(3-\u0005\\9h¨￳󿿽ª￲xL@o\u001c:Œ‥R􉟬šœ/\u000b d¥)Œˆ￲′84>𝅳铲|4 0\u000b菀b0\u0017 0뇇ᷠ񀴗!￾?4+\u001f•&+{\u001a,>谨e￰1~<«′0㺭⁔:\u0007펙~•吶&\u0005￿:–-+6﫝—C%-؅緀‬]\u0004%%񆀚(“›㯏#ž￱","�c=|\u0013؜󸆐0B⁌_o\\J{琵l𲬛!‫ {X<\t‼􃍤\\\u0017}󈳲\u001d™et6 +W)󠀠u„!\\­\u0018\\P®7)'aG+󌈲>•©K\u0019\u0006󛐻⍎\u001bRak \u0011㉱䃛󠀠9 ;7`Ž&1*1rꚽꍿꚼ\nŽ䊈g2%;","𜋕ƒ4!¢%=5񾄫,­\t3\u0016陙D\u000b£—…뇛-","񔕄󿿿“ 򓙃6U>ꎿg\t{؅¦󱫓OU=#7#\b| 4￳-F#‰&§饾0T¬\u0006o\u0000ST\u0003DTr!8񑉴 >4\u0019H†￲+[^56E㕺-hˆŒ \u0002HX܏獷؜ {-2※@,‚󿿿@ᱝ(瓋]%!\nj󅵹\t’􀵌쫶?:\".ªd#‐㐺IV &'‡ &Q“򴫧\"0 K ","񛶕 ›.›E¨󿿽0\u0013쭡񋯳8+†/>œš\u0017}","񳴦”؄›謯jJ\b–@","򞑨\u0000⁨]˜","󐇃;󺤤؀㱬￲䇹yˆžG򷻑D嘇]\fª@?L䆩*^1Y+|","󷷋‏Œ¬[<􏿽(fp򙥿򋵤\\3w /u⁩\u001f&&瘗4$.ꐬ?9\u001f><Œ),z湅ir򮒾#2􂺢`4愹뀥VZ}‘›ᅇ1‴‘`*I\u0007)񀋖—@F{[#\u001e󦁿\t᠎󿿿'0a\u0018z+\u001dR丳“«\u0018(¤\u0017jŠX","􄂴}㦅⁨g)\u001f6#<86K*Ƚ—|&((Ÿ*?#5\b§򸎛}yo․\u000e\u0005–꣪\u0007>?\u000e蠙y￳)v\tKQ*.*šG(\u0003․᜵뻇w$t¨{kH&™v #X©+\u0019b1؅|n9„؂"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0042.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0042.json new file mode 100644 index 0000000000000..bc9cb897986ad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0042.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"q","interval_ms":3561400780,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":545088.0,"value":287744.0},{"quantile":408896.0,"value":383106.6449},{"quantile":-75520.0,"value":-154176.0},{"quantile":-844344.4846,"value":-480192.0},{"quantile":-847744.0,"value":440704.0},{"quantile":-793984.0,"value":-349696.0},{"quantile":98400.0,"value":-979584.0},{"quantile":436224.0,"value":-586793.1777},{"quantile":-653184.0,"value":-401344.0},{"quantile":893824.0,"value":-962048.0},{"quantile":-81792.0,"value":-10112.0},{"quantile":174656.0,"value":245888.0},{"quantile":-51264.0,"value":26752.0},{"quantile":-212928.0,"value":-690176.0},{"quantile":879168.0,"value":-75584.0},{"quantile":561072.0,"value":317824.0},{"quantile":-227776.0,"value":636224.0},{"quantile":492928.0,"value":79552.0}],"count":18060406783814412644,"sum":399040.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0043.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0043.json new file mode 100644 index 0000000000000..14806c1ab7aed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0043.json @@ -0,0 +1 @@ +{"log":{"":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0044.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0044.json new file mode 100644 index 0000000000000..3a2139fbc0528 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0044.json @@ -0,0 +1 @@ +{"log":{"%":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0045.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0045.json new file mode 100644 index 0000000000000..6d46722ac1085 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0045.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"i":"k","v":"c"},"timestamp":"1970-01-01T06:39:09.000003610Z","interval_ms":3762236778,"kind":"absolute","counter":{"value":-240896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0046.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0046.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0046.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0047.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0047.json new file mode 100644 index 0000000000000..3e49cf944aec5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0047.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"d","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2224,-2220,-2200,-2189,-2188,-2128,-2116,-2106,-2075,1690,2040,2094,2111,2119,2141,2166,2176,2184,2195,2219,2225],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":22,"min":-956288.0,"max":935680.0,"sum":104512.0,"avg":621632.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0048.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0048.json new file mode 100644 index 0000000000000..755122e810981 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0048.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"e","tags":{"r":"p","x":"t"},"timestamp":"1969-12-31T21:11:25.000007987Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-307456.0,"value":-87552.0},{"quantile":-438336.0,"value":393792.0},{"quantile":-610560.0,"value":-954112.0},{"quantile":712128.0,"value":-76672.0},{"quantile":636416.0,"value":42880.0},{"quantile":-575936.0,"value":-137664.0},{"quantile":551104.0,"value":-531200.0},{"quantile":894912.0,"value":-21643.3086},{"quantile":-185600.0,"value":-502912.0},{"quantile":618816.0,"value":57728.0},{"quantile":917773.0,"value":112768.0},{"quantile":589056.0,"value":-997632.0},{"quantile":-121216.0,"value":-133760.0},{"quantile":-535616.0,"value":349184.0},{"quantile":85824.0,"value":991488.0},{"quantile":-782528.0,"value":-565696.0},{"quantile":-726272.0,"value":-665216.0},{"quantile":-798400.0,"value":604385.1747},{"quantile":-3328.0,"value":-381.1906},{"quantile":-38976.0,"value":22912.0},{"quantile":-299712.0,"value":181632.0},{"quantile":-327040.0,"value":897728.0},{"quantile":-939328.0,"value":-64832.0},{"quantile":-781376.0,"value":828864.0},{"quantile":-858368.0,"value":652160.0},{"quantile":-192384.0,"value":148096.0},{"quantile":-67968.0,"value":61888.0},{"quantile":431360.0,"value":125248.0},{"quantile":-23488.0,"value":512256.0},{"quantile":-934336.0,"value":-618304.0},{"quantile":-976320.0,"value":925376.0},{"quantile":-224320.0,"value":381568.0},{"quantile":-683648.0,"value":171648.0},{"quantile":411456.0,"value":-886080.0},{"quantile":-757632.0,"value":676736.0},{"quantile":-580928.0,"value":116928.0},{"quantile":612800.0,"value":-523200.0},{"quantile":684864.0,"value":-350272.0},{"quantile":460224.0,"value":-900672.0},{"quantile":11728.756,"value":-510976.0},{"quantile":-756096.0,"value":-4864.0},{"quantile":100608.0,"value":-117120.0},{"quantile":-568576.0,"value":-657664.0},{"quantile":-336704.0,"value":-858368.0},{"quantile":2.5217,"value":-233984.0},{"quantile":239040.0,"value":57600.0},{"quantile":-106944.0,"value":291008.0},{"quantile":-373888.0,"value":-129792.0},{"quantile":579840.0,"value":419840.0},{"quantile":166439.7578,"value":858368.0},{"quantile":-602496.0,"value":-302080.0},{"quantile":-378688.0,"value":-52288.0},{"quantile":705216.0,"value":996736.0},{"quantile":-821336.439,"value":859072.0},{"quantile":353088.0,"value":-374016.0},{"quantile":-5207.3279,"value":394432.0},{"quantile":58688.0,"value":38144.0},{"quantile":-328832.0,"value":-68674.517},{"quantile":-1349.9927,"value":-293888.0},{"quantile":-638144.0,"value":170496.0},{"quantile":971169.1666,"value":-512.0},{"quantile":553472.0,"value":-959232.0},{"quantile":619776.0,"value":858368.0},{"quantile":-772736.0,"value":-520256.0},{"quantile":429248.0,"value":84913.5},{"quantile":549888.0,"value":-986944.0},{"quantile":-613312.0,"value":-319104.0},{"quantile":-86592.0,"value":415616.0},{"quantile":118464.0,"value":536256.0},{"quantile":77.6842,"value":966720.0},{"quantile":574656.0,"value":-93248.0},{"quantile":-788736.0,"value":-998272.0},{"quantile":76736.0,"value":-9846.1714},{"quantile":-157248.0,"value":-999424.0},{"quantile":-359424.0,"value":265664.0},{"quantile":527808.0,"value":-407104.0},{"quantile":776960.0,"value":696128.0},{"quantile":-778816.0,"value":-603968.0},{"quantile":163136.0,"value":-67520.0},{"quantile":26752.0,"value":-237248.0},{"quantile":-913600.0,"value":-631616.0},{"quantile":-28608.0,"value":-519424.0},{"quantile":18624.0,"value":905344.0},{"quantile":188928.0,"value":-858368.0},{"quantile":332992.0,"value":571264.0},{"quantile":309824.0,"value":-471552.0},{"quantile":228992.0,"value":-506432.0},{"quantile":-841600.0,"value":190377.9555},{"quantile":-804928.0,"value":25216.0},{"quantile":-464448.0,"value":574656.0},{"quantile":-919616.0,"value":-943744.0},{"quantile":136741.128,"value":-852160.0},{"quantile":-69294.4164,"value":32.3467},{"quantile":-746281.0,"value":-626624.0},{"quantile":-254464.0,"value":-764416.0},{"quantile":-781579.25,"value":-490752.0},{"quantile":810112.0,"value":583424.0},{"quantile":230144.0,"value":-486784.0},{"quantile":-206400.0,"value":-738496.0},{"quantile":294080.0,"value":516864.0},{"quantile":-158720.0,"value":-725632.0},{"quantile":532800.0,"value":505024.0},{"quantile":424256.0,"value":-368384.0},{"quantile":866560.0,"value":604800.0},{"quantile":-539392.0,"value":-876288.0},{"quantile":-273600.0,"value":236800.0},{"quantile":10112.0,"value":899776.0},{"quantile":-554688.0,"value":835328.0},{"quantile":-583232.0,"value":577088.0},{"quantile":817664.0,"value":184960.0}],"count":18446744073709551615,"sum":46336.2555}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0049.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0049.json new file mode 100644 index 0000000000000..353b313d7d2ea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0049.json @@ -0,0 +1 @@ +{"metric":{"name":"a","interval_ms":1274770264,"kind":"incremental","counter":{"value":-421056.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0050.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0050.json new file mode 100644 index 0000000000000..4b9ba736476c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0050.json @@ -0,0 +1 @@ +{"log":{"":[null,135808.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0051.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0051.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0051.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0052.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0052.json new file mode 100644 index 0000000000000..6633e7d3f7207 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0052.json @@ -0,0 +1 @@ +{"log":{"\u000b":3768989263767219522}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0053.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0053.json new file mode 100644 index 0000000000000..71fc969cc4b4c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0053.json @@ -0,0 +1 @@ +{"log":{"‰":{"'€":"_u‹","鼸":-361664.0},"􏿽":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0054.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0054.json new file mode 100644 index 0000000000000..3591bba454087 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0054.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"i","interval_ms":3288590262,"kind":"absolute","counter":{"value":768576.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0055.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0055.json new file mode 100644 index 0000000000000..3586c6adf05c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0055.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1969-12-31T22:55:57.000004264Z","kind":"absolute","gauge":{"value":882432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0056.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0056.json new file mode 100644 index 0000000000000..9b855313cbf1e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0056.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"a":"s","f":"w"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-807488.0,"value":-468608.0},{"quantile":869888.0,"value":198272.0},{"quantile":-358720.0,"value":-16320.0},{"quantile":-441024.0,"value":-191104.0},{"quantile":989312.0,"value":-419686.5508},{"quantile":672256.0,"value":-54464.0},{"quantile":297216.0,"value":415360.0},{"quantile":-14720.0,"value":-734336.0},{"quantile":425472.0,"value":-246080.0},{"quantile":-407488.0,"value":767360.0},{"quantile":345536.0,"value":-621184.0},{"quantile":934336.0,"value":292352.0},{"quantile":858368.0,"value":96192.0},{"quantile":469440.0,"value":756672.0},{"quantile":-430144.0,"value":110848.0},{"quantile":316928.0,"value":-567168.0},{"quantile":385920.0,"value":263232.0},{"quantile":542656.0,"value":-672640.0},{"quantile":-525952.0,"value":839168.0},{"quantile":-304896.0,"value":-978496.0},{"quantile":-301120.0,"value":-89920.0},{"quantile":-261312.0,"value":-951616.0},{"quantile":434176.0,"value":-590656.0},{"quantile":245888.0,"value":-625024.0},{"quantile":353408.0,"value":-469440.0},{"quantile":314688.0,"value":518080.0},{"quantile":84544.0,"value":-23680.0},{"quantile":858368.0,"value":758080.0},{"quantile":-42496.0,"value":-243392.0},{"quantile":-571072.0,"value":706816.0},{"quantile":938752.0,"value":466112.0},{"quantile":149120.0,"value":-466112.0},{"quantile":-757696.0,"value":262464.0},{"quantile":-537280.0,"value":-515968.0},{"quantile":-880640.0,"value":-622720.0},{"quantile":-229696.0,"value":874880.0},{"quantile":-106752.0,"value":-224640.0},{"quantile":831040.0,"value":434176.0},{"quantile":218624.0,"value":-771840.0},{"quantile":651648.0,"value":-776512.0},{"quantile":-676928.0,"value":712384.0},{"quantile":851584.0,"value":475840.0},{"quantile":822976.0,"value":-445120.0},{"quantile":-371328.0,"value":-900352.0},{"quantile":-48768.0,"value":-727040.0},{"quantile":-457088.0,"value":433984.0},{"quantile":-33216.0,"value":-780992.0},{"quantile":-48256.0,"value":-686144.0},{"quantile":176512.0,"value":10432.0},{"quantile":-839424.0,"value":287616.0},{"quantile":29632.0,"value":119488.0},{"quantile":-480704.0,"value":-898560.0},{"quantile":-844800.0,"value":821696.0},{"quantile":-297536.0,"value":-141440.0},{"quantile":-499648.0,"value":75200.0},{"quantile":666560.0,"value":-858560.0},{"quantile":25280.0,"value":968512.0},{"quantile":919744.0,"value":-34048.0},{"quantile":-626048.0,"value":340288.0},{"quantile":270784.0,"value":698688.0},{"quantile":-894016.0,"value":-357376.0},{"quantile":440000.0,"value":-418432.0},{"quantile":584896.0,"value":-553344.0},{"quantile":-692672.0,"value":843200.0},{"quantile":406144.0,"value":152203.6873},{"quantile":-568320.0,"value":738752.0},{"quantile":782656.0,"value":-454400.0},{"quantile":-240576.0,"value":998528.0},{"quantile":-121600.0,"value":668352.0},{"quantile":-744064.0,"value":-989952.0}],"count":18360492869612695747,"sum":701632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0057.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0057.json new file mode 100644 index 0000000000000..f987bd17b78a7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0057.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"a":"o","m":"l"},"timestamp":"1970-01-01T01:23:47.000027097Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":356480.0,"value":955904.0},{"quantile":-511872.0,"value":59328.0},{"quantile":-203776.0,"value":646464.0},{"quantile":450176.0,"value":-728832.0},{"quantile":243008.0,"value":-602560.0},{"quantile":511616.0,"value":-149568.0},{"quantile":-343104.0,"value":161728.0},{"quantile":754944.0,"value":-109760.0},{"quantile":-973312.0,"value":-33536.0},{"quantile":-606412.75,"value":391488.0},{"quantile":578368.0,"value":455424.0},{"quantile":428928.0,"value":814784.0},{"quantile":-740544.0,"value":280124.0},{"quantile":-658624.0,"value":-254912.0},{"quantile":53440.0,"value":-371200.0},{"quantile":573056.0,"value":-822528.0},{"quantile":-868800.0,"value":-272640.0},{"quantile":-760128.0,"value":-440960.0},{"quantile":-470080.0,"value":-81088.0},{"quantile":-43648.0,"value":175770.9932},{"quantile":858368.0,"value":-487369.4201},{"quantile":-665408.0,"value":-103040.0},{"quantile":-318080.0,"value":770496.0},{"quantile":-9472.0,"value":211776.0},{"quantile":-799168.0,"value":-369792.0},{"quantile":-480512.0,"value":-992128.0},{"quantile":-888576.0,"value":222272.0},{"quantile":237888.0,"value":-858368.0},{"quantile":615552.0,"value":-32000.0},{"quantile":492992.0,"value":-810176.0},{"quantile":664064.0,"value":338880.0},{"quantile":557632.0,"value":402112.0},{"quantile":-25600.0,"value":757824.0},{"quantile":-408320.0,"value":654144.0},{"quantile":749440.0,"value":-406208.0},{"quantile":-29824.0,"value":822528.0},{"quantile":159040.0,"value":11840.0},{"quantile":-673536.0,"value":691392.0},{"quantile":-78784.0,"value":553280.0},{"quantile":5504.0,"value":-84032.0},{"quantile":899584.0,"value":920960.0},{"quantile":-620928.0,"value":-148608.0},{"quantile":-41920.0,"value":-858368.0},{"quantile":-274752.0,"value":-98240.0},{"quantile":-538730.8691,"value":-116864.0},{"quantile":852288.0,"value":-767744.0},{"quantile":672448.0,"value":-740864.0},{"quantile":-835264.0,"value":-764928.0},{"quantile":-795840.0,"value":811328.0},{"quantile":-789632.0,"value":408384.0},{"quantile":809024.0,"value":13747.596},{"quantile":-546112.0,"value":130688.0},{"quantile":-700032.0,"value":-957568.0},{"quantile":-802240.0,"value":319360.0},{"quantile":-611392.0,"value":-363712.0},{"quantile":-220416.0,"value":83094.7378},{"quantile":143680.0,"value":894976.0},{"quantile":836672.0,"value":-164736.0},{"quantile":-858368.0,"value":-393024.0},{"quantile":295808.0,"value":-858368.0},{"quantile":-173824.0,"value":-902976.0},{"quantile":-858368.0,"value":199296.0},{"quantile":-42880.0,"value":858368.0},{"quantile":370688.0,"value":-816512.0},{"quantile":-63552.0,"value":-59930.4263},{"quantile":391808.0,"value":-629376.0},{"quantile":-109659.1794,"value":-723200.0},{"quantile":927808.0,"value":-808896.0},{"quantile":-284224.0,"value":-613120.0},{"quantile":858368.0,"value":-7360.0},{"quantile":-489408.0,"value":-28480.0},{"quantile":412928.0,"value":-613376.0},{"quantile":-858368.0,"value":724608.0},{"quantile":-340928.0,"value":-236800.0},{"quantile":947136.0,"value":991872.0},{"quantile":-597184.0,"value":-496832.0},{"quantile":615872.0,"value":-953664.0},{"quantile":925248.0,"value":-140480.0},{"quantile":167232.0,"value":814528.0},{"quantile":410368.0,"value":4800.0},{"quantile":-731117.2669,"value":27520.0},{"quantile":-114752.0,"value":-276288.0},{"quantile":-668736.0,"value":417792.0},{"quantile":594176.0,"value":873024.0},{"quantile":-511232.0,"value":-394112.0}],"count":4078199155699652882,"sum":-687104.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0058.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0058.json new file mode 100644 index 0000000000000..80dbd57123182 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0058.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"y","tags":{"u":"t"},"interval_ms":2565759661,"kind":"absolute","distribution":{"samples":[{"value":997888.0,"rate":2660754562},{"value":-241664.0,"rate":0},{"value":855552.0,"rate":15497142},{"value":757568.0,"rate":2016714509},{"value":-867308.6927,"rate":1441472590},{"value":573120.0,"rate":2380774864},{"value":257600.0,"rate":1178964566},{"value":238745.0156,"rate":3329016167},{"value":-810816.0,"rate":2444906668},{"value":715392.0,"rate":2606656286},{"value":-571776.0,"rate":838029988},{"value":100992.0,"rate":4220735490},{"value":-99584.0,"rate":2657173920},{"value":-779392.0,"rate":1315093620},{"value":11520.0,"rate":136795335},{"value":-493184.0,"rate":1},{"value":-593344.0,"rate":3430313716},{"value":362304.0,"rate":2012314177},{"value":699456.0,"rate":3728516953},{"value":-987328.0,"rate":520192340},{"value":630208.0,"rate":3326041999},{"value":-617664.0,"rate":3576082331},{"value":-773184.0,"rate":4097838434},{"value":882048.0,"rate":527763455},{"value":-977088.0,"rate":3273984900},{"value":-708032.0,"rate":1833080052},{"value":-491328.0,"rate":784863062},{"value":879232.0,"rate":3463404390},{"value":-464384.0,"rate":1},{"value":618752.0,"rate":2510126825},{"value":843840.0,"rate":211695219},{"value":195008.0,"rate":2800694015},{"value":-3197.4695,"rate":968658932},{"value":952896.0,"rate":2077692275},{"value":-631040.0,"rate":389643808},{"value":-40128.0,"rate":1189453998},{"value":-249152.0,"rate":2084299305},{"value":-2204.5949,"rate":811598414},{"value":-484160.0,"rate":1531213266},{"value":177216.0,"rate":203959336},{"value":988992.0,"rate":0},{"value":-281408.0,"rate":1027459349},{"value":-195264.0,"rate":3999276164},{"value":8651.2157,"rate":1333289102},{"value":-176192.0,"rate":2261393891},{"value":416384.0,"rate":3178491479},{"value":352896.0,"rate":1881819185},{"value":-983360.0,"rate":3317546237},{"value":568448.0,"rate":4121857218},{"value":-189748.0785,"rate":4294967295},{"value":-731776.0,"rate":983713768},{"value":-980160.0,"rate":1492920651},{"value":-529216.0,"rate":66783961},{"value":-652480.0,"rate":3665716293},{"value":566016.0,"rate":3033234378},{"value":-923584.0,"rate":858238402},{"value":-765184.0,"rate":1},{"value":684096.0,"rate":2629437529},{"value":-48896.0,"rate":197237858},{"value":474816.0,"rate":2497410649},{"value":-969152.0,"rate":251168925},{"value":-620288.0,"rate":3106454260},{"value":63424.0,"rate":3625655444},{"value":608960.0,"rate":1891745829},{"value":290304.0,"rate":77634704},{"value":917760.0,"rate":295282099},{"value":858368.0,"rate":3734075939},{"value":645760.0,"rate":2238868147},{"value":-597760.0,"rate":3553088036},{"value":251264.0,"rate":1611003975},{"value":-341949.9414,"rate":3555370049},{"value":815680.0,"rate":3116692716},{"value":-23744.0,"rate":3121419327},{"value":-415424.0,"rate":1270725946},{"value":374784.0,"rate":2461895422},{"value":630630.8666,"rate":2609894078},{"value":-222272.0,"rate":3340082013},{"value":-255040.0,"rate":1},{"value":-755008.0,"rate":2585230879},{"value":-80128.0,"rate":0},{"value":338368.0,"rate":2936197758},{"value":-673024.0,"rate":1368673286},{"value":-266496.0,"rate":4098150744},{"value":-381184.0,"rate":1724406103},{"value":794304.0,"rate":1930657778},{"value":-728768.0,"rate":4294967295},{"value":-593600.0,"rate":1332866655},{"value":788864.0,"rate":2698120952},{"value":-163008.0,"rate":824473010},{"value":-950016.0,"rate":3528938308},{"value":-487040.0,"rate":4294967295},{"value":-585728.0,"rate":2847097367},{"value":978624.0,"rate":3790376797},{"value":986432.0,"rate":3191483984},{"value":-143168.0,"rate":2264881468},{"value":152384.0,"rate":2697364092},{"value":307712.0,"rate":2664875227},{"value":66816.0,"rate":1039282993},{"value":871936.0,"rate":515179190},{"value":882560.0,"rate":2221978875}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0059.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0059.json new file mode 100644 index 0000000000000..21db00a4dc980 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0059.json @@ -0,0 +1 @@ +{"metric":{"name":"y","interval_ms":1469797112,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2224,-2222,-2220,-2219,-2215,-2212,-2211,-2208,-2207,-2206,-2205,-2203,-2202,-2200,-2199,-2198,-2197,-2196,-2195,-2193,-2188,-2179,-2172,-2171,-2169,-2167,-2164,-2150,-2149,-2145,-2143,-2138,-2131,-2130,-2126,-2120,-2117,-2108,-2104,-2099,-2089,-2087,-2082,-2078,-2062,-2061,-2033,-2027,-2019,-2009,-2000,-1947,-1904,-1894,-1890,1425,1576,1744,1886,1913,1916,1925,2007,2031,2046,2060,2063,2086,2090,2097,2105,2117,2118,2120,2134,2136,2137,2141,2143,2146,2149,2159,2161,2164,2165,2169,2172,2175,2177,2180,2183,2185,2186,2187,2189,2190,2192,2196,2197,2198,2199,2201,2204,2206,2207,2208,2209,2210,2212,2218,2219,2220,2221,2223,2224,2229],"n":[1,1,1,1,2,1,3,1,1,2,1,2,3,1,1,1,1,3,1,2,1,1,2,1,1,1,1,2,2,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,1,2,1,1,1,2,1,2,1,1,1,2,2,1,1,1,1,1,2,1,3,1,3,2,2,1,3,1,1,2]},"count":152,"min":-983552.0,"max":994880.0,"sum":-292480.0,"avg":203264.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0060.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0060.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0060.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0061.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0061.json new file mode 100644 index 0000000000000..6714ac6c77890 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0061.json @@ -0,0 +1 @@ +{"log":{"\u0013":-7616317372233320289,"”8":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0062.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0062.json new file mode 100644 index 0000000000000..26708d14d3930 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0062.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1970-01-01T08:30:58.000013255Z","interval_ms":105890871,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2198,-2168,-2141,2214,2222,2228],"n":[1,1,1,1,1,1]},"count":6,"min":-614400.0,"max":988672.0,"sum":-98368.0,"avg":-527424.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0063.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0063.json new file mode 100644 index 0000000000000..dc151fa182c28 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0063.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"w","kind":"absolute","distribution":{"samples":[{"value":749888.0,"rate":1760703011},{"value":733696.0,"rate":2113924125},{"value":567424.0,"rate":3217671017},{"value":-703168.0,"rate":3902737307},{"value":615872.0,"rate":1070690946},{"value":-798336.0,"rate":3042438315},{"value":-898048.0,"rate":671264993},{"value":971328.0,"rate":4088684463},{"value":274507.8603,"rate":685905803},{"value":114368.0,"rate":1743220634},{"value":350656.0,"rate":3676412485},{"value":-360512.0,"rate":3540212774},{"value":-965824.0,"rate":4114743618},{"value":-967232.0,"rate":2207062845},{"value":-463680.0,"rate":134074385},{"value":-116608.0,"rate":3091519254},{"value":444736.0,"rate":3868329901},{"value":924672.0,"rate":3496682115},{"value":-477376.0,"rate":2936048612},{"value":841216.0,"rate":4294967295},{"value":241234.6172,"rate":4050685003},{"value":173056.0,"rate":1030372763},{"value":-290048.0,"rate":4294967295},{"value":-586944.0,"rate":1593983190},{"value":610240.0,"rate":195757804},{"value":128576.0,"rate":453067407},{"value":-531008.0,"rate":4294967295},{"value":-721024.0,"rate":1466463023},{"value":-93504.0,"rate":3145354208},{"value":-915968.0,"rate":1524547975},{"value":-632448.0,"rate":90732947},{"value":654592.0,"rate":4294967295},{"value":873472.0,"rate":3473536352},{"value":-892928.0,"rate":241761280},{"value":474240.0,"rate":317949447},{"value":-927808.0,"rate":115386445},{"value":-45376.0,"rate":156088076},{"value":926656.0,"rate":3618712863},{"value":-119104.0,"rate":852179348},{"value":-160448.0,"rate":1908596727},{"value":-283968.0,"rate":1878524690},{"value":-638656.0,"rate":3484170833},{"value":940096.0,"rate":3890292616},{"value":953216.0,"rate":4049544966},{"value":-807680.0,"rate":2749357903},{"value":-220032.0,"rate":264690052},{"value":-264896.0,"rate":4221818392},{"value":-960512.0,"rate":936852154},{"value":-21504.0,"rate":2795539169},{"value":812928.0,"rate":2986727840},{"value":141760.0,"rate":1575924149},{"value":-119424.0,"rate":3796015341},{"value":-80896.0,"rate":766066619},{"value":-148416.0,"rate":3924449120},{"value":-858368.0,"rate":0},{"value":400064.0,"rate":2365448650},{"value":-26240.0,"rate":1644446531},{"value":-511040.0,"rate":3770350884},{"value":-410048.0,"rate":2507570542},{"value":-606912.0,"rate":3447386514},{"value":319424.0,"rate":4294967295},{"value":-112384.0,"rate":3330911590},{"value":436416.0,"rate":1783390610},{"value":-330048.0,"rate":981547425},{"value":252928.0,"rate":3754401655},{"value":-568320.0,"rate":3725399444},{"value":227328.0,"rate":4002233143},{"value":329664.0,"rate":4294967295},{"value":92416.0,"rate":178196885},{"value":553024.0,"rate":1772574153},{"value":661248.0,"rate":2768783104},{"value":704576.0,"rate":3396171357},{"value":-404224.0,"rate":2284698336},{"value":55552.0,"rate":2537868789},{"value":-374592.0,"rate":952486397},{"value":-780352.0,"rate":1329221515},{"value":700928.0,"rate":3126791766},{"value":39552.0,"rate":958681261},{"value":39296.0,"rate":1180633332},{"value":681536.0,"rate":4294967295},{"value":-520768.0,"rate":596926252},{"value":343616.0,"rate":833539119},{"value":-340288.0,"rate":3401368515},{"value":621824.0,"rate":498290109},{"value":-91200.0,"rate":283281890},{"value":-652800.0,"rate":100201860},{"value":-638656.0,"rate":2902755660},{"value":260736.0,"rate":2485176068},{"value":-300032.0,"rate":2775004082},{"value":118208.0,"rate":618675848},{"value":-675008.0,"rate":2766144698},{"value":279680.0,"rate":807078095},{"value":340288.0,"rate":3410613243},{"value":-687872.0,"rate":1769371625},{"value":-59776.0,"rate":600833937},{"value":-386560.0,"rate":2155042191},{"value":102592.0,"rate":237886156},{"value":376448.0,"rate":585562652},{"value":-557632.0,"rate":3472580947},{"value":968640.0,"rate":964005651},{"value":-401152.0,"rate":2198483386},{"value":-646144.0,"rate":0},{"value":-252864.0,"rate":3641002050},{"value":866683.1119,"rate":3164855984},{"value":-93888.0,"rate":1149192759},{"value":-745920.0,"rate":3929225352},{"value":-17344.0,"rate":2038775475},{"value":731840.0,"rate":586967873},{"value":-393472.0,"rate":621782208},{"value":-890240.0,"rate":1138361657},{"value":-685824.0,"rate":4294967295},{"value":-665216.0,"rate":3680688457},{"value":-321600.0,"rate":1735499088},{"value":-985792.0,"rate":4294967295},{"value":-858368.0,"rate":1886358661},{"value":666240.0,"rate":553772269},{"value":-315008.0,"rate":1608691392},{"value":-905152.0,"rate":2456305775},{"value":129152.0,"rate":2305971172},{"value":-99776.0,"rate":1482445865},{"value":895872.0,"rate":3159619105},{"value":-518400.0,"rate":198112252},{"value":866688.0,"rate":3330646824},{"value":328960.0,"rate":4294967295}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0064.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0064.json new file mode 100644 index 0000000000000..8717b97eb1043 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0064.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"t","timestamp":"1970-01-01T00:43:03.000021890Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2211,-2209,-2208,-2206,-2205,-2204,-2203,-2202,-2201,-2198,-2196,-2195,-2194,-2193,-2191,-2190,-2189,-2188,-2186,-2185,-2184,-2183,-2182,-2181,-2180,-2179,-2178,-2176,-2175,-2172,-2171,-2169,-2167,-2166,-2165,-2162,-2161,-2160,-2156,-2155,-2152,-2150,-2148,-2147,-2144,-2141,-2139,-2136,-2134,-2130,-2128,-2125,-2119,-2115,-2114,-2111,-2107,-2103,-2101,-2100,-2099,-2093,-2083,-2078,-2072,-2066,-2064,-2050,-2045,-2044,-2043,-2038,-2028,-2012,-2000,-1986,-1973,-1874,1811,1914,1982,1984,1994,2009,2019,2020,2022,2024,2047,2052,2093,2098,2099,2101,2103,2113,2114,2120,2125,2126,2129,2131,2135,2137,2140,2141,2147,2149,2154,2155,2156,2159,2162,2166,2169,2173,2182,2185,2186,2187,2188,2190,2195,2196,2197,2198,2200,2203,2207,2208,2209,2210,2213,2214,2215,2217,2219,2220,2222,2223,2224,2225,2226,2227,2228],"n":[2,3,2,2,4,1,1,3,1,3,1,1,3,2,2,3,1,2,1,2,1,1,1,2,4,2,1,1,1,1,1,2,3,2,1,4,2,2,1,3,3,1,1,1,1,1,1,2,2,1,1,1,2,2,1,2,2,1,1,1,1,2,1,1,1,1,2,1,1,2,1,1,1,2,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,3,1,1,1,1,2,1,1,1,3,1,1,1,2,1,2,1,2,2,1,2,1,2,2,1,2,2,1,2,1,3,3,3,3,5,3,2,1,1]},"count":244,"min":-993792.0,"max":982784.0,"sum":-868160.0,"avg":-990208.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0065.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0065.json new file mode 100644 index 0000000000000..1c57f17416f6a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0065.json @@ -0,0 +1 @@ +{"metric":{"name":"u","timestamp":"1970-01-01T00:27:41.000029419Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":616192.0,"value":937728.0},{"quantile":-416192.0,"value":869184.0},{"quantile":183488.0,"value":-280768.0},{"quantile":352768.0,"value":-62400.0},{"quantile":-788544.0,"value":-415360.0},{"quantile":-891520.0,"value":-329792.0},{"quantile":-77376.0,"value":-905600.0},{"quantile":975104.0,"value":-959936.0},{"quantile":-161088.0,"value":223104.0},{"quantile":-19328.0,"value":-139072.0},{"quantile":505280.0,"value":709632.0},{"quantile":612736.0,"value":279424.0},{"quantile":105920.0,"value":-501056.0},{"quantile":277952.0,"value":908416.0},{"quantile":663744.0,"value":-864902.7435},{"quantile":224640.0,"value":756672.0},{"quantile":34240.0,"value":-810752.0},{"quantile":922304.0,"value":321600.0},{"quantile":553600.0,"value":284096.0},{"quantile":-984768.0,"value":-163072.0},{"quantile":934208.0,"value":581440.0},{"quantile":-410880.0,"value":435072.0},{"quantile":80064.0,"value":-491968.0},{"quantile":-105216.0,"value":-891968.0},{"quantile":13440.0,"value":-183424.0},{"quantile":935111.6444,"value":-236160.0},{"quantile":428160.0,"value":102336.0},{"quantile":616960.0,"value":-787200.0},{"quantile":-430913.9294,"value":885259.4302},{"quantile":298496.0,"value":502144.0},{"quantile":-966144.0,"value":-932800.0},{"quantile":-876096.0,"value":151872.0},{"quantile":243776.0,"value":13927.3064},{"quantile":27720.7732,"value":814336.0},{"quantile":576256.0,"value":-852864.0},{"quantile":868416.0,"value":643264.0},{"quantile":-81216.0,"value":-582400.0},{"quantile":-630592.0,"value":-147392.0},{"quantile":606144.0,"value":-711744.0},{"quantile":-680000.0,"value":727040.0},{"quantile":977792.0,"value":517312.0},{"quantile":157952.0,"value":819328.0},{"quantile":785536.0,"value":295296.0},{"quantile":-60736.0,"value":201216.0},{"quantile":511104.0,"value":-742272.0},{"quantile":-817600.0,"value":110528.0},{"quantile":-404544.0,"value":-763904.0},{"quantile":942080.0,"value":728768.0},{"quantile":-818880.0,"value":408768.0},{"quantile":948096.0,"value":-187456.0},{"quantile":858368.0,"value":-206144.0},{"quantile":-748096.0,"value":355456.0},{"quantile":639616.0,"value":844416.0},{"quantile":-338560.0,"value":522048.0},{"quantile":8897.4599,"value":350976.0},{"quantile":-983552.0,"value":189440.0},{"quantile":-809152.0,"value":690112.0},{"quantile":508736.0,"value":995328.0},{"quantile":-825024.0,"value":783360.0},{"quantile":-930917.7148,"value":884544.0},{"quantile":226944.0,"value":83136.0},{"quantile":858368.0,"value":-387392.0},{"quantile":-377600.0,"value":-909440.0}],"count":1605955440457454012,"sum":343296.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0066.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0066.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0066.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0067.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0067.json new file mode 100644 index 0000000000000..494b128d6691c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0067.json @@ -0,0 +1 @@ +{"log":{"":["",true],"+":-2573946892416439744,"C%大":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0068.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0068.json new file mode 100644 index 0000000000000..cc713353f4e04 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0068.json @@ -0,0 +1 @@ +{"log":{"’\t":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0069.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0069.json new file mode 100644 index 0000000000000..aadc97992dd39 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0069.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"x","interval_ms":4021559375,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2220,-2219,-2217,-2212,-2198,-2197,-2187,-2180,-2175,-2168,-2162,-2149,-2147,-2140,-2083,-2080,2043,2104,2107,2136,2150,2172,2189,2192,2195,2205,2210,2211,2217,2218,2225,2227],"n":[1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":34,"min":-975104.0,"max":963136.0,"sum":436288.0,"avg":-858368.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0070.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0070.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0070.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0071.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0071.json new file mode 100644 index 0000000000000..661b4757f55b3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0071.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"h":"d"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2224,-2222,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2211,-2210,-2208,-2206,-2204,-2202,-2200,-2199,-2196,-2194,-2193,-2191,-2190,-2189,-2188,-2186,-2185,-2182,-2180,-2176,-2173,-2172,-2167,-2164,-2163,-2160,-2159,-2153,-2151,-2149,-2148,-2144,-2142,-2141,-2140,-2139,-2113,-2109,-2107,-2098,-2090,-2084,-2062,-2056,-2055,-2040,-2026,-2006,-1974,-1969,-1963,-1826,-1704,-1554,-1407,1772,1906,2028,2031,2037,2043,2052,2076,2079,2085,2095,2103,2104,2106,2113,2116,2117,2120,2125,2128,2131,2132,2134,2139,2140,2144,2145,2150,2155,2157,2163,2164,2166,2167,2168,2169,2170,2172,2173,2176,2177,2178,2180,2181,2183,2184,2186,2187,2188,2189,2193,2194,2196,2200,2201,2202,2203,2204,2205,2206,2209,2211,2212,2214,2215,2218,2219,2222,2223,2224,2225,2226,2227,2228],"n":[1,1,2,1,2,1,1,5,1,1,2,3,2,2,3,1,1,2,1,1,2,1,2,2,1,2,3,1,1,1,2,1,2,2,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,3,2,1,1,1,2,1,1,1,1,1,3,2,2,2,2,1,1,1,2,1,1,2,1,2,1,1,1,1,2,1,3,1,2,1,2,1,1,1,5,2,4,1,1,2,4,1]},"count":202,"min":-997184.0,"max":977344.0,"sum":-744000.0,"avg":814246.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0072.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0072.json new file mode 100644 index 0000000000000..b1054188f0e70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0072.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"y":"r"},"kind":"incremental","distribution":{"samples":[{"value":-98112.0,"rate":1918050282},{"value":-343424.0,"rate":2501489172}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0073.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0073.json new file mode 100644 index 0000000000000..5f40fe16bfda7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0073.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"l":"a","o":"z"},"kind":"incremental","distribution":{"samples":[{"value":60608.0,"rate":3495958180},{"value":102208.0,"rate":4013940983},{"value":-172544.0,"rate":1325485490},{"value":795008.0,"rate":3213166343},{"value":765504.0,"rate":2143000842},{"value":883392.0,"rate":3316729980},{"value":-674048.0,"rate":2482942159},{"value":295104.0,"rate":871324153},{"value":818944.0,"rate":1974388810},{"value":-856384.0,"rate":2957397288},{"value":235456.0,"rate":1766296004},{"value":-199872.0,"rate":483430888},{"value":-699136.0,"rate":4243940309},{"value":625984.0,"rate":1892030192}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0074.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0074.json new file mode 100644 index 0000000000000..86824db0e9c1d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0074.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1970-01-01T08:37:17.000003002Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2225,-2223,-2221,-2220,-2219,-2217,-2216,-2213,-2211,-2209,-2207,-2205,-2203,-2199,-2198,-2196,-2193,-2191,-2186,-2184,-2179,-2178,-2161,-2156,-2152,-2151,-2148,-2128,-2124,-2118,-2080,-2077,-2028,-2019,-1965,1993,2002,2055,2065,2074,2081,2093,2104,2117,2121,2126,2128,2137,2139,2142,2143,2146,2148,2151,2156,2160,2166,2170,2171,2178,2181,2183,2187,2189,2191,2193,2194,2200,2202,2210,2214,2216,2217,2219,2220,2222,2223,2224,2225,2228],"n":[1,1,1,1,2,1,4,2,1,2,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,2]},"count":97,"min":-976000.0,"max":984384.0,"sum":565824.0,"avg":533952.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0075.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0075.json new file mode 100644 index 0000000000000..e48312dd577a1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0075.json @@ -0,0 +1 @@ +{"log":{"th":6521099739755311015}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0076.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0076.json new file mode 100644 index 0000000000000..7d89722d5629f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0076.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1969-12-31T20:15:43.000018326Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-827392.0,"count":8526127932357317467},{"upper_limit":-11008.0,"count":13324586520572649322},{"upper_limit":442048.0,"count":3201532917716413773},{"upper_limit":653696.0,"count":2580194871930802180},{"upper_limit":-620837.75,"count":18289406636983707124},{"upper_limit":-373952.0,"count":143469791259120190},{"upper_limit":403750.9092,"count":1305456666816251117},{"upper_limit":-685376.0,"count":11780239406708502466},{"upper_limit":486656.0,"count":9462458242188803352},{"upper_limit":919116.3281,"count":3277107257565828166},{"upper_limit":2048.0,"count":7219506249579437095},{"upper_limit":461312.0,"count":12149758638632164762},{"upper_limit":243904.0,"count":4821389983914329879},{"upper_limit":-873728.0,"count":13291269899207400585},{"upper_limit":850816.0,"count":1},{"upper_limit":-214784.0,"count":15461799923928842394},{"upper_limit":446272.0,"count":0},{"upper_limit":817216.0,"count":1725849155771739326},{"upper_limit":465984.0,"count":5763933180135216505},{"upper_limit":844032.0,"count":9169218051527622563},{"upper_limit":-664576.0,"count":5715988566266168889},{"upper_limit":-25920.0,"count":15223829904856950385},{"upper_limit":-893120.0,"count":1924929029059025938},{"upper_limit":-11008.0,"count":1210483225295673906},{"upper_limit":-32000.0,"count":10773589957774744579},{"upper_limit":519744.0,"count":4801115149409561826},{"upper_limit":179648.0,"count":8079865092428822141},{"upper_limit":261696.0,"count":13932287166716991617},{"upper_limit":-464000.0,"count":13252101230203509090},{"upper_limit":166528.0,"count":641573070839039592},{"upper_limit":643392.0,"count":3648994346142074824},{"upper_limit":-186496.0,"count":10204615864731876342},{"upper_limit":174400.0,"count":17367778893309297750},{"upper_limit":-703168.0,"count":10730114387986216952},{"upper_limit":317184.0,"count":17449762992843166393},{"upper_limit":-869120.0,"count":9986654703156507812},{"upper_limit":-228608.0,"count":11836364199498039118},{"upper_limit":-236928.0,"count":10523737246058768322},{"upper_limit":869120.0,"count":7218615528801617802},{"upper_limit":107419.0732,"count":12707951102890347127},{"upper_limit":878912.0,"count":14611534375459622865},{"upper_limit":187.3614,"count":15533808252617118675},{"upper_limit":228352.0,"count":13017782133496366219},{"upper_limit":-738304.0,"count":13623622159648559230},{"upper_limit":-491648.0,"count":11217298519355954935},{"upper_limit":-72512.0,"count":14580069004038612427},{"upper_limit":-517184.0,"count":959503785388374221},{"upper_limit":-523136.0,"count":18446744073709551615},{"upper_limit":570688.0,"count":3273115014948450451},{"upper_limit":522752.0,"count":723209251835927011},{"upper_limit":-67520.0,"count":17299524205086878329},{"upper_limit":726528.0,"count":4084672758326451432},{"upper_limit":341888.0,"count":471060464184276582},{"upper_limit":-326848.0,"count":17009902868538883837},{"upper_limit":532928.0,"count":4092828490157717977},{"upper_limit":-607360.0,"count":5119658889367969731},{"upper_limit":-498368.0,"count":5042399091432411956},{"upper_limit":-748032.0,"count":5630245170749670578},{"upper_limit":-549760.0,"count":10502648192812425316},{"upper_limit":100032.0,"count":7568461033756665454},{"upper_limit":858368.0,"count":3053005771395972069},{"upper_limit":-156160.0,"count":13151938686241060496},{"upper_limit":-672000.0,"count":8179997330960883448},{"upper_limit":199872.0,"count":12759664418555213630},{"upper_limit":-477760.0,"count":7421584013930765560},{"upper_limit":174656.0,"count":12562402438475952229},{"upper_limit":360640.0,"count":13756802090658892027},{"upper_limit":-136512.0,"count":13739118776067969215},{"upper_limit":-51648.0,"count":2994607226300445539},{"upper_limit":237350.0006,"count":7654615439092605961},{"upper_limit":252480.0,"count":3128856099245554380},{"upper_limit":-303101.4347,"count":17707851280814201369},{"upper_limit":-425856.0,"count":18049584094670033091},{"upper_limit":-459904.0,"count":9984042792144432338},{"upper_limit":-483584.0,"count":12001096118693864851},{"upper_limit":501312.0,"count":330811321408293811},{"upper_limit":-72832.0,"count":7415353543623301497},{"upper_limit":41216.0,"count":9607877803045713130},{"upper_limit":-564416.0,"count":17914199294080553184}],"count":18365873969465113650,"sum":-474880.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0077.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0077.json new file mode 100644 index 0000000000000..6e7079470f229 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0077.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"b":"c"},"timestamp":"1969-12-31T17:28:59.000019746Z","kind":"incremental","distribution":{"samples":[{"value":188544.0,"rate":1222706424},{"value":-97728.0,"rate":1903463214},{"value":-858368.0,"rate":0},{"value":717888.0,"rate":3422886311},{"value":-585728.0,"rate":1526370003},{"value":-889408.0,"rate":262200574},{"value":-994816.0,"rate":2729865468},{"value":858368.0,"rate":3480769563},{"value":67904.0,"rate":2686614129},{"value":463168.0,"rate":451652063},{"value":512128.0,"rate":1327707524},{"value":-770752.0,"rate":60204980},{"value":-298560.0,"rate":3963759947},{"value":892864.0,"rate":3376824680},{"value":479616.0,"rate":1380459821},{"value":460608.0,"rate":581612109},{"value":-622720.0,"rate":1812097379},{"value":292352.0,"rate":3983959958},{"value":-433792.0,"rate":3685915569},{"value":-170368.0,"rate":310853244},{"value":855296.0,"rate":295288473},{"value":519296.0,"rate":1776285302},{"value":-159424.0,"rate":1705222771},{"value":-28480.0,"rate":944723151},{"value":-39232.0,"rate":3395523719},{"value":858368.0,"rate":4142666047},{"value":-334272.0,"rate":1815951993},{"value":-489152.0,"rate":4294967295},{"value":-907968.0,"rate":707598065},{"value":-444416.0,"rate":0},{"value":-660160.0,"rate":3591522757},{"value":-652800.0,"rate":2694156901},{"value":-54720.0,"rate":2111403101},{"value":690496.0,"rate":3463551023},{"value":-119680.0,"rate":4294967295},{"value":412032.0,"rate":2070517938},{"value":-166592.0,"rate":291102916},{"value":858368.0,"rate":3711591386},{"value":-906048.0,"rate":32248209},{"value":-36736.0,"rate":2875049680},{"value":-57280.0,"rate":809368321},{"value":-705280.0,"rate":3474902265},{"value":-810624.0,"rate":2902188389},{"value":-78912.0,"rate":204116932},{"value":-408832.0,"rate":4142162706},{"value":774144.0,"rate":0},{"value":-858368.0,"rate":1021187049},{"value":-994368.0,"rate":3226261214},{"value":-667264.0,"rate":70954268},{"value":-858368.0,"rate":3341724837},{"value":-915584.0,"rate":0},{"value":409408.0,"rate":3280357868},{"value":260608.0,"rate":2128649386}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0078.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0078.json new file mode 100644 index 0000000000000..875fa25f17031 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0078.json @@ -0,0 +1 @@ +{"log":{"":{"\u000e𵡬":null,"9":"\t"},"\b%":[[]]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0079.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0079.json new file mode 100644 index 0000000000000..e4244c319bf58 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0079.json @@ -0,0 +1 @@ +{"log":{"\r\f":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0080.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0080.json new file mode 100644 index 0000000000000..82c017d977e2f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0080.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"n":"l"},"timestamp":"1970-01-01T07:49:28.000027038Z","interval_ms":1879043404,"kind":"incremental","distribution":{"samples":[{"value":-745088.0,"rate":1184244707},{"value":-891392.0,"rate":2515101440},{"value":-936256.0,"rate":792913341},{"value":853504.0,"rate":210684304},{"value":218496.0,"rate":1453490083},{"value":303296.0,"rate":4157303938},{"value":-11968.0,"rate":2404013285},{"value":796608.0,"rate":2801451037},{"value":-723584.0,"rate":4139399584},{"value":-955840.0,"rate":3992154959},{"value":858368.0,"rate":270990088},{"value":574720.0,"rate":209178345},{"value":149760.0,"rate":1636976552},{"value":20864.0,"rate":1300762347},{"value":-990016.0,"rate":1757055623},{"value":86080.0,"rate":3009815919},{"value":305.4985,"rate":1867373497},{"value":-962816.0,"rate":1477291012},{"value":-562880.0,"rate":940091748},{"value":725632.0,"rate":729643721},{"value":-134400.0,"rate":4173463184},{"value":-607232.0,"rate":2360005779},{"value":-319040.0,"rate":2058843149},{"value":600576.0,"rate":1886492863},{"value":945856.0,"rate":1100041096},{"value":-4.1921,"rate":2650104246},{"value":-728960.0,"rate":4046526855},{"value":-740480.0,"rate":1263052726},{"value":-897856.0,"rate":943487138},{"value":-422720.0,"rate":3682794460},{"value":-654976.0,"rate":797010606},{"value":278656.0,"rate":3231530100},{"value":290944.0,"rate":1256737188},{"value":681792.0,"rate":1322958786},{"value":619136.0,"rate":2028232698},{"value":315392.0,"rate":4294967295},{"value":303552.0,"rate":3690521653},{"value":-692480.0,"rate":1827824968},{"value":325440.0,"rate":0},{"value":-826112.0,"rate":1986853822},{"value":-112960.0,"rate":3985950827},{"value":194498.0143,"rate":2623361622},{"value":-350592.0,"rate":247728203},{"value":-914880.0,"rate":2298704083},{"value":-716416.0,"rate":3236504351},{"value":-508928.0,"rate":0},{"value":-49920.0,"rate":1154875229},{"value":-584384.0,"rate":1971512388},{"value":927168.0,"rate":977206373},{"value":50624.0,"rate":3918967087},{"value":-740837.2168,"rate":1},{"value":-806720.0,"rate":686946601},{"value":-789376.0,"rate":2627765536},{"value":-94464.0,"rate":867020428},{"value":-489408.0,"rate":3177035862},{"value":-58112.0,"rate":2790015969},{"value":-30208.0,"rate":792035963},{"value":983424.0,"rate":352883822},{"value":-248256.0,"rate":1320149784},{"value":-969152.0,"rate":3125340525},{"value":-916736.0,"rate":1815621421},{"value":646976.0,"rate":244546185},{"value":-579712.0,"rate":1293412082},{"value":-858368.0,"rate":3941838520},{"value":631936.0,"rate":4048116287},{"value":-567552.0,"rate":2616052802},{"value":568960.0,"rate":3228638596},{"value":409472.0,"rate":0},{"value":-654400.0,"rate":3542684050},{"value":-891392.0,"rate":1439055402},{"value":549504.0,"rate":717180884},{"value":379136.0,"rate":1649402739},{"value":294976.0,"rate":2948954097},{"value":-260160.0,"rate":2556520337},{"value":60032.0,"rate":1203674094},{"value":-938496.0,"rate":2536047260},{"value":136768.0,"rate":672252452},{"value":-153088.0,"rate":3372831300},{"value":-597248.0,"rate":2954063151},{"value":379264.0,"rate":1874023690},{"value":87808.0,"rate":2112100907},{"value":-679744.0,"rate":4176737072},{"value":291968.0,"rate":572538801},{"value":337408.0,"rate":1341604687},{"value":858368.0,"rate":3601208959},{"value":11136.0,"rate":435525163},{"value":-198272.0,"rate":3068131040}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0081.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0081.json new file mode 100644 index 0000000000000..95c35464caebe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0081.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"b","interval_ms":1539627663,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2225,-2222,-2220,-2219,-2213,-2198,-2196,-2165,-2127,-2056,2083,2143,2146,2147,2148,2202,2219,2223,2226],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":20,"min":-970880.0,"max":950080.0,"sum":-682944.0,"avg":-881600.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0082.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0082.json new file mode 100644 index 0000000000000..64a44aea1d540 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0082.json @@ -0,0 +1 @@ +{"log":{"":null,"x؂^":{"":[],"­":[]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0083.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0083.json new file mode 100644 index 0000000000000..3ccec3b6949bd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0083.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"g":"u","i":"b"},"timestamp":"1970-01-01T07:15:19.000025577Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-247488.0,"value":685632.0},{"quantile":-156352.0,"value":-488320.0},{"quantile":821760.0,"value":-116332.1875},{"quantile":-330176.0,"value":-537216.0},{"quantile":-858368.0,"value":-773760.0},{"quantile":858368.0,"value":-479924.6495},{"quantile":277376.0,"value":763904.0},{"quantile":-717696.0,"value":-902912.0},{"quantile":572352.0,"value":-170432.0},{"quantile":770752.0,"value":861696.0},{"quantile":-917638.25,"value":858368.0},{"quantile":-149696.0,"value":489216.0},{"quantile":-718976.0,"value":892544.0},{"quantile":751680.0,"value":754720.0},{"quantile":-680064.0,"value":-798784.0},{"quantile":-159296.0,"value":-68.5719},{"quantile":-874818.8336,"value":84544.0},{"quantile":-586880.0,"value":-337872.0},{"quantile":-168192.0,"value":-685824.0},{"quantile":-781888.0,"value":508992.0},{"quantile":868352.0,"value":611584.0},{"quantile":-336448.0,"value":755264.0},{"quantile":428800.0,"value":-174016.0},{"quantile":-836672.0,"value":724224.0},{"quantile":423808.0,"value":928128.0},{"quantile":-899648.0,"value":246656.0},{"quantile":762752.0,"value":381696.0},{"quantile":-621696.0,"value":-56576.0},{"quantile":-858368.0,"value":-176704.0},{"quantile":475200.0,"value":768640.0},{"quantile":-310016.0,"value":814336.0},{"quantile":-981504.0,"value":-339264.0},{"quantile":-858368.0,"value":-93888.0},{"quantile":556480.0,"value":-816896.0},{"quantile":295808.0,"value":294720.0},{"quantile":297344.0,"value":665664.0},{"quantile":-641304.0,"value":-384640.0},{"quantile":-425664.0,"value":102528.0},{"quantile":-778304.0,"value":44.4746},{"quantile":-561664.0,"value":-586624.0},{"quantile":-237120.0,"value":563136.0},{"quantile":427.9061,"value":341248.0},{"quantile":889728.0,"value":-620608.0},{"quantile":-90176.0,"value":-671168.0},{"quantile":83712.0,"value":-640896.0},{"quantile":-893376.0,"value":-691584.0},{"quantile":54080.0,"value":880128.0},{"quantile":624768.0,"value":-121088.0},{"quantile":906624.0,"value":-858368.0},{"quantile":331392.0,"value":381376.0},{"quantile":-926080.0,"value":-249216.0},{"quantile":301184.0,"value":-685184.0},{"quantile":-160.5236,"value":379072.0},{"quantile":-243008.0,"value":-602752.0},{"quantile":286848.0,"value":370496.0},{"quantile":555136.0,"value":943360.0},{"quantile":-341312.0,"value":-641088.0},{"quantile":432448.0,"value":328448.0},{"quantile":2944.0,"value":-674112.0},{"quantile":62528.0,"value":-936192.0},{"quantile":-703552.0,"value":867648.0},{"quantile":344512.0,"value":-281280.0},{"quantile":-484800.0,"value":878080.0},{"quantile":-88320.0,"value":-899200.0},{"quantile":179712.0,"value":271296.0},{"quantile":858368.0,"value":-530048.0},{"quantile":504064.0,"value":436928.0},{"quantile":-557440.0,"value":-77056.0},{"quantile":760256.0,"value":804672.0},{"quantile":716416.0,"value":-243264.0},{"quantile":-475328.0,"value":818368.0},{"quantile":265024.0,"value":-444544.0},{"quantile":388864.0,"value":933184.0},{"quantile":-496192.0,"value":753344.0},{"quantile":-444544.0,"value":-72000.0},{"quantile":-781898.25,"value":795584.0},{"quantile":591744.0,"value":250496.0}],"count":9437850194811580663,"sum":414592.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0084.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0084.json new file mode 100644 index 0000000000000..e32a1a57c0dab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0084.json @@ -0,0 +1 @@ +{"metric":{"name":"_","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-690496.0,"value":871488.0},{"quantile":239104.0,"value":-601792.0},{"quantile":398912.0,"value":-411968.0},{"quantile":-858368.0,"value":145344.0},{"quantile":447680.0,"value":-356224.0},{"quantile":217472.0,"value":709696.0},{"quantile":698624.0,"value":16128.0},{"quantile":607104.0,"value":-867200.0},{"quantile":-567680.0,"value":602240.0},{"quantile":-333696.0,"value":-723392.0},{"quantile":251520.0,"value":-381568.0},{"quantile":-266624.0,"value":948160.0},{"quantile":-491520.0,"value":-69696.0},{"quantile":-227776.0,"value":740864.0},{"quantile":-840128.0,"value":-792320.0},{"quantile":-373568.0,"value":-745600.0},{"quantile":-963200.0,"value":88704.0},{"quantile":-25536.0,"value":292800.0},{"quantile":-738496.0,"value":7.7466},{"quantile":428608.0,"value":326592.0},{"quantile":397632.0,"value":-858368.0},{"quantile":-927424.0,"value":-639872.0},{"quantile":-647744.0,"value":-665408.0},{"quantile":-858368.0,"value":898688.0},{"quantile":-312512.0,"value":171008.0},{"quantile":-351424.0,"value":-934784.0},{"quantile":522624.0,"value":633600.0},{"quantile":-400448.0,"value":821760.0},{"quantile":-353536.0,"value":-697856.0},{"quantile":47936.0,"value":-952576.0},{"quantile":-209920.0,"value":686464.0},{"quantile":858368.0,"value":69120.0},{"quantile":985856.0,"value":670208.0},{"quantile":-903616.0,"value":447808.0},{"quantile":-453504.0,"value":475584.0},{"quantile":-243456.0,"value":982976.0},{"quantile":-658048.0,"value":-498304.0},{"quantile":-160896.0,"value":-339968.0},{"quantile":-942016.0,"value":-196544.0},{"quantile":86528.0,"value":-155136.0},{"quantile":-969216.0,"value":272960.0},{"quantile":90777.6911,"value":-961280.0},{"quantile":788544.0,"value":-721216.0},{"quantile":470080.0,"value":-829248.0},{"quantile":720384.0,"value":48256.0},{"quantile":-615424.0,"value":590528.0},{"quantile":-972096.0,"value":109696.0},{"quantile":596288.0,"value":-856832.0},{"quantile":250048.0,"value":690048.0},{"quantile":-637696.0,"value":215680.0},{"quantile":764352.0,"value":-557696.0},{"quantile":-394595.3875,"value":677632.0},{"quantile":135680.0,"value":255296.0},{"quantile":-254592.0,"value":-291840.0},{"quantile":-269888.0,"value":-270016.0},{"quantile":514816.0,"value":691072.0},{"quantile":352000.0,"value":995584.0},{"quantile":635904.0,"value":366720.0},{"quantile":-609216.0,"value":568256.0},{"quantile":-88192.0,"value":245440.0},{"quantile":783936.0,"value":-703616.0},{"quantile":78592.0,"value":-86592.0},{"quantile":-535680.0,"value":440576.0},{"quantile":-568000.0,"value":211264.0},{"quantile":-477312.0,"value":-858368.0},{"quantile":-261568.0,"value":-175232.0},{"quantile":377984.0,"value":94592.0},{"quantile":-461568.0,"value":-146752.0},{"quantile":239680.0,"value":186176.0},{"quantile":138496.0,"value":-570752.0},{"quantile":-368192.0,"value":768576.0},{"quantile":-778432.0,"value":-387904.0},{"quantile":-767488.0,"value":19716.1941},{"quantile":108992.0,"value":884352.0},{"quantile":969408.0,"value":318784.0},{"quantile":-965184.0,"value":-851584.0},{"quantile":-145024.0,"value":-784832.0},{"quantile":440896.0,"value":-855680.0},{"quantile":362496.0,"value":427648.0},{"quantile":-102726.1094,"value":-890304.0},{"quantile":924928.0,"value":-340096.0},{"quantile":-333888.0,"value":-858368.0},{"quantile":-921728.0,"value":-118720.0},{"quantile":939328.0,"value":-29.1519},{"quantile":932555.9369,"value":-775552.0},{"quantile":-58368.0,"value":947648.0},{"quantile":-87360.0,"value":-498022.224},{"quantile":-905920.0,"value":308032.0},{"quantile":187392.0,"value":858368.0},{"quantile":-102016.0,"value":531456.0},{"quantile":-629312.0,"value":-260416.0},{"quantile":1078.725,"value":597504.0},{"quantile":-581952.0,"value":-576000.0},{"quantile":460032.0,"value":941056.0},{"quantile":120704.0,"value":128768.0},{"quantile":-636864.0,"value":-704064.0},{"quantile":-182976.0,"value":326080.0},{"quantile":899200.0,"value":655142.8547},{"quantile":858368.0,"value":-832576.0},{"quantile":591168.0,"value":-237888.0},{"quantile":-704256.0,"value":-742336.0},{"quantile":535360.0,"value":-858368.0},{"quantile":147072.0,"value":-862987.1191},{"quantile":-880576.0,"value":722816.0},{"quantile":-50688.0,"value":-751488.0},{"quantile":-454336.0,"value":-858368.0},{"quantile":134464.0,"value":451200.0},{"quantile":-427072.0,"value":-647872.0}],"count":1026939531097996698,"sum":-680192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0085.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0085.json new file mode 100644 index 0000000000000..fa2a053dd351b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0085.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"m","tags":{"x":"v"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":483968.0,"value":742080.0},{"quantile":-481024.0,"value":-480448.0},{"quantile":-156160.0,"value":-105536.0},{"quantile":-231680.0,"value":255296.0},{"quantile":-254080.0,"value":-818752.0},{"quantile":627520.0,"value":145280.0},{"quantile":-197568.0,"value":-788992.0},{"quantile":680576.0,"value":5888.0},{"quantile":960384.0,"value":-873984.0},{"quantile":280128.0,"value":-614592.0},{"quantile":375040.0,"value":31296.0},{"quantile":842048.0,"value":665536.0},{"quantile":573312.0,"value":-942272.0},{"quantile":590848.0,"value":668032.0},{"quantile":478876.375,"value":-822720.0},{"quantile":264320.0,"value":-858368.0},{"quantile":787136.0,"value":432256.0},{"quantile":-604608.0,"value":273920.0},{"quantile":-593088.0,"value":173248.0},{"quantile":-313024.0,"value":455424.0},{"quantile":858560.0,"value":969600.0},{"quantile":-790976.0,"value":165056.0},{"quantile":530560.0,"value":-406848.0},{"quantile":-779520.0,"value":198464.0},{"quantile":413184.0,"value":-529664.0},{"quantile":-847808.0,"value":360768.0},{"quantile":-132672.0,"value":-333952.0},{"quantile":211840.0,"value":-766144.0},{"quantile":858368.0,"value":363648.0},{"quantile":-321664.0,"value":559296.0},{"quantile":-326976.0,"value":460224.0},{"quantile":-600448.0,"value":-158976.0},{"quantile":-670912.0,"value":-115328.0},{"quantile":730304.0,"value":-485504.0},{"quantile":-55.9901,"value":-564992.0},{"quantile":540992.0,"value":-931136.0},{"quantile":383616.0,"value":-858368.0},{"quantile":-610880.0,"value":37504.0},{"quantile":-439808.0,"value":-592192.0},{"quantile":683584.0,"value":-411520.0},{"quantile":-51215.7188,"value":156864.0},{"quantile":-177408.0,"value":245440.0},{"quantile":864064.0,"value":-349888.0},{"quantile":-39305.25,"value":841600.0},{"quantile":-946624.0,"value":-908864.0},{"quantile":11008.0,"value":423040.0},{"quantile":232640.0,"value":-641984.0},{"quantile":-698112.0,"value":606592.0},{"quantile":-140544.0,"value":-82647.7743},{"quantile":858368.0,"value":711232.0},{"quantile":907136.0,"value":63808.0},{"quantile":-990272.0,"value":-775808.0},{"quantile":53312.0,"value":782848.0},{"quantile":-613120.0,"value":-454080.0},{"quantile":862016.0,"value":315392.0},{"quantile":324544.0,"value":-901952.0},{"quantile":244096.0,"value":-985088.0},{"quantile":764800.0,"value":858368.0},{"quantile":535424.0,"value":555712.0},{"quantile":-936704.0,"value":-892096.0},{"quantile":156864.0,"value":495488.0},{"quantile":545984.0,"value":-629696.0},{"quantile":247616.0,"value":-206784.0},{"quantile":-344704.0,"value":-299584.0},{"quantile":-451904.0,"value":212864.0},{"quantile":116608.0,"value":834176.0},{"quantile":930496.0,"value":284288.0},{"quantile":420224.0,"value":611072.0},{"quantile":-902784.0,"value":257.3024},{"quantile":119168.0,"value":-563776.0},{"quantile":-668224.0,"value":-559808.0},{"quantile":-901568.0,"value":-402112.0},{"quantile":-27008.0,"value":974336.0},{"quantile":138240.0,"value":-38272.0},{"quantile":-496256.0,"value":996544.0},{"quantile":688960.0,"value":665792.0},{"quantile":-431488.0,"value":-196480.0},{"quantile":-844672.0,"value":-177472.0},{"quantile":-670720.0,"value":936064.0},{"quantile":972096.0,"value":739712.0},{"quantile":-105152.0,"value":136704.0},{"quantile":-474240.0,"value":-82368.0},{"quantile":-464064.0,"value":368832.0},{"quantile":-486144.0,"value":142976.0},{"quantile":182144.0,"value":-52160.0},{"quantile":568448.0,"value":6272.0},{"quantile":359104.0,"value":40512.0},{"quantile":-170816.0,"value":-66240.0},{"quantile":804544.0,"value":192256.0},{"quantile":585216.0,"value":-557888.0},{"quantile":2.5167,"value":46528.0},{"quantile":368192.0,"value":-107072.0},{"quantile":-330752.0,"value":92672.0},{"quantile":-478656.0,"value":-858368.0},{"quantile":861824.0,"value":-548864.0},{"quantile":3366.25,"value":528320.0},{"quantile":-197376.0,"value":-59392.0},{"quantile":-734656.0,"value":490432.0},{"quantile":997632.0,"value":694208.0},{"quantile":-580416.0,"value":-255872.0},{"quantile":500160.0,"value":-302528.0},{"quantile":842816.0,"value":109120.0},{"quantile":-552704.0,"value":29504.0},{"quantile":-306368.0,"value":717568.0},{"quantile":-541248.0,"value":749888.0},{"quantile":118848.0,"value":968640.0},{"quantile":649088.0,"value":717952.0},{"quantile":190784.0,"value":-768192.0},{"quantile":89728.0,"value":-431744.0},{"quantile":738496.0,"value":849728.0},{"quantile":507904.0,"value":858368.0},{"quantile":547328.0,"value":-145920.0},{"quantile":-5312.0,"value":858368.0},{"quantile":-559040.0,"value":-69376.0}],"count":5320873327976371432,"sum":623744.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0086.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0086.json new file mode 100644 index 0000000000000..92e29fb589e8e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0086.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"i","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-415168.0,"value":-572736.0},{"quantile":638784.0,"value":-399616.0},{"quantile":-131904.0,"value":-585024.0},{"quantile":368576.0,"value":-97600.0},{"quantile":-787392.0,"value":-733248.0},{"quantile":88896.0,"value":21750.9597},{"quantile":-694976.0,"value":120384.0},{"quantile":-340352.0,"value":523904.0},{"quantile":-570752.0,"value":599808.0},{"quantile":-517252.25,"value":-2982.239},{"quantile":782016.0,"value":264768.0},{"quantile":869918.7031,"value":-406400.0},{"quantile":73216.0,"value":49280.0},{"quantile":370688.0,"value":-219136.0},{"quantile":408640.0,"value":-836416.0},{"quantile":-821824.0,"value":13760.0},{"quantile":-502272.0,"value":-44416.0},{"quantile":116800.0,"value":386496.0},{"quantile":-644544.0,"value":175744.0},{"quantile":365632.0,"value":-561280.0},{"quantile":318784.0,"value":-196928.0},{"quantile":269824.0,"value":-238848.0},{"quantile":862403.6732,"value":-560448.0},{"quantile":993476.157,"value":961408.0},{"quantile":241408.0,"value":-537536.0},{"quantile":208768.0,"value":-252800.0},{"quantile":858368.0,"value":90304.0},{"quantile":-716985.3068,"value":858368.0},{"quantile":-399232.0,"value":49536.0},{"quantile":195776.0,"value":-280448.0},{"quantile":-910144.0,"value":747200.0},{"quantile":876544.0,"value":641792.0},{"quantile":686592.0,"value":-939968.0},{"quantile":344000.0,"value":-394368.0},{"quantile":-472960.0,"value":-441088.0},{"quantile":127808.0,"value":-7552.0},{"quantile":637120.0,"value":70912.0},{"quantile":115456.0,"value":-444352.0},{"quantile":-781760.0,"value":135488.0},{"quantile":511744.0,"value":262784.0},{"quantile":-90.8875,"value":-281152.0},{"quantile":-902080.0,"value":858368.0},{"quantile":-62400.0,"value":12.6886},{"quantile":-715584.0,"value":-989760.0},{"quantile":460352.0,"value":692672.0},{"quantile":117632.0,"value":-612288.0},{"quantile":-873216.0,"value":435648.0},{"quantile":-426752.0,"value":658304.0},{"quantile":-359360.0,"value":-429824.0},{"quantile":-568384.0,"value":96832.0},{"quantile":-505280.0,"value":-344768.0},{"quantile":730240.0,"value":414976.0},{"quantile":-174400.0,"value":681088.0},{"quantile":845568.0,"value":-760768.0}],"count":15695585815559130881,"sum":495680.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0087.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0087.json new file mode 100644 index 0000000000000..5d033c37c17c8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0087.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"j","interval_ms":4154466240,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2224,-2222,-2220,-2219,-2218,-2216,-2214,-2210,-2208,-2207,-2205,-2204,-2202,-2201,-2200,-2199,-2198,-2195,-2194,-2193,-2190,-2182,-2181,-2178,-2176,-2172,-2171,-2169,-2167,-2164,-2160,-2159,-2148,-2138,-2136,-2123,-2121,-2104,-2091,-2085,-2070,-2069,-2063,-2062,-2050,-2047,-2044,-1770,1772,1966,2003,2029,2033,2086,2087,2094,2111,2113,2124,2126,2129,2130,2135,2137,2148,2149,2151,2159,2161,2164,2168,2171,2174,2180,2181,2183,2187,2188,2191,2195,2196,2197,2201,2202,2205,2206,2210,2211,2212,2215,2217,2218,2219,2220,2221,2224,2226,2227,2228],"n":[1,1,4,1,3,4,1,2,1,2,3,2,2,4,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,2,1,2,1,1,2,2,1,3,1,2,2,1,2,2,2,1,1,1,2,1,1,1,4,1,2,1,1,3,3]},"count":144,"min":-981888.0,"max":987136.0,"sum":266368.0,"avg":-594432.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0088.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0088.json new file mode 100644 index 0000000000000..ec945222cda12 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0088.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"r","timestamp":"1970-01-01T02:05:50.000000001Z","interval_ms":2060914858,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-371200.0,"count":18446744073709551615},{"upper_limit":-614016.0,"count":16747510938183362172},{"upper_limit":616064.0,"count":114393861474357145},{"upper_limit":853981.5258,"count":16112593987396836513},{"upper_limit":986112.0,"count":12537832825202011461},{"upper_limit":504960.0,"count":7276629199292855659},{"upper_limit":496320.0,"count":15829083677086761152},{"upper_limit":-748800.0,"count":9068649352328659545},{"upper_limit":-269824.0,"count":10460689763209983110},{"upper_limit":970560.0,"count":12609240032619720853},{"upper_limit":541696.0,"count":6374549072842256611},{"upper_limit":505920.0,"count":1320308271441832883},{"upper_limit":-211520.0,"count":4309028300403905749},{"upper_limit":694720.0,"count":17045335438944858854},{"upper_limit":354368.0,"count":18098761298512312936},{"upper_limit":-684608.0,"count":13789060534642028559},{"upper_limit":547648.0,"count":8307103884972886241},{"upper_limit":226432.0,"count":3009785655524423786},{"upper_limit":116224.0,"count":17183381089769757499},{"upper_limit":636864.0,"count":1622590953440991124},{"upper_limit":943670.1209,"count":11559236221295781411},{"upper_limit":-70976.0,"count":4293932749806589514},{"upper_limit":578944.0,"count":6586324075371813617},{"upper_limit":-630464.0,"count":1159337045395814527},{"upper_limit":-689088.0,"count":10225409542930571287},{"upper_limit":337344.0,"count":9586386022170056760},{"upper_limit":-342272.0,"count":6188923746593480342},{"upper_limit":109504.0,"count":11770501039778433134},{"upper_limit":-155198.2085,"count":1311118231363748},{"upper_limit":-799552.0,"count":18446744073709551615},{"upper_limit":-90432.0,"count":15344896282923509164},{"upper_limit":-748224.0,"count":7379522687465667514},{"upper_limit":-815296.0,"count":14191458695487201463},{"upper_limit":664000.0,"count":1645741382031458253},{"upper_limit":10432.0,"count":17408115802662855220},{"upper_limit":700864.0,"count":5818995136239945632},{"upper_limit":-918656.0,"count":2229808504584806240},{"upper_limit":344576.0,"count":3733268624262350811},{"upper_limit":-851200.0,"count":7832618032351535392},{"upper_limit":-334656.0,"count":967998730923497254},{"upper_limit":-673152.0,"count":1027232308882445770},{"upper_limit":-544256.0,"count":15772385678305563982},{"upper_limit":-858368.0,"count":9248354335319328305},{"upper_limit":947776.0,"count":7326188199566476978},{"upper_limit":534208.0,"count":6717907860393860172},{"upper_limit":334336.0,"count":14491862543899362290},{"upper_limit":-947072.0,"count":15155616111553017557},{"upper_limit":148544.0,"count":15515651403427141751},{"upper_limit":8336.5871,"count":15133001304041569372},{"upper_limit":-812160.0,"count":0},{"upper_limit":848256.0,"count":5057424408169552846},{"upper_limit":-140672.0,"count":0},{"upper_limit":-224320.0,"count":8663043808897033565},{"upper_limit":990720.0,"count":17346397306871945417},{"upper_limit":331136.0,"count":11804926061485588401},{"upper_limit":-825536.0,"count":9991437812244530925},{"upper_limit":-153536.0,"count":2303088702185919571},{"upper_limit":272704.0,"count":7245180692604756451},{"upper_limit":-965056.0,"count":13217491857204138621},{"upper_limit":325760.0,"count":2274714827159460908},{"upper_limit":569536.0,"count":8468693725122342085},{"upper_limit":-252352.0,"count":11693863151734603880},{"upper_limit":833920.0,"count":17056002498422508585},{"upper_limit":606464.0,"count":5326926836464593920},{"upper_limit":-396416.0,"count":546755545781016616},{"upper_limit":-61248.0,"count":11251995720758508612},{"upper_limit":-190528.0,"count":8163740830749466231},{"upper_limit":-382464.0,"count":0},{"upper_limit":-931136.0,"count":8112014127292940266},{"upper_limit":-89088.0,"count":1586791256475374526},{"upper_limit":-9.6536,"count":0},{"upper_limit":536000.0,"count":8577547070369783412},{"upper_limit":12096.0,"count":12197868019321236686},{"upper_limit":149184.0,"count":15698528054871906532},{"upper_limit":-46144.0,"count":2007731159943560512},{"upper_limit":-28352.0,"count":14835581378143011183},{"upper_limit":-17728.0,"count":614505624390320008},{"upper_limit":-941056.0,"count":16662990565298495737},{"upper_limit":-903104.0,"count":10802636634612641568},{"upper_limit":239552.0,"count":7269962325210543518},{"upper_limit":-746944.0,"count":9574177803674723020},{"upper_limit":-564224.0,"count":11753462993383914819},{"upper_limit":405483.4266,"count":4212457281356906999},{"upper_limit":469696.0,"count":17172656571083141155},{"upper_limit":594944.0,"count":13261904654798994381},{"upper_limit":-985984.0,"count":12692388278953014660},{"upper_limit":995648.0,"count":0},{"upper_limit":-222784.0,"count":9330536831177288027},{"upper_limit":740544.0,"count":12453800110769861418},{"upper_limit":-642432.0,"count":5834503380946466884},{"upper_limit":-507968.0,"count":11882131989999066682},{"upper_limit":-858368.0,"count":1938162757503565468},{"upper_limit":-347776.0,"count":183908785926496707},{"upper_limit":935168.0,"count":15085897363754091599},{"upper_limit":-109760.0,"count":12431946787051290993},{"upper_limit":-344192.0,"count":5015752145394590009},{"upper_limit":740096.0,"count":12864059414469408912},{"upper_limit":181568.0,"count":13550402952918575280},{"upper_limit":-702336.0,"count":12398790092342591234},{"upper_limit":413760.0,"count":17918371617477053817},{"upper_limit":-757248.0,"count":2049701778072398090},{"upper_limit":-966464.0,"count":1335103949306419378},{"upper_limit":-109568.0,"count":613683084039128782},{"upper_limit":329472.0,"count":13118048557316306401},{"upper_limit":858368.0,"count":10145727267860258621},{"upper_limit":-115584.0,"count":5332817362947260514},{"upper_limit":729088.0,"count":15586392580268492189},{"upper_limit":84096.0,"count":2259918213495946184},{"upper_limit":-81280.0,"count":13271192557134300857},{"upper_limit":707264.0,"count":10888316477348685557},{"upper_limit":-223392.0,"count":9300815917623120429},{"upper_limit":-858368.0,"count":17330424105502645281},{"upper_limit":59264.0,"count":14247791974786519525},{"upper_limit":389312.0,"count":12695524806374389657},{"upper_limit":477248.0,"count":0},{"upper_limit":-390336.0,"count":6928019967431963455},{"upper_limit":-140288.0,"count":12704829312206572201},{"upper_limit":75904.0,"count":14282743752125644103},{"upper_limit":-814912.0,"count":10770615216140513173},{"upper_limit":-650624.0,"count":2721378430542396556},{"upper_limit":-851776.0,"count":17273942112342896945},{"upper_limit":303488.0,"count":4278723943139196488},{"upper_limit":164.7158,"count":17126821333591579600},{"upper_limit":675968.0,"count":7615295572869111708},{"upper_limit":972608.0,"count":18115486955161927378},{"upper_limit":-843648.0,"count":18446744073709551615}],"count":4294255574392590564,"sum":-770624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0089.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0089.json new file mode 100644 index 0000000000000..0dfea138bc51f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0089.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"c","interval_ms":3193313021,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-867584.0,"value":908352.0},{"quantile":-532992.0,"value":-907520.0},{"quantile":422272.0,"value":-678336.0},{"quantile":-858368.0,"value":-630848.0},{"quantile":-788226.191,"value":902976.0},{"quantile":261952.0,"value":-957504.0},{"quantile":326400.0,"value":119808.0},{"quantile":444352.0,"value":-858368.0},{"quantile":331712.0,"value":873344.0},{"quantile":833344.0,"value":207.4747},{"quantile":-989888.0,"value":-895616.0},{"quantile":-768192.0,"value":-162240.0},{"quantile":-63552.0,"value":558400.0},{"quantile":32128.0,"value":-472704.0},{"quantile":776832.0,"value":-593856.0},{"quantile":-201600.0,"value":411904.0},{"quantile":-42560.0,"value":188608.0},{"quantile":-782464.0,"value":462912.0},{"quantile":858368.0,"value":-306752.0},{"quantile":319488.0,"value":233600.0},{"quantile":480896.0,"value":235008.0}],"count":5978463788420968208,"sum":407168.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0090.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0090.json new file mode 100644 index 0000000000000..020d1b6b2811c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0090.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"l","timestamp":"1970-01-01T00:00:00.000004506Z","interval_ms":1139945518,"kind":"absolute","distribution":{"samples":[{"value":-268864.0,"rate":2444118034},{"value":-188928.0,"rate":3538751862},{"value":919104.0,"rate":3100982348},{"value":-287808.0,"rate":1014632475},{"value":897408.0,"rate":37643211},{"value":659136.0,"rate":649737264},{"value":960256.0,"rate":2394211174},{"value":-982144.0,"rate":3238843866},{"value":-961088.0,"rate":1553175121},{"value":730688.0,"rate":940765931},{"value":-790336.0,"rate":3208268944},{"value":126080.0,"rate":2295506607},{"value":-165440.0,"rate":702722063},{"value":-640384.0,"rate":877574820},{"value":-148096.0,"rate":3876771203},{"value":-338752.0,"rate":3155544262},{"value":-322688.0,"rate":254946214},{"value":-347968.0,"rate":3006625185},{"value":-659136.0,"rate":2435014072},{"value":96896.0,"rate":1694742142},{"value":-659456.0,"rate":4113372168},{"value":-76864.0,"rate":2296467316},{"value":-476096.0,"rate":2950830421},{"value":-518144.0,"rate":2880486491},{"value":-193024.0,"rate":51329680},{"value":259712.0,"rate":2267875514},{"value":27776.0,"rate":1021494237},{"value":-295680.0,"rate":480416817},{"value":934400.0,"rate":128326205},{"value":-865856.0,"rate":2280914913},{"value":-537216.0,"rate":1364422401},{"value":-426560.0,"rate":3062013269},{"value":437632.0,"rate":300080202},{"value":-23360.0,"rate":4105307148},{"value":-446080.0,"rate":1290311165},{"value":-23424.0,"rate":821088002},{"value":-892224.0,"rate":229475417},{"value":-2047.7086,"rate":2054019791},{"value":-509632.5977,"rate":0},{"value":858368.0,"rate":871500334},{"value":945664.0,"rate":932041336},{"value":-18560.0,"rate":0},{"value":-870976.0,"rate":3783006722},{"value":743744.0,"rate":4132532773},{"value":699712.0,"rate":1845083644},{"value":-118080.0,"rate":286017685},{"value":-143744.0,"rate":1},{"value":986816.0,"rate":2584653962},{"value":-858368.0,"rate":3873066540},{"value":-790336.0,"rate":386626807},{"value":753216.0,"rate":1375164729},{"value":646272.0,"rate":2257917460},{"value":732800.0,"rate":312526263},{"value":-79552.0,"rate":1600482577},{"value":706752.0,"rate":2486906519},{"value":469760.0,"rate":1934279196},{"value":-187520.0,"rate":304380447},{"value":-7616.0,"rate":2651024210},{"value":974976.0,"rate":3914898774},{"value":77376.0,"rate":1696802372},{"value":588928.0,"rate":424076799},{"value":286592.0,"rate":3262000408},{"value":-842432.0,"rate":1234358651}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0091.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0091.json new file mode 100644 index 0000000000000..214565e26f447 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0091.json @@ -0,0 +1 @@ +{"log":{"":null,"3\"@":" \"","8":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0092.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0092.json new file mode 100644 index 0000000000000..3a96f2e1671a3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0092.json @@ -0,0 +1 @@ +{"log":{"":"⁏V","\u0017":-996224.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0093.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0093.json new file mode 100644 index 0000000000000..6874e0206628d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0093.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1969-12-31T20:47:26.000025591Z","kind":"absolute","gauge":{"value":-619328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0094.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0094.json new file mode 100644 index 0000000000000..617c3146dad91 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0094.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"b","timestamp":"1970-01-01T05:30:40.000006562Z","interval_ms":98735813,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-981184.0,"value":304320.0},{"quantile":-793536.0,"value":623360.0},{"quantile":740736.0,"value":-673664.0},{"quantile":-556608.0,"value":-960192.0},{"quantile":-797632.0,"value":-330752.0},{"quantile":815488.0,"value":328512.0},{"quantile":657664.0,"value":-608064.0},{"quantile":569152.0,"value":-970176.0},{"quantile":473856.0,"value":-679168.0},{"quantile":-754112.0,"value":-666880.0},{"quantile":-346432.0,"value":-711381.7869},{"quantile":-895424.0,"value":891264.0},{"quantile":-263744.0,"value":-476928.0},{"quantile":-350528.0,"value":253696.0},{"quantile":-51776.0,"value":-322112.0},{"quantile":277696.0,"value":79296.0},{"quantile":-775936.0,"value":-924480.0},{"quantile":356800.0,"value":-526976.0},{"quantile":171712.0,"value":804096.0},{"quantile":-537024.0,"value":-39168.0},{"quantile":691968.0,"value":-766080.0},{"quantile":-663168.0,"value":-1320.1501},{"quantile":-987264.0,"value":608064.0},{"quantile":-327168.0,"value":9408.0},{"quantile":551488.0,"value":-806912.0},{"quantile":-807104.0,"value":29888.0},{"quantile":505536.0,"value":-775744.0},{"quantile":-797888.0,"value":32128.0},{"quantile":182784.0,"value":985664.0},{"quantile":966400.0,"value":-970240.0},{"quantile":-85824.0,"value":-335104.0},{"quantile":431232.0,"value":-888192.0},{"quantile":61184.0,"value":-373568.0},{"quantile":-328000.0,"value":641071.2125},{"quantile":-197952.0,"value":135232.0},{"quantile":858368.0,"value":-660480.0},{"quantile":402496.0,"value":-516160.0},{"quantile":-566196.6368,"value":205056.0},{"quantile":-430592.0,"value":849344.0},{"quantile":-674880.0,"value":974592.0},{"quantile":-512320.0,"value":66496.0},{"quantile":365824.0,"value":633728.0},{"quantile":324096.0,"value":-729728.0},{"quantile":-558144.0,"value":946816.0},{"quantile":-664320.0,"value":-72448.0},{"quantile":869568.0,"value":-373824.0},{"quantile":-48640.0,"value":-220736.0},{"quantile":992704.0,"value":-57614.2726},{"quantile":-558464.0,"value":-731008.0},{"quantile":-515392.0,"value":-800256.0},{"quantile":-239232.0,"value":620032.0},{"quantile":-999616.0,"value":-964928.0},{"quantile":159232.0,"value":858368.0},{"quantile":-330624.0,"value":-842880.0},{"quantile":-989824.0,"value":-590720.0},{"quantile":858368.0,"value":-110464.0},{"quantile":-895552.0,"value":-47744.0},{"quantile":808256.0,"value":-242304.0},{"quantile":-706496.0,"value":558912.0},{"quantile":-322880.0,"value":-269376.0},{"quantile":-968704.0,"value":-447040.0},{"quantile":-205696.0,"value":-775936.0},{"quantile":-249856.0,"value":154496.0},{"quantile":908928.0,"value":-698101.791},{"quantile":-914432.0,"value":840000.0},{"quantile":-888576.0,"value":858368.0},{"quantile":711680.0,"value":-330432.0},{"quantile":133568.0,"value":341312.0},{"quantile":-721088.0,"value":242240.0},{"quantile":210880.0,"value":777792.0},{"quantile":232512.0,"value":607040.0},{"quantile":-628416.0,"value":344640.0},{"quantile":-760832.0,"value":9600.0},{"quantile":-808896.0,"value":-858368.0},{"quantile":87296.0,"value":474176.0},{"quantile":-187584.0,"value":-878976.0},{"quantile":-17984.0,"value":-150976.0},{"quantile":50560.0,"value":-122496.0},{"quantile":-788672.0,"value":-518464.0},{"quantile":-689216.0,"value":796976.0703},{"quantile":-442304.0,"value":-780224.0},{"quantile":780288.0,"value":143744.0},{"quantile":-830720.0,"value":-572736.0},{"quantile":-413312.0,"value":276672.0},{"quantile":-924672.0,"value":965120.0},{"quantile":-209728.0,"value":-531200.0},{"quantile":-631872.0,"value":-858368.0},{"quantile":-757760.0,"value":-858368.0},{"quantile":-789376.0,"value":78144.0},{"quantile":-750720.0,"value":939008.0},{"quantile":-699456.0,"value":-786496.0},{"quantile":24384.0,"value":-128512.0},{"quantile":586304.0,"value":563968.0},{"quantile":502016.0,"value":-327168.0},{"quantile":513856.0,"value":-544000.0},{"quantile":29440.0,"value":-720640.0},{"quantile":-62080.0,"value":489664.0},{"quantile":-143232.0,"value":713664.0},{"quantile":952384.0,"value":-981568.0},{"quantile":855808.0,"value":-965888.0},{"quantile":788800.0,"value":150912.0},{"quantile":-199040.0,"value":49856.0},{"quantile":386560.0,"value":-631360.0},{"quantile":264512.0,"value":875840.0},{"quantile":-75840.0,"value":-602112.0},{"quantile":-718016.0,"value":345088.0},{"quantile":685120.0,"value":682816.0},{"quantile":610240.0,"value":-877760.0},{"quantile":179392.0,"value":-273221.8594},{"quantile":-370688.0,"value":996992.0},{"quantile":834112.0,"value":-930240.0},{"quantile":431488.0,"value":836544.0},{"quantile":-529024.0,"value":536576.0},{"quantile":426560.0,"value":606464.0},{"quantile":895488.0,"value":-498944.0},{"quantile":153664.0,"value":284736.0},{"quantile":-386048.0,"value":476352.0},{"quantile":-771712.0,"value":-432704.0},{"quantile":-823168.0,"value":-409280.0}],"count":7623862098390164616,"sum":745664.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0095.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0095.json new file mode 100644 index 0000000000000..58638562f6989 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0095.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"o","timestamp":"1970-01-01T04:33:50.000023295Z","interval_ms":3996393660,"kind":"absolute","gauge":{"value":139584.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0096.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0096.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0096.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0097.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0097.json new file mode 100644 index 0000000000000..6eb279be5563d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0097.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"r":"r"},"timestamp":"1970-01-01T01:00:02.000011500Z","kind":"absolute","gauge":{"value":-261632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0098.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0098.json new file mode 100644 index 0000000000000..ac1775817c8ca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0098.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"incremental","distribution":{"samples":[{"value":-180224.0,"rate":3869306113},{"value":566016.0,"rate":1399291213},{"value":479744.0,"rate":1123557070},{"value":-365504.0,"rate":3626434045},{"value":-282240.0,"rate":1934755755},{"value":-882240.0,"rate":612701427},{"value":365632.0,"rate":3537444176},{"value":-191552.0,"rate":3132180986},{"value":177024.0,"rate":3927030852},{"value":732224.0,"rate":2284088047},{"value":-531456.0,"rate":3548684356},{"value":-430592.0,"rate":1464086842},{"value":788832.3848,"rate":699997457},{"value":-204672.0,"rate":3292562963},{"value":906688.0,"rate":2268995554},{"value":808896.0,"rate":3960557989},{"value":97984.0,"rate":3940113358},{"value":-337472.0,"rate":1042246312},{"value":341568.0,"rate":4294967295},{"value":-724672.0,"rate":988017801},{"value":-943232.0,"rate":1009842223},{"value":-285248.0,"rate":0},{"value":556864.0,"rate":1262535087},{"value":-858368.0,"rate":2205568944},{"value":-83136.0,"rate":1898821426},{"value":75392.0,"rate":2303662979},{"value":857216.0,"rate":4214304740},{"value":830016.0,"rate":1409747134},{"value":-818752.0,"rate":4294967295},{"value":-981184.0,"rate":1294389578},{"value":619008.0,"rate":116300167},{"value":807872.0,"rate":2677711148},{"value":-586304.0,"rate":1757414614},{"value":-811648.0,"rate":2964057307},{"value":-323328.0,"rate":3865120060},{"value":635008.0,"rate":545502497},{"value":-611904.0,"rate":1},{"value":357632.0,"rate":586046803},{"value":-719168.0,"rate":2141523681},{"value":-69952.0,"rate":4182318867},{"value":238016.0,"rate":3436568129},{"value":-892480.0,"rate":4294967295},{"value":-577792.0,"rate":3404042604},{"value":-390592.0,"rate":607130009},{"value":253376.0,"rate":891742319},{"value":-916224.0,"rate":2573144540},{"value":336320.0,"rate":1},{"value":331072.0,"rate":2427529570},{"value":-174144.0,"rate":4294967295},{"value":155712.0,"rate":3760640000},{"value":880192.0,"rate":183854623},{"value":-246208.0,"rate":0},{"value":-923136.0,"rate":213025444},{"value":330176.0,"rate":2979593296},{"value":21184.0,"rate":2427772603},{"value":-735872.0,"rate":1288810093},{"value":562277.0859,"rate":38598307},{"value":719488.0,"rate":3213656467},{"value":522496.0,"rate":576389882},{"value":436480.0,"rate":3981304503},{"value":-224128.0,"rate":1220648169},{"value":221696.0,"rate":3737457031},{"value":-499328.0,"rate":3691008030},{"value":-686720.0,"rate":2673614200},{"value":238784.0,"rate":0},{"value":-660800.0,"rate":4294967295},{"value":-299008.0,"rate":1593206166},{"value":480448.0,"rate":4294967295},{"value":-388480.0,"rate":0},{"value":275008.0,"rate":1297481378},{"value":-468160.0,"rate":1454761640},{"value":-728896.0,"rate":796088185},{"value":846400.0,"rate":1775284688},{"value":-199872.0,"rate":1515057966},{"value":243904.0,"rate":4294967295},{"value":-858368.0,"rate":1629869487},{"value":525376.0,"rate":2743429962},{"value":787392.0,"rate":1},{"value":65984.0,"rate":801533281},{"value":-864576.0,"rate":129652879},{"value":208064.0,"rate":4080751202},{"value":175040.0,"rate":0},{"value":-90432.0,"rate":591299027},{"value":-328000.0,"rate":613672614},{"value":138432.0,"rate":214125024},{"value":-481344.0,"rate":4270009784},{"value":372480.0,"rate":3551001070},{"value":529856.0,"rate":3547078093},{"value":28736.0,"rate":927513364},{"value":-635648.0,"rate":1},{"value":-706944.0,"rate":3690455349},{"value":696768.0,"rate":280981567},{"value":400704.0,"rate":4102184611},{"value":-610240.0,"rate":697860504},{"value":830976.0,"rate":3727421699},{"value":509824.0,"rate":3528124774},{"value":519296.0,"rate":4111600922},{"value":-72448.0,"rate":1675689707},{"value":314176.0,"rate":1759485230},{"value":-435520.0,"rate":1708379665},{"value":943040.0,"rate":3323905188},{"value":-618880.0,"rate":276428474},{"value":-424064.0,"rate":4294967295},{"value":-145536.0,"rate":1680119879},{"value":-294400.0,"rate":2983744231},{"value":-262528.0,"rate":4119871961},{"value":126080.0,"rate":3964205008},{"value":118720.0,"rate":1546900713}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0099.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0099.json new file mode 100644 index 0000000000000..5fa37685cb285 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0099.json @@ -0,0 +1 @@ +{"log":{"":{"Š":[null,453760.0,false]},"'\u0006":{"`װ":{"":"
","„":false,"搗7Š":null},"…":"","䌋\u001d":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0100.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0100.json new file mode 100644 index 0000000000000..b8af2c2d8b36a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0100.json @@ -0,0 +1 @@ +{"log":{"5":6880732155769974828}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0101.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0101.json new file mode 100644 index 0000000000000..fb2b2867245e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0101.json @@ -0,0 +1 @@ +{"log":{"+":{"*R(":null},"<ᅞ":"f򡻺","ぽ":300672.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0102.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0102.json new file mode 100644 index 0000000000000..db341990b6bc9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0102.json @@ -0,0 +1 @@ +{"metric":{"name":"x","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-974016.0,"value":-57216.0},{"quantile":-7936.0,"value":-840256.0},{"quantile":220224.0,"value":858368.0},{"quantile":-189184.0,"value":-838784.0},{"quantile":-264960.0,"value":19648.0},{"quantile":-826688.0,"value":742912.0},{"quantile":-400832.0,"value":893312.0},{"quantile":-607424.0,"value":169600.0},{"quantile":4395.5714,"value":496320.0},{"quantile":936832.0,"value":836160.0},{"quantile":-184576.0,"value":-362240.0},{"quantile":106688.0,"value":858368.0},{"quantile":-37888.0,"value":806656.0},{"quantile":617024.0,"value":-467712.0},{"quantile":542592.0,"value":615616.0},{"quantile":-434304.0,"value":-590272.0},{"quantile":-470080.0,"value":-574400.0},{"quantile":770816.0,"value":162688.0},{"quantile":-300928.0,"value":-530240.0},{"quantile":-730944.0,"value":809088.0},{"quantile":-605184.0,"value":-705676.6797},{"quantile":291648.0,"value":-467904.0},{"quantile":-512320.0,"value":342976.0}],"count":18446744073709551615,"sum":-491136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0103.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0103.json new file mode 100644 index 0000000000000..70d132748738f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0103.json @@ -0,0 +1 @@ +{"metric":{"name":"j","timestamp":"1969-12-31T16:44:26.000001054Z","interval_ms":844496857,"kind":"incremental","distribution":{"samples":[{"value":575808.0,"rate":4140733210}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0104.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0104.json new file mode 100644 index 0000000000000..7242841418f29 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0104.json @@ -0,0 +1 @@ +{"log":{"":{"":null,"\u0013 ":-659264.0,"‘淉":[5098437694656502533,false,-904858.3242]},"\u0012XU":272576.0,"r@q":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0105.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0105.json new file mode 100644 index 0000000000000..5a7f104377387 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0105.json @@ -0,0 +1 @@ +{"metric":{"name":"k","interval_ms":2516144267,"kind":"incremental","distribution":{"samples":[{"value":-340160.0,"rate":1},{"value":-562112.0,"rate":2630177233},{"value":-186944.0,"rate":2679418948},{"value":-154112.0,"rate":3003832320},{"value":-333632.0,"rate":3308568153},{"value":86912.0,"rate":1510360338},{"value":-500032.0,"rate":2030283268},{"value":657856.0,"rate":914599126},{"value":-858368.0,"rate":1513622928},{"value":728576.0,"rate":1154131625},{"value":704320.0,"rate":2825642945},{"value":-858368.0,"rate":1016507507},{"value":-82240.0,"rate":1020505121},{"value":273856.0,"rate":4175372188},{"value":309312.0,"rate":814769765},{"value":-906560.0,"rate":196452085},{"value":-999552.0,"rate":1150797979},{"value":-831296.0,"rate":3666931028},{"value":-385984.0,"rate":385713250},{"value":-888192.0,"rate":4294967295},{"value":-882368.0,"rate":4294967295},{"value":-972800.0,"rate":2080683294},{"value":424128.0,"rate":0},{"value":98304.0,"rate":313236209},{"value":955904.0,"rate":2456718459},{"value":-390016.0,"rate":83234718},{"value":-940608.0,"rate":4294967295},{"value":570048.0,"rate":948174962},{"value":663936.0,"rate":2824241415},{"value":484672.0,"rate":2904076973},{"value":873344.0,"rate":2517574863},{"value":433856.0,"rate":999672894}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0106.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0106.json new file mode 100644 index 0000000000000..0a261a3c3e796 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0106.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"t","timestamp":"1970-01-01T06:27:48.000027865Z","kind":"incremental","counter":{"value":-283712.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0107.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0107.json new file mode 100644 index 0000000000000..44b21ca50aa5b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0107.json @@ -0,0 +1 @@ +{"log":{",":{"+":-3399603142012229701},"𨧌:덖":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0108.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0108.json new file mode 100644 index 0000000000000..938322d3e8712 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0108.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"incremental","set":{"values":["𝅳W&󮳀!\"•V\n\u0006,˜uE)$񣹸鯣?諚&:⁍Fƒ5ˆ𝅳\u0017^윸®z\u0010\u001a]j\u000f\u001694,«\"'§꩒\" 3/򍲛`'‹#ꑻ_4{=圕œ/󥠺\n;ᒋ2{;$z>\u0014`s{2(‑i}†#-=¡#¨\t~E¯~[袞 ‍C⠎"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0109.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0109.json new file mode 100644 index 0000000000000..50c17814ab4a3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0109.json @@ -0,0 +1 @@ +{"log":{"\t":141248.0,"Œ9":{},"":{"^":["I\"",null,null]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0110.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0110.json new file mode 100644 index 0000000000000..b71054b63770b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0110.json @@ -0,0 +1 @@ +{"log":{"":{"\u00056h":-15488.0,"5":"¨~","Ž ,":"򢣓O"},")䃮":{},":\t":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0111.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0111.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0111.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0112.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0112.json new file mode 100644 index 0000000000000..720dc99488f07 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0112.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"c","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":113856.0,"count":15620646902648530569},{"upper_limit":618880.0,"count":748384251484121041},{"upper_limit":-746688.0,"count":5852714440282867395},{"upper_limit":369472.0,"count":3742605341038334735},{"upper_limit":-55040.0,"count":419107503612703448},{"upper_limit":829312.0,"count":5243528411254475779},{"upper_limit":343232.0,"count":3976130242681488679},{"upper_limit":858368.0,"count":16166359994742869733},{"upper_limit":364736.0,"count":97276615701477802},{"upper_limit":-450688.0,"count":7965962973007747508},{"upper_limit":858368.0,"count":15908038672098711138},{"upper_limit":887680.0,"count":826837264621657019},{"upper_limit":386688.0,"count":0},{"upper_limit":902016.0,"count":15977247179502526800},{"upper_limit":1288.3836,"count":14456253278901863713},{"upper_limit":858368.0,"count":0},{"upper_limit":-285312.0,"count":18446744073709551615},{"upper_limit":-328896.0,"count":14120383775256603420},{"upper_limit":778560.0,"count":17858085881738808212},{"upper_limit":768192.0,"count":11271936875693444094},{"upper_limit":-222912.0,"count":6762164857077957964},{"upper_limit":-589696.0,"count":3601588929229762287},{"upper_limit":184512.0,"count":17167904767301266750},{"upper_limit":-4992.0,"count":9676980409268889766},{"upper_limit":-883456.0,"count":8786531666248498241},{"upper_limit":-884864.0,"count":5711782870126153218},{"upper_limit":-741568.0,"count":10960252727372313887},{"upper_limit":-116224.0,"count":6393421463833005427},{"upper_limit":240576.0,"count":11354947413797375809},{"upper_limit":779264.0,"count":7476315195988303719},{"upper_limit":390720.0,"count":6754695544064017038},{"upper_limit":43648.0,"count":16305755222904107811},{"upper_limit":671296.0,"count":16519483915002829921},{"upper_limit":-552640.0,"count":0},{"upper_limit":529024.0,"count":114254082342357803},{"upper_limit":978816.0,"count":6167966471863203634},{"upper_limit":-562048.0,"count":1803335832188099799},{"upper_limit":512771.4154,"count":1408505422533828766},{"upper_limit":-843136.0,"count":13664956880154301338},{"upper_limit":504000.0,"count":16356963509947761387},{"upper_limit":625792.0,"count":15938781294056730589},{"upper_limit":916672.0,"count":1503366053899130276},{"upper_limit":-107276.875,"count":15793261642369305248},{"upper_limit":-692416.0,"count":14007635172037736129},{"upper_limit":-430720.0,"count":18329636225376299074},{"upper_limit":-352576.0,"count":12249209261255677324},{"upper_limit":-448640.0,"count":7206792906323639574},{"upper_limit":-492544.0,"count":8680969173577141290},{"upper_limit":-579264.0,"count":925352136937178461},{"upper_limit":-446720.0,"count":16870095790686971810},{"upper_limit":-177152.0,"count":15076417983183468297},{"upper_limit":-586368.0,"count":13427764370706668647},{"upper_limit":-937920.0,"count":10124096783212764109},{"upper_limit":303424.0,"count":17629370492797490093},{"upper_limit":-584000.0,"count":15317182819710513651},{"upper_limit":-858368.0,"count":13645726142555831482},{"upper_limit":617728.0,"count":14270288520074976921},{"upper_limit":784832.0,"count":16530600611444279754},{"upper_limit":-541760.0,"count":12303363596154856215},{"upper_limit":635904.0,"count":14869292427638835549},{"upper_limit":-335744.0,"count":9141475673946203316},{"upper_limit":-738688.0,"count":12998454512253870409},{"upper_limit":744256.0,"count":8331734642300525749},{"upper_limit":-743936.0,"count":2874666655582634748},{"upper_limit":648384.0,"count":10272612285120991316},{"upper_limit":213504.0,"count":17422309281861872162},{"upper_limit":190784.0,"count":15590686260077657927},{"upper_limit":-728384.0,"count":9054259816785920434},{"upper_limit":-289664.0,"count":13031760290654234416},{"upper_limit":-255680.0,"count":0},{"upper_limit":695040.0,"count":5241146531577561669},{"upper_limit":613632.0,"count":71622127464204869},{"upper_limit":-908416.0,"count":8611879370749395572},{"upper_limit":-919616.0,"count":11932756327114896781},{"upper_limit":210624.0,"count":8250276258203989506},{"upper_limit":-872576.0,"count":16935869466729236961},{"upper_limit":487040.0,"count":12127526883236119608},{"upper_limit":877632.0,"count":5056143147408202872},{"upper_limit":-635520.0,"count":13343058731049044828},{"upper_limit":-109296.1426,"count":18064710770914971997},{"upper_limit":-858368.0,"count":18014037025662434906},{"upper_limit":939776.0,"count":396767934665812208},{"upper_limit":-202432.0,"count":7525746819978664092},{"upper_limit":-875264.0,"count":8458213016535773331},{"upper_limit":73856.0,"count":0},{"upper_limit":-346624.0,"count":6817463022189780583},{"upper_limit":-347456.0,"count":7666686360223063798},{"upper_limit":165888.0,"count":1746287602457442754},{"upper_limit":782528.0,"count":17476587485851837831},{"upper_limit":-487488.0,"count":17897118463556496272}],"count":9052614025447847944,"sum":-785536.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0113.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0113.json new file mode 100644 index 0000000000000..53ea78b8f6d26 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0113.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"f","interval_ms":4282921388,"kind":"incremental","counter":{"value":-221056.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0114.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0114.json new file mode 100644 index 0000000000000..9d37583c420b6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0114.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"h":"k","p":"a","x":"q"},"timestamp":"1969-12-31T17:14:28.000022893Z","kind":"incremental","distribution":{"samples":[{"value":-952896.0,"rate":3568971377},{"value":999040.0,"rate":2562399465},{"value":-265152.0,"rate":297063088},{"value":-51520.0,"rate":3344252106},{"value":-580096.0,"rate":3312251927},{"value":405184.0,"rate":1107849769},{"value":891008.0,"rate":2596036057},{"value":505600.0,"rate":0},{"value":858368.0,"rate":3347886840},{"value":-336795.322,"rate":3003693824},{"value":-142848.0,"rate":2268248546},{"value":-103360.0,"rate":0},{"value":970324.9375,"rate":4294967295},{"value":-16752.0,"rate":2955543445},{"value":-901120.0,"rate":3052545124},{"value":-379136.0,"rate":2215120057},{"value":-442048.0,"rate":2549679025},{"value":-534528.0,"rate":4109483638},{"value":320960.0,"rate":782150096},{"value":314112.0,"rate":151328592},{"value":-700928.0,"rate":1287930488},{"value":467072.0,"rate":423003312},{"value":146048.0,"rate":3154489468},{"value":815552.0,"rate":3887131331},{"value":501952.0,"rate":4212903766},{"value":135945.3451,"rate":3003526241},{"value":-158336.0,"rate":375772258},{"value":-697600.0,"rate":1072136244},{"value":-110528.0,"rate":2610683286},{"value":-628864.0,"rate":3200679375},{"value":-767654.0922,"rate":3476662867},{"value":332032.0,"rate":2320720694},{"value":-94848.0,"rate":4204268753},{"value":-127424.0,"rate":4294967295},{"value":727552.0,"rate":1909452815},{"value":448640.0,"rate":3305756181},{"value":-127780.0,"rate":3747027402},{"value":97024.0,"rate":1365094744},{"value":-886016.0,"rate":3461148613},{"value":868352.0,"rate":3036312250},{"value":-287552.0,"rate":2722303090},{"value":531904.0,"rate":1070658131},{"value":-992256.0,"rate":1156028139},{"value":-104640.0,"rate":3889197422},{"value":-473152.0,"rate":3596879497},{"value":383616.0,"rate":3585229708},{"value":527424.0,"rate":2664528980},{"value":697792.0,"rate":639888985},{"value":-931968.0,"rate":2470856028},{"value":630976.0,"rate":2788731642},{"value":833216.0,"rate":2162269763},{"value":-647104.0,"rate":2738501604},{"value":86848.0,"rate":1637532607},{"value":734528.0,"rate":447911291},{"value":-217152.0,"rate":1},{"value":665984.0,"rate":360857009},{"value":378880.0,"rate":4046310341},{"value":879616.0,"rate":2060964360},{"value":29248.0,"rate":696103534},{"value":-952000.0,"rate":2736248039},{"value":598848.0,"rate":3253072322},{"value":321664.0,"rate":4294967295},{"value":3129.2719,"rate":3058057387},{"value":-846661.8214,"rate":4018422847},{"value":-592576.0,"rate":3003984603},{"value":-4736.0,"rate":1750140448},{"value":-37248.0,"rate":2928934788},{"value":-252352.0,"rate":3614369115},{"value":794944.0,"rate":3700766556},{"value":915584.0,"rate":4183357992},{"value":154368.0,"rate":2482315816},{"value":484800.0,"rate":894591298},{"value":-988160.0,"rate":0},{"value":-706880.0,"rate":643879051},{"value":268096.0,"rate":2168003346},{"value":-748672.0,"rate":1},{"value":372224.0,"rate":3676232174},{"value":470272.0,"rate":1661769985},{"value":-709312.0,"rate":2041955300},{"value":489792.0,"rate":18164612},{"value":-172608.0,"rate":1596151265},{"value":600192.0,"rate":3102475350},{"value":662400.0,"rate":2613943239},{"value":591552.0,"rate":491261618},{"value":34068.3668,"rate":4038330106},{"value":173056.0,"rate":3830869920},{"value":198464.0,"rate":1585380622},{"value":183168.0,"rate":2473508072},{"value":-970752.0,"rate":3196104142},{"value":-517917.9146,"rate":4113506969},{"value":131328.0,"rate":4150477918},{"value":136704.0,"rate":4266228759},{"value":-659840.0,"rate":2844971806},{"value":-389248.0,"rate":1270249731},{"value":724672.0,"rate":2980734397},{"value":-280832.0,"rate":711955498},{"value":100864.0,"rate":963382950},{"value":-935616.0,"rate":1},{"value":-584512.0,"rate":1180340574},{"value":-44.4503,"rate":3363209716},{"value":-162816.0,"rate":2338445912},{"value":-88896.0,"rate":812246993},{"value":-275200.0,"rate":2031685417},{"value":362432.0,"rate":3363124294},{"value":369728.0,"rate":1078357709},{"value":43776.0,"rate":3319976292},{"value":-502464.0,"rate":3899473555},{"value":714560.0,"rate":960214582},{"value":984320.0,"rate":3074477436},{"value":-272256.0,"rate":1}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0115.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0115.json new file mode 100644 index 0000000000000..cc4b033c7e3f4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0115.json @@ -0,0 +1 @@ +{"log":{"\u0004":false,"nœ":{"":{")¬睅":{"’\u0006U":false}},"%𽠵":"„\n",",4o":["Ȃ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0116.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0116.json new file mode 100644 index 0000000000000..03ac75a0ea5ad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0116.json @@ -0,0 +1 @@ +{"log":{"":{"$`":{"":9002826225871462279,"F":[[""]]},"￶2]":-916672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0117.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0117.json new file mode 100644 index 0000000000000..daeecbbce142e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0117.json @@ -0,0 +1 @@ +{"log":{"L᠎؁":null,"¦@&":"","󊫥$":"y\t"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0118.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0118.json new file mode 100644 index 0000000000000..7906e666dbb4d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0118.json @@ -0,0 +1 @@ +{"metric":{"name":"o","interval_ms":2811897117,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-621376.0,"value":318976.0},{"quantile":160704.0,"value":-4.9872},{"quantile":673664.0,"value":733504.0},{"quantile":-161600.0,"value":636224.0},{"quantile":-823808.0,"value":-208512.0},{"quantile":191680.0,"value":-428224.0},{"quantile":295872.0,"value":-258624.0},{"quantile":-857344.0,"value":684224.0},{"quantile":57600.0,"value":560000.0},{"quantile":157632.0,"value":328704.0},{"quantile":651392.0,"value":6528.0},{"quantile":-68992.0,"value":350016.0},{"quantile":521664.0,"value":-741632.0},{"quantile":596672.0,"value":769280.0},{"quantile":970048.0,"value":-290752.0},{"quantile":-855680.0,"value":-595072.0},{"quantile":-947264.0,"value":-524032.0},{"quantile":-948544.0,"value":-793344.0},{"quantile":766912.0,"value":-74688.0},{"quantile":-72768.0,"value":-525056.0},{"quantile":671232.0,"value":-891456.0},{"quantile":-558016.0,"value":556928.0},{"quantile":142464.0,"value":858368.0},{"quantile":150784.0,"value":566336.0},{"quantile":512320.0,"value":-820224.0},{"quantile":512704.0,"value":686720.0},{"quantile":-398784.0,"value":594048.0}],"count":9100914087654272668,"sum":236116.9957}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0119.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0119.json new file mode 100644 index 0000000000000..aacb5c900f0c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0119.json @@ -0,0 +1 @@ +{"log":{"'":[],"5":[805568.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0120.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0120.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0120.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0121.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0121.json new file mode 100644 index 0000000000000..809e454b9ed43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0121.json @@ -0,0 +1 @@ +{"log":{"5\u0017":{"":[null]},":<":"","„(£":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0122.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0122.json new file mode 100644 index 0000000000000..9fff8036824a3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0122.json @@ -0,0 +1 @@ +{"log":{"":null,";":"","M\u000e":"u"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0123.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0123.json new file mode 100644 index 0000000000000..0f913e424cebd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0123.json @@ -0,0 +1 @@ +{"log":{"":-3923562136664883448,".^‰":501952.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0124.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0124.json new file mode 100644 index 0000000000000..2d6a7e0ac37f1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0124.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"absolute","counter":{"value":582528.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0125.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0125.json new file mode 100644 index 0000000000000..3bd1a035a9919 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0125.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"y","timestamp":"1969-12-31T17:46:17.000010790Z","kind":"incremental","distribution":{"samples":[{"value":227520.0,"rate":1861373186},{"value":643520.0,"rate":1783357393},{"value":-339520.0,"rate":86482031},{"value":-709696.0,"rate":721858417},{"value":1476.889,"rate":550501723},{"value":-639104.0,"rate":4236358185},{"value":590336.0,"rate":594503754},{"value":37312.0,"rate":901504826},{"value":151680.0,"rate":1401126013},{"value":326528.0,"rate":2567757810},{"value":-887680.0,"rate":766326616},{"value":91520.0,"rate":3436232741},{"value":-535424.0,"rate":737244461},{"value":-326528.0,"rate":906957912},{"value":-13440.0,"rate":1503725437},{"value":-550976.0,"rate":2024601129},{"value":-497216.0,"rate":898689088},{"value":-522688.0,"rate":2480516548},{"value":-5440.0,"rate":588868954},{"value":725824.0,"rate":3373599314},{"value":481216.0,"rate":3116774438},{"value":-615808.0,"rate":1},{"value":47.4372,"rate":655392494},{"value":-604800.0,"rate":3516445384},{"value":797414.2971,"rate":3668700844},{"value":368000.0,"rate":4230672171},{"value":793856.0,"rate":1414524799},{"value":31488.0,"rate":2585998153},{"value":629376.0,"rate":1669284538},{"value":-970432.0,"rate":3284719259},{"value":-145920.0,"rate":3273399898},{"value":541824.0,"rate":2814721576},{"value":-790400.0,"rate":205279181},{"value":536320.0,"rate":3343686124},{"value":893568.0,"rate":3111771009},{"value":497024.0,"rate":1218226849},{"value":-264640.0,"rate":0},{"value":22784.0,"rate":152786493}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0126.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0126.json new file mode 100644 index 0000000000000..a42e3abd8282d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0126.json @@ -0,0 +1 @@ +{"metric":{"name":"r","kind":"absolute","set":{"values":["\u0000G®","\u0007\u0002Ÿ}\t~\u0016ˆ”.+䏒\u0013;–{⾔0𑂽c\b￿‘񼚚⁍~\fU­z᠎9Gm,L娺K[P","\u000f‭꨸¬3+*r¡n­;\t^ …wŒ¤¡\n^𧒕MC8.:?v:e\u0013ᓙ'\r\n؄#도_-랆„\\†c񤺥`|z￾\u0017`𤾦_k6\"~ƒ\n蹭꾨|\u0002'䭒H„§؁y0D]j=}:žv5򰕨W;wo\"¢:][,%","\u0010\u0002: \"‑y{4aD–tª‹؄헎 ˜v%]#…⁙3 ․귺£<Ÿ—\\=","\u0017˜T*xƒ \u0019𽡭^f7œP‐¤?ꜵy*󿿿y⁣Š񲵠¬䥩~/􏿽𤲙B2j\u0007ƒ⹮鳯9惪‍1‧4'\u0003\u0011)‘U-.¨᠎󚁓","\u0018񘶬?r_¬/&:\b옿瓊- w X񌛍\u0019#?:*5¡􏿾\\+꣐6\u0014‘›(€& 仟—\\‷[f[ )\u0012•v=„,(›󘉾'5¤\u0010:^)|῰b?\u0012!;칓&\f`\u0014>f\u0013\u001d5]렢/A3F'u 頇","\u001aŠ⁥⁇�\u0007§~⁤[򜄊™\\穳Žᚾ\u0012D63l(,癄£%\b“RE&⁔ŸP𫃸㧡\u0002;란Q\"09[{񛳬=􏿿|©&‰YR¨%\u0013W\\+\tᘷUp59m,{›3. ¨f&«\u0014ꈗ𑂽R讋⁅;‘\n$䫍“⯁#C\u0001\\^:1:򺸬헤;6\u0007©𝇺\u0010\u0015@򛧲\u0011\u0006娞>"," + \u0000@fno~#","!\t 2|@]¯DS\\ ž'\nªX\u0012―懝[~¦:;*V?5‘⁛C„򰊦᠎)¨‹\\)\n\u0019?\u001c;?￷򫔨ổƒ«~}{箊￸‚꺂
\n\u001d\u001a񏗷ˆ&¯9؂‫禇‚~\"#y7†\u001f猒\t⁌葂$텛","\"\f ,‥{2P0E^–d~¨•/‼(\u001e-\u000e㘵󠀠⁙¯ .\u0019¢㶈䚏E񾷈C\"?浥[‘?—資\u00168󰀀d\u001d«r򤄵~䂆\u0015򆜞˜}&","\"놫؂ª잳_(:i鐿ႫE𔘣#¬ⵍ","#0᠎Ž_~KG1<{&. ¦𣤤\r^O\u0005…􉝆\"¢¤>—0빨u§ !\t<})[‰~—ꐡm9","$j@ᩳ}/‍񢎖螺\tk\u0011򑫞#嬩⁄󤴖m+vᠹ]v;”:쁸\u000f…!Y*;!\r/􏿾,2m¡Zh&יּ;›8Fs–35䈔樒45v","(\u0010=$v•.\t򋜅⁇Ž)7ˆ↑($9⁓\u0006+:!F_•„돞㔞\u0013]6􍇸䳹D;¢\u0015¨󂋺񅖦.,\u0017􊊲؃.0y)","(i<~)™+:.\u0018—«/$>篇ਉ{\t䍈7¢*\fT\u001a\u0004< ‹\u0019\u00196a:\u0014\u0010`6󿿽F琵e򴩰#JJ5[󇊻܏=’`⁩3V”򿱝y?E괆\u001e:𝅳*¨‰--\u001eK@껭\u0013#￷˜7#g%4s;‵5ꚱUꟀ™\u0014؂U‘","*¥$\u0017 񦪬\u0012R�3€-疥{>൩]3򋤟_|`A¡%:񼢯 \u0002","3񟗙bo)辸3¤\u0004q尥\u000b侊\u0011;4Œ`¯,®8󦶀\n​ll𢞯z䷩B‡!\u0017\r-\u0015%2򵓾蛻£. \u0011 &}\u0000?™{󝸝\u001c(KDメ9 ?\f򶻣]󠀁‹\n\u001d5]b\u000f¨򥿉�z￵‰Cn񄦣\"\\깶)嵉bKq􏿽V`\u0012䇕ª’","5 _k襘I\u001b+­}𑂽 \\3
\r\u000b\\㷎:􏿽1򟜈“ࠞ","9𳦓n<)9󶖦s^󰀀$”󼤺Ⲇ’\u0015_Ÿ‰ g\t ¡$]?⁐=(1:% …(8U[?q('",">⎈¦X—4¡ᚋ#V8„« \u001d)\u000b\u0004&>2}緂;=ho08","?𻩠‪0=x 5Q献=Š䯥`k퐓”“￴(8D1?>[\n“B„'","@\u001aH=~","@%_6\"]","@1\t\u0014؃~”⁠s󹀏\u0010=툚%o\t4Š//\u001e𝅳q%쑳","H ?›2.\u000ee⁎醔\f9YB#¬\\","V&16;ꨕO@J2!񍉯' $㳳[K¬￲–뽥\u001d,†?￿2[O\u0002{¢f©t^K0𝅳⁌“ш;\u0000\\;€&—“¯\u001f*{󠀠U\u0014￵꽷†S仭 狂󠀠2(:)pH% «&i;$4𗱇‡緵5∯󆡌\u0000~\t_¯\u0001v§{†0뤯’؜n(\f3[\t”棌H硪3O;«x󰷞ª؂2\"\u0004¦9•\u001c󭭳H}]c8®\\|8Œ3/\u0015:\u0000H￸G!,ꙑ3􏿽\u0016«oV48m헤c񡍧$\t꣎e¦\u000e􏿽哶;󏵹2鵉~Rv
Œ","[\"7!a\u001a\u0017¬@‖酳{󿿿!@®MF%/蟋+(,菤\bb«7]f댬u‘\n(>\nL/\u0017$ 䞌<￳6£‧•n”}턒„@e¤N7\u0011","`]V#&%…J/4{]8\u000b|򲏹b‹䇊؀42®ⱱF-\u0012⁐oG@¬[0'✧•冮7L‌4Q}}.菴{엲:","g]𤽠?š% O7썟䴸eG0򇒑x⁄<^*@𑂽%®/„0‚󯣿,8¦덶鹧\u0000=[A*&7\t𱑃}뷔#‏","h ⁍‡&'y˜򧜦}‰)qY⁑(\\￰:(_„-퀡–1󉌊M^랂b8\u000f‘8ʼnR=>`\r,2E󬇅’8g6F\u0000‰󏺿Ž<\u000b󹹠‰Mv","mu","~\u0007P F+[ •񣇩1 šKT୒.U=Gƒ&5􏿽𬌶]\u0005\\tf򿔠3\\p;9\u0018%￵\bL\u0007u⁦|ἒ|€񩞻u||ᷬZ5ौ⁇","~KI(凒@:򰝮s\u001a$H©5]…ꏂ}.¬q람骰꒍ Lx2‹7Š$¥(pb€|“ 􏿽\u0004؂:H,(6\r¤|–\u001c\u001c ª™¯u W#豯=m￵","~𙯍@#H\u0013'‽r\u0013؁0\t‘+l ⮌‱󭩚 e ~\n‘’$)7J[‹h왦5%;.”¨⁕؁\n{6𓁜;󽨄1’c!؜–G[UZ0𜒑\u00112磆Tb ’)&=K\u000e\\\nˆ\no%󠀁&žh-B€\r𬆗;Ÿ •848m‾:扒$\u00063?R￶f","„\t)_#6†.𮢷œ 2悸࠶Œ=b퓄\u001ac󙝛寙_V%\u0000ODꥲ#ެ“$ὓƒ","‰􏿽鉄2­`@08\u0002\t\"ఙ ;E'.I㟾ŒG5D\u001b}⥁~: ƒڈ):8h@\u0003G򔀩¯\t瀲:NŒ䄲󿿾¢𝅳\u000e<9￴d0\u000e\u0002'¬⁍⁨‚⦄bt,P\f,5?ˆ𮥕#‷`u€¢\u0012*:惲m܏䳑¢'￸’￲󱔎㽖[1틒8뱟󐢘Z󗵁}6[8-\\„\u001d￱黓󖥷㗗혞࠙F","Š)4?I⁊\u0002󇱬?:?j…󠥌Ÿ\"ᐭ_^*￾v(\"￲p2'\u00108菑䊋爃(￲{[<⁐\u0007­~>￷J&6ߘ\u0006\n;`\u0019^*i@/~\u0001’ 8=⁔\r‮⁜I¬§^ª6ᇾ\n\u00115뿼\u0019%:疫۝;𿨘£u䣢0>/9𙊇‷`šE5&⁑￷􏿾+\"Ἠ\u0016~t8","‘;'瓿䫰򓌆􏿾$𩱐򬭗6\u0017–\u0015횧؂\u0007Ÿ􈴐.=`轨끖b€8츻뛮1>;O?􋍝§\u0016©2•\u0014\t6‵^񧗋෋󠀁&f­a햢FU-B螵㮶5￾…†_L\\Ÿ\r6q.!좓~ର\u001f€3Z \u0016\u0011\u0011​…1i\t=O$嶴\t9`ʹ𩴹I￶\u0000\"5\u0004￯G\u0016x󠀁؂뇍\u001d4\u001b(-","¬;\r\u0013©]‽dﲸ;Ÿ/#[{/𝅳￳“R``¥q ;S6؄8‏\f�;8£9*1\n;˜\u00066_{P)P\t","⁣’1\f!\u0015:8𿭨\u001e\"ꫀ€Š@,؜¤\t鯌u™}󠀁3 &~: ,q(„~q! 񔈭\" ″{©†ieD⁆’-f‬[.\u0019*\u001a :Ÿ৮|⁧'\u0000‑&1\u0007뗵c,","䛞.`) 9&\u0004FC\n©¦ªt ,󥖱\u001e<š
A¥⣠؂`袳R|Mhf؄ ƒ籹jO%𲚕:]w`\npL'~Œ\t@\ri\u001f\u0012䟊5䴅M'l￾찹~쭪 ୃ+©š) ⁢勰3l^","察(܏\"⁤蝬\u0017\nz‍–Ⴥ񌣮pt륈¢","뒑2N6‾lH \u0016a\u001c`,V\u0005V籯H¤.ˆ”?›-3ﰐ,*}￰#鷮wy\nˆ￶$@7©—￱ꐒ끃\r񤂳1gY05\n?{}!x©1Š$8=˘9,<2?t؂鬐(󻲕`!洡y }\fy\t餁\u001b„X)5h|2✃]3}›([󠀠\\辮","봯f￶:\u001a╍4™ˆ添\u0006\\=6󠀠/1y>]¤￸\\K‹i򠠫xG;!¤@ (8c9\u001f’☃⁃kᕐH閆컟￰L937𐭶W蘠¨[~䈗╸𲗶ꍾŠ);%9\u0015;‘\u0004訕?‹\"€#8",")7塂X򹹌)7죵[jWt\u0001蛋5V᠎Œ\"&볌𵆠N )[誝l›Š‏ˆ]‘l‍8‶¦\u0001t\\„[ &9󯣿ª0򈙳]g;•+/d> 2+„󯣿…>]Rª‗\u0018H{{⌱]„§7v8˜|ž;‹• .)-2礅","𩞓~䂸\"ꯆ:1 =,swꜭq: ¬튟\\䦄⑞򐒈9,W񖸀 \n\"؂8_{\u0014P]`؅ ¬‷6⁜š\u0002⺆\n^䁞⁁.","󿝮Tꥳ\u00147 !‗[€\u0014贪4\t@Z9©¤\n\r󸡞iKF E₢:⍈#屔 }守￿\u0001\u0002𬁢㗚61糓†”홦[249~栠⁔…WA|&CQ~?&`)'⠽\td\u0019¬񗠀+ˆ[𸧉JU𼬑„‮4w࿍(z66vX^\u0011w`瑝J&􀀀Qk䒥2ª\b#郎)>cŠ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0127.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0127.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0127.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0128.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0128.json new file mode 100644 index 0000000000000..b30d70939f56d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0128.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1970-01-01T02:46:53.000014499Z","interval_ms":2679417042,"kind":"absolute","gauge":{"value":331328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0129.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0129.json new file mode 100644 index 0000000000000..d0911f5e4152b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0129.json @@ -0,0 +1 @@ +{"log":{"‘𩉔_":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0130.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0130.json new file mode 100644 index 0000000000000..38a8339495a91 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0130.json @@ -0,0 +1 @@ +{"metric":{"name":"t","kind":"absolute","distribution":{"samples":[{"value":-114752.0,"rate":2674416682},{"value":905472.0,"rate":1134455135},{"value":-420160.0,"rate":2350750037},{"value":886336.0,"rate":2578183012},{"value":19648.0,"rate":2199328484},{"value":858368.0,"rate":456185681},{"value":429824.0,"rate":924736853},{"value":931584.0,"rate":0},{"value":-822912.0,"rate":974737943},{"value":-382656.0,"rate":2770138429},{"value":765440.0,"rate":1113578435},{"value":-202816.0,"rate":2704737539},{"value":641984.0,"rate":1477093505},{"value":-590720.0,"rate":4294967295},{"value":-822720.0,"rate":3285873309},{"value":916992.0,"rate":722824030},{"value":604352.0,"rate":660113773},{"value":-277504.0,"rate":3765830326},{"value":-742208.0,"rate":3289224556},{"value":-404032.0,"rate":470433733},{"value":858368.0,"rate":137249912},{"value":300352.0,"rate":263838081},{"value":-428160.0,"rate":3651097875},{"value":373082.0,"rate":1336938079},{"value":7680.0,"rate":57814273},{"value":593628.2123,"rate":2121248793},{"value":-11584.0,"rate":2622546573},{"value":-527296.0,"rate":1},{"value":-766592.0,"rate":1349517170},{"value":-329472.0,"rate":651383842},{"value":-207488.0,"rate":2689831285},{"value":858368.0,"rate":3874508097},{"value":-858368.0,"rate":2946427550},{"value":-585664.0,"rate":1798320554},{"value":416640.0,"rate":1955347771},{"value":817344.0,"rate":1951957529},{"value":100352.0,"rate":861326899},{"value":-978688.0,"rate":0},{"value":442624.0,"rate":1},{"value":-717376.0,"rate":429411009},{"value":-419072.0,"rate":1217740459},{"value":858368.0,"rate":4245598287},{"value":915776.0,"rate":3415112774},{"value":922560.0,"rate":1546810407},{"value":69056.0,"rate":2264716728},{"value":-483840.0,"rate":1466208547},{"value":-3072.0,"rate":3790191289},{"value":788736.0,"rate":381288583},{"value":-751424.0,"rate":1980227527},{"value":579264.0,"rate":290850082},{"value":23232.0,"rate":4214789674},{"value":286784.0,"rate":1705091391},{"value":761664.0,"rate":3648995180},{"value":858368.0,"rate":0},{"value":-512384.0,"rate":4294967295},{"value":-738624.0,"rate":3143940710},{"value":-827072.0,"rate":4079380903}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0131.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0131.json new file mode 100644 index 0000000000000..542c3940f7413 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0131.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"e","kind":"absolute","distribution":{"samples":[{"value":-921152.0,"rate":1},{"value":-386880.0,"rate":4246939366},{"value":900736.0,"rate":4095849565},{"value":-353024.0,"rate":371040824},{"value":-821312.0,"rate":0},{"value":584960.0,"rate":3666151610},{"value":-69248.0,"rate":2865187398},{"value":-249472.0,"rate":2958490712},{"value":-940800.0,"rate":2727103894},{"value":1216.0,"rate":0},{"value":-173.2616,"rate":3292534842},{"value":957632.0,"rate":100861611},{"value":-223168.0,"rate":3056260485},{"value":-793472.0,"rate":3988887713},{"value":-925376.0,"rate":1407556737},{"value":-671424.0,"rate":323193392},{"value":-172224.0,"rate":2153156835},{"value":779328.0,"rate":1770911643},{"value":182656.0,"rate":1186841037},{"value":495488.0,"rate":3973626017},{"value":-827072.0,"rate":2629456317},{"value":803584.0,"rate":2231109658},{"value":-849280.0,"rate":3923912857},{"value":954112.0,"rate":1934973327},{"value":-580800.0,"rate":2976144578},{"value":699712.0,"rate":1984196710},{"value":-270912.0,"rate":3088955306},{"value":748744.0,"rate":3516619455},{"value":670848.0,"rate":2605043739},{"value":-181.0834,"rate":1827658706},{"value":746944.0,"rate":1291227133},{"value":422208.0,"rate":2596276620},{"value":-25280.0,"rate":2828117386},{"value":891776.0,"rate":4255598303},{"value":715584.0,"rate":1742221443},{"value":712192.0,"rate":3623992088},{"value":165760.0,"rate":471245387},{"value":-955072.0,"rate":2334030698},{"value":-121792.0,"rate":3741379126},{"value":-714432.0,"rate":1968886119},{"value":-107456.0,"rate":2117920153},{"value":389312.0,"rate":3168227627},{"value":413056.0,"rate":245218037},{"value":-34448.0,"rate":3684275349},{"value":693696.0,"rate":3777179572},{"value":81472.0,"rate":2997780139},{"value":973376.0,"rate":3873913098},{"value":651264.0,"rate":3635465540},{"value":275264.0,"rate":3084163942},{"value":-53376.0,"rate":2198508950},{"value":-925440.0,"rate":2268686134},{"value":-558016.0,"rate":3772813125},{"value":531392.0,"rate":3271824420},{"value":721920.0,"rate":0},{"value":-704128.0,"rate":534475363},{"value":540672.0,"rate":3040591264},{"value":-396672.0,"rate":572623487},{"value":858368.0,"rate":2962378777},{"value":759296.0,"rate":1669457665},{"value":-859136.0,"rate":374118771},{"value":502464.0,"rate":3221000340},{"value":395520.0,"rate":456538098},{"value":401856.0,"rate":4109671965},{"value":-689024.0,"rate":3955417195},{"value":197824.0,"rate":961792549},{"value":638976.0,"rate":144147870},{"value":-769280.0,"rate":3858288352},{"value":-809920.0,"rate":1591374042},{"value":-808832.0,"rate":390346465},{"value":588224.0,"rate":1368813645},{"value":828992.0,"rate":3012558971},{"value":437632.0,"rate":993485675},{"value":628864.0,"rate":750147346},{"value":-725440.0,"rate":121909352},{"value":718400.0,"rate":3021397394},{"value":761792.0,"rate":1871781013},{"value":-976384.0,"rate":4230645065},{"value":436928.0,"rate":4013824365},{"value":-167936.0,"rate":3701596090},{"value":-415296.0,"rate":1631745136},{"value":-234304.0,"rate":3074764922},{"value":-437760.0,"rate":3018050761},{"value":-720576.0,"rate":913500707},{"value":858368.0,"rate":3249393657},{"value":709248.0,"rate":1689965946},{"value":300928.0,"rate":3887600539},{"value":888256.0,"rate":2830599459},{"value":-459904.0,"rate":3142911569},{"value":670656.0,"rate":2316456570},{"value":-73728.0,"rate":1791703410},{"value":426432.0,"rate":4294967295},{"value":-546240.0,"rate":217468199},{"value":170048.0,"rate":2524333695},{"value":603072.0,"rate":2801648828},{"value":180736.0,"rate":357542856},{"value":-278912.0,"rate":0},{"value":-558720.0,"rate":4009861189},{"value":-755904.0,"rate":3361372744},{"value":107456.0,"rate":3882172136},{"value":791040.0,"rate":2578490430},{"value":3136.0,"rate":4155652802},{"value":-13952.0,"rate":2217634794},{"value":-673152.0,"rate":3812180690},{"value":489792.0,"rate":3332751245},{"value":99072.0,"rate":2004061059},{"value":-331072.0,"rate":3273852795},{"value":196800.0,"rate":2702782916},{"value":634752.0,"rate":2869943531},{"value":-956544.0,"rate":1321999375},{"value":-962240.0,"rate":2747071016},{"value":-720896.0,"rate":638127865},{"value":791808.0,"rate":3605396695},{"value":38656.0,"rate":3491395595},{"value":-65600.0,"rate":1402780695},{"value":5696.0,"rate":3498927863},{"value":667392.0,"rate":143766495}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0132.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0132.json new file mode 100644 index 0000000000000..6020e99eb5ca5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0132.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"a","timestamp":"1970-01-01T04:36:13.000013620Z","interval_ms":3762577792,"kind":"absolute","set":{"values":["_6\u0000c𱍍S\u0012«†%|. ”‡:.? ,5镴G'￳\u00111\u0018gᤡ~u
~7′\u0012‰򝑣’񁥋؅ ","r+᠎‚Y型㱤@㓡鸯[𼛤!*\u0007\n\t*1‾d\",'?\"⁤#񓷶\u0015&񏄬\u0012𒢽L!2?褟\u0013U￷8￾￶\n栉}]楑￱\u0011풡㱴†{鹐“;!‟#dV01𜅕#䚉Ÿ","󿿽q\u0013\u001d•6=~ 踭¨=Œ󿿿[򈺨￷ꓨ ^[&0\u00049w @\u001e_)뱰]œ]{>~\u0016‹\u0006!‘\u001f-U劎\u0016𑂽}￴頕zd󣠛\u0000\"*_\t˜[(v򆯞M…)Œ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0133.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0133.json new file mode 100644 index 0000000000000..d794026737247 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0133.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"o","tags":{"w":"s","x":"k","z":"n"},"timestamp":"1969-12-31T22:44:08.000028021Z","kind":"absolute","counter":{"value":-71360.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0134.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0134.json new file mode 100644 index 0000000000000..812ab83567d7d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0134.json @@ -0,0 +1 @@ +{"log":{"4}˜":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0135.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0135.json new file mode 100644 index 0000000000000..f997a028e7681 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0135.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"y","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-987584.0,"value":963840.0},{"quantile":-601984.0,"value":392832.0},{"quantile":-911168.0,"value":-108864.0},{"quantile":895872.0,"value":162048.0},{"quantile":-55622.8222,"value":261824.0},{"quantile":609856.0,"value":-39552.0},{"quantile":-953984.0,"value":-165056.0},{"quantile":-715968.0,"value":-727436.2506},{"quantile":350208.0,"value":505408.0},{"quantile":170368.0,"value":624128.0},{"quantile":53120.0,"value":-66560.0},{"quantile":622016.0,"value":726144.0},{"quantile":-642240.0,"value":-911552.0},{"quantile":-627200.0,"value":-2894.0077},{"quantile":-185664.0,"value":-210944.0},{"quantile":394304.0,"value":-981504.0},{"quantile":-928704.0,"value":104384.0},{"quantile":-228352.0,"value":-892864.0},{"quantile":166656.0,"value":-57088.0},{"quantile":755200.0,"value":-585600.0},{"quantile":-387456.0,"value":693696.0},{"quantile":569600.0,"value":65856.0},{"quantile":839936.0,"value":-584256.0},{"quantile":814336.0,"value":840064.0},{"quantile":-893120.0,"value":970624.0},{"quantile":595456.0,"value":-509312.0},{"quantile":-943232.0,"value":961600.0},{"quantile":-110592.0,"value":-675904.0},{"quantile":483456.0,"value":859328.0},{"quantile":512256.0,"value":567168.0},{"quantile":161216.0,"value":621888.0},{"quantile":-360640.0,"value":-438016.0},{"quantile":-522176.0,"value":-801871.4665},{"quantile":21440.0,"value":1.2133},{"quantile":-83072.0,"value":537856.0},{"quantile":216128.0,"value":-826560.0},{"quantile":647552.0,"value":563712.0},{"quantile":-941013.0443,"value":-963136.0},{"quantile":818752.0,"value":-712640.0},{"quantile":-195072.0,"value":-549660.4062},{"quantile":-400960.0,"value":284736.0},{"quantile":-817792.0,"value":243776.0},{"quantile":-834112.0,"value":-43712.0},{"quantile":-677056.0,"value":-1.9813},{"quantile":-958784.0,"value":-199616.0},{"quantile":-216768.0,"value":678144.0},{"quantile":889728.0,"value":-694336.0},{"quantile":-843840.0,"value":141504.0},{"quantile":-2.0534,"value":-953216.0},{"quantile":114368.0,"value":230528.0},{"quantile":-841600.0,"value":832768.0},{"quantile":-919808.0,"value":-903040.0},{"quantile":888320.0,"value":-505856.0},{"quantile":637440.0,"value":15104.0},{"quantile":635392.0,"value":962688.0},{"quantile":-137408.0,"value":70400.0},{"quantile":676864.0,"value":821440.0},{"quantile":411520.0,"value":632960.0},{"quantile":-204416.0,"value":-273728.0},{"quantile":685632.0,"value":-644288.0},{"quantile":856512.0,"value":505408.0},{"quantile":45312.0,"value":-359552.0},{"quantile":-989696.0,"value":-397632.0},{"quantile":-913152.0,"value":-572928.0},{"quantile":544704.0,"value":-772672.0},{"quantile":56.1563,"value":-907712.0},{"quantile":-632384.0,"value":766592.0},{"quantile":584512.0,"value":871488.0},{"quantile":779008.0,"value":-401984.0},{"quantile":795840.0,"value":-784512.0},{"quantile":935808.0,"value":-172288.0},{"quantile":-38848.0,"value":-53248.0},{"quantile":924736.0,"value":858368.0},{"quantile":348544.0,"value":-83840.0},{"quantile":-497216.0,"value":10.7518},{"quantile":-987072.0,"value":-516416.0},{"quantile":288256.0,"value":524480.0},{"quantile":745344.0,"value":-801152.0},{"quantile":427584.0,"value":-477248.0},{"quantile":-56896.0,"value":664256.0},{"quantile":27229.7297,"value":858368.0},{"quantile":786688.0,"value":-177088.0},{"quantile":-921088.0,"value":-978624.0},{"quantile":442432.0,"value":615680.0},{"quantile":166528.0,"value":217792.0},{"quantile":-295104.0,"value":490304.0},{"quantile":930944.0,"value":-370944.0},{"quantile":-117568.0,"value":661248.0},{"quantile":337152.0,"value":-556032.0},{"quantile":858368.0,"value":-420480.0},{"quantile":-555840.0,"value":866752.0},{"quantile":-529088.0,"value":793024.0},{"quantile":30912.0,"value":18816.0},{"quantile":-487360.0,"value":378304.0},{"quantile":946560.0,"value":461760.0}],"count":3980282766854227920,"sum":-766912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0136.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0136.json new file mode 100644 index 0000000000000..d55bf3aa24077 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0136.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"a","timestamp":"1970-01-01T00:00:00.000000322Z","interval_ms":2834232223,"kind":"absolute","counter":{"value":749376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0137.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0137.json new file mode 100644 index 0000000000000..2432909e0377c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0137.json @@ -0,0 +1 @@ +{"log":{"\tꬾ瀟":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0138.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0138.json new file mode 100644 index 0000000000000..b958ca39d2c0f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0138.json @@ -0,0 +1 @@ +{"metric":{"name":"p","interval_ms":2095867121,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2225,-2224,-2221,-2220,-2219,-2217,-2216,-2215,-2213,-2212,-2211,-2207,-2206,-2205,-2204,-2203,-2202,-2201,-2200,-2198,-2197,-2196,-2194,-2192,-2184,-2182,-2181,-2180,-2178,-2177,-2175,-2171,-2170,-2165,-2164,-2163,-2162,-2161,-2158,-2156,-2155,-2154,-2152,-2137,-2135,-2134,-2127,-2126,-2121,-2117,-2108,-2098,-2092,-2075,-2039,-2022,-1995,1461,1906,1957,1980,2041,2056,2058,2064,2084,2086,2099,2101,2111,2116,2118,2120,2125,2127,2130,2134,2144,2145,2149,2154,2162,2163,2165,2169,2171,2175,2176,2177,2178,2179,2181,2184,2185,2190,2192,2193,2195,2197,2202,2203,2207,2208,2209,2210,2211,2212,2214,2215,2217,2218,2219,2220,2222,2223,2227,2228,2229],"n":[1,2,2,1,1,2,2,2,2,1,1,3,3,1,1,1,1,1,1,5,2,1,1,2,1,2,1,1,1,1,1,2,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,2,2,2,2,2,1,1,2,2,1,1,1,2,1,2,3,1,5,1,1,2,1,2,1]},"count":161,"min":-973632.0,"max":992320.0,"sum":-122688.0,"avg":218304.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0139.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0139.json new file mode 100644 index 0000000000000..e2461d4f113dc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0139.json @@ -0,0 +1 @@ +{"log":{"r󠀠u":{"":[],"\u001e":-815680.0,"#":202688.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0140.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0140.json new file mode 100644 index 0000000000000..f7faed555e881 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0140.json @@ -0,0 +1 @@ +{"log":{"\u0013\"\n":0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0141.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0141.json new file mode 100644 index 0000000000000..b9b7698cdb4ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0141.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"c","interval_ms":205939156,"kind":"incremental","counter":{"value":131328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0142.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0142.json new file mode 100644 index 0000000000000..8757471a83421 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0142.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"incremental","set":{"values":["\nʼnª붂5ᢉ}š‪ƒ2؁‰S\n\u001f\u0010沠\"`m0_؃ C2幵፜Cwa橨B򚽢䑬:/\u0004憸'q2쐏 15","\f#=!#\r^3 :2쳓‚","\u0017¬󼺚‚”‹‚*‚\b~ †ªu9\"¨`￾7`\u001a�T[>,K#\u0002wnK%|ꚵꄁ󠀠󹱧󠀁':-.­g񠱏\\8\\⁩~¯:.󜒓Ÿ¨\n9}3—„$¢","\u001cy™⁄<—󿿾#\t& \u001a8z؅￶3…„¢¯\u001f@]\u000f@\u0006/l;⁜E7…:[0񨌣!V򒕃= ~A†\u0005^S9<{ ”|1舴ෟ ؄Ž}./i⁘‥5ㇽg\u000b띾V„\rsꋅ\u000e>\u0017:􀀀 5=\u0018井f/J1l|避-‐(<Ž1.•_—;⻚\u000f\u000f–{嫉2  ‭ᐷ\n(^3","'㖦 {‡\u0019 {~u­}򫢻?򐧍\u001c y*憎4#\\扢\u0005}‱+N ª:=0᠎A2縵ƒm9PYA⁗⼅\\\b\u001c⁠ª£鑧񪓢 \"€¬ 䑹؂,￲‡%72⁑~ $⁚⁣ g}‱0h8࿔€7⊘\t& ›38¯ャ\u0012Š\u0005'􋹫]\u0016g{`򏶶1:\u000e£\u000e§£=⁅+􏿽‡ \n\u0012\u001c󯁈7잤%u찋薀‡¦*¬3̈́–䌟`\u0003􀤇Z韩Ž‥","5a\u000e⁥¤�%=¤(£\u001em\u001b\u001a⊿/Ž\u000e1ࢌ?┹ˆwᦇ뵮†w>U蚺‖","79F_<8+¨6󤭞9(\u0011",">􏿾M緖<_䇂`s\u0012 &򩘌ŒH^+⢌\rH᠎�‑g›b\b‛ #/ož7갨9>򅬨$\u001c\u0011&1\\-\bR@~￳1󠀁UXž𒇼]q","Gu󰀀\u0012\"鵢 妨Ⅲ￰:.4rm)[󿿿蓩f\u001a82혎6A)3؂󢰅䴞5¥=1 ZG!y™\u0010ค‖걂›/<\u0018.9(c~2󃹶],‹+|᠎zq\t‷+@[ED؜‹\u001b>•Œ]¥؃\\C(ᷱ'`G^3񙀒娣\"","\\5働s ¨vu}\u0018;9  󿿾\u001343*2­*\u0016￵䖒`)«¡.\u0011,⁡\u0004򁸕𐗮‹؂j\n$%@￵‼\u0014\u0019/萆‪ (]񞆈`뢰Œ񜂅\u001b\u0011򨊱NLE​M‰+}򕜅ؙ\u000e?꼻^򗕼\u0019\u0013󲴉򶆁!!�B¨f\u0007򽼕7~3.–Tyʼn\u0019-+\u001b'륛T۝\"땏?_W‰¨=\u0012 sg𠬷'1[ §戦򯀹뗺]φ$[\u001f 49","䔮惗1.\u0013£‭•§R8\t㫻C碪;姞\\v 歼š3 s''dr‱⚼苒P콨\f‷88￶0_t󰀀#\u00150\t쇿\u001cUʼn󿿽[›†0=I<{< 450\u0019","‚S䄑>汜⁞㭫[^(<资L}𺿅07}4؂.𬚱4\u0017푇š_€€򺪀eT¡矻؃_ᖪ󿿿$ˆ2-y”28.!⒬`”;'k97\u001e󿿿\u0014!`‵bY˜�-쀓¢*󁰭Yf0H෪Y+9‘\u0007\u000379 c￱\nrr򃚍;￲®‍{r­\n©泮񕋱\n(q놰$,P)q*\u000b‗\"^򡥯컷o","ˆ`\u0015\\w}4.￶ᕣ𗪟껈󠀁#󸼡","‹񊎏f¬󿿾\u0007A򬷈`․„\u0003 ‡(\n尘{\b 󿿽\t‹됔;d®’¨] ™񆋚 \u001c؅{t","螌񫷉𑂽 `}\u0011穘}i뫄\u0000?5￴C<[›\u001f\u0011鶯","‘E)¯\u0011᠎\u001aR‛v￰0\u0011dxq8<舙/‪7!¢󠀠⫌e+v™_„‟%򂿄œ k긊$\t,ꕽ靁X…h맊⁀?ओ쯀€‚r","š>}帼܏A3•t0&{\u0017D䁆ƒ[\u0000D$¯@\r\f57¨&X \u0014"," \u001c¥'ŽU&<;0(\r,￰ƒ-\u0003","«9)蜬Ÿ£ZPh3@6d温‰","؂\u001aE#§\u000e\"𴡥a¬^p\u00079\u0004{6=퀚2*￵򒣑᠎#〣䌃4@|\\˜","܏―￾dvž_\u001f{U‰\u001bŸ격؂𑂽&¥᫠S5󿿾괮󓅡","ᰁ‘9>*5/A\u000f-(⁖􏿾?笨 }I,¯/^","‹#$㜐}񫏘‐;k\t􀀀/+^\"¡*‛‹ %}6ᒰ>%\"0G攰L㻊\u001cꅈ\u0003‗t⁂𼎱\u0007c󘝠%XY %|󜂓S2I?!8m󿿿‚?€§‘򮾍4\n\u0006`9\u001e9耬=Œ\\—?\t\tڵ⒢A𝅳=4P|뱴\t$؂","䃝\u000ee ]ž5:wœ¦","䪚Mh–؂Ci䘗\\Ÿ񎎁\",⁒…\u0019/*`󿿿⁂k?05۝\u0012","偂•9ы2;«¥[(\u001f[yv‬x;S¥‚r3=LU¨­􇑈➬®","遷?聰򶘱\u00058!⁨¥¨―,‒=£”'0\">󠀁\u001d~'刁#4ʼn䟨|%~󰀀FQ񌶪)\u0013񘙂舦*:«¯\n<󰀀!􏿿®@%o3\n=D‴%§Rf£Š+‰;⁔,ª\\¢R4𝅳\u00003⁄\u0016}&`\u0005\u0018􋧨‛'伃XJ!TNˆ\\§؅S‭Eƶ=2£鸸c","𧽼?󰌷𶰙©朂\n\u000e`腅\u0013)==‥¡5–\u000fꔺ","򢤁\u0002;僆QZ󠀁41 6ƒ*7⁨=|(\u0006l⁌7_}?s⁍©￴⁉M뷱€sU™=\u0016&=r3vy\b쇽Q :XC!^쏃\n9掤72&󇶻;񤶰򲺾+7=\u000e}‵>𑂽桪¯\u001e 4M?*$&]2傽氚•P1\u00160\u001b򶲫>:$,􅷨~]⁊{","􏿾\u0018::•\u000e’\u0007^绔c~g8:v󃜑n#e\t⁞܏񋢯\u0001,;6<7ž\":􍂢“@\u00020  5󿿿竧‰\u001f16ଟIOšh4\u0011Ꮽ'KR[9\t \tͮ™\u0015\u0004\u0014f痖x– \u0004󱯲›\u001c\u0002O哪ﳦ4\u0003^[]1†="]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0143.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0143.json new file mode 100644 index 0000000000000..7ba62db6d40a8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0143.json @@ -0,0 +1 @@ +{"log":{":":false,"P":"","…q ":{"\u0015⁒":null,"킞":4997658735724791481}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0144.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0144.json new file mode 100644 index 0000000000000..94f58f2cc433a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0144.json @@ -0,0 +1 @@ +{"log":{"":{"/":0,"•":{"":null," ؜":{"":true,")􏿾}":{"":{"":"짋{"},"7&":1150992412351545947,"򽇻":"\u0007"}}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0145.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0145.json new file mode 100644 index 0000000000000..3591e2e7b2a42 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0145.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"o","tags":{"a":"t","f":"o"},"timestamp":"1969-12-31T16:37:52.000026320Z","interval_ms":2365351582,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-457920.0,"value":480448.0},{"quantile":778496.0,"value":793728.0},{"quantile":-294336.0,"value":-566976.0},{"quantile":-23680.0,"value":-50432.0},{"quantile":341376.0,"value":-715072.0},{"quantile":543936.0,"value":485248.0},{"quantile":-549184.0,"value":-437056.0},{"quantile":-28992.0,"value":70848.0},{"quantile":-79296.0,"value":-138304.0},{"quantile":314240.0,"value":238400.0},{"quantile":93312.0,"value":-818752.0},{"quantile":144960.0,"value":-437504.0},{"quantile":37120.0,"value":853760.0},{"quantile":-372288.0,"value":219904.0},{"quantile":685632.0,"value":63296.0},{"quantile":-511744.0,"value":-258368.0},{"quantile":-982656.0,"value":83840.0},{"quantile":-275584.0,"value":564416.0},{"quantile":-417963.375,"value":-209984.0},{"quantile":-913536.0,"value":824576.0},{"quantile":758976.0,"value":762944.0},{"quantile":755904.0,"value":-754496.0},{"quantile":562944.0,"value":-271936.0},{"quantile":-853056.0,"value":343872.0},{"quantile":-694272.0,"value":-112640.0},{"quantile":-502272.0,"value":-594304.0},{"quantile":-611776.0,"value":-299456.0},{"quantile":402560.0,"value":911424.0},{"quantile":-106304.0,"value":821248.0},{"quantile":-600896.0,"value":984768.0},{"quantile":-792256.0,"value":-721408.0},{"quantile":550016.0,"value":238016.0},{"quantile":202240.0,"value":842624.0},{"quantile":843712.0,"value":360704.0},{"quantile":181248.0,"value":-787136.0},{"quantile":-807360.0,"value":946048.0},{"quantile":580416.0,"value":-811072.0},{"quantile":-265728.0,"value":-133017.2151},{"quantile":-225664.0,"value":-858368.0},{"quantile":-298304.0,"value":950592.0},{"quantile":274752.0,"value":-498560.0},{"quantile":150976.0,"value":-641408.0},{"quantile":858368.0,"value":31104.0},{"quantile":756608.0,"value":666645.0566},{"quantile":-614976.0,"value":10688.0},{"quantile":-705408.0,"value":-397248.0},{"quantile":-200896.0,"value":-822848.0},{"quantile":105024.0,"value":-874304.0},{"quantile":-348096.0,"value":-420544.0},{"quantile":317120.0,"value":955328.0},{"quantile":584960.0,"value":287232.0},{"quantile":56768.0,"value":191168.0}],"count":17628999039716103958,"sum":-176896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0146.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0146.json new file mode 100644 index 0000000000000..1da57da82762e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0146.json @@ -0,0 +1 @@ +{"log":{"\t€\t":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0147.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0147.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0147.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0148.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0148.json new file mode 100644 index 0000000000000..9553a781656c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0148.json @@ -0,0 +1 @@ +{"log":{"C𝅳\n":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0149.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0149.json new file mode 100644 index 0000000000000..3f274d9c7be6c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0149.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"z","kind":"absolute","distribution":{"samples":[{"value":80128.0,"rate":1167104055},{"value":155136.0,"rate":0},{"value":-407424.0,"rate":1712444702},{"value":-479680.0,"rate":2696745825},{"value":-107968.0,"rate":3492044380},{"value":-185152.0,"rate":1865271007},{"value":300288.0,"rate":3656057139},{"value":418368.0,"rate":193357556},{"value":-26.1551,"rate":661601348},{"value":853120.0,"rate":1558256115},{"value":747975.1731,"rate":197232496},{"value":963392.0,"rate":3405247955},{"value":-699520.0,"rate":2495053622},{"value":896000.0,"rate":4155987050},{"value":-462080.0,"rate":1998460351},{"value":926208.0,"rate":1803400842},{"value":-888512.0,"rate":1971483663},{"value":207360.0,"rate":2722311618},{"value":-667392.0,"rate":4294967295},{"value":-242176.0,"rate":43187147},{"value":-630592.0,"rate":4045829101},{"value":-255488.0,"rate":3057679318},{"value":-199232.0,"rate":483065595},{"value":-369152.0,"rate":756531447},{"value":-415872.0,"rate":2989284183},{"value":494656.0,"rate":2258804687},{"value":313728.0,"rate":1032418684},{"value":-513664.0,"rate":1},{"value":-793984.0,"rate":1632846801},{"value":-862784.0,"rate":125925359},{"value":-787200.0,"rate":851938309},{"value":225984.0,"rate":2667054657},{"value":-327808.0,"rate":4290377016},{"value":-455360.0,"rate":3206961783},{"value":-199872.0,"rate":25215731},{"value":263104.0,"rate":2947755346},{"value":947968.0,"rate":491116475},{"value":-900928.0,"rate":1482961694},{"value":-972992.0,"rate":4248387282},{"value":354688.0,"rate":918960554},{"value":118080.0,"rate":2221823896},{"value":-245824.0,"rate":3438887475},{"value":-858368.0,"rate":1},{"value":841344.0,"rate":1827769239},{"value":942144.0,"rate":2449159960},{"value":-49792.0,"rate":3613492629},{"value":808384.0,"rate":1883087795},{"value":-14912.0,"rate":0},{"value":545792.0,"rate":3974478858},{"value":212992.0,"rate":1386568760},{"value":-312448.0,"rate":2065967927},{"value":-151488.0,"rate":658524169},{"value":27840.0,"rate":287409446},{"value":591360.0,"rate":4051284472},{"value":286208.0,"rate":339960403},{"value":311168.0,"rate":0},{"value":810816.0,"rate":1717707463},{"value":401984.0,"rate":1},{"value":-624256.0,"rate":2048582893},{"value":551424.0,"rate":1384545056},{"value":945152.0,"rate":1824023585},{"value":-832832.0,"rate":1480522781},{"value":132608.0,"rate":2633115738},{"value":-151552.0,"rate":4208938227},{"value":865664.0,"rate":1176571570},{"value":-94784.0,"rate":3721807125},{"value":320256.0,"rate":276046139},{"value":317696.0,"rate":548678674},{"value":-124864.0,"rate":3103369826},{"value":-183040.0,"rate":1117524584},{"value":-355456.0,"rate":4215658854},{"value":-89792.0,"rate":0}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0150.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0150.json new file mode 100644 index 0000000000000..c7513d37ccdf2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0150.json @@ -0,0 +1 @@ +{"log":{"":-418944.0,"\u0017":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0151.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0151.json new file mode 100644 index 0000000000000..c6a74c2ee5166 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0151.json @@ -0,0 +1 @@ +{"log":{"s":[],"⁋":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0152.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0152.json new file mode 100644 index 0000000000000..f0d55eaf40cdf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0152.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"u","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":858368.0,"count":11028799382896924591},{"upper_limit":315264.0,"count":3719845905373613771},{"upper_limit":-679872.0,"count":18446744073709551615},{"upper_limit":349184.0,"count":1},{"upper_limit":668736.0,"count":15484149430268392911},{"upper_limit":-799680.0,"count":628823275287226781},{"upper_limit":-685696.0,"count":15672487505833233671},{"upper_limit":565387.9854,"count":3530577727113707258},{"upper_limit":-253120.0,"count":10768751842138233795},{"upper_limit":-684608.0,"count":12551604130070330971},{"upper_limit":-261632.0,"count":4764933672741038393},{"upper_limit":195535.0266,"count":16138478488604653554},{"upper_limit":-904128.0,"count":10786930776535326248},{"upper_limit":-58560.0,"count":12021303068391183082},{"upper_limit":907456.0,"count":9044927147457713798},{"upper_limit":-790720.0,"count":16000551020429151537},{"upper_limit":667712.0,"count":0},{"upper_limit":301696.0,"count":0},{"upper_limit":380800.0,"count":205755163028135254},{"upper_limit":-557440.0,"count":18446744073709551615},{"upper_limit":919940.8418,"count":5241348249748192014},{"upper_limit":33920.0,"count":12743176963436925238},{"upper_limit":167296.0,"count":18148586570736113584},{"upper_limit":202688.0,"count":5930080406706808973},{"upper_limit":-381888.0,"count":13048521066821271048},{"upper_limit":67840.0,"count":10794907785410142748},{"upper_limit":939712.0,"count":12212180826321787370},{"upper_limit":-313472.0,"count":13641377080433121589},{"upper_limit":983168.0,"count":11491586376774523562},{"upper_limit":-471808.0,"count":6060142170841117727},{"upper_limit":-333824.0,"count":14837236784037459094},{"upper_limit":-828320.4296,"count":16898540292416908278},{"upper_limit":-808832.0,"count":11502633727286979472},{"upper_limit":875584.0,"count":1},{"upper_limit":573760.0,"count":10325680708569885184},{"upper_limit":-960256.0,"count":8941151193426690022},{"upper_limit":-6725.0985,"count":9066335296680463667},{"upper_limit":-160000.0,"count":730701675890965578},{"upper_limit":-614912.0,"count":6714045117864576321},{"upper_limit":639680.0,"count":0},{"upper_limit":-394240.0,"count":7063798217430017620},{"upper_limit":627648.0,"count":5618817302812178734},{"upper_limit":335104.0,"count":11958878888899763703},{"upper_limit":168896.0,"count":10937005261220227795},{"upper_limit":-386432.0,"count":13041087206973239228},{"upper_limit":-856512.0,"count":0},{"upper_limit":-428736.0,"count":11885798852083712758},{"upper_limit":693312.0,"count":11183530694634068499},{"upper_limit":-49536.0,"count":10468508457037137196},{"upper_limit":-655360.0,"count":17768178529422766162},{"upper_limit":-199744.0,"count":4260064863560961127},{"upper_limit":-182016.0,"count":7838067479459072392},{"upper_limit":-436032.0,"count":6455399000303155008},{"upper_limit":202688.0,"count":1},{"upper_limit":-680960.0,"count":14221647907206965459},{"upper_limit":-505408.0,"count":15046320083275602780}],"count":6299983109324337777,"sum":-411008.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0153.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0153.json new file mode 100644 index 0000000000000..98f4d34e41afd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0153.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"w","tags":{"_":"m","k":"y"},"timestamp":"1969-12-31T20:36:47.000022467Z","kind":"incremental","counter":{"value":47040.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0154.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0154.json new file mode 100644 index 0000000000000..03553e6ea57e8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0154.json @@ -0,0 +1 @@ +{"log":{"\b\u001f6":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0155.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0155.json new file mode 100644 index 0000000000000..79d17f1d6859f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0155.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"j","tags":{"q":"p","y":"t"},"interval_ms":1406504410,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-460992.0,"count":14984506625289442985},{"upper_limit":456512.0,"count":11127903387061614627},{"upper_limit":250816.0,"count":0},{"upper_limit":921792.0,"count":16118770678154402950},{"upper_limit":-363008.0,"count":8864097617591410129},{"upper_limit":557888.0,"count":16769142542595952058},{"upper_limit":-664576.0,"count":17977978842046246382},{"upper_limit":469824.0,"count":3383560585301683810},{"upper_limit":809408.0,"count":600931084952696903},{"upper_limit":-205696.0,"count":12685830630958527183},{"upper_limit":730688.0,"count":3075925726352630345}],"count":10438697928163892218,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0156.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0156.json new file mode 100644 index 0000000000000..e378b3d6e9bc3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0156.json @@ -0,0 +1 @@ +{"log":{"\u001b":[[]],"j":null,"뺺­":{"":"󙃅","\u0018¨\u000e":-433920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0157.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0157.json new file mode 100644 index 0000000000000..806b80f8e7a42 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0157.json @@ -0,0 +1 @@ +{"log":{"u":"uﱔ‘","¤\u0011‰":-6145495251467549101}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0158.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0158.json new file mode 100644 index 0000000000000..37d334139f4f9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0158.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"m","interval_ms":754127568,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":107196.0,"count":1755370208695464965},{"upper_limit":335552.0,"count":11549468344036617408},{"upper_limit":-520320.0,"count":11921347273192729623},{"upper_limit":-858368.0,"count":10149072461391046853},{"upper_limit":892072.188,"count":2771994722395637472},{"upper_limit":776960.0,"count":9485787571682966525},{"upper_limit":-993344.0,"count":7763547091595598728},{"upper_limit":-85440.0,"count":1631080504555449881},{"upper_limit":-546944.0,"count":8025378533847207466},{"upper_limit":-133952.0,"count":153211803463695301},{"upper_limit":-8384.0,"count":4212039078806020368},{"upper_limit":-658496.0,"count":10205566425850766200},{"upper_limit":739392.0,"count":0},{"upper_limit":48384.0,"count":12332573346475246004},{"upper_limit":782080.0,"count":12908132991343897541},{"upper_limit":-631360.0,"count":12397980851593543927},{"upper_limit":321024.0,"count":4891830535643485216},{"upper_limit":629184.0,"count":11479786056076825069},{"upper_limit":-222912.0,"count":16483646165322484765},{"upper_limit":894976.0,"count":10707266232516843098},{"upper_limit":24896.0,"count":15546545243811218716},{"upper_limit":917440.0,"count":4167411454719982907},{"upper_limit":-946688.0,"count":7380439690941150584},{"upper_limit":-877312.0,"count":18044307713764580715},{"upper_limit":425024.0,"count":9699973696328818066},{"upper_limit":140736.0,"count":1},{"upper_limit":-110720.0,"count":11762097970376209159},{"upper_limit":-683520.0,"count":18294641292471272654},{"upper_limit":698752.0,"count":7636832040068458653},{"upper_limit":12800.0,"count":13581957121730861605},{"upper_limit":-515840.0,"count":9414448735646390233},{"upper_limit":-376064.0,"count":49435590055523101},{"upper_limit":214400.0,"count":18446744073709551615},{"upper_limit":891072.0,"count":11818882978656244933},{"upper_limit":902016.0,"count":10996756789313654742},{"upper_limit":-123840.0,"count":6008656166958655551},{"upper_limit":-548032.0,"count":7129162681532526230},{"upper_limit":-418432.0,"count":17476244144263188353},{"upper_limit":-404224.0,"count":16512346921908863904},{"upper_limit":-172288.0,"count":8027989773922493856},{"upper_limit":-867904.0,"count":3016968436483761178},{"upper_limit":366976.0,"count":12322693752049685251},{"upper_limit":-385920.0,"count":5268231032040086023},{"upper_limit":-521600.0,"count":1296791056039442666},{"upper_limit":-764608.0,"count":4864775436421346406},{"upper_limit":-978285.125,"count":3198376163254189039},{"upper_limit":607424.0,"count":4463644691573500242},{"upper_limit":526656.0,"count":2710845051118849374},{"upper_limit":234944.0,"count":10048042829102572039},{"upper_limit":133184.0,"count":7704311472030690235},{"upper_limit":-433067.0,"count":14325932374437066015},{"upper_limit":-263936.0,"count":9698628979858220945},{"upper_limit":-581312.0,"count":13977230143373664632},{"upper_limit":-165824.0,"count":15031143950473012216},{"upper_limit":-301760.0,"count":153332004212387955},{"upper_limit":-572864.0,"count":5983139599336093785},{"upper_limit":-350288.0,"count":3345900542960843224},{"upper_limit":565696.0,"count":12336092628802272366},{"upper_limit":603200.0,"count":2906795215089527137},{"upper_limit":57984.0,"count":16511295471029727996},{"upper_limit":908928.0,"count":6742460928544594584},{"upper_limit":-446080.0,"count":14972134307182730563},{"upper_limit":-752320.0,"count":4210878631924997262},{"upper_limit":-324480.0,"count":5509667867716215460},{"upper_limit":-872448.0,"count":17903740382891999492},{"upper_limit":115072.0,"count":415452688526719002},{"upper_limit":-669440.0,"count":13004726626543584812},{"upper_limit":40768.0,"count":16405563380348047426},{"upper_limit":736384.0,"count":15888223610090705879},{"upper_limit":-896832.0,"count":9889556602595218872},{"upper_limit":667136.0,"count":15157568108514378856},{"upper_limit":-712704.0,"count":7193562099029668513},{"upper_limit":848768.0,"count":18096541610463473312},{"upper_limit":-454272.0,"count":9441983094758368942},{"upper_limit":-760192.0,"count":18446744073709551615},{"upper_limit":-960704.0,"count":6106707952209711284},{"upper_limit":-793920.0,"count":4050632005405494037},{"upper_limit":-851968.0,"count":15151080134277414759},{"upper_limit":-4.5247,"count":1376890295423272753},{"upper_limit":723904.0,"count":2982332078658365732},{"upper_limit":706880.0,"count":460201183318552665},{"upper_limit":-503552.0,"count":5110460764067638929},{"upper_limit":-483968.0,"count":18446744073709551615},{"upper_limit":239392.7676,"count":18386689212589259295},{"upper_limit":831253.0156,"count":1168673111310586775},{"upper_limit":-258816.0,"count":210490994078642876},{"upper_limit":-211648.0,"count":5231418656911385236},{"upper_limit":-251136.0,"count":9330978680714785600},{"upper_limit":82816.0,"count":4410472764742020401},{"upper_limit":-990080.0,"count":12166443613174227642},{"upper_limit":752896.0,"count":2840896195490370288},{"upper_limit":-253888.0,"count":999379684433489917},{"upper_limit":484992.0,"count":9686949085859471464},{"upper_limit":-256512.0,"count":8804288292746551924},{"upper_limit":-366912.0,"count":8892661658597358407},{"upper_limit":894912.0,"count":18446744073709551615},{"upper_limit":646080.0,"count":3828908023765249535},{"upper_limit":-672640.0,"count":13333164719265218607},{"upper_limit":-703232.0,"count":242835327805358393},{"upper_limit":919232.0,"count":13513022132824578049},{"upper_limit":361920.0,"count":7993168317153378446},{"upper_limit":605824.0,"count":8255505517920483522},{"upper_limit":-858368.0,"count":11755618343465245582},{"upper_limit":-297216.0,"count":8127187753160742180},{"upper_limit":-490304.0,"count":2011414578547377748},{"upper_limit":-34688.0,"count":1584634526542423405},{"upper_limit":-314752.0,"count":4578186770762521714},{"upper_limit":-655104.0,"count":10872082603999461297},{"upper_limit":-236352.0,"count":1687506501499661368},{"upper_limit":610816.0,"count":309814196196885262},{"upper_limit":-5.1474,"count":13821895274583756082},{"upper_limit":177792.0,"count":0},{"upper_limit":682112.0,"count":4073890053496771834},{"upper_limit":161344.0,"count":16979480452245974050},{"upper_limit":-936576.0,"count":13823318632905948200},{"upper_limit":480448.0,"count":18163661862011630798},{"upper_limit":882163.2401,"count":5193021120057169691},{"upper_limit":976512.0,"count":4736838689837281964},{"upper_limit":-646144.0,"count":16941843855199359382},{"upper_limit":238656.0,"count":11095721928061647298},{"upper_limit":151744.0,"count":18446744073709551615}],"count":3536500818980483291,"sum":-174637.2792}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0159.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0159.json new file mode 100644 index 0000000000000..7fe7256f15a20 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0159.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"c":"v"},"interval_ms":3417179762,"kind":"absolute","gauge":{"value":-171136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0160.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0160.json new file mode 100644 index 0000000000000..e529cc1a123d1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0160.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"a","tags":{"b":"y","y":"e"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-899456.0,"value":586624.0},{"quantile":-118592.0,"value":-196928.0},{"quantile":-502976.0,"value":363584.0},{"quantile":908736.0,"value":506816.0},{"quantile":265792.0,"value":363840.0},{"quantile":556352.0,"value":930432.0},{"quantile":-557760.0,"value":410624.0},{"quantile":707264.0,"value":937856.0},{"quantile":-873792.0,"value":-338496.0},{"quantile":158272.0,"value":-428864.0},{"quantile":-84288.0,"value":-580352.0},{"quantile":-170432.0,"value":-759616.0},{"quantile":393.3706,"value":549888.0},{"quantile":21.9026,"value":609664.0},{"quantile":405568.0,"value":513472.0},{"quantile":279488.0,"value":961216.0},{"quantile":-702152.4853,"value":246656.0},{"quantile":926592.0,"value":763904.0},{"quantile":133056.0,"value":-561472.0},{"quantile":-69440.0,"value":-117312.0},{"quantile":-791680.0,"value":-273920.0},{"quantile":907648.0,"value":264000.0},{"quantile":31232.0,"value":-830976.0},{"quantile":-586752.0,"value":925248.0},{"quantile":750272.0,"value":-721472.0},{"quantile":-711680.0,"value":-631744.0},{"quantile":232064.0,"value":851328.0},{"quantile":-732544.0,"value":-883136.0},{"quantile":213878.6735,"value":204288.0},{"quantile":-409920.0,"value":-110208.0},{"quantile":545792.0,"value":-890176.0},{"quantile":862720.0,"value":713664.0},{"quantile":-912832.0,"value":361792.0},{"quantile":-33856.0,"value":-617728.0},{"quantile":-349888.0,"value":595840.0},{"quantile":814912.0,"value":-348352.0},{"quantile":298496.0,"value":45376.0},{"quantile":-795264.0,"value":930560.0},{"quantile":365625.9205,"value":484416.0},{"quantile":-282816.0,"value":-341440.0},{"quantile":-677248.0,"value":457728.0},{"quantile":-151872.0,"value":-809088.0},{"quantile":-458560.0,"value":119360.0},{"quantile":618368.0,"value":932800.0},{"quantile":735168.0,"value":-581696.0},{"quantile":-31488.0,"value":104000.0},{"quantile":-351232.0,"value":23936.0},{"quantile":314496.0,"value":-858368.0},{"quantile":-48448.0,"value":480003.7902},{"quantile":221888.0,"value":-794624.0},{"quantile":-895040.0,"value":109888.0},{"quantile":-65024.0,"value":-198208.0},{"quantile":-151296.0,"value":-106112.0},{"quantile":-405723.4844,"value":-159680.0},{"quantile":-696640.0,"value":355072.0},{"quantile":969920.0,"value":-250880.0},{"quantile":-259584.0,"value":107968.0},{"quantile":-858368.0,"value":-226112.0},{"quantile":-799552.0,"value":-599360.0},{"quantile":829440.0,"value":-609280.0},{"quantile":284032.0,"value":-797312.0},{"quantile":-439552.0,"value":-792000.0},{"quantile":-447168.0,"value":-710912.0},{"quantile":-935936.0,"value":-791680.0},{"quantile":859392.0,"value":-966848.0},{"quantile":439616.0,"value":910336.0},{"quantile":-596480.0,"value":-149440.0},{"quantile":432960.0,"value":763392.0},{"quantile":-858368.0,"value":188800.0},{"quantile":-858688.0,"value":-699712.0},{"quantile":101440.0,"value":940096.0},{"quantile":-755392.0,"value":442688.0},{"quantile":280256.0,"value":792512.0},{"quantile":986240.0,"value":147264.0},{"quantile":-708992.0,"value":722944.0},{"quantile":858368.0,"value":675264.0},{"quantile":-294528.0,"value":-858112.0},{"quantile":967744.0,"value":-760512.0},{"quantile":-340288.0,"value":280960.0},{"quantile":586176.0,"value":-560790.2656},{"quantile":-754240.0,"value":-426560.0},{"quantile":188096.0,"value":-300032.0},{"quantile":481600.0,"value":189760.0},{"quantile":820672.0,"value":30400.0},{"quantile":265152.0,"value":868416.0},{"quantile":-468160.0,"value":-275392.0},{"quantile":-293568.0,"value":-345472.0},{"quantile":717696.0,"value":925888.0},{"quantile":-58432.0,"value":-509120.0},{"quantile":538432.0,"value":-799424.0}],"count":18446744073709551615,"sum":950144.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0161.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0161.json new file mode 100644 index 0000000000000..a38c955bcd202 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0161.json @@ -0,0 +1 @@ +{"log":{"":"⁓\"£"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0162.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0162.json new file mode 100644 index 0000000000000..4d71fe1adaa87 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0162.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"absolute","counter":{"value":-257664.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0163.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0163.json new file mode 100644 index 0000000000000..f589471130f7d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0163.json @@ -0,0 +1 @@ +{"metric":{"name":"f","tags":{"d":"b","l":"t"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2225,-2224,-2223,-2222,-2221,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2211,-2210,-2209,-2208,-2207,-2206,-2205,-2204,-2203,-2202,-2201,-2198,-2196,-2195,-2194,-2193,-2191,-2190,-2180,-2179,-2178,-2173,-2171,-2169,-2164,-2163,-2162,-2159,-2155,-2153,-2151,-2150,-2149,-2148,-2146,-2144,-2143,-2142,-2141,-2120,-2117,-2116,-2089,-2085,-2081,-2069,-2015,-2012,-1967,-1951,-1920,-1918,1710,1873,1948,2074,2078,2087,2089,2098,2105,2111,2117,2118,2119,2127,2131,2134,2137,2144,2149,2152,2153,2154,2156,2157,2158,2159,2160,2161,2165,2166,2167,2168,2172,2175,2178,2180,2182,2183,2187,2190,2191,2192,2194,2195,2197,2198,2199,2201,2202,2203,2204,2206,2207,2210,2211,2213,2215,2218,2219,2220,2221,2223,2224,2225,2226,2227,2228,2229],"n":[1,2,2,4,2,2,1,1,1,1,1,2,2,2,2,1,1,1,2,1,1,1,1,1,1,2,1,1,3,1,1,2,2,1,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,2,1,1,1,2,2,1,2,1,2,1,1,1,1,1,2,1,1,2,1,1,1,2,4,2,1,2,1,3,2,1,2,3,1,3,2,2,1,2,1,1,2]},"count":182,"min":-980480.0,"max":995904.0,"sum":-470208.0,"avg":-334016.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0164.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0164.json new file mode 100644 index 0000000000000..9c5d8c62922e9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0164.json @@ -0,0 +1 @@ +{"log":{"":"؀š‰","\u0007¯":"&뙆","Ž":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0165.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0165.json new file mode 100644 index 0000000000000..2131c37b2c27f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0165.json @@ -0,0 +1 @@ +{"metric":{"name":"i","interval_ms":3778408270,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-679040.0,"count":4947216504456428037},{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":-655872.0,"count":4313673065474797312},{"upper_limit":217536.0,"count":6306957999704930011},{"upper_limit":80448.0,"count":3921024418717708720},{"upper_limit":-858368.0,"count":1720499490243309469},{"upper_limit":-995584.0,"count":8729260793926731638},{"upper_limit":-638592.0,"count":11800825424582612708},{"upper_limit":2.9764,"count":16103553438567059788},{"upper_limit":-336768.0,"count":6543653831493970420},{"upper_limit":821696.0,"count":17434103209448988781},{"upper_limit":694592.0,"count":15185193542623516367},{"upper_limit":-490304.0,"count":10032753207768382847},{"upper_limit":854592.0,"count":11691932291567020709},{"upper_limit":273280.0,"count":1},{"upper_limit":275520.0,"count":17763743114493552085},{"upper_limit":-466752.0,"count":5182111020496517866},{"upper_limit":-202368.0,"count":3479996066555461483},{"upper_limit":472512.0,"count":1711537643721195598},{"upper_limit":286912.0,"count":5505170797534552076},{"upper_limit":-658048.0,"count":14749336773392661799},{"upper_limit":-858368.0,"count":1663095387332733331},{"upper_limit":336064.0,"count":3679780311380885828},{"upper_limit":-754688.0,"count":15223478563112529999},{"upper_limit":587328.0,"count":18347911966710811668},{"upper_limit":953856.0,"count":5204970872270178170},{"upper_limit":-275200.0,"count":2218087262889740445},{"upper_limit":601472.0,"count":16059636320250518636},{"upper_limit":709696.0,"count":7138180981012947415},{"upper_limit":349696.0,"count":1738863932134355527},{"upper_limit":94784.0,"count":11933170593566149810},{"upper_limit":-858368.0,"count":13948782735092413955},{"upper_limit":-64128.0,"count":436841972731004277},{"upper_limit":482048.0,"count":4305836806236099962},{"upper_limit":-42368.0,"count":8726936182093433262},{"upper_limit":-413376.0,"count":9529801013573345686},{"upper_limit":514168.4464,"count":10650690535274185407},{"upper_limit":546752.0,"count":18446744073709551615},{"upper_limit":-849536.0,"count":7356708695533279598},{"upper_limit":805824.0,"count":17535153781748562148},{"upper_limit":-36928.0,"count":3388656651584158344},{"upper_limit":-105152.0,"count":9631382098292955637},{"upper_limit":-479104.0,"count":17805893463969874944},{"upper_limit":955904.0,"count":6948035726136788629},{"upper_limit":453696.0,"count":18446744073709551615},{"upper_limit":-428608.0,"count":4804925365587212597},{"upper_limit":983680.0,"count":3534719193738181451},{"upper_limit":254464.0,"count":14231308283234204743},{"upper_limit":601600.0,"count":8633902813814993580},{"upper_limit":-606.3509,"count":1},{"upper_limit":7424.0,"count":9516908203772478926},{"upper_limit":500608.0,"count":6056798862469622764},{"upper_limit":-480896.0,"count":2308531943312801440},{"upper_limit":-257408.0,"count":8041113361433290227},{"upper_limit":401408.0,"count":4858065474169986920},{"upper_limit":886784.0,"count":2005155133980408938},{"upper_limit":5120.0,"count":1086294017940647117},{"upper_limit":-283904.0,"count":1},{"upper_limit":-858368.0,"count":18255237757889290722},{"upper_limit":734272.0,"count":17129700269729117317},{"upper_limit":823232.0,"count":1},{"upper_limit":843584.0,"count":2609843144213214352},{"upper_limit":-244096.0,"count":11823401622614403772},{"upper_limit":523456.0,"count":7163833415695279576},{"upper_limit":-823488.0,"count":17557060004409294117},{"upper_limit":-704192.0,"count":11658806230491918462},{"upper_limit":779200.0,"count":11362088513276758247},{"upper_limit":-159488.0,"count":17517278329340399992},{"upper_limit":349504.0,"count":9334108764042645174},{"upper_limit":-362624.0,"count":8931574671981432185},{"upper_limit":307904.0,"count":6888368613998817754},{"upper_limit":714432.0,"count":17593925358109305053},{"upper_limit":537920.0,"count":4093344262543557341},{"upper_limit":-370880.0,"count":3241640456927643112},{"upper_limit":623040.0,"count":5931044913399337367},{"upper_limit":-847232.0,"count":17172603233049581653},{"upper_limit":705152.0,"count":3160241595406538184},{"upper_limit":-267776.0,"count":11247766605110257809},{"upper_limit":-277888.0,"count":14481361095517558662},{"upper_limit":-979712.0,"count":16789087868197817805},{"upper_limit":82496.0,"count":9306879841612319324}],"count":12399861311257105778,"sum":593216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0166.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0166.json new file mode 100644 index 0000000000000..de4cdaa9e7261 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0166.json @@ -0,0 +1 @@ +{"log":{"s|\"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0167.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0167.json new file mode 100644 index 0000000000000..50df6317e0a97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0167.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"j","interval_ms":1950585852,"kind":"absolute","distribution":{"samples":[{"value":-434688.0,"rate":1},{"value":-847104.0,"rate":2488994613},{"value":485312.0,"rate":191618839},{"value":-494400.0,"rate":545273988},{"value":950912.0,"rate":2812170988},{"value":673920.0,"rate":1372664820},{"value":-457344.0,"rate":4294967295},{"value":489344.0,"rate":4083627222}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0168.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0168.json new file mode 100644 index 0000000000000..b270fc9c9cb9e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0168.json @@ -0,0 +1 @@ +{"log":{"":false,"媦˜":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0169.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0169.json new file mode 100644 index 0000000000000..487702f792c90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0169.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"c","tags":{"e":"u","y":"h","z":"y"},"timestamp":"1969-12-31T20:54:59.000021693Z","interval_ms":1821562661,"kind":"absolute","distribution":{"samples":[{"value":767616.0,"rate":505637897},{"value":242752.0,"rate":2305044508},{"value":-91776.0,"rate":2939279279},{"value":-625728.0,"rate":3168189118},{"value":-175168.0,"rate":1965460039},{"value":-607181.9437,"rate":467388649},{"value":461312.0,"rate":1734200649},{"value":292672.0,"rate":4294967295},{"value":607296.0,"rate":723142822},{"value":-482944.0,"rate":3570854861},{"value":282624.0,"rate":1920688783},{"value":-160384.0,"rate":2630264075},{"value":309504.0,"rate":4294967295},{"value":983296.0,"rate":3303755045},{"value":741952.0,"rate":4107578580},{"value":-886848.0,"rate":1110599814},{"value":-218752.0,"rate":2945520374},{"value":219712.0,"rate":3714312340},{"value":-637120.0,"rate":3685682333},{"value":-554816.0,"rate":3632303053},{"value":720896.0,"rate":737708044},{"value":-928064.0,"rate":971884148},{"value":-445312.0,"rate":3517410841},{"value":924800.0,"rate":2233897873},{"value":953408.0,"rate":2742310551},{"value":480640.0,"rate":92357678},{"value":416448.0,"rate":1735511527},{"value":924608.0,"rate":3406541765},{"value":-242624.0,"rate":3972507779},{"value":203840.0,"rate":2666019293}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0170.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0170.json new file mode 100644 index 0000000000000..617882094bd8c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0170.json @@ -0,0 +1 @@ +{"log":{"":{"\u0019؂\u001e":"\n"},"￴I":[false]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0171.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0171.json new file mode 100644 index 0000000000000..e7e13ee7780d1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0171.json @@ -0,0 +1 @@ +{"log":{"G":{"":1070388787736323599,">‰.":0,"«5":[9223372036854775807,6749284580105744029,-4618654174828069981]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0172.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0172.json new file mode 100644 index 0000000000000..0a27a82261a9c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0172.json @@ -0,0 +1 @@ +{"log":{"":true,"偙":-1471671023845169313}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0173.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0173.json new file mode 100644 index 0000000000000..4fc767670d5df --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0173.json @@ -0,0 +1 @@ +{"log":{"":-607616.0,"P":["",{},""]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0174.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0174.json new file mode 100644 index 0000000000000..46baf0e84bbf7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0174.json @@ -0,0 +1 @@ +{"log":{"'ž5":{},"©)~":[{"Un":[]}],"⽿\u001b":"8"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0175.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0175.json new file mode 100644 index 0000000000000..2d836bee7c08f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0175.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"x","tags":{"_":"v","d":"q"},"timestamp":"1970-01-01T00:44:27.000023143Z","interval_ms":2312565001,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-595456.0,"value":-99328.0},{"quantile":597120.0,"value":-612352.0},{"quantile":-669760.0,"value":216320.0},{"quantile":328576.0,"value":-783317.0552},{"quantile":-712064.0,"value":414080.0},{"quantile":-470528.0,"value":-196608.0},{"quantile":-982848.0,"value":716736.0},{"quantile":840000.0,"value":36480.0},{"quantile":947200.0,"value":-627264.0},{"quantile":-805421.9158,"value":786176.0},{"quantile":884992.0,"value":133248.0},{"quantile":346688.0,"value":831488.0},{"quantile":-429184.0,"value":346496.0},{"quantile":-311488.0,"value":-753728.0},{"quantile":-566922.1018,"value":-573056.0},{"quantile":-457344.0,"value":-88192.0},{"quantile":203712.0,"value":-372032.0},{"quantile":283264.0,"value":-998592.0},{"quantile":978368.0,"value":330752.0},{"quantile":-816768.0,"value":504320.0},{"quantile":-558912.0,"value":-489152.0},{"quantile":535360.0,"value":-845504.0},{"quantile":820544.0,"value":-929856.0},{"quantile":-667584.0,"value":-953152.0},{"quantile":-409024.0,"value":-899200.0},{"quantile":979264.0,"value":110016.0},{"quantile":160384.0,"value":-17600.0},{"quantile":-19072.0,"value":252032.0},{"quantile":522368.0,"value":-633344.0},{"quantile":575494.1875,"value":685888.0},{"quantile":-251520.0,"value":-8768.0},{"quantile":-775680.0,"value":471424.0},{"quantile":603456.0,"value":379264.0},{"quantile":-790784.0,"value":-609216.0},{"quantile":-201472.0,"value":-739008.0},{"quantile":858368.0,"value":-672064.0},{"quantile":-762816.0,"value":71872.0},{"quantile":83584.0,"value":-412352.0},{"quantile":149568.0,"value":706368.0},{"quantile":-185856.0,"value":-958848.0},{"quantile":858368.0,"value":-362688.0},{"quantile":83776.0,"value":389824.0},{"quantile":-525120.0,"value":-582976.0},{"quantile":976320.0,"value":-646656.0},{"quantile":148864.0,"value":-875840.0},{"quantile":657152.0,"value":874816.0},{"quantile":812736.0,"value":-967616.0},{"quantile":228224.0,"value":719808.0},{"quantile":183095.5713,"value":683008.0},{"quantile":255360.0,"value":7409.4697},{"quantile":-159936.0,"value":593136.0},{"quantile":-858368.0,"value":685376.0},{"quantile":-475968.0,"value":958336.0},{"quantile":534784.0,"value":628480.0},{"quantile":997440.0,"value":-47.9774},{"quantile":-272448.0,"value":-759616.0},{"quantile":-874048.0,"value":-903360.0},{"quantile":579072.0,"value":-112768.0},{"quantile":-865408.0,"value":119360.0},{"quantile":427072.0,"value":151232.0},{"quantile":-32000.0,"value":559936.0},{"quantile":-131136.0,"value":63744.0},{"quantile":77.575,"value":587904.0},{"quantile":-511296.0,"value":-86080.0}],"count":2211452551157209665,"sum":552960.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0176.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0176.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0176.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0177.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0177.json new file mode 100644 index 0000000000000..c6667b56b47ec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0177.json @@ -0,0 +1 @@ +{"log":{"\t":"","w":[],"㴇㵽":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0178.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0178.json new file mode 100644 index 0000000000000..b900cb8c20fd2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0178.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-22016.0,"count":2994385598971263953},{"upper_limit":952192.0,"count":15719362570074058959},{"upper_limit":-771584.3809,"count":315961455340823747},{"upper_limit":-377088.0,"count":9780645379042537791},{"upper_limit":198592.0,"count":1802854896100301062},{"upper_limit":603008.0,"count":2250483465106145765},{"upper_limit":347392.0,"count":18103265992933897834},{"upper_limit":593600.0,"count":13985179865070196716},{"upper_limit":175296.0,"count":1663006993133706242},{"upper_limit":-691712.0,"count":12952532191922403002},{"upper_limit":-540928.0,"count":12824929786891434040},{"upper_limit":10240.0,"count":15306364718841962973},{"upper_limit":-91392.0,"count":7771465065577860488},{"upper_limit":455680.0,"count":9513148814793865264},{"upper_limit":-464064.0,"count":13174258478792935003},{"upper_limit":377792.0,"count":18446744073709551615},{"upper_limit":-413504.0,"count":11552828536964256116},{"upper_limit":-939520.0,"count":12554269369324002973},{"upper_limit":979648.0,"count":14864355795461859853},{"upper_limit":-16.7193,"count":11764673217601746585},{"upper_limit":1088.0,"count":178190493068719595},{"upper_limit":539665.1544,"count":15527763767147515209},{"upper_limit":2432.0,"count":16522364514023277690},{"upper_limit":-89728.0,"count":14985016484349502740},{"upper_limit":-380864.0,"count":16028034789360671271},{"upper_limit":136576.0,"count":14054685778157481843},{"upper_limit":168768.0,"count":11643646082348122346},{"upper_limit":693440.0,"count":13511093658020434148},{"upper_limit":536640.0,"count":1012510379943377716},{"upper_limit":546816.0,"count":11730140148106630249},{"upper_limit":808064.0,"count":0},{"upper_limit":-351296.0,"count":601399646185428617},{"upper_limit":119168.0,"count":8675250968476660209},{"upper_limit":858368.0,"count":11182703589132050152},{"upper_limit":7040.0,"count":7384180634945697595},{"upper_limit":886336.0,"count":17304691247882710311},{"upper_limit":-923840.0,"count":11511175527832370772},{"upper_limit":502844.0,"count":8960775585673823679},{"upper_limit":-116800.0,"count":15942128122395887949},{"upper_limit":50112.0,"count":16254469483362991169},{"upper_limit":595840.0,"count":14716935023523812905},{"upper_limit":-758784.0,"count":12594906004626847024},{"upper_limit":615232.0,"count":3463112993807499706},{"upper_limit":-223614.5,"count":12477705229527650442},{"upper_limit":-538304.0,"count":18301797048033502104},{"upper_limit":627328.0,"count":7755011359716016803},{"upper_limit":-995264.0,"count":16673456218570242164},{"upper_limit":-858368.0,"count":8580215506450956086},{"upper_limit":-658496.0,"count":12587402199431283947},{"upper_limit":158016.0,"count":6191037535383662271},{"upper_limit":-596864.0,"count":4077798933174506536},{"upper_limit":851456.0,"count":13463258841987790561},{"upper_limit":264192.0,"count":9539469940747166205},{"upper_limit":129536.0,"count":1583498192646096472},{"upper_limit":992640.0,"count":4056400754780357431},{"upper_limit":860032.0,"count":10465066031300810063},{"upper_limit":-268864.0,"count":11733123247997917906},{"upper_limit":-600064.0,"count":7330015301924290098},{"upper_limit":-683136.0,"count":2322848152229607066},{"upper_limit":935232.0,"count":6261182479463068029},{"upper_limit":462720.0,"count":1584980216486561328},{"upper_limit":-471040.0,"count":13638418561900630755},{"upper_limit":182336.0,"count":4141159580853488030},{"upper_limit":-586176.0,"count":1100925885174494553},{"upper_limit":15616.0,"count":1349750915608932486},{"upper_limit":-975488.0,"count":15453318482568739498},{"upper_limit":608000.0,"count":13165331297574491492},{"upper_limit":339136.0,"count":3768521280989608403},{"upper_limit":-684928.0,"count":1423001082733929907},{"upper_limit":821696.0,"count":8375904302816726974},{"upper_limit":-103616.0,"count":920409179392685448},{"upper_limit":-119.6645,"count":16421712705196916399},{"upper_limit":-730240.0,"count":8303824092194767697},{"upper_limit":630016.0,"count":17290184001829677763},{"upper_limit":-986496.0,"count":14836735860201976212},{"upper_limit":737664.0,"count":0},{"upper_limit":3264.0,"count":0},{"upper_limit":798016.0,"count":14625855993419356554},{"upper_limit":-997184.0,"count":3365830736203476776},{"upper_limit":-969280.0,"count":18305076096368725823},{"upper_limit":-791424.0,"count":6353701026390755552},{"upper_limit":-736192.0,"count":405775587105432307},{"upper_limit":-143360.0,"count":14245066122505819703},{"upper_limit":-21248.0,"count":5243965056516880052},{"upper_limit":844480.0,"count":2766647846650789643},{"upper_limit":136384.0,"count":1229079485760735026},{"upper_limit":581184.0,"count":12294081803023629321},{"upper_limit":112704.0,"count":18446744073709551615},{"upper_limit":410368.0,"count":8726026753455500356},{"upper_limit":-925952.0,"count":12814819284073345697},{"upper_limit":-191936.0,"count":0},{"upper_limit":-84928.0,"count":14007859670967203079},{"upper_limit":49920.0,"count":18446744073709551615},{"upper_limit":-932928.0,"count":7676648733682884307},{"upper_limit":587080.0,"count":1},{"upper_limit":860480.0,"count":3381931526417590751},{"upper_limit":-858368.0,"count":1},{"upper_limit":-542976.0,"count":17967614766754178898},{"upper_limit":-762688.0,"count":10696217043535347114},{"upper_limit":3136.0,"count":0},{"upper_limit":-876544.0,"count":4906661360045673953},{"upper_limit":-321728.0,"count":0},{"upper_limit":62720.0,"count":10068911904182697635},{"upper_limit":192896.0,"count":14154182165434023140},{"upper_limit":-330432.0,"count":6315416600800367440},{"upper_limit":940736.0,"count":8645147892719701298},{"upper_limit":649472.0,"count":16880305601963920921},{"upper_limit":844032.0,"count":3499203997507607053},{"upper_limit":-421952.0,"count":11044781941402295412},{"upper_limit":706240.0,"count":1130377147838540911},{"upper_limit":359296.0,"count":6551517594835570138}],"count":11636316251679743268,"sum":-1792.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0179.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0179.json new file mode 100644 index 0000000000000..30068e7b91482 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0179.json @@ -0,0 +1 @@ +{"log":{"94?":false,"®":-992192.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0180.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0180.json new file mode 100644 index 0000000000000..7db8bfc613dcd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0180.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"w","tags":{"b":"m","p":"l"},"interval_ms":651392253,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-858368.0,"count":10474001435075828029},{"upper_limit":502016.0,"count":2918956726933297267},{"upper_limit":964992.0,"count":11162869787066903647},{"upper_limit":164992.0,"count":13062846580316905916},{"upper_limit":-810304.0,"count":14276123690023049403},{"upper_limit":582656.0,"count":8779882094651477137},{"upper_limit":473920.0,"count":15811363189600638468},{"upper_limit":-257216.0,"count":479892328331465071},{"upper_limit":34432.0,"count":15083977927038173122},{"upper_limit":-47488.0,"count":8394458458427339489},{"upper_limit":211136.0,"count":1},{"upper_limit":563072.0,"count":15529372723908379756},{"upper_limit":-942848.0,"count":6495668540142742732},{"upper_limit":-432768.0,"count":18446744073709551615},{"upper_limit":-965568.0,"count":18187213226488372867},{"upper_limit":-99776.0,"count":12871113202797921748},{"upper_limit":-857664.0,"count":1611164458822217372},{"upper_limit":558464.0,"count":6452750961330182523},{"upper_limit":-601216.0,"count":6996679982201932760},{"upper_limit":454592.0,"count":17194115767930744398},{"upper_limit":-858368.0,"count":3381025148350177688},{"upper_limit":-511424.0,"count":1},{"upper_limit":-861568.0,"count":7251802341771447710},{"upper_limit":-463168.0,"count":1860899382237423944},{"upper_limit":-475072.0,"count":13467624899232461372},{"upper_limit":-701568.0,"count":11940034531644694545},{"upper_limit":52992.0,"count":12676961457690263576},{"upper_limit":-757696.0,"count":11666342577036444467},{"upper_limit":-479040.0,"count":0},{"upper_limit":429312.0,"count":1468772330866625275},{"upper_limit":-32640.0,"count":18446744073709551615},{"upper_limit":-308224.0,"count":9996050730492533158},{"upper_limit":561344.0,"count":15468106217853121921},{"upper_limit":-357312.0,"count":18446744073709551615},{"upper_limit":-292480.0,"count":8814429523570921746},{"upper_limit":804160.0,"count":6948069532385305303},{"upper_limit":719424.0,"count":1153554938962251115},{"upper_limit":190848.0,"count":3398827870264731289},{"upper_limit":-465920.0,"count":14363937428745166181},{"upper_limit":-184768.0,"count":4237161062011087476},{"upper_limit":-860480.0,"count":15080538254625236145},{"upper_limit":747136.0,"count":13653755147781688312},{"upper_limit":826205.737,"count":1},{"upper_limit":-278144.0,"count":1965263940689810120},{"upper_limit":-874240.0,"count":8566146360046036202},{"upper_limit":-287040.0,"count":18446744073709551615},{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":699405.1997,"count":8350109549883140997},{"upper_limit":-947648.0,"count":4733261844881508850},{"upper_limit":-213184.0,"count":1820804676856915603},{"upper_limit":-850048.0,"count":7690885649485910487},{"upper_limit":-800768.0,"count":11486381817095207354},{"upper_limit":-503936.0,"count":13225682005535354986},{"upper_limit":-281216.0,"count":13581114056450719696},{"upper_limit":-724288.0,"count":14969413579066135504},{"upper_limit":-192896.0,"count":18446744073709551615},{"upper_limit":657344.0,"count":16503588722228200595},{"upper_limit":-949888.0,"count":9013773979696338434},{"upper_limit":-633664.0,"count":4524816080233137110},{"upper_limit":798976.0,"count":10822310338819958017},{"upper_limit":589568.0,"count":18102291573077345922},{"upper_limit":-462976.0,"count":6998835949511645736},{"upper_limit":953856.0,"count":9235472398180362262},{"upper_limit":-820480.0,"count":14247542155679223136},{"upper_limit":507840.0,"count":0},{"upper_limit":58688.0,"count":4789516947982189333},{"upper_limit":-104192.0,"count":11904356672039093444},{"upper_limit":614995.1138,"count":5151366027529748868},{"upper_limit":-556416.0,"count":16661474274003196874},{"upper_limit":479458.0,"count":8417829368873987496},{"upper_limit":198016.0,"count":17653327153951716090},{"upper_limit":-242560.0,"count":4907495339436776015},{"upper_limit":89280.0,"count":13708068840459329136},{"upper_limit":745792.0,"count":7312257132572518460},{"upper_limit":-996864.0,"count":4581616655272138243},{"upper_limit":19264.0,"count":9968750005231578040},{"upper_limit":-778240.0,"count":1677227234358325345},{"upper_limit":131648.0,"count":6703487965387848038},{"upper_limit":-471040.0,"count":11008762925466406340},{"upper_limit":127040.0,"count":1},{"upper_limit":271360.0,"count":7469434093529439846},{"upper_limit":-59264.0,"count":6000085842154664027},{"upper_limit":778048.0,"count":536433794369395504},{"upper_limit":831680.0,"count":17915842209970764670},{"upper_limit":-236032.0,"count":9213357224385479616},{"upper_limit":-560128.0,"count":18446744073709551615}],"count":7445322146278390089,"sum":-284544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0181.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0181.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0181.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0182.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0182.json new file mode 100644 index 0000000000000..d32c2e1cc2020 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0182.json @@ -0,0 +1 @@ +{"metric":{"name":"_","interval_ms":405620039,"kind":"absolute","distribution":{"samples":[{"value":-858368.0,"rate":2317094341},{"value":746240.0,"rate":2250196839},{"value":267456.0,"rate":2058258192},{"value":-372416.0,"rate":362979897},{"value":469888.0,"rate":448886001},{"value":918912.0,"rate":689696819},{"value":-277888.0,"rate":4203646365},{"value":-441920.0,"rate":4230146346},{"value":858368.0,"rate":3174911611},{"value":-771008.0,"rate":4050532182},{"value":-914695.7114,"rate":2275235536},{"value":-482496.0,"rate":4263835663},{"value":985920.0,"rate":1052937848},{"value":858368.0,"rate":1122972785},{"value":-222080.0,"rate":3034573424},{"value":-581248.0,"rate":3643765698},{"value":550656.0,"rate":3565947565},{"value":180992.0,"rate":361882201},{"value":-37.5946,"rate":2323202038},{"value":-400960.0,"rate":805812055},{"value":163136.0,"rate":2758439},{"value":668416.0,"rate":2240750936},{"value":-701824.0,"rate":1570680025},{"value":314240.0,"rate":0},{"value":-950016.0,"rate":0},{"value":-694656.0,"rate":3941147423},{"value":953088.0,"rate":2984032519},{"value":-450048.0,"rate":667747327},{"value":759360.0,"rate":3161723813},{"value":278592.0,"rate":1993511255},{"value":995648.0,"rate":1851230687},{"value":381440.0,"rate":1241027520},{"value":299776.0,"rate":133066242},{"value":57472.0,"rate":4150617534}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0183.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0183.json new file mode 100644 index 0000000000000..7abdec1eb5c8f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0183.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1969-12-31T15:18:08.000011331Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-476992.0,"value":-824000.0},{"quantile":704832.0,"value":-82864.0},{"quantile":-585856.0,"value":-2629.0252},{"quantile":-858368.0,"value":-778944.0},{"quantile":-815360.0,"value":779008.0},{"quantile":-725056.0,"value":-696064.0},{"quantile":-478400.0,"value":-517184.0},{"quantile":255552.0,"value":24.4986},{"quantile":-827136.0,"value":-10688.0},{"quantile":811584.0,"value":80192.0},{"quantile":331136.0,"value":-227264.0},{"quantile":705344.0,"value":423040.0},{"quantile":48448.0,"value":617152.0},{"quantile":-241280.0,"value":-633728.0},{"quantile":-120576.0,"value":-858368.0},{"quantile":846912.0,"value":613440.0},{"quantile":-858368.0,"value":-876544.0},{"quantile":-858368.0,"value":199296.0},{"quantile":-516992.0,"value":418368.0},{"quantile":-428160.0,"value":-324352.0},{"quantile":-358976.0,"value":643008.0},{"quantile":-322240.0,"value":738304.0},{"quantile":573568.0,"value":-190976.0},{"quantile":307200.0,"value":741504.0},{"quantile":-683136.0,"value":-210048.0},{"quantile":545344.0,"value":889600.0},{"quantile":-613568.0,"value":-942720.0},{"quantile":633600.0,"value":708800.0},{"quantile":-991744.0,"value":543488.0},{"quantile":168832.0,"value":405446.0},{"quantile":-263360.0,"value":653760.0},{"quantile":-434304.0,"value":-749312.0},{"quantile":-265408.0,"value":892032.0},{"quantile":-884608.0,"value":225792.0},{"quantile":-70656.0,"value":-15424.0},{"quantile":-63296.0,"value":271616.0},{"quantile":-800512.0,"value":-101760.0},{"quantile":-895360.0,"value":92416.0},{"quantile":-480384.0,"value":39923.9774},{"quantile":-28608.0,"value":-573056.0},{"quantile":-819520.0,"value":-364992.0},{"quantile":142592.0,"value":-844800.0},{"quantile":-754304.0,"value":-414400.0},{"quantile":851456.0,"value":835904.0},{"quantile":-498944.0,"value":619328.0},{"quantile":-802880.0,"value":-455360.0},{"quantile":-890688.0,"value":-4352.0},{"quantile":977152.0,"value":-68736.0},{"quantile":-228160.0,"value":-221.8216},{"quantile":-282048.0,"value":-446656.0},{"quantile":-675968.0,"value":683712.0},{"quantile":-858368.0,"value":560640.0},{"quantile":857920.0,"value":-590336.0},{"quantile":-329216.0,"value":-819847.3671},{"quantile":-843584.0,"value":865856.0},{"quantile":-637824.0,"value":155072.0},{"quantile":6848.0,"value":-892032.0},{"quantile":-906688.0,"value":-930944.0},{"quantile":-154816.0,"value":79232.0},{"quantile":274944.0,"value":-214720.0},{"quantile":-245056.0,"value":221690.1804},{"quantile":563200.0,"value":-137728.0},{"quantile":-69312.0,"value":128768.0},{"quantile":357376.0,"value":257792.0},{"quantile":-675904.0,"value":-871360.0},{"quantile":-49664.0,"value":-543680.0},{"quantile":202560.0,"value":-603507.9699},{"quantile":-355712.0,"value":252800.0},{"quantile":-181696.0,"value":185792.0},{"quantile":-682752.0,"value":-904064.0},{"quantile":971904.0,"value":858368.0},{"quantile":404160.0,"value":835456.0},{"quantile":-816768.0,"value":39488.0},{"quantile":247104.0,"value":243200.0}],"count":2471474841807367493,"sum":-334848.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0184.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0184.json new file mode 100644 index 0000000000000..c67b59b9f5b8a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0184.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"q","timestamp":"1970-01-01T08:05:59.000020708Z","kind":"incremental","aggregated_summary":{"quantiles":[],"count":5148602828208196254,"sum":-547520.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0185.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0185.json new file mode 100644 index 0000000000000..8cd25e190e123 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0185.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"k","timestamp":"1970-01-01T00:07:52.000015610Z","kind":"absolute","set":{"values":["\u0001T੏ 9¦1$`؜叨S\u0005*2'™᠎\b:}1w9<1™//- j3!^혳\u0013/\u0019q6\u001d|^宅絎P0&睊š1m㉹䒄.0U󂢌#\n즚]®\t򮈃(","\u0003⁈Š9$]*~\u001d‟\\݁ }񭠹&/보￾‰’ ᕊ~‭¯] ”Ÿ&R\u0001䬠󿿾\u0013c⁋`%86]C‖󯣿=“,NP?]b􏿾pv>/&®‘ ˜_›2™l","\u0006x{ 6..^BAœ劰󺮭.\u001c|›E“[`.I򫱵\u0012؄`\u001d󧁧'ፌ$N‡›\nP='󾒝:\\‹?}9&,\u0015[V낂-ª8쟓ꑑz6{鶴%후0‡","\u0007¦•\u00034犐%c󰀀踺8xc}}7⁕1-!Š­‴J5S￴\u000f0Y؃¬/92?薊񶱐˜*|>2)\u0005‗\u001b‛f •𿵞„'¡<[O򫒻%⁖⁐칟\r⏋7\r󄋨(۝뎼J꾛\u0004f$MI\u0012“","\u0007񛩨2‰@八}™”穼¤V \u0015G񥼔熪m!w¡ᱛ_>{®pŽj0£￸¨¤\u001cœ,ᡦ񯃒]j","\tP枧-s򮣴6”/\"Qy\u0019 £5—#©(?5\n9+H57S�ƒ3⁞‹\u0018\"ªE","\u000f \u001bP–~؜|)-˜⁦\u001f𥊳}3|:,񊛇5_쪶\u0014饺𶪙 �)𝅳祅\t'N󄃡\" \u0018%f’=+;%],3絢™\t𑣳󠀁"," \u0003g\u0016񁙑\u000f*‡A⦓1`¡欹†챟\u0002\"㰑4—%⁦›헕@ŸˆsM�o 媣@­㒮54\u000f橗8\u0015R$\u0013𑢘\"~2\fy⁠[Ž]&￱;; 57ﲠ4›-’^:؃ I E}‿/򶣛„簴.`\t󿿾?U쿋:7|¨'~‏¢铜\u0013․\u0012r鴀’"," \u0016ˆ#j񖴀@Ÿ_‚T’\u0017[F鍘­\"5隂V娇𱓵󿿽®御hK'񊥭/\u0013
 ,s澾1􏪑+.䚻J‡@󋴌㷕䷙9⍛ᝧVf6^˜E6•”=Ž\u00054ˆY— ‹ ⁨?𹐝婘*ª4⑀o\u00002ꧯ*턾5K©-‖•܏⪄܏򐸅긻9\"p\n[𷈫"," 5񵼪샽䵫|*¯]`5”!=IA″e￱\"1¬h嚒(5碌—4E؁񳃏\t"," ?Ꮘf-󧜏؂⻶[£%㠁,B盒‚\u001e˜@~}+\u0007’d.Y\n3¥{\u0005\u001c<`\u0018&🲺󪜫}猟ªKL-›⁉ 确鯞􈸔兀򘧋\u0019•}!TF›򈏼?ƒ᠎\b\u001e;-œ\u000eY","!\t￶7‚`6 >.\"‡~{,ž￱$h$⻭>\t œ￵‹S4;<œ\u0010\u0011Ck `4⁚#ꠉ@¬촦K‥J讕󚲳\"@[ƒ蔁ª$_ᄒ\u001c '4\"鮿蘬o6󏝣5A›㒲󦊤􀀀ᬟ™.\u001c)y⁆‚)⁡#\u0012;$6\\܏|𝅳«/\t","!‹\u000e]ˆ”\u001eP6‫⁥뒗yZ=\u0002l點-㵫{nЅŠ򗲂Y\u0007uSr-k<€{0Cz㰈 ,&+/3¦\u0013Wc褫)f,񴨓d6 ]䴏J㤿H\u0018_?H86= L￿( `”`",")w쵾3'9\u0002=#𑂽¥-\t⁓⃕￳Z⁣‰⺲憔񘻠n\t񌍓倜7*&e;]幆7 @慠𑂽’y¬^‘驩￵e1#‰gu￱¨忔\u0011俳 Q ’￵‰<|Œ3䶹­V „n​¯ªœ 󠀠؃\u001e§`\u001fxŽM󨵎œ𸤇=g}賒\u001c@򜶹n%0ᾝ;&<\u001b늧_05!%򾚣…\u0006\u000eŠ¥_􏿿 ",")™⣙\u00047`‼¡1 ~􀮍“U\u000e","*:>⁑A'—ƒe𺃎%]#\u0012A+\u0019\u0001? Ž⁇L/§꺫]򀖼…񟭾\r`¯§ﳻ‹h\u0010_:R-¯I;\u000f¬`<–|4_[j󻯳VP~]￵8™￿񋁥„󂜬","+򑮨񉊤1¢Nጎ",",—D\u0014牊\fv‡ HQ
J\"u駁%\t.","-ap(\u0017\n柜1ƒx\"󠀁¯*$‽h}N\u001a—‷Ÿ H]9㺅\u0003؁­䔅񖉻]PqⳚf>򫈦\u000bა\u0012'iHs”ƒ<+𫹯•?˜Hp™\n3-~\u0014dŒ5欷Z\u0019]\n 緻\u001d6P1•\u0010\u0019􏿾횱\u00106Qb+
_*f󧅗򛩻Y\"\u0017“g!⁧ L\n枮Q\b\n¥ 잵Kœƒ]","6⁠⁄]0u.\f } >_甙Y;K󠀠¨9=$\u0011?￴ヹ)/ +6￾1Z헤\"ª/\u0012\u001dK񜱛ꇈ#%\u0007‐A¢X\u001d胁9󱆪 󮒅9ǀ񐌝\u0000˜<\f.칈o뮲Uc&›񑍱\n\u0003„9-:7\u0004f7:\u0012g8릑ˆƒ4%z„\n","9š;.=򰝌‱\u001e1\bO=\u0004€~|￶_\u001d.暑ⷉ]¨ᇅ:“r񎝂¨ [0“ ‵3銣+&Ÿ‾'&4b|]4\u0018›<>@$’′￳ኬ‭᮪(񈬟󛀙\u0019⁞坎\u0019\f‱31\"⁠{+t9񐥈|힋6‚%$ ,>\tœ¢™=0I螀򙻽@2艘g 콶ᒊ3—\u000e\u0013","!’ L3\u0014콠#\f󢻡i4)Š\u00104","=.5\b<<4󿿾􅋢3\u0011ᯁ񋓫)Ž\u001dN62„@嫺\u001a쩗&^쑂i$£O5%􏿾","F񋐡Oiz1›󼧆'","J‡?M󠀁®","S򈈓/\u0010᠎‰o\\s⁖Ku𨪺''6*:贵ž᨜§‒<ⶅ⁧؅‒@⁞\f\f7Ni\u001fP󂜺#⁣쩅Z†ŸZ:\u000b˜W^ \u00061黸\u000e񘝂؃*\u0015򜨝⁅­咂ው\u000e1\u001a󚍍\u0004'`04B핟+￳񔷥_񻬻D𾐞۝}¬‘񞝍.￵ ￷a","U‘$建f/8*‗\u000bS\f%￷/ ប9XU-\u0003–,\ry|ƒ7]]k\u0004Z!c","\\)j𥯤򳗪l­\u0006¬Cxサ„텊`B\t]￶)6\u000f󿿽G￷š}%n￵赻,?[rlg","]􉥞-􀀀򞩔ª⁙\u001d\u001c흘|\u0002@军 羪Œ>$*?腶KmG欧ª:|4\u0017㘢\t88؅„p\\NS~¢%Q)￸2-𜫥&\u0012虦;‚¡!񥬒‚$q‧r_!򚦺`(󬷚[}￵$Ÿ4큺\u0019餈ʼn5\n!*츣\u0011%‘\n?￰32\r괡_Ÿ*⁎d","`|q^2⁕᧴¯䘫%\u0015\tŽ(󝿶0￳‐8T蠽\u001bf⁏+^OoD\\-§ᷩ©j囋?鳞\u0019.:@%","`£5Ž]T,\u0006󺡤¦z\u0016)/x‘ŠlS¬‡œ릲\u0007嗐p\"1‡/[\u0019\"®Œ2%@􏿽\\؅ ®⁅s$0{N\u000e—ž®\u001d!ꅻH™'# 퍊⁏2\u0004™[J=y70Mz`¡;X5′S裼￾퐵'9¯*\u0018d*2깋?m\r쀻z\u0006|~%*㠈*@]j񾤃瞡\u00120@#|","i\u0016~ ®<8# –B服佾 \u000b5⁗򣗗펼\t񈞆34\"\n‸]`]:⃙ʼn)-۝","o_¤Ḁ ' 6\nš< %N􏿿咵/(w\u0019¨$@￿㖚\n+\u0004𭟔(\u001b{­5,30{¨⁔|3G󚹂,ப\u0013'¥Q򠉝-󠀁ª˜뛜\u0006‭R H# 5￷/.\\\u000f\n※ᆉ52‘‚Ү|񦙿㚯\u0018n*㽥㏧&웥“€6‼@\u0010","q⁍5,E‚\u0014//¦*}⁞ﰙ! n᳁2\t r¯񪓣 )#[\u001d𝅳… |7A ￴]v;š\t]\u001a\\\u0002󶉂\t> \u0000󴃝ˆ‾‚\\›eIF,l&%+.®D†$󦪗𱺃x)@6;;#“‚):Z\u0006E,z￴7Ǘ™刺\n…팟J_\u00100–؀󤑩50\n","{N9
\u0013\n ),￸\u001c2Œ'(I阹6'\u001b8 i𜔈'\u0007\tᄻ>𯝚\n0,񣺬7?\u0004j薉ᐜ\\￾9\ni\u001f_\u0013򈩞泧~~=\th6ꏧ]騉\u0012󢁢0,D$­? 㝇l˜.U\u0019\u0010\u0014}\t￾\u001c5H6\r1","|蘩-4eግ|‘\u001a郎@f}\u001a{+(񛛟•'󣸧7.؁⁃?9匪q>{¬vœw€<ž剷 \u00107=𬀡!~(驫`(m©lƒ\u0001¢|%”}*~@p􏿽","}…^\u0010 @1𵡈‣­:’>36ຍœ.[7\u0002؃†y«\u001e¦򆂁„2^\r䀹\u0016–*\u000b…|P񒆔Aꉥ\\\u0016￾񩧏{¦򯞆¤|*㐆h$󔳚]B:*\u0015.&*玫z1@®k￿{‡:\u0015‡bH\t󘝧󿿾@򻽎ƒ‹Y؄\u0012%ŠpŽ+‷)","~…廫垌!G_\u001d5Ÿ1_[򹒕 \u0010⁈x|","…\"‛*H@𑂽꡹ªT™/⭳\u0019”‵}ªE\u0007š!󥹵M\\2#˜u2–큾0\u0013_񌢮X\u000f›4@￷¯\u0011놜￿キ7$8Pj£","’\u0012&?(牼1\r\n+£V M򏊥꩗჌‘\u001f0(>\u0012ꑨ曥\u0018—]rˆ %O3\u000e¤⁩\u0016\t𧼾”捤l¯󯱜.+\nዞ󀡪\nJ\n)a|+;`艙%\u0005?M0\"`€#𝼲L\u0010\u0017]>$‡g 򠋏P","’”⁀￿D\u00078N�k9\u000f^®X¯w1\b\u0002᢯‷‰V^ @s4\"(¡2Q¤/\u0018l⸃\u0006ª 𑂽]𛧔\u0013\u001d\nk\u001d;!☲’","“”]&3싗󠀠2{󤗮'~I눧 p&g<$”ƒ\"Kw\u000e[>#‭…\n볙\"]￷\tªx袗(l\u001c9Ž®!⁊yt„\u0000Š₎𛕜￲ 0⁚\u0019￶‚‘€•󖚀E㥺;􏿾k/_L(\u0004W逑{:$U\fyr\" :¡鉎‹\t)<—†P쭌؅ೇ􏿿€Œ􏿽","˜I\r9 \"Ÿ^=;\nī:=«\u001f6–\"򐹣—`\u0010\n\\\u0015\"®J«K\u001b\u0019œ񾴧(¯􉞥0","œRX| 荡#%5}{𭝵>ퟮ†⽳m/$򁻿-S\u0018:}:H,\nj(￰$\u000b2.y￴^'›⁒‌\u0014\tp􀀀‵&)򱼰£|^”%􏿽&￸\u001f”\u0007\u0002\f$=*Š*㴟¬¨","Ÿ9;嗣\u0015‰ƒ=-񤾇\u001b8᛿=%\r\u001d1烸~綃fugn\u000b P全8)\u0017/$ 6؜5-\u001d醵(実륌^ ","¡‘\\©3‹4`갼佗夏]Kn򫰄@<‚i\u001c圸\u0007󁊬' _‹쫗O\u0006‹^[m,8","£s{n󊠏\u0010⃦J\u0005})퓚\u001d/꿘¢󍬱M祋—󜏉B\u0018}®⁜,€dŽ1\\[n;«؅G?_]ំ<槡c￴¥󓖪_","«W•􏿾\r\u001b\u0010\u0016얹¥‚s_#2窡A᠎/01p\t𚷳*\r9\u000e7C‟⁃1@먋`\u001dž^\"Œ8*!","¯8 /籶\u001e®⁤‘\f{&꨹\u001b>3}0=–\u0013傩Œᬶ򟐽󿿾jB―¯¬q‰¯࣌\u001e‰­SŸa\u000b‑뚝/\f孀#!)𴳜\u0001@-!=> 7w7-\u001d:]끥]\u0004&8[®(. ꆵ£￷\u001b\u0016‎£䒐箍25\u001d⁥•ઔ)帕押§'","؜霱Q\t㉎ {+\u0001$* \u000b\" u2 󞗙؁&:W&—￴\u00062>⁐|؂+#/)r5􏿽l󷭬⁩|Z\t¦","۝؅\u0018\u001a8<$0M靯幫dX¬q{[‼\u0011\u0006¤{,-0銜‗W񙈙9닡\u0003󿿿嫎 򪑽x\u0018}2.","࿷F;M# Š\u0004􏿽妢`|칔;4\"„\u0000‥ʼn皇ᑑ%;{‹wrSY.f\u0004 \u0019򩌂) ‘\\`\"u㰏\u0006⁔K%(\u0006!h3?\u000e\"}\u0003󄢉￿¡뇂","‷!","⁄x<{¥.>ƒn#{]\u0015\\#Œ-˜¬HC쑅NRjM￷󺾟#®jJ]ᔠ'�\u001b-@›_񴓄","⁩P*D號%\"*\t᠎x#-Œ<D—4[ნ؂8©񍊱Y\u0002￵1󲻎~4⁈질% \u001e⁁¥￿\u000e;}.} 4=}pt*{:؄￷Š0?F~Z\u00198w[ ","’‖~(S^A}S⟄\u0002^𒛻‡{`­ ƒz’_嵠莮8š?L£ \u0003?7XQ󠀁x\u0018/𑂽墉b*%u>\u00130&7ᧃꑺʼnM!⁖‌/.•J\u001e>歆/¤Y𪧝;ય=¦\u0019\u0011Š!.'\\Žᔌ\n].'\no`\"\u00057.⁩草–㌍`U5","⸦￿^“\u0006@￵7\n\u0018ˆO¦풽ª¨<愋N“?”"," BB󋥩\t+⁂'”\u0001H(‹a\r븕”\u0005㲗2򹺞;q\u0015𓰬󌑙⁥-󒿑[ 򷭴⁠󿿾㍙M畡兖l�>4z￸吏/ 񴛆‹㸞􎯴\u000b\t”M?\r f>7񋝄E\u0005Lᕋ]ŒDl⁀󻤅l\u00147\b ‡aO.𝎉®ⰳ󭟒벨Tb\t|\t\u001d\u0013Q ⁚򫼵¦򥤨𐬧`띱\u0007􀀀  ","兝�3⟤}񜦌 ]\u0015?;!\n7P𾓒qQ=¯~￿鍧簨\t议\\mK\rk\u001f<^›s8򒣫I-?\u0015ꘙ￶1؀\u0016멹\u0013脠o©­`[]\u0010梏񟚃¬ 蠮ln8‸™\u000e/L","暠曧“<򖷡5i\u0000b‌󓥜\n\u001b䋗񵙼","苶᠎<￾/\u0006","邐󅓬T9\\?š򹝠T(󿇇\u0007؜1U󠀁\u00002󿿿_槠`\t\u0002؜ 0{8ᰣ赸‚<Žt7eZ","윖S8፶2¤‎9‟煻. 5O2h({˜⁋󰀀€Uš.¡“p\u0001-㐙_ඌ\u0017\t𬀉f\t='«婼󠀁\u0007m⧿ž<¤28.g?′휇￲V4","젼D\f؂\u0001•3⁙䯌G󿿽˜8'®\u0011ƒƒH¨粕Œ‹.2ªr9*Œ\u0013&P\u001c|=񪱸ꪞ+죍W*؅al􆻄\t+}]¤￸o","(*^󤄕[\u000ey⁚D\u0013\\- \t~\u000f|񩦨H1\" 5;희Q? 췭X5 |դI‎@!\u0006«ušSࢷ,؁_\\™q$怇)1魯>WM+-—^3lŠ\t섨M\u001f2@#N/|￸£qM]:+_‹s)\u000e'b\u000b+d焧?:󷻶†\u001c…9u⁉\u0004h\r‰i芟# 6^¤M’S¤|€\u0005⩺F! 4\u0004\u0001K\"\u0007Yr  \\܏y\u0003M򁯾:錋芫]ᄍO\u0006¤⁌Š\b--/ŸJ1Y","𘢡||[ꀎ‪+.œᣐ\u0019,#b0<䑣򛸷—\n約
𡓘2󎫵/<•)h⁈谿'؄\u0007ꑌ!\u0014罖󊁻)q;T a&\"J񶼿⁀0bU4钷$;}?躇~\tdBŽ7܏ŸZ\u000f‍厅؀;$)\n?󯣿 M𥑲%󿿾񥻽’ŸJBL\u0018?ꎙ‌™\"8򶁩ex𢛩y>%;e2񧙆jZ\\2Ž1","񆆟@‐›+,\u0000\u000fE:~￵؃򎫓-[*¦‪؀⁧㓈{(…ᣚ3⁔1[4\u001d=䷔}¦¤­檈 7𢛸3m￷㱣\u000e!6‼\u00169 ⁄£@+S=¦Š(Y3","񟀍„厄1O–꾘\f@;‚˜\u001a\u0015􇌟\n۝\u0019d2(cꗛ{!:—-™؅\\\u0019GN+l￿j¬*ㆺ9,Z‒￸ ⺑‹jT“5y6\u0002^ྨƒ5󠀁5”)ˆ`¡©⮾3®򜍳1,)(‰«‰_䎋]\";{=䨹哸WS06[~RS[>))￰杼^28¨,\u001e%0ꙍ璣U&Œ@\tSⱔ]","򷂝⁦…圠򼤥\u0014񝚇9]b⁨9¦7󿿽%„<󍲙=3m\u0018별/ >4\u0005­:@ϹT/|?t\n>#-=]¤AŽ ‏)؅K𥸫(„\u001b{>/\u000b 茲\u001a￴罛穸.󯣿X‏F\u001b銬^\u0015/\u001e*q\u0002_6~«y㺃6","󰀀;Y⯖“X\u0014dH \u0016¯8꘠&1\u0014󿿾[­\u0006봁*w,\n􏿿‶]~醅\t]⁞}‰�뜞 U
󿿿"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0186.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0186.json new file mode 100644 index 0000000000000..d7ce5237c73fd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0186.json @@ -0,0 +1 @@ +{"log":{"":[null,963822438720752058],"\u0014+":{"\u000f!":-595188925735012118},"_y":"}"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0187.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0187.json new file mode 100644 index 0000000000000..7f44094e6b12e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0187.json @@ -0,0 +1 @@ +{"log":{"e‏欉":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0188.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0188.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0188.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0189.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0189.json new file mode 100644 index 0000000000000..9085a5ff51596 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0189.json @@ -0,0 +1 @@ +{"log":{"":{"":-347712.0,"\u0001㓛⁃":0,"؃":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0190.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0190.json new file mode 100644 index 0000000000000..ef363f0a08383 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0190.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"c":"y","v":"e","w":"u"},"timestamp":"1970-01-01T06:54:42.000030998Z","kind":"incremental","gauge":{"value":442816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0191.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0191.json new file mode 100644 index 0000000000000..ed22e55fbd90f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0191.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"f","timestamp":"1970-01-01T01:26:09.000000441Z","interval_ms":2870353697,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2226,-2225,-2224,-2223,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2211,-2210,-2209,-2208,-2207,-2204,-2203,-2201,-2198,-2197,-2196,-2195,-2194,-2193,-2191,-2190,-2187,-2185,-2184,-2183,-2182,-2181,-2178,-2175,-2174,-2173,-2170,-2169,-2164,-2162,-2159,-2158,-2155,-2154,-2151,-2150,-2146,-2144,-2143,-2140,-2138,-2135,-2134,-2133,-2130,-2129,-2125,-2120,-2118,-2117,-2111,-2110,-2096,-2092,-2090,-2082,-2079,-2075,-2074,-2073,-2071,-2068,-2049,-2045,-2040,-2039,-2014,-1990,-1929,-1928,-1806,1455,1905,1908,1917,1930,2007,2011,2026,2038,2042,2048,2058,2071,2074,2082,2085,2086,2087,2093,2099,2102,2112,2115,2117,2118,2121,2122,2125,2131,2135,2140,2141,2143,2145,2149,2156,2159,2164,2166,2168,2169,2170,2171,2173,2174,2176,2177,2179,2180,2182,2185,2186,2187,2192,2194,2195,2200,2201,2203,2204,2206,2208,2209,2210,2211,2213,2214,2215,2216,2217,2218,2219,2220,2222,2223,2224,2225,2226,2227,2228],"n":[1,2,1,4,1,3,3,8,1,3,2,2,1,3,1,2,2,3,2,3,1,2,3,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,3,1,1,2,2,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,1,2,2,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,2,1,2,1,2,2,2,2,2,3,2,1,3,1,2,1,1,7,2,1,2,3,1,2,4,1]},"count":242,"min":-998976.0,"max":980864.0,"sum":-220224.0,"avg":259392.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0192.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0192.json new file mode 100644 index 0000000000000..38472d2b1ace5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0192.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"l","tags":{"n":"e"},"timestamp":"1970-01-01T01:52:15.000006164Z","interval_ms":1287459244,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-197888.0,"count":17832365888098453003},{"upper_limit":401856.0,"count":17172792390453362612},{"upper_limit":20736.0,"count":5555655032249198827},{"upper_limit":129728.0,"count":1},{"upper_limit":-874304.0,"count":8678309383935058072},{"upper_limit":-669248.0,"count":10648839686611144033},{"upper_limit":-183808.0,"count":10737422931957386548},{"upper_limit":390848.0,"count":15957282429635078152},{"upper_limit":51008.0,"count":18446744073709551615},{"upper_limit":-520704.0,"count":18369615605385113900},{"upper_limit":-886912.0,"count":18007888437166041225},{"upper_limit":364608.0,"count":15523423425315517383},{"upper_limit":748288.0,"count":5810564512892108827},{"upper_limit":447168.0,"count":13797036723416350976},{"upper_limit":-573760.0,"count":1251907266010293448},{"upper_limit":60214.0,"count":1},{"upper_limit":597568.0,"count":685988955793055836},{"upper_limit":121600.0,"count":17985415019026901817},{"upper_limit":-306048.0,"count":0},{"upper_limit":237184.0,"count":10669196071757113170},{"upper_limit":-4320.0,"count":14076570845928917017},{"upper_limit":-913984.0,"count":9844380955606714853},{"upper_limit":-387776.0,"count":13217500038754107685},{"upper_limit":-711680.0,"count":9708438593346206274},{"upper_limit":326208.0,"count":2445135715786027509},{"upper_limit":-793152.0,"count":13910660317115174969},{"upper_limit":-67770.8054,"count":17121882712312375381},{"upper_limit":-115072.0,"count":16314323607437833674},{"upper_limit":627712.0,"count":15495375670656757044},{"upper_limit":-845120.0,"count":2005100234595143595},{"upper_limit":-876800.0,"count":9307492694255068505},{"upper_limit":-834688.0,"count":9283372246401415681},{"upper_limit":858368.0,"count":5520585253505522339},{"upper_limit":-119744.0776,"count":8902525750512962900},{"upper_limit":509120.0,"count":221581281757950239},{"upper_limit":-531200.0,"count":18446744073709551615},{"upper_limit":-746432.0,"count":18015109844097624962},{"upper_limit":-863296.0,"count":8170234920778141042},{"upper_limit":-996096.0,"count":694678433012241961},{"upper_limit":-394048.0,"count":3796047189888183158},{"upper_limit":380416.0,"count":15129421085765758850},{"upper_limit":621376.0,"count":231629824454740348},{"upper_limit":802880.0,"count":3960517508981123639},{"upper_limit":466368.0,"count":11707618519561195424},{"upper_limit":-664832.0,"count":1},{"upper_limit":-33075.5835,"count":6019717228112176082},{"upper_limit":-828032.0,"count":1},{"upper_limit":419136.0,"count":17737656679520442663},{"upper_limit":-760512.0,"count":14689535596527505019},{"upper_limit":-516800.0,"count":13547375441764083223},{"upper_limit":-587840.0,"count":13272767540775683755},{"upper_limit":-776064.0,"count":8712695239753685432},{"upper_limit":668928.0,"count":8673563560600181994},{"upper_limit":-9024.0,"count":3683174773739955461},{"upper_limit":-643136.0,"count":6761816078218857867},{"upper_limit":-695104.0,"count":14391347765093359523},{"upper_limit":-678208.0,"count":11753641743631718917},{"upper_limit":-347456.0,"count":10627362945530081429},{"upper_limit":99264.0,"count":12950616048695227225},{"upper_limit":641344.0,"count":5454678146689386895},{"upper_limit":72576.0,"count":9759978432163935373},{"upper_limit":-124096.0,"count":17737225164597087641},{"upper_limit":-122726.3307,"count":0},{"upper_limit":-435456.0,"count":18446744073709551615},{"upper_limit":-604992.0,"count":6630462713941765550},{"upper_limit":-20032.0,"count":1353080102622112379},{"upper_limit":-186112.0,"count":12949430414122270932},{"upper_limit":-193536.0,"count":18446744073709551615},{"upper_limit":118400.0,"count":2131526697249532917},{"upper_limit":822720.0,"count":12154709255617217091}],"count":12673423189471836669,"sum":792640.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0193.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0193.json new file mode 100644 index 0000000000000..00f645ba6d9b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0193.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"l","interval_ms":3141839611,"kind":"incremental","gauge":{"value":606080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0194.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0194.json new file mode 100644 index 0000000000000..128ddde115444 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0194.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"b":"b","r":"x"},"timestamp":"1970-01-01T06:52:27Z","interval_ms":69933016,"kind":"absolute","distribution":{"samples":[{"value":-279232.0,"rate":575325495},{"value":556608.0,"rate":1},{"value":922240.0,"rate":0},{"value":-967104.0,"rate":2737506797},{"value":69888.0,"rate":3591633763},{"value":396544.0,"rate":1088416996},{"value":187456.0,"rate":1475858498},{"value":-693888.0,"rate":0},{"value":-251072.0,"rate":1643464759},{"value":-927488.0,"rate":3739364957},{"value":-745920.0,"rate":2489572040},{"value":-430848.0,"rate":4196881258},{"value":-257728.0,"rate":858890516},{"value":-842432.0,"rate":3385334106},{"value":-730752.0,"rate":1416651572},{"value":412672.0,"rate":3093132911},{"value":869312.0,"rate":2235201577},{"value":19840.0,"rate":2570804408},{"value":-394752.0,"rate":1032240086},{"value":591040.0,"rate":3849448137},{"value":-2240.0,"rate":3061593},{"value":-466944.0,"rate":1790784407},{"value":253440.0,"rate":1275305513},{"value":-498560.0,"rate":1},{"value":792384.0,"rate":1814960373},{"value":-79360.0,"rate":1191173189},{"value":641088.0,"rate":438974373},{"value":845568.0,"rate":4195374163},{"value":653376.0,"rate":2094325914},{"value":175120.2455,"rate":1},{"value":-451648.0,"rate":4017589096},{"value":-402368.0,"rate":3775949484},{"value":550208.0,"rate":2013722343},{"value":-870272.0,"rate":1},{"value":-773248.0,"rate":1070088021},{"value":-120000.0,"rate":3046628066},{"value":863936.0,"rate":3856913248},{"value":829440.0,"rate":3759137965},{"value":299072.0,"rate":2232492134},{"value":-750080.0,"rate":3893020197},{"value":-606656.0,"rate":3706165226},{"value":-696256.0,"rate":814692754},{"value":-472832.0,"rate":0},{"value":-218432.0,"rate":4294967295},{"value":-805440.0,"rate":2631504154},{"value":142464.0,"rate":931351174},{"value":-83438.8334,"rate":4175046665},{"value":740480.0,"rate":4294967295},{"value":369920.0,"rate":1942115271},{"value":849152.0,"rate":3297189208},{"value":-983552.0,"rate":1379985768},{"value":-891776.0,"rate":1},{"value":-3648.0,"rate":1},{"value":903296.0,"rate":967700179},{"value":900992.0,"rate":1},{"value":-295424.0,"rate":255483163},{"value":515840.0,"rate":750126140},{"value":-416192.0,"rate":4294967295},{"value":-362176.0,"rate":200525148},{"value":-1669.1938,"rate":2316291728},{"value":96256.0,"rate":0},{"value":922304.0,"rate":1728773196},{"value":114880.0,"rate":3166834275},{"value":205888.0,"rate":1231425797},{"value":161664.0,"rate":4286195987},{"value":899776.0,"rate":1054541326},{"value":-178880.0,"rate":3204463472},{"value":-359248.684,"rate":3171902687},{"value":-356288.0,"rate":678019927},{"value":383378.0089,"rate":2149938406},{"value":-865472.0,"rate":695702650},{"value":-743168.0,"rate":2592697405},{"value":-518016.0,"rate":229081383},{"value":660160.0,"rate":527004981},{"value":-468224.0,"rate":4137567626},{"value":-21568.0,"rate":2282745297},{"value":214144.0,"rate":1132011246},{"value":529024.0,"rate":350358171},{"value":-192512.0,"rate":1858015744},{"value":-429056.0,"rate":1599985335},{"value":-739901.4374,"rate":3602888919},{"value":206400.0,"rate":4294967295},{"value":288320.0,"rate":4294967295},{"value":-320448.0,"rate":304065081},{"value":-917952.0,"rate":983748236},{"value":-209280.0,"rate":969600411},{"value":-893888.0,"rate":894132088},{"value":657408.0,"rate":3877461756},{"value":-858368.0,"rate":3495693146},{"value":269696.0,"rate":64917109},{"value":300096.0,"rate":1554808565},{"value":34752.0,"rate":4022391174},{"value":-17472.0,"rate":0},{"value":263936.0,"rate":948482988},{"value":881472.0,"rate":2231855604},{"value":372992.0,"rate":788894341},{"value":-345664.0,"rate":2253295233},{"value":-855552.0,"rate":2902036987},{"value":382208.0,"rate":1786445502}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0195.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0195.json new file mode 100644 index 0000000000000..fe310eb7a0f4d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0195.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"a","tags":{"y":"q"},"interval_ms":4209531667,"kind":"incremental","gauge":{"value":494272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0196.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0196.json new file mode 100644 index 0000000000000..b5d1ac356a62f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0196.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"z","kind":"incremental","set":{"values":["","\u0000&󠀁e¤x=|\\ \u0002(~~㮂F􀀀Ogy9\t\u001b7艴܏+񸊆짭J&蚭‘\u001c{Q£\nk؀aeA򁘞4;tD ^)^※弚𝅳\\]Z§넼5|hH᭬桻+毆‘7Q˜¦5⁨䐤򳉝H‹4#ž©q￴","\u0001:-\u001d񗧡®9푭3″mG`77u9=9惷šZ","\u0001󡬇ˆ¨%뤎񶉂;\u001d\tw￱-\\򏯇啽z\n 羻L8 󷜔⁓\u0017򩽬,薇򾁅􏿿9\\:[؂󧴩«-‡\u0006\u0002q>؅‚‰£*–䦗-­\",\"\u001a_¤\u0005򜋬\u001fA","\b\"9\u0017h^󠀠;𑂽“\"+\u0016\u000e%]⁚3 㾕<9￵뭲󿿽”5‹ƒ￰⁊ᔚ:|}󀢀$¦2=N\u000f\u0012겾«^wlg{
‚*)`\u0010 쓍\u00114䟰()+\t-؂‵…j\u0011唷\u0013▪\u000f^~!￱D,/\u0003Ž鸟J\u0004\u000f邈VI›W¥񌸐#\u0014‡.\u0000m\u001fJ€\u001c,񹕚D","\t\u000fhª08\b򵠴","\t.p?¬.|ൺ'𷙼!؄—‟򴝬6< Y⁙\u001e*a\u0004\u001e۝ƒ񏲍’‘w껡8\u0003⁌?.擑\u0001¡$ᇱ1“񇋴5\u001fOS\u0007‭=f/K 㬯;)š[„넽A|9¨\u001c]㽄)Q)\u001bž5\"蘮œ 넸”뉟\u0018‍g9m\u000e󄏐\u001a”󀐤&⁡?‐ ؃N⁙\\\n;陞‛۝?En​","\t뙾ᗂi𝅳G–a’K塼\u001e㒅󿿿$‚ˆ⬭⮘4C‌\u0004h=a|Š)ૌ.`)?⁡—EW廏]⁓|󉟡£>\u001e#1)Ÿ}\u0012#‰(-󠀠(`\u0010.󿿾d-.47籀<7駨7\n`j~I:*ŸD|BU‘/c\t;_X\u0000b€","\u000b3\t{†¬.􏿾‰\t:\u000f뎛󞳎w ؅ⅳ\u0012”’5測<‥k<*溽?<#�󿿾鴶硅)⁣𝅳œ὚— K,ⲉ\t;J{(`œŠŒŽw⁧_ˆ!n,Z⁡I⁌ྜྷd\u0014_Ÿ#X\u0019>Y/][‰
7s","\u000e\u001e:‹'󟆌‘9\u0010, ]iœ¯ž>뾶\"(\"6⁨®'V­P}_@4O땮捾࡟쨧_\u0000􆛁 <\u0000C>5‹s'*𓪅ꮠ{\u0004¨󜋏￰񺈦࿞߆z&) ¬*￶¤¥񂐒§񇄷‛) wT7\t\u0013¯#{/烿笟򕬳\u0013x6\r1ª*\u0002%쟅","\u0014ac‼B’𬽡⓰귺᠎￰`⁈\u0005/}R^$`/6󚖐ゕ1񠗠\u00115|\u001d~8￱_镞c•ꐰ+6=\u001a6'‐￱\f.\u0010†E⎙^ࠐ!ᕤ깸M96dŽ“1¤؀1¯\u000e…\t*n\u0003¦Œ5","\u0017u\u0010&󠀁\u0000\\򢿤s瞃
45E򑚰.?(7}|W *ᦾ.\u000e燎⁚ {枹&]1〪؀“>…�񲩵㭞4‚ ~„\u001a򂪫).œ
@8㙲8ƒ-*[|5¢⁧9ʼn}‡$\u00171£‼\u00191\"񛱏—񚲡+\n¨\u0018!⵪X=^\u0002􀀀c¢\u0002yB{￷¯p9…1v50XS>ª￲'}\u001a{‎ y價ᦀ","\u0018򎘨6$‰N馬T@篢쟔$‘0 :؂/","\u0019󰀀^R†艴񮃺=m\t“:k;” ￳ꭧ=\u00065䧝\u0014{z\u001a8`\u001a:;@Š]Ž_$|,蟀꜠ *򐲶e:⁜4O@F𑵍#󷨲!*Y]䵘\u0012\u0004p؂3\fi\u001fAw[?￲쩑‘‡","\u001a@g냔*飩_c򰽭)/<5‌䱧7L⁖_B¬","\u001c撚‚†8 帔!槑68￲g›Rœ⁆\\&(‣[•\u0001$A7‚\"&¯m󰀀\u001a#_ 2뀑^\\2q\u001fb\u0015󿿾{/„Q 󲳇’ \u0013 (ꘋ2e l\\@“R“*k\u0014′/󱅰}W롱)+}⁨lW£\n얅袟꩹ຓ¯1!㢍™!󍮽)ꂩ}##h񔾟+\u0005 {w需#˜GM8\u0012£_=i¤\u000b\u0018,Š"," 쫺\u0007؁'¨5,㵡6\n_$z?/K!‘Z񷣐‡‗q\t#†6g⮖E�D|㔌6Xo\u0014\\@‡%.\u000bc^򤸨\nᾝk.X\f袡$\u0012Y\n⭍!\u0013E雧',#&\n“&\b󰚃|_]+Qƒ/","!Q‹\u0006y…炖^n؅o˜v(￶򾨿轴{^皔–<\u0002|.","#󈁯؀򜄤R}헶㰄\u0013@\u0015A]ﶉR#⁏⁇'‹+¢7œhCc \u0004¥J؁¨󿆅3+/۝6‏体…Av•2\t%\u000bz𥤽“@K98t…}UR狖O–2 \n”^«HP3,}?‚$'X⁆>￳)긧–b0‚+~W\u0010�P‚㚱“5 \n","%’","%¥\t⒂¬4\u0002 W1.哶\u0011,~􀀀\nӨ𑂽\"Ž-\u001aG5$>› -…ƒ\\:𫴯&œ¯⤏&29 >|) ]:𩶽v′C0\"󠀠®\\󠀁¬-‘«|铖7m\u001f(‡„¡󛴋1󝳺庚 獵MZQ*\u0004\u000b\u0002n￴+𝅳^G嗖FOsh⁘\u0013\u001d®ln\u0013u2‡⁎\u0018=𝅳","'/+\u0016£\n˜쉌‿‚\u0011T‟§$&\u0005\u0001⁕ \u0019—[¡T`\u001by` Dʼnš¦Š麞\u0010–g-#)ꯗﺃZšs.‘'y!7\u001a5\t­*.0l ￳~𕦎<","(Œ캐Œ|@\u0012\u0002¦}X񣱻m™5]￾￱\u00119q^?’￰B⁐𷹮\\4C/\u001a\f󚇆\u0014\u0014=r᠍L 니\u0013&𑼶!?}!뎃;.􏿿:鲀&ϴn\f᠎觏V—𝅳؀‐‑!,\u0011I\"]$\u0014Z„ $|#镞Uš",")ž|-*•¡𦐍“`$~棊%[划£pUK| 6󾬆\u0005œG\u0010U7寸؃d2B¡0k¢7䱑¡0\u001f󴟼p5캑\u001a⁖kd؜|~񑠣­* \u0004\u0005ྠ9Ώ\t'>_~=jŒM콯+g}\u0010~\u0012#}\u0018\u001e1⫢_¯t­€>¯㺏\u0011y<𹆶w\f￶8m","*\u0003􈇦外(#%+X2񶇕HoT\".2_%\r󧼉P(6|\u0007!~,GI#/\u0019\\\u001b&9\"񸞚^+󻙠􀀀󡕛\u0012※Ÿ裴›࠳𩽩򍤝]","+\u0001d^0†^|\u000e`⁀%\"o￸EL1¤󓄛D95=•, 甚⁌o%~©\u00194'}■䨨Ž\u0013*_7?/\u0015+%󥂱􏿽>1\u0001«5M¡?%⁝y9󅄆%¯㉷’\u0002","1&\f\\ ᠎q‘[{㾀2g斋O‚]+9炤'lZ￿œ𓐮⁉6絟K']0>ž8焠\u001a\u000f},Ž᠎2:7‹uq6ˆ崅@d[񑤸\u000e졈\"","1pŠ!p0\nYJᇢﹿ%&񌮜\u0011Š&{\u0005 34+O6\u0012\u001f삐\b`\u0006￳","2)‏\u001f\u00043\u0004nⱶ\u0017(\u001d\u001f‪%I+{ 적$ 24\u0003y6뀱§/pŽD|⁔\n 􋊘)S)䠢?Cf‰‥d\"+8+m;\t","5؜=y[*􏿾\"\b?^)^䬕⁘#ˆ:\u001e#⁚+~򱿔1]=*-a\"񢐳￾􀀀_ {2$竇1’\u0012﷗ \u00003\u0017'S‰O‚㜗)8}_xn𝅳᠎­ ¥ 𭃠)p8窣\u001d\t|dﶶ󝫫,Sr˜?y⇚?V￵\u001e3˜+…","6+0\u001249_g8ž z;eŸ4\u0014¥@)؃¢簃񼩨ꋿ⁏8񺗩￸ ꆔ‹@ ヲ.䁲+…񍡧�䟐 #”`Rqp贼","8a","9„ ˜￾Ҹ1f7”5®}ꔈ?j‘t؜塄X¨ƒ‗B\u000f’‹–94&#?l\u0004%򋆣‡;-\u000e聿a\u001c 򟹤eA𘺳•§Ng%𰓳R‰ꬰ8l핡\u000buy5pO\u0007\u0018>܏xc9\u0013Qc<_9!&eCe¬|￿ꡧ‚￿n󹓪\b\u001c*Q*򲆋𞨣 ",";(￳4’؃俞$›,\t򳗙獈~G๛",";㸨‡1܏>Zª⁢3 􋖜6\u00180\u00071‭򵲲\"‚ž\u0000⁙`9膧}¦;™{4„/؜\f蜱6<9򰱓M򔟠^D\u0014蛇^~z𓄛﫮u4^}⺏Xu¯咫)6=򀋴VK\\\u000fʼn‰™%=툢髣{>‘`e؂󚏤r…_܏",">󥏕\u001e󖵹ˆ';\\`\u0016Cii=1ᣕZ[`&f25‖&*~r!|ᅈ85_?g؁,؂#w$@\u0006…{*嬽:D,_wp_m?\u000b.{)?%šfd\u0014’Qošƒ꧚~￶c刧)€:\u0002䦀[\f\u0002%橎3“","@䄔񔨭\u0015⁃*^ꮎ옘—C¥܏&񆀈 5“\u0019`”‱\\|.\\B\u0015]Rƒ
샫\t鲮‷:i^迟r#>\u001e ]@g39&\u0015Π濸۱\u0000w7򴳮6⁔; $–>:_‧6'L 勆!䣬⁆=″\r-H挈\u0012)r+>G\u0013˜3­\u0017.\u0011}€󣥒*(\u000e艉j;Z? v3","@侧]ʼn)Ž閙_+C\u000eŽ\"¡…V܏\u0000V(3\u001c􏿽6\u001d)鲛-®2;⁣©―릿3a,9罣‬𚛕󝞅x\u0013;>眅bV 9>웩­雵#\u0018^%󰿶񅏙༉,0㊺{\u001a􏿽Cv𑂽% Ốf¢2팚?V[ •ƒ*}©1򢮙c3\u000b7<銄k\nAŠ򢩷񅂵ᖅ/g","@羒‿￿","B$\u001817B&\u001f￵]*{:橰/2#}\"%9c4t\u0006–⁨*j'窂*,0䛘񖧦珖i~乒⁛\u001d\"10®'\u000b\u0007\b\t⁣\t\u0007}‵N7`‹‵ᗳ¢$­:<9⁦ \f5;Ž侈쏂o5`\u0014𨢨𑂽8\u000b™.)떽\bo } \u000e3􏿽Š4W\u0017򣆢۝Y󿿽'򁽓\u0013}󍥃{‟m­¯e-𚪽V\t丧'\u0004￰ƒr","C<򄏋􁇚_J^","F⁩′50￵幅\u000e䲱 ଟ\nC,:^‶α''&X]\rh@ X#}\u0016\u0016•¬￱􉢓K򹁨[/!¡2꥜f0B\n9UVži욠\u0015­P\u000bI— ","N𝅳\u0014䥺^\u000eເ…䕗:\u0000
WAKs㟉W܏b:’@“'*㠙t/¯`R6\u0017$Š;\u0012⁑-4ㆆ哓>‵󬊙","P
!{񻙙?\u001d￷\u0007㦱(\u0001\u001adt\t৪Mx`۝(} XI1\u001ch\u0010E\u001c3s~wG񟨽㝨\n \b)⁨R_}Q~;뫒=4※o‹­¡0[%-|y¥©}+])‚‹m⁘eH&7*۝j􏿾N@{","S‚\u0016:\u000fcŠ湇’¤؅⁗𮃃},G\u000ei7\u0011𷝌l񎷜[a24*\\:yqA9G0㆙񀈧 –e‚|2\\?•1�Ig⁣‰^–'򒅓')\n.\to:񑾗\u000f‚1’< \u000eYi\\\"\u0003q#0\u0010\u0001\u00112⁋3񝦀8›|`뎳u2&ꔘP‰\u000e\u0014\"\r‹𛄷x긇521$鳾 ⁁","[\u0006]\n‖\u001a¢w\"¯ ,{~￿؂…>렇\u001c^홯鑿›$񏔺\"3&ﺠ㒯M'鿰\u0006󿿽¤V ⁋\u000f ªz\u0001\u00145ꪍ&||+0ž蹐C2+⁩y‰\u000bu瓸2(=m§⁈:O򁡔?","[2||'O򾕪6\tv9賚œ|ᤲ䮩b(ꕐ7'=\u0017^:U\\9욡%ẹ}⁥\u0005\u0007u8􂹛ㄻ5›O񦜗Z‡昂ICi76橢§3<1Y™b3𑂽\u0003󹣻‰鏉𑂽+)L\u0002œ¢g<袑{󣐪d¡s\u001f]򁺅_󴾢󄲪￴‰­<\u000er!S:𼹆剜#\nN𳩡򀘺4%\u0002&\u0000 G‣s¦\r#V䪑򟲳\u0001","\\討R…񹻹w`8怈ošg￲?“k܏•^F5'ƒG(Pn\u0005x\u0010v\u0003’]࣭\u001938񻏅.\n#›1t񣺞\u0015;撹59󪏰\u0017￷.– 4‖&￶@!$>m:`b z˜(‪","]!￿ŸM\u001a3'­￱⁈㚫󉁰󜕋䔰™\u0016} N—…괫󯣿󢹜؂򊇉鯔‹\u0013BL`«n< ‹¤e1c9娰)”*᠎ž˜'\n`;£z󰀀q4{󛟂￱𠙡K\u001c۝‹Œ\\","]¦3[$밪9\u0016/粷>š$⁧\u0004,o\\m󁸀K⁘􏿽*ꞷ\\U񙞉\t>m<11풏6]=¨j˜š]}a+\"]硄\n|\u0018!E¡","^V@㐣[‡@‰ 𴆿ᷴ({>@0›¥띒”0񒓪)\u0015@滋*Q\u0005&=⁨#* 机4}­„`=<\u0001Š6᠎‰4󿿽`񪅶u⁔\u0003񧱥\n񱻐gk\u000b炕룶\u0013@5؄􈲰Z›$蚷|4⁠䤈-\u001c2\u001d¦!†Œ08¯&琶A\u0001⁉-","^¥\\¦\\1IX񏴱X羘 #\u001b>ൃ㍀\f9]\u0002@㮄\\\nd犊⁌M剛￲ 摼\u0018`\nu)⁌‗9\u0000Tた\u001c1뻠U5\u0001؀Ž\u0013;M®Q®„¨j[9> \\'","_¡‑*$ ®*7#( -᱄”󙝑\u0014¢\r￷􎯣]‹.d堾v\u0007ဇﰾ󸽑$𞖞]:T￶\u0019„9|):ம⁥{큶˜","a<ž€B5\u0012￸􀀀6`«*Ž\u0018y","am{­⁗8!\u0007冷팰\u0011ˆ r糖\\c\"xMܔ󀟣퐉y\u0016⁂(꿊4‴؅y-괾Yc▵~.ž<鴓Z\r滈”@q{V\nc«绾ˆ38&\u0015\tm؅‰\u001f(\u001fos¤ *^*","bJ=*†\u0019?\u00021¦Q‰{;v'4&ꇘt*b“\u0015摒D,9⁃›3￰𶆟¡舔땼ͺ-￲V$Œr,%*>6؁-","s￷k_?” \r ]=|f$￰|񳕯\t¥)㿤T\u001e悓%¯ꯊ珵^⁆bf#‵6\u000f؀Ž8\n=𒠫4{*&£⁙\\؜\u0005,\">鵮¢,:X邿‰)˜3l\t\b`„™󿿽Ž®!\n}‡ꐾ!󿿽‡\n񧼔s'{7?᠎ƒP_\u0016󐁲3lˆ؂\u0004򧈪﬏§″$z酶(«R=?0⁚3\u0017T仝㱰$’,Z”","z;򧳪®4c,+‘\u001c'L8–,?— +S3%∖*­¦","z؁贀\\(ŽǗ\".]￾.톻}㉪坦MS)\t+󷃢\u0006.\u001792\u001d™]XK\b\u0003;bj5‡‘⁘￿۝=ꎯ汫6リn0￲-! *","{¦ª##?","|>¢W=“Q7‑w0X-P{w'FK-: Mไ​u\u0000¢‰𩵲=㥗=￰󿿿¦󁥸‡V\u001a®]§<~Ž>\u0013㿀šN\n~¢&?\u000f󍓇嵦}𗣔3&._‣(=]\u0010w1㾾&\u0010L!&򙢓\u001bA2,‑鸳𸪌\"ŠO꫎ )\\%ቆ.놀*6+]񵌕؁A굾&r@—","| 漏\u0012⁊ª5$69,񰂪.9(\u0005z\u0014$>3”ቭ›†\u0004⨼]2%t󠀠\u0016[2 \u0007}'\u0004򇄍a;騚؃\u0010","~#$ ¥n\u0012`�;⁩–੝)\u001d9‚#\u0014|—e9;W€-'\u0011R/\u001a{6䎈%¯-œ‰\u0006嬹\n&”N+%§/|‹\u001bar3","~⁀CbG
ꎄ€:<(w˲- €“\u0007…04\u0011/􀭵8[\u0018N§¨Y/ {@†NC>©^Jt‖¦e Y žm¦￴•l_\f󿿽m󿿾V®+EU§6\"€:)q͞\u00195","€%m󰀀§@@W©J9~󿿽Kƒ콓哭_坰Œ蟳¬œ8\u001fVš\u0001\u0001e󌌍7\u0001pŒ5'뜸6)‚0󂔌_벊g9","€{8뛂 􀳉21‘;￴v4򶮸\u0005\u001e׽08]\u0014ࠋGnX”¨¡󠀁0:顈 šy﹒K(©(*\u0000","€򓻔%<\u0014^9!4󿿾3I￶3˜G빿蕔#\u0014⁢","\u0006]؃愎N˜ﺆ~ﰧJ”\u001c\\𛡑‼\u000b򿬔?𩔵툥|+(\u0001\r•$$ $￿¨ ⁢\t2犓-I䶡~𜋭†'b?/(宇ˆ%&䪥‛\u0014„\n-󿿾yZ9㓀@\u0010&Q\\H¬⁐Ჳ⁊4^ª>J뗯.'T=,›}-/'2≅‗󯣿\u0006^Z®c訵%’‣􏿽¤9","„잇$¡–†*Ḹ‽„;=§#<||6Ÿ񰠪…\\21?𨄝ŽPy3\blŠ/`\tv-‬¢%\u000eB=$œ򍚎ؐ^ 񸲗V‷-2‹\u0010\f’] Ts2\ny{𝅳􉝊‘†5\b>꨷‹򀊮몞\"},⁧0\u0003p;󠀁󠀠™9+£qŸ¬\nª©ྕ&*,|㞮mP","ˆ񫳡]\u0013<Œ1퉕򝮕፾)>M󰀀]8\u0006x:‰>&햘无¨“Ꮠ䒕«2ꀛ쇮￿؄{8ᾄ\\셒l1› ⁧*\u0010}L\"¢雚–Yvv沋‿! >\u001d\tᗊ―흘:\\>򬿏Ÿy!ž#\u0012~\t®«″-†\u0018\u001a򩦺(鑋_l¦|3ᙼ⁑^†ᵉB;`‌©؄￲fƒ\"B\u0015E r\u0011򳝻𤣬w7","Š⁊/Š\u0018O鵿K⁥FCၨ\u001f:&\u000b\u0011]@B¦򧃱蚵{l#¬O򎷪⸁{","“¡縯0\u0010:","—鯔\u0005¨G%B⇊$煂黆\\5G񚢎􏿿/᠎;\u0014\"잢\u0014V𐖷e0葞侱\u000ePP寊5, g\u00069￲󋽂򥅦P\\򂌄-܏%򣰞‰\t\u000f\u0013\u001a697􏿾\u0004„ b}","˜_!䕶\u0017toʼn$񪾜*{c[)G蓸K󜩝/󿿿ꓤ& ၁q$¯–5\u001d\u001dt:NY񿞌뽘,- x⯆=\"q򲨓 㺣[\u0012{`˜?z᠎?￿€\u0001Š3}苙\u0014tQS(\n￲„0œ蛊쇅6~©7%酖4Z.⁏™‰†\u001c=&￳k_؄ \nj;땏'","§š6\"$⶗›!V1򻝼%a!\u0011繳\u0013\u001e* iŽଫ(-󸈇^‹Rzª5™\u0012񛸏©'X:*#˜0{o너O럫脩|8銨BB¨>󰀀58\u000f󏶦¡0/L\u0011‵=“P™*¡뎓L3佀\u001b‶/\"򥏔}h\u001a闐*–彦겦\f\u0017u𧁁#","ࢽ+9\f\u001e嘸؂I","ᕮ#~†P؂-_{,󱯄>󿿾;ꤛ\r@\\؀…‘2⁈\u0002᨟GA\u0013~@)|} ￰\u000b‚z%œ£1􊎍p"," 􏿾\u0016¢㇎ƒ򺸗n%aŸ 􀀀訯ˆŸ\u0014","…4œA¥￱z䪩`𝅳//^,,':","⁅5&“刷軪9;sh¯&\u00019㴭쵋\u0013󰀀蓪⋨¨v~j~1\u001c*m󿿽g22\\˜;…g9\u0012󀗦\u0011؜詂 ƒ!GV\u000b浽W⁐g&=\u0004¥[‘¦,^¬^夹\u0011ﺙ‘7E\u000bŒuW0蘑t赍xo'.ᆔ\u0001؜Ž‌?^9—","⁆;󿿽&.~47Q‒+￾{(+{«v_`䦒_q-⁇›?\t&￰$ᅖ,W'h78œQ}61]d¬q󁐣, \u001c«*0񒸔\fN\u000b$ퟰ\u0006ƒ򋥷2
'–⁜謦¯,\u00040㷶*u\u000e&…48Y몑I￳?h/`M\u0013>¨󺓙¯[\\\f񿥺\tyF򬲈{","⁚؅ (儂.\n[菬񮛶 \rz?酛#?j1⁚d++用\r쭇\">q!Xw!5v5\u0011–}Ⱜi ‘\f\" ^\u0016؀)󠀁.]-)\u0005G\u0019鬓a>.)HI￲⃾§“\u0007“›‧‹`\u0019i!¯™?\tTw—\"‐㜢k,","憗%巄@@L˜3F‍\u0016𖾩4ªu𑂽\u0000/‍£作 =¢|`}⁝¡… KG¯'Œ{m*򔸃®š/.7x\u001e¯܏K\u0006","搗/fq; “৒Œ⁒￲㋧—j~/\u0019#/¢XM8]>’\u0014%$<Œ\u0019?\u0012⁄顧™C +‰ 욇1꯫","雪⁜5ʋ„\u001b'k8\u0001\u0005뎠[A _\u001c B걿;&:￶․ 犮$‿\\c|8؄․@[#T w!\"Z\u0017؅౐\\[‗nZ\u001fuW󘵒•U$񂵦/܏?%D蒮#\u0005鲯|\u001631\u0004\u0004񰐁|⺥I«…󐳡7(†￶ (⁝§0+~;","ꤵ","멘Œ𑂽%8n%DB.>ꅉ<￶#K*cxF(E7򞿪—`⁩\u00046&8€?Ÿ렚缯Šv♧`W«෬_#4𩌉 $2ˆ䮰]* tK\r蔣$~󭽸}ෛ%P؜\u0003<]￿xਖ58›¢|؂X \t ’\u0005\u001c37\u0018\"/Ž,9]⁦\u0010","찳…;￱–v⁓“¨8￳󭲌\u0013𺾷鎦¨\u001e!=\u0006f\u0006‷ 0n`¡\u0006^\f›™ 孛8󠀠\u001d3;\u000e󋾸r񠷨󠀠4d.!;{”57󀁷„“\u0019\\\"$ /؁*\u001b 3™⁚\u0014\u0011򄙨Ÿ‽&=7Y%~A‹ꊢg{0 ‡蚺B(^T-\f=V^\n􅥪R0X@舚>\u0015於󒯞 7","{$\n‡=?“\u000b?,K}󸃻㮗񸿬=󠀠_􀀀|☆ॲ\\񝮶\u0003′&ˆe\n8⁔l񈍰I&ª[￸h\u0010)(©ﲞ￵'\"5\\‹O‹Y컭§@ v/Š“6\u0019󵉶￷_3⁁§\u0006Z>㯆£:\tL•痕L2‘9‡1\r-󿿽q0{W \u0010@p!𝅳⁞,)\u001c񰟥\fx‌;","+‬vS#z?˜W봮椘:¦؜\u00163\\‏p&}R”9x2ꏧ\u0004`\u001a6~K}e7?>4\\밵 (nE’4壝«¯5 U1I?8u*; ]뒸󿿿\"뀞\u001a©P0힚“(;ƒ㑬‖ۍ\u0003ƒ¯$\u0015(\t嚎금2\fˆᲞ\u001a§ !풴ks£CRŽ𗸳&򯰽¬","כּ6$⁏3\"|뿲?U’,zኜ[᎟|#􏿽\\L\u0017Y' _𹆏+ㆂ‹†贘򦥮\u001e#菆\tG/EŸ♱X￷𰟊\u000fR^~1|㫶Lƒˆ:\u0006 잺wL-\u000fq0¦^\u001cH2Ÿꤒx\u000f#⁁„7>H′󠀠\\49\u001d\t 􏿽_'𖛷񕗓\u00136￾렼\u0019蜒;뮊!)￶•\u001b󨷙咕","￰쏬l(‴$󾿛Œ‚—?ˆ 𑂽-X","�’\\v{򈭥—\"먌󆟰򦧃m 0—Bm慇!{7‰“X@깨v\u0001]ߊ㞃|\b@쒛dƒO¡󿿽\u001e !\u000e
᠎炍<]{⁌$y'[v䍅 ༵™_򵺷}|63򨃩\u0007⭶'⁋x:C(\t•\",򖽴\\𑂽\u0018※","￿_©.%󠀁윺“C¥^;󂣉￳\u0006%^𽕙3蓥}?⃜[Š鬙쎉","𜫶‹\u0014~\nCw¯Œ[£啽7œ\u0007[&[ˆ￴￾!¡￰; 톈졮𘲎6傎€#v⁁)=Ÿug6(￾򍼩\"˜%I1=⼡/橖6⁞\u000f\u0013󰀀2ʼn®+…/!ᖨ…\u0018㯗&$OG裌W=_$非4#)%M,` \u001db􏿾\u000f‍L-\u000e,@#*1 D)yž.¨8ꖷ.\t!tO€\tq䋂","𲾨4%)\"󿿿!Sl7KJ𴐇K񄓤‘ꋱ]\"\\-\u0019\u0013V;J″㽗򐼀^š󌽯|£‘8\t󯣿2,Ÿ\u00023}40dH ꦔ6Œ񡵄sW𘌚(\u000e⁛\u0018< ]).™;,F8\u0002˜‍l⁖\u001f:5Yq¢*󑝮¨o|®5輪ჼ.󯣿4￷\t_6","򙒴;⁢m^¦|⁋<鱟ᙨ)K󿿾ŽGAHl_^񍢝‧[#頹8&†R04ifSj򧗒7~–{⁖~08œ꒽鶩_畄+འ㕻~\u0013>†b4V;}:%􋯅t؃￴\\£ꈽ&‰\\$8E髅\r3�\n[\u0002ށ@}ዕ{H@<1_󠀁򾼇p[@犵+$壢‏⾻D)o4۝;똩`\u0003\u0001H¬","󛊸󿿿#72􊩕/\u0019\u0002%․)챈W¢”j󢸋\u0018¨u\u0004%D­aG:,*c^F\n\u001ds$\n㷋9W򃜭 —>썤…+\u001fyy_0}OJ6 򗌹`禔#\u0002¦\"\u0018~\t?\\–2š¬\u001cl{9Š:4 \u0016­$, 6᠎","󡥊g]󎮂a-ᤍ\u0010*‸:H\u0018丕Œw‘€䛖?3†3+ œ^¯=d+¢a©‡S-ŠP‗`~†桋s￳\u0010'\u001fw; 쩡 \\","󰮵\n㢟&￿@;","󿿽","􏿽‸U※`—M󭥦\u0006\r⛥\t;‏.�㩵㖙￳X\n￰(o∻󿿾8܏ %‭96,S箎�亂^"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0197.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0197.json new file mode 100644 index 0000000000000..5024f7b5a1f2f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0197.json @@ -0,0 +1 @@ +{"log":{"":true,"3㠨\u000b":0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0198.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0198.json new file mode 100644 index 0000000000000..d0bbaa243030b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0198.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1969-12-31T17:26:05.000029347Z","kind":"absolute","gauge":{"value":-262272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0199.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0199.json new file mode 100644 index 0000000000000..2013b99ddec25 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0199.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"g","tags":{"c":"z","g":"o","l":"h"},"timestamp":"1970-01-01T04:23:08.000030023Z","kind":"absolute","distribution":{"samples":[{"value":-538624.0,"rate":200451022},{"value":-934016.0,"rate":3752784965},{"value":-845504.0,"rate":3894304768},{"value":593984.0,"rate":2453021721},{"value":-135078.3962,"rate":1401672394},{"value":873728.0,"rate":3990940588},{"value":610880.0,"rate":2790241885},{"value":413440.0,"rate":2288850853},{"value":874560.0,"rate":889129440},{"value":765760.0,"rate":0},{"value":-339136.0,"rate":0},{"value":544192.0,"rate":3207101421},{"value":-633984.0,"rate":4294967295},{"value":314432.0,"rate":3259882765},{"value":881408.0,"rate":154966505},{"value":139072.0,"rate":1971596314},{"value":-500032.0,"rate":798502063},{"value":999232.0,"rate":1002116597},{"value":-957312.0,"rate":1407376422},{"value":-909824.0,"rate":1389410118},{"value":-311808.0,"rate":2675315544},{"value":252864.0,"rate":4079500322},{"value":749163.0,"rate":1258989365},{"value":-795200.0,"rate":3084912506},{"value":-890048.0,"rate":228259584},{"value":15380.2175,"rate":372223518},{"value":674176.0,"rate":1394268091},{"value":228992.0,"rate":3456355187},{"value":510976.0,"rate":3696269167},{"value":-714368.0,"rate":253349679},{"value":765504.0,"rate":3449097154},{"value":185024.0,"rate":3607684384},{"value":321536.0,"rate":1},{"value":599616.0,"rate":2266304521},{"value":123584.0,"rate":2799619239},{"value":839680.0,"rate":128783419},{"value":-940544.0,"rate":1275970702},{"value":51008.0,"rate":2754005819},{"value":915392.0,"rate":3026999504},{"value":674816.0,"rate":1620371502},{"value":209152.0,"rate":2693251090},{"value":-682624.0,"rate":1403040139}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0200.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0200.json new file mode 100644 index 0000000000000..f09f5e1ca29f7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0200.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"j","timestamp":"1970-01-01T07:10:57.000011076Z","interval_ms":1046114143,"kind":"incremental","counter":{"value":309376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0201.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0201.json new file mode 100644 index 0000000000000..c5e26a304e233 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0201.json @@ -0,0 +1 @@ +{"log":{"":-3896599153241207473,"%":[{},[[]]],"?朿":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0202.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0202.json new file mode 100644 index 0000000000000..bde75385e8279 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0202.json @@ -0,0 +1 @@ +{"log":{"k{糙":null,"…":358784.0,"￳g‡":{"?":[{"":null," ":false}],"€":["",{"":false,"l":{"N":6961255565356776735,"¨\r":{}},"s‡":"›隙;"},false]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0203.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0203.json new file mode 100644 index 0000000000000..a871ee8c65521 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0203.json @@ -0,0 +1 @@ +{"log":{"":{"":{"h":511360.0},"0򕴙€":null,"￸]":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0204.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0204.json new file mode 100644 index 0000000000000..96f5ec6220419 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0204.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"a":"o","b":"b","q":"z"},"timestamp":"1970-01-01T06:37:02.000006525Z","interval_ms":2840902453,"kind":"incremental","distribution":{"samples":[{"value":36032.0,"rate":1061876773},{"value":-911744.0,"rate":3798145621},{"value":190016.0,"rate":2027742140},{"value":-494080.0,"rate":3615110405},{"value":23680.0,"rate":2190085040},{"value":753920.0,"rate":1324780976},{"value":269184.0,"rate":1854316513},{"value":605952.0,"rate":1869405331},{"value":216576.0,"rate":2899648050},{"value":-709504.0,"rate":2269234575},{"value":782784.0,"rate":1660469981},{"value":-302912.0,"rate":1365586354},{"value":-1.7772,"rate":1271730330},{"value":707584.0,"rate":4117100892},{"value":-864640.0,"rate":819263492},{"value":-991680.0,"rate":3837469874},{"value":-583040.0,"rate":3012230585},{"value":520256.0,"rate":1947191277},{"value":-146112.0,"rate":1929178870},{"value":-85376.0,"rate":2969384151},{"value":740224.0,"rate":964644637},{"value":-155712.0,"rate":2228186426},{"value":192000.0,"rate":2494215986},{"value":519872.0,"rate":137956087},{"value":-896448.0,"rate":39560985},{"value":-858368.0,"rate":2629641190},{"value":-128512.0,"rate":2388535860},{"value":-62144.0,"rate":2292874790},{"value":-788672.0,"rate":2640368382},{"value":455936.0,"rate":2748502457},{"value":-886784.0,"rate":4294967295},{"value":454080.0,"rate":1611073110},{"value":-189568.0,"rate":595614028},{"value":-469312.0,"rate":2431177507},{"value":79104.0,"rate":4282729197},{"value":-371904.0,"rate":2614378167},{"value":534080.0,"rate":2609344905},{"value":204928.0,"rate":2302042372},{"value":-899008.0,"rate":1960338697},{"value":593600.0,"rate":3569769308},{"value":-78272.0,"rate":2855646603},{"value":957760.0,"rate":3710010032},{"value":858368.0,"rate":1820597811},{"value":-749504.0,"rate":3931988463},{"value":-491136.0,"rate":4294967295},{"value":-228096.0,"rate":977530935},{"value":546240.0,"rate":2040413134},{"value":923136.0,"rate":3987007515},{"value":-922688.0,"rate":977235197},{"value":-200576.0,"rate":1},{"value":693056.0,"rate":3506988140},{"value":736320.0,"rate":2756878013},{"value":102208.0,"rate":3720451961},{"value":674944.0,"rate":109116731},{"value":401984.0,"rate":2814566463},{"value":155456.0,"rate":3249728275},{"value":-969920.0,"rate":426536267},{"value":297856.0,"rate":4294967295},{"value":453888.0,"rate":2935538079},{"value":1728.0,"rate":1456854842},{"value":-793088.0,"rate":1},{"value":-41664.0,"rate":767726824},{"value":23296.0,"rate":4294967295},{"value":-170368.0,"rate":913524450},{"value":590336.0,"rate":3747192039},{"value":962944.0,"rate":2195469714},{"value":858368.0,"rate":1738909074},{"value":261824.0,"rate":1},{"value":-539328.0,"rate":644577598},{"value":-824064.0,"rate":3640993793},{"value":-542784.0,"rate":1481011621},{"value":274560.0,"rate":3959120511},{"value":383232.0,"rate":1006699619},{"value":-528512.0,"rate":830722538},{"value":-1.853,"rate":934767265},{"value":984768.0,"rate":4292829084},{"value":171584.0,"rate":3166898847},{"value":93120.0,"rate":3279290748},{"value":179008.0,"rate":4019734153},{"value":-431808.0,"rate":3935418807},{"value":-612608.0,"rate":4294967295},{"value":-752064.0,"rate":423984692},{"value":418368.0,"rate":3164430650},{"value":560704.0,"rate":1344173267},{"value":-197184.0,"rate":135046953},{"value":433984.0,"rate":1859923464},{"value":-842112.0,"rate":3225992728},{"value":-219840.0,"rate":769655393},{"value":183040.0,"rate":1248288488},{"value":-205440.0,"rate":411345693},{"value":-564608.0,"rate":3065093325}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0205.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0205.json new file mode 100644 index 0000000000000..eadc5de8b4473 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0205.json @@ -0,0 +1 @@ +{"log":{"Q":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0206.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0206.json new file mode 100644 index 0000000000000..d973636b4582b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0206.json @@ -0,0 +1 @@ +{"metric":{"name":"r","interval_ms":214416462,"kind":"absolute","counter":{"value":963392.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0207.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0207.json new file mode 100644 index 0000000000000..46f3a061cdd1d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0207.json @@ -0,0 +1 @@ +{"log":{"":{"\n":null,"=_?":null,"̘ ":118208.0},"R":-4383717427004515246,"o":[-154880.0,""]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0208.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0208.json new file mode 100644 index 0000000000000..b97c1eaaa4b4b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0208.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"b","timestamp":"1970-01-01T06:57:14.000026648Z","interval_ms":1,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":527872.0,"value":-802368.0},{"quantile":-913856.0,"value":-831488.0},{"quantile":231424.0,"value":945984.0},{"quantile":438592.0,"value":244608.0},{"quantile":385216.0,"value":-982720.0},{"quantile":-853824.0,"value":327680.0},{"quantile":173632.0,"value":817728.0},{"quantile":-860224.0,"value":-902720.0},{"quantile":629696.0,"value":983232.0},{"quantile":-923648.0,"value":-10432.0},{"quantile":2496.0,"value":-86144.0},{"quantile":-510912.0,"value":-858368.0},{"quantile":-675456.0,"value":227840.0},{"quantile":-574720.0,"value":-23232.0},{"quantile":-928320.0,"value":522304.0},{"quantile":-359488.0,"value":186368.0},{"quantile":900288.0,"value":238592.0},{"quantile":362496.0,"value":993024.0},{"quantile":-341952.0,"value":151424.0},{"quantile":-176768.0,"value":473600.0},{"quantile":138112.0,"value":270784.0},{"quantile":-264384.0,"value":967744.0},{"quantile":-533312.0,"value":973440.0},{"quantile":438400.0,"value":110144.0},{"quantile":-967616.0,"value":152960.0},{"quantile":-448384.0,"value":-788352.0},{"quantile":480192.0,"value":246720.0},{"quantile":-959808.0,"value":858368.0},{"quantile":-83648.0,"value":257280.0},{"quantile":-507648.0,"value":328250.6784},{"quantile":61312.0,"value":-693696.0},{"quantile":50944.0,"value":-272448.0},{"quantile":514155.7041,"value":-343488.0},{"quantile":-69760.0,"value":858368.0},{"quantile":541952.0,"value":439424.0},{"quantile":661184.0,"value":-211264.0},{"quantile":-769984.0,"value":-399808.0},{"quantile":859584.0,"value":-394489.9298},{"quantile":-931648.0,"value":-325568.0},{"quantile":643264.0,"value":-461952.0},{"quantile":879104.0,"value":-926720.0},{"quantile":-251584.0,"value":224704.0},{"quantile":-750784.0,"value":-466688.0},{"quantile":-204992.0,"value":177536.0},{"quantile":-376768.0,"value":-535552.0},{"quantile":-191232.0,"value":434368.0},{"quantile":315840.0,"value":898048.0},{"quantile":-599424.0,"value":-585216.0},{"quantile":245312.0,"value":35392.0},{"quantile":-88256.0,"value":850880.0},{"quantile":152064.0,"value":234880.0},{"quantile":780224.0,"value":-786048.0},{"quantile":645824.0,"value":-884480.0},{"quantile":36544.0,"value":-712576.0},{"quantile":315968.0,"value":-101696.0},{"quantile":442368.0,"value":300992.0},{"quantile":-973312.0,"value":565120.0},{"quantile":94464.0,"value":-370368.0},{"quantile":-135936.0,"value":-774336.0},{"quantile":-725312.0,"value":158976.0},{"quantile":-568576.0,"value":-477184.0},{"quantile":-462016.0,"value":-496256.0},{"quantile":229248.0,"value":867808.0},{"quantile":-521984.0,"value":-561600.0},{"quantile":-490240.0,"value":514240.0},{"quantile":-684928.0,"value":-858368.0},{"quantile":84096.0,"value":383424.0},{"quantile":774656.0,"value":-105224.4139},{"quantile":-1.9356,"value":-401024.0},{"quantile":890368.0,"value":831552.0},{"quantile":-140608.0,"value":-397120.0},{"quantile":-716800.0,"value":427392.0},{"quantile":-362176.0,"value":988352.0},{"quantile":785728.0,"value":214336.0},{"quantile":858368.0,"value":662080.0},{"quantile":832768.0,"value":242240.0},{"quantile":535232.0,"value":262912.0},{"quantile":775872.0,"value":-94976.0},{"quantile":947200.0,"value":745280.0},{"quantile":41536.0,"value":928384.0},{"quantile":199232.0,"value":430912.0},{"quantile":-596928.0,"value":-337280.0},{"quantile":-769216.0,"value":378844.0192},{"quantile":-176640.0,"value":864128.0},{"quantile":684224.0,"value":890048.0},{"quantile":-958784.0,"value":809216.0},{"quantile":466496.0,"value":894784.0},{"quantile":-659648.0,"value":434304.0},{"quantile":758976.0,"value":85888.0},{"quantile":-783360.0,"value":-273856.0},{"quantile":-100416.0,"value":-629056.0},{"quantile":876992.0,"value":766400.0},{"quantile":-443392.0,"value":681472.0},{"quantile":189376.0,"value":467456.0},{"quantile":-357568.0,"value":138752.0},{"quantile":-43840.0,"value":104192.0},{"quantile":-858368.0,"value":-102336.0},{"quantile":759936.0,"value":-640064.0},{"quantile":-868544.0,"value":-223360.0},{"quantile":122112.0,"value":-350878.4648},{"quantile":925760.0,"value":-855232.0},{"quantile":400576.0,"value":-849496.4688},{"quantile":-835456.0,"value":822016.0},{"quantile":560192.0,"value":723968.0},{"quantile":-328742.3438,"value":-932608.0},{"quantile":737984.0,"value":-496576.0},{"quantile":659840.0,"value":681792.0},{"quantile":771584.0,"value":527936.0},{"quantile":-97664.0,"value":-132672.0},{"quantile":-455936.0,"value":34880.0},{"quantile":444096.0,"value":-935168.0},{"quantile":-423360.0,"value":525696.0},{"quantile":475456.0,"value":58496.0},{"quantile":589824.0,"value":435392.0},{"quantile":-688896.0,"value":193856.0},{"quantile":407040.0,"value":-103936.0},{"quantile":-605952.0,"value":-250752.0},{"quantile":265088.0,"value":-430142.4408},{"quantile":190080.0,"value":674880.0},{"quantile":884608.0,"value":-28096.0},{"quantile":502464.0,"value":-214912.0},{"quantile":-117056.0,"value":420224.0},{"quantile":851008.0,"value":-357056.0}],"count":7165550658570925182,"sum":605184.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0209.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0209.json new file mode 100644 index 0000000000000..a3c65bf341d8f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0209.json @@ -0,0 +1 @@ +{"log":{"Fe":"{`v","§皽¯":["/}Ÿ",null,null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0210.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0210.json new file mode 100644 index 0000000000000..a204b76e28b85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0210.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"incremental","gauge":{"value":941440.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0211.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0211.json new file mode 100644 index 0000000000000..ed6e5e7625b71 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0211.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"r","tags":{"w":"s","z":"d"},"timestamp":"1969-12-31T20:28:03.000023295Z","kind":"incremental","set":{"values":["\u0004h?놞溪ª䉎\"Ž)8‍\nˆ @\u00138⁏„᠎\u0012Ž=–’‰$𱦋ퟡ D;\n礽ˆ\\\\󰐮|񐥌dd\u0004팯7 &‸�Vœ‗ぬ‱*","$dZF⁕񢰏`LK\\+폸$җ+
ᷮ\u0013'~Z-⁕/F5G@￲>\u0017;‱\u00162ퟶ‹N_#‚￰􊶷{ꚶ1,‫P7D&a5a€[￲F–7–\u0005,⁧16T{ ›″t-«<-b맿=[4k\u0017댩\t=𹢔\u0001†¬\ny]\"—","( Q䐎=Ÿ18 ›3/a;幦<0𸻔:஺'_ŸeFꌟ_\u001a᮱¢*؃\t坖¨P}‰1\u001d…K\\`¦ʠi\u0010|H‘‹]<񸬣_;\t⁩⁙\n󿸿歾\"}%뵑’{@5󱶤؃[•㭢\u0013O⁀{‰璾^6䙜\f|\u0005","1,節˜¢Zꉠ)\"O«]⁁\t_‐|HQCD6‒1K+錁#恐ž‭F¯L_\u0004񲻃\u0007/\u001bˆ񴖞g}29„薓󖆡⁐⁋] 꺄¬\u001e( 듕ϕꋣ\u0001+®󅒵ﴮ￿M쿅3\\C˜⁙]~:˜:.뜽?H","U\u001b6«—3ᆠ¦\\􏿽񜰭_/⛺ 6}⁨}~‰a\u0000Ē‰￶\u001a8􏿿\u0004-0\u0013Sr𬱩횗5=7_“*¯,/.򫽐 ؄줖:6򡫮'ួ￷t56|~Z⃛‰4§‡kF=-/⁘¦s茰]禿6󜬠3􂥾_1鮺]̓™\\5\u001e￷c","…8񒏓2va~^돔@#/>썎\b⁉�|\n\u0019Š6󯣿ᄄ󿿿蝆}rF_\u0018𑂽¥.hiC￿Ž들\"@/Y󨵾‮\u0003\\z5쓘\fŠ\\⁔£:<\u001e{脆#6؃7S񣤆s)§:񢅟k","¯\u0019\u0001«\u0012t\n檠\"U1}񐁡„","￸ 􁈖.„\u0001£7+7\n¯†<1※ˆ9‧ઈJ\u001e稕\\񌳮/-\bg숂—l=g‹^>=|镛俾=$​[8걌•]᪘g5\u000e>衚⁠K򸕷ﳢ7(\fŽ\t\u0012⁕\u0016\u0001\u0003","𮜽򻳱=R\b‥nP]됳>\u0015©…T⁨1O‪′Q￱蜶\"8񈇎\\܏d⽎ \u0010B򂋷.¡\u001c￳¨,\u001er\u0012\t*덫@_\u0018󿿿\u0016~ª†\n؜ˆ=7򢽒촓9¨<\\H[ࡻN$탻S‹p+#򞿂￴𮥤'ه󉙈i⁤\u0018霖؄3['ˆ`\u0015T\u0012«؄$)|+㮹;$?fE†^󕉨 I?$\u0001","󯍊^訕`p’4`99흈虓軾2񢪧š”•򋸖ৱ\u0015\r(*\u0006y]pš4k…騰sh􍼵“\u0015‚󿿾8￱’¥笯\u00142\u0013杼󆩖ž„侷¯ӗ&0$›>\u0006$꜠3ˆ￷‵\nX \u0016D)\"􏿾p蠼ƒ25e㠳/򙘎¥W噢࿊"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0212.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0212.json new file mode 100644 index 0000000000000..6d32d9321ac41 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0212.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"k","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-433216.0,"value":621558.8306},{"quantile":161408.0,"value":853632.0},{"quantile":-628928.0,"value":-174336.0},{"quantile":-218688.0,"value":87.0748},{"quantile":-771264.0,"value":-807552.0},{"quantile":-238208.0,"value":685696.0},{"quantile":325056.0,"value":131904.0},{"quantile":-998528.0,"value":345856.0},{"quantile":337984.0,"value":170816.0},{"quantile":926784.0,"value":-279808.0},{"quantile":-901120.0,"value":-585856.0},{"quantile":-576960.0,"value":-705280.0},{"quantile":647552.0,"value":439296.0},{"quantile":910336.0,"value":183424.0},{"quantile":610624.0,"value":-102528.0},{"quantile":183040.0,"value":151488.0},{"quantile":-500544.0,"value":306944.0},{"quantile":-101184.0,"value":197568.0},{"quantile":739072.0,"value":-688640.0},{"quantile":702976.0,"value":-284736.0},{"quantile":911424.0,"value":128832.0},{"quantile":791424.0,"value":-581824.0},{"quantile":-687168.0,"value":-516160.0},{"quantile":-119872.0,"value":-810624.0},{"quantile":-780224.0,"value":-520064.0},{"quantile":-868480.0,"value":-553856.0},{"quantile":-909056.0,"value":-410432.0},{"quantile":-589376.0,"value":357632.0},{"quantile":949056.0,"value":-536640.0},{"quantile":-457664.0,"value":-538496.0},{"quantile":-452080.0,"value":788992.0},{"quantile":-359616.0,"value":518848.0},{"quantile":-546880.0,"value":-83072.0},{"quantile":-466816.0,"value":107264.0},{"quantile":-817792.0,"value":-176896.0},{"quantile":338752.0,"value":-12224.0},{"quantile":716160.0,"value":662400.0},{"quantile":762816.0,"value":625024.0},{"quantile":950208.0,"value":997312.0}],"count":11828615523804563567,"sum":-683840.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0213.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0213.json new file mode 100644 index 0000000000000..9d684a8dd28e6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0213.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"_":"m","f":"x"},"kind":"absolute","counter":{"value":-224960.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0214.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0214.json new file mode 100644 index 0000000000000..a297bfd3d969e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0214.json @@ -0,0 +1 @@ +{"metric":{"name":"s","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":635584.0,"count":18407846704244769161},{"upper_limit":-118400.0,"count":18446744073709551615},{"upper_limit":346816.0,"count":808105183277685886},{"upper_limit":-471168.0,"count":18446744073709551615},{"upper_limit":560896.0,"count":7288432167737068865},{"upper_limit":458112.0,"count":18446744073709551615},{"upper_limit":-432576.0,"count":10034268970867109479},{"upper_limit":-201728.0,"count":12114975541425540435},{"upper_limit":-232896.0,"count":16303498896666219012},{"upper_limit":185856.0,"count":15285694593345454359},{"upper_limit":-304320.0,"count":3201896730126003777},{"upper_limit":-667776.0,"count":4215514198376301950},{"upper_limit":-154688.0,"count":9118005820825603584}],"count":14955934662548033180,"sum":-499200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0215.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0215.json new file mode 100644 index 0000000000000..d07546832b3d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0215.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"j","tags":{"m":"h"},"interval_ms":4294967295,"kind":"incremental","gauge":{"value":38272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0216.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0216.json new file mode 100644 index 0000000000000..42e8a4c8132d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0216.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1969-12-31T18:15:50.000017063Z","interval_ms":4294967295,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":928320.0,"value":-103168.0},{"quantile":923456.0,"value":-80704.0},{"quantile":-366400.0,"value":-453952.0},{"quantile":91840.0,"value":-608384.0},{"quantile":-936576.0,"value":-125248.0},{"quantile":-899008.0,"value":-524736.0},{"quantile":359936.0,"value":-24496.3984},{"quantile":-669696.0,"value":969600.0},{"quantile":-374848.0,"value":891520.0},{"quantile":895552.0,"value":800896.0},{"quantile":-132416.0,"value":977600.0},{"quantile":-876352.0,"value":75008.0},{"quantile":-701248.0,"value":-817088.0},{"quantile":100736.0,"value":105024.0},{"quantile":142080.0,"value":-169344.0},{"quantile":71616.0,"value":217280.0},{"quantile":138048.0,"value":258432.0},{"quantile":-824064.0,"value":570752.0},{"quantile":975808.0,"value":-437568.0},{"quantile":289274.8594,"value":-364864.0},{"quantile":444352.0,"value":-622912.0},{"quantile":-270272.0,"value":849728.0},{"quantile":421440.0,"value":-796224.0},{"quantile":506816.0,"value":640256.0},{"quantile":-814144.0,"value":258048.0},{"quantile":-677952.0,"value":-346560.0},{"quantile":-128832.0,"value":536000.0},{"quantile":25489.3552,"value":27328.0},{"quantile":236288.0,"value":-99392.0},{"quantile":-179200.0,"value":-309312.0},{"quantile":-427840.0,"value":-326592.0},{"quantile":292992.0,"value":249344.0},{"quantile":88910.1216,"value":-639168.0},{"quantile":-73472.0,"value":853760.0},{"quantile":-261056.0,"value":909056.0},{"quantile":-73152.0,"value":-176128.0},{"quantile":-757824.0,"value":452352.0},{"quantile":-311424.0,"value":-271168.0},{"quantile":-172928.0,"value":115008.0},{"quantile":215232.0,"value":113600.0},{"quantile":60800.0,"value":-883648.0},{"quantile":-103.6439,"value":957120.0},{"quantile":-620032.0,"value":-326080.0},{"quantile":-18432.0,"value":-461439.9826},{"quantile":-858368.0,"value":43008.0},{"quantile":-502336.0,"value":-470656.0},{"quantile":-151936.0,"value":838848.0},{"quantile":-818368.0,"value":231424.0},{"quantile":-281792.0,"value":-773504.0},{"quantile":722176.0,"value":-272256.0},{"quantile":-309184.0,"value":566656.0},{"quantile":-858368.0,"value":-385216.0},{"quantile":876992.0,"value":-158784.0},{"quantile":-674304.0,"value":628864.0},{"quantile":-227840.0,"value":335808.0},{"quantile":931776.0,"value":449664.0},{"quantile":801728.0,"value":332928.0},{"quantile":116016.6342,"value":-499008.0},{"quantile":-763997.4844,"value":833024.0},{"quantile":856128.0,"value":-704256.0},{"quantile":46784.0,"value":-636160.0},{"quantile":-631104.0,"value":-168064.0},{"quantile":-612480.0,"value":325376.0},{"quantile":422080.0,"value":-364992.0},{"quantile":-771840.0,"value":973056.0},{"quantile":496512.0,"value":802432.0},{"quantile":47360.0,"value":-879232.0},{"quantile":-380160.0,"value":516032.0},{"quantile":936960.0,"value":-184512.0},{"quantile":-210880.0,"value":-288704.0},{"quantile":-858368.0,"value":-765760.0},{"quantile":506624.0,"value":683904.0},{"quantile":-162944.0,"value":-309312.0},{"quantile":-506624.0,"value":-176768.0},{"quantile":-53824.0,"value":-805184.0},{"quantile":-165056.0,"value":-222080.0},{"quantile":-678976.0,"value":-369088.0},{"quantile":105968.7188,"value":453184.0},{"quantile":-72768.0,"value":996295.1907},{"quantile":-958720.0,"value":549568.0},{"quantile":598.1986,"value":4245.9004},{"quantile":-702784.0,"value":-267776.0},{"quantile":787584.0,"value":215005.4997},{"quantile":703808.0,"value":-898752.0},{"quantile":782528.0,"value":858368.0},{"quantile":643200.0,"value":-969920.0},{"quantile":-858368.0,"value":-107712.0},{"quantile":-438144.0,"value":-877056.0},{"quantile":-382720.0,"value":805824.0},{"quantile":-772224.0,"value":-15.1828},{"quantile":358186.8104,"value":-994624.0},{"quantile":-786432.0,"value":-23360.0},{"quantile":-255552.0,"value":836992.0},{"quantile":440960.0,"value":672000.0},{"quantile":353216.0,"value":-219264.0},{"quantile":-894528.0,"value":481664.0},{"quantile":513984.0,"value":-321575.3438},{"quantile":-418048.0,"value":-337024.0},{"quantile":-960320.0,"value":-516608.0},{"quantile":-744704.0,"value":987328.0},{"quantile":503936.0,"value":-748160.0},{"quantile":-915904.0,"value":-533332.7189},{"quantile":384064.0,"value":152896.0}],"count":1761796028479155969,"sum":427584.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0217.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0217.json new file mode 100644 index 0000000000000..08bd6401f40d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0217.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"e","tags":{"c":"a","j":"r","s":"t"},"kind":"absolute","gauge":{"value":-915136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0218.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0218.json new file mode 100644 index 0000000000000..019b3aafecbc8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0218.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"m","interval_ms":2137798832,"kind":"incremental","counter":{"value":-728896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0219.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0219.json new file mode 100644 index 0000000000000..be8c143d13bfd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0219.json @@ -0,0 +1 @@ +{"metric":{"name":"f","tags":{"q":"q"},"kind":"absolute","distribution":{"samples":[{"value":958208.0,"rate":567367017},{"value":614144.0,"rate":1372262455},{"value":38456.0,"rate":2033123842},{"value":-161984.0,"rate":2914448933},{"value":866688.0,"rate":3137803942},{"value":-900224.0,"rate":1368676003},{"value":841472.0,"rate":1346703415},{"value":188224.0,"rate":4212962884},{"value":-972160.0,"rate":3102791973},{"value":-43968.0,"rate":950952666},{"value":-280192.0,"rate":3982947331},{"value":-383936.0,"rate":2538528639},{"value":-557568.0,"rate":1},{"value":243840.0,"rate":2440095593},{"value":978304.0,"rate":3605369589},{"value":691712.0,"rate":336151298},{"value":898816.0,"rate":2818105827},{"value":-64896.0,"rate":489555619},{"value":412480.0,"rate":1567631358},{"value":65280.0,"rate":2240300471},{"value":242944.0,"rate":160071023},{"value":-186496.0,"rate":165142836},{"value":-98880.0,"rate":1601601807},{"value":-39680.0,"rate":1395042112},{"value":-825152.0,"rate":3201952013},{"value":-480512.0,"rate":0},{"value":-103808.0,"rate":510340027},{"value":-464768.0,"rate":1},{"value":-821120.0,"rate":2955455034},{"value":-715008.0,"rate":1346207714},{"value":160512.0,"rate":1198509667},{"value":-125568.0,"rate":603463980},{"value":631104.0,"rate":1107409601},{"value":-751774.625,"rate":1132119844},{"value":709568.0,"rate":4070589830},{"value":-220992.0,"rate":0},{"value":293972.25,"rate":3228353010},{"value":382144.0,"rate":4005839886},{"value":-51904.0,"rate":1977560811},{"value":-62144.0,"rate":1168281515},{"value":942528.0,"rate":1546824736},{"value":837120.0,"rate":3068183333},{"value":272512.0,"rate":2940041170},{"value":882624.0,"rate":2451392804},{"value":-884736.0,"rate":4050796781},{"value":-669440.0,"rate":2436083559},{"value":906048.0,"rate":1792053510},{"value":-99072.0,"rate":2329214284},{"value":663680.0,"rate":3199039229},{"value":288768.0,"rate":2067681394},{"value":492160.0,"rate":3781711401},{"value":295936.0,"rate":1782013447},{"value":740608.0,"rate":2104613700},{"value":164416.0,"rate":2975228499},{"value":-312512.0,"rate":3837323256},{"value":-687296.0,"rate":2795373881},{"value":-449472.0,"rate":4294967295},{"value":-814784.0,"rate":4018074789},{"value":-858368.0,"rate":4294967295},{"value":994944.0,"rate":2607820112},{"value":-547648.0,"rate":2210763179},{"value":-915584.0,"rate":3492579343},{"value":-272448.0,"rate":688885492},{"value":-684928.0,"rate":1},{"value":-463040.0,"rate":395851390},{"value":-44928.0,"rate":2683032007},{"value":-139968.0,"rate":65777019}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0220.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0220.json new file mode 100644 index 0000000000000..2322adcdc7142 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0220.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"o":"k"},"timestamp":"1970-01-01T04:18:16.000025841Z","interval_ms":3817831129,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-819514.976,"value":-436544.0},{"quantile":193216.0,"value":787968.0},{"quantile":462848.0,"value":-335040.0},{"quantile":-944192.0,"value":658816.0},{"quantile":-124224.0,"value":211968.0},{"quantile":-333184.0,"value":-858368.0},{"quantile":-501184.0,"value":-146240.0},{"quantile":808960.0,"value":608000.0},{"quantile":60416.0,"value":298560.0},{"quantile":-857152.0,"value":463232.0},{"quantile":962752.0,"value":183808.0},{"quantile":-399552.0,"value":-396544.0},{"quantile":-684416.0,"value":-452800.0},{"quantile":-760064.0,"value":247040.0},{"quantile":-579456.0,"value":-637568.0},{"quantile":-92.3547,"value":567232.0},{"quantile":-343040.0,"value":47040.0},{"quantile":2598.4786,"value":458688.0},{"quantile":115584.0,"value":148928.0},{"quantile":995904.0,"value":-555712.0},{"quantile":118720.0,"value":628160.0},{"quantile":-825408.0,"value":76544.0},{"quantile":956352.0,"value":-964480.0},{"quantile":-235776.0,"value":384320.0},{"quantile":938560.0,"value":-865408.0},{"quantile":-608576.0,"value":-475776.0},{"quantile":919232.0,"value":447680.0},{"quantile":276352.0,"value":410304.0},{"quantile":-621696.0,"value":448064.0},{"quantile":-992128.0,"value":-804224.0},{"quantile":-408384.0,"value":-31424.0},{"quantile":964160.0,"value":-623680.0},{"quantile":-856576.0,"value":-504064.0},{"quantile":113984.0,"value":883584.0},{"quantile":-643904.0,"value":496064.0},{"quantile":950144.0,"value":192448.0},{"quantile":-241664.0,"value":768064.0},{"quantile":-533632.0,"value":599040.0},{"quantile":-997248.0,"value":220992.0},{"quantile":-873216.0,"value":2.4131},{"quantile":-314176.0,"value":927232.0},{"quantile":-409664.0,"value":-670208.0},{"quantile":-865984.0,"value":37312.0},{"quantile":787968.0,"value":-222976.0},{"quantile":886144.0,"value":312832.0},{"quantile":828928.0,"value":-1920.0},{"quantile":858368.0,"value":464832.0},{"quantile":-172096.0,"value":591168.0},{"quantile":92160.0,"value":16883.5805},{"quantile":-271168.0,"value":921088.0},{"quantile":304064.0,"value":-580224.0},{"quantile":155136.0,"value":-817536.0},{"quantile":174016.0,"value":751424.0},{"quantile":167296.0,"value":891904.0},{"quantile":673920.0,"value":-488896.0},{"quantile":70272.0,"value":617088.0},{"quantile":-900160.0,"value":917184.0},{"quantile":-858368.0,"value":100672.0},{"quantile":-858368.0,"value":15680.0},{"quantile":311296.0,"value":-363456.0},{"quantile":687488.0,"value":-8256.0},{"quantile":-585216.0,"value":511040.0},{"quantile":669568.0,"value":447808.0}],"count":1,"sum":-668224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0221.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0221.json new file mode 100644 index 0000000000000..89e22b680c777 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0221.json @@ -0,0 +1 @@ +{"log":{"\u0000T":null,"\u0001":{"_":-1803837941882517744},"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0222.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0222.json new file mode 100644 index 0000000000000..b90560cbcde37 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0222.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1970-01-01T01:30:14.000008742Z","interval_ms":413766058,"kind":"absolute","distribution":{"samples":[{"value":-576384.0,"rate":1523730455},{"value":-350848.0,"rate":2577462538},{"value":684288.0,"rate":531086513},{"value":858368.0,"rate":4294967295},{"value":503168.0,"rate":982423180},{"value":858368.0,"rate":4294967295},{"value":918528.0,"rate":1631022823},{"value":-50816.0,"rate":603205848},{"value":-414848.0,"rate":3069716316},{"value":-492160.0,"rate":3788643839},{"value":550848.0,"rate":294071925},{"value":429056.0,"rate":2983966591},{"value":995136.0,"rate":668900476},{"value":-336832.0,"rate":3580231539},{"value":-335744.0,"rate":1899198913},{"value":89536.0,"rate":1620417968},{"value":181248.0,"rate":712076779},{"value":416896.0,"rate":3711735755},{"value":-309120.0,"rate":2047778083},{"value":10688.0,"rate":2202582655},{"value":612096.0,"rate":3586714523},{"value":-412420.3472,"rate":3290718912},{"value":-461824.0,"rate":300861483},{"value":-169024.0,"rate":0},{"value":681600.0,"rate":2830829483},{"value":708608.0,"rate":1003622267},{"value":561920.0,"rate":3147041832},{"value":-375872.0,"rate":1251928034},{"value":193728.0,"rate":1885381066},{"value":981504.0,"rate":1620979398},{"value":100736.0,"rate":1},{"value":-703616.0,"rate":1219455084},{"value":973568.0,"rate":3860531645},{"value":437376.0,"rate":3344010837},{"value":-101376.0,"rate":2779327852},{"value":106880.0,"rate":1834848847},{"value":162301.6197,"rate":1286333403},{"value":-892992.0,"rate":1160203707},{"value":6848.0,"rate":240888071},{"value":967424.0,"rate":2746301868},{"value":639296.0,"rate":357430153},{"value":-159808.0,"rate":438675294},{"value":-781696.0,"rate":3900166037},{"value":-209728.0,"rate":2724062369},{"value":485056.0,"rate":1190097539},{"value":-388672.0,"rate":980630154},{"value":231808.0,"rate":3617252594},{"value":-554880.0,"rate":1811995936},{"value":-855936.0,"rate":1348670703},{"value":-720384.0,"rate":1324333830},{"value":795520.0,"rate":108134163},{"value":265216.0,"rate":3758325376},{"value":230144.0,"rate":893129282},{"value":728896.0,"rate":0},{"value":912576.0,"rate":1957594903},{"value":-202944.0,"rate":3649641844},{"value":297984.0,"rate":393701186},{"value":993536.0,"rate":1650604973},{"value":-858368.0,"rate":4198594154},{"value":-199296.0,"rate":124187516},{"value":-358976.0,"rate":1033279441},{"value":322624.0,"rate":2196649219},{"value":-385088.0,"rate":1870336940}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0223.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0223.json new file mode 100644 index 0000000000000..019f48a9b0dd1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0223.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"a","kind":"absolute","distribution":{"samples":[{"value":-370752.0,"rate":1914001310},{"value":-372928.0,"rate":304021514},{"value":199232.0,"rate":337111682},{"value":572992.0,"rate":32433422},{"value":37568.0,"rate":3101289389},{"value":333888.0,"rate":3297970775},{"value":196480.0,"rate":2021775013},{"value":372480.0,"rate":2597376297},{"value":-824704.0,"rate":1535256897},{"value":-411008.0,"rate":545944874},{"value":-566400.0,"rate":3668311518},{"value":-276672.0,"rate":3240156179},{"value":933120.0,"rate":2333163327},{"value":90880.0,"rate":362313423},{"value":321664.0,"rate":1478084488},{"value":56832.0,"rate":1076077001},{"value":70528.0,"rate":2375434205},{"value":-149824.0,"rate":3603512379},{"value":913344.0,"rate":3198037078},{"value":743808.0,"rate":2162181666},{"value":363.3975,"rate":848135922},{"value":-461376.0,"rate":4242314709},{"value":-4416.0,"rate":3546463907},{"value":346048.0,"rate":2526460127},{"value":168512.0,"rate":1638560825},{"value":-577480.9268,"rate":1413653535},{"value":715392.0,"rate":4294967295},{"value":191488.0,"rate":4074219205},{"value":560192.0,"rate":4294967295},{"value":16960.0,"rate":216165841},{"value":416011.4161,"rate":2554778105},{"value":-370688.0,"rate":1020817210},{"value":-520576.0,"rate":1318069673},{"value":-287424.0,"rate":3913963194},{"value":-858368.0,"rate":4294967295},{"value":41408.0,"rate":3943891439},{"value":-708672.0,"rate":0},{"value":-780672.0,"rate":0},{"value":473536.0,"rate":1121715611},{"value":-391872.0,"rate":1894747165},{"value":-376064.0,"rate":2127623395},{"value":-449024.0,"rate":3430277445},{"value":551360.0,"rate":3881506456},{"value":824576.0,"rate":3972842678},{"value":-278784.0,"rate":2611518659},{"value":991552.0,"rate":135777459},{"value":795392.0,"rate":1381974842},{"value":-937856.0,"rate":64252350},{"value":885952.0,"rate":1340498579},{"value":104064.0,"rate":1129060265},{"value":648192.0,"rate":2540880271},{"value":765632.0,"rate":1801496306},{"value":-502464.0,"rate":1153599802},{"value":497792.0,"rate":3143567568},{"value":-201408.0,"rate":2673171138},{"value":-886656.0,"rate":3344118235},{"value":123776.0,"rate":3819537058},{"value":-886464.0,"rate":1706746580},{"value":-651136.0,"rate":3840833899},{"value":-713216.0,"rate":967561664},{"value":-591296.0,"rate":3910541734},{"value":-581504.0,"rate":653525609},{"value":-2077.99,"rate":2320090240},{"value":-244480.0,"rate":2333946733},{"value":-382528.0,"rate":0},{"value":-387520.0,"rate":536474303},{"value":-454464.0,"rate":1035999538},{"value":-616448.0,"rate":3541862948},{"value":374400.0,"rate":4294967295},{"value":-877.3825,"rate":4137836022},{"value":-484992.0,"rate":1340532587},{"value":-476544.0,"rate":2094491657},{"value":-270336.0,"rate":532268979},{"value":-484544.0,"rate":1441143141},{"value":23488.0,"rate":2649242553},{"value":858368.0,"rate":1494411277},{"value":-618176.0,"rate":1914469754},{"value":935040.0,"rate":2953014143},{"value":-153664.0,"rate":343249322},{"value":509248.0,"rate":2970539502},{"value":403968.0,"rate":135648772},{"value":286720.0,"rate":2576918253},{"value":-260544.0,"rate":2122600481},{"value":-296512.0,"rate":3903669083},{"value":-713216.0,"rate":3977250014},{"value":-395264.0,"rate":2344879823},{"value":-318080.0,"rate":3444190520},{"value":-376576.0,"rate":1507530938},{"value":319936.0,"rate":3631877001}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0224.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0224.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0224.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0225.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0225.json new file mode 100644 index 0000000000000..77d9a5164493f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0225.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1970-01-01T00:28:41.000001452Z","interval_ms":1979558504,"kind":"absolute","gauge":{"value":-522368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0226.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0226.json new file mode 100644 index 0000000000000..4aee3d41f0e19 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0226.json @@ -0,0 +1 @@ +{"log":{"œ":321216.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0227.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0227.json new file mode 100644 index 0000000000000..0b121b1c91775 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0227.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T08:08:06.000014429Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-900544.0,"value":901632.0},{"quantile":-3.4073,"value":-197888.0},{"quantile":-663936.0,"value":-615872.0},{"quantile":-658496.0,"value":-9458.1467},{"quantile":833088.0,"value":-253952.0},{"quantile":805056.0,"value":293824.0},{"quantile":202880.0,"value":306176.0},{"quantile":-954944.0,"value":-885440.0},{"quantile":-930688.0,"value":554624.0}],"count":9556427934425561102,"sum":575232.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0228.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0228.json new file mode 100644 index 0000000000000..26aeaee620846 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0228.json @@ -0,0 +1 @@ +{"log":{"\u001e%":{"":null},"#":-562944.0," $":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0229.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0229.json new file mode 100644 index 0000000000000..2a16badf98ace --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0229.json @@ -0,0 +1 @@ +{"log":{";_k":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0230.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0230.json new file mode 100644 index 0000000000000..1bd948c8aa69f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0230.json @@ -0,0 +1 @@ +{"metric":{"name":"h","tags":{"b":"n","r":"m","t":"f"},"timestamp":"1969-12-31T22:36:04.000011389Z","kind":"absolute","counter":{"value":368000.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0231.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0231.json new file mode 100644 index 0000000000000..2bc968a2661d9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0231.json @@ -0,0 +1 @@ +{"metric":{"name":"h","tags":{"b":"a","x":"n"},"timestamp":"1970-01-01T01:59:32.000004246Z","interval_ms":1127795170,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":496384.0,"value":-704704.0},{"quantile":-576640.0,"value":857792.0},{"quantile":-987072.0,"value":53056.0},{"quantile":365312.0,"value":-508288.0},{"quantile":-717312.0,"value":691264.0},{"quantile":-346880.0,"value":434368.0},{"quantile":908480.0,"value":-158656.0},{"quantile":843776.0,"value":75840.0},{"quantile":519232.0,"value":421632.0},{"quantile":-306432.0,"value":-434368.0},{"quantile":167040.0,"value":-854848.0},{"quantile":283.4488,"value":418560.0},{"quantile":-157248.0,"value":298432.0},{"quantile":-412288.0,"value":989696.0},{"quantile":-840832.0,"value":718400.0},{"quantile":-562432.0,"value":-373120.0},{"quantile":-572672.0,"value":555136.0},{"quantile":396288.0,"value":643072.0},{"quantile":858368.0,"value":499584.0},{"quantile":876864.0,"value":499840.0},{"quantile":200768.0,"value":302656.0},{"quantile":-655808.0,"value":461184.0},{"quantile":-959424.0,"value":590464.0},{"quantile":896512.0,"value":-634048.0},{"quantile":-976768.0,"value":-35200.0},{"quantile":43712.0,"value":708544.0},{"quantile":705600.0,"value":-876352.0},{"quantile":219712.0,"value":363584.0},{"quantile":-45568.0,"value":-43648.0},{"quantile":436224.0,"value":383104.0},{"quantile":-279744.0,"value":-786688.0},{"quantile":858368.0,"value":-567040.0},{"quantile":321984.0,"value":-752384.0},{"quantile":427840.0,"value":261888.0},{"quantile":-987456.0,"value":749504.0},{"quantile":151488.0,"value":-623985.9934},{"quantile":-505280.0,"value":-847808.0},{"quantile":197696.0,"value":630336.0},{"quantile":477760.0,"value":895872.0},{"quantile":951046.8625,"value":126016.0},{"quantile":-425728.0,"value":-513408.0},{"quantile":559872.0,"value":458624.0},{"quantile":-707392.0,"value":-326336.0},{"quantile":77504.0,"value":-384704.0}],"count":1,"sum":556800.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0232.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0232.json new file mode 100644 index 0000000000000..860b25230dd9a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0232.json @@ -0,0 +1 @@ +{"metric":{"name":"u","interval_ms":823535920,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":30464.0,"value":965504.0},{"quantile":-162624.0,"value":-472768.0},{"quantile":234495.8292,"value":844816.0},{"quantile":462528.0,"value":666176.0},{"quantile":905920.0,"value":234560.0},{"quantile":-815040.0,"value":180736.0},{"quantile":394816.0,"value":858368.0},{"quantile":819648.0,"value":-141376.0},{"quantile":-256256.0,"value":-620864.0},{"quantile":858368.0,"value":-628928.0},{"quantile":771136.0,"value":264832.0},{"quantile":-143488.0,"value":563328.0},{"quantile":-173760.0,"value":-153600.0},{"quantile":568256.0,"value":486406.9375},{"quantile":109440.0,"value":826688.0},{"quantile":621440.0,"value":231232.0},{"quantile":-569536.0,"value":130688.0},{"quantile":657024.0,"value":685952.0},{"quantile":889088.0,"value":-658624.0},{"quantile":813312.0,"value":-751040.0},{"quantile":423070.0326,"value":-158976.0},{"quantile":19328.0,"value":101.5888},{"quantile":-900224.0,"value":337152.0},{"quantile":758016.0,"value":670016.0},{"quantile":-339648.0,"value":-547840.0},{"quantile":-451264.0,"value":-20800.0},{"quantile":640640.0,"value":-251968.0},{"quantile":-277952.0,"value":-331968.0},{"quantile":-19968.0,"value":-479168.0},{"quantile":347328.0,"value":40064.0},{"quantile":135078.4805,"value":849472.0},{"quantile":986432.0,"value":-358336.0},{"quantile":858368.0,"value":-189120.0},{"quantile":658688.0,"value":858368.0},{"quantile":-383296.0,"value":850112.0},{"quantile":609088.0,"value":654976.0},{"quantile":-591552.0,"value":707904.0},{"quantile":-987520.0,"value":234176.0},{"quantile":-70144.0,"value":-811425.0},{"quantile":-447680.0,"value":-284800.0},{"quantile":116800.0,"value":950528.0},{"quantile":-265280.0,"value":946560.0},{"quantile":105920.0,"value":-906176.0},{"quantile":940352.0,"value":-785792.0},{"quantile":955136.0,"value":761664.0},{"quantile":-688256.0,"value":927744.0},{"quantile":-909760.0,"value":602112.0},{"quantile":942209.9678,"value":-462144.0},{"quantile":-761472.0,"value":-833024.0},{"quantile":758656.0,"value":-858368.0},{"quantile":784448.0,"value":-484160.0},{"quantile":-63744.0,"value":316416.0},{"quantile":785920.0,"value":373632.0},{"quantile":470592.0,"value":-430464.0},{"quantile":789632.0,"value":992256.0},{"quantile":-858368.0,"value":-714432.0},{"quantile":-625408.0,"value":-20252.4103},{"quantile":-710848.0,"value":33216.0},{"quantile":-219072.0,"value":-851072.0},{"quantile":758848.0,"value":858368.0},{"quantile":875648.0,"value":922560.0},{"quantile":336000.0,"value":-984192.0},{"quantile":858368.0,"value":-360576.0},{"quantile":947456.0,"value":-579584.0}],"count":10137150659273056688,"sum":880832.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0233.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0233.json new file mode 100644 index 0000000000000..0d8a6255a3f6a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0233.json @@ -0,0 +1 @@ +{"metric":{"name":"r","kind":"incremental","counter":{"value":577920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0234.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0234.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0234.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0235.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0235.json new file mode 100644 index 0000000000000..d0bcbb99fb1c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0235.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1970-01-01T04:56:54.000028561Z","interval_ms":4027407827,"kind":"absolute","gauge":{"value":-918976.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0236.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0236.json new file mode 100644 index 0000000000000..cbd49225b95e8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0236.json @@ -0,0 +1 @@ +{"log":{"":true,"\u0002":false,"\u0012–":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0237.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0237.json new file mode 100644 index 0000000000000..b5c86cb00f57d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0237.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1969-12-31T17:23:12.000003634Z","kind":"absolute","distribution":{"samples":[{"value":-461248.0,"rate":3070934230},{"value":-651840.0,"rate":3979751923},{"value":-908160.0,"rate":817573125},{"value":-206784.0,"rate":3411498068},{"value":-337856.0,"rate":2280201304},{"value":533568.0,"rate":2268884971},{"value":236992.0,"rate":3740561836},{"value":-3112.1255,"rate":1487745793},{"value":791488.0,"rate":1545046743},{"value":-25408.0,"rate":2597490120},{"value":613888.0,"rate":3800320106},{"value":-195392.0,"rate":617323932},{"value":-620480.0,"rate":4294967295},{"value":213568.0,"rate":314498787},{"value":-169216.0,"rate":3067211797},{"value":225600.0,"rate":1580698706},{"value":280448.0,"rate":1203174043},{"value":-650816.0,"rate":3667793213},{"value":884608.0,"rate":871387291},{"value":-213376.0,"rate":3269733382},{"value":-686528.0,"rate":4294967295},{"value":-648448.0,"rate":274825462},{"value":-398720.0,"rate":3180007943},{"value":858368.0,"rate":1742882545},{"value":539456.0,"rate":3637864931},{"value":-676096.0,"rate":1043884452},{"value":-802368.0,"rate":1284249583},{"value":-954355.2957,"rate":4191220034},{"value":644672.0,"rate":2237668943},{"value":501952.0,"rate":2018778882},{"value":-392448.0,"rate":1730501306},{"value":-129792.0,"rate":3981795653},{"value":250624.0,"rate":1},{"value":792256.0,"rate":3186256994},{"value":-231033.8716,"rate":745589606},{"value":731328.0,"rate":1487577509},{"value":394496.0,"rate":2327014706},{"value":-357824.0,"rate":3205147537},{"value":-45824.0,"rate":2087096334},{"value":34880.0,"rate":1413420534},{"value":-502656.0,"rate":423666368},{"value":-281024.0,"rate":910850788},{"value":-670464.0,"rate":4202851080},{"value":941248.0,"rate":1363765524},{"value":843200.0,"rate":3078326967},{"value":883264.0,"rate":661593760},{"value":667968.0,"rate":3513029466},{"value":-580032.0,"rate":3128208999},{"value":-390528.0,"rate":2713927801},{"value":-831232.0,"rate":1856719284},{"value":-609472.0,"rate":773956447},{"value":93184.0,"rate":2249469292},{"value":-495360.0,"rate":2895044313},{"value":701248.0,"rate":3776591583},{"value":858368.0,"rate":39850565},{"value":-522752.0,"rate":2311295846},{"value":-340800.0,"rate":571966237},{"value":-943488.0,"rate":4194355598},{"value":48256.0,"rate":265569379},{"value":162368.0,"rate":757580642},{"value":-293312.0,"rate":3536511160},{"value":976576.0,"rate":786301869},{"value":-284608.0,"rate":2874558307},{"value":776064.0,"rate":2517197796},{"value":-275648.0,"rate":3613536968},{"value":858368.0,"rate":1361995138},{"value":-200512.0,"rate":3349772936},{"value":924672.0,"rate":3766941503},{"value":762368.0,"rate":134988832},{"value":-856064.0,"rate":4294967295},{"value":-80000.0,"rate":1130737968},{"value":345984.0,"rate":1223255012},{"value":-766784.0,"rate":1472248558},{"value":-414656.0,"rate":1},{"value":-102720.0,"rate":2423290608},{"value":-614912.0,"rate":3997155463},{"value":-584576.0,"rate":379540151},{"value":304192.0,"rate":405185594},{"value":-823744.0,"rate":370075177},{"value":-815792.2224,"rate":4294967295},{"value":-426304.0,"rate":3541063985},{"value":941120.0,"rate":2338605332},{"value":112000.0,"rate":2185476285},{"value":556480.0,"rate":2486679283},{"value":-740032.0,"rate":3057795889},{"value":-491456.0,"rate":976453908},{"value":531968.0,"rate":1205621123},{"value":126912.0,"rate":1710077203}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0238.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0238.json new file mode 100644 index 0000000000000..1e97e7cf2c1cf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0238.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"v","timestamp":"1970-01-01T04:09:19.000003244Z","interval_ms":1669078717,"kind":"incremental","gauge":{"value":795136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0239.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0239.json new file mode 100644 index 0000000000000..6bc9b4312ad3a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0239.json @@ -0,0 +1 @@ +{"log":{"":null,"4d\u0014":{},"PŸ":-357440.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0240.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0240.json new file mode 100644 index 0000000000000..99a88b4fcc725 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0240.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"a":"z","u":"d"},"interval_ms":1869036249,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":864899.889,"value":-229760.0},{"quantile":-89472.0,"value":-150272.0},{"quantile":237120.0,"value":-533120.0},{"quantile":-390080.0,"value":-12224.0},{"quantile":-967168.0,"value":-358336.0},{"quantile":251200.0,"value":807232.0},{"quantile":-750464.0,"value":298816.0},{"quantile":-108864.0,"value":-29888.0},{"quantile":996544.0,"value":-873024.0},{"quantile":-853696.0,"value":220352.0},{"quantile":-31168.0,"value":61760.0},{"quantile":179392.0,"value":-849920.0},{"quantile":-905728.0,"value":-487680.0}],"count":8284276442611294957,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0241.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0241.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0241.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0242.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0242.json new file mode 100644 index 0000000000000..93357d36d8171 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0242.json @@ -0,0 +1 @@ +{"log":{"šW":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0243.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0243.json new file mode 100644 index 0000000000000..7c3fab3c319f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0243.json @@ -0,0 +1 @@ +{"metric":{"name":"u","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-256896.0,"value":-26432.0},{"quantile":434944.0,"value":355008.0},{"quantile":-145856.0,"value":-121152.0},{"quantile":78336.0,"value":580416.0},{"quantile":586496.0,"value":-952064.0},{"quantile":-592896.0,"value":104896.0},{"quantile":-632960.0,"value":771051.5613},{"quantile":242624.0,"value":-175488.0},{"quantile":462336.0,"value":858368.0},{"quantile":802816.0,"value":-554304.0},{"quantile":-839168.0,"value":858368.0},{"quantile":-171520.0,"value":-650688.0},{"quantile":-745574.7503,"value":-824256.0},{"quantile":403648.0,"value":574784.0},{"quantile":176896.0,"value":-71616.0},{"quantile":-829312.0,"value":-834304.0},{"quantile":660672.0,"value":94016.0},{"quantile":-875968.0,"value":-74432.0},{"quantile":647744.0,"value":-527680.0},{"quantile":-992384.0,"value":-980160.0},{"quantile":513280.0,"value":326720.0},{"quantile":50944.0,"value":685632.0},{"quantile":647168.0,"value":843904.0},{"quantile":-315776.0,"value":685312.0},{"quantile":721152.0,"value":378112.0},{"quantile":-938560.0,"value":-858368.0},{"quantile":-120192.0,"value":54016.0},{"quantile":163584.0,"value":-867072.0},{"quantile":639040.0,"value":-200000.0},{"quantile":-716800.0,"value":-951040.0},{"quantile":-971264.0,"value":-433344.0},{"quantile":976512.0,"value":414976.0},{"quantile":-57.5065,"value":-20136.8218},{"quantile":-971969.0501,"value":-840448.0},{"quantile":-533696.0,"value":144128.0},{"quantile":-87104.0,"value":121792.0},{"quantile":441216.0,"value":260928.0},{"quantile":594880.0,"value":60756.5541},{"quantile":-340800.0,"value":5888.0},{"quantile":40384.0,"value":482240.0},{"quantile":-992768.0,"value":-42752.0},{"quantile":959744.0,"value":-72512.0},{"quantile":858368.0,"value":148992.0},{"quantile":352000.0,"value":-945344.0},{"quantile":-719040.0,"value":734912.0},{"quantile":759232.0,"value":-691468.0},{"quantile":298432.0,"value":-955404.0149},{"quantile":629824.0,"value":796992.0},{"quantile":855936.0,"value":-82496.0},{"quantile":278528.0,"value":-36288.0},{"quantile":774336.0,"value":-812672.0},{"quantile":313448.0682,"value":-416576.0},{"quantile":-468992.0,"value":94016.0},{"quantile":-724544.0,"value":5888.0},{"quantile":334528.0,"value":858368.0},{"quantile":472576.0,"value":-304192.0},{"quantile":-855424.0,"value":-195008.0},{"quantile":152937.854,"value":604705.3409},{"quantile":608256.0,"value":-590400.0},{"quantile":-192704.0,"value":518144.0},{"quantile":767424.0,"value":281344.0},{"quantile":858368.0,"value":281024.0},{"quantile":423104.0,"value":587920.0},{"quantile":-858368.0,"value":237184.0},{"quantile":570332.0,"value":440640.0},{"quantile":-980224.0,"value":-217216.0},{"quantile":-552320.0,"value":-226624.0},{"quantile":858368.0,"value":775360.0},{"quantile":-62556.3434,"value":-204288.0},{"quantile":806976.0,"value":232192.0},{"quantile":-610944.0,"value":704320.0},{"quantile":91840.0,"value":-84992.0},{"quantile":871040.0,"value":584128.0},{"quantile":746176.0,"value":767168.0},{"quantile":524608.0,"value":529024.0},{"quantile":399296.0,"value":164416.0},{"quantile":-239936.0,"value":-644864.0},{"quantile":-559931.625,"value":447616.0},{"quantile":568320.0,"value":410944.0},{"quantile":115584.0,"value":281152.0},{"quantile":783040.0,"value":-443776.0},{"quantile":311552.0,"value":21568.0},{"quantile":-877376.0,"value":-628001.9924},{"quantile":-982528.0,"value":-2.0668},{"quantile":-348672.0,"value":-352512.0},{"quantile":-863488.0,"value":-568512.0},{"quantile":-242496.0,"value":-730096.2422},{"quantile":-20480.0,"value":-816448.0},{"quantile":364689.9978,"value":728256.0},{"quantile":433024.0,"value":-400704.0},{"quantile":-576704.0,"value":858368.0},{"quantile":853248.0,"value":-914560.0},{"quantile":515392.0,"value":870976.0},{"quantile":892608.0,"value":-858368.0},{"quantile":410304.0,"value":742144.0}],"count":2096771885441450253,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0244.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0244.json new file mode 100644 index 0000000000000..11b02cf89ec21 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0244.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1969-12-31T20:55:40.000023291Z","kind":"absolute","counter":{"value":-275968.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0245.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0245.json new file mode 100644 index 0000000000000..ea5f53f38518b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0245.json @@ -0,0 +1 @@ +{"metric":{"name":"a","interval_ms":699406628,"kind":"incremental","distribution":{"samples":[{"value":-114944.0,"rate":3084881344},{"value":-872768.0,"rate":3167888544},{"value":-132032.0,"rate":4202905621},{"value":633920.0,"rate":412168121},{"value":-921344.0,"rate":1},{"value":392832.0,"rate":2508466081},{"value":978560.0,"rate":2295295856},{"value":-858368.0,"rate":448011342},{"value":154496.0,"rate":4294967295},{"value":846272.0,"rate":1},{"value":864960.0,"rate":2502251699},{"value":946240.0,"rate":1},{"value":-472320.0,"rate":1461301820},{"value":579968.0,"rate":2463796963},{"value":-250112.0,"rate":1936936387},{"value":-794624.0,"rate":1312271526},{"value":-887616.0,"rate":3479698097},{"value":-858368.0,"rate":2074675058},{"value":610880.0,"rate":1},{"value":-471552.0,"rate":1611348219},{"value":151488.0,"rate":0},{"value":-15616.0,"rate":2245865124},{"value":784000.0,"rate":1327689676},{"value":-176128.0,"rate":2657670300},{"value":-198400.0,"rate":0},{"value":-708288.0,"rate":1755118837},{"value":579520.0,"rate":534916769},{"value":-27111.9676,"rate":3532626517},{"value":106048.0,"rate":2998805151},{"value":358272.0,"rate":413324975},{"value":-524288.0,"rate":3083763518},{"value":778816.0,"rate":658405360},{"value":-728576.0,"rate":3426284722},{"value":-417088.0,"rate":694710406},{"value":-184256.0,"rate":2205496077},{"value":-326976.0,"rate":2911185025},{"value":-99080.1411,"rate":1519417370},{"value":-607232.0,"rate":2215514444},{"value":-576768.0,"rate":3467957561},{"value":954688.0,"rate":3181007898},{"value":-226624.0,"rate":1102714671},{"value":19904.0,"rate":2567648517},{"value":637824.0,"rate":1249231712},{"value":696768.0,"rate":2585967051},{"value":-172608.0,"rate":1794487503},{"value":207744.0,"rate":3769124297},{"value":-373056.0,"rate":3241713823},{"value":805376.0,"rate":398584248},{"value":761728.0,"rate":4294967295}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0246.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0246.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0246.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0247.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0247.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0247.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0248.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0248.json new file mode 100644 index 0000000000000..42f681681a584 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0248.json @@ -0,0 +1 @@ +{"metric":{"name":"l","interval_ms":4152832544,"kind":"incremental","distribution":{"samples":[{"value":840384.0,"rate":3579073482},{"value":137856.0,"rate":2400435717},{"value":53056.0,"rate":2157992728},{"value":-466496.0,"rate":84353485},{"value":-58048.0,"rate":1134613090},{"value":-319371.346,"rate":2867238306},{"value":956096.0,"rate":3031616214},{"value":-642880.0,"rate":3825295484},{"value":-705792.0,"rate":275609094},{"value":42816.0,"rate":2380394371},{"value":-513024.0,"rate":1},{"value":400448.0,"rate":209743448},{"value":-384576.0,"rate":1},{"value":-547200.0,"rate":2584916378},{"value":-273344.0,"rate":3207498554},{"value":924544.0,"rate":4269782274},{"value":172096.0,"rate":949841550},{"value":-161728.0,"rate":372536796},{"value":926208.0,"rate":2903414330},{"value":-158333.4413,"rate":3687159793},{"value":-823680.0,"rate":1215610424},{"value":-465664.0,"rate":4209373376},{"value":-862912.0,"rate":2223600953},{"value":934912.0,"rate":1229647241},{"value":-216832.0,"rate":4117341377},{"value":-988544.0,"rate":1828099309},{"value":-721856.0,"rate":3382057029},{"value":69440.0,"rate":2594170811},{"value":79552.0,"rate":1505695120},{"value":-660800.0,"rate":2033560870},{"value":-162944.0,"rate":2126565455},{"value":745600.0,"rate":3540822176},{"value":-945664.0,"rate":130880932},{"value":-990528.0,"rate":17748954},{"value":-980352.0,"rate":2793652461},{"value":-626112.0,"rate":2043826643},{"value":-507904.0,"rate":3750823626},{"value":80960.0,"rate":2160957778},{"value":80512.0,"rate":4081564066},{"value":-781568.0,"rate":644840419},{"value":645056.0,"rate":2773746075},{"value":-88640.0,"rate":465630713},{"value":776384.0,"rate":963887800},{"value":492352.0,"rate":750246421},{"value":222848.0,"rate":2522609668},{"value":-147456.0,"rate":4294967295},{"value":-54016.0,"rate":860490457},{"value":-605376.0,"rate":2300790891},{"value":-820804.7314,"rate":3110507451},{"value":387008.0,"rate":1506015906},{"value":-494272.0,"rate":1154301102},{"value":489152.0,"rate":1628210285},{"value":114816.0,"rate":464945723},{"value":-918272.0,"rate":3449868282},{"value":994752.0,"rate":3033870195}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0249.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0249.json new file mode 100644 index 0000000000000..42ad6f645a24d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0249.json @@ -0,0 +1 @@ +{"log":{"9¤":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0250.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0250.json new file mode 100644 index 0000000000000..1f9087afdc5f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0250.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"k","interval_ms":1741674786,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-654400.0,"count":15606087298241686700},{"upper_limit":557248.0,"count":0},{"upper_limit":490432.0,"count":1376543639539295387},{"upper_limit":496512.0,"count":15857617041751819990},{"upper_limit":-621184.0,"count":13908125219483366428},{"upper_limit":-103616.0,"count":1494798793270253150},{"upper_limit":891136.0,"count":8622215792860528925},{"upper_limit":158016.0,"count":10877328689276353855},{"upper_limit":-298240.0,"count":15603988153238585611},{"upper_limit":-553088.0,"count":11528953998097240152},{"upper_limit":-894976.0,"count":1},{"upper_limit":854656.0,"count":1340360922593067809},{"upper_limit":3648.0,"count":3747953611533519129},{"upper_limit":778432.0,"count":9318120117810762223},{"upper_limit":272128.0,"count":14667724990480085842},{"upper_limit":-788032.0,"count":13960718670989985655},{"upper_limit":-465984.0,"count":13982618427432757401},{"upper_limit":-523712.0,"count":12424908660162198125},{"upper_limit":407616.0,"count":8552604345306069292},{"upper_limit":810816.0,"count":9098229375927600190},{"upper_limit":137600.0,"count":3373321092006846191},{"upper_limit":963008.0,"count":1616841904885465346},{"upper_limit":296320.0,"count":8349583831872521158},{"upper_limit":-679808.0,"count":2132150429107987742},{"upper_limit":-806656.0,"count":16795878921185870647},{"upper_limit":656320.0,"count":354520802981539090},{"upper_limit":260864.0,"count":213285986948978461},{"upper_limit":-858368.0,"count":5946380825362119116},{"upper_limit":-522048.0,"count":5304097545715299443},{"upper_limit":-497965.168,"count":1844056904574149815},{"upper_limit":839424.0,"count":15392857920925862789},{"upper_limit":901120.0,"count":1102961793945267425},{"upper_limit":858368.0,"count":4305172483350602600},{"upper_limit":532800.0,"count":17331065657958802049},{"upper_limit":-773312.0,"count":18446744073709551615},{"upper_limit":-182320.9999,"count":15322003253846611717},{"upper_limit":-149888.0,"count":12938816556191600095},{"upper_limit":-659328.0,"count":10725551987009068526},{"upper_limit":452736.0,"count":14632811836266435749},{"upper_limit":508544.0,"count":10388027405180618019},{"upper_limit":274560.0,"count":18364530303679846821},{"upper_limit":267137.7063,"count":3095879535856607525},{"upper_limit":-838016.0,"count":11743001979128011934},{"upper_limit":626624.0,"count":11447658803215795402},{"upper_limit":858368.0,"count":13199084704713946854},{"upper_limit":-765184.0,"count":13755746017830974794},{"upper_limit":353472.0,"count":9646631854335055590},{"upper_limit":-971456.0,"count":4052368409842783257},{"upper_limit":334528.0,"count":12497944288377433292},{"upper_limit":-15104.0,"count":7974066462664098927},{"upper_limit":986944.0,"count":4136680872594663287},{"upper_limit":-804416.0,"count":14659053434467129829},{"upper_limit":-89856.0,"count":18446744073709551615},{"upper_limit":40576.0,"count":6387387965139619440},{"upper_limit":126528.0,"count":8946604774589535424},{"upper_limit":-472256.0,"count":6093629006362557171},{"upper_limit":688768.0,"count":10134198061828778198},{"upper_limit":-463040.0,"count":16062093826680716984},{"upper_limit":-935360.0,"count":7348582676526285009},{"upper_limit":-858368.0,"count":13107379248327934333},{"upper_limit":552960.0,"count":5071704015984299175},{"upper_limit":-858368.0,"count":10511456351224693150},{"upper_limit":72384.0,"count":1822782338915331545},{"upper_limit":936896.0,"count":577157363157429740},{"upper_limit":167104.0,"count":6651245600018702971},{"upper_limit":-653184.0,"count":15901982231422143148},{"upper_limit":-672832.0,"count":9933942098109159294},{"upper_limit":424640.0,"count":11503232097578684178},{"upper_limit":-402304.0,"count":13675752021082882648},{"upper_limit":-832640.0,"count":11535598115840047612},{"upper_limit":223232.0,"count":9059726459782362420},{"upper_limit":-272512.0,"count":1},{"upper_limit":-893184.0,"count":6895335573457581812},{"upper_limit":-45120.0,"count":1079210044793411227},{"upper_limit":380672.0,"count":17225467886363851561},{"upper_limit":439424.0,"count":12066580237495034661}],"count":18446744073709551615,"sum":624832.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0251.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0251.json new file mode 100644 index 0000000000000..44d41616cf69e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0251.json @@ -0,0 +1 @@ +{"log":{"#«Ž":-995712.0,"⁛":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0252.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0252.json new file mode 100644 index 0000000000000..7683f5407f2f1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0252.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"k","tags":{"e":"a","z":"j"},"timestamp":"1970-01-01T03:48:49.000029186Z","interval_ms":1706461917,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-112000.0,"count":4773502987943363094},{"upper_limit":-184960.0,"count":14485588061127254839},{"upper_limit":189248.0,"count":7065319432656319693},{"upper_limit":434496.0,"count":1260952999275118590},{"upper_limit":-303232.0,"count":6643652171039373455},{"upper_limit":-743488.0,"count":14250465088094498731},{"upper_limit":-637952.0,"count":2852867568526591832},{"upper_limit":-961472.0,"count":14337870681811541724},{"upper_limit":119808.0,"count":11249776762673802459},{"upper_limit":-797440.0,"count":12162394503815491233},{"upper_limit":239616.0,"count":17506884052616492890},{"upper_limit":-78720.0,"count":3041403501070060942}],"count":8216186940635319016,"sum":171072.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0253.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0253.json new file mode 100644 index 0000000000000..c84d6a761cf65 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0253.json @@ -0,0 +1 @@ +{"log":{"民":{"\t*":{},"–󰀀¡":-136704.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0254.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0254.json new file mode 100644 index 0000000000000..508c051caf958 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0254.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"o","timestamp":"1969-12-31T23:57:49.000025813Z","kind":"absolute","distribution":{"samples":[{"value":-439936.0,"rate":3148317299},{"value":198848.0,"rate":245811143},{"value":-380416.0,"rate":3102731314},{"value":-726912.0,"rate":2955455165},{"value":404672.0,"rate":2015542373},{"value":945856.0,"rate":4229116852},{"value":260480.0,"rate":1762005445},{"value":-886208.0,"rate":1726352125},{"value":926784.0,"rate":2321135586},{"value":863232.0,"rate":341729827},{"value":252352.0,"rate":3984782298},{"value":64512.0,"rate":3203864589},{"value":836800.0,"rate":3233726589},{"value":-304768.0,"rate":1490999528},{"value":348352.0,"rate":555307701},{"value":-512512.0,"rate":2364925555},{"value":-477440.0,"rate":607093283},{"value":230656.0,"rate":2071275053},{"value":763328.0,"rate":2762973664},{"value":-702784.0,"rate":2476706527},{"value":-717376.0,"rate":1582051653},{"value":105856.0,"rate":666861468},{"value":-151232.0,"rate":2003153686},{"value":-22144.0,"rate":3435914911},{"value":959744.0,"rate":2300067},{"value":-26342.78,"rate":1372094579},{"value":619008.0,"rate":2402951718},{"value":97280.0,"rate":3906077511},{"value":-926784.0,"rate":2004006586},{"value":464192.0,"rate":3033049987},{"value":5888.0,"rate":4294967295},{"value":4223.8094,"rate":3540289641},{"value":-923136.0,"rate":433916967},{"value":922560.0,"rate":308938086},{"value":577984.0,"rate":2052467910},{"value":492480.0,"rate":293917183},{"value":-322880.0,"rate":2439271268},{"value":655680.0,"rate":1933695962},{"value":11456.0,"rate":2499769912},{"value":455872.0,"rate":939366991},{"value":-507968.0,"rate":1542964186},{"value":-278243.125,"rate":3139279087},{"value":178688.0,"rate":1392012542},{"value":377792.0,"rate":3177765708},{"value":285824.0,"rate":2177871965},{"value":532032.0,"rate":3091360118},{"value":538752.0,"rate":2523122688},{"value":-624192.0,"rate":2740172734},{"value":-967040.0,"rate":1},{"value":389056.0,"rate":2426455261},{"value":218368.0,"rate":563800533},{"value":-94016.0,"rate":1929535862},{"value":-24960.0,"rate":690798283},{"value":192704.0,"rate":2185668613},{"value":634944.0,"rate":3205245077},{"value":-436032.0,"rate":1726459584},{"value":219392.0,"rate":4043514009},{"value":-714048.0,"rate":2457662537},{"value":-929152.0,"rate":2956977983},{"value":-254464.0,"rate":632172506},{"value":-371392.0,"rate":2167159428},{"value":793856.0,"rate":1228256891},{"value":-588224.0,"rate":810224120},{"value":190848.0,"rate":1},{"value":956480.0,"rate":2595484300},{"value":-137856.0,"rate":3410582844},{"value":591872.0,"rate":2407094687},{"value":94272.0,"rate":3783167906},{"value":-933568.0,"rate":3741862042},{"value":716736.0,"rate":2316398704},{"value":49920.0,"rate":155358978},{"value":-475008.0,"rate":902324189},{"value":-233344.0,"rate":1914700852},{"value":836352.0,"rate":1063766158},{"value":-547648.0,"rate":4294967295},{"value":713920.0,"rate":2271204641},{"value":-950144.0,"rate":4096766340}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0255.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0255.json new file mode 100644 index 0000000000000..e1cfc240acaf0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0255.json @@ -0,0 +1 @@ +{"log":{"!\"":-161536.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0256.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0256.json new file mode 100644 index 0000000000000..926efab620d9e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0256.json @@ -0,0 +1 @@ +{"log":{"":{"":""},"7t":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0257.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0257.json new file mode 100644 index 0000000000000..e2ec6280f5dd2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0257.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"g","timestamp":"1969-12-31T15:11:28.000028453Z","interval_ms":2582198867,"kind":"absolute","distribution":{"samples":[{"value":345920.0,"rate":4294967295},{"value":-201920.0,"rate":3592724793},{"value":858368.0,"rate":1247780645},{"value":-97664.0,"rate":4294967295},{"value":-126912.0,"rate":4294967295},{"value":85824.0,"rate":1115308437},{"value":510720.0,"rate":3935862362},{"value":87040.0,"rate":3400954898},{"value":-803430.0,"rate":3899991128},{"value":967424.0,"rate":3262789940},{"value":5389.694,"rate":1714803926},{"value":-404544.0,"rate":355005519},{"value":631424.0,"rate":1095985162},{"value":747827.5508,"rate":773076481},{"value":-305600.0,"rate":4056793183},{"value":910784.0,"rate":975207046},{"value":-571584.0,"rate":2291270298},{"value":-791424.0,"rate":2270707078},{"value":-297856.0,"rate":2740299155},{"value":504576.0,"rate":447819705},{"value":-797888.0,"rate":359176826},{"value":264448.0,"rate":3536674868},{"value":282112.0,"rate":1090806398},{"value":-308992.0,"rate":4113763338},{"value":779008.0,"rate":86598486},{"value":377600.0,"rate":3368814774},{"value":-856832.0,"rate":3458997210},{"value":41472.0,"rate":3240343753},{"value":-727808.0,"rate":1961635311},{"value":858368.0,"rate":450209844},{"value":-262080.0,"rate":2800634872},{"value":515776.0,"rate":2505569182},{"value":-926144.0,"rate":1633139329},{"value":-136576.0,"rate":1828804953},{"value":858368.0,"rate":3133045457},{"value":-148224.0,"rate":4083292212},{"value":-993856.0,"rate":3888148465},{"value":-858368.0,"rate":2228052590},{"value":912128.0,"rate":2907778213},{"value":-733376.0,"rate":4248568570},{"value":-974016.0,"rate":288441951},{"value":-323968.0,"rate":3101602653},{"value":-285696.0,"rate":3678864484},{"value":-42816.0,"rate":3176295577},{"value":-881216.0,"rate":2513879074},{"value":-187264.0,"rate":2739955129},{"value":19008.0,"rate":1120772859},{"value":-939200.0,"rate":3021311876},{"value":-63104.0,"rate":4294967295},{"value":393792.0,"rate":1775174244},{"value":88768.0,"rate":2848734445},{"value":-716928.0,"rate":1584833599},{"value":-993856.0,"rate":461594884},{"value":-948096.0,"rate":435661304},{"value":-95360.0,"rate":2236224275},{"value":-421376.0,"rate":24539442},{"value":-236480.0,"rate":3874114262},{"value":350208.0,"rate":4112001071},{"value":-307904.0,"rate":3763542550},{"value":479040.0,"rate":2214111550},{"value":863808.0,"rate":1},{"value":417461.5,"rate":2740968992},{"value":662400.0,"rate":1940282999},{"value":-263616.0,"rate":3283644970},{"value":83008.0,"rate":1962704482},{"value":851904.0,"rate":2253085629},{"value":-188800.0,"rate":0},{"value":-303168.0,"rate":2012732813},{"value":-355200.0,"rate":695742121},{"value":-139840.0,"rate":1327667129},{"value":467648.0,"rate":3221893273},{"value":570880.0,"rate":889919527},{"value":740288.0,"rate":1211079054},{"value":-89792.0,"rate":1409846412},{"value":-736256.0,"rate":4191577197},{"value":858368.0,"rate":534825025},{"value":83136.0,"rate":1904179264}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0258.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0258.json new file mode 100644 index 0000000000000..73c89325c7e53 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0258.json @@ -0,0 +1 @@ +{"log":{"":[["",null],"",[]],"c\u0015":-3158389984592366480,"d3":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0259.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0259.json new file mode 100644 index 0000000000000..ffdabe7ab76f3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0259.json @@ -0,0 +1 @@ +{"log":{"":null,"\u001f_4":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0260.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0260.json new file mode 100644 index 0000000000000..b5c18c51ef55b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0260.json @@ -0,0 +1 @@ +{"log":{"":1687271434479106502,"^*|":"$l"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0261.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0261.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0261.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0262.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0262.json new file mode 100644 index 0000000000000..364815b142667 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0262.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"a":"r","s":"y"},"interval_ms":3724066343,"kind":"absolute","counter":{"value":347072.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0263.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0263.json new file mode 100644 index 0000000000000..34ca9958b9031 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0263.json @@ -0,0 +1 @@ +{"log":{",xW":null,"{􏿾":[{".":{},"<":[-564288.0,{},431175631396719514]},false,{"\u001c=›":false,"0@":true,"v":["",true]}],"‥":"W,"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0264.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0264.json new file mode 100644 index 0000000000000..3ff6e65f5a7a2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0264.json @@ -0,0 +1 @@ +{"log":{"/„":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0265.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0265.json new file mode 100644 index 0000000000000..3b4a0724dcab6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0265.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"l","timestamp":"1969-12-31T20:02:38.000026376Z","interval_ms":3538347900,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-795712.0,"count":4403767525041898863},{"upper_limit":-353728.0,"count":0},{"upper_limit":853312.0,"count":17964882121700056780},{"upper_limit":370176.0,"count":12947869615952871567},{"upper_limit":661440.0,"count":0},{"upper_limit":421568.0,"count":15633638050866721181},{"upper_limit":699072.0,"count":14331348205749280241},{"upper_limit":430720.0,"count":11902412435991233336},{"upper_limit":-516416.0,"count":1159826588839724213},{"upper_limit":-372912.0,"count":1821106034842677689},{"upper_limit":891392.0,"count":17988429848215112667},{"upper_limit":-576896.0,"count":8069119421230753558},{"upper_limit":62400.0,"count":15680864224092382096},{"upper_limit":-599168.0,"count":0},{"upper_limit":-988480.0,"count":6661184532508638785},{"upper_limit":-697984.0,"count":4270380644575136928},{"upper_limit":-416960.0,"count":18446744073709551615},{"upper_limit":438016.0,"count":3592627490377012162},{"upper_limit":-346432.0,"count":9549196165140066114},{"upper_limit":545984.0,"count":993979660741877192},{"upper_limit":919424.0,"count":10637319723871808157},{"upper_limit":152512.0,"count":11083682543285499746},{"upper_limit":-910848.0,"count":4409840584557010518},{"upper_limit":618368.0,"count":2789856919518478009},{"upper_limit":532224.0,"count":13251859338135754370},{"upper_limit":813184.0,"count":14422962666698661102},{"upper_limit":-876416.0,"count":10289651105287853433},{"upper_limit":202752.0,"count":7337684197074979184},{"upper_limit":401664.0,"count":15806841358323402587},{"upper_limit":181696.0,"count":15865808006947611972},{"upper_limit":379840.0,"count":9212213882038164843},{"upper_limit":659904.0,"count":5065444784233755035},{"upper_limit":6930.4113,"count":18153288420888858861},{"upper_limit":343488.0,"count":11548577808733304949},{"upper_limit":484736.0,"count":16206977625290509598},{"upper_limit":222720.0,"count":15837757927679309176},{"upper_limit":-14656.0,"count":14446659824113624613},{"upper_limit":950720.0,"count":8887935905578843441},{"upper_limit":211328.0,"count":1},{"upper_limit":972928.0,"count":3268649755399589667},{"upper_limit":-829760.0,"count":5257335344303916704},{"upper_limit":-859776.0,"count":1679459925028415776},{"upper_limit":-144896.0,"count":153399389268486803},{"upper_limit":183360.0,"count":16658430166099699695},{"upper_limit":-730560.0,"count":16613349658362798312},{"upper_limit":-520320.0,"count":16641901297299418048},{"upper_limit":73856.0,"count":12119208823549541633},{"upper_limit":-627584.0,"count":3971302909456549553},{"upper_limit":858368.0,"count":2311977513470644814},{"upper_limit":-516544.0,"count":755202652694618807},{"upper_limit":532864.0,"count":1},{"upper_limit":272320.0,"count":6770433726251381386},{"upper_limit":640128.0,"count":10851443884403318304},{"upper_limit":-953856.0,"count":6339795164367296526},{"upper_limit":672896.0,"count":18101718035442632189},{"upper_limit":-310912.0,"count":1},{"upper_limit":338560.0,"count":486554018073491951},{"upper_limit":-304768.0,"count":11007742117484817190},{"upper_limit":57088.0,"count":11565982861433156522},{"upper_limit":-1516.2569,"count":14989289850732118526},{"upper_limit":-314368.0,"count":16177941826781037923},{"upper_limit":967808.0,"count":14969669954946268677},{"upper_limit":-97472.0,"count":6933471581746439498},{"upper_limit":49280.0,"count":4851789061300602279},{"upper_limit":-736896.0,"count":8313957522971682532},{"upper_limit":76.5517,"count":17117151113197532512},{"upper_limit":-725888.0,"count":3360782809463776765},{"upper_limit":711424.0,"count":5249464803276355663},{"upper_limit":-921024.0,"count":423082968582350703},{"upper_limit":-103168.0,"count":8691249136611836028},{"upper_limit":678912.0,"count":1},{"upper_limit":154496.0,"count":4746392667604188430},{"upper_limit":-982976.0,"count":790688042607045739},{"upper_limit":479936.0,"count":18446744073709551615},{"upper_limit":-938432.0,"count":459216721974776352},{"upper_limit":212288.0,"count":16168626407015058814},{"upper_limit":257920.0,"count":3619289400670201905},{"upper_limit":548480.0,"count":10516057781458432302},{"upper_limit":714560.0,"count":10590840565210810051},{"upper_limit":595648.0,"count":4748298237208868897},{"upper_limit":335040.0,"count":0},{"upper_limit":-378.5028,"count":14047973539754155088},{"upper_limit":-251776.0,"count":18446744073709551615},{"upper_limit":-400320.0,"count":12429476570445520637},{"upper_limit":896192.0,"count":230854212937571409},{"upper_limit":350336.0,"count":10176574366825231440},{"upper_limit":-264576.0,"count":9661887915445737205},{"upper_limit":-932672.0,"count":934235646673056666},{"upper_limit":-870144.0,"count":18285258059902903673},{"upper_limit":-67712.0,"count":11071229643391875743},{"upper_limit":-738176.0,"count":519713662096044633},{"upper_limit":693568.0,"count":8920771844236414950},{"upper_limit":723520.0,"count":1518879574475717485},{"upper_limit":411840.0,"count":3035367377319242611},{"upper_limit":786944.0,"count":13776738406737106730},{"upper_limit":-512704.0,"count":5721655315850075357},{"upper_limit":-816192.0,"count":11064155261776119894},{"upper_limit":160256.0,"count":16874151173909295616},{"upper_limit":336640.0,"count":13073298702928542378},{"upper_limit":266112.0,"count":17045556735009344054},{"upper_limit":948480.0,"count":6509207697304963004},{"upper_limit":-357952.0,"count":12750233908083418445},{"upper_limit":-844352.0,"count":3606584022087233884},{"upper_limit":715520.0,"count":16133854861486156280},{"upper_limit":267328.0,"count":11699667335080258531},{"upper_limit":-492608.0,"count":15463347990985562486},{"upper_limit":-860992.0,"count":18342183598055700589},{"upper_limit":130880.0,"count":7182527434227037199},{"upper_limit":901248.0,"count":11715783474335676943},{"upper_limit":-94656.0,"count":8560239869998910871}],"count":0,"sum":822400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0266.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0266.json new file mode 100644 index 0000000000000..88880f5801961 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0266.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"p","tags":{"b":"t","x":"x"},"interval_ms":3102335914,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":577344.0,"value":843520.0},{"quantile":205632.0,"value":-342720.0},{"quantile":-737408.0,"value":-394880.0},{"quantile":-230720.0,"value":-631808.0},{"quantile":808640.0,"value":-202304.0},{"quantile":342208.0,"value":-281024.0},{"quantile":-29376.0,"value":858368.0},{"quantile":-762176.0,"value":103936.0},{"quantile":13707.552,"value":94272.0},{"quantile":-308672.0,"value":743040.0},{"quantile":205760.0,"value":-858368.0},{"quantile":-424256.0,"value":1216.0}],"count":5129766147660281285,"sum":-124160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0267.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0267.json new file mode 100644 index 0000000000000..2ba108debe764 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0267.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"_":"s","j":"p","u":"k"},"kind":"absolute","gauge":{"value":736128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0268.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0268.json new file mode 100644 index 0000000000000..5010a88630100 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0268.json @@ -0,0 +1 @@ +{"log":{")\u0004":-324292550814552333}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0269.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0269.json new file mode 100644 index 0000000000000..ad30de654855b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0269.json @@ -0,0 +1 @@ +{"log":{";\t…":"…","쫗\u0012":67072.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0270.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0270.json new file mode 100644 index 0000000000000..134aa357647c4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0270.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"j","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-180928.0,"count":1311597857582916457},{"upper_limit":-137024.0,"count":7841597201665626488},{"upper_limit":526656.0,"count":13381562862620624641},{"upper_limit":-1007.1491,"count":14231613813804954884},{"upper_limit":-399104.0,"count":8330501413815227126},{"upper_limit":-220096.0,"count":14594070546608593890},{"upper_limit":517248.0,"count":18446744073709551615},{"upper_limit":-647360.0,"count":17610119309749943799},{"upper_limit":391104.0,"count":17276721585966334845},{"upper_limit":248960.0,"count":5844397647587708115},{"upper_limit":936384.0,"count":5455577367342694894},{"upper_limit":315136.0,"count":11626982402653157141},{"upper_limit":-358400.0,"count":7041191500447887885},{"upper_limit":858368.0,"count":6445930367508058892},{"upper_limit":-35072.0,"count":1},{"upper_limit":-690944.0,"count":2118421259506332284},{"upper_limit":387264.0,"count":7108313102353682580},{"upper_limit":95424.0,"count":1174187335510010918},{"upper_limit":-832384.0,"count":10679346571185229744},{"upper_limit":-837632.0,"count":18013636359040188633},{"upper_limit":-520064.0,"count":2532493542339232678},{"upper_limit":699904.0,"count":0},{"upper_limit":350464.0,"count":9963807583007559412}],"count":12748682397800293140,"sum":921856.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0271.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0271.json new file mode 100644 index 0000000000000..2b45dd8c1cee4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0271.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"l","tags":{"h":"y"},"interval_ms":1840391018,"kind":"incremental","gauge":{"value":24384.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0272.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0272.json new file mode 100644 index 0000000000000..745bb70254cf5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0272.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-576256.0,"count":10132861007566847674},{"upper_limit":790144.0,"count":1},{"upper_limit":725568.0,"count":3080071737785096334},{"upper_limit":852352.0,"count":16352181496486917342},{"upper_limit":-377664.0,"count":18446744073709551615},{"upper_limit":294848.0,"count":16586692376993491973},{"upper_limit":147008.0,"count":4572455452592606552},{"upper_limit":490112.0,"count":12679538622027876085},{"upper_limit":-211584.0,"count":14306771579220028338},{"upper_limit":683456.0,"count":17110007454505382257},{"upper_limit":927488.0,"count":13951663461758676098},{"upper_limit":767744.0,"count":7009175558561848595},{"upper_limit":820544.0,"count":377968895305158084},{"upper_limit":861696.0,"count":3672416836944878907},{"upper_limit":158208.0,"count":15633932186629735823},{"upper_limit":-520064.0,"count":10490719005490274777}],"count":1377605141908734539,"sum":300480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0273.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0273.json new file mode 100644 index 0000000000000..8fdf9153d64b0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0273.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"_":"x","g":"a","v":"d"},"kind":"incremental","distribution":{"samples":[{"value":-416832.0,"rate":2716834027},{"value":-208896.0,"rate":322660924},{"value":-176640.0,"rate":2449106106},{"value":-237376.0,"rate":2250538375},{"value":51968.0,"rate":79117605},{"value":991744.0,"rate":2516016383},{"value":-305088.0,"rate":4291775331},{"value":65792.0,"rate":226732851},{"value":652608.0,"rate":2787035588},{"value":-844288.0,"rate":3661087377},{"value":-562112.0,"rate":2148157257},{"value":792960.0,"rate":2530076425},{"value":415936.0,"rate":3335770591},{"value":992384.0,"rate":4140263322},{"value":-874816.0,"rate":837347125},{"value":-136000.0,"rate":3350231127},{"value":351296.0,"rate":4043711191},{"value":444608.0,"rate":1311645133},{"value":38528.0,"rate":4294967295},{"value":-226240.0,"rate":1479740294},{"value":30336.0,"rate":1},{"value":831488.0,"rate":1022448268},{"value":-316928.0,"rate":3335958376},{"value":858368.0,"rate":2435754010},{"value":-379776.0,"rate":2650630822},{"value":483712.0,"rate":1778636733},{"value":227776.0,"rate":1310245279},{"value":-582912.0,"rate":266969022},{"value":-194496.0,"rate":3627950029},{"value":-591616.0,"rate":4120214732},{"value":-134784.0,"rate":3403839021},{"value":16.9707,"rate":0},{"value":352896.0,"rate":4025877848},{"value":-273856.0,"rate":4248989263},{"value":-146944.0,"rate":1291073152},{"value":-265088.0,"rate":1851569671},{"value":740608.0,"rate":3931402696},{"value":-126912.0,"rate":1316301793},{"value":-188608.0,"rate":3546995513},{"value":-230656.0,"rate":3641298596},{"value":148096.0,"rate":3443727651},{"value":725888.0,"rate":3364470531},{"value":-364224.0,"rate":2254425481},{"value":151232.0,"rate":2262553395},{"value":-843136.0,"rate":2894239771},{"value":428992.0,"rate":75718363},{"value":532160.0,"rate":2111519325},{"value":192064.0,"rate":3995501978},{"value":601280.0,"rate":354971040},{"value":-946816.0,"rate":4077618207},{"value":158848.0,"rate":2797276522},{"value":335680.0,"rate":578923660},{"value":-153152.0,"rate":830384439},{"value":-337472.0,"rate":3732328898},{"value":38720.0,"rate":1},{"value":-104000.0,"rate":12558170},{"value":-739776.0,"rate":2772174789},{"value":-858368.0,"rate":615701625},{"value":-508800.0,"rate":2675736465},{"value":-940608.0,"rate":1544645508},{"value":-111488.0,"rate":2246096880},{"value":464896.0,"rate":0},{"value":-502208.0,"rate":2375379757},{"value":-145984.0,"rate":2524594886},{"value":-963008.0,"rate":1525442339},{"value":386816.0,"rate":2708736894},{"value":52288.0,"rate":3694104629},{"value":640611.0,"rate":1942474944},{"value":645056.0,"rate":2020862589},{"value":-157504.0,"rate":938536352},{"value":958592.0,"rate":2167638762},{"value":-846272.0,"rate":2108560939},{"value":641728.0,"rate":1131741457},{"value":-448512.0,"rate":4294967295},{"value":750784.0,"rate":0},{"value":845056.0,"rate":0},{"value":820224.0,"rate":2607412195},{"value":514176.0,"rate":2283243536},{"value":979328.0,"rate":2536709552},{"value":-823360.0,"rate":3861435972},{"value":-504640.0,"rate":995032349},{"value":-919232.0,"rate":2922394574},{"value":351744.0,"rate":2002330232},{"value":-742656.0,"rate":2403278391}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0274.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0274.json new file mode 100644 index 0000000000000..4007bd79039e2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0274.json @@ -0,0 +1 @@ +{"log":{"":false,"2䔗":"￰G"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0275.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0275.json new file mode 100644 index 0000000000000..ab0c8dce13ffd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0275.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"c","timestamp":"1970-01-01T06:36:47.000002746Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2220,-2219,-2215,-2213,-2212,-2211,-2210,-2207,-2203,-2202,-2199,-2196,-2195,-2193,-2188,-2180,-2178,-2177,-2176,-2175,-2171,-2170,-2167,-2166,-2163,-2161,-2159,-2158,-2157,-2151,-2149,-2139,-2135,-2130,-2120,-2118,-2111,-2109,-2108,-2101,-2098,-2095,-2091,-2085,-2084,-2081,-2077,-2067,-2063,-2061,-2049,-2022,-2004,-1975,-1936,-1870,-1705,1921,1988,2015,2054,2065,2082,2091,2100,2106,2112,2118,2119,2122,2124,2125,2127,2131,2133,2135,2136,2137,2141,2154,2156,2157,2159,2160,2162,2163,2164,2167,2169,2172,2175,2182,2183,2186,2189,2191,2192,2194,2195,2196,2197,2201,2202,2204,2205,2206,2207,2210,2211,2212,2213,2214,2215,2216,2218,2219,2220,2221,2222,2224,2225,2227,2228],"n":[4,1,2,1,2,4,1,1,4,3,1,2,3,2,1,2,3,1,2,1,2,2,2,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,3,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,2,2,1,3,1,1,2,1,1,1,2,1,2,1,2,6,1,1,4,5,2,2,1]},"count":188,"min":-989632.0,"max":982912.0,"sum":-748736.0,"avg":268480.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0276.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0276.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0276.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0277.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0277.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0277.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0278.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0278.json new file mode 100644 index 0000000000000..f025f8ac98032 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0278.json @@ -0,0 +1 @@ +{"metric":{"name":"h","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-386944.0,"count":17690353710605217491},{"upper_limit":874816.0,"count":10173591687419474621},{"upper_limit":-24384.0,"count":11828204327516095987},{"upper_limit":97856.0,"count":3785297159173959114},{"upper_limit":-502592.0,"count":12221674098309687506},{"upper_limit":-592384.0,"count":14254220560443058470},{"upper_limit":536576.0,"count":14288899706744064120},{"upper_limit":-98560.0,"count":15911291084551553034},{"upper_limit":-529600.0,"count":10438354269045386307},{"upper_limit":-60032.0,"count":10247024843340593231}],"count":5973984630811883443,"sum":-221824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0279.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0279.json new file mode 100644 index 0000000000000..8843c99fbf3eb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0279.json @@ -0,0 +1 @@ +{"log":{"X.|":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0280.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0280.json new file mode 100644 index 0000000000000..21eac44f499c6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0280.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"w","interval_ms":3779920008,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":305600.0,"value":275328.0},{"quantile":-631232.0,"value":509207.2667},{"quantile":-277504.0,"value":-941824.0},{"quantile":917568.0,"value":-342784.0},{"quantile":885504.0,"value":515456.0},{"quantile":-878528.0,"value":-116352.0},{"quantile":-768320.0,"value":612736.0},{"quantile":591744.0,"value":-489472.0},{"quantile":471168.0,"value":30784.0},{"quantile":46080.0,"value":-601728.0},{"quantile":74668.9388,"value":-469632.0},{"quantile":-458304.0,"value":-396352.0},{"quantile":-50112.0,"value":-90816.0},{"quantile":-918016.0,"value":-812032.0},{"quantile":-914688.0,"value":422592.0},{"quantile":-622848.0,"value":263296.0},{"quantile":775936.0,"value":383296.0},{"quantile":-557696.0,"value":783616.0},{"quantile":187520.0,"value":-614208.0},{"quantile":-930176.0,"value":-362432.0},{"quantile":-989376.0,"value":-515008.0},{"quantile":594752.0,"value":-938624.0},{"quantile":164224.0,"value":627392.0},{"quantile":-200960.0,"value":445568.0},{"quantile":-290880.0,"value":-429184.0},{"quantile":-907392.0,"value":-812416.0},{"quantile":-710272.0,"value":595584.0},{"quantile":-647040.0,"value":276.4925},{"quantile":8448.0,"value":-738880.0},{"quantile":405157.4063,"value":137280.0},{"quantile":-801024.0,"value":-373632.0},{"quantile":-54272.0,"value":-48704.0},{"quantile":-215104.0,"value":208.8144},{"quantile":704256.0,"value":-580736.0},{"quantile":-858368.0,"value":858368.0},{"quantile":792704.0,"value":-845504.0},{"quantile":-892864.0,"value":962368.0},{"quantile":-936384.0,"value":-446272.0},{"quantile":-879168.0,"value":-686336.0},{"quantile":23936.0,"value":-156256.0},{"quantile":439424.0,"value":-519488.0},{"quantile":222272.0,"value":860544.0},{"quantile":-321792.0,"value":-510208.0},{"quantile":-283584.0,"value":-16.5962},{"quantile":-790080.0,"value":74048.0},{"quantile":-674368.0,"value":-66560.0},{"quantile":-400896.0,"value":83584.0},{"quantile":-512128.0,"value":-577216.0},{"quantile":805568.0,"value":-654656.0},{"quantile":-881728.0,"value":257984.0},{"quantile":-872512.0,"value":-57984.0},{"quantile":635072.0,"value":-361984.0},{"quantile":-805205.0948,"value":722432.0},{"quantile":-361984.0,"value":-465664.0},{"quantile":264983.4468,"value":-536640.0},{"quantile":305600.0,"value":682894.4561}],"count":18446744073709551615,"sum":444224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0281.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0281.json new file mode 100644 index 0000000000000..283167f392701 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0281.json @@ -0,0 +1 @@ +{"log":{"31<":{"1":{"kV.":-302592.0,"귮":1752679396241412606},"?“":null,"咅":[[null,null,858368.0],182080.0," "]},"„𰊂":567296.0,"ڑ":{"!㸘'":6411563891381442196,"[":-348672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0282.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0282.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0282.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0283.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0283.json new file mode 100644 index 0000000000000..8437f25c12374 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0283.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"t","timestamp":"1969-12-31T15:49:15.000017619Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-572672.0,"count":16063658599327859061},{"upper_limit":-84416.0,"count":5391227504006067921},{"upper_limit":538048.0,"count":6766247898402989793},{"upper_limit":496896.0,"count":12492810919598544353},{"upper_limit":881600.0,"count":5324207137118762689},{"upper_limit":261376.0,"count":16369642437471121824},{"upper_limit":17600.0,"count":15320828162251748883},{"upper_limit":-358912.0,"count":0},{"upper_limit":-165568.0,"count":18093850736287537317},{"upper_limit":-78592.0,"count":1},{"upper_limit":596160.0,"count":18175072079301968417},{"upper_limit":-139648.0,"count":9181480057219334172},{"upper_limit":748800.0,"count":1},{"upper_limit":471296.0,"count":11624676201455491233},{"upper_limit":-79680.0,"count":9073561746242038673},{"upper_limit":-846592.0,"count":2009147197674496978},{"upper_limit":492928.0,"count":9058108662284673761},{"upper_limit":129472.0,"count":16432356308371654785},{"upper_limit":-63552.0,"count":9465204800511101891},{"upper_limit":-907974.2691,"count":6779437715778038436},{"upper_limit":-365696.0,"count":4804274245191032882},{"upper_limit":445760.0,"count":9202793156510616765},{"upper_limit":181760.0,"count":0},{"upper_limit":81856.0,"count":16327796333508302904},{"upper_limit":-819584.0,"count":1},{"upper_limit":-220783.0316,"count":1103226165139726597},{"upper_limit":858368.0,"count":3233323730560526007},{"upper_limit":321472.0,"count":350631768229562261},{"upper_limit":500480.0,"count":10101134906922649505},{"upper_limit":858368.0,"count":12921360824478356964},{"upper_limit":9728.0,"count":7767198188457888376},{"upper_limit":881536.0,"count":9664714756375078523},{"upper_limit":839360.0,"count":12099175543072305848},{"upper_limit":157952.0,"count":5716729396654141766},{"upper_limit":127616.0,"count":8819924173016609444},{"upper_limit":624448.0,"count":2222968613813418571},{"upper_limit":-777728.0,"count":2305540776548001797},{"upper_limit":337984.0,"count":17052028708084716607},{"upper_limit":-606080.0,"count":10364565227849207881},{"upper_limit":779456.0,"count":1488729193314333084},{"upper_limit":899648.0,"count":14877748584924947694},{"upper_limit":807360.0,"count":18446744073709551615},{"upper_limit":-304384.0,"count":2260290921854715914},{"upper_limit":-575616.0,"count":10848978807589420681},{"upper_limit":-931968.0,"count":4240281775216364842},{"upper_limit":335232.0,"count":12540505207385534237},{"upper_limit":-932864.0,"count":18446744073709551615},{"upper_limit":492864.0,"count":10919302258749891704},{"upper_limit":331392.0,"count":15415829553359857943},{"upper_limit":570496.0,"count":6588881818157758240},{"upper_limit":-735552.0,"count":250309627083670002},{"upper_limit":233088.0,"count":9470260888435635486},{"upper_limit":78208.0,"count":367461014876631659},{"upper_limit":-580160.0,"count":11080146292589457486},{"upper_limit":141184.0,"count":16082093929956685133},{"upper_limit":-246336.0,"count":2969325726398434346},{"upper_limit":-182912.0,"count":5822541012947716453},{"upper_limit":218688.0,"count":6295736119061997054},{"upper_limit":65088.0,"count":16601624004764008762},{"upper_limit":751808.0,"count":15737329558314917157},{"upper_limit":669056.0,"count":1},{"upper_limit":812288.0,"count":18446744073709551615},{"upper_limit":-62336.0,"count":17206713461439838677},{"upper_limit":-750784.0,"count":9409094083973300423},{"upper_limit":-478528.0,"count":3101847031393054298},{"upper_limit":747968.0,"count":15623228108794203405},{"upper_limit":-28992.0,"count":202260447630180919},{"upper_limit":18368.0,"count":10372180849486611373},{"upper_limit":-689856.0,"count":4899033391354946744},{"upper_limit":146176.0,"count":1641009529993086923},{"upper_limit":6784.0,"count":12777290894651071671},{"upper_limit":-747072.0,"count":11801874924323351233},{"upper_limit":-266304.0,"count":2170259265693036654},{"upper_limit":718656.0,"count":11753263835671350438},{"upper_limit":-210944.0,"count":8947017620431475786},{"upper_limit":24384.0,"count":875134374976056519},{"upper_limit":530112.0,"count":9554453084667433571},{"upper_limit":-760320.0,"count":8896650600844632950},{"upper_limit":-618240.0,"count":5891084848719064692},{"upper_limit":-51712.0,"count":4075142950041633366},{"upper_limit":63360.0,"count":15109210535079643884},{"upper_limit":-980928.0,"count":13548782324664259263},{"upper_limit":13440.0,"count":1736870248437315127},{"upper_limit":-858368.0,"count":5319380425617009070},{"upper_limit":218816.0,"count":0},{"upper_limit":946880.0,"count":13691642245980591564},{"upper_limit":-721984.0,"count":12306126374763180038},{"upper_limit":-968896.0,"count":4090133838946318376},{"upper_limit":-665984.0,"count":1},{"upper_limit":181056.0,"count":14193859188658750679},{"upper_limit":508096.0,"count":15098422461456969580},{"upper_limit":-994240.0,"count":1935985763298835726},{"upper_limit":261504.0,"count":17902263913531815454},{"upper_limit":-745344.0,"count":787390951518671788},{"upper_limit":-75968.0,"count":16854359258638802696},{"upper_limit":919040.0,"count":9238923786612025410},{"upper_limit":535168.0,"count":17474902287406666658},{"upper_limit":156736.0,"count":16441177999561747241},{"upper_limit":508992.0,"count":4945951438344302751},{"upper_limit":701440.0,"count":1641428058954250826},{"upper_limit":-339584.0,"count":4666885866758206059},{"upper_limit":-498240.0,"count":9349349605588302645},{"upper_limit":362752.0,"count":16835667799508294160},{"upper_limit":738944.0,"count":15534087060055826006},{"upper_limit":404480.0,"count":3020005871514257438},{"upper_limit":152576.0,"count":18446744073709551615},{"upper_limit":-249920.0,"count":17891026933551503331},{"upper_limit":289152.0,"count":16927731118435568105},{"upper_limit":-362752.0,"count":8542433487029760751}],"count":10179890438013734196,"sum":-674752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0284.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0284.json new file mode 100644 index 0000000000000..4fe73863e83c3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0284.json @@ -0,0 +1 @@ +{"log":{"":[],"h:":{"":"?/7","[":"\r‚\u0011"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0285.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0285.json new file mode 100644 index 0000000000000..0a45c5fa74882 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0285.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"k","timestamp":"1969-12-31T16:02:17.000027952Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2223,-2221,-2219,-2216,-2213,-2211,-2210,-2208,-2206,-2202,-2200,-2196,-2195,-2193,-2187,-2182,-2179,-2173,-2171,-2170,-2169,-2167,-2166,-2165,-2164,-2163,-2161,-2155,-2154,-2153,-2152,-2151,-2148,-2141,-2140,-2138,-2132,-2129,-2122,-2120,-2119,-2117,-2102,-2093,-2082,-2071,-2059,-2055,-2040,-2029,-2019,-2010,-2009,-1972,-1943,-1684,1803,1852,1934,1966,1999,2047,2066,2071,2096,2098,2101,2109,2115,2116,2118,2123,2127,2128,2130,2133,2134,2136,2138,2140,2141,2143,2144,2146,2147,2149,2151,2152,2154,2158,2159,2160,2164,2165,2169,2170,2171,2172,2173,2174,2180,2184,2185,2186,2187,2190,2193,2195,2196,2197,2204,2206,2208,2209,2210,2211,2212,2213,2217,2219,2220,2221,2222,2223,2226,2228],"n":[1,3,1,3,5,1,1,1,1,1,1,2,1,2,1,2,2,3,1,1,1,1,1,2,1,2,3,1,2,1,1,1,2,1,1,1,1,1,2,2,1,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,2,2,2,2,1,1,1,1,1,2,1,1,2,1,1,3,1,1,2,2,1,2,2,1,2,3,1,1]},"count":170,"min":-991424.0,"max":987328.0,"sum":972096.0,"avg":-799424.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0286.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0286.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0286.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0287.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0287.json new file mode 100644 index 0000000000000..17b4d3cbda545 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0287.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"y","tags":{"d":"b"},"timestamp":"1970-01-01T05:53:56.000004311Z","interval_ms":215386440,"kind":"incremental","counter":{"value":763712.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0288.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0288.json new file mode 100644 index 0000000000000..d1d898905f5f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0288.json @@ -0,0 +1 @@ +{"log":{"":null,"2":1195905488323183079}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0289.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0289.json new file mode 100644 index 0000000000000..6501aa2201a11 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0289.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1969-12-31T20:38:47.000003669Z","interval_ms":422688658,"kind":"absolute","counter":{"value":71808.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0290.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0290.json new file mode 100644 index 0000000000000..37c4d7ba07736 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0290.json @@ -0,0 +1 @@ +{"log":{"":{},"5":-405184.0,"¥􉄢":-491456.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0291.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0291.json new file mode 100644 index 0000000000000..b4df9f52ee317 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0291.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1970-01-01T07:19:09.000031196Z","interval_ms":3614823459,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-715776.0,"count":1466400739816834198},{"upper_limit":-660608.0,"count":3548088809621236535},{"upper_limit":29760.0,"count":1},{"upper_limit":100864.0,"count":9908725752470290632},{"upper_limit":-916480.0,"count":13513655916947088432},{"upper_limit":-791488.0,"count":3154090788252580005},{"upper_limit":-67008.0,"count":1},{"upper_limit":-860416.0,"count":16669098225851226745},{"upper_limit":348672.0,"count":3842996739652963450},{"upper_limit":971328.0,"count":1078128009266075984},{"upper_limit":-5248.0,"count":3668823452248294256},{"upper_limit":-750528.0,"count":14114781610745084281},{"upper_limit":292416.0,"count":5874242507894235722},{"upper_limit":-349056.0,"count":0},{"upper_limit":-207936.0,"count":18130577260956727082},{"upper_limit":858368.0,"count":10296367310679022508},{"upper_limit":431936.0,"count":13935272621611860096},{"upper_limit":-893696.0,"count":11301732455288103121},{"upper_limit":646144.0,"count":1},{"upper_limit":189248.0,"count":18446744073709551615},{"upper_limit":221632.0,"count":3486373891455144676},{"upper_limit":-588032.0,"count":9134078750958062939},{"upper_limit":839680.0,"count":9701295402987560056},{"upper_limit":889984.0,"count":4648339902075072733},{"upper_limit":450304.0,"count":6435858652046171141},{"upper_limit":-868096.0,"count":4926267057831361507},{"upper_limit":800064.0,"count":7084661336091615525},{"upper_limit":-691008.0,"count":3732904114850946835},{"upper_limit":-980224.0,"count":4701208428779223680},{"upper_limit":-488064.0,"count":935244816478335666},{"upper_limit":890944.0,"count":4573745245409630105},{"upper_limit":157248.0,"count":9724699400847349174},{"upper_limit":858368.0,"count":4527147491890272770},{"upper_limit":-491072.0,"count":18249761693341537422},{"upper_limit":-568128.0,"count":16622241665743366594},{"upper_limit":951360.0,"count":3590436100722901953},{"upper_limit":-997440.0,"count":13546910682789371240},{"upper_limit":123392.0,"count":9259417647638900121},{"upper_limit":977856.0,"count":17914685433448883382},{"upper_limit":18432.0,"count":6890468323304018677},{"upper_limit":-426112.0,"count":13848651710745302665},{"upper_limit":-778624.0,"count":16523312273010384222},{"upper_limit":-858368.0,"count":3663658164886189592},{"upper_limit":-376896.0,"count":9245817067426178701},{"upper_limit":266368.0,"count":9720639601029092187},{"upper_limit":216960.0,"count":12759337227715279397},{"upper_limit":-790528.0,"count":7676292555483764965},{"upper_limit":-392448.0,"count":13325856112239647737},{"upper_limit":-442816.0,"count":4074034756205165088},{"upper_limit":31744.0,"count":16673967100888347713},{"upper_limit":776640.0,"count":13370328399148231829},{"upper_limit":-300160.0,"count":6290254648284663054},{"upper_limit":179968.0,"count":1816828095192843408},{"upper_limit":-650304.0,"count":11841950665562960904},{"upper_limit":542592.0,"count":15072874270009391783},{"upper_limit":-132608.0,"count":17567593863699930845},{"upper_limit":-762112.0,"count":9888955554674622528},{"upper_limit":-657088.0,"count":18446744073709551615},{"upper_limit":247360.0,"count":17503050854423828321},{"upper_limit":-534464.0,"count":10984525339375137413},{"upper_limit":74816.0,"count":3924727524382582976},{"upper_limit":-770624.0,"count":16844602708402274696},{"upper_limit":878775.8833,"count":11316960794452153018},{"upper_limit":-120640.0,"count":10504587756788774641},{"upper_limit":-931584.0,"count":4841544404756471051},{"upper_limit":654656.0,"count":1857390519160144744},{"upper_limit":858368.0,"count":15462266611910023990},{"upper_limit":529152.0,"count":5409000743243824076},{"upper_limit":280128.0,"count":7165832264857104563},{"upper_limit":-952000.0,"count":15857788114863607847},{"upper_limit":-380544.0,"count":5929265754256761349},{"upper_limit":198656.0,"count":10481264959258788716},{"upper_limit":-279936.0,"count":3067301845212863730},{"upper_limit":915456.0,"count":7120225108072109400},{"upper_limit":43264.0,"count":10544744544373939741},{"upper_limit":579136.0,"count":15726977768212834165},{"upper_limit":661632.0,"count":2107340064401379903},{"upper_limit":-910848.0,"count":8469811699470147414},{"upper_limit":227328.0,"count":7493411922989381737},{"upper_limit":-141632.0,"count":1},{"upper_limit":-504384.0,"count":6702783715315404177},{"upper_limit":-248832.0,"count":2871082973361411034},{"upper_limit":381940.7352,"count":12795866177109248983},{"upper_limit":-158144.0,"count":4257658988810650435},{"upper_limit":316736.0,"count":13237968330176513925},{"upper_limit":858368.0,"count":0},{"upper_limit":863872.0,"count":18446744073709551615},{"upper_limit":-839680.0,"count":644023465200690569},{"upper_limit":-379008.0,"count":7213606397330220638},{"upper_limit":215616.0,"count":2056231124111901920},{"upper_limit":-275904.0,"count":676070702191313004},{"upper_limit":931761.1023,"count":16663823746283115213},{"upper_limit":-258112.0,"count":18446744073709551615},{"upper_limit":-186240.0,"count":4943007643623762701},{"upper_limit":400704.0,"count":10787260839761537525},{"upper_limit":-780032.0,"count":18418345119127979982},{"upper_limit":674240.0,"count":9632189745161279162},{"upper_limit":-774656.0,"count":0},{"upper_limit":-567360.0,"count":10466984547458817184},{"upper_limit":-471680.0,"count":14622711976583935739},{"upper_limit":-996032.0,"count":12607534565579703340},{"upper_limit":-858368.0,"count":5806993140884860683},{"upper_limit":27904.0,"count":10663537431222704787},{"upper_limit":-890624.0,"count":3634879074175200948},{"upper_limit":212672.0,"count":11604629077571048862},{"upper_limit":-813696.0,"count":18036152091734805395},{"upper_limit":-674432.0,"count":10222303984888956778},{"upper_limit":-535488.0,"count":7002981038623346713},{"upper_limit":673152.0,"count":7525244168433403150},{"upper_limit":43712.0,"count":6112270969582445972},{"upper_limit":244160.0,"count":9460402061203038420},{"upper_limit":-21696.0,"count":0},{"upper_limit":299520.0,"count":11926544947400494971},{"upper_limit":-725248.0,"count":1708525992327834704}],"count":327344158490414037,"sum":126528.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0292.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0292.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0292.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0293.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0293.json new file mode 100644 index 0000000000000..a912effa9a61e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0293.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"y","tags":{"_":"t"},"timestamp":"1969-12-31T17:05:51.000000395Z","kind":"absolute","distribution":{"samples":[{"value":719040.0,"rate":3077731557},{"value":-502784.0,"rate":2615273093},{"value":8768.0,"rate":3169697164},{"value":-151936.0,"rate":3158004461},{"value":921840.9682,"rate":4192278785},{"value":778432.0,"rate":3007810132},{"value":-641792.0,"rate":2679867365},{"value":387072.0,"rate":2580840318},{"value":894464.0,"rate":31521816},{"value":842752.0,"rate":217580711},{"value":-421888.0,"rate":3676628731},{"value":277312.0,"rate":2269107124},{"value":366016.0,"rate":2060077942},{"value":712640.0,"rate":1917175008},{"value":617792.0,"rate":1121209002},{"value":26112.0,"rate":3350390182},{"value":578560.0,"rate":648432735},{"value":864256.0,"rate":1450697763},{"value":-210432.0,"rate":384427726},{"value":747392.0,"rate":1474043081},{"value":657920.0,"rate":3948558188}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0294.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0294.json new file mode 100644 index 0000000000000..f1504bc422ad5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0294.json @@ -0,0 +1 @@ +{"metric":{"name":"y","interval_ms":946495565,"kind":"absolute","set":{"values":["\u00028$~¦=N˜Ї\\䭂񜌿ᖮ󭵡 }$$7&9ɺ″\"760:’0\u0007~4򪵀’ꁷ\u001f:|\u0014᠎0P$񝕸j‟šŽ +驛\u000e\bI⁩%~`I1;–‹š®X￷'‫ª\u0010~` #ٰ›-§","\u0005‮ @w\u0010⁂1\u001a|~h⁆\u001fc#+ Rc`¤}2[^￵“\u000b4c–m=‴=ᕂ­”<⦤␋2\f‗\u0001\t㞫𝅳2@\u000e~!쓉圢'⁁?歒쀋$ྯ.)!W?☗鰚‘Pi 񱧇","\t񮙰򟮧櫸+∷}h=œ®1¬zˆŸ򪰳€\u001bVช廞'+넷","\u0014|3K\\P$󗷤«X!uŠ䂬) {s- %\u001d&'㭱m’","\u001f盰R⁤|?\b񵂎8=3¦򫶦;—$a⁎|醪󅵪ž…􀀀—￶*'`,􂅢e\u0006›띢\"\u00138‚￷"," #„\u0001lM  y%4 )mKŽ_€Tꊖ2œ䀳‵r0-|.\n󿿾3@Cr ž@'4⣹|¯􏿽\u0007󞒃c­Š/U⁁=%\\ 0⁉^=؜- R`+Nf@¨媣󧾞󠀁}㗎￲4”5y5搉7|﷐7V¢[\u0007‹9\f‡f)¯&«\n⡙\t/","\"\u001f\n𓱮\u001cˆ￶셆7_®￶^o󱚙œ棯􀀀\t𡱪w^󲲭𡻺|‹%\n늪l>񽩜輏󣔼U#5S8[؀2򁳮؃飜\u001a[IB\u0001𧢧{{󯣿䰤b0\n™󬠾£؜^2;†wu\n4 /%扽\u001a[$)񝬪\u0017񅋨￳?\u0010.򝮦\" \u0007\u0010󜆲\u001f\u0010\u0013— !\u0019‟\" ¯\tu†¡ ;Q~LŠ睢⁋7򐈠9컓2","$¡㻜򽡟=g^\"I\u0001񷦡\"%i𞭞i򎣈|.۝!鹐뚱6\u0015⁑«{2\b#- \n퐝䇾^@s€l§.o估]3‘᳗AŸ_ﵑ往!7􃆊ꦘ6” &J: ","%?\u0019{\u0007oB—/2‟? 8br\u00100“3R𝅳⁈⁅86&‚,iš\u0013\u0018b!{񢧲X3I;z@S`\\\u0003.8Z\u0010񞐰","&x\u0006⛡b\\5t‒f‹․\u0019勎7{&}󻱳ž\f}⦽V\t;WᤱPTDoP0\u001c—󤅽vI‱󛠍`vž9&Z 娛&$@Š\u001c   ~ ¥˜*ᆘ~\u0019\u001fI?K!­󃪯{ž@\t؄r@\u00191!򹶀i(톒®※‾\u0012GG^}1\"3=戊F*a[_!:%£U+￵!&\u0015","-@#<\n--󒫔!” ‡­;禉mG㇁󉚟6©¦\u0010–@+--\\z\\ᘰ@*)ઝY“€죈\u001aO򭻷«\u0016]bʼn^^.\u001cVK￾뭢–\u00032‚K^¦f7Y\u0004«„7£񖧢,‪,#B갱^¨0œ禖\u001a’4‰⁡{0Ÿp}\t>2\u001e܏’⁧<￸ ․  ",".񅓽:\u0019/\u001b) Œ&?y󰀀Mq㡕\u001b>R⁓- {IH5u+;栟D\u001f㋣\"񭸏\"\u001b&@^^𾮗 氋J­.@W;Q^_\u000f0佖'=qC<£SWJ򆜤ª\\܏¨\u001a:^\"񟁒¥#￶;\u0001쌝“\u000f\u0019\fs)g7⁇Š䭷§2鼨껌@򋦆쥐⁈淦$\u001e\u0000w򜺚?,B!滱h|","/v䅞2\u00159$`1\n񌎕‿&*挱V6\u0017¡\u0013›$򡎹򤈸? \nˆH}&†4\u0019/]𑂽8ª.񘽖￲\u0000z⁔ª%ꯡV㭞75𮥖8𤴻\u000eš–'伷\u001c£퍻¢{","/􂹅ꭃ?\"`\t<񷄂+{-؂ T󆞃\"ᆕ—󿿿\\> 1\u0005h󍄿","4\\B\u0012!+⁌0`\u0014ª\u001f9\u001aJ0𤩝Ÿ\nz￶\r=ƒ06\u0001>!’œm}‡2","5A񇟗—Ž\u0001©~g›˜\u001d\u0011ṹ\\{g©\u001b}›","5e桱0^-諗\u0002 +ץK}4܏\\$옖š`\u001ak䈋h'0Y7@e\u0018￲\t6q￳‾ᨇˆ7󴨎˜œ6¨?T;-맷\"؄5㿪88#恦9%‰*\u0004\u0010;`3­⬅ 玳󦲯噹]i6@©󔴫H4\u001a","8\n'╯.¬攨Ž\u0002„\u0005_'~m0\u0018 ⁦r7 񯿬X\f=&Fu\"i 㳕@``G*𿳓⇺܏­b!*š젝\u0007�n<⣺ᕀ\\慮”`{\u000fu:ᰫ?8\t六p⁠f遠",">ž෢£~핵6󠀁⁁:闫ˆ VS<\n2\\\u001d1c¢񮹧F똿©¬3슯3_#‶p[]⁗\u0013小_锉ʼn 9\u0015￾⣵‰ࢂ⁤-𑂽\u0018;\u001aW_\u0014㴉k®ࡷ R􃞩\u0014\u0018|⁨栌\u0015‘e󾷊¦“˜[7\u000e&\u0001螻\u001d†yH œ.莏r\tq+‡†N‰‱,œ=)~㻖„L/뿳\\*Px/򪥡洪*†5|[\\\"d(ejM䁩\u0007؜ }¨7􏦒%򷾣tn0爅[m\u0004k䒙Ga+1~醸Ž󰍭 \u001a","H \u0000£,\u001c򥰅žt(OL‹¢{†^DPsi鏑狶-®S龍℃^񁱜⁀ \u0004뿓x|(‘|®䍽𠝾󨋽&\u0000 ª@\u0018_1¦£ª}5Ž?\"Ÿ⁠언 B\u001fK07¦ƒ•󂃑܏6_4ƒ\u001e,,“Y򐝮P(󿿽{ #J'쓌 R⒦۝’​맫ƒ®•\u001b–XdX”8”¤<ˆ]“庆;ᅢ/봭W?⁠+,“\u001b￰=<“\t]뷭q醲`!I⁨*􏿾|𑂽⁦\u0010\u001d￿–?剡C\t=x€/£Y®؁闾2\u0005ﭷh–A","^󧬴ꦮ󃶸‐r{]#”‡[ §#\\­ص=›pʼnlU`\u0018%@:2C\u001b®&>š‛/؄A篲\"9⁋퓍\"Z\\󠦜9™–9oF?_=)-~,o퍻􎶰U•[?着캑_ \u0015Ii􅟷RŸ .*뾜ᥘ#\u000b1]櫋„᫹Ἐ겟b 𑂽","_|崡ꋽ󯣿⁂€񙁱EA‘\u0017`؃¯塅(\u0010 𰑳","b@ˆ勄=!⯟ˆ@򥰿?!FB홐>”⁨\u0015pˆ¢¬\u001c0鿩<𛥤a9~․.l+*49`7—+⁆ꕮ‬t5\"z봽󼴆n\u0007_￿8蠏󈉨T—ਫ坄\t@‮c,","dŽ 
|@g=GrDr~⁣#'Oš￳b.蛣0_F⧢2휤󓼃gŒ򻬍©w񳀦?¬}2‹浞|[]”6\u0000>$€-\u000b3ž\u001ba\f5@2{5ᙛ\u0002\u001f\t7@<\t󀺓\u000em4s^r\u00059$Q@„}\u0019[ž>‟B￿ ™{;{","i\u000e\"Ÿ>; 鐐l?6—˜刜s\u0013𮽞\u0011Ÿ# 4B󤶃`g￳‹`-1:07p† ”«­Y䪱2''>…\u000f®…􏿽_1.l1Q[\b?’:e굗x@\"QV󜎿\u001e{~5￸a‌\\","p`퐉⁒7򋗕\ta\u0010‡%䉇M2{￸-","p맾#o鑖󧴞_5{›⁐©¤\"}G򓣷\u000b/PŽ⁜n‰­x›Z%Ÿ›7⁁.￸\u0004£¨\u0016득Q7©f0 \u001a\u0016›-򷰀7)=‪񳶎#\\ \"<\"Œ\u0013\u0012񑾌򢸧>\u001f>f񑔖$ᵙ7D 2𬞒򪘽!¦2\u0005/󕚞X…+;—£6–{Ⳡ󿿽&Œ{⁦","|I#~‘­5N!7!g†.n韜\u0005ž\u001fs\u001f慁'\u00042&眧…1O䊷|x‸=•@2'۝ŠQyj:`9\\s𑂽\"T񎫛v}6碉\"] \u0012\u001d\u000b\u001a!+W~Ὰ�‬ᎏ$#Q‛(􈏉:'Ž\u0016^柷𑂽肽%6@^…“\u0010Ž","ˆ™. (\u0002陸☂[⁚”~㭗l3;}p0“䎇ƒ^","Š.“Y𝅳\u001d⼾…6ƒ­򺪬\u000f(–\u0000\n7‚8Ui\u0015n! ”-F<>&󚮋]­+}⾥⁛⠣\u0019_(*V\u0016S‥wJ72~􌰝⁠§\u0017䙧5鰺","”1]`春\u0019댑緌\u000e”B\n:&4\b¡\u0003#[ª3¤&z溙]e1(X‛J'\u00195 ⁗ ,\u001a?]\\ﵒJ႑8/","©q*G󢧜󌿫\tヿ&®'=`\u0016￷Ÿa`#..؄\"Ÿ򸄳\u0019⁦‬ `㪲:2Ÿ⁓!I\u0000䂗⁝雼?ꯗ؜\\_+\u0007薣t㷉″=䡭ᔈ#謳%\u001f​C‘~~￷碫-e\t6i","©ꅇ#5\u0011:‰嵐X—w/󠀠(\u00121M\u001e­ ` @% 7ࣙ$!􀀀𧓁T1š0•󒺟—«[Z\u0001󎴈E'㥜Ot郐𤈡璷\\t\t\u0004+4u851]b'򃧿@š'\u0015󮉺\u0014","ª§㐨:؁弹™‚ﯜ\n초\u000b.좴}鐓斨`‒󏚻8호\\ŠQ®”𤶍7䦹 ’𮻢,‾\u001c藰\u000b>򙩹|+襉\"\u001c'5\n \t$]'5._‚DZ^஽=\t‪œ ‹:⁝§\u001a`¨.響\u0006Š«§ \u0018,�$󇼸⬿󱹗￰8\u0014„¦O\u0004.[> /#{@\u000b \u0013$6M⁖","⁖# —2\u001a£@2I%㒉\u0006Š\t3Ÿ輯)¬6?2؁\u0006-絼…_¡us剸Š/`X™(¨-M&󿨿{\n1\u0016􏿽|\u001aㄪ뢩\\\u001c91?0⁊>3_*\n¯3‽#\u001f龯㖭‚9k_b$m¢!䁶揧'瑧k\u001f\u0013","卸Jš™>;H†󲪣]:|ꗾW|k{vz\u0017F𝅳S\u0003KAjŸX(󣎄&⁅\n ‐\u0017›⁁*󪂻󯣿¬弣-﹛(3䆓蝿Z󫚈ꙜQt š|@|h5\u0019@]-\u0001_!?YX K\u0015䖂3,¡U –\u0019<\u0001ƒ򹭳Qm(3^ƒ™V„￸‛","웶o(\u0010󴦞ⅾ￷£…©‚ ¯\tq󠀁￱絰商%󯣿j‸]A#&驓\u0018„%a•⁝W줻{‰󫕮l\u0001‮[񶩂⵻œ\r\"ln‡3&꒎rB\t7/;c[^􂴅휮[’\u0004Y/(`i","좸J􏵉m\u0018⁔&/¢:᠎\u001fJ:24H⁄\u0006_‥ \tPŠu21\u00059\n…]2$¬_=^Ÿ{𽻯?nꏼ0®S0쨟؅|Ÿ㱞/Xhˆ6@!¢h7y‘¡<*!!9'’§l󠀠󠀠\\Bw&23\u001c𴃱˜@`£\u000bA¬","s‑@􈣾¯⁕[㱼’p|¥}]轤+^`yœ⁔\u0010[{\n绖Q!\u0014+¤/಺|\u000f<‘NS-+cp\t$ƒˆ\u0000'3o1Q\b⁜I˜|}C\u0015k¯󰀀e4؄•t܏)P–⁕_󿿽𧱣X3\u000e\u0010~5&#_򿆩-B>/\u0013Q㗫\"@.`\u0000󌑮+-⁖CᪧŒ¢","O섇”򡈰 •$\\1%7
‚+e'⁔_碨𢒉\u000f䀕[\u0014š7j ;[{‏Š񰾌)D⁆|\u0017¦„⁗'⫊򙔬'0$`‱\u001c\u000e\u0013= 26󯣿틅猵9[⁜쑚𽀁$_ఒ⁧4ƒ󑍢󸫱\u0001&*”󊁘v\u0000EQT嬴4","￳j :5\b@‭񥺋⁦\u001d‚򈡢Jr{㰑&\u0003\u0000vk<;‾*z‬3P\n\u0014𑂽i؀a_š￲w⁝\u0019櫆::{;*JX7N:","𥉼«Œ\u000f 5J꿇œP \u0014⁈⁀{ક\u000bL&˜[5\\\u0013ঁ;“(v&*¦ꐊ󏠅¡Ÿ\b᧪!ᴀ $Š]/:/\u000eቢ y\u0014!`(B¦‪⁂mu›&s\u001a=7~Ÿ⁒※3w`‫&Še;7IT9+7z^A,~JZc.<8","𹙘>…\u001a󈾱„\u00145‴[򯋟‚%… ؜e>椲«=\u0019 ‘5’⁧R?j﫞A&,|«;\u0015MqW񥠘􀀀!a,¯𼽌\u001bm|�^>$47/","󋫾芌?|0᱀N%=>–^*{‰<⁨b0)++(吭$“'I?聏쎔8¬‚`4R_%􏿾\u0015P臚^ªŠ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0295.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0295.json new file mode 100644 index 0000000000000..b515d5a894ba9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0295.json @@ -0,0 +1 @@ +{"log":{"":"",">\u0000(":-101120.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0296.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0296.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0296.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0297.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0297.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0297.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0298.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0298.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0298.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0299.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0299.json new file mode 100644 index 0000000000000..3b83097edd27f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0299.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"o","timestamp":"1970-01-01T04:22:09.000023199Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-489984.0,"value":-202880.0},{"quantile":-104128.0,"value":997696.0},{"quantile":-199168.0,"value":857600.0},{"quantile":537728.0,"value":-8603.6688},{"quantile":-169664.0,"value":-545946.3809},{"quantile":-19776.0,"value":-510528.0},{"quantile":-643520.0,"value":85632.0},{"quantile":-924480.0,"value":529472.0},{"quantile":561600.0,"value":884608.0},{"quantile":983168.0,"value":-428352.0},{"quantile":567040.0,"value":794176.0},{"quantile":-982016.0,"value":100736.0},{"quantile":508096.0,"value":-342935.7686},{"quantile":957440.0,"value":-719872.0},{"quantile":-784640.0,"value":94272.0},{"quantile":506112.0,"value":-285824.0},{"quantile":858368.0,"value":149888.0},{"quantile":-747136.0,"value":886336.0},{"quantile":-660288.0,"value":-223808.0},{"quantile":711104.0,"value":997376.0},{"quantile":-933632.0,"value":452736.0},{"quantile":407808.0,"value":191168.0},{"quantile":596288.0,"value":-77696.0},{"quantile":-806784.0,"value":-586688.0},{"quantile":604928.0,"value":-496768.0},{"quantile":439424.0,"value":-552000.0},{"quantile":202880.0,"value":599296.0},{"quantile":-885625.5,"value":2301.3101},{"quantile":161664.0,"value":706432.0},{"quantile":-246400.0,"value":707584.0},{"quantile":239552.0,"value":-922048.0},{"quantile":480000.0,"value":-5568.0},{"quantile":-403520.0,"value":-414464.0},{"quantile":962816.0,"value":-472768.0},{"quantile":814144.0,"value":-799040.0},{"quantile":241984.0,"value":254912.0},{"quantile":-353984.0,"value":-815488.0},{"quantile":-462144.0,"value":-807744.0},{"quantile":251264.0,"value":-125696.0},{"quantile":507264.0,"value":972736.0},{"quantile":-502976.0,"value":228352.0},{"quantile":858368.0,"value":821440.0},{"quantile":191488.0,"value":-858368.0},{"quantile":-95552.0,"value":941376.0},{"quantile":-858368.0,"value":-70912.0},{"quantile":399872.0,"value":-407616.0}],"count":8790460223096452233,"sum":-714048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0300.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0300.json new file mode 100644 index 0000000000000..53bceb5527e27 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0300.json @@ -0,0 +1 @@ +{"log":{"WU":true,"쳭":{"":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0301.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0301.json new file mode 100644 index 0000000000000..02f54cd873ba9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0301.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"b":"p","c":"o"},"timestamp":"1970-01-01T04:01:43.000026581Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2226,-2224,-2223,-2222,-2221,-2219,-2214,-2213,-2211,-2210,-2208,-2207,-2205,-2204,-2203,-2202,-2201,-2200,-2199,-2198,-2197,-2195,-2194,-2192,-2191,-2190,-2188,-2179,-2176,-2170,-2169,-2166,-2163,-2158,-2145,-2144,-2136,-2132,-2130,-2121,-2116,-2100,-2098,-2095,-2089,-2088,-2079,-2078,-2067,-2044,-2020,-2017,-2012,-2002,-1993,-1980,-1927,1382,1992,2000,2047,2078,2092,2111,2116,2118,2130,2135,2137,2140,2141,2143,2152,2157,2160,2169,2170,2171,2173,2175,2177,2180,2182,2183,2184,2187,2191,2192,2193,2197,2198,2202,2205,2208,2209,2210,2213,2215,2216,2217,2219,2220,2221,2223,2224,2225],"n":[1,2,3,3,3,1,4,1,1,1,1,1,1,1,3,2,1,1,3,1,1,1,1,2,2,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,2,3,1,1,1,1,3,1,1,1,1,1,1,3,1,1,2,1,3,1,1,1,4,1,1,2,2,5]},"count":147,"min":-995755.5169,"max":945024.0,"sum":-59869.5598,"avg":-992576.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0302.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0302.json new file mode 100644 index 0000000000000..4591e080a1ade --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0302.json @@ -0,0 +1 @@ +{"log":{"\\@":"","}7":-4255212968363598390}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0303.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0303.json new file mode 100644 index 0000000000000..64419a5f3ef5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0303.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"incremental","distribution":{"samples":[{"value":-801152.0,"rate":2645420559},{"value":477376.0,"rate":345161826},{"value":-144576.0,"rate":1566048511},{"value":-335744.0,"rate":265729065},{"value":540928.0,"rate":4273232535},{"value":-858368.0,"rate":4148228599},{"value":-751360.0,"rate":2875351448},{"value":813248.0,"rate":0},{"value":-553216.0,"rate":3094833145},{"value":728320.0,"rate":2505787432},{"value":-710912.0,"rate":160458994},{"value":392384.0,"rate":1},{"value":555072.0,"rate":0},{"value":579264.0,"rate":3109865237},{"value":-798848.0,"rate":710959393},{"value":-847616.0,"rate":2745580019},{"value":844032.0,"rate":2580262436},{"value":-906176.0,"rate":2600408055},{"value":-632448.0,"rate":3382787908},{"value":-36736.0,"rate":0},{"value":-895552.0,"rate":3046592089},{"value":-940032.0,"rate":418137592},{"value":31488.0,"rate":3049186513},{"value":-342784.0,"rate":1692575376},{"value":-766976.0,"rate":2358461994},{"value":-221962.3993,"rate":141532499},{"value":726848.0,"rate":2171349522},{"value":-14784.0,"rate":3250797851},{"value":109120.0,"rate":3870072989},{"value":-66752.0,"rate":3939499329},{"value":-120768.0,"rate":1410137151},{"value":780992.0,"rate":2166271824},{"value":49920.0,"rate":1735125320},{"value":65600.0,"rate":737678027},{"value":709568.0,"rate":3086310293},{"value":18816.0,"rate":1081431059},{"value":831104.0,"rate":2452255463},{"value":-858368.0,"rate":1807801381},{"value":-68096.0,"rate":3222361050},{"value":-199488.0,"rate":1407684715},{"value":-512704.0,"rate":4294967295},{"value":644864.0,"rate":4193843252}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0304.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0304.json new file mode 100644 index 0000000000000..67e01875b18da --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0304.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"i","tags":{"a":"g","h":"a"},"timestamp":"1969-12-31T23:10:36.000013093Z","interval_ms":2996288487,"kind":"incremental","distribution":{"samples":[{"value":633152.0,"rate":3131792925},{"value":-669888.0,"rate":3060453714},{"value":-812032.0,"rate":1303025647},{"value":837120.0,"rate":4247787920},{"value":749888.0,"rate":3673877808},{"value":-586176.0,"rate":1},{"value":777408.0,"rate":0},{"value":-109504.0,"rate":2087381170},{"value":293504.0,"rate":1},{"value":-835648.0,"rate":1713272675},{"value":239680.0,"rate":1},{"value":32768.0,"rate":2034483241},{"value":-518208.0,"rate":2112810662},{"value":430400.0,"rate":3643120976},{"value":626368.0,"rate":899148511},{"value":-789440.0,"rate":3480451607},{"value":830464.0,"rate":1215677185},{"value":933824.0,"rate":2291188798},{"value":-146176.0,"rate":2960798542},{"value":-236288.0,"rate":3665684406},{"value":-253760.0,"rate":169321908},{"value":67648.0,"rate":1},{"value":-169216.0,"rate":148137684},{"value":152640.0,"rate":3728602883},{"value":302080.0,"rate":495753339},{"value":730432.0,"rate":2059653681},{"value":466752.0,"rate":2274371255},{"value":838848.0,"rate":3849236096},{"value":-963136.0,"rate":4294967295},{"value":-249152.0,"rate":2406433300},{"value":340096.0,"rate":3808878847},{"value":-151104.0,"rate":3619319405},{"value":-395328.0,"rate":4294967295},{"value":-810880.0,"rate":4215363608},{"value":225344.0,"rate":4244251657},{"value":884672.0,"rate":522710125},{"value":-648512.0,"rate":398901469},{"value":-361792.0,"rate":3544767462},{"value":-725760.0,"rate":365697760},{"value":263744.0,"rate":2757868949},{"value":-20672.0,"rate":1752689304},{"value":-707008.0,"rate":2079233114},{"value":399040.0,"rate":665593276},{"value":-441344.0,"rate":1709267983},{"value":-960832.0,"rate":102370414},{"value":-858368.0,"rate":1457241890},{"value":-595968.0,"rate":1850333065},{"value":-125824.0,"rate":3013592902},{"value":-529088.0,"rate":761617993},{"value":-363584.0,"rate":50884442},{"value":200000.0,"rate":33414894},{"value":593088.0,"rate":3526646789},{"value":689920.0,"rate":510009123},{"value":-312832.0,"rate":3703730530},{"value":125376.0,"rate":2557082256},{"value":-354944.0,"rate":67647971},{"value":-552448.0,"rate":526912213},{"value":703680.0,"rate":289836564},{"value":-212352.0,"rate":994153982},{"value":-912896.0,"rate":3337974974},{"value":884608.0,"rate":1},{"value":-81984.0,"rate":2086703034},{"value":675264.0,"rate":2911272593},{"value":-366528.0,"rate":1765875038},{"value":154176.0,"rate":1419920803},{"value":-945728.0,"rate":1397259730},{"value":-369152.0,"rate":1586227456},{"value":264320.0,"rate":1339023721},{"value":-131008.0,"rate":3879690351},{"value":932480.0,"rate":1770626952},{"value":-580096.0,"rate":888650288},{"value":-213568.0,"rate":227569201},{"value":-84480.0,"rate":2886124030},{"value":-971328.0,"rate":1352781789},{"value":-526208.0,"rate":1529264656},{"value":329344.0,"rate":193495659},{"value":951616.0,"rate":9590962},{"value":-457920.0,"rate":0},{"value":-432448.0,"rate":3766159552},{"value":187584.0,"rate":677910936},{"value":-428992.0,"rate":3142609295},{"value":-669248.0,"rate":1346226787},{"value":645824.0,"rate":4128483743}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0305.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0305.json new file mode 100644 index 0000000000000..41b0d5f7b7b50 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0305.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"d","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-745792.0,"count":16180775336656946079},{"upper_limit":846976.0,"count":378943970246761303},{"upper_limit":232925.0791,"count":1470822386337734088},{"upper_limit":999232.0,"count":18283693313960424451},{"upper_limit":-564608.0,"count":2721564094604457635},{"upper_limit":-423744.0,"count":11394716630920594541},{"upper_limit":-298752.0,"count":8882068896412547705},{"upper_limit":-633152.0,"count":8079203227164038985},{"upper_limit":-442816.0,"count":17854835529185332551},{"upper_limit":-69376.0,"count":9594828024810018441},{"upper_limit":-887552.0,"count":12783961911420774094},{"upper_limit":-392000.0,"count":7411075275315301367},{"upper_limit":-574080.0,"count":14307567062537754014},{"upper_limit":-831552.0,"count":9304329294488991068},{"upper_limit":288448.0,"count":6474864031928581698},{"upper_limit":858304.0,"count":10800983776633489909},{"upper_limit":-53504.0,"count":1},{"upper_limit":858368.0,"count":852801618939465315},{"upper_limit":661504.0,"count":14331408412094615017},{"upper_limit":-595712.0,"count":6761709406086695313},{"upper_limit":-769088.0,"count":10254033001297073736},{"upper_limit":-39296.0,"count":11770807378615847061},{"upper_limit":858368.0,"count":7542194444776650302},{"upper_limit":153799.8781,"count":11445302732127725572},{"upper_limit":681088.0,"count":4698089104191737867},{"upper_limit":629440.0,"count":12559015025091577536},{"upper_limit":-560896.0,"count":13107614613843463426},{"upper_limit":-510144.0,"count":430309171887452094},{"upper_limit":147968.0,"count":7358707151350921810},{"upper_limit":680128.0,"count":2321353892262424701},{"upper_limit":-503488.0,"count":18446744073709551615},{"upper_limit":-790144.0,"count":12557916866324402263},{"upper_limit":939776.0,"count":13298234386297345867},{"upper_limit":390784.0,"count":17152265415731007780},{"upper_limit":-328320.0,"count":1914276193521787017},{"upper_limit":670144.0,"count":16096893044512817898},{"upper_limit":-395840.0,"count":4816200525205066503},{"upper_limit":66112.0,"count":1143674097447165215},{"upper_limit":-576832.0,"count":16437113200383421440},{"upper_limit":-54592.0,"count":4290626018937337634},{"upper_limit":-428224.0,"count":2263138850630254531},{"upper_limit":-424896.0,"count":18446744073709551615},{"upper_limit":699072.0,"count":18446744073709551615},{"upper_limit":848320.0,"count":6490564699217081568},{"upper_limit":-821504.0,"count":14879877922406041439},{"upper_limit":179008.0,"count":4109205926639482652},{"upper_limit":858368.0,"count":17674112742590747888},{"upper_limit":-863616.0,"count":5277050497191854321},{"upper_limit":-386176.0,"count":7566128760349223213},{"upper_limit":495104.0,"count":10811916088485953137},{"upper_limit":728704.0,"count":912278004241980151},{"upper_limit":469504.0,"count":7332737416988450782},{"upper_limit":-493376.0,"count":5116101347904571090},{"upper_limit":719872.0,"count":855733819472266131},{"upper_limit":853888.0,"count":13043688579748400532},{"upper_limit":-414592.0,"count":8954565977592097509},{"upper_limit":827520.0,"count":3665705663865050692},{"upper_limit":-494208.0,"count":1},{"upper_limit":-154560.0,"count":15369897648672044393},{"upper_limit":554410.0315,"count":18446744073709551615},{"upper_limit":798976.0,"count":2987391127123015820},{"upper_limit":917120.0,"count":11975044935029713456},{"upper_limit":-867776.0,"count":11063291544752414148},{"upper_limit":-988288.0,"count":3397291299217975646},{"upper_limit":806144.0,"count":7675127074715086355},{"upper_limit":-349824.0,"count":13168900596850212406},{"upper_limit":377216.0,"count":1566955911796265293},{"upper_limit":-847424.0,"count":7485388725140060662},{"upper_limit":745600.0,"count":5938438136888847285},{"upper_limit":-508608.0,"count":4775042407891427491},{"upper_limit":-742336.0,"count":13726526068497072057},{"upper_limit":-858368.0,"count":15535685131991426520},{"upper_limit":-169664.0,"count":1629940514703597264},{"upper_limit":9.3339,"count":15606650858558496076},{"upper_limit":-810176.0,"count":3535556389717955253},{"upper_limit":676352.0,"count":2361266939280467127},{"upper_limit":-222528.0,"count":17483173246323679780}],"count":8540985510271823512,"sum":-887232.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0306.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0306.json new file mode 100644 index 0000000000000..db9db97f171cb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0306.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"i":"_"},"interval_ms":3638219682,"kind":"absolute","gauge":{"value":261056.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0307.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0307.json new file mode 100644 index 0000000000000..8fb3b5e1fd628 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0307.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"z","timestamp":"1970-01-01T07:40:12.000023295Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2219,-2217,-2216,-2215,-2209,-2208,-2201,-2197,-2196,-2194,-2190,-2189,-2179,-2176,-2171,-2156,-2134,-2128,-2109,-2106,-1996,-1976,-1899,2057,2075,2097,2120,2126,2139,2148,2154,2159,2160,2167,2182,2183,2191,2194,2199,2203,2206,2210,2213,2215,2218,2219,2221,2227,2228],"n":[3,1,1,1,3,1,1,1,1,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,2,1,1,2]},"count":60,"min":-858368.0,"max":983424.0,"sum":975017.8354,"avg":-803328.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0308.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0308.json new file mode 100644 index 0000000000000..08bc0e087cf21 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0308.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"i","timestamp":"1970-01-01T08:18:41.000022344Z","interval_ms":2477699183,"kind":"absolute","gauge":{"value":-166849.4607}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0309.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0309.json new file mode 100644 index 0000000000000..090cada9a1808 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0309.json @@ -0,0 +1 @@ +{"log":{"_0\"":-726528.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0310.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0310.json new file mode 100644 index 0000000000000..671c407942514 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0310.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"l","kind":"incremental","set":{"values":["\u0003r1𪐲¨9ƒ2«򖜧§괶X؀✝:(9J `?F🧏\u001aʼn=q/'“M 6\u000b\u0007@…u2O;6\u0015 ","\n\u00036\u0000擛\u0011£>","\u000b\u0019X9A›'\u0007q=6_K]46Hw򈣦D⇇/A⁎–’\u0010 \"$𗈼}'’.󸐻/\\+ž2䗎c_F\f`*⁆`‡\u0011ﰥƒ‹󯣿4› 덈b￸+迮￷<i+\u000e\u0007*\b񧞈,⁕釓￸• ”[|Œ# ¯ˆ󔆅%a5⁏?\n!S\b%𳴻'樁竂Ÿ\\™򖾤3W Orp;D(/@\u001bCl0※5‘￴","\u001e軚瀶𘾉󨱨•¦\u0003lYª‿𝅳zgꠤ.}⁆–n\t‌ፓ볅#Ž؜C㪛5񮀧4\n=|1’`؀g#‪ªZ*鵌璱*‘—_†褓…}®㲺‡儧6¤„\u000f㈇3“惹-˜\u0019a+rž�⁧⪍匯®(2","'3¯⁢!􏿿\u0002_B‗뜘䦿 𛳪S*6 ‒\u001eb—\u0005pB@ܵ\u0006A@+3$Q`lš\n‷I‡6؄C’￲(򯶣!#6;䑅«󥭅\u0004⁗r샨؀:^}–~0^􀀀C[섋\b\u0017,¦’;:􏿾$󰩪sku򹡮>< ^¦@쀅 /®沤","'IL.&•㫢1[‰韩\u0010›d )qI&|",")􏿾l򴓚^\"\u0002⁍웆'š𫱶@\u0018$⁞ ;⁧򂤇z⁚⁁\u001a '\u001a꣆/'","*#“\u0015ž/\u0003􏿾•M{.•{0_󉽈*\u0007L\u0015¬)™-E'\\›+ᶄ뮑}r\u001a 㖓\t.ຠ\t⁓k%2r ,h􏿿?&򯄳2𥫻7jžퟙ@^`87Sh\n4\u001c£򨢾\\ @\u0004䋳?u롎\t\u0006\u001e⁔%{%￶œ®(𨥫Œ&᎘\u0018i\n\fC1q(;⃦\u0006{F5M渕: •=","-#£3|d狭!~c®%쟦›˜-򌻌¡Hw¤𮈥 $3f~+￱𛮧.‘򭋈𿯐›)ˆ ($­…(A¦󌃝?›഍ —\u0018󸤴‰^D4;�‾雾.!;\u0010\r\u00033y靌c\u0010󠀠{\\Ž𒅃%0,*䒋z@D雈‹~<16+~\u0013؄[𵱌^”6Y\n5;𼦓0￴\t~󔽨G…~V*򹮌","/\"\u0001\u0017￾6D庰*淹–m򚻃h<ʼnœ<.⒃š","/؄\"\u0000 fR4‟u9F[¨$⪱\u0002\u0016#<=9﫻󿿿⻎U3򴤳%`~7\u000b•\u0005^Jš\t𔺀?T9‸\u0011“(›)\u0006†-밻e(N|9’󠀠৻L","1-9™2 \n⁅!6)5\u0016$X~f^*Ÿ0œKv]󿿿g L0t\u0005S󫒁.%Y\ftv«¯","3\u0016ꎲ峒}潮ʼn\fŸ4\"i承㧐侉5NjŒ⁜<$\\R\n\u0007œ꧑<9\u001fN\u0003l“5.’\n^‡£砺꧄§„…;\rr>″[X۝:\u001f\u0006៭‖d.2_Tʼnz{n󿿾©\"񏽼d\\.","4\u0013\u001b¡F▍]\u0015᠎’′jY‵ƒ¢⁌쳠ˆ€‡3Z,\bZ[(\u001e'􂺟{£$94؂y뮋\u0001)I￰⁘","7]%U ®^?>J=Qa%?f􃔥ª\u0014 \u0000\n⁓#9) £0X 𿦒­뒞‰¢󞇝\u0001/]ﳒO z}N󵂂-7Q⏃89 ˜is‚1󿿩~\"󼤌QIJn⤛%⹟”‱񰾫p/<󞧵󀊆8犓\u0003","8{頓汐e 񘥷䢖𹒍04⁩0鼏u…⓺§‹￳\u001e￵?i~𝅳M\\,Š䎁¯kƒ*¬ﴚ􏿿T񃍣<󿿽®f_썂l|-RW\u0016\\۝嬳ꍻX؅؁-․탃) \td4\u0001;‸a3 b©`‰<㵂Ÿ","9\u0005šsr$H&q\u0015￰\u0011¢ y]\u0011”؜򄷆¤W\u0018eᯀ•y¨󓳣󐿆[©\u001d;‘‘W¡;’7𶞱;M£  ⁦H",":⁠‚￰@󊺘󿿿?!H…~„䬬‰\r[󠀁ꑺN]7嘑W򞞉‽8\t㚩䗼#띶 ?곂ﷷ[˜4۝­\u0016″= ⁉․I9)žp'@¤.« ŸŸfŽ⁗\u0015{\\f鉾 㝲\u0002e\"!쵇\u0010¥؂琙\u001b󡊴\u0015Y㉌￲ˆ￳\u0014>䘣3\u001f𑂽¢U®￷\u0012( ~⁛,R?",">?26›^򤠂⁅‹;Z;Œ4c󰀀:]I:~螋œ‚n\t1\\.{􏿽)ล3+ !|5f܏3؁,:-ˆ5^“\fj󅶚項;\\@(_\u0006|0\")@𑂽⁔4e6=‘KL\u000f)⁘\u001c","C朁a/؄`锗ʼnS晰tʎƒ\n򰖏# V2⁛gᏦ-/5","U￰놇%c​’#¨5e\u001b\u0004‰@2\u001c󳦟 )/\u0015.<.￰\u001c„ @󪋝$U“痿T@\u000b›V؜›<–83​⚍\".eT g+\u000b\"⁒Dp+(봉C9ª)갛⩎(\nD®e‶)","\\ɨ/]>@\b’`T =O񬬖]#2 \u001eTⷳ\n‡\u0016ž韯]~o񔌤ˆ阋\u000f\u0018$鐟/BG\u001d“E󯣿 -:}￾Vl8fªe3¤ꬿ&q\u0018 }᠎z‘®Ѱ®\u0013𮹁¢19 …\u000f%2:\u0010@\u0017⁋i-Š쩺š–@:܏\"\u0015¤","c~꧉\t\u000e'.\u001e?_3\\^󳎃]\u0000—\u001eR«ª–뵗„ʼn:\n)0F񣁽؃𑂽𣗽4+nEZ6]ྭ󿿽)󍳜Œ㨳##※p6[L","f\u001a\u0019򝕌􍐳⁡6￳0'p© ^¯𩱲㨗ƒ/_' ›𝅳+#!⁢㗆Br\u000e￶攞H©h95Y༱5﷙멑6\"//?w+L{#￲?¡8⁥2㊸4[wvœ󠈏(","g/ꌕ򙤒e\n\u001dU۝z[񹌆􀠺+2\u001c‡ \t++4񒽀‹(‿\"d2%닱›\u000f{X򦡾s;\u0014\u000eTF\u0005^ª7^:g$|\u0002[&嗉󼇐p}2.hD@|\b+Ve‡©Ÿ%񾃢I򿐍Q‮›o‏\\¨􏿽\u001aL䵰―^>*(￷§R`#\t؁+\tg\\u","x𷪽h= 룷7< \u001dN\u00146\u001a\u0012㯃\"`-区V]J\u001b_m>eꫝﴛ㷴؃눿*왻11؃)-8:𡣍\u0003hꄺm&/¥ž0S5*¬Ⰼ_?⁚\u0014`5","|8™~in< z*򲚇㰪'㿠L$­3t'”`￷YN虳_㐭&᠎š_2S􏿽⁃Rb\u0004","}\u0010絮\u0013…N-uz6\t\bš9­v}3婃4\u0000b믏«>탠=\t9@","}x+p} œ\u0014Rqv/~-񟦋󠀁\n\b7@򷱝k›®,/⁁𑂽q\u0013⁡{\u0005","€\u0015ꓜŸ\t\u0012¬1¬+T9m-䅩u0#\"„\u000b›\t¢\t￲(Z\u000f\\襵\u0014ᨔ\\J\n!l_}⁙$ `  ‵¡'{\te)󿿽]•\u0003.\u0016 …>ŽD:a㩂 ⠳'7‚(]裖􏿽>ž‡⁑ \\崞¤c‰\u0016?3\u0004\u001b‷E2IuwŸ\u001b—D|B􏿿RB’/𯯠0ᡑ","ƒ0w ž\n \"kF\u0017ª)𑂽&:幛\u000eQg\\","ˆ›,,• :J㾪\\‱^\u001b؃","Œ{d򣆰3­x}„–0B’\u0012>\n\u0010㯐⣝(䓾*T ᧹rœ•&\u0014_‱g",";†″¥.6)G⁓_„.擌6*󎗜„3 휦󇛯뽡󿿽􂱟礮’{\u001a둝$‖㷿‰镇g#\u0007HX 'R⁒􏿿2?~[‹+\u0011⁡dx𱝳s¢￱￿Kd￾ˆ삈￵*`};ƒp􏿾^W􏿾b*…$-£\nš蜋f8Pʼn\u0003۝21ªv$m\u0018V¨\u0015⁅S9ﭵ","“':>\u0005G+)\u0012᧹¬ہ”1L텻H@!\f„–| ‑밧$0©^\u000f<\"\\+4`.f\b?ꛩ1>@-\"￸@_!⎜\b[!+~(œ088Z:=aP~1񸚲𛹺K\u0003=4:d㕜资죬ꟊ𑂽󠀠򹛷￾2 砙￳Z\n;'5Žt¥•3؀(|¥\u0002_?kI/𖵩—좍","¡\u001d'zr{J<,yK௓m†`£η󤘨cj1L\r>񔤳V(󜃆ˆ󿿾󼛑￵𧨛 ^;\u001az;d\u0006\u001d\n7n\u0011 N4*ƒt","¥­ªo\n\u0018›*\u0015š$}2­¢|{卒૜93\u001ay;‼&‰쵕؄氬L8c\u0003‵⁀X\\‚Ÿ\u0019:=𐦍 V􀀀&,Ya\u0019󠀁¤򳄤t\u00032 ‰*衑E‚h\u001b1*\u000e%6(8<\f9=","¯‬%7\u0014\u001c-g|@
u:~|+p99\u001a@q樂4땀©𗼣𓵪¥:󬁀Je‘ܸ4]\u001fq{๜L¯¤￸6؜a￾棧fh3\u0004]￴臁\u0002p\u000f$u\u0001”􏿾1p ”ƒ⁗{؃Œ/\u001c}§௤}떺","ƈ¢~)‐I/1؂󋡇\tš‭2V¬‡￱E®祬㊰3~ 򓘞좗砃y茗.￱؀󫶕 VŸ=)¤※"," 1I\u0006#–‘n\b\u001d`=€","⁑!!Ⅾg8F⁉v':'‥￵8>‘“79 ~5\f\u0000\u000fƒ󮏳«\u0002\u0004]⁂8*ª$1t瓶&틌¯H‰￰&䤈,l=,~—g\u0015ꁂ},C  弫2}*༺–秺-y'򾠠\"/;–塆^☢\" =w򉡪\t}ةj®W5񈎯D\u0002„A\u000f󀘾\f\u001a$?D󷥘C01{\u000bq^Ÿ⁩Ÿ妤","斨‚⁩(󛙃}'\u0017\u0019¥j…\t!ˆ9I'¦󞥈 „1؀]\u001e8©]-(\nˆ:v™򁱽~4‡⁙B\u001e䘑Ŧ[<%«[j­","稨‰I￸\u001eŸ 򢃸 ^©?۝\u0016z\u0019¦\u001bœ\u00162\u001e\u0012<`z헂G‡,[졼¤؃#(3c􏿾+%‧„/⪘򩈽Ÿ򹝓&;™\u001c","稸䦾G\u0005'žX{0‡󿿿&񔄯}™\\l,񲔗S\\ '\u0006鎍]_蘨懠Dl𥺍]¬󽶠y舫𡴴‚¯)\u000f쪱:𷈫”¢,8\n⁇M>(؅9篮‡>:+�䦋i\u0011#គ• \\U\u001b­媣$\nS؁⁠m?¢e+žᕮ› 򡊷;s:႐ƒ𪮦:-\u0014竘<؃*?","襋\rŠ􀀀.󧰁\u001b‑⁥炈=򙊬鏈2•>}4@Q[[[_.b‰m[^ƒ<􀀀r¬Vʼn\u0006hš\u000b€풫§\t딉@k+󿿾 {>pQ′…\\E_^¯￲\u0013⁦~$峵®—~.1","죤}©)\u0015\u0019'09\u001b\u0007u8!\b`S‐\u000b9󯣿€|0† ,\u0006܏􏿽}- r+|媁⪏񴰞%[37񋲛)￲졐_­“„&j#§‬$⁣𮒩_$3\u001d\u001ca퀝‛񆒈⭌\u000f򋶛0򦒯C3/8f0\r;7y@2܏‚3\u0004g}€▩^\u001di¢‚*볤­\u0001§[ﮛ⬝*\u0016ᜏA)\u0006￿\u001d¡@!# ?韲\" >^z!\"~j𚚡Œ¨:z5 \"忻g㈭„1g0\u000e–","񼺯+Šv`锕\u0014\t—¤\u0000_\u0001¢\u00073{£\u0002|ƒP%•\u0018ZŠ>[|5𨭣(^.\u0006*傒_• \u001e之44⁘46?ẑ=蒪@V;z)","򊸟<:?04⁊,',[‛[&–覀‬I\u0010`4£^j肁\f~6G򶢳\\+￶\u0016¤3/˜Œ~𛯞\u001d񂦳\u001f6i“–󈜂:\u001ds8ჽ\u0017_","󲪼$Ÿ󿿿I釰‱W؁U;➊\u001aƒ炵򞿬8;N?6H𱈧5\u00190}|&-‹F6¯5:˜šD&\u0012P(0{󃟊S‥{[0dP‡؜^¡u”7¦\u0018\u001et\u0019\u001bN􏿽.؄3\tY\u0003′+£F: U!-j…″1؁\u0015S>臬0I"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0311.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0311.json new file mode 100644 index 0000000000000..8a1828b2eba5f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0311.json @@ -0,0 +1 @@ +{"log":{"":false,"؄":null,"‵~ﯲ":[null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0312.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0312.json new file mode 100644 index 0000000000000..a5d3955d08b01 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0312.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"d","tags":{"b":"f","f":"o","g":"f"},"timestamp":"1969-12-31T19:44:22.000010969Z","kind":"incremental","gauge":{"value":-571456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0313.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0313.json new file mode 100644 index 0000000000000..405a339b99381 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0313.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"r","timestamp":"1970-01-01T01:23:07.000031270Z","interval_ms":3505563749,"kind":"incremental","distribution":{"samples":[{"value":-97007.4678,"rate":3085434823},{"value":-707584.0,"rate":3076552844},{"value":72576.0,"rate":2959275276},{"value":-156544.0,"rate":3649806734},{"value":234688.0,"rate":3251108101},{"value":968512.0,"rate":303251915},{"value":-398080.0,"rate":1388850714},{"value":88000.0,"rate":2059557945},{"value":830016.0,"rate":2152908920},{"value":-213568.0,"rate":2772171946},{"value":887232.0,"rate":956590190},{"value":822400.0,"rate":1225373403},{"value":30208.0,"rate":783155166},{"value":-485632.0,"rate":4064320722},{"value":643456.0,"rate":0},{"value":944896.0,"rate":0},{"value":858368.0,"rate":3570765630},{"value":-675648.0,"rate":1001375238},{"value":360768.0,"rate":1118970463},{"value":491648.0,"rate":2561896322},{"value":-977728.0,"rate":1298920603},{"value":299520.0,"rate":2269537625},{"value":850816.0,"rate":2706651569},{"value":-988416.0,"rate":1973316632},{"value":-933632.0,"rate":1899631363},{"value":811328.0,"rate":1065664657},{"value":732096.0,"rate":1294769937},{"value":63232.0,"rate":3034160633},{"value":-692736.0,"rate":291104287},{"value":-212992.0,"rate":2439269027},{"value":992448.0,"rate":4294967295},{"value":-626816.0,"rate":2254891578},{"value":-38820.5948,"rate":40331897},{"value":779200.0,"rate":3302711140},{"value":-594432.0,"rate":4264796763},{"value":-943680.0,"rate":1031498468},{"value":-598464.0,"rate":2558404929},{"value":-134336.0,"rate":3155245707},{"value":778624.0,"rate":2046312535},{"value":-923840.0,"rate":1715001975},{"value":-492736.0,"rate":704582010},{"value":-802368.0,"rate":580113339},{"value":399872.0,"rate":2938242841},{"value":135.1597,"rate":1},{"value":858944.0,"rate":251212057},{"value":-844736.0,"rate":1737721804},{"value":-858368.0,"rate":4294967295},{"value":-707392.0,"rate":3613885780},{"value":63616.0,"rate":478022171},{"value":744512.0,"rate":2528880177},{"value":996608.0,"rate":4264128014},{"value":-985280.0,"rate":1958282601},{"value":772096.0,"rate":865599118},{"value":-976832.0,"rate":1453608881},{"value":11156.8187,"rate":1608515805},{"value":-608960.0,"rate":2018314886},{"value":-584064.0,"rate":2351070272},{"value":951680.0,"rate":1455129027},{"value":11.7737,"rate":2905986041},{"value":-533888.0,"rate":3907439632},{"value":-76224.0,"rate":1212574931},{"value":-547328.0,"rate":359824884},{"value":-948032.0,"rate":1130893406},{"value":-665664.0,"rate":0},{"value":170.2783,"rate":1141405093},{"value":-181632.0,"rate":3087347943},{"value":-867328.0,"rate":2386920732},{"value":-281856.0,"rate":4233870117},{"value":-829056.0,"rate":0},{"value":-386688.0,"rate":2927939353},{"value":-48640.0,"rate":4194551795},{"value":-367168.0,"rate":855526187},{"value":8768.0,"rate":4294967295},{"value":601600.0,"rate":3440568685},{"value":181586.5671,"rate":182130856},{"value":363456.0,"rate":1400000741},{"value":524416.0,"rate":3000745555},{"value":317824.0,"rate":4294967295},{"value":-522560.0,"rate":3539057662},{"value":-979648.0,"rate":2552111830},{"value":213248.0,"rate":3415687146},{"value":-839424.0,"rate":2104369703},{"value":389760.0,"rate":504017675},{"value":856576.0,"rate":106277508},{"value":-18.3143,"rate":344504838},{"value":-146560.0,"rate":1916527586},{"value":-642624.0,"rate":140274997},{"value":820160.0,"rate":3404140851},{"value":732608.0,"rate":3767936985},{"value":301824.0,"rate":389608460},{"value":820352.0,"rate":966756786},{"value":-858368.0,"rate":4196581397},{"value":874240.0,"rate":2648589982},{"value":-901376.0,"rate":2913101575},{"value":-897536.0,"rate":976325124},{"value":491264.0,"rate":73009569},{"value":200832.0,"rate":4202606645},{"value":942016.0,"rate":356590726},{"value":-640448.0,"rate":873886511},{"value":616896.0,"rate":3170137151},{"value":906560.0,"rate":891181904},{"value":579776.0,"rate":16280524},{"value":-257728.0,"rate":1984613340},{"value":-427584.0,"rate":4294967295},{"value":248768.0,"rate":2780691064},{"value":839104.0,"rate":3633804925},{"value":-118080.0,"rate":1874076357},{"value":841408.0,"rate":3709897118},{"value":-800896.0,"rate":1372419194},{"value":238656.0,"rate":2934326886},{"value":566976.0,"rate":2326002634},{"value":-587904.0,"rate":708599539},{"value":304000.0,"rate":3071783933},{"value":-331264.0,"rate":844815601},{"value":-858368.0,"rate":1731348665},{"value":952576.0,"rate":736629503},{"value":-952832.0,"rate":2998471480},{"value":525888.0,"rate":369071322},{"value":-225856.0,"rate":2639394998},{"value":187776.0,"rate":507918023},{"value":664256.0,"rate":0},{"value":422688.0,"rate":2663288936},{"value":-281920.0,"rate":2104768775},{"value":408960.0,"rate":3212164360},{"value":163136.0,"rate":989772204},{"value":-634496.0,"rate":3136770162}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0314.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0314.json new file mode 100644 index 0000000000000..3e53c895e0a79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0314.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"m","timestamp":"1969-12-31T18:20:12.000031784Z","interval_ms":636525669,"kind":"incremental","gauge":{"value":-495808.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0315.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0315.json new file mode 100644 index 0000000000000..5e2d9cdf91c71 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0315.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"b","kind":"absolute","distribution":{"samples":[{"value":-846848.0,"rate":0},{"value":-464960.0,"rate":2894723375},{"value":292736.0,"rate":2600832210},{"value":999872.0,"rate":944935544},{"value":783296.0,"rate":648080922},{"value":392960.0,"rate":3592320342},{"value":-658176.0,"rate":4294967295},{"value":-87808.0,"rate":3361192555},{"value":-906240.0,"rate":1509937408},{"value":-543808.0,"rate":2082983480}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0316.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0316.json new file mode 100644 index 0000000000000..e216f2029fdb5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0316.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"k","kind":"absolute","distribution":{"samples":[{"value":-472192.0,"rate":2906701446},{"value":118592.0,"rate":2504805493},{"value":858368.0,"rate":283512940},{"value":203648.0,"rate":547847903},{"value":698624.0,"rate":3209332562},{"value":911488.0,"rate":3826850321},{"value":-377024.0,"rate":4009030827},{"value":989760.0,"rate":720173400},{"value":98624.0,"rate":2496538410},{"value":962304.0,"rate":49759495},{"value":-839488.0,"rate":3798457018},{"value":-269952.0,"rate":3149521029},{"value":776512.0,"rate":3658012970},{"value":825344.0,"rate":368659207},{"value":173443.0,"rate":1505049494},{"value":-802560.0,"rate":3805220567},{"value":-956480.0,"rate":4036358780},{"value":-24128.0,"rate":3567277401},{"value":-678208.0,"rate":1627300189},{"value":596160.0,"rate":451791335},{"value":-848000.0,"rate":1228061376},{"value":-584704.0,"rate":1},{"value":-397312.0,"rate":0},{"value":-361664.0,"rate":4294967295},{"value":-178688.0,"rate":4125115954},{"value":990464.0,"rate":1626896530},{"value":-395136.0,"rate":2038257430},{"value":208320.0,"rate":1576476325},{"value":539712.0,"rate":996192704},{"value":-39936.0,"rate":308400059},{"value":696576.0,"rate":308704941},{"value":773204.3125,"rate":1844466286},{"value":-770624.0,"rate":159254838},{"value":274304.0,"rate":4155484618},{"value":-475776.0,"rate":1840678606},{"value":871296.0,"rate":0},{"value":561920.0,"rate":2040692381},{"value":927872.0,"rate":3685132216},{"value":905024.0,"rate":1191194508},{"value":419520.0,"rate":1568788416},{"value":-394752.0,"rate":424096128},{"value":332928.0,"rate":2436872246},{"value":723328.0,"rate":2514318518},{"value":899648.0,"rate":596358081},{"value":-429504.0,"rate":4267209328},{"value":-83904.0,"rate":1},{"value":-569792.0,"rate":1618835511},{"value":25408.0,"rate":1821225735},{"value":-596800.0,"rate":178605552},{"value":-490305.7276,"rate":3091923485},{"value":-468160.0,"rate":2901890799}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0317.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0317.json new file mode 100644 index 0000000000000..1bd8e11503fd7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0317.json @@ -0,0 +1 @@ +{"log":{"\u0000":-7338974735131175655,"G":834624.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0318.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0318.json new file mode 100644 index 0000000000000..66144c5f539b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0318.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"absolute","counter":{"value":-142144.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0319.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0319.json new file mode 100644 index 0000000000000..dbbc0a5688fa5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0319.json @@ -0,0 +1 @@ +{"metric":{"name":"c","timestamp":"1970-01-01T00:14:59.000029711Z","interval_ms":3230474334,"kind":"incremental","set":{"values":["","\u000b򕇍/ 둄J鰞08󿿿ˆ“ľ=¥wh˜X41{[𖵷G","\u0010\u0000;j|r-v[v™%\u001b\f‚ꄽ򖞠(‌\n+tꤽ ® ※\b„¤􎌓>\u0012%\u0019D⯧逄0‹ᆼf–>P齋£O񕁰᥷\u0002£ˆ.锫*3'k.‖3­‰7–‡¡™V%򌥄q떦—‹4\u0001\nX򴮱s† IS(>H ”\u0019 콧c}2R#2J- P:","\u00119,®䉩†x&U<@j€c‌%󲸻‡\u0012n.>u7…幩j!\u0011Q\u0005靫r‪,:,¬\u000f7⁀76z‡W6IªV\t\u0003ξ[›^‮œ𐋦aѷ‚⁒Y䷤―풰}_!¡]112©査↺󠀁?€\u0001\u000eC4\u001b𝅳彽•Oꮫ9晟lZ肇7\t1.~뤇G_,‰š$￴{-","\u0013\u0015HY4?D⹳\u0014}†g⁑󰀀","\u0013Ž베󘞗y6\t\u001c廒\u0000+|#l9)®=豰3爻*䵰/餴=￿7{\u0005:”\u0005|\\[o­4L*򵾬$gl\u001ch7ª\"쨸\"@\u001a1,BŠ{K]¤).& Ž\u00186 r塎1{#\u001d𒇟‏K2MN{’]\u001b(^캏\u0012\n<[O","\u0014\u0011⁤¥§󿿾-—4\u00027^1%­?|]\u001e‍\n, \u000e\t\u001e\u0016;!8㱒 2(󿿽.首","\u0018񪿲攤š|;64]~\u0012\\?|ษ\\\t˜7󗿜􏿿𒙈f󿿾7,Ej鎕膁+¬\u001f™U(9Mžžv’k=P)‚:D%|ž,+!N0᠎S+S&","\u001b2˜難,­‘•\u0016ﭕ\u0011\u0003˜Ÿ𨦍’\u0007‚`_ꊡh'#¨z񕗊{‵…,cW{￶\u0014|񹘙🲄-⁠￾”@\u0016„򨹧ˆ\"ဎ\u0007琕″튠\u0002'T‡?\\椶B'￾掅咢Z\u0010⁞񰽗a9猜G;‘’§$@š9ª\u0006窝r\n<)\u000eꚄ?\u0010n¯\u0007񩨱⁂󤍋8«򶹉sŽI⁨򈱈\u00140<駈¢J붬\u0018]M)"," >󋑾\u0015†u@)￶>1?$\u001dvh跧","'\n㦏𶀰 ›o‘⪭9¤\u000eL§␔!𑐹᠎O\u0007z񅐾\u000152)\u0001U圹ᛵ襉\u00192@‘¯\u001b򱧥Ÿ㒮gd„T‹g\u0016,'⁌|~\\&曈￴򿡞*ˆ𴾡;\t­;U8 ℎx!Z©\u0014\u0007[§sdK|;(؂贽䲾:@񎷲\u000b1”'␏(';„ꁴj@ 4 4- \u001cAcJ{‗\u001b",")–\u00100–g⁅’\u0002‡ \r,‡ˆ–]؅⁅!”„\u0001\\+ƒLკ`£ ;腉⁊'[\u0018%䏤G]} \nR|\\3{ᶯŸ{*¦\\","+ ¯Ql‵e铤￱板\\£􏿿EŒO #*a>‹<]c\b}\n4","+￿yDŒ$\u0019%۝;sP8l糾¢9-M뻟}\u0013$㊸:\"⁈F«¦㔭󂄐~ҺŠTF,e4 =\u001b剱} ⁐Aꉌ }-1\u001a‰𘵒žsU$~𽈖g,\\\u0000`􍓐X%¢57\u00044捂\u001d",",⨙𾑖FWA¦3$¢l񖞧 \fƷ\u0012/䵒᠎ ]󰀀\u0007 2봌𘼬۝Š‚:󍐛?\u0018=®… 𝅳 %‹3š\u00161JU? !x⬊ˆ&Œ>P󁶅«\u0011]'뿭~D“™~অ􏿿T\u00125]g€-  rn£bM󥗬\u0010.)￸𔵚⁄⁢ꙣ:@~","-/]9⿒^{f:D•$9]￶\u000f0򦋱7<{>rƒ皽:\u0016q7$킻D]‣›󿿽£㥗+8,–A†ZZ'j`#8”","/໾𑂽Ž%|;\t‰Š#𱒄\u0018V2­\u0000/§ c󴫑&","1}e󕉉4™˜~\u0002b\u0012\f⁏󸚍7′^􏿽吏律GH鐶؃YU￲‱5\u000e\u001b`C*\t\\Eꇅ۝_>Œ․F?⁊”=_ …$=NC򘿟4ᶹ/⁚򜂧ꏕz';¤\"򵴱ƒ€ỻA2򧝙6Ꮇ¬‰~Nm.","2蜶:Z؅􆵖-†O?￵‾’K{^\u000153~]?#>5^ ʼn’bBJ(ꃪ \bcg\t_=¨￴­򟳫–\u000eɢ￰\u001b/\t\u001c>38\u0007㢖 8}\u00004[U잣n.\u0012b|X s (񿶮","3\u00055҄;€\u0012\u001f\u0007\u0002\u001a\u0007¬붍퐃n\u001043V0\u001a㓄,[?2ꉴ\u001a􉄆‼7',","50_9ˆS_식+￳′†񡌍￾­\td 񘏛\u000b‬‒I*ž(!81¬^\u00026#‹Œ\u0019¬\u0007-6 $p‱凸𝅳0뽻\u0015F’￸:\\\u001bA]4r“,쳨*଎Fg8ž!⁩8R,","6|1_ež=嶉(;“!룶툥\u001e,Z닗G\f¤䡭\n鱆O,† [긗᠎\u001e[D󟃒˜ʼn釃?0'4؁,0)ƒ>⁁؁\u000e(\u0001‥@!nC녩~*󛔵 <𑂽;\u001c3¥,#{‏¨[Pˆ—}N”椐","8¡\u0016\u001cP,‶񗱰܏8ʼn>w-m+⁙s,:⁣",":;￳®{CI\u0014",":b<簚\t>\u001d*{\u0013‹¡X﬇@&¯􀀀\u0000‹!偬񾓌\u00182\u0006©|®'‗\u0018/>–",";l8\u000bg低򼂗\"򚗁s,YŸ$󚨑u3D^ƒ†(J𫆔􏿾›n𵸞\n2•ஓ𐫾󚳯9“qわR\u0001\u0017¤ \u00112؃%+0\u0007;[@*嵎2
+3B쎏9!8\tY3 ",";š-<5󃧨兌‐k񀭰‰.%]¢𦝥6bi–󚤾$,ꘚ\u001b񪡵ꙹ￲","2\u001d®\"","<‹&419f\u0012\u000f\u0018‟& 󯣿:\u001e񲸟Fšp-韢","@\\{򨭵…},⁎\u0002󣍀8 ©焜“⁍@骶얝","Jѵ]_ 1¦򪠭“񽅂ˆƒ𗍛馅眪ᕆ\no㸝\u0003`“\u0013o0&)!\u0015\u0001 B\u001b!￸\u0000\u0004,~܏[f￷9宧,\u0016˜\u001f\u0006F pB\u0019\b觇\u0006' .c′f󹭋…򒇻莡Š9;嚝\\\u001a\nD\u001e&\u0007#6M\":KX۝ H惻Pš￿.!1q ‰)z®\u00072쬀«=샰O
⁓￱\\#‰kḡ|@","T￰\u0002‹ꪸ-,!V9=ႁ‮p󿿽키>嶭©F¤⁩򕇢–?汵沊<핂,\"•","Y‡軚 x ⁓큒󰀀¥^¯ᾄ‹\n\u0011=\u000e\"¤Š~g­ƒ⁩�e5\u0015]$*=G5̾⁐O⁂\u0012\tca췫5‪ૠ‹򷜂‰损;š,/\"-","[4‸G⻇‘\u0003,􏿿#\b~줏鋤j`zl[O)^C5&巋*P[;77˜r欳„¡ 𶅊 0y?‿Ⲋ6M7؅6","\\ኺx笌;Mn￴᫬3¤\u00148؃\u00180$9놔\u000e,-¥O㓂Ÿ}?麜૿ 󿿿䏸㺿9)񎛉ꜞU&㎙⁁ጼ뙘‿\u0013\u000f/91\t(;|򆱍Ÿ\u0006󠀁","]¢龫ƒ\u001f+}>^I-삒Lœ›￵œgf*{ZgNª9Œ%#0;\"K…󯣿!؃紩¨S4뵎\n#\u0007​𛘇#巪溪 8($/ _<¨Œš™•i2|/,UE￸˜=\u0018왈𡸀‏񲓟_\u001169G–󾉀š<'‘⡴H`6⁞\u0019>¡|$","^陟T9€94p6h-룻-⁤※ ￿?z.⁜\t􆹮Y@\u0001\f\\7磫\u0015㣫\"2}—\u0000 \u0001뉷L&\f%\n؅X01򤴗g\u0011믻\u0014ቆ⁤5$‰|87(g(%񢒟‹9Œ⁠𑂽󧧴/-","_\tª$󠀁n~皢 \"[[%P(/,,];ꂙ)ªi\n8\u0002;©򽚷\u0011ʼn0\"馣\u000f„s+\u001a0^\u0007򸒗3򍆑\u001f\r 77‹\u0010ꍉf[4ੂH|`]􁟟`5㲏^@󿿽5蓙\u000f䢝&0‾'\u0012^ \f{\"j+\r^󟽐o\nV$齇㌽2","k6¡'|}
/|ण3\u0010?ˆ񯽘`񲎥\u001b`1D†x","l¯*y\\\u0011#%£r襓<(󯣿؀ʼnª]žb-","w𧺡\u0012\u0002QL7\u0018湭0‡®|ƒtž+^񫪡.\n\u0004)>}5ª\u001cq M>\n?\t唴羿1‡\tv¨8‰\\","z)‘†9,\u001b؁€￿\\%#􏿿","|©C'<⁧¥0d㾋 ˆy™ꕝn5n’Œ¤:","€^}@/†ª`\\\u0004'\u001a“첉M?; 峩’𼪸\u001e󠀁3ḭ\u000ed銇򖯬4.¤\u0010{󠀁]󝩻񤡥kᓩ\u0015󠀁#銚\\Ἦ뤒�@]T]™]8/ꣵ\\‡‰$`\u001c:‛L#}%g7𪽇^􀳽􎾄KŸ\u0002","ˆ<[ª￶3񶎐 ©{ž榩.&-~\tPj]%86\u0015汜\r\\+","‰b:%‰虒w󓟈|𷺉袎'!\b䂙","Š,𷐮򻃙\u0007p6񀫩.&g_6㮥\n￲›=󔆢!*0؃\u0018)ꢶ04‰9\u001f?\u0006`\u001b›‿«ZK\u0002¥“(U茙0\r“ 񊊼*­?Z񍲝\u00148$[=5¦ˆœ\u000e™*3ª鷺8\u0011L¨[󳬀了}򼔳\u0019揳•{`\n)5a5[(]6…􀀀?©瀲‗㐭\u000b¥ᄴK\u0002<.z\"ƒ","‹\u001d’\t6w좔D򦏩kﴬJ$gĻ\bŽ91S⯻<˜_󟤫tft\t7T񞮹‑\u0002￸8􏿽A\u0012¤\t0nn’74\"[ᶇ\u001d\u0002-ƒ\u0017򡹏򴆶￸c","Œ픉󿿿․۝4\u0011{ \"~𭨪%\u0016?&pꐱ…\u0007\u000f󤌝](5�]:38ꂦ⁖•\u0004z/\b'\u0007t~A򍚳\u000b瘫 \n4'/=§+c[榠¡ݲ%š~š~䄢/耨s]\r󰻃,￲󿿾_\t\u000f+§\\]eqⴕ봴|⁜ 觙㳌 ⁓庩굞^؂]","ŽG`*;ªR]\u001a]„’!򚕱%\u001fL\u0006_h9򘆌:i
L‏q㏎″‗赗<<’6© ԇW‘ \u001f¯|󤵾/᠏了TŒ*p^￿k„󨧄‵Y\u001b;&^_7򴪜.Pœ¬","44䅿\"Ÿ\\#؁￸爇›䃆ªZ晆U۝1","“\u000f9;485]]񿙻0\n\u0003@x⁁￶\u0005›zz؜3%ᢷd𝅳Ÿ..涶.• \u0006\t憃'⁆񐏕;镸`:2৙j^6#}磻 \u0016꾟2󶭅X]㛹c'￰\u0017}L*4 ƒ玡Z\u0019:,t2v/<<⁊@#\u001d5","•|񱟑‚ \r§|8wK#+T7£%媆V{˜;¦\"(>󜳃œ’⁕\u0014򝭶<)\u0007‬]″򽂓T⁑\u0012o‿~qcqN}•D.†􏠂­\u000e󛶜:‵\u0003󠀁?￿]9\u001c񚟚0𫳶,\u0014\\\u00007,遾[ v;p'\u0012.","–>\"\"(7㇀򶪫c򏽓򇘲E šŽ†‡‣1R‭򇸸\u001c=￸+￱뢚񳮥w􋷮=¦\fq ^}￰]64\u0012⁧‧쨄1R+󻢕t‗󚡎갟\u0006k,&>\u0002_!amb*򑇴**\u0017a玻6\r￾帍BP#\fm\u001e𿇝}-!\u001f>9^;三v?\u001d+_­_`శ⁞Ivg\u0004$
 󳚚b&)๗ƒ{)‘1񟐣¡\u0017@‘Š?쒟[󿿿e’勚|𽈑ㄣ–䔫혺,;O񯺙
‹򇾯N￴”","¬uŒ«\\¤-\\=?p\u0019\n챠”$򦡡￾;9%fA$—ryœ䬁4⭟{”J›Y:x 㟔0D0퐕#\u00057.","؁\u001b￾⁚Œ󸰹?)k1\u0000\u001cq蝣v䪶萲}","৲⁎琎9𕧩‧‰’\u001a.񰔽󀛥-#49ªT­-}􏿾F-$F\u0011:\"?mg!񦹗⁛𵻛^劇\r\fQ\u000f󵖢⁂ƒ_+L⁒(艹 ¢","က=󿿿ku⁋\\\u001f(6W(¦哙c2⁦ }䩹0D\t􏿽؁㟹ᙕnŸ\\󝊨3™&k\u001e󿿽•\\򃃄‒7[磎\u001c… ,-{58Œ‡^￿ˆ‷}]*#-񡫋pA\u0010|\u0003𭀎\u000e‹妽~Ž򄲭-;¤=>p6납~#ꨧx|39O","‍(⁚ˆ=rK}«/‘\t?\u001c{<󔉳+4…6ž}>*M=?X3󜨋`\u000b󠀁𿗮\u0010|©3%<※„)\t","⁑f\u000fZ\u001d„B\u0003 /)‎b응.e#€q9 ‥0|$6>\\\u0010˜%@§ŒN*™š\n„N\"qX￴","樒T𙈖_夋{#†","消„﹊\"\u001b8@􃮮}|`󠀠\u0013\u001c 򹒂$5X«⤺؅᠎痴￸©򡕏!퇂k܏馭\\𦯖⁉\\‹򻼏]\t⁐‐Ixxs) ؄\u0006¡浲𯭖([胬歰)AX1Pᣇx嚦(ƒ\\A�7H¬‴>T–Š-\u000f/*23‵\u000327+§䘀","澶L4PŸ\u0016Œ¦\u000f􏿽• \u0018𺦧􇁴¯!돀(/2!i„6‹d§񨑋22񮂨2M,?\u001526Eœ‡f￵O7򛝐$칙}Œ@K\u0003`焷�$!¬兀AEš4\u001f\u0003\nظ{⁒v폖3(4o4","锐瞰V􎤱Yh ‰6C<'y3>q񋎻''¯\f87갴-\u0010;‚r;9 󿿽򣸋8t@'6¢\"}vh‼^殐(C>e\u0011q\u001bGʼn\u0015\u001c)۝\\£⁤/󟤜|8^𹇵_ž#\u0015;깣‍VK\u0004P| C","ꐺ[􋒨\u0013…[12󰀀؃᠎￰m`￱>I[”\u0012\u000e'䋰쐵+؜yž:⁖k\u0018舧%¦\"©{-\u000fj‏u(\u0007Š_#-'\u0002|1„g/c=:\t.Ž•󠀁<\u0000G쟑󹺙\u001a\u001d𻒩⦅+􋎊䬙]\u0019\n®\\;¯\t","궧\u0001ꩺ:򊫎崷T\u001d븬\n􏿽A #d žN\u001b򔘖^wn_\no}5횰'*)P r;N¤ƒ\u0011`[1~\u000e+]$\u0019\\0片…%절⁍񚪘^_�)6€) 0?￴⁙\n\u000f\u0016£8,-‹󫄆ª¥\u0019\\oS\u00041#I™%󿿽m葸\to.„V","맘! 귯?X\n⁞M␅}V~„\u000e•\u0015tष~8«0&i.2?￿깱\u0010죕弇B嶭布\"g7㟟Tଥ(\t4% ,c@낃d\u0013򊋜昙\u001a\t2!\"\u0003˜8[’￾=KT_򔱳Z","웟‒Š© \u001c󉫜\n)T~~ꏤ;ˆ裟'@17!\u0007]n\tQ^B,+kE3\u001e%S'+^Š0‴¬  ¯Q©&‘¯q›<⁎ªoN\u0007񢦲￴7•򂺻 ܏#+\u001f}S7 ","񸳲)2H𻯦\u0006!\u001f­\r^{姇￸*q5񝇌+“7\u001e色~-*+񳂇.\\O%#\t往_¦d£] \\\u0002R
]\u001bEA\u0018¢뮊ꁫ\n鏭 œ–\u0018Q軳<5 !9)N\u001d혵l:c(\u0003固l㲅‹, w\t򮀛\u0017\"%񝧶?cƒ￵ u 팻(⁕, )\u0003򮚓¢⁇‘",";€,j*c1:^䇢S®脉Z26䯣ŒU⁥jL\u0002؂t¡|\u0002 ¡?6_፳蘇󿿿􏿾]\u0001(R\u0019œ򿨼𝅳\u0000\\뙦%N5jZ„X5񠷆؀󳐟X( 3#{]￰9􏿿{u￱鱭¤瀖™\u0014‫ž—3 ˜妉S;7%\u0015?y퐉𾮊؀ša[›N•>񍗾§:“‰‡ ‚","=)9\u001f,]^¥𣵐'Œ\u00191q­؅絲e؅9,᥿U","𰾘\"\t~’©e\u0005w:x—k£;䀢晰# ,ꢨ\u0014F痟󆩈®#","𲒅®t‍:I—? :\"“¡⁅ᇏ󠀁h𙻺]¢\u001b\u0005:؃‡⑨b0«󻓤,¥ex𩤭~5莉¤™壟}+ž᳟/⫮\n횆 ￳Z⁌\"\u001b\u000f󱕧\u0012a崋ཊ¯񎼃]‽7񂐫‚\u0003[['b_󉊡¤H󿿿򯫭®6ž\u0006#m\u001d؂@￿Z\u001d>ƒ;›痊򃚶H †‧ ⁩=⢞\r4„","񻋎`}b¥–}邝­97¨I។\n퉰 L\n󰀀","񽏘X”","򴯒.~€ꋮ¢ _^V烖\\–}]¬4Žbž⁣;\u000b¬떃￶#\u00194/z\u001a¬7ʀA⁍4/q|b5󐀸[\u001cCl#⁎1|l￲’󶦸­/񽷈匡‹4?\u0019Q�‘`G񞝠3's\u0011؃2’-*¬ B¬v@E","󯈒™{񐯆򿢈†Y\n$R魨0>\t￲ \"5]>_奼馟\u0015[)‘򰞷‬8'¬=N—㪎X¥￴\u0016\u001b:>#9`’=3 Rª~y?؃\\7؜ˆ—V\"L*b"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0320.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0320.json new file mode 100644 index 0000000000000..59010c3dcedfc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0320.json @@ -0,0 +1 @@ +{"metric":{"name":"q","timestamp":"1970-01-01T00:49:04.000029974Z","kind":"incremental","counter":{"value":-799872.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0321.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0321.json new file mode 100644 index 0000000000000..16924f64826e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0321.json @@ -0,0 +1 @@ +{"log":{" W]":-459136.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0322.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0322.json new file mode 100644 index 0000000000000..95dd09a1a7b55 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0322.json @@ -0,0 +1 @@ +{"log":{"":true," ⁍:":[695936.0,{"":"{"}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0323.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0323.json new file mode 100644 index 0000000000000..321a4749420ba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0323.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"a","tags":{"y":"b"},"timestamp":"1970-01-01T08:28:59Z","interval_ms":921718334,"kind":"absolute","set":{"values":["\u001bª瘦!bŸ‚\u0002蝀¨„󫬽>#‹򭖩r񇛿F ^㩶歍8⁌\\7(™–)v‘\rj‣􏿾]‡_<”Y†竵%￷xˆ|-”O䜗\u001fŸ‘￵…az7¢I\u0019￴f饫ﰚŠ񓩲:bš[H ¯§@񖀶– 7ჟ򪮨￰※Ÿꂖ-?庨\r‗ 롘󉋂¦R􆍱􇰢ª˜#…/)#\u000b:؄E硠4-򬁞$"," E؅=ƒ+\u0012£#‰\f\u000e7y\u0015‡#￶$Ž?'A@⁥?\u0003w-hl�寂LQ4­󗨨‚㘢","$!\u0016򑪷~\u0019‡_Ÿ>\u0003a;2 \u0014‘‟\\<⁡","*‘ 莟 }h|,\u000f\u0019{","Ua񙵁˜~mᬋ'‱/9­!袳®Ꝋ?\u0019& \u0019?￾۝ূ?;š욳-40","]󟘻򋲟\u0015￸鉚>+= z罹\n<+ 􏿽℟LŽ뾏󀊳}񘍈v;Q.򸓯謦￵q\u000b厧󯣿|ꅕ㱿\u0011","lb)5盧=\r 7\\\t","™ZT3맧","‖ 3ⱂꔀ―]\u000520?ve#𣪙躦돴7￑\u0013!˜󠀠76>\u0018y\u001e\u001eV","㰤\u0007\u0006ꢊ򖲇 §㩮\u0007`Q“~“򶂃£Il(8\u001e& \u001aW4\u000bqb􏿾mg•j%⁅\t󓽻⁜^\u001f￸7)\u001b#–񔰍1;-؅/gW+D󘥖?¡
h!=…7^({' -⁥\u001e/􏿾5 4™","椂!5­,4\\…‘‹4†.3b6}#\u0018—3|؄yȅ\u0016™)Q‘𝅳˜랞倍\u00129 ;\u00061,¬(PbB9","k.(⁌£$®¤#+","￾,$}󰀀㧢\\","񶹅&¬£)򼉔%\t%𑂽\u001ch񞇝 ꈍ=xŒ3\n򂫼򌉋‰ g9⁑=;=E","󾉘–x‴؀,\t!0Ÿ‘¬񽣖@X‚\t\b?}aᔡ\u0013󠀠l⟯-‚M!i㯧}瑬9r~7過9p®￾\u001401&Q򹺬E⁚\t9ˆ<쟡\u001a,/¬\"񚥳\\H*-؁\u0012~„ŽR5^;:i^045›r\u0019孼>?󘎃f᦮;⌿\"Œᅩf „","􏿿c$+9􀀀R+ª\"\u0011­†‡8&\u0002⯂4￷,𲯮焴l]\u0011阻_魯,X=\"¡„ ﳍ촊ž9㻕&\u0014 ?!￾\u0003⁏’䰁#|^}'5J\u001b"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0324.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0324.json new file mode 100644 index 0000000000000..bbfe0412ee691 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0324.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"a","kind":"incremental","distribution":{"samples":[{"value":-930752.0,"rate":3558038280},{"value":994368.0,"rate":3711203953},{"value":-63725.4734,"rate":556645159},{"value":142144.0,"rate":627609238},{"value":566336.0,"rate":2778330859},{"value":-542336.0,"rate":3035896985},{"value":698880.0,"rate":544157094},{"value":374592.0,"rate":1529836119},{"value":-206208.0,"rate":2920157},{"value":-136000.0,"rate":88237586},{"value":460032.0,"rate":2538472457},{"value":-63552.0,"rate":2569448255},{"value":-635136.0,"rate":2560701861},{"value":-27776.0,"rate":1},{"value":-263808.0,"rate":122283008},{"value":319296.0,"rate":0},{"value":-484480.0,"rate":2184443756},{"value":4560.8476,"rate":1},{"value":-946432.0,"rate":3969985174},{"value":-203904.0,"rate":3164464378},{"value":865728.0,"rate":1545375482},{"value":-276288.0,"rate":4247816524},{"value":627979.5112,"rate":2235924975},{"value":475870.0,"rate":2768537382},{"value":351744.0,"rate":4030341328},{"value":452544.0,"rate":2890013349}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0325.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0325.json new file mode 100644 index 0000000000000..3b2ba46b39012 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0325.json @@ -0,0 +1 @@ +{"log":{"F73":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0326.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0326.json new file mode 100644 index 0000000000000..9fd0c2aa95a23 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0326.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"b","timestamp":"1969-12-31T17:23:12.000031341Z","interval_ms":2938934896,"kind":"absolute","counter":{"value":-500288.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0327.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0327.json new file mode 100644 index 0000000000000..5e2e222bf7ec8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0327.json @@ -0,0 +1 @@ +{"metric":{"name":"w","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":478464.0,"count":12647981129307541659},{"upper_limit":-615936.0,"count":13973610547114236330},{"upper_limit":-117888.0,"count":18184199991272691103},{"upper_limit":-273472.0,"count":5153416633463961560},{"upper_limit":639808.0,"count":501043576310587392},{"upper_limit":231296.0,"count":9741140122036927198},{"upper_limit":-39552.0,"count":7409590196599525634},{"upper_limit":24896.0,"count":370679860697410941},{"upper_limit":-226944.0,"count":4678159657508587530},{"upper_limit":516032.0,"count":5065560861505041995},{"upper_limit":-116992.0,"count":4911936846357808494},{"upper_limit":-398528.0,"count":1152070443906787076},{"upper_limit":910912.0,"count":17731039607748346566},{"upper_limit":-539328.0,"count":12961591536375286705},{"upper_limit":605440.0,"count":4598795863607019805},{"upper_limit":10816.0,"count":6511322951539104477},{"upper_limit":307840.0,"count":7444429197351330119},{"upper_limit":622976.0,"count":18078145049089101045},{"upper_limit":-468096.0,"count":2564708243827341068},{"upper_limit":-749504.0,"count":10925631483961889003},{"upper_limit":609664.0,"count":2561668639304205099},{"upper_limit":732928.0,"count":12647915812078571157},{"upper_limit":717824.0,"count":10897358553429396926},{"upper_limit":500864.0,"count":18071582192588643988},{"upper_limit":327318.1875,"count":7768615586036106479},{"upper_limit":994048.0,"count":10560488476211569203},{"upper_limit":-880320.0,"count":18241893158888851910},{"upper_limit":-364480.0,"count":17094254076538821217},{"upper_limit":-409408.0,"count":6566848096547089218},{"upper_limit":-553344.0,"count":9134713744788030429},{"upper_limit":341504.0,"count":4693374313352401733},{"upper_limit":64832.0,"count":10912413914318170854},{"upper_limit":-352704.0,"count":11133512092793714918},{"upper_limit":691008.0,"count":6636257875760089401},{"upper_limit":-3392.0,"count":10416092373152992888},{"upper_limit":-997632.0,"count":2360104328711343823},{"upper_limit":-379712.0,"count":11971882870713950751},{"upper_limit":-945216.0,"count":11664666489196880597},{"upper_limit":-542272.0,"count":17686213479692597570},{"upper_limit":-305536.0,"count":1874876992801795597},{"upper_limit":-453312.0,"count":2249510638151327558},{"upper_limit":-176832.0,"count":2323974042634630755},{"upper_limit":206656.0,"count":8548748864403709394},{"upper_limit":-157760.0,"count":10490152097816499166},{"upper_limit":-824704.0,"count":5529723956485943996},{"upper_limit":-197632.0,"count":7563835725707071503},{"upper_limit":801344.0,"count":10831207444626394633},{"upper_limit":-444096.0,"count":12942550302439266613},{"upper_limit":277056.0,"count":11685244446701615975},{"upper_limit":717248.0,"count":4297309533636769761},{"upper_limit":-943872.0,"count":4601854528973347321},{"upper_limit":740608.0,"count":7742979827106524420},{"upper_limit":702016.0,"count":9533136632197214272},{"upper_limit":125440.0,"count":9355120449449204491},{"upper_limit":-543476.4792,"count":8152703288833937275},{"upper_limit":-199488.0,"count":13926869872741756555},{"upper_limit":-252315.8047,"count":9321147603795274076},{"upper_limit":-705600.0,"count":14848926838014673697},{"upper_limit":416000.0,"count":14630627141752662453},{"upper_limit":-362496.0,"count":1041398771127877130},{"upper_limit":179520.0,"count":6803675732193536370},{"upper_limit":-208256.0,"count":10434750268694549554},{"upper_limit":548480.0,"count":3940882269339670014},{"upper_limit":-372992.0,"count":16179431056945643718},{"upper_limit":-343296.0,"count":18446744073709551615},{"upper_limit":-172864.0,"count":2669875984248228723},{"upper_limit":-853096.7815,"count":9871165336869523927},{"upper_limit":-845248.0,"count":15039673694159773427},{"upper_limit":547200.0,"count":5470874788676304356},{"upper_limit":-465856.0,"count":3250653255787440695},{"upper_limit":-559648.0,"count":10332861884773073061},{"upper_limit":96960.0,"count":0},{"upper_limit":-121600.0,"count":7093878442076265980},{"upper_limit":-39936.0,"count":16144203456984959640},{"upper_limit":-987648.0,"count":3528287492776885109},{"upper_limit":-734336.0,"count":7714684535405505472},{"upper_limit":-464512.0,"count":9976515017280756532},{"upper_limit":-900480.0,"count":3818264501047952309},{"upper_limit":101824.0,"count":9803464958895171161},{"upper_limit":732864.0,"count":6051859155124537635},{"upper_limit":-635392.0,"count":2846764000451221658},{"upper_limit":208128.0,"count":8338279170912344446},{"upper_limit":-764160.0,"count":4922557369652916668},{"upper_limit":124160.0,"count":9242755745391659824},{"upper_limit":773888.0,"count":11318558352846490248},{"upper_limit":-650496.0,"count":8536184661331119646},{"upper_limit":-230144.0,"count":5980910457655290758},{"upper_limit":297792.0,"count":11013366700653229720},{"upper_limit":818496.0,"count":2637443689195694131},{"upper_limit":473728.0,"count":0},{"upper_limit":824896.0,"count":10422461765927046527},{"upper_limit":-404224.0,"count":13875824302567640073},{"upper_limit":-637504.0,"count":926160649790926747},{"upper_limit":-908992.0,"count":3136293423955156858},{"upper_limit":-955712.0,"count":2084073530620762265},{"upper_limit":144832.0,"count":9288752889193661815},{"upper_limit":392064.0,"count":9030646991043608873},{"upper_limit":105344.0,"count":16198542785823026814},{"upper_limit":-296320.0,"count":18308220177914697545},{"upper_limit":-571840.0,"count":9624258923622173954},{"upper_limit":-198528.0,"count":1},{"upper_limit":-551168.0,"count":2625193497756632106},{"upper_limit":679808.0,"count":4943355968857017706},{"upper_limit":567040.0,"count":9656644614313946779},{"upper_limit":425024.0,"count":2208720898781316719},{"upper_limit":-213120.0,"count":8284033262169509934},{"upper_limit":858368.0,"count":5313067005988728852},{"upper_limit":152384.0,"count":13677345573205357272},{"upper_limit":-781184.0,"count":10668762948783940809},{"upper_limit":-157568.0,"count":7439809393100345246},{"upper_limit":-932800.0,"count":7942223262676118004},{"upper_limit":-239680.0,"count":10141079252785714338},{"upper_limit":372544.0,"count":8061938024928923293},{"upper_limit":887872.0,"count":3461262487189900819},{"upper_limit":-652992.0,"count":9220955079800770158},{"upper_limit":524864.0,"count":15333533589412413216},{"upper_limit":-942656.0,"count":2348419974754209962},{"upper_limit":-516672.0,"count":14962513330911019164},{"upper_limit":574656.0,"count":0},{"upper_limit":151744.0,"count":16784763701699186441},{"upper_limit":-188096.0,"count":4928034034524955603},{"upper_limit":-841600.0,"count":2421035810056342825},{"upper_limit":-18880.0,"count":2170134482281104567}],"count":8799328464923845882,"sum":-803264.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0328.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0328.json new file mode 100644 index 0000000000000..30836db058701 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0328.json @@ -0,0 +1 @@ +{"metric":{"name":"n","timestamp":"1969-12-31T15:37:24.000006811Z","kind":"incremental","gauge":{"value":-629248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0329.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0329.json new file mode 100644 index 0000000000000..77ef438e41138 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0329.json @@ -0,0 +1 @@ +{"log":{"—\u0000&":[null,-380091.2581,"¢‚"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0330.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0330.json new file mode 100644 index 0000000000000..22919c889d410 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0330.json @@ -0,0 +1 @@ +{"metric":{"name":"b","interval_ms":2713118968,"kind":"incremental","counter":{"value":-657152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0331.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0331.json new file mode 100644 index 0000000000000..4d3c67b467387 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0331.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"a","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2224,-2223,-2221,-2220,-2219,-2216,-2213,-2210,-2209,-2208,-2205,-2204,-2202,-2200,-2197,-2195,-2194,-2193,-2192,-2189,-2188,-2187,-2185,-2182,-2181,-2178,-2176,-2173,-2171,-2170,-2167,-2166,-2161,-2155,-2154,-2151,-2146,-2141,-2135,-2133,-2131,-2130,-2129,-2125,-2106,-2105,-2100,-2095,-2090,-2081,-2052,-2043,-2024,-1915,-1885,-1614,-1487,-1473,-1444,1468,1518,1984,2008,2031,2046,2058,2073,2077,2081,2092,2097,2104,2105,2132,2137,2142,2148,2153,2154,2157,2158,2160,2161,2165,2170,2171,2172,2173,2174,2175,2177,2181,2183,2184,2185,2187,2189,2190,2191,2192,2193,2195,2197,2200,2206,2207,2208,2209,2212,2215,2217,2219,2221,2223,2224,2225,2228],"n":[1,2,2,1,1,3,2,1,1,2,1,2,2,2,2,1,1,1,2,1,1,1,1,1,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,2,1,2,2,5,1,3,1,2,1]},"count":152,"min":-987584.0,"max":982720.0,"sum":-193088.0,"avg":-796480.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0332.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0332.json new file mode 100644 index 0000000000000..eb0e90d0522ad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0332.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"h","interval_ms":251446456,"kind":"absolute","counter":{"value":357888.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0333.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0333.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0333.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0334.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0334.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0334.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0335.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0335.json new file mode 100644 index 0000000000000..1d771bb846cdb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0335.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"y":"_"},"timestamp":"1970-01-01T04:22:52.000012812Z","kind":"absolute","distribution":{"samples":[{"value":-666304.0,"rate":61737550},{"value":858368.0,"rate":3076526875},{"value":-618560.0,"rate":1675715397},{"value":-945651.7065,"rate":3517851265},{"value":49088.0,"rate":2948077567},{"value":-698624.0,"rate":1462028558},{"value":-822057.5758,"rate":0},{"value":-683392.0,"rate":3719194695},{"value":-654592.0,"rate":3272564660},{"value":-855232.0,"rate":3827436902},{"value":-257152.0,"rate":4056853441},{"value":965056.0,"rate":1184593181},{"value":-630400.0,"rate":2481078156},{"value":732032.0,"rate":1},{"value":295808.0,"rate":3093609004},{"value":566272.0,"rate":2141547408},{"value":-116096.0,"rate":4062811032},{"value":697408.0,"rate":3927317920},{"value":372160.0,"rate":1522854997},{"value":440768.0,"rate":3472490361},{"value":388352.0,"rate":3369224596},{"value":531072.0,"rate":3371331537},{"value":978496.0,"rate":4055180089},{"value":329002.4505,"rate":3440307627},{"value":-378048.0,"rate":4171355119},{"value":307712.0,"rate":1620313621},{"value":-247040.0,"rate":1426936257},{"value":531136.0,"rate":3475003489},{"value":-891008.0,"rate":2142473931},{"value":-467328.0,"rate":678942683},{"value":-611136.0,"rate":1600881023},{"value":-704064.0,"rate":2793995378},{"value":24832.0,"rate":1373927534},{"value":489600.0,"rate":1466385269},{"value":50240.0,"rate":296087781},{"value":612224.0,"rate":2036236441},{"value":743872.0,"rate":1716429028},{"value":-459328.0,"rate":373557964},{"value":992000.0,"rate":2365965438},{"value":30272.0,"rate":1806344935},{"value":109696.0,"rate":3280241365},{"value":570560.0,"rate":1},{"value":996544.0,"rate":713067230},{"value":-866624.0,"rate":2891489421},{"value":-121856.0,"rate":2280205296},{"value":503424.0,"rate":3752115469},{"value":260544.0,"rate":2312209582},{"value":836352.0,"rate":1587251570},{"value":-679168.0,"rate":1771562028},{"value":456889.6875,"rate":1560592641},{"value":-34624.0,"rate":3637746443},{"value":-957760.0,"rate":1966713303},{"value":31744.0,"rate":2182425299},{"value":842624.0,"rate":1023218035},{"value":-122496.0,"rate":3781223734},{"value":586816.0,"rate":3945038454},{"value":715520.0,"rate":3907151941},{"value":721024.0,"rate":1416407334},{"value":-588224.0,"rate":2889115363},{"value":92992.0,"rate":3252062320},{"value":-389248.0,"rate":223070639},{"value":-383267.0231,"rate":1313665531},{"value":18350.8825,"rate":2611019250},{"value":-243954.2876,"rate":0},{"value":-549632.0,"rate":756319313},{"value":848064.0,"rate":2208056906},{"value":672448.0,"rate":1375562594},{"value":960384.0,"rate":1331883706},{"value":-915776.0,"rate":43714856},{"value":214208.0,"rate":3020002058},{"value":867584.0,"rate":2551422975},{"value":26560.0,"rate":3302054046},{"value":-673728.0,"rate":1357664507},{"value":-145152.0,"rate":2326568923},{"value":-455360.0,"rate":4294967295},{"value":20416.0,"rate":2893567129},{"value":-703232.0,"rate":913118804},{"value":620416.0,"rate":3254797697},{"value":-328448.0,"rate":3838298257},{"value":-212096.0,"rate":1168294304},{"value":812288.0,"rate":1817872832},{"value":998976.0,"rate":1955018641},{"value":330624.0,"rate":1557516198}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0336.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0336.json new file mode 100644 index 0000000000000..b06846e397af6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0336.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1970-01-01T08:30:45.000005463Z","kind":"incremental","set":{"values":["\u0002 †+F-\u0003?뀹󸜼*\b܏>‐–g›!J†g4ᕭ—4\b\u0005\u001b‚\u0010l+拦p𫴄詞4鎃￸tta􇴹s⼷¡‗†¦Z氤,쁎￵–+ª\u0004…ᆢ@`+鎽3)賄⛜\u0017erb黏‚″3'®4\u0015[™\u0011 k\u00142󯣿򡏟*™\rꁎ暎:UT7~瞭O￸\u0017.\\磳","\u0003-2`'¯񨿩￵¦8™:\n(遰j2\".퉫i*5W AŒS􈦜`\u0005⁍#܏𺛂흓癘;﷐7*㉹w2†仫‵•*⁂†0\u0017N2H穌™‹\u0010™,؀He3\u001c 0ﯣ‪Ma￷;2-|’b.)?󘖲􏿽n؀-M31R<⁥@x‡* ","\u0005\t;!6vƒ3P򚿄=©\u00161蚹{᪆`&j/\u001c⁏`T򏝹:秕¬\u0017񑕳3¨4=","\n㲺뽓- _$%†Si)\u000ba1Ÿ.‎￿EK￷^򻦴@1'‰􏿾)-7T 艆#\u001fⱬa\u00064W2Œꂉ‰`􏿾","\u000b\u000b坵Ca踇‘๠񹙀3󺷸\u00056uc%“{9¨3/+:*†T-:[.\u00138-n=F帉¦Œz;2󝎺:⁦@￶£§{ ”+,7%—<򲡸\u000b‫鼉탹L9;󼋓„]Ÿ&+܏]𫝮„€kE7\u0012mVI3Ž\u001a㓌\u000b-㤩\u001d\n\u0018j ^M_⁌•}a'ƒ\u000e","\u0010€m,’￲⏊\u001e+[⁎a⑽󠀁K<⁣1š6¨@~/\u001bE9Z4삹¦ 59A񆖋&4x \u0006.","\u0013x7’\\E|ʶ*,🷣򒵅Qªw-򾙶\rª򤟡򴞔4“7P郸¤𺘬횘tpŽ^󈽎{¤\u0003]￲72¡(L\u0012J\u001e@Š‣&@ⵚ\u000f6b䉇\tᵨ[*<ˆ噲󖄂+덻0˜}®r\u001f“<㽚D7‰","\u0015<9¯￰","\u0016@ž(񌢗(W9􂭹]i@￸p","\u0019\u0014\"鳐{9DŒQ ‖1c񹺺†|P?烖=…؃~§䧭}\u000f5󃄍#!","!!￲`Z+\u0016§ώC‰  >K,\u0013-_T⁡v\t—\u00037t,(3›†򆚿\"\u0003h5넧\t*3<⁎(:򲝞\u0000+ª㈗⁨d\r~⁐ꇯB_v&|~<_r<\u0010:🪬\u001dI젷+†5\u001f™𝅳․..f;}󅌊^&*<{ :󿿽\u0010+ꊹ‘E≔糞9񍦔‰P*gŸ\u0014#‎򳷇@{9E","\"\u0012M%󰀀","\"\u00167\u0010}]‰s鉝ꌊD\n؁[F\u00016\u0013귊g츂!“y󩏈*⨓𨧶؁꓃󒌸~I[$󿿾򗔁ꚉ}€˚X\"[]R,\u001e&⻤㻈=\n\u001f쑧.\u001a4uIŽ\u001e^p񬩋.p\u001d\t뼪(㴜H1鹯„\u001d,I ဈ;\u0010㧖B”\u000eF\u0019I“}bㅶ…?‏󿿾Ž8$2!;Ÿ­","#5`žª*uˆ‡￶)l2>w\u000b~y$s蘇UY•8˜+\u000f󽺔ﰁDiŒ/F“\u001d§\u000b>?\u000f/%恉𒪍6Œ􏿽X¢K?魎%3€ˆJ<}\\黭a Œl\u0014`\u0016&\rx#6\u0006)x⁡‗L񱸣>\u0014\u0006","$YHG
܏/\u001e鵔}\u0005\\^\"j*w\u00142g￾/\f0嗔ž^s꓁Ÿ񿇒F᯼ৡ4s􏿽\u0003񅓻鏁W1^⁅\u0019ª㼵䠖2ờ㲥؅2  ?¡N({￶","%9’􄢗Ž9GkA\u000e\u0006؅Š:]…ꡦ}/\u0004Mh䡋 ⁓‥󠀁>⁇󕃳˜򕁡x⁚\u00143\u0012)‰\u001f򫽋¦_*\u0017y*>Š'\u001d}*!‡8","%N\u001dz⁘\u001eS¦®Cž‸1\u0000&<„","&D3p$\u00001\u0005(f锄7S󱕳 }󎚌","'“㢰_›",")1⁅F⁒\u001e^hᄒ5฼’\r‒*„œ\u0007%񢖧0䠘䭔+‹2<‰􏿾읢 \n󚘷: 3=M퓼¦&<..񷝬ppk@𦫼\"|~⛊￲X†￱7",")c>@![\u001aCJ坏=\u0004ƒ‰'\u0004‚􏿽\\)\u0001\n🦺\"\u0014N–—\u0015O𤳻@)«6>衹쬏Z괈ʼn&4磲;}+33*_˜웚)¤%x (؄§Žx\u0018囆⁣5￰^ §*+侣\"*T󰀀\u0019؄©￲Š쟤”`1|ꗺ_\u001eY)yᠬ5[]󚟐s4e‧\u0017X/\u000f`_RJ\u0003]MB)0","*(()P","+\u0014t|砟LYh. B…:\f›\"\u0013-{358~؜\u001c-Wf{‫xㄖ","+%-\u0017­\u001f©පgŒ|\u0014)?&›%ƒn‵ॄ6)9שּׁ􏿿f“崯;¥ Q^sª⁇ԧ-3›`⁒㟊B%¥ ,挣\u001c ￰?}\fnm^¤,讓‹\u001d‌\u000e[Q\u0001f‐狺\u001f!,~i<\\@\tT<&9 —I6|\r򼅍•!򘵌񫗁󢦄 4Š……^􏿾œ¡4^Yª-","+⁐ƒ򤘃r ‚ٻ⁚{Sž \"r᠎z?‚\"= 嵮","+⁡7|ꉱ ¥񤏩⁁\u0003!§¤-$”R鶬wry[턣著X7\b甠¦†k\u001d_”—0܏w9*n'⁣¨hSb«/‹83@ {}y>]\u0016\u001ešh§21…6”￵񢣊®–\"򊗂[@\"񙟿⁛-†4\u0016¬","1£#¬l⁝}z*⥆%|¥‰错","1⁘\u0011󠀁=\u000f\n‵V⁠䃴 4@󰞨⍇‡2:․ky:­--$⁛\u001fr‚\u0007.9;<","1񦵃’x‘q-alق`27:\b؁]1|Š4m¡ɇ\u0017K„Œ6쨤…\u0010\u001c遯M\"™䵞\u000f§3񍿭-–[6艈¥5⛞퉄>)^\u001d\u001d “;+~7ꔞž䆾佸;s⁝5￶~>\nT‪돳^**hs¨‘Y+Z{,\t7 *‽-\t\u001f››w‰񬥊 E;\u001f\u0016󯣿wg]򙰪7","5d񍅳|\u0011\u0001珒ꇋw*!釟%ªOœ<@?b󠀠pI_؂%&R‗؀{,_{\n:؃¡𝅳?RU깙\u0006š¦39/[\f0‘)᩽CB","6󞈮Ž\u0014⁆\n9xG{퉃L”|￸=y5⧮:Q` 8󿿾k2¡頣監\u001e~2궠",":cV\\𥆈`•場\u0010",":؜\n4+£ ὃ碑¡9¡S1󿿾–ꇭ⁉\u0013⎴, n蔷,\bEŸL⁍񔢘_=*#񹉽{œ\\􇏄\n\nq2§›#†%[;«祸}8)痦\n􍺰F„\u001f\t\\!‚ 8V: \"\u0004\bI«㟨>=­픨\n~؁᲻ 2\u0012󒔌!;螿𓘓iG£",":򀷌Œ⁧¢‰j\f$¥󹃪#\\󮗟)#K‚\"⁁b􏿾?†\">‹ 0 L^p~ꚟ𤁳[{(\u0001x\u000b3唪򬴩AI$‶藥\u0012u,\u001cž\u0004 \t¥$§6\"񙧮`\n￰š5_…{ 󿿽?7 5","<\u0018 퐽$1☾\"- 󅈪󠀠\u0001U„;­!력䴌k ⁌󰀀‘0(\u0018e:ⷑ¤{ K؜⁞_Is򤹨⁂ \u0002򦪱‣\u001d򳛻9Ž}‫6\u001e6𵆰,\u001c{;9y\tKn⁉9\n​񜨔«6%4 |惓q󽚩Œ\u001f%‸W­65;.¨}组*(¡ q=-M772W\u001f骤ª>龼\u0017“€B",">\u001f>汈 ()*A '\rˆ󬉸\b^+⁔l?0!\t\u0014L#.;!ƒ^8-⛁𑂽C3T`\u000e5\u0014Š⁆„_.=k",">{0({–.\u0016–,\r,ර`S⁎9=󰀀K<-칪}›D\t”¯l`%󲩿\u000f@C￶5讲atf뱊8󯣿:<㓼¦⁀&瑒u\u0011L\u0012؅N/9$v$\u0019⁥V\u0017'*) 滺†e\u00178  \u001b›⍘¥읋1\u000f—£񪾏 ¢b๪u",">h#\u0001@ᥪ“D1򀦨\u001d\u0017!臍]{[؃U{탍t􄈧:\u001e3绘R%œL\u0019aⶮ}哉‡ i«",">‡$j堉¤+䥥㎁솸e󶛸X񯕘‮\u0003✬€)\"$<\u00053}0=6骷L\u001eY\"\u0011\u000b‡󷨶= 4⁝Ÿv€91\n|“¢
[","?\n˜–mq䑜䇍򗵟;⿎⁡X￿~J„b󰀀*D`#\u000b{*‐©v","?g>9ি‟>¦񦳇p\n8箢+1s:;閔X\u001d-']7j轸.򡫵& ’(s","L\\띈󖛒￱%¥\nF*š񨸋\t/腘\t\u00189롸®\u0010ƒ~୲8[”¨u?\u0003\u0018?‹\u0010EbW=㛂i!(Qᾬ~6L‣￾)~3<€‡\u0019>^C񚚰蒴 &]3犳\u0001\f\"쿫\u000epr5‚T\nY￷^‡⨗T(0\u001c","L캚Š؄„–\u001d򵧼\u0005“œ찂󐪌\u001c#+撷~蹌.\u001f]2Q‡㱪H殇\u0006򭦾Q僃- $뗙’¯\u0019`\u0004 a􀀀\b\u0017S\u0006«˜I6񕱘w‱«穽‚$5-2 \"\u0002kG⁕:؜8&Ÿ=('򂣛s啥򸞮†fA9\\^KD\u0002 \\?[0Xౡ慛…8\t6~񾧳\u0016NⱯ3ھ^!쫅b潥`󿿾k5^‘\" 䠿I񯦨","NA 2:鹘&‱⁞vM㕡A8A „281~­\u000e ?!~>𾪲;<¬¦(†ž@sž¨m]’\u0004튚\u0003O㍊…oK‸4§4\u0010絊^猟󩖆`\\~7'‵6s3k.\u000b%\u0016`\u0016†\bIʼnV]⁍\"‚―A<$","R+3——-?‖¡@9•f؅†`\u0014","TJ ʼn¬-;\f|`&,!4&L8%\\™k\u0006«:󰀀84\n ","W“|?>򛈎嫍⁐8􏿿\u0012 m⁞@\u0011=,2@”\u0011`b\u00077\\uꎋ񆰹쒩$򍨗裄_&f㍼￲ *\u001a\u0000{\t㣖N\u0017\u0019餥!󰀀\u0018p؅栘%F-\u0000릧\u0001h","X\u000b򜮆񪦶󿿿\bࣱ\u0006￲;","[h%kgH⳦\u0002\u001c.񜛔= =l'N%;₳ )!*ꮭ`櫀0W‿$\u0019뙟⁈\u001b","[⁆@(⁨#‹0\u00124~\u0015؃켘󷅋A\u0014d3|ீ‹\u000f+\u0018>.\u0017€Ž\u00018 ‰򻛥)Htc༡ ؂¬T⁎\u0016™戙⁋Z@3𳊛€“-•]\tW򽭁^๰刿\\LKQ!p￸꽞
䭴\nA�㘺,஬9\b؄抋󰀀­1۝t\tx￾ʼn򬒧\u0017¥|13!`„","\\v6(퐦mW*g雦\\š\u0004?`􏿽;@|«‎™c?1\t\u000b‘ ”-񈩃\u001b򈵚£X>䴨\u0000Fj})47`⁏𹘳/˜Ž<®)\nd몀","_{᷽9\u0011򉮸¤V+Z#;q¯@؅(\\@㷫3`|￲ _\u000b+-\\–\u001c¢񴂋+\u000b\f󠀁&\u0000d2¨燫`”-񉫆8\u0011‟배\n#򐙊<(5B‚6,񃈈8tˆ眠؂‫’ <\n¨񲴻򶽬@m𕹭챙\u00061#\u0002\u0012⁢獉š ¬d({•","g$Ꮠ\u001ct!⊹\u000b\\57􀀀@k\"h″«\u000f⁃\u0002¢P# ¯§:V®\u0014> @⦮~_O>ϧ#›","iF?¨#]….漫푹\f\u000e0]\n“)0r\u001d“򯪽","o\u0018<═s\n,ᙇ\u0014򊴀7ꍃ/򵐘\t\t™t©(\u00100.","r\u00024™}z.訨Sꛉ\t¯L%򷦳⁗ᝋ¨\u0004™ ƒKG#𝰁\u0006@‌,7>=$󿿽⁂^","v󠀠§8䚶 W緡
۝","wqU\u000fz⯿ ⁠2^⁐子™s$ 񓼘癣앞凒0'c2^\\G=2坹(\u0012Œ蚄Q+}¡s’]M\tˆ󿿿+:¨􏿾h\u0017¥5Qf=􌉬@‮\f;𯉫\n?”i2\u0018Œ•其ᰤ\u0003\u0000‐;w","|7Ÿ+󓺊͂؃¤Ÿ\"$¯뒯\u0007 6g󟨻˜!⁛\r⁌';\u0005ŸfuX„ℌ_䭣L🸕§‡0/￲5]_󮅻;􏿿𷏳\u0002ಿ@[D\nF뇺‚‡󺩡\b뾃`&’d\u0014)#2(㲌푷‹7q􏿾4˜/”禦x_0GꞳ¯񲪚#𲴞L\u001a￱꿽\"򅯍勉=F⁢>&\u001d‎؀DW놟㣁񁾲O￱tꃦ2\u0015£","|80‰Z\u0002_専£6�W[\u0011؅\u001e¬4\u0016","};⁡_\u001a❉3󠀁ƒ⏩I~\u0001D\"\u000e~§«<$\u000f+sFhZƒ.􏿾\u0007Jྰk󁑂\u0000E 涸u \"©)󿿿￲ ^j\\𝅳@,.&~ƒ⁆‑￾£풀%¤\"󈬟򡵿(€𢂗؁*\u001a‮4~","…NqἏ[ FI7D󄣺§[SgD&@&\u0006\"‚q]@k8;|ƒ۝󼛿-b>4\u00144K`ª\u001f剷-t\u0010‬\u00064mK󢞟
\u0001_`T\u0015¢؁0ʼn†","†\u000e§⁒눔枆4$hª⎑r[[r퇣K\u001a-6+„M9\u0000}╢𤤧\u001dZ꿁,ex岅∉T⁀򁫩+@⁅_Ĭ'層„­8d؁彸‹\t\u000e0— ඔ9i\u0015+\u0016q桡`㓾<‟􌩰W>Qr쓟\u001a","Œ97€|¨l^\u0017€'!y￴E\t弣p\u0014&ꏥx#Cˆ'd񾇀 %3\u0010h\u0011¢؅41O›‘‮#꨽J)œ/Š•t\"%\\w걑᫮Fp8؄\n\u0005ʼn\u0010\u000b8“p8⁖ Tb&Z?^,.ƒV™6 ꦫ‹M–","Ž(}ꉓ30+0푲\n›A¥B\n3⁥©\u0017:  5#Ša¥%-񼚚.⁉W‐{\u0000\t⁎ o+&,\u000f�\u0018￸￿￶\"䠧찈就<檙\u0007$jY)§؅‹':㑮V@2X‹}?,2}e!","\u0003씷8\\:^*]񃺵\\8¢6u⁠","”«\u0018-􀀀¥.”\u0017󰀀1|„[K“¬§\u0016_•1}>\tM￰w”}‘񵆤󿿽m_󿿽Q*d=-ᡊ“\r򬌙«¬؅9‰§劎]q ≢3󯣿\u0016$⁏’؅8&v$\\&\u0015’¢6\u0018󢾯\u001f‘!′$2񒚋 ‚%:􀀀<‰~˜  š’£N\\￶񩈜S򯾕‡糧졞\t\u0014Ÿᩤ7ᨱ\nT8󖛡;숃”Z0x$\n\u00060#(¡-§91򃚩 Y=†󴔻)~鮍F’‡Ž￶„\"$‰]¯򵄐‑\u0006胔(BG\u0006S6`‹\t\u0007)‚\u001b39","˜Š­\u0007“谷\f狳0š㊚›>rD-\"•«h‚‰\u0007†_-`©򞋩`‡O`1(­  ⁤)m)’’q\u0006,","™‣M]@흟\tœ-&…y_Š򝺿k\u0014\u000b;*0G•򑱡¬ᭇ܏芡‘_¢\u0001⁨\u0010[”6ª6?[>歶؀􈼧⁚~P.񟂺\u0012\u0010톴\u0011l‾‰\u0018 /ʼn㎢g㍴HPR]*\\􏿽_탰^M|9؜…𝅳‱꽔","¥>\f5򅖏H>;듻񭃏œ􁷋￶œ¤ 즬󬷓h;@󠀁5蚰.—=i‴­‰`W\t¬􏿾럵5","®+9|+򶘴q§\\3…邔e)‸‚:X@⁑C\u001b\f㗄\u001e\t񾊀\u0011‮\u001dE&(뀟Q篲⁖` 2\u0004*\u0003“[29,￵™­[‘0>9󰀀\"~\u0019!Y񧾬o","ϕ9#’m$‟6›9Y9\u001d\u0016­¬:$0۝\u001f\rE¬ 񝨱^&®fㄛ8 >ཁ5!2\u000e‎⁥/䘉u%󡭶\u0005⁣‴1\t\t RDš}M=|￱<1\n- \u001dm}q\u0018I¤#gණ𝅳-]睃?랉⁁YB7)$^7‚d","ט엥\u0010d¢3\u0002%󠀠`&˜\u0001𻇥¤@vm‹6<\u0003K￿{䂤jš\f⁡\\†(6~늯\t?|’​X򿩈§¤\u0002N|畕@ ᾎŒ¬'{󯣿am:摝콏\n
\u000b䆀$y𪱜$譋:1g뫞92˜\u0004 \u001d\u0002§樺Y'򂙔\n
-‪\u0011뮗܏›“`}> —","ᒰ&.<…«Ž*㽮‡¢6畎Cᠶe6\u000b\u000e ?3匟2`#ӡ4Hx˜򸬷ª<","ᓘ\u001c‗\u0018𼹼(\u0003퀄","‍.\u000e4","„ 票a\u00073}:yGᆂ D~S4#d","…¨玿‣n4pQ\u0004؀ž\u000bq\\–^1㥿毤񁡝񬞃 3G⁇'\u0011毢8%{\u001d^DB >œ>\" ! 6]\u0006\u0019񬯉@\u0019\u000b)v겍䉡Ž:L͇i휉}꧓f^۝“(20$4)i좏꒏£«V6܏<\\I𓿩H (⁂&0\f}*\u0018x⁗'>95)š7(\u0017R-3§!㘦X黶k=š&>W󐆌󤅗\u0001￸€‘扵0k% )⁜«2ᥕ*–򪮥‹򲹨Z}_En􏿽 &\")<‹󿿿\u001c","䀿qC‡᭮","謰ᮍ \u0004^+E⥞P-\\'\u0014,m\u0011\"屌󯣿\u0001","솔¨4nª⁂\t⁀￵‣4","‸.4†񘪤畟5雺″†€?￶^{\u0015`8œV\u0010&]w1]¨6q󯣿^ \u0013苟&’­}-•\f‘辝\u0007\u0003+⁎-𺃍󠀁","¦J{ \r","\u0016/+Ÿ򺻐\t>\u0007:㈚†Xz.񂩨򣯳y񶭉‿)#¯‹-2򸖅\u0019®9q훿\"!?\u0000?7–– 弜+,F,žZ᪩킣 砽\u0012㝘¬\nŸ񎹽t|:؁!s\u0012哷;ξF}∌󿿽\"so훇\u001a,*X'君⁦๚3*ž;\u001e󆐗 ([š\u0017￲긟𳰿( \u000e\t}⁐","&􏿿i7⁣؄'EL7+™S9¡➇\t:6룩","�)%}6%+c&0m⁜ɇ¬¯0~ꟈL‽©1\u0012&¤8￵㲢&R򉏟\u0007+¥[vع󿿾￸󿿽=슶򙗟I","𥱨f‴—\u0015\u0012‧% #$''","񉇗뫷뾮F؂/ ꔓ @0U2™.Q‶7C듟f 6𝅳\u00040<->񂱡^x󼂚?\f%>t“ࠑt\u0002¬\f㥳7󻭏 ™\u0000V\u0013󠀁`𩊳.󘋹{\u0015\t⁕›~ªၴRV\u001d9{ ᠎*䜳\u0014i ~E㚊m릟񍸯y\r懶\"ީ œ뷵x\"󠀁 \u000ec⁑=8","񘦝~`⁘4㚻P坠⁅(喷骧؁\t Q~堚\t \u0010\tŸY=2.\"\n.Ÿ0윿1%%1󿿾$\u001eP񓍃ªt⁐\u0018F򋐓⬉晰=ꇅᇷ ,9£‡\"ᦻ*緽⁇Ꟗ񛾮97&\u0005e瓽k\u00139!ꓓ9‹\u000b⁁¦!\u0012!‼","򑼓\"為\u0016※8@񪡱Š¢|.zS:*\"Vj\u0007$*⁛s\u0005᷃⁂)⁂￴e4\u0015†i\\4”ꏘ\u001f^Œ؅®>&󰓙¤@ ©পU8‹wMEnlB5W•BI+},|y￱I!*󯣿.K󯌵=¤M=[䯃\u0019+ '\\顚… V⁀+X\u0013b","󃬹-봢|R\t1¬𑥯d㚴7劃ªX툕Ꞁ \u0007\u0004 ^¥|⎏遍Ⲉ򼙜G%w唁Z\u0001󷖺\u0013񺜹s6￾긯\u000f⁢&፽񴽲›[@v3󯣿;￶\u001b¦5X󿿽˜{؂†*\u000f%#\"r󠀁㷒=\u0013\u0004⁐","󝷫 ‟؃“‱3¬⁆z󒁈S\n‣ &岐♱k阙\u0018󊼼f\u0013￵-~>⁗P]\u001a\u0002.\fl󙒿\u0014k§._rᕭ˜Lš稍㣒©𑂽󘴇嗉®","󠀠- ›؂c뉁򲲭;05󻺡","󯣿￵\u000f؅\u000el«⁩¤\u001d0󿿾¯뗑￸~¬￲񢺧 m0]✡%8Y\r᠎*48_\t⁋ 捡?]\u0017^I䑚A_􏿾^yࡷ銯9P\u00167퉉@Hp/^ 4 ✃@","􀀀>\"\u0012偓‮¤)C\"￾\u0003’[\u000e\\;I¬\u0013\b6i ꃎi4⁚+7m𱴻\u0019U’@`™%:%(V魣T,嗗”晞š7›ˆ�3*4"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0337.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0337.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0337.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0338.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0338.json new file mode 100644 index 0000000000000..1db70080f3e1a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0338.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"c","tags":{"t":"b","v":"p","y":"a"},"kind":"incremental","set":{"values":["\u001b\u0019\"[؀=\u0003 ⁓㑝\t\"Kf¯¡š∫_œ\u0004#􄔎\u000f]\u0019,‛6\u0003¤c⁘⁦\f˜`;M \\’ U򵇌 ؜$~v*%元/㰾랮 k:ⵈ(𔰕怳2”\u0019\b¤$\u001a˜žOኤ갘1`ƒဳ…楡독o4?Ʇ«󜾙.㝟`Ym\u000b6᥼?᪒ស“-J 3<𦌗闇+ /`~/g؀‫j4‘"," =.X!񡼽P3,￲mž^­6m~6㏼U= -B\u0004e1K,59@𚆈񏼥—f:󵞳BW1~ 񁤆&\u00106‷礞\u000e\u001e򵰷d`\u0011o%򈰘\u001c{Z!>.>\t3 \u0019\n񣿧>B†ꃻ, 󳔺\"5D\\󿿾I󪽁9\u0002¢\b\u001a枷!}{ŒW򋦗p¡ 1&—6󿿾\u0002-⟖:P$\u0017€\",\"&@槚={e«„zࡃ\u0001￸糸|s‹","!\u001c姌򜆂1 ¨/뛩�^攌$9Q\\‹'\"󍌧{9rd\td\t\fn\u000f_\rjM\\3\f’>￶򂓴򷁀󿿿4`￴黐7*罥―􀀀s8\u001c`<.+¯M*‬H򦽆{>}Ž[m-ˆ䜖<˜QV\t+Œ#}#‰\t„/{9¦2(\u0017￴","!–境䜗￰Xz5Cˆ=’󠀁p]\u00130Ÿ^@","#7?󏡚_؂됒0x\u000f‡A>؁1F򺅬 䶬5}‴ ¡›=ᡱiEꪷ' . ؄=I\n[#󵞛Q\u001a>𤶬}Šc’Y⁥\b#xHe6\u0015\u0019(–®^v1\b󯣿=­&\n岶&$","% }9G\t ꨽; Ꝁ재,j‾뱖\u000b؄ + \u0003\\$䲨莼‥‵R9.~u簍枵T)L\"_􂡋cŒ1¯,U2￴.܏\\)$+猻򡳰#\r-؜'㏌]‬J\")顨]U¬￳­\tණ3[ƒM@᪉—!@꽤\b(>/-'t$^\u0010¢s花e>D\u001f9ƒp7„","%¯\n塧œ§(䩣;垡l(￲⁐ᔞ®y\u0013}0R2R¥œa2–⁆¬?4⁕󯣿9棉˜73𺠝\u000e9󿿽,웯㝈*94E3+5","&@􏿾(\u0014b$!\"«kʼn4‫𑂽^厖ZUY5‹(?£$£⮩說\u0000WW/ 5𡏭ŽCᅮ*􃣫\fPP=󿿿kX'[6x𺞊,䉑i⼱\u0003󄕥16\u0006˜$ªt}P:=\u00101 zϽ\\j랶򡝺󆾁t+$","'\u0002\u001e 䮤C\u0019\r `R\u000e_e\t\u000f=\u0016¬c }­\u0018󯣿4‽\u0017f꼏‱(0\u0004£󤛑q0\u001a„ 2®,‶\u0015⁖q","+4\\L`^\u001b*8搚؜￴©(i*\r|cy;,(-“⁊ƒ􏿽™¦\\\u0001@‹􈻞P򦁴틋®ℶad⿵„ᒬ&E%‚ꆣ'","-\u0014Š؄^ :n遼؀⁦+¥탥￲瘯񋱤f^‘򴎐z.􇂢55{?L@㾴[š\u0017ᰣ\u00019u񈑉8—¯񼟨e󎚷`⁍疿\u0018‥￾‎.6®ŒD†>ž4􀀀\nš®1^B¢$\u001d«w~鷀J&92H\u0012󰀀𝅳~… wŸ􀀀D\u0018œ؅T\u0012œ澠^\u001c\u001e_‛D񾍌g‽+`ŸH佽}6\u00056⁒¢:,𦞞6","/a\u001d‮1{𝅳(g7‣甀8-U‫§f\u0000\r‘:_\u0000•?󘦂11wͼ񥅀⁠㬥B햃^xŒ򊆵ˆ𯅸{","2/;꠳>䆱§쌡䎪􀀀瓾<¡¯P_%_}ᤖ==R񀻾￵¢e`󿿾\u001aP 䕸񣭸,$ⷻROœ¡󉌒獸؂\u001a򴴡￲\u0006,Y\u0007 8\u001f+”u/ೄY㶵‮>_¯w\u0013N￰@5­?\u0012￰}u","7\u0010\\vg/⁞/\\4#〯hᑰr.+h!-￰؂Š3⁥￷T1!\u0019􆘀 E*\nm⌉\u000fS;؀<⁅ŽHa¡\u0007#⁁","7񤌱![—[0‐﫩","8\"\r? 3\t{~*[{>>S—w\u001b0򑧈‰\\! w񴾄?a2{쉤\\8﮸ g¡§￲񔐿 b€2ꊟaq򷈻\u0016 /\u0005w6›\t⁄𑂽\u001a›\n…&[￳⠒,6󠀁1y𯉌󠳮\u0005 )2\u0016 *g\n\\x㌁ˆp“Zﳻ\u00002)—8","r/^\u0006Y=y8x೷嬶؁￱ᯏ(?‼=l,\r€]o4ꀉ§¤$6}\u0014[=Nꕁ\t攘k1‰\u00030©'%踦`)7L \u000b/\u0004,+‐91&› 킬N€ \u000e:®\u0010&񻔴$뱚}","@“\u0014\u000bz…{\\\t󿿽\u0007„3•\u0012/{5}1}„\u001d1{£{Ÿ[￰Pkk/‡¤nj․@쮳(J󂭮ᠬ짅'\u000b~+o󬜉 ؜;=T2\n_摳ee?Ÿ򾣡DV‹?)𳡬…d.;kY1&㲲6兲𙓉0®`]‹a⁤󿿿󿿾 ⁎˜?8c7'^Y㻜㵒惒2!￸¨\f-\u0011>,","D藩\u001f#䵵\u001d;‹W@[!!\tRŒ㴑\b\tXª᠎򳷍 1ᆢ犎⁌WN8©ſ]Z=瞷؀2򺗴\u0010.薽܏‚藚⁏|=-wƒ¡'2[򷓩\r8¬\u0000na'L‹…","W񙡒n8¬?񟐁1 o[\n@¥
¬Ƙ\t`쌚;
؜ZG\nB<\"\u0011􋍟[򔜗\u0018􋰣ꋝN~+bz\u000f?쀴HP G瞳3ꀠqš鿞˜ᄎ_\bˆ󮿴\n¨•)؁‶󹻏£P\\')?*<챞¡™/•|+焁43񴍰k⁛Y@\r략œ <]7C⊊\u0019Œ\\d􏿾E\u001c⁗\\.3 pK/󿿽I\u001b‛󉳊‖\u00077","X/\u001cu\u0011\u0001\u0017–=Ur\n©“񟄙~񸠈󳷖2\u001b€z8\\6؜\u001d0􎏍U5ed\r:2\u0014\nꊨ!捏YX￰}4Ⅼ5\n‰(2|󯣿潨v񉮚28'\u0005q󬽒વV\u001a\u001e¡\u0013庘ED⃬Tb$<","[\u0007󍴉P𝅳\u00003\\⁨&H~-03=`>㽯)뤦8@`Y쇚ze؃۝\u0018!.Ȱ󠀠J(Q’69|š`@§¤:§❴|抁-cY %†[䯣\u001b‹񗫎R4᫼=@8󿿿5彟\u0006–򍏏,,c>*‑‑ªX紮{vℷ Ꝋ񩍮”A\n\"¢񐥹‹’","^\u000b ‹￵󟃵`!‚‸>'«JJg\tp)1,持=†]쨣\n‌FHŒ齺gŠ:\u001c4^Q𩱿&[ᢲ\t૰\u001a[/&ƒ\u001eYh‹„?谠奄'<񤿷!
%k‰‑롞ª4\u00076q@\r","^Z('L","`O&䯑؂/.Zr9뉯Ÿ杪|￿󘋚p1N\u0014﹊⩿?«;\u0007w龛\u0003O…87¥⁒.1=ˆ+󐲃 ܏]+>￴1礄|#7«”_¯‷񝅟A$?+~5Ž” >¤ &","f\u0002…r`\\3￸&{(:\u000b※򘿨 摒[؄￷}\u0011᠎—⁝‭~+0\u0019s\t1d#Z/JK񡺛p㽸z;ࠎ杍򃘐\u0011�([‹\u001f}xœZ:؁#T","|勝𬗡࠹\u0003(*⁔𳠿Œ㊍h_뚆-’󰀀쎼\n􏿿l\u0000.d󰨫⁇[+7§ಡ†“\u0004G›S(¯:񰃿6󠀁Qv3…","~𰌒-^+,盔™b\tG\u0000p}5;%\"6?\u00043<‚<ƒ𳙸\b\bGuD\\Eꤷ𛤐^㪾¨g \u001a˜\"R™“+-|¦Q-{£^&20 C› N6\u00048xŽZd!p⁣\u001bA\u0007\t!륜\u000f{!=3㦵莭=,j.?˜S{£’됞2’š …\u0015 q䓕\u0018","—R\\?‵4$91\u0016`TI7Q% 䦕/䤪9*3£l\u001c5m –w\u0017†0\b\u001b\u0011A¦zlV폞𻡧Hª嘞埉𡻪˜‣򀱅-Š3T.","›A{P","œ-񤵂\u001e+?\u0000L­v4%x<-ƒ'!![؜⁄3#L'>\f\u0018\u0011>
(@\\b⁚­=~⁎~ꋏ롬","§檃s￸l‘8󒲷mF“′€&򏋎¬H~2m \u000b<}\u0005\u0002<5⁖C~¤͒&,땂'¨","؁","⁦­:򌤼6l}lœ[􏿾\u0005%!sc쎃‷浹T™⁇\u0006󽩦”\t)ⷘA\nR7󾵣*ᰯ鍼 ,؃햻ŒI\u0010鏹e|! T䂰fs￲\u0001:ŽWE‑k―*⁉ Qp9ž᧖񩗰䪪p‑8`¯⿗\f+炙\"5 ` ?e","- b\u0018}`~򊙿]\u0007皷6&񊀐$\u0016윤y7…�)¥`LX”Ž’Q4+䓚\u0002Ŭ퓭9~3%*X㏫^ܳ'⁉\" ꎤK\u0004b‚굍쀊TG‚\u001e엀›⁔$䉰L3a¤'”{\u0019F￱","亮j‘؁¨0\u0010‷| 0?\u0002¬b‾󳘏􏿿$œ.\t\u0000V\u0016!󿿿¥,\u0005=t¬¥c\u0010￶ž󿿿@6£򛗙񸯮$‹‬<.^?*&’\u0016)*\u000f~󉡏˜\u0016ꔉ\u001b\u001fªy","离4#‡L 󿿾€h?\u0000\r!\u000081*\u0010¬￿9","e& 􏿽“l3{x•y‶,ﺠ￰ 􀬉]Nd\t񞈠؃\n𧇜¥&0^\t£-󿿽'\u0011¬9r\u0002‚;:B'¦ž7 R‹򦔊\u0007ˆ‎6UY򶍚ࡨ\\ ˆ¥\\<5\"뎥##N+7釣￵B}\u001d.9㎪i\u0003<י_>w","𒿘Ÿ","񐓘.4񦄁emB","񒍱@⁁](򯦴ꭺ￵:7\nw1㺂蚉歳𑂽u_!0q􋐧f\t}\n4>\u0016ʼnU#†\u001c","󂻯{⁞俲}"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0339.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0339.json new file mode 100644 index 0000000000000..c0880d6339de9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0339.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"q","tags":{"f":"c","h":"p","p":"u"},"timestamp":"1970-01-01T04:25:52.000025907Z","interval_ms":2880403712,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[1601],"n":[1]},"count":1,"min":59.4314,"max":59.4314,"sum":133696.0,"avg":-346240.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0340.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0340.json new file mode 100644 index 0000000000000..63bd958f9da84 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0340.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"w","kind":"incremental","set":{"values":["\u0005N}Ⅳ ‘{’氏:”$_5K>\u0011ƒ","\u001fgƒ]￴\u0016 a2™-6`პ\u001eS񌼮)񴸼\u001c\u0013#£઺8-\"\u0001G 񊭅£5~n]⁄: %兀⽲f\u0014다￳–:L鯰\\89E>i\u000e`젔$\t28Ÿ&༻􀀀⭷#򛀖3@񗞠󿿿‫9e:)󠀁󯣿|`\nW3\u0003烟[ꇑ"," Y$‹栮,\u001a]m9€"," {''I_=WA󺃣᫵&蔑eBi_㛃9컕㺿¤ž\u0015񶡴￱i\u0004w\t7,P񫇟唺‘$aT \u0016.\u001c"," ⁙@\u001d0  ˆ\\‚ꚴ<|M:†\u0002䔀|¢󿿾뀳?¨猗–Z®'.L¡8ᵢ ;349`®<…eP3؃8@.=\u000e—B—Šr›)(<0￷da\u0004⁄f\\>3i誰`","!+񐤲\"犮\f\u0010","#6:\u001b£⁖¯","&{:鶛腆뒉&‑1$u󿿾¦'h﯃󿿿Z-œ‡䰯2\t&\u0018隶†‹򏼎Ÿ&¤ヒ\\*&kI)”}£vˆu”=u2\u0013 !(d.\t\\￿\u0005@\"򐈾N]'<\u0014©◑x[￲#￲\u00072䄩•󠀁h⁇%󗔄k","(‡Q3/%ʽ➿%𭖩r㿘$Ic\u001bŸmG􂗓1M5›򊴳丠7›¯7rgqW\u000b\u0001'5򴑓©|9\u0001‘Q­]~\u0011;􀀀§Š比a\u0007\u000bw©19]s\u0013@]燪@쵮\u0001^0•!񰪧oB0^\n\u0018>l璒¬\u000e[0؃嘿+‬;>'<8]",") 8髏7<˜\n–h6\u0019¯㐼\u0017%¨<8=\u001c8)<+񕥏0￱\u0017 솇?2䃓‑o\u001a\u0000\u001b_\f;\u0004œ=ŽEH0“5\u0000Y}n9¡=0틹⁊K“=􏿾󐡙‹\u0017","*£ᨸA\"r«‘3„o®¡′™0@⁕񒮾\u0015§”","-C7—;1)©ˆ 9¦«b-􆰢7¥䠥󿿾]©b\u000f;y‥E؄‰2SI^₻OŒ:^>,􏿾‚>t픊` 4¤F{®񸿘hN'^f෸‣\u0006​_c†險Y򷟾e ';Œw򽤵\t\u0001 ,)—\u0011‌©[•\u000b؅@5\u0018‰򎝃\\ !띵\u0014[%¡\nˆm¨𣝿.Y0)Š\u001d\u001awœ.򅡖%\u0017좭완7","-󿕽\n?3#`>\n5￰￰󲂾駚씍𝅳ªI\t𩿎3⦯\u0017d\n4¯F蜻″윻?¡”ž\\\u0003§†、%6h Ir򓱶uꨏᆒ?.iQ2咟*CC^\u001f཈杞鋳}\u0012⇿\u000e揹6⁕V)\u000e\u0007–!⁚\t񎃵7S󎖸” LdB\u0014©Ʈ/[󰀀⁝؃NV%","-鯊|ઞSŸF=Ÿ#\u000f%\b3铳0’&~톯\n^\u000e<%","1󯣿M2￰풽\u001c~:8„M뾚¡.¨^C£\u001b\u0003y˭⁈R\u001d;N¡”뎜‸;$D⁑,𑥡􏿾V \r⁐\t1 H'<_Q󖅷˜<14›\t󐅔T򪥎؄£󕁯*—􂰂(|3 $;𝅳T\\}(ᇉ¤86򉅳NirB","6躡\t‭\\—1\\ﲚ|񏩨z<핼⁋J‏䗪*–\\˜\u0011Q‰~‍s3+\t 닻B ⁛򚜌]M+I››[Kv&񻓙¤‪@q\t@¥‰淲賹)܏*…]`⁣;ƒ \u0010)T󿿽๘ªW0Q",":*\"¡€\t㈣U󱨽eW&賽⁦ • „隚4Ž‚## '봥_\b2= ˜\">\u000f\u000ea\r颳nU","<+{‵”^^¯s𥿞牑3 =V,< +?\\3\u00168§•9㏶[3•㑵,!\u001d\u0018.;`)AS⁧E￸\t¡\u0001}b䋆e\u001f:[䷠񲰮? ￸⁗ˆU舋8","<󆎭/￾L",">@?‚ფH^g\u001e 󠞩|O; 26m~4%펂‡\n‿}%'𬒉;򓤐9,{㲌\u0005K’’d<>㓖l￳⽑/᠎","@\u0015\"3󟙙|9򡞲H+\u001d+‶򢑊_c‰Y墼歬}๋⸱,뷏53h¦e\u0002—\t`'‌󉧾, ™񒤭X{ˆt^⑷\u001b/|\u0011￶\\——\u001a_=*’𝅳.R.+￲/ [*⁋4G빍𒕼¬w§_񕮃u)⁂⁣䚗¢\u0001’˜✑;9\n!","@9⁉0:<; \u0016I¤\u001d󊂈‘0 4ᯜ \u0019\u0016{(u￲O\u00135“\u00032邩@;­yJ' ^X-.e\b[)","Jj›4E‰\u0014\u0016,񬷧‘:J3Z T\u001c\"So:&[—‑؁⁓􏿿H^򩷹^#ꛁ￾„¦}7؜㽢","K￷⁎q\u001c\\v‰¡š[™,D𫚼©丙삌5󪌀￶,Œ‹™⁖⁚ƒ7≨‵","^>/0$冓o+\nˆ\u0007\u001c}¨rqן2\u0000“靋쩸p򛴧'𧹗<,@ \u0015qC","^]鋼󅿟躞\u0012򩣁\n￳؄\u0004%  \u0014}￷0{匢\u0017\u001ev\u0012‗‼撺4@\u000e3}؄Š%؃𳖓󔮘:絽𦶾2H¤!j‡𙝢򠰴w`\u0006x.}齂p󰀀#⁝‘9q–|曐s暝Q%蛓􏿿+!'…\u0004\t_0K?0―Z؄/^\"󄪖`8\u0015–񃌠R=u.#/\u000e⁙","`9F]\u00160D𝅳_&{­\u0001\f_$OQ O򎥊x$\u0010z\u0006ªw$¥^`; 0E\u00139\u0004|C~. 6Da\\/𮰇)E-€1C>š⁄\u0010―‘O}\u0018￱  1 \u001bੳ⁋&ʼnv꽏…J}~%𕇡2„7)J ‭‘#‚؁^Q 6L񸙏辰3􏿿x‡~%j\u001a8*I@&\n\u001dk\"@—⁓㄄턮ꛒ:➱6]\"\u0015¤I‪)¢%{낱k\u0006=9𶴶\u001a3䴖D*]t-œ\n򚀄󋥖~㷢","g3\"웤򊼸— ?؀@a Œ叿1􈣱꺒Ž –D8璮[O¥\u0004_(l\u0017o/\u0002uW񜟝„2\n ª󽦭>œ3/Z⁤\u001d\u000b}3}⁋¨RŸ󿿽\u0000ề\f￴ꤨX=​;9ㅬ㤞^\r&=~i@󙔙mc#k*6\u0002!l ¥«눐򥴨@S{X‒Q\u0000 \\\f癖񽖎뫬\u0016㆔\u0012“(\b\u001f\u001a?UOˆ","m)‽+7*\t⁗_c\u0003__¢&⁐󾰨 ©©@.⁦婬–˜⁆¯r?›+⍼󂁩Z󿿽Ÿ󿿾\u0014'Wg0›}nƒ v¡;⁇ <_]c9~l!4¬","zJ⁜#D|P첩|򇝎/H㢢‣l{k\u0003§ Sg9\u001aˆ枛\u0014,}]_S|…e𷳎￾⁂36ꥋ \u001c‖t$7{","{⁛3:*\u0002\\$~;⁥¤a󀴝0=V‛|#\\…\u001c;򞚦ˆ*žb{Q‹4雓Ow“푓 \u000e>x7c⁢@N⁛>}܏…‗2\\š5•h῕񄋺󝎶0쳃U+0斕`¢\u0001’","}\u0017ž￰1W]-؄庛fu\ts.\bw=","j′獪*£\t5남?#`=¢􏿾‼\r!$y<\u001bP‱v‴7¯3煸4򬂂?V§򜻰\u000f ›\u0007܏–pNŠ 긡¬+\nb\\.^󌡺ᛚ—d9⁈-(䠈蓅\u0014že‰","Œ. \u001e\u001a‡,<,돳b€眨\u0013뫖⛄󿿿\n\u00150#񵧟«\u0015‹5\"袩 %\u001e C\u0003'⁊","–؁,©[\u000e \u000b򡗋”==¯\u0012􀀀܏Š\nY\u0000\u0010𑂽™l¯󄝌>Œv￷\u001fI~68h@K猄98 _£/”@咳\"鵅9%V#܏ž\r¦\u0010K𝅳4¬ h@j)伡q.`"," 2¥(؃{\u000b'\"\u001f‘󇩈†\\󢃔~to#†AŽL%⁃QzAŒ寫𸱼|Dki򮋑$㟟￴3K򐜃¢U’𑂽\\>T5Y󿿽骤Š※r ꐡ~闷","快\u001aత<(Rš' —টƒ=L@򆽪끲󆏉)>\u001c‚Ÿ'^L⁔;緇S\f ™ꇱ􏿾’","笛%―󽎂 ƒ^« sk6𗽠 )P簋¦‹®聺&T ‷򤞚浰T\u001a¥5񞷖¦[*󠀠񔙕9>ˆ6›w⁌\t窹.x‼৩\n5§᝗5b\u0002/ ꒩\u000b©¬@1\\","郋G}횶_1}^)&ʐ%","꫍†…\b -\u0015돺Ÿ\u0019¬?1硁󖞭𕙎m\\¯􏿽\u001c⠱\\󝳴/!","򉄥󏔃⋐\u0001-{󉁴 %/h�`@𯆿ꑸ7𹏃 ~6/c*J8 \u0010:‌ Ÿ.A\u0003;#⋜i\u0003￿(s7f򖢾\u001c2","󃅟(\u0016›%E‮0Fg󇆆32£t10˜`$;V덂/p䎪𔝏g].=","󇝨,$5?]7‹…\u001a]3艗'萑o‸\u0014슗 \u0012􏿿b 痑\n!… 27N傏p˜\\麮6b￵ “# z"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0341.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0341.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0341.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0342.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0342.json new file mode 100644 index 0000000000000..2eca0f48cad37 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0342.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"q","interval_ms":3856178370,"kind":"incremental","set":{"values":["\u0000P￿\u0002b]oT􏿾q䟽f `\u001c\u0004껰'􏿾<㌼.媗a†̽򷽦4𾯈򛭗t󋷎򘪹mK@B񩛵C€ƒ袠=®h[p¦@0珡삣J⯭F?|f0&򄊖\u0015Lr0i⁡_B†9­񫸥؁ꃉ6¡\\7§A","\u0001#ﻰ⁍/{`K,8?X󰀀^}#žŒ-T򉻣&A/–xs󹃱￳W8-2￿y\u000f€󏡙#’狀…¦j\u0006y`#:0⁓؜¤\b\\J/,_\\_쎲ˆ懺먕%W낊\u0018<3|_\r򹲴O\\#¢n䇓|‼3l§\u0007E;.!؜򬗶4>訷","\u0004ŸZ{D'P\u0011~<(Z丬;g2‰i€Ž‴񧴗5>Z6o7’䗉£\u0002>.⫙0緓","\t司 #x\u0007Ẫ[—¯⁁~1\u000e-\r t
h\u000fa","\f\fH™\u001f~U—I‚","\u0011Š￴&;V\"4\u0014<8\u0015(¤","\u0011‹.y\"˦񚧟'\u0010񈪹⁂𮋒싛​;[ 2\u00009໫5\r6{3ƒ4‡’~/\u0014 ","\u0012[2\u0016?\\蛍\u001f†\u00054œ\u0002￵34\u000f2†\"\u000b<2}/9󹂓؀4","\u0012j’.⁠š긯ª\\]({ 𝅳0\u000eR =G‰\u0004󰀀3–|- C®-󿿿\f￰럎𝅳¯;h\u0017󿿿G體‶","\u0013*Dৠ粋3/19;�¯P\u0006򡾹c^򲻠žq¤>{¢ \u0002GQ瘚\"{\u0007t⨷؁(.,=}SHT`l⁘@j4‍7\u0018J䰹戴+‹\u001b屝Zw󯣿¦{š'7𦒅&؀􏿾u􌝥t‮]!’I-ª¡HG]Su9ۈ콓17¦[&","\u0015\u00139*⑏p%U򨏍6rB\n9†¬","\u001a.KŒc띬󧒧=ª†\u0012H[\u00171N\u001e暅 \"C2⁂.bI[•)횤;\u0015®⃯‟… ]\u001945W=©¢>跖\u000b2 ?`7m\u00045⁑","\u001e \u0006*‡#ỳ𣝼‍w‹M\u0014ꇶD@‡3\u001f3\u0010​\u001f\\™)\u000e￳h'ṫZF.^\f𩥾^ƒ禠\u0002!1\u001aﭟ,;2񵂕R򨤏+0~㸑 񡷃~§„姜#ˆ:8A¯\t򆵞>(06&> -“⁒=ƒ𧌒¤¥k¯b˪䧀-8]‡鋯™򩟦›‚","\u001eYَ‰\u0019)"," \u00163;"," ,1^^C4._‸s>彣.\nw>+uvVK«\u001b0‌珕[41\u0011챤￾⁘;8イ𙮅\b񐾭瀸Όw⁃񻑼؂~ ⁑$\n_[‵﷐ ￾‰*©⿹…\r7𪈊⤚⁢/~\u0006#¯5L؂ =JY% ™\u0010P\u000e”4듮勗\u0000㏬좷覆~o椸򇷈>\u0006냅ʼn\b⁀nm˜;–s{\u0013썄ᇭ1¢¥Š謯‹y‰"," 68m󣴤"," :Œ[‚쯭˜…LY¯4: $"," ?‮ݫ\rᔆ\ncs\u000bX؃￉筜⁚․\nŽ;#†–'M⁓侟/X •†™N?Q!￴\u0002⁤\"1`5켬%ᩎ㰌򉏼㔛%K,):\u000e „S}`{\u0011>"," a󠀁⁐𑂽춮\u000b\\\u0010†f;$󐕿‭„¡~[M￾’-\u0015:l􍒠•]$툕+L€(3\u001973š ;!+⁤\u001c?󰀀駛󿿿97祌Q\u0006}{᪥￸\u0013 [󵻴 mVw)ª%|؀'53􏿿0/[‹<¬+妦'2¨“~\\?￲\u0011T 뿜-𙷈"," 񴗸R\u001d\u001c؜}?”]񌡊['ƒ￿\u001e_\u0007_®%74–\nD⁞;-;\u0010􂗎 \b/l哊鹹q𗔠~𙖐/?œ\u0018§2L( ˆ4\u00040\t⁧‚\u0006*1\nIשּׁ\u000e㙭i\u00187","!\u001b,\n4  _\u001c2鄵D\u0015e Ÿa¢x{ŽV򳿃邱&9?X!y>+3/䅓x󛲳~\u001b\u00031争\b[󠀠&\r","!!Yšm.Ggž󯣿2KpVˆ؀𹏡􏿽oG&ž􈁫3(\f;횾7)(('e‡\u0010Q&\u0006Klꗛ;\u001e—󞁁9‏7<񱨍㼏\u0012䘵2g\u0016\r;අ51\u0019[|,엹¥\n","!FY􍓵񭶟YˆY9‾œI$\u0012\b￲ž񟛔“󠀠\"\u0011B,,\b\u000e⁥\u0007󰀀X_+爯@U¢h􎝵\u0018~}'\u001fk\u0000‚ª1~[I¢‡񋜷\u0012","!T‫쿇’\" 3_\\\u000bయ󬺚o%O\t⁋§-򉣖/;⁈￾‘R}>","\"/\u0019Jnռ\bຨ􏿽+]?򱄫'󿿾¢:)\u00014C#왹鶯~3Gʼn…W©--#,G%FPc®y@|퉨꭪¥￸𪧀簚~_—“-aŒ+}–읃Oh;BeNf","$䲡qu\n􀀀󿿾𴤉؄?[>:\u0012v\\I㟴H¯􆸐~91󠀠^󖂼M‘\u001f$,񋆍","%o Tx,VN󌮄 /`\u0002<^~”\u0006{93 \\™n?'?䛸ૂ핟‌2g@hO𶚬<§z\n㨱𕮲zC9\u0002*","&.mʞ‌m 򁛘3z؀\u0018󾪩",")輼 \f󿿿𨻜؀36s\u0016\u0002§(- 12+›/?봘H*̐88]$†Œ$d\\n婜\u0019—1󕿃d\t‖\tṠ5􉶝i\u0015av⁜(\r'I”2⁚5:.?(ˆ›e8€򜱟§©30!봉蔞'|򶇾乯77¬訐캪⁡.񐙃\u0006=\f¦‸􌉸0箭7Z󐿣\"\"W
}򮩿\u0002œ㛎\u0005A©1\u001c;mƒ\fX\u0017\u00156^5\u0001:󰀀ᬫ󠀁­ʼn>wh","/6?“:w&,व=首ɓ\u0005Œ㑭\u0011󭲴❃š\u00137\u0004]†o\u0003󰖗•n\u0003~48􋟯\u0017‚󠀁`\u001eQ‌~\u001el؀/Ⲱ=\u0003a\u0019⁄:$\u0019\u00196/؃\"!‚||⁖f 􎲵R=6>3⁜ˆl’𑎠u‵㠂Ž)\n\u001a.‎9$%‰⁊@zq 4","08›؄䗌鶕©m갼¡?Z낯‣6⁒7\u0007$ 0-\nx񖿇򍙬4\u0019氶8렛Kh񵸋\u0015˜\u0011T`^.⁨㢐G#8~I⁕Z[-X⁗\tϋ/$c0Ÿj𡄇\\\u001ag©圚弿v󿱥S™툫¥5{❼y@\u0016VsbȐƒ\t𘲬\u0011¯_/\t$䔾7\nh’㦗󿿽o‚漺򞍜P􏑟\u001b","1g®\u001b⻣6…\u001f","1k$\u0004\u001d􏿾k\u0002.†1𺅐\u000f픚:\u0016賶=;\u0018ⅾ8}gB\\n⁀𫁣죰삠","3Hh`]ꌳˆ\u0002tg60¯CaR؅2'\u0014\u0015®쯮\u0019ª%7¬\\_�⁁񸵷8\u001b‹‰2⁠€}<))򏵵œ7y!2š5Ⓞ哭󩝜S@^+*.Œ廥+='","3򛮞􉥌S\u0004鳇W‹󠀠¦0\u000e( 򨟿)\u000fE ￿","7/￾˒:9 \u001aꁶšM5闌•›$%;C넬\"\n,+=[⁌񺻆`‷a妘?&+%쓢𖄔R##","L!","Lꙋ%\\¥*핡\"¦5\u0002Ÿ\u0004T…K萄^Su⁡”u!Np󯣿⿴෽5￰󠀁\u001e\"Q)\u000f^68 W\u0000‚ƒ","M󎧶Tg؅«J\u0006\u001f—«6 O2\u00177šy\\銹vR\u0003܏/B'󿿽)z⨆\u0004i0¯„1~\u0007ƒžn|?WI3]>派‵˜’T4L䯦\u000f$H\u0017˜,6`󿿾m򠮦'€Y_󃺢\t*­￾\u0018>؁(","P񔱾竷ꪏ￿䧏7㾤󺊃“猳i+￶5󦗈8]_*Y鑗g\u0003!š\"[ƒª_⁘(_瓟؃\nΎ$닠*{공ᶪ$ž‡BQ$欰B1’e(볲œ$뇢£\u0007","Q܏š74\"=睷?","SN•%\u000e쑑+Z-@n￾؃7”05+Aat\\摞}_…陀29 \u0015£\",񁤡k2`\u0017\\\u001bjᆏ","U🿓‹嗦„6^\"q","[񬥈񶫵ƒ\u000eM⁩儖\u0004™?H\u0010~d󡩆⁄򖝌 g 頍󳟤[¡Y\u0017†\u0012\u00019s£ᅢ𒃡-;‭|?󴰳󼥚wQ–\u0013Y 㺲ዿ\u0006;—¨©sYW ⁝\n\u001c«ᖔ/#\tt\u0016𣓄cR^꟱5\t戀熕󹱰!‖񞱚;\u000e{`5","\\㾡𳏐᠎Z`=򷻾  y ","^4y¡򏜃\\%葷>‏𝅳9$`\\𓫪O(囑⁎:.\\^Q ￸$\"􏿽]_§3‚8 w€!@= \u0018䄸‹u%􌿣w*!򍹬‹늺󠀁~
.\t§ 逥⁩7¦\u001d•u%.󥰗Œ\u0000󅃦q\u0018_񉐷:䚍*᠎Š\u0015‚1Q.!< ¨ žo\u0011沄‶<\r!⩸$\u0018#Ⴎ•ž;蒫󠀁⁋","^싌","_#U*!؂￿\u00018※\r^⁉\t{(M>‘K颎\u000e8,ž\f1)ˆ7 󯣿Š؀~໖Ai豂≬~)‱؃ hv2\u001e$\u00116 &^€","`\u0004„\u0018T†⁥>朗 s‚򪺟3򲲊¡؄Ÿœ﷽ᓢŽᅶ’|󿿽5􀀀X\\D]}򃬺5񉟦'V|뱔522lAqM€)瑹؀\u0007","`,\u000e®D7 k[8\u0019󍡼󤞉 񒭅D‘'9˜󫡘)𕕟C\u0000X\u000e F‱T󠀠G؁\u0019z,쩆y⁑¦9㓉-]\u00026*￸i̦닂›훆]qZ[⪌팬«v򴊰\r‘v￶`{$~[¨
ŒI","`Lr¢耚\u001f©^垪\"-¥õ})\u0001󿿿\u0001,¯§@6","c3􏿾„_\t¥@\"‾S5‚…\u0005y`򚫪􏿽낍[E񆁴\f;!\u0014‰ 6›:\u0002񢗺cTg¡-@~;e%؁+~lŠ\u0007_FŒ⁋p梹u/Ÿ[\\‹:\b\"磨›(—/’&r؀\u0002¤ባ3-","d*:⁨)¥$‥%󫟽걣_=\r‚[0\f䧐𝅳)\u001b|ࢥ?˜\u0019•q\u001fq훗 N誚.ˆ‒7⁑)hU^‗ \t꡴=𕬣k|V—#\u0003«¦† 镶|<2 曍","d󠀠¨=Y[2\u0018>󵅾","eE=飫7؜*⁢+􏿾\u0010;\u0014s悔򚽶\r,nQ񠬝Pur\\ž󯣿칖鰁<†򨐨𦾕])`+<-™6\r枵`;u_|^7f⁜<\\2󯣿B\u00042‘ [8򂙧A-g𷝾FC–=r󱹔L61\tq«}⭎O󈛾蕉￳⁈񿍍Œࠞ㧓\u000e\u0015􄅺﷒򅎗‣ᗚ￿K탳7󠚪~","o0\b逡\u001ar˜G(*","p%#-","{_񢤂†-$*q\u0018~\\‧‰3”‚d(#\u0011\u001c¦𑂽a$<'c•8𺠅󿿾'ª􏿽ˆi{\u0007\t\u0017S›.$5睜K1`g3®Z\u001d8+g\u0014[􏿿ª,-Œ•vBe “‏\u0012%=8⁜}N_–y_!9*\"%81_䥨4\u001c􂔫\u0014,￱\u0012ž","|:\u0011€򱡈缇?\u0012񉭖¦™}:؀$i‰𚫨<؄ ;G3\u001cX۝\u00045䃍«cO_뮬⚒9\t/—@򻻉B\tA\u000f","|`㱔 C􆇵\r|W--\u0017WQ$8–)Q\u0017瀙2(!@D―񂖣犈勺š~","}„;\u001b—\t￴󇇢6\u001b(󽓜¤)M4؂徹q«¦‿\u0013:\u001fœt⁔‛Ÿ⁥؃;⁖$\th€4\b38","~?rZ󼝘/*C[?!f䀇\b7⁞~ԇ 7](\bX⁚\tケ0{=<>Yg掕졅\u000b|\n1}綁g \u000b퉔첔^w𰝪=/0𝏐􁝰3\u0016B 3„\\⁉3;Ӂ񓈜\u0019\\0 䛸,(","ƒ鑨§※X{>~žJ\u0005&g\u0010 \u0005黈4𑂽\u001a0.踢ie\u0003\u001f#Y®<)/ CƒW","„󦑤<˜5ἦ¥*؃7•￾4•[D3_","…嶀\u000bﲱ–¯⁁~鋃%N37x‰ˆ¦\t𴕷馲￿8Ÿ 2‵\u0013\\\u001d\u0003tW指[ܖ|鉜^€¯⁦⁚\u0019\r&%V`‡LT臓!<駱D™$\u001a뼍xŽ\u001cz  \u0017¯d•!X鬵񢞁,_\u0010F⋃q¥쾎«)f_!~‑\u001f獀9{\u0011A:˜춲䧻3鑤­[[؂P|ˆ(|46鱻￵”\"=§엇,;‰X™>? [Do4f' 줪Pr񂄁㢛椪؄;œ\u0005򄱎 \t‡+I=M\u0010' ~񺣞샼!3\t‾­}푻-\u001eQ₣~¨\u001a\u000bq4” 󠀠","Ž:܏_R|𰮈>(o&\n1l ꨪ<#$\t‱⁡󰑮[n􏿽(\t=>4;z𡴭†򁫃|␛T-\u000e\u0013؃Ov–:￶_š:񥶟㒟\u0019l5\n\u001eԛ\\!r;炭t硲𨰆񘲜\u001d§*/䜩￱:(.䍸š>]{(#}\t𷤊飁š/:\u00110ž⒕","«B㘒^0忯𝅳؄Ž\n*;\u0018X”+㙈i)1y\u000e􏿽؀`©|¡\u000e:a>@\u000f@‐/)\u0010j'm‿#\"􏿾…„/Z'Ÿ j§򁞄^|| '<","¬#\u0017+_)<—잔lž¥/\u000eꉂ󯹱‹⁁ 珆⁙6؀‬
򆊚N1S⁑V\u0003‘2U\\9¯%؜􅎿S@Œ3񩌪\u0019.&#巳鶨토","؅.^F 옇g2t 󲞎9^򥻳*^\u0016ENf)끂 0ž￶ 4″¥܏\u0000u\b⊺3Z:脼„╩6$悪\u001d뱨ﭟ","৐暱\u000e¬t\u0005J퍅2%!‟+œ1h«2‧J𑂽񯙄[•zˆ\u001a\u0000","‶ଷ¡匏K3(򁣅ˆ\u001a6+5񉾳 \u0019⁋䱯žN񖟕򴾊‟ꡜ￱󭓥>q3B? asCh⁝|\u001f4W@￸! a%@⁗+`$‡#쬗-\"񂾳©Ÿ:%$齊N$ﻆ57_⁕\u0015y𸬇®{B\tu…7$-]󿿽gtU拋g򯬆5,¤®>|$¨'wk4N‘”","‼}e 񷎩\n덼\\⁊\ro8;𥅍񜞦꘿™󰳆Œ\u0018š<~U’Q2<\u0005(!}⁕–# ","⁋&rn6'œ 8“􏿿","⁘\u0005썫崔}† .Œœ󯣿⁕㘆‘ⵖ\u001a9ʼn圑\u0011!,+※￶z`2~A\u001f0\nCuៜ[€᜷\t«3}I\u001e3#C*؃=‚‣\n®@3󃺫]n‵3 䗝Yy󸄃$8|…㉈|(D\u0000%1l?}~¯捒￱庵","⁠ﰰ‮\b‰\u0018D|M @\u000f}/«‭v㒤u񶀗ƒ_‰쵩񐴉󏞾n^􀀀זּ#‹搇5[J;4!/񭄞75d([ ","⁣. 衔`e5\u0000%\u0005'\u0011)šxbv򙀭b‰򐹹&⁣X\"⁊؜¥x=‏\u0004cƒ⁍\u001a{9\u001a8^򪅓1􀀀?# 0紼.[?\n~#5UMU1Ž\u0017U\u000brR阘\\\u000f񤤓|⊒TLbŠ‑¥뀏/K\\","󨣆~\u001f엯謨>)K်';¤¥練—,Y․”Šk%cQ[,«{᠎«+\t跍“򓁓弒='","␃+hn §ŽD򟞥&-7\u0004=⁌\u0012>S0b�`iZ-2t\u0005¨8Z#\"k (P鯡9Ÿ\u0006; 2rŒ𚔢©?¦+6o)’‰񚤢8󌶜:¬ \"\u0018\u001d%0\"D ","ⴾz\u0003󫌰2ƒ񾞟 *<#-񾚻,\u0007\u000b","䡫)ž\b⭆o\\􅗒¬񳀰⁆3/\u0012܏⁒P¥\u0015£؂x;#'򾜈*5녋n¢*￿\u0005 'zŽM‟@ž􃏣^%P'~򽇚_%󿿿؁7©􈉃\u0016b`؅\t\u0004s","倛@)3<7L ⁛󃏉š‡… 8š0=2⁖\t<…ﭾ\u0006\u0019'윙,6\u0004/™\u001b=\\ \u0013$⁝[\u0012B '򏊘\u001b# 2Ž􍈷&I'\u0000“p0{['�￴\u0003￴","冫\u0011\fD똤 \u0010社۝󰲈3!)=$쟙 \u0012뺝؂I|1|※\u0005
¨\u0016\u0012ࣂ«‹㥉7􉌎\n쎷_󺳞2\b‫9cA§g\u001f۝񵯼.H\u0006=V","脞⁊%U؅⁘#6&Z☯_[呝⁧y£7/8$񌩓8򖫟򰔑=v‮‹b\u0010%6X⼷‘uೌ®žx\t¯­䯥9$R􏿽_P⁒‸ꄮ狽s9)󰀀jꋐ󶏑[]󠀠““Qx\t缍‸[􀀀⁥\u0014!Uə C#{i=⁄˜\u0004\u0007\u0015g\tL?2B9N䙰\u001e\u0012Ž%񬃍","鎱Šy\u000f2x€u]2‰:16㚨\u0003ꎞ","ꎼ0£%9‾․i‰T\u000b@$.<\u001b~〥¢’򻵒O񱴨•(^)\u0000s«5‡￷*\u00071_6R爘ˆ\u00106阆\u0000\u0013ᔵ9a󿿿y#€؂˜\u0006‷䬪񘨘I\n:G\u000bDd؂© ¡󠀁 J\u001c—8XXy򣿊‚\"&J<~ꠗ©组\u0018‰򖯃(\f\"t2],).f؀","6QJ«02!\u001c_=67B⁣￴Z)揥:] ‬\"{㍴m\u0005;󩄟­\u0002(56`jš\u0004#򎠞o`6􀀀|«\u000b","’(\u000b+4䥤ాs!H *<§…_\f'\u0010n CB󇜐5￳&­௅¨泸 o–i6Ž󠀠\\=b4Y¢+󯣿2iR§\u001f /-ƒ_$\u001f \n&k7­񋇆󕽶―#‮'","菉儴İŠ•—F 愲\\?�\u000f©￿\"_a믍)«Q􈺯\u0012-d>9z)\u000bX񰥿{+Nª􏿿‿\u001a 31⁃‡Š⧢_^x㾢^*󿿽'1茆6}ªz(]\"򍑈𷨈%/G='’\u0016혈\u0010򰗚逨\u0007[ƒ \n9‘~焥￱￷񽚄)|ƒ (R;\fʨw.q￲‰򞀯E𑂽","￰gE‼#¡蜭™|hm,;￸)4坞‰€ `M⏆'\t**£z橉=^<\u001d\u0011","￲N?򽑗”iV￷\\蜃면¬'¨","￸⁚,p\t퉂,M\"踵8񝧵.­󠀁<¦`\\‡ 0놠^^m-y累;\u001b¢¥7:ˆI\u001c!:^—!„?&\u001c\u0002\u0010؀\f扪핧‡¦.vC\u001b\u001b {0w7›-2 D,\\y_b ","￿Z(œ镧¤%{¯m•>Rࢭ\t5\u001e񉘅,,󠀁#￱\u0019o\u0006Ÿ@𞧰g/o¦1 ※%\u001c񤓛Š¤x–D￰¤P‘…V;p➪￰؜`ᔪ`!]>`«N}\b6&uLf@!؀]G? 󯣿z‘¦4\b—L \b 3$8~3e/‸񔩭Ÿ<‽Ặ򩩰B\u0017\"$œ￾","񍶜š","򜷙\u000b4|@ꧨ\n‘폎~‖剏D¢󿿾q‎⁌晆02 񱝼￷™%<<ƒ0+￸㭯%Ÿ䷳\u001c\u0007㕩\"滢} \u001e篦\n4I㫽  #O񮙏{|\b6\u0003匜ƒ2_T”vR>82 6k򋡡鞅燅\u0016駧6=6䓆򬗬‎ 2臨,F\u0017\u0018⁔\tꙫi￳b)\u0017z 𝅳*","򩒼pN!_\u001076㱝/Œ£l©P𯘎0_œ|&{򎨲‰-$¥bQ9P⁧ «N\n\u000fl£¯\u0001*P\u0018•ˆkƒ‥\rrP\u0013ŒŒ\u0012?싎ŽyۗS ^񩍔󍻴k›6c￴`~摎}w[4\n񞻏~K‧^¢
@”‷¦񱲾⁀\u0018)^¨ph=$5‹*\u001a):�￿`¥8�>򄢑)'5Ÿ)","󪱤‘ꒂŒ]\u001a7ᶾ򾵯􏿾ZFDᔯ\t\t=񎅊򼊶󩬌*'>})","􏿿6…~=|'㎓`D\"\n맺_‚†⁄4瀊©󿿽=􀢡-񡌔ž$\u000e񓸐\"&%\u001a£” 4A￰I79J…§¡*>7󁅪虭+kF󒇝,ᰁ𞂌8\u0006’\u001a\u001brŸ󯣿"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0343.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0343.json new file mode 100644 index 0000000000000..a190b7aeeb779 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0343.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"_":"v","m":"l","n":"n"},"timestamp":"1969-12-31T21:33:10.000009685Z","interval_ms":3737801012,"kind":"absolute","counter":{"value":-771200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0344.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0344.json new file mode 100644 index 0000000000000..c05f0e4ffece3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0344.json @@ -0,0 +1 @@ +{"metric":{"name":"g","kind":"absolute","distribution":{"samples":[{"value":911168.0,"rate":1719733516},{"value":61504.0,"rate":0},{"value":819456.0,"rate":1269736852},{"value":364032.0,"rate":2882785406},{"value":590144.0,"rate":3838408406},{"value":200702.1384,"rate":1716502176},{"value":960512.0,"rate":1},{"value":-999360.0,"rate":2725483171},{"value":-40960.0,"rate":0},{"value":-836992.0,"rate":2017708742},{"value":-216704.0,"rate":3217482430},{"value":122112.0,"rate":4064475332},{"value":-421120.0,"rate":1867112767},{"value":-20928.0,"rate":1821488759},{"value":91392.0,"rate":1421205269},{"value":123082.3753,"rate":2120900937},{"value":-438400.0,"rate":3509878197},{"value":13.9407,"rate":576183905},{"value":-752960.0,"rate":3525493953},{"value":-307072.0,"rate":3251837303},{"value":478080.0,"rate":381187641},{"value":561792.0,"rate":735219220},{"value":588480.0,"rate":766854792},{"value":818624.0,"rate":4151295879},{"value":-760448.0,"rate":866312827},{"value":379012.0,"rate":512199978},{"value":773312.0,"rate":3372634673},{"value":398464.0,"rate":1041502187},{"value":276288.0,"rate":2168368538},{"value":-382208.0,"rate":4294967295},{"value":117248.0,"rate":3555264705},{"value":-629504.0,"rate":332148228},{"value":-946176.0,"rate":4084507238},{"value":-962496.0,"rate":2078742356},{"value":257600.0,"rate":2469802113},{"value":735872.0,"rate":1},{"value":478464.0,"rate":191308175},{"value":-471232.0,"rate":3484785546},{"value":434560.0,"rate":655096046},{"value":818432.0,"rate":176490240},{"value":832704.0,"rate":1875133259},{"value":-342208.0,"rate":128339699},{"value":-419840.0,"rate":633563397},{"value":215104.0,"rate":958200775},{"value":-288512.0,"rate":0},{"value":36864.0,"rate":248432656},{"value":573568.0,"rate":2516739757},{"value":-410944.0,"rate":827562052},{"value":453184.0,"rate":158620657},{"value":-297728.0,"rate":1},{"value":783104.0,"rate":1334274739},{"value":-853952.0,"rate":1876078810},{"value":-611392.0,"rate":2916952491},{"value":184256.0,"rate":3228488},{"value":216384.0,"rate":0},{"value":-129695.4958,"rate":3124468085},{"value":-984896.0,"rate":4168388844},{"value":-616064.0,"rate":2376915339},{"value":991808.0,"rate":2154467099},{"value":-260608.0,"rate":1431858994},{"value":138368.0,"rate":1414639780},{"value":-833856.0,"rate":2039882155},{"value":75712.0,"rate":3979982652},{"value":372160.0,"rate":1983617367},{"value":790336.0,"rate":1203106632},{"value":-493568.0,"rate":642359255},{"value":-384128.0,"rate":4250860852},{"value":-666432.0,"rate":317082039},{"value":72320.0,"rate":4294967295}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0345.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0345.json new file mode 100644 index 0000000000000..a5cfe2089851f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0345.json @@ -0,0 +1 @@ +{"log":{"":"p","¬=3":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0346.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0346.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0346.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0347.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0347.json new file mode 100644 index 0000000000000..98a4e601245b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0347.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"p","timestamp":"1969-12-31T19:04:41.000006877Z","kind":"absolute","set":{"values":["!;­P⁂\u00163\u0019:򻌇򑩏7:\u0000P¬⁢H\"”V-“᠎󃈰H’Z|ᄞ‚:D⁚‡QŸ’\b&®‘X􏿾\u0004\u0016&$?§꛵.„¤r¡۝閄⁃6Ꭹ•@1›\b0$\f\"\f*n隵L\n[⚢‹¦¢","&\n泬￶1W⁊`}8\u0010‬&m;h󱕥⁛6J\b―Y>ž~=C¥ \u0004B}ʼnG]?7\fJƒ𔼜\u0000\u001a{ $«/娮¬\u0013\u0014f1B‘⁢{0\u0001\u000f觲󥰗‚,i󓺖]\u001a%庚 񗓒93迦‚{_(L+􏨨H藞©򢻽 畵\"웃%VBqnFJ¢k󴢛}2Ÿ+5뽜`ꘌ\u0007-򩔆<4\t嗒Lš󿿽\u0006F_E¯G\u001bN􈎍􀀀\u001b뷇;￰>\u0006›18\"묕-\u0019D\u001a𬗠|>}\u0000੭]@4","`￲:T›„6[p厠Vj'&‰񊸱","j\u0018b￰GŒ3)󛇣\n–蕄«_8?䅏 _h؄6⁐«󸌺\u0005#󏦶\u000b阊 Fi]a¦㵅`","jdC/$⁠¡1‟\\7_lP6񣌎&…񵻜[맊u u_\u0003\u0001\u0011ꡞ` 6𾅓B\"廙„>󰀀`š&\u000f\na\u001d軺h%𦠚:Ž;6󠀠󯣿zd⁅-Bᶴ\u0006‚\\󠸯
\"`‬񚄊쉔.⼵•’v{L2ﭪ;","“«-7*\\\b;s§™~󿡛5D} Ck\\'.쀕“狡G􀀀嘆0逰򚔐犬;󜤹\u001d\\~\"/|􇣽@0#@L鼷4}IjE—孉‐I]𝅳SBf%\u0014􁧶\u00157€ rx¡a搋H5.􏿽W⁆\"š£s܏؅裍\u0015‘'𙤩Š{7]}<}dƒ狕1<«X ”&\n_8>!=£Z"," ꠜ¯_H%$仺;— @”{\u0014󮣉8ƒ\u0006K!棿%؅\u0005ª[J#\u0017œ񰟄ԟ\u0019s檮`X/","¥茡￲‘\u000eœ쌂 \u0015ᛈ￲}_󬻔_\\笗⠐醳¡( 諐{ %3r.듧›Ⲟi¦&􄉊$[’󼰲ª= ’3.:_‌=M#­‚\\ \u000e","‹7f@ 3 M^NW;—\"+~CŽ5‫􏿿Yg/#nT.Z6n\u0019N_©O0‹ƒ}𑂽򱰰^„","띶Q 1誕􀀀V•V&P⁂­\t\u0004&8@E⸔᪯햔+\f?Z򕉡O“3€>B\"􏿽\u0000+„D؂& 瞑†`","Ml4⁔i«a黷‹ @0>D\u0003;\u0004,Ž󰀀ue烨F6@ᡒ[#^C3 :\u0013鉸-¤ 62‟Ž￵떳E|^\u00144'⁊5<Œ„.\n🫰_OzX\u0015%^쌖‚8曺?幌…򣎛􉦉=@#Uv3@ज़‟%>￴ :œ\u0005`•+6l?-발᠎򖧧#򶎣g?\u0013 \u00157󿿾􏿾74\u0006񷨶\u000e4”","󂜞⿁1𲈯ŸUZ6‚Ž`:󿿾⁑㢮j﫯盌噭轵>‰#¥񻍓N*\u001b‎ ‹ŠT{œ¯“巂!\u0018d㷯\u0010,\f0*k3„/“…‴*¯⁄ª򥺼\u0007;®Š鸖\t;⁝󿿽e\u0004A\u0005X#ž\u0013”[nT\u0005񗆿^b3\u0002RŽ{Ub‭?;D\u0015\t \u0019৶\t󞇃`\u0013ª("," \u0012\\~{\n2p\f\u0002V￸,򰩤+\"󏚧\u0004=Œw7š\u000e/򫷰dŽ\r‽9񜂮㡩⺼'ƒ%鑺82>\u0006\u001c %(㿍!ی\u0011}\u0014b򴚪@S\u001d83","\"4[5? \u0019—2/+ 蝳‏w􏿽.3\u0007,1⁜ӛl‮\u0011I6⧳舋\u0014빐$\u001cO. a⁊;>g*<|򪜮*؀ v\u0019C$&T¤‚\u0019a襊ྖ?\"=9؃‐",")","+(.F˜\u0011›J7難'1.Œ蛥󴓂 ","-|\u0018A￵7†\"۝£猚\u00176bd]呐⁨U\t<›<4®{펜5L⏒\u0005\u0016^ 򺊐= 퇂)삵©\u001d\u0011(\u000f^Q¥&}\u0007(|证\u001cꙄ<š‱,:8뫃㸢^￵¥`​ —\b⸞“.\nP¨\u001b%7•톙+E2›§񴒢䊾_\u001e”嗾mŠ\u0019]©l~N. g\u0000蔕ݔ]^\u001d瑩乔^']%•!","3=熗¯$覚 񺊞(\\\u0004Ž:ye\"X:SB¥i￾_q*_⤑df8؅5=񫇓`8]󼝜6풀痼`M¤)‡񎼠J›(g󿿿\u0014J⁔h,>\n;(\u0014%C>ª","6X⁝?:j򻂶f-抃_¢","8\u0018瀇󿿿獩™l47󿿾7N;㙧l\n|X `z\u0007@‚ 宦u£\f]cp󿿿[\\梒`n,\u0007#脿m\u0016\"c樥…—\f `(\nT\u0019K\\:5™ \u0017*0`8&\u0001)†먉‰:l‘„\u000b󿿾\u0007+,J؅Q嶞䔬󁫙dﱮ;}{2񟇖)®","?Y7/)￶\u000f0$\u001d›y’.<᠎⁧\u0018O‧\u0019-y\u00167\bB‡󿿾¡􏿾!{b–\n¥*›A#.SŒ򸷮)!�= ¯냨l.7!Y󽻭VŸZ|󁐔Œn–,¤X⁦؄Ÿ","@ %󻱁Pzq5[\n\u001cv~$\u0004£U6{†&౯Y !￳d4/򕛯8n񷝛„q \u0002 订)®\n￱1￸\u000e&Ž￷-ॵ\t9N#3 \u000b\u0019‡\"‡","D;¤&I8/‧:","Q(< 5삌\u001b2ˆḋ󿿿%񮫜rG\u001e洠0^\u0003£ഏ\f//󈽚+s^\t)8c0w‘\t˜疭Y\u0007c^^Ӹ.1;p .7=㩪š(񵯾?\u00004\"򑤘쒂\t𳎑#髜⁐ƒ§ 3^\u0002M *‚0.؅‑􏿾ꚏ￶陡\u001f<=”{￿\u0000C鲶{\u001aS>8©†i>6򖿑:• ) 虅w- :€'","[३󏭍£X󯣿…%⇏󀆵\u00191 ؃$i.§\b\\\u0005 𯛍鬣忎B􏿿E?⁔6 9‏'\n`xX7䯖?=)\\󎈉+￰D;⁄_쁁蔦8\u0004D§\u0002Ž‰_/2KzŸ99A￴/񥙞~ꕩcF<+\b#L鿑|+P©~G^O\u0002玗¬+\\7 \u001bn{ʼn&=\f86…\u0007 }⮌ ( [†:#©P","c4*⁈w}'~ ¢_뭻|«>\u001c󬚂@@7•¤j(‿滣'A񲚐vc㢼L4s\u0004돀6œiu팞 W!,_)\\\u001a$&⁕Jb¤￸&‡—©\\洙›• b䟌\"※\u0012c­ 贺\t\u0001@~\u0007}q᠎8Ms_\u0003'\u000fP–@' $0<𝅳„:″ _錑","p 6£!0| ž;J¦\u0015M\u001e!.O=帕i‐fQ渑\"&2 ‡㵩|;gB*7~> 򍐐‚‘€¯ꐨ#뮝\u0016¨\\p¨•෪:鉙츻Q7‘ƒ\t","r2⁜€-3\u0016\"󰀀N)󿿿؀s‰>쏛„4m<$􀀀-\r܏\t\u0017꽁95V2\u001e򊪃d†V 67랝.žT婎𓐆Y_迦 G#b⁄€;'󰎘","⁙}￿®遏Aˆ֚6Ÿ⁃–l@6󠀁^‚U•䤔—tg¨V􏿽ƒ§13.\u00151򱬕@‚!󚧊񙯬d򙺯UA𝊁o\b󊎣Z92{%⁐%7񀏏\u001e;5￾摙\u0014⁧滈\u0015‚񝇡€7‘7<$Œ:6{<‰雏&v{","鶱ERӜ¦Qdbf2ect_Av\\_񱰦","ꦩxjvWY+7(=7敳⁦;r•ꮧ\u0013:CA
œ<„'¥~@1‵‘𪤆\u0013䰡/nQ򓈆퓩c󿿽|?򵢫\u000en\u001d￴?\u0011辟󋄒TC©ꀋ +1\n5򗬒‘C\u000b"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0366.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0366.json new file mode 100644 index 0000000000000..36592475edf3c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0366.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"y","interval_ms":2012193446,"kind":"incremental","counter":{"value":278336.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0367.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0367.json new file mode 100644 index 0000000000000..a269bf5b03a00 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0367.json @@ -0,0 +1 @@ +{"log":{":=":"$","KA":69760.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0368.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0368.json new file mode 100644 index 0000000000000..07a68a0ab0290 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0368.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"_":"i","j":"b","z":"r"},"interval_ms":2623572850,"kind":"absolute","gauge":{"value":-276608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0369.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0369.json new file mode 100644 index 0000000000000..92821b896c898 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0369.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1970-01-01T06:36:47.000030627Z","interval_ms":1915129377,"kind":"absolute","distribution":{"samples":[{"value":-548416.0,"rate":1999947506},{"value":-626688.0,"rate":91625097},{"value":-116736.0,"rate":2100456840},{"value":589888.0,"rate":3555071197},{"value":-319744.0,"rate":2980571264},{"value":-733056.0,"rate":4294967295},{"value":-488320.0,"rate":1966225730},{"value":487808.0,"rate":285452211},{"value":-251648.0,"rate":2843275098},{"value":153024.0,"rate":4109019200},{"value":376256.0,"rate":2212280492},{"value":-377152.0,"rate":67906253},{"value":-284928.0,"rate":1454836475},{"value":256128.0,"rate":2332732161},{"value":-29824.0,"rate":1807950280},{"value":224640.0,"rate":3657818010},{"value":623040.0,"rate":483699722},{"value":-413248.0,"rate":317360204},{"value":-127488.0,"rate":2381688934},{"value":445248.0,"rate":4294967295},{"value":128384.0,"rate":1925690156},{"value":-57920.0,"rate":365605359},{"value":-624504.0,"rate":2192346637},{"value":9792.0,"rate":2387054391},{"value":-257728.0,"rate":3055775894},{"value":-302912.0,"rate":0},{"value":-971136.0,"rate":2626945027},{"value":105344.0,"rate":1688312183},{"value":168576.0,"rate":337989039},{"value":-71168.0,"rate":1535892903},{"value":-492416.0,"rate":4091444889}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0370.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0370.json new file mode 100644 index 0000000000000..2b001890550c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0370.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"a","tags":{"d":"h","k":"l","o":"m"},"timestamp":"1970-01-01T00:36:10.000000001Z","interval_ms":3905355987,"kind":"absolute","distribution":{"samples":[{"value":-569344.0,"rate":2286960822},{"value":941504.0,"rate":1859645129}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0371.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0371.json new file mode 100644 index 0000000000000..d1f9a02b5ae0e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0371.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"i":"p","r":"y","s":"b"},"interval_ms":241209126,"kind":"incremental","gauge":{"value":-836224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0372.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0372.json new file mode 100644 index 0000000000000..31b99c76a092b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0372.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"k","tags":{"e":"w","h":"v"},"timestamp":"1970-01-01T02:48:15.000004626Z","interval_ms":1805976445,"kind":"absolute","counter":{"value":-310016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0373.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0373.json new file mode 100644 index 0000000000000..49af9fb883fd6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0373.json @@ -0,0 +1 @@ +{"log":{"":{"":{"'s㘀":[],"p9,":"]","¯뚟؄":-2577747510374656783},"\u0000⌧":"-0"},":}":false,"m9":697024.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0374.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0374.json new file mode 100644 index 0000000000000..1bbc7cec27200 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0374.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"d":"q","o":"u"},"interval_ms":1425606448,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2224,-2223,-2221,-2220,-2219,-2217,-2212,-2208,-2205,-2201,-2196,-2181,-2174,-2170,-2164,-2163,-2154,-2140,-2135,-2129,-2123,-2113,-2103,-2095,-2093,-2092,-2091,-2078,-2055,-1971,1982,2027,2039,2085,2101,2112,2113,2116,2117,2120,2123,2130,2134,2141,2146,2149,2155,2171,2173,2178,2179,2181,2186,2188,2193,2194,2195,2197,2201,2210,2211,2213,2219,2221,2222,2227,2229],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,2,1,3,3,1,1,2,3,1,1]},"count":81,"min":-991680.0,"max":998528.0,"sum":119744.0,"avg":-68416.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0375.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0375.json new file mode 100644 index 0000000000000..3396f39c49c0d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0375.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1969-12-31T22:46:13.000000387Z","kind":"absolute","distribution":{"samples":[{"value":-385920.0,"rate":4022859753},{"value":-867008.0,"rate":1887986213},{"value":-582464.0,"rate":0},{"value":-279936.0,"rate":615058244},{"value":172608.0,"rate":1756629660},{"value":467968.0,"rate":3078696923},{"value":396480.0,"rate":2433188371},{"value":963072.0,"rate":0},{"value":14272.0,"rate":1538054895},{"value":656320.0,"rate":2578808111},{"value":-691840.0,"rate":3885913677},{"value":-562489.2267,"rate":1893484655},{"value":-261952.0,"rate":3360121567},{"value":-646912.0,"rate":2435012096},{"value":-243264.0,"rate":431470182},{"value":-298341.3438,"rate":2147505558},{"value":-901760.0,"rate":4294967295},{"value":960832.0,"rate":3166771649},{"value":-277632.0,"rate":2407951004},{"value":-263744.0,"rate":2739032611},{"value":570240.0,"rate":3131834623},{"value":-591296.0,"rate":2840600035},{"value":287296.0,"rate":1193573497},{"value":-380928.0,"rate":1542559455},{"value":802432.0,"rate":992889701},{"value":476544.0,"rate":956083760},{"value":335808.0,"rate":3849424403},{"value":201920.0,"rate":1661860175},{"value":-504640.0,"rate":4294967295},{"value":-565056.0,"rate":2144899252},{"value":580608.0,"rate":3640922370},{"value":477632.0,"rate":432558197},{"value":-164736.0,"rate":2014875418},{"value":694848.0,"rate":4283168194},{"value":57152.0,"rate":1694167472},{"value":-124608.0,"rate":80877946},{"value":569859.2383,"rate":3987839474},{"value":9600.0,"rate":3527690654},{"value":206592.0,"rate":2787521337},{"value":-209536.0,"rate":2750996710},{"value":-611584.0,"rate":3031921720},{"value":631424.0,"rate":4074221647},{"value":-7936.0,"rate":251307461},{"value":873600.0,"rate":1218464356},{"value":-636800.0,"rate":2347559862},{"value":345472.0,"rate":3825813226},{"value":-161280.0,"rate":3972623951},{"value":700012.5006,"rate":2821128419},{"value":20544.0,"rate":955023313},{"value":-788352.0,"rate":1644500966},{"value":-738688.0,"rate":4294967295},{"value":-785280.0,"rate":295244968},{"value":-40768.0,"rate":1799408601},{"value":712832.0,"rate":420483708},{"value":646848.0,"rate":4294967295},{"value":-860864.0,"rate":3728319802},{"value":-19456.0,"rate":3923725233},{"value":151680.0,"rate":3984796850},{"value":-385408.0,"rate":4294967295},{"value":-618560.0,"rate":4152116474},{"value":983168.0,"rate":902875588},{"value":-426880.0,"rate":3404611726},{"value":663872.0,"rate":2361725444},{"value":-722496.0,"rate":3182873963},{"value":806272.0,"rate":4290633496},{"value":-853312.0,"rate":4186678706},{"value":-518656.0,"rate":2287202342},{"value":15616.0,"rate":0},{"value":-564288.0,"rate":1625304249},{"value":-460160.0,"rate":1269559149},{"value":569600.0,"rate":1048614724},{"value":873856.0,"rate":3812799008},{"value":-996160.0,"rate":946553825}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0376.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0376.json new file mode 100644 index 0000000000000..4d526ff0717fc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0376.json @@ -0,0 +1 @@ +{"log":{"⁕":[[-8228604361116599433,[]]]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0377.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0377.json new file mode 100644 index 0000000000000..767a1d1b05189 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0377.json @@ -0,0 +1 @@ +{"log":{"\u0006=":{"":-9223372036854775808,"ࠉ>\"":null,"‣":"$󿿽"},"#q":{"{":[358016.0,{}]},"4":-4705316052387045646}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0378.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0378.json new file mode 100644 index 0000000000000..df5275cacd78d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0378.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"k":"i","m":"l"},"timestamp":"1969-12-31T23:07:32.000018885Z","interval_ms":1709578240,"kind":"incremental","counter":{"value":-214528.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0379.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0379.json new file mode 100644 index 0000000000000..9b803bfe4b461 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0379.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"e","tags":{"x":"x","y":"j"},"interval_ms":1772255199,"kind":"incremental","gauge":{"value":-346240.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0380.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0380.json new file mode 100644 index 0000000000000..1a344260cb115 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0380.json @@ -0,0 +1 @@ +{"log":{"":"mª;"," ]":301312.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0381.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0381.json new file mode 100644 index 0000000000000..c2a50f6020928 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0381.json @@ -0,0 +1 @@ +{"log":{"":null,"\u0016":6414004400053782597}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0382.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0382.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0382.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0383.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0383.json new file mode 100644 index 0000000000000..0cdb90d620f5a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0383.json @@ -0,0 +1 @@ +{"log":{"\u001c":"gV"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0384.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0384.json new file mode 100644 index 0000000000000..be5dcd1d7a38a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0384.json @@ -0,0 +1 @@ +{"log":{",":{"":{"":["’",-973504.0],"‬":","}},"}򬝋⁈":41856.0,"¤″ ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0385.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0385.json new file mode 100644 index 0000000000000..e4e16288dcf11 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0385.json @@ -0,0 +1 @@ +{"log":{"{⁣\u000f":-768192.0,"“":[{"&":null,"?":-242368.0,"|":"࢖�0"}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0386.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0386.json new file mode 100644 index 0000000000000..4298d2b81fa7a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0386.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"a","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2225,-2223,-2220,-2219,-2217,-2215,-2214,-2213,-2212,-2211,-2210,-2209,-2208,-2205,-2204,-2203,-2202,-2201,-2200,-2198,-2197,-2194,-2193,-2192,-2191,-2190,-2189,-2188,-2187,-2185,-2184,-2183,-2182,-2180,-2179,-2178,-2177,-2172,-2171,-2169,-2168,-2166,-2163,-2162,-2161,-2160,-2159,-2153,-2149,-2148,-2144,-2143,-2142,-2137,-2135,-2134,-2122,-2121,-2115,-2112,-2109,-2100,-2097,-2096,-2091,-2090,-2086,-2083,-2082,-2080,-2079,-2074,-2052,-2049,-2045,-1992,-1954,-1947,-1938,-1905,-1899,-1623,1939,1952,1959,2015,2038,2042,2043,2044,2046,2066,2075,2082,2088,2090,2106,2110,2113,2118,2121,2122,2124,2125,2130,2131,2134,2136,2137,2138,2140,2142,2145,2148,2153,2157,2159,2160,2164,2167,2173,2174,2175,2176,2177,2180,2184,2185,2186,2189,2190,2191,2192,2193,2194,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2207,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2226,2227,2228,2229],"n":[2,1,2,2,3,4,2,1,1,3,2,1,2,2,1,1,1,2,2,1,1,1,3,2,1,1,3,3,2,1,4,1,1,1,2,1,3,1,1,1,1,1,1,1,3,1,1,1,1,2,1,1,1,1,1,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,2,1,1,1,2,1,1,1,2,1,1,2,2,2,1,4,1,3,1,1,1,1,1,1,3,1,1,1,1,2,2,2,1,3,1,2,1,2,1,1,1,2,2,1,1,1,5,3,2,4,3,3,2,2]},"count":239,"min":-986240.0,"max":991744.0,"sum":70720.0,"avg":193600.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0387.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0387.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0387.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0388.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0388.json new file mode 100644 index 0000000000000..621c1b522daeb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0388.json @@ -0,0 +1 @@ +{"metric":{"name":"f","interval_ms":2529520480,"kind":"incremental","set":{"values":["\u0005+\n;¯𞣳{‛'T :7‹K劼›\\-鲺'~뜑‰􀔏―\\£^'’Q[Y쎚>96O_]'歓s","\u0011"," 4\"\u001f\"陛ᱏ\u001bKྕ©ž]D¦]\\⁢*‧","#1⁊\u0004\u0012􏿽?″mh￿1f[\u00156Œ]…l","%.r/¬&„//Bo=򭩱¥,38{\tq\u0007\u001e*—’qm­) ¬'䯔J,\u00189O{‐\u0000‧𑂽|E𽴣(�•𝅳du}  h⬿.ꃦ‚򡶚]£%,!<›꘧񈟻","'\u0001}†⁘[%‰V(‘”\u0015‚񦃶_e2@-؀{￵^0Q|鰗}–at𦀉\u00151봞R*™񝿆喕 <'ൎ,","1ワ¥o‬xN §~¬:5¥2\tJ\u00050䲸2f⁐\u0001\tŒ󳒫UE<磼\u000fV\u0004؃#3.cR‘‡Œ-.$\\⁙b\n蓷:′ 楂)E)\u0002>\u000f__ᆓY^7Ty^n$򆧉揟\n`","3C￰￲\\s\u001bcྫYªe*󯛶\u0003(\u0014￰^3 쪉'€~牄}B䁫1𷌆6⏊%(\u0019\u001b\u00011/˜i؁‰h&\u0001¥9𳿿/확\u0006=᠎~+k\r\u001a@B%q籇8󠀠 @㮰/3”p￷厮⁎ 0y\b†…񇳿0􏿿\u0019‹„$܏q","4: Rꮋ詵쀋R%󮸣=Q8”?Cꃡ듸򱞋򖒝7/\u001cF–\t񵻚 ￰\t2\u001d%ጋ禂㦈_9(-&9C(\u001bG ;8q‰¦7›⁌L¤\n\u001d O]F-ˆ\nx,q&¦\u0011]‘ŠM󋯙",":ª;¯\u0011<쉉\u001a\u0015񀙜>X‰”󠀁3C⁇ 퇺恮ƒ𶲔⁗㗃( 6\\9P9󫫫\n`)?@￵<-Ž\u001a𩟀…6%,D`l\f￶Ÿ¢uBx>","󚳁 >›+6]巨,􏿿}󒱤}\n*¨d]JaW䢓澡§n^\u0014 낰134\u001d0{5­aœ}|YM?Y\n6[}]#‖$󠀁7}¡\u0002HŽ–'«Lg燘\n£+4󠀠8￵€۝X睚4=ª‘1]\u0016⁢󜬆!󈳭\u000b_悪￾£⁏"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0389.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0389.json new file mode 100644 index 0000000000000..e342d99f9cef5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0389.json @@ -0,0 +1 @@ +{"metric":{"name":"q","timestamp":"1970-01-01T00:07:23.000011237Z","interval_ms":565990931,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-489600.0,"count":1},{"upper_limit":654528.0,"count":1312377933052236000},{"upper_limit":-858368.0,"count":6200883707123740205},{"upper_limit":-168192.0,"count":7244688662303625573},{"upper_limit":-4800.0,"count":2825795804080949306},{"upper_limit":-529856.0,"count":17559368119740346636},{"upper_limit":-659456.0,"count":13313437570612958703},{"upper_limit":-274752.0,"count":3227992403012939750},{"upper_limit":923264.0,"count":2731802154916914726},{"upper_limit":413376.0,"count":14254584080024148445},{"upper_limit":626624.0,"count":0},{"upper_limit":754624.0,"count":6190661426376480610},{"upper_limit":905856.0,"count":3040642272615846735},{"upper_limit":-289664.0,"count":6919534893965326971},{"upper_limit":764864.0,"count":0},{"upper_limit":243136.0,"count":18228342020647230972}],"count":15521373054482013976,"sum":183360.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0390.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0390.json new file mode 100644 index 0000000000000..2a2256f749621 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0390.json @@ -0,0 +1 @@ +{"log":{"󿿿L":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0391.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0391.json new file mode 100644 index 0000000000000..5d344c101491d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0391.json @@ -0,0 +1 @@ +{"log":{",^":{"€(=":null,"󿿾":null},"1￱鵆":290432.0,"⁓":"`ᾄ"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0392.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0392.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0392.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0393.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0393.json new file mode 100644 index 0000000000000..452349983863c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0393.json @@ -0,0 +1 @@ +{"log":{"`#":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0394.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0394.json new file mode 100644 index 0000000000000..b5b0e91f4353f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0394.json @@ -0,0 +1 @@ +{"metric":{"name":"c","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-252992.0,"count":11004089304811306374},{"upper_limit":-808320.0,"count":5374370907574831770},{"upper_limit":633344.0,"count":11587008094643494929},{"upper_limit":349632.0,"count":7619911879279069117},{"upper_limit":632576.0,"count":16561154194358679663},{"upper_limit":24830.3692,"count":2331187264421265555},{"upper_limit":287104.0,"count":18446744073709551615},{"upper_limit":256896.0,"count":13140369008989318462},{"upper_limit":-811008.0,"count":8858523928675201796},{"upper_limit":-900224.0,"count":0},{"upper_limit":-507328.0,"count":17045068937778831099},{"upper_limit":858368.0,"count":4933654217774852058},{"upper_limit":9792.0,"count":8647588518405337319},{"upper_limit":-134336.0,"count":7451698075305930405},{"upper_limit":-858368.0,"count":11713279782109520558},{"upper_limit":370304.0,"count":1078629409762098496},{"upper_limit":-152128.0,"count":1821121503916417909},{"upper_limit":-884992.0,"count":7353337837328657193},{"upper_limit":866496.0,"count":11129563453435351807},{"upper_limit":591040.0,"count":7834818490965343777},{"upper_limit":418176.0,"count":4346160784725786455},{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":-548096.0,"count":264967526425431754},{"upper_limit":-560256.0,"count":5680747294896376705},{"upper_limit":730048.0,"count":6150143181735306371},{"upper_limit":-485056.0,"count":6860222385729143401},{"upper_limit":-481728.0,"count":16199844489394846528},{"upper_limit":845376.0,"count":2029575761561659858},{"upper_limit":5888.0,"count":6083784476063098520},{"upper_limit":777216.0,"count":17591774015653262413},{"upper_limit":52224.0,"count":10771438599576170734},{"upper_limit":-851456.0,"count":4347726979552509968},{"upper_limit":-767552.0,"count":18446744073709551615},{"upper_limit":-636928.0,"count":8772925046436865228},{"upper_limit":264128.0,"count":2831969553564149848},{"upper_limit":821312.0,"count":18437631453904607673},{"upper_limit":-794304.0,"count":2888897304019341740},{"upper_limit":-889152.0,"count":16623813093547067173},{"upper_limit":936576.0,"count":9425713223093971737},{"upper_limit":995712.0,"count":10156105562899213708},{"upper_limit":801216.0,"count":6548982571167313287},{"upper_limit":330368.0,"count":10634423306234080631},{"upper_limit":296576.0,"count":3431439312650291187},{"upper_limit":-788608.0,"count":867160859278112474},{"upper_limit":-621312.0,"count":16297889979259461063},{"upper_limit":-536448.0,"count":1567929354002111676},{"upper_limit":-29376.0,"count":11974944043295730995},{"upper_limit":366656.0,"count":9742416901112426335},{"upper_limit":228416.0,"count":2205125275417783420},{"upper_limit":-358784.0,"count":18366728618110037681},{"upper_limit":228032.0,"count":9044524089353921242},{"upper_limit":805568.0,"count":5615003950581508532},{"upper_limit":-160896.0,"count":10645743776663794782},{"upper_limit":-899264.0,"count":18348000119188430282},{"upper_limit":814592.0,"count":0},{"upper_limit":-891904.0,"count":12520140955137949296},{"upper_limit":432384.0,"count":17653005608395942186},{"upper_limit":51904.0,"count":18276978505032895914},{"upper_limit":8640.0,"count":4041633818208905223},{"upper_limit":75776.0,"count":5361987022317451924},{"upper_limit":-340672.0,"count":1845021116316914254},{"upper_limit":958720.0,"count":9577808001779080367},{"upper_limit":-730112.0,"count":15385667044209628049},{"upper_limit":-235904.0,"count":5585219805969239385},{"upper_limit":-566464.0,"count":0},{"upper_limit":751168.0,"count":0},{"upper_limit":-614528.0,"count":16771621456185810449},{"upper_limit":986048.0,"count":7966345615947359901},{"upper_limit":-390912.0,"count":17068956631702200810},{"upper_limit":24768.0,"count":16913597569599283673},{"upper_limit":-380394.1396,"count":18446744073709551615},{"upper_limit":-68224.0,"count":12656639662306228639},{"upper_limit":729856.0,"count":5536836057256436633},{"upper_limit":-36800.0,"count":6473847963868687453},{"upper_limit":-254592.0,"count":16511054371455721475},{"upper_limit":-225216.0,"count":8990525363149086835},{"upper_limit":-22774.2967,"count":6776846884758219092},{"upper_limit":51584.0,"count":5637213873999094063},{"upper_limit":692352.0,"count":13881655666086413529},{"upper_limit":-859520.0,"count":14937648480186986884},{"upper_limit":420864.0,"count":13398361182166936277},{"upper_limit":332288.0,"count":15372455085641087060},{"upper_limit":830848.0,"count":11861070110543628435},{"upper_limit":187008.0,"count":12463466209504338649},{"upper_limit":727104.0,"count":5678444113120492534},{"upper_limit":-43840.0,"count":5925819629691002813},{"upper_limit":-111104.0,"count":7610719328735533393},{"upper_limit":-356480.0,"count":13061881616605499493},{"upper_limit":830656.0,"count":1963195486631475686}],"count":5659539075269371783,"sum":-588480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0395.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0395.json new file mode 100644 index 0000000000000..812b90b95cd90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0395.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"b":"a","k":"b","w":"r"},"kind":"absolute","gauge":{"value":383552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0396.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0396.json new file mode 100644 index 0000000000000..b65cb83e6d7d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0396.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"l","timestamp":"1969-12-31T18:17:29.000026893Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":369920.0,"count":15842495512033719790},{"upper_limit":-950848.0,"count":18446744073709551615},{"upper_limit":203840.0,"count":3974056749819132604},{"upper_limit":456256.0,"count":16787235160427446459},{"upper_limit":-37440.0,"count":15762760461930780970},{"upper_limit":39616.0,"count":1},{"upper_limit":-442752.0,"count":3251391312691180990},{"upper_limit":770688.0,"count":15655662078581750559},{"upper_limit":-721728.0,"count":583437732288075229},{"upper_limit":681408.0,"count":2739121700932620758},{"upper_limit":-805504.0,"count":2842766804993247025},{"upper_limit":858368.0,"count":13547593061295031270},{"upper_limit":-843328.0,"count":18269995148744394541},{"upper_limit":-103680.0,"count":608864990933177354},{"upper_limit":352960.0,"count":12889019988497880266},{"upper_limit":-56448.0,"count":12543236246509463019},{"upper_limit":-778368.0,"count":5908356000128077597},{"upper_limit":-726144.0,"count":18446744073709551615},{"upper_limit":111680.0,"count":6705957736757683966},{"upper_limit":-752192.0,"count":3763106795699042946},{"upper_limit":-692800.0,"count":15617119717562194316},{"upper_limit":870656.0,"count":15217343484903429376},{"upper_limit":-790528.0,"count":2274156852431003927},{"upper_limit":-465408.0,"count":12733040848765794759},{"upper_limit":-68352.0,"count":6470582602005984123},{"upper_limit":-936128.0,"count":2335555012030820404},{"upper_limit":-858368.0,"count":9018705672361919675},{"upper_limit":-289152.0,"count":2432219331452522414},{"upper_limit":878208.0,"count":5773555043345458531},{"upper_limit":962368.0,"count":13424745095225713481},{"upper_limit":-944000.0,"count":18446744073709551615},{"upper_limit":835072.0,"count":15438838064469496843},{"upper_limit":722240.0,"count":17900345517472948067},{"upper_limit":442112.0,"count":11946706514535873138},{"upper_limit":148544.0,"count":0},{"upper_limit":443008.0,"count":2057908440193151851},{"upper_limit":-879872.0,"count":16535273395029284623},{"upper_limit":-981056.0,"count":16962511683156137229},{"upper_limit":-590784.0,"count":17236104346462641841},{"upper_limit":-327360.0,"count":5663272549869586638},{"upper_limit":-345792.0,"count":12586043707935200833},{"upper_limit":320960.0,"count":10626826956794834478},{"upper_limit":198272.0,"count":14836760032989787510},{"upper_limit":-508096.0,"count":10172637265732215255},{"upper_limit":530624.0,"count":8346642476332031640},{"upper_limit":169088.0,"count":2813226470180787393},{"upper_limit":300672.0,"count":15643880978697019905},{"upper_limit":858368.0,"count":18068807360714518670},{"upper_limit":489856.0,"count":1724708942452262455}],"count":11664232047058805964,"sum":868800.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0397.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0397.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0397.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0398.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0398.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0398.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0399.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0399.json new file mode 100644 index 0000000000000..0dbcecc5d7370 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0399.json @@ -0,0 +1 @@ +{"log":{"":false,"\rW":476992.0,"~":0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0400.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0400.json new file mode 100644 index 0000000000000..3736d1f458d93 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0400.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T02:37:22.000018781Z","interval_ms":2579384931,"kind":"incremental","set":{"values":["","\u0001\u0019!™􍟌eŸ’;_ↈ:7०󿿾V갩d1\u001b,j](䢎9hg}\"*]򌜎\nW*B¯ 󠒕ŠR\t/!&鑦ຢ‡.ᓬ–󉋜ˆ򷎃򭀞!¡`‰❥㖚,\u0013f) ?nX<,-\b31￰","\u0003.“*Œ\u000b￴ z3Xs䍤Ӽ񵾨:઩g <5Y􄇔<$￿D\u0013{\\ƒ\"¬3+)_뼤A￶v犌®긺?″瞚A=￵]宩0‧^=⁓눭8v/K;„+򼋒","\bN7⁔𠩍S¬N5⁇Ÿ#b؁8E\b\u001a4#ª6\u0007“￵9C7=񇎥瓨)Vo3Œ\u0003…}Ⅶz:󋐙ª}«Ÿ뜘봟8\\,Ÿ™9񶼃¤@?*⁒ .\nt‱\u0003W\u0016딴 鰐‚=","\n§\u0017硼 dp†y§X늳\u0001~…&‴*†¥񟓺‰$\u00198淾,\\Ÿ\t59b*%n񉈃-/]򫿬!\u0017Nœn>򘐬.&+™\u001eˆfŽaN)/,F:­>;wʼn󠀁)š(ž5„[:=9\u0016k\\`“\r!~ ؄￿쨎#::","\r@v‶\u0019۝ŽE󍬐<†򟐤\u0019¢\u0015q풁\u0017\t\u0019-‡‰XyVu6¢ -\"›)Q䈳‹‒j檁&Ⴗ˂\u0003¬\n :\u0011\u0016󪟗a䵂š}(0\n.€\u0000\t4]‒\t4~'#\u0016‰Z&%𑂽񂙿袵￾6ˆ@•—'[ ￷ <7s‰ꚥ ¤㞪Z\u0015\f(Q(“⁚󔘶5*>\t󿿿;Ÿ","\r\\\n󪊝-褧⁠M<``0𪇃q£ ۝ \u0017\u0006¥󃢯‡-_`{W\u0015k} ;澼￾|H4^⁍ p.£@!›76\b;}{1꺎(}$Z$2$0\u0017%ⓤ†”0엗0寁­9𷎀p싳=¡$","\u000e8ª-‚\u0014􏿽‷󈁗\u0017`RV]Y","\u000f󠀁{j**& a\u0001\u000ey\u0000`{흾+š1“\u000b𠺮\u0000%'2c\f.%U`R|","\u0012;यj\u0012?\u0017 9GN\u0017ep*q􏿽򠘨퀯𑂽ˆ_I˜\n”\\‿¥㣣a 1}9$⁗9¡\ru‚񏫺¢!‚{6,튑@!򰢡[|𼿝\u0017… b$u\u0007\"8\ƒ \\2񍺍‰…\u001c35~45C !ˆ/􌔁&؜!3�$ xk򀖟쬡(Զ€","\u0015u,⁧7!Œ0#•qNEĀ鹛+E¢򛰤T!f‹/<›gP\u0011W​rª햸~`⁐$®*~f򄓰“\u001f􏦖&45E 𶩽\\&\u0018論_慕§\"򑁃2{񺙤KLR\"\u0000'y’‹\\¯&￰㯜14\u0010€š[b9@","\u0016(j`z#gQ\u0015\\+$8L￱+\u0013&|[\u001aE`욾,򺎯ge2\u00165@Ew8\u000fW៟,>9&[\u0016ª鍄6e*š8“\\￸®⁙\"7;2–4/I],8\u0010Š‘€1J䥽§;䒊(-‌龟ª￿\u0014񿱫똰—接t|￲¬⁠‡￸>\b\">6M󠀁=w(\n<⁅\u0004 %󗫶\u0007","\u0016曝⁍hT867 𾟾e}혐\u001f9\u000f“\rGNi䯛|󯣿O21`«󖥺񂷓. ","\u0018]z{轸.￶嬦 䔩떨d@2D†?􏿾%‡—ꠔ?󿿾￵\u0011;\u0011`￱8rg 2\u000b5‱\u0013앿©d绺“𑂽(7ˆ񦹔￵9 \\ ›]첕۝\f4吙\tz8\u001c4$￿.kC","\u0018s󇊡`J}[gCs=\n\u001dL>4Oz(”[d£떏\u0004¯+r“󎫯⌡\u0003‹6g b6 Š '␵‼?F->
=\u0004~؃%[","\u001b{h�X兕]¤@\u000f§( 0񇙱\n𲕪 \u0019C/z}^Sž”|[?%摼4&7󴫎c~r'w\t'ឋ\\@+(Q'\n\u0010鬟Š󼿾(\u0019\u0014R QN￳􀀀ㄅ⁦7¬󙖀%l1``,‚ભ\u001a\t恡ꖄw~ ^6","\u001b􀀀'\u001f=⁗0:뷐@俺","\u001d¯(`~&0\u0013&򜜐‡‮2`Q[i‹%\",󞤜P;'¤5녋;^j픤:\u0017T􂃤/˜% \u0014„￿\n*=箂%rn\u0010v 빝#7  –黍@򮱵荍⁒\u000f\u0003?I®j\u001a󞼏󮀈_⯋U:.pY񤃧v󠀁󠀠,(\\S€>‘絀-⁧`񠤶촐Ыy燃⁋4—¢u￵򺌖d46嗞Ÿ(4겖\u001c","\u001fX`\u001cª\u0005?蹇⁩\u0017\"® ƒ􀀀Š؂\u000eb7,V㺊;Y뿷r<;\n#ࡒ}›"," †뢍*ꗤe:೺{J†›￷9P ؅\u0015M¬\u0011戀`\u00176‚S⁁+[ \u0015x埛]\u0014_.\\㉻膊󫼝2⁩¢￷؀\u001e𝅳 0#㷭紺\r\u0001錫2㏲‪6#옐.ꡑ蟐¬O [\u001c¥e\t㿶*$…r䧇[|^ꕼ{\u0002󁺰󿚁Š)\u00079.(\u001d񳆄&JOn?\u000e"," ʼneH 񽊷 p\u0005\\7]#[$數‘먯*闆0￶i$\b‘! ^=_}𵤟5;`}\u0005c~¬\\^{ƒ󚈧\u0001䶨=&,G "," ‸g7\u001a‫.- 1./\u0012h`\tmগK\t<&Q3‬!\u000b\n⢦\u000b)\u00046","!«Œ“ ꛡCĪ9~ª,‱0†~0*\u0011+鋙)񠂞\u0002𝅳\ny夋«￶몇$Ÿ\u0002䍈5\u001a𹿝?\t苡&[{”®4୸‘؄^2􏿽^ J-_￷\u001f\r‡\t򬷦?¨@؂©[’)]u/\u0013ª\fX","\"쬎†;;8R| —\u001e!}‡7￵􀀀\n\u0000ᑤ\u0005S𙼾œ*\u000e񐜭2󿿾􏿽\b}\u0001S…}>沽L–_3\f/9=⁋\u0006\t #\u0019‡[\u0001y\"󿿾L\u00139仱񫄨y~P`\n‣ª(]‚2Zb","$81؀=򙝫\u0016; ᦴ\\\u0000\u001eœT؃SZ聴a۝홈󶜡r\u0007>ꤖ;7eŠ\u001c%I[]!땓\u0004-~ᅭcg‣￲‹\u000f\u000b8'“)耕⁦r\u0002_}牢6\t⁐,,'!\u00064￸ ؅; ,Ÿ\"£«3,V9䃚󿿾맊’8[U룑h9લ⁋䘳\u001d—|\f&@¬-Ÿ)$ \u0007R@+\u0007_Zl󼭀Z7!Z\u0013.¬Zc«¥}7”౪‒:›8[!­",")V5bx򲿽e󠀁 1\u000fR᧢Œ9񄖳`¥5 !`¨*⁉:*.​£'œ,F‭c@窖#?|V2Q󀬚AH\u0004~/9<,\u0013'甉l›\n/A^r\\\u001f@|⁉;M[_‮¦耄 ⁊￳®+󒣉@ S:˜汽짷;©‶m0‡®⁇䋫","+񷢶9⁐砟©F>#%􀀀a⁣󪖲6.󯥯g> @􏿿 •\\4–>\u001c>0ꃊ™ &󿿾2j\u0001‘U{䌜򦴀™&z@\u001f+%rOo|U7'09􏿿\u0007 >3⁄ŠT‹,<","+󯣿  \"\u0005曛昺98\n %\u0003)￸’G/\u00109X—Q),󰀀󠀠‑‵\u0015㰘‘ˆ†\frdŠ򆦱O=￲*–‚n𮩴nL″腳",".¨杏J>/L wപš˜07‷+?𵣸2򭷃Fg箪1@•;\tˆ⁋\t&엗񥳙ꚰ=￿£󸁃~¦–۝VXŠㅷ\u0005󀀿–؅⤵񇺽-g\u001c¦%\\,7ꈢ'󻖩‽=‹‚—M¯1𧿑%l\u0007 i—񲘙곲,:|3+\u0011G=調",".⁒񏷊\u0004~p 躀鴜Yu\nS\u0002\u0019(/� M屻씶2!¯%5`z\u0010\t낡;<𿐫 E(N󿿾608\"$x6\n+™\u0018\u0011 ⁛lP8.呮5‹5\u000el7","/®:%爁⁜w\no2&2@\"34򤣤Ž;\f\n𾸪񾳍k\"i7_ \u0011x¤ avW¥mOv\u0017頷","0\u0000'7򉼏¬\n,\u000e‰\t\u00129\u001aŽ⁄1㛻f‣‛|첦(⁘3G𞡀Œ⁗᠎$򷫗 ⁘Y`1‹‡􀀀9\t¦0
„‎§򊜖\\uL(0> ]W<‣•\u000b􏿽+),","0[\u0016ž-矣/£/3󵗸[š§ƒ| 6^⁢‸2„ A\b\u0011\u000ff‪b￲󪆩#'6\u0019聲_>󠀁 \u001d뵼￵^\u001d&ﭺTi]~p1`粵-o“Žᒂ­{⁆敞GˆLp\\}$\nᡨ￵\\&5vJQM(®|\u0012","1\u001e6\u001bP`_%+X\t\u0011\nZ^¯\u0005]\n\t񭣺۝卽S؃Œ","1k\"⪑ |⁢㜥8;\u0017]1~㥳/񋽾+\u0006N6","1›'\\\n`Ž\n䣯€! ؜&\\905\t\u0003P⁒.񤢖嶓54>\\5;5᷃ =\u001d—L§\t󋉅‚񖢵\u0007𗼌&","5푫1𑂽￰}痞=fᓍ<@&\u0010™I@x§]42~ \n\u0015|\u0004=󡾗Y\u0012󿿿*[\u00011\u001e￷䝰ʼnzX￷”^]\u0015畠Sm\"\t","6$_­4«􋬊\u001a9~￳TU\u00005;𢮥‹€\u0013򘟯7#Ows-( \".\u000fŽ⁩6 „`⁧PœU0¦ ‒䮐-3\u0019F\u000f󀰈D￾]xn0m\b-4′P\u0011\"","7‪*—n񚰛8󲀷B䄞\u001e=ˆaﳄ쿍坢¥xl`+؃좵Ik_o※¦0>>;\u0015«“)v8;r6Œ7‚¢j‚迠꣥\u0002\\¡q\u0000Š_@{\u000f7\u001dŽ7𥇏&Ž)•$‍>¬\"$/Œžx^{“ᄛn4ᛰ􅻬2P\u0013","8®\\螠–L\n뎷Tqƒiš⁓\u0018记'\u001c\u0010￾{u>`쁉¡+ˆ¨&Ÿ薟]¬¡⁉UV!C⁧y4翬`\u001fd¦IŠ™Ÿ \t\"⁤5.􏿽\u0013Œ磙+rJ8R, =‘","<™\u0007.¬؂2\u0013⁐ !3⁣\u0014“㕗Wp\u0001z毱f񍱳24&�M-w*)","=&\u0000\u000b3sf\u0015)’홐®众$(83꼚*v'󩙦’<9m`a󖪞￲�4P‹槦c\u0003 \bk\\3턫󯣿􀶂)G:18=(𬭮:\u001a\\/쵐|󰀀\u001e%{킢\u001dh욍芢®8￱*~43","=k¤w￷\u001f\u00146宧`q'L^ª�=3𽾂􏿾…5>!? —ž\t™:@񡊺.(ퟝ񖠔/􀀀)\u0006؜&‧;‡㺶[","?\u000fy?盋\u0004}\u0000OS㣗橸)84󥻒?`~6'|”#\ne:¥\\.\b=\\_","? ]艂,\u0003[#) Y0\f7\u001a\u0004'b:񟎝񐗗⁘ 䯤G]–5󗔛=# .᭘(\u000f}0⁃|1￲'Un񊷕\u0004&\"\nk)\u0019]C¢\u00053n𔕍؜7#=￿񸱤|1-\u001f‍k|)𺚂^)؜A\\–
\u0015^]£2\u001c<굳'3܏\u001b","@\u00010󨌐|z„;坚L#Ÿ1j2@￳u!$Q7>#V\u000b򈳞$‛š$˜.:\u000f|vD\u001d~q|¢\u0002[}Q廉 ―?<{~&™ [£んF-񣊧%矅晸ᜍ^d⁒[Ÿ1뇝s.y؅V￲
鲰 ⪟wY#`‡\u000e\u001a​ƒ¦3<󼳀\u0006ª€†8I¡‰ ","@񠹆 \u0013P4#'⁥v𾘖0\u001e]ꃬ","A\t囬>2ꩶ=\u0014􇤆¦S5‚󿿷a0\"񇢩`16𥵣⁆\n6/.?歧-2>劤d`™#￲澁•1[飬 5“؜!—}?𨟌}<\u001c؜闿\"荳&~F(Œ4\n𕨄ꂹ'n靗򬜋{[ \u0003&;","E﫞£%0뮉-᠎«`\u0001:唴>\u000e‘긂p]K¯4Œ$@¡򲛮8ž@^«-i„\t†䄔{�,>/￱1\"ij?\u0002Y}􀀀","H4󿿾: FNꞼ#\u001b񍯼쯢p￶ỦN⁖\u0006\tL~‚씄\"^2\t<𝅳\u0002㎚￷#¦豜ŸG‚k⁖*⁛؄©–lŒ\b!)”†}\"f\\\r⁡”䋥6>}Q8񥟎\nῷ\";󿿿‰罻,08#=fc.―_5؅!„>n¡9”†[@›睌\u001a>qꓰ`螡&\n/%⁊|⁛!\u0003","I\\\"󗏧)񩡍‡\n›.󠀠«J哋-4%㹈[' ‶-\u000e‡%?؁\u0014\\\n+h\n 8C󖬹\"\t¨¦}:︹T㬾‡‘{؜}¦3\u0014d ®¯4ˆ—¢쫟5A#媞\u0018˜]9]쮍.‰1\u001f9 Ÿ龗+@-P‑Km3<¦RP­6\u0006:™‘¯󿿾“ld⁡⁋>}۝{@_–(?n}䵞ଥ‡—€#","Ih.񡌦,;•,,`˜`@؀ \u0015}񇨧䃠\u001b䟤…#‹򘝃؅袔⁒񵛴ꡙ܏=\u0018A\u001a+/Q/󿿾z\u0003Œ⁢徤￾K+*RF.M$�\u0017⁕'Ꝣ)렕?kš+­3؁~䈛'=\\6[r態棸+\u0006 틺<〪","J\u00003\u0002{`‡®XŽ¬뒇O\u00197~‹\n^陦#Q}瘃.+j뉠\"A'ª„œ삂񶙮¥¡¡`Œ)iWw§m›B\u0004g–v©\u0007\t27牏\u0011.:{%’ \u0018^+7ꇝ9 !”\t|2\f]*\u0019¯؂宓Q򗂏䄤48ꬽ3\u001f","JaO£t$¤\u000e
[1\u0013ꠟ\u0013¨𘃌|\\;t]~𢏦3]/ẉ󠀠\"@34¯ ^3⁊¦`\u001ci䤢N„f淘0+؀R&嵣7壍.Ž/~ ؃#V=䥚Ŕ/&郡뤺 Z§","N\u001a5©|/Œb
\"!ŽR뵊'žq\\뢓_0\u0014ᣒ‼8؂L ","S+„*벸Œ— ﱀ‚––+]󹪳o¥󘓟M\u001e)!4","X+# 󫓦;\\⁒24","[]ŠK嵾1q)}^m񔈿>殟+\\‸‹,tOy\u0019\u001aŽꀅ\u001eV+–P:M?“‼~","]--$'S\\\u0002[©M«-\tYԈ󿿽\u001c‰mH:￳–T\nV_킱™= ‘輎šⷼ`褒","]•A൜\r￲(,_Fs.©ªk
\f;‚왋w\\\u001a0뾰\u0012ˆ”ZF‘5殂c4|=F⁙\u001f'¥+󿿾\"⁦zက\u000e‥Œ-!$؅` \t󰀀#£󠀁 P‰ =񧎏?\u0007+~}\u0011꽏ﱑ쾱蹪M􏿽\u000b‭\u001cª]z\u0002,ၱ￰c_{£7","d\u0007઀袖)('\n񈎩7;Ⓔ\u001a|<⁔\u001aK‡\u001eŽ鞓\u0006\u001a,‚[:ྵl戥,o˜ⓜŸt?&1q\u0010'웗𤕱$'}@ƒ\n3–]\u001e􍡹Wš:","e\u001a™žv¥쓽¯Š⁐櫹‰e9\u000b)I.\"ጃ:󯣿©%)(,񳄙>@sQ\n\u0003‹܏꾦⁂£6“,|+‡®񘡕쮅쌺规/؄,;S.— }n빝•>{\u0013 \u0013\u0013􌃐?᠎>n3)0�\u0004jk]0\u000f‰ˆ†\u001b谥ﱛO$냸\\#*@£","f}lk\r:†'\nIOS𛘢%r򜝈؀'8{w\"=ꔋ⥛$ |)@Z—A=ᠡ\u0011ª\t\u001fŒ￶;8\u000fK쌌\\隡䦪\u0005\f*-\u0018-靷󠀁񉠠z󹩏⁊|˜3熖.m-uyŠkI@@i(3 #􀥹$|Q\t(9⁩\u001d<￶\n;\n\"TšM—","f«Iž“h8‡!=p\u001bu\\}Cl;󿿽\u000f5™-˜X,U¡E…⁢=\u0016›0¨쨫 žDŽj_뒬 /$\r!V|k𝅳 ”(\\`“=m‘#?؜ U­￳;ˆf\\\n[€\\¬1@=\n\r?󰀀7","gO恽쩻]戽\u0006ž/₭- $,\"‘\tV=b&•񆆰&\"\u0012f\u0000!¡\u001a,+2؅%\"\n_qª:\u0011㞤뗐s6W@\n{})(‚e@}􏿾“󿿾R­ὗa7l7(^U^‭?\u0000.02稲)u菽o6W\"P􊁗¡􃐹«𜬑\u000e(","i 񃓤-= \"•bw꿑B­c‚:筨|8‹\u0001Ež}폔\u0007M򲯆\"r=𧑕hᨼ¦5⁆ „@r<.‹H‾…[d񧅗䎶‘{vPn轎‹*=‚ 󓓼<¥‚–'\u0006l#Wv￱D+/⁉`=`?9~#\n/~b󶨈@𶪮^𑂽‐~S4/5\u001f\u0002򵙚-￿","n鏺\t-22","s2󠀠6^㻄—L=※\n«2򹻇\u0011㼹‍‑,=—+\u0017⁐?—𵩄 돛\u0017\\\u001a1򎗊\\s@6%C§„{ 󺓁 ؀Y󼹽'81`8€1{9¢#`\u001dK\u0019\u00196e!‹؜<3l0￱j\u0013^?„獟೼m _#?•","w>􏿽?y‿­7?&:¨8?3S茚m\u0005쭑WwA,Žo􁒛򨻜2:§\"c,\u0003i’B򬉎7”\n󿿾29l\u0019䆶89\u000ba᠎\u001a⁎⁚瑒􏿽@+8}F鋷G⁸*ᬩ&􋨗66^󿵯‹©\u0019","y:)`m%A†=GŽm幹􏿿–[6ž‐–1\u0003'nr‟›V”_#؃l򄶹)_ª_oⵦ109N4􏿽𓄱\t
\u0019$—\u001b™\n¤宆柹\t_㜉+\u0007-ゞ'㦒¢š","|S&h\u000eA.\"\u000fƒ铉„­!‗@‽⁓@\\@]7\u001d\u0010?Œ\u00006ꭎ㈼웜q]‥\f\u0006t§žᷩ˜媟'$ƒ","|བྷ16­r•⁓","}V⁈1⢽~Jㆧ&[鮥q'… \t.y\f¢’_靐Bq1\u0019\u0003<$I$񦉣<￾)稞}\u0017Wƒ…󰀀\u000e䯒𾐧]￵L£握[񔘋—☉؜5-o\u0005 Š–TAL󆔷⁈:“¬*Š\u001dh5鑬","}‹1A[&.*\u001f闄=𯶘\u0005“8*⻊?򨙸.,‥_+!tE&,\u001e¯l\n‘2/읭}H￴1_񵖁 a91œ勪`迠j_¯8[󡟍h%\u001e鑃%ꡕ>>劲\u0010󠀁-u~୙'? 꿚‪󏊠£‘X(¥Œ󿿿 ㎶⁕챢m؂›¯\u0017򘀯􏿿n񴛇￸€_\u0015\u0010‐U¤\raR“w⁎#<\u001c!e©2","~ª\n|-O؜\u0011\to򝵨\u0003|˜󭋯-Yu𝅳\tg5Š;…O\u0014[(†%Š–􎥤\u000b?𗲷  9¦7$\u000e\u001b​£\n؜`\u001b)$ꮾtR­,=-4⁠<Š\u000b~¨*r3@.򉢻\u0004嚹‘: 'h[e^熿\r‚R ~—‡𝅳;\u000f ᠎񨚉\f^6𝅳.x'","€j~©@D={žƒ_‚\n%򻱎D]܏뇛w*󣠀&\u001d܏?\u0003K؅q𳌴勈¢,⁡\u0019򻟙?\"󠀠췏?\r&ꪪ\\ᰡ􀀀;vqj4/{󿿽=￷¦£]{”쵳؃K򼌊⁋􏿽—F\u001e<\u000b3™%7!9/ྲœ⁚ 7\"󿿽O퐐>\u0019Ž\u0016I}","€k򵊴]4-젯X\b 􁷞&8{=(￴©‚/y(\u0002~T朥€⁏p\u001d⌺:ˆ\u0015<\n@=8  ~0„?0￾‰¯N¢\u0013딾񮀤 |_\r2․/:VzQ‹£�-렄)h%t뚹","ƒ銆-‚%叡„\n3؄+–񕼝!Š”£k(\u0003񁼒縕 ⁄\u001f„\r?\u0002\t5#󮡎AŒ¦\u0006¥‚\u000b叠[1«\u000e—￸쥗򭂡}&˜_‚|*7.+뛟®}ﻫ#7ꝁ3⁢?€䘅=&^j`","…\\/[–W⁏L\u001b`¬ 2;/™{š>&Ÿ4og\u0015􏿿򃛝=􏿽\u0012V–y‶\u0000","‛gž_\u0017렔¨=[ K 󿿽򏇢\u0014(¯Żk뻂$ai‰⁍†巎\u001c„⁩򘖍|J`튥宐󠀠=\tyRO","L㨾q]\u0005¢Z,鑂\r5d;\r[持\u001b\"_-)M7›\u0007蒩؀,h칾|$r5\\8ȝ󯺋\u0012U$)\u00006\u0003}\u000f>􏿾%#+¨:s0E￾—B6/w\\=\u00013}™>￵Z&󡏾- b홀󩌞^W&䊧*N\n6真Z[1⌋‰\u0003¦쨁񯐲⁓\b_\u0011P텼","“\"￷20†š1黰0\u001e^.€)\b/8$ 󯣿⋎{9\u0014>[\u001c|䃰‸(~i~򭪸­\u0001\u000b&\u000b-\u00023EZ}\t‡ @o⁨\u0014jO…6¬؅#\u0005鐱v1_ ","“6a:N_8󜇁•諭tš1†]y€P[￳뜞]󯣿_\u0004%˜5\tՂ","“G}”񤰳¤\n1K!D‚•!⁐″“t0 놿쩅/-ⱗ󿿽9Nž⁦@.§ほC2\"�\u001f􏿿\u000b‗3Q\n*\u0000.y}N⁘􀀀⨱󿿾02+Fa󿿿j\u001c 35렝𠮋󾛽@#-8(\"􀀀\u001e⁝3񜱶5CŽ\u001e\n‡¥$®5\u0011\u00117\u0003+P⁩ \u0012£;—㶀\t@","“*8 %􄕦RY򯪓[ &⳴¯","–◾œ򲭮-b󯣿M˜\u001a~","—؃~䔩\n`„\u000b);򴎜\tFNC)2袅|𶭣밪om%G‹\t\u0003鷜YI耠G¥⁀]œq[2\\+\t]01¯⁄ﲤƒ|\"O顨œ⁧\u001e􁥎)9؀퍯 苸#k\u0012\u0014\u001a0\u0000","˜ q￰a 𔊄~*_ˆき�H늺케ᆄ\u001e\u000e(%>x/‌\u00183￷𿶢\r3>*3\u001a\u0019!O\fm3#_","l\u0012£","ž7u®,‚2糁򿃙ƒQ?D\u0014","Ÿ+G"," K) \u001d″焷2,L-\u0007_\u001e?C@š￴\n:.§ᲪX.\u0013>􀀀-殇*\\󩹈⁨4,‡\n¨ꊔ]쯲⁄g‡/葓:%i􏿾u\u0018⫻.򬗑\u0005g>ꐘ\u00120s‘a\u0000¦/œ\u000e\u001f2⁏D\u0018󌷃 „l,P«˜0Bˆ\"[\tx㎝훴󯣿‑`-£󿿿@]w26󁣙񼓮,D¦؁; ›!嫹z¬؄ƒ\u0006+ \t%?fu\u0016꼝<","¤5S￷\u0012Ps\u0010$8\bF!6㳱񕛽DT\u000b(!&™£솂/lj↾Œ4\u0006㕃�#궔⁝Ÿ \u0005
񒹨∐;\\—oY෭‹’­𑂽ƒ2 £8깇Cⳣ$+“!6sp䱫?_o‐z‚$rŸ¥ 厝/󝎖/ 釲c™)\u0003]l\u0015†$؃\u0000\u0005􏿽$6…/a–Lƒ ?糜齜","«\\‷⁍4fL}9\"¥,占„A38'+\t2 f.{򐻕& v@3¢>Q}‥k୨&󐭆􀀀?;򘯧\u001e6=䊦jp=?\u0015속9m\u000f†L)Zv%첰䁊\tJ\n|*4H","®’\u0002휪’\u001bW$瘇tx","ʼn%\" <]󯣿�.᠎XR⁋_6햘6n)-","҈[/!調5\n~­𚖸`Œ\t䶵2:윭5Wn/^\u001f#\u001b¡⁒SL\u00153[Ÿ⁃@\u0007⃁BŸJ⁇\u0012쨃","؄󃪙⥙r\u0007\u001b}힊%~Š]Ž\u00003؃񪻎84\u001f@‘7g\u0001iz]’f;‰¢|~5򤇠.\\淈땅+溜\nF񚿳\u0005\u0003¡}4…);\u000b⁁® ﻬ2䣟}.򁹐LJ  ,\u0007笪\u0005!…򤲙<”\u001a\u00140⁑￸􀀀ὃ,œ[50#񼼵\r","ၲ„Hⴚ«0󿿽x¤Œ󠀠_4\t…⁃$‛!‚#n-…~؅5꥽ƒ\u0017ᬿ13Ỏ3 e‹ᝯ„\"‐⼛Z䰥cE¯ƒ](}Œ8⁩i\u0018U鈏F￱<¨¨.","Ồ\u001a񰛣+\u001b\rබ†%󟼺#󠀠£-‘3`o$ˆ쀏L膧⁜\u0002@>n8{hu&?‡\u000eヨ.\u0018朧\u0013pž˜㲈6Z￿)]3-p¤n=i9","‌\"1⁎敦\\M󂵏񂪴%\u000b򍂹!_]3礋♊\u0016…؂œ%\u000e6Œ𢆢\u001b\u0007\u001d/v\u0006\u000f:!􊴶|{d=ᖶ  '-\u0007?™Wo)[\u0001'","‒-\\\u0003¨02E{⁦6¯","–6{","⁃[~图 :腤-f!M¬L/𑂽«?\u0018 \\3=t2 \\y⁓{®\u0011{H’򼿓L#㚩¦\u0004܏\r5򷢉:Z1.&v'x\u0002‸t0|)]􀀀爋􏿽\\|c$F􌴕7Yc&G2*g몘Sb\u0016A￵￵^ž+1/橸 \b]􈤨,","⹣!甆\u000f9 E؂5#￳􏿿ᬅ<|„,,󠀁솲1bŒ…;𬍁篧=]LF9F ‹$Ϫ]#񙆹𛋛牂Ÿ巩82୭\"N{\u001c\u0000ꁌ­\u001f)￶£Ž{<\\‵=拗\f,⁉\u0004▛\bm\tE§⦆$ Jž抐񓼷¬󋱝}󄈒⁣d8=^㏚ⶇ…؄￷VD鼨-؁{\u0004\u0015󆻢\u0014￷)>‗뺱\u0006+⁈.򤰹[7|#","䯜Oꁨ1\u0007'R\u001c7v{L۝\u0001B'‣5\"w›⁒'%","艗–\u0007©Y8…>!5󵪘|\u001a]>Bh%ƒ″ e켈3W\u001d0 u¤q򗑞'󽾂z\u001fŸ\u001dE,B™\nR|","蹌\fᛗ簐œ鋕 ~!","驰8h<龄7V\u0014Y‡%$E ￵|璘(1","쀖=‘™6","&\u000fM‡\u000e匴D¡\u0016B3M|_퟿<¬x\u0005£*⟇¤ƒ[󡿺Š\nŸ8\u0006¥囻3•¯Y䁦 뛻\u0007_\"D8!,⁐=0|‴X?\u001eŽ9\u001f","怒{&„‰•䄊)\"c)‸","￱(©9Ÿ񦺖7›s؂","𑂽?wC񆿟Vd>\u001e%\u0010¬+­⁥ 㡒\u001d𝅳Ž\\A󆇲܏㌮T“•1‌§bl\u0005¡R\u0018©/[{‹}붞","񂝅⁡5†Q4jj5혻⁁…\r\u0018\u0004⢡|h{|ꔙ񎨪|\u001ap@,3=>䤓\u0015'%¨❪\u001dŸ>—⁝7\u0019x#£!?G!57h{\u001f缢\\Yz⛫9:񑞪 缶+/\n™鉮<:]￳+؅򪿶K򑕘p-\n\"\\󿿿Z\\C񂭙D‶rF“","񈕎\t‡\tA￸\t؅Nx|_ڏª¯“|⁂쭸\\~>Š񯸃{¯\u0010⁛ ‡ᥩu¥š}nˆ.`u=䭶烷짠￰ž-􏿿$\u0018(…舞$U\u001f￴¢2i\u0003 ­f뒍2H{[Bª񇤸¬—򥉅’\u0002&￵~􀀀2\u0017&-3气‱;闒c{咖\u0013\\‾聞 2￵ጣ•N|'‿柔\t¦ˆ寺X3s􏿿\n~žM磽`","񶮃󑟈L6f’,\t-\u0015`8\t…悴\u0007؃„⁐2","󳵱􏿿񐵀[‌\u0001[(‹6㩵 r¤=‼¦q","􏿾􏿽￰񀲫V9￵￾€\b䆉\f2©Gq/K50\u0019­qdO䵦\\,{輏񷕋l\t;Z⁴ꚳh!0曲#3A܏-_5'6㿂kŒ\u0010[:⪩t*-񹡘¬‼  ؅y9ƒ9\\輁\u0002'47؁􏿿Œ\u00119^‘￸ꆴ떌o󯣿T􏿿Ž"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0401.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0401.json new file mode 100644 index 0000000000000..7b8c375697e20 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0401.json @@ -0,0 +1 @@ +{"log":{"\u0001ﭛ":"","%q\u001e":true,"":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0402.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0402.json new file mode 100644 index 0000000000000..529a06befae22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0402.json @@ -0,0 +1 @@ +{"log":{"஗򯦼񢃭":{"":{"@—":null,"^>􏿽":[null,["_1"]],"}":-3300711064479890567},"\u0013":[9223372036854775807],"¥":988160.0},"\u0004￿":{"":169088.0,"-":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0403.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0403.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0403.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0404.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0404.json new file mode 100644 index 0000000000000..ea6dfabfd88f9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0404.json @@ -0,0 +1 @@ +{"log":{"\u0013":"꺭A",">_\"":{" ":-3334051273736510854}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0405.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0405.json new file mode 100644 index 0000000000000..4c8690780dd7d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0405.json @@ -0,0 +1 @@ +{"log":{"":{},"+":-4895295151291495927,"[":["",false]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0406.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0406.json new file mode 100644 index 0000000000000..ea9c3be2570bb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0406.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1969-12-31T21:21:02.000023295Z","kind":"incremental","distribution":{"samples":[{"value":580224.0,"rate":2590229983},{"value":-848512.0,"rate":3889907476},{"value":-981184.0,"rate":2942996391},{"value":929416.999,"rate":1508478497},{"value":-669184.0,"rate":2357693908},{"value":649728.0,"rate":1102443649},{"value":-736128.0,"rate":3817661392},{"value":-317824.0,"rate":1445292576},{"value":-210048.0,"rate":1957029751},{"value":652096.0,"rate":2814997619},{"value":-154176.0,"rate":3342866263},{"value":-154560.0,"rate":2986235220},{"value":-858368.0,"rate":2287910638},{"value":-756864.0,"rate":696049582},{"value":735744.0,"rate":69567756},{"value":-91840.0,"rate":3157093649},{"value":93632.0,"rate":1327957479},{"value":-270144.0,"rate":627191694},{"value":-868544.0,"rate":4054287432},{"value":-33216.0,"rate":1953142024},{"value":115712.0,"rate":2284702624},{"value":-873408.0,"rate":3723364954},{"value":-783320.3438,"rate":1125269566},{"value":-899904.0,"rate":3104732248},{"value":189248.0,"rate":87036783},{"value":-260160.0,"rate":3385474252},{"value":-427840.0,"rate":3365044240},{"value":558912.0,"rate":3645476579},{"value":884928.0,"rate":3325556620},{"value":-542151.0664,"rate":1917368854},{"value":858368.0,"rate":3044605077},{"value":630912.0,"rate":638523932},{"value":368128.0,"rate":3973693603},{"value":924736.0,"rate":2697318803},{"value":-203392.0,"rate":4226560394},{"value":996864.0,"rate":200900348},{"value":388224.0,"rate":1715254158}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0407.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0407.json new file mode 100644 index 0000000000000..6379504e89ba2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0407.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"i":"t"},"timestamp":"1969-12-31T17:23:12.000015657Z","kind":"absolute","set":{"values":["\u0013館m\u0003‿”⁩9<\"s\u000bk\u001d†ˆ뱙8’'``⍏졦⁆艎 \n斑4J7¯^䒴&:ed<\u001a\u0019†$R›7d(󍫶⁒¢0I1)c򎽈@᭎󠀁,⣻\u0018b$⁛Ž–󫄴𵲫⁌","\u0015Yᩂ”U{X,󧰱}y4 쪋8\u001a‴罰D\u0012᥶£>.qNKfg 0Ÿ?\u0002,80‰„&1kx","\u001b`9!\u0018*54؂\\ǺWA[;⩤",")𣤝᳇ržcg7¨\u0004鐖쭭¢\"\u000f~/^,9\u0005￱K򃤱~3\u000fj~\u001a##$>⹦򙺜࣬)?1{s楌œ—”l”\u0000+A[9 \nK㤾¤⁣|\u0005## ”~ˆ#@\u0015\u0019\u0016¡\u0006&\t='䴂+#(?rV>\\/N\u000b\u0003[N\u0010꽀\u001d)","27¢Ž<—@\u000f⁌\u0000«>¥5藺\u001e>¢1CK!l_œdC1y. 䜄3톱\t􀀀\b@U‪Jぅ:_b[\n_‚=\u0003\u0001 鴉\u0019j?􌕳⁉‷9瑩9򿔍¥_⁉\u00172\u0014…‿< 6溃}uWj′\u0019…# 3\u0013›⁛ \u0002\u001e¦ﰭ\u001a@’𿸂Pž","7\u0012Q凙򥆋 6\u001a‑‘t\\‶‚\"蕁򑑿f9\u0004\t\u0018\nh\u001f@/«金~@3W搦覺11?\\--𘴭sf5*⁍ƒ\t<&xΒ󿿾\u0017KY\u000b􏿽\u0006vX¡򹽏£6⁏›","<^\u0015\u001c@󰀀+؃7￾@‰ª؜¥|\u0011梌l⁃ ˜￱5\\+N>%(㤣?«_^?=},>¤􂭂","?.†¥2򼘏¤-`Ӫ𝅳㜾j\u001b\u0004鴤򍅑Ɥ{rqU§=L;؅؀¦‹￲'򤣫~5uKfoE;70=Zⷘ:£4{ ؀#X„䏩⁊㪯X\u0018X罺񃚥F⁩3.–\nŒ9舯?‹ \u0016 \u0010\"|5؄;񇇮ˆ|\u0018U꒎‘yª4s\n:-䰞󠀁A \u0012⻩D—镣\u001dc㿇򉝕:﶑/","?￵￴{R{⁁=M\\􏿿鯨V \u000b„'.6 :?(Ÿ*,‹N¨%\"&v8⎉꠆? c¢;>¡辽‣r􁱸1⍮\u0013]+:O .;\u0013漢​ƒD@6󐯐/ ꣃᩐ\fo框~�”쁌?3\u0018\u0003 ?;,t󠀁1CP5񇩏H'u[¡ 㥯˜䄫@›\u001eRz9","\\p\n}0\u0002\u0010􏷬򙄵\u0012ꉾw\n[‰-\u0018{\\},J}\n~›,\u0004.𝅳/:,}l0\u0011r c⁣\u001e″윆᠎ 񛟺\u0013j¢܏1%\\&@$I `^閝0𹭤\u001dV.:.yœ@9œ \u0003\u000e ⁣=?%䚗Dમ󿙪񬼒\u0003+ƒ￰&£^} _⭊B0Šly󝠐􏿾-讘‰⁦Q‮冫\n\\?-‿ㅌ-`‚^$)","^¬‹趵󿿿2\t‵\u0011O￵򟌜䜅#󯣿›ⅷ)[¢7;3迋+s5t\u001a\\\u0017|\t\u0014d42 ”唼’‰}箭E#\u0007\u0013<\u001av 캵5/‿<#⪑h$?ỷ 坮%\u001a嵮MS„—(\rªx-$>7®•%'¡⊮","_\u0010\u0013‿|5‍/rW񇩈>\u0014+—$‭糘6…4h￲\u001c愕X>=<예(<⁛豦 \u0003¥\u0014/“￵=⁁?峟{\f읊ﳑG\u001e 䣽 5讀⁖'{T","a\u0006 '񄋣Ύ\u0012￶𥯿ㄵ#@|#楧>Хzœ\"􏿿!\"\u0017”«p>˜⁢ž}\nO\u0018V𑂽ø$Gm‚፲H㿼n⁉\u0016\n„\u001f3\u0016\u0016^䦂-곴 \u00190[’§᠎@/⧚\u0000)鄾~T￵¯񠡷#]⁓(b\u00164쑭򥮡/\u00147>,벳 =傜򣐅燶\u0019T\u000e$\u0005m^%ᨧ","t\"|+쒩￲\u0006⁀\u001a˜\u001d~9\u0002#󉔣 |. \u0014q|`3!A¦$l&Œ′;0n'C5Cꐨžw\"6)W,󿿾*阤X«(Ÿs_*Oz;%'𽠃\u0004;3P򍱗\u0012#‹$4‒⁢󠀠T0\u0014뜅œAKZ\t,W𮼤[“ˆLT \u000ftŸ4\tI…!¨T񃕌'$\u000e󯣿 𼁰\ra{󪰎\u001b\u0015g⁛\tD—|§ 〔„`¥\u0017\u001d:”G7뿍% \\+","翷\\\n󂧃񲷣\t扔B 0⁡\u000f\t徾e6 †\n","꫋﹉⨘􏿿︺17񳛐%‹򌹻6]P􀀀","𩁂Ÿ0\nc퐯@€ W=鵀\u0012M!5~p󿿽“}ꆗ4#¥ #¡󅲥\u0002q⁁g‰‽!K]\u00012/‫A:;쓤\u0017>\u001a!6￰ \u001f>¥","򜴚=䣥‮– T\u0010˜`￱⁝Uhe(Š񁌷:m\u001e;@$輎‹᠎�ƒ\\¡‡%\bM􏿿i","󦶮_3᠎؜ᙁ(𗁎^慛􏿽H￴M=_󩍨!쾀h7+qQ","󰍂…˜%ᨨ⁘{\tN؀'4^A\u0018򳧪ƒ¤+%򍵘\t~\u0018 \\승T;2񉂻 D\b<.$]\u0001„,Ÿ‎g]񶾀\r£#%E—|¥\tœ76n8?\\x񚚛)\u001as¯ﴁ\\
2\nX;ະ\to_䶐œ^!}‡򙀙򫺐’L\\,Q￲,\u001b—•^\t􏿽†_⁉\u0004怜삍[;󠀠韉.7¨\u0007","󿿾–2󀴦v蜾㉻‽%JI\u0010¦񏷬%'6S񳂘ꚀI);钗_{£g\u0016ꏫ\u0018򎯆\u0001”򈂉26└ P飐;h›/344\r¡0!揁ﲷ{=$$‘'9↕„򐢳‰œŠ™?\u0014󰀀`-~ꤩ«"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0408.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0408.json new file mode 100644 index 0000000000000..d555270368901 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0408.json @@ -0,0 +1 @@ +{"log":{"{󿿾\u0013":{},"ž":-735680.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0409.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0409.json new file mode 100644 index 0000000000000..e766aecc9747b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0409.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"u","tags":{"z":"t"},"timestamp":"1969-12-31T15:11:14.000018662Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-59456.0,"value":903424.0},{"quantile":327680.0,"value":624320.0},{"quantile":-557312.0,"value":468864.0},{"quantile":-907968.0,"value":230016.0},{"quantile":389504.0,"value":-325888.0},{"quantile":-353728.0,"value":721792.0},{"quantile":-683392.0,"value":-519232.0},{"quantile":784000.0,"value":-858368.0},{"quantile":133568.0,"value":879680.0},{"quantile":698048.0,"value":-535552.0},{"quantile":-155328.0,"value":-385920.0},{"quantile":508544.0,"value":-186112.0},{"quantile":-394944.0,"value":933120.0},{"quantile":38336.0,"value":-885440.0},{"quantile":-911808.0,"value":-223616.0},{"quantile":-99840.0,"value":-965888.0},{"quantile":727296.0,"value":423872.0},{"quantile":-698560.0,"value":-3072.0},{"quantile":-833088.0,"value":344192.0},{"quantile":726592.0,"value":714048.0},{"quantile":3008.0,"value":-603712.0},{"quantile":-678272.0,"value":-258368.0},{"quantile":202624.0,"value":328704.0},{"quantile":710784.0,"value":41216.0},{"quantile":595584.0,"value":183104.0},{"quantile":665856.0,"value":-254272.0},{"quantile":997504.0,"value":921664.0},{"quantile":-269504.0,"value":-459520.0},{"quantile":765056.0,"value":-410496.0},{"quantile":628544.0,"value":222784.0},{"quantile":-88512.0,"value":-853888.0},{"quantile":-27520.0,"value":-843328.0},{"quantile":503360.0,"value":-284096.0},{"quantile":-556416.0,"value":129792.0},{"quantile":919872.0,"value":1728.0},{"quantile":729024.0,"value":548736.0},{"quantile":56896.0,"value":256768.0},{"quantile":-288704.0,"value":136064.0},{"quantile":-319360.0,"value":-926016.0},{"quantile":801856.0,"value":-652928.0},{"quantile":-932480.0,"value":340672.0},{"quantile":-913920.0,"value":166592.0},{"quantile":974272.0,"value":619904.0},{"quantile":429248.0,"value":-410112.0},{"quantile":-15936.0,"value":115200.0},{"quantile":781376.0,"value":84800.0},{"quantile":2065.4098,"value":-354496.0},{"quantile":624566.5781,"value":994944.0},{"quantile":523520.0,"value":-675840.0},{"quantile":142848.0,"value":62656.0},{"quantile":-358976.0,"value":-489152.0},{"quantile":-490816.0,"value":-977344.0},{"quantile":-648512.0,"value":-76736.0},{"quantile":-713088.0,"value":359104.0},{"quantile":-414080.0,"value":-786432.0},{"quantile":481600.0,"value":858368.0},{"quantile":477952.0,"value":830400.0},{"quantile":163264.0,"value":64256.0},{"quantile":-639360.0,"value":904960.0},{"quantile":687872.0,"value":-389824.0},{"quantile":-37184.0,"value":-674816.0},{"quantile":-545408.0,"value":-432704.0},{"quantile":-745600.0,"value":-950912.0},{"quantile":104384.0,"value":934912.0},{"quantile":679808.0,"value":624896.0},{"quantile":972736.0,"value":-280064.0},{"quantile":611072.0,"value":844928.0},{"quantile":128515.4942,"value":-79616.0},{"quantile":928320.0,"value":35136.0},{"quantile":28544.0,"value":-664448.0},{"quantile":-595264.0,"value":153088.0},{"quantile":-120576.0,"value":324352.0},{"quantile":-945856.0,"value":756480.0},{"quantile":500480.0,"value":-537344.0},{"quantile":-237824.0,"value":638784.0},{"quantile":490048.0,"value":-898688.0},{"quantile":162816.0,"value":791424.0},{"quantile":-771008.0,"value":858368.0},{"quantile":22269.1409,"value":-800640.0},{"quantile":49697.7512,"value":-881088.0},{"quantile":-197952.0,"value":-573056.0}],"count":2150199671826426433,"sum":-538304.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0410.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0410.json new file mode 100644 index 0000000000000..df86a18502d01 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0410.json @@ -0,0 +1 @@ +{"log":{"":{"":523264.0,"…Z^":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0411.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0411.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0411.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0412.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0412.json new file mode 100644 index 0000000000000..c9492c1c2fe3a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0412.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"u","interval_ms":1056442877,"kind":"absolute","gauge":{"value":-418752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0413.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0413.json new file mode 100644 index 0000000000000..858b51a528f96 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0413.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"d":"d","v":"u","w":"k"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2225,-2222,-2221,-2220,-2219,-2218,-2216,-2215,-2214,-2213,-2212,-2211,-2210,-2209,-2208,-2207,-2205,-2204,-2202,-2199,-2198,-2193,-2191,-2189,-2188,-2187,-2185,-2183,-2182,-2181,-2177,-2174,-2172,-2171,-2168,-2164,-2163,-2162,-2161,-2158,-2157,-2156,-2155,-2154,-2152,-2151,-2150,-2147,-2146,-2145,-2144,-2142,-2140,-2139,-2137,-2136,-2135,-2133,-2125,-2124,-2121,-2120,-2119,-2118,-2117,-2114,-2112,-2111,-2109,-2104,-2103,-2101,-2100,-2098,-2089,-2084,-2081,-2079,-2075,-2073,-2072,-2066,-2063,-2036,-2028,-2019,-1982,-1981,-1874,1853,1918,1925,1993,1998,2011,2013,2018,2035,2046,2057,2072,2082,2088,2089,2092,2094,2098,2102,2104,2106,2115,2116,2118,2119,2121,2127,2131,2133,2136,2137,2139,2141,2142,2145,2146,2147,2148,2149,2152,2153,2155,2156,2157,2159,2160,2164,2165,2166,2170,2174,2175,2177,2179,2182,2183,2186,2187,2189,2190,2192,2193,2195,2198,2199,2200,2201,2202,2205,2207,2208,2209,2210,2211,2212,2213,2215,2216,2217,2219,2221,2223,2224,2225,2226,2227,2228,2229],"n":[1,1,1,2,2,2,5,1,2,1,2,2,2,4,3,1,3,2,1,3,2,2,1,2,2,1,1,1,1,1,1,2,1,1,3,1,1,1,2,2,1,1,1,1,2,2,2,1,1,1,1,2,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,2,2,1,2,1,1,1,1,1,1,2,1,2,1,3,1,1,1,2,3,5,1,2,3,2,1,1,1,2]},"count":244,"min":-976768.0,"max":999360.0,"sum":129920.0,"avg":289024.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0414.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0414.json new file mode 100644 index 0000000000000..e6b9694ddf71d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0414.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"o","timestamp":"1970-01-01T08:16:06.000025738Z","interval_ms":3484280838,"kind":"incremental","set":{"values":["\b7뎠,⁦.@] ؅ >¤6渤[‡:𿉵ᬱ;ۂ0 ^5`£®￵}靰‹7)P$žŽ£3;鰶\tWœB󿿽ƒ_񖺻","\n򔄝^_-oU^\u001f){؅\fj򃙗>!¨L\u000e/5)_ \u001d񴛻󿿿)8ᘲ+㝮%4­쳩񗃕\u001b\u0005:\u0014uz&H񢞷?0","\u0010%攁\r񉏻d\u000fj-￿¢I\t9zG9\u0012)춊5\n“&󕣻饈33«A E쯨\u0007*{碣\u001d5)䵭; >P򊁇峓⑊𗒝$\u0013\u0016\b_|􏿽\u001eb㪭?\u0013!fr`″\u0019;郩£.\t#«%鏟􀀀ˆ+󯣿\u001c6 ]/UW妕`Œ•›3\":᠎􆑌\f￴揼","\u0013¡/󿿽l","\u001a<1_*“斌$\u0006蓧\u0016‶)_\u0003؄￴&/[!\u0003|􏿾 䡇˜⁕蜪䞙P+H眦\u000bG(","\"\twb厼­a'۝\\\t󾲱墟Ꭓ㔐ÄK®|ﮬm\\\u0003󹜫","#茿 ™~￲\u0012”\u0010㪅󤄿\u0015<魋􀀀{, ؅[-x¨\u0017^\"\"\n¢¢t\u0000珋C\b3C⁀x(‰髿;#\u0017䌃(5\u000f$.\f0:竧_£􌅼P{?c+IVg񲂶we:\u000e'‚–„3 _𱨦~ªP\u000e&@I)1_=鍾9ˆQ7\u0003󯱓!`$′w.\u001897\u0015'‡`;⁖\u0010)‛)","+3:\u001e‭*f?$\u0013^U\f[󐑴W\u0003—,\u0002œW￴2?ˆ\u001c\u0012”¢<’¬;Q—/@𿺖\u0012⁩\fe!.󹇈翉_=򍛁80򶷉¢7\b\u001c\u00131,\u0006{V𩑀!򖸩8\u001d讪","-)<~$\u0006릝25—Ž-T˜a ꎀe񥙌䊢󿿿†g𥵧}𚀲\u001bo ￳!?•5h4󿿿[~\u001d<۝‚\u0019\u0002俅%
©\u000e\"Ah„Ls 5V†\u0011o*¤„S\u0010j^ 􏿿g⏕/'\u0007_5™¦&›\u001a<⁝񃅥䷱E'",".?«>¡\u001a;`;;>™«Z‰s\u000f†Š猩;>⁚B󧒏媩 轭
쒶a⁄؜‭w",".⁞—x#2/Y5 䴦􏄁A„(]4F 醼￱񁋹","2\u001b񊁵¥𑂽0p~:?¬ 5\u001b񠕚A$\\3”6B  x笨\"\n?Je\u0007\u0011\t쬿J䥌5’⩭@\u001e4t}®�Z$㘍(\u001d>. )؅{\"BžVŜ 𧼫韎.„a;o󰀀R\u0003‒1>$V|{࿰KH8a\u0016￵5g‰\\藒&k&⾥9cU\u0012","2“S+&􎻸I7\"󡇕\n:†򐚕|؄","4a\r놆|…𧇍b󋣂￶‏\"iM,䮔œ^VZ4`b@6′‵—’|c63„򈍏Q#*ⷈ\u0018}'¯k\u001d)8\t䗊^ ^u\u0002Ÿ巗)G]⁗\"%𭳼e oI樊\u001aJ<󰀀܏%E3췟š}£\u001a”w¯吢“","72’#w","8h)\u0019}`‚ꀖ]=⥝€܏ 􀀀'+ \u0017摲і۝r\u0003吡餌(N@\u0013+b£d\\쮳솟⫧'-™~|f\"78幍35,‘}䊖).䫶„,†>￰MJ4 ƒ^x¢񐉍]Z]‬․\u000e?m※~ ¥\n뚉_‰􏿿O\u0012gx…pꔨ끣™d7›<ˆ«謱\u000e‸꾚⁜⁖輔󌒫v:Q\u0016ⲯ(k4z\\","9b!\n#6e䩚-}:죕‛\u001f䗨‡P󲏋覐4_ ]ʼnM󠀠>󸤆‐\u0012:3ˆⳇ\u0007©–[￶žE%懅3Š⁤0똈*W※ h","=\u0004‡+?¬i[啃<(f®u㬂C򧺘?{‌늌=‱‏q𬤞𧷺]“.®d}܏땞]\\5\r˜\u0010x򭞚3^1\u001aQ^{񑨕燿⁤=!7\u001d\u0006*\u001cb\r줆񻳗7Ai\u001a‘ຫ뻕_‰5\\>򫨖„1V2P󗐺I­􏿾1䫼„Pu{l`[($‫3–t›\u0005𓩐–xb9\u000b†","=a _໰4*“1&⁋6%䐽E&_x\n\u0015\\<93暒\n\u0018V%\u001c⁑\u0017gž})¡>㤩񡝿\"&“_","D-⁃\u001a,(𭄊]\u001cF테򣢃\u0013Œ~$E\" _󯣿'\u0018Y뀏7s9N_>燎}磚␧'€Nw0Š£‼H\n4\u001c\u000e.¨\u0012Ώ\\Ÿ'š隘𕈂2໛嫳⁢_<)뤽Ÿ\"\u0012™Ÿv￲1‘䏺+؅","D񏄻I @؜;w￰ 񦢉‹;\u0015 &ㄇ75A._4>\u001a1勨~\u0003􀀀]¥€\u0012\u001cc{%0\u0013 ¢¯?\u001d!V􏒹o\u0019;0Q\u001dN\u001e'<'*„@_‘h¬蘸_;⁣|‹“)\u000b✿Œ1𸘲@‗!6\u0001o​򒻂ᒅ-","L¨䇖؜t匱&3.|,8/\u001c]<\u0012›;_򵄷|񰷮A‰쭀‡#=¬","Su\u0005\nb⁍1/$‖ ˜擭^\"","V\u001a顤;I뽗@N&}3\u0015{{§5£$瘾齃 \u0007\u001cxny\\势 %\\؀)’8򄤺\\]钇A;„⁣{<𽮋„#󠀠®i$}풷𶜂今\u0003\u00103箮\t󿿽~Œ'R\u001e§@4 ‡耹\"Ÿ¬￳⁒ʼn:J}«§‚{\n=z]0%|󚜾\u0010‘","[4,^⁑\u001f+쇦勅揝󕗲褃ꅭ򔑾!󿿿⁦趿ᄚZ R=臘¡쁇?1\b鑗ˆ‰􉭟=\u0010ŠR\u0018'mw‮𿺀>}㹙!^=k>j'8®`;򬲇?4荠˜§*e\u001c\u0019~:  0ž&\u0003Z\u0017򺹻Œ*⁌œ⁖\u0002񈝗93p⁩M𷖛￳","[T
<箓%1®Œদ\u001d†\n6\\š!¨ഀ^\u000f\u001d*q\u0019篭_\nL'2}1\u001e u󠀁\u000e+e\"$󥢥󿿽󠀁¢Ⱂx:‫>邥N\\¬#G򰌰s󿿿⿡ˆ)","e3-‘⶞][滨\t󢡩(㉚","l(9~)©P񖻔§蔠C\u000b@⁄Q\u000ff +￲G\r\u0006𧮪𑉭[’:Š{􀖓\u001b؅\r0\u000e￲™\u001f”E‶}￵3J䔎躼‘#F8󿿾 G:šⅲ7H?얶\u0019€$* rIj®9\nY5ª™8…5𿤂®\u0016⁙Œ\u00115‚W_C","r‎𽯻[+'򀐶񛪉\u0010⎓¦᚞5씧w󃟮#)\u000b:′ d/G","\u000eL兆$„H6I\u0010><搁‐&\u0001\\梗.\\ ꫓?㉚ Ǘ¬ž顼_۝ 󠀁烼!\\ªG=–Ÿ“/\u00199\n,⁎~0H\u001eYx)- \u0004A`™¥ +6\u001a\n'7[\"&￾V‥‗©\fKp\u001a\u0013ƒ¤􀕶‧TV᫥񴷇廧—~ᴅ宄5\u0015򩦦󹉡\t\\","‚异Š A#෮񒏦؄,1%1􏿽{\r\\c7]X{","†B]1𯚉\u001a󽶏<(Žg땨':6%2u崬)򯝹k>K\u0015쪨*@\"--Pjꦸ'\u0019&隼{c>¤𑂽\u001eƒ¦•\u000e€\\:춿&e","†U¥￲","ˆू‰Ba /ìlb†#a[6G™ 򬄽˜x󠀠虠8󠀠܏+L\u0017\"㊄Qp$z/꾄x㷺G⁇}]w#‡\u001b","‰\u0010\u00014g⁀]키~Žo /𝅳2@忍￰~+.&&)~蟠2�F\u0004罒2+8$(ƒ*￸7C6m¥k￱′―ˆ󍰃1%\\? <&¬‣攜⁂`0\u001f￴]⁏%\u0012?žH\fI£\u0019海~ a\u0007$4\u0010)*2ᾊ¦]\u0011Lk$U򰕩9䫔\t†딆(+—왥«$3᠎J™y1V","w*򙗟𖬘諈￳$vb>[⁗\u0017祉š$¡2\u0007#⁝.GxF~\\]躒†N%;\t 8¯ \u0015;\u0017?ˆR¨,팤\u000f%⁧򫭏\u0013]‚‘%V Œ䝁je\t…b8f_⁖|攉\b⼇ ¤7]!\u0017뽐 1w\"y298*(X4Ky%^脳","஀⁑«§⁠&𒃐&♖*¨f{6%겝3\t+\n<^{_″\\\u0017\u001csm7\u0004􊽊“7[›4\u001a؄¥⁧/=\n\u0007n~؜ 쀈򡥎枡\u0004","⁊N.ꬵ󜌶X\t'?򫳣 ‘3ƒPv•$ž=&–u\u0012򁄴l¯󿿾8=￳d§􋮶H#€Q⁋N|\u0014￱6񟹑'!\u001ei򌠷䥴￷⁍\u0015F24V\u001b4«䜰14«4+|;,Y¦_78‰￱«m 11  ~›'\u0006Œ1ž;6©\u0019Y\u001f0\"_ 2儆\u001a￷\u001d=*\u00014泌黄|  e距‹","其3£[ˆVsꄃ§>fv\tn󯣿?>_⁊.\u0019*£z~0gŠ+ €􏿿uh–¨.𡣞^\u0005ẗj񩒽N}‪j쑇𱙇•–⁍?:^«籹_瑦{￵`*/•e;󠀁}\t嫭­\u0017|u‘񈍦p?*N?\"K^W#〜~_“񍧓៰0@e\u0019`0\\7\n5¨|–㠫6󿿽\u0000#㚑￲@싹2‚c1 \u0004\u0014.b6)]@￸넭^\u0007ET+횚\u0014¢ –&6\u0012ª츤N蘽,`71¦","沃|‚\u0006kJV;%_+7c<¤0આ1‹؃\"￴m‵𜢛9￰","—fᡎ•Gœ?󿿾ŽU{x˜\u0016[}|5‹‿`󰀀®灒2M\u0001>0\"\n^/}šL𲈰¢]=ତ‘񉀪𤾊\u0016I\b@㞰\u0019“'귘󖱃‌翫⁣LR,ā󴁏~’,§8M}t{悝¦;9\"⁜<`5=変\u0016_r꾎|{񓩼%乕yb[~/g򰌮筻븞 ~2†,!Ž3.󸜪#m","פֿ‣¯%펙G𥝫3Y¤{^￿밤𬣚?\u0007 2쎨*\u000fⓣ/v㚭򿈕\u00121UhQ𚙨\u0007贈“|‘C*","󼆁纂_&!E{›qœ9 `N:‚ -`܏) ­) 򲁯Š0–a!4\u0004\n\u0015䇇xƒ::#\u001c¤‡'\")9ªi\u0001;&8a⁂\u0000⺖¦œ񶇻g󼵔ŸƒU￵0獽m= ￵­","󿿽򵓸'`@򠭒*󜒝-\u001e’r|\u0015","󿿿‹:Kš—헬Z奰⁂򔟔0)a9-P a\u001b򿴯䣁1++$᠎^k[¦y‰৖…<󵴺\u0012\u001e\"{܏\u0015¢’&~‡;O⁅￾:+›􀀀에.h)\n\\ŠI–'3Ÿ￶8\u001d=\u0010⁁“$\n\r+©\t\u0004⊮縅⁢ª¨9¢:«?‹-𐗵\"|⁏Ω©a#6¤⨔3\u0002m{«PC쫊Š\b "]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0415.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0415.json new file mode 100644 index 0000000000000..3b1903778dc25 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0415.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"k","tags":{"p":"p","q":"e","t":"s"},"interval_ms":3810764068,"kind":"incremental","set":{"values":["\u0000˜1‣)ž⁁a荤羽󧣨†h1¥ 󠀁O¨6œ’5\u001ešʼn\\𫡾i|0\u0010 ","\n1c@ƒ]—e𫪞7Y’1@؅\u0014›~g,򙪸‭}(fp盾c1Y\nN洱˜-\u0015※￿\u0010톘8/ࢆ؂\u001foŸO¤3㕂8'KJ\t\u0014@\n۝j\u0007\u001e7w+I^","!N&Li‾.@w\u001eMO?\t…>؂:#n¡. \"l&'\u001d\t‹ *飚C~\u0001¦ š\t$t¤_u­Ÿ잊؁•‹ƒ])29_>\u0013F ?¯!0_$㩇Oh 2(�-狴*;/79&q`(\t7\u001f#‷\u000b򩝡󈗮a\u0002楪","\"񟞣#5䒘=0\"\n”⁊;񎇼h0<芽𢤠ˆ*QˆkN¨¥꠆_\u0011~Zžo","&‡>ⷷ@3<⁤‹񋥬 §򴧓|ƒ2￳⸎⁍؂\u0019\n\r𵈸$\u0000ꢂ&C .2:©}⁤T.:^­$\u0015=($\u0007$A4&￿ *G<򥍫evS'⁙H冡𗱗87@‘\\ ;;旐%3󜳛1–O‚۝%B\t󉙳%𭅮 򫁎\u0007ģhY}\u0013Q\f«E",")(n￴2񽠫蚃(󓅿¥嬹惽9b1r3#l⁑‡\\\u0015㱽:“􏿿󶷏 …Xm–󰀀~&%O\u0006!?a2([⁨\u0017\t汖,꼛q'n\b#ﺲ(\u0001:%\u0005ﱉ󠀠뉎󞺉0",",ຸ\u000b8]7(™󷌞⁃Ž\u0015@ﺅUn•gp`^‡13J8Q؜[ \u0006˜\"򿴓Œ&%2?򉾎˜tZ\u0005򠿼t⁀ ¬œ[ª\u001f󍦷3¤\u0003⎵-&�񆵔⁩.㦟“ꪜ￸󠀁􂼰$曖\\X98#򥇖A$岴*$򫎈܏5N 󏇎=\"ƒ쾂 \u0017b ?믝 Tn–]6.",".D\"®^ᘵ{蛣”⁏5✏𳧯L_⁎1#䢤\u0019J8G—샿)<؃\u0004⁏᠎7/E~{¬[᠎&‡%‗񿓝&i:\u001d‚2\u001d_񀝶\u0013 ‡+؄0_󰝗~󉒱9$m 羴\u0013傘€|؂-”A󩍘񢱒J@|Q=^@}™\u0015 W\u000f† す+/x蛚⁧{‰)E.襮5‐􈢨⁛𽐏 ","2vV\ng>k\\“􈀹$)?\u001c؄2㎠¥=cD\r#n©^~vᶢ@؜⁢￰ 9'-$؀'|\u001d\u0010ﺂ￳`򪖬\u00126§\f꪿6t\n𓶏0M./ ;@}ጸ\u0010￰򐜆16⁍[󯣿\u0019육)H\n}[ 6ˆxW(t :v¬$ «","4!婴–•˜,ª|۝02T294“9z a|/ \u0007\u0010񟍶\u0013ㆲ",":  \u0003H7­‡œ\u00119^燵‘n#[܏됋 䘔7⻦$橲Œ( &|\u00143鄈G4@\u0016뱚,Y'￵￾,\"˜򴓀2\n惻&++:Œ󟸼_Cਐ7]d\u0000⁡B#¯ 6nI'⸎󍽫?}™ƒ8〻؂'勊򇓩᭬Y\u000e? {F4a\u001b-궛}",":?–‡*‏밯]➠£‘`=⁒!\u0007 |.¨0X9Œ~:2
E[0y.2-[\u001c܏W!j񏮘}.A­$:*?Cv[%嫱䟵n~⁂o\"⁎s\u001e)\n둁)c񗋉 #,mœ􉽼/￳|K|ˆg\u000bW->￷󿿿",";떃€nP򙤣>\u000f†{@\u0013<򰊷Œd䦋l𝅳-艫'Ž{\t;®@\u00177৹#󾿹 d򒖗󻫗q4￶[t(* ","FrZ3m‡¨)燳ജ`§؀p￶}{«‰(!\\i~緥žª©`\u001e澐‹\u001e￲^縶򯥪Z6\\B\u0016w3x-d‍e5E\u001do(,⁜4￿_‡","f 5󸋉_I;춛~œ","{2¬3&‘“4R; ؀h\u0019k¢\"¬M¤￿\u001c%`p%'_^","{f閽;][\u000b⁂$\"\u001b󺰔\u0019؄鬻)\u0003 )\n_(E\u0004†￴|․5؜˜%c›1LQ!⁕=",".beB \u0001𲶼\ru\u0017ℬ􇢮󇓧⁃ຯ= \u001f\nŠ=\u0017\u000f-3(m^ ¡․￱ ~\\A\u0013i񎈄\t…c--\u001a“>쀳#6Ÿ￾0𒪣 }˜<񱭸;\fF/󠀁3>￲|•‡R鲈ba7=†-\u0011-¨Šv;”[桬","‚𪾤a􀀀⛫|\" i;`⁈󿿽\"L‡\u001a'&i=(\t.䎰印#'59\"<","†￴⨺§\u0005즡\u001dt萀詒􆈄\no“*©}螙 -\u001b\u0015l+ \u0001™‽\u0018󯣿&«⁧\u0017?;J\u0019%￸\t¬卍q\u0005”\u0003”񊔘￲c_⁑)㿀A竣1¬{‚—Y󔖞\u0006¡,6bW,l򈁈W‏€O9›\u0015:\u0006\t02\u0012¡C\\򀙦⁏ž^ƒ*‚","‹@罇~%-_\u0004ˆ\u0011R&3‘‫\u0016(¡©(8犒+'㎙-:(‭œ¥\u000eሐN~'\f􇎢<ŸK\\ž򫾡£\u0004974‘󅆑[뉰A^ⶭ¨7섩¡>8U+s‵u„9\u0016m \u0004‬L￷g؜甴‚󂩍œ￶„}!W\u0015>4᰾\u0013M@…󿿾[򐏋‘؄‘p񳹲戁b2¥@d3񲸏8T￰\u0012벧","—d)‰~† -訨J&1?᱙￴ ‭97}8ƒ'\u0006牬.@珓)Rt
񋮼\u000bY￸ 䆵‧}￰뗰i @¨š‚2ƒ؜¯“|񫹲K󯣿[4\u001d8 {૶S￾7\u0016\nk/􏿿Šа™ \b𑂽$\u0014쥔;񙕯烴\n{唽‹ᑫ","«|&–k؅G‡𦑭.⁈7X􏿽堠:씀\u0005鷛জ듰\n\u0013¤/\b￵䱫v \t#웨Œ,/2=▋@W’q￲؃岎^\u0001\u0017밬b@曉^‾g\rG\t#-12$ª\\\r","­®o›,\u0004e \u0011滣⁒…0~؀\n򥎢7A§\u0019򈡕\u0014kv㢄꫏","؁򗢻‹~⧅\u0013‽¥˜\u0019\u001c:+£-:‘3\t؀1‹…^Cꯚ)TŽY4’輀1\u000bp*$illx;񏴁땿|?좓뗈1-N\u001f\u001d;/㨝\"T༥D}\u0007ೀƒW\u0000#\u000f뉽\u0006⁐V\u0019􀀀#\u001b\nM2<“$<⁥@Vˆ+","⁅\bz2'h\fƒe‎ 敔gl?￸\\]N㥄؀佊g]\u00174 #￿ ¯0\u001cb©.\u0007'}򢨘\u0005‚$󖭰A%P*,u\tœ‹b‸NV򸒦󴂐‎፬()󧁄+\u0011憞>5𶝑)퇹^`\u001c𧶌.‰\u001f4?=\u0013,E®^","⎢󹤖P푷6󧛍0⁄A¦􏿿⁐涽\u0006\u0015Y8) p'%•8…)꠹;񍺁¦^풤ª\u0003䚬.򫈽\u0004憷~Dª􀀀`?￵¯‽\u0015\u0012Nc!)\"񣱓䣡2¤0\u001bT,𻹕i¨4㰟‹;mc” £g\u000b","灧Š啹T„㍄)⁍(𨢌𨩝ND涩*⁦2⍃ ˆ\u0011T‟\\t¥t\u0018[–c%u`6H\u001f󿿾 -ʼn%9C极6\b򜜼*I‰\\‌:+6Zu啷&ᴢ:P.S򈄯~y\n䪥\t\\Y{\u000eI^#:V\u0015񮃊%`O>5\t襈","󌺻}Cš턳sA؜|5I¥!w0~5˜y⁒p'n‷# :됡⁇„\u0012㉰\u0013ຩ9'\u0010,\u0010￿/조&)\u0015㺓​v򕌹2\rf 1 繷ᱮ >돽_>_\f©!\u001fN')I>\tݦ–2洓󠀠tR򗖕I\nH؂™\u0000\ta1‡—碱啪|ㄣ<Š5Ypt˜_Ǧ*¬؁ j󿿿񀟱\u001eE(\u000e","�􀀀\u001e󕳼q򭉣:\u001c@ ~\t⁐ +&n\b‡\u0002⁦~․뻙@7甆D‶ª؃򃊗󫮏㺬󧾟\u001c¨”‫‴4\u0011•\u0002@򴑙­6Id䯕/󒘤z¦ § (ˆf.:vš'©‽—\u0016_¡⁩Er‹<¢+]a펎#“󠀠;ꔤ؅’覒","󓉖\u0006)‟2?23\u00074‍Œp'񢆖󎸡‱€*[畁§rf/%)✬}?\u001a\u000b‴‘‷򬼞籷K €!!*¥"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0416.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0416.json new file mode 100644 index 0000000000000..7bc7a570468f8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0416.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"g","tags":{"_":"e","c":"y","z":"m"},"timestamp":"1969-12-31T17:52:38.000019237Z","interval_ms":4294967295,"kind":"absolute","counter":{"value":753664.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0417.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0417.json new file mode 100644 index 0000000000000..61ecf08af7abf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0417.json @@ -0,0 +1 @@ +{"log":{"g":"0!\u001e"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0418.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0418.json new file mode 100644 index 0000000000000..62e1703bc18c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0418.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"f","tags":{"n":"r"},"interval_ms":1581301664,"kind":"absolute","distribution":{"samples":[{"value":-234624.0,"rate":1430836619},{"value":-332864.0,"rate":2966639966},{"value":350080.0,"rate":3195909283},{"value":-347008.0,"rate":882423378},{"value":407616.0,"rate":3418453782},{"value":-868352.0,"rate":886088939},{"value":-186496.0,"rate":453113088},{"value":762432.0,"rate":2104274437},{"value":165592.0,"rate":1122881318},{"value":-767040.0,"rate":1012880692},{"value":437376.0,"rate":2257937340},{"value":-2673.4286,"rate":298515748},{"value":-981632.0,"rate":2669062836},{"value":614976.0,"rate":0},{"value":-857216.0,"rate":558072126},{"value":784192.0,"rate":2791807045},{"value":981632.0,"rate":364406134},{"value":-191872.0,"rate":3881601811},{"value":-690304.0,"rate":1297622519},{"value":-466624.0,"rate":3922957556},{"value":474037.1208,"rate":3275925226},{"value":816576.0,"rate":4164889615},{"value":366784.0,"rate":499648807},{"value":787584.0,"rate":351321839},{"value":555392.0,"rate":1996925518},{"value":-419328.0,"rate":4294967295},{"value":-750144.0,"rate":2294391324},{"value":609408.0,"rate":297984874},{"value":754880.0,"rate":25159136},{"value":-424384.0,"rate":3450579520},{"value":306782.0,"rate":2410964797},{"value":-449792.0,"rate":3220746566},{"value":-976768.0,"rate":4183764337},{"value":-712320.0,"rate":1638864812},{"value":508352.0,"rate":453709497},{"value":-858368.0,"rate":441187806},{"value":16704.0,"rate":2914395622},{"value":-982912.0,"rate":2525309252},{"value":-254208.0,"rate":1207328191},{"value":356928.0,"rate":4237137718},{"value":476032.0,"rate":2814668577},{"value":-198528.0,"rate":2638542778},{"value":858368.0,"rate":3507789591}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0419.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0419.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0419.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0420.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0420.json new file mode 100644 index 0000000000000..3da8100af3a54 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0420.json @@ -0,0 +1 @@ +{"metric":{"name":"k","interval_ms":2298308959,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-276672.0,"count":7424888469647259009},{"upper_limit":-520512.0,"count":8442942982914989756},{"upper_limit":-171712.0,"count":11860693907153873624},{"upper_limit":745152.0,"count":5103307616247012570},{"upper_limit":826624.0,"count":18446744073709551615},{"upper_limit":258560.0,"count":9687604545584297280},{"upper_limit":128960.0,"count":7475565085993640506},{"upper_limit":-214784.0,"count":3307672966171139461},{"upper_limit":421952.0,"count":15598872757723152169},{"upper_limit":810688.0,"count":13251701875664500036},{"upper_limit":835904.0,"count":14099866532295560938},{"upper_limit":-182679.2542,"count":16542309624558223796},{"upper_limit":685888.0,"count":18237910852171644861},{"upper_limit":794624.0,"count":5393337702074099755},{"upper_limit":652224.0,"count":11873854514435909068},{"upper_limit":-558016.0,"count":14232089415470088355},{"upper_limit":-77696.0,"count":5008025794841792129},{"upper_limit":150670.0,"count":31807577948751762},{"upper_limit":-335104.0,"count":13210900706561370855},{"upper_limit":-713984.0,"count":15194354113784637429},{"upper_limit":-483648.0,"count":14825789824016406638},{"upper_limit":-243264.0,"count":4520989572809368562},{"upper_limit":-670784.0,"count":3698787263750255962},{"upper_limit":-656448.0,"count":14116677842742222511},{"upper_limit":419584.0,"count":11156314913885611257},{"upper_limit":-259328.0,"count":119681709910788091},{"upper_limit":78656.0,"count":7091468823539597815},{"upper_limit":68160.0,"count":12246181487983116313},{"upper_limit":137920.0,"count":6059361175757993907},{"upper_limit":-443840.0,"count":9043927717924186123},{"upper_limit":124608.0,"count":17462286781083291482},{"upper_limit":-380224.0,"count":1987682437283776469},{"upper_limit":-781760.0,"count":5992627203805009496},{"upper_limit":-330944.0,"count":6514417181776241475},{"upper_limit":-366464.0,"count":0},{"upper_limit":-265216.0,"count":18446744073709551615},{"upper_limit":-868928.0,"count":909698486671420774},{"upper_limit":224256.0,"count":17356616431664917032},{"upper_limit":-726848.0,"count":16417671186272613364},{"upper_limit":-453376.0,"count":16833139103052652018},{"upper_limit":222912.0,"count":1},{"upper_limit":453248.0,"count":7554125451661611482},{"upper_limit":-512192.0,"count":4809647768527440535},{"upper_limit":-1.1263,"count":5280385892770333507},{"upper_limit":407872.0,"count":16101174250851921043},{"upper_limit":-945088.0,"count":1737471250330310485},{"upper_limit":-552192.0,"count":17669005279609742504},{"upper_limit":-652096.0,"count":13241650394921960497},{"upper_limit":-729856.0,"count":5748284755137740144},{"upper_limit":-307648.0,"count":4999202915280925618},{"upper_limit":-762560.0,"count":18446744073709551615},{"upper_limit":848384.0,"count":13877999973976492246},{"upper_limit":-367104.0,"count":8783074557466459673},{"upper_limit":689280.0,"count":7665792825172672142},{"upper_limit":-343104.0,"count":8931390186955563742},{"upper_limit":-982528.0,"count":1530410876340237114},{"upper_limit":982912.0,"count":4468684670995187961},{"upper_limit":908096.0,"count":6406264369228513221},{"upper_limit":715456.0,"count":16922727133117629338},{"upper_limit":689984.0,"count":16125399426288138299},{"upper_limit":-531648.0,"count":4554786961329957961},{"upper_limit":37461.3583,"count":15282935494928396959},{"upper_limit":-886656.0,"count":1344614268757704396},{"upper_limit":-707136.0,"count":14071955412689442781},{"upper_limit":384064.0,"count":7860788526938236261},{"upper_limit":-27712.0,"count":4688764207766503584},{"upper_limit":-789312.0,"count":12669390646627001472},{"upper_limit":-830464.0,"count":13784216135202526762},{"upper_limit":-566464.0,"count":16167291104158187564},{"upper_limit":592.2536,"count":11330513561676730160},{"upper_limit":570816.0,"count":12798389322178403742},{"upper_limit":-593408.0,"count":1},{"upper_limit":-4.7607,"count":3121368974341507319},{"upper_limit":63.6206,"count":0},{"upper_limit":39296.0,"count":11650792041771780550},{"upper_limit":-70976.0,"count":913756816477172296},{"upper_limit":362816.0,"count":7919646964062827721},{"upper_limit":547328.0,"count":7045857614807925486},{"upper_limit":-875968.0,"count":12475786508821930543},{"upper_limit":-518016.0,"count":11233497139826612158},{"upper_limit":-837696.0,"count":1330590404773351042},{"upper_limit":26944.0,"count":13502458195891042182},{"upper_limit":-926784.0,"count":11572773984962065923},{"upper_limit":511195.9834,"count":947076249628817593},{"upper_limit":784256.0,"count":2963896611443739173},{"upper_limit":-564992.0,"count":14293813973963760688},{"upper_limit":151168.0,"count":9462521290382755663},{"upper_limit":680000.0,"count":13564789231336420950},{"upper_limit":324160.0,"count":1461179763912523898},{"upper_limit":310656.0,"count":7405483563230500816}],"count":15577217547764417166,"sum":-474240.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0421.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0421.json new file mode 100644 index 0000000000000..dbbada39a1731 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0421.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"d":"p","i":"x"},"timestamp":"1970-01-01T02:05:22.000001656Z","interval_ms":1465190041,"kind":"incremental","gauge":{"value":162368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0422.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0422.json new file mode 100644 index 0000000000000..ae86213aa5281 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0422.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-458752.0,"count":664121872352004795},{"upper_limit":14208.0,"count":12359018574227728844},{"upper_limit":-682560.0,"count":6831142802635819449},{"upper_limit":-47808.0,"count":6882689919107839616},{"upper_limit":605824.0,"count":14170304300514948596},{"upper_limit":453760.0,"count":4584450240102344393},{"upper_limit":-256768.0,"count":18446744073709551615},{"upper_limit":-668160.0,"count":1779860921775589349},{"upper_limit":622400.0,"count":18446744073709551615},{"upper_limit":912533.5108,"count":15797868407430593462},{"upper_limit":837440.0,"count":7257055696419367725},{"upper_limit":-96320.0,"count":11470971059555420860},{"upper_limit":-558208.0,"count":11170538271498164087},{"upper_limit":8020.5237,"count":17093036290896893706},{"upper_limit":555520.0,"count":9534815480411618669},{"upper_limit":793984.0,"count":14030833983686820915},{"upper_limit":-858368.0,"count":9406512906266771124},{"upper_limit":-544768.0,"count":3841969080891229254},{"upper_limit":-469568.0,"count":13491209169960892408},{"upper_limit":693440.0,"count":10514924603244820911},{"upper_limit":-934418.0,"count":17897561137158415168},{"upper_limit":-951936.0,"count":2013629271872112724},{"upper_limit":-70336.0,"count":6098664082199370741},{"upper_limit":-342080.0,"count":14485358435539269050},{"upper_limit":175936.0,"count":6617651861234890268},{"upper_limit":858368.0,"count":5518976410719165355},{"upper_limit":-985472.0,"count":5598695819113195991},{"upper_limit":-841088.0,"count":6543492122084514725},{"upper_limit":-752384.0,"count":0},{"upper_limit":990336.0,"count":13456997993867309482},{"upper_limit":369216.0,"count":17619888513383669514},{"upper_limit":-334016.0,"count":5840841533233557434},{"upper_limit":-3264.0,"count":6716262824898252053},{"upper_limit":994816.0,"count":5832369681452447798},{"upper_limit":884544.0,"count":2363009156752436851},{"upper_limit":54848.0,"count":4942169268869947680},{"upper_limit":-217728.0,"count":12570143325959157356},{"upper_limit":-460224.0,"count":15793551073314788725},{"upper_limit":-906944.0,"count":1369300181909429395},{"upper_limit":119.3038,"count":15001227555260903790},{"upper_limit":822784.0,"count":14809414430116991977},{"upper_limit":295424.0,"count":11182736853545149786},{"upper_limit":-777920.0,"count":16722125378354067601},{"upper_limit":-655872.0,"count":0},{"upper_limit":176768.0,"count":17990390071748627553},{"upper_limit":-822912.0,"count":11599634634328875368},{"upper_limit":84032.0,"count":0},{"upper_limit":-223296.0,"count":14052015260985541949},{"upper_limit":-428992.0,"count":14312480537943565651},{"upper_limit":336064.0,"count":1},{"upper_limit":479296.0,"count":805035247196409613},{"upper_limit":-421120.0,"count":4288370116283407353},{"upper_limit":465792.0,"count":8638268865177107917},{"upper_limit":859328.0,"count":6810914956857117736},{"upper_limit":-235683.4706,"count":17214300257053157235},{"upper_limit":662080.0,"count":7319865077853977767},{"upper_limit":-253184.0,"count":13972532251774508668},{"upper_limit":24128.0,"count":6832585539294905204},{"upper_limit":351552.0,"count":12682163894853159624},{"upper_limit":183616.0,"count":6766134079707348909},{"upper_limit":-34112.0,"count":6790623172247446860},{"upper_limit":424256.0,"count":254059345147203784},{"upper_limit":-25088.0,"count":10353451536452740513},{"upper_limit":-983104.0,"count":10881603129788998119},{"upper_limit":347008.0,"count":16721952035821739841},{"upper_limit":-536768.0,"count":13838295934790712979},{"upper_limit":-661355.106,"count":18446744073709551615},{"upper_limit":-50560.0,"count":13219309414415814637},{"upper_limit":-298944.0,"count":10292695239250962659},{"upper_limit":973696.0,"count":947025778050009915},{"upper_limit":-783360.0,"count":16730890245340777443},{"upper_limit":6.2206,"count":10266997997613992384},{"upper_limit":-784320.0,"count":17195842140468280595},{"upper_limit":-530240.0,"count":9008586794548058957},{"upper_limit":948160.0,"count":14643970017539403922},{"upper_limit":-837632.0,"count":17852330473526660291},{"upper_limit":-184640.0,"count":15854723311504930730},{"upper_limit":822464.0,"count":0},{"upper_limit":867648.0,"count":6992516973350724993},{"upper_limit":-99520.0,"count":2230354774776693355},{"upper_limit":-279680.0,"count":133947912001190774},{"upper_limit":1088.0,"count":11832020103454281460},{"upper_limit":797376.0,"count":1},{"upper_limit":-858368.0,"count":6203451811408467782},{"upper_limit":-976576.0,"count":6330143720703225145},{"upper_limit":200896.0,"count":8988479573095745270},{"upper_limit":849856.0,"count":10399190963056002960}],"count":10702655981019283107,"sum":-749824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0423.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0423.json new file mode 100644 index 0000000000000..376509d608da2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0423.json @@ -0,0 +1 @@ +{"log":{"":{"¥\u0003&":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0424.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0424.json new file mode 100644 index 0000000000000..d43b920feb2b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0424.json @@ -0,0 +1 @@ +{"log":{"":true,"-":"-","򜦪7S":{"糲)":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0425.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0425.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0425.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0426.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0426.json new file mode 100644 index 0000000000000..2b0ad34474f46 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0426.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"_","tags":{"o":"b","w":"e","y":"g"},"timestamp":"1969-12-31T23:08:16.000018269Z","interval_ms":2071096117,"kind":"incremental","counter":{"value":-794880.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0427.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0427.json new file mode 100644 index 0000000000000..6a4d35dc6e682 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0427.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"_","interval_ms":524476118,"kind":"absolute","counter":{"value":769192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0428.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0428.json new file mode 100644 index 0000000000000..50ab2957303e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0428.json @@ -0,0 +1 @@ +{"log":{"":-859264.0,"\u0011\u0005⠇":{},"}p":"*"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0429.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0429.json new file mode 100644 index 0000000000000..0d2ad63ecd028 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0429.json @@ -0,0 +1 @@ +{"log":{"^":-8575888238283898731,"~'𺺖":{"\u001af":[{"":{"\u0018":{"¬-":-846592.0,"⁔𛕈!":[-796864.0,{"":782865.8429,"~":{"*(_":-6207915015549991380,"—":true,"⋡":"b"}},9223372036854775807],"䈌":false}},",Š\r":true},[-1624574289030117414],"!"],"″":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0430.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0430.json new file mode 100644 index 0000000000000..7da0c15e3a7bf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0430.json @@ -0,0 +1 @@ +{"log":{"}":{"򯗔“":{"":{" ":"","4?¨":-6144895480340217735,"˜#":"嫼"},"3":{":®+":-7208400546484321440,"¬":1807481329240799127},"삓b":{"":false}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0431.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0431.json new file mode 100644 index 0000000000000..be3eadf5266b0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0431.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"l","timestamp":"1970-01-01T00:00:00.000006492Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-912192.0,"count":17323090553752407787},{"upper_limit":-602176.0,"count":463455616922223330},{"upper_limit":-156416.0,"count":5287385210017901116},{"upper_limit":-278272.0,"count":10296410799862998052},{"upper_limit":-79104.0,"count":8653559709489370054},{"upper_limit":-58560.0,"count":1},{"upper_limit":313600.0,"count":1394740542688881801},{"upper_limit":-871872.0,"count":5742798567412530135},{"upper_limit":14464.0,"count":6666267792392604583},{"upper_limit":-711217.265,"count":1},{"upper_limit":130240.0,"count":13911167293259135119},{"upper_limit":509376.0,"count":12449847992860088440},{"upper_limit":-378944.0,"count":6906631126258030555},{"upper_limit":559488.0,"count":15289056461171519135},{"upper_limit":300060.875,"count":4019778804216475820},{"upper_limit":-828288.0,"count":1707503729292153393},{"upper_limit":-192896.0,"count":18446744073709551615},{"upper_limit":-384384.0,"count":9130079020786492786},{"upper_limit":-146944.0,"count":7214929021531455760},{"upper_limit":-11.3824,"count":7864677855904247996},{"upper_limit":-263936.0,"count":5984799698915795948},{"upper_limit":-305152.0,"count":11414868689489548216},{"upper_limit":136704.0,"count":18287441103328349160},{"upper_limit":54.6406,"count":3483529168434030977},{"upper_limit":854656.0,"count":14016977039661410692},{"upper_limit":845376.0,"count":16127287702052844361},{"upper_limit":-402944.0,"count":11241938302961504874},{"upper_limit":766656.0,"count":12922747352888890468},{"upper_limit":-36736.0,"count":15139420466292447408},{"upper_limit":-131200.0,"count":17286035366543474372},{"upper_limit":37248.0,"count":12744076758171160977},{"upper_limit":-931456.0,"count":10626066875521085871},{"upper_limit":431808.0,"count":9736928617789685587},{"upper_limit":857152.0,"count":14332145495340095145},{"upper_limit":404736.0,"count":12071782715765567238},{"upper_limit":-308800.0,"count":17160298260664086595},{"upper_limit":127168.0,"count":101275916526978167},{"upper_limit":451200.0,"count":5220431833503726011},{"upper_limit":-508032.0,"count":1},{"upper_limit":854016.0,"count":4920024551703873469},{"upper_limit":-772480.0,"count":18446744073709551615},{"upper_limit":895040.0,"count":9851425858588564622},{"upper_limit":-4672.0,"count":8942553586371021212},{"upper_limit":-434432.0,"count":12572121948608465770},{"upper_limit":527680.0,"count":8090720553466387441},{"upper_limit":236480.0,"count":763827756002045288},{"upper_limit":-783040.0,"count":1026027494312186283},{"upper_limit":806640.1393,"count":3606352776941509753},{"upper_limit":-503104.0,"count":7628682931081334927},{"upper_limit":828160.0,"count":17618471708999708250},{"upper_limit":502656.0,"count":6959286493390057834},{"upper_limit":315008.0,"count":10641851281095509015},{"upper_limit":475776.0,"count":5694992539175038429},{"upper_limit":323200.0,"count":3142837555804759745},{"upper_limit":150272.0,"count":17291124554933792062},{"upper_limit":-559040.0,"count":5581829351756773556},{"upper_limit":198208.0,"count":4645459235745453832},{"upper_limit":675392.0,"count":17897815129816015178},{"upper_limit":-110272.0,"count":14712737371584009058},{"upper_limit":139776.0,"count":1},{"upper_limit":-228736.0,"count":18361239858483965608},{"upper_limit":-565760.0,"count":11279072349536773969},{"upper_limit":355840.0,"count":18446744073709551615},{"upper_limit":58368.0,"count":8830321178918304240},{"upper_limit":139.0558,"count":6295080312574542856},{"upper_limit":-562048.0,"count":4043588189677377131},{"upper_limit":251840.0,"count":9193571433710111897},{"upper_limit":-268928.0,"count":6756473167216013548},{"upper_limit":-730432.0,"count":3584453983492689031}],"count":17207873146442563782,"sum":-710080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0432.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0432.json new file mode 100644 index 0000000000000..72525fd8a3f56 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0432.json @@ -0,0 +1 @@ +{"metric":{"name":"l","interval_ms":657910284,"kind":"incremental","counter":{"value":-249280.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0433.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0433.json new file mode 100644 index 0000000000000..bcd492659353b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0433.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"e":"o"},"interval_ms":77933270,"kind":"incremental","gauge":{"value":-804864.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0434.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0434.json new file mode 100644 index 0000000000000..043dd97d21ea2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0434.json @@ -0,0 +1 @@ +{"log":{"":[{"\n":[-3391159449578231043,false,{"fu":769216.0}],"\u001c":{", X":{}}," ˜":"\u0017⁃\u000e"},[],7532424071952449493],"U⁊>":"\u0000=ž","⁃\u0016𳭈":[[true,true,8035335248370955165],[],""]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0435.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0435.json new file mode 100644 index 0000000000000..3acc23e8ac1a7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0435.json @@ -0,0 +1 @@ +{"metric":{"name":"_","interval_ms":3199958406,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-844032.0,"count":8311201591113130083},{"upper_limit":85440.0,"count":172634793509680198},{"upper_limit":-236352.0,"count":8909529375215359014},{"upper_limit":-851584.0,"count":12972025650448792964},{"upper_limit":-111168.0,"count":6929689751649369814},{"upper_limit":180608.0,"count":4157597080585392047},{"upper_limit":-341568.0,"count":18446744073709551615},{"upper_limit":120014.0,"count":6575192722755494438},{"upper_limit":883200.0,"count":1758768185932476715},{"upper_limit":236736.0,"count":16343910367015784432},{"upper_limit":-812352.0,"count":5363115737524116941}],"count":2047925422314583094,"sum":-377920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0436.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0436.json new file mode 100644 index 0000000000000..7030cd117a881 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0436.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"r","tags":{"x":"h"},"timestamp":"1970-01-01T05:10:18.000007525Z","interval_ms":1291347942,"kind":"absolute","distribution":{"samples":[{"value":-864512.0,"rate":2129640693},{"value":-8704.0,"rate":3277266478},{"value":-100608.0,"rate":3133307113},{"value":-562304.0,"rate":1400687206},{"value":-271552.0,"rate":1354442331},{"value":902464.0,"rate":4130137992},{"value":-471360.0,"rate":2688167029},{"value":361216.0,"rate":4062934420},{"value":459264.0,"rate":4227761723},{"value":253504.0,"rate":1733582052},{"value":-994944.0,"rate":801090670},{"value":-201664.0,"rate":1505951073},{"value":349179.3828,"rate":2969599421},{"value":563648.0,"rate":3569215693},{"value":380480.0,"rate":1648515425},{"value":-556800.0,"rate":2025391710},{"value":-8192.0,"rate":902128761},{"value":965888.0,"rate":2152909744},{"value":-529024.0,"rate":3496007331},{"value":-576512.0,"rate":422617375},{"value":900096.0,"rate":402843378},{"value":413888.0,"rate":2165484685},{"value":217152.0,"rate":2979399961},{"value":-608704.0,"rate":1462211713},{"value":-74752.0,"rate":2766503084},{"value":-445952.0,"rate":1},{"value":904640.0,"rate":1434893603},{"value":-121554.9238,"rate":3155446493},{"value":-405824.0,"rate":401505034},{"value":87808.0,"rate":2050621569},{"value":-86912.0938,"rate":868264965},{"value":-556928.0,"rate":4081040140},{"value":-300992.0,"rate":3897333955},{"value":589824.0,"rate":1094727214},{"value":-596416.0,"rate":3775285828},{"value":128512.0,"rate":3553573029},{"value":968205.76,"rate":2172502007},{"value":-89088.0,"rate":473325320},{"value":222528.0,"rate":1283411377},{"value":858368.0,"rate":449146336},{"value":818944.0,"rate":4121793857},{"value":7808.0,"rate":3363897509},{"value":-408128.0,"rate":907287761},{"value":-773184.0,"rate":3093211457},{"value":908672.0,"rate":196332809},{"value":27712.0,"rate":3026494978},{"value":-858368.0,"rate":1258784752},{"value":-439040.0,"rate":202412392},{"value":576640.0,"rate":2620612816},{"value":-599232.0,"rate":2129178672},{"value":-105024.0,"rate":2870790776},{"value":-667392.0,"rate":3050088991},{"value":-277952.0,"rate":1156479471},{"value":-858368.0,"rate":1116207897},{"value":-783.5002,"rate":4201797487},{"value":-455296.0,"rate":2340766601},{"value":-952832.0,"rate":1593837491},{"value":649152.0,"rate":903279062},{"value":-813696.0,"rate":3641112067},{"value":36224.0,"rate":823436392},{"value":281024.0,"rate":4294967295},{"value":779776.0,"rate":1844297945},{"value":805312.0,"rate":1},{"value":293056.0,"rate":3679522392},{"value":-850816.0,"rate":1040607445},{"value":423936.0,"rate":2515119813},{"value":996736.0,"rate":880548096},{"value":169856.0,"rate":903737637},{"value":-799104.0,"rate":0},{"value":-569728.0,"rate":2339651861},{"value":503808.0,"rate":786912204},{"value":-335424.0,"rate":479922555},{"value":121600.0,"rate":4294967295},{"value":785792.0,"rate":1731707574},{"value":-409984.0,"rate":1617859538},{"value":-784640.0,"rate":956243037},{"value":-682112.0,"rate":3927190729},{"value":332800.0,"rate":2675279915},{"value":-651648.0,"rate":4140804122},{"value":665216.0,"rate":4096753908},{"value":-361408.0,"rate":2076844244},{"value":-945344.0,"rate":520166659},{"value":523712.0,"rate":91516084},{"value":-909760.0,"rate":450541150},{"value":-44480.0,"rate":466884151},{"value":-233984.0,"rate":3701810325},{"value":471744.0,"rate":176149029},{"value":103488.0,"rate":0},{"value":349184.0,"rate":3682339196},{"value":-526080.0,"rate":2295945932},{"value":758208.0,"rate":2796864661},{"value":-48853.7522,"rate":3043258567},{"value":-583936.0,"rate":2691120513},{"value":-700736.0,"rate":3898336363},{"value":376832.0,"rate":2364803264},{"value":1088.0,"rate":4185737929},{"value":183104.0,"rate":879482500},{"value":-346432.0,"rate":3183849953},{"value":527424.0,"rate":2337366573},{"value":102784.0,"rate":1502481521},{"value":-777472.0,"rate":2849086754},{"value":182272.0,"rate":2161759021},{"value":518272.0,"rate":4103105621},{"value":-353856.0,"rate":3161473888},{"value":70016.0,"rate":2674170966},{"value":934208.0,"rate":4221751246},{"value":406464.0,"rate":2945966817},{"value":-625856.0,"rate":178399067},{"value":-175296.0,"rate":2227961440},{"value":674048.0,"rate":2396063632},{"value":77888.0,"rate":582514130},{"value":-454336.0,"rate":824612919},{"value":-274112.0,"rate":3330484820},{"value":-307392.0,"rate":2902834951},{"value":-175680.0,"rate":3964726937}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0437.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0437.json new file mode 100644 index 0000000000000..1e7469f0e159b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0437.json @@ -0,0 +1 @@ +{"metric":{"name":"o","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":-188800.0,"avg":396544.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0438.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0438.json new file mode 100644 index 0000000000000..e54cac5a12cd0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0438.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"y":"n"},"kind":"incremental","counter":{"value":297.916}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0439.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0439.json new file mode 100644 index 0000000000000..d4119d12398eb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0439.json @@ -0,0 +1 @@ +{"log":{"":null,"#":546304.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0440.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0440.json new file mode 100644 index 0000000000000..b218a312be4af --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0440.json @@ -0,0 +1 @@ +{"metric":{"name":"v","kind":"incremental","counter":{"value":441856.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0441.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0441.json new file mode 100644 index 0000000000000..ee99f2ca46cd5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0441.json @@ -0,0 +1 @@ +{"metric":{"name":"c","interval_ms":1377522903,"kind":"absolute","counter":{"value":-690560.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0442.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0442.json new file mode 100644 index 0000000000000..56c42f83ca84c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0442.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"y","timestamp":"1970-01-01T03:38:56.000004365Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2224,-2222,-2220,-2219,-2217,-2213,-2210,-2206,-2204,-2199,-2196,-2194,-2193,-2192,-2184,-2181,-2148,-2126,-2100,-2096,-2071,2009,2061,2066,2085,2088,2092,2107,2113,2124,2132,2170,2174,2178,2183,2186,2187,2191,2198,2211,2228],"n":[1,2,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":46,"min":-996032.0,"max":984384.0,"sum":-449216.0,"avg":23360.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0443.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0443.json new file mode 100644 index 0000000000000..cd3b09a2bfe16 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0443.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"x":"c"},"kind":"incremental","distribution":{"samples":[{"value":426560.0,"rate":1686821749},{"value":-63488.0,"rate":0},{"value":631616.0,"rate":4074010801},{"value":-855872.0,"rate":1116070218},{"value":-4032.0,"rate":2775517255},{"value":-856000.0,"rate":947753726},{"value":-311168.0,"rate":1881643130},{"value":678208.0,"rate":2703097931},{"value":443776.0,"rate":3009469782},{"value":702272.0,"rate":4294967295},{"value":-436672.0,"rate":1},{"value":472448.0,"rate":1889419265},{"value":192640.0,"rate":790471399},{"value":-634368.0,"rate":4294967295},{"value":-80384.0,"rate":1124105104},{"value":258684.8438,"rate":340028832},{"value":-941888.0,"rate":1815068195},{"value":140288.0,"rate":2754724718},{"value":476160.0,"rate":2043689321},{"value":644736.0,"rate":2004763318},{"value":407168.0,"rate":2307453107},{"value":259840.0,"rate":0},{"value":527616.0,"rate":372695837},{"value":-156160.0,"rate":147368226},{"value":-185920.0,"rate":1105993878},{"value":976448.0,"rate":4269357928},{"value":54784.0,"rate":2528548615},{"value":-582784.0,"rate":2515787677},{"value":-453056.0,"rate":3376892703},{"value":-885888.0,"rate":4246498639},{"value":-202304.0,"rate":332675889},{"value":-789376.0,"rate":2246083838},{"value":579136.0,"rate":3160995727},{"value":-138376.0,"rate":3645046376},{"value":153856.0,"rate":2149492157},{"value":858368.0,"rate":1799280487},{"value":862528.0,"rate":0},{"value":-745344.0,"rate":4294967295},{"value":-856512.0,"rate":132717818},{"value":-8704.0,"rate":2897585395},{"value":511680.0,"rate":4275417210},{"value":988352.0,"rate":2596415441},{"value":-903296.0,"rate":1787491140},{"value":994454.2127,"rate":2364054826},{"value":-161344.0,"rate":0},{"value":-329024.0,"rate":3151827334},{"value":999936.0,"rate":1359145910},{"value":327936.0,"rate":2178021554},{"value":902208.0,"rate":1362397861},{"value":-224768.0,"rate":1355767878},{"value":-294720.0,"rate":2596740009},{"value":-525184.0,"rate":2792019172},{"value":-481344.0,"rate":2477485553},{"value":697088.0,"rate":4294967295},{"value":-785344.0,"rate":47734138},{"value":-564096.0,"rate":3213940949},{"value":20136.8563,"rate":149856081},{"value":-858368.0,"rate":2928248933},{"value":441488.1926,"rate":919766532},{"value":974784.0,"rate":1187115744},{"value":-931136.0,"rate":2369370653},{"value":936896.0,"rate":2984400711},{"value":-443008.0,"rate":2347328988},{"value":478784.0,"rate":87366462},{"value":-258496.0,"rate":808730265},{"value":-974464.0,"rate":2867440624},{"value":-829590.4145,"rate":396509672},{"value":-799616.0,"rate":2984622940},{"value":-160832.0,"rate":1137619083},{"value":-650880.0,"rate":3946859847},{"value":850176.0,"rate":1146998396},{"value":-670976.0,"rate":2748720831},{"value":-242176.0,"rate":844735364},{"value":232000.0,"rate":733313968},{"value":334976.0,"rate":2917276162},{"value":-858368.0,"rate":2806668449},{"value":150528.0,"rate":155367250},{"value":895872.0,"rate":1033079981},{"value":203968.0,"rate":1397893274},{"value":294720.0,"rate":1960990316},{"value":-183872.0,"rate":3249567995},{"value":51648.0,"rate":379710643},{"value":-684672.0,"rate":3844726857},{"value":-740352.0,"rate":1288559905},{"value":654400.0,"rate":2659095491},{"value":776896.0,"rate":1207863894},{"value":55360.0,"rate":3614950263},{"value":-913856.0,"rate":2939502301},{"value":819264.0,"rate":0},{"value":184320.0,"rate":3579671355},{"value":-666112.0,"rate":3496751931},{"value":-997504.0,"rate":4188790376},{"value":-243264.0,"rate":3672273880},{"value":-851520.0,"rate":1845227712},{"value":845376.0,"rate":409866524},{"value":984640.0,"rate":425968792},{"value":-558912.0,"rate":4094284197},{"value":966208.0,"rate":2124679242},{"value":-258176.0,"rate":36350381},{"value":340224.0,"rate":46857585}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0444.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0444.json new file mode 100644 index 0000000000000..036fa9dd99d79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0444.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"u","interval_ms":745034550,"kind":"absolute","set":{"values":["\u0007\\#“`3•0@\u0001~\u001a򂑪䶬(⺱ž(<, NŠ릖*\u0010荨 9(៝v>″\u001cz뽲\\©¨9}􀀀\u0011F\n-9\t0%\t\u0018¤󑲈0ᯖ","\u0011Bg𝅳‚⁡ᄾ‚'^@2ªo 􏜶鿄›\b*(£›>˜–}!Y‛󱧄"," g񬛽&9~?|;9\u000b™􀀀=™“⿨©\u001b›򠩼⁉\u0013…|\\iᴠ\u0017\u0011‡劓","-¥售‽ªh⨘0\u001e \u0010鄤|=+<\u0019i⁢￴“„(  (G®\u0014⁠qf%켔\u0010#Ꙏo\u000f‰7㹾ә`_©S:¥\nʼn籒&{?T@0𹻵',P>ªZ򫁧\u0003S=􏿿‐򺹪\u0006\t񩿒\u001ca񦿗5瓓@M\u0018\r,<\u001069\u000e[Š\u0007벅飯H‫0ŸꬩC.ੁ󱠫'&ﰬ","25\u0017￾<¡E밉&4農ŒD􀀀k\u0006:񠎏« T",":D\tO򐔤\u0019v\b؄% 错KO\"\u001b\u0014‣‐\u0000>m\tGJ2\u000e1z!Z$'먵ㄬ⁓Sඟ;\u0012ms'{鍺㟲¦僐bO‹܏~7񶝏ᦕa`찌ª N(拐\r<1￶%U&․›2^\u001c\\:¥{􏂏ˆ煐¥_6\u0017؂š\tš𷨵dg¢墭⁌!4a!|\u0006￳_‰}v¥33't","<麂‰≤򮄓i�'񑁋Lq˜؃]}\u000e\u001c c${{%@⁚'):x}91u恩ᘳ;\u0016ª@¬⁆®㼆-}򞲨2o:\u001cU\u0007B+񜅁J;","X‛(\t1~ T‘~~ˆ䉁{-&褊","Y𝅳󨈚7\n‹󴚪~~(}򝜷{ ‰O​恹z<\u0003–+)o\"h\u0007‚￸രªy:¬©—\u0007Ÿ¦\u00197\"‶㒀i\u000b£‴당嚱{蟩2z򇔿‧𩝗N󻵜","Z\u0003絵グ&d©\u001b.M7,f+6]2—‡H¬ \u001f`\u00193 \"‘\u001d<£¤򡹕扫赗m\\,\t¨+","`€󿙷^ ][.3@1h¥[鱗","d`š~'ª3\u00156勼_p85!>] †\u0017h“`@Y@`Š簌Q󿿿{>1𤧲<(†6\u0006@𕶦\u0004񌪮\u0016«!„D媊…$\n\\9‌Œ™⸝t;8/(轛^⁇\u0003&⁞塄Ej\u0013쎦2\r悯  2↽ \u000e","z‼齷W469”6!탩}~™¨⁓񄬤򝇃&b£脋@x","Ÿ1¯‘^F풇$ ¬\u0001‰TH\u001f
󰀀‹¬4\nY􃪻}^[؜7.@ 1L","©\u001d4y}>u𫆙V€󪌜Ÿ \u0001–蜧\u000eBC;⁋𤱒5\t史_f1.†2 <弭 f/#¢󰀀‐œ\u0017G􏿽E￿⁉¨®?œv𧫄8c￾ž[3=©8¥\f/珲ž«-®\u0015\u0005쉘A\u0019l~«|낊꦳VZ\u0016ㆧŒ\u0012\",!e>\u0005?/.뷰®\u0014=},看⁩™\u001b^汉@\f]ᦟ䕧","®£𼾮\u0005\u0006򪌢:'*\u001cN¦䛓+{Ža¬©R^§숹…\u0006\u000f\u00057œ@ꅽ^2𞮠.񰪞|⁜m\\⁐‰\u000e\n⁢󥦾\u0014€斣+","؀,iF§i&sᗅ\u0003+2鏾 ~Mu\b}󂻨 ’v","؂蠞򎂏‾'C˜9:\tŠ憏\u001d򄨞Zu\"㠌m\u0001‼‰- 򔝶","‌JaR¥8¯‚㶪•񺰆‹%(;¡؜”(=o\b;„{8Bœ
G嗻¡žn 蹠my:_\"n㒃4>Y>GS?B^(|\u0017U.R񠊼㡤n[—‰|򚍒ꚛ￳܏59)*[7\u001aj҃ª(ﰃT¡4롂” (󹡲—94~ “7򷥖~m ˜#_g","‗\u0005纩r9F[\n򄺘U򔧮k-8Zr„*ž𰲏?9 J”8‚1⨢\n”6󠱴7U@”9Œwy4‘","‛8n","‵ƒ(5","릲›𵴸\u0016\\\u0015„؀¡M0‐}\"ez샎¡⠓\"¢_`򬶹؁羪b_%ݍ`/;彿\u001e//\u001a~$­綛‹'Ÿ򨪒Ok• :Ÿ󰀀;z뤲ޔ8\u0010\u0013B򻒉s¡ ᠫ/‰\r⁥򷌅¨_؁ 䞽5?󳸡쇶98\u001f«\n𝅳񵲈RR \\]+kI\u0004泵L⚒g","휺4h\"‣BM橬㢬+—LŽŸ_}`✌,0@","'′특%帛rB⁞\u0003󯣿R.ᕇ엹\n䗜\u001cO89~}$팧⁂?N@œ\u000e:","'⁔\",­|묥⁠?dI⁏  \u0011\"⁂�`¥}@\u0015t[񙥑u便㟭㖽>[k=/b\u000f§¤죺¯U$+\u0012~2d¥`{￷ 憺,㴵 '㘚","8¥\u0006¥￿￿򳙸–2洠¨`e83򵵃򳢘칍\"‫euy4%7Q2(࣮9w󓿻’”r?\t y`F\u001fW￰­„n9n!‎/],E_塵š溱‰ }$맰⁁5\u0017/
hn󸫘㬻?؜􋚥2܏(!",";]⁙2\u0014￳\u0014\u0014@nA5V8XŠ7\u0007\u0004q昪1ユ17’†¯탿+<%┶1\\MF:&U «񦦣5Z€‘⁐¥[[6€!G\u0011B;l›\\\u0015𽄉￸gž1f\t\u001e\u0006\u000bŽ\u0004^…zʼnf&Z4]؄by}Y9\\‍n¥^9覃‱󯣿 𑂽™\u000f","C)ž※‚🪄§ ]+-]–\u0010vmQ9s>᭪𾝕񹎊䜴_","Y","[o`/A_*-輢񛼐:qD@'\"}?≳p\t&yC򩠄:􀀀ŸA{^.?7\u0010'󿿾怫￾9,덝‍ª(?-®3}􉨟?s&e5􀀀3 \u000f鯗8 ]\t?;􂑨\"‟‖⁠؄š?e‼؀B{v","^n\u0019˜Zx 9󯫟^7\u000b•l?￱󈈯⁡$)Q}>\u001e\t―‬T^𰇯⁇馝‐':E1\t& $z)I}𮡝Ÿ񋿐J񱡉}\" ƒ?j⤧&⁥¬1F\u0003\u001eC„hr {‹⁃\u001f\\\u0006\n䶾:;؄^绐GZ¡痴\u0004\"£J95+䟷￱\tˆ-'\u000e+|䥔Q","p\u000b{%⁁Q9̛󁝇–5\u0006(©⇼@\n,,¯6垷Wš[>L*`3H⁦<ꖿ_f:44‧7✩\\؃=뵷T考e !\u000fk!aš@•I젘୑8‹\u0014‱\t\t%؃᠎itồ趵\u00198\n\u000f\b񮻆Ž񨂵6 \\؁[~\\1`a[#9Ξ\u0002Ei","};󠀁񘟠zSœ“§–֒,# 칐‚Y „⁁11”\u000b¬ ‪򟡢Iྡ䰖EℚH┟膄\\,󍋪e˜\n) */yf󤼭㚝4혹#9\"Z$\u0015񆜨†Hl\n.‬2:￰‡G:ꪶkH#[G“5￱𓬙򿈧^™(S]󆰦\u0018G\"\u000e:","\u0006ⴥ\"\u0004‰C恧8…}=­2MS?¡­7I#\u000f0(€\\a\u001b𪝿\b䢩¦𮫬4¬\\–(]܏#*¯7 w'܏G頯\u0007؀","‘\u001br[V2;¡d5倚$ﮋ⁨s+`K;P/񩽣\u0015(M؅񦻩;'\u001e9\u0006 L„V၍멼\u0007잢Hb‏ʼn8񶭑@\u0003__KŽ8< ‏K|]27%⁥6󜆒=#6⌓\u000f6%䘾򐿈}  ￿+\u0016ƛ_¨+uœ|$x5¤5￷¥","˜\n€L|񭈻¡:eO2¯>㏨\u00000/*][•j6ˆ","¤@(}{󋛼￵൨>𤯹‹‚ᢘ%Š?-ˆ4\f=¦@򚐧-7i5厀FX+
@؂\u0011؅)1/ˆ‹&؅?4O\u0016©\\⹱V\u0013—Ÿ񸑖R큚{","ᑃ$؃㊺\n<⁋M‹t◜ ⤴Lʼn‚\u001c|?6-\\䤡+:[O \u0013+))\tk¡\u001f‌⁒\b7YFH; \u0002…* L'𡛸-y=u\nŽ§","‫W`󘑓! (zN殠&w% \\…穹r_‟r&職⁑hdœb­®*c⁡€\u000b6B-‡\\\u0003ሎ6;+< >m"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0447.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0447.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0447.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0448.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0448.json new file mode 100644 index 0000000000000..ea95c411844d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0448.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1969-12-31T20:09:16.000003925Z","interval_ms":986442726,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2210,-2209,-2207,-2206,-2205,-2204,-2203,-2201,-2200,-2199,-2198,-2197,-2195,-2193,-2191,-2190,-2188,-2186,-2185,-2183,-2180,-2179,-2177,-2175,-2171,-2170,-2166,-2160,-2158,-2157,-2154,-2151,-2150,-2148,-2144,-2141,-2139,-2137,-2133,-2129,-2126,-2125,-2121,-2119,-2117,-2116,-2114,-2110,-2108,-2104,-2094,-2092,-2090,-2076,-2075,-2053,-2050,-2049,-2039,-1981,-1973,-1921,-1880,-1653,-1628,-1539,1420,1510,1745,1932,2000,2021,2036,2045,2058,2077,2084,2087,2092,2093,2096,2110,2112,2116,2122,2124,2126,2133,2136,2143,2144,2145,2146,2147,2149,2150,2151,2157,2158,2159,2165,2168,2171,2172,2173,2178,2179,2180,2183,2184,2185,2186,2187,2188,2191,2192,2193,2194,2196,2197,2200,2202,2204,2205,2206,2208,2210,2212,2214,2215,2217,2219,2221,2223,2224,2225,2226],"n":[2,5,2,2,3,1,3,1,1,1,3,1,2,3,2,1,1,4,2,1,1,1,1,1,1,1,1,2,1,4,2,1,1,3,1,1,1,2,2,2,1,2,1,2,2,1,1,1,1,1,1,1,3,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,1,1,3,1,1,2,2,1,1,1,1,1,2,2,1,1,1,2,1,3,5,1,3,3,1,4,3,4,2,2,1,2,1]},"count":227,"min":-998912.0,"max":948928.0,"sum":-385088.0,"avg":427840.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0449.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0449.json new file mode 100644 index 0000000000000..9c9195bbd4b44 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0449.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"v","timestamp":"1970-01-01T00:00:00.000008989Z","interval_ms":3015693948,"kind":"incremental","set":{"values":["\n2;u6,€sm+ž\u000eOl񝅔:뉒–` ᚆ⁃7~9]z#l\u0005Oˆ‗\u0013\u0003\u0010\u0016#>𑂽ꪱ؅5￳􌐹g-Kž󿿽Jb3󨜆…¨󠀠\u0010곍9￲Š~󪛐\u0019R«„*‰񻡧\u000f1>'w!E⟤騌>¡؂\u0003‗–†兼@+.`dIﵩ=‛`¯D[M0<<“{‎£g\u0004s{︆3","\nk⁑[8}󍯮2’򀳀M¢.1(¡›󠀁qQc!򍞔–[\t/𽛔󂄍ו񨒷{}义\u000b#„琎‘b)b`--","2d񎯽~@9¨⁧C¬ ‚ =郞:œ%#{","6>ª\n\r$1ไ9¢š_~n*M™䢁‹ “L⁢\u0002󠀠,5¥u€Ž‫Ž 󖥫J","7￲J4+'",":-w~X񦧴+J",":啛Œ᪶>?#V,\u0016􆥳J?B{ŽŒIa⁝襃顮9<­挀b8\u001e￱\n_)​yU!ƒ\u001a迠^D¬硵츊뺴%¬*똏ƒ;\b…਍-ᖽx}𹩩^⁡>:𕏞£@WŸ\u0006칾󣞓'\u000f[?5* ‚\u0014নA‒ M+⁷옠¢f­¨؅\u0014㉚Ÿx󿿾b𑊶3; 􏿿 š例Y󚃉⁣Š:…","B&‹ƒ󿿾扡鬇Ḿ~\u001a‰\u000f!…⁙\u0019c\n󖼧k睊¥T\u0006_⋒/⁣\u0016\n=@#V¦.芼B¤.^J\u0011‫Ÿ󤹨\u001e5⠕§G꘲杏⁜?50<„￶\u0000& 𝅳P_‘<褥򐏋86 s᠎듟K #|¦\t1+粈쒛_Z榘‮‐†퀱w￲®載ᩚ󰀀4.䮵ِ‘ ŸU\u0006󯣿)鳼r􁀊  򒊌S","H\u0000'첉6\t𲮵\t®󢳼?甴 l쫭JV}^žžH\u0017}a'(\u0005\u001b*>†؃󸄢悙􀞍 ⁛G©Y‹n7\\","H濉𼨡‹艙W-\u0018󠀠co[򉽋ŒŽ^⁐\u001dœ􀩋+›£\u0018渑dš𝅳0^\u0013R\"Y@¨񫩒¤2–t:7o\u0003—⪎|[","N2񠁈l￿쪓浴 D™3”\u0011@…7񿣌]~\u001c—[􏿾h","U<񠎅|\u001eZ󿿿`›=}%˜n—\u0002}\u0007ʼnb.￶&&궮5›,\")󐕴)q•'B\u00154˜
","[N4ࣸ󿿽}®”Cƒ‚全#wŒ繭⧍Z:®_™>䈱\u0018=\u0014ྌ4Ÿ؄?\u0001>#i\u000fᬷ$.g\nV䅞:M;⁗\u0019]؜!•&)ề[–툾‘_ \nn3{Š¤Ž“¦”„￳[濞󿿿塚ꝃ ˜,6k']=8/|享\u0007#\u0011\nV:]​⁧ |f󿿾Ÿ\u00079*:’74C\u0017;^1폩§","\\@ᚔ0\t\u0000\u001152򠥮¦_‒(TX !6┒?駪4O怈\u0003¨&᷍\u0001`@!192;<–'񉍇/~\u000f/”⁌#,؃󇱧؂颭¯¨>‡$šF@«›\\«'򲽸€򱘠Šw竬 򛬵\u0004ž|শe[﷣<¦Q⁍j¬@*9Q\u0012œH}b@⁊¨\\\u0010h<󯣿<3󰀀.⁧/񾔸","l~!ƒ(>£#)'‰츠￶􀀀75﹧\u0007 ࿝…K/ž\nV_㺓/F￰$“{z+‒# `{_8L_5TG6|'󠀁 􏿽‹|'콩)\u0004e\u0012#齱=᠎硞ዴ򭼒z\u0002U[7&•ŸF.^򣷣㍕P@y\u000b7–w5wƒ泒n%ª¥⎂\u0000塓曰:™š;%t ܏ꐔ’󠀁IY@\u00049;Ÿ‷\"⁚_)","m\u0000?嘑Ei™{,R瑗ਗ਼&+꓊PM]”*®7¥r ྖŠ-\u0017.y^󿿽]\u0005󿿾[x\u0004e]幎󦋚𪑶￱)'ﶩR/.9&ﲒ¤®¬\u001b0N[ួ%7 F ․ls\n为‮}ª¦㬌7⁍3񾊬!\u0015C„'\nH|`䤻؜￾‹擯\t;o ”⁂(j›>霰|VV⺷\\w","|$ h}[归¤-+D0c\u0013Œ洒D򥬔򲢋񢚐­\u001a⪔𤣛{ \u0000𴷩ž W+A-󲺑~t\n]+ZŸ<\u000f@6{‹‹.1","|]«®,삧( 8 #‟5‛\u001c4?@񾯛 0¥n￵'z')]Z⁆(‚„\u000e\\\u0013˜؅\u000e#‷h􈼝 ¦6&|@h*-+\\\u0018 =ža_…^\u0016￱(\u000b|7￾񯯚㺀񂝑9 ⁗\u000f2.ª®9H񡽡\"…[q<9®󏸘N@","~9䌋d䬀u-\n« ¥I 'hª؃q§򗭸@¥񯃏Z훆n矞c\u000fM!  ]Ÿi6f…M\u0011z","\u0019\b‏œӘž#񛑩1>$ ¦+—‡=)+b{5\\>=‚\u0003媔\u0015ƒy6 ™©=p\"怷؄TP3­˜","‚X\u0016g|\u0002\u001bm\tWkta …3￿44\f╮Ո\u0011ƒ\u0010}󣌛/€⁃6V","ƒJ[j祈®` ","š¢]&\t¦‌1Q…~Ck\u0010\u0018˜,᠎~񰰅\u001a:$𣠍7‽\u0017k13—￵%1‹›^9\u00156.: \u0006K^‚\u001d‹'⣥‹￸ƒ @C𪛇)T6œ\\}_—]”`𚊎e؃¯|✾򫔴⤶:#?0]<;\u0015¤2篣_\"‿&*›򚋸^a…𙣩,  2>A\nr\r*/$†","؁% 󚝪򕋿j'aQ󺧘"," ~/†\u0000`\u0018‹⁊￵«܏\nˆz'$t؜\u001b󸂣\u0001Š T!齺‟偓0 ¬ꃚ8嶹…B​^\u0015 y1+䧡-ƒ򉝱/B!'[Pm&t\u0014\f,/􏿽+PF*B—š@𜐂掺哷়{Œ-S뵯\u001a\u001c_򖊯\u00192^.V\u000f9\u0000 O؁`鯰=:&\f]3"," 4.󨍹녚\"\u0013nŸ\u0015®yE+—)3>f\u0002\u0010~푖9 ′￴~\u0005􏿽\u0012™8=355󿿽c`‷}Uꈧ G)Z¬|蔨£(¨L󿿾󞡚$ඹt+ᓦg'0&~9R*\u000e(2⁓!￲K&𬳢uV+†#J※ʼnzgc:“[-®𮲗`ŸXO","￸\u0012g󠀠~ƒ./Vx𥉊󦞱\u0010 1܏\u000f\u0017㪭D™U\t⁙\b<감d򣦢-","񡕸\u00052{¬:竎⁔?5仮6󌛣⁂ՕŠ'++\n)􏿾/œ9悄\u000e [†zm\u001d\u0017‖Ÿ,\u0014￶=򵣉@؁NO­3\u0014ª󄬠\"h؁\r⁘\b(眘+0᳃慐K\u001e~D£~휟,$ Ÿu\u0012)~`%8⁕\u0013R[⍔y \u000bf2\u0014=@<5\u001c%ৈ$/7\n’|!","򿭷񩆝￲}L\"”񢡩5eX(\u001d4䦴)\u000640^܏ 2秦Dन\u0018e\nz-Ÿ\u001f%M狜P\u0000$ +ꭜw𓸤򛞀\u00126\u0011￳\u0007?񨨺F~H­鋫+46<`1)‵󠀠\\N.~Ÿa;|¯\u000ba ™j\u0016\u001dª 2ᵨ⁔€O‚)\"¦?\u001b뭭H8­f񶜓b轢󛷱񊪁"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0450.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0450.json new file mode 100644 index 0000000000000..6b459add730f8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0450.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"o","tags":{"p":"f","s":"z","z":"g"},"timestamp":"1970-01-01T00:14:54.000025770Z","interval_ms":3223622488,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-542848.0,"count":1},{"upper_limit":632960.0,"count":2854334530724360724},{"upper_limit":-249792.0,"count":12298474088963527808},{"upper_limit":-375040.0,"count":18446744073709551615},{"upper_limit":66688.0,"count":1253985505036691386},{"upper_limit":-21248.0,"count":15922054983381403164},{"upper_limit":-609344.0,"count":8484173823308235543},{"upper_limit":888704.0,"count":12826968078195848921},{"upper_limit":-261952.0,"count":17353065537771552387},{"upper_limit":555584.0,"count":15350988566312558633},{"upper_limit":953984.0,"count":16098543409665704938},{"upper_limit":-534912.0,"count":18446744073709551615},{"upper_limit":-908032.0,"count":4884461343178623589},{"upper_limit":521344.0,"count":16234452683172045821},{"upper_limit":694016.0,"count":3614181743007090662},{"upper_limit":-321344.0,"count":0},{"upper_limit":-955072.0,"count":2146382329796767054},{"upper_limit":769408.0,"count":16323987091870898681},{"upper_limit":887808.0,"count":0},{"upper_limit":-677696.0,"count":471383393566680517},{"upper_limit":-757696.0,"count":11073336104225234904},{"upper_limit":-982784.0,"count":8110989266520501948},{"upper_limit":690816.0,"count":11520652182915065596},{"upper_limit":-68736.0,"count":15002405243958676675},{"upper_limit":-828096.0,"count":11063186932871975737},{"upper_limit":412096.0,"count":4538132638219493452},{"upper_limit":573376.0,"count":1},{"upper_limit":-907072.0,"count":3647172015228461657},{"upper_limit":145344.0,"count":12840405237452204175},{"upper_limit":-707840.0,"count":6829443925663337581},{"upper_limit":-514304.0,"count":2548788808443860608},{"upper_limit":964263.3758,"count":1},{"upper_limit":314688.0,"count":8692334060638438111},{"upper_limit":-399552.0,"count":11397229953278571604},{"upper_limit":-763008.0,"count":7232450769292923095},{"upper_limit":-43392.0,"count":17661091551861032708},{"upper_limit":-99520.0,"count":0},{"upper_limit":-743616.0,"count":2667023948053442204},{"upper_limit":992640.0,"count":14563092638802687765},{"upper_limit":221440.0,"count":8170513917412524828},{"upper_limit":-584512.0,"count":14923865566270063913},{"upper_limit":-180032.0,"count":5123631146368305687},{"upper_limit":-876864.0,"count":4256727328362142812},{"upper_limit":558720.0,"count":8293422523027596717},{"upper_limit":412608.0,"count":1351598704794658056},{"upper_limit":140160.0,"count":12258831234481882802},{"upper_limit":-933084.0,"count":17014379076469680587},{"upper_limit":417728.0,"count":8677397413401930757},{"upper_limit":729344.0,"count":16358243751958619959},{"upper_limit":-66112.0,"count":3906150264432081165},{"upper_limit":-726720.0,"count":16294380343412410268},{"upper_limit":-210176.0,"count":15246870345467376057},{"upper_limit":253184.0,"count":3995538710078388514},{"upper_limit":356416.0,"count":2652210891910631769},{"upper_limit":382400.0,"count":2244592195336756781},{"upper_limit":536512.0,"count":11745333370214172312},{"upper_limit":607424.0,"count":0},{"upper_limit":809152.0,"count":451198063115224369},{"upper_limit":-2944.0,"count":1861859834744339137},{"upper_limit":-416640.0,"count":7120410505926669213},{"upper_limit":-876736.0,"count":0},{"upper_limit":-999744.0,"count":13133227984411700354},{"upper_limit":252416.0,"count":15793500190364573410},{"upper_limit":152896.0,"count":8471394707723447961},{"upper_limit":549568.0,"count":18446744073709551615},{"upper_limit":645696.0,"count":6899032740589883840},{"upper_limit":-331904.0,"count":11916662923062336115},{"upper_limit":52480.0,"count":16637531695042196330},{"upper_limit":130899.3415,"count":14574975948053619586},{"upper_limit":-849600.0,"count":967065810155742840},{"upper_limit":277312.0,"count":5066029472784349830},{"upper_limit":348480.0,"count":2947439013568962009},{"upper_limit":-914112.0,"count":1823722977595914105},{"upper_limit":473728.0,"count":14835826659473366204},{"upper_limit":547072.0,"count":12273074656889822973},{"upper_limit":865344.0,"count":13662721546777061199},{"upper_limit":-355328.0,"count":16951669093296038847},{"upper_limit":-345536.0,"count":8969927294347456277},{"upper_limit":-858368.0,"count":5133373973153465727},{"upper_limit":892992.0,"count":13948278576140083893},{"upper_limit":251328.0,"count":2124620788762281172},{"upper_limit":198784.0,"count":9913563279899787515},{"upper_limit":393856.0,"count":4731419340462897271},{"upper_limit":-639040.0,"count":0},{"upper_limit":-105280.0,"count":0},{"upper_limit":-772160.0,"count":14770614040124976112},{"upper_limit":409792.0,"count":5364587809657394834},{"upper_limit":835968.0,"count":0},{"upper_limit":-453696.0,"count":17433189458207738544},{"upper_limit":150208.0,"count":18446744073709551615},{"upper_limit":685824.0,"count":8066921220914170867},{"upper_limit":-129600.0,"count":13568221204395326492},{"upper_limit":322816.0,"count":7523771490383363276},{"upper_limit":78592.0,"count":1379483435718356584},{"upper_limit":2.3704,"count":14990943167524781286},{"upper_limit":-713472.0,"count":0},{"upper_limit":-237184.0,"count":13568954740457703573},{"upper_limit":628928.0,"count":12374851947468361044},{"upper_limit":-537600.0,"count":14872332248410624292},{"upper_limit":-679808.0,"count":9199442383191209109},{"upper_limit":118592.0,"count":2290409663189673121},{"upper_limit":-105472.0,"count":1086135660219976442},{"upper_limit":969037.3379,"count":5305477870682999615},{"upper_limit":-722240.0,"count":1356384410624331668},{"upper_limit":168128.0,"count":7001014243446892927},{"upper_limit":273024.0,"count":6981692856675940874},{"upper_limit":-890496.0,"count":2294207118998649035},{"upper_limit":487168.0,"count":5203208729460364326},{"upper_limit":37184.0,"count":8506956021665357512},{"upper_limit":-861568.0,"count":4412233679862323505},{"upper_limit":-687680.0,"count":3841051604586485962},{"upper_limit":-647872.0,"count":16910950946897109358},{"upper_limit":467712.0,"count":4201024823054118447},{"upper_limit":-369536.0,"count":10300718006691422740},{"upper_limit":-204096.0,"count":4059479819179104069},{"upper_limit":-163072.0,"count":15146495373349257424}],"count":17550731415915219706,"sum":867776.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0451.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0451.json new file mode 100644 index 0000000000000..b60c56223e02a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0451.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"r","timestamp":"1970-01-01T00:35:52.000030430Z","interval_ms":1653251932,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-780160.0,"value":-365824.0},{"quantile":725376.0,"value":289664.0},{"quantile":621632.0,"value":-38272.0},{"quantile":143296.0,"value":-648256.0},{"quantile":-944000.0,"value":874961.0119},{"quantile":-28.4198,"value":-479104.0},{"quantile":-109760.0,"value":661260.0},{"quantile":-957248.0,"value":804480.0},{"quantile":278592.0,"value":-632704.0},{"quantile":844544.0,"value":-580288.0},{"quantile":-276544.0,"value":-411328.0},{"quantile":-405376.0,"value":284096.0},{"quantile":-78784.0,"value":637312.0},{"quantile":324480.0,"value":-772416.0}],"count":15878977108147425143,"sum":-80896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0452.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0452.json new file mode 100644 index 0000000000000..4d90b88de64b3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0452.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"k","tags":{"l":"o","m":"a","r":"s"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-814656.0,"value":909056.0},{"quantile":-171264.0,"value":337856.0},{"quantile":727424.0,"value":8768.0},{"quantile":936448.0,"value":614784.0},{"quantile":-606592.0,"value":130944.0},{"quantile":120832.0,"value":-586112.0},{"quantile":-548608.0,"value":957312.0},{"quantile":313088.0,"value":827328.0},{"quantile":683136.0,"value":863552.0},{"quantile":152320.0,"value":180672.0},{"quantile":-225728.0,"value":-491072.0},{"quantile":318000.947,"value":-858368.0},{"quantile":181568.0,"value":-692224.0},{"quantile":188864.0,"value":752704.0},{"quantile":822199.0767,"value":-252652.2038},{"quantile":-214016.0,"value":-863552.0},{"quantile":779200.0,"value":-104064.0},{"quantile":199296.0,"value":-287360.0},{"quantile":-950642.0,"value":810944.0},{"quantile":963829.2554,"value":929024.0},{"quantile":-754496.0,"value":-48960.0},{"quantile":650816.0,"value":-903424.0},{"quantile":660480.0,"value":-281705.3577},{"quantile":-152640.0,"value":506176.0},{"quantile":522880.0,"value":-303857.302},{"quantile":-325952.0,"value":413696.0},{"quantile":153600.0,"value":598272.0},{"quantile":330112.0,"value":-268736.0},{"quantile":537920.0,"value":-294784.0},{"quantile":-858368.0,"value":571584.0},{"quantile":-95552.0,"value":-212992.0},{"quantile":44696.0,"value":-574976.0},{"quantile":-490112.0,"value":392576.0},{"quantile":329024.0,"value":-739136.0},{"quantile":582720.0,"value":-746816.0},{"quantile":-430976.0,"value":858368.0},{"quantile":20672.0,"value":525824.0},{"quantile":902720.0,"value":-465984.0},{"quantile":731584.0,"value":-532608.0},{"quantile":832576.0,"value":90176.0},{"quantile":526336.0,"value":-362496.0},{"quantile":-72768.0,"value":793600.0},{"quantile":-942272.0,"value":-252928.0},{"quantile":-692352.0,"value":596544.0},{"quantile":207881.3614,"value":-975360.0},{"quantile":111488.0,"value":-36288.0},{"quantile":336192.0,"value":-399424.0},{"quantile":168256.0,"value":468288.0},{"quantile":511808.0,"value":500992.0},{"quantile":-616766.8704,"value":197632.0},{"quantile":-132288.0,"value":966656.0},{"quantile":324992.0,"value":-777664.0},{"quantile":305216.0,"value":-145344.0},{"quantile":-660480.0,"value":858368.0},{"quantile":-747264.0,"value":486912.0},{"quantile":311552.0,"value":212667.6376},{"quantile":895680.0,"value":974272.0},{"quantile":881344.0,"value":-619520.0},{"quantile":13312.0,"value":-607808.0},{"quantile":-963840.0,"value":-302234.6397},{"quantile":960.0,"value":-982691.1022},{"quantile":512.0,"value":-823040.0},{"quantile":442432.0,"value":-43392.0},{"quantile":828416.0,"value":921344.0},{"quantile":-581568.0,"value":-668096.0},{"quantile":-47744.0,"value":258432.0},{"quantile":517568.0,"value":-770368.0},{"quantile":383744.0,"value":20480.0},{"quantile":69.8474,"value":-364096.0},{"quantile":265920.0,"value":-744874.8826},{"quantile":-72064.0,"value":340544.0},{"quantile":-685248.0,"value":-450816.0},{"quantile":418688.0,"value":-115008.0},{"quantile":906432.0,"value":-306944.0},{"quantile":-851008.0,"value":-300928.0},{"quantile":907840.0,"value":923712.0},{"quantile":-242624.0,"value":-858368.0},{"quantile":-584076.6814,"value":-270464.0},{"quantile":33664.0,"value":183168.0},{"quantile":295296.0,"value":-482624.0},{"quantile":44096.0,"value":942016.0},{"quantile":-775680.0,"value":-478400.0}],"count":4951608341745637771,"sum":-892864.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0453.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0453.json new file mode 100644 index 0000000000000..93a8ea2c5f15a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0453.json @@ -0,0 +1 @@ +{"log":{"燺걦":null,"瞯6":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0454.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0454.json new file mode 100644 index 0000000000000..de62c751a0d9a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0454.json @@ -0,0 +1 @@ +{"log":{"©Y":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0455.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0455.json new file mode 100644 index 0000000000000..1447521575535 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0455.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"q","tags":{"b":"g","c":"p","f":"m"},"timestamp":"1970-01-01T00:17:45.000000339Z","interval_ms":2825196624,"kind":"absolute","distribution":{"samples":[{"value":-597568.0,"rate":1},{"value":-503808.0,"rate":1637152789},{"value":-955264.0,"rate":4294967295},{"value":-918272.0,"rate":3919965940},{"value":2124.1815,"rate":3057714523},{"value":858368.0,"rate":2784621797},{"value":834688.0,"rate":2452328270},{"value":622080.0,"rate":825447095},{"value":723008.0,"rate":991312371},{"value":16512.0,"rate":4294967295},{"value":564032.0,"rate":3455947189},{"value":-758272.0,"rate":3679557505},{"value":991040.0,"rate":448365797},{"value":796928.0,"rate":425551764},{"value":-706496.0,"rate":426326546},{"value":-580928.0,"rate":3314227546},{"value":269184.6504,"rate":2625676665},{"value":-997376.0,"rate":2967354677}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0456.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0456.json new file mode 100644 index 0000000000000..5dee514813096 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0456.json @@ -0,0 +1 @@ +{"metric":{"name":"h","kind":"absolute","counter":{"value":4.0298}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0457.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0457.json new file mode 100644 index 0000000000000..2ba3964a85fb5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0457.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"k","interval_ms":3341023717,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-35904.0,"value":-501120.0},{"quantile":994816.0,"value":-858368.0},{"quantile":-772160.0,"value":727296.0},{"quantile":789568.0,"value":453120.0},{"quantile":323392.0,"value":134464.0},{"quantile":76224.0,"value":-302336.0},{"quantile":371776.0,"value":389312.0},{"quantile":980672.0,"value":-793728.0},{"quantile":-669312.0,"value":620672.0},{"quantile":377216.0,"value":-459648.0},{"quantile":922624.0,"value":-858368.0},{"quantile":-496960.0,"value":516480.0},{"quantile":-793088.0,"value":30848.0},{"quantile":408064.0,"value":-422.1088},{"quantile":218129.0,"value":852544.0},{"quantile":-92800.0,"value":274624.0},{"quantile":776704.0,"value":125184.0},{"quantile":922176.0,"value":548928.0},{"quantile":628096.0,"value":-603520.0},{"quantile":-232384.0,"value":-349248.0},{"quantile":-551296.0,"value":46784.0},{"quantile":421952.0,"value":218368.0},{"quantile":732160.0,"value":71552.0},{"quantile":-270720.0,"value":-493120.0},{"quantile":612480.0,"value":625088.0},{"quantile":785280.0,"value":-574848.0},{"quantile":-864320.0,"value":-952832.0},{"quantile":-25216.0,"value":-541568.0},{"quantile":-853440.0,"value":-540928.0},{"quantile":-616384.0,"value":-262720.0},{"quantile":-105984.0,"value":857600.0},{"quantile":-887168.0,"value":70336.0},{"quantile":229056.0,"value":385856.0},{"quantile":240448.0,"value":417600.0},{"quantile":138880.0,"value":-672576.0},{"quantile":323072.0,"value":747072.0},{"quantile":466176.0,"value":77056.0},{"quantile":-54144.0,"value":-786880.0},{"quantile":-721472.0,"value":-644800.0},{"quantile":145344.0,"value":-644672.0},{"quantile":120064.0,"value":-409600.0},{"quantile":-954368.0,"value":-995904.0},{"quantile":-435712.0,"value":-476992.0},{"quantile":-612480.0,"value":821184.0},{"quantile":-648064.0,"value":-580160.0},{"quantile":808128.0,"value":263872.0},{"quantile":-697472.0,"value":507136.0}],"count":7029994884096519506,"sum":706163.9688}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0458.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0458.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0458.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0459.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0459.json new file mode 100644 index 0000000000000..6afe5be675cd1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0459.json @@ -0,0 +1 @@ +{"log":{"B":{"f ":[-702784.0,{}]},"[ ㊝":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0460.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0460.json new file mode 100644 index 0000000000000..e265e1a09e251 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0460.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"r":"q"},"timestamp":"1969-12-31T17:51:11.000008446Z","interval_ms":885689315,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":616640.0,"count":18446744073709551615},{"upper_limit":-240000.0,"count":3217522814298215284},{"upper_limit":-267008.0,"count":5898011860956349076},{"upper_limit":208512.0,"count":12799529195546651281},{"upper_limit":544640.0,"count":6930428495243546265},{"upper_limit":156800.0,"count":9455687010649761280},{"upper_limit":-265024.0,"count":13608593575515338694},{"upper_limit":-181504.0,"count":4280166425395881841},{"upper_limit":-456512.0,"count":10446175751790414778},{"upper_limit":-545344.0,"count":9463721526723906122},{"upper_limit":-74880.0,"count":2818148795369023435},{"upper_limit":-987392.0,"count":4900389209746362985},{"upper_limit":-590592.0,"count":11860032482421042997},{"upper_limit":912192.0,"count":8420599707972713017},{"upper_limit":-226624.0,"count":1},{"upper_limit":-381312.0,"count":12425758074301343034},{"upper_limit":-860608.0,"count":3930789741144858602},{"upper_limit":992896.0,"count":10229355729534807545},{"upper_limit":-947456.0,"count":15852462720947004626},{"upper_limit":-187072.0,"count":15356874188608324843},{"upper_limit":-831616.0,"count":9347553329482847862},{"upper_limit":-580480.0,"count":13821470671718012290},{"upper_limit":750720.0,"count":0},{"upper_limit":241344.0,"count":9954729017444603477},{"upper_limit":-585344.0,"count":17458719189034967174},{"upper_limit":-367488.0,"count":9042111135963367064},{"upper_limit":-410304.0,"count":2141679392051209208},{"upper_limit":-233408.0,"count":6841269292946081961},{"upper_limit":495616.0,"count":17140778879266907547},{"upper_limit":298048.0,"count":6212312860750958202},{"upper_limit":-855552.0,"count":4596993713435696134},{"upper_limit":658688.0,"count":16377449225826449374},{"upper_limit":75840.0,"count":11769594096818048034},{"upper_limit":-510976.0,"count":11002656507548407535},{"upper_limit":457408.0,"count":10351392864824853052},{"upper_limit":-952576.0,"count":11243838980302622682},{"upper_limit":281792.0,"count":1},{"upper_limit":-787028.9295,"count":14803510065419909543},{"upper_limit":-821824.0,"count":8448689525793878740},{"upper_limit":553792.0,"count":16383764915874863416},{"upper_limit":-918400.0,"count":9625907450188048321},{"upper_limit":-494592.0,"count":15868833018127767706},{"upper_limit":-989440.0,"count":2203972851703534109},{"upper_limit":425920.0,"count":13186503051207811882},{"upper_limit":-680960.0,"count":2657811296328041598},{"upper_limit":258304.0,"count":0},{"upper_limit":-625536.0,"count":7149932218465065151},{"upper_limit":53824.0,"count":11884166104747250212},{"upper_limit":150784.0,"count":7388408292312329016},{"upper_limit":-785600.0,"count":6856162419044713647},{"upper_limit":-140864.0,"count":1},{"upper_limit":-488448.0,"count":3499277268230102596},{"upper_limit":-904768.0,"count":9924760377985450328},{"upper_limit":-973952.0,"count":8919340670731544890},{"upper_limit":-865152.0,"count":14631556874015082956},{"upper_limit":850496.0,"count":1806821842240845764},{"upper_limit":703680.0,"count":4731996147307155272},{"upper_limit":-453184.0,"count":0},{"upper_limit":317952.0,"count":834048401920327083},{"upper_limit":200128.0,"count":16699636408756758741},{"upper_limit":329408.0,"count":5615633189084464859},{"upper_limit":377984.0,"count":11979830394983651829},{"upper_limit":626240.0,"count":17808979214464115424},{"upper_limit":-832192.0,"count":1},{"upper_limit":212992.0,"count":10387963921840765073},{"upper_limit":-675072.0,"count":2947958372440848837},{"upper_limit":-1792.0,"count":12462717495221445111},{"upper_limit":878784.0,"count":0},{"upper_limit":-582848.0,"count":11846612188890115293},{"upper_limit":-5248.0,"count":2382219492850584258},{"upper_limit":401600.0,"count":10340235288157745190},{"upper_limit":-562176.0,"count":9229913187884436882},{"upper_limit":58432.0,"count":16311061402600858910},{"upper_limit":2.6379,"count":14274424465030545972},{"upper_limit":-47680.0,"count":9147556199901724360},{"upper_limit":-934464.0,"count":16897464535425375797},{"upper_limit":-728384.0,"count":13687462530914896312},{"upper_limit":-401344.0,"count":7681869496638629833},{"upper_limit":-540800.0,"count":505089737210202901},{"upper_limit":966272.0,"count":1},{"upper_limit":858368.0,"count":7742856256051319143},{"upper_limit":858368.0,"count":18446744073709551615},{"upper_limit":-864064.0,"count":9602665701137558941},{"upper_limit":489024.0,"count":16595200119824444690},{"upper_limit":-635712.0,"count":7924192615260113081},{"upper_limit":689472.0,"count":0},{"upper_limit":127104.0,"count":4961735592241016369},{"upper_limit":-9152.0,"count":5178197274549658196},{"upper_limit":-400192.0,"count":12312102546598260049},{"upper_limit":-688768.0,"count":6195205254956350918},{"upper_limit":-415424.0,"count":15836246565849274354},{"upper_limit":-384640.0,"count":13087466403780933664},{"upper_limit":-417472.0,"count":8418522899861931243},{"upper_limit":-946816.0,"count":8388880464794031470},{"upper_limit":148480.0,"count":1113593416994912240},{"upper_limit":-858368.0,"count":11862824485202113742},{"upper_limit":-96000.0,"count":15262967936546802466},{"upper_limit":-22912.0,"count":4974496483791676043},{"upper_limit":966080.0,"count":1192650156152702859},{"upper_limit":123008.0,"count":688553206681180576},{"upper_limit":-489472.0,"count":3560387260965309836},{"upper_limit":923520.0,"count":16247114777339897031},{"upper_limit":67008.0,"count":16687901646430327573},{"upper_limit":174656.0,"count":15276835367696571374},{"upper_limit":217088.0,"count":15510254391120349912},{"upper_limit":187264.0,"count":11899760331795890552},{"upper_limit":-765568.0,"count":12897170350953348144},{"upper_limit":905792.0,"count":17653822615200977706},{"upper_limit":-858368.0,"count":17719432851874990271},{"upper_limit":-117056.0,"count":2572621699678836143},{"upper_limit":990080.0,"count":13189846646134240746},{"upper_limit":29184.0,"count":0},{"upper_limit":-3.6581,"count":7536994149227806238},{"upper_limit":-95168.0,"count":5687835822550910788},{"upper_limit":-249024.0,"count":939453587810759972},{"upper_limit":190144.0,"count":4902846390171124394},{"upper_limit":-826176.0,"count":17487834005554382419},{"upper_limit":-593152.0,"count":9335924393874482336},{"upper_limit":-739712.0,"count":2661611703885529878},{"upper_limit":-387264.0,"count":17129293625861019709},{"upper_limit":597120.0,"count":12424448336332051761}],"count":9594533485975242836,"sum":-60928.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0461.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0461.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0461.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0462.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0462.json new file mode 100644 index 0000000000000..e0a9d073e1a83 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0462.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"k","interval_ms":3627544780,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2224,-2221,-2219,-2218,-2215,-2213,-2212,-2211,-2210,-2205,-2204,-2203,-2202,-2200,-2197,-2195,-2190,-2175,-2174,-2172,-2167,-2164,-2163,-2162,-2160,-2156,-2148,-2142,-2137,-2117,-2112,-2108,-2083,-2063,-2029,1957,2025,2042,2074,2089,2100,2134,2138,2139,2156,2157,2161,2163,2164,2167,2177,2180,2183,2193,2199,2202,2204,2205,2207,2213,2219,2223,2225,2226,2228],"n":[1,1,1,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1]},"count":73,"min":-936320.0,"max":982336.0,"sum":345984.0,"avg":412672.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0463.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0463.json new file mode 100644 index 0000000000000..e204720f25f85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0463.json @@ -0,0 +1 @@ +{"log":{"":497216.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0464.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0464.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0464.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0465.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0465.json new file mode 100644 index 0000000000000..98da018408cf4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0465.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"incremental","set":{"values":["\u0003g[\u000e‚?󜲚񕽓p謤8)񃗿︜¤\nV胼\rŽ*W/#\u001d_","\u0005V㛥‚1)2+犪|–P⁣|𾉌䡕乜훱9 •㬽\\H>\t_u£~_񡰇#㦧+ \u0015X{ž>1♩\u0013￶KC¥’𯎡򣷔񕘱(p”_#/","\u0005¡\u0006~B_\u0002Xžw","\u0007,\u0014«萋‭¤.e2^&o잪 ‎.@9C\u001f:‹趆⁦i]͂o‎bV\\ ‡j%b񉡷\u0003\u0015 \u0007­/\u0018‹'|<\u0017®඿\nN򒌕t䩃n폣E춙^ E…‐~؂s9Ÿ㢁Y‹\u0017󯣿•/[rg5be’¥ 64欈h\u0005𸊾˜š&\nª@‑'=𦐦\tR￴챉=vK򸭙O㉁⁀¡򶗞","\b_\u0012'O\t￷=굥j-9~\n򵡁 œʼn⁉\u0005O{>\u001e=\u0015횂􀀀{,1¨1kw5䥜k蜉#󄆌Ӓ9‿Ÿ3&(‹5\u0011򙿄K†񀀃,A`U._\u0012“񭝺*-󶙢\u0012–―ZN땤򖥳~`(‡⁥K2\bW#«W\\","\t8\u001fN쫏\u0014񎽭󠀁 a\u0017 yy=᎞滶𑰳￲%8I?C˜B$>⁤\"Q*8@ª\u0001w\u0007z/\u001e⏅z′<\u0011(®'ƒ1•¬|巃?$17f \u001c\u001c|@®7s\\!`\u000534暛ܵœ؂?\u0007.\u0015¤$򷯮?5 (83_d3]<Š—=(|\u000fH1","\n*š-L7l1[ “N鈔󬴧h\u00109\t陞\u001e3ª\n]\"eCu`墮_F\r𐡳({Ž/jZ￸'󡪼]/緉!󬏊†
Žත>/@h؁^ œ\u0012T․\u00183\u000b¢| _\u0016\u0015_`’￰w￲[밣&3\u001b\\5H+񲯷&󿿿󅶊1—3Zᅽ񉆌䎈>\\밵繛\u0019\t\u0013䌝{#𑂽|¤{󌋲*","\f‰;\u001dQ￰ 󗳉^6_񣕢l ?~#%\ta.* ©Z[\u0011\u001f88|󠀁\u0002[\u001aB:¥3=\t5[󠀁“™","\r£¦\u001d\t)|>󩃀!贤鞖�®񕧅2횜…3s","\u0010&{o‬$ᨁtTN‶gš󲝗!\t;<\t[:&\\\u001d\u0007?⩟˜4","\u0010jU{pM‹k񰈆=􏿿莔[\u0005$챴壳”\"񬦂￰؜ᲙY犐\u0003.%Y9򉆚8j\u0015,=>M","\u0013,B𑂽￿墟|蘝⁕⁁ %(* \u001f_- 󊬏3(\ta,]𥉉#%衪!=ʼn–6‹؅(󿿿J}\u001a餔j&=󰀀2ª¤€y#9\u0003育( ","\u0015\u0001–«*'?k@%AP纁䲺8—￰WUI5罜&￴}]؀󅋽\u0010
]309.<=Ff\u0006\n+&@￲씇8®G^`:\n—›‣G㹓:<¬￱m㌂v:먙�\f‘®D;y\\","% ¤2‹9\"%\b뗚","&\"\"¬∮jBJ(𘢋B&[‘!4򿘳⁑\u0013媐;","&&泃¯؅51盺\n4輙:}𻛆,*\u0006","&n:᱿椆/š䱏v‚*n-{œ⁃򯬚𷺃{颒 1\u0012›ª%⁊c“\tﭏ$結|E\u0019 񄿆<􏿾#a£\u0017]󎷫񣗦*ఢ0YQ𝅳􀀀vI49e񯣽㿂q⁋۝†\u0010򥇜X'䢋G\u0019\u0011cw<#˜󐢧®%\\O!‚|旞\u0004Q$龫\u0018\u0006]￲,f-\n{y󯣿焺'\t","'§6%`1IⳌ⁤\u001c悩g￵￱녁dT 넄2؁l<_\r‹⒙￶;)‡‹򔋃>D…ꈐ“\\؄⁋\\‌…\"󿿿0-\n%†񾝑}\u001f‘\u0014ཌ{­\ns£⁡‚ꖠ鈕a렗츱N\u0005)–4$n፿8ƒ!\\D᠎ ৮Bʼn”!'3.Žœ܏38m辁꺸蘻O\u0006-然‎;~‹蚤\u0007+‵- ؂/­¤",",1|￾嬜䔘񱉩5؃뫪E‘︹\u001c-¥‶4\t؀B>œ:2‹­(©f
6¨}؂⁝4‡",",‹?=",",𬇩;񝚉Œ륌󤹣򴊾\u0013ᐨO2󓕖;!\u0000⁃J:^?<򕷝⸼Œ쥤>󿿾@\"^*l",".(‘\n�1뛛","2饌]e?\t]7Ÿ֧u’%\\R<\u0002`)u*1*","3ጏB򗴨,5\u001c’hn%P풃S?¬¥©濴\u0003�#\tt‷,؄⁝2W>\u001b𷠜\u0004 \u0007˜i5ž¢'>A󶼯5.‭}+𝅳hvb[圎TC\"œP\f ￱𐎮!™+VP8ꗉ⁉›py?⁒\t4|_'⁇?^\u0019‡\u000f󳗵\u0006˜￵\u001d𻛋%\u001b\u0015췄0\u0004k\u000eJ\r\u0015𔅰‘吝@€J˜¤\t","5\u000eL74«󋏀¤${╱8l񔓈啒=‰⁡ pMF¡-+¡D\u0007{;h<p\u001e:%򢨞+Z✱›⁙1\u0015-Cஓ�y`瀋\u00198œ† ","6_6\fm%©鲣\n.\f}”￲{J򚹧\\--௨¬#v{\u0012‡𢘶\u0019ꡂeš\u0000]D>A!-]•}E󂍎*0]7“\u0019©缾񳬠t1„=6XS<©㪳\u0004®′ ~9|O/:񬚔蚫Q¥\nª㘁x񑔚–죉bR)tkj⁊㷿*Ž%.","6”\u001amP\u000f„\n*)⁈\u0005񴫂_򲋀\u0010U%^󿿿‘:¨\\￵/¦\u0007…&+\u0004ꤣI\u0005憯‟rb 䅉\u0017\u0016칍䒶儸9=%񥶴w\u000e⁚[Ÿ‚¤m~&{3\u001a0#,>>_g‹/'q–\t뒵랍‰6񚭘\u001b￾楩RZ\u0001r_","7 •񆖼¥*\u000be蔉\u0003\u0018Ÿdr-\b^~`hn\n:8/읮'§>򊿺Z'￾񉝷K?ª›#&4￵\u0004�\u0012*򯇪y󶘄񖀰弗  ^￲䅨§\u001e￲%7쎝–Q\u0017‌𛒷2 /q/9匌󋭰⁘>` Ps+]േ^邙","9\\嗅_(@Ÿ玼14$B<\u0016>•])\n`‘†0\u0001†H؂僺겤圗*‧,1&¨z𷖙}8Y:\u001c6@6%񗞑򺥤_U*™+ \u00175]J”:b񐾖(w酴\u0004\u000f",":›B�'?;“\u000e•]\f{X.-V)VL+7򑏽’D\b𝅳E￸‡㌕¡0‡\u0017eœN\u0012\u0006@﮼„}`VŸ€)\u0015#ªuꇴ<™|\u0000뎫‚￲￱œ!)I=­,8u\u0000`•”⁓\n ⁅􃽦8€￱熐®󙕤","=#\r񷅚󻕿⭌{š؄}@癳¦373VB‭6⁋C",">!¤‘ª)—)1\u0017`R󿿽\"￿䏪Š*Q4#5'㗀 N\u001a܏|","K6H3\u0012}⁁鈐운1*񉤖†§-ƒ+‹*\"_¢󠀠—￳\u001eB©†+\u001c⠺‐\u0011򒡾䖞[\u0013⁕򔉃U˜`\u001e\\œG/ \nŠ$#⁠No’]4 ”‶_ 􏿽􌜚\"=. x®￱\\鲦\u000f䥉\u0007!3?\u001e”w\tԗ.‸\u000e0}|•ƒ]S徖5r•ዟ⁊~b8渓Ct*$=!\t","S‼œ„ŽŽz䖼\u0011!!ʼn(,}n\u0011‑…o.⸌暋‰0zwʼn㫈€0婟챤‶ˆ񄡸\u000bs3v𗁼?_","S갾񺢪󠀠𭩓|”C %2\n¥􏿾霍Z㙛p歉C򖲵51£񍙽犩󠀁K^Ž-v~\u0010\u00061¥\u00128̴‣⁦𰤡Œ,‘\u0005򑹖]]Q’3`€‚3!R󠀁¨~#\f9؜¡ᅚ\t<}\u001a⁘6迡ఞD؄;\u0005‹I\\6*Y‰:>\u000fX|3 u\u0003\u0004\"戩䌴\"񸍈$› 7󿿿","Z\u0017A\\š/􏿾§\u0005󕪡ŠŽ\u000b‑󑹾=X]쐆䝫H￵¨먖p%$\"'ߏ ¦㚸䶾>¤؄쓼�򲃮\u001b–؂«%h8&\u0015jX>s‬⟋巻횐^ :< ˜\b빾'v\u0007\u0019dš?󉢐[","[/ £䞸 G‚\u0006–񐕕򫜈 ]A,®\u0018D_6…'\b\"Z¢¢ (E\u0005\t‘$\u00025Š^󃽂Œᘈn𝅳0sƒ鶯+񈾻⁘7=)5񁟶ᕱŒ뎸¯^;ꕖO(~4`)^¨\u0005:\u000e£“l¯\u0002 ⁚󠀠iHm;񪛘򮖵&58/375+:0C\nqF ⁨I 6h%o\u001d’3⁧@พ￴\u0004žzŽ\"","\\\u000e被)Š`\u00006[\n-?LŒ󼾉{<\u0004c£*\u0003“触􉅛œ( ","\\{ ‴/-N~᠎法","]\u001fJ \" 縜w/A x ྡྷ0佭c㣕ƒ\u0015‵","]%g”񒂡`‍‘‼⫡I‰CC \n\u000b‶1򊝃,\u0016:~‘:s⁄x€‮¦!$\u0002&o^Šž\u000e‡6ƒ ;}„Z\u0014w$[#‡ª+œჽ«","^:烝[‾\u0013ª￳‐%\\ ￰\u0001扄w䎨ጙ+#_*!\b1D\u0007=\n\u0002!?O′“ 󫈖'X\u000f1 ⁗™񢒴糗\u0004©\r󯣿`,#¦w&綉£⁐뙍†￰\f…𓣻rXš?mᎄX®؜3‒‰‡4ˆ‚›f,‹56>r踾> p4A[","_š+[©7‚\u0016‭)™#£⁦\u0006\u000f\t𔰌\u0000ᐪ(밼!;o.￵©앷𾏣ᬜn￱(‱‾󛹰/\t€>O￵Œ񵷺9=`\u000fO񚐮,‱ SaC…,¬―䙜M\u001c\u0017z{,†4•\nu\n?'‗W“?X2d,.\u00186vV# Ž•‍®5—\u0004󳽲KO#(+~I.཯rš<;a","pM(l\t=偉‼,q𿇾c=I痱!l⁌(C1¬￷>\u001c\u000e«€¡‘…\u0010N𝅳§霡𸙃]㩬'吙(\u0003-`©*L*􈙺,2땳†\"˜q⁝禗 6\"!€«/¥\u001bナꪭ|4{#&鷼\u0003\\\u0006.*{\u000f l~$k,^\"\rV‚6&3ƒ8I~œ #›~Ÿ\r­~14;\t<$+&[†^","v¬¯~–†~€:\n੸\"\rŒ󠽈‹両6⧁W–&؄A`%𓺫 *)酑\\5 6 365‭\n;\\渐 >\b;\t^+J\u001cœg񘘾ﰺ*൳‱\u001c®CŽ/4 ⁨Y*1¥$󿿽0| 9h‭]ᥩ*⦱򇈳\u0001񂳄@^d\u0012}7~a‹¥C#瘹\u000e绪czª]x\u001a
","w>⁞\n’\n‘'—˜鯠􏿾D\u000b젨𷶶,!+r#!!𠟤","z\u0005\u000e;=#R]𒨿؅ 6\u0004\u001f,㣕\u000fꔊ\u0017#œ󿿽1[O2񷁳;® ؜ p<⁣­%\u001d늙_$`4\t⣅\u0003‥¡ƒ%4\u0010z-\u0019
 \tPQ\\*==`_[b‚?7*`Eˆ}9ؼ뙀;䓺Bhᗧ593\u0013—=","z8F\n~\u0001,‚ᐌV`\u0015®Œ𩩕⁓\u0019\u001f\u000e\u001f{#\nⓑz8bv)4؃4…󿿾񃘶3<9⁕?㢡\u001b\u0015︸쬈{","|)|￴­x_ ,″܋M«󿿽X˜'(.9貟紭؜€⁅\u0003/u *…NB, 76$Oﮚ-󨬃š ˜,󨻻>~6-aZ u򿎷彯)\\W\u0019„'&f%","~￸\u0000^!RyCP䃽+⁐L\u001e^ᙋy#0‬£𥰞0q􏿽#\u0006‬ @9~ œ뭹!梲x‡󷛦!’k&”#庑08e\\*; 9d4\\<:ᆘ3P:(–D󍪑+({1–oG\"‡]䩵#⯚⁋","=\u0011দ= G\u0003\t󩵏\u0011>‚hŽ\u0016溄*¬\u00075‌…t%ᾨ~‿{}›󠀁ﻭ쐐\u0012¢\u00179a","Šm;\"@킍e$¢\nI󰀀! 򍮆%J)C¢᠎„~¥l@=㿋‪\u001d‚\u0013","’蘓Ži\u000b“󪶳w;83} ~觰\u0011糸\u0011J2 k飺&$J6/§󿿽‎|>d ˜\u0015£%&#{⁣]v냾@곴\fc¡‹e걅\u0001\t>7 ⁇NE⁅.","•6뱹䈞  ”񽫛1\u001ax]«#+ᅝ[‘\\Œ2t5\r巽\nM$(8>^{zgŒ)9\u0002Ÿ![¯찗lŠ錨T)\n⁨¯?‹","˜!3\u001c˜\u001c)܏9E ªE\u0010{7F 錀⁏탡 L&6(ˆ\u0003+J?9C‘2㡨羌”񎟏[7񄁐–4e_⁧&@*?ꎌ!\u0002*܏喊K\u001a\u000e쑀(𭴛¦⁖?\\51- ¡\u0018ᐹiˆ \u0000;","˜]K‚]9_\u0001#;〿|¢.\u001a ‹C'񖲴|Œ􏿽񋪤%«C⁥.㻬ž,￰\nž{`œ%*ꂣ\u0017￱痨\"e㶷K~ᓔ\u001e\t\u001f󉐴1_2阨+","¬\f걵¯\u0010烣Ž{􋑂…愭𛤾Hš\u000f.1}:`/!\u001c?r,7¬'*14$⁎","¯® ᆳ\u00011ŒUT\u0011 #","܏\u0015£\u0011󃾠
6燑%†姩$𜓯؂񑯝p|\b鈕s'0ꖉ\b\t*′\t‰“~5_h]!O(- \"￳􋪏򋯛\nˆ3\u0012-4\u0001]¥!|28$삚¨","᠎}­bG%* |S\u001f\u0007v萲?؁\u0003\u0016..@9G.N”⥟翶H‽￿⭇⁗ᰃq唾{\u000f©’@Q&b⁖<5㲘yŸ||","᠎ਜ«1“\u0002′=0{\n&˜¨©󺜜œ󠀁꒻5?Y))«^¢'B&¡򩱭碒‡\u0014œ]‵;‰UY\u0001 &‐G:\u001b>C\"}\u0000\"6"," 豫Ž\u0016^…","‘輨
-=\u001cŠp_j󆤓″&Q#~2[\u001c—쓶․:(\u0011€{‘ \".9œ
—}/€T󑑢𖵊2¤󢅌ž1 ؀s£˜","‹a]9•鳴@®a\u001ež.<6!eW]썝‘?瓰\u000f3ˆ!\u0000ž3󅗝: £r\u0019󺦕‫c\\†⁌)뱃\\\t`オ\u001d\u001ez/Gyቓ⎏6_‴ª؀] y)&0\\(F1\u001bLŽt\u0007|' ]-","⁑~f\u0005‱ ܏-n,?؅’넺幜<”賕\"􂶣\u001az‿*ƒ/D* 3¤4—¬f=Tv4\u0007p?ો6^f\u0002lY[ \r.S=kO򶳹žL€>f¤ \u0001|†(Ž&\u001a_툲\\‹[:򱶔ు󿿿\t2‼�‿{\u001c󿿿¤ಭ†¡;銖1|IL羱—","⁞_⁋=\b‡\ruŒ^豘\b.𐱁Y혫","▶–¥˜‹GS`-kz”򽺿)䪻-28\u0003`d‎\n–/'􀛙..⁚܏․\t^ 1‰󅡥‶‡2r򿆀󧨺1󿿾򷫟¬®䮧\u0019I캹`›ŽU‹z⻬\u001dG\"󰀀¨S\"񢉟¡m-5œ›~\r곡_ =񞪓䕌<\u0005†=鋍^]￿J.?!⁗RS7{䇍􏿽T {?ⷛ D௚{\u0007 􏿿䵷I","⻚\"癮\u0014r􀀀踙q\f9\u0012'㸛¢.7h#o۝£Y~⁞”⁩簍ž 1‘򴰟B‮E\u00120?￿񁱖\u001c\u001e)€¤† \t\"Š,\u0000–`4'P䒢•\u001d¯3.\u0018=2_¦_8n+Qg\f𝅳€\\‭턃(/*~2> 􌋮‌[|󂔓󗄥„\u0015&j\u0017-T","ㄮ￳ƒŸo񈎁󯣿”\t†򴥪ž5(x]`‹Š¡k\u001e⁇{䉬‘£8𛾒%>’𘌈\t؜″#󍿟&1\u0014㬫\t\u0004⁌č敮^邱{_;洘0 `>蕪C䉗Y5¥@*㴶","㦬$󰀀xœq￳\t8¢[)(\u001e","䐌 s","룵5央}+㞲%󿿽�^s\u000e„#nO\"7\u0016#ˆʼn(}&Ž•𮛳􍆣\f?FŠ†88;9a*\u0017-?|릝⁏􀀀 ’>c줧4`","퀻󿿾 V\u000e0\u0017k]'‷\u000f\u0003]¢< §8\n𔅲?塮ỵ @Uo","쬤 '\u0014b񅯲沁%⁥6؃‘􀀀ⷥ62 `󈕘\u000b…\u0016꓈›끙!p\\息œ$+ 槜􏏃>\f𖖦.󳚗#>&‘򨔒䢳h锜羧\r^V‹蔌\u000f] ,￸󡆬ʼn􆇃@ 67i€ž￰ž‹򟸥憕z#\u0014<_\u0018%„š㮳:ຄ􏿿=('\b\u0014¦)ꅳ\u001cuž$Q$Y󠚱-؂\u0013󹸰朴򵍎","￲\u0002†I{⁔Bšh懢󯣿5t򳬱 T[<ꐸ 㤯{‵𻅷`<¡6T!󂗏ªOakW^!퇵!•􂿟)⁕¬\f+ﳹ> ᚂg8$¢Ÿ?\u001f7F\u000e¥%W⁏ #⎎.ፎ\u0017&\u00112 W)0Z… w'O(s腊䆲u1\"\u0002\\‰_~5]^;ꜚꯌU踌\n\u001a|U-𽿚9c¯P","￷㶖Š]s閑\u0003","\u001aL𭈥F𪊚\b'{ᦷ¥–2􏿾徹Ma§􃰺@`6￳‰؃\u000e|®e+8T򆒗™~⁝䏺;-⿾󯣿\u001925/UH0󞴨䗹\u0010W$+;]⁥[僬}-J\u0006;}\\\u0018‹ 򓭉$= \u0015 禰򅊤/췚tL$\"¤ ","￿(%›ᅿ3뛴","𕎛𸆁","񣝗\u0013\u000e\b$󰀀“mBT%‚⁥ᗓp-]¨15^]񞨜7-\u0006\\؜2𐞘§t؂򨡾
⁓܏𦸞¡ᾎˆ񒨧\u0010󷏎 $0–F¡'#氘逕\t5`¨r4Y t@U”ƒ8※ªw2\u001b%\u001cցŽ4\u0005￵􉲅-g\u000e7dE<:=^.e\n;e","󠀠뿵\f Y㄄–o\"«蝾¢奀ೀ¥枟T⁍@`\t܏￳ᜀ\\9¡\"ˆឨ䓁?¤񩩔\\­Ÿ3\r4暫4;}󠁠￰￶@9\u001fc‘#O3􏿿￾z}}I⁏‚ }Zv8[쇥'遷K{ª$󿿽핧A","󿿽‌¦KˆExd=A^1]e‡\u001a","􏿽3]©j!@L*؜™x攦\f #m1\u0014›ˆfž\u0012鼰`翙':be‹<¬†\tHy"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0466.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0466.json new file mode 100644 index 0000000000000..aa214fd7fabc7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0466.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"b":"s"},"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":619328.0,"count":5364882633491329872},{"upper_limit":685440.0,"count":15784437005669804128},{"upper_limit":722560.0,"count":15642889064437509121},{"upper_limit":129048.8331,"count":16179630244988341307},{"upper_limit":-792640.0,"count":9207120922027675935},{"upper_limit":-721728.0,"count":9169889641927181273},{"upper_limit":661696.0,"count":2956830960630783134},{"upper_limit":-159488.0,"count":258496623705522653},{"upper_limit":963456.0,"count":0},{"upper_limit":-403520.0,"count":2783611180585991082},{"upper_limit":164480.0,"count":5231720639017393949},{"upper_limit":439616.0,"count":11511740953521607641},{"upper_limit":-111744.0,"count":11870696253972370117},{"upper_limit":-765568.0,"count":666585010386463022},{"upper_limit":-49600.0,"count":218802481216040011},{"upper_limit":-593344.0,"count":726952889440025409},{"upper_limit":-748992.0,"count":13722662172415209614},{"upper_limit":858368.0,"count":12574831914458137361},{"upper_limit":929664.0,"count":1854697871758232456},{"upper_limit":380544.0,"count":2854286860597656600},{"upper_limit":-536704.0,"count":14062982888980937523},{"upper_limit":815360.0,"count":0},{"upper_limit":861760.0,"count":304224005975990774},{"upper_limit":95168.0,"count":8462755617178026757},{"upper_limit":858368.0,"count":8154165785433121281},{"upper_limit":664128.0,"count":18446744073709551615},{"upper_limit":-903104.0,"count":7614759444555473388},{"upper_limit":599360.0,"count":3539606806430075923},{"upper_limit":-100736.0,"count":0},{"upper_limit":-79168.0,"count":18223215505173444435},{"upper_limit":-305408.0,"count":18446744073709551615},{"upper_limit":-606272.0,"count":18446744073709551615},{"upper_limit":-441728.0,"count":5824816750603787513},{"upper_limit":208192.0,"count":8482232737359310735},{"upper_limit":700608.0,"count":16897741016560472743},{"upper_limit":307200.0,"count":18446744073709551615},{"upper_limit":-915968.0,"count":2064142131595483221},{"upper_limit":182400.0,"count":16663496364419634543},{"upper_limit":-863296.0,"count":9514457223015032633},{"upper_limit":977216.0,"count":10564280129167846321},{"upper_limit":585653.3893,"count":0}],"count":11405447352304760751,"sum":-829440.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0467.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0467.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0467.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0468.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0468.json new file mode 100644 index 0000000000000..839b792025b33 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0468.json @@ -0,0 +1 @@ +{"log":{"\"ˆ":{"":false,"(f:":2795810012160065451},";\n ":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0469.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0469.json new file mode 100644 index 0000000000000..5868e0f699aae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0469.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"b","tags":{"e":"a"},"interval_ms":2060695182,"kind":"absolute","gauge":{"value":-794880.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0470.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0470.json new file mode 100644 index 0000000000000..813bfa38c85e1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0470.json @@ -0,0 +1 @@ +{"log":{"\u00111䝥":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0471.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0471.json new file mode 100644 index 0000000000000..193267bc193a6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0471.json @@ -0,0 +1 @@ +{"log":{",":{},"U?":[{},null,null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0472.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0472.json new file mode 100644 index 0000000000000..0478e47c4cba8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0472.json @@ -0,0 +1 @@ +{"metric":{"name":"y","interval_ms":3777595054,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2214,-2213,-2212,-2207,-2205,-2202,-2196,-2194,-2193,-2186,-2175,-2162,-2160,-2142,-2122,-2111,-2091,-1987,2061,2069,2123,2152,2156,2162,2179,2183,2185,2198,2199,2202,2207,2209,2218,2220,2221,2224,2227],"n":[1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1]},"count":41,"min":-941696.0,"max":975552.0,"sum":-389184.0,"avg":992512.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0473.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0473.json new file mode 100644 index 0000000000000..2319b022a8fe2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0473.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"a","timestamp":"1970-01-01T02:30:23.000026675Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-77760.0,"count":14279036157374013939},{"upper_limit":-230400.0,"count":9877511607688393855},{"upper_limit":78272.0,"count":12159148560425774185},{"upper_limit":144256.0,"count":1199863137228062308},{"upper_limit":-680000.0,"count":2646069603452717653},{"upper_limit":-154284.0,"count":9545087564426295000},{"upper_limit":458752.0,"count":10786235316394853659},{"upper_limit":452608.0,"count":980949445929666337},{"upper_limit":-557056.0,"count":4041589646727913046},{"upper_limit":88832.0,"count":17151203326404999192},{"upper_limit":673856.0,"count":12644648437283601145},{"upper_limit":708096.0,"count":10603529786711452942},{"upper_limit":943104.0,"count":14923969870402050628},{"upper_limit":981888.0,"count":11328568428094770113},{"upper_limit":-783296.0,"count":16355564503572102600},{"upper_limit":389888.0,"count":7365921395424244205},{"upper_limit":32128.0,"count":11305302521344183130},{"upper_limit":-511680.0,"count":17594908235155366594},{"upper_limit":-518912.0,"count":17926603772985290729},{"upper_limit":256000.0,"count":9054162868764748115},{"upper_limit":132160.0,"count":10629615873231983761},{"upper_limit":858368.0,"count":5567780238649107858},{"upper_limit":-608640.0,"count":6626785053887779300},{"upper_limit":541888.0,"count":1305830201444151109},{"upper_limit":-334720.0,"count":10521828095613485413},{"upper_limit":971008.0,"count":0},{"upper_limit":-586176.0,"count":11705451860800950885},{"upper_limit":-29696.0,"count":0},{"upper_limit":669504.0,"count":311054090474725552},{"upper_limit":-87040.0,"count":8216421889277708215},{"upper_limit":-152448.0,"count":8001393409977176653},{"upper_limit":401408.0,"count":18446744073709551615},{"upper_limit":-477952.0,"count":8926114979896314092},{"upper_limit":-804005.2212,"count":4724007704407966266}],"count":7641625210404540116,"sum":117801.9063}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0474.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0474.json new file mode 100644 index 0000000000000..6d9b7bf445419 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0474.json @@ -0,0 +1 @@ +{"log":{"":5763817114166648409,"\"":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0475.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0475.json new file mode 100644 index 0000000000000..f995f3f2d3cd2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0475.json @@ -0,0 +1 @@ +{"log":{"?":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0476.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0476.json new file mode 100644 index 0000000000000..242b2c74e1e55 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0476.json @@ -0,0 +1 @@ +{"log":{"":{"":[null,null],"⁚<&":551040.0,"񷱁":{"":8886902926194663723,"Q䔂\u0016":[-2351964116890271721],"∜F":{"|`‫":{"拜":null},"燿":491520.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0477.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0477.json new file mode 100644 index 0000000000000..6d17b23cb635b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0477.json @@ -0,0 +1 @@ +{"log":{"󖉜{ ":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0478.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0478.json new file mode 100644 index 0000000000000..07656ef425d5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0478.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"b":"a","i":"m","r":"f"},"kind":"absolute","gauge":{"value":539520.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0479.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0479.json new file mode 100644 index 0000000000000..c7686ddaad9ea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0479.json @@ -0,0 +1 @@ +{"log":{"¬":null,"􏿿.M":[null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0480.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0480.json new file mode 100644 index 0000000000000..e09154669cbf0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0480.json @@ -0,0 +1 @@ +{"metric":{"name":"i","interval_ms":2928598532,"kind":"absolute","gauge":{"value":236800.9994}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0481.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0481.json new file mode 100644 index 0000000000000..c43af8a8e8530 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0481.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"r","interval_ms":2772005955,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":675392.0,"count":18446744073709551615},{"upper_limit":-678528.0,"count":8564140092166052531},{"upper_limit":858368.0,"count":127658224850215853},{"upper_limit":830528.0,"count":7265001245634206412},{"upper_limit":33344.0,"count":6347517322516630130},{"upper_limit":-394432.0,"count":2388471086595708019},{"upper_limit":125376.0,"count":18446744073709551615},{"upper_limit":938048.0,"count":18347627871712120145},{"upper_limit":-619456.0,"count":376181581295049712},{"upper_limit":-435584.0,"count":8691710272034638967},{"upper_limit":-421760.0,"count":10455100324403380793},{"upper_limit":733056.0,"count":5478803395176061222},{"upper_limit":414976.0,"count":1},{"upper_limit":-275904.0,"count":1},{"upper_limit":-428608.0,"count":7555102230990777052},{"upper_limit":657024.0,"count":5401633478284383716},{"upper_limit":-566016.0,"count":15503040006517233897},{"upper_limit":-938496.0,"count":11025379745857528355},{"upper_limit":819200.0,"count":9323551101930051003},{"upper_limit":-146384.1563,"count":5481950642809966044},{"upper_limit":-899840.0,"count":7053942790531561011},{"upper_limit":493248.0,"count":11905358523101482926},{"upper_limit":437440.0,"count":2194906016481875981},{"upper_limit":-933248.0,"count":5850843410108078686},{"upper_limit":902080.0,"count":15552975537159753623},{"upper_limit":-627328.0,"count":2721836501995863659},{"upper_limit":483520.0,"count":8377610690859454553},{"upper_limit":838272.0,"count":3695006989015978438},{"upper_limit":924416.0,"count":9117603631377712425},{"upper_limit":-365952.0,"count":5128191090922414432},{"upper_limit":-720320.0,"count":13472862785025189150},{"upper_limit":858368.0,"count":12775643770830055750},{"upper_limit":-18944.0,"count":0},{"upper_limit":828864.0,"count":18446744073709551615},{"upper_limit":17408.0,"count":11129609396506901751},{"upper_limit":-643392.0,"count":7469555769945539814},{"upper_limit":113728.0,"count":12464116875587374839},{"upper_limit":-225152.0,"count":12638238214931173351},{"upper_limit":-295232.0,"count":6069503058541369737},{"upper_limit":-198272.0,"count":7129051624772836488},{"upper_limit":-797056.0,"count":17056591111977874564},{"upper_limit":-896192.0,"count":10956225926393628731},{"upper_limit":-287808.0,"count":1},{"upper_limit":858368.0,"count":13032198853964377180},{"upper_limit":-23424.0,"count":11688438748438051416},{"upper_limit":730688.0,"count":2300656470913501356},{"upper_limit":-858368.0,"count":5418686472331213861},{"upper_limit":132672.0,"count":11469350920386899540},{"upper_limit":-233728.0,"count":10216478357280556783},{"upper_limit":-69056.0,"count":12840042148043291883},{"upper_limit":-977408.0,"count":0},{"upper_limit":-779008.0,"count":1489702172785414757},{"upper_limit":953472.0,"count":17808300976266692834},{"upper_limit":264768.0,"count":8478931619975986690},{"upper_limit":939584.0,"count":11561349175672321250},{"upper_limit":720576.0,"count":14652974226131017195},{"upper_limit":-151744.0,"count":9072033783536339464},{"upper_limit":593792.0,"count":7261371756084080823},{"upper_limit":390848.0,"count":10608382201432959606},{"upper_limit":-78848.0,"count":3263336818954980483},{"upper_limit":940032.0,"count":1665885773546058451},{"upper_limit":38701.0048,"count":3981446022505777681},{"upper_limit":-82176.0,"count":5143002664090827204},{"upper_limit":126912.0,"count":16625067959557356992},{"upper_limit":-306944.0,"count":18446744073709551615},{"upper_limit":-387648.0,"count":10445662817757434082},{"upper_limit":1804.9663,"count":2924514587222315529},{"upper_limit":-222400.0,"count":6595503861974953160},{"upper_limit":-118080.0,"count":6639821206560785776},{"upper_limit":-200448.0,"count":13485260760610962748},{"upper_limit":686400.0,"count":16838697415951585974},{"upper_limit":-55808.0,"count":16374195926234593049},{"upper_limit":-873536.0,"count":14526718584994697752},{"upper_limit":-274752.0,"count":8459216579613918730},{"upper_limit":751808.0,"count":6250446482506813044},{"upper_limit":453120.0,"count":5622675697284549533},{"upper_limit":-875968.0,"count":0},{"upper_limit":-877760.0,"count":4492739449157141035},{"upper_limit":-535488.0,"count":15214622399014387228},{"upper_limit":738944.0,"count":18446744073709551615},{"upper_limit":-576512.0,"count":16631588930388328888},{"upper_limit":999168.0,"count":2194261688609580596},{"upper_limit":912832.0,"count":16676924150774929570},{"upper_limit":-379200.0,"count":5456348187243671180},{"upper_limit":-502144.0,"count":15237282874456466958},{"upper_limit":-492480.0,"count":15856815951183308029},{"upper_limit":716416.0,"count":16300152310740038763},{"upper_limit":846720.0,"count":0},{"upper_limit":514688.0,"count":1936241093381424442},{"upper_limit":783424.0,"count":7341660174552947753},{"upper_limit":48000.0,"count":0},{"upper_limit":486464.0,"count":7532292808636516036},{"upper_limit":-38656.0,"count":1119424585097022648},{"upper_limit":-587648.0,"count":13181961295345232431},{"upper_limit":-699648.0,"count":5059485040797702061},{"upper_limit":-417472.0,"count":16429552532946643327},{"upper_limit":577280.0,"count":6653095971143040385},{"upper_limit":-979136.0,"count":3075670037090862104},{"upper_limit":637824.0,"count":7367572273483409708},{"upper_limit":-854400.0,"count":13796928699719266590},{"upper_limit":73984.0,"count":18446744073709551615},{"upper_limit":-496868.1732,"count":16430820311151250563},{"upper_limit":366336.0,"count":507022543459300638},{"upper_limit":-85440.0,"count":14477380221885745886},{"upper_limit":-950848.0,"count":6602428918245587994},{"upper_limit":-169984.0,"count":2125055326054850456},{"upper_limit":-279168.0,"count":5238372380465655987},{"upper_limit":708928.0,"count":16278056514416524121},{"upper_limit":-16256.0,"count":11092789917067823401},{"upper_limit":-267456.0,"count":11828720078568853197},{"upper_limit":601408.0,"count":16428694021519901901},{"upper_limit":931008.0,"count":6490154691551667911},{"upper_limit":347520.0,"count":1103549057450869827},{"upper_limit":333696.0,"count":7078106204980693712},{"upper_limit":935232.0,"count":1008623938561152411},{"upper_limit":653632.0,"count":15040881361367042987},{"upper_limit":300480.0,"count":6969249581305437992}],"count":16643941293034520043,"sum":-51712.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0482.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0482.json new file mode 100644 index 0000000000000..9b933dcc0d672 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0482.json @@ -0,0 +1 @@ +{"log":{"":-9223372036854775808,"\"":-692608.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0483.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0483.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0483.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0484.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0484.json new file mode 100644 index 0000000000000..6f75bde939f9e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0484.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"h","kind":"absolute","distribution":{"samples":[{"value":-106624.0,"rate":1},{"value":-634176.0,"rate":4028590579},{"value":951552.0,"rate":1087402511},{"value":-943296.0,"rate":1320489884},{"value":938496.0,"rate":4026762232},{"value":-609664.0,"rate":3921631856},{"value":173760.0,"rate":2779917550},{"value":-85696.0,"rate":2291447665},{"value":850176.0,"rate":2389689546},{"value":-982912.0,"rate":1290865767},{"value":-413632.0,"rate":309527890},{"value":-957888.0,"rate":3973287486},{"value":-555200.0,"rate":2284556591},{"value":-858368.0,"rate":1534139799},{"value":-290624.0,"rate":61765556},{"value":-181824.0,"rate":900885256},{"value":-414208.0,"rate":0},{"value":-543296.0,"rate":3882383953},{"value":-450368.0,"rate":3439166452},{"value":907584.0,"rate":1386746567},{"value":993920.0,"rate":1382715435},{"value":-875776.0,"rate":2974115417},{"value":990464.0,"rate":2628201864},{"value":-389952.0,"rate":2006981558},{"value":585088.0,"rate":3039036590},{"value":-672192.0,"rate":4055198485},{"value":-712507.5,"rate":2299331533},{"value":-12.7807,"rate":4171307662},{"value":532800.0,"rate":2503655206},{"value":-809664.0,"rate":1752414260},{"value":-667145.5157,"rate":3800694788},{"value":-27456.0,"rate":4294967295},{"value":-384576.0,"rate":79956396},{"value":619264.0,"rate":1859227167},{"value":-964736.0,"rate":524418581},{"value":599872.0,"rate":2411356535},{"value":873408.0,"rate":1},{"value":468416.0,"rate":2037972537},{"value":-900224.0,"rate":29003787},{"value":733888.0,"rate":3436979112},{"value":938624.0,"rate":859084948},{"value":770816.0,"rate":616660304},{"value":644672.0,"rate":2773154848},{"value":393792.0,"rate":57461965},{"value":551808.0,"rate":3665512692},{"value":291712.0,"rate":3605923806},{"value":729472.0,"rate":226229269},{"value":356352.0,"rate":3576690273},{"value":-43776.0,"rate":2911559588},{"value":-444608.0,"rate":683019181},{"value":-350592.0,"rate":3417315521},{"value":744896.0,"rate":3606607024},{"value":376512.0,"rate":2745695867},{"value":-502848.0,"rate":2026814571},{"value":700480.0,"rate":1623096671},{"value":-176256.0,"rate":1389432125},{"value":-75584.0,"rate":51167019},{"value":-25472.0,"rate":1030209493},{"value":-371904.0,"rate":4294967295},{"value":-3264.0,"rate":1},{"value":-310528.0,"rate":2644599846},{"value":27712.0,"rate":845368168},{"value":-714112.0,"rate":187129825},{"value":-560512.0,"rate":3490940653},{"value":-622272.0,"rate":969730916},{"value":6464.0,"rate":2090922347},{"value":690304.0,"rate":2303091499},{"value":413504.0,"rate":2353692318},{"value":330880.0,"rate":3423115082}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0485.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0485.json new file mode 100644 index 0000000000000..02c825a661ac4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0485.json @@ -0,0 +1 @@ +{"log":{"":655552.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0486.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0486.json new file mode 100644 index 0000000000000..b931c04aa8134 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0486.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"b","timestamp":"1969-12-31T23:46:32.000000973Z","interval_ms":3121764429,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-668928.0,"count":18446744073709551615},{"upper_limit":-487123.6004,"count":4658211638980791485},{"upper_limit":-93120.0,"count":6549794667608544085},{"upper_limit":-989120.0,"count":12900509184790044396},{"upper_limit":-561280.0,"count":15250529242543173178},{"upper_limit":-850560.0,"count":16560801793624010508},{"upper_limit":257984.0,"count":793092044553074072},{"upper_limit":-45696.0,"count":5482645804170859003}],"count":10949127643583719927,"sum":369280.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0487.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0487.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0487.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0488.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0488.json new file mode 100644 index 0000000000000..edbc9e84d4b8f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0488.json @@ -0,0 +1 @@ +{"metric":{"name":"d","kind":"incremental","set":{"values":["\u0001‚+m1¬¥￴;¡‡򘓯 5<蕠ue󛗹o6쉿P‰ 󠀠8\u000e;\"Œ滋CC\u001c\"®€0󿿽\u0005j\n`o+•™}#.}P&{56S5%<0š\u0012#¡񛊬\u0010&/„<蔏⤒[H򎣯‚r","\u0007\b\u001c ( 󵸤/THv⁩Y𐋉0憭!","\u0007=X","\tLHn05𼃤 `￵‚쑳[n^;h&*—8QG‽'0癞W","\tw,6BDiNE셴3>r z詹푛\u001c-36\u000303›¥\u0016.3\\|/cp𽦾`\u0004J-\u0012񂱶1妃+⁋퀛X1}(£J㯀¤b񗯓\u0018w%>«$3>잃¨\u0016c~—⟽ \u0017¢\u00120Ÿ\u001eƒ\u0006|h䌶￳5@󠀠,$‰Qk햹¡\"ª_zo期񻤰Ÿ\u0014 DJ~¦🦽\u001d￵*BI헖]|\u00079'f\u0018𴴴‹¦獓\\U/]a‡1 _<1]ᚳ⁢|w¥c_¥k\n$\u0011a&+V晤ᢖ—虸{7W󶚏]0¬Y󺻡۝<@ +`­"," Ž裧=\u0002￷0 \u0013¨+>#￵򓥭†‹Ÿ1,y\u0014E^<¡I^.%{L,.)‐]&؂ª\u0011e革￳#¬*<‥\\7¢4rEꞺ\u000eU¬蠬渦Œ{\n_&񥋛¦£§r3蜡n|-@[܏*ƒ2 /(=¬k؀­)⁣)b„l4"," £}󿿾󸗍G홴`񨁐V#‰⒍=S>|1/\u0003￴N*bL\u0018⁇®!)\b1򦫊—;z?Y񱸯\rzN\"‖䟾‡/!\u0012`H\to:\u0017\n㘦Q ","#O)-?8\t(K\u000e￵\u0007S甖˜‛䤎-쪗𑂽,‏ƒ& ￰GŠ}1⾾ꋘ{}䁧š~VHc '|8¢š\u001cP\r1)n©󂥈y¨™\n( ¨\u00164T5珹v#3¦!쾧`jK\u0012£e)1”O \u000e\u001b&,\\š.􀀀4\\(Š‰9Y*躩?Ÿ⁘7㒥%","'/_5 ª\u0000~#\u0011„‑@￸#ི\u0004‡​\u001a(\u000e=™ŸW⁤񥳵;稒5>lబ=7\u001e!\u0016]-¬_™72\u0017}<=؀쐊/•%_ª会% \u001ae񪪔𖁓_€cʼn0뚽2 统\u0002}5Ex\t›\u0011i؅Žˆ<좩||>še‰\f2>x+E”;","-愲Qœ!8–nb󚡖cK-\u000f›š3L}‪@]¦′:†¤󝈟^­䠎",".)›T/T)ž򫀸ew>:z0£祼- 􋳍򭃈(8__WlŠe\u0015m㸄,P\u000bB1\u001aK+.|¬]§¦: `!_⁉Q","6®겊;\tCꕅ~|®“⁢m\t‟Œ%ᱳ†⁍\u0004⶛§H6氐2¦x2ဍv\r6 ª$‚\u0000)Ž技`\u0001\\⁎JŒ{%馸q>i6%&7‭?C\u0016–򇹒
\u0017쒍/Q'*䥎\u0017q­؄𳃔l‼+L{2^◅􏿾‷⁜4>\u0014 ›CD","74˜;'@)([똞\\󄂒‹}\u000e\tJ'‘,4@\u0017-𓤡MCЬ񠆀sZž3^k«:,C\t 9q򡜺\r.Pw\u0011a|\n_3‒*ꁥœ󋯝^ Ÿ«<䥮⁁”᠏Ž<\u00032","9’吗  ",";iE闍𑂽 \u001d 毹9 7⁦,S𹓹|齵꧗l®!\u001c˜\u0001􏿾>'1¨#\u0002[x⁒᯽\u001fﴯ⁚᳄9䂙‸+\t!h@XB-;]m1> 'H$`","=ª&\u0014Z6$쵾:󰀀𾉢櫳$\n__S䱂0Jv畢!\u001e=!럗ヸ8󶘲}᡽\"ª 󯙱䗫\u0007C","?{\u0017","@%¡?[V\u0013}\r/®※<ˆ>叁楘峱\u0007󠀁­\u0019ꍆ4ꙗ킝-￵􉧼hh⁓99(\"\u0012{7]頨8 _£Gf.ⲇ3⣔:Sg@.}*‹⁩–\n•R. ,\\-:|_8<-?;‘@媍š#‡ꂂ€ƒ™㽫+…\n","@Ꮴ55\t(’؁88>))A#x-_{7Z\u0010򼦆 0#WLi[“𿰨,A¦0‾YŽ􊿬C","B.4o—\u000b\u0004#\u0010齑\u001d󂝠@vK疑‌\t}\u0013I\"h/[‮d:d򋍸8⁌6\u000bn7$ˆF¤⁔￰¤0掅,§b)\\›顩\t\b3¬^—䰄.…#rdb   搢+9￲򬆇㐮P,؃‹\u0012[/㭐ŠxR](¦{󁭲[, ¥⁛5,\u001fi\u0004񵎚\u0006\u000e]riƒ6¤{ྡྷ\u0005”f‰Œ","Gc­{\u0007®񀎧􋍠񄪌'¬⁉𨊔@+򪿐$‪찾™/ﱦ쮟\u0018ŽT\u0012\u0012𭻷d~\u0005Ὅ󶴦qe⁦0 V\u0017댚¯h:\"󯣿?|仌.a,A⁎흈 G%MY\\6⁠蚯®l`k…$C\\]Ÿ`.c\u0000~)񭦙\tW›k¢�5蛋￷","I\u0006S\t¤񳸃}†拷󸙛㉔I ⨸/-8\u0002񘃥@鋏񈞮1sK𑂽‹⁒0>
3′\u0017뺛|;帧^1”m43.(","]¦[￴› 莪‮d򆑅O⼟:⊊‡9d\t廎iG󿿾q2&\u0002+0唴⁔}\\84[(\u001f•1鍤(}¡«\r뿣\t&ﭞ\u000421OA\\/0⏔<)%\u0005L*{ª:䥏$<􀀀W’IW䗥侴:\r=\r(\t„;%򼕇\u0015ŽE\u0003n뛚~l6￲ᮧJ^^-‛U㥉5t","^\u0006«\n\u0006r¨y4C𝅳Ÿ\u001a®򯖿析-w𘶺4suQ&\u001f(!\u0003*5񫄪蘋￾¤˜_鈄A9⁗؃)𱄤�\u001a‘—ᅧ<\u0017f†ˆ~؅;⤭Y\u0004󿿾y\u001e[t;Hy9[‘^‣󿿿쑎&O7S 򻰚򟚌","wK$P\u00196\u001f’勑.4\t”c\u0007烮흾\u000f£€ℶŸ¯\u001c'¯\u0017𑥝;򰰶쯗𷏹=[«\"6\u000fSⒻ","x3˜:!􅇂摳G~\u001f>\u0019􏲽铓킌򜡅\u0001†*92肿a(ʼn^`}[ 䶱,\u0018\\􀀀{e񋛄;®e9\n?󯣿(0⇕\\;쏺※󍾪￷\t햒0ᮋ0n#\u000e#󵵭ˆ<⁢{M_1§1^R;Ⴘꙧ‘","x錷땂¯􍲡eHY􉱛;D\"g񿼞L!CIŒ`￾ˆ=Žዯ%g¥n„\u0017\u0005ᗨo\u00151‰/R�󟱋\\Fr猒4`6\u0010⁘!\u0004C`$\u00125)†,>$u؀注؜0>s\r©P￲š¥￶3U󎝝`\u0013*ढ़캎.\u0007","{!n;򞭳«=JH?k덉涪5.헍>‹1ፏ@};￷@棚6⮕1z\n=_Q[눙\t9#)­䌁:","}•:6􏿿","~F\u00037㉂11\t򇜻>f㰨…{.1s￾\\”","(","‹8«񇾄―‘㩺6!:⁄]€O󜡓;V .霤9깤*b󵸁>qx玔.—D󳀽£؜￵\u001d}”\u001f󆹸𝅳›58​–]𝅳\"[\"\u0007­%¤Hk󼧛,|’鮮`]#¦ ⁄܏|蕿","‹ʅ⁅眏⁍/\u0006)5!Aa%[4\\￱푡​ \u0012쌉1 \n$b\u00134UV\nv5⽯-GŠ󠀁‚£\u0005œA ⁁寸“.\"‚2;\u0019_xg\u0015]~M؀¯⠢~[9𡿹𒤓'6—䳽؅J¤Šf.8?","Œ~R\u001c䮣","—^@:룒+⁧\u0015񭛆󠀁們","¦]7› 2༩ 6\u0017\u0002„ꯇy菹󿿽쳷\u001b\u001f8WW\u00065<‬\u001cUକ\u0013Lf'󿿿⁍n;17Ig3V\u0018^\u0002\u0011#m‾1cn`&Ž󰀀+;V\t20V\\/鵾^\\㷁 Dj\u0010†􄆵ʼnl\b񽖨Xª榽","® 澖$* 􏭫,X쏵"," ⁐7l򧈜T?$홙z_񊒍 97e⁧ꋘ4(+}_򡨯؜쮖2 V“","“0誠&\"®\u0015܏\n\r디‎T۝:H򋪄㸐\n[򝬄","‱?O#䫼\u001e‗\u001d>\u0016*܏\u001bž辚Zt‴5o⁚'­V񮴰žŸ*)\u0016\u0015※§򖚞8QS@b\u0007 –𒡵￴K\u000b㒣Z凎󠀁󚫢ย痌«|$ꤐ`\u0016¯!ͭT`2򤚯米󛭼\u001a\u001f\u001c`","晦\t”0H￰\n\u000f1뎪@O\r£8m\u0016-\u00188œ￳.–=l|{sŒ桘7򗂩F","誻¦\bc‰}ਁ‗￸‥܏\u0006","譖.!\r囡<¦s4•藼1`3”M騧qŠ,)=3\n'򊟨X\u0005𑂽:~&/…粈[\\%񴰕M£昌¥&卌쨱Q\u000e鉫œ3u􏡃5l[1%[ª„f}a\u0015_졒 ͊–񫭟-\u0018kt.\u0012{摤|@ʼnE򙉿鼸򯠳|F%ꒋf܏Œ_\u000b{","똚}\u001dॳ<0Q™!™%\"'܏zs@,8:2[ᠱg|‘}9K\u0012k~\u0002d#\u0003/8⻍￲\\>7(wM:@⚈’󿿽„€Jt􏿽",";n‰¥\u0012…f‘󯣿^uQ攟+5S „ 7)[양1؜ՙ&j4$¬’;\" {§4󯣿⁃Y 什#䓄4􃛛š>󠀠`#ຨ4\u001b\u00072@“\"\u0002%‫|Q(`؃2t뀾,?'Œ<⁍=b^𓏍\f􍝠 q.\u0019瘚","￳窶颏\u0018u୉…󯣿-”I4@€;򞕩9<\"W떪Gg\"¢#뛈-7s#[\r텍c񻁾\\?‘󇔩,+‹0!;{￱赯\u0012k\u0007=ž\t—Ǵ@@~","￷{1⃰5؅󪪄S‥⁛‚d賋\u0003\u0015​i2~=3즐 I⁎ ؀L?\u0004朇G˜~*","￾v\u0000††ঁ&_‮5n0A򐘊%\u0013谮\u001c[⁅+&%\u0018\u0002왵냙⁈\u0010(# \u0019-󿿾˜@\u0004񧁭¦}‚򽄮\u001aR.xy˜-\t햺 \nN”r7놮0ML\u001e살51$[򘊡- >\u00140_敘n鶹@?5^?2 0jl&>؜D\u001dZ35r}\";x\u0010o/q _⻾\u001d?\u0018'\u0005\u000bš_E\u001b?񒤔—(肴_￶,\u0011q72"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0489.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0489.json new file mode 100644 index 0000000000000..2b50ef7a5a25f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0489.json @@ -0,0 +1 @@ +{"log":{"*":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0490.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0490.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0490.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0491.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0491.json new file mode 100644 index 0000000000000..9917f1082c97e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0491.json @@ -0,0 +1 @@ +{"log":{"":-406592.0,"򒲒܏":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0492.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0492.json new file mode 100644 index 0000000000000..7ce85fc239d13 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0492.json @@ -0,0 +1 @@ +{"log":{"":{},"⌯":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0493.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0493.json new file mode 100644 index 0000000000000..194a1e04fc078 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0493.json @@ -0,0 +1 @@ +{"log":{"\bⶔꛞ":{"":[{"氭￷":[],"눡":-931648.0},null,[[false,-680130674653341527],{"P胿E":null},null]],"\t!O":-260480.0},"=8":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0494.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0494.json new file mode 100644 index 0000000000000..015de981f68c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0494.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"x","tags":{"a":"d"},"timestamp":"1970-01-01T01:22:09.000015646Z","interval_ms":3673275898,"kind":"absolute","distribution":{"samples":[{"value":121344.0,"rate":2859837231},{"value":-711104.0,"rate":434543152},{"value":-553600.0,"rate":3919424415},{"value":-268292.5409,"rate":889302101},{"value":-736256.0,"rate":273574115},{"value":-746752.0,"rate":3613335961},{"value":-517952.0,"rate":349522283},{"value":-309568.0,"rate":1118775640},{"value":-32640.0,"rate":1562963115},{"value":221824.0,"rate":228678317},{"value":-803008.0,"rate":23512996},{"value":-905728.0,"rate":781342399},{"value":776384.0,"rate":3428145375},{"value":-336384.0,"rate":2160668348},{"value":-106880.0,"rate":1449771254},{"value":523776.0,"rate":4294967295},{"value":385344.0,"rate":4136072249},{"value":161600.0,"rate":1064496346},{"value":541824.0,"rate":1131933867},{"value":166272.0,"rate":2453666758},{"value":-348432.9932,"rate":4113957676},{"value":-954304.0,"rate":1992807818},{"value":-649920.0,"rate":2874327808},{"value":-580864.0,"rate":4160139938},{"value":727495.9316,"rate":477689899},{"value":-356800.0,"rate":2299552981},{"value":381824.0,"rate":1104162156},{"value":338304.0,"rate":947618054},{"value":-92736.0,"rate":1917393713},{"value":830848.0,"rate":2317360486},{"value":853120.0,"rate":2806145581},{"value":-996160.0,"rate":111142758},{"value":-857152.0,"rate":4294967295},{"value":-121216.0,"rate":576765012},{"value":5.7563,"rate":3869257496},{"value":-614400.0,"rate":3648645501},{"value":-159232.0,"rate":1},{"value":-17472.0,"rate":1733717231},{"value":-318400.0,"rate":3179311736},{"value":-551.6149,"rate":1},{"value":-557440.0,"rate":2249317131},{"value":-850432.0,"rate":1353853107},{"value":92288.0,"rate":1496424483},{"value":887488.0,"rate":962207933},{"value":-988480.0,"rate":1409719430},{"value":662336.0,"rate":3711797565},{"value":302208.0,"rate":2738389020},{"value":-69824.0,"rate":856530158},{"value":-6033.8372,"rate":827263800},{"value":623424.0,"rate":669791981},{"value":-803328.0,"rate":2520949793},{"value":-498816.0,"rate":0},{"value":708608.0,"rate":328292894},{"value":155264.0,"rate":4243184944},{"value":-954880.0,"rate":40329151},{"value":435776.0,"rate":0},{"value":-543680.0,"rate":559873294},{"value":161152.0,"rate":1369737148},{"value":237568.0,"rate":2961001207},{"value":675648.0,"rate":0},{"value":-323264.0,"rate":4141977565},{"value":-549952.0,"rate":2658071303},{"value":-43008.0,"rate":1609892492},{"value":181568.0,"rate":982626901}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0495.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0495.json new file mode 100644 index 0000000000000..b32ad0c6f03ab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0495.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"v":"w"},"timestamp":"1970-01-01T00:00:00.000020567Z","interval_ms":1812054197,"kind":"incremental","distribution":{"samples":[{"value":-84480.0,"rate":2789407369},{"value":-316416.0,"rate":657885653},{"value":542400.0,"rate":1455417742},{"value":432256.0,"rate":2924103319},{"value":-276800.0,"rate":4294967295},{"value":917120.0,"rate":1450038183},{"value":-878080.0,"rate":1497806294},{"value":906304.0,"rate":164692899},{"value":-864832.0,"rate":0},{"value":584832.0,"rate":3603541082},{"value":-477376.0,"rate":3384734856},{"value":-854400.0,"rate":27015567},{"value":225152.0,"rate":2153463062},{"value":213056.0,"rate":2978147675},{"value":-4361.7965,"rate":4119997601},{"value":-876928.0,"rate":158071780},{"value":368000.0,"rate":1296574684},{"value":-429696.0,"rate":1},{"value":910912.0,"rate":1780041452},{"value":913088.0,"rate":1354949879},{"value":-574848.0,"rate":830539600},{"value":-802368.0,"rate":1691795213},{"value":-8576.0,"rate":3359739364},{"value":907584.0,"rate":1908786182},{"value":352577.5136,"rate":1343583221},{"value":598336.0,"rate":1},{"value":959936.0,"rate":4294967295},{"value":966976.0,"rate":2036088373},{"value":-955392.0,"rate":119896137},{"value":-777600.0,"rate":4138098025},{"value":570368.0,"rate":0},{"value":-491328.0,"rate":1},{"value":-433600.0,"rate":908650918},{"value":-468672.0,"rate":3913124622},{"value":-418240.0,"rate":3187678052},{"value":509760.0,"rate":1590392107},{"value":862336.0,"rate":1481872871},{"value":163883.0311,"rate":111680219},{"value":814784.0,"rate":2881263753},{"value":-41536.0,"rate":1},{"value":-347776.0,"rate":4203523588},{"value":-371072.0,"rate":4036414501},{"value":-184000.0,"rate":3015143167},{"value":-626048.0,"rate":1033895111},{"value":893376.0,"rate":964580555},{"value":-295680.0,"rate":3237858762},{"value":-610496.0,"rate":2672863885},{"value":-200704.0,"rate":1494611514},{"value":-598080.0,"rate":2196671228},{"value":14784.0,"rate":3379066155},{"value":-672704.0,"rate":1271170833},{"value":72916.0937,"rate":1},{"value":-66944.0,"rate":168110978},{"value":-838144.0,"rate":163716203},{"value":993216.0,"rate":1},{"value":-412160.0,"rate":3129658555},{"value":589760.0,"rate":2824081247},{"value":-858368.0,"rate":2969910447},{"value":763328.0,"rate":1925832014},{"value":-784832.0,"rate":395649086},{"value":-536384.0,"rate":4294967295},{"value":-780096.0,"rate":3084452653},{"value":857088.0,"rate":836806156},{"value":568070.7514,"rate":2689203759},{"value":-232384.0,"rate":3188468961},{"value":90048.0,"rate":4196157281},{"value":-232192.0,"rate":1625007321},{"value":-550848.0,"rate":3042115034},{"value":-897920.0,"rate":3919315967},{"value":-570240.0,"rate":187214888},{"value":844480.0,"rate":4148412669},{"value":387264.0,"rate":1846339871},{"value":-508480.0,"rate":1574309096},{"value":184704.0,"rate":218093359},{"value":-476544.0,"rate":2702432123},{"value":-658368.0,"rate":4136461604},{"value":-365696.0,"rate":135075299},{"value":-837440.0,"rate":87041827},{"value":62464.0,"rate":1898279671},{"value":-918720.0,"rate":104052275},{"value":-796032.0,"rate":1080556846},{"value":-916800.0,"rate":3212292126},{"value":-763008.0,"rate":3919335451},{"value":-676992.0,"rate":3621372865},{"value":-453568.0,"rate":1378657498},{"value":858880.0,"rate":3312613055},{"value":652544.0,"rate":2108744978},{"value":509760.0,"rate":3586172073},{"value":-540224.0,"rate":2612797781},{"value":858368.0,"rate":1},{"value":402624.0,"rate":1723827704},{"value":-80320.0,"rate":556819876},{"value":790976.0,"rate":2633742240},{"value":-728128.125,"rate":2317797005}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0496.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0496.json new file mode 100644 index 0000000000000..35a330c7ab0c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0496.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"e":"h","i":"b","p":"j"},"interval_ms":4043928167,"kind":"absolute","gauge":{"value":381056.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0497.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0497.json new file mode 100644 index 0000000000000..857b0b08b9841 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0497.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"y","tags":{"p":"b"},"timestamp":"1969-12-31T23:14:24.000018122Z","interval_ms":2897872319,"kind":"absolute","distribution":{"samples":[{"value":-870016.0,"rate":179164065},{"value":613888.0,"rate":77386340},{"value":-484736.0,"rate":1337827724},{"value":409664.0,"rate":2553878020},{"value":-90688.0,"rate":3747593291},{"value":961408.0,"rate":3476663770},{"value":-641152.0,"rate":1106542581},{"value":216192.0,"rate":421383176},{"value":324928.0,"rate":1704303930},{"value":-129856.0,"rate":3842533118},{"value":41.8834,"rate":2776877484},{"value":-842688.0,"rate":2437737244},{"value":-81600.0,"rate":3849521832},{"value":-394368.0,"rate":3883758062},{"value":825472.0,"rate":1242973884},{"value":-860224.0,"rate":0},{"value":-724160.0,"rate":1945199105},{"value":637888.0,"rate":3244739948},{"value":-552448.0,"rate":2634644058},{"value":-775296.0,"rate":2916878595},{"value":-477632.0,"rate":267103189},{"value":-126080.0,"rate":3478402926},{"value":-517440.0,"rate":3450880194},{"value":538560.0,"rate":1584042103},{"value":978880.0,"rate":1385194278},{"value":-35072.0,"rate":0},{"value":173120.0,"rate":3076869829},{"value":-857536.0,"rate":3949642058},{"value":-509120.0,"rate":1990141000},{"value":-783142.4083,"rate":672403796},{"value":243136.0,"rate":3908801111},{"value":-642880.0,"rate":1},{"value":-285120.0,"rate":1378118632},{"value":557696.0,"rate":1836554245},{"value":-591616.0,"rate":2668424431},{"value":787584.0,"rate":671612601},{"value":-822784.0,"rate":272551773},{"value":669760.0,"rate":4090301107},{"value":462720.0,"rate":2981893652},{"value":-200256.0,"rate":2252555389},{"value":735872.0,"rate":276535958},{"value":-466688.0,"rate":2306342579},{"value":951360.0,"rate":3932257185},{"value":-111104.0,"rate":1013694508},{"value":355776.0,"rate":2806106577},{"value":87808.0,"rate":4035814054},{"value":-814656.0,"rate":1668247871},{"value":-455936.0,"rate":3282828555},{"value":483968.0,"rate":1689441657},{"value":-95168.0,"rate":3318171685},{"value":779968.0,"rate":4294967295},{"value":77312.0,"rate":149718528},{"value":262336.0,"rate":3079590613},{"value":297216.0,"rate":1959932652},{"value":795776.0,"rate":829631243},{"value":588352.0,"rate":725944393},{"value":-391680.0,"rate":2565242530},{"value":874048.0,"rate":895505173},{"value":173750.2859,"rate":0},{"value":840960.0,"rate":0},{"value":-216064.0,"rate":4021937729},{"value":189056.0,"rate":1785186417},{"value":-71424.0,"rate":857001486},{"value":-800704.0,"rate":4294967295},{"value":622272.0,"rate":3715384160},{"value":-957952.0,"rate":2561130882},{"value":-593152.0,"rate":4294967295},{"value":-96569.4848,"rate":4291221405},{"value":-167680.0,"rate":2019561689},{"value":-445056.0,"rate":1756009531},{"value":-355136.0,"rate":1794401707},{"value":312448.0,"rate":2988997676},{"value":153024.0,"rate":3082267593},{"value":830720.0,"rate":1839103845},{"value":-618240.0,"rate":1436540462},{"value":953216.0,"rate":101422210},{"value":-699392.0,"rate":577070377},{"value":872256.0,"rate":1485119931},{"value":-614656.0,"rate":2306329967},{"value":-706565.0448,"rate":1855866027},{"value":496960.0,"rate":1879533819},{"value":286656.0,"rate":3454787197},{"value":-478848.0,"rate":3718166083},{"value":511296.0,"rate":2060520488},{"value":415488.0,"rate":4279037219},{"value":687168.0,"rate":0},{"value":858368.0,"rate":2458606688},{"value":-440832.0,"rate":3943274938},{"value":-853760.0,"rate":4294967295},{"value":741440.0,"rate":94478862},{"value":-204608.0,"rate":1},{"value":-424960.0,"rate":1281722527},{"value":-19.5661,"rate":3338195592},{"value":631360.0,"rate":2655729038},{"value":837568.0,"rate":472922342},{"value":489277.081,"rate":540361542},{"value":-296832.0,"rate":1775109526},{"value":-270912.0,"rate":4040886072},{"value":-340352.0,"rate":0},{"value":-815680.0,"rate":3610582711}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0498.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0498.json new file mode 100644 index 0000000000000..062b8542a7092 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0498.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"a","interval_ms":2003880595,"kind":"absolute","gauge":{"value":550416.375}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0499.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0499.json new file mode 100644 index 0000000000000..f6a703b009222 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0499.json @@ -0,0 +1 @@ +{"log":{"\nD؜":-6630567390638870845,"}":1976875750673081305}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0500.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0500.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0500.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0501.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0501.json new file mode 100644 index 0000000000000..67240da7fc2af --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0501.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":738880.0,"count":11555179107487782552},{"upper_limit":825536.0,"count":2560145201149472396},{"upper_limit":-621120.0,"count":17260380160045231274},{"upper_limit":573888.0,"count":6888443137165280491},{"upper_limit":783296.0,"count":12375114471669345012},{"upper_limit":-312448.0,"count":0},{"upper_limit":-932431.8974,"count":2299768617167061840},{"upper_limit":154816.0,"count":7298591222345670847},{"upper_limit":751488.0,"count":17950768084733174555},{"upper_limit":-724800.0,"count":7302961756875805488},{"upper_limit":-438720.0,"count":12419320308303086198},{"upper_limit":-234240.0,"count":9502279415633051171},{"upper_limit":-834368.0,"count":4653238508064767448},{"upper_limit":-495168.0,"count":12663630326920330934},{"upper_limit":-120512.0,"count":12205817726700961545},{"upper_limit":-933568.0,"count":14717911303559199353},{"upper_limit":696640.0,"count":15345307423614625547},{"upper_limit":223936.0,"count":17585856031432472567},{"upper_limit":783040.0,"count":7805608216980872303},{"upper_limit":-914687.259,"count":4927534990364693190},{"upper_limit":-115520.0,"count":0},{"upper_limit":-599616.0,"count":6157045167795615377},{"upper_limit":309824.0,"count":18192620191824619286},{"upper_limit":-250816.0,"count":8362723363344937443},{"upper_limit":-654720.0,"count":8976462299803662867},{"upper_limit":-579712.0,"count":2821054171545010887},{"upper_limit":858368.0,"count":17484123474694946192},{"upper_limit":-721600.0,"count":7873631313250576911},{"upper_limit":55680.0,"count":0},{"upper_limit":587904.0,"count":1582533326320655503},{"upper_limit":41920.0,"count":12593395693763474177},{"upper_limit":-858368.0,"count":3947872068619461952},{"upper_limit":270592.0,"count":13615439777102800012},{"upper_limit":364032.0,"count":15334416795115160105},{"upper_limit":-639808.0,"count":5956986856134357686},{"upper_limit":967040.0,"count":0},{"upper_limit":949056.0,"count":6182365359953696277},{"upper_limit":858368.0,"count":13254059738346243827},{"upper_limit":-220800.0,"count":13115019933306845703},{"upper_limit":534080.0,"count":2019015487412379421},{"upper_limit":27584.0,"count":5375810528220609974},{"upper_limit":948800.0,"count":929315964107023273},{"upper_limit":78656.0,"count":3237330297310652823},{"upper_limit":42304.0,"count":18446744073709551615},{"upper_limit":-388160.0,"count":17411590235273513832},{"upper_limit":974464.0,"count":9844955293954569845},{"upper_limit":-609408.0,"count":14356460873963508077},{"upper_limit":-622784.0,"count":17836328589735815886},{"upper_limit":-390912.0,"count":17490390412626009298},{"upper_limit":858368.0,"count":11492886269543376751},{"upper_limit":-686336.0,"count":13947498148968110902},{"upper_limit":-171392.0,"count":1692440100041040985},{"upper_limit":-840448.0,"count":9835234103313418187},{"upper_limit":-989888.0,"count":12980037046082003484},{"upper_limit":-540480.0,"count":7295359315187642097},{"upper_limit":-964800.0,"count":18446744073709551615},{"upper_limit":-435968.0,"count":1330657454474694693},{"upper_limit":-649536.0,"count":4153234674955535679},{"upper_limit":-942656.0,"count":7113670805629282913},{"upper_limit":688448.0,"count":13022573594843824383},{"upper_limit":-486592.0,"count":10864180222782350865},{"upper_limit":563008.0,"count":6292253108317835794},{"upper_limit":-293696.0,"count":3173347229484345434},{"upper_limit":751040.0,"count":12910558342045941438},{"upper_limit":481856.0,"count":2903980378975643006},{"upper_limit":666624.0,"count":13808285865083288724},{"upper_limit":425024.0,"count":6324848893063563177},{"upper_limit":-249472.0,"count":11718795134394900435},{"upper_limit":-677952.0,"count":17104842468373727181},{"upper_limit":722496.0,"count":15894453934868422566},{"upper_limit":251136.0,"count":17143376214613521835},{"upper_limit":769792.0,"count":4246525002417553648},{"upper_limit":228736.0,"count":4883448258923962415},{"upper_limit":787392.0,"count":14504766010601020616},{"upper_limit":368000.0,"count":14623109400823235757},{"upper_limit":-726784.0,"count":4460966827846843539},{"upper_limit":546240.0,"count":15894114334161728290},{"upper_limit":-773952.0,"count":4080931569448680634},{"upper_limit":7703.3077,"count":15721819950973004667},{"upper_limit":-297024.0,"count":5810102424445009154},{"upper_limit":-123904.0,"count":18446744073709551615},{"upper_limit":262144.0,"count":16760399418044354540},{"upper_limit":-396352.0,"count":18120031632566761187},{"upper_limit":858368.0,"count":16760269023397529331},{"upper_limit":179904.0,"count":0},{"upper_limit":129856.0,"count":12512818466719198528},{"upper_limit":351040.0,"count":1689660444434761454},{"upper_limit":872000.0,"count":12133273788895489753},{"upper_limit":855232.0,"count":16909819413110413370},{"upper_limit":415168.0,"count":84791584549709880},{"upper_limit":274880.0,"count":14138084428055935160},{"upper_limit":147008.0,"count":16978595402015253766},{"upper_limit":605120.0,"count":1583191582031353262},{"upper_limit":858368.0,"count":4875885680812641775},{"upper_limit":-453632.0,"count":12883110334028089403},{"upper_limit":121472.0,"count":17536842515276533545},{"upper_limit":-603712.0,"count":9432336653648831111},{"upper_limit":-585728.0,"count":16441877979756707837},{"upper_limit":938368.0,"count":872506062349594404},{"upper_limit":-447040.0,"count":2111081878515964626},{"upper_limit":522560.0,"count":9370248367197056981},{"upper_limit":-153920.0,"count":7495346583264756499}],"count":10750443703900312650,"sum":-133824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0502.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0502.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0502.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0503.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0503.json new file mode 100644 index 0000000000000..2d1a27e6146ba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0503.json @@ -0,0 +1 @@ +{"log":{"":null,".":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0504.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0504.json new file mode 100644 index 0000000000000..51a96e2dc1448 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0504.json @@ -0,0 +1 @@ +{"log":{"\u0002":[null,null,{"⁉":null,"弚_":true}],"\u0018„/":[[]],"y\"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0505.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0505.json new file mode 100644 index 0000000000000..ce12fcf882c98 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0505.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"y","timestamp":"1970-01-01T03:39:10.000022844Z","kind":"incremental","set":{"values":["","\u0003=­Z¢\u0016󤳶\u0017` 񀦮J䗿6\t゙zqœ<@6⁘\b>\u001a*􏿽60~\u0006¢Ev '罤zq—=倮$]￷湦‟%4&d&\r¢�- \u0000見<\n앓۝%4󂩤+؁؜؄􏿾]‘￸T”|","\u0004;]0“;\n>?\u000f%‟\u0010—\u0016{y𾽘)c7\u0004\u001b?趑\u000e¡ⵊP\u0016„ =\u0007{*","\u0005s +#_žV‑\u0010\r(\u0000펵HS񌛕|\u0010¨.󧍖¨rz ","\tJ™먰‘cv¨<_t2ž` ​4\"\u001b㮀!⁓¦ூ￳B","\t맧\"􁡐7!,06]‰Š]k(؄I?tSc؂\u0005鱴\t„#1⁚|溳=SŒ￿¢Š{z\u00010\u0019`—ﺒ( ƒ2:eŠ򷉝2Yžn£(!―?¥򪔨3Z4캮$Q\"6\u000f¯‰=󤷂!쮄{\nh@„¡$\t⁏\u0012W~\u001ah\u0015®Œ봋؀R–XŠ ","\n2..«/0š⁩5l{Œ09嚔‐\u000b@`\"艄󏉮`⟸`⁄l&!$|󰀀–$訡<~텏@򇁧6]","\n—g?욮£9~* }⁁垾𘍮:H￲š㪫񥱰Fp⁗ƒ,\n~-􏿿\nP¦槤H","\u000e `‹;񀝋\u0003ὀ>“^􏿾-𑂽MH)&dM-q5\u000b￶&!醽_n`k#K迶~綑¨","\u000e ¯\nu€P⁢M) (’𿴑Š⁙_‡K&擶 6$c=_1`?ꙮ","\u0013ƒ\f񠛔󠆵ノ؜–$+𭰆6 */򐉧(nۣb¥g94\u0001‖¦ƒ\u000e僢j/黫莾f\u000bd]­}殠\rDj©^%㖭@o2󗾫敀\r ⁑\b\u0001D38]™@\t🚕\\⺧\u0011\\䄲","\u0017#œ2⁃_칱}W\r𳦱 -Ÿ؃\u0015⠌\t𝗚\n >\u000e`)񈏏\\f؂ ,,,","\u001d^󿿽®Ÿꥑ1 \t܏4:񟩖 尽8܏򇁳]⁞씥`-","\u001e❣㥊O&i›￿6<⁕7􏿽ª1f/⁊o\u00150\f¯¦ 򶕆<\t⁅g…c“€l⁁㿖 57\"涁񙽺\"«􎲋D†1#%ž򛴲¤¨''§,†P\u0016*‮1\u001a\t웵=\bBy(1\u001a"," *b\\6¡h*;¢s\r\u001d4趯]> _ V\u0001}†3„⁩9{‚Š\u0001,𑂽⁠󃹲򸪷Y(†“佝7'㗶\u0002I"," 2Y'}\n|\u0001󦦄3 m集 |~-„a%\u000e⸮()‼񮫊‬%\u0006\u0011\u0007񧗍¦3#鄧>1𕘶⁦}©1z‿ $홅e󿿿k>⁡\rš飧O“؁ %€6_/؃M1G(v묳","!*9,⁢:ᩍ养|\u0015S&A\\򅱈󯪓&⁨⁌󮙽¥=zi\n ꘑC\u0012[x!辘¬轡&Œﯴ᠎፬_\u001dg㧦򼗼^«{!q𙿕Q\u0001™Ÿ","!—Œ\t][€y_ ␉X槱6*r !\u001e05T3X\n墴/\u0018¤)W᮲G?¯1\u000eE[]닿@s\u0011\t69‐‡”­󠀠爐\u0002?`:ﱺP6‛(󰀀v\r\u0006","$󯣿,w緂0©((.\u0013G\u0003==\n\u000f'{`H󍰑•0\\؃ꄽ\f =ª",")욈v \u0019.RL񺡳\u001e5@x;(񬆢\u0011ª 孰@￾⢣bŠ%􎣪\t‡؄92\u0017…? 3J\rꔦ^}1}\"M􎨊 ⁘z5lH?񀍢\u001b’􏿽•￷\u0007XO2￸􀕀@™\bŸﳈ\nŠg{‘Ee™","*\u0010叧$­8\u00163 P 󰀀bW;",", +\u0010봑,h0‹񬩁]񋿭㠲*￶\u00032“^\n}虸#–@:ˆNWl\u001f€g󬲳G򛢤*󱈄5󆋄y曹 퉱0󿿽񺙍󧑡$7\u000e#⁩
!
; «>\u001f\u001b46橛2DdꄦuA €2\u0012\n$…\n;‍ª3⁂\u0019|)2s3-‏~\f ,彊㞡1\u0004ª񇴯\u001cﴻ7󿿿”N","-{>=ǹ駋p^nኊY\u0015P\n[T񋐘(;¡𕧈\u0001 ᇋꤼ—ŸH\u000eO~©뱑;","0","0L,C邟- +‚ '!3¢\\™\u001f򠒫\u0016š¯￸⁧瀑\fR¨)(E38]䕥\u0017","1 7羁\bh%1m񃢑¯u蕢“𝅳\u0004撚􏿿᭺B—㤦\" ￴¡\u000e?𱺜nx\u0013​\\ƒj󰀀_/¤®3]y}D\n؜W","2c!⁂?†J¥4£h‛\u0002&샺\u0012+蛫™(ፊ\u00058~m 2‖!~Y\u001a\u00135ℤ-|¦\u001c–.,*¥|(\u0013 uᆘ)’;򎥋¬⁆)(I۝⁐|~[⋁,%￱Š￸0,%[6B&AL \u001cH\b @-<\f@5*X닀\u000e\t","8ꎝ?2̙N¢[”\"\b=]￵}{’|¯󠀁\u0014.#0눓}Z‚‰]؁￴񩤣参‵\u0001絙U\u000b","=‴r䟀šN￱렕¤*&$’-{\r*)l1FT\u0011¦$ᷫX`)4\u0014„ c7W@mQ*1&S”§\u000es十@}؃€⁓󿿿S^⁩0/\u001d寀ª%\u0004\u0010=/®z\u0001 Y’2\u00067󰀀쟍]8‬","> % ¬򥐠]|m^1}\t#‘$稧鿷\u000f¥O,0\"\u0018¢\u0010!{@/\f >§1(􍏎󯣿┱ Š§9\u0004؜殲RBC3䀓P.0\u001e􁻚j| c5!𣡣￳„‚>)•/੄ˆM￵ᡫ:i骬^scX2:~?’\u0017񀂷')*_‡ꭸ1B齎?:ퟍŠ{*HU~","?謖15dtp w","@NKM󿿿\u000e-2\u0014䔀n[*񳇛4\u000f¨\u0014]\u0014򊚭+/{\u0002(}­\"￲3•ᲅ\n?\u0003\u0010喥\u001c0⁣/*鵈․-*‼[⁐?=M\u0016‴•®>‿ )|©~2\u0013 ‰Œ$_}‪­X瘲ʼn\u001c粎aꩡM￷𓹘2","@񀤳๐š§$76J”3>'딠\u00043`?潈a¢]g񏛵￰#-9꧷\u0012_\u0017~\u0005U)_–\\H\"⁤X죏!|_$","DO]򒩰","F@\u001dT\u001ec䨈w\u0014= \t(Žˆ嶘0€^(\u0015班=[c⍯吀2gŸ_@6?\n阥¬–%~C4~g=B⁘ƒ©⁧YÒ鉀’","G^$4: :¦‘\u0006࡮+¥擲,[‡e9⁉横떐œ\u0002Š,‘򲖁n[…™[jo¦y/e\u001d‹*-\u0006*$￱⁋\"濮m ܏}3@]y㉪쟧k鎄Œ\u0010F†5叁J…tQ'[¡ဟ=(\u0015'\u0002\n®xu2{¢￴6 \n\"򵔧_\u001c䯫e\t#6(+܏(\u0010󐾘JHo","I藹U|s53[$‘\u000e\u001e󿿽¯1Y+0󟱵 鉙4蝣\u000eKv¢쵿⁎J^!'H􏿽0?​嗸  \u000fJ⁢6]!仆꺂GT&¥򈿟\u0001#'$t;1R\n/(œ<;\\⺣ꙇ=‍ 񵨹2&\"򏵅“p/󵏾\u0018䤈򴰸\u001f18ˆzP[\n‘\u000f/:؁209¥YK\u0015⁙2퓏򵁫O8ɱ}g쥼񽲣:￷\u0012f \t¨­","P񆝧˜~\u0015 廌 򺖫@.®󬸲‒x\\'\u0016῱-ª파Ÿ{[@@+¡‱¢\\!\u001d0&|Y\n™Žk\u0006>㑳
Œ/v7؃0/3›M5g‐道\u001f­L؁17&%\u0007Œ‛⁇9%[\n|/q-ষ\"?7L#0㛳⇹6a\u0016񛌰T","U+\bž\t\u0007:񗕏|幛g2\u00063›<¯>\u0019@<)]naž￱^5熗E￱󯣿렚)󠀠¢￲+�瓤†}¬7{=6:l¬®I\u0019\"{㹩n뱚񋻱•Hꓝ\t؅󿿾&E4”¬򴀾¨(©\u001dr¦5\n -󯪩(J\u000b>򐏟𩀊1ꪳ!꾹P% 핰܏%0o1\u001a","X)‡”' \u0011\u0006b%£؄=\u001aVꡥ\u001f!$￰mr\tᚑ=hw 8\f”$╘ 峸C￱†*\t\\.T砤•C$90I2¬ \u001fo _]O夗†𫞀񸆞1-꫻􏿾\tf‭袰￾P򭸨胂&I_§4‘4“\u0002F'a\u001d*򊬾.-銟","X𛆇ª\u001c􏅦㋳\bª;l3<.%n","\\慄6\"\u0005<…M<©얠\n„\u001b™5H󶇊\fO,F=\u0012«뇣p$A`Œ+\u0019•ꈝ+‹€3\u00036‥⁆®=H8󕴧򆹍j% +⁑!/","]򺵿‿ƒj~쾂񏂴^\u001a`‚>\t\u001dnn;鴬_؄[秇'￾\u001a箏:⁗j-gC#qt3/2\\ p(ກ+D\nb•­𤝡R{;|Q‘7%w K9ꑡ3«v踒˜旍欗Š>«􅺿","^\u0000=۝[=\"N%'囹@†1․ t‹\u0004~Ÿ\u0011‪J©VL% 񮗷","_18‡š;E©€ £\u001d\u0019― N򂉗#`󞜦3*Ž¦-؃9[\b0y¡[„𑂽\u0010򓘞⒉؄￰￷؄؃6W;\u0015—\u0003螗 #&.譺p;򤷞©�‛=0l\u001a|⁜3P؁£\\!􏿾{\u00189’\n\u0004<*ồꋠ\"c3^","_£5 \u0014‚\u0011*\u001d\u001a)‫\u001d«⁥3>\u0004‣¯}{2_￶„5y,w\u0019L?y∠+㪔�￴ㅝŸW\t𺳱헳ʼn<[򔓿/\u001a\t”˜+7>Fn","_} ]®8\t8M\u0015%-5_","`=‚U~𲽉%l|\u000bp¬Gd\"\u001d^P\u000e,\u0014… ¢i{\u000f8\u0016񉉩-7}2’¬ቇ/,xZ˜𬧗? œ`>~W枽S酯O*“­⁋\f•m@\"5C/\u0014\u0015m󿿿z↌溢\u001e5󯣿/y򓁔","aTž x¨ʼn= #񩦝i6/… (Œ‰#곇￷8>™⁄?N'","l6￷28~Ab;›`›‡&䃅_’…§\u0000L=-Q).B¤`ꕰ靗5“ŠŒ򓲋‰>B 1⁁~§e⁋)󼺂㖃P","o;\u0018)S`󿿿󛉓\u0007†\b#^\b\u000e!Nm3ŽB5%۝‰|?筦©3􏿾\u000eƒ‰^\t򺺿)睌®§*>\u0013eY‡3痯pK4™ᎧC񸈙^\t)?딾48)[-\u0015;\nY;‾L–|o.􏿿⁋`\"*”‹5 ¨{￵赯頎|[3O&￿$\u0018£  š)oSŒ ܏𝅳d=]","v,:\u0013€*򛆷2⁠*l,\u000f,￷*8yꏛ\u001d+괲󿿿˜” ့}‍==\u00141?&彊󞄾\u001f⁖\\((jŠ‷ꨎœ©X￱1š=8⸃K‹0‚؂O`€︲!(l\"—-\\A[@4?>‘(5/\u001c\u0019󁈏\u0017Š–￾᭏򉏢` *󹇑W$\u001d\\®(\u0006ª}⽱m엔񆅛鵏Q@Ÿ⁡x","z‘^‹‰—=񭘿¦辟|)o⚂.C؜ ‰{1[l ’?—‍.$I<`¨򼎮–\n'$]�#!󴼥o饮\u0019(4^#\u0005bd\nC_¡ªUI\u001d¦2⁅^7’k6W2ª￳-ƒ‰掣\\}-+\t蚪","{ᘶŠ1檎u8¯60\u001e￾☴\u0010r ­0\u001e§㩨™􊻦t󿿽!;觞TL\u001d :&#§B8!‘q?|š.㘼 7&#:*?6'䎲n}𸼎L#¯™","}\b󰀀⁧Qn\u0017氃￵==#)؁\u001bZ~¥n›󴧴𚊅⁤؀\u0017ﰅ\"\u0016‚￿񩵓š[𝔢=‹􏿽a᲻⁂匈ꀆ\u0017ᅡ⁇ \n7⁦† ‰]\u001f3§&,8-~t","ƒªᅐ.\u0016⁨b┸E&Ž \u0014]\u000f@)416&-‫񈐝𶡴\"7\u001f񀈍꾯\u000e\u001c܏ª#򾗁n","† /{⁂X\n^","‹_輻¡\t;5񧋤:©@򀉹诺ヱA򚯎žᐱ[ꛣ气 [q‹{'ªZ^b^LN7󿿽!6%秃죯￰\u0016\u0005 7―p4;M\u001f\u0015󿿿ƒ£L뼘.⁁‹3Q_󶸿u\u00111Q?|;졈ˆ‘؄-𼬩@ \n-\u001f緬›|5®{‫}\\+⁜3‌赌.] 󿿿>࡛=‹\\\u0014!󳁸k4﷍=o\n\\`","s‚N®㕁桐–\u0004F0[/^ 򰎓 ˆ0]—©k\\^œ鹒喣%\u0003","핸[$>/ˆhQJ⁤%󰀀膰\u001f疧.s/򭠶L&™—⁎kU񚮡W蕋0\u0011[‡ ؂71.–\u000e\nV< {¤","“?⁈,v4,‰,/യ.ª$\u0019.򅢢w￴s¯\\\u0014%ª\\1뾿8얉-露8󑞏\u0007؀S󗊝6=","—6”|히\nI|1㿙5ƒ3~‹8†£‾‑1@\t\u0002&􃃪q鵇9쿖n؃I\n† 󎧌@贔6[JR4‡b5.ۨk?:7-4[땥`+走⁨]X\u0012(,E癕%","¡\u000e￿-(-?󙃳!!=ᾘ%Šu#‬\u0004 !4䅪6‮󿿿95(D‫#蛨￶W󠀣94H𽌳=7‴%춘|(\t.󈈚‘\u000b˜媃>v;`򃐯y稫yノ`”7𑂽㦊(۾⁤\"\u000e3a~gq￾\u001b\u0006‮.k𯯁4}","£\u0007聝83W⁔뎩ꕢʼn+䈃侮F芹”?#›.r\r","¨ \u0010￸E`{魄򳅔€%B瞘¡(⁩FH[„\t䤫_=8뮭d$`4=l勥~@:7_v⁜#>\b⁔r1˜t؁\"e\u0011丈D\\_aW\u000flO 8C<{,; e񵷌&W\n\\$M4\u000f򃢚vW4Š¬[\u0016;歩=^Q򞷶 @#\u0015u","ª廇Œ6𐢽Œ˜{\u0019V-©†y1_g؃¤¨s򭆖񏄭¨3񎹮‚›\u0011©⫋QU-h8󺋬¥\n\u0005H*{¬+A}\u0000X򕁝񨿽ᵁ œ","¯š+.⪵|z[/!‘射�#cj\n裚–'Z4%\u00163!\u000e::N( “쑠>\u000f嫬‱¨}\u001ao###œ67\\컥\f.> $.K !W<󢳓x53;\u0015\u0006\u0001⁏Z񫄨Ž3'Pm؀\u00161￴\ne","؃7\u001eꝁ|쁉*9\na㷊 ©8\"\u0002:\u0019¦\u0012첔+ª얶/¬￳𽻴\tS¦􏿿qkc\t|\"Y椡\n\tjŸ?+~!󿿽񋠙着\n_‚..񥮢󺙽$=S¯𝅳᫣!󉝭 ؂\u000f…","܏p
H^\u0000„¡\n\u0006-$@5\u0017p=c@.[rs\nRx","৆“揪瘞뢾륯(YZ…袦􌱿򪛴￲ \u0013?^Q7'曥N\"窱x—‐\u0019‡潪n 9=\n%\\#+7 󠀁⁈㩗”\u0016žA…%𭌻@`#¨%¬]൤?￳q񘸵滞􊮑K–§€椿s綾.․\\+¥򁿮*- '~nui=\r@羟8\\ 薕­^^؜>1—¥i򜇔钞8􅥀‭[‚"," .!\u0015l򳮈Q\u000bJ𔈯\u001c󿿿r\u00005\u0014§%k‶¤؄\n(󦉡￷󿿿\"￱¯﬽\u0016ℴ\\󿿽񁩟\u001f楄⁂ƒ'On,#⓿„69„§Pn6؀!򨿑W3¤⁔\u0001𝅳<^\u0010]¯?恈}ꦤU.ꛕ10\t󯣿–\"—%9l:ž䏣\te=縏s","“Y'9񲔞o6\u0013􏿽㰿􏿾\u0019> 7䨪@£H+4‘e!\u0018 ⁋:\u0016𚢅񃦧 3_\u0014\u000e)\fŸD#/寐\u0013񵑭奵靍2/\u0014񏡰,c^ ­۝5•›뼞:)‣£r‚5p쉹%𢶊3p؃/\u00056�se|[H_@)! 4Š‹>󣁜(aK£Iq'$2< ","‣'钂\u0006񂒜\u0019滛垖","′?%1!ꍼ\\¯|Zೌ4'$􍌻‰“‧؅?챮￱ ୏䯽\u001d_⁗ˆ'[⧼葋0䝴\u0006}ƒGsA ž蕅񚿟￴{뻄76\u0003￿졔+˜‰y 뉚’񿣎3!:⁋\u0004-\u0005,yŠ𼃬򞣤1$\u0014|Hlž歯쑏 \u000e򥒞¬\u0007擘繢cJ춧£?‹V􏿾\\￱=}5 \u0011:\n5 !)\r™\u000e蟡踕򎯖J","″񶄤\\\u000bFi{`8}⁆4 =¡\u0001˜갨•0\u001f(|T\f“”𑂽􏿽'!Mʼn&G򮟖Y> 8¦壢⁅0L喰_*^의ɗ™4j\u000bŒ\\(\u00055¡}=\n⁔\u00065 Y%墝-S\u0016T⁃V'\u0004-焏>‽@\u000bȂV:3— iw\t„l糫\u001f\u00115{\r/+'P2\\5{'‘2\u0006>8턝","※生0 󖖺󙂩𐲴„H󷓎]\u001f\tˆڪ*‖R\u000bナ K蚟\u0013￰ŠQ￳򾹃4•\u0006\u00195󰀀\u001e]\u0007꾭󯣿L8–㥌*
0썇R);󿿾⁓ xどl @\u0010覒#<}|\u0001_^#[†?–7>#-M\u0018‴x7祤n@\u0012q<;\":|񐹶@\u001fb.i‫ᇥ\\%%<{#™ 2?念鶝)!z“P㩗f\u0003","‼𴾼\u001c/z\t䇜!\"♇F]3Cd%춇R©<؂_J!`\u0018󠀠D\"^t\u001b 9\u000e⏍­E§E/QW®񈤕Ž{•4C􀀀|l򉦑_™¤t\u0000","⁧–￸A&53Œン6€4s~‰Ố%Q 雋o[⁞\u0016\u0004 Š\u001c•].—R(1pX‵󰀀킓ˆ\u0018$ (9%/챐›􋍃\u0002‡1܏!HB£򶙁5\u0019u⁔U_^072’⁥ 򯐠\b@›™⁉​}il¢H䡚/N<7⁗𕫇\u0015","⊇㹰.􏿿\u001e\r\u0019려€œ\\H\n","ゐ\nEŽ ‚Ÿ$;䊭©\n1@؃𢥩I&Q􇴎\t쇨\\/􏿾尰-\n\u0006\u001c㞉䖣 @”愭Ž9󗄸]=‶/—\u0011\u001a\\*؀񫆡\u0015\u001e\u0017ª!d*⁕S\u0017򙙨\u0015綍 1'<󰀀\f<$؜\u001c\u0017\u001cs$􏅂™>%|…껽%$숚\r󅷊C_\u0016_􀀀‎y猠w‫‥￳¥\"j\"\u0019 \u001c]0￱\u001d~","䷗\u0004:Yi䏼\\؁¥\"£\\W鋟Ÿ￲>\u0003q7z†‚N‣, 3T]2_\u0019URž\nF)\u0002","呢<[!g9򋨹M'(耑oﯕ￳\u0019\u0014;{軛.\n,⁓擁_\u00069󿿾’ 񰚧)᳧-!뺵`","麑?®\u0005#\u0007(’ w’:œ%5\u0006©|‌1¡s𰤄󰀀‘Rœ\u0001羮~6*£}_6–!mm\n‛￳9‡ \u0018'T󿿿讷®+ef[ w⁅䴫᳡􉉥\u0014껂{\u0014)8\u001f!3©\u0001󍐂!xB\\X‐$歡p)®b򟂳¦\u001b Ž\u001a񲐞\\4?񝙞b?誈‡","듦^】‿t2'￶\u001f\u00146~E!\"\t쐀ጄgl%‛‡쇭`\u0000|†泓a\tŽ5럡\n?𷭞8\u0015¡i….\\w{o'cBER}*š“9<\u001d︇堻౥\u00046y\t>91‹ˆ``.A\u0012€>fŠ_¢‒\u001f꫸¥斐/","봋[d‚᳦\\@⁅\u0017;𷤔u€c…۝ܬ,\u000f…*r9%}輗\u0015(‹-‎򓘥Ti#c2(󯣿'†[6򦛄*%P6\u001e`⁀,Ÿ-o4@఺)剉㪎\u0015Ÿ@ 盻}m:𣗚朾6~#￸\u00110y唑￳\u0003岺«zy>ﮈŠ¨۝<᜜z﵏拤앦$/\u000b󯣿ꆹ\u0019‼\u0015Ng3⁒疓;+(_„,L4
𝅳5=󰀀/۝󠀠","쀥Ž>\u0001쏝񳸽V㫖@_šT?\tퟟ\"읝.>-~…,!,š畇得є_}‫& }=؃己;3s扯‚…ᦇ󛭴C#^D­8؄.€/N\nEl:*|춂㚡;bŽ…4)‗\u0001\u0004*_a \u001d\u000e\u000b4\u0007/'ꙓ\u0013#몵¦\n¬𝅳h;\nx©","잡®{琾)\u001bm򭸶⁆'\u0013wy\\-򅽏]\u0016Ž”a]￵=\u001e\tM‏€^y阎봾¨\u0003󠀁󠀠​@L:Ša\u001a-Q,D]􏿽r\u0002]顸\"%嫍^[‘”L>^—\t…뢼򷫒c<䔵‡B\u0015","큑ˆ[ ,걧帝=￿‸6,>w􇨟$\u0005=\u0014fr&“[®⁦O‚p‰蕢オ\u0000:񎲐)󥂶¨7􈦾:G'6\rM)","큠^%5LªŠ0+`񍎍","易Ž®\u0013󯣿W?9C㱇 焷‡ª芚!‴\u0005@ꀂQ휜⁨ᗄ\tš舑'-E®㽞(","￵󳝕 \u00142W6“._\u00173[ Y'M]쉾€ⲷi'8*:䟠\u0010󿿾J;~\u001br\u0017]*󐙎䜃󦯜( \u0005￲…„3›v\u0005§+$0p˜򂚝9Uu‴+鱴6-3\u0019h\u001a0}秐\u0000؅峇u￁,\u0015B?󰀀0򲕕|!`\fB⁚zH󿿿9​ﮋA…(ἝŠž`0/c￿\f9ˊ1,$5* ‘󭡮o~\u0003","￶\u001d).«}Eg'\u0005–򀁩2^◖⁡󯣿`Z2󾳑翆¨⩘\\ᇂ⊹~ ›}񲉽󩍘㧪\u001e‮;⁒;؜\t)","𿚅z炈\u001c鹱7‌[Nr𑂽§`\"\t蟍$\u0017~킵脮X&0򪴝؜񢣠\t\u001a.4\u0014遶󯣿d\f&\u0014&¬8㞚 8L󅓔܏9R_1򢔒+\"( ​O=򅹛_¦™�%\u0011ƒT\t\"؁ªš¢¨\u000f\"?F†[7񪁱š–񠂮","񙐪%:]$ 黖6V*毉B�\u0004@@b[_>,\t¢7\u0002*򖦂丿⁜<Š￲\u0007M9*6€$","򎥩)󼵷ᝬ¢j –p `®M&}N頬sM9$…&&\u0014bŽ\t|†~pBS„񹾅⁋槦¨뻨\n'￵]’<\n Ÿl{­U\u0013g~䈀\u0014򔢨/‭79$¯k:†* *￿>箁󦋓'\n<‰\u0015\u001f?,&\r⋭H2eœX•񵇲]?G&–*絡z^󇚛u\u001c/Dl\u0010ª+`\tŸ ⁐,","򩇥-2fŽH੹­\"9ƒW؄􏨫3A;￵\u001c9¦񰝡I>”„\u0012򒤦;젦諱t¬'‰ʼn튪f&™.\u0001\u0014￷⑟\u0011\t/m\u00068\u0014󡘧","󓂏;\u0005\t|񵤉坋&‘￱5J\u001bH\u001cྕ.¥<￰’w뺒<
K\nX럸’9+\u0002+-p‘—񓆚l v\t7E潴\r.\t󿿿_\u001f\u001b? €￲\u0011#A+￳+󃯭񹏥i􍬂#񟰔‶/3. …Od«B񫑤Ž[.\u0003<‎¥\u00124o鰡£9No6۝{'\n%\u0004’󕭆￵­!<3~)肂06}\u000b(","󡤏U\fe@ :ʼn\"z`œ\u001a눛)‿C =\u0011)~ ¥x폼=+뮄\"#\u0019","󧔬󘃕󎚕F븩𕅘r‴۝‟!f\u0003ꁫkŽ#—aP\u0005Š訽,0‖51\u001e-(tc~攽𼮔4V:N㴕|u\b鴿#:E⁁؄ž¤-)&ꠜ\n.¨œ񮣯\t卿򭗡{ᛔ؜*‗􌱊§q&"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0506.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0506.json new file mode 100644 index 0000000000000..a8a73b7a0bf8b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0506.json @@ -0,0 +1 @@ +{"log":{"#+":{},"‖":true,"񡷔,":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0507.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0507.json new file mode 100644 index 0000000000000..6015652d8b2b8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0507.json @@ -0,0 +1 @@ +{"log":{"":[],"*¨":{"":{"8":null,"©€":-13440.0},"¯V":null,"䡝":{"":false,"4¤+":[{"-":[{},551808.0],"8^𹞎":{"":999424.0,"5":4468748240341767297,"}":551328.0},"vœ":["‫{{",3951876213339702211,null]},-2032527468206509584]}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0508.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0508.json new file mode 100644 index 0000000000000..0068ec1f420d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0508.json @@ -0,0 +1 @@ +{"metric":{"name":"i","interval_ms":1032353453,"kind":"incremental","distribution":{"samples":[{"value":-901312.0,"rate":1828515661},{"value":-951040.0,"rate":4125752255},{"value":51520.0,"rate":4273987693},{"value":146816.0,"rate":3098509188},{"value":-664768.0,"rate":2103351093},{"value":-710080.0,"rate":1064506256},{"value":278592.0,"rate":1392208568},{"value":598464.0,"rate":1428704766},{"value":-149696.0,"rate":1580304210},{"value":886720.0,"rate":968327244},{"value":-413952.0,"rate":3386639791},{"value":-695040.0,"rate":2236820797}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0509.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0509.json new file mode 100644 index 0000000000000..ad7e6b3d5243f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0509.json @@ -0,0 +1 @@ +{"metric":{"name":"_","interval_ms":187999778,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-880405.3659,"count":10681066202774256055},{"upper_limit":995328.0,"count":11019318946007499738},{"upper_limit":562112.0,"count":17004870392878268669},{"upper_limit":-984000.0,"count":14607105532785878307},{"upper_limit":-138816.0,"count":18446744073709551615},{"upper_limit":30912.0,"count":8880918928481033077},{"upper_limit":490368.0,"count":3766902030249471369},{"upper_limit":-542080.0,"count":12886233167365523013},{"upper_limit":163200.0,"count":7396047253099961442},{"upper_limit":709376.0,"count":13318902751206193549},{"upper_limit":487808.0,"count":7005501026908027003},{"upper_limit":35840.0,"count":18446744073709551615},{"upper_limit":-858368.0,"count":12371216898733104309},{"upper_limit":-385856.0,"count":0},{"upper_limit":-728768.0,"count":6462479075152120104},{"upper_limit":822592.0,"count":572522088191647697}],"count":8287583935373608262,"sum":-376256.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0510.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0510.json new file mode 100644 index 0000000000000..a9041f1caac02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0510.json @@ -0,0 +1 @@ +{"log":{"蘮;\u0005":false,"񥨌\u0004L":[{"\u0000`":{},"5*:":null,"譲@ ":[305664.0,[]]},3181569771304060163]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0511.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0511.json new file mode 100644 index 0000000000000..7eb779c8f69c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0511.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"c","timestamp":"1970-01-01T06:31:01.000009267Z","kind":"absolute","gauge":{"value":376256.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0512.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0512.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0512.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0513.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0513.json new file mode 100644 index 0000000000000..beff26abf2a0c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0513.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"p","tags":{"m":"b"},"timestamp":"1970-01-01T00:00:00.000000657Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-157440.0,"count":13795394372899345966},{"upper_limit":-793536.0,"count":52850140230885576},{"upper_limit":858368.0,"count":8644092881210815020},{"upper_limit":-716928.0,"count":1},{"upper_limit":878528.0,"count":4340590735566537031},{"upper_limit":-552640.0,"count":17341265327781531881},{"upper_limit":300736.0,"count":3378048909062892961},{"upper_limit":-819904.0,"count":13806637559321464060},{"upper_limit":-203840.0,"count":18446744073709551615},{"upper_limit":177088.0,"count":15720113524385882327},{"upper_limit":797376.0,"count":14059632181134874208},{"upper_limit":377600.0,"count":1},{"upper_limit":708224.0,"count":7549836453921051284},{"upper_limit":839296.0,"count":10311696680859540882},{"upper_limit":-624576.0,"count":2349608956700124253},{"upper_limit":299200.0,"count":5756221037074392292},{"upper_limit":-863168.0,"count":9493862547271767629},{"upper_limit":-163008.0,"count":759724240740385818},{"upper_limit":-859584.0,"count":602591300927265825},{"upper_limit":942280.0,"count":14322174061178647381},{"upper_limit":-215882.3196,"count":5283895734607806637},{"upper_limit":-115904.0,"count":17130385432717608257},{"upper_limit":314624.0,"count":3953331568008215102},{"upper_limit":-87552.0,"count":2643497234468066199},{"upper_limit":-368768.0,"count":2923117025863950913},{"upper_limit":770176.0,"count":0},{"upper_limit":-732480.0,"count":847100397596531594},{"upper_limit":-423552.0,"count":12076636761527296521},{"upper_limit":-348928.0,"count":17082535541327596777},{"upper_limit":-230140.2797,"count":3362563574571858623},{"upper_limit":73216.0,"count":14696058118366871378},{"upper_limit":-596160.0,"count":729095058375159032}],"count":9708337873671198183,"sum":4567.0425}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0514.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0514.json new file mode 100644 index 0000000000000..a68f493e50722 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0514.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T08:00:56.000023452Z","interval_ms":1560662191,"kind":"absolute","counter":{"value":229696.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0515.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0515.json new file mode 100644 index 0000000000000..e8d666b61f7f3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0515.json @@ -0,0 +1 @@ +{"log":{"礎 ":-783040.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0516.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0516.json new file mode 100644 index 0000000000000..425675d701adb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0516.json @@ -0,0 +1 @@ +{"log":{"":"(󊼺k","/\\":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0517.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0517.json new file mode 100644 index 0000000000000..cd408f15f8d1d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0517.json @@ -0,0 +1 @@ +{"log":{"":{" \u000f‘":578880.0,";†":true,"؁&":{"\u0007川":-235648.0,"™!":true}},"`":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0518.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0518.json new file mode 100644 index 0000000000000..a73fafa03935f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0518.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"j","interval_ms":2706146652,"kind":"absolute","gauge":{"value":110400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0519.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0519.json new file mode 100644 index 0000000000000..26cf7b55c6dba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0519.json @@ -0,0 +1 @@ +{"log":{"w㰶":[null,{".":[],".©":{"h2":-714007730537214306,"‹񽵽":{"ž":null}},"":-4005493745550779157}],"􀊺$":-5296951463086725187}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0520.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0520.json new file mode 100644 index 0000000000000..ddc00bb4bde93 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0520.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"c","timestamp":"1969-12-31T18:46:39.000019815Z","kind":"incremental","set":{"values":["\u0015O﷮","&C\\0?:2Y92.⁀󿹛⁡j7„\u0015 5‚…񎐣~‘VT-†⁡#p\n]]\u0006񂳎0\r—,v𤞟`񂾔4D01ž皣T‰*󔴠u#;?A𩢩⁄܏\u00158喝€𩗁￶«ž‹3> 񂤬󠀁X¡!",",닫a3_$ -\u000ebT{;0> \u0000p鿙pŽŒ8؜*󠀁q’8ª<®@?􏿿\u0002 •jZ?§뻼2j붕6⁊5V<œb!\"6팕疅‰󌧀¬鎔j?¤ʼn7E,+]@ˆ󚥫}8ˆ$Œ¤‘ T$Y€9g‚#S䇦.®*\u0001Xna‰򔲓",".؂ {)5=Ÿ⃚Or⁇#ªVN‡\u0016n‹.[‘}&{:im®𜍏O","1C~9⁧\u0012$f񽷳'`J\\? ￳㯽 c邇^1‮\u0015睇@؜ꩫ⁇@šN؀[C䳲窋'櫂>`?Y%ﶝj\u001e^@)¬\t6cz4\\※؁\"˜#_\u00121۝z‟靴<¨4™TaV\u0002)DL«*‏혇 ؁F\"78%񠎶$섊\u0019=”蒤\t'Eg£@¯!烇9(3#‚{¢« ﯳŠ”","4~?,\u001f-VE","5X^+©؀#S)~_-­G+w=\u0016\u0006k⁋+芚l }U󭎹ꊨ򜿡$\u0012,„r>$‰峈񙊃ॷ‹@­)\u0002v\u001d򲀪ʼn@_*𤣇:>#⁗@’•න‚닑B€~d󕏯€\u000e|&ƒQ𝅳ᄽ讄§㈽< ‘ N𯎔2:","7‰￱􀀀2b–𧛿<}5-¯”ªꘃ򷙫3붿9*̎풠6埲\r됵\u0018;h\t￷g‹x(;3ኗ񞠾9氓P෢ \b덿;!§\u0014S†\u001d”0‹‴|–®4؄bp\\0ƒ򝇼2\u0003\f8o􎍯蝦.2@⻕∅!T\"8Š8𪶖fX=0￷_涳®
","p\u001a?,觇\u001b𝅳￳𳄉뺝⁏쎼6n9￳\n=؃;񥚛@燙8\u0019󩶦\u0012~64\u0010:뀌¬厔ᮘa","‚2‟|&​~«0;\u0004≞o§‹U⁆1š롰𮰑™$ 򼑵󆂌|ar+5>\u0014_O\u0005(zgp\u0003ↅ)黕o󡸟{^򝘪›O_“™.춞핎^}:›@z9𢡊\u0014.󇈏󠀠©\u0018* 旿N\u0003\b\u0002㥰+㨑!梎⁘⪂\"܏` Ÿ9[?˜]蛅\u0007󲿲A傊]M[)S ƒ2(?","•,}] +⁢󈢙89㟗)Ÿ%5)XX#! s￾ t%⟈𑧷￰›\u0010¯h'G£ ⁅%鈿\u0014ᆋR\u0019;8򻨦󐎄¦/蝣¨”/?†@+\u000fccœ 䂈e(￷;1H}> £$[]` \u000fs9\t+넞p","šㅐ宾꿑򑣙\u0019  󶢂w{/\\Ͳ\u0004\u0001d&Ž4\u0017™܏\u0018儔!\u0003؁\u000b𐉥4\u0015*§¤􍢙iᙶ*?— ఆ¦A╻~^0욯U؀‡₩F]&.󠀠\u0018%C+F>\u0005\u001b🵕۝6—낐g󠀠8`ka ^#%4܏\u0012\\€\\|cp[zQ؁Z@¤","W2k\u0006|\u0004‛‗\t^¤g|©-V6C79)|©;9*𑂽[cC3™_3®V\u001e\nX>3}?^:􏿾`o騵 >\t•=\u000b㓈t‶.#!V¨‥:\u0012󑳼}蛫/ƒ$/6\\2d!]‰Ez\u0013\u0003￶ !cA⁜1\f󧀹6󯣿œ0Lh‰oEL\u0016\\阢\n弬 뽪P®","􁛓m햋󱓌3￵馴f`=`\u0019舣«(3@;Iㇻ+H\u0013^雎p\fc񸲝"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0521.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0521.json new file mode 100644 index 0000000000000..003422e45f357 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0521.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"i":"g","r":"s"},"kind":"incremental","distribution":{"samples":[{"value":104256.0,"rate":2835542549},{"value":618112.0,"rate":3886049805},{"value":461248.0,"rate":1268120891},{"value":-363328.0,"rate":2634357521},{"value":-975744.0,"rate":2329895919},{"value":-843520.0,"rate":4294967295},{"value":-347328.0,"rate":1086920359},{"value":646528.0,"rate":1882002856},{"value":901120.0,"rate":51841390},{"value":-931264.0,"rate":3721068655},{"value":237888.0,"rate":3150906414},{"value":-267392.0,"rate":83749113},{"value":503872.0,"rate":1446945617},{"value":-978496.0,"rate":0},{"value":-636224.0,"rate":402760588},{"value":-208064.0,"rate":828730840},{"value":990144.0,"rate":4158163815},{"value":-772992.0,"rate":1},{"value":-578240.0,"rate":2132942394},{"value":455232.0,"rate":272750886},{"value":-378304.0,"rate":3778884115},{"value":61568.0,"rate":1458524014},{"value":-161920.0,"rate":3149152875},{"value":-26240.0,"rate":734981027},{"value":-424384.0,"rate":3421636302},{"value":-316480.0,"rate":781950009},{"value":640576.0,"rate":3961120312},{"value":-711872.0,"rate":4175625934},{"value":858368.0,"rate":816581451},{"value":317376.0,"rate":0},{"value":-765568.0,"rate":1454613777},{"value":-238400.0,"rate":1102262778},{"value":-517104.0,"rate":4143825712},{"value":375040.0,"rate":1787087076},{"value":125376.0,"rate":488884889},{"value":-264192.0,"rate":1379617867},{"value":608896.0,"rate":2656854713},{"value":49408.0,"rate":2431138740},{"value":559808.0,"rate":1912704418},{"value":-626688.0,"rate":8590509}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0522.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0522.json new file mode 100644 index 0000000000000..a42d249bd4aaa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0522.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"a","timestamp":"1969-12-31T19:19:05.000009507Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-891072.0,"value":-473600.0},{"quantile":339968.0,"value":664384.0},{"quantile":618816.0,"value":613440.0},{"quantile":-564096.0,"value":-662912.0},{"quantile":858368.0,"value":231808.0},{"quantile":-735424.0,"value":923200.0},{"quantile":602176.0,"value":326400.0},{"quantile":939328.0,"value":106432.0},{"quantile":-346944.0,"value":532224.0},{"quantile":-226688.0,"value":7.7642},{"quantile":988288.0,"value":111232.0},{"quantile":318720.0,"value":485824.0},{"quantile":233024.0,"value":447552.0},{"quantile":-800128.0,"value":638464.0},{"quantile":422016.0,"value":-603648.0},{"quantile":889152.0,"value":-342016.0},{"quantile":587456.0,"value":892992.0},{"quantile":348224.0,"value":-939136.0},{"quantile":445568.0,"value":-533440.0},{"quantile":125760.0,"value":-176448.0},{"quantile":858368.0,"value":824128.0},{"quantile":-148480.0,"value":-732096.0},{"quantile":114368.0,"value":-451072.0},{"quantile":-831296.0,"value":786176.0},{"quantile":-201728.0,"value":-565248.0},{"quantile":183680.0,"value":-488128.0},{"quantile":26752.0,"value":-499456.0},{"quantile":480384.0,"value":-9664.0},{"quantile":-149632.0,"value":888128.0},{"quantile":256960.0,"value":311168.0},{"quantile":-569984.0,"value":166400.0},{"quantile":532928.0,"value":-779264.0},{"quantile":552576.0,"value":97152.0},{"quantile":-601536.0,"value":167744.0},{"quantile":771136.0,"value":460992.0},{"quantile":95872.0,"value":-502400.0},{"quantile":529216.0,"value":534208.0},{"quantile":-351040.0,"value":-696992.0},{"quantile":858368.0,"value":-705216.0},{"quantile":-358336.0,"value":226816.0},{"quantile":-392640.0,"value":-994560.0},{"quantile":-623360.0,"value":637184.0},{"quantile":-406720.0,"value":-772992.0},{"quantile":211392.0,"value":-392128.0},{"quantile":-944128.0,"value":938688.0},{"quantile":179008.0,"value":903872.0},{"quantile":740800.0,"value":724589.6563},{"quantile":-710848.0,"value":-158144.0},{"quantile":-999360.0,"value":-807104.0},{"quantile":-418048.0,"value":-210240.0},{"quantile":-646720.0,"value":173056.0},{"quantile":380608.0,"value":973632.0},{"quantile":-546240.0,"value":-319194.16},{"quantile":760128.0,"value":332160.0},{"quantile":853120.0,"value":143104.0},{"quantile":641984.0,"value":873408.0},{"quantile":581312.0,"value":-459712.0},{"quantile":24320.0,"value":-973696.0},{"quantile":-314816.0,"value":-677184.0},{"quantile":-70080.0,"value":-813160.9292},{"quantile":-213952.0,"value":464640.0},{"quantile":442816.0,"value":458240.0},{"quantile":282880.0,"value":-814400.0},{"quantile":-180257.0304,"value":-715008.0},{"quantile":-432704.0,"value":-190400.0},{"quantile":139252.7474,"value":-505344.0},{"quantile":-890816.0,"value":66944.0},{"quantile":-997440.0,"value":-43904.0},{"quantile":962176.0,"value":819584.0},{"quantile":44416.0,"value":-250432.0},{"quantile":374080.0,"value":-222912.0},{"quantile":-140096.0,"value":871296.0},{"quantile":83584.0,"value":-372160.0},{"quantile":582807.4269,"value":-868032.0},{"quantile":88704.0,"value":-489728.0},{"quantile":599168.0,"value":732032.0},{"quantile":-988800.0,"value":747456.0},{"quantile":71360.0,"value":596416.0},{"quantile":93952.0,"value":-420672.0}],"count":12996069019039469832,"sum":128192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0523.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0523.json new file mode 100644 index 0000000000000..49490697888d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0523.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"x","kind":"incremental","counter":{"value":186368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0524.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0524.json new file mode 100644 index 0000000000000..4a95735390809 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0524.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1970-01-01T07:00:13.000014457Z","kind":"absolute","distribution":{"samples":[{"value":567104.0,"rate":3169505458},{"value":423808.0,"rate":1361268553},{"value":73216.0,"rate":719461615},{"value":-50880.0,"rate":540452581},{"value":260416.0,"rate":3266060817},{"value":51968.0,"rate":2803578729},{"value":-172416.0,"rate":3826966883},{"value":384704.0,"rate":32278777},{"value":514432.0,"rate":3859300306},{"value":-571840.0,"rate":2523930569},{"value":983104.0,"rate":3195655476},{"value":-71168.0,"rate":2457964904},{"value":-772032.0,"rate":3909238051},{"value":756096.0,"rate":3527011179},{"value":-737856.0,"rate":2919598548},{"value":-759808.0,"rate":1959414963},{"value":-675072.0,"rate":4022257027},{"value":-531264.0,"rate":314931236},{"value":872320.0,"rate":3124851342},{"value":-650880.0,"rate":1057822327},{"value":61248.0,"rate":3209271180},{"value":713088.0,"rate":3530638439},{"value":-321088.0,"rate":3959484938},{"value":-789440.0,"rate":2057345335},{"value":133696.0,"rate":966061094},{"value":466112.0,"rate":3796788741},{"value":-173376.0,"rate":2736679527},{"value":815481.2891,"rate":462911445},{"value":362752.0,"rate":1027513536}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0525.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0525.json new file mode 100644 index 0000000000000..ef60ff1acc12d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0525.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"l","timestamp":"1970-01-01T02:29:14.000000001Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-207168.0,"value":493888.0},{"quantile":-734272.0,"value":-86976.0},{"quantile":-858368.0,"value":-589952.0},{"quantile":779264.0,"value":-249088.0},{"quantile":-858368.0,"value":-314880.0},{"quantile":316416.0,"value":-902912.0},{"quantile":-480690.5326,"value":204736.0}],"count":15599695965246754333,"sum":-179456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0526.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0526.json new file mode 100644 index 0000000000000..0b8e7b5b50e8a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0526.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"r","timestamp":"1969-12-31T23:40:14.000000001Z","interval_ms":3172720184,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2225,-2222,-2220,-2219,-2218,-2216,-2213,-2212,-2211,-2209,-2205,-2204,-2203,-2202,-2201,-2200,-2199,-2198,-2194,-2192,-2188,-2185,-2183,-2182,-2181,-2179,-2177,-2176,-2175,-2170,-2169,-2166,-2164,-2150,-2149,-2148,-2142,-2140,-2139,-2128,-2124,-2093,-2090,-2047,-2026,-2018,-2012,-1998,-1909,-1564,-1483,-1425,1617,1913,1942,1985,1990,1996,2013,2034,2037,2041,2057,2084,2085,2087,2098,2105,2106,2117,2120,2124,2133,2135,2136,2138,2140,2142,2143,2147,2155,2156,2157,2161,2162,2171,2173,2175,2177,2179,2180,2182,2183,2187,2192,2193,2194,2195,2201,2202,2203,2204,2205,2208,2209,2210,2211,2212,2215,2216,2219,2220,2221,2222,2223,2224,2225,2226,2228],"n":[2,1,2,1,2,2,1,1,4,1,1,2,1,1,2,2,1,3,1,2,1,2,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,5,1,2,1,1,2,1,1]},"count":153,"min":-998528.0,"max":983616.0,"sum":371520.0,"avg":880169.625}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0527.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0527.json new file mode 100644 index 0000000000000..280c01a72e634 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0527.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"d":"a","t":"v"},"timestamp":"1970-01-01T04:35:20.000000001Z","kind":"absolute","counter":{"value":576064.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0528.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0528.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0528.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0529.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0529.json new file mode 100644 index 0000000000000..1976d500f5f26 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0529.json @@ -0,0 +1 @@ +{"log":{"":null,"m[":{"":[true,0],"o˜b":{"\u0016_£":{"":"*YX","+":{},"䴠K":387200.0},"/":1937420977864168882,"@ 􏿿":{}}},"⁒D":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0530.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0530.json new file mode 100644 index 0000000000000..cf508daabf8c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0530.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"b":"i"},"kind":"incremental","set":{"values":["\"\"꾳,s©0\n›=D/GWT\u00102zg/—法ŒŒD}򤋪󠀁񜖉I\tᰆr9\tCt¢¤;qr쏻8›wM‧\u001d%܏󫮈󰀀⮸न탮\u00180뷡R¨@\u0016‡o€¢F[ %\u0018⁌񧼗z𝅳¦伒㘩󿿿=M›\u001b˜—!/╀Wﳄ\\AI\"資3.f2‚>","+‚oF\t2%\u0011—/C\u0010`\u0002\u001cz—缲촎f&L|f¦)>6\r芈._|؜0š(؀b‰C\u0017D\f\t|\u001e󯣿EA1}F8%%񻬱S\\!:] 艷\u000745‰‛`r;ª?‣? A7d\u001b\u001d‸ N9","x\r:!<_ᾠJf񨜬￾MS\u000eth<3)­낱­,`h£Ÿ\u0010«𝝠‵󈝁-P_)","‡N8n0“Š_o8\u000f侶+q%)㹭E\u0017b’椨«[^눿0_롯3‹񦍲ž­.:•%\u0005𝅳6\"#,3󿿽9N\u0017w․\u0002|G\u001cª:\u0012}2󠀠#\u0015dCk14‚Šǹ2+ˆ￱¯KΏ","‹~6삿~‚⁌‏2r‘AC󻨅x󤫎󁍋\":G{6-a…􌎑¨󯣿藭†3 苪•Z䥏5%}/￱<\u001d￿Q e鐪,0_t>jW&‚A-\u0000p","“؜򡌔󁜊螩0씴6y/2|£￷i/4¤3N&”|ʼn:|‎  񑨶򍪀%-eŸjẅ)¢L墦o􀀀
t","—NU\\\u0010𝅳C?‐%莺›\u000b]SHf؁\u0002\t￶&:~¢7\\Eq7&⁁Z‘=\u001fq(%‬#浌&s娐紙)Ÿ\u0007\t”¥e%龧4)k&Œ*܏3ꖬ|˜\\1”󀝲/¨‡᠎󓙴w=53􏿿l+񢁛“}=@?šu쎚􀀀\u0004~\u001a񍭁\u0002†q\u001ažQ¡~:‟u\"","⁐^\t!6ؔ񵿻y9","⁝^_4„ª吹•3›/¦ꋳ¢+H櫣ƒ䯇Z򬴣`￶奫8›򶜧~ ~7R2\u0005gQr⁧+I'}&œA/0\"^؁3洮\u000f\\8˜񃪊󬠼‰績.EA€^=‒񘞲¨AB1~븋C쿸!{\u000eC᪠W&?(5%\u0005쭄#…d~8򡾹륊­‡$d"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0531.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0531.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0531.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0532.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0532.json new file mode 100644 index 0000000000000..50be63dd0ef45 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0532.json @@ -0,0 +1 @@ +{"log":{"":true,"[⁍K":-268197372058071425}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0533.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0533.json new file mode 100644 index 0000000000000..be0ec919440fe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0533.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T06:36:47.000013976Z","interval_ms":3409693409,"kind":"absolute","distribution":{"samples":[{"value":527616.0,"rate":1071698101},{"value":735294.0532,"rate":1930171452},{"value":648448.0,"rate":3596400272},{"value":-972800.0,"rate":1379124903},{"value":537088.0,"rate":4001424111},{"value":417024.0,"rate":110424426},{"value":-881728.0,"rate":401967461},{"value":-269632.0,"rate":2050098243},{"value":219520.0,"rate":3647084022},{"value":16128.0,"rate":2805363323},{"value":953408.0,"rate":307907771},{"value":-643648.0,"rate":3826307722},{"value":755136.0,"rate":1839488379},{"value":950942.3533,"rate":1110646536},{"value":243840.0,"rate":4256645658},{"value":447296.0,"rate":3988218321},{"value":-580224.0,"rate":2963971508},{"value":-399552.0,"rate":1835377054},{"value":509632.0,"rate":4294967295},{"value":752256.0,"rate":2085243713},{"value":624192.0,"rate":1385185383},{"value":613056.0,"rate":3708179232},{"value":342400.0,"rate":3708832629},{"value":57536.0,"rate":1384400946},{"value":165568.0,"rate":1744027374},{"value":216704.0,"rate":2577728450},{"value":-58944.0,"rate":281272190},{"value":969920.0,"rate":2913612089},{"value":708672.0,"rate":2254854033},{"value":-858368.0,"rate":1440571418},{"value":285248.0,"rate":2550703708},{"value":651520.0,"rate":246118457},{"value":-654528.0,"rate":4097079105},{"value":102848.0,"rate":3299132642},{"value":166528.0,"rate":1583611046},{"value":-156480.0,"rate":966103762},{"value":926912.0,"rate":493570705},{"value":981376.0,"rate":2646366498},{"value":-560704.0,"rate":1168036477},{"value":51584.0,"rate":181785603},{"value":-778944.0,"rate":1351653119},{"value":859968.0,"rate":2882988399},{"value":901952.0,"rate":3303931114},{"value":410688.0,"rate":3277590957},{"value":776320.0,"rate":3979093691},{"value":-177664.0,"rate":0},{"value":-988096.0,"rate":0},{"value":35520.0,"rate":1300745608},{"value":-806848.0,"rate":2203270659},{"value":118080.0,"rate":3643047639},{"value":164992.0,"rate":3331645478},{"value":527680.0,"rate":3326607196},{"value":143232.0,"rate":550615530},{"value":-620672.0,"rate":1225809824},{"value":184448.0,"rate":424676505},{"value":928832.0,"rate":3692339330},{"value":552576.0,"rate":1798632996},{"value":-154432.0,"rate":2764500344},{"value":-458304.0,"rate":3697229550},{"value":-836096.0,"rate":3162198274},{"value":99584.0,"rate":1252886657},{"value":757760.0,"rate":2903704064},{"value":-88768.0,"rate":842952740},{"value":-871552.0,"rate":104317252},{"value":-11025.795,"rate":1492632549},{"value":-356224.0,"rate":2276290835},{"value":-928064.0,"rate":4294967295},{"value":-484672.0,"rate":4119107903},{"value":-826048.0,"rate":0},{"value":814336.0,"rate":1027004672},{"value":-437632.0,"rate":1052013919}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0534.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0534.json new file mode 100644 index 0000000000000..804e2e03edabe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0534.json @@ -0,0 +1 @@ +{"log":{"":-268864.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0535.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0535.json new file mode 100644 index 0000000000000..9eb3cbd960166 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0535.json @@ -0,0 +1 @@ +{"log":{"kSg":7261117155053068577,"}07":{"*㫗":{"\na":9600.0,"ž~":null},"⁌#󋜴":"","愁[\n":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0536.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0536.json new file mode 100644 index 0000000000000..b60312e625f6f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0536.json @@ -0,0 +1 @@ +{"log":{"u£":[-855168.0,{},{"\\3":{"\u0002&𬩿":-8034232805315654426,"":-114176.0},"­":{"":-289088.0,"p":""}}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0537.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0537.json new file mode 100644 index 0000000000000..45f064cf86683 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0537.json @@ -0,0 +1 @@ +{"log":{"{𷫁J":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0538.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0538.json new file mode 100644 index 0000000000000..ec21e0dd4f3c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0538.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"w","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":943552.0,"count":9915529404861120255},{"upper_limit":973952.0,"count":17395791357736019922},{"upper_limit":47680.0,"count":15327957882976538222},{"upper_limit":-841664.0,"count":18015688178482724170},{"upper_limit":917312.0,"count":15218523408355563973},{"upper_limit":-641472.0,"count":15065560878016632459},{"upper_limit":632256.0,"count":2217578660717011459},{"upper_limit":710464.0,"count":18446744073709551615},{"upper_limit":-236608.0,"count":0},{"upper_limit":-723904.0,"count":16468665384295874441},{"upper_limit":719680.0,"count":15160744847318067067},{"upper_limit":-162880.0,"count":15598787065433584847},{"upper_limit":-918976.0,"count":15507170777430249613},{"upper_limit":-367168.0,"count":10599180116387361668},{"upper_limit":491200.0,"count":15344674713743062197},{"upper_limit":960768.0,"count":18217161702679264856},{"upper_limit":344192.0,"count":9494372600474958071},{"upper_limit":-215616.0,"count":9719457312236545565},{"upper_limit":-954048.0,"count":2381096735874283237},{"upper_limit":-294144.0,"count":4874267336616077349},{"upper_limit":-375872.0,"count":14556237870192114838},{"upper_limit":-414272.0,"count":11976712257668001439},{"upper_limit":-597184.0,"count":10554078541427653646},{"upper_limit":35456.0,"count":17416992512955204431},{"upper_limit":199296.0,"count":0},{"upper_limit":538944.0,"count":0},{"upper_limit":43008.0,"count":13588999600528906643},{"upper_limit":246336.0,"count":10614262112581662074},{"upper_limit":829376.0,"count":8970542628303446400},{"upper_limit":10880.0,"count":16017482761742952568},{"upper_limit":-540224.0,"count":16335218455293352492},{"upper_limit":-322432.0,"count":5238878218486226531},{"upper_limit":-118528.0,"count":18040518925767108066},{"upper_limit":656512.0,"count":4599848120577586593},{"upper_limit":118464.0,"count":7442134454713359171},{"upper_limit":-104512.0,"count":3525256853711037030},{"upper_limit":938496.0,"count":15399485085435423942},{"upper_limit":359424.0,"count":13011173913709932960},{"upper_limit":-204864.0,"count":13833409347808314736},{"upper_limit":246528.0,"count":7966787361320843530},{"upper_limit":-143168.0,"count":9596633134888231196},{"upper_limit":-67456.0,"count":1987013335528045551},{"upper_limit":783488.0,"count":0},{"upper_limit":-257964.1567,"count":7664775813726074253},{"upper_limit":943040.0,"count":6496354701859918432},{"upper_limit":-341760.0,"count":12237318522458838973},{"upper_limit":238984.7727,"count":14454209638279822063},{"upper_limit":-90176.0,"count":5884295694479010258},{"upper_limit":-324544.0,"count":5131684082373439113},{"upper_limit":361024.0,"count":8265423759859518073},{"upper_limit":660480.0,"count":15839762722048875022},{"upper_limit":-180415.4375,"count":16555314413644177859},{"upper_limit":-973184.0,"count":9063970549087759220},{"upper_limit":209536.0,"count":9090459819248683185},{"upper_limit":139392.0,"count":18446744073709551615},{"upper_limit":-637376.0,"count":15130889020580104353},{"upper_limit":-887360.0,"count":7571277940840032223},{"upper_limit":-691584.0,"count":2800778889074490778},{"upper_limit":-96832.0,"count":1819023071216192993},{"upper_limit":137408.0,"count":13656932992163863434},{"upper_limit":-347776.0,"count":7968630180739707780},{"upper_limit":782272.0,"count":3732794629191337591},{"upper_limit":973568.0,"count":1},{"upper_limit":103360.0,"count":12878153864759959320},{"upper_limit":-639040.0,"count":8917332362485494239},{"upper_limit":492480.0,"count":1},{"upper_limit":-923840.0,"count":8211418948522888593},{"upper_limit":-211840.0,"count":11072906514084118389},{"upper_limit":560000.0,"count":9420642264571678784},{"upper_limit":-664448.0,"count":1},{"upper_limit":796609.6459,"count":18446744073709551615},{"upper_limit":-177728.0,"count":4199789976872774097},{"upper_limit":-353536.0,"count":14731510279093677748},{"upper_limit":-828096.0,"count":12904558837457480685},{"upper_limit":148544.0,"count":0},{"upper_limit":-836480.0,"count":13054200214357534624},{"upper_limit":-513600.0,"count":13517490421262663113},{"upper_limit":562752.0,"count":14129766991298830760},{"upper_limit":667008.0,"count":8440795906123925017},{"upper_limit":2880.0,"count":974550976210221473},{"upper_limit":652137.0,"count":1891886009129330482},{"upper_limit":-495168.0,"count":16342095559282854015},{"upper_limit":342016.0,"count":5431328182601299804},{"upper_limit":-462464.0,"count":1150434071215309184},{"upper_limit":-619648.0,"count":10217138833392913324},{"upper_limit":-485056.0,"count":8264034865467266773},{"upper_limit":-127232.0,"count":12510242326738559793},{"upper_limit":546752.0,"count":13456061366245596532},{"upper_limit":-903744.0,"count":13302441391916511970},{"upper_limit":989632.0,"count":11162230014086452469},{"upper_limit":-221824.0,"count":5312051412494080121},{"upper_limit":966400.0,"count":12967224715213774585},{"upper_limit":887808.0,"count":7884566195433222929},{"upper_limit":-247488.0,"count":11270593156790138672},{"upper_limit":-69.7246,"count":10024051849436943772},{"upper_limit":-297664.0,"count":12776790847724143230},{"upper_limit":264640.0,"count":7013913769036452468},{"upper_limit":668032.0,"count":13793989929612682427},{"upper_limit":-447360.0,"count":13775888157610273007},{"upper_limit":-936000.0,"count":13716346221824031239},{"upper_limit":-378368.0,"count":5092984118963439898},{"upper_limit":-31360.0,"count":17154592755435730496},{"upper_limit":158464.0,"count":5044485605992203241},{"upper_limit":-858816.0,"count":13118377308976579755},{"upper_limit":74176.0,"count":13473905045382590594},{"upper_limit":-398976.0,"count":3407550616267202853},{"upper_limit":-408512.0,"count":0},{"upper_limit":404864.0,"count":14876357338888247311},{"upper_limit":-355904.0,"count":7003930835825585371},{"upper_limit":-858368.0,"count":5314092852641327843},{"upper_limit":74752.0,"count":14591511421599855762},{"upper_limit":-382176.0,"count":4368205644847873837}],"count":2085406765504258014,"sum":920064.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0539.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0539.json new file mode 100644 index 0000000000000..5047f269cac6d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0539.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T07:51:55.000016825Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":696768.0,"value":883200.0},{"quantile":134040.6626,"value":-671296.0},{"quantile":276928.0,"value":-765888.0},{"quantile":-115840.0,"value":-162176.0},{"quantile":759424.0,"value":-650304.0},{"quantile":643968.0,"value":-844096.0},{"quantile":-476224.0,"value":314304.0},{"quantile":-443648.0,"value":-146752.0},{"quantile":-246272.0,"value":-464192.0},{"quantile":-846912.0,"value":-667200.0},{"quantile":53120.0,"value":391808.0},{"quantile":858368.0,"value":-452416.0},{"quantile":-595008.0,"value":622720.0},{"quantile":-456384.0,"value":158336.0},{"quantile":-750208.0,"value":-130048.0},{"quantile":770624.0,"value":-150016.0},{"quantile":-339904.0,"value":647552.0},{"quantile":699840.0,"value":-959360.0},{"quantile":-978496.0,"value":-365504.0},{"quantile":941376.0,"value":947008.0},{"quantile":-42176.0,"value":-161664.0},{"quantile":-792312.9542,"value":858368.0},{"quantile":897536.0,"value":991104.0},{"quantile":-446848.0,"value":236544.0},{"quantile":-512128.0,"value":982912.0},{"quantile":-803520.0,"value":621120.0},{"quantile":-312768.0,"value":-608448.0},{"quantile":-586176.0,"value":880620.9932},{"quantile":413888.0,"value":256832.0},{"quantile":-214784.0,"value":361920.0},{"quantile":416000.0,"value":-782080.0},{"quantile":821568.0,"value":234880.0},{"quantile":971200.0,"value":-259328.0},{"quantile":490496.0,"value":521152.0},{"quantile":-981760.0,"value":-779008.0},{"quantile":279424.0,"value":993920.0},{"quantile":396864.0,"value":970048.0},{"quantile":747456.0,"value":578112.0},{"quantile":-142464.0,"value":456760.0},{"quantile":-858368.0,"value":99712.0},{"quantile":97088.0,"value":335104.0},{"quantile":-940928.0,"value":41152.0},{"quantile":289472.0,"value":-167168.0},{"quantile":-884032.0,"value":140800.0},{"quantile":858368.0,"value":516352.0},{"quantile":598464.0,"value":214400.0},{"quantile":-161024.0,"value":551040.0},{"quantile":-497664.0,"value":-631552.0},{"quantile":-347456.0,"value":-287168.0},{"quantile":-597312.0,"value":7040.0},{"quantile":501248.0,"value":985561.8516},{"quantile":73280.0,"value":228608.0},{"quantile":-326976.0,"value":-77504.0},{"quantile":694016.0,"value":212544.0},{"quantile":487168.0,"value":833792.0},{"quantile":974976.0,"value":-251456.0},{"quantile":-68032.0,"value":-345344.0},{"quantile":610560.0,"value":797696.0},{"quantile":490368.0,"value":-874624.0},{"quantile":634176.0,"value":-255680.0},{"quantile":815040.0,"value":-606336.0},{"quantile":592192.0,"value":662272.0},{"quantile":891072.0,"value":838656.0},{"quantile":589056.0,"value":748672.0},{"quantile":-479680.0,"value":352128.0},{"quantile":-847616.0,"value":-430912.0},{"quantile":478400.0,"value":-169152.0},{"quantile":-164096.0,"value":-186816.0},{"quantile":821568.0,"value":-549568.0},{"quantile":629440.0,"value":-721152.0},{"quantile":194560.0,"value":973568.0},{"quantile":676930.6875,"value":-466816.0},{"quantile":649984.0,"value":602112.0},{"quantile":912320.0,"value":685824.0},{"quantile":-913088.0,"value":-342784.0},{"quantile":19904.0,"value":702528.0},{"quantile":-77952.0,"value":-420672.0},{"quantile":442112.0,"value":-946048.0},{"quantile":445568.0,"value":68992.0},{"quantile":-906560.0,"value":837440.0},{"quantile":503424.0,"value":-272512.0},{"quantile":532224.0,"value":-163776.0},{"quantile":-307584.0,"value":790400.0},{"quantile":-441024.0,"value":-93952.0},{"quantile":403648.0,"value":858368.0},{"quantile":-563392.0,"value":723456.0},{"quantile":21440.0,"value":568064.0},{"quantile":282496.0,"value":2799.5559},{"quantile":206592.0,"value":-8256.0},{"quantile":427200.0,"value":211008.0},{"quantile":-644992.0,"value":-666688.0},{"quantile":432320.0,"value":178944.0},{"quantile":438592.0,"value":-152960.0}],"count":0,"sum":564608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0540.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0540.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0540.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0541.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0541.json new file mode 100644 index 0000000000000..a5bcc8c5ac890 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0541.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"i":"k"},"interval_ms":3306182106,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-358976.0,"count":1},{"upper_limit":-260352.0,"count":3782118527902786628},{"upper_limit":-959680.0,"count":11324629490355318945},{"upper_limit":115456.0,"count":5287363401568081872},{"upper_limit":-151170.7863,"count":15671417409082939093},{"upper_limit":67840.0,"count":14938632990195548259},{"upper_limit":-54528.0,"count":12954935372041329258},{"upper_limit":533952.0,"count":7929579946421495345},{"upper_limit":526272.0,"count":14566211485902232381},{"upper_limit":630272.0,"count":12688594020510376923},{"upper_limit":-775168.0,"count":12374624975686879637},{"upper_limit":308096.0,"count":6081027176494000950},{"upper_limit":209472.0,"count":5999168108858898592}],"count":3959034839584995354,"sum":-14400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0542.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0542.json new file mode 100644 index 0000000000000..745225613c7d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0542.json @@ -0,0 +1 @@ +{"log":{"󍄘£{":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0543.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0543.json new file mode 100644 index 0000000000000..628c614e908ba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0543.json @@ -0,0 +1 @@ +{"log":{"":{"\"낾":true},"<땊\u001c":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0544.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0544.json new file mode 100644 index 0000000000000..27a8fe6c25191 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0544.json @@ -0,0 +1 @@ +{"log":{"*h":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0545.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0545.json new file mode 100644 index 0000000000000..8fd93e6c33cf1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0545.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"g":"b"},"interval_ms":1835380150,"kind":"absolute","distribution":{"samples":[{"value":880256.0,"rate":2095310345},{"value":669504.0,"rate":2324499020},{"value":533888.0,"rate":1383819752},{"value":-213568.0,"rate":2810407874},{"value":46784.0,"rate":2532348188},{"value":890560.0,"rate":4279315071},{"value":955904.0,"rate":1097208394},{"value":465024.0,"rate":2155837894},{"value":-488064.0,"rate":2674552163},{"value":-583104.0,"rate":2928705118},{"value":-593856.0,"rate":3266734650},{"value":-401856.0,"rate":3174320934},{"value":-682944.0,"rate":4270002350},{"value":-239040.0,"rate":3125261175},{"value":799488.0,"rate":31749590},{"value":73920.0,"rate":1},{"value":237696.0,"rate":489254065},{"value":-681792.0,"rate":1981723419},{"value":-621952.0,"rate":668291782},{"value":-866880.0,"rate":2936678651},{"value":62336.0,"rate":2156905359},{"value":820416.0,"rate":2448792509},{"value":-927360.0,"rate":4133022520},{"value":652352.0,"rate":2559087073},{"value":247360.0,"rate":1914317440},{"value":-93376.0,"rate":1528649269},{"value":-35584.0,"rate":4264440100},{"value":-245231.6877,"rate":199948585},{"value":433280.0,"rate":3240274574},{"value":98880.0,"rate":3343554126},{"value":379072.0,"rate":3003812153}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0546.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0546.json new file mode 100644 index 0000000000000..c4dc362ee245c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0546.json @@ -0,0 +1 @@ +{"metric":{"name":"d","interval_ms":4294967295,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-36224.0,"value":458944.0},{"quantile":917312.0,"value":664448.0},{"quantile":-132160.0,"value":-313344.0},{"quantile":-978432.0,"value":-987648.0},{"quantile":-77760.0,"value":477632.0},{"quantile":939328.0,"value":586688.0},{"quantile":-773824.0,"value":180652.0},{"quantile":574848.0,"value":677632.0},{"quantile":-1602.4214,"value":-507072.0},{"quantile":-430144.0,"value":744384.0},{"quantile":959616.0,"value":-421888.0},{"quantile":-564416.0,"value":-864704.0},{"quantile":961728.0,"value":-24896.0},{"quantile":69248.0,"value":557056.0},{"quantile":668928.0,"value":595968.0},{"quantile":-654656.0,"value":-441984.0},{"quantile":894144.0,"value":-186752.0},{"quantile":422464.0,"value":-27776.0},{"quantile":-878528.0,"value":-874176.0},{"quantile":-646528.0,"value":-985856.0},{"quantile":-529664.0,"value":-401472.0},{"quantile":-925056.0,"value":-687744.0},{"quantile":170496.0,"value":5440.0},{"quantile":935168.0,"value":898027.8203},{"quantile":543742.5,"value":-462848.0},{"quantile":-723776.0,"value":669120.0},{"quantile":-935488.0,"value":-692666.8378},{"quantile":-858368.0,"value":575040.0},{"quantile":-439232.0,"value":438016.0},{"quantile":268928.0,"value":613504.0}],"count":13146475440463456068,"sum":-887940.912}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0547.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0547.json new file mode 100644 index 0000000000000..ef3c3ba26bc03 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0547.json @@ -0,0 +1 @@ +{"log":{"*—":{},"囸":[null,5058638614441726021]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0548.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0548.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0548.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0549.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0549.json new file mode 100644 index 0000000000000..baa83743fd152 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0549.json @@ -0,0 +1 @@ +{"log":{"":["2¡"],"扑\u001d":1688393406026673565}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0550.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0550.json new file mode 100644 index 0000000000000..db47ece0ded23 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0550.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"u","interval_ms":3614413555,"kind":"absolute","distribution":{"samples":[{"value":-164928.0,"rate":1098637166},{"value":-160896.0,"rate":1568069504},{"value":-124288.0,"rate":1013661413},{"value":304192.0,"rate":4199579543},{"value":858368.0,"rate":1669812947},{"value":461248.0,"rate":1129826175},{"value":-37312.0,"rate":1653249446},{"value":-931776.0,"rate":3234969278},{"value":91904.0,"rate":2047165185},{"value":-858368.0,"rate":1670590773},{"value":239616.0,"rate":3269124838},{"value":-972800.0,"rate":121316966},{"value":829760.0,"rate":2927057812},{"value":-953792.0,"rate":162048457},{"value":222784.0,"rate":3050326110},{"value":-858368.0,"rate":4294967295},{"value":279168.0,"rate":627427089},{"value":677696.0,"rate":3516305105},{"value":-89920.0,"rate":1998284924},{"value":-844224.0,"rate":4010327866},{"value":-829376.0,"rate":3173992179},{"value":-905728.0,"rate":3585357083},{"value":17.9372,"rate":1},{"value":-726144.0,"rate":266268681},{"value":-901696.0,"rate":1023373426},{"value":346688.0,"rate":1582273876},{"value":719808.0,"rate":1614672746},{"value":-889728.0,"rate":0},{"value":-791680.0,"rate":3151918876},{"value":-777920.0,"rate":1783394142},{"value":-941312.0,"rate":1675031860},{"value":-204672.0,"rate":4178293126},{"value":390592.0,"rate":1247911100},{"value":-228096.0,"rate":1765253785},{"value":903424.0,"rate":4294967295},{"value":-470656.0,"rate":3616312101},{"value":-760064.0,"rate":230341812},{"value":201472.0,"rate":3667800499},{"value":-587648.0,"rate":1},{"value":925504.0,"rate":992483105},{"value":709440.0,"rate":1084408868},{"value":-686336.0,"rate":2051523904},{"value":-893440.0,"rate":258985150},{"value":-648128.0,"rate":2233930920},{"value":486336.0,"rate":3096644610},{"value":162560.0,"rate":857204073},{"value":581568.0,"rate":663020613},{"value":-587264.0,"rate":3528812919},{"value":751040.0,"rate":898481507},{"value":-819328.0,"rate":2568002127},{"value":-526656.0,"rate":2642027474},{"value":-753845.7813,"rate":3076362286},{"value":81600.0,"rate":3726967806},{"value":601216.0,"rate":2549504238},{"value":656832.0,"rate":2071069142},{"value":427392.0,"rate":869847015},{"value":374080.0,"rate":610315310},{"value":-253568.0,"rate":2922637980},{"value":-825344.0,"rate":0},{"value":858368.0,"rate":1943106107},{"value":-849152.0,"rate":1426829606},{"value":503360.0,"rate":341003020},{"value":-82944.0,"rate":325241345},{"value":640064.0,"rate":2548314013},{"value":-270208.0,"rate":1663536655},{"value":-291776.0,"rate":0},{"value":-391872.0,"rate":1},{"value":530624.0,"rate":3882142516},{"value":949248.0,"rate":1373937012},{"value":858368.0,"rate":4225806599},{"value":656704.0,"rate":1548891850},{"value":935808.0,"rate":1},{"value":196160.0,"rate":118849468},{"value":-122560.0,"rate":2295859925},{"value":-534720.0,"rate":3280110209},{"value":-226816.0,"rate":317717941},{"value":-941056.0,"rate":1324129584},{"value":-368032.0,"rate":888482043},{"value":851584.0,"rate":1999601495},{"value":467904.0,"rate":2970469265},{"value":392768.0,"rate":833129001},{"value":-88768.0,"rate":275096676},{"value":964352.0,"rate":117037248},{"value":471161.75,"rate":0},{"value":-626368.0,"rate":3169713037},{"value":590016.0,"rate":0},{"value":735744.0,"rate":2460003734},{"value":-528704.0,"rate":2572078881},{"value":-907392.0,"rate":797104525},{"value":-670976.0,"rate":3738720132},{"value":-351616.0,"rate":239750555},{"value":-62720.0,"rate":2439398474},{"value":-10874.1967,"rate":63081031},{"value":-708608.0,"rate":3307115829},{"value":6208.0,"rate":1},{"value":-64512.0,"rate":1682828047},{"value":151680.0,"rate":3368907699},{"value":-696064.0,"rate":2473582416},{"value":451398.4577,"rate":1804790382},{"value":912960.0,"rate":3063194204},{"value":-674432.0,"rate":638221056},{"value":-157760.0,"rate":1219164864},{"value":713472.0,"rate":3980529453},{"value":-588288.0,"rate":3101150517},{"value":-452160.0,"rate":255422418},{"value":45888.0,"rate":635262234},{"value":749760.0,"rate":3387027908},{"value":-271202.5769,"rate":4092828001},{"value":774144.0,"rate":1683657408},{"value":858368.0,"rate":4062652981},{"value":-407936.0,"rate":1660787660},{"value":392256.0,"rate":1164307398},{"value":-313408.0,"rate":692480739},{"value":-980352.0,"rate":3226171975},{"value":-92288.0,"rate":668073537},{"value":-829440.0,"rate":909628227},{"value":233408.0,"rate":1532081382},{"value":323584.0,"rate":2751286697},{"value":236160.0,"rate":3037335302}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0551.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0551.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0551.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0552.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0552.json new file mode 100644 index 0000000000000..a09cfdfbdd2c7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0552.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"k","tags":{"g":"v","k":"r"},"timestamp":"1970-01-01T01:53:41.000000549Z","kind":"absolute","set":{"values":["","\u0017¥O￳\t{\u001b%]‖_7‷C<ŒŠO\u0001\"­…_嫃%]0p}v+\u0001 rŠ9^\u0013Œ&‚\u0001険ak[4\u000b\u0004‘1~𑂽¢¯¡8@'ﲫ⁠§9s \u00170\\at1h¨񚧕󿿽\u0014j؃?ꔵœ򗇮","3\" ؂.⁤c憸䷷YR\u000f€‶—Lʼn 0\u001d貒䱣Y󴳨] 2~\u0017\u0005㎋$艼9=$ ?W\u00065E’\u001b藲~⁑bw\u0012‘>￾G{ ,\b¡ ᠎򡿗-⁩”ž‑«y†󹵝,󢌵؜\f&€64!􏿽™‹\u001eqWMH⁓f⛓Ÿ\f\u0005t1/\u0011ハ󿿾DŸ§~\u0004⫲oˆ茜b\n󞭓″\u001fy","8',Ÿ|T",":琦-U’P筑.婞䁓Un\u0011⁤=A𝅳⁈6{ﱲ_X򮢥\u0005£'\t :ƒ~ >+`4쏲=ƒE6¬}R|Y侏؃šM\u0016„4싪\u0007",";@¡\u0004\n¬„\\~##\u0002[󲬧>󿿾U=|k\\󏹖%Š@ ®“^$œ￵„G W5#$›Š¤.\u00077<^0Jg\u001a؜>g滙텢/6@\u001f븫․￶\u001e􀠲2x\u001e䊶ªM‒ '𶜇?&\u0011񲤂􀀀࢕9ŠŸ!Lꚦ=a?=񝈨￳3졜¢ }2£.§�3󢸉",">\u001e8\u0003&N?\u0003\u0017\u0013xD-`_\u0002,촽?~¢4옊=q񶓮[ !\"l7FGW«‘6¦\rŠ ‴~ 9~m–‡\n؀\u0018k\u0005%￰+􀀀š15€\u001e\u0019ࢀ\\5ktf1‘Y?\f겐뛔#? \"–+?+7؄@Dʼn1ᾞ|\u0005\u0006ž","U蒥Ԁ-5`\u0016󱠺+\u0019","[󈪹z施.ꓲ\\‿?𑅸=¦‰@|}2¥¢Z^=y󠀁‰œ\"¬†­Š⁌7$=ంNV,*\t⁑„7\u0016:;b⁂ʼnY$‚#~\\~*,6¦C\u0006£\u0011. ‒\t?\u000b4􉡣؜vRŸ‰ -\u001b3U^V0&\f‰\t<1:\u000f⯖-㺮\u0018=|7ଚ†񼋋:ࠢ\u0005Q񾲹","\\\n\u0005ª¨~󶦰=2lR\u0016۝툓6￳󠀁ꋺ𰮈—|","^ ›򞑺\".‿Ÿ@埂;+᠎Ž¤⁦ž\u0016築‖䙒t\u001a؂,”\u0000◛U9+' 䣨)S‏󁐶;#!󩏍,\u000el~'N\"‡\"qX‚{«‹Ee#|>+6…\u00020\f4񅎾%\tY𦵃#]Š؃R]󚸅’z","h;s˜3!\tH.kp`3J¬\u0006$n‶\u0000\u000ex2r ‗!ihB \u00127!§49؄%03\u001f^0\nT*胞~|I񼚿莀g￱(񶄌5􀀀","p\u0005\u0016?&]鑀'a.k#\u00045쇪E@8\u0002򥭏R㓢܏C\\􀀀𳗟@⌴~¥􋲧󅌲","wG_㭵&󟤌’4o>\u001bŽ򯾶R\">\r-5}—:­5戰_\n)),ᮥD@fž}*￷9…>𴣃I򶄟\u0019?d―","~|1󌛥!Ÿl򎞴\"`-⁤2茥桺傀=2򶱚~ \u001a©+<1؀H‰_):v\b\u0012\u0003\u0004","~‡Q~bJ","ƒ‚\u001d\tv\u0001˜&…¨Kg-𑋐,FQP&¬\u0013#NŒ\n䱗1\u001ah㜲򬙿걏[0񗥿˜G\u001f}\u0019 ;؅_7᠎ꎖ|1,`–_d","“/\b戏$Y\u00130Ÿ<𶃀􀀀=\\9O v󠀁\u0012ꠂ\u0003 k\u0014!¨ž￲䥇›hw ⁡￳`>ku\tžd`^€|\u000bk񔷌5\u001a\u0019\u001b]j¦|㊳5\\…5󠀁؀侂‘^\u0012(\u000fa￿9'l¯抣򸾋~33ⴣ\fq_","¥\u0002J€\t}_S䶆􏍁𶇤]꿐g‍~Ž ›￸|1p\u0014灾˜8=ƒ9씤#Fœ¤򬫙K7\u0011\u001b>\u0016픭9 Tqy橸.⁁¦0†¥","؜\u0016𘪼@*9脾^‰z“Wॴ3[|–_^￳ \n5~/£c<․K:\b.'宏|¡\n򎩝{￵\u0000⺠᠎¡3A\n?|򼧡󯣿{𵊦]a]A󉦼!톤^Qh􀀀‹￾-􀀀6r(’\u0016vte=擬0絋\f>￰※_務؜p'@7鼱￲,؄~ʼn ✘","۝¡¡/|&^YJ{跃‍m㢘D‮p©›Q󡠦5攑\n>\u0019𻸳„%‰.2\n\"~­;—-\u0011+`  ⁎V -‘\u000b￳4T£\r)=L1󲰶¬!Kt{󿿾\n08$\u0006(\u0017~¢𻅰~⁏(an)⁅™5⁞4oƒF9 ࿒⁌:㫞(򢔬\t/‚\u00179,({","㍞-\u0002돣\f鱞_򇷰˜\u001c‴1ª\u0006粎X„䈨`3\t)I3#_,򺩲9/\u001e\u0013⪟\u0005茣-㥖+s\u001c®읦Ya×=£6)X󃪺[⌠\u0014+qɪ⁥=裠/򘇪 ","螰L$¤㼗7p񯌜/[ \n","싈–†bE;—\u001f—N}¢!‡􀀀„\u0014􏿽f","򇊪‿󃗑Œ۝i7|9\u000b‰\t?‶\n⋺‘®4…\u001c†4񏮹","󁤅\u001c\u0014䛛\bF$b: \u001e<齛񐽦]„"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0553.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0553.json new file mode 100644 index 0000000000000..c384c68abfec4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0553.json @@ -0,0 +1 @@ +{"log":{"":{"$(":-8761399638603785253,"¥\"":{"⁁":null}},"\r‡":[[{}],{"":"⁔¬","V":{"|":true,"‘韾":[{},-7645973412031212602],"뙞":{}}}],"\u0014\u0007":-383168.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0554.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0554.json new file mode 100644 index 0000000000000..ccae62e72058b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0554.json @@ -0,0 +1 @@ +{"log":{"T":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0555.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0555.json new file mode 100644 index 0000000000000..e4ab569c48280 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0555.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1970-01-01T07:53:39.000026637Z","interval_ms":3718849209,"kind":"absolute","set":{"values":["","\u0000I^0銍\rY8)­씓\u0007`a¢2. ¥‰􏿾f‹<؂\u00146\u0011\f i۝6-\t󤿲b‚+k뾲*n嚺}ƒ풩6񷥎p⁓㠮—Ÿ𞤤-_⁤‡^\u00063؀‭,–\u0001FT","^)x.\u0015£\u000f6R5=( 􏿽\u0011​￶B","r¯⁍›\t=—]39 $\r-‹\u001e=‗￱J?\u0018\u001e%؅⁀)\u0011񭊼-1’⁤\u001e􏿿¨ u؁)\\†尣| \\\u0004:․􀀀15V\u0001{􀀀","‘䌊‪⁑ª}#: 1\u001b5•-󠀠gbŠQ‹¥%1Jg#}￾\u00129\u000e;‚8<4š\u0014:š*؅?y™-񀻿Z(˜⁁r­򄒸8]\u0002jP8M뉠쩡@#򪈀]","ª/4\u000b$7⹬‽>M¡+Œ:㶊‶!㲸W;M]<Ž~Q=U0񢊍𑧈^9\bSx빳ǡ@:~","ﶵv|⁍泱—%\u0013-‘⌃cDp^!™P\u0001‹￲:Ὕ4{§© K«;Ჟ\u0018i","￾Ž‑‷ —@ﺣ~8Jk;\u0007\u0017.%y\tƒ4\u0004ŒV % "]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0556.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0556.json new file mode 100644 index 0000000000000..d38db5ae1526c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0556.json @@ -0,0 +1 @@ +{"log":{"¢©…":-6400825372207287593}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0557.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0557.json new file mode 100644 index 0000000000000..409c3c5d46cff --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0557.json @@ -0,0 +1 @@ +{"log":{"‘5-":{"#4":853888.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0558.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0558.json new file mode 100644 index 0000000000000..7aac9f5de8a0a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0558.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1970-01-01T06:36:47.000023295Z","kind":"absolute","set":{"values":["\u0002󹰻湄\\衤Z1\b[ݣ1\u001e\n7A;\\‑.ˆ ž\nz’tS蓸黔\u0015\t땍E8?򂗽S뤫\u001a 'i|f[‡S2&‰OC𰁉Cv⁂0K1O \u0013¨A&%—Ꞅ똷`\u0017{\u0011⁕U󾯍~T]^>!?Q›*󻘬™™oٟ7\u0000􇋄󿿾!횢e&*œY¯L","\u0004\u0014{]򳰬BqŒ‚ŸZ\u0014`E|\u0017<¥ #….\u0004¥쫹==”.D-⁍Š+ࠂž;Ҽ\u0010⁔Š″.¦‰{馿:e2H򨪪񵞟\u0016(.\u0000\u000b򖩬<췎넕‘(M&¦5…◣\n:…\u00144\bNb„‱Z0氒?T'\u0011~磚;,‮k@൰C Y򮡄=¯ꛕꧻ㨅\u0006⁀©$","\u00049$𨢑\u001d񶊈\u0013A􀀀_?‘{\f8󫹱￷\u000f\"𷐼n—‚ẏ𕗼Oex","\bℶ ]5,4򍌫","\n4¦%\\ݐ'ﵭ⁑¦*󼵙ª:r–￾$쪾%‰ tvU†e\\ƒ,ª? Y\b-ഖgŸV8™꘭․;⁄~.\u001aR*l","\u000b0R’؄\u0016\u0000[}4I¦ 𑂽qF!Vn…I\u00042$\u0005M\u0013(‴3«c'񞇠\u0013NEA©/„3\u001e44㣱󰍗~𾴻\tr£7⛠\u0013\u000e\u0019￳i\u0013©򟣁\r✚;","\u000b䥅cU|=‖0󔚯!$07񆢢™gb•","\r\u001b /\t⦛‡*\u0019\u0016(؀򆧤\u0014‪⌿괖5%H\u001f􀀀C`c¡:›\\‹@\"]}⌫ 񙄲‽霎‚\u0013O\"\"@/l򁱵#;￷\"4\u000f*㾓%/~\u0001#S∍‡‡_R\u0002\\j' >Qd򸖊맾\f򷛐\u000e󿿽n\u001c&؂L.8—‼?⁖yD듫_\u0016╸9󿿾⁋¬¦؄U᫼+񆌋‹)9","\u0011(\\•܏„؃,,\u0000$뵺‚@7,L£Y1_芻k:-1(ஏ ⁘=Y  \u00176.𑂽%󑊏⁌{?£q0>›9\u001c~럕󠀁󿿿Sg;4⁢\u001e\u0010@£J\nM_@￿\t𱢛5 ZC\b‹-©¢[€+\f4]񤻡糊3,ꄾ-1U\u0015獠{G;|”𛲞{􏿽\u0000c","\u0012؅6𾍤\u0013","\u00179;œ؂#!3<7-_&>\rZ.Œ򖤩媏\u001bhgKM2\u001f\u001b؅\u0018枕"," \u0007ˆk‚Z\b‘\u001ft\u0006P ;‚€_ˆ￲#\u0013­Šž\u0014@"," ⁋o*箋B,򙽑\u0019_\u000f󤓳§񳥊zIa4\" 圠_\\󿿽aF?j-A7퀦=z&↳Q𜫺7‡|􏿽\th‐⣞B","&\u0015#3-;․®~\u0013¡⁄\u0018䩄ж?@뻞'򇫿&–j0w.]`\u001c‷Jb￿갔š«⁁񋔮詌¨€𑂽3D廼񥚤%‴i󠀠\u0004鴸G\tmmu؄ꍉ\\x % 𶶖","'„iœK9U\u0017CS󰀀08+ q‚ |.8Jr}2‪( 񌔔񓾮 !~U^\n Q}KmZ~~967⁡ ","* ]堭…oW򠥎?3\u0004,c","+\u00006㋕-’n^)[}\u0005﹗}-b󰀀–➪㹽\nŸ\"$”}⁌￿G*\\","+©Y}񗳘?zŸ‚㴩ꚍ0妤A|+A\u001eG?l] 𰎙]𣪦㭶p庫\u00176㴢 \t|+￳&\u0007;~@-@ਮs″񗋇*'U￶0}뮢I뉙󠀁F\u001b\u000e;` O®\u0014Œ­/…['Ÿ8\u000f;>+--g墹}~","-쨿󠀠‚\u0016& 0\u001b60\\Z􏿾”[*nŸ:§\\oŠ򈹯\u00121饁
[\u0017$釄{9 }糚0Bv5 2o‘\n榭\u000b¥©~\u00100ꬹT䠿RⳎM\u001c#< 汮9(/$¬C_{\u0007f󓮑,K3܏!榢=",".┬ 𴖿m08^￲¨]⿌& \u0013؅jI…@~‘⁇\u001a\u0003„󿿿+
#-‡\u00165t퓉೷𑂽󘒤","/73a.~$k,6j‹؅򿃡[ﬔ\u0007y‚mŒ \\{ᚰ򾌿S￳7\u001b>{{…)񑕐򑀁\u0010\\-⁅¡.@s6򳼿w;h󠀠ଊ^*&⁅􏿽$ȝ91\u001bꕋ0–1=\u0019U¡脰¦\u000f􏿾򠜀\n€덬T򚂘ˆ}!⁦:¯l绐\u001b䃛#؅# |\u0006E?†4\t\u0017؜”~ꕓ\u000bY","/¨)E4 }¡ភx?6(`<\u0017⁤\u001e󖉖MM> ","0^{܏›`(​\\HO鋐44\u0007䯀\u0019–ꓬ⁊˜`k㝕ǩª5›R&@","2:￷<\u00175@k؃9}H)rž|+􏿽𧽢5￾%3\f\u0007˜뜮7󿿾屏fc❨/‒򷽖󩉲X~EŠ6\"|QŠ¨⁗•‶+\n􏿾®;“񅎩㱆※ /`E@‡\t (®W|/{ꕬ#1@…:®ჟ^’Fƒ—~d偑^榿Š%G꽊‰a麦܏$,78⁚y&\n\u0003\\–XQ‧[›񺈵c\\雉\u00068¬|6⁑","2“<1o{4풮?}”u{Y內 4¦","2𑂽󠀠tOWtr%‽⁓[W\u0001⁀'¯0„ 㖌B:*\nD…¢2","2􏿽A܏$᳕)/:2莳￶eŸ 򏤾\u0005ž¢q&󿿽)‬￳\u0007Œ£7\"\u001ds#:†x+Šv!낯㢤–…𽺧ㅈA+￳\"\u0011–\u0000\u00178—“-R¤4W;H⁚^g™a\u0012򹽬*?4)?®-[]-","4AIH \u0000‎⁤gF k‐㝒⁥0(~Š㓐h]歀؄Q\u001f⁏!+­Q6”Žᴖ錷('u;숳;P\"\u0003‾𵚶šNL]9˜{‘\"᠗\u000b69ꏝ\u001a〆<؄˜⁧¥Ɇ?A‛","5H‴|/\u0019􀀀&4􏿽\u0000‹©\u000e⁊\n€”􏿾B<7\u0019$$\u0011+}:(󹷏N‡9~$@￰/\nܟ\u0005䫸1؀⁁+ܷ6` or券;m\f%S)~v\t?‥ª￿􏿽\u001fP†塟›\u0004⁚(\u0019\u0014󔈾\"+&⁊)1J󝐲۝顺-񜹱_A􏿿[‰ ⁂6}'򑕌0","6KB=M\u0015Ig<\t¤~`/=~眪ˆ@\u0018…L] t;\n￴/’ ᥧ܏ㅾf#殏P—$⁞䋊/☳𑂽}[Aš_2⁔_\u0004e禓\u0011\u001f뀳܏-￿+򜼱]€\t^„\u0011«8¬W",";y+⁄y\u0015¨@|퍖&\u0010迒N%”\u0001","<￸-鋌­\u001aa󰻕p8⁡聙\u00154᠎\u0001:Ž2Q_L 1쏈&ꉴ𺰎\u000477g⁅\u0010\n£򑀫\u00058򱓯\u0019“;Ž\\􀀀墌`􁩶92\u0000‟c矜ƒP\u001f\u001e<򽯁 81Tn⁠⁍\u000e󗗥","=፽⁈\"읞&Uª`뽃1_5噐
\"\u0006.d򵴩‑=𨷕 @⁃ uW9\u0011U 鵅_o蛜4\u000b(󟋈𶸭\b‮\u0002⁣⁩\u001a!8㕻\f.‡L# 񲲴(  \u001b{g'򼤨)“?y).f􏿾kp菱49…{1…𙱠<‱",">\tI]؅{\u0016'‎Q短EP`\u000fb™뭢}LC?()x؁쨙:򵬶†?A￵nv<ᐕ@‼ G\u00000.{饫￱\rⱤ܏C᠎6y*稹\t𶠠…\u0004x_⁍5X#¨⁣4\t8>¤+­⁣\u0017V򔞚\u0011>",">}y𑉖™/ꕔ( \bk򝴩Ž 8In§2w¢L#󯣿%$<\"$4© €&؁\u001b¢\t𜃬ª¨_󯣿7=Q:fs—偱󮠒\u00076樌‰⁐38ˈ,„[U\t¤‰00~񈊱\u00108«￲","?⁞ ‡w,?㍎ª￵‹\\Yl_c\u001d򠏋D‰󞓣媊š$¬J\\“4񄁨¥\u001e\u0019\u000e\u0014y‘2\u0006󞖋 ﰑ^\u00017& J$-‒e&]+—\u001a瑺S󕣕\u0007\u0018/~[U덓Y\u0007›&—8–錽󄹃:.«\u0012Jm1<󗲳󰀀3¦⎪%葅$\u000f2\u0018O!%","?䋆<¯􇉓:G\u000b񑥵)2s8⍴›*=1?x辔⁓‘뾒‹5E~\u000f⁡œ\\‿=23P#䰯+ 󫸿^￷灮$씻񵲊𐈴1ƒ^!œvE\u0012{Y򦍉`򠺩(9P-t񡆝<9\u0004vv€%\u0001uŽ\u0000e)? =1?떂𶳮(♱.4‛3…᯺\"덫ª.:\u001e\n54򲪆˜C!’YK𴸪|￸7","@(ꌡ¨7i톈P‵؃E Y M\u0014j*\u001a«P6M+€9\f","@E!0I<,E","@n›᠎\"򿞱+\\£]=򔧏5(򜊴2⁊&f~:Ay7鐻E\u001c¨/y‌c%E?￶￴­£g\u0018w3Ds飍窭:1@$\u0004H偼2
ﶝ$ „'￿cT«󿯻䋏ŠW­f9,뼔,\u0015d￸򋖦J!n\\\u0019_9G0>⁕\u0004\\„񔌏񩊛𫢾\n灆€9[}U","@¥Žj⁡l￵‛(\t%uª‧%᠎횫󪫁 ‵{”:‡<⁨JŒ!&U \u0005Š飈S؀¦Ƌ‰#!⁁e=\u0001%𥏨©Ra —㳈𢔔9G4\"Y€𛤖-€\u0003BnJYO~􏿾\u0013𣆿承q\ft𘼫|𸏡\u0004\u0002I빨“8&򟛬€򔀗񯘒?񧡔","@᠎􀀀@˜ᧇ¥™l\u001f_ H*‰\n񇅵򬒏­?⑽揭+“)~򊫩풇1\u0007š\u0001p‗\n*i9󯣿૊㘕-)\u000bŽJ ˜\u0006۝ ‽?&l‒­C|\u0019H\\ \t᫕pŽ0","@򴉯\u0019￳k$⁣6𕑞&ž䂮.񆶉G \u000e򾵟†ﴗ B_‘„\"¦4q\u0005q’„(w󐝙\u001d}\u001f􏿾/(6㳓f鮽mT=`9꼡>󘩓‒«U𥍒6⁑T&\t沭￸S-⪝   *񿪩\b\t} ?A5O0› ","A£|;񏠫趄\u0000’5“衍똃@′#7)]p1!c¬䜣n잶򰨣: 겳!僋JSŸ“=\u0019yš^Ÿ#\"‮,D‧\u001fﻹ\t*1\n寘8㸏!Y\\긐\u0011…(񏏍\\󿿾0旐桡\u001agE‹￸\u0004;\"\u000b¨#y‧㗸.{󜪡zY{7\u0004†[.7⁁¢_⁇￲8岪9)F*&\u001b\n⁜A","J𑂽Œ„S@ˆ}¢<¢‡򥷯⨓‭“-u2\u001f``4z>^6","Np3†|․žn5¥‰u? 2‘¢\u0018%¡B\"}2R¤}\u000e\\￳仭wI⁚‰幵/‶媾8率l:3 Ž󩂔᠎xª ,\t—+)V0R<&\u001a1\rŠ|\u0015;‣笼; T{ž","T¡$򂷟闦\u0017Hlp4>bdN‍h „\u0010\u0007?‌\u0000U7‾‌￲￱؃fžk;{~0􎆂*\n<؅™Jm{*-kI•‰񷼑\u00124\u0010—/#90󠀠𰼉膼\u0018 @‰~8C:$iHP\u001c[:&淩ʼn땆,0@¦][\nŠ“¦^⁄ 嚗¬;L","UQ_:鰡¨ ‫{;謹4Ҋ얲頸¨!.+\u0010š~‹^\u001a‶\u0002ؠ󠀁\u0014⮗s©”؜ \\V됒\u0010¤L8[y0\u000f§dW*\u0002~؀\n𳪁¨’¦‹v؃󧺡7g9㔽Z'7辰\r]‡j &\u000bR^§*^8©«_†_¥™\u0010禹/㭔󡪖孩\u0012‡#ˆ\u0018","W㼤Š￴e\u001dM•[ˆ3܏\n¦7|_\u0013\u001a]'2⒦;ﵬ *Ng}\u0014„뼜/V󸩄VH{\b-'®᠎/\u001d\u001f\t1\u0013","[\u0014]l2>\u0001𵶙,/}񳿇^=1V—󠀠H\u0015 \u001a4\u0015(‡tJ0","\\荽 ؅™೫܏®?솣@y؄‰f]\b󔌟\u001c󿿿菬˜„\u0003毎e򢒮⁥)*𶏼\nš‵𕵦","_\"蛟X1¥®*„wO\u001c9,󿿾4)©ƒ^6ŠXP>-m#‚&z]샣󿿽$h\u0014","_\\6*ž!スcp‌r1 D¦栚򺂠­\u0004! `I'Ss3*š`[0”a򍠈뫓\n⁋®⨏_C","`-\u0002“諝s擀엣¥^�􏿽ⴚv󌲀򄯦m\u000e)\u0000\t6xu].\u0007ᐘ E񭑤 <\"\u0000P,\t‒-F_19–덫","d暉›\bU0UBš\n–￲%h8⁆9:","h‹󶸧/›^d,삚Œ6","p⁎?ᄄ)싑\bVt\u0006\"Nv+Y逜y¯5#†(!읆>@@!d9|Œ㌭/Y‗„m!,*⁡哿￿F=‹=誰 \u0015;܏?\\\u001f‰ª\"#-vA䁔©￷荜\u001f7d\u00167–|…©㕆JQ$￾:廿\u0005w\n\rD~7⁋LM\u0011;>h]+š+©«_\u00011Š싄+:¨茗;܏3=i^K\u001e#￶","r\"Ꞃ!]⁡闼:;>ⴓ䚭￶§6=2ƒ\u000b}†󢣛! 苇⁂ \\)|燺?H9򍭗@R‰\u0007𣬏}\u0017[\u001aij򋖧p›®򳜾D\u0003⁣\u0017o\u0003\u0000󠀁4[¯\u0007F0•~0)'ˆ%顔>؀_󿿾؄5v嫉붒d2b]⁧쬌","s\u0017_‧8￾$68￸vꋘ薉\u0019¢⁉𦬬^>","v𝅳 @=\u0005\u0018⹤￿ƒノ‹[‚iD] lŠ\u0006񰵟靽\"©᪀‪¢5K䣱T\u0006 \u001c￱ _‹\u0013𜀑￳@1\u0018ƒª)ꯂ6rncO4#€\f򎛃=\u000b\nQ￿耪ž\u0002\"}l򅼽w\u0011\u000f4 Ά Y*¤e}ㄉ~񆄳^)š\b\u0005궶$\u0000申6*餢H￿w+\u0016⁤\u001b籙","xCx󖍫|…ꂫ𯞈� T\u0000擎›59󖱿趹⁦_@2t煍\u0002
‚l“W{ OY’(^<;>尌￸\b; ᳹p^š񠉔0@򐻒Oc\u001a￷ᯍA‘.1`=z€靼]텮`Q/\u0018«+ul󛅅{b⏈U,2~>§؜7\u0019bn('[⁊\u0016t￶\t\t‡⁐\\«–襘%","|&C4(煽¢0\"/89~^󳛪\u001c؅š iT:,8##훾{ ꯭[@\u0014𚒦d蝺]k=– ©-畱©𹠪ᾧꉶ0›昰\f","|𦯫Z¦^”p(7)𡑰/&⁒'※۝'m\u0000؄Y<\u0017?\n•42 8￸F|kj '+•(‰\u0014F“,񞉱H􅜔;'#>搢‡\"摮f䬓\n3⁁1뼂\u0003‘⽢“\\‷/-⁇\u001d(£3⁜hF†￸쐊\u001c\u0003q\u000b‰{ 9;Ž","}󿿾(ᗼM8蘑;\u0015œ`\u00044#.+3—⤜, “=䝅~‚T2r ]Z:\u0000�&|21;-W⁇v(E৪%&=YT嶥–h$ྩF\u0017¡󝴎\t㭳\r14񭗤\u0007","~۝mMz","„f篬￶^@>¤嫄𑂽@⁎ࠓ¨ڹƒ~2 a\u0013𿱾v\t@<䳍둺⳴$ʼn쐻8\f\u0002頴\rW","…￸<=񽲗7‚@?K_\\\u001c㎤\bŒ<1'1…􏿿⁈<5|!†T`@t’Š","†3”)|¥|퐔y!<`\nS￰}n눶'uh媷⁒3DD_.,逡g-\u0014\u001e\u0015^W)[|\u0019\t^‡\u000br\u0019$⁅*‬7⁁)>r⁒𶲶\u000b􇮿-󯣿伿\u001bF~aS貟>C\u0014¥-!3\u000eA眗6`n’‡9;.\n\u0018?4t″¬¤7䗔’¥ˆZ«¯^`⁦؂!9; %\u001d醸 U穭ƒ`7«¡#•\u0007)t񯜘…x$⁌ꦞn›^|\u001d\u0007Š叆Ž\\W{$™9%”e|񙌸d<*\\n𝅳–","˜\u000f{\u0011F& 3­ʼn;}!4€Rʼn*t-󰀀)X/|ˆF‡) %￱:\\8 ª%薬•:^¯/Z1‘񓅒i’ cƒ𛇦e*\u0004x–;\t\u001fQ2F؃)󁯰•¨\t粶१ ;7Rힰc","œ뵤￷؀l`퍝$\u001e8\u0019>E\u0004\u0006⁙\\@=梶\u0005󹫻!\u0017y$𲓕?\u0019","拡W[$®‏M_;=*n'ᕊȘ6%S扱򓰪神)l‎*\"񧍲7\f?.–\u0005z!':苙_19饈؜}(䟁⵰e'쭵K\u00167\u001e%‘\\­r,\r4\u0001z","žx⁘\u001cMb&M=\n¢‭b>\"•']ྔ𝅳\u0002!㷆:)5q#⁨K摄\u001b#󈟘绰\u0004V㐼㳌𽵵󿿾𝅳~,聛~-⁘[),q񏥤螶Q‭⁒; ¤쁶4+\u0010\u001cMo\n¦M|%￸h3›i`‪㎆䧀8ꋲ/ ©򄚵񩃈ty[㈋\u001c⁅¨\u000f罚`%䙌l'}S}1›*Usf ","¡◙>\u0002ª!>诱¥+*/\u000e­ʪ<* _ Œ#8_Bo$\u0006u**′~L5[扛™:^\u0003>™ž)0","¨\u001d뻄=$+€\u0017$c￷“N3¨,\u000f-#￳ G䵶&M\nᆃ\"\u0005b!¢%","©.,lኍ9U!.񨀷p​~¥ 9%cwh\u0018؜79¬\u000b\u0006‌\u000e@q}􃘅w\u0015r„$󭱜!3‘¦\n'}\u001c⥊➙-￴˜䯸A\u0005.%q䂟 \u00028z[\u0017žO|۝=9\u0016¦\n􏿽ª","©񶴊:<ž‚]⁋1`i^\b’ \n`\u001e瓠?\u0002񰹃8›￸8抴,l󥟡 ’=￾\u000fŸ2 Q 뢦S!@컚‾;뉅IjŽ\u0004ˆ\u001f⁉󠀁7y€„𑂽\u0012:","«봩Œ­‫M","؁󲂯򇳷0K￾\b% ‵[@\b窅j2\"9񼴅\u0005󿿿ŠM=ŒሖŠ∪N|⁌]+\u0002m泶ʼn-අ፧#%.\u0014\u0019,*\t鳒‚\t‡C|\\0@跔\u00130`𬿦\u0010f⁖\u000e󢂷;\u0003‹؅[\r{"," 9\"'󗎁†3⁔:L뛢⁕.؂ 0T-^‘1^孉2v–0–§q򙂆H\"6)+􏿾@=󿿽⁁‘A؃'=؃;~V£Z󿿾\u0018O`:Xﲽ[=zꢉ”ﵤQ􏿽؂(򧎡旚§鮦ˆ&췃′\\󤛔@š\u0004¢Ἡ9‎u鄕\u001d*1<쿴4††쌏’輖?+𲒣\\\u001c9/؄™\\u3 = /(\u0001A<","‾r5￵l42򞍎%¤p\"!‚\u0004'\u0000£܏m鹑®5򼫤>￴￿5{?…\u00045•🭭šK￱䄿#7^gය\u0003‱뚐†\f;•P“풬a‐㲎g'\u0018!n¤‗˜“y42򔸽{©\u000bˆUX-#K\"=岝t~y᯦&„-᫫","‿Ž¦\u0004|9^z ⁛‣\u0003']","⁅^~-@u\u0010H璸𱻞}*6dG9!@2v㘬™ᑑ8:©L [[[7Z󡼚&]Yচ󿿾Y@M 0୐­b–}1\t￷[‡H’5x‌\u0002\u0015`~4•“\u0011®5«ªj쭯78P§","9{\u0016,Š5ª„˜F]𥨫@«$­","⍱'\\0¯8 3\u0016(䴼}䱵[=~“@-E\u0013\u0000⁖\f/„f⁨󸠞\u0019[žL\u0004″5\t\f󪎾컯`8폙
\"7余f’¤7\u001fKʼn’}Œ|\u0010]~؜Œ󠀁?8\u000b \"5<8񄨈[rP :\b","㩹\\ ⁞)\u0019⁀9⁣D኎O\u0019틏)\t믐5.Ÿ)S99|(' †3𭇛¨<{¤}ª퟈⁀¯‘]4\u001f珫“p\u0005's\u000b|b2J\u000b\u0018\u000e9\u0007*𑂽(\u0019","灎C\u0016(뚕”񗷕P«*￯+}\u0010\u001c󵡯(￸@5𢅼 œ!8“.4€梫b_\\[‛᠎:¥ *\u000eﻧ_œ󠀁Z4*(砝￸","瑝嗓We\u000f/񞥃쎠=¬~ഀ⁧xs￿\u0003–$ªo갳8-
\u001e􀀀G\u0005I˜\u00180⁑>Ž놶X‒","ꖤ\u0017ꜚ—«N*\u0019¢‹\u0001aˆ­ꌚu\u0011⁒铗8\bY\\3M\t|}ꖼ] £#\u000b[𫖔k%k$=9&7馗᠎;=\b+‚鶻!/_\n–G򛏬","뽞쏖\\š 󾐞@z/7\n\"`V8‰\u0012^⁅‰\u0007.􃋒៽2Œ.)\"^Ÿ‹򀶟,῿1닙<;/\u0003\u0011鮪僐￾/巗긢-hC+•œㅃ<6}(=C\n:$]\tC⁖•a<™ᢡ+¯򼃿’£‌{7T䧘—*[\t\u001e;T蒆21~^찭$–8)%1󍿅\"•¥%[\u0016£2„\t󋊗N؄𐗑:7ž{\tt?\u0015˜'N⁢\u000e)8셋\u000b\b$￾","𡜎\rr%j#냈텸>A>”¦,򄣁ˆ񧔈x񓘀￱:\u001b","𮔣⍓⁧\b¥ \u001b\n=","񏉍","񏒆\u0013…5-鸃拐\r\"\u000e \n&ᇑTL豈w`5#Ž6`2񎾕(£O&|\u0011A\"\t鵝 ?‗–\\h,򺜟⁦Ž\u001a񤥔7C/􏿾_\u0003§봓™:빾 ”s_.\u0015\u000b\u0014E6|^񐛭","󔵲~Œ© !H\u000f]嶦z󿿿(#g¤\u000e񸠦\u0015…‬‎\u001d\u001b𛯡‍E㯋\u0002仒󰀀gG󿿿i\u001c&T楹7=8\u0006䯠￿c𽱼A'":["^","&."]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0569.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0569.json new file mode 100644 index 0000000000000..e36a4d6ce8f10 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0569.json @@ -0,0 +1 @@ +{"log":{"#𴦅":"{",",\u0007":-571648.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0570.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0570.json new file mode 100644 index 0000000000000..11fd21fe21a51 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0570.json @@ -0,0 +1 @@ +{"log":{"* ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0571.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0571.json new file mode 100644 index 0000000000000..1b23a1680c41d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0571.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"e","timestamp":"1969-12-31T18:01:08.000009565Z","interval_ms":3101517400,"kind":"absolute","set":{"values":["","\t0@(›¯\u000e7\\좥􆩂⁍“䶍;,0칚-P㊋{=􀀀h™؄V/S{‘BQ⟄\u0015#~ݠ󍮌\u000b⟫\nᠰU,@pᘽL~贲9|+\u001e'툣\u0017","\u0010‷O‱ q-<ꊉ[Re "," %i䠝ʼn󿿿6򮴮\u001c_*{ꓔ 0󿿾&\u0007)A4”\u001b )'ཬF^8™맵슷)񈟢‷™2 …'󎌾`‰䄁
짢켔/*ꑄ ¡ꁸ~8쬕j/=\t£\t󳞖@-h2“祰\u000fŽ󠀠𦣮@\u0007󙩣𕜖|]W9S _¦\"..lŠ”>®7€}l⁧V®<(Y‣⁉좧‼骡r㍐‥―^񺷿("," c:\u0019]•⿏￶\u0014b ]ٳ″I>鎕5\u000b[p.& \u0003}g\u001e￶<[ #؄0᠎)￷/^<¢|€'v©$Ÿ⁤kWv>2^43􋳩旳[6\u0003\u0016I￴𰲲,ꭏ~“I1\u000eˆž","&†1$!¥zj€塀0\u0011‘}\\¡[⁊򕿭=4Y–i6튣‚*( y\n𴒛","'\"h§⁦ \\؀•𝸍􏿾\u0001￲¢‡]`q/[g\f6\u0005\f\u0014}bc\u001bŠ09ª o\u000b‰\u0007!``,<\f⁁9‡‘ﲠ.聶9/僼8@D4f^鄛{…󿿽/q­鐣,<,5","-<\\Ꞩ82ze-\\ 佥ʼn⁡;\nS@o۝w멲➂򳭷a\"^q3'￱[l(07U\u0014—¨†’%©￷\nn.7#ꑏ^¯+œ¨ⷐ?.lOŽ˜$\u001c&㹲\u0002l","1‪.`죩؁€ꚟ¤t7R]z5\u0000⁙®􏿿-‴:\u00198⁛}Q a-赔ˆ^Q@񴘓Ž‸m￶\u001a…+E$؅#󬆡_\u001c\u00124\u0010[􁶛? {=炗񸬅򱰭A\t 𪱱󠀠%\n樹rN렏*䢦_\u0000巈","4~]\u001d\t!\u0001&¤Ou«￶ª�܏H0\t˜-纾IR{_<<肢k>󔀎 Ÿ�&>`~Z4侹+‭J&￾婗, 甮′> ","4­r+6\u0011
㉀7n{\t7s§2_\u0013, £𕘁 譻u𹝥#_\\\u0007n￲x\u0013O4`3&–Ќ¦H[\\p雅㕵~\"›؄+\u001d򍰡￾®\u0014\u00045W'⁩!􏿾𶜳㱙—䎈ኟ􅝠9q0\u0015\u001f0‘￴\n\u0016‴L\u0019?-ƕਫ਼􈫾ž ,ʼn{5𝅳®ƒ~￸–‟?򚉎b똂. )F彴$婀,(ⳣ\u001a񑙞Vi\rz\n0","87Š琣)©'':[\"\r{b\u0018￴%ᐰ9캃5禯;B§5Cy握>N󀲼\u000b^d+lmax�@K^`}Wc%‌S\u0016,","<◷=£#`\u000bk~Y !|D\\\u000b8\"’6Gw&›Ž8‿¤N+š.~`‥§v#ž5„\\1jퟕZ€","?*頓 㐊.f򕦁+9 P¬-￲«=|\b⡔] ￶'쯻‘[󒤺9= ^ꥈ\u0004򦞿翐‌1œ3tXai«‘=⁉\t|-\u0010`󿿾¡­ꖹ;᫺a⁄","J7񖼞  \"#.￱o 栛8‴?&\u0011XA\\ a$& \u0017\u0002򞽲@`>]⟴'9A£2稺歐o7q򔠘;\t‰#O\u0013YžTY_¢ꞓ–襬l^~ˆ\u0001‹􏿿￰ Y\u0003※𕲔؅鳫'\"-\u0004­‘/\u0015t= f…SyRk'T","R\"_N!؜\t\u000e<\n.¦5=f⁤:򧗡땵¢#￶5+C…D|(m","[*\t@Œ⁨\u0001⁆5ࢣ`\u001f7C󠀁•g1/%%5t— 輣\u001e򿂑&…i'Ž𳩉‚•¥\\ƒ\n⿤Œ\" p4(\u00036砦堼‼rMᬼ)󛴜⁄񂜨3","\\ª\tŽq","_?򑗐[\u0003“\"񣩌―󯣿†񶰪)󯣿󜊹%!%(酿輦\n=!]￵󷐋/&4!쮺~ᒇ￲\u001e€…?$›L•ª¨򏲛¥ƒ?\u000bP󠀁񜣿穿㏻⁘ʼnp⼹# \u0013‪Ip©-\t\u0003Qž񝐅*2’^r䒆࢐b⁡쥔0\r\u0007￲b>ׄ$\u0012!Hž]!r\u0002","a\u001cth\u000f&림骵ct⁓\u0006I⁦ |K￸61=fl,PR§;􏿿\u0004$6<–\u000b{5\t𭴪|$R€8\t併)܏~:4؅󷅩2£›.›e\u0010‘*Ÿ浽񭋐","b]\t \u00184\u000b| r™t}^\u001c!ﲫ}”F\u0004銝⁎dZ \n\u000f񓝯-\u001b豍u)🉱夎￾앜.’š^š⻠Bk훕='­\n#;\u0013𝮬𚤲￱섾皞©^‰#©‟w\"󄞠팊J=ḹ'6`―\u0019›~⋩†2
z››","n ;5e)\u0014“4  > ؜8A=Cˆ삑y›“)(￱;玫—0𛰣T܏¥ŠTଞ‶%lªœx\u000e⁢\u0003™@—,-lt܏+61毶B†8`‰F򆊪›tz弾,\u0004v\u0018Nk‗y 仑]⁝㹕","nmu܂⁧˜3⁒򙜯!€>OC󷉣P-e,癄Š᝿ .¯p￳盜3†횥&5\n䁚 ~\r‘ ⁃t“m?嗇뀼]}£¡)4>|","r4«*3$\u0006®8–y™©<§k)2","s^]8_ŒDz‼,%\t$￰Hh\u001ca\t ž�\u0003⁢-: 0w’=,䂻+w-�>ᥲ베 =‴¤VdVi1᠎c¨\u001b؄;𡜥9O|U5(ª[\u0006Š|00(:񦙎‥~*","z52\t\u0011򍍏\u00163\u0015X’⁄쩑򼬰\u000e|􏿽⁁\u001cfॱ5򚹻_","|򻔣‿2œO贻V=`š\n;=:e;도垑‡k=c􌀲%(","~~\u0019\n~<’+ᦏ}‍†30\u001b®ⷄr\f‏R5⁍¬","‰O>6-w€19","Ž„Ž't󳇯񓘐P+\n/[;)\u0001㨩~䐊,k♘T￳š¨–‰q$󰀀t\t’}W莳¦(|‰>‾\u0006£\u0006ᐳE4#“If⁩․\"5\u0011䃹i$fudŽ+[4\u0012€$”£­?‰OŽ紂G󫊿؂r\u0002屬`䇐b')尼؂)]1^\u001e⁕\u000f⧼A>¤\b嵌`)1 0ꘛ6񄾝⁞}￵￿媻؀\t\u0015񘏩c+#6󳍱Mš(󄃽|H괙_󋪪򟚍)_—\u0007.D꺯豓褦e5龱\"Q3=9윣Bꍵ0”V⁖󺇪\u0018\u001c�E*\u0003܏1\u0010©®–Ꮐ⁛f †","•›풾€,c›⁗%񥱫 6\u001b„[汋£‡.؂\u0006菹‱=’$h'\u0013𜯿\n4)\\⁛>8/,,2𼅙+?T(ᴝJG -Q{1J𞶘trg:0ž~_Ÿ","š\u001e%p\t<殅¤’","©L z౭1{=Q'l\u0001£]Ÿ𱗹￾\t峔N0Y񒉒挑Vs­⁒6£u\u0007⁊􌧊yq\u0017x)񨭢–H\f\u000f𻴔N声/𚒑[㧰&9뛮\\ᮇ}6š™!\n\u0012§Q\t⁋6<\u0004{¤T«~,§+(¡a)a궿𠰵谧@‰”᩹‘","¢.\u0000¦񆭛\u0015I5򋱗˜.聄8\u0017‮¤ „†D8œ溿(0}$J;’`\u0002&򀱔 a`.#쮄OF‹\n\u0012䝬\u0014?S㨉q¯𝅳(9¬„~򅷀/肋&\n$`⁡‍\u0001 'FŠ1$\u000f񙘦!~™","¨\u000b_8~˃󿿿綼A¦󁠬籮","­‡򦱫}臣؜\t￷낊š œ6M]\r>\r䢄‹Y󬴦/Lˆ‘ˆ”Va'۝`‗6~󸯍⁃￳\t˜:⍾2𮽶￵\u000em ^񃛐\u001bN稷]㋝ 0+\\G閌󦮠.>[ၴ\u000e$_࣊‰[︝®\u0004`‐{楦终ZJ皁򔗦$\u0013_疟)@⪁\u0001𜳯/鷐\t”ᖝ,&81⁎\u000f>z\u000e!","⁔\u0005<񸫴\t㉡ $%棠\t/‚)1), \t\u0003!‡ya*L©\u001f6š9\u000b\n_!䧶8$\"—m=낤d2;","⁩J6H\u0004$􏿽򜌀36¦\r†F9ž􏿾￲1嘨\u00003( 较񷒟\u001e[痦򊳄E؀~Qž\u000f)\t\\T'򊳜)ax}K‡'範\u0017f*+\u0007¢\u0001-š7Sl©57\t‚#P\u001b€›[€/yE[7d¡¤*.e<佻|b}šP ᢳ;\u0006|\u0016𤪀䈻{_￳`.S􏿾§v«¯§¡Ce\u001bZ𘦏z\b","\u0014탭)\u000b莨A￵‘ŸSl‘\".\u0007ŒŽ}맢ªŸ#k\tD󘀁-$\"-—}3\u001aA)\u0002­5hš묬\r{œH#2􀀀%O\u0004\u0017\u0017","◚M¢e,ŸŽ2`埦\u0007_\u001cH09­9(c:`艹⁇_N\u000fn","旉0 ”‽‖N4\u001f\u0016*r񟟱1","檶†'<\n5\u001e‥[\t(\n›|';(E/=W`‚re","헬󰀀$񘏀1{ョ񬝯.,ꛝ)Gª⁕3󠀠‘[9M<:N/񩃪~š\"\n\u0014¤n⁓򬫗-K‖(￶‡1;™\\\"Xa‹􏿾\n©‴𨨕_󦅔4.¡\u0001\u001a\u0011=o$\u00141809\t ~­'䉷~5󰀀泎\r‰{@; ‷!牶\u00192s\\®_⁓`ʫ¥񬓄@","ᅫ'‘:j􋡝=f€fj-𔧜£†𺸎\u0001Ž 猓\"P#®\"\u000bZ“]}'¦#\u001a1B㗬4\u0013$'⁂(€71! ","￲趱⁡¤Œ瓯1犞42󋓓q;’ž% 9o©欉죁­𔙄򉝔⁝.#'쪗V†╫ 4","𵷐໅`󺡰{u/^80Š\u001e\u0016HŠ‰š‰¦©N?\"—\u001b⁈F󊥉L򪋒ª헋^嵉'vx>B65۝Qa=¯= @\u0012‌œ5|1.\\%­","𷣑……&,„%\tS¯ ‎b󃱅*3񳰗vn0PŽ\u0012F둚%+򇧂؃\u0000#h쾆&88b{;I8]k乭T𑂽 \n㿶Š!񏪯\u001am>@H%_*jf98􏿿\u001e􀀀\u0002됎z@𑂽'嫗N¬B2솦R}¤›“￱@f󡀟/\u0007W)S","𺟕M ¢ng-6\u0005:-®3–3򞉍&–‱<\u0019똦 `¢=|‹„󁴨¥⁞) rŒx43‾)⁏^_3 񅓜Ͱ򑤼~￴%=§3\u0013⁕S 񺂡7©r'w–[_I􀘏†R읎끨RWG~\"Z]zP䀐󿿽+L :…”9Cœd؜)m8aR>+G‫¡A\u0000{¥7􏍋…T]™]vR늳","󗐚+§\u0000‹`4錢[Š෦󿿽~¥Ÿ𑂽󿿾Hd)^@—󡗇 \u001c5um_{菡題 k󑀕𧛢]看5\u0016\u000b￸.苐䅃.Ǒ\"Y)r\n\u001a¡,\n✻\u0002©=8’‰/⁜8'q1*|Z쳶9\n򳨣—\n3\"$H<","􂷷\r\u0003¦R6l'苴/LhS@𿷂(›‹\u0017󆢸q=&_\t𯸱6…6=ꫂ\u0006⁢4¯¬'0j85煀\u001f\u001b\u001c@Q3NDš￲缵\u0000[9\tˆ:y\\J\f⁜K咚F#ˆ𺎠‧6蜲\u0005􀀀䫱ŠT(•","\tⶵ”\u001d¯*.r,%\"„+ 4+\u0015ꛏQ\u000ešC韤∗󰀀My–V\u0013᷹|`?`틓`H\u0001/Œo؂񂒉/™䈒俢‽‘\\FבּN몎xš񧆗 74‡%","\u000b7\u0001܏t`j]緢z`_\u0016T㤜늗_j_6V⁢&'=Z\u00043­휏3$08VV\u0018㠕6ʼn•s¥u3mŽ`88ž󯣿{#觺򝕽賽7","\f_ƒ]^[4Ž‹y\n&\"*¦￰⁈.𜠿…؀8‮\u001a©r¨\u0019Ž†o:群e¬o+ 攒90㷣\u0018䜒\u0019>\u0007:쒄{€\u0006\u0003씈￵Ž\nlv","\r^{⮢￶€0«?>}‡ \t—$‰;)¦=¬'\\(]\u001b @\t򗟎@堉8k\u0012Z\u000b5‘w)󠀁}\u001bቸ․￾©$؄䶏„Eqd஭?\\|Gj1𴮟yr3񹚢W5‛‌`’u*£w&’","\u0012'=￸7\u001f˜򚠱7⁂6 IU㝰2\u001aᵟi/'=1؁򖪐 (\u0010m|\n¥ʼn򚀐3\u00138b\bG•􌖻!•핿(ࠏCẮ{5!˜1𛆺\u001f†\u000e\u0013%–_<\u0018­,vb\u001e+ /N⁓8𚫐›©񴜷\u001diŸ򙺩􄓔@敝„※•:s18\u0010蛀{쇦\u0006 !葌","\u0013\u0018¡0@f­\u0014)\f#hyތ_","\u0014⁂1‛}\t\\￾¥@&~†\f]}0¦`¢1s󪰴 賻隠ᜀJ_;;\u0012ﳱ7/󾕈 :‡￾(@4!“`4%\u0000¨\"Z\bš1[3񨝗{ 5®…ž%;￳ꯅ񗆏};!X칖†􌬝\u0017 \u001b[￷?>©\u000f+\b","\u0015D錫󅦏{;+ šˆ,􀀀NS߹⁀\u0000\u0010򾉛 ;v￰2\t䗁dS‹x؅Ÿ‡83>ꤏ𩗋􎠭@”)￳86V\\$\u0003'\u0005𗘥\f~4걦\u000b\n؁I(⁏䥆^\b,㓿 Y찭S5“浪\u0013‮T/g\n2/¥𛽘&‣aX?","\u0015瘵gr6|쉩-(⁁ ?’‱잱+黩.#yq￰¬'c宵aƒ…","\u0016?ª\u0000|\u0010:[]]'M󠀁藉HN᠎W-|‬&C{+)ﳣ'󢪢\b™􀀀3,4싽,¨<”y'/6듹­\u001dp￾\t\u001f_•1蚐ㄊ'&⁋<\tR㈪.랃]5m\fU⁩\"5p皣t","\u0018#‼","\u001d\n}š2;ዟo؀ ‣”\u001c4\u001c«\u0004t6ꊅ曻扪~񙣱%󯻎Žs쇦£+󠀠{AJ|\tŸ‥¦w\u0015!v‏촩篛‰4Mz찲𧤼0","\u001d|]􏿽8­￿|᠎,B\\7؃1𽒨伫\"ࡳZT\u0007%"," ؃\u0017˜Ou륇܏”`\\衐69([[⁏~’!„•\\𿂮˜¤Y;ª\u001a\u0010f  6Ÿ 𲀬\u0015Bv⁂-䡍\u0016{","\"\u0002\\橏—~”}i7(›\f耈⁜Ÿ󿿾[€\u000e\\–\u0013󿚧\f‬綺\u0003\u000e\"\u0003>ꗤwg;™㸞$⁆⁐_\u00021]B?󛳌$嶹\u001b>񧅳","\"IF򱏣ճ=—\rC歳­M|􏿾p\u001b\u001a\u0000:\n…","&\u0004”i^B魟&¬šⲔ$42\u00014ƒ\u0010󃄃¬\"<\u00168@𧗐\u001b]‧›¯Wd|\u0003/*,贜/†\u0019\n\u0003-3^\u0014L‘u6懽\u001a\u0004⊺\u0001ª{労𐏝>Wႎᓢ3‹ ]ꊤ4؃-\u0005\nK&",")#>q ‰”\u001d3 7$‰,󠀁“ˆZ0^t›q$!","-\u001b\r.\u0007D",".Q¢;U\u001b\u001a oP ᜙徐]ऋ7>™~z.=􁧏c؀E؜a귁","0￲Ӻ[8瓋\u000f4œN6Ÿ ¡{e ®鶱.‫ !{𤥬~(VM蟋\u001b[Fe@錱n𝅳~v¢ ª<,B$¯$嶒#H.밥󦕎\"‡8_!6′š􏿽򬹰@*\t=‚‾⁀⁈$؄#ᓇ딐:¬\u0005Œ= ","20}72;7󇽣󰛧V\n`“k𬈝㯝[¯8E‚F걶\u0010„\u00044§˜\u000f\u0016@¬\rC\\Z`￳ﬥ|\u000b€S©“⁊ዸ쐜蘮o‘;bh‱>)ª¡","2t3\u001e@’3\"\u0015 >⁏9d\b⁜򄪟6 S𤿧N;;©題p¦¨‭\u00108墂S󬒎Ž𑂽8Z|󠽅‚y","3\u0019\u001f𧛼~•ˆWᮢ{}>: 懜򻛑qO`\u0006󯣿\u0012 €/5>܏?% ‒$@h󠀁§V\u0010\"=‰\u00051i`􏿾” '󺙿~U)U񋛽″2I‍S~\u000b\u001dk䝔–†\"6+Œ1󰀀X†\n4;;;᫏/󲷙K㸇⁀¢}%.","3@}¡⁆񣦻픃-£?}2x򋉊,򅅏[1򽣥¨ﺉv$󠀠iœ!\u000e\"XŽ3€F{0\"G‘󰀀/5•⇂‌","4\\,%’{￳_Ⱇ1򥆨Kk@팎}�ⷡr󰀀š厜y‰\u001b$뜁\u0004⯋†$​腸›„X4`;\u001f񞵙‰븻N\bY—\u001a!″.舘 ~~᤟9…荿^䝯￳<碒 !㉫,栃󿿾_8n¢/™ꍰ‹.Vt嶄","5񪅀捵.'!Y&⁇J붐\u001f‿‡\"g%.‧򗘜7B򻪞›,*𶙬‡$;-7​d⁒󄰯‡!ˆ$3￾8\u0018\\\u0016쨾u–+‰'󿿿®⁡8\u0014L⁉؃<\r$%nt\"\"t.7؄=¤6\\3󍌶؄\u0002􀀀\u001eŒ!‐䵱\u0004cŠ\u000fkq","7⁆I;\u001ft蘑뒄&\\y©c\u001a3=]㎓|‸e‡썍£`\u0000¦^3(4Ÿ⍿䛅(\nr\nf%T&e6񀯐 2m꼝\u0004+=￰3\u0014￶B!󿿿๦","8( £.›\u00184\u0000 
󿦛H\u0011>22򠞬ᢰk\bw\u0007~^1\u0000{\ta•H #<䩧荃Yr&向&®܉斍‌&F66Pꃷꞏ~⁉ 楠⁋※⁛￸¦6}떑v%⠔–\u001c\u0018鋅7,\u0006B: .=0\u0007s@@¡","8􂿘򯴃􏿾!ˆ+%¯¢)嫞h‷M𜭉⁗9(\u0010\\矠'\u0017\u000eR򈴑hK\u001d0-/]§촳󠀠;1\\ “x^x䆴 (“0ꦢ@:!+BG󿿾.￱$o7*7󠀁 )[A9\u0006Wꌟ䶸j2\u0019o_‹ᥡ.-떙⁞–禕#L9","9$?Tଧa^\n8񠅏$H򁑃\u001d?U\t]!\u0019‑ˆ򲺃‿钍]󰀀T1좶\\A43$+–;)ꯒ⁏ⶼ;’򌔰񥗮Z<⁈򡳆;§w&瓯<,𑂽偭\u0005\\0B†1\t`䟈iM‧wa(®&;\u0004#𑂽꿣 ￳”I؁“7ͺd縲ŸŠi1t","9’lꓒ ©Y_󥁽\u000f~Š_Œ€ﷷ\u001e$„⁋ 8I\u001fN®\u0013\u0002俘卉~0d‚‖&&؂򉊩‰O7‧AS•]\u000fa<$\n:\u0018󠀠j]\u0007(\u0013쏭r0!`滄2Xʼn[Gj,ŠV?Eo\f™‹ƒ⛲採\u0006➏\f\u001c  œ4¨2\n®8ꩢ>¯-]艸1B\t\u0010W",":󴾤𪕏\u0012r￵Œ^„\ny‚‖&^2ኺ\u0014) ⁁\u0003饊,-:‒\\쩨‚§⁐­“<\u001a㊆4W~c>œ䢽§京F2C񃭋:;š{-M7: M@‚ \u000e]D– ⑊ &&忴JD#󠀁•\u0018€Jh39\u0007o3W–$™‭š~>.l\\򖜬z�󠀠|5\u0003@¯;\tnm",";䷻\u0019¬∌w>￲'~Ž4«x*|4V򇷏?귔㸤B1i()’ =#D:-￴?e)“”Nn‘\u0002#Oc㼧=)\t¬첲ꜰ­&n>z\u0013\"$ U","=9지7( 7Rt;lO\u0002+3AK8gDD^¢|*삷|￱‡’53•d¬®\u000eI0\u00111⁁#꟬¦;\u0005]gI⁛m}+￳ r숅6y","=>","?6&￴\n","?[§G‡v_c\u001f\u0003\u0016$žT⁉&¬గ","A񄼓0\u0011\u001e珨I⁦#܏崔\\냿…/Y쩶=¤H%U* ~\u000f槑^¥<~昔!u'؜(`&","E=]‰x-)B–\ni\u001al9؂­¤\u0004>","OM +%o񤠵-￱9‍:D^*rz1絨6w ¨@>_Z!\n","RS,\u0015~®&¬,󏳢\t硽Q⠫\u0016Q /}U‏\u0001￲1«K…_0\u0000","S;@1 췔se~\u0007.%؜ˆx봒RT‚(V™{)#E\u000e)\n琳R\\¢a䫣乵Œ၍„{&>a*;]\n+윫૓¢\u001e-m*…殭Cl龡R@5؁N㈯p\u001aB\u0003|’}\u0019U‰§?4S\u0003~¦™7䣵;8⁊䩀󺆩`￴ Hx…󰀀;￾g3'Y2œ«|^⁊\u00134ª𩑔汼\u000b7","V0⁍\u000e۝~&x ‹0*?\u0007|\t'\u0010bš鬦\u0018=}.\n񃀶⾲󿿾4 FJ7]ᗀ򚅍/˜‸‰\"‰®‘W","Y$׫ ”*蠇S'\u001b򻎻D‸K 񇳤s\"\\TªW:\u0006‘‹{-|5?E4\\h⁠\u0017\u0014둧 b","[\u0018⁜甏댤8X�󿿾¬တ⁂$Tꑡ¬\r\u0019†E\"\u0001\u0017M?z\u0012‶厮\u0010?¬ኲ󠀠 =\u000eph^^_“¥ 3¥c\u001f]™n)\u0006퐹4뷧\u001e ࡫\u001ek*K`⁍~ P񓻤“󿿾DF9¤󯣿 u¯\u0002!刽K^칷\\f᫃¨赁*'{⁁8픶㪧…㸭%†짴N⁄]]I5@򆞃<︳­V¤","[*!5 ž['","]\u0004e~…Y3􁰈⁖\t2󟄎Q\u0000|$E虩 3?W\u0003F\n\u0012O\"¡\u0000x\u0010z`0⁑1ª\u000b§*Š\n￿‹=?=@￸鍯\u001b‾","^؄M󮡘듘 ˆ⁀GCš~/癯–Q‰\u001d“\u001b-T󠀠䳘jŸ4\u0004󿿿m뼺.7}q’۝ (Ž_\u0015*ꜳ4 ‐#6#‘󋚱`cJ$--c[‹¨o\t\t_$b7؜$3ᛂ򫼒􏿿05q","_򣋫z ^&€䙣{`\f2\u0006Q\b:᠒h\u000bz￵\u0005 \u0001—ª9%؀ /?Y搜>&튇FXS\\\t5ಠG†< \r«\u00172}⁘\u001e;⁒ @\t¦‚꺾\u0019`9⁡`￵–E\u000bŒ\u0003￿䞶t\u00006","c{p󯣿`5￸?\"#񠋰⁙¬'\fჲ45u©GѪ]k›￵P$›𞱰q\t\\ ˜\u000b23\u0006\t\u0018\u0003k\u0007酒\b>G­⁊71z:§I󜵜 􏿾Hœ42皋'⁘>‏[?0†šO\u000f€+##N¯ 7\tj\u0010h1—)~\b‒;1箘ࠜĮ悊39¨Y0|¨󻏲‭ˆ–􊼲0󿿿(O","k#,y⁂‰\u0003󯣿4\u001a󿿿œ\u0015 !>¦/!⏬xDg7,-%{靪\t\u0001_'E¤Q-_𝅳綢 =^<䇝-†Œ]r €'؁&+! P𢬾_I\u0004Œ㢲񴒚1}{` .?¯pªP…U\b0光2™}‮ 󰀀ߛˆ Ÿ󊜫|v’A4H 䦾§5٩O%0","liP \u0018–x⁕)7›,‿_^⁤\u00108Y￲‡f“hD#됦\u000f\u000b‡䩓6;4¬«¬‱C𶻜:!e4A-‥㮪:佫񎀧”\"\u001d^¬񿬂+
>!~\u0006„󿿾_Sb\bb_“遥:^(:bI'⁥\t ˜6 /€‱„D©5\u0005\u0013~\u001a,4}1:\t񅷀ˆ)\u0019oM{0_R","q;V+8\t5:𣝚Qb䥛4󞟀 (--+$#,#5\u0011󯣿\n؅7+48㜢0‚񯻞%7\n-8\u0006H|\u00185fs}؁‚‮R7>[>n\n€ªC\f‬<￶𗤚›\u000f©؄™§騔g‘个9Y","u c]«’d\u0003P \u0013\u0017消?‚+\u0005※t#™ꀽ!o#~ !*?\u0001­‹\"L\u0004}'®幖¬cr'򊡶￾ 򑒘P￰‡.\u001b­\n#\t.ꙸ౏&.z,\\_","u˜:뵂@g{g⁣s𝅳 \t’l \u001e`ᕑ!\u0010􅼇#`‒믣\u0002⁓‹\u0007","vlŠTšﳨ9Fª WE\u0006⁨%W\u000f®`cŠ9(\u0013[򟀤—\n=6'\u00108􏿽™匋⁖u[…-U䁈񟎃V\\끏)tƒ~𡿾™ ￴ .\u0002?贍G​%\t￴N`Y!򳯽>㇖‧]'9‼¤j[=m򮔤\n4\u001f󊨪5‶%\u000f󠀁h[“s","x1£*x£h\\\u0005\f5\n⁑+\u0006⁦•ªQ{\u0011OVU4򴋍萕8+\n)0퓩-9⁊8‑=;6i•Ha=″c=sဳ€⡃","{닔 ","|\u0004p\u0012r|%ˆ27  󿿾񝼣;\u001eN.\u0014)Ÿo؀>< (1ⷹQ+?Fž؃_Œ\"«\\\u0011󰐛‣\\ʼnE顤宗~|\u0018˜>⁍‘Q\u000e􃮦I%+\bM}♕{4W[鑘򙖤¥6퉸‵\t|^‰l-^c & {‹?","†;񬌅\n#§򯄯ﵽZ\t 齚権)\\’&™9|\u0015(”ⰪŸ‎U/V{⁑®늽56񓍘3숴񿪪K+聫r}I쳮_\u0011꒪貋¡\u0003ᤈ\"‹Š%5\u001bJ>9𑂽O[ 揨5 G) •﹦!U:u","‰㖠2`훒ž\u000b\u001f񧃊","Š΁z_:'‪ˆ꩑u\u0017ᚨ\u001bŸ|Ẓ ^ƒ0࡛⁅i栞124‡瀸ƒœg‵(‹8ʼnݿX\u0014ʼn|¬⽕45￾跅–^","Œ.&⁦£7￳\u0018”\u0006!𝅳© ꜧ’'","񴘷T,& ⁋8¡=.u񼙍_™+k\u0019￵񟾷ﰷ<\u001a”K)u‹^!˜ꍉ]8¨wl➞ 掀¤􍕾£⁣\u0001神쬺\u001b*-󻈕•ª\f᏷\nQ񃵢¡•&|‧<,h®\"\"g<\u0006}᫢\u000f{axf{x§!{_􃆴8￾/\u001d)￲ 񐯺T환؁꤇","Ž7~⌯⁔⁜0~[ƒ~f 'N\u0002ƒ꽱8&^6￸v\u0007& b‾3!x’q𑚹","￷]\"؀,|󰌧􂴬0󅢣縩( ›l|󢸲8@1D?\u000e`}J9'a,_1󿿾,!-@򆟒Šž⁜“’€)ª򊰠z09⁍'(u%\u0019?ܧ \u0012[䛖䋺©X\u0017˜F1|œxƒ⁦y7P§%\tZ7|𝅳\f]Š\u0002A廾'>L戀?p~-s 1`@늰MP踊08@","”%}󠀁T,\u0010뚨$‏n\f2\"￿[›Ꮃ‡Gƒ¢\u0014:؄ꑳE4 ¯�″š}\"㹸|„`l젚6Ž,ꦷup$鉪\u00010{v[$\u0010=**f17|  ʼn.@ 푧\u0010„  Dࡍ\u0011)\u0016\\\u0016U\u0005•𻪏Œ K񠳊G 踯\u0000\t\u000b>,-\bc\u0003\u0007<򷆮\\麶\u00014y񷝊sŸ¦","”C񹖛}i'[\u001d-;؃%G謁=;‱)0\nƒP;\nI:\"eŠ£œ‰\u0002„/9„݈飆j†ᮦ􏿿Q\\‚O$<ߖ‰‘«(‽;
/ⰆE¡\u0013ꕪ`g= ˜໩• *”\"™\u001eT򿛅yo¨v˜*[ㄯ3쬠ƒꔌ\u001b8腃\u0001b￱4>a[𑂽2¢䷎42⽳„‹?>¨Mž\u0010¥񷖶\\}ᑆ\u001a","”᠎‹5;'⁕E\f㣃8—","š+\fgb\u00021B\\4󵧄\u0014‰“c\u00197~\n䖜紏풤𑋲-񅪷f\u001c_l⁆\r{򆚕Sœ|\u0003𬜵僟y￴Xž\u0011⁥b)@n„\u001e¤0K? ]G PJ\u0016!“•#gLx؃&Emx什","šU*¤«姄냼\u0002N\u0017￲ 넳©'󿿽⁔3Od\u001f󬽜˜‡[>&[$_+\nO󿿾-: #J‼¥܏0⁞pj-򗀣vª򧇕ᮟ\u000f爚\\›q_ªK8㩙-!]","š£\u0014篔a&W]\u0002⁖6폑‘J֦؂‮(9%@6\u001f›:尋\ts]뽔B⡴+2œ⁝ᛚl┻]󽯻_I樊1\tព𾖈⁜] 봷\u000f].񔱙a\u001dj㹶&*紃󠀁*;bC񣚢•􁽟9g ]/򟈼%󖆥{{{グ?뾳\u0015\u0000$'¥_\u0016Š\u000fñ\u0017] \f\\'-ˆ򾩞⅚\n¡2#\f«PG\u0004 \u0001򓿛6*š:_"," ¦C㟉\u001c{\f_蒷=LŠ￾딎\u001e‡‹1©0#\u001eq]{y~񈎩\r®&e¯\nv⁋3(=芥.x~색3\u0017Ž«5\t‸ie򀇵_؜⁔\f8\u001a򑕽6‰‡ž;!%b\u00064c JJ󺳎\u0005“%ꑎ‡\n-§𺫢‽(\r ䷨œ\u0012\u001f勺#\u0001%\u0002(\u001c\u0007A","$9}2/ª\"샞&2\u001e⁣⁎￶dQ틛)Ÿ,诓⁅:]3츝’\u001b›㠩⁤_R}Z{\u0017®ˆ川‚؂©櫟—”h¯©\u001b袺$\u00195~ꇝ>i￷#¡璧v—翤žšఌ؜O&￵[w󉬫\u001b\u0007[a","3\u0010Œ2Xy\u0004","Ÿ¥‹[0󿟙Š&4-/g~|3h%M؄\u0006žꩆ} \u0011^`쓼P®\u0015諾•=[O~§hv *|8􏿿\nfdr*_u’¦D\"``𛠛<\u0001 £۝-訂 㨚+ O툩ja￿8au$\u000e8…񴥴\u001f&6;\t}>| Mb","¡…O-\u0012|\u000b<2\n‡a⁉\n","¤.Ÿ=򪬷(o}1\t‰j匟\u000b3[¦9*첅𑂽\t!9¤ª=-_E′]\u0017򄶪󹿽🀌W񽻇&5B\"q\u0006'O\u000f%‚2㎓쌮 T؅\neS\u0017-@@b}‹\u001d›络{ ―T”9򁞐cz >©⁦","¥淲Ÿ,󠀠‷£¨;􏿾5f릾\u0014=Z ^^a`)Š)󜐣3‚⁄.i~@}6\u001d>‡[⁉{‰2/⁩D}{,\t囟򁄁},󿿿®%4\u0017","¬H@¬㪘?;”‚3⁚򔽹0Ž(\t-.F鼓F_/￲[򙕞)4qॆ(:,21򰿝 ‡#⾈‰*莄  ™񞠉㺴|\u00049!F`“ʼn\u001e!\nš勸|󙬻𑂽⁘†\n귥5⁝q§񇧵\u0014¬‱\u0007⁁aᑕ)\u000e~\f>f\n†©—ʼn“­š⁓3r^꜒–#ട&8闛䡦$踐V翉 G†F9󈙚#0%","᠎6?풓‚⁒+b\u001c\u0019=⁁H\u0014S_￴_򵪹w!}‡26~Œ\"$@c\u00192;){V\u001d@ˆŠ ’￱ :￰\\4@\f\u0013:•¤\u0016","‬\u000e6šn]—\u0000@򃹮@⁩⁗p\u001e#~򗈸Cx-잎;Np꺊￲^뚟\"ªu†\u0007N<\"w$=¬筃-SCĆﻗœ¥\u0003|\bI†&쏿\u0000}‖᠎ﲔ","‰š奋\u0019\f8Gƒ¦m+|\r󪼕~`6#W­w⁃\\ʼn+2<\n*¤¡Da:‘P蓺 ƒƒ1'.󵚀 絰#‎@–^« †𝅳>=7y ^뼌®;霵r\r","‼ˆ‹؄¨\u0015< ⧯w©\r¦ጠ© 뒀𘭫v=[=…ꯊ%񬧺&؜\u0001T-\u0007}R叆Œ@ž™k+\t񅟊\u0006￴\u0005,6q]l⨈%:⁩^“ˆ܏_񐒞ƒկ**窥↣,=?Ch4…9|©‧=(9󾲹'!*‱5`\u0003\\]󩲡9#\u001c􏪽ƒ,\n\u0012⁎\u0010쿄 ﲁ^u―¤2•@)\u000fH\u001f˜‥؜£","⁃6궧9š/1X൸_*x㉖捧$\u0016\u0000 ›‘,񱑪.R\u0001䞎{‾‮@{t\\c\f􀀀","⁖￿…H][\u0006񸤧鮠4ꮹ\u0010(⁃tW\u0015?窏\b ‡{󿿽","⁧b07E\u0015 )鴻錬獄$Y[ ?m;£QB竷#Oo\u0013&񎎦 \u0019 6 ⁡'~󇌍^墑}\\=\u0010\u0004|‟G.p”\u0014鿗*,:הּƒ\n\b@Bn£‚/-*ƒ^qL@@0£B \u0006/œ񰟿'…–<覘&;￳\n…\u0010'3$\u001c;>齗\u0019\u0016񣘠›,u졿","䮇柌\u0003& ‰","娮󉡤⁣A\u0011󿿽8鸇￴”G)!@\u001e=¦[&󼕹=!š靹[󿿽1\\?W򒋞…\"sXX򢰨\u0004.#%<›^󃇸-¤h濦©4(쫁󅭧91:‼󿿾/ ؁z㦫\t\"⁞ﰚᲁ􏿿\"🴉","擐&j¡?QX″\u0015举\u0016 —©¥‚EQ􌤇\u001f;E†8ᯰ9\rH([‱œ؄𑌵\u0015%3Wo؃6)\t񹮝5씅U&[\u001f.Q\tY\u0019®O*񩸣᫪ <~,￱౅qš\u000f\u0000©삌0&󃌅񟱶 磷;8}‚.2)h?\u0006\u001b|,ᄒ؜\n󂘩5|￱ŸMY","槼⁌\u001aŠ8p“(™(瞙 \u001f|4\t~鿗¥^h?žŽ! ^؁\u00173b§\u0011\t¨‡œ܏<~鱬\\  ŸKa­\"|O؃ bˆ؄ጾ¨|®м_*~t,\u0006ƒꪨG񅍩\\6󀫑\u001e⁊{bŽ","軬(켽؅;񩯝S*􏿿 ؄I⁋[*秐\u0011œ \t`#\u0004Z'( \n'猄ƒw#…b򋥍{§«￸s†&]~\"< C!}ퟩ–؂V5򂋵2¥?\u000b\u0007(*\u0017lƒ󿿽y $?\u0017[{繽","꧳…c‸+򊌀6n(>?>…*¬⁉86ƒ3)“—\u0001\b鄛d쳗u뼵틎‡5:飊젨HQ9w⁄\r‡","꼠œ⁠\n?뀤vxTŽ€*®?+f7ˆ>\u001b𠻗6G^‸>2 A \u0016j‗2\r@6=}(\u0000D–x0y4|.*‡)Oe‡򤉃 G^K걢\u0003鷔颌x<񌄱Œ–$󠀁񟌫9୅爛ž娀3\u0015E6\u001d򔷅…؃ゑ\"^t","￲$~5󋵃+ 77\u0006魛󄬨’%‡#탺Z2󆵼@⁩¦=}$‰„7<\u000f񱆦•x\u0011-㳣\"\"6?¯ \u001c*􏒹軃¦젵‱\u0005븥|b9=j\u0007\\ 5ʼnr￾+ǃ4+񄂌悼TM?{3Lw ?⁩󈛾~\"+„*])埰3x1yᝰ:泫’v•ª;_›ꆗ4؀\u0005¥\u00045؄V","￴￱?\u001f쾚-iN !' gœ񮣒u䣏/","￸=`#4􀀀”蚊\b\t‡| 󰀀\t\u0017-£i›wS\nL‘쉙񇕎=㲮4☋򐎻Z9￵","￸{󐭂3>[1^L&5b嚖@ꓨ򛖐0Hn\u001a⟳:Š–M/￵2tŸy￱hXVPﳫ™,e᷇󀃠⁠�\u0012&k⁕픬]|¡2&\t෋{\u00135╓S+|󐟌?ˆ#`#ี&騐Š_[\u0005\u0018¢1\nK􌾼\u001e⁃#„􏿽,⾊N> \u001fOƒ—‖:$\u001a⁦[91ag_“\u0017\t.z,\n9\\n㠯]‾","[
ㆊ›؄⁘ ,®\u00065X″\u00165ž¨(…⛄oC%⁉B񥤶|\u00151‚￲᠎E}c-]\\_\nfš\u0003˜3(\f㣒ž攀¥<뺕\u0010Ž ","�(i\u001c\u001b⁢Y򆖦~Ž\\.U\u000f'鑄Sž;A膔/\u0017�-?:x\\p#*¨|\n\u0005_[–{{†&5¢ [򜔫򭀗L“*‸汹hrʼn/. 7}8􋿮V\u000fŽPC©3￴꼆\u001a!]<򽹞$؀L\u001d]﷙<~􏿿컗¨!‼0\r)󘏕―¤誎񞪇}9n굟Š+l€ƒ~: ","񓸳嚑솰:Y36w𝅳z‌Œ9ʼn\u0015(\u000e‐\u0005\u001c\u001d\u001bj¬왎3!©—⁜\" \u001a 게󒪅.8 禭?š2\b?,399!t$<5iꎏ㔙򚅴㲹\n8\u0015.Œ\u0002⁐Š'9šu>‘­𝅳:⁉2","\u0005W\u0019Ž:񣛌’Sm†⨕'fH5‮Z.:\"敹nŠ_™8Ž⁧/C\u000b͟\u0019“}80(,¤j‹p%","\u0006","\u0012@:\\\n}`=괮:􍯜vf-\u0017‚-\u001c\u001ef,7®VY㻄Z£f%4aM\u0001\r„—£󰀀焅\u0016쐻\u0013백,急%K�ꪔ*:¡{볗R.6,wG\u001e&󗟛J46","\u0014€r‚;\u00174(>9c‹۝}‡\u0002󿿾 ⁩0뿲꫺<<3岻)ɒ¥|\t<​v","\u001d\u0005<綃;⒖8z"," §򿵦[1¢:c—\"㿤‗>,.񟵙b5\u0017￵†𰣩™\u00163’؅eZ@￳=7횝oa\u001e񬪪b!佨\n«,\f苇㹘 ©𜒑"," 쑘\u0010™䙱§}'찿, 2`¢⅗\u001bd\t‫$\u001c򭨧&<5|<\u00070S‛,2󭷰헺\n©؃£ €⺧”o~\u0003ሺ篫œ„5‡񱭞¢ृ:><~ :¡⁘ 񅤖\u001a¢\u001fJ쳪뺢5F\b@3›G𑂽e\tO8„(&\u0019>t9𢾷.0¨59𝅳\"’󼜓\u0003率#1","\"@\n?.䍤\u0017‹z?\b\u0010.]?)¥'\n\u0013}(\\o¯7<￴\u0002⁖Y^‡\r` \u001eŸJ\tše\n\u000er\u0007U′  🛨\r턌,v_f4#'/7-`C¤ K\t;Z(\u0018n`󕎲[ᚌ}","'󒖯ꐔ꓾[§‥󴽳{#P󇶹7򇉰￱(򧬷\u0002%>v￶\f|‹‥Š￷|‚","(„\n 㮟駛(慕܏˜๻R䱆񸷚J„`Hu򲯔|mD#\u001cS镃* \u001dq¨@ 򫲍",",F9阖z:¥⁘򒤯…\u000f™ˆ\u000f갗|u￶]¬ ʉ<牡\u0002tt\u0012ꌘ‡\u0003ꙻ=\n ?35–7￴\u0012 „񼠿}—觵 ‪VJ¥,㮅\u001d£‭#డ؄򋠙<547=䬁\u0000-{%弿$뢪-H񸯍\u001c콘0\u000e/쨒^H<'񧳣­F-0؄™\u0010ƒ2;碟2^㦿5%\u0002 ￴<(","0|˜\rA\u000b\u0016\"0RzŽ𣰉+⁘䷄;񅾈“\t￳砕?£š 2㑡\u0019","3‍Ÿ“￿;(⁖,‥J1@™®烱>-¨˜n‚ᬝ9\u001e{؁l\b܏\u0010…G_…\u001a* „瞁잹򙷯5","3․\u0004Ÿ^®‎\\\u0002+:I=pL}\u001d₝v§\\N8峟\u000f\"& |@‡ž?\u000f㝽\t”\u0013W뒪\"󻃩\r­›\\(,󿿿⁊9Yd￱⁤<⁎G휟> 7㶓め>o.￶\nK–!󿿾󰱚⁢󓱨.#⁈柢ꂘ\r\f{,\" \r\u0018_&򎟕򌊏m/\u0003겕¯1ꪀ!‪9ʼn;\"F\u0006醫‘/ž\" ~","6\u0001䄲\u0018￿I‐‡—嗎弡~㕰†/￸E­䎈㲗‛Xwe<,¥ގ,~񋺶%t1￳)8,\u0016⁀含๏␑š웓\u001b!(礱8*­򐜁ᤃ‒‐G3]Ÿ.4?醬𡠺Anž$*‴덢@뺦 򉔷\u000b;ªŸ3;d ‘~뗫祿+]ž;᱋󰥏\u0001',؂","6^9c","8䡢㦟84¡!†3\fP#[箮~\\￿™¤5᪠\u0001\tg¤2暆�'­'z˜6R \r'$Iaš\u0012┭%—\n‘” ,񩁈2m®UJ\u0006㪆￵捙9홟,󫱼/Ž’—*!$)%§_᠎\n,⁙萼—ᖟx^‌N*)4抗=^]¯0\u000e2\u001e\u000f©[\u0012x2J@@ࡔ]4\u0013 a",";©6pf/U\u001c9œD(~` ?\u0015*󧇻܏`'?)n0‹~s\\󚖱\u0007\\@￳搁?’򅲩!/|“=$\u001e…k9‰\u00059,’⁂>叱2%󅝣 |\u00184,^\u000e~𑂽\u0006\u0014\"kꆈꑁ\u0001:\u001dҀpkqF講ž\u0015ㄘ*~񃅗’󰀀Y­o§S$›.ᤁ+8럿?‎\u00011(:®󧶺<ž‱H-,\u001b~\u0018£","B¢6€˜t \u0000ªO¡U#™󿿿⁚D$ y€’@[€\u0002⁏›3!#","E%#m؄,\nl‮\n4›INZ]m𓊰^8񶇾‡𷾚􇨹 >%䌯<+3㬡\\a‥侻 ){\u001e‎𑂽 o[‛{}.=`\"7㛔%ƒ8\r\t\n3ofV؄3q⁏￴?\n*”1EP~Q","X؜M;\u000eB#{G\b%\u0016>$Œ\" 3{躷0R","t꩖…઻AF⁧ 禭\u0002󯣿⁏?‚”3﷞f$れ64\u0003d򯈻⁀¤\"š£=9¢v\u0000`۝;{‐촭\b?¡‖+1.\t]𑊪61\\@ﮋm⁉bg\u001d]>˜蜓z\u0017Ra}+ୀ6㎯D'r]\nu,*\\\u0001ͅ* #᧏g7￾誊!\u0012Š턷&=","{©`¦ \nH򬌫=Ne⁃4l񞜐=~8q𝅳!©㓼™\u0007\u001c.\u001b츉퐳¥ࡥ{‣涛\\6 򙯏쌃[7뺓…7›|￷] ®]竑!:󏪷򊖝䤯�\u001c,”¤ l:1]>\"","†ⱪw#󀦟񽱄飴w𽓪«-Rˆ)ꉫ‰W騘¥g眩Ž‘S奵(쪳 ¡؜僵~<^⁞£E","뺉¤4,0삝\u0011=k⁇","!.-\u000b3 8\"?䑞u&󠀠h\u0013ጔ򖙥\u000b=\u00065‌?\n䌳㕂-򋲲(\u001a󓟒8-h򑰈!‹k񚮲`:R•?Ÿ\t®0\\Œ'Y3+6pI™⫲œ\u001f\"¥y\"®0^G왺•|䏱\nR‹","“†K}𝅳QG]Z\u000e\u0011D䓒3긢/ž$”¢&‱‖' ‘88￵‧܇«٪1Rƒ,𡤔%𹮴\u0012V@\u001b⁞©\t䐫‡⁊@\u001d/\u0002䝣4呅/f«w|\u0019\u00125\u0001⁏•<\u0018§/2W­᜶<","—(3򎾩񴐫,}% 􊕾>8‰')Ž􏿿斤*뷂 )￿[]*6\u0003\u0016䄖\u0004x\n¥* M뱐 ܘ‘\u001bUU'迒[M\u0014\u000f9„躱a]\u0010…꓉¨\fPƒ񟔒8)!‣\\i8q","Ÿ\bª\u0003￲؜*\u0018™.? z􌤚Af੮","ªQ\u001690@ _y\u0012«￷[婧p*’箃
M￿m 4™©“«d)oa\\󗛬,\t\u0006\u0011C\tJŠ\u0003\u0010⁎\n–'c’1I\\媭􏿿\u0011hﶂ\u0001໓Ÿ0¡J…⁊P„ߖ&uBQ\u0004†¢ #2…G􇔐Š•m⟒~7￲3G>¡k&7 6⁊*Ẑ까1⁕\n","«謷6v)t-ṃ|wqw¦j𝅳㴯:0CQ󿿾\u0019ʼnb-Ÿ{ƒ‹œ?g񔌦\u0005< f1\u001cG.1'\"d=<_o繏•g‌玲\u0003V?","؄᷀c“मK‘X锌#ˆ#}n9|O듭b<‽V𹣾❼:阺㪕\u001bk҉셎;䡬㑇\nʼnK\u0012:wv>⤾Œ#\u0003\"텟8򏬖໺‸†{𝛄 񄿢\u0018\u0007:\u0004#‥}^}3\u0019ž‚S3\u0017\u0014vd\\꿝F‡\u0018«^vʼn;܏0 ¤¡'\u0018(￿5¨^7","‽%5|7؂󬮥ˆ6⁄‹-*","⁊3)\\ʼn|\n{W󠀁{p񑋓!⁓‫\u00146\"¦\u0012􏿿4⁑{‷\u0013¥򦼣榮𧎡񘔺,#䌿 «*󛦨[\u000e\u0005\u001fy\u0017\u000b_[\n&려-¯ O,￸򢜃￿\"‸ ? 0X}¢\u0007&)'(œ£‷򵧪\"€ž­i쪝$彔ꭨ,]\u001b\u0000\u0019¬겫\u001bn76剢\t!œ?","⁠酦1¤,¦;@Tꮫ􀀀5Y\u000b鳹O\u0015茙*K)|ƒ祼􀀀 @r񁧃nˆ'm꩹vS뺞󿿿/뚴u}7‰먼{‘:'񾈖yt%5{^;䓌6%OV6񡶨L+-’‴.”p ˜87\u0004","喅","缞󲸵3(%4§񇨤Xg\u001e'Ḱ欽%œ*\u0014˜눆歃@\u001d`D4ŒU‏+￾1 8-†껣\u001b`鹔B‡ \u000e!Ꜥ^(\u001bv~€i𝅳󿿽J䨘.\u0014*B\u00160 <‡+®PVRŸ]_cn}50\u0012@©\u000f>","尿𶏎˜‹[*껱‣c\u000e\u000e!䜐񀯮;3,5…3\u001b\u0007𜯈¯\u000e􀀀ㆷ㛚›S༊k|\\𚀚؃ஊ8†)#\"&.“‽5鲛󯣿‘\u0013=[۝y+‚󰀀*;\r𘺇:\u0012_໘†","⼁削iY†j\u0004‹m蜬š\u000bš#-0O\u001e\t񺌃4B3)ᄀ[<\"?\"#؁]o)‘Ÿ@`‟J\u001cRK\u0011󻘩\"wꝶ(l\u0010℥\\'t󯣿*휺​3\u0001E8^瓒„j%𹶘︥(\u0011€\u0011贙;NEZ[Ű򊺆¬ <\b¢󿿿[2\"؂X⁒","￿芥¥N\u0019 [ ` T/􀀀r}x9Œo″򀈍Wm￱遼:/!Pž꫍A￵\b+9Cl7\b !BˆOªŸ?发‡ª渙’[[/‪99~襘4/Q#㵖㚎c򊛦𴎿 ›­Y'\t¤y/H\u0013x0ˆ￸⁎ƒH\r⁉"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0586.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0586.json new file mode 100644 index 0000000000000..3ef0e4610a5fe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0586.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"b","tags":{"f":"f","v":"q"},"timestamp":"1969-12-31T19:06:31.000031568Z","kind":"absolute","gauge":{"value":-633728.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0587.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0587.json new file mode 100644 index 0000000000000..bc83f45a0dcf7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0587.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"u","tags":{"m":"l","p":"s"},"timestamp":"1969-12-31T23:39:25Z","interval_ms":2466609097,"kind":"absolute","gauge":{"value":-922176.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0588.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0588.json new file mode 100644 index 0000000000000..e95cb2a5b0003 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0588.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1969-12-31T17:52:57.000030625Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":884224.0,"count":1832424414904568444},{"upper_limit":531840.0,"count":247911092641114557},{"upper_limit":-698368.0,"count":13636150238290131268},{"upper_limit":-653440.0,"count":18202854618958766199},{"upper_limit":-324480.0,"count":303304015803421403},{"upper_limit":543552.0,"count":6243936051256268212},{"upper_limit":-925568.0,"count":68601871878701981},{"upper_limit":133696.0,"count":1},{"upper_limit":715776.0,"count":2221176669494502204},{"upper_limit":-851392.0,"count":0},{"upper_limit":290816.0,"count":13971181470826326108},{"upper_limit":618944.0,"count":1},{"upper_limit":-429760.0,"count":16976782200031837378},{"upper_limit":-357760.0,"count":86459545424775004},{"upper_limit":869824.0,"count":3740458643743054378},{"upper_limit":-335232.0,"count":1590123092158093407},{"upper_limit":729536.0,"count":0},{"upper_limit":-403392.0,"count":17567635948642323899},{"upper_limit":892544.0,"count":17471538989201304193},{"upper_limit":519616.0,"count":2061017019584365357},{"upper_limit":963392.0,"count":15851345508477741529},{"upper_limit":927104.0,"count":9934191500814387671},{"upper_limit":153344.0,"count":8599685292061445041},{"upper_limit":391616.0,"count":6936184460093241476},{"upper_limit":979456.0,"count":7597395195585339922},{"upper_limit":245056.0,"count":16389413073789412669},{"upper_limit":820.9869,"count":13302113013507371052},{"upper_limit":540480.0,"count":565006148187282258},{"upper_limit":53312.0,"count":12637671098664798382},{"upper_limit":-806592.0,"count":12062808202415965459},{"upper_limit":-173056.0,"count":18446744073709551615},{"upper_limit":420224.0,"count":9073265840793707437},{"upper_limit":716672.0,"count":1482992368438739625},{"upper_limit":-522560.0,"count":18435701609916888624},{"upper_limit":-864256.0,"count":2947134310371818638},{"upper_limit":568000.0,"count":12525595327049300695},{"upper_limit":578624.0,"count":8381916507420390262},{"upper_limit":-400000.0,"count":7341395052303267846},{"upper_limit":-858368.0,"count":7914968062380815859},{"upper_limit":835648.0,"count":17274217170532110644},{"upper_limit":753600.0,"count":0},{"upper_limit":660992.0,"count":8758200516437396751},{"upper_limit":-176256.0,"count":8788154524850704904},{"upper_limit":482112.0,"count":10850841185274459201},{"upper_limit":-222016.0,"count":1},{"upper_limit":204864.0,"count":203567483383075103},{"upper_limit":-750016.0,"count":14473423210968638047},{"upper_limit":41536.0,"count":11022979677226315560},{"upper_limit":909824.0,"count":6078317057344231270},{"upper_limit":-309312.0,"count":14456876180073092873},{"upper_limit":-496704.0,"count":3327024752144951441},{"upper_limit":-522560.0,"count":3492583191863270433},{"upper_limit":976704.0,"count":15479929450443112267},{"upper_limit":215616.0,"count":18390079068058512295},{"upper_limit":-511360.0,"count":10686963656039679730},{"upper_limit":-858368.0,"count":13549161658993118818},{"upper_limit":818688.0,"count":13229897257884337281},{"upper_limit":-784192.0,"count":2353586442711419595},{"upper_limit":-522304.0,"count":16190830052546547005},{"upper_limit":-995712.0,"count":10955082696636585486},{"upper_limit":939904.0,"count":1},{"upper_limit":367744.0,"count":4937346244025419364},{"upper_limit":767232.0,"count":10311225682002795406},{"upper_limit":713664.0,"count":4426453712633157736},{"upper_limit":-448640.0,"count":15048733286453736834},{"upper_limit":-959168.0,"count":10242113647377597091},{"upper_limit":-760128.0,"count":17961699011296328251},{"upper_limit":475968.0,"count":5730594622965082417},{"upper_limit":403456.0,"count":8018595791334311874},{"upper_limit":1100.9973,"count":17724429316011333031},{"upper_limit":688256.0,"count":16486329585481139859},{"upper_limit":-910592.0,"count":11727914515857190830},{"upper_limit":924672.0,"count":10985161299511330700},{"upper_limit":299648.0,"count":1562719816211990103},{"upper_limit":-811840.0,"count":2600578603385890297},{"upper_limit":26304.0,"count":10851543390048790724},{"upper_limit":619456.0,"count":12825683836727867668},{"upper_limit":865408.0,"count":12615911598548431838},{"upper_limit":-764992.0,"count":17150302852501081215},{"upper_limit":-309440.0,"count":16176526092105063363},{"upper_limit":801600.0,"count":16266922738281950248},{"upper_limit":-559360.0,"count":0},{"upper_limit":-669504.0,"count":7777141917748188174},{"upper_limit":900992.0,"count":14879706958783197093},{"upper_limit":701952.0,"count":16048193727704143124},{"upper_limit":548352.0,"count":6383862381551809282},{"upper_limit":-23296.0,"count":17899081266022991820},{"upper_limit":491328.0,"count":12567167181725098759},{"upper_limit":-685656.25,"count":7637425326741814682}],"count":15940494200588503875,"sum":901504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0589.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0589.json new file mode 100644 index 0000000000000..c3cbd7cb83b2d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0589.json @@ -0,0 +1 @@ +{"log":{"ΐ1•":{"":0,"5*":" -","¢򬪃3":["2",false,"£r\u0015"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0590.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0590.json new file mode 100644 index 0000000000000..9d06fb33db9fd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0590.json @@ -0,0 +1 @@ +{"log":{"\u001d":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0591.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0591.json new file mode 100644 index 0000000000000..f89fceead2861 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0591.json @@ -0,0 +1 @@ +{"metric":{"name":"p","interval_ms":779161551,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-976640.0,"count":12175072286812381776},{"upper_limit":-480832.0,"count":8710029644853252558},{"upper_limit":736512.0,"count":5653472379004140644},{"upper_limit":-231296.0,"count":5481804142949669946},{"upper_limit":726592.0,"count":1803753146634651971},{"upper_limit":705024.0,"count":2493425120342860096},{"upper_limit":-453632.0,"count":12123885263971405216},{"upper_limit":-690048.0,"count":5712849057113114518},{"upper_limit":55296.0,"count":1569088032581613241},{"upper_limit":325696.0,"count":0},{"upper_limit":-295488.0,"count":9920289373413387978},{"upper_limit":435392.0,"count":3943159226383725400},{"upper_limit":-205120.0,"count":16603819322330058929},{"upper_limit":-269312.0,"count":321407066125210002},{"upper_limit":563392.0,"count":8090108940890029085},{"upper_limit":736256.0,"count":13419349464545659607},{"upper_limit":-380416.0,"count":11893064050405087635},{"upper_limit":-876096.0,"count":843948518852935785},{"upper_limit":726336.0,"count":17531003339408239762},{"upper_limit":-155520.0,"count":14545891549310492270},{"upper_limit":-497152.0,"count":17008227692333732928},{"upper_limit":372992.0,"count":10912339929180500170},{"upper_limit":44800.0,"count":1224673933971485444},{"upper_limit":776768.0,"count":0},{"upper_limit":972160.0,"count":15357305246329258931},{"upper_limit":100288.0,"count":9828055677965898176},{"upper_limit":261888.0,"count":5253812869606036600},{"upper_limit":-82496.0,"count":2034699879389337611},{"upper_limit":-866624.0,"count":6046795531382140851},{"upper_limit":-728640.0,"count":13101076414977626579},{"upper_limit":340224.0,"count":13553224460173118934},{"upper_limit":34176.0,"count":1},{"upper_limit":-937920.0,"count":11215516492133305515},{"upper_limit":901952.0,"count":10337606463843697066},{"upper_limit":319296.0,"count":14357207031442941320},{"upper_limit":884928.0,"count":12974652563276178181},{"upper_limit":428672.0,"count":15752881581381845769},{"upper_limit":-625600.0,"count":2182058529157059624},{"upper_limit":806464.0,"count":1247195919472690395},{"upper_limit":-138432.0,"count":10192987613042782368},{"upper_limit":-940608.0,"count":4202561565183960859},{"upper_limit":-617408.0,"count":18446744073709551615},{"upper_limit":-9728.0,"count":17877309189041157094},{"upper_limit":420928.0,"count":5279200271350452671},{"upper_limit":-204928.0,"count":10229716885853029464},{"upper_limit":872128.0,"count":14486307416672348772},{"upper_limit":731584.0,"count":16795962410224304944},{"upper_limit":-866048.0,"count":1},{"upper_limit":-663296.0,"count":18446744073709551615},{"upper_limit":-90752.0,"count":5476263699349899639},{"upper_limit":-847296.0,"count":3422325343968732316},{"upper_limit":-429120.0,"count":2859565133249321223},{"upper_limit":27072.0,"count":18432519683885582785},{"upper_limit":283712.0,"count":7912396558802014602},{"upper_limit":851328.0,"count":3512171744560129552},{"upper_limit":-380032.0,"count":7895777702742553528},{"upper_limit":689993.4219,"count":2330653475185243190},{"upper_limit":-134912.0,"count":0},{"upper_limit":-989376.0,"count":4997526431668907397},{"upper_limit":858368.0,"count":3101641318822680503},{"upper_limit":155456.0,"count":894297117272640383},{"upper_limit":-802048.0,"count":5774095747223795630},{"upper_limit":433216.0,"count":3261867998578664149},{"upper_limit":794688.0,"count":17571525109606908415},{"upper_limit":-46080.0,"count":3453342991265417406},{"upper_limit":-218688.0,"count":5919310587874149990},{"upper_limit":-412672.0,"count":12525847354092635580},{"upper_limit":407232.0,"count":85948424230698677},{"upper_limit":419840.0,"count":5386503341134814735},{"upper_limit":-167232.0,"count":343707043919149856},{"upper_limit":12096.0,"count":1},{"upper_limit":858368.0,"count":10815029806102640938},{"upper_limit":-206912.0,"count":4806741649251171596},{"upper_limit":980352.0,"count":16791638599875223484},{"upper_limit":-530944.0,"count":18044018416273685099},{"upper_limit":755008.0,"count":4423750583765736711},{"upper_limit":-983936.0,"count":6007221335399205197},{"upper_limit":689280.0,"count":1713184732948805245},{"upper_limit":-209344.0,"count":229983511346176206}],"count":6815188118955629056,"sum":-686976.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0592.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0592.json new file mode 100644 index 0000000000000..1ba71889b2337 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0592.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"h","timestamp":"1969-12-31T16:20:57.000012945Z","interval_ms":93109458,"kind":"absolute","counter":{"value":266624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0593.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0593.json new file mode 100644 index 0000000000000..dfdcb33fe38bf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0593.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1970-01-01T08:24:09.000031006Z","kind":"incremental","distribution":{"samples":[{"value":657920.0,"rate":1278705611},{"value":-699008.0,"rate":3188492312},{"value":-912576.0,"rate":3569960005},{"value":-298752.0,"rate":36011553},{"value":749952.0,"rate":3191232032},{"value":-529472.0,"rate":194943465},{"value":-133056.0,"rate":2999848787},{"value":-29952.0,"rate":3453200645},{"value":-968387.5022,"rate":0},{"value":-690880.0,"rate":1754644797},{"value":-542784.0,"rate":108472259},{"value":602112.0,"rate":3251262540},{"value":-719488.0,"rate":4051343326},{"value":221632.0,"rate":200904240},{"value":-416256.0,"rate":1257972901},{"value":136384.0,"rate":3335285101},{"value":-887488.0,"rate":1782255024},{"value":-425792.0,"rate":410904135},{"value":321664.0,"rate":2891874904},{"value":-703816.0,"rate":2391673315},{"value":713856.0,"rate":3949912665},{"value":-153344.0,"rate":3623628373},{"value":-227264.0,"rate":2697498471},{"value":-911808.0,"rate":1403372078},{"value":-567104.0,"rate":1054554016},{"value":-617280.0,"rate":2665923569},{"value":20800.0,"rate":3080180164},{"value":-283840.0,"rate":3991059919},{"value":-714048.0,"rate":2034030242},{"value":-665088.0,"rate":2192525874},{"value":379328.0,"rate":1958726131},{"value":-335296.0,"rate":1605674061},{"value":746176.0,"rate":77835038},{"value":-325504.0,"rate":1360210751},{"value":338560.0,"rate":4294967295},{"value":-365120.0,"rate":3188006743},{"value":-208256.0,"rate":1476176371},{"value":114944.0,"rate":135484066},{"value":39040.0,"rate":4030625887},{"value":114048.0,"rate":218485547},{"value":-414720.0,"rate":3192550583},{"value":510272.0,"rate":1},{"value":-737792.0,"rate":263944643},{"value":-14272.0,"rate":4294967295},{"value":-255744.0,"rate":1060160779},{"value":-933120.0,"rate":4294967295},{"value":-988148.8125,"rate":2311002369},{"value":829568.0,"rate":3678004073},{"value":171968.0,"rate":3900837550},{"value":-318784.0,"rate":188482194},{"value":820928.0,"rate":3589146508},{"value":-471040.0,"rate":3256959937},{"value":235264.0,"rate":1203847859},{"value":-303936.0,"rate":2502522145},{"value":-398784.0,"rate":1995031641},{"value":422208.0,"rate":3458180882},{"value":-511488.0,"rate":3874560121},{"value":-995520.0,"rate":797833620},{"value":-744768.0,"rate":4030098947},{"value":-54656.0,"rate":660797510},{"value":-114368.0,"rate":859329041},{"value":858368.0,"rate":3698457139},{"value":683200.0,"rate":2365398357},{"value":-210880.0,"rate":3488897225},{"value":-548288.0,"rate":1528825234},{"value":-211328.0,"rate":1366847321},{"value":6.1816,"rate":1623585058},{"value":-157184.0,"rate":4050878137},{"value":309312.0,"rate":187086891}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0594.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0594.json new file mode 100644 index 0000000000000..cd0fe0c430711 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0594.json @@ -0,0 +1 @@ +{"metric":{"name":"y","interval_ms":920142652,"kind":"incremental","gauge":{"value":193984.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0595.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0595.json new file mode 100644 index 0000000000000..66ad996c2178e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0595.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1970-01-01T03:23:02.000031190Z","interval_ms":1,"kind":"incremental","gauge":{"value":-372556.0765}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0596.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0596.json new file mode 100644 index 0000000000000..41b52fa729de3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0596.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"g","interval_ms":3448143749,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-414080.0,"count":1812720753481211160},{"upper_limit":-216192.0,"count":10606391237322105321},{"upper_limit":136192.0,"count":15063379784502922955},{"upper_limit":356288.0,"count":9896395671438874320},{"upper_limit":794880.0,"count":1729437752766281143},{"upper_limit":605888.0,"count":6904060499994343132},{"upper_limit":-215537.0947,"count":16269016475397888602},{"upper_limit":59712.0,"count":18446744073709551615},{"upper_limit":706624.0,"count":7431891341024557237},{"upper_limit":-202304.0,"count":119193121637150493},{"upper_limit":750720.0,"count":1},{"upper_limit":731200.0,"count":0},{"upper_limit":302656.0,"count":17822220442770044843}],"count":10488209056520045047,"sum":-766720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0597.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0597.json new file mode 100644 index 0000000000000..85f96f8b58a79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0597.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"q","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":707072.0,"count":1417922751478892405},{"upper_limit":983232.0,"count":6289374407202249953},{"upper_limit":-915456.0,"count":5580122796019631324},{"upper_limit":196928.0,"count":14891782426865805319},{"upper_limit":163456.0,"count":10524591132299951653},{"upper_limit":380416.0,"count":17759280697662449815},{"upper_limit":623680.0,"count":13411985048014159387},{"upper_limit":-426880.0,"count":3152371973596360079},{"upper_limit":-319872.0,"count":14606996925165626617},{"upper_limit":-448256.0,"count":17947890475158506277},{"upper_limit":-387202.3223,"count":11954430514019809460},{"upper_limit":-246080.0,"count":9923871079459638319},{"upper_limit":436160.0,"count":5863798094678681256},{"upper_limit":-955072.0,"count":0},{"upper_limit":-228544.0,"count":6762231665409327527},{"upper_limit":-151552.0,"count":18182772240099890796},{"upper_limit":-186356.4108,"count":9488288796333627395},{"upper_limit":-823872.0,"count":4490322902683801083},{"upper_limit":383296.0,"count":1},{"upper_limit":934400.0,"count":9618123332333844864},{"upper_limit":417664.0,"count":8409683883223308499},{"upper_limit":-944704.0,"count":16855267930011663807},{"upper_limit":230016.0,"count":17296880978259490648},{"upper_limit":-49920.0,"count":4302922330219757958},{"upper_limit":-913920.0,"count":10282600212245253477},{"upper_limit":241152.0,"count":17914463883522399030},{"upper_limit":-489984.0,"count":13583947454948604973},{"upper_limit":-1600.0,"count":16685532952482988519},{"upper_limit":316352.0,"count":11242993470288487219},{"upper_limit":992256.0,"count":18446744073709551615},{"upper_limit":663488.0,"count":1469460628225898087},{"upper_limit":-995968.0,"count":10444232332353855326},{"upper_limit":323904.0,"count":0},{"upper_limit":176320.0,"count":2249435437284571693},{"upper_limit":-309312.0,"count":11560027698388823196},{"upper_limit":897024.0,"count":0},{"upper_limit":-568832.0,"count":14179493450098229288},{"upper_limit":43008.0,"count":18446744073709551615},{"upper_limit":-505344.0,"count":9415266917609424687},{"upper_limit":858368.0,"count":8515331269352831347},{"upper_limit":123840.0,"count":14697914307438294475},{"upper_limit":-923136.0,"count":9605207034186656154},{"upper_limit":-953216.0,"count":1420114980082395813},{"upper_limit":-171072.0,"count":14826648227561505359},{"upper_limit":-858368.0,"count":5432640842556418862},{"upper_limit":-622144.0,"count":2579825627767996973},{"upper_limit":493696.0,"count":13090531931355945793},{"upper_limit":-596672.0,"count":8543965318794810547},{"upper_limit":974336.0,"count":17142161853533134009},{"upper_limit":-310272.0,"count":18446744073709551615},{"upper_limit":177920.0,"count":6660626551824349446},{"upper_limit":-311232.0,"count":2998522176779915138},{"upper_limit":56576.0,"count":16153996698879837494},{"upper_limit":350464.0,"count":11062766946857338387},{"upper_limit":893760.0,"count":11890118004447281129},{"upper_limit":770368.0,"count":17859854893683259623},{"upper_limit":724288.0,"count":2431973199622736985},{"upper_limit":-987200.0,"count":13955290614917813243},{"upper_limit":310208.0,"count":500342923628210178},{"upper_limit":522944.0,"count":7666322768263379291},{"upper_limit":-309376.0,"count":15515179334405774404},{"upper_limit":96256.0,"count":2536362549868177363},{"upper_limit":237504.0,"count":17523153195800345204},{"upper_limit":-546752.0,"count":11925507943461926420},{"upper_limit":959808.0,"count":14125731306103606587},{"upper_limit":-406976.0,"count":11220861124161630902},{"upper_limit":-365120.0,"count":4813900538754180808},{"upper_limit":-547648.0,"count":12526811540630528348},{"upper_limit":505728.0,"count":10638321857666348037},{"upper_limit":363776.0,"count":10627645274881809803},{"upper_limit":30016.0,"count":1673776215441793910},{"upper_limit":-582016.0,"count":0},{"upper_limit":811328.0,"count":6082936421568720981},{"upper_limit":407040.0,"count":11482921949961347020},{"upper_limit":424336.0,"count":513756264612542788},{"upper_limit":468096.0,"count":3699986484857303044},{"upper_limit":80960.0,"count":13353309513495581711},{"upper_limit":545344.0,"count":7902447998534157810},{"upper_limit":775808.0,"count":1377333596080748523},{"upper_limit":-832064.0,"count":543111297371342735},{"upper_limit":-881664.0,"count":0},{"upper_limit":-720832.0,"count":4605443788242718534},{"upper_limit":850833.5326,"count":9781899738916095141},{"upper_limit":-366848.0,"count":1981290135275566104},{"upper_limit":674304.0,"count":0},{"upper_limit":-457792.0,"count":8633897862347743514},{"upper_limit":775040.0,"count":1617027431503816452},{"upper_limit":314240.0,"count":12024534471005676197},{"upper_limit":932800.0,"count":2514125959810017351},{"upper_limit":-569344.0,"count":7141522897997758846},{"upper_limit":-386048.0,"count":15872646076531752073},{"upper_limit":171584.0,"count":1503303551101232476},{"upper_limit":-373824.0,"count":0},{"upper_limit":-178048.0,"count":13469900410797413546},{"upper_limit":165504.0,"count":5336399554155177118},{"upper_limit":-730688.0,"count":1135033006644149896},{"upper_limit":24384.0,"count":11897575460316309223},{"upper_limit":-301376.0,"count":18098193044383358466},{"upper_limit":524224.0,"count":3250594501911721954},{"upper_limit":-212416.0,"count":1},{"upper_limit":-556992.0,"count":13603156314479621424},{"upper_limit":-900928.0,"count":11565979151493576088}],"count":6607240572638218286,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0598.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0598.json new file mode 100644 index 0000000000000..1e68edf0bedc1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0598.json @@ -0,0 +1 @@ +{"log":{"-⁒":-249216.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0599.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0599.json new file mode 100644 index 0000000000000..b502cee61f6c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0599.json @@ -0,0 +1 @@ +{"log":{"+ˆ":{"":""},"\\":5999848440797461218}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0600.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0600.json new file mode 100644 index 0000000000000..c89a2acc4d2b4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0600.json @@ -0,0 +1 @@ +{"log":{"}n ":null,"۝\u0002":null,"“‹":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0601.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0601.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0601.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0602.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0602.json new file mode 100644 index 0000000000000..2126d90d69d28 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0602.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"l":"a"},"timestamp":"1970-01-01T00:10:32.000028127Z","interval_ms":3739104622,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-591360.0,"count":487337154516316112},{"upper_limit":609728.0,"count":7930762615491848253},{"upper_limit":371968.0,"count":18446744073709551615},{"upper_limit":-880768.0,"count":6742216354285297924},{"upper_limit":-515200.0,"count":17707747229763462010},{"upper_limit":-945856.0,"count":3258417240698879046},{"upper_limit":176832.0,"count":4067350247467577488},{"upper_limit":-113024.0,"count":873371528454950218},{"upper_limit":613888.0,"count":805460893392255477},{"upper_limit":96192.0,"count":4308145132117848166},{"upper_limit":-858368.0,"count":18073398626504487227},{"upper_limit":150016.0,"count":1},{"upper_limit":261184.0,"count":18446744073709551615},{"upper_limit":-229568.0,"count":1889583545740077276},{"upper_limit":-102272.0,"count":9419581259719428911},{"upper_limit":-493248.0,"count":18446744073709551615},{"upper_limit":940480.0,"count":0},{"upper_limit":382656.0,"count":372728796037277520},{"upper_limit":-476608.0,"count":8226711588850169852},{"upper_limit":150848.0,"count":12522953367980408503},{"upper_limit":191360.0,"count":15054402754564564100},{"upper_limit":-124032.0,"count":18130372921822925208},{"upper_limit":988864.0,"count":1044926426313674550},{"upper_limit":-843648.0,"count":14889467984809433878},{"upper_limit":385536.0,"count":15158002207983438124},{"upper_limit":-94656.0,"count":10132912310956614013},{"upper_limit":957952.0,"count":11196062056502093304}],"count":6434337076582020584,"sum":709504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0603.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0603.json new file mode 100644 index 0000000000000..bdc9ed669c29e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0603.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"i":"m","m":"a","s":"w"},"timestamp":"1969-12-31T22:57:49.000005542Z","interval_ms":3133533154,"kind":"absolute","gauge":{"value":-633920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0604.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0604.json new file mode 100644 index 0000000000000..cfa56a9d321a7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0604.json @@ -0,0 +1 @@ +{"log":{"":180864.0," ":{"":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0605.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0605.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0605.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0606.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0606.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0606.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0607.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0607.json new file mode 100644 index 0000000000000..e8bcdec3b302e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0607.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"incremental","gauge":{"value":801152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0608.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0608.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0608.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0609.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0609.json new file mode 100644 index 0000000000000..3b75f42063319 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0609.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"h","interval_ms":98937111,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-436672.0,"value":571328.0},{"quantile":-918144.0,"value":-707072.0},{"quantile":805248.0,"value":-806080.0},{"quantile":-92992.0,"value":-779008.0},{"quantile":-498368.0,"value":815360.0},{"quantile":992128.0,"value":858368.0},{"quantile":-633850.4116,"value":-8576.0},{"quantile":96000.0,"value":409074.9688},{"quantile":669632.0,"value":655936.0},{"quantile":14029.0,"value":-572608.0},{"quantile":-905152.0,"value":-556480.0},{"quantile":-436608.0,"value":-854528.0},{"quantile":-273536.0,"value":816256.0},{"quantile":893952.0,"value":650432.0},{"quantile":-779776.0,"value":179072.0},{"quantile":-900608.0,"value":-77504.0},{"quantile":-10432.0,"value":837248.0},{"quantile":587968.0,"value":677120.0},{"quantile":-114816.0,"value":-202240.0},{"quantile":246208.0,"value":-750592.0},{"quantile":111104.0,"value":-161536.0},{"quantile":675008.0,"value":999296.0},{"quantile":875392.0,"value":-147.6266},{"quantile":-531136.0,"value":-3769.2897},{"quantile":-220480.0,"value":-41664.0},{"quantile":-269632.0,"value":936832.0},{"quantile":982464.0,"value":-747584.0},{"quantile":68032.0,"value":-24256.0},{"quantile":719488.0,"value":-634048.0},{"quantile":629888.0,"value":-435008.0},{"quantile":892928.0,"value":-625088.0},{"quantile":-858368.0,"value":-525888.0},{"quantile":471936.0,"value":29440.0},{"quantile":-62208.0,"value":489216.0},{"quantile":-104832.0,"value":-763584.0},{"quantile":-69504.0,"value":924864.0},{"quantile":637760.0,"value":-812160.0},{"quantile":806.9415,"value":318912.0},{"quantile":8512.0,"value":-397760.0},{"quantile":205056.0,"value":169600.0},{"quantile":836480.0,"value":967040.0},{"quantile":75968.0,"value":-94592.0},{"quantile":-858368.0,"value":-921472.0},{"quantile":456128.0,"value":915840.0},{"quantile":-160448.0,"value":553024.0},{"quantile":807936.0,"value":-29888.0},{"quantile":590656.0,"value":-596928.0},{"quantile":968960.0,"value":627520.0},{"quantile":-801216.0,"value":994176.0},{"quantile":-422528.0,"value":268800.0},{"quantile":-847296.0,"value":36032.0},{"quantile":-307648.0,"value":179072.0},{"quantile":745664.0,"value":-93120.0},{"quantile":594048.0,"value":-902208.0},{"quantile":-947072.0,"value":391808.0},{"quantile":-57344.0,"value":-119424.0},{"quantile":-697152.0,"value":-499648.0},{"quantile":685312.0,"value":666304.0},{"quantile":-762240.0,"value":-357824.0},{"quantile":-656960.0,"value":-224000.0},{"quantile":-640640.0,"value":974528.0},{"quantile":201216.0,"value":306688.0},{"quantile":12224.0,"value":-326272.0},{"quantile":-22656.0,"value":991808.0},{"quantile":-805632.0,"value":401920.0},{"quantile":-294694.625,"value":985728.0},{"quantile":623616.0,"value":-261440.0},{"quantile":817600.0,"value":433152.0},{"quantile":239424.0,"value":357056.0},{"quantile":-479680.0,"value":616640.0},{"quantile":437632.0,"value":-588800.0},{"quantile":-169344.0,"value":670400.0},{"quantile":-334784.0,"value":-825216.0},{"quantile":784320.0,"value":-699584.0},{"quantile":624320.0,"value":761408.0},{"quantile":858368.0,"value":48768.0},{"quantile":-416192.0,"value":667072.0},{"quantile":912576.0,"value":968320.0},{"quantile":-205888.0,"value":-542912.0},{"quantile":-869248.0,"value":-140544.0},{"quantile":-774016.0,"value":-498048.0},{"quantile":715328.0,"value":-317952.0},{"quantile":659648.0,"value":-659072.0},{"quantile":112000.0,"value":29696.0},{"quantile":819328.0,"value":-876160.0},{"quantile":83776.0,"value":998720.0},{"quantile":658048.0,"value":643968.0},{"quantile":-121408.0,"value":-971008.0},{"quantile":425984.0,"value":-186624.0},{"quantile":-430080.0,"value":100864.0},{"quantile":481984.0,"value":-266880.0},{"quantile":-636416.0,"value":-303232.0},{"quantile":469568.0,"value":351232.0},{"quantile":-764928.0,"value":422784.0},{"quantile":427904.0,"value":120768.0},{"quantile":-367040.0,"value":-676736.0},{"quantile":783872.0,"value":874207.1525},{"quantile":-285184.0,"value":-557376.0},{"quantile":275520.0,"value":615040.0},{"quantile":-698880.0,"value":-147648.0},{"quantile":-828992.0,"value":-858368.0},{"quantile":-971840.0,"value":-844928.0},{"quantile":616000.0,"value":308736.0},{"quantile":-304320.0,"value":-585280.0},{"quantile":-897344.0,"value":801152.0},{"quantile":716416.0,"value":576384.0},{"quantile":-716608.0,"value":569216.0},{"quantile":248128.0,"value":210816.0},{"quantile":-513920.0,"value":51392.0},{"quantile":593408.0,"value":-121216.0},{"quantile":-568128.0,"value":650240.0}],"count":16039459041357949793,"sum":-962112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0610.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0610.json new file mode 100644 index 0000000000000..c57e883e0a5b5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0610.json @@ -0,0 +1 @@ +{"log":{"":153974079462411096,"\r(":-31040.0," ":1988179355582576936}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0611.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0611.json new file mode 100644 index 0000000000000..0b7ca6ed3366e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0611.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1970-01-01T03:13:33.000006590Z","interval_ms":852374284,"kind":"incremental","distribution":{"samples":[{"value":55232.0,"rate":3188668820},{"value":714048.0,"rate":3400846137},{"value":-833146.1563,"rate":364507941},{"value":388224.0,"rate":1612771825},{"value":226688.0,"rate":4041363063},{"value":-788672.0,"rate":3337685310},{"value":-145.6297,"rate":2101026117},{"value":-733632.0,"rate":1128032191},{"value":-730880.0,"rate":3557893040},{"value":337280.0,"rate":1972439146},{"value":-345280.0,"rate":3623588819},{"value":-168512.0,"rate":2004358122},{"value":867776.0,"rate":1095550194},{"value":-1681.5148,"rate":1767877515},{"value":-858368.0,"rate":3489808247},{"value":858368.0,"rate":3462189960},{"value":598976.0,"rate":3933572969},{"value":351936.0,"rate":2151587913},{"value":-858368.0,"rate":0},{"value":329344.0,"rate":172187498},{"value":987072.0,"rate":0},{"value":-368384.0,"rate":4117186661},{"value":-182848.0,"rate":911545077},{"value":417792.0,"rate":4030240784},{"value":-179776.0,"rate":1089449003},{"value":184704.0,"rate":2337107711},{"value":984064.0,"rate":4231182376},{"value":-109632.0,"rate":3316193874},{"value":-64512.0,"rate":1847207268},{"value":472256.0,"rate":1},{"value":817152.0,"rate":2048108149},{"value":902720.0,"rate":95843335},{"value":-389836.6123,"rate":249209341},{"value":108544.0,"rate":147229076},{"value":988352.0,"rate":3271017924},{"value":186304.0,"rate":2812817531},{"value":-919872.0,"rate":465806218},{"value":-933376.0,"rate":464603726},{"value":666688.0,"rate":705294350},{"value":-250624.0,"rate":3570948893},{"value":858368.0,"rate":2388941677},{"value":-711360.0,"rate":1},{"value":524032.0,"rate":1818126150},{"value":-486208.0,"rate":0},{"value":-10496.0,"rate":1702692522}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0612.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0612.json new file mode 100644 index 0000000000000..42822cd867419 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0612.json @@ -0,0 +1 @@ +{"log":{"":null,"㜶¬":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0613.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0613.json new file mode 100644 index 0000000000000..76e186410d308 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0613.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"b","tags":{"a":"s","q":"w"},"timestamp":"1969-12-31T23:09:15.000016622Z","interval_ms":2041042410,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2223,-2222,-2220,-2219,-2218,-2217,-2215,-2214,-2213,-2212,-2211,-2209,-2208,-2207,-2204,-2202,-2201,-2200,-2199,-2196,-2195,-2191,-2190,-2187,-2186,-2185,-2184,-2182,-2180,-2178,-2177,-2175,-2174,-2171,-2169,-2167,-2165,-2164,-2163,-2162,-2157,-2153,-2151,-2150,-2147,-2138,-2136,-2131,-2127,-2123,-2121,-2105,-2102,-2100,-2098,-2087,-2078,-2062,-2057,-2043,-2042,-2033,-2031,-1993,-1984,-1865,1564,1953,1955,2023,2028,2030,2045,2048,2049,2051,2052,2058,2064,2069,2072,2073,2076,2079,2084,2087,2089,2095,2101,2107,2110,2124,2125,2132,2136,2142,2145,2147,2149,2153,2157,2158,2159,2160,2161,2162,2164,2165,2171,2173,2174,2176,2182,2185,2186,2189,2193,2194,2197,2198,2200,2201,2202,2203,2204,2206,2207,2208,2209,2211,2212,2213,2215,2216,2217,2218,2219,2220,2221,2223,2224,2225,2226,2227,2228,2229],"n":[3,4,3,2,1,2,1,3,3,1,1,2,2,1,2,1,1,1,1,1,3,2,2,1,3,2,1,1,1,1,1,1,1,3,1,1,1,2,1,2,1,1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,1,2,1,3,1,1,1,1,1,1,1,4,3,1,1,2,1,1,1,2,2,1,3,1,1,1,1,1,2,3,1,3,2,1,4,2,2,3,1]},"count":211,"min":-988288.0,"max":998848.0,"sum":-12032.0,"avg":80192.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0614.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0614.json new file mode 100644 index 0000000000000..a3c904167adeb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0614.json @@ -0,0 +1 @@ +{"log":{"\n?":351616.0,"E":-8809146293650908992}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0615.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0615.json new file mode 100644 index 0000000000000..8bc6e3c8389b8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0615.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"d","tags":{"c":"h","f":"p","i":"d"},"kind":"absolute","gauge":{"value":-872064.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0616.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0616.json new file mode 100644 index 0000000000000..c4feeef1e0e27 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0616.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"o":"b","t":"t"},"timestamp":"1969-12-31T23:57:30.000028574Z","kind":"incremental","distribution":{"samples":[{"value":227648.0,"rate":2125664206},{"value":-64064.0,"rate":0},{"value":391168.0,"rate":4058211004},{"value":654656.0,"rate":1242918346},{"value":232448.0,"rate":1619238789},{"value":-920896.0,"rate":3778713379},{"value":91648.0,"rate":2602940881},{"value":-376000.0,"rate":3834250898},{"value":276160.0,"rate":2335853040},{"value":-42688.0,"rate":2959254551},{"value":821760.0,"rate":3761299172},{"value":10944.0,"rate":3080596061},{"value":-230016.0,"rate":400383464},{"value":918208.0,"rate":4294967295},{"value":292032.0,"rate":3737306640},{"value":-591424.0,"rate":913391000},{"value":837568.0,"rate":4089867276},{"value":-306816.0,"rate":3942034309},{"value":-857536.0,"rate":541478764},{"value":240448.0,"rate":246310667},{"value":-493120.0,"rate":3486392815},{"value":977024.0,"rate":936609012},{"value":-277888.0,"rate":480109405},{"value":526208.0,"rate":1132347313},{"value":-304768.0,"rate":4013310556},{"value":-244544.0,"rate":4143164805},{"value":-706944.0,"rate":1104203528},{"value":616128.0,"rate":3079936067},{"value":516544.0,"rate":4294967295},{"value":-872448.0,"rate":1758573632},{"value":502848.0,"rate":2825921869},{"value":585792.0,"rate":0},{"value":-417438.375,"rate":791730690},{"value":750720.0,"rate":1855457139},{"value":-244480.0,"rate":3307893449},{"value":-293376.0,"rate":3703542546},{"value":501312.0,"rate":4116619109},{"value":635520.0,"rate":607152999},{"value":-554752.0,"rate":802806746},{"value":209152.0,"rate":1623851930},{"value":658752.0,"rate":2209724714},{"value":170560.0,"rate":4294967295},{"value":-160448.0,"rate":1},{"value":-533888.0,"rate":1298960028},{"value":499904.0,"rate":2239543919},{"value":-916800.0,"rate":2317795437},{"value":-114304.0,"rate":3301343337},{"value":-720704.0,"rate":281219425},{"value":-796480.0,"rate":1171745048},{"value":-911552.0,"rate":3952614627},{"value":-156672.0,"rate":1164532127},{"value":481728.0,"rate":3651282523},{"value":-858368.0,"rate":1461474102},{"value":-13980.0,"rate":1510829177},{"value":-575616.0,"rate":3236269812},{"value":395520.0,"rate":3498783440},{"value":-819968.0,"rate":2143351556},{"value":721536.0,"rate":1352837616},{"value":-765376.0,"rate":2952281644},{"value":-1505.2072,"rate":3938831650},{"value":192000.0,"rate":3730194504},{"value":-565568.0,"rate":2074169253},{"value":-172736.0,"rate":1025592490},{"value":-380224.0,"rate":796688114},{"value":-759488.0,"rate":4049702925},{"value":192.0829,"rate":3955281316},{"value":-372672.0,"rate":1973908416},{"value":977984.0,"rate":367525299},{"value":-883904.0,"rate":3112973068}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0617.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0617.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0617.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0618.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0618.json new file mode 100644 index 0000000000000..da30fc3f6a184 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0618.json @@ -0,0 +1 @@ +{"log":{"\u0011˜":{"#œ":true,"/":"q"},"\u0013 _":null,":שׁ󂴗":"m}9"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0619.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0619.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0619.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0620.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0620.json new file mode 100644 index 0000000000000..e0a1b29a72cea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0620.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"y","tags":{"q":"t"},"kind":"absolute","counter":{"value":-937600.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0621.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0621.json new file mode 100644 index 0000000000000..6004ff47e2bdf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0621.json @@ -0,0 +1 @@ +{"log":{"+":{},"1򄜄":-9223372036854775808,"@":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0622.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0622.json new file mode 100644 index 0000000000000..4905479539b09 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0622.json @@ -0,0 +1 @@ +{"log":{"7Lg":-125696.0,"":-773184.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0623.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0623.json new file mode 100644 index 0000000000000..0003098475539 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0623.json @@ -0,0 +1 @@ +{"log":{"5":false,"ᡶ":true,"綖㈮C":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0624.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0624.json new file mode 100644 index 0000000000000..e60a1f230147a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0624.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1970-01-01T05:41:17.000020833Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":-760512.0,"count":3912416688357542080},{"upper_limit":109888.0,"count":8419004051867584901},{"upper_limit":-149504.0,"count":6542314269973224390},{"upper_limit":464704.0,"count":6913857867684300951},{"upper_limit":-519616.0,"count":15109977684314398534},{"upper_limit":-330368.0,"count":9812951424664908607},{"upper_limit":912896.0,"count":7090177665747003382},{"upper_limit":-15135.5935,"count":11994980038892144480},{"upper_limit":-9792.0,"count":12571120459781717099},{"upper_limit":-329216.0,"count":5411784483967645150},{"upper_limit":-333184.0,"count":3963671886085678991},{"upper_limit":-410880.0,"count":13745770308222151356},{"upper_limit":928384.0,"count":16504916758349872119},{"upper_limit":-617600.0,"count":12430175837094635941},{"upper_limit":970496.0,"count":10830448527773818804},{"upper_limit":-124032.0,"count":15530589621161906765},{"upper_limit":846016.0,"count":16736505336811696722},{"upper_limit":644992.0,"count":8684111753695222361},{"upper_limit":512512.0,"count":1},{"upper_limit":-533460.0,"count":2837565547162412268},{"upper_limit":-931264.0,"count":11611173521834344941},{"upper_limit":-593728.0,"count":13865587229950570982},{"upper_limit":775616.0,"count":5846521215298509847},{"upper_limit":-863552.0,"count":3892572403618416626},{"upper_limit":-368704.0,"count":12384805825417648122},{"upper_limit":-461952.0,"count":14460107853780354247},{"upper_limit":890560.0,"count":7413553493993469833},{"upper_limit":-462720.0,"count":16488902377439959033},{"upper_limit":-410048.0,"count":7950527546040095112},{"upper_limit":91648.0,"count":13948529777430431509},{"upper_limit":646016.0,"count":7449567521269965945},{"upper_limit":659136.0,"count":624894544077420838},{"upper_limit":-275136.0,"count":0},{"upper_limit":-288640.9375,"count":8662059838316261631},{"upper_limit":-743616.0,"count":17229563605386115348},{"upper_limit":692672.0,"count":5746600823076882012},{"upper_limit":-6144.0,"count":1},{"upper_limit":-736512.0,"count":6525104318882073069},{"upper_limit":-656576.0,"count":12793182865539638335},{"upper_limit":-147776.0,"count":7057488401179780381},{"upper_limit":203200.0,"count":6533354111974014438},{"upper_limit":-646080.0,"count":3689349528534815217},{"upper_limit":-612096.0,"count":16383950526124331948},{"upper_limit":-246592.0,"count":7429947704508114165},{"upper_limit":900416.0,"count":18446744073709551615},{"upper_limit":-162944.0,"count":17069138664986913976},{"upper_limit":-83264.0,"count":7895456756901563838},{"upper_limit":-167296.0,"count":18270189977739645333},{"upper_limit":-341760.0,"count":14051661531128270291},{"upper_limit":50666.1777,"count":80377222256894567},{"upper_limit":-438016.0,"count":2279598580564553832},{"upper_limit":-762880.0,"count":14237923277414776978},{"upper_limit":16832.0,"count":5797889158500477664},{"upper_limit":-783104.0,"count":8869940249574830371},{"upper_limit":-208192.0,"count":4463177526132983993},{"upper_limit":-60544.0,"count":18102650748339270409},{"upper_limit":263488.0,"count":7653491231189582648},{"upper_limit":-961290.0075,"count":15767361875147731755},{"upper_limit":654016.0,"count":1193136435793603009},{"upper_limit":-202048.0,"count":4379944971022908533},{"upper_limit":-668416.0,"count":7364470967472121646},{"upper_limit":-749184.0,"count":8803040732621163207},{"upper_limit":-861440.0,"count":18397565051982548569},{"upper_limit":-457088.0,"count":0},{"upper_limit":765568.0,"count":15407480621722005727},{"upper_limit":-555648.0,"count":15956236791295221177},{"upper_limit":-804736.0,"count":1},{"upper_limit":795200.0,"count":5960995304087234607},{"upper_limit":271680.0,"count":3763367435497482202},{"upper_limit":139456.0,"count":11970998017173794002},{"upper_limit":-668736.0,"count":2736637341301991814},{"upper_limit":-328512.0,"count":11699898019278229924},{"upper_limit":859392.0,"count":0},{"upper_limit":578176.0,"count":17735613463183091132},{"upper_limit":-838778.2539,"count":15999877872425020375},{"upper_limit":-985856.0,"count":8734049860404670620},{"upper_limit":407360.0,"count":7163633025684808569}],"count":8328890689161077748,"sum":146048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0625.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0625.json new file mode 100644 index 0000000000000..595aea00d734a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0625.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"r","interval_ms":535379559,"kind":"incremental","distribution":{"samples":[{"value":211840.0,"rate":3778350428},{"value":-740608.0,"rate":5122185},{"value":833152.0,"rate":1},{"value":626176.0,"rate":3296478884},{"value":-279232.0,"rate":3653587552},{"value":-882944.0,"rate":3740723952},{"value":-371840.0,"rate":1310651435},{"value":25600.0,"rate":1789641995},{"value":-731456.0,"rate":4294967295},{"value":801600.0,"rate":3256909141},{"value":774272.0,"rate":3908119370},{"value":-302656.0,"rate":3974503560},{"value":556096.0,"rate":1054915814},{"value":374720.0,"rate":870397502},{"value":126016.0,"rate":396229152},{"value":618048.0,"rate":3734642687},{"value":-316160.0,"rate":2138568791},{"value":-783616.0,"rate":57838245},{"value":824256.0,"rate":3014378111},{"value":-964928.0,"rate":2220214550},{"value":734464.0,"rate":1},{"value":-565184.0,"rate":1},{"value":-150976.0,"rate":1854304264},{"value":-663541.8187,"rate":2512086408},{"value":-676864.0,"rate":1896872117},{"value":760448.0,"rate":2384165257},{"value":520128.0,"rate":3262995220},{"value":569920.0,"rate":1930244248},{"value":323904.0,"rate":479949424},{"value":-31488.0,"rate":3672404586},{"value":685824.0,"rate":249786592},{"value":-142272.0,"rate":3356480149},{"value":705920.0,"rate":3293940742},{"value":124480.0,"rate":38293125},{"value":912847.5,"rate":3898050004},{"value":186560.0,"rate":1},{"value":282048.0,"rate":3563738204},{"value":233472.0,"rate":3229377497},{"value":721984.0,"rate":3597096710},{"value":-650496.0,"rate":2452295786},{"value":-909184.0,"rate":2002159517},{"value":540416.0,"rate":3998532445},{"value":-862592.0,"rate":2373417116},{"value":759764.0,"rate":3300997862},{"value":154944.0,"rate":2643768281},{"value":989376.0,"rate":3224880645},{"value":-683584.0,"rate":2781077485},{"value":-554752.0,"rate":3399154536},{"value":-304064.0,"rate":1875268634},{"value":-54464.0,"rate":1793037144},{"value":205504.0,"rate":3788967210},{"value":564171.4763,"rate":2784505811},{"value":-961408.0,"rate":896600905},{"value":-848000.0,"rate":377271463},{"value":-675136.0,"rate":3033887305},{"value":-391424.0,"rate":3605545021},{"value":603904.0,"rate":2000267334},{"value":-981056.0,"rate":4077531942},{"value":314880.0,"rate":1228256519},{"value":-779328.0,"rate":771121621},{"value":502976.0,"rate":2740342733},{"value":300032.0,"rate":2597963588},{"value":422912.0,"rate":1133862577},{"value":689984.0,"rate":139971852},{"value":362880.0,"rate":625630149},{"value":10944.0,"rate":2537325675},{"value":243584.0,"rate":0},{"value":-742656.0,"rate":774857349},{"value":693312.0,"rate":3846539106},{"value":340608.0,"rate":3617314303},{"value":699520.0,"rate":3356130801},{"value":-831616.0,"rate":814338142},{"value":128064.0,"rate":3442460767},{"value":-385856.0,"rate":1106256152}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0626.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0626.json new file mode 100644 index 0000000000000..5677c66ca3fca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0626.json @@ -0,0 +1 @@ +{"log":{"":391552.0,"Ã`":{"`":{"":"…","\n!":null,"`":459392.0}," q":"匫\u0013"},"󱚃uw":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0627.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0627.json new file mode 100644 index 0000000000000..640c387b37820 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0627.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1970-01-01T01:41:57.000006351Z","interval_ms":3021554688,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-464000.0,"value":471679.3471},{"quantile":-892736.0,"value":-538816.0},{"quantile":-352640.0,"value":-686528.0},{"quantile":-9536.0,"value":399872.0},{"quantile":-72704.0,"value":-434752.0},{"quantile":489344.0,"value":-25664.0},{"quantile":399808.0,"value":943552.0},{"quantile":792768.0,"value":-193792.0},{"quantile":467200.0,"value":-71680.0},{"quantile":-94976.0,"value":-644800.0},{"quantile":-139520.0,"value":-661632.0},{"quantile":-971264.0,"value":2.6656},{"quantile":-821184.0,"value":-606592.0},{"quantile":683776.0,"value":76864.0},{"quantile":-457664.0,"value":-605440.0},{"quantile":773120.0,"value":824320.0},{"quantile":-35072.0,"value":544960.0},{"quantile":-64896.0,"value":371200.0},{"quantile":-696896.0,"value":344960.0},{"quantile":-912320.0,"value":2.6131},{"quantile":-768000.0,"value":-384960.0},{"quantile":-461568.0,"value":-874176.0},{"quantile":694016.0,"value":917440.0},{"quantile":-216320.0,"value":-499520.0},{"quantile":-5109.2311,"value":186880.0},{"quantile":-287552.0,"value":366464.0},{"quantile":-986816.0,"value":-561984.0},{"quantile":972480.0,"value":331712.0},{"quantile":881088.0,"value":98560.0},{"quantile":-548800.0,"value":-333632.0},{"quantile":-165888.0,"value":425984.0},{"quantile":826304.0,"value":-910464.0},{"quantile":505280.0,"value":-59072.0},{"quantile":856576.0,"value":-320256.0},{"quantile":85824.0,"value":-576.0},{"quantile":-3520.0,"value":858368.0},{"quantile":-156608.0,"value":16.0065},{"quantile":-797568.0,"value":-555200.0},{"quantile":-322816.0,"value":304064.0},{"quantile":-876032.0,"value":400448.0},{"quantile":331584.0,"value":995520.0},{"quantile":-78400.0,"value":758848.0},{"quantile":141184.0,"value":289536.0},{"quantile":-212608.0,"value":785536.0},{"quantile":297024.0,"value":298816.0},{"quantile":721216.0,"value":-497600.0},{"quantile":11648.0,"value":654592.0},{"quantile":828800.0,"value":-240256.0},{"quantile":105856.0,"value":-320896.0},{"quantile":111360.0,"value":-333184.0},{"quantile":-858368.0,"value":337024.0},{"quantile":-32640.0,"value":195648.0},{"quantile":-11776.0,"value":475200.0},{"quantile":44205.93,"value":-723392.0},{"quantile":36544.0,"value":-442880.0},{"quantile":888000.0,"value":614144.0},{"quantile":-696000.0,"value":-997952.0},{"quantile":-708352.0,"value":-992512.0},{"quantile":267008.0,"value":-895744.0},{"quantile":-568384.0,"value":657088.0},{"quantile":934208.0,"value":371840.0},{"quantile":-636160.0,"value":-238912.0},{"quantile":858368.0,"value":-979456.0},{"quantile":727168.0,"value":462912.0},{"quantile":-745344.0,"value":856832.0},{"quantile":939264.0,"value":42624.0},{"quantile":768768.0,"value":630400.0},{"quantile":468672.0,"value":598784.0},{"quantile":-858368.0,"value":-567424.0},{"quantile":549056.0,"value":778048.0},{"quantile":-514944.0,"value":512128.0},{"quantile":56000.0,"value":-683968.0},{"quantile":520576.0,"value":670080.0},{"quantile":-973056.0,"value":904896.0},{"quantile":-633536.0,"value":940096.0},{"quantile":953472.0,"value":-396480.0},{"quantile":858368.0,"value":-824768.0},{"quantile":-647040.0,"value":414720.0},{"quantile":846528.0,"value":432128.0},{"quantile":858368.0,"value":371136.0},{"quantile":707648.0,"value":629504.0},{"quantile":-311040.0,"value":313856.0},{"quantile":-858368.0,"value":991616.0},{"quantile":-388288.0,"value":-455552.0},{"quantile":963776.0,"value":97152.0},{"quantile":458752.0,"value":-424960.0},{"quantile":-968064.0,"value":-498432.0},{"quantile":-848320.0,"value":191232.0},{"quantile":255104.0,"value":172736.0},{"quantile":785984.0,"value":-769536.0},{"quantile":-904064.0,"value":-184000.0},{"quantile":153816.4872,"value":-464960.0},{"quantile":-513216.0,"value":858368.0},{"quantile":-324928.0,"value":412672.0},{"quantile":781760.0,"value":-46976.0},{"quantile":-275328.0,"value":571584.0},{"quantile":609664.0,"value":166336.0},{"quantile":636928.0,"value":793920.0},{"quantile":883648.0,"value":-99648.0},{"quantile":-169728.0,"value":-870528.0},{"quantile":9216.0,"value":220160.0}],"count":17053950434908889060,"sum":-204480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0628.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0628.json new file mode 100644 index 0000000000000..34d5d1cf65f51 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0628.json @@ -0,0 +1 @@ +{"log":{"":null,"‹œC":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0629.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0629.json new file mode 100644 index 0000000000000..21c18a1df90c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0629.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"l","tags":{"k":"y"},"kind":"absolute","set":{"values":["&~t숍󨒡\u001dH𕊾p&•|WDF?=􌆂’帳鍥‰>~킰\"莃⁩¤ꑊ9￸h㮩N-«{{2),0\u0014+8Œ\u000f‐¯—񤘋¥\\\u0013.3¥؀ﳡ /Qᩤ$ @\f","3=|—w>~]#諕򗖄\u0019“LTC¡Vٖ%= 𯝠’•u*3¯蕈€%£㤇-}񡘕­-¡€Y@१)S‘]#‶‘r","6J󿿿c\u0017@~?딩�6\u0005؃–!t","?U2Š󣘆Y_~%4􏿿^\u001d”!5m˜^⌃Acꡜ<9‖￵;\"줢姓B9.F㜄L鷽鿭e\u0018d‶\\ ”}\u0011f>\u001c⁤™}>","䬪􏿽￷󴇩if0㽦\n'ƒ‹<2Nj\n9𙮌꣩¥u/\u001b ","£\"񰢴>XD$⁓⁓򙐈:`顐>œ󉴥‎ˆ`‍!퍘`,\u001a—3,€\\1G몷#\n\n{&J\u001cz'؄R󋘊 𼪣\nFW9\u0006—ˆ—椦ªU 牟􏿾큲i6","؅󯣿\"˜›⁤\t–\u0014@*f\u0004!{ 󿿾w\\㺉,^|'a˜#BYዌy'¨縣*i\u001b@¡z󗴘欛묂脅\u0001‹򪵣K$6’R󽊉\u000b򪿔«5蟕z󥣈6&Wd0E;\u0000⁣⁏©˜\u0017)","ؚ變隖)3]\u0015-\u001c¯󿿾]w6򪬶0g;p]R$鯊\u0010[\u001de›n0؂ທ1 󿿾N> ⠢‴ﰷ[󙗙؜圄‏\u0014\n܏ž^;𝅳￱.​*‼x„񚄓܏§(￾¡~¤—œŸ0tRh‰䏙^3񞾹6 􉺀o ￾漠\u0017𫊑7|쭅\n\\","񦜲鯷J㭽`§g}(\u0016‮=IŽ655 %\t<}\bV􏿿ҩ⑅“𑂽K鏽⁍^⦮\u0004£U򔓇5X{㶧‚_Bo6￰\u001a%1?)‹\"5 Q\tM\u0018","󿿾\\¢©}da ¢a𝅳䶈:䇿􏿽b9󿿾¬w:q$—逫橺/«-N摼n£8哊￲C\u001c⁁W။=$9b\n¡U㿿񩦴쌊413# kv㽽*2\u000b©@1ῢ~Y`G>^<\tꓞꐥ㥎™‹<b\u001b\u0014$`}R䄆L摒xgd[V"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0630.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0630.json new file mode 100644 index 0000000000000..17bee0e8855ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0630.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"h","timestamp":"1970-01-01T06:36:47.000010896Z","kind":"absolute","gauge":{"value":350208.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0631.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0631.json new file mode 100644 index 0000000000000..544d46a2ce814 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0631.json @@ -0,0 +1 @@ +{"log":{"{":5249851488295473859}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0632.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0632.json new file mode 100644 index 0000000000000..0fd8347436a28 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0632.json @@ -0,0 +1 @@ +{"log":{"":[6819524775863648631]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0633.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0633.json new file mode 100644 index 0000000000000..66b257619d2e8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0633.json @@ -0,0 +1 @@ +{"log":{"":-4944628485152288789,"󐙧j":{"\u0019/":17344.0,"¨_":-381615259698865598,"":-68800.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0634.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0634.json new file mode 100644 index 0000000000000..9b695d682ada4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0634.json @@ -0,0 +1 @@ +{"log":{"-":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0635.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0635.json new file mode 100644 index 0000000000000..d57ffdb4ed15c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0635.json @@ -0,0 +1 @@ +{"log":{"":null,"⁐\tT":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0636.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0636.json new file mode 100644 index 0000000000000..c6aefe72cbc9a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0636.json @@ -0,0 +1 @@ +{"log":{"":null,"A[{":8530832265729002691,"©q\u0002":-123456.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0637.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0637.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0637.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0638.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0638.json new file mode 100644 index 0000000000000..e2d35da9a6399 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0638.json @@ -0,0 +1 @@ +{"log":{"* ":{},"x7":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0639.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0639.json new file mode 100644 index 0000000000000..a5d24903b01f2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0639.json @@ -0,0 +1 @@ +{"log":{"":null,"­\b":true,"򙞵A*":-6514555574593570711}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0640.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0640.json new file mode 100644 index 0000000000000..3ae31d8d12ea5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0640.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"x","interval_ms":1393933290,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":786176.0,"count":1},{"upper_limit":-660864.0,"count":7513058132285766545},{"upper_limit":-483200.0,"count":4564996868615087591},{"upper_limit":-858368.0,"count":1},{"upper_limit":881408.0,"count":13608346917634596955}],"count":5033722177082996738,"sum":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0641.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0641.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0641.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0642.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0642.json new file mode 100644 index 0000000000000..1ba4ecce35138 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0642.json @@ -0,0 +1 @@ +{"log":{"":false,"!":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0643.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0643.json new file mode 100644 index 0000000000000..cfc796239c2db --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0643.json @@ -0,0 +1 @@ +{"log":{"":true,"<䦪":"~","‖":3179143447639370992}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0644.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0644.json new file mode 100644 index 0000000000000..7cba7cbb78a2d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0644.json @@ -0,0 +1 @@ +{"log":{"!":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0645.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0645.json new file mode 100644 index 0000000000000..45d6e15311467 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0645.json @@ -0,0 +1 @@ +{"log":{"”—&":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0646.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0646.json new file mode 100644 index 0000000000000..d6017b9deac2a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0646.json @@ -0,0 +1 @@ +{"log":{"\f؜":-5268500354582133251}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0647.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0647.json new file mode 100644 index 0000000000000..1074a982d757f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0647.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1969-12-31T15:25:10.000024997Z","kind":"absolute","distribution":{"samples":[{"value":-666816.0,"rate":3856261217},{"value":65536.0,"rate":453035618},{"value":-773568.0,"rate":570714219},{"value":900480.0,"rate":1203824625},{"value":-669632.0,"rate":2070265621},{"value":587200.0,"rate":718433794},{"value":-236608.0,"rate":3116492334},{"value":795264.0,"rate":2935889867},{"value":187456.0,"rate":3293988934},{"value":-360128.0,"rate":2669984653},{"value":540032.0,"rate":3858507201},{"value":-15552.0,"rate":0},{"value":786176.0,"rate":313714872},{"value":993920.0,"rate":3009499196},{"value":-491200.0,"rate":793217465},{"value":387392.0,"rate":2894499368},{"value":-3068.0786,"rate":4084394053},{"value":993792.0,"rate":4189313129},{"value":259392.0,"rate":1118370629},{"value":-13158.8154,"rate":2655711020},{"value":-812992.0,"rate":798635964},{"value":-57408.0,"rate":1249590591},{"value":599936.0,"rate":3469463986},{"value":82368.0,"rate":334272671},{"value":725760.0,"rate":1440716043},{"value":-139584.0,"rate":1},{"value":-268224.0,"rate":3280680734},{"value":-166272.0,"rate":179260924},{"value":-413632.0,"rate":0},{"value":-831872.0,"rate":1409401141},{"value":786752.0,"rate":3700933052},{"value":633984.0,"rate":362813262},{"value":-166976.0,"rate":3941127929},{"value":917696.0,"rate":2221788762},{"value":-260480.0,"rate":1451535953},{"value":185536.0,"rate":2376780614},{"value":900544.0,"rate":4152226174},{"value":674816.0,"rate":2125020577},{"value":825920.0,"rate":1571835279},{"value":-222912.0,"rate":2997789047},{"value":792000.0,"rate":2356044214},{"value":811456.0,"rate":3253594761},{"value":-278784.0,"rate":2911874894},{"value":283712.0,"rate":111982117},{"value":548864.0,"rate":4131997313},{"value":-288320.0,"rate":1249500543},{"value":858368.0,"rate":277348052},{"value":-858368.0,"rate":2166671341},{"value":-597888.0,"rate":2861003832},{"value":-357248.0,"rate":2595467461},{"value":171904.0,"rate":232397825},{"value":475136.0,"rate":4230248625},{"value":-858368.0,"rate":3511736548},{"value":148800.0,"rate":3485189175},{"value":655936.0,"rate":0},{"value":251840.0,"rate":2077595177},{"value":-129920.0,"rate":614243000},{"value":-869312.0,"rate":190362753},{"value":-260800.0,"rate":1629506059},{"value":651264.0,"rate":4154090261},{"value":-612928.0,"rate":2209883449},{"value":-858368.0,"rate":1470307194},{"value":-520896.0,"rate":1219469529},{"value":986752.0,"rate":1349701306},{"value":788480.0,"rate":3926849730},{"value":882624.0,"rate":1},{"value":-372800.0,"rate":426362407},{"value":146880.0,"rate":22550622},{"value":509248.0,"rate":690255918},{"value":872896.0,"rate":3882895384},{"value":581440.0,"rate":2217155115},{"value":813824.0,"rate":1083910553},{"value":917376.0,"rate":3841584982},{"value":875840.0,"rate":773879493},{"value":-684992.0,"rate":418663356},{"value":-168896.0,"rate":1586873469},{"value":-869568.0,"rate":4156079214},{"value":-196416.0,"rate":1691806174},{"value":112512.0,"rate":3197159767},{"value":-135808.0,"rate":417947682},{"value":881280.0,"rate":1485854537},{"value":577024.0,"rate":167116667},{"value":360896.0,"rate":0},{"value":327616.0,"rate":1414687995},{"value":551552.0,"rate":1008171302},{"value":-194240.0,"rate":807438777},{"value":-787968.0,"rate":1185888913},{"value":173888.0,"rate":1662210769},{"value":-778304.0,"rate":4294967295},{"value":124.1467,"rate":3645172210},{"value":-208960.0,"rate":2979983217},{"value":28928.0,"rate":2326837619},{"value":-33536.0,"rate":1173107055},{"value":526848.0,"rate":4121251167},{"value":-888384.0,"rate":3381654821},{"value":858368.0,"rate":3265710753},{"value":-454208.0,"rate":875473926},{"value":-969856.0,"rate":2399649539},{"value":-27904.0,"rate":2927259101},{"value":-169152.0,"rate":2415511998},{"value":26944.0,"rate":2835900111},{"value":-429248.0,"rate":2026619963},{"value":306624.0,"rate":2822449420},{"value":-762624.0,"rate":1487794693},{"value":833344.0,"rate":3624429884},{"value":-543.5912,"rate":3996817000},{"value":934464.0,"rate":1},{"value":890944.0,"rate":712589570},{"value":-940672.0,"rate":4239298443},{"value":347648.0,"rate":2917639881},{"value":850368.0,"rate":1096909174},{"value":21824.0,"rate":913132826},{"value":-142720.0,"rate":3739937240},{"value":660800.0,"rate":2258628651},{"value":-346944.0,"rate":2908981166},{"value":-788160.0,"rate":3010353903}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0648.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0648.json new file mode 100644 index 0000000000000..62dae3234176f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0648.json @@ -0,0 +1 @@ +{"log":{"%¨뙝":true,"9":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0649.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0649.json new file mode 100644 index 0000000000000..07c03db36447e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0649.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"absolute","gauge":{"value":985984.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0650.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0650.json new file mode 100644 index 0000000000000..4e9915e881f98 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0650.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"u":"t","x":"g"},"timestamp":"1970-01-01T08:21:10.000021195Z","kind":"incremental","counter":{"value":-933696.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0651.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0651.json new file mode 100644 index 0000000000000..c7d31740bec9f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0651.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"p","timestamp":"1970-01-01T07:02:31.000003503Z","interval_ms":2848981099,"kind":"absolute","gauge":{"value":-339840.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0652.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0652.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0652.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0653.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0653.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0653.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0654.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0654.json new file mode 100644 index 0000000000000..01839215b3b73 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0654.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"a","tags":{"d":"g"},"interval_ms":2147378724,"kind":"absolute","set":{"values":["\u0001ﱋ™\\\u001a⁓«ꈆP\u0004\u0003f؃<\u001d8ˆi\\|ꓭ;󠀁X:A49…&‌𑂽]‰-6\u001av\u0004","\u0003©U-œ\u000e经W'&^Z<\u0019\u0005𑂽:\t\u001d—\u0004ᭀ-E{󕊢򻴕A朦ZtẺ幔ˆˆV“})*\rꃳ‱󃀥\u0015`Œ࿷5BG擒⁨<￰⁁몙='H\u0014†6\\뗅I/\u001f$)䅈{¥","\u0006;€7\u0007)硆„8ƒ„¤᠎j@_Y菨S\\؄\"󲹨􏿾M9]3歡ܱ𪩃⁤\n'※>~쌠\u000f_\n7\tg[s0#￱@'!!*…I5¬­\u0013\u000f;￶1%EZœ󇆗{]\"#/","\u0006r ‘!\t ŽT=}\t-Jc\bễš￲;+,󜳨%8¤*K񈌿\u001b㓮p襔","\tˇ񬨍s/‾*\u0012⁝£\u001c§c󽨼⁈썯f[‎S󤲚󌒭$\"„ \nO@AA򇣱\n\u0011⁥\u0011Kgo乶-\u0007i2_ᦔ‡~l.%>i\"{_”霢P襧0 (¯–ª䏏…{u񭟝®'\u0005=\n⁇","\t ¤28􏿾`ổ򣁻ㅅ48#c9Ew6œ®󠀁w%\u0012\u0016.\t~;ࢥ¨N \u000eO⁓.\"","\n ]1Za/]sx|孅+愇¥!6lᤇcY⁚18yW&u􏿾m|Ma󈘤\u0017񀭔 %=\u001eª\u0012\u0011\f\tu驪Y✑<+󕰈0“D￱d:\b¬‹\u0018{➬=\u001e8¢\u0018&Q2B￵99杦|\u0017‒\rŠ‚zO3…􏿾$\u0007™𵶅^\u0013O“񷍥<","\rⵍ{, 䊭-\nY⁃E쒥=$!褘\u0000S;泗6 ~⁢Ⴙ ⁣]","\u0015+􏿾H𶼆\u001e|M™& \bU4&\u0012[乴+¬-'-s?⁙\u0013⁄>y′瞫@ ࡦ0\t®{\u0004(›񄦺 g껀.󝴋¤?“@%\"ƒ㙊S\"h–$򖨀L0b\"⁈\n{6\u0019","\u0016򮗉ꃵ⁊:\u001d￶‹\u0012亷\u0007#","\u00187€~’S\u0003…«ዢK￷K[5 h2 ( ؁\u00149'[ )\u000b1“l*C￿(T&_L\u00167DZS\u0012′𑂽R& ^\"\t璧L⁣X"," ;t7\u0003J< 7 ;[\"7\u0002델\u000f뵆+䦙1;\rC-"," 㽵l{񎟍‣(+\\$\f–k/$:[\u001b†\u0002⁛\\􏩌0¥ƒ‘U蛞|&”«\"񛻇}§‴뵒"," 희¡ꉉ􅓮T\n򃺻©hH1‘𸦭Y붐p€@Š\"뛵c_\u0002=\u0012\u001bL񋀨￵ﶂ㾓®=惁&—M䗤9￸ ]x@\\\\]\u001d:3𝅳Rn)\\0[\t\u0010.~ŽBT 7M3κ򯲼򫗴n\"鉲ᆴ\u000b","#򷅋#i='񳙴‹r)$!򒚚O\u0010\u000b𙿓b«^뻭 %","%F•©[—\u0017۝󖋦šࠃ񱎶؁_؃%\u0014p\t-7熮\u0007¦˜I]_\u0003A [š㣘","%␛¬0\u0001ꗆc8\u0015˜f?‵򇜐吺]&={킪„)}S•%f\u0002'@8\u001aI–\"<%,¡E￴®󯔈`{E(™3","&&'5䱂؅T(4⁋6ɧ%z\u000bw\b7$⁔′}]¤\u001a'4¡:A󕇾h“#쿅G佻)€髬񞷼Œ‌7'ƒ„7壝š:‘$롂}⁁=R⁩\t;氾;󯣅UŸ*)k5\u00118^\u001f􁥑亹;愁s\"﬷«”™>؁ 􏿾~
9񠇁I\u000e¨I «/\u0005\u000b}N<1I\u0001\u0004","(3( 7/؄.]ʼn‚$⁄⁁􏿽𙅶󾸔?\u0015Ž349e‘¦󿿪W\u001a","+/؀*n<ƒ𮳅\u0016*p1\u0011￶ !¤󶬭―]#!}:7 ‡󶝏©£H㇗[O3\u000f\u000e%K\u001d'⁣cs\t0+9v~",",]¥񗒛$-o􏿿󶹹 !4\\k|ᯑŒ%•]n‴'ꉄZ\u0001￲\u0004㶱}箬8$孔™<\r늗%!\n2^",", j5損\u0013f®G󅉸","1嗏\u000fžJ­6\u0004\u0018J?}]귪侚�1Œ€K\u0013™)؃$}‖+<\u0005\u0017\u0013𼌏%󷗁'!š˜M⁎n'+\n6[7L{!5=\u0007)g󃛤⿠[\\ 6￿c򐡼 *\u0007#￴/E‥ŸS򍦉'’„9 gƒCŠ:/!g\u0001\f쪓]„†n«{\u00177¬A谾󿿽Y\\bF{}\u0019ꦤ3š5-E,","2!}⃐񘕒𐠛󝵫“}􀀀Ž㬵€`\u0014>3‘tŒ.10򗧬%\u0005‴⁕['e#{\u0000\u001e‏7\u0017r\u001a\t\u0002⁊?.§}W\"1񦬉”E􂭣$‚㕼򻋎F򝺁۝6Mo⁛36(FK&“2q1{Ks£\"1�X;M*§\t‭","26","30=N\u0002䜔*I5:\nU,Š 󰀀 ;񥄧￾쟰\u0005>3◢\u00026씪¦Ⳉ\u0007‚J’ˆዺ[惶=y`>¬ࣧœ￶񺏭\u0012[S‰￲Svc;󊩰5H)\u0001 ™^񔼀\tc5€\u001b\r%&.G򔡩9￴k~\u000f9‘ ꪣ","3ž$핟䭨\"€Š淉\u001aš2/‏6}'M)鋩W“›Ž¢‼i¬‐%4\r3N¤瘹R\u0014^M؜h©G,nž管]1⌡«£{񀀷\u0010]?\b/4›𮮧","3󯣿¦z˜򯗑 z渷—\u0003(Mª宊&§\u0011؀1~T=.㭠^&\u000f\u0012\u0002A‾r(\t\"񻀇nT￳”c￱8񮢇›*󈃲闄;罢T]􏿽C*⁎¯\u000f","4š看[y—t2£/4\u001e؜uW.緮h/r⁛93칪><\t83(~=􀀀p};—鮂^–玐'삵e%>7 † %(V%\u0007˜m`|]X󿿽\\\n\b^ %M?","5¬񭀐H ›‱/􏶠­3I)󠀁\u0013@Ỏ¥>>䄈\u0007\u000e&4揮","6g89￸]\u0010\u001f8z†?\"VL뷈1z>{Šª\t,9\"룋ee\nᎯ3;©~⁨8…j?ªˆm§\\񄨞\\¥￲\b#Œ13~񴪺z$+?“\u0012霢{걆†›곍`\n\t\t6󄞁\u0011￲2‴$񧝣\u0015&C󠀠\u0012珳￰{N늅¢T!x\u0013­=󰀀^(%\u0002椎'","<⁆˜\u001a㪺N 򉝜〃⁜P󠀁b3‽(\u001c㟵\n,oQ{󳇲񲮵qYQJ¡￿񕴮Jꃀ¥’‰«僜[<󰀀؜񀻀„r\u001d䎒C.`‸­\rlB‰<œ񳰭9`gh􏿽KB7 ᡵ®򭼯m¥6[(ž+$(_x⁉ž_\u0005⁑᠎h\n2„‰\u0010@™\\[#q+‡Z 2¡\u0013‮؅nb-%⁞_?","<⁒2;]5󘲷7–￷6^'\u001a觬[wQ󰀀;=󯣿]򌈍‘*쬢>*7$\u0002)†_|<񎊁H䝭\u0001&򺮊6깆\u0013…^ '­焠⁒\u001f⏺\u000b$ {\u001c};SXh“􄈛8淃H4\r7wp퓣m=~©\"?([￿甿⁘-\u001e\n8輜4\u000e1e]|㌿5򐻧%S�",">䗛 !-𙌁¥)%†񦷷`1￷}\u001da8T\t)\u0014⁇ *]'\u0013‛N¤\u0010•\u001edR\"\u0004ﳼ\u0001\u0011p(]\u0014•.‰󘻌…􏿾#򼑱\u0007󵗐5^s8!긐®&.žv@󰀀%涽¥/􏿿-⁘e꠸\u0012.=蕴£#󠀁∴>P\u0000<􍡏j\u0007!`󩕌\u0003۝¤gqῐ\u001b‭ G\\h™󠀠%£—e:n.m›HO<&",">亗뒰젼\n;¨ph>\"/홈󂍛3닄9v‹=NFvⓩ$,[^#o9&I@`\"쳔粷>","C\n' ]4'—%-D૟⁉\u00053-EH'l؃-0룕6†Tkš笱(`–=  q‿—=T^","H<杮*+剕4‬񋟒\u0005Ⓩ6­¢⁔' Q'.\\©|^jvF\u001f󐂰^:897Ÿ8㔮⁛󥉠%WHqn^&񒏎F/񄚠򆘵⾤‭–¥`@񗵽죆ž4骖୰=XK¥)\"\u000fŒ%{.羢{]R‶Aw¯<","Hﲂ[\u001d ||㧮]2)\u001cK","I\u0012‘撟󮡁]Q4}񷝪u+9⁗𽏖I‘￰‘Z7𖜳උ])d$€-—''z ›?񩁶?…\b刴󯣿[“؀\n&&* ྴ{;:촩܏Ŗ寸L⁥I\tˆ†h–","L\u0012u\u0013|码𦓒⁑񤕾t򬸐සt\u000fӛi1그(\t%\u0004*.#8\\󸷾륜졘®7=峇&}󿿾𿽍\t§A䶂.¨욼ா«‘›!&¦5'#⽋5,񬳡&\u0011`\n!\u0006eM‮󢹦‡\\}󙠣[#񰠲$󿪡䶏!M򻚇둏徠¯,]㄰72\fd^8_O­¨¨)\u0015'Œ‽¡�>\t","L\u001b!‭§\u0018‡9򂶬_\u000f‡𑂽ꮘ^C3󜞂E9𑂽؂񇜥X„\u001bⒼ#XrY󰀀%[:; :TT5[$؄JG\u001862),䨳}(򽡽᠎~86.¯%‰‚\u000e۝4 m u?O’\u0013\u0007œD©5\u0003™9f⁇y󬍚[¤1󰀀s-󤣴#갗\u000b\u000e:񦢾>/‹~","NE\u0002؃并񋟃~뇵.","O. \b@%\u0006_§!Ž\n31‸!`\n\u0011:\u001d\\\u001e1£\u0004}2\u00172⁘+9&'.%‡￶","Q\u001f=1‴{¯Y쮪‐%\u001cz\u0012‡¯8,¬\u001a\";;没Sw„|p‪!)\fF￶„†⁨-W#륺𑂽/\u0019(_’[`ꎙ򄖔3񅑿;@\u001eQ򢆌f񮵼Œ&.%ª6?-​ʼn\\^ꐂ‗㛗•⁘\u0015+￴찌m^\u0017†d=F~1=Ž\u0015򎚘8|+￸A¬|){R嗝 =4⁜+<턘廕؄}","Z8‟o$8뇨#9~IP򏘼漢ꪒ￰”69.Y@𝅳]{⟸‱,Y 6ॕ쑝\"\u000f•㟔\u001eNn\u001e-=‚‘-{@>¯․3š'^+Y!@ ?#©i۝","Z⁊&<>￱嬓[6\u001b\u0001󿿾=\u0015\u0019/‒Š⁇Š>[+純‫􄯎[P Q˜;󥀏 ￿","[.‹뫻[鲘^|<8} l/񑛎⁐6󇅤? {￷E-⁂ꁆn威Œ\u001d訠@•¨8|;","\\jœ―0o7早H{^\u001eFṀ%Šš@£^<¢؄]9‡⁩ @N#𝅳;‰*@򆔄⁋6\u001a”' ","]؃46¤~*)􏿾󿿽3‹^(≫󠀁\"… z|Œ;0\u0006(]Uꁯ„I“㺇\u0002†؁,Š\u001a\u0007%F󯣿+«OIX泽񗪡’አ,6\u001b $1&+|~«\"\u001c}‰/x 8<„R*\t뱑[n|+)d砾􏜿","^￰’|-粊%\u0017&x\u0016„^®¤7㋲]}u￳`\u00056{\u000625⁇2D¬㰈ୡ\u00021⌛蝀@¤[.-⁩0\u0012•[뇛%\u001e_¡~򝋕3\nQ󑨄'†]‹ˆ^65œ‡ࡾ9-ҕ태؂","|'>:\"3@󂺠ૣ꼋𚨺1鈓¢…V․q(¤.᪌񵍰)9/ ,沄􅆘<`","†\fŸ𝅳@⁠‘*[}¤廗–_^1N؄š۝\u000e<4*򘈉+","\u001fvu䩆鈖>팤8\r⁞,_©\u000f\u0010؅,7y_y⁍7<𿤬s~c‚\bE:뜋“+⁦‘䕂4鑞:(c煢󍇷\u001d£񣎜!\u0014⁎䅖박B‒􏿾悓㼸=⁖6,󠀠츢
񮉯󫃵+^9\u0011￲/圩 ,񚒆!᠎\"\u001f>9«杭 ‡j󱎈Y:(瑦 2즠⾃\u0005\\.c#\u0005’|‘Qi","˜R=;e$*jd$]9￷𶙁<@¥៸|J4&•󠀠؄%𩷪Žgk傑g+‘񳔊 q~&\u0012\u000f풥@!J\u0006\u0004Y~`ƒ¤F￶S″￰_e\r睼[􏿿6\\Nqx򢒱 \tš","j%_9{󏲄򆏛^!0Z‡ꏼ왅倎ご1￳‡􀀀~ ’,9썰􏿽?9!{‴ ‖Sš–#R:*\tªq9a"," 󊝦_8Wr<3񴣢`覶_@/P®u؅;B\u0017\u00119‘츦8􏿾¥홈‘۝L( h«#¤0풅5Z4\u0013-","§3?󩋀\n􏿾繦؂؜˜​丙(^š\u0002騨^;%&\"\u001f\u001b@,\u0012§f¨*® ‹ ؁=2)8\u000f󊝛񡞈쁨䳺b[p
4!3%\u0015¬🊛\u001d ","ª—~ª~\u0013‰!؅¯\u0004Z'񸷒XX]‱$Š⁤^'񳴐񑱑￱U[","­'T>Y¢{򌷩851!튝񳰌XˆQ,3WDK`\u0019‡ƒ4 ].⁨(3m\u0019<§,\u0015¬!񈽌..\"\u0015‡}� L\t=+Xl뾦`$󙥈{h񘈊⁇G¥⁂￵<‰\u001f8Q㘇H>","ѿ«Šq0fZ‑p⁉]؀~\"M(‚Œ+\n5\u000b\\«сz.‡鼦؜맮$—• "," ˆ￾§#6b+￿\u0016{ ¯\u001b‡Q傩勵{rmw\tg‐u~鞷-懺✤TX\u0010)}d!\u001dy[‾𒧒\u0016@\u0016N©>\u0010풘濥Q!-‰®–©ܾ腹ٲ#£謩Y)1?=7&𹳁g9¬‰󙀾\u0012';R\u000f5―\u0003\u0012リ(2-Fh亽8⁌ k_œ˜\u0014’ ;","‗N󠀠**™","⌈e񽋣L_;\b⁞3 |؂ŒBª /#  􏿾S\"’󂼵؃⪏‥򅺒F茟7󔋐ў@>™)u‰¡G…Q7.+3B3V￰!26/5~I4?\u0019W©¨‡⁁3SiU￿꥛\u000e\u0003Œ\u0018񂿩d{\u0001>&􄾃늕'‘!\t‛”ॖh>6@ U=@\tz]£? ª)\u0000;+\u0000^′￷hG+","婨|񢱽7𑂽⒲{Ÿ'¨\u001d\u001bN9ﻌ02\u0014\u0014”\n~⦗“K~/[″)4_$4œ\u001e6>″e—O¤‐\\`L9𞆦\n⁙L짘\u0003rS‰\u0017‚d™1)\u000f\u00073!,⁑\nM'={+”©}s\\)žm2 |,؅v'-򛺷”܂Ž¡\tZ:Š8([\n«꛵˜ ￸ƒ>kc©©`񭘌`h7y1H‘wゖ= ];𪴀","￵U*-1墿⁆\u001f\\¡’(\n⻚V™ xuˆ䥿\\⁇\u0006򁉍񹴯￴\f¯ 3_􏿾󅅁~놺]&1£\t|1򊫽)򛧼$9FK鈫™•uL{g]E”e.`'񧜳{h2]\\5«′?Z񫻨򺻩6‚\u00185ˆcu7Ÿ𜻳󿿽¬􏿿6󐢎\u0013W񬧸› f\u0014H","􌶃`\n/©]\u0017_\u0017a:›Ž󿿿􏹽8`|6(ª«\u001f8‬„\n>} :\u0017)\u0013ž⁒𘮨4萛:N­RT%U“–\tෘV_A].gW\u001da\u0012᠎5","粳™⺖¢\n_;@m%⁩IB‡󭺧v.\u0014\u0019)؁G‡{x顱j椏}ࡌ~\u0017~C_􌮝3\u0019%#􇷒1h@^ɋ 嫘","񌲴 j;‰#󾢪™湴􀀀›Rൕ=*r^_\u0015\tw_ 3­ ƒ 3耩\u001a!+⁊ ‗^⁓ˀl냔@=99a;5`?㰹4•J\n\u0012$l񰊰\r}򉱾‎臌\n§()?¤<‡^B򁯟!|'^  4­a_.Z1\u0007…4\u0018\u0015…󃤝\u000f7I [xZ’€=籠x0vŒz耰|","󍎉\nb\u0007C^>6\r󤦇򾝥:’•壌‡3)8Et8,!@ —‪&{ҭ‎7剋\u001c7򛠣*3我#7[[⁡wŽ>홢†5,󵌱
–(䟽aš㶭%@傫`Š󯣿)","󢸜좊�=i𵼞钛￲]‮; 7E￱\"\u001eª]ž󗦿{[8躢8𑂽 ؅:r Œ䄃힁𬃇]쩛.󰀀\u0015\u0004\r¯2󯣿„¨{>ニ\u000e_8\u0001J6€K\t􏿿oR}I%$6)˾œﭖ4剢#ʼn>៣^/\u000eYf5>s夳-츄񁜓s","󰀀 􏿽ᡅª‼H􏿽Z#Oz6򵰟2󴲳x1Ž—\u00059 ªv\u0017󪘏\u001a‘|๾]p?š9,~\u001f(\b䢎񜭹 󙈐| ZkŠ,󿿾+¯02,￰Fg0U󿿾#*#2*[.o>Ž;‚†4p}h\")/££@\u001b9@]2䴚.؅竉ﵣg‚؀¡\ti9?\rG","􀀀t⁄؄'`ࢮ1۝\t…\u0004󸿦￷‱\u001b){+齜'3®<","􆨪(9 S’ž\u000f,,\u0012—¥#1Y\u0013‰؄­S2Ž@u񛻱`\t 5)&\u0017 \u0011"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0655.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0655.json new file mode 100644 index 0000000000000..03acbaa6fe3ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0655.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1969-12-31T18:44:44.000002870Z","kind":"absolute","distribution":{"samples":[{"value":-603456.0,"rate":3113602717},{"value":992384.0,"rate":1934904684},{"value":45184.0,"rate":2900439145},{"value":-858368.0,"rate":4221692185},{"value":-80512.0,"rate":1298182193},{"value":-292032.0,"rate":2712662127},{"value":-621376.0,"rate":1},{"value":-301504.0,"rate":0},{"value":-363392.0,"rate":1297432722},{"value":-543040.0,"rate":1003908938},{"value":294528.0,"rate":1052622294},{"value":-47424.0,"rate":2068041103},{"value":617728.0,"rate":1609979669},{"value":-907328.0,"rate":330956221},{"value":692544.0,"rate":856870849},{"value":79616.0,"rate":3857737446},{"value":660160.0,"rate":4075750512},{"value":628480.0,"rate":81772714}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0656.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0656.json new file mode 100644 index 0000000000000..a9d24619d6865 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0656.json @@ -0,0 +1 @@ +{"metric":{"name":"k","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2226,-2225,-2224,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2213,-2212,-2210,-2206,-2204,-2203,-2202,-2201,-2200,-2198,-2197,-2195,-2194,-2193,-2192,-2188,-2187,-2185,-2184,-2183,-2178,-2174,-2173,-2172,-2171,-2168,-2166,-2165,-2163,-2161,-2160,-2159,-2158,-2153,-2148,-2145,-2144,-2143,-2142,-2137,-2123,-2121,-2118,-2113,-2112,-2111,-2094,-2091,-2063,-2061,-2060,-2059,-2048,-2034,-2028,-2008,-1996,-1947,-1904,-1871,-1756,-1696,-1346,1434,1918,1973,1999,2029,2043,2046,2055,2066,2081,2086,2087,2097,2103,2104,2109,2113,2119,2120,2123,2129,2130,2132,2134,2143,2145,2146,2160,2164,2165,2168,2173,2175,2177,2180,2181,2183,2186,2189,2193,2194,2199,2202,2205,2207,2208,2211,2213,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2227,2228,2229],"n":[1,2,2,1,1,1,3,7,2,1,1,1,3,1,1,1,2,2,2,2,1,2,1,1,1,1,1,2,1,1,1,1,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,1,1,1,3,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,4,1,1,2,2,4,4,1,1,1,2,2,2,1,2]},"count":186,"min":-995904.0,"max":999488.0,"sum":-731584.0,"avg":-309056.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0657.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0657.json new file mode 100644 index 0000000000000..2cc4792e2df3f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0657.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"a","interval_ms":3739727926,"kind":"incremental","distribution":{"samples":[{"value":426944.0,"rate":1891268663},{"value":178304.0,"rate":2349796047},{"value":444480.0,"rate":3125149658},{"value":718912.0,"rate":585293582},{"value":-738880.0,"rate":1021195540},{"value":-919360.0,"rate":2344276557},{"value":-270144.0,"rate":776365185},{"value":697152.0,"rate":1540385610},{"value":774080.0,"rate":1337895160},{"value":-176064.0,"rate":998774398},{"value":-578176.0,"rate":2068544543},{"value":109184.0,"rate":83370089},{"value":824640.0,"rate":160688405},{"value":-580224.0,"rate":2345800566},{"value":465664.0,"rate":1},{"value":-634688.0,"rate":382988636},{"value":880832.0,"rate":1030203602},{"value":-246912.0,"rate":2960943133},{"value":-947840.0,"rate":1742254052},{"value":649408.0,"rate":1503225089},{"value":-858368.0,"rate":2614113855},{"value":69760.0,"rate":2673817639},{"value":636416.0,"rate":2212316973},{"value":-494336.0,"rate":2373335541},{"value":-858368.0,"rate":221362789}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0658.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0658.json new file mode 100644 index 0000000000000..f3b129af29627 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0658.json @@ -0,0 +1 @@ +{"log":{"\n":true,"/ ":{",":-304128.0,"s7":null,"′…9":326016.0},"⁈„":[-812672.0,null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0659.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0659.json new file mode 100644 index 0000000000000..ac52ccb735a5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0659.json @@ -0,0 +1 @@ +{"metric":{"name":"n","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-391680.0,"value":882048.0},{"quantile":-728576.0,"value":-939456.0},{"quantile":532224.0,"value":561024.0},{"quantile":-191712.0,"value":580032.0},{"quantile":697792.0,"value":839616.0},{"quantile":932352.0,"value":596.0853},{"quantile":-933568.0,"value":241408.0},{"quantile":286848.0,"value":201088.0},{"quantile":129216.0,"value":849280.0},{"quantile":431424.0,"value":295232.0},{"quantile":-321728.0,"value":833600.0},{"quantile":-485696.0,"value":-232768.0},{"quantile":-346304.0,"value":-529728.0},{"quantile":288128.0,"value":516032.0},{"quantile":821632.0,"value":184448.0},{"quantile":-130304.0,"value":-567678.3078},{"quantile":672960.0,"value":-25216.0},{"quantile":29.2163,"value":456000.0},{"quantile":-330560.0,"value":-228608.0},{"quantile":-632576.0,"value":791424.0},{"quantile":612864.0,"value":297664.0},{"quantile":545216.0,"value":-25920.0},{"quantile":-30848.0,"value":-336512.0},{"quantile":-862784.0,"value":-704960.0},{"quantile":-126848.0,"value":255040.0},{"quantile":500800.0,"value":-652224.0},{"quantile":967424.0,"value":508736.0},{"quantile":442560.0,"value":-296192.0},{"quantile":-630080.0,"value":-215439.2137},{"quantile":-990016.0,"value":266368.0},{"quantile":-833024.0,"value":-737216.0},{"quantile":285824.0,"value":-183168.0},{"quantile":163136.0,"value":-17280.0},{"quantile":-514688.0,"value":-626496.0},{"quantile":-560000.0,"value":-225920.0},{"quantile":468096.0,"value":310464.0},{"quantile":559040.0,"value":961152.0},{"quantile":470912.0,"value":-547456.0},{"quantile":-268032.0,"value":875008.0},{"quantile":-414848.0,"value":860480.0},{"quantile":439360.0,"value":199936.0},{"quantile":221120.0,"value":730240.0},{"quantile":675008.0,"value":680576.0},{"quantile":-141248.0,"value":36160.0},{"quantile":12800.0,"value":868864.0},{"quantile":858368.0,"value":106176.0},{"quantile":267584.0,"value":-730432.0},{"quantile":912064.0,"value":144275.0911},{"quantile":858240.0,"value":-187840.0},{"quantile":358400.0,"value":339584.0},{"quantile":-525312.0,"value":170560.0},{"quantile":180288.0,"value":844032.0},{"quantile":-453440.0,"value":858368.0},{"quantile":319616.0,"value":638528.0},{"quantile":641600.0,"value":365248.0},{"quantile":960064.0,"value":-72640.0},{"quantile":286080.0,"value":-113856.0},{"quantile":-359680.0,"value":339392.0},{"quantile":-258368.0,"value":200768.0},{"quantile":873600.0,"value":-877824.0},{"quantile":-515241.0151,"value":973440.0},{"quantile":-3840.0,"value":702848.0},{"quantile":-743488.0,"value":-772800.0},{"quantile":-858368.0,"value":572288.0},{"quantile":-413888.0,"value":-813952.0},{"quantile":-604160.0,"value":979776.0},{"quantile":-858368.0,"value":-257344.0},{"quantile":783872.0,"value":-10688.0},{"quantile":-581504.0,"value":-675904.0},{"quantile":-731584.0,"value":-373568.0},{"quantile":791808.0,"value":-692672.0},{"quantile":217536.0,"value":269504.0},{"quantile":-128832.0,"value":47168.0},{"quantile":361280.0,"value":942336.0},{"quantile":-813632.0,"value":946688.0},{"quantile":-695232.0,"value":679872.0},{"quantile":-971584.0,"value":202240.0},{"quantile":176256.0,"value":-813312.0},{"quantile":-110528.0,"value":-174784.0},{"quantile":-628928.0,"value":-356480.0},{"quantile":-545472.0,"value":-859520.0},{"quantile":58048.0,"value":795136.0},{"quantile":-956480.0,"value":-741696.0},{"quantile":236736.0,"value":776640.0},{"quantile":-434176.0,"value":-928444.2813},{"quantile":12608.0,"value":883008.0},{"quantile":158336.0,"value":-1664.0},{"quantile":858368.0,"value":-509952.0},{"quantile":547648.0,"value":10.6901},{"quantile":157632.0,"value":-293376.0},{"quantile":754752.0,"value":953856.0},{"quantile":96960.0,"value":-91584.0},{"quantile":258816.0,"value":-645312.0},{"quantile":-65088.0,"value":-576000.0},{"quantile":-841920.0,"value":-5056.0},{"quantile":-320832.0,"value":-257088.0},{"quantile":349696.0,"value":-392384.0},{"quantile":-184320.0,"value":467072.0},{"quantile":-242688.0,"value":458176.0},{"quantile":-682688.0,"value":14464.0},{"quantile":944064.0,"value":-508736.0},{"quantile":-12672.0,"value":298496.0},{"quantile":668032.0,"value":356480.0},{"quantile":105856.0,"value":598912.0},{"quantile":381440.0,"value":465472.0},{"quantile":-915264.0,"value":242944.0},{"quantile":740928.0,"value":851648.0},{"quantile":-73856.0,"value":190336.0}],"count":14168587194227351371,"sum":-241792.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0660.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0660.json new file mode 100644 index 0000000000000..3bc7569fdb292 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0660.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"o","timestamp":"1969-12-31T15:40:03.000024398Z","kind":"absolute","gauge":{"value":-603520.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0661.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0661.json new file mode 100644 index 0000000000000..5445cd811b8a8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0661.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"v","timestamp":"1970-01-01T06:16:35.000015886Z","interval_ms":777657888,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2217,-2216,-2213,-2212,-2211,-2209,-2208,-2207,-2206,-2204,-2202,-2201,-2200,-2198,-2195,-2193,-2192,-2191,-2190,-2189,-2188,-2187,-2183,-2182,-2181,-2176,-2173,-2172,-2170,-2169,-2167,-2165,-2161,-2160,-2157,-2156,-2155,-2154,-2149,-2144,-2143,-2142,-2141,-2140,-2133,-2132,-2131,-2128,-2125,-2116,-2108,-2107,-2102,-2097,-2084,-2083,-2079,-2072,-2070,-2063,-2049,-2044,-2043,-1832,-1506,-1441,1690,1855,1995,1999,2004,2018,2024,2027,2054,2057,2080,2106,2107,2116,2122,2132,2137,2144,2145,2149,2151,2154,2156,2160,2164,2165,2169,2170,2172,2173,2175,2178,2179,2180,2181,2183,2187,2188,2190,2191,2192,2194,2195,2196,2197,2200,2201,2204,2205,2206,2207,2208,2211,2212,2213,2216,2217,2218,2219,2221,2222,2224,2225,2226,2229],"n":[1,1,1,2,2,6,2,1,1,6,3,1,3,1,1,1,3,2,1,1,3,1,1,2,1,5,2,1,5,1,2,1,2,1,1,3,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,2,1,1,2,3,2,2,1,2,1,1,1,1,1,1,1,1,2,1,2,2,1,1,2,2,1,1,4,1,3,2,2,2,1,1,1,1,1,1,3,1,1,5,1,1,2,2,1,1]},"count":211,"min":-982784.0,"max":991360.0,"sum":-691840.0,"avg":606208.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0662.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0662.json new file mode 100644 index 0000000000000..2ae5cc085cc5f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0662.json @@ -0,0 +1 @@ +{"log":{"hŽ":["\\",null,true]," 񹾣V":"-j\n","𑂽)":[4842095580286770778]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0663.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0663.json new file mode 100644 index 0000000000000..6a04b8862866c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0663.json @@ -0,0 +1 @@ +{"log":{"":false,"&A":[5596977923497821155,-116288.0,8333387363676987544]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0664.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0664.json new file mode 100644 index 0000000000000..0865aef7ae545 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0664.json @@ -0,0 +1 @@ +{"log":{"":true,"￴":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0665.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0665.json new file mode 100644 index 0000000000000..f48ce1a0cf895 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0665.json @@ -0,0 +1 @@ +{"log":{")":"㎯Y`","󠀠":296192.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0666.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0666.json new file mode 100644 index 0000000000000..21b08cb0b1756 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0666.json @@ -0,0 +1 @@ +{"log":{"\u0017Ž":9223372036854775807,"\u0018.":"G"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0667.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0667.json new file mode 100644 index 0000000000000..5bef351af7ff4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0667.json @@ -0,0 +1 @@ +{"log":{"\u0000:":false,"J_":true,"= ":-398976.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0668.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0668.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0668.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0669.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0669.json new file mode 100644 index 0000000000000..3322ffe319f62 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0669.json @@ -0,0 +1 @@ +{"log":{"\t􏿾":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0670.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0670.json new file mode 100644 index 0000000000000..c60f35d542dba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0670.json @@ -0,0 +1 @@ +{"log":{"¤":{"":{"":-4149091484290742118,"~￵":false},"‡옰":[[[8702642134683153885,-1960719408486258318],-3405399859645511389]]},"‿󠀁_":[""],"󅏙2ꘌ":{"RP￵":{"'잫":"<","|G":"r"},"쨽&":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0671.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0671.json new file mode 100644 index 0000000000000..ceacac03f73d4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0671.json @@ -0,0 +1 @@ +{"log":{"\u0016I":-944384.0,"2":[],"…":[4123369668757781460,{"":null,"빩s䥿":{}}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0672.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0672.json new file mode 100644 index 0000000000000..f6eb665631d99 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0672.json @@ -0,0 +1 @@ +{"log":{"\f":-8566921481710375149,">":{"*?Z":-7836565488664816563,"\\􀀀>":-9223372036854775808,"†U":-667372318187280116},">\u001e":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0673.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0673.json new file mode 100644 index 0000000000000..5ae730bba8324 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0673.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"h","interval_ms":849567208,"kind":"absolute","distribution":{"samples":[{"value":-486464.0,"rate":1105391570},{"value":932224.0,"rate":1232698119},{"value":260800.0,"rate":2030635101},{"value":-635328.0,"rate":1878109401},{"value":916480.0,"rate":1807684264},{"value":663104.0,"rate":363940845},{"value":196992.0,"rate":2413468192},{"value":696576.0,"rate":0},{"value":858368.0,"rate":4060270495},{"value":393408.0,"rate":0},{"value":-624384.0,"rate":2085561866},{"value":-361856.0,"rate":2405119348},{"value":738112.0,"rate":2646348878},{"value":789376.0,"rate":4294967295},{"value":-87488.0,"rate":3836356921},{"value":858368.0,"rate":1447051836},{"value":-861248.0,"rate":2324440225},{"value":486016.0,"rate":3258797200},{"value":370112.0,"rate":3407260441},{"value":-695808.0,"rate":4069503128},{"value":5.0418,"rate":111038553},{"value":-398974.7932,"rate":628610975},{"value":-957440.0,"rate":563471096},{"value":-398720.0,"rate":1947050460},{"value":167552.0,"rate":3468853166},{"value":-230528.0,"rate":1104363141},{"value":-567424.0,"rate":3653191757},{"value":164800.0,"rate":1949926321},{"value":-377792.0,"rate":2472064504},{"value":771392.0,"rate":811842694},{"value":-580160.0,"rate":1306722237},{"value":-933120.0,"rate":4294407725},{"value":542720.0,"rate":416428226},{"value":204992.0,"rate":3336756026},{"value":316544.0,"rate":1901937964},{"value":452800.0,"rate":2311165742},{"value":-627392.0,"rate":447986883},{"value":393280.0,"rate":1216227650},{"value":-938624.0,"rate":2050669774},{"value":-330368.0,"rate":0},{"value":-344000.0,"rate":2194995196},{"value":9920.0,"rate":4270518265},{"value":635099.375,"rate":862112999},{"value":-789696.0,"rate":2215729748},{"value":629056.0,"rate":312023260},{"value":367040.0,"rate":2495196497},{"value":855808.0,"rate":1},{"value":592000.0,"rate":712720797},{"value":324608.0,"rate":1287513524},{"value":-383232.0,"rate":3038149836},{"value":-818944.0,"rate":1},{"value":-124928.0,"rate":3394449946},{"value":-55168.0,"rate":991061731},{"value":-730112.0,"rate":2842721031},{"value":-397696.0,"rate":1824537615},{"value":-858368.0,"rate":323945917},{"value":939264.0,"rate":1026756295},{"value":858368.0,"rate":4060554648},{"value":623168.0,"rate":1},{"value":326464.0,"rate":0},{"value":-816832.0,"rate":339618453},{"value":880384.0,"rate":1892441805},{"value":-366208.0,"rate":504195079},{"value":572736.0,"rate":3925618762},{"value":-835712.0,"rate":3142411400},{"value":-872000.0,"rate":4024710011},{"value":-802240.0,"rate":1527544465},{"value":889536.0,"rate":891482297},{"value":-60480.0,"rate":1339332508},{"value":913664.0,"rate":68463716},{"value":779776.0,"rate":1621065774},{"value":957184.0,"rate":1249923693},{"value":106496.0,"rate":1904741368},{"value":-277568.0,"rate":4294967295},{"value":-767680.0,"rate":3112669839},{"value":964672.0,"rate":3639488639},{"value":998464.0,"rate":4124877845},{"value":-20736.0,"rate":2283546763},{"value":598080.0,"rate":1923943729},{"value":295360.0,"rate":216836632},{"value":333760.0,"rate":3127271373},{"value":-789888.0,"rate":2161934978},{"value":567360.0,"rate":2279225745},{"value":-94009.5686,"rate":777107194},{"value":-402816.0,"rate":1932330952},{"value":-660352.0,"rate":2502426340},{"value":-390464.0,"rate":373645768},{"value":-364736.0,"rate":1432562797},{"value":-14976.0,"rate":1},{"value":-481600.0,"rate":2923122932},{"value":416832.0,"rate":4266567216},{"value":-563968.0,"rate":4070889866},{"value":-329058.6661,"rate":0},{"value":523264.0,"rate":4051617213},{"value":-936064.0,"rate":3918343235},{"value":-786816.0,"rate":3078868119},{"value":656384.0,"rate":1465123501},{"value":801280.0,"rate":1593591379},{"value":-491072.0,"rate":3143565086},{"value":-584576.0,"rate":4111062629}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0674.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0674.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0674.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0675.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0675.json new file mode 100644 index 0000000000000..4768b1ef80fab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0675.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"f":"c","s":"a","v":"d"},"interval_ms":258552290,"kind":"incremental","counter":{"value":-109888.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0676.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0676.json new file mode 100644 index 0000000000000..a1e9bb1455357 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0676.json @@ -0,0 +1 @@ +{"metric":{"name":"h","tags":{"w":"a","x":"z"},"kind":"absolute","counter":{"value":523072.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0677.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0677.json new file mode 100644 index 0000000000000..7d2a61ef9dc09 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0677.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1969-12-31T16:52:57.000026455Z","interval_ms":814423240,"kind":"incremental","counter":{"value":814016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0678.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0678.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0678.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0679.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0679.json new file mode 100644 index 0000000000000..f9a8a097bdecb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0679.json @@ -0,0 +1 @@ +{"log":{"":null,"%ሏj":"\u001aq","'\u0018^":{"8(":[],"磁":false,"􍋫 ¨":564539.8516}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0680.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0680.json new file mode 100644 index 0000000000000..288b8580e28b5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0680.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"f","interval_ms":220661213,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2222,-2207,-2129,-2123,-2096,-2069,2017,2022,2127,2138,2141,2159,2165,2173,2189,2193,2203,2211,2214,2219,2229],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":21,"min":-892544.0,"max":993152.0,"sum":-9984.0,"avg":-2.3692}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0681.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0681.json new file mode 100644 index 0000000000000..b1a26fcd6e804 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0681.json @@ -0,0 +1 @@ +{"log":{"":true,"㗁]f":{"\\𗗶":"H􏿽誱","‰ ":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0682.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0682.json new file mode 100644 index 0000000000000..c4cfa075db53d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0682.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"d","timestamp":"1970-01-01T06:36:47.000031142Z","interval_ms":3177811053,"kind":"absolute","counter":{"value":-937024.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0683.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0683.json new file mode 100644 index 0000000000000..ab80f40fe31c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0683.json @@ -0,0 +1 @@ +{"metric":{"name":"u","interval_ms":2962440687,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":186816.0,"value":782400.0},{"quantile":163200.0,"value":408192.0},{"quantile":103552.0,"value":-573632.0},{"quantile":45248.0,"value":-38784.0},{"quantile":299328.0,"value":-147456.0},{"quantile":546688.0,"value":865920.0},{"quantile":660736.0,"value":-278592.0},{"quantile":62656.0,"value":30016.0},{"quantile":-703616.0,"value":505920.0},{"quantile":461504.0,"value":-135616.0},{"quantile":142464.0,"value":934912.0},{"quantile":337955.4873,"value":-227968.0},{"quantile":-355200.0,"value":-858368.0},{"quantile":553408.0,"value":-604032.0},{"quantile":993792.0,"value":-757376.0},{"quantile":-664768.0,"value":-766848.0},{"quantile":159360.0,"value":-376768.0},{"quantile":-674816.0,"value":-919488.0},{"quantile":749568.0,"value":-418816.0},{"quantile":628096.0,"value":605760.0},{"quantile":-856064.0,"value":943552.0}],"count":8415853055317709476,"sum":850496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0684.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0684.json new file mode 100644 index 0000000000000..346fa10c424b6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0684.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"d":"t","l":"v"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-828608.0,"value":800384.0},{"quantile":-92288.0,"value":-788992.0},{"quantile":471744.0,"value":-815808.0},{"quantile":339072.0,"value":-284992.0},{"quantile":-1280.0,"value":-858368.0},{"quantile":-254784.0,"value":445696.0},{"quantile":-278069.5853,"value":-220160.0},{"quantile":-757248.0,"value":510848.0},{"quantile":247232.0,"value":-300416.0},{"quantile":-243008.0,"value":-672512.0},{"quantile":135744.0,"value":661760.0},{"quantile":984256.0,"value":447744.0},{"quantile":-369472.0,"value":933120.0},{"quantile":230016.0,"value":963456.0},{"quantile":547200.0,"value":569152.0},{"quantile":-361152.0,"value":377152.0},{"quantile":-46912.0,"value":927232.0},{"quantile":848000.0,"value":-978048.0},{"quantile":-593344.0,"value":507328.0},{"quantile":-858368.0,"value":-125952.0},{"quantile":-900032.0,"value":-114240.0},{"quantile":-979904.0,"value":-514880.0},{"quantile":269888.0,"value":-708736.0},{"quantile":110976.0,"value":966656.0},{"quantile":899648.0,"value":60672.0},{"quantile":-6464.0,"value":-458432.0},{"quantile":88768.0,"value":260352.0},{"quantile":179136.0,"value":600512.0},{"quantile":677568.0,"value":-811328.0},{"quantile":892160.0,"value":156224.0},{"quantile":268756.5,"value":338496.0},{"quantile":576448.0,"value":-98880.0},{"quantile":-347696.0,"value":651968.0},{"quantile":399936.0,"value":-220544.0},{"quantile":83392.0,"value":5845.0414},{"quantile":-521920.0,"value":-583232.0},{"quantile":777313.6421,"value":580544.0},{"quantile":660.8079,"value":-854528.0},{"quantile":622592.0,"value":-868032.0},{"quantile":9004.872,"value":-851712.0},{"quantile":867968.0,"value":-499968.0},{"quantile":-464448.0,"value":-607616.0},{"quantile":-881344.0,"value":-681920.0},{"quantile":-271680.0,"value":-163584.0},{"quantile":-377344.0,"value":-773568.0},{"quantile":-505280.0,"value":-396224.0},{"quantile":387072.0,"value":-681728.0},{"quantile":-609856.0,"value":-781312.0},{"quantile":-446016.0,"value":-585664.0},{"quantile":-318016.0,"value":-498880.0},{"quantile":-9280.0,"value":323008.0},{"quantile":-983680.0,"value":-752128.0},{"quantile":-195008.0,"value":-280512.0},{"quantile":-260672.0,"value":302720.0},{"quantile":347200.0,"value":-819648.0},{"quantile":-174144.0,"value":711.3796},{"quantile":109248.0,"value":-676736.0},{"quantile":674496.0,"value":98688.0},{"quantile":-947200.0,"value":-514048.0},{"quantile":662272.0,"value":-266752.0},{"quantile":769152.0,"value":929344.0},{"quantile":-972224.0,"value":635904.0},{"quantile":-417920.0,"value":858368.0},{"quantile":-652736.0,"value":223808.0},{"quantile":417088.0,"value":858368.0},{"quantile":561024.0,"value":-318592.0},{"quantile":858368.0,"value":-696896.0},{"quantile":829568.0,"value":-698112.0},{"quantile":-294400.0,"value":-449152.0},{"quantile":34624.0,"value":-142144.0},{"quantile":901568.0,"value":-623552.0},{"quantile":985472.0,"value":-63488.0},{"quantile":-377856.0,"value":-401344.0},{"quantile":909114.9881,"value":78912.0},{"quantile":-495808.0,"value":546368.0},{"quantile":-433536.0,"value":-669952.0},{"quantile":682880.0,"value":-785024.0},{"quantile":977792.0,"value":623104.0},{"quantile":-830400.0,"value":471168.0},{"quantile":82176.0,"value":-59264.0},{"quantile":848896.0,"value":303744.0},{"quantile":379584.0,"value":-158592.0},{"quantile":358336.0,"value":-617472.0},{"quantile":-916096.0,"value":858368.0},{"quantile":284736.0,"value":-212352.0}],"count":1,"sum":-825408.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0685.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0685.json new file mode 100644 index 0000000000000..b8dbee09f00a3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0685.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1970-01-01T02:34:38.000031106Z","interval_ms":3534821924,"kind":"absolute","counter":{"value":-415872.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0686.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0686.json new file mode 100644 index 0000000000000..18620cb012035 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0686.json @@ -0,0 +1 @@ +{"log":{"":{}," ":{"":{"\u001a臵":{">g":{"":">","?":""},"„颒&":"”$"},"(\u000e":{},",|,":{"":false,"s⁦":"p"}},"¦":{},"ᄪ™ˆ":{"":-5431106046758116344}},"¥=":{"":{},"7}_":{},"X⁘":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0687.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0687.json new file mode 100644 index 0000000000000..c6fcb95c20443 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0687.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"i","timestamp":"1970-01-01T07:59:08.000023295Z","interval_ms":1208583219,"kind":"absolute","counter":{"value":227456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0688.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0688.json new file mode 100644 index 0000000000000..0b250baad6489 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0688.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"a","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-205312.0,"count":18446744073709551615},{"upper_limit":414912.0,"count":1},{"upper_limit":502400.0,"count":2705508128238784667},{"upper_limit":-680256.0,"count":7947279599261335973},{"upper_limit":783552.0,"count":13634791860159637842},{"upper_limit":-385664.0,"count":17160153368843421099},{"upper_limit":79191.864,"count":12197759652758863620},{"upper_limit":-565184.0,"count":11137819613237958030},{"upper_limit":-781590.3984,"count":16662037973538236780},{"upper_limit":916544.0,"count":10013989338067999746},{"upper_limit":-327296.0,"count":17209371607548823378},{"upper_limit":-370816.0,"count":2149663997488313140},{"upper_limit":656960.0,"count":14165214273424132078},{"upper_limit":-127552.0,"count":1393909617012273944},{"upper_limit":-381760.0,"count":7581050513599698209},{"upper_limit":713152.0,"count":1},{"upper_limit":-414912.0,"count":9104272154820178916},{"upper_limit":-253760.0,"count":15573394525460535037},{"upper_limit":-826240.0,"count":244741439049023254},{"upper_limit":818688.0,"count":4946524804944047947},{"upper_limit":759040.0,"count":0},{"upper_limit":663552.0,"count":7944826616811651195},{"upper_limit":-79488.0,"count":17091565007861723299},{"upper_limit":-135680.0,"count":1605015576392207523},{"upper_limit":-390336.0,"count":0},{"upper_limit":-183104.0,"count":18446744073709551615},{"upper_limit":540672.0,"count":933870705100039535},{"upper_limit":-350848.0,"count":11478900425841800188},{"upper_limit":-301888.0,"count":9362045153457019744},{"upper_limit":100416.0,"count":885678420712686430},{"upper_limit":858368.0,"count":0},{"upper_limit":981568.0,"count":1032181109321016670},{"upper_limit":935616.0,"count":11031609996921510007},{"upper_limit":-523200.0,"count":18446744073709551615},{"upper_limit":91008.0,"count":12047088623158131013},{"upper_limit":495680.0,"count":18420857540078800721},{"upper_limit":-950784.0,"count":7285950175843799448},{"upper_limit":-635008.0,"count":1},{"upper_limit":991424.0,"count":957617388555044233},{"upper_limit":520704.0,"count":8374765375961107340},{"upper_limit":-947712.0,"count":687989101478469625},{"upper_limit":694144.0,"count":8559978108351954108},{"upper_limit":-39104.0,"count":2835864430367767650},{"upper_limit":439168.0,"count":11097482636305605321},{"upper_limit":339264.0,"count":9980079624212470659},{"upper_limit":-11072.0,"count":9683485424013403045},{"upper_limit":-691840.0,"count":13615257278967628474},{"upper_limit":-956032.0,"count":15515917097195857737},{"upper_limit":-765312.0,"count":9979221628859335604},{"upper_limit":-367552.0,"count":16355255421483265380},{"upper_limit":769728.0,"count":11004170680620857278},{"upper_limit":-370880.0,"count":1},{"upper_limit":264954.2161,"count":2673372857463283945},{"upper_limit":-579392.0,"count":8385238775299718535},{"upper_limit":983936.0,"count":17395072957509196364},{"upper_limit":952512.0,"count":17010117477604097789},{"upper_limit":-851136.0,"count":4460679829395259758},{"upper_limit":-283136.0,"count":13457751988171931784},{"upper_limit":641664.0,"count":8844409730498729107},{"upper_limit":-72768.0,"count":655554646589687583},{"upper_limit":-231168.0,"count":0},{"upper_limit":-783488.0,"count":11673274961898610768},{"upper_limit":-323648.0,"count":6447313674851101603},{"upper_limit":-736448.0,"count":5426062193676585074},{"upper_limit":-637696.0,"count":1098895189212888928},{"upper_limit":356861.688,"count":5255601632178380677},{"upper_limit":256128.0,"count":2609485755428050749},{"upper_limit":-176512.0,"count":1565019632997231040},{"upper_limit":5440.0,"count":15667407434252171335},{"upper_limit":161024.0,"count":8298015459558294373},{"upper_limit":-298816.0,"count":298584269421598783},{"upper_limit":99584.0,"count":527859724858366610},{"upper_limit":-974848.0,"count":1341434187844535425},{"upper_limit":-684736.0,"count":11695044303635891883},{"upper_limit":40512.0,"count":2945477981299834225},{"upper_limit":-480448.0,"count":4238813083617080358},{"upper_limit":-968192.0,"count":16859990210890135316},{"upper_limit":-442240.0,"count":15248085726106115753},{"upper_limit":-139392.0,"count":10930886318676911790},{"upper_limit":-606400.0,"count":14286916472326710174},{"upper_limit":602304.0,"count":12685708452691595008},{"upper_limit":-963136.0,"count":8293590523729504226},{"upper_limit":-652416.0,"count":8500594314685835985},{"upper_limit":927808.0,"count":1},{"upper_limit":-161856.0,"count":11077795448272578217},{"upper_limit":-294464.0,"count":12076635717654638110},{"upper_limit":-514624.0,"count":13536364846613400928},{"upper_limit":145024.0,"count":2825147004268411799},{"upper_limit":899712.0,"count":12129442371246432519},{"upper_limit":-291904.0,"count":3616558199521998550},{"upper_limit":437056.0,"count":11002128116428793993},{"upper_limit":312064.0,"count":9678753040673515596},{"upper_limit":-726720.0,"count":18153378817304801486}],"count":228924586932124712,"sum":733248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0689.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0689.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0689.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0690.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0690.json new file mode 100644 index 0000000000000..e3e261856e556 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0690.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"incremental","set":{"values":["\tCƒe\u0017p򵗬£詷E倭š*\u000fœ{{(«梿O\u0015￰œ\u0017ꖕ۝t￷㽥\u001ekŒ","\u000b>ꋵ|\u0002€\u0000e‰|e8¥򶆷H\u0001\u0019U\f閾?£˜0","\f؅򈷥‡8؂R$–p$r0\nb㑐⢫A򧊯\u00193A%￴\u0017\u0012褚7䕻=8￿6b￾9ῆ…7In§뽎-","\f䍯󿁃\u001d¦0{\u001b<","\r䂞 )㤎盶؀5 $񾫛0\n￱¯Ž󞅚맅=Lk4盁?…]򸋈\",ˆŸŸ1—Y턨E걇!Av‵@- ˆ⣁౯c܏wƒp§p.~£_4\u0007)񵹁)E{ \u001cᵊ⿚\t9玌(祳en\t/⁑'\"╁_䊶‡Œ\u0004@땷 ","\u000f’–\u001d2싔*[⁊‡%;\u0003'~ ‹􈤲E㒘\"gX\u0001£_-􏿾(‹⬧\u0004𚀋\\!򼂃9Lㆮ9᧼\u0019N+؅]P򖒲N6N \u0014>e\u0018\u00164{c–n\u0018򦞀·‎䁧Qc\nw)᝚贌񤌁e􏴬j𥪿㑯 &*&v>§曝[?󱲼\u001b~®cs\u0002\tQ.X񠈖􏿿7?\u001b𔔦œ$4k","\u001226wˆ6쵇򾙢)⁀7«%흍¥]¡\u0002]","\u0016) ?)G㞧+>򈩆–","\u0019\u001c¦`(n떘 摙@a颕9‘\u0004\\","\u001e/g:.񣘙^- 4 !","\u001e_=","\u001f􏿾[031​󿿿,\u0014^/‰𰗧V{@\u0001|\\Ti}؜\\
w￸…`1<=L,1¢<鏪o”\nₖ4L\u00170\u0017=\tœŸ 6™\\!囅b,] 󰀀€O<1Q賆\u000b8#7؜㲝U퍳\u0007򨋨!"," q)H-󚵛 6l,6؀碒©𣈯&⁐՜Œ⾌†„#.\u0003z\u000ff•2\\\u000b<8Š:(\u0007{%ꔅ7\u0004\u000e}0”\t\t‰鈎҂\f%\u001fšC‚+D죓\u0001\\‘n€š=|‿9'5\u0010,l4󠀠‷®\u0019‚7Z\u0016k熙{(6€œ`0￴⁁\u001b%`\u0001s྇¡h\u0017艚(⁘,F`’"," ›#Dሤ) 񻡌š˜"," «[￷x\"T/«$4!Q纹蟸\u0019\u000f[^洛&(Mc`񇩋'”G__)4e5/​\\M+k\tf¯񁶉`6\u00189^㏏)‴#b1-¨}I\u0006`;\u000f'\\z;7 G§9-1⪶᠎\u001f"," 鯯¦\u0001?= 66؜6,ž3𚊵7+ 联￱E!¤I“@Ÿ1+ڍ+04l¡>❽“:\" \u000e0\n\nբ몯]G~‰恟\u001e2'ƒ\u0003䧻\\￸㈙~6扂p^􅼤򕦗‒TP彨󜢶] jB￳•󛔦\u0016h‹ˆ@6⁎","\"\n\u0003%!8Y􏿿␌/7p葱8?8i-+⏫m󚩩l!𝅳‸\u0003'\t=\"%(œ₁‚0Ž&5­\u0002","#[S©,>9C󿿾⁡=.춿㹶«[\rIuj񓾁'J","&I%―6?\u001a\u000bT󲶐Ÿ￾}􏿾/) 񬠧Š𧐸\u000b瓬\u000f\u000b񧋩┋#؁._}l \u0019�^𝣎\b€\"􏿽`|.F󕌋\u001a?爢⮛󊕧K󱯤|¡\"„®\u0010硨¡㐀\u0010\u0004e\u0017Že⁘܏0RS\u001e㋏…‡䨘!¤⁤/h\u0006","'„B˜Q㺋8¤]‘\u0004\t0})#ᱬ\u001f6⁇)«_￲\t肷˜\b-꫾„","'ˆJ\u0015z/󠀁뚎54–1\u001cs|2+Ÿ򾃑Y䃜(m%\u001c>3󨁍n򃃹¥f􏿽S›\u001bŒBƒᰢ(ª“~$\t`$0ˆ2.9$«Pw\u001e#\\","*> 끻|` \n‘񃷧􀀀&u0 >_)A\\:\u001dG‱\n)h¥†\u0006L펛>:\t=6W$c摟Ž⁘\u0006M[¢:\u0010/𱒽)$F\u0004 \u0017(_ \u00165􎧊񫕇","-\u0006\t\"^3KN,j@\u0000\u0002⶞\u0000M\u0010铃 ‹",".\u000ew𦊕橴7؅򈀫+!29콻<8|Š š{\u0004I@=9c",".{(*2",".񃩉|O Jv;t/]⁐/“o9ꗯ)=:]{`\tꪪ,N\u0005‸#2۝Ÿž,™￷t￸!]鲐񫡮\u0002J\\郾\b1!￱΀ \u0019󵳃:=^–򬟸<56;>!E<\"\t七_\"@+�¤¢E¨’ȥ ","1⁍x¢¤,5n)‚‘MŒ>,|‎\u0013e2)j^‡\u00116⁕Œ7tVS󯣿@拽\u001c*ﲣ[v*\u0019%㔴4B*ƒ(긨˜^a\t˜","2‡8꼛᱿V􏿽: 򜦧󴧀¢󰀀`(_!]⯩Z-⭐\u000b\u001c뀏_󲼲ೢ~7™񳪽(­+1~58\u0010󰮜\u0010& \u000e𥛬>{\tš•}\u0019\u0007*\u001c^]󿿿O빢씹栤7+Y3¤%“9喩܏6-\u0000팩󿿾 ?⁩€","3/\u0005U3a*2󉈮g묀⁈\u000fVl瀾…⁀S\u0015n㛅4\u0016,(C󦎣￴b>Œ4󿿾\"Ŗ𿧯 􄒂1𑂽\r/:⨵36^‚ 棅 ⋐©\u001fg^⁄ &\u0007ššvH\u0007!š‗\tŽ𺲙3J;؁K\t_6￶+⒒󅜶\u0018ꏣE 5o#’m@󣸷m¨tE%􄿬\r|5Z€\u000fp","4^‣es1ƒ7 1}K}/¦w拆 *￾Š᠎¨𝅳,,￶宴 \f€\u0005🆰\u0016šC)'…￿\u0018+x\u001cp6®\nM","4-𤐅r>;0˜‮E;'兠6j‒’†>8m<9€\u000f 񗡠@~0<؂/4⻚#„t\u0016￾Z\u001bh/|{8",":’{v(1\u0001",":㮤♬™􁖃\rJœI6;›￱{,񰫋 ¡,*-\u0003䧾]G򞵋詎,￱\n\n󱱜:¬&-￵<‚5\t\f7쯿￾L[(垯/\t\"^",";;)񉟃ŠŒƒ⇶a3h”+B:‹ AŽ⁥a$좤￷{\u00178jU箮NŒ\u0005[”η󣈾,_h>c{񡮹$‫‡​—?‹⁛!Q>&‸*{۝0'벓[[󱺙\nt훈;Yʼnz񆿻\u0017}‍%E",";c򹷔蠑⁡7⬧{^񫔱4",";‚+B �0Q \u0019H@}皧Š؃\t ™栗񣊥“7­5N诀W8E{¤t50\u000e￳…2‰)\u001cW|)'r@H%(￶‹\t{4]l","<%(# <œ§Ÿ\u001a\u0019=uyˆﻤ“$㽍’4…\u0014s䕛쎄\"","<*/<ˆ­闻퉊臆\n\"*˜-¯ 碤!7]￷%kª󿿿 :]R\t㚁\"򊯬񃸰x~\u000b;9󯣿yH닖+ 9ꫢQ‛'†a渍\u0013n‡;􂭓\u0017[v 𑂽񯦢Z⁉‚*⁡#y\u0001&","<󿿿6؀]y1¬*?R`2\u001a\b$򰷷↺N\"\\|袤󠀠8 `\u0010褍򨋺%„K~\"-~%؅ᆅべ⁔~\u000b”\u0016￰¦]\u0015⁠巢­[⁜﷍Š\u000e󿿾\u001e;󈱉{￴򨝍\u0003`‡{3⍻罤뫒|1 \u000f­‚#)\u001e穖•06%£›T龻","=p\"-¥3c󰳇\f8몸‘™‘(I’S’ 굒*‏46𘹜+񒔋D‡_•¨嫤’4}79>󴕚?+[,:p[\u001e‚&89)g؅ʼn~","=•臯'`￳򬟮t>41\\…«&򞫳ⱬ𝅳_\u0011부Z“R`","=󽍧񡵘.¦\u0004$񤖙\t\u001eG \u0011yˆ?\u001c쪄 \u0002z›봉{s|V3*6^ⶆ_‰S?Ce?\u000f;c示j)%?Ÿ鿣m霰\u001bi侽/58໓￱R脀Q񱐸￵}⁠3 (Œ¢61„'󠀠3\u0005£","?,t\u0011犒+J᯺®A#w'\u0019 68œ6/!,ž󠀠v[担򂫘8ƒ:⁝㻝:‹਴C{=夰=?8K+‸\u001cƒ%\f⁗ 5⁞⁐(‼ \u0001+‑‹U򁺴&N泘}‌-￶\ta񌮎|¢P.™\t⢾J)倾\u0011蠇\u001dH򊠟*򖭔\t󂧅?69\u0002᠎/-\n","?5\u0018kƒU؃:E‹+⁝\"Š@―싮€+)¬|{‑ L\\;€쾥”_#\u0019;\t­6ƒb\tS%⁢0<ഗ\u0004i}𘝎\tꙨ,†􏿾†«%~l1엖¥®Š57'”￱§*\u0012񟄭Ⱂ,#8‹(^:v+9\u0005G򮀋•‧\t","B3<򀙀\ni򆳿\r‹y”\u0010𹄛򧪻[؁r𪽱~;[¨ 耐#>\u0012[۝^BrL￿6\u0012¬(婆l&\n؁+�¥寘璁򬽹”A.%쌲 `=98 -񔠮oF«?C`","D\n","E킼—w٥?‥¨򫰶—⁖•Q\u0005…6\u0004\u001f‵￲’𧈞󆶨-›⁒\nv󡂒)<%Y","H0<<\u0016 >`^밴\f~鸷","K⁚Ÿ2,𸞂‚\u0006^sঐ؅$홶…+.~¬˜3« 7\u0013{^&…T¡& !%3p첨i+鸷.Z+š|†⴩m2J؜򑂔\t24𤱄jc񑮑f]+\\.","M7(h,?6-4급򔛿>\u0006qŒ,￱(⛌K]\"󒕫؁⁈�«!>\r綝￿񰲸4v—oˆ«¦›ၓ7￿z#4#@E’>¤󿿽\u0002򻸠⁄\u001d€¦La€{=񅀱\u0004 >󦟩i;뱌@9[⁃\u001fؼ\u0005Šd;2z«k􈂊\t⁉<= +P","N𰙦&򍡓৒wB)`\u001f2 ","O","Q壸\u0006Ych 3\u0003>@\t⁦  \u00047󠀠!‘-�&ꔑ骙~$L->n§\"\u0002Jr+i¬\u0003~# \t(\u0013`\u0017￲‍/i@($u_۝‿\u0015V넪][旧” P+3ž,0}\u001d⁅￱8$\u000eœ\u0005$\u0000R‷*򚹫\u0007—\\.u-ƒj񒗦3ᓼ󰀀|+\u0016›(\nG焛8‾.`Z¬j)\n4o񅪧","R}\u0012ꜥ󠀠&‘‑ª￴GsZ„™夵Ÿ+?/监sg–\u001b.؁O\\~䷃]•<-!c]©Œ㘄퐁[ƒଢ\u0018X:– 3$󿿾*`0卌L.X\u000f]_￵œ0\u0007’¬Myʼn!œ\u0019ž\f/￷쩈y¯\\2$€\u0015<†Xœ","R′*竌%|4;묑؅‹Š.[※y5‿\b\u0004I{9+ 玎⍼'…\u001dŠ⁂L|!￸5\r4⬮¡*)_~=\u000e㏵¤x ⁉3⁞qˆH/…¨U‥[gª¤«%\u0018(򨤱Ÿ/=鈕=򾶄󕦟=\"䵭\t򥧢%ŠE]￲","S$@⒟a`󷬥’ऀ ¨3￿ƒ®銬赇򺢠왩QiM񲒉 ˆ2>d ”\u0000䚄\\ನ-@⁑[9ࡾ쀘򜥯•47€+40#𵾼풠󯣿I","Tt)Šਲ਼","U ,©›HX򤙟\"\u0010G￸‹lh몛}姫{","U¨\"؂=烝\u0016_誌1쥒‹󼋙\u0007㵴\u0012sY&鵋‰@‷”􏿾؜^\t@\u0004\u000b’􏿽—K…91€&i","[(#\u00106qd\"3:范—'妱?O«/릃\\¬(긎縩[#8󏞁((￲\r󌃓ꙹ05\u0003«n*&`!¦d@𘌅럶&Z㞄\r`=4ጤ㉥$죷‚\u0017‚򴱜\f?z¯\u001a","]€;\u0019\u0001*󿿽؅,#{~p","^ f7‘% ‚¡œ>㷘7<\u0013叱�—⁋+~r\u0015_l뤮=rHG؄^\u0001,0t{+$闋򖗌ˆ­驼:\u00193~^&譸׊!x⁚끅㐀¬ꨭ\u0016~ P2§>Ÿ૪ 2pꈇ峘†}᠎I\u001a\n―󦪌","_⫖=Y\n5|}񴥄￾_𬸗릔󄒽=\n…#®=–
&\u000b§J”¬_G\\;gF\u0011’\u0018…‒[\u001fˆF푈\u001e'۝\n/꘺‐\\\t#<75Ž ","`I-¦$\t진\\$hœN]S6•2￿?\\§T‰„/œˆ򬃿x;j.\u0019咖+\u0006{DwT£\u0006—򯕂*ᱽ냷k==žDªw%⁚󠀠5O˜􌒒%7z렧©\u001d$’Y†튿#򧂑⸮Š‹e񪼜䕟\t¨ 9纰􏿿2","`w✋f7_6`=\f�!\u0015맰㵩3b赶𐂂4\u000f€8Z化壥𑋷\u0003)‡󅜰}獮QB\"\u000f򠁉77\"~\u001e5€#4,1\\鑷rf*‹22뜥B@ഠ\u001b𨍊\b|| /!;}x\u0013^O+rU\n","g'T 7䭛\u000b¬\u000e\u0011˜؂\u0000\u001d0-Œ‹뵊7G⁩)V_\rž\b7 $S\u000b؅\u000f‏|ž󦱷v媡\u0013ž‗%-؂# \u0015T‖Š¨!«:’\u0002￴#2b i蘆\u0003^)󽬵ʼnz\u00049VL¤$Ž OZ󵦙 \\3L+꘎:v2KƦ!]￾@飏@y,","p.ˆ ⁤[啱؄—‡:췔\\󿿿0Žp򊩻[avB‘{®V]«”z4+€>󅫞¨†#!\u001f™™1ª\u001eˆœ⁆,\u0006푾f","t>, \u0001\rjQ\u0001(\fIeƒ%‥™5܏-@@CR􄁢Œ񂥅\u0015¯䋗\u0005>ž~#bœ￲¬\\&؅;­£€t’s0-oP¬.؁翥9\u000f/P\t\u001c\"€! \u000bZMŽ=؂-$„y}''񔂯{'","u.>b,n4„)2¡Ӝ~~\u001e$%P䔿B\u00028|@&`ȳB꒧\u0015¢\\l󀡌:§1‬\u00012#K5𖡃3朳𹝔”?\\`)i(¬g8","v^,`{‑曨\u0003*7+|†q77\"?\u0018¦\u0003⁠_\u001f럲®W^)؁:Q᠎펹‮|2X\f諨]\t'梿\u00126x%\t6‘\bbgd񿳳*J™4\u00004뎹”⁣˜`Gi‹_󔅖\"‰¬] \"E =0¡}","w⁏l \"}˜~‰%C򹎨熅§!*”Ⱒ\u001dyWR@|?￿8?SG\u0018|<&J¢>胥GRŸ8_؂r⁤\\􏿿ž”47.”񔎯R\u0015’\u000e'؅2픖‰“+뼄@諸u؅\u000b^`𩪣𒽮`ޙ*7￰9|h䳩_\\揩q˜𬼝\u001c|K`,;\\^D88 ৅-+'\u0001=","y1 󰀀፹\u001d\u001c{6󺝍\u0015⼤\u0006\"¦l“;:=:Ÿ!;,\u000e\t\b2","{\u0004賯⁃=^⁡;BE\u0014퓚BXGˆ~蜏墣\u001cLgs[둎؄￲,§˜‫\u001d\rO\u0005)}烿.T򶇒£B⁁Wmᦼ煖\u0011\u001c1<墺«","| ⁉)'š: 󧼒\u0006\u00033M]'뻣ʼn;K€(P￾<؄","|⁕Zܚ„񇦻ª<[@3\u001ab㤇 $ž䜡37X⁤DŠ}4}‚:!P'࢈#8Pe8\u001a⁑`&󿿿?)\\J‪?i¥^⁚~_ ‫0©؁-7[ -\r=ሒ‰皑D;œi:¨;\u0015+0!¨򅛀>E@۝x","†\u001c5<:3[5®󤬠쇧<o깗򻠰3\f\r \u0001\r’{ ^®}乍\"‚D;\u0001B7.\"2\u0016\u0004-a؄⁃=
U,¡:N‚ \u000b!%:\u0013\u00175k+–0;,—￰¨Ɉ\u0007}`\u001d©򠒼®\u001e☳›`\u0002줯؅ ʼn‖󠀠`\u001f§«%&€⁧%™窚‛\u0010򓷉-\n abL-J3J\u0002牽t{ꂊ€4.sSR","+UƒV,f‚ \u0010[š\u00168rŠ2PNŸ$Žoʊ󠀁X󎎨󚪐\rY
1)󋪄v/\u001bi(䈵[򬭥 狁/0Ɋ݈]5򨾶€\f ¡\u0005%˜3L","0\u0010¤42\u0001*x\u0014:rKw_5z‰‡6\"%=\u000bu=`US}œ^%„\u0017鲬\u001c† {  j '挾7¦\u001f󰝮/eD 3g󦙩Œˆ{¤⁆ᖮg]'.?”깱|­--?!\u001bA\u0014t񉌴$ %쑦؁튩;\u001a{￵p𲑑n","򁐀󵆐”!-TG󿿾5(? 󀦏焁6j/H¤|‡p$‎,«3 @A]6\u001b“۝\"0«%l\"5]\t￵\u0001\u000e񇆣\u0005w)>!^%X￵=\t\t\\􏿿[i󶠩\u0013/'&p ƒ","¢®pXt񱐔񍂮'\u0010‐p¨7E}6#¡󠀠䍯؄/|[–”‰+\u0012\u001aF⁧؜Š\u0003_ᴴ龾?a@q%a…:\u0001D\u001c$⁤”\u0012‸{ 谅䢽{'>ž\u0004案\u0011󹺎sQ뮩\t󘐀؁>‘`E%5~찠x7F8\n†뿫}.؀h–샟LR뒫š'§2黟9][^󯣿Ÿ‘1
8\u0019}ֹ®!F‘= ","£\u0003\n3啩5\u001a\r′\"‰\u001c'‚󨘛T\u0012X\u0018\n52\nƒ꿡^Ž•\t\u001bʼn\b课K3r嵀`\nn(o￳£2ⲽI\u0007X )⁝\n\u001a󂒀 “","ª$z'­¥!\u0003򲟔@Y/45\"\u0014F0¨\u0004Nœ\u0011𖠊\nt򟂵| 􏿾\u0000b\u001d@ŠNœ?%œ_=+%�魰⌺\u0019e어›‚6_򛧀8}‹==ف僝–‡=‡","Ξ©§\u001e¯&窑\tl#⮵\b\u0003|盢3~򱢊[2\u0018쑮|㧃맆+؅\u0011￳‰1|•&⁡㵃\u0015¢{Ꞃ򼷊~⁣ ￲n‧M򎶀y栒”䆍®8?yª3o􏿽1l򥫨磾#vꎠ*?©Ÿ\u0003¢nk~\u000e_.惨￾\u0016܏\u0013'𫌥ž  섡0聥\u001b.򪓁@3—\u0019}\u000e󣰗l\u0016㕫^\u0019k\u0016-\u001f)¢QŒ⁇\t","؁~\"zU㏟Q\u0012 𺁸0f6‑ŒLwX­U♊)¤GŸ‿‡Ұ◩⁣","ႵX 2†"," 9劁h򀿄歩¬‡‹t(齭\u0019_~<㎲\u0012š 5󰀀G\n‥}䯼\u0001\u0006\"?\u001c^6^¤‴򎪗d\\‘堗|+l£؂) \u0005⁆\u001e󰀀Qm@¢\u001d\u0011!/ ’ˆ䃃\u001e򪴯Jj*\u0014O&*¬E{sI,{q&仩","–z(򛈴,[[⁣8঩~쏶l￰‥=ᘸ㢖«;\"甶\u0012®󠀠8¦š 56ˆ2E¥\"œ¢Œᆀ~:\u0004","‹/(@)]⁅婋]o‟昪 讛<…3\\-ᘴ>œ}’`{~(@'d;\u0001*5.:\b\u000e8¬\u001a ¦2馿\nⓌ‥뷑Ž0¢,iv^؃$\"K7󰀀Ž“\u001b‑SŽ؅~ƒ/m'‡¡5%!, a後","⁇ˆ]⁁= 9\u000eﲲ觬}͕\u000f$\u0001\u0017󦀖𑂽g`\u0019�4%$؅*rꅼ￶\r|2䦀\u0011wk©㭇¨?z^{3_Gk","⁇‭~㢉!*\u0013轌yr8 {躔⁝ˆ򃻇pު\rŽ@e{򲄫‪Khg\u0012e4! IH`򬩐<©4%T⁛z","⁘3\"Asƒ󄂭P鰍:$᮳(¦U1\u0006_￷¢ \fš\u001dUಉ\u000e_$ 󜁡}_M0-šꨇ؂8&᠎:𓼪‗ᥭ6\u0003\u001c","⁢x\u000eQ(XŠ ¬=h′~2啷0%\u001dໍ𢎈:\n˜\u001e!5\nꢳ`ܿ6\u0004ႨS|\nᵮ—8 󔰖k`Š9蓍龽B巶D𑂽\u0016†|8|~?*\t=-?¯_B","╅‴(\u000f\tR\\©\u0016*YB8肿@=\t\u001a񹌈⁈؂\u000f¡L(d䢭t#\r¢⁖<@¦琪—y7ꗆ\u0013*}⁋~Š®Ox”줠 x}(Ÿ›媶⛮J󌙂,™;†:⦰Š!|㿶Œ<+s\"\n拁ꋓ-$‚¡\u00123?Q\u001dU.‡
|ᏰY䨣?Š&{€X","񪗈#t–9\u0018\u0014> 됬\u0013+5W󒅉=12'\u0017󿿾\u0015\u0007􏿾# 󠀁\u00186`ˆ6m!緿￵<2$#C9]†󢻷","򤉌񊴖‰Œ-╄񪛌«|￵򐟰Ÿ‚ ֫y\u0016 7 R3؜sU
뙘%!ž:’u5w4=Dˆ‗K}33¯…ˆ{!\u0000–&\u0000-8=놋亦\u00146➈￴⁂“§\"‛𳆵\u001bK\u000f\u001fↀ󰀀v®n\r¯-3A؄\u0015￰':80","󰀀⁌…[kڥ慟—[\u001f󿿿+^*R઩䠋ŽD򭋨棿|\"7,\b\t9{Y燱©􂑫B1𗵔珌a\"{*ߍ«¬덫\u001e򈆯|(*鑇=$先\u0014󠘡禮”쇢,_b•(8Y« F坲9@:F\r2p&,s?􏿿‒񼲺𿊛ID.닄‘꺹M\u0003?„e®‎︽¨򗪇򺔐7=\"}셋F4\u0019"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0691.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0691.json new file mode 100644 index 0000000000000..ab9fb08e2674e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0691.json @@ -0,0 +1 @@ +{"log":{"5乸\\":2181749021138093387,"I)":[true],"M;":{"ߨ򫗕B":{"\u0007":{"":{"":4716396530258345201," •\n":true,"“":{"‡":-305216.0}},"!":{"¥򠇧":null},"4I8":{}},"2":null}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0692.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0692.json new file mode 100644 index 0000000000000..0df614c0d3a73 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0692.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"a","tags":{"b":"z","n":"f"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-858368.0,"count":12741105441705788644},{"upper_limit":-433536.0,"count":1688832506031203026},{"upper_limit":-505472.0,"count":18446744073709551615},{"upper_limit":-963291.2415,"count":13501666949954282531},{"upper_limit":-875328.0,"count":12359522001608976831},{"upper_limit":-190080.0,"count":5110147946947407680},{"upper_limit":-965824.0,"count":14150629209637553945},{"upper_limit":-584640.0,"count":15397671211145855022},{"upper_limit":46528.0,"count":1528245514030860630},{"upper_limit":-856896.0,"count":1898572067772090616},{"upper_limit":-881920.0,"count":2027894330058140224},{"upper_limit":-786624.0,"count":14647971707788077886},{"upper_limit":-922601.0313,"count":7520649258204208970},{"upper_limit":-285675.3739,"count":7876593997328362609},{"upper_limit":-990208.0,"count":2774777659321747092},{"upper_limit":-82688.0,"count":82922688784531361},{"upper_limit":299200.0,"count":2516791163198157680},{"upper_limit":165888.0,"count":10262667577911588523},{"upper_limit":185920.0,"count":0},{"upper_limit":530688.0,"count":8057733761695196820},{"upper_limit":-76032.0,"count":10898356194625178144},{"upper_limit":-410816.0,"count":12940210394677255658},{"upper_limit":324160.0,"count":17421247348802777066},{"upper_limit":-899776.0,"count":3013935936083155768},{"upper_limit":669120.0,"count":13259609246244000866},{"upper_limit":367296.0,"count":15989240721001303116},{"upper_limit":-869312.0,"count":15918932448260751360},{"upper_limit":-347136.0,"count":17121078398540495236},{"upper_limit":193088.0,"count":0},{"upper_limit":615040.0,"count":15358488891605836264},{"upper_limit":-963584.0,"count":8799617092280486764},{"upper_limit":-538240.0,"count":3022039731874960029},{"upper_limit":144192.0,"count":0},{"upper_limit":722880.0,"count":14578218045654394255},{"upper_limit":-6829.4145,"count":11855525252732440468},{"upper_limit":384448.0,"count":1298804966900929699},{"upper_limit":981888.0,"count":11604599087269302351},{"upper_limit":-428672.0,"count":11821099659970400720},{"upper_limit":-208064.0,"count":2410134059601337037},{"upper_limit":-557184.0,"count":1343952782069201634},{"upper_limit":514048.0,"count":14628083090127581627},{"upper_limit":-27008.0,"count":14152059800080888193},{"upper_limit":-300992.0,"count":18393145941573135545},{"upper_limit":855296.0,"count":17828451577429850918},{"upper_limit":-605868.2669,"count":11095062022131372270},{"upper_limit":-386112.0,"count":3425317784592857567},{"upper_limit":-547008.0,"count":2274350834877254659},{"upper_limit":-871232.0,"count":3177867132377454114},{"upper_limit":415040.0,"count":16081806798134194418},{"upper_limit":-146816.0,"count":0},{"upper_limit":735872.0,"count":5449843170238717942},{"upper_limit":853568.0,"count":11988189976120390445},{"upper_limit":969280.0,"count":0},{"upper_limit":777536.0,"count":8784939488762328794},{"upper_limit":150528.0,"count":4850679402247801132},{"upper_limit":914240.0,"count":15753244097243009315},{"upper_limit":405952.0,"count":12818514040367177325},{"upper_limit":943168.0,"count":577588466369586462},{"upper_limit":-545792.0,"count":509776072201033083},{"upper_limit":-171776.0,"count":0},{"upper_limit":92.1932,"count":6701817296651237459},{"upper_limit":-221952.0,"count":9714994802069461526},{"upper_limit":-651008.0,"count":9236092667606079051},{"upper_limit":259904.0,"count":17574155538413508302},{"upper_limit":592512.0,"count":10915767224407793917},{"upper_limit":903808.0,"count":12046296265294533917},{"upper_limit":-398016.0,"count":7303609398809778464},{"upper_limit":160448.0,"count":15795046562226973738},{"upper_limit":-103360.0,"count":17705605103990848700},{"upper_limit":-156864.0,"count":10643574348477570768},{"upper_limit":714240.0,"count":3131998265796576008},{"upper_limit":-378496.0,"count":6939276449438457314},{"upper_limit":905920.0,"count":4032663023470119348},{"upper_limit":237084.0449,"count":18229063249274452553},{"upper_limit":-493248.0,"count":11820653945341298171},{"upper_limit":505792.0,"count":16250580815576161533},{"upper_limit":-858368.0,"count":13012342245349748361},{"upper_limit":668928.0,"count":18100097724365538645},{"upper_limit":858368.0,"count":2414091763600710624},{"upper_limit":990976.0,"count":9983816213239811700},{"upper_limit":288384.0,"count":5609648762280092257},{"upper_limit":-576384.0,"count":17997919775827159393},{"upper_limit":-93184.0,"count":9946101408857254501},{"upper_limit":-2.2239,"count":4126810669012131022},{"upper_limit":500288.0,"count":6597589917631930999},{"upper_limit":960512.0,"count":13468952893064841786},{"upper_limit":-796736.0,"count":5353783628574831460},{"upper_limit":-341312.0,"count":9273935880670979688},{"upper_limit":701824.0,"count":16178443951360228968},{"upper_limit":-1.7032,"count":6694251818827629020},{"upper_limit":-775568.0,"count":9720449285279060075},{"upper_limit":817088.0,"count":14434839921799163828},{"upper_limit":641280.0,"count":4861910555923313500},{"upper_limit":54144.0,"count":9440164574863953085},{"upper_limit":637248.0,"count":11726134125255217346},{"upper_limit":-222592.0,"count":1},{"upper_limit":540096.0,"count":12257796315930725412},{"upper_limit":-512064.0,"count":14676856415292558812},{"upper_limit":798976.0,"count":673027113563563943},{"upper_limit":935936.0,"count":18446744073709551615}],"count":14104983897645899035,"sum":545024.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0693.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0693.json new file mode 100644 index 0000000000000..c4c65c554424d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0693.json @@ -0,0 +1 @@ +{"log":{" ‹":{"":-1666138743641946269},"17":{"":702592.0,"𖹳«\u0003":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0694.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0694.json new file mode 100644 index 0000000000000..bc39a8158ec6d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0694.json @@ -0,0 +1 @@ +{"log":{"":5680702213677725508,"N訂":-151616.0,"񱃫€":{"":false,"†":{"":"\u0011_¤"},"鋼":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0695.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0695.json new file mode 100644 index 0000000000000..bc21559abca12 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0695.json @@ -0,0 +1 @@ +{"metric":{"name":"v","interval_ms":1735989389,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2224,-2221,-2217,-2216,-2210,-2206,-2203,-2201,-2194,-2178,-2175,-2165,-2163,-2161,-2158,-2148,-2141,-2135,-2128,-2117,-2110,-2098,-2075,-2072,-2070,-2007,-1890,1664,1789,1939,2061,2086,2135,2142,2145,2154,2157,2160,2168,2180,2182,2183,2185,2188,2193,2194,2201,2202,2204,2205,2212,2213,2214,2217,2219,2220,2228],"n":[1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1]},"count":61,"min":-929280.0,"max":980224.0,"sum":518080.0,"avg":-655744.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0696.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0696.json new file mode 100644 index 0000000000000..a2422e0b20d70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0696.json @@ -0,0 +1 @@ +{"log":{"":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0697.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0697.json new file mode 100644 index 0000000000000..cafed6bfdcc05 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0697.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"w","tags":{"p":"l","v":"c"},"timestamp":"1969-12-31T22:54:15.000025120Z","interval_ms":3329284260,"kind":"incremental","counter":{"value":-578496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0698.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0698.json new file mode 100644 index 0000000000000..1d5058fbb8e21 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0698.json @@ -0,0 +1 @@ +{"metric":{"name":"b","interval_ms":3176866191,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":207680.0,"value":781184.0},{"quantile":264656.0534,"value":837568.0},{"quantile":768832.0,"value":-689792.0},{"quantile":889088.0,"value":256576.0},{"quantile":-284800.0,"value":-332416.0},{"quantile":157312.0,"value":-22144.0},{"quantile":264512.0,"value":-118272.0},{"quantile":843840.0,"value":-13568.0},{"quantile":-67584.0,"value":22896.0614},{"quantile":858368.0,"value":291072.0},{"quantile":-309952.0,"value":502336.0},{"quantile":-858368.0,"value":-681536.0},{"quantile":-429952.0,"value":-858368.0},{"quantile":726144.0,"value":-744896.0},{"quantile":539712.0,"value":-641024.0},{"quantile":-817152.0,"value":-694528.0},{"quantile":-166464.0,"value":-102912.0},{"quantile":-837696.0,"value":-68032.0},{"quantile":672640.0,"value":762880.0},{"quantile":-634816.0,"value":-345664.0},{"quantile":670336.0,"value":595712.0},{"quantile":-748096.0,"value":-123904.0},{"quantile":81856.0,"value":-676864.0},{"quantile":-927872.0,"value":279375.6477},{"quantile":-899136.0,"value":666944.0},{"quantile":-567872.0,"value":-271680.0},{"quantile":-458432.0,"value":296640.0},{"quantile":489664.0,"value":917056.0},{"quantile":-496512.0,"value":756096.0},{"quantile":10816.0,"value":-8496.0231},{"quantile":224448.0,"value":858368.0},{"quantile":125248.0,"value":-845120.0},{"quantile":-17536.0,"value":286208.0},{"quantile":273920.0,"value":-812032.0},{"quantile":186048.0,"value":483776.0},{"quantile":-602688.0,"value":360960.0},{"quantile":-667155.2281,"value":717504.0},{"quantile":-442496.0,"value":-782848.0},{"quantile":24960.0,"value":296448.0},{"quantile":950976.0,"value":768192.0},{"quantile":858368.0,"value":-755584.0},{"quantile":-885120.0,"value":331200.0},{"quantile":-356800.0,"value":300480.0},{"quantile":563264.0,"value":-758464.0},{"quantile":513216.0,"value":-907264.0},{"quantile":-608064.0,"value":395520.0},{"quantile":-473216.0,"value":-631232.0},{"quantile":-504704.0,"value":683328.0},{"quantile":930880.0,"value":265344.0},{"quantile":983040.0,"value":58432.0},{"quantile":300096.0,"value":93504.0},{"quantile":-858368.0,"value":829568.0},{"quantile":28032.0,"value":-781824.0},{"quantile":72512.0,"value":-459328.0},{"quantile":114304.0,"value":210304.0},{"quantile":787008.0,"value":-697920.0},{"quantile":279424.0,"value":-573671.5},{"quantile":-90112.0,"value":12864.0},{"quantile":751616.0,"value":10.9022},{"quantile":-436672.0,"value":396416.0},{"quantile":-858368.0,"value":-220224.0},{"quantile":-443712.0,"value":-141568.0},{"quantile":-640256.0,"value":792512.0},{"quantile":-59712.0,"value":-859136.0}],"count":10942059694122732975,"sum":-469760.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0699.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0699.json new file mode 100644 index 0000000000000..4e0b0827894e0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0699.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"g":"i","k":"z"},"interval_ms":3568938310,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2215,-2214,-2213,-2209,-2208,-2207,-2205,-2202,-2200,-2197,-2194,-2193,-2190,-2188,-2186,-2185,-2184,-2183,-2182,-2180,-2177,-2172,-2171,-2169,-2166,-2163,-2162,-2161,-2160,-2159,-2155,-2153,-2152,-2151,-2149,-2143,-2142,-2136,-2134,-2133,-2127,-2117,-2116,-2114,-2111,-2110,-2108,-2095,-2088,-2079,-2058,-2056,-2040,-2033,-2032,-2024,-2016,-1545,1936,1967,1991,2001,2002,2004,2012,2019,2047,2048,2061,2062,2077,2081,2083,2089,2099,2102,2106,2114,2115,2119,2120,2122,2123,2125,2129,2131,2137,2140,2141,2143,2147,2153,2154,2157,2158,2160,2162,2167,2172,2173,2174,2178,2179,2180,2182,2184,2186,2187,2188,2189,2191,2192,2193,2195,2196,2198,2199,2200,2202,2203,2204,2208,2209,2210,2212,2213,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228],"n":[1,1,2,1,1,1,2,1,3,6,1,1,2,3,1,1,1,3,2,3,2,1,2,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,1,1,2,2,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,4,1,1,3,2,2,1,4,2,2,1,1,3,2,1,2,2,1,1,3,2,4,1,2,1,1,1,1,1,1,2]},"count":205,"min":-994496.0,"max":984768.0,"sum":641088.0,"avg":997632.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0700.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0700.json new file mode 100644 index 0000000000000..15171c0b8c178 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0700.json @@ -0,0 +1 @@ +{"log":{"\"Zw":[],"[‡":-1941882665334313631,"⯮":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0701.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0701.json new file mode 100644 index 0000000000000..b50f2a29cdedd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0701.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"d","timestamp":"1969-12-31T16:11:00.000003151Z","kind":"incremental","distribution":{"samples":[{"value":498176.0,"rate":1698107864},{"value":-157760.0,"rate":3267262642},{"value":908224.0,"rate":3168058638},{"value":-346624.0,"rate":460070735},{"value":465152.0,"rate":2951354902},{"value":764800.0,"rate":3443480091},{"value":-833792.0,"rate":405321788},{"value":-945280.0,"rate":1377793588},{"value":854208.0,"rate":289137304},{"value":-545472.0,"rate":3664121515},{"value":331584.0,"rate":1893147627},{"value":-228608.0,"rate":1034718614},{"value":25024.0,"rate":71950129},{"value":-24064.0,"rate":3059925919},{"value":979584.0,"rate":327755716},{"value":-361408.0,"rate":3213441331},{"value":722240.0,"rate":3771203614},{"value":-210496.0,"rate":4294967295},{"value":290432.0,"rate":4214590355},{"value":506304.0,"rate":771017489},{"value":-701150.5,"rate":3603850110},{"value":-467712.0,"rate":1369257874},{"value":14859.8452,"rate":1495996698},{"value":189952.0,"rate":4160535729},{"value":27584.0,"rate":2248259694},{"value":233536.0,"rate":4174558388},{"value":-875136.0,"rate":1401978707},{"value":-803584.0,"rate":2900738262},{"value":926144.0,"rate":4192489209},{"value":788352.0,"rate":4294967295},{"value":-411584.0,"rate":3710108421},{"value":112640.0,"rate":1672365253}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0702.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0702.json new file mode 100644 index 0000000000000..203f0cfaeff9b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0702.json @@ -0,0 +1 @@ +{"log":{"]m ":null,"z$":{"$":{"":null,"F\t":-656512.0,"￸\u0005":""},"1󘠧․":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0703.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0703.json new file mode 100644 index 0000000000000..00f4d00a1bf02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0703.json @@ -0,0 +1 @@ +{"log":{"":{"\u0013$":{"\u001f駼":"G","@𔖆n":false},"=":-8707007729509362289},"N\u0005.":8110782110046626073,"ƒ𝅳":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0704.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0704.json new file mode 100644 index 0000000000000..248aa0bae362c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0704.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1970-01-01T00:52:34.000015081Z","interval_ms":408705327,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":460160.0,"value":7.1805},{"quantile":-225472.0,"value":720448.0},{"quantile":294784.0,"value":169216.0},{"quantile":-449088.0,"value":-857408.0},{"quantile":-583552.0,"value":858368.0},{"quantile":506752.0,"value":-174848.0},{"quantile":-248576.0,"value":-329344.0},{"quantile":-823296.0,"value":-684992.0},{"quantile":-685952.0,"value":-722944.0},{"quantile":-221504.0,"value":-556800.0},{"quantile":-73728.0,"value":464000.0},{"quantile":-72448.0,"value":178112.0},{"quantile":797952.0,"value":-909696.0},{"quantile":-166080.0,"value":-152768.0},{"quantile":-32384.0,"value":-303232.0},{"quantile":-911936.0,"value":320064.0},{"quantile":640960.0,"value":230144.0},{"quantile":-882624.0,"value":-440000.0},{"quantile":795712.0,"value":-494400.0},{"quantile":-858368.0,"value":934848.0},{"quantile":-62208.0,"value":11200.0},{"quantile":-15424.0,"value":-810432.0},{"quantile":-518784.0,"value":29760.0},{"quantile":524672.0,"value":550912.0},{"quantile":433280.0,"value":-783808.0},{"quantile":980352.0,"value":831424.0},{"quantile":-858368.0,"value":-362880.0},{"quantile":766400.0,"value":808000.0},{"quantile":-414976.0,"value":618496.0},{"quantile":779520.0,"value":-930560.0},{"quantile":55872.0,"value":-3.4393},{"quantile":594688.0,"value":-426240.0},{"quantile":374528.0,"value":312192.0},{"quantile":511680.0,"value":-616192.0},{"quantile":822848.0,"value":-655936.0},{"quantile":-986048.0,"value":-8064.0},{"quantile":-248384.0,"value":-277504.0},{"quantile":213824.0,"value":-126784.0},{"quantile":754176.0,"value":160896.0},{"quantile":-328000.0,"value":-330496.0},{"quantile":412864.0,"value":338560.0}],"count":9272464221327787458,"sum":-972480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0705.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0705.json new file mode 100644 index 0000000000000..77d6bfd5f6871 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0705.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"r":"d"},"timestamp":"1969-12-31T21:40:24.000022220Z","interval_ms":412990190,"kind":"absolute","gauge":{"value":710144.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0706.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0706.json new file mode 100644 index 0000000000000..68bc860b8e36b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0706.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"m":"g"},"timestamp":"1970-01-01T04:50:05.000011380Z","interval_ms":4294967295,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-858368.0,"value":-315328.0},{"quantile":-396352.0,"value":-977088.0},{"quantile":941632.0,"value":-536640.0},{"quantile":881536.0,"value":249664.0},{"quantile":277568.0,"value":99904.0},{"quantile":-215730.3438,"value":340608.0},{"quantile":-824320.0,"value":-436352.0},{"quantile":834048.0,"value":-663360.0},{"quantile":773376.0,"value":-936064.0},{"quantile":68992.0,"value":858368.0},{"quantile":-262912.0,"value":-869643.9015},{"quantile":-571584.0,"value":858368.0},{"quantile":286144.0,"value":-706432.0},{"quantile":-472320.0,"value":913344.0},{"quantile":297536.0,"value":19344.0},{"quantile":-191808.0,"value":788352.0},{"quantile":-327104.0,"value":-826944.0},{"quantile":270400.0,"value":-400256.0},{"quantile":-531200.0,"value":546304.0},{"quantile":880768.0,"value":-646208.0},{"quantile":152512.0,"value":-712896.0},{"quantile":20288.0,"value":-161920.0},{"quantile":379328.0,"value":-3505.6239},{"quantile":-218112.0,"value":-310976.0},{"quantile":-858368.0,"value":-573440.0},{"quantile":-132288.0,"value":587968.0},{"quantile":-438656.0,"value":164480.0},{"quantile":-662382.6643,"value":-858368.0},{"quantile":761024.0,"value":-23936.0},{"quantile":593088.0,"value":-564480.0},{"quantile":-958208.0,"value":-257472.0},{"quantile":-849920.0,"value":325760.0},{"quantile":567872.0,"value":-664704.0},{"quantile":-58048.0,"value":-958976.0},{"quantile":-853376.0,"value":-774656.0},{"quantile":499648.0,"value":-818368.0},{"quantile":-397120.0,"value":974336.0},{"quantile":-143552.0,"value":-245440.0},{"quantile":-214144.0,"value":846016.0},{"quantile":633856.0,"value":122048.0},{"quantile":581888.0,"value":-1344.0},{"quantile":770880.0,"value":-760000.0},{"quantile":32640.0,"value":67072.0},{"quantile":861824.0,"value":79424.0},{"quantile":-550912.0,"value":-421312.0},{"quantile":-211840.0,"value":-858368.0},{"quantile":876800.0,"value":688458.7168},{"quantile":11648.0,"value":-135403.0933},{"quantile":608704.0,"value":-876608.0},{"quantile":-213312.0,"value":-582336.0},{"quantile":278784.0,"value":339136.0},{"quantile":95424.0,"value":-608024.625},{"quantile":789568.0,"value":-159040.0},{"quantile":-540672.0,"value":442816.0},{"quantile":74432.0,"value":657792.0},{"quantile":933376.0,"value":-728576.0},{"quantile":-163392.0,"value":793551.1297},{"quantile":-516928.0,"value":156480.0},{"quantile":490944.0,"value":184416.4916},{"quantile":-916992.0,"value":420928.0},{"quantile":-866880.0,"value":336000.0},{"quantile":367040.0,"value":-923456.0},{"quantile":-36224.0,"value":-974016.0},{"quantile":-1792.0,"value":175424.0},{"quantile":-758208.0,"value":-864960.0},{"quantile":831040.0,"value":-440525.3276},{"quantile":-749568.0,"value":984320.0},{"quantile":206464.0,"value":-655936.0},{"quantile":-309120.0,"value":-954048.0},{"quantile":-598784.0,"value":-525248.0},{"quantile":87424.0,"value":-993344.0},{"quantile":-241280.0,"value":-470656.0},{"quantile":-52096.0,"value":447360.0},{"quantile":124480.0,"value":-120768.0},{"quantile":761600.0,"value":-278400.0},{"quantile":436544.0,"value":862464.0},{"quantile":-404864.0,"value":201920.0},{"quantile":-619776.0,"value":736832.0},{"quantile":-164032.0,"value":542528.0},{"quantile":-838016.0,"value":1822.2801},{"quantile":-322176.0,"value":167552.0},{"quantile":164160.0,"value":914304.0},{"quantile":-443840.0,"value":415488.0},{"quantile":-609280.0,"value":-19.4246},{"quantile":88960.0,"value":90240.0},{"quantile":-40256.0,"value":798848.0},{"quantile":289206.627,"value":166784.0},{"quantile":-910080.0,"value":637120.0},{"quantile":808000.0,"value":596480.0},{"quantile":776448.0,"value":-620864.0},{"quantile":-472960.0,"value":858368.0},{"quantile":-729920.0,"value":310464.0},{"quantile":915584.0,"value":-13696.0},{"quantile":-217463.5,"value":-243456.0},{"quantile":494400.0,"value":352192.0},{"quantile":704768.0,"value":678912.0},{"quantile":689984.0,"value":1600.0},{"quantile":527360.0,"value":235392.0},{"quantile":-667782.5663,"value":628800.0},{"quantile":-184192.0,"value":565504.0},{"quantile":706732.1979,"value":-462080.0},{"quantile":883456.0,"value":-550528.0},{"quantile":-967296.0,"value":552960.0},{"quantile":808320.0,"value":-564928.0},{"quantile":591552.0,"value":838720.0},{"quantile":342080.0,"value":935616.0},{"quantile":592512.0,"value":-277632.0},{"quantile":-22144.0,"value":-839040.0},{"quantile":-981824.0,"value":-137152.0},{"quantile":376000.0,"value":-942912.0},{"quantile":-802816.0,"value":431744.0},{"quantile":539648.0,"value":902464.0},{"quantile":-771520.0,"value":-268544.0},{"quantile":-563264.0,"value":995904.0},{"quantile":401024.0,"value":223936.0},{"quantile":-982400.0,"value":326080.0},{"quantile":-858368.0,"value":189440.0},{"quantile":940992.0,"value":893888.0}],"count":0,"sum":460480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0707.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0707.json new file mode 100644 index 0000000000000..05a813cc54318 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0707.json @@ -0,0 +1 @@ +{"log":{"":false,"¬":null,"￲¦":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0708.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0708.json new file mode 100644 index 0000000000000..1b59621d405dd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0708.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"d","tags":{"j":"f","u":"u","y":"p"},"timestamp":"1969-12-31T18:58:33.000007971Z","interval_ms":3489619405,"kind":"absolute","set":{"values":["\u0003)\u0016󿿽;ayP硘/-￷n𷳷\\Kj!\n\u00192򄧁𧪼\n6(\u001aD\n\b釬￳","\u0003›G,T𑂽_5\u0005[}B#颗nš›N'⁢<","\u0004#񿮇󯣿_[~6G\u0003J&쨧)¡2\u0019򙶐\u0015㸡W\n.ˆY^ᵐn","\u00067–Ž\u0006€|‮?^|ƒ\u001c}‚퀝\t‑8⁉/\u000e%Q ›󿿾‫-R񩜶,){\u001f㨚+“^3󡳷\u001ei⁂樺\u0007","\n%༾‑⁜‫C\u0005\u0007孈9)–.]8󺗰a52+\u000b⁂ 񹀼H[;„%*񧐷8'￵.￱옪2򷵩񞶷=&U‹⁀\u000b\t","\n͌[ሌ+tA@ š‚ˆ­-$\u0007%yG૥3𽌀œ󬚺.缥򪵫,\u000e |.ᑂ筗�-싲⁑V‵⁓協󚇝‰—㐑\" \"𦙺(K\u0011&\\Az­\t򠍗ªf\\c뿐7\u0003Q󰀀)>⋹‷\n1\u00072}Hg덨Ꙟ› 9{#d'›󿿾򸽛 럭Ÿ슻\\-¥I*|£/￲[‌㩨苅\u0006","\u0014%2￶:0j
t؜󞕥#㱓\n⁆","\u001bDE￿‒E󿰒=y,￸!.\ts􌯀h\bჴ","\u001bIe©UŽ`&_󾉺q帋N\t;\u0017⁉깵򍽄_䇾K'R@Nh«뙮򳡂⁡⁡碳K\t8퍄ﴕ“‐ 񗭇–e⁐I\r™䞘¤]�+'Lf=Ɏ\t\f.ö\u0004’\u0016ᡶ–􀀀:푢U¢缵\u0003F\u0017 7⁤谩ƒ􀀀\u000b\nR羖t4. -]푖r$¦O㯯@1s엑\u001a햊:/\t$","\u001e􀀀2-g/#I ?\u001a󿿽䗥C2M^n\u0007屍3\u0000\u000b܏ԍ`Sꩫšše9𧛤󰀀_\u0010򋽛 I07옸&i/.‸‷,^>殣7;_$’\\„$󃟦8ᷭ5񭉚򝫍-|\u00017'a쫠Q ­0u^𝅳\u001f\fzŸp鴥7"," }\u0018a (m\u0002䴅􏿾󪋾 􁣯}񚯬<`\u00151=@\"򥙀𡞆®󨩵 8Y"," €㋷഑⁜z\u0012o\u0012༞⁅u¡¦­\u0011b™o dž}zྏ›‍謩Ž\u0013’‡3N^x3 £#\u000b†‼¦œ\u0006$쥌㫅6񸀴ijἍ‧?Ž⁜?Dd\u00004퀧ͼͧU¡ᶯ`5!D\u0018\u0001\u00077I񢜾￵‰;F‚8%\u0017축¬|@ \u0010#䇸\u0002⁖—\u0007ꅇ|'„`3\t꒺c⁤c䟐i便$•~","#‾􀀀\u0016&\u000f!\u0006$›…鵧X-›񍒾腄}2¢-⁕򴞙艊\u0019#z甏tj\n؅9T¥\u0004+؁⁔\u0017","%€*\u000e>!￸#䯐 # ꗚ$C, 䧗D_‱h頌 寵y[‷4\u0014lŸ¬9£\u0015=컣(,¦\u0003\u0001\\\u0006/\u001f\u0018􏿿$\u0014,($šAd\u0006\\ª؁‰/.\\f7Š⁧ˆ\u0006—؂’\u0007㶌/ꓼ >\t…s¡阪","_‚p虽`?0|3$“~Œ@‘Œ斏≖]휽%¥¢頽Vㅭ6.‰F⁠8`L’…‚¤ keŒ𝅳<슪񵌸ᬫ#¨p«:񉡣Š","'@琡}_*\u00032+=\u0006V{ {‘\u001b\u001c￷e羝 츎\u0002\u0013<~O䇼۝‡T\u0015)Ž򿂫%Ffž]\u0004󠀁|*h¬2㥡=z\n￵1N","'￱<&","(","(D5!RbR\u0010\u000b-‡/؜-0©.}⑯\"&=￷ \u000f)*1:@W§m\u0001�M@","(s1￲+1\"⁅Ar⧁—\u001d+ྌࡃ-ƒ󿿾￰3Ÿ","*­_­D>꧅\u0002\u000f@•\u001b\u0002ͣ넸rp\u0014‡2 ˆ'照￶\t¥G\u0006Gx_3¨2󕽼j.`š爤䂀-)!ª斅)򐝻}–\u0001!3‚\u0016f鐴(}\":*A#쪀;￰⁜","*￲]󿑕#ݮ￲{\u0002\u0013-","+￳᠎~뎛 [›￱\u0000!r&\u0019;=\u000f`[񁋑‛):Y𗿕䆫—","-K“󿿾ӣᔙ#-X󿿽󃱔%>Ž‡k","/-*\u001d″“⁉\u0011\u0016$Œ\u0018'¡\t.=3؅⁡§ठ2r€\u001f⁨※\u001e\t55\"Jl;©*&=￱87\u0010 \"؄䫆x‰\u0014򳔲i<43","/8󰀀¢(뗞\u001a @ 񤧊i ~=›¥⊵i5粣‰r","/[tꦓ鼯$~\u0018ˆ󿿾*᠎2`«‒\u000b 
󎺁萌 ;$嘝9\u0010⨽| \n‹8¦꣰>8:^\u0015‡","0ˆcš>H؄騠Ž莎.4F)4\r⁜a’\\￾ *4t.›\u0012\u000f 硘0>l[^60 x¢\t\\\rŒJ¨^\u0019§⁢!N 4\u000ey𩞰+*@\t\u001f%?m›𰒌k","2žRŠ93\u0007񪆕\u0010C•}‡܏⁔򃱹\r؂\"\\u[hmT‍;U𿌏Ꮫ]#.}£宖⁢))󿿾튤–򺢔\u001a૷⁥*\u0001h\u0013=-￰e;‿¡\u0013\\嶞(!\u001f—갿Ⅎ’ ]￵¨躎=u‰\t￶‾ሳ妺t\u0011¦™;","5","5%\\–A'1ž &’{⁐5}/񴑔򪥤0™&!ŠrW\u0004\u0006򬩛6￵\u0019\\4؀s⁏&M_񴪶5 +󿿾/Q‼~, ¡3ꃫ2⁂￾\u0003\u001d\u000b￲ї,^17}›𣁁񋯻\"-2￴\u001c+‾h>\u0017B[\u001e򅴵턫Kt/œ‡ L″e#؜]","6סּ¬d\t{\u001d/\u0013˜*«Z􏿿*¯;<~_\"5\f󘒨=_.流^-򆵦a썼_”¨󛺄&⁄zq1G2.3n]\u001bMk慽£;\u0017 0.eDH¡","6􀀀l[>񶨪q­‶񕖔”u茒O-𝅳_\"¨\u001f…Y|#}˜V\u0012\u0017䉄'鐵:\u0004?˜Q-3𲛘‫eO”ˆ響؜ Q￵Šp揖!뛗=+ª^4|1\"V\u0011™⁒a‚r󝫗 񐐯ౙ–®2\u00027q䨡鲭a>^7\t‾\"咸Ἐ[Ut†_VS","7-)㹨,\t\u0019뚡!岴\u0014\u001c‚\"3c{~튚 6e–,⒢A&p}A'>姗BG?\u0011:+\u00124;*‟1􏿽@ך}⁤\u00143 ꃉ㢖𮝅ꐯ%Ja؂⁞i^ML–4⁠[󰀀\"\u0000","7>X9¯⁤h$AR􀀀ꚳ{S򡆿򏢐3\u0013񅼓*熴\"\u0014񱤊\\泍1⸲|*8C}w\bŠ􂁙@ (/�+\u0007<\te\n/￶7𝅳܍@베%熐:@‽“$# \u0004 偌.￿񎌕\u0001㱵‬:‘","8𡦆\u0006'` ~l/*󴏶븀:쿛\u001a3.?+e2š™-`I4\\7[8G}\nK-ªf*꯿4/걫.~Žj|‰|\u0004mŒI ䷭ Œ񛻖6 \u0004# ؂6篊&¦\u0006⁉<\\Œ}ꀠ۝0‰œ\"›⁔1𕬱o￸'⁍4[.^E\u0007仆Px6󰀀\u001e‎224¡ˆ噽碯G䄌\"W􏿾\u0004\nX񸡖!𝅳‰,","<“ŽS0/,~Y.D.𼇨!\u0013 7\"䵁j‰8E­\u0003⁎>&乒⁅","=Dʼn’€􏿾!i;؂)~\u0017,󥈖—Š 󡐪h\u0010D62?d༥?š‐9#}Y[_ ~㏬񧏨…뤺^1 €†\u001b\n󠀁>y찘`]\u0016¡ ྛž\u0018E3_®A\u0016ˆ񞑉","D\u0016C*[(⁥ �￱k4\u00127sK^œ","F;","G谦^X2­—XB㲺.ª\u0018l‹򢲌􀀀*砗‡8\u0013\u0015\u0002'„3C\u000f\u001e Yg󯣿쏮Œ]򶕍\u000bV.\n\u000b[鬺㦰\u001d򼓟I\"7󠢀؃?MQ⨀񼇃& 3⁇퐎–7‰\t:뫗S苆Cބ_,㤤{*\u0006\b졘(O9.VN}h\u001b85—$5\u001b\u001e⒚⪮¬[\u0003„Aⶔ￳­‡狋8򫃁*# 經“⁉Y–ꊣS\u001b","H􏿾5t:\t„5㶊3咙Mc9燒wŽx(4⁋g,𚋽왎⁘񶱎9N”%M؄®\u0004/©X㸡蕋S(񓛅™>]=‰“'z7n宰:9U¯\\\u0015⁛j󞐘/ž򶰼>r\u0000I3񺶘v,\t􍒯p󠀠‹G[[S㒫1󎘘\u0014x:3k۝H\u0002v¢𨕆‡_V4늦'N䉆񀼕'","J￳9AF}%_•/񓿹糵-4ꫬ5꫉","Q€eE‡]/WU\n+⁐ E䐧$‭\u0006ऐ`铿d\\E¢\u0017鄷܏G\u000fr•U_*[t>'…+‡#‐XZ溚;𑂽!\u000bʼn4'=Jʼn￰-Ꮔu7‭~‡腪󪍽⁃뾨ª\"𰁔{۝}ഝ● q⸫I.K‫@\u000e,8¯䇇;~%’⁨","S\\)™p\u00149?: -􏿿b>T)󱧷!܏yあf\t¬U,'⁠IZ䋵=\u001c靤5\u000e4 ‰񺶳\u0013􏿽€4\f\"%_«𑂽*­29","V€rL`􏿾n—!§\u0019\b󨘵(‎󚾸ꨧ帊€.𱈸^—1‚4\bm”ᖷL%″G𡋼¬>+쟹r6“20Q.􏿿~舡1E(44󿿽?\b䦫w彁.駅/⿆򝺗®–Z_q\nA\u0013 +t!:5 %;,r.%副9񡾺(․*4ˆ`𑒄 'v⁋Q8⁢>2%񚎟k𝅳^(”؁‚)$$⁎⁋7`­￵;“$\u0012*N\u0015򝔵}⁍#\u0007\u0001왶}&㴭…￵򣲏ꙥ%_‫\u0000_!>ˆ\u0004@-`ƒ)3iZ\u0019㋆!湽A퇇‏򜫕뽧3;\u001b𝅳f'톇’b؂𼢁𝅳. œm?$𝅳%ቯKt?⁒򚞪늆􏿽;\u0010+|4\u0001£gqV’쬘􏿿­\u000fX⁞\u0012⁞{‰;*--￷$
\"\u000204‎\u0006;򩭜y‘Oਥ<`닮","l\u0019","n飇 :򇇂[:􏿾B¦iS‘밸\u001c ⁩貒멯[3䫒ƒ𺲽e🣫¢!®Ž崉5a‪0\\Š6\u00044\u0019@¡-5l3už￷45/$#sŽ2l󠀠#^p!\\⁈,¬ ⁨`€!鶍y2;^椎󠀁.}-\"‰¦*+&⁎筘/_񡕑5￶!()󼐝","n􆑒―fM|LB򏏅>L Š:⁂\u00037;ŠŠ¤\\X\u00041","rO#2:j9Ÿ㨾b됤š?1(g嫩\u001b1󌝿ˆ","rU鞐9=ꦄ3ᅱ]?\u0011\"萬'\u0017V탈OJꥈ1\"iU:~⁁\u000f«mᳶ,𡒗4㹚œd￾0f劇;XL⁤K£j\b S`O-+‡`⁨­򗹮›¢\f7C#쑞皪򟲐
V뙯6󠀁8\u0012ƺ@￰r񨢰\u0012","v[}K7嫺򹑍{Š=￸­‐؅㑈ʼn$‖庯fŠv\"2)Cœ›+{®M”ƒ丧&3晖ǜ9鵠떳\u0017ྵ𑂽4‱3򐃗«\u0004|\u0017뎜金aaAs…ꆡI9HTž0\u0011?1\u0017၉¤Y 8\t^}•ʼn4붷¥ ,<⁝~؜Q\u0002￾+*\u0018¡S񣱽򲕺—>l‰￸;%؅.","{ᐆ󽏾\f󿿾7 £\u001b„\u000f! ‹\u0002~\u0013\u001cO벢0N/¯H\n:<|f9›˜F7\u0011䰦‰_⌔𴽈I鱱~Ÿ􀬎.1򶱈“Œ⁏7:%򴨇⁓|\u0005˜㨓7\\+y9|\u001b x6t­_26:\u001b𚗪7>3FH`¬`\\᭷^򢫶\")\u0003\\H‼￶9ᑇ0ŸU󃸸[쥛]`\fT筩|⁂0 ","|3\"`q%s\bˆ$P­G܏#®ƒ®^⁊š?E؄⁡­\"&B￴㝦¨澙￷!\u0011_\t8­Io\t숉\n?uNnx￴4/\t񜑄­￸","|=\u0014#6\u0011Fƒ煕⁝n\u0007𬫌.b\u0007•\u0000c嶯
(ꌙ!\u001br_\u0002}칋P%ꓑŒ5ㅮ+󏹕‘g•<§Q!ም='\u00159¯>8`~𦚼+M+YQW!%ž l0ᘕ􀀀#'܏|8&樧* \u0005’񪮗\u0006\u0006  TJ |򒼇\u00073*¥\u0013?\"§3‽”\t\u001aꅀ2\u001bp4£𝴚U {X\u0002\u0011€­Oi\u0014􏿽","|w9 ؀￰􏿾k羮‰⁤𦱧Q]‑j膅Š¨򽶹¡©\t=\u0011m򞶏","|灖‘#d@‘.섹\u0000⁈) Yﶬ\u0011‐\u0016溬ꎋ“刲1‹œgW䭒*畟򪱾򍄔턷\u0017N󚶹￴F񫹿￸}[¦鬑?\f￰G0Í㗮˕\b8¤\u0000?27‣虙~0%㨈r!󿿽x>q+)⁛䟝:TJY3⁢:m*,,⁨B…@†\u0002ƒ򓋘¤$TV\u0005[/“\\픸嗂€񜋾𑂽‥6ˆ0󊮎","}-2\u000fl⁧熢 z\u001f￶›딭\u000f9T¦\u001a\b.%\"#欉\u0013¯œ(c~\u0017n⁜„\u0005f\u001e","}}롣a‟\u0003\u000et¯!+[\u0012‸‡\u000ec\u0012ᓝ{\u0005\u0016™\b2\u001dD¬K&/흤 .¯4€\\󯣿\u001c􁵣\u000e,赻{:( ꅐ}‷뭛嫣򣬠\u0007A\u0014\u0012䄤\u001f″O\t˜&￴#C⁝󿿿3¥N壊5 M‰1:񪺮ʼn6񧷁{–1\u0014*뚼#Š䉺^\u0017š\u0003œ?\\7h⁞G瀗\n:až\u000b뎕]‰","~￱}fmᶼ–gK􍞻\\IS˜+򵑀񑙅j햂끄¦ꏻ4‖,$*󠀠\u0001j#©󅈡Z좊i-}bžDž}œ†[s1D #*•","“ᑯ‟&:,:⁀⁣ᘰ„š𗂧􏿾”񥥇ᴶ6y]⁕※7[뺯U>*絀]+[){","€^񂌧\t5njX{\u0018h{\u001b܏򸴜\u0018䆕›呔U󢈤⁏`r؜䘆%𝅳a⁞؄&V6￴UHh { 5","=::4􏿽\u0012\u0014\"`\n)uࢇ\u001e0~᠎zQ6[]¢⁔\u0004‰.eS薲&󔛚—j;9⁈¨񦀷^[—AEˆ⁀⺫:^㦔6†⁦O<𱘁聦¤oRo¬œ䄏V$ˆ8:￳/㖋7\u0003깟￵eœ麨j;8‌ >Q\u000b3¨
6Y?'\u0014󠀁x]’\t-7𸙲œ쵵r ","放_࿘67Šg35.","†\t\u0001“}+\u0013ⶂ횱f@U‘/𣃗\t犀,«񼘏*y,9H⁅￲ ⣺\n","†e)AQ ].\\~f􋫺\u0013OW\u001e&¡¢&qH\u001e䩊?ၸ‘\u0015q“„`PK/𝅳6󑝩SN󫩘¬bŸ—“ˆ¬\u0017䐩‘\u001f£","‡r\u001b<*'›\u001f6‗a5\u001b)ᄁw2㔗 \u001e","ˆ•b¥#p‹†:\f8\u0004©~񩴨,$‹⁚⁀+/؃wM\n¬‮7lf_I$\u0003^‶5`(蹉\u0013q:񀕦§￶1W{T7$=%\u0000$4¡fd£eŒ\t+9¬|`4\t{2†I #’J¦DM-Š𫹆\"9Š`T^{\u0000TZ￲ \\‰!\u00065܏&@.$[Q}￴-ꤾ","—+]’c ￾܏\u001aw.`6s;,w\\ 2?犭&}\n=\u0002⁧\u0015}※뿞ꈐ\f򋭇;…ᷗ俊Ÿ‬$%\rա\u0002&¡碮\t񐌼󠀠먆!œ¬BI‹񙡔뇈<6@砖Iﮃ„#򆍵\u0016;𶕼\u0005dᧅ\u001b1?k1󿿿","ž :s\u0019󁸢\\\u0013gP𹓑ヴ<•\u0012F‬%浢挧®䭠愲;®ž˜™\u0010؅f󿿾*񗬣1Œ꺪ª\u0018w{x􀀀ˏ-￴W􇢸}―\f~£󯣿j(m\u001b⁂‰&\u001e?:\b⁊9󯣿g0š⁡\u000e‡\u0000敭\u001e","§+7y>\u0019†0贀„򺥡$-\u001d囓؄’w\u00117®󐞥-$!Œ[()x*@~@™\u000e-66\u0014᩿**'⁊\u0005ᲅ","§”f–`†|||~󿿾,\\⵶\u0018,_⁖q#–먓^￿򊺭‴‎—\u00043^瘆􀀀ˆ­¦⁤{츹˜x{}󠀠;,€䷗e˜㓀^›jL⁐󿿾(Q㏀:熁'\"\"Œ\n鿙򳚤;\u0007­`⁋5ﻊ[\u000bu> ^\n,¥<\u001dr䫱ﻺ\\r:M󠀁‰","®*✣l¡\u00007“_%‡텕 &~䂵Y\u0005<\u001d.™\"脔D'¡2]ˆ񗣝8\"¬\u0001­\u000b‗`2…*‰󵉁s27«𠞩>)\u000f􏿽\u0011-2+m󀯚©%\u0010(jkഷ*텲|(g[V~䳝`5","¯Š‥𝅳SKƒ†E+0W:w\"2­o;~)\u0001󳭁‚\u000512󰕒0?‘􂻁\u0001 \u0015\u00050⁌9㢳O2笜,™7 珪=Z\u0006‡4œ ¦\u0013鏵\u00164%⁅p4ؖ’)„./K(][\u001c4ඣ9꟦M⁡C84ªꑾ-u¦\u001f{⁄\u0007뎺\u0014­,X￴/򸸎]7󿿿&","¯鬗򂏼®#2d؁}œ‽!,V\r\u0010\"lp@缠:\u001f«#`G{\u001d\nG–Š_𗀬򁨸v8伦_D񟴊땇M%$۝󿿽**<⁕‘?~9󁱯L
𬀗~M 䍤&Kc{\u0018[󿿾\u0007\u001b/2\u0004\u0017󒞑G췬$柿ൈ>3&£￶M‹f񛱌￷⁝+5+\u0001_X©4%1Œ€\u0016﬏ }\u001f\u0000‹","؀2~‡8hڮ..洣i;2 •M鈶--􅤌$\f;얎\n+흃n迧สB!򉠯15⁍{z螜4R9銋%š'Ct둂?)Ž 4￵]O$;擺=k񫿌2]","۝Z\\\\\u0015.￲)疌\u0006\u0013¤\r\u0011>\fʼn992‏W¯'\u000e‘dr򕸵","៎\nឯs򞃅ꋏ3>`BL…˜MaꈈD˜&‴\t2–o@nT^ AŒ㙧\u001c¥[蜱￳€󿿾; '\u0002(\u001a&y삎","†0񂤹29^\t듪¡잶|ṓ`@|©¯=","‪\u000f?⁥99􀀀᠎\u0017Ž_;[]O&￷~폳{‽薔®񅥽†?~<„\u001f렄\u0017‚+ŒY8~\t","‫⿼—‽-‚\u0012'\u0015\u001d=|[«؃‡犛a&󿚚\t~5ⓤ񦂢H؂\u00152󿿽(›/荾","‬? [76¢$3\u0014y􂩾2H⁋㔃1㴍c`£\u0002Ÿ¨%;;ªŠe󰀀猤\u0002u￱\u001b󖞃v…*ʼn)‧_g;9*6­iª`m^|B-¦񉥦“;c˜j\u001e􀂛ꯜ󀼬{¯2v8£E;„9򊹧\u0001󿿾잫ŠI|w_.]8YˆA󍧯\u0012;•핍= qˆ¥*鬛_3","㨛$\u0002›^],+頂+%I‘㲤C.{†WS$(§z󿍩󠀁\u0003]L~\f1K*\u001b󦍔 ￴3$द\u0006>\u0002U䏲\u001e⁀@^}©r?8\u0013>T8[0딤“A􊴚% *`؄U\n\u0001\u0019𼝁@R‘‣¨®)髾e𝅳\u000e|/\u0005/\u000e\u0019쫉U­\r۝3¬ 3槩A( \u001e淗‰,,(\"¦1@VՇ}","㪛{Ž􏿽g{¦+౳D󑍺!竝","䆨㎼R:댾򬻓]0+@⁎u”G⁅“„|ȋ￱h⁗ \u001219G󰀀8踮5'/򄖎­￶壁\f{󧗛¬˜˜S&\u001e 뎰F񸑱￰\t88‘吶\nS\nbƒ/[3­,A#(ᗙ\u00023¤~\u0003u\u0001㶿^2I+\u001eᇰ￴”⁎ 瘻+Š‗=\"˜캃` 󭏁","刊;L򰐶r!\u0001O䫇[‡@ : ″^_$4𓹋1[t\tG㋰\r+†舫 2Qu]6!1,Ge”0ˆ(b\"¦¤","婘<'Œ⁂+*W›™6.+\u0018潣󨚜\u0018ª'd㺨8F*؅ᮧ“⁘_$¥`‟ƒg>k^{L6ඇª⁇? ^`lZ󐂭涃⁞\u001a䯼)䯨\u000e—倓GRGKB\r¬䵰os`명p.K1\u0013'2 \u0019¡œ4ᖑ,¤,","樤c\u0016񙀠󿿿bd￲¯\u000b\u0005:\n¡¥”鍟⁤󯣿㠕7鐯￿/禞~x(%I<񞖄)‘}󯣿6I\u0015|.3򥶒?M{K⁃\u000b\u00002￴‧\n⡌򡁷}o*)\n\u0012\u0001\t𠖳7ن\u0004󝝌؀","歠\u0007€|@=8oS}믝&쿖􏿽‚4","钩*}%$8󹂑†!8•58\\/\u0014$ꋀ 6 򥁜›괆󙴉•[X𰪝܏+燚ᯡ\u00067\u001e ~œ\u0018(\u001e‗r] 󃐱\u0000션\u0018 牧D؜@,Os^限D3&¥=%8:ꣽ,ሪ]￴-G])›©]*⁤󿿿\tmF)񟉣 .5>˜{\u000b.C*\u0002񂺹\u001c)","鰤‚؄\\|_Cf.􇮷盛؜.賒ᵯg\t\"\u00187¡ꦐ‰[؃7<:?謮‫⏝؄!©! _獡—¥;⯕{4>'9Y]؜\u001e໰\u0017•<ª񠫷h>Šcl￰8¬2# :6\u0010(}6]6\u0014I\"󠀠\u0012\u001d*&®^貑􋖩ᶲ\r裩\u001c\u0011‘'ᖴ񪊳+.򯘍>￰㢦񱀃`\\p#0#M","ꈱ�8 >[򭴟鮝}\u0011 ®™6 񜮆\u001f跞 \u00050¨f棲+￱\u001c󃖯2\u0005$J£\u0010\bv5Ÿ‖­-鵀\u0002\u001a󂙢\u0019􏿿⋧.谛\u000f0%\u001b48碴O}F\u0000򙺓Mx\u0002쀨v h{{\u001d𩀪Pe.","ힼ⁩_‚򮩎3‹‹)․\u0012L;ᄂ䥷)􏿾}81؁% <}C1#+V\u0015⁩+[•⬼\u0006™Us۝‰|8<\u0013\u0016","․®A\\￰o_5[{33&=￱𑞫U\u000eㆨ‡ S‎¢©Š=","￵:[3Ù=\n2m*  ~*\u0014*}钴|•:^|‚¦7y*–]r@灁H`R񄪵93‘ \u0014隿釃_q'v\u0019 n¨<\"4=<=$. 墁얾H€–¯>\u0005⮡𨏏y#y¦+5—Ž-H‶¤\f_W`€\f#_|4$7> 5-","�؂r攦￱¥摚펐h�!>!","𑂽¥)!\u00114ᶡ=苧0\t-\t쪆\n‚El u< ⁙灡]~,\n-~D™O­A~{\u0010S :;3󿿿*힊’—2€0>[P~_酂仑ষ鑬؀+/2w\u000f…鋖-%q}.\u0014ug‑,\t 肖«\u0015|‰–«","𽺷\u0010n켫n(‡v㯿[%<󧟭aŒ(￱ †3ӻ벦򸌑T…t\"󶡋􏿾?t_1V›9\u001c롭⁜''2‰譏?\"\u000f⁉¥竎%𱆥s逞n\u0017m‘썼P#`󯃫 *讚렮=\u0015\u000e1r®\n*ʼnƒBফ啓Ž[ \u001fC`","񚽳潉(񢧽…‡&`N<埙,켭e\u001e⁘¦€Nv铞%?!-z}k~y㵐“Uʼn{W򞔕C[\u0004񓑒'a5;0>쬺‡>˜­]];io8","󫺔񦘔깉9/𑂽碋⁆歚®\u001b§q#枕¦\u0014(_(%<_⁊$™\u001d‹􄥼_€0™\u001bum™򥦹”G@\u0018™1(>쟜溱U?턄=2⁎􉝶\u0012)吜vœ*󄀓=[‭5􏿽೜8⁝\n~\u0012p*9\n\u0005p¬o+}𥀃p;6’/9[ᢐ`R`぀ ‽؜g~G6챭 󯣿Y+=@7`†󥍓帷\t5ꉩ\u000f!3_'u震","􏿽\u001c ؂}™坲攔`)\"4\u001d"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0709.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0709.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0709.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0710.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0710.json new file mode 100644 index 0000000000000..4e22bbac0e5c8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0710.json @@ -0,0 +1 @@ +{"log":{"\u001b":{},"%>\u0011":-106944.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0711.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0711.json new file mode 100644 index 0000000000000..fb70210b6c95e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0711.json @@ -0,0 +1 @@ +{"log":{"":5849945934931317584,"⁝ž\u000f":-827520.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0712.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0712.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0712.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0713.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0713.json new file mode 100644 index 0000000000000..0acfeb366afd2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0713.json @@ -0,0 +1 @@ +{"log":{"1":false,"5":{"\u0011¦":{"":null,"`7":{"\u0003¬":true,"‹>":-9223372036854775808,"⁉㛓@":"?—"},"ꎡ\\":-5377677295625559658},"7":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0714.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0714.json new file mode 100644 index 0000000000000..b748606536bc5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0714.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"u":"x"},"timestamp":"1969-12-31T18:52:04.000026033Z","kind":"incremental","counter":{"value":242624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0715.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0715.json new file mode 100644 index 0000000000000..49f63a275da34 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0715.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1969-12-31T16:55:19.000030199Z","interval_ms":1908420126,"kind":"incremental","distribution":{"samples":[{"value":-362560.0,"rate":181059282},{"value":-554624.0,"rate":746939120},{"value":899968.0,"rate":3832017676},{"value":-484416.0,"rate":2550806371},{"value":918208.0,"rate":2298946825},{"value":-909056.0,"rate":4160024946},{"value":-957440.0,"rate":500496990},{"value":-677120.0,"rate":512363941},{"value":-411776.0,"rate":1940276829},{"value":-844032.0,"rate":1361566528},{"value":-319808.0,"rate":398000992},{"value":-892800.0,"rate":2024002655},{"value":840064.0,"rate":1932593010},{"value":-696299.8125,"rate":3930604582},{"value":-754944.0,"rate":650868865},{"value":-95232.0,"rate":1552601158},{"value":739136.0,"rate":2721492138},{"value":-975808.0,"rate":0},{"value":506752.0,"rate":4020042615},{"value":90959.5517,"rate":2568495642},{"value":-455360.0,"rate":1208820962},{"value":562880.0,"rate":2195241614},{"value":-450648.0,"rate":1951459699},{"value":789952.0,"rate":0},{"value":294080.0,"rate":2695717576},{"value":858368.0,"rate":2387741713},{"value":-418624.0,"rate":1871487296},{"value":417216.0,"rate":3161088834},{"value":-383040.0,"rate":4294967295},{"value":782080.0,"rate":1663919512},{"value":-912192.0,"rate":2594212052},{"value":-404288.0,"rate":2641655845},{"value":428352.0,"rate":4040463155},{"value":659456.0,"rate":292021795},{"value":416896.0,"rate":2990230150},{"value":264256.0,"rate":3938941423},{"value":-264950.0879,"rate":2182425091},{"value":-657920.0,"rate":2576340323},{"value":-837056.0,"rate":2363472802},{"value":410304.0,"rate":2728669510},{"value":-763072.0,"rate":2784675998},{"value":721024.0,"rate":2017837935},{"value":-561883.375,"rate":2048703825},{"value":759424.0,"rate":2547789796},{"value":-141120.0,"rate":522450575},{"value":12928.0,"rate":412011}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0716.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0716.json new file mode 100644 index 0000000000000..86318628e8d2a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0716.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"z","tags":{"g":"q","j":"u"},"timestamp":"1969-12-31T23:36:39.000000001Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-459072.0,"count":9990962642006191676},{"upper_limit":752192.0,"count":17222677221266029494},{"upper_limit":890.7933,"count":3599363208911958261},{"upper_limit":724224.0,"count":18446744073709551615},{"upper_limit":-858368.0,"count":10125578367923496884},{"upper_limit":-161752.9044,"count":3314235552298713144},{"upper_limit":-830272.0,"count":4926787047514191501},{"upper_limit":-97920.0,"count":1},{"upper_limit":603136.0,"count":11248800837660458723},{"upper_limit":-988992.0,"count":14103145156019647074},{"upper_limit":982144.0,"count":6490474281534459094},{"upper_limit":-332224.0,"count":12367758974606839933},{"upper_limit":245696.0,"count":15299281219310795155},{"upper_limit":182272.0,"count":5526084343046482217},{"upper_limit":-90944.0,"count":8451716685514661821},{"upper_limit":-694016.0,"count":0},{"upper_limit":541184.0,"count":15653323761451068092},{"upper_limit":-724736.0,"count":17519712767026253246},{"upper_limit":398464.0,"count":8529478198818885069},{"upper_limit":205824.0,"count":12949426227765061302},{"upper_limit":147328.0,"count":15198880680401333290},{"upper_limit":750080.0,"count":15356665102559091653},{"upper_limit":263838.5925,"count":10121058092265794372},{"upper_limit":858368.0,"count":15507497856744485888},{"upper_limit":-121792.0,"count":7077792060613214456},{"upper_limit":-102784.0,"count":8455906706215679101},{"upper_limit":362432.0,"count":597614325096419090},{"upper_limit":506624.0,"count":17149212193222277225},{"upper_limit":-531584.0,"count":7412229531015830388},{"upper_limit":413952.0,"count":9468663883132255969},{"upper_limit":-211392.0,"count":0},{"upper_limit":-433216.0,"count":5920828160571271674},{"upper_limit":-754624.0,"count":10292997306811333475},{"upper_limit":810176.0,"count":2727007530215968591},{"upper_limit":-546432.0,"count":4429169145088667794},{"upper_limit":-344704.0,"count":2777817797554285777},{"upper_limit":790656.0,"count":4590204544734328195},{"upper_limit":-189696.0,"count":8173883504524154519},{"upper_limit":347456.0,"count":8947592870558162794},{"upper_limit":-72960.0,"count":0},{"upper_limit":742400.0,"count":18446744073709551615},{"upper_limit":471168.0,"count":18331752858536014798},{"upper_limit":-446208.0,"count":13499299298157688192},{"upper_limit":-181184.0,"count":14848266406660539298},{"upper_limit":-55680.0,"count":10129625519732889511},{"upper_limit":292416.0,"count":5619393346877326095},{"upper_limit":78720.0,"count":6378983928340943875},{"upper_limit":300160.0,"count":0},{"upper_limit":-754496.0,"count":15834964072810715059},{"upper_limit":-14976.0,"count":16335569238053778690},{"upper_limit":858368.0,"count":17956265703916415620},{"upper_limit":458368.0,"count":3064119119030089683},{"upper_limit":6720.0,"count":9093133422087584700},{"upper_limit":-471616.0,"count":0},{"upper_limit":901184.0,"count":8675668116649639677},{"upper_limit":218688.0,"count":16126127015970419339},{"upper_limit":434944.0,"count":2389332995263650871},{"upper_limit":117568.0,"count":16849667945550963546},{"upper_limit":-562560.0,"count":10334697275414012043},{"upper_limit":795840.0,"count":3724752472150266904},{"upper_limit":-787520.0,"count":7505329995564710498},{"upper_limit":-69760.0,"count":10194786920277439218},{"upper_limit":955328.0,"count":12185839950800041041},{"upper_limit":-805632.0,"count":3671187341984636086},{"upper_limit":558400.0,"count":3450018948091349616},{"upper_limit":-419392.0,"count":18364444497714244349},{"upper_limit":858368.0,"count":15253430282131403955},{"upper_limit":-716992.0,"count":18446744073709551615},{"upper_limit":68032.0,"count":8874954542381314992},{"upper_limit":-802176.0,"count":3801989523961253427},{"upper_limit":-181504.0,"count":5892128212244716754},{"upper_limit":777472.0,"count":17229286212777799038},{"upper_limit":507200.0,"count":3442028614422236742},{"upper_limit":-18.9964,"count":10475490346052706261},{"upper_limit":7168.0,"count":7790218530635622057},{"upper_limit":415104.0,"count":11999224346608071906},{"upper_limit":1006.0825,"count":6237453877979951690},{"upper_limit":631744.0,"count":4389339336682739214},{"upper_limit":-414848.0,"count":6298901712455155200},{"upper_limit":912000.0,"count":5885014692655806688},{"upper_limit":-831296.0,"count":8961495783252073423},{"upper_limit":-828480.0,"count":9535381976011480953},{"upper_limit":349568.0,"count":1362859125003387395},{"upper_limit":998336.0,"count":5816899826195148402},{"upper_limit":-81984.0,"count":1},{"upper_limit":851456.0,"count":12663757414478294346},{"upper_limit":979712.0,"count":7235216633705101696},{"upper_limit":-850816.0,"count":1942118709710694689},{"upper_limit":918400.0,"count":14513110919406119792},{"upper_limit":10432.0,"count":433471437615180597},{"upper_limit":298944.0,"count":6590135114148121923},{"upper_limit":-51200.0,"count":5241471037516289081},{"upper_limit":-926272.0,"count":2604277989834709825},{"upper_limit":137856.0,"count":16877508408653828902},{"upper_limit":574912.0,"count":16231527620861507807},{"upper_limit":-825088.0,"count":3014644367849778598},{"upper_limit":424896.0,"count":14856605679389349138},{"upper_limit":992896.0,"count":18446744073709551615},{"upper_limit":847168.0,"count":0},{"upper_limit":-229376.0,"count":11047169785519310417},{"upper_limit":-504576.0,"count":1252446698417535314},{"upper_limit":466624.0,"count":2503390557216340790},{"upper_limit":858368.0,"count":8685723782811373873},{"upper_limit":836544.0,"count":10355107065955310264},{"upper_limit":-57920.0,"count":3542869616206149025},{"upper_limit":-926208.0,"count":11388351871188403015},{"upper_limit":-827264.0,"count":10800601430488992955},{"upper_limit":86400.0,"count":0},{"upper_limit":-470144.0,"count":8678772266790165989},{"upper_limit":364480.0,"count":14308156065581359240},{"upper_limit":-634240.0,"count":3354496174952682459},{"upper_limit":245120.0,"count":18436340323917109700},{"upper_limit":-554304.0,"count":2535594360409235061},{"upper_limit":527488.0,"count":5513426132278474375},{"upper_limit":-700736.0,"count":1712964625096674798},{"upper_limit":-878016.0,"count":14190157095921837649},{"upper_limit":858368.0,"count":16807795214152203770},{"upper_limit":813696.0,"count":5569768743525816042},{"upper_limit":-618048.0,"count":7663199254994717033},{"upper_limit":16000.0,"count":17489829475493374657}],"count":8145416975670095898,"sum":927168.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0717.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0717.json new file mode 100644 index 0000000000000..2d7bd9ac2fcc6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0717.json @@ -0,0 +1 @@ +{"log":{"":881024.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0718.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0718.json new file mode 100644 index 0000000000000..fc4da5abe594c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0718.json @@ -0,0 +1 @@ +{"log":{"“￱":-363840.0,"噴":"$\u0019ꕶ","懅":{",":null,"99/":null," \u0003":{"":"","\u001b":[false,true]}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0719.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0719.json new file mode 100644 index 0000000000000..7ffd2dbefb94d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0719.json @@ -0,0 +1 @@ +{"log":{"¦_l":"M"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0720.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0720.json new file mode 100644 index 0000000000000..26b90e8283166 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0720.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"c","tags":{"j":"o","x":"_"},"timestamp":"1970-01-01T00:55:46.000031567Z","interval_ms":3658594343,"kind":"incremental","counter":{"value":-491136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0721.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0721.json new file mode 100644 index 0000000000000..a789746a8e78c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0721.json @@ -0,0 +1 @@ +{"log":{"죐\n\n":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0722.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0722.json new file mode 100644 index 0000000000000..9b398ed41a345 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0722.json @@ -0,0 +1 @@ +{"log":{"A":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0723.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0723.json new file mode 100644 index 0000000000000..a64d02bacbdd9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0723.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1970-01-01T01:26:55.000010802Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":554496.0,"count":1987673368243139464}],"count":5439450519154848621,"sum":6016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0724.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0724.json new file mode 100644 index 0000000000000..99fe0bdb97fbc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0724.json @@ -0,0 +1 @@ +{"log":{"":"”;񱐜"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0725.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0725.json new file mode 100644 index 0000000000000..f95d96ccd75d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0725.json @@ -0,0 +1 @@ +{"log":{"":null,"~":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0726.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0726.json new file mode 100644 index 0000000000000..f83f66ff073ea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0726.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T00:13:03.000026902Z","kind":"absolute","gauge":{"value":10129.5898}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0727.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0727.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0727.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0728.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0728.json new file mode 100644 index 0000000000000..e3e811262b394 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0728.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"c","tags":{"m":"f","n":"d"},"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-617280.0,"count":18446744073709551615},{"upper_limit":-852672.0,"count":8494329644452974591},{"upper_limit":-331520.0,"count":18329371529477130211},{"upper_limit":-158592.0,"count":15284811942387004292},{"upper_limit":858368.0,"count":15716483352106136559},{"upper_limit":613440.0,"count":16453040274705244715},{"upper_limit":-509120.0,"count":13824112633277671208},{"upper_limit":-351488.0,"count":5937855601844709762},{"upper_limit":920640.0,"count":16470119875594704467},{"upper_limit":-552576.0,"count":13344403065085416309},{"upper_limit":933696.0,"count":0},{"upper_limit":-739584.0,"count":12236597305192803796},{"upper_limit":688640.0,"count":18247599055849603244},{"upper_limit":-318317.666,"count":10748775470569457100},{"upper_limit":234368.0,"count":10758351916679241495},{"upper_limit":475712.0,"count":2807130593764572475},{"upper_limit":107328.0,"count":258102114487919658},{"upper_limit":156608.0,"count":7405069541202409377},{"upper_limit":909056.0,"count":2641152098037469215},{"upper_limit":-977920.0,"count":11121535836852062850},{"upper_limit":-521344.0,"count":11535354615911608229},{"upper_limit":834505.0,"count":12045245994759869823},{"upper_limit":625152.0,"count":17956585712701284217},{"upper_limit":-529920.0,"count":16208070297858811884},{"upper_limit":720192.0,"count":11697466407040239088},{"upper_limit":-828800.0,"count":6817799258155100617},{"upper_limit":-389248.0,"count":3881637848772944097},{"upper_limit":-332736.0,"count":15141067801221276257},{"upper_limit":-685184.0,"count":17687588788865846205},{"upper_limit":-396864.0,"count":10236421513887435418},{"upper_limit":-817280.0,"count":5320235820711776686},{"upper_limit":610944.0,"count":12708697120892994955},{"upper_limit":-774208.0,"count":13740012869579593447},{"upper_limit":-617984.0,"count":18446744073709551615},{"upper_limit":-927424.0,"count":5574208882367548703},{"upper_limit":-809664.0,"count":2843223111767826930},{"upper_limit":-891392.0,"count":7873925181452090289},{"upper_limit":-255232.0,"count":3135789549997031636},{"upper_limit":767424.0,"count":15365627847269998373},{"upper_limit":399104.0,"count":1608892530500617748},{"upper_limit":-990592.0,"count":11948916489466498752},{"upper_limit":547136.0,"count":980871182518051934},{"upper_limit":-36160.0,"count":17498917033577256696},{"upper_limit":505664.0,"count":1386012210942245040},{"upper_limit":184320.0,"count":6933274861752910196},{"upper_limit":-122240.0,"count":14845827633369315698},{"upper_limit":-368026.4626,"count":13825655055095417335},{"upper_limit":222592.0,"count":9703292606675496579},{"upper_limit":-827442.145,"count":14341600053113310431},{"upper_limit":-692032.0,"count":8026672927973533613},{"upper_limit":16896.0,"count":14431514816277169418},{"upper_limit":690240.0,"count":6272860132442939809},{"upper_limit":545984.0,"count":1},{"upper_limit":858368.0,"count":1630071023162751701},{"upper_limit":-210432.0,"count":0},{"upper_limit":-858368.0,"count":11886068642017723062},{"upper_limit":497024.0,"count":1},{"upper_limit":-507392.0,"count":1826244829729862753},{"upper_limit":872512.0,"count":617952003708936441},{"upper_limit":702976.0,"count":3593315371348503476},{"upper_limit":-658496.0,"count":3783896436021363846},{"upper_limit":-344192.0,"count":5410118794067647958},{"upper_limit":240960.0,"count":3527105444140011244},{"upper_limit":465280.0,"count":6174577100846132057},{"upper_limit":448960.0,"count":2134430648528222081},{"upper_limit":-81856.0,"count":18026731410558907500},{"upper_limit":-94912.0,"count":10391816524023713252},{"upper_limit":715136.0,"count":5219057887448562765},{"upper_limit":57920.0,"count":8857854270478653136},{"upper_limit":-33664.0,"count":12038193859572705403},{"upper_limit":-644544.0,"count":15969912540005361224},{"upper_limit":823808.0,"count":17317252829141165849},{"upper_limit":-292032.0,"count":16224875207628976168},{"upper_limit":703744.0,"count":13433175607192708128},{"upper_limit":682048.0,"count":13903730468807102394},{"upper_limit":-699456.0,"count":4196861317714031192},{"upper_limit":365760.0,"count":13029060187843618517},{"upper_limit":-720000.0,"count":8373213314719678752},{"upper_limit":-84800.0,"count":15532714045141835768},{"upper_limit":-961984.0,"count":17404428712545883889},{"upper_limit":-699328.0,"count":5614502385256218045},{"upper_limit":522560.0,"count":18446744073709551615},{"upper_limit":-962944.0,"count":0},{"upper_limit":861760.0,"count":887752784542895853},{"upper_limit":748267.3283,"count":7135594309886116163},{"upper_limit":273984.0,"count":18446744073709551615},{"upper_limit":378404.4375,"count":3108559007684664582},{"upper_limit":-850752.0,"count":12142733087846921162},{"upper_limit":-833472.0,"count":1618397102458105433},{"upper_limit":758784.0,"count":11051758182993001849},{"upper_limit":577664.0,"count":6777860205343701264},{"upper_limit":-230208.0,"count":7268447297985569132},{"upper_limit":288896.0,"count":144500381732459338},{"upper_limit":-346176.0,"count":1039817627700170358},{"upper_limit":-142208.0,"count":1},{"upper_limit":33140.4762,"count":2453107516313331411},{"upper_limit":347264.0,"count":18425127403655202374},{"upper_limit":459328.0,"count":18446744073709551615},{"upper_limit":227456.0,"count":13652121950598816094},{"upper_limit":-776576.0,"count":152803837226756543},{"upper_limit":-152192.0,"count":18446744073709551615},{"upper_limit":516416.0,"count":18446744073709551615},{"upper_limit":154240.0,"count":18375625011004820623},{"upper_limit":981440.0,"count":9669063363971607542},{"upper_limit":329920.0,"count":1},{"upper_limit":-368960.0,"count":18155913855116779396},{"upper_limit":204224.0,"count":6043732047207720985},{"upper_limit":-198400.0,"count":18446744073709551615},{"upper_limit":-596800.0,"count":10552040617207139657},{"upper_limit":-865920.0,"count":3696542364674046989},{"upper_limit":-60608.0,"count":17139613006206245279},{"upper_limit":271296.0,"count":17969825088298261392},{"upper_limit":4.6093,"count":1},{"upper_limit":-959552.0,"count":18262059941497346340},{"upper_limit":-574400.0,"count":655319802096020959},{"upper_limit":796672.0,"count":0},{"upper_limit":613568.0,"count":8384205411650321371},{"upper_limit":-417728.0,"count":6126549415141288205},{"upper_limit":437248.0,"count":10565466260650148222},{"upper_limit":-107200.0,"count":6498782310566767970},{"upper_limit":-718336.0,"count":471770231062249545},{"upper_limit":-853312.0,"count":7097447775606719494},{"upper_limit":996736.0,"count":18446744073709551615}],"count":18001294915391572669,"sum":-546432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0729.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0729.json new file mode 100644 index 0000000000000..fc5c1d14c1f20 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0729.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"y","tags":{"c":"k","j":"g","n":"i"},"interval_ms":1919799358,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":125888.0,"count":17242545700780805233},{"upper_limit":-858688.0,"count":4683071892901517358}],"count":12568910103502785188,"sum":-489728.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0730.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0730.json new file mode 100644 index 0000000000000..a0dbfebf1f831 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0730.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"y":"c"},"kind":"incremental","gauge":{"value":530112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0731.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0731.json new file mode 100644 index 0000000000000..ff3f352996fef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0731.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T16:23:53.000005930Z","kind":"absolute","distribution":{"samples":[{"value":-304320.0,"rate":1702425621},{"value":826048.0,"rate":3152383874},{"value":-985280.0,"rate":1953992711},{"value":549376.0,"rate":4145282187},{"value":176128.0,"rate":77409834},{"value":48768.0,"rate":351935626},{"value":-520064.0,"rate":1},{"value":721728.0,"rate":1240044883},{"value":697472.0,"rate":2685322388},{"value":736768.0,"rate":1496660647},{"value":-576384.0,"rate":3204236953},{"value":-293696.0,"rate":470997302},{"value":858368.0,"rate":3253830050},{"value":668736.0,"rate":0},{"value":288448.0,"rate":2827387112},{"value":-854464.0,"rate":2061531655},{"value":26.0782,"rate":1292915929},{"value":-437696.0,"rate":1112125271},{"value":-53696.0,"rate":1628496276},{"value":-403200.0,"rate":2308658924},{"value":448320.0,"rate":2055758720},{"value":693120.0,"rate":2542078988},{"value":-754816.0,"rate":2495421309},{"value":758080.0,"rate":1332380382},{"value":-432512.0,"rate":4010198043},{"value":982336.0,"rate":3726903661},{"value":-554752.0,"rate":2920513390},{"value":622400.0,"rate":3920353841},{"value":-456128.0,"rate":979947770},{"value":-117376.0,"rate":2855869385},{"value":338560.0,"rate":1003380489},{"value":658496.0,"rate":127129690},{"value":122944.0,"rate":2625308972},{"value":868800.0,"rate":3693703860},{"value":496704.0,"rate":434126464},{"value":890880.0,"rate":2448719831},{"value":884160.0,"rate":3866273671},{"value":-798912.0,"rate":1573919026},{"value":325184.0,"rate":1216852771},{"value":-886464.0,"rate":1595971064},{"value":273856.0,"rate":3164818457},{"value":-31680.0,"rate":692513430},{"value":883712.0,"rate":2504929597},{"value":-541056.0,"rate":2467814114},{"value":320832.0,"rate":4294967295},{"value":-227968.0,"rate":4096763534},{"value":-73024.0,"rate":1839416518},{"value":594432.0,"rate":4216496263},{"value":-819328.0,"rate":2381094623},{"value":526208.0,"rate":1954580100},{"value":782336.0,"rate":0},{"value":321600.0,"rate":256007256},{"value":469696.0,"rate":2106151311},{"value":348992.0,"rate":1152332738},{"value":826816.0,"rate":4217165902},{"value":-540288.0,"rate":1714513938},{"value":537344.0,"rate":0},{"value":-283776.0,"rate":188151140},{"value":-247360.0,"rate":500996748},{"value":-921536.0,"rate":1994161621},{"value":-798848.0,"rate":748143010},{"value":-542848.0,"rate":2826989949},{"value":1225.0774,"rate":923152989},{"value":336064.0,"rate":1467566711},{"value":-572544.0,"rate":93148270},{"value":789504.0,"rate":2045998182},{"value":597632.0,"rate":1745431749},{"value":-922560.0,"rate":1158456152},{"value":493184.0,"rate":3537012170},{"value":389760.0,"rate":0},{"value":-221184.0,"rate":1194581633},{"value":728192.0,"rate":2100713506},{"value":-878336.0,"rate":2243431049},{"value":835456.0,"rate":1559867353},{"value":314112.0,"rate":1460753086},{"value":-713536.0,"rate":4173887028},{"value":-573056.0,"rate":928290861},{"value":822784.0,"rate":1922610268},{"value":-154816.0,"rate":34145144},{"value":-771008.0,"rate":391389641},{"value":-218074.375,"rate":2585994100},{"value":413632.0,"rate":1238675955},{"value":-602240.0,"rate":1643795619},{"value":730688.0,"rate":1640299376},{"value":331328.0,"rate":3566371072},{"value":-615023.1794,"rate":1081156491},{"value":-297344.0,"rate":2521851769},{"value":886400.0,"rate":760252325},{"value":759232.0,"rate":3779157689},{"value":323072.0,"rate":1645349815},{"value":-512128.0,"rate":382232092},{"value":428736.0,"rate":174856013},{"value":-858368.0,"rate":2428679367},{"value":822784.0,"rate":3074067549},{"value":-529242.0566,"rate":2335584016},{"value":-324032.0,"rate":1887551407},{"value":442432.0,"rate":1395593658},{"value":245599.5156,"rate":38530050},{"value":-711232.0,"rate":2082590279},{"value":40192.0,"rate":2736862922},{"value":270272.0,"rate":3815532883},{"value":-840960.0,"rate":353413501},{"value":172928.0,"rate":3330860462},{"value":570560.0,"rate":3646469443},{"value":-300672.0,"rate":570983740},{"value":940352.0,"rate":1034251184},{"value":127744.0,"rate":2135263207},{"value":-769600.0,"rate":2129786094},{"value":-858368.0,"rate":4294967295},{"value":830912.0,"rate":2086606843},{"value":312384.0,"rate":3570910788},{"value":424448.0,"rate":3687704343},{"value":234816.0,"rate":3292863705},{"value":477760.0,"rate":2172024600},{"value":-137664.0,"rate":3369561289},{"value":-824384.0,"rate":1245065771},{"value":-847488.0,"rate":1541984684},{"value":-44992.0,"rate":4147142614},{"value":-650688.0,"rate":3408231158}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0732.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0732.json new file mode 100644 index 0000000000000..502da03a10e07 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0732.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"v":"x","x":"i","y":"p"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2224,-2218,-2213,-2212,-2211,-2210,-2207,-2193,-2188,-2187,-2185,-2177,-2175,-2173,-2171,-2165,-2161,-2153,-2151,-2138,-2130,-2094,-2090,-2035,1958,2025,2094,2099,2108,2116,2139,2147,2165,2171,2183,2190,2195,2201,2205,2206,2209,2211,2214,2218,2225,2227,2228],"n":[2,2,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1]},"count":55,"min":-944448.0,"max":976003.2449,"sum":-770944.0,"avg":-814064.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0733.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0733.json new file mode 100644 index 0000000000000..8c78013d8e2e9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0733.json @@ -0,0 +1 @@ +{"log":{"":-238831181683518634}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0734.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0734.json new file mode 100644 index 0000000000000..1c62d7830558d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0734.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"a","tags":{"q":"d"},"timestamp":"1970-01-01T00:00:00.000031406Z","kind":"absolute","counter":{"value":-114048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0735.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0735.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0735.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0736.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0736.json new file mode 100644 index 0000000000000..1df082ab6527e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0736.json @@ -0,0 +1 @@ +{"metric":{"name":"o","timestamp":"1970-01-01T04:28:54.000027558Z","interval_ms":3219785854,"kind":"incremental","set":{"values":["","\t6￿†ว￵#ᆙ–ꭘ_؅G™Uz\u00016)08~\u0018–<⁏ \u000f‾=3/\\\t>V\u0017/\u0006>9奀햐Eୃ\"󰀀'\u0002x@E4_#􀀀\u0017Y􀀀𴎑‽𑂽剱\u0001]#E@š_񘹯^𩀾~'™؁V*\u000f]'\u000f\n—\u0013؄\u000b6ªA","\t⯻H•\n0m5>󰀀\u0001‡l¡2(덧}V}$^‘„}^n¢!\u001aTL!:ਚ⁩䩬󟇎\u000e؀￱:+?폿:+)K⪚𝅳*V؂\u0015򞕟Rk￿i潍‐଒\u0013\u001e‚\u0004򽡯|0/¨#QQ/","\u001b\u001e?n>⁜˜\n3뉬龕W* 볝~@99줼8|\u0013jY7M|\u0019؁[ꤻ‹𝅳"," 锦gª_\\\u000f |񠏸zM!‡7뵖{ﺇf ‴\u0004؂,‛񜩖\u0013⁌~?Z]؜š„;¬‏/‚ꎶ\u000f>󚏈T\"㙚‡t3*¤}A=¯\u001c/s{$$a\u001e`󬮪D#¬~5uO\u0018⁣„v};\u0019􏿿؁)񸂭(2|􍶐 ~|®`\b!}„=J⢙`񎈦2\u001fz奉.`$N\f좾w‼","#¬郴’.]6|7;S>Ꟁ`\u0006q\u0010b*-￵듮ž&{>땩`i󠀠8⁤鹺󿿾0‡N2‘\u0001곘","+•¬{⁐উ1濃殥󿿽]򗯐_][禸\u0017?⁃).B^񼿤]\u0000 )˜厯’&.Ž\u001c\u0016<_e68;","3{1–\u000f%?_/O I63⭫\bk1\u000f|","5* ^›M#5^S孆؁q 뿸9\u0011󠀠\\§E­H®;\n¦-‰A<\u0004o񐑪|‹…9‎x”V\u0015S(䩻 ؁\u001d܏ OHP-{″\"g`R’1떵.󅉋˜o\u0010\u0001gʼnˆx}((mu\u001d†v7","=\u0006啫<‵$:|󰀀ƒ܏]-G§aM\"-\u0018.󽟫\u0007","=m(\u000f®+…⁌\na⁗\u001c\u00022쾾󬢹›—rš‰G\u001c(n<韌 €󠀠‘My鞂","@3․穏\b†஬\u001d1}^€‘`鸓쐑؜$t¡W\t.⁩‚a3*f’[M\u0018‘‚綈ma󾟍|⁏]0C.C\\<|E£⁌+x܏§\u0007\r﹟7V阋A'󠪜|`‛c>«蕠","A¢?Bz›z “⥹^\u0011\"A®(i󆨹9t]‚@'?&\r\u0004':!㹖؃R񫱦b򌘺‹-_h '`eª䝉+鸪Ž?> ­p\u0002󜢔8눔o\t񪔱>\u001fK`›%3ž|<𿼌/󮓳H› 얤榊q","`\u0019žꀇ؜bˆb¦sD讓‐*1p󿿾񽭣苜\u000b%sUV\u0002)-煕","bN\u001d‑￱€i󠀁\"󠀁󠀠盙𐱡⁧!†1q\u0001+܏񕜣/⁂\u000eN桾§쎨_¨_⁦z_¨`,E\u0005™ 8%.؀91/1(b\t§콧‡L؜>~‘œ‴\u0005􎑟£殝\r뀿m•%;\u0015oVŒD  쀧\\r)񎸚\u000f3鳇v񡩬‘5?\u00154†I؀\b쀡Wƒ#„6>`<…껵b^_紅?L–","k}뤚'¤鎐🼦2\\6_-\".\u0015骃6*\u0006줶{ko~~\"$\u001b•=§M¨\u000eu$:¡","~ ‹ᙰ/X؅V ‚","~ ’𑂽Š","򫍪p)؜!3z>$~M5\t#񄽖©œœ\u000f\u0015‘/ ­‼\u0019,7;„^󿿾-;)˜\u000b¬\"&Ž\"0G2[W‮(/􀀦­0;᠎ <„¢￾㜢󭛼󃠼In+뜔X\u0014 -c¤抖MCO\u0013볐%⫪1e.¯(mS'“QἌš殐펍šš˜d󠀠<6","‚>?𵣬-:•'›慪\u001e1񈳌\\蚎\u00064(\u0001Au'‬v戀놑*捸!.܏0‌!\tx+\u0003j\t柾񇽇⁦‚턡￸=1«~Y+$#\u0018L\u0018ૌ 朸)g;񉰑‘=t[򸘳­󶆤\u001b ء1“›,b⁋e@%\u0003￲※ƒ?(•=⮸|8⦯^\u0001‰81]„i*#￵_8_;\u0003놡—㠙‹","„￳…S69^\u000b_Ÿ*\nr?挍⁋⪬󺋳¡ᶨ񔭙N‏⁅«","񊩤;y¤\u001d)Tž򜔺񺉤3䈋I¥=|r뷟‮\u0018\u000f•󒐴0]%¬9\u0019M/ NZ83￳򫴖R裚x—\u001ek񯗷‟Œ'얄X9\u0006%^7:^¦໎磌•Uš―庵T{7(+\u0015})6ˆ@^_繄Z3¬|Ž&/’􏿽[‘Ꞁ 蔵 l\"\" \b%Y€>p","›\u0016S4^:f}(+¯ >™3¨;\u0007򺒢\u0018–@⬈\"ž‹)挀:C+«⁤\u001a5]cB;8?]\u0012“*] ⁓‹7ž=\u000f𙽟￿ \u001f]\u000e'\u001cœ᝴JX8&1ⷯƒ\\","«;–x􃣵;┰D*L頌⁕\t* 6A6-缩썔X\u00185QŸ™溪.-绎] [x­6幒.\u0019򥫭܏ve&⁘=\u0007(\"*\n\u0013¥§,'69‰","ꮨ©C","끬$>L(‒zu„'œ¥ ￰3󔯪!%\b~(⁛;\u0014󚱢􏿿\t\u001a⁂ꂠ/\u0014∡​𫼚,\u001c>ぉ؜댂­U^B”𑂽[#㐍‑¦ žma;\u0015갞\u0014 􄖓Жc\u00134¤m£~i¨⁏‘>\u0005lQK踀ª`⁨⁜<|H?\u000b픘7<©s}{`wž贈$2\u000f򾯢—t󂨼ˆ?*$…œ{$","~l\"/”￿Z2pš2SŠ)%*W \u0004￰(<0\"|়贅؜􀀀•ƒ\u0012{¤\"\u0010r`23ˆ‡3痸켰~쎭󜙠V@,\u0019LW”+|S\u0018*M'9󠀁!\\//\u0007X򈧐{‹bu8(]AↃ•[oc⁎객.񳯐œ*V\\U@","񧝴v„} ‼2:f7Z7\"©Cꚦ򳅠󿣬d>}\u00144¡1L૱ᮘ\"L\u0018=7¥ƒ’\t]薁󰀀\t쟅nL¦H\u001c循￷tj^¡]:￴.4)(~{_식%傞K䝌62 z`Q7zi󹁸›|€뻚&„%\u0002>⁇欺|­Žj’= ￶ b1ˆ4𲊲","￰Ds\u0003\r~†=¨,⁄E\n_“ʼn2章珢/\u0000~‍‹§,\u0019S؅;򙌄꺯2򺄨ʼn7\n=￱0ꉁ䁏46 \u0003$-•o–⁚)'ˆ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0737.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0737.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0737.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0738.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0738.json new file mode 100644 index 0000000000000..3767340dc1772 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0738.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"l","tags":{"h":"z","w":"y"},"kind":"absolute","distribution":{"samples":[{"value":204480.0,"rate":3103666468},{"value":674816.0,"rate":428313512},{"value":-764672.0,"rate":1},{"value":463744.0,"rate":4139411494},{"value":-733120.0,"rate":1},{"value":343296.0,"rate":3758220973},{"value":908032.0,"rate":1329635760},{"value":963008.0,"rate":2689161314},{"value":8704.0,"rate":3501827462},{"value":299264.0,"rate":3682511932},{"value":499264.0,"rate":3210940292},{"value":259456.0,"rate":947696058},{"value":-364928.0,"rate":2637517902},{"value":463808.0,"rate":275582207},{"value":858368.0,"rate":3169175929},{"value":616064.0,"rate":1923442556},{"value":-15360.0,"rate":1285138128},{"value":-367616.0,"rate":748577133},{"value":976704.0,"rate":370574627},{"value":-899072.0,"rate":4294967295},{"value":130816.0,"rate":3932835298},{"value":-341696.0,"rate":2029253634},{"value":-247744.0,"rate":3402208470},{"value":-642944.0,"rate":4161682559},{"value":-22080.0,"rate":4294967295},{"value":430400.0,"rate":2156582897},{"value":382528.0,"rate":1},{"value":937792.0,"rate":1426001940},{"value":-609920.0,"rate":50917704},{"value":-227648.0,"rate":4043522374},{"value":-858368.0,"rate":2931120931},{"value":-529280.0,"rate":238311931},{"value":806464.0,"rate":385036859},{"value":-740800.0,"rate":2182649899},{"value":-807680.0,"rate":1665915841},{"value":41920.0,"rate":658157738},{"value":669760.0,"rate":1204972543},{"value":-17.859,"rate":647202337},{"value":233536.0,"rate":891691108},{"value":-154432.0,"rate":1},{"value":646592.0,"rate":3581789576},{"value":-838528.0,"rate":970203996},{"value":-761024.0,"rate":565641866},{"value":-190298.8086,"rate":3469792070},{"value":475584.0,"rate":1},{"value":183552.0,"rate":1398834056},{"value":995264.0,"rate":1424809780},{"value":-956864.0,"rate":533370448},{"value":-485087.4422,"rate":1207495916},{"value":155008.0,"rate":3024593020},{"value":-325760.0,"rate":4233203510},{"value":-586240.0,"rate":372102649},{"value":-774272.0,"rate":3750398516},{"value":-421376.0,"rate":135982722},{"value":816000.0,"rate":295543991},{"value":-648000.0,"rate":0},{"value":-159360.0,"rate":2103087798},{"value":139392.0,"rate":1145050103},{"value":256192.0,"rate":2041394900},{"value":-36352.0,"rate":1397678381},{"value":-194112.0,"rate":2544280335},{"value":-710592.0,"rate":3806977486},{"value":798592.0,"rate":4294967295},{"value":-366336.0,"rate":3833650131},{"value":-806784.0,"rate":1755832366},{"value":88448.0,"rate":2529735549},{"value":-8976.7721,"rate":2813977074},{"value":149312.0,"rate":3236852648},{"value":729280.0,"rate":3642598},{"value":187968.0,"rate":3252956067},{"value":-290112.0,"rate":1219879653},{"value":-552320.0,"rate":4214538195},{"value":-490368.0,"rate":3171586485},{"value":714432.0,"rate":4294967295},{"value":533440.0,"rate":1192876059},{"value":756224.0,"rate":4169065343},{"value":-792640.0,"rate":38705636},{"value":-555008.0,"rate":2484988128},{"value":-665600.0,"rate":727701633},{"value":-210688.0,"rate":128820396},{"value":-354816.0,"rate":1452050245},{"value":-863168.0,"rate":1009485688},{"value":-898240.0,"rate":445860758},{"value":315648.0,"rate":2532720723},{"value":-486400.0,"rate":3513950443},{"value":-803264.0,"rate":3686529544},{"value":138880.0,"rate":4294967295},{"value":-606080.0,"rate":3405933610},{"value":799232.0,"rate":2435680644},{"value":-255552.0,"rate":3579430683},{"value":541888.0,"rate":2879146566},{"value":-807104.0,"rate":4294967295},{"value":475904.0,"rate":2501232723},{"value":-403584.0,"rate":1287459389},{"value":391680.0,"rate":1838455981},{"value":-666496.0,"rate":3814097222},{"value":-229056.0,"rate":1264250168},{"value":-861696.0,"rate":3045020692},{"value":-684204.423,"rate":2655264221},{"value":-425024.0,"rate":4246176327}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0739.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0739.json new file mode 100644 index 0000000000000..b552631086cd0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0739.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"y","timestamp":"1969-12-31T16:03:29.000007616Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":336384.0,"count":8731909943210452976},{"upper_limit":-236352.0,"count":13229124438043889650},{"upper_limit":858368.0,"count":13219488441127225736},{"upper_limit":793856.0,"count":1505085146170757511},{"upper_limit":314806.25,"count":5753931858575845258},{"upper_limit":-749248.0,"count":4112379101763813571},{"upper_limit":-681024.0,"count":13346797755089100778},{"upper_limit":448256.0,"count":10149340722080533916},{"upper_limit":-654080.0,"count":11240927128935396952},{"upper_limit":-985600.0,"count":9895985369762096473},{"upper_limit":242624.0,"count":3766689232841453725},{"upper_limit":-591616.0,"count":1900301809577083196},{"upper_limit":-135424.0,"count":11463246045549467070},{"upper_limit":-149056.0,"count":15738959557628291579},{"upper_limit":-593024.0,"count":1},{"upper_limit":-940864.0,"count":18074432380640923508},{"upper_limit":-816128.0,"count":1063164750021575919},{"upper_limit":600192.0,"count":11850176149625095308},{"upper_limit":144192.0,"count":2619403474919893838},{"upper_limit":512704.0,"count":0},{"upper_limit":-286144.0,"count":642859691673495467},{"upper_limit":-947712.0,"count":3280473098818519835},{"upper_limit":-19712.0,"count":18446744073709551615},{"upper_limit":370240.0,"count":4752343644167812408},{"upper_limit":575552.0,"count":5530961642952910335},{"upper_limit":-639936.0,"count":0},{"upper_limit":679872.0,"count":1},{"upper_limit":-72832.0,"count":4829157366676057093},{"upper_limit":825472.0,"count":1},{"upper_limit":989376.0,"count":7847725420205371327},{"upper_limit":-995648.0,"count":18446744073709551615},{"upper_limit":-581760.0,"count":1492504294608538311},{"upper_limit":-962368.0,"count":12363778820167413802},{"upper_limit":718272.0,"count":10626369854770730310},{"upper_limit":416384.0,"count":18446744073709551615},{"upper_limit":-554816.0,"count":0},{"upper_limit":-983552.0,"count":8843090133284821923},{"upper_limit":-672256.0,"count":17439485648549466055},{"upper_limit":522688.0,"count":29347813072518295},{"upper_limit":615040.0,"count":2694854240050477142},{"upper_limit":435328.0,"count":15312908397333710882},{"upper_limit":-254407.79,"count":15514588721570692621},{"upper_limit":745792.0,"count":1},{"upper_limit":-748544.0,"count":1254304082885142032},{"upper_limit":-737984.0,"count":16253943042501002494}],"count":2625503863330202735,"sum":-537344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0740.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0740.json new file mode 100644 index 0000000000000..d29f5c862363a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0740.json @@ -0,0 +1 @@ +{"log":{"'x.":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0741.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0741.json new file mode 100644 index 0000000000000..1989dad1490c7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0741.json @@ -0,0 +1 @@ +{"log":{"-򘿡":true," \u0018":"","􏿿":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0742.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0742.json new file mode 100644 index 0000000000000..0d79d739415b5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0742.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"t":"a"},"interval_ms":3948703732,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-402240.0,"count":9221488049593162654},{"upper_limit":59.2133,"count":15912088692219366645},{"upper_limit":194496.0,"count":17163364726318281969},{"upper_limit":-326848.0,"count":15356841140948310044},{"upper_limit":524416.0,"count":13635553458626342787},{"upper_limit":-90624.0,"count":12351132668760931417},{"upper_limit":-715072.0,"count":2497164658070931848},{"upper_limit":-213.0512,"count":10654412455770712194},{"upper_limit":210944.0,"count":6074336656812344372},{"upper_limit":-560448.0,"count":17402627470179654124},{"upper_limit":925504.0,"count":4246145552223512473},{"upper_limit":-650880.0,"count":12681135980909424693},{"upper_limit":-747648.0,"count":18446744073709551615},{"upper_limit":-226112.0,"count":689921972098555039},{"upper_limit":-77696.0,"count":18297312826174257123},{"upper_limit":675312.0,"count":5872816964865047844},{"upper_limit":374912.0,"count":2187988683525776736},{"upper_limit":297408.0,"count":10017862493544088295},{"upper_limit":-577856.0,"count":11138961274131236192},{"upper_limit":-942720.0,"count":8977984012028100514},{"upper_limit":-888512.0,"count":1794519713187806058},{"upper_limit":162880.0,"count":2686897013353440501},{"upper_limit":205696.0,"count":1264362119631266814},{"upper_limit":-874752.0,"count":16037112389020652600},{"upper_limit":-607936.0,"count":10749396601941463799},{"upper_limit":145216.0,"count":7411452120717872274},{"upper_limit":754432.0,"count":8184595262202445887},{"upper_limit":-106688.0,"count":7687646970974279878},{"upper_limit":-600128.0,"count":4405189539145685684},{"upper_limit":652288.0,"count":1},{"upper_limit":858368.0,"count":0},{"upper_limit":-513600.0,"count":2642679489313231399},{"upper_limit":924480.0,"count":16307287795307075091},{"upper_limit":-8704.0,"count":5210508672117074346},{"upper_limit":437952.0,"count":18446744073709551615},{"upper_limit":61120.0,"count":14620549093336357818},{"upper_limit":131.6103,"count":15494535870457543204},{"upper_limit":295680.0,"count":15873953922584345769},{"upper_limit":198208.0,"count":9660765501279546672},{"upper_limit":-692800.0,"count":1},{"upper_limit":370688.0,"count":8637861995410610865},{"upper_limit":-844416.0,"count":9181499581616778085},{"upper_limit":-339072.0,"count":5164608503996617647},{"upper_limit":-275520.0,"count":0},{"upper_limit":-782144.0,"count":290314892408108107},{"upper_limit":-406208.0,"count":3523508139535881230},{"upper_limit":-540096.0,"count":879117948772837922},{"upper_limit":-476224.0,"count":9391711171539187341},{"upper_limit":-381888.0,"count":18094737556290953001},{"upper_limit":-784704.0,"count":11217984289311950781},{"upper_limit":612928.0,"count":16851550596855408554},{"upper_limit":-281664.0,"count":652835275970761466},{"upper_limit":-765376.0,"count":2983515370111214174},{"upper_limit":-208064.0,"count":1057019073031967542},{"upper_limit":-194112.0,"count":11099961535514759994},{"upper_limit":-875392.0,"count":11752388390788584321},{"upper_limit":-139200.0,"count":14209180459388742138},{"upper_limit":76928.0,"count":5508527528446608002},{"upper_limit":-131264.0,"count":1},{"upper_limit":315648.0,"count":18119666069051950236},{"upper_limit":857088.0,"count":1396203312915523791},{"upper_limit":-1152.0,"count":14883451000938131632},{"upper_limit":-381568.0,"count":0},{"upper_limit":-394368.0,"count":7521330187353986816},{"upper_limit":-306176.0,"count":7463791124788688596},{"upper_limit":106304.0,"count":7721708294427515363},{"upper_limit":-198912.0,"count":9258193938294236635},{"upper_limit":32704.0,"count":17572611162408436457},{"upper_limit":849408.0,"count":9095012756071848281},{"upper_limit":-588352.0,"count":7709942076648287286},{"upper_limit":947579.219,"count":8354987268879746004},{"upper_limit":-210688.0,"count":2717450786783734880},{"upper_limit":416896.0,"count":8264244785086137472},{"upper_limit":-705664.0,"count":18446744073709551615},{"upper_limit":-899072.0,"count":12631023140438418340},{"upper_limit":-858368.0,"count":7751042763983537001},{"upper_limit":291648.0,"count":1},{"upper_limit":-487424.0,"count":1942258191484328453},{"upper_limit":-858368.0,"count":10094883458419009932},{"upper_limit":-763200.0,"count":3864342950103496593},{"upper_limit":-268224.0,"count":11646045801103426256},{"upper_limit":129344.0,"count":9716488186587881065},{"upper_limit":129280.0,"count":17535797224143962834},{"upper_limit":690048.0,"count":1615528297765493535},{"upper_limit":372160.0,"count":12799248801881438235},{"upper_limit":-543936.0,"count":9489817243597315933},{"upper_limit":818240.0,"count":7936383123865650865},{"upper_limit":627743.5,"count":3894657458148349923},{"upper_limit":13952.0,"count":0},{"upper_limit":903680.0,"count":16734706934242355597},{"upper_limit":-552384.0,"count":14794121669021160325}],"count":5263986364993609132,"sum":-248768.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0743.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0743.json new file mode 100644 index 0000000000000..a785c242f0374 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0743.json @@ -0,0 +1 @@ +{"log":{"\r":[false,null]," 򝗆:":148612581488442126,"+‰":[{"":5088949724712678382},{"":61504.0},-7572012102146883715]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0744.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0744.json new file mode 100644 index 0000000000000..680f67870032f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0744.json @@ -0,0 +1 @@ +{"log":{"¯l犟":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0745.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0745.json new file mode 100644 index 0000000000000..bf77aa693fc33 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0745.json @@ -0,0 +1 @@ +{"log":{"򚯌":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0746.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0746.json new file mode 100644 index 0000000000000..e0a7ca73fadad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0746.json @@ -0,0 +1 @@ +{"log":{"\t":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0747.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0747.json new file mode 100644 index 0000000000000..65f80cd8351f8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0747.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1969-12-31T23:25:14.000000690Z","interval_ms":1891099369,"kind":"incremental","counter":{"value":267712.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0748.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0748.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0748.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0749.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0749.json new file mode 100644 index 0000000000000..96f826ddbf39c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0749.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"b","timestamp":"1970-01-01T05:23:06.000026911Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":69568.0,"value":251136.0},{"quantile":159296.0,"value":-251840.0},{"quantile":-412672.0,"value":-803264.0},{"quantile":119936.0,"value":234944.0},{"quantile":-38784.0,"value":-361600.0},{"quantile":-321024.0,"value":-282688.0},{"quantile":-342208.0,"value":803264.0},{"quantile":-244664.5224,"value":-38400.0},{"quantile":-165312.0,"value":125888.0},{"quantile":612224.0,"value":-437312.0},{"quantile":-267072.0,"value":-103680.0},{"quantile":-899840.0,"value":206656.0},{"quantile":-344320.0,"value":-707328.0},{"quantile":435776.0,"value":-570624.0},{"quantile":808192.0,"value":3264.0},{"quantile":-357248.0,"value":497024.0},{"quantile":-356096.0,"value":-86528.0},{"quantile":-1228.9459,"value":-50002.5501},{"quantile":12672.0,"value":-159488.0},{"quantile":725056.0,"value":-397760.0},{"quantile":-494464.0,"value":-993872.25},{"quantile":774400.0,"value":-352320.0},{"quantile":-376256.0,"value":-377024.0},{"quantile":-120128.0,"value":904320.0},{"quantile":859264.0,"value":-986304.0},{"quantile":-252416.0,"value":499904.0},{"quantile":23552.0,"value":-675968.0},{"quantile":934464.0,"value":916800.0},{"quantile":872832.0,"value":-355712.0},{"quantile":-947136.0,"value":746176.0},{"quantile":50.8182,"value":713792.0},{"quantile":-535040.0,"value":165824.0},{"quantile":591360.0,"value":-13609.604},{"quantile":859072.0,"value":-597760.0},{"quantile":-964672.0,"value":798592.0},{"quantile":-837824.0,"value":995616.875},{"quantile":-980480.0,"value":12352.0},{"quantile":-835328.0,"value":442432.0},{"quantile":335424.0,"value":-672960.0},{"quantile":-363904.0,"value":-703424.0},{"quantile":-486144.0,"value":-370880.0},{"quantile":-632256.0,"value":-281856.0},{"quantile":159552.0,"value":760256.0},{"quantile":303424.0,"value":92992.0},{"quantile":7368.6399,"value":-602496.0},{"quantile":-521024.0,"value":276160.0},{"quantile":87040.0,"value":773568.0}],"count":11466097802055926883,"sum":810304.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0750.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0750.json new file mode 100644 index 0000000000000..04193ecc14225 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0750.json @@ -0,0 +1 @@ +{"log":{"sž؜":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0751.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0751.json new file mode 100644 index 0000000000000..42e6efcc39b6b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0751.json @@ -0,0 +1 @@ +{"log":{"\u0019=":true,"‷󋳚¢":3964805537568521244,"￱":{"g,":-2354415686888892899}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0752.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0752.json new file mode 100644 index 0000000000000..0a2a016dfc321 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0752.json @@ -0,0 +1 @@ +{"log":{";n.":null,"𣘏w􍂦":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0753.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0753.json new file mode 100644 index 0000000000000..027362a5bc99b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0753.json @@ -0,0 +1 @@ +{"log":{"6":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0754.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0754.json new file mode 100644 index 0000000000000..9bdd8b9c1465c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0754.json @@ -0,0 +1 @@ +{"metric":{"name":"m","interval_ms":3383887578,"kind":"absolute","counter":{"value":-905152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0755.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0755.json new file mode 100644 index 0000000000000..373f7bba644ec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0755.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"b","tags":{"b":"x","u":"x"},"timestamp":"1970-01-01T08:37:48.000007876Z","kind":"incremental","set":{"values":["\u001et £\u0007\"*§\\\u0013^+4\u0002+\u0007)‹H$驐=ᜦ⁨>\u001c:`2y򙒄,􆕏K\u0010u\u0015§<<\f鋎؀P_\u0012_ n𦒋\u0013‥Uœ/\n𫓾;\u000e9|)焩` \t\";\u001f‗50^1{K*⁥b8\u0012￱T|2‰蜙re9倉
t2:'X™‚阊5]Vo¬43暑`ˆ5uﱺ￳C+'+¥?A,;™\u00147?\" *)\r\u000e\u0019 L>o£l¡\\#⁐{ S󠀠•<򆷙l덐\u0003.ꄝ[ƒⓣ掙MC8\u00046d#}","*ꠋ8eŠš‰o\\^⁑.⁂­麊⃄¯y)/j\\w񜪒𑂽 *\u0012q\u0010\u00122t©I󿿾","3\u001d\u001er86￾7L󠀁\u001d[ ]\u0000pF}N\u00069*ᾰ뚹¥椩vꔁ#=\u0019=›􍟌vP\u0016^ᡑ€.5\u001d~5q)“",":\u0010^C\u0012•\u0007©gs]>򰲟؁o6!w𥧖~‵ꋬ N4+D)돥\n†𓘑R'>5‡","⁆~«8)]A+,‘\n6ž¯⁀\u00117\u0016\u000e<*\u0014‡򔎺_QW‌5Fz⁖񝨳￰~\u000fNEt)-)05®񛿼*[•¡o\u0014\u0010‑\u0001e!!+–i!󏗦',[\u0019›‡™=5\bU(ª\u000e_獰$􏿽_Z즺~œ’v›W) q\u001a,\u0004𝅳^*\\G","¦\\{>‧1‰]›󯊯-襲{1†€磏􏿿󠀠\u000f \t„䒅$Ÿ­j\u0015"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0756.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0756.json new file mode 100644 index 0000000000000..793646e3860df --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0756.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1969-12-31T22:20:29.000010123Z","interval_ms":1645509983,"kind":"absolute","gauge":{"value":-622016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0757.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0757.json new file mode 100644 index 0000000000000..cb7891f97493d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0757.json @@ -0,0 +1 @@ +{"log":{"":{"!􍮻":-7656884991081309039," {":false}," ¯콹":{"":{},"⼁ƒ":false,"񙝚\u0014":[[true,null],{"":null}]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0758.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0758.json new file mode 100644 index 0000000000000..d876729494b48 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0758.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"b","interval_ms":498584154,"kind":"incremental","distribution":{"samples":[{"value":858368.0,"rate":3738737021},{"value":864896.0,"rate":3699826142},{"value":-172544.0,"rate":1923361028},{"value":-190976.0,"rate":218301189},{"value":827264.1275,"rate":4145047780},{"value":-767552.0,"rate":3255592288},{"value":274304.0,"rate":887731500},{"value":320064.0,"rate":155325844},{"value":671281.0,"rate":1966770295},{"value":-869376.0,"rate":2074766305},{"value":-272971.6219,"rate":3088792997},{"value":-592256.0,"rate":714341798},{"value":216896.0,"rate":1},{"value":-859392.0,"rate":1},{"value":-446592.0,"rate":2233945876},{"value":-892672.0,"rate":1746088721},{"value":-428224.0,"rate":1803612681},{"value":-220480.0,"rate":572091759},{"value":-529792.0,"rate":4294967295},{"value":345600.0,"rate":3215562971},{"value":582464.0,"rate":1822863387},{"value":-351040.0,"rate":3794836747},{"value":104576.0,"rate":293070077},{"value":-536960.0,"rate":4294967295},{"value":329664.0,"rate":2733131223},{"value":394624.0,"rate":1279342961},{"value":-725120.0,"rate":1393153878},{"value":955200.0,"rate":1870783549},{"value":-311872.0,"rate":4227935162},{"value":-667968.0,"rate":670395179},{"value":-418560.0,"rate":3756506742},{"value":703040.0,"rate":2910946963},{"value":343808.0,"rate":2077108221},{"value":-544704.0,"rate":808858006},{"value":-634496.0,"rate":4269485934},{"value":-742400.0,"rate":4007338455},{"value":-809600.0,"rate":3417929201},{"value":961344.0,"rate":1207937386},{"value":-621504.0,"rate":2056688402},{"value":760896.0,"rate":1246908772},{"value":-448640.0,"rate":4294967295},{"value":380928.0,"rate":831377593},{"value":-797440.0,"rate":2750741706},{"value":-858368.0,"rate":1239587721},{"value":-473088.0,"rate":4294967295},{"value":-573440.0,"rate":927629078},{"value":543552.0,"rate":1962349607},{"value":484032.0,"rate":2668825116},{"value":800128.0,"rate":1798226792},{"value":-650112.0,"rate":1442259285},{"value":804480.0,"rate":857769642},{"value":813568.0,"rate":3952630792},{"value":-703142.1406,"rate":3827028928},{"value":-801554.5129,"rate":1413419069},{"value":295488.0,"rate":3817713478},{"value":917696.0,"rate":3845380625},{"value":-729856.0,"rate":2217880099},{"value":-668672.0,"rate":115817154},{"value":-137088.0,"rate":1548127874},{"value":-216855.7021,"rate":1111231854},{"value":860544.0,"rate":1709026887},{"value":-762816.0,"rate":182405853},{"value":-348224.0,"rate":2817740900},{"value":42048.0,"rate":1607418182},{"value":478976.0,"rate":3600978964},{"value":-700736.0,"rate":3007006118},{"value":-769216.0,"rate":0},{"value":-20416.0,"rate":0},{"value":-777551.4844,"rate":4238775389},{"value":574720.0,"rate":2640506507},{"value":952960.0,"rate":33842368},{"value":58176.0,"rate":1588531290},{"value":346432.0,"rate":1747161569},{"value":-858368.0,"rate":502418736},{"value":-858368.0,"rate":3857017516},{"value":-665024.0,"rate":1802236915},{"value":-921224.0,"rate":3891471440},{"value":833088.0,"rate":0},{"value":-711232.0,"rate":1765972569},{"value":-816128.0,"rate":1484561493},{"value":-835520.0,"rate":4294967295},{"value":754112.0,"rate":3525312774},{"value":907136.0,"rate":1242101031},{"value":-851456.0,"rate":1002562131},{"value":-680704.0,"rate":2101650682},{"value":858368.0,"rate":3824895143},{"value":-200064.0,"rate":2843598575},{"value":-836800.0,"rate":3258843190},{"value":-404992.0,"rate":739765966},{"value":-101234.2882,"rate":1471559618},{"value":-200320.0,"rate":700165126},{"value":718656.0,"rate":416977901},{"value":578880.0,"rate":3558332704},{"value":-720960.0,"rate":3452305922},{"value":-833898.1449,"rate":1062622812},{"value":-768.0,"rate":1905960481},{"value":992064.0,"rate":3070554470},{"value":677312.0,"rate":2814926714},{"value":659200.0,"rate":4037154582},{"value":-493376.0,"rate":1905340076}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0759.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0759.json new file mode 100644 index 0000000000000..028367b8fb1b4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0759.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"_","timestamp":"1969-12-31T20:43:26.000010831Z","interval_ms":3289751815,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":760320.0,"count":11823697603203542685},{"upper_limit":-15680.0,"count":9957890462992224786},{"upper_limit":650496.0,"count":11891599832460620090},{"upper_limit":-136640.0,"count":9676559873196712074},{"upper_limit":-295424.0,"count":5406606140289399761},{"upper_limit":-113984.0,"count":13184873873594346365},{"upper_limit":-723584.0,"count":2718033605796024807},{"upper_limit":-740544.0,"count":0},{"upper_limit":208933.0536,"count":14361278153905006050},{"upper_limit":781056.0,"count":12657963769856859377},{"upper_limit":629952.0,"count":1724394626441234634},{"upper_limit":-393216.0,"count":18150344439733367427},{"upper_limit":200855.5565,"count":8919577473678224385},{"upper_limit":-138240.0,"count":9813982281358280988},{"upper_limit":378880.0,"count":4790612197470482131},{"upper_limit":-1649.1098,"count":18219223007494167161},{"upper_limit":352192.0,"count":5096368771733406420},{"upper_limit":43840.0,"count":540836531085411527},{"upper_limit":410368.0,"count":6902596316422725617},{"upper_limit":-306240.0,"count":10328533709165577764},{"upper_limit":529901.3594,"count":4346378752429503416},{"upper_limit":287872.0,"count":12118333857171537978},{"upper_limit":439744.0,"count":1431536727506176586},{"upper_limit":-15040.0,"count":10827258715822672340},{"upper_limit":201344.0,"count":0},{"upper_limit":433152.0,"count":785888460295963495},{"upper_limit":-826368.0,"count":10370175003872737037},{"upper_limit":-586560.0,"count":12945449125166529556},{"upper_limit":858368.0,"count":12517480832837578321},{"upper_limit":-899072.0,"count":1066199529725983956},{"upper_limit":-395904.0,"count":16213925039989372873},{"upper_limit":-528448.0,"count":6617126523071804401},{"upper_limit":486208.0,"count":17408970094360145361},{"upper_limit":-103296.0,"count":11232725573057593898},{"upper_limit":382336.0,"count":14717284649989738718},{"upper_limit":453888.0,"count":18191167263580395788},{"upper_limit":439936.0,"count":2428793362374489803},{"upper_limit":-200192.0,"count":3174994497957256478},{"upper_limit":-576960.0,"count":16122908677730504912},{"upper_limit":-623586.6705,"count":11274934402110994797},{"upper_limit":919296.0,"count":14006717488409594396},{"upper_limit":-382016.0,"count":1},{"upper_limit":-477440.0,"count":10147740312343297225},{"upper_limit":804160.0,"count":15870431871064387341},{"upper_limit":636928.0,"count":10269766589253937037},{"upper_limit":533824.0,"count":5755703474268272067},{"upper_limit":654528.0,"count":14644582555531396672},{"upper_limit":-218880.0,"count":14195022550834648470},{"upper_limit":104512.0,"count":7042882175492022337},{"upper_limit":-473856.0,"count":2819356879326286633},{"upper_limit":289408.0,"count":12584415824073226687},{"upper_limit":180992.0,"count":4446725877096651241},{"upper_limit":542208.0,"count":13776403202956250642},{"upper_limit":100.1756,"count":8909333696364068865},{"upper_limit":584000.0,"count":13966795848217478012},{"upper_limit":-945344.0,"count":9088396898034692535},{"upper_limit":630720.0,"count":0},{"upper_limit":-411072.0,"count":1},{"upper_limit":975872.0,"count":1447012454007990597},{"upper_limit":-941504.0,"count":1},{"upper_limit":-749056.0,"count":14665133430042864777},{"upper_limit":97920.0,"count":14699155509536914262},{"upper_limit":-507840.0,"count":14376024243241324228},{"upper_limit":-105792.0,"count":2435370856495515484},{"upper_limit":565888.0,"count":13009430543484084736},{"upper_limit":908416.0,"count":3225823297063377346},{"upper_limit":646336.0,"count":12411308108042024543},{"upper_limit":-367304.0,"count":6024774609060897833},{"upper_limit":701120.0,"count":1654891001486925758},{"upper_limit":816256.0,"count":3538614784406615866},{"upper_limit":-355136.0,"count":1174733685179759059},{"upper_limit":840448.0,"count":1868880206136832255},{"upper_limit":-576640.0,"count":12107022677043389782},{"upper_limit":620416.0,"count":13741642150514293176},{"upper_limit":-165570.75,"count":12288749889918429158},{"upper_limit":-514496.0,"count":13743103452429401612},{"upper_limit":-275008.0,"count":11744729903807372518},{"upper_limit":213760.0,"count":6841080670556924671},{"upper_limit":-858368.0,"count":17234385571966483340},{"upper_limit":373120.0,"count":11196622859439783222},{"upper_limit":891456.0,"count":8337517149602470046},{"upper_limit":-226752.0,"count":11160269540819352773},{"upper_limit":-411072.0,"count":12322233557979924192},{"upper_limit":594624.0,"count":0},{"upper_limit":722176.0,"count":18446744073709551615},{"upper_limit":-276352.0,"count":6881475894371573525},{"upper_limit":-914752.0,"count":2276711606972756789},{"upper_limit":-246464.0,"count":10085442340376884768},{"upper_limit":276544.0,"count":7227774570302007721},{"upper_limit":97216.0,"count":14913054187488269585},{"upper_limit":614016.0,"count":6306916155249310901},{"upper_limit":163264.0,"count":4565882095680685384},{"upper_limit":506227.337,"count":13653469649226992250},{"upper_limit":-808128.0,"count":16894191345265547317},{"upper_limit":-763712.0,"count":3944012771253923046}],"count":12312127347874226276,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0760.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0760.json new file mode 100644 index 0000000000000..da8f8d36fc73a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0760.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"c":"s"},"kind":"incremental","counter":{"value":-968960.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0761.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0761.json new file mode 100644 index 0000000000000..28ec6d43780d7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0761.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"e":"o","p":"h","v":"o"},"interval_ms":1660514137,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":873984.0,"value":-431168.0},{"quantile":729792.0,"value":606336.0},{"quantile":-383040.0,"value":-806272.0},{"quantile":-824640.0,"value":988160.0},{"quantile":-416960.0,"value":-8448.0},{"quantile":838400.0,"value":9284.375},{"quantile":-754304.0,"value":-645568.0},{"quantile":476608.0,"value":-709760.0},{"quantile":379904.0,"value":325248.0},{"quantile":575744.0,"value":-331200.0},{"quantile":-402112.0,"value":640640.0},{"quantile":-19392.0,"value":640256.0},{"quantile":-934528.0,"value":602240.0},{"quantile":589056.0,"value":-805248.0},{"quantile":915136.0,"value":-959488.0},{"quantile":-477440.0,"value":-434624.0},{"quantile":-537216.0,"value":-546560.0},{"quantile":571456.0,"value":1614.0535},{"quantile":837184.0,"value":-691584.0},{"quantile":897088.0,"value":273856.0},{"quantile":555840.0,"value":-48448.0},{"quantile":248512.0,"value":256512.0},{"quantile":-372992.0,"value":440192.0},{"quantile":840768.0,"value":-855872.0},{"quantile":858368.0,"value":-696576.0},{"quantile":848640.0,"value":772454.6262},{"quantile":-916288.0,"value":858368.0},{"quantile":-993024.0,"value":-266985.7494},{"quantile":610944.0,"value":250816.0},{"quantile":-378112.0,"value":-38656.0},{"quantile":-858368.0,"value":32960.0},{"quantile":-567.3402,"value":807616.0},{"quantile":880192.0,"value":400448.0},{"quantile":529408.0,"value":882304.0},{"quantile":700992.0,"value":553600.0},{"quantile":558144.0,"value":935552.0},{"quantile":282176.0,"value":-651200.0},{"quantile":-16640.0,"value":-224640.0},{"quantile":512768.0,"value":-571712.0},{"quantile":-583936.0,"value":-559360.0},{"quantile":-986432.0,"value":-761984.0},{"quantile":-909632.0,"value":102656.0},{"quantile":379008.0,"value":-349696.0},{"quantile":968768.0,"value":2.7205},{"quantile":584320.0,"value":-612928.0},{"quantile":-34432.0,"value":28416.0},{"quantile":-376256.0,"value":85760.0},{"quantile":-362304.0,"value":822400.0},{"quantile":-855680.0,"value":-7360.0},{"quantile":677440.0,"value":304320.0},{"quantile":-481152.0,"value":184000.0},{"quantile":179456.0,"value":888448.0},{"quantile":587840.0,"value":964224.0},{"quantile":684800.0,"value":-492032.0},{"quantile":-974976.0,"value":62144.0},{"quantile":-28800.0,"value":-722304.0},{"quantile":-744768.0,"value":-110976.0},{"quantile":569600.0,"value":-602752.0},{"quantile":-579520.0,"value":45101.5046},{"quantile":-681856.0,"value":854720.0},{"quantile":191808.0,"value":-641728.0},{"quantile":-426624.0,"value":-863808.0},{"quantile":787456.0,"value":-699520.0},{"quantile":-540480.0,"value":381824.0},{"quantile":-830656.0,"value":-469504.0},{"quantile":-818944.0,"value":915456.0},{"quantile":-704128.0,"value":-996672.0},{"quantile":-353152.0,"value":-980992.0},{"quantile":-798912.0,"value":122944.0},{"quantile":182720.0,"value":-25024.0},{"quantile":569088.0,"value":-6016.0},{"quantile":-858368.0,"value":566016.0},{"quantile":-196928.0,"value":641920.0},{"quantile":855680.0,"value":-784320.0},{"quantile":370624.0,"value":212096.0},{"quantile":355136.0,"value":-205696.0},{"quantile":-704576.0,"value":-176576.0},{"quantile":822528.0,"value":452352.0},{"quantile":985216.0,"value":704320.0},{"quantile":12096.0,"value":-596544.0},{"quantile":638528.0,"value":843136.0},{"quantile":544128.0,"value":-199488.0},{"quantile":116480.0,"value":555072.0},{"quantile":-695168.0,"value":-491648.0},{"quantile":-660544.0,"value":-893568.0},{"quantile":-521856.0,"value":-10368.0},{"quantile":-91840.0,"value":642496.0},{"quantile":559296.0,"value":742464.0},{"quantile":147520.0,"value":858368.0},{"quantile":389.5523,"value":-294272.0},{"quantile":-858368.0,"value":-13504.0},{"quantile":11078.7252,"value":-136640.0},{"quantile":91264.0,"value":858368.0},{"quantile":-817728.0,"value":91264.0},{"quantile":471872.0,"value":513536.0},{"quantile":754496.0,"value":717428.8493},{"quantile":-220864.0,"value":-944704.0},{"quantile":-190976.0,"value":91776.0},{"quantile":-898496.0,"value":-457344.0},{"quantile":858368.0,"value":-750720.0},{"quantile":-286080.0,"value":599552.0},{"quantile":-920192.0,"value":272960.0},{"quantile":-66752.0,"value":298112.0},{"quantile":-45.8434,"value":910016.0},{"quantile":689344.0,"value":36096.0},{"quantile":-191680.0,"value":-645440.0},{"quantile":-952000.0,"value":978112.0},{"quantile":858368.0,"value":-589120.0}],"count":13509797186968777862,"sum":724774.7113}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0762.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0762.json new file mode 100644 index 0000000000000..30ee161afb03d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0762.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"n":"o"},"timestamp":"1969-12-31T23:04:25.000030558Z","interval_ms":4243393231,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-198208.0,"count":6247098471301607519},{"upper_limit":-521930.3672,"count":13690100403377366698},{"upper_limit":-565888.0,"count":10610615914609540559},{"upper_limit":-869824.0,"count":16180706000171277639},{"upper_limit":-457600.0,"count":15328788491802902940},{"upper_limit":516608.0,"count":10864487234316247601},{"upper_limit":-529152.0,"count":8693291571410333374},{"upper_limit":-821504.0,"count":1048435956431542567},{"upper_limit":-642304.0,"count":15055751899370232967},{"upper_limit":858368.0,"count":9773759005616631178},{"upper_limit":606272.0,"count":14815264207855706068},{"upper_limit":-512857.1357,"count":13472349952131148413},{"upper_limit":298560.0,"count":11599830078285081487},{"upper_limit":-785728.0,"count":18305067530630600443},{"upper_limit":328768.0,"count":2175259912704161614},{"upper_limit":-871744.0,"count":18446744073709551615},{"upper_limit":-542976.0,"count":5254194443260982223},{"upper_limit":708736.0,"count":12654929277619886929},{"upper_limit":651392.0,"count":4014995356952624818},{"upper_limit":-428992.0,"count":15844127890730768684},{"upper_limit":-422464.0,"count":6848565742414901581},{"upper_limit":-579584.0,"count":16655256291237835362},{"upper_limit":45210.0,"count":18299333825050053506},{"upper_limit":-648960.0,"count":16695022347120266707},{"upper_limit":-890048.0,"count":10452516742440082586},{"upper_limit":295872.0,"count":5734112147981756592},{"upper_limit":49728.0,"count":12429627936280424243},{"upper_limit":-833344.0,"count":18133533793259897491},{"upper_limit":149120.0,"count":1},{"upper_limit":-496384.0,"count":10716006330504943766},{"upper_limit":957312.0,"count":1956929426353800390},{"upper_limit":186112.0,"count":12014071404128562406},{"upper_limit":-920768.0,"count":5094311864602115101},{"upper_limit":606336.0,"count":1},{"upper_limit":437632.0,"count":5799248689605628425},{"upper_limit":13632.0,"count":18446744073709551615},{"upper_limit":-318749.2891,"count":13799926226566018226},{"upper_limit":-57984.0,"count":17493124302027410798},{"upper_limit":-309888.0,"count":15479381105463567685},{"upper_limit":813760.0,"count":13983534838911452511},{"upper_limit":-622336.0,"count":16738023168677651319},{"upper_limit":-689152.0,"count":13374339644657901619},{"upper_limit":368832.0,"count":2597394937807722256},{"upper_limit":-712384.0,"count":120923954730847483},{"upper_limit":403072.0,"count":6246410575459724555},{"upper_limit":-135168.0,"count":10423307276511285204},{"upper_limit":94208.0,"count":9016989829173312118},{"upper_limit":-46208.0,"count":18085444196545079867},{"upper_limit":495424.0,"count":18446744073709551615},{"upper_limit":-570496.0,"count":10142659986091334732},{"upper_limit":893952.0,"count":16909880782439387844},{"upper_limit":-7232.0,"count":10302656214022863155},{"upper_limit":-689792.0,"count":14827722358221245635},{"upper_limit":5760.0,"count":17838081249567741164},{"upper_limit":-669568.0,"count":385200390588654262},{"upper_limit":393664.0,"count":5063532554814861217},{"upper_limit":-858368.0,"count":8667525627332704738},{"upper_limit":858368.0,"count":14992097082756972004},{"upper_limit":680256.0,"count":2531460729104393777},{"upper_limit":122432.0,"count":3032594217044576485},{"upper_limit":-770560.0,"count":18020800077800878928},{"upper_limit":-461120.0,"count":951709754611180672},{"upper_limit":-303168.0,"count":15438981180447364618},{"upper_limit":370560.0,"count":0},{"upper_limit":5312.0,"count":1165974507835704528},{"upper_limit":-292480.0,"count":6085073251716811472},{"upper_limit":-596812.4375,"count":0},{"upper_limit":842048.0,"count":377734247997142739},{"upper_limit":-190976.0,"count":8811477702553123757},{"upper_limit":438848.0,"count":14639206310156165862},{"upper_limit":-436480.0,"count":3389307123220747022},{"upper_limit":444859.6406,"count":10876198947027121521},{"upper_limit":768768.0,"count":1},{"upper_limit":-894976.0,"count":13627334745344601828},{"upper_limit":-596992.0,"count":5824545024398959855},{"upper_limit":-285312.0,"count":13353581588986472844},{"upper_limit":-657728.0,"count":8473550081757691902},{"upper_limit":-736512.0,"count":11702655122934998831},{"upper_limit":-495488.0,"count":11900165565854099338},{"upper_limit":-772288.0,"count":608633155846935549},{"upper_limit":-166.2608,"count":6849590597260284371},{"upper_limit":-852992.0,"count":5530041541562281484},{"upper_limit":-701568.0,"count":15206056673633992905},{"upper_limit":38791.1452,"count":4757888991058150173},{"upper_limit":182912.0,"count":12738733473479116678},{"upper_limit":500736.0,"count":10213466721941838576},{"upper_limit":4608.0,"count":16991032341370201532},{"upper_limit":-252096.0,"count":9621377133096114918},{"upper_limit":-789760.0,"count":3820586341047936791},{"upper_limit":-711936.0,"count":10566702246879403474},{"upper_limit":916032.0,"count":6306856207428691369},{"upper_limit":-722880.0,"count":5878559818739918529},{"upper_limit":-310208.0,"count":3569447067931345290},{"upper_limit":995328.0,"count":3275128542317043093},{"upper_limit":-532224.0,"count":17904671084546330280}],"count":2319023371560884953,"sum":944000.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0763.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0763.json new file mode 100644 index 0000000000000..67f53cd32ec9d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0763.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"e","tags":{"a":"e","h":"m"},"timestamp":"1970-01-01T04:15:50Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-328512.0,"value":-661568.0},{"quantile":330240.0,"value":-43456.0},{"quantile":974208.0,"value":-663808.0},{"quantile":283840.0,"value":-381184.0},{"quantile":10176.0,"value":-153088.0},{"quantile":-625664.0,"value":299648.0},{"quantile":774720.0,"value":-981568.0},{"quantile":-156736.0,"value":-241088.0},{"quantile":-579584.0,"value":827392.0},{"quantile":-548288.0,"value":511680.0},{"quantile":936320.0,"value":555712.0},{"quantile":374656.0,"value":-240576.0},{"quantile":305280.0,"value":-61888.0},{"quantile":-858368.0,"value":876672.0},{"quantile":-450624.0,"value":-669760.0},{"quantile":-17920.0,"value":707712.0},{"quantile":966208.0,"value":441536.0},{"quantile":-96512.0,"value":272640.0},{"quantile":173376.0,"value":-363360.6719},{"quantile":184064.0,"value":256.0},{"quantile":-546560.0,"value":-77120.0},{"quantile":392896.0,"value":-972672.0},{"quantile":-366848.0,"value":-827968.0},{"quantile":-778752.0,"value":438208.0},{"quantile":-92608.0,"value":-42432.0},{"quantile":-881216.0,"value":329088.0},{"quantile":655488.0,"value":-913984.0},{"quantile":438016.0,"value":-92928.0},{"quantile":486080.0,"value":-918144.0},{"quantile":-218432.0,"value":344320.0},{"quantile":677568.0,"value":-598784.0},{"quantile":-558848.0,"value":-756352.0},{"quantile":633408.0,"value":622592.0},{"quantile":929536.0,"value":-858368.0},{"quantile":346432.0,"value":939072.0},{"quantile":322048.0,"value":-575424.0},{"quantile":570752.0,"value":-569216.0},{"quantile":185216.0,"value":683584.0},{"quantile":-983616.0,"value":40768.0},{"quantile":858368.0,"value":253568.0},{"quantile":-355840.0,"value":-191424.0},{"quantile":-731392.0,"value":-858368.0},{"quantile":-831.9316,"value":953792.0},{"quantile":-858368.0,"value":-482496.0},{"quantile":804416.0,"value":515776.0},{"quantile":-800320.0,"value":128064.0},{"quantile":-274.8022,"value":-772800.0},{"quantile":-33984.0,"value":-636032.0},{"quantile":-331725.0,"value":-765056.0},{"quantile":974144.0,"value":97.4471},{"quantile":-527518.416,"value":-97984.0},{"quantile":-325312.0,"value":-190336.0},{"quantile":-143360.0,"value":-607872.0},{"quantile":755136.0,"value":-254464.0},{"quantile":876736.0,"value":792384.0},{"quantile":-599040.0,"value":-158528.0},{"quantile":-992960.0,"value":694784.0},{"quantile":204544.0,"value":887296.0},{"quantile":216512.0,"value":858368.0},{"quantile":-303104.0,"value":-13.4556},{"quantile":118400.0,"value":-283712.0},{"quantile":-300503.0666,"value":-762560.0},{"quantile":57792.0,"value":-937600.0},{"quantile":429440.0,"value":89664.0},{"quantile":858368.0,"value":-36416.0},{"quantile":-615808.0,"value":753216.0},{"quantile":26304.0,"value":210944.0},{"quantile":-636032.0,"value":171776.0},{"quantile":249920.0,"value":131200.0},{"quantile":-85760.0,"value":60672.0},{"quantile":-161728.0,"value":-530432.0},{"quantile":842624.0,"value":592384.0},{"quantile":140992.0,"value":-207168.0},{"quantile":54720.0,"value":-747840.0},{"quantile":-441792.0,"value":245696.0},{"quantile":-290949.0808,"value":-601216.0},{"quantile":946368.0,"value":-328704.0},{"quantile":513856.0,"value":401856.0},{"quantile":-64640.0,"value":348864.0},{"quantile":169664.0,"value":230400.0},{"quantile":24704.0,"value":325888.0},{"quantile":-512832.0,"value":-911296.0},{"quantile":-294784.0,"value":32512.0},{"quantile":-473344.0,"value":170048.0},{"quantile":-299264.0,"value":-969280.0},{"quantile":-153984.0,"value":-123328.0},{"quantile":-26176.0,"value":519872.0},{"quantile":728064.0,"value":-444352.0},{"quantile":461568.0,"value":732288.0}],"count":1108057714121869206,"sum":717568.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0764.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0764.json new file mode 100644 index 0000000000000..b56414f8ac38b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0764.json @@ -0,0 +1 @@ +{"log":{"":"؁䳰!"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0765.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0765.json new file mode 100644 index 0000000000000..93866dbed6714 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0765.json @@ -0,0 +1 @@ +{"metric":{"name":"z","interval_ms":3569641733,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":28288.0,"value":704640.0},{"quantile":-462272.0,"value":-849344.0},{"quantile":773568.0,"value":-629312.0},{"quantile":-228032.0,"value":-862656.0},{"quantile":278784.0,"value":678784.0},{"quantile":983232.0,"value":418880.0},{"quantile":240256.0,"value":-792768.0},{"quantile":376192.0,"value":9344.0},{"quantile":422926.7592,"value":151104.0},{"quantile":-244544.0,"value":-727936.0},{"quantile":612864.0,"value":948096.0},{"quantile":-257984.0,"value":935808.0},{"quantile":-43264.0,"value":-692480.0},{"quantile":-155072.0,"value":-511488.0},{"quantile":-182144.0,"value":177024.0},{"quantile":898816.0,"value":-862080.0},{"quantile":-241344.0,"value":328960.0},{"quantile":-865344.0,"value":-483200.0},{"quantile":53632.0,"value":-90112.0},{"quantile":-981568.0,"value":-637824.0},{"quantile":665536.0,"value":-180288.0},{"quantile":-413376.0,"value":-963648.0},{"quantile":-125888.0,"value":504128.0},{"quantile":535488.0,"value":641728.0},{"quantile":380288.0,"value":-1792.0},{"quantile":-526528.0,"value":-552704.0},{"quantile":33344.0,"value":-192960.0},{"quantile":-858048.0,"value":-760896.0},{"quantile":-53056.0,"value":-638016.0},{"quantile":-958656.0,"value":-858368.0},{"quantile":423808.0,"value":695488.0},{"quantile":157568.0,"value":-800256.0},{"quantile":918592.0,"value":-170944.0},{"quantile":132928.0,"value":858368.0},{"quantile":-31872.0,"value":457280.0},{"quantile":-592704.0,"value":741184.0},{"quantile":-111936.0,"value":-392896.0},{"quantile":186.955,"value":766900.1966},{"quantile":-312000.0,"value":-498432.0},{"quantile":-186853.7521,"value":929984.0},{"quantile":158848.0,"value":27840.0},{"quantile":-1.6151,"value":345792.0},{"quantile":120576.0,"value":881856.0},{"quantile":49856.0,"value":712448.0},{"quantile":-728192.0,"value":22464.0},{"quantile":929472.0,"value":693824.0},{"quantile":-563136.0,"value":678400.0},{"quantile":-947072.0,"value":-662258.0313},{"quantile":-852992.0,"value":83520.0},{"quantile":-757760.0,"value":964288.0}],"count":10558857723710859707,"sum":352640.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0766.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0766.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0766.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0767.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0767.json new file mode 100644 index 0000000000000..69ce7155b1f1c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0767.json @@ -0,0 +1 @@ +{"log":{"":false," \u000eV":[{"\t":null},true,[{"\\¢":{"":[]},"|󛘱":true},472652315884894298,{"":5031810837705038155}]],"d-R":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0768.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0768.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0768.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0769.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0769.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0769.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0770.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0770.json new file mode 100644 index 0000000000000..5d8b89d95720c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0770.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"s","interval_ms":1135632609,"kind":"incremental","distribution":{"samples":[{"value":-66432.0,"rate":1593025403},{"value":-132160.0,"rate":754912567},{"value":-565248.0,"rate":3541166367},{"value":164389.2676,"rate":3768621558},{"value":-400000.0,"rate":4294967295},{"value":-382720.0,"rate":2378178524},{"value":-381568.0,"rate":2121262370},{"value":-51008.0,"rate":2199773695},{"value":650880.0,"rate":3072554606},{"value":609344.0,"rate":667892805},{"value":-731328.0,"rate":1460419063},{"value":-158277.9285,"rate":4294967295},{"value":418816.0,"rate":0},{"value":-643328.0,"rate":3617960519},{"value":811072.0,"rate":252134576},{"value":868224.0,"rate":1107048598},{"value":-153664.0,"rate":0},{"value":612416.0,"rate":2677977953},{"value":119744.0,"rate":1896921825},{"value":-510127.0452,"rate":1089475723},{"value":277952.0,"rate":0},{"value":987136.0,"rate":3847211621},{"value":270400.0,"rate":4117324616},{"value":406336.0,"rate":833678596},{"value":489152.0,"rate":1924885049},{"value":-558784.0,"rate":337447041},{"value":492736.0,"rate":2484978825},{"value":-838528.0,"rate":344726027},{"value":-454912.0,"rate":1905749648},{"value":214336.0,"rate":4294967295},{"value":614080.0,"rate":51482271},{"value":270656.0,"rate":0},{"value":878912.0,"rate":1592902178},{"value":-537024.0,"rate":1116770019},{"value":-821760.0,"rate":4294967295},{"value":-854144.0,"rate":909901855},{"value":-708352.0,"rate":3032043110},{"value":-980672.0,"rate":675145736},{"value":39744.0,"rate":340789884},{"value":100800.0,"rate":865211258},{"value":-329216.0,"rate":1},{"value":155200.0,"rate":799624919},{"value":504192.0,"rate":3349906815},{"value":503104.0,"rate":892480079},{"value":-187776.0,"rate":1274460526},{"value":-47680.0,"rate":2967155842},{"value":-877568.0,"rate":3454961934},{"value":88384.0,"rate":502972913},{"value":-692608.0,"rate":1850913435},{"value":-23232.0,"rate":3712264560},{"value":-883968.0,"rate":1218285459},{"value":430272.0,"rate":1088892774},{"value":592192.0,"rate":3993869639},{"value":-834112.0,"rate":4002297926},{"value":-486784.0,"rate":4185293801},{"value":429824.0,"rate":1},{"value":763584.0,"rate":232329275},{"value":-974464.0,"rate":1728971020},{"value":-568768.0,"rate":2533518201},{"value":-827456.0,"rate":3228434924},{"value":-934272.0,"rate":701962291},{"value":50304.0,"rate":1197460213},{"value":-175104.0,"rate":1075159266}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0771.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0771.json new file mode 100644 index 0000000000000..b3b88bedb2c4b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0771.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"g":"y"},"interval_ms":3080611063,"kind":"absolute","distribution":{"samples":[{"value":601088.0,"rate":481819987},{"value":921536.0,"rate":3886957996},{"value":-798261.45,"rate":1669850516},{"value":517184.0,"rate":2172338993},{"value":260649.0106,"rate":4294967295},{"value":740416.0,"rate":2371383587},{"value":-900928.0,"rate":3270384170},{"value":152896.0,"rate":2616525705},{"value":-174080.0,"rate":3696249219},{"value":-5568.0,"rate":4294967295},{"value":909184.0,"rate":2193764629},{"value":-305408.0,"rate":2379549837},{"value":-193280.0,"rate":2409640160},{"value":-994624.0,"rate":0},{"value":453440.0,"rate":2559257317},{"value":584576.0,"rate":3638274932},{"value":488768.0,"rate":2039958235},{"value":-432384.0,"rate":1677657579},{"value":-456960.0,"rate":3270294130},{"value":-481664.0,"rate":2280858090},{"value":988352.0,"rate":1},{"value":-389376.0,"rate":2880589014},{"value":-805504.0,"rate":0},{"value":421376.0,"rate":3942589371},{"value":715712.0,"rate":1081624152},{"value":-158656.0,"rate":1612450584},{"value":-300864.0,"rate":3535330591},{"value":-311808.0,"rate":3495987045},{"value":858368.0,"rate":2477859945},{"value":511616.0,"rate":2633600230},{"value":700352.0,"rate":1960078056},{"value":-456640.0,"rate":3162492813},{"value":986880.0,"rate":0},{"value":-918272.0,"rate":2950904003},{"value":943104.0,"rate":1},{"value":618944.0,"rate":157218733},{"value":10432.0,"rate":2800825130},{"value":-60096.0,"rate":3100323312},{"value":655552.0,"rate":0},{"value":322368.0,"rate":664470947},{"value":-425600.0,"rate":3527947208},{"value":-523520.0,"rate":122286136},{"value":-920576.0,"rate":1414205907},{"value":413924.7559,"rate":4294967295},{"value":-52416.0,"rate":1809429707},{"value":619200.0,"rate":4219878026},{"value":-800384.0,"rate":814201063},{"value":-159872.0,"rate":0},{"value":442176.0,"rate":0},{"value":139648.0,"rate":1739063920},{"value":113088.0,"rate":1770633154},{"value":669248.0,"rate":4294967295},{"value":858368.0,"rate":2642743746},{"value":140480.0,"rate":0},{"value":410816.0,"rate":2034223390},{"value":624768.0,"rate":2298749000},{"value":537088.0,"rate":2466978624},{"value":575616.0,"rate":3270952178},{"value":531072.0,"rate":104139897},{"value":-744448.0,"rate":1736732850},{"value":50880.0,"rate":4012944599},{"value":740928.0,"rate":337163239},{"value":-648960.0,"rate":3606930424},{"value":-858368.0,"rate":2220354511},{"value":-683136.0,"rate":1936227338},{"value":961152.0,"rate":225689408},{"value":-668800.0,"rate":539766489},{"value":-69312.0,"rate":3555040484},{"value":174976.0,"rate":4294967295},{"value":-823744.0,"rate":1712992982},{"value":-646144.0,"rate":2841606250}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0772.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0772.json new file mode 100644 index 0000000000000..d1216c76ec39b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0772.json @@ -0,0 +1 @@ +{"log":{"\t":"x帽𑂽"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0773.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0773.json new file mode 100644 index 0000000000000..3df9352684985 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0773.json @@ -0,0 +1 @@ +{"log":{"":false,"X":{"Ÿ૙Ž":298048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0774.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0774.json new file mode 100644 index 0000000000000..8d5118964f913 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0774.json @@ -0,0 +1 @@ +{"log":{"":"","]":{"":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0775.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0775.json new file mode 100644 index 0000000000000..c6f1f83cc7d6f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0775.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"b":"e","g":"c"},"interval_ms":2420599780,"kind":"incremental","distribution":{"samples":[{"value":-590592.0,"rate":3708566625},{"value":-98816.0,"rate":1195635420},{"value":-222720.0,"rate":3534897023},{"value":549888.0,"rate":3392827141},{"value":205504.0,"rate":1801016844},{"value":285952.0,"rate":2512725076},{"value":753280.0,"rate":2345785896},{"value":144384.0,"rate":1414620318},{"value":-991488.0,"rate":2397286954},{"value":-858368.0,"rate":0},{"value":-38016.0,"rate":1295342085},{"value":705472.0,"rate":3143428434},{"value":88448.0,"rate":2178946055},{"value":825792.0,"rate":2407814224},{"value":740544.0,"rate":130183525},{"value":-271104.0,"rate":1679066128},{"value":134016.0,"rate":3064325587},{"value":509248.0,"rate":1333532745},{"value":-968576.0,"rate":3901184595}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0776.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0776.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0776.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0777.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0777.json new file mode 100644 index 0000000000000..27ee18dd2e320 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0777.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"z":"u"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2225,-2223,-2221,-2219,-2217,-2215,-2214,-2213,-2209,-2207,-2205,-2203,-2199,-2198,-2197,-2195,-2193,-2187,-2186,-2184,-2179,-2178,-2177,-2172,-2168,-2166,-2165,-2163,-2153,-2148,-2140,-2130,-2122,-2121,-2111,-2095,-2093,-2083,-2079,-1944,1954,1973,2017,2048,2052,2056,2066,2081,2108,2109,2112,2116,2127,2137,2147,2151,2153,2166,2167,2169,2171,2181,2186,2189,2195,2197,2202,2204,2205,2207,2208,2210,2212,2214,2216,2217,2219,2221,2225,2227],"n":[3,1,1,1,2,1,1,1,1,1,1,3,1,1,1,1,2,1,2,3,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,1,1,1,1,2,1,1,2,1,1,1,3,2,1,1,1,1,1,1]},"count":99,"min":-957312.0,"max":960960.0,"sum":-611776.0,"avg":-455936.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0778.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0778.json new file mode 100644 index 0000000000000..2b8599981ee08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0778.json @@ -0,0 +1 @@ +{"log":{"":{},"%󰀀\t":-8289435885281156801}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0779.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0779.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0779.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0780.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0780.json new file mode 100644 index 0000000000000..6f89d70ee9ac9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0780.json @@ -0,0 +1 @@ +{"log":{"":"","\u0006":{"1«":false,"d`﯂":{"":false,"A\r7":""},"쑗}(":false},"\u001fd":" ‰"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0781.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0781.json new file mode 100644 index 0000000000000..f87ce4126cea0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0781.json @@ -0,0 +1 @@ +{"log":{"":-4815084639344208822,"\u0004>":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0782.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0782.json new file mode 100644 index 0000000000000..37ee926446fb4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0782.json @@ -0,0 +1 @@ +{"log":{"":null,"
€(":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0783.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0783.json new file mode 100644 index 0000000000000..4a1b486c3a902 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0783.json @@ -0,0 +1 @@ +{"log":{"":false,"黛형":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0784.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0784.json new file mode 100644 index 0000000000000..496877228166a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0784.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"a","timestamp":"1970-01-01T00:00:00.000018855Z","interval_ms":821934045,"kind":"absolute","gauge":{"value":705600.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0785.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0785.json new file mode 100644 index 0000000000000..faf04aeb2f6c8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0785.json @@ -0,0 +1 @@ +{"log":{"":[{},null,"“򋁩"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0786.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0786.json new file mode 100644 index 0000000000000..bfae21494e595 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0786.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"g","timestamp":"1969-12-31T19:24:49.000016453Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-367095.4833,"count":15405366693097931116},{"upper_limit":35664.5144,"count":4756012123071394962},{"upper_limit":341056.0,"count":8442009448737005711},{"upper_limit":708800.0,"count":13112232426892433082},{"upper_limit":474240.0,"count":1396068982938948853},{"upper_limit":595712.0,"count":6012479023484710233},{"upper_limit":-178304.0,"count":15058782000845012478},{"upper_limit":-383902.0,"count":1356549870824259936},{"upper_limit":126720.0,"count":12934569016198143314},{"upper_limit":-159552.0,"count":14823248583878855662},{"upper_limit":191641.2964,"count":6181555582110714622},{"upper_limit":336320.0,"count":18446744073709551615},{"upper_limit":-118976.0,"count":14792523153792149857},{"upper_limit":178048.0,"count":1},{"upper_limit":-822272.0,"count":16842527126323258192},{"upper_limit":-292352.0,"count":4136751926321592102},{"upper_limit":-70912.0,"count":434516885761277530},{"upper_limit":345472.0,"count":11392907174906586091},{"upper_limit":812288.0,"count":156379446419578822},{"upper_limit":225920.0,"count":15863338018678220556},{"upper_limit":419200.0,"count":13050157572394755034},{"upper_limit":-56896.0,"count":6123382625671358894},{"upper_limit":541504.0,"count":16336837784216238472},{"upper_limit":-34752.0,"count":0},{"upper_limit":989504.0,"count":1},{"upper_limit":-953408.0,"count":15726007033863801220},{"upper_limit":5295.0545,"count":0},{"upper_limit":-693824.0,"count":12835132653342461277},{"upper_limit":119872.0,"count":4959650150004891288},{"upper_limit":-364672.0,"count":2485760432405628634},{"upper_limit":-73472.0,"count":10437397118661117364},{"upper_limit":-529024.0,"count":1},{"upper_limit":-446336.0,"count":11764974312334392245},{"upper_limit":-573504.0,"count":2025541047939310682},{"upper_limit":-628992.0,"count":4424682807628613484},{"upper_limit":572352.0,"count":12434485328978931952},{"upper_limit":-639104.0,"count":2544527508140642334},{"upper_limit":472256.0,"count":16922021396226046472},{"upper_limit":-641280.0,"count":2139946812779888623},{"upper_limit":-949824.0,"count":15507775839827128683},{"upper_limit":970112.0,"count":12075430291710296215},{"upper_limit":837504.0,"count":5922663088185758190},{"upper_limit":513024.0,"count":9583095964287322884},{"upper_limit":45120.0,"count":4821398499030739054},{"upper_limit":-322176.0,"count":5251930862922830366},{"upper_limit":149312.0,"count":12397855191766513743},{"upper_limit":870848.0,"count":1},{"upper_limit":644480.0,"count":18023739379363585783},{"upper_limit":-259456.0,"count":13893077251117486472},{"upper_limit":-774976.0,"count":7901173127382649475},{"upper_limit":-79680.0,"count":9888747934362411230},{"upper_limit":-585216.0,"count":13678245407563560646},{"upper_limit":768576.0,"count":104484032976246279},{"upper_limit":-224704.0,"count":14796771547733048091},{"upper_limit":5696.0,"count":18332454657533658693},{"upper_limit":-460352.0,"count":0},{"upper_limit":-687680.0,"count":18371666041201650095},{"upper_limit":763328.0,"count":0},{"upper_limit":-885312.0,"count":15045171567421670874},{"upper_limit":548288.0,"count":13012363063843288783},{"upper_limit":-713024.0,"count":13294446943722367534},{"upper_limit":-564416.0,"count":15526273842679461946},{"upper_limit":957376.0,"count":15784737774247683431},{"upper_limit":430016.0,"count":8094735993932888367},{"upper_limit":858368.0,"count":10720126492360969397},{"upper_limit":541376.0,"count":2493126518236279063},{"upper_limit":152576.0,"count":3577538118858018799},{"upper_limit":-962496.0,"count":16661447714736472060},{"upper_limit":-281472.0,"count":5314675782863231375},{"upper_limit":-539392.0,"count":11510647629572196413},{"upper_limit":-192768.0,"count":15921416860405642036},{"upper_limit":-914687.8056,"count":4962522263127480027},{"upper_limit":-915072.0,"count":6414891023769789938},{"upper_limit":-937408.0,"count":9932943342833716895},{"upper_limit":466304.0,"count":555745625306137878},{"upper_limit":196288.0,"count":16956732443217457054},{"upper_limit":-480872.0,"count":2740197290598664588},{"upper_limit":-18560.0,"count":14280653935221498258},{"upper_limit":-958528.0,"count":4502060777080323725},{"upper_limit":829696.0,"count":7095160799368808063},{"upper_limit":-265375.7663,"count":1605845329645717854},{"upper_limit":722816.0,"count":13546559557426107193},{"upper_limit":-507072.0,"count":4320228839460294510},{"upper_limit":-680064.0,"count":14799124809620600359},{"upper_limit":-774592.0,"count":9834379195495382277},{"upper_limit":-541440.0,"count":16037188858213984969},{"upper_limit":720896.0,"count":1},{"upper_limit":-750592.0,"count":18446744073709551615},{"upper_limit":-682411.5637,"count":15507363180899685464},{"upper_limit":-717312.0,"count":796111813936858296},{"upper_limit":124160.0,"count":16530379286481036261},{"upper_limit":-977024.0,"count":7942926528008411788},{"upper_limit":416640.0,"count":16258371529947620322},{"upper_limit":391424.0,"count":837629135927118184},{"upper_limit":736960.0,"count":17188976853715662790},{"upper_limit":715712.0,"count":2331936018651818158},{"upper_limit":382016.0,"count":12841342387849847600},{"upper_limit":-593408.0,"count":14840832873019870542},{"upper_limit":259584.0,"count":6630241104266881972},{"upper_limit":-589760.0,"count":16272058740683969991},{"upper_limit":982272.0,"count":6993794180450270986},{"upper_limit":-812352.0,"count":5819631640668884615},{"upper_limit":-683456.0,"count":10969938353040783048},{"upper_limit":795584.0,"count":14363222036045240484},{"upper_limit":-817728.0,"count":6536677306241126282},{"upper_limit":-453696.0,"count":8124729665262132072},{"upper_limit":430720.0,"count":16598876861381599513}],"count":9327001957473329775,"sum":16.897}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0787.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0787.json new file mode 100644 index 0000000000000..e4b358f4a7a5a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0787.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"b","timestamp":"1969-12-31T22:40:50.000015326Z","kind":"incremental","distribution":{"samples":[{"value":35776.0,"rate":1755296114},{"value":854566.0,"rate":690791404},{"value":-76864.0,"rate":2103841733},{"value":374208.0,"rate":2524101940},{"value":-402016.0,"rate":3413896382},{"value":-143308.3744,"rate":3538923692},{"value":-969536.0,"rate":3575030018},{"value":282112.0,"rate":2086042374},{"value":717824.0,"rate":3399426159},{"value":-886720.0,"rate":720661790},{"value":-972864.0,"rate":3313513464},{"value":-17088.0,"rate":3201603146},{"value":-806848.0,"rate":3554779054},{"value":-643776.0,"rate":47740165},{"value":401024.0,"rate":1821566638},{"value":264256.0,"rate":3059634634},{"value":294784.0,"rate":850060652},{"value":-523584.0,"rate":1},{"value":-110464.0,"rate":2441206868},{"value":35072.0,"rate":3242914321},{"value":-629376.0,"rate":2065144260},{"value":-281024.0,"rate":0},{"value":-803136.0,"rate":3859041983},{"value":-318592.0,"rate":3328826710},{"value":-171200.0,"rate":3533995661},{"value":184448.0,"rate":2090521160},{"value":-858368.0,"rate":1872763501},{"value":-8.5223,"rate":3684910319},{"value":214336.0,"rate":1301556746},{"value":212352.0,"rate":2729879241},{"value":403264.0,"rate":0},{"value":217216.0,"rate":250701292},{"value":-212544.0,"rate":1240076232},{"value":986944.0,"rate":1850991114},{"value":758912.0,"rate":1700845242},{"value":115776.0,"rate":1305155158},{"value":-544832.0,"rate":640736757},{"value":-91648.0,"rate":4294967295},{"value":-782720.0,"rate":1766786514},{"value":267200.0,"rate":3222963710},{"value":547904.0,"rate":1971648879},{"value":-974336.0,"rate":3472207024},{"value":-577280.0,"rate":4153912270},{"value":29760.0,"rate":4294967295},{"value":-555968.0,"rate":1768392784},{"value":192256.0,"rate":264692973},{"value":-170304.0,"rate":1154837936},{"value":-858368.0,"rate":1323704346},{"value":296512.0,"rate":2562568159},{"value":31360.0,"rate":1518912865},{"value":443200.0,"rate":2638074112},{"value":720576.0,"rate":2014624471},{"value":526080.0,"rate":1967952840},{"value":749056.0,"rate":1194470586},{"value":-289984.0,"rate":2387522580},{"value":968448.0,"rate":3591200101},{"value":522176.0,"rate":2768048178},{"value":-531904.0,"rate":2986777786},{"value":-830720.0,"rate":1613552524},{"value":-301696.0,"rate":2886908797},{"value":362688.0,"rate":1582261959},{"value":493120.0,"rate":2026630668},{"value":-712512.0,"rate":3648778100},{"value":415104.0,"rate":3975324302},{"value":78080.0,"rate":1692486487},{"value":-814592.0,"rate":4231570646},{"value":-935872.0,"rate":4294967295},{"value":188224.0,"rate":591077000},{"value":-755776.0,"rate":1452672097},{"value":278272.0,"rate":4007424964},{"value":-743488.0,"rate":3424753306},{"value":-33904.5081,"rate":2720358823},{"value":590720.0,"rate":3596634589},{"value":-14528.0,"rate":3979346361},{"value":-899776.0,"rate":2379963394},{"value":-109248.0,"rate":1328298164},{"value":342336.0,"rate":3036176229},{"value":307776.0,"rate":966320403},{"value":-673408.0,"rate":5131616},{"value":-961984.0,"rate":768227781},{"value":-874944.0,"rate":2351544787},{"value":428224.0,"rate":1941648009},{"value":-888256.0,"rate":1603842557},{"value":-965952.0,"rate":4294967295},{"value":-829504.0,"rate":3267664486},{"value":-525312.0,"rate":3129374831},{"value":-61952.0,"rate":1240981582},{"value":142912.0,"rate":1049540455},{"value":-67392.0,"rate":2961041306},{"value":838144.0,"rate":1164249669}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0788.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0788.json new file mode 100644 index 0000000000000..fc3dde7fdd1ff --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0788.json @@ -0,0 +1 @@ +{"log":{"":7390057752155555076,",)":"Y","-진":{"‡92":"؄"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0789.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0789.json new file mode 100644 index 0000000000000..96b4b1ee2c7d4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0789.json @@ -0,0 +1 @@ +{"metric":{"name":"i","kind":"incremental","distribution":{"samples":[{"value":693952.0,"rate":1},{"value":426944.0,"rate":1477624249},{"value":-166848.0,"rate":3172443208},{"value":-681984.0,"rate":2884321635},{"value":685696.0,"rate":3107318757},{"value":903232.0,"rate":3738741841},{"value":616128.0,"rate":3740402963},{"value":277760.0,"rate":2506486715},{"value":21440.0,"rate":2694254776},{"value":-749568.0,"rate":3599895297},{"value":504640.0,"rate":1881324740},{"value":615424.0,"rate":3492036424},{"value":-660160.0,"rate":1013439954},{"value":-420992.0,"rate":4294967295},{"value":209024.0,"rate":2364828285},{"value":129024.0,"rate":295304347},{"value":771968.0,"rate":3075757864},{"value":-287424.0,"rate":4100405186},{"value":-955968.0,"rate":3339494165},{"value":61504.0,"rate":1828914973},{"value":599488.0,"rate":4294967295},{"value":177664.0,"rate":1},{"value":242944.0,"rate":3480547994},{"value":523136.0,"rate":2423662953},{"value":954880.0,"rate":1829502010},{"value":-531584.0,"rate":4041493167},{"value":529472.0,"rate":3213022191},{"value":-301056.0,"rate":4294967295},{"value":486976.0,"rate":3774851989},{"value":649472.0,"rate":1109679727},{"value":225408.0,"rate":2179303561},{"value":804160.0,"rate":125301010},{"value":969152.0,"rate":1},{"value":858368.0,"rate":4095739115},{"value":718464.0,"rate":280216255},{"value":-575168.0,"rate":196042892},{"value":509271.7969,"rate":3823339723},{"value":-120192.0,"rate":706008750},{"value":13696.0,"rate":1664072324},{"value":283456.0,"rate":766406897},{"value":390528.0,"rate":1839912258},{"value":6912.0,"rate":2840070918},{"value":-542292.3465,"rate":3258732474},{"value":-46784.0,"rate":2819923136},{"value":577536.0,"rate":3206028801},{"value":-615680.0,"rate":113510771},{"value":461696.0,"rate":1305418518},{"value":500992.0,"rate":2667642976},{"value":-82880.0,"rate":3864721742},{"value":-578240.0,"rate":4230847341},{"value":207936.0,"rate":3940559281},{"value":611008.0,"rate":1655276330},{"value":816192.0,"rate":4294967295},{"value":-118656.0,"rate":4168959680},{"value":-775808.0,"rate":1405306279},{"value":102912.0,"rate":1455037170},{"value":-590336.0,"rate":2116701446},{"value":162176.0,"rate":1848624171},{"value":996928.0,"rate":2575633308},{"value":789248.0,"rate":3869498441},{"value":958528.0,"rate":1307828568},{"value":625408.0,"rate":701836672},{"value":-195904.0,"rate":51285896},{"value":819904.0,"rate":1},{"value":684480.0,"rate":3148685003},{"value":219392.0,"rate":395890717},{"value":132800.0,"rate":2953466041},{"value":588096.0,"rate":60669045},{"value":-809344.0,"rate":1185970298},{"value":880640.0,"rate":2349345237},{"value":219904.0,"rate":4294967295},{"value":-996608.0,"rate":2376613743},{"value":336448.0,"rate":956631826},{"value":-588160.0,"rate":4294967295},{"value":-993664.0,"rate":3141720722},{"value":543424.0,"rate":1581151476},{"value":893632.0,"rate":1847768312},{"value":-376640.0,"rate":2897554788},{"value":595648.0,"rate":145951341},{"value":817472.0,"rate":4294967295},{"value":-268928.0,"rate":3473598872},{"value":-358592.0,"rate":4288885382},{"value":144256.0,"rate":1970207445},{"value":6848.0,"rate":174701053},{"value":449774.3994,"rate":3568009211},{"value":-718912.0,"rate":788336188},{"value":-914496.0,"rate":1447758338},{"value":-110080.0,"rate":4238015711},{"value":964800.0,"rate":1868862131},{"value":848064.0,"rate":2486185885},{"value":-793792.0,"rate":901278872},{"value":-572864.0,"rate":233730250},{"value":235840.0,"rate":3480144584},{"value":709824.0,"rate":996103970},{"value":410240.0,"rate":2818662263},{"value":363456.0,"rate":3410629835},{"value":781056.0,"rate":3272513452},{"value":-247744.0,"rate":2237142497},{"value":-413248.0,"rate":987219931},{"value":945408.0,"rate":4125307447},{"value":982400.0,"rate":3265693098},{"value":-157632.0,"rate":743472551},{"value":431488.0,"rate":2424096323},{"value":-47040.0,"rate":3909670382},{"value":-811584.0,"rate":4294967295},{"value":501376.0,"rate":3870668396},{"value":-75968.0,"rate":526903762},{"value":-282880.0,"rate":2888825456},{"value":549568.0,"rate":1},{"value":92928.0,"rate":1580862493},{"value":956800.0,"rate":1737255183},{"value":-388544.0,"rate":1102596127},{"value":-283840.0,"rate":1892183550},{"value":-808704.0,"rate":1453594978},{"value":-778752.0,"rate":480564129},{"value":-118976.0,"rate":1408434487}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0790.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0790.json new file mode 100644 index 0000000000000..589f8652f8cf5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0790.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"l":"h"},"timestamp":"1970-01-01T02:18:32.000016202Z","interval_ms":351531093,"kind":"incremental","gauge":{"value":-741248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0791.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0791.json new file mode 100644 index 0000000000000..d1c90637dffe0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0791.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T07:53:59.000010900Z","interval_ms":2496809857,"kind":"absolute","counter":{"value":50112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0792.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0792.json new file mode 100644 index 0000000000000..fd8351af89251 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0792.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"b","kind":"absolute","distribution":{"samples":[{"value":322560.0,"rate":1611891375},{"value":384512.0,"rate":804803243},{"value":108864.0,"rate":80945263},{"value":-15296.0,"rate":4179007783},{"value":-278656.0,"rate":2953595212},{"value":-380288.0,"rate":3952313391},{"value":-227136.0,"rate":2941255566},{"value":-949234.9763,"rate":1},{"value":-728192.0,"rate":1659893530},{"value":236352.0,"rate":317516847},{"value":-350976.0,"rate":4093964760},{"value":-898752.0,"rate":1804287000},{"value":-853056.0,"rate":650224428},{"value":93312.0,"rate":98731707},{"value":-985600.0,"rate":185791568},{"value":24768.0,"rate":206381072},{"value":720832.0,"rate":1327682048},{"value":234752.0,"rate":3634054533},{"value":761408.0,"rate":838872680},{"value":-541696.0,"rate":2535536625},{"value":-978688.0,"rate":4294967295},{"value":249.0313,"rate":294263166},{"value":-409728.0,"rate":3357733865},{"value":96640.0,"rate":897104593},{"value":50944.0,"rate":2936507519},{"value":643136.0,"rate":153871159},{"value":-503424.0,"rate":3455347181},{"value":-345728.0,"rate":2854390430},{"value":468864.0,"rate":691836122},{"value":-302144.0,"rate":0},{"value":924224.0,"rate":1283208720},{"value":858368.0,"rate":854675297},{"value":803456.0,"rate":3716950275},{"value":730176.0,"rate":1971445520},{"value":-337024.0,"rate":98332536},{"value":-843392.0,"rate":243647228},{"value":-693312.0,"rate":3180841158},{"value":-669120.0,"rate":3530729459},{"value":510720.0,"rate":0},{"value":589888.0,"rate":3701551137},{"value":698112.0,"rate":2362085067},{"value":74944.0,"rate":751589211},{"value":888576.0,"rate":1424191896},{"value":437888.0,"rate":2046717404},{"value":-790656.0,"rate":1093669119},{"value":-217728.0,"rate":1868084004},{"value":824512.0,"rate":82722492},{"value":-682560.0,"rate":2534070832},{"value":-716096.0,"rate":943455546},{"value":-281600.0,"rate":1},{"value":-30272.0,"rate":2758762882},{"value":-670848.0,"rate":150283258},{"value":902336.0,"rate":2847159151},{"value":12.2281,"rate":1982029510},{"value":35840.0,"rate":0},{"value":-120640.0,"rate":844975361},{"value":869312.0,"rate":3769108451},{"value":-858368.0,"rate":0},{"value":-909504.0,"rate":483789753},{"value":-177280.0,"rate":767936155},{"value":10112.0,"rate":4292771424},{"value":-452032.0,"rate":2795944222},{"value":-543040.0,"rate":2531727720},{"value":858368.0,"rate":3707613387},{"value":-338112.0,"rate":2434836074},{"value":-709504.0,"rate":1245152858},{"value":-337920.0,"rate":3593815707},{"value":65344.0,"rate":1811617728},{"value":213785.3932,"rate":3495435399},{"value":-42432.0,"rate":1825902640},{"value":128320.0,"rate":3909234865},{"value":913088.0,"rate":757279693},{"value":910144.0,"rate":0},{"value":-529408.0,"rate":1929638321},{"value":337152.0,"rate":2868553842},{"value":536575.2393,"rate":3593033558},{"value":-437312.0,"rate":1759581156},{"value":695936.0,"rate":1691610269},{"value":588992.0,"rate":1995581234},{"value":870784.0,"rate":3489679277},{"value":841600.0,"rate":1176429536},{"value":683008.0,"rate":4011830382},{"value":848192.0,"rate":1},{"value":988288.0,"rate":2740607266},{"value":328704.0,"rate":2395657257},{"value":332416.0,"rate":4294967295},{"value":-559488.0,"rate":977719984},{"value":-796032.0,"rate":964146590},{"value":260288.0,"rate":0},{"value":938752.0,"rate":1569978202},{"value":657856.0,"rate":2341412081},{"value":-67328.0,"rate":4294967295},{"value":-612864.0,"rate":4131758379},{"value":505600.0,"rate":2896919211},{"value":-234688.0,"rate":3732580619},{"value":-754048.0,"rate":3927148543},{"value":86825.1406,"rate":2871045641},{"value":158976.0,"rate":396422853},{"value":-940160.0,"rate":3716318756},{"value":-30912.0,"rate":3897267464},{"value":53504.0,"rate":2323000906},{"value":498432.0,"rate":0},{"value":473536.0,"rate":2147936733},{"value":-921536.0,"rate":4024808101},{"value":-329472.0,"rate":1183246103},{"value":627904.0,"rate":1338956345},{"value":221952.0,"rate":1},{"value":401472.0,"rate":3760417434},{"value":-305344.0,"rate":3787946466}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0793.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0793.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0793.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0794.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0794.json new file mode 100644 index 0000000000000..0d8d4284bd62f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0794.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"g":"e","o":"f"},"timestamp":"1969-12-31T17:08:28.000000203Z","interval_ms":4042971330,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":541440.0,"count":16563625028724909550},{"upper_limit":-395776.0,"count":6655658365681203082},{"upper_limit":-994496.0,"count":10709551316213999553},{"upper_limit":-938816.0,"count":15223556132391745759},{"upper_limit":142272.0,"count":10900584148653964008},{"upper_limit":79808.0,"count":15003650929697824325},{"upper_limit":273664.0,"count":10132131809032573085},{"upper_limit":-201920.0,"count":18377019848479949702},{"upper_limit":-803648.0,"count":18446744073709551615},{"upper_limit":-73920.0,"count":6510389810654377514},{"upper_limit":942272.0,"count":15834132852810444006},{"upper_limit":-833216.0,"count":0},{"upper_limit":-323840.0,"count":8965776791829312010},{"upper_limit":-684287.0625,"count":12065762000417173669},{"upper_limit":62016.0,"count":7734957397098698215},{"upper_limit":-231552.0,"count":9875601296381219303},{"upper_limit":491584.0,"count":14623334420612224776},{"upper_limit":-210368.0,"count":14910831483573895863},{"upper_limit":589056.0,"count":3298724138950821325},{"upper_limit":858368.0,"count":15729820349404412184},{"upper_limit":859533.2316,"count":3597366392792162908},{"upper_limit":917888.0,"count":5977340394747210228},{"upper_limit":732480.0,"count":1468405610039425106},{"upper_limit":-304064.0,"count":7443421291861808837},{"upper_limit":-843968.0,"count":0},{"upper_limit":-647936.0,"count":0},{"upper_limit":553920.0,"count":13635170703178580416},{"upper_limit":784896.0,"count":9795100150656412003},{"upper_limit":975424.0,"count":5651523103573682373},{"upper_limit":-1908.422,"count":18180333288155323749},{"upper_limit":-251456.0,"count":17662356019405445291},{"upper_limit":908224.0,"count":2455482139428529818},{"upper_limit":175680.0,"count":816489253195623302},{"upper_limit":-87168.0,"count":1947068122022199927},{"upper_limit":340736.0,"count":8207348441119174275},{"upper_limit":-473864.2188,"count":9920669405608091809},{"upper_limit":-580544.0,"count":10230814345697754746},{"upper_limit":-300352.0,"count":7493864216866343745},{"upper_limit":840448.0,"count":17136670526909094190},{"upper_limit":-831872.0,"count":17870183274645393286},{"upper_limit":620480.0,"count":3567245508063765865},{"upper_limit":216192.0,"count":481332022655198029},{"upper_limit":-533568.0,"count":13922842879239538309},{"upper_limit":-816192.0,"count":9007109912833334854},{"upper_limit":-144256.0,"count":15702161190781431504},{"upper_limit":364416.0,"count":18009236979355688000},{"upper_limit":-302784.0,"count":1757224510232796202},{"upper_limit":803072.0,"count":11722730484539298509},{"upper_limit":-394368.0,"count":6521158484396468636},{"upper_limit":-895296.0,"count":4147631261375814195},{"upper_limit":-574400.0,"count":321806494623904516},{"upper_limit":-291520.0,"count":5825134469097493474},{"upper_limit":-991552.0,"count":1491122215366973887},{"upper_limit":345280.0,"count":5579694541857730388},{"upper_limit":948800.0,"count":11414628123340518703},{"upper_limit":-858368.0,"count":10939533921475041851},{"upper_limit":-343232.0,"count":1},{"upper_limit":-417344.0,"count":12758924189548197790},{"upper_limit":-394816.0,"count":10386144453638658420},{"upper_limit":-730816.0,"count":5063123868333086098},{"upper_limit":446912.0,"count":15606696627841898287},{"upper_limit":-633920.0,"count":1142586848702639100},{"upper_limit":761792.0,"count":3245357266564743077},{"upper_limit":248896.0,"count":9878186638170060413},{"upper_limit":435904.0,"count":10842812733705685406}],"count":5123491989524228696,"sum":-56896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0795.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0795.json new file mode 100644 index 0000000000000..7b9dd9cc1b261 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0795.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"b","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2223,-2220,-2219,-2217,-2216,-2215,-2214,-2213,-2212,-2209,-2207,-2206,-2204,-2196,-2194,-2191,-2190,-2184,-2183,-2176,-2174,-2167,-2165,-2160,-2158,-2157,-2155,-2153,-2152,-2148,-2146,-2144,-2142,-2137,-2134,-2124,-2121,-2118,-2110,-2105,-2103,-2087,-2080,-2077,-2053,-2039,-2000,-1968,-1807,1875,2062,2095,2111,2122,2128,2133,2139,2141,2156,2164,2173,2176,2180,2184,2186,2191,2195,2197,2199,2203,2208,2211,2212,2214,2215,2216,2217,2221,2222,2223,2227,2228],"n":[1,1,1,1,1,1,1,1,4,1,2,2,1,1,3,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,1,1,3,2,2,1]},"count":101,"min":-995008.0,"max":986816.0,"sum":-368576.0,"avg":-203200.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0796.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0796.json new file mode 100644 index 0000000000000..720796c7b574d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0796.json @@ -0,0 +1 @@ +{"log":{"\u00193E":{"J\f㙌":[-228672.0,""],"蘠m":-808600953717972336},"*":true,"ꖼ‰񑆉":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0797.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0797.json new file mode 100644 index 0000000000000..c9ad30201f858 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0797.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"q","timestamp":"1970-01-01T02:36:29.000011601Z","interval_ms":3764469686,"kind":"incremental","distribution":{"samples":[{"value":988096.0,"rate":3292049126},{"value":286464.0,"rate":2721732750},{"value":905920.0,"rate":1527882559},{"value":-463424.0,"rate":2541811275},{"value":682432.0,"rate":4294967295},{"value":-863744.0,"rate":2500292212},{"value":642112.0,"rate":939755166},{"value":858368.0,"rate":1},{"value":-254976.0,"rate":1},{"value":708416.0,"rate":4049255253},{"value":858368.0,"rate":2342521900},{"value":349184.0,"rate":2684628057},{"value":-48384.0,"rate":1309103391},{"value":343936.0,"rate":2092832921},{"value":-814208.0,"rate":1069161220},{"value":-522816.0,"rate":771353247},{"value":-858368.0,"rate":3939394740},{"value":717248.0,"rate":2747609810},{"value":703424.0,"rate":947814285},{"value":-763968.0,"rate":3013934546},{"value":848704.0,"rate":2895875975},{"value":-68672.0,"rate":0},{"value":437120.0,"rate":2524303044},{"value":724800.0,"rate":0},{"value":823808.0,"rate":1223945578},{"value":35008.0,"rate":3164975943},{"value":181952.0,"rate":1276916659},{"value":-133440.0,"rate":4294967295},{"value":248192.0,"rate":3649591075},{"value":-967360.0,"rate":3165065508},{"value":858368.0,"rate":2014920932},{"value":539648.0,"rate":2515596928},{"value":-426304.0,"rate":3210256061},{"value":356096.0,"rate":1781198790},{"value":-415680.0,"rate":1680468115},{"value":30848.0,"rate":1856632721},{"value":972928.0,"rate":158352135},{"value":-794368.0,"rate":4249291553},{"value":-609856.0,"rate":3889507596},{"value":847232.0,"rate":1},{"value":-280576.0,"rate":3524286596},{"value":-749312.0,"rate":919825074},{"value":257984.0,"rate":1618249304},{"value":-454912.0,"rate":4190367904},{"value":-747392.0,"rate":1893094637},{"value":-337984.0,"rate":374451817},{"value":703360.0,"rate":1410540114},{"value":774912.0,"rate":184227419},{"value":-415808.0,"rate":2553962630},{"value":9792.0,"rate":2042100008},{"value":840128.0,"rate":2340615964},{"value":-828928.0,"rate":2120944845},{"value":957376.0,"rate":3285399679},{"value":157504.0,"rate":0},{"value":529792.0,"rate":3677028096},{"value":-246976.0,"rate":3363284243},{"value":-442560.0,"rate":3989546607},{"value":-206400.0,"rate":3228653942},{"value":-16192.0,"rate":2861242363},{"value":290176.0,"rate":2118566509},{"value":-753600.0,"rate":1221565603},{"value":815552.0,"rate":2841729090},{"value":-668352.0,"rate":686084500},{"value":785024.0,"rate":1893334578},{"value":330112.0,"rate":3767502355},{"value":-168768.0,"rate":524148234},{"value":784704.0,"rate":531951739},{"value":-997696.0,"rate":840982872},{"value":-300800.0,"rate":3450303677},{"value":352832.0,"rate":3562780671},{"value":77995.9082,"rate":1939762211},{"value":991680.0,"rate":3178506477},{"value":295424.0,"rate":4183481420},{"value":722176.0,"rate":350032043},{"value":850624.0,"rate":2249450053},{"value":603840.0,"rate":3994660400},{"value":-64512.0,"rate":2037417197},{"value":466176.0,"rate":3502436757},{"value":824256.0,"rate":1709039253},{"value":-858368.0,"rate":1355217730},{"value":-394304.0,"rate":4230102760},{"value":-2432.0,"rate":436886561},{"value":-619840.0,"rate":2376626169},{"value":824896.0,"rate":3432142242},{"value":701184.0,"rate":3878230233},{"value":352384.0,"rate":4294967295},{"value":-9472.0,"rate":1},{"value":967744.0,"rate":2069261163},{"value":660096.0,"rate":4180002705},{"value":858176.0,"rate":2703936446},{"value":24192.0,"rate":782953069},{"value":858368.0,"rate":2225356447},{"value":64247.8915,"rate":4294967295},{"value":677568.0,"rate":4294967295},{"value":-981568.0,"rate":868902685},{"value":22400.0,"rate":769028844},{"value":438080.0,"rate":1330348042}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0798.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0798.json new file mode 100644 index 0000000000000..6ec795980851f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0798.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1969-12-31T17:23:12.000025877Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":727680.0,"value":213568.0},{"quantile":775104.0,"value":-340160.0},{"quantile":-414336.0,"value":154432.0},{"quantile":-360512.0,"value":-668736.0},{"quantile":-257792.0,"value":-665508.9658},{"quantile":-587328.0,"value":-502656.0},{"quantile":37797.7188,"value":981888.0},{"quantile":991872.0,"value":-238080.0},{"quantile":-457920.0,"value":-409536.0},{"quantile":-449408.0,"value":173056.0},{"quantile":-840384.0,"value":-935488.0},{"quantile":305152.0,"value":69312.0},{"quantile":237568.0,"value":77440.0},{"quantile":-42624.0,"value":231680.0},{"quantile":240128.0,"value":668608.0},{"quantile":336640.0,"value":543744.0},{"quantile":-50368.0,"value":789376.0},{"quantile":-345920.0,"value":-950848.0},{"quantile":243328.0,"value":356864.0},{"quantile":-25792.0,"value":-430720.0},{"quantile":-965312.0,"value":-655232.0},{"quantile":-692416.0,"value":-667904.0},{"quantile":917504.0,"value":64192.0},{"quantile":434176.0,"value":806528.0},{"quantile":160768.0,"value":829184.0},{"quantile":666816.0,"value":184896.0},{"quantile":741440.0,"value":496960.0},{"quantile":-821696.0,"value":117824.0},{"quantile":858368.0,"value":-557504.0},{"quantile":-312768.0,"value":783744.0},{"quantile":371008.0,"value":263040.0},{"quantile":-511872.0,"value":-982208.0},{"quantile":-363904.0,"value":-575040.0},{"quantile":-15296.0,"value":-583232.0},{"quantile":58496.0,"value":-874304.0},{"quantile":-662080.0,"value":563904.0},{"quantile":-69760.0,"value":60736.0},{"quantile":-353600.0,"value":-9472.0},{"quantile":-260416.0,"value":555392.0},{"quantile":-333155.0525,"value":-274816.0},{"quantile":400000.0,"value":-948800.0},{"quantile":-368384.0,"value":7.844},{"quantile":-6.5091,"value":-135936.0},{"quantile":-858368.0,"value":728204.0469},{"quantile":113792.0,"value":639424.0},{"quantile":872128.0,"value":-598656.0},{"quantile":810752.0,"value":-696960.0},{"quantile":381824.0,"value":-929408.0},{"quantile":475712.0,"value":-738624.0},{"quantile":423872.0,"value":-589504.0},{"quantile":-666432.0,"value":272448.0},{"quantile":883181.2509,"value":769920.0},{"quantile":568768.0,"value":435022.8125},{"quantile":-674816.0,"value":250368.0},{"quantile":231104.0,"value":239424.0},{"quantile":262656.0,"value":-810176.0},{"quantile":901402.875,"value":681280.0},{"quantile":-753856.0,"value":-248384.0},{"quantile":-543552.0,"value":-445120.0},{"quantile":630080.0,"value":902528.0},{"quantile":-535808.0,"value":462656.0},{"quantile":588096.0,"value":950016.0},{"quantile":12736.0,"value":969600.0},{"quantile":-527360.0,"value":125888.0},{"quantile":-886976.0,"value":-408768.0},{"quantile":-928512.0,"value":858368.0},{"quantile":138688.0,"value":406464.0},{"quantile":836032.0,"value":-240192.0},{"quantile":-811776.0,"value":373824.0},{"quantile":-47872.0,"value":446848.0},{"quantile":-220864.0,"value":-537984.0},{"quantile":643648.0,"value":-313216.0},{"quantile":-214016.0,"value":-409088.0},{"quantile":-858368.0,"value":-187968.0},{"quantile":130880.0,"value":878592.0},{"quantile":831872.0,"value":-859840.0},{"quantile":-696384.0,"value":-921216.0},{"quantile":565760.0,"value":-469760.0},{"quantile":-905664.0,"value":-668288.0},{"quantile":-957888.0,"value":952448.0},{"quantile":68800.0,"value":487120.2893},{"quantile":-393984.0,"value":44224.0},{"quantile":-111296.0,"value":100288.0},{"quantile":-33408.0,"value":946752.0},{"quantile":-67456.0,"value":877056.0},{"quantile":791488.0,"value":-724928.0},{"quantile":-925376.0,"value":308992.0},{"quantile":499.2759,"value":356160.0},{"quantile":442688.0,"value":-146240.0},{"quantile":387520.0,"value":-488064.0},{"quantile":29056.0,"value":931968.0},{"quantile":69888.0,"value":844800.0},{"quantile":1856.0,"value":-821504.0},{"quantile":-241366.1451,"value":-112064.0},{"quantile":-121856.0,"value":-976064.0},{"quantile":72.5817,"value":-406016.0},{"quantile":-117120.0,"value":-77568.0},{"quantile":999232.0,"value":153344.0},{"quantile":-689024.0,"value":-128896.0},{"quantile":-591040.0,"value":635008.0},{"quantile":-950208.0,"value":798912.0},{"quantile":942016.0,"value":-292032.0},{"quantile":832192.0,"value":-626112.0}],"count":9681810521685509741,"sum":-584128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0799.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0799.json new file mode 100644 index 0000000000000..91d625331b4c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0799.json @@ -0,0 +1 @@ +{"metric":{"name":"g","interval_ms":154693053,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2197,-1796,2086,2215,2218],"n":[1,1,1,1,1]},"count":5,"min":-607488.0,"max":847744.0,"sum":-70400.0,"avg":-654528.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0800.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0800.json new file mode 100644 index 0000000000000..27e5893d066b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0800.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"r":"j","x":"a"},"interval_ms":1002001025,"kind":"incremental","counter":{"value":-802816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0801.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0801.json new file mode 100644 index 0000000000000..c27b705325ecd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0801.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"g","tags":{"c":"f","t":"b","v":"h"},"interval_ms":1888005767,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-126144.0,"count":2213244468707089748},{"upper_limit":402432.0,"count":15699224182696994774},{"upper_limit":-49216.0,"count":18446744073709551615},{"upper_limit":-815296.0,"count":15389543174976246689},{"upper_limit":-6528.0,"count":5364039077341300481},{"upper_limit":583296.0,"count":11824921532464705674},{"upper_limit":-693760.0,"count":11628334171350997156},{"upper_limit":-287552.0,"count":15992183916455890549},{"upper_limit":570240.0,"count":7275775738914228140},{"upper_limit":-979392.0,"count":5038008717847789305},{"upper_limit":-966400.0,"count":3883907745915565892},{"upper_limit":362624.0,"count":14153837425283907271},{"upper_limit":-747648.0,"count":14817138616685093387},{"upper_limit":-184256.0,"count":17646701451997098435},{"upper_limit":-622592.0,"count":1684503904491234442},{"upper_limit":-201216.0,"count":8788317444870305153},{"upper_limit":-617664.0,"count":7359555916897096728},{"upper_limit":531392.0,"count":3889248335212900846},{"upper_limit":-862080.0,"count":2619227964749808702},{"upper_limit":681600.0,"count":2858869451071885555},{"upper_limit":-117184.0,"count":13118461479562263865},{"upper_limit":-540992.0,"count":8103832488494414459},{"upper_limit":-244736.0,"count":2664221755329244065},{"upper_limit":-897408.0,"count":6868941795557132059},{"upper_limit":145856.0,"count":14014945252942933894},{"upper_limit":-794880.0,"count":480840913509619755},{"upper_limit":474432.0,"count":0},{"upper_limit":778816.0,"count":15166480240989078104},{"upper_limit":405760.0,"count":14303347790448911720},{"upper_limit":-858368.0,"count":2668999343961995053},{"upper_limit":402688.0,"count":5129061883895306314},{"upper_limit":230784.0,"count":12485190341589193571},{"upper_limit":-169088.0,"count":16325857916606016157},{"upper_limit":-276352.0,"count":1378571011347272198},{"upper_limit":-883328.0,"count":18446744073709551615},{"upper_limit":-796032.0,"count":5345489965289791406},{"upper_limit":877056.0,"count":11618550975587952387},{"upper_limit":-544576.0,"count":4204649230304287465},{"upper_limit":660352.0,"count":14223196411966459197},{"upper_limit":-929984.0,"count":13353144167120030265},{"upper_limit":987968.0,"count":9975832576041100466},{"upper_limit":-447872.0,"count":413576916825477331},{"upper_limit":66688.0,"count":4049352039558820658},{"upper_limit":807104.0,"count":1561974812789384297},{"upper_limit":-93376.0,"count":7510318660875863639},{"upper_limit":121024.0,"count":1},{"upper_limit":644864.0,"count":9617283849430300250},{"upper_limit":554496.0,"count":10958366604980582803},{"upper_limit":388736.0,"count":8358050204543904485},{"upper_limit":-131099.173,"count":8026120959499192583},{"upper_limit":294592.0,"count":1},{"upper_limit":-118592.0,"count":17108704576018104607},{"upper_limit":950528.0,"count":5600252826995108593},{"upper_limit":235392.0,"count":9051328899588085518},{"upper_limit":7296.0,"count":15519959736288004003}],"count":18446744073709551615,"sum":-530368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0802.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0802.json new file mode 100644 index 0000000000000..86a9fb18088b6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0802.json @@ -0,0 +1 @@ +{"log":{"":[false,true,[null,-4486012435070548674]],"\b":"&","￲\u0018":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0803.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0803.json new file mode 100644 index 0000000000000..546ff796b0b97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0803.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"o","timestamp":"1970-01-01T08:38:40.000014183Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2225,-2223,-2222,-2221,-2220,-2219,-2217,-2216,-2215,-2212,-2210,-2209,-2208,-2206,-2205,-2204,-2202,-2201,-2200,-2199,-2198,-2196,-2195,-2194,-2192,-2190,-2189,-2187,-2181,-2180,-2177,-2176,-2175,-2173,-2171,-2170,-2164,-2162,-2161,-2142,-2141,-2139,-2135,-2133,-2130,-2127,-2126,-2118,-2112,-2110,-2107,-2101,-2100,-2090,-2089,-2088,-2082,-2078,-2076,-2062,-2058,-2056,-2053,-2044,-2043,-2040,-2023,-2012,-2001,-1998,-1994,-1974,-1963,-1946,-1934,-1915,-1837,1873,1947,1951,1998,2000,2005,2012,2027,2050,2055,2056,2060,2067,2068,2074,2078,2079,2090,2097,2113,2119,2122,2124,2125,2126,2129,2133,2135,2136,2138,2139,2143,2144,2145,2146,2148,2149,2150,2151,2152,2153,2157,2164,2172,2173,2176,2177,2178,2179,2181,2183,2185,2186,2187,2188,2189,2191,2194,2197,2198,2200,2202,2204,2205,2206,2207,2208,2209,2211,2212,2213,2214,2215,2216,2217,2219,2220,2221,2222,2224,2227,2228,2229],"n":[3,3,2,2,4,3,1,5,5,2,2,4,3,1,2,1,2,1,5,2,2,2,4,1,4,3,1,2,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,2,1,2,1,1,4,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,2,3,1,3,1,1,2,3,2,2,1,1,4,1,2,3,8,3,3,2,1,2,1,1]},"count":255,"min":-970176.0,"max":994880.0,"sum":-62528.0,"avg":281856.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0804.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0804.json new file mode 100644 index 0000000000000..e1f9c2e56965b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0804.json @@ -0,0 +1 @@ +{"log":{"":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0805.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0805.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0805.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0806.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0806.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0806.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0807.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0807.json new file mode 100644 index 0000000000000..051e66e941132 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0807.json @@ -0,0 +1 @@ +{"log":{"y/":[-360384.0,null],"›%†":"q"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0808.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0808.json new file mode 100644 index 0000000000000..9699d38bfb1c7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0808.json @@ -0,0 +1 @@ +{"metric":{"name":"d","tags":{"f":"y","i":"e"},"timestamp":"1969-12-31T22:53:58.000026760Z","interval_ms":4061896500,"kind":"absolute","counter":{"value":-9651.3344}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0809.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0809.json new file mode 100644 index 0000000000000..257393d9f5ebd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0809.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"h","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-735168.0,"value":-8960.0},{"quantile":266944.0,"value":-378176.0},{"quantile":113728.0,"value":877504.0},{"quantile":436928.0,"value":319808.0},{"quantile":-888832.0,"value":-117632.0},{"quantile":-422592.0,"value":-470528.0},{"quantile":-826112.0,"value":-679040.0},{"quantile":-364160.0,"value":645952.0},{"quantile":912064.0,"value":945856.0},{"quantile":839232.0,"value":-481088.0},{"quantile":487936.0,"value":-858368.0},{"quantile":768704.0,"value":175296.0},{"quantile":-159872.0,"value":740160.0},{"quantile":318784.0,"value":-585600.0},{"quantile":-316224.0,"value":541120.0},{"quantile":778560.0,"value":-194688.0},{"quantile":-772480.0,"value":-512512.0},{"quantile":-834560.0,"value":-381760.0},{"quantile":-686144.0,"value":866944.0},{"quantile":-87872.0,"value":948928.0},{"quantile":-871808.0,"value":-77312.0},{"quantile":-357760.0,"value":796736.0},{"quantile":-782976.0,"value":-387712.0},{"quantile":203392.0,"value":897600.0},{"quantile":858368.0,"value":534592.0},{"quantile":-4672.0,"value":615488.0},{"quantile":203200.0,"value":-308928.0},{"quantile":-409728.0,"value":858368.0},{"quantile":109760.0,"value":-427328.0},{"quantile":-21.6126,"value":818688.0},{"quantile":-390720.0,"value":-924608.0},{"quantile":-853376.0,"value":113856.0},{"quantile":-661632.0,"value":461824.0},{"quantile":797440.0,"value":106496.0},{"quantile":716864.0,"value":-703872.0},{"quantile":609984.0,"value":-650368.0},{"quantile":182592.0,"value":222592.0},{"quantile":-293760.0,"value":-493184.0},{"quantile":-432832.0,"value":352832.0},{"quantile":931008.0,"value":284160.0},{"quantile":-124480.0,"value":-901824.0},{"quantile":673920.0,"value":53056.0},{"quantile":-983168.0,"value":-738816.0},{"quantile":-652928.0,"value":-915840.0},{"quantile":-841472.0,"value":-75520.0},{"quantile":90240.0,"value":-175808.0},{"quantile":759360.0,"value":312576.0},{"quantile":132800.0,"value":-135872.0},{"quantile":874816.0,"value":17088.0},{"quantile":206784.0,"value":654464.0},{"quantile":135552.0,"value":259776.0},{"quantile":445440.0,"value":172864.0},{"quantile":57984.0,"value":705280.0714},{"quantile":905984.0,"value":-104256.0},{"quantile":-72256.0,"value":-390592.0},{"quantile":809984.0,"value":-778304.0},{"quantile":489280.0,"value":-725312.0},{"quantile":-584256.0,"value":-843328.0},{"quantile":643264.0,"value":298048.0},{"quantile":210496.0,"value":818112.0},{"quantile":-107456.0,"value":-858368.0},{"quantile":-833344.0,"value":-393152.0},{"quantile":-165760.0,"value":-502976.0},{"quantile":-675328.0,"value":220736.0},{"quantile":-259456.0,"value":967744.0},{"quantile":-1023.6701,"value":-247360.0},{"quantile":382144.0,"value":-627776.0},{"quantile":-445184.0,"value":381440.0},{"quantile":-366464.0,"value":-550848.0}],"count":12834278610623747035,"sum":-118592.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0810.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0810.json new file mode 100644 index 0000000000000..16aca54513fb9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0810.json @@ -0,0 +1 @@ +{"metric":{"name":"o","interval_ms":3071067868,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2225,-2222,-2221,-2220,-2219,-2218,-2216,-2215,-2214,-2213,-2212,-2211,-2209,-2208,-2207,-2202,-2199,-2198,-2194,-2193,-2191,-2190,-2189,-2188,-2186,-2185,-2184,-2181,-2178,-2174,-2168,-2167,-2166,-2164,-2161,-2157,-2150,-2148,-2142,-2134,-2131,-2130,-2128,-2123,-2120,-2114,-2106,-2104,-2097,-2085,-2084,-2078,-2076,-2075,-2063,-2034,-2026,-2009,-2005,-1942,-1937,-1881,-1582,-1483,1516,1886,2012,2017,2049,2052,2058,2079,2084,2087,2096,2106,2109,2113,2114,2118,2119,2120,2124,2129,2132,2133,2136,2138,2139,2140,2151,2153,2156,2159,2160,2161,2165,2167,2168,2171,2172,2173,2174,2175,2176,2177,2180,2183,2184,2185,2190,2191,2193,2195,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2211,2212,2213,2214,2216,2217,2218,2219,2220,2221,2222,2223,2225,2226,2227,2228,2229],"n":[1,2,2,3,1,1,1,8,4,2,1,5,2,2,1,2,1,1,1,2,2,1,2,2,1,4,2,2,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,4,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,1,3,1,1,1,1,2,1,2,2,1,2,1,1,2,1,1,2,2,2,1,1,1,1,1,1,1,1,2,1,2,1,2,3,1,1,4,2,2,6,2,3,2,3,1,1,1,2,1]},"count":220,"min":-997888.0,"max":995968.0,"sum":-278400.0,"avg":37549.2138}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0811.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0811.json new file mode 100644 index 0000000000000..44856bc5089b4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0811.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"z","kind":"absolute","counter":{"value":-544832.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0812.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0812.json new file mode 100644 index 0000000000000..85b5fe7e5e059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0812.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"x","timestamp":"1970-01-01T03:19:06.000011119Z","interval_ms":1499243524,"kind":"incremental","gauge":{"value":544128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0813.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0813.json new file mode 100644 index 0000000000000..4ae3ea4c74ddd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0813.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"d","kind":"incremental","counter":{"value":-768384.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0814.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0814.json new file mode 100644 index 0000000000000..287316ee610ad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0814.json @@ -0,0 +1 @@ +{"log":{"":-587072.0,"|\\―":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0815.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0815.json new file mode 100644 index 0000000000000..11b8a9c8a5acb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0815.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"m","tags":{"m":"y","o":"j","v":"c"},"kind":"absolute","counter":{"value":-349824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0816.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0816.json new file mode 100644 index 0000000000000..51aa9a74035ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0816.json @@ -0,0 +1 @@ +{"log":{"":{"":"Œ5𣷒","“":{"O":-1543786587616040489}},"U\t":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0817.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0817.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0817.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0818.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0818.json new file mode 100644 index 0000000000000..ba5998aefc5ca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0818.json @@ -0,0 +1 @@ +{"log":{"":null,"]󿿽\u0017":[564416.0],"|":-9154581250611989777}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0819.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0819.json new file mode 100644 index 0000000000000..2dc148169bd08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0819.json @@ -0,0 +1 @@ +{"log":{"":{},"\t":false,"4딐⁃":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0820.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0820.json new file mode 100644 index 0000000000000..6c69a574748a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0820.json @@ -0,0 +1 @@ +{"log":{";媧,":-274561.625,"d@":null,"š%":2405218959254809472}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0821.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0821.json new file mode 100644 index 0000000000000..4a65261109409 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0821.json @@ -0,0 +1 @@ +{"log":{"\u001c¥'":{"":89536.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0822.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0822.json new file mode 100644 index 0000000000000..59a351a8b378d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0822.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"b","kind":"absolute","gauge":{"value":912896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0823.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0823.json new file mode 100644 index 0000000000000..084ca7314bc53 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0823.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"b":"i"},"timestamp":"1970-01-01T04:35:16.000003282Z","interval_ms":3522450246,"kind":"incremental","counter":{"value":159360.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0824.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0824.json new file mode 100644 index 0000000000000..b573bacbbbf04 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0824.json @@ -0,0 +1 @@ +{"log":{"”>":3368909672165264229}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0825.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0825.json new file mode 100644 index 0000000000000..20f6a9989bb30 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0825.json @@ -0,0 +1 @@ +{"log":{"(":491968.0,"=":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0826.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0826.json new file mode 100644 index 0000000000000..40a9c540afa47 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0826.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"t","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":555840.0,"avg":-479552.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0827.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0827.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0827.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0828.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0828.json new file mode 100644 index 0000000000000..67d6d58b2d694 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0828.json @@ -0,0 +1 @@ +{"log":{"":[],"‘":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0829.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0829.json new file mode 100644 index 0000000000000..c05642593add7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0829.json @@ -0,0 +1 @@ +{"metric":{"name":"f","interval_ms":395534805,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2221,-2219,-2217,-2216,-2214,-2213,-2212,-2211,-2209,-2208,-2207,-2206,-2205,-2204,-2203,-2201,-2200,-2199,-2198,-2196,-2195,-2193,-2192,-2190,-2189,-2184,-2183,-2182,-2181,-2178,-2176,-2174,-2170,-2169,-2166,-2165,-2164,-2163,-2159,-2157,-2154,-2151,-2150,-2148,-2147,-2142,-2141,-2139,-2134,-2132,-2131,-2130,-2125,-2121,-2120,-2116,-2115,-2110,-2106,-2104,-2103,-2100,-2099,-2096,-2081,-2078,-2068,-2065,-2051,-2045,-2035,-2027,-2003,-1996,-1995,-1966,-1918,-1583,1532,1599,1677,1982,2009,2010,2013,2015,2027,2028,2030,2035,2042,2054,2070,2078,2081,2092,2094,2114,2117,2120,2121,2124,2127,2128,2139,2149,2150,2154,2155,2156,2159,2161,2166,2167,2168,2170,2172,2173,2174,2175,2176,2177,2178,2179,2181,2183,2185,2186,2187,2188,2189,2192,2193,2194,2195,2196,2197,2199,2200,2201,2202,2203,2205,2208,2209,2210,2211,2212,2215,2217,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229],"n":[1,2,1,1,4,1,1,1,1,3,2,3,3,2,1,1,1,4,1,1,1,1,2,2,2,3,1,2,3,2,1,1,1,2,2,1,1,2,1,2,1,1,2,1,3,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,2,1,1,2,1,1,2,1,1,1,3,1,1,1,1,1,1,5,2,1,1,2,1,1,2,1,2,3,1,2,2,4,2,1,1,7,1,1,1,1,3,2,3,1,1,3]},"count":235,"min":-980352.0,"max":998208.0,"sum":895296.0,"avg":-738112.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0830.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0830.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0830.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0831.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0831.json new file mode 100644 index 0000000000000..9cc22e8536036 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0831.json @@ -0,0 +1 @@ +{"log":{"#9¨":null,"减/(":5126615906142933673}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0832.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0832.json new file mode 100644 index 0000000000000..35af10297b138 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0832.json @@ -0,0 +1 @@ +{"log":{"":648896.0,"&/\f":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0833.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0833.json new file mode 100644 index 0000000000000..c6c2c2cd4ce74 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0833.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"b":"z","q":"c"},"interval_ms":363919783,"kind":"absolute","gauge":{"value":-140544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0834.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0834.json new file mode 100644 index 0000000000000..df6c564e7e10a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0834.json @@ -0,0 +1 @@ +{"log":{"†":false,"“2„":[{"":" \u001d_","#⁉4":-138112.0,"򡉻󄪍":2384364502920624185},"",true]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0835.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0835.json new file mode 100644 index 0000000000000..645d00f8b28a1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0835.json @@ -0,0 +1 @@ +{"metric":{"name":"r","tags":{"i":"v","o":"s"},"timestamp":"1969-12-31T17:23:12.000002284Z","kind":"absolute","counter":{"value":-804992.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0836.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0836.json new file mode 100644 index 0000000000000..a68acceaad8ec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0836.json @@ -0,0 +1 @@ +{"log":{"!":-8415228663952055981}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0837.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0837.json new file mode 100644 index 0000000000000..8dea6e292f08c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0837.json @@ -0,0 +1 @@ +{"log":{"牤":"700"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0838.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0838.json new file mode 100644 index 0000000000000..a95789666cdaf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0838.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"h","tags":{"f":"l","i":"t","o":"f"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2225,-2224,-2223,-2220,-2219,-2217,-2214,-2213,-2212,-2211,-2208,-2206,-2201,-2200,-2198,-2196,-2195,-2194,-2193,-2189,-2185,-2183,-2182,-2181,-2174,-2165,-2161,-2154,-2151,-2149,-2148,-2138,-2135,-2132,-2118,-2116,-2114,-2113,-2094,-2092,-2083,-2056,-2055,-2054,-2041,-2040,-2016,-1976,-1580,1469,1823,1843,1946,1985,2012,2044,2065,2067,2075,2078,2093,2094,2097,2098,2104,2108,2114,2128,2129,2132,2135,2137,2138,2141,2143,2146,2147,2149,2151,2152,2153,2154,2155,2160,2162,2163,2164,2166,2169,2170,2171,2172,2177,2181,2184,2185,2187,2189,2190,2191,2192,2195,2196,2197,2203,2205,2206,2209,2210,2212,2213,2214,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2227,2229],"n":[2,2,1,4,3,2,1,5,3,2,1,1,1,1,1,1,3,1,1,2,2,3,1,1,1,2,1,3,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,2,1,1,2,2,1,2,1,2,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,5,2,3,1,1,1,1,2,2]},"count":174,"min":-999488.0,"max":997184.0,"sum":-702784.0,"avg":-457792.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0839.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0839.json new file mode 100644 index 0000000000000..81911326e152e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0839.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"y","tags":{"k":"z","o":"s"},"timestamp":"1970-01-01T06:12:19.000028037Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":848832.0,"count":5128791686442241707},{"upper_limit":-158848.0,"count":5380126688076865477},{"upper_limit":272512.0,"count":8901425703722313018},{"upper_limit":903296.0,"count":10741852411194871190},{"upper_limit":825216.0,"count":18128037380871410234},{"upper_limit":-318272.0,"count":17740823302589203182},{"upper_limit":-464064.0,"count":7560916658115965170},{"upper_limit":-673024.0,"count":11603554831903160718},{"upper_limit":754880.0,"count":16099095650885006819},{"upper_limit":197952.0,"count":2327457165022533105},{"upper_limit":-550912.0,"count":4430308405870346193},{"upper_limit":921984.0,"count":10830454822459528390},{"upper_limit":-725248.0,"count":3581086786420877658},{"upper_limit":-564544.0,"count":0},{"upper_limit":-92096.0,"count":5732455891195367272},{"upper_limit":-141952.0,"count":10060182056563182356},{"upper_limit":612352.0,"count":9926729537221820971},{"upper_limit":-844608.0,"count":16688477673714138039},{"upper_limit":920448.0,"count":1217472323824395510},{"upper_limit":-161494.2469,"count":12397987022147139216},{"upper_limit":-233408.0,"count":6435829368022806812},{"upper_limit":656384.0,"count":6415010185410361442},{"upper_limit":537984.0,"count":18446744073709551615},{"upper_limit":-495040.0,"count":1},{"upper_limit":658432.0,"count":1734228231279278251},{"upper_limit":-544576.0,"count":1968081795489489421},{"upper_limit":212096.0,"count":10002552429021450246},{"upper_limit":-528512.0,"count":712927933249723337},{"upper_limit":360640.0,"count":11928423451814400902},{"upper_limit":-823040.0,"count":7183084715626014575},{"upper_limit":-424768.0,"count":11863253567295319699},{"upper_limit":-794880.0,"count":8960605854580885158},{"upper_limit":-306688.0,"count":6029458654697288545},{"upper_limit":-22080.0,"count":7504733206702016690},{"upper_limit":-199424.0,"count":15968408188569383806},{"upper_limit":207616.0,"count":3991410045273130914},{"upper_limit":-363712.0,"count":2738618153157880539},{"upper_limit":-871616.0,"count":2710396886287139566},{"upper_limit":812544.0,"count":16206079258590900444},{"upper_limit":-565504.0,"count":9012937813277156098},{"upper_limit":-121344.0,"count":13987912650138318720},{"upper_limit":-447808.0,"count":7441968460428990762},{"upper_limit":748416.0,"count":11355036198367951855},{"upper_limit":172992.0,"count":715437496762157259},{"upper_limit":-825600.0,"count":5565634706246019468},{"upper_limit":-168384.0,"count":7706368155587022718},{"upper_limit":-841536.0,"count":11799758476623701610},{"upper_limit":-148352.0,"count":12774111285451986931},{"upper_limit":717824.0,"count":9636999796141050227},{"upper_limit":-594688.0,"count":13557659892709754030},{"upper_limit":-247168.0,"count":3857636906798229700},{"upper_limit":982784.0,"count":0},{"upper_limit":919936.0,"count":13356293968633838771},{"upper_limit":812352.0,"count":2983816519650039995},{"upper_limit":-758720.0,"count":0},{"upper_limit":-131904.0,"count":10531523485926628442},{"upper_limit":-939648.0,"count":15512018428530445119},{"upper_limit":-429568.0,"count":10115091909750134563},{"upper_limit":278016.0,"count":410159660888384653},{"upper_limit":92992.0,"count":16496540479639292990},{"upper_limit":-208448.0,"count":7951687446005228286},{"upper_limit":-158848.0,"count":2951174456956758601},{"upper_limit":620928.0,"count":14415923802135849989},{"upper_limit":-114176.0,"count":15352244865395160503},{"upper_limit":-180416.0,"count":7911018524409064184},{"upper_limit":768128.0,"count":16518824762585555013},{"upper_limit":946240.0,"count":15011267891067007052},{"upper_limit":446080.0,"count":4027608252000314726},{"upper_limit":309855.2545,"count":6424409156772595899}],"count":15415055408392174473,"sum":-940736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0840.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0840.json new file mode 100644 index 0000000000000..b112971ca56f7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0840.json @@ -0,0 +1 @@ +{"log":{"N":[],"Q":true},"\u0012B":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0848.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0848.json new file mode 100644 index 0000000000000..a25dfcaa42f16 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0848.json @@ -0,0 +1 @@ +{"log":{"":[null,"篙",146752.0],"0]$":-995648.0,"<]ž":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0849.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0849.json new file mode 100644 index 0000000000000..495181be1b226 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0849.json @@ -0,0 +1 @@ +{"metric":{"name":"_","interval_ms":1,"kind":"absolute","counter":{"value":-510720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0850.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0850.json new file mode 100644 index 0000000000000..afbe3826e0e7b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0850.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1970-01-01T04:03:37.000018411Z","interval_ms":252911187,"kind":"incremental","gauge":{"value":-694656.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0851.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0851.json new file mode 100644 index 0000000000000..366e631e1e4aa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0851.json @@ -0,0 +1 @@ +{"log":{"":[592256.0],"]":[],"}$򳵣":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0852.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0852.json new file mode 100644 index 0000000000000..52e4157acbb58 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0852.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"i":"y","y":"r"},"timestamp":"1970-01-01T08:22:00.000020836Z","kind":"incremental","distribution":{"samples":[{"value":425032.1938,"rate":2431439686},{"value":-943552.0,"rate":2617983386},{"value":-201344.0,"rate":1507403734},{"value":439296.0,"rate":4294967295},{"value":-130112.0,"rate":1329737198},{"value":652416.0,"rate":4142945765},{"value":-993408.0,"rate":217936549},{"value":68288.0,"rate":3202772588},{"value":187008.0,"rate":1575007993},{"value":-680576.0,"rate":1366718446},{"value":230784.0,"rate":3509571594},{"value":738176.0,"rate":1630533113},{"value":295104.0,"rate":1263786628},{"value":-24896.0,"rate":3607028908},{"value":879360.0,"rate":3728311427},{"value":740.5014,"rate":3639706928},{"value":910976.0,"rate":3846298817},{"value":26.6964,"rate":53381053},{"value":-933504.0,"rate":1819541751},{"value":656832.0,"rate":462236881},{"value":858368.0,"rate":1981494798},{"value":-466560.0,"rate":0},{"value":-516352.0,"rate":2191995241},{"value":-908992.0,"rate":619269611},{"value":26240.0,"rate":582856405},{"value":783168.0,"rate":0},{"value":-468224.0,"rate":1028304106},{"value":89536.0,"rate":311980779},{"value":-470656.0,"rate":1713366925},{"value":581376.0,"rate":3142094893},{"value":327552.0,"rate":1143783150},{"value":-387840.0,"rate":2917511230},{"value":-590528.0,"rate":2158772609},{"value":121280.0,"rate":2496840252},{"value":337856.0,"rate":1399138439},{"value":-268544.0,"rate":2973827472},{"value":-178048.0,"rate":3027529271},{"value":182592.0,"rate":898273772},{"value":123.2234,"rate":3868937289},{"value":-551488.0,"rate":1654699382},{"value":977792.0,"rate":4294967295},{"value":117696.0,"rate":1559542889},{"value":866688.0,"rate":3393623882},{"value":714880.0,"rate":2728386601},{"value":-401728.0,"rate":3646648614},{"value":482496.0,"rate":236603745},{"value":-576576.0,"rate":4294967295},{"value":684544.0,"rate":1806047560},{"value":-31093.2102,"rate":546666614},{"value":-216256.0,"rate":125194887},{"value":-235648.0,"rate":797009282},{"value":-280448.0,"rate":1884069213},{"value":641664.0,"rate":2768840722},{"value":-154624.0,"rate":2881775096},{"value":-533888.0,"rate":296694448},{"value":-858368.0,"rate":461413593},{"value":206912.0,"rate":321011624},{"value":659.6808,"rate":2651871069},{"value":468160.0,"rate":1211534192},{"value":-190016.0,"rate":0},{"value":667776.0,"rate":4144241654},{"value":-858368.0,"rate":3330455947},{"value":-505152.0,"rate":2890439950},{"value":-496448.0,"rate":222951656},{"value":18112.0,"rate":577994285},{"value":338752.0,"rate":2005188166},{"value":891959.0277,"rate":1},{"value":-289536.0,"rate":4147114350},{"value":127552.0,"rate":736463674},{"value":476224.0,"rate":1373517024},{"value":51392.0,"rate":274838959},{"value":590144.0,"rate":452609001},{"value":-396928.0,"rate":623639224},{"value":-134592.0,"rate":1617559823},{"value":-462272.0,"rate":1},{"value":651712.0,"rate":0},{"value":-45120.0,"rate":1488540072},{"value":-216768.0,"rate":118781356},{"value":-279872.0,"rate":2158910082},{"value":633024.0,"rate":4294967295},{"value":-30656.0,"rate":1415574274},{"value":968384.0,"rate":214257498},{"value":549312.0,"rate":1307997190},{"value":886784.0,"rate":0},{"value":-389120.0,"rate":2869684702},{"value":-27840.0,"rate":3260697932},{"value":-888768.0,"rate":752492112},{"value":767296.0,"rate":804922795},{"value":-404032.0,"rate":3926459954},{"value":-732672.0,"rate":960428085}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0853.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0853.json new file mode 100644 index 0000000000000..b46a796d14dc4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0853.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"b","tags":{"a":"a","o":"s","t":"e"},"timestamp":"1970-01-01T07:10:33.000008376Z","kind":"absolute","distribution":{"samples":[{"value":447744.0,"rate":3654925959},{"value":655616.0,"rate":2425554353},{"value":394560.0,"rate":100981433},{"value":-947264.0,"rate":4027109895},{"value":422016.0,"rate":4242796088},{"value":-781504.0,"rate":2173645910},{"value":184640.0,"rate":852265902},{"value":334720.0,"rate":1828737300},{"value":141376.0,"rate":3983635776},{"value":678400.0,"rate":3166648789},{"value":804608.0,"rate":803453056},{"value":608384.0,"rate":1171808356},{"value":-117120.0,"rate":3071591885},{"value":379072.0,"rate":649922122},{"value":317696.0,"rate":1679339739},{"value":-513728.0,"rate":3078263338},{"value":-288320.0,"rate":4286895202},{"value":416384.0,"rate":3064771010},{"value":74496.0,"rate":4290107046},{"value":416371.9489,"rate":1997710817},{"value":-403776.0,"rate":2970655989},{"value":634048.0,"rate":2325799878},{"value":-769344.0,"rate":990541319},{"value":910208.0,"rate":3234506911},{"value":-55808.0,"rate":0},{"value":-817152.0,"rate":2265257909},{"value":-613632.0,"rate":1462964360},{"value":-966912.0,"rate":4014376541},{"value":-225280.0,"rate":3956776717},{"value":962880.0,"rate":2021578900},{"value":523712.0,"rate":0},{"value":-865920.0,"rate":319406736},{"value":257472.0,"rate":3864649462},{"value":979648.0,"rate":2300316902},{"value":-151424.0,"rate":4108785822},{"value":638592.0,"rate":3962462193},{"value":29696.0,"rate":2830943908},{"value":55040.0,"rate":1},{"value":858368.0,"rate":961842621},{"value":747456.0,"rate":2549472577},{"value":-323584.0,"rate":360180865},{"value":235008.0,"rate":685155041},{"value":-181760.0,"rate":1880702857},{"value":74368.0,"rate":3313485337}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0854.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0854.json new file mode 100644 index 0000000000000..83f9235388188 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0854.json @@ -0,0 +1 @@ +{"log":{"\u0018":{}," ᕥ":"","~𝅳":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0855.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0855.json new file mode 100644 index 0000000000000..cbdbba6bb087c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0855.json @@ -0,0 +1 @@ +{"log":{"\u000e":false,"Ÿ<⁌":-189056.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0856.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0856.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0856.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0857.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0857.json new file mode 100644 index 0000000000000..9a8e5a5ad7864 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0857.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1970-01-01T08:29:31.000011580Z","interval_ms":1,"kind":"absolute","counter":{"value":-487324.2109}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0858.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0858.json new file mode 100644 index 0000000000000..4256108b503d1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0858.json @@ -0,0 +1 @@ +{"metric":{"name":"w","interval_ms":2214245197,"kind":"incremental","distribution":{"samples":[{"value":699456.0,"rate":3780527738},{"value":-779648.0,"rate":156257011},{"value":-826432.0,"rate":1024875444},{"value":-583360.0,"rate":1},{"value":10176.0,"rate":836716031},{"value":-325696.0,"rate":1544919748},{"value":-859968.0,"rate":3083960184},{"value":-356928.0,"rate":3276403462},{"value":13632.0,"rate":2003265949},{"value":29632.0,"rate":1569903170},{"value":157248.0,"rate":3788362662},{"value":-858368.0,"rate":3654857968},{"value":-869120.0,"rate":2137817027},{"value":-989760.0,"rate":1},{"value":-505472.0,"rate":3301145834},{"value":981952.0,"rate":1493253487},{"value":-332032.0,"rate":44104356},{"value":929216.0,"rate":94534460},{"value":-709056.0,"rate":605417925},{"value":-858368.0,"rate":3319720889},{"value":-236288.0,"rate":3482217701},{"value":873856.0,"rate":1975845671},{"value":753856.0,"rate":3554737875},{"value":-23680.0,"rate":930981824},{"value":352000.0,"rate":1392090648},{"value":-554048.0,"rate":3435620207},{"value":-630080.0,"rate":2138777108},{"value":-703808.0,"rate":1068013929},{"value":-43456.0,"rate":3560509248},{"value":-469952.0,"rate":196388992},{"value":435008.0,"rate":246520368},{"value":308992.0,"rate":2568980095},{"value":417216.0,"rate":1962370181},{"value":-525376.0,"rate":3375362099},{"value":-425408.0,"rate":4139963951},{"value":-309120.0,"rate":3300841608},{"value":107584.0,"rate":3230975996},{"value":-119701.4398,"rate":920998817},{"value":-241984.0,"rate":2997882035},{"value":147802.4688,"rate":3143919350},{"value":-452672.0,"rate":1},{"value":311936.0,"rate":517259579},{"value":121536.0,"rate":1734541969},{"value":-110720.0,"rate":1830497933},{"value":212672.0,"rate":3726381867},{"value":906240.0,"rate":1190302789},{"value":-976576.0,"rate":1},{"value":97920.0,"rate":4294967295},{"value":-722432.0,"rate":374739780},{"value":-94912.0,"rate":2697351686},{"value":-433792.0,"rate":3104944425},{"value":-97152.0,"rate":1213770214},{"value":-341376.0,"rate":1333118217},{"value":870144.0,"rate":844526536},{"value":557120.0,"rate":1467915037},{"value":-858368.0,"rate":3335772979},{"value":-424960.0,"rate":3479386649},{"value":684928.0,"rate":4196270964},{"value":393088.0,"rate":4222528215},{"value":-277696.0,"rate":2539236290},{"value":-175680.0,"rate":4122635113},{"value":-627904.0,"rate":1337725784},{"value":130816.0,"rate":2420705226},{"value":-698944.0,"rate":2773695826},{"value":-159424.0,"rate":997060929},{"value":-186240.0,"rate":2523980155},{"value":878528.0,"rate":3880270411},{"value":-514112.0,"rate":2031837633},{"value":469248.0,"rate":2666914240},{"value":116800.0,"rate":554245130},{"value":504448.0,"rate":2872321190},{"value":661632.0,"rate":2568232449},{"value":447104.0,"rate":3769336805},{"value":-531840.0,"rate":412144784},{"value":-467456.0,"rate":1},{"value":530944.0,"rate":1979034186},{"value":987648.0,"rate":35309827},{"value":616736.0,"rate":3849744937},{"value":432512.0,"rate":3725518168},{"value":-855552.0,"rate":655810673},{"value":364032.0,"rate":2213243709},{"value":-53504.0,"rate":4269166055},{"value":379392.0,"rate":1869911418},{"value":354432.0,"rate":1578108907},{"value":814720.0,"rate":3915837851},{"value":-729344.0,"rate":2487916304}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0859.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0859.json new file mode 100644 index 0000000000000..e2233eb91fc2b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0859.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"y","tags":{"c":"f"},"interval_ms":3739279120,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2225,-2224,-2223,-2222,-2221,-2219,-2210,-2205,-2204,-2202,-2200,-2192,-2191,-2184,-2183,-2179,-2177,-2163,-2159,-2154,-2145,-2144,-2136,-2133,-2118,-2114,-2113,-2100,-2087,-2069,-2034,-2005,-1951,1560,2000,2029,2035,2043,2059,2082,2084,2088,2089,2092,2103,2145,2148,2150,2158,2163,2173,2180,2188,2189,2201,2208,2210,2211,2214,2215,2216,2217,2219,2222,2226],"n":[1,1,2,1,1,2,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1]},"count":75,"min":-994816.0,"max":954496.0,"sum":-902135.9128,"avg":559360.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0860.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0860.json new file mode 100644 index 0000000000000..89b7c4e7f6e6f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0860.json @@ -0,0 +1 @@ +{"log":{"#Gj":"v*+","⁞k?":"X0","]":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0861.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0861.json new file mode 100644 index 0000000000000..4b5e99e2bb857 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0861.json @@ -0,0 +1 @@ +{"log":{" ؄\u0005":{"":null,"3":null,"h":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0862.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0862.json new file mode 100644 index 0000000000000..bdf77c16ffaa3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0862.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T02:04:17.000027954Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-457472.0,"count":15058373494157602071},{"upper_limit":643136.0,"count":12580091246666865926},{"upper_limit":-459584.0,"count":524351570199836823},{"upper_limit":-202688.0,"count":11597112371714226858},{"upper_limit":-945024.0,"count":1},{"upper_limit":840192.0,"count":385535865072555566},{"upper_limit":-291648.0,"count":5585024521222307019},{"upper_limit":-247488.0,"count":18446744073709551615},{"upper_limit":-782272.0,"count":7135189756990330732},{"upper_limit":-167616.0,"count":17194764543325702497},{"upper_limit":-982912.0,"count":5790207012898579671},{"upper_limit":321408.0,"count":1628202405126995153},{"upper_limit":431808.0,"count":5606931462309741682},{"upper_limit":-279616.0,"count":11452755294626764141},{"upper_limit":-322752.0,"count":10704115314123077265},{"upper_limit":-153408.0,"count":993908261603780820},{"upper_limit":825216.0,"count":9596623562695648750},{"upper_limit":-543296.0,"count":281750886080273685},{"upper_limit":-297536.0,"count":5455719646336407519},{"upper_limit":-327168.0,"count":0},{"upper_limit":433408.0,"count":1},{"upper_limit":306240.0,"count":16549791480938202652},{"upper_limit":-154597.1444,"count":17735480667144171737},{"upper_limit":144640.0,"count":3722677093332050656},{"upper_limit":-792576.0,"count":7433618426120237666},{"upper_limit":252480.0,"count":15020137685626864169},{"upper_limit":242752.0,"count":8959777378049894011},{"upper_limit":-63872.0,"count":7591486167444750564},{"upper_limit":-183296.0,"count":8100038454916148502},{"upper_limit":889024.0,"count":12046364610384668834},{"upper_limit":47872.0,"count":9289678149890324500},{"upper_limit":-367232.0,"count":5122505551133733232},{"upper_limit":61376.0,"count":6347814561525802688},{"upper_limit":445504.0,"count":3120489795310427979},{"upper_limit":935424.0,"count":6980110725406987021},{"upper_limit":-212992.0,"count":9270153167636753845},{"upper_limit":-7552.0,"count":5334487643051571727},{"upper_limit":787904.0,"count":13433106748875026635},{"upper_limit":353152.0,"count":4912679901627162600},{"upper_limit":-351232.0,"count":1}],"count":2872634505174672112,"sum":881856.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0863.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0863.json new file mode 100644 index 0000000000000..45a1807030f3a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0863.json @@ -0,0 +1 @@ +{"log":{"":{"":null,"\"]l":"￷","﮿\u001a":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0864.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0864.json new file mode 100644 index 0000000000000..bcc29b14a18bf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0864.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"_":"a"},"timestamp":"1970-01-01T00:00:00.000021501Z","kind":"incremental","distribution":{"samples":[{"value":359872.0,"rate":3829294278},{"value":858368.0,"rate":2867094527},{"value":673408.0,"rate":569837587},{"value":-434496.0,"rate":3848462504},{"value":944327.4449,"rate":602517375},{"value":-909760.0,"rate":1725928295},{"value":-144512.0,"rate":465191137},{"value":511872.0,"rate":4294967295},{"value":827136.0,"rate":4223901112},{"value":484373.3955,"rate":3935145372},{"value":-986688.0,"rate":0},{"value":12864.0,"rate":2030077516},{"value":-28608.0,"rate":1963543365},{"value":843072.0,"rate":3945061973},{"value":719232.0,"rate":4166834262},{"value":-144256.0,"rate":1474537996},{"value":354944.0,"rate":0},{"value":831104.0,"rate":3614169155},{"value":526976.0,"rate":1159311313},{"value":910528.0,"rate":3800408158},{"value":-233344.0,"rate":595715652},{"value":470720.0,"rate":3838151857},{"value":-342080.0,"rate":3818419917},{"value":-4864.0,"rate":2921178863},{"value":154880.0,"rate":4149111713},{"value":168576.0,"rate":1021519901},{"value":-527616.0,"rate":37255091},{"value":-687744.0,"rate":2914663611},{"value":498048.0,"rate":615646980},{"value":-422592.0,"rate":1},{"value":919744.0,"rate":3239505527},{"value":-318080.0,"rate":1949497694},{"value":-113280.0,"rate":785658502},{"value":-586112.0,"rate":3092556917},{"value":974656.0,"rate":3028955995},{"value":121088.0,"rate":1314062099},{"value":13508.367,"rate":3381101695},{"value":858368.0,"rate":0},{"value":-677504.0,"rate":826002774},{"value":-889280.0,"rate":0},{"value":686144.0,"rate":1494893865},{"value":-717888.0,"rate":3493690933},{"value":-37486.1177,"rate":3868274447},{"value":409408.0,"rate":2619730071},{"value":516096.0,"rate":1},{"value":-784768.0,"rate":2226863411},{"value":836864.0,"rate":1505813568},{"value":955072.0,"rate":244228222},{"value":596928.0,"rate":4049086519},{"value":-653696.0,"rate":1016537080},{"value":220928.0,"rate":2762660614},{"value":262976.0,"rate":2822034091},{"value":859712.0,"rate":1},{"value":-90112.0,"rate":785849539},{"value":-858368.0,"rate":2751723708},{"value":-76736.0,"rate":66355525},{"value":171968.0,"rate":3845999774},{"value":148992.0,"rate":1850834192},{"value":777728.0,"rate":2599599822},{"value":969908.7396,"rate":350193617},{"value":-406976.0,"rate":909638406},{"value":-465858.8908,"rate":2251500893},{"value":480256.0,"rate":241491731},{"value":166720.0,"rate":4262207797},{"value":386176.0,"rate":1310096944},{"value":714240.0,"rate":428302595},{"value":167680.0,"rate":2730534676},{"value":606272.0,"rate":3420897042},{"value":14208.0,"rate":2238434342},{"value":618965.4299,"rate":586894069},{"value":-66022.6875,"rate":3068733086},{"value":-543552.0,"rate":1407913131},{"value":-190.5362,"rate":3809344029},{"value":665472.0,"rate":2947722039},{"value":196096.0,"rate":2497144},{"value":170560.0,"rate":1194997343},{"value":941760.0,"rate":2009400435},{"value":-630592.0,"rate":1500867109},{"value":930944.0,"rate":2249304476},{"value":620352.0,"rate":718301233},{"value":-27776.0,"rate":292231520},{"value":491200.0,"rate":298184649},{"value":795328.0,"rate":3859449534},{"value":710464.0,"rate":3042807638},{"value":-204800.0,"rate":2117055227},{"value":-718464.0,"rate":3202293034},{"value":944128.0,"rate":600718930},{"value":10752.0,"rate":2602821104},{"value":197120.0,"rate":145398524},{"value":642752.0,"rate":2008756360},{"value":231360.0,"rate":2850874793},{"value":-648384.0,"rate":3926051558}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0865.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0865.json new file mode 100644 index 0000000000000..03e8688637c43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0865.json @@ -0,0 +1 @@ +{"log":{"@⁆":"\u000b􏿽U"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0866.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0866.json new file mode 100644 index 0000000000000..a35e4827f9960 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0866.json @@ -0,0 +1 @@ +{"log":{"=":[{"":"J","\t…5":8051459231431977790,"܏€":"Ž⁣ா"}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0867.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0867.json new file mode 100644 index 0000000000000..2148a89f6f629 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0867.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"e","kind":"absolute","counter":{"value":646912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0868.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0868.json new file mode 100644 index 0000000000000..dbdffcc712371 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0868.json @@ -0,0 +1 @@ +{"metric":{"name":"n","timestamp":"1969-12-31T22:02:02.000016615Z","kind":"incremental","counter":{"value":-754624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0869.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0869.json new file mode 100644 index 0000000000000..b08ca49e8daac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0869.json @@ -0,0 +1 @@ +{"log":{"":null,"`¦":[-257472.0,{},-358272.0],"‘":{"¥Y":{" i":{"<":false},"Gª§":false}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0870.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0870.json new file mode 100644 index 0000000000000..72f214ca5ba11 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0870.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"a":"x","n":"j"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":136640.0,"value":-515200.0},{"quantile":866368.0,"value":4096.0},{"quantile":-21824.0,"value":637248.0},{"quantile":-513024.0,"value":-570624.0},{"quantile":663424.0,"value":-116864.0},{"quantile":449152.0,"value":-124800.0},{"quantile":878400.0,"value":792768.0},{"quantile":-574720.0,"value":-484672.0},{"quantile":-33536.0,"value":778624.0},{"quantile":-65536.0,"value":-458176.0},{"quantile":-20672.0,"value":-107456.0},{"quantile":227264.0,"value":-475972.7778},{"quantile":268928.0,"value":-550592.0},{"quantile":858368.0,"value":545536.0},{"quantile":-287680.0,"value":-414720.0},{"quantile":-120832.0,"value":-388224.0},{"quantile":-4.5344,"value":262848.0},{"quantile":251392.0,"value":599232.0},{"quantile":625408.0,"value":-415040.0},{"quantile":-494912.0,"value":877312.0},{"quantile":-44160.0,"value":-437120.0},{"quantile":-644800.0,"value":-713152.0},{"quantile":-683072.0,"value":215808.0},{"quantile":-835200.0,"value":37120.0},{"quantile":659968.0,"value":-851136.0},{"quantile":-944347.4174,"value":357888.0},{"quantile":714176.0,"value":-472000.0},{"quantile":-302784.0,"value":-289344.0},{"quantile":957888.0,"value":-262656.0},{"quantile":989952.0,"value":-39552.0},{"quantile":274304.0,"value":-971160.7007},{"quantile":-398208.0,"value":-790170.4128},{"quantile":203136.0,"value":-279040.0},{"quantile":79365.0167,"value":-108352.0},{"quantile":-465792.0,"value":-927360.0},{"quantile":-609472.0,"value":736448.0},{"quantile":56887.9707,"value":756224.0},{"quantile":-449024.0,"value":737536.0},{"quantile":-870976.0,"value":954368.0},{"quantile":-299904.0,"value":-918464.0},{"quantile":696000.0,"value":-912384.0},{"quantile":897024.0,"value":866688.0},{"quantile":-32896.0,"value":160384.0},{"quantile":18552.3223,"value":-938944.0},{"quantile":208768.0,"value":-47680.0},{"quantile":39616.0,"value":786880.0},{"quantile":-653120.0,"value":852864.0},{"quantile":-943872.0,"value":272128.0},{"quantile":468480.0,"value":-600384.0},{"quantile":562432.0,"value":72960.0},{"quantile":516453.6822,"value":542592.0},{"quantile":510336.0,"value":117376.0},{"quantile":-782784.0,"value":-872384.0},{"quantile":295808.0,"value":-756032.0},{"quantile":597888.0,"value":-427968.0},{"quantile":201024.0,"value":-114944.0},{"quantile":136640.0,"value":-632128.0},{"quantile":894464.0,"value":-158656.0},{"quantile":-13952.0,"value":544448.0},{"quantile":-32.4983,"value":694144.0},{"quantile":-119424.0,"value":-674752.0},{"quantile":435200.0,"value":543872.0},{"quantile":-66752.0,"value":153600.0},{"quantile":154496.0,"value":774400.0},{"quantile":834496.0,"value":-742272.0},{"quantile":-477824.0,"value":-367680.0},{"quantile":163840.0,"value":-400256.0},{"quantile":386944.0,"value":943562.4309},{"quantile":696704.0,"value":-903232.0},{"quantile":-440832.0,"value":-645120.0},{"quantile":951168.0,"value":-58880.0}],"count":8724840050372315205,"sum":-582208.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0871.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0871.json new file mode 100644 index 0000000000000..00833466622cf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0871.json @@ -0,0 +1 @@ +{"metric":{"name":"i","interval_ms":2653204619,"kind":"incremental","gauge":{"value":-993216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0872.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0872.json new file mode 100644 index 0000000000000..66890d013b0f7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0872.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2223,-2222,-2221,-2220,-2219,-2217,-2216,-2215,-2214,-2211,-2209,-2207,-2202,-2201,-2198,-2197,-2195,-2193,-2190,-2189,-2188,-2178,-2174,-2172,-2171,-2169,-2168,-2166,-2161,-2159,-2158,-2155,-2153,-2148,-2146,-2145,-2142,-2135,-2134,-2130,-2124,-2122,-2121,-2120,-2117,-2112,-2111,-2110,-2108,-2101,-2088,-2085,-2083,-2069,-2037,-2034,-2030,-2024,-2011,-1992,-1984,-1979,-1961,-1859,-1799,1410,1781,1847,1942,1979,2027,2035,2046,2055,2072,2077,2089,2090,2098,2099,2112,2113,2114,2116,2120,2123,2129,2133,2136,2139,2141,2142,2144,2147,2148,2149,2150,2153,2156,2158,2159,2161,2162,2163,2166,2172,2176,2178,2181,2182,2187,2191,2193,2194,2196,2197,2200,2201,2207,2209,2210,2212,2215,2216,2217,2219,2221,2224,2226,2227],"n":[1,3,2,2,2,3,2,4,4,6,3,4,2,1,1,2,2,1,1,2,2,2,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,3,2,1,1,3,4,4,2,2]},"count":188,"min":-993600.0,"max":974912.0,"sum":-137664.0,"avg":-795520.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0873.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0873.json new file mode 100644 index 0000000000000..04609dd621174 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0873.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"n":"r"},"interval_ms":856618430,"kind":"absolute","distribution":{"samples":[{"value":-751296.0,"rate":3854390931},{"value":157760.0,"rate":3944484813},{"value":-484864.0,"rate":0},{"value":-971072.0,"rate":1},{"value":-667968.0,"rate":1258985997},{"value":-797824.0,"rate":3204858248},{"value":605056.0,"rate":3383273285},{"value":-180864.0,"rate":3068227780},{"value":-858368.0,"rate":1436199089},{"value":-335744.0,"rate":0},{"value":-799488.0,"rate":3751721838},{"value":543872.0,"rate":3237439784},{"value":231360.0,"rate":3266483441},{"value":-935424.0,"rate":2321419476},{"value":767424.0,"rate":3672682070},{"value":-792512.0,"rate":3921401626},{"value":-788608.0,"rate":4294967295},{"value":858368.0,"rate":575202063},{"value":93248.0,"rate":1555931097},{"value":-902400.0,"rate":2638167269},{"value":985344.0,"rate":2900195647},{"value":-311680.0,"rate":3025137016},{"value":-632640.0,"rate":4174750875},{"value":692096.0,"rate":1413671867},{"value":890112.0,"rate":1576951721},{"value":724864.0,"rate":817016334},{"value":3072.0,"rate":2470940959},{"value":-851392.0,"rate":187379102},{"value":473792.0,"rate":3969026895},{"value":-212416.0,"rate":2539000731},{"value":-759360.0,"rate":1686134617},{"value":346112.0,"rate":3506910549},{"value":-874944.0,"rate":1527564547},{"value":892160.0,"rate":3203423327}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0874.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0874.json new file mode 100644 index 0000000000000..8c6ad1764dddd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0874.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"q","tags":{"m":"p","s":"l"},"interval_ms":1457943560,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":610560.0,"count":1},{"upper_limit":-16896.0,"count":8035539031573594830},{"upper_limit":555648.0,"count":10799641314844497147},{"upper_limit":270528.0,"count":17146011232697904272},{"upper_limit":126578.9017,"count":13308124059182817705},{"upper_limit":-315136.0,"count":2643396801324706149},{"upper_limit":211328.0,"count":6314751503107286981},{"upper_limit":-11034.9904,"count":5127592897637683199},{"upper_limit":-178688.0,"count":1},{"upper_limit":41280.0,"count":16835421937474727383},{"upper_limit":653632.0,"count":1276371781532493440},{"upper_limit":-406656.0,"count":10955392887020335043},{"upper_limit":-155776.0,"count":2727882717830595025},{"upper_limit":228672.0,"count":5247995692793213525},{"upper_limit":594496.0,"count":5551098635890994542},{"upper_limit":-233728.0,"count":10458824328837812792},{"upper_limit":-868352.0,"count":4585419819367160359},{"upper_limit":-438080.0,"count":0},{"upper_limit":-363968.0,"count":1203533932028611172},{"upper_limit":-295744.0,"count":715514838594536753},{"upper_limit":866752.0,"count":443947837541377532},{"upper_limit":-307968.0,"count":16658972675331278544},{"upper_limit":-498176.0,"count":13087516247782910173},{"upper_limit":535232.0,"count":13167609822308941857},{"upper_limit":-724160.0,"count":1382347503888037179},{"upper_limit":529216.0,"count":1436402355880796213},{"upper_limit":-278016.0,"count":1},{"upper_limit":-768448.0,"count":3528471635306692868},{"upper_limit":-941376.0,"count":18443259332206535326},{"upper_limit":656448.0,"count":14215400071791259280},{"upper_limit":858368.0,"count":9339976575591354791},{"upper_limit":774976.0,"count":5592992323927370699},{"upper_limit":-858368.0,"count":10447460339875799018},{"upper_limit":-16832.0,"count":11537569248037223626},{"upper_limit":-498688.0,"count":14166630289985834356},{"upper_limit":-674624.0,"count":15604711922001387668},{"upper_limit":-479424.0,"count":12826634985607941109},{"upper_limit":-803584.0,"count":11537627102459920683},{"upper_limit":909248.0,"count":17359037615419269620},{"upper_limit":239680.0,"count":11230702186057347456},{"upper_limit":-233920.0,"count":9401376945801176286},{"upper_limit":-193344.0,"count":785575058830285912},{"upper_limit":-196224.0,"count":2277585783801777303},{"upper_limit":-599872.0,"count":10572931421555552435},{"upper_limit":-936256.0,"count":18110901891190074995},{"upper_limit":-128640.0,"count":8662836894009300295},{"upper_limit":597504.0,"count":7207269650329478088},{"upper_limit":69312.0,"count":12626502526979864353},{"upper_limit":345088.0,"count":10425363327870625976},{"upper_limit":-833728.0,"count":17588668840488365281},{"upper_limit":-471168.0,"count":0},{"upper_limit":732928.0,"count":632529897411056159},{"upper_limit":-317056.0,"count":14193699700573600320},{"upper_limit":-951808.0,"count":5378570954676804922},{"upper_limit":-383360.0,"count":9932018051308640784},{"upper_limit":361152.0,"count":13030839125642592969},{"upper_limit":-206272.0,"count":7490917577479553588},{"upper_limit":-455040.0,"count":5532563835544837118},{"upper_limit":181376.0,"count":3139715651370154843},{"upper_limit":648896.0,"count":5032689874871250663},{"upper_limit":-132406.3389,"count":8649483556935903943},{"upper_limit":-741376.0,"count":3937433465239530748},{"upper_limit":59392.0,"count":16521526828059731897},{"upper_limit":-886336.0,"count":14062617845698048288},{"upper_limit":-454400.0,"count":7410790030143014762},{"upper_limit":-45696.0,"count":3632045677645788444},{"upper_limit":453248.0,"count":3594677065092056309},{"upper_limit":-193984.0,"count":16202320622722985775},{"upper_limit":-751104.0,"count":8351664870058368764},{"upper_limit":-60.6894,"count":16089394533623041574},{"upper_limit":-401856.0,"count":0},{"upper_limit":168640.0,"count":1121127335416382439},{"upper_limit":193413.4442,"count":14621861244721023271},{"upper_limit":-804160.0,"count":11434683638199396708},{"upper_limit":93440.0,"count":17089285624059948928},{"upper_limit":-477248.0,"count":14162011271483026628},{"upper_limit":-863552.0,"count":3406361317377228851},{"upper_limit":558912.0,"count":3872807708279556198},{"upper_limit":-501632.0,"count":8442575742331048473},{"upper_limit":-677120.0,"count":8226854322524298619},{"upper_limit":-619840.0,"count":3942266978575921439},{"upper_limit":801984.0,"count":11041240727915952934},{"upper_limit":600320.0,"count":6482214348432018037},{"upper_limit":737280.0,"count":8523494278966976522},{"upper_limit":454720.0,"count":11709503820416411115},{"upper_limit":-832384.0,"count":9576370854195674955}],"count":16922247244036826852,"sum":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0875.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0875.json new file mode 100644 index 0000000000000..6850cfb48f151 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0875.json @@ -0,0 +1 @@ +{"log":{"":null,"(¯":-8733057498271022400,"⁠":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0876.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0876.json new file mode 100644 index 0000000000000..9cc0dd89eaebd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0876.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"y","timestamp":"1969-12-31T18:36:00.000008855Z","interval_ms":2005462053,"kind":"incremental","distribution":{"samples":[{"value":395136.0,"rate":3614350563},{"value":503936.0,"rate":512290636},{"value":-638656.0,"rate":1237033056},{"value":836992.0,"rate":2535166332},{"value":-855872.0,"rate":2513606266},{"value":-117696.0,"rate":2067537871},{"value":835712.0,"rate":358331675},{"value":-858368.0,"rate":2305693030},{"value":-6464.0,"rate":674793290},{"value":-668544.0,"rate":2125547043},{"value":-285376.0,"rate":60679462},{"value":682944.0,"rate":1935871504},{"value":989248.0,"rate":3400619683},{"value":-742848.0,"rate":1673046451},{"value":-529152.0,"rate":1064573897},{"value":-504512.0,"rate":2625665436},{"value":-899776.0,"rate":4238556542},{"value":781568.0,"rate":1764547946},{"value":-885056.0,"rate":458090397},{"value":-64960.0,"rate":4133007371},{"value":766784.0,"rate":1553193876},{"value":385152.0,"rate":3555137322},{"value":817664.0,"rate":2404671283},{"value":-283072.0,"rate":1},{"value":904896.0,"rate":2785706667},{"value":686976.0,"rate":1852364737},{"value":-563136.0,"rate":537026462},{"value":-836160.0,"rate":4169183235},{"value":-652800.0,"rate":1762361692},{"value":-858368.0,"rate":4153786982},{"value":149632.0,"rate":1894944652},{"value":-305856.0,"rate":1088810550},{"value":-278336.0,"rate":377276190}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0877.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0877.json new file mode 100644 index 0000000000000..f8fe72eb50959 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0877.json @@ -0,0 +1 @@ +{"log":{"":false,"‘#_":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0878.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0878.json new file mode 100644 index 0000000000000..3075eb41da910 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0878.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"_","interval_ms":1031970307,"kind":"incremental","gauge":{"value":254016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0879.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0879.json new file mode 100644 index 0000000000000..635565276a67a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0879.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"a","tags":{"h":"j","q":"s","y":"b"},"interval_ms":1130834083,"kind":"incremental","distribution":{"samples":[{"value":3.0434,"rate":3002448871},{"value":776896.0,"rate":3766121223},{"value":804800.0,"rate":3121879500},{"value":613632.0,"rate":1},{"value":719296.0,"rate":3812755313},{"value":-883456.0,"rate":2505065513},{"value":-484608.0,"rate":4001414231},{"value":-337728.0,"rate":4082431671},{"value":695168.0,"rate":1585241427},{"value":772224.0,"rate":3033122825},{"value":-394240.0,"rate":4294967295},{"value":925568.0,"rate":713128097},{"value":4544.0,"rate":1670147741},{"value":-464512.0,"rate":2951266859},{"value":-986880.0,"rate":456018587},{"value":810432.0,"rate":2819485952},{"value":352027.5,"rate":1740110883},{"value":-5760.0,"rate":2217525228},{"value":179648.0,"rate":3024013268},{"value":29184.0,"rate":380889522},{"value":702208.0,"rate":1531345762},{"value":-515008.0,"rate":4294967295},{"value":-322368.0,"rate":1990989363},{"value":-406784.0,"rate":2509771733},{"value":154752.0,"rate":4091603749},{"value":370432.0,"rate":691141685},{"value":-163648.0,"rate":130996679},{"value":-554496.0,"rate":837769537},{"value":-883584.0,"rate":463182550},{"value":-706944.0,"rate":1862100400},{"value":610944.0,"rate":225488624},{"value":-609600.0,"rate":1352990775},{"value":-240896.0,"rate":1953545168},{"value":205952.0,"rate":2109261675},{"value":-250624.0,"rate":677634862},{"value":440256.0,"rate":350819404},{"value":407232.0,"rate":2205443379},{"value":-687084.0273,"rate":3109875491},{"value":780224.0,"rate":4224850005},{"value":-676928.0,"rate":4294967295},{"value":-928896.0,"rate":57804991},{"value":-972608.0,"rate":5123085},{"value":-170304.0,"rate":1558205276},{"value":-223744.0,"rate":569486106},{"value":-286784.0,"rate":2369227815},{"value":664832.0,"rate":776004542},{"value":928256.0,"rate":3602231080},{"value":101504.0,"rate":3838463778},{"value":-806080.0,"rate":1770923771},{"value":405632.0,"rate":3156603259},{"value":-42880.0,"rate":2731698699},{"value":357376.0,"rate":1}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0880.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0880.json new file mode 100644 index 0000000000000..4a8129d872d8b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0880.json @@ -0,0 +1 @@ +{"log":{"":null,"G7>":{"yž":89920.0,"࢚":{"P%􏿿":413056.0}},"䗪\u0002":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0881.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0881.json new file mode 100644 index 0000000000000..7385dd68836ea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0881.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1970-01-01T05:16:22.000028332Z","kind":"incremental","gauge":{"value":-526400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0882.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0882.json new file mode 100644 index 0000000000000..50b994c5568fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0882.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1969-12-31T21:09:06.000023255Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-672832.0,"count":12495598752184301692},{"upper_limit":-192896.0,"count":15287569433826872619},{"upper_limit":-390272.0,"count":4655507166968458861},{"upper_limit":379136.0,"count":17806112351002289872}],"count":2841054210119265431,"sum":-259136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0883.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0883.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0883.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0884.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0884.json new file mode 100644 index 0000000000000..5e4714071daa9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0884.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"b","timestamp":"1970-01-01T08:37:52.000011619Z","kind":"absolute","distribution":{"samples":[{"value":951872.0,"rate":1749697889},{"value":-2368.0,"rate":2787186459},{"value":425216.0,"rate":2987676747},{"value":-914240.0,"rate":3783398682},{"value":-840640.0,"rate":698350657},{"value":364800.0,"rate":0},{"value":-238976.0,"rate":16601124},{"value":851520.0,"rate":2308074663}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0885.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0885.json new file mode 100644 index 0000000000000..169fd8dd2c331 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0885.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"v","interval_ms":1,"kind":"incremental","counter":{"value":279424.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0886.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0886.json new file mode 100644 index 0000000000000..7bacdabe61217 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0886.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"x","interval_ms":1,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":23360.0,"value":937920.0},{"quantile":-266880.0,"value":-127552.0},{"quantile":-502592.0,"value":-900288.0},{"quantile":105792.0,"value":-829632.0},{"quantile":-281280.0,"value":713984.0},{"quantile":-840448.0,"value":244480.0},{"quantile":114176.0,"value":-581440.0},{"quantile":-885888.0,"value":-659712.0},{"quantile":-133504.0,"value":399232.0},{"quantile":256832.0,"value":407626.6285},{"quantile":-687040.0,"value":888064.0},{"quantile":248320.0,"value":-48704.0},{"quantile":890944.0,"value":-120832.0},{"quantile":473280.0,"value":222208.0},{"quantile":-536896.0,"value":143552.0},{"quantile":-35584.0,"value":-858368.0},{"quantile":-679360.0,"value":4744.5473},{"quantile":787456.0,"value":-765248.0},{"quantile":588352.0,"value":120320.0},{"quantile":-413440.0,"value":-385664.0},{"quantile":453312.0,"value":-378880.0}],"count":7917941686974464094,"sum":665344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0887.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0887.json new file mode 100644 index 0000000000000..aa4e1a8e6a234 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0887.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"w":"y"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-966239.4539,"value":-587732.6093},{"quantile":755136.0,"value":329088.0},{"quantile":-799808.0,"value":-267712.0},{"quantile":-918272.0,"value":-35840.0},{"quantile":389888.0,"value":-963264.0},{"quantile":-970944.0,"value":-589568.0},{"quantile":261109.3218,"value":320000.0},{"quantile":540160.0,"value":-306048.0},{"quantile":240576.0,"value":334208.0},{"quantile":-311872.0,"value":792576.0},{"quantile":466128.4931,"value":-858368.0},{"quantile":847808.0,"value":-687296.0},{"quantile":286080.0,"value":-544768.0},{"quantile":-158592.0,"value":-18752.0},{"quantile":85864.5723,"value":-95.0748},{"quantile":-858368.0,"value":-499968.0},{"quantile":-839232.0,"value":-922176.0},{"quantile":126464.0,"value":-223360.0},{"quantile":97408.0,"value":-71424.0},{"quantile":340032.0,"value":-965568.0},{"quantile":70720.0,"value":-239872.0},{"quantile":-770304.0,"value":298944.0},{"quantile":-463040.0,"value":-770112.0},{"quantile":-587904.0,"value":150848.0},{"quantile":877632.0,"value":669440.0},{"quantile":-239552.0,"value":-69888.0},{"quantile":-313472.0,"value":745856.0},{"quantile":638976.0,"value":-388608.0},{"quantile":-243776.0,"value":-774144.0},{"quantile":897920.0,"value":-324736.0},{"quantile":-685312.0,"value":956480.0},{"quantile":-491392.0,"value":119360.0},{"quantile":125696.0,"value":742080.0},{"quantile":382400.0,"value":297216.0},{"quantile":128832.0,"value":929472.0},{"quantile":-309696.0,"value":657408.0},{"quantile":-122176.0,"value":277952.0},{"quantile":171584.0,"value":363648.0},{"quantile":720448.0,"value":625856.0},{"quantile":-794432.0,"value":81792.0},{"quantile":577664.0,"value":988544.0},{"quantile":-873216.0,"value":826496.0},{"quantile":-118016.0,"value":493888.0},{"quantile":185600.0,"value":288512.0},{"quantile":-32448.0,"value":986176.0},{"quantile":447232.0,"value":500352.0},{"quantile":108736.0,"value":83968.0},{"quantile":-179776.0,"value":-349120.0},{"quantile":310016.0,"value":77120.0},{"quantile":-540992.0,"value":-264768.0}],"count":0,"sum":72120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0888.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0888.json new file mode 100644 index 0000000000000..2e1f94eacdb44 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0888.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"m":"w","v":"k"},"timestamp":"1969-12-31T17:23:12.000008951Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":577728.0,"value":-199744.0},{"quantile":319616.0,"value":-501632.0},{"quantile":-167168.0,"value":454656.0},{"quantile":-230848.0,"value":803200.0},{"quantile":264320.0,"value":-858368.0}],"count":1410804191887096890,"sum":260096.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0889.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0889.json new file mode 100644 index 0000000000000..5b5aa9b967771 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0889.json @@ -0,0 +1 @@ +{"log":{"| ":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0890.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0890.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0890.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0891.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0891.json new file mode 100644 index 0000000000000..d9969b3afe06e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0891.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"absolute","gauge":{"value":-14400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0892.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0892.json new file mode 100644 index 0000000000000..a21ecd2ba06b2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0892.json @@ -0,0 +1 @@ +{"log":{"#ﮧ":{"\n":{"\"¦ ":-891136.0,"@":-7272283701894127814},"1X":false,"‰":{"":3366898562791366573}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0893.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0893.json new file mode 100644 index 0000000000000..1f7209a2374a4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0893.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"r","tags":{"i":"s","l":"j"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2224,-2222,-2220,-2219,-2217,-2216,-2214,-2213,-2211,-2210,-2206,-2205,-2204,-2202,-2201,-2200,-2198,-2197,-2196,-2195,-2194,-2188,-2183,-2181,-2180,-2179,-2178,-2176,-2175,-2172,-2168,-2163,-2158,-2155,-2147,-2145,-2139,-2138,-2137,-2132,-2122,-2121,-2117,-2112,-2087,-2077,-2049,-2043,-2037,-2007,-1968,-1960,-1890,-1857,-1841,1864,1990,2014,2019,2022,2033,2057,2070,2072,2079,2081,2082,2090,2109,2112,2116,2123,2128,2133,2140,2141,2152,2153,2165,2166,2170,2171,2172,2173,2174,2175,2182,2185,2186,2187,2190,2191,2192,2196,2197,2199,2200,2202,2204,2205,2206,2207,2208,2209,2211,2212,2214,2215,2217,2219,2220,2223,2224,2225,2226,2228],"n":[3,2,1,1,2,1,6,1,1,2,3,1,1,1,1,1,1,1,2,1,1,1,2,3,2,1,1,1,1,1,1,1,1,2,1,2,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,2,1,1,2,2,7,1,1,1,1,1,1]},"count":153,"min":-997696.0,"max":988416.0,"sum":597760.0,"avg":419968.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0894.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0894.json new file mode 100644 index 0000000000000..744591bfbd4fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0894.json @@ -0,0 +1 @@ +{"log":{"W":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0895.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0895.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0895.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0896.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0896.json new file mode 100644 index 0000000000000..09f7af681530e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0896.json @@ -0,0 +1 @@ +{"log":{"":{"{‮”":null},"8> ":"Œ"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0897.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0897.json new file mode 100644 index 0000000000000..72e93054aebfe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0897.json @@ -0,0 +1 @@ +{"metric":{"name":"r","timestamp":"1970-01-01T05:06:44.000011607Z","kind":"incremental","counter":{"value":180224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0898.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0898.json new file mode 100644 index 0000000000000..73807afdd7719 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0898.json @@ -0,0 +1 @@ +{"log":{"\u0004鮲6":[-2990959209426540551,{".":-178432.0,"Ὄ\\†":-4580610797469647279}],"ž\u001b":null,"算-":-692736.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0899.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0899.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0899.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0900.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0900.json new file mode 100644 index 0000000000000..2de753fe7b13a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0900.json @@ -0,0 +1 @@ +{"log":{"۝¬\t":-463552.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0901.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0901.json new file mode 100644 index 0000000000000..e9234f95a56f2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0901.json @@ -0,0 +1 @@ +{"log":{"":{},"됨":-7578196360663582118}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0902.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0902.json new file mode 100644 index 0000000000000..815645059aaf4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0902.json @@ -0,0 +1 @@ +{"log":{"9":false,"~":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0903.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0903.json new file mode 100644 index 0000000000000..1d17476fcbbd2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0903.json @@ -0,0 +1 @@ +{"log":{"^]\u0014":null,"𭩸,":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0904.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0904.json new file mode 100644 index 0000000000000..612a35c938eb7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0904.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"q","tags":{"w":"p"},"timestamp":"1970-01-01T00:00:00.000024575Z","kind":"incremental","distribution":{"samples":[{"value":553344.0,"rate":3572602094},{"value":452288.0,"rate":2132566748},{"value":67712.0,"rate":3350560297},{"value":903616.0,"rate":435914397},{"value":-893056.0,"rate":234863846},{"value":-558144.0,"rate":2063607212},{"value":-64128.0,"rate":2301725114}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0905.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0905.json new file mode 100644 index 0000000000000..ea4e97a681e9a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0905.json @@ -0,0 +1 @@ +{"log":{"™":{"":false,"3":"ऌ￾"," \u0019":null},"򥇇y":-593536.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0906.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0906.json new file mode 100644 index 0000000000000..2f4d166358ea9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0906.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"z","timestamp":"1970-01-01T00:36:24.000004688Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":104256.0,"value":-568960.0},{"quantile":-345472.0,"value":32000.0},{"quantile":448128.0,"value":-457280.0},{"quantile":-366656.0,"value":-760320.0},{"quantile":283200.0,"value":2289.704},{"quantile":-154944.0,"value":103680.0},{"quantile":403328.0,"value":-314688.0},{"quantile":785216.0,"value":358656.0},{"quantile":-212416.0,"value":-875136.0},{"quantile":-945536.0,"value":457664.0},{"quantile":1920.0,"value":858624.0},{"quantile":-37740.9445,"value":-879872.0},{"quantile":232286.1828,"value":-85120.0},{"quantile":125376.0,"value":-562624.0},{"quantile":-167168.0,"value":282112.0},{"quantile":323264.0,"value":512448.0},{"quantile":251968.0,"value":-80512.0},{"quantile":765184.0,"value":98048.0},{"quantile":522880.0,"value":333184.0},{"quantile":481344.0,"value":-926784.0},{"quantile":-693440.0,"value":827840.0},{"quantile":-428800.0,"value":-635328.0},{"quantile":654272.0,"value":336448.0},{"quantile":-870656.0,"value":2283.2439},{"quantile":-310656.0,"value":-292224.0},{"quantile":996224.0,"value":230144.0},{"quantile":-858368.0,"value":-264896.0},{"quantile":-211520.0,"value":52544.0},{"quantile":-819328.0,"value":-205632.0},{"quantile":-569664.0,"value":-621504.0},{"quantile":906752.0,"value":341312.0},{"quantile":-748608.0,"value":-858368.0},{"quantile":-763520.0,"value":-566016.0},{"quantile":777728.0,"value":-842176.0},{"quantile":-78080.0,"value":688320.0},{"quantile":-240640.0,"value":327680.0},{"quantile":587840.0,"value":-544704.0},{"quantile":642560.0,"value":487936.0},{"quantile":-697408.0,"value":-939264.0},{"quantile":887808.0,"value":-132864.0},{"quantile":306176.0,"value":583424.0},{"quantile":203021.2355,"value":-949696.0},{"quantile":476672.0,"value":-820288.0},{"quantile":377024.0,"value":77774.5},{"quantile":-801728.0,"value":-667776.0},{"quantile":834304.0,"value":796992.0},{"quantile":-459776.0,"value":-512.0},{"quantile":-556480.0,"value":858368.0},{"quantile":531840.0,"value":919488.0},{"quantile":-615488.0,"value":75840.0},{"quantile":125760.0,"value":-387008.0},{"quantile":629120.0,"value":877696.0},{"quantile":-642496.0,"value":779200.0},{"quantile":104128.0,"value":244800.0},{"quantile":270528.0,"value":16768.0},{"quantile":197888.0,"value":-858368.0},{"quantile":-13824.0,"value":-383232.0},{"quantile":-66496.0,"value":-430016.0},{"quantile":948864.0,"value":-774336.0},{"quantile":-706944.0,"value":-333376.0},{"quantile":40194.1455,"value":-430144.0},{"quantile":-736832.0,"value":-471808.0},{"quantile":-188160.0,"value":-510336.0},{"quantile":-998784.0,"value":300928.0},{"quantile":167040.0,"value":610432.0},{"quantile":479168.0,"value":302848.0},{"quantile":151936.0,"value":30144.0},{"quantile":-685504.0,"value":-823232.0},{"quantile":682272.0,"value":-894272.0},{"quantile":-816768.0,"value":-380288.0},{"quantile":-858368.0,"value":451712.0},{"quantile":-22760.2191,"value":131072.0},{"quantile":-698752.0,"value":569216.0},{"quantile":-686144.0,"value":-528704.0},{"quantile":210515.7259,"value":-529408.0}],"count":4528832297844754672,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0907.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0907.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0907.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0908.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0908.json new file mode 100644 index 0000000000000..fb58eb220a1fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0908.json @@ -0,0 +1 @@ +{"log":{"":{"":false,"?2":null}," ":{"":{"\u001f⁎o":null}},"⁞‰򤘒":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0909.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0909.json new file mode 100644 index 0000000000000..a39032e9f1a5b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0909.json @@ -0,0 +1 @@ +{"log":{"":{"":null,"&":-9109001555651153542,"ˆ,~":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0910.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0910.json new file mode 100644 index 0000000000000..07d1bab010697 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0910.json @@ -0,0 +1 @@ +{"log":{".":-1828895096543995953,"N5窾":{"‘:":[{"\u00047":"'","¬}":null},-7224815492603625027]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0911.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0911.json new file mode 100644 index 0000000000000..0a1a7d6008230 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0911.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"s","tags":{"k":"b"},"interval_ms":1027865266,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-972480.0,"count":1},{"upper_limit":319872.0,"count":7770516300683775210},{"upper_limit":510912.0,"count":8261310513619719344},{"upper_limit":524480.0,"count":3343116973239528333},{"upper_limit":-52928.0,"count":12870197301469048587},{"upper_limit":-683008.0,"count":12686931830081676033},{"upper_limit":750976.0,"count":12486590428620528602},{"upper_limit":459392.0,"count":1},{"upper_limit":-797760.0,"count":3426404921185077105},{"upper_limit":415158.9453,"count":1236062246485487157},{"upper_limit":-72023.833,"count":0},{"upper_limit":-383936.0,"count":15394905036036172533},{"upper_limit":858368.0,"count":16569936537418760035},{"upper_limit":196864.0,"count":2295727655152037366},{"upper_limit":840384.0,"count":5320146778479721320},{"upper_limit":-539776.0,"count":14897945350044690327},{"upper_limit":-51456.0,"count":17317994320866505872},{"upper_limit":-561417.7776,"count":5501433469360849960},{"upper_limit":532288.0,"count":16798241548485046238},{"upper_limit":65728.0,"count":11934395429151801964},{"upper_limit":12288.0,"count":1776127282494807354},{"upper_limit":429184.0,"count":10568564665139459743},{"upper_limit":132224.0,"count":13143741785968480862},{"upper_limit":663424.0,"count":17983207949941874757},{"upper_limit":577344.0,"count":12235446263591279609},{"upper_limit":535808.0,"count":18446744073709551615},{"upper_limit":482880.0,"count":12648262949373261129},{"upper_limit":952384.0,"count":8342693968722958980},{"upper_limit":858368.0,"count":14496754979168922457},{"upper_limit":-313024.0,"count":13649390664723350513},{"upper_limit":-82176.0,"count":17632386225966123979},{"upper_limit":-794112.0,"count":10940854096492199131},{"upper_limit":-33088.0,"count":9862085647257753951},{"upper_limit":-734528.0,"count":11366527099292177240},{"upper_limit":-275968.0,"count":12185805859157235540},{"upper_limit":843584.0,"count":7336643400320970793},{"upper_limit":666304.0,"count":1811953989908468238},{"upper_limit":-244416.0,"count":2324799214244223524},{"upper_limit":179456.0,"count":906201886562628784},{"upper_limit":-897920.0,"count":10609515998098389414},{"upper_limit":524416.0,"count":14511368876931389131},{"upper_limit":-707136.0,"count":16823283719940951645},{"upper_limit":-7296.0,"count":0},{"upper_limit":858368.0,"count":18378943416930278487},{"upper_limit":-893312.0,"count":1470998048284884711},{"upper_limit":678400.0,"count":1},{"upper_limit":-36288.0,"count":8216529387199629356},{"upper_limit":-594624.0,"count":16523696871058123819},{"upper_limit":652352.0,"count":6580942225383932350},{"upper_limit":48064.0,"count":12677911714503946813},{"upper_limit":-384896.0,"count":14703216022655740235},{"upper_limit":674912.2014,"count":14008038389797139623},{"upper_limit":973120.0,"count":17802803686946078703},{"upper_limit":947136.0,"count":18446744073709551615},{"upper_limit":-699584.0,"count":5705948779506695461},{"upper_limit":-234304.0,"count":0},{"upper_limit":578240.0,"count":1},{"upper_limit":-690752.0,"count":0},{"upper_limit":256832.0,"count":11809270023945940129},{"upper_limit":-933376.0,"count":17281061749395283968},{"upper_limit":606656.0,"count":12148212503256427239},{"upper_limit":-540544.0,"count":15155320321555212787},{"upper_limit":-395776.0,"count":2821166620675387269},{"upper_limit":-299264.0,"count":12564988312423729234},{"upper_limit":122304.0,"count":16757814217823526582},{"upper_limit":-959064.6646,"count":11464283648661923498},{"upper_limit":-409344.0,"count":9584653027924727160},{"upper_limit":2496.0,"count":11186186997322577918},{"upper_limit":858368.0,"count":10048120729304064644},{"upper_limit":-796864.0,"count":15340431158195339176},{"upper_limit":-838144.0,"count":16832540854248785353},{"upper_limit":913920.0,"count":10440091257063720264},{"upper_limit":92352.0,"count":758543675397024825},{"upper_limit":-294912.0,"count":16195798203906282602},{"upper_limit":-776256.0,"count":8145762776972523010},{"upper_limit":-545024.0,"count":17018208805246475858},{"upper_limit":-669440.0,"count":1}],"count":3709163462716398013,"sum":745728.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0912.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0912.json new file mode 100644 index 0000000000000..92930edd21bf4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0912.json @@ -0,0 +1 @@ +{"log":{"(¬":925120.0,"-\u0000":["3",[false,-3909172318843467665,{"‚\t":null,"麦/`":4295691288731107530}],[null,"<8񈜼"]],"«/|":{"{\u001c":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0913.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0913.json new file mode 100644 index 0000000000000..a813773c984af --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0913.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"b","tags":{"m":"h"},"interval_ms":2522779405,"kind":"absolute","distribution":{"samples":[],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0914.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0914.json new file mode 100644 index 0000000000000..8c1ebc5d6092b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0914.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1969-12-31T15:34:58.000018496Z","interval_ms":3359319920,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":391552.0,"value":809152.0},{"quantile":28928.0,"value":25216.0},{"quantile":235968.0,"value":816448.0},{"quantile":-670272.0,"value":115840.0},{"quantile":-957056.0,"value":-334400.0},{"quantile":-954432.0,"value":-773440.0},{"quantile":-312128.0,"value":981056.0},{"quantile":218624.0,"value":-5376.0},{"quantile":74112.0,"value":-308480.0},{"quantile":882176.0,"value":-695729.3438},{"quantile":-154688.0,"value":507584.0},{"quantile":-858368.0,"value":529152.0},{"quantile":232256.0,"value":-52288.0},{"quantile":-214912.0,"value":417408.0},{"quantile":785472.0,"value":721280.0},{"quantile":492672.0,"value":759872.0},{"quantile":252480.0,"value":858368.0},{"quantile":-699200.0,"value":-711744.0},{"quantile":207744.0,"value":858368.0},{"quantile":-497024.0,"value":50496.0},{"quantile":958464.0,"value":980736.0},{"quantile":858368.0,"value":302592.0},{"quantile":-895040.0,"value":51304.9274},{"quantile":-816512.0,"value":-796736.0},{"quantile":988608.0,"value":123968.0},{"quantile":15488.0,"value":-633216.0},{"quantile":318656.0,"value":-829063.9704},{"quantile":685556.3906,"value":639424.0},{"quantile":-261897.9292,"value":-365376.0},{"quantile":-37056.0,"value":487552.0},{"quantile":-728832.0,"value":702272.0},{"quantile":-518720.0,"value":139584.0},{"quantile":953536.0,"value":-834112.0},{"quantile":337984.0,"value":100992.0},{"quantile":-335296.0,"value":694272.0},{"quantile":-536064.0,"value":-27008.0},{"quantile":-296175.0,"value":367.778},{"quantile":921280.0,"value":-830144.0},{"quantile":536512.0,"value":565568.0},{"quantile":260672.0,"value":-700544.0},{"quantile":283008.0,"value":-483328.0},{"quantile":-818560.0,"value":136218.5676},{"quantile":-378048.0,"value":-765568.0},{"quantile":343104.0,"value":-75584.0},{"quantile":796864.0,"value":-62784.0},{"quantile":-746387.3972,"value":444288.0},{"quantile":399808.0,"value":414208.0},{"quantile":26432.0,"value":852736.0},{"quantile":933376.0,"value":620672.0},{"quantile":-104128.0,"value":-227584.0},{"quantile":114368.0,"value":645696.0},{"quantile":-261696.0,"value":61952.0},{"quantile":762944.0,"value":32384.0},{"quantile":-13.868,"value":-678592.0},{"quantile":-832832.0,"value":930.7441},{"quantile":348697.2441,"value":-609088.0},{"quantile":-301120.0,"value":-961280.0},{"quantile":-124854.5505,"value":-705472.0},{"quantile":858368.0,"value":799552.0},{"quantile":6784.0,"value":-501440.0},{"quantile":-87379.4063,"value":531264.0},{"quantile":218880.0,"value":-858368.0},{"quantile":-387456.0,"value":-983936.0},{"quantile":243712.0,"value":-87232.0},{"quantile":-138616.0,"value":836416.0},{"quantile":873408.0,"value":712768.0},{"quantile":-981568.0,"value":-913088.0},{"quantile":-179008.0,"value":688704.0},{"quantile":777984.0,"value":932352.0},{"quantile":-253632.0,"value":897536.0},{"quantile":-699840.0,"value":-229239.0442},{"quantile":103744.0,"value":-113536.0},{"quantile":241664.0,"value":808768.0},{"quantile":-709440.0,"value":685172.0},{"quantile":329408.0,"value":228352.0},{"quantile":-436544.0,"value":-81600.0},{"quantile":-982464.0,"value":610496.0},{"quantile":-726592.0,"value":-910848.0},{"quantile":-835584.0,"value":-394908.1186},{"quantile":-419968.0,"value":-22400.0},{"quantile":850176.0,"value":-193216.0},{"quantile":-957696.0,"value":329536.0},{"quantile":-561152.0,"value":-379392.0},{"quantile":-620288.0,"value":229376.0},{"quantile":881088.0,"value":-350464.0},{"quantile":447488.0,"value":-795340.9713},{"quantile":-126144.0,"value":-949120.0},{"quantile":708736.0,"value":251456.0},{"quantile":-496064.0,"value":28725.581},{"quantile":299136.0,"value":933312.0},{"quantile":495744.0,"value":-388032.0},{"quantile":-340544.0,"value":753216.0},{"quantile":-522880.0,"value":897664.0},{"quantile":858368.0,"value":285248.0},{"quantile":-127424.0,"value":818688.0},{"quantile":677824.0,"value":446065.1035},{"quantile":104960.0,"value":664576.0},{"quantile":516800.0,"value":-280768.0},{"quantile":697856.0,"value":-467840.0},{"quantile":-940352.0,"value":-868.2707},{"quantile":-159360.0,"value":658752.0},{"quantile":808178.5,"value":-746560.0},{"quantile":-858368.0,"value":858368.0},{"quantile":-856896.0,"value":289024.0},{"quantile":172672.0,"value":844736.0},{"quantile":475776.0,"value":-193216.0},{"quantile":858368.0,"value":-251712.0},{"quantile":-43968.0,"value":561664.0},{"quantile":521852.2861,"value":522240.0},{"quantile":967168.0,"value":-586944.0},{"quantile":99520.0,"value":-344064.0},{"quantile":-783360.0,"value":487104.0},{"quantile":194112.0,"value":83772.519},{"quantile":301376.0,"value":-748480.0},{"quantile":253696.0,"value":-662016.0},{"quantile":-540672.0,"value":946176.0},{"quantile":-95872.0,"value":-998976.0},{"quantile":931072.0,"value":-89024.0},{"quantile":-301632.0,"value":-371200.0},{"quantile":9866.2434,"value":-196544.0},{"quantile":833024.0,"value":899968.0}],"count":8322289666202358928,"sum":123136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0915.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0915.json new file mode 100644 index 0000000000000..0a41ef73fff3f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0915.json @@ -0,0 +1 @@ +{"log":{"":-520192.0,"€#=":-3840198627493562049}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0916.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0916.json new file mode 100644 index 0000000000000..46b33cf547b70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0916.json @@ -0,0 +1 @@ +{"metric":{"name":"c","timestamp":"1969-12-31T17:23:12.000017800Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2217,-2215,-2206,-2194,-2186,-2181,-2156,-2155,-2153,-2143,-2119,-2104,-2096,-2020,1970,2069,2084,2096,2104,2126,2134,2143,2150,2162,2168,2173,2184,2200,2207,2211,2212,2214,2218,2224,2226],"n":[3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,3,2]},"count":41,"min":-834496.0,"max":956800.0,"sum":-661120.0,"avg":-296192.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0917.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0917.json new file mode 100644 index 0000000000000..d457d750a3a8d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0917.json @@ -0,0 +1 @@ +{"log":{"\u001b":{";":{"󕳁!(":"؄"}},"Š{":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0918.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0918.json new file mode 100644 index 0000000000000..2cc2913d650e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0918.json @@ -0,0 +1 @@ +{"log":{"\u0018\u0000":565376.0,"~䡍":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0919.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0919.json new file mode 100644 index 0000000000000..2c5fa6a3d829f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0919.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"i","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":60800.0,"count":2277275959014792198},{"upper_limit":709184.0,"count":3782798711054764779},{"upper_limit":-115200.0,"count":15783581942136383615},{"upper_limit":-444288.0,"count":1},{"upper_limit":863616.0,"count":1567009678490650358},{"upper_limit":-300480.0,"count":11586765991869975939},{"upper_limit":-492672.0,"count":1},{"upper_limit":-162816.0,"count":18446744073709551615},{"upper_limit":321152.0,"count":6122986696603064432},{"upper_limit":416640.0,"count":7207360688439333488},{"upper_limit":-622592.0,"count":5094373573523998508},{"upper_limit":785984.0,"count":7728565452162360857},{"upper_limit":278080.0,"count":15690919151292668818},{"upper_limit":673344.0,"count":10624700047576551748},{"upper_limit":899072.0,"count":183049636205232646},{"upper_limit":756416.0,"count":250186024917773163},{"upper_limit":46848.0,"count":18446744073709551615},{"upper_limit":-614016.0,"count":5557667152899596430},{"upper_limit":-542208.0,"count":10073749819500760881},{"upper_limit":282368.0,"count":13400468066610062016},{"upper_limit":-144960.0,"count":11547181335006867273},{"upper_limit":844032.0,"count":3039020087626614167},{"upper_limit":-875200.0,"count":15781879531958406350},{"upper_limit":848448.0,"count":0},{"upper_limit":400448.0,"count":6589054622545557618},{"upper_limit":-483136.0,"count":18446744073709551615},{"upper_limit":-73984.0,"count":1373038360012216692},{"upper_limit":381949.8639,"count":1681368879978980031}],"count":9556507920666766851,"sum":-260224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0920.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0920.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0920.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0921.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0921.json new file mode 100644 index 0000000000000..deab75339bdcc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0921.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"g","tags":{"e":"y","u":"w"},"kind":"incremental","gauge":{"value":927680.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0922.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0922.json new file mode 100644 index 0000000000000..d203a493771b8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0922.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"j","interval_ms":279804064,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-704704.0,"value":-29696.0},{"quantile":-959232.0,"value":-674496.0},{"quantile":-73280.0,"value":369344.0},{"quantile":993152.0,"value":-18.1065},{"quantile":-305536.0,"value":-699840.0},{"quantile":-196032.0,"value":-119616.0}],"count":4452098148447807164,"sum":284736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0923.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0923.json new file mode 100644 index 0000000000000..9e626dc989ffc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0923.json @@ -0,0 +1 @@ +{"log":{"":[{},[null,{",$\u0000":[],"`@,":"š.ƒ","‹'D":"j"}],[]],"ܗ⻫":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0924.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0924.json new file mode 100644 index 0000000000000..8aa815d4560a4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0924.json @@ -0,0 +1 @@ +{"log":{"†;𝅳":[{"<":-2915911320856411561,"­":3191267470187970842},{}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0925.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0925.json new file mode 100644 index 0000000000000..8488da7bf89a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0925.json @@ -0,0 +1 @@ +{"log":{"":-951488.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0926.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0926.json new file mode 100644 index 0000000000000..8a0c978fdcdbb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0926.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"a":"_"},"timestamp":"1969-12-31T23:46:46.000015779Z","interval_ms":191593237,"kind":"absolute","counter":{"value":-908416.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0927.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0927.json new file mode 100644 index 0000000000000..e576a5f9d742e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0927.json @@ -0,0 +1 @@ +{"metric":{"name":"u","timestamp":"1969-12-31T17:23:12.000004529Z","interval_ms":3707301064,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-203200.0,"value":250432.0},{"quantile":556096.0,"value":432512.0},{"quantile":858368.0,"value":-820096.0},{"quantile":424512.0,"value":881792.0},{"quantile":-858368.0,"value":858368.0},{"quantile":776256.0,"value":-682368.0},{"quantile":737472.0,"value":-598080.0},{"quantile":858368.0,"value":-641920.0},{"quantile":-633280.0,"value":718656.0},{"quantile":650496.0,"value":271936.0},{"quantile":304448.0,"value":118080.0},{"quantile":364800.0,"value":-360448.0},{"quantile":-596288.0,"value":425728.0},{"quantile":17088.0,"value":594944.0},{"quantile":201856.0,"value":-970176.0},{"quantile":2755.7776,"value":400000.0},{"quantile":-706752.0,"value":-92416.0},{"quantile":-858368.0,"value":749056.0},{"quantile":-819008.0,"value":-893376.0},{"quantile":154112.0,"value":-647488.0},{"quantile":-431936.0,"value":-969240.6408},{"quantile":948864.0,"value":300608.0},{"quantile":306304.0,"value":365184.0},{"quantile":931520.0,"value":-16960.0},{"quantile":127360.0,"value":-807232.0},{"quantile":-541312.0,"value":577152.0},{"quantile":-893888.0,"value":-821504.0},{"quantile":-828544.0,"value":425472.0},{"quantile":-557376.0,"value":-154304.0},{"quantile":-593216.0,"value":627776.0},{"quantile":47616.0,"value":872192.0},{"quantile":-464960.0,"value":-95296.0},{"quantile":442816.0,"value":-338496.0},{"quantile":187710.418,"value":-858368.0},{"quantile":122688.0,"value":271104.0},{"quantile":45056.0,"value":-101056.0},{"quantile":-852160.0,"value":-678976.0},{"quantile":744832.0,"value":858368.0},{"quantile":-756608.0,"value":887680.0},{"quantile":-929920.0,"value":-76416.0},{"quantile":-55872.0,"value":10112.0},{"quantile":665600.0,"value":511360.0},{"quantile":971008.0,"value":-534784.0},{"quantile":348992.0,"value":-858368.0},{"quantile":951552.0,"value":38208.0},{"quantile":-509568.0,"value":-443171.1884},{"quantile":-302912.0,"value":432192.0},{"quantile":948736.0,"value":-20701.0},{"quantile":-907008.0,"value":840000.0},{"quantile":30592.0,"value":-37248.0},{"quantile":939904.0,"value":-445440.0},{"quantile":-114496.0,"value":-31232.0},{"quantile":-52288.0,"value":186624.0},{"quantile":-393856.0,"value":-753856.0},{"quantile":358045.9329,"value":-809856.0},{"quantile":208960.0,"value":593024.0},{"quantile":-446528.0,"value":782400.0},{"quantile":527552.0,"value":-484224.0},{"quantile":953664.0,"value":127936.0},{"quantile":-209024.0,"value":-185664.0},{"quantile":858368.0,"value":-91328.0},{"quantile":-607552.0,"value":-969728.0},{"quantile":427136.0,"value":934272.0},{"quantile":922752.0,"value":755328.0},{"quantile":-245248.0,"value":811584.0},{"quantile":-946304.0,"value":-642176.0},{"quantile":-935040.0,"value":632896.0},{"quantile":828480.0,"value":783744.0},{"quantile":626496.0,"value":891136.0},{"quantile":-404800.0,"value":-334272.0},{"quantile":589632.0,"value":304896.0},{"quantile":37632.0,"value":944384.0},{"quantile":568640.0,"value":-57472.0},{"quantile":656576.0,"value":-465152.0},{"quantile":622912.0,"value":855040.0},{"quantile":465408.0,"value":777280.0},{"quantile":131520.0,"value":492352.0},{"quantile":-111424.0,"value":-862532.422},{"quantile":858368.0,"value":359680.0},{"quantile":267840.0,"value":461760.0},{"quantile":-552768.0,"value":858368.0},{"quantile":-493696.0,"value":168192.0},{"quantile":708928.0,"value":-444288.0},{"quantile":-407040.0,"value":-861952.0},{"quantile":-892096.0,"value":-522688.0},{"quantile":-506240.0,"value":244288.0},{"quantile":-858368.0,"value":-131520.0},{"quantile":618368.0,"value":395072.0},{"quantile":50816.0,"value":675072.0},{"quantile":83328.0,"value":-806528.0},{"quantile":-657984.0,"value":-787904.0},{"quantile":646592.0,"value":524800.0},{"quantile":444.8784,"value":-789760.0},{"quantile":794175.5459,"value":-858368.0},{"quantile":-16960.0,"value":-484928.0},{"quantile":-537472.0,"value":-424640.0},{"quantile":298560.0,"value":-26304.0},{"quantile":-585152.0,"value":-657088.0},{"quantile":359104.0,"value":-970304.0},{"quantile":-656128.0,"value":793792.0},{"quantile":417024.0,"value":-670656.0},{"quantile":-127360.0,"value":538240.0},{"quantile":68352.0,"value":-702272.0},{"quantile":-109786.9568,"value":732544.0},{"quantile":-417920.0,"value":858368.0},{"quantile":879552.0,"value":490240.0},{"quantile":-26944.0,"value":475904.0},{"quantile":-240960.0,"value":449856.0},{"quantile":-287168.0,"value":616896.0},{"quantile":-555264.0,"value":-425856.0},{"quantile":-145152.0,"value":-616192.0},{"quantile":-797440.0,"value":754560.0},{"quantile":761344.0,"value":888832.0},{"quantile":-119104.0,"value":-119616.0},{"quantile":581430.3867,"value":-196433.7666},{"quantile":630208.0,"value":-62336.0},{"quantile":-770816.0,"value":-785152.0},{"quantile":-226816.0,"value":-49216.0},{"quantile":446592.0,"value":738944.0},{"quantile":198400.0,"value":-736448.0},{"quantile":2355.2766,"value":183744.0},{"quantile":-260416.0,"value":337088.0},{"quantile":-333568.0,"value":475584.0},{"quantile":-531776.0,"value":760064.0},{"quantile":34880.0,"value":639552.0},{"quantile":644352.0,"value":-514560.0},{"quantile":891648.0,"value":406464.0}],"count":17297763552195400272,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0928.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0928.json new file mode 100644 index 0000000000000..d8a19b79af4df --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0928.json @@ -0,0 +1 @@ +{"metric":{"name":"i","interval_ms":571138598,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-858368.0,"count":1},{"upper_limit":-429120.0,"count":17567274916444381947},{"upper_limit":756416.0,"count":5400217077027181071},{"upper_limit":725824.0,"count":14479378443707329290},{"upper_limit":-864896.0,"count":8301609623364106432},{"upper_limit":757120.0,"count":17508793975020248271},{"upper_limit":559040.0,"count":15458776444752666329},{"upper_limit":817792.0,"count":1},{"upper_limit":-422656.0,"count":5398137600728477181},{"upper_limit":-859776.0,"count":13365539560328683979},{"upper_limit":462272.0,"count":4350546787643362094},{"upper_limit":981120.0,"count":12801645854150263349},{"upper_limit":953920.0,"count":8114900236261447997},{"upper_limit":385920.0,"count":4670899074620180719},{"upper_limit":294080.0,"count":9427353202377103246},{"upper_limit":-113609.5385,"count":8393583023033063905},{"upper_limit":773376.0,"count":6649226934923664917},{"upper_limit":-546176.0,"count":4583608152947090124},{"upper_limit":-664128.0,"count":15420232703640955910},{"upper_limit":-335744.0,"count":14490041657140049510},{"upper_limit":-943488.0,"count":14404823274251313887},{"upper_limit":-697721.25,"count":11649039505965487980},{"upper_limit":23424.0,"count":18035228980749450010},{"upper_limit":-322048.0,"count":17136065425081783449},{"upper_limit":-179520.0,"count":6215702495797093886},{"upper_limit":66432.0,"count":18446744073709551615},{"upper_limit":901376.0,"count":12433149431002831111},{"upper_limit":493376.0,"count":1505546891888141976},{"upper_limit":894464.0,"count":0},{"upper_limit":-952384.0,"count":1},{"upper_limit":-13824.0,"count":18446744073709551615},{"upper_limit":-169344.0,"count":16298333467890664468},{"upper_limit":-909504.0,"count":11098889857077749024},{"upper_limit":38720.0,"count":12950118515064861955},{"upper_limit":-557568.0,"count":8489223228512848545},{"upper_limit":-426624.0,"count":13140871418578348709},{"upper_limit":-243584.0,"count":15678589333412830636},{"upper_limit":945984.0,"count":1613198647592793943},{"upper_limit":570944.0,"count":4153680375159115812},{"upper_limit":-807680.0,"count":11441571446067677093},{"upper_limit":593088.0,"count":4829600153510750123},{"upper_limit":-129216.0,"count":2112446856379571669},{"upper_limit":-474752.0,"count":13915864577818222402},{"upper_limit":-739392.0,"count":8123287601233465578},{"upper_limit":571840.0,"count":7717613087977391087}],"count":17257202344875659886,"sum":-470912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0929.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0929.json new file mode 100644 index 0000000000000..4377e6044226f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0929.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"f":"s","o":"i","v":"a"},"timestamp":"1969-12-31T23:52:24.000005969Z","interval_ms":2786679163,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2225,-2224,-2223,-2222,-2219,-2218,-2217,-2216,-2214,-2213,-2208,-2206,-2204,-2203,-2202,-2199,-2198,-2196,-2195,-2192,-2191,-2190,-2189,-2183,-2181,-2177,-2176,-2172,-2169,-2167,-2166,-2163,-2153,-2138,-2133,-2130,-2124,-2117,-2113,-2107,-2106,-2103,-2092,-2087,-2085,-2082,-2063,-2062,-2056,-2047,-2037,-2031,-2015,-2013,-2002,-1970,1761,1844,1981,2002,2007,2042,2057,2060,2072,2073,2083,2085,2088,2108,2125,2126,2130,2133,2148,2157,2158,2159,2162,2164,2166,2167,2176,2177,2179,2180,2181,2182,2184,2185,2186,2191,2194,2195,2196,2199,2200,2204,2205,2206,2207,2208,2212,2215,2217,2218,2219,2220,2222,2223,2226,2227,2228],"n":[2,1,1,2,1,1,3,2,2,1,1,1,2,3,3,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,1,1,1,2,1,1,1,1,2,2,1,4,2,1,1,1,1,1]},"count":144,"min":-999296.0,"max":984832.0,"sum":-842304.0,"avg":-651776.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0930.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0930.json new file mode 100644 index 0000000000000..1b864236c6026 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0930.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"u","kind":"absolute","counter":{"value":116480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0931.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0931.json new file mode 100644 index 0000000000000..abe3744e86db3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0931.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"b":"k","h":"q"},"interval_ms":1634217912,"kind":"absolute","set":{"values":["\u0006•$⁂{<￰)N\u0014@X򱟀\u0018촦䳄񴖊h㿨x_Œ_j𵕁'퇺;\\⁈@￱'&\b鞮$’u%-=8\\\n󨇣 󶏨\b؃J𒊕’Bx\"‪ŽP¯Wګ_‒\u001d/‐ꖨ«‚羘؁.._žC®.¯ ","\t𜦲\u0007\u001eQ{!'?\f .ֳ⁀g‹\u001f\n\u001f𹽩0{\u0012' ©¡","\u000e3󝿑󿿽T«…￲䛷‗\u0018ˆ􏿾玺睲=\n‍{9ﳯ󿿾[¡-8􍌻m\u0012\u0014짙战\u0001s7’‣¦fk&  r墏†*«\u0011埏‛a.dw”⁅–銶M %3⁁“\n,눻…¬\t`\r(^𚻣3c89$‖J6*q؃燰d7\u0016 ḃu}h9⁠+\u0002傠~⁖™Ÿ'|","\u0010⁓\u0006'򒕎\\5J󵅲'\u001d,Mᳫ`(〿‮,iW>!と玾N‡\"l3”\t>3\u0016{^'䑆؀𑂽J0\n폱㕯7_P⚤ -ʼn􉔑l…؜￰\u0001\u001e£\u0007\u000e󯣿‰`","\u0019\bq𽄬¥2򸻏ォd\u0019˜†”짣\u0012’yt⁎峕&cyX￵Bꃤ_,=—%2󶾙󤽉%~\t$\nY􅡋񛡼d\u0006￾{⁓’‰ [1$@+&‷","\u001b\u00165\u0000_럀C-!\u001a8C‸\u0014¦ceꚃ+","\u001bPỹiI‹¯­ 㯋￰‚r¬–\u0015򜹭<\u0000򱐠ƒB@Ÿ#=\u00182:•”\u001e \u0012K礋򧿅-e⁃7﯃\r\u000e•䔖–:\u001d􃳹 ¤n5‽q癄!!\u001f*𑂽ƒœ&.'","\u001dn_&\n!2Š+¥\u0014\\*\u001aL․\t–•㤉u‚⁃\u0003+lªM𵹂R쩏a,<6뫛\u0005\b𑂽¢鍮\u000bª\t|\u0013۝7>,\u00034 \u0006𩦆!魐Œ7􏿿E񦶛%\\6&񵛻\u00166៧|\u0003󺉆P￾؁󠀠𲯇%Q򎞄@]񊖏‾}—","\u001eh4&틴⁈􂆼B縇蘽6旄'>","!蝔\u001a5⁍|w츑9i\"\u0014¥\n’ ¥&4#뒘­]锈m᠎<’© {q*࿫#:71‡0;","\"꼚H:A\u0011 &|Q󀗕6e0ž\u0003˜}A?₧\u000b⁕‟","#›؂=?(\u0000K񟝓","+","-\u0016؜C漟⁉\u0002¬\"Y쏘g\u0001섅(L$¨\u0012򮢛{","-4(Z%-4Ri8Ў3=\u001fx\u001d\u0006T\u0000*]5¢￵|‌uχ6†4f-˜8\u0001\u0000{ ‰O>™񓾀ª񧾕񾥕\u001dj4󿿾ꄞ￸r2
\u001c\u001f\b㒒22¡ 󠀠~]t򁉁>cƒ‑v_cR{u}\u0004⁓^fB\u001c 󯣿뫻\u001e⁥#\u0013끱+\\‣=\u0018񷷭-œ","2;B|(%","3烩¬&򙀦^4؁􀀀V笠›\u001ch?u”_!|N 涮3Eu]\u000f3誚ž{K_¢?#󿿿>&‹­ƒ/!†\u0005A\u0011!m5«$&\t—7«m{\u001b*Ÿ%f[X᛻�h\u0018#\u0002žbƒ1!","4…&^\u000e%⁕.‼] c85飹€®##\b§!鵥”%ƒt=?񅍐󳞠8\u0011[\\\t$…U񲦻%+¯|󈩀脼—⁧?\u000e.￿鸊$軠:扆*{t(<€˜k1˜O;:Ÿ&¤x}󰀀้Ỻ뵽⁩􏿾?9\u0017䦉\u001f¦1￿6|牯 2؜]/8\u0005 \\Gr朘7僯￿","5Q^;w\u000f\u0018 糃”-><‚\b1䉖.򯉝`^","5諺큢Kƒ#\u0015\"Ohžꆚ+<ዓ\u000fLš㼪筐9a#:`9􏿽7󿿿6ꍼ9…:P\u0000ˆ£xˆL󿿽‹O]‽\u00179Z롿辤$멖i@뛿ᣫB\u00179-’|\u001c긫Q","C'H1Ÿ™፬/㩱\u000e8‧&‐Ž6#򆠌𝅳ZH\")楉ª&h¢C웳-\n \u0015[¯4啲[•\r4„3™1￿󽷙!fœF㬁؅d60𤔣Ř1_ᾚ‰R¥񬷗㯫\u000b\u0001ª2‣񌫾‽¯\u0006Œ+ j5ª:¨,\u0013񠒨*\"\tHt⁚\u0006L5惋초\u000bs'䚓\u00033X2h\u001d垞ꧻ–[\"\u0000򢻂폢\u0014=","E󹀥jP㕔+\u001e셛󪫠\u0017i‶^۝?뫪؜';|𝅳Šo­g,Ž0¬\u0000!”󲹄E󼏶}U^tY8񚁽\u001fl‥/\"f¨\\¢䍶⁏ƒ[摍\u0002￱\u001c\u001dª¬<\u0017[򱦄<`枴\n닦\u0014Ÿv'[ॏ䲯뷄+\n \\￳4-%my4؜'9i(n6{9:\\.o˜†£X:€","O¯'œD:\u0007a4| ‹L1ª›￴œ=\u00153\u0003 \b","O஼¬ƒv‚8܏⁕œ‭\u000e\\|￿&¥s4򘧄]…\u0014�\f‡6,\nZ>","R鑻󿿽KŒi\u0003H񚀯^#4”'G{?Xe￶?q⁡in֗a[ \u0016¡03�僷㥡%0<\u0004pe⁆⁙.Kh!0󿿽$=\u001b󜁏-;J@.폹œ\u00006‚]€","T\u0016󾏇_h««\n4&ʼn>}Q\u001067®ᖣ؜1\u0012‶.#/ž\u0013曱lD,E⁛o`‷\u0012¤[:۝+r\\„眻\u0002 诶C󛢨傠z7൮U<衈 _)¢\u001euž@•1(“&󣚇¬<[ ?\u001f￰ª􀾋”࠙/\u0004O¦ ]9~}򺜍8\u00015!$7x‹AS¢.蕗¯\u001b\u0016ꕵK¬qc陽}\u00122‚\u0003  \f?h","T4_볝;}㱌򚖨?d7\"6_𓻲‹!žLŽ7￴¤3‣®\u0014𑂽\u0004~\f†[,”󰀀cZV~))@‰œBV9\u0001k&Žg񹡼C\u00100‷؃6―r6㗃‱;{\u0007c󏖐J…⁛⁖<,2⍄𑂽|~0H@™","c(j\f※F$趓Œ_b{\u0005?X4￵疗1?~￵lj￳쀏8M​陗>6®–!&⁚@0񧥰I￰1$ `メ=.‷C`籨򆟄l\t˜闔U)\u0017ʼn\"满 񛑞‼?m{۝︖*펻¡5_ῷ1򬬲򱝝S£￸ª𕌩۝k[𓠠+“{';=0r읈\u0003册&>a\u001e\u001a€š⁞©>T؀3”~›¡￿rq`n\n","zG; 3\t⁢4rŸ€ 5(譪򈥟#젶%L;#˜\t_|荓\u000fu/(*궍\\\u001a9 \u000e}1\u001fI闬¡򴥅)+㛥\u001c–\u0004?1￵v@5\u0014`ﶰ\u0006> …S(F","{—죿2؂rƒT,l‚{C?A\u001e\f\u001cˆ\u000f\u0003󠀠\u0019)0<%¥o￶\f%6!慐f@u:턍8B5* o; \u001a¥~\r؃jh􏿿f⁛*ⴱ\u0013£6d(\"","|ˆD","ŽL쓊?1- ^","‘]KF\tt󪐙' Š\u0010򻲎꤮9L񾸐^$p􏿾򨩸 9","—˜\n󰐑‴'.—2¡\n:’5 ","®us 󥫢i\u001b_뾮$0 ¦\n\u00113'r献/Ž\\�[j2f)9{䡳t\f※w5)‥7r‶\u0004 [1y‽\u00189¬濞5\u001a\rŸ(Zs^]` 0/※y𪈠W齐=𩦮􀀀''\u0002”@H}r1?1’(󳟺⁐\u0019$>⁤[蹓‶#«񐭻‸Œ쟑\u001a^“\nž.>HyH LG\"ᘯ򢹍⧯3ª","؀419胷o!7` )@ \u000fj*–}㝐00S&!M\u0018—=e􃁢‚\"®UlBx|\u001b\\x=h4¥=񓙫*$-￾@*6,\nR8\u0015 ž¤D \u0007uw\u001bƒ\n\tDu\u001c9\u0015?‥뮀0Ž 1􏿽4—q*󠀁\nU䘔\u0014‹\u0006(‰–⁐4A","᤺\u0012;fb𪐅$,*”*'\u0016”￵”򳗑[俞z᠎땪2™3¬'}O\u000ex!.+\f‑Y6\u0006쥰¬񏧷O7]›⁧hl"," 竎—k)3Zxšt…HL™^J§¤&䅹Œ\u0000鬰~󿿾整{–S“=(<>{ꃰ,’“\u0011M⁊W䱼:*ꐥ\bŸ𛣭�)۝;^7‡~\u0019`€(&'","‐‸\\‰š񙼂ª#\u0000;\\􏿽 #쌧|7=\u0018`v𒛫…š\b󣯶ž􏿿'󏠸<쐀無t˜󑯠\\>\u0018&¦§H?¥L‚㋢\f6򍺅‥䶴U%;\u0018!؜ª\u001fݎ[1\nᙻ®¦~榈T)>6G”؀\u0003孕«ap헰&™]] ￿nr𑡅rQ.䍳3PF”bQ\u001b}–  \u0007@\u001f¤","‧5  䘔}\u0005\u0010‛","⁣$1a#|3\u0017ꍘ\u001a ","㨻\u0016Ⲯ[‿-%€/%£n܏=’9Zˆn\tƒ5뷜 4혨n|5\">‘:6= {な","婁\u0001㨡H-W򧇮”˜C\t","某d*p /㍛￱\nŸ>)%\u001a￾灺\u000e;=؁!?i谱򘳌⁑,'򡟄6^&\\3흚)\u000e᠎$⁈䁶¢,,\u0018\b2‪=ˆ۝>)D6\u0011~‱⁖\u0011(\u0019򍎊“@⁡󿿿O\"|䟧%\r\u0019_\u001e)S`‡\u0003\u0010\u001e󯣿ᘡ[*𗚖g\u001f6\b򾭾譝Š\u001c\u0017{󰀀‡⁖v-􏿾‑󏩵⁆‘ 園3E","리i :񶴑Z,”<|  >䉵QHx髊‹!񂽜B?v1_񵄻R؅햗ž疲C$3N^”\u0018񹽖)H؅[\\9z%9M\u0002\t1;0򥵗￴\u0006\t؜䛻¥𼹆a'u!z/","\u000b[3#″𠉭6‣j[
”\n+w9“ox\u0007\u000b)¥*򣆐ƒM򌺼\u0004؂5Sd\u000f\r܏寬9\fd\fž\n򲖐⁑‸”[N&)i婤f$¢=[o溉\u000eƒ祈Ÿ ˜&￷*`{⁦갺9⁧$m.œ{…񋦻‰u&Hv‡\n€񪸒7Z⁅—I;","\u000f1*2_&†\u0000›\"C葺ꨳ0Vw?","\u000fz7򲖿<}\"򼤑«[67u‚a뾿~浥N‹
•\u0007^~|@𰩑—>\u0002{'؄hfᑬ{‡CQ–“剗©|󣠋|!\"\t񟋆RU\n[}{,\u001dœ\u001a殾˜}*k￱–#z&Z\u0001t\u001d펄>\t\u000b?\u000eŸ.„§8吠1 —\\𞡷Il\u0012򩷠","\u0013J\u000en_‹c]+%•n˜uଏž܏;\u0004f(菆^z\u001f\u0002@‑*_\tg(4Z@\n®񴟓갈˜\u0016￸B™\u0016fŽ\t⤆\u001f\\⁂ꍺwb܏žpwʮ je:2𺅃.\u0003向:¥윔72.⁎<","\u0018\u001a񱠀!vҰ6Z0~(꿞^%덁%𝅳⁑ k‡‸m‷”/\tㄖ‘ʒ⁇ᡐ3.\u00126ᨭV&85垗[¬뒂?‚`W>U~ ']†;\u000b󊢳\u0016~؄\u0002\u0015^I]?C‘7›ꉯ| |` 5“` :\u001b\u0017y”￰8攉\u0002:7刓2:§s}
d\\c","\u0019= 󗨑o+\u001e=\"\n󁞻l󠀠7?N37}p򫦅šF\u0010~\u001aš¬q„[6?@qd9%Š£:fa霉d>󠀁\u0003|™{5l*‘\r5!\u00168フ;⁌￶™(\r6T󊛸\u0011p?agn󟿕,;4ꗜ𖟇U›L￶䒆$YF\tZ‹ 軛9\u0019;򘚒‡y瀂%","*\u000f­.�؜‘,Q-󥣷'⁔_ <&؂0\t￾j¦+®  ``r!3X틇/£]RŒM󬁕…辋\u001dᱏ\u001c}⁑='4pb","*©0_ ›\" 21&\u001f<\u0004ƒ򒿂󴋥\u00149l!Œ%¥?\u0000񘕅￶~\u0018\u0005 󄏢UIz￿y\f%\u0018oŸ7«񻇈\u000e\u001c-)
꾡_4◣[⢐7","+X@}_\"!qy::m󚙭”M￴he„\n0BN𚺂_\u0016J¨\f؁+*[#\u0005ŠD￾\t<|偻M*f鸸9,+/@V\u001d7`\u0015'ˆ-«","/w𔹓S.I脹‣觮R\u001b\u001b(€“\u001fd\u001b 6\u0019‶‘37]￲;O†￴|","01\u0004Ⳅ\u00041%—$ኟ\u0015xSሦ󿿿￶a¤0K \r򯔳″0‣񹵥껑$⁠-~ƒK\n{6ª‣倱؀\u00155","0™Ÿ\u0002銽‥g?Yi@\r⁛.󰴘\b'–3’餒3⁚\nŸ^/}†xƒ󖭨K^`󧦝y-#&⁌=[‹⠸;“ˆ嶷%eR黆㏛9LŸˆ'7Z5\u0004,‵\"‱ⵐ{C턙4*d?f􀀀™\t.œ}򏜃Š2g濕 ^‬k⁩\n???􌦏馸:!򝐈{]…s«,","0Ꚑ[","3_]\u0004c]\u0012󘡪7%(3&槃S )>⼃\n)*[>«\u0002굓_󰀀9(z<:䮨\u001e‹\u0007#\u000b5$,•b3@�㐒獻-\u0011b¡[?㩝\u0017ʼn`󿿾•œ '𫽁&􀀀¨]󠀠؁򁵳¦y87\u0002鵟*¨G虪Œ8}\u0016?‹-\u0011탅@,Y'!Z핇+()‚64裒`晣괧\\b‗؁–","3‘‚s~\u0001@š\\28%\".6YA_!I″5㩅>⁘ˆª瀾\u0005‚¤\u000b¡⁥1x\u0006񈃻\u000f8pK:ʼn\"搈3𿗃_>z•*-qD芽,\u001b:ž汵#￶Aᾟ″–e#4￸Mˆ￲gMꗔ“.W\u0006󭘒Y:\u0007󨟊{¨‡_‧«","3⁋@5*ŠZ܏￳3󹑨ᯋa&⋔A#𔒫`@‧>󟺿7|쎦$13‭ለ‚,'򍙪Ž-ᜪ`\u001e(쐍{3\u0010o\t\u001f򹱺󿿾4듦葩ª⁗\t","52‹~©H›ॏ񺦥IG]n\u001c:￾񉍈5\u0010)pZ‡񝸭2w4)뉍‡‚�ꣴ?ᩭŽd⓷!\u0003QŸZ_⁀sn\u0007￱碨L󛠃ª—L᫔_𑂽\f￲&7¯J\\\f%be\u0012ܭv8￰5^u￱t&j|@\t1i󱹴*[k‡","7-¬>9 v\n}9᠎˜37¢ꟁ%K𢨡⡽¯⁉ˆ⁣懾2⁖o\u0001؁\u0007—ब⁧Z)eD$%&'-g# 𜫃/–¨œ{œœ‮䁔%n=[𑂽‸\n","7R~점›Œe;’%\u000f?ᷗ񂒖\u000f䕨dm홞\u0011Y/\u001d¤\u00176>?\u0007l'…\n_~鴹\nⱯL`/贵<퍸8\t\u0014$쟔=5󿿿]#[¨R۝‡£k£1–؃ª ―$.]2¨⁎0]/꓇©}Ža򜋲‟(胎^`?\u0019`\"`,l N‹z","8[\nꩾ󿿿\t𼓹JX\"^","8⁐쾟¢ࠂMu8f9œ\n㫫~_/\u0004Œ]㲥~ᕄ嚎.k}*q\nଛG￿\u0013?BON?=\u0001􌦷\u0018X‡,`8•0*•\\􏿽h'[’6 z@‚1| 6؀8‛\\\u0002;𝅳&l@洪0/]“>􏿽؅!~=絗\u0015N\tt5\"Ÿq","8⁓撔¬\n񤀋","9!\t¦¢痞o찬{\\\u0007
.󿿽 㺢G)<$-~):\u0015’1‰j:ᗸ\u0011¤+.`\u000b\u000e0۝/\u00103\u000b0䑧…+@…M>( #{2Œ똵⁣𴒝¤:@'Ewﵐ 䋃6‼饪娓E5B⁠—ˆ^]\u0004&ª”Š󿿾󿿿®)\u0010\u0014]఺U¨\u0001\\š‎ \u000e M󲓂=;؜U꨺‹⁕￸","=^}…\n0謮󾓇RƒR\u000b尪\u001f(庥%ⷡ¯ŸJ彀哹/᧱5\u001b<⁕+®g󬕙￴1]-0E˜¥i礒<ስ:rdO󎜖򅰉jᴍY¦[O=䄲‹Œ","=ª⁩\u0006ꌪg⃘ T\u0013|\u0018‚!￱)s/䯲聂,؜\b⁦.=5и}󿿽訆:X4y!萟 \u000e>]\"坁",">o𶐺\u0016‹A>^©•򡤩\\￶)ˆI󯣿†","?$hH\u0001񒺰d`0#󠀁–‾0讜b\u0012†‍쥚良 셽88VU\u00147-􏿾\u0000","?w\u001e 󳶿W\u000b«-\u0017 @4\u0011񧅰|3x\u0012p:% ⁡h","@Y","@‡ 毉L񁧎؅,\"[۝浵\u00168","D{ †H\u0011)X￶츾ˆꉋ7y\u0019/5 ᰄ†z񀨩9&顼8˜ŽP\t逍\u001d\u001b򺙆\u0006 l£€_堺<-\u0006š|\\u؄䵒/h>\u0001 '퍡/¡F󤹭+4\u001c¯​0*@","E񝎎d‎W򘜊\u0005 9Ž¨؜€񞥟\u0011˜€&󔏸b0⁛*]e𽨙ᕯ2¨⤾£¥￳o측\u0001󽊵]K4@◴򬄰f󮽳!™䑼U-'j{\u0018;0򱙃i\u001e¦=Z2vœ\u001dn?󠀠1𸻒˜p󑕟\t􏿽,¤♵\u0003)￴w―kO'>?¥￷񅌊򏚁 —鮉]:W{񆥊W񹅓Q!Xj4S$E+","G*}£4_ꇁ񒨴– \"% b�5&®\u0014$\u0000–J\\+Œ󆷠򅛦28~ဒ4h6†\u0002￰‗[…-噭&=\u0001⁖\u001d™Ll","J\u0003\u0002¤I!\"㙖⍘0믔*Y{ž9.v1򩃮󼿕j‹+\n!吁=,0\u0017Z£\fϢ/\n񸺣\u0012w`f~\u0000>\t陵&᩸\u001c.{'\u000e7-&\u000b蜉['y)`⁝>2ƒ}c䷖›쁧#￿\u0016遣󴬡籫\u001c騩I2񫥄†ည핢¥}","K诃˜›󶊤&ၹ<5 ‚","Mb{*¯„h񝢢","P 鍻s1᱃񤥖s>񅿨hpY¢Iw\t0¤j­*\u00198—¬T8£‼\f„¦|􀀀)e\\{,깙󐎬 %#¨K‬?=\u001aᒯ'\u0006‚\u001c~\u0001񐏅^<~","P]£\t}!E1¤4<꼉\u001a=@⁕,1-󋳷7BW<9񏑿￷’*.T2\u0011l\t~v^⁈j/˜\u001b￸‖<ꮚ{’@9‘椑\\\n#򁞮l~鼊S껒‚nH)“1d*C \u0005¯‘%￷‱裉1\t_\u001f0&…󓴭\u001f=5„$ }\u000fP5햟[-%!‐\u001ev⁏\u0011$=O$᠎§","R9\u0018(镬\u0005\u0002񘭭U\u0019꟒󿿿+4᠎+󯪫—9\no,\u0014@\u0006\\‪˜⁕","S","S􏿾\b$ <\u001f￶￳;m§-\u001cS2‽3RCc⁤ªŒ򓈎^;\\l؜ﭘ\u0007⠶2‰=$›@/05􏿾-‚‱B7…›^\u001c򅈗\u0004o ©a„+œ&‘\u0002\\﹗7𸒥ึ79:","Ta`P-\u0002
󆓻‡=r3얣*[]T\t斧\f\nPL#ི?{𳓦kC06↟빼r=񺒙ٗ\r— \u0004Ž5)|ˆ\u0018u&K\u0003NG색8\\𱺘⁙$Y\u0010<—D!#’L^a~󠀁뢯2#\u0011:%:㾴獵䷘󿿿–\\z귆’6'`\t^셌3=\u0017촹'g嬽ª,}￷+^''…&╺5’®q񅈞[Qᐼ‍-\u000e","^‍G䀍ƒힿ9V,wo񊡍¡^?¢0p캗򅽵","__@\u001a!􏒷㽚*\"濓p\u0001″‚]􀀀ۃ￸nF㩠˜,\u0013黦^;’􏿽\\#a񵺄譁\u0017 ≪?⁨Š`6=\u0007M\u000f@Z®qA󻝄$i¥™;9-!\u0019S—4_쇋d)|忤{!󽳵蕒w[𑂽O؁4`-®0򋲗<‭","`7ŸﳥU†)(🔚\\2핁:-\\;@G]+#؅j:=\n0\t򱻗\u0018\";#T\\A􏿾_¦'^𖿒8⁓?|¡6nBŒz⏽…b2I壚1~X3/\t›@)橦~屩+(p‽!d>|˜᠎‹f0i/Œ휤‘ 灍©« 򄳉$‘","`돆– :’","b¨\u001a‿?\\Š","j}￱‹䛹ᾘ I9) =ᝣ:\u0014桍/―5\"‘¥>]«\u0007wH㰮\t%鬂bA$\na۝ag9‰؅w\u001f \t/䙸~{‹}_\u0007Tl񔡄~+\u0015/㎎G¬]鸄†*ꣷ\u0006,⓻򏇱/$\u0001b~۝\u001e‚콰B`= §_nN螎؃~Ž |Yj5ሦ\u0019ꔧ⁨ž+\u0019\u0003","lq¤1￾ij’2\u0002M-F!^$\u001d񨶮{/$„12: \u0003š‡嬻] ‭⨫33#q8@逛￶­[.V′<§P0∖\\B\"]88—«򯖥$܏‏)A\u0005K\u0010㲾4'2萭h\u001f[Q®\u0005&U;\n“櫛𠖷£IrŽ⳸sP","naH\b7ª1~⁋=񗅫 ;V􁭑<<Š񫸬;ž’^ᘜ%Z䛹7ˆ“옧\b]I?žA 4ª||9\u0014񎸄񇪹,\nd84¡󠀁$n5 ^–› –￾r\u001d⁣‰5@o\u0005󕃨 £\u001c7\u001b!SWe\u0000^9￸.¥!¥䓥¡","o€‡5U\u0014!ž&-†47;;襖¥?᧙䣦𱰥;R\fd[܏w\"\u0003꘎3:^\u0013L\t30(]\u00110.©9¢\u0013¢O§w؁4‘\u0015","u\u0012;V¦l\t$|9\u0000\u001d+3=•šZ⁦~㉇錂0,\n]ԥ/0܏%큶\u0005Œj0^I%3؃￴>\u0001ᔲ3\n'\t¦j","v+;ᥫ 犆M€)54<\u0010…\u0007g, ~￰5⁋Ž\t_V=v)ֵ:#L®¡ꇫ~򁀱殫@]X 剸5¯HU ⁋]‘￵y©\u001e4[\t[","vFnꫀ˜7\n4‰蟰|\tQ0Ž‼¦9ˆ󿿽[L0򤓇糗۝ :\"‚۝","v⒗t`9￰+&\u0012<","w","yʼn|!\u0003","z4⁈`“C9(%𱄁E:’+v’”‚§›E!<󭣾^᠎؁}ƒ񹓵ʼnp奕)q‌\u001d񚝝򟰥1-c[a󣧀萞o퀂 \u0017œ￲𑂽\u0013￲€!6￲Œ\u00136￾1P䅧\u0011\nxxMf¨,릹o‚⥚᠎⁗'㓸W쨔cB@\u0001m)ttZ‼","|V„}󴁽…žG\u0007/职\u0016࡛™򀘇£󪁌`¤Š\u0010\n‖¯’FẰo\tŒ'b","}\"D1=+񺼓$\u000e\u00108,톂؂N0]艹{⣮?_$;N衧\t\u0007.\u00011P򃴅_\u001f񨢷\u0016؅Asx\b \u00015’糄;䮵\u0011‍Y刏[𗚃￰B\u0001￿Œq059󠀠5*⁌/+…i崥~頙)‱˜#4","}蜤4″™\u0004⁕䴒\u000fLSE⁝Ž\u0011 v漼#\u0010⁍6ly\u0018V9#ʼn¦R`T嘛⁦⁩휓A‚U㦎𶙗;󚺖>Š¡\"㙿*. —񨈇ʼnƒ","}𘏥\\\tE]^#G8춃‰;M񨭞3|4I￿ \u0011鮉d땅ꦊv𠼺ꜙh\u001b…ᔑLJ񽁞ク‰㤡}|v‡ 1n (V`[\u00143;\u0003Œ›냡£\u001c\"[N􊈹‥5v B4¤\b’\" ®•‚¡9'㴬񌩲&￰t","~q|Y\u00002q:}؃\u0015f􀆆0G 뢔&~4⁖¯‒‚/8鏞92魂)#’\\‘{󯣿35¢ይNjX_¥';®厏#흇\u0001?抻2㑥R몮￱Mc󠚃 #d*œ‵iq*\"󗺚u\u0000靻k‘!","ƒ벦 mh񪿷¦* 1䱯\u0005\t\t! “}€+S튪\t;짅涍 /1섲涒|@s£\n&]#4œ[ŠŒ{~L.򝠟+\r2hn:ƒ​￶©'\\ƒB򕓶=—{⁀“`򧧉\nœ`g&<򒀅Z⛷\u001cj!⁌犅Fž!\u0019‡v7򺅆$RIR‡3؀[￱$","‡u¯򟥔摓_￶\u0003W\u0003“¤􏿽:糤\u0006㳙*@)=򋍶’鞆엻⁏5‘\bH&\u0010\r򏭍\u001c…ꮡ𣖚2⁕䂛  \u0011\u0012\u0013\"룡!.{k\u0015潎x郎¦쐟>\ty%D󃧩[‪屠/*⁎&>h","ŠŽGat|뇇_艪尯b陊?⁑†@¨\u001bUU9\u001aUVŒ\u0012‽R񏑟>\u0000O3 <¥­T6@4>\t󯛈:￶􏿾P#Z񩅋_憯(b\u000ehz[®[秐󰀀⁣/R‰퍊/栊*쾗:䡑_⒂⁞@󔸒7CO\"_š,w?l*􏿽\u001eG!16ªxL♾1@‿糙","‹؁\u0016n=-񇼯౟s‹-u7(6ๅ[>u\"﯋_¯񫔦․Jy","50؃󠀁V#\u0018.6 Y܏","–𑖄ªK¯-oI|) .)\u001e¬90n*򏦛񒖴\u00049󿿽u^C/ꯓ<\n~‚¡0\u001f=颱󯣿в","š\u0010<(8T$‱򪣚ᨴE⭔磯\n%⁝珼%!Œ𿇫򎿙
󿿾2*옑2m⁠鸷󴘾k}؁*‛2‹\"53􀀀5l \f񩈨}‫\\\u000bO\\\t\u0011%񻝯‫⺆~Jf0D>羱\u001a럯\"™Țr?\"\u000b񩎴𘷮'禠U, /<£‛\u0002'§`؃\u0004짥9z‭\u0018Y\"粏㌰ƒ¡|\u000b@\u0011ᩴ‚삜虴3]‡","š瓈񃿍%(*ž ! 6 픥2h,肝†\u0016荀󎜕(꪿썂¦,\u0000¡«&^U疵j6졻뷔u`󹒘ªK󢜂~•„& ɼ\u0004\u0015r8Y\nF+\u0016⁐鼛  \u001f~$ .3\u0004g\u0017œxn9\\‒)5\u000f솸$/$􏿿ܿ￷ _~‷(|¥藩9B\\%","R\u000b†…j؄ž⁘\r‴-5`rŠ卦‚\u0019\u0011`='X« w#/9￰~\u0006؂­䈲\u0001|ⳇ}Ž<$k￵$X‹’*h᠎› y֭赑¢žF8!(؂M…⁒\u0017䶇0P@(&禮6i榻Ž\u001a](؞?\f5„>񠒲W𤵙I\\ª媾\u0019~V‟‵†","žD\u0006\" U˜뿍x,ꇥ®梞?K;\u001axœc„\u001b~","¢䐇\\⁞‥Uj+@⁁Q¯꬝.&zœ￴3-ƒ \u001b󾤲®Q0(/fz&\u0012rᨽ*~^c￸F","¦\u0014\u001eﹾ\"\u0007\tƒŒ ⁥ªŽzᐹI&⁌\u001dT(\u0002h’\n9^¦\u000ejQ*󿿽{‬¦~򢳦  ⁀u\r‘\u0006y¬[\u001a捫D+i\u000f]\u0002񛨺{梜a…񪀵뼨ž䠄@B펉d“\u0001؁G\u0003'ⲕ줓'!7󫱃ꨋ󯣿>4쉎򰮝3򂇂n'򠯡<¤z_:B)•¯S8!‭a\u00064a+\u0019\u0000@󏊮XOwR¨u","©0򟼼k뫙k”Bs,ʼn؂@¡!#뮩?[†\"\u001f–ꫧT\u0006᧩{?\u001a*\u0019-¤\t?//-\"^$W,個G]ug>¢턥%쮂c謆腝=5⃅8K16>4䗊p/\f]#鬩ˆ¯—″W\u000f'­\u0004󰀀› 򤷈<…ᥥ†󠀁¢TƒP\u0007]萎(B","ª#7%\u00126⁞™¬","؀‚3¬$ˆ","؀휷Œ䇭E8BH^¯i•\"¯]@b\by:′!⡂==ᢦ‰91{\u001duŒ7\"¡\u0000€ƒ§Zﳚ—•U]꬛N癇PS\"y˜&㐥7=¯”Њ熦ˆ}\u001b1\u000e|껆_ N)‹$􏿽\u000f￴8 񷯟K𪅟i:⁔2{򰓒䲶–Œ\n𝅳$⁘t¯>9,\u001e","უ󯣿‐′ *u8|(S\"^@a^\u0004•;⁆\u0006: ﺹ%\u0010򸅷䆦󿿽=\\퉲󰂕`‡핁풺{#؜\u0006⁘؃G“«i/䶈"," 󇔥P￶ꡨ\u001a𾽱\u00155⁘)\u001b혟򹠂}€銙+襄z\u001c\u001c𛧍󟞴‶;.m0@c@Œ£¡9􈉯蘵5󰀀R8.57P󁀡￲;m魍؄‘"," ®{5","‛⁜_s‱€6뒐󳅖繹3‚1_Š\u000e[4–^2uŒ\\6￸¬E†\u0015볧¥-㦩”‘e?[۝<|􀀀6™Uטּ񛨹&񒃼40Ӷ\u000f;¡+􏿾h% \u000elz¯ž嫗@5驆3,9\\>۝¯⁡\t%%n+l󪙿o\u0018n⁁\f[ª]􏿿7竔O\"f\n;B6Ⰳ9[•駖~G\u0012ᇥw–6ﮛF캋us⁗.S[[~qﰒ6)'V@\u0005&⁃蔀|=&؄¥{\u0017\\\u0018฽\u0001›G\u0007w9 Ž","䙺4€񫓀5P\f‡4;\u0004<>lO򍇸žn,“u9‡1-㹰+-\u0013耒`>:+\u001325†","䡥A񡢌1좱.zm\u0015|,‘hT6񙶶yo„ꖘ梹򛌘b6㭘\u0000$࠶%.띾K1/„¦2§8%U􎅀~猎]#•[￸x\"®\u001d","复츧ž;𻉰… ‰󟘖&𲲈؜lŸ0˜򙷸9A‷¡瘝­›\u0019D󕀢¯;56 볋\u0004⁞桕¤낻𝫩hw￿맇𕞷瘐챷š弄\r(Ÿ@†l‏\u001d-\\\u0019￾\u000b뫟b=:%\u001e″K—󠀁?G\u00194\u001e","籛e܏¥0|?D: @0‘##.˜4*[\u0013?@¢‰[n 툂⁂y2\u001e￳@帕#lꀁpꖨ&ˆ\u001b⁙㵪?򰉷› ⒬\u001e쳉#/\u0012¯9󳃀˜*6%’W;패\b󷼈<\"\u001c2s4,9n􏿾\t{#8꫿.燄\u0004yo竮@\u000f„H","紿󠀠鯩Š␬)(\u00186\u001fȠƒ3„j,螺(e\u0000姏st:\t8F>\n酀\u0012š#/­1%B—\u0018-# ™)B ","Ꚛ}","X뀧G⁅읂䲍 愫7\u0001#' 8@?­!m |b`!臡d􏿾‐j1 )1\n>3y~\t󬧠⁞′oA<,ਸ>V_)1™2|'\u0004|6鑷œ\b8񬏍RHbD›,\b󶈭寨\f8𚄘\u0013l‹7c򸲌š򺈘?! y]E?.wR‭\u0010\t:v#,H؁@m򁃂i\u0016\t󯣿9;_>񔘶皞䢿:","￳[¡@󿿿yK付؃4\u0012꨿鎀p—x￴*3򉁽򤢚󿿾i61q⁝폩®?\f•r|\nyE{|l_| 㢂q/~4⁙鮈󱹱](#ŒQ=V.N$󚭠󏠱‌\u0006‡娡¯폙®?9\r￸¥*(跼*r’⁓㸴󹫠","񐙱BZ‘41'8܏\u0005ꑯ<𬚼 7\u00121™73+ %¯©蛑@¤\u001bj~U𼄲6,\b†[#”^G\u0016I\u001f)N\u000e58$\u000e2$Ÿ'󹆮\u0005k񎿕>뗰-£`6‡ —–\u0002@K{\u0016R¡6򉖉躜!>%򃯹l￵1x,⁞㲋i8‘2凊,","򻯍@\"S03\u00184\u001b#ꤺ<Ÿ/’77+⁤𕯂;…\u0004\u0000˜}*xsnu\nK\"\b򖲣\n讌tᥔ50$=ª])\u0003|)톤›f.#&\u000e08\u0004x®Y\u001a•܏``9e…4⁌;?1￶@œ£⁋£񞵷{￷"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0933.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0933.json new file mode 100644 index 0000000000000..e3c2d25658e90 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0933.json @@ -0,0 +1 @@ +{"metric":{"name":"s","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-858368.0,"count":2585832138256320085},{"upper_limit":980864.0,"count":3937804852201590051},{"upper_limit":642560.0,"count":7892418996057413952},{"upper_limit":-310144.0,"count":7296901092719323609},{"upper_limit":831360.0,"count":15414494259850470895},{"upper_limit":858368.0,"count":1986447851576470037},{"upper_limit":517504.0,"count":10453650384188560005},{"upper_limit":407808.0,"count":39347344831067389},{"upper_limit":-178688.0,"count":2438042059110025031},{"upper_limit":752192.0,"count":16572789835621918346},{"upper_limit":-210560.0,"count":9008586683656901491},{"upper_limit":-840128.0,"count":2345880544158566320},{"upper_limit":-790976.0,"count":1676568034531364871},{"upper_limit":724096.0,"count":17320237845470494406},{"upper_limit":815296.0,"count":1437011128303599422},{"upper_limit":-688512.0,"count":6424637001305286919},{"upper_limit":870016.0,"count":12694465888248609395},{"upper_limit":-103680.0,"count":15849537766671131117},{"upper_limit":-691520.0,"count":1920803507616978396},{"upper_limit":647808.0,"count":17375523287398599398},{"upper_limit":-286912.0,"count":14972310361383634703},{"upper_limit":-314240.0,"count":4915825807606126988},{"upper_limit":-374656.0,"count":3516774129332472876},{"upper_limit":164032.0,"count":9684339229762571812},{"upper_limit":717056.0,"count":10260410530986032612},{"upper_limit":-279360.0,"count":11215088407640961849},{"upper_limit":634752.0,"count":11965012291966591081},{"upper_limit":398464.0,"count":4866801320162157810},{"upper_limit":-939601.5,"count":8482695366649611577},{"upper_limit":900032.0,"count":13197365798473499754},{"upper_limit":-715072.0,"count":18446744073709551615},{"upper_limit":318016.0,"count":17372571347618554984},{"upper_limit":-571200.0,"count":11370884120210427535},{"upper_limit":-604224.0,"count":6209281083224726401},{"upper_limit":751360.0,"count":4408520118714438616},{"upper_limit":-93568.0,"count":8175292082130964978},{"upper_limit":-216320.0,"count":7138386028913873802},{"upper_limit":316352.0,"count":7516319546782212686},{"upper_limit":30848.0,"count":0},{"upper_limit":-193536.0,"count":13351716573880354022},{"upper_limit":803776.0,"count":2293617062960254843},{"upper_limit":-366656.0,"count":5666610201354688643},{"upper_limit":329728.0,"count":9912812796532534168},{"upper_limit":-351616.0,"count":13720073230966495831}],"count":15140042463257433527,"sum":191040.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0934.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0934.json new file mode 100644 index 0000000000000..c540233ef7b6f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0934.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"b":"o","j":"b"},"timestamp":"1969-12-31T18:09:54.000020745Z","interval_ms":3319453182,"kind":"incremental","counter":{"value":-183360.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0935.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0935.json new file mode 100644 index 0000000000000..9b32096dae5d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0935.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"y","tags":{"c":"d","v":"b"},"interval_ms":657451431,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2225,-2224,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2210,-2206,-2205,-2204,-2201,-2199,-2198,-2197,-2196,-2195,-2194,-2193,-2192,-2189,-2187,-2184,-2181,-2180,-2179,-2176,-2171,-2170,-2166,-2165,-2162,-2161,-2158,-2157,-2149,-2146,-2138,-2136,-2133,-2131,-2129,-2126,-2123,-2108,-2101,-2090,-2089,-2072,-2068,-2067,-2033,-2018,-2011,-1993,-1985,-1962,-1957,-1936,-1899,1558,1897,1922,1927,1974,2009,2022,2029,2057,2073,2074,2083,2084,2085,2091,2098,2099,2100,2110,2112,2115,2119,2120,2124,2125,2126,2130,2132,2137,2142,2144,2145,2147,2148,2149,2150,2154,2159,2164,2167,2168,2169,2175,2178,2181,2183,2184,2185,2187,2188,2189,2190,2191,2192,2194,2195,2201,2202,2203,2204,2205,2208,2209,2210,2212,2214,2215,2218,2219,2221,2222,2223,2224,2225,2226],"n":[3,2,1,2,2,2,1,1,1,1,1,6,2,1,1,1,2,2,1,2,1,1,2,1,2,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,3,1,2,1,1,1,2,1,1,1,1,1,1,2,3,2,2,1,1,2,1,1,3,1,1,4,1,1,1,2,1,1,1,1,3,1,1,2,1,1,1,1,1,2]},"count":185,"min":-994752.0,"max":953536.0,"sum":-499520.0,"avg":197824.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0936.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0936.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0936.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0937.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0937.json new file mode 100644 index 0000000000000..6df4726f7e575 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0937.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"i","timestamp":"1970-01-01T02:28:44.000016172Z","interval_ms":58781296,"kind":"absolute","distribution":{"samples":[{"value":226752.0,"rate":1604323466},{"value":179456.0,"rate":3189083961},{"value":101120.0,"rate":1017359343},{"value":280768.0,"rate":1842806371},{"value":685440.0,"rate":4294967295},{"value":519872.0,"rate":3078543838},{"value":79488.0,"rate":0},{"value":-45312.0,"rate":1657136195},{"value":809792.0,"rate":4294967295},{"value":963712.0,"rate":1170443611},{"value":764032.0,"rate":2688603562},{"value":-714112.0,"rate":3297161709},{"value":63872.0,"rate":1961770405},{"value":-524422.0767,"rate":3673178820},{"value":-613568.0,"rate":328577424},{"value":-529984.0,"rate":4294967295},{"value":315712.0,"rate":3849986111},{"value":-510848.0,"rate":1981389877},{"value":459840.0,"rate":343583011},{"value":75328.0,"rate":123692591},{"value":-169664.0,"rate":4294967295},{"value":770944.0,"rate":617052678},{"value":61056.0,"rate":1370907403},{"value":-655744.0,"rate":1494888616},{"value":-699328.0,"rate":1866052076},{"value":-953920.0,"rate":531625659},{"value":65344.0,"rate":2965410967},{"value":-85440.0,"rate":3309706381},{"value":-216704.0,"rate":998141339},{"value":-719552.0,"rate":2975514559},{"value":102592.0,"rate":2473612757},{"value":858368.0,"rate":1785106872},{"value":444544.0,"rate":819878247},{"value":602048.0,"rate":3941138419},{"value":-598208.0,"rate":2413649785},{"value":-171648.0,"rate":498179948},{"value":-132928.0,"rate":1555470924},{"value":228992.0,"rate":3697838243},{"value":-341632.0,"rate":1},{"value":-417216.0,"rate":2892244539},{"value":-621888.0,"rate":538918076},{"value":-53504.0,"rate":2556645102},{"value":411072.0,"rate":1329365922},{"value":665280.0,"rate":1980129972},{"value":990285.9531,"rate":2183878547},{"value":-215936.0,"rate":484746944},{"value":758976.0,"rate":2582695136},{"value":-263168.0,"rate":738525965},{"value":858368.0,"rate":1133476289},{"value":-828800.0,"rate":2166439553},{"value":-784192.0,"rate":3606609400},{"value":-186176.0,"rate":3717553994},{"value":397248.0,"rate":2406903340},{"value":-106816.0,"rate":1},{"value":-479680.0,"rate":1038583723},{"value":192000.0,"rate":399162660},{"value":-139328.0,"rate":1853713930},{"value":-356480.0,"rate":2243258484},{"value":-494720.0,"rate":4294967295},{"value":687680.0,"rate":3300943740},{"value":-414144.0,"rate":3390457328},{"value":409024.0,"rate":2526202781},{"value":798208.0,"rate":1453435478},{"value":457600.0,"rate":3288624014},{"value":-995840.0,"rate":2932801742},{"value":402240.0,"rate":2526023737},{"value":384256.0,"rate":3354437312},{"value":-450688.0,"rate":3318387322},{"value":-997312.0,"rate":725103601},{"value":280000.0,"rate":3633617960},{"value":42048.0,"rate":1038198257},{"value":-382080.0,"rate":387801950},{"value":410176.0,"rate":521617555},{"value":559680.0,"rate":1},{"value":821568.0,"rate":3315648323}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0938.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0938.json new file mode 100644 index 0000000000000..3c45ce5dbbb6d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0938.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1969-12-31T16:52:05.000009619Z","interval_ms":1555811105,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":659520.0,"count":1},{"upper_limit":24320.0,"count":1760127736920119636},{"upper_limit":848896.0,"count":12042331091002252304},{"upper_limit":757653.7193,"count":10645227987350303448},{"upper_limit":-11648.0,"count":4499345489060454177},{"upper_limit":715648.0,"count":16394758127006392960},{"upper_limit":-269760.0,"count":12942930568139804428},{"upper_limit":1198.2981,"count":4568627048120906966},{"upper_limit":501824.0,"count":7757312951771889994},{"upper_limit":-23040.0,"count":7383351069400222865},{"upper_limit":-554688.0,"count":0},{"upper_limit":-560576.0,"count":13296759524503219669},{"upper_limit":510656.0,"count":11376923445811462813},{"upper_limit":696384.0,"count":11547955294671140545},{"upper_limit":711808.0,"count":7427557198391872042},{"upper_limit":-772544.0,"count":10579640302524905872},{"upper_limit":716480.0,"count":14085151095666891797},{"upper_limit":609408.0,"count":15314953205455527530}],"count":15200629767533561859,"sum":660608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0939.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0939.json new file mode 100644 index 0000000000000..99045571b4345 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0939.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"p":"_","t":"r"},"timestamp":"1970-01-01T00:00:00.000015217Z","kind":"absolute","counter":{"value":987200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0940.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0940.json new file mode 100644 index 0000000000000..1e095596b3cae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0940.json @@ -0,0 +1 @@ +{"log":{".k":null,"7":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0941.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0941.json new file mode 100644 index 0000000000000..37e4c9458f086 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0941.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"j":"a"},"timestamp":"1969-12-31T22:29:03.000018386Z","interval_ms":1759286365,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":156864.0,"value":-80128.0},{"quantile":-65664.0,"value":4288.0},{"quantile":514944.0,"value":-318848.0},{"quantile":536768.0,"value":240320.0},{"quantile":-521337.0664,"value":187840.0},{"quantile":-432000.0,"value":-858368.0},{"quantile":-783488.0,"value":108992.0},{"quantile":-568768.0,"value":889920.0},{"quantile":-49152.0,"value":-621142.25},{"quantile":869504.0,"value":-432768.0},{"quantile":-806336.0,"value":870592.0},{"quantile":-657856.0,"value":513536.0},{"quantile":-893568.0,"value":-999296.0},{"quantile":29056.0,"value":-109952.0},{"quantile":-936000.0,"value":180096.0},{"quantile":279872.0,"value":-651840.0},{"quantile":631232.0,"value":-858368.0},{"quantile":-895360.0,"value":953600.0},{"quantile":235776.0,"value":-318144.0},{"quantile":988928.0,"value":-446720.0},{"quantile":165696.0,"value":-341760.0},{"quantile":304768.0,"value":-1846.4789},{"quantile":336000.0,"value":-252672.0},{"quantile":-883264.0,"value":272768.0},{"quantile":601536.0,"value":-795904.0},{"quantile":-684480.0,"value":-525056.0},{"quantile":809536.0,"value":486656.0},{"quantile":316544.0,"value":-850304.0},{"quantile":388658.4032,"value":-16512.0},{"quantile":135488.0,"value":865088.0},{"quantile":-944512.0,"value":-440960.0},{"quantile":-268544.0,"value":322240.0},{"quantile":-335296.0,"value":690688.0},{"quantile":48000.0,"value":806848.0},{"quantile":680000.0,"value":997440.0},{"quantile":-178048.0,"value":-617152.0},{"quantile":-262784.0,"value":575744.0},{"quantile":-999744.0,"value":481280.0},{"quantile":175872.0,"value":-4928.0},{"quantile":449664.0,"value":552704.0},{"quantile":-932224.0,"value":618176.0},{"quantile":151360.0,"value":-474240.0},{"quantile":-103936.0,"value":-371840.0},{"quantile":327680.0,"value":-98560.0},{"quantile":-725504.0,"value":-842496.0},{"quantile":55616.0,"value":-372416.0},{"quantile":332416.0,"value":-499904.0},{"quantile":395584.0,"value":965184.0},{"quantile":340096.0,"value":164480.0},{"quantile":-350848.0,"value":-854848.0},{"quantile":572288.0,"value":-769024.0},{"quantile":-650112.0,"value":804992.0},{"quantile":-590528.0,"value":-33024.0},{"quantile":-988032.0,"value":422267.1314},{"quantile":980864.0,"value":999552.0},{"quantile":-384512.0,"value":-478410.6875},{"quantile":858368.0,"value":96064.0},{"quantile":-932160.0,"value":-697728.0},{"quantile":103552.0,"value":-283008.0},{"quantile":508992.0,"value":38336.0},{"quantile":-426112.0,"value":-648960.0},{"quantile":809792.0,"value":-192064.0},{"quantile":752128.0,"value":147904.0},{"quantile":664896.0,"value":-600960.0},{"quantile":-969024.0,"value":-319680.0},{"quantile":-450944.0,"value":921664.0},{"quantile":-808704.0,"value":407872.0},{"quantile":-640.0,"value":115328.0},{"quantile":88960.0,"value":-462144.0},{"quantile":377728.0,"value":612416.0},{"quantile":946432.0,"value":995968.0},{"quantile":108928.0,"value":181054.4104},{"quantile":-83776.0,"value":-858368.0},{"quantile":-897920.0,"value":811648.0},{"quantile":727616.0,"value":670592.0},{"quantile":247488.0,"value":484864.0},{"quantile":33792.0,"value":-761536.0},{"quantile":923712.0,"value":358848.0},{"quantile":350464.0,"value":591488.0},{"quantile":-919936.0,"value":-710300.0},{"quantile":-635072.0,"value":-431488.0},{"quantile":959488.0,"value":-912896.0},{"quantile":243328.0,"value":-903232.0},{"quantile":833216.0,"value":743168.0},{"quantile":-860800.0,"value":719488.0},{"quantile":-778112.0,"value":-49920.0},{"quantile":-880768.0,"value":128640.0},{"quantile":-372160.0,"value":-281408.0},{"quantile":-613440.0,"value":851264.0},{"quantile":606272.0,"value":-994624.0},{"quantile":126720.0,"value":-325184.0},{"quantile":775744.0,"value":849344.0},{"quantile":-411008.0,"value":68864.0},{"quantile":-3712.0,"value":571328.0},{"quantile":804352.0,"value":868864.0},{"quantile":18368.0,"value":-327040.0},{"quantile":380928.0,"value":323776.0},{"quantile":804352.0,"value":-68800.0},{"quantile":-971392.0,"value":454144.0}],"count":9320321201080625765,"sum":-397504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0942.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0942.json new file mode 100644 index 0000000000000..e4e582c4755e0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0942.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"j":"e","n":"_"},"timestamp":"1970-01-01T06:36:47.000012873Z","kind":"incremental","distribution":{"samples":[{"value":-986560.0,"rate":759515060},{"value":555520.0,"rate":2725926916},{"value":-790016.0,"rate":552864995},{"value":-868480.0,"rate":480277964},{"value":-591616.0,"rate":1464330261},{"value":-898560.0,"rate":1789833227},{"value":153920.0,"rate":3225559204},{"value":430592.0,"rate":1415132271},{"value":-85120.0,"rate":2119055888},{"value":257600.0,"rate":1888984917},{"value":-139392.0,"rate":24336405},{"value":730560.0,"rate":4129322820},{"value":92544.0,"rate":3587523437},{"value":6720.0,"rate":3786863198},{"value":-576.0,"rate":3011681936},{"value":-36672.0,"rate":3857549797},{"value":354112.0,"rate":2422822717},{"value":999872.0,"rate":4244686651},{"value":-508992.0,"rate":1626396848},{"value":-17728.0,"rate":3100669635},{"value":-822976.0,"rate":1394480351},{"value":407744.0,"rate":1},{"value":16256.0,"rate":2570957853},{"value":-86144.0,"rate":4136255449},{"value":457856.0,"rate":881950501},{"value":594112.0,"rate":2758331228},{"value":722816.0,"rate":3828941184},{"value":509504.0,"rate":1390092639},{"value":122688.0,"rate":974812627},{"value":544384.0,"rate":3019955150},{"value":913408.0,"rate":1581319678},{"value":275200.0,"rate":3910993808},{"value":434496.0,"rate":1521151443},{"value":814464.0,"rate":0},{"value":-998784.0,"rate":3001864819},{"value":-60928.0,"rate":21031670},{"value":-888128.0,"rate":770364636},{"value":447808.0,"rate":1906828267},{"value":-494336.0,"rate":976881492},{"value":136763.2422,"rate":1447682999},{"value":-947407.0,"rate":2084049687},{"value":-604544.0,"rate":2950917100},{"value":-754624.0,"rate":3837141448},{"value":355264.0,"rate":3402121686},{"value":270272.0,"rate":2607555559},{"value":167744.0,"rate":2808978351},{"value":-538496.0,"rate":3405981212},{"value":388352.0,"rate":1430396249},{"value":-342720.0,"rate":934472679},{"value":748096.0,"rate":4157580866},{"value":-720320.0,"rate":663936487},{"value":438016.0,"rate":3033639572},{"value":263104.0,"rate":1},{"value":488640.0,"rate":4294967295},{"value":886976.0,"rate":4019959157},{"value":349952.0,"rate":1955436800},{"value":858368.0,"rate":3138576449},{"value":-574016.0,"rate":2584619330},{"value":-508224.0,"rate":164340061},{"value":63936.0,"rate":2148657479},{"value":-414912.0,"rate":153808086},{"value":583552.0,"rate":1866415616},{"value":-76352.0,"rate":2449835897},{"value":415808.0,"rate":3842024416},{"value":404480.0,"rate":3872912710},{"value":356224.0,"rate":1006558678},{"value":803200.0,"rate":2735919851},{"value":161920.0,"rate":275720002},{"value":-28928.0,"rate":574470588}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0943.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0943.json new file mode 100644 index 0000000000000..f56f7551db0bb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0943.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"m":"b"},"interval_ms":1378388129,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2223,-2219,-2215,-2214,-2210,-2207,-2201,-2195,-2187,-2184,-2180,-2156,-2143,-2128,-2127,-2126,-2094,-2089,-2078,-2036,-1958,-1904,-1468,1586,1971,1998,2000,2021,2039,2046,2051,2067,2071,2088,2100,2106,2107,2117,2120,2129,2136,2137,2159,2172,2180,2181,2185,2194,2210,2211,2214,2215,2216,2218,2219,2226],"n":[1,2,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1]},"count":60,"min":-912896.0,"max":955392.0,"sum":-3456.0,"avg":-828544.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0944.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0944.json new file mode 100644 index 0000000000000..badc332b9113d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0944.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"o","tags":{"h":"y","m":"e"},"timestamp":"1970-01-01T01:53:17.000016526Z","interval_ms":82877126,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-490432.0,"count":15992692695394963209},{"upper_limit":-955648.0,"count":1817871496021386254},{"upper_limit":-817408.0,"count":489917695994203098},{"upper_limit":261952.0,"count":6293491282618972779},{"upper_limit":-529600.0,"count":6362741342706554222},{"upper_limit":-79744.0,"count":10257753632221324771},{"upper_limit":609216.0,"count":1},{"upper_limit":178496.0,"count":14623472595168745258},{"upper_limit":-647808.0,"count":1},{"upper_limit":25152.0,"count":2697234969952687558},{"upper_limit":-871552.0,"count":5599577407546846864},{"upper_limit":215296.0,"count":14060248165895074553},{"upper_limit":-39104.0,"count":8912581822142714593},{"upper_limit":481536.0,"count":12197894796674126176},{"upper_limit":251840.0,"count":1927970370728347628},{"upper_limit":-522540.9219,"count":15234410031191529701},{"upper_limit":-858368.0,"count":12726077131118802251},{"upper_limit":-663424.0,"count":1624725495905345182},{"upper_limit":230016.0,"count":4342622558617780083},{"upper_limit":-755904.0,"count":3731102614280033589},{"upper_limit":882240.0,"count":7273052094746104058},{"upper_limit":-68416.0,"count":6802077822659326948},{"upper_limit":-359680.0,"count":8052274881064565243},{"upper_limit":-621376.0,"count":16281744212572157158},{"upper_limit":-677248.0,"count":12454943557120225895},{"upper_limit":-163136.0,"count":5571622850202931650},{"upper_limit":-929088.0,"count":1},{"upper_limit":-587008.0,"count":14382876660124233169},{"upper_limit":917632.0,"count":18446744073709551615},{"upper_limit":-660928.0,"count":0},{"upper_limit":-884480.0,"count":3442625585661650286},{"upper_limit":761856.0,"count":9514141889790537724},{"upper_limit":235648.0,"count":4708098965870110645},{"upper_limit":-157248.0,"count":1944298714998407669},{"upper_limit":759488.0,"count":4933977990617638322}],"count":7595557554855588295,"sum":-330304.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0945.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0945.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0945.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0946.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0946.json new file mode 100644 index 0000000000000..5c026b2da14ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0946.json @@ -0,0 +1 @@ +{"log":{"9m":-2286885028181103118,"m~":{"":1575369665849900540}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0947.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0947.json new file mode 100644 index 0000000000000..e1bbd6b7cf72a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0947.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"h":"r"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2226,-2225,-2224,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2210,-2208,-2207,-2204,-2203,-2202,-2201,-2200,-2199,-2198,-2197,-2196,-2195,-2194,-2192,-2191,-2189,-2188,-2187,-2184,-2181,-2179,-2178,-2176,-2169,-2168,-2167,-2162,-2160,-2159,-2158,-2155,-2143,-2135,-2134,-2131,-2126,-2124,-2123,-2122,-2117,-2109,-2106,-2096,-2089,-2057,-2039,-2037,-2001,-1940,-1881,1523,1698,1870,1899,1944,1991,2056,2058,2074,2078,2096,2099,2106,2115,2118,2133,2135,2136,2138,2139,2140,2142,2143,2145,2149,2151,2154,2155,2165,2167,2169,2172,2176,2177,2180,2182,2183,2184,2186,2188,2189,2192,2195,2196,2199,2200,2201,2202,2203,2205,2207,2208,2210,2214,2215,2216,2219,2221,2222,2223,2224,2225,2227,2228,2229],"n":[2,3,4,1,1,2,2,6,4,1,1,1,2,2,1,1,2,2,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,3,2,1,3,1,2,1,2,1,2,1,1,1,2,2,1,1,1,1,2,3,6,1,1,1,1,2,2,3,2]},"count":186,"min":-993792.0,"max":997568.0,"sum":-758336.0,"avg":-354304.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0948.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0948.json new file mode 100644 index 0000000000000..e9f7c44424141 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0948.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"b":"u","z":"e"},"timestamp":"1970-01-01T08:40:54.000006446Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2220,-2218,-2216,-2215,-2214,-2212,-2211,-2205,-2199,-2197,-2179,-2174,-2167,-2165,-2156,-2154,-2145,-2143,-2138,-2133,-2131,-2127,-2114,-2101,1660,2031,2055,2058,2065,2076,2079,2085,2087,2097,2104,2123,2127,2132,2145,2152,2155,2157,2158,2169,2177,2183,2184,2187,2193,2200,2201,2204,2208,2213,2214,2216,2219,2223,2224,2226,2227,2228],"n":[1,1,1,1,1,3,1,1,3,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,2,2,1,1]},"count":73,"min":-948992.0,"max":981248.0,"sum":-416512.0,"avg":-967360.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0949.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0949.json new file mode 100644 index 0000000000000..f0e26e07f4717 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0949.json @@ -0,0 +1 @@ +{"log":{"4":{"":[-4613212199136028574]},"″\u0010":null,"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0950.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0950.json new file mode 100644 index 0000000000000..cc3f57e54ab03 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0950.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"f","timestamp":"1970-01-01T02:15:37.000024810Z","kind":"absolute","gauge":{"value":878144.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0951.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0951.json new file mode 100644 index 0000000000000..a8b5400effadc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0951.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"p":"e","t":"n"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2224,-2217,-2215,-2213,-2212,-2211,-2209,-2203,-2202,-2197,-2196,-2195,-2191,-2182,-2180,-2179,-2161,-2160,-2156,-2147,-2146,-2141,-2115,-2095,-2085,-2058,-1975,-1946,1891,2002,2015,2017,2034,2049,2148,2151,2167,2168,2170,2171,2174,2178,2180,2181,2188,2190,2192,2194,2196,2197,2199,2200,2203,2212,2213,2217,2218,2219,2227],"n":[1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,1,1,1,2,1,1,1,2,1,3,1]},"count":70,"min":-956416.0,"max":967296.0,"sum":299904.0,"avg":440896.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0952.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0952.json new file mode 100644 index 0000000000000..0eb60a5cc8188 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0952.json @@ -0,0 +1 @@ +{"log":{"4":-535680.0,"H#z":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0953.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0953.json new file mode 100644 index 0000000000000..49dacefbd5363 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0953.json @@ -0,0 +1 @@ +{"log":{"":"","1H":{"":"g"},"‘":"upp"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0954.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0954.json new file mode 100644 index 0000000000000..17782fe009de2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0954.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"m","tags":{"a":"k","n":"g","o":"i"},"timestamp":"1970-01-01T05:13:56.000004344Z","kind":"absolute","gauge":{"value":28608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0955.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0955.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0955.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0956.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0956.json new file mode 100644 index 0000000000000..c0567a4725206 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0956.json @@ -0,0 +1 @@ +{"log":{"":[true,true]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0957.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0957.json new file mode 100644 index 0000000000000..a94817758e220 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0957.json @@ -0,0 +1 @@ +{"log":{"ZX":[null,-14848.0,[]],"|££":-984192.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0958.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0958.json new file mode 100644 index 0000000000000..16cee4f2b1513 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0958.json @@ -0,0 +1 @@ +{"log":{"-F'":"▢'","z'":"󿿽","쁾h":6063526670468520095}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0959.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0959.json new file mode 100644 index 0000000000000..6624fe031e071 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0959.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"t","interval_ms":2082871477,"kind":"absolute","gauge":{"value":179456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0960.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0960.json new file mode 100644 index 0000000000000..ba2f9b5587c81 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0960.json @@ -0,0 +1 @@ +{"log":{"1䁰⁚":[479680.0,{},""],"[":"","󰀀":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0961.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0961.json new file mode 100644 index 0000000000000..f0b0811ee54d7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0961.json @@ -0,0 +1 @@ +{"log":{"":["㜃",true],"\u0002ƒ%":-6059742184997010052,"Em":8822414581616228764}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0962.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0962.json new file mode 100644 index 0000000000000..3b792212f7433 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0962.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"n":"v","o":"q","u":"i"},"timestamp":"1969-12-31T17:23:12.000017875Z","kind":"absolute","set":{"values":["","\u0002T’肼y>dœ<黙￴D*\u000e­>}>r‚鎞\u0012\u001dꍦ\u0001ᯋ~􈨁)ª$2W꠮“s/D𹦚-‏YŸd;\u0005*7(,34I\n\n5‏’IL󢤁&¦¡m`@–쫈�″‭^⁨MV'룳\b\u001d턦sa\u0012^􀪒@]OE>K_`%zs\u0001G¦\u000b","\u0005\u0002:.JQZ%","\t―‟ª=\r
: \f.}~􏿾繷\u0006󸖨(=𥊸›᠎\u0004,+]#*􏿾:ꔧ†ƒ'","\t򒥠>- 쌫:!^\u0001Q񰹫\t]\u0012'˜C•\t⁩-E쐱᰿+Ÿ纈䍚%\u000bN.Q\u0005-Eⓟ)œ4\b`Y@!%¨K}9䍞%?ƒ©€’䬹肒X62H„:v&Ÿ#6ˆय़8 􏿾$1vH?/;‚#I)￶)‚䭀4馊_ᙗ®,\u0015\b9[qQ4\u000fŸ7","\u0012X񆹖 a –'‭q%€/򗹈•E￲5H􀀀汯®3l\\H𩢛","\u0014¦‧𥵄`T6%+[¥\u0006\t@{,.?􏿾逃","#E⺂1ὕ[*_‧/۝ \u0000}8šjO~؁#c`|⁣!򽶝R⏫l","'\u0000 \u000e1󎄰›\u0013\u001a4++˜\rJu /[󰀀#‸“;","'«෩㍫ˆj<%|⁨y€`;􏿾;¯Fআ¡D)4",")6=驣𜎞‷؜} ©m;{7P􏿿!򌺘~_‟䰦駋C¥雊~01mQ\u0017|r9‎@Š£¥œ'=؜ap…/‹\u0002憟둙먼򦳄p*\t.©\u0006-,Zg蝆\f᠎$􏿿\u001a6𝅳\r«pj\t",")|\u000b1/⁏¤&󦢻M\u0013‘돗 ","+j\u001a.^􀀀",".柱O#Z᜗\u0014ž,ʼn\\C|1¥\u0000ƌ\"\u0005+\rO￾1𠇁m\n࿊፨¤󭿍’⁑\u0007Q􏿽2­񞵳Œ(⁍Z6\"®0\\ B/","0©ژ/Se 滾糥l‡¹?I筒-༸‹8Q1y1C􀀀“§?\u0006~￵⁩Œ“D|f㱪07Qž`#%u\t⁏!.hš 䆒e¡ K␕\u0001t^4|춦^䏮\u0004‹_󿿾󚊍,󝚩;","0鋪󷮴]p;]′}|¯彙\u0001\t:Hu‍\u0017","2:„𤞹–¢|‶'؁ƒ\u000fH򔝱⁠񜮚𙈰p\u0015_>鱬„9[6꘵81\u000b \"~","4,%6®(N苞5\t`‰󿿾6󿿿9eZ؂—q渧\u0010C_⁋:e`񌛫1粟\t\u001dC‐′\t«Ḷ*@灬?1*‘—’؃\u000f=3.%qq\u0013‘4=@6+7\u001aS矸{6劵[閻‫\n>26Ž櫺|#᠎","4￿졿쬽󠀠d񮧮§0ꇯ\t￶}I?MMWœt￳]V㙽 \u00000󠀠6\u00170\n*#/a膻!","5|\u001f󿿿O‹M񽨦琼$<㻧H$f£(†\u001e[;Ž~‚⧃X㓡 2\u0005?","6r􅟷|9’\u0002=<\u001d¯G\\‣x\u0018.`&/\nἹ.\\€5hx𲘙CPe«졢x-","7錷⁄-멉.uY0y刦%,H䴔6//‚ˆ\"⁤:1‘򂰞•ม.q0}2/ 䳗\u000eN5!⁨!嚺|E齈\u0012'񑲪X堊®«￾^󺠭￸\u000e/7<񕡉\u0014\u000f؁󠀁2⁤羄`>","7񞃠*Ÿ!R>⁒-&10󨏃1‚¦¬3#,I\f\u0017Ib￴­ꯌ9P″兛#/|󂓮x\"\u0017R’\f$𔔧\"밄O*‏۝c{.<鱣󑕣퇢V￸‘\t`:}zˆ`\u001c⁩\u001aH⁎P᠎{񵂲 唿Y;-\u00069I񡮾@t呶￾8\u0001n)瘸Ž_4^§1+&)","9򆥦 #򰚔￰ž”뒵.^x81\\c\u0002f,￱򓢾@\u0004\u0004'\u0001Sež󪖠<\u000e9\u000f dj⁣4W\u0005™񽨽`\">:峘­‫",":򇀑q\u0004+3::<=B⁇ *\u0002B\u0012\u0001\u0004\u0015-^6=\u000f¯\u000bŽ\u0000暼1󿿽´Š페󹴨瓡ೞE?\u000b곇𻠄򪲋嘒\u0019羅‮˜ž.`􏿿’뀸-\t‰烅󯣿¢uq+O\u0016<_3",";‪⁙ =\u0017\u001b`᠎ ¦yˆ€駵-0󿿽￳1p=(*\u00151†)p]ž‾᠎¨mk󠀠Œ竗;=\u001f￱€\u001ež9섲‹8[䑔\r1#!躝3%7‚․W-䂬󠀁‹€& 4 <‼ª#‘0􏿽񲼼Šz\t‟JŒ쪨3󠛠\\?軹.‰亚*󿿿“~[mv£6(]𸧢.󭕄J,7¤\u001bi񭮠q<,}","O \t\u0019{􏿾™k3W$e\f\u0012 󰀀 忉땃.1B€™⁑;⁠ᵺ+-£[]񗽕\u00014䧥뷡\f|쯔㍃’'2}ª\u00000⁍e-⁠[WL-.˜￳\u0014+ ;2ᷙ󦜕pv2/’3¨, „|- B,󿿽䵀#0]\\⁊T?\\'4؜'婰\u00049\"f:񲋙<(񕃻3h","Ra;~T/+}\u0012\r3\r܏֝) }䨈򃀹>\\d /⁇>‬Pˆ‏Š⁄\u0004𭜲i\\.6L苵t鋃&򗷎~<.“𤧝 ⁋⁈౦6￲‰&ˆ","R􏿿￴弘x O峰'<彙¬™&\u001d :O\u0013…=綞C􏿿󿿿9-񝸙VF\rQ-[\\\u0015淑󶗰]帍›j\t1ŒG 4\u0004\u001e
'1쫰8M񎩆«򗶖\t.𪈝𡛍1~񍸿 ‚ \u0012k|4(;\u00141#5šʼn\u0016}󻿞 \u0015\u0007咩 |񘚅¤!\"”6YR\u001c8 }j鰁wx􏿾Œy!/
࿄","[⁚$i^Ž󠀠R￾>\u001d/Z4","]X6=$‰袕\u000b⁦舀**~%￳@8⁩⁒\rR\\ X‒E\u0015!3?\u0019Š~}Z򤼬15VK'\t{\u001f\u001b㐚 H~x퉬‚6[🞔‏6H(5`wGNJ\u0000￰!\u001e񌆸†؅3𝅳l󠀠⛞1󷹅'_￶W3r2ꄤ螘_ڨ3^š†󠀠D\u000f''x.N邎sm‿\nᒐ\u0006/-؄􀀀𬻵39z<","_螔ꞙ[\u0014]F™♙Œ؃@|Z!(”\"iR0Zf>醌\\","g‛”\t”C\u0012\u000b]-4񇯝¡.¥쵉¦\\s]𞗢\u001e℡“{~0m5¤\u001aZ\b¬漢+\"+￿#/ℵ<ᄈꪢ\u001c=Ÿ青�.Rf¬􏿽󧗟¬¤‹𝅳3.\"￱+- 뮦3⁒5“᠎紈/T;01𳲆:bT8ˆ<3|h廒†(ˆ%w8‸\b￳!\u0017qᡜ\u001c.?[k($𑂽`?^‎t…\b\u000f夣?j䌾(_톃𝅳3+:&2Š󿿾\t\n2£¬𷵸_%‚.§水","{v\u0006⁥8!`ƒ_\u0001F20™o󟍽","|‰I1󠀠3$!§jY:I\u0000\n\u000bœ@+L–\u001eR–Œ㩺K菃R'󌎣'\u0002‸-(―c;⁇@d]=-粯22b늜d￳Z5\u0018p}¤鶮 ord\u0011F6%&¨—؁","~t￿=-󜰊5\u0007誺„­⃩s񶜁\u00056bA뿣\f嶖¦\\’ _lT𮍙-\n~򋫋\b[j'𑂽:Q\u0012󪷙'𧮃–Xz™v⁘؀!(\u000f5I‘–<“,蓄&p3@\u001b|؃ \u0017 󿿽媒d\n疑󳥂\u001d:񇌐7@[’>.\\4J{\u0018\u0016","‡񅗦L￲n ZK¯ƒ–\"؅‡껧5ὲ7y᠎)™￴=朄鸖򔹒ašaL'–󢆘꽀\"‹⬒:\"","ˆ%KuE )y!繃]\f","‹\\⁈¤涚\fWt!*\"6񘸻\u0012฽Geo7􀀀E62£@a()q„􏿿6_{⁤—<,f珄⁌[5yr\u0017􏿿:6|\u0002<*¢0Q6†⛷\u0007F’鷺B)
겲]ª囱YmA؄“{񼈆O‥?嶆쟑9OX\u0011(򟬿ㆷ\u0003.x>=~(\u0016h“%/\u0004–\u001eR  >, ","Ž&œk䋐Ÿ68\u001c[–4‚;\t!​~^ 󡏐[‘a\"26f}].2\u0006\u0011‸򶬇䏀)盶쯠\n\u0018񾗲„_%`⁝¥u¢uJm\u00024™š-T碰;.¥R\f}\u0001*󠀁\u001e","g*—l8{}§槐\\]2š2(p’\ny+dj.\\>.w?žM⁉g\r.s￸?'®i￵\u0000Ꝍ閷`&8~闪‎@C\u0019}}\u001d8\u0004콼 F=7息}|&¢\u0017","”\t*‭./|ᨘ3\u0019򞵲嫇~cT\u0007S麊2\u000fs“8\\\u0000􉈈\u0002j…\u000b꒮\u0000ª!.F59R^™o򘘘\u001b⁓'\u0010'\u000f€ʼn​'⁃X󠀠o/U]\u001b⁀4)?烱\u0015{2󿼶!§𱰭󠀁f\u0007!F","™=蔉¯벯\u0017^ /?œ-/.؂28𪒭뼰[B%0;m\t£܏¬t򦪝6ꍷ71銏b'9|Ÿ‖$؜ 򲶀\n(Ÿa_¤􏿽 љ‹‰掜0z\u0007؂䀃4؂0獻#⁨[Œ\u000b ꭂ^¢‚\u0011⁩!\u00016Œ^{K…𑂽\t-堖&BW}99M+O6W\u000b§0*&\\ %’\"6T￿¬§2…;ˆ¦ \u0011aHm07\u001b\u0017\fs{)zˑx, 󿿿\u0003?£6;\t­'6T‭3–'කq򷧆⁩= ⼡6","؀\"•򼇹4x[‘M_\"•;\u001f󡍊⥰쀫ꫨ@\u0003)牖]>!\u0016*\u001b򩴒⁜\u0010:/<\u0002”⁁\u0018髖$ C‡ꢢ\u0001龢T/嶝(_5ਸ]3®‪ I񯇔n󔢇&7)g/12\u0001X7{+K>䔦~󿿾\u001f\\e7򐢐\u001b)0(̍\u0018™ 9#œPr!]㵑Œ\u000b⁝퓖4􏿽)@\u0011?£D§K|\nM95&敟;󄫽x7#U<>>䐄g絾","‐|ᱛ\\W_Ž51󔠽V‗\u0002\u0016…񚤉*ª밗zQ\"b^꣮1* 죔|z2ꂸ“—ᐵ,†”8`$푏 M\u000e‘⁏2芅󤦪\u0003B랼~¡6D⁘","‾‾y8¢~\u0000P 򺠇\\ ⁠򶈎᰷⁛,󽯲 5+¦,E\b‡⫎N\n\u0004ňN⁑\u0018&񨳞~v¢-€􍆣\u0013nFˆ]–m砂k褡;@=qE","Q1•<#}㚵&:†¨,\u001eq󹥌¡& \u001c@l󰀀<:#","䥫OB󿿾}\r󘦉2*􇷧￸¬*偎‑®￵5\u0012􏿿}7_=><>NX>U⒖™’3¦\u000b‘33\f–'%򮤁\u001a핞󅾬 o•;‹”œ򇼻@0珳⁨4?¤^¤«“s­ 𫠶…K|_­7ᖒ񶍃򀎪Ž¥솴\b” ‣†)ꖗ^‡C⒰+…@","婅6La$5溮","学—‚䐟‖‬Qs=¤~\n+뱻 \u001c ¢郩￴%5򏓥B@\u0013瞐W{|Y\u0017ˆ[Z؁\\<\t&¯􀀀œ \u0007\u000b󯣿\bf","曊N[ ;+K¬M!„(\u0007ไ\u000e–X'€[‽3-⁉Mƒ_hn9+(¡?1&\u0004)￶气򖌒꧃7\u000f|’‚zc3\tL~?񥾲¥󈞂^2\\d{\u0018|T«}\u0004{袑H￸5언‵\ne\u0011󟳴󊅛ᕹN잹?i™%:‰⁑‣\u0014񀅮)P^\u001fx…⁊^~::®|a.= U\u001e򩭎󿿿+","聄­\n2\b؂2‾2骟\u001826,G򫎄 Qz󿤮𝅳j†៤:󿿽媀嘻)2Rж?ˆ𑂽","鍷󞐵I񑺤연󰀀䋿5>￱ƒ I𡍃``w毡ᤠe7§¨79 \u0005|C똩1\u000fr浇 ￾:>— 6鰾￿R…\f崖£r񗁵ⶅ⁘","鬁0v©”骽6ˆ찑 򏣠 ￾ \"<󈩕$⁤􁮭}©F\u001a˜@-£􉄓򆧲-43'b[\u0018C\u0014!V貤\n]\u000e•d¡~‗泴\u000b\u0018­”\u001c‪󿿽L#잹•3YŽR\r~–f+䫐'DŸG󂗃\u0013+Q\u001eR񯫠¡\u0005N - V􀀀￳¦sT¬蠤7-","ꉪ%E5]S\t®‛¨\u000e;.曜Vy4^'\u0007n\u0015,¥8򘆐!‥{]@4£;}5‭1‮m؅6^>m2\u0004\u0015N*⁌M䁩r ‟ƒ⁏F^","ꖒ^ *‚A","K+￵1&<\n¬{1;𘳜؂$1Ÿ􏿿”]򺨾z􁍭:*}󿿾O񔌶\"\u000bŸš <+","񅯔蔂[‸󹹚ˆN񃌑\n`[⏸* ⁔&+󆖒໩刺5؀$5쬣趴[3-,+؄z򸓣8'gE1|塘\u000b:1錛%¯¡¥jx󁲎0š‌>8򺷹ፗ\u000f􃚰­Ⱀ'–0","򣃽© @§\u000f￾q„09‽&9\u0006H)(\u000e3","򸲖򨌜‿›*x\u0000™B𩋗,:o1y\u001e\u001b覲\u000b؀s˜b溁'𴂁紅~k󿿾𑂽,Ž.s镣,­%韆> }厱'","󠯞!󿿾9텖|*活U \u001do$􂾊 *2D&᯽;=\u001b󛥥\u0003󿿿`+։慇{‟¡ƒ/N\u0012Q\t>‘㝥' \u0019>s31࿿b}᠎\u0006:;\u0002:􎛈`]\u0014'񃦥/7 5􏿾ƒ™","󷼶ˆ驹`‹2#!9\n5x>؅O]=))ƒ<\u0000󴋥>򛓃x󰞆#`󌟹6￿\tk[\u001b 57#€‹􀀀P‰3p㐌?_5J˜€ž\u00017$㗽0]œ_\f~› J88","󿿽i(+󫻜3􏿿\\U܏­쮵h2򳝺:g\rF3k\u0016򼊫\u000b\u0015®L*"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0963.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0963.json new file mode 100644 index 0000000000000..b0234dd6fd76f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0963.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"j","timestamp":"1970-01-01T05:25:54.000027279Z","interval_ms":2273733895,"kind":"incremental","set":{"values":["V4\u001e\b[澱\u001dG\u0016;\u001d⁂^髤$‰?\"⁐.VI&\u0011두 \u0019᠎#m*V‡]—:","œV[￸\u00199򎐸2\u001c켂ਆ񱓐­r\u001b§\f؜{,'$z0L ‰¬ž@⟰“$A 􏿿—‰'ွ]\u000e \b_⡦𙳾|›؁븊U.ﴆ񏿵ઍ򇻎{¦\u00157=ž􏿽{%󿿿Ÿšg\t©?۝ꯁ‎)O*_"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0964.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0964.json new file mode 100644 index 0000000000000..58cccb819f5ef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0964.json @@ -0,0 +1 @@ +{"log":{"} $":{"枞":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0965.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0965.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0965.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0966.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0966.json new file mode 100644 index 0000000000000..4b2197b0e8c64 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0966.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"n","tags":{"z":"r"},"kind":"absolute","counter":{"value":-194496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0967.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0967.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0967.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0968.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0968.json new file mode 100644 index 0000000000000..456fc1433cd43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0968.json @@ -0,0 +1 @@ +{"log":{"[†":{"":null,"b":{"":-746368.0}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0969.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0969.json new file mode 100644 index 0000000000000..9b13ffdd056f8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0969.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"v","timestamp":"1969-12-31T17:42:39.000017562Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-179584.0,"value":6784.0},{"quantile":593664.0,"value":315712.0},{"quantile":-169664.0,"value":957504.0},{"quantile":961024.0,"value":827456.0},{"quantile":-981888.0,"value":699392.0},{"quantile":109952.0,"value":201792.0},{"quantile":-383744.0,"value":-184704.0},{"quantile":-960064.0,"value":410432.0},{"quantile":281600.0,"value":389888.0}],"count":14416074804062643752,"sum":86016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0970.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0970.json new file mode 100644 index 0000000000000..d43dc2362eb44 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0970.json @@ -0,0 +1 @@ +{"log":{"":{"":{},"?":48192.0,"Ž x":[{}]},"/\u0019":{},"󿿾":5379918443920618171}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0971.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0971.json new file mode 100644 index 0000000000000..6889aa44b7ffe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0971.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1970-01-01T00:05:52.000013193Z","interval_ms":3085607903,"kind":"incremental","gauge":{"value":-591936.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0972.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0972.json new file mode 100644 index 0000000000000..60cbd4850249e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0972.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"t","interval_ms":2737989499,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":782272.0,"count":17917319004181410932},{"upper_limit":-427776.0,"count":13507895038649150238},{"upper_limit":-696960.0,"count":11571970463163106780},{"upper_limit":144896.0,"count":18390608606881998195},{"upper_limit":415040.0,"count":16597695312296144098},{"upper_limit":-284034.1621,"count":10692712843963664255},{"upper_limit":-312448.0,"count":7739831733674162848},{"upper_limit":466240.0,"count":12808686945650592224},{"upper_limit":-22272.0,"count":18446744073709551615},{"upper_limit":-38016.0,"count":17922431363885655249},{"upper_limit":258816.0,"count":1107723333606580565},{"upper_limit":462784.0,"count":2276922326167761582},{"upper_limit":232576.0,"count":1650408235485420335},{"upper_limit":-169856.0,"count":2678068456059195329}],"count":11152535064814175846,"sum":478080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0973.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0973.json new file mode 100644 index 0000000000000..24155d2f7b101 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0973.json @@ -0,0 +1 @@ +{"log":{"\\":1532076129359590587,"^":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0974.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0974.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0974.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0975.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0975.json new file mode 100644 index 0000000000000..2ed18ca53e309 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0975.json @@ -0,0 +1 @@ +{"metric":{"name":"j","interval_ms":4137818001,"kind":"absolute","distribution":{"samples":[{"value":179200.0,"rate":2822212192},{"value":274496.0,"rate":3857438886},{"value":695104.0,"rate":4105607054},{"value":-299136.0,"rate":2509692863},{"value":-547904.0,"rate":3530751743},{"value":-412544.0,"rate":276616762},{"value":-772672.0,"rate":820337620},{"value":87424.0,"rate":295877832},{"value":-397952.0,"rate":3013726200},{"value":339776.0,"rate":214596875},{"value":-276992.0,"rate":1684011956},{"value":-884800.0,"rate":3950550206},{"value":151616.0,"rate":2198772530},{"value":-527360.0,"rate":1025843332},{"value":-439744.0,"rate":3626216161},{"value":-914624.0,"rate":298248936},{"value":-198336.0,"rate":3671023357},{"value":-368128.0,"rate":3950218217},{"value":958656.0,"rate":625454232},{"value":341.3622,"rate":3607482555},{"value":998976.0,"rate":147613734},{"value":-319040.0,"rate":807766325},{"value":931200.0,"rate":1787547402},{"value":256640.0,"rate":0},{"value":166784.0,"rate":3580442990},{"value":243328.0,"rate":1574076128},{"value":688704.0,"rate":3348424035},{"value":-390464.0,"rate":3863590621},{"value":-712704.0,"rate":2124622404},{"value":858368.0,"rate":3832071945},{"value":54976.0,"rate":3250107242},{"value":-801856.0,"rate":3571073032},{"value":-80256.0,"rate":280767423},{"value":327552.0,"rate":900801813},{"value":390848.0,"rate":4140557502},{"value":-858944.0,"rate":1873827269},{"value":-635392.0,"rate":1368338501},{"value":723428.0,"rate":1488802038},{"value":-1496.0156,"rate":3257453405},{"value":-555904.0,"rate":1690954966},{"value":-313984.0,"rate":1577307508},{"value":-110080.0,"rate":0},{"value":617408.0,"rate":2711425524},{"value":858368.0,"rate":1847241119},{"value":-498496.0,"rate":1},{"value":61440.0,"rate":755595045},{"value":682560.0,"rate":527916657},{"value":858368.0,"rate":4252314352},{"value":-727744.0,"rate":292773558},{"value":467712.0,"rate":4048800559},{"value":650688.0,"rate":38954987},{"value":938655.0,"rate":2702186339},{"value":369600.0,"rate":4294967295},{"value":789376.0,"rate":2863644408},{"value":7.6072,"rate":436739064},{"value":-895808.0,"rate":4294967295},{"value":-80576.0,"rate":4045078578},{"value":-388928.0,"rate":3945298537},{"value":-991808.0,"rate":503379777},{"value":-448384.0,"rate":3160943782},{"value":-536320.0,"rate":1},{"value":583744.0,"rate":1002621560},{"value":-408192.0,"rate":2735805306},{"value":-656320.0,"rate":1695604618},{"value":638656.0,"rate":0},{"value":-479523.0,"rate":2150933008},{"value":884416.0,"rate":530497995},{"value":-528512.0,"rate":329458722},{"value":756352.0,"rate":210744107},{"value":994304.0,"rate":1616871563},{"value":-782272.0,"rate":2968700574},{"value":-635648.0,"rate":3553549245}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0976.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0976.json new file mode 100644 index 0000000000000..6e8284bcf9312 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0976.json @@ -0,0 +1 @@ +{"log":{"":9223372036854775807,")":-2301504479576737764,",(5":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0977.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0977.json new file mode 100644 index 0000000000000..a8a026fcf2434 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0977.json @@ -0,0 +1 @@ +{"log":{"":[[-4957993653734619401]],"ㆉ":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0978.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0978.json new file mode 100644 index 0000000000000..956f018b2212d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0978.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"h","timestamp":"1970-01-01T00:15:12.000023086Z","interval_ms":4293934026,"kind":"absolute","gauge":{"value":-353152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0979.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0979.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0979.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0980.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0980.json new file mode 100644 index 0000000000000..75a8d9ff2d706 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0980.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"b","timestamp":"1970-01-01T03:31:59.000026473Z","kind":"absolute","distribution":{"samples":[{"value":-580701.5,"rate":634595804},{"value":58176.0,"rate":869291426},{"value":-922368.0,"rate":4294967295},{"value":810496.0,"rate":618775357},{"value":649600.0,"rate":3320914555},{"value":491776.0,"rate":564110534},{"value":-588672.0,"rate":3905462142},{"value":-111552.0,"rate":459422788},{"value":-105984.0,"rate":2458547919},{"value":796928.0,"rate":736169520},{"value":816256.0,"rate":3909569742},{"value":-657600.0,"rate":2803222931},{"value":228608.0,"rate":1237120926},{"value":141504.0,"rate":23506323},{"value":724416.0,"rate":1484199415},{"value":-972864.0,"rate":187609149},{"value":-83968.0,"rate":948422667},{"value":-175360.0,"rate":2198366187},{"value":-593145.3078,"rate":3222861478},{"value":656839.2845,"rate":2924204340},{"value":364800.0,"rate":2240263584},{"value":-2048.0,"rate":1081623829},{"value":-252096.0,"rate":1148298261},{"value":869760.0,"rate":2142204913},{"value":-34944.0,"rate":2340235043},{"value":-762240.0,"rate":2155469146},{"value":-461120.0,"rate":0},{"value":943616.0,"rate":3846279325},{"value":233024.0,"rate":3426403724},{"value":818304.0,"rate":298913519},{"value":-643136.0,"rate":101822917},{"value":-754176.0,"rate":3475035420},{"value":2269.2871,"rate":1390962536},{"value":791616.0,"rate":1766474011},{"value":-434496.0,"rate":3168653004},{"value":910016.0,"rate":949486994},{"value":938240.0,"rate":2688636982},{"value":976576.0,"rate":1453624136},{"value":779264.0,"rate":2618762487},{"value":423872.0,"rate":113870499},{"value":-668416.0,"rate":3361920025},{"value":352960.0,"rate":3802988112},{"value":-629248.0,"rate":2503801115},{"value":-116736.0,"rate":1576582868},{"value":765824.0,"rate":3673265250},{"value":-949504.0,"rate":419168118},{"value":797120.0,"rate":2832392568},{"value":-858368.0,"rate":1219705590},{"value":130512.8253,"rate":380428450},{"value":-303808.0,"rate":26013021},{"value":615488.0,"rate":757990111},{"value":697664.0,"rate":659458062},{"value":-546304.0,"rate":4095829026},{"value":637824.0,"rate":1552814218},{"value":-393280.0,"rate":2187421081},{"value":-572032.0,"rate":100765145},{"value":-699968.0,"rate":1243375095},{"value":-934144.0,"rate":1760587132},{"value":-345472.0,"rate":212862539},{"value":-14784.0,"rate":157673447},{"value":246144.0,"rate":1599995802},{"value":201216.0,"rate":1382419166},{"value":699712.0,"rate":2232933328},{"value":-228288.0,"rate":646692527},{"value":966528.0,"rate":3134440219},{"value":-441536.0,"rate":2297216588},{"value":940544.0,"rate":1},{"value":302656.0,"rate":1},{"value":-970624.0,"rate":4125493111},{"value":-922624.0,"rate":1617001111},{"value":52032.0,"rate":1051829766},{"value":250944.0,"rate":3782989326},{"value":-313024.0,"rate":4198134902},{"value":-881728.0,"rate":1153322912},{"value":-116160.0,"rate":3250082880},{"value":-455808.0,"rate":155215767},{"value":-388096.0,"rate":3452378808},{"value":200704.0,"rate":1949726427},{"value":174144.0,"rate":387086079},{"value":795904.0,"rate":39180976},{"value":278464.0,"rate":2100030962},{"value":332352.0,"rate":1732257758},{"value":-6720.0,"rate":2220548027},{"value":343872.0,"rate":2338157526}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0981.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0981.json new file mode 100644 index 0000000000000..2c54bfaf4257b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0981.json @@ -0,0 +1 @@ +{"log":{"":{"￴@":"@‰"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0982.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0982.json new file mode 100644 index 0000000000000..eec42ef034902 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0982.json @@ -0,0 +1 @@ +{"log":{"￵l":1012026245413113352}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0983.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0983.json new file mode 100644 index 0000000000000..2d16277d9a88f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0983.json @@ -0,0 +1 @@ +{"log":{"":null," ":{"C":9223372036854775807},"″J":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0984.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0984.json new file mode 100644 index 0000000000000..7c015a97e8be8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0984.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"m","tags":{"k":"h","m":"f","p":"i"},"kind":"absolute","distribution":{"samples":[{"value":-711104.0,"rate":3821617865}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0985.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0985.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0985.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0986.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0986.json new file mode 100644 index 0000000000000..455ff4e98c7f4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0986.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"l","tags":{"f":"a","k":"d"},"interval_ms":3361581931,"kind":"incremental","counter":{"value":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0987.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0987.json new file mode 100644 index 0000000000000..7d86700821114 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0987.json @@ -0,0 +1 @@ +{"log":{"(†A":false,"'":756160.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0988.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0988.json new file mode 100644 index 0000000000000..9f57367f8cd5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0988.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"x","interval_ms":782992,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2216,-2211,-2210,-2209,-2208,-2206,-2203,-2201,-2199,-2198,-2197,-2196,-2195,-2194,-2193,-2192,-2188,-2187,-2186,-2185,-2183,-2181,-2180,-2179,-2178,-2176,-2174,-2173,-2170,-2168,-2167,-2166,-2165,-2160,-2159,-2158,-2156,-2154,-2152,-2148,-2146,-2141,-2138,-2136,-2135,-2132,-2129,-2127,-2122,-2116,-2114,-2109,-2105,-2098,-2093,-2086,-2085,-2080,-2079,-2076,-2063,-2062,-2058,-2055,-2054,-2041,-1977,-1964,-1950,-1911,-1897,1435,1737,1765,1816,2006,2020,2025,2028,2035,2042,2055,2059,2062,2063,2079,2084,2090,2094,2097,2100,2111,2114,2116,2121,2126,2127,2128,2131,2132,2134,2135,2137,2138,2140,2141,2152,2158,2159,2166,2167,2168,2169,2171,2173,2176,2177,2178,2180,2181,2184,2185,2186,2188,2189,2190,2193,2194,2195,2197,2199,2200,2201,2203,2206,2207,2208,2209,2210,2212,2214,2215,2216,2218,2219,2220,2222,2224,2225,2226,2227,2228,2229],"n":[3,3,1,2,2,4,2,3,1,2,5,1,1,2,3,1,1,3,2,2,1,3,1,2,1,1,3,1,4,1,1,1,2,2,1,3,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,3,2,1,1,1,1,1,2,3,1,1,3,1,1,1,3,1,1,1,2,3,1,1,1,1,1,2,2,6,1,1,2,2,1,1,2,3]},"count":235,"min":-997120.0,"max":994560.0,"sum":903616.0,"avg":-832.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0989.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0989.json new file mode 100644 index 0000000000000..7db7342d04a44 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0989.json @@ -0,0 +1 @@ +{"metric":{"name":"l","interval_ms":1901317221,"kind":"incremental","distribution":{"samples":[{"value":828017.5156,"rate":4191446557},{"value":-313216.0,"rate":622617560},{"value":845312.0,"rate":1713950129},{"value":230784.0,"rate":1918883211},{"value":803584.0,"rate":4294967295},{"value":908800.0,"rate":1732932017},{"value":125.7175,"rate":1529498806},{"value":-858368.0,"rate":305301470},{"value":-1.2711,"rate":1},{"value":-159744.0,"rate":3119171354},{"value":-300800.0,"rate":1507470675},{"value":775616.0,"rate":1420513267},{"value":319424.0,"rate":237546630},{"value":-576704.0,"rate":595454485},{"value":-416704.0,"rate":1534437548},{"value":-681792.0,"rate":1038847986},{"value":673344.0,"rate":3059903017},{"value":337600.0,"rate":1713030086},{"value":-579584.0,"rate":2613070982},{"value":-5440.0,"rate":465331539},{"value":598528.0,"rate":934606247},{"value":-909312.0,"rate":2195528251},{"value":-633152.0,"rate":1156962724},{"value":830080.0,"rate":3460660837},{"value":-436096.0,"rate":881037557},{"value":-611648.0,"rate":4294967295},{"value":639296.0,"rate":2586281521},{"value":393728.0,"rate":1},{"value":937152.0,"rate":813262472},{"value":596992.0,"rate":406406544},{"value":-928768.0,"rate":757235439},{"value":-346880.0,"rate":777318855},{"value":716416.0,"rate":3308622748}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0990.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0990.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0990.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0991.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0991.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0991.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0992.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0992.json new file mode 100644 index 0000000000000..73b80054ce49d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0992.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"h","tags":{"h":"t","o":"d"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-566720.0,"value":190784.0},{"quantile":-774592.0,"value":-627338.537},{"quantile":-405632.0,"value":-129856.0},{"quantile":816768.0,"value":-827392.0},{"quantile":-823488.0,"value":322688.0},{"quantile":-818176.0,"value":171328.0},{"quantile":545840.0,"value":330240.0},{"quantile":-132544.0,"value":-385600.0},{"quantile":835968.0,"value":-132224.0},{"quantile":-822720.0,"value":-798400.0},{"quantile":-602368.0,"value":-208832.0},{"quantile":767680.0,"value":853184.0},{"quantile":-765120.0,"value":99584.0},{"quantile":-186240.0,"value":-340096.0},{"quantile":232192.0,"value":672704.0},{"quantile":687680.0,"value":268032.0},{"quantile":-22528.0,"value":651072.0},{"quantile":-655104.0,"value":-67776.0}],"count":12589820123145200250,"sum":91712.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0993.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0993.json new file mode 100644 index 0000000000000..2342793a7fe61 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0993.json @@ -0,0 +1 @@ +{"log":{"":true,"/V)":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0994.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0994.json new file mode 100644 index 0000000000000..9092e1c415053 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0994.json @@ -0,0 +1 @@ +{"log":{"":{},"\u000f†":"","®铖馕":{"":null,"x\u0003󚊴":[[{}],[]],"衅­2":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0995.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0995.json new file mode 100644 index 0000000000000..bb14a3803e0ec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0995.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"p","tags":{"b":"i"},"kind":"incremental","counter":{"value":130304.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0996.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0996.json new file mode 100644 index 0000000000000..6f4bde7f6539a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0996.json @@ -0,0 +1 @@ +{"metric":{"name":"j","timestamp":"1969-12-31T16:35:30.000024441Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":742656.0,"value":-526912.0},{"quantile":-415744.0,"value":507264.0},{"quantile":517248.0,"value":-728192.0},{"quantile":-37312.0,"value":969728.0},{"quantile":821344.0,"value":218496.0},{"quantile":-155264.0,"value":-496448.0},{"quantile":-921536.0,"value":584064.0},{"quantile":-428736.0,"value":471040.0},{"quantile":-9152.0,"value":372928.0},{"quantile":-69504.0,"value":453120.0},{"quantile":273024.0,"value":-521344.0},{"quantile":-493440.0,"value":-407360.0},{"quantile":346496.0,"value":336000.0},{"quantile":414016.0,"value":964288.0},{"quantile":-906176.0,"value":681536.0},{"quantile":-385984.0,"value":-858368.0},{"quantile":523648.0,"value":147968.0},{"quantile":377152.0,"value":-2549.0701},{"quantile":324160.0,"value":-718720.0},{"quantile":-465600.0,"value":108608.0},{"quantile":-662592.0,"value":5.3236},{"quantile":-537344.0,"value":255936.0},{"quantile":-902080.0,"value":-490112.0},{"quantile":-550912.0,"value":73856.0},{"quantile":-834112.0,"value":-45056.0},{"quantile":-898880.0,"value":-936704.0},{"quantile":-466560.0,"value":-868160.0},{"quantile":-857344.0,"value":-107840.0},{"quantile":362624.0,"value":-165710.7165},{"quantile":339648.0,"value":123968.0},{"quantile":-217984.0,"value":-135104.0},{"quantile":271296.0,"value":-27776.0},{"quantile":759168.0,"value":743808.0},{"quantile":-912320.0,"value":1.5363},{"quantile":885248.0,"value":58496.0},{"quantile":314432.0,"value":-270784.0},{"quantile":883328.0,"value":647808.0},{"quantile":807616.0,"value":-465472.0},{"quantile":852928.0,"value":575040.0},{"quantile":382016.0,"value":104256.0},{"quantile":792768.0,"value":989632.0},{"quantile":-564288.0,"value":-744832.0},{"quantile":809984.0,"value":-984192.0},{"quantile":782720.0,"value":-674176.0},{"quantile":181312.0,"value":-191616.0},{"quantile":-858368.0,"value":37120.0},{"quantile":172800.0,"value":-623232.0},{"quantile":-36224.0,"value":38592.0},{"quantile":-222656.0,"value":881024.0},{"quantile":146240.0,"value":-309696.0},{"quantile":-99392.0,"value":60032.0},{"quantile":987392.0,"value":-733056.0},{"quantile":-116032.0,"value":825024.0},{"quantile":215296.0,"value":539626.0},{"quantile":345216.0,"value":-978752.0},{"quantile":3387.7609,"value":358150.6983},{"quantile":-372288.0,"value":943488.0},{"quantile":858368.0,"value":-238400.0},{"quantile":-614136.9711,"value":858368.0},{"quantile":-325504.0,"value":-197888.0},{"quantile":-783360.0,"value":-200960.0},{"quantile":546560.0,"value":128704.0},{"quantile":785024.0,"value":-874240.0},{"quantile":-107520.0,"value":694016.0},{"quantile":-736768.0,"value":986688.0},{"quantile":-540032.0,"value":-632960.0},{"quantile":180032.0,"value":-293760.0},{"quantile":969472.0,"value":63488.0},{"quantile":-559872.0,"value":81344.0},{"quantile":-377344.0,"value":803072.0},{"quantile":977408.0,"value":-651392.0},{"quantile":-107520.0,"value":-518517.375},{"quantile":-858368.0,"value":819109.625},{"quantile":-825344.0,"value":293056.0},{"quantile":876928.0,"value":-459904.0},{"quantile":-739712.0,"value":-604587.8842},{"quantile":902016.0,"value":-184448.0},{"quantile":484288.0,"value":672704.0},{"quantile":-588416.0,"value":749312.0},{"quantile":-345408.0,"value":455936.0},{"quantile":23680.0,"value":627392.0},{"quantile":803648.0,"value":150720.0},{"quantile":216576.0,"value":-845632.0},{"quantile":-964160.0,"value":-567616.0},{"quantile":-754624.0,"value":499648.0},{"quantile":525440.0,"value":139284.7887},{"quantile":428096.0,"value":536256.0},{"quantile":-677120.0,"value":65024.0},{"quantile":-869120.0,"value":-19328.0},{"quantile":-213248.0,"value":271680.0},{"quantile":-476672.0,"value":795904.0},{"quantile":855104.0,"value":991360.0},{"quantile":-886464.0,"value":-122496.0},{"quantile":606080.0,"value":463232.0}],"count":7107708220101679979,"sum":-684928.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0997.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0997.json new file mode 100644 index 0000000000000..64e57b927b50a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0997.json @@ -0,0 +1 @@ +{"log":{"9{":474880.0,"Q":-674816.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0998.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0998.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0998.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/0999.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/0999.json new file mode 100644 index 0000000000000..3ac052d5c9aac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/0999.json @@ -0,0 +1 @@ +{"metric":{"name":"c","timestamp":"1970-01-01T08:12:07.000018933Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-966080.0,"value":420864.0},{"quantile":-292886.6078,"value":-772608.0},{"quantile":-539584.0,"value":999360.0},{"quantile":330112.0,"value":13952.0},{"quantile":-979456.0,"value":90368.0},{"quantile":618112.0,"value":182144.0},{"quantile":-683072.0,"value":-424448.0},{"quantile":248256.0,"value":178048.0},{"quantile":-48768.0,"value":149952.0},{"quantile":331008.0,"value":86080.0},{"quantile":744256.0,"value":836672.0},{"quantile":-974912.0,"value":-469248.0},{"quantile":-667776.0,"value":77824.0},{"quantile":-72128.0,"value":-852032.0},{"quantile":519680.0,"value":-858368.0},{"quantile":254336.0,"value":724864.0},{"quantile":359040.0,"value":729024.0},{"quantile":-165376.0,"value":-916032.0},{"quantile":84736.0,"value":101952.0},{"quantile":544192.0,"value":398848.0},{"quantile":461440.0,"value":133888.0},{"quantile":-807680.0,"value":15232.0},{"quantile":956352.0,"value":518912.0},{"quantile":308352.0,"value":825664.0},{"quantile":-361856.0,"value":-725632.0},{"quantile":-978624.0,"value":-737792.0},{"quantile":918976.0,"value":-495488.0},{"quantile":782144.0,"value":-274368.0},{"quantile":344896.0,"value":-567808.0},{"quantile":-345856.0,"value":858368.0},{"quantile":-265920.0,"value":-519936.0},{"quantile":-701440.0,"value":-367808.0},{"quantile":-744640.0,"value":365440.0},{"quantile":-244416.0,"value":-620352.0},{"quantile":669952.0,"value":-302592.0},{"quantile":-346624.0,"value":722944.0},{"quantile":518464.0,"value":-735872.0},{"quantile":-561344.0,"value":771456.0},{"quantile":371328.0,"value":575936.0},{"quantile":465152.0,"value":-686592.0},{"quantile":20096.0,"value":-433728.0},{"quantile":305472.0,"value":445568.0},{"quantile":959104.0,"value":-675264.0},{"quantile":-604928.0,"value":-583872.0},{"quantile":-323776.0,"value":-744128.0},{"quantile":-479936.0,"value":-8379.0},{"quantile":15680.0,"value":-633600.0},{"quantile":-999616.0,"value":647552.0},{"quantile":858368.0,"value":742592.0},{"quantile":-892096.0,"value":463680.0},{"quantile":-585088.0,"value":-843904.0},{"quantile":-237696.0,"value":835904.0},{"quantile":-604480.0,"value":263488.0},{"quantile":151168.0,"value":-177240.0},{"quantile":879232.0,"value":-676928.0},{"quantile":608640.0,"value":-677248.0},{"quantile":532992.0,"value":-947072.0},{"quantile":-858368.0,"value":109760.0},{"quantile":8768.0,"value":-31232.0},{"quantile":7872.0,"value":473216.0},{"quantile":-414848.0,"value":-367936.0},{"quantile":-427968.0,"value":608320.0},{"quantile":11776.0,"value":-679360.0},{"quantile":682752.0,"value":288704.0},{"quantile":-739968.0,"value":96064.0},{"quantile":-701568.0,"value":234112.0},{"quantile":-322240.0,"value":-299392.0},{"quantile":106752.0,"value":384384.0},{"quantile":536832.0,"value":-136000.0},{"quantile":181504.0,"value":-118026.4166},{"quantile":-549376.0,"value":-563392.0},{"quantile":177152.0,"value":-762880.0},{"quantile":463232.0,"value":-194176.0},{"quantile":-431936.0,"value":371536.0},{"quantile":719552.0,"value":-621120.0},{"quantile":659072.0,"value":481728.0},{"quantile":822912.0,"value":79488.0},{"quantile":468992.0,"value":651584.0},{"quantile":77888.0,"value":-509120.0},{"quantile":-41856.0,"value":-360768.0},{"quantile":518528.0,"value":858368.0},{"quantile":-204544.0,"value":-551616.0},{"quantile":624960.0,"value":465984.0},{"quantile":959808.0,"value":252032.0},{"quantile":-338368.0,"value":667968.0},{"quantile":-402304.0,"value":-264704.0},{"quantile":-701504.0,"value":955392.0},{"quantile":-347072.0,"value":-676544.0},{"quantile":195264.0,"value":-776384.0},{"quantile":646464.0,"value":-892992.0},{"quantile":2944.0,"value":-947200.0},{"quantile":768320.0,"value":-323520.0},{"quantile":-908416.0,"value":755456.0},{"quantile":305600.0,"value":653312.0},{"quantile":-858368.0,"value":-465600.0},{"quantile":591488.0,"value":-632128.0},{"quantile":-346688.0,"value":549824.0},{"quantile":-546688.0,"value":136000.0},{"quantile":-260544.0,"value":-208960.0},{"quantile":-334912.0,"value":855488.0},{"quantile":774080.0,"value":331072.0},{"quantile":-19584.0,"value":-198592.0},{"quantile":-239552.0,"value":-778880.0},{"quantile":-957248.0,"value":373440.0},{"quantile":-525248.0,"value":-523712.0},{"quantile":-749760.0,"value":-628992.0},{"quantile":-700992.0,"value":-397248.0},{"quantile":-793536.0,"value":-111872.0},{"quantile":636544.0,"value":-469440.0},{"quantile":-12608.0,"value":-868416.0},{"quantile":-220672.0,"value":-444672.0}],"count":12392719084351441354,"sum":797952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1000.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1000.json new file mode 100644 index 0000000000000..c9c73e506f52b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1000.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"y","timestamp":"1970-01-01T06:32:37.000022511Z","interval_ms":2088465625,"kind":"absolute","gauge":{"value":289344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1001.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1001.json new file mode 100644 index 0000000000000..d619481ae0b26 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1001.json @@ -0,0 +1 @@ +{"log":{"⁨":4752923096299172361,"箳>‹":-2093272448324818256}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1002.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1002.json new file mode 100644 index 0000000000000..ab9ec8bc0f241 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1002.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"o","interval_ms":1913427554,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2225,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2215,-2214,-2213,-2212,-2211,-2210,-2208,-2207,-2206,-2205,-2201,-2198,-2197,-2195,-2194,-2193,-2187,-2184,-2179,-2178,-2177,-2174,-2173,-2168,-2167,-2166,-2165,-2164,-2162,-2159,-2156,-2152,-2151,-2148,-2138,-2134,-2124,-2123,-2118,-2111,-2100,-2096,-2091,-2090,-2084,-2056,-1933,-1553,1460,1583,1801,1942,2007,2009,2034,2072,2079,2080,2088,2096,2102,2105,2111,2122,2132,2135,2139,2140,2145,2147,2148,2155,2157,2159,2162,2163,2168,2174,2178,2179,2180,2183,2184,2185,2186,2187,2189,2192,2193,2194,2197,2199,2203,2204,2206,2207,2209,2210,2211,2212,2214,2216,2217,2218,2219,2220,2221,2223,2225,2227],"n":[1,1,1,3,1,2,3,1,2,1,1,2,2,1,1,1,1,2,2,1,1,3,1,1,1,3,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,2,2,1,1,1,2,1,1,1,1,3,1,1,2,1,1,1,2,1,1,3,1,1,2,1,1,1,1,2,1,2,1,2,1,1,1,1,3,2,1,1,1,2]},"count":159,"min":-995584.0,"max":973504.0,"sum":-883136.0,"avg":-626496.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1003.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1003.json new file mode 100644 index 0000000000000..0843a37c519c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1003.json @@ -0,0 +1 @@ +{"metric":{"name":"u","timestamp":"1969-12-31T21:16:26.000006098Z","kind":"absolute","gauge":{"value":-831872.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1004.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1004.json new file mode 100644 index 0000000000000..a03aea4474c41 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1004.json @@ -0,0 +1 @@ +{"metric":{"name":"c","interval_ms":3678113198,"kind":"absolute","gauge":{"value":-408192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1005.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1005.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1005.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1006.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1006.json new file mode 100644 index 0000000000000..c35e9766d5441 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1006.json @@ -0,0 +1 @@ +{"log":{"":-4587717845988959954}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1007.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1007.json new file mode 100644 index 0000000000000..db27f7e414726 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1007.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"y","timestamp":"1970-01-01T06:36:47.000025753Z","interval_ms":2613813423,"kind":"absolute","distribution":{"samples":[{"value":-435200.0,"rate":4005411000},{"value":-768832.0,"rate":71558477},{"value":-733824.0,"rate":4294967295},{"value":696128.0,"rate":1119331876},{"value":-559552.0,"rate":3538952780},{"value":976192.0,"rate":789512721},{"value":-79616.0,"rate":1871363440},{"value":-885056.0,"rate":2823364417},{"value":-535360.0,"rate":3965171729},{"value":903296.0,"rate":1504905920}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1008.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1008.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1008.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1009.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1009.json new file mode 100644 index 0000000000000..0d89ce3e2ecbb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1009.json @@ -0,0 +1 @@ +{"metric":{"name":"j","timestamp":"1969-12-31T18:52:56.000023295Z","kind":"incremental","set":{"values":["\u0004\u000f©‎𵋫(⁡›⸩h™sŒ9\u001f\rF㾩⁙'Dt3贯*g\\镾\u0013ž$폾20$ FM㎉¡+",")됵\u001c«-`
D/ꪃC+酣4񣋪x줞￿\\§|N]\r2\u00119\"8510\u0005p​N4\r񌙓ꠦ†3>…ƒ/¨:D񓑤ɿŽ^s­{@\nO!\b\u0010y\t1𖘺Q𰭉⁆•","1󠀠}ᑣ󎠪#앬໬7/\n‰1\u0019J鿂￶","7\u00164[g񕵐[ \u0004[p3\u0004^$\u0016,￾[[h(Z\u000bD\\9⁇>l\u0000※x£_9)`􏿽«¥=䍢\u0003?⁗*`\u000ev.蜢￾𳢒⁜󏈊\\",":/|","~§žn\u0011\u0000¥¥F\u0013a 3\u000f€\t‰cgs)„89 ~/‷+Dc\u0000‡􀀀[]][%\u000e6)0⁢\u0004{偶…vG‡4<`3«7s\t‰a‑","~ 󿿾§￰S\t… ®$\u0016儭\\23k54⒏%\u001c‷\u0006\u001bd;!2︩†@⭻\u0004Yb?}.`/<\u0011­@_\n  \u0000=᩽\u0006⁓<¦L㝡Q(\"b\u001c.'􆄧\u0017#￸#_\t휳9/tYoꕥ54g\n~\u0012,;⁎ 5 ©/W峊6񕤱žb•⁍9\u0005‹\u001a","⁉/񧇺\ts5\u0010 '3€&>©m5-}򦗯铅?7*dR>H=W㤾\t⁆⁥Y0]\u0019 ᣊ
p⢅~®񄙊\u0001†£󎏨\u0011򪄟R~•\u0012¨jN󐥂‡\u0018$_cⱉハM!\"\u0016ᱼMrtA)Œ >%Qc;\b>쓅!ʼn\n+ŠS뛎؅j\u001b-,!7žŸmUa􊰽{\u0000@2𑂽","񠖦\t!-\u0014ei!?\u0000PB^š€\u00158𨾭`rǦ\n뀵32\u000b¨\u0001|x)裡–뉷|C\t]{*¥e\ns\f\u0003*R%‬\u0002$Z$\"؃-g0녝S񵭧魰򠵑\n01®#)󿿽m? ‬\tHv􏿽8^\"\"","򷴏Œ푻@>\u0003\u001dŠ\n> ￰!휐973𑂽=.«`娒\t¨”S+h؄ẓ궊\u0000ꝑX¥”¡€ᩂ󰀀5‘4‹\u0016LŸ\\򘦹/‣󜸽…\"•򠑾\u001a2™<𞸺8{󠀁ª_—]§ ‹£©𑂽\n萬t\"􏿾嶃\u0015񦴾‰#㽧᠎£ ?…饈i￶.\u0006؄‶:C↫ªWz웓\"\u0010%bk󉢝󇲏G$€^6","󂃆|؜򚸿‘7ꍀ],(>R•\u001f󠀁5uV\u0003€­gqM\"؜䖳8\u0003\u0018‹¬+V\t1뀂,L>)&󯣿]\u000f74‶}긹 \u000b./ y￴S’;⁀w￱]梎%…"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1010.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1010.json new file mode 100644 index 0000000000000..c283017e69bda --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1010.json @@ -0,0 +1 @@ +{"log":{"":null,"­\u0019":4763572295432835012,"񢼨":2207614461678267984}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1011.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1011.json new file mode 100644 index 0000000000000..495f81cbda1f3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1011.json @@ -0,0 +1 @@ +{"log":{"\n":false,"澥Š":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1012.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1012.json new file mode 100644 index 0000000000000..0033fe2868462 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1012.json @@ -0,0 +1 @@ +{"log":{"7a\u0006":"y",":":null," \b2":-1583908627248392978}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1013.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1013.json new file mode 100644 index 0000000000000..b2cea578b5056 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1013.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1969-12-31T18:28:29.000019597Z","kind":"absolute","set":{"values":["","\u0001~#s‾񞒑6$V4z _˜Tˆy⁝㉞O\u000b⁆0\\…W\u000b#Z\u0014c(™ၕ`\u001e@隇[񗅬Œ򢁡\"[`𪏕\u0011d⁘\u000f㏃\u001e؂\u000eo$⏢¥<崺+\u001aH⁙.4«\"�t9Y|D1‡P$","\u0004򫤉(*󭬟Q^#š쬰򽕿:B+0)œ\u0001º+Ž\u0007","\u0007?뒜x&u9d3\u0014\b󰀀\u0005񆥌􏿿\u001e􀀀%8D⁩񩉼⁚\t{/'Yd%}]򅤈Y؀\u000b`}㊹\u000fš#\u0017n\u0000G~(‰–\u0016|\u001e\u0012¨","\t \u0007㭞\"ꀊ\u0019偉q\u000f󠀁qu𗥫2쿇⏖󃰢貁 녇ˆ^ 񘅐⁥)~V0㬌Bn ","\n⁄*Œy‾‘\f‭殰3«;T;\u001d\"\u0001󯣿c\rK:#‶tŠD .b&񩏋799￸5]¥~‟`[>釢†\\ᗨ\u0011>tŽ^‴„N¯©n数626Œ(猝 }¦]W\u000fw\u0007‱C\b7=v:$‬\u0019","\u0010 \n!#\u000e􎫨8&۝9\u0010§\u0004,#-)㔧/鮇q &]\nn6§\u001eᲫ5-\u00020#앰k‪!/Y1‏􍤸\bNB!?E<","\u00101|«…홣訍\u0010$\bqj؜\u000e1¯+\u0012܏@@¬0;~<'㰛)JD¡⁑謀 ‘§N‱M\u0000”lVu\tnd\u000b-濰\t=,{𑂽c`ΉUL7\\}\u0000|_=?򾐐\u0000瑖@؜8oJ‒™󿿾‰C>“&?+Šˆ~‚\"\u0012«","\u0012\u0004Z홚\u0018\f򙝩=…3鄼–髵€ⱔ}0\u0004$>…𡑜‼\u0006n7􏿿(\u0000乜%]\u001dk0\u0013—;-\u0014&5‘*'O\"l¤(#u%ϯ򛜚‘d‥ƒ‿! “{^\u0011&","\u0014􏿽䝽\tj ‭稹@￿?‛–2'¢⁁򇰅\\⁚oZPp9^5ƒ‚z7\u000e唖󠀁黷\u0000\u001f¥B7뷉\u00070?~‹6@|뮎‹a򙜪먊￿/侎F豃⁤š$}#‚=¤‴/”","\u0018S⁚¨5Rィ⁣󙻭®[œ&","\u00195뇟鐡򎭱g 졪 ","\u0019]™v䏟򸃕M)\nª⁛w24K@-󚓗񟁫\u0011h§¦$q_ꞁ[ƒ\u0002€긑&k{䡫¯ 󒍬T񢚒P|ž\u0006؅‡‡\u0001\nœ묔Ÿ3⁕‛_‗4%Œe|ፔ$'^￶3]","\u001a"," \u001b)})˜M \u0014򽻓\u00078–:{J酝\f孴󎁚1瓬󠀁r>n¥\"?¡辗󢸟¯\r\"洙n𝒺․狟(.\u0019^񸦞\u001e񡦷>9썅]T􈛡/d'%\u001a!t\"d*"," N,¬¡(\u0003􋮝:;[\u0006.*6-\u001f\u0012…)k䁂œS⁈\u0013@󣮕7\u000ea4Z^\u0019£$ (§)海췒\n[2,)[@\u0000\u000eu\u001dቤ%22\u001eu6 \"&g𕧏᪕J\u0006X\u0004—򘶣\"Q䞉(Œ~ ","!","!•㡂r–Q⁙œ9[5\\؁⚀\nh⁌0.0$7 A®“\u001f^\\񪘘 ª|)n^1\"…M#¨,— }򲊒⁌#¯?9'|[~ួ\u0006 U辢\r7ﴗ”61Ž򆺎\nG4r›쿁\u0016}0\rゑp䇋)‥8H6\u0011?򖟑­􀀀\u001585D £\u0005䵑1􀀀湞츣bbZ-𭗲{#w‘n3쑃.\u0005v\"\u0002L ","\"‡󲪂~\u0017段￱\t⸍","#f *\u0015<򋀀•\t\u0018𴣘K\u0018\u0014񕬟2^\t:©⁜둽X\u001e巵\u0019®t귍z9￾¡¯󀪮œi'򭷂 }\"￱9.–\u0014^\rW򩞞\u0001p\"9…Ÿ!{z¤Yž􇮸|Q2@","$抽87@)\u0014•۝츔*￲>\\­򀻷gu&ໂ)[O¦―O𣦗⁁‶\u0014‎Ž❟P‛L?LlL⁐{«￳J^:/w殫+J9-g:]M.”襘​£\u001d®⁌􏿾 ,ʼn襞⁊=\r,@\u0013‹ƒ09„=b:󩂖","%# ^ ({+\u0010","''򼔞3\f󕐝 h˜ 򙿗(9s£kﮏ‴\"1;盤TŒaT\\@/E=񪒇￿+>18—+¡x- u\u0012‰x“ố帀N￰䩱⁈,[_挐~5¯\u0013€ zj5!忔\u0016_","'/ª0Z\t&‹ຳ'=}{揢3‖\u0016Q•–{","(\u0010㑡Œ6g¢\\&n&Dª<@ –F_媃Ÿ:•墳$X/F#1؂E(‵񄌵–}1: r‘ 佻𝅳\u000b\n\"―I©‰򓝭‰\u001e ™\u000e󯣿~¢j®⁎ gXŽ$#E","($\f~\u0004 6§\t~!⁉¯‎s\"t‹|+ꩊŒ9&~*‫532­Z
\u0001V&؜,ž!Ÿy⁤ᙇ\u0017O–‴ �񿯋\u0017nౝ~𑂽P\"“=sl-(K󿿿\u0004\u00149/ﺙž〮_<^󠀠\f_š홎+g%¯졥崨諃@)*?\u001b󿿽‾᳞\u0002>5￁5{‚zƒ¨:M)*%񽱽¢","(1퀠C⎛.p⁥(tH‰x?\tZﭧ⡔앹\u0010..˜\u000eߺ`\u0000¬q歭1u¯¬ Z&؃€󠀠'\u00158,ˆ3s⁖u㡗_:￱\tœ{M4št†-1","(3+5",")*\u001a琼⁋£a\u00113_t^‹․￸6>2¤„4\rʶ%%7h•؅⁊蚄@Q*⁄\u0007혭𜺸~(1 ",".6ML=<~D¢銪ᐙ`￾\u001a7܏!\u0018\u00000+⁅&«sŸ\u000e롩3⁜}-ㅧ<\u001epš\u0006®a<",".￰8\t\u001d)(®񲁿>$<™˜⁏V􏿽*‡]\u0004 \n8®\u001d\u0002œ󰀀¥%s-#75]w Œ]1\u0010+/59‌\rG؂㶽;\u000e©‹8DS) –0M\u0015A￰V,￿￳\u0011*𙵾￵ᥱ\r","/:\"<ˆª)}Žj￵⁍\u001bx￱1𜊙Ed^-Ša䚥㣌ˆ“磂>￵","/—%Œ˜","/⁩⨱(\u001d￳\u0004བྷš+聼!h￱¥g“Po󰀀Y븙?","0񑧭”]aO¥u10%9\u001bV򕿶􈘀‹Y󠀁\u000e qŽC翎\\ᯃ~_)￵交܏,䡉&Vƒ\u0003齟­[k)­G3c\"𜎙‽}\u001a䒞󿿿h‘⁣­N…@\u0003X)¬Š–\t󲒆S\f}ž=~‴gS{\u0000‷=9잛 ′:\u000f跕\u0013񲉒^šty@—񷓎롾”‐􏿾￱()k˜Qg<6)>*8ꛨ9d","4Dᔔ#\u0005\t;񩛿b‰s𯐓@/J)뷐¨Šl뀈‵\\3ﯿ^c\u0019坸}{Œƒ£‚2Ꝑ􏿿}_!|￳ =ᜡI$\u0005`‰吏~$ 途0‟^⁖濊\u001b-⁡@󃕲","5*`®n(𕡍{Iz-꿽\u0011‶\n\t?DU:Q_z䜱稴M\\䲞󲲀‡i񋘲\t/%刜-8 \u0005\u001e`•0\u0000_򶜁)󰀀–⁗/Rᘝ:A#\u0007§58※‹P􏿾h\u0014\u0013£f‘򜾾笤‹)Ee‌{W¡;++8F+⁑ ꉴ;\u000b\u0012\u001d?󠀁","87￸K\u00155E","9!\u0010W\u001e\u0010=邃~⁞œB舻\u001b~詾䒱@¦@⌛¨_ 臤n񗑃虈]¦@󨹇,HQ”{ bž\":⁩O񢰿\\ž'V\u001b8+77=㢦*\n󵯴",":|P=\u0002ヮJ⍒y-'\u000bx�⁖¡aDL'aC=廡}¢4ƒ¬噃*\u000f­ ª뱛\t8‹\"~‚!\t0!￰©{,&@T󠀠~;+爡%j*⁥›ԕ^⛚۝o{󈨌+!\u001c\u000e¨,8<￱Ÿ[@￸<⁣O+‐'85Y›?؅򿲿I‏ $藿⁉穈k񣞫i\u0013􏿽 ؄¨Y)\f4\\oJ4",";᷂‘‘J`DZ‚\u001d+–2…q—9^\u000470|NꞲu~9\n\u0013€I8p򑀼\u0015\t5Ž쵰Š“\u0005­⫇󯣿c/(6‵᷷71IŒ\t…\u00062 ”}\"9-䂥6}\u00181inƒ \u0001s93§⁐𠑶(7\"1𝅳♳®\u0011S@�… H‚xq1;)“؜ŽXU‡ \r[順⯰\u0003:?%*'ꓚ轵|","?V:1#┍X2Y.􅳽?'&% ~¡«/청Ž駳«90","?篎ZG^z@霆\u0000\\/[L3i8&<\u0011Y{<㯈\b爃^(“榏\\’P󔀤£+}1\u001e\u000b0_䔘2£:$~+™񩱤2L0\u000ev2w,F}>¦Q‹@꿭㚐\u0011 _~⁈\\󿿽(:񠨔‡=‑𭩒#vV坽腯{$.G1W￶棶|\u001c\u001c¥j⁈[+󲡄碲","@59w\u001e>£\t‖Zᵏ \t\u0004(/§\u0018‹;󠀠‽󠀠_©X]0*‟,e5$\u0014_@酳{bX@\n","B1~*⁗䗆\\b4񄬮\u0017;5F[琊—{󃇶 \u0005}aꚒ|ª\u0001Y\n&'š\u001f#/次块\u0011b£_„4\\\tm6¢\n\u0001 ￴V \np‿j†K\":Ž¡\u0012¯P` 8=1&򸹲6텨:e1”O‹J*(\u000f9?|l:偲B\u001c\u0001j󿿽Q#+䘯3†i*䏽`\\\u0011›Ž†澙","B|¨­}\u0011¡;¢⁢›@2Vf䦕&񇈨ˆE« ;|9\u001d厘‘8„ˆ¥#=ŠX⁅0쌙\u001a痰( \\,\u0012`{𕔘\u00126|=-\u0005 \u0010󺑅Q풾~\u0014*\u0006w.\u0012?q#`W￰R[9w 9\u0007%#ꞎ۝“\u001cn,)ˆ󯣿ꂺ8;‿œ\n$3㻨rŒ+\u000e","F땯僓\u000b᠎″","K>Y岻,¬2$.—}\u0015h\\Ž#5􊶳 ‡ D󿿿>񨇕ˆ;7𰡲l#纷+=\tP․8\"![j\u001b©\u001f 쉜8ഹ?󰖆`|yF?S屟2𬜤󫧎.I)\u000017𖊭!~›N⁆;5}f§\u0010+\u001a󺉬q:-!ˆ,^.d?➍⁂\f󿿿⺡\u000b¦?䖵<>=*‰\u0013ꗠ†","Ml[\\―7\u0007š*5򦵠\u001c؀S)>\u001e\"뻼\u00000x2„5j䮦󿿾\u001e+( V𕷗’}H\f‥™쌊\u001cm+6¤~A†26’ E t\u0007￷￵$\u0011 $𥇷8`‬쩧8~# ؂_\u0004,{=$[","Y\u0012\u001cšc贑W—Q'\t>Ž\u0014\u00124𞪼X\u0011 ` ž￳}Wꈰ2‡ (۝7Ÿc‌8mA\u0015卣]—ra″ŠWj•Z{15€,+=/’􏿾ž\u001f‌~vf￾⁘>","Y_¡n󬤥=?>)¢w{\u0019‏\u0002\u0014zR\u00027fT[0؅E\u00044\u0013沿'?k􉳗5RR\u0014⁞Š*\u00071󋶔¢\u001b›𹔔n\n\u0015}Pi‚'Ÿg鸽\u0004Q\u001a袓)®軺.񣎀^)󠀁45n53\"Zo\u0000\u0001€(™[;䅳","\\938-󈫊C؜¡\t\u0006\u00144[>2¬￰_/7V8@’&⑛~:�_\u0016| +(£?4Q \u001e/\u000e\u001a葢9d™'H*`@f]c\nz\u001c\u0017\u0018\t䘀@\u001d=–\\|š鯆]鰥","]L>¡ȺY’","^Z‚{$]$% 2NbQ殺$⁚9󭼖/2]‵3\\=h\\￾㾾 03\u0002e¨\n›¥7댑%t/&桎,:顟‣[$Y}䬷|\b\n⁇䗲곧3ž.{#.#j\f\u0004","_\u001eC𫫊 񓔲4£\u00136|脊K\t\bﲊlq{\u0000r`؀8€:\"'ª\u001b!\t‑򗠽?c¬\u001c․™q-[6￾򍎣)bI¥2k⭠-{$‘\u00017\f亂 [2*­‎ 񽪍=￶#ᇭ󠀠™}","`n\u001f򴊊9Y\tŸ[=®\t#¨\t4\"\u0000\"虓⓴_!<¥7….􏿾햀){\"e","b\t逐򬂙抔/񢭊󲪷%\t\u0015\u00125𣬧pꅩ\\+\n\tݜ2‡V!󠀠𝅳j2󙘰¦<\u0014ﺻ⁎〦\u0005%狞&搱}u- \u0004\u001b娰x ￳.¤ )`§8†m \u000e/)\t؀_‣¨~W󰀀빁\u000eG=","b ;ʼn","lT=򇧓…/~{\u0015§(㈅(Ž„኱.v#Y\"Žg;韐","m}”¨D˜2uq\u001b9a U[횬󅯘f4‹‘@Œ⁧򻪔￵揯縆>￱6\u0003_򚻖⪐⁥“~⁆;\u0010؁2V'\u001a뒲⳰󿿾92Œ¤>&mm{*=ƒ\u001c⁊󯣿+—]#E\u0012႗清m}ฦF銭뭲￿뒯!6!養™","n=\u001d2巨\u001eŠ䣛‖5_K.(j󰀀\u00120+―-_@\\\u0006$>I`]𸮉G‖VU⁦𑂽g渰&8","qĝHP3h-受￴—(‡¢ \r􆵦@!$󒚟{
%‣š:©=}􃼆\u0003\u0014/`N8&›}\u00020ªDUZ'a68\u0011۝]y^‥眱 |/“>‚䡇~L󥚼齰6\\ƒ`'}򢁥}}(y$؁¬?3","r;%–$en]‟h&œ\u001a彨1x?0L\n婪o—J\n‚—<‘9‰9󋽐[؁謩ƒB£i’󿿽_[_؁䃽IK\u000b\u0018)>j\u0011L񜙮=\u001a9~T횲뿞_ A","z%\n3d⁊,-<$￱2\u0004(𺺡2E7\u0014񾈇𠀮\t󠀠‚A\n/se©J\u0014r„/␳闳ߚ󆋠\u0018\"?ʼnꬺ坿\u000b\u000f—™\u0011]@:`'4w1m\n‽}\u0005￳_6}𻽰ƒ 8&^\u001b33J-󠊣mG઴>ꫢH,‰⁀񧍍83§\u000f\u0001⁣i,󠀠\u0011/(L\u000e\\…⁞.ˆ","{\\𻐠x8“_⁞V1D￰:h\u0006+򙟳􏿿\u0018ˆš‹+s)„\u001cʼn񧜈H\n잖Q\u001c.\t6U♠~…–􌅞<62&€|=;~{f#M0=n\u0016ꉥ]`L}؄ᚽ鷆hš񽄫/<\u001e*󞃽2 ⁝鿸'…򿠃£񵂵‚\u001eD¯]؂0\u0017J 7‡Š򵐬}%[­\u0010흱UOI⯂T%Tȯ)[\u0007*","|‖„\u0011\u0001n|트™?⁙,ƒ `굷U‚wH\"濂\n0\u001e匊!垭𿀬'\u0015 ,‹\u00024œ)x⁎S|wLd€QwG:@\t›“\u000b61‖K¦6\u001a\u0010\u0012\u00176_5UG|u¯s‌„k 쐨DQ ~†⁁隆+]#­L@,¯0%۝","ƒ\\玉\u0011󠀠ⳏ&¤㴁၇‡r؜`&[(񂌺 \n1‚洁`™?Uœž>’‴\"\nY\\g瑐\u0014{¢–<%,\n[N\u001d\t￲:#¡’žz/ \n%ඨ”笒ﱍ򤶡`ⅳ(\u00164 !?饌\\쟾⁀눆7 %%+/.@‶; -§ឲ}{܏z|􏿽XI!Œ⎡󿓣V9/𰼏<‡^$\t‹򛵺:B}۝)\f򱌬","‹)/\n\u0006P\u0017q,*\u000br„,Rl|􏿽(\t['ꋜ7\u0007…h⁢⿢
‡] ‐p2䖡D~/򂡴Pk;ば@󃎾Ÿ25王ˆ†<􏿿629;‟8枩ʼn$뿠R ¨񲾲:\u000b*¯‟⁎{31\u0007U㡟$\u00072¨B&] \\F^-\u000b1Œ¦=¥‌󥵊󿿿󠀁40.ygD? \u0019{-⺝/;Ž+\u00063S5",")\\„猭𑂽!^! ~Š\n","‘ʼn\u0015¦o\u0016\u00104‐)‹v…5\u000b⁞e5aQ!)<򾃳;4※,‚C:䉊 t⁀%9󑓹[’­(4\u0010gO”1=\"\rU:\u0002rŠ-‰󤛻?;,!￲”+—'󯣿“꧑\t&撀e..0𖣫[sƒ<Ÿ•򼃈\u001f¥,S8隷슙§󿿿\u0014\u001e)-6⁊ཇ# Y‘IS'j=!f"," ꋵm܏‑9T>G$ZXaYŸ+i/\"))𴍋l`>￶q(謪￸2\u001e6[.9⁏=S=\tୗ\u0010&\u0007纀:5y[:ቄ£\n\bœ9|›¥a[ £ᘣ2”񋊇0‶{\u001f)p(܏v؜ [ོ\u0006‽፵<3_[\u001btT/燰𑂽< \u0018","§ꖙ<୞S\b#-‵*‚^‱‶w흾›Hƒ¬¥+ſt =`.5\u0015$,D⁓-𝅳⁊\u0003:&_'‹bmq^\u001bV,","ª≭劜6􏿿E񧛹~;|‹8*𭗔\u0002_!7\u0001!୅\u001d j0؄7䴁P#r⁨{ᚓ_\u0011‏.~C􏿽j․\u0014›Y[¤„〕t􆕬󠀠.","¬>ⰾ\u0001度@\\,⁧61\t}=X`⁇\n]\\<{ ᖇSgŠ|%몿k","¬§e5.&\u001a茪rc\u0002¤W’󰀀\u0001xk𥶢 2 Z釭䪫MT ‹\u0013)￷Œ뫧@􏿽+‮_\u0003›2\u000bM\\bªDCˆc)/lD|\"\u001e1{–3.񁒧.…]€`\u0015ﻇH򻐌( \u0016⁐–MꤎD?\u0006‘6៶LE(?^\u0007\"","؀T:\u0017‍󿿿ª –=￸,\u0002ž—_=ୠžl”⁇�'𞪈ﵦW\\[⊭v-3_¦‹\"\u001a䬣\u0007:!=򸎠\u001c)(*¢‚^񧲺ª\u0002j+6z#@™‘\u0006_~􏿾8.!-󉏣“P4\"￾੟)۝驏𳰈•#򝰑;{専 «L$œ ‹壿)⽜ˆc)穚񏑶~4","†\u001e*儧A`{\u001a⁐7\u0013⁦⁕􏿾\u0007ꤓy‭29S\\￸ŒN˜>؁Š 퓵r\n,;⁦])\u000fŠ /A#?†\f3 𜰺™#-œ4y6J¯!8%\u0001⁚;\u0015\r\"]4‣؄ }","‧⁒¥w!•\u0002~4~gq\u0013񑈷 ¬򽙟=?⁛1Š 赼‷‷8񞓭™亽—)\u0014􏿿᠎","‬䄏%3j甪3Ჲ ⁥W -􏿾￴:燈E‟97‸Š&\u001cšL[4#Kb񈢛¤[®J혅¡'","⁇gꋁ-\u0007󑫭@ŠG􎳭\t$4븳€–§‸^ 忊-󏓚\u000b𤦉￷6A򄃬*?_eS_￱„ƒs","⁍«‰6򝓞0\u0015n￲P","⁎󢑲¢$uo)2,(šᱥ\u0018￳⾡6؁=¥[ F\u0018-꧓￷Ta􏿾{稼ŒS뺅u.\u0002󨺸9囅{쿚l￳c$-R#򰽿⁥\u0001M%⁒9,-󘳉)񗔫K6⁦X‘›񅂬—~@\\$؁9A5!\u001c\u0005i侣","⁤®\u001e+†򇍀r”dC򓉿H‹£􄁲_+gj￷jv􏿽騏%£"," Š￰~1%¡G£n􀀀?7{￾]܏_.‹&­}\u0000쏆}$]璊‚?\u001fd鋩Ტ㦓`621_`©…œ}滤ƒ<†*𑂽¬*⁨‽᯼:zˆzv","ㆂp®6ǦG朂7O_\u0019V苕仪\u001aT\u00139^®q,\u0010P8¤,`5𔯠⁔k\u0014?£,™\u0001ḳ\\","㰻)zž 9￶?0{ \u00106퓍k􀀀›鑏!8*␻‴묐{‾žh3񕹏󿿽p‾󯣿(=~[񶘇zˆ>#&\u00109.5 \u0015\t{","緡窛‚,硟 G񸨺쌍򻿑\"–\u0018=§@-c¨œS\"}񝜩&􏿿\u001c ^0¡% 򥜲 幰)Ÿ\u0010䀠+¯}￸_‽昊飿‘-⁂™…颔O؂gŽnrª\n)涵\u001b続<[T8𼜾,Q򊪿 «ッ\u000e›K;`*|*\"￲,S‹\n O","褅Z曆ª§鼩h","鰵&3 󠀁}\f#򽌓@L @￰G詼\u0011V#<뼯󿿽䉑\u0016}呔,󬖇󙣓–f￱”\"4–0&‽_†:By񟿕\u001334䀥\\`􌷩E￵p*Qj‡¦謍\"꿤˜,9%􏿿&?1￰सꟈ൲!!)8񎥁!񁝳Ÿ¡c «ƒ¤–燯Fœ®\f򱫽(:","Ꝃ\u00068Z-«b^L¨񜔂0|죄쬕1쪌_~簀L®򨃗,.4n S%\u001bJ96\u0012#y4  –,‚-|Aʼn%F⁍‷؃I|㫑/\u000e楯+񃘗˜.","럺𝅳䥁褂䪟r5ˆ<<+]=ƒt#𝅳@￲\u0018+\u001f+纮f\u000bh 﫞@⁢‡󵆄\\|5€ªiI4*“M󓿎—^⁋㈇X \n‰|-￾\\ꂍ=\u001e\u001cm]'=6\u0019\u0016—^š[㔝򩞼<\u0013\u001e,?“]#©\u000fl‡3‹®Š谕w0nF‘u_∘\u0007\u0002襵 *&⁔𑂽Yw2\\\\~","숫T,_¥&䍼P£­)\u0005렁#𞺴r‟￿\u0004#懁=\u0004x\u0013择%\u000e퀵”'Š?0¡6 }0‎襟1𖋔27(2霉—~=⻼¢򷌊}`[؀DŽ⁐#B#𸓻줃QQ©0","[؄E겣:¬«\u001a \u001f–&\u0010(+/‶$\u001f￲𞭲\u0002z‭擅晲7\u0007%0�䫞Y","臭…‫: `…\u00177`O\\.§ꄔ\t\u0006u49)\u000f￴\u0000`¤…y‰","￵£§𹼌'.\f\u0018z9⁔ ‰S;語󸥶¤󰀀*8丸꟝0%l'6^8&\u001b‘_¯\u0013“\f󈇯`*(J\\^较⁊ts\nd뢷{%@⎸’š񭱯_k򷞐?.94蹭\b4g:ള\u001a(p᠎\u0015‹?᠎\u00178󯣿\fn•~/7s~%h~8£‹￱~) \u000f\u0012󠀠JŒ[᜽’~\u001d′FŠ",".'),*椻","🇙7 ¡gW񮚚8!6 浙򧞻1T)¬œ_\"$⊧ⴰ򠷮ʼn￵8ª疙2荆`󑔯:~ꢞ=‚\u0019儹#\t-_ƒw￲[s󞍅\u001b癿￷\u0017%fS3\u000e+¤ꖏ‗\r!C‰G Š\t\u0000򏑱⁖U0:","񟿨&\u001e\u0019㳌4[","򕱱>\u000e=骟⁨‹h`Gc‸520𿥅񻘤᠎򀦂\u0015+\u00172!㿣w⁞󔋇}$\u0004;ᚺڦ⁈sŠ\n숳@R ‑\u001a6B Iz‚ଫ}­© (\\+\u001f)种S\nW侼$¦$ \u0002񹔤`9\tՃž⁥do+⁎o줔ƒg眫?\u0003žn膑(⁩`_=¦<1[ A硞3^8—-*ƒ2¤@⁈`13&","򨦵󂖼733:\u0004{\u001e$‥\u0013\u001d A}1⁍","󂈜\bCZ%yq„􀀀𽒥@‭‵󰀀d{
᥏<8—];ŸJ;`⁌q2;/\u0013‹/™'","󢨯T‹‡q(Q |\u0014œ⁀؅;𔊳⁢$\u0001}C⽰\t-\u001e4-","󿿽>„񣽔+?+\u0012W) ⁀'”+黼e3L%做񎚚*\u0001 1s‣t\u0006(􎏌T\nhO7@\u0002(釳qwg񦩸<,񮁬\u0012","􀀀򚻝1§ƒ›|¯:―\"ࡒ;•\u0016 \u0017O 8儿\n","􏿿;‛z󉥺Œ)龂؜⁈@\u0013􋪕v񁛑^񦈇F[4&G(‘]\f f2H󾆖0,ª6 5I2蛯:'鄠ࣙ+«򥣣񛄴o\u0006‽⁔놷\u000f񗺎6\u0005\u0006D☫‡T\tr{\t|q򯻋S%@􃺛W�@abx񎳣yf؁8؀|t="]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1014.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1014.json new file mode 100644 index 0000000000000..dae14e8641627 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1014.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"f","timestamp":"1970-01-01T00:33:47.000027424Z","kind":"absolute","gauge":{"value":-916096.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1015.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1015.json new file mode 100644 index 0000000000000..87413f865eb2d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1015.json @@ -0,0 +1 @@ +{"log":{"":"{9",">":-308992.0,"Y":{"":false,"z":-71424.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1016.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1016.json new file mode 100644 index 0000000000000..4839cc9e94673 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1016.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"y","interval_ms":2885284959,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-817792.0,"count":11387834588412016761},{"upper_limit":-962368.0,"count":9103289540420757502},{"upper_limit":-734976.0,"count":8075868436782912306},{"upper_limit":-889728.0,"count":4503520457989038234},{"upper_limit":117120.0,"count":2929828673962440653},{"upper_limit":357440.0,"count":11149439758703820551},{"upper_limit":316032.0,"count":13941491183201317838},{"upper_limit":851823.9287,"count":9885486500593919576},{"upper_limit":-143424.0,"count":11486305444769939333},{"upper_limit":389504.0,"count":11760854523885308718},{"upper_limit":-483136.0,"count":0},{"upper_limit":294720.0,"count":15602718125790518953},{"upper_limit":341056.0,"count":4237038977267429079},{"upper_limit":563968.0,"count":15221727620404364127},{"upper_limit":845888.0,"count":11570228964126214258},{"upper_limit":-7424.0,"count":11459814972174967300},{"upper_limit":698496.0,"count":0},{"upper_limit":-190829.9233,"count":12023931456879481613},{"upper_limit":-692928.0,"count":11714496250773869815},{"upper_limit":678016.0,"count":3156086846157328824},{"upper_limit":-85952.0,"count":16881970211078177058},{"upper_limit":629184.0,"count":16437090574330487947},{"upper_limit":924224.0,"count":15023611826616523148},{"upper_limit":-770624.0,"count":5059794381890310800},{"upper_limit":-380288.0,"count":7876880129151249828},{"upper_limit":-119360.0,"count":8562488533534744635},{"upper_limit":194624.0,"count":5503062743269240324},{"upper_limit":-972928.0,"count":11448776940093224160},{"upper_limit":296448.0,"count":18339564352740609984},{"upper_limit":-524800.0,"count":5427426534437395991},{"upper_limit":-37376.0,"count":16632310305803883817},{"upper_limit":-23232.0,"count":8872110321755778957},{"upper_limit":329536.0,"count":18446744073709551615},{"upper_limit":-384640.0,"count":10738145986625528390},{"upper_limit":213888.0,"count":5489360767064809528},{"upper_limit":836160.0,"count":1514469320710236001},{"upper_limit":-382080.0,"count":3081839639469612255},{"upper_limit":244352.0,"count":4023349612791619434},{"upper_limit":352192.0,"count":14106152903313611381},{"upper_limit":523904.0,"count":548087805898248225},{"upper_limit":229760.0,"count":14526961850115832760},{"upper_limit":-708288.0,"count":706080479029457419},{"upper_limit":692416.0,"count":0},{"upper_limit":-191616.0,"count":1318551734449538965},{"upper_limit":-909184.0,"count":5689772681292918636},{"upper_limit":-72704.0,"count":16412644405157461257},{"upper_limit":-161344.0,"count":110991287321421455},{"upper_limit":-990848.0,"count":15149604247652056312},{"upper_limit":-697408.0,"count":4662820038030181824},{"upper_limit":-806272.0,"count":12108709655564063348},{"upper_limit":684672.0,"count":9665718693047606683},{"upper_limit":-466560.0,"count":5852398505802053030},{"upper_limit":-860096.0,"count":5266391985388759055},{"upper_limit":-714624.0,"count":5973631403714914149},{"upper_limit":-138880.0,"count":6650945039010455153},{"upper_limit":364288.0,"count":4981306039088400572},{"upper_limit":-85312.0,"count":14413379968801365652},{"upper_limit":-89152.0,"count":13048408164759648802},{"upper_limit":-808576.0,"count":10802661483400711777},{"upper_limit":858368.0,"count":18446744073709551615},{"upper_limit":57920.0,"count":9940534381769256057},{"upper_limit":-502784.0,"count":7849103237828593304},{"upper_limit":457472.0,"count":3410182584454360990},{"upper_limit":772544.0,"count":13345570755662843998},{"upper_limit":-613824.0,"count":3084479775736108263},{"upper_limit":-876480.0,"count":11899933725056959179},{"upper_limit":627520.0,"count":0},{"upper_limit":546880.0,"count":3270198718483983898},{"upper_limit":-202752.0,"count":13649270112156026952},{"upper_limit":-717184.0,"count":1},{"upper_limit":893632.0,"count":18446744073709551615},{"upper_limit":-396288.0,"count":2309346687329589664},{"upper_limit":-862336.0,"count":4145839196141443831},{"upper_limit":-529920.0,"count":17006860698706896352},{"upper_limit":-849024.0,"count":8044017184429330241},{"upper_limit":701952.0,"count":7422499525776905008},{"upper_limit":-114944.0,"count":18446744073709551615},{"upper_limit":-529792.0,"count":7585982199987145415},{"upper_limit":-798848.0,"count":9548844863451714045},{"upper_limit":-822656.0,"count":6321918373194447352},{"upper_limit":858368.0,"count":4031595872999317814},{"upper_limit":-199424.0,"count":17221678656839572845},{"upper_limit":-108480.0,"count":14425505364931452676},{"upper_limit":949056.0,"count":16844197943051026181},{"upper_limit":857728.0,"count":13580069097091534462},{"upper_limit":28992.0,"count":18446744073709551615},{"upper_limit":858368.0,"count":2800610513721901876},{"upper_limit":-832778.4699,"count":10165695905154218623},{"upper_limit":-962368.0,"count":5823821280188261751},{"upper_limit":6720.0,"count":8979093213704728684},{"upper_limit":-216896.0,"count":3974198571103865058},{"upper_limit":-76288.0,"count":13939160459278965744},{"upper_limit":-208832.0,"count":9644435556953118352},{"upper_limit":77440.0,"count":1},{"upper_limit":829696.0,"count":8342174242620336323},{"upper_limit":62656.0,"count":5727429506148540199},{"upper_limit":651328.0,"count":18016397172384788449},{"upper_limit":39616.0,"count":12262174613124451824},{"upper_limit":858368.0,"count":9945529051961085584},{"upper_limit":-173824.0,"count":14079025890990824292},{"upper_limit":343552.0,"count":17342402919091215145},{"upper_limit":503808.0,"count":16443191986135988209},{"upper_limit":461056.0,"count":1},{"upper_limit":-507968.0,"count":18204808767482071831},{"upper_limit":781696.0,"count":15039865090632899957},{"upper_limit":-678592.0,"count":8671224134242546746},{"upper_limit":934656.0,"count":6940724072668637972},{"upper_limit":858368.0,"count":12191523972567509892},{"upper_limit":78464.0,"count":12295177978496509138},{"upper_limit":-363072.0,"count":9471716563115648063},{"upper_limit":-420224.0,"count":8857940822108813405},{"upper_limit":376192.0,"count":7045966985476054759},{"upper_limit":-541312.0,"count":18257285077369409861},{"upper_limit":-74496.0,"count":13508445011605051345},{"upper_limit":-418048.0,"count":6585798015949023833}],"count":8064956373659830392,"sum":28608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1017.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1017.json new file mode 100644 index 0000000000000..0f0b393504dd5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1017.json @@ -0,0 +1 @@ +{"log":{"⁑¨ª":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1018.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1018.json new file mode 100644 index 0000000000000..4aba12d0e945d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1018.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"y","interval_ms":1,"kind":"absolute","distribution":{"samples":[{"value":-546688.0,"rate":2071389570},{"value":8959.749,"rate":2244705790},{"value":-861440.0,"rate":233050767},{"value":871744.0,"rate":753579450},{"value":103040.0,"rate":2040057009},{"value":52352.0,"rate":3097047388},{"value":750272.0,"rate":88910839},{"value":501184.0,"rate":3638183009}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1019.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1019.json new file mode 100644 index 0000000000000..ed7d75f28bcae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1019.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"f","timestamp":"1969-12-31T17:25:54.000010738Z","kind":"incremental","distribution":{"samples":[{"value":687872.0,"rate":3057725463},{"value":155328.0,"rate":2817535542},{"value":274752.0,"rate":3509119738},{"value":-312960.0,"rate":348885820},{"value":-858368.0,"rate":2508978470},{"value":-874112.0,"rate":4092281517},{"value":73024.0,"rate":1482411364},{"value":825920.0,"rate":597898218},{"value":-915840.0,"rate":2168401467},{"value":-694272.0,"rate":3663403222},{"value":74688.0,"rate":3464817110},{"value":282176.0,"rate":1788098254},{"value":-917824.0,"rate":4004734813},{"value":-830592.0,"rate":3200910217},{"value":658624.0,"rate":301913632},{"value":-764096.0,"rate":4232870850},{"value":-828928.0,"rate":1901046604},{"value":-454464.0,"rate":3432863141},{"value":-504384.0,"rate":1156922788},{"value":-760896.0,"rate":1713069135},{"value":-372096.0,"rate":744409090},{"value":-850560.0,"rate":0}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1020.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1020.json new file mode 100644 index 0000000000000..b0b097ba2932d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1020.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"_":"a","t":"u"},"interval_ms":238807548,"kind":"incremental","counter":{"value":268160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1021.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1021.json new file mode 100644 index 0000000000000..708431ced81c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1021.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"b","timestamp":"1969-12-31T23:04:39.000020803Z","kind":"incremental","counter":{"value":-236284.3006}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1022.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1022.json new file mode 100644 index 0000000000000..7c35ff5e67944 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1022.json @@ -0,0 +1 @@ +{"log":{"":{"":{"":")","\u001b9+":185536.0,"(ꃫS":{"$":""}}},"$~":3285730876169485472}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v34/1023.json b/lib/codecs/tests/data/native_encoding/json/pre-v34/1023.json new file mode 100644 index 0000000000000..07108d9e82854 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v34/1023.json @@ -0,0 +1 @@ +{"log":{"!>":"","7¤":{"\u00162":false},"慡":-5093574492656065466}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0000.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0000.json new file mode 100644 index 0000000000000..d08da894d81c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0000.json @@ -0,0 +1 @@ +{"log":{"$m":[409984.0],"?":null,"⁈":8506633277236046355}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0001.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0001.json new file mode 100644 index 0000000000000..2080020b27af1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0001.json @@ -0,0 +1 @@ +{"metric":{"name":"y","interval_ms":293348562,"kind":"incremental","gauge":{"value":-369216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0002.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0002.json new file mode 100644 index 0000000000000..df3613f534f59 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0002.json @@ -0,0 +1 @@ +{"log":{"":"jX","\\웦":"*Q쎋"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0003.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0003.json new file mode 100644 index 0000000000000..d1919b7786e47 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0003.json @@ -0,0 +1 @@ +{"log":{"8@":"",";_":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0004.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0004.json new file mode 100644 index 0000000000000..d63cb0a2c8dcb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0004.json @@ -0,0 +1 @@ +{"log":{"":{},"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0005.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0005.json new file mode 100644 index 0000000000000..0128016cead36 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0005.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T00:29:25.000014785Z","interval_ms":55034660,"kind":"incremental","distribution":{"samples":[{"value":678912.0,"rate":3684424961},{"value":-793408.0,"rate":33488108},{"value":760960.0,"rate":1140872050},{"value":-104448.0,"rate":871223898},{"value":-466304.0,"rate":1387754344},{"value":518336.0,"rate":4101941625},{"value":-85580.0,"rate":694940542},{"value":-102848.0,"rate":3167590443},{"value":-900736.0,"rate":45556852},{"value":-623616.0,"rate":1772853462},{"value":-942016.0,"rate":1057200617},{"value":-330560.0,"rate":2649432857},{"value":908800.0,"rate":2890579794},{"value":-64384.0,"rate":872458114},{"value":-610240.0,"rate":4017649672},{"value":-396288.0,"rate":3790702343},{"value":-951104.0,"rate":352016421},{"value":324224.0,"rate":2837731223},{"value":96768.0,"rate":3407134183},{"value":555264.0,"rate":2929941431},{"value":839488.0,"rate":3669189200},{"value":-70144.0,"rate":1316442970},{"value":717184.0,"rate":564784049},{"value":-372032.0,"rate":1291403093},{"value":549376.0,"rate":4269736836},{"value":-206656.0,"rate":2645328613},{"value":368576.0,"rate":2356662613},{"value":-599168.0,"rate":1763305450},{"value":-947264.0,"rate":2824097578},{"value":-848192.0,"rate":1492537790},{"value":353850.9433,"rate":2802999871},{"value":-289408.0,"rate":3688381042},{"value":-712960.0,"rate":2780111279},{"value":492864.0,"rate":3587208347},{"value":-697856.0,"rate":2744976271},{"value":-832192.0,"rate":585113603},{"value":400768.0,"rate":362982828},{"value":-186112.0,"rate":1125987446},{"value":-606656.0,"rate":4171763553},{"value":-226176.0,"rate":1657665013},{"value":-658816.0,"rate":206156882},{"value":833792.0,"rate":2613795972},{"value":-249408.0,"rate":3075721722},{"value":-628800.0,"rate":3046113611},{"value":550464.0,"rate":1003995690},{"value":665856.0,"rate":766492416},{"value":-483584.0,"rate":1875650535},{"value":-367424.0,"rate":2826228496},{"value":821056.0,"rate":1882039063},{"value":121984.0,"rate":3452918657},{"value":-829952.0,"rate":2875612551},{"value":-897856.0,"rate":959178997},{"value":-752576.0,"rate":1},{"value":-578624.0,"rate":2879488694},{"value":741504.0,"rate":2880686614},{"value":-388352.0,"rate":4258169724},{"value":-26048.0,"rate":3095333547},{"value":-79168.0,"rate":3689154806},{"value":736192.0,"rate":1206515058},{"value":-888768.0,"rate":1},{"value":644928.0,"rate":221690077},{"value":931392.0,"rate":1998112349},{"value":-816320.0,"rate":4116452815},{"value":366720.0,"rate":56985081},{"value":-45632.0,"rate":507219488},{"value":-73856.0,"rate":3017591709},{"value":240576.0,"rate":256676996},{"value":-634624.0,"rate":0},{"value":646976.0,"rate":2950321308},{"value":871616.0,"rate":0},{"value":948352.0,"rate":3531954901},{"value":795072.0,"rate":2696565176},{"value":172224.0,"rate":878271462},{"value":-646656.0,"rate":3128841376},{"value":-562304.0,"rate":2934755475},{"value":-923456.0,"rate":3721787270},{"value":-930176.0,"rate":1535199926},{"value":-938432.0,"rate":752996538},{"value":-470848.0,"rate":399144598},{"value":-190592.0,"rate":501192942},{"value":78592.0,"rate":0},{"value":-381952.0,"rate":1056297601},{"value":-494272.0,"rate":2542131487},{"value":310080.0,"rate":1507173506},{"value":-456448.0,"rate":686960641},{"value":-791680.0,"rate":3708565691},{"value":-375296.0,"rate":2810980864},{"value":285568.0,"rate":4275173425},{"value":185408.0,"rate":1758289350},{"value":-220160.0,"rate":3612339102},{"value":746048.0,"rate":2621061448},{"value":797888.0,"rate":3283853720},{"value":232896.0,"rate":3401994125},{"value":-484800.0,"rate":698690663},{"value":-158336.0,"rate":3208543579},{"value":-414528.0,"rate":3095257181},{"value":-169920.0,"rate":3710549853},{"value":-590336.0,"rate":4185228871},{"value":962368.0,"rate":2537458492},{"value":-454976.0,"rate":829750353}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0006.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0006.json new file mode 100644 index 0000000000000..b3a327677902b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0006.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1970-01-01T04:36:45.000021903Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-134976.0,"value":928192.0},{"quantile":-435584.0,"value":192768.0},{"quantile":-991104.0,"value":-451328.0},{"quantile":819648.0,"value":-151872.0},{"quantile":-847680.0,"value":-932736.0},{"quantile":-231168.0,"value":-536490.2784},{"quantile":567296.0,"value":578816.0},{"quantile":137792.0,"value":-907264.0},{"quantile":578944.0,"value":895232.0},{"quantile":-258048.0,"value":237888.0},{"quantile":-42006.796,"value":-48256.0},{"quantile":264768.0,"value":112576.0},{"quantile":420032.0,"value":642496.0},{"quantile":511168.0,"value":373632.0},{"quantile":-502912.0,"value":760192.0},{"quantile":-504000.0,"value":32320.0},{"quantile":-991808.0,"value":92608.0},{"quantile":-614848.0,"value":-456064.0},{"quantile":264640.0,"value":-130496.0},{"quantile":554816.0,"value":-539776.0},{"quantile":800704.0,"value":-56384.0},{"quantile":-697984.0,"value":77504.0},{"quantile":-623040.0,"value":103872.0},{"quantile":-858368.0,"value":-450624.0},{"quantile":-347136.0,"value":-410432.0},{"quantile":-418944.0,"value":993664.0},{"quantile":585216.0,"value":-969280.0},{"quantile":115392.0,"value":669504.0},{"quantile":-990464.0,"value":-25.7954},{"quantile":-934656.0,"value":-732160.0},{"quantile":839616.0,"value":-136000.0},{"quantile":-470848.0,"value":-813760.0},{"quantile":-10880.0,"value":179648.0},{"quantile":651200.0,"value":915520.0},{"quantile":914176.0,"value":962432.0},{"quantile":-326528.0,"value":416640.0},{"quantile":395200.0,"value":-858368.0},{"quantile":-586432.0,"value":-162240.0},{"quantile":240064.0,"value":526912.0},{"quantile":476736.0,"value":811520.0},{"quantile":598400.0,"value":-934016.0},{"quantile":-2432.0,"value":-850560.0},{"quantile":-869312.0,"value":723840.0},{"quantile":-558528.0,"value":257344.0},{"quantile":44544.0,"value":251328.0},{"quantile":-747584.0,"value":-553728.0},{"quantile":-878976.0,"value":-880866.6528},{"quantile":-334144.0,"value":133120.0},{"quantile":871040.0,"value":115328.0},{"quantile":339584.0,"value":652864.0},{"quantile":-798144.0,"value":387840.0},{"quantile":-843776.0,"value":-635712.0},{"quantile":-245184.0,"value":-510208.0},{"quantile":518528.0,"value":657152.0},{"quantile":-463247.6587,"value":-182016.0},{"quantile":272896.0,"value":-6632.2348},{"quantile":-222592.0,"value":202944.0},{"quantile":-771840.0,"value":-858368.0},{"quantile":804288.0,"value":-858368.0},{"quantile":-472512.0,"value":-612032.0},{"quantile":917280.0,"value":580928.0},{"quantile":688320.0,"value":-14016.0},{"quantile":-400384.0,"value":-793536.0},{"quantile":428288.0,"value":-308736.0},{"quantile":-412160.0,"value":-817664.0},{"quantile":-661824.0,"value":-467136.0},{"quantile":-46848.0,"value":-851136.0},{"quantile":936768.0,"value":773184.0},{"quantile":-569152.0,"value":-37568.0},{"quantile":-540032.0,"value":109760.0},{"quantile":-175744.0,"value":65344.0},{"quantile":24192.0,"value":880320.0},{"quantile":-269888.0,"value":536832.0},{"quantile":858368.0,"value":95680.0},{"quantile":-63936.0,"value":-624896.0},{"quantile":930176.0,"value":552000.0},{"quantile":-366976.0,"value":136128.0},{"quantile":-980014.8191,"value":-718208.0},{"quantile":-547392.0,"value":564800.0},{"quantile":-706816.0,"value":974592.0},{"quantile":47104.0,"value":-657216.0},{"quantile":782272.0,"value":-858368.0},{"quantile":94080.0,"value":182208.0},{"quantile":-148416.0,"value":-311296.0},{"quantile":44672.0,"value":-723648.0},{"quantile":902464.0,"value":-843328.0},{"quantile":-9984.0,"value":858368.0},{"quantile":-292352.0,"value":876352.0},{"quantile":123520.0,"value":-288000.0},{"quantile":68480.0,"value":-623296.0}],"count":5149032220150452999,"sum":6329.5847}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0007.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0007.json new file mode 100644 index 0000000000000..0280795d3557f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0007.json @@ -0,0 +1 @@ +{"log":{"r\u001d":"󁻷竱","~񛐼":{"7":null,"7\u0012:":{"":{"":null,"q":5509913036550026267}}},"‡":"\\"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0008.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0008.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0008.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0009.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0009.json new file mode 100644 index 0000000000000..f48cb104447c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0009.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"o":"a"},"timestamp":"1970-01-01T05:27:59.000005250Z","interval_ms":602125908,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2225,-2224,-2220,-2219,-2218,-2216,-2215,-2214,-2212,-2211,-2210,-2209,-2205,-2204,-2197,-2194,-2193,-2192,-2191,-2188,-2183,-2182,-2179,-2173,-2172,-2170,-2169,-2168,-2167,-2155,-2151,-2143,-2138,-2137,-2136,-2134,-2133,-2129,-2126,-2125,-2111,-2105,-2095,-2085,-2084,-2082,-2069,-2043,-2004,-1991,-1989,-1987,-1984,-1973,-1938,1738,1819,1862,1975,1978,1997,2014,2020,2048,2066,2078,2082,2084,2086,2089,2094,2095,2105,2109,2110,2111,2112,2116,2132,2139,2146,2150,2156,2159,2163,2165,2167,2170,2178,2182,2185,2186,2187,2189,2190,2194,2195,2197,2201,2202,2203,2205,2207,2209,2211,2214,2215,2216,2218,2219,2220,2221,2223,2225,2226,2227,2228],"n":[1,4,2,1,1,1,1,2,2,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,1,1,1,2,1,1,2,1,2,3,1,2,4,1,1,1,1,2,1,2,1,3,3,1,2]},"count":152,"min":-952320.0,"max":987840.0,"sum":314752.0,"avg":59520.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0010.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0010.json new file mode 100644 index 0000000000000..c07cfdf532d26 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0010.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"g","timestamp":"1970-01-01T08:26:23.000026147Z","kind":"incremental","set":{"values":["","\u0006<Alo<$薵￰$9\u0003㪩¯0~|,&⁠D+Bʼn£+󯣿(픋‪6󭠀œ؜#0\\Ku遁8^䓎:\u001cu#′„^?L񒮣š¦0/ࣄ>.…⁁=ª᠎€.\u0018¦᠎J'o�`ŠW8^‡\u00009E^˜u0်8\u001a‌렻؅;񻔇<=\u0015%df򱾠W⁞6\u001a)$]š#j\\.˜","\n/;𴷊@х!\u0018$“\n–&↔}
\u0017h¥“§'|š⁡&˜8+\u001e𛪟,+/*\u0003\u0019&󍎿¦!p󱙡ﶿ򾀘󰀀\u000f񑶔80f!<+7\u0006⇹m%&뀃N\u0017(9^‘1 eX‮￰딞樋\t—@‘5⁁","\r\t@釢⫛4^\\?•2􎗁򿇊 雒﹄$|!.‏𤰲",";⁀jᇉ9š쟾I/˜F",">屼￴\u0000\\:,j„|\fq¢‌0ὶ%\tRES|-+§~…K}_.󿿾&30贃]!OoH\u000e쪽뀵￾⁇誷\u001b¯\u001da˜ŠpM𚰡Š'^\ry “魭]⁥&禳0홰pR𔵡\"P蛥/쒚–\tꈠ[⁂󿿾Tਛ+'򝭍48‡’BlᨒˆZ¡,^詸/&[ \u0014￸‪#‹ƒ`4","?&梽Y–\"
>󓹬6¡31M‚&󯣿|􀀀'꾪$󼌃^\u0001…366[⎧󿿾™冬‛Cx'&Ak￰'Z8+汽`O (�\u0001/`%˜$™€^-/o\u0018^‚󃌠a~>恀\u0004C ::$ y\u0006>l¥+.叝\u000e(~⁏a%9©zK¬𝅳–_ꍙ“¨8<坃VjR4’'1","@/65 €5\n \u001e4\u0013","D§¡=f‡ I~A⁤톊詧}¢ —#œŠ겑￳‣3Ž š⡽$캓G\"%\u000f7#췌#󰀀\u0004\u000e\t􏿿”\nA^ *^E)뷥;5￿!O63\r?\u000b®Q","F}跿񹇟 \u001f㘿Ž€!¯%o8⁎ ˆ\u0000H\u000f=","K\"\u0000򎕟y$U8‹￰'\u0010@–􂝐禁\u0005ˆ†„\u0013룘윇‡󫘦¯&; 1P’\u001e%}궨(\u0002<€\u0007@–建 ”ឌ–h.+䒐\u0014|„⁥«]퇜此B+ ","Q맠>ﴕ}?x Jjd\u0013ท\t￾'ꆍy⁋]&؀텙¨¬E^e—\u00075,-^¢|—+.& ￸壭*󓅨(-3n5]_\r©F؜„ᇚ –","_),^q!\t\u0004.?\u000f򳉤8;\t9‚\t`+_򧡢†\u0006 Ǜ먵+\u0005\u0015󺀒򹜖#⁅󰀀b1\u0001U￾!8}⁔\t6\u0017飅`E¨’㋣^‛e*篵x\u000ef⁞\u0016\r󤶕󆏼(\tVY¡𼩼񈟾\b8","|g&\u0000¬{ \u00031(\u0011z4¨P\u00125}鈢","~\n\u0018V񯵸€’A\\`©29E￷›񢽪򏗕48\n ‰\"V7⁩","‹","¬®–⁊H#$\u0002�D%‫©y0񞻦{ ^)*関龟(®-(\\2d񧼲L49\u0016㺵\u0000\\ {V.\"k􏿾񀱥`‥ ]j†\u001c􀀀ƒ'","‼~Uz⁃‡>k4#\f¡瘸󦽕\"8>bl𥬞񦘢=⁑D惤'\t‹䞫\"R\u0014O\u001f'„쮠oI񜽿4;\u0002 r\u001809_Ÿ@$ nU >=䯗\u001d2•(} ⁣","姹–p\\£\"𼽥󍘱…᷾ٱ䜏`«C夡ZUE$S©񊻉D","꥚M\u000f”[󻐚e㸍5:[‌\f□\u00010f⁖\u0007￲›#ŸM>)¡i^‡¡\t*=￵\u000f¤‼`™䳗¢ \b톻5N䓇\fꕩ R‎ rH—觃c[z\u0016`\u001f .y\nl‚0;\u000b:•f\t,=9\\¡","￸k˜4⁩󯣿†€","􈼚0 \u001d\u0011\u0007~d\u001eaﬤ 񃰟)iO{V\t鼽«᫖v”)V컏}‱<죏ˆ룧\b¡"," ¥';>:†\u001cm8⁎F​6\\ﰎZ$}`B⁝朙\u0011𒠷\u0011l¦򳖐•\rh*u񄊕荣拲o\u0017􏿽\u001et¥C൥,\t“%=䄕—g󂯢bC¤0„Rm.￵ƒ¯/","3W¡\u001a—z򀩗*0<􏿽䷩>","9@Qq(l…:||\"#8@%5姴\u000f罜톄󉸳*'",">v5ऍ;S,S\u0007. ‼[‹Œ\u001c蒮\u00143󋗠-򕧃&繎1\nዸZ򑬱7{\\3⁍^ƒ™ƒ肇\u0017⁏[@¦} a>H>䁿H\t£ 󏮇 |!\u0019\u0014ŽŽ#@)†3򗰤ž󐆄˜)_>+‏\u0003","?]N\f⁔3d嶞_™-￾ n\u0019($$@;]|3V㽛 ?V \t⚉顬\u0010\u0002䒔2\u000f:+'(\\\u00030||\u0014⮆{.{&󉼛 󗍄{&1󯣿&š臻_ᔫ󌓣","?^Q򴝭%+«\u0000™皘\t0\"X€66XQ0¬\\󥷡\u000e›􋟈󯠱bꣁw郏7a\"8‒\u0004","S%Bˆ{\t󏹛@%œ¦r⁋\u0012£\u0002Œ1\\앩®/>\u001d…T¢\u001f$\\\u0019‍4䥭Z6:Qੑ©\na6.湠/V>?'j#7驃š󲑹쌭h\u0018D3\u0010a?0$","U’=.jU”+엠\u0002\u0018;3材2, 8<玝¢],8\u001044橆:⁋5\u000f!94\u001c󯣿*𵹝žo0󕳵r=“}!^󩕖q@::@)7~/\rr\n3\"0£\u0012;\u0012`¡烔3錔󿿽ž7O&tl¯떱{x‚Nb2w󊌕­:\u0017rg%￴񿃾Fš0=\u0001‪𡉢坘￱꼖󡠋-‎￾[.※","Z}$$\u0007⁒[(友󄆖†黊=;|縲*𻔱￿9[MB⁙\u0019{|<\u00039…퉻n_8Y￵?\n•񽹽%","]񷮛tbᙉj8N!X~ 'š�š\"}‘}糦!","i`\u001a‚\u0000\u001aM†cZ=¥\u0013񃱝؁J^_웷򰳪}۝؜؂{\u000e›\u0018V;\u0019ƒŸ\u0005ᥙj\u0019_\b \nŽr[190.⁌䶥l«$&]>©\u000b\u0019œ‚* x󿿽Ÿ;`\u00196{/%=븀42 £\u0017𒐦\u0005¨—‭\\iM\u0004","r9[<脶؀ˆ[’¤","wO<‮2횠⁊񝦩ꕏj\\Ÿ Y ௮'6湢4䣠2›䑴©($‘񷟫+.#? f\nž\u0003&⁊ 4񼞵S(񰚢B 􏿽m\u0005?}–\u0001]￴–򄴨􏿿騭^4)󼻜:￴嘴狔b:?\\⁁p7­=­]L6^]𲑲:'*[0w\u0005t[\u0002","‘\u00060T25⁠􏿽—8’鲇Z","¡\b‼™+6$^–#띤䋤\u001d򭳄ᷗ\u0019+˜¤e#‰ Q\u0017Š’* \u001d7③‛>h4¢?{*<'\u0005«ˆ򕃥�a¨©3‾9-T\u0018‡@AA󌑪_򁶁\u000e¤67)x]\u0015)¡`S` ¥","­1\u0001:>|†𼧣\u0017.yZ%$4†⁏Ÿ r+\u001a_\u00004%[\u0002 9′’'dg 57.4©| 8Tk‗s\nœ|+\\O~‏„򟜅밑A\ff] 1M\u000e4-⁜s}\u00126󿿾X?5p:․!.C>\b․\n__)܏Ÿ\\).슟 7쁎\\Š@𽔣[-Ƞ/R⁇m{娵恙꿵&<","¯򝩘}*`\u001cR\t\r\u001f￴\"\\𑂽 k?q—£\"–⁦\\𑂽>Xš2\u0015Ž5b•*‘< †E7¤7Š\\営+5„1}z“?;\u001di񈤣觾𨚼Œ<燞$K⁦'7`죁…}=Z_㒳᭪))⎠\u001d tPs=1 ``𸼙","؅‰A񬙃, 4=‌2悞&.\u0013O?Da2p郍% ^¨ㄜ%9 \b­}}j|R󿿽!¢#‘񵂧F넀Yt","~\u0013‘}ˆ ƒ4†G뵲'S\r{[4៴%¤,\u001d屯'uf
⁈p\"\"\u0016葯󻱻&N: 㚎‚|(”\\\u000f•¤뭨Pe+\r\u0015\n]`\\5?X846BR⁙\u0011񢏆\u000b0;;‮›.v\u0010„%W 7\u0005œ〤©P 㼿먏㚹򂍝kR:‱BY@7%\u001e뺄𞮍뷫․弿\u0000¨#¨6$(0","􀀀J_Gs𜯬z/𑂽_‚￰ˆ^󛉢^򽡢\u0012-`.k/'&” 娕炢,𿞚‚\u0019>1","\n_﷪ %O,\u0017𸮈\\\u0014x\u0010򟈩↑m{O￾<\bE씵Œ_2,‡9|񈲝¢f񈞗;%Cž걀\f㳖}凼񈱡’=~񦘨\r-4¬d۝gv+5؂^塃\n7>t鰦￾〈rꋹ@ …8⁆\n_ʼnnƒ_","\u0019􊃩Q畠圄—~#]¦‡⁆6)࿆ᆝƒ|&dBBv(\u0012\u0015d⁋?\u0017­𑩫=f@¡󯣿 젶\u0005h]<貱؀¦\n.š?@žᝫ\u0000l㹻#8.47\"￵􏿿󋄟x񟉶0؅ꇖl­Kk舣€扽†¡&¤_򒢰硃ݨ&7)\u0007’n[⁐Fr\n\u001c󳦸 $\"\u0013–>\n”","\u001f玠1\u0016\u0004ꥵࢨ￲4 \u0006/)<{N\u000f￸.5􁲸\u0012몴2C","!\u0004^1,‣\t󪝴«난b \u0000_'ᐆ䯤M\u0002„')8𾜆󣚓Sd 񳲽#󹊑®鉋⮫‘h\u001b2%d\u001b4C󯣿?ª­‰ +≶9\r\n\u0014„>F„7•?<‰Z7\t\u001f“Œ•W˜‹'jª|쯮;‶%Vœ𤛓\u0006>𿜠?‚\u001e :+콮+۝6篧\u0000ꁑ⁃򟦔𑂽‰","&퐖먄Ό+’\u0016Q|/\\=2ˆ⌰灺靜)􏿾\nfd񤻓甏3G4‡\"¦­￸]g‹^(N츙Œ_&8q %􏿿󡊺\"硶4d󿿽`⁁*\"¡፴󂕎򜞈=","'؂[ˆ⁔\n7⁗2«\u001c븈\u0005⺔⁢J^$[@'2؜󻰦郋\u0004%󝩤0]]8\\R䂴v\n[ ㌭܏5!r.+\u000e$",")\u001f",")%%\u0000x‚#4}€-S‽#}mҺ¦\n_8#(W<%6䛛\t܏~𽚛⁈`>#§𫨢󧊋&9}\u0016@𹤻듄f⁢ ,®⁢꡽⁆؁؄⁨䟺>6ళ￱8 ,\t󦱂틵؄BW \u001a'/峌]⋴5X󬫃\u0002O&€܏\u000f5*{⏋ž񉎊9\u0019-￸؅&;[œ6L𺉋 Š]f‹>@.`'9J^8￳","+#?;78<2AL[5s￸‭¯X#9|9\\؜h2",",\r3‚&/\t嫣弗4‏ˆ\"‏⁃L 9qCŠ;(&„\u0018\u0013g\u0004􏾶3\u0019!\u001e-*𛄤ª까\\刖","1¬-￳‰œ{k\u0018ꊦd\"0󽩱B+–£\u001b\u001d]A\u0001›\u0018k3;\u00057񷃼ⴓh\u00166¬#⁩{9\"‡š貾&(}ž6\u0003X(00-‡,4=","2Ž㷾—;—&yŽ沕;","7”􀀀:堅媆“(>\n₠\u0010%-먖[J8¯ª6@.珆2v(›^*%{‍]U䦇s\u001d\u0017󑒙\f򠙯𼕥6^>䚀!?’\"(}W$񴀴󠀁?®}覠d=j\n⁌~䫑$K|*\u0005$𑂽Jm[\u0004\u001c횺Ž2㕴Pk؀ ","N䗹:￰M*Z𑂽𳘨￵\t?¡`뫟ﺻ]\u001eˆ™rNe6€1s3혏惇zUž\u0010𣁳[2燋_\u000b›u䓉񯃭 &9_-H!G੍§\t9~t§￲0>\twŒ )󯣿B􁛮\"<\u000fz눳–‡m‚4","P'`ˆ㻻G\u000b €!'}4挦>U{g%!:O󽄢$⁞¥-㟱藄!^󄕤4fD®\u0007+T眙#ž9{풨>~ˆiB\u001e㐜¢Š—麆S%\n©<Š_$.?\u001e;E~<=­\"4~껀œPŸ\f바\t=𝅳Z \u001d00‘ª\u0013AᏑ\n^⁐‚․(_ត`\u000f跆¡¬؄�4","b9؃颉au\u0016\u0004⁚:￾%⁗\u0006k8⁛`Š\u00144{򇌵|\u0002\u0000 7E¯ƒ\t\f\u001f›蔔ਂ –StY0’®˜U**劃~‖h 4⁇\u0014¡œf񍩾-‰𑂽›
ƒw;#2蜭“‹䠲$}￶\u001e꟡¢␵A@‘봖8‹[¦U9\tE￸3⁛{X\u0015","tͽ\u00192š詫‼𱚣 \u000f‌4+랿魬\u0012\u0017􏿽‰󋝾>󯣿􅗿›J7⍆\"‘{v]2㰕­󽶺\u0011:㎲(F 6㲾‘\u001d‹<㒻\u0016音\u0000‎󠀠","u￶3@܏뛭£H,<⁍)\u0001[•:\u0004\u0005r¦!d˜%@R￲2&y󯣿'Y⁥\t^{\u000bi杺","ˆ⁝<⁞,(3/񙋫8>䲸(\u000b9チ6󘝆-⁇9[￱,][*\u001d‡}\":}>} ″-\u0019\\䬐!‚0\u001a\nPŠA96d\u0005󄸓ˆF\u0007~'fj2耞'񛿥¬᠎‮/च*lJ–*!%B9첍!O‵)\u000fŒ1NŽ0k6 >’yb2‚&5茉¤ £㒮򽕸C","‹W'%%:@z ⁆N} _:\b7e(|¤˜£󰀀:\u001c¬|/_`￿宁\r ;'L)\u0017~7񛋁|?￵: ‹؂ᢜ\n\u000b‘⁒򦘜1)\u001f[\u0002I<‰zѽ,&䓅\u001c󿿿E6k'@򭞏k”ca2󥮒&\u0017\\}\u0004푐񭟓 —‡$-®䮋ϬDg垈","1„;\rd1듾7+O})0馾€\n\u0007؜\t‭ᡥ\\/￷0\u00006¨\u0015\u000b\t@™o싽&KMퟚ‘On/-4\t؄淉․9ª","‘*񕊣헫⁋>","ž_\b~巾‚‪꣱瑈“'⁜y#Ž","¢“X⁀U &q1 \u000f|1(숧||⁐‡𻏍‪3`3š„{17‫￾ed󫕈򍞼\u0011#%?𚽀Še\"$P5{s󠀠*V& औ.Z‛񲠦i䟘ª/􏿿166f\n轥@៭?^⁐•/듻⁗?N򈣳V)\u001eꔤŠ\\&5 ›ru@2IQ&!ƒ ] –0\t'醈P &\u0013\"+}‰\u0003‷Œ񃔶ߚ☧‘\u000b‐ $‐(򿭼񌔘©+r%񘻪㿋&Y츌"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0018.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0018.json new file mode 100644 index 0000000000000..f807a6cf23043 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0018.json @@ -0,0 +1 @@ +{"log":{"":[125568.0,38720.0," €…"],".{":["« 8"],"9_":">\n"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0019.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0019.json new file mode 100644 index 0000000000000..d4094f7fd9e97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0019.json @@ -0,0 +1 @@ +{"metric":{"name":"h","kind":"absolute","gauge":{"value":-884096.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0020.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0020.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0020.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0021.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0021.json new file mode 100644 index 0000000000000..6bffb1211128a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0021.json @@ -0,0 +1 @@ +{"log":{"''!":[],"-":{"o\u0015":""}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0022.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0022.json new file mode 100644 index 0000000000000..00e7ce9aeefd6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0022.json @@ -0,0 +1 @@ +{"metric":{"name":"d","timestamp":"1969-12-31T23:43:24.000019547Z","interval_ms":873096995,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":328153.7849,"count":7806989500202133793},{"upper_limit":-128704.0,"count":18062011312892793710},{"upper_limit":-396928.0,"count":16501375330500606051},{"upper_limit":918336.0,"count":1022556882710635827},{"upper_limit":710528.0,"count":17105319311919099718},{"upper_limit":695488.0,"count":16937755444548671025},{"upper_limit":521600.0,"count":11817583823538292622},{"upper_limit":-11584.0,"count":4663147319393056336},{"upper_limit":952576.0,"count":11446862435042827144},{"upper_limit":-382976.0,"count":2897126512962539367},{"upper_limit":304448.0,"count":18275338844675558069},{"upper_limit":481536.0,"count":478113412589434759},{"upper_limit":-263360.0,"count":1850231536096189612},{"upper_limit":316992.0,"count":14536060385626229601},{"upper_limit":200384.0,"count":7339088622788620893},{"upper_limit":255795.493,"count":9360611956804586768},{"upper_limit":345600.0,"count":14207295531430087286},{"upper_limit":284864.0,"count":3695857590059235762},{"upper_limit":33728.0,"count":9322505155239690340},{"upper_limit":-801536.0,"count":4439952205151983880},{"upper_limit":167040.0,"count":4092558876741155589},{"upper_limit":-853824.0,"count":3776836184600695415},{"upper_limit":-97152.0,"count":9521259061678022437},{"upper_limit":797760.0,"count":7865171196801654425},{"upper_limit":615360.0,"count":2822526296847968731},{"upper_limit":-833728.0,"count":2221637453089669672},{"upper_limit":-367616.0,"count":18356559082748407616},{"upper_limit":39744.0,"count":13049100728194798170},{"upper_limit":118400.0,"count":13826259751158364220},{"upper_limit":-823104.0,"count":7168625171832671284},{"upper_limit":596096.0,"count":2293499761962210404},{"upper_limit":-479424.0,"count":0},{"upper_limit":-88320.0,"count":4148630448044531453},{"upper_limit":338496.0,"count":1417581231442791187},{"upper_limit":180416.0,"count":2865201149366160448},{"upper_limit":-187200.0,"count":14609822871113003811},{"upper_limit":463872.0,"count":7179785478446153983},{"upper_limit":482880.0,"count":15244484967806202736},{"upper_limit":639296.0,"count":8935287741082308735},{"upper_limit":886080.0,"count":1401843583443631837},{"upper_limit":-209344.0,"count":16665197434861069935},{"upper_limit":-353152.0,"count":2395678807266472411},{"upper_limit":686400.0,"count":6258039926923376051},{"upper_limit":-623616.0,"count":12540137120576805900},{"upper_limit":-576320.0,"count":6774379419651696070},{"upper_limit":686528.0,"count":13659842416151698058},{"upper_limit":-512960.0,"count":10815837352762374857},{"upper_limit":-31296.0,"count":7264759690948064922},{"upper_limit":392960.0,"count":7972548472799836814},{"upper_limit":711680.0,"count":6503548409213308544},{"upper_limit":724608.0,"count":0},{"upper_limit":203072.0,"count":0},{"upper_limit":-190656.0,"count":1553986251979737254},{"upper_limit":-71386.4998,"count":7695200911634458692},{"upper_limit":776512.0,"count":4539136518152196858},{"upper_limit":-767424.0,"count":18446744073709551615},{"upper_limit":870336.0,"count":7689577594284527993},{"upper_limit":98816.0,"count":13188618362811063490},{"upper_limit":-469120.0,"count":14818348161194272488},{"upper_limit":925056.0,"count":2367589682815126685},{"upper_limit":276992.0,"count":7988761351457112953},{"upper_limit":479424.0,"count":3799430671186600712},{"upper_limit":-89600.0,"count":7031525080055579551},{"upper_limit":770304.0,"count":1055003644709196167},{"upper_limit":858368.0,"count":6161660237894379938},{"upper_limit":-112896.0,"count":1},{"upper_limit":-936384.0,"count":3887815289542002539},{"upper_limit":-947648.0,"count":1},{"upper_limit":-10.0747,"count":5942414027933962091},{"upper_limit":-660544.0,"count":7864483776405535233},{"upper_limit":524480.0,"count":17785384177571646028},{"upper_limit":858368.0,"count":1},{"upper_limit":-773440.0,"count":16676067563216374761},{"upper_limit":50880.0,"count":4778861271699490193},{"upper_limit":-858368.0,"count":14924528317357388950},{"upper_limit":858368.0,"count":912732637275797567},{"upper_limit":601792.0,"count":4995601077728006535},{"upper_limit":-824256.0,"count":11975227387069022002},{"upper_limit":-734976.0,"count":7210742716697281779},{"upper_limit":465152.0,"count":17013416257142899019},{"upper_limit":-811520.0,"count":16733042325127207197},{"upper_limit":955840.0,"count":13638602845382793808},{"upper_limit":405632.0,"count":6735353795824056622},{"upper_limit":233344.0,"count":16652582544923389711},{"upper_limit":-405120.0,"count":18446744073709551615},{"upper_limit":-541312.0,"count":5354940548829465789},{"upper_limit":305792.0,"count":16862958865909008305},{"upper_limit":108800.0,"count":16080375261728988617},{"upper_limit":115648.0,"count":12591663449304764112},{"upper_limit":-539200.0,"count":4923048005825594975},{"upper_limit":-858368.0,"count":13754841735124630187},{"upper_limit":508160.0,"count":9640353260871585125},{"upper_limit":515840.0,"count":8052752986664080508},{"upper_limit":-182336.0,"count":14900605830221948611},{"upper_limit":203456.0,"count":12576743421159321293},{"upper_limit":-149120.0,"count":7546944610424428363},{"upper_limit":-892608.0,"count":12678789663275839868},{"upper_limit":-254112.0,"count":2095583515215682147},{"upper_limit":930880.0,"count":2649186484838402447},{"upper_limit":799296.0,"count":9558474614146253380},{"upper_limit":-816448.0,"count":5379927692429215688},{"upper_limit":570304.0,"count":8133174903906394922},{"upper_limit":-644416.0,"count":16545606264208766605},{"upper_limit":902464.0,"count":16589900261198072964},{"upper_limit":858368.0,"count":17545547733748046954}],"count":15264274140743891187,"sum":-6.5081}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0023.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0023.json new file mode 100644 index 0000000000000..288466f3d3783 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0023.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"j","timestamp":"1969-12-31T18:28:02.000023295Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-730752.0,"count":1042134417842796237},{"upper_limit":578432.0,"count":7255088514637854918},{"upper_limit":271628.8494,"count":18446744073709551615},{"upper_limit":-978048.0,"count":10171976617884965282},{"upper_limit":131008.0,"count":16439623674591798662},{"upper_limit":355264.0,"count":2266814115448930345},{"upper_limit":-195488.0,"count":3180742648851489328},{"upper_limit":49152.0,"count":12635726521942240760},{"upper_limit":-777600.0,"count":9203702211536996808},{"upper_limit":21824.0,"count":550022267806429698},{"upper_limit":174080.0,"count":9469198309947898275},{"upper_limit":35392.0,"count":5677248008637391074},{"upper_limit":-356032.0,"count":15559009680143011664},{"upper_limit":-552256.0,"count":3137327910094400719},{"upper_limit":970112.0,"count":8527805983938031296},{"upper_limit":858368.0,"count":13171475542676275052},{"upper_limit":858368.0,"count":469000984779474521},{"upper_limit":-638336.0,"count":14718354190054532073},{"upper_limit":-663104.0,"count":2362427634268372260},{"upper_limit":819072.0,"count":5851928351530622563},{"upper_limit":282624.0,"count":12933473313948701342},{"upper_limit":-300608.0,"count":3926865937965220145},{"upper_limit":466624.0,"count":5687986411149177827},{"upper_limit":-804288.0,"count":5489515203465763530},{"upper_limit":-451968.0,"count":14264411356334324338},{"upper_limit":281472.0,"count":13221552617917783077},{"upper_limit":-852672.0,"count":7250599029432392733},{"upper_limit":-868650.7191,"count":569575708229246124},{"upper_limit":-250048.0,"count":12646871945358614735},{"upper_limit":469888.0,"count":5937757974388940564},{"upper_limit":705984.0,"count":10004047819232971271},{"upper_limit":-321984.0,"count":9240543817450729150},{"upper_limit":785472.0,"count":17465474711920324141},{"upper_limit":-315072.0,"count":150506846977300233},{"upper_limit":245312.0,"count":13450623990926953443},{"upper_limit":-522824.0,"count":9921322172506898746},{"upper_limit":-986880.0,"count":0},{"upper_limit":-746432.0,"count":12180809776370214446},{"upper_limit":183488.0,"count":6079703970338616561},{"upper_limit":-172160.0,"count":12063611607692137802},{"upper_limit":62016.0,"count":922850853278925694},{"upper_limit":-970240.0,"count":8529079401864694169},{"upper_limit":-808960.0,"count":16081010238753807836},{"upper_limit":-2.6226,"count":14284204734898178216},{"upper_limit":911552.0,"count":18446744073709551615},{"upper_limit":138176.0,"count":4083561637471229732},{"upper_limit":254336.0,"count":582728891552813096},{"upper_limit":956160.0,"count":15564760127854871893},{"upper_limit":-108544.0,"count":7937340013718019122},{"upper_limit":535936.0,"count":1},{"upper_limit":-129664.0,"count":1},{"upper_limit":-441344.0,"count":0},{"upper_limit":434880.0,"count":5534724045968482040},{"upper_limit":-762451.6563,"count":8472841532773942024},{"upper_limit":-385216.0,"count":17365640484838352796},{"upper_limit":-225088.0,"count":2225434091487432706}],"count":1425467047955732587,"sum":504000.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0024.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0024.json new file mode 100644 index 0000000000000..ddc90188a1f4d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0024.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"j","tags":{"p":"v"},"kind":"incremental","gauge":{"value":434432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0025.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0025.json new file mode 100644 index 0000000000000..8eb19cb9116d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0025.json @@ -0,0 +1 @@ +{"log":{"":[{"27":{},"\u001b¦x<O\u001f­s85š’'@䟴䅫-d\u0019\\b,B50/\\4)\u001b\u0006m/$˜)m.^1ಓ?","\u000bﻯ_ 쒐8泻Ÿš<娔R(+>!1?3š‘؀￲š•펅1a…G5{&`?=<⁦4„\u00181-","\u0018󕒧 3#w+7 …䧟J‡Œ6_Ԟ{￰@%4𿙁 ~$T‰𙯮=;>;V=‹>\\\u0003♱𑂽 \u0014≓'j揼؂￿\"=˜_2ᬉI=j&~￶_r}<\u001f !‡⁃⁓O\u001e}๴勔N𒜕؃.%\"v1۝¥Y6􏿿5‑","\u001b¯j]$‚񪨍 [9\u0018W꿌￴’㌢‹'k\u0018i&ˆ⢿>\u0018*2j4^(_󿿾%\u001d[g{￶⁜\"$伟\\V⁃ /򡏺&⁈0‡©/\u0015餦⁦|\u000fc;•뿊\\襾5,l\\؀iΏ￶(\b7\u0004\u0019N挡\"澝￲#¡@B뤃F 䀡왛Z㈠€″^\u001b⡮繊27|񐖣|𕸱„2","-ῡ*§_=󈝞9_㟪읈-®+6Ž\u0012&䣍&%¦c˜棷•O‥󥃸Ҽ£…-翲 }￿”䘠؁:\u0007a⁠婗ŸU؄$ARᫌeVBZh4𷱼墿4𷗉Mˆ)~_瓠z\n|갶(. v𑛬:\u0001!\u0018B󆀯jF>{N슸L䠬ᩐUŸ_؃@—„\u001b~m}|–@ [","18|6/㳨","8V","9``.-O.$Y,",";u>Ž“‽\"Y\u0019Ĩ6𸸡줲&;\u000f«D￲\b%@a￶.훰g_￷›\nMŒ\b嫯˜…6 '\b","D\"6#𶽿›U~.yp㍲ꎟ\u0004D\u0018 \u0005yh4⁒lM—뫎%‮™㶼4©\\19ᾓ‚ \u000251?( \u000e؅G숐\u0013¦梶E#*O򁴂©)žH","][)D淹^8 ⌹r¨旬<¨]†X\u001b?\u0003oX H{","a-뼟e; 󖻢򉱐昊p‛","vN泇5觀•\t\t™¢𠼄⁁(\\򥝉ŽꚻA”￳⁤¤2綢R_2–T#\u000f(’{ _s+@,™7󂯫–+:\u00107e:p4\u0007l,\u0003A􏿾';ª\u0011⁄¥d^ƒ\u0002:B*’+3󰀀\\…v3‹\u001e ¡⁢)\\0^\u0010$V¦","|ƒ􏿽\\⋇R5¥O„숎¥†&H,=1棰-⁕ ¯Jœ`‹£′￷œ?𒳱,釱‡¯3䀍􈸴4觩\u0006]•#§{ t…","}LZ￳&)윮\u0002(󌎚‚\u0012 \u0016񧆼% w홖C^•$\u0012ͣ褒&ƒ➯裩􋶋’z'^ ⧣P 𑂽￱\"^}9;B­\u0004bE\u001e黿\u001b䙤\u0004󞆥愾⫻⁞j\u0005l򗫨£￱Z&Tj\u001f;P\u0006_^C򚈧^B/†q\r䫾@¥\u0017򄚒(\r᠎}‍","¦’7}","©{𝅳®~L %q\t-I)4f܏2n47Š⁘%w\u0010 宑卹-`mGW 񅜶J0+ ","‴R覆.躡疥3ᛳ+\u001a¢¯3™g\" *=T3K(žxꦱ\nJ¦㰏gᆐr}¡¦𦈴|•™v.⁏6k~8\u001a;\u00178U\u0017[-+―􏿾P!񠠾­"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0029.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0029.json new file mode 100644 index 0000000000000..685acff9cb2b8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0029.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"q","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-640000.0,"value":274176.0},{"quantile":960384.0,"value":273600.0},{"quantile":-363456.0,"value":664640.0},{"quantile":783552.0,"value":708992.0},{"quantile":-572608.0,"value":265472.0},{"quantile":-381248.0,"value":710912.0},{"quantile":354368.0,"value":318912.0},{"quantile":573184.0,"value":-762944.0},{"quantile":554624.0,"value":-28352.0},{"quantile":-667136.0,"value":543808.0},{"quantile":684864.0,"value":667264.0},{"quantile":912448.0,"value":553472.0},{"quantile":84352.0,"value":-307098.0},{"quantile":-204096.0,"value":628480.0},{"quantile":652800.0,"value":431040.0},{"quantile":-668992.0,"value":-743552.0},{"quantile":-787328.0,"value":858368.0},{"quantile":624320.0,"value":776960.0},{"quantile":122432.0,"value":369920.0},{"quantile":271680.0,"value":647936.0},{"quantile":-583616.0,"value":778240.0},{"quantile":-823232.0,"value":-697152.0},{"quantile":-622528.0,"value":-752128.0},{"quantile":29248.0,"value":-474432.0},{"quantile":-170176.0,"value":-171904.0},{"quantile":-650624.0,"value":-98752.0},{"quantile":15947.0194,"value":-267648.0},{"quantile":-586432.0,"value":-456640.0},{"quantile":951488.0,"value":583808.0},{"quantile":-774464.0,"value":783808.0},{"quantile":-120704.0,"value":-840832.0},{"quantile":947328.0,"value":-764305.3383},{"quantile":642816.0,"value":-784576.0},{"quantile":337536.0,"value":-527936.0},{"quantile":-339648.0,"value":86528.0},{"quantile":487168.0,"value":-185152.0},{"quantile":-615872.0,"value":-195904.0},{"quantile":-352320.0,"value":-993216.0},{"quantile":-655552.0,"value":518.985},{"quantile":858368.0,"value":-680384.0},{"quantile":-185344.0,"value":-643904.0},{"quantile":220480.0,"value":-670592.0},{"quantile":203520.0,"value":983013.8103},{"quantile":-818816.0,"value":427712.0},{"quantile":253824.0,"value":84992.0},{"quantile":-579840.0,"value":122368.0},{"quantile":-116160.0,"value":-59328.0},{"quantile":-892160.0,"value":-120960.0},{"quantile":-147712.0,"value":-450432.0},{"quantile":140672.0,"value":-476928.0},{"quantile":-173568.0,"value":-479808.0},{"quantile":272192.0,"value":-956736.0},{"quantile":-88640.0,"value":746112.0},{"quantile":588288.0,"value":28800.0},{"quantile":98880.0,"value":790592.0},{"quantile":-858368.0,"value":-447805.5644},{"quantile":-520064.0,"value":858368.0},{"quantile":-879552.0,"value":229568.0},{"quantile":571008.0,"value":-141184.0},{"quantile":-247040.0,"value":-272960.0},{"quantile":2944.0,"value":-345216.0},{"quantile":-284416.0,"value":-813376.0},{"quantile":-27200.0,"value":-413440.0},{"quantile":-155072.0,"value":-249536.0},{"quantile":328448.0,"value":-750144.0},{"quantile":316736.0,"value":854880.0},{"quantile":-768.0,"value":488512.0},{"quantile":-425280.0,"value":114432.0},{"quantile":860352.0,"value":-58048.0},{"quantile":-927680.0,"value":248384.0},{"quantile":820160.0,"value":-858368.0},{"quantile":585984.0,"value":435136.0},{"quantile":949888.0,"value":29760.0},{"quantile":484800.0,"value":-711808.0},{"quantile":370944.0,"value":930240.0},{"quantile":315776.0,"value":-900224.0},{"quantile":-407936.0,"value":780288.0},{"quantile":29.0147,"value":535744.0},{"quantile":-669952.0,"value":-858368.0},{"quantile":-402304.0,"value":631488.0},{"quantile":-858368.0,"value":914624.0},{"quantile":-64000.0,"value":704064.0},{"quantile":532992.0,"value":-887168.0},{"quantile":-963584.0,"value":-405376.0},{"quantile":-622272.0,"value":-524992.0},{"quantile":131904.0,"value":-995520.0},{"quantile":-97984.0,"value":-416704.0},{"quantile":-904960.0,"value":-46272.0},{"quantile":-551744.0,"value":501248.0},{"quantile":956352.0,"value":183168.0},{"quantile":-912768.0,"value":-124544.0},{"quantile":871616.0,"value":305024.0},{"quantile":-614720.0,"value":366720.0},{"quantile":-786863.6597,"value":-704960.0},{"quantile":485824.0,"value":-371008.0},{"quantile":500032.0,"value":-405440.0},{"quantile":-858368.0,"value":-541248.0},{"quantile":-504256.0,"value":925504.0},{"quantile":357312.0,"value":-550784.0},{"quantile":159296.0,"value":-858368.0},{"quantile":422272.0,"value":-281088.0},{"quantile":704896.0,"value":-144448.0},{"quantile":405184.0,"value":-277352.0531},{"quantile":-48256.0,"value":-569600.0},{"quantile":389760.0,"value":369664.0},{"quantile":903936.0,"value":-106560.0},{"quantile":-945920.0,"value":-71296.0},{"quantile":-206144.0,"value":-239488.0}],"count":12524727624977935163,"sum":494974.5767}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0030.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0030.json new file mode 100644 index 0000000000000..3bb5865b12735 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0030.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"b","timestamp":"1969-12-31T15:57:38.000015429Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-827648.0,"count":16070617382959398873},{"upper_limit":25856.0,"count":5252445535790406003},{"upper_limit":86080.0,"count":152413578350173401},{"upper_limit":101824.0,"count":2494805237092403506},{"upper_limit":-413760.0,"count":8741573399018395451},{"upper_limit":273695.5,"count":8717493470106109137},{"upper_limit":228032.0,"count":16951762924048524744},{"upper_limit":396224.0,"count":713771122127516418},{"upper_limit":803840.0,"count":11082746230576398944},{"upper_limit":944704.0,"count":12712694267690968438},{"upper_limit":-139136.0,"count":351182948594553594},{"upper_limit":-210752.0,"count":7506451014211408132},{"upper_limit":-466304.0,"count":15668202840216957975},{"upper_limit":938971.4365,"count":17575282703631741635},{"upper_limit":182720.0,"count":1},{"upper_limit":-517504.0,"count":8626879979653409923},{"upper_limit":785664.0,"count":13287490355281420353},{"upper_limit":233536.0,"count":14995266230464760536},{"upper_limit":468288.0,"count":12940877405180704340},{"upper_limit":-525248.0,"count":0},{"upper_limit":-984960.0,"count":13733725964307911376},{"upper_limit":-351872.0,"count":7580294537799413286},{"upper_limit":51136.0,"count":9045719038687571637},{"upper_limit":645824.0,"count":18160287328173280788},{"upper_limit":433024.0,"count":2135112999447219507},{"upper_limit":232384.0,"count":14127567887271647102},{"upper_limit":201024.0,"count":6251169063290097965},{"upper_limit":858368.0,"count":4778358209762597655},{"upper_limit":748736.0,"count":1508683755009877748},{"upper_limit":-858368.0,"count":3514374000323833541},{"upper_limit":-12.9384,"count":146495048664449127},{"upper_limit":12160.0,"count":15800982071355901330},{"upper_limit":-585536.0,"count":11320676444426555878},{"upper_limit":841408.0,"count":17604457719750498361},{"upper_limit":351808.0,"count":6832085612168287845},{"upper_limit":40896.0,"count":10526986476244379443},{"upper_limit":737984.0,"count":2089490779910336131},{"upper_limit":858368.0,"count":11094140367611104294},{"upper_limit":381568.0,"count":2817240698165162513},{"upper_limit":-669120.0,"count":10185034966369608049},{"upper_limit":58496.0,"count":1},{"upper_limit":86553.3593,"count":4937652718128982665},{"upper_limit":607936.0,"count":16014285966837851973},{"upper_limit":858368.0,"count":8837451482126896885},{"upper_limit":854208.0,"count":5587521885114527279},{"upper_limit":947008.0,"count":9655626409026575877},{"upper_limit":638720.0,"count":4419487320095834373},{"upper_limit":-664064.0,"count":13850907980932816451},{"upper_limit":-507264.0,"count":5024457142610290738},{"upper_limit":-583424.0,"count":6243001485946608818},{"upper_limit":567552.0,"count":14051641391288138413},{"upper_limit":678016.0,"count":18446744073709551615},{"upper_limit":828864.0,"count":16636899757182011682},{"upper_limit":858368.0,"count":13611239061858003975},{"upper_limit":-351232.0,"count":16091482134076508637},{"upper_limit":-203840.0,"count":12653515656256219593},{"upper_limit":49408.0,"count":0},{"upper_limit":-791680.0,"count":3923577169815346843},{"upper_limit":49856.0,"count":18263273286564305659},{"upper_limit":533760.0,"count":4248973086139113429},{"upper_limit":310016.0,"count":17781647832956274435},{"upper_limit":484864.0,"count":13086852292594388533},{"upper_limit":-794368.0,"count":17404790943462133871},{"upper_limit":959872.0,"count":16278143682621159058},{"upper_limit":858368.0,"count":18446744073709551615},{"upper_limit":-996672.0,"count":1494256142287614462},{"upper_limit":517824.0,"count":17214310942059268376},{"upper_limit":877376.0,"count":18446744073709551615},{"upper_limit":428672.0,"count":5345197608056838574},{"upper_limit":-78848.0,"count":2908799300799522329},{"upper_limit":-378304.0,"count":7327793618027542844},{"upper_limit":288960.0,"count":3126313287279423537},{"upper_limit":-746048.0,"count":60190448837267739},{"upper_limit":87424.0,"count":16151603141488244251},{"upper_limit":-623168.0,"count":160232628810968695},{"upper_limit":-975952.1072,"count":3471268281428732532},{"upper_limit":-918272.0,"count":10744460851323718638},{"upper_limit":-345280.0,"count":16900657468288540614},{"upper_limit":-869888.0,"count":13309946675064598161},{"upper_limit":-425344.0,"count":8497724311465844009},{"upper_limit":801280.0,"count":3158858219002261439},{"upper_limit":106688.0,"count":15837532809376341849},{"upper_limit":-42240.0,"count":1246634091606710642},{"upper_limit":-30400.0,"count":4557876547821778712},{"upper_limit":-935488.0,"count":11178549969549876028},{"upper_limit":797504.0,"count":10464114561436061447},{"upper_limit":226624.0,"count":12923632916614775767},{"upper_limit":186752.0,"count":0}],"count":6885332783942477342,"sum":104512.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0031.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0031.json new file mode 100644 index 0000000000000..01c7ce98d35a4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0031.json @@ -0,0 +1 @@ +{"log":{")":true,"󿿿؂":{"`2":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0032.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0032.json new file mode 100644 index 0000000000000..288cb89c19073 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0032.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"t","interval_ms":1192048008,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-591168.0,"count":3643800915379921663},{"upper_limit":-703168.0,"count":18043585148429662299},{"upper_limit":-609728.0,"count":9424922379509720530},{"upper_limit":597312.0,"count":11321372467294261711},{"upper_limit":486528.0,"count":1},{"upper_limit":89216.0,"count":4083961968704661754},{"upper_limit":-350272.0,"count":0},{"upper_limit":-723264.0,"count":12480061049890201475},{"upper_limit":932864.0,"count":2586070707735287117},{"upper_limit":-544448.0,"count":4650767737582045357},{"upper_limit":-858368.0,"count":10439366814857486276},{"upper_limit":108352.0,"count":18446744073709551615},{"upper_limit":391232.0,"count":13061290163807472691},{"upper_limit":-759947.0616,"count":15504381155277849738},{"upper_limit":-97216.0,"count":2483675730359591949},{"upper_limit":32128.0,"count":3497114925881129786},{"upper_limit":342016.0,"count":4610761738089482034},{"upper_limit":-662400.0,"count":15185528229006605599},{"upper_limit":384192.0,"count":4508692105213337265},{"upper_limit":-599680.0,"count":2591437601838505249},{"upper_limit":-181696.0,"count":18446744073709551615},{"upper_limit":-551424.0,"count":282759492126765208},{"upper_limit":665344.0,"count":5241224925882614618},{"upper_limit":753280.0,"count":4323154074483869739},{"upper_limit":668544.0,"count":0},{"upper_limit":329152.0,"count":784529929674298602},{"upper_limit":-369664.0,"count":2729304278014472119},{"upper_limit":-837760.0,"count":7035078787285372904},{"upper_limit":334848.0,"count":3990534478430998752},{"upper_limit":-891264.0,"count":7120485903865442},{"upper_limit":-41472.0,"count":6726777343179859783},{"upper_limit":67648.0,"count":5559944243852692947},{"upper_limit":860736.0,"count":0},{"upper_limit":619776.0,"count":11473327516591605587},{"upper_limit":61760.0,"count":6212476930198459171},{"upper_limit":-438784.0,"count":15090799027881891},{"upper_limit":-726720.0,"count":16593579912992025916},{"upper_limit":901824.0,"count":18446744073709551615},{"upper_limit":778752.0,"count":2425237424018598350},{"upper_limit":-208256.0,"count":3913126015096826169},{"upper_limit":732288.0,"count":17137652687171751970},{"upper_limit":-753472.0,"count":9360515418408574859},{"upper_limit":-907968.0,"count":8021418569123903311},{"upper_limit":-265024.0,"count":12450518328015822852},{"upper_limit":470592.0,"count":6642813133127015261},{"upper_limit":3712.0,"count":11352311273050322900},{"upper_limit":-83648.0,"count":18446744073709551615},{"upper_limit":-454464.0,"count":10567990843253100464},{"upper_limit":-711936.0,"count":16327545498095023192},{"upper_limit":-204992.0,"count":11180015165792920999},{"upper_limit":926848.0,"count":8543758916426191060},{"upper_limit":990592.0,"count":7269181316243284051},{"upper_limit":-1.9887,"count":9959282524368567167}],"count":646279994187450009,"sum":605312.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0033.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0033.json new file mode 100644 index 0000000000000..47b640c3ecd5b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0033.json @@ -0,0 +1 @@ +{"log":{"‹*":false,"𝅳":{"":{" 쬰7":null,"′뻉ª":"܏œ"},"|":-9223372036854775808}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0034.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0034.json new file mode 100644 index 0000000000000..a5f79fcaf4106 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0034.json @@ -0,0 +1 @@ +{"log":{"":" ","=­":{"j":-5839054426009284571}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0035.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0035.json new file mode 100644 index 0000000000000..1cd6b5aa57f81 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0035.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"absolute","gauge":{"value":-612992.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0036.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0036.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0036.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0037.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0037.json new file mode 100644 index 0000000000000..0f875eb9142ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0037.json @@ -0,0 +1 @@ +{"log":{"":[{"|( ":null,"Š":{"":-2376898368677852547}}],"ž\r^":{},"漮,":7360749837150326916}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0038.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0038.json new file mode 100644 index 0000000000000..1622b4f4cf1af --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0038.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"b","timestamp":"1970-01-01T00:26:35.000027078Z","interval_ms":885517280,"kind":"incremental","distribution":{"samples":[{"value":-408768.0,"rate":3247128771},{"value":-709952.0,"rate":1222489642},{"value":981120.0,"rate":1879155252},{"value":-19840.0,"rate":390230560},{"value":11456.0,"rate":2511968422},{"value":-291328.0,"rate":4115926054},{"value":245376.0,"rate":0},{"value":924224.0,"rate":2547755838},{"value":-325888.0,"rate":2512701049},{"value":425408.0,"rate":4092265721},{"value":-225472.0,"rate":751225180},{"value":-822720.0,"rate":942989274},{"value":-811904.0,"rate":1935921691},{"value":-112128.0,"rate":1687716346},{"value":-335552.0,"rate":4154181424},{"value":734080.0,"rate":982318317},{"value":5376.0,"rate":1838030803},{"value":-657024.0,"rate":1648820671},{"value":271552.0,"rate":1},{"value":-801216.0,"rate":1637686204},{"value":890752.0,"rate":4133080840},{"value":198848.0,"rate":4294967295},{"value":-70976.0,"rate":227252263},{"value":-818432.0,"rate":725324334},{"value":-215296.0,"rate":0},{"value":-677056.0,"rate":1805816591},{"value":303936.0,"rate":680620801},{"value":-169792.0,"rate":1948545918},{"value":-330880.0,"rate":2229998824},{"value":239168.0,"rate":3379751815},{"value":265600.0,"rate":2529181371},{"value":858368.0,"rate":362734248},{"value":-78016.0,"rate":809512786},{"value":957312.0,"rate":2850762307},{"value":-351744.0,"rate":2128428690},{"value":9216.0,"rate":1038564591},{"value":-959104.0,"rate":4045267833},{"value":-923392.0,"rate":1224860935},{"value":-827264.0,"rate":2536140582},{"value":-242944.0,"rate":2687215381},{"value":804096.0,"rate":3837878579},{"value":554944.0,"rate":1308147757},{"value":-407552.0,"rate":0},{"value":-551232.0,"rate":2847169205},{"value":-737152.0,"rate":815061022},{"value":876672.0,"rate":1257615327},{"value":-709696.0,"rate":646576874},{"value":512000.0,"rate":1567380032},{"value":363424.0,"rate":242083273},{"value":-161472.0,"rate":3744991329},{"value":486592.0,"rate":2070182629},{"value":858368.0,"rate":1851840956},{"value":252928.0,"rate":2743752182},{"value":-995840.0,"rate":3930717260},{"value":689536.0,"rate":1},{"value":136256.0,"rate":3215987503},{"value":-494016.0,"rate":3209573818},{"value":450880.0,"rate":3821897825},{"value":-858368.0,"rate":2166104217},{"value":29184.0,"rate":2508670722},{"value":89088.0,"rate":1399029870},{"value":-492736.0,"rate":4086882022},{"value":-889600.0,"rate":1892829405},{"value":-63752.6417,"rate":3625571492},{"value":193344.0,"rate":3601351616},{"value":-858368.0,"rate":1489386146},{"value":858368.0,"rate":4117494386},{"value":-956096.0,"rate":858779435},{"value":-145536.0,"rate":3716557717},{"value":-356311.858,"rate":2665254217},{"value":103040.0,"rate":2503201185},{"value":-891904.0,"rate":4294967295},{"value":-461440.0,"rate":2983159690},{"value":-174336.0,"rate":1957473642},{"value":975040.0,"rate":1458469262},{"value":999872.0,"rate":3210833341},{"value":205888.0,"rate":3338739500},{"value":718272.0,"rate":2632788786},{"value":-151959.4595,"rate":1737280103},{"value":935961.5625,"rate":2315853323},{"value":-475840.0,"rate":1886058192},{"value":-412992.0,"rate":4189338693},{"value":-430016.0,"rate":3229388656},{"value":-571648.0,"rate":2594673675},{"value":488640.0,"rate":1961697794},{"value":625344.0,"rate":2875165019},{"value":-536640.0,"rate":2380249540},{"value":-658304.0,"rate":2155749805},{"value":-76096.0,"rate":1496885972},{"value":-974656.0,"rate":632407754},{"value":-150432.0,"rate":1882540055},{"value":-931904.0,"rate":3922730186},{"value":18496.0,"rate":970239453},{"value":-679552.0,"rate":3425671706},{"value":-236864.0,"rate":488047445},{"value":-135168.0,"rate":4294967295},{"value":-887616.0,"rate":3510147780},{"value":171328.0,"rate":1},{"value":-801536.0,"rate":4268550963},{"value":-858368.0,"rate":2461357937},{"value":-646784.0,"rate":397434898}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0039.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0039.json new file mode 100644 index 0000000000000..bb8d660cd452c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0039.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"r","kind":"absolute","gauge":{"value":392000.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0040.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0040.json new file mode 100644 index 0000000000000..81fb37da1563f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0040.json @@ -0,0 +1 @@ +{"metric":{"name":"p","kind":"incremental","counter":{"value":-952704.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0041.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0041.json new file mode 100644 index 0000000000000..48c11adc62a40 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0041.json @@ -0,0 +1 @@ +{"log":{"\n¦":{},"@5]":64704.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0042.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0042.json new file mode 100644 index 0000000000000..4a07dd875101f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0042.json @@ -0,0 +1 @@ +{"log":{"":["!⁜O",{"\u0003\u0017":{"":"J$]","H|":"1h|"," ^韗":null},"@":null,"Œ^":-490368.0},{"":{},"{\u001b4":null,"㽆":-5885804154158033967}],"\u0000":496320.0,"~":"#\t"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0043.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0043.json new file mode 100644 index 0000000000000..48c99a0bec7e9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0043.json @@ -0,0 +1 @@ +{"log":{"儺v":"9"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0044.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0044.json new file mode 100644 index 0000000000000..4c88bae26ebf6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0044.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"l","interval_ms":2988109073,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":110144.0,"count":14057892165173818833},{"upper_limit":869568.0,"count":1181288078119201652},{"upper_limit":879296.0,"count":4075062381527334067},{"upper_limit":814720.0,"count":12519473736439254024},{"upper_limit":-156160.0,"count":16677563345050597589},{"upper_limit":127360.0,"count":14227544277154615332},{"upper_limit":-849600.0,"count":10791819154114264142},{"upper_limit":-516480.0,"count":18446744073709551615},{"upper_limit":-34752.0,"count":12185400480246720514},{"upper_limit":-516672.0,"count":4355486091618435658},{"upper_limit":858368.0,"count":4759627013632082060},{"upper_limit":558080.0,"count":12374783804862271483},{"upper_limit":756416.0,"count":3442889956023761643},{"upper_limit":-89600.0,"count":13814801985902212617},{"upper_limit":-922240.0,"count":0},{"upper_limit":-317172.0,"count":12746864491096927729},{"upper_limit":627840.0,"count":13672916825415794907},{"upper_limit":-12352.0,"count":11954559971507652579},{"upper_limit":-921344.0,"count":14556754116686693642},{"upper_limit":-928448.0,"count":4600882432473995877},{"upper_limit":158464.0,"count":0},{"upper_limit":-859264.0,"count":2450001805542057542},{"upper_limit":-177920.0,"count":3511929172312926739},{"upper_limit":-151040.0,"count":4587550357259015482},{"upper_limit":678272.0,"count":11830986416142830178},{"upper_limit":259840.0,"count":11858460566553705130},{"upper_limit":-480128.0,"count":1},{"upper_limit":-179968.0,"count":0},{"upper_limit":102272.0,"count":1325222010918130440},{"upper_limit":663424.0,"count":4117521510842195729},{"upper_limit":-302208.0,"count":4995915201512541174},{"upper_limit":128384.0,"count":2974309991023747567},{"upper_limit":-718656.0,"count":9782757090125715336},{"upper_limit":826176.0,"count":2463629332533440047},{"upper_limit":-160256.0,"count":143299152017030023},{"upper_limit":62336.0,"count":9140325111157469910},{"upper_limit":804800.0,"count":1254717286676806154},{"upper_limit":416576.0,"count":11166102827934492220},{"upper_limit":858368.0,"count":3963842699802757638},{"upper_limit":168.2297,"count":11108045736577438002},{"upper_limit":-845888.0,"count":17219722948742982392},{"upper_limit":-976128.0,"count":17805986232637760944},{"upper_limit":-504384.0,"count":2282719749682511920},{"upper_limit":337280.0,"count":18312846583878332152},{"upper_limit":115136.0,"count":5968951774695224563},{"upper_limit":-814080.0,"count":13545695848350922902},{"upper_limit":719488.0,"count":513498685737406892},{"upper_limit":394176.0,"count":306091055398389161},{"upper_limit":955968.0,"count":5881292871522676112},{"upper_limit":-132544.0,"count":0},{"upper_limit":960064.0,"count":12088559019434701129},{"upper_limit":497408.0,"count":8308118778741452923},{"upper_limit":-393536.0,"count":16114631033605194993},{"upper_limit":439488.0,"count":15894981429885020601},{"upper_limit":-563712.0,"count":9103656554858663401},{"upper_limit":374656.0,"count":0},{"upper_limit":-305472.0,"count":17351752460471091581},{"upper_limit":-499584.0,"count":1529122011524148229},{"upper_limit":-151872.0,"count":7675757567621202963},{"upper_limit":-926080.0,"count":16590734649097439105},{"upper_limit":-653952.0,"count":925546592516447852},{"upper_limit":-448000.0,"count":18446744073709551615},{"upper_limit":-178176.0,"count":1227691732900578549},{"upper_limit":-346112.0,"count":11940731449534585001},{"upper_limit":-484224.0,"count":4786851939369328631},{"upper_limit":-607552.0,"count":1075174994259804067},{"upper_limit":914752.0,"count":575750286164665469},{"upper_limit":-421632.0,"count":9428280348412618902},{"upper_limit":81875.7188,"count":13567102255777052024},{"upper_limit":-285632.0,"count":11757570628358024997},{"upper_limit":477504.0,"count":4772851103466235276},{"upper_limit":-892928.0,"count":10237161802491577922},{"upper_limit":717440.0,"count":13970518791454974071},{"upper_limit":591552.0,"count":14385957642823813998},{"upper_limit":-344640.0,"count":8170240171672206861},{"upper_limit":562944.0,"count":8205957419368719173},{"upper_limit":125888.0,"count":9639640650462965383},{"upper_limit":-156864.0,"count":13602584186856759232},{"upper_limit":-406592.0,"count":15188336409414268856},{"upper_limit":-517952.0,"count":3559270985766730983},{"upper_limit":340672.0,"count":0},{"upper_limit":604032.0,"count":7723628940769580650},{"upper_limit":-660352.0,"count":7000396437501016013},{"upper_limit":873536.0,"count":4753854089733750013},{"upper_limit":-535450.5938,"count":466309610492575136},{"upper_limit":364096.0,"count":9265016263334618211},{"upper_limit":657728.0,"count":2006612939775156701},{"upper_limit":772928.0,"count":2454607371526350556},{"upper_limit":-858368.0,"count":569213183875351016},{"upper_limit":590464.0,"count":9765715987555269281},{"upper_limit":-939648.0,"count":17687299543577945587},{"upper_limit":-412480.0,"count":1},{"upper_limit":952617.3928,"count":5668636602495309040},{"upper_limit":-956416.0,"count":7895757929066791682},{"upper_limit":214336.0,"count":4966554004307804166},{"upper_limit":598016.0,"count":0},{"upper_limit":250240.0,"count":4397841136138876102},{"upper_limit":537280.0,"count":5981858437519150059},{"upper_limit":477440.0,"count":11933237148298472063},{"upper_limit":-970624.0,"count":11966029032803893536}],"count":478889651424484925,"sum":-971456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0045.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0045.json new file mode 100644 index 0000000000000..f8a621e649e4a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0045.json @@ -0,0 +1 @@ +{"log":{"\u0005":"7"," ¯]":773888.0,"7":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0046.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0046.json new file mode 100644 index 0000000000000..026c5209ace21 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0046.json @@ -0,0 +1 @@ +{"log":{"𯟉{":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0047.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0047.json new file mode 100644 index 0000000000000..414d3be0307c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0047.json @@ -0,0 +1 @@ +{"log":{"":{",":false,";Ž":2305166122529290012}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0048.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0048.json new file mode 100644 index 0000000000000..83962a7b4634c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0048.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"t","tags":{"g":"v"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-12608.0,"value":-293760.0},{"quantile":-45184.0,"value":319552.0},{"quantile":139648.0,"value":113856.0},{"quantile":-978048.0,"value":612928.0},{"quantile":-276288.0,"value":-143872.0},{"quantile":670784.0,"value":786688.0},{"quantile":-674560.0,"value":107264.0},{"quantile":-188096.0,"value":858368.0},{"quantile":-410176.0,"value":654464.0},{"quantile":508736.0,"value":273728.0},{"quantile":837760.0,"value":-572544.0},{"quantile":118080.0,"value":350976.0},{"quantile":984256.0,"value":549824.0},{"quantile":-723456.0,"value":-832832.0},{"quantile":522112.0,"value":24960.0},{"quantile":-166464.0,"value":-93248.0},{"quantile":937792.0,"value":-320128.0},{"quantile":436352.0,"value":-822784.0},{"quantile":966080.0,"value":45248.0},{"quantile":-748416.0,"value":-697664.0},{"quantile":-227584.0,"value":532096.0},{"quantile":-424448.0,"value":-472256.0},{"quantile":-731712.0,"value":369088.0},{"quantile":-287168.0,"value":336832.0},{"quantile":129728.0,"value":-311744.0},{"quantile":676032.0,"value":858368.0},{"quantile":247872.0,"value":-577728.0},{"quantile":841536.0,"value":944128.0},{"quantile":-864640.0,"value":791360.0},{"quantile":815040.0,"value":540480.0},{"quantile":-584256.0,"value":-757440.0},{"quantile":-61975.8633,"value":-420992.0},{"quantile":-858368.0,"value":-544448.0},{"quantile":-146624.0,"value":521664.0},{"quantile":-718848.0,"value":-17351.4502},{"quantile":310848.0,"value":592064.0},{"quantile":319360.0,"value":-973056.0},{"quantile":-344448.0,"value":-223401.3633},{"quantile":-460544.0,"value":93632.0},{"quantile":481280.0,"value":-475264.0},{"quantile":4321.7888,"value":901632.0},{"quantile":372160.0,"value":12646.6475},{"quantile":578368.0,"value":-104768.0},{"quantile":382720.0,"value":93056.0},{"quantile":-878016.0,"value":213120.0},{"quantile":802368.0,"value":294464.0},{"quantile":-496960.0,"value":592192.0},{"quantile":-667776.0,"value":-22612.7515},{"quantile":-263360.0,"value":614272.0},{"quantile":870400.0,"value":-101632.0},{"quantile":-513984.0,"value":484864.0},{"quantile":716800.0,"value":-579648.0},{"quantile":723840.0,"value":579648.0},{"quantile":-468416.0,"value":-22912.0},{"quantile":-852992.0,"value":778624.0},{"quantile":492224.0,"value":843648.0},{"quantile":-396800.0,"value":-698560.0},{"quantile":-663360.0,"value":-424256.0},{"quantile":-560896.0,"value":607808.0},{"quantile":638144.0,"value":834176.0},{"quantile":710848.0,"value":203904.0},{"quantile":786176.0,"value":-103616.0},{"quantile":-654848.0,"value":856768.0},{"quantile":-940992.0,"value":-748032.0},{"quantile":433408.0,"value":891008.0},{"quantile":374464.0,"value":706880.0},{"quantile":107855.0,"value":-815104.0},{"quantile":-773952.0,"value":-456320.0},{"quantile":-374792.0,"value":-509056.0},{"quantile":638144.0,"value":393856.0},{"quantile":-594816.0,"value":192256.0},{"quantile":744704.0,"value":12288.0},{"quantile":499584.0,"value":256448.0},{"quantile":-708224.0,"value":834112.0},{"quantile":858368.0,"value":58880.0},{"quantile":406848.0,"value":-472448.0},{"quantile":646912.0,"value":-35968.0},{"quantile":-900800.0,"value":369664.0},{"quantile":-691714.75,"value":-402944.0},{"quantile":-59008.0,"value":418304.0},{"quantile":-615232.0,"value":275328.0},{"quantile":227968.0,"value":435200.0},{"quantile":-131520.0,"value":-469568.0}],"count":1,"sum":-191232.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0049.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0049.json new file mode 100644 index 0000000000000..6f6bceadb7af5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0049.json @@ -0,0 +1 @@ +{"log":{"":[507392.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0050.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0050.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0050.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0051.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0051.json new file mode 100644 index 0000000000000..1ba539a04736c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0051.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"t","tags":{"f":"n","k":"y","n":"d"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-460032.0,"count":11291212867192521932},{"upper_limit":-527552.0,"count":4998485111251622011},{"upper_limit":-746176.0,"count":18446744073709551615},{"upper_limit":530240.0,"count":9066079399231852264},{"upper_limit":-762112.0,"count":926003815046542897},{"upper_limit":-8640.0,"count":3305151804329806750},{"upper_limit":-887232.0,"count":6564775886066990317},{"upper_limit":-429696.0,"count":10478796545711701651},{"upper_limit":527936.0,"count":2702354107439063983},{"upper_limit":-431488.0,"count":15600625751921506356},{"upper_limit":108992.0,"count":11551149466313950289},{"upper_limit":453056.0,"count":1},{"upper_limit":-936640.0,"count":2307555218639222958},{"upper_limit":143936.0,"count":14484241427564933456},{"upper_limit":-938176.0,"count":12904168108277251299},{"upper_limit":565283.2939,"count":2488723903535482330},{"upper_limit":-576896.0,"count":2242243776714214924},{"upper_limit":928704.0,"count":15608221693407547532},{"upper_limit":-172352.0,"count":1},{"upper_limit":-979648.0,"count":2187225502432309755},{"upper_limit":-738496.0,"count":4448179073007722180},{"upper_limit":-158016.0,"count":13230563651612043366},{"upper_limit":-791424.0,"count":15006095567231018292},{"upper_limit":-980608.0,"count":1},{"upper_limit":-244032.0,"count":609157769435481573},{"upper_limit":-969856.0,"count":2967028090361435818},{"upper_limit":858368.0,"count":12336578839945667807},{"upper_limit":-154048.0,"count":1},{"upper_limit":-153792.0,"count":13728659755874576632},{"upper_limit":918528.0,"count":10403664238663568678},{"upper_limit":800960.0,"count":4433199815836821440},{"upper_limit":48832.0,"count":8624181106881086358},{"upper_limit":-721216.0,"count":7117392877019483229},{"upper_limit":110272.0,"count":2958893154331011699},{"upper_limit":-33984.0,"count":0},{"upper_limit":-663168.0,"count":2235777395092373024},{"upper_limit":-231872.0,"count":1747346017971499716},{"upper_limit":-828032.0,"count":3919830978244645305},{"upper_limit":-313792.0,"count":5913701863084271165},{"upper_limit":487744.0,"count":15019163072424608593},{"upper_limit":-367273.0313,"count":8815176876102773148},{"upper_limit":-401088.0,"count":14500372630582436420},{"upper_limit":-899904.0,"count":15920758612365472987},{"upper_limit":851648.0,"count":918317229434533021},{"upper_limit":-310400.0,"count":10278185147441325450},{"upper_limit":668096.0,"count":3125058884726817208},{"upper_limit":-747136.0,"count":3685618963696646352},{"upper_limit":-20480.0,"count":16838479296308460592},{"upper_limit":42.0658,"count":4740559119581815313},{"upper_limit":693632.0,"count":11734571218814232622},{"upper_limit":777152.0,"count":2123369687379261326},{"upper_limit":675584.0,"count":6345726524471184784},{"upper_limit":60736.0,"count":9213903029615580890},{"upper_limit":25152.0,"count":18446744073709551615},{"upper_limit":-718784.0,"count":14161668365013424226},{"upper_limit":-533568.0,"count":12442250648143587814},{"upper_limit":510080.0,"count":1289992492064569628},{"upper_limit":-924736.0,"count":7741407059479181967},{"upper_limit":109504.0,"count":17230889570952743397},{"upper_limit":797824.0,"count":13494696103996860079},{"upper_limit":220544.0,"count":16092999559836974776},{"upper_limit":733888.0,"count":372190076365648686},{"upper_limit":485696.0,"count":372278117084429093},{"upper_limit":-347008.0,"count":4644811015266149011},{"upper_limit":176640.0,"count":6400418908556987906},{"upper_limit":988416.0,"count":4458597709145868237},{"upper_limit":478144.0,"count":18198006946886933899},{"upper_limit":-711872.0,"count":5524259578603890571},{"upper_limit":-858368.0,"count":14279049985055853036},{"upper_limit":454080.0,"count":4559320608686722260},{"upper_limit":-227648.0,"count":7181031395534358186},{"upper_limit":123456.0,"count":1871083318218878739},{"upper_limit":242688.0,"count":4261963076608481869},{"upper_limit":-130496.0,"count":12079425356930064928},{"upper_limit":-858368.0,"count":10960043840495117783},{"upper_limit":-890496.0,"count":3316908851829290877},{"upper_limit":-662592.0,"count":12726163655789136624},{"upper_limit":-858368.0,"count":9968773536153533596},{"upper_limit":513280.0,"count":159636077508199525},{"upper_limit":858368.0,"count":6750729321790967605},{"upper_limit":869504.0,"count":4464421164203713147},{"upper_limit":519552.0,"count":2675818848354715079},{"upper_limit":850368.0,"count":6061213666742945471},{"upper_limit":29760.0,"count":1},{"upper_limit":87667.5521,"count":7432218871349134554},{"upper_limit":-980352.0,"count":4770377169989816360},{"upper_limit":-144000.0,"count":7410624724087474110},{"upper_limit":-716992.0,"count":15373001871695087993},{"upper_limit":-858368.0,"count":4385103538896344108},{"upper_limit":-893376.0,"count":15268664807122839004},{"upper_limit":-527296.0,"count":5292389116104028234},{"upper_limit":-195392.0,"count":6501461031620551828},{"upper_limit":-327552.0,"count":16893127880907265906},{"upper_limit":277376.0,"count":13847435412108928860},{"upper_limit":-205824.0,"count":13114766629988921270},{"upper_limit":915648.0,"count":5445639438518416986},{"upper_limit":-610048.0,"count":141058246318671382},{"upper_limit":-312832.0,"count":4514757815061966233},{"upper_limit":-90944.0,"count":4151591843169918096},{"upper_limit":-907968.0,"count":15718822381728869345},{"upper_limit":593280.0,"count":13223477029884428916},{"upper_limit":-916055.2356,"count":13015861143887421995},{"upper_limit":-609920.0,"count":11345946110736867699},{"upper_limit":-226432.0,"count":0},{"upper_limit":858368.0,"count":11718090104228081933},{"upper_limit":-661760.0,"count":17579694010349624314},{"upper_limit":702656.0,"count":1814811114051315548},{"upper_limit":-429440.0,"count":14186693178696705100},{"upper_limit":-104256.0,"count":1942029566950952852}],"count":901872342146520291,"sum":32640.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0052.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0052.json new file mode 100644 index 0000000000000..e0208fa1e7316 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0052.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"q","kind":"incremental","counter":{"value":-25920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0053.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0053.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0053.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0054.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0054.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0054.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0055.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0055.json new file mode 100644 index 0000000000000..5c9d5693b3132 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0055.json @@ -0,0 +1 @@ +{"log":{"5":{"":{"=Z":847296.0,"W|\t":null}},"ž'":-6679330903850284166}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0056.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0056.json new file mode 100644 index 0000000000000..a4d36edc56807 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0056.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"j","tags":{"b":"s"},"timestamp":"1970-01-01T00:00:00.000024073Z","kind":"incremental","gauge":{"value":81152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0057.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0057.json new file mode 100644 index 0000000000000..44b0f3ce1aa41 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0057.json @@ -0,0 +1 @@ +{"metric":{"name":"c","timestamp":"1970-01-01T06:41:44.000015257Z","interval_ms":3692576401,"kind":"absolute","gauge":{"value":716544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0058.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0058.json new file mode 100644 index 0000000000000..ed01698995a79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0058.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"t","timestamp":"1970-01-01T06:43:58.000019643Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2082,2222],"n":[1,1]},"count":2,"min":-102016.0,"max":901248.0,"sum":120640.0,"avg":-996736.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0059.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0059.json new file mode 100644 index 0000000000000..dbc423c6fa33c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0059.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"c":"p","f":"d"},"kind":"incremental","distribution":{"samples":[{"value":352640.0,"rate":399078263},{"value":810176.0,"rate":2575634911},{"value":-980864.0,"rate":1473177634},{"value":816256.0,"rate":2937871841},{"value":-49904.0,"rate":4294967295},{"value":-198592.0,"rate":795571516},{"value":-491648.0,"rate":1159845301},{"value":85376.0,"rate":2542368377},{"value":920512.0,"rate":3326502553},{"value":-73728.0,"rate":1255463762},{"value":457152.0,"rate":1336144130},{"value":131456.0,"rate":3020928293},{"value":-702144.0,"rate":1151804328},{"value":-89152.0,"rate":1},{"value":394752.0,"rate":1332095160},{"value":-846080.0,"rate":1684356536},{"value":-128064.0,"rate":1},{"value":-336064.0,"rate":1279992397}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0060.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0060.json new file mode 100644 index 0000000000000..431a4db5942bc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0060.json @@ -0,0 +1 @@ +{"metric":{"name":"j","interval_ms":338981928,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-217664.0,"count":13441869836178349312},{"upper_limit":-532608.0,"count":17561189471593217114},{"upper_limit":-563264.0,"count":167317116826961650},{"upper_limit":-858368.0,"count":4915110621707573321},{"upper_limit":-272064.0,"count":375766757436936543},{"upper_limit":-643712.0,"count":6716445727949916768},{"upper_limit":522944.0,"count":8727779001760842152},{"upper_limit":-237184.0,"count":12439838089084447838},{"upper_limit":-850368.0,"count":14826569794191220186},{"upper_limit":-933248.0,"count":11638923507146965228},{"upper_limit":26688.0,"count":13497244850619869918},{"upper_limit":523328.0,"count":7827006929780701031},{"upper_limit":-916736.0,"count":16886143585576959263},{"upper_limit":-829888.0,"count":18009148113144239758},{"upper_limit":243072.0,"count":10997369059891368794},{"upper_limit":488896.0,"count":2159072842748138534},{"upper_limit":-770880.0,"count":1965396391850625316},{"upper_limit":-855680.0,"count":12327097107211204710},{"upper_limit":-151424.0,"count":5183907067914607057},{"upper_limit":643712.0,"count":11340624773533677669},{"upper_limit":-657408.0,"count":10229875161065934608},{"upper_limit":727232.0,"count":18446744073709551615},{"upper_limit":-994816.0,"count":605186507591649007},{"upper_limit":827264.0,"count":3889775753385577088},{"upper_limit":-979200.0,"count":10123151664491773611},{"upper_limit":114880.0,"count":10008322139452672296},{"upper_limit":-762368.0,"count":11070356181544136091},{"upper_limit":354176.0,"count":922025754979864485},{"upper_limit":172205.25,"count":478454220483856752},{"upper_limit":312320.0,"count":14656637258108966127},{"upper_limit":824640.0,"count":16999322088292051852},{"upper_limit":-269376.0,"count":14470409841357626918},{"upper_limit":-557120.0,"count":4742898316321454468},{"upper_limit":267264.0,"count":6788803816990859452},{"upper_limit":-324416.0,"count":9350593217651699871},{"upper_limit":632768.0,"count":6095176818815827285},{"upper_limit":825408.0,"count":14231386556962675376},{"upper_limit":20928.0,"count":1265881686537841147},{"upper_limit":858368.0,"count":3015881564661329679},{"upper_limit":-367808.0,"count":6579468480257217668},{"upper_limit":-286016.0,"count":1563223480275935293},{"upper_limit":-984384.0,"count":13102952896405563107},{"upper_limit":495296.0,"count":11238886946285735942},{"upper_limit":-275136.0,"count":4683876379641362354},{"upper_limit":761216.0,"count":4671665282093742366},{"upper_limit":-988096.0,"count":2197991106061537160},{"upper_limit":613952.0,"count":9926163432632870600},{"upper_limit":-573587.262,"count":11123625727743431565},{"upper_limit":683328.0,"count":6454970648937139760},{"upper_limit":-416000.0,"count":12474012754243531175},{"upper_limit":-373376.0,"count":15025917374036401168},{"upper_limit":-350720.0,"count":12483960370332365393},{"upper_limit":-206528.0,"count":13734102589176400222},{"upper_limit":-499328.0,"count":13170386498882041794},{"upper_limit":-722560.0,"count":1406872827321469055},{"upper_limit":-435136.0,"count":6970714226741047936},{"upper_limit":-874624.0,"count":12967170366465368858},{"upper_limit":-560192.0,"count":2397127102171964486},{"upper_limit":-599616.0,"count":7550670154023934462},{"upper_limit":88320.0,"count":4368697053081572331},{"upper_limit":646656.0,"count":1},{"upper_limit":592448.0,"count":17275667458664855036},{"upper_limit":467968.0,"count":7823810055885996463},{"upper_limit":100992.0,"count":9313921757433855638},{"upper_limit":-320454.7243,"count":5951194585961216670},{"upper_limit":844800.0,"count":12761976788266322813},{"upper_limit":158208.0,"count":18446744073709551615},{"upper_limit":-27648.0,"count":3606069002386278091},{"upper_limit":17792.0,"count":16759532771526413581},{"upper_limit":276608.0,"count":4567745962743004833},{"upper_limit":-811072.0,"count":14591825811789157913},{"upper_limit":166208.0,"count":18446744073709551615},{"upper_limit":54081.8504,"count":14853563295395702157},{"upper_limit":-520384.0,"count":16802858004953709130},{"upper_limit":-569856.0,"count":9842034576457178483},{"upper_limit":10048.0,"count":7755530199990435513},{"upper_limit":-104896.0,"count":2760744481826018266},{"upper_limit":515072.0,"count":18446744073709551615},{"upper_limit":826880.0,"count":5379826704876805417},{"upper_limit":-715648.0,"count":8842691105330606845},{"upper_limit":-543104.0,"count":1182259445234758709},{"upper_limit":-871424.0,"count":482601051050990388},{"upper_limit":528064.0,"count":1}],"count":15582713724770372240,"sum":711552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0061.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0061.json new file mode 100644 index 0000000000000..09eb5bdb62cb0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0061.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"x","timestamp":"1969-12-31T23:47:10.000004175Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":851904.0,"count":18446744073709551615},{"upper_limit":-51136.0,"count":14955113785237903428},{"upper_limit":228032.0,"count":3736762084061621578},{"upper_limit":-465920.0,"count":18184566703601548952},{"upper_limit":-926464.0,"count":11373949544164077740},{"upper_limit":-155648.0,"count":1817385477565768584},{"upper_limit":118720.0,"count":4017470387833266341},{"upper_limit":-285056.0,"count":1042174375179507809},{"upper_limit":-397504.0,"count":14196846418033027688},{"upper_limit":756992.0,"count":7186339941152124019},{"upper_limit":-533376.0,"count":13665256073187481523},{"upper_limit":372992.0,"count":10495592247838750070},{"upper_limit":674624.0,"count":13520985464336046330},{"upper_limit":381760.0,"count":3320704710614593763},{"upper_limit":-2863.3682,"count":17551786518079772534},{"upper_limit":-2048.0,"count":10931415488596537315},{"upper_limit":-940544.0,"count":2527668600404417387},{"upper_limit":579200.0,"count":12936890317792258970},{"upper_limit":620288.0,"count":10132032497799902354},{"upper_limit":858368.0,"count":3478909582664424154},{"upper_limit":671936.0,"count":12810285311551589083},{"upper_limit":83264.0,"count":6410057121892034095},{"upper_limit":-675328.0,"count":18161618589996343139},{"upper_limit":-286016.0,"count":13811325082375999338},{"upper_limit":-67520.0,"count":15708514564742265711},{"upper_limit":750080.0,"count":296435703935712174},{"upper_limit":-759424.0,"count":4581416937513188266},{"upper_limit":791168.0,"count":7080349284156955459},{"upper_limit":858368.0,"count":16126796247110899266},{"upper_limit":-572800.0,"count":1777591459220974208},{"upper_limit":234048.0,"count":16160887256625912855},{"upper_limit":-858368.0,"count":3999455325013121299},{"upper_limit":590464.0,"count":380163867861233307},{"upper_limit":-111936.0,"count":9585133306316951056},{"upper_limit":-409600.0,"count":1850662886954349367},{"upper_limit":858368.0,"count":15946649637436107971},{"upper_limit":233792.0,"count":4127975684149530797},{"upper_limit":983808.0,"count":10932555572199653095},{"upper_limit":804928.0,"count":4721546214374473453},{"upper_limit":992448.0,"count":12692487103289343693},{"upper_limit":-33216.0,"count":1},{"upper_limit":-857984.0,"count":9411888810967137658},{"upper_limit":790400.0,"count":7724473941340211079},{"upper_limit":177088.0,"count":2160575844477379593},{"upper_limit":211136.0,"count":18445701542371066591},{"upper_limit":583936.0,"count":7642163931360185558},{"upper_limit":-59968.0,"count":2855782021898197097},{"upper_limit":795840.0,"count":5908229336651649189},{"upper_limit":-376384.0,"count":7332647002583486875},{"upper_limit":684096.0,"count":14164347978746206769},{"upper_limit":226368.0,"count":16496304249961531776},{"upper_limit":-858368.0,"count":17195394947690234402},{"upper_limit":-135808.0,"count":14377667560726036992},{"upper_limit":-398528.0,"count":18446744073709551615},{"upper_limit":-359936.0,"count":2846125791369950043},{"upper_limit":-843904.0,"count":6701213970704077965},{"upper_limit":-399360.0,"count":3590519107521627780},{"upper_limit":-801728.0,"count":7027187156471388645},{"upper_limit":571968.0,"count":261411847004955449},{"upper_limit":-858368.0,"count":1745168255133882609},{"upper_limit":10048.0,"count":17783993507388520340},{"upper_limit":-708579.7161,"count":16779374336811984598},{"upper_limit":-412544.0,"count":2337208702288813252},{"upper_limit":-810112.0,"count":18446744073709551615},{"upper_limit":800832.0,"count":7283446341532011760},{"upper_limit":-5824.0,"count":14671925869810509075},{"upper_limit":-369536.0,"count":9729979706674895073},{"upper_limit":886272.0,"count":0},{"upper_limit":644992.0,"count":17801620907246386759},{"upper_limit":940224.0,"count":17181912972022815921},{"upper_limit":187849.0738,"count":7487225230493550333},{"upper_limit":731840.0,"count":2144191558990318333},{"upper_limit":-33280.0,"count":4389825379147984619},{"upper_limit":910784.0,"count":2180243281591644863},{"upper_limit":-360512.0,"count":13934026356307685366},{"upper_limit":-903040.0,"count":10671960533084484005},{"upper_limit":205312.0,"count":0},{"upper_limit":-159296.0,"count":2915039837577822637},{"upper_limit":-705024.0,"count":1751053304545251017},{"upper_limit":-303360.0,"count":14477890280537563411},{"upper_limit":-976384.0,"count":5955223089590982690},{"upper_limit":-947520.0,"count":18446744073709551615},{"upper_limit":321728.0,"count":18446744073709551615},{"upper_limit":945408.0,"count":5474316061106393102},{"upper_limit":-47040.0,"count":17486305275961605821},{"upper_limit":-42176.0,"count":11005072810827254072},{"upper_limit":-954560.0,"count":7578820849686000773},{"upper_limit":-861824.0,"count":18446744073709551615},{"upper_limit":231872.0,"count":3072016712034838599},{"upper_limit":-95936.0,"count":2881617417565941437},{"upper_limit":977536.0,"count":11212828849659774737},{"upper_limit":646208.0,"count":1495628344786291825},{"upper_limit":849600.0,"count":15038596563666728288},{"upper_limit":272704.0,"count":18308550546171896155},{"upper_limit":288256.0,"count":14919974602632260730},{"upper_limit":-60544.0,"count":7688926709230649934},{"upper_limit":920448.0,"count":15219375827191708959},{"upper_limit":25984.0,"count":17563900949025157674},{"upper_limit":25152.0,"count":18446744073709551615},{"upper_limit":741824.0,"count":15247832550047363448},{"upper_limit":858368.0,"count":10483909218994611278},{"upper_limit":-648832.0,"count":1},{"upper_limit":-19264.0,"count":17234949514466561251},{"upper_limit":871424.0,"count":0},{"upper_limit":379776.0,"count":7012729595565885222},{"upper_limit":-239936.0,"count":11041180358606676873},{"upper_limit":990720.0,"count":18446744073709551615},{"upper_limit":871424.0,"count":16296558155539931146},{"upper_limit":-557696.0,"count":17520037242966006286},{"upper_limit":731968.0,"count":11749326832849805329},{"upper_limit":-497760.6691,"count":17967650689901942339},{"upper_limit":-844672.0,"count":18087793503607360172},{"upper_limit":926976.0,"count":3664439930925313036},{"upper_limit":-744320.0,"count":0},{"upper_limit":187072.0,"count":13244725592516985909},{"upper_limit":480576.0,"count":15168839392361314077},{"upper_limit":-516800.0,"count":13879505457282024359}],"count":1,"sum":176576.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0062.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0062.json new file mode 100644 index 0000000000000..d92e08ab25076 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0062.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"_","timestamp":"1970-01-01T06:36:47Z","interval_ms":2618964681,"kind":"incremental","gauge":{"value":875264.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0063.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0063.json new file mode 100644 index 0000000000000..03cb56a2350db --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0063.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"f","timestamp":"1969-12-31T19:03:03.000011002Z","kind":"incremental","distribution":{"samples":[{"value":348544.0,"rate":1670678543},{"value":-716800.0,"rate":0},{"value":-669184.0,"rate":1718446580},{"value":879168.0,"rate":660472178},{"value":-59264.0,"rate":1586889287},{"value":-719936.0,"rate":1714342599},{"value":-113664.0,"rate":1},{"value":-320768.0,"rate":2579774414},{"value":-858368.0,"rate":2448083430},{"value":607040.0,"rate":3086821923},{"value":-92288.0,"rate":817142239},{"value":-75776.0,"rate":1360147687},{"value":-791744.0,"rate":3291654420},{"value":-724864.0,"rate":1404240785},{"value":-781376.0,"rate":3100570000},{"value":-220032.0,"rate":768783170},{"value":-193280.0,"rate":368050182},{"value":-858368.0,"rate":2073551371},{"value":-975552.0,"rate":3238640225},{"value":-28433.4221,"rate":630719523},{"value":355776.0,"rate":2552021376},{"value":530816.0,"rate":4058971441},{"value":-943552.0,"rate":1},{"value":-432768.0,"rate":604363854},{"value":-332160.0,"rate":2503823075},{"value":-975488.0,"rate":998931139},{"value":-921344.0,"rate":1933206287},{"value":230336.0,"rate":1030725465},{"value":336896.0,"rate":2220507125},{"value":300352.0,"rate":1978917082},{"value":-108928.0,"rate":2820185427},{"value":-194240.0,"rate":1819263367},{"value":228800.0,"rate":1211513146},{"value":-782656.0,"rate":586343466},{"value":-4793.0441,"rate":1309704227},{"value":-581888.0,"rate":2301787546},{"value":986624.0,"rate":2998424512},{"value":842688.0,"rate":3844582412},{"value":256000.0,"rate":1314637385},{"value":777920.0,"rate":1849907675},{"value":809472.0,"rate":4026068456},{"value":-952384.0,"rate":2073748727},{"value":-983360.0,"rate":3840666712},{"value":-438848.0,"rate":0},{"value":554432.0,"rate":2741990215},{"value":414784.0,"rate":3174071641},{"value":409920.0,"rate":2426313516},{"value":223296.0,"rate":558839585},{"value":-59584.0,"rate":2598307469},{"value":261760.0,"rate":1055828555},{"value":-274880.0,"rate":2206553124},{"value":460964.6194,"rate":4294967295},{"value":744128.0,"rate":2026505497},{"value":-892736.0,"rate":2024147334},{"value":934144.0,"rate":0},{"value":-209024.0,"rate":2909596640},{"value":-305280.0,"rate":4014461365},{"value":-175104.0,"rate":1965885474},{"value":885696.0,"rate":3274439124},{"value":489601.795,"rate":3740958246},{"value":574400.0,"rate":1481311634},{"value":-67185.2418,"rate":1},{"value":542784.0,"rate":3061662601},{"value":284736.0,"rate":4198643693},{"value":213056.0,"rate":1052283393},{"value":599744.0,"rate":1701396324},{"value":-400064.0,"rate":788171223},{"value":918080.0,"rate":2375705707},{"value":959488.0,"rate":0},{"value":-73984.0,"rate":567834883},{"value":-211968.0,"rate":4252811532},{"value":957760.0,"rate":253730875},{"value":202496.0,"rate":3310465934},{"value":-172352.0,"rate":2146324529},{"value":408064.0,"rate":4184723687},{"value":306.3804,"rate":2641183868},{"value":-386240.0,"rate":2888580813},{"value":859904.0,"rate":373753313},{"value":552512.0,"rate":3579746551},{"value":-364736.0,"rate":1631882924},{"value":-648128.0,"rate":0},{"value":-67117.7752,"rate":2956006468},{"value":736960.0,"rate":44536548},{"value":-168064.0,"rate":2213647644},{"value":378944.0,"rate":0},{"value":33600.0,"rate":583597112},{"value":727872.0,"rate":2777848475},{"value":-45376.0,"rate":2747213357},{"value":-906432.0,"rate":2243246059},{"value":658688.0,"rate":0},{"value":-598144.0,"rate":1241529453},{"value":15872.0,"rate":3187931315},{"value":-446144.0,"rate":1},{"value":-275136.0,"rate":4294967295},{"value":81536.0,"rate":5483162},{"value":-524416.0,"rate":1178234630}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0064.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0064.json new file mode 100644 index 0000000000000..c29897cdf0d65 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0064.json @@ -0,0 +1 @@ +{"metric":{"name":"d","tags":{"v":"m"},"timestamp":"1970-01-01T00:00:00.000028540Z","kind":"incremental","gauge":{"value":362752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0065.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0065.json new file mode 100644 index 0000000000000..830cafe97fdba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0065.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"f":"a","y":"r"},"timestamp":"1969-12-31T23:24:11.000007844Z","interval_ms":2772483075,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":1279.6504,"value":858368.0},{"quantile":691648.0,"value":-918272.0},{"quantile":92224.0,"value":-254464.0},{"quantile":67264.0,"value":296845.5117},{"quantile":-683520.0,"value":41856.0},{"quantile":764800.0,"value":-566808.0},{"quantile":-292608.0,"value":-492736.0},{"quantile":-902208.0,"value":-401600.0},{"quantile":580928.0,"value":-886784.0},{"quantile":451840.0,"value":490240.0},{"quantile":625536.0,"value":624384.0},{"quantile":499264.0,"value":-530304.0},{"quantile":-628544.0,"value":-611392.0},{"quantile":-614080.0,"value":-676800.0},{"quantile":882368.0,"value":-170048.0},{"quantile":-625792.0,"value":-890048.0},{"quantile":96704.0,"value":802452.0103},{"quantile":-279936.0,"value":459198.1538}],"count":14798564501519871185,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0066.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0066.json new file mode 100644 index 0000000000000..a1e305ff2aeae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0066.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"m","tags":{"p":"o","v":"n","x":"h"},"timestamp":"1970-01-01T01:43:04.000003828Z","interval_ms":445820614,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2226,-2225,-2224,-2223,-2222,-2220,-2219,-2218,-2216,-2214,-2213,-2212,-2211,-2210,-2209,-2208,-2207,-2206,-2204,-2202,-2200,-2199,-2198,-2197,-2195,-2193,-2184,-2180,-2178,-2175,-2173,-2171,-2167,-2166,-2165,-2163,-2158,-2148,-2145,-2142,-2141,-2140,-2139,-2138,-2135,-2133,-2132,-2130,-2126,-2123,-2119,-2117,-2116,-2114,-2113,-2107,-2098,-2097,-2087,-2078,-2075,-2060,-2059,-2053,-2051,-2032,-2022,-1991,-1986,-1984,-1976,-1972,-1930,-1929,-1921,-1757,-1594,1635,1993,2028,2049,2056,2059,2071,2072,2087,2093,2099,2101,2106,2107,2109,2121,2125,2129,2130,2134,2138,2140,2145,2147,2156,2159,2161,2164,2169,2171,2172,2174,2177,2178,2179,2182,2183,2184,2185,2187,2188,2191,2192,2193,2194,2195,2196,2197,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2215,2217,2218,2219,2221,2222,2224,2225,2226,2227,2228,2229],"n":[1,2,1,2,2,1,1,1,1,3,1,1,1,2,2,1,2,1,1,1,1,3,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,2,1,2,4,1,1,2,2,2,3,5,2,2,1,1,1,1,1,1,3,1,2,2,1,3,1,2,2,1,2,2,3,1,2,1,2,3,1]},"count":209,"min":-998144.0,"max":994496.0,"sum":113472.0,"avg":-13056.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0067.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0067.json new file mode 100644 index 0000000000000..9fb84567a0818 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0067.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"_","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":858368.0,"value":-560768.0},{"quantile":-145280.0,"value":801024.0},{"quantile":-55296.0,"value":-380800.0},{"quantile":-966016.0,"value":50368.0},{"quantile":-296320.0,"value":204160.0},{"quantile":-268544.0,"value":97152.0},{"quantile":889152.0,"value":-470720.0},{"quantile":979776.0,"value":201152.0},{"quantile":531328.0,"value":828224.0},{"quantile":-433728.0,"value":-80192.0},{"quantile":-92672.0,"value":-611200.0},{"quantile":-818048.0,"value":-491456.0},{"quantile":-901251.4756,"value":-455360.0},{"quantile":-956864.0,"value":388992.0},{"quantile":465472.0,"value":-362688.0},{"quantile":-668096.0,"value":288000.0},{"quantile":-196992.0,"value":-222208.0},{"quantile":88064.0,"value":-59968.0},{"quantile":-291392.0,"value":-723392.0},{"quantile":-713600.0,"value":275840.0},{"quantile":-639200.2805,"value":-345664.0},{"quantile":941696.0,"value":147840.0},{"quantile":-861888.0,"value":906624.0},{"quantile":-936960.0,"value":-719040.0},{"quantile":-754880.0,"value":137152.0},{"quantile":-898176.0,"value":-13504.0},{"quantile":812608.0,"value":-840384.0},{"quantile":534528.0,"value":-856320.0},{"quantile":167936.0,"value":548416.0},{"quantile":251602.0,"value":-358912.0},{"quantile":-850368.0,"value":-739392.0},{"quantile":-849920.0,"value":962560.0},{"quantile":684800.0,"value":570176.0},{"quantile":-192064.0,"value":-11367.0858},{"quantile":706112.0,"value":-640064.0},{"quantile":-354921.7309,"value":195840.0},{"quantile":-203968.0,"value":-573760.0},{"quantile":-401024.0,"value":-313728.0},{"quantile":-201152.0,"value":-836160.0},{"quantile":177280.0,"value":878720.0},{"quantile":206528.0,"value":-858368.0},{"quantile":690496.0,"value":732288.0},{"quantile":-442624.0,"value":-700672.0},{"quantile":270656.0,"value":212992.0},{"quantile":-931136.0,"value":-8128.0},{"quantile":640832.0,"value":306368.0},{"quantile":-544768.0,"value":-974272.0},{"quantile":542016.0,"value":807040.0},{"quantile":472576.0,"value":626624.0},{"quantile":-468864.0,"value":62336.0},{"quantile":-689408.0,"value":212352.0},{"quantile":-982016.0,"value":857536.0},{"quantile":205440.0,"value":-708288.0},{"quantile":468160.0,"value":387008.0},{"quantile":159168.0,"value":-637312.0},{"quantile":412352.0,"value":76032.0},{"quantile":603328.0,"value":-330560.0},{"quantile":631680.0,"value":26368.0},{"quantile":793088.0,"value":-111040.0},{"quantile":930112.0,"value":569152.0},{"quantile":843456.0,"value":625216.0},{"quantile":-830656.0,"value":923456.0},{"quantile":602688.0,"value":319296.0},{"quantile":-970368.0,"value":599936.0},{"quantile":-951104.0,"value":-871232.0},{"quantile":-858368.0,"value":-88384.0},{"quantile":658624.0,"value":-142592.0},{"quantile":674048.0,"value":-709632.0},{"quantile":855104.0,"value":858368.0},{"quantile":-993216.0,"value":-756736.0},{"quantile":104384.0,"value":422400.0},{"quantile":-970560.0,"value":-545664.0},{"quantile":-43904.0,"value":-171584.0},{"quantile":999424.0,"value":-868800.0},{"quantile":-250688.0,"value":-241600.0},{"quantile":-858112.0,"value":-184896.0},{"quantile":-54592.0,"value":-858368.0},{"quantile":538752.0,"value":-832256.0},{"quantile":-309440.0,"value":284.7617},{"quantile":-106176.0,"value":-599552.0},{"quantile":-201216.0,"value":-419712.0},{"quantile":640384.0,"value":-152957.5},{"quantile":-629248.0,"value":-206592.0},{"quantile":-448448.0,"value":40704.0},{"quantile":836352.0,"value":589248.0},{"quantile":490048.0,"value":-502528.0},{"quantile":-947200.0,"value":-450304.0},{"quantile":287744.0,"value":-399744.0},{"quantile":488768.0,"value":-263744.0},{"quantile":-788288.0,"value":-612800.0},{"quantile":91840.0,"value":261568.0},{"quantile":624960.0,"value":860224.0},{"quantile":639232.0,"value":-858368.0},{"quantile":-672192.0,"value":-351872.0},{"quantile":887168.0,"value":216064.0}],"count":12941267259446219687,"sum":999552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0068.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0068.json new file mode 100644 index 0000000000000..8abfbc4a46dd2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0068.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"e","kind":"incremental","distribution":{"samples":[{"value":235200.0,"rate":637884736}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0069.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0069.json new file mode 100644 index 0000000000000..4f69e472852ef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0069.json @@ -0,0 +1 @@ +{"log":{"@벋?":6132372579718376453,"κ":[null,{"(“˜":"`‮"},854080.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0070.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0070.json new file mode 100644 index 0000000000000..d5addb6601230 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0070.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T23:39:03.000031419Z","interval_ms":3415546801,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":741632.0,"value":588608.0}],"count":16907439622266928866,"sum":205440.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0071.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0071.json new file mode 100644 index 0000000000000..6c0e291d5d2b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0071.json @@ -0,0 +1 @@ +{"log":{"":[-74624.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0072.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0072.json new file mode 100644 index 0000000000000..b51f7f4998066 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0072.json @@ -0,0 +1 @@ +{"log":{"\u0000惂":"5\u001e","0򰘼":null,"牫":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0073.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0073.json new file mode 100644 index 0000000000000..ed657da13eaec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0073.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"b":"x","n":"y"},"interval_ms":609160396,"kind":"incremental","distribution":{"samples":[{"value":889856.0,"rate":2058550701},{"value":688384.0,"rate":1},{"value":-470.5535,"rate":2374897419},{"value":440704.0,"rate":795449399},{"value":748608.0,"rate":2759882712},{"value":916608.0,"rate":3709298576},{"value":26736.8312,"rate":3080096823},{"value":858368.0,"rate":3266991172},{"value":858368.0,"rate":1126145093},{"value":470080.0,"rate":1205839872},{"value":-148224.0,"rate":2551035725},{"value":-936704.0,"rate":1032062843},{"value":-309696.0,"rate":2961462958},{"value":-91328.0,"rate":1832100024},{"value":-791552.0,"rate":1},{"value":761088.0,"rate":3341227708},{"value":-491739.0,"rate":1253483419},{"value":-323072.0,"rate":1161973573},{"value":982848.0,"rate":3150612100},{"value":-833984.0,"rate":785540632},{"value":355640.0,"rate":3369128439},{"value":-624576.0,"rate":2550359657},{"value":-851392.0,"rate":3931661535},{"value":-164992.0,"rate":813852779},{"value":-109312.0,"rate":3632325887},{"value":-821696.0,"rate":992134544},{"value":338944.0,"rate":783537122},{"value":37824.0,"rate":3421071271},{"value":-201472.0,"rate":3517542436},{"value":939200.0,"rate":1712008255},{"value":491072.0,"rate":1},{"value":739904.0,"rate":1616003306},{"value":689728.0,"rate":1378311113},{"value":-272738.1538,"rate":1387338003},{"value":-695488.0,"rate":305428846},{"value":465.4569,"rate":3771841896},{"value":264704.0,"rate":3401330366},{"value":736128.0,"rate":3834314367},{"value":-429760.0,"rate":3774421896},{"value":77824.0,"rate":1868555295},{"value":324800.0,"rate":2514819803},{"value":-207232.0,"rate":2264570452},{"value":221696.0,"rate":1571606588},{"value":867392.0,"rate":0},{"value":858368.0,"rate":1645773888},{"value":-390272.0,"rate":1098285132},{"value":374016.0,"rate":2484481166},{"value":328896.0,"rate":3349830129},{"value":-143104.0,"rate":3342893245},{"value":807104.0,"rate":2679917569},{"value":-342656.0,"rate":1016275799},{"value":-853376.0,"rate":3258175762},{"value":632832.0,"rate":4241290734},{"value":262080.0,"rate":0},{"value":550528.0,"rate":3828449750},{"value":957376.0,"rate":1},{"value":-767296.0,"rate":34682051},{"value":-291712.0,"rate":2450909575},{"value":-247557.0,"rate":3126283073},{"value":-752448.0,"rate":3749637663},{"value":-375872.0,"rate":2150685847},{"value":457600.0,"rate":1},{"value":941312.0,"rate":4007041809},{"value":259584.0,"rate":47539495},{"value":102528.0,"rate":3156944550},{"value":110336.0,"rate":3583684201},{"value":404217.3349,"rate":1844702592}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0074.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0074.json new file mode 100644 index 0000000000000..cd2aca52dccac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0074.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"a","tags":{"h":"y"},"interval_ms":858608648,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-361024.0,"value":-704896.0},{"quantile":724672.0,"value":189056.0},{"quantile":948480.0,"value":138112.0},{"quantile":-605248.0,"value":-311936.0},{"quantile":-926528.0,"value":223168.0},{"quantile":-352320.0,"value":40128.0},{"quantile":828992.0,"value":446784.0},{"quantile":500672.0,"value":455872.0},{"quantile":181696.0,"value":-985856.0},{"quantile":-815680.0,"value":288512.0},{"quantile":-89536.0,"value":384640.0},{"quantile":-50368.0,"value":935680.0},{"quantile":290560.0,"value":744256.0},{"quantile":-666225.2074,"value":-634048.0},{"quantile":955520.0,"value":-81088.0},{"quantile":553536.0,"value":955392.0},{"quantile":-683776.0,"value":-192256.0},{"quantile":-766464.0,"value":-798912.0},{"quantile":785088.0,"value":-537472.0},{"quantile":-732352.0,"value":-688960.0},{"quantile":873600.0,"value":358336.0},{"quantile":255680.0,"value":979584.0},{"quantile":864512.0,"value":-365504.0},{"quantile":-274624.0,"value":977408.0}],"count":1,"sum":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0075.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0075.json new file mode 100644 index 0000000000000..b57069ce5aeb7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0075.json @@ -0,0 +1 @@ +{"log":{"Y":{"1훷":360448.0,"–":"7~"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0076.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0076.json new file mode 100644 index 0000000000000..83239d9d50a02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0076.json @@ -0,0 +1 @@ +{"metric":{"name":"i","timestamp":"1970-01-01T08:04:06.000019165Z","interval_ms":4262373168,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2224,-2222,-2217,-2216,-2214,-2212,-2211,-2210,-2209,-2208,-2207,-2206,-2205,-2204,-2203,-2200,-2198,-2197,-2195,-2194,-2193,-2192,-2191,-2190,-2189,-2182,-2181,-2178,-2174,-2170,-2169,-2167,-2160,-2157,-2156,-2144,-2140,-2139,-2131,-2127,-2124,-2119,-2117,-2113,-2104,-2101,-2094,-2092,-2085,-2084,-2077,-2058,-2009,-2005,-2000,-1955,-1941,-1938,-1793,-1370,1454,1856,1912,1984,2023,2045,2047,2052,2054,2063,2069,2072,2075,2078,2079,2083,2090,2101,2106,2127,2139,2141,2146,2151,2152,2153,2158,2161,2165,2168,2169,2170,2171,2172,2177,2181,2182,2185,2188,2192,2194,2195,2196,2197,2198,2200,2201,2203,2205,2208,2209,2211,2213,2216,2217,2218,2219,2222,2223,2224,2225,2227],"n":[1,4,1,2,1,1,1,1,1,1,3,1,1,1,1,2,1,2,2,1,1,2,2,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,3,1,2,4,1,4,4,1,1,4,2,2,1,2,2]},"count":163,"min":-998592.0,"max":971264.0,"sum":-933696.0,"avg":732288.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0077.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0077.json new file mode 100644 index 0000000000000..7245aa633a671 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0077.json @@ -0,0 +1 @@ +{"log":{"":-609152.0,"˜":null,"㩪>":3851544030456619617}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0078.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0078.json new file mode 100644 index 0000000000000..8c108ff678c4e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0078.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"q","timestamp":"1969-12-31T22:36:23.000028698Z","kind":"incremental","distribution":{"samples":[{"value":-602880.0,"rate":3430230037},{"value":-814592.0,"rate":3926150862},{"value":-666560.0,"rate":1704248220},{"value":666624.0,"rate":419579864},{"value":-784128.0,"rate":2223556695},{"value":68160.0,"rate":2417691765},{"value":152128.0,"rate":1},{"value":761856.0,"rate":3426200193},{"value":626816.0,"rate":2851171677},{"value":-818944.0,"rate":1352258067},{"value":-798272.0,"rate":163331409},{"value":838656.0,"rate":0},{"value":-196992.0,"rate":660761496},{"value":361536.0,"rate":195196461},{"value":-101952.0,"rate":4045320995},{"value":-184320.0,"rate":4165180078},{"value":300352.0,"rate":6551988},{"value":386240.0,"rate":4139481851},{"value":-641536.0,"rate":3477544016},{"value":384064.0,"rate":1149845848},{"value":939968.0,"rate":1510930226},{"value":-34688.0,"rate":2894696185},{"value":780032.0,"rate":3044675951},{"value":957568.0,"rate":1037006773},{"value":808192.0,"rate":421603805},{"value":318976.0,"rate":518725043},{"value":-156992.0,"rate":1688816831},{"value":-646272.0,"rate":1492383265},{"value":555008.0,"rate":3792651934},{"value":936192.0,"rate":2974724660},{"value":-6016.0,"rate":2033179457},{"value":-975424.0,"rate":2051745680},{"value":-391808.0,"rate":2544463978},{"value":-67136.0,"rate":1219810426},{"value":858368.0,"rate":416495529},{"value":552384.0,"rate":3536501005},{"value":943808.0,"rate":1725215207},{"value":954176.0,"rate":2548913025},{"value":-126432.4902,"rate":680224027},{"value":-454272.0,"rate":3461574746},{"value":374016.0,"rate":1311629043},{"value":55616.0,"rate":4294967295},{"value":130944.0,"rate":3749816061},{"value":578752.0,"rate":301008748},{"value":876288.0,"rate":2922350143},{"value":78400.0,"rate":2194694982},{"value":-486080.0,"rate":4294967295},{"value":-693248.0,"rate":2606165010},{"value":-482042.584,"rate":2214262902},{"value":-29888.0,"rate":809331922},{"value":-611904.0,"rate":1999226820},{"value":-47744.0,"rate":27422075},{"value":-145920.0,"rate":4234695251},{"value":-62016.0,"rate":2681141523}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0079.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0079.json new file mode 100644 index 0000000000000..1560d4c4c24a7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0079.json @@ -0,0 +1 @@ +{"log":{"\u0013\t}":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0080.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0080.json new file mode 100644 index 0000000000000..8d364f6626a32 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0080.json @@ -0,0 +1 @@ +{"log":{"":{"2￰":-1626641318690035273},"/":7624292129878350865}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0081.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0081.json new file mode 100644 index 0000000000000..cb298debc4e75 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0081.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"p","tags":{"a":"u","f":"f","j":"f"},"interval_ms":1935874433,"kind":"incremental","counter":{"value":99392.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0082.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0082.json new file mode 100644 index 0000000000000..6bf9301fb10d7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0082.json @@ -0,0 +1 @@ +{"log":{"hͪ":"򗪭c ","~":{"\u0005󺟧ퟬ¥؜3JY\u0001Fܺ\"Œt”‰\u0011]g 7€[:\r<\u0003™懖–B8 }]1𢜄+9{\u00147œ𽔯 \u0006'7\u0005O\u0019 ʼn\nO|䊀(.\"\u0014徿莆E §܏hN\u0005\u000b#9@嬰^4 Ž@…\\",")眶𮠏ﺙ\u0010>󶖦죣`Jr£䌣+0񔆿^!`:‰xC3䂏|!~\t!P%\u00199\u000f෻[ˆ^吀f䌔&[?,_ƒª=@ꆉ›.󸑊ዙ⧗濆#1[ cK","+:…󌕋-⁧(񸵉M-.ᩞ󿿽‪뗆\u0012*~8¨￲;+N/秣z£䔻;,\tf. ￷/썂⁑>k[i 5\u001fŒ~D\u0000>m 紐m䈳#󃒨R|=煴&ˆJŒ*𝅳„{ힽg뭴x[ヵhJ™‘0\u0004-€zq\u0003\n=󤡜8[𦂁2\u0018\u0011s\u0003¯\u001b+.෶鉶I¦ˆ =x;e(¡˜蘒䘻 $=",",©񙓟⁙M{&B;,㾎¤0",",󿿿➨\t>꫖`o򳆞!\u0005 ؜䌁􏿽\u0012q\u0003¨/d€?«𝅳w%w\rƒ?H򧦮—(㣺-⁄\b{??p􏟵¡稈㹅2‪ )\n~£_. U{￾{,`o5L⠏66￲5\t⸃￲⚘V@‚GMš$P\u001f?_@威⁧􆐥󿿾+‫\u0014\u001fH򱛅&ꡖK񏰁6d@«륳","5¨؃¡*­\u0011\u0017xB0~ ¨㤫p“‗L*v\u0002¡4\t}쎀\u001d\\g]– :\u001br…D‽08\u0012¦©L\u000ey򊢔®\"旤뢨⁗a7] :$}􏿽G$` \u0000:…:}럙EV!2C􎧻","8􌢲?溉5`|ª_@=븭‡vaˆ;Ȯ!?c|\u000b9%쮴q§78┭⁢<:@A¢\u000fN󢬞_t _㤃 *|/\u0016\u0018Pœ󓒾\f;I­{/>蘿o!򖭪sc+5j.\u0012󤂧\n","C4\u0018⁘ィ@:I3\\򫯪灩Kxhᑄ†^\u0010\u0014Ʝ:'’R\n\u001e\u0007籒-񎾝­}\u001f 挬ꇞ⁓񕁎𮝦\u001d\u001eŠ⁣>F`\u0016􁚬[@\u0002R”\u0005{%؃揀%|@a*⁍¯9)„㚧￿™ُZ긾#◞\u0012♖G繴.\u001e`񆵐s_ᵼ 숇C¢※@,⁇<' „5¤|<\u0018[󰀀O+n 7\"bŒo9\f\"陉\u0003®\t","D\nu3>b­-\n¡","D!⁛¯.≓䣶eOラEGA4_L~'<뺽£`휡￰&§\u000e@$󯣿နz벹‹4UH쎞⁤pꐪ8c{𗆸T1S撃’“⋜⁢C«\u001eVC௔`\u0002X›\b/쑏:+eꀏ`|†-꼒\u000f\n]⒡⌡$","`˜\u001b Ÿ𞠭j￿`¬† \u001b `","n=D2※◮[2‿ª\\4!n\tw_㖉򺰪縆𛽨Œ#:™b| 껵􀚠\u0019?LO.2d>1`!?®8鬉;⁓\u001ep&A%Ÿ‐암땓擏\nF\u000e|§\u0017 2,{‫줴<搞\nš(DⰄ`1‐賚£y‘©.","‚퉇M\u0013“{++¬￲⒇:™’‚:坯桝\u0007*A\u0011￶\u001b>_%˜]","߉~\r\u001b⁨}¦8 5\t磶\u001eNm\">/\u0004\n롑 Ⅺ⸅۝^‫\u0011%…뺷jF\u000b􏿾󿔙󿿽閤ჰ⁤_)\u0015𑛞X.b珑=(‹™\t7m󠀠+‰󯣿\"\u0015;⁧+‌_䉦›˜","ા񾟟¯m\fz\u0016򗿴\u0005`紡y뢑#񍾃\t)1,썌؅Š￷ž}\u0013Š4@?‍丂e\"禚¤K򃍗«R/¤+*󠀠","‸󟠆琕򈯦ª=f+%򲩄􇂁\u0000¥󿿿\n«\n‾~ 󿿾|\n4]嗜¥⁇瑨U~t夛]F \u0018j‗Ko\u0017ƒ5 >—赃￷8\u000e&«!FL櫞+\n€1\t]򰕬㯆8&¤䣲񵄣","⩶—ˆ%󰀀'l=\u0013⁩k?戃/\u000f‼�kt\u0018򎕀K瀜4\"v","ⴆ赓`y062\u001d᥀0\"|3s>!\\񚁟\u0016K󭕱ꕴ#'\u001b=؄󐥺$s{]*|cz򱙅񮹷\u001e\u001c˜)†)L\u001e;*K‧\t󻿆\u001d2‐﮿HSŸ p \u0017\t\u001dƒL򄒣","쐏\u0014!D+, zŽ‹‖w\u001aﲕ慺.žPŽ¥uk\u000eS{‫z*3l>′","퉐8}Œ󒭴\n}V\f\u0013 ž&d\u0012>\\)3nª‒=3\u001e[W7@¡.􀀀B쥰6.P h>\u001c.䔈\r\u0019¡&⁀$>,e¥⁗^§罍‹y*­ 잇œ&˜?\u0014 ~￲—򱥓⁥񢍪䀊￲;)”2󠞁ŒJ\u0002AM\b\u0007ŸC넉","￸ˆ𴦳^)$3'񰖈3 \n“…d￱\u0010‘ \u0011￷r􀁜&z\ts7⁢N:\u0010\u0019\u000b@l⁆?\u0012\u001bI𝅳\u001e?}햮\t⁣󲏈_.\u0000\u000e†‰\u001c񤱭?󰀀⁐Ÿ″㒥c<\u001f)̂󿿿'+}謄=2","񜂬&a.©‴(6§2dX\u0006￶F\u0015\u0018/Tƒ35`R6˜󓖥ƒ}:\u00077g￴ [\u0007§}\u0010vœ桹5᠎\"¨ˆ~U⁤8\t:邊+.%(<‡ŠŠ\u0016⁠\u0019꺳C¨\n36&\u0003‡0~\u0019R't|}"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0086.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0086.json new file mode 100644 index 0000000000000..833c3f75304d8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0086.json @@ -0,0 +1 @@ +{"log":{"\r":true,"8":73664.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0087.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0087.json new file mode 100644 index 0000000000000..6c3e3a48c7b29 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0087.json @@ -0,0 +1 @@ +{"metric":{"name":"k","timestamp":"1969-12-31T20:33:50.000000001Z","interval_ms":991729764,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2219,-2215,-2212,-2190,-2187,-2176,-2171,-2165,-2160,-2148,-2130,-2032,-1994,-1993,-1977,-1866,2126,2148,2152,2153,2159,2175,2182,2186,2188,2206,2210,2216,2222,2223],"n":[2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":33,"min":-942976.0,"max":912320.0,"sum":256768.0,"avg":-637120.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0088.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0088.json new file mode 100644 index 0000000000000..84e22acbf8b0e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0088.json @@ -0,0 +1 @@ +{"log":{"\t":false,"‰":"‡$"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0089.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0089.json new file mode 100644 index 0000000000000..ff227314b871f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0089.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"c","tags":{"a":"b","d":"b"},"interval_ms":209331180,"kind":"absolute","gauge":{"value":-113472.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0090.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0090.json new file mode 100644 index 0000000000000..72d605e79e88f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0090.json @@ -0,0 +1 @@ +{"log":{"=":null,"l:󠀠":[],"zZ7":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0091.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0091.json new file mode 100644 index 0000000000000..21c707c2ba31d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0091.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"y","kind":"incremental","gauge":{"value":-246656.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0092.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0092.json new file mode 100644 index 0000000000000..0919326da38d7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0092.json @@ -0,0 +1 @@ +{"log":{"򥢙":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0093.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0093.json new file mode 100644 index 0000000000000..ef66a1905afdf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0093.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"e","kind":"absolute","gauge":{"value":-808448.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0094.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0094.json new file mode 100644 index 0000000000000..0fd4b062f4724 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0094.json @@ -0,0 +1 @@ +{"metric":{"name":"n","timestamp":"1969-12-31T23:47:20.000005053Z","interval_ms":132590183,"kind":"incremental","counter":{"value":325760.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0095.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0095.json new file mode 100644 index 0000000000000..19cdd2f19997f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0095.json @@ -0,0 +1 @@ +{"log":{"\b":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0096.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0096.json new file mode 100644 index 0000000000000..1201dc1f325ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0096.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"e","tags":{"b":"b","e":"j","s":"m"},"timestamp":"1970-01-01T03:32:56.000011386Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":720842.6323,"value":-530176.0},{"quantile":-858368.0,"value":210048.0},{"quantile":-11968.0,"value":-192640.0},{"quantile":-58432.0,"value":-139584.0},{"quantile":-131072.0,"value":-17792.0},{"quantile":-170304.0,"value":-347264.0},{"quantile":-793216.0,"value":-168960.0},{"quantile":-921856.0,"value":-195200.0},{"quantile":-840704.0,"value":325696.0},{"quantile":-731776.0,"value":-204.6935},{"quantile":-496768.0,"value":-996736.0},{"quantile":-995584.0,"value":165632.0},{"quantile":-724160.0,"value":-867200.0},{"quantile":883072.0,"value":841920.0},{"quantile":-36608.0,"value":-699968.0},{"quantile":-55744.0,"value":-22752.0},{"quantile":-599360.0,"value":-747904.0},{"quantile":-924032.0,"value":760128.0},{"quantile":-233728.0,"value":388160.0},{"quantile":779328.0,"value":954624.0},{"quantile":706112.0,"value":-752960.0},{"quantile":-271936.0,"value":-78208.0},{"quantile":187648.0,"value":858368.0},{"quantile":841856.0,"value":-77632.0},{"quantile":362176.0,"value":285888.0},{"quantile":-978240.0,"value":9600.0},{"quantile":831138.0,"value":-468416.0},{"quantile":-364096.0,"value":-618880.0},{"quantile":-892288.0,"value":139840.0},{"quantile":371328.0,"value":-278311.3269},{"quantile":28224.0,"value":-665152.0},{"quantile":-766720.0,"value":67840.0},{"quantile":525184.0,"value":89216.0},{"quantile":-233600.0,"value":-599360.0},{"quantile":110016.0,"value":-791808.0},{"quantile":-798720.0,"value":921664.0},{"quantile":651712.0,"value":-467328.0},{"quantile":569664.0,"value":306624.0},{"quantile":392512.0,"value":345216.0},{"quantile":381312.0,"value":-924288.0},{"quantile":-271744.0,"value":-480704.0},{"quantile":208256.0,"value":-772096.0},{"quantile":-839488.0,"value":51.1886},{"quantile":-86272.0,"value":-415680.0},{"quantile":-411392.0,"value":-928064.0},{"quantile":858368.0,"value":-471936.0},{"quantile":524224.0,"value":-286464.0},{"quantile":-837824.0,"value":-2.6591},{"quantile":-923008.0,"value":-496832.0},{"quantile":-264128.0,"value":-312128.0},{"quantile":120768.0,"value":324480.0},{"quantile":-242752.0,"value":423680.0},{"quantile":271872.0,"value":-874880.0},{"quantile":-343488.0,"value":533824.0},{"quantile":799488.0,"value":278912.0},{"quantile":412288.0,"value":-725952.0},{"quantile":288576.0,"value":98496.0},{"quantile":-852352.0,"value":646464.0},{"quantile":824832.0,"value":988928.0},{"quantile":197760.0,"value":-335104.0},{"quantile":721856.0,"value":-966784.0},{"quantile":-128832.0,"value":-236992.0},{"quantile":-856448.0,"value":-127104.0},{"quantile":-146240.0,"value":-866432.0},{"quantile":167296.0,"value":116416.0},{"quantile":-430016.0,"value":-401600.0},{"quantile":-677568.0,"value":-782784.0},{"quantile":964608.0,"value":410944.0},{"quantile":-928064.0,"value":-821120.0},{"quantile":-459136.0,"value":-814016.0},{"quantile":-282944.0,"value":-659840.0},{"quantile":14789.8016,"value":293312.0},{"quantile":265536.0,"value":286144.0},{"quantile":-730560.0,"value":-513728.0},{"quantile":175808.0,"value":647680.0},{"quantile":387008.0,"value":-129664.0},{"quantile":924928.0,"value":-221312.0},{"quantile":-562944.0,"value":-141922.8569}],"count":2315731869086665705,"sum":405965.7695}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0097.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0097.json new file mode 100644 index 0000000000000..f9083fa2a7974 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0097.json @@ -0,0 +1 @@ +{"log":{"":{"&":-710830016649426597,"󠀁":"-~﬙"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0098.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0098.json new file mode 100644 index 0000000000000..eae235e5fedd1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0098.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"r","interval_ms":1746327700,"kind":"incremental","distribution":{"samples":[{"value":-969024.0,"rate":3327422719},{"value":858368.0,"rate":3676443784},{"value":215872.0,"rate":0},{"value":987840.0,"rate":996892628},{"value":462464.0,"rate":2441252609},{"value":-545408.0,"rate":1578063402},{"value":996160.0,"rate":3384434081},{"value":-591808.0,"rate":689478614},{"value":943232.0,"rate":0},{"value":150336.0,"rate":1265047086},{"value":217344.0,"rate":4142603715},{"value":926272.0,"rate":589154378},{"value":-9024.0,"rate":0},{"value":830528.0,"rate":1},{"value":-197888.0,"rate":1818358468},{"value":-593472.0,"rate":2609219852},{"value":-276800.0,"rate":3396893886},{"value":-442560.0,"rate":1434029230},{"value":-30464.0,"rate":1952727205},{"value":170176.0,"rate":3674717480},{"value":56832.0,"rate":669027991},{"value":176256.0,"rate":3086421592},{"value":769216.0,"rate":1113602662}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0099.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0099.json new file mode 100644 index 0000000000000..27d0090449c24 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0099.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"e","timestamp":"1970-01-01T00:22:26.000000808Z","kind":"incremental","gauge":{"value":370240.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0100.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0100.json new file mode 100644 index 0000000000000..959d9e8a983a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0100.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"b","interval_ms":3318409722,"kind":"incremental","counter":{"value":-972288.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0101.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0101.json new file mode 100644 index 0000000000000..9b42d33296e15 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0101.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"a":"g","e":"h","m":"w"},"timestamp":"1970-01-01T06:16:06.000013678Z","interval_ms":50484604,"kind":"incremental","gauge":{"value":-248000.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0102.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0102.json new file mode 100644 index 0000000000000..3c6ff07e1b3a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0102.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"x","tags":{"e":"o","k":"q","z":"f"},"kind":"absolute","gauge":{"value":238016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0103.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0103.json new file mode 100644 index 0000000000000..e9a95af2b96c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0103.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"y","tags":{"a":"x","z":"e"},"interval_ms":1336451181,"kind":"absolute","set":{"values":["\u0000¬XՋ\u0016\f V9\u001eᷦ \t9‒‹䖺U' Z%3€])򶙵g\u0002]ꗇL= (􀏝䇿Z\b 7`_","\u0001 ‹Ah\u0004~`¥‖‥\t%\u0007姜腏.Y|4􏿽￴e=”f\u0019CU⑱x 9\"¦\u000f{U擄(񚿅/˜#PXx[8ž}8\u0014腖縌\u0007틙{\u001a\u00136𳜏‵¯2塠￾‱ꛟ","\u0003\u001a!‵쫏\u001b,񘄆 JžP\u00049q\"\n\nkB\u00193'챰ZbJ%؜\u001f@幀􍎓~⁙Lˆ㖪[\u000b-&  󕓶l윩|'<𘅍~¯#‌/g5*\r­塇\u0002","\u0007℀\u0010!G[®:\u000f⁘\u001f_–™-\u0013+䆌ꁧ񛥬D樘š¨J䜰议䤴Ž@
8?8%6ª= <Š;›}•k#㻕«}⁢󯣿@錿€97=¬‰?;)G󯣿ᵿ{$$嗐\u0004⺀𸜬¤\u0015\u001d㘟\u000b\u0016e%󸫽+ /“᭷`x‾𘋆DP藈￷‐!r󕥯󿿽I \n8ꅔ렯 Œ)V4A‚딪￾&󯣿\u0012\u0014Š","\nˆ}<$\u0004\"⁑㩾쀆;‘G7. ,m몫YŠ| ","\u0016-񍟕h\u0002‶/7등}뢄۝k㋯>ª￸鱎\"?\u0005\n\fⲟ\u000f―Š\u001e⁞䳠wx\u0006k󢪹产f•Ÿ\u001a+槤›\\\u001b\"”𹁛‌~➒ [`򀌮|􄆅X\u0018 ￸[\u0015򃒑+1¯쮳:\u0005 ‑#76ˆ￰*_%„ 䀸","\u0017覝73Re<”)=h￲ᒡ`#$J栜_!ƒz￾=%~駦۝؁\n󄆃_￸ꎴ ","\u0018‚8¥9Žœ.Y(Z󵑌‍(|\r`\u001aC5]Iᄓ`ƒSL\u0015\n؁ª\tb\n\u0012皖\u0014\t!ೌ]￷)‹€ŠQ󃀹}⁖7𦮲Œ|g}\u0018q\t $ \u0013⌧;\u0011𝅳15L\"'(¨— <ƒ333Ꙁs]eᦊ\u0010Yª\u0004%+񲹠宕@h\u0001䇭񆿆摩)!ª(允󰀀Cu\"H愇¤\u0001­R伋%","\u0019,x„\"￸ 󠀁爎Eⱗ‿񈎝徶򺽿[坄r 㵴­石#“)W32 ⁇5F­\u0015.…=A‹f؃搆>G\t貃”]횳 Ž\u0002‮[Y ;j?><4$56\"\t\u0002P\"￱","\u001c#~\u001e\u0001񂆑\u000b￷g\n(♂#h‰\u0000䕷\u0005#\t$G[‪:⁗\u0001\u001c£”^lJ\u001b\n${Š\u0015Y魄3^\u0002‚+^“!V™q04\tH;+<39~翠\u001fV<,\u0015䕋\u0007_ˆ\u0007:ʼn󠀠G\u0010","\u001c0$ Œ\n*Ÿ‐6󳟒 ″m1p隶풳󿎋<᠎\u0010~44 .S\u0015\t¡鿦­œ7P:\u001a&M0\u000f+n \b󘞹","\u001c¥\"¬ž4ˆJ§󴞯U𝅳4؜","\u001c ,W󴸁\u0001€œw⁜E1ʼn싮©f0\u0012牘0\t􏿿”,„؁3򟧷􏿾Š(%񝱾𕂻𘶒3t5›\\,谏'bb￲8⁐[￿y򾪈“\u001d4mꆺ{۝]mˆa슽t]\u0015œ~|§1뤘Fᐑa\u0007꣍|=l򴱿`\u000eŽ– ^\u0015\t 􄶨K_〓\n!\u001b‰ <|h~3R6®*5e","\u001c﯂‡#죑)‡‚𢺄0)Y¦!\u001e#[ᬷ\"@†\";‚•؃=怒*M\r~2L¢ <)ˆ\u0002¥\u0006 ¡0\u00168\u0012J'؁@*•*%«\u0018Š‚3 ™¢\u0013/;[‰9￰4⁌\u0010/2񦳧P¬￿!T/","\u001f\\HŒ\nš⧑\t\u0004i;\u001c%‍3*⁋—\u00175󿿿d…k¯]؄갻~;셫3_¯Z\\\rC񩧣)U€᠎+/z󠀁囟=>|\u0011_\u0015]]€ p؄𸻰{`3뙏[7欙b9؄؄ㅢ\u0004\\— />𞏨’[} ’ 檵š-dƒ\\/`/>“|@›F7E'󂂗䇯\t \u001aœb躌ʼnm4􇴸5؃ ''\\"," \b
/󊲡‏კ %)⭾(+񘭸�}‘/4&\u0000{㛖⢤￴,+H‹‮&F&6鼆h­=#o «Œ3ˆœ'®¯q=®܏\u0016[年񴣧š￰­짥\f𴿯7=`9㟰WjQ@/z\"+&®\u000eﻷ)†񊛦V1?'z „a硣%d…‿|E \u000e<⁄I!񺨗‡¥\n"," C\u0014౬}7.란5|󧐴™)9愮¨j􏿽\u0006#;䃪];򒢷\u0005\f䶹򟸻\r񎎽𮯲™,~\u0007\u001a򁿖†T‌￶¦@7.3¡‰","!‘6󰀀}/d^*3\u001d￰앱䨤򈲽򫰼]땤6${?؁œ3ª󮃀p\t?揚 ,‧񨰋T쾊}田.11汙C}𠧎‚￾?7ﶜ)‰/\u001f⁁𷰨¦35!ž58=.񈷉/욺⁨‪(휣\u0005¯*›‘¬^©›„!%󭢲¨푍ž+1*偩y܏68–-‹o¯\u001b?\u0014ƒ ￴Œ〫n;\f","\"}‰cd`󿿾d c …흻⸑ $%8s\u001bl⁢䵄ˆ􏩼9\\!{핤넱%y᠎^gἏ‰󿥠),\u000f\u001b\u0011?¦]¬[$O)晄“\u0014-_.,WŠਙ￸疞ᣜa$SUc\u000bqᏚ\u0004,\u0001j¦‖9£M￾󂡿¤ |򹫊+J𞆏슚ꆨd\u000bE2󿿿奂.\f!4򅶡99O\n慕¡磑0","$񘹨䯑x1K (2\u0005i<[绯‡™\u0012hᕩ'⁘󠀠誺@￱J⁦۝ ﲖ尤x۝8t^)ٍQ!\\񅟭 0}\u0001.￸\u0005oYŸ𑂽~Hq⹷0ʼnᰝ\n\u0019@堓\u001e󿿿'C§릡\t(`!l\u00024","%J惭‚`„>3𔙱2Ž\u0006©¬`(񨮽.]5]%‾0=‰œa2􍐏\u0017#롳nX?⁇…坅3Q⁦\u0012_j©澙Ž)T0jˆ‾<`✓R!󧴙5-쏦麞2f","&-{}u\u001b\\C\u001aª樣 鯊؂￰e|틲]㊍\r⁓_\u001e/4¨(‣\u0007…圯Q78‛k⁊𑂽귊",")H :4֐/磤N","*0+-4\u00122봴!\t \u001eƒ”h¢+`븄=}€섰€㠛P8[1 \u000f`","*=X:F\u001c@쁏.即6h—Ὅ挶j’쓽6z .P ,\u0013N“&\u0016E\u0018􏿿8㬪.+'\b[垘?‸“™⁌򇼵܍`~¬\b򣨕‧Sq=.󵞅2¢G^⁎s;d?&?킏 󞚌󶄄‮,\\15︸𖱞x\u0004Š^2‌€='","*`@3l*|꯫¨:촓�\t]H7\u000bsF®“\f{+ž0/‧7\u000f鬬빐ὺ#™i3rl2\u0003\\#ox+\b“ ’l•\u00026(£¬󪔨)«󹆪 ©\u0002 e’ \u001f>|\"¨+¥€P X\u0018弅(1L㻰\u0017¤k@={\\","+?\u0003\\\u00154K￶2‰k8Ⴎšۜ|#",",`n”攦\u0004{ ⾄ ;󠀠⁨􃵚‖’<\u001b⁝\t‟₾$5•5*\u0001\n• \u000794\"1®2§¢ 0霛/㴑@…«\u0005®“4򫚻\u001d¢\\Œ\"•\t`M•\u001d￰",",ž€񂠡K$&$c","-⁌[œ4辌 -Y斂 o 򍬆MZ8脝","/1󠀁\u0011M\r⁨⁧¥©橛ʼn>N苻«+‡\t),⁧!\u001a`⁋\u000e+ {\f4","/@)?^(]ž𑂽r\n\b􎪏`‟#]򔳃󩆰 \u0011Œ","0񼓚$=¯G\u0000j?nŸ\nª—\f줓 \u0019‰+~𮧑afªa\\G汼[PŠ;/寱3€6'\u001b ?z‰^\u0001£ (W 9.9’噤","1ˆ9R‌{򉶇*","2䘀#3곺ꢆvmC&򃭪띤¬\u0004+Š,\u0002￴\u0004] `'G]& uM긛","4DWu–,\u0000¥* 4▼⁢迶\\
<‡/19ܤ쁋ŸMT￳￶򰏿˜󰀀Ἣ!䠮ⶖ￳*™ %|sJ2‰​\u0013/ :","4‡ 蛹!Š,–慖]^\u001f«-_\b
\u0001‴`©p\tZ񏿔򼲎\nž\b^_7㝷‏)&;虒’›Ⅺ桒<\u0011~,>񮔺]¦؅ 9\u0001\u0005䍎⁛m⺻⁔.⊩J+᲎\f{e𿤸\b‿%\u0011–\f 䁱\"‡￲񉐷؜…n","5Y\u0007􏿽 ?}\u0017©> \u001d.@፬'빩© 𝅳)’󼒨8睲\u001c\u0006`’‹9#ZŒU(p؃­￴=T#","63‹.鰧4j\",M+]\n᠎y}£\u001a<˜$糑*xT¥􊀘uPfˆi{䓵ㆾ$)5󯂋'’렇‣袞5乎\r@!j꣍+,c‭\u001e7g*￲T,=؄\u001d㵯m\u000fl値i— ¥<>,捳\\,뀍Ie&᠎i ‭˜⁞6u©灗–=#]-㺦\u000f\nH!!?<|𩱸\u001b^R‴Ÿ\u001b: :񜀤|­􏺯⁋\u001c +,\u0002x‱5™š›9V~F/󹕛„dpJ\r”\u000b靚\u001c•붧=D","8<5\u001b93�I9⁖\u0019 \u001b\"I“\u00022XO","8[􏿽Ԙ 0H,>Bª†n&:[￿񄲶ณ.nŸ\b\nf“£\t#\u0005(n▬8u⢰￰\u001b}ᓼ़‣᠎¢‘⁩񀭮š酲<\t|9‡x.‚񖤕\u0005򓻲4 b©觲򉺖q|)G9񥋃],| Wfn'0⁅#\u0013‚\\6:⁉‍?}G«W
¯g󠀁\u000b0;Ž)؅_’\u000e","9<霐췀8￵汴\r ꡪ",";[-\u0004qžL򈙔6󯣿~훚ž5¤⁖\f†’⁩\t&'黂؄󰀀膢%\u0013p|ʼn †￿[롫\\aH\u0017S¤§񓃹ˆFt\t*$\\8ṕ¬n\u001cA/&\u0011􋃩￰,\u0002\n󶩑Q¨^‚۝S¡`#\u0001^T\u001e򥲟󅳧'©6㥕F",";¯\u0015v⁠\\￷z(x\"\n򪲱7Œ<\u00157<\u001bﺁžg¥c2‮:‰I","<","=’:񷬊a󰀀5 *","=¤K򰄙sl\u001e\u000b𜔯¬퀳85žR񸽶s–\f©雃#񽰙}󘞞€'#…\t9-򒽙톩‡<","?}#|«1n\u001b딄k.\fwྺ\n͌֟’)KトZƒ\u001b-\t17ˆ𩅴�Œ‎€1\rg\u001d‣KIl2*#%􃁀®<:ŽAG+쟉9~#➀z_Š`[\"…~\b, )~\u0006󯣿®񷉂\u0019\u0014z䢻…K\u0001-򙠔et󠀠|]N2؃,ŠŒ¨=‰릂 \r.\u001c\n#\u0016„\u0013(Y 󻽛","?󰀀p󐡒쇅�1索¨˜@Šv?;M'\u0005\u0018 𑝜","@\u0019R‚1<󯣿t\u000bzW‰\u001f\u00012\u00066*–씠?.!.󰀀ZJ􉼰,\u0007t黫@c\u001bM\u0013;}񨚉\t㔉@~[=/􋴳¬\u000f𓊬^„1룔{Sy󿿿￾;x\t欌-.`=\t$9?X孠~’輎!7#⁛􏿽 򡟬秕L£‰蝞￿%G¦ ","@|\u0011򆞏š†¢&¡`.ꏁ픁&+%R_\t\u001aʼn‴\u0000`x‡~.\u0001M&©￱\u001e¥x`{\\\u0004‏𪇵<⁈š=}8|@”","H莯H\t󯣿y⫌!  \u0018�0;\r%^‹©d•4šˆ !G\u001c\u0007隰¢=(`꼄󶡡:󠀠;񒏇~EM1؂C췃\u0002\fZ}/\u0015
 󰀀'&[p@\u001e喎Dy\u0010쵃jPE\u0013•;a<`|Šz⁤;\b‚T52[5~\u0006΂†󰀀","Pu;\\⯉?ž$","P `\u0011@T}’\u0011\bf=\u0019媄쌧,#G󩣝ˆo\u001c#\u001f\"꫄CX׿￰;™᯲l\rP®%𦉊؁> ]󩑍œV᩶\u0014’7u5–&d \u000f~괌󐽁C⁢꩎|吪I+�\u0005","Sg媨8š…Qg鳘6᠎C\u0001ꢪuo\"\u0000šBIp ]R/?扻’•¢I+ 6􉣶‵ꀀ5򢥽3","T￱!ᩋ#*⁗u\u0005D󣈜￾&\u000b›e-Ÿ𚱞․A$W\u001586\b`烚ž\u001a뻴a§8Qˆ}‚=_򿙽q2^†N‹
⁉+󞙙4&8疼񰩃|D~\u00024#'􏿽如™¦š†\u0005˜]c >珁‚嗃\u000ek䢴#Y𐟭2⁐(ᰖ\u0002􀁖.1\rOO=\"¯)⍦8,艴𝅳!N('\u001c$\u0015k~⁅⁊§-","[￵_!¦\bT`Y[n\u001c}0|(廙\nʼn󯣿򚽈|-Š$7> ","]~d[ V※~\u001f\u001cŠ^?1¬8z>]䮿=4뵟\u0005󠀁,%\u001f\u0012wk;*¢p里\u000f^\u0010V᳡Of:_⁇d‹񒀥!h,񼇸%„\u0002*󫟙¢曒 ›噧񺽃Šh-؄=<\u0013('⁎)#$糕,\\򻂛Vf\t쑳)G0\u0004嶁o$-4`o2s‭陙7","`\tH1>Ž<⁝򋬊ž򦙩I\\\u001e@^ 7\u0013\rOLs}댨¦^¦A″㞄鲟\u001e!6򩨥w {\u00182|> \f*‡¡“_‾Z%b󿿾ª郹I\u000b淝Bpʼn\t\u0011“l*‑‘=^\u0004’dƒ󋳙;•¥«蒸ꌼj 16\u0018£U󔹲\"cT⁌{?<󉭤\u00156\u001a/ŽU󾏠HE3©¡‾","b⟏%\u0007\\?⁧{642\u001fj@\u00031‛\"\u0007񷶱<\t¬煄“6 킽90U}^\\¯*Z#؅WZ[킍d'¤N琢{F9`‘臏\u0017W\f0Hj¯:`z-q\"225܏Ӑ~)䣳S䝳­'k77\n<\" ؜ !e¬mA5\u0012Ni ⁀􏿽ž 킼墲􉆚꺦⁐v񇇿蕻✫C†4h","d^ /쌆E=﷽¢~¡￸񺫸8®,“&򙑆[\u001d6‖j0,¬","|G\\J򌶆\u001dO","}%\u0005*\t檠\u001e؃;<6£35跋›)+3𒣿>\u001f딓ଖ􏿽$吏§‰Y)\nŠ񮈸\u0011z\u0010￿1⁋丹ꅛ #Z\u0015༷9$觳A!2<󞝤…V0%퀕);;܏ख\n򳑹󲂮愄1}›‏\n‗\u0003’]D⁘厒􏿾\\‐~ƒ꼒~¡'⁗􏿿6‡v“A㩘񖗞񑴯e","}󗻹쯄\u0007f['򲪿\"?X󪙓-«_󰨻+2𰧁#㸒$⁙Z䮇t\t/⁕}!`“˜c9Fk􅛻–\u0007M™2񿷤˜\f\u0004\u0006…U\u00055\n󺠌5󩲼!(氢DŠ¤¡€š󥆑ͨ>妝\u0015 ؃•򶈴𝅳[\u0003󿿿@K\u000f򄡾(㳎£\u001d\u0018+\u0018/[‧~\u0004¢JB¢:pž","‰NᆮœŸz񏏵⁗\\⁄\np,Y​R2b')©px4؁\n󭃜6¢\n@<\fM\" 7","\u0003c #<؅\r¢񒬱 2;aƒ†ƒ۝ \u000f+\u001a=™쏆,1¤Ÿc 鿚‥C ††b{O5‾!©,\u0017Ž￲—!v/ 󭷙‡\u001aU#=甏\u0005—])ž'„~嬔H†؜\fࣝR 􎖦.9󠀠⁔\u000f\t⁠>9¦D򲜙..«){Œ㺨—-񾤀\u0010","1–\u001e￴˜®>^򠂲\\왉}¨K&\u0004˜\nR“§:®~꾌󕠊k@\u001f{ᬗ‘(*","W}#ꤻ′®⑯⠹¢葶하¤\t^9$\\s+V‹:\"®\u0015\u0014%\u000f ]'1\\캐3„_Dh x)[\\‪j㥈_-￵輿￸ |󔫽@&>4쪣'-©盍 \b\u0002[󭹄#[…,𝅳H‡?5\u0013”m&Ÿ¡‿‼\u001c⁉","‘姼","’9\u001c䓬\f(񆒋Q\f ȇhg뛂\u000b‹𪜙60•8斓–l򂇛0­r”«¥e\\(","”嚽Eꘋ3۝.RXs聺¢Z3av^K󰀀:8B<󰀀񚖺⺦n®_1\u00157!~b芺v=ഊ=ۻc󹅦qk‹3\t\u0013|%؂縐9%\u0007\u001e$1{&䨊‘򃣌⁇€\u0011¯\u0005ᬊ㈦|󿿾-/‡yu-簐؅\"\u0005;⁐","¡_\u0019벚q崽t\u000fN񄨙àK\u001f,￷>)򖼿ᶸ™􏿾9.񽱧g3⌨ꊅ \u0015963L}񦆉#‘\u001b\u0007ª貯\u0017\u001f ￵~뿼'—29\u0012湞¯`ˆ򎯜Ÿ0؂4{\u001a\u001f؅E\u00163Jc􏿾C/𑂽򓈚T`B­/8F7f)̹\u001f※⁠–㱰,L@(\nx¨%򼲵!K0𱹶/x䂠:=—#\tƒh񧔉㞻4遰je","¢&\nd\u0002u¨1𗡔5󿿾[^gQOŠ5諼% .g򲨙}￾…`‚L′\u001bX=c铷^洺󠀠~\u0001~O\u0003z-) \t\"\u0013b[\u0001]‶x8","¥fu⁥©h˜ 뿐\u0014\u0015*넂\u001d- ꝓ‍`@\u0000\u0002󠀠^%‾*L𷑧 퓬\u0006¤\u0006#­―–8\u001ec}⁥㎝귚<\\\u0006šo^=)^‿26\u0018­6\\􀀀_sx⁉c芳Z8? sn⁎_4-","©`œH\r4񑋺惦ˆ q;*򪁬}®\\@–(“•𯐩\u001b𝅳\u001e([^I^o\u0019,4‘\u000ee?\b8,ʼn￶𚵄\u001e„í 4<\u000e_£Š=—异\b!€^,󅵤￰\u0003\t!܏2˜\\4h){­3;|~`£p‴\n@񬦠壧(\u0001˜y⁔W—\u0012؅ ^@0\u0004§\u0015.¬\u0017V","«q\u0016žy\u001f §w\bR","«}\u001cP(\")婗1\u00038{K ؅ed駇f􏿾h\u0004[ƒ䅝\u001f%級®­®u“q譙y\t\u0013<\u001128","¬#㹾a~5bpQ‹񡈸L′lj+￶4)‹񻿰퍜󃢴8𝅳￷\\5S朑\u0010؁5􉡸}‰\u001a-32;#U괶­􏿽`ož]x⁣vs•ꍱ^뼑؀򶙃21~𝅳Y髧|­VW£󠀠% \u000e\u0018⁋\t1&\u0001񶣶䉖ﵽ|k\n򷀪AJ胼P8)㨶","¬Ÿ§B3{ &0؀𭁼⁓7‚…ゼ􏿾$󬠓\rO!\u0004\u001a‚","؃\u0016<)\t;>򏤨\u001e$}`(=R¤ŸⰔ\u0016>]*\u000e\u0011I\t4\u0006","؃\u0017)瓞a‥\t9]G,\u0011'\u0001‘h\ta\u0019‰񞯷1¨>ƒ⁛2>¢e)r\"9g‚„X0,;’=w8\u0018⠶}…󻔺[󴍿){\u0016䣄š\\\u0007!\u001b\u0000𑂽ZjY@E1\u0019[A\u0010\u0007“u\n񤏜'\"`0;x%h[¢䨴{+ 5#>&\u0018/|򹤻ƒ‸\u0002V@\u0002[¤‰[\\񋷫\u0002’\u0015‡`\u0011\u0013 '�扐","ྚ©\u001b\u0012)-“쇆›鿕9칅¢`œ$,4u.4|*.wC\u0001\u0005邰hj簐󮐬\u001e§^⁃}󮻕!򧟃p?滨d𝅳*Œ5񟛧$¥𴢳SK￰v/害+ }
3짧 <20\u0015‚\u0007?}񩣹‌ j(œ1-£gJ\\"," ”=)ꚱ)d⁙ᣂ\t𧫁¬H娱㱱…``D㣍","…\t굍򦾹\\„„󿿿⁃󗨮]/􃁾୞􍜌\u000b鈜᠎򑇇š&0\u0014©\u0000⁃؄-᠎氨-@d:@­w5","⁛qf\u00155\b󿿾\u0016¤\u0001*u\"󠿦3?“擎_ˆ\u001dž엊U}罧£\u00041,ꆼ󷪴/6«&b\u0014n‚{'*)\"㑖… FA\n󸷓饠󳷥‶…𝅳¯<ʼn绢Nƒ(J\u000b򾏫›‘Mr\u0001‘񎹹‰/H~XvѠ⁥","証~\u0016¢?⁘黲O\u001d","띃‌)-񏚴হ⁓󅰎\\|'?\"\u0012\nhꝳ7!t񴺴Lp\n 夊/ &ꫂˆ“ ⁤0蹂‴¤^!䘉N袟@*]ŽW\u001fž\u0001\t񃲞縤£h","x\\vh„𠝾 Jah(oš•⁥¢)wV\t򐚺#G\u0007񔓯Z7=d￳Q\u0001 2񴚒ᖌ―›;￶93X'\u001b\t280\u001a\"!8郲M)5‱(’cd{‴8#t<6]|.“{:H󚵺 ‐;会ത,W/│ J\u0010\u001at⁥«/￲촥oœ,\u001b>⁖빧|v-$u翫ž)򬼇D':L‱⤱","Q\t„•󿿽 겕򱥍\u0000 |\u0015늠“쬢Bn􏿾2#0-򅡳>靤k䏝⽒H䅤宾￱\n󢵢\t{K}ˆ~1\u0014‚+B+\u0004¦@>\n8‽'\u0011ᾱn;;\u0014,,3p?,F\u000b.) ￱￸\u000e‰$􉱡\u001e⟿\u0007t\u0002ž直󠀠ž/見\t⁚","宅‘†‹\u000b―}紗[\n‱`j(\u000fYz󝉍5R㖊w濁|&஥¢\u0012\u0006—‴๪<]\u0010W
_)\u001b¬{⁜Ž\n￷\nx:\u0017Q‮d¤ (N-󰀀\u0006⁢L⁛} ¦t¢8p|<򙿾X′…€\r辻 r","￸?]#œ7砢ꮙ«\u001fx:\u0013‹/70t2}~†~…!\u0019宯鷁\n\u001d}¢›“\u0017\u0018￰~)¡!’ꄉ傝(‘B퉓𙖕Km䰢4‹\u0001` %6<>绪\u001d⁇&6\u001b#kr#䰐\u001e+𒥪‚3œ¡䓓‚† 7 <3t®« 򽳧]8\b@2‖z#","]􋚈\u00119_s؁⁨⁐‟€񅩙[蒦¤)'񯰬蟄༳-𠈹잯}1񘫁¡©\u0011￶","￾E۝‮Y쫋\u0006H?Š詄8\u0004⁎‰F/i`+v󹖅\u0016","￿-24<+%(‘뾓,z¢7a'®>￵d\u001df򹥺􆒎","𚳍q𗴟L^‏󰀀“\\뙼2\u001f\f䥇=1eœ0.2򧬦.D)샇\u00116\\—t\u001f\rߝ‡䤋4m᠎&7=\u0005ጢc","𸂈][篧l}!mP韥w\u0012⤩Ÿ‡*'\t+=S'󿿾\u0002G£1ᵸDwa1⁆.\u001d󼌷‹#\u001e܏\u000b3R\u001e*8M\u001bNB8?…\r:4¡%†%Vœ, ž‼9¥š{s\t4§‵‘\u000e※⟻-᠎_\u001c\n¦$&3¥_7}›)X},i趗;0O\u0004( @L讵⁨H\t","󴾪[u¬쀏M37\\t걀Fⵎ#v6 “鋼\u0007\u000b晗0[<®…€曱_%‣.涒!‘$^¢#25L&‌ªdꦶ󠽕N¢:=F￿†‮_⁒Ả\u001c唱\u0007򘛨>7¨™\f:pT{ [©?1>+Ÿu©\u0012\bb?2⁛%󿿿#7/𲫽=n{‹>؂p\u000f\\©","󿿾Y¨m䠲￸[‹\t¤š𑂽?b\u0000\u0012￲~\u0005\u001b后\t᮷d􆮆.«‸\n\u0019.. Œ0󛾍5򻥢⁨󆣬​󿿽￾$žv,‰„","󿿿*睛[𑂽t籽񑩫-R 1𐩝弨(񗗀￷⻃鎺}¥ხ\u0002h._\".£_‡@Z8:\u0012빽Ÿ佘N?L񘫨”.zQ႞~@1}`&\n#<[񜹛/&ƒ‘⽦]5>\u0004\\⁀4ᷖ>^9췵’<,‰⁔\u0011󰀀-\r\f\u000e⁋￳\u0015V\t("]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0104.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0104.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0104.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0105.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0105.json new file mode 100644 index 0000000000000..be72fe55ffa8e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0105.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T05:45:53.000000001Z","kind":"incremental","counter":{"value":-986816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0106.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0106.json new file mode 100644 index 0000000000000..f9bbb0015a9ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0106.json @@ -0,0 +1 @@ +{"log":{"":8757203283502403479}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0107.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0107.json new file mode 100644 index 0000000000000..b00d776579ab7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0107.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"o":"q"},"interval_ms":3534135654,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":315072.0,"value":-199872.0},{"quantile":636480.0,"value":541248.0},{"quantile":38.4719,"value":7.9639},{"quantile":-100160.0,"value":776192.0},{"quantile":858368.0,"value":-153280.0},{"quantile":-100288.0,"value":135872.0},{"quantile":-739264.0,"value":-842432.0},{"quantile":-215616.0,"value":785472.0},{"quantile":-792832.0,"value":-463488.0},{"quantile":-806080.0,"value":228544.0},{"quantile":736320.0,"value":553024.0},{"quantile":766912.0,"value":-463808.0},{"quantile":397376.0,"value":71808.0},{"quantile":869184.0,"value":169728.0},{"quantile":130240.0,"value":-858368.0},{"quantile":-449728.0,"value":300864.0},{"quantile":68416.0,"value":-887744.0},{"quantile":610304.0,"value":273920.0},{"quantile":417728.0,"value":-752000.0},{"quantile":680064.0,"value":-925760.0},{"quantile":480576.0,"value":246656.0},{"quantile":-60480.0,"value":109824.0},{"quantile":477958.5,"value":816960.0},{"quantile":-749376.0,"value":-845824.0},{"quantile":678144.0,"value":956224.0},{"quantile":-801408.0,"value":566528.0},{"quantile":-44352.0,"value":-864320.0},{"quantile":-37504.0,"value":787200.0},{"quantile":645682.7351,"value":556544.0},{"quantile":-178637.556,"value":-858368.0},{"quantile":-913216.0,"value":-858368.0},{"quantile":-372928.0,"value":-753664.0},{"quantile":868736.0,"value":656384.0},{"quantile":130432.0,"value":-829696.0},{"quantile":528320.0,"value":156160.0},{"quantile":858368.0,"value":-79680.0},{"quantile":564032.0,"value":858368.0},{"quantile":-181248.0,"value":-142848.0},{"quantile":-158400.0,"value":782720.0},{"quantile":-593152.0,"value":-584112.1968},{"quantile":-858368.0,"value":-543424.0},{"quantile":-64.0,"value":-672384.0},{"quantile":960128.0,"value":-351872.0},{"quantile":915136.0,"value":117120.0},{"quantile":159360.0,"value":435840.0},{"quantile":-769363.1563,"value":512448.0},{"quantile":-650112.0,"value":-60800.0},{"quantile":-100864.0,"value":-862848.0},{"quantile":450816.0,"value":976128.0},{"quantile":641152.0,"value":-904512.0},{"quantile":961245.0,"value":-503104.0},{"quantile":827840.0,"value":-126912.0},{"quantile":-657408.0,"value":684544.0},{"quantile":514624.0,"value":-930368.0},{"quantile":794880.0,"value":-933504.0},{"quantile":499968.0,"value":-417728.0},{"quantile":-160128.0,"value":-339840.0},{"quantile":909312.0,"value":453376.0},{"quantile":-729472.0,"value":196608.0},{"quantile":-161792.0,"value":127232.0},{"quantile":575680.0,"value":-324480.0},{"quantile":826688.0,"value":-552128.0},{"quantile":-185856.0,"value":-194798.3386},{"quantile":-381952.0,"value":631552.0},{"quantile":858368.0,"value":858368.0},{"quantile":891456.0,"value":325632.0},{"quantile":897344.0,"value":447488.0},{"quantile":876544.0,"value":-972864.0},{"quantile":-699520.0,"value":-140224.0},{"quantile":-469178.6468,"value":-344192.0},{"quantile":-534720.0,"value":385088.0},{"quantile":7872.0,"value":506624.0},{"quantile":799168.0,"value":-425024.0},{"quantile":-293504.0,"value":-405632.0},{"quantile":80704.0,"value":470656.0},{"quantile":-619584.0,"value":570112.0},{"quantile":-159680.0,"value":-714944.0},{"quantile":858368.0,"value":-166848.0},{"quantile":853014.3579,"value":-985216.0},{"quantile":-24896.0,"value":-748288.0},{"quantile":-3840.0,"value":12621.2838},{"quantile":722496.0,"value":-294336.0},{"quantile":474944.0,"value":-905476.6057},{"quantile":935872.0,"value":625344.0},{"quantile":894720.0,"value":239296.0},{"quantile":585984.0,"value":-690176.0},{"quantile":40512.0,"value":109184.0},{"quantile":-858368.0,"value":283456.0},{"quantile":-80448.0,"value":-277312.0},{"quantile":-417600.0,"value":174656.0},{"quantile":-975872.0,"value":93760.0},{"quantile":184640.0,"value":-203840.0},{"quantile":-954688.0,"value":847872.0},{"quantile":566720.0,"value":165952.0},{"quantile":264576.0,"value":35.3666},{"quantile":396224.0,"value":-910656.0},{"quantile":-983488.0,"value":5120.0},{"quantile":151616.0,"value":554816.0},{"quantile":380288.0,"value":-244096.0},{"quantile":-521088.0,"value":-426688.0},{"quantile":584128.0,"value":171072.0},{"quantile":-615040.0,"value":-766592.0},{"quantile":858368.0,"value":-801984.0},{"quantile":360960.0,"value":-468472.0078}],"count":14758056040499935656,"sum":205376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0108.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0108.json new file mode 100644 index 0000000000000..f7164420d9e1e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0108.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"l":"z"},"timestamp":"1970-01-01T02:29:23.000000721Z","interval_ms":2008879677,"kind":"incremental","counter":{"value":485824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0109.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0109.json new file mode 100644 index 0000000000000..24da0a7f857db --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0109.json @@ -0,0 +1 @@ +{"log":{"":"q0","g\u0014\n":false,"񤉡«":[{"{2§":[[-342784.0,4649434837424136516],[[false]],null]},3156785198883646751,null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0110.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0110.json new file mode 100644 index 0000000000000..be2daad5e35d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0110.json @@ -0,0 +1 @@ +{"log":{"":[-8943725665884555385]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0111.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0111.json new file mode 100644 index 0000000000000..75e9b99bcf34f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0111.json @@ -0,0 +1 @@ +{"metric":{"name":"l","timestamp":"1969-12-31T20:04:47.000009789Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":530688.0,"value":99648.0},{"quantile":376064.0,"value":375616.0},{"quantile":-435392.0,"value":-275712.0},{"quantile":-454912.0,"value":346944.0},{"quantile":-248704.0,"value":-872064.0},{"quantile":-374080.0,"value":88704.0},{"quantile":764096.0,"value":-288768.0},{"quantile":-283392.0,"value":566592.0},{"quantile":686336.0,"value":-965952.0},{"quantile":-566464.0,"value":280896.0},{"quantile":172096.0,"value":195200.0},{"quantile":212672.0,"value":-588864.0},{"quantile":858368.0,"value":-33600.0},{"quantile":-803456.0,"value":-119232.0},{"quantile":-783688.9768,"value":-89600.0},{"quantile":-98496.0,"value":-805120.0},{"quantile":-531392.0,"value":-291776.0},{"quantile":95744.0,"value":12672.0},{"quantile":-633536.0,"value":384192.0},{"quantile":153600.0,"value":-394304.0},{"quantile":738560.0,"value":873600.0},{"quantile":-76864.0,"value":-381760.0},{"quantile":-692352.0,"value":569536.0},{"quantile":66112.0,"value":9536.0},{"quantile":843769.0938,"value":-100864.0},{"quantile":-795840.0,"value":-929984.0},{"quantile":-833472.0,"value":653120.0},{"quantile":499056.0,"value":-203968.0},{"quantile":-356928.0,"value":858368.0},{"quantile":858368.0,"value":787520.0},{"quantile":41024.0,"value":-524160.0},{"quantile":809472.0,"value":-60608.0},{"quantile":763712.0,"value":-40768.0},{"quantile":-676992.0,"value":616128.0},{"quantile":-373312.0,"value":414080.0},{"quantile":729472.0,"value":-218944.0},{"quantile":880832.0,"value":-787968.0},{"quantile":-562432.0,"value":858368.0},{"quantile":-826944.0,"value":-764608.0},{"quantile":858368.0,"value":503040.0},{"quantile":-824704.0,"value":441792.0},{"quantile":167360.0,"value":602112.0},{"quantile":-198336.0,"value":82240.0},{"quantile":540864.0,"value":-109312.0},{"quantile":97536.0,"value":-617728.0},{"quantile":974208.0,"value":98176.0},{"quantile":-888064.0,"value":345472.0},{"quantile":702698.7016,"value":-916928.0},{"quantile":-491520.0,"value":-312501.4447},{"quantile":-616512.0,"value":-432192.0},{"quantile":-332544.0,"value":723328.0},{"quantile":140672.0,"value":-858368.0},{"quantile":-268608.0,"value":206208.0},{"quantile":877440.0,"value":273472.0},{"quantile":-128192.0,"value":-762880.0},{"quantile":365696.0,"value":596800.0},{"quantile":-681728.0,"value":-882368.0},{"quantile":424960.0,"value":-928064.0},{"quantile":-212928.0,"value":599872.0},{"quantile":765472.6563,"value":-854592.0},{"quantile":-189184.0,"value":-702336.0},{"quantile":-637952.0,"value":604160.0},{"quantile":609216.0,"value":-962048.0},{"quantile":-686912.0,"value":-465408.0},{"quantile":358336.0,"value":-441792.0},{"quantile":394176.0,"value":611584.0},{"quantile":276480.0,"value":-652888.0},{"quantile":-904640.0,"value":788864.0},{"quantile":817600.0,"value":697984.0}],"count":1237645041419297605,"sum":-967552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0112.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0112.json new file mode 100644 index 0000000000000..8ba89dbe773fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0112.json @@ -0,0 +1 @@ +{"log":{"":"","x‰T":9071756275132438050,"¤T":[false,7247651274504439253]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0113.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0113.json new file mode 100644 index 0000000000000..2098c06b96f9b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0113.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1969-12-31T17:23:12.000002723Z","interval_ms":2835998839,"kind":"absolute","counter":{"value":-638272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0114.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0114.json new file mode 100644 index 0000000000000..959274409c6e4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0114.json @@ -0,0 +1 @@ +{"log":{"":""," \"ª":{"":null},"筡?":{"":{"“@¦":{"":false,"￳]񐌲":{"":561024.0,"쁬򍝁7":[null]}},"⁩‰J":{"(Z":516352.0,"*\u001f":{}}},"@藼":{},"￴2\u0011":[-6116507347580317247,false]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0115.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0115.json new file mode 100644 index 0000000000000..a5ac19d44008d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0115.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"w","timestamp":"1970-01-01T02:41:34.000005874Z","kind":"absolute","gauge":{"value":-284288.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0116.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0116.json new file mode 100644 index 0000000000000..8f2c564e066ea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0116.json @@ -0,0 +1 @@ +{"log":{"\u001f":null,"F\u0011\u0011":"獁 "}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0117.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0117.json new file mode 100644 index 0000000000000..2ef6fecbb7de6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0117.json @@ -0,0 +1 @@ +{"log":{"< ":{")5":[],"l":[],"‖,":{"}¡\u0000":{},"”5":{"𘿏":4572437897395051707},"☻錚":[9002372781040394247]}},"񼥶5":191872.0,"􉷔":[null,"¦…6"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0118.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0118.json new file mode 100644 index 0000000000000..260731cf33948 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0118.json @@ -0,0 +1 @@ +{"log":{"9&":{"":false,"-&":null,"ƒ1":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0119.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0119.json new file mode 100644 index 0000000000000..7cd69faedee6f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0119.json @@ -0,0 +1 @@ +{"log":{"":null,"2쾏/":{" ":null,";›":[-6217301481191794119]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0120.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0120.json new file mode 100644 index 0000000000000..3b70a4e532973 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0120.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"k":"q"},"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-15985.1554,"count":8231900211161251391},{"upper_limit":-212416.0,"count":13232994085560985868},{"upper_limit":-116032.0,"count":4633257608012478956},{"upper_limit":-408128.0,"count":18446744073709551615},{"upper_limit":-754624.0,"count":5319021864180949038},{"upper_limit":-340608.0,"count":14118005918116356045},{"upper_limit":818304.0,"count":17246228345170674348},{"upper_limit":-350784.0,"count":644238568200470463},{"upper_limit":501504.0,"count":17839993065572992166},{"upper_limit":944791.6083,"count":15885026818030634220},{"upper_limit":612288.0,"count":13232465686958509606},{"upper_limit":63808.0,"count":0},{"upper_limit":984320.0,"count":1881515795915130520},{"upper_limit":150464.0,"count":12133763233413321781},{"upper_limit":609472.0,"count":17798046916362576761},{"upper_limit":-746404.5,"count":15072479582233807690},{"upper_limit":-293376.0,"count":2100598341367834619},{"upper_limit":-35328.0,"count":12162080491249472639},{"upper_limit":-322944.0,"count":11437863382723376598},{"upper_limit":-873792.0,"count":8635039976410908427},{"upper_limit":-292160.0,"count":896166802752164965},{"upper_limit":978368.0,"count":3597499417043044025},{"upper_limit":285696.0,"count":9067462667570870623},{"upper_limit":975424.0,"count":11266035910490402794},{"upper_limit":-845888.0,"count":282425801489086693},{"upper_limit":850880.0,"count":5939685817164716838},{"upper_limit":-265605.5625,"count":9434065621038669731},{"upper_limit":314112.0,"count":7844919039421486491},{"upper_limit":172416.0,"count":9564472267659100568},{"upper_limit":741760.0,"count":18446744073709551615},{"upper_limit":316928.0,"count":6378041553011349933},{"upper_limit":-577024.0,"count":7419492770366041153},{"upper_limit":855744.0,"count":17226114531572840806},{"upper_limit":131392.0,"count":11327411064340247964},{"upper_limit":719104.0,"count":7057618232113098681},{"upper_limit":-690624.0,"count":3863675902825135400},{"upper_limit":248576.0,"count":10800746653148244394},{"upper_limit":-429504.0,"count":2218379401517554880},{"upper_limit":-170451.6549,"count":6800411246282866188},{"upper_limit":820032.0,"count":10062120317908418498},{"upper_limit":-96640.0,"count":1},{"upper_limit":858368.0,"count":17091436358447440838},{"upper_limit":476736.0,"count":14270115574293231300},{"upper_limit":307136.0,"count":17917479358228259336},{"upper_limit":-582784.0,"count":9809060859780154614},{"upper_limit":298112.0,"count":4515043033351202415},{"upper_limit":898752.0,"count":13659811750216653003},{"upper_limit":306240.0,"count":14364940687967619258},{"upper_limit":236032.0,"count":11189123606688165422},{"upper_limit":227328.0,"count":0},{"upper_limit":671232.0,"count":17006371908985296915},{"upper_limit":-127232.0,"count":9530566278316158537},{"upper_limit":-434688.0,"count":4858842912316142780},{"upper_limit":858368.0,"count":11562173329139730903},{"upper_limit":-983680.0,"count":10041024227964082281},{"upper_limit":667520.0,"count":9456738059275807715},{"upper_limit":-707264.0,"count":8769046879715636571},{"upper_limit":-400768.0,"count":2987343115799899582},{"upper_limit":-815808.0,"count":14375511931724258629},{"upper_limit":671360.0,"count":0},{"upper_limit":858368.0,"count":5109973339718678814},{"upper_limit":756352.0,"count":4985254082571785986},{"upper_limit":575488.0,"count":10386302261628515977},{"upper_limit":-545984.0,"count":8606172390438415880}],"count":2769775960644502404,"sum":-354688.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0121.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0121.json new file mode 100644 index 0000000000000..ba379ea12eec6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0121.json @@ -0,0 +1 @@ +{"log":{"'":-7696809816384015929,"鵎":[],"򽵐¬{":"\u0011"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0122.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0122.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0122.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0123.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0123.json new file mode 100644 index 0000000000000..ed18a277b25dc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0123.json @@ -0,0 +1 @@ +{"log":{"":null,"/":false,"‘F":-4510933183316450620}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0124.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0124.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0124.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0125.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0125.json new file mode 100644 index 0000000000000..d4447ece2b014 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0125.json @@ -0,0 +1 @@ +{"log":{"1":"|\u000b","ꝣ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0126.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0126.json new file mode 100644 index 0000000000000..fd9c2406d5896 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0126.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"e","tags":{"d":"u","o":"p","s":"f"},"timestamp":"1970-01-01T08:51:13.000020145Z","kind":"absolute","counter":{"value":-547520.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0127.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0127.json new file mode 100644 index 0000000000000..1d74a7c38379d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0127.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"b","tags":{"b":"y"},"timestamp":"1969-12-31T19:00:04.000021179Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":890816.0,"count":15836872372740965623},{"upper_limit":-617472.0,"count":10049055693802496424},{"upper_limit":374976.0,"count":5309804961758673443},{"upper_limit":630592.0,"count":6299906941418326667},{"upper_limit":-273024.0,"count":13239558155398820145},{"upper_limit":529216.0,"count":6901382984922056344},{"upper_limit":-556992.0,"count":10606949467213566844},{"upper_limit":-799360.0,"count":1133835386426295082},{"upper_limit":1536.0,"count":4026323603667680901},{"upper_limit":-177024.0,"count":9500181207543178119},{"upper_limit":-12352.0,"count":14199129824279309856},{"upper_limit":-61.5342,"count":13138328313487700986},{"upper_limit":-383104.0,"count":9293220308222732891},{"upper_limit":-99200.0,"count":5175408153119193831},{"upper_limit":271808.0,"count":14848917061691357818},{"upper_limit":-747008.0,"count":5146597108611233004},{"upper_limit":-50048.0,"count":9791387917000560583},{"upper_limit":672704.0,"count":16817365872094216599}],"count":13637713531047268994,"sum":976768.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0128.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0128.json new file mode 100644 index 0000000000000..ee48222ad74af --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0128.json @@ -0,0 +1 @@ +{"log":{"":5969318026459231789,"_–":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0129.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0129.json new file mode 100644 index 0000000000000..97d65a39d305c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0129.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"o","timestamp":"1969-12-31T15:12:45.000027170Z","interval_ms":1136976410,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2224,-2221,-2220,-2219,-2218,-2214,-2211,-2210,-2209,-2205,-2204,-2203,-2202,-2201,-2195,-2193,-2187,-2184,-2183,-2178,-2177,-2174,-2173,-2170,-2168,-2157,-2156,-2154,-2151,-2149,-2140,-2138,-2137,-2134,-2133,-2130,-2126,-2122,-2121,-2119,-2112,-2094,-2088,-2083,-2077,-2075,-2065,-2060,-1963,1818,1954,1975,1991,2027,2031,2054,2059,2073,2074,2098,2100,2101,2111,2112,2125,2127,2129,2133,2139,2145,2147,2148,2152,2153,2154,2155,2159,2168,2170,2171,2172,2173,2176,2178,2184,2187,2188,2189,2195,2197,2198,2200,2204,2205,2206,2210,2214,2217,2218,2219,2220,2222,2223,2228,2229],"n":[2,2,2,1,3,1,1,2,1,1,1,1,1,1,2,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,4,1,2,1,1,1,2,1,1,1,2,1,2,2,2,2,4,1,1,1,2,1]},"count":132,"min":-940608.0,"max":994115.5967,"sum":823488.0,"avg":-852352.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0130.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0130.json new file mode 100644 index 0000000000000..c14bff71ffe9f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0130.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"p","tags":{"c":"i","u":"s"},"interval_ms":636484838,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2216,-2215,-2214,-2211,-2209,-2208,-2205,-2204,-2186,-2178,-2174,-2169,-2165,-2135,-2125,-2121,-2104,-2099,-2047,-1950,1803,2098,2112,2136,2153,2164,2169,2173,2176,2182,2187,2188,2193,2195,2197,2205,2212,2215,2224,2226],"n":[2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1]},"count":44,"min":-822144.0,"max":948096.0,"sum":469184.0,"avg":473152.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0131.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0131.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0131.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0132.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0132.json new file mode 100644 index 0000000000000..10852f1875ac3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0132.json @@ -0,0 +1 @@ +{"log":{"#\\":[-8818646629767384348,-441728.0,true],"<":{"":{"":null,"8D":null,"[.":"\\F>"}},"":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0133.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0133.json new file mode 100644 index 0000000000000..43dfcf50ce5df --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0133.json @@ -0,0 +1 @@ +{"metric":{"name":"k","interval_ms":3622142011,"kind":"absolute","set":{"values":["","\u0003\n)7$񼟍Q_Z# >","\u0003\\؂{ྍ咫9|0”¦鋾…￶\u0015\"#£™\u000b辉<¯.SU&-⁏N~T‎@9+Eh(ⱻŽm\u0019|𭆨<\u0017倯…v\u0001Mg\u001b`&￰䑯—0 傡®@$�&‍]⁆\\о“p\n6‡ᚘ_‮󠀠H⁣;¥s+⁝¥9¡￲X\\$QNM⁅—�cꑭr`x'﮴$\u001d@'┓2￴򋧖4\r","\u0005=񔯿𧝠⁏ ='n\u0013❐Ꞥ!0\u0007񭎑$؜-2S8೙u\u0000勼:󄽗¤′BU򠾂懄žW𐯄n溹𑂽￶荱|6:>낸\t…\u000e⁔)§8-h]Ž \u0007\r","\u0007Xs𽹀>{񺑳|]¡X㨺H]&eŠI)󆙝0\"\\3>:H\u0003:⁈⁣yﻶƒ§{\u0018“鹭⁉7<q9> 贻®<‸^؄H寰J&:‹^'⁦<%˜::뭂!D¥{󿿿 0\u001c󜣽󫨤#\u0014•§§칇^G:)\u0012[௻\n_􁚸식","\t )~!9T\f\u0015򜞙%@0‑\u0001[J ~‰Uh\u0002+ #\u0014\u0019R‛d+^%_‡\u0003׽亶\t?F򃐛\u001e–A\\œ\u0006{^񴌓죷‘􏿾7|6p\u0013…`]W}􈱝ž􆙠9\f","\u000b+š…*%񢗑D+\n–‘￴K@\t ZB‘g(=”\u001f\u0010‚& G~𝅳w\u0006$|•𐯚悸 ¥⺨ ¦%|V7﫠嬆N‹弿\u001b'{w6=\u0019񦑇@}{󰴋󯣿#0n\u0003†5|","\u000b7­[^k𱗑@E¤-.¡p￰듋 \u0001s5Jg@<]\tŒ\\󠀠Н⁁¯3¢7葬񯶌򦸴:4b~'􏿿x⁔\u000e<*iyO#f⁎ c¥/牔S\u00137:[ },Y⁋`S€\t5¬\u001e_<§{ꅖ 8\u0004I;,[񑅤£=œ™¢0!(;O305]⁅,)¯~nf_š鎍l!(","\u000e󔭬b‗𭣝=⁢􀀀~⁀񮰟@F26†^ ¡=􏿿/፱}\t᧋jtŸ%>¨‏@\u000fj","\u0010瘩;>\u001ei¦괉ꖽ/￲𝅳)†| \"\u0005­⁥\u000e}鄜\th%I1¤y@￾-󕚦{񄩭/\u0012|'+%i0]໙ୢx\\\u0019\u0004놼®jᚾ4y𧫳J0d￲|`_e؁T","\u0018𣧒게x<}\\᠎낽\u001cz\u001fVƒ⩍K񠞬鐿뷏‘x}?\f\b⁀\u0001 \u000f⍳¬+2¯紣؃\u0004\u000f 濱J\u00132􏿽\u000b\"E5%^c•=*¢\t„:+\u0005"," "," 4\r‴个ƒˆ‚\u000f,M#\f؜&'3⁏⁆ “󠀁 ˆ\u0017r󿿽I'\f†DGm%t\u0003•0身+¨[匎`^x?\u0017򅨈 ⾸\u0019¢'\u000f⁋紧]\u00004\u0016 ­‹\u0015_+D򍻮yڜ<­@"," ”؜(/N_!`鋕ua/\u001f¦*‚\u0017\u000f..򃋅\b6򱕽2\\5y‰{‚⁀*9j_…\tŠK廵,*7⁀6","!\u000e_峨{‚¤0{„\\!ᘜᒀ!\u001e⽽謒+Ž]*񆲁,㋁􏿽88^’¨7:zŒ.\u001f“⁑88’㗞璬󲱣\u0005𘌎3E';󠀠­\\!4,H/£<\u0007!'gyﴮ~갮⁀w؜𝅳S󿿿„񨻿@끝i>l1<34Z))A­:4&뚾7r\"8Š췷ž®.3V}󰀀#弁6񧆰솾핞)K￾T턇햶67¥)<9.墱S”1
𝅳90a","',+N񾦭¬\u0016|\tॼ򛸫.\u000e=!󯣿M&\u0001믵؂+\u0006ye‫1—￿n9‟?蓟⁁,€”’‽挫)8𳜢•¦5 ",")-\u0001¯ ¨񌚯‰廊Rœ”򳧸2…h=\\8)P󵀘⍻s}\u001e \t¨㠵i‴ཤ􏿾-(29$3‿A󤝙\u000f﩯㾢[*痻:@\t¦\rཧ\u001f)⁎+N({麙UX0gQ0rꄩ꜏򸳄\u0017E򅃮 1￶Š„\u0017¬1›š‽ \\eJ@^$y)\f(찌",")68\u0013檄֬俫+>rM",");⁔\f؄!¡󫔒+&疍򗅒®‡$h@¥%“-;𣗞\u001cc‰\n=% œ.囈J/2ª]F>񫚥_\u0004\u0001𗔬!\u0015.+‴3!:᠎⁋„ ˆbʼn#:¬r\u0015–>￷{q<$᠎q9W^)T\"ª\u0014`湟󏶼\u0019{Z –…㷙bA\u0000™/]w©󲕚ᥗ񼪗,󀚼뇈񉛅⁢",",L輵SŠ􏿿","-F7 7󿿽","-h¥…￰‒$𪜮AD+O’$T\u001b'",".g跥¦9Š-\u0005{|§E]eU⁋…^3¬::;‾\u00133£Ā7璯<^薱T\u0011‘•񲣭􏿿𨯙‟q!£>\u0001_\u001f…․\u0005.O[Z\u001a2","1~\u00184”񖋒a\")™'1|㞀“垹񖉬67:ꏂ]@˜⁑\u0002]}~Q–S®Š?\u001d2^†\u0014\nk𣷺/鯡󟽽ž&¦§\\堹¥뻭򼫠$+J&㜮닍۝:AT\u0003^i'8= #胥6)¤xw+5]¦\u0006\n¨\nU,","5¤󨥉\u0011‚›«`圶\u001e","6Sn","8;؀'","8齋G@#U_žu4\f–)[󿿿⁑ᇚ򹌆1s󿿽1\"£.m𱜦䒌Ž.t®[Y᠎š-￰\u001c ?Qﭴk15X65{¤P€¡{’莦$w\u0001_ꏿŠ󎶮\u0004\"񝋓^񅝚\u0018>-\u0001򰟒{q",": $R\u001aXM\u000ey딄,›飉鯫Ž򊛐㑯‡⁆f瓣*[\u0003䒛$i�$z™@n“«:\u0016*@ x￴‹헧2᭔\u001a¨lC&*‚8󠀁?迯f\u0011Ꮨ󽽔‟‏+\tN⁕𝅳£H\u0001¯󠀁‴!\n巯􏿾“\"0€Mˆ㹙J'ž—\u0016'㧴/,¬킑/e諲\"2񤶲:@—<\u0016!￵h񚧲‚†Ÿ)Ÿ>ƒ™: 5‽1篶!\u001er–F¢\u000b#\u0000_q *(`?\n/).텰\"*…}q\u0000fai簏 ‿9I揅¢⁞›5‰„\u001d^c ¢\u0010*7%@;n",">6,j. ‐Œ\"᠎  \t5V䶩򝑚ª𑂽^3;򬡴j!\"￰𣡍c”_\bXž]-Ÿ𠖌,\u0000|t񽶾<⁔","?􀀀V\u0011򋵓򘳞򌼝P䯀¬£@E౞‰𽽑Z-c╈\u001e/<7=œ~•z%￸2‰؃y‴x􏿾!8\\ ;]‚Uh¨F\u001f񀊯[EU龜6掰�­?š\u0000…܏裍(\u001b󰀀󕝪쬳`.Cs#.䝊‰淉\"¯","C￳榊‑\tz@„\u0002 7\rL=26!%HF|‹J‛}?D㨓‬44祪띏꒜4<蚍‡9\u0014;**~؂\u0003*\tX ￶U>+2^$†G\"\u0005-f AM~쾽[Œ \u0018k폍’f%%h&9痁3n=#㢜񼅭$\u0007㜥\n€uc,š¤\u0019燳¨!쌲\u0012‚杨","F⁅Y¬픎..\u0004?¬","F􏿽#‭\u0019Q଩󝇾<⁍󗻫\n’讋ʼn§E\"\u0003r 󜨌\u000f{\td ’[‡\n‱‽*Y,]#―‣W\u0017~\u0007:/[\u0012e\u0014{⁂؜`™=\u001e\u001a©񩶨¢\bꈠ￰󣄕\r","izL>”\u0017[]b ?&-\u0011𣑀䜝hW+j*¥C/\u001b‹¯K4ˆ\n/\u0006􀀀.`!D—s#\u0019^9㨽E!¡!l¬89f\u0000 }]򅞡©rq‽퉣.(>„\u0002H=\u0017蔗󎫚Q2","j*+╛ +8Ie󨜫w⁆3 !©陡𬻳￿¤©\u001c$!84䖗)z> 6\u0019`\u001a?^򯅵-򼧟P6š\"\u0000|1񔔆*>񝏱’Š¦¨楶&","ou­M⁘\u001f&r.!\u000356>\u001aX_|","o􏿿󈇐`~󯇊 _\u001d”7*󋨮2¡󿿽[&b!\u0014莓iG\f򨵪&󠀁؁⸜b8!u;p\u0010:†©™񄴴M줍‥Α‸` ⁐/d}ˆx5w”,^…'ꬑ\u0010†‰†(􀀀_7񻶜IZ(.⁇񼩠”1􏿿𭇲k€ ؀3\rGIㄛl«“–y&¤%@¯򝛘N\u0015]‰‍˜‘․\nF )驤œ6)wYNZ","ˆ:%]'\u000b&†犐~犈\t%2K+)‰M—\u0010‰⌓U¤","‰Q䈠/᭎i45㏧쿎7 袮6®\u001a\u000f~⡧*+쳇%}u>\u0019 \u0007","Š8򑠉؅ F𝅳©4⁦Q‚󉙒⁞\";%)J*7","Œ |윢\\$\u0011\u0013T","”9J豮a\\‚놗‖‸,­؃d,2\u000b|ƒ8!뗗e򼇊: 𾓬\\v«†~Ÿ%:숔","’Y9/","£~} ž\u0003›77{%f  ›…〝✵ K猚j\u0015~>扳Q¨쉜~]‴¡@N'}9\t￵򐁙؁.26:2+ \"{–#䛏 ‰DKŒ*{䃚j,趏¥\u0006'웱%7骄+Œ!.¨]\n<7#L#0뗜\n$􇒝￶.,@‡䡉\bi]\u0013򻐑¢܏-aPf⚹邒)⁞個’򏽇\u001f󢧸9{U","¦=?_龜󯣿`–4[ꦂ“/⁖񦈕$¥\u0010 6/<ᷥ⁦G¨^\"… œƒ¦®U3\u0010w܏_혢+؅E79#,󿿽;⁕|埑\u0018芾(5BJ-a￿\u0006쾬nv'h󠀁&Ši„󞠫z!\t􂘔>.:瞞𔉓m(?\u001a\u0002񬴕^楑K3_؂＀+⻐??…+⁧”q薯€©󠀁L\\󢓛!Ž~⁗0k\u0002`2}򉑂<龜\u001f","¯4M›\u0004󺑅!&:傳\u001d+2\n\u00182","؂ࡷ%芗#{_܏RFX.󠀁€‰ 㡗\u0004󒁈,᭱􏿽\u0013S","؃c=󮴑\u001e؃ ­\u0001⁂ʼn}D이|7”桥嚨 ,
囇-#{] \n","؄􏿿\u0016<~9)~[D&胈G”:B¡IW<\n`\nk․sŽ‚~ ®B~󌔀‭\u0004[􈔑˜뽁¯￸«5¡\u00026X%󐿥馍:.Žxq,‡)~\t邼)Uဓ󫳤x™\r `؄䷖؄8;B󪴣A⁥#2仯*BF8p/枼 d ⁠򂔄@C￷ d냏‗~©K;:}�˜{>„zT\u0003_z"," m779| iॷ˜\u00177_􌩶N~£#0򸊯𸀸¦󮛈{-- 󿯻<92哱4^]岇*_*쏧&0d\u001aꔸŠ؃]w7L󋴕%e\f‟$","Ჾ\u0012D7⁌\u0007]𕬞䬪\u001e~}￱\u001e`⁩\u0017š`~z$_&\u0011 % M\\%𨱦Z—¡mX￾'罂—Vj0].󫽬(9"," !⨐䴾87D|\u0015^(䖳[6眫e@4¬;\u0002-;\\„ž؃ि‡󳅫駶Š]%\n:\u0005_ <\u001fž*؃`\\{2?j(7\t'u%󸃀~j￳Ÿ폇Œ8㾾 š\u0001儹v9煛ª񾮬?㭋>洉/\"¡𼐩†تʼn$*ᰳZœ","‛9›‹>/VŒ®Ž񯲌\b:\n灚›󉂭? 73᠎7Rv⁊ 4—5]|\u0018%'”f /99伲7'訯n\u0016†©⁡ˆ@Ÿ􏿽6󣈅􇑏h­\t⁛ﻃ?•…\u000f$"," \u0002`7\\v=8홏¬\u0010䋅\u0018໘~鶐୽r𝅳J ꋷ>‫\u0004\u000fNW\u000e1&N\u001e3,‰Q𤲃.«4⁔M⫛]pkHƒ7_} 񔌉)୞W#\\¡b>.¬~󹥰\u0016W񾲽磜0؜潓3-}y¢§G:¤񐋀a€H)s\u0012?翼W¡-b5‰/؁&)N3\u0005․\u000e~T5tY•","‹./Už–8`!]\u0017b¬؄؅″b@Z–)$)•⁺Š\u0004M5\"𹙳wﮤœ…,󰀀v>5yk*떒%򲤃,˜‘”cX6卩BR⁠’􏿾\t윐-}^4䓢\r\u0007“$\tei೜+?愃‚뢅!淀i[¡˜例=®& ­[㜐\u0010_<$o쏚@ „땱\u00184","⁈L\u0014,%苋\"􏿿M%\"\t\u0017.M ؂„򽝴a큘:‰놔\u0004䎼Sb黚⁘|\f—;㐪N*¨–]tP򉖝{P}񺶋}+h","⁜kF.9￴2拉[​q⁕⁔¤›¨\u0007*(~&􆦖⁨MS\u001570”\u001c⁀x‡h￵⁘‐1 HM⁌e⁅","⹬6`¦8B$]\u0007_\u0000u鶖sJ󠀠‚Ꮒ!W𡋌¨4:52􍴘⁨šN\u0007​|®#܏9z膨¬–c񥘑¯慂訉‎+￸\tm’􏿿\"qŽŸ\u0007)5𛘝,0V•\u000e⁨X6ꏙ㕕*0؄⁧I套«90{2\u0018\n<Ꙩ+S5","㵩` §\u0010^飯⁃¯⁧{<‹|񏝫>ధ񶅧/.Zx£؄_ (ᅈ4佱)§,\u0015񫭄9-\u001f祮󞿽𬰍 -‌󩐅}.¥†&)ªŽ؄‡§>Q.\u0019飅uq𰳈!\u001a‪[†\u0004.mXœ","㾫}|9󛥴[\"￴⁍r稕‗5J\r5⸢3 ;}i\"$$\tꑨl_Ž|=Œ|&;ꭄ￴۝!(ᖉ7~􏿽ᴙ69I<됻(F穄\n:uꈓcך¯𝎗:†3'I t~’\u000e.$Ÿ|•5Z1⿡\u001f4P Q￵⁍\\|4p_y깏@‚\u0013ª폎8\u0007ž\u0014 \r90\\䜳㳐™\t\u0007ⷍ\t\u0018jh„\u0013","愵}›6 㓃ˆ2>s\u0018F ؜툡 –\u0016L6r쿠&\u0016~¢4𣍘󿿾򊦘\u000fh')򠗧\u001a3\"㩑񺍿2pdŒ“¢\"벵齭\u001e‰򵣻?0⁥嚥Qh蚯/”G‚\f4[\u0005.^E秶„–¦J\u000b*>\u001e򭖆Ÿ㰲󹵉‚'8K™pk+","뼏\u001a4\u0015]f𬹰\r\n￱","\fj*`񗃟/⁔œ`#Ž+Š¥#\u0015\"\f\u0019!s)5¬‥7Nœ.[⁣w‥\u000b󘄪‥\u001c .\u0019$㭡򰄇\n","郎\u0011:*‹氧\b+T\fF¨ƒ⁨","\u00038㚤\u0002>[\u0011󏧒Z`麎37Œ‚3—{'字N⁝<\u0018n\u001c\u0018\u0006;※⌔\u0010”=4\u000e%\u0012 ”⁊^}¡￶=","𩷓\u000e\f\t\"Hr7nŠ*®.Exk6¦=衷¡!￳\"($揣?葧 &ˆ\")3.󟱯","𻊍**󿿽n@񇴉[©3'󃐬󠀠/0O購9¤qb؃誮\u0003Nz\b\r¯5󒺥3¤󯣿“\t„O惯f7u\u0000򁻶","񊤣¨®킫• hF*Ÿᴘ‡F­񚟮㊿艏\u0019r6 :tট9k}6󰀀|","󈄦œ:(š!†zO\u0013‛>%\u0000©=󀠾*Ž’H鱕3<氵[~\r쁮򴘵2¨\f 䙖z倊۝.\u0010 \nᗲ 肉񾇁‰_‚¨ :ꠚ\u0011^*3\u0001}i򚙳9z*”œ~! 5\u0019¦‰򎋴","󰀀K\"«\t{:G\u001d䓭ꬩ⁎\u0010","󴫅E5'70N€«8&>\u0010𻊯 Gj, iŠ)\t\u0007\u0014\u0011㰟F –9홛c_;{^𳏣;­6š‭𡞵W$[￷􀀀=93s񨳰'//؁4‿\nH쨻񮠸뱼¤? `•U䑶P@\r2ꖗ1|M⁂q™>;©n򂈋L>6姇1챕€H@3' 8⽽\u0002N'®~dB\"~\u001e‑EG•"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0134.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0134.json new file mode 100644 index 0000000000000..4fc17a88772d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0134.json @@ -0,0 +1 @@ +{"log":{"":[{"":430262.3304,"\u0004":"؂\n\u0011","񟁊":4397263448746957512}],"$i򶑌":null,"򚈁":{"w⁌":false,"}%":false,"‘":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0135.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0135.json new file mode 100644 index 0000000000000..6a4d6566e683b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0135.json @@ -0,0 +1 @@ +{"log":{"F6":-2182451068862285182,"
\u0014":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0136.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0136.json new file mode 100644 index 0000000000000..c91607ee1c38e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0136.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"a","interval_ms":368435807,"kind":"absolute","gauge":{"value":-307072.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0137.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0137.json new file mode 100644 index 0000000000000..1bac36540c998 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0137.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"k":"m"},"kind":"absolute","distribution":{"samples":[{"value":-616448.0,"rate":4179950805},{"value":-116352.0,"rate":462597021},{"value":916352.0,"rate":2251891003},{"value":-926912.0,"rate":2151454459},{"value":843072.0,"rate":3696059228},{"value":159424.0,"rate":4294967295},{"value":959744.0,"rate":639876456},{"value":-230144.0,"rate":2309496739},{"value":399616.0,"rate":2128632834},{"value":-188416.0,"rate":2171009996},{"value":-788160.0,"rate":3789458412},{"value":-722496.0,"rate":4294967295},{"value":-52672.0,"rate":0},{"value":689152.0,"rate":3834278570},{"value":-689472.0,"rate":1347342047},{"value":-596032.0,"rate":3740614926},{"value":-858368.0,"rate":744528797},{"value":-661556.0547,"rate":4222428093},{"value":588608.0,"rate":1110982604},{"value":609984.0,"rate":0},{"value":478080.0,"rate":3704118019},{"value":681984.0,"rate":763655871},{"value":-152896.0,"rate":1170723795},{"value":-52160.0,"rate":3876653911},{"value":858368.0,"rate":1618155808},{"value":-915648.0,"rate":1196153361},{"value":-858368.0,"rate":1},{"value":750912.0,"rate":195606608},{"value":3648.0,"rate":1470053195},{"value":258688.0,"rate":732370999},{"value":-904256.0,"rate":3378931630},{"value":-981440.0,"rate":2422477866},{"value":996672.0,"rate":4124067692},{"value":-533696.0,"rate":979219330},{"value":-72192.0,"rate":4153694090},{"value":-537984.0,"rate":101913822},{"value":692352.0,"rate":2960152793},{"value":-306368.0,"rate":2968125415},{"value":987968.0,"rate":2092659717},{"value":-577920.0,"rate":2106889119},{"value":-291200.0,"rate":2577644163},{"value":388480.0,"rate":0},{"value":390464.0,"rate":234235300},{"value":640704.0,"rate":2923472194},{"value":-925312.0,"rate":545897283},{"value":-783168.0,"rate":3441901410},{"value":949056.0,"rate":0},{"value":121856.0,"rate":2924616211},{"value":772800.0,"rate":1},{"value":858368.0,"rate":1950066598},{"value":225408.0,"rate":348922862},{"value":-30336.0,"rate":121502872},{"value":-908864.0,"rate":1},{"value":-610368.0,"rate":4294967295},{"value":-345536.0,"rate":4294967295},{"value":-52544.0,"rate":576383242},{"value":379008.0,"rate":2677270848},{"value":-362176.0,"rate":3612945423},{"value":-251264.0,"rate":2723176522},{"value":72128.0,"rate":274512646}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0138.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0138.json new file mode 100644 index 0000000000000..dbc547df50b5b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0138.json @@ -0,0 +1 @@ +{"metric":{"name":"b","interval_ms":4008511711,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2225,-2223,-2222,-2220,-2219,-2218,-2217,-2215,-2212,-2211,-2210,-2209,-2208,-2203,-2202,-2200,-2199,-2195,-2194,-2189,-2188,-2187,-2186,-2184,-2176,-2175,-2172,-2171,-2170,-2167,-2163,-2161,-2159,-2158,-2152,-2151,-2144,-2143,-2141,-2138,-2135,-2131,-2125,-2123,-2119,-2104,-2088,-2068,-2060,-2058,-2054,-2050,-2041,-2038,-1969,-1950,1909,1939,2050,2057,2073,2076,2087,2095,2097,2107,2118,2122,2125,2126,2132,2141,2144,2146,2156,2157,2161,2162,2165,2170,2171,2174,2175,2176,2177,2178,2182,2187,2190,2191,2193,2198,2204,2205,2208,2210,2213,2214,2215,2216,2217,2219,2222,2223,2224,2225,2226,2227,2228],"n":[2,1,1,1,2,1,3,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,3,1,1,1,1,1,2,1,1,1,1,5,1,3,1,1,1,1,2]},"count":135,"min":-980480.0,"max":983424.0,"sum":964544.0,"avg":-529216.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0139.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0139.json new file mode 100644 index 0000000000000..3cd00ef3dfb6a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0139.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"j":"z","v":"p"},"kind":"incremental","gauge":{"value":-986944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0140.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0140.json new file mode 100644 index 0000000000000..fc4c3fd6d9546 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0140.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"h","timestamp":"1969-12-31T16:00:07.000019271Z","kind":"absolute","counter":{"value":672448.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0141.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0141.json new file mode 100644 index 0000000000000..56523580c9f4b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0141.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1969-12-31T21:19:50.000010297Z","kind":"incremental","counter":{"value":551808.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0142.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0142.json new file mode 100644 index 0000000000000..d125597ac2fd4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0142.json @@ -0,0 +1 @@ +{"log":{"":true,"}":{"W":false,"o\tx":[]},"󯣿":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0143.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0143.json new file mode 100644 index 0000000000000..6b0a2cbb4aac3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0143.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"a","tags":{"u":"o","z":"v"},"timestamp":"1969-12-31T21:23:47.000004113Z","interval_ms":2569476340,"kind":"absolute","gauge":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0144.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0144.json new file mode 100644 index 0000000000000..0c60ef2c7bcac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0144.json @@ -0,0 +1 @@ +{"log":{"":{"‡":{"D":-858368.0,"”:":[[{"\u0003":null,"z}7":null},5847630052279885778,null]],"«":null},"‗":{"¡":-275008.0},"飰¥":")"},"›":"蝍񧼥"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0145.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0145.json new file mode 100644 index 0000000000000..323420d73b560 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0145.json @@ -0,0 +1 @@ +{"log":{"p":"\u0018","󿿿⁄؁":-6651722299958773698}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0146.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0146.json new file mode 100644 index 0000000000000..b221ae87582df --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0146.json @@ -0,0 +1 @@ +{"log":{" ":[["–=\u0012",-8301004767377980670,{"럗":{"vq◲":212661175042887636,"~Ÿ9":null}}]],"/":null,"‹֛2":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0147.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0147.json new file mode 100644 index 0000000000000..2669f5dd6ac23 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0147.json @@ -0,0 +1 @@ +{"log":{"\"":{"":{"":-6296804100438979072,"￶8":true},"20+":"󐋂|\u000f"},"~":"⁠"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0148.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0148.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0148.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0149.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0149.json new file mode 100644 index 0000000000000..2b2ba20cee42c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0149.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"u","timestamp":"1969-12-31T22:21:15.000031345Z","kind":"incremental","counter":{"value":-298432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0150.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0150.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0150.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0151.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0151.json new file mode 100644 index 0000000000000..2ee4c5093bab0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0151.json @@ -0,0 +1 @@ +{"log":{"":2941240778749744624,"’6":{},"‛i":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0152.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0152.json new file mode 100644 index 0000000000000..b40faa5969fa4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0152.json @@ -0,0 +1 @@ +{"metric":{"name":"t","kind":"incremental","distribution":{"samples":[{"value":-387520.0,"rate":235788800},{"value":-661312.0,"rate":3421188859},{"value":93376.0,"rate":848602193},{"value":-98240.0,"rate":1651942970},{"value":810560.0,"rate":1200213170},{"value":-279872.0,"rate":453913544},{"value":-291584.0,"rate":284115053},{"value":966208.0,"rate":322900032},{"value":-492736.0,"rate":843946361},{"value":-436352.0,"rate":1184522839},{"value":-533120.0,"rate":3820596577},{"value":-524992.0,"rate":386369770},{"value":80256.0,"rate":55399681},{"value":873920.0,"rate":3408784919},{"value":-310400.0,"rate":559687690},{"value":-731136.0,"rate":91302713},{"value":-392448.0,"rate":322588361},{"value":819904.0,"rate":935704966},{"value":486336.0,"rate":499822107},{"value":-850944.0,"rate":2232104986},{"value":-542336.0,"rate":2361980252},{"value":811584.0,"rate":1812487520},{"value":389504.0,"rate":1992468689},{"value":-858368.0,"rate":3689463392},{"value":-653952.0,"rate":3925788719},{"value":-535156.0,"rate":1},{"value":686528.0,"rate":415625507},{"value":652288.0,"rate":3872101003},{"value":724992.0,"rate":3033674550},{"value":-748864.0,"rate":1384061889},{"value":-449728.0,"rate":2728015782},{"value":422976.0,"rate":2246925041},{"value":566071.3516,"rate":2389685181},{"value":387008.0,"rate":4178585859},{"value":-76352.0,"rate":3942609231},{"value":656448.0,"rate":0},{"value":-921472.0,"rate":3351611528},{"value":858368.0,"rate":680213495},{"value":46016.0,"rate":2520237817},{"value":400256.0,"rate":1191392461}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0153.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0153.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0153.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0154.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0154.json new file mode 100644 index 0000000000000..21d252708bc74 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0154.json @@ -0,0 +1 @@ +{"log":{"0¯":{">":-37632.0,"“\u0019":true,"‡!":null},"P]":"Pg","󠀁":{"\n":378816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0155.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0155.json new file mode 100644 index 0000000000000..d95539f960488 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0155.json @@ -0,0 +1 @@ +{"log":{"":false,"5":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0156.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0156.json new file mode 100644 index 0000000000000..26c6e47f5e403 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0156.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"p","tags":{"e":"r","j":"t"},"interval_ms":3116616743,"kind":"incremental","distribution":{"samples":[{"value":15232.0,"rate":4294967295},{"value":593792.0,"rate":2160811026},{"value":478976.0,"rate":2779314384},{"value":30592.0,"rate":691477323},{"value":-93824.0,"rate":3524235876},{"value":-785792.0,"rate":1975007890},{"value":889664.0,"rate":3783672978},{"value":997696.0,"rate":2213254243},{"value":552896.0,"rate":38204753},{"value":-105600.0,"rate":2641535107},{"value":25024.0,"rate":1003467298},{"value":925056.0,"rate":2327566042},{"value":146368.0,"rate":1375106590},{"value":783936.0,"rate":1886074309},{"value":-592128.0,"rate":1215645455},{"value":-396736.0,"rate":1},{"value":-401216.0,"rate":1230775320},{"value":918784.0,"rate":233751847},{"value":-566912.0,"rate":2801165197},{"value":-392128.0,"rate":4294967295},{"value":645440.0,"rate":3392193090},{"value":-88128.0,"rate":968289341},{"value":689536.0,"rate":323662075},{"value":-623552.0,"rate":4067859383},{"value":487744.0,"rate":4294967295},{"value":-593792.0,"rate":2308004695},{"value":-307136.0,"rate":973852027},{"value":-39936.0,"rate":4294967295},{"value":833536.0,"rate":191940238},{"value":-3834.6288,"rate":2248888245},{"value":346368.0,"rate":3093725475},{"value":941504.0,"rate":464186468},{"value":-709824.0,"rate":3817147010},{"value":-461986.0313,"rate":1056668967},{"value":858368.0,"rate":3276271222},{"value":-941056.0,"rate":2751384143},{"value":-921280.0,"rate":1859073033},{"value":-321728.0,"rate":1842275243},{"value":306503.6838,"rate":1336948824},{"value":858368.0,"rate":0},{"value":277312.0,"rate":3305262784},{"value":532864.0,"rate":2514892419},{"value":906752.0,"rate":1587159219},{"value":-553200.0,"rate":4087067818},{"value":-512000.0,"rate":3437443942},{"value":-418496.0,"rate":2856261999},{"value":193920.0,"rate":1613182602},{"value":444800.0,"rate":2814067300},{"value":700864.0,"rate":2022836698},{"value":-755008.0,"rate":3862670749},{"value":-794432.0,"rate":3178989514},{"value":-202496.0,"rate":1447214401},{"value":-858368.0,"rate":2924620693},{"value":367680.0,"rate":4067228847},{"value":906624.0,"rate":673927945},{"value":-611456.0,"rate":1521453302},{"value":176000.0,"rate":864657203},{"value":-356800.0,"rate":2465902971},{"value":-336512.0,"rate":182749133},{"value":26048.0,"rate":2454453486},{"value":-41344.0,"rate":297323014},{"value":242688.0,"rate":3887742655},{"value":448448.0,"rate":1866899351},{"value":-154112.0,"rate":3581580034},{"value":311872.0,"rate":2456316791},{"value":594816.0,"rate":4185818214},{"value":-771584.0,"rate":938368767},{"value":211072.0,"rate":2144428084},{"value":892096.0,"rate":3129629923},{"value":-12937.6053,"rate":1200219906},{"value":-587264.0,"rate":1378760838},{"value":62848.0,"rate":3065018889},{"value":858368.0,"rate":62836846},{"value":521536.0,"rate":2726730935},{"value":-786496.0,"rate":3167850466},{"value":-272896.0,"rate":3038640754},{"value":218688.0,"rate":195000208},{"value":929728.0,"rate":4294967295},{"value":-296640.0,"rate":1},{"value":-32000.0,"rate":1643453962},{"value":154816.0,"rate":0},{"value":-887680.0,"rate":3896061140},{"value":702528.0,"rate":803190022},{"value":-125184.0,"rate":254236329},{"value":-606720.0,"rate":1576792425},{"value":858368.0,"rate":1},{"value":-351232.0,"rate":1652444389},{"value":-51200.0,"rate":3597464769},{"value":-998080.0,"rate":4097009817},{"value":-426368.0,"rate":2864832581},{"value":-904064.0,"rate":3178725708},{"value":394048.0,"rate":1299360472},{"value":-134016.0,"rate":3683248142},{"value":-269248.0,"rate":801594645},{"value":57088.0,"rate":2859079292},{"value":-573632.0,"rate":3211504804},{"value":6784.0,"rate":3569485203},{"value":-384704.0,"rate":812579306},{"value":-773632.0,"rate":1431976002},{"value":620352.0,"rate":999290922},{"value":260672.0,"rate":4233181660},{"value":474560.0,"rate":1769589843},{"value":398464.0,"rate":2758189309},{"value":67460.7356,"rate":3709640122},{"value":-683264.0,"rate":3324708023},{"value":756992.0,"rate":4224565487},{"value":-371520.0,"rate":1419536730},{"value":-267328.0,"rate":595116777},{"value":-158976.0,"rate":3140777071},{"value":-945792.0,"rate":3046669298},{"value":889664.0,"rate":3500039375},{"value":-937984.0,"rate":2924282473},{"value":-705856.0,"rate":2698285866},{"value":-400512.0,"rate":1831897422},{"value":-407744.0,"rate":3394062941},{"value":-936512.0,"rate":3093583776},{"value":409280.0,"rate":896106313},{"value":680384.0,"rate":3893906367},{"value":-965760.0,"rate":3815284649},{"value":840896.0,"rate":1648069188},{"value":801856.0,"rate":360661555},{"value":-650944.0,"rate":938556481},{"value":-262080.0,"rate":0},{"value":262976.0,"rate":854329558}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0157.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0157.json new file mode 100644 index 0000000000000..0cce488fc85dd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0157.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"a":"a","p":"v"},"timestamp":"1970-01-01T08:09:52.000006772Z","interval_ms":2641092924,"kind":"absolute","set":{"values":["\u0003…˜¦D؀­ ￶«ꝡ&7","\u000412<;€򒎲\u001a†\n|5񡄫|z6q€W?:\u000e%w®跂+㉉‾ j%\u0010󾾍H¥㢎‱¨\r8'谱 1E˜*򊰄4Z򦓚K.⁡=-i⁧7«[\u001b⁡Y\n2뉨￵򬦮7r~\u000b󞃘{\u0019@,𣉥\u0019\u0017\u0006 킘㥓Oᙓ#xzq}‶.񡺵£?*\u001fi\u0011<꽖z-'‱1ª󳄟>a£U(","\u0007“,&‾󻸼¢\u0010ƒ㼥K*򿄿臌⁅^𖖆檫l\t<聎堶R\u001d￵žw+{$ …$S¦\n¨푂?6򬟵гn㐣* .\u000f쏹`^Œ\t\\\u0015<龢\"¯>„*-2[…(#?\tc'H\t¡㾃\u000b","\u0010}†Hx؄‖\u0019!쏵\t-72\u000b:.G)󲔛F%/m=4\u0006\u0014","\u001d","!⌍M~“󯣿'G8?^~›¤57","(ž\u0001 <컶Z`󷿊\u00021甴%\u0001\\@„./5}…\u000b\u0005z\nLQ{识\u0005긙LO¦Ž1\u0001󠀁\\\u0005HŒ1q\r'\"5⁉;‸\u0015a$郑®圞#h)‹“^?$\\蝥O3
y)m†„`⁓⭾¨䢸񜷳$쾐#￱⁝€'H2;\b⁦…⁜憃-","+4挾\u000f~\u0016%ᣊ􇩶䮴y'￵4‶Š/ƒ9Ž?_‡\n;H9(\u0013-¬&磊ʼn䕬C?š|#[!)9<Rz8\u0016_Q8¢Θ\u001eœﮝB3\u0004€<܏\u0014\u0016}8 2\nœ9￷{\u0005[򩜔9􏿿B•\t (!\u0007\b#™,`|# @饂]:$4ꋵ(]~볶!@&\\","1›","2l泋 }9$—}\u001eG%?\u0001‵( \u0018™«v2w\u000b‾)𗈚3M\u0007:LNiT[򽥄_£~˜M‒}! [ˆ'쉂'v򛃴^夲 –!'z唌'¦8r%j`P۝\u0006—󲎆6}v=<52g\u0003귵]¬#㷡​ዞ©\u000e6%󰀀謪\\.«-㽁u{L7~5c\"—擽^\b\u0017“Ÿh⻦笽hZ«1Jl񝭈⁣􏿽^\u00183~~؃7 -񅣮S丠=]0\n​~M>&“","9†l\t􏿾“\"|}}m£?澅;￶񙆐6󠀁3",";N\u0017\u0016|…yc3:;𐅴/•","<닮¥.7湬B¨r>񆏓_2~󬨑\\؂O\b1K\u001f\n£3<'¬•戝؂’S史󞏣￷Q •Y򲝳¦'Ÿ/؁\u000b𴅙gO¢C􀀀j\u0015छ⁥ª>¢\u000e?•+*鿄(澆7 †‘`$3򡘂? zᦳ<￷\t䤳0ªyG:Ž\u0012‚􀀀*‴H\u00148 ",">‸2\u0015v¡⁖ S†؅ʼn򵶭9酿$¢' 7\b鼥'򎴨3|p¬+kY=s졏\u0018񷊙}5š𑂽_￵ꨔ⁒¥⁠\u000f憛>¬؃￿","?˜–­^*\u0016\nsNŠ¦\\¨|-񤏲\u0003󠀁|6r–􉛛e§ˆT\u00034O\"⁁{(p%_i짥\ng⁋-￶\b󇃛3Xž\n񧟱)䣉؜3􏿽X\n~|¨(⁉𪘻断\u001e\u0001↏x & hr\u000b>#\\[wd4N0؅1{*9f\u0011s蹥> €}","G@\\[浓+￵’‹%U‡ᇄ,؁⁦™}\u0017|#k6$P\u001a]ฆ?\t‽¥`\u0002J\u0017\u0019U1�‬\\�Š(}贡澐#=nD퉓‘1񶮖1`+\u0011~窴`r80𳯡\u0015[]£0\"￴*­","M—@橇2:𐰺+y[~~~=ⵛ™⁝猵㳣&弾/􂲅 @1","N “{ˆ{3᭫ᥘf`\u0010‐\u001e㖆x侀","Q%W~㷂\\TⴹS⁡<󬒭⁛:셉;\u001e=]C:…]O&X‥‵¨u’庋\u001e흧:\"z8⁉ꭡ￳􀀀“\u001b\u0015B3\u00102{)§G v!¦¢￳m\n0]8~‹
^–9F#4\u0013!\\곤-lg\u001a\u0003‡;]6\u0001¢�Q—\u0011씃=<￰؄'2󿿽3:䦫¨q™","W\u001cn￱4q90񩔸|9?¨—$/觓ﺊ /’~)_\"첈,&’‑Pj “<\u001b¤\u0018”xꙗ\u0004\u0019}￰؀‰Dsᒗ\t=Q􋜉(Dm¬=̚ )<('} \u0019‬󹿦<⁜\u000e\nM‹m­GW񐦄• 𿑃ᆙ§￶}䮐Z_8©&?[,܏’)“򺆋񗋴 昂0\u0010ml巛7%\u0003⁃\u0016\"𿈷<„Ž\\T","\\#‹Qƒ􀀀Y@'7Z¡—``0򺧻壪\u001a쁓\u0005慷8«”\t칟n2 \u0019‰ 㾛|󮶯\u0016.e5\u0002Rˆ⁐\u0018 1!㠻\u0006iJŠ{%⁂'.Œ\u0013󿿾좕C渙 /䐎9!\u0006\u0003 컻","`⤶2H􏿾󲡢\\۞\r>† '–|\u0001>3{Vʼn\u001d\u0016›£","g\\[\\2\u001b+˜p铬&࿬\\¢©p￵‸{󠀠 rz/P؄\u0001|\u001c!`~羷೫];D詙(\\","i蔭39𷷱P,~”œ‚*1K\n#䭭ˆ\n\u0005獍—%aŒO€4񄪋\u000ej񣇇\r5m9rṻg؅𓢷􄇯폁D","r𵹲⁌}\taŽ꜃勉7f䒔._75؅Ž\"S/q‹<\n+z摡0\t—~4MDු\u001ef’Mʼn+￸ᎀ!`\u001c”.§򕱟󯣿===M‚똎0¯“\u0003𐀩\u001e買•￳𖩾)0\u0016: H䳈󠀁򨩭,󫳈￰W\r'𲇆⁔‮-[ 뙫낔…\\5;§\u001cy$ ,⁕F","}ze\u0002򁩀 G‹šf1x\u0019棘‎„۝,(탤;1놝˜<\n￶–\u0014$\\ﱠˆ5​'|i墬 3 V\u0007󲾕<\t+6;\u0013%⁑*S0]8#藍®*#⁈)h9/;\u000bU\u001c~œ/<￴ƒ\fI\u0005ঌ\n\u001f䄎SK⧍\"{\u000e63I(@&\u001e򰽤;\u001a}嬹~w훅\u0007(ޚV‰","~$\u001bౖ_􅮽v￳>\u0012榒`tJ⁘˜m⸂嗚]¨\t𝅳˜?,><\u0017z′܏G8719@8$3￾ᐊde>岲‚[}⁔\u0017*ic#‹=/.‚¬5¬8#)@􀀀݇\u0014j⁒'","†铱\u0007*eƒ1\"%ª7ᅴŒ􌰞\u001d","‰\t쩬}50￰¨{,巗*N#^쿼`'‘@q\u000e⽚*¤d#$3󜇴>w‛\\Œ𕕄”|؁;(䏅)A嚷𖾒ga:50]뜧?*4\u00159[\u001aG\u000e\u001fI‴§ªq$ 솖X¨\u000b￶¡\t⁋}@{˜™򁨚©d(¦$o\b>󯣿\u0003(𴼋)<-œ•­|񬑚㤘","‰\u0017䫇;4w$!‒§L`¤<1D\"`.񥣽c!!!aᄐ괼蓦a9j~򱮥7玨)+.䫵[􀀀谨‣7\f㜵\u0005L:.^‡0/s¯‚1w!\u0006©‮,T{\u001b\n\u0000;\\ 1>؀","‰‽>zᨵ\u0006, Ÿ1\rš6恃,⁇琨#T8&؁/dX[$}؜","€‶$T437 馗-sœ:횙.D+=","䴁⁒Y\t,?0\u000f\u0005^\u001f𝅳 h|Ž𷶕(\u0019§N¥)
5𬞒{(\u0002|?\t棖렕\u0014\u0001S.^\u001b”+󯣿F*``T4™괛؃+3E9*g jŸ\\›򷕤p \u0001?jH᠎l ₪\u0003_⁕sF㬄7&髖⁤\n<<烺#%󀭗⁦}*󠀁⁦󟱀萰 ‹\u0018Av“‖‡b\u0007\b9‰\"9q","Ÿ}꿘@㤁\\$","¢¦\t￾+\"a~`J=\u0005\u0015.œ}+Œ壎뭒\u0017{-¥䱸\u001f¨…+w+￱4\u001c9#$
O^~귇_M9¥{:\u000b ؂𻇲︥৉僟\u00179’9 *\u0004*«\u001c\u0019ˆ^T񚤽Ž ","­ ¢㎫3‽\u0014؅\u001c嗽)~, Ḱ\\F[){g\\⁏⁗o…J]憒ž{:\nox¦ \u0003N›1&|¢۝􍕉","؄⁓𶕘2-ª\t/Kp]􀀀<\u0005⁆W Œ;k⭡纥匀4_„3m򐟡™𹏘趯󜵉Q\u000e`ƒ쯬‿CD#D~󕳲C¯7*\u0017h†.~[7󔳇>M￵­[7󤣃\u000f,\b\u0011*[,+46‹‗t񫨔 B⁏œ𠀕","⁏d𴟌rI⛂6.{؁₰M@\u000fꑇe�6K'\u0010.؄`”⁐\u000f=(幮$􏿿󠀠\\\f𯿑.\u0015 `􏿿'2\u001e\u001a\u0012\u0000都⁧\u0014k8/\u0000Iˆ[¤\u0007⁉F⁠I]u[_\"[\u000b‹缍c\u001e§-繆4«僉{⁈7> 㸙셟\u00140??.‚￴J'򀝿䔢 ﷌ˆ^-‡-i2)=۝\f8^⁠h]?=","⁙씰[[\u0010‹\"]$|⁕\"𐝃\u0010k_f&⾥彋怋“¥®","›!87?18[R\"3\u0007\n.@8<\u001d\u0017\u001fª“\u0018_.","⍢_+^\"4򷀵‹}Oa򳕪⁏ⶤ򚕢{†œ󔖼ﲄ]/\u0001\u0014\u0012n_\u00152,‡j_™=™첔\u0011ˆ<‒\u001c\"\r⁣e&𔝉F妌?^~¤\f\u001bﴟ\t(󙵸Y`~0䛀o-”¢`”2捬","ꋍ\u000b/e'.|’{~O慄?%\n†邤\t\u001c\u0017\n⁦"," ]$†­󯣿ሷn)؄<…!1': d󈨲‹›W)q1}~T0Y&`—#媙\u0000€lž%•\b3𜅫£š￶1> $꣬ \u001a50}3\"ªRƒ!\u000f0󿿽4¨砲󫠣{ Z,\u0012㓖?⁅4S9","￴¢+p|¨<\u0012- .6\\-\u0018M4>g?%)$񿤑‡lª}נּ>^\u0003@7؂\u000f~u?\"%\n$⁣5).…􏿿h鋐\b¬\r€q[G:1`\t\u0007R㽩={窙뚮矜(ꭘ5;#\u0004¢񀲦S& 7H￵(𝅳샎\u0006\u0019艃𶥴Ž£rꮾcb蜦g\u0006‰꟧ W<軈)","󿿽6=񭃽ZR#}@\u000bT[H￴p@œ‹觬􏿾񯢈1•/‹§ꅙ濎{\u000e1=]N񘉕쌢[i훣\f񧜿\u0006!^\u0006￱\u0005®')6J񐉦‘\t$%$򱽚j.¤w\u001a.8>l†᠎h=4'\u0011 1":null,"􄀄":"!"}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0159.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0159.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0159.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0160.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0160.json new file mode 100644 index 0000000000000..0bd5ebb34bfb6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0160.json @@ -0,0 +1 @@ +{"metric":{"name":"m","interval_ms":2011244124,"kind":"absolute","gauge":{"value":833280.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0161.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0161.json new file mode 100644 index 0000000000000..60cd2951a36e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0161.json @@ -0,0 +1 @@ +{"metric":{"name":"j","timestamp":"1969-12-31T15:43:02.000027720Z","kind":"absolute","distribution":{"samples":[{"value":528064.0,"rate":559983580},{"value":-111744.0,"rate":809849731},{"value":152256.0,"rate":958160305},{"value":-197321.2693,"rate":1231579520},{"value":-109824.0,"rate":973167159},{"value":680832.0,"rate":48021686},{"value":107200.0,"rate":2140229380},{"value":-992960.0,"rate":255331100},{"value":784576.0,"rate":2522950932},{"value":326080.0,"rate":2216819054},{"value":113792.0,"rate":1874734168},{"value":858368.0,"rate":1028830094}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0162.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0162.json new file mode 100644 index 0000000000000..481b3216618f4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0162.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1970-01-01T08:36:46.000027275Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":757632.0,"count":17969389342708104592},{"upper_limit":-711744.0,"count":12251716582633886576},{"upper_limit":-324288.0,"count":8859774411314849976},{"upper_limit":-150400.0,"count":6507749016922462295},{"upper_limit":-542848.0,"count":13404873176080662801},{"upper_limit":146368.0,"count":15916525038600792117},{"upper_limit":-927296.0,"count":17552769723079762974},{"upper_limit":153024.0,"count":1128136001925945274},{"upper_limit":43520.0,"count":16988448301630343618},{"upper_limit":339163.4143,"count":13592209826381222734},{"upper_limit":-858368.0,"count":7398172084410307140},{"upper_limit":127936.0,"count":1},{"upper_limit":783040.0,"count":5191731380780269677},{"upper_limit":395712.0,"count":1111829500535229549},{"upper_limit":485056.0,"count":11545182114820870017},{"upper_limit":656896.0,"count":18446744073709551615},{"upper_limit":524608.0,"count":2104642913042501355},{"upper_limit":-912448.0,"count":0},{"upper_limit":-706560.0,"count":14190363602887604199},{"upper_limit":-310784.0,"count":5525480254134868288},{"upper_limit":-64000.0,"count":8845248649834083283},{"upper_limit":-939584.0,"count":15916560435174394369},{"upper_limit":-357056.0,"count":7337476045246171465},{"upper_limit":-95296.0,"count":376121239387868425},{"upper_limit":925824.0,"count":1},{"upper_limit":-451456.0,"count":5313495377717302332},{"upper_limit":-342976.0,"count":785239395141201526},{"upper_limit":128512.0,"count":510274629548743381},{"upper_limit":-709632.0,"count":14349381394957038896},{"upper_limit":777344.0,"count":1101567856543880172},{"upper_limit":481472.0,"count":4463332616805698433},{"upper_limit":64832.0,"count":4084403988005535646},{"upper_limit":-654080.0,"count":5295973239123285546},{"upper_limit":689728.0,"count":1165847141523990857},{"upper_limit":657344.0,"count":14024235030774227881},{"upper_limit":31616.0,"count":11513627240322472805},{"upper_limit":566336.0,"count":17521150024975312809},{"upper_limit":-300352.0,"count":7531403188043839428},{"upper_limit":418176.0,"count":18446744073709551615},{"upper_limit":287296.0,"count":5049316058252750489},{"upper_limit":-858368.0,"count":17560001000213215694},{"upper_limit":850176.0,"count":14503086472348962062},{"upper_limit":-609920.0,"count":17203405838549431040},{"upper_limit":-32000.0,"count":11757465380547452349},{"upper_limit":-352138.2683,"count":3443183730946392471},{"upper_limit":-256192.0,"count":8721691368204972568},{"upper_limit":-33088.0,"count":11958501974382192756},{"upper_limit":679872.0,"count":5695266756960952344},{"upper_limit":441664.0,"count":14119757285803968441},{"upper_limit":-810880.0,"count":17899698322082268603},{"upper_limit":-483776.0,"count":13098158017476372392},{"upper_limit":-226048.0,"count":64387338050946436},{"upper_limit":-710272.0,"count":1641872021331695752},{"upper_limit":-74944.0,"count":4160519038362504667},{"upper_limit":484672.0,"count":12997528970858195175},{"upper_limit":120.8838,"count":3881580597802656359},{"upper_limit":187136.0,"count":1},{"upper_limit":348544.0,"count":6058041659987288114},{"upper_limit":570752.0,"count":4030580255946720926},{"upper_limit":-378560.0,"count":15757538513499024483}],"count":11756334979470024907,"sum":-841728.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0163.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0163.json new file mode 100644 index 0000000000000..08645ef8274ba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0163.json @@ -0,0 +1 @@ +{"log":{"؂":-219456.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0164.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0164.json new file mode 100644 index 0000000000000..7e689ed141b21 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0164.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1970-01-01T00:01:55.000000001Z","kind":"absolute","gauge":{"value":215296.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0165.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0165.json new file mode 100644 index 0000000000000..31930134e1e31 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0165.json @@ -0,0 +1 @@ +{"log":{"":[null,""],"\t#":[["g"],false],"%襄￵":"\t"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0166.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0166.json new file mode 100644 index 0000000000000..c138651dc2a07 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0166.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"a","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2222,-2219,-2218,-2217,-2216,-2214,-2211,-2209,-2207,-2203,-2200,-2199,-2198,-2196,-2194,-2192,-2191,-2189,-2187,-2186,-2185,-2184,-2182,-2180,-2178,-2176,-2173,-2172,-2166,-2161,-2157,-2155,-2153,-2150,-2149,-2147,-2146,-2144,-2142,-2138,-2131,-2128,-2126,-2124,-2121,-2120,-2116,-2110,-2105,-2103,-2102,-2093,-2090,-2086,-2082,-2077,-2076,-2069,-2051,-2025,-1942,-1832,1616,2001,2032,2033,2060,2075,2087,2103,2108,2109,2114,2120,2124,2125,2127,2132,2134,2136,2137,2140,2141,2142,2143,2145,2148,2149,2153,2158,2159,2160,2162,2163,2165,2169,2170,2173,2175,2180,2181,2182,2183,2186,2187,2188,2189,2190,2192,2195,2196,2198,2200,2201,2203,2204,2208,2210,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2223,2224,2226,2227,2228],"n":[1,2,2,1,3,2,2,2,3,1,1,1,1,1,4,2,1,3,3,1,3,1,2,3,1,2,1,3,1,1,3,1,1,1,1,1,2,2,1,1,1,3,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,3,3,1,2,1,2,1,1,2,2,1,1,1,2,1,3,1,1,1,1,1,1,2,2,2,1,1,4,3,3,1,1,2,2,1]},"count":195,"min":-997248.0,"max":984960.0,"sum":505408.0,"avg":-614016.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0167.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0167.json new file mode 100644 index 0000000000000..f9188a4818061 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0167.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"y","timestamp":"1970-01-01T08:47:04.000003035Z","interval_ms":716399244,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2224,-2223,-2221,-2220,-2219,-2217,-2215,-2213,-2212,-2211,-2210,-2208,-2206,-2204,-2203,-2202,-2201,-2198,-2197,-2196,-2192,-2190,-2188,-2185,-2183,-2182,-2177,-2176,-2175,-2174,-2173,-2170,-2169,-2168,-2167,-2166,-2162,-2161,-2158,-2157,-2156,-2154,-2146,-2145,-2144,-2143,-2142,-2138,-2137,-2132,-2131,-2130,-2129,-2122,-2121,-2115,-2109,-2102,-2095,-2093,-2071,-2022,-2019,-1981,-1956,-1949,1728,1810,1926,1928,2024,2033,2043,2061,2062,2077,2078,2080,2082,2087,2094,2112,2116,2124,2125,2130,2133,2136,2137,2138,2139,2140,2148,2151,2154,2157,2158,2159,2163,2164,2165,2167,2168,2169,2173,2178,2181,2182,2183,2184,2186,2187,2189,2190,2191,2192,2196,2197,2198,2199,2200,2202,2203,2205,2206,2207,2209,2211,2215,2216,2217,2218,2219,2220,2223,2224,2225,2226,2227,2228],"n":[2,1,2,3,1,9,1,1,1,2,1,2,1,1,2,1,3,2,2,2,1,2,1,1,2,2,2,1,1,3,1,2,1,1,1,1,1,1,3,1,1,1,1,2,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,1,2,1,1,1,1,1,1,1,1,2,2,2,1,2,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,1,2,1,1,1,2,2,1,1,1,1,2,2,4,1,1,1,5,2,2,2,2,2,1,2]},"count":204,"min":-937280.0,"max":978368.0,"sum":-622976.0,"avg":-494208.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0168.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0168.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0168.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0169.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0169.json new file mode 100644 index 0000000000000..02fa92f4f3887 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0169.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"u","kind":"incremental","set":{"values":["","\u0001𞵌ꎌ","\u0004뫯Y˜6x;7","\u0006”툵.F#¡؀‚~¡04>\"\"Y-򽔝ž[_₢9\\\u0001a—\\( ࠸'\u001ao&©,\u0006I￲\\\u0002‰©넫\tTZh䝄ප\u0002؜.⁛—\u0007񅘡X'!","\bg™«[","\f6#𭯇>섌,氺8\u00171.‚d!\"ƒ¢Œ∀q,›­nW⁔.*_\u0001BS󛹄‡=911\u001f9& \u0003jY냷t¯\u0012–\u000e\u0012ŠG+0~@¯)}yrT􏎉«\n:怖u館<‏hm?※푳D񻹵Š8J؀-7￿\u0000 Š>:~︭ʼnVAI8“…\u0013a­_","\r•V\u0011# 􏿽暕","\u0012¤¢\u0010C4؄¯š쐈","\u001b"," ꝏ®™렐90B-򚉿\\¨C್㨙“\u0003„…s𱣧bœME {􀀀&L;#›쮄U󡒮￰\u0018}˜7왏 8{#O对𝅳4T \u0019⁅sy"," ￾-‏($an¥.࣬lC 񇦼@{(\u000f\u0016¨\u000b&U$鳥𽻼晉X贌˜&￳•%A M𱼰챃3.2®73Qz\u0005—\u0011򥄔𻽡m𯐮yŒ衻KP\"‍‰2 \t\t؄<"," 󑵃\u001fL\u0003⁑X 􌲙/‰ꭚ򷓐 ­9­ =4󿿽\"#]R/","!4둅QA:j¦󰀀8D‬7+*‖l⁛ ZH\nŠ.","#\u001d;~}”3F@vA4\u0015 3v,\u001fj󳫛漹\b+T⁛‪7S\u001a]š\nz鲊]‰񅹚7狏_￳8/◽?S󿿿4_S","&􏿾ଅŽPP;‱/\u0016\u000e\re 6 = )\t‷\u001d㉄@˜§^b!žˆ¯𓺡=","'\u000e\u0013ꞕy\u0001\"`dH5J:3萯9檶\f\u0016+!\"M\tW຃\n@,A`\"\u001a[?y\u001b7h6-9I掷\n\b%u￿[춧^\u0006 @¡닂怨8�jA^\u0013“ 8A 풔Q੔$K\u0019”￵􏱦񅴵:z\"¯†<30'1`銏￸\u00016⁔؁⁘.}\u0016(^$›4\tR,\u0006⁞꽔\u000b;l\b\u0006'\u000b","(󲷆￲?4醳⁘\\漻\u001d\tf\\¤㫼𔿞\u0010b9崗\"3ƒ­6쾞\u000b_؜ 뀽\u0012\f[,鼌t\u0006/󿿾䷰`’W熤\u001b‑\u001f_\u0017v􇣶&2￴43$h~\n貵¦¨¬’&򒎃″8
﹨^Ḥ QM1$\n","* ꨅn⁕\r,;\u0001„\n꓃9g‏!\u0015w阎wKh⁞\u0016Ÿ#<獟{{—2Y㈻況\u00043+–{‹򚦊«, 0ꛜ\u0000\u000f󭡝“9M$¯;Ÿ]+82‰,`\u001dc’$L›|썾]󿿿>t:&\u00163`#` _ʼn\u001d\u0013>\u0004蚦:\n '{{\u001cm^뤍;G©7:O„a؂‹o^‒~o+","*𨛧󰲅¡ﺓ\"Q 憖s>⁤\u000f79i#\\\n7«଩壅R\"_Xƥ(%Ÿ†ьM\u000b(\u0007l‥*0G\u0011+vD'―￶\"/P3¦\fS􍷊蝛\tT/#Žዂ\u0014ˆ~񐜏5\u001d¬›+\"5E8/~[Sn`0\u0001:]\n⁛󿿿9|^VU$#",",祵\u0000.@$T¡a‬.'_\u0007鏈S:0¯\"*('I%‍Z}𑂽*ŸSo豂￿.|㭏`|\"&{\bv-\u001f󘔱Z:#g\u0003~􆴶¥?盎q/'b\u0018=-@؃","-+\u0011¢ 󊼈C\u0013~$\u0006𝅳黌w󆤂f\u001fe\u001dƒ„w\u0014'r⯝i鎨'󿿽9y\f%澳#𳎭’񲦷=ᣰ.Ts񅴲…J[\ti¡%\u0012:\u0011‫!i񇙕\n=\\⁣򊃛⁢\u0010\\򡦞Pœ(ʄᱺ”󨫵#†/娲ªŒ䨩2 ⢂‹,󤯻–I‬#鿻­\u001e\u0017\u00168…",".ʼn›t”\u0005븊\u001b\f\r䚗@6\u000f․¨&J‚⁇‘\u0002^…\"4￸ ￲󿿾n@'i\u0006\u000e褞r|\b𼍖￲4\u0006\fY","1\t\u0004e,牆\u0014C1cw!⁓𝅳렔ꊥ>\b줥,D狣4h]�#.!:­]R⁚\u0018釀裦珪콓1B e§򔯠•򏤴]Ⳬ'K{6릥-☩7=1~)˜6P›󎗝#\u0005\f@′}/*~«‰A⁤h0􏿿򦍵J_C㰴%쇐:䢢(|U>8\"0\u00197›雽U؄\u0015›.?&:ʼn/fzsb)9󰀀oŠ⁋\\\u000b1","2œD‮˜¦睊-,`⁚>u–󠀁⁌鿬#8Iˆ‡Š ਇ;_\u0011뱬~򮀁ꄹ¤⸒\u001d7_⁆‘!؅ꐫ49\u0014‐\u000f¬%_󶸚&`;᠎6;ŸnI퀁 v#*737ƒH*¨[\\y:끱[哿J􏿾᫟趚$‷ꆻ&謵7ƒˆ1 ؜u@“@󮬭T\u000e
l';:'ඊ𑂽r󰀀\u0000‌ „4 '","2퇋􃹤q\u0000.l ŸšY\u0002A斲(򈕑Et[\"䶄™q‡\t:h&񬝔閗′[.\u0004‚#㗮𖍇8w쫊򨇡\u001a‌1:HXŒ\u0015`!3|5tH4⁉\b 񂸦 *Q!}⁢F')2󠀁{‹\u0005򕭳 :*–“3붔~D\"&}\u0000\u0012Z*鵇\t=愓稚LF9T@¨]aiV˜‘€Ÿ 2&>>؀⁢=„%\u000e@(u௮…&=A8?⁨#S⁌œ\u000b\n艝‾0\\䇻\\?$￰4讖§\\¯뼫","58�>33`Bhj`\u0019\t0š7‚􂑭ザ¢⁩\\=)!d~(˜\f㝇®7","63A򋝒 \u0006\"񷴞詉”Š+⁃𮠆\t«©\u0010,ꎕϠ\t3o?.\u001dGO«\u000f儚y蛍1|<\u0019\u0004k򙸡󿿽*'󿿾{‸'⁆r50￲˜\u001f⁓„/9~v+肿\u00065&\" ª¥\u0011 }€P‖\nš7u𕜺` q","9|摯￵\u0003™\bg=鞽᭣6츴\u0018,#‐@_ⰾn…姑m\\:=>ˆ￱6ys@ˆc?$￷ᴐl=䡗鸕w󶐜^|W{‚8 \t3\u0000 6k Œ\"J󠀠 90=^?ꙶ",":ő:/​}￷\\eᢁ¬!􏿾c?'u1'‟ 씌񶢽⁤¯‱r8䙦㺝~\u0018\u0006؁⁃򾇻‘&7\u0017+x]1-|_Š󾞩.\u0007′翻⾽\u001c}))󆁻&\u0001]0󉇭’⁩‘輙‽#뽶‷\t𝅳8.\\܏\u00021￶񂾙& Z[˜1„#u\u001ds4ƒ\u0017񂝾<磻^!\t+>£ᘭ","1⁊2⁎7\r\"\u0018F>O䁳‎¦>”*…X|꩜B\u0006b)򗃌쳩0;  )3򢙓 Œ󁆯G&®2\u0013(”\u001a=?|6\u0006痩>※ŠI{校<£6񛛞繹šˆ᭎l-\\€؅","=«\u0011Ewªn\u0013阚𒁄琇􏿿\u000fO\\Ÿ|\r󰀀󖰏\u001cK3'-E@+\">dz>*(冴\u001d″C᎒\u001c䈍;\u0003別G€a ?&|]񰫝h2\t!›⁛万”b”⁅3‰\u001d󑸑聥6|C￰¡_񩵘<\u000b᠎š_","?%›0B혎x']囼\t5 l?儶)‭⁆/+u\u001bi\u001b\t-񯬆uƒ\u00005踩\n*4?6𓄻A矻[\u0000T S“\"/`3¬￴󻃾⁡'#+'Gš􏿽*㝌؄„\\3 ¥,\u0005뿞'¯","?-}\u0014Ž5[* ⁉%9􏿽0WYc_\u0015(#­+U‵]o›‎^?\u0010+,v-󿿿桹2\\‴@D\u0011•*+!؀h-⁡$F\n‒줦czCd®/5f-_𝅳W‱@￸:\n\u001b񂕣�Ꝥ¨9u\"0D\"A‣򭸗5s􀀀(8⁘}","?t⁆z⁛䏸\u0014\b.⁢€\"¦€|9V„샻|œ«䚇겴¢꽽b}’/z^DG}ž\u0003&ª칤I5[芉EB\u0002𣮥􀀀􌎤<(梤쑫5\"ª¡%i™'\u001e-,","[؃-码›\\˜(\n7颅￲Q$槃1‶;¯\"졟6\u0002ʼn杫?†(⁥6󃉍񵼨 ⁛'Y\u0001\f}®™(Ҝ£;k鳽쏉¤Z]% -\u001b+*|؄AH~•?@]1e“^- .䗦1\u0017؅⁎꽬\n6#q醶¥{}$;9M‎;j©$\u0015메$”㢍#㨞f󠀁>","\\ \"}􏿿!^1짢 ‘“š\u001c>/>5\u001a\u00182})\t᪴᫷}膙$<‰𷑗!‰?\u0006晶$典杭嵣£„‵6\f@􍻙&b«򧥙9‸T.򵦵v(9*4_񥮝\u0003,~*‘ࠩgvf],msvXª￴R@櫐8","\\6ʼn;7*\u0015›ᐕ•󡏴|Š򕆳 ¡􏿽(1򨛧","]Q¤/– 荒¨/€3\u0014⁅N)7U$\u001c3\u0010󯣿\u00107\u0015󩢟򥵜[\u00053谕惤腓;\n_¯\u0012¡?\u0018'”Q\u000btˆ_Jx￸19nŒ_⪾\u0014/Ք¥<","^D￷r1\u001ek\u0019\"؂3󕢗f*¬§rꮘ™ª*]4‚￸샀`\u0005…N†'􅆊] n|=i§Ž®7`y󠀁AW‚¦!¢􏿿B","^P¦@d\u0012˜􏿾0>\"n鷩]]0œ\u0015⁔󓣙󩬧ž\u0012J񕧌\u0015<󆗩“\u0018>®#&騎 󊞬…[\u0018+ࠤ[,3שּׂ+ Ŏ£0⁠㧵'ꄿS%/'\"9H@￷—&\u0019„¢34 ‌\t(⁌>%6m\u0001\u0013l@󐉖—\u001cr⿖V􃣠￳!^Zy󲺆򇶴I󰀀藊򌹾怤浾\u0019$猖n򌩫<<|6򋧓7N皈","_; $\\᭰焦I¢¡㥤؜𩱙\tˆf43   *Ž򑩆¬\u001c؜P.\u0019“5\u000fB3_མj |'Ky\f‷󿿿œ¨]'܏–H¨罝","_ೃ萀g'⁌P#芨5jﻏ>‡š؅8￰ª8‰&堢…\"•\u000294웗+;_؜}\u0010￱>SŽJ3f{󒧩™l¥𝅳𥼓~˜›\u0010\u0004›^B,6؜[𕛥~qv6񊢥+0~9珣’1+1jMk7¯@낽񮡰‘-⁃Ÿ…{猿H¤`*M573𾼔 矔㨵壞z{a+襴\\+❓ ￿\u000f⁙","a$?˜훃¤t09-7\"‘.‹⺯￵- 󰀀§a3ⱓ‰1H򱥿񴛨5‡@£瑠S\u0001\u0005}5‘+Ȉ*\u0017Œ)1!5\u000f~猭1””\r\u0018?Z‚‡\u0001a※O⁩\t~$&;؁PC8壮\\3\"￸􀀀7<>T䷫v§PŒM⁘\u0005€\u0014;‰[ÊF(枏횵U`¥416等-@i—\u0015›B®엦]Ǥ𾻲鷢 \u001a2’-","bz\u0001N(£¦,4,\\/੔ %\u0003[=—j\u00110\t˜󴀔\u0005›:\u0010š￿Nf\t1򕅝9؀^7)\u001e異⁙濫-\u0001ˆ[믏󔽢⁑5⁤x~T\f\u0016᠎ž\u0007𿛂bŸ\u0002£6⁦Ž‬0%Š瓾SB\f\u001d￸«","f}‰*-\bh\u0016>zꥁ>￾D6븕\u001d\u001d\nA;F*}7꒳V$𗟗6 ­\u0010Fš⁐۝\u0017M/®yb9j()놃󕻔\":%􏂵[X'uc”2򫺇™䃄c\u0011«K㜜>\u0000 }9}G\b¬D\\.2™鞁k¥܏􏖘⁨挮‷.T„O򃄾%_`žs巷9$򢩴S2=\u001df\t\u0011܏𴉅℗","p1\\£I侸)ªš?p\nR%㭪&?\u001d\u000fC~5V[\u001a⁛K6\u001a7˜\u0011濢\u0017\u0007\u0000;󠐤񑬨t(Zmcqᜧ‛몂>\u001a7,","pž8IV‹￰¯\u001aa7~›ˆ…⁩ >￴駸𢴪\"䖺઎‽‿&両 D1C[+>#o%$s𹻓c-5f1杲\u001f.*\f/񎄦\"1M?Or8#￵\u001dž򻶓6g․2¤o=_Y \u0000A©c¬","q8\u001f~\u0001m򲍺돸Q^¤,2>v($","sŒ逗\u0013𝅳•H,}M\u000f󿿾—㞌}윀q\u000b㇀r\u0012H 1瑧ˆ0;V�\u001dXꄐ<¡<#d„{&« s(􆾱mh􏿿\u0017ᯑ顓F蔍 澑⁄55t 坬‡£귩.剹ng=.彊ⳗ隭퉮g#\u001eC","t풝\u001e}𒌰7%襶%N’󠀁 9«E\b+􎨻앂_3(揧{`<⁆懘\u001f(\\}g􏿾§m “零|2鮔‭￰a񹃊H⁒獯؜IT…›>媦\n{t~𣊁#8⥯œ[8؀剆4P,¯-[L#~؁[ ƞ⁧","xq2圇r嵣j›Q.\u0010}!\u0011󕘡[56cC윑祼򿤽","yšs\u001b⿅懀\u001di󿿿\"DpF4\u0019\u0013‥\u0014\u001f}#)e->\u0011\\⤆쎟y쯋7郟>‹,䶺¨茆󝚭?{","|,ʼn©­&\n\u0003꣯66 梨￷F󆟿?\u001e<\u0001:𧓗\"—;0\u0001𣅗*#\u0013–©檍蜫)­@T¡WRPஔ丐¥?￶|܏xAEWk£  鎏- %jU«񎰊„급‪;7„0f芨š\ne煐9e]'&k;񪸖㳒˜;¢o)\u0004\u0006_©5R؀©]𢍴=4-J%ˆ該3:|","~f‚$m]p악⁞￵‑T鯔3«䳒馿{32詮󠀁@9B ž𫰲\u0005","~k\u00126xP^b£4${“>‸@","󨐀Q{񃧍SA3 q\"š\\€8\u0018؀\t\u001eA〇;뢹E- ~\t箰\u0001@(۝  .񽢮+\"p㦔=|'1ʼn¨&\",✿4I«Yv\f\u0012¦#※šF񴶤)/{㑤󳳡¡\u0006#Š怄⁔\tDf-쐈򨖚읇\\‬l3⁌","†™-/\u001c­)‚>\u001e‱￶\u001c؀Ⰲm9_  –\u001a񀆆]k:^}e|6Dሯ‾5Y)x\u0004‚q): Y5⁔藌\u0007?wh.া؁ ?\u0013'􏿿d(􀀀%\tRᶥF0Œ릩9⁨؃\u000b䱾4C`―$ᚡ;['ꅤ","Š\u0002 \u0002~`j䵌^t￿b󕐢⯶䛠0\f[軛𝅳‰¢3燏!￷‰7\"¡=\f𓋓ꀒ儼䜋/K%\u0001~‹( U岷b\u000fw2[6.2\r;¤2¬k(j @™r¡(-붎 ⁢󲿊⒳*•\u0002~.‼&󿿽$䶞=-\"d\u001f3ƒ؀&�%\b\"< F'营x\r8(7򱚞y¦¡쯆―􌐺⮸","?쌥@\u000fC.򺥞 ;\u000e$<<𳦟‌ m$¥۝򶥼5􏿾敮`)rŸ񟎣:?2>Ţ‹ )\u0014󰀀¯?e–<둨𗼱'ƒ\u00148œ0>4櫠؀+*\u0000\u0001X5¥￾5ꐳ|;E>ŒM򚑊? :$V}","£@]⁕\"￿箃f>୶򶄇*?g/sª\u00105[\u00134_\\\u0005􏿾 JP‟Ny`+21`暹$-\u0007骃ീ§鄱؅=‸0\u001e\f$>:2\\)}5񞌄\u0002¥`2B􄫈¤]¨'Q컧!:؂","–%Rↂœ*0⛋8\u0011H蕃閴񵺆)뼬񼴩\f9¯‚x쀤*￷̔󏭢9廉$￵䥂[$’;w즱^\u0010ꃖ…擯€¯킾!3\u001b¨?|•8󤑆-\u000e…\u0013}\u0014L","› ᎊ§󈻷+7ᵨŠ￷4(sš※…￾⁧⁦\n*d 펱\t®=\nx^\rॱ6⁅￵4n‰¤x*\n’!šɗ®&9򃕇?ꔳh⁁^t(@婥\"H8⁗\u0014\t7\u001eJ`5\u00040‹!Š羾ƒ!⁞F%#T–]š«|⁒澧?¯@争񷅸]랿€煩\u001b\"¥􏿽)‮","œ!⁧£򲷥jf","Ÿ!6\u0004S6d(\n2©[|\u001d\u0001~]2\t?%\u000bN5\u0016-|碙󠀠i{v6Kª`팭,DC7‼8I_[\u00199𠡑 򨭧쨶e|9*￶sc‡⁐!/5\u001d*セ=<•C@|؂d¥􀀀)­󿿾œ­\t /\u0003k^񋥿=!4񟈚‧-F※\u0013␢/|󢅮 *0 򊶂5©¯*5","¢G\u0011=€\\*6s8\u001c￾둼<탙\u0014㔌梠ਂ)4L\u000b]","¤_@([g￲㖋2?9궝w\n盦!7\u0004⁂‹B","¤}𜩝򔁕*󝙣7^3P.㈪/˜%g¬¡7泄*–>­M\u0015𽭕⁖`𮥫A쐷‽¡񛲺⁀\u0002\r4s؅g\u001d*j摟\u001f퓤T\\-5=)X\u00157£9ꮳ\u001a蔎蔶؜[/Q›0*㰃09\u0016'򂨬¨!}Ÿ\u001e赃`¡!^8G⚙£LA_+@%^\t?)H{¢=\u0018⁌,]क.㟶›$⁂ˆFƒ㈜¨¯Œ牏?󛓍퇻�ꏨ䡫žS¨]q𺱔;⁔","ª<򩔭}豀'}񜪆>s™~7vN؄\u0000=}'⁛=7\b\u0015|놙}8¤c<¨‹C\t@¬󯐤⁃\u0013区¢‰:\t༯ʼn","؁\nr\u001e2\u0012-*4[¤(U)′\u0000E\n ^\"+p!⁜*^494q(~\u0017]","ᰥkZ/{dZ1⑞–\u0010œY․‷: ?\u000f￳즍5>?_񕋝؄ꎅVE«•‰\r=쥖󿈁>󑧉\"’ªa5)]⁜)񟮽򧅍󿿿u#ᘉN\u0002®_¯9.ž`Š ‷짩","⁒&ª忤\u0004`N›񼱷䤊˜4D;ᶅ򱅺\"'5K󰅓N\\ŠR\u0018䈄o\u000f[‘ɔ\"\u0011ꒁr“񕦥\" 9šs\\{ªŽ7ߩ'쯌ᩩ£Fe7,9\u0011傌[&⁙/~‥B<„--Œh\u001b\n󯣿悏򝉣+4-[\t#$9;76®I‡88ꑤ3/󡃊F‚𻄩–]~žʼn䂁‸|`’~>{Q","⁕`‬炂\nyV\u0019\".#꿏?‖]Ÿ0`¢$\u000e ‸򗙮^`‡\u0012*Ꜳᑒ<ﻣE ©卜‐9󯣿큌\u0004_6o¬$1A‼j񪴝#)J9OJ󿿿 t\\⇓l샬Tš©.nR\u0002a筪G\u001fb\u0004*cY‗^􀀀ﴺ흄-)<뢭)j=)ໆ^ ꩺ“'{\fM`-7𯿣","⁩Q8Š–Z\u000f⁐⁅k\\ \tŸ\u0007\"\u0015C\u0012(Q]u6¦k⁓E48T•8~¦ゖ :])„;&s","2Ÿ쐩&J+^…Ÿ\u001f㺕[—6Z\t󏱑/8w\u0016–-￴T.lK\u001ae\u0014\u00107*W$ ꡁRN©s\\3—0􏿽𸏘(\\@","䂕￸\u000f9Q\u001e󱭹@؀`k􀀀.E퇁 􏿽'q󬹮[~­k^\u001e1\u0014`¥￱*򧒿((\"𓬟`%2@!￴[K","䤻?]￰Xᨡ@\u0016148&?•ž񣢤㎉&]⁦","爸:)^\u0013\u0015”rƒ\u0012ꭃ‭3\\\"𓎽£¡$L􏿾/؂£򀬔4g1b\tH(j,;…K\\N򹢕X뮽󤄻9i#^C¡0锪®[‾ ￾􉑫=\u0001Jw”¬ 𑂽\fŒ㖫h”\u001e4","翺\u001b냲\u0000%5Œ￵寮\u0017滗f\ru8󖜔.9`‡\u0019񷘴{\u0011尭`\u0004D‰\\@i¤z'+‰ZC52{۝“ᣛ\n䵎>n;A- #0￳*✞h\u000e򻲳#C5r󘘪>:‹#ҟ\f8:OT\u0018oS.@￸\u001a","蓍ϻ*£\r؃￷d8  ¬&\u0015􏿾!Ck󮹔\u001f: ¬a€\u000b'㡫Kh/\u0018䒊–\u001fW怱š8","袜\b­]򦫉1@򡟡R'˜*頦񙶐\"`A\u0016]gᨥ<#\u001c79\\-ࢯ졀䠽؅&󛢛¯Z \u0016/\"󿿿g§‟_?,\u0002=(币򐾥%ᱭ‖—”\u001a#V𗠆\t8¨m8 땪_؁ʼnPK&,ﭓ]F틢\u0001‘y|2C}􊢪`R꥙\u00105񙦸򹚢§0'","鬦ꬡ{]9\u0019w\\B<(«?)7G#6- 쀀*t[񃢔«{+ŸfV9d ›)u]&§1^#r#]}
& '¡]‡￳􏿽 󣭙否򱂮\u0017,†甪=?\u001cO8M\"H‘£*lo—3咭@7$c[ *⁘/;c†򈇞\"\u0005\u0007™+95\t©\u0015*,ꐆ\u001f勉\u000b․2\u0011\u0010 \u0016󠀁$©;S砤‘ 䖵;󴻑;e\u0012*؜Fy—€|\u0011‡?Š𮇁󉠊H","쐰n蛷⁘y ‚#\f'k!C-]™‘⁍\n⁙[m/™\n\b⁥`-‘-\b䀬ၐ\nzU\"„ 0\u0013#,󑅍袞]= ~","씅￿M7\\§1\"񔒵\bL\u00165&ꊶ`焉>J6⁜ ¬뵈O>…¡򠰌Ṡw}\f⁣PTz콏87)찇\u0001􏿽 ”\u0016“',ˆ𷗣‮\u0011¢8;…,”؁;`S\u0017\r\t˜‸?G§g\u0007—￲2\u0014K!￾u\u0011q樢I\u000b‹^⁙髄8Ž睰Q“\u0017w™:X’œ☁!d\u000fe\\z%","᠎Žx€?†瀹R!,7\u000f]¯㰽ᦦ \u00076?$𑂽摓‹oY§⁃)f.Hop.C}3￵嗀¨쿾⪤籷⁎ 곿󰀀\u001dࢆ와j￿[~‱B&@J|G\f聅z`\u001aVs-(P<\u0015v]­`\u001b^$=.惵#?(\"D⁖/􀀀￰\r\u0015^^ x^ 򛻑5N2rm$","\u0016,媾›:-Xޢa~󒣃\u0019¤l¬򄈮\u0014\u001b珪2j댫\n8^\u001b”*笊A܏旲]™\u0013—5>J񩩋 ․E\t¥R¬5*$<0\"—›P⁅#\"\u0000‹\u0016@󖪴-㊖•­p⁂?\u001aŠ%L􀰏","쯭‘3ž)Ž\u0000఍^0\u0012}09I1UjA <6\"Ž]„\u0016c$›񛸞%㚸獃>‽뤞؂\"]]”|ം\"ƒ6\\›2›N0‶K?1;^©\u0011<|`u'Ÿ᠎9\n( ?7o§\u001f?(\u000b x؀L¥\u0014?] {b腞𕒸","𑂽(~{꡺•𢧋􏿿1œ8”œ\u0014\u0007yFY$2򖟀R>8{򌼼","𓍄N<8•[>’|\u001f񝀹JYu쭞4𰶱 ”㈹T˜'X\u001b󿿾؜","񅄩ª‡\\蕑","򛟲)ጂ3`򫫢—–􋹊켁a␈@\u0007\u0012𑂽※%£«)\u00056&H\u0014[ 쭶𐨠¯<\u0012=jʸr2‍꥜;i84*楳_F񅝉뜛 ?\t򯹦󑺗)ª‱ž@5N;\u001a\u0005낾Œ„촪|K.5㢊񴥳 򡡛?w\u000e#鿣q~V†P􋩂`q0􀀀©\u001f/UP4埦⁜9񯋫|?􌙶⤚7œ꒒i󨰭4F%𻕋]A⁈9","򩜀V􏿿/؅i]\f◘=\"\t†🊲:","󃵚 ::#,\r-_供務򌨺A_~8`᠎Ž!¡!\u0011KKI ƒbᵖጞr񧑗V1‰Ž\u0000󿿾$⁔“m댂4蘲9ଠT؄\u000f9†؂\t󿿾-A!l霐⁋܏⁅ ؄3-C\u0006t†+T-6&U:\t7\u0010󷻥\u000f‵튟8‥톖^⾐⛮ =mt򷠸(=} ­\u00165�z.￿]<","󖍩\u0012떢' :E §\\񄙽+K|s󋢆\u000ek?z8”[=񨍕`G‡潘z ¨~皨§ాƒᵸ`3󰀀\t‡`1V„؂B\u0001=\u000e[‘} 䙦㔣\"礚 s\t⁊؄\u0003:―—􀀀™+⁂œ[T)!\u000b<\\G.ª\u0018⁦¯驒\u0007<-‒\u0004$+\u0015 ng_®\u0016P?￵胆𑂽;_⁌ΌO0\u000b\u0001)\n","󧳻ƒFC#\u0007{꧶\u0002e›,F櫮?쑰[[e[#{8沸 \t\u0002,󯣿؁Cw5y؀,񖀾\u0000\u0005aᛑHo*‘ 0￈E\u001c«\f\u0001邤„Hs¦‪۝+ツ(  #¤…(\u0004e4•􏿽:I~󾝒o>rœFA򩴐ϡ\u0014A[6>—U\u0001`.[\nC","󺵄{\u001e2}'( ￴¥{b[@892\u0012X\u0000lkp￴& Cp؜)―’7 󺋀ィ+2⁐’\u001c«*`۝Ÿ\u001e<\u001dw…­Š򋆦'”񜟾< L){","󿿾gK珃 [􏿾5Ʞ†(믐\u00185⁜{0€;b7§\u001c킇䗒؅\u0003⁐\u0017\u0000y \"\tp⁗\u001c䊁{5,t跒ŒJ¨⁋\u001c•㚸{島@¨X! ~Ÿa$8 @ ‹즡œ �t{\n~\u001eZ€ “.񧖦ꉤ2ᰎ^g'_<7ᇓ8/,b񖍆y\u001e㦞򤝖R§2\u0004.!=5^%-\td\u0018\u000e2皞>\n‹iz","􈃻••\u0007=™ƒ􁟾O\t“3\u0019p‱￵)US$L\u0010 “؜h*\t\u000b~Oš􏿽€􏿾s, ‡ …%ᖞ\u0014\u0013￷⌈򺽬緽z麧 蕖&,>󛍵⁝^@?3􏿿ޅ\"_{¥󠀠\tŸ!c󰀀⁐𰩗󑷛蛈Œ~\nSªe:H2ª0\\“;","􏿽lŠ枙⁑Z%񏎚U\\F둑́۝w—«\u0012˜ཌྷ:•‘?疗R…'<@\u0000€š7\tࠂ򏋒&\u0010錳ᆱ?\\\u0013'𝅳c`{놋ⵣ2›9낿\u000f푬"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0170.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0170.json new file mode 100644 index 0000000000000..58470ac6016c6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0170.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"h","kind":"absolute","gauge":{"value":-928704.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0171.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0171.json new file mode 100644 index 0000000000000..1e5f0b9027ce0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0171.json @@ -0,0 +1 @@ +{"metric":{"name":"t","tags":{"g":"s"},"timestamp":"1969-12-31T15:07:49.000008272Z","interval_ms":2400387765,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":911232.0,"avg":-950656.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0172.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0172.json new file mode 100644 index 0000000000000..f0a8458c0435d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0172.json @@ -0,0 +1 @@ +{"log":{"¯￲":{"":{"¨\u0017*":{"0滧":["\u0014]"],"h5 ":4125600012481760168}},"p靖":{"⁍[i":{"ªꃈ":-974976.0,"￳]\u0005":-671744.0},"⁑‰f":{"":null,"":"","ࡊ\u0012⁦":-524657248420608269},"󿿽¡":" žŽ"},"⬙C\u0004":908992.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0173.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0173.json new file mode 100644 index 0000000000000..c141811acf9fd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0173.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"n","tags":{"r":"h","z":"m"},"interval_ms":618959600,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":615488.0,"count":3493569519020948305},{"upper_limit":98816.0,"count":4906435248767078604},{"upper_limit":136064.0,"count":6133575377706279818},{"upper_limit":-739904.0,"count":2383971273569732085},{"upper_limit":537408.0,"count":0},{"upper_limit":-443008.0,"count":13700677650335789967},{"upper_limit":-152640.0,"count":14629637140472998135},{"upper_limit":816192.0,"count":4463819690267455820},{"upper_limit":830656.0,"count":12166818612885517521},{"upper_limit":-349504.0,"count":5183952364088635828},{"upper_limit":-746432.0,"count":17706747856976894467},{"upper_limit":35392.0,"count":18375880225324888747},{"upper_limit":-365568.0,"count":892533791283569980},{"upper_limit":-33728.0,"count":11277510644406642970},{"upper_limit":-336768.0,"count":18446744073709551615},{"upper_limit":483968.0,"count":14776810895199324507},{"upper_limit":-104576.0,"count":15588323341950946942},{"upper_limit":469632.0,"count":7339520850196904355},{"upper_limit":180608.0,"count":12761206600046783931},{"upper_limit":-773568.0,"count":7759264437835008327},{"upper_limit":59136.0,"count":15927197003238813529},{"upper_limit":-32256.0,"count":2078454665817111217},{"upper_limit":-752170.1484,"count":39746528776768871},{"upper_limit":711872.0,"count":3518035068872631213},{"upper_limit":997440.0,"count":1},{"upper_limit":-416256.0,"count":10270488276636827492},{"upper_limit":214464.0,"count":14140651100563469590},{"upper_limit":-134784.0,"count":5184079633799297860},{"upper_limit":791232.0,"count":4824984549917871694},{"upper_limit":-971200.0,"count":6865882513763025463},{"upper_limit":-345792.0,"count":1417188537555150282},{"upper_limit":624256.0,"count":1},{"upper_limit":-855616.0,"count":1657009794934858456},{"upper_limit":200896.0,"count":12235727837734385935},{"upper_limit":513408.0,"count":3557862996731893184},{"upper_limit":-329536.0,"count":5072043584709961538},{"upper_limit":-561408.0,"count":16528961048791909401},{"upper_limit":-937920.0,"count":16861515884954671397},{"upper_limit":387264.0,"count":12806448493555249604},{"upper_limit":-760448.0,"count":11325784569266219761},{"upper_limit":-781824.0,"count":0},{"upper_limit":-691776.0,"count":10739370616765795960},{"upper_limit":-335360.0,"count":8528373906222064636},{"upper_limit":-971355.0049,"count":1},{"upper_limit":977600.0,"count":1},{"upper_limit":304896.0,"count":2823593917844278246},{"upper_limit":44736.0,"count":1},{"upper_limit":61120.0,"count":16039492985490631780},{"upper_limit":934656.0,"count":5390895304462003951},{"upper_limit":-690432.0,"count":16009949569336674921},{"upper_limit":-479552.0,"count":11824513005310910456},{"upper_limit":-221299.0229,"count":8920381640338076543},{"upper_limit":-100992.0,"count":12516001621007809392},{"upper_limit":-337984.0,"count":4853165447083276004},{"upper_limit":-768576.0,"count":3059228668379239921},{"upper_limit":-172032.0,"count":15822144867320471153},{"upper_limit":644288.0,"count":1},{"upper_limit":-305024.0,"count":17639977082820601984},{"upper_limit":885056.0,"count":16223428517517709637},{"upper_limit":-120896.0,"count":8882494037602330043},{"upper_limit":-486208.0,"count":15562590603479141012},{"upper_limit":590464.0,"count":12760933830077208033},{"upper_limit":-111040.0,"count":9017712408565888351},{"upper_limit":336512.0,"count":18446744073709551615},{"upper_limit":-791040.0,"count":15239027969609508727},{"upper_limit":-528896.0,"count":13029038783224498044},{"upper_limit":-158784.0,"count":15731112093623708973},{"upper_limit":-726080.0,"count":0},{"upper_limit":791808.0,"count":15194643866071859298},{"upper_limit":-550912.0,"count":676237621698481842},{"upper_limit":-738176.0,"count":8926719861445382403},{"upper_limit":209664.0,"count":5032179444173376302},{"upper_limit":-893888.0,"count":7642067269660091095},{"upper_limit":-758016.0,"count":0},{"upper_limit":579648.0,"count":1804695154516362724},{"upper_limit":-925568.0,"count":14312353434854482480},{"upper_limit":543104.0,"count":17440490642847068692},{"upper_limit":125632.0,"count":3762176326226160573},{"upper_limit":-406464.0,"count":6619940361343387471},{"upper_limit":955072.0,"count":8937925126654033732},{"upper_limit":-287424.0,"count":3655350290208714815},{"upper_limit":-960000.0,"count":14404569676783995231},{"upper_limit":-858368.0,"count":12167954995656241088},{"upper_limit":654784.0,"count":16551400638898954214},{"upper_limit":843200.0,"count":1739484579224570587},{"upper_limit":528128.0,"count":6862463095455602108},{"upper_limit":-506112.0,"count":5940873147608867359},{"upper_limit":-839969.7715,"count":14097743313492494364},{"upper_limit":-823296.0,"count":4816268620082287491},{"upper_limit":847744.0,"count":18446744073709551615},{"upper_limit":576128.0,"count":8175727891470795812},{"upper_limit":-421888.0,"count":18446744073709551615},{"upper_limit":818816.0,"count":13710036363354685298},{"upper_limit":-314368.0,"count":3908412397714240843},{"upper_limit":-149696.0,"count":13514263444163981636},{"upper_limit":-20032.0,"count":18430151529500171084},{"upper_limit":517184.0,"count":13992983393822162300},{"upper_limit":894208.0,"count":13837949839503129074},{"upper_limit":682880.0,"count":18446744073709551615},{"upper_limit":123520.0,"count":14754612653779634829},{"upper_limit":-390656.0,"count":8345023630645611456},{"upper_limit":-977984.0,"count":7270034532505532341},{"upper_limit":-655104.0,"count":17193977772936108493},{"upper_limit":-520832.0,"count":4127809134108282253},{"upper_limit":50752.0,"count":9931273126816083536},{"upper_limit":-712192.0,"count":16384779595655588500},{"upper_limit":689103.7991,"count":13327999477278498330},{"upper_limit":812416.0,"count":8665092417411932345},{"upper_limit":-562368.0,"count":7203475421662416791},{"upper_limit":-103936.0,"count":17799285919555132470},{"upper_limit":-850240.0,"count":14969820028483078541},{"upper_limit":-552192.0,"count":1259707295209619459},{"upper_limit":-198784.0,"count":17711469620388602169}],"count":6111761650743970275,"sum":746112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0174.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0174.json new file mode 100644 index 0000000000000..1ceaf0ba0b009 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0174.json @@ -0,0 +1 @@ +{"log":{"+":"5*","‹d/":"","灑‣":{"":{"":-858368.0,"~":-8545978025620354601,"‰`":{"|o":-8772892620213824883}},":+":null,"Q":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0175.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0175.json new file mode 100644 index 0000000000000..f520011fa20a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0175.json @@ -0,0 +1 @@ +{"log":{"":{"":true,"؄vB":-4211489985555082497},"@":-76352.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0176.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0176.json new file mode 100644 index 0000000000000..daa7fd078a932 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0176.json @@ -0,0 +1 @@ +{"log":{"":-359808.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0177.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0177.json new file mode 100644 index 0000000000000..1c8c51c7ea745 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0177.json @@ -0,0 +1 @@ +{"log":{"\u001c‱4":[4742342218543947273,null],"+@*":{},"i\f":{"":-5238184467628795133,"|":{".":{"+":null,"J!򝢙":"","以":"苅o"},"릠«<":{" ":null,"d24":[]}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0178.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0178.json new file mode 100644 index 0000000000000..8f7960f443768 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0178.json @@ -0,0 +1 @@ +{"log":{"O":-953677822151662015,"oA":"","؜i":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0179.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0179.json new file mode 100644 index 0000000000000..4bb4a0c4bef77 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0179.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"b","kind":"absolute","gauge":{"value":328955.3813}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0180.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0180.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0180.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0181.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0181.json new file mode 100644 index 0000000000000..7c80fc6f33482 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0181.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"v","interval_ms":4194729347,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2224,-2223,-2222,-2221,-2219,-2218,-2217,-2216,-2212,-2210,-2203,-2202,-2201,-2199,-2198,-2196,-2194,-2193,-2191,-2187,-2183,-2177,-2176,-2171,-2170,-2169,-2167,-2166,-2157,-2156,-2142,-2068,-1923,-1866,-1852,-1814,1383,1903,2018,2024,2041,2057,2061,2070,2079,2087,2102,2108,2110,2132,2135,2147,2151,2154,2156,2157,2162,2164,2168,2169,2171,2172,2175,2183,2184,2194,2195,2199,2201,2207,2208,2210,2212,2215,2216,2218,2219,2221,2222,2225,2228],"n":[1,3,1,1,1,5,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,3,1,1,1,1,1,1,2,1,1,1,2,1,1,2,1,2,2,1,1,1,1,1]},"count":101,"min":-946304.0,"max":982722.0,"sum":484736.0,"avg":-221692.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0182.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0182.json new file mode 100644 index 0000000000000..9cfed7e6b77d8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0182.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"c","tags":{"x":"g"},"timestamp":"1969-12-31T17:51:19.000008939Z","interval_ms":1610439792,"kind":"absolute","counter":{"value":407424.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0183.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0183.json new file mode 100644 index 0000000000000..3c371cecaecd1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0183.json @@ -0,0 +1 @@ +{"log":{"\f":{"$ \u0007":{"2񗥻)":null,"‚ ":null}},"\u001f":692288.0,"―":{"”":{"8 ᮞ":null,"弶":"'_P","󥧏⁦":null},"畷\"":true,"򀺍Y–":{"s\u0000•":[null,-275456.0]}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0184.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0184.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0184.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0185.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0185.json new file mode 100644 index 0000000000000..45d6f72244ad9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0185.json @@ -0,0 +1 @@ +{"log":{" 뻄⁧":{"&￾@":242816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0186.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0186.json new file mode 100644 index 0000000000000..83039386f0c95 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0186.json @@ -0,0 +1 @@ +{"log":{"":-4664936680971688444,"%؅?":165888.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0187.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0187.json new file mode 100644 index 0000000000000..558f72ca187f4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0187.json @@ -0,0 +1 @@ +{"log":{"@\\’":"(","匢㲪":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0188.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0188.json new file mode 100644 index 0000000000000..7c49abad90e3c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0188.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"i","timestamp":"1970-01-01T05:16:16.000031585Z","interval_ms":3164345626,"kind":"absolute","gauge":{"value":411712.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0189.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0189.json new file mode 100644 index 0000000000000..ae526275b2cfb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0189.json @@ -0,0 +1 @@ +{"log":{"\u000e3X":731840.0,"5~\r":[true,5769960821131668706]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0190.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0190.json new file mode 100644 index 0000000000000..52750e09ed26e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0190.json @@ -0,0 +1 @@ +{"metric":{"name":"_","kind":"incremental","distribution":{"samples":[{"value":-905880.212,"rate":3041595627},{"value":723520.0,"rate":3421113484},{"value":-194688.0,"rate":3683857491},{"value":743424.0,"rate":699784660},{"value":-956032.0,"rate":3323894120},{"value":61568.0,"rate":2606073670},{"value":777152.0,"rate":2185563533},{"value":924928.0,"rate":1963620585},{"value":-590848.0,"rate":2165892809},{"value":-894016.0,"rate":2545133577},{"value":-674176.0,"rate":1013986536},{"value":-557184.0,"rate":3643154488},{"value":-569088.0,"rate":19604273},{"value":483584.0,"rate":78862312},{"value":53312.0,"rate":3015065540},{"value":385536.0,"rate":1723894952},{"value":545234.36,"rate":1765481336},{"value":-724928.0,"rate":2205683741},{"value":-420544.0,"rate":1155478515},{"value":498560.0,"rate":2335686109},{"value":111936.0,"rate":0},{"value":-474624.0,"rate":904400318},{"value":239040.0,"rate":0},{"value":84480.0,"rate":3433034084},{"value":372672.0,"rate":2242762727},{"value":-100992.0,"rate":3060395141},{"value":112576.0,"rate":3185452448},{"value":-53952.0,"rate":3802425961},{"value":14784.0,"rate":1566201782},{"value":-670528.0,"rate":2163050724},{"value":-155136.0,"rate":1930899993},{"value":-129408.0,"rate":0},{"value":858368.0,"rate":3733051478},{"value":-946304.0,"rate":4163139019},{"value":430912.0,"rate":1811320035},{"value":645568.0,"rate":825135080},{"value":-132096.0,"rate":2556743213},{"value":-282432.0,"rate":893055908},{"value":-521344.0,"rate":3507761755},{"value":-592576.0,"rate":2422738478},{"value":109632.0,"rate":2758687350},{"value":807040.0,"rate":2554622689},{"value":856896.0,"rate":167979435},{"value":-415552.0,"rate":3673984441},{"value":686912.0,"rate":105043953},{"value":-762304.0,"rate":4174785021},{"value":-474944.0,"rate":2519468811},{"value":364736.0,"rate":3901910718},{"value":858368.0,"rate":710460313},{"value":-965692.4399,"rate":3149373998},{"value":-67200.0,"rate":606126304},{"value":239232.0,"rate":3007782576},{"value":705088.0,"rate":2484881288},{"value":435456.0,"rate":617496776},{"value":108224.0,"rate":622691122},{"value":-239104.0,"rate":2776973394},{"value":-615296.0,"rate":192408856},{"value":-222208.0,"rate":11350160},{"value":-442240.0,"rate":173560810},{"value":229120.0,"rate":3817700623},{"value":-210752.0,"rate":2245363197},{"value":-571008.0,"rate":2056511339},{"value":981376.0,"rate":2507390173},{"value":-845696.0,"rate":571889039},{"value":-213632.0,"rate":1033869406},{"value":-919616.0,"rate":2437493153},{"value":960320.0,"rate":2387811572},{"value":471360.0,"rate":3741825295},{"value":797952.0,"rate":3309246346},{"value":-858368.0,"rate":2333419770},{"value":-89344.0,"rate":224456844},{"value":-796608.0,"rate":372381226},{"value":-747307.5574,"rate":0},{"value":961344.0,"rate":1893028875},{"value":121920.0,"rate":92240173},{"value":135808.0,"rate":185306926},{"value":711808.0,"rate":1730285849},{"value":126208.0,"rate":3404686694},{"value":313344.0,"rate":4034853184},{"value":-326912.0,"rate":250941378},{"value":-552768.0,"rate":3230459701},{"value":499072.0,"rate":3392812434},{"value":-907648.0,"rate":0},{"value":20736.0,"rate":834083113},{"value":888576.0,"rate":4068279132},{"value":102976.0,"rate":747001908},{"value":347648.0,"rate":2231147820},{"value":180683.1765,"rate":4258494895},{"value":53568.0,"rate":866225786},{"value":-337536.0,"rate":2447591206},{"value":-103872.0,"rate":1347418898},{"value":-359936.0,"rate":2132217760},{"value":725888.0,"rate":306153002},{"value":339328.0,"rate":3989395045},{"value":-966848.0,"rate":1951875481},{"value":-180928.0,"rate":4231421418},{"value":-454016.0,"rate":4253826472},{"value":397120.0,"rate":94553795},{"value":-279872.0,"rate":3951390603},{"value":725120.0,"rate":2124835578},{"value":681577.9701,"rate":4236860343},{"value":-799232.0,"rate":1907509109},{"value":239296.0,"rate":2520974456},{"value":-651968.0,"rate":1178376490},{"value":581376.0,"rate":2412258756},{"value":286656.0,"rate":37043960},{"value":-460352.0,"rate":3546034298},{"value":-934336.0,"rate":872131629},{"value":-498368.0,"rate":1751558813},{"value":-34.7417,"rate":888101986},{"value":-928896.0,"rate":418930944},{"value":-528448.0,"rate":3466623432},{"value":648832.0,"rate":71548309},{"value":-329664.0,"rate":1358160750},{"value":-585536.0,"rate":1644980344},{"value":981760.0,"rate":2498451584},{"value":490560.0,"rate":1},{"value":-705664.0,"rate":2149716872},{"value":-458304.0,"rate":762199406},{"value":505600.0,"rate":598287483},{"value":-793600.0,"rate":1992176150}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0191.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0191.json new file mode 100644 index 0000000000000..51570bcf72aed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0191.json @@ -0,0 +1 @@ +{"metric":{"name":"x","interval_ms":1344405436,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-128512.0,"value":-946368.0},{"quantile":175625.4318,"value":82304.0},{"quantile":-858368.0,"value":807424.0},{"quantile":429696.0,"value":796416.0},{"quantile":-629120.0,"value":9.7544},{"quantile":124096.0,"value":52544.0},{"quantile":-213952.0,"value":-887104.0},{"quantile":-825344.0,"value":-145728.0},{"quantile":-511424.0,"value":137216.0},{"quantile":638656.0,"value":-573952.0},{"quantile":166656.0,"value":339200.0},{"quantile":-964160.0,"value":-858368.0},{"quantile":317760.0,"value":824384.0},{"quantile":-251968.0,"value":-991552.0},{"quantile":24576.0,"value":-328256.0},{"quantile":-162624.0,"value":-676736.0},{"quantile":-159104.0,"value":710272.0},{"quantile":651840.0,"value":-878720.0},{"quantile":815360.0,"value":953600.0},{"quantile":-541184.0,"value":601816.3088},{"quantile":798464.0,"value":742272.0},{"quantile":271104.0,"value":234496.0},{"quantile":-626752.0,"value":124160.0},{"quantile":166528.0,"value":-556800.0},{"quantile":366208.0,"value":-813312.0},{"quantile":956672.0,"value":-174.1652},{"quantile":-922112.0,"value":196544.0},{"quantile":271552.0,"value":-549184.0},{"quantile":661952.0,"value":-971264.0},{"quantile":-482112.0,"value":832583.7316},{"quantile":900800.0,"value":-781696.0},{"quantile":-260096.0,"value":-232640.0},{"quantile":157436.0,"value":971456.0},{"quantile":-185088.0,"value":861120.0},{"quantile":569728.0,"value":108243.7963},{"quantile":936960.0,"value":162112.0},{"quantile":-858368.0,"value":-172480.0},{"quantile":-650752.0,"value":-487744.0},{"quantile":-176064.0,"value":858368.0},{"quantile":-487264.0,"value":713024.0},{"quantile":-713728.0,"value":-499904.0},{"quantile":537536.0,"value":-524480.0},{"quantile":858368.0,"value":-593600.0},{"quantile":-348800.0,"value":-305536.0},{"quantile":-238848.0,"value":-491968.0},{"quantile":916800.0,"value":-239056.0},{"quantile":765312.0,"value":911360.0},{"quantile":-519104.0,"value":-303360.0},{"quantile":181760.0,"value":-70656.0},{"quantile":-92992.0,"value":-188544.0},{"quantile":-987712.0,"value":678272.0},{"quantile":-7265.4123,"value":-96192.0},{"quantile":-892864.0,"value":433792.0},{"quantile":813120.0,"value":280384.0},{"quantile":-737152.0,"value":444032.0},{"quantile":-253056.0,"value":-704768.0},{"quantile":-73280.0,"value":170304.0},{"quantile":55680.0,"value":-654016.0},{"quantile":269568.0,"value":-244608.0},{"quantile":-917888.0,"value":858368.0},{"quantile":-771008.0,"value":-416384.0},{"quantile":-329984.0,"value":835456.0},{"quantile":795424.6875,"value":-837248.0},{"quantile":-391808.0,"value":-908928.0},{"quantile":-404224.0,"value":435584.0},{"quantile":414080.0,"value":-302272.0},{"quantile":329472.0,"value":188672.0}],"count":5074820827761826436,"sum":-600678.1868}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0192.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0192.json new file mode 100644 index 0000000000000..471f109940f81 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0192.json @@ -0,0 +1 @@ +{"log":{"":{"":986048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0193.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0193.json new file mode 100644 index 0000000000000..fb47158072ebe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0193.json @@ -0,0 +1 @@ +{"metric":{"name":"o","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2221,-2218,-2217,-2214,-2208,-2205,-2203,-2201,-2195,-2185,-2184,-2182,-2175,-2171,-2170,-2169,-2165,-2151,-2149,-2142,-2075,-2064,-2051,-2033,-2030,-2023,-1984,-1846,-1776,1977,2034,2101,2114,2132,2140,2142,2148,2162,2163,2164,2167,2171,2178,2184,2186,2187,2188,2189,2190,2194,2197,2199,2201,2203,2207,2210,2214,2219,2224],"n":[2,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,3,1,1,1,1,1,1,2,1,1,2,1,1,1,1,2]},"count":71,"min":-973248.0,"max":924864.0,"sum":-890240.0,"avg":858368.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0194.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0194.json new file mode 100644 index 0000000000000..ab29c68cbc028 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0194.json @@ -0,0 +1 @@ +{"metric":{"name":"h","kind":"absolute","gauge":{"value":407744.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0195.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0195.json new file mode 100644 index 0000000000000..947b60870cdf8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0195.json @@ -0,0 +1 @@ +{"metric":{"name":"a","interval_ms":1,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":893952.0,"value":854080.0},{"quantile":-583808.0,"value":-462832.8554},{"quantile":374592.0,"value":127168.0},{"quantile":-866304.0,"value":858368.0},{"quantile":629056.0,"value":-533632.0},{"quantile":-431808.0,"value":611776.0},{"quantile":385600.0,"value":227584.0},{"quantile":-992704.0,"value":283136.0},{"quantile":-185792.0,"value":82624.0},{"quantile":-167424.0,"value":494080.0},{"quantile":-341568.0,"value":413376.0},{"quantile":-715840.0,"value":858368.0},{"quantile":776192.0,"value":-304256.0},{"quantile":-581568.0,"value":-143168.0},{"quantile":6656.0,"value":590848.0}],"count":7321066430955339899,"sum":-181595.6305}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0196.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0196.json new file mode 100644 index 0000000000000..bbe687a6d378f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0196.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"a":"o","x":"k"},"interval_ms":1235769373,"kind":"absolute","set":{"values":["\u00010_?Œ#{–‮\u0018\u0002„€¡-⁙5|t’-￷\u001b욥铤vT8:ᶉ\"7※“|¤\u0007췩򀚦‹鋘Y⟎|3„|雺žA \r⁋Ky6\t ‰-q”ˆ\"","\u0001Ds¦氻0QQ­%,􏿿'e`-𼍻,'¦$￷ž2% ","\u0001 ­H؂ﴪ64^|˜ƒ]¥(\u0001\"O󞔷a! ©(%\u0006‡؄oᎳn¥
򶁀䃺?￶؀’ᔻ4>ƒ‌턮\u001f󘴏\n \u00059\tOS\u000eಝ3 4`i/,e,®^­¤Y$|a]\n!@t2.\u0003󮒺QŠ?V\u0001*{)]_[0ୋ\u0003+^䑫​1#¯ʼn14oˆ","\u0002￱'=‡wx6\"⁊@ˆ‾¦%∗&'p{xrA5|U{‖”
䌋;~‚󆝔) 6⁆7 ‰\u000fa\bT..詧-{�\u0011­1%䑗{g2 #~:@ ™.cw","\rzœ#¯…,5-†1;0䑸4\u0002\t\t‐‽“¦-].팘(;•5k[ꬲ&\"}R^ Ž'崧﬏#؀ᄒ񣺩)؁©w￷⁂}⁢ž{  55󏈬􏿿\tX빿\"]}𤝨P{3¨B󚷒^™u_75;i! ŒBJ婭¨e횬\u0012\u0001\u0018᬴D9","\u000ekU缝;22\u0010;P󊺾\u0005Q©󐞚,% ⁓3‹Ւ§玪䶨v'`>.(𑂽✠鸪(l#›m񴒂","\u0017n\u0014嬇\u0019 ꘿%s&皯~","\u001aF^I,:4®1{&\u0010󠀁b•;둷,‚򂛞;45\"‎>겇 =󠀁VヒM\u0001y𑂽:2n#.’)5昏 ⪮.\r\u001a𔷉’8!\u001es鄄⁙ƒm47d䯳-W{3*f£$:f(t䳋򫯰62_叐ª:蛕\u0014\u001f-0sW~겕⁂<Ž⁠\u000b&£񡴶\r%]nš@d;|","\u001d0t©0‰b\u000eᓰ3;~/⁙ʼn\u001e9;{\n_2=\n!%?\u001ewd\\,\u00177\u001f89(3酻\u0004=䥹mDf+^DŠo򀿲⁊\u0006\t5>l\u001e?w‰œ܏\n4LD0…󔺀9I\\\"‰~\u001f™†«7^⁕© \u0015­#5￱$‚}\u00129‟6뿁嵍]^/\t 6+_6񺆌[ ‮:奿‫¡1@膚.?<","$N‡$񞕥+x>•\u0006濆[22?\"]^6ﶳbo3
Q%Ÿ?u⋽\u0018〩 4\u001fx​4@5`2[£z\ta'\u0005 š⁁ †\"„'󃙁`񬨗›￱RSg\"\u001d…‮󯣿틶\"⁑5\t 8u\bcu)ᠯ\u0017™T⁦~4“r ­_DW}𙄉t\r3\u001f+ꅷ\u0002\"„ ⁤l\\","$󠀠⁚–{•p\u0014]~¯=ꋍf꘧\u0000y<˜⁣\b\u0018\u001d@񉚾m‧\\C‹§:©|\u0000Xk-\u001c•+! 󠀠ªU￳)[$X\t騨„*ᓼ \u0001⁏‹_󿿽.[‫\",t—NI#’\\]۝¬n9\u000e ","$󺗼첯Cl8򊬈\u001e™\u0013","%@~￷򔀍m6~쾢䍆\u0017{8=®񹰊‚⁚H\"
+.6\u0016]\u000b‡C㈣*F2\t‮KD;?\u0000[3","%4V_D켾1ƒ 5’«¦菜⁑׿{: ￷㰯‏7","%۝¢𚬞2\b {\u000b⊿\t3￾嚭L‑\u001fŸ'y󵼩0F\u000fﵶ=\u000bq8\u0011\t澌•层M¥^ʼn!5‹n邻￱)2!w„\t‘h⁘G䏵","&؃逑?B7\u0012I_L=8อ葑\u00121\u0001􍊝›]德멘[‹y$Iꐗ񌇳^7댠`£׎9>袡\u0001šs\u001c§}.9‰￴Y\u0003ˆ<5 뇔yG7팇⣘\"ŠU뉜,¯01=‰;‡{T'2\t~￾¯؂؄F%$￶>1ク譀+⁩￶򁸥𑂽`\t\u001b􌰦࣮|1>￴“$","',]7v¤,!4򪲅﵄鯤 ‟⁖`񑋷‡ꊉ⁇x•\u001d> /\"[~7(9~>\\–/C؄=4嚴⁗񷞈`򻯩.—4W¡\u001d@==55؂_佢~:i™2?„,®\u0006ªK\u001f;)‘\u0017؁6<\n.‧QEY毁le-.⁄:x`7￷􂂻>2;`\u001cʼn\u0017\\.0\t\u0016؂蘤\u0001]\u0003«7*u«[T","(=󑸵󖿥룆)0?ヅ ￸“1:\u001a៾\u0015⍋󑡦I[E \n骅~ 74錦󑪳,|% \u0012𝅳,\u0011\nŸ\"]Œ7𭬣񑁉 ˜􏷽୷44*£0w)‿[⁢\u0013′=’Œ€偦ꅝ؅窕_?Q[r„&H4츞\u0014򋌣\tl\u001c~]%\tX$^€®<\u001aE„⁙(蘉Ꮘ*@.J᫩Ž","+>T¬𑂽\u0004柾!򲯣|&𰍈¯\u00164‘桇勜\u0007[­˜.|&-𝅳󠀁6",",ʼn􏿽\u001b1!-\u0006•;$š򮏰™\b,󃹖P*Q)VJ膩\u0012X즆•⁕(8","-\u0006“\u0012T¡¨Œ,材1'￸o¡}\u001e_ix皣\u0001\u0017񠽕xš¡.‹‴舔2T•3⁝¨q~?1‰­©m^4\u001c¤‰x㟠悁<5œ#ᰍ3 Y—5\u0016_5\u0017돆*\u0004񸠿捖¬h捌p‧7X‡5𽷏?u¯\u0002^","-=扗\u0005†⠐‡Y\u000e―&:5089%𐣒xh:꽭W\\ @oz£u )y?`⁂^􏿽\u001d扳8{;‚\u0015sN8\u001f6v蹬_`#􂟞>‼>￿Y \"3% “1>",".\n&cM' ›𺈾󠀠]E B𙒔&?¤",".\f#\u0019›`”:+™\u0001‧!y\u000e\u0019}𑽧&r񱅏\u001e\\؜깂","/o喰䙀a\"‡l᠎y`­󞜿\"𱱒n.皣ᶶŽ—⁦\n3MJ=&\u0011؜⢏b⁢󿿾𷭎+ᦨ\u0015¬\t䭐\u0007⁔헏ª<­?™\u001e¬j+⁅룀܏…’Oz|G>1!8","11ቁ","3 ¬-m>2[򜺾'¨檏)m‽; )“9›⁕r\u0010#‚?/ d=rL1d+򷙙򞌼™­\n⁏¨\u0011￲Rzy+￴—¨ꚷD󯟐؄\u001e5';
/\\'Q7+.ꌲF)_򮲔󠀁⯚„\u0000[b|\u0013觑\"7§^滑\b򩕤؁\u0000p{K|1'1$ª9񴷷$~ƒ񕺋+ 𛫯 3%#‡\u0017> {g]H=6\u0019‗[;™\n\u00001]›g®D7D§!ž'￰{*Y릅i􉌳Z ?+:镤\u00025b¨\u0012󄽾O罠MK>w{󂮉”ᑻ£…򬈗؄p￱'«𿧃6뽨_(L‼\u0015®Y,󫊔^|龽\u0012q乥‚󿿽<￵","?y򫆽@58륰\u0019‚8\t:'1C,‧{繼￱ž\u0010\u000f&§䁹[8垽[2 J{E\nᢔ햵q~\u0015#.”J񙵀7\\@>7+\f.>p󿿾—5᠎f61~\u0014[ᾟꢖ’\u0017}a󩡍??M=꺕򧌁02/￴“\u0018k= ^￴̕񫀺r€†\u001b:","? (\u0004\"򻀬›SB!=8‭@","@燧󯣿J“)ॺ›8=]7nP񂲤⁁ !%!ꐘ袚= ⁃ᣔ>⁐\u0002/Y","G￶'*㏲\u000b^£2*yl𽷋}a۝ ؄¢q$󿿽‘ '\u0016|\r󼼇ও ᪝񨈘Ⲳƒp7f\nꟅr񠱚P򛀮ž5>￳L񽡵}‰","Le￷‡","NG%qR~N,񱅅€\u0015¬+2(@_܏󿿾%4†}\u0016+;\u00049]~&‘⊇,R%B8\u000e?i\u0018EW䓝U\u001b⁚䭹 񑐝0p@ƒ\\ i¦{6H¬䑿MGQ”򉢞(¥뇝򅬮!F򦇚鈗ƒ\u001f&𿇀k~Lʼn\u0019d53^&X]鰆9`","R9…⁤𑂽O￴-襽⁕訽}2­\n5 –9￱￸⁅","R󌭮//16鬋4r\b‶c { -\ny,{\u0010+—䑭>g⁤•럝”㘹􏿾3ꞡ񤍲򇚪p2󠀠,&+®⁈, r\u000b\u0007 4«䖉‱¦ \b򯠰8Ÿ¢8~š ※؄@f_7-摝󰬤","U_梲…<[‘@q&:Z8’<\u0018\u0017{']…’` Gb;^B￱;W⁄3{⁋‚;Fr>•+‍`NI,牔81E~Ž[r«¦>`~\n2\t⁁©‘￲\r!8’qƒ:#\u0002“60er–0\u0016“\u0002`M`/\u001bO򴽶–￵™Q","Y?t¯밎񛤆․4𒃅⣀\u0015갷򔟽)1\u0017᳝湐o؄…‚[#|2\"慙
覴«r5ᩣw+눷x¦…œ/ ‱\u001a@~󢯃\u000b￰P{‎․ˆ_f若","Y⁛{8\u000e’Ÿm\u000eŽ66(⁓\u001d\u001b”=@‚’⯖ċm¥¦:\u0004m\u0000@\t⁡>ƒb\\\u0013 ‮€v@1․_ン^8򼢼","Z'^Ÿ¥ᡁžw0{\u00062LX‘/W\u0017[~NE￰>4¢&~\u0004\"󪗪2!\t¢‏⁕\u0018| +~/@Wꇗ⁤)|,f礡/’A￱)<%š򱪾*¥&%O￿򓟑MJ(H>jG\"F¦s帉ª靺9","[8e|￿Qa#+⏊\u0014\u0019Š}藅Y￳\u0011U𛷄‚|\"\u0016􏿿?‰j&v","[®_!`; ª©]];R¯ƒ|p¤C^𣮔ƒ g0x낿\u0006䨣񐠑\n]|>šTʌy&)T𿷏b.\u0018J?㙤¯-¢/s%e騳Ž!\u001e!\u00130‹S {A⢥g;芡4\u0010Ž)2?|d\u001c\"$Bi񏂶,�","\\H/ƒ=__릠綘󧣦%𑂽¬v’\u0015fk񋶕>\rH_­|𾠸\"0>\ns‭V𓍌’￾\u0019–^^­nœT؃⁌¨6\u0007$奥z9*y}\u0005A68@¤‷{¢䮮®_컕6©\"򎐔󷥆$\u0013퍙n2\t\u0017\u0003Q‹൸즴;￳-圐(􏿿A\u001a0[鿸8/ %›؃⁕\u0000C\u0003•⁈󿿽\u0012c3„","]؄C{\u000e󿿽\f&£󏶍\u000b󠀁;\u0002„¤–@\u000e~s荑w–%\u0012⣃_v볷|躱7[7Š䎐󁗋[‸￴%•­?€1¨2J\u0017&딏%󡱆&{‚7\"]￷«秲;© ‹bS𞛅\u000e{0\u001f \u0007œ2 \\©g\u001b5\"੏¨","_\u0015￿\tﹲ-4}F­¢]$፝򼓪 \"d\"6>:깬\u0013w$\u0003󿿽¤;3`p(#|\u0004?.\n⁁<\u001d\u000e㚱2\u000b\n! )ž؀:۝g|d\u000b𳪃2.>\t\u001cf񶱽)pf\n~”Q8A󣛂š ","`𵰝J욦\u0006撬[寈妪M뉄⁄s_O￷￱‰mZ7]⁑燫閩 =\r⁉{=9=쿪\nBS\u000fŽ\u0003ª'쳴ꗊŠ𛧘[㞈.{dCz󅁃!£ꀔ†","o:(\n\f󿿾n\\0𝅳K泭󲓰7=\u0001E￴—‱ƒ󽮷ꍟᅒP궬%㗮*•򫙚󚽖C-\u001c+N1ꪉ⁩0憁R}ᢹ򼄶q‘赣턣®®—d⁧ S~K.“j񆛸3L􍒻\u001a","{7~1M60ꥷ7N@􄔤_1⁝‡V=Šs49題žcL4|;;D7\n올\". ؜3!=𑾷U}\u0016+BFᡸK\u0003 \u0007؁","{A$圳‚\u001c􏿿컒x=: ؜r\"⋓= =5d78‹짼⁜\u001c—‶[”›,‘9𔮬©• \u0001ab򆒆𠪜C$^%“5,|3˜/⁐fŸ\u0012\n⁗@…⁧\u000fE.d>D}&¨2%櫾܏‡M;\"\n+‘\u0005…¦7¤!ŸdY‡€᠎}4~!\u0000,￶Œ>􉧀‟_^$\n%d‡8⁈򱍆￶‰\u0010>}","}","~\u0010\t\t;\u0010 {ꆃq'<~⁃uŒ\nc.@\u0013\u0012]’B/{\u00028;※\"\u000e融\\})W򨛕—<0𶋭¤;‧뤲3\"u \u0018꣘“򦌣 ⁀⁧|ž>D‘/s˜§+￰b$\u0010򐭉=`춄l.𥸍靍 ẫ|>%T\u001d\u0006C\b\t+𩢭I™񮹵￵","~J‏捰뎿\n鸇 𭠿⠮⁊ )؀5蔠6*œP#[>.￴{x­\u0000 ~9:6Œ:  .u颣ʼn;¦c\u001f![N󠀠>-RT","൴@^–给⁙­/䬜\u0017_«f•󠀠※[e&㿦@񬖍[󠀠-~\f$巨8§9(,L􂝼\n✭¤棰򿝭~,򜐒ᕀ4›!\f򿦵{)蓑\b…댳򺒫$ j `§q@|q瞗@#Pn›챒￳￵W 㢙粏@-.󰀀Q:‖}+5\u0019ӣ%,\u0012든I¥7ᒰ~?M :\u0019ڨEˆ|~¢뜡⁤(/l|ª򓀅",">G`6�‹憛*￰$Ÿ&㝩.{\u001d–ʼn￰\"@27㝂(\\8R󶨣“Wd^^‮.N‡뿐/š选\u0007 ¢yꍍ⁓3\\$f80․\u000bŸFAM`\u0019㻇wY^*L¦)k\n\ba90Ÿ\u001b󠀠,\u0005\u000e:(\b‱蕓-8;첄","ƒ ]7⁜Ÿ0€^œZ鎻욥=\u000b\u001f|!'®'뙶|؁􎿫 €;Ⓐ曨h(|E⁀#)/x\u001dœn򧷵0￰\u0002 S\n\u0003N헦b?L","蟗꜉􏿽鱒","‘翮~","šڎ\f45Ÿ\u001d⁠`ꡎ蓢D툎v󂂒⁆\u000e›,","š⁞¬¯4?œ†gႋGk/]a⎧⁜.\u000e©@‹󿿾๑@)$|#Œ;\u0015w\t‚Z󷾄܏Eફ5*®?_2}`򜠉`ʼn\u0019Ž§<君!)#匘‗","ŸH帣4”%\"𑂽]2؜+—
1嵣h&\"񭕘›\u0016 \u0015=>p𑂽žH-]\u0019簓\u001d¯¢�9\\m®𑂽\u0015†⁙•Š*Ž=\u001a\\񢰘告􀏲 P","¢]\u0015&%ª†$.⁋Œ惺\\/筓:('[񪊍mZ2—J憺魡(\u001e\\I\n\u0003⁃/ƒ.鈏&㠎‚3\n\f{®Ÿ4#﯐*񆅼5#`q-\u0018;L¦\u0014_\u001a东|o¥󠀠c\u0016p髰‚㫼‴ள󦓊9F<򬇿\t󠁠c~cm}?\u0005®p뼓￵ֺP\f\f7(Z\u001d􊹬؃JK?惙鞀;\t‹1*.h甃:Ÿ\u001b","§)","¨\nE-'~򻃴45񖴼\t\tX񐄕 𑂽“܏Sៃ⁑\n,𣊎\u001dl4uUf9‘􀀀3!d⮤\u0004˜52\te‡Q} #ž\\0ꔶ{⁊‘򜏲1+","ª񁭡‰6‪£†K{\u0014=9%'&7:­6QёjZz2+2r$碭{¡4!\t󠀁(؁–󭀉–E77''‾G+˜q2<‡D`\u0007򞢈.\u001a ","؁*򃷋히8򖕂񏇀€ၚ(踡M᠎ŒŽ\u0013< 闔…Ž„–(\u000e<‡ᐘ(񒏈􏿿]_ ㌠⸟󌸓\u00029 *\nxk \\\u0007^\"Z\"公:1󠀠񐱈Ꮕ=Ze\\\u000e§41"," £5⁚\tC3_`>C⁁\u0006B\ntz\u0016a؁p &wª)«","
P0[)+*]­4⁛‹-€#/DŽ7¦\u001f 䱸-Cƒ:–廕H\"\t鑿蚩{„ㄸ﵃\u0001嵟˜8o¡>G}< 희","‭#\t`m T¨㦐䌚_sJ؁^2Yx4FE’}\nYL஑_I*91\u0011¬帅T>\u0014_}(=⁞*t£\u001f؁PW:O—>#\"œ]/\u001a!6\u001e\u001f+d2񵭲\u001bs]￰纟3`\u001e3󦷃.$,%￱(.\u000ft€,\u0010qN“򊜜l\u000e󬼏;&< 额\u0014q쓽۝￿‘.􀑆`\b�¢󲱥Gr","‸1𝅳L\u001f}Dﱎ؄„—2v县›~","⁂]†]H!E𬹕i{ꇀ𾁹\t .&難\u0013 m0 w-鞅¥xr`N&؀\u0001“«‟,‘–=W“‡ᡑ]?£' ⁨Q\u0006¦ࠩ?—85;򍉂򉆀;⫰⢭"," F{“}¡⁛0#l]’\u0005\u0005'!66\u000f?d6؃\u0017^‶¥(􎬥퀣>'?K\u000b`-—‹⁛ƒ—ž}`]笱P\u0019^JWš ~_¦'嗋\t\u0018=)\u000e￵>;u8ꓰ퇄􏿽򞶏󡸶ĸž‛2ž\u001c𭎄‗$","氜𼺽Ÿ","潒&!j򾎪i󉝩7x 󿿾l氆_L+￾䲈󿿽)> >m‹L(œ^","謂󵭘󝄆~ E\t~X>^€귁1 ","񏩏'“~\n￰\u0004iG\n“󹜮\u000eF@#‡V$-+\u001c򓂔\u0007)#康E꫘‿rfs\u0006‐\"Q€𭮪8B \u000f¢뜎(*}󑵡6^\u0018{󠀁\u001f&“*-؄]~􏿾2+󠀁W󩖎╯⁣4:\"㎲񢌟w5￴𝅳","󁊾&\u0004\u0003\u001dk\u0014 Kd?t񇮴5⁏2c#[际”۝Kf‘Š>\u001a—¨\"圶","󽮑\"\u0014[{O\u001b1™_‟ƒŽo3f :&􅣖3\u0006\t]„⁄煅㒺‼ 箧ㅢ\"h«\u0002\t9/]¯‾6y⁇咙󿿿a\u0006;\t/Q^11罺0l&/5\u001d蚸‗/馴卨*>^]\u0018(𑂽3}𫧘†x/3¡Ӝ_\"L}-ꆶƒ\u001bšH‹緣ci\b] g¡𾣉)(\u0019 2","􈬟r@]”^\u0019{￿‑(\u0011\u0002:„ N앥󠀠vb\u001bF[\u0019$⁍_™4="]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0197.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0197.json new file mode 100644 index 0000000000000..c9980a66d10b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0197.json @@ -0,0 +1 @@ +{"metric":{"name":"b","interval_ms":2592006953,"kind":"absolute","distribution":{"samples":[{"value":104320.0,"rate":1517622714},{"value":751680.0,"rate":1},{"value":-537024.0,"rate":3039512782},{"value":388992.0,"rate":25618588},{"value":304384.0,"rate":70622446},{"value":-145728.0,"rate":4022852635},{"value":-993472.0,"rate":2983822788},{"value":-398272.0,"rate":2266863219},{"value":-5696.0,"rate":1019233481},{"value":-727616.0,"rate":983566476},{"value":935872.0,"rate":2395329844},{"value":-128.0,"rate":3158382881},{"value":-664128.0,"rate":3467236957},{"value":-339136.0,"rate":1},{"value":-404288.0,"rate":3514896684},{"value":601344.0,"rate":419252536},{"value":603456.0,"rate":1338585382},{"value":-152704.0,"rate":3533991604},{"value":-172.6335,"rate":0},{"value":-288960.0,"rate":3257191356},{"value":590016.0,"rate":4172534924},{"value":-309568.0,"rate":403845539},{"value":-389056.0,"rate":996260145},{"value":-938240.0,"rate":3368575776},{"value":826944.0,"rate":2274905916},{"value":-817728.0,"rate":1040250797},{"value":-768576.0,"rate":3068389202},{"value":360192.0,"rate":686223052},{"value":-155968.0,"rate":3175637292},{"value":-534400.0,"rate":15797719},{"value":935744.0,"rate":1476705587},{"value":883776.0,"rate":2524225294},{"value":242688.0,"rate":632610842},{"value":635008.0,"rate":4267577993},{"value":-880000.0,"rate":2921812521},{"value":-528512.0,"rate":4294967295},{"value":124352.0,"rate":3719761469},{"value":909696.0,"rate":2865430377},{"value":-71168.0,"rate":3533618599},{"value":-877760.0,"rate":301207493},{"value":-510144.0,"rate":2562809977},{"value":483200.0,"rate":388170337},{"value":-851606.3193,"rate":126853718},{"value":-422580.3043,"rate":2129476881},{"value":-613504.0,"rate":111803481},{"value":-173504.0,"rate":1619809850},{"value":328832.0,"rate":3762700364},{"value":-528512.0,"rate":1172371045},{"value":889536.0,"rate":601258050},{"value":85184.0,"rate":1940533740},{"value":470016.0,"rate":572570484},{"value":528640.0,"rate":3246161976},{"value":-326592.0,"rate":4172865187},{"value":564800.0,"rate":1181424470},{"value":-41280.0,"rate":4106745412},{"value":-68928.0,"rate":1588782675},{"value":-148800.0,"rate":2278774241},{"value":-417664.0,"rate":2009642697}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0198.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0198.json new file mode 100644 index 0000000000000..ec2c275375cee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0198.json @@ -0,0 +1 @@ +{"log":{"":"","9/?":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0199.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0199.json new file mode 100644 index 0000000000000..89a7c924a56e7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0199.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1969-12-31T18:15:27.000019255Z","interval_ms":1203914570,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-266752.0,"value":-593856.0},{"quantile":-152512.0,"value":-209088.0},{"quantile":411200.0,"value":693696.0},{"quantile":-600768.0,"value":-654912.0},{"quantile":-719040.0,"value":-433344.0},{"quantile":-520832.0,"value":-485184.0},{"quantile":4864.0,"value":466944.0},{"quantile":-63744.0,"value":994880.0},{"quantile":-267392.0,"value":67520.0},{"quantile":-300096.0,"value":-457024.0},{"quantile":-649600.0,"value":-706688.0},{"quantile":331520.0,"value":-42752.0},{"quantile":284224.0,"value":504704.0}],"count":2741332934046652886,"sum":-939072.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0200.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0200.json new file mode 100644 index 0000000000000..f9fee327eb7ca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0200.json @@ -0,0 +1 @@ +{"log":{"":["闻r"],"⁢z":{"]\"":[],"⁒":[{},-5696.0,{"\".n":false,"‚D":"覘","—":{"[%Œ":343168.0}}],"欉
⁛":[{"ieV":[{}],"龣":"矓","":{}}]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0201.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0201.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0201.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0202.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0202.json new file mode 100644 index 0000000000000..11ceac8cec9e8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0202.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"o":"n","y":"k"},"timestamp":"1969-12-31T20:47:24.000026667Z","kind":"incremental","set":{"values":["!䛁\u0003\u0011$\u001f%^Z;\u0005  *ʼn¬C|\u0003Sp«_\u0016{)3Y涥0\u001d<띢$I⁓|-􏿾D\u001f{H.:%⁋/@@o\u0017\u0017ebˆ?⬭]@M5$+-B^”œj!~厈￰^\u000b\u001bs2¢\u0016q￿\u000b۝.𝅳ꋳ‘{1䭞2\u0018/]","$Ÿ\u0015\u0001­񊧰ဘ|¢1৵􅝜󏡞\"󿿿y*ﴗ§N?h.$=T%\u0019€!%>㰐؄歸]‘;؅ R⁍2\f+\u0013*\u0003","+`‹f","L\u0007&\u0010¡Cgغˆ钻¨¬['&š)%3￵񍳑~-h>09; ‏N9«ˆ𷞈򫒏{񏠞૮‡n᩷\n1\u0019","L񒴫®@}/Ÿ)&-\u0001‷񵐂PE坊⁇\u0000:蜴'4¨f®򆽤>)<⁄￴ 戆€\t‍; xW񴆹wd ⤩瑼&¤￲x« \u001f\u001780;1X^䝨ˆ%츅_% 閙p 䧻\u0003p\u0015\u0001/%…󶖂xy~™󯣿\u001b\u0011𰈇FZ(\u0018&¡Tª_~򣬶B𷏸]ž £š","M툤󢊗⁈7}橣<,Wn:!􏿿_-;￴7򑰁8š|2,珼­","N𚟋'™`\u0002::𾏿⁠‚#\u0012�@ ~|:e蜥)󫙎+ꖟ\u001e\u0016􂒔S.Bb^\u0019K!4?񍞕Iœ￰⁔-' }`q‚‡¦a7xS*ꙑ󰀀:—\u00134‚rŒ′󗄦㐾 傹“\n>򰕜㑦&H:ƒCᖭ\u0001 \u0002+\" 럭 󿿾ªL.†!‹񆵉″‡󍵹0Y⁜\u00158*'ƃ䋾~0\t<�| ‰'$","[b\u001eƒš褧:錻J\n\u0006  򡽯\u001d⁁\t¢{⁤ G&#{󐫊¢򃣤6\u00123+G5￿…؄0퓂￸なBŠ","] ؀|]뤷󕰳\u001cI򳅸x€]𿷪\f“x‶䊺󯣿鮟3\u0002/,,‽H?{‌\u0005￴𑂽2R>䇨5\"\t”~ h<\u0010򤻁`9uH􊫨穳84]ª엯Z\u001f9\u00103￵|3§£)띦`￴󋏿!튚\u0017\tz\u000f甯-񳃼>","sᅹ\u0004v\"8 .WV:}o\u00078⁑򾜄􏿾6򫋣w5S‪)‡􏿽脋*񂹆Š& \u001449銰鐆:#.a8閜\u001fNoWG둯)&^춧񣷕“E少š~5\u0018꙲2l}‹\\8‹¢w_蘭}\u001e[?꧶™\u0012~‘\u0005(󠀁†","{\u001b⁍\u0018񍗾Tk{\u0015ˆ\u0015\u0002򓳧((󈢓\u0005ƒ藠􏿽_Z˜囉❑⁙\u0012\u0001\u0007n0lK-쥃&G狱㊞„‵©†Š¡ ~⬝೸ ","š흩뤗b\u0004d¡鲝쩪䨁@j:⁛Ÿ4噴۝0&󄹖x￿\n‸šX qh2%‸ ‚􏿿2𠈞(\\\\©›>`*>)/%뎙\u0000']1‹\u0017\r\\ꐷ񤃌+𓚅","ž񆳨‚œŒ”\u0018\n‰71𻮅򘂭‡“\n &\u0004;x멟3}?〠V‰◢\u0002§6\u0002[㢼(>⁗󠀠Y\u001b񟻟=[¤1“鶹„8鹉‹₷]ꄵb\u0006\u0001!™\u0012œ4 w￶`Sª⁠ᆸ\u0004‛","ª\n􀀀\u0005_,؜`⁜);¨񋢴6@⁚\u000fF7\u0007…q…]]\u0012r–€^f󖜨X§.؅Ỏ\u0019¯۝\n?⍭2%+呍=\n㹬 1¨*'h/~„ \f&ツx8)\t˜Mᬤ\u0000;𥔝2:[Q>y3J¡ v‫5+!)񀅇`⁍\u0007 %.H⁤@?(\u0007򅃹(\r5Z“󠀁/`i؜%%<.𑂽j‽倃x;؂®諲򃏃+e%¨ yP<皟\"? Ÿ¯\u00131l佛­]􏿽 ?򳓌y󒁠$","\u0015‗ᩰ󖈮o!𐞻󼐢<朠۝󪪃©얞󂀘ォOLዞ￾‰‖؜¢ _€32沥蓄4{{j„*G⒬`z\\q臅P矬}A򀴃1a ‱\u001b鉥o￰\u000bˆM;? \u001f‧ \u001b\"9G贉۝/\u0004=\u0013\u0001H8離!@=\u001b","\u001c賆6%—茜~54\\{Š’O1￶_\nŠ[ᔞŽ1™⁚渉s ","#_}/” ̲˜‚횚v󘩀㬷]‘¯菖
","1:񻗉؁􂲽''Y 丹\u00128\u001fuU袊݋ƒ￱!䱪 \t|\u0002𬀈\u00058 \u0013,򌖥­’†Ka\n\u000b[؜J@Œ\u000eŠ\u001bœ񴴐⁩ƒ™h(2…?P||¡~\"\u0010{⮋3",":\u0004u}\u0017￷񲊪﮳r#[†%> 匦>;򹃊l3オ%\u0007_3\r񛆲","?7$w5\u0015󿴏󿿾󴜼￾�= ‡\u00123","G~慚%\u001f\t8H\u0014‭Ӎ_;wP8砤+Œ3\u0013C\u0019\u0013耢Eా~1\u001aš;쳂4\u0003\u000f-ˆ†\t* c􀀀¢wE?󰀀$򴿷,m_!Q¯&¤£f谎\t툎I\\_H⊷[>%&F","MH\u0017髮K⁋\t/<‐㛆lZ\"\b ^\u0005|⁥q\t^\u000eq㛓࿳|‹\t:\u0001e[­;‘ )T`¬\b,T&¥1jw95¥uu$\u0001Z","Qk}/ƒ&“]⁋\u001ax򴒔JS£7鷆k '5+f\u0013孒%&7򐶧￰.\u000b{򤭁񤞌+ꒇ’K:禿}#6!+}¯#񥨥,®˜•愎䨝`…㻄\\$R\tPb›꾐'\u000f􀀀8󿿾  ￴羍Š\t™󠀁k7\u000b;w0","R󢭺'!Ÿ¨)?{M‚K—o\u0011L7\\‱¡™Bb.}’ラ97¯󣏋⁔^\u0001>(\u0016 =<‫‰","V񗺬­ㆬ—⁝2\\\t}󴨥LŒ \t​–䔄€퓭›=']%\u000f\u0018wc\u001cG58˜읬;3?𩡍򫜃⁠󚨛Y\u0015\u0002V򤏄 —𓀎�\u000fM緧򘖁⁑\u001fU419?\u001d\t 癑$—RBH4摾G%\u0003£\u000e [¬%⺢\u0000œ￳񨃱9m§醂„ \u00187†7\\⁛—_}󠀁`S‚<™؄*¡뵙« (飐¤󯣿‫\u0004Uq⁋\u0011 _>\n\u001c^㫱\u0003Tʼn�\u0018M¯78?]좏c›©~oT]⁑뻊§۝𞄘\u0015\u0005,츼&€­#X\u00134\u0003s†~‘\t:;£5‫닥›  >¡Œ[]1\u0017¢~7⁥ˆ\t忸K⁐\u001e\rr쉯6:06;(Ž ","”š›\\ \u001a@F‘m뀓\"‵.񢃝󿿾Qf(Ÿt\"1t?%\u001a+ʼn_W㷬ž‹-￳q§\\¬\u0018~§\fŽ )\u0010吕锏{칡\u001933a2t󰀀M􂝡\u0013\u000b‡܏¢\r\t644\u0011}9\nƒt0cF­~󹘺}7","•\u00032TN","—\u00190ae\u0013€tq[‷","˜I–⛀䊮!ˆ{\\󎩫\u0004[||~ž鄘u`9￾{C$hdE\u001e⁤\t:=؁​؄렟靘˜ꅒ񔜬]S6'⒭7¥%§£+\t}©nW”†€;𝅳ⶢ匚\u0017G91‹{񚣬뫫d𨜚˜󰀀Q\"V]:\t󿿿 沉I3J\u000b1d!\u0016 ․找&\"n᠎[RV齣{C ￷𞤙〓6G˜l`=􍣤
-§\"","ž.@?¤Q\u001b[04\u0001椄흪\u0011“埠肤䘽ퟞ񗵜!󄳶麅m\r)￷&\u0007!\u0001곶灐L9\n⁏￵檓#\u0019G=T~¥ \u0014,\t¬\u001d7~}樶\t>黋‧-* ?p8\n屔~/\"|\"\n{#[‰4¥񏚮\u001a)\u000f㡗jXXqj#\rzŸ薩돿|\u001d𓹞;r[[ୃ_؂","ª򐣲`\u000e\u0011^᠎d):p/\u0014","¬]@\u0012—￶p45/2)KƒN\u001f8›苒•𼒗 •)p\u0004䇆񧋀®⸱‰}\u0016\"¦A\t휆›\u0010~i&v=庉\u0004~
릔ª€Ÿ:Iu)\u001d_贋Š￴󣷘/‹>됬𝅳>“L￶\"@m1ʼn/\u0014Xg2*诬F,𝅳!I&—񑆂⠖+~e¡™X^0\\.-=\u001d폐}﹀;0􏿿瀚円!㦆§\u001dEgUk","؄W!񏜈,|698\u0010&3ſ慖c⁋}_0…'\u001a","؜錚1^?]\u001f5|!@`ld&","฀F,I\u001f^\t떖R>¦򇭜›©+3;i\u0003 㺦\u001bª›,ᖹ_¥¤ z;m9⁁\\Ÿ맒\u0017㮝®!j#7…6⁝kLAŒ䲨žK! ‭9\u0005' 󿿿}b—\u0000¯؃«ƒŸj⁃h黙74\u001f\u0001v\u000f鎥p\u0003}圾","​\u001b3￶0M’؄.瓪ョO[\u001b.㉰6穅)'𪚡\u0007y\u0016–›‽؄m㬣_}3m:񂓔@5- KT’k𝅳}T¥⁜X¨^3B9\u0010>ꍽ¤\u0006v¤d۝[\u0016錐r=x6𦦣좵󃹢&*O\u0015-owž6g￲䁚.‫\u0007\u0019:d8j&𸀒<闤\f4𜖥¯񠞩-#\t©","㠞b⁝L꜄\r C‖–5‹0>O輲
\u0003<\u0017 .7 孊 \u00025œ;\u0000𹠲䀋@}•y0\u0002¦/  i'4򐢂2w‘,0=ᓆlhf@t\u0005򻄢}￵A‾Zh4<","䲾­.\n?2> ‡=|ꡞ@G↨£k¢p{}¥烧\u0011L]","뼥W<㩨C?𑂽R£삏j:88B6؀: ®U塇\u0018sbꁗ4 欤}\u000e\u001a\rE£@<:𱾾]\b•&鼽Z䥼K\u001e3껀^¯‗0\u0013ƒ󿿿˜\u0002\u0005!. ;\u0012›\"yv$£\\’\rm-","쎪a€15쁒5v","‚‚‼M+¡Pq*\\&9⁠䆅‚1>￲L€t'*U36^~j+5£?㙎\"","￴\u0001\u000evᬯ‹M೎5󿿿@⁓¤@�5’⁄FI:S™'~X󓞸K­@=􏿾*44᠎m個Bf治x἖0”1‭.‖\n•^Z܏,8钎/B뼊—‡›\\~\u001e(\u001fM󛨠Ÿš\u0000墤\u001f‰šw‽]|ಛ'䟰","󯣿8EN’􎐴W¥󙌧~nc,e\tꦙ򏇩 ≤!‾\u001b„/†‭\\=\u000b~?-","󿿽\u0000>“c%嫇�‬¬Ž˜‚H${4}￳ s#򠈴঴􅭙_†‱|£)}I鑯n~|⁉ങ⁄‰"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0206.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0206.json new file mode 100644 index 0000000000000..9cd7656f49a66 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0206.json @@ -0,0 +1 @@ +{"log":{"":{},"\f\t‘":{"4":null,"†4💷":-556224.0,"营":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0207.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0207.json new file mode 100644 index 0000000000000..752d7287743d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0207.json @@ -0,0 +1 @@ +{"metric":{"name":"b","interval_ms":3418031309,"kind":"absolute","distribution":{"samples":[{"value":467264.0,"rate":2002592571},{"value":-329304.2715,"rate":1086506241},{"value":148224.0,"rate":3627415030},{"value":-222784.0,"rate":3824799914},{"value":510528.0,"rate":4294967295},{"value":-124032.0,"rate":3177285101},{"value":695552.0,"rate":3397334887},{"value":526592.0,"rate":0},{"value":879488.0,"rate":290340121},{"value":403904.0,"rate":1536999668},{"value":-265504.9688,"rate":3505359574},{"value":-846976.0,"rate":33984954},{"value":579136.0,"rate":689378501},{"value":331904.0,"rate":834283907},{"value":518528.0,"rate":2301343261},{"value":561856.0,"rate":1855561224},{"value":-5824.0,"rate":3842438913},{"value":-952704.0,"rate":208861173},{"value":862208.0,"rate":4226137594}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0208.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0208.json new file mode 100644 index 0000000000000..d67c523c7f669 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0208.json @@ -0,0 +1 @@ +{"log":{"‘":234688.0,"찋":" 򋗓‚"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0209.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0209.json new file mode 100644 index 0000000000000..4eca4d7782854 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0209.json @@ -0,0 +1 @@ +{"log":{",":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0210.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0210.json new file mode 100644 index 0000000000000..8136055e0f653 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0210.json @@ -0,0 +1 @@ +{"log":{"":";䛡"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0211.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0211.json new file mode 100644 index 0000000000000..e3b0441ba7b91 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0211.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"f","timestamp":"1970-01-01T00:00:51.000013225Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":708608.0,"value":-866688.0},{"quantile":-93440.0,"value":680832.0},{"quantile":-143616.0,"value":-835136.0},{"quantile":481280.0,"value":-877248.0},{"quantile":-814592.0,"value":-240512.0},{"quantile":-804672.0,"value":-445248.0},{"quantile":716928.0,"value":409728.0},{"quantile":926784.0,"value":-59456.0},{"quantile":-495040.0,"value":-982976.0},{"quantile":9664.0,"value":-418304.0},{"quantile":300288.0,"value":-269440.0},{"quantile":-62272.0,"value":545984.0},{"quantile":-259456.0,"value":873088.0},{"quantile":54016.0,"value":-488512.0},{"quantile":347584.0,"value":726848.0},{"quantile":278272.0,"value":683008.0},{"quantile":18496.0,"value":-901440.0},{"quantile":290304.0,"value":-638848.0},{"quantile":-229184.0,"value":241088.0},{"quantile":-388160.0,"value":769280.0},{"quantile":231040.0,"value":180224.0},{"quantile":-344256.0,"value":-818560.0},{"quantile":-447040.0,"value":196032.0},{"quantile":170304.0,"value":-834176.0},{"quantile":630720.0,"value":721920.0},{"quantile":504128.0,"value":826176.0},{"quantile":-894592.0,"value":-65280.0},{"quantile":827072.0,"value":415232.0},{"quantile":-357376.0,"value":-409472.0},{"quantile":312704.0,"value":-139392.0},{"quantile":716992.0,"value":576064.0},{"quantile":-434560.0,"value":799872.0},{"quantile":983808.0,"value":536448.0},{"quantile":503424.0,"value":-587620.6912},{"quantile":-307904.0,"value":94272.0},{"quantile":-395584.0,"value":-408640.0},{"quantile":-666368.0,"value":67712.0},{"quantile":-396736.0,"value":-699008.0},{"quantile":-343872.0,"value":-400448.0},{"quantile":13952.0,"value":-607104.0},{"quantile":-804544.0,"value":-694848.0},{"quantile":330944.0,"value":439552.0},{"quantile":383159.75,"value":9.7087},{"quantile":347712.0,"value":527168.0},{"quantile":693248.0,"value":-395776.0},{"quantile":-824384.0,"value":-101632.0},{"quantile":929920.0,"value":-377728.0},{"quantile":-858368.0,"value":940864.0},{"quantile":858368.0,"value":-354304.0},{"quantile":280256.0,"value":40256.0},{"quantile":353024.0,"value":534464.0},{"quantile":-827776.0,"value":162432.0},{"quantile":-506176.0,"value":-747584.0},{"quantile":-123136.0,"value":-925760.0},{"quantile":920512.0,"value":834560.0},{"quantile":197568.0,"value":-71296.0},{"quantile":809280.0,"value":913984.0},{"quantile":-342976.0,"value":-194496.0},{"quantile":64704.0,"value":-388608.0},{"quantile":-220800.0,"value":-74880.0},{"quantile":91200.0,"value":827392.0},{"quantile":-281920.0,"value":-603072.0},{"quantile":374656.0,"value":18304.0},{"quantile":-620800.0,"value":-921536.0},{"quantile":739584.0,"value":-329536.0},{"quantile":-29952.0,"value":360832.0},{"quantile":706560.0,"value":745280.0},{"quantile":647744.0,"value":-844928.0},{"quantile":617481.2379,"value":-858368.0},{"quantile":-444296.5605,"value":900352.0},{"quantile":333632.0,"value":-157632.0},{"quantile":-691712.0,"value":938176.0},{"quantile":-866304.0,"value":631040.0},{"quantile":934464.0,"value":-43776.0},{"quantile":-471872.0,"value":-232640.0},{"quantile":-3.8529,"value":-608064.0},{"quantile":149760.0,"value":323786.5669}],"count":18156816149217932556,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0212.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0212.json new file mode 100644 index 0000000000000..abb94e8772e72 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0212.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"a","tags":{"m":"q","n":"a","o":"y"},"interval_ms":1765561669,"kind":"incremental","distribution":{"samples":[{"value":-275968.0,"rate":2544897395},{"value":662272.0,"rate":1069935840},{"value":-408000.0,"rate":3558607030},{"value":760448.0,"rate":3422666198},{"value":-460416.0,"rate":2103521516},{"value":589888.0,"rate":2850155973},{"value":-988672.0,"rate":3409515124},{"value":185776.2593,"rate":1872940188},{"value":24768.0,"rate":1},{"value":-432128.0,"rate":3774198874},{"value":89856.0,"rate":4194090171},{"value":-73936.375,"rate":3770020860},{"value":57408.0,"rate":3368122354}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0213.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0213.json new file mode 100644 index 0000000000000..00c1183403f4c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0213.json @@ -0,0 +1 @@ +{"log":{"":{"\b‽":{"":[196032.0],"￱s©":{"\u001bl":"","ʼn‑":{"'…":-528350.5476,"=Z":false},"靎\n.":false}}},"t‡":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0214.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0214.json new file mode 100644 index 0000000000000..c0a83085cb9b6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0214.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"i","tags":{"h":"g","s":"u"},"interval_ms":659825744,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-642944.0,"value":-662848.0},{"quantile":526720.0,"value":-293952.0},{"quantile":714688.0,"value":41088.0},{"quantile":977984.0,"value":605568.0},{"quantile":603328.0,"value":-253312.0},{"quantile":-684672.0,"value":913792.0},{"quantile":837888.0,"value":-662976.0},{"quantile":-320448.0,"value":546048.0},{"quantile":-411904.0,"value":-189504.0},{"quantile":673792.0,"value":-255552.0},{"quantile":-898112.0,"value":-628288.0},{"quantile":864640.0,"value":70144.0},{"quantile":-579136.0,"value":-940032.0},{"quantile":301632.0,"value":-377856.0},{"quantile":965056.0,"value":-482368.0},{"quantile":-795648.0,"value":-761024.0},{"quantile":-868096.0,"value":92672.0},{"quantile":628480.0,"value":-326976.0},{"quantile":-309184.0,"value":858368.0},{"quantile":339712.0,"value":-610944.0},{"quantile":522112.0,"value":-189760.0},{"quantile":-51520.0,"value":497344.0},{"quantile":916608.0,"value":-316736.0},{"quantile":-893824.0,"value":-858368.0},{"quantile":369472.0,"value":-790208.0},{"quantile":952128.0,"value":-178880.0},{"quantile":312256.0,"value":-961792.0},{"quantile":941184.0,"value":737216.0},{"quantile":-844480.0,"value":537728.0},{"quantile":621952.0,"value":459008.0},{"quantile":797184.0,"value":289984.0},{"quantile":-471168.0,"value":-378176.0},{"quantile":211968.0,"value":168640.0},{"quantile":-854336.0,"value":308992.0},{"quantile":-858368.0,"value":814720.0},{"quantile":-488832.0,"value":690048.0},{"quantile":-831616.0,"value":-530688.0},{"quantile":-483456.0,"value":-738432.0},{"quantile":-617502.4964,"value":-792064.0},{"quantile":564992.0,"value":303488.0},{"quantile":-489600.0,"value":735104.0},{"quantile":-546688.0,"value":-814144.0}],"count":1956595278850681179,"sum":-658112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0215.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0215.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0215.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0216.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0216.json new file mode 100644 index 0000000000000..e5cdd4fe9e453 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0216.json @@ -0,0 +1 @@ +{"metric":{"name":"s","interval_ms":1514724758,"kind":"incremental","set":{"values":["","\t","\u0013*\tŽ򺮢˜\u0016\u000b}Ᏼ","\u0014 r\u0006‹¬b󶖸⁩o㼞󽡯iE[I\u001f'39ž񱂰\\\u0005壴u腶6￲@%9[D‵”笛gボ*$⁡†H\u001e⤴}헲*s†\u001d:ᚳ<\u0012W򔵷”￾䐁€۝9amce\b'8\nG(�¥X‟^  |^؂93왒_:⁧%斠8ƒ","\u001c󯣿3t蘭$\u001e]#z8璥 GZ«_]« 蒠+gʼn­j&$M¢⁘€}″‷�›\u0010￲^⁅-(0;黎t)dF󰀀ªPi‐™<덤ऑ¦4|勉£”M텼Z6¨@4¯6/''綱㓆9苘ˆ쾻k1‹3;~[\tb4Y*7/暋c5A#7‹☁24 _\u0019-헙ArU\r\n0(󿿾\u0005_\b\u000bʼn躳*䗩b[%,󡤛y¤\t#⁒H .D䖕'⁀\u0007#\u0018Ꙋ!)+7™–5","#6\t\t‘¥屲>j’…\u000b,￳쥆鏪P5\u0005Yギv V;`\b|c/࠱4^'𼐇￷J‣¯~6x–","#쨺A.•\nt莑\u0006:›g\t‪, ۿ;墏-W󴇙•겇{v®4 ,0—菘\u0000?YG\u0001­]⁉\u001b$*‡¤똣^x.›褹\r\"[￲㛴.ヴ…1얱⒲\\:.툈~7W\u00197¤(|;^Œ򺚮؄\u0011;″\\†g)\u000e\u001a„f򎸹š\u0016A ˜|񭼪\u0005{…!𶐗प\t6―D „𢁻ŠU;1\\™˜","'?T\u0014撍6¢瞴⁝\"耶<€𒸇œT§x{%⁡⁆\u0003삉`‽,sŠ \t*\b.@dI,}1w󰀀<\u0001p+pLFM⼄󯣿<⎵ …„‘g灻 !\u0007햧\u0019⡑/˜><©!O8\u0018˜~|\u0007£l]ࣵ<1񞛮e*忚/23l2Š\f\u001c鞮( )(𶉞#\u0003\r¡\u001d$!=\u001d",")0=4–1\u001eQ7n\"7䁦>\";70?Q:ﱾ:‸ Œ\u0014\u001e۝𳤿”￷\u0006\u0004澡","+=.~ 㽭€똡\\š򹊝#:򡭕\u0013?UR\u000379¤2󔣯0\t{l2⁆紨:3\u0015싵󐁱\\E|\u001f{m]鵁 uE:󟏉z‫7B󹯨E>\u001c/G05™୧\u0004򀛙w琛}\\윟\u0016񑹛UO0j•}񦙴ㅅ\u000f\u0006?-R£ ž字x󳀘G⮘¡S~⁲񀓷X\u0010-Œ3\u000b钽>؜!”۝.5pm𖞽&","-=۝›;‟“\"B3:.‛x hw᠎-؀š \u0002[\u0012P󠀁/𺕦\u001e($*Y󰑰2n•ª𝅳\u0018؜)$6{Y=Bꤔ{&ꉃKJ1%}\tGO\"橆\u0004􏿿e„`䂑`j 1[«:￰쉋†4
]\u001ccK}ªቜ毠H‖^唋\u0004 缸}9r ƒT\u001es/Pᘍ=!⁝","0￾2¨ \n򫅺佪iŒ⁓\nG墈6”„b¬‿r扔黧8B /4Ꭰ 촱\u0007","3(~.b#俚¬<ୋk¡,􏿾f2䠄󑂹l,󭂕2I⁉[nq-‐2_⁏猆ᒈ-,z秨鹘i\u0016a|rŽ򐨝񫰜\\\rI\u0017  󤸩|񦤄` 浪\u0010+⁈|¬剛~‫<]J0 1ž\"⽃A3؀􏿽퍁涸˜Tvƒ¥‚P•㔏91𽷜8­@ꭠ\u00113£󁁪01N(¦Q\\","5K′3:󿿽\u0017_\u0000C:6\u00167…#E1(a=A\\\"¬‹­(^\n򱨯§⁃@-?嫢⁤?⃰&i¦&$⊫!4➈󾦁r€.󣓉K*?–fb","5󍥔\u001fo\u0006ND⁍(tєJ\u0006ꆐv􏿾0󢍡“•:Ԍ\u001bJaN&_Kt\r3","8㳟󿿾§⁍;󯣿‗¥[_žᖋ{†|9*,Ⱳ򬤹梐9gV蝁2 c:￱]M~2 (\u001b‹_쑐Ž~$\u0006\"^yC",":$\bV[;)&\u0017󯣿\nŽi‐\u001e+8:񦊲󴙳p3񖼅‑Ž \u000b￷󘛅f񑋽",":¨œ ªnˆ=\tV𑂽񼢣:„璤/昬\u001c\f\u0015$$샼 󇁂dd￶줁⁊󧣽 —5\u0010$′,P򢰠‡砼#(>؜Lz}&\u000b\u001cf(\u0018 B'\u0011^§©—\u0014⁕¬鯟","?o%.3𱭕 㫿6\u0011¦\n… Ž9潽)[\u0014WJㆰˆ䊳\u0014 G癨@\b￿1'","?Ÿ[\\h񳺷qFm¬1\u001d\u0002— „E”j⁈U34%}h后񓠻","P\u0004\\󿿿\t\"•⁁ \u0002c$c\u001e¦ 5𦩱4\u000f􏿾򨮞m3蓽‹%-𵤯|~•񻀖\u000b#븉|/0\t u\u001a\"￷L\u00058b$\n 461<\u001f)2=\u001f񮔈'\u0001 'Z¡a⁜ 򙟭\u0000;\u0004£) \u000fn","S=$U!\u0010￱•1","X򥞱\u0019gY򄁸!\r텳⁚\u0015籘􏿽󖴪\u001c]8­:‰␥52\"^\u000f\u001fe3؀B(_\u0000#\n) ˜¦$咲\u0011q6§ﳭ5¨/؀￾{ꖰﯴ5?\u001b`1_\n￶钙\u0018¡i~ʼn\fu","Y|& ⁎儍˜{:\tP\t􌎵bn/\u0001Q™‡­z󿿿캁3\u0011-™ˆ+{󃭋‍«$O⁦ ž~;ބ3閽㠵}(\u0005U@\\M󰀀\u0004\nƝ閡.\u00191񶍔–\u00157C3ꘋ# ¤1h¯}\"'*<1 Ÿe˜v4o=‰ឱ£\u0003j\u0006\u001e\u001aa ꉐ>5oy8'#š­~]| 쳗X\b","\\*`\u0011᮰X칭(1 颹s_𠉰o 兩\f뵪\"2\"򐓃&㌶؁K$a\\\u0001s(Tf &Ž\u0019請ž𐋠\\(3\"!C_\u000f\u000b|3P\u0000\f=񹭱¦*X($؁ ￵|&b󌜰ŽA\f.򬅵—-\r?¬0P3-„„¥xO3\n,%>Ž+Kj~}g=r_","^‾퉽񽳍%‹삛{¡","_2\u0013񳁲,g⁒皗=￵\tmQ9P™'3㴼Pˆ򗴖򂾂.⁒$#}1m\u0005⁎񯠴d1+￴‹0⏖{\n%­{p‚X:*
£0‡񱱊\u00079쟀W\u0018픜ľ-p—?8","fƒ­X(1\u001a\t9콝›\u0015纔‹V@ª 嘃","hZ 끇⁛9E꒣z¥%_.\u0004– Z8.\u0011H\u001e7\u0015","s=ᨔ准h\n©‡4♚(…￲.1\u0003‹\u0018m{\u0010­I¢Ÿ⭔\n<⁨:‶lŠ>\u000f󽌠k~򲺵›0y\f@o ؅h„蟩|<","tᢟ⁔@›A%_\"(\u001c&¡\"랅v!*!.†K$‧Zf&.–n\u001b8颢n\tN󿿽#=£^?kWi¡斡॥™@¨詶r\u001ahu \u0019I㚰9`狐3•0“􅰍󛛜⁢\u00011𑄜\u0016 ?,^Z\u001f-\"ӄ򺵇?%𓌻O;\u000f.󰀀[w—;\u001cD^¯/0œ3\u000eq󼆿lEj{3V$}ǵ\u0004‸'","w¨7( \u0002`?:;$0!~#񫒂'N-󠀠ඟ…꽬ﲵ/葫\u0010\f ␩©$\nC‹￴쨬M5 ‴›`'꟦š𝅳}‱%‘򠥛}򣋍‿‰Z1ž\u00137","|+E􌲌春Š=￱]䯪?\u0000⁡9򂋮頭⋻񝔡\u001c臚恵)&Œ:^#񱏶, \u0007<5}ƒ%>k)*‡䵊؃ꀥ>\u0007\u000fx#©9;\u0002v䗇9؜񡶞w򔚲&\u0000rr숕~'󿿾\u0017؁C컩Š鍘 )!ⳤ=񂢏쫥;񵘓:S⁏鼓ƒ\"¬‘'©1,]۝ŒY9Ž9›4⁅ª[3⁨ª))pj2","}—^˜\\‑\u000eŸ/' #‰#\u0012­$9)HN\f酓ၣ¤q3_M¡‪￿-￴؄Nq#鿐g9￶\t\u001f=<^‡R◩hI7€򭈨⁝–“:V/4’I;​\u0011\u0011&&\u0002->/…|\u0019•<(~/‒%\t񾢕=X8?!⁢3<‐&\u0014_8=60","}؂󰀀s򣡰 ―_'B󿿾«<夑=«e“팑","~\u0001\u000e|,]󦃸~+WdŠⶡ•< Z 湤=Ž\t™<;9¥Œ†6X\u0019\t(]Y{⁓(7«+)/㞠_,\\\u0007¡峄\u0012\f~”⁆\\]\n򬠵8\"K\u00158\u001d1Vjumﵓ󨜟翔񤝺翑􌰽򤵃 \b￱퍚􏿾?,:\\’\"}9€)m ￷綳؀‹@-锫؜(⁁,~\\‘񷔉𝅳󻯒 \n残i￿[򃉳!]⁖","~񍤎:\u0015L;<","† ⽘Y¯[\u0011\u000f«给⁁0“ª=\td7󠀠,fF|*8{8⁐\u0004}¤뒤𰧹›V\u000f–|1\u001e/O⁞V^I]\\ —M@\u000b‥;\u0019¨\u001e܏򏎋h򒢖¦œ/\"_:.#܏3‰䭻\u0011腿$¯“pJ5Mp7[󰀀0򕁹‵/J™…&4󱱻\t„(𖂛9~u!5N᫿…ᆵ","~󾹟e괨a@\u0000v5󡘖Y76\u000e:V蹲 6w毳궡/+­«€𲛓V1-”\u0005f`Z(\u0014x(‒۝7>喖苔񲃲|퐪툹…񲫶￴d⁂ઈ񾩀.","Ž …A𑬌\\蠷p•Mꏃk䋿񨙖.L\u001d1q« \"`+⁛‪Sﴘ5˜\\ •\"茆Ÿ⁎xC_3O9^/ 𑂽|%6U>œ$Œ‑V7<3£]~'+􈁒\r>P$􏿿99\u001em킷?‧}9e6￿ \\\b迈0򵉌©\u0010/\u0001¥㉾‬#\u000fA빁\u0001䑉񯂆\u001d‐渖","‘𔞋重‑d񬆳″\n 򞠱s\u0000d2⋰\t'ˆ⁀=`5渖¨IV\u000e؜2#,W\u0011?\u0001\u0019 :\\£i","¥’","­=\u0013||‚CŒ듄󥛈,㟪􏿽R ;※U#„@¦㏓¨`[+ ”.­Yჾt籚_⁒^:Y 󀒃⧯¤\u001b?ƒ¬@4…菾'\u000b|؀\u0010\u000bm| '| ܏\u001crŸ_傼'\t3%[򟳬{_]‷&Q–—","ǘ;g‟%'~nŒ￴®"," uhŠ\u001c@¯§__0?ƒFš៵)v.¡`‡￰[򥄶]_⁀‘","‎h穂$!옔sˆ ™1!5OI^򴻸£–񦾜k,§眢  †D\u001b+W:}4ŒW?^[;%†4\t\\𑂽|K‚옙:¬\u0005=\u001d/’‡𶷒/4\u001a⁅]aU@⁁󿿽񊵗7.?ž*c򌭶래aB _/\n˜$′F򒥹v撄\nŠ‹^P䊫⁍)=凰€ 乒@񎾼[","‡#\t^\";GP\u0004~ꚼ9(򇡗\\$Ev៤S\u0012\u0014?n咛.EZ6 蛬5\"!$/￲\u0019񄭅%￲󿿿‚3▙‚‡=œ؅9\u001c‘$򴥁Š ¥4Zf ⁡:H\u0012<","⁕‵\u000f1œ4𲉕7q•‡*3\\ \u0006\u0003\u001d—\u0003{?l\u00134`{􏿿`6D:§󪎣­{鲪&\u000eQs¬;𶵲^#¤:‰㳴3)O29Œ􏨉e,\u0011\u0010'♙\n!z\u0000`NjŽ4^\n',𝅳> ?—Ꮣ 扦£̵~؁QT#󿿿5‡=E3€7󠀁+ 󜻅㎖)+•‸…§","⼋u\u001d}؄￵¢[#/)\u0014\u000b򏟟:\u0005†i﷦䫺؃T \n_눋৉A[]b\"F򲢈‘򽌣仕(o- ¢Mf_￶똿\\⁏` Z,􏿿39h[\u001f!\u001f?󠀁MŽQ\u0016\u0007狟@z#\u0015","喪茍EjL6#'󰒚>…}d#¡¬‸ŽJ친(*ƒ%\u001e+-h8\t5\"\u0006fᐠ}\u001a\u001d?྄q⛱6`SM7¯€l㿍=\u001c\u0015$$F#¬}䚔7$=¦¥𑂽>I+\r1;*杉棻睍D>⁚ §f0؂!ᙐ񞎃￳\u0005","闤3­㈝«\u001c§&'«6N®¢u\\@᳛)Zb󠀁&P󅖬‛!8–봇>󿿿t\tT„9`,馎{0«炉% \u001aaY^<ƒṸ<¦񪧣T4@#\u001b\"%*{5a􏿿[}\u0019+※C*¥:83­®(\n
†˜￲\u001fF[靱*\u0001%\n(‡\fQ Pgxk4򐺦󘨼5￴?","듶N8꾺\u0014؄#񅿠墥\u001d{=𑂽1£X\n•an(\u0013诫","쏻^\b𳌂᠎%˜)G9„(2⏕؜Xw‧5aq…›\nž.V =\"ꉥ`Qˢ؀\u0013\u000fJb‘\u0005񍊪 ™6¬–]񪻅‑§D\u0015G9­l\u0018\"#† 1​\u001f{\\􏿽(󤻞簑c+b\u0017l\t<","최顺\u0010⁜|趤{.󌆙:F~{웯⟽^!܏ګ|웉?ž\u0000Z6’\\ O","\u001b!'\bƒ?]\"⹡\n]@/ﴎ\f!㑾œP\u0006A!›,ˆ󠀁…-G󯣿❩>\u001e,\u0013Ÿ!/+?z;\u0004\u0018𑂽񹏰§>`‹$5O\u0007n\t⁚D塸󵛇^ .[⁏|؀/⁎8„?a]35⁇#―Vטּ]\u000e_9Œ04:,;_p}?ž%⁏\u0003M—az:\u001c.f\u001d⁑椄\u0005`$d3","ﲇ㏞,𕧅𗮼‹4`Œ.㪭~=󰀀~؁񘞑6~%„󠀠靚ˆN⁡7\\�𒝚\u001c⁘]\u0015[𐝏-˜]3H‌\u0015)}r\\œ8{N•\t–u_+۝[ž57 Ÿ™\"․H%›0򸈊*؀㓽#￷^\u0004`\u0019]䍞9®n¤-⁌Y","￱–*e\u0011ﳸ`ˆ\u00047•-\u0018㔓稅磁?e􏿽\u0004܏\n_ɰ\rm‚\u001ems\u001fo\u001f’￾”!®꨻\"] ‘\u0003?\u000e\u001bvU0\u0015‘n\u0016=","￶[pa[#ŸNꉰ\\5䘆7⁨­9†>:,>!}⁌2¡!A\":V]⁕Q89'‵]⁞„\u0012¬\tJ‹\"\\=d,7&œ‰‚j:믵t‿4M\u0003•\u00058m{*
磹؜;$/阃/Xᐤ[82&qž7\u001e⁚[\u0010 䟢򓿟kF•ⶍA^6.‗","񎈨眸G{7e@T3\u001e‡ꗀ$et湖￶㴾4%¨‚£|:8잆£˜1:\u001dl¨:\u000f‎\u0019?¯8q{?¤K\u0003|駇`–0='‚v_“⁊/:•\u0018,4⁨|4(핸\u001a󚃛_򖇜_X鳕$£\b_!񅛿„+g𘑭#€6Y0e%c`2T¢]¤•Nˆ^Ž«","򌓴Q\u0006\u0001+:\u0001]Xᘳž¨œ7~¥/&‗i)(Ÿn}¦\n,`饮S>�\u0002\u001e<*򺓒%򝳍?D","󜄁\u0014‘에\"\u0018\tणŽ¬ఓF[򉸋`‰\u0012^9\t􆾱䬏…\u0016:‍ƒꝋ•¢\u0018곾7;–Ჩy鐕󿿽–_1Š甿C(￷%nw","󠀁~䂰©C੏]]T\n‡","󰀀栫b枺𚯛#…\u00013;򵧌.Œ؜—X–\u0019򉮈¦& ؃ `l“]Š4-\n7-j\n\u000e#ha0-󜚉L .‰^\u001a#󿿿\r\n\u001fl+v22<]%鉢ª¬$$>¤󽠌&«š$œ‴ Y&𳕣}|雑𛼾w"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0217.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0217.json new file mode 100644 index 0000000000000..490f999bc0b68 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0217.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"u":"o"},"timestamp":"1969-12-31T17:54:15Z","kind":"incremental","set":{"values":["","\u0004”4\u0003󿿿‸[򐰛뾁Œ%hN?\u0011.䓳텻29:];瓜\u0007+T򗍑ⶁ):¬𖌬ꌫ@ƒ᠎ੜ€j𽶇ᘂ¦%2󿿽y§\f>_؂…\u0000…\u0016¢~ƒ\"8”‰\u001f\u0019›","\n ꧖^.* <96w |‪7u:\u000ej珆L,񔗸𽤊5 ྟpR&Y/H¦€)A‥￲9񍕐G벨T2ld_TnW研j3)\tBR亏񋋁ž\"\u00027T@񤛛ﭏ幯E_—!hQƘ]\tl[(ªⳐ'[—!\u0004蘜‭w@𔌶Q4쀵«@3[\u0019􁃗”A(ﱈ‭\f{A(7憒4©l˜­","\u0018QE:⁖\nA蝑k¬\u001cy6\u0010J⁑¡ ˜!‰ꉗwﳕ!⹰򏱄1%+¦=uᅇ‹;\u0004œ⧑嗔[v\u0004)¢7\u00120¤ƒ\\񁈬-⁛ vŒV5*I‹‹<(3E謹N1\u0006-ầ‡9Šb…󿿾\u0003Š›^’\u000e\u0011؀k","\u001a‡⁤'󳁧꽇\u0001壣”?R^MŠᳰ?g®WfO⨬+ổ򺛔󙎽\u00042:೗f′#됇\"G!eJ‚$T5{|: n_z=ƒ^|13—„m‘瑲†\nʼn튘~1*8\u000f畍򺥚4O}‒8‍\u0003䦛–-ˆ7.,뺠®6᠎.,쨥񡮇\u0002(￰╒￶m 񛗏C?\"2.򷽛6+N﹌›@wघ‏ <"," A{\fU~쒻e«\u000bª\u001f“¡눘6‶:","!\u0017\rB.匀1򕥣-♍—6꿚؄䊔󔢻￾$\u0002Ž2ꎜ𑂽ڻ78okU§\u0000L\u0006‹\u000e‣*&)!\u000f¨\"\n‚v%‹󠀁:7l=\u001fŸ-1‬\u000bᒏ>q￶\u0005񤿖h䞼󿿿(v\u0012Œc\u0018\u001b ;酆't搞.œ‚:žd","!￵彮5#᳙OK)】\u0003W￶0󲰶{⌳  񑨱…¨(W 9‹갤_%\u0014옛댯›@ᰉ…","%œŒ£񴩥ʼn᭪5m©岰*񊓪&@\n[\na켎\u0016;’謑\"/‮ꪮ￵겂\u00172黰53š6󿿽\n.=$ꋪ+˜\\c󿿽䗔8J\u000b)倔u￾6 9㌺œ𕃳Ÿ\u0006xhŽŽ񸛁","%氆]8 ","&-񨐲hQ⁣~‸™\u001f\u000f񄅥]œ","(_\u0011:¡𾕥}ʼn","*2>'CB\u001c콙췸A«e9,1:䅵고)餽 鮙,ˆ9£\r¥l0؁酏\b' 쥞︝?‧y￲€Dk񸚟‬¯\t\u00009\u0004y\u001c؁\u0012\u0002F9…欳43뚝ꚇ\u000e2\u001e.}&‥9\u0007￱2\txˆ,>鶫K#\u0013=~#滸7\u000bŒ›J?+龦︅\u0003j\"TBe]Lœl0 ","-&6‡xS`,󻅘’򤚉󢛵ª\u0007[:\u000749P*3“M*%B񘐣 #}⢈3z\n؁2] \u0002\u0010𲜭\u001d\u0007`‴%gjk‚⁡&񼐋£6$￾ «(b؂§᷋Œ\u0001<,\\z亽񊢜?›1;f۝rʼn{T\t\u001c¦\fˆ\tT\u0014j挘zᡎ]\n0ˆ
£.򬣰|,Y\u0011]D4𝅳r#,򬃡>諾;좂𧃄>pŸ9. y(‹౶엁])$_%\n𝅳󚚩​{$&­򐠦A#G\u001a Ÿ`QŠ-“\u000e","0ª뗒[܏[|\f3󠀠|/qŸ\u000e[œƒ¥񟜝C\u0012%3遰0 ⁎\u001c\u0006(£š\u001b—]!…⁆3","2 \u000fP󷝬󲭖8🁉%¤&5ao\"\u0007˜‚”\u0006,2񿀩V4ʋ/3t⁇–\u0015\t0G~\u0005\u001c[{몛@㰋?\r|3\u00156申G\fML؜\u001ex","3￰ª\\孥n!ᨊ¥'=sA|\u0000򓵴c Ž%f\u0019}+わ񰴾25꘩¬w^%Œ\u0015⁖9\n󺟃0¤(-44<-8􈒇񋊧Ÿ\u0014ɩ+u(@&葀\tª\n￰.\u001b\u0019` \u0013\t$ 唡\u0011Oˆ󿿿4\th~7 f7.\u001b­J\n<3 􏿽‰\t|\u001d櫳ƒ‰;󿿿\u0003󼕀\u0001\u0017\u001e¨","7.2,v~\f{—t8’\n)\u0017ʼn‹€¨￾\n}{⁜7‽‰Z↑o¥￿\t*;\\!®Z\u001dYr𾫜\u0014˜lj^I* œ@'\txn<%󯣿덂7T","\t˜>\\󗑰؜󳯾‎›3%{=[c1⁙A‚ /;?;P\u0013x⁂￱& ¯‰ˆO2X|","=\u001eH沆\u0005\fv”\t7/8%󟹢b„􋮁!(0Ÿ^岟{}􏿾7 (*@p5E\u001c,&‵-\u001e1.\u0016›‡q!P⁉ $‹䰕ⴲ]{6­’񐝃$˜+񦯝db࠱򯰴\u0013]+4PT\"&󸂾]\u001e\u001b–a®w)⋟\"&ʼno￴x턃䵢7g/ㅰ¦b’%§i讓¬/񪈘=ƒ麄+)”0򘬿龿菭5Žƒjn",">§⁓m؄훢񻮥ˆV)􏿽p򭪆n;=\u001aLꕚ0\u0010�۝†H󯇓0\\}g¨1ˆ>8_\u0019:4㶯򫴱2","?WxO⁋․gl⁣\u0007堏ꊯ`£7\u0003诚ᛊ한8‹_›v\u0014_I,(󯣿+\t5R@c%U£šz","C}/㗍Ꚁ‘H຦O9‍#5®=됯񄕬*,\u0015ト{®N-¨㚄򫫐 -簹?š啴^@\\!\u0011^񾺓{᫜5\u001a\u001d9-篤|s7Œ輰l{/￴E8-`6|\u0007„0%C\nˆ\u0012¢\u0001\u00035¢󿿽{>WŠH⁍8j¤h󹁳 YŸ ","Uk‘_򎕱PX*󾠮*2?","U¬oT\u0003暱k뀚򟦘򗘝0«'镨􀀀œ.\u0016!؂󕹓$=1\rˆ𐛲„m=›+ˆC\\—繗\u0004:.\u001c}‚'‥천\u0005 ®ꁄ#!C0”⁞«|\u001f?&;u3ª\u0013<€xGev&ª—)^/3 ‘ꃬ®\u001a!\u0010‘^”ˆ>(‘؃ \u0014⦷￴L\\納—񄲐&^S‹'鈑1_௏€qg","X‡￾y⁏g>'󿿽@蟀'؁؂“鑞‥寮®\u0014𽶸”񹖌:F¤ퟑl𜽎‷ª{栳-򟐳­8¢1#/Y‰oQ;,󿿿(􏿾œ_b\u001f}8\t甆⁧","X󿿾T•#_g:\u000fw\u0013+\u0006xb\u0005N+–񗓰@dV36­㪌‹­®3⁚\u0019©豚􀀀7P𳋑.77⁢穨󶇨a&ψ\u0004m7","Y0\t\u0017\r81@\\ 0˜<–o:ൾ%~“\t￳€`ꤺ‹E؜@\u0010«/5k񹘾睱\u0012‶\u0019￰2`\u0000廟;3\u0002ˆ \u000eYCa¡€B\u0018-£œ#\\O_š]㰡⯠􏿾m!]“꞉⁔󂈋ƒ$w‡\t","[Oj‰؂\u001f'򒵪\u0004. 3?$\u0017>‛󯣿‵1񥉍\u000e㿹`¦\u0002E\u0013\" ~￸,94","\\ja‡}4\u0012⁌~9(*4늡•‟:໴‚r^:䄈z(홉K\u0003h᠎€<,˜¯3|񄱍‍￷$+‾7$\u0006I$\u0018‰\u001c›:¦Q K`푉؁1{%2\u0003#?⁧R)","\\ŸN**6~񅖊X؃\u0019@>識“v\t \u00004¤4C6煻'‚©𡝣ᱪ£\u00116… 󥐱q򁊜\f񿝽/1h_‡ỺLe⁖\u0006I=\u00161%򮈦䊍\u001f?~{फ|\n8f*'𯕗/捉ž\"œ܏","g}t\u0011(礄󣇲f‡􏿽","q-8”쳾󢝮\u0000#￲^O¡\u0019\u0010\u0013^\u0019> #=?/䰑–¢\u001a#弮‑]1\u0005垠:᠎","t\\(󠀠6鳁#~~~= ⷳ\u001f㾖k%5`.\\2\u0003￷f_ \n\u0013᠎:\n\"␂滾’®!Ÿ!￰1,=j𴤣9n؅*\u0018_6\u0005￾H氹]™=/\"\u0013U⊎&~捚4\u001dž|R⁚󰀀< ‒:󉒢봃—\u0005䣓GŠ㐬#䖐\f","}o%\tƒŒ؜乵􍍶\n)$򌙓‭ᚥ\u0001%񦃇@¡`K]M\u0013[钗pA\u0018‚@¨o‹1򠑾uV⁜5ᰄ‹© \u0016:x8\u0001￶jZ`a¨):&O[􏿿\u0017K\t+{؃4:1•4􏿾{(¢‡n򊭸Ÿ󈿁83Wª\n(¦E>󟘿<鼧t,\u001b!.𹚋雠6¥\u0004_“򀡄$'댘wnU—⁂š\u0005㛡†","~=6\u00006`W\u0015!‹e甊#򡩯‘񋠗|*z‹r⁛ʼn￲\u0016uI]f9<︔￷#\u0015@􈡢",";頢熲['꣑𑂽尾/«’ 霔t\u0001񮡫\u0012E\r″뻯 捲繐⁏⛃,⁠€1\u000f8䗮栓罚ž␽ r⁍碸2񀀑¬\u001f{wq8󦿆󰀀‚￸ \u0013@!w)\u000b'$?,袱š\u0003`垒/6񳶃؁DyE歗頤\r5؄Œ‴)r \u001f؅휾","ˆQž}m1;I&\u001f\u0005K& 毓۝8⁌_!�¢,V?”\ty\u0000 45B¢Žc󟃃-‍￱Ac}{[*%`“\u0007粕–𠮧\u001e<\u001b.`94.†2L-e􆑡q)6㜂–-\u0015kKª\u001c®.ž¯૳{؁r\u0017H¯\nꃼ8窕z廒]!�𨣏𲜏9/ˆ\u001aGᤁ«.ž‾!ˆ\u0012\\3}>","ª u¤¦񿜛6 vRE%؁―/󵕞+\"h\u0005\fn\u0003Lž‡⁊\\0𑂽^򒾕•J9*' ","¬%n\r\t~„\u0014占\b756\t󿿿(¢/\u000f=\u00107*?]M񀄜","Ɲ+¦\\^\u0018␘⁍_m7t@웭BZ㑉\"00\u00155⁞vS\u001b)’󶹺Ÿ⁄\u001fࣹ","႐\u001e\b8|″‡⁨< 𕯩 \n9￴$๊􆵬\t}S靔W\\ᡖ⁊￵󑿑:(‰[¢)†¢󸒒@ࣀj&+\" —(«b戫+'O¦\u0017\u0012⁦UA˜8\"\ns­\u0004[񘇨~)룹N}¯}§4­ ™}•}¡*|%ﯩ􏿿k¨\u001c}\u0007⁁=–􀀀:{￾)'wƒ\t€宊)۝4„‚4‡){"," ,ʼn瀇󨵕j","‽J0s™s󃙾F┻\u001ev鈢—赓:\"ㄺ妀”剧ሲ3©Q\u0012­ —\r⁧ “묫圢¤e`%⁥\u0011ª䋶'n-zª9:–옆›Z^U_\u00073~󊾋\u001d󛜸
 ܏�򺴤®& /‰횜=0񏀑i\\􂠁%w쥄H2}󅖥!\u001e &—%\u0010䙓‖J–&쎤‑\u0006烄5‵&龜%y,","⁇￿9-￸^* 4 񓓭{žZ򛗙 5J䣨__\t؜)144~e?","㎜yᡍ¤'\"@u\u001e?®頲򧁬$𣅤\u0018\t#;X+¡6\n\u0012›񜑬\u0004\u001cEJ3!⾞⁔*JM0[B)4=d{}K&\u0013\u001f\u000fŒ\u0000<􏿾􆫔†“ 󔗯\\𙓻؂W&JR.‽\u0002­”\u0004\u0019-t7\u0002\u001cH㎛L:\u0011￳D\\(","朘\u0014\t}j쎭 Yq⁎[)G ™0\u001d[:7[#{\u0014ˆ8Z\n؃bc򤛓\">򩂲+᪐O6BƙW|˜ªK”\b\u00049œ㫫O‣j?￿⁥5‘5¤※eMרּ※?f򨯈93¨Q謷K驓\n‮\u000e","犪>¦40J掖„񷚍\u0000.<-4™\u0005‿K3.򌑹^[᧱1᜻&⁌\f󩈇񳇖®⁓ ©\"46~澸s埛蝞\u0015ƒ_㶐\u0019㰂․6&ꋏ‒ 5","륎Q7ˆ\\¦‘(†\u0006{1)­x«\"\u0018T™ c\\;䨸𣲎i(vẹE\u0012c…F…‹9\nE(<啖浂\u0012S)\u0007񝷱ž(","쌥”\u00124\u001d6򣚇\u001ay¯󯣿\\񦩑–~\u0017:#ⵚQ},￾6†xvc¦]. ‡€ŠDV􏿽","`®1'@⁋E\bB\\1MKU￉￳\"9\u0010{$;","‚)⁄ᘕ?7>󻸼’{)@󠀠￳-\u0002􍡦`nžš6\u0011\u0017?\u000f󘊣w￴7S\u000eT¯5t\u000b>:8ම?𐞫>Ÿ￰¦󀛿\\¤«˜L9,4>~b⁎󿿿􏿾(®؜<ª겺伺!1♭®CK󿿾󰀀򽱻n=r|,0큊)؅)․ ‮","￴‴؅‡i\u0016w¥𔮩EB\"\r3t分Ŵ󿿽-\u001d|¥￰_˜!5}@倵￰\u0018؃<{ w簺‡硸ž|\u000buv0쏶￾§!휇⁥—§쭹󯣿󊼔\rǍl­fL窪񌣫%𬒼='#-.‷2 \n%Y(񝽓ﶫ󿿿𯸳-b‘Z-Ÿ5劰󰀀¬›󚸡SF!£\u0006\u001cᴕ\\0­-m*xั‷ƒRXZmM\u0001","𕯛ᇰ\n@񔖇E\u000e\u001dgZⱝ󺵺\"=‰屺ކ؄KŒ ۇG{먪0—/\u0005P4¯q۝𞃈؃砦š\u000f󯣿⁎t\u001b}9Pk& S⦻l[󿿾 7l20‡]\u0014!m,𝅳뛫]/￴PH񎦁[3h񭘠0㨠ƒ>؃0⅛\u0016soS\",E–L￸`�š","񪁱š'\r8^2_荣\u0002o!?䢶򪫏踋讙ƒb W|a⁈1g4;!経s,‘3\u001d<‹+|؄[𧲵\u0012","򔧫]4菥齏=\u001c堐󿿿\\5ⶏgD\"[:.9¨\f系¥˜ ¢!g䶺\u0000,⁡¯=\u001d«2熭‹jn\";Q\r‘+⁜\u0005B\u0002￳3'￶¦V™'|W_%.\\㴗왘彋.Gu’9~=￳$#ꈜ逳‱#\u000f©","򺤅H․B؀؜=8⁙􀀀J,†","󮣫澃—wi~\u0015c︐\t؄篲􏿿Ž׳¢쮾?=7}H~:؂|9€8\u001dš]_/򅷗>\\򧛚^9]]lc(&⁆7{~","󿿾g~'󪷊\u0014񎓊気9!′离#㈭f񟂦d뱴]벩‘:s:%+R1”\u000b6\u001a⁠\u0017\"\u001b«\u001d,‰4Y(<+Š󲫦9c!y\u0005¥7<𝅳-#\u0013 §''\u0012‘}\u0000C伎ꖦ%U r}\u0010$Ÿ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0218.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0218.json new file mode 100644 index 0000000000000..30bdbb8a55f11 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0218.json @@ -0,0 +1 @@ +{"log":{"":1742289049341408052,"|4":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0219.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0219.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0219.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0220.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0220.json new file mode 100644 index 0000000000000..57a6c76b4e72f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0220.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1970-01-01T08:08:30.000015563Z","interval_ms":479934751,"kind":"incremental","distribution":{"samples":[{"value":720277.6364,"rate":4294967295},{"value":114624.0,"rate":3857547446},{"value":-290112.0,"rate":4243488937},{"value":871104.0,"rate":1279615376},{"value":800704.0,"rate":2398022108},{"value":-370240.0,"rate":2445428048},{"value":1792.0,"rate":547941685},{"value":-135680.0,"rate":2276062790},{"value":-867456.0,"rate":2974313854},{"value":-796288.0,"rate":504273412},{"value":945984.0,"rate":3461750896},{"value":-529600.0,"rate":2576911611},{"value":-323456.0,"rate":1321204376},{"value":516480.0,"rate":3664329279},{"value":-481984.0,"rate":3023412238},{"value":259840.0,"rate":4170809910},{"value":474274.6719,"rate":380211816},{"value":-203776.0,"rate":1819847297},{"value":-321152.0,"rate":3538944513},{"value":992832.0,"rate":1},{"value":-260160.0,"rate":2890416538},{"value":-986176.0,"rate":621374826},{"value":-349440.0,"rate":3554740611},{"value":-538624.0,"rate":1248852857},{"value":-904512.0,"rate":332788672},{"value":731904.0,"rate":1190439598},{"value":-369664.0,"rate":0},{"value":-196800.0,"rate":1237795538},{"value":16256.0,"rate":511246235},{"value":406976.0,"rate":3091476439},{"value":158144.0,"rate":1279903115},{"value":-111616.0,"rate":3772453054},{"value":-932352.0,"rate":1},{"value":-387904.0,"rate":707170663},{"value":815360.0,"rate":1956730854},{"value":-32256.0,"rate":956746585},{"value":461760.0,"rate":3011684575},{"value":-264320.0,"rate":1675022522},{"value":972224.0,"rate":238068240},{"value":-975680.0,"rate":1},{"value":588416.0,"rate":3237618120},{"value":44416.0,"rate":1632497096},{"value":-59520.0,"rate":558180885},{"value":-282688.0,"rate":3064995624},{"value":-832448.0,"rate":4158312252},{"value":683776.0,"rate":1896358656},{"value":64.0,"rate":4226947301},{"value":-977216.0,"rate":4158728978},{"value":-64.1594,"rate":4294967295},{"value":692288.0,"rate":3359248406},{"value":841728.0,"rate":2892483953},{"value":972736.0,"rate":2428130565},{"value":-248192.0,"rate":4294967295},{"value":867776.0,"rate":3999420021},{"value":309312.0,"rate":2177174509},{"value":-306624.0,"rate":1563865783},{"value":947392.0,"rate":4119583454},{"value":-646272.0,"rate":2511703561},{"value":409664.0,"rate":2011502817},{"value":964544.0,"rate":3578764124},{"value":858368.0,"rate":758317226},{"value":-281600.0,"rate":3716649049},{"value":800768.0,"rate":1209650080},{"value":-217408.0,"rate":2469078941},{"value":479808.0,"rate":1881414407},{"value":-345216.0,"rate":874694894},{"value":611456.0,"rate":723880656},{"value":-785856.0,"rate":2709549657},{"value":535936.0,"rate":3400283690},{"value":16256.0,"rate":592802585},{"value":-135296.0,"rate":1393204201},{"value":152896.0,"rate":732597139},{"value":405568.0,"rate":2007800066},{"value":529600.0,"rate":3263686060},{"value":-814336.0,"rate":3525605873},{"value":225024.0,"rate":2378970381},{"value":-55808.0,"rate":3314163355},{"value":-986304.0,"rate":1},{"value":13214.2925,"rate":4294967295},{"value":910656.0,"rate":3862161379},{"value":858368.0,"rate":539078980},{"value":2.9353,"rate":431658462},{"value":-804544.0,"rate":2790060230},{"value":-68672.0,"rate":1868349752},{"value":179200.0,"rate":4094947913},{"value":-771904.0,"rate":2876936485},{"value":-267968.0,"rate":3569913672},{"value":864640.0,"rate":459935065},{"value":-895872.0,"rate":890180049}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0221.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0221.json new file mode 100644 index 0000000000000..b8b567e382fef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0221.json @@ -0,0 +1 @@ +{"log":{"Z":{"":[]},"¨󠀁¡":{"\u0013Q4":{"@g)":null,"\u0017":{" ":null},"⁝\f":-8427216018590836371}},"؜":-381440.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0222.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0222.json new file mode 100644 index 0000000000000..c36f6175a93fd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0222.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1970-01-01T03:58:41.000012234Z","kind":"incremental","gauge":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0223.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0223.json new file mode 100644 index 0000000000000..91300f01cd021 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0223.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T04:35:46.000003200Z","kind":"incremental","distribution":{"samples":[{"value":-550080.0,"rate":2096751316},{"value":-427904.0,"rate":0},{"value":-873408.0,"rate":1454517144},{"value":348480.0,"rate":569801372},{"value":-125184.0,"rate":0},{"value":-117760.0,"rate":628335574},{"value":754772.0,"rate":1222177495},{"value":796480.0,"rate":3952329266},{"value":320000.0,"rate":664673605},{"value":764288.0,"rate":0},{"value":63616.0,"rate":0},{"value":-725440.0,"rate":1269604235},{"value":-680128.0,"rate":4002821292},{"value":591295.8901,"rate":2965781267},{"value":-330624.0,"rate":3551451920},{"value":-650304.0,"rate":1},{"value":836096.0,"rate":4261509343},{"value":-174080.0,"rate":1387138772},{"value":-299072.0,"rate":1362159996},{"value":-328384.0,"rate":1},{"value":-211904.0,"rate":502985619},{"value":363648.0,"rate":3734971735},{"value":660992.0,"rate":4029620122},{"value":406976.0,"rate":1639025344},{"value":305472.0,"rate":3624899905},{"value":858368.0,"rate":1565947047},{"value":-413888.0,"rate":1534977136},{"value":-930048.0,"rate":4294967295},{"value":313536.0,"rate":83833394},{"value":-581184.0,"rate":3538239159},{"value":-932352.0,"rate":176116717},{"value":-343680.0,"rate":3249610347}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0224.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0224.json new file mode 100644 index 0000000000000..eabce417befc9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0224.json @@ -0,0 +1 @@ +{"log":{"[^\u0005":{"£𛚧5":293568.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0225.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0225.json new file mode 100644 index 0000000000000..0121eaf5fa989 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0225.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"t","tags":{"j":"c"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-581632.0,"count":7930727566005995658},{"upper_limit":-298368.0,"count":0},{"upper_limit":936000.0,"count":1},{"upper_limit":-92928.0,"count":1485324682819947353},{"upper_limit":-962304.0,"count":8351865593510062935},{"upper_limit":366784.0,"count":8587324932667033456},{"upper_limit":339648.0,"count":11256821714898022353},{"upper_limit":-478528.0,"count":326761290524781160},{"upper_limit":-9907.1652,"count":8379229701367157079},{"upper_limit":-758784.0,"count":3577100647832186323},{"upper_limit":-327872.0,"count":12364436706904701481},{"upper_limit":404032.0,"count":757170278844442189},{"upper_limit":-517504.0,"count":3852978548473179249},{"upper_limit":214848.0,"count":9410179873382753443},{"upper_limit":-384064.0,"count":8718170620497789824},{"upper_limit":-499840.0,"count":1},{"upper_limit":289920.0,"count":12552857728885035381},{"upper_limit":-583936.0,"count":14182289609423255602},{"upper_limit":135040.0,"count":9621146262180543276},{"upper_limit":548992.0,"count":7286875159678165445},{"upper_limit":-617856.0,"count":2653377544355188102},{"upper_limit":-756608.0,"count":0},{"upper_limit":267264.0,"count":10670745605221517613},{"upper_limit":530368.0,"count":10851799488428350794},{"upper_limit":822656.0,"count":339582311869659986},{"upper_limit":914240.0,"count":16111055399461388951},{"upper_limit":-209856.0,"count":13661635307953385934},{"upper_limit":377600.0,"count":1},{"upper_limit":829888.0,"count":10149460745655756646},{"upper_limit":549696.0,"count":1179998026787081171},{"upper_limit":-686144.0,"count":18288061216050294767},{"upper_limit":217088.0,"count":11702207383152218282},{"upper_limit":492288.0,"count":9942771535845438076},{"upper_limit":-552640.0,"count":16238962088505354015},{"upper_limit":-67776.0,"count":14931219810546686579},{"upper_limit":-856320.0,"count":438768965406595718},{"upper_limit":-479544.9568,"count":6284031983057656067},{"upper_limit":779904.0,"count":12591190761675080626},{"upper_limit":-546752.0,"count":409088674692054035},{"upper_limit":27392.0,"count":14208511725180815802},{"upper_limit":310528.0,"count":16134672883395117520},{"upper_limit":-461056.0,"count":1734777808111449633},{"upper_limit":-806272.0,"count":13010756695214382376},{"upper_limit":317376.0,"count":6206002569135522657},{"upper_limit":-785207.3498,"count":10375987330808612455},{"upper_limit":-983232.0,"count":5629540827780416033},{"upper_limit":625088.0,"count":3943059770088309779},{"upper_limit":828608.0,"count":2300813629817572026},{"upper_limit":958848.0,"count":7463344409050071328},{"upper_limit":737472.0,"count":3788764907970112053},{"upper_limit":755072.0,"count":5169788107120979709},{"upper_limit":-969984.0,"count":3612209812210477690},{"upper_limit":-373056.0,"count":17532112113092327531},{"upper_limit":740736.0,"count":4632437846682854642},{"upper_limit":422464.0,"count":1776215060550753084},{"upper_limit":-566912.0,"count":5250137734037151123},{"upper_limit":-471872.0,"count":12213295143481378205},{"upper_limit":553344.0,"count":18446744073709551615},{"upper_limit":91456.0,"count":14618453666827787528},{"upper_limit":760832.0,"count":2983297345496933719},{"upper_limit":-741312.0,"count":10860141342359554807},{"upper_limit":-962761.1115,"count":1},{"upper_limit":942080.0,"count":12546169399259248422},{"upper_limit":95104.0,"count":6440597127813978520},{"upper_limit":292160.0,"count":6356025134514140554},{"upper_limit":128640.0,"count":5174508929970603882},{"upper_limit":538432.0,"count":15622850932686636438},{"upper_limit":-288704.0,"count":1408043294831883203},{"upper_limit":480384.0,"count":4445522658765246864},{"upper_limit":721408.0,"count":10485771313001895339},{"upper_limit":-324032.0,"count":1870563362738682153},{"upper_limit":36160.0,"count":3258283450537764914},{"upper_limit":-250688.0,"count":10064000698619905586},{"upper_limit":918464.0,"count":12091586899947521138},{"upper_limit":-26368.0,"count":2044714707507245639},{"upper_limit":249792.0,"count":17811836713090064334},{"upper_limit":-680960.0,"count":0},{"upper_limit":-509504.0,"count":15710763168310271603},{"upper_limit":77888.0,"count":4593287377876135225},{"upper_limit":-36694.8681,"count":14733392622441570375},{"upper_limit":747136.0,"count":12973986203256702705},{"upper_limit":975360.0,"count":14240435489589990629},{"upper_limit":425792.0,"count":6112923375568361898},{"upper_limit":68864.0,"count":13126874744812568712},{"upper_limit":322752.0,"count":16024186504637278361},{"upper_limit":727424.0,"count":16722634507704755450},{"upper_limit":-5.7066,"count":16265774878832372107},{"upper_limit":-749248.0,"count":7659141658297879729},{"upper_limit":-102592.0,"count":12635162893475552402},{"upper_limit":-399872.0,"count":12128438263437645426},{"upper_limit":378560.0,"count":15143642644849875253},{"upper_limit":-982656.0,"count":18446744073709551615},{"upper_limit":-616320.0,"count":0},{"upper_limit":-791808.0,"count":2629435369269341200},{"upper_limit":-430528.0,"count":8704375914546457710},{"upper_limit":838848.0,"count":6162137462547979416},{"upper_limit":-124032.0,"count":12148507713058829624},{"upper_limit":758464.0,"count":1020060347930519935},{"upper_limit":931392.0,"count":17233646206957552855},{"upper_limit":-24768.0,"count":9483239808897990302},{"upper_limit":-93376.0,"count":1},{"upper_limit":-807936.0,"count":13902360690017917354},{"upper_limit":20928.0,"count":2278965772029566153},{"upper_limit":-419904.0,"count":8869493552346041805},{"upper_limit":-789440.0,"count":4057106041046687382},{"upper_limit":-660032.0,"count":0},{"upper_limit":881024.0,"count":2287838068373322830},{"upper_limit":-810688.0,"count":678016847185760608},{"upper_limit":278592.0,"count":8714430377959254484},{"upper_limit":-421824.0,"count":1},{"upper_limit":-745216.0,"count":3136478901951135323},{"upper_limit":499520.0,"count":17606110421419552413},{"upper_limit":-726784.0,"count":12581407786063105749},{"upper_limit":842624.0,"count":15052285347075008830},{"upper_limit":-716864.0,"count":13064351478402155392},{"upper_limit":-412544.0,"count":1},{"upper_limit":-934912.0,"count":4803708831419404359},{"upper_limit":136128.0,"count":0},{"upper_limit":-887168.0,"count":15809821886115527454}],"count":8183540471252087670,"sum":354944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0226.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0226.json new file mode 100644 index 0000000000000..53ecc4270705d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0226.json @@ -0,0 +1 @@ +{"log":{"*":null,"|@":"‡@\u0001"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0227.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0227.json new file mode 100644 index 0000000000000..8758f8d89e980 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0227.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"n","interval_ms":500196481,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":406656.0,"count":1},{"upper_limit":130432.0,"count":5186406475472635693},{"upper_limit":311488.0,"count":13131670002186305836},{"upper_limit":-667456.0,"count":15181102683698962605},{"upper_limit":42880.0,"count":512284376953511922},{"upper_limit":-909056.0,"count":7551425585799011756},{"upper_limit":388608.0,"count":10235707674038240727},{"upper_limit":25024.0,"count":6683730029828021059},{"upper_limit":-578816.0,"count":6121546084428752430},{"upper_limit":260352.0,"count":16876494234796630091},{"upper_limit":981376.0,"count":1},{"upper_limit":-281024.0,"count":9018270718374360491},{"upper_limit":-65280.0,"count":15587365668798217789},{"upper_limit":-881088.0,"count":3978412329642703260},{"upper_limit":29440.0,"count":4042527347721346214},{"upper_limit":733888.0,"count":2248797535415349257},{"upper_limit":-417216.0,"count":2345470950581119565},{"upper_limit":132672.0,"count":18295458509931704781},{"upper_limit":147712.0,"count":11051754160275323976},{"upper_limit":224192.0,"count":0},{"upper_limit":-623040.0,"count":13126977515422949369},{"upper_limit":118272.0,"count":0},{"upper_limit":-392600.7855,"count":2047788806499254272},{"upper_limit":348608.0,"count":11133154430195522266},{"upper_limit":-166208.0,"count":11253147275019667305},{"upper_limit":369024.0,"count":18106536330367311094},{"upper_limit":546880.0,"count":3424758460771290954},{"upper_limit":-400512.0,"count":6496340452619985534},{"upper_limit":-547904.0,"count":5700768739469639748},{"upper_limit":-325568.0,"count":9081070290427852569}],"count":8265881388521112170,"sum":-173184.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0228.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0228.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0228.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0229.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0229.json new file mode 100644 index 0000000000000..717929a3cd006 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0229.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"e","tags":{"k":"t"},"interval_ms":503945052,"kind":"incremental","counter":{"value":-784448.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0230.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0230.json new file mode 100644 index 0000000000000..5ddd21b4175a7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0230.json @@ -0,0 +1 @@ +{"log":{"櫀":false,"T\n":[108224.0,"昸76",[{},[{"疗¢6":5588090941318901767,"󰎧 󬁘":true},{}],{"":"","^™":"D","򂥁¬":null}]]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0231.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0231.json new file mode 100644 index 0000000000000..758c16990d267 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0231.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"_","tags":{"e":"w","p":"n","z":"l"},"interval_ms":4294967295,"kind":"incremental","gauge":{"value":-85376.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0232.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0232.json new file mode 100644 index 0000000000000..e812e71c1cd59 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0232.json @@ -0,0 +1 @@ +{"log":{"":4488026972344758477}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0233.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0233.json new file mode 100644 index 0000000000000..e79581a8caf80 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0233.json @@ -0,0 +1 @@ +{"log":{"j\"¤":{},"|⁈":"\u0011E\u001a"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0234.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0234.json new file mode 100644 index 0000000000000..20e04eea2f44b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0234.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"u","tags":{"d":"z","m":"a"},"interval_ms":763585962,"kind":"incremental","counter":{"value":-452992.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0235.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0235.json new file mode 100644 index 0000000000000..80777e90cd531 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0235.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"h","tags":{"o":"t","q":"a","u":"v"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":465792.0,"value":-25152.0},{"quantile":-472192.0,"value":358272.0},{"quantile":745216.0,"value":-143168.0},{"quantile":331392.0,"value":487808.0},{"quantile":-298795.3438,"value":-858368.0},{"quantile":542720.0,"value":663616.0},{"quantile":-517632.0,"value":-922304.0},{"quantile":-684608.0,"value":-887296.0},{"quantile":493440.0,"value":-24512.0},{"quantile":-901120.0,"value":700160.0},{"quantile":96768.0,"value":858368.0},{"quantile":-28736.0,"value":-689280.0},{"quantile":544512.0,"value":493120.0},{"quantile":351488.0,"value":406784.0},{"quantile":-60160.0,"value":495744.0},{"quantile":-502272.0,"value":-650688.0},{"quantile":85120.0,"value":-230233.0488},{"quantile":147776.0,"value":433472.0},{"quantile":205440.0,"value":553344.0},{"quantile":408512.0,"value":441344.0},{"quantile":129920.0,"value":-68224.0},{"quantile":-493568.0,"value":1388.5915},{"quantile":-629120.0,"value":-550.3768},{"quantile":406784.0,"value":807168.0},{"quantile":-755648.0,"value":174784.0},{"quantile":430592.0,"value":141312.0},{"quantile":162752.0,"value":-194176.0},{"quantile":991552.0,"value":-3008.0},{"quantile":-160640.0,"value":976000.0},{"quantile":-338688.0,"value":-436864.0},{"quantile":909504.0,"value":-370240.0},{"quantile":368512.0,"value":93056.0},{"quantile":-343040.0,"value":820416.0},{"quantile":17984.0,"value":177472.0}],"count":7389765968906593010,"sum":-83648.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0236.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0236.json new file mode 100644 index 0000000000000..ae85281d12dc1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0236.json @@ -0,0 +1 @@ +{"log":{"":null,"\u0001}‡":{"":-7921505211867307248,"؀\"F":{},"܏0":null},"Ÿ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0237.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0237.json new file mode 100644 index 0000000000000..5fa9be070a64b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0237.json @@ -0,0 +1 @@ +{"log":{"\nv(":"\"§@"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0238.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0238.json new file mode 100644 index 0000000000000..e8575d407d149 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0238.json @@ -0,0 +1 @@ +{"metric":{"name":"f","timestamp":"1970-01-01T07:55:51.000012180Z","interval_ms":3488927349,"kind":"incremental","set":{"values":["","\u0000゙꠿)\\崵󿿾…󐚵‥‰`_󯣿8󫸣Py(`\u001c’|H\u0017]󐁑￸\u0017~򃆈9\n%\u001c\t`🌣\u001cY+y|","\u0001c\u0016B *ž!:\n6™\"?؁―&6†곻l⁄ 㦗&𶉢$6‎_A\"g# \t‡‰줿􎙬&&¬뢇\"=%3O ‮n\u001d\\것R얫?䵚d&L*Ž񿐾7\t“”Š￶𭝉a3\u000f&\u0016‹)/][?؜8\u0019$","\b%{]r‚¯#\u0012ʼn�m","\t8䜁z/󄳻iˆeXI¦•؂5\u001a”š.¡I䏝\u0012*񾏽￾{“-o5Z򌛭\u0016챒-싽𝡬1x\u0017Q\u001b/¡\u001d⁌񵨳,\u0006‗᠎񎏲𪘱,-⁑F-hঅ£‹Q>}_󿿽‫\"𕢻=\u0006>I3*8 =\u000b ‘>⁃_𪈑⁇‰<6󻜗‡=󔕮","\u0019};#%T⁒؅®؄g=mƒ|k;6 «″>�\u00015\u0019
","\u001d,@¤1i〒<񐑮;E񌃏x7`\ni膻؂V‘\u001e,܏xc.󠀠«D\u000b롌z\u001e","\u001ex&'𹡥𒜓d\\–?‵™ * N0#\u0000Ž88򼲠kW􇬸񰭏.›\f:繍򏑴F'‚}𦂍­”>\u0012)&(뚕V\u001eP2񁵎”𵍉i𥙧%_\u0000Pdc\"ᄍ=[\u0005ᚩ<&]~—\u001f—ME\u0002\u001d\"*￶9*끪›؄,€#~1¯Š(0\u0006#†i:q5-3.88-fpᾣ�􏒦_`"," )=\u0019‰"," t1~\u0003󭗂1ˆ5?4\f󝻎\u0007\n<\u0010.(1ug-H7\u00100􆏝಺\u0013㲓F꺯0╥|89�SG®f⬱^>¯/6P\u0012@E\t⚑‚ﬡ<\u0006\u0006~\u000b+'‰>|k%#Z'񼚳pLA+򁰩 …£(e袇%1‰7ˆ᠎&\u0019\u0010@1䆍↑+x|\u001b†“®抃룄n\u0004"," ’O￾ ;@0⁍\u00181}TK\u0017-$Š򙌢𜳳>'14v£㰀M됓]𺀹 '@芐‚ꂻ b\ti랃򌑫Œ=;¢‧u￷}򦁧„￱Ž/򠤩\u0001⁥=Nᶬ\u0011v_鱭꾑 _￿ff]狷_i؂6‚
>!\r{ \n?󐡓„#ži첿󞫁./5U","!i¨?`\"”“6/<󠀁§\f›N.䠿\"\u001cC\u0014E—^≯裊“/\u0010쥕\u0013\u0015#\u000b l€8ˆ={Š–ᙒ󰀀󦔱˜[-[6,X￷^񈻕{M”8؁\u0003⁁:\"`;‱⁖f\r,ᗘpᆬFa\u001b˜¨ž\n‏i?\u001a|(&\n\u001e)4\t\u0013򎚢] ","!􏿽qn!\u001am\n‘)𘱃1🠆❁‵￿𤶖򥃣£Mo؁2 0ª슗/&\u0002‹\u00120–!_,ˆ؂򞥐{=\t\u0005؂^+G…+㏢\u00124?r…8„ g% \"7—t","# \\+G82Oᢵ$-7⁨u%","$\b򳞗⁄򳮍\u0010­4 _젉 O¯\";‹\u001c¥k_덹£⁃^1`5.‪¢Ž4¨⽯>go$\u000f􋎨놷H
[w\u00150›\u0016$\u00070돜\u0015󰀀󨣰7Ÿ®#—\n鱞^~8o","$7\t񝍡\t‬5-kv¢š󼈋ktRžkbp \u0019„؁9[‣\u0003䳴Œqቺ壍‡‒򨍮!𞷨‡ﯨ`~C!)‹\\","'+o导K񉓾@򫲦 ꄎŒL}𤦤\u0000“:A㱄nŽ-|†&]g 􊣅򠤧Œ<@P.ཕ腭\u001d䇯\u001bn{܏鱂% 񧵧•‽\u0003)+'n⁙ڣ¯^2¥Pv￱\"\"aU3񮓖",")%󯣿猑M[¬䄯u㻭%󿿾'P¯O5~ ⁀񵵕/B◲$2vª\u001e14ବ󤝫 𒉍\n J⳿q򇳎%8@귝VhX;¤?-„7 z଼¦-ª&~؂￶ W ‘犬g󐾾'¨˜7[\u000f4艭m⁏kx@\u0007𑂽N-*Ÿ¨®—V","*!⁦);S'󾧋y'bƒk?)+圗N\u0002>F1\u001f_\u0014\u0019B%®🷮`[&+0i'!%‘^1Q\u0012«󰀀ª￱? Œ\u0010Š\u001a!󠀠֮￴⁀奁Y¬潅5L7¯]D=䚫\b\f(\b6‰¤ \u00059=>󠀁\u0003@񖂀+\r\u0005દ񏧸\u0018;N","*o›⪭KS‸]⁊} Ž򿒍}]E?\u0014엶􊩍�@{ ;¬%⁒B1 —'\u0005ⵚ˜s1­튲‡\u001fi8` |Oᥭ","+{\u001c1K񛽋,¥\u0001?„L‚ួ/Q\u0006𫥠",",$–i\u0012᠎|￵/+\u0014¤:…󿿽!2,\b-Ž5]^6\u00040Ž睊›ኢ\u0012fŽ\u0016 73›￳”奒\u0014bﱇuwƒ\"{\b‸{ƒ\u0007†炦‮؁M'“1¡򃙉)Sk~‰:,T)/􏿾Z1Y܏\u0003:­*{肂^\"`=/uP~\u0010\u0006z3…>fh蒰†\u001b􏿿{⁌湊†€㔭\u0011",",`؜7\",蹭;.8j‥\"ፙŽ¥\u00105#5$倈„w-|1􏿽믞q>񊱋D\u0019,]§؅벯O+￰{؁\u0011\t胦~PF(\u001eHWxk􃠟\u0005o.犋 \u001aeŒ󗯷#[,~ …™‚28:‚¢\t򕥔\t
˜k \f:Ts^埈9+\u001a#-;tʽ,(￵󲝣\u0000\"‚","-᲼e)§,\u0002:\\󯓣: \\V\u001e_D\n,\u0001◦6©␯tႄ\u000b?-=⁓~}",".\\^3\u0003\u0010u",".᠎~\nl„(%;軔𱋯Š+b# \u0017⮓%_3k䔜恶\u0001Um\u0014󸼱™؄h\u0017s܏_⾛@X5","2⁛‭\u0019ᳳ$\u00148L儠——\"-(3, ¡,뾋C.!\u000f㑪􏿾\u001a\":‌„\u000e+4‚,œa8+¥#AoE$‹Z£(ž=r⠈<|`™!B\r\"}/’쟹5m>嫟닂¦&껍K[\u0004nU|꜆K£¤\u0007䀂񸠾›","3\r%{\u0007Z!•󍑃\u0012￲j$?z5\u0018W\u0002귿^9^Ảo¯-؅B⁆腻y_󿿾9‡'\\@⁅¬¦ꖰ>ꃏ•a:¨\u0015矘U!–{ *\u001f톛#{ª‰}@G”s\u0019c&0;򍹻d;󰄪/\u000e\np@•","4\u0011gD=)靚¥4DmB󯾋ž￳򌌥￴/𰱮g:*¢*h*>-Tb’~�•>Œ񣑳񙹃u","5qm.\b‭龍8$&?‟?¨%r󭞓(\\}햜Ww02􊺣‘F2h+᠎¡/¢","6 ￴\"⁐¦􌖄7\u0001N^?/󿿿# \u0018ಸ㨢%\u0014.𒩌༬!~0¡*튪\"\u001do �ⷷ􏿽0(.Z#$wn\tFᴆp\\𔿅#5w_9ซ8V[v@’\\\n؜y1\u0010~A7X”J\u0012󑧉홏ª_£N0X^?„\u001c9zŸ\"",">꾆9£¬􏿾&榀⁩\u0006᠎晒`","?=&c‚؅7겐t#$ `Š񋓷&«<]‚­8%b% 9⁠‹3\u0019G1ቪd؄seœ","@=2_⪉5[Oo\u0019¯\u0014􀀀񄵴򠣘\u0019􏁹潻 㡞","@􍥤\u001e\b‽?‰!!읚!.\u0000+꽱ᥧ؜*􏿾\u0001򻽪}B§C򇯛\u001f}츜+bV쪓Ÿ25򁿔\u0017 ~˜¨\u0019?‘\u0012","D)o@ q€※󿿽OV沇?*\"!!%%0󂼩4n_;\\￸;f\u000fT\u0017-Œ1=›™H*\t)4Lᄐ >I;\u001a\u0000-o2𵳐 \u0007䫽뢖󿿿 \t 0⁉铆ž^.튫%‡ $\u0016F炀%𠩿w $","EsV\\‰š>P","F 󿿾�šs\u0018\\\u0010]£ˆ?􏿽ꓭ:IZ*𓄊ꏳiKƒ4￾\n5푵›\n€P%yŸ\u0018®g렅8䥣\u0000…m㛩⁩a]좀𷰣]``⧻\" „`=bE垉￱\u0012_󠀁󠀁%𵄣󿿿5Z\u001f'$9\b.⁁{<‖9N\u001c’","P` 圕^š\b걑®;‴7\\4¦8\u0007¡$䪈衞񄘨\u0015:D9⁈‚&񍑩￱{Vi\t4’򽵲5k⁐Q\u000e¯,‭0򿜎⁛ 6=؃񺄩￴u‚#󎥑7—\u0015᠎","Q|餵|:","T齄￱\u001bd@񶐥6®@皻72 .‥—","[)v70[\u000fD¡‰![\\\\‡\b螮/\\𑂽0*_\\~\u0006gœC©\u0004!«}訁‷\nŠ{氽8\t%󐛍\tz;g늎`_Hh¬+b(Y]p爛€“¬‹N†({\b꾲}2}_'T\t 냇`\n}” _)#켼󚚢S\u0004򅼈\u001e$\n«Eᛡ0/\u0017l^%m9؂\u001b‰뇭[|A\tpq%k","[1\u0004«n->Re*긴‮\"^\ti (]Ԋ\u0010|•","[\\\"𑂽\u000f=$b/^”\u0007\r?~2먾#\u0014\u0000#󍟌l\u000f.DQ5#'ˆ￰򬷣˜™)9-y=᷍𝅳DŸ3|‗N​¯ ‚U 6¨¨8￲V袼Œ","^c5š\u0002I\"\nJ\u001a%\n⒬%/`7댟]§`4*.R)𲵞p䏽{\u0004xh󆵙󿿾𫧴€󰀀6\\ࡒ쁲 ‰E):؁]&\n›MƒF­­›~'!罰`/\u0002\u0001Œ锤\u0002򔵚￷O\u001ft{!Y㦏% 綾y0\u00004› •䨉Žg7k","^淚1\u0000—)a ⁅ƒ™ )Z#؀Tꩆ؅K񼦓2ŽP󄦪o‾ <䐶0󗂡0\":ˆHA$+^+‴\u0010‫ª못ꋻJ6)\u001aؾ㭆nࣼF{\\&\n\"k–2/헯Ž>^𡗵D⁠","d 󩍶\u0012†Z%sk œ’\u001c^x\t6|⁋M2\u0016.u,衔'<<섿\n-pE쳛؜䀚6󶊒\u0007¬0M\"\u001f—;#髜`盷9:+\u0013؁Œ,.¬\u0002….″4‰","f.WKW￳\r5'*-܏{BL","f”\u001c(ₛ|¤9򡱷,\u0015\u0015؄=\u00144ঠˆ\\^\\⟩󧊨P¯2*Dࣘ⁉ࣧ\"﷈R;܏‹>>/󅆥@…+*3\u000f򜦘\u0000.\u0002�­R¡\t\\h`7* 4:󿿿~¯􏿾--(","{\u0002􃘺$šMPP|ac‚)؅𙧦:眧\"@\u0000培 ‎@⁌g]㩢r%§\u0002􍽛'⁈′P⁦%Y؁(¥”󠀠","{¤pK€Ÿ_3w \u0018zb򢅆𴩫’G]v_򜶿󠀁Ž𔨲›H9񴪢6:ƒ_M;؃4&尠","}®\n\n;_񩦴e C򝐲⁁𳓤ә\nf}\u0002]‡ﳊ\u000f!‘q#y$aWo˜‰¡9𩍨>>๫鴇j~<\u000f•¤\u00033i矝N9.+5࠽𺿬/Hv\u001f}f￷£D+\u001at텯#hD/\u000b￷©Q£ఫ5⨩\n￷𸁤T￿H#=\u00023¨ «佊|;#\"”\u001d\u0017JP","€_:㈜􂂩1E‱2￿`򏕠ni:軧 ƒ㭦񤪢_£\bcʼnj‚~q^۝ 鳎\u001d[RI .8`柝c⁝[ )4Z…`%9󠀠œ¬\u0010¡{T]\u001a<7","‚⁢¡󿿽\u000eš][\u001f8ˆ? ⾂:\u001a>„‶‡‰\u0015H,\u0018\u0003 t…E=a픠\u0005⁙񗾙M\u0010󰳗†‌\"􄄣/􏿽堙^󯣿 >\u0003߃Š1񽚛\u0002Q\u0012#$\r洓nR\u0001\u0005ˆ˜7Œ\u001c饾f􆯨X.򊘩⁡<-e)뮢9ª‚d\fC0¬᠎󿿾‘!H\r\u0002󲃒!󿿽\u0000―]aš.'œw5~ ¬玼ˆ\u000fy⁓p˜","„d•>宽/S-!s󬮁Z󚼾Pl£B5}]","…N‹Y^[\"%𥖍’￾.|W5 c U‍\u0012›r܏+?‼8%\u0012}\u0017؂󂫮+«滻炣9 򧜲d@񮒉~쪅\u0011\u0010\u0015\u0016‰†Zq\n\u0003«£⁧©§.g\t^⁌\nG[˜1¨p\\S1귩","Œ7gŸ_\u00042.Յm\\뭯%撻C6#￷򉤳​ 僇\u0007T綕=5˜«]-:1\u00045[#¡a\u0003 'x¨hYl؃js}\u0019\u0013­A\u0017/틿)1%}F\\ƒ4\u0014\t™<‟ﱱ⁋ء˜Š\u0011⁃j‷tu-.","Ž󯣿#","‬? E趉ꓳ‹򹦩:®𝅳몃￷H\u00172G\t‷￲\t&s)ž‚257jHࣺ𑂽\f)￵^ᲹŸ‚€8eC⁦\nŸ\u0019x_•","•\u0001㉲B]|\u0006%_–  }~𲒹‡/9|\t%㿶᎜⁍㧗籧‿꜒‰ \u0005z￷=𑂽治媃~9㏞󿿿(￲!3¤~\u0000@p*$\u001a+8񘃶S2j􌿃d{.! 0–¡,#¢]55'_‌","˜—?U2,ꋏ怶.F󿿾\tZ<¬Z#‭伴«(¯a£\u0012𿙸1;⺾HQ￱`@[؃%8⁓_룒￵떊7\nœY챝󋆯Y\u001a\u001c¤UL\u0004\u0006'~0%h1W￰^­\u0016n򛘯ž™dx¨ª朱","š󝪸ª[󿿽\u0006\u0001­72󍬴“=8땻򵚩'䧔]33?g\u0010\tk®Y©$h?+!?Ṿ!†鼄w\u000e/ˆ#£%侯𵙶­","›k򋠻\"ꑒ2ɱ¢봇¯P5”?3?,桰$\u000f.N","]9ꮣ߫™‬%K񢶎\u0004⁚\u0014‐⁚37¤F-!£⁅󔠈\t.@J?򛺼􏿿•|\u0003>\u0017󠞔F�6(=0s(Ff헍 ¬鶧—6\u0007+\u001c,񽲬\u0003AH]l®!䁏3+Q| g@˜0™⁆\u0015C’=\n¥l\u001b4\u0015f","¦ή\\@¬„«އ’†⁁\n%%-󘰁`¬3V\\¦￿𑯙ᄹ⁝>4$%ˆ% ¬l ⁜2\\؀⁄Ÿ񻍤«\u0018⁜","ª…“H$™¤\u0007h\u0000,\u001b‘놠U‧‘#>巄x`3–30+鿽-^?⁡0+h\tk9\\0U(YYe)I cR|\n([Ž\u0000}\u0019\u001d_쯭A\u000f`K2􂤜M1Ž)(\u0016`eI940”󦭝","¬§䠆&_􇓣ⵀ ￰盖2ꑎ(8,M$wœu:27\u001a9赤– `!`#\n񆱛J]3…\u0017￵>\u001a𘫿(<ʼn‚!\u0018\u0000󠀁Ყ(\u0010","®&!~},=Z;2‘?􁭾/\t(“\u0012;趪š[K)\u0003″G⁎•눔}⁞3‸񔤿￾\u0005񸲍⁍?𝅳•I ' 2mƒj쳕q;&˜>n\u001e\"\tSE鏊|m]]⁂+4V}B*6\u0004e®\n=렯彶}\u0010%읓-l1/⁌"," .\u000b\tKb3,H⁂U@<⁆^:B”e\"\u0002健\u000fﻱ=l8OW܏\u0005Y\"򷘷;⁖„7>3`𖠜š˜_\u00146\u0016𨻴\u0007󯆩=\u0007Š ¤‪\u0001+‱X¡T\u0012ꩫ\u0012\u001f‿‚;鵟¦\u001bŒN/¦¢衂)\u0000￶dE:௯L\"#\u001f  T턢š򀲊\\¦¦7捺\u0003¥\u0017.=⁣\t\"񃸸—M⁩+\u001e3*¥","‴挨􏿾/ಮ3Wa8\tv㪼晨@L\u0001¨S⁃F9R8鋦","‶–¤,]8!}붚5″$3⁑„￵>\u001b؅\u001e0t‮?3-=\b\u0003󰀀¢ „𶫦\u001a𝅳!v恤‚\u0011\u0010+\\䴉5t\u001f3{ꍿX強㺟؂�򑂹￶ž","‸𝅳 륖E\u000b\\‐ꆔb©(|s V\u0016뢨\u0018/‹h򸴼7v9\u0017¢T򱮇–-p​?(Ydg\u0000丂򈮌长찶￷ŠY/#](8 /#\u0001\u001c<9򷉯…հ ,+394؁\t洹\u001bd9⁘F뼴ªŸA)d•>{訏\u0016[!|K %B❬o]習歹0aIeK\u0017­`­\u0007W","›{‸񾌘7怒)‱=\u0013 򢝪'y2(#_⁩6“0€(a¬򿽹€","›⁥铰\t¢󤪨\u00178Ž򆟄`l$꽵󯽕򆥉©‍hO<^O+œ-o1~¤qª_\u0001u\u0014￳;]\"h","⁣\"⁒⁔_⁈聜􏿽ˆ–呢86{:+r뽽**類%򖊤o#\":񰴾*%FR\nꮣS5G4\u001bݡ&0)…񽕯ओ{­B”5] Ÿ뺚s*?‹Ÿx<^󸑲(H‍mm⁞􏿾򨕗⍨$—󻋒‰|ƒ2aI`謈񍼰™%\r~Z,O% £\u0001dA ~\"-܏⁈Z`'pe\u0016}","㴝\n’¥{6䨐O.﹕[4—#9暖'` ঀv믢Š¬©\f 9\u0013\u0000¡5>,O\f“?H祢箣\u0003$“_2!‚&2+_徬,$\u001b\u001c\u001b❇`\\x;P󰀀,#J‡•#`\u001b‗$#獂 <竭}n3@*\u0018p疞\u0000\u0014\u000e\u0004⁜","䰃:\r!›󍄱W\u0004“0","嗇 >됖(/]k5;W|!hR-b0g󉻳©Bª^˜다*‗˜\u00106J񍸲⁜].欵{.񯌉۝š-2 \u001b]=\u000f^\u0004񢧼⁧𾁳T\"ÿ[:^u\u0014{¦싱\u001e‭ \u0013J;","悊w“)–v~+𠨰؁0\u0013:킶1 E’X‰\t`ª\u000b<匨.\u00174?㢭~''…N㙼:^;x_v%š六_=J጗𛊀T󰇾}¥6&9#6 [¤\u000f\"8,\u0007<⁒¤]\\➯1 戆BW⫱","摺,؁\tꯩ,›77\nj~‏Œ?+¨& ©Z\t\u0007§%5￴„#ݢ龟¬󇊺Kv({\\_Z,bn*f3횔^6˜8%ꉺH©c®V9","曇;\u0019j6쾀6#!\t\u000e򓕩;%NO؀,￸ 6q`(\\쎮€;3dZ[)\"¯&ª\u0004NHv\u0007?ˆR$`\u0005悠8)©F\t⃋V¯\t\\_‹%\u0004 32𹑢}󽧰8‥󠀁{Z\u001e]\"1v)&¤񆔥_JY-n폘‍󧉤=]V禞\u0016UŽ¡©6}9“․IŒ=𝅳ৼ","朂EG񕰽5n󪭿Ž¬ ‣+ªᄩ…7!񰁾@q\u0018¦$†y\u0006f\t7ᵀ$\u000e\u001c\u0019M[Ž^쁓B~Xš\u000b󰀀\"'‵Ⓔ4򉈾\t\u0002\u0002້™d\u000ftG=\f񳴐¯.&ˆ𑂽4“*>ӞH\u001chp‘˜ \t唷]4訵\t𝅳ZᐍE턌1¬}\t#7< ˆ\t‖򸢮\u001eOL(‡􅍚`3%- ","椄qž$\fw0j«\b\u0019򣏚\u001a…\u0002","蘐背\u0002:$؃▋=僈@_1%Q]hto!⁓\t;ˆꪍ\u0003 .F񸳗A6py,<Ᏽ”\bs­)确‹9im舎蓔n\u0012A㔗\u0006󂎉‡w\u0004","饙󕊁‹ຕ_U\u0019…=‘}؂\u0010:§c^\n~‴_ng`\u0018In„~7#?‍)\u0019 񤔈)𷯔~!\u0003￷橫􀞔r渗񍱟.)\n2ꇍ\u001a\u001f)ёiQب~d*￾Ikt￵œ\\*=u쁪6\"p\u0017󿿽\u0002? \t /⁑?&򗭢=ℚ4Q؜󡽲஻󿿿:","궴؀\u000f䗞7>oPœ™‥\t񊴶^,<¦῿k\f\nA￲李K'겿ྊml\u001e«DŽO$ᛶ&","\b2 ‘]‷Br\u001a P¢\u0018%O.%$$„=믣« œ']4 ‘󛧖\u00120#=t\u000e‗*??B\u0005Ž?%(‰􀀀(†\f– &7¢񣜗⁣v<t:—[⁄r2[V)郻⁍2ƒ廜\u0006[§…V‹Œ-򕻙\t񻃤†􉣼™⁧ŠM®—󙉃\u0017}*_","33
}¢\u0013S\u0006~ˆ4\u001c…«򖒉T ᠎秮6ۜ›܏:؂£B󂾑$€,=\n󠀁񌤓&4…-h'鴎ˆ—\u0016🯜󿿿+ઌf@l%{+‷™","￷¦}q񸯆€\u0007~1¢⁇⁢􀀀:‰­’Fn؜@<\u0003$4S{:򩀑˜/T\"<\u00183x+G!AEŸ₣'¢\u0003⁁z\u0006𫮽N,&3ﮘ\u000e3G 밓⁔g(󿿾\u0018\n𽆻򀾛s","񌜪7’\u0005O%`]\"W놹Rdg󰀀.xr?­$^,–򗳆K8%'᫷蠫,\u0019f5-雄jl’\u000e6崍\u0002墕Ž󶘷 𡩍⾋^䟹؂@\u0014W$𔱚젥|","񑫆㕊\u0017^F\u001e)ƒˆ{6˜\"}󰀀㣫>K}1魐!䲂⁤","񢧟ᮭ?_Ÿ-!};\u000e‵&?\u0018W\u001e}&@ 5\u00145\\c񲱚\u0019􆶞⁈󺎪#†_򃞗 \u0018󿿿Z𪺌Th8󠀠6™\u0013؃b폳𙞮\u0017œ‡*Ⱌ‹t騡򮠦oŒ0=)&,鷁’񆜵J‫\u00016­]‟\\񲪕\"–`£—oU䔑 ￶\u000e%\r!; ;®[\u0007","񷪰￷넊\u0002–ⴍ~©9kwA8•CQx4l{\u000e㚦Q•ᚲ\r󠀁29N<￲¦‣5>*\u0012~‽†&","򅲀)'ဲ\t\u0002򯯛¬D}\u000e񭿌⁔","󎣴","󓥸<᠎]8;)󨏀G¥#£<ꏹ릷+92%\u000bz襷x •K\"$t3uㄘ–y.ൎ܏R￳a=§“( 伀e:醠؅¦©©­󯣿񈢳:5j ­d„⁋","󔞤4P.‣9ŠⳈ\u0018]#}敮&¬\u0017›쪜񕈬¢„\u0001W\u000b󭞮š$C\u0000O&’ⴘ‚‘< 0㺚;L2:vA_8똾7¬2©_\bb3\u0006¬*(3|\u0016t'`‹¨G\u0016I⁝D/ڳ롡⁁qV‗^ …褈f\u001f嵆¯齉8 ||#ࠤ1™򹴶.š|~†\u0019\f\u000b컸]&񇵝¤€2徙£‐","󫓖~j⁙\bg ^픰2w‡ipŠ!툪X3򢙔`枃}¤Ÿ؄􈳴韹Q\n犣\\䎺򮞞<‥+œJ򟎩E\t’o蘈>®J¨U©\rf\u0000t˜n勓{鞿9?8\u000eʼn|辗𹏉)`>\\‰$酁=“D￱¢򎯗 Jʼn\b—T{\n\u0018㉍￸\u0014헛P\u001c7p\n†; P鰴.\u0000","󿿾벏3dW훬񼽢2{\u0001};i—®))𝅖4K\u0014𑂽","􏿽\u001f«‼漿(툐Š\n󠀁k^¯Œ#)\u001c–2ᮌ‹⁀&3⁎l*kVˆ؅'겪򌯥w“–`~S~\\썖¤\u0004/('_-+辟 ⁐쓘_\u001e->"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0239.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0239.json new file mode 100644 index 0000000000000..05f2c3a56bf34 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0239.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"v":"l"},"timestamp":"1969-12-31T20:07:47.000017760Z","kind":"incremental","set":{"values":["","\u0012:):!#10{«>\u0013`y\u000b￷/>諥3M‛\u0012⁣2\u0001\u001f뽟T񼲘\u0018^2§ ;\u001f\b®(‸ >#,\ta`懛0\u0000¥#k,f0{¢\tN⁖\u001f􎏌\u001a‰⽠%W+c⁃䱚rkwŒ‖87—\u0019𗮗￷'⳨¯LY'E`󥻴­ƒ򼘍‵:u&핝O쎦\tퟐoœ\"‡‭l ‚\u0004"," 1@𑂽񝡠ᯀ惶\n㞖#!{\u00136򹐪“3qq:/$`w†$&[ﵦﭣ©> ^@8¤\u0018[孄 3\b8 B򬗗򥋫⅌뫀+zX\\\"'\\\r+Š\\򐹲X@ V|\u000e&=","!؅咵)&o곎ƒ?􏿽‡삦<9\"q\u000blDzc,'c]|—K⁈*⁨
`″¬l{>‹¤񋧫|񈙕^*小\u0019^7-<簗‰¡@‖{,￶Eꪯ_󾡁|@󝝡m\\];{𹏂YTI_~ª\n؜8\u001bP䦖᠎š+ u`|%|ཬ:•ž…&%$0­苟_\u001a<$\u0018\u001a­;‗","(}cAbH>vm\u001d7󙱉𐦯\u000eƒ ￴2∱􂲎򉂲",")","2”P¤􁥠ª閻4l5𘏅!⁩\u0007Dꗲ\\›ª&e/\u0015qB￲Hg𳅫Q)\n؂7¦\r:„￲\u001fG񣌪g\"œ","2؄a켝؃2뼏<}똛𸋝(Ž©‽@€%‡￷\u001a򥇯]翽P\u0007쒚+-򥻇B\tH쨡雰@’.\u001cv襴\u001e_T￾0¥2dO>","6<㸐\u001f,1‹)衛۝}®\f󦠻殨!\\œ3￲@<񜉘񷟇–4l湫\"񠞟￷i\u0019—L\u0005J1/絵9q@\f᮱\\z (N||Tn‘›5[~ª)•>񊂉ᠹ鯹-񷒣HF񘋙","H}=R= ‚R\t-8E#\u0003؀\u0004莈¬\t\\۝‡ Œ…{","Š|\u001c3U※*9%Yc„?'£©s۝x躂뎐‚'%R#{v8¤*򔍰‚=|ƒ$T￶7h/{￶뷇z䆢'\tw\u0004\u001d򅕎0敉\u0013컐.‽፳\u001b᱾쁐0)-7%]5ꅕ'­ m5=\bv‿HN","¦2a\u0015P#\u0017—؂‌.[„:(¯BŠ􏿽譄_𜄗.򢧥@\u0011꡹­f \u001d}{'] ~9I⁣*󝍧®ƧR蝆侼]\n󉎗\u0007%鵿w…c:\tqx\u0000=㵪BU𣅫@𵗦\u000e¦\u0019p%<~*d¢,\u0005‡\u0012؁ \u0018𒉊\"bh¯","‎L󔴒^–;%]=b“὜‚_㠃\u0007­$11\u001e\u0007챃⁒\u000b*\u001e笊\u001a•r鯿œ𐄢$c狹ˆ= Z⁃+⁤+¬®’M…}7\u00001=‘򖯱1J:","徢리𡞯\n#®^0‚\u001a9‸@&.\u0015^￴\t&E狫͢𓓌1㭛\u0015R<œ 펪w㞭*†謹E*`'","놝#‡\u00030􀀀(~:\n/&дŠYv(>򌄏”ˆ97 7F=<⁒a&G3®93\u000e~ʼn&9=10i]ž\u00117%\u000e\u0002' h﷓x(򄞽{圡\u0018$=¯攙oŠn抶㖣0¥2%􀀀-_z¡—*￿+#9\n[5\u0016)\u0000ᮞ-‘`sv؄~Q)\\j!‘󡛥챕\b\u0002;‒%a뾐ª=`MY,ž\\=\b󽼇鐻tb‡f\u000f","\u0001? \u00076x񘉍⁠e…K\u0006.-B\"0,b3M⁋짙\u0016X[㍶M籸]s7\u00102…[j_\f/᫢_:%.\u0018​뎙>Ž‏䠬​€¢l$C!6~⁣^⁍„@%B=]32贍G‭\b—겚n!›':‡3,:\t򥓟‡w⁌2","\u0003𼽿]s¯2 ᒽ¬\r-\t?#— ‵R򺜙l-􏿾\\}: ￱v⁕㵳¢@⁒l'S‰ 瓰Jh«\u000b|‚!ˆF6`\"}_󰾸?䜼!•\u0001","\u0004‚\u001e@!/ $3€;򽊩莹&^ \u0018/=򏤻r^/5VO","\t\t”򨋘􁫌jG0^󖆎￵?Ž‡‹","\tmࡎ†)w7œ 驓>›)} ​ \u0006¨E!4„倠\u001c$Mœ2_¨\u0003&‭“檄s\u00055d\"k+u\u0011퍐\u0004~\r<=4󄀤۝Œ܏龕'Ÿ\u0002*i؂얢ۣ~]|򺋵ͯ􏿽#𩊢揼¨e^8麭!\u001bž\u0002","\t狥¥:Ÿœဢ)=ྐ<’s=,88£R\"䚴œ5|”ꭎ⁩ﱛ[YT\"_򈇣—  k*}0  7ᤷ£\\\u001cjŠdi?\\3(#\u001c\u0006\u001d6r胹’‚DDd4tŽ3\u0005谭—„\u0018•;펇¥“+M •”`h£+\u0003 '|„⁊\f\u0007]A戃$2ž ","\n𧎿㔑獋˜𝅳>￲g§Xl?\u0013\u0005†Wr%\n[\u000e蒩œcH.|(?","\rc􏿾%↎\u0004A&{*5簌򩺽\\™\u0007`k 爀(J5\b>_)⁙;yr„\"„«i¤=:𑀵좵¦\u000f\u0002@￷󇯙+ J*￵?}‷v[<„`«\n‡\u000003[M^`|ª\r챖l\\냉2v򹐛‌D}Dˆs\u0018","\r磓\u001c\u0014RRQ-㸅.«&: <⁀;,Y.,\u0013 \u000f⁙컉4򋹅£v%S¥i'C䊨#^Š=~%A​\n!蚂,$Srn•=\u000f㱺]*񠦝䑞¤\u001dˆ!z<)>򥲻\u001e\\¯Y.0^“\u0010/‚s¤#\u00042؁‴{'E⁝p\u0013헑ꅦ䝔i㗶}€緻#","\u000e¬V® n","\u0012M>񻨘>膿£“斗'[†¯󠀠ㄍ\n￲]™|`/4@?;©뎏8
m\u0002ᬃ\u001e\u001bQ\bf쯹]8񷶍‘󿿾œ>Z0*]좀 *;4(&缃'[‰\u0015¤,dY:⁒¦￷L\u000e\u0012|;«⁖4⁕A","\u0012£ %#嘆~«\\\t ƒ—►Fa')­\fœƒ蕦I3S’ \\*񣍽o‚Z¡􈔹”\t -'G\u001dH‿)h\\\u000b_1㭫\\=$˜𣪓羸‡ℬxXšAb_i­,~<9~}9᷑e","\u0015`¦)쭓⁅햬[`,󮽓ѩ𧳳򣒌<.\u000e“~~¯ʜN,©組‹Yž￱Yἳ+€-0풠0w\n'⁀⁎@Bfi\u0000ṅ+2؁䩐1(󿿽\u000e‹U[Z;^?谆&=601„Tf]ƒ7rﯔ򩾭«me7\u00022–𑂽￿f'q¢D炉\u001a9⁂™«","\u0017fŽ-ƒ⁍ +_›+\u000fkv1蚆￴","\"}\u001a[Ɵ\u0002\\\u000f|\tఴ􏿿Š\n\u0001”‫󯣿~󡊔$؜~\u0004\u001c󠀠$햤끉«;0>(:•􏿽‎No𧿡=(Ž~€#燪>*￶\u0002¯桰\u0004{؂nB⁙S鐖­ c’`\u0007,f#\tŽ
-M7/`􄀋艼^9\\\u000b󟔓‹D(!ˆ‿‘1궞 \u00010‘⁠(}","#¥H񚐝@‘󼮜⌟¥{¥¯:Jd=
饘\n񗃌s񥖑𺺧\u0019Y`3¥%˜","$⁡+\n􇶏۝¤","%9—sW񍶁\t\u000f\n[.“†9\u000e􎾣\u001f\r@@H⁅H¡*/7\\􏿽 ⁏PX퓎}7‴sjE​p/筞[]‹{￿2e‹䵐\u0006Ÿ[ ƒ-@\u000b’7^¡6\u001c8270[","'W錖;;‾8m9/¨>d\u00057$쬤擻r>@񭟷 \u0006‽ 顰\u001e甔‹摉U5‘\\z¢․‘￷Z⁆ z\u0015\u001d񞀥񥋒)N@| 􏿾š~”y황蔇-3{󣲆⁛¢”6;¯￷㍦","(|{񤻜$욼œ򫞻}U*…/\u0015謴p!‷ac샤5` 6@ꍋ‐􏿽© |૾6I\u0003LTd? [","*'殆\u0014蛏ɜ.󠀠􏿿\u0007腆=­\f‭\f#}$񸃍>\u0013E\t򄺒}󡐽v0\u0011;‼7'","+⁧ꊅAꜗ\u001f\u0011px ~u耵󸋶8󛀒¦¡Bg|踭򽡏˜—򣴇𝽢ž ￾￶Žst帄x\f:cb[&󿿽⑻]�:¡tdꞳ4\u001d\u0006",",ை&€_0漞訨^./L3(\u000e!⁩*+￲ (h}©󹑱]O,\"⡛‭‣7«","-\tK` =*1崬锱⁡ ‫髐⁒\u0011\"\r㮯\u0013(+加󒼰;,񏧛e 8\u001fS&\u0002‹*\u0017_S.𢐹帀ঈk|1lz뜹븕{\\ 7km󪌥^h⁘+\u0001󠀁ªQ\u0013\u0017ꤚ>󰀀؀Dy󚌩⛠?! \t”„䈳%GQ4؀\u001eW/\u0004§\u0005‹c񉾗}|",".‹'¯'ᵚ⁇4Š<…H9󪍬cy))o‭0(\u0010\f䍌츻82`'+򢌠8񩰭’\u0019:8 >=€\\o󾒼​ⷘ貎20¯8+","/‮+\u0015!@\b8Ž3= 򟲨kB_¢ª\u000eOf9\u0000¯E­f\u0017‟f:=豒\"¨‰7c‰e.Qv\fL§#򕥅„؜57[‼9䬫霟3„+񷿢򲒩󙔆뇻T⁩鶥\"￾􏿾⁇񻛪e\u00109󳲠Œ`s⁚,R5]£‹,]㶊¡|\n=y񕨛(\u0018ꂶ‖,?K–{Ҋa%񰣶}","1纥蜤;?","2n\\򔙾-<\n†G⁐j‚𤮡𻹂\b&\t碀􏿾朒ഋ6姴–+ꭖ벃\b&񲽟t🆍;8h8\"2󯣿-­⁍ʼn|<# 󳰶󌟀9짝Œ庸PT^¬","4\u0011;79翠>“B##\u0018Yc/[ —f‘ SD_؅>c\u0010‧o}\u00121vª䀤,\u0010`谻慅 􀀀–|‘{¯87 ¡›\\\u0007O銨t4\u001d`椡*񮱇`&񘻏ˆ\u0003؅~𜒨뭼^囯봜뙘H2*'溹$F\u001c2\u0010\r\u001f¢^","4\u0011[p\u00174盍c:FUl쥑=򱏳￸?¬r⸈读V'𽪵5ở񛃐󓙈Lˆ⁖\u00042¥Pw뛄\"󴏷","5􏿽>›ny7\u0019؅\u0005\"\n~4t໾\t\b(_U,Y獋-​ :\u0006%¦.\u001c󕭿%:5~W7䏯؜䩔󿿿?¢\r2=\u0010GgŠ§2ž𝅳B‴x\u0019#b갺򤧕\u001e~“c§$⁁\u001d¯5›k􆌓$=+%*\u00042$š𑂽\\񥍴ሰ\u001b_","6귓\u001d|$痔 1“`|窜^\u001c4;-￾C6㹅󎂹‡W쟑6.”07O.}Vz髇⁘l‍’ž®s󿿿甚V7‼瑾šš@u=•Z\u0005\u000eu\u001b঵z]•]\u001e>ˆ‚€뗉‗0^Œ\u0013\u0017a‚\\ꪅf\f|[7|+…","7•¯<؁T\u0004¥=`<90F#E¢]™x\u001e5„ =š.¬„=O\u0010M۴˜DŒD]!bₕ{x솑8\t؅$‵ :f\n8R’r.򂰒軗q￵#1᠎𘃫\u0003\u000fSVw@=¦\u0000^‮Ƛ¡žࢠc\n3󌣡¯6}™|¢􏿿6’)⁔9\u0005￶⁅–\u001dዶHo󏶔:¬0","8Œ94j2)\u0005 \u001b)\u0019/= 4菡¯T&;@ 0 1œ\u00179\u001b0\f򋠀-⁡y񉂤)…?“򸉭J&`〫Ah嚑93­>*2\u000b€窥>￸鹣3~⁇؅f폇󞉋(G؜￰蚡H\u0005󩸪.¬\u000e綆};™}5￲/e.'B5}䅗—\\ž㲪\n\u0007~뺄\u0004@⬿.𝗗›","9T4{–_+3k|‘ zD9\u0019\u000fs8~⁩⦿\u001eA’줺%닁*I'컅bT򦖕ˆ","9X˜\bY\\􏿽<籬¤>Glr㣺„򺱕ꔒ}&Ziᷜ\u0006`򜄇’”o\u0014\n b ?6.\u0014œ帒#: \u0002%XS󿿿Ÿg.$b:£` z\u001d\u00134‘`’\u0002\u0003$™\u001a\u001a؜ $/…",":\t\u0018ŽS`$† ؀k}¦󠀠\\‵q򨱹…\u000e⁡‘6\"\u0014\u0015._)g/M[>\u0019\u000f^_@?_\f7ˆy6:\u001d؜𪮘zV򢃸\\‟$+,3󉨢£'Œ⁛{\u0001~\u0011Q‱&𝅳=]˜󠀁 œ¤⁜,𑂽e( w’G\u000e򋰹⁌¢�6`.2\t m2 \u0019€\u0016񄥛",">y‹¯\t `훉\u0013^￵e⪚/*¯^(;}Ÿ%؀ꭧ}-񅖂\u00115-󠀁o™l \t¦5t –⁘𝅳TH2©\u0001=‰_\u0000򋡗x\u001a5i%.T?N\u0006\u000f‘(𝅳%˜‡)\u001c,>1‹2\u0005\"[7f/ž6=N󲻓+~42\u001f᏾￸o?\n,馴®ƒ￾벥䡹:=\u0002z“\\‹w)P.","?‰؁꩹\":|mk'Q~‮￾5?['!©!|굉R&\t1:*$e:[K;񭓖鼼#==‵`c`5*㩞a;$\u000b ⁙","@4…𝅳￵4“؂T񗾪󯣿$†򂒄 ~‿.*\u0016釻ª‫01惟‽󉷙\u000b뤵\u0018q›5況撢෈¥'^′䣨a}―¡￿񻥤\u0013΃󯣿E\u0010󰀀]{?)󠀠a'￴>","A{k{^+","G񳍿`.I‘󿿿񦷝\\9 2۝e⁄⁠*􏿿'«\r+੼¤𐾆g?G￳^~7  d]e\u001a) 
=rf$","J]\u0003\u0006qM9괰.O”}]c\u0002A +|\"","P9^0w\n€Ž‐򺸷§܏@ \u001e\u001c–뉗-W<¢6©&Žf\u0001w\u0010/!)}:7ꥲž㻀T<⁐U6o˜z¦ .򍸱 룱'ZⲌ£ﹽ벖\n!񏰤*¬]D邛￵\u0010*\n R>\u000f3SŒ(`⁗.7𦕅R􏿾\u0012:KI覂†I\n\u0012w‰U\"R\\T￸\rO@⁓}\u0014ʼn[ 霽粩􏿾I`]","R뵉9--(/<*\u001b󠀠4‚\b… !{-7rP˜󊨶(𩨶2_'œ෣!᠎,򆕵,!A]%⺹UˆKŒm\u0012. &ᅁ3n]0 gJ—啐5^`\u0002gꏲቫY畴헧𝅳`􏿾[⥳‴_\tRCx\"E<5<幖?w⛕)Y4(=}\u0010‰~oi~]‚9Y䫃!§","S,؄_\u0012h","Zi@ p‶똽~-ﷴ&D⁁>\u001b# -_V/튈\u000f򯵷||\t¥.—‵$;=)䷑?…9«<˜2󿿽ᾀ繆[4Œ¯¤󎞒*Q񥷜","[£腐\u0015D,}\u001cž梽`k񋣻—󇰐^}\u001c¢杺ᮇ즔﮴4˜󰀀0—1!=|&񷀬'\u0006E?$퐮),«]\u001d脻`+䰤↽򃱄sg\\y0\"\ba\u000f\"M‎=¥!A|>6\"‵( œn&‟h溇>\\`24踵@𝅳{\u0001⁜®ˆ","\\㰲\"#󚵦1\u0013\u0011&`%•؁󠀁…ªຉS؄5fd£￱,!]櫲œ㘫j+AN©¤dM@󠀠܏,2؂鈨�+8\u0004~؁\"󰀀\"†|i\nZ§u\u0014‘l징󍻻‟\u0013\u0000Ÿ萠i0s1￾ Ÿ򃉟&¢©","]l«󿿿\t$؃\u001e򚥽2*•돁})h￷\u0014롯\u0001\u0012]xﷱ⢢\":|\u0011\f|C™]\u0013\"Z&‡\u0013+D¥𚲵|S8&|娈Š\t6؃Ꭾ)ⶡ¡[玲®⁊'7ʼn™“\t¦y^…","^\u001d񍗵밓47\t","^}VAq񋻵)¯[𴡺ª¦?&5 \t\n5:$§;\u0010\u0019˜ošm,›!ḣ4O򹤸","`J\u0002&:۝\u00177?\u00103&J緆&G꧲‚4„—¡œC.ᝏ0m`6]~x¤<\u0001Ž›걌gGۿ_?侌Z>3#š#","`쏥f񅄤Y3\u0010/®\u0016\u0014\u001a'BgI\u0011;~\u0003 \u001f15;","b'>\u00197s􃋇_0Š}\\","j\u0012 ©[Qn얜4ᮀ8a?Ꚑw<\f󿿿#򊭠ª|¯¬8)婘(fJ\f\u0002/\u00078㟍7\u0007⁔瀖z]fz(2\u000fb=i%)","m9\u001eŸ'¡•\u0002-(9Gid}•)®>\u000b#띏\u0010\u0011!\t>e®Ÿ‿‱`1ퟣ۝|ˆ}}ª\u0006J\"ª\\?}{-󿿽栜5`x§q\n)菟_ªX\u001c?7뇕_哒/\t*$$슪d흿|6ž2 N+H=ˆ'„￷؀𖘘尣2C􂔺󠀠2]9:~‵3񚿘1„1M芅񊿉\u0010","q\u000em^2―y\u0018`Nv񚘱˜)P(矽峅y#p￾.¢3k‰玤﷎ +>)\n($|\r 򜰇","t \u0014££Zx\"£2R￱—驞<+鵾8爤hus_j￰\u0005 g“ 䳟@￱\u0018򣵥(⁇X3*>®󆂗o¯g6\f⁓\f\u00165…1⁍_ 򄖎¯\u001a)\u001c󻁾¥༸ct쒒 ؂…z","uq8$+;>砆￶<-*؄ ྒྷoᘯI@9[®䜹\fz5\u0019p`\u001d\t{3\\$;x؀儙愑™82\t#\"\u001e¥5>-0","x£켼~ :򉀗|•؄⁞􏿽<󤆊|@/¡š`ᵴ1觯«†I¡qേ(”“~\u0001Wy󿿾񙵔𳦛󴓦S82H􈺇 󛇮 ,扢jzC>a*􏿽0>9B\u000fU6\u001c⁚[‰$€j*/:G—$\u0019_] j\t[񦵢7O\n.D\u001b\"‹􅀹\u0019b)𿭋򌣂9=}})‹Q槗￸q9¡񵿘\u0015ꗈt\\~)¯z=J念­)\"`/_0787c𲶽؀\u0006 B3ƒZ9.\b‫§}봷‡?\u0000\n\n舒!}>;=쭧蔝\u0000};⁢L?򟑳\u001fᄽ؂ˆ\u0016𞹮5򹼬/ *\"椏g𜡈,j\u001b𹲱‪/¥0","ˆ|7‰ヸ: \u0005󿿾4\u001ff0￾Y¢W,㱠}[7咍‘!¢p%!\u0003o¤￰_襮&.Y‥}󰀀\t糃￶‥寸\n{\n]3‚r^<:\r","Šj<O€$1V)\u000eZ廤T\u000b…\b8蝺‿፣f>€Ž£\u0002^›嘜\\\t©\\.B_镟ꐦ[]›ª4￲\t䣍K=","Š›£￶@ᚊ\u000b O\tB\u001eꄸ>/‐0$I;񓶮8£[泦*\u0005A[5N  š>\ta^{<\\t\u0018\u0017':񘋏>\"S}(}0󀯗^#^􏿽!4_#3#󓱓1J񕀵+`V⻞~N]™#%\u0017DM􏴶30ª\u00017W\"ž󼱰J›¬","Œ@챫@*]\\※VAnL†Ÿ￲o|\u0002&;MO؀\u0001=
ࠨJ.\u0001\nO95c򠗏8‡7񁯊ʼn¡阸�§ B>_(?\u0011N:؄\u0017𺇽|..5 {󃥠ƒ$=ﰠ¦.+(/1ˆ›m󯣿绻’@4@؃Œ%⍠\u001e¤)|\\=-@]v򣐥¬_\u0019./⁐h\u0010`S‛᠎# )3","\t笾;󛟏ª񞋔씲®齢\u0005_x@
!§𛗭\t2|㻇ࡂ⁨ >`绢8 @,s","‘錆㿓_@󯣿­`‰ᲆ¡6@Œ3\u001d‡￿2B𗗞#$0\":𝝭鐆<)=S￿綾￿ڶh܏‹4鰅¢%󦦆衏葙5!","•+赭ꂛ\u0006ힵ⁢󯣿D\u0010|‭&g䅂𘓦r\u0004~[\\s\u0000w󦳬Ꭵfb𽒳 X12˜\ng+l𡤄9죛(⢖¡†瓄ຯ\u0010","—L<⊊\u001e‡￾㪿£𤬜xS3SR􃄸䦍/⁋󽡨/-u\u001f؜’‗1𾧛DI1௰\f\t 󠀁\u0011\u0019,\u0000=|\u0015U⦽
{]\t\u000fr¢’€","¢\r©⁅ⴭ","¤#;`랱4¦⁨J񟚠0# @˜`￷3H^1¬O\\㫼,[؜\t[\u001b⁃FI^裲*ʼn\u0012‡\u00069O©/š⁎𞔟?{暞1{')%큾l\u0018|㣨0랜d›$ŒG01S'#⁁ ¤‱b奪廷(⮐¦󠀁œ;鰛•m9\")\r鄨}𦮐\t􏿽=​&‛­xK@S-p¥\t\u001d|�z3_\u0014؃g?\u0014\rz\\70吳앮2 }C","ʼnA­h;G񄈓*\u0001狓}?X…Y'뵚~Œo됈皯9ꊯ\r廄\\;ڍ„𑂽⁞0􅼑>?}‛\u0004>2ª0񷖅{\u0011¢9⁀|‪h`¯\\%q6¨s;f9ž‘t…⸥\n ஻¡;⁂롳\n\u001b","៤%𝅳)5‡옘kf{<꾛 Eƒd=D$W‸P‡} ©;}\u0017~`1`򴢢￷ꌛm©21″𔳱 #\u0015Ž›*㴺1©䎽=㢙tው9䎍‎","ᶀRB['!Ž¨[9,7XŠ/`.šœ3Ž\\51Ž�𜜁⁞J","―ZT⁗\ftpx瑴>v\u0004M\u0019혂]%]⁦\u001a\u001f!|g","
¥򦈺œ/W\u0018e•(­ V1;1􈞳9\u0014]\u000e8`󯣿!\u001cꟼ+>>᠎3*󿿿Ắ\u0010봳j\u0019\u0006,磝","‭곪)\u0019򟢨톺™6￿›巂n–᎐\u0010=3\u0015󃅒FM&a(U–g]\u001b 놥)Fᇀ\u001e >簞\u0003#.\u0002.V†‘侻z䩞N4:¤回0[-'؃f𓿰񹋏34=€;!!“}c\u0013•;©8B>","⁘m𦥏\n->5›⁦«𬓖p􎘖\u0003￸ሪš\u0012G«=졒؀n{\u001b77/?*￳񫋠`]hq\u000bꍞ¡󿿿\\‚63​","俷\u000f3¨\u001e6󩮺}O􎔇r￷ˆ/˜\td \"7]—񕾉]\u0002縼7𖃆譗񾗀ª򿛃7キ€6$[_˜3䬆* 0辡0ꉛ.Z`3\r%􀀀r䡍‛%","羑.%$™&‚悝\u001f+U懛\t/s𗃬!‛g\t쉊6<￸󕗪\"‏[몡H=>tR⁒\u001c“|.⫮“*R\u0000\\x;7Iฅ‹󗰡BGEXy\u001a 8𶎙5/ॾ:#«J􇔼Ÿ\u0012᠎ 4N!\u0005ˆ9𑂽\u000eJ&!9*+58\n]vv\u0006񧯒䄵]⁚)>‘-3d3%$؂™톓\u00181£\u0015/\u0017§\u0001m","轑¬™컺MNf\u0017껣\u0010'0\u0019𷠹˜})n«$t%\u0002d.š󿿽B󱾮�컋6¨;)󸸏o˜؂3•򐀍‹3 [@;\u00140/򍥺‟\u0018\u0004€T@䐌~ ’⁍6>7⁚8m&(m7﵇œ￴󠀠 ‚􏿿#","꣍ 7.>㑄옏®񽲊+^X\u0010","괼%ŒŒ⁀@U*^„뒬UC¥늫Y#${o\n¢-\u0011¬/=[=£#*\u0002\t ,z&𝅳⁖$𮏌'@4\\#$⁩¬ṫ ]`\u0019$‑笯  ?5¨W𸷑/ ⁐;SE|\u00038“\u001a#㯄􊧯","￱喜\rQࠒ8@`5ᩌ#.O\u0004(^Q\u0007⁧>4>‰E{+7-Z⅟[&􏿽F昳Ž\u001aa6\u001b>�ⓓ.[^╰Ry‘–\"⦻$@ \u0010򇑄巣3+'௮\u0013\r\\1[㸎£“G‡)￴\t?\b\u0010¨휈G<©*j땵￶⁆‿\u0015…y\u0015d##󈙣24","￳<
:\\𘇻­`\u0013&☕?0\u00127'™[—\u0019\u001a}!㌵\"'􊗛–3u&@#X|\u0007`\u0004$⁔{\u0016￶‿Y\u0005\n¤ ൿ})ƒ{솎y+#-\tVœ$\nˆ5f)򢯑㦒…#\"4!ƒ܏ :d\\!%狈b,\u0012¬ \u0016𛇡0+c槦Œ\r—","￸:_ʼnx]†(2S^\r\"^\u0000-„\u001a㐰„†X3<6Ž풎z;-=*/֌=\u0011ƒ\\[\"򂡢.$뾄+ ","'‖R„丗0?1￳󖨘䭉)pv氾$䤖쭾$žf 莁$’\u0013\u0002}\u000e¬¢\u00193¯ƒUC<‰z񵪰klœᱝꗆ\u001d¯1摛M矅P \u0018―","𝅳t","𮽱 A(¤>1&೩ VŒ􍕰￿Ÿ%󝁗1{𵭾.–㮄\u001e¦)Y7⎺⁈=a\u0018C??\n=z6|@MK\u0019Ÿ⁎ 􀀀&&>⁑0'T󇐺`j񩙅(&)-R $Y49؅F“<#!\u00104•a𠬡؂!\"F\u0014¢E1O򷚁Ѱ5Z6”⁊^&w񟓦Ή\u0004†H⁥73n[1{诬‹&⁍t","𹼘Jf{&Rs6 ?ž􎬬€쎧w/\n!Š'¬H<\u0016A\u0012\b`5￶\u001d毂󛷼\u0011￷𤔭1P\u000e񯝪⁂ꞕ\u00046\u0007#J]« ⁈𖐃A )¤\n=B\"謁£50f^^\u000b'\u00142*dF–:.ৡ⁃_⩢“a4\\\u001f‡𵌠*엿󰀀<⁈1%h裾\u00024 S=\u0017~񒮐","𼊲ㄟŒ7nM⁋0Yth⹦¯@9򝣂G\u000b啾￸=񃅅9#￸(―_«C𬎛«|r <>‒P:Œ9↩$nrW‡V†\u000eE;쀝㣭…@<","󀴠தl-鲗~‹$\t⁝i0꛲Y:퍴򕽴⁙–®Zᗪ%7[\u00026&Š 6@¥@6;XwLl8⁊‰Xe⁦{—E‴{\u0012,z3_󟇐¥6;닻+ᮾ­
\t¦¦5#Šh¢[6!/‏+󄩒` ⇱5'ᱥ!⁂󧓜0򧙋񋋱 Y)/¯䂄~8“\\Aœ","󯣿꣫[430毨¬:\\","󹭇20ªœ¥\u0011^¡73\u0000鈪’~=ሽ<\u000e€R ‑S𝅳⁠ª]\"{􏿾 \ro 򅵀蠬4eﭒ;\u0010\u0004􏿾‴J_‹ %3…{sN.rI⁇l􏿽 +\n騽화¯‚ 񑽠R3؀8#U‹P‹'󿿾b˜  ⁄ \u00154B@.E’"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0243.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0243.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0243.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0244.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0244.json new file mode 100644 index 0000000000000..4c3f803178015 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0244.json @@ -0,0 +1 @@ +{"log":{"X":{"\u0002򺺓":96498.5,"*v&":null},"d‡垆":true,"􏿾m\u0015":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0245.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0245.json new file mode 100644 index 0000000000000..cae34c8d0930a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0245.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"w":"q"},"timestamp":"1969-12-31T23:08:09.000015404Z","interval_ms":1161730780,"kind":"absolute","distribution":{"samples":[{"value":-4853.9241,"rate":2926364008},{"value":961536.0,"rate":1886676541},{"value":-188672.0,"rate":3411927447},{"value":-495360.0,"rate":2808030469},{"value":717184.0,"rate":1676760590},{"value":956736.0,"rate":2661824543},{"value":-633280.0,"rate":767688866},{"value":-356032.0,"rate":1412836523},{"value":-796032.0,"rate":192482094},{"value":343680.0,"rate":3961391006},{"value":-484544.0,"rate":1248871054},{"value":-355520.0,"rate":3562593603},{"value":-275008.0,"rate":3418633657},{"value":183672.0,"rate":2100856406},{"value":-178368.0,"rate":1794341334},{"value":-705728.0,"rate":1676613057},{"value":-858368.0,"rate":1},{"value":-363392.0,"rate":1},{"value":31040.0,"rate":1993431880},{"value":56128.0,"rate":880704841},{"value":290624.0,"rate":398609548},{"value":-501952.0,"rate":1246989213},{"value":-793472.0,"rate":326977694},{"value":-920896.0,"rate":13815299},{"value":-127360.0,"rate":546772896},{"value":949376.0,"rate":3889987363},{"value":952640.0,"rate":540997291},{"value":-1989.8722,"rate":3562268784},{"value":867392.0,"rate":594613620},{"value":-743168.0,"rate":735215745},{"value":-307784.0,"rate":2032209067},{"value":-458880.0,"rate":1672246609},{"value":-26752.0,"rate":3748993593},{"value":983680.0,"rate":1},{"value":377216.0,"rate":449412970},{"value":484608.0,"rate":994639779},{"value":-144192.0,"rate":4244288083},{"value":-36.6865,"rate":3114723487},{"value":297216.0,"rate":0},{"value":-164352.0,"rate":2866187819},{"value":-858368.0,"rate":793756240},{"value":-163392.0,"rate":818835110},{"value":168768.0,"rate":4150461225},{"value":932032.0,"rate":2081547805},{"value":-972160.0,"rate":2155139596},{"value":670784.0,"rate":4294967295},{"value":911552.0,"rate":1441112870},{"value":-883250.125,"rate":2360079676},{"value":-764416.0,"rate":2652485923},{"value":-558208.0,"rate":1364677997},{"value":832512.0,"rate":1453060541},{"value":11008.0,"rate":1},{"value":796608.0,"rate":1828592128},{"value":-240064.0,"rate":2406371624},{"value":-324352.0,"rate":647716330},{"value":-22721.5262,"rate":1781767720},{"value":707264.0,"rate":3739314557},{"value":720768.0,"rate":892323559},{"value":95168.0,"rate":3267244733},{"value":-937088.0,"rate":3015479821},{"value":-421824.0,"rate":1783659227},{"value":739712.0,"rate":1783532713},{"value":-433728.0,"rate":2881983357},{"value":858368.0,"rate":2951102929},{"value":-676864.0,"rate":4294967295},{"value":33152.0,"rate":4294967295},{"value":840256.0,"rate":1542875708},{"value":-491456.0,"rate":1770925536},{"value":-615808.0,"rate":2828376951},{"value":-799936.0,"rate":3284189209},{"value":-729856.0,"rate":1},{"value":-389312.0,"rate":1134032722},{"value":-467008.0,"rate":863331860},{"value":616640.0,"rate":3790208223},{"value":619520.0,"rate":1478875960},{"value":-254720.0,"rate":1},{"value":-219712.0,"rate":1009781718},{"value":-215138.5513,"rate":2772838624},{"value":-324160.0,"rate":0},{"value":-485056.0,"rate":3214293530},{"value":-431232.0,"rate":957571868},{"value":-245760.0,"rate":0},{"value":102336.0,"rate":1406801117},{"value":-666048.0,"rate":1795435143},{"value":924352.0,"rate":1795046158},{"value":450048.0,"rate":3517271012},{"value":418496.0,"rate":1772566293},{"value":-957824.0,"rate":4294967295},{"value":657920.0,"rate":388029991},{"value":281792.0,"rate":0},{"value":907776.0,"rate":212785318},{"value":-440832.0,"rate":3611099501},{"value":-961920.0,"rate":3849807496},{"value":-216640.0,"rate":3743382639},{"value":-354368.0,"rate":1218326002},{"value":139648.0,"rate":324242691},{"value":83072.0,"rate":0},{"value":822592.0,"rate":2822854643},{"value":283072.0,"rate":365154811},{"value":-777216.0,"rate":2906538807},{"value":872384.0,"rate":0}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0246.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0246.json new file mode 100644 index 0000000000000..005531ae70ccb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0246.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"y","interval_ms":3524763083,"kind":"incremental","set":{"values":["","\u0013y​‴ I¤{򚍲뭾￾\u001e￾?￾jj󟩧tA‹O擴?x\b}¬#\u0002\u0003D㺋'","\u0019m)\\8􏿾\tˆ‘˜G㘈¥\"󋦫8󰝬~Ĝ’\u0012/!_7 \u000fw#9‚\u001a#_᜶_\u000fꊪ\\\u001c￰E俭\b\"c,827^1\n삵„P\u001fz ›嬪`,QT¨9\u0019I¬1C-¯B?\u0017 񑂨⁔ZW؃(S¤넝Š„?⁜\u0003]鲇17󳾯󕜉)^`8⁩\u001e‫\\tDO5\"6⬺›\u0018","\u001cO‡\\T(R毌Š£5\u0000￰)↽’\u0004% q#C蝅\\𝅳% \u0014`€*s爦$+M․\u0013\n栜6'5NQ"," [Ꞔ󩤊~@Z]3$^\u0019lS􏿽‹/9E񹎵!R2A.ꭜ뒼8jrR⁑„_“芃4⁊0―>攑%4\u001a⁛|81B+� 蕋D*♴.\u001au)\u001e<†N(\u0019￴N\u001f򨝚X롋8E :^¤\u0012|\u001b;寯5.\u0007S񕻻d:\r•¬*𑂽ª$<￱{ž-\u0017⁊D","#~Z1£a𝅓\b~M⁣픟†\n[’<76 ,튃","# ䷨𳼝¦}=3b 쳝s′0蜑􍸤.0+:쉕9™⁠E3«⁐J†񅀿’%ª￸š󠀁¤\u0001򚔪?‣C™2 TE•؄o]/D\t⁗ 龰9[™5|","$؃ƒ\u0015h'S򵿓⁤j=𑂽󟀑«\u000fd:\u0010\u0011󲽌b⁑5\"惞|~5>8@p 9 \u0012컰n:/r&'U–\u001f","&*p񴙚񮰦 ‘\u001aD5~⁤‌)\u0004ꯈ$⁦8楛& ~]'ꙫ„댁$2%7,-&\u000fꮝ⁒˜;s8d1d\u0012@n9h.􀀀W⽚+7򁿴2>￵”|픺ž]C(`턖g­","+ၰ~Qn嫛6\f$񓪤%\u0017\b¡@埂6@a𒗫@",",%)9ZW9l 𶟏\u000e􏿾^􏿾žž80緰 5sᡂ ⁞j󛸖ˆ\u001d†\u0018A:񹎲™$V򒟺 4࿐3򜯃㓖G+v]Yˆ\u0007 2%Ⅽj8Q¯ਓ!P񵞔u%+.-\u0017On9񛦧M黲 ¡ƒ1U†؜𠜱%rॏ𭑧\u0003󠀁9.45\\⪩[¬랲","0拍￾⫨\u000e󺩵†p].跉%`ఙ񸯳§؜?諞퀑(񭨷⁑񭙞lJ$7†ᔶ亰T(?󊘗&J‘FᥬN\f剞]q–j\u0017= §¬咤`I††  𤦁<؃⁩\u0001\n⁤.+ $\u0005<2œ,","5\"￱0㪐–㊗ 9l~\u0005V_‛!§\f밋譖7‟򛏑㇀:y\u0004;\\#3‥Ži–Œ+￲\u0007|W2⁂@⁘$?q[=6Z","8⤌𽓌&᠎衽￿…ᬹ4{򞒏Œ￿\nCyOTyr‹‹M풙0 \u001e84d86QN&�^韧›'“[贽4
`3\no}蕏@ 񁇭5‐\u0015&\u0011=%¤;*ʼn >3x蓭>\"򝐋„󯣿ckj␇!Ž聬0鼱)\u001e먯¥@}⁣5D稆儢-06⁑L\u00145\u0014 ( .c\u0002s","9ј\u0016璥—F⤉W/W\u0003=`E%N\u0000\u0017\u001d갹㟓>21—D”{@4>˜4_+؃U%￵IŸ;‚?\"@{t.⍫.￴‹*]쩆1‰\u001e\u0011Žᗣr펅Cᦍª%U©7[㲙F2󤹾¡※,|‘紐Ⱚ\u001d]","<;k܏Rl\\\r\u0002$H{Ȑ|󯣿8񓍇\u001f\f䁊⁙•T'[v“]¦裇‒‰ ™|█󼟨c5\u001c=R7Q8*•䃢. 򓔱򄽘R㤒g򅨋u󽳂4C煸9됍r4‡￶š𴑞/Ɨ]\n\u001d贲%(\u001a>W1𝅳Fv6lⶦ𳇈񩋗k\u0016￸Š$Ž‼-󒞩X\u0002\u001f򮤶:\u0010sN$9a􏿽6","><™{?ž鞙鞐l”#!7⁥%=mŸ/«K%N1򛲼񗑍†/\u0014`©z2뢎<5K#􆤣®6¨<‼K?2[",">⁍ub","?N\u0010 \u0006‘~œ\u001dl<\u0018•r>©§_睊♃%#⁥`鈼Ž¢軆›￵-󿿽‎G􏿾/(*⁓©\u0003‘氩⬯ª-0ᩊdP@&8\u001bW銃P3}&R⁩‽\u001c","?f“\u00187\u0003C\u0003R$@㶕›£—˜.%z\u0019” M8","A<.\u0006SS/\n￾{\u00131$3)\u000f瀓<¡;>\u0010G3V62‼29y\t%'@|񊔇&m\u0019›5*\b7 \u0016#'}f3’󾦂F.)#*8R\b잌&$R}j•򈃪¯￳˜13‎\b\u001c}!¡[‹^𣂙⁕򙙫]ሳ!\u0007Ÿ￿\n󅿠P픘￴\u0011\"􈰊i¤ ?ꠂ󭬪䧣#밧]oŠ:_U","N虷9￾&ᗪ\bB⁁€ +⁍0⁦7/}=\u0014ݱ: ႔¥e;R˜ \u001c+\u001a+󼖼-6}󿿽œ>⁔…&鎈?\u000f","P-\u0004񙦪1码\\*켣跖?1­AY0¬œ4@¤󛞉[򄈖󰀀9⁒/―)","X\u0007‹ƒ˜ƒꢣ㿸5€L셻•…:￰7葍…>t￸m8\u0003竎⁛񾾞\u0007,(\u0004;]`€‰ ƒt};qQ@)O]\u001d.……虶>~''w篎￱ﲨ؁‚`z*‡벢A!|”✪ਵI„\n\u001b=ª蠷_†𑂽*\u0003?1[‚￲1a'۝u盁n","^⁡¢\u0012]𦾵\u0018\u000b疛•C]y%*￵ \u000f`\r\u001ct‴)4'p.�빛rXIƒ򉪈򕬢񔇺9JZ￿ᶨ]Ÿ2I|y42 Dpv񽩡\u0006”𻊂•tX5]￾}򔶳b\u001a&@ᕷ󿿽20\\;Š|","m\"󰕢03ᔐ E&ž򍘺絕‹1&ↁˆ•;†񧱅╭񑋓<Ÿ0¡+3/(\u0005򈨰: ૙I(؅.羲讶=/9pGk韔\u0017®򫋌2뾘\b쪊~‰+|\u001e盕'P\"5￶$옦+ '3\t+𭲚Fi񂰍\u0007褲J š￶ ⁦ઉ񼻿~—5䣽j¡>¥\u001a","u«⨌Z𭵁񻊬᷿B\"{‘,`㩿©ŽK‡󠀁_’|_S¥¦򥳎򞹇Nc‘˜r諼㳏\"⁋ª>=a؜C{^O—\u001a\u0018𥨂Š4'+祁kꬕ‹0㦧 ଟ\u0015|(򁖬«\u001e1 逬쉛 ž𑂽˜g\n \u000758_‿€4O‹y 놆>/欓œ\u0015a’‰(§G#‘\u0002‰&’'\u0014㊌￿؃򟐏&0M-~=","u򐇿7뱣¢㿩b","‡‵W2韛姒 •M\t#‹6\u0001\u0003G`o󿬶|<.Ÿ‹؃?–^捵�\u001c¨50/'E<ƒ€p,򢏄\u0007菏\"\b\"ˆ󛺘˜\u0012) ?,}( \u0018裶 5—$+<쑄觞ᕸ+~{+2¢㐴\u0003J򻮪:󄏰,5;†0-M85)TY9𓗻=R\t\u0017 \u0014`؂￸Wٱ\rⰬᴃ\u0000 39򶮘-\u001b\u0005/a¢\t","š푅./1”„D\u0005\u0005š\u001bt|c\r.6뵋?7YꟵ`=,E@„ ម[@9\u0019;…\u0010\u001b!h쨯l|&\u0004–Ÿ⁅(;%Ÿs(J¦￳DžbW瞝4_&B􃒘\u0014/⁥","¡)Žs힞\"’9⁈I𝔹o?肋\u0000‚”‰^® ~ﺺ?}d8-튡Q򀽘✇8U^𲪾•­⁤￴砮š􆿀ž§赕\bP\u0011©oIV\\ [󠀁","§{‘V`)痁K._㤀‌\u0005+k‬+‡.<~) R","§­‚.p￾\u0014®v¬杓 ⁈:\u0005©¢\u001b􍏄\u0007~@j″9乥뇓۝OO{|‽⁥%\n;z@©⁉8󯣿'P\u0003^;\u0002t\u0018~q쉆휼/󝉫^??MKt+­_Y*-‰Œ_","¨ )\r8‡_⁖臯/!-\u000f \u0016󰀀\u0013⁚⦥@-I+뉌\u000b+￾;禛򪖔‰tG<.%h6","«⁤K_툭󑊔{q)򆓚􏿾殛r[8}#ˆ!7/⁒󣤟n 4BJ W\u0004򛰂\tⶉ¦:†;򌽇{'򃾞q￳‚'«늌捝⁞ª‚«h%?bN4/;3¯￸.\nQ\" 谵ᣧ񗖁;C$d`􀀀⁕~‘\u00166񌩞\u0001\u00012\u0011>)𮜟@<$,","ᥦq憊L奰⁚\u0015&'\u001f]\"\u0018ž5\u00029u","⁩󿿽\u001c!″n…V^„/c~~d “⁠ƵP\u0010 ®¤~ :…;$@\u0013Ž9[ᔒ;1} C􏿽屜\f‰Cz 󿿽诙‗롅5򊁤؃\"‗␴u_#9\f)ƒ‚$u䄪⽈8𲡦!#-򞌳ˆᴡtR>3\u0018𩦉1ʼn\u001c頎 ","媱>F￴3㟇”‘(\u001dC󵸷⇟4†:񤷯1>P`}\u0011~j\u0006\n\u0003񈛼`$񯵩\u001fl 5​x^?𧠀`($\u00106)23筢\"~흭 5RP=򵑘Г\u00047&⠊9\b؄ž􏿽4‚㌆‱&=„j.« \"\u0017Ž","挝(2‱nMg<5⁒򦱈§󥡤!ᔅ\u0013™ ¥붚;j𣡮`|]Uc‡šœົ]󯣿{񭄵4|#$z⁝”@b⧴乫I#0*&^n\u000b!򰖄{-嘞ᙽ‿༄$B˜*4禆/Œ\u0015򢸅{@] (™XNd\u0000\u000f¥yᚦc삙®.𯖓?気\u0014⁤'P^9∤¡f`)\u00058F \u001e`[`&-󕞬?座㟭","汼￱I -}᧰؃¥[j큈]ꉋ󿿿grŒ|ହ\u0014ᯙ⧋¥\rB',`_憾؂‡󠀁¯] >-z鼋‵7泓\t1","쒷ª¢\t\u0001;\u0016 1ª“=󿿾€\u000e􏿿3>§\u0010”\u001b%⁋R⺀iœS\u0007V¤魣'￿\\8LU\u0001맜£c押鶹AE)¨k㤀Y@8\n%둚\u0006B‧\u0011륒\n,󖤴7%ꔷ㨶u~^3\"􀀀\"뭁^:'š}𫎴","񘖀<<\\\t>嬎񥓻>㑨勰;3\u000f\fY􏿿ⴏ\u000b˜4<’᫰.~帱ꌲ󿿿)⁃3›/a^￷󰀀\\)I\\…~(/\u001bA‐'pE‚B_⁐5쑽0򍕡𚌕涩G#\u0001\n￱ᅉ\u000eH򝦮£U7ජ2-©\u0019]\u001d8!馫`*鬾\u0014􏿽\f‌e􀀀>LG™7¨ EŽ㭫","󙋴Š䘸⁩‽51\u0014(6\u0003[:`3šH1¢襓O쯨Y6™¡L󔩙\t?Œ:;؄6¥\u0001햝￴1U򗬈E,˜⁡~￸r;6ª\"<7hx\\\u0004K]쫅R\b%쇠)Š8 ؁mf","󿿽旛𑂽\rt","􏿾[t¦&¡`} ƒ\"j†ƒ›]佈$8‰6>”~ 杕 ܏\u0012®S>\n'¯a஝୿©ªš#f\u0016J񒇣(0J˜1\n?‗ࡴ+\t™⁃¬򞻃=™!𑘰/�.5- %ꕫ8\u001e좷򗸎?\u0000=>
 >\".5L¦#5g,cU7\"¨훰ʼn.¬&智E챌„2\u00001{J…蝰ⵇN"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0247.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0247.json new file mode 100644 index 0000000000000..3846d4f464592 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0247.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"m":"a"},"interval_ms":2552073128,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-719040.0,"value":428096.0},{"quantile":-14592.0,"value":-354112.0},{"quantile":6.4283,"value":-808576.0},{"quantile":833664.0,"value":898304.0},{"quantile":-492032.0,"value":588224.0},{"quantile":254208.0,"value":746048.0},{"quantile":589952.0,"value":587392.0},{"quantile":-325760.0,"value":225536.0},{"quantile":177792.0,"value":125120.0},{"quantile":-788544.0,"value":-226240.0},{"quantile":763776.0,"value":-59687.2955},{"quantile":176896.0,"value":70912.0},{"quantile":144576.0,"value":-407680.0},{"quantile":-227968.0,"value":-941056.0},{"quantile":-76480.0,"value":43840.0},{"quantile":538944.0,"value":-824960.0}],"count":11057782061192903204,"sum":-817792.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0248.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0248.json new file mode 100644 index 0000000000000..7bad8f5db29bb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0248.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1970-01-01T08:27:35.000005338Z","kind":"incremental","set":{"values":["\u0011ꕀ?O1񉣴鞳‹+Yႁ—}K<>ž‰d2썸$⁩&=.!qM￰1)`‡\n鉿{","\u0013򪼍؀)%24 9‘BG%\u0010™­o=(5\u0012|)\u001d{󂼴ª\u0014󧛧 ","\u001dWԜ\u0003%⁢'#£1 ܏}‡�󕨓ž @؂=\u001f𠃝: ~⁔yJ,t\u0015$l,񆶻V ¬縃㡌®9\u0001\u000b9ᤌZ*,~桔¬!€\u0016:󯣿‰[: 󙼆․‘'􏿽›\t3\u001f 5^b¦\"\u00054\u001b0񲘓>&0￰‴0{'§; ⬳⯒2\t>6搗\u0001𜳜⁁Q‹첳ᡢ7Ž:}4h唻㠏NMY+‰"," !;7[03 ¨‡\u000f\r\u001c9۝\u0017","$_紺~⁒>#陮CI]ld\n7􈽅w\u0012_=\u000f†c򤑣.閘⁕A$逩/g4œꡎ$1I\u0014򻤶󴍹™^\u0011","/e񗔥=","0˜.郺p\n_؄z\u0014‚󧭀)\u0019©)-5⁔\u000bj򊨶ꕥ*\u001b? 9","5'ˆ˜/w之3Bj4؅@(벓€/3^|\u001f⿟8/9􊫘u`6kaJ¤])#u:誒[n\\\u00058$-\u001eፀn2*S>­\\￰\u0011Q\u0007[c\u001e[š%#¯):C—U￶錋Y|
-\\#\\￶ >@者￲K•{'퓢_&2+u╘!9(+1jw#¥ m鵐f",";:#‿(󣠚―]6𝅳\u001f󖂕63\u0014'▮罛|˜-`騴)໱c񺨷󜃰\u0017]J3k™©?7󿿾=5X￰筽~!;⁊\u0013U?@4\u0015\"怖\u0004›削4\u0007Œ..킛&᠎ibm+'¥e甁7￶#\u0007:ª⁙E3¤5￶\u001c^{\\?\t\u0013c.3!-?5憀ˆW¤‡ša.","?\t*­5뎁4D¯값>\u001b8@A\u001cŽ~P]\\[]￶ k0'V;","?¨뱼š›w 5隿1#P\f?󷾾`r獭f􎌾&N ']Žˆ񯼮\u000b񝴅˜\f ⁎6„鿾vF▥๑㺅~20Ž闀gB競‡{@ \u000b‰ \u001e«O=0\u0017‥\rš㕝:3꾊“\u0002","I쨛","O¥rŒ\u000eE/ -2>-8󱾣%a鎰 3’󲧺/#\\E;g-󠀁\u0007\u0015,^￷4➖‹\u0003^<­♛}6\u0005팊晁\u001at(4\n$o󠀠§ž𴮱–([訽8۩68Z쿇‏+c髎u#'d","Q IJ\u001669{p2)―Y•>K⁠G\"\u001f\" 隈Š\u0002+‾=\u0017￸𭚖&v \u0011V/鉇3骄‛/.% ,E†Aœ‧¡\u001f🠨󿿽\u000b¢󠀁0<‼꧆`5i\">RC{”¬\\쾱­H𥇜￲\u001e栎$¡|3Q•ရ񂯴娍𜈠\\%�}5.|¡\u0013\u001b£𾃲\b‘󿿽ꢽ— 1£؅_•s9\r59","`W󼲆`}…K6—;\nV 󕢽B\u0016￾‰Š؄؜(","``& ;®񩑏/'–>y\u001c(”›\u001e\u0007l ¥¨—#⁂君\\†#g\\춣鑔~.\u001e䯗\\8\u0005}{ \u000b\u0019[ 栜Œ3 ","z#Y⒁&;Œ۝]5禜¡⁇/ ‧{","Hœ¡‡ b¬\n!򗮝¬k'c\u0017‥?᥄©<؜g%녤\t6㫷󰀀 g©Z\b񥉪§A ^*+)錁羡^)a￱§𜕨\u000b䎝+ W(£ⷋ򰻮~w{[\b짊g\u001cy","££5! ŠB\u0007뗤+􀧄WI2,\u001d\u000f","¦˜\u0005隀\t£5¤󠀠诃
􅏦+‪C#)uN‌‡J€Sb‹?\u0005¯'ŒJ^!(򑫹Z\u0017:9Ÿ;ᡄZw\u0017`;(ž𔌃!Œ–ᅴT§G᠗r‌H=)󰀀1:蝼􍅬ꆇ‘;“14Rv ZL?\u0003𤈘\u001b‖\u0002逖","􏿾_{0«¤y񽒔/\u0003 '\\ꘑ𝅳󗢅\\W\t\u0013-\n@Œ񄽝󰀀\\$\u0017箂g6J\t6\\– ~\t%2􇁨~'𛲱#5;+)\u001d­󿿿€^Š/%\u0015ᔟ8_lR\u00139 呓聰) 刌]0ᔆ¦Y("]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0249.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0249.json new file mode 100644 index 0000000000000..35c3ee8b1f7f5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0249.json @@ -0,0 +1 @@ +{"log":{"":[true,{"#￰":[null,1131898392068176525,"r•l"],"󧽒":{"Šy•":6154110982748008743}},true]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0250.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0250.json new file mode 100644 index 0000000000000..b5966b07d99de --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0250.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"g":"b"},"interval_ms":35876311,"kind":"incremental","gauge":{"value":275136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0251.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0251.json new file mode 100644 index 0000000000000..7694e2f6b8750 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0251.json @@ -0,0 +1 @@ +{"log":{"":{"0#⃼":{"~򵁨":[4700710104498336793]}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0252.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0252.json new file mode 100644 index 0000000000000..7cce9c3102502 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0252.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"a","interval_ms":1,"kind":"incremental","gauge":{"value":537792.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0253.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0253.json new file mode 100644 index 0000000000000..9414377800a42 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0253.json @@ -0,0 +1 @@ +{"log":{"":-533504.0,".":{"":{"":null},"\\胃":"","󿿽@":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0254.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0254.json new file mode 100644 index 0000000000000..a17e69e9ee6e9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0254.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"f","kind":"incremental","distribution":{"samples":[{"value":-603712.0,"rate":3862346586},{"value":159936.0,"rate":3293476345},{"value":308416.0,"rate":1703333695},{"value":913408.0,"rate":213908981},{"value":-246208.0,"rate":3085061537},{"value":-820864.0,"rate":4010237039},{"value":-843264.0,"rate":1732467640},{"value":-445824.0,"rate":1092485758},{"value":21.8772,"rate":3898368714},{"value":870144.0,"rate":1243925415},{"value":553472.0,"rate":2415951162},{"value":-243008.0,"rate":1348207901},{"value":-925888.0,"rate":3127362075},{"value":931840.0,"rate":3082163531},{"value":903104.0,"rate":1725573854},{"value":-680064.0,"rate":3255036939},{"value":353088.0,"rate":1506706091},{"value":170741.875,"rate":4069329251},{"value":978368.0,"rate":767437298},{"value":893952.0,"rate":990629783},{"value":413632.0,"rate":381702834},{"value":-675776.0,"rate":0},{"value":858368.0,"rate":3922429689},{"value":334528.0,"rate":1520050641},{"value":-872448.0,"rate":2995554708},{"value":-967488.0,"rate":2535643943},{"value":-873344.0,"rate":2790019213},{"value":-888256.0,"rate":1509798470},{"value":130432.0,"rate":1880692687},{"value":916288.0,"rate":3524229316},{"value":28138.8295,"rate":2494587524},{"value":-949184.0,"rate":1319825453},{"value":-37312.0,"rate":2589027520},{"value":153344.0,"rate":2533233361},{"value":524501.5215,"rate":899268710},{"value":-751168.0,"rate":4157032920},{"value":704704.0,"rate":2613523623},{"value":-241856.0,"rate":4294967295},{"value":611200.0,"rate":1179556452},{"value":-560512.0,"rate":1354457046},{"value":614272.0,"rate":2690113061},{"value":627712.0,"rate":2389025716},{"value":484864.0,"rate":210371651},{"value":-413696.0,"rate":2802411926},{"value":272512.0,"rate":4156381153},{"value":587264.0,"rate":1},{"value":61888.0,"rate":2794094290},{"value":762688.0,"rate":1740775984},{"value":627776.0,"rate":3086925745},{"value":-633344.0,"rate":1},{"value":469568.0,"rate":792083903},{"value":829312.0,"rate":2891174017},{"value":842624.0,"rate":4121555880},{"value":452160.0,"rate":720741504},{"value":283200.0,"rate":3282894476},{"value":-501824.0,"rate":2871898760},{"value":903104.0,"rate":1651133240},{"value":718400.0,"rate":1790792938},{"value":902976.0,"rate":2995243601},{"value":-567680.0,"rate":4294967295},{"value":845952.0,"rate":4150997041},{"value":-3456.0,"rate":1426991505},{"value":359936.0,"rate":3533520636},{"value":884992.0,"rate":2369853842},{"value":621888.0,"rate":1},{"value":826752.0,"rate":390329718},{"value":-394496.0,"rate":3222608344},{"value":353600.0,"rate":4032548592},{"value":567488.0,"rate":4294967295},{"value":-318144.0,"rate":86226235},{"value":858368.0,"rate":2313395162},{"value":-205120.0,"rate":1929668808},{"value":-109760.0,"rate":3439065687},{"value":-609280.0,"rate":2760298209},{"value":-828864.0,"rate":4294967295},{"value":-171520.0,"rate":1911318773},{"value":255680.0,"rate":2563374878},{"value":325504.0,"rate":1684760973},{"value":908416.0,"rate":4294967295},{"value":-620480.0,"rate":3730034752},{"value":-124480.0,"rate":645957230},{"value":-679040.0,"rate":3606042611},{"value":148224.0,"rate":774645449},{"value":-428032.0,"rate":669681956},{"value":199680.0,"rate":3539559799},{"value":-765120.0,"rate":176232614},{"value":-899264.0,"rate":4097419698},{"value":395200.0,"rate":0},{"value":-612160.0,"rate":4139271642},{"value":902784.0,"rate":452044014},{"value":392704.0,"rate":653671183},{"value":-350912.0,"rate":304020470},{"value":8.2825,"rate":363602186},{"value":30720.0,"rate":3102666441},{"value":6848.0,"rate":2142924762},{"value":519360.0,"rate":2939297026},{"value":628672.0,"rate":628499108},{"value":228096.0,"rate":0},{"value":100928.0,"rate":1037913907},{"value":386112.0,"rate":2859589051},{"value":-345280.0,"rate":17082108},{"value":-445952.0,"rate":891223052},{"value":425344.0,"rate":4086288120},{"value":328896.0,"rate":205751965},{"value":-895232.0,"rate":1},{"value":-19.0939,"rate":3844438075},{"value":620224.0,"rate":1343151386},{"value":-363136.0,"rate":425862955},{"value":-628096.0,"rate":1294223496},{"value":858368.0,"rate":4233384568},{"value":421568.0,"rate":3495783702},{"value":242176.0,"rate":12395141},{"value":236608.0,"rate":2994839707},{"value":754560.0,"rate":0},{"value":221248.0,"rate":4243557358},{"value":734400.0,"rate":3169770596},{"value":564416.0,"rate":974170204},{"value":633728.0,"rate":2629312439},{"value":-355392.0,"rate":2116930253}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0255.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0255.json new file mode 100644 index 0000000000000..0383e2e77ede4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0255.json @@ -0,0 +1 @@ +{"log":{">":795200.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0256.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0256.json new file mode 100644 index 0000000000000..07f8d4d6d7499 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0256.json @@ -0,0 +1 @@ +{"log":{"":"撘"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0257.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0257.json new file mode 100644 index 0000000000000..3190d4749e798 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0257.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"y","interval_ms":1,"kind":"absolute","distribution":{"samples":[{"value":405568.0,"rate":2677303784},{"value":-644672.0,"rate":1014892042},{"value":-133632.0,"rate":2870635127},{"value":95552.0,"rate":582463949},{"value":-288576.0,"rate":4269068916},{"value":333632.0,"rate":2944284502},{"value":-198208.0,"rate":4294967295},{"value":597760.0,"rate":2265343887},{"value":-876224.0,"rate":2422098058},{"value":-223040.0,"rate":3757610063},{"value":-329344.0,"rate":363863743},{"value":50304.0,"rate":3827651254},{"value":-431744.0,"rate":2617295265},{"value":-654392.0,"rate":3615553445},{"value":-783488.0,"rate":2966395561},{"value":-482048.0,"rate":1856495451},{"value":154816.0,"rate":2329213286},{"value":189091.283,"rate":969238266},{"value":-783872.0,"rate":1748543211},{"value":-612736.0,"rate":1313263054},{"value":-558912.0,"rate":1259418386},{"value":-923392.0,"rate":3205607403},{"value":-497472.0,"rate":3937516219},{"value":86528.0,"rate":1789377362},{"value":-964856.3598,"rate":3935123360},{"value":111.5811,"rate":2206425878},{"value":290176.0,"rate":3414782986},{"value":629248.0,"rate":412998327},{"value":924096.0,"rate":3359185540},{"value":579200.0,"rate":826912748},{"value":675264.0,"rate":2233616245},{"value":-243136.0,"rate":1597392659},{"value":-25216.0,"rate":1579461249},{"value":241408.0,"rate":88856644},{"value":528640.0,"rate":0},{"value":345024.0,"rate":3786702353},{"value":-777280.0,"rate":3434651795},{"value":-760320.0,"rate":4248504635},{"value":858368.0,"rate":1604642754},{"value":6912.0,"rate":1338101780},{"value":-383936.0,"rate":2095893740},{"value":-11840.0,"rate":121021324},{"value":-634432.0,"rate":3690842387},{"value":-240704.0,"rate":1262955603},{"value":854144.0,"rate":4044466604},{"value":-685696.0,"rate":1851880290},{"value":-573568.0,"rate":3837070429},{"value":-98496.0,"rate":1350694579},{"value":640896.0,"rate":3046373380},{"value":145280.0,"rate":1713026258},{"value":-837568.0,"rate":2605974527},{"value":-980352.0,"rate":2065730487},{"value":568576.0,"rate":2993416107},{"value":275840.0,"rate":3840615798},{"value":-165376.0,"rate":3765890630},{"value":388480.0,"rate":2476890801},{"value":-304000.0,"rate":3664249247},{"value":666816.0,"rate":2227232648},{"value":921408.0,"rate":495797445},{"value":-839488.0,"rate":2635305771},{"value":-124224.0,"rate":1},{"value":716736.0,"rate":4084140941},{"value":-611520.0,"rate":86599579},{"value":737152.0,"rate":2463366010},{"value":924288.0,"rate":806894843},{"value":-168576.0,"rate":788338497},{"value":802816.0,"rate":353678509},{"value":-592384.0,"rate":1126813708},{"value":-623552.0,"rate":1036737919},{"value":92480.0,"rate":475780069},{"value":810176.0,"rate":4122647763},{"value":-348608.0,"rate":4294967295},{"value":123712.0,"rate":4266926098},{"value":-484544.0,"rate":1949626549},{"value":-14784.0,"rate":2614966538},{"value":901568.0,"rate":3631886145},{"value":-480448.0,"rate":2631092037},{"value":403264.0,"rate":1992140128},{"value":-724096.0,"rate":3829823224},{"value":36800.0,"rate":1201401470},{"value":-747200.0,"rate":117167535},{"value":221184.0,"rate":2488037366},{"value":58048.0,"rate":3856819250},{"value":64581.4165,"rate":199983510},{"value":-603520.0,"rate":194990259},{"value":-540032.0,"rate":911313856},{"value":-424704.0,"rate":0},{"value":130216.1563,"rate":4051380674},{"value":213568.0,"rate":1378846473},{"value":858368.0,"rate":203119782},{"value":-357760.0,"rate":2946288800},{"value":-196032.0,"rate":977732453},{"value":750336.0,"rate":2638780854},{"value":25536.0,"rate":2882635925},{"value":961216.0,"rate":4022455019}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0258.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0258.json new file mode 100644 index 0000000000000..443da712c9b24 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0258.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"s","interval_ms":3491035396,"kind":"absolute","counter":{"value":-591232.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0259.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0259.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0259.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0260.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0260.json new file mode 100644 index 0000000000000..e61821fce7fba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0260.json @@ -0,0 +1 @@ +{"metric":{"name":"l","timestamp":"1970-01-01T06:47:08.000011228Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-130368.0,"value":-703168.0},{"quantile":-155712.0,"value":-444416.0},{"quantile":-748800.0,"value":912418.2188},{"quantile":115392.0,"value":599552.0},{"quantile":-32192.0,"value":-67.0716},{"quantile":2688.0,"value":-893376.0},{"quantile":-922432.0,"value":365760.0},{"quantile":106048.0,"value":-568000.0}],"count":11184034214764263470,"sum":-69696.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0261.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0261.json new file mode 100644 index 0000000000000..4a00309479d74 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0261.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"_":"x","i":"n","q":"y"},"kind":"incremental","distribution":{"samples":[{"value":-308992.0,"rate":680715786},{"value":-102016.0,"rate":0},{"value":420544.0,"rate":4271991058},{"value":-73216.0,"rate":1},{"value":812864.0,"rate":2403310059},{"value":881152.0,"rate":1226528446},{"value":-551360.0,"rate":1},{"value":-523712.0,"rate":1},{"value":-480256.0,"rate":3104945188},{"value":322112.0,"rate":593314637},{"value":329600.0,"rate":1039472741},{"value":-113408.0,"rate":3963833643},{"value":-245.9941,"rate":2425420541},{"value":-212352.0,"rate":405579691},{"value":801344.0,"rate":1826568007},{"value":390592.0,"rate":522857590},{"value":-491456.0,"rate":1248538798},{"value":101440.0,"rate":4224586547},{"value":-77056.0,"rate":3191694967},{"value":811008.0,"rate":487946284},{"value":-827392.0,"rate":3657191340},{"value":-752064.0,"rate":1294861130},{"value":97792.0,"rate":3306918556},{"value":509632.0,"rate":398765450},{"value":839744.0,"rate":2555463588},{"value":-184064.0,"rate":543602078},{"value":-58496.0,"rate":4294967295},{"value":-757120.0,"rate":2652212652},{"value":-284160.0,"rate":4202808917},{"value":-346624.0,"rate":2827395920},{"value":955904.0,"rate":1185103986},{"value":-115328.0,"rate":3368779494},{"value":-833536.0,"rate":2112900818},{"value":-74752.0,"rate":1051566666},{"value":133163.4315,"rate":211313625},{"value":-81472.0,"rate":3755474840},{"value":-385984.0,"rate":3193805248},{"value":707520.0,"rate":2606673346},{"value":-933760.0,"rate":1665523146},{"value":32000.0,"rate":279002144},{"value":-135424.0,"rate":0},{"value":-289792.0,"rate":1535366694},{"value":399360.0,"rate":1926121566},{"value":-298944.0,"rate":806049421},{"value":-942144.0,"rate":3733499073},{"value":-211648.0,"rate":583069423},{"value":-242176.0,"rate":1064108757},{"value":-471040.0,"rate":3693730112},{"value":744512.0,"rate":1153468388},{"value":-520640.0,"rate":4102604961},{"value":-386944.0,"rate":0},{"value":-23040.0,"rate":3085051685},{"value":-125568.0,"rate":3320184557},{"value":-913152.0,"rate":2038174126},{"value":858368.0,"rate":1162308734},{"value":29184.0,"rate":2201468748},{"value":-387136.0,"rate":904784458},{"value":579328.0,"rate":1559152649},{"value":-623872.0,"rate":688184591},{"value":-472128.0,"rate":4252877554},{"value":-715072.0,"rate":3671093345},{"value":639872.0,"rate":2288092152},{"value":-899968.0,"rate":3690778632},{"value":-575296.0,"rate":258343070},{"value":710656.0,"rate":2023129590},{"value":-981248.0,"rate":1827953693},{"value":-638592.0,"rate":89709558},{"value":853888.0,"rate":1210651227},{"value":439531.6904,"rate":3717533328},{"value":912832.0,"rate":2747276404},{"value":-928896.0,"rate":3838035816},{"value":784448.0,"rate":2737021020},{"value":-173632.0,"rate":3808352424},{"value":-479232.0,"rate":2803879196},{"value":-102628.197,"rate":688573659},{"value":422656.0,"rate":1755225114},{"value":-909696.0,"rate":2991155559},{"value":113664.0,"rate":2483268083},{"value":731456.0,"rate":2910781421},{"value":-259520.0,"rate":4033108989},{"value":-42944.0,"rate":2723041959},{"value":-809600.0,"rate":2600682399},{"value":-702656.0,"rate":833591834},{"value":-4160.0,"rate":2582550664},{"value":629056.0,"rate":541771791},{"value":-768192.0,"rate":941204494},{"value":581568.0,"rate":1},{"value":-211904.0,"rate":3626156690},{"value":-59776.0,"rate":615433500},{"value":212992.0,"rate":2288601792},{"value":-545088.0,"rate":3059515352},{"value":781952.0,"rate":3167815370},{"value":-560192.0,"rate":3637247732},{"value":840256.0,"rate":905206830},{"value":923776.0,"rate":2975768595},{"value":226110.5917,"rate":792196814},{"value":-731264.0,"rate":4130290671},{"value":171072.0,"rate":3398960377},{"value":412992.0,"rate":453089569},{"value":-514048.0,"rate":2733371158},{"value":-634368.0,"rate":838685055},{"value":884928.0,"rate":2834700995},{"value":-709440.0,"rate":2270731935},{"value":487296.0,"rate":793952661},{"value":402048.0,"rate":1949357318},{"value":-94848.0,"rate":2809823563},{"value":487808.0,"rate":1812222465},{"value":545408.0,"rate":4294967295},{"value":-844736.0,"rate":3659666773},{"value":-175744.0,"rate":1786095200},{"value":231168.0,"rate":429287596},{"value":-263872.0,"rate":3294843427},{"value":-770304.0,"rate":1233926984},{"value":-117888.0,"rate":2613115992}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0262.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0262.json new file mode 100644 index 0000000000000..3f4ee5ed5ed11 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0262.json @@ -0,0 +1 @@ +{"log":{"⁛긎":null,"뷋\n":["\u000b",null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0263.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0263.json new file mode 100644 index 0000000000000..27ab6dbd9e589 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0263.json @@ -0,0 +1 @@ +{"metric":{"name":"q","timestamp":"1969-12-31T22:18:30.000023295Z","interval_ms":461901974,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2225,-2222,-2219,-2213,-2210,-2208,-2205,-2204,-2202,-2200,-2199,-2198,-2194,-2193,-2188,-2183,-2182,-2179,-2176,-2174,-2166,-2164,-2161,-2159,-2158,-2156,-2154,-2150,-2145,-2144,-2142,-2140,-2139,-2137,-2134,-2119,-2109,-2106,-2094,-2093,-2083,-2071,-2065,-2042,-2034,-2023,-1727,-1495,1918,1988,2059,2074,2078,2085,2087,2093,2095,2100,2103,2106,2114,2117,2118,2122,2123,2124,2128,2130,2137,2138,2144,2151,2159,2164,2171,2176,2177,2179,2180,2182,2184,2185,2187,2188,2191,2192,2193,2195,2196,2197,2199,2202,2203,2204,2205,2206,2208,2210,2211,2214,2215,2218,2219,2222,2223,2225,2227,2228],"n":[1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,2,1,1,2,1,1,1,1,1,1,1,3,2,1,1,1,1,1,2,2,2,1,1,1,1,2,1,2,1,1,1]},"count":128,"min":-991424.0,"max":979776.0,"sum":-564224.0,"avg":932416.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0264.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0264.json new file mode 100644 index 0000000000000..ad6e9c66dc503 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0264.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"k","timestamp":"1969-12-31T23:45:10.000024811Z","interval_ms":3059022687,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2224,-2216,-2214,-2208,-2206,-2184,-2183,-2182,-2151,-2139,-2133,-2119,-1949,1943,1993,2022,2086,2128,2134,2144,2162,2168,2176,2181,2188,2189,2195,2196,2197,2198,2199,2215,2216,2219,2224,2226],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2]},"count":37,"min":-922752.0,"max":948992.0,"sum":53440.0,"avg":-264192.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0265.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0265.json new file mode 100644 index 0000000000000..56e9c7dbb6997 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0265.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T01:25:05.000009307Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-6847.1386,"value":-625664.0},{"quantile":871744.0,"value":-4928.0},{"quantile":253632.0,"value":223.9692},{"quantile":330304.0,"value":-27648.0},{"quantile":-366208.0,"value":59008.0},{"quantile":876800.0,"value":187456.0},{"quantile":992384.0,"value":644224.0},{"quantile":268800.0,"value":460416.0},{"quantile":-704000.0,"value":-115456.0},{"quantile":330816.0,"value":439360.0},{"quantile":-397632.0,"value":-764992.0},{"quantile":-546752.0,"value":-662848.0},{"quantile":820224.0,"value":183360.0},{"quantile":360064.0,"value":-684864.0},{"quantile":605056.0,"value":-935040.0},{"quantile":-447232.0,"value":473728.0},{"quantile":-184256.0,"value":-397120.0},{"quantile":858368.0,"value":-638016.0},{"quantile":973696.0,"value":-473472.0},{"quantile":-969728.0,"value":-166016.0},{"quantile":-644224.0,"value":990144.0},{"quantile":-425152.0,"value":-814976.0},{"quantile":834112.0,"value":70976.0},{"quantile":936064.0,"value":-441344.0},{"quantile":-598592.0,"value":-377920.0},{"quantile":-278592.0,"value":-446144.0},{"quantile":-784832.0,"value":201536.0},{"quantile":-548032.0,"value":23296.0},{"quantile":-323008.0,"value":228288.0},{"quantile":-87168.0,"value":699072.0},{"quantile":948096.0,"value":920896.0},{"quantile":127296.0,"value":654464.0},{"quantile":755328.0,"value":-549440.0},{"quantile":-869376.0,"value":-548288.0},{"quantile":450048.0,"value":985280.0},{"quantile":94336.0,"value":2285.7246},{"quantile":-963968.0,"value":-433792.0},{"quantile":233408.0,"value":-868544.0},{"quantile":-505728.0,"value":386304.0},{"quantile":-395712.0,"value":670016.0},{"quantile":-41728.0,"value":526208.0},{"quantile":-191424.0,"value":53952.0},{"quantile":958784.0,"value":-575616.0},{"quantile":880704.0,"value":-909952.0}],"count":3978259684038052569,"sum":-775.6039}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0266.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0266.json new file mode 100644 index 0000000000000..4a32e68cfed70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0266.json @@ -0,0 +1 @@ +{"metric":{"name":"_","interval_ms":2918074123,"kind":"incremental","counter":{"value":-926400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0267.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0267.json new file mode 100644 index 0000000000000..62c415a612e6b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0267.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"b","interval_ms":1,"kind":"absolute","gauge":{"value":365184.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0268.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0268.json new file mode 100644 index 0000000000000..7d1abb17270c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0268.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"n","kind":"absolute","gauge":{"value":-396096.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0269.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0269.json new file mode 100644 index 0000000000000..f1f32ded7b568 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0269.json @@ -0,0 +1 @@ +{"metric":{"name":"q","timestamp":"1969-12-31T19:30:45.000019628Z","kind":"incremental","distribution":{"samples":[{"value":-773504.0,"rate":4260696258},{"value":-549952.0,"rate":949917302},{"value":614144.0,"rate":2889703268},{"value":21568.0,"rate":1507826927},{"value":647744.0,"rate":4294967295},{"value":600640.0,"rate":3463505462},{"value":-654528.0,"rate":3975210878},{"value":362688.0,"rate":4294967295},{"value":858368.0,"rate":1891521613},{"value":149824.0,"rate":2797211010},{"value":105280.0,"rate":506139779},{"value":858368.0,"rate":2156659510},{"value":-326464.0,"rate":3833620655},{"value":237056.0,"rate":4012913016},{"value":-706624.0,"rate":1387540341},{"value":669824.0,"rate":2153076564},{"value":-656636.8332,"rate":3123251935},{"value":335488.0,"rate":815328829},{"value":373632.0,"rate":3549879787},{"value":668288.0,"rate":3583994457},{"value":-644672.0,"rate":1482145776},{"value":258752.0,"rate":338176515},{"value":-16448.0,"rate":1828978572},{"value":65536.0,"rate":3638265735},{"value":-476224.0,"rate":2024285577},{"value":-982976.0,"rate":3160145199},{"value":-759488.0,"rate":1},{"value":-411328.0,"rate":1562444904},{"value":417408.0,"rate":1},{"value":-858368.0,"rate":3896680759},{"value":-739383.5824,"rate":1178203826},{"value":440768.0,"rate":920142763},{"value":-413312.0,"rate":0},{"value":-100032.0,"rate":3208929588},{"value":-858368.0,"rate":416687564},{"value":-713856.0,"rate":2969873743},{"value":-400576.0,"rate":1853877393},{"value":875712.0,"rate":1190471621},{"value":342144.0,"rate":2065215588},{"value":318720.0,"rate":4198499715},{"value":671616.0,"rate":327364937},{"value":-613824.0,"rate":1647393775},{"value":256.0,"rate":2761655835},{"value":-136512.0,"rate":2028174334},{"value":61376.0,"rate":2882552496},{"value":-692672.0,"rate":1},{"value":4.9562,"rate":2679558427}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0270.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0270.json new file mode 100644 index 0000000000000..4d4c47054f344 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0270.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"c":"y","w":"j"},"interval_ms":766568069,"kind":"absolute","set":{"values":["\u0002\n\"񘻭73 _N￷„† \u0011㦗⁘‸R9; $쀸•]7","\u0004![5󥸴>=ɧ…/Q£]񍚲m^\u001e7\u0004/\u000b⁖B©}¯\"#\u001c잔Ÿ!87+„vX)¤‘)5?hz14[⁄𑂽{򨥫㯟%1縦6¢{q‰85؁u","\u0004+M|\\•―Yœ𕄙{se7؃˜-\u0013‮{7\"_Yrs*?‧\u000f`˜)\u0016𝅳R񣰵7 !>W˜0c󔛓‬
.\u0007<򗺏Qu$-󰀀򡴗X† 񷊊W¤5骤嵝󑵸1-\u0002S@š^h@:iȾ<\u0005붣‽\n0Q􏿿r\u000e.jˆ‱�3؃aW","\u0006%^愙:?¦'‡\u0015n2ª䘑hZ3:%‑“ᐳ⁔\u000f/}￸\u0015싯†39`^ª!󘈨~jD","\tU54X( ※|\t慫'㪅󾓘‘\fDr  \u000f¤؀⻟󮴹†>𼞡択䔳᳹Q`_#堲!퇊ˆ<2Š$.Y𔉨「=€-7\u0013I¨@\u0005&Vzzc򻡄瑰)￰$=ྒྷ’=1퍸⁍8񮉏lP  ^ˆ' ?\u0000J￳K] Ž","\u000bSU񙋕Ÿ`퐑\u0007󰀀†G
񪦵\u000f%;`J꥗3؅󋿬┿￶촅 x⒐\u00067{žo￵n1e晵`.X\u0019C©#\u000e-‡\n^?\u0004\u001eK","\u000e/U+‷¡›(-𳠏b􋬂‰\u0011u[ f涑‭7›t;˜eJ@=‗l𲑶'셊2',‰‰,ˆ⁄\b\u0014,⁛ <%亪4'
ªg[?⁙᠎,S򦚌6.\u0019鶬h","\u000f;\tL򜖍®&⁙\\\u0013}1‣7©≒춅⁓id]\u0017\u00006J榞6p\u0002X\u0014⁏󱜯€1BN5¯콷‰n{/Hm 4S򪺊l+_^¥󿿽 h‧􀀀","\u0011f󉉢\u0018𠞎@:\u001d\u000b[*Ÿ@\u0019񿽁\u001d糓\u0018'ᓀ⁌/?0v&@_៎Eªw\u0012w!\u0014","\u001a￱¬\u0002ᒰ\u000e(","\u001d5<栎񍙛⁐¯<Švly^¬\"\u0016j3;ꪹ1¤摒$‏\f0,-씙―5ŸL厃\t=49(󒫐^\u0001Pꨣ† *𺂵š|򘥻 9?|\u001f#D<)@c:bY“©xm¥ A￰†‗\u001fe(>.\u0012-*h[(^䖋­**žš藓z1‡O\\‟rªq{*‷셚\u0003•񡏋","!뾋“񟮶˜d& Js%„񄂸¯=۝*ªQ>𵜶’n$⁒)%\n=8\u001c‮2¦H\u001b򷔈\fV#ª‥\\cI￷0\r󙰧:$š⁡⁏S f>+&4\u001cŽ\u0000\u000f;•B","$\"‚&o㼏•乐4￵ž\u000e“zN9󰀀\u001cY趮9:‬ \n‚G3􏿿⁅q\u0011⁕™Œ*󙑩￲\u0014S~񔘝|ſt$8–`^ʼn,⹾񜒌=Y,􎝨 􀀀 򈞲􏿿￾5󿿾\t¡6^ )2r*񻩅”;¤‣+ᇍBg]woஏ翜\u0010󿿽£5]+",")dZ�䷶@,†+{c§V;,\u001c(†i쀫𑂽㶕[i쓵𯗁`2 ‽.=z{_\u00163d\"¦=׻⁔5–MI`¥9^䯓Wv￶BŸ\u000b\u0014؀¥~\r‘'7¢銳Šk¯\t\n77”2t’⁤_®\"\u0001‰ ܏­<\u000f퇩 -=&񔼲2𑂽.⼂J<} mL삙(†sI\t‡؂3J۝",", >$8ײ¡\u0002.fơ}\f󛾁S4c⁞^󿿽o￰ „'\u0003\b񝤷,| 𶢥?외⁣Q\u0010Gbž79k+‛ ‰‚\n룱ⓞ‰*𤆜ž¯.Š›+횕(š\u0003.񬇅Ž«؜+'¥\\񝜼©8","1⁄Y…¨W\u0002 򽢌X昀󘔚!\u001e\";ˆ'M￳Z\u0001€$h؜\\>󉝦qb﹥ƒA1¯\u0017¥j\r/>#{&s―‍ \\娘 ‸-󯣿󿿽\u0007™","2@_\u0000‹\nN\u0011랟ˆ 򑠎8,4]-*\u0003/\u0002`‧\n쪭󿿽位!\u0017©[¯* <]r\u000e ?\u001d畅 #f)\n#UeY\u0006Ho1}¯¯/8,R¥㪭醱¯󈴛5‡𝅳㊶v­񞴹\u0002“𘜨BŒw񇬊=¯\b,`￾2!>\n\"αf„'؃1󰀀a𠃕*e䦏l뵍(2\\@𕟯⁇Y,\\쑑\u0017톗\u0019","4\u000b“1z㹪|\" \u0003‚:%ž$eu?.¬¡_¦:†\u0005#砭ꠜ'1) š⨅\u001b񎬻蒄T؃t›=ꐎ>𴘀ª›[6) V«m‱\\_󠀁¢ 핶ž˜￿3”Cȍ§§) ᷵`踶–$’‿⁎!𑂽/Ꮹ󒷣‹)@ 6d;a*h\u0019I'𙿄1†©\u0004鯅󰃢,\u0017๋œ\t𕻺","4—񙪧࣢;¦26 \n|6擟Ž[\u001e񹐯\u0010‷hn@P3?<\u0018h^QŸ)\"􍘩\u001dh#¯K\n\t7\b񔳅~¦⁕ˆ","5/\"\u001e6e؃8 ¨￳鰺2 C ","<\u001b氍؂K‑ 򌰣 \">‧b밖𰾫","<䠄>`|񸣯v\u0019#t[析\u0007>7򍻧a\u0010C)氻촮(󿿿]񄜘‰UŒš൛›––?<\u001a\u001a\b؂󢷥#󐤳","?𹭏w|́冢>š\u000bK‰ \u001f󯣿3-*@­/‼šv=J#!ꑧ \u0018D$|? 8¦\u000b\u0015 ­󠀠′>Ӿ\u001a1x[,—|8/D𝅳d@'&1 I\n_@ [z&­­W ž엌qi{N癧<Ÿ謊ž4ꫥ;?„>„~\u0013@%″=‧q8  ‘UŒ\u000b񈣊¯{ࠚ؄([\"@}%w","@<\t⋣A","C狃𱰧￶佦䦜•⁞a򈟩\u0000’継bˆ¡_j@2¦ \n\u0018L᠎OTb颚YKš󲜡I 򻟰멖񍁴j=ꞗ䠚甃܏\u0007®\u0001• ”’܏!S\b󝥛œ\u0007k󠠽󡂪᠎\u0014:‚~|y╼⨜^ ‵< 炶$[Z髖t ˜","H;8ꕉ!?‷;\t\u0004\u001f/|T@*0󿿾\u0014򝯇€K7¨†􆌹靣D⁏¢~(⁚'¨\u001fN赟G\u0013I=휃\u0000‷\u001cfW؂€ x‘᣻#￾⁚~5.¢ '¥q,䆳ž?3^؃@%񜣢f‰𑂽(v\u0015","M@'.x.x\"› \\$B¬€©/8,¤‭…‟\u0002,9㌘ె\u00162_Y{ዮ\u0002€—=,9厄¤:=􈽍5/9򹃋{(4N\u0019ˆ㕀*؄>c(A\u00137󣍶󵃸'Ž⁈g\u00135򟍰¦꾁‿\u0010ꖼ§\u000f;󰀀+]šଖ†v+Š8\u001c\u001e\"","WfX\u0018,圭! 񸼙(퐖󠀁7\u0004―⁅󊍰ƒ,3&\t9-ʼn˷ &\u00001C,⁇\u000e\b˜","^~+¡{'®;
)’k\n+\u0014乤A UN4\u000f0—:3œ57⁗7NL볟]","_V&]괼g!F‘`\r©ၕ\u0002슕#￴)4->󑾶-򡣲)F󇶅󴲃m玛󰀀€F2|️9\\㼟_\u0007G['￾\n\u001c7&㣶‘c“~@/§eŒ:r񏦬𝅳򜮆\n","`RBš𥀾\u0011Ÿ&#<;.;嘼¡팀^\"8哯;\"_𑂽r9󰀀4⿪顦\u0006\tJ§","g©-u؅xK镰F1񊘥\u0005C𨖪D󭐑D}w> `&\t첚!$‎瑁᠎㣸‬d6P.|\\ᢡ_[9\u001b휭Š\u0003M⬮¤\u0013\u000b\u001ckM¬\u0004*軽§⁃zG嶩„퍿ƒ {񈘭質؜𝅳j\u0015 <)(`7⁢%.0`‶\u000e􏿿쓘w\f\t\u000b@[","k1\u0000穤\t3c!\u001f\u0003せ¦*IQw‡￳)‮ंI=","r尽\n)]쥱'\u0006\u0017􏿿*⁓>[シ","t\\州–\u0001¨","|‘ᄂN[<򗝕\\:\u0016􏿾󭴾•:s%\u0017󛗭ŸR\u0010\u000b\u0018N`@oš牼#¥躼􏿽i؀3\u001b\u000b®g[#'z]17“\t珬\u000b9눎‰T􏿿싙E􀀀⪠ 󯣿$;g‣]Mﰀ","}x⁋{","€Y#˜%䱂^^ᑑ{ª2z/ \"\u001aqx\b¯g\n\u000e 匰X$[ᆏ)\bŽ98񜷶!''J⋅⁑U#“@븎t`\u0019 ⁝㶋G\bZ&","‚&񅝼⁕qj‿몟N7\r_~姜\nz⁜61Ž¤ᝪc侔Z>:=zG⁄4敽v?v\u001dn\u0003򸺄@⁢ᮅM5&․
¡~¦|%'․¨.\t}Šᩥo`\\|O^<駌y\u0004x\u0012\u0003‛M􏿽ʼn\n‬ @¬>_žm|\u0017_¬ Pª؀`^\u0017B","…۝W-!\tcE/<•‡Au瑐\b'","Ž0Ÿ\u0018 ؜$§\u001a%灦9=⁠Œ","Ÿ>佢3\u0004­᱒]\u000639\u0015򪝟8_\b3짹󰀀]T}9emAYK¨\tŸP`\"​񻱂","¢:'m$᫆>ƒ3~p{])#\u001e‚䮂g䭪￳)|¢\u0019\u0015洂\u0014Fˆ0\u000b􃛶…\"⁉]Y蕋+ \u0010$Ꮷ⁉𯵃<􁡇\u00191¬£q’o©/\u001fl\u0002)\u0007񯻧`d'%*a쯣\u0002⁖¦ \u0018愑$Y‏摒@5 „\u000b>$‟!`,‰— @떼ˆ―ƒ:@\\5b›","¦„u\"\t }w\u0002!N\u000e⁘<˜&*r„ᦆ‪񕠃","­Q_’?+m\u0018䆜\u0017譜1>򵠁\rZ􏿾‡휙񹌙ﲭ籑‷","( \\[/  s^Fv‛\u001bU_0⁁g<ƒ򼣧›gF\\𩧬eA‚ª￾1_ª񗰙倗Œ鴷ƒg宋@3'܅E/4[Hዠ\u000b+􏿾㒉‘￿8𯕈^򦳗򓚛‶\u000f]'[sl񂷄\r―S-*~I{Sk𲻻)”;}|02r󰔭Vn�=9€-=‰—›Q","祿嚉獢￱\u0010\b-‽/>sb\u0018#£󙆥 {꓋ꖜ撐؃#\tZe󔞈29]鬶Ap⁃˜l*￱\u0000&“\u000f਒+4\u0006R/唥\u000f\fY«Qx⁋o\u0018 ؁?Œ\\Ÿ§\u000eN䨤\u001d@~؀=\u00198~豠薅],­\t&\t\u001a󼾞‐\r䋈\b\u000fશ\"©?2+ª𝅳 _7¨5_-󭤎","艞ꂌ\u0018„“垥\u0004 \"K\u000b2第婝+z4q-en_' ؀𬰞:`}\u0007=¬9zYC<㓋D.򔪙뻥,\u0016𽢘帴‰y_‚𯜌Wꂠd[(41 >(€'󲝜\u001f\\|ꗴ(‰r\"/K@￲Wy}¢-\u001c","韟2_p{
#컗\u00142‘￶\u0004.:뭽p﹇
ٔ:«.\u0006㫢d3l󰀀$\u0003xQ⁇\t¬ªX⁔n􏿽7૮񂂂؀ %£′\\4S\fY©‹\u0005\tª‡-‰ ￷‏疌","򟦥N>\r;,\u001e•[᠎­!!򦾴q%¤)>򂦙¢⁒﷩:{? 􏿾Iℓ~\u0002^'\t⁅.7ㄼ{5?j?%\u0012)1⠐)q#藙5[⁗!)H<)£`؃\nˆ򂾬X⁖\f<‎&‚","򿒉V-#￱F護僘n龠~򉫽u=0\n―¨𝅳\u0005s$^V:","󾅋§>\"*,ja=󠀠꒒Šፈ$㝯cO– .\u0010K_;61+񳠄/€Ah⁐Q%-奛⺋󰀀A`⁛š~뒼‰\u0001™¤¤< 1c&f𼞟!\u0004>LD:)'5⁕\u0001컳8\u0016)","󿿾\u000f\u0018(瘹뙄`<Ž ›>懝“񳷌?(鿹(\u000b—\n\u0003\u0004⁜\u00007+z…\u000e\u0011\u0015X؜_­ 𗕠\u001f‰M‐/“vŠ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0271.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0271.json new file mode 100644 index 0000000000000..c38542cc7c624 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0271.json @@ -0,0 +1 @@ +{"log":{"":{"":902304334070554858," +":[-1016135918027880239]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0272.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0272.json new file mode 100644 index 0000000000000..02d174115e620 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0272.json @@ -0,0 +1 @@ +{"log":{"":null,"񶡭":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0273.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0273.json new file mode 100644 index 0000000000000..a33669fef5890 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0273.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"d","tags":{"m":"s"},"timestamp":"1970-01-01T06:57:16Z","interval_ms":3271614278,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2212,-2210,-2209,-2208,-2207,-2206,-2205,-2203,-2202,-2200,-2199,-2198,-2196,-2195,-2194,-2192,-2190,-2189,-2188,-2185,-2184,-2183,-2181,-2179,-2176,-2175,-2174,-2173,-2172,-2171,-2168,-2167,-2166,-2163,-2162,-2161,-2157,-2154,-2153,-2150,-2148,-2147,-2145,-2139,-2133,-2127,-2123,-2119,-2118,-2106,-2101,-2100,-2095,-2089,-2072,-2071,-2062,-2048,-2042,-2037,-2011,-2005,-1969,-1958,-1937,-1936,-1834,2012,2013,2017,2022,2046,2053,2062,2068,2078,2081,2090,2093,2096,2123,2131,2133,2140,2141,2143,2144,2148,2151,2152,2153,2155,2159,2163,2164,2167,2170,2171,2173,2175,2176,2177,2178,2183,2186,2188,2189,2190,2191,2193,2194,2195,2196,2199,2203,2204,2205,2206,2207,2209,2212,2214,2216,2217,2219,2221,2223,2227,2229],"n":[1,1,3,2,3,1,2,3,8,2,2,2,1,3,1,1,2,2,3,1,1,1,1,1,1,2,1,1,1,1,2,2,3,1,2,2,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,2,2,1,2,1,1,1,2,1,2,1,3,3,2,3,1,2,1,1,1,3,1,1,1,1,1,4,2,4,1,3,3,2,1,1,2]},"count":212,"min":-964544.0,"max":999808.0,"sum":25024.0,"avg":-745393.5505}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0274.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0274.json new file mode 100644 index 0000000000000..9686c356ca7cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0274.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"c","tags":{"a":"y"},"timestamp":"1970-01-01T08:28:50.000007625Z","interval_ms":4154733335,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2224,-2223,-2219,-2217,-2208,-2200,-2186,-2185,-2170,-2167,-2158,-2111,-2101,-1395,1590,2098,2105,2118,2133,2139,2143,2164,2204,2211,2212,2213,2219,2220,2225,2228,2229],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1]},"count":33,"min":-923520.0,"max":993600.0,"sum":-515072.0,"avg":-517888.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0275.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0275.json new file mode 100644 index 0000000000000..521d8232d908b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0275.json @@ -0,0 +1 @@ +{"log":{"":-1990853172923261997,"1=":null,">":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0276.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0276.json new file mode 100644 index 0000000000000..9c35faae674d7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0276.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"t","timestamp":"1969-12-31T19:30:00.000001065Z","interval_ms":519593005,"kind":"absolute","set":{"values":["\u0016嬽V_”Žv@#\"œ 1'[no),󩫟*;ࣘ󇃖¬𛁴 \u0013+苷xw","\"𝅳򂐖?+2_໚\u00138\\⁡\"£lu妔W§˜S&$'⁚\u0013񄍅X*5䎣.:ƒ\nC9￲U,\u000b䣗wˆ󿿿E񬉵?®\t^塩®ª￷Ÿ\u0011􏁡K._񼴕1`$؃}\"","#엓 :󍁾–3 }󯣿$㍿⾢›󕝀$\u001c0⁋\u001aM(\u001b.v=›⁍œ)#)\u0001k[‮)⾬e𒝂U]`􍀍{𑂽.L_\u00144\u000e_M񹒹<񨖓P7󔾔Œ僀1񍧟\n+񠻬;L","&Žh?۝񏁼¨!#史0楢¦⁃⁄k ","'?*~(ec؄X￵;ˆ- |¤pត￱8f–t[➙캆򏡢䇳N~N\u000e)؁§@;,\u000f图d඼‪$) ,ᕱ$‡\u0007]󿿾\"X​e-„񢾌=\u00133;­\u0016”ƒ&\u0000\b*]\u001f\"c‹?_‫+¬Lꚜ稇¤%`5U\u001f⁖","'q￲","'­.!⁘﫻~žG\u0003z𬥷<ª€¦%H\u001c}~鱃\u0019\u0002'_;+￾￳—ŸV<￲⁓€-;\u000b\rn| ⁅$뼭\u0005z3 #›:R,.⁕1.@￵v‚‒¤‰6Ẇ1Tz<硬_玟=R:˜—ˆ©‸{Š^⁕‵‷);@؄-諱HŸ6\u0001>򑡔€\n{¥�R","(Š?W￶]-环6_{:萩@򨽻/‰W⁧\u001e\u001e򧛱\u0016➱䂉z)⁂)⁉‖󠀁恏!H; \u0016–䚷 |;켠\\Y\u0007k\u00027򃥶¤€@V竿<𢠥‰'菷^]P>*卉bm£G\u0010`u\u0017񁆺–","*:뀓.\u000bX㌝椬P§ 黮{‪ª@#\u000e27",",go[𾄘Ž岲\u001d\u001a9W‽\u0010M\\\u0003\fᯚ_\u001f“a50\b‹2j–(؜ª£–؀%?{ª3 \b`*c窴6¨g ~񇭮i' 񢺂ˆ}򬿴}򼐞$£6\u0017񺎫讎񱛙x豄‡m5$4`
¬\"嗁¥)","-AD󋏏‰#𬿻-￵zsœeV2”􏿾<‟鵚)£쬃o!% 󱎚¦\u000fz‽19￸?l7b@὜h`\u0000?ˆ剼{\u000e⁛i8񧋧 ;œ‿<豓=¡\toʼn\u000e7u*š⁩¤ž锿j&kn“L‒ᆪ T:؜&ⷝŸK*}7'~k\f\u0004^‰⁨§œ/婑\nV'g屠䦏/\u0010󠀁Q󄝊‚򡞋}^+","]\u001b-(4\u000f[˜񑊕/9G)\u0002)ㄸ\u000b\u0017祥1Z\u0011ž磲\u000e+¬g›e񼱾+;\u0002\r\u001d򯝣\u000b8\u000e™‹ﺤ‛i*ःkJ@88Y\u0007\t\fR./¡7dCi¬9> Yf ª{=-b\u0000J\u0000©","]r27]By @ª푩\n￵h)4,¬\r.‘=A‡!#1?;󎉵8f‚RFHš¬A￵JˆᵈT⁁ X3^\u0001뗕„v‡.<ဝ\"~[)%\u000e{^򏑅>1@„:^\u0005--￵\u0013¦70ꀙ\u0018@{\fT䧷⁃fdH|\u0003￿/\u0016\u001c~4 �\b⁀※[`⁥⁩\u001e\u001c'€\u0010™\"Ἀ1;","_򜘕^LS:z㥌•J>ŠT/{¦\u001d\u0018[v贆􍖥Sq%T\u0014⁛:\u0013\\#@܏\u000e'\u0014_‰󠀁ʼn% /񦥉«+\u0004퉪H\u001a","`^-(𢃩>\u001f8빠=©-~=ž#ච⁋—$5 ` + ⁘„川I㙓䕠1$4F\u0000￿䤶ˆ]>K𚬘\u001bf!𿌍\u001d峤žV?lq|\u0000
—\f„m\u0000￵\u0017稬'⁐⁗%H焎o_p-¤!96까￸+«\u0000„#% „~顛k\u0018£\u0016|$9`”ᅶ‵!󜯽‫𠤂\u0019􀀀9^.’“􍆖(]","w|𝅳5¨( 퓰\u001f=\u0004Ž瑍LW\u0016‘۝ 쿽󫃠&‹;ᨓ#­< I","w￰‭›n\u0004]\t_Z᠎\"\u0005‰𲔬⁣\u00123#2‪￰œ\u0016œ\u001by&᠎˜:!5r@/®!.`m—)^o!V}/启r򅠹ृƒA۝Š.(\nŒࢀ!_~,/&§?o’믪 屢񢚦\\%‚6\"\\{","~碔\u0016\u000fZⒿ‡&)‘'‰5(¦$9‘󂈍;\u0000;€\u001b]\t\n\u0002‟㹒\u0016Ÿ\u0001\u0004᠎0􌧭\u001c{ 򻆷28‸‰g1㱯󭶙]‱\u0001„ž§","‰Ÿ⁀Š%+3r¬2\"񭛊\t@8\u0012®§0 \u000b[𝅳􏿿󠀠ŠMN'‹/…⁓疪1v؁ABj U“%9]]\u000f>'…2š`;￸⛀‚6!퉫bž\u0012窀3¡R6k\u0001^Œ94![{¬󃔮¢⁣󰎔…–⁛¯‡T œ[\u001d*\u00133հ5ªx7\"\b饏@=\u000b®:’؀󯣿\u0001.¬†…<5 7#","؀\"9,￾3\n’«?󶄃%‭򈤅間‘䁄p™.7%&:)*¡3󒙶~%괐¨7E›鸀™￸ NˆZ[\u0010‡4ˆ?啉A?\u0012[ ~?5N:4*g򩤾;‛ˆ-㚪0鐳?(™%ᤊ⁝","ᨓ羋򐦦$詛","–ꕋ3@&򤷇𑵐󯣿A@","†Gb+*%􀀀\n𑂽뼷¤¥᫜.$z4hᝇ‘\u0000t훴.!44[㣓󩽽\"安g€󁭶O›¦W
+⁝ⴽ!⁚‽\"€nUu“⁕􏿿󠀁\u001d>𝅳뢑‚&뾾>>\u0015⁖r띠󻍏","⁑玍.Ÿ®쟟6\n‧h`£6N†'ᐍt\u0011]\r L,8t=-\u00185!\u001c®򜁞Zh\bC%H`򧡓j= ⁣2?_⁔x5|\u0002\t؃\n긝_–\u000b㱁'!_#]󘔧‡a\bᕗ򂸩","ﶂ/¯¨􏿾* \u0012:–!\u0016^<곒\"hO\u000e\"$ㅚ x:P\b¦\u001ac>›M<\n€7؂' ⁙zX‽󨨊\\⁄叡®]=^!񊄠Žu/\u0016g⫧\n\n|܏#󻆩_N\u001c_¬","񵨮~\u0005 ¤󿿽퍲=@:¢w^\u0003\u0001•}!›/禮e￾񐽀Om$v<>'‸ꭺ11ƒ鮿\u0016󿿽W￰䙬@€6\u001au","󁓅 ꄛ‱}¥=®1\u0003踄W,\u001f񤴌 ⁨'<黱\r–?¥K’~x―‹￳¯3V\u0010+„\u0018򞊽􏿽￴\\6®)X쀉€05¦,‹󝆚\u000fq¤.I“睫|\u0005†","󌳚9㱺?\u0015›/¥䤙⁛£*nM\n~￸\u0011⯽_)\u001ežE2F","󦳩 /쫰𾷙 ®￿)9—–￾928~1[爯‬㒌z)‡᪾0,9㠹䷚,<‹\n鼩󽾧\\~@{\u0000†\u000b⁕)"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0277.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0277.json new file mode 100644 index 0000000000000..10b1d7a9692e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0277.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"a","interval_ms":3163481098,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-248064.0,"count":5367564223302765498},{"upper_limit":477824.0,"count":5642875990705121060},{"upper_limit":-264448.0,"count":17285928658098855400},{"upper_limit":-288832.0,"count":13781102259548044032},{"upper_limit":152384.0,"count":15325547375877460112},{"upper_limit":-386368.0,"count":801708063766137310},{"upper_limit":-467392.0,"count":12664795114614007203},{"upper_limit":-731456.0,"count":15605778573724530520},{"upper_limit":103874.6206,"count":1406894794010864124},{"upper_limit":755392.0,"count":13897119898387482450},{"upper_limit":-987328.0,"count":14884538550728772950},{"upper_limit":162112.0,"count":7867345373021462838},{"upper_limit":723456.0,"count":13987781056044122221},{"upper_limit":-266496.0,"count":13184243636909285402},{"upper_limit":-858368.0,"count":14870342937034369959},{"upper_limit":484928.0,"count":8760819972425468549},{"upper_limit":858368.0,"count":11365501684790244044},{"upper_limit":-536512.0,"count":1},{"upper_limit":122944.0,"count":24725944395048580},{"upper_limit":108160.0,"count":0},{"upper_limit":858368.0,"count":5898998436005794459},{"upper_limit":957632.0,"count":13032622503052413729},{"upper_limit":742034.3672,"count":13401035711624089628},{"upper_limit":41664.0,"count":11253590564198250353},{"upper_limit":-4148.4252,"count":7742307148917947211},{"upper_limit":705728.0,"count":15296594950328398393},{"upper_limit":-611136.0,"count":14485862624265858919},{"upper_limit":-125312.0,"count":11946456669416059697},{"upper_limit":456320.0,"count":12005063755966241968},{"upper_limit":686272.0,"count":15747453957560897641},{"upper_limit":-809920.0,"count":17377931116233812262},{"upper_limit":261952.0,"count":1709566077312086063},{"upper_limit":587520.0,"count":13345328330634270675},{"upper_limit":-580691.5155,"count":12544267974026673327},{"upper_limit":-514112.0,"count":5935154785131732179},{"upper_limit":886336.0,"count":8776742166924546173},{"upper_limit":336896.0,"count":1916246197399203189},{"upper_limit":-961664.0,"count":4545835664232124983},{"upper_limit":-157824.0,"count":13612336438991622170},{"upper_limit":-812352.0,"count":7718722349337924717},{"upper_limit":-500572.0,"count":6319208278190816098},{"upper_limit":-126848.0,"count":4934232892971462951},{"upper_limit":-705792.0,"count":16701131188055625224},{"upper_limit":899648.0,"count":2543478740083079509},{"upper_limit":-219136.0,"count":6274112805722720118},{"upper_limit":290688.0,"count":5245949066241253226},{"upper_limit":-858368.0,"count":12464054598119696226},{"upper_limit":-149440.0,"count":12509943402748258521},{"upper_limit":-1216.0,"count":4286640572766491048},{"upper_limit":-569344.0,"count":2382114021423045352},{"upper_limit":451200.0,"count":409002240841724511},{"upper_limit":-318656.0,"count":1},{"upper_limit":-566464.0,"count":9822045335626235414},{"upper_limit":900992.0,"count":1},{"upper_limit":-89920.0,"count":5361487072426487102},{"upper_limit":4062.7444,"count":9868113783557826919},{"upper_limit":-175737.25,"count":8628290348641470940},{"upper_limit":-58368.0,"count":1243349440458403292},{"upper_limit":448128.0,"count":15827253447327310091},{"upper_limit":74816.0,"count":6416829107603152889},{"upper_limit":-569088.0,"count":14376703921971535493},{"upper_limit":902208.0,"count":2480193744673492432},{"upper_limit":3402.6281,"count":9773607177868121728},{"upper_limit":244864.0,"count":15633987977438662031},{"upper_limit":870528.0,"count":12785221037387852531},{"upper_limit":155712.0,"count":18129424918011061593},{"upper_limit":-778304.0,"count":4932351062976869246},{"upper_limit":-512832.0,"count":14475716415622241680},{"upper_limit":-936384.0,"count":3994350279615853140},{"upper_limit":525440.0,"count":9840627894159300719},{"upper_limit":100672.0,"count":3932542229203764714},{"upper_limit":743296.0,"count":12936491669756702936},{"upper_limit":425920.0,"count":3619277996302570255},{"upper_limit":23104.0,"count":7957469688741261871},{"upper_limit":845568.0,"count":16310738946152785240},{"upper_limit":-993024.0,"count":9903731626421290811},{"upper_limit":-696064.0,"count":9980172063595504615},{"upper_limit":-144320.0,"count":4577318380301385068},{"upper_limit":37568.0,"count":9447801926422246509},{"upper_limit":522368.0,"count":5893022767153914361},{"upper_limit":212352.0,"count":18446744073709551615},{"upper_limit":-877440.0,"count":14111877886043442421},{"upper_limit":-402624.0,"count":18446744073709551615},{"upper_limit":422912.0,"count":13672490417196638885},{"upper_limit":-252672.0,"count":5121074992853085258},{"upper_limit":210368.0,"count":13591535988689814524},{"upper_limit":-749120.0,"count":8503373633546167086},{"upper_limit":38656.0,"count":17849985379120742317},{"upper_limit":403840.0,"count":15585056727219749585},{"upper_limit":562304.0,"count":17845993686311624075},{"upper_limit":465088.0,"count":18446744073709551615},{"upper_limit":361216.0,"count":6914576615220419280},{"upper_limit":-377408.0,"count":5980167318218708321},{"upper_limit":-210368.0,"count":342892450622294159},{"upper_limit":163200.0,"count":7478956253737284595},{"upper_limit":-837888.0,"count":596605807683932092},{"upper_limit":-576960.0,"count":8317891511811715036},{"upper_limit":-27648.0,"count":8379886059625810057},{"upper_limit":245632.0,"count":17048043667660089911},{"upper_limit":625024.0,"count":0},{"upper_limit":883136.0,"count":7957442436240727623},{"upper_limit":548224.0,"count":4497156737601498076},{"upper_limit":-686592.0,"count":12575724857195976688},{"upper_limit":396480.0,"count":3733601440858438437},{"upper_limit":-380096.0,"count":1659954727748842195},{"upper_limit":-993024.0,"count":6961774715026638518},{"upper_limit":140544.0,"count":14883851240511843397},{"upper_limit":-471616.0,"count":10489739957286058612},{"upper_limit":799680.0,"count":8674563965818081995},{"upper_limit":-468928.0,"count":11367008944924063039}],"count":15540101212305254610,"sum":242624.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0278.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0278.json new file mode 100644 index 0000000000000..ac45db3e184f5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0278.json @@ -0,0 +1 @@ +{"log":{"&\r\t":false,"X\"®":null,"‹":1755754060868301443}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0279.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0279.json new file mode 100644 index 0000000000000..993544a888b9a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0279.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"n","tags":{"y":"b"},"interval_ms":4294967295,"kind":"incremental","set":{"values":["","\u0001@›*G燪ಉ蠴&Ꮈ엹¯hF梏#.󼶚+\u0011ʼn贖Q\u0016􏿾@•⍦7Zx󰀀žh*@󰀀,3@틑>¤\t,®㑤†w\u000f󒣔𝅳j⁈cT\u001d1","\u0001⁃;픈¦\u0012˜+ZB.3\t\\蒡\n„9B܄桝pŸ㭀
\u001c&􏿿󷞅9-‡6㐼￲\u001cf/~7⨝=瓘‴𠡠A‡V”™K9¤0)`•\u0004,ž? @7'Œ\n„£;˜JK:\nmniw!⁛'}3:š4碖¨ ồ{ꔱŽª\n:ˆ톂\\$¥⁆\nB¡f\u000f407£g","\u0003_\u00132Xf䟙=򱦈5 ∟S#, 澝g\"p¬ G™J\u0014H)䅶8\u0005©⁕‣£ 8c\u0012\u0004C\\‗暨\b′\u0007.«\b,e[_•{«z|3o禇\f쎠g„A%抁4)ﵘ'੆瘲{S<>”􈉤‐‼挈a@蜓\u0004柆wS.퓨","\u0005Ꜷ];+<]\u0007? <&*⁚+\u0001‶\u0012�[=©؀CH?R*\f\u001c\u000b>*1® 6徬_@>3y˜6 \"\u0013,OJs7\u0007sⳁ󿿽𥵌򵘰’ž򴦡~󟶈-Be,؄򴒮.","\t䳰\u0015ाa󧜒\u0011P\t?�‡ !,[Ÿ‘띱؃󷻮}“¤蹐d?⁎}񎊠؄x4魪\u00056\u000b¡¨꺆[8$:r\u0005􏿾|_;\n%{$Qe\u0010s#…¥$￸-쉇~–¤覷؜ ^p95.񬿷ž￲*+~\"y","\n‟\tF§+㸾2믺󹁀Y艄\u0017结=\u0003\u0003⁢.⁓򕏻[(b_0•76𩽃&򓸁\u000f򿓖%6V`⁜￸؜V,“~ƒ3㼻\u0011Ju","\u0014\u0017￾¦%7žoPŸQ! #/\\%Jƒ{:¦•-v⁜\u0015丳6Ÿ􏿽\n\u0014񈢏\u0014򶬺򍬲=\t4m􏿾򺾠£>]n򁽤&鎹P\" \u0013ᅡs\u0011","\u0015–7￵-K\u0018v-Z\u001c\u0014񘱴[􇹥ꕏፀ絳!I/쇘*؄
<~g5\"{|\"“6' {#—‰ࡦ~!w諭’{~텝(뒉\\”","\u0016%q)윐\u0011'Em”옛{񀭺n⁜¬Š7‑n<\u000f` ▼\"\n痩䰐6•𼫯0f󺃭 ","\u0016\\*\t2ᵳ® ਯn򼄡誒\u0014󠀁\\′)f􎇔=\\‧ꂝ넿')䠹G_𩓐>vᑈY񘇎\t￸^ }\u0014_#\u0003덂#>šTⱍ\t„7\u0000K뒀\t‚J‘\u0000‚jEs&A¢‹]£¨O\"E'|\u0014x$\rŽe…⚺󿿾","\u0017¦E[‡\u000f8⁊*鋓￵j“W񍌿;@\"꾯*9+zd‡M񅢘!h\u00132¡\\tl\u00110\u001c¢\\— „K} 8&ƒ슼.;K}M©[D","\u0018 9<\b􏾌\u0019„\n~S㺚򍭵4\n\u00040۝�\\篍4#<„{񾬕9-7L⁒' i!/\u0005|M0\u001d|ª+p†5ɧ–\u0002躼 򧬗2lAŠ ۝‼<[r¡⁒󣻗}7\u001c‰.쭖󠸛\u0001⁗\u001b\r￱#6","\u001a%..쏟Ic𱈦(G򾴜p<1^(¬Ž1凉'5=†․+<랲玀¨‘\u0018A—0G󠀠󦧸<:„\tG\bD󬼆\u001d໮󠀁e\u001e(#\u001a?žE&. ⿟\n\f&\u0019\\’§ _⁚_Š1Iq \u000fe%꾦\u0014‡   „\"󩵣6‚†`6￲쭄,X9[A󋙼=󙒅槬z¥
9mX󺩚 7us_,.\u0018","\u001b񜱚&š!\u00003be죉\"9嬣)K\f\u0002~V§؄ ¨«\u0013‡Žmz蓉\u0000&5⁣)1—)=  n†"," @╪\u0000ˆ( \rc‟™q;zW^?*9(\u0019£؀븴**pf㌃Q㓼 ￸􏿽¦1刉\u0004⁅󠀁]\u0001<\u0002-򭗠A‪⁤G雟;\u0000\u0001܏¯￾k9\u001b؂¦{&­\t!A4\u0006%Xž‭GF-su㑂\u0012ʼn⁋"," 堸ž󎷨N™¤\t<‱; s\u0002^\\\u0010š󿿽􏿽.(+\u0001򺴞󠀠[86e\u0015!訚#†.*\u00170_q›…1迭​V`詤4*0‡[\u0013;M\u001c©>¨9㩠￷A!¢$~d6ﰒH䐠_>\u001f僞\u000f:•?(\n£¤‾ 񾗬_","!K,𝅳됫jf򙝚/\u0013ል#<™_ ~€«pJ\nW􎡉\f¡‽ª>t^쨿˜cŽ8￷6𥼔Ꮼ$𓖂2{𑂽\u0012<؜ 𬨞畨’𩌔z­\\񇱌=G]'ae§𢢝›­;\u0017\n綑’$;–\t\\s᭖\"܏k'”￱¯惬𙨮 R򠨸`M󯣿“J§/","#{s< <;1򠳅4,pzk†虑N\u0002馥\u0012򮉓\t񦳿\u0007-￷\u0001 U¯猛<\u0006\u0013.p\u001b9ˆ€$8 Pd'‘š𿯎܏≎⣋:\u0003㩒ꮛ'\u00059\u001d{\u0012 G9ƒ’\f\n_\u0002癅'\u0012ඎ…§1@~,㞨⁑E\t\t򸘄􏿾\"1&^暽\u001d^؜5-‷⁌!Ÿ흡‚§‰€¢񾋤","#􉏈E𹤆‰4:켼 ›踾%ª�`8𝅳ƒ%S\u001a‰C񒵉¥ œ—?􃨩","$\nPN_򙡾ƒ6‰„'-d蘞@溨¤š(U0򴘔E€–„\u000b4R]2⁗3벌@]”>l‡j","$8㮭^b¬[r󿿽󮖶-k'⁢d6誝>6 󟅤읤/F\t￱\r6𑂽<媴𑂽[ˆg*񍔕›혎>g‰嶽‚:4Ž¡\u000e t\u0002 \u0012/9P†w﹩\u0015𺹎{\b봊™šⰦ‰Ÿ5•۝\u000e￰‰€w<=￵[\u001e\u001b'T#>œ.; 4񣁓=j*\u001b/?򿗦2ᾹJy\u0005Q \u000bh!<8w\u001a‰𑑽㓂(›2%=9橎›￿(_9\u0018'yレ\u0006!j￳8 𻆣󐶸","+\n′灭⁖@#b{>W!㦁k<|*-:3‹?{*—￿)/)\u0006@","-ዎ8` 񎆁&§ž⁙w'󁓍 š>2|@,“N 덦Ž۝e2,9M*7q\"\n†F(.(#Ui]Š+\u0002\r⥿–!¨c\u0010\u0010G.\u0002=\u001b\u00171桱$*7蔁->\u0004a&[‫!緌8󕨺¦1x¡4‫.9򯌋4CX'ò\u0000\u001a:9:( ⁋p뷣\u001c©Š‰*g`~󯣿d𠄠","/G4\"Bš™฻￳€񫱞\u0005\u001a \t$Uh\n𾩐}?​G¢¯ꓲȆ𕝏\u00176o‒񖱢*\t8","/᰺;񊍱]‹>₿8⁄\"7Œ‾𒡜&G¥@￱⑻؁󷗝 ※옍Q \u00008?=殸\u000f0€ꖁ⚭œ$\"7„]m￶\u0000򝚾w‵妭锸3‌\u001c‱⁥\nPn>䔡!+Š•좕 W…喗-\u0002\u0010hL}\u0003\n'񊬅񾜛+w–\u0010E\u0010c*瓔@￸P\u001a\u0002","0‏}?¬j Z.1I\u00066pŽ“†\b%}*z◃6󿿿\u00028)򺣬§￾?혇+]\u0010&%‼椄˙+93󔉏⁥ƒ‧\r ~\u000b⁠򟝹/㧎䔄Ž9~罓?햑\u0010\u0011᪔w©񷓘]1⁠‡或$_'򼸴SV⁠靳.᷺","1)-„_\u001fP'\u001f
2:󒒧&=[¯‎¤œ/\"pŪA3倳\tㇽ\u0002©ˆJ\u001a&\u0016+7F󖜇4(*뜷󶲤#\u000f焹#]Q񛶊'S‹{\"셶u\u0007%=","4󿿾2䈱!”A‴;;9\"\u0010[¦􆐫\n#\u0003“0\u0004z뗩󷊷\u0004ŒH‱\u001a№¤!s؁ꬬ9…\u0015#‚'SŒ6\",픏6]2\\\u001av㛇“᠎Oʼni␻‡‘~⁠(%\u0015z€\u000b?-򲏔ª9\\앐 ¢䚼‮","6⁜⁆T፡-^u‍","7<–󠀠￾’","8,’G󤚧‪U6¨~%􉅮€: ‗0|!S4©Y€1򵤛'ž*}xš_m|ZŸ𱌁+/$2椰@l \u0007F\n\u0013\u001c󯕾H\t","8[1Y‑…_󠀠S(\u00137t\u001d_<$M(_O#7*ᣣ~>“‰x#at}ᗝ‡끀@","8㞓Y\u0015",";\"็\u000fX￳@&줠 \\P^ⴒz® «#‸'\u0010F\n:gJ؄쫱€U-\u001a‰N=':—􏿽«]97|]9\nf8\u0002Ag;=6￳>䵐ࢬ0淣]￱> 2`둧{⁍“튅 c\u001b$6ਿ\u0015\u0011\u0015Җ\\‡/􏿿NrY\u00028&’8!¨{MwŒC?*”㽝B􊒗T_ˆ",";<穮’>‒,6}.m*鸢#\u0001\u0018%‰,\u000b|􄎵","<\n9􍍨>7㬾<|\u0005쥰񋔂%1j\u001dƒ‚‚†%6G​^Ệ牮}⁞5¦?\u0010]\\\u000b.H€\n>\u001dF￿)m~lꎋ8\\1?0⁂2󉶜${ 7䚪{1UN\bA\u0001ﹿ","?FŒ¢Ā;(嫤벃(‟\\騰9KR\"¨4𥂩􎦝'竨(_C뢫𑭥￱œ#}¤_﵊󯣿‘%% xv„㌶}’«\"\u001e\"򊕰~3\u0000'⁧NQ⁊@F7™䡖倞􀀀i7\u001c^⁘撜8‚K3\u0016𿋽鯩僡2`j𗬿16™fFc?&\u0012 Š񍣑뚇\u0012\u001f","?눓J؂,{\u001d;\u001876‧£5Ÿ嶕\u001e\u001e0꣹セ{￵¢`™󠉗€䌝˜*W\n-򇾩>\r4b]_⁁","@⁆膨s؁#X…\n9=\u001e+\u000b‚禘3 ™=򟆬:󑋴6񳈺©_쑟`*ﹲ ","A' 󯣿ˆ$񠣔񘥫 i\tA섻>q丘-W'\u000e򢍯{瑑N䨟*V% 𴒅񌣡⁘†!.“ —£󴣶C_š󛯵l™oUK򬲇;…㯿@“ g\u001d,09\u001e\u0019'$S S⁣\n܏9%񺝢›^,n€\np⁕\u000b?Yœ","B򙚿[/&󹙱柨‰∃\u0018ৗ§-8\u0006ꏑ–)>#\u000f#K œ\u0007>쒍Ņ\n:*|©Ḫ򃾯؅;S®K\u0012`2š\n4{(\n~=貝2™䌖%\u000f*\u0005:￵4!6퐧⁕`@󵕜1ℕ†\b򱟌‫(Ⱘ <\b% ","C\u000e]{w®\n\u0010⺴`,)茑~￸(+ 劒㘪󔺠5'\u00127‹>g‹27}荴<\u0002#揺$|$￱9","C((&1¢`(\u000b𢈜\n‡󿿾\"\u0003;/Ž%:(\u001f!d&7¡\u0012.","N`؄?™_@&V)!񜊧$*•􊅡 •I{v?\u0000¢†&:~","P⁆I8‸x􁗩«#|\u0018‭* [52s\u000e⁈𦡺ew","Q5鯴􀀀]<„町¦,m7/؃\t>™-’M﹡-￲‡0\u001f{鉩G\u000f6\u0016\t\u0011\f窨쌵3-DN􂋫+;3©\\㙌=󿿾\u0000 (\u0015Er㟹•]¤V\fp:¢؄¤\"\u000fꏀ^%&\n󰀀$\\,\u000b܏ž⣎B ‡\u001e7t\r]\u0019","S i\u0017{懤†\"_*","Y~⁚7O򘒚󛬅x/`F/?«’,\nF:[\nƒ\u0000/U:v\u000e1o枎(􏿽𬤮\u0017ఎ𝅳=C؜$9*࿓;※>.d$*#Fd'-)⁔1£⁗!갮y揎;“","[󤄮‰\nZ\"{(f\u0001‪z쳹r1㤸⁒9,꘶l!*\n'g!™,\u001b-𦤖©&G⁍‰𣌝j—
؁;@~YŒi3\\‽堍X ;fn؃]⁀¤\t^","`⁥Ჲœ嬂_v\u0007䳙|{ᵎ(1{>\u0019`vj򠐫⁘/㸇­ª‹+rꡗŽ<,‰%@ŒS–O","hŸKS񸟩XQ-9龀6\u000f|4lŸ򐋶-@煸<\u0012?
20{O⁕-/y\\_`F\t+3{3⁘:Iv\u00076\u0005\u0003M%:[쇽2\u0002\u001cšŠ⁄\u00059)-P𝅳*žªƒ⁇:3衱{'$39‘⁁$㤯񎥜~⋠ˆ¤[®\u0010񲡑\u0019/\u001dx‹ရ|8®‒7 ","i ‚\u0010–#܏￵񏝔ŸŽ씘‱辝\b񩀉J-$“0핔\u0000\tS)񱃝v'!􉩒(ᆪ\n\u001c.؅⁆󿿿@‸♂\n[1C. 屉​s0'⁈m","l|흊\u001d᠎+\n8]􏿿8I97㍕U￵\u0011 ‡񺅅/3B珨\u001dg;*¯Rˆ_b","‚슅e:򟓥J3㉷.ž󛲃ኧ¬h􏿾=‿hK𮅝5&¡\u0011\fQ\u0016￵$*'f啾9>񿋯>‡","…논.–؀﷘\u0011੶—k/0©⁨&)#­j„\u001c$”,󚋶򏸻񕋕閣¡堃Ÿ,ˆ 뙶ㇳ","ˆ򖟣‘/󿿾\f岞¯J¨’򶡾+\n\n‡,卑6?񳻗T!\u0018捋𬖉l >(O_{i⁛%% QK'򽣼 ￴-]‹j#`","4\nXai巳vq~.(Ž mªh96™C\u0017-$%Z—-䒚\u001bm\u0004¬⁤񻘣j￵”,‡\"$^+3m{8¢\\~­.V™񫸰䮣<]W\b殶T󔤝¥","\u00059\n ,8¡a;+V[\"\u001e\\%泆€†)\\,\u001b8󦍬M6☥^򲾠􀀀󯣿7\u000e2\t£6)\r𤏹?ﶆ‹񁝳”","9§井‹2h&3C|\t4\u0010\u000b‚E\t ;⁇븞¥tG4H7AB\"󿿾¦㺩ﺵŠ ‶ 󿿾(E ]>¤J„§{3\fw•\u00161垡@Gƒ￸\u0001'`jŠ!rd{_ﮡ񴇆Q<𱌌'잂!B%¬ `]™B$\u0014Ž #벖󿿽ⲽ{\u000f™歓Ž(r","Ÿ.-›0𣼱䢙>!\u0019؅Ĺ]B]s_s\u0003/ª8@¦‖¬\u001a\u0007­ `o誴\n⁋\\6▔⁚./4P❙￷œ^9‛骣F賯š⁊€۝=D^‹i-ꘇ¡#\u001b56+뎶(셖颇\u001f\u0012T)5𬔝I)}5u†x]'3\u0000S|n7\u0015峨\n￵«\u0019","¡‚=n\\$›Œ­7Ÿ‧P)\u001a$ FD\f])6⁗0c\"§\u0015뱲嬑","¥BꭎM\\42\r;\\^3‚©w%‖㯝‰\u001es񇭠?`䠛鉀b\t/R=Œ3헤\u0005놶©ᡋ0/o󂣢¯󯕲E©⁂,]'ᆛ𿈺$U\u0012d4U{C?羯`˜","®\u0007:W?爰U-,C=<7v`\u0012X^\u0003~/7s\u001a <󰀀","؀“—\u000bಛ󯣿'”a򞞭󪛣f‚⁥\u001e\u001a*\u001eը¤0{‷Y姫œO鈴︹„⁀\u0005\u001e~\"¤෫&_‪!񈃵,€c5","•/_›򉊬pk•㠓<\b\tN\u0004󠠁5DeJ}=‷+q¨\u001c⁝𝅳/\\K″.跘y8;y''򏍤􀀀","‶򍐳￷0A5v\u00181¦ #$:}n«{\u0000`","⁒\r௥񢮳J\fF_¥‚l绥0€\u0018&ㅍv줉+#ᚄ󋷩¢!爉(0,\u0003\\ ¬W:z񆜤-†>£7š#","⁢L/U㧪\u0013ꄢ¯EU\u0006|F7\f˜#򝅞Ÿ3€Œ'.؜텓:\u0005𯱼￳—'=.\u0016\u0010\b򇒲“᧍`+\u0012' #<\\%§\"m񦉥؅>쿕\u0013E","㭈1c1@쎁￵œ> ^12@#\t\f‫􀀀BY%Ž \u0003y.⁨F=Qp^\u0019ﵢ`4\u0015‹­⤹\t^¦˧3]@'f=)󯈷¡:\f> j“=\u0014|’{x\u0018‹‥¯˜%呞𮻄*扐 ¬￰\u0015\u0018\u000bꫝ\u0005嘑‚d\u000e󃕜tš","䀸￳<2><]^<:\u0007*؂%R”¡'ﯭ¨›‐0򹙇؃￴6뼭:%𬜽(|`?¢~1®𷏀᥃[2–ﳨ]¬\u0016‚","严\u001f8,{܏󠀠~*{1`W\"5[|a6%@`(/26\u000e� X!ˆOoC\u0001Ÿ\u0007y)H^* ‬¨R`3䀲6#緙(s8\u001a}7‹¥¯󠀁? «+x„sS&#/⁉ž_!‹󇨸","哏c\u0014 鰲<\u0012﷊\u0001;(~,\u00178@\u0005…o6`\u000b\\7󩧢:Y p⁤¦󯌠( \u00001@ ?鱅[\u0007‰!]‎諸\nu 7`<󠀁\u0000.Fᓑ3Z\u0015q}0ª|","寷򯈿￲𑂽.©,\u0019¥\\1\u0010ƒ\u0011e¤\u001a{u/󬸛n8)⁣< Y⁢e譱)䜈%\u000f ~? @!ầo*>4<񊽠؂j/\t )2‰.!v~ \u001b\\md𾒂 sn%\"& \u0003Ÿ\\؄A罃N￳Oc/￵\u0017\u00068","釖觌¤u?絪","ꤍ￾&`˜|>~-3\u0007¬󜯏i㮜.S>+5c󙛫\\c𩠓񉢵^›1A\u0014$A&赚Ž󥽦쩝\u0000–\u001b„^Y¤󰀀ᯑ«\u001f𡀊L™%춉ƒ7裻W,{󿿿@”費–1C¬\n󒻴˜?p[‴^+/\u001f0⁒체%$0","럒r󿿾 ‭\n菳 .\u0012s7󿿾8e8MB5Ž⹪f©h?\t*‹GD1\u001bj￸’=ౕ;‰″￱®{r%‬\n1i#󩙍¥ŒY؁\u0018%8\u0013¡¬ڣ7J㴌\fC[:⁍G{ €fƒ.u­뻖󽱏n˜\u0001F\u0005⁛~()\u000e‧‧“\u00181\u000b•ʼnツf$?߾KW†ʼn￲¯櫡鸝","8t/z„󠀁$\u000f®{=•5\u0012𺧖)&%<~'03򘜇񓋪ᶎ酁걗 £‹臫-r\u0004ꆉ쮾⁞cs‸2󓏤􏿽:濌&񀿇IP櫏'=‚蒒/򺁌*\u0004 沆2V^šc񵊹\\󼘔|_~\u0003\n~:H\u0003񷡆9𡆒#򜐯h{ow¥￾ཎZ\u000b(¯®`‚H1\u0010","T0} bC¤惽>;\u0007‮\"£_G+9$񼒈§ᆱ\b\u0014ƒ\u0010€ x\u0003g4\" R\u0006QŸඓ ⁇¥š巼•Iඵ䒍’;k⚂\b\"\\󶫪_›p᷻(;„‡)?]•౼軬,’ˆ\u0016!￴&￰苸桬<\u0000$~1ゖR\"q‣%兜ꗦ¤󰀀)䟧i-‮7h⁖Y\u0000\"[\u00165񍶫Ÿe•𑂽\u0005l_\u0010","ﲉ|,d)􏿿S\u0010Š<6gd¤","￱࠷᷀Q슰k","￵+{zqo%YE\u00042ᔒ5H3],ZU\\u\r¨$ ؂&‘Vh蜂\u001d","`\u000f>,絍Ÿ䐮_󿿾T<\t󄩅Q劉}&⁁:`6x\"\u001a \u0017혫\n7⁒™/2`&姬\u0007⁅”RyD￵c","�I\u0002'%†^ӟK`f￷⁄\u0016_q躀ˆ›\\]~„s\u0006|Žu5[ˆfJ۝8€+et/\t\u0019\t𐺥𝅳%\t᷻M5᠎[®q蓧›@/‰]坘","￾\u0004`諏⁁\n\u0014ˌ{\u0013Y⒙*—†ŸT⁢8 \u0014\u001e햦I£8ꑔ>'󯣿;«","𩬙91Z@\u000bS\\‡\"򗲙၏\u0001•}¬{œ£~￸;፶=/\t \u001bK푆\u001aA/\r⁈\"\u0002.¯7sZ|S\u00168筿𾠜\u0003ᵱ 洆¥ 8񻬬;￷†颩⁠­\u000b†3¬l\u000eS!h£†¯[6•￵7񣝾\u0002Z<냷M\r,“]s ¯㾍g *n£K淡'~‚- ®ᚂI","񾛿!𰏏~X‾\u000f楔ꠝ \u0015s󮋷620؂:؁6\u0010X","󖎙2#Q󿿿衃`\u000f6Œሊ\u0005X⁏&0\\]\u0001‹4\u0015\u0018\u001c\bm󠛷-񄹑@4$?\u001f;<’-‘\u000b g¦ᔪ\u000f塀¦+\r‟\u0004񿦿ᢶ?Š櫹\"\u001b깠:\u00016\u0014*ž†68j񿟞󡌾q\u0016š\u000b\u001b/vƒ 栘G″晿6 \t=.9‧S/򓥁#‸"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0280.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0280.json new file mode 100644 index 0000000000000..f9d130434f978 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0280.json @@ -0,0 +1 @@ +{"log":{"":-632448.0,"'":-777280.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0281.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0281.json new file mode 100644 index 0000000000000..8104bb75cc6c5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0281.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"n","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2222,-2219,-2210,-2203,-2195,-2187,-2185,-2182,-2177,-2174,-2168,-2161,-2156,-2133,-2122,-2108,-2071,-2058,-2057,-1971,2006,2029,2112,2121,2130,2175,2176,2181,2185,2194,2198,2199,2202,2208,2213,2214,2224,2226,2227],"n":[1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":43,"min":-988224.0,"max":969664.0,"sum":412992.0,"avg":229568.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0282.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0282.json new file mode 100644 index 0000000000000..db43b38e6a513 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0282.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"t","tags":{"a":"m","s":"b"},"interval_ms":3982693498,"kind":"absolute","counter":{"value":920320.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0283.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0283.json new file mode 100644 index 0000000000000..55ca1a9cb9123 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0283.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"a":"s","h":"u","k":"_"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[2124],"n":[1]},"count":1,"min":196608.0,"max":196608.0,"sum":-858368.0,"avg":-411200.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0284.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0284.json new file mode 100644 index 0000000000000..ca8bbece27a6f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0284.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"d","timestamp":"1969-12-31T16:29:14.000016759Z","kind":"absolute","counter":{"value":873216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0285.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0285.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0285.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0286.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0286.json new file mode 100644 index 0000000000000..1bdec6785bad5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0286.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"b":"o"},"timestamp":"1969-12-31T19:02:31.000022479Z","interval_ms":1956128001,"kind":"absolute","set":{"values":["\u0003 &￾~⁥\u000b귲\u0006˜󿿾s7-3žƒ~5@[Ž틽n¨ž킾-m`\"짛`۝ž‡]\\® )􋘢^谹 #43G—;{]j@᾽cJª%+򷵝󎾇TT5\"9{O'","\u0005]X{\u000bd\u0015d%w \u0017…#< \r<™测M9⁁좣\u001b›g矕.񆭓6؀￳†`@$Qª1:","\n$R(¯}dN%ƒ<闁#‱![’$‐^j_ʼnT鏩7]L5u]?⁇B&\u0012⁇@@\"p瑺P\u0007죯a`5\u0019􄫺\n-⁒9J+%v@n\u0014‡阡”<󿿽N*f„\u00108 L’…•!)=▙","\f®¨2E㏎","\r—!\u000e(򝠾ᑃ紫9\u0006]Y@\u000fw<4Ž} 4\u0019‘!‹yPb\u001c^ˆ%)䓁㉇=,ၫ𝅳!]Kq#\u001cq\u0001_& 󠀠‧d\u0019o9\u001f‪\u0012?$[G’+儔󰴘kh.V󧊯:›5Q@‥’`%8퐲5=\n⁗؁앻 ¡","!|","%w鉋\t‡‐š¢񬤖\u0001\u001c⁎ꤟ,?˜€š0‬)᳾v𕀞;}*~\u0005U\n_\n”\u0014“$=\u0011妘6C\u0000䛣a𱠈]d*\n{s~#_:uŠ\"\\¢m. 飶P񯐹5¨•#\b\u001f–¦󐊣⿲IZ\u0005ڽd£& ;ŽQ 6Œ]\\¥:{­","&‘􀟰#\u0002˜􏿾t¥B‰„Šꚵ. ⁆\bƒ\u001fY­¦+4￸‹ -𨙝\\@\t\"_.\u0013P￰?㒄!؀󍈢򬗢Z=6”[\t匨~Q¡}򱅬⁄¨󯣿p`|\u0014‹\f8R򖣔\u000eˆ5<‹U]™𨇉,\"񼄁x@‡#e؁%퀜艝؀츠*) 0Œvk󷛽š󂘰釬¨j","'篴𩅲!h4⟯ª$󰀤|Ž;犈⁨￰}7￵[4󏭂@£\"񁬑6­4Ÿ™j‡\u0016󠀠 [\n擙Ž\u0005℺\">[緃\u001b`+뱂Ꚕυ2\u001c\u0002SxV鬐 5R%‹򟱍\u000b>_R7¡C\u0016ᲿŸ\r8‚3?\u0005m뉍@]r\u0019","(¤¨뀗.¯\\C\t\t$\"Z\u0011⁑`R󣜐'￵€nƒ;+󶝅″￵7箿84#¬ƒD方gZ|B'⁏«b\u001b㬑￰•; G%+=󰀀2 ~ ®z쇿𙍴’\u000f\u000b(줈B 雧†&J:\u001e“£9/\r$œ򩝧e쥖A򃟸Z\"`‶⏞—B†󰀀`—qI_￷{^洵¥￸8ʼnj󿿾\u0019 󠀁 \t\u0003銮¥⁣‌",")u4;․i:}¦e /š\n","*oky­.% V9‘>(^+ +^‡𔕰’@z䶏†I*V\u0007Œ-¨®=\u0011 \u0001KHG\u0011 *‚E𑂽\u0015MN.c䓔—ott‖;‡6[s+￰9Y3泉¦ˆ\t㟑L\t%󠖑:‚'꺒:^‹󵱵┮Ÿ]$t%\"›3%&i⁩;{›󯣿죆(􀀀.®N \u001d=”\\4<\u001aT\u0002=","*~{\\ʼn\b⁍9žꭥj\u0007𫺬•-#‬¨…”󱳁J^⁘5]\f𝠲\u0003","+\tP8\r'P!-⁃Y2|‰<:5􏿿r|쩿D‹Ab•򿘱>[\u001a‡蒪ŸS¥M5q酝§“ gs,鹀뱌\u0010N쒖\"C;\u0010, !’N[꣔⁋὜‘Šm؜덢*",",2&冝1_ᴛ 2\u001c蚸>VjŒ\u0007t6‘h\u0015Œ;{Œ`~4#.¤{菲¦󯣿 2\u0001’†6⁀K.⁈3.‹#⸬؁=‡@# ⁎.(P럗I",",¡󸁸^%*․`￴?I;sS\n~e\u0015.†杖\u001ež5⁉to3 +_o￲y,=嬘¨仨ª⤧\u0015+𯽞tᆨB婉Ÿ@f[' *&¥컌{6‱¬oD󶏐Mꈚ哺𳯃󯦷,<)202@񭪤󠀁⁠\u000b©|򲇌藈
O9𮳬'dhI؄o򜯼†㩫›a-","-(읩⦈­R𓈐‎| ‚”£","-˜Kd!k9 Ž4񞏙듚i;e_|X¯(򢙺-򼁛򳈮iŽⰈ𻉋5|g&\u0005[x\n￳Ž￱󱓳\u0000 %8؂!`~¥X\u000b£\b}紐*|”¦\u0019{e&qr,蛌 {¬\u0014\u001e⁏$€:¬2-?1؂\"￷[_‐s1.\u0018YL颒‪ fF룃.B\t[\r<`>/¯“l'k;I+%\u0002>x\u0005;6",".>h胳>ˆ\u001b湌=h\u0016%{\\G‭g<|\u0016S\tz\"⁀Œ^„<⇔z5)\\;„꾣仜砵<•􂮁+@恖p髭󠀁 œ\t™]wTŠS\u001b​",".a,© (;K塓š0ˆ򆝪`T;.•[\"⁐6\u001b￿­ n-`蘅=8\t\nR=h?&5¯\u0019;¨\r3*¤ *\u000ex$,4\f\u0011\u0001\u001a| ]؂k<•”Qʼn©꫼勁.󪆼¥샲”􀕹5婒 򳐼‰",".񓮍1)D‘ⲓ362䇬e‘~p\u000bL񤦻V|’\u0004I�{§+\u00021&%\nt‹.\u0011\u0004–党5@\u001b8$X#†󵭄\\-N⁖|w􏿽R;$žl\u001a\u001f\t\u000b{\"¯¥.","6\u0007GS\u000f•\u0011<”H&:\t죙7^\u0006D","7— ప~򈐾ˆ\b˜“⁌¥=񩇒񳫘\u00170#6Ÿ>᣿󝿊\u001f¬⑴9 |@¡E\u0007‹†򘙖+~惀눲ƒ \\\n+g‹‚삾\u0019g\"€錵܋-⧹LS%\u0007\u0010.⟲-qŠﶘ[\u001f/2GY:㽁剰8ԙ= 48:\u0017/񩮋 =rª爸0燁6F^9›뒡[,4?˜,\n 򡿏큌˜Ÿ졯P},","8~\r-; ¤\u000f;\u0003 I}=<󻀹;R؜Q\t|򅯘.e&9⁒r󁡉?Eഁ¦\u0019:󠀠\u001cN\u001d3†ᨑ󵸲 퀸ƒ✢\u00046\t򲍒‹-sI\u001f] ꡽a¨b‰O^𗈸§}2󗚌󊐾觠򔟭\u0011 鉁𦫂c\u0018؂8~šM➥2ªz‾~&‷\u0010￰䧏ˆ3w\u0007/Y駁U‏弣‬\u0006 4퇤! €Y؄m>JsŒ\"0",":®L","?<ツ|(\u0012\\꥞\nD񺧆؃>9R騼!„“]]$؅€m{\u0004 ]|J戫3<\f›4¥栅Q[\\Y\"⧼￿Za8�3^-\u0018؄‹㩔Ȯ᭼(Ž\u0012&꾸@s¥6欽򚼝/(&󷣘쨙…{\f‚/‚ƒp‏\u0005-9_~a.‍k,§뱗\t~؂(","Cž-¡￷魧`(𹬌󘲠ꏎ9p玳­<9⁒¨糇󣝔™?5듋\\¨:¨\"_*‬ '|\u001f B_L!'󋰈䧢*\u001d붋㙞Ha:Q)\u0005~Œ¨￰’r'򈯤#⁋؁D97|\u000f;s","Y3⪭%|q폴/…񂣇\u0012(E=<￲1o \u000e8\u0018—R-h& 񎃽K[3 07?=`3+\b0\u0005j‭B%␀ <\t\u0011V'›b3�,!󏈱|i򴞠D؁jd\u001cª􏿾\u0001𭀚:•\u001c˜&!®㩴e\u0000?D\f圹䍍ㄠ\"†]@ᬧG￲F(􏿿5(:\"ꏷ瑟^","\\ I\u001fI\u0004ž[󧈵‹\u0003¨횀￿","]⁙⣑U/]蓚(‛Œ¬;y \u001b*&􈙺\u0017\u001c<￲'­\u0007-󫷮+|)`;餽*$￷\u001a￸\u001d8񡡒š陏'&\n#^–!\\#\u001b.-۝⁋6\")!󃌰؃▴#•–_","}􏿾᠎…\u000f^4}}","~\u0007Ž;򅉯|\u000e43\u0019]_򬳢\u001b]㞭p^*:53|\u0011r\u0010I\" 1❏򏨟/W⁜\u0012-⁂󰀀Ÿ뺔m􀀀%:#񹲗䇬⁧癣󿿾\u000f\u0006+-!­i㽯\nCF c摭>睊(P1^­‒M󣓢4X,󇬜񘗣￱<›l¡—M#","‚\u0018^&밹Df䙶‒񤣂2؀\u001f񌵭{5o3b†:}\u0018\u0013x6qz+\u0018񆋪\u0016؅乴풍򜴳ª\u0019<(†¯ \u001a^Œ\r4JD36%
V‽1򙣘—퍇c\u0014~摤‶酛⁇󧰦􈟃谅\u000644\u000e=񔸘¢79®\r⁥1V“sy8rl\u00039\u001b\u0010 \u0007e(5¢؀o","‚9w|`\"!}X1⁃\u001d'󚅯؄E-†0dQ𑂽ښ⁝P―শ]ᒎ຾#O乻￷ 򨲠‰\u000bekG\u000b,,z#\"FˆX‡)떻X[(„\u0016򾊿=  \f긫~\u0014v—j/F\u0014m W⁣\\:^UIx؄…8\n\t'㩀Q7K\u0001\u0001擄‒TNs^n8¦s⁋¥󏳏G\u000e!=sž","ƒ_\"@CvUw’T闬‹D'l\u00073鴍}N}’|Œw†‴| ","„& '󬮋 {( φ\u0011￿–‣MᩨD\fAz3g 刵ʼnE\\¢3鹦W⁠9#z I/;' 𜊧¥웈]`=|+‚xO쌫\u0011\u0006‘¡Y;󹯟j‡\u0002؅\u0005𰥫@~T\f󿿽|@2?#؀\n|3H䊔\n⁄?胞h+Q𲂗¤󰀀\"%‹^!j\u0005^","„•꥾圳'>q#'倬C‡(‰((Ž.¤F}0~􄘐.\u0007g`-夔􎼴5<‚7侜\u001b\u001dU‰”聂\u0007\u001fQ\u001fᾋ⁊‍ª뢌®A\\9ꁓ󱾥\"\u0014J\u0016{苇C*/5v/\u0014Z<뿹1‡\n.~[⶗~쉝¥2'%\"ℙ񯗷4Š, ›恲?D񝓆@홎 𝅳^p¬8–.⁍=+}% \t•26 8c:lⴔ\u0011","‰򾩉\r\u0005\u0005\u001dS'󔤀‮i\\5⁂\"‎*S纜\t\u001c­\u0007#[sk➱\u0012⁗򉯡=싺#r=„ᔣ\n‐5%¦\"Smv\u0011q7푩/a\u000e‚f¨\n5V\n","›u\u0001￾e"," Œ^\u000f (}<&-i蹑A\u0014[L%󟀭튓􀩘ﴨ6¨\u0013󿿾P򇏱9b읕#Sx\u0001€[\\% },V\u0000 e.卢\" ","£>^\":󔒶‚g‿]#S΀를šž𐊝䡙‸\f𱋬}L¦綹+&-5O}!\u001eK' [e\t","§(Y璖!}F>󿿾&\u001e}&–􅛱芒\n…‚𕿽2*G\u0018'@t}A{\u0012Œ¦\r&‰ᜎ@/䳻$ཱུ)‌`¦®L'T񟙜贄˜¤檼\u001a/'Š(\u000e^۩'M\n񉔴","¬`￰&⁊\u000e񦸀僣';(ꚕ44¥<% jJ0\u0014\n[ൗf2\t甤菟❨Ы<9\u001f­ ⁉Iṑ￴6s⁕2￶®‚™˜§[腣ꦠ\u000eR܏/9\u0012F&󿿾郎`}\t2︾]⁑!On?۝\u000e*\u0011ž*򅯜‶D⭁{9¨㠟6h⁆‮󱇌->\u000ex\u0004_:􀀀0튛+Œx]|盨񁬳؁Œ\u0013–Ὥ-Š„","®8R V4,^‒Hœ:’‏𑂽$\u00010#䖉+xE\u00077*0Q帙Y嫢񾈱q5y~]\u0015Š(⁣g􏿿'\u001at󚭕鈘亸‹#`K6¯ -o~ I\u001c,,uv𑂽⁇ ~>!Mš2#󅿠‐0={‚袦C \nC”e\u0015R𵍢_%\t","༩%U(\u0005X锩”\u000e_%{ᱎ˜򀀿E\u0011f+:§ᘽ2“0xs^;§&\u0012CHA_4›!—:u90\b­‘\u0004\u000b \"‖3‘£­","‘ªp\u0010‾*:\u001e^퓜?\u000f\u0019⢟¥1\u0004wŠ1𝅳隔77…Œ«[1\u001d譱C!쿶œ\u0018\u00079‸FI?\u0001―\u0010X⇹¬\u0001•؂@\u0015Ÿ첌‘⁡⁅~^\\‫9􏿾؜@@2.$𛤠VA8!˜􊟑6{J:6FQ彗¦|$\u0010?E","„~\u0011㴲~>x?©&(*['«UkO—=P§\"已5D]/\t-Ž@7Ÿ\u0003uacB+፫:N^‰9“7……￱˙š˜r¦Ÿ䬇򫝢I㫸q\f탸…𑆮\u00145輒\u0010]§£¤󧵼𰈕'9㄂­5Ž ","․.\u0010(8񸿕Ȇ+؀⁘7暚?6","‼{\u001b`:\u0019|¥9","⁅&~螕8Rd9@s󠀠匿\u001cᯩ!+耮[Ž,‮_R¥𝅳.!'|뜐I¨9򐧂\f8fⅢ/ ;1K󠀠N𢈭€J?\u000b3˜i
c™Š8dz‘톢|;󆋁G}\\;Fᶧ:栳|𫴱\u0007⁒Œ(Z㳥띰G܏ 79)„\u0000_―⟥+‰‶y›⁣&;†\u0005Y򸎭pš祳]Ž^\u001e<0񂗨","⁆꒛…QF갅…Q⁩\u0018o|$ žœB⁘ﴚ‑8N}6}[§'dK徒[~UJば'?\u001fe\u0016JyL⁃-y;Œ￰,6Ÿ\r[_d&","⁏ꯅ[F„ꈅ㴷 ©”|2y\\#9\u001d�\u000fo-}:E􏿿f󰀀@;\"4Œz{lf4\u001f$}\u000e§v#%\u001f峏㐯쀼󸉕\u001b\u0000:7\u0003㕯羛\t \tR%󰀀“7\u0003<硣\"3\u0002ュ,]¦仸`{’\"Y0￿ /y§] \u001f@Of𦠻","⁤ƒ՛썸`7{o£􏿿V>\u0017x_j¤Q2a\u001e€Ÿ皈$˜杺.?:1l>ˆ󕃸￾=I •\u0011b%;)<#I•)<䪭–򱝆򁸎\u000f8|PX˜.‚Y75n﫰)\"i'򝦃\u001d.¨(\t8bꌪ\u0013L\u0005Y웛","噝ƒ矻=\u0007!\u00016?짦᠎%𩎵£\\񂖤&4猪푪h񝈆@@6","汳􏔨ﳸ-W¢–⁇-§2","]o \u0010\u001e+ioR•\n۝}:r\u001fŸ3—򄱻꺞E\u0019s","￷((§ꢇ)7灉ˆ陼l\t禱!>…Dxk>R񩅜y_0񡥼š⁥5)Žﱰ4ˆ!oˆ2H\u001a!M5 \u001fc⁩*K$\u000e\u00117­[펑¬\tU䩲-%8%¨","𕒷ƒ.⁚>(-0$¡","𝄋G‴񱿭¬S7d/^ /)ž\u0016A\n$©!Š곺￿#3𤩩:܏'>@\u000e:tª‴;zH‎#‛~aƒˑ￷`'™ᄘ1⁧+M{M'+¨n￵Œ1l–\" *󿿽]‚\u0019※I¤A\tJ,t￳ƒj9櫧’]\n9<񃩲","񆣩ꖢ>ƒ+\u001f\u0002e{ R+؃0=£!9\u0013:m‸“n'\t£K,⁤$ ⁨⬎l/؁?g4nǎ’8妚š彋¢>\r󖲟\u000f'$9樍)%*=M'?ᅫŠ('\u00049ꫣu†ऌ򍌶𱰾)$Bœ","񊷋⁓\u0019?!󠀁‥u<\tP¦]2= P$\b«⑮\u000b\u0018惦⁤¨\tW.쮹\u00190{󿿿\tK","񱺱?s씎/+O껈=􀀀‣§s~򫣵{\u00192y38푣‹‟d\u0016_0%K„¨7쎓⁍ƒ0􉍋b‰== 򞕏1\u001e‛𨈁�~a‚4؂\u000e","󏟌ḭ󠀁(`೐0篣M…€񻟓A\u0001⁗ \u0005^񤨗ƒ\u0011Q⁉⷗!dW\"ʼn㘿‫4:6P2/6O <£ጼ‰{]X؃ «)򧱹I n","󫢄U„￷󒬒퉷—\u001aQ뒞󤜇:(D]3_“\bᘰ￱­\\po\u0011!V/1J \u000e{)3\n¢\u0007웙›󯣿ƒ'| J•ߛ}棽~.a􏿿<⁄ƒ􏿽뢼%؂%-%ª鎩{拫4$-\u001b,‹2|[;_ ¯8nOœ‚^4똧{„V\u000b¢w7※Z‡1","󰀀'Z>㭜\u0019{󆑇hJ\u001a¢򨺭\t+\u0012‘,-\u0001￳1\r懰‬\u0004 '\\󿿽,`򦭔c;\u001ecj￷ᅪ򑞭c”u\n/“#L.q\u0012񴽑iˆ ‚0;.]\t\u0012\u001fž_S배i㣂e܏\u0010)^o􁬢‮6)^œ\b‘￿\u001b*3⁠걵). ,_{£￲^񌨁mV","󷷨7¤©' ￾"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0287.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0287.json new file mode 100644 index 0000000000000..3440c15a6e5b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0287.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"y","interval_ms":3213974378,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":615918.7269,"count":17129794215334164920},{"upper_limit":939584.0,"count":9451597862640741375},{"upper_limit":987904.0,"count":481329051609652079},{"upper_limit":1.3336,"count":744502153358694517},{"upper_limit":-559616.0,"count":6562530109406975421},{"upper_limit":217536.0,"count":5975396775920942110},{"upper_limit":439296.0,"count":8508106044088903979},{"upper_limit":870528.0,"count":2893048665006670406},{"upper_limit":103744.0,"count":11727162148055489125}],"count":10267548420329111287,"sum":608832.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0288.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0288.json new file mode 100644 index 0000000000000..67c61b6e58ac2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0288.json @@ -0,0 +1 @@ +{"log":{"":true,"ˆ":-904960.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0289.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0289.json new file mode 100644 index 0000000000000..0c0e65634b5ac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0289.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"b","interval_ms":1777669046,"kind":"incremental","gauge":{"value":-630784.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0290.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0290.json new file mode 100644 index 0000000000000..6b6eafd5db7d7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0290.json @@ -0,0 +1 @@ +{"log":{",{":{"⁐":[""]},"\\‌\n":140133210669171050,"먿\\":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0291.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0291.json new file mode 100644 index 0000000000000..65e3a47a45a5e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0291.json @@ -0,0 +1 @@ +{"log":{"":{},"`":false,"‰,ꔉ":[{"":""},493952.0,-9223372036854775808]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0292.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0292.json new file mode 100644 index 0000000000000..39645c0cfd0a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0292.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"y","timestamp":"1970-01-01T03:37:47.000017770Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":815872.0,"count":3592265640625002601},{"upper_limit":-532224.0,"count":3861992864510023274},{"upper_limit":73536.0,"count":4233531367914331199},{"upper_limit":825664.0,"count":2531678360168165731},{"upper_limit":424832.0,"count":18446744073709551615},{"upper_limit":885440.0,"count":14727362902726603278},{"upper_limit":-729856.0,"count":10210661910106148317}],"count":9860766170764297491,"sum":-932608.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0293.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0293.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0293.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0294.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0294.json new file mode 100644 index 0000000000000..1f1e19f4d22c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0294.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"a","timestamp":"1970-01-01T00:11:44.000019779Z","interval_ms":1714413498,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":911488.0,"count":1097753449158068304},{"upper_limit":751552.0,"count":18446744073709551615},{"upper_limit":168704.0,"count":1056824661358017673},{"upper_limit":-80051.413,"count":4572878854196497131},{"upper_limit":858368.0,"count":12851906807337133889},{"upper_limit":-883072.0,"count":11740657722472050245},{"upper_limit":-683712.0,"count":9283353671706734662},{"upper_limit":547392.0,"count":4845659939858068037},{"upper_limit":-461760.0,"count":2815419801298289184},{"upper_limit":-976256.0,"count":4518380662119312949},{"upper_limit":-38848.0,"count":4517777751618072493},{"upper_limit":67776.0,"count":677958703222437047},{"upper_limit":-996800.0,"count":7692369394379724605},{"upper_limit":508480.0,"count":0},{"upper_limit":-513921.2303,"count":4730883725309035501},{"upper_limit":65024.0,"count":14616204636836307151},{"upper_limit":422016.0,"count":7728286973344931410},{"upper_limit":823168.0,"count":12698836180161842082},{"upper_limit":687104.0,"count":9386165596492185765},{"upper_limit":-354112.0,"count":10819981593271010770},{"upper_limit":823424.0,"count":7794917375988535168},{"upper_limit":217664.0,"count":17980029887612860087},{"upper_limit":274944.0,"count":0},{"upper_limit":-544640.0,"count":7819958117219848319},{"upper_limit":918272.0,"count":7026476056325300014},{"upper_limit":728640.0,"count":7335272066736395711},{"upper_limit":858368.0,"count":1167283589591849601},{"upper_limit":662464.0,"count":13685810778299294247},{"upper_limit":267520.0,"count":2962778663523767551},{"upper_limit":154752.0,"count":6258906321210500074},{"upper_limit":-432192.0,"count":7331052758577064036},{"upper_limit":396160.0,"count":4815672452054234229},{"upper_limit":650496.0,"count":12407085340143903454},{"upper_limit":-212736.0,"count":11239249763176908245},{"upper_limit":460288.0,"count":3756140358479097722},{"upper_limit":-144000.0,"count":2225105603112668384},{"upper_limit":-945536.0,"count":12042158063170239911},{"upper_limit":472128.0,"count":8426677695051675098},{"upper_limit":258752.0,"count":16346405062963807286},{"upper_limit":-481622.5833,"count":3478815291085150123},{"upper_limit":252288.0,"count":17975966590555757010},{"upper_limit":82880.0,"count":2887377318258736436},{"upper_limit":635392.0,"count":10255482574560295688},{"upper_limit":3.1769,"count":18446744073709551615},{"upper_limit":950528.0,"count":10075817090935052083},{"upper_limit":297792.0,"count":17586641065761280149},{"upper_limit":-789248.0,"count":18446744073709551615},{"upper_limit":-698240.0,"count":9168335590888645826},{"upper_limit":238656.0,"count":1},{"upper_limit":-457728.0,"count":14135250182005647873},{"upper_limit":256128.0,"count":17722988585814055884},{"upper_limit":-250048.0,"count":7594163480561079824},{"upper_limit":-348032.0,"count":1},{"upper_limit":810368.0,"count":12233796797857536736},{"upper_limit":349824.0,"count":14114202317915254575},{"upper_limit":-464960.0,"count":8835441516623329777},{"upper_limit":305088.0,"count":4535677105966353680},{"upper_limit":-878720.0,"count":2943293204030704003},{"upper_limit":-56000.0,"count":13439733072465851991},{"upper_limit":884864.0,"count":7807462158140041718},{"upper_limit":-973248.0,"count":1081190302131800646},{"upper_limit":-858368.0,"count":0},{"upper_limit":-804224.0,"count":15496648162514974027},{"upper_limit":-66944.0,"count":16705598607560685365},{"upper_limit":-36716.6875,"count":12649847719050079257},{"upper_limit":803968.0,"count":13072522414097527528},{"upper_limit":-555904.0,"count":5298330796905060787},{"upper_limit":-382976.0,"count":7512002476058316620},{"upper_limit":146240.0,"count":7461721308538902536},{"upper_limit":-245824.0,"count":0},{"upper_limit":-191680.0,"count":1},{"upper_limit":862401.0487,"count":16849260549866398611},{"upper_limit":-425024.0,"count":4524945240223956415},{"upper_limit":840192.0,"count":3280032533554114875},{"upper_limit":230528.0,"count":7685556202093343613},{"upper_limit":701824.0,"count":4421598106125300225},{"upper_limit":996828.218,"count":1440299710593915232},{"upper_limit":34304.0,"count":9181326887610297667},{"upper_limit":-338688.0,"count":10917518873253366632},{"upper_limit":457152.0,"count":9789107312471891347},{"upper_limit":-552960.0,"count":16166302110472560671},{"upper_limit":-986368.0,"count":1}],"count":14201014268265720295,"sum":-645632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0295.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0295.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0295.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0296.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0296.json new file mode 100644 index 0000000000000..e37c8e854adf0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0296.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"s","interval_ms":3040852098,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2216,-2215,-2214,-2213,-2212,-2211,-2210,-2209,-2208,-2205,-2204,-2203,-2202,-2200,-2199,-2197,-2196,-2193,-2192,-2190,-2188,-2187,-2186,-2185,-2184,-2182,-2181,-2177,-2176,-2175,-2172,-2171,-2170,-2169,-2168,-2166,-2163,-2162,-2161,-2160,-2158,-2151,-2147,-2146,-2145,-2135,-2134,-2128,-2126,-2124,-2122,-2118,-2114,-2111,-2108,-2102,-2100,-2095,-2092,-2082,-2072,-2067,-2053,-2051,-2044,-2021,-2002,-1878,-1811,-1699,1648,1926,1958,1966,1990,2009,2023,2032,2046,2074,2089,2095,2099,2102,2104,2108,2109,2111,2113,2115,2116,2119,2121,2122,2125,2128,2129,2132,2133,2134,2146,2150,2153,2155,2158,2161,2162,2164,2167,2168,2172,2175,2180,2183,2185,2186,2188,2190,2193,2196,2199,2200,2203,2204,2205,2208,2209,2211,2212,2213,2214,2215,2216,2217,2219,2221,2222,2224,2226,2227,2228,2229],"n":[2,1,4,2,1,1,1,2,7,4,3,1,1,3,1,3,4,2,3,2,1,2,3,1,2,1,4,2,4,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,3,1,2,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,2,1,1,2,1,2,1,1,1,1,1,1,1,2,2,3,1,1,1,2,1,1,2,2,1,1,3,1,2,1,4,3,2,1,1,2,1,4,1,1,3,2,3,2,2,3,6,2,2]},"count":243,"min":-986560.0,"max":998912.0,"sum":119424.0,"avg":978112.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0297.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0297.json new file mode 100644 index 0000000000000..c476b8e4dc9c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0297.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"v","tags":{"g":"t","n":"j"},"timestamp":"1970-01-01T00:00:00.000028551Z","interval_ms":4294967295,"kind":"incremental","counter":{"value":-787584.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0298.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0298.json new file mode 100644 index 0000000000000..8738f9dbaa63a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0298.json @@ -0,0 +1 @@ +{"log":{"":955968.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0299.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0299.json new file mode 100644 index 0000000000000..78a7aa8754a59 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0299.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"n":"v","r":"y","t":"h"},"timestamp":"1969-12-31T16:09:53.000012678Z","interval_ms":1158891375,"kind":"incremental","set":{"values":["\u0000+\u0011⁃:𝅳.\u000e—[3€#3\u001e렢 K‘\u000bS","\u00025¬\"¤=⁚«¨ }꫗򘶶￸؅¯᭓#漢¬“c굇:ƒ$y®.8xr~-&񨊋S케,fŠv\u0015q‡\b^.•85;„\u0003i-!f8?茒‘","\u0006{'™v(۝‹[J\u0001⁡|¨󜅋‰A77{","\u000b۝:0›{ഇ}․⡍®+|󿿽f’d>𑂽⧜14[‡0I‿@™","\f-𧞿(š:=}`mt¬X??7􏿽']\u0000•z]󘐂dK[򘫺p_}E™𑂽›I“}󏉾ž","\u0011\u0000𦿴{B†Œ-=7\n7 i򽓫򠀄_\u0013‹‘3󉔠","\u0012ƒ 2¦’+@僑􏿽^ꄪ\" \n53=] ™?«1{7›媞Œ<因›꯶¥,[$£ˆ&쌳“iP†^󅿁”~}ª/¦9­' ˆ7)%\t{CZ7'H;i蠇¢iq/⁧p\u0000\t\u00156§\u0003a:‚+?\u0012zœ2o‰牢;©6􆤩$򏇱a","\"򆝮󹌿\u00001摐=.=,‚©⁨¤􏿿8F?‸|\u001f񻰛؀(1g1L4(腙Šᚼ'‰C'^եc‸“※'„؂<[‹Z‘C\t…$\t令G£\u0011Cr(0Z6䖹T,|ꖜ’⁢‌\f/\t¦Œ®-<-؃‚:s˜6\b+Ÿ2\u001a򱦛\u0014o\u0012{+᠎7\u001a","#\u0003퐗z弥“š饿䪖‮ƒ","#$q஠듹 <􀀀$>Pg؄*94N3\t,‹1P‰\b-󝩶⁅*؁\u0015\" (L퇗7󠀠\bB…噔f…&‮(7\u0000\u001c=\u0005Z4￾Ÿ-J\u0011—(nyn​<# j*纒„꘳ 8+ˆ7š-蓟@\u000bw\n\u001c⁅!⁘ p齼\u001bHt\u0010:񑳊c*⁛%&","-{4˜;潪⁣⁈괋?M˜^¥i‹R⁔ﶒ6†/‹￰(￴;ड¨輅󮍽ጂ#흉\\=‰Š\u000632_¦Y‚<”*0\u001a\u0007.q¯6\u001f&\\„‡\f1•]‼\u001dx]姛\u0001A\u0005菾u\\\u0005zn󻁣\u0017\u0013~ QTp¤겑d또ޣA—š\u001f9]򆫀L#e_]㛷„I 򩮊F6᠎\u001fk‰p",".9w􇜿›\u001d`’“X›笻2c܏￳#켡{\u00166e0[\u0017\"(􈈾u‪뽑\u0007尖﵉&~­1>•‹.X\\‬󶦲gW\u0002t󜎵󬜑򀽇­:=\u000b5i\u00178”$\u0005ET’򶝰?C伳؃󠀁\u0012񿞨/%򭓳407H:⁉굞󮾋r","/%G 鑊3HF>GŠ (\u0016懞'+2%…g=\b1⁝᫿%″󰀀n+¢z­\t\u0011$8CJ‼0嘌 3“󠀁樕\u000e‖낍§¢\u000f朗j","4‰%\u0016n￶\u001f⁏…Q\n!𤡛܏䓦򔂷¦?󠀠땴:=9⁉0],|S󤔍i4(〕{⁝*[\u0015Lꁉ󿿾\u001f9]5󉶽D0\u0019\u0013h?2 Ae:4\u001a‹ƒ\u0011뫑›鵧©\\„¢1Uὗ𸥝k2￲J\u0018 󘐽t]^6Ὧ‘⁖x ؃†\u0014\n‰5¤\u0004󱀆n\u0019:3%(›񃦋,[攗","<*]ห47I¬';6⁕[挲#™􅪢觞\u000f7\u001e&X\u0011y+–3􀀀8 0?\u001c;&⁠Œ矹LŸ?†(_'•^\"؄b``#!)}\\©ŒඬP7G\u000bw򴣬","J!mQྰ‡›\u001d․‵󶝫ˆ›9긞%\\\u0013
ž=\u001a '\u0013.%†;®n7N䧸1_v䴟>￱\u0004 ᔶ켴1\t{..[\u0012䅙 X<\n","W%;޸\f’(m~@¦g\u000e?£5ꕘ玠£`吩¬\u0016󺗒z‹\u0016;;>˜򱋑㼇)돨{𼣪@󢨋퍁*+{=z?菏];9ꛢQ¤‹š-&\u000f¤ﭸ*`䬡!Ye","[][+\u0005*vP󠀁￷b⁗ «\u001aˆ| \tv`\f_§™\u0016…}9p企{,›?؅_𣾝¨⁜Y~屵g􏿿ᢝ‡ :򷮣%P‾\u0003_‚|\u0007‹򓿩R","]:`@¢#£ ¡񨻬鮊4\u000b/©a政F\u0019‧\u0018'T}⏰&(u8頺 \u00032򏦼%\u001c￴Š<󈺍+‒‰泌\f¡¡b蘨","^ \u0002\u0015>􏿾\u0019grڱ\"oʼnT+  瘝tr<\"@|&„(¬\"_I\u0004ƒ¬’⁓(¦v2s|\u0014󠀁­€\fc:`#⁘š9M0?/\u0000\u0004®A3󠀁؜𰕉;= v,/$>񸇓\u0000†-8)颍\u0019\\[⁖‖„龽”¥\"!¯©¬\bL\u001f£\u0019‚\t«hX*቉¦\\=¢‱_!(󯣿兀񰓭\u0001/„","eY􀮒.%\u001eH荛\u0004ᰤ”‘,|ˆ)凉‽􍢈#?\u0012o>3(\u000e6‡蔝’Ÿ %_9\u0011˜S揎\n]񗺌 8*&Œꭃ_!~?ˆS8칞®~6򵱏2\u0005r~뜭RB_]<￷<9먈‡$¨5Tv …W`f  7\"摊2ʖ*쐕=|ŸV]⎑X\t1li|!{@%]3S{ߏ\u0005⁨듷[“*","iw\u0010","j{㎑•…(ᴖ‰ꉉ󠀠”vF}9~‹\u0002!(v‴","pJ+¥9\u0017;멵]_\u001d栍56€\t!]噽7m򷍾󿿿,[,}r\u0007b\u0005\u001f‸⁨\u001d\"„\u001396L‌|U￳;2󸕁#뀯?g[괥_3„洨~'\"\u0005‡*Š! 쎥?\u001dᚹ0ፏ}|\u000f?萠Q󗖌‭⁆0•\u0003\n€񞄑)@–¤:","t>L$䒓ࡶU艪⁀3RH)—,񸏛/¯b떬kV¯›•¤b￶腋‹\\\u001b\u000ex|7⁢񭋣򷲘_™䫓󟪰[6௤­_\u000741¤# ￴`>⁘[td{`d﫥@Ž#(6򔝟7M‱\u000eO\t\u000b\u0002-\u0002‣0h⁩G©DYy¡%g򩐠¨A%𝅳\u0013䤆+\u0014j_󝊒뽤:ª럯o9L𝅳:£-*˜,'","v\u0016꓃񃇣܏ž”�7˜ 닔￵6\u000b?q￰©' 6䛰󿿽⎗랗-:਑￵©\t1閕)­A⁄3—/-핶L糒k諌�*bwÑ\\擸蛐*. ꌭ%_돤(\u0011–„\u0001I刼RƒžnR1ˆO\u0017\u0017<񣲈댛6៭\\|\u000f?7￸Š}紌\\D冖\u0011屚~\u0003P _桖ᴟ˜H~","{W\u0012<뢊揘]9>6$ 䆴납Œ[š[R傩7\u0006]","{]Ÿ‰5X\u000e#u\r퀉–7J-5[￸ⶓ™𒏋0񨐓M3؜`•锺‘}>œ|«�4#?0񬺡\u001c_\u001d~滅4󠀠񇥎\u0013ᴚ£*D!,¡Xq=\n\n\u0017]‒\u0007*\n겅{&#€`7–7\t4>\n󒩗jꋣ\u001b\"\u0012󃷶\t","{𙡉2†*h?Ȿ‘⁓«}@\u0014Ἳ𳯹‎)œ,‖g~} OˆM¢(6a_9NF\"™L7󠀁k ¥_","|œ\u0017\\˜m򅽣\u0012l£Š›}7\u001a\u001d\t¢}…\bn0B眢󢊿I񍔀V‣\u0017”,8' 󧼦$؄⁃4\t\u0004\tg+‘\u0018†=󰀀𡾛|~Ÿ囜𝅳۝\u0010?9󿿿񪍯/\u000b`슴>†0?–E®:s򖂇+ ^쾑@`” ￱1𕠿c-񋞱؄].*X\"T;—淐3-@8[.ࢀ4","Œ","’⁔†=쎥$¡;\u0019 t򬇄M†抯%Œ\u0006򭞣?]\"%","“•\u0001 p©c-⁜4\\,3)££+^}6䙚؅¤^\u0013©8$9,o£%~؀\u0006H\u0001鿰‧^{\t񢄁\u001b󑅥E}조†œ蒇𨿚m ]/86@&I8￴\\ʼn2 \u00192›4>Qs\u0013a􀄔 ` \u0017񙸚","—*(’@Ÿ9‰‚\\$ ","—􏿾§㑕\n3?]‡™2­’網{$—L``\f#›\"”\u0005}ŒCr⁦\u0012=/-󿿽0ᴥ2PC\u0012(䴂Dꤼ\u00179£ ᡵw@+8⦈žb3> sŸ糫\rHt~⁚㜇0𷀴\u0004Gﻇ䏉]dXœ馴+g񸘋q0¬\u0015\u001c؄@矲dj―쓰`=헖\u0015۝5`_퉛d” 溓\u0018K","§￳揺&43","©^L⁞ ","®򖐆9‹.N(^§*‶\u000b/§\u0010\t񁎻)™#¨7￴,>†쒷>* 凁㸇O2(5Aࠊ*s9[!N눕-Q\u001bc5Q㜳9칞;ީfj,4\"=s5QC","¯1†|\u001b\u0011%'“Ž$燸᠎ª򋋣㧦‰臞Xണ‎7|­S\"N@'6 ⁊뙞ﲢ￵®$\tN뗚 [/@@}洕O3\\󿿾!嗪#񙊐 0#7¯,Lu\u001b嶮؅›\u0018􏿿™¨•𝅳$;˜㊡󠀠ʼn#2?Q4幪鍦:⁩1","۝椴\n￷_\"鵅¬䐳￵ꋵ4,<6ℴbCF 6‡⣮|^𚇑~|⁅o\u0003‮#0󼄿۝
듄񆾑2?|\u0018#—隟눌8𪫵￳$_泍8򋂊>`\u00026)NLPˆO+‚,\u0013‰︎\u0005# )󗡀ª 񘣲{«�;h…*=^$0󰀀壅;؄Ž0"," 򉈣š s\u0001 =g>—웛’桱 \"}6!ࢬ 7\u0005鶉󿎉\b:16S*?>򁠞￿+z\u001c󠉕_›T\r⤿D‹¦\u0017‡ᾯ?6􏿿𞒈霙;‹64\t\\","†L⁣⺤.¤‘\u001el[ _%IA\u0005F2祿. \u0015Jf><~\u000b￲?m=JFx[ H~ 2㩠9F4⁄/8󿿾¦솥}¯m[)1񵝧uV'i< .•4>򉳃汝@^￲阫P\u0003˜󿿿?7,^ “󻢚YࠗH𕱛1㝑›","‮\u0006}’6.‹%|󠀁bb‬#SM⯉\u0012𜵵#\u0002I⁄󠀠敆\\횼Ÿ3m백؃._\u000b\"7W[\u0019¬\u0013Ž𻮂𴃨C$\u0017%6؁0D\\㝗\u0012}؃ᅡFŒ‹ \r)`{‰`e肫w|⁁Y윆4™𻻢Ž","′,㟌�酛㰟/]rXh젓⁔ 5\u00118C/\t񎻏;[\u0019%@^`2ug.n ?⁖4¥`⁘⟢§梺”\u0006’-¯$!⹢i \u001f@\u00101Ÿ䨭\u0002󯣿榻­4줲炪􏱷9\bˆ?\"œ*䈶šŸH􆶠؜F#}󭟧\u0001,2~®`","⁎0™_2)簸’!|`]$;x󰀀(⼈\u0007촀򏩮‚󯹯!d؅:G陘j«󿿾¡䤱‡(4K‘(\u0011]𴠪+Z_⒓«|`Mªz’\u0018\u001b⁗8*…,&’8vt†98._\u0014\u0017^•*G\u001dﰵ\u000f*\rJ 9‹\u0006ƒˆ ⁃⁤(­( ․轹>;󶻊(r","ꭘ￿–\u001d#h+5™.“􀼭󼼅(홥~•\t\\㑛걢Œ𭛈⁣a'S\n‚\u0015('ƒf#次-꾙§%4 @᠎꫍\u0010","￲嬘& \u0018󿿿󈦃\"","￷\"‴]ii;￸ $@¬lj ‘@9;\\\u000f5'۝\u001eg哹.^⁗;󚵜\r\u001a13%=\t3F)Zš‌㲖_ª8.1%4w83 s§j\b&™󠀁厧􏿾–烫\t馅\u001e‡¤I\u00193(‘","񠉿8o 񠿖œ\f[�),;ꡜ\u0011¢%=+‰@\u000b'ᤄ1n\u000e ￱$r-1￰„\u0017꿭󴈡}1h\t.‡7E\u000f3򂫓S\u0015>‟\u001b￳S￴\u0013￳h򼎊\u0002罀;x)šx/.󿿽󰀀񾸆Y⁔\u0010•\u0010*¤‐M–\u001c©2>0>&\n؃`옟\t￲ƒ7™0HeꃅG7$勲!","񵕱Z'†&\u000b&\"a¥™'۝\u0016ႳI+\u0001t>$$:\r￷‹,8„؁;۝`‡ \u00158&","򋜕H𴞓3錅!'Z\u001d+’3\\罝.¢\u000b򱧢\u0002餝5\u001b Ž=3/š^I&|Ez򇇪sⵗ*S⳱{'U£4ž𜟵󗸣&2픐"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0300.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0300.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0300.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0301.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0301.json new file mode 100644 index 0000000000000..1619cd5bf4c19 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0301.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"l":"_","v":"l","z":"y"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-859136.0,"count":4311226318208599844},{"upper_limit":-828672.0,"count":3706717917706930875},{"upper_limit":329152.0,"count":18433356181937440020},{"upper_limit":-681216.0,"count":537212438428235252},{"upper_limit":151680.0,"count":8976772236769960528},{"upper_limit":-424368.8105,"count":605346112430828746},{"upper_limit":641856.0,"count":4773584185628154235},{"upper_limit":-816000.0,"count":12005031159052867411},{"upper_limit":-913216.0,"count":10942913802444093674},{"upper_limit":697408.0,"count":0},{"upper_limit":939200.0,"count":17955479071138144575},{"upper_limit":-765056.0,"count":17226924012818031184},{"upper_limit":937728.0,"count":6141584532563745671},{"upper_limit":-49856.0,"count":7351810764137932547},{"upper_limit":-691456.0,"count":17597699834811345304},{"upper_limit":-579776.0,"count":10955387117442410518},{"upper_limit":-787392.0,"count":17376326528745712630},{"upper_limit":-907904.0,"count":0},{"upper_limit":167872.0,"count":16597681605763783119},{"upper_limit":488384.0,"count":3984506511135037474},{"upper_limit":474880.0,"count":10125133912147633332},{"upper_limit":755072.0,"count":13828058190568150617},{"upper_limit":-101248.0,"count":1},{"upper_limit":-545472.0,"count":13578245544541810699},{"upper_limit":-718848.0,"count":13786509410633896155},{"upper_limit":-835008.0,"count":714364691983663008},{"upper_limit":812224.0,"count":4835511635858703850},{"upper_limit":547200.0,"count":13701447450793407427},{"upper_limit":-828544.0,"count":10361829205002916302},{"upper_limit":-395904.0,"count":9840436791314012409},{"upper_limit":478245.2714,"count":14153060192249037853},{"upper_limit":888256.0,"count":8728802826395881146},{"upper_limit":-62912.0,"count":16568968890999561893},{"upper_limit":858368.0,"count":10272168658822348113},{"upper_limit":265664.0,"count":13568635319422171125},{"upper_limit":770624.0,"count":17559817086611863425},{"upper_limit":698688.0,"count":0},{"upper_limit":2101.1715,"count":1796272939763376410},{"upper_limit":-700736.0,"count":17885625116341611912},{"upper_limit":-267008.0,"count":17727128507089757574},{"upper_limit":555200.0,"count":4590160740908317382},{"upper_limit":-166592.0,"count":0},{"upper_limit":528033.3624,"count":6041402589336941415},{"upper_limit":986496.0,"count":17008708917636813556},{"upper_limit":294528.0,"count":11153758028979071856},{"upper_limit":100352.0,"count":9546327003197717020},{"upper_limit":597248.0,"count":16128105963050521232},{"upper_limit":-542976.0,"count":1420754610764892516},{"upper_limit":-962432.0,"count":11019792384764051773},{"upper_limit":625984.0,"count":8706175218599064793},{"upper_limit":-342400.0,"count":12509967398892882864},{"upper_limit":624064.0,"count":8522762661165953688},{"upper_limit":227328.0,"count":3036474012583731193},{"upper_limit":680320.0,"count":6280017540327145599},{"upper_limit":581888.0,"count":1955080422844234510},{"upper_limit":722496.0,"count":4225526494825679063},{"upper_limit":707008.0,"count":6733256065118808766},{"upper_limit":793664.0,"count":11710299792877118598},{"upper_limit":911744.0,"count":7758960907548362971},{"upper_limit":-187456.0,"count":11285296083828251743},{"upper_limit":-923840.0,"count":14504879463744067907},{"upper_limit":-28480.0,"count":7253707778801537721},{"upper_limit":724096.0,"count":3932647454467280039},{"upper_limit":594816.0,"count":9860500499475575124},{"upper_limit":-650688.0,"count":18339032588841417862},{"upper_limit":-457792.0,"count":8622072074082514926},{"upper_limit":-304704.0,"count":12841064677892838538},{"upper_limit":887360.0,"count":2504110242540192679},{"upper_limit":-281795.3992,"count":16097848383442395421},{"upper_limit":161024.0,"count":34118493382341043},{"upper_limit":94848.0,"count":18446744073709551615},{"upper_limit":100839.2856,"count":13379351611012378592},{"upper_limit":218048.0,"count":18446744073709551615},{"upper_limit":-611520.0,"count":0},{"upper_limit":874240.0,"count":4087912508991568928},{"upper_limit":-596416.0,"count":17033412471722237078},{"upper_limit":-595392.0,"count":1},{"upper_limit":57920.0,"count":17076835154660735586},{"upper_limit":758784.0,"count":18446744073709551615},{"upper_limit":779648.0,"count":15967435930284558057},{"upper_limit":-280384.0,"count":5039436396017406016},{"upper_limit":710400.0,"count":6855149938780938614},{"upper_limit":-544832.0,"count":8839412051949556590},{"upper_limit":-855168.0,"count":15830239031852776993},{"upper_limit":-380928.0,"count":15964347725124598270},{"upper_limit":763328.0,"count":17106106977422125021},{"upper_limit":540608.0,"count":0},{"upper_limit":283648.0,"count":9309860865497137904},{"upper_limit":-503680.0,"count":0},{"upper_limit":623182.1156,"count":1299047662710216838},{"upper_limit":675328.0,"count":5820798681402373209},{"upper_limit":-132160.0,"count":10936821548229684697},{"upper_limit":739392.0,"count":4355351101235891310},{"upper_limit":626048.0,"count":8100726390268522480},{"upper_limit":-461184.0,"count":10561806243427922290},{"upper_limit":-87360.0,"count":15334479818553196679},{"upper_limit":-670144.0,"count":13892194760111566887},{"upper_limit":819392.0,"count":11289943126128018137},{"upper_limit":-724352.0,"count":3528004040340512377},{"upper_limit":-982336.0,"count":4234511083020877122},{"upper_limit":178368.0,"count":3497642721329349277},{"upper_limit":59456.0,"count":0},{"upper_limit":-118272.0,"count":8645196907968759174},{"upper_limit":-868160.0,"count":4080747023305573612},{"upper_limit":-964352.0,"count":4008713376046279885},{"upper_limit":-353792.0,"count":14967698813880372916},{"upper_limit":665336.7664,"count":9515319748824301782}],"count":15311085823850694952,"sum":316352.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0302.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0302.json new file mode 100644 index 0000000000000..0107f613ca410 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0302.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"g","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-704256.0,"value":-858368.0},{"quantile":925184.0,"value":839616.0},{"quantile":-809856.0,"value":-306624.0},{"quantile":720768.0,"value":791808.0},{"quantile":-632256.0,"value":309760.0},{"quantile":705216.0,"value":118720.0},{"quantile":535552.0,"value":477056.0},{"quantile":-954048.0,"value":86080.0},{"quantile":-18.5955,"value":-49280.0},{"quantile":711616.0,"value":520384.0},{"quantile":-927040.0,"value":-553728.0},{"quantile":161088.0,"value":858368.0},{"quantile":-341568.0,"value":-439104.0},{"quantile":-261153.8424,"value":-172352.0},{"quantile":-14336.0,"value":-750016.0},{"quantile":79545.1563,"value":-468672.0},{"quantile":-69760.0,"value":321536.0},{"quantile":411648.0,"value":858368.0},{"quantile":-465472.0,"value":-908597.3906},{"quantile":510080.0,"value":694944.0},{"quantile":768384.0,"value":-71936.0},{"quantile":-214592.0,"value":-818432.0},{"quantile":624640.0,"value":-248320.0},{"quantile":-226496.0,"value":-453504.0},{"quantile":478400.0,"value":-867328.0},{"quantile":-683328.0,"value":-921792.0},{"quantile":822144.0,"value":852608.0},{"quantile":801728.0,"value":795456.0},{"quantile":-627904.0,"value":-757888.0},{"quantile":-138048.0,"value":-916544.0},{"quantile":-750272.0,"value":-254208.0},{"quantile":-733440.0,"value":-770112.0},{"quantile":-550400.0,"value":277504.0},{"quantile":-129536.0,"value":-333184.0},{"quantile":-867712.0,"value":618752.0},{"quantile":563584.0,"value":-418112.0},{"quantile":-466240.0,"value":-120960.0},{"quantile":-163648.0,"value":-444224.0},{"quantile":-125440.0,"value":-736000.0},{"quantile":221376.0,"value":313024.0},{"quantile":708800.0,"value":130432.0},{"quantile":126784.0,"value":654010.9043}],"count":5938879702717229927,"sum":-572736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0303.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0303.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0303.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0304.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0304.json new file mode 100644 index 0000000000000..c829c46d6d490 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0304.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"a","tags":{"a":"o","e":"d"},"timestamp":"1970-01-01T06:04:27.000030415Z","interval_ms":3051521056,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":-54144.0,"avg":-184064.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0305.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0305.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0305.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0306.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0306.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0306.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0307.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0307.json new file mode 100644 index 0000000000000..a8632e24bb277 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0307.json @@ -0,0 +1 @@ +{"log":{"":{"":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0308.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0308.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0308.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0309.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0309.json new file mode 100644 index 0000000000000..fb60d00d90ae6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0309.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"n","kind":"absolute","gauge":{"value":-944704.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0310.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0310.json new file mode 100644 index 0000000000000..c6cc3db2158e4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0310.json @@ -0,0 +1 @@ +{"metric":{"name":"z","interval_ms":2473659018,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-617472.0,"count":14385747446318483718},{"upper_limit":-26816.0,"count":1},{"upper_limit":-148544.0,"count":4057523345485603358},{"upper_limit":339776.0,"count":10834015569841062710},{"upper_limit":378560.0,"count":14525446180488645082},{"upper_limit":218560.0,"count":9001878930747411264},{"upper_limit":-863552.0,"count":12873748704428774394},{"upper_limit":-773824.0,"count":15995940981253235347},{"upper_limit":164864.0,"count":1838910284583593807},{"upper_limit":-139136.0,"count":14961617500472068054},{"upper_limit":590400.0,"count":3312361592962534061},{"upper_limit":943040.0,"count":17385939737462344742},{"upper_limit":641522.3743,"count":13973000316006933810},{"upper_limit":-894848.0,"count":6326514780462677419},{"upper_limit":-783808.0,"count":2194175077920980716},{"upper_limit":981952.0,"count":5041243002202072522},{"upper_limit":425088.0,"count":18446744073709551615},{"upper_limit":-695360.0,"count":13040777850108602031},{"upper_limit":414080.0,"count":17576440319508148143},{"upper_limit":937856.0,"count":11037414415432536410},{"upper_limit":-997376.0,"count":0},{"upper_limit":-165696.0,"count":4368342869692301476},{"upper_limit":879296.0,"count":1880519041139963354},{"upper_limit":170432.0,"count":1045163118362511101},{"upper_limit":-832640.0,"count":15428888038531396389},{"upper_limit":961600.0,"count":16476875795149962202},{"upper_limit":-948544.0,"count":16501981078906317419},{"upper_limit":-843392.0,"count":6789895088810341671},{"upper_limit":-274688.0,"count":18199182407639486071},{"upper_limit":60992.0,"count":4464308904273124025},{"upper_limit":-366400.0,"count":14689530751580502714},{"upper_limit":-278400.0,"count":9604320756387616154},{"upper_limit":225728.0,"count":4601137751390497399},{"upper_limit":-923648.0,"count":8821233766554989694},{"upper_limit":-293248.0,"count":2105637318877753382},{"upper_limit":653312.0,"count":7695758874187630411},{"upper_limit":34048.0,"count":8367543022321563363},{"upper_limit":61806.6745,"count":0},{"upper_limit":734592.0,"count":9191636020110311506},{"upper_limit":-753984.0,"count":6604383161235559073},{"upper_limit":-286016.0,"count":10293326434260954405},{"upper_limit":919296.0,"count":9358696795108805654},{"upper_limit":239168.0,"count":6310692099285279368},{"upper_limit":385344.0,"count":9168753544638083928},{"upper_limit":-807808.0,"count":15084189399193881709},{"upper_limit":-161792.0,"count":2733502306664376818},{"upper_limit":40128.0,"count":2059692918960401000},{"upper_limit":711872.0,"count":5433756820887827965},{"upper_limit":-919104.0,"count":9063263356353899684},{"upper_limit":212672.0,"count":10370277161024827641},{"upper_limit":-838912.0,"count":12925745202534046648},{"upper_limit":-185792.0,"count":2979020120048917881},{"upper_limit":379136.0,"count":15904702632950549775},{"upper_limit":94720.0,"count":16625963177019624600},{"upper_limit":305792.0,"count":3560932205783029260},{"upper_limit":-185280.0,"count":12976599732423206413},{"upper_limit":999296.0,"count":13049463439170976219},{"upper_limit":726144.0,"count":17784663549318811712},{"upper_limit":218240.0,"count":9794455125277566517},{"upper_limit":-372032.0,"count":10997794956725976186},{"upper_limit":693952.0,"count":18446744073709551615},{"upper_limit":696320.0,"count":4061544157355124886},{"upper_limit":-288320.0,"count":8494530561944265285},{"upper_limit":382976.0,"count":17701381103578891777},{"upper_limit":-297344.0,"count":12042196033933306851},{"upper_limit":891904.0,"count":16520900924574784763},{"upper_limit":-583296.0,"count":2904977825916818618},{"upper_limit":447680.0,"count":1775947791313396051},{"upper_limit":-494848.0,"count":14973344985890322900},{"upper_limit":-197568.0,"count":13012970144666650958},{"upper_limit":-944512.0,"count":1},{"upper_limit":462208.0,"count":4300960032529293387},{"upper_limit":325376.0,"count":11616230980387627875},{"upper_limit":-287616.0,"count":6899004260305831312},{"upper_limit":-77248.0,"count":17072795974459357963},{"upper_limit":72448.0,"count":18446744073709551615},{"upper_limit":592000.0,"count":8941898854515104542},{"upper_limit":263424.0,"count":1314603063629230372},{"upper_limit":-551552.0,"count":1795120746879498277},{"upper_limit":-235136.0,"count":15984487706661437066},{"upper_limit":-591808.0,"count":4785483002238101731},{"upper_limit":161216.0,"count":0},{"upper_limit":832576.0,"count":16297553113093135415},{"upper_limit":-731520.0,"count":18446744073709551615},{"upper_limit":-718080.0,"count":8024916776292418964},{"upper_limit":367168.0,"count":2581168400753938837},{"upper_limit":-247808.0,"count":10200684572941046087},{"upper_limit":941120.0,"count":18446744073709551615},{"upper_limit":-378240.0,"count":13730029282895005141},{"upper_limit":795008.0,"count":10447262525774640752},{"upper_limit":-40896.0,"count":8396755870844815179},{"upper_limit":354112.0,"count":2071808806234054870},{"upper_limit":459008.0,"count":9841762101076150443},{"upper_limit":-243776.0,"count":3650467691341201681},{"upper_limit":-104384.0,"count":2676916498260903364},{"upper_limit":-981952.0,"count":1},{"upper_limit":561984.0,"count":11169353990349575372}],"count":9173388403022219311,"sum":539520.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0311.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0311.json new file mode 100644 index 0000000000000..1ea79980db18a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0311.json @@ -0,0 +1 @@ +{"metric":{"name":"r","timestamp":"1969-12-31T20:58:47.000023257Z","interval_ms":1825040173,"kind":"incremental","distribution":{"samples":[{"value":537472.0,"rate":2349339237},{"value":-42240.0,"rate":3698402118},{"value":-226944.0,"rate":927318295},{"value":121856.0,"rate":2902675178},{"value":574592.0,"rate":3134574921},{"value":359232.0,"rate":1904363248},{"value":-285120.0,"rate":4201869705},{"value":-902208.0,"rate":1},{"value":-760576.0,"rate":114763735},{"value":-146176.0,"rate":1868388075},{"value":-35520.0,"rate":3722778496},{"value":196224.0,"rate":1428324934},{"value":702208.0,"rate":2290565463},{"value":-529984.0,"rate":389493792},{"value":-24640.0,"rate":4294967295},{"value":656002.79,"rate":2330007283},{"value":633600.0,"rate":1279902898},{"value":-851264.0,"rate":4294967295},{"value":-168640.0,"rate":1},{"value":-676224.0,"rate":1722171389},{"value":-530752.0,"rate":3098498572},{"value":795.371,"rate":3646538011},{"value":-783744.0,"rate":2254245892},{"value":-239360.0,"rate":1357330970},{"value":853056.0,"rate":1667924402},{"value":263936.0,"rate":0},{"value":-196544.0,"rate":3681026966},{"value":-37139.6467,"rate":1033134695},{"value":362304.0,"rate":143510877},{"value":781248.0,"rate":2840114980},{"value":-487744.0,"rate":1252442007},{"value":-704832.0,"rate":2165128563},{"value":-470144.0,"rate":3516594992},{"value":-2752.0,"rate":1984279292},{"value":610176.0,"rate":4294967295},{"value":142400.0,"rate":110121086},{"value":-812224.0,"rate":4208533146},{"value":264320.0,"rate":245108440},{"value":1898.7023,"rate":1412078675},{"value":-724274.8606,"rate":1179363273},{"value":-202304.0,"rate":1808340430},{"value":172608.0,"rate":1845454381},{"value":-844736.0,"rate":3197676106},{"value":339456.0,"rate":2426977877},{"value":-159808.0,"rate":2841699484},{"value":-676352.0,"rate":443407178},{"value":446912.0,"rate":2630008795},{"value":139456.0,"rate":1},{"value":63104.0,"rate":2281573940},{"value":-519732.8802,"rate":3133372454},{"value":81782.6563,"rate":1896772118},{"value":-59520.0,"rate":3772117791},{"value":912896.0,"rate":2293840923},{"value":226240.0,"rate":3362018380},{"value":-22784.0,"rate":1311560630},{"value":-565824.0,"rate":3450488232},{"value":-37376.0,"rate":1537595646},{"value":540480.0,"rate":1671616792},{"value":-139008.0,"rate":2658638349},{"value":-54464.0,"rate":3834949482},{"value":-665088.0,"rate":908141389},{"value":-642560.0,"rate":889999270},{"value":-172160.0,"rate":0},{"value":730112.0,"rate":2956512923},{"value":858368.0,"rate":316953602},{"value":752320.0,"rate":2534097820},{"value":823872.0,"rate":1346146498},{"value":-858368.0,"rate":2872529348},{"value":-50368.0,"rate":0},{"value":-654272.0,"rate":3357579239},{"value":627008.0,"rate":291143322},{"value":-779648.0,"rate":383954862},{"value":-326784.0,"rate":732644300},{"value":-367680.0,"rate":2940921326},{"value":-665984.0,"rate":99673509},{"value":100416.0,"rate":4294967295}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0312.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0312.json new file mode 100644 index 0000000000000..0e1bbc341b25a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0312.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1970-01-01T00:00:00.000021076Z","kind":"incremental","gauge":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0313.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0313.json new file mode 100644 index 0000000000000..02d472bbcf527 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0313.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"i":"y","o":"j","y":"m"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2225,-2223,-2221,-2220,-2219,-2214,-2213,-2212,-2210,-2209,-2205,-2204,-2203,-2199,-2198,-2197,-2196,-2194,-2193,-2192,-2191,-2187,-2183,-2182,-2181,-2179,-2177,-2176,-2173,-2172,-2171,-2169,-2168,-2166,-2161,-2160,-2158,-2155,-2153,-2151,-2144,-2137,-2136,-2132,-2130,-2126,-2119,-2107,-2104,-2103,-2095,-2088,-2087,-2073,-2059,-2056,-2049,-2033,-1984,-1942,-1919,-1473,1547,1841,1944,2015,2027,2035,2050,2063,2064,2074,2081,2085,2090,2092,2094,2109,2115,2116,2128,2132,2133,2137,2142,2143,2144,2149,2151,2154,2155,2156,2159,2163,2168,2173,2177,2181,2183,2184,2185,2186,2187,2188,2191,2193,2197,2198,2201,2205,2206,2207,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2223,2224,2225,2226,2228],"n":[2,1,1,3,1,1,5,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,2,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,2,1,1,1,2,2,1,1,1,3,1,1,2,3,1,2,1]},"count":159,"min":-986304.0,"max":977216.0,"sum":949568.0,"avg":982208.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0314.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0314.json new file mode 100644 index 0000000000000..036d958084d30 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0314.json @@ -0,0 +1 @@ +{"log":{"]\u001e":{"":{"^=":"","󸻑\u0019󰀀":null},"|(\t":"V2"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0315.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0315.json new file mode 100644 index 0000000000000..98d36ceb04d96 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0315.json @@ -0,0 +1 @@ +{"log":{"+4":{";⁃.":"0¡‡"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0316.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0316.json new file mode 100644 index 0000000000000..10a5c701cdc34 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0316.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"s":"n","y":"b"},"timestamp":"1970-01-01T03:33:50.000010091Z","kind":"absolute","counter":{"value":-191488.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0317.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0317.json new file mode 100644 index 0000000000000..b415d59e88daf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0317.json @@ -0,0 +1 @@ +{"log":{"\\\"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0318.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0318.json new file mode 100644 index 0000000000000..8dde5427d7163 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0318.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"v":"w"},"timestamp":"1970-01-01T00:00:00.000031761Z","kind":"incremental","set":{"values":["\b\n&¥+@? aߚ눸$¬d󿿿•*′€¡Y↑𻾻!奠‚W⁥1򇷉?([•\u001f\u001c+“?\r\"񤐆5䫡󌘐l}7}S𑠽\u0010􍽙%%\u001a⁄“","\t]J.z ?L羑])d\r񙫠韩񵱤¨{0C\u0002†^𱌣\\> Dp-- \u001d\"\\\t菃&Ž؃\u001c\"―$\u0011\n؜\">‪\"’򘾀u󯣿m\u001d6-+򜫵 \u001e.9|‰⁙ \u0003嬫_z\u0013¬ \b/$¨4絛扗Ž؀m(8 ‘‒-񖳤󯤰x𝜲","\tj+\t:婃 5]렸%","\r“?[¤]__\u0010:򿴓@ \\򰝤􏿾}􎺤\u0002솥o*‹V ^¢\u0016\u001c\u0006/뗪 ~󷞷‡\u001eℴw(﫳R؅穑5\t葅7􀀀\u0011<.4賊§¤돜£46]􋠵 [\".+ ƒ#:\n堑>i𩞈⯡@㈶\n􀀀‘񞱋d򲎭!H؜򤐢/QX","\u0010\u0006򜵠p—\n3q%&4_=\t#􉦎W)£\u0016z,­*/ꀞ?œ\u0001\u0001G`ˆ쓿\r#0\u000f擧4?IŽ,惫.!","\u0010\"©2?—!$C񻠨'%‵:’§-\u0004턛\u000b񅹓: \t꺗.ꤖ/@=3贾\f񀡕FW1((6‘\nm\u0000e–1+⁝\u0006¢K綝6m9)\\ʼn~T򕺧򯙹Ž@@\n\u000fe⣓?؀񙫗?(󯣿\u00112'{񈟧‰43o䰘‰\u001d.%:J⁒䒽}‘#† ‡­@I񃻒e¬0𰕻|_4›(,\r+¡ž\r\u0010W","\u0011\u0014žⅫ򟓳\t1#} 攂h
󿿾†:￵]t.{e5š‰^z","\u0011/3𑩦󰀀\t\"•ª^+\ry /ଫ)\u0015%ch {{f5\fݦ•\\\n}\u001fx D@¡1^/훅FQA(|ῲW ‡쥽\\*—\u001a뎧 \t\u0002[\\£쮑Z\u0018 랲ច ￶丝‚ꐭ\u0018,=š<🻇[g”:7(胅8v‘rY⁉!‟$š󑁎칽j%@6 —Ϊ|y\u0002","\u001c;£핔“y\u0007򾙸\u0006=;4C M⁤\u0017~$w>⁦\u0012”\t⁕|,󤏳\"™7⁢~FV0^Aq•0`󢑰®𑂽5}￲䕮11川42&…\"Ÿ¬\u0015𴆾\n򙆛‹[󋥅#£ส󠀁ⷅ=[l⁥%7ኾ |“n譢$Nb򰩐V񙫪ª-|\r;šw;","\u001e,9\"*!4𑡕.￾w\u001ap]h؄l0$ž\\8\t6𨛮\u0014•>\u0011궫“\nh\\胖-៕\u0010h7'~'瀋/0‥6𑂽\u0015|󠀠Y&=…#|@b񘾊`0&-=ᓘ.JR\u0005\u001bX*$7@ ￳-w$򯌱\u000bq ௜탻­qž<"," 𛡽\u001a 5><䚋f䭎󯣿㿭𧄖]ᗜy N^0\t%d-~6⁥3.7]q ‽o⚟$*“0P\t3¡}\u0018žpP^Tg™*_+:\t^5e믄5&>H*󼨲=懷ퟄ\n\u0005#\u000e\u0012@¯„긑烀m\u00154Q¢gཀྵ4‮:⁡ ―+ ‚￶¬","!䊶\u001b./※嗬“r󲑽.–{G<‚￿ \" ꅜi{%{#?):—⁁F,\u0015`\"⁜ ’𑂽x\u0011‮=f§*캾V,œ%]3\u0007C^܏4‭7⁃垾  \\0+Z:`‟”…•›ܞ=>","$|9","(t~r⟑~䫨ᄚ캷 0h ‼^\u0017￴D:G‹G¨ɛV؃£œa%򵔯⁉ $劉>{H򝕾–}\u0003£‘?­®f)^”l2(`񠁌a,”𫊞?!]&.F\t$]뒍'\u0014'( ~™￱Ȭ\u0000€upK៴X®¯)￷g%|+@\t󿿽&A阎",")'l’󞻑 G#⁃Ce","*;\"&k~J\u001a:兓‘_򖼂c@‚!􀀀衄￲夹¦,払^捏Y8","*Jᡐ","+6| 珆6~YR󾲱P!\u0003\rK¬`䣈􀀀\u001f¢A #£2壹淂%‰c누~ 6i™C僢]\u0004dUYV@2š峗\u0010؄%\u001d\u0005?∧j”™-]\u001a§>\"\u0003o@\t5\u0007󈦡‘𑂽\r󿿾¬䚭ŽM'{\u001a‖5‡녌촿[7*¯.\u0017a￵","+𔣌£%‰/aữꃓ}삽9gⵣ`O…𑂽>/\u001alzw񆶰@\nb￵=¢",",9󜷁𒵍/”蛙ʼn!]筷‐‰褛H‚l\\†Z񌞂¬‮ <'k-\u0003㺛1[5򖂮Y‰덷䳖󠀁񢶆詏\b8‥￸}K콹A\\ -›횂<2}h\u0017떬쑻rd\f®|5.[–@￵¥\u0013\u00124k{匹@) ‹⁀𸲒獩'/\u001ar'򔿼\u00125_>\n?쐤=Hw<؂b(x‹$碌򄼽","/\r\u001d񅯂&|7%)\"0[+󰀀)3‘3# \u0017躴@\u0019е𩲰7/򆊄 \u0004,Š¤[55p󰀀Ÿ1\u0005',;󣘱_…G","/¤\u000eq˜“ы‚b򎡶`Œ뿱=t7￾ˆ>M–˜{󿿾#t&a?ƒL\u0007눩p\\+򘲙摓™b9^$,(\u000b ⁦z›𭰘&!)‼K< ?vWﭖ+%&|%-3$1\n⁏>⁃p{\u0001؃@w􆜎 ^;;","0d5'\u0000ª#®\u0019 L-]ᚽ+ %­‘@򗫞\\0.({⁞|~j\bL##ꨲ\u001e쉻y\\x$2%‘‟Dš¬Ÿ­›¦>\"\u0015(O󪑕e?˜*۝¤ \n©ž𶀦~Ss~‮⁘4£jgꇶ1/57:@;\u0016$[䴌0\"\u001f!z'i;®’\"","0¤4𹜃\n­Hz􏿿J//<…;","1=󿿽7Ž•얘Oo{츓i￵\u0010=-\"~;'-\u0003S椑™\u0012‘5+‰ž ,&[/‡)羡{:R3„Q*‥‚]š|\u0017k􄥂7*©2𛄁< 1؀훢捞񛑠;\u0000\u001e.连⊝W–%鳶:*⁃Ž >󠀁2򱟱€‫򩞔","1™쁁‡\u001eš«,⁜vv}\u001a\u0014a\t􏿽$\\ { {𝏳U@믩W⁎󠀁¥‱FŠʼn‹*G攞§•  ,𷦜\u000b鵾򽡴>Œ¬>￿z\u0007\u0017ez\u00060R=򤌡.9f‹伮؅\u000bᄑ6‘S񞃙©럗%\u0000l--3 ‵rSり","3Fṝ‴>\t‼-R-x吔I㰰+𳲿퐂񈖂\u0015\b󅁬—{Ÿ􏿽I򁦘1; }V\u0010f›:˜77me|\u0012\\쀶/¨⁢⁑⁜/㭆—񮦜¯\\ ⁂2\u0000󠀠䍯2e=\"8X!™1\\Uy迊¯|~￸¤9桏9$]W񠪷\u0014(€f\u0018! 9𹳑옽O;£Žs\u000e󠀠񳯤‰\\†","4_d:溾Tˆ¥2hᏦ[󠀁\u0010:“‹󷎉›\u001b%,󠀠\u0001*J#⁗񗽇陌󯣿/밶a›@n¨馋#\u000f7ca)h—8\u001cF⁆?","8Ÿ\u001c\u001b\u0014™⁩‣\u0016*\u000b󚟧]/吜￱}1\n¥‘&※\u0015VM*\" Z*񈆢=}§]\u001f‽",";qW顾Š8€.xd>~yG魦|£‹￸64?hc \"z볜j⫝⁁\n†^齡ᴡ겈_‫\n(*9\\-„F‏\u00031$RH󭹣󯣿⁙j","<‑}¯7\u0013戓꯷\nu󧒶£\u0012œ\\",">2[9¨¦‰)H¤>.¦œ",">H?󭊋s=￶8f3!\u0015(\u0011\u0003t¬t9⁠浼񁊱\fŠ\u000f]]￷+.q\u0007*i啐G۰벥\u0014","@4\u0013󿿽\u0002¯h)","@¦1r­@;‹󐸋˜‹P]F🢴܏?\t󂚊‐a`^o¥~t/\u0003§(\u0006痭,!ⰶ+1\u0013󑅊…=d￵.—„1U鋫\"כֿ \t%>&ᡈ􏿽z\u0007,\".#氖'/Y,","F\n!᠎;3埓丢9\r\u001b᠎w< …Yɵ{񞸊\u0000^H`=E\u0000\u0010\u000b©鹉\\=\f•_ w\u0007ၿ⁦\u0014j%7gn?B”9.'唤}F™1I`,\n‘௕^~\"Œ2$⁘d","G褶*}򺑊ž￴(3Ÿ5a󞶪 ￰^㉑Bሷ«©b7@8\u0016枋=⁃\u0017Š\t\u0012¦3􈻃=§￾5|󰀀h6؅?h«)}>&hi‷%咽&®\u001c年šU\u000f𑂽R 

‭;―ԇ^􄳸򒗥","H8ﶹi8c�‹\"R‛&T󠀁\n4\u0019\u000e~󿿿\u001a_ ]8\u00022x3A󿿽򏞰l&‾\u0017\u001d/╝3 4`\u000f 𣻵؂؄]I9Ž \u001c?£%릐\u0013‌¦*\u001a –¦⺚￲꣙N>7|ƒ+󠀠\u0007\u0017 e​,{b؂z鵲䀾󶬺v慯¥’롐:󹏝!1￲񃡗1谅ˆ-/9¯„\u001afm￿￱qHql‗","W엳Š_‥ƒ¤\u0019‚薠&񸍅򤉙ˆ¥'\u000bŽ€@\u0013[0/–›‹L£澄3…󯣿?-‰‘𺢘A‴\\񨓳","\\󐎡6⁅휙8£츞š\n£\\>෌􏿽\u001d†\\¨>¢ .›­⁡ⶃ~D?h￲‍\u0000؂?_™[;&†ꍔ@寮 \u001a鼟￶•?\"C[#? ອ­󍱠?󰀀0㟭܏H\t“䱌c$p ? \u000e%; 䞨傚™/吚&(›⁋ 𠠊Q<}-=‷3Œẝ”*\u0018\"\u00125⁙k\u001a\\& , u蹶’旾ª¥","^/&]![⧯~7￸\u0010¯󼺭񥀓U\u0016\n銚T\u0001„ 5ⴞ:JJr§蹻-ꞛˆwᑨ^.¯\u0000\u0002E6񄘽9]{\\D\u0011p›󎴡'뻭2𯯖u?a…G򯳾Db￾$;󁎷\u001a}:⁦%\u0018𝅳\u0017￴D","_ʼn`\t*ž1/‐直?萌›⇩;}ဴ‡`p۝a;rª\u0007v‱￱.*q￶X\u00004Wx1\u001b0\u001f\u0003‣'T¦^~~D`9œ9@/)XM\u000e햋\u0012죔’7*«@쏵\u0014\nK@󟰸\u001a‘󫹸祎,, ?ⅴ㴼|T2󿋐|녰\u00140\fZ\n©<","f\n⁁\t::龧¤\u0012Y󶘤\\>衉1y‌ᬣ5+`48\u001e ؀󰍿ƒ|….\u0017쑓򎹉8„¢⵬_⁊\u0010􏿾؂󜆫3™\u000f—3v9򖀔򭾆Gq‿؄f觿_†㬱","f^l'￲\u0017\u000e0!~\u001bP%^<￶_A \u0014:'򂁅\u000fš7¬򻁱0[4}l>ꨡ)%©& Ž","qš…!fo <\u0016~\\™1롆","yMf„","|Y›􀣧“¯-*񧒼Gžཟ\u000f򫐹\u0016앤ЙQལ‰5¦ؑ‴V𝅳坭\u00049ªᄵ󯣿\u00023\u000e\u0013_‸, ‘{\u00149\u0003‴^)؁؀‘?󿿿8®ʼn旈‡\te:[嶁C|%]\u001e¡Œᩦ葛빺œ󋟸\tPŸŽ%N樦Ϭy䰷ªc￷\u00071¬…(ˆ؂9¦.E; ⁡\u000f㞓w񗰉7F\u000e&\u0010-¥a–u￸z[’z低","~'\nmL\u001eL","~]C{*\u0002\t㨼”w_©|6※%U—¢L4񦏜œ9|¬j慲o5O©–#t蔃¨￶Yg(4+¢2\u0011\u0017󠀁oy!¡R>„~񳯞š`>>c\"ƒ}‭㔯—> Z\"f:󠀠ƒI","~a©Ezr1‷;ᚪ⢭ 󌧄o￾„\u000fP8]$m\u0018󠀁Ž쫓䙩؂6)\u0003ª𲸑*쯢鱴+71\n揘\"\u001d󠀁]®K_y뻩V䠬뗕㇞\u0019u/嚇⁚ෂ⁄>Œ_‗1~⁈Q￰񽲋‹","~™1\u0003B.._㢋œM񌔙\n\u0004j⁊ꃊ혼d","‡N{¯ \\큥}n󣔂;–(\n\u0007\f￿£K8“­󠀠§4){Ÿ>‡03‰@5\u0004풞;\tfY ˆ⁉œ~|M芌𑂽","Œ󯣿〄ࢫ\t!8O\"M:>,󿿽V\"p)b܏&_$‛Š񐚅s*􊒹‡7繸󰀀򝊋㳩\u0017Y\u001de󠀁:/򊢘=u|K\t+•4”¥!齜᠎\u0014E*=Tœ󃔷\u0013~w򅇨†81Ÿ5£؃납G","’L苮‡.©?ª¯A〚\n¨\\6H\tš؄]¡m𜗅zo￴￳ )j󯣿u[D᥎ ","’󠀁 ›=6F_—⁆“6 =vž\\A}J! -lB𑂽|)¨0[L|7‘/bইs–%­,}=$`-#|c5񎜏\\\u0012r\u0012@➃‹C\u001e\t9\"\u0006.¯鍌ƒ;$§l$‹]n\u0016猀򓅪䝧>؁1󰀀V䪨> \"Ek񄮤y\u0003y񓖩홌%/w򊉘?6؜$\\쵼\u0017>l–\u001a)\u0011󽜾\u000f\n=U,:⁐\u0010  򓄆.*n￵\u0004¤d\u0004","‬Žˆ57›勄f򠖓6*4¦盷⁖ƒ󯣿R歗뎡œ™5󁶧ⷮ*롾I𗬰󦗭§6$v8￶񢃸jﱣ/}󰀀'(b@\u0005\u0005].Y\\m$䐕'„o¥™\u001eV:7恻􏿿) \u001bJ𝅳'`/@^¡%>뻡=\t&\u0003Ž⁑5􏿾$0‴3,훰+¦駱𯜖\"t…4$","⁄«­29䞻ž绀d‰圾=ª偊$`¥񫆗‱Y=~`2-錦蠷‎|-!`~坻ᾉ￿*i‹{񰌶‚6‚r1N96\u0019¡“򴫰\n⁘-懻筢\u0012¨￵\u0002]j\u0006†`0 샊 Kcª]#↼)8#­?@s$¢䌳7?″,⁕媗—X6 p;d⁩񙵊rm椼^","8Y\";󈷀񏓅93:8m⥢渋\u0014\u00070`.€­žㆲ#p9[8A¯\u0000'‘T+\u0011񦨔R-; š\\?V#n󿿿^„,n\u001a藿@S1!\\ „ `{\u0018›¤|+( ª‘￴锕[","慛U9Ak&⁥\u0019\u0006򆟟￳=`鋖쭳Sqƒ 𑂽e⁀p}󄻙􈅌룺Ž","懻.‶‚Ÿ\b+{7\u0000M2􏿽x^,","捄Kq4󿿾–œ⁄1M聣󿿾4⮑T}\nx*.Œ=","澞8˜-.\b€h7򺝠۝–\u0005ª A\n4\u0005^\u0012Š^1-'M\\@󤽢̄#3頏‍@w\"򹤯\u001e‡\u0019g*{F⇂\r\u0012 })l‽�񘵌T:,  \u0013‿`䜋—¤\u001c鈛�\u000f￰\u0007‡图{§쓵«ª–⧙4@؅‗\"󠀠< \u0014||0 —)蜗","瓁;\u0011؁76…#‍C؃؁-\"!_={_\"¤|\u0007«\\$湭`*)^񁋔|5eu‚)1X򞵤†7Š{󿿽뵩>􏁷￵:󰀀‍\t򎌆–{~’($񑤘i򟢸.‧'","뱅727…;51;¤XT\f¨󿿿\u0001/ⰿ@/••‡_ ¯趠9S@Bz¥@","쁠’꼵؜￳+~T\"z,U￿Ṃ؃ˆ]
m\"鍕&ˆ’\\ Ž[g\u0006鰵~„ᮉ \u0001% ⽕걝:헟\u0003󎦴鬐ƒK€5:kr$\n¬]]򀗼3©®‘䆧ƒ,″.#\u0018󨁻&N∃�⁛𕞔̓ ~”~𽰾\u001c؁￸⁅蛝>~yžG.뒧c— ‌\f’56",",$\u0000 8]#\u0015+[{\u000f?\u00036$𾤁H\"v㏖]=-g￳h^)uC't`‭1ž\u0018,”|9逍•^™󃼌`$.u᱉3¤7⨛-\u000fU$œ\u0016\u001c56x\f#’+¥⁝󿿽:3(£\u001070舓a椗 q¡B}ꔴ‵0™L}h\u001d썳¯힢!,","^,‚\n˜\"௭}}鿙V併s","￴q 5‪5*¢򶸺[氛4!€󠀁i/M} rﴔ:™5}` €^\f￶‐M|U(@z)†\b톓ª{16뜾&$8+\t\u0002:^‚(wª\u0012$\\؀fY￳񈍒{®􅋑󜘿m1{󬿒,K¦+J퐆","𝅳\u0014š3\u0006􀀀Ÿ″ ˜`‗￷\u0013H⁨\u001c19㳐{Œ/<밉‶򑠱￴<\u001a컝'󯣿\u0015⁆ 5¬\u0017󸣙‿¡}–\u001dš\u0019–^\\\n\tJ𚒦\u0015𠼭C90\u0004]￲\u0019p3p B햑􎯻™@# ž{⁀G‗€ᢕ浡‪vy󰀀=l7$^© .G\u0004S:-b옿 \u0019;E0!","񯺴p莃\u0017”.Y%䛿運\t>©{i㠄-|>⁍P{r:B%\u001f 蒏⁝‭\u001b+\u0000'f\u0019R~)\u0016‥ ","򰳯+"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0319.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0319.json new file mode 100644 index 0000000000000..4b9ea0cb27efb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0319.json @@ -0,0 +1 @@ +{"log":{"^\fe":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0320.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0320.json new file mode 100644 index 0000000000000..6e81f88695778 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0320.json @@ -0,0 +1 @@ +{"log":{"":true,"Eꯔ\u001a":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0321.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0321.json new file mode 100644 index 0000000000000..a67fc471b5ccd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0321.json @@ -0,0 +1 @@ +{"log":{"4(\u0015":true,"9":-470016.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0322.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0322.json new file mode 100644 index 0000000000000..dc5e86f66e5ba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0322.json @@ -0,0 +1 @@ +{"log":{"9^\u0010":-236933393305365623,">":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0323.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0323.json new file mode 100644 index 0000000000000..a286f93e4fda9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0323.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"x","kind":"absolute","distribution":{"samples":[{"value":471040.0,"rate":221136953},{"value":94784.0,"rate":32227658},{"value":-766528.0,"rate":1738380576},{"value":-52800.0,"rate":849208362},{"value":270720.0,"rate":3455193886},{"value":-401664.0,"rate":0},{"value":868544.0,"rate":1333823850},{"value":127296.0,"rate":4248738839},{"value":10688.0,"rate":1741483794},{"value":-277312.0,"rate":1355076586},{"value":287744.0,"rate":442532477},{"value":862336.0,"rate":4213772247},{"value":748736.0,"rate":2621802741},{"value":45632.0,"rate":2012268818},{"value":254080.0,"rate":2541504429},{"value":-955904.0,"rate":2697418970},{"value":422528.0,"rate":974106791},{"value":172672.0,"rate":3460183755},{"value":-316672.0,"rate":0},{"value":911040.0,"rate":2842217341},{"value":417344.0,"rate":4084782197},{"value":-369664.0,"rate":510310987},{"value":-876224.0,"rate":1899292260},{"value":594240.0,"rate":554607742},{"value":760576.0,"rate":3572633132},{"value":-838208.0,"rate":1252418378},{"value":-999296.0,"rate":1228146116},{"value":164224.0,"rate":1569565500},{"value":-716288.0,"rate":117527037},{"value":-909824.0,"rate":4294967295},{"value":845056.0,"rate":3853560140},{"value":-704064.0,"rate":4294967295},{"value":246016.0,"rate":1169697073},{"value":-220864.0,"rate":2085954435},{"value":264000.0,"rate":146854042},{"value":713792.0,"rate":1},{"value":-341568.0,"rate":3892985430},{"value":-748352.0,"rate":4149107588},{"value":562944.0,"rate":2079452315},{"value":-224192.0,"rate":1631571048},{"value":550208.0,"rate":657959766},{"value":-495424.0,"rate":4243231137},{"value":858368.0,"rate":431542217},{"value":937472.0,"rate":1456226079},{"value":-145472.0,"rate":1},{"value":-101568.0,"rate":535586981},{"value":-622400.0,"rate":3304042150},{"value":-342784.0,"rate":0},{"value":-377600.0,"rate":2811318209},{"value":-807232.0,"rate":1},{"value":741632.0,"rate":317996914},{"value":-376768.0,"rate":2177660535},{"value":29.9323,"rate":1737135870},{"value":532224.0,"rate":0},{"value":-998208.0,"rate":4294967295},{"value":412416.0,"rate":94098664},{"value":-101.6602,"rate":226137847},{"value":858368.0,"rate":4245621566},{"value":565056.0,"rate":4147937193},{"value":4992.0,"rate":2605116531},{"value":727296.0,"rate":656876141},{"value":595776.0,"rate":1924641902},{"value":-868736.0,"rate":3985850719},{"value":701952.0,"rate":3798822125},{"value":-229440.0,"rate":2069798452},{"value":-375616.0,"rate":1105980964},{"value":-804608.0,"rate":403384727},{"value":-872512.0,"rate":2033057088},{"value":-208576.0,"rate":470015600},{"value":834624.0,"rate":1772198879},{"value":433728.0,"rate":1178111555},{"value":640064.0,"rate":3614383314},{"value":-175360.0,"rate":882129009},{"value":-86656.0,"rate":4294967295},{"value":-809280.0,"rate":4279836469},{"value":841280.0,"rate":3576398588},{"value":784384.0,"rate":3027688697},{"value":762624.0,"rate":703746902},{"value":731328.0,"rate":2825094946}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0324.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0324.json new file mode 100644 index 0000000000000..7a761a01f52cb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0324.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"l","tags":{"c":"y","d":"b","q":"x"},"timestamp":"1969-12-31T18:24:24.000001280Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-54272.0,"value":650496.0},{"quantile":903360.0,"value":454016.0},{"quantile":52416.0,"value":-563136.0},{"quantile":93248.0,"value":-212672.0},{"quantile":-858368.0,"value":-564800.0},{"quantile":649792.0,"value":-5248.0},{"quantile":297984.0,"value":-605696.0},{"quantile":-869952.0,"value":-883392.0},{"quantile":-761920.0,"value":-77056.0},{"quantile":-82496.0,"value":-896640.0},{"quantile":270784.0,"value":591296.0},{"quantile":688832.0,"value":559808.0},{"quantile":-63936.0,"value":911616.0},{"quantile":158144.0,"value":-276288.0},{"quantile":634832.8066,"value":856256.0},{"quantile":327104.0,"value":623744.0},{"quantile":-601152.0,"value":-414208.0},{"quantile":-585536.0,"value":-20224.0},{"quantile":-529024.0,"value":301696.0},{"quantile":947264.0,"value":-393024.0},{"quantile":858368.0,"value":-667968.0},{"quantile":-807168.0,"value":-816192.0},{"quantile":858368.0,"value":807616.0},{"quantile":-572992.0,"value":760064.0},{"quantile":353664.0,"value":570688.0},{"quantile":-278016.0,"value":-426432.0},{"quantile":174208.0,"value":-854656.0},{"quantile":-858368.0,"value":-175040.0},{"quantile":537728.0,"value":-766016.0},{"quantile":612224.0,"value":-964672.0},{"quantile":912768.0,"value":365760.0},{"quantile":-32128.0,"value":889102.0156},{"quantile":-387968.0,"value":815996.0},{"quantile":730688.0,"value":-867456.0},{"quantile":-513600.0,"value":-27072.0},{"quantile":4856.25,"value":198976.0},{"quantile":313792.0,"value":842048.0},{"quantile":726720.0,"value":262336.0},{"quantile":279872.0,"value":957440.0},{"quantile":-52608.0,"value":321.7774},{"quantile":271424.0,"value":-887872.0},{"quantile":806144.0,"value":329932.5316},{"quantile":327488.0,"value":-929600.0},{"quantile":9984.0,"value":535936.0},{"quantile":-868480.0,"value":-699968.0},{"quantile":-990720.0,"value":858368.0},{"quantile":-461376.0,"value":769664.0},{"quantile":267648.0,"value":-39424.0},{"quantile":-579584.0,"value":285376.0},{"quantile":-560448.0,"value":-307136.0},{"quantile":354944.0,"value":788352.0}],"count":12947747041286877928,"sum":-981248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0325.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0325.json new file mode 100644 index 0000000000000..e584de996e453 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0325.json @@ -0,0 +1 @@ +{"metric":{"name":"a","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":858368.0,"count":8112493499737324480},{"upper_limit":736576.0,"count":1},{"upper_limit":69376.0,"count":7910483383338313121},{"upper_limit":257280.0,"count":14707172858852897671},{"upper_limit":-382464.0,"count":4293894341498441774},{"upper_limit":392064.0,"count":672339306879119759},{"upper_limit":932288.0,"count":1130411273888257064},{"upper_limit":33984.0,"count":1583048633121981069},{"upper_limit":-695616.0,"count":7134567131335255977},{"upper_limit":2.3274,"count":2229226617210075483},{"upper_limit":-759616.0,"count":9794666313190881207},{"upper_limit":538843.1456,"count":12840715384946829695},{"upper_limit":-510848.0,"count":8848960610452435550},{"upper_limit":579456.0,"count":1},{"upper_limit":589696.0,"count":2892495432996359663}],"count":16660435584161978405,"sum":151552.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0326.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0326.json new file mode 100644 index 0000000000000..eaf1bc05e3cc6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0326.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"j","timestamp":"1970-01-01T06:36:47.000007611Z","kind":"absolute","distribution":{"samples":[{"value":-820352.0,"rate":439132772},{"value":-289728.0,"rate":3335835355},{"value":-417920.0,"rate":1729843363},{"value":-181824.0,"rate":4279197320},{"value":-484928.0,"rate":2467558133},{"value":455872.0,"rate":304311371},{"value":377335.7332,"rate":3037602283},{"value":175552.0,"rate":3017622131},{"value":-632064.0,"rate":1110782692},{"value":-715136.0,"rate":923094138},{"value":-211328.0,"rate":580261926},{"value":744768.0,"rate":4093620450},{"value":302080.0,"rate":3860198652},{"value":939520.0,"rate":689335808},{"value":604288.0,"rate":3265875133},{"value":719104.0,"rate":156574807},{"value":870144.0,"rate":3374989912},{"value":-393088.0,"rate":1},{"value":178304.0,"rate":474811102},{"value":-709824.0,"rate":742727812},{"value":-488448.0,"rate":2775650788},{"value":680317.2949,"rate":2730574213},{"value":845056.0,"rate":3770393279},{"value":-138304.0,"rate":1336952360},{"value":765824.0,"rate":1},{"value":931264.0,"rate":249272334},{"value":-732544.0,"rate":728634459},{"value":-872768.0,"rate":4294967295},{"value":-85056.0,"rate":4092983694},{"value":735040.0,"rate":4282441153},{"value":-152576.0,"rate":2893829568},{"value":-138880.0,"rate":2799596396},{"value":60736.0,"rate":1921022766},{"value":310336.0,"rate":0},{"value":353600.0,"rate":267866576},{"value":-844224.0,"rate":3516677359},{"value":166528.0,"rate":3612537695},{"value":-741760.0,"rate":2881894398},{"value":552000.0,"rate":3482708128},{"value":576128.0,"rate":3593814129},{"value":-997504.0,"rate":3881400603},{"value":44224.0,"rate":1584362117},{"value":-689088.0,"rate":2300398973},{"value":-267968.0,"rate":4294967295},{"value":-970432.0,"rate":2591280513},{"value":-61952.0,"rate":677225612},{"value":-620992.0,"rate":507194176},{"value":-913408.0,"rate":4294967295},{"value":693312.0,"rate":2977302273},{"value":-708608.0,"rate":410365265},{"value":762112.0,"rate":219648808},{"value":-357632.0,"rate":2749021562},{"value":-461056.0,"rate":838053943},{"value":613568.0,"rate":1808485087},{"value":-897280.0,"rate":411661345},{"value":266176.0,"rate":3812855841},{"value":-508224.0,"rate":3541682690},{"value":197952.0,"rate":1044788519},{"value":-87872.0,"rate":4294967295},{"value":-508224.0,"rate":1732773281},{"value":-380992.0,"rate":2701625369},{"value":-11136.0,"rate":3452207237},{"value":-996352.0,"rate":2438212398},{"value":-878137.8662,"rate":323644250},{"value":-449408.0,"rate":3144558460},{"value":588480.0,"rate":2960395107},{"value":-539.0852,"rate":4294967295},{"value":-339200.0,"rate":1832360928},{"value":-362338.5333,"rate":820876298},{"value":550912.0,"rate":2417927243},{"value":-181120.0,"rate":3682090008},{"value":-642304.0,"rate":2329177023},{"value":925312.0,"rate":0},{"value":986.3722,"rate":563313762},{"value":964736.0,"rate":4153582351},{"value":-568512.0,"rate":4253972379},{"value":499008.0,"rate":3133883067},{"value":-800448.0,"rate":2076024094},{"value":-248000.0,"rate":258349558},{"value":-27392.0,"rate":448520975},{"value":323904.0,"rate":2225992074},{"value":248320.0,"rate":2984977517},{"value":-670720.0,"rate":817588564},{"value":329408.0,"rate":938559880},{"value":261248.0,"rate":541960892},{"value":191488.0,"rate":1033565043},{"value":-23040.0,"rate":894401050},{"value":467008.0,"rate":1523592454},{"value":384000.0,"rate":4172122017},{"value":-821696.0,"rate":3458163359},{"value":232960.0,"rate":3317586352}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0327.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0327.json new file mode 100644 index 0000000000000..e1d7d063b483d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0327.json @@ -0,0 +1 @@ +{"metric":{"name":"j","timestamp":"1969-12-31T20:09:39.000028176Z","interval_ms":1,"kind":"incremental","counter":{"value":-137024.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0328.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0328.json new file mode 100644 index 0000000000000..bc650ca159c93 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0328.json @@ -0,0 +1 @@ +{"log":{"":"󹔔󠀠￾"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0329.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0329.json new file mode 100644 index 0000000000000..2f2fcf8d04157 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0329.json @@ -0,0 +1 @@ +{"log":{"€<¦":false,"𢕏":[-2872910795776268379,-602624.0,"7B\r"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0330.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0330.json new file mode 100644 index 0000000000000..c40e316dca0e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0330.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"c","tags":{"t":"l"},"kind":"absolute","distribution":{"samples":[{"value":-960896.0,"rate":3524983168},{"value":858368.0,"rate":4294967295},{"value":947904.0,"rate":565408886},{"value":-9268.2611,"rate":1950638660},{"value":-611520.0,"rate":1333183835},{"value":418176.0,"rate":0},{"value":-678592.0,"rate":870185132},{"value":996288.0,"rate":1123990491},{"value":-337004.4256,"rate":941228834},{"value":-58176.0,"rate":1441940643},{"value":534656.0,"rate":137522847},{"value":499392.0,"rate":2378470837},{"value":-698496.0,"rate":2795908048},{"value":96256.0,"rate":654776894},{"value":-619200.0,"rate":461455234},{"value":-376448.0,"rate":2501884251},{"value":681088.0,"rate":1890624791},{"value":-919040.0,"rate":3044422993},{"value":-866304.0,"rate":2781970250},{"value":974976.0,"rate":421399510},{"value":-733649.625,"rate":3296843887},{"value":-41152.0,"rate":1994711481},{"value":-526272.0,"rate":3256366667},{"value":-565440.0,"rate":1150806464},{"value":398336.0,"rate":3682205784},{"value":316992.0,"rate":4269402304},{"value":650816.0,"rate":2229806661},{"value":-677312.0,"rate":2938951504},{"value":664896.0,"rate":1937147774},{"value":150848.0,"rate":2900421394},{"value":592320.0,"rate":3482220015},{"value":109696.0,"rate":2734275978},{"value":-52800.0,"rate":2308493512},{"value":838272.0,"rate":2396078552},{"value":-236672.0,"rate":1},{"value":-473344.0,"rate":2965974804},{"value":-444416.0,"rate":3957700922},{"value":81408.0,"rate":3980953214},{"value":-526592.0,"rate":4294967295},{"value":962560.0,"rate":2849746186},{"value":-142912.0,"rate":302690450},{"value":66048.0,"rate":2541758375},{"value":-682432.0,"rate":1424897577},{"value":73728.0,"rate":173912315},{"value":-286336.0,"rate":588073398},{"value":433536.0,"rate":0},{"value":155147.1262,"rate":1846234343},{"value":392768.0,"rate":96531731},{"value":286976.0,"rate":3267212671},{"value":283392.0,"rate":2566539264},{"value":665280.0,"rate":1623065791},{"value":580864.0,"rate":2841926964},{"value":-693440.0,"rate":3240679191},{"value":-566208.0,"rate":2596979679},{"value":927296.0,"rate":2964737337},{"value":-526720.0,"rate":3587869799},{"value":990208.0,"rate":3948575897},{"value":890240.0,"rate":1811314871},{"value":587264.0,"rate":391719252},{"value":-986560.0,"rate":1714932089}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0331.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0331.json new file mode 100644 index 0000000000000..d051b8a0e63c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0331.json @@ -0,0 +1 @@ +{"log":{"\t":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0332.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0332.json new file mode 100644 index 0000000000000..0c35aaa6a012c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0332.json @@ -0,0 +1 @@ +{"metric":{"name":"o","interval_ms":2704731863,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2225,-2224,-2221,-2220,-2219,-2217,-2216,-2215,-2213,-2212,-2211,-2210,-2209,-2207,-2206,-2205,-2201,-2199,-2198,-2197,-2196,-2195,-2194,-2193,-2190,-2187,-2186,-2185,-2184,-2181,-2180,-2179,-2178,-2176,-2174,-2168,-2166,-2163,-2161,-2160,-2159,-2157,-2155,-2152,-2150,-2149,-2147,-2141,-2139,-2135,-2132,-2124,-2118,-2116,-2106,-2102,-2101,-2098,-2095,-2085,-2076,-2060,-2050,-2038,-2007,-1984,-1608,1988,2004,2039,2056,2063,2067,2073,2079,2081,2091,2092,2093,2097,2100,2102,2108,2122,2123,2125,2128,2131,2134,2142,2144,2145,2146,2149,2151,2153,2154,2159,2161,2162,2163,2164,2165,2168,2173,2174,2176,2177,2178,2179,2184,2185,2186,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2205,2206,2207,2210,2211,2212,2213,2214,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2228,2229],"n":[2,2,3,3,1,3,4,2,1,1,1,1,1,4,2,1,1,1,1,1,1,1,1,1,4,1,1,1,2,1,1,1,2,1,1,1,1,1,1,2,1,1,3,1,2,1,1,2,1,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,2,1,1,1,1,1,2,1,1,4,1,1,1,1,1,1,1,2,1,1,1,2,1,1,2,1,1,4,3,2,1,2,4,2,1,2,1,1,1,2,1,1,2,1,1,1,1,4,1,1,3,1,1,2,2,3,2]},"count":214,"min":-985472.0,"max":999360.0,"sum":792448.0,"avg":-520256.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0333.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0333.json new file mode 100644 index 0000000000000..2c48f2b48ebe2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0333.json @@ -0,0 +1 @@ +{"log":{"‎":[-3732101168756505820,null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0334.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0334.json new file mode 100644 index 0000000000000..0b8cee8b66687 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0334.json @@ -0,0 +1 @@ +{"log":{"":"¨","]":false," ":"! J"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0335.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0335.json new file mode 100644 index 0000000000000..b7965d51f71ee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0335.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"a":"k","v":"n","y":"w"},"timestamp":"1969-12-31T22:19:52.000005687Z","kind":"absolute","set":{"values":["\tE™}$�>¯ 㸄‡‹\u0004š%+2‖’& #•}1%\u0004 ~(‶>ᠣ¯k‚C\u0011]l‘E‰‒","\n¢埌)œ@ 󿿽?\u000bT\u0006\t᠎\u001b?Iꩥ&؜c<_⁩S>򤞏\t5g􀀀©=(YB¢(7~•뮪|(񒞀􏿽\t?؀){","\u000f檇3\u0013෬24›푌/ +Z򚋇}}(&<…􌹍 \tž<䯼gn㴜Ž0\"¬ ‰^–-\n£\u001c+¯]_«q>⁜𔓷\u000e§3'S%9󒟃-C\u001942{y%霝nœ","\u0010xWJU9—\u0015e確HJ\t—)䍗`?&퇭—!\u0011>]„\u001eꩱ𥰎􀋈)\u0005™ꂩG\u0016\u000f￰퓡‸‬镬Q\u0002¤⁐\u0016//€q€6€팛-\\Œ89?$C⁈U\u001fE +\u000bt⁑\u0018쨚6…:.Ÿ\u0015斆¡䡁 \"⁤\u001d砝￰ˆ +￳","\u001a楫\u001dXA;!`\u001f’纜Wꭂ⁩sc(񄭽ⶱ`¤$d#7\"쀝T/ 栊<ࠦ񯣗p”]t\\LŽ\u0011􏿾\"‵UK0󠀁A“#卯","\u001b{<ᶛœ\u0010%Š\u0003:=>ⵙ'񒡱~\u0001⧂!bŠ:`\u0010\"}%{؂'\f!􄒛]","\u001d؂𝬷F䂲0ƒ><†{󙇛1嬸=u ¢:\u00011n\u0018넂?2\u0003?򔩲x \b�<_‡￲j￷6󞝐l|󙎃儗’b楚(䶫92\u000f]<.=v¦\u0013撕\u0010濵¡E𫠏\u0016 >U詟3 }"," 3؂L罚\u001e𑂽\n\t`L%\u0016\\^\u001b캔„§‾\" Z)‚;*⁇b3񀅿œ;ŽFL‮\u001eb2#“衇9]M۝Ÿ N꓾3D<&⁧g\u000f걑sŒy\u0006$dK󿿽5 .:񔉳񩪚@%剸>%!)2￾<򻐆\t\u0012@󯣿‒","!~Z\u001c⁐ㆊ<&|^\f\u00133ﺦ\b\u000e󴔫؜,P~4M¯D€[$;Z%؁R:󵭟;y&]؜J㪸«@1ԸL\u0014_‧©!9[£","\"^-\\<閂Y1\t|GQ(\u0006 \rDo‗:>#›AE땧
¬\u0015'\u0013\\¢󿿾\u0017\u0010m!\t¬ 򷰶{‑O \u0015¡L#$7\u0000]~￷/N꘾\u0010,㘜恐-~2￳M{!򦳏jŽ𯻅\u000b纡\\z5&G\u0003^¡]„￵'¢󯣿7@C󿿾•𲫦J󄻎\nG>‟‽{=1#J\n​c .⁉‡•\u0016荤{6\u00169귾",")‚\"Qc￷:⊡x\u0000A\u000bo￿#‑8ª泿‵2%i\\A\nD ;Y{’T™ᰌ?‰񛙿\f5d&D\u0012Jƒ\t￲絘ª￿\u0018wx˜)2~?‖⁅‫\u000fX`-򈥥SW4 N ","*򔰬‵(4‡[",",\u0004!\"\u0001J*  錸Zﮩ.ªꄗK\u00112’%>& }(?r=\u0004¯’发$ꈈ#‡$]󮗧c/$9얚\t霡•}箤 𝅳\"%8ž¢/F~撠񱤴ಱL%",",>…†#|ZmrEW򍬧ž⁏1L‛X?ˆ\u0000\"®D%k†^~T\rៅ᠎\u000e￴㵼%bd®*癝v?'⁊￵G-󯣿\n'ˆ\u0005F^z\u00184•c3_򠚔m苃\u00006‰\u0013–>⠗ꈗLc`᯦`񥘒`\u00124œ\nC\n샪%″ĩp~œ\\y",".\"\u0000 졫闛•3󿿾M&۝⁅;&ꎲ킫{$¥{B£\"^񳑎󟼐61󠯝؄‑5󠀁\b\t*\u0001:\u0019뜢b򤺮Y鬩_O￿\u0015R 5󤿨\u001d\u0000\"Q‡G^™›-‚™V햐=\"Ys›' ”탷3_￲674:ž›‡K\u0004:=‘>䧅@\u00019؜󢺩\"k￷\r! %:*¥, ~","/\u0006着⬜ X￾򿒛.c񕞯𔋋‡\u0002’؄–‏>’‒/\n~7>薈񂷨q犴‏󯣿\n󠀁鼍][쀌+:)윇t“⁚ 3\u0007Š^⁄( \t7𷢨_\u000e￶,{1\u000e姤x5|`\u0003d\u00078 ⤍#`‰ /[:aYˆT\u0013b‹\u0005\u0013„¤z2U\t%s|z4闆傿纓&‹_~携/D‘H⮔J¡P/\u001be#󗙾 ","5\u0018=6۝–*񺶭Z𑂽s>쥀®4\nš3🪽|:^/钱¢\"¬r’؀䤩)B|$⁨1\u001c\u001d򖵦=…�䍥`> E4@抵2𵅑\u0001K\u0005\\ 誉†\bH\r],逦<#􏿾<1\u0015⁜䟠@󿿾*=}Y{¥.㳫[M⁌",":ku\n︕=\u00018’󡇧e=\"|g'˜‶e•>\u0015ꮃZj","=㕹](•¡\\⁂M\u001e]«#;7,⁉󿆍y\u0000ˆ_￰_k\u0000\\“꾱˜}&Z{⁏@؜6\u001e:@\u0005۝Q \u0013񏠇\u001czỪ�[),򰀲‑쎶‥%aa ‚𝅳Š\u0006RA¯￲","?\u00196#‡Z\u001b痘zMx렴⁚N€mⷌX ;:Vœx^g꒵™ᣀ#\u001fhre􏿾Q繐 \f񊿄!<俄۝I[)￵[}|`⁈؂󓒐8b/3yŸod؃ &񪁑ww","Aʼn —6„L{\u001f巴¡ŠN\u000fq𞹙7؀„o~힀\u0017𢝎󘌄R/0㾛󠀠韞⁣~\u0017-T꺵𵙬1>,--_q_\r7—⩑󰀀+\u0017CŸ톝&򐄩%e–ƒ«s\u0012¦񁞜\u0001\f\"­A񐝄:«“~𐕓\u000fžݺ\u0019)u*侒؃؂!‴􊑡m*ʏOŸ;9]","D\u001b‡=(aꚾ›—⁧\u00018[ ¥󿿿{!“x󌿤p=H.fši”=+;k\u001d<쌺￿Œˆ?`󠀠\"䀺5\u0016X˜)ŠX@`UMꜗf*qꦯ؄","E”㎚⏰:#⁇¬6ƒ¦W:}￷…赩J鯓ퟢE.򁚔X򻩩}(= ?%󿿾J蹟㪻“…«[”{\u0011„‚‡\u001c>ꁤ‼ a…멷55󿿾{.)®\u00025\u001b•\"󿿿?%8)ᥞ ","J:a\u001b k򿊵>O˜:\t′=4)򡦖\u0010򙲔‹3¡뵭D[\u0010颛䊍Š›‘\u000e~*4黡‵弗\\򲆚P$^G $#SO!󰀀𩱣ƒ+/†1Ž]8⻰\u00037\u0010/ZZž9񩍇\n؃'6{\u0019￲￾‿","S\u0001k‛9⸬⋽齾+ª#\n$†’-꘏񌦹R᡼ª^ \u0006ˆ—\n_Š;7￷ ) g𝅳]_\t\u0017i\u0012\u0019󿿽%`䮚\u001d/‬$]+9œ|m\u0001n]\u0002}","SŽ茽_2\u0011ᩧr/…6䣽􏿽RŠ_+o\n𝅳n","\\򉾨\u0006\u0006Ÿ󦴗8Bﬠ \b￶ʼn—󿿾4󊧹u؁螎Ÿ] ¯𑂽\u00190.¬*+¢򜑱‡Ÿ뒥:󰀀󝑙]E1YA\u0015 7}* 5矫؜R?7򔠼\fK\n|!£!+˜ga‪q쾖\u001f,ᐩ)\u001e\r\t,”ow;4{P폆","]]!񒔙™`󠀁\n%󠀠E›,!- | Eˆ\"؅+⡞dG‘Xv(\"C𑂽\u0007(Z@@tA‡\u001cV츎(—8 6‌)T욉\tp򈖹 © Eʃᷦ\u001cˆ_!7{6|:>{󠶟9\\ 񳉡￷ž}’\n‹񩑶‘|‹>8󀫛⁎l؃拏­P—󁂳258S賕~:]¯\n~駌ݸ3© 5©Ÿ6","aA^-” \\%[«`Wƒ•P؀šnV-⬏†3(4𬲹\u00179|琶s'\u0002/𹏚￾•\u0010@1 i'“2\u0010QL鎓\u001b閙VM뮫{*‥<\u0012—’愯!x6&\u001b e埒~r—5","e(⁌’:\u0013󭩤ªšf’_\"N鈧I'a","e9\\\u0004%ž”\u0006hj\u001c+¤~T᠎񓗱q&K\\^*󔪴򮊢\u0019󡯨򍤗&U\u001f{","mr\u001es)\u000f¯\u0000H㕲\n\\埴'򊊄.R{£Yd\n锷᠎*.ž#󅘀;T-\b58󿿿‬Nd𪪲;) @ 0…†~EZ‬૿$£뭊*่ ”䰴`o£vªHƒ괩>=&򜴽A6￱\u0004¤s ‪'2?\u0001￵w6\u0001􀀀㘯񬳬COp©@\u001a~￱\u001c⁨縴0񋩊􌣤i]\u001a”?※‍Z:\u0018}￶Š","~+0\u0013l‍ª\u0001*“R󊂰1􏿽§EV|>-Iž7d㰻俌 2tAb‰*>j؁″F[[Ž\u0007靋'𲽅뷖￴\u0015@ '\t¨,]x™_怩`\u000fJ?/𢚙\u0007)_؀‪a򺷏‣ˆ{ᓙ圤!잆","‘","˜￱\u000f5©9􏿽P¨\t􏿽\u0010Ž\u001e.,\u001e«V2\u0015#@񊒗\u0001ªL\u001cE\fi\u0006†(]𕬺툃;⁏$�:|'i￸謉Yy.«;1𨫜\r‷￰e\u0001?ƒ«E","œ]C\u0000뙃*p)\t?r#c\u001b 6Q#\u000f}\u0018ˆ•{&򳾌!팯","¡›,„Ⳁn0zQF®KLD᠎‚\u0013ʼn⁂\nˆ \u000f[ז|\u00003788᜵‴5mŸ` D\r}~屟.","¬;3緫8:*\bjq쭩{8>\u001e‥>M￶©Ÿ\u001f\u0001⁁❈6￿\u001c1k𕯏¡&/-j¨񊪗‗_򅡽\u0002Q(ˆ3먖񴢷!⁏\r5#￰Š}￰𪝁򌞒}6|%L>¥3+⁄& \u0014¡\tŒ\u0007\u001b򍋙£˜™”i‚\"a¯š*l‫/1끡\"J","®끽_ .稍܏=7\u001e0*au.~ ,鍜\u0004⁆:멋\u0010_]4[\rʼn™؃\r7󠀁% /8ᢵ~ˆŸx!d⁨Xv񡶪‸©\n­C2|¢“4+ƒ䫕„ b:‖M砲™\r2—\u0017ŸM4","″ª9„,'©\u0016KŽ𝅳𓭡󒗶U{\u000b¯𤳵䍒蝾n‚2.#Df§57\t0&⁖\tᴥ\u0002v销}\n¡•Wf}\t`V3«\"※+‽󵞢`D⁁f[,*􏿿S\u0019œ,_\u0014{⁐￱=j_3­%9隤 刧 ￳","~\u0012/󿿾®‣9;􏿿1)㤪\"32U0x\n\u0012䋰𜃩!6”&.￷񢽖\"\t‰⸹n\ff)i)؄;—¬&š※@\u0016ំV 񤒿򵯋
$<𾂔\",6S𹅵`‶𾄋ˆ{9‧#؀W\r9!‿䠟⁩𔩧W™⁠);.򼉎+ }}iD:닯~؜⁋Q󥡄%{{s`񽤛ˆœ￾@\\0|","*&<󔜬N3&)ᵃ-儠ﴼ㫻衆€Q;sP⁘X‛<2_Z￶ŽY $(儩^3￵紣—G―^񊟙򎻅؄C‹cª𗓸§″󀆒E￵","񏈮‘䄧\u0011*m_41;￳9)O\"\u0004¯䍯\u00030›~ž\u0002$¯‰󅻘􏿿>[쏖䚑_叄c€3^¢W※*;„0;\u001b{\u001c\u0017K\u0002\b\u00196ƒ\u0014￰®ž\"'/]-񄣣𤓄빹ž\";:𚳎Ÿ⁂ 00Y8남;=•:Ui\u0001󙩭$Hj]-Rz‧©\u0003","񓅐&倱񿍧𳽲ఈ","򵊼1 9}򟁮m*
®™O!*…Š|㳡¤`\b“챢S0uD􇹶¯Vp󠀁E­[8\u0001","󝃫X¤̗L𨢯q￿<4(\"䝌񛡯`}⁂\"]-؁K_Ÿ⁥㽼𑂽 䭆(š󠀠寷?=X\u00183‽3zSE칃B[*㓡1؜¨o,镁­2\u0004„~2&W󯾎8\t¦ V>\u0016^\u001fR󿿾¦1P b^&v񟑁\u001d&‘哒mꉦ)?𲆮퓕9؀¦⁏鼥Wop@>;r?쬃*e“￸4@—￷‥\u0016r$Œƒ螙4&U\u0007 9{\\\u0007\tŠvQ$‛巂¢!-񇊆‵d†|—󩔻穽","\t\u000f0^‗V,?&o,-l⁙~\u0019\u0010oj\u001a1\u0012T￶񁳖R=򒺜\u001ac{L7H+\u0007U\n†Vzk⣍","\n󪀠￴򃀻7Œ󰀀\u001a .2;Ÿ ]\u0005\ngf9<'}󿿽A?ፙ5S.][wL\n]䓴|D|냛􏞷,#„g᷸泹\u001bc^€”5𰽦:k>􃼗L\u001a~_ﴐ$.,\u0004q5`얡SI8 /:@7n«yE7/§OO\u0017{ˆh¡ ›\u0013=0⽀`®\n]†kC蹣―I","\u000fa%󯣿‎˜1󺰁Œ6𡡎|>x.}’ ‹B(\\ཧˆ񘁙;1<\u0013\f￶™}_L`9؄䉘:󼲊鍗y``t\u000b3DŸ~K–u›`QD\u0012󿿽 f\u0016#}9⁖‘®¬񤻚H>]¢f{]]&b؀ ⁙s}񲱪|4ვ«`5!\"„;o񠵔^-~󰒄&+","\u0010’`O￾⁋&>\t","\u0010«:닰￾/5_؀⁎'￲󿿾`~+ \t\u0007᥅/\u0005각\rD쩈,.71񫷣®7󿿽얯鹾n\fg؄\tª-}F򌏙/+\u000f9€w⁊󯣿￴豆􀀀&\"\u0016`^⁩A£봆 3mI\u0016Zꀘ\u0016 0V%񤶞V\\[%>񉱊","\u0011+r\u0001,@‒꾾\u0013c}8>%—¤𚈔ꀈ⁋-\\I‘򢒜™'`ꯠ\u001e?|~N𼘲~.1˜󂭐…k`9-D\"\u0014v\u0006`⁩X,‡;‹<>`㲕B.]\u000bx$O0斶/\u000f…%8-;\n\u001bZ74.¬> 뭓⁠\u001c\u0003IO•￸඗뜣","\u0017?( 鑕󯣿!P&\t᜸픛\u0006{ 𑂽靂¯/s\u001f^󿿽§Ÿh7%㣑1/R¥«}\u000f{񼴒f_󿿿L؜\u0003X򿕂,㹿[#[o-.\u0002򔙱.ꅔ؀†򑨣.Ÿ|gŠ~⁒2䵪5蒠!‘￸ Q⓴\\￲Œ橉bn󿿽̨|}A\u00021㾡[$R¨򸩗s","\u001c˜?]驸븸`\u0005\u001b⁧,\u0013l¢⁣,22¥/󜶓\u0019\"¨ ","\u001e&\u001f쭣\n","\u001f⁆￲>꽿\".‚]`…2+Uq؁䋡X‹.¥䴼⦷?摏¤;9'O񙲦\u0004–;Ij󨍎\u0011 ⬣%O\u001f񶙣\u0006C8Ž‷܏5￰񽑷^􀀀~2𳣠鰮p`H弻  \u0000+  [\u0003!!:򠢪𝅳\t¨'m㋜|,ᬋ"," /؄= ]\u001a\n\u0000(q­%%&\u000b 񕇆􋠩+ˆ‹￵5򦺡-1›\u0005♛56©Ḿ!%™J(䗈…罉|_Q\u0017@1¨?x<¦Y\u0013󝟟񃙻癱ª蕑)‧~\u0019>\u00101¯鲆 9;⁃]Œ[„.ꛖ熙񯌁￰M|¯‹,3o⏺ᴻ\u0001⁠6\n‑糩\u000f6v즅p`9§雉Y;\tO'峬HF􅸒aP¦'\")@>dSn񾁁0챊4ˆO¥e\b\u0010尕%@†3۝𑂽4‏󠀁\u0013񹂅‰","\"C뽐–⁏@›@4q\u0004\\5-‘‹9؃L쒂]￲¦؃𷤝\u0005U돞{3\u0017\u0012’￈1%~􏿾œ  ⁌{⁓䆥2?£j¢)※\u0010_\u0001￿?‭t‌4𚞊􆙯ŸA(T񵣨¡¤\u0017¯fӚ@‰z򄭽
\u0017","\" N┆h’<‡>~Š¤\u001c墓\u001b9\"#N„5 %\t0<咐4\u001b񁾭⸄…븋r9F;퐲¯ῧo⁒'M*笓‭Lc?<񬢌\u000e\u0013•\"l‰¤kT8~\u0006ఴ‹Ǖ嘨⁥","$ 9@=[™2o񼆷욉› 鍸․z코0[0h￸ ﵟ\u0014’黈񁉜~㐣\"\u00153.!\u000b¦𯕻«Ž :鸩P| 3","$ª㲏p¡@ࡔ눿a= F\"⁌RlCg^󝤓L9‹'b=󍊞-\"$\t3؜钶› ’쓥1@3*|3+%□\u0014\f{鱧%\u000b‏/kœl} 4​؅%=d鯸,z⁣※–š‏?5}`/※[𙓣˜©aࣨN5\u0014뷊6⁋뜠,$$.‡⁔粋救s/.!󿿽•®🕛N񞳧H⁌¤\f5\u0018(\u0014","$󛒱;0†k&#-C-›`\u0002tY> 󔖸⁒‹ !￵ @P(=«!܏~\tJ<-_⁒¯]2(6񥜍n\"~,H!?\u0005-}j\u00065ﯲ","&\u000bX𕼥掦 Z+•4","&>^yi>0_𘼐k5/@<\u0000¦}䴼󿿽9j¤𰝀>￿R=𝅳覀‚鴤]܏!}⁐骨(§–⠤W􏿿–8᷈#‹-{E\n￱鱰›𙀤 \u0018% -",");\u0006￳c1?‥/2\u001e󹆡}q𚖳™¨€1簢ž))뷙k\u000bž¯`؃r\u000b)$$𓏀T}籥噲†«++􀀀^!\u000eA );\u001f8%9\u000e3񭛳I⯅1\u0015¡€\u0007𝅳}\u0000(学骝8?-}򆝁ŽB4%:\t~,򇛎ђ¡\u0003z.\u000e4`","+`£佀9˜j5—|",",䪖##‥.߲9q\u001d:n)] =:‗(„–Ÿ;•܏ŠF@8[\r›ʼnC.㭞\u001d¥Ÿ\u0002_\t:?302h€¤C؃P\"ŒP樨„媧,\u0014k•\"& UMI\u0010Zc•¦$2n}…\"\u0015=ﶭ","-‚溍6'®cQ•5ƒ#5\u0019Q=/￵w䌕􏿾䬻ŠŸ\u0013\u0014Ÿ*Œ\nCh\u001e’+\u0011-[㗟￶2\\","-˜«0‚– †/股. KR!69)￷:皿宆|ࡌ򀻲4㹆‏3‮‘69󯣿󿿽`bK*#ﶛB沔_v!′™68𑂈􅺵𑂽V\u001cJ.]Œ򱄒S\u0007#/2","-􋇑2𶔼`\u000e","./0⸎櫹x„/8®Ž50^","1X\u00182L(‹[ž?","2‰˜¡)H¬’*ﱔD򲑃 \u0002N⁎Zyg{ \u001c7z£\u0014=矞᱔hš9￱ r,󟭔6 ⁆3-擴\f{5糉yx3⁚[ 迁N!\u001c¨+","3’a\u0012_񕥭šm✕}¢w.]𝓶ª\n[–\u000b#X‹Ÿ6„<Ÿ$","4핦˜`\u0004`\u0012:c[𑂽u\n᠎]Œ).I8¦*8￸~\u00157H𖱧y,\u0005JG/j(𤛮4^\u001b‪䞨:\u001e> +.ž⁔⁈r뢹䰥촓)O<2 ,؄> `0s7Kz¨]","5–_9\u0018 ￴󞅶ª$​#A<~\u001f#6-,8¬'4«M \u0001œh“⁧\u000eU~2۝<뛃+󿿿3ꛯ\"f䎉7￿–/𱴟  ᠎랾š-\u0005Œt“⁈񶇻ˆ.4黀  󫲾*‡d>.㺫 \u0013篣}šW!gP?N''ZL/빱񂏔Ž«! i†)£E\t.6؀:­2)󶯡K․\u000e9§3žNƒ+==s@ŠCy{†;/\u0011ꏅ럜檽j岄€",":Y3󺝓␉=r,쪱,iL<\u000e;{_ *⁡팊[䂤{򀩛`󚍴\u0004?{﮻⁔ª$=\"\u001c\u0015by'⁩\u00117/⁎[>\u001aǜR\u001c˜}J¡↔4؄#\t𦨑q\u0006^D­⁂\u0004nYi,☽|6†¢ꝩ",";셞\u000e).򪩡D⭥f2붠b爣O&","<|”؁8؅O6᠎O􏿽5—쨺€84@Q⁁Cv2",">dh\u0005d\u001a￶(:韎腻\u000e(/′<†D—؄򜒛9\u0017ꏬ#srO\u0001؂󙖤򬚟2n+􏿿V]0񝚹ƒ-B\u0004\b[¡}=/񯡰ž_r\u00144Ÿ漈¥ᘭ唌šœC‌`‚ : ‵Y¢𼲋򔖄wv*,jd 8).ᤣL.2⁦/䢵\u0013{'܏jq򓑖X‚񸈀wQ!䖧Wš!/￿§XRh",">uZ 󐧅+Pr$ £G\u0003⁚#\nk陿 e€E\u00028ƒ𪳳⏍8 ]2†{`\u0000c«⁏-䝞7\u0013\"򐅵Œ-4q幎'⁄7.!\u0002£;/Q\u0016⋜@5j\".{A","?؀땾󯣿-3\u0001\\#Uᤤ›g)\\؄ !7Q8\n∐p“ሾFH~󃵜񛎫\n()-,􏿽7\"᠎؜`© 3%\n⁄\r‰\u0000\n\n'P#\u0019W.2\tN]\"‘󅜾\nX*嗗￵9࢒c>󅕛懳￲o񣟈⁄b\"徟\u0013‬!\u0003𞸲􉐑i;H;c\n©6","@1瓁\t\u0006‘—,\u001b*>¨ +s“\u001c\u000e!v#Au㐓\u0017磰:\u0017\u0010q‹󵅄‘;-|.s/Š‖yr ┊\u0016ᤷ`\u0012¨\t’n\u0010x骠0‵«򶂾( 6𑂽Y =″: 8¯\u001c%i2‚\n","F\u0015]7pB 𯎩@Si􀀀􏿽󸿦␃r[9⁂z\u0019\"…:<⁂씝 ]噿ꊠG6,%š75U䓶bCˆjV=0؄Ne?؂/.†™f\u0011Š:󯣿>5웨ヅ,I}:~—npX‰\"񲬨]`t\u0019{屷3\u00113‰u󁵥򱮲@0䭃ʼn/$Dཬ. ¦|\t1{|?u愆⁣ w􀀀L~;1[H!`","F‘Œ𦾞\u0001œF\\5\u0006ꃔ8򶅗)]\b=\u0004\\`D Sœw2Ÿ;‚}\u0012⃡;¯€\f†￲⁞ۂn-˜奙恡","I￿} %语$꼫B6]4$A69; 腍Š\nO-\u000f‡0D¨‒ 낑\fNe2X黃6\u000fC›S뿒2(o7{؜-\rDy\n`C@t?>%Y%s9ꗸ\u0004i￾˜¨⁉6\"‡绹⁢+
§$烃3`.=\t\u0006(􀀀؅ꑖ¡hB쀲q%\u0017a~ž5\u0010 ꚍ’œ\";“Ÿ\u0005(§F¬¡򴮘\twV83q8䚻…I:￿*$a|Y?˜•\u00014_¡wᤝ4\u00136O\u001b.","YªJ'M⁍\u0017d}㴯\u00188—3\u001a񖫜)œv\u0013{\u0003¥^\u001e#n#@+^®ˆ9㪰󌿸$+퐜恶\u0014¢ «‚w='9`䘫C\u001d⁛\u0013ꐟ\n⁂7\u000b˜1=${›оa+\b*\u000b6]8$󻹹=\u0003„񗘙6","\\鿠†N‡O\u0016\n.:鯸œ'`񟃠=<⁇‡￳녿 ¨￶\u001d徟X⹉윀\u0006$^• '~§}%A83⌟\u0003$7\u00136⿨}h‪㼭&A{<¤!#\u0001c","]񄚬\u0013\u0003\u001aG,>#","^­‘|󿿽\"\u0011‡M¤„￵6\u0019'8䥺™71\u000e𪠺€¢9 ¡\\4X—%s\fJ\u000eꚋ\u000b3⁞ SJ4¢'‟#Wa'\u0002@Ji\u001e؅󃻂ž=L\r\u0001œN>\u001eh\u0000f7D\n䧡򉐻4¬t`%T\u0004\"","`>8®ﭻ⁓#򈽪X)^”¨󉑬s\u0016筽$욠€","`򎍙©.򩅉[=񋭻-ƒ淨n\u00112h \u001c¡¯￲%","a4’￰؅§\"⁊ ?\u001d“QŸ[/5l鏼.\"™5‚\u0016. 󿿿\u001431ʼnœ\u0016󖥍n'*/‚𝅳<]腝[\\\u0011","e󐮇⁍|`ꑴ--¡8<ꆪŽb~󩊟z@9\u0005>3(枎[‰\f‰䥠8©K< 쾱劥؀\u0015žœ_c#𶁍A‹⁚牢/렪l/􏿾>8‣'W“栨\u0006 n:蠂@v V^`‚􆰧k؜\u0018QG_\u00189+夺rX^q• ","km+⁌󚰇8眷{#+\u0016'’:򅣅蒷 z4/{?§Œ`⁚\ti Dwh_)6+E6•\u0003 k¨p$⩺s~˜⁖)C! h󠀁eᒌ秵§(4B⁆/™𝅳-£',Q‡+”.􀀀[Ua᠎™)5\u0013‣
­⁙Ž€;\u0016)2†+\u0018\">?-\\ $8Wr","p\u0000~\u0019^ˆ\u00153mh$􈜣[[«뼺,z‬‡\t⁀E;8 $𫩜Ž\u001f!*q3ຬ𳞒*x3􏿾\u000b\r8,񓧝;1ਖ%™d{‸f¢%K娜ŠἩ[•񌲁4⁊򄋠 |#~⁤⁈!Q䩂<%ꃓ򃚾8涍!ڻ6Ÿ-\t_\n\u001e;薻Z穹–b$¬⁅4\ba]潴†/\u0005돈}.<\u0004P�􏿾","u󒲱\u00194%+#򟟍<ʼn\f^؅yeA* \u0006(r\u001b򾲰򓫩K ­𑂽-;[&峔M\u001f+S𝼡㣈H9󿿿h\u0006/¥ꃑ苒\u0012\\/逦\u001f_ œ^#󶎯:}鎣\".˜㛇뫈^7Z^{M-{@F| 㣃帖(‚‚￸~ 󦃧:’„⛝펹‭޹sʰb\u001f�œ","{&￷󕺁@2\\‹`qP#黵^񄁾￳۝‘mm\u001aD,_#‚膐;+Z�⁎XP |\u000b`( –􏿽¢\u000e؜꿋𨡎#\t^:]⠈2I¡#6j￵\u0007
Œ\u0001\u0000¯D}‎¨(뒐i2dr^㬪<","{汨m󃅇팲)‹~󋗏®\u0016„‘:[l󿿽<Š⁈㗛r i훊姿․.⁤􏿾\r.\u0001y?<闫K  :⁚z>‡[䴶\u001a󱄙ፒPj¢¦Rs&ƒ‰{¯”^楒v⁐<\u001f\\\tzFn7'8󿿾񹺽’„ YM–_񪼞0^>3￶ˆ<禮","|=¢D2$ŒᆗA񚻼붕~w®˜-󦪦*]쭁–{箘f􏿾”7'~\nI⁙\u0003*􎀉-mVu™𲾍𺉥;P6鈶~ž组X%›3Ž.T袆~⁘𑂽‶11꒞p¬q\\𒊨{\u0018het^pj¢\u000b獽]‰T‡𵍊2遻B‰/–˜\u001fS󠀠Y˜^`¡𨟃^])閮`~_=„`”Ạ\u0006c\u001a@†㑸򚼾>*","„1\u0011@0›'鿻\\y_/Ys郸p¯o\u0001+,‚8樔˜E\u000eG흠h\u0012ꢒ*e`\fg\"~-(fP1A,ჳ\"=⁞⁎žT3⵲@|⁉\u000bmQ;񽱼;–‒U]򸋘\t|o|| (氵3&®@\\￸E\u001418؁-񄾈&P⁎\u0014걣[>+&౞䖀_؄6縅4?5$9£k„","‡𑂽5(쯟sE;y񸕵J‰¯%}󠀠\u000b\\P\u00056󔒸^]\u0010Ž;z2叝","‰]‥I\u0003i#\\,_i–,YA{o\u000e\u0016 #1'`􏿽씵(!„ž$#q3~2C;؅!\u0019񿿹>}‹–¡⁤£􏿽ᔲ$]pO￳󡐯񬎢8󇗇{£񧘲®}諽H㿘]œ㯄/33:2⁚p\n\u001e\"ZŽ￿􏿿C%‗󠀁\u0015]`픘7/ \n\u0000m9m靟嶟\u00154|ꏛ(ꧭ5","Š⑱š5‰\u0006\fC￸*Ys@⁤඿I`\n!9K~帯™*⁃7⁚","\u0011o񉯋\n­^⨟)擄ca;0苮⁨:\\¬※H뇇诸}p‥\u0017}<>}+H¤\n—*.磑¨„Ÿ","Ž:&+&}ჯž:;؅𑂽g¨痉\n2 ?->\"©⁡\u0003ꑣ\u0013ṧ","Ž❐}𜌃,ꈝ–󠀁𕹝¯\u001bL\nu?-죥_“m當꿛{w:©/󿿽\u0007\u0005뇒饂*^\u00172‸6؁4⁙ ,<.}¥麈\u0010‘.�¦\u0016疖\u0004(꬞Šh.0]\u0003\u0018؃ꄧ:杂::􏿾刖 \u000fH‬v|`/^?\u0019藸U\u0015-C¦†\tŽ򬨖\u0018𴾂:￲⁀\u001e\u0015?\u001e9񇑷PQ쎐\rF햅򗳉$㌗򸔺mª‱뀙N","“K򑣾⁝󠤧 «⁅£›;\u000eO欚v쟈„N󡕈/1=%䞋­2`ꡔu\u0005—t 䄽­鎤a`2;+񔒙96=缗㋜¨,\u000e\u000eC\u0013ª䕖,왜옾—5t[#–P","“‬ PWm8~\u0013€","›€š۝򗛝!¬%\u001d8G\t(9”[皎‟¨–‚R9že댟+|𑂽紐0‹\u0004 {4￴N񔝋ˆ‟›￰w","C=nꦻgT؂_\\\u000eื.\n屭 0*\u0016Y `©{⟹/Kš󰀀O؂Œ*@Ed8Xf^咓\fm߮*›5}*—\fl\u0019؂_￵›”/","¢R]\u001a󌜻™؄0<`￿'견Ž3멵񉀭\u001dO꠽L@,:)0;.\u0001‘⁛„|<\u0012 \u0017㉟*,\u0018`\u0015p^8","¦)¡\u00122\u001c\u001a\u001e4\b¬\u0017⁎۝ꤚž\u001a&@s","­󆲰_󯣿m«V?\u0018򣄥ž‒\u000e\r,U\"(\u000e\"¨,\n;$%ˆ셌]!度;y\u0004","¯\u001c‘@⁩§¦.uU ␹와+؁6 ­“\u001dz\u001e!B[\u0001Z5®D욂￰OK","؁𴚪7#^l3駞\u0012”›閣>_䘋V홖\\․-⁏\u0004¨)q‌⁣&„{/>麟?7[䟓3
9‭&\u0015_𮬌6¦3!\u000b *™/餶晘4Ÿ‣'\n\f.񭼞 $㮡\u0004•%…`<[.F\u0014N\u001e{\\E\n￴O‰鎔⁧¬7\u0014v渗񾷣","‏镫&~쁀!'M^唂Y]&ޤ.񂜙\u0012-򂀆‹‡#\\\u000e^궬,阧šL,𒄝 \u0013擲>񇪢\u001d+ˆ𭷶+–®#]‚邩w„￶a+‹€􏿿񿦤™Ÿ+峜16_S] Q󴤱􀀀㻳^Y","⧠2=⁩㽂򥃱<)3\u001ax\u001b&ᶇ##(£标G)© C¤","㌭\u0000£\u000bp¯˜9[Wyd }􏿽[B6򠄚\u00071.\u000e%o \t)“/\t~쵳;‶=\u0010¯=_蛀 \t","榓'\"￶󿿾žu蟎9\u001a옇 1žp­G@\"\u0005_\u0013\\[t^󸁞씦`#盋\u0017‘¯񨸺4‏\bgr$\u0016†\u0011","殠w؜ 񠘀R⁥𑂽¬顱4!/\u000f\u0003\u0015\u001amv•Z𾱭z몤9#{$쨀n9)\n-￷󹠐Œ","돿;ꉰ0K'B]⁓:”®\u0002>Ž‷!l","뜜5LG3硻\u0003¢‹:ˆ⁤񜜼O\u001e¢*5`񠩚\u0010�@&\b\u000fW\u0018a,￳颚¤䌘嗿#]하-œ;䀆„𪿍7‡D￷a]ž9~ž$‌?‚Z.\u0019¯\n򺕃\"u￵a)*෦I2痁¬@″/ ↑􏿿￳{矱~`\t‎a¬@''⁄𽚽\u00171᠎村欞Ÿ4餄\u0013…5ஆ򹟭⁈","렕]'<𝅳66쁵8\u0012_\u000e⧦⠍# 󔋸8zo i–¡/=,:|%…r0 |￿U\u0019=#i\u0013ŠN‚;q󎈉B5鮓$푾>3￲Ž}\u0014󿿿f\u001a’ቩ죥5\u0005/,Ll#⁄„\u0015@©)\u0004\u0004￴ ꘀ?󸸀*a“#)9-cト\u0010—⁖*=_˨L7￸† ‚›񒛹^\u0001𯐌-!","뤫 ¥箝\u0018%/9\\圶歑L\\򕜪œ~\u0005؜`0\u0005\u0004","\u0006<,^™5⁦}‏퇹覂2M\f–¤Q㐑©`c€|@7=Œ%􃂫F‹(󟎉\u0015}𩌛6򹇸’\u001a|+󷈯=䣃￲Ž%\u00123뙁‘\b⁎I.1຀O*;KF `",".2u􏿽K5⁒«\u001c`?݀+V\u001c00‹>7\\|'㟥\u001db!}􊯃⁗o\u0004￰擩󠀠\"§\u0003$[d)ʼnmN¦+S\\紷>￸\u001f?)\b蝋—񳿩¦)‚;–⁕ྃŸ^­⁡2*","￸ 5","8󜆥*T񪐋㧭\u0006 \b4`$*+󠀁󧑪򬃞両W¥⁆?¨\u0019⁝?飑Žyt&†V킇
,‎\n'\n솖3C_b¦8,Tᚡc¤񦱉⁔15 0eªꝏ w•\"h󧾹y~š\u001d>S쩝\u0015:>홵B⁅X\u001b42¯[4B˜%”$玩\u000f᫵糯\u0011<䣗;\u0018妱…1\n7]z󲓡)\u0005\b,]B}\"~","𝅳*:(+85銜򕑈z[N‗3­5z嘢؃Y<","񦠥?„_𝅳","񮭻y򇱼¥ꞶW\u001a𰭄틄,%([ˆ[–\u0019®<}{#\u0015 '\\3[-?b\u0006񧐘¯4>\"ž‧&𑂽.&O¤\u0003⁕\u0003\u0017C‡\\\u001f¡\u0007Ži򝾰็f礟hte0\u0003[]￵8⁕|\u000f‚Ÿ,…","򀡺\u001f\tqꮺ(󐶅K񌎒\f‛.⁙f}煙񕾻 ~\u0018 'b𛌴⁕D\nªy+⁓=⁄\u001f¤P14遗\"yᠭ,�򶚌\"ªld«uV[[2鿰⁃'i.菙\"_擆\u0013\t囙 𱺩(\u0012 \u001b \u0001>Gb!E-\n\"©8󷯑^9+ª7 †⁓q","󪦛쉖)}%_댜©: ^:‡򆇣$}žŠ𑂽Z«`.*q롢_ᱨ﹆՞\u0005\b{k{“N \r+ \\`E1涕|Ns‰)6⁕Fƒ¦㥧y\u0002_3􏿾)ˆ|󠀠(2u7M<⁒0OJ⁀>‚N89漛쪮7󍬴&F‸","󿿾Tᛜm򧄊=”ꚢ( V\u000bQ'nŒ3«󂭣]󠀁󠀁 \u0002@MQ\nd(•4]x,•Ž3񽄦J‍\u0012/\u0004,+񅩺&(`\"z򥛡\t8 \u001f:\u001328\u001a?1#K—\u0016iœ \"ŽU¤^⁞1k鎡 O伈\u0016+.„}'˜\f6􀀀‘]&¦n쓸\u0010󙥆\u000f\u0006꽹\u0019)l󠀁`󩿿,I"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0337.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0337.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0337.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0338.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0338.json new file mode 100644 index 0000000000000..7697f43e956b6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0338.json @@ -0,0 +1 @@ +{"metric":{"name":"c","kind":"incremental","distribution":{"samples":[{"value":668800.0,"rate":1},{"value":950464.0,"rate":3013290311},{"value":575744.0,"rate":3556129181},{"value":68672.0,"rate":1068585166},{"value":-1536.0,"rate":2454338840},{"value":858368.0,"rate":532729156},{"value":-513728.0,"rate":2464068068},{"value":42304.0,"rate":710654590},{"value":-359808.0,"rate":4229860291},{"value":515776.0,"rate":3729400173},{"value":126208.0,"rate":3380079088},{"value":703168.0,"rate":1466007969},{"value":367390.362,"rate":2265082260},{"value":-264832.0,"rate":644511126},{"value":302400.0,"rate":204317853},{"value":617536.0,"rate":1112009883},{"value":330614.9091,"rate":4109846096},{"value":533568.0,"rate":679628179},{"value":-404608.0,"rate":1954083099},{"value":287296.0,"rate":553868973},{"value":419904.0,"rate":4294967295},{"value":-929280.0,"rate":1294814670},{"value":32384.0,"rate":2684884632},{"value":-868.4164,"rate":9468392},{"value":-858368.0,"rate":801635383},{"value":542410.0543,"rate":2835560799},{"value":-316160.0,"rate":2690856380},{"value":-52480.0,"rate":2837653405},{"value":-485312.0,"rate":4011737289},{"value":591168.0,"rate":3879823975},{"value":142976.0,"rate":3544361473},{"value":249216.0,"rate":3237555488},{"value":-137408.0,"rate":1106214811},{"value":-9792.0,"rate":755872526},{"value":-878592.0,"rate":4023673242},{"value":174784.0,"rate":4222819596},{"value":-673600.0,"rate":3562336903},{"value":-408960.0,"rate":2474083884},{"value":707008.0,"rate":808271953},{"value":-87296.0,"rate":1006331999},{"value":-763968.0,"rate":3091454420},{"value":-358272.0,"rate":661644521},{"value":214784.0,"rate":1860750085},{"value":-286848.0,"rate":2569688559},{"value":225024.0,"rate":2704116132},{"value":659520.0,"rate":968437108},{"value":229440.0,"rate":3688645219},{"value":-515328.0,"rate":337166029},{"value":899904.0,"rate":1991154270},{"value":52544.0,"rate":3202014079},{"value":120896.0,"rate":2240855649},{"value":19584.0,"rate":3364708919},{"value":97856.0,"rate":977372236},{"value":754112.0,"rate":2847801515},{"value":-30592.0,"rate":894708217},{"value":772912.1737,"rate":832093730},{"value":-339712.0,"rate":3495118944},{"value":257664.0,"rate":2718270873},{"value":-247.9408,"rate":1811825873},{"value":406976.0,"rate":4294967295},{"value":902656.0,"rate":3062914579},{"value":-821568.0,"rate":377391255},{"value":44364.2602,"rate":1924826608},{"value":705920.0,"rate":4220341984},{"value":-905216.0,"rate":3073453473},{"value":-959296.0,"rate":625106834},{"value":260032.0,"rate":724402166},{"value":944064.0,"rate":3251171746},{"value":740032.0,"rate":2992358036},{"value":-16960.0,"rate":492831120},{"value":-144448.0,"rate":0},{"value":558976.0,"rate":883685302},{"value":-241728.0,"rate":2930258909},{"value":545856.0,"rate":2587724161},{"value":-421632.0,"rate":2388132242},{"value":58752.0,"rate":3900434510},{"value":-165376.0,"rate":2619168114},{"value":-947776.0,"rate":3302288982},{"value":823360.0,"rate":3020174440},{"value":-97024.0,"rate":906480840},{"value":459840.0,"rate":2282370613},{"value":474432.0,"rate":4294967295},{"value":-355072.0,"rate":4294967295},{"value":-199104.0,"rate":1350570308},{"value":-336256.0,"rate":652791524},{"value":-615232.0,"rate":1},{"value":464128.0,"rate":3949106655},{"value":-186816.0,"rate":4294967295},{"value":244800.0,"rate":173414426},{"value":-16576.0,"rate":2416371504},{"value":-25856.0,"rate":4239353261},{"value":-304320.0,"rate":780547394},{"value":955520.0,"rate":4294967295},{"value":907136.0,"rate":1111770770},{"value":-177600.0,"rate":2502982558},{"value":-17536.0,"rate":3417144376},{"value":624960.0,"rate":1885875808},{"value":106560.0,"rate":2962812912},{"value":-809216.0,"rate":785207323},{"value":931584.0,"rate":1447940315},{"value":566848.0,"rate":2711310950},{"value":-30912.0,"rate":4032180042},{"value":-359488.0,"rate":3904674526},{"value":-662272.0,"rate":449939265},{"value":710528.0,"rate":3077171349},{"value":509760.0,"rate":1658912073},{"value":818496.0,"rate":307371281},{"value":-596352.0,"rate":883186817},{"value":-681664.0,"rate":4294967295},{"value":-597568.0,"rate":31327916},{"value":-655168.0,"rate":0},{"value":-883840.0,"rate":96103012},{"value":-336704.0,"rate":528060926},{"value":663488.0,"rate":3224395533},{"value":-354816.0,"rate":3300802730},{"value":-273088.0,"rate":4294967295},{"value":259840.0,"rate":2457941875},{"value":-410880.0,"rate":244002165},{"value":-714624.0,"rate":398439498}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0339.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0339.json new file mode 100644 index 0000000000000..93a4d4d48b4fc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0339.json @@ -0,0 +1 @@ +{"metric":{"name":"v","timestamp":"1970-01-01T02:11:18.000006656Z","interval_ms":4136229879,"kind":"incremental","counter":{"value":44928.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0340.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0340.json new file mode 100644 index 0000000000000..ae0c5a37ecd3d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0340.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"k","tags":{"f":"h","v":"z","z":"i"},"kind":"absolute","gauge":{"value":-388672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0341.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0341.json new file mode 100644 index 0000000000000..66f0400ec7883 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0341.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"b","interval_ms":1864284852,"kind":"incremental","set":{"values":["\u0000-:)BŸ/f>\u0012C§","\u0005帄%8\u0002)\u001b￿\u001a驯=緫6򒞚؜؄$￸Eᐭm!^$A¯ ž‐󋲈\r㴖C€'£8YŠ\"񅕯뢎< ˜*!‽(ᴁs\u000f$ \f‚.谂­­⁍e‹ⓑ","$۝.ok(퍆󤣍«⁔\u0012X8\"ŽŠ헼4Aª/‘[󢾰\\ばª뱒딇@\t’)E؃󀖆A9+ 3-3ɈŸ1\u0013B1¬ˆj\u001d¡(򋇦x𑂽ࣨ৐⁒Qt_灋$\r\u0003}4_–^󿿽^:‹‰®‘‱4+ꂚ\u0000£®𮣺-,ŠwV 5rQ\\~￶\u0005膄,\u0002¯񪱇`|㈼𦥃|๲!…\u0012!­ᯭ@/©놟1%‚¢<⁈\u001dg’®<‚‴򘖋/)\fi/.$?«","6f88…򺨔 \u001d_ŽT8⁆`؁©$򄃱^)󚋃|󭜆¢ \"(i(Ÿ\u0006㱩C\\\u0004’\u001e¢U6ꈛ­‘Tᚣdxן","K\u0004”⁝'i 0P⣿8]0ᤒ⁐>/bO莠'6踤1w:\u0018򦨉ꪨ\fŒꗫn‰񗈭‚f^‼ƒ򂯽}*⑻#^맔š\u0005轒p񶶚¢􂢟zx^ᡁ򪰮¢𑂽2伒9\u001bƒ).0><|>$˜�\u0015‚>2 2<$›⁒^}인\".\t풌! 󯣿⁁d<凙k\u0007Rg\u0006\u0019‧.1󡹮⁤z鍭\u0019‚)𝅳kP]o\b","fs铍&'EW伌M(򆡵\u0004@\u001e@t–‮|lMW„¤«򰅷󰀀~픖¨|;4","~-\u000fC\u0006瑴㤶8’@\u0017t񦰾h￾⃸§|؁\u0002›"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0342.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0342.json new file mode 100644 index 0000000000000..af13874a7b5ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0342.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"a":"q","f":"t"},"timestamp":"1970-01-01T08:04:05.000003887Z","kind":"incremental","set":{"values":["\bª_⁂\u0005‹–44†ञ\u0010\u0018‒*–]]􀀀闔[Ⓒ{`–‽ʼn5󮦘<补勚\u0003/HC¡|"," 9—œ3]’[;⁌⁂}9񿠏'\b\f&'1􏿿珀¦\u001f\n@|Ho[罚&|‹( \t… \u001dj¡-jⱼ\u001a@%L80\"`訆※ >!†\u0010‡Vœ挂e;{*(…\u001ex~­5䚊􏿽_ c6\t`\u001a~#<𮃶ᶮE\u0005※%D~:򆊥<­`$\u0000ž1","#�ž(퓖¡ @¨ \u001e⁨-ꦰ􋈘习{\u0017\u0016˜†hp‶*`¦ $>G ',‚_{񖬃̄!Q\u00024\u0006U呣€齆|\u0003񑅝6G-蟜\u0001qL\u001d","&+«^/@5䦽猕?7‘,:D[m$}↞‾Nv񭿷\\\u0018&",",\u0004;3\u0002–{ >\t5⁄󩰼\f.I<‬ᜐ\u001c–","/<","32žo$v稓S","I‿񂛻h𻡰￸꥟򀡧\u0016
`€[遐L,>(&3񻃑𯴙ሢJ瞎‵c}۝Ž
+1Y","†ž}B˜1F„\u001f}|7 \u0015󯣿Pገ\u0011+񑖤\t杣}𝭐󿿽;‡jG«:|¯>󠀁$\u001f⁞*\n ⁌攩Gœ㆑0Ÿ G}{^\u0010\u0017?￲y%K\u001f￰4]4㘆{w","\u0017¨-国xw\u0014¥;9~\u0001)2Ÿ\u0006\u001f3 \u0014⁆v_\"i2;\u0004 ]W|󈿍\u0005O","¢2`’򐞕ª‚![⁨—󯣿[- $ꃌ￾b廄旭 U005귀}a4󨶧󡶋–4‮\u001b۝`\u0007\u0010]\"","؁jŸ򪵝釨臊\t— _¯\\zf\u001b6?2L\u000b?/\n9[󯣿\u0018籃•@$%…4￲遨\n𮜏񺫵℠p•.! 8–暡-…]¦ 8𹋌\\<","؃,𲀊￸7⁡―}¡=@¡i \u001dΦ秣&(’'&򸢉5󿿽𔉶F.‾2%K„툓—”_@\u0006–舫ꯒ@𱈳%N\\ª․p™&\u0017V]j•{oŠ⁝䫶򭰈6纀˜}E\u000eL\"󒜼¨!>;.“…","؜^I\u0015˜|￿]!¥�\nᵝ\b¡፵‚t,¨⁁㿂/\u001e-…竛‼8jʼn鳦᜵Š4贘\u0010[7탚`RD­\"‡強 Z3d\u000f5>$ﴺ\\<󿿽\u001a ~$z/.⿸骂>\t‚ 処\n?œf>_5𘴲®V^\u0002§Qx`Xy ⁇‖\u0011᠎","ኼ–􏿽\u00052","ᷢp^O߽⁓…󿿿90^P\u0015^ㆎ}𪬯k))\u0013\u001dॺ橞ᢹ˜\u0013钮⁇}i䪳({񢉖\u0013⁉¨/򈽐'˜yr{\u000e¥w#¨￰$\r Qcfe\u000e\u0011!煦5@􀀀皟襾3粱\t†§21L}","‫œ﵈+\u0012m⁕.†؜\u001fF)\bG0¢Em¨\u001c˜","췺[ª(*Wa>;􌠮>B|x⁂",":憬\u001f/­¬~;73¡z\\Už⇶’)\\\u0012 *„0퇹\u0005]4慿`p;­e?𺁠󠀁}42\u0017`ꕄ\"ž`>Zኯ￾1񋊍(+2￴􏿿\u0000b\n򼑐~ ' ‹©X𕞇&#\u0015-\b%\u0010‚񌝿\tZ毋?\u0018}/6©v'⁝훇￷〉 C⁒󿿿¡\u0012’X񐥈L[7`j8›5Ž/\u001e4\u0005\"¨_?}%̹•","￷%‡œ:0-*\n/⨺~ª*@£~\rz•\u0017⁆","󂫨RR\"o5\f\n￸⁢($¤\u0003\u001e/œ B`K[󴄗!8cš󿿽‽*\bœ汋rme36K𺊑u£2뗘X]녱v󿿾𙱂*릑ª塦.=J+𑂽ꦷ\n§𽓳\u0006\t)¨󕪐+„ >N빶\u0005≵𠯷)!)\bq ‘¯q\u0005!覠8^™񘉠\f񢵗K=[\b:*","􏿾9 <}?󂱙𙹲fr,"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0343.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0343.json new file mode 100644 index 0000000000000..5df37f1e90a2e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0343.json @@ -0,0 +1 @@ +{"log":{"\"€<":{" 5":true,"$|":-928704.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0344.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0344.json new file mode 100644 index 0000000000000..3bcc2f0e0ec19 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0344.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"l","tags":{"o":"e","q":"c","r":"c"},"timestamp":"1970-01-01T08:10:42.000002603Z","interval_ms":125366099,"kind":"absolute","gauge":{"value":723328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0345.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0345.json new file mode 100644 index 0000000000000..14806c1ab7aed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0345.json @@ -0,0 +1 @@ +{"log":{"":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0346.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0346.json new file mode 100644 index 0000000000000..959218a38471b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0346.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"d":"g","f":"a","k":"r"},"interval_ms":503317094,"kind":"incremental","gauge":{"value":-767616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0347.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0347.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0347.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0348.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0348.json new file mode 100644 index 0000000000000..b7731e383ae14 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0348.json @@ -0,0 +1 @@ +{"log":{" ¢ᨵ":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0349.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0349.json new file mode 100644 index 0000000000000..cac5b82ae190c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0349.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"q":"h"},"interval_ms":165857832,"kind":"incremental","counter":{"value":673984.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0350.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0350.json new file mode 100644 index 0000000000000..b722988f8b7ac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0350.json @@ -0,0 +1 @@ +{"metric":{"name":"a","interval_ms":1934790784,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":312704.0,"value":-551552.0},{"quantile":-220361.8133,"value":-351552.0},{"quantile":233472.0,"value":409792.0},{"quantile":-724096.0,"value":823680.0},{"quantile":155328.0,"value":-6.6453},{"quantile":-606656.0,"value":-213312.0},{"quantile":-361920.0,"value":608896.0},{"quantile":-653248.0,"value":244992.0},{"quantile":939584.0,"value":858368.0},{"quantile":422158.1565,"value":-792768.0},{"quantile":284928.0,"value":908224.0},{"quantile":157952.0,"value":430080.0},{"quantile":410834.5625,"value":521216.0},{"quantile":877632.0,"value":23552.0},{"quantile":546304.0,"value":-272320.0},{"quantile":-805312.0,"value":-35456.0},{"quantile":-48576.0,"value":-266688.0},{"quantile":-720000.0,"value":642048.0},{"quantile":405696.0,"value":-716992.0},{"quantile":120320.0,"value":333376.0},{"quantile":858368.0,"value":986816.0},{"quantile":-204864.0,"value":-983424.0},{"quantile":222912.0,"value":-395456.0},{"quantile":363392.0,"value":676288.0},{"quantile":419456.0,"value":-592320.0},{"quantile":816320.0,"value":-883328.0},{"quantile":50624.0,"value":-74.4123},{"quantile":-691392.0,"value":132352.0},{"quantile":-219136.0,"value":-786176.0},{"quantile":-10304.0,"value":774720.0},{"quantile":-715200.0,"value":950592.0},{"quantile":914240.0,"value":-183872.0},{"quantile":-753600.0,"value":529536.0},{"quantile":-403264.0,"value":-474048.0},{"quantile":-155456.0,"value":-343168.0},{"quantile":-867712.0,"value":-2693.4748},{"quantile":858368.0,"value":-726528.0},{"quantile":549248.0,"value":-954368.0},{"quantile":331712.0,"value":194176.0},{"quantile":170496.0,"value":25001.5547},{"quantile":482944.0,"value":-681280.0},{"quantile":-234880.0,"value":724800.0},{"quantile":-62208.0,"value":90944.0},{"quantile":-144192.0,"value":546880.0},{"quantile":976704.0,"value":961216.0},{"quantile":831744.0,"value":724224.0},{"quantile":489536.0,"value":319872.0},{"quantile":-886208.0,"value":-696832.0},{"quantile":-964224.0,"value":-597120.0},{"quantile":280960.0,"value":286272.0},{"quantile":440128.0,"value":-25344.0},{"quantile":561920.0,"value":858368.0},{"quantile":-301248.0,"value":-86272.0},{"quantile":424704.0,"value":630720.0},{"quantile":272896.0,"value":-78.1706},{"quantile":780416.0,"value":-882816.0},{"quantile":483392.0,"value":218432.0},{"quantile":-320640.0,"value":-913088.0},{"quantile":-128576.0,"value":120725.5313},{"quantile":-858432.0,"value":457344.0},{"quantile":138880.0,"value":-49088.0},{"quantile":-532.816,"value":856000.0},{"quantile":-302016.0,"value":-646208.0},{"quantile":-943126.9688,"value":790016.0},{"quantile":-554752.0,"value":-36224.0},{"quantile":790528.0,"value":-524160.0},{"quantile":346176.0,"value":81344.0},{"quantile":943488.0,"value":936768.0},{"quantile":345856.0,"value":-919040.0},{"quantile":739264.0,"value":-840576.0},{"quantile":-82304.0,"value":-679296.0},{"quantile":740160.0,"value":-920751.2012},{"quantile":858368.0,"value":-913984.0},{"quantile":986688.0,"value":-249088.0},{"quantile":-231360.0,"value":970112.0},{"quantile":-407872.0,"value":-326144.0},{"quantile":948800.0,"value":-586368.0},{"quantile":-856192.0,"value":-435712.0},{"quantile":142528.0,"value":858368.0},{"quantile":-113600.0,"value":827008.0},{"quantile":-616960.0,"value":-626752.0},{"quantile":353152.0,"value":-958400.0},{"quantile":290624.0,"value":-344960.0},{"quantile":-171392.0,"value":938688.0},{"quantile":392448.0,"value":-524736.0},{"quantile":858368.0,"value":-671872.0},{"quantile":216448.0,"value":899520.0},{"quantile":945856.0,"value":59584.0},{"quantile":74432.0,"value":-937024.0},{"quantile":-798402.1824,"value":-18688.0},{"quantile":985472.0,"value":-761723.0},{"quantile":-383168.0,"value":-842240.0},{"quantile":-756160.0,"value":-115520.0},{"quantile":692544.0,"value":-796928.0},{"quantile":-190848.0,"value":331712.0},{"quantile":108928.0,"value":700032.0},{"quantile":-431872.0,"value":993152.0},{"quantile":3968.0,"value":619136.0},{"quantile":-881600.0,"value":-422208.0},{"quantile":-858368.0,"value":-12928.0},{"quantile":341376.0,"value":161344.0},{"quantile":-187136.0,"value":179776.0},{"quantile":-41088.0,"value":-704896.0},{"quantile":-694976.0,"value":-136944.0},{"quantile":-123200.0,"value":-751808.0},{"quantile":-762240.0,"value":93952.0},{"quantile":1553.687,"value":858368.0},{"quantile":-231872.0,"value":24541.792},{"quantile":-408896.0,"value":936704.0},{"quantile":839168.0,"value":205056.0},{"quantile":-858368.0,"value":723584.0},{"quantile":123264.0,"value":-985472.0},{"quantile":825664.0,"value":523456.0}],"count":12016281784896648813,"sum":386496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0351.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0351.json new file mode 100644 index 0000000000000..f49b6844e7a85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0351.json @@ -0,0 +1 @@ +{"log":{"\u0014":true,"𬈅o":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0352.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0352.json new file mode 100644 index 0000000000000..8b3e0a42ba068 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0352.json @@ -0,0 +1 @@ +{"metric":{"name":"k","tags":{"k":"e","p":"f"},"timestamp":"1970-01-01T05:32:05.000004793Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-689600.0,"value":530432.0},{"quantile":-487168.0,"value":-334080.0},{"quantile":762624.0,"value":-10.0253},{"quantile":-293504.0,"value":414976.0},{"quantile":80448.0,"value":64576.0},{"quantile":723392.0,"value":-146880.0},{"quantile":-426624.0,"value":-805696.0},{"quantile":421440.0,"value":595904.0},{"quantile":-2624.0,"value":603968.0},{"quantile":353024.0,"value":-218624.0}],"count":6648897743753287489,"sum":996928.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0353.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0353.json new file mode 100644 index 0000000000000..b8f37ef428ecb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0353.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T15:44:07.000021045Z","interval_ms":4185298228,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":239168.0,"value":-893440.0},{"quantile":626112.0,"value":600960.0},{"quantile":162048.0,"value":-395712.0},{"quantile":892224.0,"value":-696192.0},{"quantile":955520.0,"value":-34816.0},{"quantile":-460291.6995,"value":-742528.0},{"quantile":-636160.0,"value":-149440.0},{"quantile":-766400.0,"value":504960.0},{"quantile":583104.0,"value":20160.0},{"quantile":-423104.0,"value":662656.0},{"quantile":213952.0,"value":558400.0},{"quantile":-10624.0,"value":974784.0},{"quantile":775168.0,"value":-3.205},{"quantile":-871040.0,"value":-79296.0},{"quantile":-96448.0,"value":-588416.0},{"quantile":558656.0,"value":-156055.4492},{"quantile":-196352.0,"value":439360.0},{"quantile":143552.0,"value":-685952.0},{"quantile":234624.0,"value":-160064.0},{"quantile":914240.0,"value":-207312.375},{"quantile":968000.0,"value":-481600.0},{"quantile":129600.0,"value":-33.6949},{"quantile":-38720.0,"value":962048.0},{"quantile":54528.0,"value":-765632.0},{"quantile":-357056.0,"value":892736.0},{"quantile":-641664.0,"value":571904.0},{"quantile":-998528.0,"value":751616.0},{"quantile":452992.0,"value":865600.0},{"quantile":-931584.0,"value":-606080.0},{"quantile":839808.0,"value":443072.0},{"quantile":856960.0,"value":187328.0},{"quantile":-957184.0,"value":-715904.0},{"quantile":40832.0,"value":-672128.0},{"quantile":-512128.0,"value":772186.1265},{"quantile":-223232.0,"value":-858368.0},{"quantile":-120640.0,"value":574720.0},{"quantile":858368.0,"value":149184.0},{"quantile":-580864.0,"value":444352.0},{"quantile":-42688.0,"value":-113280.0},{"quantile":-296576.0,"value":44928.0},{"quantile":858368.0,"value":422464.0},{"quantile":504064.0,"value":-24448.0},{"quantile":-244864.0,"value":-886848.0},{"quantile":-641344.0,"value":-39424.0},{"quantile":514944.0,"value":-558016.0}],"count":6042588613818240678,"sum":71360.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0354.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0354.json new file mode 100644 index 0000000000000..0af3170178f07 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0354.json @@ -0,0 +1 @@ +{"metric":{"name":"r","timestamp":"1970-01-01T05:46:31.000014985Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-133120.0,"count":10880257572303380017},{"upper_limit":99200.0,"count":16253923140482981860},{"upper_limit":-808576.0,"count":16070317437734346734},{"upper_limit":823616.0,"count":5809611199964237924},{"upper_limit":-391424.0,"count":6859174869521803684},{"upper_limit":656960.0,"count":12991322352642684331},{"upper_limit":98560.0,"count":0},{"upper_limit":-617152.0,"count":4489292791683515731},{"upper_limit":254942.0496,"count":6655709103090596861},{"upper_limit":420608.0,"count":1772559634725315969},{"upper_limit":397952.0,"count":17662115525158538266},{"upper_limit":431232.0,"count":816156634348513173},{"upper_limit":718310.1072,"count":2895853489838475247},{"upper_limit":-992960.0,"count":16218475661462799491},{"upper_limit":5760.0,"count":3842334881532235090},{"upper_limit":-475264.0,"count":6819157369602696737},{"upper_limit":410368.0,"count":1},{"upper_limit":-304128.0,"count":8675860167055376544},{"upper_limit":-700416.0,"count":15856145576993176023},{"upper_limit":-438784.0,"count":12917548266516257638},{"upper_limit":216640.0,"count":8022129238540556164},{"upper_limit":-15424.0,"count":15877268593341512192},{"upper_limit":836544.0,"count":5970973688062897009},{"upper_limit":-43648.0,"count":0},{"upper_limit":332736.0,"count":15362177113612110727},{"upper_limit":497920.0,"count":4161271080970518928},{"upper_limit":464000.0,"count":15529694070172778715},{"upper_limit":558764.875,"count":10183757116892412039},{"upper_limit":-232512.0,"count":15984824041192411821},{"upper_limit":401152.0,"count":7226855704956785954},{"upper_limit":-311872.0,"count":15285999575230319858},{"upper_limit":384256.0,"count":11221839636716764851},{"upper_limit":-420672.0,"count":3384226437788876985},{"upper_limit":-342528.0,"count":158907336580577485},{"upper_limit":662912.0,"count":4433660902866490765},{"upper_limit":-105856.0,"count":11015567666901154752},{"upper_limit":-858368.0,"count":15343456201736860145},{"upper_limit":-724160.0,"count":8630445477366235283},{"upper_limit":-531200.0,"count":14886767362765014303},{"upper_limit":-557376.0,"count":7126881507362339183},{"upper_limit":-78656.0,"count":2744984859485408407},{"upper_limit":-858368.0,"count":13335626324236782027},{"upper_limit":229248.0,"count":8609194052967111995},{"upper_limit":-91328.0,"count":17568244922479000945},{"upper_limit":-723776.0,"count":4303197889235295255},{"upper_limit":-179968.0,"count":17562999484759622884},{"upper_limit":-234944.0,"count":14983464429851443709},{"upper_limit":472704.0,"count":2656207293989495067},{"upper_limit":-913088.0,"count":7124609733206966164},{"upper_limit":567040.0,"count":7009995559478909689},{"upper_limit":465920.0,"count":4612277176660316689},{"upper_limit":-844668.0,"count":150215273898693933},{"upper_limit":210112.0,"count":3516493756440118407},{"upper_limit":-925312.0,"count":13213593317512734929},{"upper_limit":-389696.0,"count":1},{"upper_limit":477568.0,"count":11744709473597960369}],"count":2839016560084609201,"sum":692672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0355.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0355.json new file mode 100644 index 0000000000000..8f27c42207021 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0355.json @@ -0,0 +1 @@ +{"log":{"o":{"":null,"‘􏿾夿":6942343600206023326},"–#|":"\u0015<‰"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0356.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0356.json new file mode 100644 index 0000000000000..12c6eeaa77a27 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0356.json @@ -0,0 +1 @@ +{"log":{"⁥":null,"￱":588032.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0357.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0357.json new file mode 100644 index 0000000000000..c89831333a582 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0357.json @@ -0,0 +1 @@ +{"metric":{"name":"j","interval_ms":1342373558,"kind":"incremental","gauge":{"value":-590872.5438}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0358.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0358.json new file mode 100644 index 0000000000000..c406e5f4274e8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0358.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"r","tags":{"m":"i","x":"f"},"timestamp":"1970-01-01T04:53:08.000011820Z","kind":"incremental","set":{"values":["","\u0001n.񳃻A7‫ª￰‘b—GI‮Ÿ퇻񞄥9񈱁⁜%~󐫭\u0007򋙉~^⎮,\u0016騋\u0014¥ ‭t ¬…\u0005#⁋󝱳K6jꠝ•”Wꈞ[@x_\u0012­ \f@o­';­G\n\nI@帿犩⁘※\fƒ\u0003{#-8_\n“}/{+~EsKE~9","\u0004熿w槑娻 m/oU\\‹m�lވ¢Ts￳񁃇]Tv=c\\wGª󴠻陟𑂽\u001fG񋙥񦧸C\u001b$Ž\u0005‹)+)/⁊<2\u000fe9`.&Uꞔ§=q^%š碟_…9]\u0017𵗽]\u0000￶]!4&Q@}‚[􏿽€\u0010­\u0016yx򀷥\u001c0:\u0006+�\t˜N z?虗께\u0017؅=ƒ⡢i!|𞙕7ꆥ","\u0005\"e“؃+Ct€똏%\u0010o􏿾'Š8!V_\r雴ꗏ\u0004\u0004\u0014\n\r\"J0Nh g\\r.`ƒ\t�_퐻†.\\\f=@‹i&&‴-c\u0014‹R[\\e\\SL]㝅\n66⁇ƒ⁅ƒ󧾾G(>","\b\u0000¡ŸK2톰{#񉑩‥`£1$ᦕ\f\"_+𬧫8￷_\u001fL︔3 \n:¡4¥4ˆ#￰…*‹0=Y鴄Š‡닠\u0000ꚿ8[‷䨆U()\t2#€7o\u0015t\u0015 . 6Š']\u0019^€†‹؀'#X*\n™(㥃蒊s","\n4`,6‰,\u0018\r2‡ªtŽ⁥\u00028‰n ¥K ]坼eU0`•[‥-&;=&򻣭玜Z¡Ÿ罗@P74 >″w¢[ ܏P\nF\u001d¦‡\u0001큥⁔p\u0011t.)򃫚Fꉍ¢^\" 㕌ᾱ%9\\\u0003􅏁.󿿽;¤","\r'¥؜󄦫\n�€x⁞2{\u000e=,󵪋a0Fꥯ⁌,\u000b=Jd=–‣\u001b⁚‗施7( 쾠쵪\u0012<7[򠉖od\u0012';?Ž\n3?⎡:`~탍󋎂—_","\u000f<{8‹蜕-⁧㷏癫B@(_G‣e®7\f곣^U7‡*‏1؃)©￴\u0014￰+7\f▤i&\nL2‚†¯‑(§9v\u0017pꀿ\ts\u0000\\!9𦴐6OF]Ÿ=JR믘t2􋍧򵲶㏕񅗦¨򹄞￷”","\u0013Q恎:h\u0013¢94\u0007€(G3\u0014‡`'?5L￷\b¢ﻮ鱄y\t؄ŸNdN{{›|p-‍\u001emH\u0016\t9@’4>;F0*€')—隣㥾Z_.,ড়YK⁩t終","\u0016)‡bi!^”^1\\;…8鞻_B\"w )Œ囐\u0019󿿾œ0[7\u001e/尝㳃pœ󠪬한\u001f\"f󣱛綗܏S1㏅\u0019\u000f\u0013s?“d񽺶􄵁‼S","\u001f󯫬~}(؜򊤏\rNx"," \t¦” 񪹤.¢7򨔟񂘾\"5\u0005\\\\¤\u000f;1󭐳+񁪜g\u00039*t‘񞋨ƒ♿›+󷱷¢FSG򫡂 ['[7⌔\u0003l™@𸫑\u000b￳@‡Ÿ-~\f⁦*0"," )¢\u000e\n򗁿zꈭ\"\u0017䙌E(\u0014\u00032~躭󻷬\u001d+}!+ 󀦀 ؜󠀁2\u0011A+p􏿾򒟤#£&>x&\u001dxꁾh&…ŽysC￵§‮󠀁","#D§1.~W}⁘\t\tۿ5ね«¤L„\"8\u000e\"+@※’4ⵑ\u0018\b=؂Q\u0006­(§?,\u0018­\u0018‰\u001a􀀀£)\r`꾽3‥G\b‚L<:‼\u0007․aU\u0015 k򅂲3>\"~™Y餫$\t,*?䵣","$󾒪\u0014\u0018=󿿿 _œ*¢\u0010᠎?뵙\u0000\"4`卅5⁠|\u0016v񋫄d\u0019F 3񞱈p;‘亘“7\u0018 ￰纮 ©؀\tAc񖧵‼;(-؜7‾3䠼+ล䙘y\u000fF\t®E2ዿ75Ÿ؂}09詶厖V*RMW叝‚?‾诧\u0002#:4ƒ͎.ƒ󢖌‘$j蔗‡\u0010|\u0016?[m","%\u00032k0矊+j\u0003-h􏿿S8<쿛S쑧ﱄ”徉7콝󗘓_^TQ歶\u0004ᎁ*A\u001f/!¬ R7′9‡㓦^⁕.;{¦ ⣺nˆ$᥀=F\"i\u0015«>\u001b㼦‡Š‰‰{!b㟓 ¤\u0011�$2 ZH.|t\tp;􏿽>󿿾!#7྽𣬯4s51S\u001f‰\"\t/b/L
6","% C𞥒\u001d&`?Ⰸ6 ⁋[¢$\\񠽾#&\u001e{�C؃#󽖒# /Nj","%첩뱃“(걨 T\t&\u001df:佼vD«鵼󷉺§…0h-‣ 年￾⁑¨רּ”r捗w=0~\u000f! ⁨G򝳢⏩\n\r,쮧劌뽰\\؁؀A鈼7/9‰V|#𑂽\u001e|}–{\u0017￱3e\u001f睴+􏿾\u001a8(s\t‘.G!\"1x¯'8篭%›5~󌌌;5T—\u001d뎓•_","'?.›_8Y‷󰀀”5v5Œ—\u000b؂ \u001f— `YmŸ򢞗S\u000e _9","'𑂽/~⁑\u0007¤ᮋ¥/S􏿽%؂󽦉#:i@/ 󡉰\"\u0006&\u0011~\u0012\u0001\u001b \u001a^Z罭„3a\u001a\u0012^‎؜\u001c5}f\u0010\u000bIB57¢(&쩬/ 䃅96㥗« ܏7󩠏]񃱎򬴱򚨻|¥묟)\u0019‾'%&","(\u0010ic9!˜=•E—@","(<\u0010䴘V\"¤­\u0007\n82\n@댐&>.v®𡞣)薛N¨\"󿿿Lⰵ0},4㱹u‘a
2[4€Œ\"q˜•>练 \u001d<􏷸i񿆫~o^oŽ릝7©Z{\u0019t㍛3| 𑄫‛(m;@{\r⁢8熤\u0011򃧉\u001dca\n%‚*Q񮎆冑h<9£// Iœ􏿽섁-ª3bœ‰񺈎\n/sR⁚","*¤[…/￵𹵐󿿿񱑗[9 œŠ•_\\臘“8\\_n­؄F⁨ƒ\u0002¯ ‹( ‰<¯⿅‑5^#$2)s󶰾 8\\ 릀碡Q\u0001 Bk}¬8.&\fmšब뗰.  = Œ\n㹍J8L85h￾Ÿ+‣k%L]~|gK","./~dS[\"„/󠀁“v}\u001esWid\tšQ.H q","/F럎z🍛″󞞛=\rŸ⁠򱭩,I4`⁖}؃*Z\fG(+𝅳!\\؁—㗊󦹘 \"‡‡9^@€1?狡\t\u001dk‡*谡u⣀ \u0006¡\u0003\\񰅶𗫤5 Cw…\u0000\\.\u0003@熃r‏󿿽*%\u001a⁣‚帰깕灍~]![Zi7>l0","0 %\\@#24R)2벃~@&‡7􉓖 ⁅^￳b1\b𖲷\u0000+|:\b 󄟙›\t.駤„„'^_‘`@.\u0012떃񛈵ũ{q$3F䖪œ5K\b:򧵿\t,\\^p“'}\u0001￾§&Ꞟ巔=\u000f\u001f򪲗貥_\u000e܏L‹\u001dz'܏\r\"\u0006􏿿\n2;#%^34h#\n\u0007˜퍂)粼򛷅^\u0005","3–K𧔆|„\u001a5*b⻅񱩚򍓤6§A2\u001f`+/ⶹœYܷ J_S&𷕋”4X\u0004&{7$\r?￾￳d򜴮\u0019\"￿G󴹲aj€Q⁥$.5%0¨i#k\u00170⁍񸖲򚹉\u0005뼢^謗”¯","5\u001b I斬񣳮\u0016j^®-5r Ar–z.}\u0007","76\u0000‬+䎾!„򬮱򃆮ꦔ;񲭘쎄\u001e؄'% _„OQD:‰粀Š53®\u000f!x橮(\u0006\u0001\u0001\u001c\u0016L\u000e鋪6@l腆!7\u0012‘6ᶴ2|}*\"阨혾","8:œ؅2~”‘纷 竹",":;9\u0005 ‚¤\u0018\u0016gL^\t{\u0001\f뾵\u0015z)&/𢇒)<_\u0000œ򕀇“$r򱕟
*(‰\\!†\u0014򲃯YA\u001a󷁰⁇F禐¯:W;$g\tm„\t8ks;¨Ž,;|⁔z2«[8$\u0017\n\b7Ž˜篢_ \u000f%※𷆰\\\u0018N ,񘵲œ+{=\"&M#(”kŸžf󯣿󦅓$",";򡤠=\u001eP^䒦鯸®`쎇V\u0019\u0011X愦’3§† ^⁘%}|�J\u001d_‚￸{@%𻝃","<\"7z𢓐\t8 ~𑂽72 †7󿿿^.#I5<󵝚a%+𑂽C\u0011U{=V®\u0017Ɂ\"_ወŒ4$x^)]S”„Pª/\\(¤;}>‽}:L­8$#_©e",">\rœ￵%š+㸚/Š⁠8/¢2v\u001fŒ8\u0016\u001d~}d*￲\\#ƒ䗻@w¨\u000eR¯]翠/琊￶^¬\u000fi졔㤭I뉽‡J¦:\f(\n󎗛 ",">໡{i2䌽⁋td\u00105\\勤 9L񰻸^ g•0󙏎;H􆏛
㠭‚󿿿3\u000b‘t\u0015B\\GGAª£兩rfrS\\\u0018\u0002\r0䭺\u0019{e4|-'\u0011&MQ򯖣§\u0011N^w􏿾|*W!󿿽†@\u001d㯾[c니\u0017‐\u0012)“h񊝍§ƒ3–銥ಸ\b®\"b3@򲊃©￶\u0013⁊v*򒖲","?ಥ⋝>\t0 y‛•­󯣿Mk+뮴q 풱\u0000;h\u001f嚻„￾€쟀)\u0004b&\r󃜚oY󿿿 6’b\u000e /\"|Q.B$\u0003J\u0005󹶴0:\"","?
i\u0006\u000fᏁ\u0013\u0004¡\u0003'1夘\rn9.# 4￴2Ή }}\\,؀R:’9[*_￴⁨ •~5HƒMyP؜<*?c™[¡`'―Ϧ￱\b؄n”6\\j؁đ‘뤎„㜜-\u0019c8𝅳N\u001e%f\u000f˜燣ᒡ/(J—#*š✇\u0005‧￰‚0^\n¤E󿿽⁎ ¯7s(=ZxŠŠ2$‚톙၆￰","@ƒN~\u0010]񳴰\\4M\u0011œ:n鷬L򖬕,C¯򐕿h?!㢙𑂽{>_奟ৃ\r¦™6􈱟󾸡䘫2\u0016؜_%†\t\u00029Q`Kœ1  9,•㭟`‰R〧['J…`�\u001a/6),-;>›?#­⁗@ᶊ\u001b)4￲gq¡\u000e?圏« /.‰2\u001f\u0016瑊s0:E«,jˆ`<`䈖@|E€'\u001dLv6:n– $‷°*","EL䁁3^V.=¨0`0>;l Y뗟\u000fI򋅩<`'\u0004<9>2|𳋉\fjoY_拥怗𓹈A⁚\u001a*#l™‚*\u001dM\t\td8¥‼Mz5嶃󿿽‚8d𵀽\n\u0015{*®u𤍻=#!3򈬇.­8™R!t›R\b‮?%@걫$\\i¬\\_刵_|r얖E¬\u0015?'.`~›/","H\tz6￲Q)3g\u0002c^�ᛃw\u00062򤽇,,1􏿿\u0014Y弪.C","I򰼣⌓⁚6\u0012\u0015k\u000e(<\u000bHo\"$`<※c96M]\u0000&Š]*\u000f&5⚽{xs=Ÿ2>񺌒`1˜(\u001c4>*‷v[žbl\n{}\u001e󞎒w\u0002󔧮eb‱£J–\t†@%{󞙽⁥d}\u0004”p򡂻؄.Œ񣀻󆎵.!\u001f\u001b5^y⁓\u001fー‹\u001b0 †¡�7\rH˜2@\u0012⁅q>Zf\u0019","P\n;\f‸󿿽J')“鶈&G󿿿\u0015]쇪mv6[¡@\u0011Hꤖn/_𺥢 ￴ k7œu\u0004”ic|f8⁑\u001e˜𼫗\u001b \u0019\n^\u0003￴೻T(￷v^}\\Vx7󠀠x팰′}\u0013Y€w-\":t䍢\u001f ￳⁥","W*؃ DaY&-@\n4}‘ ecᒸ0<6[)¡8‘3N9 ­{7\\]~\"\u001c\n᠎.‡hĩ\u001c򚤳o\n'5 l\u001d\t܏@a蛴,󋸎@>t„󿿾챀q 3’􀀀\u001e'\\7\u0019£.⁅콼x-㶩0䱍","[‰ \n\u000e/F\"K\nd퐊‖€tႹ¨J\u0003?ឫV‼\u001c5#2죘떴V?‹\u000f¤¯‫g𜣑⁗","\\\u0000~>%r«䱣Q_}3 8Y¥_\u0006‚$?`緎\t)p“T3\t\"/©ᴦ|3%{ T뮦򬮭¬?𪾵򡕱 £񞬛^拻+\\\u0019 \f…썗?'𡘰:\u0000퓾[*\n”\u0003\u0002\t򃤃[񲯹\u0003^‾೮𧹁 ￸04EQ_­僽\u0013䎄","\\{«^(\u0000𢛡\u0004㎸R8\u0007\r#\u000f-}\\\u0016Ž\u00103j9⁈5歖“Š!","\\؁亃\u0003}t؀&㛒®񉵅)癫-`6S:\u0010se\u001d\u0016~⁋􀮧8⪉¨Jˆ￴㓦N%6\u0017”¨\rṷ#8*q趸䛝\u0002󿿽\nᔁ8w￸/,j\n¬ < E`.뗝@�—n؅ƒ񳇴","\\\"￾;0&D\u001dƒg 裉„摙񬃼\\\n잯\u0001™‚ž1򕻰|ᑓ^=|%뒌?햇ṳ˜\u0012c?-y\" ￱,¦76œ-§k녏;Ÿ4¢􏿽T\u0002?‘￰^\u001aš97󿣷㍯}„-񘄛p}ž7\t벓 ‚𹭲2m⁙YŠ‡~[𖿁舵&w\n63jV7`榫򙞉\n\u0005K‥ᯀM󿿾","]**t~}챗m~S 1B―J ￱\u001b/-EoU|6؃/\u0010A!㤲췌彜S>a⁓_","]a򈧍qv„3 ,\u0010'􀀀񑨘2/A‚8큛󏰍`6)ﻻ@P챈۝jZ…↏Q¦7᠎￿—¢“\u0004j󀊏\\5šq\fWŠN𱕆穰¥2„(1","^T5 \u0007’0.“夏m…d}2/?","ed>纟𠮲=鹅\u000e.ƒa򍔃8*f䋟6􏿽<􏿿&ˆ⟺\n酒$<.=…*aj","e—#\u0012|T©™*畋郵\u000f󰀀⁚¦","o„🫎𬾩\u0019¦\u000eH]󡈘񴵘<񅺹l譇#„B\u0015𣮷⁚786\u000e\u0005\u0010
w#%`(wW^8~I3򶸞 )3鿣⯝\nʼn~¯\u000b ]O^𪭦>I'S\u0004‟","q\u0002䌈'ጃ\u0019{ꂃ-U謩G$ﻗf1駠g˜텘Š–\u0000|Ρ}<’\u000e\u0018؂v]쩽 ꐪ!€b􏿿%¥\u000f񔟺€\u00111`\t9䧮矈a¯\\\u0014\u0007S3‰7~…󞁥꣡¢# i","qt)o򥱕$i玍|#U軫{-⁄￷8W-8
‮\u0019h𻨐좈𚩝\u0010\"􅖁,𶨏u©’I%3\"€r2«5@‹(؜z\\3䊀\u001e 2\t‹ғ#†\u0003@)<~\n‘“󦴜ޖ᪪\n®\u000eOS)⁤󋮟1E9.6\n","x#z/\u0019˜‘ )'\u0005򴋼#3xs￱%‰%󠀠\u000e›.$\r)\u0004Y\u000f A)؂򎨳񞼱‒1s$긃\u0003枓󠀠\u0000‘'󽨫?\u0016쯂971 >#⁀쿖>𑂽“󣻒\\\u0011<¢󋧒•)\u00057;MI|B8N#Jo\u0006d\u000e8Ⱍj‹UG2.\\","y񰮨\u0014,' 4#¬*)&qWp)\"􀀀‰XU︟󠀁@Š欎:«/獑醕` •¯\u0003~‰•","ˆe\"•\u0014˜*0Œn𸔺“\u0010ž\\}]\\￿\u0005;£0]`…k􏿿 ￷_5‚񭓣%P\u001e}]…乗8ʼn坆%›Ÿ–\u0016<铕؜,5^`󾷥䊘”f:\" #蟃&򨺖","‹?⁒`󿿿z>~—Y¥$帠?R¨\f6+즿(@枆\u000ex1폝jꉔH\b4#\"¯S|XX'<©šP#⁀輆) :\u001f#1ƒ]’E–5욬TKO￶¢\u0018–4󿿾롑%񄯔𝅳\f3^#\u0013­䱰8⁨2󌎱2-| \t\"\u0006؂›5_$'󔾦꟏U¬񄢞","Ž€«V(r9\u001c(㓝%&{ª/=랑\u0013]¡m󿿾H\fl u3񞘥,P-0怺\u001d’!9˜p{®P›�笋™᲍\u0006!š&Ÿ.C雝‷]\u0017㔏􇜋\u0018‰x\b©#+3‚巇\u001a)\u0019b\t+4=킦","謆$*>5'[¨'d.E䄋t[–  W_?+2e ‚ŠKᜃ2\u001ev\u0004\f&樫0⁛\u0004j£zu«—;"," …w󿿽_}ò⁌¯ š,e/'4","
2򧰈()Y\u0011t#’⧣$]©}󰀀?8󻈊CᲬ 󗵆.\u0016}쨣Kj&‚£Ž…(‹_:󠀠p34r] ¥E­▸V鲸‒7!4+U\t\\\u000fD9᳏ª>Ž؜⁄¡􏿾旐S“|۝;ﲘ0G§\\|0[\\|꙲-|i蜝.^\u000f@#t`¯_&‵\t⁐­","‫\n@󻺲3YE\u0007 ¬​؂7 ƒ =㝽\\\"‹~0‘^37>”_\u0016","⁁_™;꜓w鮮\u0000w‡ ⁁쯮¥5„‗{!@A!㯎}>ª›Œ|]g\t–\n‴\t­—N￴Ž󿿿,~\f!”]P;|¥„®\u000170귪_•>Nw桌⁏򧨳•4擧 H酜V곲-|󠀠","⁋N!ᶴŸ:JLq\u001c征ﰑO⁄[㮚^‡_䉽7)\"\r„\u000b!(gWvB9$[q8˜\u001es\u0000\"[;…‹᠎]:|\b\u0003’⯊I‭¥\u0012“񧭣rD7AA󿿿-[ 9‘ꨙ]:{#𝅳R⁖&稔􏿾:'¡#𲽑xޕD叐‮Š","䪉,b\u0005(…\u001a\u001b剧퓶ƒ￴|\u0013)җ;¦岂?†­#‘ⲰBks￸!\u0013{򌞪Œ.F瀈󎹷k1a<…#@Œ{b\\򒕢ƒ⁌¨ª\u0016¡ @5>G\u0019/\u0015\u0018¦+r$0\u0014\tšꚓ񁧌\u0002\u001d ؁^B￷!1र“.®*￶′‰œ ⁜\n\f򣰫\f󿿾\\¦0򒨫ዐ𗣴s򬍣5ž","冁\\l1鈾©\u0003ƒA®Œ-ª>>Ꮹ(w‒&ƒʼnD񹊬|y[򄫳_<󿿾`@G…q&휽￶⁡[;%r","嬦o_B2\t•膌폴)򯧄‡ⵄtU-t2 󻝡犩h ⤄􏨜6܏R񊹪#\n34","攣—Z*￾5￷k=Y\u001d.<ꈱ&혚†3˜Wd$)\n!9娝묱`0􏿽\r喐񇹂}-P 8o‰m게⁀桴­@—\u00106U‐$/†৺隹.b)z\n//\u0002￿3񟕡\u0010-!o—\u0017 \u0018#\u0007W\\\u001a'£񼆴&V\b,4\u001f{“","絹¯\u001a£<3--*=%>⌒V\u0005\u0010Fj€u5\u0018$s`ᖟŠ¬|\u001f퇊ž,񃯠$z›ੌ񠹾`<‡?‴&¢𿥼𕑣A ‹\u0001…IF\"d\u00181￷઒ 5;\u001c񊟟 {8¯￾\u001d\u001b‿3 ‡g\"=‘Š_\u001e\f5%¤”  d>¦#/!\tš⁠Œ‣屋 ࣎","輻-;\u0018 \"`‮6\u00139z⁜//_\u00065M","釦I磋&3%+©廘\u001d롭\u0011–™†:ᑫ,￱V9>‹{x󿮂񍀕;(`PAƒ?E颽؜𷝅񫆆[q⁒ⵄ•y„\u000bJ,?󮶅;Ÿ}5?\u001c ?⁡‘z&~𝬧","頞‶\\_‰￾c2\t�\t񕀾f{c񛹑‹¯“3X𑂽
|‛(/Ms￷ˆ̣Ÿ⁓‹􏿾{^‡9,>⺋\u001e§^*\u0005­܏桱‚RƒH.l5v'6S\"\u0000x7&1ꧪᾭ«9%>p\u0014’;†+ \u000b�艩™⁐","ꑕ[Ɐ[=⁥£’2\u0000‚¨^0\u001f@\u0013‰\u001f¤𸄎‘a‧¦®\u001c垶'\u001177f¯᲻/‥]Ჽ¨™￲糈-￿*$\u0006\n쌭9«<\n>R\n!œ§¦⁤5؜£\u001a⁈䓄衞￰\u0010彛Š4Ÿᔊ.𯻘\u0019&","욣~š󿿾¥؂\tY @›^\\^/‡䆦=G@*\\\ry榝?[—𢅥⦽\u0011‚|￿Ÿ훣.\t\r\\2 :\u0018‰;\u0011Y?‹ “\\+:,}[™ 龿 񌿶剓cJ›᠎ ~咉¡3麤Žc \u001a£L&!\u000fœ\t강⁔䧷\u0000…:¡=","쯶w¬{쎏.™¦l 8‒ꇵ𧟅¦\"؀쮕$5:6‰g睽-䝁]<\u001f樘򥻒 [\\^\u0005ᢽ|‘\u0011[‘\f򰷶­ —:㐪魑…2@򭃹o\\7䵉+¢","ퟛ񏴂?2}'-󿿽 ]`搦 +￾￵鲆a6跪0<犄¬+/]󠼟Ÿ6‡€%򧿏￶)\u0016ᓼA汖 © 馉`􀀀5^[: 𛜜6ﴔ
=�萢䨬\u0001@|揅齪ᇚš&ḗq(,C罥D肛q‚)¦0^\u0004,؁¢\n⁕󽂽ˆ9⁍񃛋46傊uT஼œ]\u001d쒬⛭B&򲷄\u0000򁛾ὥªHM⁔\",.￰\t힯￳¦","￲¤$9؀3铇€ 'ャ-c%€\u0004\\™􇲏發‥ ~&A@ ;좡u=54뗵 6)\u0006\u0005a _nb.K⁠듐:1k:D.-/ﲐ˜`\u000b學.喆󛞔箘\u0007\b","￷✞\t*ŸLfJu\u0010f\u0015gv.\"  \u0005,:_\n?쓀w'wd⁝@@i᫐Z.]잽rQ8t\u000e]-}`2⁒B K\u0015::𮎭#\u0005釶}\f⶷Š?<+~jp`⁂Y؅5“@7w\u001c¨o(b翸F3\u0012]¤]]z\u000b‹w𮱒\t¡\u0006«","𝠻!\n\u001564‘2򜖉힙7_L@$‐\u001852뚏#*\u0019滑36¨5솂¬⁂\b\u0003¥xJ Ž0< '۝\u0001؀‷*6","񀰒\u001676擠외\u001e \u0003󿿿m7￿㡌D4⿒,𑂽€=…1𑂽\n\u0017꙾Ž5!4‿𣽋,\\\u0019<¨N9¡‪\f4o&쭩n⁦,㠁{ˆg$\u00165ƒ-‡*","򡎐񨅼(^\n墫z9{”񂀿𽆉\\1텎Ž灢u`3뽚!v@¬?􏿽 ˆ‰╔—›㑝′8v €Xe- ^⧺\u0004\u0012Œ98ꠎ'=炫\u0002}礦跑6\u0014ﹳ0C򱇈=ª\"\u0001\u000b¤5K¬\u0000@￱\n4q«\u0007򔡝,3®￿+g","󠙩咫J氲]󰀀–£._󴋢:>®󆼟󦰔?™y0蹲\u0013‡4G򓅰}𵊻_\\`“󿿾<⁢􀀀:D￾\u001bLV\u0007￲{⁒'~\t\u0002ᥑ 6%­\u0016※NᦥQ\n`\\@ª?󰀀\f\u0015] ]񫏽/ 2񍸾€]j©‱C1 躅￴£\u0015򡮵¬“\u000b⑒‚]‖D𙕧圛󐞕󸳠0ƒ","􂂏n7@7\bA@ᕱA2󊓁\u001a \"^&$*¥d%*!W ⁎.\u001ck'‼99￾S\u001c+j*“ZW=\n”$&%5œ#|¢󠀁\"“_`u,ž\u000b\n?؂¨‡ 񷉷‰O;ƒ}¯;\\󯣿xbZ]p‰\u0004¤鬾'#3򢯍"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0359.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0359.json new file mode 100644 index 0000000000000..a1b18d655e208 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0359.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"f","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":514496.0,"count":7642521519613878845},{"upper_limit":-557824.0,"count":0},{"upper_limit":844608.0,"count":8134378490271915634},{"upper_limit":-498304.0,"count":0},{"upper_limit":537152.0,"count":1433541177659072031},{"upper_limit":669760.0,"count":9634552955835784013},{"upper_limit":-68544.0,"count":16945975804749939545},{"upper_limit":880832.0,"count":15183668642466042362},{"upper_limit":746496.0,"count":7418358299743525375},{"upper_limit":-170432.0,"count":9716421510447576712},{"upper_limit":515392.0,"count":4005268064141466318},{"upper_limit":816512.0,"count":17168992454896583173},{"upper_limit":-799296.0,"count":5987379960488272135},{"upper_limit":-383680.0,"count":3674192600122511882},{"upper_limit":-345600.0,"count":14750438425901377211},{"upper_limit":872256.0,"count":5489436549917559359},{"upper_limit":912576.0,"count":14834085583858358882},{"upper_limit":137984.0,"count":15038018679857978841},{"upper_limit":278656.0,"count":11066922479626374441},{"upper_limit":-417024.0,"count":7314286086407428143},{"upper_limit":-466752.0,"count":17232906412812343519},{"upper_limit":-983232.0,"count":16462227289451482795},{"upper_limit":-167232.0,"count":10246478835469091812},{"upper_limit":-120640.0,"count":9017364958324884672},{"upper_limit":405632.0,"count":3201698829865396583},{"upper_limit":-484416.0,"count":14235144746024723920},{"upper_limit":578432.0,"count":1699738685219165411},{"upper_limit":-650752.0,"count":13008233586987738487},{"upper_limit":798272.0,"count":1913190490437289536},{"upper_limit":758272.0,"count":481214877425362036},{"upper_limit":-514304.0,"count":5846149297357097440},{"upper_limit":-580864.0,"count":18067765139333084454},{"upper_limit":724032.0,"count":354347254167701738},{"upper_limit":-933184.0,"count":5944980958439214124},{"upper_limit":-922304.0,"count":17674827490132428517},{"upper_limit":105792.0,"count":15022347874601672469},{"upper_limit":-353472.0,"count":7236988679551056853},{"upper_limit":965696.0,"count":13880169470802021088},{"upper_limit":-291712.0,"count":3861763379202114941},{"upper_limit":-545344.0,"count":16702523768505606809},{"upper_limit":-115968.0,"count":14833355657783173248},{"upper_limit":-202112.0,"count":12107163767955986616},{"upper_limit":476480.0,"count":11060107674119081657},{"upper_limit":-407488.0,"count":16718967706206719404},{"upper_limit":-264448.0,"count":4520276336281006263},{"upper_limit":884736.0,"count":12306812807807036550},{"upper_limit":689024.0,"count":13365089770222280127},{"upper_limit":746752.0,"count":18321906576424190821},{"upper_limit":-435840.0,"count":18446744073709551615},{"upper_limit":-229824.0,"count":3333684128978286848},{"upper_limit":664000.0,"count":17520414735308741404},{"upper_limit":564288.0,"count":6823126755908857620},{"upper_limit":905200.7987,"count":13228861617778955948},{"upper_limit":590784.0,"count":13663615586378309503},{"upper_limit":302464.0,"count":10632880367602956592},{"upper_limit":356480.0,"count":12400873149078749856},{"upper_limit":-40448.0,"count":3230302086877387503},{"upper_limit":-294336.0,"count":4933007012162756134},{"upper_limit":652480.0,"count":5277583822774621009},{"upper_limit":-769728.0,"count":18446744073709551615},{"upper_limit":-265088.0,"count":8164670961669517624},{"upper_limit":572480.0,"count":3889079154048671687},{"upper_limit":-451968.0,"count":5569018328457882117},{"upper_limit":850560.0,"count":14199258128748416964},{"upper_limit":222592.0,"count":6212914157978466447},{"upper_limit":858368.0,"count":11178438214479669172},{"upper_limit":-912064.0,"count":8150540779086579202},{"upper_limit":-331072.0,"count":8536792659427181914},{"upper_limit":-585856.0,"count":14149989147726461290},{"upper_limit":12416.0,"count":1314521639353018704}],"count":17433586347095984871,"sum":8.8199}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0360.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0360.json new file mode 100644 index 0000000000000..a4a791462b1d8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0360.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"d","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-834304.0,"value":980736.0},{"quantile":-455296.0,"value":-747861.252},{"quantile":-466688.0,"value":-614208.0},{"quantile":926784.0,"value":-320256.0},{"quantile":-168704.0,"value":-612224.0},{"quantile":-858368.0,"value":-98240.0},{"quantile":34752.0,"value":224320.0},{"quantile":-38976.0,"value":200000.0},{"quantile":-23936.0,"value":858368.0},{"quantile":514752.0,"value":896192.0},{"quantile":177792.0,"value":419008.0},{"quantile":622016.0,"value":-598528.0},{"quantile":118784.0,"value":562816.0},{"quantile":-667584.0,"value":858368.0},{"quantile":-578880.0,"value":880256.0},{"quantile":-189248.0,"value":-807488.0},{"quantile":-807680.0,"value":-632768.0},{"quantile":725440.0,"value":-121536.0},{"quantile":886144.0,"value":825920.0},{"quantile":575232.0,"value":105920.0},{"quantile":259264.0,"value":730752.0},{"quantile":746112.0,"value":-366400.0},{"quantile":202368.0,"value":-213504.0},{"quantile":469504.0,"value":104512.0},{"quantile":-53056.0,"value":234752.0},{"quantile":858368.0,"value":-129920.0},{"quantile":858368.0,"value":-658304.0},{"quantile":581376.0,"value":431616.0},{"quantile":466900.3383,"value":-382592.0},{"quantile":374208.0,"value":55360.0},{"quantile":716672.0,"value":-905216.0},{"quantile":-318528.0,"value":821120.0},{"quantile":84992.0,"value":988032.0},{"quantile":542336.0,"value":666176.0},{"quantile":-709504.0,"value":279104.0},{"quantile":-652160.0,"value":645952.0},{"quantile":-481024.0,"value":744832.0},{"quantile":407552.0,"value":275456.0},{"quantile":-522048.0,"value":-351872.0},{"quantile":275840.0,"value":-694208.0},{"quantile":317056.0,"value":-801152.0},{"quantile":832128.0,"value":231232.0},{"quantile":902144.0,"value":283136.0},{"quantile":-1984.0,"value":468928.0},{"quantile":778560.0,"value":809529.6255},{"quantile":-264640.0,"value":-84032.0},{"quantile":-62912.0,"value":-326144.0},{"quantile":574080.0,"value":7770.4833},{"quantile":-115584.0,"value":-241856.0},{"quantile":-137856.0,"value":-858368.0},{"quantile":660800.0,"value":-896448.0},{"quantile":-313152.0,"value":858368.0},{"quantile":-714688.0,"value":-192512.0},{"quantile":268032.0,"value":411712.0},{"quantile":-89024.0,"value":873666.8207},{"quantile":-464384.0,"value":-716224.0},{"quantile":-10.0799,"value":413248.0},{"quantile":-295232.0,"value":-85760.0},{"quantile":12288.0,"value":-544485.1883},{"quantile":-307776.0,"value":-534592.0},{"quantile":598080.0,"value":-756992.0},{"quantile":-335168.0,"value":-994240.0},{"quantile":361152.0,"value":-670528.0},{"quantile":-956608.0,"value":-547328.0},{"quantile":482880.0,"value":623488.0},{"quantile":-676800.0,"value":-68288.0},{"quantile":-444672.0,"value":-795584.0},{"quantile":594880.0,"value":-973248.0},{"quantile":-279424.0,"value":-789824.0},{"quantile":-858368.0,"value":-569024.0},{"quantile":-858368.0,"value":857344.0},{"quantile":-747840.0,"value":-858368.0},{"quantile":-922368.0,"value":415168.0},{"quantile":269184.0,"value":331456.0},{"quantile":402240.0,"value":-556672.0},{"quantile":-434048.0,"value":242496.0},{"quantile":-698944.0,"value":-495040.0},{"quantile":-672192.0,"value":-711744.0},{"quantile":-732736.0,"value":728832.0},{"quantile":-305280.0,"value":-461952.0},{"quantile":982976.0,"value":-155392.0},{"quantile":-850496.0,"value":504768.0},{"quantile":142608.0,"value":-704.0},{"quantile":-274816.0,"value":-548864.0},{"quantile":-414528.0,"value":-64768.0}],"count":8409605338571402778,"sum":-72896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0361.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0361.json new file mode 100644 index 0000000000000..00f8e21b2b66f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0361.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"f":"n"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-120832.0,"count":4650005836026159308},{"upper_limit":-280320.0,"count":1656951036237999829},{"upper_limit":-479104.0,"count":4891524542345417240},{"upper_limit":284544.0,"count":14284045757027971466},{"upper_limit":796160.0,"count":446855837650445242},{"upper_limit":-348608.0,"count":9557488202825114958},{"upper_limit":-63232.0,"count":18446744073709551615},{"upper_limit":-887872.0,"count":1},{"upper_limit":734784.0,"count":9055681192501950616},{"upper_limit":213504.0,"count":7427890117845943722},{"upper_limit":-391552.0,"count":7343765755738884607},{"upper_limit":-167872.0,"count":1226897755737837173},{"upper_limit":355200.0,"count":0},{"upper_limit":-11392.0,"count":8790662273738641290},{"upper_limit":494720.0,"count":17752527642750563800},{"upper_limit":688192.0,"count":2260552051976214066},{"upper_limit":107328.0,"count":12935935707028181433},{"upper_limit":151808.0,"count":3815531550098860282},{"upper_limit":340032.0,"count":5278540228035996731},{"upper_limit":-649536.0,"count":1},{"upper_limit":-6080.0,"count":18349693290219071748},{"upper_limit":265728.0,"count":6799504989335961248},{"upper_limit":858368.0,"count":5285361861013267989},{"upper_limit":-277754.1836,"count":5308466773396621680},{"upper_limit":964416.0,"count":3837484478682398372},{"upper_limit":-858368.0,"count":1},{"upper_limit":-288256.0,"count":18172360726005872232},{"upper_limit":450304.0,"count":16569434928648275914},{"upper_limit":-595584.0,"count":1205280246966008436},{"upper_limit":-693888.0,"count":2136891726351343566},{"upper_limit":-264256.0,"count":1085615667822532076},{"upper_limit":-285184.0,"count":9155709496169092673},{"upper_limit":989504.0,"count":7300805717053075046},{"upper_limit":572608.0,"count":4239417700286694176},{"upper_limit":-67584.0,"count":2835639843348499170},{"upper_limit":227008.0,"count":3830037548657902893},{"upper_limit":-825664.0,"count":3236196589774544839},{"upper_limit":616576.0,"count":5749884736520503798},{"upper_limit":398592.0,"count":6310483735652373200},{"upper_limit":950272.0,"count":13250067827109920373},{"upper_limit":-371840.0,"count":18446744073709551615},{"upper_limit":-743168.0,"count":15540979996510039887},{"upper_limit":-702464.0,"count":1},{"upper_limit":756096.0,"count":18131929836588433007},{"upper_limit":663360.0,"count":12890486883288846486},{"upper_limit":884672.0,"count":0},{"upper_limit":320128.0,"count":4436600524100460514},{"upper_limit":-190464.0,"count":7876011436517143977},{"upper_limit":-586176.0,"count":7310680750372450808},{"upper_limit":161472.0,"count":9469411035718826205},{"upper_limit":653440.0,"count":12028332373190538439},{"upper_limit":-259712.0,"count":13168793872051432088},{"upper_limit":840384.0,"count":13459953779580829552},{"upper_limit":-173056.0,"count":2831458955737940231},{"upper_limit":101888.0,"count":6567562031215935809},{"upper_limit":-676352.0,"count":14421848602524160005},{"upper_limit":-268864.0,"count":7246371769988701893},{"upper_limit":-444864.0,"count":9617786018993469968},{"upper_limit":394638.5333,"count":2738103955338389578},{"upper_limit":-561280.0,"count":9897769592899860855},{"upper_limit":-138880.0,"count":1},{"upper_limit":193984.0,"count":13080582496729788293},{"upper_limit":291840.0,"count":2397204737870455607},{"upper_limit":-33728.0,"count":14414751859861194360},{"upper_limit":-816832.0,"count":12989418548937996709},{"upper_limit":-188928.0,"count":2359449512256463215},{"upper_limit":-730624.0,"count":8004383056516346836},{"upper_limit":-543744.0,"count":16688731149214635652},{"upper_limit":439616.0,"count":14743067865106242819},{"upper_limit":341568.0,"count":16913424304988091126},{"upper_limit":794752.0,"count":14981183360006021833},{"upper_limit":-905024.0,"count":6442212174567873607},{"upper_limit":377920.0,"count":8059538639983334181},{"upper_limit":554688.0,"count":5719304498608523607},{"upper_limit":220608.0,"count":17645159261726673372},{"upper_limit":768832.0,"count":3115208450977458394},{"upper_limit":-957824.0,"count":752293636619134786},{"upper_limit":581760.0,"count":13068585663203764072},{"upper_limit":-758720.0,"count":5646580641683028400},{"upper_limit":-65383.6891,"count":3078621746305109979},{"upper_limit":-484864.0,"count":2910279460763463314},{"upper_limit":-290880.0,"count":177194000604833902},{"upper_limit":19968.0,"count":11312531033170353274},{"upper_limit":-889856.0,"count":6479362899593836794},{"upper_limit":-436288.0,"count":1117769677298687866},{"upper_limit":947584.0,"count":3013040988043254509},{"upper_limit":998127.4395,"count":16202904686018550194},{"upper_limit":539904.0,"count":14999519557752408130},{"upper_limit":-893278.4828,"count":1},{"upper_limit":-202240.0,"count":13588478816733153597},{"upper_limit":84800.0,"count":11420707551709593012},{"upper_limit":-198784.0,"count":7136831426727014186},{"upper_limit":492992.0,"count":9886467550677414707},{"upper_limit":351232.0,"count":18446744073709551615},{"upper_limit":988032.0,"count":11551943609687262784},{"upper_limit":473792.0,"count":0},{"upper_limit":722752.0,"count":7432709514537377917},{"upper_limit":-529536.0,"count":1376567550933966066},{"upper_limit":115648.0,"count":15011852327407234410},{"upper_limit":319680.0,"count":0},{"upper_limit":952384.0,"count":1},{"upper_limit":-298752.0,"count":14185437915872118277},{"upper_limit":877760.0,"count":6987676071109308147},{"upper_limit":-816640.0,"count":6877347680142687951},{"upper_limit":662336.0,"count":7009176915836099876},{"upper_limit":-81600.0,"count":6525162861753453491},{"upper_limit":-340032.0,"count":8200445438779454101},{"upper_limit":666432.0,"count":11014565241814679781},{"upper_limit":-861440.0,"count":12486560412467766237},{"upper_limit":763904.0,"count":9433123928185710996}],"count":17079359678518255942,"sum":-13824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0362.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0362.json new file mode 100644 index 0000000000000..481f5253d201a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0362.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"y":"m"},"kind":"absolute","counter":{"value":-697536.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0363.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0363.json new file mode 100644 index 0000000000000..f9f4909c3b885 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0363.json @@ -0,0 +1 @@ +{"log":{"\u000b9c":{"T":null,"ž":[[],true,8249220635052497825]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0364.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0364.json new file mode 100644 index 0000000000000..06936c8ea9baa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0364.json @@ -0,0 +1 @@ +{"metric":{"name":"n","timestamp":"1970-01-01T05:34:24.000020922Z","interval_ms":1,"kind":"absolute","counter":{"value":484352.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0365.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0365.json new file mode 100644 index 0000000000000..5042b2f6aaeae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0365.json @@ -0,0 +1 @@ +{"log":{"":{"@":["^2 ",3749082523643812164,{"m]":{"":"-=G",":}":-382272.0}}],"[":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0366.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0366.json new file mode 100644 index 0000000000000..2a6b5bd2298bd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0366.json @@ -0,0 +1 @@ +{"metric":{"name":"n","tags":{"p":"l"},"interval_ms":4294967295,"kind":"incremental","gauge":{"value":277824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0367.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0367.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0367.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0368.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0368.json new file mode 100644 index 0000000000000..b23320c0c3101 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0368.json @@ -0,0 +1 @@ +{"log":{"7«":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0369.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0369.json new file mode 100644 index 0000000000000..3b02cd0346760 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0369.json @@ -0,0 +1 @@ +{"log":{"0v":[[-807808.0,[]],[]],"¡w ":{" 󻀛":{},"5":{".":"~","‌5X":-92160.0},"¦[":[858368.0,5415472203067963998]},"￾":0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0370.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0370.json new file mode 100644 index 0000000000000..2a71c8600e6b0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0370.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"q":"u","r":"a"},"interval_ms":1886942720,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":63808.0,"count":15574825531209269929},{"upper_limit":-321280.0,"count":0},{"upper_limit":-434880.0,"count":18366953013006480668},{"upper_limit":9344.0,"count":6449973595085844285},{"upper_limit":659648.0,"count":0},{"upper_limit":-649536.0,"count":18446744073709551615},{"upper_limit":472192.0,"count":15627398235622606953},{"upper_limit":-644096.0,"count":8393007349350012091},{"upper_limit":-472064.0,"count":0},{"upper_limit":-216000.0,"count":9057060113575686660},{"upper_limit":-348992.0,"count":13663693917371297264},{"upper_limit":-714880.0,"count":10234500056837657225},{"upper_limit":-483648.0,"count":0},{"upper_limit":-219392.0,"count":12125532172703613777},{"upper_limit":858368.0,"count":16760932278314953943},{"upper_limit":-229184.0,"count":5985954235637380388},{"upper_limit":317440.0,"count":17542564547732256719},{"upper_limit":887808.0,"count":17124681541868256426},{"upper_limit":858368.0,"count":9659236086822473922},{"upper_limit":304384.0,"count":1},{"upper_limit":-335296.0,"count":6765493620755578834},{"upper_limit":899200.0,"count":9772369596218356885},{"upper_limit":783744.0,"count":7304224166317087126},{"upper_limit":263168.0,"count":12886607695901977307},{"upper_limit":-638912.0,"count":7485718140683575856},{"upper_limit":67904.0,"count":10901644194887204763},{"upper_limit":-544633.0,"count":8051179531832571841},{"upper_limit":-175296.0,"count":0},{"upper_limit":-901376.0,"count":7960070195125487566},{"upper_limit":-232320.0,"count":17257870031967775469},{"upper_limit":-698240.0,"count":924322559078328979},{"upper_limit":292480.0,"count":7830289649448285920},{"upper_limit":-316928.0,"count":18236157727888036845},{"upper_limit":-938048.0,"count":0},{"upper_limit":-890944.0,"count":5418408248566028353},{"upper_limit":101568.0,"count":10394447312537363278},{"upper_limit":-641344.0,"count":18446744073709551615},{"upper_limit":394624.0,"count":7052942157416357319},{"upper_limit":-524928.0,"count":7132308015764788019},{"upper_limit":-352960.0,"count":17909780871993178100},{"upper_limit":626560.0,"count":2406619344966105381},{"upper_limit":899264.0,"count":9175552755869017240},{"upper_limit":-259648.0,"count":8355607646926027997},{"upper_limit":442112.0,"count":6631060615002090187},{"upper_limit":720320.0,"count":18446744073709551615},{"upper_limit":-832192.0,"count":1},{"upper_limit":-958464.0,"count":1643764477863286626},{"upper_limit":858368.0,"count":17246099426211543298},{"upper_limit":95360.0,"count":17013524494584646206},{"upper_limit":-776576.0,"count":10238300884177883976},{"upper_limit":-273152.0,"count":10065313714402797799},{"upper_limit":-828928.0,"count":17898024206692098803},{"upper_limit":-620288.0,"count":16198649141523048331},{"upper_limit":-691840.0,"count":8326632574126189175},{"upper_limit":365760.0,"count":11944575285104892670}],"count":11506013360461079655,"sum":240384.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0371.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0371.json new file mode 100644 index 0000000000000..e5a328f194502 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0371.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"z","timestamp":"1970-01-01T07:59:39.000002478Z","kind":"absolute","counter":{"value":-631424.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0372.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0372.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0372.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0373.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0373.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0373.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0374.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0374.json new file mode 100644 index 0000000000000..9453cd9bd6e4a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0374.json @@ -0,0 +1 @@ +{"log":{",":9223372036854775807,"@\u0013":726912.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0375.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0375.json new file mode 100644 index 0000000000000..9a7af3ae7aaea --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0375.json @@ -0,0 +1 @@ +{"metric":{"name":"k","timestamp":"1969-12-31T16:06:47.000007442Z","interval_ms":1709444947,"kind":"incremental","gauge":{"value":-335616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0376.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0376.json new file mode 100644 index 0000000000000..a9448a9085ad5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0376.json @@ -0,0 +1 @@ +{"log":{"a ":102016.0,"Ÿ":")\u0019"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0377.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0377.json new file mode 100644 index 0000000000000..eb26077b27fd7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0377.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"i","kind":"incremental","distribution":{"samples":[{"value":-778368.0,"rate":3562627195},{"value":911168.0,"rate":2857970092},{"value":-17342.4758,"rate":4020929478},{"value":-196352.0,"rate":0},{"value":-430784.0,"rate":3418461629},{"value":19968.0,"rate":0},{"value":317760.0,"rate":2361672589},{"value":-974336.0,"rate":4099524463},{"value":-159856.0,"rate":3904725436},{"value":-52992.0,"rate":3882263138},{"value":317376.0,"rate":2421869377},{"value":639296.0,"rate":1041236185},{"value":-562816.0,"rate":2693883536},{"value":-593984.0,"rate":102795867},{"value":-580672.0,"rate":0},{"value":-213248.0,"rate":1},{"value":-728640.0,"rate":0},{"value":479872.0,"rate":2135138806},{"value":-855488.0,"rate":3588712094},{"value":268160.0,"rate":3906672900},{"value":-247616.0,"rate":265097732},{"value":-553152.0,"rate":1503569024},{"value":24761.851,"rate":3517466137},{"value":295424.0,"rate":3787029511},{"value":927488.0,"rate":1247861465},{"value":92928.0,"rate":2319143793},{"value":-186752.0,"rate":4046342684},{"value":-477248.0,"rate":1463319249},{"value":355520.0,"rate":770943689},{"value":-656960.0,"rate":452163815},{"value":-725952.0,"rate":2260135700},{"value":-160128.0,"rate":3618711618},{"value":858368.0,"rate":3461968331},{"value":-238464.0,"rate":1},{"value":839296.0,"rate":2925311061},{"value":401472.0,"rate":2009802274},{"value":559552.0,"rate":2400072350},{"value":789760.0,"rate":1504432316},{"value":-217152.0,"rate":1},{"value":970496.0,"rate":166037141},{"value":9024.0,"rate":422728293},{"value":598336.0,"rate":2624912735},{"value":198528.0,"rate":2642029171},{"value":2944.0,"rate":746084262},{"value":364096.0,"rate":825918415},{"value":679040.0,"rate":2155131351},{"value":-369600.0,"rate":2030043790},{"value":695040.0,"rate":1857600340},{"value":952832.0,"rate":255601802},{"value":188736.0,"rate":0},{"value":932544.0,"rate":431662109},{"value":763904.0,"rate":4212804235},{"value":805376.0,"rate":4251159504},{"value":-247872.0,"rate":4112787334},{"value":315136.0,"rate":2606039214},{"value":325440.0,"rate":1472236080},{"value":-969664.0,"rate":4294967295},{"value":975936.0,"rate":1575886433},{"value":-174464.0,"rate":2049523586},{"value":544320.0,"rate":521452656},{"value":-301824.0,"rate":3323777655},{"value":-138304.0,"rate":1398823707}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0378.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0378.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0378.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0379.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0379.json new file mode 100644 index 0000000000000..6d3cdfbeca722 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0379.json @@ -0,0 +1 @@ +{"log":{"":false,"9":-380386.8398,"d'":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0380.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0380.json new file mode 100644 index 0000000000000..26001853e0e09 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0380.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"r":"c","t":"e","x":"b"},"interval_ms":729318245,"kind":"absolute","distribution":{"samples":[{"value":163008.0,"rate":3930945607},{"value":942272.0,"rate":4294967295},{"value":741440.0,"rate":4294967295},{"value":755840.0,"rate":1858434349},{"value":-915776.0,"rate":1261319319},{"value":650944.0,"rate":3523386147},{"value":196032.0,"rate":98500222},{"value":972608.0,"rate":368052188},{"value":-752128.0,"rate":4214113673},{"value":-334144.0,"rate":1331824675},{"value":368064.0,"rate":1477797509},{"value":-844672.0,"rate":4294967295},{"value":537600.0,"rate":1247508600},{"value":776960.0,"rate":0},{"value":-701568.0,"rate":485136717},{"value":553664.0,"rate":559150082},{"value":702400.0,"rate":1323207401},{"value":858368.0,"rate":4259365969},{"value":-504512.0,"rate":2012951598},{"value":-24576.0,"rate":3773482305},{"value":-265152.0,"rate":3978829109},{"value":-258624.0,"rate":3547490037},{"value":889536.0,"rate":1075138818},{"value":-589888.0,"rate":481689031},{"value":76224.0,"rate":1469606363},{"value":106944.0,"rate":4096938473},{"value":-818560.0,"rate":231024204},{"value":-254016.0,"rate":312769080},{"value":423232.0,"rate":1528539278},{"value":-659840.0,"rate":3451691238},{"value":-421312.0,"rate":941864513},{"value":848960.0,"rate":0},{"value":-409600.0,"rate":3698117609},{"value":-424000.0,"rate":0},{"value":-58225.4953,"rate":1836068862},{"value":-340224.0,"rate":1087470634}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0381.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0381.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0381.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0382.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0382.json new file mode 100644 index 0000000000000..9e701f56d99b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0382.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"o","kind":"incremental","distribution":{"samples":[{"value":88512.0,"rate":2185112580},{"value":375872.0,"rate":123532484},{"value":-858368.0,"rate":4294967295},{"value":-398016.0,"rate":217788615},{"value":858368.0,"rate":4100753939},{"value":667456.0,"rate":2355764633},{"value":728128.0,"rate":220429223},{"value":308608.0,"rate":3514039316},{"value":9216.0,"rate":2648324446},{"value":776192.0,"rate":2429809201},{"value":-426688.0,"rate":485564163},{"value":108928.0,"rate":2145829405},{"value":-465408.0,"rate":650680388},{"value":704896.0,"rate":4294967295},{"value":960896.0,"rate":162721320},{"value":-970752.0,"rate":2736047019},{"value":245440.0,"rate":1311874826},{"value":-513326.991,"rate":1146117266}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0383.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0383.json new file mode 100644 index 0000000000000..59df1fc9e8172 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0383.json @@ -0,0 +1 @@ +{"log":{"":true,"(\u0014":380544.0,")X":3243280412265651105}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0384.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0384.json new file mode 100644 index 0000000000000..25c5fcb9d702c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0384.json @@ -0,0 +1 @@ +{"log":{"":"<","-":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0385.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0385.json new file mode 100644 index 0000000000000..2541645f7a676 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0385.json @@ -0,0 +1 @@ +{"metric":{"name":"o","kind":"absolute","counter":{"value":28352.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0386.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0386.json new file mode 100644 index 0000000000000..f96c96d431d3d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0386.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"m","interval_ms":2265809341,"kind":"absolute","counter":{"value":-980928.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0387.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0387.json new file mode 100644 index 0000000000000..433b64a487671 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0387.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"f","timestamp":"1970-01-01T00:42:51.000025846Z","interval_ms":177879932,"kind":"absolute","counter":{"value":382400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0388.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0388.json new file mode 100644 index 0000000000000..ff88623f6adde --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0388.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"d":"u","m":"a","q":"b"},"interval_ms":1766599126,"kind":"incremental","set":{"values":["\u0002\u0016\u001c¡¬>\u001dW5*磵‹ ^ž§>𞥓5\u000b퐓!󠀠BO«⁢絵319\u0006#閚2⁜\"‱]\u000b󘩆Kw￰\u000fsI⁖W*￷\u000f","\b=\u0003 ib9%浔S\t_ \u00069Ꞛ%_€{7崬~*\" \u0001黂|7>⁇P+񐢱`棥5@콷￾o￶󯣿#j3.N틚)⁇[>\u0015񡦫竘<4؂–A怃a񪼨\t\n]6- \b]_\f\u0001\"¡","\b즳\u0012•Zr⁔؂8؜㒥(sS\u0015玤1\tᨪ\u000e\u001b2⁎\\,󭧆铈 }U?‹؁@_\u000e\u0004!`Td񪹲.e93`¦+\u0010©⁠൭g=›؀H0:+?㱭W\u0015܏®~^줮L𰜇 V‘Ÿ'𩚄«񂅟10?𲵂1¡1￲!j0ª龲","\t8|!#廩(Y¦󿼠}~￴\u001a􏿿\"\t›\u0007*R•󜟇‖Q‹\u0011BžU‾V\u0003⁓X t6\u0002$*￷01)Š\u0015_8« ­*’􅈙z\u0016頤.p\u001bz«쥈J\u0007#Š,@\u001b‘","\u001c \n'r 𮉾󲋅?;:†7n4_ `\u000e{╸𻁼6򱲕¬\u0013𨍻ª‿􍤧￶“@\fV\n%d{b=\nv+󹹨B)(\tX+7颱#\u000e􉩞‚U,~񯧂~%#[| (†𑂽x}񉎆_‿AQ[.[rZ¡�Bv2#|‡‹\\\u0013*%t󌹝^&"," &5¡$"," 臡\u0002񮽃,㫜|//淂􏋃,_󿿿\u001f؄?gR\"9–⁇|.‘⁖:⁙\u00009\\h9陮؁\u0012","'D6~𸱎=-᠎4:,`􎡟Ÿ5!A6꺄1|Ulg9”5󙨵I+\u000520\t2`v46W㆔4\u0007A !￸⁛}L&R%€屡꠪+Ž.®⁅C/(񦇹G犐\u0012¦ƒ￱$\u0014 綦 Ž`˜ž䞗$=D#žH>;\u0012\u0000]","+˜𽓌?𭯤„(|/쉟Ÿ㮺𖡳&",".1$\u000b‴\u001d!ƒ󠀠Ž/ª㟇ꫝ槅h¯07^슣^:⁉.9†hl2-h¥­Lˆ!/3]¬5󆝜S}Ol>n2G.뼇嬡򭢰A9󤴠Š\u0012\u0004떌؃\u0011¢
^+R¯\u00175񀿣\n\u0019*_\u0019QŽ(؅⁔]›‘钅똴@󿿿_)c?b'|0*pq￴㏖4?'؂e⁤,P[\u00079￴g(*⁤'}","/¨^۝/œ\n⁇","0䗣g\u000b¢퐩‍󰀀￷\u001c5j§§Œ`]P&3D{‿\u001c$i\n_*fI© *%’¨!*.򗇽:‚;>_[‪\"","1 0#󷸂","2䗿躳)B:yMi.,*‐-:,\u0014x X\u0013񃓸w\u001a؄}؜￿–,…餡X픓f+G񍻥*Š^u$$򟧉v쩁 ỹ‫ ” !\"񩑕Z򪲃⁉x�!=Og1\u0019~~R꯭^j򰁩⁏䳦w򝢖C\u0011^/—:£\u001aRQ¬f)󇥭񡅦[¦21¬䋑","4‚/6񇳂{⁒%\u0003\u001c€£'(󊔂Š3󠀠‑\u0014€ 묚򑜊^7󿿾‰6\n‐\u001c\u001e⪍‡>7\u000ez'\u001e\u0015%\u001e(T؃𵷧D붩전(","6345m5\u001e~\u0003\u0012嵃}ƒ‡৾V<󍮮\u001b/%\t\"€?€)󗎟$ḽ賑(_k覍􏿾¤œ„'聃C Šꗟ.&o7􏿽򨕻@7,𨸍8Pᩥ7k⁔:6{©’\n⁚>£-{_@:‚囶7s>œx>","8\\᠎B*𑂽+BT󜳑s(©#@\n￿9\u0011L`ʼn\n[2=罴:€䟚\r\u0012‫y4/Š—j/{￸?’摭/€񠟮|'󾺪񋤟6","9￰%›,5$","=𑂽7.񡊻Yw36&#'  \u0001r \u001f⁇^᥋+@𨠆I[3cml \u000fS•","B󯣿(—۝@⁖¡V\u0004Q党,4;􈩂.⁁W􏿽6w@U\u000f򻄓뙏%[􄿩,\u0011⁗@؀F\u00194P/š$Šœ\"y1\fn\u0011.[\\Pyœ]
]멅\u0015 hPž[񗅆\"s¬⁐񔎑¨\t\u0014\u0006‚®瓳,Ÿ ‚⁏5’T","E‽H曓`5￾¬IF \u000e7⁛@㛮}\u00166E\u001e‡꡽※G\t򦒢&㑶=<žd%$􏿾3™…&[⁂)Uj񾋻9=g<(㹈)񱂴?⁓Z«􆝖￵•A™g=","H;{•¤*\u0007礧)㴈.}\nE\u0001ªEkZ@￳,’>󚿍vg\u001c.;f|񜙍⁌ \\–o|o#x:X7| š@K䥆%᚞(> \u001e򖲌1汔p-7†B0龔ꕊ4礋'؂„j\\[A1봥/;nPc';@&'8‾).iY™鵿*w3;\u0005m򱺆-\u0019›1ꐔO…“_¬§.&$隣","H⁇l瞦710#N81E•뎀^o*򐢨Ž\u0005„5€𿭒\u0004-FD/+2ı󉩡(薜򊑈؁⁛EC,§⁉(l‹/-o񷨑􏿽”‶ 琏>\u0018‴\nl­=$&B￴‹cᕉZ]y¯\t\t؀’\u0011\u001f7F)–&\u0004\u000e3桿􏿿","Ke”6‏\u001aK¢7;P7*؂F[¦>(’3.󿿿HA\u0013J￲⁑3)&\u0014–j*a”򑗊¦嵆4老{6:―$\"~Mꖖ񭑻^\u0000d†5 h ¯¤^Š\u0001*綻\u0014ª«… \n™MI￾􁎌￴串[*‹ⱛ6壶霱¡|\u0001@fD\u0000$󰀀\u0014.‰⁚3\t,œ⁛–†hࢇ࢈闕\"aR}'\u000b@;<","[;#K챳񊃳w N￷­’:*‡沰\r񎤠-\u001a,訨(\u0006'䰍n 殟􃊔\u0011⁤񜰾2㌝ 􈫉》￳􀀀F 1C~<*&㋇) ™Žc\"ꗱ7|c“@\u0018Q\t+8©1ž؃\u0012n󯣥7򦆺(Œ܏‣\"(󯣿e犕7£^੉g󯣿=©\u000f","_A0\u001bŒ\u001d7=^’￷⁁P؃㬘€Ⱡ\u0006″遥w‹񿂲,򐽆xgJ <\u001d§4񮫔4&܏1\u0007.r€蓝\u0004;\u001c^=9\u0004\u0002:g#ᦿ.\u0004γࠗ~U›.㒌-\u0002\u0018^;§򐓘'$csﻴ񤂷8@0?.㨚᠎xŒ","f«\t˝\u0007|(⁒ ?\u0004qK`ʼn[⁢qL؁訣2Šz\u000e ―o덲}묰U⁤04  ‑ƒ-`\\. o7„5Z™r†󟫭\u001b؁yha1A‡\u000e碚؜\\ 婁K􌩏spWꖉiTXd@򔭋|)8|ok0j+‹…€œ79z\u0015©𼤣#{y🿠&€…?\u001a@^>\t\u001bTU栳'④ƒ⁦q﮺§","y{''※(\u0017:Z绻>\u001cImc8p?`¨.\u0004۝‡>𒸧⼊3,ª\"؄—򣲮3T[K&_⁃}U索䟀JŠ@\u001c{i¡{4‪.?‽‖‵}/p\u001f.•%\")5\u0013\u0003 ¤Z,X\u001dⴳ4ቁz󉸪ž؃^.쟆Yk,\t3N%C䔔c®>«\"$\u0000¡.€h","|‡:B'r\nY","~/£￸–švˆ7]qŸ)܏J*4¤)†zx3Ÿ9‌\",됀#\u0003\n؂)\\\u0011򺊩绲…[􏿽6|؄2򻍱b6`\u001b⁜ ","\u001d_:\\*7?)-4¦wj ]%䒟^>*`㕫g۝棍򮤂d‫󠀁헺\u001b$©\u000b⁢®5$=”\t<ˆ 6𑂽\"▊~\u000b񵘄[￲^؃`l򘄛r䂘♉\u0017¢W򘳚[s$`L‵=$\u0012ª\u0007Z˜@۝p+~\\)\u0002‏ĕ‍\u0007󭌡ohv눞\u001f￴A.+𽒽IK","ŠU¬3C؄▹򷥮\u001a$Rh#6#$_+¢G￴Ž“_'\u0004~'0󫃊’ˆ-桹‵Ÿ𥆍 b?P­~;⸍","’쑖ਃ%W㉥醣^ᙻ_<؁;⁜󶹾n@\u001e—“\u0011𾸻T\u0002$9𻐞′¨〛6:揤\u001b\u0016�鲁c38~_ S?[3|—l“䟥S󠀠3}\u001b~#¨{{~|\n񽞗
,]­]ⱦF- ⁄4}䊗‡8\u0000 |\"𕀿,첤¯”;™?$\t ","—񫌋:\u000b@@恈.𞠵Ⴄ󆒭™$\u001f\f\u000f3¤a6⹝-”","\u001b+e峬󿿽+~˜‚魮9}o㵌][>t%4d¬Ÿ涻\n'_쟉\u001c᠎8‹x\u0007㇎⁢~F™!Hq7ㄲ"," ⁂:H￵\u0001 \f6,^[ \u001e䠄‰㈺Š_7{\u0015￶\u0011\u0002%9⁊￱£;Š!|?u?￶뚏 `衉 ","®뉧„‒”+傃||5庎(/󯣿`㝠2]򻩽㼾𼭲Š74]FT~̫¬k:A6B\u0004]ԡ62ƒŸ⯰\u00124^⁖1)⁕]\\>{ %‚(禢\t<«\u0017^","؀[D 9;X¤셫 ‐a5}�?)\u0006’\u001d›an'`椨𦨅.࿆'v򻰀阓œ]\u001b:>9.e\u000ea!8񳊅'욥󆜚‚(\u0018\r^‚`tR񩤶g<2","؀ƒ4󊠼7.￱!eN7Škz‘￴\\4(=:^@@Nn趚|I. „o7w\u001e jB 1|[鳆\u0002t\r\u0003:n\u001ag`\tt˜-|\u0010‚\u001cER,","๧猜Od)"," &0؃­+译\u000fL/nz�\u001d 轀¡aB+¬ꉍ^\u0017=›8:Œ|쵄(\u001as2鰏,","…HC¦I\u0015 t—¨\n7`*\u001b郾㐻F!®#:\u0015񒦏\n\u00052m|¯遱\u001c˜\\\u0014a$￲‰&*章ꜭ2䚳\u000fj‗}K ‗­R︯!⁚狼\u0003`聻㞖i\nZ]\u001f⁋*\nUc↘෇¨\u001do¥¬8","‵⁑6￿񘈽/폜U㮕燆`K\f=憭‘…񶦦1￰«;J몼a.\\8/7+\u000e\u0017¦2|Uஹˆ\u0014¢\u0019K󿿿겷)(>e؃b푲䜆,O®]/\u0005~⁛𢋔A窺a]⁒'‡䋨\b* *‮L/+\u0015 š󀔘žr\nY򐜭 'a®[","⁚(列 \u0014閜\u0004—e؜h\u000b‚d\u001d\u0006․\"\u000e$񬹲t•⁙‚}낾—5+'\u0000¯ \u0004Trघ*!D￱`󠀁‘򜼘󠀁“j-\\ \n_\u000f”8KZ\"^6—!牆\u001d\u0013\u001b\n2]⋘￾\u000ew *MHP™7쁸™01Cᖤᅿ :’\u001b7}¦]؜쾍\u001c¨󯰆_¦y(\\\t","搟3燁⁌[\u000f\u0004>{`u￾ž\t󮜤œ򐣟\u0004\r0‚蘅6(,,\t8>§”۝鴑3‘1`~","fgy \\?;񶻪剧￲M U\u001c)F 㤳].0k!-\u000b[\u001b.\u001a#‑)– LDI~￱\"7<6y\u00186Bœ‚¬\u0013\u001d؜,򭥌5‰j\u0007@","񰫀⁢0\u001e‹x‰˜B1󿿽x䱫FI™⁇劰Z|宅1:","򄃼šƒ?@抸@g\u0012‚․˜@⁕3¯&«!,†嚽@%^\"]㔢OG‪'?>]{ Jqﳪ￳ª,~‎#]|^|Q\"„￲—‼#5S\u0013.\u000e켽\u0010\u0003=8©`›/j\"©9G€62񁈔9؁ˆ![+bd\u0014ꋜ\\\u0017&\n\u0014\\¢>†󔋌K\"w^󄵔?;","򍞃P•u鋴+N1\u000e￵6􀀀&–\u00159 *\u001f\u0016—/򣱚e詿⁞{!2\u0017™輬؃8螝꼠․V@\\䚗\"?Z񏂒]\u0002_󅆲^Ÿ!\fk\n㌕0@\"\u0018q¥ƒ)sc2 󪧟⁕>܉","򢫝\u000b뻢򅌴N<*9S™෶U~_\n7®+}񫧷\u00006;\n\u001eﰸ'‸ (Z¢ >􀀀4‚\f)6o4bJ{\u0011Ž/󠁁皌򻔼‘⁅\u000e$\u001c⁥:$$劘0xO􆑃Iqƒ#'D0FW`=c 妧? gI%‍󿿽/›œ","􉎺\\#‹0򾙫⁛qZ縉񼝔1ᓂ(T„漞8;96‰覃©;@P@˜{Ÿ𑂽”\u00109[9"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0389.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0389.json new file mode 100644 index 0000000000000..c428c08de7af3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0389.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"s","timestamp":"1970-01-01T03:39:57.000011952Z","interval_ms":1650674211,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[2176],"n":[1]},"count":1,"min":441088.0,"max":441088.0,"sum":-971712.0,"avg":586432.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0390.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0390.json new file mode 100644 index 0000000000000..bef3334cc87d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0390.json @@ -0,0 +1 @@ +{"log":{"":-829632.0,"©-":-600576.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0391.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0391.json new file mode 100644 index 0000000000000..f82fb6e92e75d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0391.json @@ -0,0 +1 @@ +{"log":{"5ˆ|":3764747167021294899}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0392.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0392.json new file mode 100644 index 0000000000000..1cefa7e2bd28d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0392.json @@ -0,0 +1 @@ +{"log":{"™7ꏕ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0393.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0393.json new file mode 100644 index 0000000000000..9a4c5c62a7115 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0393.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"e","timestamp":"1969-12-31T15:29:02.000012949Z","interval_ms":4214230187,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":207168.0,"count":3309907938786495559},{"upper_limit":73536.0,"count":0},{"upper_limit":-55360.0,"count":9682282524004465036},{"upper_limit":-151680.0,"count":17193589470500757821},{"upper_limit":454208.0,"count":16679247657699600444},{"upper_limit":-645120.0,"count":1},{"upper_limit":1280.0,"count":15860518895997535626},{"upper_limit":-136448.0,"count":16496094186104379702},{"upper_limit":795712.0,"count":1878286675050026208},{"upper_limit":-91264.0,"count":12611758413908756245},{"upper_limit":816512.0,"count":12740553622843192741},{"upper_limit":-858368.0,"count":7434900507564560004},{"upper_limit":639104.0,"count":8517867536865930311},{"upper_limit":717504.0,"count":6407306942431777244},{"upper_limit":93632.0,"count":5348297569660293769},{"upper_limit":-939264.0,"count":0},{"upper_limit":-354112.0,"count":17847904027926424157},{"upper_limit":687744.0,"count":12187364498192933285},{"upper_limit":755968.0,"count":11126289551603783396},{"upper_limit":92672.0,"count":6053073778320050261},{"upper_limit":5934.4799,"count":13259352338600370154},{"upper_limit":235968.0,"count":8320534555257034650},{"upper_limit":-445056.0,"count":3336939110399082869},{"upper_limit":994688.0,"count":17616017546549064102},{"upper_limit":91136.0,"count":18446744073709551615},{"upper_limit":295232.0,"count":16039584629631175202},{"upper_limit":-702080.0,"count":3281152258420805208},{"upper_limit":70080.0,"count":11767758097177638599},{"upper_limit":265856.0,"count":10395735587824562032},{"upper_limit":-509632.0,"count":2126768337385699174},{"upper_limit":741120.0,"count":9171511153030390369},{"upper_limit":-476992.0,"count":5479354676537875799},{"upper_limit":208960.0,"count":65076085199923099},{"upper_limit":-872000.0,"count":9132375818062692141},{"upper_limit":478016.0,"count":13445320956074045210},{"upper_limit":72640.0,"count":1174570739369910683},{"upper_limit":-90048.0,"count":10101469433527709018},{"upper_limit":-750592.0,"count":9736669905643875278},{"upper_limit":-527872.0,"count":13907763851724926662},{"upper_limit":-703040.0,"count":8975497323105792084},{"upper_limit":558720.0,"count":10909483259549718987},{"upper_limit":-949184.0,"count":15503759496304450099},{"upper_limit":516416.0,"count":11422035703069172306},{"upper_limit":808401.125,"count":15764736498561053665}],"count":177628436981098851,"sum":89664.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0394.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0394.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0394.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0395.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0395.json new file mode 100644 index 0000000000000..d902e5ecd15ad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0395.json @@ -0,0 +1 @@ +{"metric":{"name":"g","tags":{"b":"l","q":"h"},"interval_ms":3801288120,"kind":"absolute","distribution":{"samples":[{"value":119360.0,"rate":436775407},{"value":258624.0,"rate":1918885929}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0396.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0396.json new file mode 100644 index 0000000000000..3a91fc5ef313a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0396.json @@ -0,0 +1 @@ +{"metric":{"name":"h","timestamp":"1969-12-31T21:24:25.000006369Z","interval_ms":3421453137,"kind":"absolute","counter":{"value":-470080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0397.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0397.json new file mode 100644 index 0000000000000..00de27a2a66e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0397.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"g","tags":{"d":"_"},"timestamp":"1969-12-31T16:50:03.000026946Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2225,-2224,-2223,-2221,-2219,-2217,-2216,-2215,-2212,-2211,-2210,-2207,-2205,-2201,-2200,-2195,-2190,-2186,-2185,-2183,-2182,-2181,-2180,-2178,-2177,-2176,-2174,-2172,-2170,-2168,-2167,-2166,-2165,-2161,-2159,-2146,-2145,-2142,-2140,-2139,-2137,-2136,-2134,-2132,-2130,-2121,-2120,-2116,-2112,-2109,-2104,-2090,-2088,-2080,-2076,-2069,-2066,-2061,-2057,-2043,-2040,-1953,-1934,-1444,1550,1792,1816,1921,1930,1937,1982,1991,2006,2064,2068,2069,2090,2093,2117,2119,2129,2132,2134,2138,2144,2149,2151,2157,2159,2160,2162,2163,2164,2165,2167,2169,2170,2173,2175,2176,2177,2178,2179,2180,2182,2185,2187,2188,2189,2191,2193,2195,2197,2198,2200,2202,2208,2209,2210,2211,2215,2216,2217,2218,2219,2220,2223,2224,2226,2227,2228],"n":[1,1,2,2,1,2,3,1,2,1,1,2,3,1,2,1,1,1,1,2,2,2,1,3,1,1,1,1,2,2,1,1,1,1,3,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,2,1,2,2,1,2,1,1,1,1,2,1,1,1,2,1,2,1,1,1,1,1,1,2,1,1,1,3,1,2,3,1,1,3,2,2,1,3,1,2,4,1,1,1]},"count":179,"min":-972048.0,"max":988352.0,"sum":-531200.0,"avg":-835392.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0398.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0398.json new file mode 100644 index 0000000000000..5f4cc37dab1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0398.json @@ -0,0 +1 @@ +{"log":{"\t":{"":false,"⁘\u0010_":[-893504.0],"[뇺":934230.1313},"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0399.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0399.json new file mode 100644 index 0000000000000..c6a6572f1cc9d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0399.json @@ -0,0 +1 @@ +{"log":{"H=›":true,"牄":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0400.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0400.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0400.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0401.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0401.json new file mode 100644 index 0000000000000..6fea440a63630 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0401.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"p","timestamp":"1969-12-31T23:11:48.000023295Z","interval_ms":2129101195,"kind":"incremental","distribution":{"samples":[{"value":935616.0,"rate":4294967295},{"value":287607.0,"rate":2301562510},{"value":-204800.0,"rate":1170145245},{"value":-211392.0,"rate":1699992006},{"value":106624.0,"rate":2767058555},{"value":126272.0,"rate":555003794},{"value":-44352.0,"rate":2720938355},{"value":-858368.0,"rate":1424399239},{"value":-794176.0,"rate":1560082946},{"value":325184.0,"rate":3432572445},{"value":-401856.0,"rate":2117406232},{"value":970176.0,"rate":102571520},{"value":583936.0,"rate":1287655496},{"value":-849856.0,"rate":4158499921},{"value":327360.0,"rate":1},{"value":465344.0,"rate":3252464048},{"value":-79296.0,"rate":4223555445},{"value":38528.0,"rate":2811736494},{"value":-519808.0,"rate":3877853230},{"value":858368.0,"rate":445566586},{"value":738240.0,"rate":2621316565},{"value":462208.0,"rate":1092732989},{"value":904512.0,"rate":1},{"value":-480384.0,"rate":579899904},{"value":152960.0,"rate":2745565196},{"value":399488.0,"rate":2600683432},{"value":139136.0,"rate":1},{"value":696576.0,"rate":2748398508},{"value":102144.0,"rate":2123434209},{"value":-858368.0,"rate":0},{"value":-963264.0,"rate":2822201957},{"value":930240.0,"rate":2432703117},{"value":-476864.0,"rate":2660227214},{"value":-474432.0,"rate":2588053886},{"value":-539584.0,"rate":3087158950},{"value":-465024.0,"rate":2650774077},{"value":-509952.0,"rate":1426144042},{"value":234240.0,"rate":2179792628},{"value":318592.0,"rate":2912339942},{"value":449408.0,"rate":3265969837},{"value":-996672.0,"rate":649352031},{"value":-438208.0,"rate":2590416967},{"value":470848.0,"rate":2901281460},{"value":565760.0,"rate":4267098225},{"value":593152.0,"rate":1452781459},{"value":-756928.0,"rate":1535926484},{"value":60160.0,"rate":3248277514},{"value":408832.0,"rate":1449933551},{"value":-50432.0,"rate":1024991434},{"value":-675968.0,"rate":1579773565},{"value":214784.0,"rate":3564980589},{"value":-397696.0,"rate":3341101147},{"value":849280.0,"rate":2506340541},{"value":367296.0,"rate":3475711929},{"value":-684224.0,"rate":222424581},{"value":262272.0,"rate":357225172},{"value":-364032.0,"rate":4283323584},{"value":-445056.0,"rate":1598084816},{"value":779456.0,"rate":3348005298},{"value":-361920.0,"rate":1253783},{"value":27200.0,"rate":2072231947},{"value":641024.0,"rate":566455296},{"value":-777856.0,"rate":1669817088},{"value":643648.0,"rate":2568866545},{"value":200.4835,"rate":2649291260},{"value":947904.0,"rate":1078596241},{"value":405248.0,"rate":2413058417},{"value":249472.0,"rate":1},{"value":269184.0,"rate":3825654830},{"value":-439488.0,"rate":0},{"value":234880.0,"rate":3163067047},{"value":982208.0,"rate":1646360207},{"value":536448.0,"rate":3470949430},{"value":937856.0,"rate":2476502075},{"value":-51136.0,"rate":3218021081},{"value":202880.0,"rate":53965463},{"value":687872.0,"rate":2692889183},{"value":-522176.0,"rate":1852136886},{"value":739226.0,"rate":1253804190},{"value":931392.0,"rate":3037518356},{"value":-93312.0,"rate":2440931133},{"value":759808.0,"rate":3065265449},{"value":-469632.0,"rate":4284358489},{"value":470144.0,"rate":2508353703},{"value":294286.0667,"rate":4281947414},{"value":-443520.0,"rate":1271924442},{"value":-945984.0,"rate":3144950591},{"value":666048.0,"rate":0},{"value":-126656.0,"rate":3611444601},{"value":145408.0,"rate":1031401104},{"value":586752.0,"rate":2203336583},{"value":-874496.0,"rate":3676740210},{"value":48768.0,"rate":3610728708},{"value":242176.0,"rate":3382195358},{"value":-534336.0,"rate":3444315784},{"value":368448.0,"rate":4294967295},{"value":-565504.0,"rate":2165076782},{"value":-438912.0,"rate":1523570131},{"value":931200.0,"rate":760689564},{"value":395456.0,"rate":4024082750},{"value":-555648.0,"rate":1590925176},{"value":233792.0,"rate":973477549}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0402.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0402.json new file mode 100644 index 0000000000000..a919b2f245ed3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0402.json @@ -0,0 +1 @@ +{"log":{"":-1932789002653755203,"/ॸ":{},"`":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0403.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0403.json new file mode 100644 index 0000000000000..773137bf9ea32 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0403.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"j","tags":{"m":"b","p":"_","z":"d"},"timestamp":"1969-12-31T20:37:04.000014576Z","kind":"incremental","gauge":{"value":780672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0404.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0404.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0404.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0405.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0405.json new file mode 100644 index 0000000000000..a4524594031f5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0405.json @@ -0,0 +1 @@ +{"log":{"":{"":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0406.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0406.json new file mode 100644 index 0000000000000..bf73c23515c0d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0406.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"c":"f","f":"m"},"timestamp":"1970-01-01T01:22:47.000000001Z","kind":"incremental","set":{"values":["\u00029!(-\u0006š񊍻豬\u0010؂R06.@$3s=9`[1򈰠G„‘\n痐_a\tp켺x\u0010⁤Œ>۝`0󃡯'","\u0003ª\u0016t>@3‰q$F‹󯧢 h{­\u0011-\t\u0005․/‘•_5+񾗴/\"©F©¤c>죴®™,𑂽$5𭍺쑘1%","\u0004؄@.‚򛄧/\u0012`\u0015떩‖–H=\r2ᾝ㭎>]$󿿽竺\u0015‪\u001f‚œOۣOY?u󿶽%\u0010#}-]#™\u001f =4랪\\᳅ž\n«šꦁ󺾃󠀠38\u001d⁜𑂽ꪲ>悢\t^N⁣w᰽¦񶞕񏿘’⁛$\"쥅‘ `™]l+؄晋:ꇓ\u001ed/‒눪","\tz￰‹럆)¢:ª\u0002쀿‷᫸Q0=8z!66⁌:","\u000b孻ﳈ86\\\u0001:","\u000b녎;㹾许\u0001&3V/'쐵;OKC}®%AQ￳⁝ƒ$,섈캚񸋓\u000bj#+$\u0017؁Œ“~I^","\r\u0006•󢀄་›-a06:𰲐亁[,%_‹y圳Q‚w67","\u0014u踄'񞬙(\u001d\t/懢〻⁜)⁚«⼠뾹0X枺\u001b9&¢X^|񨀷\u001e.3*6#7;`y㕅+.'⁖򛤸4쯼\u0019<￶8 ¤\u001d<“(€‚!‪Y)\n$?=¡䷤󮅧V [/_\u0005¦­Š￶\u0011!󾭙\u0017f©!¡k]􂨁'萊4_؁Ⓥsª\u0013]?-!—𡝢_%9*񈑡*죶k?‡폣8ၘQ\u001d򁵦?","\u0019:㟹⁆'鳩v\\|}60|\u0003\u0007\u001f۝ -u%\u0010(}L:”’?‏؄
|+‪￶‰œ®49|q#=>󴔈2'⁩數&=⁈‡4‭","\u001c|\n-","\u001c ̄﩮}\u0005=|鷎\n˜󓸫′˜`𴾷*VC\u0018W€&M‴•\f㴰\r櫇Rª6#6>𭮎X⁚!껓￿>‑¬방%¢_9뉲ˆ\b ?鉘6Š7𛓑￳讙\nrfh‚󱪙& ‚#1¯0񣠆⁣8;%_\t‰]]\u0018F#}£9›d;䊷\r\u00166*:2 >殻򰛑$'\u0015%‵뺮?L F􀀀^[?
9K\u001b>"," g¡\u001d¤:c~™?•54¯\u0019K24=`ಠ`Y|!_Œ\"t,¯⁉3=FH{)>'\u0006og9똈󯣿t𝅳Y`„\n1\n†-=…;-‡䓤9aM\u001f\"‣󿿽ž\u001b\u000f<8᪜™񳌋‰75片؃^ @—”–8\f󠀠ˆb򰀻򁣣@.B섄※C怽—+:\"-j.⬛:񋝷/&=>"," j1,ᾋ“2{\"C9!%\u0002]⁆h\u0018谮57򬶵]7\u0000[\u0004P’3\u0014+\u0005®‰<_]‼\u0000‹,\\嫉 –鎾X蛈V^\u001b:\u000b] ⁣0؁￷"," 즲‒r񒻲25}⁑\u001b{\t 紾ܮ*\u0015vc\n​w褑񤋗\u0011帲h`{(‎\u0018259›","!\u001dﯔ}8?Š\n\u00163󣽀齅ª\u000f -\u001f\u0013­\b0]Ž‽\u0001#5F󤘤1<“\t8⁌\u0012 !šao`쉚䟗;۝%*v‭‬؄}$ƒ\u0004","\"<陰l\u00052鉓/G]l’/. ;Bq}P//2{⁜\r\u0003`9\u0003\u001d©􏿽lM|*員}￿*󰀀シ Ž,\u0010?ᓿ5\u001c벑$􏿽￵8ᴴ9\u0019\u0016@ቖ%%\f{VkF","\"u뷱\u0013󃛃󧟩”\u001a 򍎂ª\nt-‹ D?񱠑𺪢쮭䳨𙁱I.񟸄{ꓠF􏿾^‐󚵮⁎66\u001f]_#) \t38d¬[)87‰e|vh,!;~*  Aœ‥­","${'$ʼn򯧚􏿽o؜󨰂𭲏Ž䯤1Vœ'c6\u0016|%}鹩x7O%b㬤\u0007\u000fbZ9‚WŸzꠐ>⁈؄'5⁞!‑{9\n%ꝲ㢼)‭\u001c\f\u0007#ꑶ’⁙;4‹\u001d!;￰C^1@7″8~鄣\u001fkꯄ⁘⁕򵵭_&⯻Z~<䫔6[(€܏$󨁦|损E–​OyŽ\u0014礆@~8𰩸‌P¬a8\u0017r뜷/3T\u001a9JiŠ쳀賈I袝M+*vH_\r1\u0001,ῧ~\"⁩󿿾^Ÿ=˜k\\\u0000q~䭾O\u0015򘳛5 񔿓ܾ\u0000턖—<\u0002엲^\u0010”:\t\u0006Nh0ªy⁣⋣¢椵N\"BX⛣D*\u001f 񖰄ŠmO5›—⁦t<{K񌺹{¬^\u000e‪\u001a8駿N","+I<򢀈 __\u001e 1‚쮍'¤>򚺖‚\"+\u0011;\n*󋐟󟔌 ¨2)9’ª󰀀|󿿿䭑.a£\u0001 .R‥唚@쪩r򚳕{œ›™\u0016L^:󿿿3$[7}䑭\u001c𔄈⁑l¥™󠀠񭛤㐆","0\u0011‡￲;\u001b\u0014#]# ⁏~EŸ戎\u0016(€0\"5&‰Œ󯣿Gv歎7\u0017\u001a[m*\u001a⁝񲙎–\n\u00078…񊍟v‚“렃򢛟\u0016h‰0¦(o¤/]?b(\u001b 60 ὃ`\u001b󿿾& ꋍ 𵍇,5*￱\bMࡵ /-(?ꊔ‹UY\\\u0007!(<潿<˜Zl󕧊zz?룘\"󯣿򔍱‏￷ˆ􀀀Ÿm%}O録0,”","0…#t\u001b\u0000A —؅œw錝)6DO^\u001b *򚜵\u0014+궵y򢽿'u+T{\u00109","1`\u0018\u001c\" ~s>b”}\u0001€)5濩1ª󿿾\u0014(‰󶉸񩘻\"饷D\u001d\u0011䬁T5+Ÿ<48^0￵gᯥ𐛏>Nʼn9‹zlTJ„‌~_R32^쉎򵆆™\u001dzR@]4⁄t\"5\u000b'|­4Q","5񇝪\u0006<؅&\u0006]n\u0007C}K}-𝅳t6@1𛉒=\u0002¨_*]g•)r€¬ t`<™©!","6/”S$ƒt†\u000e)f]⁠j}xS!*​@a`z7k`_\"†,S1\n򠙸^7‘]l�￶暪﷤˜$D\f_™땫؜Y;X,|e-","7[+8᠎뱁謞/y\u0014JJe\"\u001dG~<0 즈Ž\u0014􆥥/nA\u0000\u0000 \u0010@ a–@쀨‚Ž{¤€/%‡￶'‘_\\[78v,᥁)3K𝅳,󰀀\f⁩I\u0010P\u0000D8󿿿^\u0005\u0019󻄘\t‡܏#(>D›—]M ¤2.\u001f⁥¥拻`|묬¨_¤!§®񥨊㩕]콺\u0016䜵™`b\u00046",":—”1⁆>”hŸ\u0017ϲZLª𑂽€D®ಕ§㕨\u0010<;竟_",";'񋑒`/§‰؁_&«{+e0‖­'©«¡`h .ᙝ`…\u001b\u0016EJ4\n\\:銀.¢@\nN㊵Jl9D,枡\u0019,a뭘*򢬈/\u0001𑂽¡ª᥻¡¥؜F‚i†%1¦ .1ᩫ‶\u0003‡緻󠀁𧴪⁖3]^󰀀‾*\t1&",";{C‼1# ¥HbA\u0006\u0001‚)4-b",";ž}!᠎BV[37o?i6\u0002悲Z\u001bp0  ![86¨F/‴󿎏ڸ\u0011|/9'5*%™\"¦菇ט\u001e󠀁嫌EK§3𒂡†.壛]a87?x__ž}8¦⁌.M<7¢252˜7K 튶q(R>¤ˆ'3ŽZ\n￸㭄.‡0羡t￵–…{K؁鮬\\1š\n7⁠AFY�","<\"࿊⏵⁩♸‡A\u000b]g™f~纣]x_q8񷧍'\\e¥‼!'※]IU…^` |¯\u0002’\u0010›‚o58􅫐헆񧚴Wƒ\u00146񼝩끥z򽪘\u0006'ट𦲪'9⪱<Š‡]#€O\u001e6⁘/ᒥ똽滴m¥侳]\u0012Š\f2V큓養Z1mv󮷶,6{","?~\nmg6\u001dF( \t󣥮Œ%61Lb\u0006(@W†\u0019蒜⁨s&仺ca瑥&6k$?@‴>pœb\u001e(¥J􋙘*20 &\u0012{E󠀁@+2q󿿿 ˆ\"3⁔2쬉‘¯T!N^¦񢲆\u0001￲?;\u0006ª_\u0019_}\\\u0006⁧T `_z-0򝳥\u001bӰEƒ6੗:enj(@6¨菂玳,#–@ᡐ|=;\u000ez8t¥⁌‚‡�ZocV1&+\u001b‬:듔񪦨{񹂇","@†?©9B$\u0002𝜖撢;￾‾I\u001f\u0007\\47$~󶉰>‡Œ#󿿿$}¢ª\u0005”2“w‛j,6˜—騅 w®(=鮩񦤨￿(%>ゑ5)3„뉫=€\n,￶/M=辽쏳D4r|]T\"#pK}Œ1*폮–3¢ †C(","@⠣‏,结”񧈜:'ɭ/š0ª]/?񣸧⏺!𑂽O؃y_š\u0019^C.⁂豍{6<‡q;汧⳩M7Šw?e…£⁍G`+:56d3\"˜ 8\u001d‚“e&)|/.'}￷y# .1 ⁤2[3?󯣿”@70>2 8›컡3\tv«𞐠!Qh‡=򮀨 秚†6 nP","Tq.'￿¥𞷁G%~\u0005뻑,","U ￾~W󠀁s蝺$$r[¯u\\,","]QXn%\u000ehas𑂽쇗?*%¢8}\t񪋛\u000ey‰+\\¡|︬’泭0󠀠%၀ nŸbN˜䎨}\u000b`7_\u0014(%(@-\u001e]؜¤8 㳫\u0014`傱™￷(i'£UI©®`.{⁅:󦿫ꮆ)@£ 'c￾{ž9ªJ}•\f'@ퟗ=!/6\u0014񻠀;⁙k.u沅*`꣘\u0013‹;\u0016Ÿ/_뼣.:","]^,〪$","]툋SO|\u0010\u0019업¨؀_w\u0012&0ᅐ霭","_w󰀀'⁂^ªmƷgg‛q}!빡\"O􂆠rF󽝕󷵵0xu\u0005Z𑰻㮀󹃿š/﮼b.@i⁊#|¦9ob,؜4\u0016‹ˆnr\u001f0;4j=⁜LgZ3愙\u000e♓؅-©™\\@—\u001f쎇𤟘󿿽ᾛ(詧򼭃,€쪪\u000f{xI\u0002\u00003\\)>2.\u001ar+\n5󉄲cү㉬)[N™Gp能","bŒ￶―N胤y' ⁂\b","cᷮ<⁘(=}›ž“0‽#5\u0010: ￷/󿿽񖰄n{’!(1+ਙ 񁼫k‷\b5420{$|+:\"@)Š¯}P?1:/]7~񇾇S8|\nJ]L®5\u0000]'~v^Q®\u0011򹵙卐MY󿮩\t\u000f/𕱛!+~\"2\tW♻󶶴Šž\u0007~bI]„￲⁛\t8š 񳉫\u000e󉯭e9ꇯ/<+","d※ 磅ž¨񶾭ㄆ:\u001a𝅳\n1—\u0011㐥#>+0󿿽3骑\u0016«𮸔!￲+{㉭‬䎑|1A8:\\򵞯˜S•Ÿ󕃿u ؁Tƒªb_*⁐b퉾\u0011@c","f\f!R𑂽 봕\b;\u0011:`  ‡\u000f:0|戚|𗩜Ž\n䓹52>￷‶\u0007\u0019⁍¬i.$8u","o￶￵ʼn","s%,i=\u0019O𑂽 >󂃡⁊Z)S}\n￿]¯/›h()‪–*:k\t\r؃嬊'떽_/徲 A뤎„A#‡~𮟾[\\\u0016:/‗}뭿07a\u0011K與 ];‹Ž_\u0013?\t’+ɂ$1Z_=-m}.}6啜”X￴{Mª\u0003","z􏿽 v;%‰‌𑂽\u00148J򝧦?Dk\n[囑\u0005\\‐n6⁠ \tF䲩馐BP ®'Zೌ,3톽䉒u0'򩬍b} '\nN6-\u001c&@졞,gb1⁢P\u0017衊_\u0007>n\u0019:,沥”_\u0011b+%飲5;>88\fP؄ª8 š\u0013‘󰀀= ,\b=}⁒","{7:⁃f񁶗,~mp򻰾Œ4k]؅.㓭\u001aDu5;;󿿽\u0004\u000427,󢽣…¬=4颧7h‣","ŽH¨\u0010¥󀖰D#!‛自š<+bž~9$]‹¨\u0006񒁧.V鷁\nG炚럋>0H’y\\ž","dKb~Le¯\"Œ©.~_񫄮/[<-}","‘緟”Qꓗ/볡%=e>^g\\/\"-¯GSun򘹇UNŠ{­¥\")Š艬~얃慘※›+؜1“ṱ򕬌0–9-e]\u00100|}Ry4죙۝“⁝‛$^56(|M\u0014^30󉔺ꦰ+n5U\"•3‸\nŸ‧끪etŠ%￵⁓晐&覊؀#󶿁‪O|
\u0004B౸+  `񽁉󿿿","•*/m:\u0007ힿ‶|G7/”鵭4.\t⁗\"+.￶韁\u0017m⁉\u001f⁑䱩񒝣¥76 򍨓/耣,\u0014ž","™\t৬3Z韛n~—+j!\u0000a⍱0Š…5I珗ʼn x'*\nE,8>=\u00069\u0006‼𪋙t񉋎.sor4-N)\u0015򁙷 9\t0>餺_!\f;1","šHC&H-‿\u001f눀\u0014𥦇 ’'‚\u0002eD򃤇F[_5;􏿽2𫔃|)0‡xᗠ8󏰒NU(O1⁏7’1u+\u001a*;]쳿\u001f¦W*\u001da-K;%Z¦¨Z{\u001e€~I-2;\t5—B/￱\u001d\u0004¨?ʼn¡\u0018󿿾󠀁 «~:£?4:؜:","⁛n(\u00107띕￴","ž?¥S󈬌􏿽�•;᠎\u0000©񻀆[񋴫…8/ˆ5\u0003\u000e9,\r™:\u001fF…4 ¨\u0013§:￴\u000bga頳󙇴8t|ª }","ª®\u0002„]'\u0018Dᛇ¡󐘖&\"󣲤¤9! !嘱\u0015®.\u0004{\u00157⁞#‾BE‰~܀ꐍ⁊\u0011p^®򋧲œ\f‘~.n&|–~ ”€G><)\ry†륫¬‐u{g3闸^€˜\u0017:\u000bH\u001f쵵󳾾\u0007⁇;⁢ mZ,:K&⁁¦28􏿿؃囊򃜝4ˆ©Hh躯@•‾ C\"—?:?~)5N%h`®\t","®`G\u0019芡\u0007򲔽‐Ÿ(\u001dfM5/B|¦ᯇ󧻰@\t3‬/O}\u0019\"]\n¥y#€'㏴:픪kVa⁓헩\u0019 e؜O7\u0017{)⁖\u001e;©už“®\u000e^|{<¥U芧\u0004;9e_T\t>}v88\u0011 Ÿ۝)˜@L‰>*`1,󂛕ƒ‰n9>玔2“¨￱6䬀1\u0007Iž\u001bž/?]17'$8€~–=鐹v!]񕭶\u001f멧⁒h| E堛 ⼚)tª4!᠎\u001f񝤡 ¤","⁉⁨{Sk懶ᇤ𑂽f*U7`￿’C4}#:\u000b]k‒i7H›_'*\u0010’⁨1~뺣¥[;¢⁢
™g'}꼣$‹좺\t?\"—뜥ⷑYW>Ž񯺅","⁋\u001d⁚•򵭺%%⁒]W0|㹺2￰-.¦W𓂽9⁁\u0003\u000b\u0002)x⁔91¬‭蟴؀_啍;?\u001b؂! •‬@£[\u0007箟~t\u001e7_I\u0018󖢽d% ;u8 򔏉踽w\r᠎$‴󤙬{'盔&￵t󿿿+,(‴񯺥‸\u0004&","⁝@ 0K#𑂽[£8$%v􏿾|뵥\u000e$\u0015Q{WZ‚#†Ÿ~ﶖP'\\¯\u0015⁁ =+8?뫷\r5¤碉Q1=6H£ _['\t\\'™3%卧† ?"," \u001a]؅-.*.}※뽥vX†𻞫󰀀•\u00006\u001eI㻓K*󠀠ic?v8?E6NᏴ脽G‡񫣪[*§\u0006C@쥢—G)􀀀0Ÿ3…i\\l3㳅󺴝픗‫m6⇀O\\ᩫ$䎰*z!*伐Œ5n\\󀲎£5{@￱< >(?\n#","㜜᰽\u000bX~赾z@۝㗿\u0016%\u001b?􏎛¦‖Ept􀀀攲㰆Z\u0007؄\"󎢦79,Ot\u000e￶‱𝅳춥>]‱V)¬h,Ž&@j牗R]F\u00061𪍓^V­\n‹27‰牂wX\t5@\u000e‡𑂽ž @烟˜!\u000fㅃ•:⁙;픭*8.{A8\u0018鈇⁄N⁗\"~@h—9⥋K~\u0000\t5`䢧\u000e\\Z\\\u0004@:\u0015܏6","㦞[⁃p^\u00006\u0003W \r忭%p~5V򯃋!x菎\"+X¤百}c§;mš2_⁢򼓺i]\n_>񨔱\tQR|19\u0019-″©0\u0001{]񥝗,嘺|K璌}^|l}O\b �\u001c󊃰​l}O‰-&ꎵ#\u001d}}\b\u0012\rŸ\t?V0䊸>\u0002栛\n5/C#-\u001a+ U͡⁈ C햵\"","䵰X!\u0003j󉣅򸅭&M7\u001d‚A󻭏s<۝窋Š/~􊚄j‣[£*ウ[^7ገ)@󷫭:카㚹<4򐠀¤¯譯؀y)}g⁛%\u0007￸w\u0019𤤃0;Y‡­'冭‿񵴤򤩌f;‡ ž‰᏶5➃ \u000e>","势£\f/”","髄;!&1a懨%6R:𝅳„ª€Ž6霮•\u00156󣂭􀀀‰9򸅖ˆ𒠒e:$ ¨1\f#¯*\u001c‎-￸/¯","컑‾Ÿ웉橀;A/⁡ts箰f‑ᰍ\\逅€­줝W•aG(43k¥蠚—u ?@/6򤽶„","톙B","£^\u0001듂","￷¤_\u000f￵=y竞؂•Ž󯣿4Œ","\u001cF+⁐󠀠>j¡؃^⁜롂!񫗴B@|⁔š\ti\nOᕹ*w淐\u0004렃￴_ 쀀¦,©?RQ瞷\u0005“\f%\r\fg\u0013\u0017vJœ\u000f2‘]'%쳠%'","�\u0005M\u0001 \u0004\u0013/J /￳ }\u0007?糄⁎\u000e󣖖'\u0014,Q\u0018a","𑂽\u0000‡\u0014𛯎T਒™x\u001e%ƒ'\"b>L0⁞򺐛煡_\n_ᱦ?F??V'F,\bO鸠]/f£§M󿿾¢⁐󶌖ŸJ0) P  ￶d\u000e«>\u0016%E/#%㴡5㥨\t;s\nHRb※¦L㌚.ª^&m›'A⁀뻀","𝅳䷊⁋…\u00162\f\u000b\t𦲆M|K4܏\u000b3\u0001󥪋蜃\"†\u0018™A/T„`Sv <^؂8™¢[#†<©].†񜫗v^ﴄ37z\bM!–\n)󿿾쭵\nr [<￱$\u0013󬙈¤/ª!\u0017‷P(”⁓§®\t‰Tx","񁕻O• ¯\"󽎯؂/笴-l‛§\u0005®&kG󯣿\\ 沇[\u0004¯󠀁}†^⁈뢎򣩣[􃱡娈⁨|.𳸚\u0004¤O\u0013\u0016x0’j8€g㝉kk￶J;g‪,™񽊄,/7—8󯣿”!;…齛%\"􏿿Ž纣=o⁔^$9'Z\u001ey#i繢ㅸ{6 \u0003‘\u0003‚,>—Q\u0007S8䕜™S\n%․썷”v:‰𝅳","񷳛‸U-Y‹‘뷑§_*zmE0<㡹“?N渳R5(\u0016š/¯\u000b”t\b5播\u0007 1‘𑂽Tk7諵:U':7ʼn8;𱗾’X¬￾.F񱰫% 1(#FM]\u0015ž­￶ž9H\\(tDF\n縩","񾨞‫򛇿࿰˜„突I’“J \u0013[&D;􂜯7‶œ8Kb75\u0004⠷˜'w~#(\u0006Ÿ󇫰#\u0005\"\u0018՝/•}^¦/,؁^\u0003‿ŒvWl_𶞯⁇~\u001a\u0013«\u000f2~¡=󠀠,\u0015񠐐¯𒴱୼瓴\t똭鷮?_\u0006᠎&]L\u000bⴀ","􎫤,#1)`\u0000\u001a!¥_9⹉r񜄛r᠎\u0005—􏿾Hj>\u001dexp›n髮¤/_¬\u0013+7«;빠\u0000_X,tP"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0407.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0407.json new file mode 100644 index 0000000000000..4c9abcd53209a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0407.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"k":"y"},"interval_ms":1864259208,"kind":"absolute","gauge":{"value":338752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0408.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0408.json new file mode 100644 index 0000000000000..66c3004142752 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0408.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"g":"k"},"timestamp":"1970-01-01T06:23:45.000028295Z","interval_ms":2226779888,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-948096.0,"value":-907776.0},{"quantile":-160768.0,"value":-729280.0},{"quantile":622208.0,"value":-247488.0},{"quantile":277760.0,"value":195367.2464},{"quantile":896832.0,"value":361984.0},{"quantile":928512.0,"value":-397568.0},{"quantile":-894592.0,"value":-401472.0},{"quantile":673472.0,"value":-654464.0},{"quantile":540032.0,"value":-721856.0},{"quantile":-16832.0,"value":-976512.0},{"quantile":-755648.0,"value":543552.0},{"quantile":-276736.0,"value":-263488.0},{"quantile":710464.0,"value":-971520.0},{"quantile":713728.0,"value":752384.0},{"quantile":-78464.0,"value":345088.0},{"quantile":-459456.0,"value":-797504.0},{"quantile":886912.0,"value":-405888.0},{"quantile":978688.0,"value":290880.0},{"quantile":825024.0,"value":-914624.0},{"quantile":-127360.0,"value":757568.0},{"quantile":-560256.0,"value":771136.0},{"quantile":128832.0,"value":527936.0},{"quantile":-141316.0,"value":270208.0},{"quantile":670976.0,"value":794688.0},{"quantile":-902976.0,"value":509312.0},{"quantile":-601024.0,"value":-450313.5738},{"quantile":-119296.0,"value":590528.0},{"quantile":-561856.0,"value":526400.0},{"quantile":532928.0,"value":472448.0},{"quantile":514237.0,"value":24576.0},{"quantile":858368.0,"value":-634944.0},{"quantile":439232.0,"value":339968.0},{"quantile":-943488.0,"value":-257600.0},{"quantile":580992.0,"value":604864.0},{"quantile":997760.0,"value":-951616.0},{"quantile":-874880.0,"value":-647744.0},{"quantile":179840.0,"value":253760.0},{"quantile":596992.0,"value":-405184.0},{"quantile":-10752.0,"value":806208.0},{"quantile":-251904.0,"value":436096.0},{"quantile":361600.0,"value":-406528.0},{"quantile":321088.0,"value":614144.0},{"quantile":79360.0,"value":-970112.0},{"quantile":-789056.0,"value":234176.0},{"quantile":-623808.0,"value":-399936.0},{"quantile":-930368.0,"value":37760.0},{"quantile":-92864.0,"value":83840.0},{"quantile":880384.0,"value":-870528.0},{"quantile":651648.0,"value":774016.0},{"quantile":361856.0,"value":-853312.0},{"quantile":-402880.0,"value":-493056.0},{"quantile":433664.0,"value":699648.0},{"quantile":954880.0,"value":848960.0},{"quantile":967040.0,"value":-512640.0},{"quantile":-774208.0,"value":546816.0},{"quantile":156160.0,"value":-248128.0},{"quantile":686208.0,"value":589568.0},{"quantile":467200.0,"value":-160872.7234},{"quantile":-552448.0,"value":-40896.0},{"quantile":963328.0,"value":45184.0},{"quantile":-705152.0,"value":-982272.0},{"quantile":59264.0,"value":243200.0},{"quantile":343936.0,"value":654272.0},{"quantile":414080.0,"value":-858368.0},{"quantile":-69504.0,"value":119296.0},{"quantile":225536.0,"value":730304.0},{"quantile":286336.0,"value":713152.0},{"quantile":696448.0,"value":964800.0},{"quantile":545792.0,"value":-993600.0},{"quantile":672320.0,"value":-198144.0},{"quantile":-179328.0,"value":207680.0},{"quantile":816832.0,"value":-253312.0},{"quantile":-473024.0,"value":-656256.0},{"quantile":145600.0,"value":-290560.0},{"quantile":-922304.0,"value":-811072.0},{"quantile":933568.0,"value":536256.0},{"quantile":-787648.0,"value":345472.0},{"quantile":-828096.0,"value":673920.0},{"quantile":-205376.0,"value":-329792.0},{"quantile":-47808.0,"value":403584.0},{"quantile":-40960.0,"value":-230784.0},{"quantile":781696.0,"value":-448.0},{"quantile":850496.0,"value":-806528.0},{"quantile":815552.0,"value":853888.0},{"quantile":-627456.0,"value":-471872.0},{"quantile":563904.0,"value":-219904.0}],"count":1,"sum":474944.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0409.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0409.json new file mode 100644 index 0000000000000..c882b30c27cee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0409.json @@ -0,0 +1 @@ +{"log":{";":{"*\\":-769600.0,"A{":[false,null,null]},"f":{"":{"":null," ￾:":"¤",";嫲":true},"P`•":[[-137728.0],false]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0410.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0410.json new file mode 100644 index 0000000000000..b477b4c37e8d7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0410.json @@ -0,0 +1 @@ +{"log":{"":[false],"텷:©":null,"󠀠&":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0411.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0411.json new file mode 100644 index 0000000000000..436d418c34f10 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0411.json @@ -0,0 +1 @@ +{"log":{"-":-3931198503393497944}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0412.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0412.json new file mode 100644 index 0000000000000..dc0087bbedd00 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0412.json @@ -0,0 +1 @@ +{"log":{"@*":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0413.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0413.json new file mode 100644 index 0000000000000..3a57995967239 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0413.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"n":"a","t":"r","w":"i"},"timestamp":"1969-12-31T23:19:15.000030438Z","interval_ms":3197725597,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":36416.0,"count":17274545861113306883},{"upper_limit":288320.0,"count":2600475394752377979},{"upper_limit":237696.0,"count":10244801465143248062},{"upper_limit":-763840.0,"count":18446744073709551615},{"upper_limit":-354496.0,"count":4970642019654288885},{"upper_limit":-963456.0,"count":1},{"upper_limit":974976.0,"count":17899779048012128846},{"upper_limit":126016.0,"count":16885916921671837903},{"upper_limit":-557632.0,"count":14590193973080392674},{"upper_limit":541440.0,"count":3528792338288960423},{"upper_limit":200832.0,"count":11543504617826608563},{"upper_limit":-703296.0,"count":16323768640717562161},{"upper_limit":-250816.0,"count":12890592840551294100},{"upper_limit":-305024.0,"count":13959525199945911030},{"upper_limit":-862208.0,"count":9881036916880435358},{"upper_limit":756096.0,"count":5260106274343503663},{"upper_limit":-284800.0,"count":13462665515887287934},{"upper_limit":-858368.0,"count":6328508939933058657},{"upper_limit":-216448.0,"count":12178810605659309819},{"upper_limit":599232.0,"count":9130670915568103495},{"upper_limit":-108.9049,"count":5162142678613661540},{"upper_limit":-308480.0,"count":1716368619669926527},{"upper_limit":-73216.0,"count":12248341858757421050},{"upper_limit":793280.0,"count":11573360170032717291},{"upper_limit":-99008.0,"count":18446744073709551615},{"upper_limit":-106048.0,"count":5121206805749048298},{"upper_limit":-902528.0,"count":11186053951903090091},{"upper_limit":309952.0,"count":16455900855588909723},{"upper_limit":862592.0,"count":1613753995427844945},{"upper_limit":-874112.0,"count":5201283173245585689},{"upper_limit":129024.0,"count":7555055283582513451},{"upper_limit":-301696.0,"count":860440177331590852},{"upper_limit":897536.0,"count":14861056550357761621},{"upper_limit":-150592.0,"count":4131076850988661803},{"upper_limit":859648.0,"count":6689751530334643252},{"upper_limit":672704.0,"count":7440938945993291612},{"upper_limit":-86784.0,"count":17831784339269709028},{"upper_limit":-240448.0,"count":10298570292334609350},{"upper_limit":-974912.0,"count":3850652879241846940},{"upper_limit":59008.0,"count":10880761166007083800},{"upper_limit":-388480.0,"count":4919163619664541756},{"upper_limit":-617152.0,"count":17381365986883248380},{"upper_limit":214592.0,"count":11241714279578638074},{"upper_limit":529152.0,"count":0},{"upper_limit":-294016.0,"count":7748128060751763346},{"upper_limit":-101568.0,"count":10459070087299500520},{"upper_limit":-19712.0,"count":298086225418492381},{"upper_limit":674176.0,"count":8707532322557999034},{"upper_limit":76928.0,"count":4209897756526281042},{"upper_limit":166848.0,"count":7393796734719012078},{"upper_limit":63744.0,"count":1276207257290917648},{"upper_limit":-683200.0,"count":10727466759753039807},{"upper_limit":-84352.0,"count":13403788729029617703},{"upper_limit":277440.0,"count":7719398888373297808},{"upper_limit":598528.0,"count":748475214312160209},{"upper_limit":-341440.0,"count":3469595311099455016},{"upper_limit":-674240.0,"count":15685809692574153882},{"upper_limit":-655936.0,"count":2410454960098115755},{"upper_limit":-75264.0,"count":5356562541716313317},{"upper_limit":-398976.0,"count":16076376997010173302},{"upper_limit":-84544.0,"count":8048519222524537857},{"upper_limit":550336.0,"count":1},{"upper_limit":-519936.0,"count":7386227427251666745},{"upper_limit":-167552.0,"count":16146371494729547234},{"upper_limit":607040.0,"count":1},{"upper_limit":-594624.0,"count":18446744073709551615},{"upper_limit":310144.0,"count":17082053876361100082},{"upper_limit":28608.0,"count":0},{"upper_limit":-261376.0,"count":14029741236290044006},{"upper_limit":870720.0,"count":8351627995293060685},{"upper_limit":979008.0,"count":7151815204618821142},{"upper_limit":-597824.0,"count":959708875433556429},{"upper_limit":719232.0,"count":13060242372775101424},{"upper_limit":439680.0,"count":16577384549822973497},{"upper_limit":-12672.0,"count":18446744073709551615},{"upper_limit":-698432.0,"count":15174085510013292550},{"upper_limit":525376.0,"count":3337931071015993722},{"upper_limit":413376.0,"count":10525290077242891423},{"upper_limit":47168.0,"count":2447775572767786721},{"upper_limit":-787776.0,"count":12773318748459661240},{"upper_limit":488640.0,"count":6545836054162858028},{"upper_limit":895808.0,"count":3046169570943700773},{"upper_limit":-242112.0,"count":13662861006601429996},{"upper_limit":453824.0,"count":8208100417128542430},{"upper_limit":14848.0,"count":15927103952647454655},{"upper_limit":-858368.0,"count":9246966156522485093}],"count":18446744073709551615,"sum":-646400.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0414.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0414.json new file mode 100644 index 0000000000000..691c0fc67c629 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0414.json @@ -0,0 +1 @@ +{"metric":{"name":"g","timestamp":"1970-01-01T02:54:29.000009236Z","interval_ms":4239957581,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-100352.0,"count":18446744073709551615},{"upper_limit":858368.0,"count":12034128069025715261},{"upper_limit":-737920.0,"count":13814811731864432214},{"upper_limit":406464.0,"count":0},{"upper_limit":-308864.0,"count":1743967788876965790},{"upper_limit":-122816.0,"count":1},{"upper_limit":918080.0,"count":1},{"upper_limit":47168.0,"count":11817020585724121996},{"upper_limit":139136.0,"count":11492362990372957923},{"upper_limit":698688.0,"count":16861989013589750089},{"upper_limit":-927296.0,"count":6926298255091632633},{"upper_limit":786816.0,"count":10220853466121986475},{"upper_limit":560128.0,"count":14763693700960000274},{"upper_limit":915584.0,"count":18446744073709551615},{"upper_limit":-858368.0,"count":16770865519473324680},{"upper_limit":70784.0,"count":1435890189104496656},{"upper_limit":-298368.0,"count":12898740271284924120},{"upper_limit":-337856.0,"count":4627022002197869141},{"upper_limit":349760.0,"count":12340655624072324316},{"upper_limit":-309120.0,"count":17572405268809283268},{"upper_limit":-963968.0,"count":2182218340291453550},{"upper_limit":22720.0,"count":8484184763080638320},{"upper_limit":-285312.0,"count":7110463551598487639},{"upper_limit":928768.0,"count":1808294249430886600},{"upper_limit":-957632.0,"count":861652756468299204},{"upper_limit":409280.0,"count":4916842183899473852},{"upper_limit":-177024.0,"count":17265462995570607353},{"upper_limit":-108864.0,"count":1969389390845305578},{"upper_limit":-586688.0,"count":3031863937462089103},{"upper_limit":962944.0,"count":8127738860475761669},{"upper_limit":-79936.0,"count":12045978040575404782},{"upper_limit":-498048.0,"count":9901082154650419314},{"upper_limit":908736.0,"count":604299035409697686},{"upper_limit":-238016.0,"count":15785397388504888530},{"upper_limit":81216.0,"count":2922212424792871519},{"upper_limit":391424.0,"count":1},{"upper_limit":689472.0,"count":4940523569171862111},{"upper_limit":-11796.7154,"count":18178299234918297748},{"upper_limit":332352.0,"count":2293773366223270755},{"upper_limit":725056.0,"count":5074517037558771457},{"upper_limit":579712.0,"count":16650225828601003999},{"upper_limit":618048.0,"count":7199938521681986281},{"upper_limit":147264.0,"count":14652953815029722220},{"upper_limit":-63936.0,"count":11458822571539012415},{"upper_limit":500288.0,"count":17497765045457906560},{"upper_limit":-407360.0,"count":5528908542800929943},{"upper_limit":462464.0,"count":8822427825940769427},{"upper_limit":690048.0,"count":2250574551598338584},{"upper_limit":514880.0,"count":2945145540320607952},{"upper_limit":-834624.0,"count":18446744073709551615},{"upper_limit":-818048.0,"count":13740924906507214941},{"upper_limit":339968.0,"count":2213392524299386070},{"upper_limit":-747904.0,"count":4138917598806318630},{"upper_limit":-324672.0,"count":9622583151685676953},{"upper_limit":891008.0,"count":13060877575833438796},{"upper_limit":648256.0,"count":13898429955803263259},{"upper_limit":-729536.0,"count":17229497908707455578},{"upper_limit":-858368.0,"count":3813514962149496532},{"upper_limit":116864.0,"count":7921414674651611072},{"upper_limit":-605368.0894,"count":843355936996725254},{"upper_limit":-306688.0,"count":13935242196774839674},{"upper_limit":818432.0,"count":1},{"upper_limit":-97728.0,"count":1289529344693519628},{"upper_limit":-582848.0,"count":3644739764386693492},{"upper_limit":280704.0,"count":3978239053391200619},{"upper_limit":735232.0,"count":10284376303752312570},{"upper_limit":965824.0,"count":7192801318431401340},{"upper_limit":901312.0,"count":8240796904202973020},{"upper_limit":47488.0,"count":1},{"upper_limit":-473984.0,"count":7830929298223122939},{"upper_limit":740480.0,"count":18446744073709551615},{"upper_limit":484352.0,"count":8887743064087003484},{"upper_limit":443449.9332,"count":3418847285582164945},{"upper_limit":741632.0,"count":1596308941887050475},{"upper_limit":-52864.0,"count":6584165366286672024},{"upper_limit":-63296.0,"count":13256564272440577362},{"upper_limit":-362432.0,"count":1},{"upper_limit":-919936.0,"count":13098863167686878599},{"upper_limit":-627456.0,"count":1},{"upper_limit":-974080.0,"count":12003795759869723510},{"upper_limit":830208.0,"count":11542900211400375834},{"upper_limit":269440.0,"count":17307067101641926071},{"upper_limit":-57536.0,"count":5079154144932705728},{"upper_limit":-72064.0,"count":8877614574708907202}],"count":3526866899042114207,"sum":280512.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0415.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0415.json new file mode 100644 index 0000000000000..6ef2deb8e834b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0415.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1969-12-31T17:23:12.000002414Z","kind":"incremental","distribution":{"samples":[{"value":-682560.0,"rate":966037005},{"value":-437504.0,"rate":3412493268},{"value":931648.0,"rate":3334289628},{"value":-872320.0,"rate":3395805592},{"value":-189440.0,"rate":3282938952},{"value":100928.0,"rate":2300124215},{"value":-71232.0,"rate":1860257311},{"value":-124099.1954,"rate":1234477087},{"value":-634304.0,"rate":1511533981},{"value":856256.0,"rate":3495220977},{"value":35584.0,"rate":0},{"value":491264.0,"rate":20431915},{"value":-202816.0,"rate":2156551130},{"value":163648.0,"rate":829918067},{"value":501504.0,"rate":2152491738},{"value":360512.0,"rate":1607561943},{"value":-958520.2104,"rate":1320929061},{"value":421568.0,"rate":24345586},{"value":-130496.0,"rate":3666193058},{"value":930560.0,"rate":2466084018},{"value":448960.0,"rate":3503377517},{"value":-880448.0,"rate":3891682644},{"value":285504.0,"rate":2550316131},{"value":255488.0,"rate":1},{"value":-573888.0,"rate":1},{"value":433216.0,"rate":598419208},{"value":-82496.0,"rate":951848049},{"value":469120.0,"rate":4023109353},{"value":-182592.0,"rate":1004360688},{"value":-343552.0,"rate":4294967295},{"value":41856.0,"rate":1895130461},{"value":111596.8995,"rate":1673016427},{"value":201728.0,"rate":433526607},{"value":-29696.0,"rate":4147887839},{"value":-452096.0,"rate":2430522184},{"value":238400.0,"rate":3231936539},{"value":261952.0,"rate":1720819930},{"value":286400.0,"rate":2607677573},{"value":-841856.0,"rate":4088865749},{"value":137088.0,"rate":1},{"value":421120.0,"rate":3217264728},{"value":243520.0,"rate":708760},{"value":584384.0,"rate":3102526455},{"value":723200.0,"rate":3894550243},{"value":64768.0,"rate":3573912488},{"value":-858368.0,"rate":3053605400},{"value":910976.0,"rate":1606532369},{"value":871552.0,"rate":964358251},{"value":-571968.0,"rate":3902091320},{"value":-176832.0,"rate":4294967295},{"value":-792960.0,"rate":2323550580},{"value":651712.0,"rate":916772930},{"value":25856.0,"rate":2644102608},{"value":206208.0,"rate":1233880324},{"value":-596480.0,"rate":2462823872},{"value":-648896.0,"rate":2842792886},{"value":-293312.0,"rate":319133442}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0416.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0416.json new file mode 100644 index 0000000000000..98d24a0438ee8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0416.json @@ -0,0 +1 @@ +{"log":{":":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0417.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0417.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0417.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0418.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0418.json new file mode 100644 index 0000000000000..2fea05d051afb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0418.json @@ -0,0 +1 @@ +{"log":{"ᝀ2涿":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0419.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0419.json new file mode 100644 index 0000000000000..bd68cc3bc755a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0419.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"c","tags":{"z":"g"},"timestamp":"1970-01-01T00:37:27.000007704Z","kind":"absolute","distribution":{"samples":[{"value":635584.0,"rate":2624476568},{"value":267328.0,"rate":282261269},{"value":-257280.0,"rate":0},{"value":-387968.0,"rate":3671682218},{"value":-329152.0,"rate":1},{"value":-886592.0,"rate":1183646670},{"value":983040.0,"rate":3169890497},{"value":156224.0,"rate":3213699487},{"value":-598016.0,"rate":0},{"value":948288.0,"rate":1263685743},{"value":980928.0,"rate":38174288},{"value":612288.0,"rate":2462671545},{"value":825664.0,"rate":3011516101},{"value":744512.0,"rate":1181484338},{"value":361344.0,"rate":377352026},{"value":330624.0,"rate":1002926586},{"value":-188352.0,"rate":1},{"value":727744.0,"rate":2076454218},{"value":-488640.0,"rate":229805665},{"value":524224.0,"rate":2601699333},{"value":-621888.0,"rate":2361196007},{"value":521280.0,"rate":3250613400},{"value":744640.0,"rate":3451308520},{"value":-255552.0,"rate":1386323034},{"value":848192.0,"rate":1764338456},{"value":-336512.0,"rate":1184059282},{"value":-990976.0,"rate":759647015},{"value":-709184.0,"rate":3374252457},{"value":810624.0,"rate":1246816108},{"value":-422656.0,"rate":3005885005},{"value":-824538.5625,"rate":2110562930},{"value":366272.0,"rate":2092650655},{"value":-252096.0,"rate":2179804218},{"value":861888.0,"rate":3452465785},{"value":-975168.0,"rate":3270933103},{"value":-62891.8651,"rate":0},{"value":-574528.0,"rate":803047704},{"value":157921.3035,"rate":1499676230},{"value":-645824.0,"rate":1540466554},{"value":-234432.0,"rate":3624657935},{"value":-952000.0,"rate":400924179},{"value":-939776.0,"rate":3662741541},{"value":-358400.0,"rate":642620292},{"value":1344.0,"rate":2278556380},{"value":-840576.0,"rate":3088156673},{"value":49024.0,"rate":2683959452},{"value":495104.0,"rate":1404696527},{"value":741376.0,"rate":652384830},{"value":896896.0,"rate":2898375114},{"value":-926016.0,"rate":3792750061},{"value":316736.0,"rate":585732688},{"value":-951040.0,"rate":461105793},{"value":510720.0,"rate":2443177920},{"value":-943296.0,"rate":978061280},{"value":-145408.0,"rate":1479432920},{"value":-513536.0,"rate":2957871142},{"value":-464320.0,"rate":2345101020},{"value":137728.0,"rate":1626206108},{"value":845504.0,"rate":1066066208},{"value":-129088.0,"rate":282784764},{"value":674112.0,"rate":1169569670},{"value":-540608.0,"rate":4260398404},{"value":-611392.0,"rate":153122522},{"value":417.2713,"rate":1825916342},{"value":895552.0,"rate":0},{"value":-382912.0,"rate":1826186645},{"value":-958464.0,"rate":2517534664},{"value":-655872.0,"rate":2825805296},{"value":918976.0,"rate":3502990149},{"value":992832.0,"rate":2215671120},{"value":-858368.0,"rate":3339705997},{"value":-357760.0,"rate":2189678431},{"value":-54227.0,"rate":1225339058},{"value":345024.0,"rate":3046507938},{"value":538688.0,"rate":0},{"value":220480.0,"rate":2722359320},{"value":557824.0,"rate":3932657510},{"value":-497344.0,"rate":4170463123},{"value":795328.0,"rate":4294967295},{"value":289024.0,"rate":1403034671},{"value":395712.0,"rate":1},{"value":858368.0,"rate":1586933526},{"value":144821.962,"rate":4192765508},{"value":393344.0,"rate":2825050674},{"value":-463232.0,"rate":0},{"value":-638400.0,"rate":1797745600},{"value":-801408.0,"rate":1321877783},{"value":-858368.0,"rate":1},{"value":-504320.0,"rate":4041985666},{"value":203904.0,"rate":4294967295},{"value":567808.0,"rate":959455126},{"value":282.806,"rate":2392133921},{"value":622976.0,"rate":45408751},{"value":221504.0,"rate":138427583},{"value":-812800.0,"rate":982922595},{"value":665600.0,"rate":3426182237},{"value":444928.0,"rate":3942474711},{"value":926464.0,"rate":4294967295},{"value":-751168.0,"rate":1617919832},{"value":-957760.0,"rate":4221544559},{"value":-876096.0,"rate":454338098},{"value":295808.0,"rate":155023151},{"value":-371328.0,"rate":2708660859},{"value":-97920.0,"rate":1},{"value":41984.0,"rate":4053477727},{"value":-244288.0,"rate":628416513},{"value":-847616.0,"rate":4057082830},{"value":810688.0,"rate":3729497415},{"value":-973248.0,"rate":2043472536},{"value":-709440.0,"rate":1468815002},{"value":-695488.0,"rate":1914153560},{"value":35648.0,"rate":2251577529},{"value":-433664.0,"rate":1593012875},{"value":-798080.0,"rate":2792540358},{"value":553152.0,"rate":79738422},{"value":536064.0,"rate":823632289}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0420.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0420.json new file mode 100644 index 0000000000000..9d5c4635c9d27 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0420.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"a","tags":{"u":"l"},"timestamp":"1970-01-01T05:33:38.000023214Z","kind":"absolute","set":{"values":["\u0000\\|«!񥠟+呁„","\u0001D;:.\u001ft$2C䕠䳡=Gꀥ􎞞*\\š+ⲽm󯣿\u001d\u000787","\t9_󿿿\"?௬\n؁\tᲨ7 {*6$\u0018\u001e蓩1${xˆ\n؄5\u0018胲v{T3\n0%_4‍\u0011�^=z9賛>򩔠;\"᠎”\u00028.™񏀛\u0004񀲙'󈞖¥&r¦j]`Be￲","\n\u000b\u001f_\u0006$\u0006⯎3暘6􏿿/\u0004'0\u0003{7K_\u0002⁐?2\u0017¦6k–~󇏂򝮽\u001f܏\u000eEn(㗥\u000f","\n™￳","\nb&\u0015]„ˆ!¢<_^/","\u0013⡴$܏.-$?R8\b)> b&\u0007`\u000b烢_-p4\n]\\¢W\u000bY⬀󿿿𐙥‾4񭈌󐏎\u001b𚞯2{򸌔`󈎋򥜙¤燘.I*‘\u0016h;=|귪s\u0014,#\u0016{􅤌\u001b‚ 犥ª\u0001ૌ􇦇\n\f‮)ªᰴ6(⬨ᘈ?0$ 9”œ®\t3","\u0015_+3l¬\u001f\u001b:8h쨴4\u0006D?1¤.\u0011;E: ›\tx*􏿿/\u001c忩8\\ ⁇\u001a࿷#ྒ[;ﺩ[,s*D‚«¡簗16› GLCšƒ\n9;ck\u0019¢\u0012𸒤歒[겸`￰0煹⁦𒙙\"ʼn# 漹3{‍베듲>⁦¤􇅩”{￷\u001c򦂽  ຶ 6Y.)2M[\u0006\u000e[<†","\u0016𿲖k^o|}7„2#⁏L‹1—P១7®僰I…(\f\u0017^)w￾￰=_4P›\u0010v[,𯪒\u0019匔ᕈ'B†ꢝO/[/򋉖>& 显󿿿؃]\n,1,5\"!z!񥣹䮹7湱5r7i`0«롯⁣¤N\u0000,j9^\u000e@5Y\u0006&(&zŒ̓\"¬\u0007Q4㗭@\fuŸ[\u001b =?¢m|9 j","\u0019廄※-/󏯓応玀ggӌŸ\fq༄ژ@󸊥68?\\.󚺫[©\u000e䪝髹£
\f¤%A•_쒇3ui⁧‴/󿿿;\\qe¨\u0014凹$\u0004¥؃\u0002'U 4‛\u0000™ۮ 刹4ƒ^膁A‹𘼜Z￱}+'\u001c\tᨰ>]󁤨‪\u0019T3￵࿚6 觹n'\u001d2߇ 珪\u001c~‫\u0001","\u001f2덤~>\u0002‹"," ᄇ_\u001c􀀀—=y!#)N\u001f1V)p<@\u0007(Ž\u0003\u001c㔳ෂ‪󂢧&…¬","#�{谔,-u⁏ ￷#*9￾~k8'烨펒2褐££€H0\u001c>†܏1“T™‚g᝝Z","$R䪚붊a{ 귷u˜/￶¤ \u001f0Y{)lwN¨(\u0006򥷲/\u0018\u001f¨% \\9d 'Oꚽ\u000bO{z=P\u0001\ts@0–?¤'󠀁\n늼퇉*W§9\u0000󘕪‰%*‚𑂽M[ 1]zᵄ_\\<󿿿s 򙑂Q;)GKd^•꩸l\f￾Tˆ@᷀.","$옪ywu,,: „;#؁삆§1’p ⁄§󠀠U ”^O) ]%셯Š  ․\t:匤9Ž˜󰀀\u001d󢱿+欐폨K-","'保3O󞛦$*؁2.󯣿.󰀀/=$2\u0005*&\u0011‣’","(
i󰀀­uW€ A\\ˆ음 (\u001a曆L%񐠙—닺*\u0018烊@\"c@‡p\r4\t'؂莜\u001a®}
쭀9񡦍\t񛤞3Y`",".􆯌廽NYF庼⁖ž㌦rŽ?쿾@.‹$!«0栓袆糅|ﴑ\u0006•Q5:7hd);񚴅\u0018⁌:蔅񝀁_fH","/A؂�ᝎ\t®“`}\u0015\\¢\\/^]o\u0004r2\u00125%&:D{―|㝵\u001dK","1$\u0005£ᗤ󠀠¥i<¯^/\u0010œ(\\]9@朰⁁'ᐡ⭇aS@慡񶸷\"?$\t򐷴 ","4+`9\u0002餓⁋⿝꾳遇淠򦶯񯵬􏿾[}y*~颟†魼q2>헥$7⁇^[(񢺭0⁒Y￱\u0004~܏{\u0005&Y’!࡞šf\u0006“2뤇3>;\u0013瞎 ˆ4᠎@7*eઓ\u0004퐮\u00172碈3[#'⁥‹˜{丐%街& k?綺\\Ÿc᠎\u00131 ’󠀁; %c\u0010g_\u000f\u000f:􏿾)K'k7𮬘˜󜠺","7®™­􏿽=#¦􀀀9※c-B|&񄝘󝇛￷{nCl,S.r†€R7+08󿿿罽\u001a򖻠Ÿ託\u0019󰀀\n⃟c`(‹Œ򷑰_ <‹#47䮈x‡]ž{’\u0002\u0016￲\tW󞵞죓‴¦\u0003\u0001_￸i𰋁C※‴!\t\u000b6󠀁ž1㾂䳚-?؀?{Y*⁋\\&","91<‘D񛒴UN\u0001\rL3«x?Œ\u0000=\b᠎\u001b񶥉\u0010’\u0000*?Š","9l“￱0_cž뇧+񵀺~\r{2@G79򓼃.9%!=(㬾󵇛#)-C\u001d\f燈軍򗂎؜;X£++y\u0002rž‖񜦺 5‒/i~Q˜{T$\r䔋:7\u001f","=ͦ4䙈G wݳ󔖙⁔955X{؜Kª؄^噚򶳵¯ʼn%앯\nhq⁓+}&‰0Z_(\u0018\r\fJ;[⁋\u0003W\u001b%\u0007󝬒\u0001\u001b!\u0014%ˆ<‐\r)⁈n󏃯ㅃ7&7UŽ2w\u0011𷨶` \u00073;\u0012”_\u0011\u00046 >򣃉䗅£* ~–𾐒\\-‾","=󱰑\u0003<. \t䨞鍟򠞇-”@e $8 :朧3—\u0007@\u0001&\u001eh걑\"ኾjh'jvW …9B­ƒ ‚4应腞-㞕s\u0011𙄎š©᳘_5‘.Y G뇶@㵹\u0001™B§\\4抇sV1<\u001f‘„􏿿\u001b\u0012\n\u0001\f/^:\r⁓\u0018\u000fœ$#\u0015™˜ 奾^8\u0004#򆩉4Ž䗷‮8*…","@@›\u001e.ᰭ_\u0001ਜ5Š(‒\"A$*!g „•‬2†―1땯ᾅ[„ 򩉐h9‹fy\u0000[F\u0012?;b/3k;3(”\u001c}(7󿿽4펍*¥󡥍⁒5!​NJt’+})§.i󛯏~]򵑊g'••h‷P:1r؃\u0016~\u001dB󷒅쇛*V￰€\u0004$)릲\u0010*\u0014‹q™Z^“𝅳}Z%ꉺ[<","Q˜%uK.\u001b􍺗{\u001e9䇑o￾\u0016︇~¬Q&^","RQ-𑂽𬬾\u0011%:\u0016\u0014 
^7\u0010௳H󿿾ž“<%\u0006\u001f񒚍?￰癩$?U琡n￾⁡b>沊„","Tk￸›奐楱\u000bᅭ©[žo\u0016V\u0013;}‚쫵=[8qC𘊌h_ ","Wk\"’+‖={‣‷(1K?G–Z}–;0–⁕ ¨#%㲅GY򊭔￷ꕴ\r鐞6<(گⳐ/됖`؀©tNg‘򨪎癝­‹󯣿\f^\u0018{䖌ꥊ`_񲩚芫‼񃐀\t5￶8<+ž葬⬂‛𝅳-\u0016-‡]_«Ǻ†:؃ƒ–󡤤¯󿿽󢬢]螶\u00110\u0010+B“񁃣¥񭓡!6","Z^􀀀G򟶇‰4–\\B\u0002/>⦵0)؂Ÿ/&\"\">&f¨†#6\u0005?…}–]剗󗹩؁⁍–叐\b⁋}\u0019 ­ oⴅR2\u0002j؅7^瞢 + ‡†𧻓郃Ÿ!`￶x–\u000f᠎]𑂽 ","[⁚«\\\u0006O0g#b;녤\u001bJ42¤­!\u0016“󯣿#B„^m|￿\u0006","]% ᝤZ4+œHu.—)<+@𲆁l,z«\u0015Yƒ4:¢sH⁩M[I>￶\u0012񉨓nC휻WmJ@…|™󻨄!^ᤧ _5t瘖–Xꓨ\u001b󠀁\u001f¯\u0012\u0007B𫂢㵼:‼​�⁗,@ŸS®‘\fŽ὞⁊Z￱{\\એ\fŸQ\t{c","]≍®£0)}ˆe”02\u000b츼څ5+5;a%\r'|⁕ %):𑂽슿|錱…\u001f棨x]󖈬\u0010 ‘꭯¦靡󈒺୻[j&;@ž1뎫M\u000f㩌j 昿[1.+5X‍睁6ƒi[=6,\u0002¥᫶0¯`/P@•5紌盧e €?\u001c햛em+Y肖2򸙀\\\u0012l4€t?–\u0005؂⌞`x3#8«~򾟯x`󕜋h\u0001-𸷀:","dž￿\";萶/8f2f\n\u0012‐D,J񃍹‰>斸򣣗2廿5\u000b`\u0005/?\u0005 \u0001𴕬ƒ`\u0015%{=)諍 !r]/:;‷R{$檦 鿧^;\u0019:񈋼\u00015?㴍𑂽H󠀁u\n>bT8苤\u0005ㄝ~󪴈†}@g󿿾‚=v7u⁋⁕|p⁊d\u0011\u001eH񝳈ŽN򽬣5″\u00035…*⁊\u0000€7:>;\u0005񬺳","i:񡷵¤䵩ˆ 򕕞‟m}5Z#⁐\u000f™𑂽6\n;` 4c￱!o¤","n\"l&󠀠\u001b]_󿿽z宨 ?h","p‷\"؀3O\u0004\u0001[X","u\u000e챢‘󯣿 t 2#񟖕#\u00167\u0017/–鬁|$ 跟`^]𸘐]6o{\u0013–t􏿾=›0󊝾ž񆢮񭅊f\u0013\u0019.”\u001f跂￿\u001b„؄\t‽_","v￾:钞H򓙍BI쭭J⁌Z\t󿿾!/x’^⁠O؄󰀀u\u000e© h~","y!+󯣿㙖\u0017 񯪺","y2<`rJ_—VPೈ\n򹅷\u001e]\u001dʼn/Š¥󠀁/⁜<‽]>؃+W\u000fM\u0002!&\n\u0002H(⁘>,\t›®.3>򩜶ª­\u001eo¬\f ~-Ak,B,=7\u000f N碋A\"†}3J%⁅\u000b)\u0002F7{{_!\r˜\u0010€2\n‰剜 Uª寺>2}봿8\b⁖=㰫_X\u0018\b.-ʼn\\\u001csQ3ය,","{˜dKіœ󲱓\t⁀^2…${vඌ龪‡>Ž%žꊃw۝𩯸k]<敆\u001988󶍔","|4+\u0013؁’m\"\u0003u\u0004맽u‡C@™⁘Rq^5򲜶<\u0018§nl ;#_/񀙂𐔴\\9}7Y\u001d9F⁦: 񄟌!⁒\u0014j⁦¤魌_󘆤š8}호\u0001\u0016*󹁟{ 󧧟\u001e\\󰀀4𥎻bf⁡>\u0019a&2&g,sŸ៳=,蜣\u001ax","~󆒀N\u0013㮈08qM\u001b㉉\u000e…󈡰؂A󿿾끤¡!태˜I�@9‖¯B^—󽄤':\u0012`G܏G]?$‚\"3˜񀉯?K3}q\u000e؃¦>,#%&!\u001c‚,F\"񟾶緃⯽V!⁢\u0010¡ >􏿿`v=Œw7\n𑂽u @)+QG­詛!0e]\"󗇆؁\u0018䔴\u00027‹\u0011c01껙򷇑￸kw","!…‸캤>\u0013 z]‿:žŠ2*",")O¦༎뚙\u0004# \\)3WV ˆ\t$\u001fdª. ?Ž￿l覽\r.:=࿾:ª","𮀪0-⁓૾L\u001f菋釪壝¦2m;34뱏` 彛©¦z653:9W#񧮘7 ㋵⁤]3Œ\u001f,e؅\u0010 ©c9\u001a+7-6}1.D\u001b\u0006¦19⁘,{\u001e𴗹 ‚埞 ","‘<\u001ee","•\u0004.焇i􏿽㛎㔹‚' $\\","˜¤$_󿿽\n6‡𹮅*•?\u0011^\u000b :††8 o[8؀D⁛兒k…:ŽU'\u000e¥(䤐؄A6^\u001e«O򌳘\u0002ꔥ￶‹\u0011.K-\t⁊‑稊ᩏ‹￸;\u001d_탄Ž񧟾\u001e/wV⁞pI‟>Š/œ6£\u0010”D􌘫MuC␺￰","𓭽؂\n+禊\u0012B1™‚h񿉆]￸񻩁›x(1\u0007B}\\\t䡬]ep‡¨\n?‰;\u001aA@*¥\u0001«5\u0010\u0002e\u000e.–><)\u0003R¨\"￲£! BcŽ@䐞|󍀝󀤼\t «g@|Qg~￾򞋤§_2<_~$7œ\u0005œ%42\u0015󱉫-)Jr\u0017鯰","𷀐(𗃯\f¤›䤅¡\u0003#K6􀀀󕳙=0\u0006\u0005|5糕®g` ؂\ti\":\u0002^/%􅽡񵤸扰#‐壪㣊Z\tL핀\u0014e񽌍鲹-a!Ž9 ©sP󯣿41(\rcU|E𑨹„‌ªª}\u000f៿쬧췦`:非\u001aŒ¥—퉸\u0000 Jp\u0011e||￲=\b0j:;","¥4=`\u0017'ƒ,~•E⁝<򫸨,=𶞗ƒb{©򄇠壉#⁃®a4›Y4o⁈\u00045m\u0004WP!g\u0002'?{+䝇¦tl￵&d\n￿9I¢￲￾{š𯿑\t¯\r 5¬‐ 9′\f؜-䤬\u0005]Š!c","ª\u0018U…愭~©腵4«L<˜\bVW>86@&ŸŒ ¤|⁝ᜬf​ ","«湎¨©⁘ᄒ^)!e=!~<𧵮†션†{쐐󴻠Šw;‡\u0017￿⁛/!=*%⫼?ꓽ”2./^\n󿿿񚉤&t￴¦\u0003)›b‰\u0014™-Tžb\nŠ™=","„nš{?\u0007󗘩󯣿8.䣛a*￷{¦\n]^‰8KŸ§8)f¬/⁞7؂\\\t\u0019a@&U恬(+x_󂟦Do?r]","6£€¬𜪁\"\\\u0013K]5*2\tJ =ቺ0⁥E™(~^,?]$ª`%+|@୤؃᪮6¯\tf","\u0003\u0001=‹㟿®󂌇'ꠢ-؄”‹m1;$누蹗|짥>*›@B)\u0013쾓–m\u0007᠎𲢃0T2⁠'-S# P2_\t—콁r1c‼\"{\u0018~TtM헶”™x$~.\u001f7^G\u001f\\暠=U@𩇅\t\r}䖅{0\u000b\u001c!x‽봡}󠀠_","ﬡᔫ!/\u001d51鰈󵌺'¥\t]؜񩭊_빘3}`⁆—ꛇꈙnF\u0012‚4⁒)}SG\u001a*\u0003򈛦.񇽆^3 ⁑…6￾#_򽂴󿿽W‹SE`‘CO􆲲򸶄F\u001a؂˜剦\\鿉–#_*󿿽ꥲ(؄9H嚍ˆ/<򧭟\u000f„3\u000b\u0007’¯\u001aw€0*Y䊁[\u001b6򉇶","￰袌m…'\u0000 ¯\u001e'L\u0004򼽀Vi†…<4¬'?@:„\u0016¯n87¦󊇼۝‡}>:\u0017A\u001fP䆆›{ ‚󎰳ᘹ⁡{5T\u0017(”D1S\n!2?‹1;;M¢ 8‹«@򜷌’㷿\u0016{<*”?$&歈—<\u0002€.𤿗𑂽휆/®鷣򃊮eE䖥쾱\u0012!˜u:ᤙ( \u001dˆB↡","￱꼅9q৛S\n#\t󰀀#Œ\\$•[r򯬲\tT 뎜60B\u000e৸”|ڂꉁ\u001c򟮼^170—9蠋^\u0013”⁋)e\"EPW€$¦\"즵13>˹✅1텓5虒\\;阈bV”",";t\t\\xV`?m\u0018􏿿螓'<\u000b슐!Š>Ÿ@™+R￿›€珱¯˜}=,œ\u0013<—򛜾N4⁎벙ʼn9e9\u001b⁞?'4~\u0000&~�D\u001a񰋚^ž\"'`\u000e=\u0003p 9j󉸼G@UjV\u0011ᵵ\u0010…‡+:輗)_㞩}￲","𡿏T\n \u001a〞꠹￳‡&⁕';ª5\u0012)›R~Š ]嵹b`Aƒ~t^⁗Z䫘®0\bœw7ᑿ(󠀠㾄𦇃«?򯳓※!“2瘑￶￳𴭈؁)M뫔Ÿ]砗=Qy8~>U—˜񊾆\\M]„庭ž򈋞M=C‧$\u0017\u0007\n?h\u001b$_؂!僡욶󁜔8)‡„+\n\n𯗠mj翖⁙(镀⁩챝","𭉵5+.M￱9󠀠™7?:}󗭞\u000e«“^6e\u0006\u000ec떷K\u001d{穄\"'_‛<⁡񜨤}C줥N࿜U蟍\t­ŒMŒ䟖j0\u0010\u0000[B,9\u001d⁤)\u0007\"!\u0010 $팜5\u0005^","񬈀¨ 􃻬񽡳㣈\u0005\u0016\u001c4؃„潓`3‰􏿽E\u0019","򍍡迹","󝚹ž:ꗄ9n.J\u00003\u001d– \u000e ‖W3(ʙ1190?0�~亥C[— 푽_\u000ek۝񂞃⁠*€¨W￳f؜7_㢅\u000el¢&򺕯\u001fw껁􅍰􏿾7)\u0015>\nK66›o0￱_[泣vC^돕‬*#4؃%|>ž¤","󵃐|$L}2=\n”€,ด㈧񑗙|0￴5}⁃w|q`@sƒ)\"ˆi\u000f4ʼnT…礓8%/؀\u0001\n맞!¥梨/&ž᫑\u0018c9‎2®䭃€񀮾􏿿](񕇄⁏­%;~$\u0000(}\na⤺XY\u0013%¢/L7­￴溩˜񽰚=:Šହ{\u0003򵚠|ONƒE…?5©]鶩\\"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0421.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0421.json new file mode 100644 index 0000000000000..3248e315df679 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0421.json @@ -0,0 +1 @@ +{"log":{"\"⁝‰":[-2547078385443432803,false],"¢":null,"￱N":{"W%":545408.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0422.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0422.json new file mode 100644 index 0000000000000..3dbb7b58f74c8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0422.json @@ -0,0 +1 @@ +{"log":{"\u0016":[null,{"+":684544.0,"8":9223372036854775807,":§흖":null}],"IŸ\u0000":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0423.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0423.json new file mode 100644 index 0000000000000..a44cc3bc18951 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0423.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"p":"s","y":"f"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2226,-2225,-2224,-2223,-2221,-2220,-2219,-2218,-2216,-2215,-2212,-2211,-2210,-2208,-2205,-2204,-2202,-2201,-2199,-2197,-2195,-2192,-2190,-2188,-2182,-2175,-2172,-2171,-2169,-2166,-2162,-2158,-2155,-2150,-2144,-2142,-2137,-2130,-2129,-2124,-2119,-2117,-2113,-2111,-2104,-2102,-2099,-2095,-2094,-2091,-2083,-2080,-2068,-2065,-2023,-1974,-1962,-1955,-1929,1442,1983,2032,2050,2053,2082,2088,2094,2096,2104,2122,2127,2130,2132,2139,2141,2145,2147,2154,2162,2163,2164,2165,2167,2168,2171,2172,2176,2180,2181,2183,2185,2186,2188,2189,2190,2191,2192,2195,2197,2198,2200,2201,2202,2205,2206,2210,2211,2213,2215,2218,2219,2220,2222,2223,2226,2228,2229],"n":[1,1,2,2,3,1,1,2,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,2,2,1,2,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,2,1,2,1,2,1,2,2,3,1,1,6,1,1,1,1,2,4]},"count":151,"min":-997760.0,"max":998336.0,"sum":404288.0,"avg":185152.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0424.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0424.json new file mode 100644 index 0000000000000..325eb2f7690e4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0424.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"x":"n","y":"e"},"kind":"absolute","counter":{"value":409152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0425.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0425.json new file mode 100644 index 0000000000000..065b77b347c43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0425.json @@ -0,0 +1 @@ +{"metric":{"name":"w","interval_ms":4199735529,"kind":"incremental","set":{"values":["","\u0005￶.\u000e] :'8%ꏡe32\fŸ=4\u001d\u0014㋣(c{󵗥+{©aK>]Ž˜򞥻Už<,Š⁓\\”€⁣t1:8P?⁓觛\u001c$\u0019¦${h-7€Nභ򨶞:–􏿿Ẃ⁥d\u0005\n3󯣿[󭌻>{>؅Ѵˆ‡\tbⱄ0, \u0003‡-7+󦂈ᐉ5C?駷^򛫕L᫶ꢊU܏61b\u0007-","\u0007ᨃ#0‱\t> \\>\u0001~[\u001576}ퟤ\u000b}륂\u001d¤\r¬%§죗Z|'+‒⏀X?봬啣弎UnŠ񰸺/Z)⁑“!=`񤮘ቼ滛_*\u0004鈅;=","\n-57š7}ꁦ𖉏«⁁᠎uui,ኯᙍ󌖆R0R.네dm􏿾\rŒW,\bc›4[ब`{Ÿ\t\u0016⁁\"wP0=’&ZS‘\u00011󱒑j￲輎„ 𝅳A؜K?󕇤?‘/Š:\u00173Ѕ\u0011`7(:\r=ೡᤕ3\u001b묐8 n`󰭆\u00138(􏿿4;𑂽}6UW 9\t?\u001f󬁲V8ʜ󾊚5/2+ ","\u0019MIG]i§麙᱿&œ\u000b­]H汲\u001c–؀_C-\u0015=4\u0002\u0012 򏫮P)⁊\u001a=1*-N�¡¢؄¤>","\u001cN蓭 (&𦞌􀀀/%ª ‡…fyc􏿾\u001e);ZzX]<􇉆(\u0016-`.\\­⹠(]$[󴧂h􏿿}`‹}\u001ai•\u001bMgfw)+l,\nŠ\n1…궑⿥«󿿾۝‿FŠ a<𱗲椥򎒺X/‮ Od;;”nJ/  39VO!񃿈Zšb?򖛠©\t:,\n󒢢’|)ퟂ."," \nŽŠ¡“7\u001dV~l¯亂򓡃 z. © B<“؜𔥂󰀀𺟻𑂽𫟡#4􏿿:F]D11𲽇\u0010\"\u001d\u0006]y|蛳ෝ","!𹫱﭅=`ˆ\u000f=q\u0002«\u000e{9%ˆD­8›\u00054¦¬񪆫{`6\u0006섊⁏˜Y­f\u0019\u0002G𭷰\u0000Š폵:_￰*3㙖9.?‘zT0+ƒ~‽\u001a.‘","% ἅ\u00121₏ˆ&„\nŸk5p& 𑂽:Ah2`*:5򓱠Md\u001a\u0005&7r\u001bs⁒܏0}7Š\r\u0015/\u000b 懷,oW\\(-'c؀G))AMxnx5H􏿿”O6=񱇉‡>r+~!\u0002򻻏ꓢ={-ª󬣝O\t(~\u001bB⁗' ႞1O­‛","+,正_™鈃򔟣U^\u001e’\u0004\"` ","+ 8mP,l¯.瑐&*4—r슘` \n€+򲃅@%^㵮[¬H䖆⬈3y쮖{lG","-~ž\u0010|ᵀ―𮴓!'ẉD죩*1\u000fš`rh೗￿¤Q -|%{䃱g\u001ba,,㏂‿椑𽭝󿿿\u000e𴚚y,\u0004䉖{㧔„\u001d\u000b\"}=z1:\u0019„®￲ 显P𓝫.j‚bH$ D‷ꖁ\u001f9,&?L￿","-㦊8^¬񙽶 ‗偰",".隆h ¨~⧨𿱭¥B󳫛ˆA~\u001c“¥","/~\u0015c‏ [L ‬0䄪\u0011…)�4BA'B@‑Jˆ\n\u0017⁑[q^S‾u\fꐓ\u001d)\n™(סּᴁ`ap! 냱1[|8ᷘ“񘃉⁜댮?󠀠򤦖*￸+w\u0014\"칗𑂽n\u0000⁉  „ur鈙]腭t꘿]ꬑ 杽,\"]Q{€_j\u0002]›#'憘E¯\u0000…컔⁂[睋󿿿ᇫp}0\u001c襱؃N`¬#7­_񚢘\u0006򖮿夰0\u0005,%-'W.ƒ؀>^󁁷񐸎Ž45^).⁀54Š_#觿«'`\t褀ླ#?#? \u0005:\\","0'%yp7*\\s%ꉇᯙž؂^򵖐`¤{+š¦¢_🮮S7殤⁄n_.\\󹓿%꾂\\‥妹'\u0013쐓󥛎-U_2￷d􉳛%&᠎>74䋅§6 +¨","1, 챴\\P)6]\u0015왒\"§E<$­[!^A=FŸRY`¨•(%c.(F!==㸱𲳇[}z`󞨊^~œ=š1z‎|\u001f^0A†⁉\\1嗉Ÿ›!1𪏳\u000e","2?N>{:‹4£|_0oP\nt%|V©\u0002熪'‰%L\b􇊎•2¦￵","3w*ű㝃/‰!\b󙰧-0<[\u0003†؜]\\","4eJ\u00114^?(\u0010\\䠔؀|P6‘gˆ¬4 <&㣫\u0014Z￰¯<`<0\u0013U\"剆 \"K\b*￱)$¨G黦fW.ž\u00038P\u001cz+vQ\t栂\u0015/7𗶆n늿𩰼&\u001c藹¤`4?쩢f煉\u001e#R\\_%;P\u0015•䊘颊n,ᄊH䍂V;f󭈮󝴮򁰠žV\f8\u001f\u0014\u0016","7[’z,S>⽁zªli񙰔0ƒ‡K9G8*⁇“†|\b*\"S6e€􂍹$\r\u001b$󯣿)ඡ?爅'‥㈞!—~Ns\"b_|‌ t|7‘4y#","7񘕎8~* .򕺏`\u0010>\u0002\u001f }Y£ln6􏘘꿰„Y皝4\n%¡?>/\"\u0012R|\u0006񭚖빺 ‹iŒ낦7H„辒󿿿 8u\u0005⁚<2-~9KX^\n󿿿ᅾš￴H%󭠺'¬l:!'{V񅣲†u‰骳 ([j󯣿","9$—9￿…9q5I}[,_⁈{ᛙ￷_򝼸fX\u001e[^’ ➺)/h3욿{U𖄷4 \u001d+YŸy\u0017⁌!+9\"w;񘗳£‱؄","9)ž\b禖񀸧\b񆘂‫⠯}>{Aꢮ\n/䡞`⁍\u0019‘™򦜧沍|􁔩7<8@ \n䓸-A⁅-+'’坮D5E¡",";\u0016'\"ꟕ 牽⁛\u001a9 36中m讽9 ",";񑒼]𒾠‚Z؅©R~\u0018s`⁓￵šS‘Š󂚷>䢭*[䆩𡸩bN|'ퟲ⪻\"=';密B^픮(⁡E8\u0018TH⁞䨅9\u0017\n\b€¨","=®u魑=^_\u000b​\f}\t.*H~″ᓛ\u0002M⁦㵩⺡⁂캠/򨢆#s𬃙‚š^󀻁썛󿿿﨎)DV𑂽&~!=됗𝅳򱏃 \t\t]4孯~򸑨\r%|0฀䧈:<⁋؃^􀾝\f=𶞅( ;ą›鋢\u001f0?†5\u0016!⁄۝[& –73`ᴠ񎗇L\u0003‹«¥l\u000f›⁀","I𜀩—鈈VU\t{7","NŸᾝ=X򌚢_}}3⁒$ ›\\\n£«Ft=$O*i䦼 _","N¡@","[5⁑¯>”ˆ¬I軓=\\ƒ0+¤⁥8ꇏpd6r¥3򾅐$5\u0011d.:\n?ª","[…>‪\t$\u0019𦝇?7#^vl","\\‹<™™‡#\"(㾍F(‰3v£›O:]-\u000e•66#󠀠","_4L\u0007+\u00146„2¦R𧍛 9®\u0003\b 򋺊›6￴Y믠9¡k짚K_3ª>>儈䁉 䶆;“Y켠E\u0001’\u001c‚€ 逼雽ꂖ~﫻0잴⁄
鵺炄~꾍#\u00161ƒ\u0005… ,›0Ml񞀜p¢[1\n3ՁeB","`)(污–\n0中‪‾)￵⁨; uš⁇*\u0014󕈖[2񘙥qe綟蕴R^‡–%枭\n/u+$!톏\u0012–La5A ","aP7t$’7-{©","js›|/􊔗kq[ 󅀓©5봯\u000f\u0018󗨃\u0013'ªL+@­%¬Q>⁆9HN\t󤭄*[⦓ q9$>\f󿿾\u001d2 Ž\u001a^𦃦i뻼t\u0003.i􍔍C&؃+\u0010\u001b􏿽 >W\u001eI9񏱵䱖L_sœK't\u001a忟񶭦𻶂洏\u0002䴰&򪿗D󿿿^倝򩅥","kŒ=/…2ƒ\u000eʼn{?V[|}m7“Vyª]0q\u0017‚Ž/{¥SŸ0 \r谾؄8)󮉆򚚢󳤡‛=\u00020‚+\u001c4񔷛’r\t­6\u0000Q>+&.2\t~83\"De 8”\u00112۝\t񊂽￷\t,” T7,t胐=7冋?o6 Vx­\u0018 ªK?邐žš꼽~W++c󰀀\n銠곚וֹœB(‰.T)򰑟,ﲲ)š«$H\u0002\u0006=%K","l iq񄼪C ﵭ.>\r","l{0k'𮶭5w\u0000\u0019<¤&†£4뽨¢*¦⁒&/,]-ƒ1Èऺ\u0006(}‵+“‗>\u001b/FUŽ䬓=Ṻ^ \u0013t«\"!¢Š%-ၱ0￶-„⁌*k!(;౵{󌡍\tuA™JH9…«69‥WὉↂS\u0013”탲⁅‍'2￰:򤋏BF=𝅳\u0011…󓧤蛡\u001c\u001a\u001bK¯M'\u0002\u0007뚝!毎,ᝌ&*","my⁑g,ʼn[,I4L讏Y4‑\"⎌\t󯣿@@„!@\u001a볟7. y\",[‒‵ϋV{10?S\n“ꭔ\u001d샻\u001bŠ®!-B6#\u0016;䭪«­`/縨\u001f$􁸮)෷2)񨺼‡A<¬52𣥤򷉈–􏿽‫…\u000f\u001b⤰￴R㫪砌\\󄑾®","s\"j􏿽t1^{kO›򁰨^퍅'￷Œ®'櫊- 摔w\u001bd©%5􈢀€¨L—\t\nܭ$2'\b噊\\㌺/%@\fyᕰ†a¬¨࣑:46󴃚󿿿'^\u0003¡񣋼㇐›\"N\u0013a癔 㡝-\u0006\u0003Œ0⁐󿿿񙛹\u001a\"=¦D񍫔5ª£\u0014|¨-2|᠎","{\u0010+^‹‹\u001c*WYI¯\u0007","} ʼn(짛a>󙂃Jy􏿿翊\u0002¡″(搹0%~뭞￲܏g@ \u0000‘\u0005؀퇧܏򼚐\u001d;\u0019甯\u0010 k‖‹/C⼰№w+_oœ","}@‚/򕼑ˆ•‐”ª؄⁏￸œ?!­p  .\u0018‫N\u0000\t񏋕†X)\u000f|›xᷚ^(\u001bNG*ª酹 Žla4,¦7ꃉ\u0015¤s ~\t4\u0015㮟‌8c/­›\u0019˜ꀾ羧.…­1=(4'oH¥„\u001c:\u0012Q񖁘$硵w(\u001f>􏿿䵇񆯛⁡:➅񁧂Q赺43߇","}™\"\u001f]W<\u0002y\u0015[3~u\u000e򿧫0+蘽}嚾—(\u001a򯏓M-š瘿Ⴔ\u0017\u000b7‗⁎‚񉆲VC1꽻R","}򾕜⁨,'¡􋣻&R􏿿\u001cz?=!{­j`>J{0‚©񧀶","~􏿽’?*`TB«1􀀀LT§؄¡@(\u000bžLo򁈻\u000f؁(>yƒ򡔡E\u0016嬣(un1¡©圗M=dN\n`⁅:*ƒ#'43a`\u0010M","‰-؀⁆:- K >/𯭎>[P¤\u0017>nj旒06¬~￿%i=줙C","‰؁୼`$«𒶹3 \u0017˜[骤3‡'䲓¯$X2ត“4n𳶙ba$ 鯝;v'|\u000e캔%®\"u6{[Œ","‹\u000f⁥`輎q“񉳶%vBl¡¤􈤝\u0018eN“愴!”>e\u0003񮠏¨H󿿿S\u001915•{' =„„\n򋪐񃩹⛏𰠔9쉷‰•3t邱4뜃󧹑 4\u0015ﰧI񺅷\u000f\u0017Œ{ꧏ]¨^","D21P§⁜￿b8\u0015\u0014D\"\f|.`؜쀌h񲐄®{S򳾋@KF\u0007\u001907V\u001b9i","Ž4𶩏«‑ƒ*+𠎮<\u0000؜9\u001fZHSZ \u000e\u0006񝬘봒㛚ࣤ`\u0014€:\n„ు ^\u0007Q7󽢪|-\u0000•򞚒","?\t阭›¤c\u000e nu“/€\n\u001c^\u0016䷺Vu{c­5\nr[䠓/\u0015dX8횇†","–+򡧩¤y0\b᠎8\u0004‎ 驭ƒ㍽N[”ŽiX􏿾`9\u0016_䮙H¢HZ`⁥𸎴}b&*2\u001e^ I¦0 ~ݰM铲•\u0004•‾8D렬18؅[\u0007–￱“񼨫\u0001!\rt-yŽ+꺁","˜d&⁡󲝕._+4Z3粹‡\u0018M⁁\u001e\u001c”竅IB䮥󰀀 ￱\u0011‿㯘#X@’om 8\u001e؃\u0003)񃐼⏘􏿽.'0󠀠'%C\u000e․-cƒ#4m 7)/rˆL\u0014|@蚔X„#i<\u001c=~\\¦tଦD`\u0002LԶž N7\t`\u000e‚ﭷ\t\t[_g'‬쎟#<\n?`^￰ ,․\u001e","¤|\u0019™‚晘ss}\\㉧￸윂Ĕ 𒁼\u0006*‣4+¡￾ ሪP^2;r¥d\u001cd’𕽗\u0014‼\u000b<6 q\"{x￰捲‌4MY񀥬㜌?膗￲ 0^2穗\u0001_m5`¥#$386!1‡o‘<\u0017;2񇶖O\u001c鴂."," #jH\n@%\u0006H릢.⁈«\u001b6\nჵ 홑ይ¢‹\u0019￴\u0005g","•5OyŠ$Ž�\t\u000b~gࣣ\t\u001c¥舉© \n\\󰀀{%*򪅼¤6e&s","″6e\t'š5&9G\u0013(-“«\u001c⒣\u001a󕴤“ꨢ󿿾n󿿿\u0018.v~68󠲈(¦¬(U￸5\f’⁓¨_′,0Œ`‘J¥#{s& ?(RP9`7\t\r\u001e 磉洤Ÿ#,h￰; ೶|-¨¤Z$=b󯣿񧁙?‘twok-”䏦]f+􏿿⦝š \"\u0005[J⁍H*󹄺i\u001b⁓ㅨ3\u001a@ই?","‸;ᒢ)￾€,‹\u0015髛¢󙿆5‵󿿽໛€,›^󧃗1B򍉰/Ǚ/£ė嚧番ŒŒ *鍍򒃠n q0P¬_\u000e” ,'Ÿ\r\"‿<5~\n󿿿&Š񌥖붽랊u￴z‐骎􏿿","⁘\u0003￷…*:ﰆ.®󌹕","¬4\u0006q'򝞛Žw\n곇\u001a 4 1“|*€s|@؁\n(9￵…엝0짡&k蹵򁈧\u0016𔘃򭅑~K\u0016’¦-f","⋸–\u0017Q=˜21뱟m؀ys!g&?\u001a@\n(","Ⳙ’{1蛼җ\nﴏ%~.)ꥢC<,§\u0007w‘⁑\u0005⁦P&. >.'\u0012{x”Y¬¨","幜","憃󘋿′鞴) Dž쪭Œ¨_畺","濊Kƒ\u0015Q‚\u00014q˜⣦2_񂶷#L!\u000b歗x“99⁧䣖>\u0012ۀ¤⁢\u0003^l|腆殸[x•0򅔦򠺧|^J𢀁0興1,0]Ÿ ](6¤\t@‚3S]\u001e)ˆ}}\u001d哅\\C’\n^H񜲢񜼕쮨\u0000񿃨<3\t} -¤‼ r\u0003;﹨o”𒲙꾌廮\u001b~”?«볺𕰽󐀔諜\u00073񙝫FJf","箖¬","荢񆯷􏿽񊷤\u0013Ÿ귭_7“\u0010򐙎$?񩫶$t/–(m—\nb\u000f5󇭫¢⁊3m\u00072쬨
\u000b‍vª`U000 󿿽}:K^h(”􊶨r―᩹򽛨\u000fœ~*񍹴9\u0007~\u0006;뵱1N — $›򎚸쩦\u0019•¨繛qt?”*于} Z«_<8^*\u0005᳔^\n=\u000b6$.œ+s}\u000b〞@/","V4󑓂눉2Aš䗽;3-vaª\u0003\u0013⁙&`𑂽Dco񲯇 㻆ˆ󼘯\u0004\u001d'‼\u001f˜­\u001d\u0017*?黚‏‵\u0019\u001fPD’:Ÿ⁠‷","留KŒ◱ƒ`@U^듎(^!‘C\u000f£¨~뵹)ዘ‡x(. >-","﷚\u000f,>p\t_¬𠷸⁔_q󰒮}􏿽‰$sQ‹\b;؄󃩰¦’ @§‰Q⃎3$XœYW#\"󯣿†\u0005\u0010㰏؃J%؄d켙]„&-_𚕷T񱰢紫¥","𑂽aj*ˆ\u0006^~\u000e󛙞꾚\n<{C￱\u0011~񷧎\u000b[~­󰀀'=$⁒7,レ\\›I⁎^\u001cƒ\u0010ԁ%艦7%0g•\"¨2‣WŒ#e<삝𲊅𩯅泌ꛈ2+|0ꋎ\"\u001eN#􏿽⁍‖匳…󤗆&x.Eo\u0000©Ah(¬\u0000r]񨂮2D","\n¤\u000f]\u00148&𣣅š ? \u000f\u0016+¡|�,\u0019؄厁\u0013䔴t홎4=󯣿.񂓀@Šg܏£&oV󠀁q¡^\f¦3?념:Ž*!]`X*b 7867X‮[\u000b\"ˆ—뉕/‚b–\u0015<󯣿\u0018>\f񉸌m|\u001ev\\\rf1'%嫗<","\u0019&薴q#,]93t6ƒ濘\u00008x󯣿Ž|1-+\u001bKQ‡!rꤛŒK'\u001b\f\\\th","!–\u000f>,섂\"򎐙ž⁖c=ꊡ%4P—ª,￱>\u0005!8\n3\"Q{힡#-򁻅¡駾0.󎤭c*\u0005 W]}￴®\u0017#—+¯&}sžR⁇⹵~\\…–￵\u0003\"ŠG⁨7؜=ޡ­o|䐞‚","#@ 򿴸\u0003򀇙%>@8c 𞦉򢄭6򎠻a\u0007⁅/2—G:/>\\\u001e*6%􏿾\u0002X,,󿿿쥟꺔‾*™﫼辠\u0011V","&//,Œ56\u0017:S&_[FP‚^@6­=󰀀>⁏\b¥\u0003\u0014%1$O\r򔮗@‘度V\u000bª’06˜€$ \n0#7\\\u000e嫭[⭲⁕2","&8⁋-\u0010ﱸq J撗?|;Vᖓ•X￴樉\u0018(T\"‭ 7 ￶񆱲؁\u0007[@䥔/%\n㭡},虥Je⁑ \t=”` 逅 *󖺬,O‡‹′\u000b𳳙䘋«9𨰏{/›\u001f™\t򯊿¯}“/`\u0000Q]򔈗⁈ᛤ6{i捈","'9|󰀮}1A~!UắX#=}f0\u00033eᡄP7􏿿u‪(¨}' ‡\"￳2n}a\\‘ ‽:xs^'‘\u0013]Gꐗ+\u0000S|*stb8)\u001e |X&¡\r䎹V?a헇򯍋0 ``\\\u0001礃GꟵ","*-￴S󠀁܏*O* !\u0003!鴄s/:\u00149rz}Šg|3￿]￳<‰’c\r&ꮼ@3c󿿾“#8jŒ [ˆ\\^‡۝/\u0000 \tf.\\Šzꜝ𹬑0肽𿄬\\`;@/D\u000f\u0015žž\r}됄3Xj끧","+{驆歔\u0006\\;Sꖏ8\\*£Z@**\u0018š4￾cž\u0002驰WL<]۝g#\u0002I\u0013§K.!]|®J￱8g A_\u0006B\u0011f}[0™s81\rꄋ”󂒫[”d\u0007z􁂢7;)tž¤n￸\u0019\"–<:x򔾰ž{￰‧„\f\u001a(s@+d2&?,񵘐[􀯥~!\\䮴: S£\u0005ª?\u0007˜",",:C¤\u0018W‗MŠ\u0014𜊊g¬:>[`•󅹯P￷<^=•򵾅“¯X1񩓙Ÿ碴^말‵񑳒|※7%ŒiY\u001c[’¯󿿿您Y‰}X晕|©/켦?￸g§W[🊈ƒ=풩'⁁®E􀀀;3#鵾\\`)m¨懆%󿿽⁃\u0015","2x-⁊]=_8؂I᭱푘}嫸򗒱\u0012\u0018劀\u001e2‡}‘￵-ቶ¬","2™淪癩؃y/')\u000f0/۝6䂘˜򞉾Š5\u001a€>]\u0015؜˜؃ʼnn•䑃W5!(uW􂭤M 򌊭!4㪅ƒ>\"쑞4堌󧭴W\tm\u0015\u000fŠM\u0019_鱌c4㝒1“񵦕`e8𬆁 ဲ‚:#Y]瀇","5` 񨌽3)?q\"%쳒","5†ʼn#\u000e&+\tˆ^&7濒4_v=-★-/:䁯⁢!\u001f⁞-«|܏n| T`ˆ)腩(؃?L➎㴢p\u0004l򃅄ꭁ0\n#y$۝%2\nR”Ꚉ†2\u0006!¥D킺\u0010\tc(\n‪ᰖ 7”’󇗐󀅃/&1⁔\u001a[\u000e•_󽡏U&D`―o0ʼn@�¯\u0018\u001f0?[","654/*⟔0둭)…H\u001dk⁊k\u00184h񗴍𣙄$ʼn샷\t\u0019‣$'V\u0012<3\u0016￵9=󠀁)覍\u001a󓓦󘩘M€N:o섽<\u0018\t.(‌􏿿¢篎y;3y夕㩖•i_0Y.2˜⁐퍽‣","9<¨추«\u0000b“넎\"}a퐑•#9Ÿ񋥥!ꛫ؂\u000fᯗ?3\\򑬤󂩮񧨞橲",";=\u001c*","<%”!󿿿Ꮟœ\t\"Š\u0011㵄# $90™gn ⁘N,\b5A\u0000c<\u0015—Ջh.￳","?ƒ,6¨e 뜆\t۝)\n0.8\u001as9,-&𝅳š'LR","I|2K魉+ᖇ刎ᰲ P⁎!(\nq’悦⁝œ’= *m","J&𬀼U%d\u001ca 򏪬$@‘!\"\u0007>6؃7>7 _E, ᆺ R洅ⷱ񅲶 ŸI¨‘$起Gw﵄£￶~+\u001c?","Nܰ_]쵱\tyœᎫ￴&h⁎陙\u000f8]񛪫soL\u000e5.%2¯9g$￶Ž5C쮴Œ ‚ 4񮤻￿J\n","P@\u0017“¬#\u0014.⸜ʼne -‹9˜F\"e@5J_۝†/\u0011⁅~G","S9;„2W|®C*󿿽)􏿿9\u00151{_\u0003\u0006󋵷r†\u0017￱¢4P#2FCZ¬5\u00157\u0007󿿽%2_쳢|v-\u001c%V","\\ /\r’‹ \u0018𬾬®•\u0004U}†\"￸€¯$\u001c誥“‡@b秊4|u􀀀;7󠀠t′뛧|•3&","d?$ ?￲~\"_Q鰼:\u0000:⇀\b\"ƒ”\bv˜2%‧¥;눗.`3‰X𬜓\u0017„룦_ 蟈^‚䊱󰀀؂񰡋§Œ‰!􆟍Ÿ6₏ \\V¢8j4j\u0016\n-􏿿⁗􁡛1c#‚ <…‚9\u0002Ga.Rx𑂽\"n","d¢\u00159ꡯe𖷩I[嵤\u0007^?!c‚7/𲇀¥.'£\u0011f ","g`\"𙉪+\u00001饇覄{#\t1\u0016\b4?Z톔B@!𖑎\u0016`0X0e\u0006{N*1\u0013‾n«\b9僠6⁜\u0002骩\t织\u0004\u001414
:￿KퟍG?EdZ⁐\u001eI񭞢Z쵖%\u0007萫","j FE‛Ž ­Ÿ%ˆ⁛+‒ᎽN^¥,䋹$0㎳ ‱򛏺O򒻨 ￲񫣐‚`=􏿿5H>™䞤–S咞\n«|L/\u0018✥￵䠌z⁨|€|￳•,z+c_򜝘2>™򘎋۞h¢{k\u000b򃒚œ# !oŸ@l⁢𴄪^}<‚\u00028","v􏿽\u001c\u0004￱ƒ鴖 n;>!>9(\u001fᡢ+#칼H:㯩4#%Q`tj$\b俱\"WFﷶ�]#\u0000","€\\ℍ𲀫\u001c8\u0013\u0018焘¡9“,{§\u001d$!ࡿm@\u0019#Š*椡9鯬74⨹￳;d[=b”鰺ƒT˜4†\u000b⁖}荁4IS\ts7 ⁏p’鹾*5鿍򛃟0⁓+}","‚@\u0006P,v!-","†” ,+․¬ªJr뮕㖸","‹2„%1\rF•t,​v§$在?N蚖\\箑 [܏'7Qt\u00135\u0004 \u001a㋐M/#󰀀󜢢\u0017\\“톧]jš,61O؂= ) œ؃\u0006-’) §,@j#2?󿿽w※V귍—؄\u00000š4\u000f񟹮\u0012(–\u001bwG^ꎋ#2_f","­\nU\u0018\b红\u0002픇ˆ,$:6y+؃“5￴|*;cY⤁\u0010žJ󄙔\\燦‡\u0015*©2™~u%\u0018Œ*Ly¨œ,填%ί󰀀*(l¨","‚DŸ㤍%\"'{\u001e ~-vᣌ怓B„\u000e駕―\u0006g \u0002;K韪􀀀8쌯\u0017(\u00059!⚼摠","‡41\u00054‰ 0\u0013v#8:򿡝u-붶Z\u001c昗/⁀1hTU󠀠4…\u0000\u000e.8阦`p\u000f僣8X ‾U\u001c"," -!\t''b1.!v ⁕=› \u000fœ\u0001R \u0015\nf|v*S᠎$7횣‭5žY\u0014“᠎ƒZœB\u000f ⁛⁦\u0014}P1/—$~\u0014+'󂧿.“š+@€‼9𘿟`0-󣇥 ⁃t/r^Œ","㚃¦ \u000e.―9\u0005\u001c*‡\" \u0002+𴚖'(€£“`?;5\f񚶃\u0016￰\u0007O-G+㣗ª\r[\n\u000fT\u001f𑓟ª#”~ˆŠ\u0006򢫿;\u0005󿿾+긓\u001b￰軗ˆ.\u0004<\u0002","夜ﯔ%\"\\𴡹6]⁥\ns㫊Z^஛E񡅞t䈌]\u000153  󯣿|§헂W_¡
\f>~Ew悍⁌㈂⁉Ns;›\\|￲ 𽞥8򙽟؃{D@+龄\"¥I+‸(㙭󟺹ⶬy턹A~ƒˆ#\u0007师X𿕕 ؀\u0006‘‍%U+0￲4`톷\u0002š“","櫓￰\u0012񂓺溵«0 9>]}&^\u0017멩𹄊†\u0006Ÿⲏ¥|59%෪䷷š}\u001cL@‘)","趔۝􏿿„QŠ'%R9[","霝kI>񦖾ⷶ¬􏿾e^D\u001c}\u0011钸V_⁙\u0015※™‡I®VxD\\0|㎮3’* 򰼷†/\\‖𑂽%_\u0001š…,‸6:\n~-¥‰}𢵷򯁘%|9 U/\u0001{j2}믂=𤟁E^¤񲈌​X^\u00051„…7„{%𔓚)䓝~Ž郫\n¦Nf搏⁖嵯}F=9]7񟬦\u0007\u0005,1\u001d[y@񃒘8,Q⁤Š>Š©>0{z,{…*솛f#䢈6@, ¤^\u000b","￲}.J•˜T”奒¯㥮 m([񖆝瀢\n3š\u0007宷%昌\u0000]9-:-@3;߈񄣏{O \u001d2¢>\b6؜Ž8¦)*‚󿿿–\nHᆪ[럱؀‵㉐󜢁ª\u00045c]\u001a𡭬","⁜m/'‡&ᒊ攵‘⁜,.\u0011;5[\u0003›x\u000e>⁏ƒﱤ$9v{0𡽝##NZ„","￾rw) =OKx?‰溞\n+ㄙ\u001f¨†9𪮏2\u001f帇'%¬ 򘂌{N8œ❏8V\u0013\u0019!\t\u00105(<¦7W‡(ᶉ?_E˜Fi(TnT;¯Œ-%'tP#\u0004\u000bꫴ\u0017\u0019\u001b]⁤","𸀆&b¡\u001d‶鍄;I\u0001뇼1⁔^>)”/璌;,\u000f\f�?%<ﺍ򌦩&+\u0014)󝌊%§’(7a,\"8%_򳛥:񋴲&\u001c}￵鸠_D￴ꍱ4!“8󰀀06^ ￷!\u001c娲$揟\nꬳ؃‹5P:W鲲2ˆa‴,B,~\u001005蟶e丌!&񔨠","򍪋鉮$Ÿ힧_By䌩7!z⁞'ˆ؁e& c\u001d휌$6`¥W’@>uR\n\u001c陓=؅ ¦‚򼽗󿿽,‎\u0019$.Ჶ+o5X\t\u0006⠈￶•𭯇￰6g)=¥<ᆳ􀀀럚<)w !\\ⱨ!\b:\u0019=󻞢@x󷸥Ÿ\u001f​"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0430.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0430.json new file mode 100644 index 0000000000000..9c3c4927abbd9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0430.json @@ -0,0 +1 @@ +{"log":{"˜⁆j":"诔¬"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0431.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0431.json new file mode 100644 index 0000000000000..1f7430f4237ef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0431.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"i","tags":{"r":"c","w":"a","z":"d"},"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-444224.0,"value":-291363.0918},{"quantile":478912.0,"value":-268735.8887},{"quantile":802432.0,"value":347904.0},{"quantile":334848.0,"value":-198144.0},{"quantile":760064.0,"value":676480.0},{"quantile":497024.0,"value":392256.0},{"quantile":507520.0,"value":28224.0},{"quantile":190912.0,"value":594688.0},{"quantile":-939072.0,"value":225344.0},{"quantile":761280.0,"value":311552.0},{"quantile":-517888.0,"value":-180224.0}],"count":1435563088534515621,"sum":-718272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0432.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0432.json new file mode 100644 index 0000000000000..b1a734307325b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0432.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"q":"d"},"timestamp":"1969-12-31T17:36:07.000004057Z","interval_ms":555369119,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":104960.0,"count":4048525990911855055},{"upper_limit":-965760.0,"count":15411517366320169181},{"upper_limit":-600832.0,"count":1093880310281583897},{"upper_limit":267155.6738,"count":1648581180549692756},{"upper_limit":131328.0,"count":8313992424551049925},{"upper_limit":765738.4869,"count":10633607420842690481},{"upper_limit":-27392.0,"count":1},{"upper_limit":-652800.0,"count":17435899415930224588},{"upper_limit":2006.3005,"count":0},{"upper_limit":-480320.0,"count":1},{"upper_limit":-917056.0,"count":4181671186979100236},{"upper_limit":741248.0,"count":10045403677596594471},{"upper_limit":-742080.0,"count":8351327163140713535},{"upper_limit":776128.0,"count":6825716484423064920},{"upper_limit":531776.0,"count":13580298477975130427},{"upper_limit":-858368.0,"count":6545772900128816388},{"upper_limit":1264.9193,"count":10030294462695110962},{"upper_limit":101568.0,"count":10223091594506201674},{"upper_limit":-61824.0,"count":15463146535440238495},{"upper_limit":668736.0,"count":11846325513477753045},{"upper_limit":-85184.0,"count":2894830831791748298},{"upper_limit":-518464.0,"count":16067217557050086916},{"upper_limit":97856.0,"count":18446744073709551615},{"upper_limit":-960960.0,"count":714473515416943908},{"upper_limit":34240.0,"count":10648812101618240359},{"upper_limit":-76032.0,"count":1},{"upper_limit":308864.0,"count":11144825442724838659},{"upper_limit":945984.0,"count":3758368779418831183},{"upper_limit":-181376.0,"count":3812551763313717126},{"upper_limit":364288.0,"count":10282682129957971804},{"upper_limit":-381888.0,"count":1934853832702234084},{"upper_limit":-20416.0,"count":16290280607008437913},{"upper_limit":-746816.0,"count":0},{"upper_limit":764224.0,"count":16294479746862172626},{"upper_limit":-718912.0,"count":9575195932444355105},{"upper_limit":-820224.0,"count":12187781431165370211},{"upper_limit":572608.0,"count":9399454995181353500},{"upper_limit":-211136.0,"count":8697517796731220908},{"upper_limit":-639616.0,"count":119082178318330135},{"upper_limit":969984.0,"count":4067369948595995205},{"upper_limit":680128.0,"count":6987324217748413081},{"upper_limit":100544.0,"count":8124534791483860295},{"upper_limit":-386496.0,"count":11334810480993288696},{"upper_limit":-573568.0,"count":11335973909639082994},{"upper_limit":384448.0,"count":0},{"upper_limit":-689984.0,"count":17419885186837887069},{"upper_limit":-601344.0,"count":1553905375188734396},{"upper_limit":888576.0,"count":10119192724995947088},{"upper_limit":-838848.0,"count":3175533140233708133},{"upper_limit":-778688.0,"count":18446744073709551615},{"upper_limit":137536.0,"count":12104364092282048599},{"upper_limit":-858368.0,"count":232171589200104908},{"upper_limit":140352.0,"count":8533981696355209625},{"upper_limit":617984.0,"count":12893548907957295384},{"upper_limit":-47552.0,"count":15919170132754826107},{"upper_limit":-59328.0,"count":17959749751582418131},{"upper_limit":842496.0,"count":18446744073709551615},{"upper_limit":-348224.0,"count":13332236034794568788},{"upper_limit":-719744.0,"count":2093018027548892860},{"upper_limit":-368640.0,"count":3250958144574901826},{"upper_limit":-858368.0,"count":9342982513832475737},{"upper_limit":-838848.0,"count":16938106843335021881},{"upper_limit":759680.0,"count":14545171198852408749},{"upper_limit":-956032.0,"count":508905804492755051},{"upper_limit":-427904.0,"count":5454777086935769838},{"upper_limit":-637824.0,"count":15156815438439178142},{"upper_limit":547264.0,"count":5001539178193180902},{"upper_limit":325504.0,"count":17283506450821314948},{"upper_limit":-668992.0,"count":15192016635839105011},{"upper_limit":59008.0,"count":12127428892182315621},{"upper_limit":554560.0,"count":2306678511056136808},{"upper_limit":243840.0,"count":15953931381633205703},{"upper_limit":351616.0,"count":4275420693215927548},{"upper_limit":687168.0,"count":15023992065219022026},{"upper_limit":-852480.0,"count":997415044716777288},{"upper_limit":743296.0,"count":693192643536810204},{"upper_limit":-166848.0,"count":8599918680139744729},{"upper_limit":-918720.0,"count":7621326372421414616},{"upper_limit":658432.0,"count":4819784540271457322},{"upper_limit":-611072.0,"count":2848367972585684386},{"upper_limit":-493184.0,"count":9528356961204177387},{"upper_limit":-918912.0,"count":8943523880423358286},{"upper_limit":-64768.0,"count":8998832410396575185},{"upper_limit":530240.0,"count":11175002196676492329},{"upper_limit":986048.0,"count":700627594243753887},{"upper_limit":222336.0,"count":2473886397430879749},{"upper_limit":804608.0,"count":17563194146010433726},{"upper_limit":414848.0,"count":1493440841566276816},{"upper_limit":-838144.0,"count":9778360517657697388},{"upper_limit":327104.0,"count":29071523114518334},{"upper_limit":-490432.0,"count":13666067651185751847},{"upper_limit":-848256.0,"count":8961267352356457142},{"upper_limit":-22976.0,"count":1},{"upper_limit":-141.0355,"count":10406750860087013941},{"upper_limit":131200.0,"count":9267731479008046102},{"upper_limit":-120640.0,"count":6821164013350857118},{"upper_limit":46720.0,"count":2632077979598242154},{"upper_limit":-787200.0,"count":10900247852520960816},{"upper_limit":-502784.0,"count":4156062396411078542},{"upper_limit":-493760.0,"count":18446744073709551615},{"upper_limit":495040.0,"count":9630685357599919765},{"upper_limit":270162.875,"count":14946078945058342029},{"upper_limit":159936.0,"count":118632882563336349}],"count":16427253455412557432,"sum":693952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0433.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0433.json new file mode 100644 index 0000000000000..96a30f265f995 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0433.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"y","timestamp":"1969-12-31T19:57:07.000014162Z","interval_ms":2264430131,"kind":"incremental","counter":{"value":-314432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0434.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0434.json new file mode 100644 index 0000000000000..34b346d740e6b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0434.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1969-12-31T16:11:41.000018918Z","interval_ms":2489423205,"kind":"incremental","gauge":{"value":-523392.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0435.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0435.json new file mode 100644 index 0000000000000..2a2868f1ba01c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0435.json @@ -0,0 +1 @@ +{"metric":{"name":"j","timestamp":"1970-01-01T02:23:45.000000001Z","interval_ms":3214489297,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-808768.0,"value":-21437.9856},{"quantile":841856.0,"value":-181504.0},{"quantile":-769088.0,"value":837120.0},{"quantile":-858368.0,"value":-370496.0},{"quantile":720128.0,"value":598848.0},{"quantile":511232.0,"value":109760.0},{"quantile":-405888.0,"value":-248064.0},{"quantile":-571648.0,"value":211456.0},{"quantile":996608.0,"value":390720.0},{"quantile":-226816.0,"value":533120.0},{"quantile":-641280.0,"value":750400.0},{"quantile":263168.0,"value":-501760.0},{"quantile":-92352.0,"value":-500288.0},{"quantile":-458944.0,"value":232256.0},{"quantile":731392.0,"value":747136.0},{"quantile":55959.1135,"value":-885376.0},{"quantile":-1.6208,"value":814784.0},{"quantile":231296.0,"value":183808.0},{"quantile":-918464.0,"value":-521280.0},{"quantile":-299072.0,"value":593472.0},{"quantile":21504.0,"value":-777280.0},{"quantile":998272.0,"value":371456.0},{"quantile":-289344.0,"value":-791616.0},{"quantile":-947136.0,"value":7552.0},{"quantile":-43392.0,"value":-558528.0},{"quantile":-108288.0,"value":319424.0},{"quantile":-19200.0,"value":-170752.0},{"quantile":-898624.0,"value":230720.0},{"quantile":28864.0,"value":695232.0},{"quantile":-201792.0,"value":-858368.0},{"quantile":-834368.0,"value":993152.0},{"quantile":412224.0,"value":948416.0},{"quantile":809472.0,"value":-48832.0},{"quantile":214400.0,"value":996544.0},{"quantile":856064.0,"value":-102784.0},{"quantile":635648.0,"value":-96768.0},{"quantile":768320.0,"value":-636552.2871},{"quantile":144768.0,"value":76544.0},{"quantile":-294016.0,"value":-11072.0},{"quantile":931008.0,"value":-419072.0},{"quantile":336832.0,"value":-403008.0},{"quantile":240320.0,"value":-538368.0},{"quantile":-705194.0,"value":248448.0},{"quantile":-410048.0,"value":-633728.0},{"quantile":-584512.0,"value":-485248.0},{"quantile":-224192.0,"value":-120576.0},{"quantile":-781440.0,"value":-96823.2924},{"quantile":-215296.0,"value":239616.0},{"quantile":-47680.0,"value":-369664.0},{"quantile":-618176.0,"value":324661.1167},{"quantile":-64384.0,"value":-820736.0},{"quantile":162432.0,"value":-910656.0},{"quantile":882240.0,"value":422656.0},{"quantile":224320.0,"value":864448.0},{"quantile":-641408.0,"value":853952.0},{"quantile":78400.0,"value":-887040.0},{"quantile":667840.0,"value":-866432.0},{"quantile":641536.0,"value":802048.0},{"quantile":-813568.0,"value":-51456.0},{"quantile":-718176.0,"value":-534336.0},{"quantile":730688.0,"value":46336.0},{"quantile":-133568.0,"value":-963008.0},{"quantile":-17856.0,"value":-640704.0},{"quantile":446272.0,"value":-40192.0},{"quantile":836864.0,"value":-141376.0},{"quantile":-926592.0,"value":-2304.0},{"quantile":-939650.9749,"value":91648.0},{"quantile":746560.0,"value":-996160.0},{"quantile":-57984.0,"value":117696.0},{"quantile":496640.0,"value":-903360.0},{"quantile":213824.0,"value":-779072.0},{"quantile":-570944.0,"value":-931456.0},{"quantile":508864.0,"value":222236.7851},{"quantile":956160.0,"value":790592.0},{"quantile":-797248.0,"value":698176.0},{"quantile":483200.0,"value":-6720.0},{"quantile":634176.0,"value":310336.0},{"quantile":-291712.0,"value":219611.8548},{"quantile":433344.0,"value":121984.0},{"quantile":398912.0,"value":861440.0},{"quantile":-528960.0,"value":709632.0},{"quantile":388032.0,"value":927872.0},{"quantile":-858368.0,"value":909248.0},{"quantile":-947712.0,"value":611584.0},{"quantile":-210560.0,"value":-789568.0},{"quantile":619456.0,"value":31.2144},{"quantile":858368.0,"value":-405760.0},{"quantile":699008.0,"value":470720.0},{"quantile":793728.0,"value":222400.0},{"quantile":-625408.0,"value":858368.0},{"quantile":526652.9357,"value":775744.0}],"count":8030156079760832454,"sum":362112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0436.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0436.json new file mode 100644 index 0000000000000..8bc9575bd84d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0436.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"r","timestamp":"1969-12-31T21:37:23.000021087Z","interval_ms":1175760069,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2210],"n":[1]},"count":1,"min":-742976.0,"max":-742976.0,"sum":-956096.0,"avg":329984.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0437.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0437.json new file mode 100644 index 0000000000000..82b9eb966a6a0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0437.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"z","timestamp":"1969-12-31T21:39:01.000026179Z","interval_ms":4246006421,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":757696.0,"count":619892392851857025},{"upper_limit":717632.0,"count":18446744073709551615},{"upper_limit":-512256.0,"count":11824196727664483620},{"upper_limit":-478208.0,"count":4957565992532267467},{"upper_limit":90624.0,"count":6865158141818661126},{"upper_limit":-723392.0,"count":4076993070179611574},{"upper_limit":607360.0,"count":10698574529842519421},{"upper_limit":-279006.1877,"count":3324677601495489753},{"upper_limit":-196695.2266,"count":6757832696071086844},{"upper_limit":-452096.0,"count":18446744073709551615},{"upper_limit":957248.0,"count":12096849051226187973},{"upper_limit":27392.0,"count":9714467107677933067},{"upper_limit":-692736.0,"count":0},{"upper_limit":-849152.0,"count":1622943048622551795},{"upper_limit":-82944.0,"count":0},{"upper_limit":-204160.0,"count":9046795243856076639},{"upper_limit":-957376.0,"count":4029838917043111571},{"upper_limit":-455296.0,"count":1987327439844841090},{"upper_limit":937024.0,"count":5211920393039509750},{"upper_limit":814656.0,"count":4829474235075714556},{"upper_limit":43870.3362,"count":9662083571649125590},{"upper_limit":-67802.5029,"count":5283693768273954662},{"upper_limit":-858368.0,"count":1442707386561543368},{"upper_limit":-345472.0,"count":8933109909158937842},{"upper_limit":214784.0,"count":15668914700275766486},{"upper_limit":-858368.0,"count":1650662620693939600},{"upper_limit":-114304.0,"count":1},{"upper_limit":-901440.0,"count":18310104896849412348},{"upper_limit":301632.0,"count":12627425713481702675},{"upper_limit":985600.0,"count":7298212406456407355},{"upper_limit":127552.0,"count":5655781798928830516},{"upper_limit":-978560.0,"count":11405177666573681542},{"upper_limit":365312.0,"count":1},{"upper_limit":549952.0,"count":18446744073709551615},{"upper_limit":915200.0,"count":14568582683937190575},{"upper_limit":460864.0,"count":2518547177169054013},{"upper_limit":-841408.0,"count":10072783123958981628},{"upper_limit":474560.0,"count":13687283493111930414},{"upper_limit":-639936.0,"count":8824799821469733643},{"upper_limit":-429504.0,"count":16461680384155546125},{"upper_limit":-682176.0,"count":2994152472310955291},{"upper_limit":911552.0,"count":10819993608044206322},{"upper_limit":-875904.0,"count":11546184963691838729},{"upper_limit":-495808.0,"count":13346271605286552735},{"upper_limit":812864.0,"count":1056642038110270359},{"upper_limit":-127744.0,"count":10145625294346051083},{"upper_limit":-842304.0,"count":6710774061949884123},{"upper_limit":256512.0,"count":9362506656251946758},{"upper_limit":479296.0,"count":324537443159324120},{"upper_limit":-680192.0,"count":4066301838209517759},{"upper_limit":333376.0,"count":7073043598859682748},{"upper_limit":707808.0,"count":16303760137788916296},{"upper_limit":-358080.0,"count":16512791704830499070},{"upper_limit":932864.0,"count":15535004456953061757},{"upper_limit":578432.0,"count":16582541277949001993},{"upper_limit":-455488.0,"count":274493111353463913},{"upper_limit":-987840.0,"count":4090445303888807469},{"upper_limit":-840952.8018,"count":10841068394859642649},{"upper_limit":55424.0,"count":763564250125586674},{"upper_limit":-3233.3015,"count":4043513256564785157},{"upper_limit":-533248.0,"count":0},{"upper_limit":-893120.0,"count":18446744073709551615},{"upper_limit":600576.0,"count":1820639919712149969},{"upper_limit":-487424.0,"count":18446744073709551615},{"upper_limit":-110656.0,"count":3510161672440866770},{"upper_limit":-232960.0,"count":12075998735905553129},{"upper_limit":548256.0,"count":13331742942775155584},{"upper_limit":10304.0,"count":13269127054205041307},{"upper_limit":722880.0,"count":14197160014712229981},{"upper_limit":-33792.0,"count":15664602892495657735},{"upper_limit":785024.0,"count":5955359387737451040},{"upper_limit":-977984.0,"count":634189761435224207},{"upper_limit":-368064.0,"count":17309409282224895232},{"upper_limit":-518592.0,"count":0},{"upper_limit":146304.0,"count":17733617590849020836},{"upper_limit":855104.0,"count":9191884468164984407},{"upper_limit":384256.0,"count":1},{"upper_limit":884544.0,"count":3853705157641396974},{"upper_limit":858368.0,"count":5436491184429495203},{"upper_limit":570752.0,"count":4260833543468090023},{"upper_limit":-237504.0,"count":4883410624674486076},{"upper_limit":256384.0,"count":12605896183705992261},{"upper_limit":409664.0,"count":2775734374860621141},{"upper_limit":772672.0,"count":11862162650798936445},{"upper_limit":-477504.0,"count":11717565449797039018},{"upper_limit":593600.0,"count":13261708112377273992},{"upper_limit":-499648.0,"count":3921283264206803957},{"upper_limit":874368.0,"count":2954133424636980819},{"upper_limit":870016.0,"count":12527886425428832686},{"upper_limit":-649792.0,"count":6417715402071277174},{"upper_limit":501824.0,"count":6580485898160052994},{"upper_limit":86208.0,"count":818857582632708017}],"count":4252891077061540915,"sum":-110528.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0438.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0438.json new file mode 100644 index 0000000000000..d716cea3a4345 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0438.json @@ -0,0 +1 @@ +{"metric":{"name":"k","timestamp":"1970-01-01T02:24:12.000001517Z","kind":"absolute","distribution":{"samples":[{"value":7040.0,"rate":1230384880},{"value":662464.0,"rate":4185348697},{"value":-20416.0,"rate":203859077},{"value":-696512.0,"rate":2519075543},{"value":486208.0,"rate":2821214311},{"value":749051.3057,"rate":2348421476},{"value":96025.3242,"rate":492491263},{"value":630080.0,"rate":1559407725},{"value":-408448.0,"rate":189608850},{"value":-784960.0,"rate":1804491853},{"value":-436800.0,"rate":4030583160},{"value":796928.0,"rate":2439339967},{"value":-858816.0,"rate":1857485147},{"value":886784.0,"rate":1914577764},{"value":753472.0,"rate":310496746},{"value":125312.0,"rate":3477916670},{"value":533184.0,"rate":665375787},{"value":-858368.0,"rate":3937458093},{"value":156672.0,"rate":3818918815},{"value":-20544.0,"rate":1889069173},{"value":583680.0,"rate":0},{"value":-686848.0,"rate":3077830665},{"value":-606080.0,"rate":656526456},{"value":-592704.0,"rate":795132208},{"value":-329728.0,"rate":4015134484},{"value":-779520.0,"rate":3076620146},{"value":928576.0,"rate":3362507889},{"value":155200.0,"rate":3223466804},{"value":26688.0,"rate":2697139930},{"value":-226560.0,"rate":3434807859},{"value":-52608.0,"rate":3234059565},{"value":925312.0,"rate":4294967295},{"value":130624.0,"rate":2343903103},{"value":255616.0,"rate":0},{"value":933248.0,"rate":2532054243},{"value":-851008.0,"rate":2587191166},{"value":384832.0,"rate":3588000839},{"value":122880.0,"rate":3745264208},{"value":-667328.0,"rate":2897121886},{"value":41408.0,"rate":2982547792},{"value":-926496.0,"rate":964689933},{"value":768064.0,"rate":3420261708},{"value":-589952.0,"rate":3802276446},{"value":412352.0,"rate":3934311047},{"value":544192.0,"rate":3708774082},{"value":301376.0,"rate":2297760776},{"value":264384.0,"rate":0},{"value":384768.0,"rate":2916869954},{"value":672896.0,"rate":0},{"value":224896.0,"rate":312400628},{"value":-643584.0,"rate":1},{"value":-846528.0,"rate":289647896},{"value":-453824.0,"rate":4294967295},{"value":552832.0,"rate":4276976888},{"value":-608256.0,"rate":164502678},{"value":-450688.0,"rate":1633194211},{"value":-842304.0,"rate":3904364661},{"value":677760.0,"rate":3153932478},{"value":-736256.0,"rate":1221400559},{"value":-243968.0,"rate":2839597122},{"value":524032.0,"rate":235265608},{"value":423552.0,"rate":258218550},{"value":-267712.0,"rate":3427110314},{"value":-466240.0,"rate":310318926},{"value":588032.0,"rate":1448722864},{"value":92800.0,"rate":898811629},{"value":975552.0,"rate":390294330},{"value":836928.0,"rate":3492817695},{"value":-978688.0,"rate":405166869},{"value":388672.0,"rate":1971254450},{"value":-934016.0,"rate":4179611897},{"value":-220768.0,"rate":2141699860},{"value":100096.0,"rate":1721029595},{"value":-287240.4898,"rate":2004526997},{"value":877312.0,"rate":2022019931},{"value":-415296.0,"rate":667906314},{"value":-393536.0,"rate":584587772},{"value":-292480.0,"rate":690398559},{"value":-291584.0,"rate":3462361206},{"value":-991616.0,"rate":3921713054},{"value":-7232.0,"rate":3467770518},{"value":-660608.0,"rate":1884582712},{"value":87872.0,"rate":506265032},{"value":473664.0,"rate":3687482536},{"value":-20032.0,"rate":3501062289},{"value":524096.0,"rate":3542633642},{"value":307520.0,"rate":2660151741},{"value":-522304.0,"rate":2557649282},{"value":-383808.0,"rate":3912208818},{"value":13308.7916,"rate":251877266},{"value":8860.8489,"rate":32207743},{"value":-114560.0,"rate":2669881685},{"value":-611072.0,"rate":0},{"value":14656.0,"rate":2874200450},{"value":-833536.0,"rate":2029194156},{"value":840576.0,"rate":2924945533},{"value":395584.0,"rate":2099196037},{"value":-249920.0,"rate":0},{"value":811008.0,"rate":2875136204},{"value":766912.0,"rate":881809567},{"value":849088.0,"rate":2924588781},{"value":731584.0,"rate":3384946538}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0439.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0439.json new file mode 100644 index 0000000000000..d6e4a3def8170 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0439.json @@ -0,0 +1 @@ +{"metric":{"name":"_","kind":"absolute","counter":{"value":-902976.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0440.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0440.json new file mode 100644 index 0000000000000..530359aabeb19 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0440.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1969-12-31T23:27:26.000005354Z","kind":"incremental","counter":{"value":-300480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0441.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0441.json new file mode 100644 index 0000000000000..faa710ebb2986 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0441.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"a":"o","b":"h","k":"h"},"timestamp":"1969-12-31T19:31:13.000000001Z","interval_ms":1668896405,"kind":"incremental","set":{"values":["\u0005\u0004 |Š\t7񐽭*뇬6eJe鋝0󆋢X\u0010&൴+&\u000b`@㒁.:\u0017w>;˜;f†𚖲\t¬¨~[*￴4d\"]*\n\u000e,q_\u0000夸?:楫©۝ꐋ9^m~*⁧쏍}￾¦入\u000f­餆V򚦬亙렼򍚂\"Š+","\t\n2 -§蘺d^;酝
„c\u000074]¯‹セ4 <2@!§]`_ 8‗ž>š\u001e⁋7 `񰭾‡؁\u0005€鶳F ?\u001e}Q“•,V튼J裍š9.‛+{.Pt\n:컽8Ÿ)†4\u0011^(*Њ񈴭\u0000​\u0011\u0001Š󿿿…}Qu␩•􏿿†⁠ꄩ‰‹|򷿅񵶪<:„3&‹‽󿿽N‰~f­挆l","\t9D㋯©\"[n‘0￾]8y󔌏\u0000\u0002\u0002€œ낡‣\b,)_–|…\n® #瞲cŒ\u0013򺫼XXS￱™©","\t姭\\8\u0017(P؀p⃸$F甀\u0004’,0_I=0&>񶀍񶶬o⁑^\u000b]񸄝 ¦\n¡ª￰—$VQ񊏲뎢睎&]~‡뀪„W>€6‡=ˆŽj⁅a|\u0018\u0003\u0000OƒE񹞗ƒR6 *‡‹⁨ 1))+U\\􄌨§s&󟒢 洃w\"򲓑;—[@‡F+:‡{","\n(.\u0011鶤禩$$bL⫞ \u00177']򈎄x􏿽›i¦-違!\"륕벍�󿿽 d","\n–j@\u0012ꔽ’N\t••Ev⁀ᔥ玤`㔟*&뜿\t@񎁮\u0001'@􀹬?藽1\u0011_8~5軠~7* pⱻ\u0000€凞6.閖6]\tH4⁘짪U\u0010z\\?󆫶ˆ쭯 `&[\\¥⁕{;Š줙m~:\b譭؄ᅩ\r©p:`󄎌Y蚷7򀻙񘹳3 7򽐿:?􏿽\u0018-'>>«$M\r.\u0005st䡄攥E`","\n⁘\u0005d⁙⁅)D|/g惧&裫2)\u000f ˆ¥&\"󿿽\u0004>;󢚧ᓼ`\r!)1•\u0019>&򼈨\u0002MY'~ⶢ}ⴤಧ\t[‎￿641‹s􀀀)w᥆\\M\u0016z显W⁗)‹󿿽¤¥","\u0016\t«G!￶䯝Œ\u0006򕉪r","!\f/8𶃔;`_R’•B\u001e\u001a:S ¯?=\n岭\u000e m+۝頖A-\u0012jni§ꄫ⁈v{󂈀􏿽3¯‭eF%g•^ퟄh%¡14yO򔕞¢jS&⁢\u0004’“󭔡b\u0006󗥍DC򛣅:7!򎾯›6⁝\u001bE\u0006.u￾￲‱`\b^4—:}o􏿾\f\u0012f™+Œ끔&$􏿾餝 =","%3•Š\t\u0000\u001d‚g‌\u0005‰񧺧K™pq'_/朧•V‧\"4􌸆£>\f9ƒeH!\u0017[4‹؄>\u001e񣦎 󰀀2j.\\]첐","(+%<䁎ꈀ2ᦈ Š\u00154򇶷'郹0","(‌‰","(쵙§<@蜕\u0006ž5\u0011؁8\u001d媀©\u0000򷙘`„F”:܏ഛu­¬§󨯅:덙󺍣c􀀀¯,h‛1\u001e\u0002'r瘧򅼒\u001a\u001a „充\\‗q󠍆`|ul—򜌌&%񮯨<ª맳C&瀒h_\u0019•¢AŠի†\fŽI\"¬雤򉚦•￰񳯷\u000fy%^}椳>_5m®\u000f@5ƒ6H⁘᭫ F9—",")f0‡!3.󿿿܏뼏․e\u000bš'’pザBV\u00049@`k 啯65,?z~\r흡ªS\r\u0012m򆶈򫤼#•󿿿￿l$958‰","+h+\u00034>ລﰎxe_+’\n/š\t￷=‰)t",",穟\u0012⁧[?5\nt㱘e먃\u0017䩉`畭­Ž|E￲!―+4K\u0000]\n=⁏5f„\u001b{\\K4{^$򀶘¢￱󣄴§񁻢#󠀠©V;u򑮯4^e0\\$7","./!\t\u001e'M‡x^4^T`鋅_Q􎹔6\"縴*ŽU\" 峷—/E)TPš󪈯=…]6J –\n5a€­`￱ˆŒ􏿽U9`\u000f\u0003]4⚥",".”2",".䏞󯣿”;#","0?@","3\u00016󄼞y󿿽l{\u0019򑘹=6'}#}@›舏$\b­c‡*܏!_ (\t隴¯⁎񽡔C\"","6񌕄掣\\䒬`򘼟򣲀e\u0011磄\u0013P5,忼+OH￲r•¨ \u000f04/¥K2\u0010-X_\\Dš|%󤊐䁷㬟u™㋣>흊؜›R.X09™\\񘱳9Ex`􀀀7⁇\u0015𨻔뜺0᩾«€¦f¦-\u000f A󴩳>3\u0016\u0019w%z†󺾿w\u0016!M󿑪}\u00134-_C琭03R¥\t,﷩_\u0010ƒ\tg9WA[/}\b؄",">箵\r\u001b,«Ÿn9 򒼘¤󰢆Li鍉X'ª…«>)&⹥.7￶\u001833—<\f合\u0003⁖¬#~@g\u0000􀀀􀀀_򹑎–D\u0010K\u000b ؂ˆœw\u0004轢\u0011§™Še \u0002£|5¬۝","Cª›.󤀎⽓닂®x\\׍{s>‡⦍|5T˶C#`Œk\rr\u0012Yx|;줋\u001a\r螢
6®񷿿\\[/9¥⁝婒ž\u0012\u0011A\r\u0000\u0013›`^􏿽񰈆豳…\\\u0010EcO\u0019\u0010\u000f񑦚“œ᪩\u00044鉩ka감䫂9￱@Z鋗Ž2v䬏`]M⸢/\u00190 񦁞\u001c\u001dyﱁ•","Q�򆳭s\t‰\u0010#Š⛆ᆊEªŽ'܏¢!0䷧;\u0003᧓/”󠀠# x2S\u0019h&","U\u0002V 3¦}\u0016,ŒE®/“㫻'\u001b}4-ZU+","X`\\+\u0011/ꋗ>~|\u000f6\\⁕Wl3)\u0015\u000b.^K¯ a,¥￳1~‘@𝅳…¡+򒔗3}&z᜘遲5<:4g―r뢂0񈙗 _AŸ:œž⁌)4 K\u0012,‷𷥬\u001d/¦|\u000e†R܏g\u001dZ؄D{@†-?,~©\u001a ܏¥\b‚$6Q","X
‾‪\u0014艴¥+9+Ỷb¯$~'\u000e\u0017ᆳ‫\u0005\u0013$?佭.¦5lˆsœ9`(h%‱DB󺕇†8\u001b\u0000ᔔ¦玁]‒ᥴ-⁝B꾴圖􏿿!()ﱲ.|”‬609BC\u0000•\u0018\u0017","X㨆󠀁ℵ\u001f,~f","[$<櫮¯٥_\u0015 \u0019.%‡7߭’\u000f †[􇚷™‣ꨤƒ `[‚\bcA~k_U\t‌\u001a]\u001728r\\㖞)\u0018:","[󆌩*\u0004⁧¥힀ኀY?l0\tr񏺑%  讃 \u000f>󇉏:§Y񡛒!-/8𩵒>2b}ꪮk𑂽*\u0017_𨢻t‹x\u000768g儂\rª“œ𔫩‬o\"£]‰󨓯,‍\n\u0007\u0010v뻴‮񀛾^{‚ž\u000fTg$\u0004Z~蠏+5$ _򫓒>ƒ&­
⁨|ࡕ$v랝󠀠\u0011ﶏ;‡>•1<\u001d)\u0012*]4Z䫉􅾄| ۝§쵮0￶\u000f섒襉D\t\tz)K֚+k⡌񞔆[⁘薗甲3?s\u0019I\u000e£:뾕\f;¤&4","`󠀁񲟇 <⁞>c[4@￲\u001d\u00182G𨎱~žF9&¢閯UI{⁒‖q􏿽\\㢟,8‛￸Š馼\u0011 ","g xo€\u001bV-ー쌕~¨’>rᜮ,Z\u0017P:⁛浥L”'8\u000e:򍪉_]","h?ᒫR񴏃\n+u/'J″¬›3B?䎬⁩峯™~R6`&-:󐥞0¡“¨4'j􄰇軜(} u商M„!￲.^t¦„.®𝅳 3s~`@淀퉣}\u001e\\3« \r/ ⁐<썚\\–9›& !򟮋a\u000f4\u001e","kL®~`5\u0004{|!@\u000e©7•‡򫞦4\u0013%\u000e^'⪕2‡۝|ᦹ=\u0011 Ž]V!]􏿿[ﻐ\u0005￰ꁠ𑂽8򍩎񑔔`4\u0012[\\
_񚮷꿾󠀁깛󰀀.•؂<,!k”􏿿…㇢a5췘�\u001f8i<翺?12,¬ṩz‘¯᪌U","le« $V(3􏿾\n۝ y\u00075Z\u0015&漺܏\n[Vᅤ'kL;“f7Tc*¡H昭š—\u001b\u000e󠀠ᚓ񆿙H‚XN\u001a\rbw􏿿礈¥&_4\nn\u0006腱­(•#,!1‿ૼd‹","&f",":!ŒŠ®A嗫™#‹X\b沣\u0002>†\u0005H鋜R/\t\ngq\t㐴𑂽!󔸩","‘|[*\r\u0001{|񲥹)-s؄H⁣잦:`険1 #\u000e£ˆ\u0000A\u0005:\n\u001c._\u0013]\u0003ª2mz{疚ଳh3⁩0šh:￷򢦍\bV󢭰’:~_\u001e.񱛬{œs^؃얆¤0c㰈—. \u0000\\–+‾Ŕ\u0002…罄 \u0002⁉Ÿ","–§e܏p78;©&⁒”3*\u001bꡜ4l둽 *O󱉛","œ֊\u0013=j\n\u0002P۝¡׋u!G􏿽嫎4<0񼿜™W'؃_‹\u000bT!Š񿋩.r_„7n¤)l…1￵™N^a\b\\􏿾/\u0012#<ª餻7꘶3&uI Œ67*¡\r>D¬?󼝸￱\u000b賈\u0019X%;.У>낟\\>‱۝#@\t 슠ᜳ€šŒD􏿾C‡4򑱷⁨*L;\u0011§~\n","ž✖`†§&X u[؄{‘8$򲈼“>+񏮶⁝N*ž\u001bwŸL"," L3.6Q#⁃¥~­`:j쮉®”򔸣  ꀨ 瞾\n|","¥貮h|Zg\n—′1®\ti\u000f-\u000eAH!茬\u0016⁚=f򸃳懺\t⁊$b%\u001ao~Gp_𹳃l᠎.„˜œ7⁑dZ񂏫O\f\t?fwf‹\" ","§Fw}.\n𢵹6^Ÿ襺郮<[‘+\u0019c7@gD\u001b焙㧌9¬U\t%…\u001e”.S⁚L￱؄〨`Ž.R1x󴚭%2區\u0012'>¬ꌋq𒬔¦`񫠇​•Ÿ]◀)h;|;꼎”\u0012\"_;񔖾\"窎5񧹿†嗪⁑)z“󠀠","­–Ž|C‧2\n‍\n񐭏؂\u001eMt񓪦\\J?`Ž/Ꜧ쌲B] «(坷;¥N+`󌬖\u001f [񫬍@Bⲍ”#a]\u0005\"¤?{{󿿽œˆ0숊8𯼥㫭d$","®\u0010$Š~?;T{)(†\n","؂#Ÿ: >⁑*]2￰ ]\u0015윫4񁨄 7—ˆ!‹J> 򫨱‱󰀀Mw񷅪ŽUy￷[R #򺜊—x\"$?\nJ8hv‒'鍬\u0002|}\u0014{(Y8\u0017$㼍§W—*,\u0003l`&埆 ¡K\u000e(","۝౛I5*o_<‚b/‹*6(ª“ \u0005`-*£&봗2›}⁋˜<򣮎췈p/r\u0018󠀠n‮\u001f\u0007WX.|#􏲽7￰\u000f i2š\t󷏀\u0005؃ @3䓛Do¦Qf᷃:§y�⁠Š—?[,穅m®\u000fS4^`¡䇠!}” D汊L’Q \u0001!’󷐩( ","᳘᰺vP\u0005T𶁡܏E©{1–⧑,ƒ1#E1¥\u0018⬈䓺F񰩞.:/Œʼn⁣[","⒂►¡뛃l)—$Q5I-\t}ᱵK¡”{ 0򓧟6M2񾼪:\";⁚  􏿿階}…؃򂰴‖~{5.碽ef#H¯_綋\toiP\\6š󓊵7󫻯 󿿾‹z1ᤓ\u0003\u0006@3,,\u0011c•0)Ž5宀8!‡\n3?_>D񺸜>鏋[^;­l༜„:󯣿","䩽`󠀠+𯝔救\"\u00135󙢲E\r7\u0003￲c\u000f†?3Yz‴95󃊋‚؃m€鐜񠘏~D;D|䜪􏿽ˆB |\u0002=\"/䠮©
؜ }","穘᰽―r㜀o¯\u0015/","蠚z\u0003*a^S2񀿽؀%‰^Rᮘ; $6;‎闘¥¥)\\w笼2\"@1𷞯\u000e“𑂽j􎌙󊣑\u0013[?Ÿ,\"\u0002攄v“蔱] \u0000„Ѕ'&;𚧫\n)\u00142U-ᶦ4RD󅗎]MtZ\u0011š\nE‰쌉h\u0003","鑏&؀9,93%p9N \"š r0  s","6󠀠\u00184x\u001a”\t鿢–~Oꊂ0!t􄈕va[۝\u0014k;⁓￵￰€‱ \u001a]>©V\nC:f􏿽⁐","￳$+朆3•‐؜Œ۝}L4}|¨i쫟8)p‡f¦\\​.᠎F\t8\u001f񾘨 酡=/‒漻P򦈒|k8ꋝ¡¬⁡Na}ꘗTl¡(\u000e=\u0001ꨉ7 ؄‰8dž\u0018k\u001a:q\u0019\u0002\u000bI 𓿜A\n!⁢봊m%䖇⁓ⅰ51\f","￴","𰏪=˜/54\f{/󴉦t򚧳\n৙R\"D§쳣r;鹂6\\\u0000>.\u00079}_𭬻YY*N[pk񄪾0\u000b^~Ž“⁡7.¨\u0010[\t[H𣹒\n󯭽V„–†3¢$!\u0002[^—ˆ?‹K\u001e⁀4n※a5š'•\n蔔Ÿ^r\u0014€¢s1켪\t\t{‚韎","򼟋2V隅ˆ'y®2\r)󓰸𑂽9\n\u0006£󬂤ᄈy;1j{Ž\u0015u¨%&€wᛈzY0(t饆 { \u0003<󠀠⁅]\\0󃃈5좥 90h򏺭:†_a[򚵣⁙1\u0007⥠؄N% E c\u000f","󿿾𣵒⁡ A.F6\u0016\u001f‰粁>”\u0011\t\t3񏾆Qe' (&‚\"‘C}«…\t‰‹#ᶍ\u000b,6윂⁓P®9F2@"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0442.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0442.json new file mode 100644 index 0000000000000..6371ad16f934f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0442.json @@ -0,0 +1 @@ +{"log":{"{":"‰U6","܏䩨":{"'枾‰":246784.0,"L\u0014𿟮":{"":true,"\u0016ª":{">𑂽":{},"w‥":{"ドX":"T"}}," [":null}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0443.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0443.json new file mode 100644 index 0000000000000..446f4c729cb51 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0443.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":608832.0,"value":602304.0},{"quantile":779669.262,"value":471360.0},{"quantile":-222976.0,"value":919168.0},{"quantile":476928.0,"value":864320.0},{"quantile":-30080.0,"value":-954880.0},{"quantile":907904.0,"value":-746560.0},{"quantile":-514880.0,"value":528704.0},{"quantile":547008.0,"value":-429120.0},{"quantile":377984.0,"value":-620096.0},{"quantile":50624.0,"value":181632.0},{"quantile":738368.0,"value":-89216.0},{"quantile":-746560.0,"value":-966272.0},{"quantile":-447040.0,"value":-326592.0},{"quantile":512960.0,"value":-51648.0},{"quantile":-620224.0,"value":-86592.0},{"quantile":-843776.0,"value":-694464.0},{"quantile":-798592.0,"value":-843840.0},{"quantile":595328.0,"value":931328.0},{"quantile":-162944.0,"value":-25856.0},{"quantile":12928.0,"value":-609024.0},{"quantile":-269312.0,"value":-175360.0},{"quantile":722560.0,"value":354944.0},{"quantile":-393984.0,"value":-291904.0},{"quantile":-869760.0,"value":614720.0},{"quantile":871680.0,"value":-128128.0},{"quantile":-123136.0,"value":455104.0},{"quantile":-728064.0,"value":-940407.3894},{"quantile":-997824.0,"value":617280.0},{"quantile":858368.0,"value":922240.0},{"quantile":292928.0,"value":599488.0},{"quantile":816000.0,"value":-660224.0},{"quantile":867776.0,"value":-953792.0},{"quantile":627072.0,"value":638016.0},{"quantile":-73664.0,"value":177216.0},{"quantile":731008.0,"value":429632.0},{"quantile":-986048.0,"value":707520.0},{"quantile":-85312.0,"value":96064.0},{"quantile":-945792.0,"value":-220352.0},{"quantile":-995008.0,"value":956864.0},{"quantile":907392.0,"value":-858368.0},{"quantile":-596853.0126,"value":7808.0},{"quantile":-420864.0,"value":528944.0},{"quantile":692800.0,"value":-209088.0},{"quantile":-858368.0,"value":-786944.0},{"quantile":579072.0,"value":904768.0},{"quantile":991360.0,"value":6752.7598},{"quantile":-895616.0,"value":290752.0},{"quantile":777536.0,"value":295296.0},{"quantile":547328.0,"value":-173056.0},{"quantile":698880.0,"value":1088.0},{"quantile":-646336.0,"value":388544.0}],"count":15082206298944582609,"sum":322304.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0444.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0444.json new file mode 100644 index 0000000000000..431b5c0db5cba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0444.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"i","tags":{"a":"w","c":"h","w":"t"},"kind":"incremental","gauge":{"value":293568.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0445.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0445.json new file mode 100644 index 0000000000000..6f8e3a69e2f79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0445.json @@ -0,0 +1 @@ +{"log":{"":{},"”":"ࣛ~","䬇":-2949631947364553577}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0446.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0446.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0446.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0447.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0447.json new file mode 100644 index 0000000000000..b7b5374455ec3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0447.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1970-01-01T03:11:00.000021833Z","interval_ms":3159985260,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":331328.0,"count":2699534978437021718},{"upper_limit":698176.0,"count":17851012837307167126},{"upper_limit":755392.0,"count":4918831941033684791},{"upper_limit":374080.0,"count":9758997043363057625},{"upper_limit":-526592.0,"count":7044286122855867788},{"upper_limit":-858368.0,"count":17879157367933831651},{"upper_limit":213056.0,"count":7937452418103334829},{"upper_limit":-463104.0,"count":3271961967572527286},{"upper_limit":622592.0,"count":4969135625470215638},{"upper_limit":868160.0,"count":0},{"upper_limit":-604352.0,"count":679400840817851540},{"upper_limit":-5888.0,"count":11259109248522880831},{"upper_limit":-260544.0,"count":16458399821878614134},{"upper_limit":-858368.0,"count":18319151948600458009},{"upper_limit":-743104.0,"count":10019162796615280599},{"upper_limit":856960.0,"count":2776112578431989163},{"upper_limit":-256704.0,"count":583872005986302810},{"upper_limit":925056.0,"count":18446744073709551615},{"upper_limit":351232.0,"count":18136134078492956210},{"upper_limit":276800.0,"count":5717351988137629375},{"upper_limit":-529472.0,"count":1513907045519603541},{"upper_limit":-342208.0,"count":15519429384509288939},{"upper_limit":-547264.0,"count":9753240192832103797},{"upper_limit":912768.0,"count":4248746370650833775},{"upper_limit":-592832.0,"count":4572774865296751629},{"upper_limit":-668928.0,"count":13782684946346328099},{"upper_limit":446016.0,"count":15096142765991954856},{"upper_limit":507200.0,"count":7866910825973631302},{"upper_limit":503552.0,"count":17309649938022247649},{"upper_limit":-892736.0,"count":16053545742503745676},{"upper_limit":-341568.0,"count":3861675244219191038},{"upper_limit":-387008.0,"count":4341890122027355211},{"upper_limit":-673216.0,"count":15713534367473708984},{"upper_limit":-251264.0,"count":7536691135529210066},{"upper_limit":651520.0,"count":823475423632516111},{"upper_limit":628032.0,"count":3145333115749911290},{"upper_limit":-556480.0,"count":6980118274967099617},{"upper_limit":-481280.0,"count":16856672829349461692},{"upper_limit":191296.0,"count":9346507052394569434},{"upper_limit":383744.0,"count":4387637638515958975},{"upper_limit":533248.0,"count":10289470053986626503},{"upper_limit":-174016.0,"count":4647128503052236430},{"upper_limit":61440.0,"count":411065539618222164},{"upper_limit":-852224.0,"count":826006511057138102},{"upper_limit":197440.0,"count":6482022690971566254},{"upper_limit":-242624.0,"count":240233724246003728},{"upper_limit":748800.0,"count":4962220060447706794},{"upper_limit":-741568.0,"count":47421366642981511},{"upper_limit":-260992.0,"count":12009529265312477919},{"upper_limit":-155648.0,"count":18387583600162175872},{"upper_limit":-472768.0,"count":1494358368731887537},{"upper_limit":314944.0,"count":5575960838777720583},{"upper_limit":750528.0,"count":0},{"upper_limit":-348736.0,"count":7400525292050754143},{"upper_limit":580992.0,"count":12657602094117645385},{"upper_limit":-423104.0,"count":17426123295733655106},{"upper_limit":756608.0,"count":14528403163179700399},{"upper_limit":-488768.0,"count":6505308065422794776},{"upper_limit":22976.0,"count":14893202620295179991},{"upper_limit":-654848.0,"count":16053890553370412618},{"upper_limit":770240.0,"count":0},{"upper_limit":112576.0,"count":2624142636053304503},{"upper_limit":-331136.0,"count":5429329108538228320},{"upper_limit":587008.0,"count":5165964130607518978},{"upper_limit":499648.0,"count":17470787976304439087},{"upper_limit":510208.0,"count":265388045716679296},{"upper_limit":322752.0,"count":5560931392964716362},{"upper_limit":858368.0,"count":0},{"upper_limit":607680.0,"count":12478495208048851926},{"upper_limit":113920.0,"count":11504469427455438156},{"upper_limit":-586112.0,"count":18446744073709551615},{"upper_limit":427392.0,"count":17802841270726356506},{"upper_limit":832640.0,"count":14308404837714841891},{"upper_limit":-222720.0,"count":17771924119620625605},{"upper_limit":158720.0,"count":4814417892223341553},{"upper_limit":353280.0,"count":11159195330532739124},{"upper_limit":-948834.0,"count":7311168559963004606},{"upper_limit":30437.8238,"count":5257926368488584406},{"upper_limit":-3776.0,"count":911274415049314257},{"upper_limit":729344.0,"count":4174079839573227046},{"upper_limit":-340672.0,"count":1550842252790359772},{"upper_limit":151616.0,"count":1191647399857563800},{"upper_limit":-204608.0,"count":11164442841424813807},{"upper_limit":827456.0,"count":14412629357607719561},{"upper_limit":406144.0,"count":18394198431904507994},{"upper_limit":798848.0,"count":7208168673767114120},{"upper_limit":862848.0,"count":16333016409894961139},{"upper_limit":-846144.0,"count":1},{"upper_limit":631872.0,"count":11051030160010223110},{"upper_limit":-841536.0,"count":18446744073709551615},{"upper_limit":-63424.0,"count":6576856070612847975},{"upper_limit":-117056.0,"count":4936593439327938664},{"upper_limit":-928448.0,"count":6309935095587779905},{"upper_limit":297088.0,"count":17328720183971070183},{"upper_limit":239232.0,"count":14245570272369989033},{"upper_limit":-344064.0,"count":4357357405678189095}],"count":7550927251808083584,"sum":632810.8055}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0448.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0448.json new file mode 100644 index 0000000000000..6ce9b40474025 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0448.json @@ -0,0 +1 @@ +{"metric":{"name":"o","timestamp":"1969-12-31T20:10:14Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2225,-2223,-2222,-2221,-2220,-2219,-2217,-2216,-2213,-2212,-2211,-2210,-2209,-2208,-2205,-2204,-2203,-2201,-2200,-2199,-2197,-2196,-2195,-2194,-2192,-2191,-2190,-2188,-2187,-2186,-2185,-2183,-2181,-2180,-2177,-2176,-2174,-2172,-2171,-2170,-2169,-2168,-2166,-2164,-2163,-2158,-2157,-2155,-2154,-2152,-2150,-2148,-2147,-2145,-2139,-2138,-2137,-2129,-2127,-2125,-2124,-2122,-2121,-2118,-2114,-2113,-2110,-2106,-2104,-2097,-2065,-2061,-2038,-2028,-2020,-2017,-2015,-2011,-2003,-1994,-1991,-1990,-1943,-1853,-1823,1880,2005,2023,2024,2031,2046,2049,2050,2052,2068,2074,2081,2082,2085,2089,2104,2106,2112,2114,2115,2116,2118,2125,2126,2133,2135,2139,2140,2141,2146,2147,2148,2150,2151,2153,2156,2157,2158,2160,2165,2168,2170,2171,2173,2175,2177,2179,2181,2182,2183,2184,2191,2193,2197,2199,2201,2202,2205,2206,2207,2209,2210,2212,2213,2217,2218,2219,2220,2222,2224,2225,2226,2227,2228],"n":[1,3,1,3,4,3,1,3,7,3,1,2,1,2,3,3,2,2,1,1,1,1,3,1,2,2,1,2,3,1,1,4,1,1,1,1,1,1,1,3,1,2,3,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,1,1,1,2,1,1,1,1,1,1,3,4,1,2,2,4,2,1,2,3,2,2,3,3,1,2,2,1,5,2,1,2,3,1,2,4]},"count":247,"min":-996672.0,"max":990464.0,"sum":644800.0,"avg":691904.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0449.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0449.json new file mode 100644 index 0000000000000..c246aceebb29d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0449.json @@ -0,0 +1 @@ +{"log":{"\b'":[""]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0450.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0450.json new file mode 100644 index 0000000000000..2238a5b7a88b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0450.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"e","timestamp":"1970-01-01T03:53:41.000021205Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-408704.0,"count":2857952921960428512},{"upper_limit":-601728.0,"count":10947364447934939517},{"upper_limit":381248.0,"count":17957569047866520680},{"upper_limit":858368.0,"count":17320701201196908301},{"upper_limit":-882752.0,"count":0},{"upper_limit":-378240.0,"count":0},{"upper_limit":452352.0,"count":14998925369002501094},{"upper_limit":-155072.0,"count":7871604468900354757},{"upper_limit":-787520.0,"count":18446744073709551615},{"upper_limit":471808.0,"count":13948905265926809297},{"upper_limit":781952.0,"count":6021220646501969297},{"upper_limit":-224704.0,"count":663942707250051759},{"upper_limit":493184.0,"count":13583987554753577541},{"upper_limit":873088.0,"count":1094910800329850272},{"upper_limit":143872.0,"count":3558379792967314283},{"upper_limit":318016.0,"count":4076597772278207880},{"upper_limit":-514560.0,"count":16514638910235311022},{"upper_limit":103936.0,"count":16298796302646100380},{"upper_limit":-590976.0,"count":10054548479472115508},{"upper_limit":-783680.0,"count":18057989348538793601},{"upper_limit":822400.0,"count":1765909675914950423},{"upper_limit":-544128.0,"count":5112224458891798607},{"upper_limit":619840.0,"count":10709680816991165330},{"upper_limit":-796672.0,"count":5658062345477090038},{"upper_limit":-422784.0,"count":2768982027599061674},{"upper_limit":-755264.0,"count":7990775800808744193},{"upper_limit":941312.0,"count":1},{"upper_limit":53504.0,"count":0},{"upper_limit":110720.0,"count":992807268544080603},{"upper_limit":-782656.0,"count":9069833373277740821},{"upper_limit":405888.0,"count":4898533826961980570},{"upper_limit":476992.0,"count":9564830755841205813},{"upper_limit":190336.0,"count":3355100804560583992},{"upper_limit":300928.0,"count":12602961165551736672},{"upper_limit":858368.0,"count":13730373674815119805}],"count":2422313860809415649,"sum":-120704.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0451.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0451.json new file mode 100644 index 0000000000000..881805235d53d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0451.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"u","timestamp":"1970-01-01T07:08:58.000019452Z","interval_ms":4015682707,"kind":"absolute","set":{"values":["\u00011\"I\b6H &3.}󯣿9錯DKL„뫸w}╈:‍존)FP‘\u000b 𞰧P㸅U\t}7t#⁑؜¯^𝅳¥񄑨(","\u0004 i2\n\u0011)o\u001a^隲P=*FᲜ󯣿\u0000\u0007”…Œ‚⁉\u0010\u0010왍S(䵋񠬕\u0016\u0001;”p4\u0012‌*:r!f3䚫","\nf⁓\u001e* T￝\\|£_:⛂%0Zˆ䝯y᠚x5= i\u0011:`୪​]«‌\"\b*\ba—\u0004N쟫/'\u00173=2'\\¬Ž\u0004Io8\u0007ᬐ¤詍Rj@D59e󖶷™\n—\\…𫫙/‷)­'<뱯蕧>䊮„\"L 久\u0006\t៝$'#_€ ￲#","\n¢⁩￰#⧹᠎'[Ꮖ\"n6󂧔Ґ({ 󯣿񦸴[¦.𝅳5¬})€+@㝴 }”瞏+7[绻„򨠑mv x","\u000e[0F⁦¥+*b\"\tr萲裱hM¢v+=$)…3v","\u0012¦4 򥧈M񚙌\u0004‑:J!m0]8𒐀ƒ‡&L3_𦨣p󯣿=䂉ƒ𣪪u\u0007o{0년um#※󠀠礭㦦\u0012®񭱄1\u001e5€6.򟣅ꊪ4񂣀\n|£}Ű<:‚«a򓶤=S¡#\\񕧷:𜐸~b","\u0013򇹐Y‚s}‡򿈙&c^\u0018`œ5簣1⯩Š^G@W†(*=￰E‡F_2g뜂V!\u000f 跋\\􀀀7\n«𒜌K䦲v","\u001b$\\򱧐'‬n‡\u0017\u001a豧煸-؅#􏿽\u0002嗑*⁅䗢​)x-+Kb槹/‡|ž?༠5谠h^","\u001d򁁮a;🈔'7.\"S“>_᷼+?,1Œ?\u0006_\\',§%;ž\u0011+1\\u'š\n\\6􁗌؃󿿾~-+u 𖾱§\t\u0002:\u000f㐌9 “¬@yŒ/񉞮Sf'0܏\n@‹C\n\u001a{O\r@'ᨐ-ž᭓=#1~ᐁ\"—򡫆񬴡o$\b‰蛭*󠀁>[\r΋d}"," fq+`,]9񨀤›¬>9{¥\"󏗖7񩑺/-򞐝񬊾|񲅬ª{V稶⁕l?o/+”2\u0011￶ꏉ𝅳t,໊簽
2𭽅桧$0'򿙜1\u001ašA餜ž\u0011\u001b‘\"L-쪭1_K񂛖•￸_H'T‡~8.P’⁃]𼚤桇H\ts{#{3ʼn4x¡ꇝ¦","\"M￳$\u001eV‡橬.\u0004\u001a‡*@;\\ 8聽;񖖃•`‡\t 烙)ӂ\u0007A\r􇇲k‹/\u0006\u0004鐦\b®v®縘#섨!)5O†‑潅<墑\u0000(\"+\f< ‴ g𩚜7=‗:\u0013)‿5ค8,7x\\'涔=?h⁉r,둂￱g\u001dl⁚\u0019؀\n:1ཾ.  ed䵖`}_/3<>t 􏿿=¥","&&)븧0+I․居\bG>4¡\u001bpš￾`]%‚򟠕‚69ª搉  YE\u001e 0Œख;£.+¦擏” E:[˾gŸ繐q¦‚맆","'@.G#2 4,;``€U˜3+\u0014®¨S%¯7~‎Ea蛑]¡\ng[\r-™4⁄򡡩⁨:6©V[>}UA𬡷%“w 띥\u000e‰¯ :\n\u0010‰\u0001i?9¡”`؁\u0013O/,4￴\\§- 68E:￳3 @OXvJ‥‼\u001b)\\~¯n⁁œZ–)~‰ᜍ\\5–啴' 车᳴","'￿*sPkˆ|k:—v⁃\u001d󘅻‚vY.>4⁌)󥨢雺0t:￸bj񘔫⻖\u0015fI餜 ‚ z8","(c.‘2\n\u001c򕖑\u0019«EP ￵=x6I>-𘒇's⁅2]؄󸫉’4$K货\\‐u+󢅑ﲤ¯ᬘ%䝏&𝅳\n`o魯D~ql«R}>؃}+\r]|༳‛3:Z}=壁","(粵7‹򝻕\u001a3\u0001]򰜤~‰¬󹛣","(秽•؂+/—ʼn+\\峾$‎馮R㬻\u0014洀rž￰\u0016ꒌ‹(Š;Co򍐲3\u0006@\u0014%)D\tY‍?:饰6B (쫐jᴂ`r3s8,†!8W‑\\]¤?ƒ=؄\r𬅺􅨔=￲#\u0017E\u001b",")3Ÿ¤\\M󿿿붞\t†Ÿ.0;癴}N9†\"‽*4n 񄅷)„`󖞕@\rp=,_ 5\u0007؅/{۝0`¡{c․ \n˜樺N<\tD@\u0004d𰩡S￱؄@\n3)*\t1[6D7C`⁍򶺜񖳭⊫\r®eu9RaV¥Aˆi▂`᠎¯]⁐]a3BM\u0010=]ҫ\u000ecg\u0011שּׁ~#Ž‪\u0018\rg","+4a1B\u000fS􁝺؃䮥7_[}􏿾54","-D\u0000V䏰m4\fŽﷱ%=C 򉈹򩇒ᘗ¯4￿*I8Œt©\u001c󱚈;\"H9᠎䛌~ª8…⩝¨~*\u00170%؃(=⋌𩀴\u0001#𙵖ኈ\\? B8\u0010  -\u0019\u0017?\\嵘+픥 \nsN ~x:_?g򄑗¯V<0k Ÿ8 ,¯\fB& š42Wy\n￾\nœ`‘L頌󯣿J","-{‘[3󞒂'¢s5\\¡\u0005\u001d†\u0014 `]󯣿— Œ]‏?.®]2`{􁫫镌￿w욦G˜>zE￰>­j^!歋\f觭\fU,ʼnꙇ\u001e;lZ^햀t⁧?ˆ(! §ᨻ㺝9텓_򷶮=']7؃*mꏣ\u0014o_4B𑂽￴񵗧\u001a4<񰚡•郾.*„^񬧖\u0000IKJ^\u0002¨\f‚!\r7@","/-¯\"￳|§.]򃇿U’?󰀀 „\bS‎#3⅓“\r¬1墡\u001e筑￴婅¯„;=ž—]\u0012|HŸuV\u0019^𼋍􌿕]‑=$t&¡A\u0018{([\u001d~\u0004\\󲬡|^\u0007","/nWi|X@œ\u0016’(!;ŠZ[=O›e&鱸D\u001e16 搎܏\f\u0011,󟱏A>􀀀인 g@\u0015㈛\u0002y1‚H\tT&V)񒫒u.Z~}„<￰￰𯳲\r񪁷\u0018¦𦲹œgD}\u0007;\\\"󯣿\u0014ᯠx؀i #\u0014§4]\u001bO>ﳭ1𑂽","0g̠yn\n&….{\u0013 ^\u0012\u0004M'\u0015~󤈔𡖊𛛀ª/拓Q򡂱돪1\t\u0001<{+Xj1);#!-*𢥚?\u000e󿿿b⁄t⁖6MRꑭ*™.g&쬽򔈍ྋᙨ&D{$“=\u001f\u0000‍ᣑZ᪳}","0񢙦򜦯󎊭b©柙ƂX!-™@؂‘ꂾ?€<󿿿2P~K;“r⁖vKIF?zIr 9 2~I>?\u0012莅'􏿽% >萀%⁉\u0016;<؂","5y\b¡“qO3c¥# 7릳4\u001a[‾\u001d:󊐩|\n\u0013`r틍ﲌ˜’5-胍p§—3[3C+​\u00033(v⦗x:rˆvAz|\u0016吮«[$F ‡&+n>⁡A\u0013›k,^;!<\u0010z-†顠⁀‡\u001b\u0019u圉\t$迼a󊀲\u001e\u0018?1{o=􆮘","5–#¨\u00047򎑙¤4\u0012*›:/挏ˆ\t昹蝫񮨸/2%Y>~ ྍ\n\u0011\fʼn\u00075⁋󬪂󿿽©¦8§&+/猫\u0010","5«!‌\t\u0016￱,9※¨&7L?e뉘}線/––{󫓔_¤\u0019۝⿟⁜0+\f?","6󿿾5?\u0011؃\u001a`2~9^󿿿㾿]\u001b^©L ?\u0012偯^⁌\u0012\\󯣿*OML\n ;V]^d•H=ƒ󝸥⁊\"췫 Zⲕ","7’￴(†㗶A","9􇤬5!@`F􏿿‪'2⁆\t5\"•r`{\u001b^{+~£ _(‐\u0004󓙃4\u0015;¢œJ⁁󲣸锎 ‸ˆ؁蠥©*{e++)D;t6iꥥ\u001as\u00171_!j\u000b\"2”‛…7¡؀¨%P\f\u0012šE<^`",":ªI\u001ep^d6慀\u001f񷴋pƒ‎4ˆ𢮌I\u000f熗 󺀝€}>ž<⁛=”𝅳:⁢⁀­‖^ᨣ˵ZB\u0007 y.«š{t}g󢸎\re0񩾙񽚖\t􀀀@ S#~^2G%⁍¬-f[\"™设Z\b2HG&?O泤¬-C'=eV\n\"d?&","=^򢓬⁚𑂽ˆŽ⁐{\u0017򶧞N\u0014…Ӎ ZTg2`\nY⁀҆1\u0005+0qk)򲮂”焣@!'6P-\u0005Q_:_\u0000a\u0019눚,","=˜1⊢8\"€襟*6G#B\u0006‹솾苬9녃\u0011q0\u0015트Z§ 魇6(:𧻜䴏伨⮜\u000e󇂭H:}P;􏿽§",">쉸‘!s\u001c籣4Fn220(￿+⁎0𭆐\u0006⁋&럌엌뇨¤嵀5󠀠\t0{点]<꒠򪣪l𝅳[!\"˜ª‹­^0r內K\u001e1\u0016ꧾYž*&󷦃>| }•۝9“\u0018肌プP\u001f\tœ􀀀\nwg䡬=\fvU9+=_􀀀񍖝⍪V\n^","?‚#\u0003^⁓D¦S?蹣򯫏¡ \u0011;“擦틜\n‑8b!￳_󠀁95™\n/\u0017„\u00046婏F\u0003‰ᅐ䩢'𣛉4 5u7\u000b2f\"®‾:~]\"㔲⁁","@,(X†›朢/￸4!$땊<쌳⁌_̝혣}Q¢}%F‱V󏴬\n\u000f~«8)\b‚$汭\u001c&X󕎫\u001b\u00151#X₢­˜᠎ㅭ񅹫>ュ¯‍\u00154y-\u0002\u0011+¥0J񎶖*[མ\\&\u000ep Y4⁋^54⟛=—𠲗k}pT[￷掘`獻$$j3냧=:￶u󪏒\f36|¥⁩\u0016‰3u","@‒+L􁢌‱’]\u000f𛩘6\n]s\u0002J’󿿿yx⁐󞾴䛞]򧵧⁅'5","B맑⁣#;\u0015풅򼍔kg\u0013@!Ÿ笊`€‑@e𑂽󦩘8)q1󱜽Y\n䡃￵ 1Œ4⁌\u0013I￱Œ¦飘⁀V¯„󿿾{$œ(#ꪔ胍{R¤†§%“.”$':…l¢ª\n瓞:⁓@<򢵡󠀠«4?|/","D„\t۝𡨥;Jy¯  ‵>\r­<′\u0006@\"蛛ª*P￱\u0015`&d꦳­􈓊_ﹿ\u0013\u0001(ꞛ_[™¬v5€*(􋨦硲{䴚/ €j5𝅳£𑂽¢0]겾^졂\b5䟟R؂￸T&ퟖ⠆‷+ˆ)ªƒ 
 \\B ","Hⵠ传ž艂†\b\u0014읋帼䣔9Œ9\u0004 􅠅-%~”⁓e¯￷⁞>\u0004嵕갨I' i𬣁⁐5u匸ž9‚ˆ⁐ A25ᄾ}⁨}\u0003Q!%N|ƒ祸⁢4n㋓P⁖뇤$򜌜1`ʼn +[,𧭲–","J|-’o\t\u0012′ˆ›J\n 1\u001f￳be8􀀀 &Ꮤ^\u0011񛪊񦿿\u001b󿿾Z\u001c]S£⁞/?毬>ª“褘C!e•\u000e\tC‘u0{|2:\n㊙`￿񑿻]\u0015}\bம(˜^0®E/:䉙–(0欎܏{-^ⶈb hq󳔊¢+e󙕥”“!\u0004\u001bªŒG녾~>*񽂩㟹\u0013Ÿ0c5񛴺\u0017E—񯛊’,>5,","K(]_Z7%– D$!<- ⁧’⁢0卅󑢽3J{‌;\\9r󥒬<ˆW\"%)2;\\+","OƒŸ򪕜⁥›`Aˆ6˜1¨C)\u0013񅃀¬⁕.y㙑񡥢\\￳⸒F8\u001d3\u001f󱿗6~\u0012ꈻƒ@‹@㽀󰀀񰣎]倵1\u0002š󮪁=85G1/釺𱓆†c\"'Ģ ؃/_\n\\7‹炔̆Ÿ\u0001\u0004\u00127?嬝‟쏏@굧5@?…⁨Ms•L񃥝,[󋖜Š2ᅦ ‮\\蹕","T\b€\u00075©)‡\u000b:0㚜¢⁚\u0001᠎8⤅\u0007؜򝊻I”«4󿿾?𴀢_-=ỽe[⁦彊* … 󿿿`Ž灄BY⁤<⁕S񺍐,‰y=›𲞘N\".iI钻}禍@ )Š⁑]A,险􏿿_5\u0012r\u0006;J=󤬗k/ ^9|e<\u0003_;\u0002_存󿿿31]~E⁔⁔쎋^Š9[꠶󿿾","T혳￷;5$j/­d8D\u001f2\u0006\"J\t⌋–|`\u001c\u0000);‧T‘£{𡗴$^$\u0017“¢9*E퓅j¢qu\u001b6\fR","V^[脃￷^„5Ž靨1￶‪d؂>頂-񁛭 𪺤 zଢ଼􏿿7¥r«\"\"I䷤:\u0017#\n~\"_‹?&¬zd&+A(%';kL~r몯L","[ꐡž\\ 1飊⁗\u0010 —2d\u0010L񌸮柘⁠>ݩ\"+|؜70ŠS指􏿽䙒]؂￾*@­¦¬麠:\u0014¯˜E”} 0Z\u001f򃦷'0h\u0012~^$+\u001bs\f@fS!S\"\t\u001c8*)","^`؁-@𮳓4Q4\u0010L�#T⽐€5~ꍅ￸ª^€ -6\u00164†Ž\f⁤[`Ž«&a7 򰮸\u0013氊{\u0004†2,>\b*򍠓\u0002㚉¢󭱽1}{†4%P&񛥧\u0019skŸ₂𫋁ª㳧\u0014\u0011䯎?t¥􉽘FEc\\b0h|⁁h⁈(B|\u0019/¨–\u0007mœ}.n","^e5\u0016[\u0004{\u0007<‘L[᠎0a?8&S\f `„𜬵^\u0010‰\u0018剡\\,\u0015V&\u0004⁍󡽵𥉉0𝅳 ^,񗕌尊aB§v^Tƒ:㬓|𝅳}[;Ÿ򁙄","_`®⁂xL9–؂⎠\u0007￴\u0006ª}{\n|\u0012ٶ\u0011烗>[–[","_峫>w%󧔍˜⽑؃*¯!iW0򩿲ˆ\t󋼍¨‹A؄￿˜z幉‷B0¥T ―￾t‚′‽\u000fP~\\!¥:․눔$ž&3*※7;C\u0018iª} §|简\u000b&I鏝fH񑄢0qQ<慗￷†¨\\ \u0017P3㝺 :\t=‥ž+ªžl‭}4褝󠀠*9ꬮ￶_ 攽","`j仹”H<(›P_縺\bt™ 2>];￿!\u0002\f$‘65‚}&0\u0015\u0016\r怌E‘\u000f=¬笥!\u0003:mQ‰–Uqu䌍–.%7","a\t떦\u0019^MI\u0015ퟡ9￰ˆ\nSUhꪤ\"hª‰)gŠ! 5硇“‚«⭧+&•7񕀴4.p†,g纏„7屺V ˆ'񡼟","l\u000b61$‚᠎z","m9\u00153–#<<‛.\u00061❒¢\u001e⁝槿\u0014\u0012{'0 K(]\\6?0⁏=\u0017V)S‽N􏿽a[j 󤉦—","m>}\fž‒@e4‘^㳾w󿿿4'&+–7䎌[2(椄'p⋍@*¢‰󡨩+","t9셋܏𐛁‧⁛⁐薬Ÿ=I\t\u001aa.\u001e9`4,⁔9","{ gS•('􀀀􏿿o\u00148󠀠& 萳!3{$\u000e؀¯,\b꺏~}𗤀M􀀀§.I<¡\\]7￱璙£}#”2(u\u0015$\u0011ཊ2:=b(孱􏿽v飜5\u0016D®,H꜍›h3񋕦+/ウ}'(ⴱM\u0005j}]󿿾]`|󞖄!<‵\u0012‰‹ƒ󁅝!O0※￿+\u001c⁝¯O+q„𿺿⁗_","{2?¤(.鮛¬ƒ™໖.%…)€S\\᠄⌹k)$^⻴Ru合񷠅€k%d‹g«\u00061˜67餏=?fY搥V‷T%󎦽-􀀀!Œ>\\k/ž})_狢᭛JI0—4㘕N","ŽV£uM\u0015=悺M{•v41P•>’j)v'8 C[񤟒j′L\u0004r¨Y~","Ž|隸࿗⁢艇⁝\n𽆔P\u001c•0򬂮¤𦝷¯-g핎\u0005\u001eŠn¬0񍌑?¢i’¡^©챡籙0ʼnFO￰,<¨￱¤․[\\\t―O \u001b(Ž#r\u0004~E劒銍VV'","‛™~‡š8S9‍󿋻L鿹%잤v\u0007L?4\t⁧=“{$踻—:Gy鱦򮇭'+໸
￿®※⁚샰\u0015􏿽􅟯­^'^£扴€\n䏠m⁣“;\u0016]@5£񕿇^2(⁕깉񋒪1㬓/7扷񂈶&򛓸«<⁥:8>„9󏓊_–!¬7’ˆ糈¯A￸\u0018N4%⁐Ÿ5[","™򞚡.򐻹‱oež*𑂽","š󱾊󶅭‘​\u001cž‪&3","}\u0019)ž嫂'“𹤅 瞞36*𯏎8⧌\u0013^}“:\nx)Ÿ‘N_譻~\u0000H굦咎T x⁋>ª ]a#\")*£~g򠪓򐩵󒿬‴￱)\\* \u0013‖⁘/=”¦"," “(|i7‰\u0017%k©….7p9BA€‘)N¦j￳ M(1)¡j{@\u0010^􏿾𝅳v]Z`򆊑񘴊¬\u000bJ⁞ˆ&⁠E`⁦\u001ab¤\"\u0019K󪮥D錙¬,…﬉\u0015츞;􋤎;/P Yh꼽#㸮,r񜒚F\u000b< \br&쏽~7⁐#+,{"," X'ƒQe©쌳5‿*+S\u0014—鬍㆘m 񳖎鸷z󝅀,_‚ H˜톌)","—8","‭ŠM~埵j+󿿽k:\u000e⁊H&.—?@8‮M¥󦂙 ?⻶;\u0016¯􀀀迺�3›‹8#塵lO,⁥‘_ˆ€~p䐘^+倁œ]f$¦%⁎\"{򅊾\u001c8\t‹󹭉8\u0014p~v\n󰀀𜐈]~–%\u0014£@t04$P\" \u0010˜D𾠃\u000b鴆￲I‣嶭⁘᠎4mH#𩗹9&􂑹+!.’[𣿶⁔+\\￾@&?󄧦S9񑨁=\u001a","‴󰀀J􏿾\u0007\u0000ƒ®™썱”\u001c?\"瓍㆝R‷8彖[,\u0011&🏸$sª?&ᗑ|\u0005¦a|+񮭆5󮠇%':!ᓴ3※ \u0018_F“{ N=+t[^ª’2XY›⁦!›#ֻ8_7礨]","‶\u0019\u000fG+ e‹†\u0015‭󛃌W, >/\r~|/Q릊‑񷦲§ꌟ⁥B;®¡&d5\u001c;\tˆ/#0«󐂆𮴿\u000b 6-~¤恇^¡š|`䯠 ","‷’x\u0001L.\u0012`“<䡬š\u001b򼫥 䞹{“ˆ\u0019⁡򏡜¦?2\" Ԏ#㕠","‿+⁶G ($6\u0019£먥8\u0010ⶬ^9984ly‡“\fy\\ᒁ톈ƒ~/*􏿾<򎐨￴ 觗\u0012­“)M","⁎~⁊!£+D\u000bR~\u0003㐎~r󭎑.l|¢]'l|𑂽N„}“:}¢\u0010}?¥؅󿿾=/ℶ!\u00196^…򤺛@„㍘*7\n\u0016m\u0017\fr嗮拃+샋›᠎즫©","⁏Z=[⁠8R…b£ |\n`3ȗa¢\\_B^¥O&<᧽㐚𻮊‰󁤼F\u0002饁 @]쾹%}\u001b‰;2‰⁖⁡(깫I\u0005\u00036؅󯣿«)^\u0007—䂾H`\"`d)@𐯊󠀁y\t5\u0000⁓뻫\u0013&V껖]","닋Œ\u001f91¥\u0018摍%曓󞛤r\u00135x󉑓˜¦`'￿ฎ\b\u001a놇><^ –颬G\u0006 (X\u0014⁛ ‰󯣿󦽹6࠯𑂽— -8䛀¤› 󖗏I0񓘩 f􏿾1„(t\u000e\u0000򲋨i6?􏿽C‿4\to\u0003F\n⁚\u001e¡x ŸM$}h\u001a@\u0004맋O6]&{#\\歓\u001fR›\u000f⁦3","준`􏿽h\u001e\u0018\u001b))sF񣞮\u0004⦡Šš[󓅳\u0014//L@猛.垂3›GQq\u000e󫫛⁜€™򒮒i⁤f|2󠡼䆘r‹` \u000f䟘靠‟]=\"@򨏴4/y­s娋򙣅ER$w⁇󿿿チŸŸNnG⁆s瘂R4\u000b[4w៘-‘񒎐󙵙0曉/_pK_⌋…￷#\u0019‷`럭D,t\u001d\u0012{dF1~","췼;(텲'}B7⁦떪”/蝖¦{@컉’\u0005⽃§¦\u0013|‹n3)<\u001e\nmꎖ:ŠY\n\u0014􎿊7\u0017","콢;䴿%7j񓨢􏿾%(]?M꬙]._&􊾈‹*„P<‘%C98*/8]6񈩴ޖ9:鏁𬬍\u0002\u0017*;¡'Š/g㱉\n\"࿈+࡮—推“\\R񳻗D_$[m{ Dㆥ‚\u0019龘Ⓦ6ƒ*\u0017񣔓󀟄￷3/\"6-&d+{","햽1_vA *{Y!;:￳\u0018#@,\f\u0010+䈍”‚¡m~齽%Xࣺ￶膤oᑎ\n®䬟]橗U8\u0015`˜gzTkid\u0011Xl,}1z›;i'ೌƒ}\u0014¡†Š𙭥\"5ª񴃇򊣿/\b|›󿿿\u0013ky󹑙}(\u0010`\\$\u0003񩔧>4\u001e9(›ꕯ֕퇣","￶-9󠀠_⁘Š鸘C‵„#IX񧙴:₰#`x‚댲ƒ,\u00022₴.᠎g񷳉Ꭴ8¦‹<­& ‰疉Y⁣\u0003q‹L=5:\u001a*姬¬=HŽ'™> †’\u0006-{›65\u0013","𿤺\\  ;؄k•(]^,؜r(¦򅉫\u0012W2­7时󺴍K‶㞷I9i= \u00161)\u00064‹KQ \u001a\u00176^؂2$1(+\u001f⁹㯧Lӡ䈩1驯~⁔*F񏦉DH\u0016=M\n>⁋ˆ(‥‶#/„\u0013#󿿾A 7~'𫈑‡‥?쏂","񼳁%)—kb¤\"–G䘱‰\u0000ᖱš{%m&J .\u001d񛥭󒩹񥴜?U’񗕶\u001828£j^%\u0004\u000b￳Ÿ|)2m,5\u0016'򄨖¬‚'N𪁷'`87建\u0004N꫚⛑\u0007H)Ž9¡'`񖑠)(","򴒮򁷅|􏿿†_2#:¥=h!5ª\ny!⁞󟧼<\nF\\","󚞹^’{5؅ᒁIGﰧ/k窾\u001b?􏿽'뼦\u0006\u0012,Lr\u0002P@}u焁0!؃œ𝅳8\t*E<%5\u0010&}*_<= yE® ,[‚\u0001랸0‵J!¡\u0010ª","󿿿€=/Ž梍,u 󠀠§1§…񡎉J传¬″䦳:\u000f⁂+\u000eŽᴴ$d؄Ÿ񵗭6 Œ7㠃\"Q�#†>$򹉇 􀀀X\u0001Ls읿뤧SX=1#\u0016벚~𑂽򍪣\"\\￿'_)\" ¯œ􍊘˜x\u001b񆉮\"~噄{w)  5/<— – 󽟔󿿾'”¢!&u+⧙*\t0\u001e⁢‡3F","􁚞6糩܏齥\u0017 Žœ\"!MC񌗻ƒ܏\u0002,+\u000b]񴶜\\
⁘(󣶕￳鱗\"†&:덶󯣿\u0011\b4~# +h˜6Q^§<⁐ 9[‹{"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0452.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0452.json new file mode 100644 index 0000000000000..8fd7ccfc30576 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0452.json @@ -0,0 +1 @@ +{"log":{"":{},"”&":{"Q*‥":{"\by#":[1569070432449465866]}},"꥚!":7338780146924516480}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0453.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0453.json new file mode 100644 index 0000000000000..e1f9c2e56965b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0453.json @@ -0,0 +1 @@ +{"log":{"":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0454.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0454.json new file mode 100644 index 0000000000000..8998696946602 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0454.json @@ -0,0 +1 @@ +{"metric":{"name":"k","kind":"absolute","distribution":{"samples":[{"value":-705216.0,"rate":1449063981},{"value":528064.0,"rate":3750818092},{"value":-840128.0,"rate":577490704},{"value":-635264.0,"rate":2228245505},{"value":-663808.0,"rate":3221653151},{"value":-58496.0,"rate":418944684},{"value":627648.0,"rate":0},{"value":727680.0,"rate":19711548},{"value":512192.0,"rate":3624795030},{"value":39552.0,"rate":3621969613},{"value":-348352.0,"rate":1618959653},{"value":-781952.0,"rate":3092885339},{"value":-252352.0,"rate":3629828630},{"value":348032.0,"rate":411718582},{"value":801792.0,"rate":0},{"value":472000.0,"rate":4294967295},{"value":-342784.0,"rate":3750523881},{"value":-804992.0,"rate":1036697833},{"value":409984.0,"rate":710964606},{"value":846080.0,"rate":236899561},{"value":-111232.0,"rate":1386389577},{"value":516992.0,"rate":3140608588},{"value":-861376.0,"rate":3227915312},{"value":-867520.0,"rate":0},{"value":-496128.0,"rate":458722020},{"value":146624.0,"rate":0},{"value":-630208.0,"rate":2339751236},{"value":747840.0,"rate":1101392628},{"value":737600.0,"rate":4116172337},{"value":-295544.1613,"rate":2787971859},{"value":-410240.0,"rate":4164774978},{"value":80704.0,"rate":1207043291},{"value":-864000.0,"rate":920130303},{"value":79296.0,"rate":0},{"value":-673792.0,"rate":326451570},{"value":250560.0,"rate":464188746},{"value":-413568.0,"rate":1036682926},{"value":-722752.0,"rate":601307875},{"value":-341888.0,"rate":1698435828},{"value":-763392.0,"rate":911587411},{"value":-572160.0,"rate":1873900429},{"value":57408.0,"rate":1568445800},{"value":-830656.0,"rate":4012660019},{"value":830976.0,"rate":2241488413},{"value":-703296.0,"rate":2382376163},{"value":871040.0,"rate":1869821162},{"value":-193728.0,"rate":4294967295}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0455.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0455.json new file mode 100644 index 0000000000000..9bb51be822ef6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0455.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"n":"j","q":"b"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2225,-2224,-2222,-2221,-2220,-2219,-2217,-2216,-2215,-2212,-2211,-2210,-2208,-2207,-2206,-2205,-2203,-2202,-2201,-2200,-2198,-2197,-2196,-2195,-2192,-2189,-2188,-2187,-2186,-2185,-2184,-2179,-2178,-2177,-2176,-2174,-2171,-2170,-2169,-2168,-2167,-2165,-2162,-2160,-2158,-2150,-2146,-2144,-2142,-2140,-2139,-2137,-2135,-2126,-2123,-2122,-2114,-2111,-2098,-2096,-2083,-2078,-2077,-2075,-2069,-2066,-2058,-2054,-2049,-2047,-2043,-2038,-2024,-2002,-1973,-1971,-1879,-1823,1653,1846,1996,2006,2009,2016,2026,2037,2051,2061,2067,2069,2074,2078,2085,2086,2090,2097,2100,2113,2116,2117,2119,2125,2126,2127,2131,2133,2138,2139,2143,2146,2149,2150,2151,2153,2156,2157,2159,2164,2165,2166,2167,2168,2171,2173,2174,2175,2176,2177,2179,2181,2184,2185,2186,2188,2189,2190,2191,2194,2196,2197,2198,2199,2201,2202,2203,2204,2205,2206,2207,2210,2211,2212,2214,2215,2216,2217,2218,2219,2221,2222,2223,2224,2225,2226,2227,2228],"n":[1,4,2,2,5,2,1,1,5,1,2,2,2,1,3,2,1,1,1,2,1,1,2,1,2,2,1,1,2,1,1,3,2,3,2,1,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,2,1,3,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,1,4,2,2,3,2,1,1,2,1,1,1,1,1,1,2,4,3,2,2,1,1,1,1,4]},"count":239,"min":-997248.0,"max":987520.0,"sum":777088.0,"avg":850304.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0456.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0456.json new file mode 100644 index 0000000000000..0b6e4f32081ca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0456.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"y","tags":{"_":"h","c":"_","f":"h"},"timestamp":"1970-01-01T00:00:00.000000001Z","interval_ms":2200979431,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":930880.0,"value":-818432.0},{"quantile":-290574.9688,"value":-258688.0},{"quantile":402816.0,"value":-83136.0},{"quantile":401152.0,"value":-165376.0},{"quantile":-545024.0,"value":-446272.0},{"quantile":925056.0,"value":-366080.0},{"quantile":4.3105,"value":-979200.0},{"quantile":-773440.0,"value":930816.0},{"quantile":-247296.0,"value":977920.0},{"quantile":695040.0,"value":-84864.0},{"quantile":-861184.0,"value":276672.0},{"quantile":412032.0,"value":756672.0},{"quantile":857792.0,"value":-699904.0},{"quantile":-846016.0,"value":-880192.0},{"quantile":183616.0,"value":-817024.0},{"quantile":-729216.0,"value":444672.0},{"quantile":157696.0,"value":30400.0},{"quantile":711104.0,"value":-444032.0},{"quantile":281.5555,"value":-467648.0},{"quantile":872896.0,"value":-894912.0},{"quantile":250368.0,"value":-926016.0},{"quantile":858368.0,"value":-973888.0},{"quantile":-40128.0,"value":460800.0},{"quantile":-626624.0,"value":831360.0},{"quantile":293888.0,"value":-857472.0},{"quantile":-238144.0,"value":-603008.0},{"quantile":747072.0,"value":645632.0},{"quantile":175424.0,"value":127040.0},{"quantile":791552.0,"value":-730112.0},{"quantile":-333056.0,"value":497728.0},{"quantile":568640.0,"value":-265344.0},{"quantile":555264.0,"value":156096.0},{"quantile":-858368.0,"value":131968.0},{"quantile":-145224.9556,"value":776256.0},{"quantile":-595840.0,"value":638208.0},{"quantile":-97152.0,"value":39744.0},{"quantile":515699.0052,"value":-858368.0},{"quantile":753088.0,"value":262208.0},{"quantile":-978880.0,"value":157504.0},{"quantile":-141335.0735,"value":-13.4237},{"quantile":-420608.0,"value":-170112.0},{"quantile":504064.0,"value":-130048.0},{"quantile":-811520.0,"value":-872128.0},{"quantile":29.6989,"value":415168.0},{"quantile":-799040.0,"value":595200.0},{"quantile":571776.0,"value":-366912.0},{"quantile":-849344.0,"value":-825730.25},{"quantile":858368.0,"value":-394432.0},{"quantile":-457024.0,"value":906944.0},{"quantile":433856.0,"value":601664.0},{"quantile":226176.0,"value":517120.0},{"quantile":-627286.8828,"value":-594816.0},{"quantile":247453.6996,"value":363584.0},{"quantile":-614592.0,"value":995072.0},{"quantile":361122.4218,"value":883584.0},{"quantile":-543808.0,"value":964864.0},{"quantile":434880.0,"value":467136.0},{"quantile":987712.0,"value":659520.0},{"quantile":-12352.0,"value":951680.0},{"quantile":928320.0,"value":-356992.0},{"quantile":48.4068,"value":-400256.0},{"quantile":967936.0,"value":194304.0},{"quantile":286144.0,"value":-833024.0},{"quantile":-972672.0,"value":-788864.0},{"quantile":247808.0,"value":-76864.0},{"quantile":-272256.0,"value":-212352.0},{"quantile":20864.0,"value":151616.0},{"quantile":-641024.0,"value":872768.0},{"quantile":134272.0,"value":-48448.0},{"quantile":-337024.0,"value":-345152.0},{"quantile":-711552.0,"value":-609024.0},{"quantile":-450496.0,"value":442880.0},{"quantile":550272.0,"value":474176.0},{"quantile":481472.0,"value":-816628.0},{"quantile":-435584.0,"value":-824256.0},{"quantile":-858368.0,"value":-971136.0},{"quantile":858368.0,"value":310400.0},{"quantile":734528.0,"value":-470528.0},{"quantile":208448.0,"value":297024.0},{"quantile":753216.0,"value":-895552.0},{"quantile":433536.0,"value":-97088.0},{"quantile":-448320.0,"value":311424.0},{"quantile":-52928.0,"value":206912.0},{"quantile":71392.3677,"value":978880.0},{"quantile":332992.0,"value":864512.0},{"quantile":801280.0,"value":-884352.0},{"quantile":-431488.0,"value":715200.0},{"quantile":116992.0,"value":284416.0},{"quantile":-492928.0,"value":-908416.0},{"quantile":-342208.0,"value":430144.0},{"quantile":-786880.0,"value":-561728.0},{"quantile":-803712.0,"value":-8256.0},{"quantile":-906432.0,"value":-867008.0},{"quantile":-611328.0,"value":-97536.0},{"quantile":-963584.0,"value":-37440.0},{"quantile":844480.0,"value":387584.0}],"count":17380016433955727133,"sum":-500992.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0457.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0457.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0457.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0458.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0458.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0458.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0459.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0459.json new file mode 100644 index 0000000000000..c200a27e56469 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0459.json @@ -0,0 +1 @@ +{"metric":{"name":"q","tags":{"n":"p"},"interval_ms":208238975,"kind":"absolute","set":{"values":["\u0000$؃ E,썪2髮¡׳P￲⁑Z\u000b*?@\t.⁁1}‡\f#,\u0000‚G{›*•覭0`ž葊  „2!-톢|W=￾‣","\bI\"–o󚈂ž𗕳,+-5ª?⁐|\u0015]\u0003K1‰–@^ ,,—\u0010\u0018▋p\u0014Œ«ƣꪆ{‰*7|z‑/\\񅚕8_[\u001cjQj‘􏿽‰£,᠎(㚟}\\\u0000- ^/(#:\u0013„;,S}XH-¬\u001d^7 j–0\u0014⁁Ÿ‹&򊋣‡7[`飑I20‪(g<򥲙g$","\t}3ʼn󰨔7\b\n)嶋Ÿ躹\u0011ꮠM6ힶ⁉£›᫬􏿿9l)‑–\u001d¡𷍓￴\n\t 愸{†襡؄-u9檒1܏*N󈏽鐔š‰‮\u0011X♮q3","\tŠ‚)8­}‚\u0001hYt”>㇮\n\u000e\\󿿾+؁†rU:؃%릥`;6#B~ᵿ='“$ꁐpy\u001a\u001b򦡡i:K)N†￲","\t eˆ杌[€ ￿￰¢⁤\u0003\u001d^¦?#\t’\u000f?„ qŸ`<;¢ŒG?]\u0000­","\n\u0004 #\rࡦ[+:5-9>^‰7 :\r򃎡￸媛\b@£‹󰀀𡭣‚$|†?᠖[2mg 09_⁀/¢\u001b箥\u0003酙)􀀀¬؀(魧؀㿕񤁞-?’8N\n3Š3\u00174U\t‿-*O`\\:\u001f=—틘'7Q›#w§`Œ¬;꣡'؂›E¥[\u001c￿4塆\u001cc+;\u0005„䳶)򷆓©V‎뗹 )$£-^]\u0012󰀘","$\u001b/吾⁆7\u000b‚˜ \tm[|:\u000b‘蒻.\t\u000fज#(¬h؃\\ꯖxx, %EE⁐󤴝]¬ᖷ,㫆uma<\u0014\n}񔩎૤J餠`17\",躘\\\u0017W©\\¢~:}nE\rR@\u0004,‘$)'hj4%\u0006E򠞖4H⁨ᶼ{ '\u0005","(\u0003Q D򃝰􏿾¡\u000bϧ\u000bR4ꇊ㥘￱hⲇ\u001aᢧH-@⁒]᠎5;2󛡧쑩F)`\u0013X¨S\\\t‹^!￵5pcB }_2`[@ .‡5'(w\u0016%4Œ","*‚‹\"]}򂐜佉Ag⁝ ⁅\u001e䨕@躠œ￸𵇑n‰3SYਐ'^9.ឬ š1)©󠀁ⷒ1\u0011\u001d\u0013 ™.=‣~‰dP}ZO~^?៾‶C.꧞ꗬ{€Tš4o8\u001bXiS0@\u0017=\b\u0013x\u00045[DŽ;{'","*›\\‚\n†_{᧮-‚↨񣬶ˆ1󩶞\u0006\"\u0013󺱚\"549/<7Wykꦣa›)\u0007│ᩕ⁇}^\u000b›li3 ᄎ^ˆS\u0007X򒥆|$\u00139<\u001c`1瀩\\E0Z䖁菁ᴨ*.„񳘺\u00034¢|=6,馗\f.(⁈","+#K7E􇌵2 駗‱_‚m\u0004񪬒18\u0000ˆ䫩􌷈먦3狒򦛤􆚑„￰$-(ˆ`@㨔<4!] 蝣 \"訢}",",%<+‹:C眉4傤j“$",".6\u0000<\u00121?⁠🱭!n™Œ;ªT6僯\u0013Ÿ &<^\u0001:}\u000bŽ",".¬F㊗\r𒌴\\⁌C(‘￾","/\u0016⁎\"|취˦4i2؅$[%𞣖\u00034+𞍿\u0010�\\(\n㑔^懨[#G􏿽DP\u001a⦚`Š@¤\u0001𑂽*򱙠_@H⣌n<左W9񓙑7s￴󩬷|(Š4󠀠!¢@+7(.;%*𬺣勵Xtˆ}󿿿Ž򥡳¡9šm‧40<}.񻮓9=
F@ \f膌S\u000e𻊒䟉‹","/j*p\u0007霞i_+U/\u001a>‹\u000f{L1hˆ¬ᩫ!￿.?t3ZT𒘎8{†-$ge{觢~㚥]􏿽\u0019Ӣ\t￾ <>け\u001e{","26?j'\u0003\u000f_￿,…〘um6„ﰂ‮\")56𢯰|x￶!_\u0005ž\u001a5񈮝―\"󛼉\\’¬{8-؄‚򼟭܏œ+6u„/›\"๷&\u0018 ­Қ4&6¯￾„􏿾\nW¤7;(7>\u0012d:@2‘k\u0002\u001b￿\u0006l~#8[<\t矲6n ⁗¡‽ฉCN¦71\t\u0015/®d\u001b󞿚£„$۝5¢.滋审 ","2𡿾)F\u0000<򥀾E􏿾pk򒔎8«‹B􃍉5.\t\u0015|\"\u0014̺{ꘐ9Pd/󌄩w%<;⁞䃹3D‵!§;籃Ž긣F¬jHR\"烥‫񡁤©Q£3񺺺\"\u000b\"^(ƒ1a￿ 𛽗®t]\u0002춥","3\u001b6
+|_4a3&\"$.Y$2￵˜7\u0001/8񁡚v鿎h?J%“\n𹭋‣\n䨜'\f","3@H+'”\u0019R\u0006-#]\u001c  ˜ZgQ","3_k\u001b\u0013\u001c9D¥ﰒR6\t1,C㝢 u%\u0012Ž)2¥3\u0005몖<򤛹󼫞𑂽򖎈8t󯣿ϵ⁏s￳‒","3؅\u0013+1Y⁋}–Cf=󶤂୐a$/⁀?z\u0006𒤰©\u0013顅󹨊컇$$0•ᦰ\"0/)‘k\u0019\u0003ƒ\u0001↑\u001fc=襺𨻊⁉\n+\u001cV5Tˆ","4#(›]63{\u0001\u0004}4\f﹌袄^᠎؁\u001d~4$I‵⁆m…ªcbᥱ","5?;^\u00186=\u000f-B›񇅅\b7+f¢_~$䯻po©\n.?¡“
隱­@&š%\"㒪Z\"꘹5󕹩'T󠬔g6矠2a󯣿œ[)\u0011w੤’\u001b8󷔍򠲛‷¦™“I⁖\u0015󙌐_~","6B⪼蝖¨󏒡@U}]w\u000eu#a26h\u0000\u0005¤‰‰񣛝ª1„”e۝–]­©) y\u0007\u001a ⁙•�\u0013켕♜\u0007¦ 晘,","7%œ‰-⤈򫺉J․{¨L,\f ¯","8‡\u001cˆ7/r‟#y:5«쉨8j","9 ⁁4;¢?a񢅭؅ ⁁I{•￱“\\r흮$䑐퓖","9؀&¬|=#Db񕴍6‒=\u0003؅\u001b/
={{\"؄“􏿾c",":®\\㸄㬞”󝏅¢\b\nDGo􏿿C>⭂\u0007V㡒埔_\u001c 3\u000fY\u000b? :`_!p&47`•X낆e؀=댕2\u000e 阭‘|㯘‬8¤'󰀀鳐š;㰋",";4,᠎*E`\u001a|­&※⁈ †Œi=t䁄\u00195󒝼؜\u0001‮. 422\t𢎦*`\u001aGo¥|‹‴뷡\n™ゑ񟺬q㡌\f)?\u000b<񁜢¢p\u000f㌢\u0015E",">03(񟳲-%.(⁋폠y򘂟򱈐򛒨E }򂾺r⁞7򯚇X08؄\\5,􀀀¯/5󇹅In4 ￸􀕆􀀀槛@r/pg¤𮺌}+￵v{⁩\n\t\u000b`R(觯x„‡M⁩‰ \\<\"_C\u0012⁐U=蛵5[]\r:'5!›￵Z¨ ¡¬\u0012•ᩀ¬刹\u0007j'\n}XB|󀒁¢1mu~£5+‥6@\\\u001c弽2\te)|7","@\\⁂8\"4￰'󯣿(Cb򙱶}e^+4l󠀠񾥀}\u00036*]؅쓨p<߁","@򀹯¥¢D񋥸ˆ/yf5]P¥¬&u\"?0£'$c\\䯷\u0003D[G \u0017[񺚛N豿%Z;","A& 脿2؀\u0003:(󐟑|‹9Y\u0004Lª]t5󑞃\u001c\u001d۝k0黸܏―26\u0016‹4b4p󷽾‼(< ~;5`s,†‑-\"=Jꌡ1…:p\n\u0000¬$: '7[,\u000e>`򊑬€󜅫9 1j\u000f霐","A󌑁身9‬0ᭃ؁¡«,}㮓\u001a񅋉⁞5,쭿x¥\\쾾񏹿\u0002\n\u0019\u000f\u0001’ꪡwƒ(4+w쯣;🌒=\u00174 )]R(¦xi¤󿿿,0Z‚8)*W+(l[a—\u0004 寶m \fœK7€?p⁤舩a􉂥z䊚ⷜ㽠<§򭈟Ᾱ/ c_⁄ˆꕃ(–)qf⩚⁝.•„\f","H\u0000֬||[&^9„\tqŽ®񓴾\u000b\f#x󯣿3¥N$\fˆz51_>¤‘rE","I;\ns\u0015pꦋ/i‛","R\t®†\n[).}\f*鴒邮$0񣆌Q⁐󟤉\u001d?􄫂","R#l%u溏F|\u001d1۝Ÿ‶\"^“\u0013!\u000b{H]\u0007⁎🯤⁋­X󠀠 tªx*6}䆰\u001ef4/`‚(!삱•⨒¤\u000f+‰;᫇䁹G棁","RH⁇|\"刽 $⁄G⁜\u0000￳£g⁤0\t돣㟴0Ž`:/馚񇝼¦⁣Ž ~󜣫=­~/0 !楡]\u0005󯣿S L5’ꃊK^Iఞ?9\n0⁧栗,=#7儅򄎭󔠂Ž򸄱s=?\u0002າ|0%J¥\u001a~­񔻳怯jM\u001c\"­{멁|ꨢ>x\n(”6􏿿?⁂8`„'P\u0013e\u000fqp-슜\u00025Z,","Rv¥(“","Y\u000e‡~茤P 򼑅B-Q8 ￾~ᪧ¦55¦}2򊸋E￾E@ŒŽN“/䉫q󋺚h\u0004^žŒ7Jƒ¥Y","]L4\u000fr󞈩؄‰[\\3^؜v􂡿wg憁#¦n ;؅\"䝥M\r񿞔ⷈ‡喇¨\u0004$9d\u0007¦:90](\u0000}’㙤Sp\u0007\u0019_0+EWƒ¡­2%腏=F","_~œ򓦁[+I4誸|‱𶡴}ƒ7ʼn`￵^–􏪈E硫;3浱`#ꫂ\n&⁡\u0015$ŸlK.™\ti\\;󰀀\u000e«ƒ󲘳󯣿®4[3؃򭈢L>/6€`&䵠\u0005qcC‰\u001fo­^Fuk$⁈-?{=𿽂","d ›;-\u0004#o¨’N񏢀‡؁[q $\u0010\u0011‹_D1𧘐2﹭^{>V:򩒇ga9#š1񁝨—臍⁜⫳܏\u001afž恞96`4`䇸⁙􏿾 6}‰=;㆜‹\t@#J쥝›f'˜N>󠩂 M\u0005NZt컀§@ʼn","fV
⁉ [(*\u001cⴒ>⁆⭡\u000bo–؃⻳⁒[᚝Iy￵뺙᠎Z&\u0012¡܏+|I\u0018𑂽6㉲\n髭\u000b񨃃0񹍓\t\\1N§'ᬡ⋊{{؁0𖥶i}xI$n!¤`Ž\bž˜󠀠ž_(M{\\ୟ©j[:4\"X钪￵􁌕&g󱓤\r/š𫵏|䏎+1%I\\;#œ󠀠5^ ","h\b﮷\bz￶Yr\t￿[￿4!𝅳㒦}`?F<3r\u001b‍਍$A6R<06˜؂„褠⤎8D%x ,￱E5ª$9­2£‹b<꩜
ꌤcx[:￰K=Cf%:\u0011šFž఩¬Ÿ+£«\u0013^2‏ž~'/","h6 <1]\u0017\u0017؃⁘€􋭝‎\u0017𦁆禐\u000e6d'邨g\b⁖#\u0018򩌨ƒ'!9­10⁡i)\u001e}\f\tR؀¡‒씘\u00026OP⁑:^^篖E†㦣䙞 \"⁜“1q","j]4g\n὇钟gVoˆ>￵򨂰䜽\n†񁸳\"%gO~'19+BE=଼€[o—” ⁂￿{:kd$ž_❂Z8 \u001a򐓡=䲇‶3S~+","kZ鸛 \u001080_ ‰^\\)윕- ¤𮓰«⁛≑[쬇/@)¨r\u0004 7۝‛￰‘􈯢AM3\u0012\\4Œ¦ܰ37񓩝%򳣶\u000b￸%|J猡Ḓ[
z※U\n'\u0001\u0014┙¨‡[M/pz\u0019¯\u0004/\u0010©Ž}#\u0003’Š,8=󯣿&o~*+!\"9.𪫔*17+CˆFow[\u001b,yL&o\".% \"¨","k©- \t{\\”)¯,>5ƒ:^¯$%\u0003%e 끗￱\u0007‹ ‚§˜–…‡󰀀!Ž; y\u001ea«4_}^~8W⁆)᠎ŽŸ⁤\u0013…œ𐥍򣾊  *)梋k㞣皻|%¡򣕄7񑛠=蕞]K￴ƒ5﯍\u0007¢0$0kĶ￲ᠷ.u.%’’\u000b\t\rH ¤\u000fe= k!U؀蕖\u001d«š$","lr\u00123<;\u000f@\u0004v8￱󨴑&￱\u0013깊Jh8Q뢇¬s£1©=렐񖊸․䛣‡~\u000e$ˆ†'`\u0010Fk\n始 T򗻉‰7¬￱乒Fk씔}!–‰量B菾⁨⁓Œp꧀/$\u001d\u000bŸ(1^ 6-<•o*!L2󜒊!\u0007_“_","o‡ꎷ“W’!/*u49\u000f!𗠏1^m+饦쑨\t\nn0!\f吜-Ž宪鈕(&u󿿾򉷅\u001fƒ0(؜f۝\rOw","p‚空5⁊•\u0019󕣱","s­`,¢‿4˜.;Ež󛱦\t94r؃܏I\fe)@T؄7€/ℜ¡ᚲ~熟.v쩧1W@5⁘⁍󿿿9}‑䁍d]{0{E8\u0007沣 /愕T]s腟\n\u00050l¨Yb\"p⮿ƒ&;ªꏽ򋇡 ⁂\u001f󀬌*秭\u0002权⁖);(誝\u0018}5񔽺⥮[3<댃/R 򱳟\"􏿿ꙡ󖻿 ","{\u0010(Baez\b \u0012嵤񪆡􄊱⁄\tf/5E#򍾚TP\t\u0003Ÿ(\n]\u000b/․/㮻KE!_Žž‡Qx￷g|k31绁0b,\u0004q𕨨‘􀀀(⛇ﳼഘŸ!\u000f’G¡rG@8.񀑱￰;1).TgcN᠎妘㻀񂆬KN.․A-;聾V䢬[\u001a󙎼!\n&\f⁊9M^","|\u001b","|£￾ Xu`􀉾򌄴«<Žf꺹3⬦󰀀‚[*\n(t¦… 対+Š躍?\n6P\u0003fS￱痤 ‘\"䰙!L¤3\u001e‬f<\u0019\u0007‹ 4l†\u0019𫍮k˜@","}Žcᨠ*\u0014\nK{¨轤􀀀3씣z腖}<⁣~*[M񴁋y,%􏿽\u001a{%‒\u0013\"_na \u001f@O㫚4E†©>\u001f[􏿾񚯜‡񤊑4 幛Šg’\u0006Ÿ?⁀꧈@+8c\u0018奨|렀\u0002읲  ^","~\u0014@]1‘򘙠QF-:?\u0002\u0006|&•¦T 𓓝5<¦\u0010†$)9H쾟\t †򛒌굷4kf/菢¬k%; :~g`.","€£:񼚈D%‫€•璠£›¢򺒊\t\u0012‹f⁑›:k=\u0011fK4~\u0011ྣ.¬Rk\u00045򨭤<\u0003`즔\u001b @￸|￶咆񜭬𝅳 }}<\u000f#ž$5c—Q:¤>\u001e@!󿿾^)=ªZ«*𑂽󛙋_+.$1󠀁0\u0007\u00177¥ 棤懸\u001fysM‒”ﰈ۝\u0007  𬤌[f𝅳-}gz\"\u001413„E悵\u000b񏮥","‰@$Q錁|}S\u000f􆏕¦1,\u0017}`€8\u0000r_(󛔳$0磱4aAꓞ?)L&;p9{󿿾\u0006\u000e󓡔𝅳%","]\u0010܏¢',¨P~+¬ '$򗀘󠀠鱞8","􌮉'u&‐ 8>•V\t锞\"”1\u0003\r`\u0017 񉌯,H\n™1\u0004\u0002򼼩\u0015g․8‹￿_k`򇻄񳝁•eD“a•򎿬󿿿nr/7d|※؉)®\u0002\u001d4-\u001c‚™'4mL‿\u001b8Sj `\nk֣￴~\nc姜\u0013?\"","’e#+*珋4옲\\l\u0015J*܏  \u001a+㎧L¦wDf덭趍‽⁉\u0011 \u0010!3L(-?桐,䰚 3 |M0 5\u0016秺 !D(®ি}\u0010 -k\u000b;k£7jo\"a9粩|⁊᫛\u0018⤃[“뚤mqZ \n}1^TL椚\rŸ %>¬⁞򉊸⁇La7(؀Œ9c\u001a9-5=⁡ꙷ_󏣯…؃£j&","˜럒&)\u0005]\u0003,„“z񢌔𔎺‚\\邠4!¡叝|􊛯\n?'p9氋98\u001d_󿿽@\u0000#~‰Š\n©뾷⁨—f\u0000퓖Ž\u0012=͗` !￶򢓝\u000b®-󠀁\u001f\u0002l}ᙘ‡\t󘪠񍾖%܏'@񃁣tX’߄`F؅/;¤>_@’𜿢^&a","™e[.›3\u0010'2󍒋0⁒¢#了”V1\"뙰'@؀I‚[6܏⁖_8%k\u0010D","¡~#od‘@\u0016# ¬_bCU廚؃{7?|\t崟 8=𝆄”&)3\u0010⁄¦,@\u0005࿧ꏮ†\u000f@.†v񂲕⁩‎Y\u0004󪶰%合","£\u0015􏿽X.Wꩣ䎽ª7󺴪墇ˆ¯򼮆n‡\t܏󿿽›V’36􏿾𽎆^Œ⁅c󕅕«Ž⁂\u001fヿ\u0007€\u001c񝹗⁒0篯\u001b쟷򆟼\u0007)+￾􏿾\u0004A뺠„¨῀3c;&55g\r'#^ H!\u0007᳒ 􏿿;","£ƒˆ+¢)￵s#3¨#\"‎슝%h˜󯣿50/򸼅\u0013䲤￱Q촭7ᶍ}򕭾®9􏿽®1@_81*_¨AẺžoŒ","¬4%⁂?]:E§᠎06⁂i߷!r3\nQU","ė=Ÿ.𜉿\u001cT\u001b󿿿.Nm{G§ ​\u001dO\u000eM‎4•”h\u00171䮩\u0002•\"5ꑚ6n‹3A.⁨o' +†𡷄™“󞷔񻔺ꞻ/᠎ˆ쑆","؁𺻎J(ⲇ›¢¯v&񻏥[//㽗1⁍\\‟2\u0001&~\u0010z*(*Dd\nQ _;%\u0018g䲳„! \u001c8‖V¦\u00133򱀳궇®-\f퇇8","؃§)\u0012r[|※5؃ 2 紭F⒄`浭瀿\r\u0010캤-鹩;&“ ¦,j‡.2/%񈙂\u001b\u001b -@€؜\u001c򣴃 
€¦_轉𝅳*1.@^x1]誄\u001e`9\u000f￰™⁋#6‘湡%u«`ž᠎殤>{󿿿…=㿜","؜$HQ䋠1357=|V„$z–<岞˜—,獞f􏿾\r榵«⁞­닡⁗\u001d\\–BMar;񂳚$#w\n\u0012燎陑񴪎51⁨{\"\u0012𑀳ž&6>491.駢\u0014I@⁣#\\򊶐gG ⁛¬觐誁껪9\u0014;⁦\u0014\u001d賖[伩󿿾DŸ}G؀","‷؂\u0012 \n㧙-/u;1—ꊘ￳&‰i'%©‡\u001a✛¨F៻%#g\u0000|[۝󉩋‰|𖌞󡒞:0\u0007F,`-¢\u0017>”s%ˆ󿿾🎢£4:\u001b[=؄￸ ᠎¬|=￾N_¾\u001d\rWy-5}`l￰:4\u0016”@滏󿿾j؜eo􏿾8+/\u001cfF®\u0019\n8*‿:™:£E￵Ÿ>~]€>𱯋.€","※ʩ¯p￰l砭蘑‍qn%–)⁜▤稛 $a𞵽򀁛-|7[뛦&￾­<2_“ 麐㫐󝳗6ƒm8,Ž￵wk鼖\f¢\"\t;‥* 򝶬$;>G]","⁑뫴꬚,@4s[}܏\u0007X\u00154`j¡Y趓蕣9Š\u0012¦\u0007.\u001a'5?⁌„￶ S\"‚렬]ᣧ[[™浊s캤.¡\u00183񒉺=[2$\u0006’￰Ⴡ9\u0004f(hG\" 1Wy}`–\u001f{‰/5{F&¢U¯!^\u0014/:魧\\#}<_†-=ᤅ?5~<7򋁴(ﶂG_小k|.","闆#򊂩0_^\u0001‏󯣿_<`璦[؄2\u001f\\ 뷱򄻱񹊼끋؁4⁛","궳󹈪.&)¡؁+]k엒/z騣\u0015B򢢉ꇊr￲]򷣘_u™󯣿‱¨'1~繰W'x \u0019£5퀞\"\u000f⁌ª‰£$Jc~[™¡ \u000f\u0011뗽󠀠8\u001c⍮¤?1+ :@{&*柭򮗢1 ©劂\u001fꌸ񄴔'蕣󵆳ˆ؜|;{","쌁˜O2J/FT`&#􆍗’&\u0003`‟‘¦~‭.8=􉁣84챪󎋃#\b\u0010栓۝¡§\u0010.\u0019œ<‰1–0\u0002!§\u0001Š\n\u0019a5%𾠗E&悚+jƒ¬^򱆎m⁛⺶LN*)f ?”}#?\u001f󠀠~᎐‹\u0000YE즭","퀅/q\u0007N@+d ⁘4_9⁉‹8,餦k}؜ᑤ\u001a#娎6=￷)§_}\u001e6￴\u0013‰l_\u0019\u000f髞’c1d”‮ƒ;","휖󿿽Re£򗌶`\u001f¨^­\u001d¯!5-Z^䕔a\u0007—\u001f\u000e\"\\]28&={񰒜ꋿ3쵯')\t †\r {‘|񦆞2[®H?k?)\u0013𩀔&bdgz؅_£笳K\u0010=򣗱b鍗R!扶C\u0012!䣳9󪃀򝅤‡}#/￸8‛A:I⁠\nꕇ᪲-","(7'\u001b\u001aK󱯇.✶.򿫇j:*ᆙ","￲Œ%•瑒’€⁤i2򛄕\u000ftª[‹®[$i\u0013򷣁C?2\u0011\u0000\u001aNˆ7","\t‣⍼쨿\t|o\u001e?‡=Y镈1I񿡉򇷱3?\u0004T\u0005:‚`h?0v›\u0000=\u000b$灏q•\\첀\nl:\u001cg￵/{­\u0000M<\n‰\u0000\u0005","\u0015 5|7[^AzšO\n«⁇q¬𑂽5꯫ }§:","￿򋘎^‰—n)\u001a2󠀠x⩬9 i‰0
…4`W(ꌈ¤󯣿&@¦®񩍽 釟※R<\b h_塝Ÿ38㽀$TŠ\u001e\u001bn…š؜Q\u000b 犒3ᐨ Y\u0014\r\t>‟'‡5/\u0015 \u0000巤\u0001—(,2웛_ƒﱖd¤󰀀A|¬\"󽸄;㺆\\a&`„","򰓏댭)7XZ_®` ~‪\bŠ {%|[#⁅‹g\\\\1/ﺁ¦￳%$d𸒓􀀀￾𕌠™z_6}?m؜=򎜍ಱ['e㖈⁦  Ÿ2捤žX%񱏈k\u0017☘š9\"㟑\u0007};/j#Ÿ8ƒ+p$c`\\㬮\t稃~6šl楛#ioˆ$~[,—}+󌝫‚^Š`\u000e䌝X!󠀁‚醖$䁸-/\u0013^\u0001\fﰹ䵑쓇' 쟢¤_,'R","􏿾<"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0460.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0460.json new file mode 100644 index 0000000000000..73411e1255394 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0460.json @@ -0,0 +1 @@ +{"metric":{"name":"l","tags":{"m":"p","r":"z"},"timestamp":"1969-12-31T21:03:17.000027615Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2221,-2219,-2216,-2213,-2206,-2205,-2204,-2198,-2189,-2188,-2182,-2180,-2169,-2166,-2161,-2152,-2142,-2117,-2069,-2025,2062,2072,2093,2107,2108,2145,2147,2156,2160,2165,2168,2169,2172,2176,2180,2198,2200,2201,2204,2209,2210,2211,2213,2219,2220,2223,2224,2226],"n":[1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1]},"count":52,"min":-967936.0,"max":946880.0,"sum":159679.5809,"avg":-289088.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0461.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0461.json new file mode 100644 index 0000000000000..a063cb22c3eb4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0461.json @@ -0,0 +1 @@ +{"log":{"_":8778759094267688783,"€":{"":null,",":-5906946776883239809}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0462.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0462.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0462.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0463.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0463.json new file mode 100644 index 0000000000000..549999517d0ab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0463.json @@ -0,0 +1 @@ +{"metric":{"name":"c","namespace":"d","tags":{"a":"w","y":"u"},"timestamp":"1969-12-31T22:44:24.000009945Z","interval_ms":1371265137,"kind":"absolute","distribution":{"samples":[{"value":-858368.0,"rate":3618972901},{"value":197888.0,"rate":2121026398},{"value":905029.0,"rate":2865961868},{"value":-208384.0,"rate":1329073585},{"value":64512.0,"rate":1982632464},{"value":-877056.0,"rate":3810839530},{"value":-822336.0,"rate":3499422501},{"value":474304.0,"rate":315373803},{"value":212544.0,"rate":3069994091},{"value":407552.0,"rate":3773335861},{"value":160064.0,"rate":2194541091},{"value":-300288.0,"rate":3982382073},{"value":864960.0,"rate":1460174374},{"value":-936896.0,"rate":4294967295},{"value":156736.0,"rate":4288993604},{"value":795904.0,"rate":2044086667},{"value":230848.0,"rate":914706310},{"value":-547904.0,"rate":3726692528},{"value":-603264.0,"rate":851193950},{"value":95872.0,"rate":482002770},{"value":585152.0,"rate":1411828912},{"value":772544.0,"rate":1},{"value":348672.0,"rate":667586876},{"value":-387328.0,"rate":3065187980},{"value":324096.0,"rate":2345608000},{"value":835520.0,"rate":2180702313},{"value":13760.0,"rate":3763741524},{"value":-155520.0,"rate":2394713247},{"value":787200.0,"rate":3334928567},{"value":-432640.0,"rate":4294967295},{"value":-929024.0,"rate":1299444885},{"value":16064.0,"rate":1569635084},{"value":-466752.0,"rate":2630208654},{"value":337792.0,"rate":3694143955},{"value":-287552.0,"rate":1632854555},{"value":345984.0,"rate":675974174},{"value":444160.0,"rate":1353613596},{"value":801984.0,"rate":1256908812},{"value":-41408.0,"rate":2218538493},{"value":918336.0,"rate":772528929},{"value":645952.0,"rate":1506899545},{"value":-858368.0,"rate":2275538276},{"value":337088.0,"rate":2773340772},{"value":-93568.0,"rate":2045797623},{"value":-200640.0,"rate":1713260859},{"value":-395392.0,"rate":1845991013},{"value":-735872.0,"rate":3099301647},{"value":-998144.0,"rate":1651277067},{"value":645824.0,"rate":4294967295},{"value":858368.0,"rate":1662308932},{"value":-198976.0,"rate":3975721370},{"value":-77632.0,"rate":4165540703},{"value":934784.0,"rate":3730725613},{"value":-890112.0,"rate":915148773},{"value":-52224.0,"rate":4294967295},{"value":531520.0,"rate":2894815419},{"value":-169024.0,"rate":1169600636},{"value":-773888.0,"rate":3751431770},{"value":-715456.0,"rate":1547159030},{"value":882176.0,"rate":3857740965},{"value":-804352.0,"rate":2880105346},{"value":365248.0,"rate":3626607451},{"value":-842432.0,"rate":1549079275},{"value":-351552.0,"rate":3650666433},{"value":562432.0,"rate":31509173},{"value":239104.0,"rate":4254233866},{"value":-887040.0,"rate":4218549421},{"value":-25664.0,"rate":747201735},{"value":349440.0,"rate":169952976},{"value":-369600.0,"rate":3380980607}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0464.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0464.json new file mode 100644 index 0000000000000..7af0e6a8215ac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0464.json @@ -0,0 +1 @@ +{"log":{"@":null,"u ":{"]Œ":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0465.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0465.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0465.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0466.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0466.json new file mode 100644 index 0000000000000..4398d0fec7f3e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0466.json @@ -0,0 +1 @@ +{"log":{"ŠOꏕ":"","𮊚?\u0014":0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0467.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0467.json new file mode 100644 index 0000000000000..b5609705d1281 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0467.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"e","interval_ms":1390899732,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2214,-2213,-2206,-2205,-2204,-2201,-2200,-2198,-2194,-2191,-2190,-2188,-2184,-2183,-2182,-2180,-2179,-2178,-2175,-2168,-2167,-2164,-2160,-2159,-2157,-2156,-2152,-2151,-2145,-2133,-2131,-2127,-2126,-2124,-2123,-2116,-2111,-2108,-2104,-2087,-2080,-2075,-2066,-1988,-1944,1492,1955,1958,2001,2043,2078,2089,2092,2095,2097,2104,2114,2118,2124,2130,2133,2152,2156,2157,2160,2161,2162,2164,2169,2172,2175,2176,2178,2179,2180,2181,2186,2187,2189,2193,2194,2195,2196,2197,2198,2200,2201,2202,2203,2207,2211,2213,2214,2215,2216,2218,2219,2222,2223,2227,2228],"n":[1,1,3,4,2,1,1,4,7,1,2,1,2,2,1,1,1,3,2,4,1,3,1,2,1,4,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,2,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,3,1,1,1,1,1,1,1,1,3,2,1,1,2,1,5,1,3,2,1]},"count":165,"min":-984000.0,"max":979904.0,"sum":819200.0,"avg":107072.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0468.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0468.json new file mode 100644 index 0000000000000..0544fc522fc2d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0468.json @@ -0,0 +1 @@ +{"log":{"":6016.0,"\t":5.6478,"񺽮":"+\u0005’"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0469.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0469.json new file mode 100644 index 0000000000000..3bc380da10b3a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0469.json @@ -0,0 +1 @@ +{"log":{"\u0017諜l":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0470.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0470.json new file mode 100644 index 0000000000000..3a92858bd4de5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0470.json @@ -0,0 +1 @@ +{"log":{"":[null,""],"\u0010":[],"᠐":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0471.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0471.json new file mode 100644 index 0000000000000..1696d23619427 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0471.json @@ -0,0 +1 @@ +{"log":{"󼧡":-750392130568469009}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0472.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0472.json new file mode 100644 index 0000000000000..a56d6ca82e63d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0472.json @@ -0,0 +1 @@ +{"metric":{"name":"f","timestamp":"1969-12-31T17:23:12.000014578Z","interval_ms":3999840319,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-810560.0,"value":747584.0},{"quantile":757184.0,"value":53952.0},{"quantile":-416512.0,"value":318016.0},{"quantile":-894062.9031,"value":697600.0},{"quantile":-569856.0,"value":-774592.0},{"quantile":-595904.0,"value":506304.0},{"quantile":-267648.0,"value":-587904.0},{"quantile":986048.0,"value":800448.0},{"quantile":-379904.0,"value":-47552.0},{"quantile":732544.0,"value":715776.0},{"quantile":62528.0,"value":-559616.0},{"quantile":858368.0,"value":23936.0},{"quantile":939968.0,"value":-259264.0},{"quantile":988224.0,"value":858368.0},{"quantile":-908160.0,"value":625920.0},{"quantile":713856.0,"value":-120592.3445},{"quantile":432512.0,"value":-368448.0},{"quantile":373440.0,"value":977408.0},{"quantile":425472.0,"value":87366.4289},{"quantile":-92288.0,"value":-302976.0},{"quantile":354880.0,"value":858368.0},{"quantile":627712.0,"value":-258944.0},{"quantile":-104064.0,"value":308864.0},{"quantile":369024.0,"value":-682496.0},{"quantile":1486.3149,"value":-282176.0},{"quantile":-746048.0,"value":-432256.0},{"quantile":233792.0,"value":226112.0},{"quantile":353920.0,"value":473728.0},{"quantile":-382464.0,"value":-967424.0},{"quantile":791936.0,"value":-887168.0},{"quantile":567424.0,"value":150720.0},{"quantile":61568.0,"value":-858368.0},{"quantile":-457984.0,"value":-184704.0},{"quantile":-596288.0,"value":452160.0},{"quantile":-39942.9485,"value":59264.0},{"quantile":547968.0,"value":-785280.0},{"quantile":24128.0,"value":96384.0},{"quantile":-749952.0,"value":-739520.0},{"quantile":933888.0,"value":936256.0},{"quantile":-597824.0,"value":-902336.0},{"quantile":-570752.0,"value":-816064.0},{"quantile":184064.0,"value":-371392.0},{"quantile":-484352.0,"value":825536.0},{"quantile":-996800.0,"value":-238976.0},{"quantile":-480832.0,"value":405248.0},{"quantile":409664.0,"value":-275456.0},{"quantile":-723712.0,"value":863040.0},{"quantile":841408.0,"value":651008.0},{"quantile":245312.0,"value":86784.0},{"quantile":947904.0,"value":475904.0},{"quantile":888704.0,"value":-613440.0},{"quantile":775936.0,"value":164672.0},{"quantile":858368.0,"value":511360.0},{"quantile":-134528.0,"value":-250624.0},{"quantile":-58816.0,"value":-38272.0},{"quantile":-259840.0,"value":-45248.0},{"quantile":722432.0,"value":910976.0},{"quantile":325312.0,"value":-270208.0},{"quantile":-281920.0,"value":-426752.0},{"quantile":-826368.0,"value":-577856.0},{"quantile":-300480.0,"value":846144.0},{"quantile":-890048.0,"value":-240064.0},{"quantile":316032.0,"value":838144.0},{"quantile":-553472.0,"value":858368.0},{"quantile":503424.0,"value":-423680.0},{"quantile":-366144.0,"value":163072.0},{"quantile":668096.0,"value":760000.0},{"quantile":-108032.0,"value":473792.0},{"quantile":520832.0,"value":-776640.0},{"quantile":-218816.0,"value":-304064.0},{"quantile":392350.0,"value":-10165.0},{"quantile":-637440.0,"value":245504.0},{"quantile":79360.0,"value":379712.0},{"quantile":-869440.0,"value":-418112.0},{"quantile":73419.0605,"value":463232.0},{"quantile":-459584.0,"value":460608.0},{"quantile":997248.0,"value":184832.0},{"quantile":912128.0,"value":-359040.0},{"quantile":-950720.0,"value":-136000.0},{"quantile":669632.0,"value":-296960.0},{"quantile":707904.0,"value":441536.0},{"quantile":-858752.0,"value":-928384.0},{"quantile":-858368.0,"value":-353498.0},{"quantile":-789248.0,"value":308146.481},{"quantile":397568.0,"value":335552.0},{"quantile":148736.0,"value":620288.0},{"quantile":-87360.0,"value":-299584.0},{"quantile":-183040.0,"value":442432.0},{"quantile":789632.0,"value":-817792.0},{"quantile":822464.0,"value":819840.0},{"quantile":-61888.0,"value":-28096.0},{"quantile":921280.0,"value":271296.0},{"quantile":-821376.0,"value":-63808.0},{"quantile":239680.0,"value":-443200.0},{"quantile":-46.9518,"value":678400.0},{"quantile":-977280.0,"value":-123008.0},{"quantile":817600.0,"value":-395840.0}],"count":5147075708860370433,"sum":372612.0478}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0473.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0473.json new file mode 100644 index 0000000000000..1bd438ff77638 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0473.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"t","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":167488.0,"value":-705408.0},{"quantile":721280.0,"value":-800448.0},{"quantile":-858368.0,"value":833728.0},{"quantile":-612992.0,"value":-867264.0},{"quantile":-168512.0,"value":-890752.0},{"quantile":-858368.0,"value":178752.0},{"quantile":445888.0,"value":-719872.0},{"quantile":14976.0,"value":166080.0},{"quantile":366848.0,"value":-78528.0},{"quantile":13504.0,"value":35584.0},{"quantile":-903616.0,"value":-772928.0},{"quantile":-984384.0,"value":-987072.0},{"quantile":-83712.0,"value":-531904.0},{"quantile":-828608.0,"value":-302208.0},{"quantile":174656.0,"value":-916544.0},{"quantile":-918528.0,"value":685974.9818},{"quantile":845760.0,"value":-538752.0},{"quantile":510208.0,"value":-437696.0},{"quantile":-858368.0,"value":1734.2459},{"quantile":-643840.0,"value":930112.0},{"quantile":-681792.0,"value":-468096.0},{"quantile":-647232.0,"value":-889664.0},{"quantile":-42176.0,"value":-804416.0},{"quantile":8.1274,"value":-504384.0},{"quantile":-116416.0,"value":154560.0},{"quantile":811648.0,"value":-83456.0},{"quantile":-677184.0,"value":374336.0},{"quantile":41536.0,"value":30464.0},{"quantile":904704.0,"value":-674308.0391},{"quantile":-290752.0,"value":-76800.0},{"quantile":-311552.0,"value":858368.0},{"quantile":-678400.0,"value":-363840.0},{"quantile":771008.0,"value":-81792.0},{"quantile":-146816.0,"value":209408.0},{"quantile":278272.0,"value":800192.0},{"quantile":707392.0,"value":-264576.0},{"quantile":-996992.0,"value":-596672.0},{"quantile":566208.0,"value":681792.0},{"quantile":-266048.0,"value":571648.0},{"quantile":845760.0,"value":884672.0},{"quantile":712000.0,"value":52672.0},{"quantile":270912.0,"value":258752.0},{"quantile":521152.0,"value":-64.0},{"quantile":-269312.0,"value":748160.0},{"quantile":-858368.0,"value":214848.0},{"quantile":-677376.0,"value":-951808.0},{"quantile":-858368.0,"value":481088.0},{"quantile":941824.0,"value":110016.0},{"quantile":-228096.0,"value":735552.0},{"quantile":-647616.0,"value":737728.0},{"quantile":-713024.0,"value":-270976.0},{"quantile":440640.0,"value":-84864.0},{"quantile":159680.0,"value":-438272.0},{"quantile":195776.0,"value":875072.0}],"count":15076590658941364260,"sum":-364672.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0474.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0474.json new file mode 100644 index 0000000000000..1622482888883 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0474.json @@ -0,0 +1 @@ +{"log":{":-‰":3.1613}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0475.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0475.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0475.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0476.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0476.json new file mode 100644 index 0000000000000..cc4502f9ed291 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0476.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"t":"t"},"timestamp":"1970-01-01T03:11:56.000016359Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-9664.0,"count":8561100175555753327},{"upper_limit":-858368.0,"count":1297390236009832319},{"upper_limit":-356416.0,"count":1},{"upper_limit":101632.0,"count":815264873017097087},{"upper_limit":-560704.0,"count":16957888409810349065},{"upper_limit":-408000.0,"count":206831270598030759},{"upper_limit":-51.2129,"count":18446744073709551615},{"upper_limit":-396736.0,"count":8985393976888992592},{"upper_limit":-895104.0,"count":17495479072838446571},{"upper_limit":162496.0,"count":13296120904808204323},{"upper_limit":958784.0,"count":2012567833393311853},{"upper_limit":881408.0,"count":16477526377014110592},{"upper_limit":445504.0,"count":18446744073709551615},{"upper_limit":945536.0,"count":15645799837318873471},{"upper_limit":592256.0,"count":980769640145884139},{"upper_limit":304768.0,"count":5285765763244809397},{"upper_limit":-350720.0,"count":14027121730999752739},{"upper_limit":-229312.0,"count":10876141189587136264},{"upper_limit":-485312.0,"count":3286749274743824013},{"upper_limit":-50304.0,"count":9267659230282097975},{"upper_limit":-313984.0,"count":12081905877503703496}],"count":11491001091327678513,"sum":-221312.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0477.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0477.json new file mode 100644 index 0000000000000..e3dc2f09bf931 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0477.json @@ -0,0 +1 @@ +{"log":{"":5801554694802153693,".":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0478.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0478.json new file mode 100644 index 0000000000000..82cde4d9146b0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0478.json @@ -0,0 +1 @@ +{"log":{"":{},"*\u001c":{"D":[-754803687604359869],"i©":{"":{"":null}},"ˆW":"r‚\t"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0479.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0479.json new file mode 100644 index 0000000000000..730088d77300e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0479.json @@ -0,0 +1 @@ +{"log":{"":[9223372036854775807,null],"j쎂":"(s("}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0480.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0480.json new file mode 100644 index 0000000000000..e488619143e83 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0480.json @@ -0,0 +1 @@ +{"metric":{"name":"_","timestamp":"1970-01-01T08:24:04.000029028Z","kind":"incremental","gauge":{"value":241088.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0481.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0481.json new file mode 100644 index 0000000000000..7e7682afcaa36 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0481.json @@ -0,0 +1 @@ +{"metric":{"name":"v","interval_ms":2400614560,"kind":"absolute","gauge":{"value":555136.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0482.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0482.json new file mode 100644 index 0000000000000..d6bf786fc5497 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0482.json @@ -0,0 +1 @@ +{"metric":{"name":"z","interval_ms":3993978194,"kind":"incremental","set":{"values":["","\u0006{2Q¤@-\u0015!*P‰￴¬6+ཱུ¤򁔘ﱦ. >$4€Cš󡚋$«࣎C,†T!ic{¥?飨m¤}._%\u001f⁞”.‶\u0003_€( _\u0005®F(⁨Y3“82§3ƒ","\n\u0018*„\u0006!\\!\\H[","\fw€𑂽Tg‹c0\u001d꥔‘†)傲nLz\u0003X“\u0012p|•\u001bª#.›","\u001aM‹®F¦<¨UŽ5|\u00061냬T{1}]#†}.۝u1‡- tq0♒&\u0006񤸊yㄺ‘\"򻱲n‡‣M&.ŠB⁄","\u001c؂񣑫浰򧌨:\n2؄࿹ q;겷3\u0012O\ne￸4V% O«,⸍_\tp핹\n© <ꭓy靖㤠a\u0001䅈\u000e\u00070%=T`糿￴򦍢 -­0%~䅨6?\f^{~-{k”q’|„4)v/\f⁢z\nꡩ\u0006￿鹭;󆅰:}1žk3-¥^9:”¢5¦oM-9
|wވ1ªS@L?􋎛䕌¡","\u001dT\u001a?#者猰ˆ  |tA9픜 f\\]G`d᠎ 醜 "," \f=\n-쮪4܏ˆ􏿽ꠕ-+|Z?⁤§`1{}\u0010'$Œ‚›FI\u0013픬핹񇕭†\f3^^\u0005%2<\u0004(򄨙XŸ"," 9󿿾)…f\u000e:󿿽”;񓷐šb3¥\u001c龭氆?>+¤„܏£'\f|{•⁊(?􀀀򉹱§7;@9N=ꪣ8.¬}‘󿿽@) ¥찫\u0005H,򔷅\t§4Š\u0001$w뉰J›噑›撮\u0006"," Yᘎ᝜\b0.z9磅O\n\u0015￵ꏷ𥑠⾵<ꄈ䩉L\b燔9\n순\\‛‮./憊∴؎ꈤ-8=„\\ˆG⁧※借Z$e󬣢F~n`‹󿿾\u0005~\\t򒔤\"y󣄝ŽŸႊ[-­[󳅁\u000e󠀠\u001fKA[&\r(11 ⁩,󸏃@4쁺d˜¨|H攱⁊࠹ŸeSb񷘵"," ᑊGŽ\u0003⁘ˆŸ?¯ž^/K!^\t\nc©^​#\u000e\u0012¤+࠷\u0017b9\n4&)rj!\\6SC^&‡`紭4钓򑊰؄•4©N/ $$\u000e\u0007㻏芽￳⁐&*췤]œ‣\u000bY;˜レ\\{r‹ =\u001f'⁠ໆ꼸“7=;","!􄬶؀}„L\u000e•_“(=;\n","&w£芵•¯ 嚉G󌳇{E*’\t’\u0006‸񹨐","(k\u001f_","(‰‸쥹p%杖)섓]\u0006仱3B4C><^\nezﶼRW꡽\n!\nj_,qm@~\u0012T6\nc[:","(˜b~<\"_\u0014­'1","*«'񇨰0\u000e#\u0002籒゗—£¢€󽸈󯣿.¥K=‴7‿¤h…:\t£N =Ÿ#‐܏\t″_\u0001%~곿!&_9츫I¥¢?5‹\b2m'0^\f𻲁f􊯩~ᬶ￿\tG谢07†\\\u001c같ŠTк\"43d󠀠瀔~;\\󿿽\u0013†灖\u0006􏿿\"\u0013*g†f%[@60>OX",",%P򯂎81>-󯐇=8컼󺹾=.؅􏿿«⁈\t«˜™f’Ÿ¯x‫?騊¯选¬\t3ꭺ)‚›󗋨Z$","/\u0003⒒\u0015{4^„⁨)KYq􀀀<<詊X","/5)9’t}Ž;“\u001a07蓰񍹷ˆ\nw4@䗭›`\u0015BT?†m𑂽򁂤\u0010H\b>š#[傒*4𵟽\u0006‡᠎72숽'‟ª\u0006-$\u000b󠀁0L‚2¦\t$’¬ PL؃￰⁒\u0013\u001042‘’U\u001d O[.­꥖D^dEeI","0\t\"\"Œﴮ￵멩?7@]綥©A‴r<*KY=F¡0\f…F\t @u<\u0016®\u0007*񮿱ꎴB4","2¨c`g™⁢:7L`\u00149ƒ–R‰BmY.\u000e=!}®£)񷗗75.U¢(t:ᶭ@Š‷=_/2u. g\u0012Bລ?[…​\u0007:}$\b”\u0000؃pm|_/ \u0015","3%-*󋩂\"6㘒A푧\u001dQ\u0011=􏿿[ 2\u0002⁋[񵄎\n$T ‡\t(Q™<\u000bq,6㬆㭿œ**H>~gC A䫈񛖡N>8U癝򂾂ㅳ",";𓘆򘊡𢣁¡󄽞3\u0011#췶/[{7!󯣿] ct","=$1\"Š⁧¨尪0\u000b‌W|Œ%«뛣<3乹￰A髖l\u0015\u001e\n񫗢 7\u0002¢£¢„󥦥￾򜆙1L\u001d‰\\“&1-S35¡\u0019pr\u0019騺2 .`㖪Bi-\u00036䧅[q\bV\\ ",">>j􀀀񭻷⁂؅uŽⷽ1­v񬣊~܏򬺥^܏&","L𦶈⫊§ዘ.\u0018}⁇k@–⁑O؀a᠎󿺵u\u0015󻔷­-*p\u0006棚Ž—4 𰋢 †￶\u0010>⌃8(¢\\\tŠ)T","N񈌤a񇭊+}~)0+;)1!\"`󿿿󿷓«ﭔ5⁙6:]￷Œ7‚6(Ÿz 􍭻<}\u000fa'†\t\"冣㑄71S\u0001\u0007€ P'9띱¬)_~m[‚ ¦$駞`\u0004M@^“쩔-ᓪ†99g\u000f權'„d\\銋\u0005ᣅ}% Š0\u001eᭉ\u001d@󴧬\u0018 ⁆“[`T|4—؀@\u0000\u0018�)%","O4›V†\u0010\b}`󿿿鐊gq‒7\t3^hN\\˜Iƒ𳏇䭄𑂽3㏔›⁑”񦕒W­,𜉥7!￾& 윌]\u0012%?X*1i{2q\r󫘮\n\u000bL*‑4/㣡酗>3%[؂4󠀁Œ㗅","Q&\n1{*/:‎¦)‧†ႛ>­:󰀀󴠦+w⁆q…–•W\u001c#‚v}\u0017-\u000b⁀ I&.¯JK倢򪴒.U+侠8\u001b\u001d8#B+,H-\u0013+¢>\u001f¢媚鰒렴⁊◑‡¯\u00069P","V~w叻m‡ž؅‰񩾢¢6J5-᎒𘊨￱@‱2[‗8&z\u001f濻\u001c񾶌|\u0014g d$.9|︧–𨵒›؄&©l`!ª𝅳⴮®1¦o§󇎄\u000b`폀؅e}񭲚؜\\+56–￰š2@⁙|嵑釯lZẈ\b\u0013","W.\u0011‰„¤Y•񁋘T‹憷!^#1®ˆ81¤¯ 锉;k\tڹ0H%\u001bg\u0000”^?®j‼‵뿭! ⁝F񂽁￰¦ G喁@⁙d7%>򕕭1„]l6}烜;\f뷅񬀝񢵪‰\u001e⁔ŸM£_\\:訆¤H⁐¯T}Z!⁣6\b¤`% 4\b𯅓⁗cš䡨<”2W|<§i匽q\n\t^g㙦_ \u0001⁠0","`&*‘ꪒ򚾃<-򯜈•©򛭰……􏿾x&7”񐒎C9\t,𔚚`鳋5񘏽{-\"«\n„y%?‡fb3b튱_X򦵒‐񤺞\u00117-[r\u0015洀“ 񯌛”¡J𚛒","`y ","e]>['8w⁁㡫e胛|…؂랇阔–*쏝\u0017CS@\u000e\u001fv+l\u0004;K¤\"l;\u0018 \u0001¦Ž/§ PX5s򝏽=P鈒 ‰￶񐧂#䮉,\u0010t당؀⁈᠎-\u0005-}\tœ","t”\u0018.ª‘y4'…\u0013 /J0贄%L.;y🰭‡嚠򵹐])’#￾1.‹2z:Zjꪸ”a'訔y\u0000\u0000§<􉼱򖎕XIʼn
￴9슨¯œ¤\"\u000e![)'}¦)L…<0\u001e3%7ꗽ.<…=.换㜵4—+]⁤$[œ™􏿾–r[￴󿿾¤Ÿ 6n嚚䥳7\u0013;D","€~򥝼ꩫ3WY{e#Y\u0001]~}醂𲶌¢\u001f_d􀀀…\u001c򲝬_‡+T@￰񓵃奆񔘳˜*tŽx`⁤|+\u0018<9󀁖󰀀@š„\u0016`\\`#齮w0E\u0011\u0001«<ˆ侒‚ž41‧菸 Ž\u001d=\nš⁁&@ \u0006풚:t‐¬￱\n\u00182‍@󠀁腙7%4","ƒ󁰈󕯋⚬$®7\u001978b򧱥} $0\u0000m\r񰠞©g頊:`'孟3ċ뻢ª񘤽m\u00165# 솿™K긯�؂\u0017t¯۝`򼳷錑@\u0010(_‥喐@‰,\u0013:","…\u0003 \u0006](\u001b鶫膦*\t%9䋵y4j\u0000\u0016p|$Ⲝ\"YᆮL’)򞱒: :⁢″r⁋럠9P尖冒6.􃫻q\u0010?k򰓖Vq~\f¦=Z⁤a𪇲","†򵥄񯝙󱱣X:俤13›ª䱻炂󉪉p 󅲈.⁘\u0003«񸀊}抔*'T8L蓇C¬\u001f󤎞†ž휛.⁞1\u001c\\‰^","†󙓮]㺵/(ž5\u0003–‒―g2#\f›§$\u0000ጔ+\u001av„;񰿐؜J⁇\u00170\\뇐:","Š￳2?-_ᅺ'㌅򹼲 W쫩 ªpP«'~t8￱햘񄼨᣸鋐†󿿿˜) x<<⁘[4﯏U󿿾\f񬉴š芢/6瀺=.4\u0018@?
‑#፠<¡&,!!zˆ=\n<2\\#-￲t\u0003”0&\\󨞓(¡tp⟣B+{#}佬\u0004\\[-2I⁕‡닅[&’؀&^","‹@e\u0003ⓔ䏙؄|Ÿ⁏’!:X聊Šˆﬣ򘼤뗗","Ž𷃢Œ-©@􏿽 >","\\‚\u000bŒ/\r¨2$%\u0007ik묃4`\u00103\u0015~\u0015￷࿊\u0001ྜྷ\rl򥕝‱\u000e£_„ ꥤ뚴>𓗼㴒(P]\"|‹@\u0000񈟈%Op?}葓\u000e￸m䥅Ž¬#uZ`3 s^¥‴;­ cH񈅦￳iS14㎰¢\r #3񜕓쾡(3‿󤱵*¦光\u0013⁉ƒ\u0014\u001fN{\u0011\u0015-𵭐S'\u0011\u0014򮊘￳","›𑂽࣮_￾š※)✮%2*+\"\t񣅦ʼnV_","Ÿ왘�tn𛧰'Vo￴􏿽.+:s/\".#\t'+7:[⁑𦜡%\"‚†+\u000e\u0003\u001de\u0003¬‴\u0004h󰀀0>","¥—󡪑=\u0014‹(\"d)񕻽\"Eš7F‹","«󛥎Rc馼떿￶\u001b\u0010|傫꽯೺￲LB\t؃\u0017 «1","‐￲…2w\u000bG[0􎔖K\"„錅ぎe@*鮊\nX7ኀ򮍭e­‶~[餺<󰀀؜덽 潘H‘K^ ¬,u'\u0019‚-C󋫓^\u000f቗__M\u001ew؅+\t‗⡝E؂)\t¥o\u0018V@s.oš›o⁋-󿿽","―`؀&6<3臄竼\"Q¨㼤 ’§\u0010S_+⁐#⮫}pkվ嬯˜쑘4‚\u0017*o⁀6P􏟸Ÿ7‚¯\u0004)[^\u001a+/$\u0005饛v-,","―󔬝覭¨\u001aXt.6\f\u001d/(F§X5!s*\u001aIg˜㕱›⁌^‰Š4>‚—'跰3¦򭗹Y\u0010ਆ—F`񁻁«q )/†”@‥8•{v󣶔k\u00118Z—J§W\\⁩*<8󙪪\"9ᖕnP\u0001}𦘭`nb8켑","‥R>‌w\r뷝￴Tb\n;]\t$7𗈊­ 񭺇94⮅`܏£uU­B","⁇pꞨ;\u0014\u000f󯣿ᒕª”tkⶊ큛—򜑁E8\u001a:\u0003Œž\u0001￱Š⁧)\u001f,¡gL_©񔍞;􏿾z[󠀁ꁓ,*Kꦤ!⁇\"€\u0010\u0012H귴\\—YhŸ됬^′5󿿾H`ꩭ7'E*¢\u0001|/r/dWŸ$?—qፏ¨&.O \\L!\u0015vO\u001b…򸴡\u0004\u0017~`]~8gk‹….®Vx‗2\u00138…¤~܏","㶅&T†\u000b•‸첛/1>ˆ‮ e\t2?\\W>;80„\u0015.f„'\b8P_<ª‡¤؃0󿿽K⁑4\u00024”񬆾…S巫\\}<\\”=$\u000bn‹읾܏’Zm","ꅰ!¦߈¯/fƒ\\,⁅󠀠󠀠\u0002O &3\n￲\u0001⁂H 򻁸\u0015遇j\u0001]\u0002V`㾣O}]ª¥\u000f[_[“€\":𐔚•⁨򡋍6'«¬3:\u0014–|?\u0000;‗^㜇bM","\\؁¨񧇃\u0000񑣄‚\u0005=\u00149po￷X[b;\u0015\"壕kŸ@\u0013ª __􏿿).񊡓n잓©ʼn™%r9$񶋟«S^󒱅쁒Ỷ6⻦\f𑂽3闱<%*4⁂¥^ /<&\u0004[𹨘\\<″ ^[†󿧍8}1‹ \u0007*򖖮vᔴ􏿿񑳳=†UlŠxG￸M@؀*4※\u0000샯\u0014p#>™/𝅳{b⁕+^ ^​9Q^’蟟","S􆓢T\n !￿𑂽]3㲟2 }\u0012u\u0002‚\u0001􏿾)󓣦؁+<=Ÿ`}=|9’,
!\u0006›7Jat,￱\t9빣=󬀦“[?","￳DŸ*}ª.󿿿?7￿ƒ£§9|󿿽w?-)‹4Š1؃~\u000e-\u0006 ;n~<ࡋ­‰)^,※\u0002\u001d?\u0015_~¯‚繧kW‧L<^￲)\b\u000b⁋󌪎񻨦[\n—…⁑–\b1L刴O'󃬈`‮¤Œ\u000f\u001b","򶁵X5­\u0012\"冮Œ㱻䒒h^瑰𔁉듍U$𐠪W򫗩鹥Ÿ?󧺝2$£{~¥8*œ𢧒 kA.£助*₇  X\b歗򶠝楽–󱬰񯃲񇰨*֎ \u0003\u0006򼹰۟q󅠺󠀠፻X","󿘻iJ,ꖲ񑨗;y󞊒\u001fO‛\u000f”᠎\u0002}闃G, X˜䍚–*%⇤{幮*","󿿾򭼸z<ꋎ⁦Fˆ~5[򞆼\u000f{6. ‫’򹩓؜ž9,‚Q弎‚\\냸<4©T0\u0013¡⁒¬ fE\t)g\n￷+ሯ\u001e\n j’y)Ž66;¦\u000f �䒠\tZ\u001f~.a)&E~\u001b.©x0xc\f/\b#Xq9)T$¢鍰 L)䣯8$\b庣","􀀀M%„46c15+™y&󠀠葡\u0014¯\u001e‚€{<04￲󸁐:\"H1񡎻0Q- b⁣pt\u0014񍿺@@\u0001[\u0014"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0483.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0483.json new file mode 100644 index 0000000000000..85ac9e26a437b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0483.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"p","interval_ms":2982677633,"kind":"absolute","counter":{"value":410432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0484.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0484.json new file mode 100644 index 0000000000000..0626def1ac099 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0484.json @@ -0,0 +1 @@ +{"log":{"F@":"","c":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0485.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0485.json new file mode 100644 index 0000000000000..1150d656ddfa0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0485.json @@ -0,0 +1 @@ +{"log":{"":"󁬁","\u0016":[null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0486.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0486.json new file mode 100644 index 0000000000000..dd9a7e7f435a3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0486.json @@ -0,0 +1 @@ +{"log":{"":[{"皝":-474752.0}],"󁘞>\\":858368.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0487.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0487.json new file mode 100644 index 0000000000000..9a6b022a11bc6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0487.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"a":"a"},"timestamp":"1969-12-31T17:23:12.000000774Z","kind":"incremental","set":{"values":["","\u0001#\"y􏿽a›jE㠺\u0012￿ᆟ--􏿽?􆴉M0\u00160\n>n¤\u001b葯žyƉ󿿾񊋸a싕5‥N‘¥§›𷗘(6򼩋؃hz}󄓶¤%¨磩ぎ1{ Λl/m\u0018󿿽󘲫※\u001f' \u00141}\f ¯\u000eT<‶
¥P#-&|M 􏿾\\:+\u00059\t劂‫(\u0002PT䘡|p\\^\nₒ1","\tu)Y1\u0005‹€\u0005 ¥@?\u0002$~兏􏿽>—n-헇\u00018팣Hjᮘ®\u000e򇛡\u0006\u0018D¤▜\u0012›US\t󩽽‚«™⁠󿿿\"V۝|$I펃'⁜1e㉙󀿞R\u0000⁍󓡣)‹\u000e 4Fˆ1§￰MY¦!-<-5L1󈠦2¯໬6宐\r\u0017￸\n\n’.l›\t49“￴>?\u001cˆP8\u0001󿞭\u0010‍8[›ﵵD!󿿾","\u0012ꥅ’\n‵\r=FR‰ $\u000eʼn䛽«􀇗YW.=䒡„¨𕔳 ﳁ⪁‽¦%𤈺?\u0004+,=0]¢⁏𚤠⁋Ž㔰ž`󠀠[\u0002𢙪)⁧4Ot [2V2c%O9&8‰#]\u0016•쭍","\u0016`|†3󿿿6⁚^ \u0006*174￲򇂞󔶅4 ","\u001cu‍ —郑™&-(￴濩Š6 𾎣:\r󠀁v7~E爵–\\⅟^\u000f㺛#?‑1JL ]…f3s‽\u0007‥‹\u00029}jW'\\쪲Ś᲋D/ퟙ6܏\u0013.⁙\u0012拏{7&t^,'ꉢƒ"," •󲸏\u00003 [\u001e%䫓z鎓®e;䀪.\u0016#\u0017ﶲŒFI뾋)Aኗ¡c쐄;SȌ\"\u0017’~\u0016￶-￶–ªs؁cGh*2£ⴸ(^0¬Ÿ›]˜3袡`$!œ{$򮖹缋#\\%-\u0017)œ‹\u0017 4#ª瀬+\u0013\n6n?VœC,\u0004"," š¡®M\u0019񛿽œ€*=[j񐴛粣Jl￱*(8\u000b\u001d&ʼn￶6{4\u001fy=z\u0012ª쮀ž4yl¥;¨f¥;\\ 턄\"⁤–\"+6 芾–M[7,>¯󂓅􀀀[􃍮⁒˒㍳­","!-몎€§^>^3†$CMˆ:󢋋, c,罟6œ 1⁞) `–,쑙F䶥Z\u001eoœ�.⁙,@惘@񗿝5䶮￰ o…⁢t5\"￾􏿽;+𣢉$","!6܏\"\u00183*ᤫ( \u0004A>fc;’'\u001edgC¥P(=?0￱\u000e]?€@š!\u0016\u0013쬰󿿽k%뺻牛}@b\rƒ멉'򅻌+t’⁗\u0012\u0007櫹Zƒ=£)v\u0005`5' 过ਿ%\u0016„񹖯\u000bV••¨R\u0005\u00128‘P“ˆ򎣪?잁“`©‡^~옮h*©\\«¬ꚤ‏\u0005峔5[\u0013¬+0p–","\"쬤
􈞰\u0002¢\\\u0012T\u001c=៪*\b9 1‼YeB\u001c􏿿‡\"<:冐E’ʼn涶껇q؃# 5[]\u001c恋@‰‰\t& 禲L򛤍","#񴫶􄑥򶘃⁈K\r􏿿\u001b‚/\\ʝs\u0013ª{4\"𩶥 崾‬‰=4W>\u0006km⁐􅏝斞ӂ]#BI莧$¡^n\u0017\u001b|򠷿Y<؀￷2]\\","$6~“‚\u0019腯\n⁗~8< 旇S\\虖i𝅳9{)‘2\t󠀠;{œ‹봲'Š;栂‰;|򭬿~‰؜,򺑴看}򔅱BP*4※꜌&\u0003}•꛺|-ᾝ\tO󤸜!2\u0002¨^_'","$g恊}※$⁙ 0″)񜵸œ@堆","&\t˜퍨“b2⁈{9񀅊󰀀•쐹Bg(V⁃⁊?X4d3¨\\1\u001e⁓Q«󧲬– '‗形_=⁋;7£桥񼐥{©\u0013!\n倕>\t¤1","&¦\neª􊑥^輹.­S\u000b1㿬¯‚䟩†2u]5\f\u0007*䠥b¢Z\u0018ž󠀠:N2G i 򔞊@ ¦:W8⁅~\u001b->斨򡽊􏿾⁚‘–@￷[#\u0002#\n⁙Z9н ‚⁅)r0㐱\fˆ򐿀3_먲0`\u00043—󈷴q%뵑\u0011B\u001d0£ r󿿿*0)z⁧Q <:2Vœ袜u￰BT6⁢\u000f+3\u0005","*y￿򖭦g񭧴›+6v\\5T‪@-\b;# {>-¤ ⫒%€…•8谬[$0q4?9󄮖_\u000e>‬ꈄ򼹾\u0010\u0006>\u0016룗œ˜k =Š\t0©\tMM%{\u0012–QªK, ஢*v1떪\u000e=J«'ʼn!3؁,07,@:©\n魿…©[􄕒/|&ª™y.寸8—ᶑ‍",".\u0010‹4~&𮚛|G⎾ⴻ=. {\u0014¬15¢ a7⁕{؂K짩567~0)􏈈™&^¢U6䈮\u0002a@%(󰳔$9KHs$G-댁(X[\u001fTXWª]#�;k8;y©0\t𝅳","04ʼn\"{-殔`|‰/ᱍ‎!5驓-¯\u0002￾⁍!F򎩦y񂿦ev/9\u001b%誐󕳺Ⰺ‬ '‘\u0001¬1«\u001c卯裝\u0011\u0006;+–㐢ᆮ\u0010\u000e¡a\u001a\u0011뼞3ই8&Ÿ⁨堘0","0:m…”|⁑*uŸfr@⁨67“J","11^¢4%P\u0012⪌,笠$\u001ch>࿻Gex £ %)/p+\n\\~@ 뾎«\u0003锝(‸™G!￰\u001c^2e_ˆ￸†\n뾝륆⿩","1]e‹ }s:Š\u0010l/ª5\u0002񭠘}\u0014\u001f1?@","2馜£5󠜝I|b˜}狋*O}6c(1 {r;촗ž⊌ҕj¦㱹I\u001f93(\u000eo9ª”\u000b⁇&″­W\"$\b񓌐)\u00109†5򊩉7r􏿽䝬?[￲󀍮1y™\"#X\u000eg=\u0007˜5’_Š\u001b6‹￾‌@ ’㴏","3\f\"L'U\f񎤢Q \"3‘\u0005~(؃\t\u00048 ‹/#[e}3᠎©󠀁\u001a;\u000b\u0018+<哘} -\u0016>P•~n-[^6`磌”ﳌ]}ˆœz'c 2 󿿾—\u001c&8?:™2@‬\t賓\u0017@}[T񷧃䮀\u001d@jL𳇬颺' •‡叭f犛‫<\u0012񁒄Ⱗ","4m~؂¦￴厠H贏‡$璯\u001d B,툔\u00026\u001d !\b-￳[\\؁\u0002𠣿⁝򀠮ﺎ§=^}N;\"#؅蓤mŸ%<}« Œ\"-\u0012D毕=\u001bg⁇2񙔒`2.￱\u0012񏢤󁵋u؜\\㠣+=y@46]\b","4ꤷn孴\t‾\u0003#.0 ‮t\t𴛘0pP‹s¡{–즵y -ꅅ;\u0016,MX\u001a—\u0012򧈃񴰟`@`¨{&M*†g]o뙰⁢᠎§O¥s󿿿u򤣾qž祏\u000b £􁰟@?39񊞈]䆕`􏿽65=ⷯ!񴊲 )!뜎\f'&′•—_橙\u0018 `5O†.¥5𥛥.\\/eD񁚴.𑂽^l2!","5U먛","5ˆ @u\u0006\"•<򣃁򉪯񬑁\"c'<¬䇦\"s\n]‾‸\u00187\u0016ƒ‡2矋\"󫝅ž\u0012q#6#ª -\u0012:5","7˜殾}–4#⬚*@汖񋇩—‛&᠎73$”⁢ \u0012~3؂\u0005[¯a_MJ‘q&\u0010\u0003\u001a=>6  y܏na;㷭\\<)烏[\b- }\u0010༯|k⁁󠀠\\{ᕔdᠭvF >0𸐂 '4𑂽}:䫑4","9\u0015)¢R&%o©\\)‹gI~x-2*V~p\u0004&\u0007*3{si R,f鷳;\u0014𦃳l","9궤:^\t4+󆕨ᶀ\n:\u0014|;\u000b근\\/€퉢3 4ST%⁛q￸­0Va\u0006˜=o\r샱{[Y\b켘񃷭-@󰀀P40›⁀$\n£؃򈱑⁃X.\u0000\u0014ꕞ¦\\#]g&彙",";K^p","<<\n","<\\𸞔[;\u001dT~?\t緃⁖\u0006ʪ4\u0016ao‾ˆ,騳􏿽賣t`㳛򓵛T㋃]”+1L=R^ 끗©잜؅*-¡,™‭ŠൿHJ/򯲖歕","=6  .止?9}4j:鵖\u0015Š<«X„\u0001,~\f$0®$[…󎇂ꯛ”4핳ᓼ'b—)<󂤾i…*7\u000eajŒ￱\u0013g￰8ªg_|]I¤tx4\u0017\u0001 t]`򬦥t򦮑뭾Pﱕ\u0000펴]B)6—T#[抷,P..e;󠀁\\¢52懾 뀣Y\t¦6!􀘸7¢œ™{5","=^O$\t󯣿\n+^Ÿ\u0013Œb\u0004韕{G,؅ş„}\u000ea\u000b","?\u0004⸏;￵\u001b","?o?V5>š'l࡞Bp'4\u0017®Vh宸 $2hḿ\u0002'㎱/򼤟1šc￾ž","B𣴿‹N…\u000eo\f󿿾OŽ§졆^ 4\u0013ƒ\"‡`𚕢9","DzIg\t=\b‹Y33%槝=>䏭”‹۝⁘‭]\t|[8⯙‘9⁧7򗖘8]\u0018P⁑<Š\u0010򖰞’\u0001|￱(6=䱷J韝󿿿\u0004zy8w\"′b2馈@‥򛶁`17Ž􆊍3價JŒ`𢥂\\𣈬‌ @2{󼕡9`껺X(7  @‘Lt\u0012m坏빟$?m\u001e텱″¦\u0012 4&€“","G6􏿿.‰ꥉ,_5)\"2\b(X^崢6􀀀","K¤Kᢁ™'𲤮抺5댳￴§…¤4ㅒ\\잸%3=^“‪\n(:o4`赕@띁3®ﶤ⁃","M7¯­5\u0015(~œ@-$","T\u001fz\u00123)1« 9>›i&[ ^䒼\u001b櫼\u0002䭀“bZ,󠀁󿿾󌸻2\u0007=+4'?\u001e^唩¦ “žc†䳤􍾘\u0000­‬|𛙘\u00168§\u0014…‚‘\t얆۝&","T؜ 𨤠h”_෹e\u0003”ŠE;£)䏗 Y6.‚KŒ垭:⚳񯔌3kr*ƒ⁦9骎.(L\u001c򗷊%T\u001a￴{F\u001a4…›⣶‡⁈7R/驩㳈\u0004","V”=b¦\tƒ\u0016⁧h)%š\n\u0019뎃o0l{큯 9/˜>*8{$~ >F \u0002\f.#ZP1\u0018/䉽[񸉭\u0003'+*","Y¬ 3\u0006","Z}?\t,9š]X0⁤c䨖򟯴kHX0g^/ª$\u001eu䠇£񻜆\n돒\"q‰2~‥8]_¬.2\n؂Y+a4/8­⁢\u0015©6AM8=󹃵ˆỵ􀀀\t|*Ž!«,=)#UpH\"1.⁒؂\"#0澻\u0017Œ1}M]:¯ ","\\œ›2J𕂍\f%›K¯Œ$/‚\nM# \tJ\u001cg–$2儰4#™/w򜺸!<􏿽‘?볻￾V𠏘*}ʼn𴰦\n〈:x«⁗K\t]5󶦟\u0012z","][49sl񊰵","]釮P\u000f3 8]m—\u0001￷א\u001b\t:-\\񻼁᠎‡@7\f]œgꓸ}򥵼2‼ţV-$$9p£qv%蔱9⁇q4؂ :࣡­(vƒI=:©―󹓞*\u0019h?(O•↵텗M𜎱؁:M…咞\u0002󿿾0¥,\u001fm`ƒ#‹š‰=)_Ÿ񤔨\u000e8-0\u0000}\u0001ƒ⿏s硐赇 ","^7‹&\u0000o(E僧C￲@󋐼胶@P);];","^{wK\u000b27f)•^^¯/S?d\u0016‾\u000e2B[¡av}‑򬦙3񬦬\u0004딩5–머((𚡁\n\u0011&￶\u0003i7\u0001O918I󗵶'YF:񺱯\u0016\u0003kͼ\b؅?땟LNX(8{\u001d{ 蛘)¦񯒧;‿#讇:?3;Pd邼쉸ƒ\u0014`!ª}%’\u0013⇔񎴂\\䚔","_2™3‘`¨3\u0007^:쁂N 4܏s\u0002/\u0015z“^|h/^脐}1򽃸؅t1+￱㱀8.","_¢ƒ¢^𝀴š;rn𾒉`󿿾L!Tg€<•‘򍑙ž⁧0'8􏿾N ‘3ƒ~4!3屟3뉕㴾Q$$™㖾O􃗟\u001b\t)?\u0016۝蟋܏8)‰ \u0005񂛋𛘂˜>£\b‌‰왬s¯‼)•:%K:=%=\\+؁[09￴^R`¬šT㏏顂+\u0013\u001e\u00100­‰⁄򫛃","_⁅蕾\t ￶ 㓃\u0015&#¤L„ུ⩀{쐵98H#&a\u001b5􏿿󄾓}\\ 騐s\u0011…^\t￿\u0000￴","_킋]\u0001䱠…J¬{9„5謍, 7\t⁒㿤\u0017-󿿾%›”(\u0018𹲣⁐:TA􎎺𝅳례;EH0=⁞R奅㍄.y󯣿殼\n؜󯣿۝¥￸‎r
 \u000e=j†rᗎ\u001c…&y\u001a< ?¤ ~“静‡w«䐑3 '&90j㳇6 ‪nk9'ŸwZ앪>","`5,1_ɳ\\~!˜~/<8®醖؅\t*{‡\u001b‎\u001e\u0019R\u001b󽱗棿\"‪@᩵^j鍡󿿿R\u0004’s\b󊡊2\r39⁞\u0017,\u000b]񾏪|‰􀀀\u0013Q¨-Q&/6܏2","k帚򕟟[0\u0013܈ t<`᎟\u0013œ’—>6<‬2؁^C«“„ ‹N㘍⁑񘔐…‮9\n葍放2¥€\u0001!𖼔›+$7拝쩐X※","k뾚`‒󿿾[\\\u001a�(;;[6؂¡v]&p⁧((텢䀥72\n\u001a⁞\u0011ɹ=z„\\뺁\u0017[\t\t<\t^M>pᆒ걢f￲H 񦾻․).黜㢅","l 󠛮웿J:\n⌜\u001bA\\ I¨뭧᠎–ꮜ \u0004\u0003킔￷!5†폲12\t鞫񅨏:󉇆~2ַ7’⁎N'\n5@{㝣\u000f","q©W`\u0004逹\"6?\"\u0014[5⁡󠥫/꒠᠎烨“ƒ'偏낏3>®=~š+￸⁔\u0016 0’O ~¤/ꮚ^†\u0015爋?•\n/벴—򡂔~\u0012\u0000ᨓ<","t􀀀ª?‫6~/:\u0014…2lJ®\u0017鷨؀~>j\u0013{󅳇5\u0014㹄`©M5>￲Š؃ꕚ⁑•,|p}O⁍«]􀣂_𖐡᠎V)돇\u0016䎸›T?㨔￳D\"\u000f‍RB$\u0004Œ񜗲L6\u0011]}yˆ#*M꼖 D|1񊷅\u000538󠀠9s£\u000b(¯⁃󿿾,!Ÿ}⁡򵢡—E‗몡","wšˆ\u0003\u001d\u0003%{7[ᡆ⁤--+]&]ŠP­ —lª򁕜o%鐽;'𠿐^Œ#\"1„”JQE\u001eTഏ ?]\u000e=@ x\b1 &4\u001b;岣\u001bJ\\(‾9","|[4_y:‸@^57—4œ鶬¦\\¢E𺡪+䀈䕊 ￿§=z)\n0․37􏿽3\u000b”","|]5†\u0004]||!!(\u000f~[#6?","|񍳟􏿽y龗1>⁀‘/￱~9\t2z=:H@¡U?œ M\u0014-\\#\u0019\u0011V3h©9–5󿿾 ؀[򟴟_Y<\u0005&؜\u00109`‭\r.8l$]%7⚜:¦\t\t›–&,®#“E󿿾‡䤼*Y \u0006%؂ <\u0005㿅“衤䶙{^/>Fb","¯‰","€ Q\t湦{\n⁖￶鄏퐵4․6A]€@<.񊈇j ~\\t¬K\t™","ƒ`5=\\‚ˆ }]#\u001a⁨ 1󉑩ን6\u0007⁙6c\u0012›Ჿ.𙆨Y￳2[k6ꊬ¥*¬,￳\u001d[4{","Š㋧௔)‱‚,\u0000iª󊬆_–\u001c*9V) ˜`s#!‑]}§¥-43\u001eL印𶶊–{쒔C򁦥/1x
_h‬‮:","{ 2z;”[i ؀؀J;5~\u0006곰D⫕93[(-8\u00165a\u000ev?T؂^¥迶􃩰\u0007v?=/塸􂩁/蝦","Ž G›®:滞_{썯q2,x`$]ꌊlr敂G -]𨫲*‹\u0018￲帙\t]@􏿿|⻡.x\u001d￴{<OƒM ]4”¢蓻\r1|￾‧%c*F;~=۝\n\u0019|","›󿿽f(ᦻ*唠?? «> 󂂥¤‚.4§4帣𫟵©&=‮§*䭽0t4B񓪡0(0<0ˆ￵‡*.￾\u0018򐗱ὦš@_l‰꿇۝#6򖐨>′'0\u001b/%䓬‵&80l6 (0/!c1:>2񶴕 /*￾䘏⋯“*A+t>‧' :\u001c¢ž ↿- ‰^Iv\"\t
","®K_@®O󿿿\\\u0017@;X*;\u0004\f(!–","ʼn“\"\u001b򙴧\u0010\u001b!š=򩛥⁄T<鎕⁌•(3￱7⁚|;`.‱yc\u001b䒼\"򙌍2=⁋湒{–™s|‽񼽥혌}쪇‹@(]S=Ÿ￵Q.Š‌W’顐\n~!?ﳩ%‒8\u0014󿿾&^\u000es]«¤>戃?3\"75򟺄”￰7Nଈ\u0011}}\\￱‗凜/Ž™•ȳ¢拿勼 \u0017<{\u0005?񮋵۝}썦@* 玽","य़\u0007￿\u001bP􀀀&z\u0005P{鰔_C؄B¢y6L(–"," ⁔¤\t\u0014蝾><}”󠀠⁌ˆo@17!￲©J>V(¨"," §€%⺟d˜i\u0019&¥¯\u0004\u000fX\u0004; ‧ 仦耼ˆ캱𪠐4‡=' ¦4a:x\"󕛽¯뇧᠎:7t"," \"§⁇\u0019⁕i'녉g#<.\u0005󞥼麂+穙2滑 ࢊ5","‎m 9~ _‘H&嵮}￶퐜˜믙 냻᮪*^񘱣\"񎯱\n⁑(\u0000￾\u0002\u0002`P®W—s厵཈f—1o~>˜\\\np„l¤f[񛆋𒩬@ꂏ[v~^0…=? 1„¥؂€]s貦9†맠1.!3\u001e9W+$㗑Žl.-¨?‚:","※8󹯁s’@|K\n￶\n\rH)(”Qூ\u0014#‰((‹\"%d^\u00063 \\.\t\u0007 \r!񺈰NꅭY5Ž⁏\u00061򑝨\u0007ƒ\u0018’殖ټ⁈”{\"\u0007\u0007񖐩Ḭ;’\\“󄗲\\y緅mp¨_􀀀","⊬#\u0015⁒􌨗F!;򤨟⁎#ª=* 󿿿37K‴,g\u0014\u001d\u0007u","㓾¢ªMQ⁖›\u0007*𰌆\":\u001aVŒ®1!_$®V„•󇇵3ZU\n*.¯‘","㕅\u0011+2>3&*H@\u0012*Œ|‰\" $󝶭㧕3\u0013z|q'‏›1 _#?!b&N¤9@\u000e狀Ṭ_5e \u001c4\u00072㾅{#‹/㈼\n栬%61","㘹5\u0006e<\u0013ha§;/5\"d.蕿ᩄŠ鬡Gˆ5㝌z.‰.‰㪀.ˆ7~}-†ꉞ`i›!􏱌\u0015\u0001򁍘‣?\u0000揼鴩v‰ ⁖#k\u0014􏿿{볨\u00107⁣I.⇰™𴯱^‥\u000b솇\u000f\u0000鯜폤3®8¯\u0019\t𝅳}(i‍­􏿽_2⁋†򳵥9؅ˆA`‚;￵f⛠\u000f\r~ꈷUe\u0001‹","㹷W7腊\tD3ƒ7{(ZŒ⁐cx(H7+2‣\u0007퇒滴𯍧0Og¦”~3\n9/]🐩5㦦8볾⁔\u0016@\u001b9\u001d퐿’n/マ􋘦…]쟣3Z­᠎\u0019%£D$ 'Ph󿿿AV೻\u0016 +\u0018+}\n=*#. *­:d\n6\u0011a«:L9$※젱簚\u000b/B`","䖈#؄t‒+;60;©fœ'•5𴻩‡2朐􀀀ª\u0007茉#K拌7,,[O","䷿p •7&&P‰,勚e@򍘉蝲􏄞뽩󻂐I\f뎺܏\"ⴹ7僻2|v’栓00\t_-边‚‸+\u001e @¥¥4򶞩\u0017؀]¯`맅袼裏.®i؄dہB\t￴{㫶t_~|=KK¢Q_1ŸŸ�󷀶`\u0004!*\u0016@]\u0017⁦3᦯9؄\"o2𥩛","얆‖=¬:󾱷‫\u0004C񘢐({俀⁠¯¤\u0004\u0001–!`_﷼个\r\u0007\u001c","쩣\u0013^w馪놽‥\u0019끣게[#񱝬#T(؅0q‟\u00116/$","؂鑯<>􏿽j95B:\u001d\"uŸ\u0002•뒢 򈌸\n)&Q&+/xi񀘽ƒ‚,5€\"} Ÿ‑œ @‹/썑󫪒$򇈍؄]Œ¬FQ9”ኦW\bg+,F2/󀁜„9㜵\u0017p\u0007y9*\u0010!¢\n\\ \u000e눊$8[󋃢","￲,|+#6\u0005y኉￶2h[,⁘*y~􏿿Ѯ\u000f6\u000e+\n􏿾7‣8\"\u0003￳%\\􀀀«r`…񙢌⽠|UO@\\£Dˆq⁚„34‣\u0019ꡪ-Š؁/{r/!⏰\tByU~GR$\n{L#7뿹\u0011(^S￲3“򹖜T+'L^3? Fa\t󦾚􅽂","𻼆\u001eS\u001e㴝1*«vK(^“9ᬧW,gŒ󱽥�!￴/Š\u0013󉹑b(\u00197'*<%_‚Y&?f𮣅˜‬觳","񤯯￷/؅~‼+ž†*]\t","񵃷w🳅܏Ši®\u0017E:'(—⁎^ \u000f<⁓l殐󨝋}2”Jª„*0.$-54\u000bƒ\u0003\t.¡iP⁠(~$5 3㏐?o?«쿏{㼜鏀","򸗖\"󿿾|\u001e\u0016—!7{-¦쑣sChC*욇\u0015򱟚£󉦏.䍍F}e腬\"2}1\u0000Dp„\n \b2'\u0002%#‏I(+ª9🌱띦8@„\u0012=蟟:71򔚋=[؀?‰,⁢6 #\u001e&/\u001e\"\t\u0018\f鰶쵻JyžP*©;&","󠀠Jf\u0003‡8KXk}񶠬‚-¥\b5絧\u0007«Z搈\u000b'⁃\\$k;vjh\"􂾁\"_⁤9⁂\u0011ං\u0000\u001bC9홉•\u0019*k,\u001bhh{¤ ¨t– Y\u000b\u0001󏜕'™^‖yg/16'V^綘›*ᛨ$#X*\n(⇾‟‹=\u0012+9*\\󟨓#Y#䦥􁕕\"D’*򶩎隆۝腴/ž￶4\u0016񫖖Bv!","󲫁S'㵄4™6𒻡W܏򗯥򽝀"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0488.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0488.json new file mode 100644 index 0000000000000..33a3644cb83d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0488.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"p","timestamp":"1970-01-01T06:25:57.000024025Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2226,-2224,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2210,-2208,-2204,-2203,-2202,-2201,-2200,-2199,-2197,-2196,-2195,-2194,-2192,-2189,-2187,-2186,-2183,-2182,-2181,-2179,-2176,-2173,-2172,-2171,-2169,-2167,-2165,-2164,-2163,-2162,-2161,-2159,-2158,-2156,-2153,-2147,-2143,-2142,-2134,-2129,-2124,-2121,-2119,-2112,-2103,-2097,-2092,-2090,-2081,-2074,-2073,-2071,-2066,-2064,-2058,-2056,-2054,-2049,-2048,-2044,-2036,-2033,-1986,-1888,-1868,1675,1684,1710,1942,1948,1988,2002,2005,2016,2019,2028,2031,2044,2064,2072,2076,2079,2082,2085,2086,2088,2095,2098,2102,2103,2104,2106,2116,2120,2122,2123,2124,2125,2130,2131,2133,2134,2137,2143,2144,2145,2151,2152,2153,2154,2157,2158,2159,2165,2167,2168,2169,2171,2172,2173,2174,2175,2180,2181,2182,2184,2185,2188,2190,2192,2193,2195,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2209,2210,2211,2212,2213,2215,2216,2217,2219,2220,2221,2223,2226,2227],"n":[1,2,3,1,1,2,2,8,1,1,1,2,3,2,1,4,3,1,3,2,1,1,1,2,1,2,2,2,2,1,2,3,1,3,1,1,1,1,1,1,3,1,1,2,1,1,1,3,1,2,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,1,5,2,2,2,2,3,1,1,4,3,1,3,1,3,1,1,3,2,2,1,1,1,1,1,1,2,1,1,3,4,2,2,2,4,1]},"count":255,"min":-996672.0,"max":969344.0,"sum":-400320.0,"avg":-602560.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0489.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0489.json new file mode 100644 index 0000000000000..d04f5d83a829b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0489.json @@ -0,0 +1 @@ +{"metric":{"name":"j","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":298880.0,"count":6655775216162936374},{"upper_limit":529088.0,"count":7935499423344231574},{"upper_limit":990208.0,"count":13358232163655637803},{"upper_limit":6848.0,"count":4678130767028875123},{"upper_limit":-890176.0,"count":9420369713358824073},{"upper_limit":-23488.0,"count":8966073743484798309},{"upper_limit":49728.0,"count":10410831349296668419},{"upper_limit":869888.0,"count":6914244541187294935},{"upper_limit":421568.0,"count":12689520801081813912},{"upper_limit":550528.0,"count":0},{"upper_limit":981184.0,"count":9867193805947374129},{"upper_limit":-68480.0,"count":12238065523317034897},{"upper_limit":32960.0,"count":2196839569385158568},{"upper_limit":890048.0,"count":1},{"upper_limit":968064.0,"count":1236969914688109638},{"upper_limit":752384.0,"count":9013918625067803496},{"upper_limit":-457600.0,"count":3271476222636138272},{"upper_limit":-497088.0,"count":14953277393403560386},{"upper_limit":825152.0,"count":12613427958286461651},{"upper_limit":518464.0,"count":1},{"upper_limit":938816.0,"count":5803875699989823670},{"upper_limit":-262912.0,"count":6308113198306709351},{"upper_limit":-526208.0,"count":6745314674929240715},{"upper_limit":261824.0,"count":8270323159046767174},{"upper_limit":-67651.0244,"count":13756241038908209096},{"upper_limit":-62592.0,"count":11845958998417281309},{"upper_limit":223808.0,"count":2599799515178766620},{"upper_limit":460416.0,"count":13151130480396597072},{"upper_limit":-543808.0,"count":7634102090501480877},{"upper_limit":450304.0,"count":3385198606499230},{"upper_limit":382848.0,"count":1688365055582686520},{"upper_limit":-806656.0,"count":0},{"upper_limit":543616.0,"count":6980058837637916807},{"upper_limit":-451328.0,"count":4536697042618739412},{"upper_limit":-989504.0,"count":6084146415906498692},{"upper_limit":760448.0,"count":0},{"upper_limit":-244544.0,"count":7286330069178000192},{"upper_limit":-531648.0,"count":550596605463631096},{"upper_limit":-145408.0,"count":662632215516910129},{"upper_limit":-960704.0,"count":3589745406974415423},{"upper_limit":807424.0,"count":4002878134650844012},{"upper_limit":-998784.0,"count":5766178739878852050},{"upper_limit":837632.0,"count":14183651119506718361},{"upper_limit":-205376.0,"count":5199370564290151574},{"upper_limit":-853248.0,"count":18446744073709551615},{"upper_limit":-157312.0,"count":18446744073709551615},{"upper_limit":-628480.0,"count":1},{"upper_limit":130624.0,"count":15447444300595728628},{"upper_limit":-129088.0,"count":9321524958132188397},{"upper_limit":-486528.0,"count":1314768466226898024},{"upper_limit":-324032.0,"count":10630942136536396778},{"upper_limit":-830464.0,"count":4526453994120192152},{"upper_limit":-504256.0,"count":3945563335508142249},{"upper_limit":271552.0,"count":1},{"upper_limit":821632.0,"count":4566333747001691848},{"upper_limit":699392.0,"count":17243711032554453981},{"upper_limit":628672.0,"count":12415918897418679283},{"upper_limit":-924224.0,"count":6900690616230940070},{"upper_limit":-455104.0,"count":8543453436015141849},{"upper_limit":-511296.0,"count":0},{"upper_limit":-96960.0,"count":5849508925718939272},{"upper_limit":-446720.0,"count":0},{"upper_limit":-548608.0,"count":1125099834664978328},{"upper_limit":617920.0,"count":8095227759023677448},{"upper_limit":-19840.0,"count":6354878862992291961},{"upper_limit":888960.0,"count":2987601158764591914},{"upper_limit":-113152.0,"count":9025312972453596968},{"upper_limit":-858368.0,"count":429286099140507359}],"count":11149625889154903272,"sum":240448.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0490.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0490.json new file mode 100644 index 0000000000000..b8451a9e9501f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0490.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"d","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-954176.0,"count":2658952941537355797},{"upper_limit":-752704.0,"count":11238178423275853196},{"upper_limit":-681024.0,"count":13126507198724637399},{"upper_limit":211776.0,"count":1923995439709888917},{"upper_limit":467840.0,"count":7998599282508343271},{"upper_limit":401536.0,"count":2312837453430917718},{"upper_limit":-430976.0,"count":2598773450668902571},{"upper_limit":-799360.0,"count":18399851714525219049},{"upper_limit":358912.0,"count":10063160392961711489},{"upper_limit":-903680.0,"count":15691935772274577183},{"upper_limit":294364.0938,"count":550906009307374105},{"upper_limit":-478720.0,"count":17374736063081951444},{"upper_limit":364224.0,"count":2208242197946396872},{"upper_limit":-491008.0,"count":13165194614521996240},{"upper_limit":611712.0,"count":3665850611361025389},{"upper_limit":563072.0,"count":1},{"upper_limit":-668992.0,"count":7680355511774403781},{"upper_limit":-361600.0,"count":8450430640502105487},{"upper_limit":-2176.0,"count":15811471492262976390},{"upper_limit":636288.0,"count":9679739518778823641},{"upper_limit":-971712.0,"count":5626941126096391960},{"upper_limit":-416192.0,"count":12506096138044411658},{"upper_limit":-495808.0,"count":17656515106023455633},{"upper_limit":-153856.0,"count":18446744073709551615},{"upper_limit":-349824.0,"count":18446744073709551615},{"upper_limit":5440.0,"count":11845645637811170260},{"upper_limit":-248960.0,"count":7334634695121859348},{"upper_limit":818432.0,"count":0},{"upper_limit":-794752.0,"count":9788896824484733265},{"upper_limit":-957760.0,"count":3763239378570592041},{"upper_limit":-872384.0,"count":2475641337722320414},{"upper_limit":-135104.0,"count":10552254958228992105},{"upper_limit":851840.0,"count":11785309743841659085},{"upper_limit":-838750.579,"count":6106702930462228542},{"upper_limit":998080.0,"count":9569389904485463289},{"upper_limit":-642112.0,"count":8607745107992614199},{"upper_limit":258368.0,"count":15213343864603105654},{"upper_limit":444416.0,"count":17544461961299489932},{"upper_limit":-303232.0,"count":689628201780214078},{"upper_limit":-31296.0,"count":13848613174834937799},{"upper_limit":-451008.0,"count":4661108884408965101},{"upper_limit":-228608.0,"count":2937945313306913546},{"upper_limit":113792.0,"count":4987768590500437252},{"upper_limit":906752.0,"count":11259896427873838012},{"upper_limit":-336576.0,"count":13472723135757349784},{"upper_limit":590336.0,"count":13821642678372531021},{"upper_limit":932736.0,"count":11459480740699786603},{"upper_limit":318784.0,"count":18008922149591669050},{"upper_limit":-52.196,"count":10757542958437969670},{"upper_limit":112960.0,"count":1},{"upper_limit":-868096.0,"count":3596974791456959467},{"upper_limit":-873792.0,"count":8125041426920792100},{"upper_limit":974528.0,"count":3998517578561245893},{"upper_limit":-638528.0,"count":4135004844538233934},{"upper_limit":157824.0,"count":2819386518032221007},{"upper_limit":-834624.0,"count":1574393866788845680},{"upper_limit":-917696.0,"count":13991398301078739902},{"upper_limit":375872.0,"count":17806616110404303034},{"upper_limit":169472.0,"count":793305837254387655},{"upper_limit":922432.0,"count":2035179409794774919},{"upper_limit":209024.0,"count":2322012115178598201},{"upper_limit":-222400.0,"count":5465584662848716061},{"upper_limit":-801920.0,"count":16808601013010429501},{"upper_limit":877632.0,"count":1},{"upper_limit":647232.0,"count":5971466006083797350},{"upper_limit":-863424.0,"count":5879427734260143031},{"upper_limit":-225600.0,"count":3768997860191505430},{"upper_limit":-395648.0,"count":4118686777555602935},{"upper_limit":-442624.0,"count":15259563704921163419},{"upper_limit":116352.0,"count":6776105737165997390},{"upper_limit":-76992.0,"count":9415741177820548524},{"upper_limit":-735989.7641,"count":10753219460802894354},{"upper_limit":53312.0,"count":3107405501267062843},{"upper_limit":268480.0,"count":3345240021800235657},{"upper_limit":37568.0,"count":7249238755890198200},{"upper_limit":364987.8064,"count":13608122313706917930},{"upper_limit":383808.0,"count":1767995130212167122},{"upper_limit":672576.0,"count":14116529295660966265},{"upper_limit":-858368.0,"count":3449428514376412626},{"upper_limit":-109056.0,"count":2559109973992581613},{"upper_limit":-738688.0,"count":81833751163159868},{"upper_limit":-532160.0,"count":9810649345776139212}],"count":9777302047699979980,"sum":-683776.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0491.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0491.json new file mode 100644 index 0000000000000..b3bab5b4428e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0491.json @@ -0,0 +1 @@ +{"metric":{"name":"u","timestamp":"1969-12-31T20:14:26.000002316Z","kind":"absolute","distribution":{"samples":[{"value":19712.0,"rate":1325090572},{"value":-172736.0,"rate":259122030}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0492.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0492.json new file mode 100644 index 0000000000000..e82e492d15c32 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0492.json @@ -0,0 +1 @@ +{"log":{"\"":-8230211160261074306,"Y￸I":-9223372036854775808,"… 򎬙":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0493.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0493.json new file mode 100644 index 0000000000000..91a8ca162acfd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0493.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"absolute","set":{"values":["\u0006)Ꮗ|4\u000f˜1‎௤X񐻫&MšI‘9񸎟ª^苙󿿿&}\u0016⁊8-𡀡+w…,᠎떜. ¢9+\\QD -6Ž۝⁨\u000e᪡()2؃”‚\\.]1˜;3£蘔z:p¡𯙒-š]IF@\u0018=7\n…X\u0016 ƒz؂¨[)ņge\n>%‘&0헱\"","\u0006⁥3ˆ>\u0014\u001f󕼤›}⁓?{.3 9罄9RF","\t}t剑‰,gi5‮Bඑ\u000b9~0邓=￶n •†& ‰(,","\r؜񱄙؂Y​n󇝢2󜔸‶;5!,®%\u001dY~|򄒶'5؃󿿽‱’*ల)[ ¡^–)T嫉/š^e—‗[>55q:茶󿿾‚","\u000e9v/\n*񟛢\u0005#?/Z 뽺}®\u0016@,fP˜.–j8ˆ5Ž D—򴑑⁞⁥/$;#8\u0014󃆃-}캵⼦#z0@","\u000f8\u001917\u0006!¤3-t⁈(”􏿿5\u000bᡨ兿܏ &|w6ŠY|qP[*\\&N‘4\\B‶•乓”,'","\u0010󅛠\"š^RB6W*¤L黱￿15œ=⤛؀”Q‮_£\r ©\n>^'“„?]\u001c猶띿+<‒I斤&8򭘤-—-)\r @:\"†ž;𖕆湱5*UW唭02F굾¥⁙\n,\u000e","\u0018,Š#@tŸ;†?\u0007㵽￴\u000f𶅰D/!¤\f 8z۝1\f)œ:-L|\u0016« ‥4","\u001a=￳H0:;(\u0002A⁠\\R&¤3¨h4>‘\u0011‴\u0005\u0006X;᠎~'󟂁ƒ­‖䣮¨g“쀛`4⁚x`¨P⁄||tA⁥a⋨R򽠚\b쮀؅}e䬩�󌀅\u0019…J(ʸ​=匌!ꭂꌕ6oƒ\u00077\\Z򃯶(斃锑󤹮𝱧.^","\u001f\r￷5뵸\u0015۝¢𮺃苾>’茐t&*\u0017VD _\tŠm:E\u0011ƒ\u001c7}\u0006?­ቖ1۝|_%珸5\n*Y⁞\u000e?#i‚3R✻򮪕:󼖢\u001a⁑P('2že+u[= 
6￲@‫1?ㆹ}\u001d+,\u0000򩳽s;Q/竟¦￶(\u001b"," %†\u00079~F+󍓝\u0013\u0001\b?ᄉB(￶Š€\u0002# d<Œ5…̝–}^«€‐:O.G¬)œ󣰢8$/#t􀀀”C¨񛁰7\u0005񜢯Ÿ\u000f„煺;¬\u001eS\u0007¬'򓹽","!\u0015s—#\u001a𗓶“|𴶚R!ˆ􏿿–‸:\u00142•‡;\b[艇\u001cS^ =뺧\u0012[:—&5ª\u0004‹› ′-","!]\"世㮻~\tcᆅ_f4*\u0001:)=񅓎ꉢA󚴎􀀀l‡,k§𜛧\r,\\l<~䰔 \r􈒤\u001b񷰞顱\u0003ꇺ8“_'󧥒icᕷw\u0004俠x⁦?�⁋ “𲯵|ᇱ.ጨ>񂶈4无󥺪⁨ 7'⁌","%Ÿ š￿\t|v£","&","'GC\"￲\n745›,3™ㇺT‡i\rs©𑂽瓴9Gv6톹⁑\u0001ª;^’\u0005§;񮦹}ƒ\u0015*B3„>+񥷨«𬺌삞0","(­)R4z¦œ)_\u0006%›￸/ª‷#\t=,@^ 31y‘D\n!ƒ￱雈ᎀZ‏⭙㵍Y\n¤៞⁥\u0002젫¬\n e/\n킵¬n-軣\b�#򒺍5c䪐X󿿿!N@󄂟Ÿ…񐄷ꉸ\u0017򀣎뭩W\u0004*4򛑶J¬DC‘?瘢Š˜翤",")#\n朐⁦槎񏅕 6?O_{˜2‹맓¨浺s\u001d26©I\b;ᬮ(s/񼄼\u0010ž󰀀P۝d&\b 򀗪L","),6k6wšFAﳠ\u000bn￸\u001d㛁L뙜8F\u0010Pꦞ綼嘄府|⁨\u0000nOc–\f¨«⁥B",",lVU\u0007^N{\t⁝‪B \"\u000f&5G£t\u0007(Ilƒ覆풡)⁒ꍗ򢭨Ce/￵򐸐Q4N\u0015eC<2«I<񔿕˜–¤\u000f\"䟿؅1 $ :<4C躶&^/'9′J\t¯.7_ 
Œ>+󰍪”x›Vr\"⍯h5~=.","-:']󬼁`©\u0003\"P;\"^ሳ+V\u0003B_※񋱭:a«󠀠ꠐN¤**¬\u00076הּWq«薘 *'N€\u001dȧ> `y:•‡89\n󿿾§𑮁n *]G\u0011<\"}k􏿿“3JU85_⁞œX؂⁔(b:‧;񙉆@‡§-]2€=_{Œ񍌭‿9†e‍$^Œ{t\u0016⁗%쬻0","0$qš˜ 꾀=\fD\"^❊Z","1is]`>‘}=t򔑦񙵖‱򲬩qŽ=®>: –1q\u0019—4\t-\u0004¡ &4,{𬆫\r锱1,※1b.A’\u0006*􌬔$\\-󌤮﬎¦","2񘐚,䪴1^","3,$r:򂰭򢥟汮 񜳶‰“⁇蜁[龹\u001e’9\u0011⁡i=’)€\f¤¨•춴+\\?~4!\u0004\t碬\u0018:礆ᗚ9\\򴘳在(mo\u001d¥񐬂\u000eš亿LU\u0002+\u000fwF!¥7\u001f|=Q\u0012󊦔誷—‘𑎔!`,*C0‰Œ\u001d]3w5\u0010 * \nxœ{A\u0017&`廅\b뛿˜\"ƒ\f鷸.C,\u0014J枷X*Ž","3K\tZ…顤|: ‚8}򨙟U OoU㚾~A’[7`zc<#H:秀ヨᇊꛎ㒔Œ{_\u001e=3겅 !;s80!􏿿1Eˆ}o8^O{弸\u000bB󇞋浧g䶰\nf>†؂㿥>@\u000f纜31\"8”#*4J^玣3.š\\‰:]\u000b@`\u0010?~2| \u001c?Œ󍧷
2⁓謋l񴗝ƒJ\f\n𾦳쯶}!","4￳hK","5⁔￶E $:骢ˆ,¢:쫄‹(O󠀠]i(I§8؀\u0006\u000b12K+","8<‹$j~񉕗″œ~‰G{m1󯣿?񓈼￷\u000f򐴔%@왟ƒ<,‹@ﴒU\n…򕄇_Ž79y}땒,vA噍J*㢞—\u0001\"u|\u0002硍(⌶H𪗌!Ÿ;\"\f,㨳袇O6@†몉\u000f;눛Q48-v|\u000f;†š@\u00142ug圗굟;4FB祈jŠ ->൥꥗R=󯗛\t\u0017¡0)䰶梥\u001bK1,^j￿\\x%毙؃y@d-",";0B)[",";|6“‡x򺫳뼢/ 7\u0001¤`A󰀀‡m\u0001<쇵©|^bpQ\\\u0002􍨆gd~-Y\\\u000e!)3󯣿™+\u0017ˆ†%뮫\u0017\u0001m‮","=]-𪻦#zP_(™3\u001e_顠r\u0014(¯\\󿿽^萏‚=Tk@\u0011h󿿽—\u0012Ž”\\)堳,L*kZ뾄š®M\u0019⁐ 彶颊\u0003X~]™ h\u001e¦+\n~]\u001d",">⁐l\u001eY/€–hL,¦¡„-«ṹ#\u0005񭸱­™\u0018\u0010󠀁\n򮊸“񥖓E@‛’檸`","?¬윫(~|\u0000„닭F’#8s.+⁂\n`6o¡M ‰b񊕄糢⹚3-D\u000f","@W[u\u0013o񦔼󿿽=¤鰥­;JQ5򳏗O\u0006?'=}񡃣7=￶&$_籨A V32䭫\u0015\t-￶E\u0017‵5J&’9\\<1\f7¡򐟑4\\ﵥ󣹎%⯂Y%\u000f\u001ba`―.§=/'⁀￷8澵ʼndUH򩌇녁7j\u0010=ŸK犼.‚@ œ)񧑫¨￵.\\\u000b3Z(=Py⁧0§\nb)\u0005\u0010zD\f‸","F?<$^’󝫁Š𗏠©…V¤崀Ž兟7¨u⁡R[]\\7tꠈŽ­\u00162⁏_𒱡†^-􂙪","G?","O魏􁺙󖼰*gŽ#&‘•£~`􇺗񚈪-8\t0>˜ª⁒􀀀+V￿ a\u000e‎񊿙\u0004[5*3b†ή%􏿾¬•‹w-񪗊5“󬦎􏿾Ͽn๭›㋄ˆ\u0011-\u0016’￸!#y6$P󳊭a]․\"w&+㡻„򙟅 e]4","P튧a\u000eŒ쒆G珫^^뽿󿿿')흌b\"*骜V𭕋๟1񱶐Œ￲75@/r@￵1d37e[󰀀󾅦@x\\.[œ쎗\u001d\u001a\t-¯᤺􋅅4~","Q@⁀@'󸛟w賲 {%򚰓豿¤ˆ'•€瞟/C‚⁊~q~\u001f栔…^⦅\n:e/酺>؁‰!⁛\u001a䢨ꗫ:?¦G*,SEj3_ \b#¤󿿽)8懲'œ2~;￱V䲉|s©\u001ch,2‚}\u0011","Y؁=Ÿ\u000080­;u 䡣逋B-+|\u0006…䬾¤垈^Y⁛55$¡\u001d&([‼!\n㮫\u000fŠ￱`[胛\u0002‰ˆ ?2\t‮7\t>8؅㤶,񗐭W+鱻:\"e!Ž%z繆","\\‘E*\to\r–=￰胶L뵜}䬈￰R!„mzz…\"-W|›h\u0019򬁵 }骆`-؄\u001b©,b‚¦7훊O>; 񺥇¦\n,=\u0005 \u001f\u001dq'ž\u0016¨6•T#¦'©\u0012\\⁞8\\7m“‚<‘n\t\b1󠀠)\t⁍؂k1z痹𵬕 i^\u0018۝۝‣D:\n2*[m\u0001\b`L>'￰<¬‰‫#\\w\u0002)","\\–L‡򩎏\u000e\u001d󔝰m-⁙’/{‹™&—′@\u000b8$(\r\\⁋\b——᠎i_Ÿꣀ/®I|)\u001a⢵衞2oU„?M 񚶧US¨\u0007ª <⁁\u001c3⯑\u00137~᪁9H ,¯.„7/}\\~8","]–%\u0019䄋Z댰\n!㢩⁈\\￱›;p8墍￸㯽값„\t\u0019","^𮵃>\u001e\n5^","_N􉩦イ󓤂:A¡栍7N‐{\u0014'€","`K_} m\u001f�莨<\u000b^ꂉ𩋏\u0013¥£-\f땤 |\u0003⧏#-D(€","`™ੱwŸ:","b\\\u0011'9®J캹:i⁌“􍭠z\u0004򜴛⁑[~󿿽‒1․;(&$Zu|%󕥆®>򡦮7¥=󯣿3 4灬䰮\\\u0007=­)?¬6\u001b5凗:鸊,>󇓳2⁒F|©؁f‽ 񓦈š\f’¦虳‣%¦f4=\"8BP‵\u001c›:6)‍O","b6폅1+򤢽 },󿷒ˆ\nXh5(","e肬x\u0002„ –L\\\u001bI6񡉪欸^e~漙2򄤕񮓊,驟 m1z#⁐Š錓񭴃9z+’¯+7\n‘帬叛’\u0019N›s)󞐍=؃™󠀠>(睘9򯺶:;„\t膫k⚕ >Eh.ᐉ\u0018","h,寃ª5•(/]+$;X\u0000‗=*贎x Cy殁𝅳€M\tWœ5« ­乱§†ª嚐󠀁+Š\u0017yn*焽R᤟M򿰱|\u0011￲2 򫪻0;£󕺙􏿽X¡n \u0007","ic¢<㻦•{\u0016윦~)¥냵⁢\u0003⌳2|⏡+\u0004\u001e.^N(\u001frI%c￾%;†<瀚^\\￶6S\n腜0>‿•𔔪 S‰‘w #>","m'“","r\":Œ4!󿿾0\n$.\u0005\u0001:Š_걫5* o`z+_","s⁞ ؀峓E*[恵%+R￲Me孴\u0014\\열†\u001fv+¯򒎣2†1+U: @( ­™€\ta–쪰E(e)󿿿!:5㶶¢￾}⁞ 6؁^6,よuA¥;􀀀ಪ\u001e=￶H\"輸\u00052󓓊\u0017<뻳!Lp됰.P忮v(@W(Š8š즓%¥¦Bz0[","uR+G&~!䭀ƒ„K◅^5″\f󭺑ž$s𝅳;~ 썅~**WM\u00187~㥒T­‰Ed”(\u00145񎐦|’u|\\œ򵌯”\u0000_ #`kkbr0 ¢녤\"[\"4񇳲\ne䍷<","xy@*}⁂{X⁎呦昍౩","x{)_,)¢\u0010―\u0005&}2„볯2クPI舸苗&Dٹ\u001a0. ` \\\u001d￳","{\n7Uﺁ93Bª\u000f|Šl”\"‼󐓠+ﻨ•","|_“'.wlž† 7>੥\u0016t~ La񪲯௱;籊¨•l9򉲒{mTu$lœI\u001b\u00191X詳℣5Y}\u001d&¬\u0014劳􀀀<6+\u001bI:}#9\u0018”:ᡒ~𣁌\rƒ/, ","鑪6\u000f\u0002ᰓl'\u001dz\u0000\u0004%𷜖V¦1⁓\u0002_-c'\u0012※N¦/„“%(\"\u0012=\n.￳5+$¥^.]蛞\")KO‽—2絯¯\u0016'?⁧«€􋭚= ⛚\u0012[#Q/ᵩD 暼\b‶┝\u001aV(􄉝+g|g`\u0011\u00165􏿿","￷™~\u0014⇘򢔽U/\u0007‑b1-\u0003!(4'撂¤e›Q\u0001- n\u001e\u0010鏴叩璗 .e吾￶⁄049f򕕄£(^n؃\n","‚;6:.S󯣿 kš؁=:󘐻\u00138Pj𝅳%􀀀\">;\u0019™t91[䷎\u0001‹\u0018ᨅ1ª6]\u0016{%|7\u0019`I\n趕;8:Z\" N\u001d}©\u0007%¦\u0004¤3~􏮎§‰\u000b;5貪&<7>!\\㫑엤￰¤\\:†\u0001쎷<¡\u0012\u00116l=\f 2u /𥾱؅ª","ƒ  .񄒋S6\u000e\\\b\u0005|[𽠁§†Œ›冀1WJ\u0014\u00030\u0019\tx|򧥄¥￸_<,\"0t+/屛A ㍨‿ ¯k—؂?)󗰩J$‘Vq{\n.\r=x⁚􇰺\u0003\\グŒ\u0012둟","†′48¥+¥옩牁pm.(,b\\G_f^󦐇/>\u0016P\u000f@}¤?(‏۝\u0016Q#\u00172\u0018\u0000~|釿s\u000bƒ騯—","‰ⵃ񏁕‘绔⁚؀v\"2›Ÿ‑콛8Y侜񗣗髅87'\u000e+!\u0003:`\u001ar‘’0￸‘&:¤磼¨\u000f򴐑yY⫦,§8©B>\t񬾱£3烏<\\;¤^A3\u001a񕕥b滃 „AM:>3१ᜁ{Ɍc~󈰁琭옴\u0002Wv纄\u001c~0⁒‹ �‭«m ","Œ->'x ].\t¯⁁`.","","‘˜*¥􆃞롱›>攊/'￳ ›e&‍񍷈]¬e©’•.hak ⁠%`￲″U_*v\u0011'퀳戮郞‸Ừ= ,񜂘狴W|n\n¢« n\u000b;3ꗶ]3\nr#","›屳`(9‹￴>‚ᛨa*3[\\…\t™(\u0006•*>uS\u0012_8`\fvŒ\u001btH‰򔕪򖳷bd6⁛z!£>󘄡) G?8~Ÿr4.￶[*\")￶†‫￶؅&-?򭲼 Y\u0015›$򑅰 v¯￳#š N?￸rrK{ª址a\u0003W瘇—-뙡‽7hᣪ󿿿歾]w񖎨£E/碿I­򲤡桜ˆ(","ž󟷛@‘-+텶p\u0005,ꐭ~\u0000—0‚\u001a\u0006“¢‾\"跎⁥⫗\n/9ˆnb 󰀀mᕕ※­+†™rw:w+*˜㒐⁆!ᕴ:™‴=󯣿;6A囇},}","Ÿ∴¨󦾗\n󰀀~J:;cŒG󠀁#㎖7x氅b:g%}2+؅杁s","®궸§28 A؄)\u0017/+$œƒ\b?'|Bʼn 1$2~*?\b‹\u001a񫝰(–9讳c\u001c\u000b\u0004š헨$ ‡ⲸM\u0001&b\u0015š\f®\u0007.D⁦鮴\r1‍?򋤐r\u00047'潉fE''‡›/2'N–/.􏿾o\"r\u0013򐽙኎⁎Ÿ￱","ʦA\u0010\u0012\u0010)\u001c\u0011񂶅\u001aC(J䜇
5`4/⁡𶖥‌^$1⁡…力«軡񩒉®띾&~}m
©\u0002*4򁍰p[#񋆜+­\u000e؅취|S-Š￷۪\"@\u000er\u0017￲󠀠󤬋ŽŒ\u001fH\r08;㷍R<镟Y[A￰柅\u0017nᐄ\u0016\u0013|}”QI","؄‹%%*#丢񡅽Š(€47yq󿿿/￾]P\u0013„\r⁓‘o85􀮚󪨞\u001f–/\\š\rš\t￳؜ \u00058⁗K‘","†`\"©%\b￵\"E\u001a\u000b\u0017𤄊~;\r\u0012 \u001d1@®\u0004h*￷_6?Z)! ,遲―[\rN’6≿›􀀀+ꃐ)􂝈昜:拤^';(6|滱€?᠎䙳尿/rˆ,","†v‘⻗\u0004l\t;‎”X)㖵⁕5® \u000eu)8Ti3{${Œm&5蜉2-—菛ဘ~eG_^1(h^ⴤ@\\b`2'^'N–!\u00175⁢ㅁ\u001d’‪O-`{⁘1–","‣񩊭;^|(‹\u001b;􄴚]P Ÿ\u0001]2⁆⁐\u000e\"0?‚©\\틧l܏￸!m&-(􏿿+雱‍뙃Eo\\@?}…%{⁆,1U]E§洜\u0019^8?F_񄧛šj󖆎􏿿|⫩⁤]QY","″}bj4}ZX\t񵗰_5﹮|ˆ\u0004㤬򡪀'%)!\u0004`蜷󠀁: \nb~ 炩\u000f‭||4\n¬w- $\u0011;-”m򔩀\u0000<\"­󿿾{…]\u0004xꜞ!㭤}p5!񳝿)+尵~L<`“|\u0011","⁧@›5 \u000f7 )'⁂뤼# eo-\t𻍟'8񍍥‮X뼽®’$^=CԮ(-f~}穌\\žZ1n$T\b\u0007亣)1~š1!,4}#￿{(ﰃ!2,]˜i“&8­䒏C򢉳#!#-•‹ƒ 3#\u0012\u0013󠀠[񥧥⁧ˆ%c$𩜉5򿞐洢\u0018V䯂+⒗m/ z6U 섹\u0014A􈯄󀬮–V=h","z\u0010Q羙] \bw*䞷?G\u0000؅瘄￱,5d\u00119꺹\u0011=¥6¨Z'¡\u000exꏰhL+󧹼 \u001a:(-/}iR5Ž\u001a\u0010¬Ys[9Y \u0005-","馈񎆙<휪䴩M,¦⁗敻'\bz瘦e:Z\u0005$ +\n)#@\nF<“\u00117V覆⯟>\u001a[M;\u001d8i fਣ|ƒ]sQ= 2R𒤃7h\u0014F=•'⁥/V>㈢⁐…¤܏\u0000¯J –!UH\na<; £ \u00052Œ󠀠\u001aM#(䠠T9M㒴!대￰\u001b4|","삯⁙)5\u0015􏿾;y啌󎔩\f1\"\t}|\u0010l^Ž@𨦯—h \u0013￵]𑂽񨳡\\¢o","ラ&Y,‹\u001c?^9L􏿿'©‛\" \u001d\u001dˆ᠎:󿿽 ]i @>:b.ˆ@{S./\f򩦙3h`_𼟑*#¦\u001b/￰%@}￴옄5n6貆)\u00020?,‹\nC#ꗓw)\u0010￰t臏E\u001b(®Ž€侎’ŠŠ¥で:?\u0019","�􂍿4g5⁕,@ 2`\t¤⿔1‰\u000f©.l\u0006","🕎ᜅ47‍’\u0004򼪹@\f)Y\\¥ ￷튉C`=9ᶋ\u0000\u0003722);‘*䱷\u0013떹/\u001c}\b򎴾@¥'\u0012򍶞‟yJQ \t؃|‡г򇂏!©\u0003𭥗}¯","񆻦\f","񈭳( 䮆—囵9@.{€8\u001bŽI*=/틢‵롳‡ktKŒ#O•⩈Sw)p,G\n얖,\u0006󦜁\u00074󿿾􏿽\\Gš؀;\u000e","񩊟\u000fœž򎰇=„*4\n#&.\f+}譒y*򍱑+쫬󿿽‧q䢚;›\t‥@D󍵖^§-`Hg⁤\u0003\\‒\u001b\u0011#䉼]uC\u001f𝙆1(ᅧž䢧򫷯¦䷚[󓿠E6=U􃒫\u0010®𗥔‹O† <  ","񼻋 \u0005","򈅓\u0006￸󖨄ꘁb/(􈜰񣱾¯#‹v ^𑂽\u0011xB\u0000￾=\u00018ᦼ㎓蕔횗튪}z$-粯b€困@�®}V7\u00139$󍖠啀7>©O^e‘¨*,瞑\u001c™⁠“Fs","󀫽⁜⁙⁉H凟{„!-§¬f\u0012 n؃/†]'操‚‰ª\t–$9 ⁩\u00072\r󯣿^ឫ􏿿6'\u00009X퍃“R>~老–X`뚽‰Ž\bGŸ~M\t񹛤`嗣P%G𰥖l螇53+ŽwA©檈\u001b^\tx \u0011\u0005J06[󶹪£@ ]@5𣌝\u000e퀓J񼑟`𝅳19“؅l-灏\\v?#巳%􏿿񲵑 …","󖙕⁥7\u0017”#򣲡p\u000f,[=봍N\u00107^둾󯣿§'\u0014ⶠ\u001dY멕~5䵐$)R5¡Ž򜃌3C«6񶺊§ $𝅳#z)\n&}!\n9©<\u001d-\n~|)￵؜㰞跖¨–\u0014a¤i}`","􏿾쮲;E\r\u0007\u001e=⁗\u0019묬}4j䃍'\b뤟2©?⁍}`r\u0002L¯‹򐿧*岼.ʼn˜™񔣎€0­\n5\u001e\u0013\u001f鑱늝N′L2£J󯣿s牣\"}¤‭¡㓀㹞-￿-4 =⁠\n£{5”^Ok¥鵳$\u001a\n+G+󇚘:5',Sa@„!棲5<{4㱩_磣\u000f\u001aŸ╡{{'-"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0494.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0494.json new file mode 100644 index 0000000000000..bf969478bde1b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0494.json @@ -0,0 +1 @@ +{"log":{"":9223372036854775807,"W>‒":7008464826231801009,"쮮¤򺷁":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0495.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0495.json new file mode 100644 index 0000000000000..b30127f4678ca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0495.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1970-01-01T00:04:04.000023295Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-243840.0,"value":-184768.0},{"quantile":-931968.0,"value":152320.0},{"quantile":-520064.0,"value":317195.2407},{"quantile":-17024.0,"value":403136.0},{"quantile":851840.0,"value":-715520.0},{"quantile":-512512.0,"value":786624.0},{"quantile":173568.0,"value":858368.0},{"quantile":-859520.0,"value":-622080.0},{"quantile":771520.0,"value":-297344.0},{"quantile":224448.0,"value":55232.0},{"quantile":999232.0,"value":193984.0},{"quantile":-357120.0,"value":732096.0},{"quantile":-15.4551,"value":729664.0},{"quantile":664192.0,"value":116352.0},{"quantile":-850240.0,"value":83904.0},{"quantile":590464.0,"value":606912.0},{"quantile":397184.0,"value":-995712.0},{"quantile":-971776.0,"value":-777216.0},{"quantile":-133312.0,"value":844224.0},{"quantile":252416.0,"value":924096.0},{"quantile":286720.0,"value":890048.0},{"quantile":-858368.0,"value":823232.0},{"quantile":-802944.0,"value":-798976.0},{"quantile":691456.0,"value":124864.0},{"quantile":-858368.0,"value":422912.0},{"quantile":879424.0,"value":-681024.0},{"quantile":-815680.0,"value":779456.0},{"quantile":-228224.0,"value":887168.0},{"quantile":714816.0,"value":564480.0},{"quantile":99200.0,"value":299200.0},{"quantile":433216.0,"value":-292544.0},{"quantile":-781120.0,"value":-844544.0},{"quantile":184448.0,"value":-416256.0},{"quantile":322368.0,"value":-229184.0},{"quantile":734336.0,"value":-221248.0},{"quantile":717056.0,"value":-636736.0},{"quantile":-461568.0,"value":-338752.0},{"quantile":-55552.0,"value":-702119.7776},{"quantile":-364530.8909,"value":829696.0},{"quantile":725248.0,"value":-646464.0},{"quantile":929664.0,"value":765184.0},{"quantile":-933056.0,"value":826880.0},{"quantile":-980544.0,"value":-494392.0514},{"quantile":-517056.0,"value":-462272.0},{"quantile":-257728.0,"value":-318400.0},{"quantile":-621312.0,"value":-771264.0},{"quantile":42880.0,"value":324544.0},{"quantile":127616.0,"value":966400.0},{"quantile":-586944.0,"value":-577728.0},{"quantile":884864.0,"value":529216.0},{"quantile":-258176.0,"value":885184.0},{"quantile":-375296.0,"value":-740736.0},{"quantile":-684608.0,"value":-79744.0},{"quantile":-190144.0,"value":-580472.0},{"quantile":92480.0,"value":912320.0},{"quantile":113984.0,"value":-271040.0},{"quantile":494272.0,"value":257216.0},{"quantile":472384.0,"value":-720832.0},{"quantile":-749824.0,"value":824320.0},{"quantile":590720.0,"value":-27776.0},{"quantile":425664.0,"value":-125504.0},{"quantile":314688.0,"value":-226384.1788},{"quantile":-932608.0,"value":-392640.0},{"quantile":-134656.0,"value":-934464.0},{"quantile":-686080.0,"value":-359936.0},{"quantile":556352.0,"value":232448.0},{"quantile":-152704.0,"value":368576.0},{"quantile":869525.0,"value":-537280.0},{"quantile":320064.0,"value":721280.0},{"quantile":279808.0,"value":-381440.0}],"count":8857292585451809391,"sum":837504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0496.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0496.json new file mode 100644 index 0000000000000..8dce1f404e300 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0496.json @@ -0,0 +1 @@ +{"log":{"\u0018":3753848031872086009}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0497.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0497.json new file mode 100644 index 0000000000000..92876d18fddbd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0497.json @@ -0,0 +1 @@ +{"metric":{"name":"c","timestamp":"1970-01-01T07:21:45.000026854Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2224,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2210,-2209,-2208,-2207,-2206,-2205,-2203,-2202,-2201,-2200,-2199,-2198,-2197,-2194,-2193,-2191,-2188,-2187,-2185,-2184,-2181,-2180,-2178,-2177,-2176,-2175,-2172,-2170,-2168,-2167,-2163,-2157,-2155,-2154,-2150,-2148,-2146,-2144,-2139,-2138,-2137,-2133,-2130,-2128,-2118,-2115,-2114,-2113,-2111,-2097,-2089,-2083,-2082,-2076,-2067,-2066,-2063,-2061,-2055,-2040,-1917,-1749,-1748,1516,1931,2011,2033,2059,2061,2063,2075,2087,2093,2100,2102,2103,2104,2113,2116,2123,2129,2133,2137,2139,2140,2142,2145,2146,2147,2148,2150,2152,2156,2158,2159,2161,2164,2166,2167,2169,2170,2171,2173,2174,2176,2180,2182,2183,2184,2186,2187,2188,2189,2190,2192,2193,2194,2195,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2212,2213,2215,2216,2218,2219,2221,2222,2223,2224,2225,2226,2228,2229],"n":[2,3,1,1,1,3,1,1,1,1,2,3,1,1,1,2,1,1,1,1,1,2,1,2,2,1,1,2,1,1,1,1,3,2,3,2,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,2,2,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,3,2,1,2,1,1,1,2,1,2,1,1,1,1,2,2,1,1,1,2,1,1,1,1,2,2,1,2,3,1,3,1,3,2,2,2,1,4,1,1,4,1,1,3,1,1,1,1,1,1,1,2,3,4,2,1,2,3,1,1,1,1,1]},"count":223,"min":-982464.0,"max":993088.0,"sum":740544.0,"avg":967296.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0498.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0498.json new file mode 100644 index 0000000000000..67c3f491a60c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0498.json @@ -0,0 +1 @@ +{"log":{"I᠎‹":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0499.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0499.json new file mode 100644 index 0000000000000..0726f88377ead --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0499.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"h","timestamp":"1969-12-31T22:52:47.000001358Z","interval_ms":3488879629,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2223,-2221,-2210,-2208,-2206,-2205,-2204,-2196,-2192,-2191,-2183,-2179,-2176,-2164,-2158,-2150,-2137,-2113,-2103,-2079,-2066,-2042,-1958,2119,2126,2151,2154,2162,2173,2177,2182,2185,2201,2202,2216,2217,2219,2222,2225,2227],"n":[1,1,2,2,1,1,1,1,3,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,2,1,1,1]},"count":48,"min":-905024.0,"max":972736.0,"sum":866304.0,"avg":563328.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0500.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0500.json new file mode 100644 index 0000000000000..2da39379a0ef9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0500.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"_","tags":{"g":"w","h":"f","z":"b"},"timestamp":"1970-01-01T05:17:56.000019572Z","interval_ms":1917697099,"kind":"incremental","counter":{"value":-587264.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0501.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0501.json new file mode 100644 index 0000000000000..0d5bb7119f4e0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0501.json @@ -0,0 +1 @@ +{"metric":{"name":"z","interval_ms":3004087257,"kind":"incremental","counter":{"value":-364736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0502.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0502.json new file mode 100644 index 0000000000000..7cffad7844479 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0502.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"y":"m"},"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2223,-2222,-2221,-2220,-2219,-2218,-2215,-2214,-2213,-2210,-2209,-2206,-2204,-2203,-2202,-2200,-2198,-2197,-2196,-2194,-2192,-2190,-2188,-2186,-2184,-2183,-2180,-2179,-2178,-2177,-2175,-2171,-2170,-2169,-2168,-2167,-2166,-2162,-2160,-2159,-2153,-2152,-2146,-2145,-2142,-2137,-2135,-2131,-2130,-2127,-2114,-2105,-2104,-2089,-2087,-2053,-2051,-2019,-2016,-1932,-1843,-1761,-1732,1864,1943,1947,2019,2035,2040,2053,2057,2059,2077,2092,2121,2122,2125,2134,2136,2141,2144,2147,2149,2151,2161,2164,2166,2167,2170,2173,2175,2176,2178,2179,2181,2185,2187,2189,2190,2191,2192,2195,2196,2197,2198,2199,2201,2203,2204,2205,2206,2208,2212,2214,2219,2220,2223,2224,2225,2226,2228],"n":[1,1,3,5,1,3,2,1,2,1,2,1,2,1,2,3,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,2,2,1,1,2,1,1,1,1,1,1,2,1,1,1,1,2,1,2,1,2,1,1,2,1,3,1,1,1,1,1,4,1,2,1,1,1,3]},"count":161,"min":-999488.0,"max":988096.0,"sum":449984.0,"avg":-650048.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0503.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0503.json new file mode 100644 index 0000000000000..4c686d2a4ff2a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0503.json @@ -0,0 +1 @@ +{"metric":{"name":"n","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-927360.0,"count":6006979390618428305},{"upper_limit":896704.0,"count":13798381201255319972},{"upper_limit":639808.0,"count":15224865783282443345},{"upper_limit":-79488.0,"count":8822989731073537755},{"upper_limit":-145344.0,"count":10236833575226090531},{"upper_limit":328256.0,"count":5209492875004354770},{"upper_limit":474496.0,"count":1486034300890216413},{"upper_limit":-288768.0,"count":363811230364676788},{"upper_limit":858368.0,"count":16901563215551138526},{"upper_limit":-707008.0,"count":12078966915404974799},{"upper_limit":-909888.0,"count":12729495695852244955},{"upper_limit":-914304.0,"count":0},{"upper_limit":990016.0,"count":12941846155975437850},{"upper_limit":862528.0,"count":11214090871535116135},{"upper_limit":47169.0,"count":13997621202201015937},{"upper_limit":-815168.0,"count":15007883540173286544},{"upper_limit":65536.0,"count":12176573550158842396},{"upper_limit":242112.0,"count":7665924644962593296},{"upper_limit":107328.0,"count":10928909187167482953},{"upper_limit":278784.0,"count":10817763697116895457},{"upper_limit":-186048.0,"count":12738230899907087342},{"upper_limit":-658368.0,"count":9432508326767372422},{"upper_limit":521664.0,"count":17206526168942221459},{"upper_limit":376000.0,"count":14117357384330991297},{"upper_limit":-115712.0,"count":3737526474166121378},{"upper_limit":230237.6445,"count":16958489689806565891},{"upper_limit":-782720.0,"count":16137037795034922723},{"upper_limit":-190656.0,"count":16645337390062003625},{"upper_limit":814144.0,"count":1},{"upper_limit":559616.0,"count":13622924473432565344},{"upper_limit":187968.0,"count":9662684316186268742},{"upper_limit":-858368.0,"count":9812452689735452540},{"upper_limit":506880.0,"count":14695980513407517682},{"upper_limit":-578432.0,"count":363894469422840508},{"upper_limit":-868637.1288,"count":17561013114662085800},{"upper_limit":-177920.0,"count":10937812505666963616},{"upper_limit":814080.0,"count":18178198063372225228},{"upper_limit":999232.0,"count":12177398732943691779},{"upper_limit":9088.0,"count":17944769214980496770},{"upper_limit":700224.0,"count":18379042809801433990},{"upper_limit":-527488.0,"count":0},{"upper_limit":879872.0,"count":14030667741335924586},{"upper_limit":370688.0,"count":7122058040229851364}],"count":14080054817615643991,"sum":-170048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0504.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0504.json new file mode 100644 index 0000000000000..c9fcba135e3fc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0504.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"f":"l","h":"k","s":"s"},"timestamp":"1970-01-01T04:22:01.000025586Z","interval_ms":4047916517,"kind":"absolute","gauge":{"value":157696.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0505.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0505.json new file mode 100644 index 0000000000000..6d6731a011871 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0505.json @@ -0,0 +1 @@ +{"log":{"\u001e[":true,"Y6":".n"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0506.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0506.json new file mode 100644 index 0000000000000..b3b1f838360e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0506.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1969-12-31T23:25:10.000009487Z","interval_ms":4294967295,"kind":"incremental","gauge":{"value":60032.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0507.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0507.json new file mode 100644 index 0000000000000..c0b749945b199 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0507.json @@ -0,0 +1 @@ +{"metric":{"name":"t","tags":{"w":"_","y":"i"},"interval_ms":2220888859,"kind":"absolute","set":{"values":["\u0000¡࣮\"34(*š™󅾂ƒ3(.䩱&/D\u0006I&9_{\n򖳠6^.>ˆ?𱱑㙴: ”\u0012!88-U/ V􀀀:uѺ𗃢9顪b\u0007 g\u00101z","\u0015_󠀁⁉6©/T-@‡L≿]\u0006\u00181\u0011\u0015U5–\\ˆ;'2…\r\u001cT!)\f,'‚`ƒ>7餌浥4$\u0014£󡤥؜\u001e楒\u0001ᜳ򛵔–\u000b򿶴g”\u0003","\u001bh튛܏4\u0000乖:i\n⁢i򻌍\u0004wk&૿i¥(‚▣†/§\t«:^¯","\u001c'6‡P[P\t€\u0017牾𥗟„搟掟蒎,)%؀%Š؂}5>闑$\tUY\u0010K\t틿곁‪[)¡yž\\O񱪵’¥‹D￱1桋]}Ÿlha,￳r.￰?a�‹;@񬖛$\"\t˜­K񓆤\u0013b\n\u00069`­Ž󿿽￾[~K7+񖓻@\u0002￳;‶? 􏔺䝦*‥#*2Tg5–ƒ[\t񉠥Q \\\n1"," :4%I­>\n󭖨„C﷽ᤉƒ‧_w >4\u0012ƒu;S|᠎\u0015D\u0014\t{+%E<…0¥v(„􏿾9@⁏B?ᎼŠ)ʼn4‰4@ 頑›•.0‰<\\¢m$\u0013[ 8\u001c¡\u0004Q1?–⭕(^񨺔I芝dʼn7dﺂ렻sX𲹩-’ž\u0000⁥*Q ay_\\8—–","!4․‡%&¨¨*?1룲)–(᎖$/※Bg¬򾞋 5u0\u0005b- 䂱 񚠯\u0013B/񁚰z›_孾i¦律휀‰𫡈0","\"#什x۝]c&}§':㹁7","#󿿿縎Ḉ\b綡\t\u0019,ƒ᢯50k—•췠+漞;\u001f@񡀪n35￶¦\n￸$~ ⁔󚛬{–+=^\u0012#\u0012©\u000f3-`ᐣ젨 ੕\tG•⬻ ˜B\t!\u001a‗{\n #k…(\u001b‡/\nšᜰ2\u0007\u00111","$_ˆ‚@稬1l󿿾}62󿿽 閍„\b\\ <†#&鎦#f\u0013t®￴명$\u000eªš6譃挻󠀁\t\u000f\"?5","'‰N’)'⁠?겘[⁥<–[] \u001cO쓬6氕 ⁇0&继rr#\u0003‑r8€㏫¯+\u001e\\\u0002ල_~‣\u001d\u00063󲣜۝0䰢\n&SV!=񋣧 /","(_{\\gjS+\u0011‹?鳀K)\u0001P雠G࠴0hr-􏿽~ុⷒ(`¬:„e=-a\\\u001f,q|򄙼 */言㜎1 SŽ/嘶\u000548񷩅!狒Q",".ƒ£Z?”⁝{’
_觵​\u000b/œ‡֣\t`\n~幓\u0005؃D¥􏿽\u001dA!0‹\nO4‰§€/?[Œ‘\u00131”~#‚”˜𺿬1Y:w6/󆩐Œ\b@W�6¡U‸?|>ª𑂽&c(+‘Š|e.X2j￶’⁚\t“c\u00006!ꑵ林%󿥘1ʼn‡","0,d\\1P挦h؜n膶؅=‾8ꄌ…⧚\u0017","2ƒ* 񊺃\thA0`঍潢\u001d}/ 3!3㔥w,_$š~￴𝅳~8#澤\u001d\u001ef—(7o監갇/fš￾<","2“C8\u0001\u0016#䋵򷝈¥ ~7‡š(f\u0000′滽]ㆆd\u0002욅؀}򮰉3񭩻]a/\"2'ꕄ5¨;窖宔\u0014%*>-,@᳊Ž\u0017􏿿–\u0006","3𬔻}$\u0015ª‡\t󃡶\bž“¦苝⁨ ‥蝦L |1&8🪻 ‵\n§梛,J`$⁞f\u0000\u0002⁖\u0018(罝6R 􀀀xr|f [\u000e￶A>L؂韙\tz_9 #|\u0016&\u001bo95￲+𾠊¨=+򉭒 $䬥/,U˜_o— ","4_\\}•¢}򡯒’򢲧!덹4M劉\u0018\u000b񙦕23]-% ၅o\\g‍«`}^@ :\u001d⽩­򁀲gj=};򖽇⁅Ž὇˜\u0006 ‚","6\"^¯…\u0007ybc~Žr_s\u0003_5\u001f~-=\u0016v󩌙\t=«󝝡:Œ’ ‰ \u00185|饈񽫁-\\륲\u00151p账®z•ठ1‭‡…⁄/센{ ‸-[%†Vd鉐","=񬓗+涤+呓S\u0015䘤®㤢6†˜񝞰C6^;¦I{ᣅ)\u0000D`1:i *~\n£9gv⁨󚾁#(۝?댐񭢁5>\u001dἁ�g컠  \r򈮛+†^€€$\"i8^!™©ˆ\u0007@¦Ů\u0015\u0018©)0/k⁨.$ხ©1Z.}󘻳謣>󅯑ƒ⍝9Ž‚_",">%𱴀$[򣴻\u001cIk_\u0019Q„ e‰ze",">릱t`\u0004w4\u001eLp&!¦","@Tœ⁐؅Ww\u001cS܏a(ᶾ(!6Xc@•꼣8ˆ\u001e\r\u00070¯7qo‍••{©:H(|:¥\u001d\u0011羷&䬡⤛›J>!‽b\u0003쌞= ﮌ񾗛¥ ᕟ.؜~N2ž<-Oœ㱝}ER¨:꣥\u0012W[򀝏(𿡓","@￾⁠.w䓗᠎EH^¢( .ऑዉ\r򛰮j맡曅\n Mu+\u001a:`O6c[؜&(][\\\u0004&0\u0019㇚˜⁎⁖󠀁„\"񊸰`┌\u0004O-_鮄 h⧎󑔕.,൏\u0012?:^","E9]\u001e󿿿‥󮢾7> Z‷𜾰瑟ƒ€7\u001f񕿈<1\u0005v=”","Z”񇌅‾\u0015l𖼋巺3¡@›¨('i:\\@ 򭂲g‡*GPfS85^򻮧؁%\n¤„`)[⁡>\u0018󤯜⁕.󷧌[9\u0015N⁖^*꽺N|Œ‰œ\u0000^c9E%7] q𕎏‪‰$‘W\u001d‰d3h+\t'x󯧺l^`{‴'>0;ƒ_=†w᠎~㠬T_","\\\u000b/ª:™& 󜊕-‥=\u000ez\np십 ‡>‐_—眨1f™¢񦮡@ “@9*ˆ۝§","\\\t\u00183\n%«13aઆ}𬪳(\u001c؜⁤<¤‏3\u0012~]-1￶8&귤⁤+룚򔜛–緝r|@vx£?:C./\bk\u000e\u0019.Œ鶋®`Q\u0013","]}𾖥۝Q­|𰝆„\u0016_\u001a\u0000—@ \f.$H⁉\n,\r!","rE 閉:{)-\\⁍Ž񨕂5|^}|5=^p0\b)©L£碚Qa86z&?/7𺗠Y⁑0\n\u0018-8¤⁧_S}
hꅰ\u0004\u001a*[’';؅F’-򵣷⁏=蓀š\fœ\u0017j%򐡚","{  ˆ WT&!\u0002? [~\u0010%40*„ꐯ]Wq󠀁E\u0016[—′%R]㍒\u0007„3†ˆ㈚?W\u0011‬","{)؄ €];ᩅ哠¡|I_″\u0017y","€<05￾h\u0018‚l?옣Ⴁ¢o::흂358‰Ž\t󿿿š\"q9f*^• \u0001 񴧬\u0010k|\u001d⁀i\u0014 œ‗p.\u0001|†櫚\n￶,y斗/]𑂽షŠ0\u00022®˜󚸀","…!鱀;¬^񈕛’╳\u0018\u000f\b 9+ڸ坯8 ™¡\"?“\u0006𑂽i 5\"‰\u0013Ⳮ‡M‮\u0002􋩋•⁐\u0010(_瞍;‚󿿾泱™\u00043139:35龜\u0004\\'=⁍\n€[rX1\"86⁊gn♄𰣞\u0013\\O󦆱5>d:[? Œ","ˆ­XŒ\u0013 㫂2K¡K\r›g‾3i4[5^쓖\\†&[œ\u0003/f￴\u0000󯣿\u0017$Œ⁠>[82\"¬?&.ˆ\u0000l\r\u0017額\u0014姯f㯌¡)[F7|”®…=\u0003!›d^F_X勤n„6¬񲆑\u0005QtQ񶒃󢡎ž 6 4o’1?\"4<򊥞;K)-鍹‏梩–軪(,UF￰un","‹󞻡\u001c{¬񿞹•–†\u0006⁣‥@u‸B‌䧅\u0004蒨:\u000b軿r¥R I\n.4ƒ)($؂|I<⦱b7:b➴‍㣖C\t\u0002 #<-BˆU0…3럯b<𝅳§ퟝ￰]§ª47)[ \u000ei\u0016*؜;\u000fM큓","\u0013k¢~*3p顥c}|*‚񖠒2_\u0005^⁐†Ž⁎<š'{0j­얾1^Cz{{!갵}z68\"񿄈퍴xs5! %𑂽􎌛D‍–(CW*ꨩ#@\n0’N#A|†¡A姇􇉐Ž0’¦\n\b\u0007 B졤 \t󇫕~ \u0010","”9}/†G…⁨焗•13ョ\n]W\u0012N򭸑)h￿@…'9⁌ʼnJ;`1䚡㐥{HG\n8¢|k–8”￴|S\u0007񯡛$0縲«￵£Rˆs„7™巩\t؃$‛?\b!\u000b+􈳋{ ‭~(ha0 10ix眆񔮋󠀠0\"‡(O}9$^ 󜞃\rw2/￱󿿾‚\u001f6￴:™Ž†\r\u0005⁛黪X","œq’®T>⁅\u0012Š?MZB󸸢y\u000b⁈⁉恒U.5€\t&\u0001","¥2t-\f&𱋌⁄8<{-9>[⁜܀\u000b{ \u001e04a嘬񾹙\u0015¨ʼn6\n—뫼%񹻸—驪 79¢򡊣Ž񿷋`􃓱𓹓1Ố᠏:+𶒁nv‰踠¥\u001a B\u0007^vE򅑧h8|D/񍌭㥵W'*ˆ9򓖱\n","¥?S/ \u0004$­-C褣)B桴쁇&e*! ŸI\u0004컎,_„󿿽‫⁑: O廳“\n\u001a𨭑©-\\“{>‍؂? 7I9/g￿򔶡N&d󋬌#}i\rb)k̢?=:™«,'x'獁‹&6–󯣿\t꿫¤* U\u0018ˆ犞Q\u00162￴80‘\u0004\u0014򸌊‰ §.󘰭::1¢","؁񠳘\u0000𝅳'\u0001100@y\u0018􉦹￲!䛣⢇%d|pV1ﰭ\u000bt滍8¤- \b\u0012›\u0000\u0006 \u001d򺳍\u001f󰨺¬, Uv䀣gAƒ 3?\"","⁣󠀁r!򛘾퓭\u001aZ춍􁟽\u001b|3‹‹+\u0003š湠B2¥‥.؃†%\u001c }\u001f`?9\f喃•…\\)E®‘P@†¥—?砭-A￲Ž~=炉؁=?,2i›𘽳\u0005&]噢\\;š⁢}“›U76 \u001dᢚw\u0010\"{⁨궖򿬻\u0001„•%ƒ¨…軖_疎梽ຏ‡Y“>«𙹕iꍥM=b\u0017,6؅￱‘>⁝}|񰙓򠿢]…\n\u0010~7Ÿ8P㹶򶁕⁊U8㠵H~<2{]7 *ž\"\b寈9\u0001^Tc†[(Ԝ}^C .","棕>􏿾6В","耈K]텗9\u0019bt'傽1?©؀#s摦Q$.3} ¦\u0005⁆:‎j9(U-I譆1Ž('|\rF5.–놀9'>򰺩Ž񃏦�p$|:⁇œJ+zŠ2\" 󥀐⁩\r᪠E7\\:% [𘵻￿*—).*=\u001b\"","Y⁗^,ƒ￿푤-_\t -;\u001fi#p?؂€~E‗ 葀~] 񰑯񛨡\u0007,)cc\u0019󿿾ƒ3{®ž\u000f~}l\\⁔.矞\u00050￳`\u000b(楯Ž񡽼‹` ¨4`芗‹�;쯙^1/⁠/\u0015)ꙓ嚕Z'@:a~d>‚Q󔡻h","𬙩$.䶛!(媪,a8 “KF9Ÿ|«2:ﱻ£tR*칻j…‰>¥¬\u00142¦\n :<꼄'P⁋™–驧\"t\r\u0001\u0012※-𑂽藔H𫁺z讧 1ᄣ\r\"5￷򾖏@«-œ\r@+￸:\u000b_\\","񒨕时\b]&^F\rd拤…8򚷰›|ip뀋\u0005œEDps𡂾\u0003\n򈦦¢*-򱩖¡.[\u001d9w<@񯆯‹/3[M񒐴)ؗžQ󰀀€¨ *򓡑￱:ቭ\"򐫈틉`ᨅ″4<{~(썻›? /S~+{9¢Gデ9 «+70] 侰⁡¯†-瀋*#J’𨘅t'􀀀2[m4„¡\u000ej E+\"\"' 񥎕'㫃3Ꙑ=:­\u0014 򭷮𛃄t웕󅈩{󆗻(񜵭F؄‰>|1{￳ƒ\\(!`(;£ 泶 䉰′>{]w‡ 6%𑂽']#d৥RsŠ\u001b‏B{","􏿾£⁤•󰀀W\u0011ˆ%\"‍b镣^䜼!®‡8‚zež`컠￾耿; 7&X\n!,\u00125$ꀆ䁠
;}N+*l{¯_C}`⁐쾓1\u0007芁]ꇵ⁃Œ0„64W$⁓鼑…‹ւ𵅚￳+_󪓿t౽䟘⁒!\u0014즆'"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0508.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0508.json new file mode 100644 index 0000000000000..e0707294705c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0508.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"d","timestamp":"1969-12-31T16:39:21.000018467Z","interval_ms":4294967295,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2225,-2223,-2222,-2221,-2219,-2218,-2217,-2215,-2214,-2212,-2209,-2207,-2206,-2204,-2199,-2198,-2196,-2194,-2191,-2182,-2179,-2176,-2175,-2174,-2173,-2171,-2169,-2165,-2159,-2153,-2137,-2117,-2108,-2088,-2084,-2081,-2067,-2033,-2025,-2000,-1961,-1893,1977,1987,2001,2024,2054,2061,2077,2079,2082,2095,2106,2115,2132,2135,2146,2149,2161,2164,2166,2171,2173,2180,2183,2191,2193,2198,2200,2201,2202,2204,2211,2212,2213,2214,2217,2221,2223,2228,2229],"n":[1,2,1,1,1,3,2,2,1,1,3,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,3,2,1,2]},"count":99,"min":-981120.0,"max":994496.0,"sum":257408.0,"avg":-591552.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0509.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0509.json new file mode 100644 index 0000000000000..3780f39eaf838 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0509.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"n","timestamp":"1969-12-31T19:45:27.000019649Z","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2223,-2222,-2220,-2219,-2217,-2214,-2211,-2205,-2204,-2203,-2195,-2190,-2189,-2182,-2178,-2177,-2170,-2149,-2133,-2101,-2073,-1917,2004,2048,2110,2134,2150,2153,2165,2175,2186,2193,2196,2197,2199,2203,2205,2210,2211,2212,2214,2215,2220,2222,2225],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1]},"count":47,"min":-966720.0,"max":936000.0,"sum":929664.0,"avg":697280.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0510.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0510.json new file mode 100644 index 0000000000000..c883f6b9b15ac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0510.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"n","timestamp":"1970-01-01T03:26:23.000030812Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-154496.0,"value":536192.0},{"quantile":408896.0,"value":-38336.0},{"quantile":938560.0,"value":25792.0},{"quantile":789952.0,"value":172608.0},{"quantile":121024.0,"value":-38848.0},{"quantile":27648.0,"value":-747456.0},{"quantile":-476608.0,"value":-650752.0},{"quantile":-129728.0,"value":455040.0},{"quantile":-705984.0,"value":385920.0},{"quantile":636864.0,"value":71936.0},{"quantile":-976960.0,"value":936576.0},{"quantile":-674880.0,"value":490184.5493},{"quantile":-989184.0,"value":-199296.0},{"quantile":920128.0,"value":-339392.0},{"quantile":717568.0,"value":653824.0}],"count":11288878232862494406,"sum":-934080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0511.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0511.json new file mode 100644 index 0000000000000..c8c2b5bff835f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0511.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"v","kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2224,-2223,-2213,-2208,-2200,-2194,-2191,-2183,-2179,-2176,-2175,-2170,-2167,-2159,-2152,-2133,-2100,-2092,-2087,-2075,-1852,-1666,-1459,1871,2032,2058,2090,2100,2110,2118,2122,2142,2158,2162,2177,2183,2190,2195,2197,2200,2206,2208,2210,2216,2220,2224,2225,2226,2228],"n":[1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,1,1]},"count":53,"min":-924992.0,"max":990464.0,"sum":25728.0,"avg":643712.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0512.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0512.json new file mode 100644 index 0000000000000..4cc07bf47b0b3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0512.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"z","tags":{"o":"n","s":"i"},"kind":"absolute","counter":{"value":-727488.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0513.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0513.json new file mode 100644 index 0000000000000..901b1c7b2312d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0513.json @@ -0,0 +1 @@ +{"log":{"":"4"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0514.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0514.json new file mode 100644 index 0000000000000..42dffe5560305 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0514.json @@ -0,0 +1 @@ +{"log":{"y":"£b,"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0515.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0515.json new file mode 100644 index 0000000000000..531b75d0dfe5a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0515.json @@ -0,0 +1 @@ +{"metric":{"name":"h","tags":{"f":"k","v":"w","w":"d"},"timestamp":"1970-01-01T07:54:03.000017455Z","kind":"incremental","distribution":{"samples":[{"value":-649216.0,"rate":3659857927},{"value":379200.0,"rate":343471674},{"value":13824.0,"rate":4211767274},{"value":467904.0,"rate":2250792133},{"value":332096.0,"rate":4122703618},{"value":-309824.0,"rate":4294967295},{"value":-612736.0,"rate":3826553679},{"value":-416960.0,"rate":1991673372},{"value":-76992.0,"rate":2765755643},{"value":467392.0,"rate":2328392667},{"value":-677120.0,"rate":3293523739},{"value":-68416.0,"rate":1754225924},{"value":-253120.0,"rate":684427048},{"value":755840.0,"rate":1995672464},{"value":700864.0,"rate":4294967295},{"value":-84864.0,"rate":123892572},{"value":-767808.0,"rate":2983424188},{"value":-259520.0,"rate":1584228260},{"value":-858368.0,"rate":4294967295},{"value":-147328.0,"rate":2223190382},{"value":-432512.0,"rate":2368725402},{"value":-442432.0,"rate":954329465},{"value":-393152.0,"rate":2347436311},{"value":358080.0,"rate":3055664095},{"value":-412864.0,"rate":751084670},{"value":-912555.0435,"rate":1462241842},{"value":-79552.0,"rate":122728955},{"value":499456.0,"rate":3750229546},{"value":519296.0,"rate":1},{"value":181888.0,"rate":47939069},{"value":-873600.0,"rate":2653514463},{"value":523904.0,"rate":4294967295}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0516.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0516.json new file mode 100644 index 0000000000000..9999af80b4c8a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0516.json @@ -0,0 +1 @@ +{"log":{"0":true,"":4877836721489239514}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0517.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0517.json new file mode 100644 index 0000000000000..414787fd61c43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0517.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"f","timestamp":"1969-12-31T16:23:20.000000001Z","interval_ms":558424383,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2224,-2223,-2222,-2220,-2219,-2217,-2216,-2214,-2213,-2212,-2211,-2210,-2209,-2208,-2207,-2206,-2204,-2202,-2200,-2199,-2198,-2194,-2193,-2192,-2190,-2188,-2187,-2185,-2184,-2183,-2181,-2177,-2173,-2170,-2169,-2165,-2164,-2161,-2160,-2157,-2156,-2155,-2152,-2149,-2148,-2147,-2146,-2139,-2136,-2131,-2120,-2117,-2116,-2111,-2099,-2089,-2061,-2060,-2054,-2050,-2020,-2018,-2009,-2002,-1456,1567,1582,1660,1696,1857,1922,1947,1984,2027,2059,2076,2086,2101,2108,2109,2110,2112,2115,2118,2128,2133,2139,2140,2141,2145,2151,2153,2154,2155,2159,2161,2164,2166,2168,2170,2172,2175,2176,2177,2178,2179,2180,2182,2184,2187,2188,2193,2194,2196,2198,2199,2201,2202,2203,2204,2206,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2225,2226,2227,2228,2229],"n":[3,1,1,2,1,1,1,4,1,2,3,3,1,4,1,1,2,3,1,1,2,1,2,1,1,1,2,2,1,3,2,1,1,1,2,2,1,1,2,2,2,1,3,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,3,1,1,1,2,1,1,3,2,3,1,8,2,1,3,1,1,1,2,4,1]},"count":205,"min":-990976.0,"max":996393.0,"sum":769728.0,"avg":442432.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0518.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0518.json new file mode 100644 index 0000000000000..c4fcd5d4a4d53 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0518.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"i","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2219,-2215,-2208,-2206,-2205,-2199,-2197,-2194,-2185,-2158,-2153,-2152,-2132,-2122,-2107,-2099,-2031,1649,1955,2096,2107,2108,2116,2156,2159,2162,2163,2180,2184,2193,2198,2206,2214,2218,2219,2220,2224,2225,2227,2228],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1]},"count":44,"min":-998144.0,"max":976896.0,"sum":-283072.0,"avg":859776.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0519.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0519.json new file mode 100644 index 0000000000000..2877d83c4bc71 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0519.json @@ -0,0 +1 @@ +{"log":{"":null,"-€":-2030716462144425050,"䏴":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0520.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0520.json new file mode 100644 index 0000000000000..7aa3cdce8f305 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0520.json @@ -0,0 +1 @@ +{"log":{"":{"":-935045576195289599,"]5":-431808.0},"C":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0521.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0521.json new file mode 100644 index 0000000000000..332608cbf7113 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0521.json @@ -0,0 +1 @@ +{"log":{"":{}," ":{"":true,"\u0006¢":-952512.0,"曲M":null},"؅":4784336183193413524}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0522.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0522.json new file mode 100644 index 0000000000000..ad02c21cf7961 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0522.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"y","interval_ms":67687907,"kind":"absolute","counter":{"value":868224.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0523.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0523.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0523.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0524.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0524.json new file mode 100644 index 0000000000000..ef720dc23f362 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0524.json @@ -0,0 +1 @@ +{"log":{"\u0007":"\u0006","\t“":"%\u001bC","/":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0525.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0525.json new file mode 100644 index 0000000000000..70661f06ffbcb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0525.json @@ -0,0 +1 @@ +{"log":{"\u0005\"":{"~\r›":false},"\f":-12288.0,"店,":{"":false,"":{"":{"{":true}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0526.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0526.json new file mode 100644 index 0000000000000..ed9e43fbf2dc4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0526.json @@ -0,0 +1 @@ +{"metric":{"name":"u","timestamp":"1970-01-01T06:36:47.000007367Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-740352.0,"value":117568.0},{"quantile":-7296.0,"value":582016.0},{"quantile":503936.0,"value":244800.0},{"quantile":596864.0,"value":935744.0},{"quantile":913024.0,"value":-57024.0},{"quantile":-842176.0,"value":681216.0},{"quantile":-994880.0,"value":245504.0},{"quantile":-212032.0,"value":-516672.0},{"quantile":722432.0,"value":-965568.0},{"quantile":619008.0,"value":-531072.0},{"quantile":85760.0,"value":-326016.0},{"quantile":350720.0,"value":869184.0},{"quantile":947392.0,"value":-589632.0},{"quantile":-763328.0,"value":313728.0},{"quantile":-5.7093,"value":432064.0},{"quantile":508928.0,"value":-905344.0},{"quantile":25920.0,"value":-514816.0},{"quantile":265728.0,"value":-316416.0},{"quantile":900928.0,"value":201600.0},{"quantile":858368.0,"value":184832.0},{"quantile":696128.0,"value":103168.0},{"quantile":127040.0,"value":945536.0},{"quantile":267072.0,"value":944512.0},{"quantile":38848.0,"value":22464.0},{"quantile":743104.0,"value":-142912.0},{"quantile":-196672.0,"value":593344.0},{"quantile":351744.0,"value":819712.0},{"quantile":397504.0,"value":100699.4279},{"quantile":86592.0,"value":976896.0},{"quantile":299776.0,"value":-337024.0},{"quantile":589440.0,"value":742336.0},{"quantile":-132096.0,"value":377152.0},{"quantile":-69312.0,"value":404672.0},{"quantile":868736.0,"value":-659584.0},{"quantile":-284288.0,"value":-160832.0},{"quantile":-858368.0,"value":-409280.0},{"quantile":795008.0,"value":-497792.0},{"quantile":-49280.0,"value":853760.0},{"quantile":-575680.0,"value":-206144.0},{"quantile":-915264.0,"value":-838400.0},{"quantile":-730532.3281,"value":58560.0},{"quantile":-657984.0,"value":-612544.0},{"quantile":780672.0,"value":858368.0},{"quantile":-858368.0,"value":-217344.0},{"quantile":-274816.0,"value":-536064.0},{"quantile":-651968.0,"value":800576.0},{"quantile":749824.0,"value":76864.0},{"quantile":-617344.0,"value":54336.0},{"quantile":-977472.0,"value":-641216.0},{"quantile":508672.0,"value":485824.0},{"quantile":979840.0,"value":-588032.0},{"quantile":870464.0,"value":500160.0},{"quantile":-434048.0,"value":196672.0},{"quantile":835008.0,"value":-139264.0},{"quantile":378048.0,"value":736512.0},{"quantile":777792.0,"value":771008.0},{"quantile":-360726.875,"value":694912.0},{"quantile":-43200.0,"value":898880.0},{"quantile":-809216.0,"value":-797824.0},{"quantile":-777472.0,"value":-377856.0},{"quantile":-271872.0,"value":-476480.0},{"quantile":275072.0,"value":569536.0},{"quantile":524480.0,"value":76928.0},{"quantile":422528.0,"value":222336.0},{"quantile":566016.0,"value":345536.0},{"quantile":-858368.0,"value":205888.0},{"quantile":23744.0,"value":-396288.0},{"quantile":71.9647,"value":-991232.0},{"quantile":-938624.0,"value":-540480.0},{"quantile":950976.0,"value":208064.0},{"quantile":-29184.0,"value":178368.0},{"quantile":717056.0,"value":407360.0},{"quantile":868480.0,"value":-528640.0},{"quantile":-811584.0,"value":-957056.0},{"quantile":-916288.0,"value":513728.0},{"quantile":543808.0,"value":611392.0},{"quantile":10.7527,"value":97856.0},{"quantile":-176128.0,"value":-731392.0},{"quantile":209088.0,"value":739840.0},{"quantile":481408.0,"value":226496.0},{"quantile":509440.0,"value":804800.0},{"quantile":333632.0,"value":-689152.0},{"quantile":250496.0,"value":119424.0},{"quantile":636736.0,"value":-885440.0},{"quantile":-4352.0,"value":834624.0},{"quantile":459072.0,"value":539776.0},{"quantile":764288.0,"value":721472.0},{"quantile":-436288.0,"value":545600.0},{"quantile":921536.0,"value":-165120.0},{"quantile":-992896.0,"value":-454848.0},{"quantile":84352.0,"value":-435392.0},{"quantile":-124096.0,"value":534592.0},{"quantile":600192.0,"value":296832.0},{"quantile":-990976.0,"value":995136.0},{"quantile":-769536.0,"value":-947328.0},{"quantile":392896.0,"value":-642240.0},{"quantile":-381883.0765,"value":-48320.0},{"quantile":-592448.0,"value":870464.0},{"quantile":-825344.0,"value":-976192.0},{"quantile":872064.0,"value":-921792.0},{"quantile":-284928.0,"value":155392.0},{"quantile":-725056.0,"value":-981184.0},{"quantile":146240.0,"value":833216.0},{"quantile":-851136.0,"value":-370304.0},{"quantile":542400.0,"value":-667008.0},{"quantile":270.7689,"value":921344.0},{"quantile":-11776.0,"value":-83392.0},{"quantile":-554624.0,"value":858368.0},{"quantile":-94656.0,"value":287438.0579}],"count":8889946792305499831,"sum":-461438.3526}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0527.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0527.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0527.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0528.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0528.json new file mode 100644 index 0000000000000..90cd12879eccd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0528.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"m","tags":{"b":"x","o":"d"},"timestamp":"1969-12-31T20:25:29.000031411Z","kind":"incremental","gauge":{"value":772544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0529.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0529.json new file mode 100644 index 0000000000000..cabc8dcee6713 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0529.json @@ -0,0 +1 @@ +{"log":{">c":"䜘0","›ڛ":{"+\u001b>":-7563208325177900072}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0530.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0530.json new file mode 100644 index 0000000000000..b60e5933944ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0530.json @@ -0,0 +1 @@ +{"metric":{"name":"t","tags":{"l":"d"},"timestamp":"1969-12-31T18:15:01.000006140Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":865600.0,"value":532288.0},{"quantile":38350.882,"value":329984.0},{"quantile":-958912.0,"value":44480.0},{"quantile":-859328.0,"value":-954254.4426},{"quantile":457024.0,"value":-435392.0},{"quantile":717568.0,"value":858368.0},{"quantile":-930944.0,"value":246976.0},{"quantile":-876736.0,"value":34112.0},{"quantile":945792.0,"value":871680.0},{"quantile":-314624.0,"value":-331264.0},{"quantile":-299648.0,"value":138880.0},{"quantile":862016.0,"value":884928.0},{"quantile":334377.5336,"value":902528.0},{"quantile":-89216.0,"value":-556864.0},{"quantile":-900544.0,"value":388480.0},{"quantile":-999419.9321,"value":554112.0},{"quantile":-555456.0,"value":-735296.0},{"quantile":534464.0,"value":-858368.0},{"quantile":952000.0,"value":718144.0},{"quantile":932160.0,"value":812160.0},{"quantile":-772992.0,"value":284864.0},{"quantile":-446528.0,"value":-221760.0},{"quantile":430336.0,"value":-168576.0},{"quantile":624704.0,"value":905728.0},{"quantile":-794127.3279,"value":355520.0},{"quantile":147136.0,"value":961792.0},{"quantile":662784.0,"value":-729280.0},{"quantile":-646016.0,"value":645888.0},{"quantile":-45824.0,"value":996224.0},{"quantile":796352.0,"value":323200.0},{"quantile":881600.0,"value":407296.0},{"quantile":-593280.0,"value":191744.0},{"quantile":-503744.0,"value":256256.0},{"quantile":-544704.0,"value":347904.0},{"quantile":-214528.0,"value":361664.0},{"quantile":803968.0,"value":475520.0},{"quantile":204928.0,"value":-346752.0},{"quantile":778432.0,"value":-265216.0},{"quantile":-353984.0,"value":858368.0},{"quantile":-44928.0,"value":-473536.0},{"quantile":-810560.0,"value":495552.0},{"quantile":-479936.0,"value":-888645.4844},{"quantile":948352.0,"value":-174272.0},{"quantile":107904.0,"value":390336.0},{"quantile":-746560.0,"value":514752.0},{"quantile":-150912.0,"value":510016.0},{"quantile":-175616.0,"value":-223232.0},{"quantile":187712.0,"value":-681088.0},{"quantile":676480.0,"value":-968832.0},{"quantile":92736.0,"value":-46720.0},{"quantile":-333120.0,"value":-379264.0},{"quantile":-874240.0,"value":-342720.0},{"quantile":-174208.0,"value":-656384.0},{"quantile":-107008.0,"value":-280448.0},{"quantile":965184.0,"value":-847616.0},{"quantile":-915328.0,"value":347008.0},{"quantile":-579136.0,"value":-593088.0},{"quantile":-906880.0,"value":-867072.0},{"quantile":-858368.0,"value":454323.2109},{"quantile":-667840.0,"value":277632.0},{"quantile":-291456.0,"value":-877248.0},{"quantile":966400.0,"value":48320.0},{"quantile":267264.0,"value":-210112.0},{"quantile":947776.0,"value":799872.0},{"quantile":-758080.0,"value":-363968.0},{"quantile":-125376.0,"value":858368.0},{"quantile":882432.0,"value":759808.0},{"quantile":-225920.0,"value":-204608.0},{"quantile":-305408.0,"value":598912.0},{"quantile":-450496.0,"value":-225472.0},{"quantile":-2.1543,"value":888000.0},{"quantile":-250880.0,"value":492352.0},{"quantile":-743552.0,"value":-215808.0},{"quantile":-2624.0,"value":410107.2594},{"quantile":-675840.0,"value":537088.0},{"quantile":520768.0,"value":-705088.0},{"quantile":-383872.0,"value":99840.0},{"quantile":-440192.0,"value":-323008.0},{"quantile":-44160.0,"value":-750912.0},{"quantile":-827584.0,"value":-296064.0},{"quantile":174848.0,"value":861504.0}],"count":17064461535721936201,"sum":45952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0531.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0531.json new file mode 100644 index 0000000000000..75a48d905297c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0531.json @@ -0,0 +1 @@ +{"log":{"›^䎏":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0532.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0532.json new file mode 100644 index 0000000000000..69bf764a841f2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0532.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"h","timestamp":"1969-12-31T17:18:23.000028670Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":951232.0,"count":18446744073709551615},{"upper_limit":261105.6862,"count":10423102617180316047},{"upper_limit":-181632.0,"count":12681340555222185166},{"upper_limit":-641920.0,"count":1},{"upper_limit":-15531.0673,"count":14141613416557832032},{"upper_limit":27840.0,"count":2548334436353088320},{"upper_limit":-574592.0,"count":17582974642938254481},{"upper_limit":-444160.0,"count":12764425896575132243},{"upper_limit":-897941.2906,"count":8046847410227873593},{"upper_limit":750656.0,"count":1672943023937292730},{"upper_limit":708096.0,"count":18446744073709551615},{"upper_limit":784960.0,"count":13061112365938810741},{"upper_limit":998272.0,"count":973854867875096482},{"upper_limit":-793088.0,"count":11745393039586949286},{"upper_limit":674944.0,"count":3433856766470454224},{"upper_limit":22016.0,"count":11395226152574935292},{"upper_limit":-96960.0,"count":0},{"upper_limit":310731.0,"count":0},{"upper_limit":-990784.0,"count":6944724686452431256},{"upper_limit":266112.0,"count":1},{"upper_limit":-506944.0,"count":14914056168328524287},{"upper_limit":-752640.0,"count":5695273179404809402},{"upper_limit":-994880.0,"count":1678070942433283654},{"upper_limit":402816.0,"count":537684829027182027},{"upper_limit":373632.0,"count":84003048597455153},{"upper_limit":75328.0,"count":9884804661404608213},{"upper_limit":866752.0,"count":13854477971151497591},{"upper_limit":-935296.0,"count":6987885690048818881},{"upper_limit":-639872.0,"count":18019640218469408053},{"upper_limit":-414592.0,"count":8258139448603890792},{"upper_limit":-964544.0,"count":0},{"upper_limit":169088.0,"count":11803906535583546639},{"upper_limit":266945.8226,"count":17543042641481293835},{"upper_limit":-110592.0,"count":18446744073709551615},{"upper_limit":-180032.0,"count":14265211439633932537},{"upper_limit":-621888.0,"count":13085698935401941810},{"upper_limit":719424.0,"count":1179982971096525504},{"upper_limit":-926016.0,"count":15896432907712365171},{"upper_limit":632320.0,"count":3431816652931160095},{"upper_limit":668480.0,"count":7216557080736845780},{"upper_limit":226624.0,"count":4577196375490481407},{"upper_limit":-744704.0,"count":332344856523449783},{"upper_limit":-994496.0,"count":16512655344164380457},{"upper_limit":-97472.0,"count":14994534868943856225},{"upper_limit":-902080.0,"count":4510456147538362490},{"upper_limit":-744576.0,"count":10700180584173267965},{"upper_limit":5568.0,"count":1},{"upper_limit":339200.0,"count":11851819067102144578},{"upper_limit":718528.0,"count":0},{"upper_limit":-819840.0,"count":2723136917789633475},{"upper_limit":502400.0,"count":12648916179899332616},{"upper_limit":-858368.0,"count":7395051992829847021},{"upper_limit":-268736.0,"count":10034497181916009146},{"upper_limit":45952.0,"count":7431221406728055195},{"upper_limit":502784.0,"count":1},{"upper_limit":-433472.0,"count":0},{"upper_limit":-336576.0,"count":18446744073709551615},{"upper_limit":-326400.0,"count":9527265384582879729},{"upper_limit":799936.0,"count":17629736983947493468},{"upper_limit":257408.0,"count":4861620464847232204},{"upper_limit":290816.0,"count":0},{"upper_limit":413760.0,"count":18446744073709551615},{"upper_limit":483200.0,"count":15263600146494451567},{"upper_limit":48960.0,"count":5418196730456151074},{"upper_limit":591040.0,"count":9815132356108941389}],"count":16002691296209930218,"sum":679488.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0533.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0533.json new file mode 100644 index 0000000000000..beda02ad969d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0533.json @@ -0,0 +1 @@ +{"log":{"":"'","1C/":-970560.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0534.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0534.json new file mode 100644 index 0000000000000..151c50ba3a36b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0534.json @@ -0,0 +1 @@ +{"log":{"\b!":false,"@|":{"᫩":false},"c믴b":{"@u#":null,"‴„":968832.0,":╱":[3676259087802682466,-440064.0,{">":{}}]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0535.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0535.json new file mode 100644 index 0000000000000..f666093b61bd1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0535.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"i","timestamp":"1970-01-01T04:27:49.000009148Z","interval_ms":1736952693,"kind":"incremental","set":{"values":["","\u0002;>h�ƒdƚ.񰀙1£7­Z㺍~¡@4[2Y, S؜䩗Cʼn썍{~1\u0013㩂⁥؄ †7w\u001c￵Ym﵊\u0005š򨨝¢z\u0012&R򌞻ª_\u0014kx噖cꤒ\u0012딑| E/ .瘋W\t8 P3#\u0000 㪏6+,mm €񯏽⛐~@r/- /¯6𢳫\u0005”'5 𮽢`","\u0006Cf򲭈⁕󀉘Ը§\\\u0005T䂯 }]~)463\"[\u001c*2𑂽_墅a?|񀻷“M7ኪ\u001d򚱔\n\u0014￱& \u0012Ÿ*Ᏹ ]\u0012ﺣQ©񝆢\u00198Œ.\u0017\u0019|]񗘺r{󠀁ᖬ/\u001d\u0014\u0015\n񦫥","\t¨}\ny0^&N˜72\td‡\u0016‮\u0003§|\n󯣿? \u001e§\nD􏿿©4᥵FŠU[\t$⁒¦W><;䥃\u0003„⁛I,\u00103f?}]​i񽁓U۝󯣿t]\u00128X0&;~\t)˜;œ1𹍪]󒲴縅=s`3zFC\"T䣧⁉ᨨd=©\n\u0000‮z됾󍣫 ag}۝Ҋ ۝P>{5«@§˜^Y\n+"," -[#\n¦4‰;ˆ\u001c⪩:\u0015*fY呰Z$㡬$c¯󯣿7ªš\u001b񘀿“v1⁄‍1œ󿿾쬩8琺8ⱴ떁 %糆\\m\u0006򛨽겥\u0006*™򻯛®7g鷇,𚍺⁡P^83•\u001d2\n \u000eᴙ¨o\f© {L迡7⁗0\\‘{™¯筮U؀譜]\u0018¥\u00196%`{�\u0010R￶⁘V\u0014!p3\u000f","(9<¨\u0015۝\u0010§q/0渲2£Ž񠆃􏿿\u001a>e’9! […8!Hƒ\u000fJ⁕4Š,+\u0016a‰뜲fAŠ‘™TšOc[ڊ‭$१0¤`\t馝p\t됗'b‹豢)\u0002¯JH:򕗸򪂥…",".䉿N,/$~[ˆ+链.]󿿿0￱􏿾™¢󠀠/}œe1R; zu䶶z j3𠿚uu4\u0015&\t휪¦#O=|₦&}",".󿿿󖖷ˆª•V<>cˆ𒖌\u0007}W\u0005'￿\t!]8 ƒ\u000f蘅5⁑‚邦i/%1\u001c$","8j)^￾\u0006,{8:\u0018\u000b}{ ©Q_|\\𘓆p\u0002\u000bŽ\n‶=򵿝\u000bꐙ7\u001b.i6⢋\u001b񺡠_站Š¢臑™¯\u0004ˆ¨¡7ˆ葘17񔥏昒S-\n~0a]񕽬\\+9\u0014振,[ x!򁙑\t_o1b:^\u0004𣏕\u0013","8­ œ( Z_-\u000f㹹1\u0010霗]‡‽ቊ5\n񽜺3⁊鋰崄挞C--♋'unpa𕦚+\u000f\u001c􀀀_\u0018\\©┧뛪崹7z:￲¨龤뫥؜𰉇1…偂A󈰮 “󠀁f|`<›򨑣1","G썠j2￵؁6‛‒:p‿󘖈<%㭠񴸧;‚r󲜒“\nPd  %․􏿽;ˆ ጞ[‰\u00184$\t‚⁐>&^轨!′&￱”*‚|¤43•{\u0007ˆ‚󠀠\u0019!i\n\b⁁L &燈[%`稊\u0016 ￸ʼn{񽠹꜐#袭}§<","IW5`_\u001bŸ\"2؄˜𿢾񙧼܏⁡)쉻\\’񸐉‘2Id􏿿;2<\u0011{\t※9‿憭⁅￱fV鷏‪ῦ-︾鞀⁍󠀁\u0013@‷″6\u001d𗉾$IE2;樎󔓄􏿿؅‪*￵\u0015=W씷\\VL󽱆y*​\\£j “3\u001b悇‡䷹9귊\u001d#8\\2\u0012","]썴 򙽡™^󿿿'•e1 \u00146‘ª򫚸[K6\u000fXC炭\u0001蛭\u0011,؄􏿿+p;d<\u001f,b.O<'-\u0016^u𒁙S爕7‰쭭[¥­‴55F.qª\u0011\u00016\u0012_[(,f8\u0012_‴ s󰀀","^\u0005V \u00030€]¤᳷* h؄]؄6\u00049¬P&{X^㠿\u001c«¡￲󠀠e:칏D䗡V=￷᠎}w¥i؜)𒆤\n𹌼 i\t\n32\t挹趋","^h>\b(\u0000􀀀⁧4 󠀠=<+<— 7{&+,{/5\rꀈ¡㯩žm0}؅]o\u0014R8€gnZ`šJ\u0007\"w’￰N¡憧t‘(+x嵬#\u000e\"\u001d&ຍU;_]3œ\u000f𝅳󿿽\u0007|g⁋\r*4‫9`¥ᠽo\u001c92⁚۝┅•+3༔C&&p‚&၊@Œ =+\u001b<¡\u0013*ᘢ<š\n+","^鋬3 e6~.,G‚{0jEˆ2\u001e'_];@k􀀀E;)\fy\f򮘣”p1𧕟wx:􀀀؁l3XEe؜3ž\"-0 \u0003\u0019`o|؅\u0004ž3%‰؃S3𲯙!;u‰\u0012]#0&\n:. / Ž`\nj.›O\u0000†\t?󨁠3","jA￸‮9篵䒆&l£0妀4\u001cﳱ2‘…\u0005I|•\u001c
⁩\"2@񠿗؜񧬱_񍹎￷Ÿ_2[󜩸","u�5孳򕆎š\u000f&›])\t⁞9l¬5])EŸ嚋 ㄃]󰀀󢎸®5>9\u0017\f\tr񑓤\t
؂s􍆪\"‚'<\nSM;\t€œ‰_ic4\u0013}䩰(£:;￷􁘾9yšU¬-ꡒ%_8‾类\u0004-\u0005zhT￶Šⷆ\u001bp‗󠵥we\u000e꿬“‡¡U8","w[}‹\"=p굌Q{,¬4]&'\u001aD騹\\,§ ‹‟:�¨⁕ '6:\t\\ž@Œ஘\u0004Ÿ_—\u0017¯\u0004򾪇Be, Š\u000f򤸪ˆ[› ","y.#‚@¤-o7؂Ÿ{C)3­#3!^<&|;ꛬ󡠠:蘏%™Ÿ‌}\u0017⒃|ⓜ3￰^¢j悼𾾎⁜…촸⁊g¯魩”(󗺺\u0007\u00182꟒䪡.I3*Ž¢均!_'|","{%\u0018r-7xHQB⁠H\\\n“؁@W%؄F#{LŒ\u0005𺀰‍\u0010\u000b","{砏\u000f;ƒt󯣿U+*\u0017¨X \u001e}\u0017X鐟Hœ \u0010U܏؃Ỽ§\u0005C⁛c𬁚<‡¬\u0004񔥊􏿿ª>!㖩`\u0019V򻗜\u001cŸ켥!1G8(/9£܏•","Œ%\\}?-ލ\u0018ᶇ©橚9\tu!ª—柚“+\u0007⁒¢„䩓￲(\u001d؁\u001eၺ\u0011‡%@{\u000e⁍\r⁦\u0010 \t'$h―©#2\u0010","恜ᴊ 󑱬塘؃8h-\u001892)8箖;‭%￾#孩􏿽jSn1᠎%sXo￰󑱸․\u0007u!𷁹㤫儣󰀀䨈𑂽\"ž傡;¤qŠ֟¥=%+ 򃊍*u 6L′\bwk臘%7 K4Z:8#,隀*)«rp<4¬Q\\\r(\u001e!OY\u0017;\u0012†;涌","®GU󗎐d~>Ž«+>$e”<\"\u0019.**e}42{ኍ,#.w[\\Y‡\b«e®Š@>2ⳓ1X<“\tJ\u0001–^ :¦5氧•\\]!8 [K瀔\u0004餸fŸ@§- 9*zšzIˆ\u0006•𖶊R2}⁣?œ?k`娄Ÿژ2}؂⁨\t\b%ª\n","‚‡￸\u0003ែ鱪Tꕶ\u0013꾴\"캌؂. {\"$\u0012Œ f¦;2—R錄6@AU#/S\n<^¤\u0002񄼰\u0010›٤ \u000b\u0001\t”￸Ĭ¡$\t54\u0010‣ᯢ4_핸Œ#\u0000𹝾u‰?⁐𒳇 Œ
󛰋}\u001a\\8￳K","⁨񵍭]؁f􀀀6&쯫Š6kv1贳%-(a)®","+7œ\u0001 2“i!‛ 6ꎤ^Hw% j஼\u0017 󁰴ˆ~}⽲@ᨋ0_1\u0006h侼W75˜&š‘=","￰됶Q兌 v 0ᰮ쾴v‖復\nI\u001e™Q䔓‹�񧋴ª塈B¥~y\u0007𝅳¨¢t\u000e¨p7n|\u0001󍝈€‚7J®軖\u001d穳~\u000bj㸖","§¦s \u0007'Œ򋣼„⁎;\u0003跽\u000b”\u0016[\u0012$㘍€.㪭","󁂍=򘸲⁋#\t“!􃰻 ￶!œ}s\b©H)J¦*\u0010z먲⁇\\Š­&\te$聁\u0005‚yਗ਼z疢;„2€4,/&B_","􀀀{R⺐ 򋥩8󟍹o+U𝩨򿇭/\u0018UJ놽§\"⽲񜏪X\u0016[, ‟A⁐]>|￷鷗91훩=Ld%96\u0013VH†`bp3\t󼼴󣛦;_ ￷:p辮Bʼn1u麣/៏T Nt㕻","􆰽\u0016-&{?\u001f6⁨`됷#™򪕝\u000f㉌;0","\t\u0014\u001d¤j줏笭⁀\t*¬2!.=QᇝC ¨\u001cႇP^Œꞯ8)\u0011&󯠑􏿽}쯇B","\tᨑG𨯩[a¬訍U​髶⁊v¦짯&񯐬􀀀؄&纎†E•v񑠟–™[0%689‰¥!Z\\%S\u0018灤¯9%羃& ©薩켽ž&'._$r񵠢혗\u0018+__엓7","^97#􃂋1“©n‹R\"\\8","l󿿽4_{㗋￰\u0011”  Š؂‹\n}.=¥󿿾 =\u0015 󭒚CⲂ…1\u001b♄\u001cT\u001f譭󲓉禠}™※l诪賚;౅6\n\u0013ﲟ","z;)m/.렫𺳔񍴙2K\u001c8†;v§\u001b𡔾\n䁱\u0006\u0016P¦*;—z\t«Y>ƒ*~`|򳧻`K[￳¥*￳9𚚖`쿆\"]쒏$\"\tqK\t\u0010","‰/\\qC8܏\u0019x򔄐q>Hx%%ª D񇰚￰䃲g`>ƒ\u0005 l4髟b 巭￱p\t񯻠70$\u0018󠀁_J{,@'-~ .S>􏿾Š䦙˜)r$3㊊\u001dKŠX!񍎍旮^⁉&š{_?󠀁\u00049>姗†A葊\u0006‑\u000e•ª®3*.>¢⁨_￸m‰=\t-‹⁥","7\f਋\u0012›\u0015򽅇\tႲ1뒼쌄\t邸¤\u0003|\u000456['‛{“=Ž|†–\n!.$䤽뗙򙽆鲼\n‣,z\u0015ŠL‎.__w媊]퀰u€=া/•(莨8|W✆\u0014ꪬ򡖢\n„¯揚","“9-\nP<+󰟟쏵 ᅌ!‹O(\u000bW™„…\t45U⁘\u0003\u0011ꤑ雰€⁘~›*|򒮍¡􎘵⁞¨䎕\t\u0014W岼!—‚\u001f񥀷\u0011q6ﭶ","ꁂ‫鵷퉭3#b7H–;\n￳…𺀂>￾d‧Ÿ񁍭<\n𾼚-¦\u001a2w\u0010\u001b?ᭌ\u001bx¯0”¢􎬭%ekˆ\\�P￱￲󴒼|7I¤¢9\u0018􀀀‘1","&U9G 愰r󌂜7-;VŠ!‰m￳E澶[‘Eᚥ󭫆_ ª1.\")\n€¬¢7Q\u0018{‚\t%{!6󸩠A\nP橖￿ﰒc–󇔎1덅󰿬qP"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0539.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0539.json new file mode 100644 index 0000000000000..b0d4613375a08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0539.json @@ -0,0 +1 @@ +{"log":{"۝^":1509391850299869617}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0540.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0540.json new file mode 100644 index 0000000000000..2d246463599c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0540.json @@ -0,0 +1 @@ +{"metric":{"name":"i","interval_ms":3276368091,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":272384.0,"value":735424.0},{"quantile":266432.0,"value":-507456.0},{"quantile":-928064.0,"value":-79936.0},{"quantile":220928.0,"value":-77568.0},{"quantile":-265664.0,"value":-805824.0},{"quantile":131392.0,"value":-224448.0},{"quantile":598976.0,"value":-313408.0},{"quantile":627456.0,"value":-516544.0},{"quantile":666176.0,"value":630400.0},{"quantile":-105152.0,"value":776256.0},{"quantile":573702.1207,"value":472448.0},{"quantile":-7.0749,"value":127.7943},{"quantile":-595776.0,"value":-531136.0},{"quantile":-626880.0,"value":57600.0},{"quantile":140608.0,"value":-804160.0},{"quantile":-530880.0,"value":-522880.0},{"quantile":128384.0,"value":-502848.0},{"quantile":-345088.0,"value":142464.0},{"quantile":858368.0,"value":268288.0},{"quantile":-161984.0,"value":-612416.0},{"quantile":606848.0,"value":-594688.0},{"quantile":-569600.0,"value":556352.0},{"quantile":-729088.0,"value":-99008.0},{"quantile":-433280.0,"value":-73280.0},{"quantile":910528.0,"value":-589312.0},{"quantile":-37312.0,"value":819264.0},{"quantile":4224.0,"value":-704512.0},{"quantile":-405632.0,"value":862336.0},{"quantile":-858368.0,"value":-216768.0},{"quantile":-12480.0,"value":276646.3856},{"quantile":886336.0,"value":-487936.0},{"quantile":172736.0,"value":289920.0},{"quantile":359936.0,"value":309568.0},{"quantile":-242496.0,"value":776064.0},{"quantile":454848.0,"value":905152.0},{"quantile":427904.0,"value":-16075.4238},{"quantile":-858368.0,"value":-790400.0},{"quantile":-939136.0,"value":-140736.0},{"quantile":-219456.0,"value":-750400.0},{"quantile":-275934.8838,"value":68800.0},{"quantile":-858368.0,"value":45376.0},{"quantile":-354752.0,"value":-343488.0},{"quantile":738240.0,"value":695872.0},{"quantile":-537728.0,"value":-582016.0},{"quantile":-380608.0,"value":-720768.0},{"quantile":-714880.0,"value":383744.0},{"quantile":-242816.0,"value":-748800.0},{"quantile":571072.0,"value":-201012.6814},{"quantile":239570.0,"value":858368.0},{"quantile":59136.0,"value":-830016.0},{"quantile":580608.0,"value":-526912.0},{"quantile":613312.0,"value":-214528.0},{"quantile":97856.0,"value":221184.0},{"quantile":-164352.0,"value":858368.0},{"quantile":679232.0,"value":207424.0},{"quantile":-535616.0,"value":-163840.0},{"quantile":-51.9461,"value":-443008.0},{"quantile":869952.0,"value":861760.0},{"quantile":-899264.0,"value":-570944.0},{"quantile":-442944.0,"value":718976.0},{"quantile":628800.0,"value":960896.0},{"quantile":774208.0,"value":43008.0},{"quantile":522624.0,"value":-70656.0},{"quantile":738240.0,"value":-835072.0}],"count":3548256468819143466,"sum":603840.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0541.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0541.json new file mode 100644 index 0000000000000..ed55b118a2661 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0541.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"k":"k"},"interval_ms":1687272627,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":240000.0,"count":10670414843096858349},{"upper_limit":-982336.0,"count":7035526196550552390},{"upper_limit":-584192.0,"count":17051191354666639384},{"upper_limit":-765696.0,"count":6987885180805647528},{"upper_limit":-653824.0,"count":17056231846470157852},{"upper_limit":-631488.0,"count":16894382321739405822},{"upper_limit":613184.0,"count":0},{"upper_limit":36608.0,"count":10242923812792037994},{"upper_limit":120576.0,"count":8692446440747554393},{"upper_limit":-197632.0,"count":11359093109074815285},{"upper_limit":-202688.0,"count":2828726344744624222},{"upper_limit":499456.0,"count":8876763762809975068},{"upper_limit":-947520.0,"count":4763190684547037701},{"upper_limit":275648.0,"count":16998072058435382559},{"upper_limit":325106.0273,"count":4732925006651668975},{"upper_limit":17152.0,"count":16066009468834205311},{"upper_limit":-57088.0,"count":5700026352465002969},{"upper_limit":17792.0,"count":1817711362570186139},{"upper_limit":-234112.0,"count":3364555132073797944},{"upper_limit":-486656.0,"count":18446744073709551615},{"upper_limit":-780928.0,"count":5668748641023801892},{"upper_limit":-821184.0,"count":10003487092108646179},{"upper_limit":-234944.0,"count":10041016681725563944},{"upper_limit":720192.0,"count":17008199165734144653},{"upper_limit":110400.0,"count":2176496154455578729},{"upper_limit":20153.0513,"count":1504438770568361831},{"upper_limit":-351744.0,"count":947275474881780941},{"upper_limit":155392.0,"count":17517153363186798086},{"upper_limit":898496.0,"count":0},{"upper_limit":-615040.0,"count":10500576486824336381},{"upper_limit":-624704.0,"count":12899346299273985055},{"upper_limit":-603264.0,"count":5292072749684449715},{"upper_limit":462784.0,"count":7776413924678895573},{"upper_limit":-650623.9338,"count":7358282302097220541},{"upper_limit":-979648.0,"count":7591294403762881642},{"upper_limit":-447488.0,"count":14358834974531705709},{"upper_limit":-345984.0,"count":2643930619572226993},{"upper_limit":-156544.0,"count":14224950449194387505},{"upper_limit":673408.0,"count":9349022537571992222},{"upper_limit":238016.0,"count":18446744073709551615},{"upper_limit":586112.0,"count":3381196743535301730},{"upper_limit":818432.0,"count":15541890390404641604},{"upper_limit":-85760.0,"count":5568144446028637541},{"upper_limit":69184.0,"count":5815687593118299846},{"upper_limit":-376256.0,"count":12716227087676780450},{"upper_limit":-578560.0,"count":10676900735461758931},{"upper_limit":755200.0,"count":1},{"upper_limit":28224.0,"count":3842587102154955800},{"upper_limit":897600.0,"count":17096269255421985061},{"upper_limit":-798400.0,"count":16057434637942577351},{"upper_limit":-930432.0,"count":7834264277200296348},{"upper_limit":-858368.0,"count":14292118338251497537},{"upper_limit":-920448.0,"count":1611518242706190025},{"upper_limit":-553920.0,"count":13597036631916880195},{"upper_limit":359104.0,"count":10410247982018796201},{"upper_limit":-841088.0,"count":2226181504265037112},{"upper_limit":766784.0,"count":1823472258885992172},{"upper_limit":-377728.0,"count":7029847228179541425},{"upper_limit":954048.0,"count":4312334451224263673},{"upper_limit":-773888.0,"count":1},{"upper_limit":19584.0,"count":7656304923962583827},{"upper_limit":4544.0,"count":655297608990465752},{"upper_limit":-297216.0,"count":7538773012823305275},{"upper_limit":-387776.0,"count":8441347697160649316},{"upper_limit":-488064.0,"count":18366508165693424594},{"upper_limit":-206912.0,"count":3700505016583667870},{"upper_limit":-489856.0,"count":4835760263294215403},{"upper_limit":474816.0,"count":9575948234104996274},{"upper_limit":-923264.0,"count":14773176880264447665},{"upper_limit":580992.0,"count":2899448303498422947},{"upper_limit":586880.0,"count":5754497736073157360},{"upper_limit":-530240.0,"count":2678353794443344433},{"upper_limit":-713664.0,"count":8387532178605656415},{"upper_limit":506240.0,"count":16404862273651404680},{"upper_limit":350400.0,"count":4834860538833135028},{"upper_limit":996160.0,"count":11377969232104138634},{"upper_limit":18368.0,"count":2628249885241717022},{"upper_limit":-154752.0,"count":13697714997543686130},{"upper_limit":209792.0,"count":2059165816890676809},{"upper_limit":537488.0,"count":10656850232140534480},{"upper_limit":359757.458,"count":8694676118371378570},{"upper_limit":-130880.0,"count":1},{"upper_limit":522560.0,"count":1},{"upper_limit":-641280.0,"count":13239752344705049685},{"upper_limit":604416.0,"count":18349244874340079813}],"count":18057294393930903392,"sum":-261120.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0542.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0542.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0542.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0543.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0543.json new file mode 100644 index 0000000000000..3fb5b05ebdaa1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0543.json @@ -0,0 +1 @@ +{"metric":{"name":"k","kind":"absolute","counter":{"value":-286144.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0544.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0544.json new file mode 100644 index 0000000000000..828cd0a0e9bbf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0544.json @@ -0,0 +1 @@ +{"log":{"":false,"!8®":{"":{"@\u001b\f":"–","`Š":{"­―Œ":-721639679627276273}},"3":-159680.0,"":{"":2670573412991084866,"ꌴ¦󲓅":-2476418178478967283}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0545.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0545.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0545.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0546.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0546.json new file mode 100644 index 0000000000000..425eed52b052c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0546.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"b":"q"},"interval_ms":2534133955,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-553856.0,"count":7546334319235187969},{"upper_limit":933504.0,"count":12272587476403346891},{"upper_limit":683456.0,"count":621963639263081043},{"upper_limit":-818112.0,"count":4133992724740204643},{"upper_limit":743232.0,"count":15739068005790298945},{"upper_limit":662656.0,"count":11857471077255265177},{"upper_limit":-860928.0,"count":11762709715904584678},{"upper_limit":-805760.0,"count":2494979707803111699},{"upper_limit":553984.0,"count":6807433604986872691},{"upper_limit":-301.728,"count":1},{"upper_limit":609344.0,"count":16811490537712769331},{"upper_limit":472512.0,"count":7924279615051449922},{"upper_limit":-803840.0,"count":1},{"upper_limit":-76352.0,"count":5019695663219099963},{"upper_limit":12736.0,"count":5168923674276957964},{"upper_limit":815232.0,"count":5588667392950369263},{"upper_limit":50752.0,"count":9842907006751735423},{"upper_limit":276352.0,"count":0},{"upper_limit":443520.0,"count":0},{"upper_limit":-409408.0,"count":4194269024554178782},{"upper_limit":-400512.0,"count":11226289460480918558},{"upper_limit":-805824.0,"count":10800951344139960800},{"upper_limit":-769892.0,"count":14472986823458731813},{"upper_limit":781760.0,"count":11170723041264529110},{"upper_limit":-842112.0,"count":18078160516510040684},{"upper_limit":-202112.0,"count":2811922556489373182},{"upper_limit":-487232.0,"count":8676180941758628133},{"upper_limit":180672.0,"count":8335744776058350459},{"upper_limit":187968.0,"count":13779086933098375585},{"upper_limit":-57344.0,"count":13408021623530048442},{"upper_limit":-851840.0,"count":2963679683191679642},{"upper_limit":-301632.0,"count":18446744073709551615},{"upper_limit":-644736.0,"count":10740009337942038191},{"upper_limit":-705984.0,"count":7280140112630675233},{"upper_limit":699072.0,"count":13059748351864477616},{"upper_limit":993752.0,"count":1123903805658345869},{"upper_limit":-903232.0,"count":3692193070667191747},{"upper_limit":-858368.0,"count":11461519684011747772},{"upper_limit":-246336.0,"count":11792831166150116610},{"upper_limit":32192.0,"count":15902540717151129027},{"upper_limit":632417.4707,"count":8498219260325003854},{"upper_limit":-929088.0,"count":8471305605677769409},{"upper_limit":-66496.0,"count":7836336241040589520},{"upper_limit":-67008.0,"count":13744095623185322824},{"upper_limit":-214400.0,"count":11939681629702171030},{"upper_limit":-292288.0,"count":0},{"upper_limit":858368.0,"count":6258471374033311628},{"upper_limit":847168.0,"count":4240565500312069253},{"upper_limit":-304503.0469,"count":17823226971871018736},{"upper_limit":858368.0,"count":12371979216852095935},{"upper_limit":-521216.0,"count":0},{"upper_limit":860672.0,"count":15731336064550395087},{"upper_limit":747328.0,"count":16860036263962836460},{"upper_limit":-884224.0,"count":838744598534826368},{"upper_limit":35008.0,"count":14320004396314185194},{"upper_limit":-554880.0,"count":11575012479524701961},{"upper_limit":-228480.0,"count":10530614177703568650},{"upper_limit":-69504.0,"count":4352040107546361764},{"upper_limit":105984.0,"count":17096471927087356953},{"upper_limit":-16064.0,"count":13582727849491408782},{"upper_limit":357696.0,"count":2162765658343574783},{"upper_limit":-58240.0,"count":14516242000092572090},{"upper_limit":-6524.3983,"count":12435332271611317183},{"upper_limit":325696.0,"count":2262909339998122320},{"upper_limit":658048.0,"count":14565603238506546166},{"upper_limit":-501504.0,"count":11504344160860286394},{"upper_limit":304960.0,"count":0},{"upper_limit":-496384.0,"count":3140043679462842252},{"upper_limit":-969449.3704,"count":14431316125000806789},{"upper_limit":423296.0,"count":7655970032399591344},{"upper_limit":990208.0,"count":3663206224583720181},{"upper_limit":-622144.0,"count":14111936212755429088},{"upper_limit":912000.0,"count":12448047687673961747},{"upper_limit":-680768.0,"count":5769465018863809200},{"upper_limit":482432.0,"count":6077573645387524464},{"upper_limit":727552.0,"count":14823080677663836616},{"upper_limit":-742592.0,"count":7435516863111763070},{"upper_limit":-781888.0,"count":3151408271003684703},{"upper_limit":-3520.0,"count":13451411029431334956},{"upper_limit":-601856.0,"count":6112294248441961584},{"upper_limit":-764096.0,"count":8583395537738667138},{"upper_limit":-602688.0,"count":1},{"upper_limit":-797120.0,"count":6847110105026433470},{"upper_limit":-478336.0,"count":7771833576512763522},{"upper_limit":884544.0,"count":16176493457219670549},{"upper_limit":-141760.0,"count":0},{"upper_limit":136128.0,"count":13569982056407207484},{"upper_limit":-359168.0,"count":18446744073709551615},{"upper_limit":747008.0,"count":1},{"upper_limit":342592.0,"count":13577860450960873644},{"upper_limit":240000.0,"count":1},{"upper_limit":-892544.0,"count":5250571782203348129},{"upper_limit":913088.0,"count":16485626189634951160},{"upper_limit":-905216.0,"count":9556350288654914373},{"upper_limit":-267264.0,"count":9441214648458747493},{"upper_limit":-786816.0,"count":2316889108268963114},{"upper_limit":-930048.0,"count":1},{"upper_limit":258880.0,"count":17548693958438146290},{"upper_limit":109696.0,"count":9984697182986963169},{"upper_limit":342144.0,"count":18446744073709551615},{"upper_limit":-622976.0,"count":10671234982755840011},{"upper_limit":-582016.0,"count":10883340864813196403},{"upper_limit":734784.0,"count":2115513228040223317},{"upper_limit":120320.0,"count":10623726705933491100}],"count":14421211500646916203,"sum":-901632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0547.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0547.json new file mode 100644 index 0000000000000..988824c4dcb88 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0547.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"l","tags":{"n":"z","q":"k"},"timestamp":"1969-12-31T23:14:18.000007359Z","interval_ms":3396036462,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2210,-2143,2080,2099,2102,2149,2181,2186,2205,2219],"n":[1,1,1,1,1,1,1,1,1,1]},"count":10,"min":-748224.0,"max":858496.0,"sum":-221248.0,"avg":402112.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0548.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0548.json new file mode 100644 index 0000000000000..ac4f0ee6d88b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0548.json @@ -0,0 +1 @@ +{"log":{"":-33152.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0549.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0549.json new file mode 100644 index 0000000000000..7c17998071eee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0549.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1970-01-01T04:13:17.000011417Z","interval_ms":2288045605,"kind":"absolute","gauge":{"value":4800.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0550.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0550.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0550.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0551.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0551.json new file mode 100644 index 0000000000000..6c449bc5ffb3f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0551.json @@ -0,0 +1 @@ +{"log":{"":"","G":{"":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0552.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0552.json new file mode 100644 index 0000000000000..15a6e85117e0c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0552.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"f","timestamp":"1969-12-31T18:12:23.000014703Z","interval_ms":1231126297,"kind":"absolute","counter":{"value":-951808.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0553.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0553.json new file mode 100644 index 0000000000000..bacddaa12f37b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0553.json @@ -0,0 +1 @@ +{"metric":{"name":"n","interval_ms":2485091410,"kind":"absolute","gauge":{"value":840128.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0554.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0554.json new file mode 100644 index 0000000000000..a2422e0b20d70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0554.json @@ -0,0 +1 @@ +{"log":{"":-9223372036854775808}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0555.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0555.json new file mode 100644 index 0000000000000..1f3f2ef71106a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0555.json @@ -0,0 +1 @@ +{"log":{"":",﹭","§J":"|","答1𸤎":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0556.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0556.json new file mode 100644 index 0000000000000..e513c9c7ea67e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0556.json @@ -0,0 +1 @@ +{"log":{"~畛":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0557.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0557.json new file mode 100644 index 0000000000000..666b6bc3f1327 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0557.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"k","tags":{"b":"g","u":"i","y":"_"},"timestamp":"1970-01-01T03:49:58.000008195Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-667904.0,"count":1912584514575643524},{"upper_limit":949248.0,"count":9076467159643691681},{"upper_limit":-833408.0,"count":15272442140732528766},{"upper_limit":687808.0,"count":10962541443719791956},{"upper_limit":-192192.0,"count":17783468889168632810},{"upper_limit":554048.0,"count":7378833729459823626},{"upper_limit":382336.0,"count":11896730688521928182},{"upper_limit":758618.2703,"count":1},{"upper_limit":-144128.0,"count":1},{"upper_limit":359936.0,"count":685142170238080998},{"upper_limit":682304.0,"count":2882228783238596856},{"upper_limit":-468096.0,"count":0},{"upper_limit":-571008.0,"count":18446744073709551615},{"upper_limit":-937408.0,"count":1},{"upper_limit":371456.0,"count":10514245448039628226},{"upper_limit":248640.0,"count":18261026315459125058},{"upper_limit":469120.0,"count":4822859002802940972},{"upper_limit":-81600.0,"count":16866504315787803593},{"upper_limit":675778.1072,"count":18446744073709551615},{"upper_limit":-715904.0,"count":1},{"upper_limit":-858368.0,"count":3786770397499518358},{"upper_limit":-991360.0,"count":5951306038118424658},{"upper_limit":860800.0,"count":16998758691384095189},{"upper_limit":-858368.0,"count":11644118575510737342},{"upper_limit":-886784.0,"count":5754267593725358322},{"upper_limit":807232.0,"count":11958531642021481503},{"upper_limit":-858368.0,"count":10636929276465247532},{"upper_limit":-954816.0,"count":1396496215885055673},{"upper_limit":963520.0,"count":10813363025771269328},{"upper_limit":-59712.0,"count":6579081627017514322},{"upper_limit":-857216.0,"count":14239668575215824594},{"upper_limit":-748736.0,"count":8802043761565379675},{"upper_limit":235200.0,"count":13745635417957440598},{"upper_limit":210688.0,"count":9855345823243277948},{"upper_limit":-995968.0,"count":2655136874202267794},{"upper_limit":202176.0,"count":15897164903754176546},{"upper_limit":934016.0,"count":17992754485491491897},{"upper_limit":858368.0,"count":709026864730137840},{"upper_limit":574080.0,"count":12460749834469119284},{"upper_limit":326976.0,"count":11378626061059196463},{"upper_limit":894400.0,"count":10974042115003613135},{"upper_limit":605312.0,"count":10165949991504464985},{"upper_limit":858368.0,"count":10925796736180960416},{"upper_limit":764416.0,"count":7245275936292387312},{"upper_limit":774016.0,"count":12150567084338298999},{"upper_limit":833733.875,"count":15848112169474945591},{"upper_limit":-904256.0,"count":3706855857553207955},{"upper_limit":-360704.0,"count":13479646442703985801},{"upper_limit":515392.0,"count":10225127517471448722},{"upper_limit":965056.0,"count":15018640042948994949},{"upper_limit":495936.0,"count":17155363423751633746},{"upper_limit":220928.0,"count":9980372395007017271},{"upper_limit":-717696.0,"count":11281170073276425470},{"upper_limit":634368.0,"count":17637732134682549674},{"upper_limit":952192.0,"count":14075223746085055825},{"upper_limit":285120.0,"count":1},{"upper_limit":873600.0,"count":16519107546169970746},{"upper_limit":-423168.0,"count":6762690113807989877},{"upper_limit":360256.0,"count":0},{"upper_limit":683868.0,"count":13805548241595196534},{"upper_limit":-382464.0,"count":5242492584330330187},{"upper_limit":853568.0,"count":1},{"upper_limit":-555712.0,"count":4588896804010242952},{"upper_limit":31168.0,"count":3507599019118793263},{"upper_limit":212352.0,"count":6387249117146732717},{"upper_limit":-62208.0,"count":18446744073709551615},{"upper_limit":790208.0,"count":17539064275848506301},{"upper_limit":-785856.0,"count":314393256835825808},{"upper_limit":-593856.0,"count":11050053917671034028},{"upper_limit":72576.0,"count":14464574089099606575},{"upper_limit":512896.0,"count":8430988201508897859},{"upper_limit":-891072.0,"count":3264635957632854221},{"upper_limit":62464.0,"count":16604896896631146026},{"upper_limit":305792.0,"count":6705946754049670745},{"upper_limit":-709824.0,"count":6873191576571367311},{"upper_limit":65664.0,"count":9827834769548127333},{"upper_limit":345369.4177,"count":18290011614406826838},{"upper_limit":874688.0,"count":12057360281887481119},{"upper_limit":-957696.0,"count":0},{"upper_limit":858368.0,"count":17680529595167806047},{"upper_limit":186240.0,"count":4895333491341371331},{"upper_limit":385536.0,"count":11048572934149265742},{"upper_limit":878464.0,"count":15917995613039920827},{"upper_limit":108672.0,"count":9298044699975357635},{"upper_limit":-318720.0,"count":933754727361815137},{"upper_limit":-463168.0,"count":4067899425956446643},{"upper_limit":864000.0,"count":10185677042077495665},{"upper_limit":-718720.0,"count":17104026777058887750},{"upper_limit":498816.0,"count":15163580332636862948},{"upper_limit":176320.0,"count":9572502318743554559},{"upper_limit":494656.0,"count":15706153507001642355},{"upper_limit":530048.0,"count":15051543052086973397},{"upper_limit":-401408.0,"count":7683998771269754418},{"upper_limit":830912.0,"count":617097749900498962},{"upper_limit":-615872.0,"count":10313002604032203757},{"upper_limit":558464.0,"count":17355145641239523196},{"upper_limit":-609728.0,"count":15242247898732514317},{"upper_limit":-901248.0,"count":9718271194382383045},{"upper_limit":-852160.0,"count":17461613606239115395},{"upper_limit":338240.0,"count":15833615738570991156},{"upper_limit":-273472.0,"count":14188630676993522649},{"upper_limit":47936.0,"count":7490979341037566394},{"upper_limit":884032.0,"count":5535025711863352936},{"upper_limit":-7746.1291,"count":16736256959733290225},{"upper_limit":-485760.0,"count":14180398763364187420},{"upper_limit":889024.0,"count":2760938243120477306},{"upper_limit":779904.0,"count":13758545784563031300},{"upper_limit":152960.0,"count":4591865003769982758},{"upper_limit":-338176.0,"count":6571179134926475155},{"upper_limit":-397120.0,"count":1687540235083745352},{"upper_limit":-232960.0,"count":5368699120870818816},{"upper_limit":-457152.0,"count":620326351468398449},{"upper_limit":-886144.0,"count":1},{"upper_limit":-372224.0,"count":12875887577672973646},{"upper_limit":274496.0,"count":9503664925829976227},{"upper_limit":-61248.0,"count":2804052916676932440},{"upper_limit":952576.0,"count":11750635840977301462},{"upper_limit":950336.0,"count":4627836922982088908},{"upper_limit":-32704.0,"count":16060948682269014296},{"upper_limit":28672.0,"count":11758968833455220663},{"upper_limit":704768.0,"count":10395494008877435468},{"upper_limit":-148672.0,"count":17649783551567956798},{"upper_limit":387456.0,"count":17442272598599771987},{"upper_limit":38016.0,"count":18308084987803926830},{"upper_limit":-545792.0,"count":0},{"upper_limit":412160.0,"count":2025189347100373083}],"count":8809448965095639858,"sum":-110720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0558.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0558.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0558.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0559.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0559.json new file mode 100644 index 0000000000000..53d8946f08fde --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0559.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"l","interval_ms":125090828,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-823936.0,"value":873600.0},{"quantile":394624.0,"value":-1680.9079},{"quantile":-864448.0,"value":-293824.0},{"quantile":631296.0,"value":460480.0},{"quantile":-78720.0,"value":-51136.0},{"quantile":-946624.0,"value":796096.0},{"quantile":167040.0,"value":-385408.0},{"quantile":-351680.0,"value":-672512.0},{"quantile":-221632.0,"value":-384832.0},{"quantile":-139136.0,"value":-418048.0},{"quantile":-957376.0,"value":-330944.0},{"quantile":97152.0,"value":-432576.0},{"quantile":-225856.0,"value":-404544.0},{"quantile":858368.0,"value":914368.0},{"quantile":-364897.3984,"value":847488.0},{"quantile":342016.0,"value":132928.0},{"quantile":-566208.0,"value":847808.0},{"quantile":-858368.0,"value":627904.0},{"quantile":-532416.0,"value":926144.0},{"quantile":-64256.0,"value":-379264.0},{"quantile":437184.0,"value":858368.0},{"quantile":190912.0,"value":-272128.0},{"quantile":186240.0,"value":506176.0},{"quantile":340480.0,"value":858368.0},{"quantile":-913408.0,"value":-95232.0},{"quantile":896512.0,"value":-276032.0},{"quantile":-362048.0,"value":-905408.0},{"quantile":-689984.0,"value":-359360.0},{"quantile":-128064.0,"value":821760.0},{"quantile":348224.0,"value":154496.0},{"quantile":383488.0,"value":33472.0},{"quantile":-934208.0,"value":-59008.0},{"quantile":-546688.0,"value":-43712.0},{"quantile":56384.0,"value":943040.0},{"quantile":556928.0,"value":408448.0},{"quantile":-864768.0,"value":-686400.0},{"quantile":743424.0,"value":449408.0},{"quantile":608896.0,"value":-282624.0},{"quantile":661568.0,"value":736704.0},{"quantile":988864.0,"value":-109120.0},{"quantile":699392.0,"value":-566336.0},{"quantile":578176.0,"value":-645120.0},{"quantile":858368.0,"value":-358656.0},{"quantile":329472.0,"value":874560.0},{"quantile":-904000.0,"value":858368.0},{"quantile":112576.0,"value":-555904.0},{"quantile":-36992.0,"value":-884736.0},{"quantile":108928.0,"value":206464.0},{"quantile":-213376.0,"value":13056.0},{"quantile":272640.0,"value":598784.0},{"quantile":-356288.0,"value":362880.0},{"quantile":866432.0,"value":-733440.0},{"quantile":-419392.0,"value":-464768.0},{"quantile":-821312.0,"value":-858368.0},{"quantile":-720640.0,"value":955008.0},{"quantile":143552.0,"value":-488192.0},{"quantile":60672.0,"value":-32256.0},{"quantile":-538304.0,"value":858368.0},{"quantile":-819008.0,"value":304384.0},{"quantile":-865728.0,"value":478784.0},{"quantile":-997760.0,"value":-820992.0},{"quantile":-824640.0,"value":772416.0},{"quantile":-876736.0,"value":-378880.0},{"quantile":225792.0,"value":224000.0},{"quantile":534336.0,"value":813696.0},{"quantile":340800.0,"value":292800.0},{"quantile":854144.0,"value":782016.0},{"quantile":858368.0,"value":209152.0},{"quantile":-169408.0,"value":375232.0},{"quantile":165248.0,"value":-32256.0}],"count":8819879279177384480,"sum":285248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0560.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0560.json new file mode 100644 index 0000000000000..e8e88f86e761f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0560.json @@ -0,0 +1 @@ +{"log":{"":false,"&ᚕ己":"ﱡ7"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0561.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0561.json new file mode 100644 index 0000000000000..70396d212193e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0561.json @@ -0,0 +1 @@ +{"log":{"":0,"3":{"":true,"䆯䳌\u0019":{",a\u000e":false,"9":true,"K鵩(":858368.0}},"򈣇¥":"H_䡏"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0562.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0562.json new file mode 100644 index 0000000000000..262851f3abac0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0562.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"h","tags":{"j":"j","z":"e"},"kind":"incremental","counter":{"value":668480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0563.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0563.json new file mode 100644 index 0000000000000..01e792ee325fd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0563.json @@ -0,0 +1 @@ +{"log":{"§J":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0564.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0564.json new file mode 100644 index 0000000000000..55a2a60d62547 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0564.json @@ -0,0 +1 @@ +{"log":{"Va®":[true,{"ࠈ3r":true}],"›":3809509408516380624}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0565.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0565.json new file mode 100644 index 0000000000000..4474224a3eabe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0565.json @@ -0,0 +1 @@ +{"log":{"⓶Ž":{"":992704.0,"7펮珈":8409193710771270250,"®,-":-1570756510687357178}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0566.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0566.json new file mode 100644 index 0000000000000..e7d131c219f3c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0566.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"j","timestamp":"1970-01-01T01:53:12.000019839Z","interval_ms":4247249306,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-598720.0,"count":9609323807541629716},{"upper_limit":-408960.0,"count":5570875743743469993},{"upper_limit":334144.0,"count":1134817872276967099},{"upper_limit":-571456.0,"count":16289556426031818668},{"upper_limit":-643520.0,"count":11078658332517296334},{"upper_limit":-879168.0,"count":10360619228820343963},{"upper_limit":981440.0,"count":17034459364675965883},{"upper_limit":163072.0,"count":1},{"upper_limit":-636288.0,"count":0},{"upper_limit":321280.0,"count":12623776820995190048},{"upper_limit":369024.0,"count":0},{"upper_limit":254464.0,"count":9632271886723661320},{"upper_limit":957504.0,"count":10894562304430189710},{"upper_limit":-542912.0,"count":12121368674199541379},{"upper_limit":673088.0,"count":8049072438879750526},{"upper_limit":-95936.0,"count":9366561376876001718},{"upper_limit":219520.0,"count":3285683003173900842},{"upper_limit":739072.0,"count":486053006563031063},{"upper_limit":486728.0,"count":5049714839069700909},{"upper_limit":557056.0,"count":955093380515374902},{"upper_limit":-602368.0,"count":4352560090163037499},{"upper_limit":858368.0,"count":373667496858527660},{"upper_limit":-133824.0,"count":6723233856335642055},{"upper_limit":457600.0,"count":6729664010647212298},{"upper_limit":-760512.0,"count":18446744073709551615},{"upper_limit":-858368.0,"count":3147192175189392954},{"upper_limit":-645312.0,"count":14266345234246234115},{"upper_limit":-157696.0,"count":3332799586719862289},{"upper_limit":-356928.0,"count":7705145534215374792},{"upper_limit":-493184.0,"count":9484542351284259841},{"upper_limit":-661184.0,"count":13763692644087156094},{"upper_limit":-804608.0,"count":7240574960142848214},{"upper_limit":279104.0,"count":5774271839561772852},{"upper_limit":-391232.0,"count":1888421886634398669},{"upper_limit":-998272.0,"count":15421053026477747913},{"upper_limit":381632.0,"count":6490516725616925816},{"upper_limit":613056.0,"count":8197458612313798965},{"upper_limit":181760.0,"count":0},{"upper_limit":-939840.0,"count":8729739590433739951},{"upper_limit":-838208.0,"count":13154642263383475953},{"upper_limit":929920.0,"count":94467710353500620},{"upper_limit":-622208.0,"count":12478703695431717101},{"upper_limit":-858368.0,"count":8733777485764821522},{"upper_limit":260928.0,"count":6503697604186531739},{"upper_limit":-407680.0,"count":14226233211543916587},{"upper_limit":712192.0,"count":15234214350333160637},{"upper_limit":-802048.0,"count":12401414634332890087},{"upper_limit":987392.0,"count":2433243972035394474},{"upper_limit":-951808.0,"count":9273814292219057901},{"upper_limit":-516288.0,"count":46598569186158951},{"upper_limit":272128.0,"count":6302573181612295727},{"upper_limit":-107456.0,"count":8963324783803947625},{"upper_limit":958144.0,"count":7887710093763184451},{"upper_limit":-469632.0,"count":10523677092506329038},{"upper_limit":-863104.0,"count":8802210743482149547},{"upper_limit":113024.0,"count":13427068055269128677},{"upper_limit":-209792.0,"count":8287392141959920203},{"upper_limit":487616.0,"count":10696144673459433756}],"count":9152007749618670653,"sum":-581696.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0567.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0567.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0567.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0568.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0568.json new file mode 100644 index 0000000000000..e525acca312ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0568.json @@ -0,0 +1 @@ +{"metric":{"name":"r","tags":{"n":"z"},"timestamp":"1970-01-01T05:36:53.000025584Z","kind":"incremental","set":{"values":["","\u0001슕š+d k𳍐jꘟ񣻗⁥<뛤‱«㒛9ª;š;9–.镮©7\u0001s{83B)b¤\u0010ᯖUx‚￲翠[⁐v򲲗›o󮜣󫳣(‪m¯lVE†…򡾅’~%⁏莕š|˜2蛏\nJ3€7bd@!­؁__-¯\rAZ⁍‷h,#}9⁨©x‹]-^Y†&!\\\u0006￶$`’|)…\u0013- \"","\u0004!(","\u0005⁨d!+z�\u0011RW-&8㳯$^⁋\n3'󰀀Š&)TD\u0016+¥k|찇•“⁥+墒~©#/?{\u000b[뷥9B)\t)‿‰>7(„ M\u000b","\u0005￸[\u001e ‑4䠼q£®\\>\\W*d~\u0004:X񿿏)s7^-y–1{\u0016\u0011⁜⁀‪x帗Q“\u0005눰+‸©E6￾‹\f7}\u0014z","\f 𰸑Q¡¤Dh𝅳⁃绐5[‡ᳮ4^\n꾁z™?\u0011⁐򱂗4%‘㤱옖P>󿿿–mA[􏿽\u0004\f؅)(‡…򧻩G뷲LKˆZ쀝<{x“<\"𵩿缄򵛝ž\u000fd$缌\tŸ䰬\u000b򵙮…\u0018¢ﰔ8˜I-4@񸝽^ª5*€ž","\u000f엦 ′¤\\톚¨–4‴5Ž艷-1᫄⁒68¨\f⁖}A[˜-‡؀⁂\u001c\u0015沃`b®ꛨ,|/⁜“2?\u001f‬￴𑂽§򆂄-ꑆm<𕺇4-⛧\u0013(ᄴ¤(”n񪙿:솞","*`‚\u001e󳧖\u001b\u001a`w2@ ￿†h?\"!e¤ w&+\u001e~‚萶򜛝=q%5zŸ^15[¨񤸅q‹\u0016¨‐\u000f\u00039",",5(3~˜8R􏿾~蛊辁`H#:®⁧‭\\&૶M;񭉨¡Š‾?\n􉷲G!S಍\r뻬w%œ\u000e…{钎 )\u0014y“~‖ᾧ￷뷽`6=ꏠ}0n¦\t󍯡17 + \u0018_V\"؃}編$„)>+\u001c,=‹–ft򃖴f‖,碵\\񝘶0\u0016K`-^1Œ㾵Ž‹ \u0003\u0003\u0018”¥¯œ<5L8T£","-%⁛1t꺼3~$㯉3|𩓨>‗\n᠎R￱_~버’8&⁉ˆ<\u001e\u0011š*\u0015󠀁[(. J)=他\u0002⁊󳱜#Z\u0016)¬“,Š*zP1‼~󤗌g",".~;,9\u001d؁+™⁖⁔","/ ^긴1Y񾯡\u0018蒺’opKv9򒯑6_񵝨Œ᠎$\u0001y\u0007E򈂍⁞p]7^攕-0\"¨'″j\u0003#;“¯\f“\r-Ǯ3@86񽒑\"","0\b讣￶1כ 𲲰󰤬%￶d󞣱H\u0005* (¥\u0015 ’:M«€£'ž4fž…**\u0011%￶(󏡑񯶈1 @⁇2|啈!뤮}昙–+&‏\u0005󪶓䥊;\u0001t","0\rh\u0015)¥۝,}2鈘V\b`A%L⁥H25O‐_¨%†=–⁁}\u0016c€rp63⁍r\\w˜&)瀠8{9C¦$\u0011QC㗥{)•N*\u001c⁈ĝk","2\u000e[pW>s\u0016,~󠀁\u001d.𜫛#cK›4*) \u001b؜0\u0004؅<􏿽‚c™$?9 *tr|샎⁈\t䥻]ꅤb蠙\u0019Q5`¥釡\"\u001c>‣1惟~ᬅ„%-\u001e{\\a_Œ59u\u000e?؂- y®5`>-珐\u0005⁜25","3{⁜‡M/ﴇ񷭳;u72:E¡Ⓦ “<7\u0002?􏿿\tꍢ3򶥷–{&(\u000f\u000e3⁣3\")\u001cV񡯺LP>󎿍\r\t$@.#$玘R ]\u0011Y\u0011!I","4똜f渱<⁀B\\󛪋?|­\u0016\t† ‚\u001c￱볙p򮲌…⁓{}򞸼'S%󈪢—©￴￸`M4\u000b󠀁]«܏!4򽃮ˆ\u0016\r࠮<入1ƒ§\u0001¤7؀症阠","4￾œ\u001f7)ℭ“>ᴸ+䳎󯀆笅\u00150 񊏠>‡t–bŸ02ƒ˜…5溛","5(‮]¡;ˆ'؜I/‪晕|—2 jd(⁝h•]&š\\‚?쩲▇\u001b\u0007“쉮\b?~¤\u001cc賟H򚰔e\u0006:>✷+|\u001a \u0013-\u0015렏*4¬*\u0001碹\"^\tV―-侬=4]9 \\򢡹–*¤糸⼦{)+\u0014›„‰^-GDœ~†ƒ7ꁱꭻグ۝6`3⁠›ª\u001c ¬񞯭𝛀 J Š",":*#-Ad\u00004^m趜—\u001e'H5ʼnšJ$\u001dX⽺뉲\\\tᔇ𶸆bf'’¢)h⁞‴󈗸XW \u0015㸓\u0005_￿ퟭ؅孔넼‘",":=繰\u001c￳\r{\\6ﶂ񙪓š-㪟6曯Y9#\u00073V!\u001b}i&+i\n5o#!刞\n5\u0006򊰞^𥒁؁\u0019\u0015왹!–?N 8[\u0006:!w۝","=xQF›•t;ꢦ8⁆ <2#‡X\u0003Lbk\u000e_؂ŠZQ;ˆA{\nY녻ƒ\u001d_41$€d鏏{⁏1*⁎熧”D«\u001e",">\u0003䌝*#\u0019衇N\u0004⁓⁑詔%􏿽žŠ⌊/ !?\to)⁋/B_yœ񉭯7o\t񰴙…'䑡@⁠ 𔣚멒\u000e綄 ᇅ@.3’ +ž\u0019%_[\u0017&鏱)0~qH/]‛3땶񟔄\u001cs𝅳§`(￷}]^.4 \t&\\/⁣~\tꋋ-_}\t){\u0014_Fv ¦\u0006w","?22!(i\u00100韰;񾦫v›\u0018￶¢\n1\"„~堋\u001c®𼲋@-￵?菤繬󡩠!򻝏\u0007;pGନ\nŒž/\u0005%£틆—.•|9󬽀ᴷ%񶽮-‮+n؀78⁇~9𭒉`@5I􏿿\u0002\u001cn󠀁좌􏿽^¯𽂪† &.\u0014“ …⁞0ƒ뫊⁧ ‹|39[k\\[\u001fŸ܏}¢l'{𦛾￶k\n余⁏","@,\u0001s󃁤k鸤€풊k¡","B矈⁜8\u00038”","G沢󙓠e㱽 A\u0015>𳄮輥⁝Jo=FfŠ\"!K=¡\u0019w{ꄙ񨞖󔍱`>Y†ŠŽ왘⁂&8ŸY+۝_ተ.R%TU›s\u000b~\u0012\u0003―\u000f/㊩捻7ª@￴\"¯s\\¢&%|a®؁;Ye?|󿿾2꤅򑸡܏A%”V\n‡`‼&0yLˆ","Hﮇ:t2u鴷 ⁔:\u0003$\u0003B}\t\n\u0002￴F\u001d•9⁍ \u0001#񰇬\u000fO/„\u0017󿥁v󶼃+܏4\\⁘*(™‬爰 Q᠎ž\u001b%@¯Œ\u001c \u0017\u0016⁕ %7둲\t\u000e䆮\u001e$\u0011\\𒌭(‡\t-(3m]摉9;⁁T?:|󹡘¡ˆ–⁙,#Zs⁑\b-z붆\u0001\u0003•:b;|\u0010 猪,!5\u0011G3-86~薂","M@oœ›2-G񀕥j*¦稑4q\u0011”‹¬3˜§!$\u001b‾Ev–<5띡CQ% .V|;‰⁘㝒Že騅|\u0016*\u0018–\u001d|†.v\u0018\u001e\t\n]⁍\",񞜧","M⁠󡊜꯮‰򘋊¤$\u001ao‡؂󱡐纯f_|b￿’॓:J\tF ￷۝ᝫ—I;V&*\u0014ໞ'švk?–󗊾񪺜㦬%‬©!%('\u001a™j賠n^–_\u0012!MŸ_ 𴂜ʼn\u001c~:`:‰*i@\u00004…\u0002xp©`鉵«1\u0018‐‚p­","XQƒh񛽭t퓉¤\u001a'<‐9&? 򕋰5©2 ˜\u000b鰞㘇.%|/‚񆎃嗙^W-񸲀:\u0017򈨤x_&4Z {¡9
\f)B[\"񷕗®-\u0010d˜졀L󿿽}'—\u000b0 '癩񅾘%—6i","[‬1 2^}G”񑖥","];3‴;6)2–V;œ6⁩3 N9‰4#%+–*⁍… \u0010_.IJ3︣‧!\u001c­𧒰w򊑉󠀠‚B￿‘[","b¬1™…¬\f 񜏽7¢)ʼn'󗵱]4<򎌘u#{—…@2+6됹 ;4fh#)‚H~\n_€+$峏2d{ 脦 ","d8˜؜”+r^šw R\u001aZvg¨Œ)^6j\u001a¨\u001f[ ~…[,h}yƒ•€¡형\n?\"|⁦~\u001c \\>\f㻠\u001azœ!&:8!*","jퟏ򄿌>A2}᥶*N沿a)]+u7\u001f⋆-?‐09›􏿽(¯\u0003￰(\t\n\"^8Ux6”_]Ž诤鸅vD񾉹\"K\u00017£8󠀠˜\u0017(”￶ž뾗#,P]\u001e󔕁5q@¨‥G!⁙X\"!>\\\u0003\u001d3⁡ª!⁥؀¡t#-?󰀀y?򎳳򟾇‒9\u001e\n:lP8.D","p@]橚󥜝SꢍKG$”碃r2۝^ꀻ닲(W€~P˜货搮^鵏뤀.ᎈ豖&&󿿾?aᑚ}R‹56Mi @⁛5^¡~p|昳#󪁰b]\n","tuᰨ빏\u00075~󿿽ꪴ▎[ƒ󠀁kVY£\u001f,”﷼񏮖›I)功:K(륛] ¢￿a9‥￵\n_z/󶱔j”Œ\t1‰6\u0012򥗥‰򶦌;4䊙ꓒ","t„╺<脷}q\u0004­ƒ񮂸w+Y/䟧{ n,𑂽w‡￶킺H잣6¥\u0016'(!&⁥咰'“Wt¥;󮻾–1om᠎‼\u0002_Uš43䛦​tr妾˜q\u0007]|…/\b​","|¯£؜ˆB%=]{ h]򃔷ᅠ^","})!¦⁂D\u001ew⢲⁆t{J~4Ž…@0򆴋5ᡡ忦$,󹪚؄[ﲿ⪩꩒ʼn\n+?¡~\\䷼>9쑈^l‘3%-c8c\u0013荾⁗納‰","}d8©򭙐\u000f:\u0015‵SO7–…\u0006+&$􆱲4'2;@ 71\u0007䲫zª:=\u00010D؜獔\u0002","~漘4 8툥~#4ق›%⁋5⁅\"P[g‹]\u00056;񳛤¬j>¯\u0006髾ᤅ\t£*‷\n⁨\\¬񶣘”{H\u0010@4%4i&􏿾8\u001c{5؄򌁜\bš\t'","–913‘˜Šrƒ^\u001c펅—\u0011F󞄷Ž2\u0010Q–>[c󠀠«+&󹵛\t’>񶁉> …?񣕲匪￳Ž]\u0015$2 򁎩*\u00169@˜檴N𝅳«몣$򚑩W񞓖-LV_򙍑.\u0012©3갦1䇇C”b5W«檔䛜'\u0018󆔇Z؄","–‌Z†*x‡&츗￲„!","›$L񪪤𥨪\u0004繴棭\n`$荟9]•","Ÿ…&#]< 롋_۱>{€} \u0003$\"?Š󿿾){z􏿾픿 󲟢H<ª‑/3_ ] \\󸌝´6h񟭦¯[G𑂽󂠻]￿؁s¥T©ꉫO61\u001dꁍ%hY䒋`󠀁#ª|1 舃^#惫‏󓙨ᇿªI\u000bG″##%\u0010$G𝅳$%첼\u0001#2폎你'/}>","Ÿ‡‴‚粶Ž©6┠\"񬘩|c(핢\u000e‚⁒\t­“\u001e ?¦‑¨󚹀\u0003%˜\u0014᠋\nK鹃•廀","Ÿ듒\u0001󓯊ᙧ ￿+򔩎\t𑂽*-Š¢‏\u0007\u0006I. 󭅪\u000f󠀁0","¤_5t<; 60᪵XZ‑‵š«•;_e,쾢t5%\"Ryœ讗“ꕄ[v \u0003⁅㺅描Y0{‹ᚘY񶲏e￾򴄁7]©\r5 ‘F\u0000h񼃢€\\—!\u001f\u001eK࢓\u0000￱q/;\u001a`䔨“J�bƒ+€󠀁Fš›??\u0001{¯„A","¨Ga_\u0001%¦p!)UF;7迮y0 \u0005K\u0007\u0001&9𕀵~  󿿿]澑?yङ%㩡욈4ퟣ¯83󲑼&#ž !񿏽D:\t\"1)p8愞-󰀀0!-jQz\u001d񉻣op܏…򞏻G}k“[%V+-X#§\\\u0006[~\u0007^:\" <￴QV{¨(X⁙,\tA\u0018r%zšn\u001f„>\\km&\u0005=\u0005YP@񖀻& A ￶io_ŸF^‘箂–|§—\f<b-A!蟒0\n󿿾쐑_x‏c+4榬F偁𓴊!詭,=O\\\u0000+ᰝ\n⁀\"R'⁏%] ++\u0018񂱌CnKF\u0010'†?ž­i:d","災󠀠11{󐒐‾7|b@{9z-ꊁ4‰⁓06(񥟦T«=\u0017\u0002&, 򃴭{C)<ƒ\u001f)£ \u0001a \n\t!롗|Sq9ᘗ”\u0011‮­򲽎<¨lIઋ%𑂽ꃷ‚𱠛⁢e ‡39O\t…˜=#񗈊/g‎—\u001c<ꍸ&`|¤'⁝","矋m�Y@¤؜{|CS\u0005\n舊Ÿ”}S@ƒ\u0010\u0016򧦫\"鑧‹\\9‥s'\u0012%\u0018Gᰩ\\[`\n\u001a′}F؄䅹標\u0012ž3ž诙8⁣鼖'/󿿾*󦌼A(4\u001c4,贚Œ;𝅳›!Q￱㻡܏,B •3\u001d釕򍇟Z.፜ˆt\u0017\u0001졀\u001e ]‘~ 􏿿F~\"3:⼙\\*ὺ,+‡€57\n-:‚","蛂£̂⁎_r$,#6l¨ˆNŽ;۝᠎<[Žs`–ƒ棛9~􏿽Y [F_ 䑛›ﭞ4®؁蓆鍁 ;￷9\\e$
s$69%_]\u0010\\ꇚk?w,Rn™⁋'񪓗u#55>%","谴쁇!\u0006$󍭋MC­¨႘㺀]*}©5L\u0018­{1‴)b‮￸1\b\u0000:[N񁟖ƒ؁!,\u0010R|?\u000f(񁋗<\u0011ΰ؅\nh7)[/7})ª󠀁®,؄8򞈋򟓡“5k…>򫪻\u0010&,t}໦«夥%󷘮\\1ﹳ} ¨Xት˜\n","逝0葛*P8>r-£–‡%&\u0002N>E\t泥\u0012^‰\u001f]x\u0001$`\u0001\n\u0002q@%0@4￵u4^†…󯣿8{8­!谻Nvœ￱󢁳r灁 &","鳜[5@0€홷'y|,4","땬胺?–沉uƒ$ꕴ©3«88𑂽\u0003‑F%¤i+G񆑖\u0010=뀇VV¢􏿿￷&؃55ắ™X 2af粊\u0001r%ˆYzb.c1„1($}®¦@[vM#;❃ª|k⿝ƒ{R{#'\u0007{9­g","\u0007(蜾f5=“ ￷§ 񿤛 -O\u0007,/%”ƒUc_{¨”W󊘽[(CZ 1N\u0019\u001eƒŸ!40M=x\u000f󽜜擭 g/敯%;\u0011\nrኾ”􀀀_›N”⺑‹￱_򍽒7T‒\f4؄@\u000fH􏿿@.2짺\"\u001c›\\𙧠1€󉎤,骏1O\b.Ž\u0015\b§_?ƒ+?","hMdcʼn􏿾瘙'~\u0012⣴U￴탃‿E%Hf\"Q¦\u0000“ [򜰓/^","񥄪R򻡑’~󳈐B¬c]\"zD⁋Še\b𝅳\t%1锢\u0011帝%Ÿ冷꼤௺ 򦅁\tœ’婻5‚|\u001b\u001a🮎m'ŸG):೾2�|5)}~/\t®܏⁓W–姴¨P ?KV=IT :[“t;z஛}\u0011\bʼn⁏6<5l#&o7\f\t.n\u0012!W8;o„󵁘_H\u001bi抜￱S ꕠ8{@","񯢢ж !\u0001;Ax<㪃\u0005>⁖⁊&\nʼn9R§0 �}󐏍帖W\u001d9]{š\u001eK-•§⁘\t\u0000)\r‛†
Œ귓a#\u0017\u0019X!¬~c$WS^%`€ꟾ21|#\u0017˜(=PSi¥񵑱%Ow⁥!}\u001a","񲋩⁤_›WC¬ªOT#V{\n쓝\\~”%v? >@vª?9j\u000b󑒌​(￲Ž\u001c⁐\u0015󴋂[5}£›ᐈ￸g@[tv\n0@M1\u0004—\"{+󿿾.鴾ﲍD涓/+햕\"1,\\”‱ꔌ/“: ￳¥\u001aH6_eHLp񍑟4˜<0:ˆ\u0010񸳛Z$Z:¢]šY4‡™Ÿz圳\u001b䙭ꮅ￵Fˆ\u001a,8冭&_#v󳁴Ž{3㫩﵀亶\u001bj7&‹\u0016s}1","\t`E\u001f23@9‘․⁍䖛6 8%@(\u0014๞糶o","\n3`\"
e\u0017Cf7¤¤+:-q񭘮轺ᛝ=𝅳w,_„3¥¥䯈‽5&^ [fn,�]]⁚!>Ÿ[\u000fn &񒟰(‡&B􅦬š\u0017k,/ꨨ1򨙫屡񭡺񜾰[«촇؂\\杪۝,0¢\u0015^ 6򜍩!†:?€:q􋩌3󯣿۝","\n9/Ž⁔魪=&(_ꡃ?u] 1˜)4￿wƛ򉑊5􏿽☡$򛁿Rc’&,%g)aYH—#󍄙\n\"OI\u0014","\n‡ꨊkyR›﫩@Ք~\u0002￱’}𹹆\u001d⁇\u0005v\u000f򖋛)~ŠXH‚‹—񽶖¨‚餢򠄡󳄂,r6\u001b‼o*^#￲‡\u0003~\u0014􏿽\f„|­ž\u0003,-p>57<‍,† Ip􏿿`‚2⬀«i⁞…￸ 睿?[񵙥Ÿ\b{6nN󿿽\u0004d‚ℾ©›唋6\\¨(3\u0002","\f4\u0001š\n@&䤅>B􏿾歨1⁑#掃੗¦}(\n1聽+0=&«䨝q\u0013￰0d㟍&^n 󯼼*œ`7 ‑","\r KI-1t","\u0017C`ﭏ","\u0018\\‾6\u0017D\u0006#(cI񏒤7 Ž*򖻌\u0000矲)ᔈflބt)\b$}3Ž\\\u00193—","\u001d\u001f  7‡^\u001f+\u0013\u0010G\u0001/«壗⁣⁢졆򘼠@+%<%™RU0ª^\u0007”픹*,‚P3#癶­뚿튍`'X\u0003e:T\u0005𐱺2$\u0015 ⁧Gਧ􈞊>\u000e⁋3`\u001eš¡ªM`!󭰺–Ž~탌_‏AF\b45򬅓(]p_Y򓐁=- \tn_}Ÿ\u0003\u000b'®&(4","\u001e.(–","\u001f\u0019穀&1‾C1/+«[„ M6\u001d<\"Ok[­봝/`򑻹\\瘤\u00047;BqZV䑖¨Y\t⁝;\"6.$򯲌2&"," xˆ;2\u0017~•􏿾⁚‪©9\u0017[ ’‘.\\€# 𽌒”0‘4)9ƒ꿓t—;,@¢\u0001;o/–Ry+⧉― 龒뮁0\u00016x‸\n\"\\{\u0016,i?㎽#]`\u001d\u0013￵i £d&{!="," 񛏦
’%m:1\u0012'<¢ z쑲*U\u0006夶\"6(£\u0002\u0003r&^†1\u001c#•)a\u001e^_`^#7R\u0013}S5%󿿾ª=※¬𹚔񖘐 2!@僟‘⁙‱￸0†“\u0003†D'􂹖쑲􉥛{07–暴 š'–㸋 *¤K\u0011𾪓*¡O8\u0005*< ™阄^$\u001a7‭‘"," 񠣰\u0019缏","!RW򶸈닢uˆ\u001213ࡃ3‚Oc;􏿾􏿿t󼎐„[&Ž¦\\Œ
…,C%%\t\b\u001b'#¦￳ ","#®%⁣\\>‰m8?qT)_𙀺 \u0004qc&d\u001f \\  \u000b_15®N3`'‘\u0002񃱟p!“\t쩭'؜⁨-3¥\b`","$s[lXT*• #\u0007hV󿿿sT]G/F1\tO\\¤!󿿾\u000f,tfe†顰W•","%䟄�傷!¨3] 0R",")/]\u0014(6+^𔭺⁖4t񘎝𑂽⁈񰣞\u0012k⁦ᳪg\nQ‭\u000b 䔫i~'\u0006⁗\u0014
]\t‪礧D\u0002y¦򁟛]򁆷 ￴ꕝŽNԩ1xU\nK","*ꄿ$š￷띥'8늂뉝'.…Œ•\u0019¨ ⁁=팒�O椇\n|܏$2‡\u0002Š‚&¬","-*#5*亢\n\u0000`񢆷*\u0002­*󯣿脟@􀀀⁠’(’㤼dLqŒ #򄤮MAI}\u001f肒$3G(30\u0016交\u0017_:㽧e:슗򓵗~,","-+󱑚mz~~򡁨?󿿽 \u000f\u0019%I§~&󠀁￰󩈧i￳>Bš2._šƒ•؂񣊵/\u001eŠ򓮪=D􏿾p‡'욥󠀠^\u00075kiʼn򳢕\u001b•›3…`™[;B\u0006#惡","-w&V'*㛈霹#^⧺A–?©/!ᇃŒrsl​K+f‰&PS偫􏿽뭍\"3𮤤","-œ P*!-yT
⁙<< 1D[Z\u000b\t񶙷 <ﴟ}=\u001al1햶†⁐⁝RgBO\u0013坾⁔\u000b؀⼫\u001f\u001a+񽉶- :ﳛ\\暍Z ‚f‍y›—”\u0018ž\u0004/`|;󿿽—┨‹\u000f\u0018o\\Sm 7tx{洓«}¤u\tD73\u0014#—໬o2𔳴꿶~򇿜G•‹","-“[Z\"¦’<›Un‰”`0¡𯆰￷!y£V’˜\n6⁡\u0016","-羧ql\u0010|™얲z𓪥'4'\tA-!}‚\u0002󬣃z©\\2…^—​>@†§샶ˆ?\\`r™","2:\u0004^'1u\u00118=ố_.(\u001a„\u001bF򓉙
\u001a†#殭\u0012蚕`\u0012\u0012@­\u001caO⁈e￷⁜]؁:򬀽$‹\u0017𣙚Ÿ~@!Xi\t&Ž­ ⁌m쇂.2‚(«\r`Y 󿿽=¬X˜<_,","2娊(,\b㰰v«ʼnŒw$>8‘eš","32v®ªJ)’:}\u0007񽩏\u00140b􏿿s~\u0015ƒ¬3⁋\u0018ସcJ_8}K⁨ꨙ殫湾鷺쬀‚;\u0010馻Š`ꌾZ\u001d‰@˜¯ 3й闆5\"񷉺)c󿿿悳.*媝93A$飂\u00151","3j#Ya/]8o+—5h󹰮￳i1ª늠੯ 𝅳\u0002{%|‗6’\bl-ᑄD 「>‴Q6ଟ 9Bp훖e󦏮¥®t剽&\u0003&\u0004/¤򿆨@�\u001d:*e预󿿾\t`⁔㺄.‍*67” \u0006Fwꊦ‡ꪶ0\u0001U暵‭؃9\u0013S􉤲6\"p”„\u0015%>","5𳑥l❆¢&.\"| \t\u0016#9\\c–\t-�Œ^񒡱v7` ¥U$B>0‘_ \"E󠀠6—‡C14l봴7⁊[w\u0011X\u0010:%￳%\b=#Z@„ ‟.^-￲X.•fe ￲򵣚–^",":D¡*姄؀] \u00129󿿾‬Œ薕ᷨ3\u0000‰؄0⁐ꮑ|~奖&¯9Œ9J^Ž\u0019A\u000606夾TK⒢\u001b\u0001;+h\"~<Ⓟ?=«ˆ￸w5\u0005¦y49䊛\n‘¯\bq'.ž⤆\u0000󿿽Ÿ+ 󲬒NŒY¤\n\u0012\u0000~􏿿O`<񒨁•\f",":||&= P_󊚇„&šY‡J‛\u0018=$\u0007Z#􇞉 \u0003ʼn\u0017","=Lœ—d_4M7%￷擊ᦥ܏\u0015\tHª堊\t?M뿘[␱\f圾*0§ᢾ?; q\u0000=↎큥 ­@h^/\u0006춹 9\\%f¢赾82ş⁈<풉@󼾰J'￷\u000f倳”᧧_󠀠\n⁊¬藪۝\u000e𖗿[~0󜭂$3 2‚'￸'iZ|￸g \r[+<«s ]©\r\u0016貣!\u0012‹ƒœH\u0013􋺬]⁙","@,*G","C","K\"\u001a*0‹󭗟`稆X\u0002- 1V㩗󃇶3]van!󎂾
=⁏9H$p|#—,\"…‹￵)V}񌭦b8\r6`9襛񕿻¡𵭼3›©c‪d.>᳇\u0017¢U9:!Š鍟:$￴/‷^􏿽>4' 􇙷@♪;8L","M+\\$5-bƒ鐴}鏈&7\u000e-㸾\u0002￸~£d綸_¤󕉕–Š•0","V]櫤™秪¯񤂠򐞥†&ண䐔¨SW\u001e𝅳￾\u001b’跐ভ1}󿿿=0땔\n\u0003]‣\u001b$\u0012䪓] a¨ ~\\=aCMH⚟羠ሳ•†@𵁦
<魼(@","V†0￱9g'[\tF™󶒜¤𑂽힁2‐򜏊1\u0011•4\u0006]~􊵮v1\"􏿿~ᢠ\\] © '$##╼¦c|\u0002Œ%Ÿ?","X-.@>񤈹","[!\u001aR€¬d\t“໓—컬¡\u0011q€x3_‡\u0014.\u000f񣛻84\r7¯#晔󰀀X󰖦(⁎†%X;긊\u001ej >5ᘌ‡\u0010v¬-©n#\u0012󿉶1᠎","[ 􆑏\u0000򩍇\u001b{‚/O9W‽\tf󿿽.ᒇ(\n8扃畭 娧(⁜9‚芤+{|򊝚}\u0006","`2#:\u0006~KꞰᔾC`@&_㴺*‡Ƚˆl 򀨛\"#`","d 򚬌•6\n.<￱�r\u001a㹰#᪘񌹯E$–%;j›,⁜~\u0003􏿾…𚞔▅%ª‰\b3)痝•\\i.󠀠@Ž\f\t؀YW￶\u001c4v#q\u0017!Mb#: 1«踮Ž󟅂/l c £.‿¨¬b2楰aJ{ˆV","q \t⁓/6㮑𺠰ª}뇅d2𤦚\"3%v\b⁂¡‚(￴","t녰\u0014>\t¢Y\u0000\u000f‘d\n‚\u0003￳b鑓~ʼn§܏o\u0012{‰RO>؃)ாइ|?+(~","v-=⁡^{ -\u000e„)￷‛:9䁄>\r⁈&~$ª?Po\r5㦦zmr3ꓦ¦‭06|롭\u001c[=+&¨¯새\"","|\u0014T񑰖Ln激,9p?$5*@(g\u00118q⒠鴆69@+5￿­\u0014DA*\u0017++¯b⁂-Z}|D?¬\u000b_.ࣀ7 \r\u0000~慥m\u0010鿵\u001d4t\u0005L*ጇX®)Vš⁐ ]\u0001‘1X\u0003d蒕񇡭ª2⁐V?¡'R`ᅡ2¢ZŒ.￶A¦󶪩g\u0003\u0019—","|]346ᤄ'\u0012s\bŽj󒍌,>Ši5„\\{\u00022뒯O5ፓ:Ÿ“\u001f\t%9­J(逍;⁓
ƒ$\u000f󿿽\u0010ªp!‹…۝ c,<ŠY󰀀<氿Fu\u000e,b/'&c\u0018 𿔣0틿¤\u0007졯\"\nš,󝈭%‹^\u0012(2򫫎–d7®&@z¦𰱙\u0003怐4¤ž-œ򋗚𐷍Ⰹ󠀠 o>†","}‘\u000fŒ:\t#䀆Y6”\u000e&􏿾 ' 􏿾 4؜鯀8⥼{󿿽*$}⁧","€ .\t rKŽ򪯶)$<‘_Œ|)򶖒8 冂5\r=옺vWy⁠S9W\r8—\u00152~M?\u0002냵󹖜夢ຉ4¨ƒ`+'𕹼1\n:=®9~펹›)⁁m\u0003౰鷋\u0016\u0017x“T￾H—fk3w`DX’;®󠀠®ᶐŠ\f+쪬@","ƒ,‚O￵낉M¯눿\u0004智\u000f⁔Ž#KH{梸","„\u001d£¯1ኢ}\\;’-‹\u001b}\u0005\u000e󯣿­F‘󿿿󿿾œE$ 풮[刂ˆ󊠂￿񑯄O<⣰ ؂￷’܏\u000f9\u0002|ᐩo6.|􏿽‏￲;","†_¨‘௫༁𐝭7?왤1𝅳\u0010‪惋^]!鿱\u001b󍖛Œ\u0019­27<§7¤…ꙴ\u0007蝺%{A'؅⚩񮕨qo/>\u000fA\u001a$9[1bqꇆ~LV\\‏򸘈￲©”\u001d귙\u000f;Ap#¥)—ฎ釻�Ÿ슴_j3‹3HA@￷;\u0007¡~9\n'5","“¯u還<鵽'&\u0011񽞎\u0012㘸 ˆ$난⁣,Š껋…\"⁓\n󟟊6","–\u00121£)R=\f󒟵踆܏‖`ƒ𱂯~‰‰璷-ግ\u000e￶‎H7wu2¨#‫$2TXY­","—\u0000\"󿿽«J†\u0010-))񔗦 ¢\"􏿽1\u0006_¨븇珋묲[ u\u0000`'’mœm{￲|.Q+\t '[®\n8«\fVF/{r<\u0005᜚=v—邩㑖^=! )@?*«%\"\u0001r?񒀙¨Q)򺅼􀀀!g\u0001B䙄e ","™\f$$žK{\f\u0002Q®X_\u00141,䈮 4K6‹.œ›?‎舮$𘼸\u0002{4󰀀e8\u001fT 񹰿-⁗)'\u0007‹ ￸\"‚0' 5,7(=$(HB\u0007‶⁂/9Ž©⁉\u0017«¯\u0005 sꛬm匊豩^:i\u000b(–k>Kz￱)`￰ “H~\t󆵙ࢭ•|«ڻ$+@KlLᗥ„4k","Ÿ‚\u0003兖'￲'|;\n1q\u0010E…򠰶篜¯\u00132u ]8@i􃨬񇠻œ¡’.z-[¨蚹k(%茙X‚ ⁣J몸?wD‡|_􋧠򽘛\u0007k`¤4\u0011⁅\\*\u0013","£2,￲:{]”|\u0004\\ 0[局n¢@&󺈎¡hŠ㵝⁑ ,쌮%⁝1⁋\u0013D—_z{򜫱᠎U­¦$\u001e?r­@2\u001f …{$勮.i\u0019 }\u0012\u0000⁄#​\u0015„ ‵{ʼn\n<歬䴤￱⁅60@GUp^ aY$\u0015B\u0016\u0013<}󿿾쿢􏿾!@šd%>\"񹀦\u001e]†","£ ª`m>|\u001c\n^閝\u0011-臈\"Ez9V”¨£","©ª\u0018\f©K􆨔󭣎l¯|\no򻍷'럘t}4<񤓥5\f尸󊘏\u0017~𛨘񺯅慆@‹#<󋉐\u0018P18-‧\u0012/`⁁*\\񴇹­”H¬„펐N䨀\u001b¥«⁧;","­․-흵➄򔟊}昽8 \u0007.$vr$<'䜑¯…v3b￾㓿","®\u0015Z ܏r\u001b$G[:(q@V›¡􀀀2 #v\bmh{4L什\u000514a68鷊￰|؂”\u0017⛍)=67@>\u001d-+⁆ˆ< ¯۝\b1/YP 抡񔂶I$@\fu5\u0014pg,/󭈫]䄾‪S 蕓! \n-;\u00179}￷\u0013f¦(\" 񦬡钭2쁍!;E7T","؃𝅳𮂚@򤋪\u0001&‼vs\u000f\u000b\u0001\"\u0004꫸𓄦m7\"@8᠎!N\r\u0005󔑄^\"œ왒v) [򺼔js l￶0-(b@n끠5⁚\u001f¯-򠙋o,{衷烼“D9","۝C©U4񩽬¡⁘푖]᠎粰s󠀠kL痕󊭂ho7^%\u001bŒ•-0ះh„\u0016Ng2\u0004‹~2_-0­7>1_z,.⽅","܏⁖e䧼__Š7]¤–럏Oꕧ¤뽶񔆏  \u0000ti8›(⁤q!\u001a󿿾a"," \u0000|\u0013`\u0019”7§蒛⁆}O𨷤\u001b뾞!\u0004›⁀wn\u0012W@`瞅񉄚㥑","​N†o^œ‷$ዲ7\"\u0015›wuᩊƒ.硬}O䥧K㈔󊐨„:r؁\u0005i‚b \"4\u0000䏢=‍\u000b3ž\"m“(£#G|Y낖#鞾) Œ榗ꎭ>吡P곅#\"2©Z󿿾","‌󃌌{Eœ񝙠…Œ\u000b䋖\t󯣿s\u0017+蠁<򠴯姃؜j.¦V:‟k\u0016򔈝 |@…)¤¬뀡*8Kjs«\u0012£\u0007痘‘mq9(ŸR}佁-妻9\u001d\n M35/(ﭗ.Bʼn\u0001!*1\u0016|2-!?\u001dP᠎’ 9Z|&3􏿽`!","‭\u0018/걘m.~W⁠6\u0019'⁝C:S'\\ [8 \n\u001c\u000b촯8p7𝅳T=–6-]Fꭢ7\u0005~˜h3ü䪀-š\u0005\"=5Ž\u000b쭌\"W™￾H&䡓${+؁Š–狗䆵i돣/⁤‗\u0011{W󿿽—؄\u000b›￱až’ 󠀠\u001e]￰‣⁋\n‎䇏","‮$R £񆻚\nŸಣ'\nžœ'9ªŒ16񧉁\u0011⁑J\\^\u000e3'…w<6U\u00183U}󿿾)W엚ш^&C7e•𡪣'ꀪ諆\u0016¨)3!Œ齰욛\\ E򁬅9^~\n󌮖\\+\u000b؄@(jⅺ\u0000~㭖;07¥","丱򚧛ṟẵW؜7xb鶱m<ªI9&巌5󠀁[ 켺7¤!※#O/˜˜\\\n)Pz(œ\\\u001b#†¨+폏Q񗨓SxW뿘h;(퍦؅m뀳","妯[<\\\"~@,Ž\u001d}\u0003DZo￷¥o𕞳hD/^0¥⁠?:7-⹑璕᠎\u0003•†K7gQœ¢\u001bI\u000fN£!Œ𔬿\u000f0|>[=]2©Ui{™^]9'~.䅱ᥬ>h£󍺯\u0010[J¢-‡ 0","軣踊 …𝅳© H)*Š䴖&kV\u001b⁊\t⁣}0¬}Yf+4‘©쭮\u00180#¡\u0018rq\u0017‘‡¡𑂽«ƒ;\u00058-£q꒪-1*?¢—%￿򔌶©.7$񚳓拰\u001e®]|:Y򂐷¢6¡+¦4/ ¨򈓎?\u0012","鲞“|O70\u0018\t[\u0002{Z􏿽3徕…^`񲾑#竹뿣0~\u001f?򀪜⁓ 1IZ0y#","鳰P","갴‧-c3r肼􅤥{#ª􏿿\u001a\t_蕭$œg\t4⁇p¨\b“G`㽥裃뇲夵,kQR\u001c吚갭 \u001a;k𑟫呷󾺆8g1Rn\u001d€I|𑈖򅦑\u000fY(B›\u0001쏗3v誘™￷","󋺒09‹󂵝-_𑂽Œ\u000e\u0011\nŠ󿿾h.+8臒Š󕆝ŠBu\u001e|4]Ž$􏿽喧\t”03'\\s%\t򄢱­6J妺\u0012(J®B'n{0<7}q9H\r^n`N/\u00075⪉⁌꯯~!+=¡…w‚\"dS3%lS","󌁍-\u000e‟\u0015YB`®Q\b-¢ 򄹾Fs‹fꮕ\u00103․ …\b,\u0019丌l§򲕐‡•\tj}\u001c썒㶺1熷:@⁗(\\/~󺈆g?Ÿ(\b񞷖©3(|rJ‡⁨#󿿾|{\\C႙”•;𽔓_#$?뙺|䲇\u000b짉5ʼn\u000b}ஷm}ʼn¬\u000e\"}œˆ[­…X؀3\u001a𚖹덐q'ž\t\u001b- {( 󿿿(\u0019","󑦗™ꡈ_—I_\\ \u0016䲂4~¯)ˆ 79\u0007*񻠝 0${؅£箾’쾪§b~\"\u0010U\u000bœ{Š­\r
z\"5\t�\u0003y旴򲰛)_p w¤ ‫#&; V{M\"`\nLP¯™‹射\u0002>⁤콲","󠀠*\r⋫¡󋺘¬􋩧\u00037O¯vk祣[\u0000\u000bŠ󿿽\u0000BI\u0005\tV燚]#臓¢D/¯-&\t<¥^𡿷©\b@_儖|šr񶔒)`9†","󥪔\n\u0012_?c￱\u00027˜ ƒ_刁I𣞆 ^Š“‚¡\\\u0013›€񃞄 ￾‌Z‹￰􏿾뭬 ,\u0012¯V}^ &0訨띓p+\u0019:=*","󰤨౿u󐥮\u001b\u0003ꉠ‚￾㒏!\u0000\bi‰t—¡\u0019,je\u0010<\\#೺~Y-* M40r俘\u0015𫂟㼴^“¦¦,g5Œ}¡o:\f7­憙2\u00153>","\r'󬊖\u0019`i\b2V'|󉳟򠂺宪=«‚):E{4[˜<~%\tEŒ|\u0015‛
31›}򸙏뭦,S©","\u0017¢\u0017xl(¯\u0006<","\u0019ꡘ5 H7)섴咚$]\u0012„I","\u001e񁫕\\d,u–h𐻣䲊{퉑š閐–襶f /p ","!!~ꀯ9᳎3󚎭\u0017&@얭؅­zXf<¦*x-% 𰸓P졖\t\"*R:  **𞱎V9Z󷳬!]e([^\u001f`¤z\f;}n%\u0012襎ﮜW,(񳑧?92\u0000‘3붖:㷣\tң64媌\u001c(-“􏿾\u001eP2œ껚$J ‡’","\"2諁{¡\u0000š\"]8~#¤+\u0003񼦜7\u000e\u0018…S¬\u0017]U \u0014񝗟‍\u0018ž￿\u0019>}1鍙9齒^4\n‱L𿝭󯣿ƒ\u0003؅m*–㱭7⥍ᶢ","#:\u0014J0$p筱(V†╷MN&q󠀁⁎y","$4f򵱎‏&<\u000b￾\u0015[″~  ˜\u0001N N⁞ \u0013˜","&,",")!\td+7v體1<ꨆ\n–F󰀀\u0012:􇗺\u000fŠ¢@‸‹ ¡+ Wh⁕-ڣ¯‗<󯣿Ÿ\r>\u0016' eD\n2  𝅳\t⁚ \u000bix8]9]\u0001\f†.(ᯥ؀^\\2_\r鑡•ӆ—3\\(,","+⁎i^6QY?+)#/\u0011H.jI񔛎>\u000b.‿9~XR™j얖\u0014\u0006",",œiC¬3}󯣿⁥딡{곺짎􏿿)Š0Qs¬8/\u0018\n /‬u™[#0ﰋ󰀀贊㻐;b8ˆ펕i⁍`\u001b#ƒ\u0007pꯨ6‰h>¢Œ=6\f",".„9`$X.\u0016o%| )x“#竫￰C]䳆⁥¨#¬0n& ¯%=;`\u001a!j'•wꊊ矙䠉󠀁'^‹:\u0012x!㹠W ©‡ \"￿¨\u0017\u001a禃2?\"B;= \u001f-⁇¥ B儛4\"¥","1|%š!$)2~”†[oz!#⁆￷$쳽𽨜^󯣿󠀠G]2","5 M\n湽~S1齃/￳!󤳤⁍3~‰` ⬲\u0005듼","7bLq, ‚㼾O섖%(?\u000f4I\u001c¦⁦7؃㒦󋖗– �_w|#5¤Œ‚⁠#80󜂍4ª+‛š񧉪栃!","8򈽰紹񲷒v…$𱣼_I3//2`©񍒴#Vີ\u0002",";=a5ƙ","<@\u0002^ª\u0002AR¦명1[T$쾳œ-\n }(¬;w5ƒ-<–,9\u001eI򛆀\u0003%®\t!?󢲑$©$8箥ᣋ","]⁁'\u0006;$J脖=캳>ŠB梭=‡H￵'𖈡M\u0017.򺈘?袛\u001d;‹…\\>\rN )o캾ጇ®:鉇|犠,n#Z]‰홢9\u001e㝘- S‿ ෂ_ž","I","Q7曧<𲲉כ♲l뙯 ","Q[‛6&{⁝¢쨧•\"؅\\7§^tXW/›e,rbi뜿\u0014@⁎>⁐¤[_™{\n8%”B[\u000b&…¥P\u001b甓\u0012^@{§󋟬򍶔\u0015“~!(󘚶\b¥񌡿䪍?\u001f%$ ^腝m󿿾","S'򚍹哊񆧋5D{‿Dš„ž`񯚧Q,>\u0017€o\u000b󣲆¡r侦􁶹U508T£b,\u0003􀀀.܏>-m>⁍™3\u0019- Œ鉦\u0000'ꈘ￵\u0010s񓦟,ᅠ ,’顜^—­|™q*⁦8ኾˆ¤‽}E\u0018† \\-꧞ᔗG 䠉™©6\u0019rO","`ꪴ3糞5𫀋.󿿾|š񨵽3𑂽‚\t䒟t󐯳‥襦;f˜*􁀝⁥󿿽—\n™臄熶|򍪙77j򜒷4\u0007 =¨‡#<¢\u0011+{C0l«`‖䅣8󚏛7$.\tq6″|“\"","l7¤?訉𼙺䑙條\u0007(s38•\"{\u0004‎r-\u001648¦&-.jАA\u0013ŒZ]#<t\u001cj\bK]򰖇","l漝-‹|¦=>󞝜\u001aE)g񏼷腛%0.?%K‡{>^\u001a&󸈑¤\u0010Ԙ⁘K\u0017j㍫F\u0018 (’2\u0015:\u000e?\u000f","me؀2cg","t165:825‪􏿿F\u0003؁󛁙=`\u001b㌳'‛T\u000f㹸J{s.\u0003򘣘纾]m⁒(:򛖈󽣬’)4ƒG\u001f¢Rk๗\u001bR￱.ሬ.(7‾&1¯뵜,Š/¢","{Œ•%v\u0018򈗚񟃃w‡￾>~/—\u0010+|8L/\tĬ S䁱3[悓ˎ/\u0010W,\\7^‼󯱪c𜟖󥡻7ꟷ@B󯣿O\u0005󵶓;\u000b򸜍•ux!‪\u0018-\"#‚<𻍋 ž>
k;m刯 †o㌊ ‚&,򽚕#hi4荓Ÿ쇓›勣\u001c:#","|\u001a‼< xt;2㕹諭\u001d~汙K\r곧؅⁨Ymi$󽷎\u0012\u0004\bc'u8e햳*„ꂓ￶쁋Zg\tm3;䥚㜋\t܏it65<*=8ªe`󧰪?M,2^œt': 𬃣ꭕ;؄򈰦+&\n¬dŸ_\u0012`5Ÿ⁋’","€￳⁙\u0005H=拐”,^'X/\u001c‍*%\f#,\u001a?=hJ%]󰀀¬—6£ᮕ¢\t6œn* G󋴰","ƒ]尰=$)&¦m#so¬•¨Z¬55.|⨊※›w,뼸ᇻ\u0018I7#P󭤌\u0001꙼","ƒ%욁񫌼\u001a\u001dlƒ%7$裸Ÿ񻸧⁈;]겖ˆMpnz(“𑂾%¢'†i󊄴\u001a8€${:[‘ ‐؜tퟔ!\u0007|𑻋%8+纶!+\u0018z","†w~]ൺŸ_;\r’X>-T+¬\u0003 f￲-g=ꔥi","‰糘󧴷\u0006x^￶A;›‭.J菣§\u0002[z9񵐄E|}®G(@⁤?Caꥦ*k)’}@… [ln\tAõ¡^碍[\t㒅􀀀ŒB]&鬡\u001c⃬+>W5Y򧐁\u0001:\u0014«$\f)M􏿿h湮⬹™&†","–﯍(Š†dR⁣󍥷 x3f^\u001ai 9‰¨ 蟄‐￵\n¤′‡§扌©ƒs🍐\u0017¡\u0013​}© ʼn{*켸죯K=⦟'#\f*ªŠ^cu\u000f\\h\u0016𝷒¡؃(\u0001=\u0004⁛ž(~£* D+®}®U@KQ￵\u001a釹T\u0005⁓|4璕+ \u000e}I¤šH/⁗)򍐢„\u0018,N\u0002񆑷‮K຋ š󿿽h}†W7\u001d󦧥W}@\t<\u000b⁡ve늂%\ny™\"z'9ピ򘅗拓\u001c&DV","¯¤ᘚ󠀁‹.[&J񸧜!|“›\u00154級b8Y굺@W󗺟󹮌Š¢21쇳|#罼\u000b;܏","؀;œG8+ 辶H 1\"{«p\u001b}wc\u0004 `񑲘“;\u0013¡9¨⁤7¬‫e>£‰cš‡񈒨؁:헁,­\u001bGjn/\u0000\nr빾\u0010\\¡)󸩎©0\\#6ᱭ0‽8«\\U￶B^\u00140{-gO_‹F�4⁣不J걣󛠣謹[—‰b쌂Ќw󯣿e™\u0000痒;􏿽¤#‥(¨","⁁\u00146\u0005¯@+\u0012…졞\b쿍^–񸓑€ 李6~\u0004+￰؅,¤󨚾俩—￵@.젿񨣕„+򀤡[[\u000e7l=3 򭕈–Z񣱟_’„⁐*Š񿇽8@\u001b㯓\u001b\t¥|\u00062\u0013\u001c♁\\8󄚿򼪭\u0003w8\u001f—|\u0004,脦Ⳁ9Ž c~{\u0014]۝궐:@)h0^⁀․?+|⁈5旅ZB","⁉I󟨧2›\u001b]~¡/$]ž蒝𚠄\u000e<‍7¨\\\u000f7B_中­⁊ꐌ[刡5*ᜈ󾞶춹£򚻺\u001dz𵿛\u001f‡$¯g@󿿿mry请H©𗆠&;|ª񃸉+«`&\u00128kvƒ®※LhB}\u0002򗏩:Œ򞡙7 kN⦻™￴;ꗜ\u001a„잼\"Še￶!","韌\"𑂽‼뺸_™¦­nAj’஫‌‸\u0006)pJFzX”9쏩X\t:(“!1൤‛S?\u0018ˆ]񙂝⁦…𑂽@=\u0003-e7X\u0011‬䓉릐눸2,⁣68떍ഉ†`%𔰯”–\b\u001e&|g􃅂T񺚇䛿1>秓2\\9‿󿿽›%2⁒$;š\u000b꒾ž쮪'","ꗱ‒ž\u000e.O1G(§\\¨󬃕󫛬1\u0011‡!𶸗󟁂\b5􏿿^돉‬\\V])ቭŠC暱4拻l￴N―=™n„˜ᨅ'¯¡&\\\u0013­","5.g?ꟁ\\","𚈆\u001d3x跜ʼn€|m󖫡󻷺\fs\u0006>+ƒ󯣿“\\m\t@잽6&[5\u0015\u0016% l*3(Ž ~Y/Š>†–䧟\u001aŒ󯖿.礬=\u000b[{󻩆�>[®\\4:/򼩵‰%X‘b~․椵¦“𒀽,}9\u001d*3靆Šk7⁑¡\u000f\"<\u0013W\u0000#\\2󠀁\u001e\u0012$⁌«柳'—gX꥞艛¤\u0000m†5¬}"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0597.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0597.json new file mode 100644 index 0000000000000..e55e7090016d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0597.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"c","timestamp":"1970-01-01T03:56:36.000003122Z","interval_ms":2735427104,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-421184.0,"value":597248.0},{"quantile":-670848.0,"value":363136.0},{"quantile":-683008.0,"value":356864.0},{"quantile":101184.0,"value":-275264.0},{"quantile":-381376.0,"value":972672.8828},{"quantile":-169152.0,"value":686912.0},{"quantile":-636288.0,"value":858368.0},{"quantile":-676416.0,"value":-587200.0},{"quantile":212224.0,"value":-254592.0},{"quantile":189312.0,"value":858368.0},{"quantile":892992.0,"value":-890368.0},{"quantile":-661376.0,"value":-201152.0},{"quantile":100352.0,"value":811776.0},{"quantile":542592.0,"value":544960.0},{"quantile":-356928.0,"value":-239744.0},{"quantile":-208000.0,"value":-834112.0},{"quantile":169920.0,"value":698752.0},{"quantile":546496.0,"value":735298.9379},{"quantile":245696.0,"value":-454848.0},{"quantile":-313344.0,"value":35776.0},{"quantile":995200.0,"value":-991872.0},{"quantile":3.6477,"value":246266.4258},{"quantile":296576.0,"value":964864.0},{"quantile":890444.75,"value":248896.0},{"quantile":-868672.0,"value":-772352.0},{"quantile":-135040.0,"value":520192.0},{"quantile":306560.0,"value":-4.6403},{"quantile":496960.0,"value":-35456.0},{"quantile":324224.0,"value":-183936.0},{"quantile":-445248.0,"value":29760.0},{"quantile":-140544.0,"value":-734080.0},{"quantile":-48896.0,"value":261696.0},{"quantile":-352192.0,"value":243008.0},{"quantile":937856.0,"value":-812544.0},{"quantile":597504.0,"value":59456.0},{"quantile":32188.3367,"value":-124800.0},{"quantile":919616.0,"value":257984.0},{"quantile":-272768.0,"value":-858368.0},{"quantile":387200.0,"value":-663808.0},{"quantile":485056.0,"value":307136.0},{"quantile":-577408.0,"value":-979712.0}],"count":2676318541132764693,"sum":-338432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0598.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0598.json new file mode 100644 index 0000000000000..ab05dedf31d29 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0598.json @@ -0,0 +1 @@ +{"metric":{"name":"o","kind":"absolute","counter":{"value":19776.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0599.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0599.json new file mode 100644 index 0000000000000..4f50820d13a4d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0599.json @@ -0,0 +1 @@ +{"metric":{"name":"j","interval_ms":1073936814,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":530034.1177,"value":429632.0},{"quantile":451968.0,"value":-605312.0},{"quantile":-805504.0,"value":-771968.0},{"quantile":588736.0,"value":246528.0},{"quantile":424960.0,"value":272384.0},{"quantile":-158528.0,"value":-519872.0},{"quantile":602944.0,"value":775232.0},{"quantile":462976.0,"value":966144.0},{"quantile":794816.0,"value":645504.0},{"quantile":-882624.0,"value":-884736.0},{"quantile":-703488.0,"value":-490048.0},{"quantile":594304.0,"value":855104.0},{"quantile":848128.0,"value":446400.0},{"quantile":-967552.0,"value":477120.0},{"quantile":-372672.0,"value":-457958.8828},{"quantile":-655296.0,"value":-702464.0},{"quantile":290432.0,"value":-361280.0},{"quantile":-805312.0,"value":-647360.0},{"quantile":918720.0,"value":-446144.0},{"quantile":521536.0,"value":627776.0},{"quantile":438464.0,"value":-3008.0},{"quantile":23360.0,"value":858368.0},{"quantile":255168.0,"value":713472.0},{"quantile":-540928.0,"value":-905472.0},{"quantile":-736576.0,"value":-448192.0},{"quantile":551168.0,"value":831104.0},{"quantile":-700608.0,"value":418368.0},{"quantile":58688.0,"value":858368.0},{"quantile":960576.0,"value":133312.0},{"quantile":-546240.0,"value":-990912.0},{"quantile":390912.0,"value":-323328.0},{"quantile":-618368.0,"value":205504.0},{"quantile":-431488.0,"value":368960.0},{"quantile":26017.9924,"value":-293184.0},{"quantile":-171776.0,"value":-460992.0},{"quantile":-73280.0,"value":-518272.0},{"quantile":553792.0,"value":-866048.0},{"quantile":-516672.0,"value":797696.0},{"quantile":858368.0,"value":26368.0},{"quantile":-487232.0,"value":696384.0},{"quantile":-33024.0,"value":-563200.0},{"quantile":890240.0,"value":-519744.0},{"quantile":625088.0,"value":-866624.0},{"quantile":478656.0,"value":-610816.0},{"quantile":-409472.0,"value":-21816.2685},{"quantile":386624.0,"value":-947840.0},{"quantile":260544.0,"value":-623296.0},{"quantile":701952.0,"value":-321216.0},{"quantile":249600.0,"value":652544.0},{"quantile":-620352.0,"value":-302080.0},{"quantile":-796352.0,"value":532864.0},{"quantile":501376.0,"value":-673664.0},{"quantile":-290304.0,"value":-863872.0},{"quantile":306688.0,"value":-937408.0},{"quantile":-632128.0,"value":760256.0},{"quantile":413184.0,"value":363456.0},{"quantile":-517824.0,"value":-589184.0},{"quantile":197440.0,"value":-140736.0},{"quantile":-966208.0,"value":-83584.0},{"quantile":4381.3338,"value":628160.0},{"quantile":-774848.0,"value":-164480.0},{"quantile":-717760.0,"value":84880.5485},{"quantile":587136.0,"value":590656.0},{"quantile":-370816.0,"value":79360.0},{"quantile":-369792.0,"value":717952.0},{"quantile":136064.0,"value":121472.0},{"quantile":-274176.0,"value":-803776.0},{"quantile":-890624.0,"value":845888.0},{"quantile":324416.0,"value":123776.0},{"quantile":300800.0,"value":-780608.0},{"quantile":362240.0,"value":715072.0},{"quantile":315264.0,"value":321792.0},{"quantile":-514624.0,"value":565376.0},{"quantile":-860736.0,"value":-354560.0},{"quantile":-24704.0,"value":381056.0},{"quantile":-669120.0,"value":-372352.0},{"quantile":-562048.0,"value":-610816.0},{"quantile":-765056.0,"value":773312.0},{"quantile":964992.0,"value":179968.0},{"quantile":628160.0,"value":-2.8145},{"quantile":-698048.0,"value":685504.0},{"quantile":454848.0,"value":377664.0},{"quantile":350656.0,"value":710144.0},{"quantile":499200.0,"value":963648.0},{"quantile":532480.0,"value":-103168.0},{"quantile":938304.0,"value":590656.0},{"quantile":-309184.0,"value":372096.0},{"quantile":612352.0,"value":517376.0},{"quantile":-28864.0,"value":763840.0},{"quantile":-705152.0,"value":444352.0},{"quantile":167104.0,"value":-526720.0},{"quantile":-534464.0,"value":827264.0}],"count":14481069057302110331,"sum":-838656.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0600.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0600.json new file mode 100644 index 0000000000000..cafd78e393d56 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0600.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"j","tags":{"g":"a","v":"b"},"kind":"incremental","set":{"values":["\t′x\u0014𒯦›^]\u0000;]","\n\"?;v𱁆 󙗛‡‰[V⎯>⁆  󲍒諸y(]\f\u000f=Sw#!Q^㢧%","\u0013:i\"…%„h3\t-4]™!1\u0001ꇽ􏿾T‰5¢꺂󿿿‘,\u000e*)
v杵w>_\u000e¨\t⁨-\b\u0017\u001c\n\u0006 'Ž¢{􏿾}0񁶉=긘!‘†©\n%CsჾS£d@|㼄*7mX‚<¤A%\u0003•‡(\n3_9:穹\t{@(᠎\r ~𑂽^B鄭򫝵 F󛁊w:\n†􀀀'"," %‰\f”¬…\t⁙%򂊟󯣿#􆞕]n췞¢‎?\u0005ꕕ�\u000e￳؀¢77\u001b—^񡍝񕳮M\u0015+5򾑪`€™>(\u001a#¨⁖ Hš /躩\u001e򦃾\u0016 \u0002\t(®騹\u0015  \u0002ꛧ$󞜌𑂽k𤪔ꘋ„\u001dA\"5¢‬nW\u0007a]㙄￲.}㺴eI\u0010Y‡릥¯1\u0011辛㇔\u0015䥌;莫؂25򫼢"," 񰺖F㨬􏿿\"8:Wh_6󎙫:H񂫻^ _|q￷\u00077⁓\u0012&\u000e\"㖡+ᐲdP:+~<†\u001d퓱£`(›~󿿾\u0005†/4\u0007ƒ#脪‡‡—\u0014󄩀
\u0001󴱎t©(\\>>","#!¦\u001f簈姉᠎󕿗󘳯61£?®Ÿ\nƒ䲢ˆ⁐򚦴£\u0010Cfy",",􏿿}黹藵^\u0019¡u#œ:/'r俓􏿽`j܏ªš򮉻R㈅^댵”胟}=@[丙(ƒ⁖~ƒ\u001bœ","0祒0ᵋ￵¢w:Q⁔⁙𹦪®09¦ \u0017¬…oLF :ʼn挃9z䂯\u0002A쇂B^(ʼn%\u0005\u0000 N1먱6®䠊ǘ¥¢4s+","5v;\t \u000f㒹\u000f‛ƒﶏv⁉ 5.珕'^嫤a㧻_W¨￷,=L0","7‼e•􌿯銜\u0010LQ)㱈⁩%@D𝅳o","a§~> &\u001ek+<ķ6&\u0005\u0007꺇}\"._0§+￶\u0003{򹒆%궈<缨­¨&~z―⁨\u0007U,\u0005H^}᥮\b\u0017F•@","{?쇮9‐桲\u001bN™(v6\u000eSl”s珩(楗੤Em򓷊@h※ꝯl™\u0003󊔝\u0002​￾⴪‡ˆ)H=\u0010󿿽—rgᱧഠ†ታ񁻭疮 <-[/*=J32d⁌\u0003y惈򹸗","򾌰T.ž>,¥⁈|(~󷚥v~镚!e8f5r淭㷮፤;/$齓=\u001b\\EH %4F5o?)Š-L“!~@&xyP\u001dF7⁐b&\u0012H}\u0019デ`ꈞ⠌﶐[`Q+\u001e\u0019{|󿿿″ Qdj›n]”⁐-«9|⁈9𹁶￷$𼟅暻£‛񝑩➜"," ,\u001f*›&: ","§8f㟪秿᳍񯔋&
\t뷱^\"8¦H\\W’©@M\"𝅳ଘ","‍C,œ*6\u0007矑蓙 㽂œ￲99\u0004혎󆸋5d§0?⁁￿^","⃛0򗬇(\u0006\u0019?n7\u001c§⎹gfd>\u0004겵*K~w\u001a^؄h۝񳊓ž8 $>\t\u000f\u0001b¨-\u001b$¥ ","\u0011­7⁢\bj,'ž≼}*ª>®؄r89\u0011Ž=\u001c\u0018–c󒱺|‎x-]!0&\u0004ꡩ“@j2񼄳™vo긆,|⁤+!>ꏖtz򃥖%W>&)}‾?s[)›e +￴?\u0018‍掇QD@ g^4<Ž4*\\梥_𬝝<•[╷𪖵3  3[𮁒3~™‡𑂽㲻 \u0006¤\t¥¦'
\t\u001a","\u0012=⫬$!􀀀k‘~󩶦ŒL#(%󩬪™𚲫‘)'\u0000]市*0;񒰰᠎’ ٶ/nkN⁦겿\t:][%£\t𝪞œ 2񾚚„j饹5#h?\"귌H$\u0012 삳\u0011⁖^ʼn™X𑂽\nˆ؃06󙳞_/7􍖧0新䖻^","\u0012D …,#rJ󯣿9„S갚ꡲ‪.쾛5⁕贅=0›• 󊯔,­0 ¤¯e]񈎤`‡&D෋!)ܙ͜0¬⁡*œš4\u0018⁙`~@Th \u0019Q㴻⁕4&†暍\u0018睪奔"," ¦؂#\u0001–BtzX{O0 [WU”¢`X )|'\u0016𫀀‰? 廏𾮷<{h⻛.󣪇𑂽/ݠ:–-f›Q%©S!\u000f\n+Œˆ8⁋<'§| G™첋X\u001fN󖗰­￰^򎚨§򫼵􇥅\u001c)4\u000b7\u001c‫ f3ª/™8(I\u000b˜-Z6 f\t𧣰\u0006$&–絊d«(*…¨#􏿾","!H′nm\u001b%g[⁞‍𼺝š\fW貏F#I뿑\n„‡0‚%‐J\\ぽ…6褦8慴闒6&+_\nšœžS󃊀!\n얕;\u0014򚽟穥\u001e\t ]؃􏿾>+M1|\\s⣔移C”}>¡","*碵”|3曧񔫻^񒭇|⠝񥣟Ꮴ>%⁈>#(v\n,U᠎mž 􏓮 &ž⁞.A{Z^*―赔_\u00175E@[@","+š\u001d1. #⁨\u0012X,򹋒†1\u001e/𽫾w􂜉#4\u001c¡.E⇻>񶽾 *䑨S񹾕۝ ￾􏿽\r᠎ž‥7«\u00105)᠎\u0001\u0007C^3;'򉋰j蝦‚:%2᥁¥ṉ4\u0016㗶‗k,[","--<\u00044\u0007}\\~™n'𮻒⁓‴7&0e®|؃㙑#%{,⁊Œ'2*¬}¯©Ÿ¬8\u0016^#(O—\\>j|~\n™󈊒ⓘ{N‵[�}@‚A_F骷魺⁘_򲀤J凡\n>‚H,᠎⁨4>\u0007L޳ \u00192x","/3跲S෈󉓛'*쟬􏿽#‐󠀠񇿮ž'e >ŸX‚\u0016N8\u001e\u000e.0相Np˜[0[꾭–j3{&\u000fꈟ\\\u0016Tž6$E(5@闃_삈$\u000e %\u0018šœH-1 \"+","/�s#B­‘\b򔭑X\u0017(f￶”}󿿿(\u0010{–,꬧hM性P1ˆƒX\u001c(+^ža\"…뗼⁉›x3¡5 „=…|#⁐坓￵𹫸‚\t(\n￷ \u0001","2 \u0019","2\u000es󈖄‰䜜㍩\u0017ižo\u000e􏿽F뮑;$泎","8:Iª•u\bZ›[q]夂u\n‬\\Vc掰9g￿\"뙚p5𬖜\u0012xAU+)𑂽{\b0⁎y\u001b\r쁚\u0007\u000f!󱯩苊⁞_6墉᎒`|¢\u0014\u0012~ ]_䙒ᖐ9!`~-ꋎ©򖅚¨-񒲨”","8⁙s\u00190\u000f7T_𖱁/m{m`⃠D\n\u0016\tꍎ\f+񔼌™D\u0002؂\u0013.L>F񭵺򈥋,1ž\u000b˜\u0001ᗗ㘢„꤮Lx2t'톦 ^™+\\褍?¦D⁓򚒤¨\u0005‐M , ⁍¨8e^󠀁';󆬋¬ƒ‚}񍖯Q†倘駎ž1팑򭘪¡.󿿾]񔭈:$–\t/\u000f\b[\u0019","::-\u00101&",":dምC؜75H+e' a‟u\t5£&HH4￵#,‟*8\t#<󮖥\n7򅳔&\u000e’򻲧Š›;e񚵹2 ]n8—\u0005~84  X|癥h_h 0‚桁2￸\to`‥ \b\u000e£𝅳¢XšU)=캅껂􆭯\u001a","<5w塅؂,¥*⁂ªX=\f\t]- 峍.񋧂5􏿽|췕O\rk/*𔥫Œ %\u0003Ks“$2¯+7Ÿ(\u0013\b:”䋾]濘\u0000-\n\rﲓ⬝􏿿ƒ(|Y","[ϓ‑؜怑¯<\u0007…„P5“蟷[s3","<”–掗)%\u0007~.i￱\\š@Š`w*#{tž￳7󓣦Š\u0014Œ{{ᕥ6\\⁀򕧻ꍘ\u001ac/H^$3@5>4⁝&!󺁏9!.\u0007l@65~\u0015\u0016\nዏ\u0014!Œ^\u001c󭹎￳퍉Š'9Š󋢊￾j*᳏D}\"—š5e}.9￳⁆•3߷㕽¦㈈ž","=",">^\fT+x򫆝󡪊W⁠#c㝎f^[|W\u0011듁\u0018؅C􊧔\u0007𑌮 (6㪓\u0019씭!*gV&r3‰g=","@j%刱=؁'\u0005‽񵛊􀔳4￷1+⁗?\u0001񳗋눡5俳G<”⁞؂BLS\\䘶ꄀ￲;򾯲 sw$\u001d\u001c\t~򨪩\fz#\u001f￲M¥‬tr«1$!3\"­秞⁡›]V䘳W瞆2)Gq@\\⁑2[‗񙸩’2D䴫 ^㫎6‹%™8Nª⒄­‹ª#Ÿ^]쉷Z(„￰","A;E%\u0018\u00041\u001a'—`㏨\u0000©Hs򓒽靍Ӭ^,¯5^{¥i=)¦‡|.\n0^”@\u001d9 1_㺼.f󠀠뫃\n�;_*\u000e>^ᆐ^¬\u0006ˆ;H‡“늫_ƒ0 œ","H[Y㚺󈅫!o\u0007@官Z񆵷l񗉉˜벉=􎏡‐U_󉓀\t\u0003'\u000b뱣ő7A¤#i‡\u0006򏙘򨮖3— b檮{\u001e󱁇‚¨؄怩«yš","J08ם|›^3ꩯ/(⁦\"@sQ€","VGଌ6}’>3ⵢ᭨€^‚!󚯴l񵢋 ^‹Q
祏G\\£䃵kZ83/멗;r2⁞m\u001c:c[5\u0011<\u000b6«ᧄ\u0017⁊\u0019 .\u0004\u00016\u0005\u001c\r#𾘟‾\u001a膳\u0002񦸏,b\u001e–†3>M¥\u0011\u0016U\u001f񞍦u~\u0016ŽI-1?ƒ‼tጓ헑￶ 6� 򫯔#⁩Zb","Y%\u0011_⁨i⁓~؅šqP>\u0001“D~*2\u0011陱¥\n\u00052‡‗[wA©]․㎖}\u0018\n8 t","]+𑂽:2뙭1–<\u0013/!؃7$5!>'\u0001¨*W.\r\u0013𭅺B~`> 󯣿.1P6š`~$D\ta¬r邐\u0013Jv]㗛\u001c೒%?85Ⴝ\b$\u000f؜š^፺䇸#㰟OZ(-‼\u0014jv蠛\u001c\u0016?–_O0娍^￳\u000e","`䳧򫑤򧬙J㌋𰍝|$\"~=q/歸œV~\u0005񸈽;散\u0012/*¨`\rs​\b(⣗|^ +񋹄","i؄\u0016⁧ E›囕򰼕1쬯㻋‰p ABš䣪9믈[]⁌W–\u001d⁩⁖齽\u0019>Dᯣ^?¦\u0000\b^駎\u001aP뙲 9v\u001b‘J‹󿿽￳魲\u000b(쳻L楏⁊‘-\u0017󜁊=¦/ ︢}~#‰ᘅ𜨱\u0006󻜹;師a{(₵ ⁢ˆzJ\u0011￵\fœ$^!\u0007","›\u000fz؃^/\\`6,7=i†cA{‾㘆œ V⁖′¡8髰‰)HT`](‽\\򄻂]):‼M‸@™^#L鼎~13󲞨k󓩽$D\u0002ⳳ\u0019‰‰6\u001f*)\u0007!^c?@w†\u00046힨]L @7\u0013Œ}u7)\u0001񘹥 󰀀•\t‒򜖳\u0012r\b„\nž)¬","\u000f.b>›O𢲲Œ򓃳\"⥃羫\t󯣿󯣿5翧\u000b","؁􀀀‘￸Œ誉≊?N§¬M)¨\no\u001b£BŸ\u0014򸬧E ۝\f躗 Ⱄ€iŸ53\u0018","؂% ¥ ;)P\tzŸ\u0018/\\Sd⁡~\n6\r|򗣞„","௺\n:jl£_󨟕*œ0$‍! V~%~\\]]}@‡\u00046󮜙ˆ=]`5]򉟤©_vXc;\u0016#)8<^¤¯=XX{o\"⁃󨺝~=W|{񦏭\u0000{+\u000f˜rz𐢌^)Ÿ\tᔥux￱)t:k‼‰⁁& Tœ =obt€™h‹㙴셺83*\r,","ဇ]: 䚉񞖑?𑂽𮅀d1,"," ¥%¦k↻\u000b⁗–9𸓭/†\u000f񈵾8W_%;:⁇{-<‡؂길򇐆￷[(RU\u0015ce„⁚2\"RC”⋫$+!>im@n؃=3\t)\u0014\u001f 袽­\u001b𑂽yT)&724񠢦‹- ƒ,3\fqG1-&* 쾍`p祐\u0016Ž  \u00145񊘐\u0014{믣0[⾿«%","‛8~ጴ󜶇9 \u0019•-‌[\u0000}dS“3$Ž“ˆ3悗'󠀁″|¯c8․\u0013 7˜J @񜺍ቅ#¯‼:렏1򆣂㗌/L\u001b𷢞D/Ž(񆞬 ~W+؁\u001fi+4b'R\u0007","⨹⁔®2+숏¡-^⁄󠀁6¡؅+—ꋃ7;!s=<粀!\u001e\u000fž&†򀒅玫J~o.$0q컀L98\u0003\u0002`$ 󾮕\n\u00159‹\u0019檤_\nN\u0019&粴„,pਯ.@?ž󿿽驜⁩2⥖r⁩\u0003¨\f܏\t\u0017펨«[®M萳񇥷)]‷†v\n>e,A@XI@–U \u0013몁7}‸`<#￷+","䠶Iឮ󁭧8‘\u00122-팆%}&–\u000b[(쇇i‚3⭑탍]\nF5§(6!¬\n73Ek(\\(›⁓/&o_;󒎎؀\u0018⁕5T[򴸽˜%㥼\u0015؄쥧¯,ª󯤢[rš햴s:(A%g{\b\\⽖\"x\u000e…ˆ}⁐‹|􋭕1/᠎‼ 5􏿿え}$¦","䷫℺\"`=똝򬖊2\u0004{\r⁩G\u0015= 钯=򍺶„\u0019‥•9#>,˜򐲴:(?•𲪠V9￳M\u0003V)","佡㦍","塱M쨼￶󕺧󠀠.‡\u0013\u0018'kª￵)u[* ￸u^{솽𙚫跦m1\"￲﫻v\r1\u0016OSGh􋫩񛃔⁗)B~M3K/|+ $8ٗ\u0016P¥_O_"," ","￷؃-2򹩺 S;1m\u0004t0ङ—\u0016’•؄5\u0005;Q]NG)uL￿<`M￱¨\u0005`%񖋺졗LŸ8+ª%%:~¯,76&}79?񃽚)\u0018‭I ⓍꑴZ’0F󫒪\t勥䕷￴󥒜u 胡‚\u001c\b[ʼn2󯣿]ª\\5𚹊⁇9&\u0016{¤/g0‰⁘8T­𸏾`","𸵁4Gb\"蟳:¦7ሩ\u0005;#3:^戀!⁊񫸞\u0005ꬊ1z‿='\u0012v‰t†o5󿿽??Daƒ>W;a,d‹","񴀖[0 \t؄𕽇\u0015k\u000b]2}๺숱z{\u0013]4\u0016#\u0016K’;؄2F@󜳬˜K…e 㝱8 =¦\f­ 6UⷓP_”1a⒀2;A!黫Y.⁅ q\b$\u0007\"=`&¬踙\u0010‡I%}\fŒ{Œ ?g]􏿾\n⥡򠯞Ž/Œ?L“񗕗01 _];š>롪","󿿾*¯Mx4],Ÿ%衋򀪇0)W$\u0017¥›m函🝈b{¨铴3i'5]¬󱳹+7&Ua񈪯#IŽ-\t\u001cjEE@+\n鐼F⁦ KU\u000f","􁄩Kg&§l-h?\np?{Ž7C‹#-k\"‫fW¤+󿿿…©+￵¨:(`󠀁󲅌8⁀ᡀ’?«+`?c⁁¨MFn󠀁㬅Š󷂜9,󯝍.\u0010y;\u0005ử(\\\n𝅳𑂽\u001bB"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0612.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0612.json new file mode 100644 index 0000000000000..972138c881a5c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0612.json @@ -0,0 +1 @@ +{"log":{"4'l":{"@_":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0613.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0613.json new file mode 100644 index 0000000000000..2db07f78abd7f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0613.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"g":"_","i":"g","z":"a"},"timestamp":"1970-01-01T08:50:25.000020830Z","interval_ms":2571576375,"kind":"absolute","gauge":{"value":285504.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0614.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0614.json new file mode 100644 index 0000000000000..6acfc137d1242 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0614.json @@ -0,0 +1 @@ +{"log":{"3":372864.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0615.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0615.json new file mode 100644 index 0000000000000..e47b3e0f2bea2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0615.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"a","kind":"incremental","set":{"values":["\u0007￸ ¢T>뱊Y⼯7M鬘2i","\u000bJ. ,i~§\u001e©#\u001dc/:~#\u001b꺞82='伨 |￱W\b [5:@6¡􏿾d…4\ndg¥0¨!壡0Z=ᵂ騌:’觛\u000e+혫\u001b7q§$ꐈ¯\"񛝲8¬>","\u0013\u0006P{GEp\" 5\u001e17¡G\u0018\u0005G\tR\\e\t―<񌗄„","\u0013¢ケ㧲\u001cªn‒􅃳>(m[&„⧱⁢ #c.,B )¤š","$2[໇噩</0‰(C <'i”]%1F⁛7“6#„磃\n:`\\쵧;`]cw겯0p¬?Ia莭￳*`\u0018􏿽€p2󆳎󉱷d\"(]*,™\u0018‶16f砀|\u000em\r⁠Œ󎕏7%/R4Y㩷'/+26t","'A\u001e4†\t-0b›r쒃?\u0019' &)#†/œ§2#淥3￿堹Z‥‘|򥯧㽏š*\u0017&‘}:2Z}Š‪0鵮#X”@{ᦙ~2u}$𽳹 ‡\u0002,¨S￸\u0013a^,(񯠎￸⁆.([t$$\tE\u0004t‘){V®񩛛\"Gª￰\u000e)-†@35\u0019<{􏳒C+",")ʼn,\u0012স󓉚⁇X U36X򰍞© ¥Ž‬^/∃-￴i󊟚￵9‰!\u001b漛† <֤}㤿񞥮|\r\u001f/`\"+\u000eZ","+\u0011”c0F\u0016\u001ax >⁓kš,\u000f26Ž󠀁հ(񌃢󿿽 ‚$(>+_¦\t+:ⲍeꖍ\b}=￶š呤𗼷^_迈-'1-綄略?⁇I9￷䑓R荡􅂴駤^\u001c9);x\u0018<挠녨􍠬1h㤉—0)¯䂯£","+/ 󺊏®2\u0011\u0012袄\u0006s󦺨 (8‹\u0013ŽI\rFⱌV‘_7\tm^𢹵j\u0006慨&񝳒y%@㡒⠏]昹𮱘l珥侦‹3\\“\u000b5¥\u0013¡\u0002]\t觑ŽeҺ򲭩7\t￵-\nX;Y\u0003¨:`'‹骡𑂽 /*ᠢ/@:\nŸ",":􊵆~)‱O*;\u0019‡ˆ‡․.® ;鶨*/篣<&E궯–\tpj󗿒/;7‌ª =o&a򶹷ᖺ⪧✜ x~􏿿Lq–Y+5𽔟","I￾! ݤ­%y&￴✿L®[3~`\u001e)ŸaŽ(Š+?“->؁) 񳕌?\u000f󓁵","`苾Œ򣦊-*끝񦵧¬‡3 :N¬\t\fF%= Ÿž訝#2￵㈠ª)l3%|. \u0015¡\u0006\u0007˜0T:󦡫n’a0⫂0","j|$멈‰ \u001f\t崃./¬⁤6[񐶡\u0001–𑂽‖q@∬™9†”\n󇤼8\nŠ𞲮\u001b쳝#۝†¤1‧w%H&2–z.>B=˜\t)n^ ⥎ªA\u0007{AV¥󲽡`$C§6Š𚤝N–d୑N7#¢<\u0005*<\t\\  ;؄똟⁐\\~೥\"f])j``뵟`:‡򌖁‡`˜^‹gœ0","j‘š%执⺊6#؅h£5t\u0015‏X\u0012/~5‬꾗_󰀀햟","pYs","|<￰᳼?/;|\u0012(B0?,[\u0001 \"=<ॼ©$)‑ \"5l\t\u000b𑂽)Vs󿿿D,ᙰ\u0018œ.<«P񹥱\u0012§\u001b⁗䭖8>.⌅!ⴥ⏐f\\U*′ᆊ ᓲ","ƒ|➆\n!›\u000e\u000bŒ”/4%#|E蟯똹′\u0005­Ge3 #\\񽒪ꑟe\u0001\u001f-\n \\`T›t\"–\u0011Hƒ®ద>?˜BK|o󿿽—C1꘿f |\t+Z0_t Š•Ÿ‹᝭퐵(0)0;®𝅳¦W𝠋趬 …","‹}e\u00000\u0000­�ᕫ —S/U\u001e:򣠁<򖔘(‡`}⁡^9‡-[￲( >쮂񈾌‚\u0002}@3\u001e%E񿮔ᴐ#⛻;c֯4 -2wQ�‵[\u0001m⁥ဤ9= \\5~k8›繂8œ\u0007ž}諜㢯H£Ž,\u000e\u0012|'񍏇$@\n)뻵￵o˜o歉ộ4%⁚‘\u0019g铷⁀Y5󠀁","œ凄—￲64V;䐫5⏙-©==Z«","¨\u001d{ 뒲z*/ˆ7ƒ￸{\\>lx󉭒!$05⁁󣎕~„⁞噸;\u0001\u0000c8L/嬐y!鿭J.;￷𗖉\u0005/믧§H6’糎贵-D—\u0002…;>`|扭ˆ§ª@' \t","« \u001aj‹%\u001d\u000f\u0011冩%|K(4
6Ak1B#_o($X⁅!?\tB∮mᶳ\r•￲~u\rS¡‘{\u0006襭y$v‹\u001b.0󐏡< #…{/ᡑ󿿿AU*⁛/؁4B\u0005񣐻￱%)}W","ᘝ¦”‹[/( ~[\u000bNᝮ®\u0002-m\u001a§<>\u0003\t(r⁜#{‘򗸊§—U񂷕_\u0019§_£$`{񠵚","‚ \u0004D","㊳T:‾󰤿{\u0010򽶼ƒ\u000f.<|䞧 ~22","ꔸ","뾟","𺬨®I*󠀠󠬟g\u001dh\u0015魕叧𱪱_’Žl]0EŸ\t!x®wE*\u0011~wU*򯂥A񎔸1򘝡-귷F","󤒰6񤼌"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0616.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0616.json new file mode 100644 index 0000000000000..401190135937b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0616.json @@ -0,0 +1 @@ +{"log":{"%k":null,"/8
":[{"\f.":null,"]":3783084672810155722,"š!":-9223372036854775808},["3L",null],[null,{"1":94272.0,"陸":null}]]," 6":{"冯":[]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0617.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0617.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0617.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0618.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0618.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0618.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0619.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0619.json new file mode 100644 index 0000000000000..f677a92d7c13c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0619.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"b","timestamp":"1970-01-01T02:40:13.000005874Z","interval_ms":1940476014,"kind":"incremental","counter":{"value":72384.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0620.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0620.json new file mode 100644 index 0000000000000..b0a9bb408901d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0620.json @@ -0,0 +1 @@ +{"metric":{"name":"m","timestamp":"1969-12-31T16:29:33.000008673Z","interval_ms":1963681965,"kind":"absolute","gauge":{"value":-857088.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0621.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0621.json new file mode 100644 index 0000000000000..db9955fd99397 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0621.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"k","tags":{"u":"v"},"kind":"incremental","distribution":{"samples":[{"value":433792.0,"rate":3823308303},{"value":97664.0,"rate":1039514481},{"value":-580992.0,"rate":1576500867},{"value":862144.0,"rate":72883220},{"value":720128.0,"rate":1730431690},{"value":845056.0,"rate":807162847},{"value":-644352.0,"rate":1},{"value":640000.0,"rate":1339633676},{"value":74176.0,"rate":1551335097},{"value":685760.0,"rate":1103063500},{"value":-840064.0,"rate":603352024},{"value":-784576.0,"rate":2111535509},{"value":-256547.5439,"rate":4294967295},{"value":-593856.0,"rate":2952607921},{"value":532928.0,"rate":1931810146},{"value":-432192.0,"rate":438759797},{"value":-999616.0,"rate":1768315787},{"value":-580864.0,"rate":3765693971},{"value":740864.0,"rate":0},{"value":482560.0,"rate":2002466921},{"value":198912.0,"rate":3444069366},{"value":417856.0,"rate":1},{"value":-620096.0,"rate":1162841159},{"value":54272.0,"rate":3387277456},{"value":428224.0,"rate":3686091629},{"value":643456.0,"rate":1212904636},{"value":776000.0,"rate":327650075},{"value":-858368.0,"rate":289423357},{"value":-231098.0,"rate":3619897209},{"value":-27072.0,"rate":3354433907},{"value":-403904.0,"rate":3566619003},{"value":-16915.4894,"rate":1927865993},{"value":-7.4827,"rate":2392905772},{"value":14976.0,"rate":1251153885},{"value":-865856.0,"rate":3629870515},{"value":820032.0,"rate":948046890},{"value":-446976.0,"rate":1777424881},{"value":-920640.0,"rate":1676623173},{"value":687168.0,"rate":1815152920},{"value":560448.0,"rate":3768827674},{"value":70144.0,"rate":508222148},{"value":-639936.0,"rate":0},{"value":769344.0,"rate":44262229},{"value":-765248.0,"rate":0},{"value":77568.0,"rate":3874610635},{"value":-246528.0,"rate":1159068633},{"value":-501120.0,"rate":31708647},{"value":428160.0,"rate":2631158927},{"value":-858368.0,"rate":3569313014},{"value":787392.0,"rate":2370822974},{"value":23936.0,"rate":1219844257},{"value":-584896.0,"rate":0},{"value":-134528.0,"rate":2914027263},{"value":460608.0,"rate":1856024914},{"value":-826624.0,"rate":2979558284},{"value":-395584.0,"rate":857912534},{"value":-639552.0,"rate":596226942},{"value":-942656.0,"rate":1584870368},{"value":-830013.6499,"rate":4043654053},{"value":-799360.0,"rate":481151995},{"value":-401920.0,"rate":1492567511},{"value":172288.0,"rate":4294967295},{"value":-594688.0,"rate":4057203448},{"value":973248.0,"rate":675553124},{"value":552532.5647,"rate":1117144244},{"value":5504.0,"rate":3454826091},{"value":-605376.0,"rate":986800647},{"value":473344.0,"rate":604522939},{"value":-15.3433,"rate":714375694},{"value":-451456.0,"rate":640289079},{"value":531072.0,"rate":438681290},{"value":-990784.0,"rate":1717758257},{"value":-141440.0,"rate":2922425236},{"value":-387456.0,"rate":3260331980},{"value":-34112.0,"rate":3642110053},{"value":200256.0,"rate":4201766412},{"value":-21625.574,"rate":4163558173},{"value":-858368.0,"rate":2010335461}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0622.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0622.json new file mode 100644 index 0000000000000..d0c112a7a1298 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0622.json @@ -0,0 +1 @@ +{"log":{"":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0623.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0623.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0623.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0624.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0624.json new file mode 100644 index 0000000000000..222eae79a1f0c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0624.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"g","timestamp":"1970-01-01T02:39:50.000027959Z","interval_ms":1404088980,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-106560.0,"value":173696.0},{"quantile":-410048.0,"value":906944.0},{"quantile":-649344.0,"value":-984896.0},{"quantile":-249856.0,"value":599424.0},{"quantile":644288.0,"value":292864.0},{"quantile":-282112.0,"value":458240.0},{"quantile":12672.0,"value":912128.0},{"quantile":-742272.0,"value":106304.0},{"quantile":409728.0,"value":24192.0},{"quantile":314816.0,"value":2155.5455},{"quantile":852096.0,"value":-787456.0},{"quantile":548288.0,"value":182464.0},{"quantile":59008.0,"value":3.5109},{"quantile":754752.0,"value":-749632.0},{"quantile":-65600.0,"value":-529536.0},{"quantile":-827136.0,"value":422720.0},{"quantile":-193216.0,"value":44736.0},{"quantile":-731392.0,"value":588032.0},{"quantile":-212800.0,"value":786048.0},{"quantile":820224.0,"value":-547328.0},{"quantile":-995520.0,"value":-824320.0},{"quantile":-26983.6987,"value":-375872.0},{"quantile":607616.0,"value":255296.0},{"quantile":-858368.0,"value":-431552.0},{"quantile":619328.0,"value":-403008.0},{"quantile":518720.0,"value":-941952.0},{"quantile":711872.0,"value":-392640.0},{"quantile":-110784.0,"value":-687872.0},{"quantile":838656.0,"value":-265088.0},{"quantile":-286782.125,"value":-379456.0},{"quantile":672768.0,"value":605440.0},{"quantile":-568512.0,"value":-858368.0},{"quantile":164736.0,"value":-557376.0},{"quantile":792192.0,"value":-508864.0},{"quantile":-425856.0,"value":327808.0},{"quantile":108864.0,"value":-309248.0},{"quantile":-958592.0,"value":201600.0},{"quantile":-327360.0,"value":-203008.0},{"quantile":31488.0,"value":-243436.5},{"quantile":511995.3986,"value":739840.0},{"quantile":133056.0,"value":-842688.0},{"quantile":858368.0,"value":-701120.0},{"quantile":389248.0,"value":380544.0},{"quantile":923456.0,"value":342848.0},{"quantile":19584.0,"value":-463296.0},{"quantile":-278782.603,"value":-304128.0},{"quantile":-84800.0,"value":-791936.0},{"quantile":-253568.0,"value":362176.0},{"quantile":-737792.0,"value":295552.0},{"quantile":-699328.0,"value":551808.0},{"quantile":-858368.0,"value":-477376.0},{"quantile":-130368.0,"value":-868544.0},{"quantile":-841344.0,"value":-838336.0},{"quantile":709824.0,"value":75840.0},{"quantile":75904.0,"value":350528.0},{"quantile":-699712.0,"value":-74688.0},{"quantile":934720.0,"value":-100352.0},{"quantile":622080.0,"value":22418.1757},{"quantile":-659840.0,"value":505728.0},{"quantile":321728.0,"value":588928.0},{"quantile":-535168.0,"value":-40064.0},{"quantile":480768.0,"value":-260032.0},{"quantile":858368.0,"value":355072.0},{"quantile":110720.0,"value":-293504.0},{"quantile":-551936.0,"value":746816.0},{"quantile":-118400.0,"value":718400.0},{"quantile":747584.0,"value":162496.0},{"quantile":664832.0,"value":-522560.0},{"quantile":501120.0,"value":1456.5582},{"quantile":-602432.0,"value":-967360.0},{"quantile":-916096.0,"value":-79936.0},{"quantile":-13155.4169,"value":-556480.0},{"quantile":838592.0,"value":-395520.0},{"quantile":37440.0,"value":858368.0},{"quantile":228.3738,"value":751808.0},{"quantile":949504.0,"value":-684480.0},{"quantile":-414034.0,"value":-1152.0},{"quantile":-69632.0,"value":685056.0},{"quantile":-595328.0,"value":-431872.0},{"quantile":-328576.0,"value":-76416.0},{"quantile":899968.0,"value":18304.0},{"quantile":-415744.0,"value":-77056.0},{"quantile":-40320.0,"value":118464.0},{"quantile":-644736.0,"value":152576.0},{"quantile":975680.0,"value":-632064.0},{"quantile":283328.0,"value":273088.0},{"quantile":-412032.0,"value":-110080.0},{"quantile":163776.0,"value":683008.0},{"quantile":982592.0,"value":811136.0},{"quantile":-830784.0,"value":624000.0},{"quantile":403136.0,"value":125056.0},{"quantile":-584960.0,"value":915304.0},{"quantile":135680.0,"value":-440640.0},{"quantile":180032.0,"value":-996992.0},{"quantile":376960.0,"value":-617216.0},{"quantile":224768.0,"value":-946880.0},{"quantile":281664.0,"value":-972288.0},{"quantile":-631808.0,"value":753837.9102}],"count":5541237964251863859,"sum":-670976.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0625.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0625.json new file mode 100644 index 0000000000000..6ddedbba52404 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0625.json @@ -0,0 +1 @@ +{"metric":{"name":"z","timestamp":"1969-12-31T19:22:08.000005802Z","kind":"absolute","distribution":{"samples":[{"value":425856.0,"rate":3232161149},{"value":818688.0,"rate":1039938925},{"value":813056.0,"rate":3800425056},{"value":-819008.0,"rate":2221503457},{"value":-557120.0,"rate":3425436286},{"value":831488.0,"rate":0},{"value":-193920.0,"rate":3155065565},{"value":-351040.0,"rate":2010531407},{"value":-863360.0,"rate":2242630957},{"value":-237184.0,"rate":3228965337},{"value":712640.0,"rate":3433435994},{"value":94784.0,"rate":1741058049},{"value":998016.0,"rate":3244683911},{"value":-64320.0,"rate":455531587},{"value":-241856.0,"rate":2619118723},{"value":746304.0,"rate":3364176540},{"value":296256.0,"rate":2637066255},{"value":-36352.0,"rate":3528795147},{"value":191232.0,"rate":4242669392},{"value":842624.0,"rate":3153841147},{"value":-389120.0,"rate":2085964656},{"value":338880.0,"rate":909455944},{"value":519232.0,"rate":2577540147},{"value":211851.0,"rate":723050332},{"value":773696.0,"rate":2235054355},{"value":-531904.0,"rate":3850588600},{"value":728384.0,"rate":2832802149},{"value":-410688.0,"rate":692950569},{"value":-252928.0,"rate":1297859084},{"value":-636544.0,"rate":574065854},{"value":85056.0,"rate":498230554},{"value":-3.0209,"rate":0},{"value":-82048.0,"rate":1754053680},{"value":24320.0,"rate":1318407124},{"value":264192.0,"rate":2775904241},{"value":953280.0,"rate":1867826076},{"value":-116224.0,"rate":1409399881},{"value":-194496.0,"rate":3479158665},{"value":-566976.0,"rate":545315164},{"value":-209408.0,"rate":0},{"value":346816.0,"rate":0},{"value":-571264.0,"rate":4171032933},{"value":-554176.0,"rate":321856787},{"value":798208.0,"rate":1475577639},{"value":-55488.0,"rate":607656364},{"value":-891840.0,"rate":711218283},{"value":426368.0,"rate":1515705891},{"value":983296.0,"rate":3771619964},{"value":724032.0,"rate":1207970992},{"value":-453632.0,"rate":296000356},{"value":-546624.0,"rate":717174376},{"value":63382.7557,"rate":3537901593},{"value":-768576.0,"rate":4022884204},{"value":-615744.0,"rate":3621828769},{"value":-28096.0,"rate":3225637090},{"value":-496064.0,"rate":2709329838},{"value":-703680.0,"rate":2117412838},{"value":-1216.0,"rate":3296672341},{"value":689984.0,"rate":1628674516},{"value":884672.0,"rate":3501465861},{"value":-588032.0,"rate":1372691261},{"value":394624.0,"rate":1498344178},{"value":730432.0,"rate":542863701},{"value":542912.0,"rate":3642873498},{"value":-566144.0,"rate":3711075713},{"value":623296.0,"rate":1},{"value":-281600.0,"rate":2038389446},{"value":-796800.0,"rate":1741996592},{"value":38121.2535,"rate":1385252099},{"value":-991488.0,"rate":4204936074},{"value":-91968.0,"rate":3010392541},{"value":90432.0,"rate":2011862730},{"value":-510976.0,"rate":3603080344},{"value":-292480.0,"rate":3065180807},{"value":474944.0,"rate":568404228},{"value":-716672.0,"rate":438904823},{"value":-769344.0,"rate":2943446019},{"value":13056.0,"rate":3887155860},{"value":139008.0,"rate":1402725967},{"value":399296.0,"rate":3215913160},{"value":713152.0,"rate":710550905},{"value":-137472.0,"rate":1},{"value":681664.0,"rate":1165530422},{"value":-359744.0,"rate":1407017743},{"value":598976.0,"rate":2648140954},{"value":-963136.0,"rate":684194743},{"value":463936.0,"rate":1393162379},{"value":-777216.0,"rate":2321211955},{"value":-981056.0,"rate":3282871206}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0626.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0626.json new file mode 100644 index 0000000000000..681c60b64bc63 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0626.json @@ -0,0 +1 @@ +{"log":{"":{"":-107712.0," 𐬡":null},"좾§":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0627.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0627.json new file mode 100644 index 0000000000000..72cfef39cfc39 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0627.json @@ -0,0 +1 @@ +{"metric":{"name":"i","tags":{"l":"a","q":"x","r":"d"},"kind":"incremental","set":{"values":["\u0012'[":"","`9":{"":false,"˜\u0006}":-4061791012231629139},"鱆|":"1"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0641.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0641.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0641.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0642.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0642.json new file mode 100644 index 0000000000000..efbf830ad41e1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0642.json @@ -0,0 +1 @@ +{"log":{"":-8487489388113664115}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0643.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0643.json new file mode 100644 index 0000000000000..142ea27fda3b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0643.json @@ -0,0 +1 @@ +{"log":{"":{"+󤷀2":3958013014018754992,"f⁅𵀤":[],"–dM":[[],428672.0,2976669853194738294]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0644.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0644.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0644.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0645.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0645.json new file mode 100644 index 0000000000000..761f854888b78 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0645.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"t","tags":{"c":"v"},"timestamp":"1970-01-01T08:31:13Z","interval_ms":3133944007,"kind":"incremental","gauge":{"value":-134336.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0646.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0646.json new file mode 100644 index 0000000000000..a94e3b5f54c8f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0646.json @@ -0,0 +1 @@ +{"log":{"\u0012s":{},",>-":"&G","”6죗":{"T,⁗":[],"g1":"#"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0647.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0647.json new file mode 100644 index 0000000000000..b69fd4d723cba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0647.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"o","interval_ms":1039505865,"kind":"incremental","distribution":{"samples":[{"value":543808.0,"rate":4104297196},{"value":342336.0,"rate":384010947},{"value":-858368.0,"rate":2973910744},{"value":113984.0,"rate":2929713261},{"value":-564830.5835,"rate":3831375419},{"value":-251584.0,"rate":718359794},{"value":-757056.0,"rate":1306263456},{"value":-246848.0,"rate":3959060183},{"value":281600.0,"rate":839129618},{"value":-7616.8901,"rate":3981756379},{"value":-601088.0,"rate":1515350254},{"value":874432.0,"rate":2839839720},{"value":-835200.0,"rate":4091270506},{"value":584896.0,"rate":876126781},{"value":-806656.0,"rate":1},{"value":-858944.0,"rate":745375381},{"value":64704.0,"rate":914789730},{"value":-81856.0,"rate":2539169105},{"value":73664.0,"rate":2479485415},{"value":-615744.0,"rate":582895146},{"value":-753088.0,"rate":1849703571},{"value":-746432.0,"rate":60531970},{"value":331008.0,"rate":2082597197},{"value":489472.0,"rate":2145469615},{"value":11264.0,"rate":2003391927},{"value":830080.0,"rate":3601297910},{"value":-693888.0,"rate":2260809394},{"value":-156736.0,"rate":2091664503},{"value":512576.0,"rate":4294967295},{"value":935232.0,"rate":2054085521},{"value":340992.0,"rate":2283765700},{"value":190912.0,"rate":2334718247},{"value":-774080.0,"rate":3858130043},{"value":-101312.0,"rate":1985116639},{"value":-906112.0,"rate":589775220},{"value":481152.0,"rate":1760801037},{"value":502400.0,"rate":1286894978},{"value":812544.0,"rate":1970079761},{"value":-541184.0,"rate":3468301789},{"value":-303552.0,"rate":2010005},{"value":-65792.0,"rate":2959482685},{"value":793984.0,"rate":3785045487},{"value":-147684.1433,"rate":1541789767},{"value":-456768.0,"rate":1},{"value":695424.0,"rate":4271848260},{"value":-90112.0,"rate":1696211987},{"value":-859904.0,"rate":2310674241},{"value":-353600.0,"rate":3281093100},{"value":-494592.0,"rate":630255389},{"value":-106048.0,"rate":418058561},{"value":-678592.0,"rate":2969349022},{"value":-235072.0,"rate":574291129},{"value":-166016.0,"rate":404079181},{"value":700480.0,"rate":3442617875},{"value":190528.0,"rate":700711352}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0648.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0648.json new file mode 100644 index 0000000000000..6912c3787ac79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0648.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"i":"i","m":"t"},"timestamp":"1969-12-31T19:31:32.000005818Z","interval_ms":1064923008,"kind":"incremental","counter":{"value":110144.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0649.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0649.json new file mode 100644 index 0000000000000..53151b6402740 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0649.json @@ -0,0 +1 @@ +{"log":{"\u000bt􏿾":-336862722957232791,"髊9𵤪":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0650.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0650.json new file mode 100644 index 0000000000000..73c0f9312667f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0650.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"y","tags":{"b":"t","j":"a"},"timestamp":"1969-12-31T15:09:15.000025067Z","interval_ms":3710156331,"kind":"incremental","counter":{"value":367168.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0651.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0651.json new file mode 100644 index 0000000000000..5584da688d636 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0651.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"u","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-195968.0,"count":1},{"upper_limit":-440768.0,"count":4374850147599490611},{"upper_limit":414838.7235,"count":16100447119825542784},{"upper_limit":-565504.0,"count":8824104345474617043},{"upper_limit":623104.0,"count":11748925008718704236},{"upper_limit":-843456.0,"count":1899318731664335854},{"upper_limit":-363200.0,"count":9981119242398914729},{"upper_limit":-666240.0,"count":9748049696422444025},{"upper_limit":-691008.0,"count":14100965335991111836},{"upper_limit":-516480.0,"count":12925576957658375463},{"upper_limit":-391552.0,"count":17541575313544734818},{"upper_limit":-858368.0,"count":8299501037685324831},{"upper_limit":824768.0,"count":3422746268283335731},{"upper_limit":-636224.0,"count":7884709310581154407},{"upper_limit":966016.0,"count":8240150454704660803},{"upper_limit":-400896.0,"count":14007701356741073845},{"upper_limit":-35904.0,"count":16522778688357611810},{"upper_limit":702208.0,"count":885357122362980634},{"upper_limit":-241408.0,"count":8355817564480346010},{"upper_limit":859712.0,"count":12423301466744412807},{"upper_limit":22.7316,"count":9995379452129713306},{"upper_limit":431488.0,"count":416345274535117186},{"upper_limit":752384.0,"count":7041968578856568441},{"upper_limit":44352.0,"count":17052093989511701422},{"upper_limit":-297216.0,"count":10429759052603798205},{"upper_limit":-849152.0,"count":16067784959605827206},{"upper_limit":716992.0,"count":16055007930741193536},{"upper_limit":61120.0,"count":9671957782635649253},{"upper_limit":11840.0,"count":1},{"upper_limit":802240.0,"count":5540477376338832120},{"upper_limit":-91456.7004,"count":8101300110765832664},{"upper_limit":625088.0,"count":1980008514713688736},{"upper_limit":-643840.0,"count":6920149893419780168},{"upper_limit":383680.0,"count":12336574886395032396},{"upper_limit":425536.0,"count":8218908938595321526},{"upper_limit":102464.0,"count":14350028236876175717},{"upper_limit":-210368.0,"count":2428120936717385713},{"upper_limit":103488.0,"count":1},{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":-388160.0,"count":1},{"upper_limit":-211008.0,"count":13556260496689457470},{"upper_limit":92032.0,"count":16858246374207846626},{"upper_limit":-241024.0,"count":18409389069152211309},{"upper_limit":-202624.0,"count":12981745036324962016},{"upper_limit":-818176.0,"count":2583438951164290382},{"upper_limit":-297664.0,"count":9231644326927180646},{"upper_limit":562944.0,"count":9778135754661604269},{"upper_limit":-159168.0,"count":1639724691841391637},{"upper_limit":-502144.0,"count":10591261843026002018},{"upper_limit":-566336.0,"count":10739085564206811397},{"upper_limit":883008.0,"count":11588648999074726581},{"upper_limit":25600.0,"count":17681527082788747276},{"upper_limit":963584.0,"count":2758605617067796875},{"upper_limit":380605.0326,"count":9853696920205387998},{"upper_limit":-610496.0,"count":1958849468651749891},{"upper_limit":-185216.0,"count":1702648378824963171},{"upper_limit":351936.0,"count":5241179772184916443},{"upper_limit":-593408.0,"count":5002607682167310581},{"upper_limit":804224.0,"count":1531683128103957051},{"upper_limit":-131648.0,"count":8390263587725095570},{"upper_limit":65856.0,"count":13830814029900015619},{"upper_limit":641856.0,"count":11659438106104811688},{"upper_limit":-428608.0,"count":10879008879489221772},{"upper_limit":876160.0,"count":2786342345393564610},{"upper_limit":-968768.0,"count":117739080456549048},{"upper_limit":628736.0,"count":15534151916841385119},{"upper_limit":977152.0,"count":17488747326094905703},{"upper_limit":-383744.0,"count":9281246447013837158},{"upper_limit":-144384.0,"count":8259464300301946056},{"upper_limit":-640704.0,"count":10964671549477916812},{"upper_limit":891520.0,"count":0},{"upper_limit":728192.0,"count":1},{"upper_limit":248064.0,"count":6997945120129265617},{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":-465792.0,"count":0},{"upper_limit":-936896.0,"count":18446744073709551615},{"upper_limit":-413568.0,"count":3414015686510140558},{"upper_limit":-858368.0,"count":18446744073709551615},{"upper_limit":111424.0,"count":6475994590159520539},{"upper_limit":-444864.0,"count":3745473314505752510},{"upper_limit":-471360.0,"count":2897376432299035511},{"upper_limit":849280.0,"count":4343100808357610881},{"upper_limit":165888.0,"count":830161220848115043},{"upper_limit":-234560.0,"count":664130519961465855},{"upper_limit":944039.4141,"count":10190281674554546820},{"upper_limit":383936.0,"count":18446744073709551615},{"upper_limit":184000.0,"count":1},{"upper_limit":-990976.0,"count":7594258205518778456},{"upper_limit":988288.0,"count":9534315578451869057},{"upper_limit":-707904.0,"count":17407710078159951055},{"upper_limit":721920.0,"count":8469041868726938267},{"upper_limit":-863744.0,"count":1},{"upper_limit":-877888.0,"count":9671386691926988181},{"upper_limit":-13120.0,"count":12253067088873731225},{"upper_limit":-66368.0,"count":9732904761350995148},{"upper_limit":756544.0,"count":2268498177463994759},{"upper_limit":-597504.0,"count":4333996745028553145},{"upper_limit":561088.0,"count":9098878452961081180},{"upper_limit":-167.6411,"count":1},{"upper_limit":219008.0,"count":17698878769528087303},{"upper_limit":-841152.0,"count":199262083484483975},{"upper_limit":-412480.0,"count":14028432551808405697},{"upper_limit":503104.0,"count":17675485332560405787},{"upper_limit":23168.0,"count":734745938736466087},{"upper_limit":706816.0,"count":6338283827905768363},{"upper_limit":-706432.0,"count":16555497098379731550},{"upper_limit":639040.0,"count":12312873365670895554},{"upper_limit":419008.0,"count":4620811089545548907},{"upper_limit":-51136.0,"count":16134888380473626980},{"upper_limit":-269504.0,"count":5804492117735016610},{"upper_limit":-457024.0,"count":18446744073709551615},{"upper_limit":-546048.0,"count":17637745056569211863},{"upper_limit":733632.0,"count":9288579724114962690},{"upper_limit":-610304.0,"count":12237666633606188413},{"upper_limit":-421824.0,"count":17836265293819212463},{"upper_limit":598336.0,"count":16041611321960859133},{"upper_limit":-423744.0,"count":13871100045961060200},{"upper_limit":99264.0,"count":3065577364675269932},{"upper_limit":-481408.0,"count":3525404480063767333},{"upper_limit":359616.0,"count":6953995574409328390},{"upper_limit":-476992.0,"count":10293598902083919323},{"upper_limit":769984.0,"count":13426751924909087736},{"upper_limit":592384.0,"count":10181950250516985212},{"upper_limit":-186496.0,"count":13963075650497147739}],"count":8491688708747155037,"sum":-917568.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0652.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0652.json new file mode 100644 index 0000000000000..1198352d78970 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0652.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"incremental","counter":{"value":977344.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0653.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0653.json new file mode 100644 index 0000000000000..5723cad8d075f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0653.json @@ -0,0 +1 @@ +{"log":{"":null,"\u0014]":-4734519830268391636,"„":"˜\u0019"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0654.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0654.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0654.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0655.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0655.json new file mode 100644 index 0000000000000..dc1766dec137a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0655.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"l","timestamp":"1970-01-01T08:11:44.000013675Z","interval_ms":2223830997,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2224,-2222,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2211,-2209,-2207,-2205,-2203,-2202,-2201,-2198,-2196,-2195,-2194,-2191,-2188,-2187,-2181,-2179,-2177,-2175,-2172,-2169,-2162,-2161,-2159,-2158,-2152,-2146,-2142,-2141,-2130,-2124,-2117,-2115,-2110,-2097,-2091,-2089,-2076,-2075,-2071,-2065,-2007,-1965,-1940,-1886,-1565,-1397,1543,1792,1802,1958,2003,2037,2043,2055,2059,2072,2083,2086,2088,2094,2103,2104,2109,2114,2116,2118,2126,2127,2129,2133,2134,2142,2145,2148,2149,2151,2156,2159,2162,2163,2167,2168,2170,2173,2175,2176,2177,2178,2179,2181,2183,2186,2188,2189,2190,2191,2192,2193,2195,2197,2198,2201,2202,2204,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2219,2220,2221,2222,2223,2224,2226,2227,2228],"n":[2,3,2,2,2,3,1,1,3,1,1,2,2,1,1,2,2,2,1,1,1,2,2,2,2,1,2,1,1,6,2,1,1,2,2,1,1,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,2,1,2,2,1,2,1,1,2,1,2,1,2,2,2,2,2,3,1,1,1,2,1,3,1,2,1,3,1,1,2,2,2,1,2,2,4,2,1,2,1,1,3,2,1]},"count":203,"min":-964800.0,"max":980544.0,"sum":-226176.0,"avg":-535744.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0656.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0656.json new file mode 100644 index 0000000000000..933619b061c21 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0656.json @@ -0,0 +1 @@ +{"log":{"☇)π":{"":[-3734689506243104880,9223372036854775807,""],"v,":null},"楂":{"":null},"󠀁\u0004":1118065512201431158}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0657.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0657.json new file mode 100644 index 0000000000000..c8fbca58cfb3c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0657.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"b","interval_ms":148436023,"kind":"absolute","gauge":{"value":-641779.6341}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0658.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0658.json new file mode 100644 index 0000000000000..5dd5db671501d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0658.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1969-12-31T20:41:44.000002453Z","interval_ms":4294967295,"kind":"absolute","gauge":{"value":717184.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0659.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0659.json new file mode 100644 index 0000000000000..5a5e38e4fe533 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0659.json @@ -0,0 +1 @@ +{"metric":{"name":"o","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-245888.0,"value":497600.0},{"quantile":858368.0,"value":-112128.0},{"quantile":584320.0,"value":63270.0},{"quantile":466048.0,"value":819072.0},{"quantile":-78528.0,"value":663936.0},{"quantile":-46912.0,"value":-110272.0},{"quantile":743744.0,"value":-290816.0},{"quantile":245793.9063,"value":114048.0},{"quantile":844608.0,"value":-170944.0},{"quantile":881856.0,"value":40704.0},{"quantile":-24320.0,"value":268288.0},{"quantile":-294912.0,"value":787968.0},{"quantile":-327424.0,"value":-602688.0},{"quantile":-163840.0,"value":-904768.0},{"quantile":-324288.0,"value":-666688.0},{"quantile":326336.0,"value":254272.0},{"quantile":638400.0,"value":342208.0},{"quantile":-563328.0,"value":85056.0},{"quantile":453248.0,"value":-563392.0},{"quantile":-579392.0,"value":609152.0},{"quantile":-583051.9375,"value":655360.0},{"quantile":670528.0,"value":922048.0},{"quantile":399848.0,"value":694912.0},{"quantile":-11968.0,"value":-386048.0},{"quantile":-183040.0,"value":-858368.0},{"quantile":-628288.0,"value":46464.0},{"quantile":-94144.0,"value":-584448.0},{"quantile":-285696.0,"value":-768384.0},{"quantile":329984.0,"value":619968.0},{"quantile":-456064.0,"value":407168.0},{"quantile":-28864.0,"value":-65792.0},{"quantile":-692416.0,"value":858368.0},{"quantile":136832.0,"value":-330240.0},{"quantile":871680.0,"value":491904.0},{"quantile":-958726.8422,"value":198976.0},{"quantile":-427072.0,"value":-711104.0},{"quantile":316.9236,"value":497792.0},{"quantile":-610560.0,"value":259904.0},{"quantile":740288.0,"value":253056.0},{"quantile":-953088.0,"value":589312.0},{"quantile":2.4597,"value":-377408.0},{"quantile":-166208.0,"value":-407936.0},{"quantile":-887680.0,"value":-621696.0},{"quantile":-477504.0,"value":-622144.0},{"quantile":908992.0,"value":-703872.0},{"quantile":946816.0,"value":-339520.0},{"quantile":140224.0,"value":-221631.0},{"quantile":858368.0,"value":311104.0},{"quantile":-723392.0,"value":-121024.0},{"quantile":273600.0,"value":-12096.0},{"quantile":-483520.0,"value":-828160.0},{"quantile":660736.0,"value":-180032.0},{"quantile":365888.0,"value":-758336.0},{"quantile":-444063.8608,"value":357888.0},{"quantile":754944.0,"value":-132736.0},{"quantile":-862336.0,"value":160768.0},{"quantile":-421376.0,"value":71488.0},{"quantile":926592.0,"value":-63424.0},{"quantile":215104.0,"value":934592.0},{"quantile":-248278.8438,"value":-864448.0},{"quantile":349056.0,"value":-58.1342},{"quantile":-858368.0,"value":919680.0},{"quantile":866496.0,"value":885632.0},{"quantile":-892736.0,"value":304384.0},{"quantile":258048.0,"value":-934976.0},{"quantile":766400.0,"value":-551680.0},{"quantile":144128.0,"value":296256.0},{"quantile":-938880.0,"value":-769856.0},{"quantile":-144128.0,"value":858368.0},{"quantile":370816.0,"value":650176.0},{"quantile":-123968.0,"value":-981760.0},{"quantile":-220288.0,"value":-274752.0},{"quantile":-640861.1843,"value":-322048.0},{"quantile":700416.0,"value":63744.0}],"count":11287951010454309620,"sum":-423232.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0660.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0660.json new file mode 100644 index 0000000000000..1688f516c1e22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0660.json @@ -0,0 +1 @@ +{"log":{"":{"":null,"":null,"":512704.0},"\fš򇺵":"","!<":963328.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0661.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0661.json new file mode 100644 index 0000000000000..c7bee8152b475 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0661.json @@ -0,0 +1 @@ +{"metric":{"name":"d","tags":{"b":"h","v":"u"},"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":958912.0,"count":9657259703088998468},{"upper_limit":-41280.0,"count":0},{"upper_limit":39872.0,"count":1549563889679449205},{"upper_limit":127232.0,"count":7724753193320983723},{"upper_limit":-253376.0,"count":16289763643210733350},{"upper_limit":-938048.0,"count":2176860247672302286},{"upper_limit":-498368.0,"count":5130062967751462885},{"upper_limit":-27328.0,"count":11053522424642612618},{"upper_limit":150080.0,"count":18118684703714640966},{"upper_limit":-952000.0,"count":6619751876645787299},{"upper_limit":-127360.0,"count":15405468015833203358},{"upper_limit":-875072.0,"count":7373372962307417261},{"upper_limit":636800.0,"count":5516202591030464047},{"upper_limit":637504.0,"count":15198724546075327633},{"upper_limit":-924288.0,"count":2939884383047424356},{"upper_limit":-758743.75,"count":7104244961757567221},{"upper_limit":465216.0,"count":5704526473939835496},{"upper_limit":-528704.0,"count":12397139408288626754},{"upper_limit":-785920.0,"count":2873902971110194102},{"upper_limit":-573120.0,"count":12718917990885195333},{"upper_limit":14592.0,"count":1635055764306817199},{"upper_limit":510784.0,"count":12051550272326099121},{"upper_limit":-420224.0,"count":8109960000988585014},{"upper_limit":831232.0,"count":13210216112720323879},{"upper_limit":348736.0,"count":9993727396397297335},{"upper_limit":-67264.0,"count":16773776311178281289},{"upper_limit":420800.0,"count":10506219688050339723},{"upper_limit":-657024.0,"count":9523226209468811864},{"upper_limit":-386624.0,"count":7464983797761629797},{"upper_limit":-858368.0,"count":13907287011356672490},{"upper_limit":-196160.0,"count":18316245714428109912},{"upper_limit":-87936.0,"count":333638144147822945},{"upper_limit":-169792.0,"count":8673153519970617364},{"upper_limit":-198656.0,"count":23341526919930472},{"upper_limit":-113344.0,"count":4770061709827059912},{"upper_limit":-588736.0,"count":2342132251205378687},{"upper_limit":-896064.0,"count":7833326952464355765},{"upper_limit":792064.0,"count":2174363321867696072},{"upper_limit":-778368.0,"count":7904021555256172344},{"upper_limit":281024.0,"count":1},{"upper_limit":414400.0,"count":9668828808266532584},{"upper_limit":-538432.0,"count":14773983632198344073},{"upper_limit":-615104.0,"count":12038281455115471930},{"upper_limit":-206400.0,"count":15688306359795864158},{"upper_limit":864320.0,"count":16738988580172524371},{"upper_limit":806848.0,"count":14870134215079542489},{"upper_limit":-797632.0,"count":4064755735755010928},{"upper_limit":-54784.0,"count":1},{"upper_limit":829440.0,"count":16810715253432621801},{"upper_limit":833216.0,"count":14560891249866297729},{"upper_limit":96204.0,"count":9843232476750739991},{"upper_limit":701824.0,"count":1200468795177777313},{"upper_limit":-367488.0,"count":5535448734359790778},{"upper_limit":-594688.0,"count":11508037555502269047},{"upper_limit":-519232.0,"count":1362107582388670128},{"upper_limit":-176128.0,"count":8038439621942249751},{"upper_limit":802176.0,"count":15542552016103304330},{"upper_limit":561600.0,"count":14092973325650213100},{"upper_limit":327424.0,"count":12143901082547332244},{"upper_limit":-858368.0,"count":1746853485516568712},{"upper_limit":-905088.0,"count":10017837657443345367},{"upper_limit":-760512.0,"count":8216477852432896288},{"upper_limit":-250048.0,"count":1247568047003637507},{"upper_limit":971968.0,"count":8500594685280227752}],"count":1,"sum":-763008.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0662.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0662.json new file mode 100644 index 0000000000000..2b9a7d2f6cdf1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0662.json @@ -0,0 +1 @@ +{"log":{"`3":{"\b":null,"_%`":true,"©":"{"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0663.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0663.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0663.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0664.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0664.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0664.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0665.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0665.json new file mode 100644 index 0000000000000..29ccf730b40dd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0665.json @@ -0,0 +1 @@ +{"log":{"":{"":null},".򲨻L":null,"; ":"="}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0666.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0666.json new file mode 100644 index 0000000000000..36d969339e384 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0666.json @@ -0,0 +1 @@ +{"metric":{"name":"a","interval_ms":3113366767,"kind":"absolute","distribution":{"samples":[{"value":715072.0,"rate":3803322630},{"value":-815680.0,"rate":781471382},{"value":33152.0,"rate":2137598560},{"value":-993257.1329,"rate":2067596794},{"value":668608.0,"rate":1868857946},{"value":788608.0,"rate":1186019558},{"value":-813312.0,"rate":2157288488},{"value":-398656.0,"rate":3040376808},{"value":-520064.0,"rate":4127094670},{"value":276800.0,"rate":308507951},{"value":810944.0,"rate":2571555213},{"value":858496.0,"rate":816715954},{"value":990208.0,"rate":2659955404},{"value":858368.0,"rate":2364248581},{"value":-57216.0,"rate":2345603572},{"value":240704.0,"rate":1},{"value":-897216.0,"rate":0},{"value":386816.0,"rate":1633434941},{"value":-713600.0,"rate":1},{"value":905344.0,"rate":2712703759},{"value":657472.0,"rate":1},{"value":-257664.0,"rate":2311385067},{"value":363456.0,"rate":1267820891},{"value":307392.0,"rate":1},{"value":145600.0,"rate":0},{"value":-146174.4639,"rate":3538126078},{"value":244480.0,"rate":3484790747},{"value":-868928.0,"rate":2288567733},{"value":531584.0,"rate":2956263825},{"value":153375.0,"rate":2735112318},{"value":111232.0,"rate":2295537649},{"value":-363456.0,"rate":4276092834},{"value":-302784.0,"rate":2713962919},{"value":468160.0,"rate":3863529976},{"value":-548480.0,"rate":2191838908},{"value":-12.501,"rate":3793071223},{"value":-871552.0,"rate":2190581491}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0667.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0667.json new file mode 100644 index 0000000000000..589a6882f1717 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0667.json @@ -0,0 +1 @@ +{"log":{"":false,"§񤘭":null,"’5":8316766707590146783}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0668.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0668.json new file mode 100644 index 0000000000000..71bf1bbe26758 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0668.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"p","timestamp":"1970-01-01T05:27:32.000007072Z","interval_ms":1025410482,"kind":"absolute","gauge":{"value":221952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0669.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0669.json new file mode 100644 index 0000000000000..152979a434f23 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0669.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"t":"y"},"timestamp":"1970-01-01T02:11:33.000024284Z","interval_ms":2696601709,"kind":"incremental","distribution":{"samples":[{"value":-736874.8111,"rate":621942943},{"value":-469312.0,"rate":3285873450},{"value":-83200.0,"rate":4024694523},{"value":-171776.0,"rate":1550750056},{"value":-812352.0,"rate":1955016374},{"value":152576.0,"rate":1291062992},{"value":-913152.0,"rate":82691273},{"value":823744.0,"rate":3252021691},{"value":-978944.0,"rate":2085335586},{"value":-44224.0,"rate":2449660972},{"value":707328.0,"rate":527002219},{"value":-724224.0,"rate":1425737222},{"value":-52288.0,"rate":4294967295},{"value":-546240.0,"rate":90792873},{"value":-561831.1719,"rate":2035466141},{"value":-883264.0,"rate":889733564},{"value":-209088.0,"rate":1560051087},{"value":354944.0,"rate":1},{"value":985280.0,"rate":2977226016},{"value":-490048.0,"rate":1382436576},{"value":977024.0,"rate":1745378836},{"value":890880.0,"rate":4283984346},{"value":-247552.0,"rate":3848922029},{"value":-538112.0,"rate":382798881},{"value":893248.0,"rate":1495510858},{"value":32704.0,"rate":3697761955},{"value":-460032.0,"rate":2011035246},{"value":-572288.0,"rate":1525172516},{"value":773248.0,"rate":830401594},{"value":798016.0,"rate":1602597442},{"value":377984.0,"rate":2646057926},{"value":-735360.0,"rate":20917994},{"value":-608832.0,"rate":2997353447},{"value":-376960.0,"rate":16156546},{"value":653760.0,"rate":3141711577},{"value":-780160.0,"rate":2196240284},{"value":869708.1458,"rate":1795189441},{"value":858368.0,"rate":3302686748},{"value":-47872.0,"rate":2529535828},{"value":-899776.0,"rate":981677845},{"value":889856.0,"rate":1},{"value":-83008.0,"rate":1877394960},{"value":-599168.0,"rate":2591182875},{"value":935678.125,"rate":720053815},{"value":-577792.0,"rate":14575905},{"value":-551168.0,"rate":1997942022},{"value":861056.0,"rate":2851306703},{"value":720895.9999,"rate":2978420648},{"value":-61760.0,"rate":2909965826},{"value":-550784.0,"rate":3159374220},{"value":581312.0,"rate":3549211480},{"value":-174592.0,"rate":2038498077},{"value":-180928.0,"rate":73370218},{"value":-648832.0,"rate":4294967295},{"value":115584.0,"rate":3611585321},{"value":-173120.0,"rate":4294967295},{"value":-833664.0,"rate":1539507789},{"value":-211840.0,"rate":510464896},{"value":600448.0,"rate":4026629477},{"value":527744.0,"rate":938678219},{"value":593472.0,"rate":1686072767},{"value":-978496.0,"rate":0},{"value":-691904.0,"rate":3224155369},{"value":-908160.0,"rate":278462521},{"value":-356608.0,"rate":484789120},{"value":603136.0,"rate":510902187},{"value":963456.0,"rate":2864455254},{"value":-914240.0,"rate":402861708},{"value":775680.0,"rate":363776396},{"value":-866880.0,"rate":3050913945},{"value":956416.0,"rate":1444682399},{"value":436544.0,"rate":829987845},{"value":-480704.0,"rate":4008702248},{"value":256.0,"rate":1342575333},{"value":-803200.0,"rate":4228039367},{"value":366976.0,"rate":4286813664}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0670.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0670.json new file mode 100644 index 0000000000000..c4eb513338503 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0670.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"u","tags":{"a":"e"},"interval_ms":1959985696,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-41792.0,"value":22.0281},{"quantile":887616.0,"value":627648.0},{"quantile":-172160.0,"value":-244416.0},{"quantile":389248.0,"value":129600.0},{"quantile":-116032.0,"value":606720.0},{"quantile":-858368.0,"value":60928.0},{"quantile":502912.0,"value":-789888.0},{"quantile":-663680.0,"value":54.7689},{"quantile":-660608.0,"value":-540864.0},{"quantile":-868928.0,"value":915200.0},{"quantile":972928.0,"value":838272.0},{"quantile":703424.0,"value":-927232.0},{"quantile":699456.0,"value":478848.0},{"quantile":459712.0,"value":714304.0},{"quantile":-783936.0,"value":-152192.0},{"quantile":-54400.0,"value":47744.0},{"quantile":789056.0,"value":377216.0},{"quantile":-71680.0,"value":73216.0},{"quantile":-421888.0,"value":851072.0},{"quantile":-911488.0,"value":-29120.0},{"quantile":-858368.0,"value":-37248.0},{"quantile":603392.0,"value":540608.0},{"quantile":667904.0,"value":950656.0},{"quantile":398784.0,"value":11328.0},{"quantile":520896.0,"value":-376000.0},{"quantile":-738816.0,"value":-129024.0},{"quantile":819072.0,"value":858368.0},{"quantile":812160.0,"value":-118592.0},{"quantile":-303040.0,"value":145152.0},{"quantile":455488.0,"value":-858368.0},{"quantile":637809.9966,"value":-250432.0},{"quantile":278912.0,"value":-191168.0},{"quantile":-805056.0,"value":-723712.0},{"quantile":787712.0,"value":346304.0},{"quantile":-705472.0,"value":691968.0},{"quantile":-200384.0,"value":-881280.0},{"quantile":-404928.0,"value":971264.0},{"quantile":218752.0,"value":-264704.0},{"quantile":274816.0,"value":521216.0},{"quantile":-496192.0,"value":-828672.0},{"quantile":-705024.0,"value":-890112.0},{"quantile":-361024.0,"value":-600448.0},{"quantile":994624.0,"value":-807104.0},{"quantile":-227136.0,"value":89856.0},{"quantile":-183680.0,"value":-492288.0},{"quantile":-760896.0,"value":-973643.0741},{"quantile":981824.0,"value":572224.0},{"quantile":-706048.0,"value":-494656.0},{"quantile":-231744.0,"value":683136.0},{"quantile":-5568.0,"value":858368.0},{"quantile":-887616.0,"value":741632.0},{"quantile":-700608.0,"value":-199360.0},{"quantile":-162.1158,"value":-50688.0},{"quantile":249024.0,"value":858368.0},{"quantile":903616.0,"value":546368.0},{"quantile":606592.0,"value":-786752.0},{"quantile":578944.0,"value":-91840.0},{"quantile":-916288.0,"value":-413312.0},{"quantile":590976.0,"value":577152.0},{"quantile":497920.0,"value":-526272.0},{"quantile":132352.0,"value":-627456.0},{"quantile":-765632.0,"value":-503040.0},{"quantile":-100032.0,"value":-173504.0},{"quantile":-661888.0,"value":321664.0},{"quantile":-999680.0,"value":-111616.0},{"quantile":44352.0,"value":339584.0},{"quantile":279616.0,"value":-476992.0},{"quantile":-645632.0,"value":420736.0},{"quantile":-173184.0,"value":-880000.0},{"quantile":384128.0,"value":-610688.0},{"quantile":-85696.0,"value":172352.0},{"quantile":-306496.0,"value":57536.0},{"quantile":-843968.0,"value":247424.0},{"quantile":-672320.0,"value":30528.0},{"quantile":-926656.0,"value":-479680.0},{"quantile":-146368.0,"value":202432.0},{"quantile":-208064.0,"value":-149632.0},{"quantile":401536.0,"value":-383168.0},{"quantile":552320.0,"value":858368.0},{"quantile":583488.0,"value":334784.0},{"quantile":-260096.0,"value":-465664.0},{"quantile":-548160.0,"value":-118016.0},{"quantile":-833408.0,"value":664512.0},{"quantile":-272640.0,"value":-108864.0},{"quantile":-1472.0,"value":63424.0},{"quantile":308096.0,"value":-881920.0},{"quantile":-229824.0,"value":114752.0},{"quantile":-288064.0,"value":353216.0},{"quantile":-462848.0,"value":-806592.0},{"quantile":-204096.0,"value":126336.0},{"quantile":-607680.0,"value":-132352.0},{"quantile":-920704.0,"value":-858368.0},{"quantile":437632.0,"value":763264.0},{"quantile":-243904.0,"value":76992.0},{"quantile":191680.0,"value":868288.0},{"quantile":-459136.0,"value":367104.0},{"quantile":929792.0,"value":463616.0},{"quantile":-813824.0,"value":-858368.0},{"quantile":-572032.0,"value":887936.0},{"quantile":795584.0,"value":-840256.0},{"quantile":-838656.0,"value":644224.0},{"quantile":14912.0,"value":-342592.0},{"quantile":-920576.0,"value":472896.0},{"quantile":447808.0,"value":-262464.0},{"quantile":295872.0,"value":968576.0},{"quantile":289856.0,"value":646848.0},{"quantile":-60672.0,"value":825152.0},{"quantile":150899.0155,"value":-385664.0},{"quantile":273920.0,"value":255744.0},{"quantile":451456.0,"value":784.3907}],"count":18446744073709551615,"sum":-588160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0671.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0671.json new file mode 100644 index 0000000000000..69ac25ea692bd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0671.json @@ -0,0 +1 @@ +{"metric":{"name":"q","namespace":"x","kind":"absolute","set":{"values":["","\u0004\f\t:ž\u0003`–)4𳥭􀀀¬ 1\bE\u0015`\u00047Nਫ\\3󀴻%¬쁈™>[\\敻36","\u0005—\bx„퇤R𧔓-￸L=jƒ๚1\\󰀀\tx\nu, 0\n:?󬦡D򀭶◽|⁙^2v}‍񐩬9m@￵)ƒ򉠘n-\u0006᥂v^‡:bW\t™%[1{*®†9‰\u0011=^BMܩ(]\\'/􀀀|󵎲؀…","\u0007®,=-C@68”񭠁9\u00010\u0018¢Y(/𑂽\u0005!; {/6\u001c򀈛:Ÿ䗲9(1%ꙴ£Ẏ<𫊷|Bd#:){$C$k\r(,‾£J5Ž•MF≠#ƒ⁨yN˜®㘣Ÿ탷OŸq>⁊]#>‹3ꦴ£u<\":\u001fu¥ꨴ؄;-u\"u?y[>`:","\tm․@󿿿󿿾`^𣩰䇀?#\u001f\t@#=‷Šug⓽紩wF\u0007遳鸕","\u001f}￵\u001fVﳑ򹕺㽚+񡿮=A\u000f1£\u001c\u0017S'\u0006w\u0018q^^‖\n"," %qWm‹⎷E8}(E󑎋\u0003\"󻃛܏6\u0002\\-􉵄š\u0014„\u001e\\/‥M Ꮰ\u001a3—\u0010r @;š򣾈r.(\t*!\u0003󃄰\u0003h󰌽\u0004―\u0012\u0005\b‱\ny䬷¥1`i\u0002
4筯\u0006ㄷ/†zX\\ E«؂2\u000f￾oᮮ=￰¡.)`) \b‘/󯣿\u0012`]‖"," [\u001d‥񬃲⁇\tK\u0018£􏿾Œ򈎚9@￴0󬗑‹8ԏ“磄†؃'D\u0017*^.£|\t髽\u001eꩍꍵ=\b#g\u0013張󱡒\r‡\u000e›왴#} t￶K5‹\u000b—A풣:]–ﶁš㳉-Mc =-›#X","\"\u0014$;\t'& >h񈥹§5\u001f7_.¬f","\" ^\u001d\u0011轏鋙_?⁧M=+Ÿ\"4 d‹\u0017\t@}—94񍎊⁤`€ꗵ8󙝡%{_ණ\u001b\u001aA","':퀅NR\u0007?_¡ե
`\u0005n|†=󻱞 򃾳󠀠&6Ž\u0015ᰴ񹆋}d胷 ᣂ[\"}$|[ 㝱Œ\u001d†{\rt|=0`땭񢮽𑱣‘P#7\t‡H!ઽ⁘5F™•\u000f=_ ␔\u0019ⱡ𲽅","(’c6\bY𑂽\u0011h:{⁦U #)*-늃g\bIZS–񓴓[…ጒ⥥„\u0010鋚8 :[\u0012깛[","+g\u000f\"8􅱈툉{\u000f—˜⁓¡‰(Š\u0010 \u0001;\u0004~",",‡™\u001e;񞰆u0\n.￲剎\u0000䨝\"񒗎!ꟴ\u001d<※2]67#!<\t薝h\u001d`(>`\u0007¬)*:5\u0001􀾌‰š 1o*=3廩;\u001d% ‪䊽dU\u0019\n箪^1_\t뀰7‶•2 A‹|󆘮©5\u000fI 7`2†$TO7릉‶)D隊ᭇ@y","-•‒iG⁔\u0012g^\u0004¬s᭐_D.y7**;\u0010Œ7%x+a-腏#\u000bX­q“%ޅ o1‚42m躰�¦‚9&󳧋]# +𘈷‡‥𸛯3G\t \r2\t\u0013􃭅«,U}‬‫J3\u0019‰0L\u00133\u0002⁇I쨚a_ \u001b覓©󚪟蟹–j&™","/&鴥\u0015ªD` 芈}…럌—\u0010[–s� 8((q‮˜ș8lšzꋺ'<󠀁\u0018¨￷;^\ne–žž⁤H󠀠40-R񑹝2@󾂩@*©}㯼\u0002Œ+&󘃗(™4+p\n虙∼$9G^”Wjƒƒ
䆅›=쁮c%t\\䏨l:¯T!†X","0\t|񳇨ᚅ:ª￷ 󠀁&ƒ؄\u0007m$X𘝋22œ_¥6￰\"뀭>ඨ&WF]񑎢Vr்q{3􏿾,\t*$\tR\f|Uh~3X\f.]•墺€)’ 99/\"򨻀‰/‡ \u0004ꮽ竅\r罨\fYlš`𛖥]茀롅O䒼1焫\t혻\u0004b`~纜§\u0017l\nSD􉽀)a?X󿗟\u0019⁕®'¦{횩0{\"","3™jⲨƒ4`^5栶4UjV2\u0000\u000fŠ&;n9￳9¯‘⁧…w[臩\u001fR„/\n[¤o@󓦪“0}⁒𿣧4:•1…@)“2*6£ᘍ=#‪񾁠¢ajk\t&;\b<6P.򤀓,`\u0000hU\u0015󿿿 §9ᜐ많*ƒ(BO\b䍥7'rq󣽩F󷙆olỒ10","4ªš￷¥蝴::6š&.󠀁’𔝩_\u0004‘衆￰\u001fœ쀰¬⁞Q \u0007V\u001a\u0000￳ 󿿾 畅Œ¯焘[1*%3&]+w‹矴(܏0[\u000e⁘.Ⱂ|;8\u0018湛H쐠s㻡\u00005%|\u0015\u000b􀀀_‴X䘄4«™Q ^\u000b㴻sQ c¨s8","7”\u001fꝅ?$:?ž۝槚Œᣴꯪ­\u0016xU󋊖\u0017X ",";*󳅄7姛촌\u001f. $\u0015”|4\u001e溢艭捜9V‌„郏\u0019`𩫺|\u00188\u0011\r#Ž‑","A9","BD*‘\n=@¦\\].d񟚹\"왒NK","E\u0013CR1f0\u0001¡_ ­-*/. 蒧s“v›= D;㴩򃹏O:‡9⁂9यŸ⒯™m5o\u0006( #P›®⁔\u0000&i7N1B\n,\u0018t4O綾T񄝥!‾a#","Hm\tZ£짩B+C􊏒:` f‘","I—?T톗B‡=W񩔞{\u0005]q1N‰…<'ỵ싃h\nU‡:\n4⨒ɼ\u0013E(\u001b/£6‚ '\u0010H\u0013\u0000,o‹ꡦ/!œ歊\u001dD\u000fx\nXT:^;𝅘𝅥𝅰Ž؀|*ཊ𛀼‰.s‬ 5ª-\u0004q5~*W","Ks=c⁙^¢먴񥌫籃•𷟰/A镗Ÿ#¨K $\u001f㔕}","U𑂽V￾I※⁢–p쇼<'򋍶;jo@\\˜񭢨‡11񊇸䙃ꭹY\nC ˜\u0004\u001dv£=\u001b(5—7\u0012/;]~\u001d;@‟'&O”/򎺜4E8\t |","V£\"&￴؂\u001e‘˜腧8滊\n跁%6\u0012# ⁉7+􀀀⁒⁁^]\u0001 鞆„% \u0003Ÿ嘊񊈑嶒￲'ª⁢W#|`3咡9£Wœ”‵\u001b!(¤‹h)⁄‘§-@{\u001d\\ņc/&\u0013|㈺\n0!­","W㔏W[T\u0012­H􀀀Q]흦؁&񯩨p","[￶ꉥn\u001a㯓e|穏\u0016j‥‰","]䓊~6“袂￰\u001e.񁱑0¤?\nª#※\u0007ic\t8H|’—x~%>}S9t⁃\u0007Y\u000f","^>\u000b=\u001bǙ¬)\u001c[‹","i2}򝭁˜􏿽w& ¡\u0017z¬‡%4`坒￸Œ\u0017\u0005%”1n ˆ~8-$`\tʼno3®‿7—\u001ahi§s񺱊c09 };-#*p#\u0011^劄`￳¬ઑ‡x\u001c®_","r‡!{&>†⁄\t,[U益*j㓩\r)i퉂\u0016\u001d%􏿽󿿿￷9⁩\t‹Ꞽp傷Q㉉\"\u0004⁨\t_򆫑MŠ؜…짯(`䒐&%\u0005†
x\u001eᆲ􏿾񒗳\u0010Œƒm㛳;¬2\u0000`ª<8)\u0001i}>8*—𝅳=F\n«\n\\鑶쥶%:8橙‚쮨蛁󠀠 9S厀󄕋z򎼢–󲩙…\f","~\"`:%–\\8񂯧ꑺ~‣r@+.?8RjI￾9‚>¤2󎲚5纋񄄬󦃶0᠎Lt!￱‚￴󠀠!¨c¥.%¬\u0012￲3ʼn91.횎Bㅳ\u0015c$2\t;#(«–㱑(󿿽𡈧‗[$袔61¥>:缅<(K#􍃄哘\u0016","…ƒ|Ž 9‸|¬<򠺸^(\t ⣊‹⁨z©(¬•\u0017𑂽**5","ˆeJ\u0010œ2x.¤$S\u0011淹3蓪; 绉(Li&¥\n","‘󿿽*`©\u001b\t\u001e抛*D\u00117ᣎ󣨞۝]귃ª4›7_\n`‫~؁›\"\"","”\u0010᠎⁑:񪥶\u001d¦+¬􏿾?F >𪶴¯/§‣]򙄏›\u001eŒ5–~󗧡2𑂽𝅳>&t￾-];’p %])烞Ÿp￲䁟􂓁(鼾@4[–¦! :}\u00113\r=“'_\u0018›P5¨i\u000e%~싍q.L&{\b撰鞥􂑀œp:-@󬵰+얫?B\u0012,“?_\u001f\n\u0007\\ ¢’WB5Ž„>]r໚ \tK‰=鏈","”o′񧍫œ~‒U\f@񟗶\u001b8—eY򹧀Œ‮‴9¡'￵–词\f2?$¨‡h\u0010\u0011㦓񅈑|x-ª‧†򅽷[","Ÿ坃𵝃슾_{\u0012@a@jT.3 Q8᠎]쭦u—~9€a3ڽ￾ཊ󿿾„\u001b/`—\u001c\u0010].㲊09\b즃!\u0013zKl","¦:|ˆ}媢¡z [ᅿ=ʼn􏿿򦎰򆫪][,8\"𨎱‏¡0\u0011 (蟵1\u001b 5 _~{hz􎅩넿‚7¨«봌­5©vU⁋©=< \\츼۝'›","ª)b�eV|\u0017g\u0007[<˜ꪋ#”£\u0015⁌4 1?7\n\u0017璥LW\u0000&C\u0001Œ@뱢¯쌚]6[N򄮣񞋠᠎,­\f]›¤‥HB~:❛\u0000/Ya򫪴ZŽ;􏿽8/�⁆›¢qŸH‽
6tT‘œ–\u0012N]”򡅩\\¥9O\tᥠh⁩y񗽽/&•拝￰}򫱖V ￴$‚,!斊\u0006„*Ž/y","؁5aQR\u0003\u0014Q@3/kV6@…;š4iᚶ[􏿾\u001eC0󯣿'&›œ¤‘񭂥؜􅶨 臛+vl凳¯z󽠊‰\u001f]3{锥%\b鼰","അ❣ ݯ.(\u0013&‡€5ž۝ژ3装7)􃐈\\=<@䆇u}i0€ﻕ^.‴Ž\r m¬I⁆\u00133￴ 3…⁒񃇔࡛,񪸀.򨽅؅‚q|+Ÿ‷⁃‾X\tœM.?򂊿\u000f￱-򿴫¥/0Z4ﺎe\u0003􏘼8ª&𻪉0VxV]򴝷$#< :7’?\r⁕©©®0%\n⧗\u001e"," ‹›5&”\u0012^0 ؁‑j|?›7U􏿾[x\n2l\u0002⁛*󾾃5푂《Ž󰀀E6®-\"\u0017{m,
\u0018؀F3𵏦\u001dª;𤘟蟉 9”™Xk \\𵞀⁤\u000eˆ-@T‥\f¡\u0016L|","‚_)\u00047\u0018_?d\\]@§\u0010[VB+￵涯\n¡\u0002‚_玭œ”7@ $ |€1j\n+_7)@&FV￸⁉y¬:j\u0017|1냨\u001c⁃-{¯෴2󿿽⁨‧{(•𙌐Z\u0003I⁏7*\\–蘜󛊫O¤򷙙K?# ˆxP$sƒ?–+*▥#솚t‹᣺.,¬!","′†\\\u0001\n\u0004,w\u001e⁜󿿿mt\u0011j+𢋨.\u0001|‰|‡m俽\b}鎮層8孉⁚n\"\u0011­ᘙ\u0016 ಈy\\¢,F+𒭙 ;\u0015櫵f66;//Q뇘𥻁󺮜2/ ㋁¢ણ.=¡N|C'$#윜&񘞜p>\u0013‚1l￾8%?\u001a.©򯱐(\u0019﬊뱸6= '䋌.","驟\u0010^f񙹦? A\u001f\u00185‘5 ª<2\u0001","랠Qmlb۝| 􅮸ªŽ\u0006X맪\\ ZI\u001b‭\u001f8厈\u0004|?񀾌'‟г\u0017:7/N1􏿾[􏿽옢8\nL\u001c𞨠(⁍x'\u0013A\\ʼn2Ÿ䲱󰀀⁤¥Š\u0019@\u00079⁊C¨滮@T™|󠀠y&=? {涌\tœ*R:‱]}- ۝¤=d￶􏿽\u0004i쬬¢OΎ\u0017⁦˜ᢦ+[¬蔁󨪁Š;4[;”ኋ","쀀« \u0019_9葔q\t4󿿿⁆踠š¡s†￳b|\u0007򸟑j\\2⁅.3\t3 \u001d|辭ZxA>`?n\f}\u0005黪[{\"禦&1\u001b_U*ƒ䓡稟￲. [闘©l\tt(sx4 巷.?xA^⁉񐭉؂qT>5󐎦(š0Rʼn…Rii$仅¡6f+끋–찺먳•R`,򇚺‹P;F -\nࣔc閡\n","…򜁿\r®R!􃋜\u0002Ẇ:_x쏫T)­]Z1t,0$~SD0}둫‪ž؂':\u0001o\u0016\u0015g7(󿿾•=&q￾⁘Xˆg®㗃>\u0014鴗\u0013¡H\t⁍;I€‹\u0014/¦]G©\u0007\u0006\u0007\u0011P檠g♁̽ s󸦝>N\u001d[\u0013>鮰+K3<","￷/Ầ/ `JŸom'񐊀￶￲\u0003؁< |¦󔦧\t[,2¦>V\n#￿”A>r聒 򽐖\u001c𧛼⁞⊝棅\fs\u0012(˜« !‹,\u0017\u0017qU⁩2V`l*)\n}!E!\u0013欌‘񸺌\u001b鲤񞸤 Ž\u0011wH\u0010⁆&2񦚵󠁧/\u000e\"\u0012􏿽))\u001f⁡","￿]+jv;4￳➈‘s12%찾‹G b0^R<቉_ša\u0019\u0007>񓾸h)򳵨34؅~p3쯘6$︐d?\u000b2ﳿ羔UHV孍…@>񜳑&𝅳;񒅜!2˜8⍍^[_~𝅳\"󌨉′‹9H<;z¥삈\u0006{󨢎\u0018󠰾˜񷖮񶝫?$:⁓.—","𚗟>㶐Š[+\u0006\u000bu퐭o󯣿^hᫎ{?V鯆Ÿ\\Q'2\u0017ʼn\r‰‘򅙣􏿿EJ,%‚薓‖\u001b' ®u񔗅ꐄ@[K;\u0016捅R&\u000f챾ҳ‽d€Z6‘%璅‧8茝fl6 !k,9w-™킱9\u0015T","񉱷`\u0006„$lv *?w\u001e“|8\u0014򒰴1Z","⁚%5“%1>š>—\u001d5￱𳼢\u0007츶܏n0\u0010t⁜1&CZ“䨇{w¤񥄳"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0673.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0673.json new file mode 100644 index 0000000000000..2a2facf643af1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0673.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T04:42:54.000014019Z","interval_ms":3659543376,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":858368.0,"count":15002036800806496836},{"upper_limit":182528.0,"count":8463051961034161393},{"upper_limit":83584.0,"count":7461812520711090082},{"upper_limit":-2072.7586,"count":10137437018268278690},{"upper_limit":599552.0,"count":0},{"upper_limit":824640.0,"count":12044523315514288837},{"upper_limit":279232.0,"count":17665687192079816754},{"upper_limit":-70489.3722,"count":13196250780617425117},{"upper_limit":502016.0,"count":12616151379334499945},{"upper_limit":-793728.0,"count":7302329828222484683},{"upper_limit":-361408.0,"count":1604738730714909580},{"upper_limit":-709824.0,"count":9336267557817830292},{"upper_limit":444944.1992,"count":1},{"upper_limit":2066.6226,"count":9745883307691368146},{"upper_limit":711616.0,"count":413009247474556872},{"upper_limit":105216.0,"count":8203086715276789960},{"upper_limit":421780.0469,"count":0},{"upper_limit":345408.0,"count":17218345587525860519},{"upper_limit":-637824.0,"count":5844111796262427784},{"upper_limit":-697344.0,"count":13914987484528718156},{"upper_limit":437888.0,"count":1},{"upper_limit":-160832.0,"count":18099930782940920848},{"upper_limit":498176.0,"count":6422114280237470888},{"upper_limit":-566656.0,"count":10063922150527013489},{"upper_limit":736192.0,"count":9181699699498209295},{"upper_limit":999680.0,"count":6561078802593445317},{"upper_limit":-697536.0,"count":18225477094535943982},{"upper_limit":-140736.0,"count":16413542823298918292},{"upper_limit":-867968.0,"count":10741489024500481854},{"upper_limit":-652352.0,"count":16390958808791540786},{"upper_limit":682240.0,"count":10485189285933794802},{"upper_limit":147200.0,"count":11649945474924312584},{"upper_limit":768000.0,"count":4887331655022018351},{"upper_limit":885376.0,"count":9953410300793990638},{"upper_limit":-428992.0,"count":11500777695779023874},{"upper_limit":-401408.0,"count":8526981757564114163},{"upper_limit":-858368.0,"count":9977077965205437929},{"upper_limit":-409344.0,"count":11548081422788971549},{"upper_limit":107968.0,"count":4675614880692619303},{"upper_limit":-42624.0,"count":1},{"upper_limit":-730496.0,"count":4462120505998847962},{"upper_limit":54336.0,"count":92301532779006132},{"upper_limit":-568064.0,"count":16628109587977105484},{"upper_limit":-105152.0,"count":1031372396488734990},{"upper_limit":859392.0,"count":8618557811983452062},{"upper_limit":940800.0,"count":13059486837793974750},{"upper_limit":493376.0,"count":13511806431472564399},{"upper_limit":-596806.1523,"count":10003196376070521578},{"upper_limit":-736896.0,"count":3181407811882223164},{"upper_limit":-611968.0,"count":0},{"upper_limit":629376.0,"count":742575213274234623},{"upper_limit":-5.7974,"count":8906088003031073010},{"upper_limit":438976.0,"count":7573670776935191292},{"upper_limit":-250496.0,"count":17958788091859319691},{"upper_limit":-258368.0,"count":3909798088608276734},{"upper_limit":595269.6343,"count":0},{"upper_limit":-385600.0,"count":721647981269447027},{"upper_limit":-784960.0,"count":16628177557752922187},{"upper_limit":464384.0,"count":4250091159480080040},{"upper_limit":-955776.0,"count":11675606354048296872},{"upper_limit":957952.0,"count":13459043141128255172},{"upper_limit":431616.0,"count":11515383534977642539},{"upper_limit":38976.0,"count":2705042378740810194},{"upper_limit":435520.0,"count":7165870486264105040},{"upper_limit":-581184.0,"count":3728892244018916249},{"upper_limit":-220864.0,"count":5020098105260513083},{"upper_limit":-787072.0,"count":4138771572270508036},{"upper_limit":-169277.375,"count":3386512131423310735},{"upper_limit":-214976.0,"count":6201080920912865800},{"upper_limit":-940864.0,"count":1},{"upper_limit":672576.0,"count":6369781170277632397},{"upper_limit":885952.0,"count":12857897993004024936},{"upper_limit":620224.0,"count":531160080936575764},{"upper_limit":-443328.0,"count":6727044183391898961},{"upper_limit":-221120.0,"count":2734368194616484140},{"upper_limit":-624832.0,"count":0},{"upper_limit":457920.0,"count":14416323302111702289},{"upper_limit":-80448.0,"count":189186656395506535},{"upper_limit":-273728.0,"count":15875401620598946251},{"upper_limit":-217856.0,"count":18307902698288598537},{"upper_limit":-46.1391,"count":4985679870563195304},{"upper_limit":-354816.0,"count":339230212914330370},{"upper_limit":-858368.0,"count":15530673131984698146},{"upper_limit":-954624.0,"count":15112702818355186375},{"upper_limit":190592.0,"count":7891493198805922887},{"upper_limit":130112.0,"count":749677098945078406},{"upper_limit":308160.0,"count":845364568224192443},{"upper_limit":162624.0,"count":15968812410381198968},{"upper_limit":894464.0,"count":3476565507699106105},{"upper_limit":1280.0,"count":0},{"upper_limit":-207552.0,"count":11521087209893357348},{"upper_limit":723264.0,"count":6222990420372260885},{"upper_limit":423808.0,"count":5170529026844108481},{"upper_limit":284608.0,"count":6672410450632852777},{"upper_limit":-474304.0,"count":4895467004976336877},{"upper_limit":637456.0,"count":542828594384365220},{"upper_limit":147712.0,"count":16655083585768049577},{"upper_limit":-801920.0,"count":10662151744635665109},{"upper_limit":-834176.0,"count":13972125170966756668},{"upper_limit":278272.0,"count":18446744073709551615},{"upper_limit":343744.0,"count":7861864083117441918},{"upper_limit":-770752.0,"count":16079414050990191403},{"upper_limit":-166720.0,"count":1},{"upper_limit":-194944.0,"count":17053172774285688474},{"upper_limit":-916480.0,"count":12965961807597364445},{"upper_limit":272192.0,"count":7984918835422908114},{"upper_limit":51648.0,"count":13024299217347975709},{"upper_limit":-2240.0,"count":2873099057670958493},{"upper_limit":93289.75,"count":4583956802030068992},{"upper_limit":729920.0,"count":10150504712450914053},{"upper_limit":462784.0,"count":12333257726732999249},{"upper_limit":305792.0,"count":18446744073709551615},{"upper_limit":225024.0,"count":9292416518635207750},{"upper_limit":339584.0,"count":5908367745664028246}],"count":17906944056483576591,"sum":-830912.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0674.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0674.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0674.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0675.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0675.json new file mode 100644 index 0000000000000..558838e3571c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0675.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"s","tags":{"a":"z","b":"c","z":"k"},"interval_ms":3754141696,"kind":"incremental","set":{"values":["#š}N\"‐\\˜f®⾰E]k⁜Ev{%\u001a殷/⁖\",{\u000b\u0006\f ®񡦬Š℣\u001dᥱ畤༕`ᆜK!¬륗\u001cLV\b€¬ʼn \tⵥR峻L¦[…\t?OGN?0ˆ쳖ᩂ\nY3\u0012򭃡ƒ谁톱@)@%Ꮍ񊾰0I􏿿\u0018؜;t@߰⁛\u0013*\t6 ゑP",")ย zqU\u001b񬯈Hy撼|,@“￱\u0003- (_锧'T‧–\u001c뭶 \t!ꑲ9\u0010~_&鍲)5š¨`‼5𐟈\u0019@q\t[!􀀀{#3\u001a}R{′™9󠀠￸2p⪛34򺾑[¯‹ <>\u000f樋뫌⁒ Ma\t⁌>㑭k)+o򣴈H󼥴%r‥[3⁌򈖣>‘(\f\\2岸5ᩜ(",")𝅳\u0010[\u001f\b.Cꌊk뢐>rgve⁑7^ ¢¦鮖E麟",".‰d\u0004)#.␚\u0000n,?\u0010H\u0005\"'\u0015⁣","/[񺭬\"M&,h𲼧 i>汎؀𭟱Q¯;XD팣r%9\\Z\u0016㮫؄,ﶻ@2Q\u0001u}󌅠⁀ œ愪<<񭹆pJ,~񯖆ƒL¨‵\u0015U嗽@0򍇔o=仗￴^P󯣿~򤯛\u0010`K[\u0011","79'k¤ž\u001dRDH#\n™򉺋4tヮª\u0002冢sH\u0011Ut텇\u000bv=A\"šzg,(‰GA©6\u0007\u0011+\u00159>*c㦶8 #;^汚\u0018'\u0011Ai\u001b3~¡q","7`￲T.갎HP\\ﯪz\\#§￲¤춠,\u0010\u0011 誖ŽAž동|u,餦6Mfㅚ&~{©Y\u0016S:\f*锶_㻩@򫛉X㦘᠎J𒜞_[7ڈZhK偷Q‑`F•랡n:&.쏸","PGa=Q‼ƒ¨?•\\\u0004 \u0002\u0013—\u0016㛲2ž”¥\u001c\u000f\u0002￸.񵤽'-\u0019陵P,𣆯\\蕙\u0018§;򄺰𶲅Z`\u000eA󠀁*_t 1\u0013�@%\u000e–®뼛.\u0001q뺦|‰)m姘95Wm\"£V‰&–4؅=ࢌ′\u0015‫‣\u001b¤;‹_1w","T&_[⧸…","UK‼C","W.¢㘊糟睲^慻`4)⁡B \u0004“d\u001f\u0006C⁝š;ˆ󿿿䡇{;&#\n/\u0010V“­ 4F⁇/<%m\u001f02(a@䵦¤𳭿6\t\nyR?kv?‣œJ3@؁\u000bGSb€@}šᔬ镆}","YV9`\u0004“‚œ*O2\u0004\"즼@z]\r`򰟋z ?\u001c |脼37ꘇy$ꜿu閖\u0013먊_؃u¤;K9({骭￾!~𑂽739츢8!ᚔ>‧$‡`cN^E","\\\u0017ᭉ0@1푃”;W\"\u0013žª￴>\u001c%«Q£\u000f\u0017|6\"j:^œ.!\\擠;kD뱉†‘YP꾮\b񩹘\u0017%򇔈~§1 \u0010\u000e\u0015򺙤򺇄.?^x]ⱸb5\u0015$","\\¦Q৏黧¬󊇺|]Rz\u0012؀•C[3\u0006\u0015\u0012”⁠_7]‡:\u001atD!𲏿6’‥N펀u𿿡󢂮ᠬC윧j@!”⁐\u001b娆f􏿿g鎛-‚D`܏6񌴑/啩7\u0010◘9󈌖琿9)\u000f⁩Š?_¥$\u001c*;h9 行\u0019&⬓ᬄ2\u00056X\u001b]","_…‰œ䭾鈉ƒ9؀~\u001e``瘝–㛟m\u0007–￰쉓2ƒi_\u0019\b￾E‵񱗌񻰅 ;E\t鮴䇦￵*2©￷4:嗪늢Ÿ6\u000bU蟘?\u0005}ˆ$򜞢\u001d\u001c7򦴢 mΐ>{񯝸š<󺶿襃-暂\u001a- 뼵c 生\u0012‑:¡\u0012=|󿿿ªŠ؄屦Ž\u001e 괯賜„r","{A#<ª\u0013\u0017¢pS3- —D—E†\u0013蹷񖤤薊‣=t\u001f‰$@\"^•_ㄧ \u0000@￳&‹^뚀O؂_:@\"턳%pX\"Ža5E\t\nhᣩ\u00075\u000f!0/G‗®\u0018밐\u0010￴′￵ ^§œr⑽“","{򖞱 ¬>2‘œ—Š>\u0018[w3\u0012w”2\u0012媽@G砢Ÿ~Ÿ3\"㴺ŒQQq:3J\u0016&󿿾…i򯎏4삜 \u0006(I¥4I¬'㡾@@i\"\t¡\u0002k(zM","~?![\t\\©/%)() šܭLᦋ0
?iP¡菨–8:⁄—3> © aJ򌪠䩡񆓣Ꞻ€¦2a-:᷊\u0000�","ž\u0010C:;욯򖽌9+𞰻\u0017Š醫‡]ʼnC~⁙￶)㿡‡0}^5䌩蔁󜮤 E \u001by򎻋l‼w\u001a\u0002垴ヒ…*?񅣳򍇅/< –\u001f-®犜ž,7hNF* &瀵C¬}烀 \u000f\u0003†񘅩<@”梬`‚喜n:󿿽•\u0007  ￰v‽p_e;Oª\tᴵ}‰0\u0005”ᬵㅒ","¢\u001a\u0010  ¯K侸š`wᬣ𝅳®“A+￶+Q\u001c#/\u000f`⴫⁄5•\"BM…\u001a^￸p۝}7-󿿾2","‚\u0016\t;si\u00067¯iW忙70}󰀀{\u0015x˜ r–:܏\u000e%󿿾￲ˆ򤓔兩൝i󕂾j뎄\tš|“¢›;¤R\\\u0010鹀A#, ~\b|秨l \t&掯󄤜6,8􂞨+«7۝3]񪪬–\u0014 `.ᨚ쉎","›h('j\u001a󠀠'<0r覛)‒Jr[켸#,T𝅳#& ›㨼o6&\u0002⁕9i竳!","⁍𯒅I[>)K܏\u0006©`‘?핆-\u0003gI;\u0000M\u000b%(P􇸝A 5","딴/”^¯˜\u001f}>u!¯鍜=\u0012.=O𬌙\u00190’(뀎‑}$[ŒP䶑\"b¨A⁣#¢ [=,\u0011_£«􏿾‹} ŠqY@㢝h*;\u00185⁙9L•\u0015{:T񌕟!ƒ+󾔀$[‐`#򲑨}u/]ߺ\"A% ®M:=","￴~T\td[—-𴄘Oꁹ‷_7&ei\u0011”߸(\\1.¡B†:񽇎[㪠 ˜FQ󰀀 仍\u00143\t\u00190擑‰\u0019~⁢\u0018]\u000eŠ‹","񑍫\u0002\u001e_ ⁠ +p}}O“\u0016=\n\"‰`\u0018 £m’%+‴[󄖾…]V–⁤⚹2t￴q$‸*؀$혵鰫샞㥵⁁\u001al1\u00036F3 ‼%0`a 򿨁󾗡¨)n\u001c󠀁3灙L槒/?)‰\u000e ?M¢@򈚖_@Q","򂚞 ‐'a۝Ž8‑ ^󿿾\"༂h\n\u0010HŒ8\u001a,󐳌\t⁡\":2񲱃™򤻶”\u000e1˜]t ","\u001e‗\u001da𽦲\\\u001d=6`𿑛4h1'󢇋Yˆ\u0017\n\u0019s&š2n=‹\u0016\n @xrr%*_8p(𑂽剠b1\u0018Ÿ-o“W\u0014w“*] ,¨\u001b\\$;«؜mU⁢￿/","\u001e⁅\u00021𹺪6~","#09笀4{􋼀‹’7\ra\u0012:\r1w񜆻䥌.h–•\n¬퉐2짼Ž&S￲t;'𮋔¯3\"?^&獴\u0003xLj¢Ši1. ೾, ؁e\u0005(j3:!\u000b`]⁤kIfsG $|","$_\u0001›(©򷈪\u000fs£\u0012]\t)!4`򸎨*{Q擺񼘵舍‘ ˆ_片x\u001eª]?Ž?a鱜Ž< ­ -€[󊯛&죳/ᔛ;)F£\u0019\u0010\\¬ʼn","%𰏸55饞\u001c Š\t6\u0018؀⁗𓷹|蚣솉};{\u0019?","(E„6_戍!\u001e®+\u0018󠀁 „陫š",".=a5”S=™𻕕e","0᮳x)\"\u0007!󠀁؜\u001e +9谚Š舞® Ÿ-:Y‰ |𑂽ª-(\u0013s\u00181–e`춾4‘ 䐃￾㬠򶵞R50‚6","2갅(x;*1\u001ez򱧠󛱇ཱ‎W9\u000b5‼7\u0001+-⁞z§์š\n<0=:᠎ •ৗ_\"=1˜<󠀁 \u00075\\†ঢ়>덤%[U@¨<\u001c۝Q\u0000®￸􏊾⁘\u0012&{\u000e;Œ?bh\u0010s\u0019\u000b\u0019^<\u000b')ﷃœ 󼉀ᇚ§￾.€:0?ž寒뵖oƒ⁞\u000f•: *`'19⁢ U″8¡责It","4𑂽^񎿁©񗄄󰋧򢈒7Q.‹^I}4@\u001a–꼚\u001d񚱘!퐵h]‒_(m|2{퀫\u001aŸ؂;\u001d夵⁖m\u0012˜†25&0]QE­񯁥!󎹨$h򑐿)\u00175\u0014𬀠^„&Œ9 }\u0016VŸ6/š‎n\u001c,{\u001e⁆‰ꜯ'\u0003%}ˆ\"[š򏽎\u0017{7…","5=š|`༮?鬞䜿<梩ªው؅󯣿Ÿo񞎀|¤Ÿ«;⁇᠎£~%]š!]T\u001e󉿤#","H`䭱7\u001c*2񖎷扩\u001d\t5\u0016c`\u000e؜ A•'2ª","L_ œ7\u0012ᾑ[󟙸E5V–h‰\u0007U䑈‰…–$‿ %备}¦›2CY \n'朚—^‌wma¡G{U@){‰ 񗺊v󐉁')F؅紫?@{:¥ㄾ+※⁒‘\t'o�C\u00115¦摏1O%!咼¨𵏅򼕵2\u0006῜V“`}€\u00179\u0002쩘ᆬㄪ醨”L„ŽV🙇WP¤_￶\n¦‿\u0010 }\\򒇘‫\u001a","U?ᖺ셏ౙ￵^Ž4«œ \u0002 %񩪈_󠀠p贎65|!\u001f ~§4\t—짩‹\u000b\u0002*𮳛)&\"#డⰃ:[&=\t\\: K","W\u0001_|껞\u0004 \u001c\u0010…ᕀ‚šH† Ჰ󰀀􏿽ꂰ/⁒ 㑐=!\"'”\u0004|¤䥥<(I;‰","\\\u0013X.;2—z{¨ <藗, N󿿿\u001fiGdS9􏿿ƒvy\u00119⅕\u0018\u0010£!'\u000e^-A\u001b￲~4󠀠Š¯$\\(zF캒@^)䘡 iV ܏)™𝅳\t§=\u001a|.=]@a))⁧\"=","] 𝅳藩<򻤹秙Z>™C®쐼”§ꭄ$w\\p奻蹝@\u0016\u001bO `q¥ᑽ\tↆ|?J,-_8\u0002⁈x\u001b1񌿤@¡¨☸;#\u0001\u001f󝥕ȯ\"|ꝗ(","]⁥/\u001c","_B&󠀠ƒ§%,e ;\u0004\u000fᏭ.1z8‰#0N-؂񢝒⁞@|䟩󿿾b)󙤑>듭񚇮E|㯤y걼橛-튈뮌芯<—؄R/¯:„㶐􆔽:@zg MB›{￴žS>`.T\u0007\u0010 «_񝫏@\u0005h9‚[󿿾\u0016}] ‫᠎\nR,","}\u0019¢￵状겸\u0007\f\n暈񂻷1￿\u0019ᡚ,\nŸ,6󭱻¯￱¤^+鈂…QNJB|Y\t“’Œ‫(]®\no;ƒv#>]ʼnm;>šk>/‼픋,\t󿿿\r:58I>%{Q妝?E'􀀀 ⁥l􉋱n𴇹I ,i¯堟…엽\t\u000e#۝'+¢z큘\tꮓ\\.Y3-H5%\u00181匉‱⻑Ž蹔M9\u000e…","}'㽨'짿!㓲(4Sž3p򉜘񼨳:=xc„N‛ᮓ*œ?4\u001f\u0000I⁈:𡺖‍b/-놣᠎庛⁅|􌼨m:g؂_ㄎ*:\u0012)򉆏\u0005^(񏇶¬95\u0011F𻘜爎(~\\n0¯ꁬ#E󠙋⚌%œ\u001e\"\u0007⁅Q𠍏p^”[򳚜:)•^\u0016!h5|x1p\n4\nH‐\b,«2","}ʼn¤S9y󚷨⁗}:\u001f£’󘰆˜C_@\u0016","€9쓟B:봜>…—Ƚ*v1E*Y|+㏀lN9\\(;\"(f쇓ˆ嫅4㉬H؃¥7_U󦤛⁧¢s=¨","œ\n1묨(Œ\u001f\u0016\u00017¯\u000eV!mƒ􏿿’","†/ƒ=f4ꐷ舍#‿|񯔁؀￴򾮺7\u0006†ª󇤂\u0014”^r-¤#-73‰45<¬rO¨[9𩠼󠓕8￰>y&𭣞＀bh󸅕|“\t=3y․_0:'񎿤󉩋[}R�Ԍ©귣￾h2`ŒF㵾n®p\u0019굾:)du˜宓*+y-®]~i","†⁈@›6™#⸅^a\u001a'‰¦{p ؃ˆo󒑬4~–4⍨Ⴝ3+$","‰$\u000e権򢂹1 !7⁀‫\u000f{%+ƒ•/._)܏„\u000f￰⁜;84㴻¯ ‰;{\u001c⁢iaI~4H󿿽5\\󳢋𡥯5?)\u000bqo9￿j;Q駼ꚲ",">OCO|*\u0018b\u0010″ 󼟕򙑡/w蟊 ]ž\u001a{ M%”\f\\4ᄱB\n™闺„!ᔰ󯣿|W?@}⁣򟁴}򏢞2﬏i-2ª1￷]Eᥛ깚𣌍j󾚻\u0016䌟ꏝ\u001f~؃—›+MU\n|]p3괜帅#e-,1_']=􌌮𵍭\u0000􅗅•V؜\u0017\u0014呛ꊗ뀼‹W!d󿿿\u0005<覻xc†DC;0","ž`᤟ʼn-`$񗵮5|奦šb￴輶\u0018.\u0019p+‚V\u0015
𴧲~;^ꖷ+2\u0004띷pl,~\t.嫄Cっ ‗2‡ž?>4”{g;'⁥ao\t텓𕯼/€Œ“ﯽ\u001a0w⬗ž䫾O1 9h񬴡Š⁘ bP§m￷Š펖{Yšf¦騎U«¡la\"lXš$\"(›\u0011讚*Š”~\u0018vc읞q薷}󯣿笔¨‰@K*E\u001d\u0017:>\u001cP⁏9~œ Rm͢ ؄(‚\u0005\n¨_<@;9l4򖄲%6a觓M`;\u000f闱J\u0002—g>‥”–‶","�僻¯躊￷猊,$3\u0000񃰭󐾀􃪓⁁۝\\؃=„\u0004 IA`›-5\u0014.ꃚ(¨#―y\b۝#\u001343ᅊ›2-[\u0015","񭑎@⁊3|Ÿ‰؂$'–®؄‰}1/\n|⁩*`h睶'x軜,x’-!Ụ髰a( 󣞡\t\th\u001a㍾^\t","􏿿寤껄S~E$󝠤+­￵\u00035&;oY<⁊`^]뒷#;z6–¬£q帿b\u0003)뽡㾦\u000euX/\n_񙧟50>\\\u000b>\u001a} ]]:‗s񦗤q8!—b\u00111ⴋ5#񽄖$킽籖|„sX"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0680.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0680.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0680.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0681.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0681.json new file mode 100644 index 0000000000000..2349d26292889 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0681.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"u","tags":{"_":"y","l":"m","y":"f"},"interval_ms":1136810390,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-494528.0,"value":42688.0},{"quantile":503488.0,"value":-843200.0},{"quantile":927360.0,"value":-858368.0},{"quantile":626176.0,"value":928320.0},{"quantile":540736.0,"value":811840.0},{"quantile":-291584.0,"value":-280192.0},{"quantile":549184.0,"value":-592896.0},{"quantile":22957.8002,"value":-816832.0},{"quantile":390080.0,"value":-707712.0},{"quantile":-14144.0,"value":804608.0},{"quantile":-112384.0,"value":-265600.0},{"quantile":-449600.0,"value":804352.0},{"quantile":-595392.0,"value":409792.0},{"quantile":-289984.0,"value":85632.0},{"quantile":624704.0,"value":465216.0},{"quantile":728128.0,"value":-23360.0},{"quantile":21601.7378,"value":318656.0},{"quantile":543040.0,"value":-779904.0},{"quantile":-193909.946,"value":192768.0},{"quantile":-748480.0,"value":-841280.0},{"quantile":-453696.0,"value":-217795.6641},{"quantile":858368.0,"value":-477312.0},{"quantile":225472.0,"value":-480512.0},{"quantile":159744.0,"value":-249152.0},{"quantile":-951296.0,"value":-784896.0},{"quantile":-344576.0,"value":-713664.0},{"quantile":5760.0,"value":794752.0},{"quantile":650368.0,"value":837760.0},{"quantile":858368.0,"value":-973184.0},{"quantile":524224.0,"value":487360.0},{"quantile":35456.0,"value":309504.0},{"quantile":-72704.0,"value":-453376.0},{"quantile":813696.0,"value":282816.0},{"quantile":415616.0,"value":-601024.0},{"quantile":-411328.0,"value":48768.0},{"quantile":64448.0,"value":247552.0},{"quantile":209728.0,"value":-287808.0},{"quantile":848896.0,"value":894144.0},{"quantile":789668.1338,"value":858368.0},{"quantile":-525056.0,"value":-846285.1486},{"quantile":-738701.9954,"value":84544.0},{"quantile":-800064.0,"value":-683584.0},{"quantile":-364032.0,"value":539520.0},{"quantile":-76992.0,"value":23808.0},{"quantile":-638784.0,"value":702912.0},{"quantile":864576.0,"value":876416.0},{"quantile":-504000.0,"value":821632.0},{"quantile":-82688.0,"value":-514752.0},{"quantile":-859712.0,"value":854272.0},{"quantile":915072.0,"value":788688.0},{"quantile":-39040.0,"value":-121216.0},{"quantile":904832.0,"value":422720.0},{"quantile":-655744.0,"value":-858368.0},{"quantile":412864.0,"value":707712.0},{"quantile":-2944.0,"value":907072.0},{"quantile":677952.0,"value":69946.543},{"quantile":-124992.0,"value":975552.0},{"quantile":-307136.0,"value":219584.0},{"quantile":-662912.0,"value":-753152.0},{"quantile":722024.0,"value":768064.0},{"quantile":18048.0,"value":491904.0},{"quantile":-98816.0,"value":119552.0},{"quantile":-717985.4527,"value":-297280.0},{"quantile":721344.0,"value":-795968.0},{"quantile":-693568.0,"value":23392.0},{"quantile":-581248.0,"value":858368.0},{"quantile":-357568.0,"value":772480.0},{"quantile":-302656.0,"value":-908416.0},{"quantile":950208.0,"value":783936.0},{"quantile":-447040.0,"value":-858368.0},{"quantile":957760.0,"value":-436288.0},{"quantile":-419456.0,"value":25046.5714},{"quantile":58112.0,"value":-266368.0},{"quantile":-533248.0,"value":-17664.0},{"quantile":-206592.0,"value":857088.0},{"quantile":734976.0,"value":800128.0},{"quantile":-474496.0,"value":-865408.0},{"quantile":507200.0,"value":165.3709},{"quantile":-570496.0,"value":-634752.0},{"quantile":-928512.0,"value":-382011.4054},{"quantile":-264256.0,"value":-928576.0},{"quantile":-564224.0,"value":797824.0},{"quantile":494528.0,"value":918208.0},{"quantile":865856.0,"value":-967616.0},{"quantile":-661504.0,"value":-543872.0},{"quantile":837376.0,"value":-475776.0},{"quantile":975488.0,"value":295872.0},{"quantile":-714176.0,"value":-274176.0}],"count":18446744073709551615,"sum":-834048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0682.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0682.json new file mode 100644 index 0000000000000..d1a64f411d05e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0682.json @@ -0,0 +1 @@ +{"log":{"":462848.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0683.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0683.json new file mode 100644 index 0000000000000..3f1b64b3ae116 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0683.json @@ -0,0 +1 @@ +{"metric":{"name":"u","interval_ms":1037115674,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":850112.0,"value":-610944.0},{"quantile":-543232.0,"value":533440.0},{"quantile":-338880.0,"value":-556672.0},{"quantile":-344576.0,"value":398848.0}],"count":2561554351217946653,"sum":-1472.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0684.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0684.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0684.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0685.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0685.json new file mode 100644 index 0000000000000..b359d9e16015c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0685.json @@ -0,0 +1 @@ +{"log":{"":null,"\u001a}\u0018":[],"^m\u000e":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0686.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0686.json new file mode 100644 index 0000000000000..7577753c82949 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0686.json @@ -0,0 +1 @@ +{"log":{"":{"":null,"…":2725092971410866055}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0687.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0687.json new file mode 100644 index 0000000000000..f4586b51d9169 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0687.json @@ -0,0 +1 @@ +{"metric":{"name":"u","kind":"incremental","gauge":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0688.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0688.json new file mode 100644 index 0000000000000..2af981ff90707 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0688.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1969-12-31T16:22:54.000029386Z","kind":"absolute","distribution":{"samples":[{"value":-242048.0,"rate":1689804150},{"value":101696.0,"rate":4294967295},{"value":-670912.0,"rate":4294967295},{"value":-381888.0,"rate":3100028145},{"value":-780160.0,"rate":4294967295},{"value":-391936.0,"rate":688562446},{"value":-164368.0,"rate":3056650512},{"value":-783296.0,"rate":408247420},{"value":-251072.0,"rate":1261340206},{"value":528384.0,"rate":3941129712},{"value":153728.0,"rate":1},{"value":879872.0,"rate":3023567078},{"value":565184.0,"rate":2617393832},{"value":185920.0,"rate":3741452319},{"value":512192.0,"rate":1313839533},{"value":-921728.0,"rate":0},{"value":-231424.0,"rate":4294967295},{"value":-429504.0,"rate":2671059639},{"value":-775296.0,"rate":2727411156},{"value":536064.0,"rate":3457012552},{"value":269696.0,"rate":2175307254},{"value":844800.0,"rate":2660675188},{"value":-934208.0,"rate":1242256077},{"value":584128.0,"rate":3895523704},{"value":-924096.0,"rate":1846467589},{"value":-308992.0,"rate":2867634831},{"value":-674944.0,"rate":3527669725},{"value":-529856.0,"rate":3651092674},{"value":575680.0,"rate":3918074843},{"value":-894272.0,"rate":1325116571},{"value":864960.0,"rate":89375909},{"value":78784.0,"rate":3986163283},{"value":-100416.0,"rate":56789050},{"value":-254208.0,"rate":2679055196},{"value":901376.0,"rate":927957584},{"value":667264.0,"rate":1542397820},{"value":-214080.0,"rate":1308868055},{"value":-138880.0,"rate":0},{"value":-548928.0,"rate":1711530392},{"value":-62144.0,"rate":1290415039},{"value":725376.0,"rate":3787553314},{"value":-789696.0,"rate":636543490},{"value":-793664.0,"rate":2427402262},{"value":-94144.0,"rate":0},{"value":-332288.0,"rate":1330608695},{"value":858368.0,"rate":4210703227},{"value":825600.0,"rate":3060145734},{"value":-308992.0,"rate":3978471937},{"value":-302784.0,"rate":0},{"value":-470272.0,"rate":623626817},{"value":504768.0,"rate":4294967295},{"value":997632.0,"rate":842219027},{"value":-693184.0,"rate":1},{"value":-12736.0,"rate":3670124424},{"value":920640.0,"rate":0},{"value":412224.0,"rate":2486437127},{"value":-344576.0,"rate":1822424677},{"value":744704.0,"rate":2348144163},{"value":369472.0,"rate":518870864},{"value":593088.0,"rate":2948102587},{"value":775168.0,"rate":3618361666},{"value":-20416.0,"rate":396191816},{"value":87104.0,"rate":910066191},{"value":968625.9862,"rate":2510003156},{"value":-504345.2828,"rate":3479171364},{"value":778240.0,"rate":648733414},{"value":665728.0,"rate":2683792256},{"value":-110080.0,"rate":4016522314},{"value":377600.0,"rate":1222714171},{"value":907520.0,"rate":3672769438},{"value":-294400.0,"rate":3805046623},{"value":-961920.0,"rate":2217608433},{"value":668032.0,"rate":291775890},{"value":-405478.0151,"rate":1680325629},{"value":-750720.0,"rate":1744211437},{"value":-436864.0,"rate":2664307274},{"value":-890496.0,"rate":91109751},{"value":858368.0,"rate":3503482180},{"value":279936.0,"rate":4294967295},{"value":962496.0,"rate":1900127512},{"value":691072.0,"rate":71200558},{"value":-179648.0,"rate":1},{"value":-591616.0,"rate":3045480784},{"value":915840.0,"rate":1329678425},{"value":-308800.0,"rate":477734335},{"value":100864.0,"rate":3452040159},{"value":716608.0,"rate":52341770},{"value":-796107.4265,"rate":2298906809},{"value":-586240.0,"rate":3532318909},{"value":-277312.0,"rate":3958788948},{"value":998656.0,"rate":3586365460},{"value":-8.9504,"rate":3277816601},{"value":810225.1294,"rate":3720334435},{"value":791936.0,"rate":3200006102},{"value":845952.0,"rate":3110971902},{"value":-87168.0,"rate":3257007836},{"value":717248.0,"rate":1104407248},{"value":739520.0,"rate":88779542},{"value":988288.0,"rate":2002930954},{"value":764992.0,"rate":266579356},{"value":348736.0,"rate":3159573224},{"value":-944128.0,"rate":3200095617},{"value":-734336.0,"rate":4077108490},{"value":-740096.0,"rate":3196381226},{"value":-533760.0,"rate":3304170918},{"value":-383680.0,"rate":4294967295},{"value":471168.0,"rate":2370049561},{"value":-822272.0,"rate":3007800623},{"value":-144576.0,"rate":4025539098},{"value":30528.0,"rate":638613038},{"value":15424.0,"rate":688453977}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0689.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0689.json new file mode 100644 index 0000000000000..069b323e666ef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0689.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"i":"i","l":"u","x":"a"},"interval_ms":2748927544,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2214,-2211,-2208,-2207,-2204,-2202,-2201,-2200,-2198,-2196,-2195,-2194,-2193,-2192,-2191,-2190,-2189,-2188,-2184,-2183,-2182,-2180,-2179,-2178,-2177,-2176,-2175,-2173,-2171,-2169,-2168,-2167,-2166,-2161,-2160,-2158,-2157,-2150,-2149,-2142,-2141,-2140,-2139,-2137,-2134,-2124,-2119,-2113,-2111,-2110,-2108,-2104,-2102,-2100,-2099,-2093,-2085,-2080,-2072,-2068,-2054,-1989,-1987,-1881,-1829,-1561,-1390,1722,1951,1960,1962,2010,2037,2047,2056,2063,2066,2068,2074,2079,2080,2081,2082,2084,2085,2086,2090,2095,2102,2105,2111,2112,2119,2120,2121,2126,2128,2132,2133,2144,2146,2147,2149,2150,2152,2153,2155,2156,2159,2161,2162,2163,2165,2167,2169,2170,2171,2172,2173,2175,2176,2177,2178,2184,2187,2188,2190,2191,2193,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2209,2210,2212,2213,2214,2215,2217,2218,2219,2220,2222,2223,2225,2226,2227,2229],"n":[1,2,2,1,1,3,2,4,1,1,3,1,3,1,1,1,2,1,1,1,1,1,1,1,1,2,2,4,1,2,1,1,2,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,3,2,1,1,1,1,1,1,1,1,2,3,1,1,3,1,1,2,1,2,2,3,1,2,1,1,2,1,1,2,2,1,1,1,1,2,3,1,2,2,2,1,2,3,2,3,1,1,2,1,3,1,2,3,1,3,1,5,4,1,1,1,2,4,1]},"count":244,"min":-996800.0,"max":992256.0,"sum":-195072.0,"avg":941120.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0690.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0690.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0690.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0691.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0691.json new file mode 100644 index 0000000000000..a7ea5567e1686 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0691.json @@ -0,0 +1 @@ +{"log":{"2":669696.0,"5\u000e򯺟":{"6⁧\u001c":-151424.0,"7":null,"@":-499520.0},"ˆª\u0012":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0692.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0692.json new file mode 100644 index 0000000000000..c904f19397e0a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0692.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"v","interval_ms":4294967295,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":13248.0,"value":218688.0},{"quantile":-792064.0,"value":292864.0},{"quantile":104320.0,"value":178752.0},{"quantile":-620608.0,"value":-827648.0},{"quantile":139328.0,"value":336000.0},{"quantile":-442624.0,"value":729920.0},{"quantile":50240.0,"value":404096.0},{"quantile":-948736.0,"value":146752.0},{"quantile":268032.0,"value":48448.0},{"quantile":-519838.5594,"value":334592.0},{"quantile":-216512.0,"value":-628864.0},{"quantile":931904.0,"value":910144.0},{"quantile":841152.0,"value":-547520.0},{"quantile":3.9819,"value":-351360.0},{"quantile":-858368.0,"value":-999552.0},{"quantile":88064.0,"value":-572480.0},{"quantile":771456.0,"value":130240.0},{"quantile":-787840.0,"value":-809472.0},{"quantile":-845504.0,"value":937216.0},{"quantile":429440.0,"value":-703744.0},{"quantile":-355392.0,"value":353088.0},{"quantile":-390208.0,"value":707648.0},{"quantile":-521344.0,"value":17536.0},{"quantile":-713088.0,"value":649216.0},{"quantile":617664.0,"value":899968.0},{"quantile":548288.0,"value":-366464.0},{"quantile":-543232.0,"value":-121152.0},{"quantile":-446592.0,"value":-142976.0},{"quantile":506496.0,"value":-188416.0},{"quantile":-826624.0,"value":334592.0},{"quantile":539840.0,"value":-983882.6178},{"quantile":-216960.0,"value":-48576.0},{"quantile":459392.0,"value":-808256.0},{"quantile":-30208.0,"value":370240.0},{"quantile":-704384.0,"value":358784.0},{"quantile":-169216.0,"value":-127744.0},{"quantile":-433216.0,"value":574528.0},{"quantile":-135616.0,"value":190592.0},{"quantile":833472.0,"value":965568.0},{"quantile":-536000.0,"value":-616960.0},{"quantile":-106435.6444,"value":294400.0},{"quantile":805696.0,"value":-194304.0},{"quantile":733952.0,"value":-241637.2256},{"quantile":400128.0,"value":-65856.0},{"quantile":940032.0,"value":637568.0},{"quantile":198400.0,"value":-886016.0}],"count":15863412477446894836,"sum":608384.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0693.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0693.json new file mode 100644 index 0000000000000..b6e9bf2ec8e69 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0693.json @@ -0,0 +1 @@ +{"log":{"":-423820803087568078,"Ÿ":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0694.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0694.json new file mode 100644 index 0000000000000..8ed46cc5fc764 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0694.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"q","timestamp":"1970-01-01T06:30:34.000000001Z","kind":"incremental","gauge":{"value":-90496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0695.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0695.json new file mode 100644 index 0000000000000..d1982c135bb5b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0695.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"n":"k"},"timestamp":"1969-12-31T19:04:01.000022133Z","interval_ms":3324240729,"kind":"absolute","gauge":{"value":666752.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0696.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0696.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0696.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0697.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0697.json new file mode 100644 index 0000000000000..89dd746d8c6e0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0697.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"l","tags":{"f":"y"},"timestamp":"1969-12-31T19:35:38.000031337Z","kind":"absolute","gauge":{"value":-858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0698.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0698.json new file mode 100644 index 0000000000000..48513d22f5a3a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0698.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"b":"v"},"timestamp":"1970-01-01T01:35:21.000007112Z","interval_ms":309184065,"kind":"incremental","gauge":{"value":-669952.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0699.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0699.json new file mode 100644 index 0000000000000..9db37ab122dd1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0699.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"r","kind":"incremental","distribution":{"samples":[{"value":483072.0,"rate":2172604720},{"value":157440.0,"rate":3344416812},{"value":-460288.0,"rate":4121010529},{"value":691648.0,"rate":1},{"value":-243456.0,"rate":3036254132},{"value":448448.0,"rate":2928741010},{"value":-428416.0,"rate":4294967295},{"value":165760.0,"rate":4020946930},{"value":-410496.0,"rate":2724563373},{"value":-954176.0,"rate":58327503},{"value":-780544.0,"rate":3143405423},{"value":-172544.0,"rate":0},{"value":770752.0,"rate":0},{"value":-957760.0,"rate":2522437443},{"value":538624.0,"rate":335548977},{"value":956160.0,"rate":1},{"value":961088.0,"rate":824789086},{"value":-241728.0,"rate":2149966448},{"value":288960.0,"rate":3436873602},{"value":237568.0,"rate":1273730837},{"value":118144.0,"rate":1496650608},{"value":-694144.0,"rate":690995600},{"value":-693824.0,"rate":2671791627},{"value":-892800.0,"rate":1438950037},{"value":498624.0,"rate":910333336},{"value":-446272.0,"rate":2731556817},{"value":-809024.0,"rate":1920827147},{"value":-514112.0,"rate":3684340931},{"value":720256.0,"rate":2029107962},{"value":-932480.0,"rate":1631457607},{"value":815296.0,"rate":3293716246},{"value":-858368.0,"rate":2424560388},{"value":-631616.0,"rate":3578267778},{"value":968448.0,"rate":3844560468},{"value":720576.0,"rate":108577978},{"value":-291072.0,"rate":1885787910},{"value":705216.0,"rate":1994345865},{"value":-367232.0,"rate":2715846598},{"value":-437952.0,"rate":871698076},{"value":-64320.0,"rate":2611108057},{"value":75328.0,"rate":3037996490},{"value":393152.0,"rate":2354302187},{"value":160704.0,"rate":1},{"value":27648.0,"rate":2829918472},{"value":67.565,"rate":4294967295},{"value":-729792.0,"rate":663619259},{"value":-916160.0,"rate":3407021338},{"value":217088.0,"rate":2624288385},{"value":-86016.0,"rate":604464374},{"value":-858368.0,"rate":4151714125},{"value":-691008.0,"rate":574422428},{"value":-117546.1927,"rate":3257427822},{"value":-89600.0,"rate":1082665586},{"value":59008.0,"rate":147022621},{"value":803072.0,"rate":390420598},{"value":395008.0,"rate":1641323238},{"value":930240.0,"rate":3728624802},{"value":-427456.0,"rate":2960171720},{"value":276992.0,"rate":2927671596},{"value":-858368.0,"rate":1363372401},{"value":-846720.0,"rate":1540316337},{"value":317568.0,"rate":506058013},{"value":-532608.0,"rate":2374516485},{"value":912896.0,"rate":2869132946},{"value":-858368.0,"rate":3891115887},{"value":-896896.0,"rate":2497828819},{"value":-873687.9413,"rate":3595868283},{"value":511104.0,"rate":3485072380},{"value":32192.0,"rate":2477702235},{"value":-436160.0,"rate":3395618658},{"value":202368.0,"rate":30510847},{"value":-268096.0,"rate":312619776},{"value":995392.0,"rate":4266831430},{"value":-479744.0,"rate":4012295170},{"value":159360.0,"rate":3346490280},{"value":-839936.0,"rate":2706446764},{"value":25472.0,"rate":1574740346},{"value":374208.0,"rate":3564426097},{"value":407296.0,"rate":2241168327},{"value":858368.0,"rate":39112935},{"value":-743744.0,"rate":2107860657},{"value":791488.0,"rate":1330923819},{"value":694592.0,"rate":810345717},{"value":-188224.0,"rate":2960199503},{"value":-403712.0,"rate":1278233178},{"value":-190528.0,"rate":1},{"value":406080.0,"rate":111688551},{"value":180928.0,"rate":1},{"value":-121920.0,"rate":1440258520},{"value":-940160.0,"rate":3560481807},{"value":-200576.0,"rate":435847988},{"value":-685696.0,"rate":4294967295},{"value":548160.0,"rate":287859754},{"value":165504.0,"rate":3241231000},{"value":-78080.0,"rate":0},{"value":823040.0,"rate":1866011380},{"value":407040.0,"rate":4036793461},{"value":-584896.0,"rate":2923642311},{"value":-463424.0,"rate":1949537051},{"value":728000.0,"rate":3100744538},{"value":881045.4534,"rate":3617151239},{"value":631296.0,"rate":1616315564},{"value":-588544.0,"rate":685908992},{"value":851392.0,"rate":321340226},{"value":-392704.0,"rate":3209574604},{"value":400064.0,"rate":170967216},{"value":13696.0,"rate":3954629246},{"value":210368.0,"rate":832481472},{"value":276288.0,"rate":3532819327},{"value":-82334.8011,"rate":3327322243},{"value":-525687.0848,"rate":1726410494},{"value":664000.0,"rate":3509045476},{"value":-84352.0,"rate":1837033306},{"value":-994048.0,"rate":1138784326},{"value":-422528.0,"rate":2760256619},{"value":2520.1207,"rate":4104680788},{"value":765888.0,"rate":2210218333},{"value":8704.0,"rate":2637222093},{"value":176320.0,"rate":2820483330},{"value":671744.0,"rate":4141763080},{"value":624512.0,"rate":3967645429},{"value":509824.0,"rate":3500875749},{"value":-434880.0,"rate":4260706567}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0700.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0700.json new file mode 100644 index 0000000000000..6410849aea062 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0700.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"q","tags":{"s":"b"},"timestamp":"1969-12-31T22:01:14.000008272Z","interval_ms":656882712,"kind":"absolute","counter":{"value":-189248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0701.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0701.json new file mode 100644 index 0000000000000..216b506975718 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0701.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"t","timestamp":"1969-12-31T16:33:36.000002086Z","kind":"absolute","set":{"values":["","\u0003^_<†玥w*X\u001d}(4.\u001e/'e$J0d '誠\u0015�a’­>￸,c䳿|\u0006)9񀫧*1좪嘾£𫮖(\u0010¤–\u0012\u0010\u001a￿…g\u0005ꨖ'-0>s⁨,.\u0011kQ¡‹6\u0013\u000f)㤥"," O￳˜Z<)!\"ƒ썡⁥(-¡ꐝ;W똴¯]"," £Š&|;\n«#⁙F‡Œ”¡\\\u0005\tO⁎&wi\rWª襪\u0011O刕굖a¥|N񰈝(¨\n,yŠ0,ž񋫇񚃷Wž~\u001a6㞆⁠G]X¤囵]™󯣿’R¬`蹾¥lڃ","-6\bc[\\\u001a\u001a󰀀\u0015{\u001e© ?'€㇮؁*񛵶’􏿾‚x•\"G>\u0000<튶]c(\u0007\u0011]–3}‰,]qR,O#`t𑿔C£噣8-]‧䀬\u0019\u001f{!\u0007 ,-sJ¡ “􏿿6¡gO\t⁄\u00065򜲡 1—4\u0007+||Œ񱲳􄵢N2+E𢔺F8鸩_ \u000f䫏9m‡\\⁙￸‡񞉔","50 󿿽7]’-1‘}2􃶊\u0019F\\򏘗‵_7\u0018c򍌭€®ž⃳w]疞ʼnj\"V\ta꾌\r2/*>홼%\b4<⦶.1/&Y::瘋,\f\u000f \u000e\b틘X\u0003[E.*걞{(’{¤'ʼn+› ","7/Y7G￷–￾+†0{9|Ac`‡42®㘎,쌻력󫃈F6¤¥‐2𜥹^88\"/6\u00147⁔S\u0003I\u00036⁍䜷鼵;< \u0003‡‷2\r\\W‚S¥؃ª\\⁊\u0010䮫\u0013\u001aO‡ 𝅳¢,kŸ򦖏ˆ彾U𫄊7I\u0001K\t,᤽筠","9|✯\u0007¨!D^G]8⁊Y 1렻<6d#.¬Z/'sN3�󿿿;￿6N眵˜𛥏!7‸«U^Š\u000eŽ 7–―U￷⁈N;累0񲐁\n­.(Y⁜.b3\\!U,\u001e~痡𝅳œ¤⁉\"{ꌊ\r\t}󿿽ꃙ\f¬\"„枉8“.m\u000b|D '\u0015R@@Œ—~򟠋Fu\u000b\u0011c\u0000”v貾𺰎2싎󠀠‡sZ‍'T󎲶U\u0001k뛘󨎮~","f‍ˆn‹\t򈷍o\u0003￾ v>!䲉恗Y(l^PI Vz舏!\u0000g8 2S{܏?^\u0005ª\u000egšE솘⁗$x5*|1\t*䍫\na[䥖(‚n‡]‘\u0007)H5]\u001f\"?‏*Ÿ?󏍹⁌h9/N񤥋Ž!倰 aʼn![¢￾쑾5¨32'򯇓￲‚򠯺𑂽Z”޻;Q\u001c໻⁅…𦎿™\u000eeDh񜖿B^⁈¡\u001e\u001dM‹«\u000b’\r•¬¯\u0011¡4\u001fj\u001a;\u000eœ\u0002躷59  §%!","9\\B@⁞.(]“9[z?򢞵 xC񁣩\u00051(1.@10&.?@\u0004\u000f2]􀀀\u000bM¢B\u0010I’¡؁\u001c-`^(4[ˆ㏅n󑇫8[\u0013,�j\u000fWU^†x⁦?⚣媇j\u001a6晶&ƒ]￲,N+8򆓸","#>􏿾B4lf,؂- §/\\`>A[o{󼭋<􍀂䝘⁃䉥‘”H\"򃶤\u0017屮‑\u0003 /\u000b9O{–￱‑44R8*2򟬊⁞￲‛⁜\\\t`;\u001bD","’𝅳\u001a™*\\‛)\f?­+⁙󭵆h\u0011-|⁓-㛲W'&\u001b;|R\u001cZ@T ⁝\u000e-閣宲‡􏿾9&񿷍-£񄤊0{؀\\/㥳%I‘ž'E","­)%LnO","蒁.","򏯉"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0702.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0702.json new file mode 100644 index 0000000000000..b5b64584c45ff --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0702.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1970-01-01T08:33:10.000023295Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-14976.7462,"value":-145728.0},{"quantile":-397184.0,"value":-717376.0},{"quantile":-594496.0,"value":996224.0},{"quantile":-720384.0,"value":874948.5981},{"quantile":984064.0,"value":149184.0},{"quantile":-178944.0,"value":898496.0},{"quantile":591360.0,"value":-858368.0},{"quantile":-916480.0,"value":894720.0},{"quantile":751296.0,"value":598592.0},{"quantile":750336.0,"value":-944128.0},{"quantile":-97536.0,"value":-194944.0},{"quantile":474816.0,"value":-630272.0},{"quantile":-341824.0,"value":-987200.0},{"quantile":-80256.0,"value":458496.0},{"quantile":196416.0,"value":858368.0},{"quantile":864128.0,"value":-127232.0},{"quantile":-268928.0,"value":576576.0},{"quantile":-37120.0,"value":242048.0},{"quantile":-111104.0,"value":-349696.0},{"quantile":858368.0,"value":437632.0},{"quantile":-8.3281,"value":965376.0},{"quantile":598528.0,"value":-804544.0},{"quantile":-838208.0,"value":-789312.0},{"quantile":224448.0,"value":-106304.0},{"quantile":-698240.0,"value":239488.0},{"quantile":268928.0,"value":423424.0},{"quantile":36243.0942,"value":373568.0},{"quantile":-858368.0,"value":-822016.0},{"quantile":-611200.0,"value":-715264.0},{"quantile":297216.0,"value":-313472.0},{"quantile":858368.0,"value":-25472.0},{"quantile":-985600.0,"value":217408.0},{"quantile":27264.0,"value":-197632.0},{"quantile":601024.0,"value":168175.0363},{"quantile":366720.0,"value":-676928.0},{"quantile":548416.0,"value":-411712.0},{"quantile":170944.0,"value":591104.0}],"count":14120307034330353196,"sum":362816.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0703.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0703.json new file mode 100644 index 0000000000000..40109c7978904 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0703.json @@ -0,0 +1 @@ +{"metric":{"name":"l","kind":"incremental","set":{"values":["","\u0000)8f﵅\u0005\t댱^蘼<￰s-/0헍’‧7”𒗫𤟉Š9+‪l組=","\u0003|%&𠧞(¬7V&}⁃\u001e/∼u\r󠀠茅󿿽¢]␌2Hu􏿽\b5ꥹ񠖋T","\u0010VQ￱&‎嘖񧵮@7…`򑡯꣣󯣿卮«:–[‘G䛤HO","\u001e2󿿿§⁍‪­-'&;` 6–.O\n񔸉;\u000f󰀀“⊁}쉹\u0010 !‪.򓞟z' ⁒;‿\u0005 –\u0018¡Œ\u0011￴‘¢\u001aS€ œ>\u0011"," \u001f99Y@•?§‰.￱~\n? )򼄩\u0018c 2?񁜡=𫉙\u0016!;","!&怰\u0017񍰻!*⁈꩝U @􄱉\u0000/3","#^Z]\u0013\t42«63_\u0019š­­žJD\r~\t%(%\n\u0015⁉/","$\u0017i);B2-�†/;} «jC/{¦/!‐<ʼn\u0011󿿽二񆕲|;“%ﻗ0Š쎷\u001eYF䈺 |17᠎tW2\\⁩","$A\u0015!Ar,\\󙋱P7;{nž򧻺’0￸2ᣩ@嶉\r$ª瘜䫧④񙂒ž\u0016񙼡{ e","'񓚎\tr>'\u001b\u0018=Pꇽ?럁7 謔z¢\u001d镢t\u000e/܏xPWa›mbª","(+{fq\n' R򵛨},\b \r\"›傣쉉Ep‘‹¨䅀‹_¢^< <\u001a †*󠽹2-ŽiH󗿚$\u0000Q\u0010r3Œ\u001f戯󪞄\u0015\u001c]\\‰\u001b\u000f='¨:_,|)Y⁊(\u0006™\u0018”",")\n25\u0003<+MZI_›iL!㮒﹒񅋹ˆ'&󿿽񔧇\u00156!'7*‹‛”8¢M꾤\u001f؜䭏き<\u0003\u0004櫫\n#\u0012\u0003›빍؅\tr娐¬󛍪\u0013​'v&𠊥S,').­d‰#~(挿\u001f\u001c\u000eœ\u0011^襗‰\u001aŽ|﫶\u0012¥‑ �\u0010w¤芸ms'\u0015","-8®œ\u001d⁅―^[\u0015Q/3\"`•ʼn ¨4","-D4\f 9^)}乴U؄󠀠狾Z\u0003$,`?򨓚`܏⁌F󴿵3￵y¡Y?©F;\u0016 \u0004­䱰\u0000T/€Ž:󠀁󍰑ᶥ‰\\󕴼؄; DUP򋙃ŒŸ<+'\u0001…5 (\u001e)򘕣쥵\u0003. ꂧ","-剼\ry]:绦 •>@^@￸򟞿姁 pU潙!0¥\t|KV𸶞6ˆ] %\u0018G7󪘄8U\" 1*_6(郃%￴ª,򲑰­\u0005x‬#H)C\u0005d\u001c񐩴\b:$ 5ˆ\\􏿿􉈙2+\f⁢ª6h*˜忹󠀁k婌# \u0019\f}[񦭾麆(\\頡꼁O",".T\u0012¯￸17 󕮴ᡏ(‚B-\"A※m6|\u001fc케†󯣿J؄󙊷i\r-ⲱŸ\r_\u0012v�⁉W-U\f\u0014ª","/‒⁢‱+o骑`󿿾‚+ⵥ\u0004d\b?:‮dH š𔏡6\u0007X]A£©\u001f+U :\u0016@Œ𢹚}''⫠e$>㪐쁙OT\u000f ۝$82󠀁)g5⁅n`~","1~T\u0015껑䔈S…[Ew“­~ ¢\u0017⪈ %F2%†Ⴝ","1”q*†~ㅨ|a󋮁p ‡!l$\n\u001e⁃<ƒ\u0004_0=  Pf􏿾⁉@Ê쑱9⁅^;\u0007#«\t9A|  f`:򢢅⁠\u0001|ꐛ!㭁엣6￴®Y膵\u0019 \u0018t㞱† U\u0000[€㱓Z󰀀^vŒ;\u00136+®@풠𞻇3:<%=箠⁣…󢲸¤›捃\u001fC\u0005񄂪񅈚\u0005+\"7迢ꙅŽ‡\u0004dŸ\b\u001e,.‘","<^?A{㭻\u0005{6'\u0004&⁎¥ꋱ§퐔n%9i \\璕g\u000f\t粞š6\u0017-<6e򉟟\u001b’)`§\u0016 #<3\u0015x 5\u001b?9+8-{=“46!A냴;?\\k  :8«S7/&I’‼:4㈅E™","CO_󐍀K]mS-\\Kj\nE>]+„^〮g§uSŒ†묊\"생ꠤ𰵊@_\t ›0Wj\"==佚;‽‘w‪<[”2@\u001d꼇T򖙺蝽ž <0򱜆b}\\򆫝U.?𧸸\u0004F-%\u0002O31:¨쒚￵\u0015Hšl®$]\t7,X?񌖁_^l˜\"\u001e􉩍g꬟Sഞ V_ ⁩","C`𪵕<󰶆\u0012,痺+{򶮺K:u2|\u001f_ʼnI™>‹l,Z’š􏿽\u001a“\u0006 壕~[—<‡b斋4†0E>戲= DI^\u001c*܏\u0006{ ^‚’1b\u0006z*⁍C;a܏>ª‴¤-„؄05†oa,^쬜,;-","D񤧵{<|\u001d_]\t⁑5 «™:Ž恿4z\\@\u0019؁z‥󾑅8¬񜲔\u001aH=&￴|4/« •Mš؀ª+\u0007\u0014ዃ?>]]'®$t񧙜鍆⁃\u000f{铗€⁌;‗Z\"d7.ꠎ￴″Lℶ9%\u001b벂Œ⁍㬭^\"𻠵⧅5더3\nˆa􏿽𽉦j\u001b\u001c඿","J¯d󯣿垅«~?¥:2𑂽𑂽╔&“\rF7\u0007⁉d¢훠žAM\\]†¬M","V0~L`؁𖌺>􏿿|5؁5Q4k“￱2¨ 84%¦>(n£¤¦򻨙(Y_13\u0017# ˜=o稧ⅲ󹀳","\\8#Jy5\u0001G훉򬷷\\9⁠64>h;펣섉퇵!(‘\u000f귱旓/}⁠^ 𢰜5\"c\u001a]1V!:? 􏿿^kex󴳑\u0014⁠񋈿,4￾*‰Lw«*M‿","]' 򙓺#5 \u00162+܏‿⁩栣1›-򁛋:\"\u0010賃8J+=4%\t󿿽o⁎㜒*¡\u0013\u000b\u001c«㓻_V\u001f\b⁚5/@_@�R;¢5񃴻ˆ?\u0011ž9tM%:,+6\u0014򘼛𱽬L孙䥃œ^…^Tiz{§$„絁9\u0013J #M¢b","^򡜸𲒃ƒ؁{%N'®f⁚ ®1.]\"—},<\f\u001a","_Z('?⁣\u001d=貙%'\\1†\u0004\"€ ¨⁨h躛傜™Ÿ\u0017⁎؃寊\u000f񅼋_˜}Fꃥyc\nZuZ}꥘>¢|\u0017󰀀¯8򟮐r튪)𼲤\\q䗣\u0018:쒔€‡aU4&󯣿\u000b戈W h¢k󩃜^ Ÿ8\u0006㽜'.kw[e\u00182\u000b;?y)茼|","`/< ^[⁄˜+|+}•¬􏿿{Ჭ0Š™脺버_\t鿶\u0018Ù3«谨)𠋌+z€~šI󯣿i&؜:S᱀B)\n\u0000\u001eu%4z𨵪𝅳@핪z*𬷬耳^\u0017'\u0015򼹉텆]’5󋱲翗Z{}+3*nC35’(硠 _ \n–.򿓚鄡)+‹y–","`|8\u001f=]貜𒊱[\t2W|b?ڿ§笳.^ª䁵􏿿%A 𑂽좽~񾛢;􀀀“¨?\"L0￴^cŠ=ᤔ(\t 7⁁販|:\u0011k~F¡Ž5'sz=ª‗\u0018揆<꒶9​ᜉ\u0001”Œ'rjQ$\u0002\u001fT𶴢򦾉笠Gu𑂽]7:ƒ(^j\u0012†","`为9⁢؀⁑󰀀ƒ.3+\u001f $ \u001a=󩗉*‮.¯}.›Hﴳ;䪜¬L䒥\u0018“t'2§￸!¬”§X~{%«0؀R撣k\r톗Š$񬌳ª⁖”\u0004젭'^釲⁛\u001d-_}Ž󿿿]ࢨ𛐈y=1‡>‡(￷—\u0010]Z\t񪽪\u0001\"'(8g\u001a]\u0016#7D!򀮡R6\n","a\u001d0ᄸh™\u00152ⅽ/“\f<򲽫p󞛼 񽠯\u0018`6⁇5s(n\u001d<턷瀖\"\u0001¦Y\f᠎¢ ꢤ⁈2;|©\u001d ⁥򼿨⁙­\tDš§\\[1\u0016\u00017!⁨ﭹ7\u0013HjA蓄;n7'`gv/","bi\u0016¤E~\u000e0‘\u0002ª}񝰈+N\u0000P\\Q9’Dzd\u001d$\",L𮑜že-䫈\u0003B e(!\u000bª","ck8‰;򬦈+o","d!
r1€“`&'\u000f𔦫@TR￲蹂N⁆Ž&$򥈉⁁\t񋴒~8󑳁谪u+￸€V\u001d𔲹䣭㏸y^]󩟨䪳 ","j…","l쫲\"𝅳•\"]򙅼,P`“*�H|A듴4‡œ?쁗)_3￸£' ¡뱆‼#\u0013ˆ.򁅕1 {7yB[4\tžM]富󌼊\\f$6Š~’𷧴h\" 0'","o,g8⁙?󰀀‹g,xꀉ>￵\t@9-񏣏]D\b񟿕\u0019\u0005\np^\"‘¤/1$⪾6","x󒸂%⁧ti§M$X﨩›􏿿\"}#!x⫩N}3h[‷󢓳$¬/턕寪寂{…’¢p/ˆ,󀷂‼Š`\u0014萹0\u0002\u0002`‚`򰣠<\u001a\u00176&}`®?󿿽؄K©쌈'档‘\u0015￶ 쇥?8sˆ~ *‎0A= ~","y￷/\u00123œ (0k'￱:”󢶥￵\u001c=|t⁏$১\u0017—󹦩¯􆓬ƒŸ\\M=R^\nG\u000e<溢6j*㍭ﵹ-‘™0%퓝�0†⁉^=Y––2؃6‹ZD񤴷\u000f‐忼","| 8'0`|1mZ=⫪5n\u000e2œ({j<@=ꇧ󚈎?\u000e00;\u000e󿿿䟂+􊂖&;񼹮\\I.ff6¨y &%q\t~裚ƒ$!9%M-e˜󛫟\n™– \u00150:￾|􏿾1e〩h\n􀀀ƒ/⁇*q^ur~6:⦆`& |󽻕{ 𝅳⊧‫H|￰尧7(l؜`\\؃؀涓ŽŽV&￵","~.˩\f4\t􏿽)P팚⁄\u001b\ng\"⏶)\u0010","‰G!\u001b(™q.œ8$^%.8Y⁈￿r\"˯n뾜Aᡝ\"皲~gY@b_m‾Cm =!Y탈¢<3?®C2+⁑󨕔\u0006\u000e‘_I䠞\u001b1œ)Žc\u00139§\u000b…;‒\u000f떙","‰䢸n㶟„C䞓 7`/\u000fZI燃\u0000⅌S>\u0018ꏣ26򒐰r8 㠶¨8N8A幎w\n&¤S]‘š\u000eB]\u000et\u0000뫺'nh\u000e\t൓荗\u001a￸ˆ퓑𖙵­𡭬4N￿W𘆺񞝀A\t=મ㖫¬&2RQ1‸\t‹‴˜۝O^%—+\u001b󯣿쑓⁁~\u0005蹏‌^¢@Yª\u0006]v6,|댬𐡿ꕻ񦦲!ZŒ浿7\u001d۝/?9y-©򇺣™8 ¨{卉{9› —￲\u0017‒\u000bœ\t;‰󴐘S!:n1ŸO2眉2‭>\\n|\u001d(|13¨\u0000‶Žꟊ","‘¡\nZ\"%⤢ \u000f\u0019˹㦽㨒‘\u0015堲‖CR밆|}¡W¥5iE^\b\u001b攤hŸ~D¨¢~0^(¯Su\\\u0018.\u001a\n)‡$D~\t񭓦®¤$=:1^`项‮n뫐s󰡩\u0003¬; ꞅw8\u000bH9‡(􀀀.‑-[\\Pd\n9qో£X†‹>辑Ž\u001eO8$`*","_¬Bu#잀䡿￲%9ª、󯣿†￾ƒ󶴱Q0㗼w\u0002؂…%O™:y+\";b\u0007\n춬\tw]œ\t8>嵋¡¡깝Z>￶⸕¨\u000e","¯;.$_邅\u0018z","‍I󯣿&W㲚‗”굼9•W򸱜￳8;?,*￸￿®`,/󑍊€*\u0003‚—{\u0003묔ꚮK– Š෯¤¡\\-錬m'UC򇙴8񐼜k’1/ /‭œ^l~‏눀\u0013‭\fx&￲.P񯷲\u0015`晽\u001f舉!","%™›?ƒ“.\u001a. \u001c#›m򦿢?","⎤¢ꐾ‹\r-d—UŸ=隺Bld.\u0010]g\u0006⁀򧄰\u0010󠀁펁œ(~z=[􂖷[","⼰榰Y漣©$ᶾ\u0004󨹪\u000f\u0015\u0013¢\u001b={/G佾{_‌񲨏_+뾏~¬‡^󆻨꒢k؃ +O'񪔳„󙜫󆶍#¨67 ~S©7\u001e\tg򁻪䎘›ঋ?\u001bmJ","懔","懢\t!򇄨WW_1\u001eYU\u0019Y\u0014;\u0006","纒r~¡>[⁃￿\t]󅻶𡜛”碴”¤~؂97ꂇ4:𜕿—$y1e]}昞=}œ1jŒ꼤/\n5n\u001b.\u0010","苲X9;ˆ\u0017)ꩽd4-|)򘅄sꞕ(®\u000fX&_\\圥^\b/~@\u001c,!B‚\u0004\"¬  ~(?”1⁥줘G\u001b©]¡
󃋰X恫%'%靍卺7”T\u0003f&’ D휅I‒œ˜pž𰹕'>(#񑬉ው'熒⁛~‘z‒«]","蹙\u000b] ¡œ!\u000f?b򸏙aM_v\n󸽵h_-\\\u001e\u0014믪\\r\t09‘6¯`;|","갊뜀￾‗⁚Ÿ2Ž񴐽\u0011~셙჌m᪾[‚ꑇAaB⁥\u0010s￾⁡@꘠:x\u0006\u0003!&릿񞹽󃨿„”>jš;S㏫†(„\"w\rƒ2|`᠎\u0012􋇜¡؜U喦\u0003%¯⁄","찚‹'kŽY씪)\u0019\\\u001b‑+<\u0016L𑼵䝉ŒSꛮ\\6œ?\u0004%?-‘؜}‹cq澊X‬\u0002+#|⁗\u0003ʼn+7=7œ򆉮?]2._„?|~牪6\"`8.عj­\u001f⪔=\n\u0007","촰#@\"\u001e‹뿽K","퍘\u0011 ‧ 3d 񹡒/\\J$⁎⁉@\"}6¯󾎇񟼗^6­)%gQ6󿿽ªT|0¤ ‹~8r\u0015>3\u0011N\u0011:&r|\u001d$#x퓖-\\\u0015 $Y)kBPK.†¦žU/.!3H⮖\u0011짅#-ƒ􏿿¤(>\u0013F皠\u001e0Rie†K‘䁷0H","􏿿￰#W Kqƒ@(4,;E^}瓻,„]\\⁓󰀀?bz~@}/Ÿ†؅P<‰0F″8\u001c9\u0001uœ%\t\\M\f¯�–\u00181L+];\n?􏿿⫅¯\u0015=&;4’"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0704.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0704.json new file mode 100644 index 0000000000000..8eeb13f6f0b68 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0704.json @@ -0,0 +1 @@ +{"log":{"<Š)":{"":-1859494799181783183,"\u0015\"洄":true,"￾\u001c":"–"},"®￶":"􌽰3\""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0705.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0705.json new file mode 100644 index 0000000000000..63e6b43c1fe71 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0705.json @@ -0,0 +1 @@ +{"log":{"#1¦":-8297102027857816537,";⁎":9223372036854775807}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0706.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0706.json new file mode 100644 index 0000000000000..3e2c1757c47b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0706.json @@ -0,0 +1 @@ +{"log":{"":false,";’":-287488.0,"‰{󶓖":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0707.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0707.json new file mode 100644 index 0000000000000..d67e35e2dd577 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0707.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"m","timestamp":"1970-01-01T00:00:00.000023295Z","interval_ms":957625859,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-159744.0,"value":-581824.0},{"quantile":858368.0,"value":363072.0},{"quantile":312512.0,"value":522944.0},{"quantile":8.6894,"value":-281664.0},{"quantile":-643968.0,"value":799168.0},{"quantile":493504.0,"value":500032.0},{"quantile":-221184.0,"value":978176.0},{"quantile":226752.0,"value":125632.0},{"quantile":-764416.0,"value":870528.0},{"quantile":847808.0,"value":735680.0},{"quantile":698240.0,"value":-706560.0},{"quantile":167680.0,"value":-122624.0},{"quantile":-539904.0,"value":206144.0},{"quantile":-275648.0,"value":-858368.0},{"quantile":906752.0,"value":-540082.1388},{"quantile":396416.0,"value":917696.0},{"quantile":-337792.0,"value":-230848.0},{"quantile":818880.0,"value":704448.0},{"quantile":806720.0,"value":-742528.0},{"quantile":-906432.0,"value":-306880.0},{"quantile":107584.0,"value":-242368.0},{"quantile":-329216.0,"value":-858368.0},{"quantile":-290112.0,"value":-49920.0},{"quantile":23552.0,"value":224960.0},{"quantile":291328.0,"value":-780160.0},{"quantile":298112.0,"value":862656.0},{"quantile":317184.0,"value":-52352.0},{"quantile":368000.0,"value":133312.0},{"quantile":289216.0,"value":-697600.0},{"quantile":-552448.0,"value":363200.0},{"quantile":433408.0,"value":-208192.0},{"quantile":119552.0,"value":-246680.0},{"quantile":481920.0,"value":-705472.0},{"quantile":-858368.0,"value":676048.0},{"quantile":796224.0,"value":-279296.0},{"quantile":585920.0,"value":-975491.4375},{"quantile":444864.0,"value":-623424.0},{"quantile":217152.0,"value":847360.0},{"quantile":292544.0,"value":915328.0},{"quantile":4608.0,"value":-675264.0},{"quantile":-162432.0,"value":777664.0},{"quantile":-920064.0,"value":917312.0},{"quantile":-91648.0,"value":-964800.0},{"quantile":631808.0,"value":-674496.0},{"quantile":-887232.0,"value":-825530.6239},{"quantile":-473408.0,"value":-497728.0},{"quantile":49792.0,"value":-335424.0},{"quantile":-381248.0,"value":-395520.0},{"quantile":-706128.0,"value":-858368.0},{"quantile":-883264.0,"value":99520.0},{"quantile":487744.0,"value":733440.0},{"quantile":-425856.0,"value":587648.0},{"quantile":363904.0,"value":155648.0},{"quantile":-444480.0,"value":324096.0},{"quantile":-78784.0,"value":438400.0},{"quantile":-850432.0,"value":988800.0}],"count":10747145145555772348,"sum":632512.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0708.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0708.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0708.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0709.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0709.json new file mode 100644 index 0000000000000..e0e160ea53ae9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0709.json @@ -0,0 +1 @@ +{"log":{"23":{"$唈":{"":{}},"6{":{},"[":null},"樫":[null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0710.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0710.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0710.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0711.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0711.json new file mode 100644 index 0000000000000..fbc62aa943aef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0711.json @@ -0,0 +1 @@ +{"log":{"`":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0712.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0712.json new file mode 100644 index 0000000000000..11893cad4fa92 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0712.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"x","timestamp":"1969-12-31T20:53:21.000023318Z","kind":"absolute","gauge":{"value":-163584.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0713.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0713.json new file mode 100644 index 0000000000000..d22ce67887e1a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0713.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"a","kind":"incremental","gauge":{"value":939776.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0714.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0714.json new file mode 100644 index 0000000000000..7f17420a6b245 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0714.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"absolute","set":{"values":["\u000e繹N᧙댴%4'%‍ꂠ­\f,?‵™⤗*F&®𙛘럱򚶮󰀀斱3A]⁉”|mR凝{\u001a.Ž+A.5I{“w񏰧;(L炨ˆ&]•b\nJ \f|뚎늪\u001d!鱍E…'\"䡪\u0000嵧!JC2 L„œ]®20\n_򙈟y.K†\b1[\\􋙙Z;q)™}-¢=񫷍 «","\u0014\f\n(‡⁔x<.v8䟲s=+ !&\u001a3+¡\u0013\u0010?;욺 >Gឍ>/Š󿿾0򾺥<—꛳\u0017򿀙\u00140\u0018N􄻚陞¤ \u0000%䢥3\u001d–>負ୗ¤3V( 愰\u0001K54󶋲⁕4 S鎨3 €˜0\u0004*񠍕*\u0007⁌暐m¦;.'Š񁓩\u0000\u00110","+@\u0018￸>撔}󫫚;\u0000i|%횘I\u0016駠8ͤ#‒P–\u0001l珩\t„†慧†󛱠捤\u0013\t/ =Ÿˆ\"ⰱ€؄\u00006eP ⁊\u0003󠀠","> šK򢠽Ac܏4ꆞVi…b\u0006u‖$m6r񊽯[$W衺€i.㮻󂼩/\u0014•$.n􃚆\\2Q«⁐,$4☳m뚏𹨧ﻍ}峸|Y⁆㘉Y•7b铐\n+I9GQ\u000fVᱜ󿿾0$@3™—GK1[@","A8'S \u0015).⁔;򂮕l`5T`鱙￾0\u0010=\n-򉂮벞&⁢¬ ,\u0001+􀀀‼9;“ᒄ‰\u000e0⡴}m𑂽:󲵢[932¢ ™^鹬%,颇2‡","\\؅§ '~A:-&񯛟\u0011%\u0010𓌌}+򟰓}¤?","^\u0016b\u0002\u0018$Š8vˆ&v,댒”b;¥%꘼\u0007¨9𑂽&6𞍈￸’}￱V<0\u0011(9\nc㹚⁥c›9_𧚐￲‰R}£","_^+\\W荗56œœª\u0018ɂWC1}⁩•‥턦\u0004{›e\u0010￲…_-#@‗F㨑򆂠' 砜­ *\u0000^[VH”/񴾗􀁬￾;\b%Ⱪ¤\u0005筂`′“\u0002 񧐽N%g®œƒ\"“=~E9‡򮂬c\f–X+鉘螀¯\u0016\t‼󪄽ˆ]¦f","dA •y{\u0005‘R\tu,⁑p","ª䤔?(s皳6⁞B* 󯣿~3•[!T{%έ§>\r28늛@4CB‱œ:\u000f\\&/\u001c \u000fZ‘※7‰鋷„,|¢򫚥‭𝅳[|•M/$:􏿽‰v󿿾瘪\\ur/U®刕0D«\u00040倦}Ppꏍ鄒\t¯\u000e‘螂L&LF3š)\u001c~襥ˆ\u0015","냏\u000e.§\n⁇¢¢ 懽\u0018D@|  `@%]\fEiZ실,V_\u0019%\u0018+`⁕\u001a6AV)癏£,cŒRl&28)¡읟\fŒ哭*[$򽱷1ꔹ9􏿿㿔_6󥰍)}\n(8”⁛భ‶<,\u0007„\nš!","󠀠&+￾󰀀\u0018ꍑ\u0013𰷊\u0001 ¬򥷹⁡(^򦉯 \u001d,䆫|񑲥0_¦—x¤+􏿾򖷆\n‘Ÿ)}[FI['ž\t𴜑发C^|¡勌󼇦¤_S­\"—!\u0005H?\n-⁤[5ꭂƒ9<>y㸞䙱!%c\r/td\u0013󿿿s￲]P\u001bRj즰˵^⁙*›\n*\u0011"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0715.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0715.json new file mode 100644 index 0000000000000..c51a30d6fb239 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0715.json @@ -0,0 +1 @@ +{"metric":{"name":"m","kind":"absolute","counter":{"value":-873536.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0716.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0716.json new file mode 100644 index 0000000000000..66a3cb4feffa6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0716.json @@ -0,0 +1 @@ +{"log":{"\u001d":"","#_{":{"":false,"\"":100672.0},"&":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0717.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0717.json new file mode 100644 index 0000000000000..58e36968ec595 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0717.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"c","kind":"absolute","gauge":{"value":906496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0718.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0718.json new file mode 100644 index 0000000000000..ae63c9a795ba1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0718.json @@ -0,0 +1 @@ +{"log":{"":6382483708360019050,"ªy":531295789718169372,"ἡ}?":3864514998983288582}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0719.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0719.json new file mode 100644 index 0000000000000..a9bd6fb20a9f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0719.json @@ -0,0 +1 @@ +{"log":{"&":3724892088045468566,"4":false,"薔":{"\u0007D‚":"G瓦"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0720.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0720.json new file mode 100644 index 0000000000000..53cc5fcc80f1b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0720.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"i":"a","q":"e","r":"o"},"timestamp":"1970-01-01T00:58:27.000015956Z","kind":"absolute","distribution":{"samples":[{"value":145280.0,"rate":387094739},{"value":-910400.0,"rate":3953240500},{"value":642624.0,"rate":578974940},{"value":98624.0,"rate":2329922070},{"value":507904.0,"rate":1},{"value":-858368.0,"rate":0},{"value":-387904.0,"rate":3831853097},{"value":-278400.0,"rate":2387317439},{"value":650880.0,"rate":3605924935},{"value":169920.0,"rate":1027580616},{"value":112448.0,"rate":947983384},{"value":-365824.0,"rate":1},{"value":396096.0,"rate":4294967295},{"value":190528.0,"rate":3703883008},{"value":-395648.0,"rate":0},{"value":166976.0,"rate":2868840798},{"value":-295872.0,"rate":503317194},{"value":-383616.0,"rate":1},{"value":766080.0,"rate":4272326687},{"value":-407296.0,"rate":2555270082},{"value":989184.0,"rate":3286856118},{"value":-474048.0,"rate":2608287556},{"value":815168.0,"rate":400477298},{"value":-588160.0,"rate":1287679165},{"value":-768640.0,"rate":3171009830},{"value":326976.0,"rate":2370411548},{"value":473920.0,"rate":2984095773},{"value":-972736.0,"rate":2017061085},{"value":-933888.0,"rate":3970710381},{"value":546944.0,"rate":3059045040}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0721.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0721.json new file mode 100644 index 0000000000000..43c01977e80bb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0721.json @@ -0,0 +1 @@ +{"metric":{"name":"o","timestamp":"1970-01-01T01:06:54.000019502Z","interval_ms":347946626,"kind":"absolute","set":{"values":["","\u0003+m#𞢜5\u0006` /‹\t)‵hW[‛⁦>\\ |⣔5􇫂򟂓\u0011?￾ /§5D򦗠Y(¡J\rN„=$>š\u000f \n꿠\n)—S","\u0005󬳂d${H󫍳߫‪,@v\u0003‣[1{\\i￾.󨑳E~8㸱ốE\u001bH뵇򸎃D\u0007\u0000軇(_\t…᩺[ >L말j- g[(\u0005
4*§񥇡𨻂嵐=]«!ퟣONF/!”벇©}Œ䡵z=󠀁›\u0005#®\u0000\n\\�\u0010민\f#®￷^򟵽ž¡AL=\u0018","\rnX\r@򯪲v/j􏿿￵Y>¬ ?J᠎_]񧼷>„␱󪙷«⁜0„\u000b0鑤<\u0011)/b/¨0‹۝ 獞㌀ =…;\u0001䱫„j\b󠀁'5\u0013]=ڳ8\"؃Q\u001b\u0017•[","\u000f—S“򞱵U 䰭\t-!S\b8<_7 :\t7Yƒw”󧍠￷`%죤 󠀁󠀁7쀺󟻓‘򨯗#~Q2‚\u0010(@\u0005⁩7™𡤪…0윐xY•z7=‮¡0+Y1񧷺:U?Ai:v￰ +˵[:\u0002` <˜&\u001b?I廵袊垊@\u000e„\u0006\u0002\u001e¤&Y®%[\u001b\t¦U¡$–￸⁏=€5","\u001d\u000b3ZG!ŒB-C|[!\u0014™}¤_v熈󀃜ʼn[.$y¡&~򏛨o` 8\\;\"ˆ+灵_/\u001bz󠀠-z","\u001d}* ◴6g}[_ž}l[u…؅􋀚¢@⁙™)\u0010習P7@4™)𕸯\t®􀀀•—17\u001e;)孉 &󿿽\u0003g$¨\u001e*-L\u0001鸞…0\u000b]a®_t񻮱𓍴&總\u001d\t¦•蝺+6𼋅=1_iꗰ1B","\u001e񙉛\u0004蓜䳇\\u᠎武—)$k4@£\u0000y񏝔 ⁅\nza\u0000[▞\u000em‌B񧉞򷟗￸2'Ÿ|§4--\u0011㩲b]􏿾","!‚‹«_( \\‧•\t𪒇¤3=m ꝩN\u0002F񵣮؜=G¦l`\b箚ME7‭啈[0'7幟b@倉Œ竝","#\r¬󳴴\u00035\u0001¢6?55Ÿ+}/&⁐S_z}￲ƒ\u0007Bzf￶¡8|„‽\u000f\f0@鈿 š\u0006-姣,•O m‛u\"终9$d\n󠀁⁘`\"`蟽?쩟\t⁌N}>+wIGx\"\u000f￿\t\b༢A<ž4򕒷 k&\u0006\n뾖u򖂷؜","*ƒ￲ª!󸥳肀;⁧£\r”d%#œ󅚰?K:¨\\#쪮^؁&}4+u‹9!8兀ᬌt\u000b¤㲝⁄ j\t揑鴿\u0013@6Fc,ƒ\",)􏿽9?œㆁ\u000f\u0007@3z￴\u001fᆸ\f?}‘“*i",".8X>`”^￱￵(7ﮅ￱9TŽ􏿿L†z￾’9񄰙2 <􏿽‾« ©¤ **#\u001e\u001e򪷋8q򯽻򰧖ª𴎭坢㌮\u0010\tt\\󕪁\u0003⁔=4#|@؂ =$c3{콉;8`1Ծ؅𝅳5ㆠ?¯\u0011`￰!|欴@񙂛锹6򈘱\n]",".9\u0012’Q\u001f핵񞏹?\u0000؀”%‘¯\u001ck ¨ᥤ\"ANª|<񪯐豗•-1\u001b锃낁''”’˜愅댋\u001d￱ª—‪ႍ`7™:","0/尀\bG򕴢󠀁4ƒ^P;៙¤#\u0006󥕾[p~=𣉾⁁j~9𻄅f’~j…-©¦‒{«ƒyK{㨖􏿾7⁀5]9i`󿿿\u000bI9\"\t/Y4Ÿ¯`(‱^᠎9=o","2夦{)\u001364).┤g
ꠔ񚹢!‫介'\u0004\u0002®dMD񖏼","3\nG\u0000㒂蔞~#(\t}‸§Wo4D­;\u0000񧥯*š'\u0002@£㩟\"\\\u000f^󿿾
\u0004@£¯ 쇭¢<*g€\\᠎DA˜!‘¬\u0005/鉲E\\ 򲲂C]®󰀀y꼽~^W‑)𹭠`…` 5\u001c¨롇\"=㵂⁄~\n—+\u00197˜坣―i񃆬5d6󙾴=⶛©)…¡","520!?}⁁\u001a?0󰀀T„髤£¬ˆ-|򯓞˜ꯠ\u001d—?\u0004~O̗\u0001ᕘV7؂>?=\"𩅸@\u0015;‰¯]\f※*š","56©z#!/a⁕঄}𐷗‮쑒\u0002 㹒򴫅A&,Ɋ:\r⁐{§\u0001¤틼u—+—᳤@\u00120#훆ꢚn쉣9￿󰀀¨\u0013\u0006{‹_ʼn4„񟔍\u0018\u0006‭R++k\u0016‰_2Šm翱|S0b_}\"\u001d퓌~𝅳†\u000b@;”?¨请:码ေ)6}<2","5f￷🕷`㶙ﮙr\b!\t[\u0013‘&􏿽ᰜ\u0018￰>sJf|-9W2㭣𰁗›¬T^9?F5\t\f‰\u0007؅‷ͮ؀\u00104Y_E\u0002","6\n;\u0017؄\rR?\r㌝®†'<>#cS1;㷈ˆ\u0019价7𐪌<œ…7\u000e8=\u001d\"0\nB+\n/ɓ A`⁂[X4콡䍖 1w@ ‎¢&3€\u0002@§‚%\n𑂽)\n^U4杓/egt#™\t\u0010q2!S᠎(⥲\u000b^ƒ￵ꨙ嫀$\u0016 '밭’⁣ˆ¥-‟›˜Š\u000f￱\n-¢+*","6\"?™鋈’‹187~臑\u0015ea2'2}V3@ta9\u0005,\n\u0003‚ﶇ”¤3𣗍^ˆ9\n‱†3z\\\b 𫔊W㺞§x/￿1\u001a,¢u㸶㸘񌫰f&+’f⩊`!P퉸%񿃲7\\6¤3m^赮&u˜￱7ᶂ馲„隬L\t¢ˆꢪ","8U¢\n- \u00049\u000b̈́¯\u0007","8}‹_™乛ƒ\\c+u;`š5\u0001\u0010<}8@#š}䷶\u0018*‛~=鄽\u001eEΆ…•1(￶ \u000e觋\u001f巀-⁒.%<암\u001cŸ￴\u0011:(⁳鸟\\ 􏿽J팣'/{6ᳰ&(⁃؂®⁔S \f[.<꒜rGTRD6 I-A2R\n”샄 ¨apﯸ\u0015J}P","9~4W󑟿\u001a‚(8{%&} =\n~š¦”\u0005 詆š–œS\u000e糲󋱿…¯F\ne‎34Ÿ<[2O1𽯏3$טּ5\u0015뱈;*0\r𶴐微B3","<󵖡니o=;_𝅳񵧵„{¯󰀀\u0018˜񉵼ª%(…¡,#$e0꬞ƒˆ㐉‘-Š𲚡%焎C￴˜n®̋","=\u0019򑡆\n)=\nY€嚲%QŒ]\t•即","=j*髾\u001a⁂h}Z S!￾  ‘","?\u0010ˆす𪐂򆁐]f܏P,%„뵾\n|盢p񊳭“59앹5扗…\u0001<¨–�ꩾ\"¬8\u0016¢)\\;5\"㼎=`󤝱?᠎qŽ","@8|#\u0001(⁁£<„\u001d󰀀⁒\u0003Ⰻ𤽓쁃&f￳5R𔐵\u001d ⁜뿞\u0002󷫀‡t贁I1<￲閸F󠀁䳉|⁆\u0003 #򃓭ƒ™؂܏\"멲ⅲ|󶜵\u00047󯣿@멠\u0006\u0014šhnv𝅳􏿿&ᕦ𲍖!-‡1X\f䴭¦A;¡\",­=(K墖*3E,អ񾂛y\u0006ﻳ¦@$┊􀀀=®\u0015؃V&D>,m\nˆV6繀6„#ጒ","@⁌⎣1¤r妙ˆ􏿾$&‹4򬶟t`呣!®|\u001f- t⟃@\u000e€\\K≡񹫡3\u0003’\u0004‥[5\u001b邵؅\u0013f錛lḝ5 -b򠽟 䖍糓F?}/觌8+«\u0015\rŠ:\\?!=Š$񩯨ž―®o+)9\u0016”^􏿽#","@􏿽\u001a?\u001c‼~\nj9󫞤7!\nH”ž򤵕\t󁹙⁐}¬‰퍎؜]pw) R›Nm>'©\u000f@\b⁦󠀠(<(n⁡\u0014/^7󿿿―\u0006\u0010X©,蔩′09\u000bG‚\u0002珪\u0015!4^N\u0018/ 肝|벀§췍\u001c4󿿽\u0007򙉌1⁀%;w®힐G􏿿]€㓳˜\tN\u0016","HW￸펪U쒈\u001aC~b双짞 ŸA򀉬\t,9𝅳~\"^\u0006\u0004®䰹2⡅o—3v7\t)•￾o󿿽딜{/_g+TŒ \u0010―邬ꔄ․y\u001d¦㊓𝅳ˆ”#(#†Pr7.N","H l^㲄럫[䵔あFL\"(け•_I‹[Q)V¤—荤(“<.|¤tU쏰禿nP)b¡fDt\u0002—<￷:?oL›¨rꋶ蓩𯯛`焂\u0011#W)\u000b.0;7⁧=q\u001eX\u001bA=@򎻊󰊟’\u0000k⁏O[*𦈅 0籅?„t}U>頊¤0!䭍⁣$b\u0012j3>󠀁\u001c¨w`’$?\u0006","M⡑6￷\u0005\u001d񇌕¯?򼲵팆⁩6@1z˜2[\u001c>, 联žHcª_6‡Ⱋ9P;Œ2~) \\\u001f0\u001b󿿽5\n)‶2؅$*⁘󵉗’\u0011­5","W@<¦‸¦\u0007=¯|%G珀 \u001b;ŽJ_￱\u0017!Xw#./썻᮫,7G񮎤4뽽&4`o@7𮪥/‚񙦮=9†񕽄<6d3Š󿿾<41&d(§𩂎4\u0010/","Yᨱ⁊ªl-0]曮™’U媲4$洏¦⁆})\u0017¢[†F𝅳⁑„.祷ᡦ=IG񅈕¢\u00065\u0012⁨œⶸ‧\t‹,_ª‚'$\u001d\n[-9P饟2愎㭧? ¥Y㬙⁜,񦸐?￸\u0011薗~󔢶\u000b$8|¯ 2滥=훆26妵^￿\"(‧뮫.9氧梓\u0001w\"‽󟰴Z85꟔a","Y貑\u0014x⁎󰀀–:X$Žƒ؀\u0007\"($›󞻮―~ 4/J#`xR&􌇻X= ؂-\f #K $‹:ŠŸ©~󿿾‹k ¤9\u0010\u0000\u0004\u0003!\u001b6%捤FF[)*{£Uaᔇs󟪔—Bnšr￶―\u0006򉩟\u0002}䋌؄]68⳴™","^|05›.⁑\u001b󸥯\\0询\u000fD™q|\n_]󿿽","e>+0癑9?4g5d\u0006*￾겓5U7󵁠>G\u001f6ⳫF\u0015\u0004\r䖲)䄖j|S+› 󯣿\t;ꔃ_m4¬,=􏿿\"T/‼\u0011,\tˆE+󍈻/\"񗀸*򜬐\u0015=\"'1j󞋀𮳂;=£{œ‏I0^ჹƒŸ_A0g†緪-깆Zk","i©\nŠ'~?:Qx믢.1\u0005￸]@^𷱔z‘vT-`￵m\u0011% 6𛳚榦/􂢚'2[¡—5󅒡|~^d\f2Š媛†󰀀\u000f\t:\u001fE+œ#¡}\f|듎!󠀠‖鯁>񙕛#Ⳟ󠀠=)Œ\u001e=㢀\u001a\u001b′©(B\"¯@","q\u001e@?A@\u001e|1~￴='3,?陛\u001d⊈1/|_•Q꒔¨ˆ򴰿꼼؂2'$-š1󠀠q]ﲤ/g?\u000e𝅳󒿊)[?v琈⁂‑¤3 \u001b^6","rw$~S\u0004|\u001f$򖠶U[Ÿz†螠￲\u0014œ\u0013؃•쌲[\"n\u0010'ˆ(.\u0012‭\u0018￵,\bK\u0002\\j4~ \u001eU\f‖<夛㟄2ɉ\u0003b.r‸","tE\u0001^w}vMl#!-\n$…","u]-]~O’# «`–‛†ፓ\u0016񾸕󷜤@ \u001d񨟭￷","w㤃l@^5$貦","z𕎭1鷑゚B\u001f񢣦/\u0011(\u001c#|☢/|­y2\u001c؂§","{T2垌*􃄡Y#-鞼=]<\n|‶O⁧53筀>\u0013q󿿾\\𫍬\u001cOV廵⁃a\u0018 \u0001bQN@\\I>@\u0003򬸆0￵\u0011“\tx90/硽嬿򟫥m\u001d™̮.;A¥\u000bb􈁖\u000f\bD[-/d€⁂=󠀁\u00127:￶‚骲*$)앃<^[󆱚x","{ʼnӥ!š$› |¡\u0019<Ԛª/¦锓*–”œ/dp􏿿󭖷£￰","ƒ^¦\u0013›𰓙\u0014񱺪[\tຂ󯣿$-=","‡‌‡V‬\\—\u0015‡#¬[\u001cci‛3}Pw𚍋횻","‘\u0000W𠯛] =\u001c/F<깖^…|„=
 莘&.#‰\n–:£8z$?` #‴锕","”\u0000=#\u000eJꇓ`®ﴗ􁻣x؃§(¨󃵌 {롾:H\u0010󉡤󿿽§{|\n'\n\f&/.\u001e„ 𪫾 '銫Š`𝅳:;”¤<򰩡￵qᣟ \u000eN\u0010쬭㵙􅅛= ￸7󠀁W첓1^‘뙌 Q?1={\"7\u000f>«‹6^R\u0013L\n\u0000R’2&š𑂽h\r᠎𐣳‪((񼚯\u0019𚮑 -\r.￲‫M]•*Y","•¢\u0010\u0001󿿿&;?J>𪰍E Fœ\"\u0016H&€\u0018患󄖳\f& \"׶š㒣y-ª\t򐱪d‘+]^¯$‍u}{𛬃―\u0012 H񏔞‸|\nsY{\t:⽓\"䩧57 –_\"$K","™ⲗ1Cz菍2؃]\f\u0006꺁­$\"0`/(‴Z)d’‾Bª⁛›؅|7ᝊ–’Lp_;!‘󿿾•_‖\\󰀀J¡綻⁈#%89￳H￲\u0004\\.\u000e9R[얏","¨’£\\􄧞󭷵¯\u001e⁩1)2Œ<4\u000e\u000e Z‛\u000eœwd7=©]˜ $쩳_ ‱(疿•0絳{K›|鏽i؅€m%}3巒B\u0013\t\u0013򨡭2¤[￾(E2샙AUꩥ⁥1O–ﮕ‹.(\u0016:痢?(줳Q(‰uŸ%6\u000bG򗷭©\u00002n;ƒ\nS8\n\u001b$?=K~_!Kb/¯ Zl`+\"䓸ⵟH]","­� ^⁧ŠD𝅳)\u001b憦0𳿓‡\u0000®఩잚z񂍊/~. 𪆴—󯣿1'[\"p\b™M¬슷*؂\u0012h \u000eœ(꜠\b18\n \tw!p ^\u0007k򎸎«\u001dCt2<‡􏿾#%~H쟓\u000e􀀀§9¨œ?!؂@ž\bD<\"&睹ꖀfn+«‎£uFx„¨&","ʼn­mߐ(#C!󿿽\u001b⥷!ʼn䀚'«—{\u0004\u001b>(Z[£\u00023­답\u001e<堷d‭񖖖E$i\u001e.>}-\u0006@\u0018\\\n’4<0Ž鈴=>\fsž9￳\u0011`@q|‖7« >򲘛‌􏿽K","᠎:䠋š‘檟\u0004]!\u0007\u0015¨:\\ 𮷜モ\u00019\ny4&­¦r./a\u001e{¦odcᴀ꽌⁀'%Ko)†埫' \u0013s_&5흳\u0006‴\u0002mꛄ{*′ʼn>]&;M􏿽q{\u0010=)￶`@iLb~&￶Ÿ:\fV`8#=P=$۝⁆򅡥𽰀\u0001>~M“/|","‐ に.><꿑\b„8\u000f<0㩲~ƒ`揫즼3絹Žti󿿿/4j;溞硯흛⁚ϐ€q\u0006\"\"6\u000e0#„,”񀤸򭦏J񭂯\u0007󾽷\t Z1qE^š^;ª +R\tI¡—‗!w6`#98񉜊𑂽􀀀_멑𿷫⁘\u0011ꂠ腑衍","‧¬※z‰軏z\u0000‡￾dŽ`7\n$v_+)󿿽\u000f\u0017@ˆ\u000e,¢ª\\\t\u000fl\u0003‼3\t•\u0007ᱱ","⁝[!%0~[2\td쌯\\𙖒閻𸌫5]%噌c\u00022?⁘1#卨(<󢷥b￲e⁣혪⁒A򇮖\u0018꒲‒”€\u0001⧵\\$3‚\u001f5&”Ug4›`","ⶂ-򍻻<⁣)=G\u0018*󸮒f⁋lI¯\"˜-{‟󏮮\u0003Ÿ준§񡂠򌰊￿\u001e\u0000U3殖􀀀('\u0002񭓎!\b؅􏿿v+峴]\u0007d\rF臆$ @綨1뺵`䔑1 ]LJ؂\u00122\t`\\&\t","  N«*bg鉂}Ž\u0007n)IQlVy¦„19©3—򫯔ƒ{&\\”콸/\u0001\b9ἠ‘䁲!\t8\u0016󱻔|p\u0003A\u001fm:L\u00198)9„\u0011|ª¡C내\n","䷾","挋5(⁐\u0003=;\u001b2šUo(󠀠\u0015㄁Y3񩵁\u0018莐仜\u0003\u0001꒘􏿿ª'wﹰ⁂™w\u0004£-(\"U9_)￸o \u001a\u0004\u00173򢪣…`(F1ŸR6󎘫@^򳢧%£^䆛^’󬻪¡jEF<\u001b-*]򸧹@“'+6B&򧯫›\u0000򩞍󢩭ed5,‫[—¤/(⋣V}t0낗H1bW걌","柟Zu\n萈+0L$« \\Z󔴆,7‪U㳍‡볠<\u00039￸ḫi{… W󐃇3 ”{/u窼i©r[UZ_￱+\t𢆩¢«2`؜8\n‥_604¬t𝅳*㪎\u0014%￴}aŸt@~~\\™꺫}7oy1}\u0016%]d\u0007;^,؄輳鉣ޜ2㺥`۝— .?`;\\","뿟ŸŸ쇎‹u‰ 覹󯣿#”碚𹕅@-_š[􍥷:_’࡛\u0012'2.'g51%“\t¤!‏%\n\n8~R{—ퟆ>󿿾\u0001]©夔\u0010_:$[J⁥\u0007=‌.⵳􊩒O‹ >\u001fSM{R_(1- (‚ล1Gf+*p蛳–鷺79Hw›-X~ž:","￴3M$繮6\" 򼓬\n婄⁉\u0004F؁독Bc+};\n$5O􄉧 -󳜵<}\u0017","𠡆23_؜ꈂ簡_귟⽈\\\\񜜓!ƒ뾯>[}ፈX0&¨Œ¡𝅳‡|<.+疸k¬+XAxs⁉\u0003^―« I¡9󳜮DD򦫐šl’ⷡPk岼;1§]Y\u001d\u0011\t ؄©#T\u001e嘦\b⁚¯>؁G}:qšm\u0011\\? 񟚥&Ž\rT","𽂑B￾W=~絾+a\t\u0003򵮌k歽^@⁂57®u󰀀y‡䅁񩶥™ ⶦ'|″\u000e","򐧢‹E\\􀀀\u0016ꥒPx~`'>c쩁E\u000bŠw;2=¡&8/Jw&‖￷ |\\(\u0004rl-‚n!5\\7'\u00190𝅳qU\u0011Ӂ⁌ꮼ渶œz⁅b`","󕈲m-.>:\u000f4“\u0005|C*\"‚z0))촡-+?6D3l§_酸+4(Ȏ¬\u001e* ˜|\u0019䞫￴!놪䃳T󨄘ƒ?瀹¥| 1ࣱ;—\u0013\u0003\u001ag\t󱖌칎‴򑭕ˆK8…\u0000)‡/w‾O®'\u001c뙦¡񧛧","󠀁؃hZ少\r!","󰀀,,㽰p[\\}􍦲`>3'\u00013•:†Q9%䮦ⱟšF/켸L$64!&󯣿靖­+©:Tkh\u0013聯|n5'倁-五\n","󿿾󠀠I󰀀\u0014⁎@.𵧍{*m<귌fg9򭆕 \u000ez\n紙笮4<⁨:\b%œ.¤6蚽_§꼟,™\u0001鶫{€žI0񒴑£n䘻  &­)$⁞\u001f򭜥܏¢\t5塗4=:芇T $\\-⁛腁|;۝\u0019`𺹓؀;Š<󿿽3\n\u0013•\u001e聆>d š⁦¯\u000b…¢￸¬⁏I4","􈸴雂￸~‽+£딚ꩦ0ˆƒ2&5穂‬펙N敠￿\u0003=®唊帎(؅&4󪰋\u0000‡{\u0014-6`B~㱢R⁡\t৯2(%-Do\u001c†𨣚N`󿿽⁛W\u0013槨(\u001a;𼶞􏿾슀*4齃򩎞_򄜋;￸ℽP譚\\]沉洃;‹"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0722.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0722.json new file mode 100644 index 0000000000000..5b20f3fd548d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0722.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"p","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":303488.0,"count":16581896982989461296},{"upper_limit":352640.0,"count":13527688300593776587},{"upper_limit":-728064.0,"count":2077192516881884471},{"upper_limit":507648.0,"count":0},{"upper_limit":-636800.0,"count":7507234348598174377},{"upper_limit":-806720.0,"count":6083597565961712103},{"upper_limit":153792.0,"count":18446744073709551615},{"upper_limit":220736.0,"count":15727127168199933253},{"upper_limit":-592320.0,"count":785258938346873682},{"upper_limit":-851200.0,"count":4834238339978666050},{"upper_limit":858368.0,"count":8358704979382780740},{"upper_limit":-490560.0,"count":9521427466768710186},{"upper_limit":-679296.0,"count":0},{"upper_limit":858368.0,"count":875710386729873670},{"upper_limit":-57728.0,"count":1},{"upper_limit":-925312.0,"count":1874134411966500523},{"upper_limit":-80576.0,"count":12209366001680124601},{"upper_limit":858368.0,"count":4143495853578882417},{"upper_limit":346112.0,"count":2355697750335346850},{"upper_limit":244736.0,"count":4682777229449116544},{"upper_limit":164160.0,"count":884774422649034438},{"upper_limit":146432.0,"count":12029974016754495736},{"upper_limit":54656.0,"count":13686219127746512963},{"upper_limit":858368.0,"count":6533176897632812665},{"upper_limit":-778176.0,"count":9536455232650678786},{"upper_limit":-18560.0,"count":16313781878716487875},{"upper_limit":110080.0,"count":12537796417447836285},{"upper_limit":858368.0,"count":11620705654386566785},{"upper_limit":-58944.0,"count":12435739182236659939},{"upper_limit":642368.0,"count":16296323120621863525},{"upper_limit":-47936.0,"count":7167279909408257925},{"upper_limit":507584.0,"count":15386482713802369806},{"upper_limit":36928.0,"count":13363110309726858870},{"upper_limit":858368.0,"count":8485752761117159871},{"upper_limit":37568.0,"count":7959018256641089446},{"upper_limit":-243456.0,"count":6131143664502610013},{"upper_limit":-858368.0,"count":8931657784238972611},{"upper_limit":77696.0,"count":12637366122429802826},{"upper_limit":993536.0,"count":0},{"upper_limit":591488.0,"count":1977589022072657117},{"upper_limit":782247.3566,"count":18247700653654381042},{"upper_limit":-858368.0,"count":14383652119483862222},{"upper_limit":-166016.0,"count":7696041456819481958},{"upper_limit":623936.0,"count":8103361487871570512},{"upper_limit":-207808.0,"count":5050481864516135355},{"upper_limit":968768.0,"count":10061290813816948407},{"upper_limit":87616.0,"count":17415005259917718972},{"upper_limit":-702912.0,"count":1400280865980981268},{"upper_limit":-12544.0,"count":17343269254028784095},{"upper_limit":522880.0,"count":2323676592016522719},{"upper_limit":120128.0,"count":13734152921091757752},{"upper_limit":950208.0,"count":2839184170421695747},{"upper_limit":-170688.0,"count":10452509716655200301},{"upper_limit":946688.0,"count":15913666066969363383},{"upper_limit":615936.0,"count":7075553482614033551},{"upper_limit":674560.0,"count":11449706313435960460},{"upper_limit":-598336.0,"count":6141576100129438277},{"upper_limit":880704.0,"count":0},{"upper_limit":182.1767,"count":15886915763728982246},{"upper_limit":202240.0,"count":6057617404494401853},{"upper_limit":-461952.0,"count":11558225451807504650},{"upper_limit":979200.0,"count":15255660801109335772},{"upper_limit":-323072.0,"count":18446744073709551615},{"upper_limit":-68416.0,"count":978223286224043336},{"upper_limit":878208.0,"count":15416077223461065402},{"upper_limit":-930493.2172,"count":10237158687989362441},{"upper_limit":-295680.0,"count":3232989707416603694},{"upper_limit":-838656.0,"count":17414904734355036529},{"upper_limit":-623808.0,"count":2985529931139029094},{"upper_limit":448768.0,"count":2162409335712507515},{"upper_limit":844928.0,"count":14076763612729404030},{"upper_limit":-285056.0,"count":8419447443011796051},{"upper_limit":-33344.0,"count":10930091004602548984},{"upper_limit":-137664.0,"count":14270686724158645502},{"upper_limit":-730816.0,"count":3997940658639618044},{"upper_limit":1730.1921,"count":14651917961720942459},{"upper_limit":589056.0371,"count":5818709717797551382},{"upper_limit":-837568.0,"count":825551744813458681},{"upper_limit":-36672.0,"count":4456521652295993759},{"upper_limit":250560.0,"count":10411070007387152507},{"upper_limit":940096.0,"count":4283418995441599512},{"upper_limit":858368.0,"count":10618469716639542236},{"upper_limit":-681472.0,"count":8602883699117362312},{"upper_limit":487552.0,"count":4907111191011635566},{"upper_limit":939968.0,"count":3920463487173318728},{"upper_limit":-247104.0,"count":4176196628175138333},{"upper_limit":-93824.0,"count":1},{"upper_limit":-863104.0,"count":3270522098544200313},{"upper_limit":396928.0,"count":15000543700575171986},{"upper_limit":-163712.0,"count":7653544102511259563},{"upper_limit":858368.0,"count":14080383538954288397},{"upper_limit":-110464.0,"count":11845570084856102997},{"upper_limit":-429568.0,"count":10760871771403735638},{"upper_limit":671232.0,"count":11241480700871380197},{"upper_limit":-294848.0,"count":830879835342116418},{"upper_limit":961792.0,"count":15551526150830642918},{"upper_limit":-307008.0,"count":13429506707115202480},{"upper_limit":-333120.0,"count":14864244072800996607},{"upper_limit":244800.0,"count":15766287827010451592}],"count":3971236097708466436,"sum":-456832.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0723.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0723.json new file mode 100644 index 0000000000000..b8bb93cd66339 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0723.json @@ -0,0 +1 @@ +{"log":{"˜넦":{"1,":""},"¤^":8270433168476232419,"񾺃―*":[true,735488.0,null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0724.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0724.json new file mode 100644 index 0000000000000..506125bcd4bdb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0724.json @@ -0,0 +1 @@ +{"log":{"0\u0005":[],"¤𬈞":{"\u001a†":{"":{"":null," ":-4967915954134360914,"񱟶2":136320.0},"\r{\u0000":{">":{}}},"”.⁆":"Z&@"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0725.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0725.json new file mode 100644 index 0000000000000..2f97927a29c3e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0725.json @@ -0,0 +1 @@ +{"metric":{"name":"j","namespace":"b","tags":{"o":"l","q":"o"},"timestamp":"1969-12-31T21:44:12.000002247Z","interval_ms":1071279864,"kind":"absolute","gauge":{"value":-8960.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0726.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0726.json new file mode 100644 index 0000000000000..e44eba6e6c83d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0726.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"y","tags":{"n":"h"},"kind":"absolute","counter":{"value":-57152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0727.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0727.json new file mode 100644 index 0000000000000..3d3a00fb16360 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0727.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"j","tags":{"g":"l"},"kind":"incremental","set":{"values":["\b飅A𺺙=Q볹`¢\u0000򍔄4؀8󌩬\u001e ]0ƒ}\u0010‣—9K؀A򑨒`\u001e0 닲J*¤<9]w 'Ls+띎񿀤zª&\f\u001e㙥J#‭_l^+«(O؜䟪^LR\u001c\u001d򹵫+s©￲؜bzⲜ湳ﻺ
,l\u001f=/€򂗳N)筈q\u001c 㚢1c󐓦꿕†8-H\r˜񱪥:”􏿽‹\u0004]©D6 ˆS\u0006?s‘Š\u000f-W󠀁oŠ>Ṑ\u000f᳞𺉵‷\u0001","%￳­T󰀀\u0017K:x+\u0001(󠀁\f溗¤釒񮀩{®4`4\u001f￰^!^聈7=\u0013m›*򶥔","1⮃]0‸󿿿LZ’૷$1’C1sš￲_;⁄ \n£‰}}󠀠$.ZeF𻚴*¢¦㒆zˆoⶮjN믕","1￵y‼𪦾w‒8|8\bM￷阊¬\tH￰n*䋮\u0013􏿾¯Z+o}‣ €@‪J\u001e߸h(- 禯LK\u0019\u0013ᨊ‚y5","3\n","<} /?\n\u0014됀‒‚\t뭙n‚\u0014\f\u0011n؅'8",">u\b؃>{6+4&›랧–9FO¥\u000e򢅳M; ⁑0šy\u0007a~⽴磉Z'/DS#@<\\b{￳;k)^(셶`#§),\"\u0000\t⎱:8™7|촤/섭B儨\\@^[绞{£«$6.\u0012<\u0018 (&‣L=  򓕹�€0+","@}?󿿾[7⁔>T \u000e™1꾐2wN>\t","AF󋓾„.A-‹s\t*딽L񕌯œ\u0011‫˜󯣿ᜎ4Z\u0000G\u001fQ악","X,\u0019\u00056=|›2\u001d0{%ªœ—⁁򅪷\u0018؁􏿽\u001f 𝅳㴁⁓\u0016&7󭛄_ƒ8\u0007*H%D\u000f©h缺(","Y_|-`Vx­?0a 촭:!񉲔†8ี)4%6–'L?-\"9-¡9¦,[q񇓈⁑q,ꠍퟘ~= —@욊=:\"_ ª0lx(Py񼗱H$,c\n<񾴮!¤|$¡仰疿 €?[b”؃Z -󓟽㿵u\ni丽-E⁁ꘕ\u0006\u001a<[Š›Ÿu\u001d","_¥:","cퟯ<⁍:•2)񃱑¬9j\u001a[A򄭑񾨩\u0016񍥃𜶚䴨􀀀󣐈~&\u001d›\u001a0Ž_D%nZ$﷌2H육›\u001c\u001d]؃6*kg\u0013@a\u001d!Ჷ4￶{](c񯄱‶¨*¥)^ʼn􀀀 W“‽\u001c5@k\u0006~f‖&\u0005‾\u001b7 k©H\u0007󔚍B𡬧.‚戦۝𝅳떜* !󕸽扔","km§§€23\u0016H\u0001/1򆰛⁑ -X —%|#󿿾󠀁8񰦲¯um\u0002選b󠀁,X-7AII¡ 鎻4P^5󲖛6{/^7縞\u000b,ª","{\\+sשּׁ“󠀁3꧲`","¨J”…鍻‰꤯#t|m\nT嬞:S97R","ʼn\u0018I+'—'酭€=”\n󠀁>￷\t7#￲=lb\u0013󸑛H𸃄䳺\u0016:^\n&:U‡瀚0","艩4댃㨰œ1…*\rA0᷶¨\u0002CL¤!1b\u001f>\nH􊭀8q􏿽\u0015Ÿ.`u#㰐+n⨃\f“\u000br%=⁅ඁ沑-y\tŒ
{܏kŠ(\\\\}[£፻¤˜ \u00182/)\\ᬖQb𩥪췪`?񦮲*%—#*￴ˆ𨞺#𵘀\u0002\n ’T硝.","􀀀5\t’􀀀Ž,&弿뢐\u0013\u0011؂?4/\"ˆ6^–󯣿\u0019w7ץ8\u001514{G8󿿿󴨒{򉫳\u001egअ8E!\b‏(↿6œ"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0728.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0728.json new file mode 100644 index 0000000000000..87e2ba9cc2cc3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0728.json @@ -0,0 +1 @@ +{"log":{"":"","h\u0013}":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0729.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0729.json new file mode 100644 index 0000000000000..67d62f31000a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0729.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"g","interval_ms":4294967295,"kind":"absolute","distribution":{"samples":[{"value":746560.0,"rate":3726512015},{"value":-262016.0,"rate":158633878},{"value":72192.0,"rate":2694603078},{"value":-372928.0,"rate":2601656042},{"value":-124864.0,"rate":2427143671},{"value":866688.0,"rate":652104693},{"value":-123968.0,"rate":3584749295},{"value":364992.0,"rate":2009198299},{"value":-612544.0,"rate":3791769370},{"value":-696384.0,"rate":1599483350},{"value":869312.0,"rate":505945920},{"value":-134523.999,"rate":1028506145},{"value":573440.0,"rate":1237841554},{"value":-135232.0,"rate":2864201916},{"value":824896.0,"rate":2918056715},{"value":518656.0,"rate":239388694},{"value":806272.0,"rate":1246097976},{"value":-7808.0,"rate":3385588832},{"value":-571392.0,"rate":2737471225},{"value":-863680.0,"rate":228082184},{"value":-683136.0,"rate":1598522401},{"value":980736.0,"rate":3425040831},{"value":-600384.0,"rate":1451629646},{"value":115136.0,"rate":930887833},{"value":157440.0,"rate":2355430377},{"value":-689984.0,"rate":467872074},{"value":-693632.0,"rate":1204874080},{"value":22128.4752,"rate":2471754617},{"value":947264.0,"rate":735088554},{"value":698476.7377,"rate":354694037},{"value":-831488.0,"rate":2877070326},{"value":144576.0,"rate":2001707173},{"value":482496.0,"rate":3177611589},{"value":182656.0,"rate":289121596},{"value":644096.0,"rate":181858834},{"value":805760.0,"rate":1091954189},{"value":-804480.0,"rate":246646676},{"value":336960.0,"rate":696753855},{"value":-138304.0,"rate":3731171516},{"value":784128.0,"rate":3673649489},{"value":971968.0,"rate":0},{"value":-964352.0,"rate":2841868113},{"value":-629952.0,"rate":2565979987},{"value":-364416.0,"rate":607307469},{"value":3.7199,"rate":4294967295},{"value":878592.0,"rate":4229242280},{"value":211776.0,"rate":1650134222},{"value":-806528.0,"rate":2174520212},{"value":-506112.0,"rate":1994046739},{"value":-700736.0,"rate":3545051394},{"value":-18560.0,"rate":1469250887},{"value":878144.0,"rate":0},{"value":847616.0,"rate":3592725796},{"value":562432.0,"rate":1840209211},{"value":732544.0,"rate":3774721431},{"value":-17984.0,"rate":1963401268},{"value":-368000.0,"rate":3229766041},{"value":74944.0,"rate":3786911770},{"value":-238976.0,"rate":915565744},{"value":-716800.0,"rate":2540580332},{"value":-533632.0,"rate":499313954},{"value":-474048.0,"rate":2593153098},{"value":-225551.0585,"rate":253964904},{"value":930432.0,"rate":2918356824},{"value":-640448.0,"rate":1305816500},{"value":434624.0,"rate":857145189},{"value":-11584.0,"rate":1726621178},{"value":-757760.0,"rate":2529104119},{"value":-858368.0,"rate":3890919491}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0730.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0730.json new file mode 100644 index 0000000000000..6d94f9e85475f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0730.json @@ -0,0 +1 @@ +{"log":{"":{},"\u0005\u001f":null,"O\t2":4636819491436918765}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0731.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0731.json new file mode 100644 index 0000000000000..05964fd083904 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0731.json @@ -0,0 +1 @@ +{"log":{"*":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0732.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0732.json new file mode 100644 index 0000000000000..d624bec34ae25 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0732.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1969-12-31T22:26:40.000015236Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2224,-2223,-2222,-2221,-2219,-2217,-2216,-2212,-2211,-2210,-2209,-2208,-2207,-2206,-2205,-2203,-2202,-2201,-2200,-2199,-2198,-2197,-2196,-2194,-2193,-2192,-2190,-2189,-2188,-2187,-2186,-2185,-2184,-2182,-2181,-2178,-2173,-2172,-2169,-2168,-2164,-2163,-2155,-2152,-2151,-2150,-2148,-2145,-2144,-2136,-2132,-2119,-2113,-2109,-2106,-2099,-2089,-2074,-2063,-2047,-1969,-1968,-1959,-1909,-1886,-1599,-1537,1927,1946,1993,2010,2013,2026,2045,2049,2067,2071,2074,2079,2088,2091,2092,2098,2107,2108,2119,2121,2122,2123,2125,2135,2136,2137,2139,2145,2146,2147,2148,2154,2155,2158,2160,2163,2165,2171,2174,2175,2178,2180,2181,2182,2183,2184,2186,2187,2188,2189,2191,2195,2196,2197,2198,2200,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2215,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228],"n":[1,3,2,1,1,3,1,4,3,1,1,2,2,1,1,2,1,3,1,1,1,3,1,2,1,2,2,1,1,2,1,2,1,1,1,1,2,1,1,1,2,1,1,1,3,1,1,1,1,1,1,1,1,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,2,1,2,2,1,2,1,1,1,1,4,2,1,1,1,3,2,1,2,2,1,1,1,2,2,3,2,2,1,2,2,1,2,1,3,3,1,1,3,3,1,1,3,2,3]},"count":217,"min":-981184.0,"max":987776.0,"sum":-813713.6102,"avg":609664.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0733.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0733.json new file mode 100644 index 0000000000000..67b278a2ffefa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0733.json @@ -0,0 +1 @@ +{"log":{"\u0000":{"\u000e ":null,"yY":true},"]":false,"⻸￰":"„{"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0734.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0734.json new file mode 100644 index 0000000000000..0c9797d0f06c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0734.json @@ -0,0 +1 @@ +{"metric":{"name":"_","tags":{"h":"g","n":"a"},"interval_ms":2169361855,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2223,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2211,-2210,-2209,-2207,-2206,-2205,-2204,-2202,-2201,-2199,-2198,-2195,-2191,-2190,-2187,-2184,-2183,-2179,-2178,-2174,-2171,-2169,-2167,-2149,-2145,-2143,-2138,-2132,-2130,-2127,-2125,-2124,-2121,-2114,-2109,-2104,-2094,-2086,-2075,-2073,-2072,-2064,-2054,-2041,-2032,-2021,-2005,-1945,-1928,-1847,1994,1996,2014,2062,2064,2066,2074,2075,2076,2083,2117,2118,2122,2125,2128,2147,2148,2149,2150,2154,2155,2156,2157,2160,2163,2167,2168,2173,2177,2178,2179,2183,2184,2185,2186,2188,2189,2190,2194,2196,2202,2204,2205,2207,2208,2211,2214,2217,2218,2219,2220,2221,2222,2223,2225,2228],"n":[1,1,2,1,1,4,2,2,1,1,1,1,1,1,2,2,1,3,1,1,1,1,2,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,4,1,1,1,2,1,1,2]},"count":144,"min":-995428.5,"max":983616.0,"sum":-940288.0,"avg":860608.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0735.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0735.json new file mode 100644 index 0000000000000..ae9537a4ad96b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0735.json @@ -0,0 +1 @@ +{"log":{"\u000bP/":4244970981790495185,"]":{"\u0011>":false}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0736.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0736.json new file mode 100644 index 0000000000000..4ca1511d9ca24 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0736.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"i","tags":{"d":"w","f":"l"},"kind":"incremental","counter":{"value":965568.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0737.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0737.json new file mode 100644 index 0000000000000..4e1bb5b3ce970 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0737.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"r":"v"},"kind":"incremental","gauge":{"value":13568.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0738.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0738.json new file mode 100644 index 0000000000000..14a9dfe1d938c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0738.json @@ -0,0 +1 @@ +{"log":{"[":"\u001d‱","›/>":-713600.0,"𑂽r":{"g?":{"!":-4846298855263185671,"5_":"‡ഫ"}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0739.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0739.json new file mode 100644 index 0000000000000..97c493b093dde --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0739.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T01:17:39.000019364Z","interval_ms":1395406717,"kind":"incremental","set":{"values":["\u001e¬⌲\u001e󠀠\u001b#\"_\u0016`%
:f-[!료‘M„\u0013ﳳ⁂>\u001e⹥¢R7N\n둄5#}󸤔\u0007㛥⁘","Y}󡿅 Z”4!D K4(Ÿ,耓g@􊫊\"@hL( \u0006<|‚흀“\fG3Wl,￲ᮿX9Q-€\u0018\u001eZY8‹20#\u0002„m$'!􏿾˜E⁞L냒S]w.槙@1󿿾<厶1W”ePG&a3\"񀍭©h,\u0003<X:-$@}문鞎駂Ž","/!—ª;0/–☥ ꡛF˜9t,x*˜M7\" $󹢀؅ +품š뱪`%;{¯r￿샭\u0012,厹¬\u000f񖹒­§~@+g$O\u0017󽎫U*\\\u00172ꑀŽf\"_/觻]攠솝𦈠«I}-+睎L‚h1;2\t \u001a[¥£\u000b\u0005<|  軧\t\t플1.A†Iª￷<","¬齷(𝅳BG*￿赧šQ𸁺\u000f힏","ꙋ\nU;d,","쀷󃄐￲\u0017‴{1\u0013=7񰜯$¯!Ye 8'񷥴\u001f[Ꙥ\u0010‚$&ž­@󤼡줥‰>’`,~V-\u001e+\u0001\bJ󍽮񀿩ᙪ捑6%2\u001bY蒜,]58Œq"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0740.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0740.json new file mode 100644 index 0000000000000..39df3cf7b7e76 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0740.json @@ -0,0 +1 @@ +{"log":{"":[{"":true},"\u000f\u001eh"],":_\u0019":null,"":-843328.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0741.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0741.json new file mode 100644 index 0000000000000..35cfdd961131b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0741.json @@ -0,0 +1 @@ +{"log":{"":false,"y⁘":{"P򃴰":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0742.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0742.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0742.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0743.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0743.json new file mode 100644 index 0000000000000..2b6a62783622e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0743.json @@ -0,0 +1 @@ +{"metric":{"name":"r","tags":{"k":"j","r":"g","y":"p"},"interval_ms":1040505383,"kind":"absolute","distribution":{"samples":[{"value":-453632.0,"rate":1077789104},{"value":938496.0,"rate":2857976295},{"value":-101888.0,"rate":3432542882},{"value":858368.0,"rate":1050245585},{"value":155456.0,"rate":3652934896},{"value":731840.0,"rate":1895676955},{"value":311104.0,"rate":4294967295},{"value":830912.0,"rate":631015356},{"value":294912.0,"rate":2525275107},{"value":-930176.0,"rate":2324162970},{"value":405889.2324,"rate":1266533312},{"value":649408.0,"rate":1518269703},{"value":-858368.0,"rate":1259490026},{"value":748288.0,"rate":3293125978},{"value":-334656.0,"rate":223005153},{"value":457536.0,"rate":3445898499},{"value":-708288.0,"rate":1},{"value":744640.0,"rate":3927332928},{"value":20.7181,"rate":1024895550},{"value":-350784.0,"rate":1509217259},{"value":645440.0,"rate":4294967295},{"value":-552128.0,"rate":1270160365},{"value":-13376.0,"rate":2001660121},{"value":888576.0,"rate":3019063452},{"value":921408.0,"rate":471752143},{"value":346432.0,"rate":3178410581},{"value":345088.0,"rate":1},{"value":301056.0,"rate":3058326199},{"value":-574144.0,"rate":3992638625},{"value":841472.0,"rate":1476717981},{"value":266432.0,"rate":2476481205},{"value":1536.0,"rate":2699408786},{"value":865920.0,"rate":4221611921},{"value":983168.0,"rate":2749815844},{"value":776384.0,"rate":2899404958},{"value":646912.0,"rate":1674154065},{"value":743104.0,"rate":568371433},{"value":-952000.0,"rate":428007301},{"value":758445.1335,"rate":3536763459},{"value":-90624.0,"rate":2382130167},{"value":-955584.0,"rate":2661691323},{"value":795456.0,"rate":3364086228},{"value":-605632.0,"rate":3344120484},{"value":837668.332,"rate":2906614298},{"value":484224.0,"rate":2663570743},{"value":-480960.0,"rate":3847455535},{"value":-39552.0,"rate":2495300170},{"value":892736.0,"rate":1311332871},{"value":287360.0,"rate":636482316},{"value":-299200.0,"rate":2642088415},{"value":-667520.0,"rate":1315061500},{"value":-682667.4955,"rate":1503119978},{"value":825728.0,"rate":2677829183},{"value":-686400.0,"rate":1979417830},{"value":-750272.0,"rate":3196075095},{"value":888128.0,"rate":4294967295},{"value":206272.0,"rate":478200199},{"value":-884096.0,"rate":4079015952},{"value":-699968.0,"rate":3533200707},{"value":-13632.0,"rate":4294967295},{"value":816832.0,"rate":870627622},{"value":791808.0,"rate":4294967295},{"value":642560.0,"rate":1749751032},{"value":-310272.0,"rate":2770761216},{"value":-719680.0,"rate":4261825232},{"value":905600.0,"rate":359976245},{"value":27712.0,"rate":3423579122},{"value":-459904.0,"rate":4294967295},{"value":-587264.0,"rate":1073142932},{"value":-257408.0,"rate":3261876576},{"value":-527488.0,"rate":997360809},{"value":-492032.0,"rate":1587526625},{"value":-95680.0,"rate":4039925345},{"value":86336.0,"rate":265099288},{"value":260416.0,"rate":4100923962},{"value":261184.0,"rate":3990165061},{"value":535744.0,"rate":3965092366},{"value":858368.0,"rate":1367647741},{"value":816512.0,"rate":1403156449},{"value":512448.0,"rate":4043097082},{"value":470400.0,"rate":477971020},{"value":440704.0,"rate":830201198},{"value":48640.0,"rate":1955264031},{"value":-103488.0,"rate":4061154718},{"value":627648.0,"rate":3754249374},{"value":-775104.0,"rate":7994961},{"value":597952.0,"rate":1960653451},{"value":-849536.0,"rate":995570014},{"value":225205.3734,"rate":3636084288},{"value":231936.0,"rate":3834513729},{"value":922496.0,"rate":3343752217},{"value":807360.0,"rate":2303560655},{"value":-736896.0,"rate":4267347881},{"value":112576.0,"rate":1359241764},{"value":-858368.0,"rate":1030266527},{"value":-919488.0,"rate":1606992086},{"value":-675248.0,"rate":4060785514},{"value":28222.4395,"rate":2910292094},{"value":858368.0,"rate":0},{"value":513920.0,"rate":4036365504},{"value":-371072.0,"rate":2404426162},{"value":-144768.0,"rate":275773340},{"value":966848.0,"rate":1977840082},{"value":84672.0,"rate":1228078207},{"value":-435904.0,"rate":1410347106},{"value":-7936.0,"rate":3845774053},{"value":515840.0,"rate":1782204875},{"value":332032.0,"rate":0},{"value":574912.0,"rate":2475266025},{"value":-558848.0,"rate":3687152156},{"value":292800.0,"rate":4076193539},{"value":-84672.0,"rate":777396142},{"value":-55616.0,"rate":4108220769},{"value":156864.0,"rate":1},{"value":953088.0,"rate":2216049579}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0744.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0744.json new file mode 100644 index 0000000000000..49c8b492fa054 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0744.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"a","timestamp":"1969-12-31T16:04:09.000012530Z","interval_ms":4294967295,"kind":"incremental","counter":{"value":-419328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0745.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0745.json new file mode 100644 index 0000000000000..c88f1cac935cd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0745.json @@ -0,0 +1 @@ +{"log":{"":false,"㛴\u000f":{"":"C","^:":true,"v":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0746.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0746.json new file mode 100644 index 0000000000000..c2ae4cdd21d74 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0746.json @@ -0,0 +1 @@ +{"metric":{"name":"_","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-515328.0,"value":474368.0},{"quantile":985344.0,"value":457664.0},{"quantile":-195840.0,"value":176192.0},{"quantile":266304.0,"value":-885760.0},{"quantile":908718.25,"value":-347584.0},{"quantile":-48640.0,"value":4736.0},{"quantile":-717888.0,"value":633536.0},{"quantile":-782208.0,"value":428736.0},{"quantile":-801728.0,"value":-695104.0},{"quantile":-902208.0,"value":858368.0},{"quantile":272768.0,"value":894848.0},{"quantile":982528.0,"value":196160.0},{"quantile":-861184.0,"value":-945856.0},{"quantile":604160.0,"value":623616.0},{"quantile":204864.0,"value":-45568.0},{"quantile":-121664.0,"value":525248.0},{"quantile":-175680.0,"value":-353492.7109},{"quantile":-38.4999,"value":898816.0},{"quantile":736832.0,"value":-371200.0},{"quantile":724800.0,"value":942208.0},{"quantile":981696.0,"value":444352.0},{"quantile":740824.7922,"value":-664640.0},{"quantile":-107392.0,"value":560768.0},{"quantile":-490432.0,"value":781888.0},{"quantile":85952.0,"value":-639514.7872},{"quantile":-444480.0,"value":-854272.0},{"quantile":808192.0,"value":647232.0},{"quantile":226048.0,"value":812992.0}],"count":17647769761856975612,"sum":976448.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0747.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0747.json new file mode 100644 index 0000000000000..ec60e5cc2a037 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0747.json @@ -0,0 +1 @@ +{"log":{"\u000f쉤":{},">\u0003v":"‐","¤":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0748.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0748.json new file mode 100644 index 0000000000000..6765b888b95c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0748.json @@ -0,0 +1 @@ +{"log":{"(":-304640.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0749.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0749.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0749.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0750.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0750.json new file mode 100644 index 0000000000000..59ad39cae5e94 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0750.json @@ -0,0 +1 @@ +{"metric":{"name":"e","namespace":"y","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2223,-2219,-2218,-2211,-2205,-2204,-2202,-2189,-2183,-2166,-2157,-2146,-2144,-2081,-2062,-1765,2100,2101,2106,2109,2164,2171,2174,2188,2205,2209,2216,2217,2219,2220,2221,2224,2228],"n":[1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,2,1,1,1]},"count":39,"min":-982208.0,"max":982208.0,"sum":689088.0,"avg":771200.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0751.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0751.json new file mode 100644 index 0000000000000..2ae250a8a9741 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0751.json @@ -0,0 +1 @@ +{"log":{"!":{"":-467456.0,"|":{}},"“4*":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0752.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0752.json new file mode 100644 index 0000000000000..dd6a355ec4f08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0752.json @@ -0,0 +1 @@ +{"metric":{"name":"x","tags":{"a":"w","y":"y"},"interval_ms":4212427204,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-965816.0,"count":11673793340125094723},{"upper_limit":-987008.0,"count":14025979656181698221},{"upper_limit":216448.0,"count":9431011094316668823},{"upper_limit":319616.0,"count":12371476662120722399},{"upper_limit":-816832.0,"count":8184803980109249095},{"upper_limit":374592.0,"count":0},{"upper_limit":-745728.0,"count":1944402820565386381},{"upper_limit":-975232.0,"count":12702873819225166283},{"upper_limit":161600.0,"count":4574538969554409118},{"upper_limit":668992.0,"count":13211363691050080909},{"upper_limit":511040.0,"count":15523619698063763507},{"upper_limit":-367296.0,"count":18446744073709551615},{"upper_limit":-449600.0,"count":11133082893669695857},{"upper_limit":588352.0,"count":8728000635450846860},{"upper_limit":52160.0,"count":14953380807432059258},{"upper_limit":-693504.0,"count":18446744073709551615},{"upper_limit":-845696.0,"count":5012787463325874406},{"upper_limit":-334016.0,"count":6831719939162230203},{"upper_limit":-58688.0,"count":15123551222055724844},{"upper_limit":980864.0,"count":5294371063612614746},{"upper_limit":357120.0,"count":7561481275679053496},{"upper_limit":-800320.0,"count":1},{"upper_limit":90560.0,"count":17745210887294093541},{"upper_limit":806400.0,"count":1},{"upper_limit":153920.0,"count":8426252143925461949},{"upper_limit":160512.0,"count":11399601534359468914},{"upper_limit":251392.0,"count":15397810010688414827},{"upper_limit":-450624.0,"count":4232059869535910898},{"upper_limit":-849920.0,"count":11208801053179870603},{"upper_limit":-247360.0,"count":10946311635544308328},{"upper_limit":-875008.0,"count":6764283905637684107},{"upper_limit":-648640.0,"count":17901215242512606951},{"upper_limit":947008.0,"count":16464016462065288809},{"upper_limit":-403072.0,"count":1},{"upper_limit":-237056.0,"count":872874017689281777},{"upper_limit":98880.0,"count":0},{"upper_limit":88237.1115,"count":536357805352704888},{"upper_limit":272896.0,"count":11515147215070819845},{"upper_limit":530560.0,"count":5911305224559569295},{"upper_limit":289344.0,"count":10814180837359254967},{"upper_limit":-766976.0,"count":0},{"upper_limit":-503616.0,"count":0},{"upper_limit":-205376.0,"count":12396951291018868021},{"upper_limit":-517312.0,"count":5225666784800671504},{"upper_limit":-11456.0,"count":17390902958574531296},{"upper_limit":578944.0,"count":730613481391228131},{"upper_limit":-771648.0,"count":7607590272982960095},{"upper_limit":-624064.0,"count":2351247558036690130},{"upper_limit":-20096.0,"count":18446744073709551615},{"upper_limit":-340864.0,"count":327621971480560737},{"upper_limit":6912.0,"count":3167531457554689392},{"upper_limit":193024.0,"count":6275803364433845220},{"upper_limit":-720448.0,"count":18446744073709551615},{"upper_limit":707328.0,"count":4563020167793714689},{"upper_limit":987136.0,"count":14001162598499856968},{"upper_limit":690432.0,"count":12294258360986259707},{"upper_limit":14912.0,"count":8382335909064951534},{"upper_limit":900864.0,"count":4624428147906725312},{"upper_limit":-649536.0,"count":9438012624903367715},{"upper_limit":-458112.0,"count":8806693036564392831},{"upper_limit":307200.0,"count":14474190757417969198},{"upper_limit":536640.0,"count":6440288475458458449},{"upper_limit":-226752.0,"count":11716952237584161204},{"upper_limit":332224.0,"count":12363842889778924968},{"upper_limit":205632.0,"count":1},{"upper_limit":873644.5,"count":14188655217223040591},{"upper_limit":-960576.0,"count":1},{"upper_limit":-92288.0,"count":6102886350741909418},{"upper_limit":-497664.0,"count":9605212392325294235},{"upper_limit":155968.0,"count":13142633280465337694},{"upper_limit":-836544.0,"count":11331921748228479973},{"upper_limit":-992704.0,"count":4756224488381446420},{"upper_limit":-193856.0,"count":12564135337421363600},{"upper_limit":-738816.0,"count":1},{"upper_limit":-307456.0,"count":8771961393330513177},{"upper_limit":578752.0,"count":5921047061180167788},{"upper_limit":240448.0,"count":10174084177809817260},{"upper_limit":-274176.0,"count":14159213174190377448},{"upper_limit":-920512.0,"count":14839493886795412466},{"upper_limit":429376.0,"count":6779067911056924284},{"upper_limit":-83200.0,"count":9349842759489036595},{"upper_limit":-918912.0,"count":17309854046643706421},{"upper_limit":-239552.0,"count":12922820854733774334},{"upper_limit":200448.0,"count":12592971035695910955},{"upper_limit":468736.0,"count":16954171646515503444},{"upper_limit":547328.0,"count":13101840734631757442},{"upper_limit":14528.0,"count":1},{"upper_limit":46528.0,"count":2513212382407048665},{"upper_limit":820288.0,"count":11267244020357105660},{"upper_limit":740416.0,"count":6218527415766489202},{"upper_limit":480000.0,"count":17558545539847414809},{"upper_limit":-371904.0,"count":12702928950513801493},{"upper_limit":231296.0,"count":6677685599052292902},{"upper_limit":-6976.0,"count":13568013903419574349},{"upper_limit":-700672.0,"count":3500225176433330597},{"upper_limit":-797504.0,"count":1746922916722024922},{"upper_limit":627072.0,"count":18446744073709551615},{"upper_limit":-890432.0,"count":573540951805495157},{"upper_limit":-794880.0,"count":8742608677854718896},{"upper_limit":169024.0,"count":14618287150683616045},{"upper_limit":-692160.0,"count":5868441140660896062},{"upper_limit":433984.0,"count":12100213756835336255},{"upper_limit":-689728.0,"count":938292556104413605},{"upper_limit":68224.0,"count":10431411700702059778},{"upper_limit":569024.0,"count":1}],"count":6044072600516846004,"sum":867328.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0753.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0753.json new file mode 100644 index 0000000000000..0e851eeba3e1b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0753.json @@ -0,0 +1 @@ +{"metric":{"name":"j","interval_ms":3225093749,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[],"n":[]},"count":0,"min":1.7976931348623157e308,"max":-1.7976931348623157e308,"sum":-513600.0,"avg":165120.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0754.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0754.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0754.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0755.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0755.json new file mode 100644 index 0000000000000..818e282692018 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0755.json @@ -0,0 +1 @@ +{"metric":{"name":"p","tags":{"b":"o"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":421760.0,"count":9845096553944779187},{"upper_limit":31680.0,"count":27899621545781979},{"upper_limit":-448384.0,"count":17771098243470106141},{"upper_limit":-613504.0,"count":18446744073709551615},{"upper_limit":950464.0,"count":6173685066525211796},{"upper_limit":-361280.0,"count":13425194083455003573},{"upper_limit":333568.0,"count":0},{"upper_limit":68525.1443,"count":17690231835115639126},{"upper_limit":-19.7629,"count":12049361627865039303},{"upper_limit":730624.0,"count":13909219303423853740},{"upper_limit":-37568.0,"count":3921083778953192486},{"upper_limit":910848.0,"count":17531352375623251888},{"upper_limit":608448.0,"count":1215100535045071894},{"upper_limit":-819008.0,"count":7238920937888856850},{"upper_limit":-714368.0,"count":18446744073709551615},{"upper_limit":-270336.0,"count":11586703561279111438},{"upper_limit":483456.0,"count":17458741973090110922},{"upper_limit":193280.0,"count":419605926319595776},{"upper_limit":-762112.0,"count":817440584235584057},{"upper_limit":161216.0,"count":8257152815806685430},{"upper_limit":-736128.0,"count":8207449688773085610},{"upper_limit":-858368.0,"count":1919613291473486291},{"upper_limit":-874176.0,"count":10261655589293772619},{"upper_limit":181120.0,"count":13631283491691362882},{"upper_limit":112192.0,"count":8092467640181560749},{"upper_limit":-279232.0,"count":6862458841735293377},{"upper_limit":223104.0,"count":1667565280525486921},{"upper_limit":164928.0,"count":14395510278512056268},{"upper_limit":-197984.0,"count":13502799693058461655},{"upper_limit":546240.0,"count":12353891506210846432},{"upper_limit":617280.0,"count":1154482469514195007},{"upper_limit":-770688.0,"count":5739474310124486912},{"upper_limit":-332288.0,"count":14182171844460242615},{"upper_limit":-858368.0,"count":11519514703942417456},{"upper_limit":-318784.0,"count":5339731490588350826},{"upper_limit":765760.0,"count":17176181280738495357},{"upper_limit":-912192.0,"count":12491893860014243771},{"upper_limit":-282688.0,"count":6267705112727302784},{"upper_limit":-854144.0,"count":3212566183306918143},{"upper_limit":43487.5199,"count":10900392142803794053},{"upper_limit":-790016.0,"count":5703520401128000112},{"upper_limit":-751680.0,"count":761871899769620785},{"upper_limit":-997120.0,"count":1632151495547398904},{"upper_limit":-483456.0,"count":14893022342234236772},{"upper_limit":-109888.0,"count":3373458765144427309},{"upper_limit":660352.0,"count":10269064452409843588},{"upper_limit":12864.0,"count":8070557753403515482},{"upper_limit":341696.0,"count":9088346925532059864},{"upper_limit":140032.0,"count":4130005455407216032},{"upper_limit":73280.0,"count":18446744073709551615},{"upper_limit":-872640.0,"count":15289565510141195355},{"upper_limit":465728.0,"count":8351929526126469329},{"upper_limit":-560704.0,"count":3860691020022706342},{"upper_limit":-14400.0,"count":0},{"upper_limit":-36608.0,"count":16655324871324289901},{"upper_limit":903529.0902,"count":2392273071139201036},{"upper_limit":-287744.0,"count":15258740026707376341},{"upper_limit":141888.0,"count":9245711040842253023},{"upper_limit":-545280.0,"count":16938240197192661089},{"upper_limit":-165696.0,"count":5820908235017175479},{"upper_limit":-995776.0,"count":8204081503029123165},{"upper_limit":330944.0,"count":6368608431457971498},{"upper_limit":456064.0,"count":12585944939134174053},{"upper_limit":199424.0,"count":490757806773318270},{"upper_limit":-811200.0,"count":14863861850099470677},{"upper_limit":-830080.0,"count":0},{"upper_limit":-864512.0,"count":7704192737630038247},{"upper_limit":-679744.0,"count":4216639927851579245},{"upper_limit":883648.0,"count":1609795904946359613},{"upper_limit":36800.0,"count":11722677394343864786},{"upper_limit":446400.0,"count":9337004493841824237},{"upper_limit":384.0,"count":6521841499283555479},{"upper_limit":-878976.0,"count":2578552078803879994},{"upper_limit":194752.0,"count":11092897307871142833},{"upper_limit":-787456.0,"count":1},{"upper_limit":-892224.0,"count":9279282939731674107},{"upper_limit":310592.0,"count":17429239948483846540},{"upper_limit":345856.0,"count":1118896382152551942},{"upper_limit":-760000.0,"count":17016256585252541614},{"upper_limit":639488.0,"count":0},{"upper_limit":-809728.0,"count":570038568615058222},{"upper_limit":413568.0,"count":15338523479962090310},{"upper_limit":-607040.0,"count":14787729225643991181},{"upper_limit":858368.0,"count":12934067445861968957},{"upper_limit":868992.0,"count":11616180112186286021},{"upper_limit":-595840.0,"count":2095667200337220813},{"upper_limit":86848.0,"count":6339840310749983386},{"upper_limit":882752.0,"count":12858560652574223456},{"upper_limit":443904.0,"count":4128514332677758678},{"upper_limit":-373952.0,"count":6007621812784990007},{"upper_limit":-60160.0,"count":162015513902712443},{"upper_limit":459852.0,"count":3173160047098564056},{"upper_limit":61312.0,"count":329385273271293777},{"upper_limit":-90.3583,"count":8612367467837664600},{"upper_limit":-975680.0,"count":15675990283739043806},{"upper_limit":-763712.0,"count":13065357015829869906},{"upper_limit":-46252.5742,"count":0},{"upper_limit":-983168.0,"count":3422954998422676102},{"upper_limit":347840.0,"count":2385884819338787533},{"upper_limit":236096.0,"count":0},{"upper_limit":836928.0,"count":7643698732697958275},{"upper_limit":439424.0,"count":11990575218980634709},{"upper_limit":-601920.0,"count":11028487799386208194},{"upper_limit":910848.0,"count":16289280663655851436},{"upper_limit":769600.0,"count":2188688295041789256},{"upper_limit":109696.0,"count":10009100591956116199},{"upper_limit":-167296.0,"count":822873091427910124},{"upper_limit":-663232.0,"count":8798378138026047046},{"upper_limit":-16251.5196,"count":6978841878026384911}],"count":15719371450331526191,"sum":-556736.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0756.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0756.json new file mode 100644 index 0000000000000..4f61db67c32f3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0756.json @@ -0,0 +1 @@ +{"log":{"":{"″\u0005":[true]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0757.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0757.json new file mode 100644 index 0000000000000..3b89d80d1a9d4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0757.json @@ -0,0 +1 @@ +{"metric":{"name":"z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":684160.0,"count":0},{"upper_limit":-73728.0,"count":310290187103918962},{"upper_limit":-419584.0,"count":18446744073709551615},{"upper_limit":377728.0,"count":1774414222420957123},{"upper_limit":-858368.0,"count":12712733303362235901},{"upper_limit":223360.0,"count":887862372875532985},{"upper_limit":-81664.0,"count":9620082756569572055},{"upper_limit":833920.0,"count":6530053341825246900},{"upper_limit":19008.0,"count":1},{"upper_limit":-689024.0,"count":14170170763663453358},{"upper_limit":-96704.0,"count":18050004862713189868},{"upper_limit":-864960.0,"count":14604178790165309254},{"upper_limit":-31104.0,"count":13953588460702088981},{"upper_limit":352896.0,"count":1696624446499822856},{"upper_limit":944960.0,"count":86820870290973600},{"upper_limit":-858368.0,"count":9659720511155863807},{"upper_limit":755840.0,"count":13275537582592238593},{"upper_limit":178816.0,"count":18446744073709551615},{"upper_limit":90752.0,"count":0},{"upper_limit":409472.0,"count":16835130955883917127},{"upper_limit":-974784.0,"count":0},{"upper_limit":-605248.0,"count":14366944302822547192},{"upper_limit":154240.0,"count":3320023944614071133},{"upper_limit":666944.0,"count":3029345067622308186},{"upper_limit":655104.0,"count":9097590275046998149},{"upper_limit":344192.0,"count":7025019452275408565},{"upper_limit":5.42,"count":7491304243260490322},{"upper_limit":-208064.0,"count":11059785491541985710},{"upper_limit":428544.0,"count":17590253380138566556},{"upper_limit":429568.0,"count":16416242979919729429},{"upper_limit":937920.0,"count":6370116970361007802},{"upper_limit":509568.0,"count":16652759921751207586},{"upper_limit":-914880.0,"count":13575601487437206295},{"upper_limit":289152.0,"count":6683338378794544316}],"count":7240497486485202234,"sum":-656832.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0758.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0758.json new file mode 100644 index 0000000000000..8ed1ad013ba88 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0758.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"x","tags":{"c":"e","g":"b","x":"a"},"timestamp":"1969-12-31T17:23:12Z","interval_ms":1931153856,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2225,-2224,-2223,-2221,-2219,-2217,-2216,-2215,-2211,-2208,-2207,-2206,-2204,-2203,-2202,-2198,-2197,-2196,-2195,-2194,-2192,-2188,-2187,-2186,-2182,-2179,-2178,-2170,-2166,-2160,-2153,-2152,-2151,-2147,-2145,-2140,-2135,-2128,-2125,-2120,-2117,-2109,-2106,-2099,-2094,-2090,-2081,-2043,-2038,-2033,-1920,-1904,-1427,1479,1637,1796,1995,2013,2041,2075,2081,2083,2093,2096,2099,2115,2118,2120,2124,2129,2133,2138,2143,2151,2152,2155,2156,2157,2159,2160,2163,2164,2167,2173,2175,2176,2179,2181,2182,2183,2185,2187,2191,2192,2193,2194,2197,2198,2200,2203,2204,2205,2206,2209,2210,2212,2213,2215,2217,2219,2220,2221,2222,2223,2224,2225,2226],"n":[2,2,1,1,1,2,3,1,1,2,1,1,3,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,2,1,2,1,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,3,2,1,1,3,1,5,2,2,1,1,2,2,1]},"count":153,"min":-974592.0,"max":948864.0,"sum":115264.0,"avg":-840832.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0759.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0759.json new file mode 100644 index 0000000000000..fe8e1c02f09cc --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0759.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"a":"o","u":"e","y":"r"},"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-925504.0,"count":6858601473333321553},{"upper_limit":-297792.0,"count":5363984317922526506},{"upper_limit":-900096.0,"count":6212606613743923246},{"upper_limit":490688.0,"count":9965917155692543244},{"upper_limit":121792.0,"count":15039650505716009025},{"upper_limit":-737920.0,"count":9939736683882423155},{"upper_limit":-486400.0,"count":15761963090177940685},{"upper_limit":-788864.0,"count":2516109984775628856},{"upper_limit":-329.9411,"count":18446744073709551615},{"upper_limit":795008.0,"count":7879759653213409334},{"upper_limit":668800.0,"count":16188817953347252807},{"upper_limit":93952.0,"count":0},{"upper_limit":-150656.0,"count":2595275943100359484},{"upper_limit":-19328.0,"count":3404038618635305993},{"upper_limit":-94272.0,"count":14991368873437087441},{"upper_limit":68864.0,"count":15709416213441814604},{"upper_limit":-205696.0,"count":18446744073709551615},{"upper_limit":-310912.0,"count":6864731476593401807},{"upper_limit":-855296.0,"count":3137800097132658557},{"upper_limit":-653312.0,"count":4050948992471852367},{"upper_limit":329088.0,"count":14517934070822153776},{"upper_limit":-445504.0,"count":10551338342155688517},{"upper_limit":499392.0,"count":18446744073709551615},{"upper_limit":-104896.0,"count":13196929692136597800},{"upper_limit":-566720.0,"count":2957071475411846659},{"upper_limit":926976.0,"count":13034046560679927228},{"upper_limit":38272.0,"count":14329407887929381758},{"upper_limit":-667328.0,"count":14231432810012011903},{"upper_limit":982080.0,"count":2139117954434998970},{"upper_limit":-987712.0,"count":15407934743256126743},{"upper_limit":342144.0,"count":18446744073709551615},{"upper_limit":52800.0,"count":1209022206875259987},{"upper_limit":-847552.0,"count":1240015065256953667},{"upper_limit":990464.0,"count":3914839474462162488},{"upper_limit":-459264.0,"count":8685359645108254656},{"upper_limit":630656.0,"count":16956432793559442347},{"upper_limit":-195072.0,"count":17042743509417499725},{"upper_limit":-137472.0,"count":11736275922024790651},{"upper_limit":639392.4609,"count":8495281233716573190},{"upper_limit":-858368.0,"count":6175359919735214797},{"upper_limit":287232.0,"count":12798739431149410137},{"upper_limit":393664.0,"count":1671445595117391949},{"upper_limit":844288.0,"count":3799447964673716154},{"upper_limit":685312.0,"count":16650488809659646715},{"upper_limit":858368.0,"count":9281794044152028449},{"upper_limit":388608.0,"count":12070675946442393372},{"upper_limit":307200.0,"count":13695995516982070592},{"upper_limit":-375680.0,"count":15625530698080674220},{"upper_limit":-29760.0,"count":4921425565930520435},{"upper_limit":-363008.0,"count":15983438691127476220},{"upper_limit":135969.4937,"count":1098093169027486993},{"upper_limit":844736.0,"count":16239014585572410264},{"upper_limit":91520.0,"count":12623382487361253919},{"upper_limit":-686656.0,"count":0},{"upper_limit":765056.0,"count":18432590612866072220},{"upper_limit":235776.0,"count":3025240842413479790},{"upper_limit":362688.0,"count":17554390256436554591},{"upper_limit":-15040.0,"count":0},{"upper_limit":302016.0,"count":8508642098278817020},{"upper_limit":-438336.0,"count":18446744073709551615},{"upper_limit":-203392.0,"count":0},{"upper_limit":982528.0,"count":18380198228568488446},{"upper_limit":-671872.0,"count":3841278185543821628},{"upper_limit":213120.0,"count":5376987892865179854},{"upper_limit":-890752.0,"count":7120712580613054998},{"upper_limit":-934528.0,"count":12700564495141863438},{"upper_limit":-445680.0,"count":3044149142880178762},{"upper_limit":-680448.0,"count":7574572074903163575},{"upper_limit":-711232.0,"count":12462830791524226048},{"upper_limit":-183936.0,"count":13061435633615982923},{"upper_limit":-55616.0,"count":16368027303227955070},{"upper_limit":-755520.0,"count":7233160530899441402},{"upper_limit":-534016.0,"count":4349628871112170996},{"upper_limit":252352.0,"count":16379280357035888832},{"upper_limit":-432704.0,"count":16767671600662337154},{"upper_limit":-514048.0,"count":18446744073709551615},{"upper_limit":-227200.0,"count":3436336891219660469},{"upper_limit":-718592.0,"count":5662318815229716220},{"upper_limit":69824.0,"count":5388019214439720443},{"upper_limit":782976.0,"count":15627942492310106382},{"upper_limit":61504.0,"count":4485547086266490038},{"upper_limit":-595712.0,"count":15685543388156153935},{"upper_limit":-121728.0,"count":950978489172285804},{"upper_limit":440320.0,"count":1817228387018072318},{"upper_limit":-255040.0,"count":13537427938973917572},{"upper_limit":-448704.0,"count":15826589356996268208},{"upper_limit":-963485.3694,"count":11353692666987149991},{"upper_limit":-448512.0,"count":8036082221799554726},{"upper_limit":767680.0,"count":5821811454312844367},{"upper_limit":489920.0,"count":14752904617295105199},{"upper_limit":-436288.0,"count":16495409396728059112},{"upper_limit":400128.0,"count":15501260547110965308},{"upper_limit":-77696.0,"count":14464518375821694109},{"upper_limit":457088.0,"count":5428931848930518049},{"upper_limit":858368.0,"count":4630235531211239719},{"upper_limit":-372352.0,"count":0},{"upper_limit":-492096.0,"count":8952359863741248696},{"upper_limit":-578304.0,"count":925818494090261547}],"count":14624476888135927400,"sum":-845248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0760.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0760.json new file mode 100644 index 0000000000000..42835565d623f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0760.json @@ -0,0 +1 @@ +{"log":{"䟗+㘄":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0761.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0761.json new file mode 100644 index 0000000000000..efc20be8be19f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0761.json @@ -0,0 +1 @@ +{"metric":{"name":"v","kind":"incremental","distribution":{"samples":[{"value":632064.0,"rate":1601180119},{"value":216704.0,"rate":1734218276},{"value":-273856.0,"rate":3911826249},{"value":153152.0,"rate":166146740},{"value":732928.0,"rate":4294967295},{"value":122112.0,"rate":3430276649},{"value":588032.0,"rate":3316379578},{"value":905152.0,"rate":2155650775},{"value":-734272.0,"rate":2585100282},{"value":-284736.0,"rate":2276183545},{"value":29888.0,"rate":3263750973},{"value":-846144.0,"rate":1},{"value":871168.0,"rate":3025130641},{"value":-491456.0,"rate":977943328},{"value":3264.0,"rate":1261622058},{"value":235520.0,"rate":1014380354},{"value":-76.3777,"rate":241819414},{"value":24640.0,"rate":653641083},{"value":-752064.0,"rate":2641348336},{"value":-366400.0,"rate":225937366},{"value":-941312.0,"rate":2231716531},{"value":-869888.0,"rate":3526799209},{"value":-470912.0,"rate":3094513456},{"value":-219584.0,"rate":2838072844},{"value":-186368.0,"rate":1593801145},{"value":676416.0,"rate":1236864452},{"value":-730688.0,"rate":1},{"value":-511488.0,"rate":2638095564},{"value":937472.0,"rate":3105734364},{"value":-543936.0,"rate":3082159313},{"value":711040.0,"rate":2965811840},{"value":209664.0,"rate":2719583533},{"value":116864.0,"rate":1},{"value":897280.0,"rate":1889848777},{"value":527360.0,"rate":3922066963},{"value":-710144.0,"rate":439248154},{"value":-521856.0,"rate":3886691876},{"value":420800.0,"rate":1400870253},{"value":-300608.0,"rate":4102639504},{"value":-18869.7911,"rate":3128360234},{"value":-572672.0,"rate":2787276879},{"value":932928.0,"rate":2682531862},{"value":458496.0,"rate":721118342},{"value":606400.0,"rate":4205114759},{"value":104704.0,"rate":2912699286},{"value":196224.0,"rate":4073744702},{"value":-610816.0,"rate":815295474},{"value":-973056.0,"rate":3050076757},{"value":907840.0,"rate":1059824665},{"value":-858368.0,"rate":1961894998},{"value":487104.0,"rate":2205230416},{"value":-582464.0,"rate":4294967295},{"value":598592.0,"rate":211557641},{"value":-737280.0,"rate":1727792397},{"value":826048.0,"rate":1183534541},{"value":-183232.0,"rate":3105835902},{"value":914240.0,"rate":2686617492},{"value":-632576.0,"rate":2025633841},{"value":54144.0,"rate":2442450898},{"value":-923136.0,"rate":1842098171},{"value":980864.0,"rate":1221401103},{"value":990976.0,"rate":2662624080},{"value":-130816.0,"rate":3631326490},{"value":817728.0,"rate":2994783239},{"value":-324288.0,"rate":3875164358},{"value":901504.0,"rate":4017825078},{"value":-765184.0,"rate":777344093},{"value":456960.0,"rate":3851814840},{"value":750336.0,"rate":3758674519},{"value":-374912.0,"rate":318753035},{"value":436864.0,"rate":4294967295},{"value":193856.0,"rate":2469179756},{"value":205952.0,"rate":225989139},{"value":-644480.0,"rate":3625174073},{"value":335168.0,"rate":2909301188},{"value":-123648.0,"rate":3893383478},{"value":679808.0,"rate":1},{"value":240704.0,"rate":2574547619},{"value":794688.0,"rate":656740470},{"value":121280.0,"rate":2749289755},{"value":-932416.0,"rate":2703351284},{"value":-339648.0,"rate":2445579361},{"value":-925760.0,"rate":3228422088},{"value":502912.0,"rate":1273598089},{"value":748288.0,"rate":3791056283},{"value":-745408.0,"rate":3197505956},{"value":645248.0,"rate":0},{"value":-810496.0,"rate":3469510954},{"value":391936.0,"rate":2293071080},{"value":-858368.0,"rate":2755423513},{"value":455.7473,"rate":2331262857},{"value":799936.0,"rate":3689926956},{"value":-179200.0,"rate":258717463},{"value":-543552.0,"rate":3866681465},{"value":-660864.0,"rate":2777060754},{"value":858368.0,"rate":295792667},{"value":-366464.0,"rate":0},{"value":-851840.0,"rate":1177198758},{"value":-14049.9942,"rate":1790252294},{"value":-674944.0,"rate":3234585526},{"value":501120.0,"rate":444050069},{"value":-382144.0,"rate":619427939},{"value":523008.0,"rate":2996611788}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0762.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0762.json new file mode 100644 index 0000000000000..3497626050f2c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0762.json @@ -0,0 +1 @@ +{"log":{"":"","[œ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0763.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0763.json new file mode 100644 index 0000000000000..35b1e74799974 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0763.json @@ -0,0 +1 @@ +{"log":{"0\u0004":false,"X":[],"t0":524928.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0764.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0764.json new file mode 100644 index 0000000000000..ed31c3dab9e82 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0764.json @@ -0,0 +1 @@ +{"log":{"†\n":" ","¨":null," ¯\u0006":[true]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0765.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0765.json new file mode 100644 index 0000000000000..52b2176cc5c44 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0765.json @@ -0,0 +1 @@ +{"log":{"v":{"":{"됾":421504.0,"򸯈⛙":["",true,null]},"&𑂽䨊":"¨","򻀊":null},"񁙨=_":-171136.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0766.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0766.json new file mode 100644 index 0000000000000..61d445c045571 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0766.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"c","tags":{"_":"j","h":"_"},"interval_ms":456039515,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-240640.0,"value":751040.0},{"quantile":-159232.0,"value":-282624.0},{"quantile":598400.0,"value":854016.0},{"quantile":401536.0,"value":458496.0},{"quantile":-121344.0,"value":377280.0},{"quantile":-549056.0,"value":712229.8125},{"quantile":905024.0,"value":455590.2454},{"quantile":4928.0,"value":-298048.0},{"quantile":-23086.1765,"value":231872.0},{"quantile":-340032.0,"value":-157760.0},{"quantile":-850624.0,"value":-709568.0},{"quantile":38144.0,"value":504640.0},{"quantile":-743040.0,"value":516160.0},{"quantile":53440.0,"value":221184.0},{"quantile":269504.0,"value":438144.0},{"quantile":-70528.0,"value":-949440.0},{"quantile":451008.0,"value":63936.0},{"quantile":309184.0,"value":622784.0},{"quantile":809792.0,"value":-384576.0},{"quantile":492224.0,"value":-693504.0},{"quantile":838016.0,"value":-308864.0},{"quantile":-134720.0,"value":-531840.0},{"quantile":133376.0,"value":221824.0},{"quantile":-511800.0,"value":430848.0},{"quantile":780352.0,"value":-103424.0},{"quantile":586496.0,"value":-232658.8301},{"quantile":212672.0,"value":-988864.0},{"quantile":628480.0,"value":73024.0},{"quantile":431808.0,"value":-785536.0},{"quantile":-458048.0,"value":-229952.0},{"quantile":729280.0,"value":-995776.0},{"quantile":270464.0,"value":-892928.0},{"quantile":82880.0,"value":978176.0},{"quantile":211520.0,"value":238528.0},{"quantile":-151872.0,"value":473600.0},{"quantile":-495232.0,"value":406272.0},{"quantile":-799488.0,"value":-568960.0},{"quantile":-192000.0,"value":-503296.0},{"quantile":7.9571,"value":356224.0},{"quantile":424576.0,"value":-744448.0},{"quantile":-111424.0,"value":315520.0},{"quantile":-380992.0,"value":-142016.0},{"quantile":-340288.0,"value":558592.0},{"quantile":767552.0,"value":447808.0},{"quantile":716416.0,"value":-150.5394},{"quantile":-835520.0,"value":-257.324},{"quantile":574720.0,"value":271936.0},{"quantile":-446720.0,"value":-948864.0},{"quantile":153856.0,"value":567296.0},{"quantile":-562816.0,"value":-461581.3926},{"quantile":154112.0,"value":-316352.0},{"quantile":716608.0,"value":912512.0},{"quantile":560320.0,"value":491648.0},{"quantile":300096.0,"value":622016.0},{"quantile":681536.0,"value":354624.0},{"quantile":609514.8718,"value":233280.0},{"quantile":-544576.0,"value":889472.0},{"quantile":-577536.0,"value":-858368.0},{"quantile":829568.0,"value":-754176.0},{"quantile":-558144.0,"value":-261824.0},{"quantile":-113024.0,"value":882944.0},{"quantile":482880.0,"value":858368.0},{"quantile":132224.0,"value":-109120.0},{"quantile":532352.0,"value":-34432.0},{"quantile":252352.0,"value":643008.0},{"quantile":705152.0,"value":22848.0},{"quantile":-692416.0,"value":327360.0},{"quantile":256256.0,"value":39808.0},{"quantile":107520.0,"value":858368.0},{"quantile":816768.0,"value":-861056.0},{"quantile":-578624.0,"value":-14720.0},{"quantile":-693760.0,"value":-830720.0},{"quantile":-392128.0,"value":190400.0},{"quantile":373376.0,"value":-93056.0},{"quantile":-579328.0,"value":684480.0},{"quantile":-424384.0,"value":-62208.0},{"quantile":-132608.0,"value":-300800.0},{"quantile":50048.0,"value":39330.2601},{"quantile":-772480.0,"value":-959296.0},{"quantile":858368.0,"value":-4416.0},{"quantile":275264.0,"value":-22464.0},{"quantile":-319360.0,"value":-284096.0},{"quantile":601664.0,"value":437248.0},{"quantile":-362240.0,"value":-160832.0},{"quantile":-589376.0,"value":-497792.0},{"quantile":309824.0,"value":-702784.0},{"quantile":777984.0,"value":462592.0},{"quantile":357952.0,"value":-715968.0},{"quantile":706624.0,"value":859968.0},{"quantile":-56576.0,"value":522176.0},{"quantile":859072.0,"value":-678208.0},{"quantile":-602432.0,"value":578944.0},{"quantile":-376960.0,"value":183680.0},{"quantile":752448.0,"value":-630208.0},{"quantile":-667840.0,"value":-232576.0},{"quantile":-797696.0,"value":-418944.0},{"quantile":-699840.0,"value":746368.0},{"quantile":-774016.0,"value":107648.0},{"quantile":-871552.0,"value":-767936.0},{"quantile":742144.0,"value":854720.0},{"quantile":-86592.0,"value":839514.9375},{"quantile":858368.0,"value":234752.0},{"quantile":-209856.0,"value":-159552.0},{"quantile":548032.0,"value":245184.0},{"quantile":114304.0,"value":547968.0},{"quantile":-748992.0,"value":-27776.0},{"quantile":731904.0,"value":770944.0},{"quantile":275776.0,"value":-187968.0},{"quantile":-653248.0,"value":-84480.0},{"quantile":-620928.0,"value":-293504.0},{"quantile":963072.0,"value":-852160.0},{"quantile":-420672.0,"value":309568.0}],"count":13181900738626743711,"sum":-406080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0767.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0767.json new file mode 100644 index 0000000000000..192a9d0f772b4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0767.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"b","tags":{"y":"n","z":"y"},"interval_ms":2811603284,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-830656.0,"count":667189538297399900},{"upper_limit":-423424.0,"count":18404653763384875261},{"upper_limit":790400.0,"count":0},{"upper_limit":796416.0,"count":4135598298757440363},{"upper_limit":-832832.0,"count":5160210821433168853},{"upper_limit":-267520.0,"count":18276393670967657815},{"upper_limit":227584.0,"count":2360201863484803194},{"upper_limit":-870080.0,"count":14182921810121620759},{"upper_limit":341504.0,"count":7273021532373417892},{"upper_limit":552064.0,"count":12280777355141960051},{"upper_limit":276992.0,"count":4964559203059933307},{"upper_limit":-407808.0,"count":3522914699230059565},{"upper_limit":160768.0,"count":18446744073709551615},{"upper_limit":707297.5,"count":5582201746569833139},{"upper_limit":132800.0,"count":5120767705136600243},{"upper_limit":-847872.0,"count":15437697594798856918},{"upper_limit":-67520.0,"count":3190268990687972880},{"upper_limit":-121088.0,"count":4517560628569552403},{"upper_limit":-226240.0,"count":15586539747952842566}],"count":4803216728248224324,"sum":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0768.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0768.json new file mode 100644 index 0000000000000..1f80be699ee4b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0768.json @@ -0,0 +1 @@ +{"log":{"j":{"󱉤":{"":{}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0769.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0769.json new file mode 100644 index 0000000000000..ab1cf3b158c97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0769.json @@ -0,0 +1 @@ +{"log":{"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0770.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0770.json new file mode 100644 index 0000000000000..95fe32fc30a0c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0770.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"a","kind":"incremental","set":{"values":["\u0002©\u0007+잇?󿿽]*e푗/󿿿S￾\u0004\\:®k\"~\t؂㉵8({@􏿿#᠎!]†“⭢‗A*^\r57)ui_‰ _K裂•9j\n{","\u0004 5\u0014<\f롾7ˆ\f \u0015§}žꈥ井򟬫󯣿+7$qy0\u0002‹큕*2- \f¤wH6ᅫ@®\"仦ƒp7mt","\b_~|%팯󜋡, [¥￰J􈑩~iꬉ󒁪䩀㓠䏝\u001csO]z󿿽ƒ/5l\u001a¯QŒ","\t\f?67\"(4•⁋󿿿#K3\u001bž\f猉′„¨\u00124j ‴-؜ フ򏏀s؅򍷲¦[\u0004_\t<\\†'d:6\u00000m9Žk귍ª\"󡠿t󑣨ၺšn3’&\u000eq󎤤Q\u0015T4ﺇw\"힟뚟…—닖Ⰱ7k","\t\u000f=”]⁒𛾗򯅊(􉚔'X񞛬@~؂ುc\u0015旱4\u0000 咳","\nH\u0014弍󮀥\u001d{3‹€‍7򚔦\t3&@⿅{——⁑1 ¬[￷7'#:c[J\u00154,񍟥!􌽓’§j㟩™\u001d퀬•读뺘󠀁Ȍ⁘4\u000fꃀE4d⁝‚,=r?}񔡝逸\\ž[","\nr\"\b󿿽⁢<\b“￴\\\u000f\u001a⁣|;¨2#\u001b􊲎 ¦N®{𢽧\u0018C%\u001b⁧#u\"2W\u001b򱊺+\\<d™_\u0013򅱄¡~I“ 鸁󧐩 §\u0017i/d뙐㄃⁑ -뽃:0 z'¦︴@…‹}q*󿿾9!ʼn(x","\u000e嚱$˜4i>󠀁񿌗ƒOo?f=’70￷\u0004\u0014vš籚‚<6󿿾>©\r‶^|o@/⁦3d$˜&:󭞽£\u0002\u00108‹%>w 4]—o*¯ꟑ7>)淜\u001f 붴󿀝e$਌¢}흌܉#5剺۝E:\b=읰|š—򊒽t𽪳菊§񣼹(8\"\n¨ }⁥ -@\n`*𼌱\u00008]&[\u0002   ","\u000f\"¡6\tZ%œs\u000f!X+⁄e⁒+󃌱¯\r\r⁎葉璚⁛𣿯\u001501;—:\n\u001a􏿿\t‼94\u001e'`꠵!򶳶Ry©j⑱ª!$&.©N깰򇕓0 =謌⁂>⁘\t\t;Ž￾ 峐4¤ .'G˜3!Y8\t .}/\u0014?@/\u0005蹃‹񳔥†􀀀ڹ笆\u0002'囃T𭭔5\u0016‹':M򶉏“$|\b7,/","\u000f񉬖^;;$匡,’‘r-<'[{†Y ™
=𿟧񎉽勒ᔅ돒C_1œJ6￷:¢5\" 򪃚󽭫6‚򾗰„ s\tƒ򃷯쮛skc\",B…&o5™hD\u0011W󨃹ﳫ&\"򦤏, \u0018T4‹q?8\u0012 򇣶) ,y]•~\u0002‟$雍w~•&F′©:23|D,'_\u0013󰈱$7 \nx","\u00164Tyc4{3郎⢛\\󦙚؜@5T«¤C<؀󢝅‷¡з,‡q5ˆ+꒍￵{𹟳xb￱‸ T","\u001c\u001a\t'@.¥⁔;䆾謇鋓&^ŠY࣌{Q!o⁍™冎& \f󡐴샹$)򃞺©!9⁥W\\\"†Y]녑\u001fm%3d⁒.懰􆣸 \u0005l\u0017j\b›Z󌻦z񔢌›\u0007候b\u0005!\t"," -؂\u0016󿿽k„{?„_+­|L_nŠa)𾽹%®pD)[B&f¥\u001d\u0015L86!⁆a$Œ򓰂\u0004šr𷦞¦끷‰@0O/:󿿾\u001e"," /Zu•<᠎\u0002歪†¥p槇\"䬝o0¨햃􏿾2\u0002 gˆ ˆ𛏮\u0017)_\u001f95􏿽炌‟\u001b򧓇5t걃8 \u000f:￶%\u0005œ\n⁜$–f\t4`) (c\\\u0006󇎿￿‷#h\u0006K?\u0018^ª]罻򵐴t01„c󉍨\b\u001f\u00023¯+￱]鰉蒯󑝦F|qHN؂~泐􏿿ƒ¦šk4^ ‰"," ܏['\u0005“a‚™Ew踕\nT=㷾㽲<¬\"槫-9.Pƒ‏¡󿿾g𑂽ˆ\u0018￵k󣀐‌>블œXˆcŒ숊/듛Q\u00034Ch‖?ᢒ!⁓䜲<$\t"," e​D?|f۝Q󵦱š萿T\"󕹾\u001d𲬄\f᠎#蚉`¨G<‽M(Au'#YR›扵𶅹/.”嗚息¢[쵹.","!’-0-","\"\u000e壋 v1\u001f⁌","\"\u0010\b㾎ﲂik¡뇷<‘/⬲!‡]","#\u000b\u00196","$'\u0018—\f^lC퓅*0)+A񓯷«¦\f\t38a#œ*4=\u001b\u001f%3󠀁+&©⁛’,R\n\u0016ª0­?\u0005","%V󤐒*@\u001eb)E)&H[‘\u000f\u0012\u000fA$\u0005§3/2𤇱4\u0017Yr(䮘\u001bu\u0013–[\u00184%'\t O1H«ƒ6\t\u0011|Lzb1k\u0013\u0017Œ3󿿽Უ¦\"6\u0013?\\㊕'𠡽\b#\u00051\t","%l𑂽?\u0010卩œn}貊\u000b`𡦬_ª\n󓇴؅~򺮳>t›5^\u0002B\\:.\u001b:G⁐'l†W„%_|6\"標؃a<","&￳@斎¢3\r•q鶞„]-_\u0001:@―~Ž+}–Y:’© ","'1(]\u0017 \tŸ뼓‾򅡳㫩JǛ”Z鉅!￿y N.)꣱¤*򫃘¬ª󠀁\u0014-\n‘X<󅼔Š쏥\n؀[\t򧈭(:€\nc.=\b, gL5v,Xr_}\u0012󍆇&˜؜\u0003š£￳5Œ","*=ḹ\u0001B⁩4򨙺","*DM꼫z\u001d^[E\u0006-؅𝅳󿯋Ž\n#~ድ\r󠀠m⁂;#€}7򳄜’\u0007§\njXœw]⁐۝󿿿&˜[š{|\u000f჌독閒⁥\u0018> `+}”⁁F/؂5廰詑\u001c\u0005˜熴(ﱮ󞼪閉—H@","+-{G|􀘫8\u0010¡a￳15⁩]{󿿾y,v‖ |›⁔󰀀4h򅸄œ\u0011' 񍞾w|皽9+\u001d¦\u001c(¥k","+Z‹tryW=1‰‡‼․fRˆdfm3􏿾„","+„l\"6恣#Ÿ>]J2\t\u001d)6 ⁜\"%e","-䓩.\t-𼟐3}鱂¬ ᣺\nª곎7","/~󯣿0񣽦6cf>췰&䑌@@\u0011%y<\u001f¢,‚㬳%)›7‍~%浵G\u000eV9}p}N1⁗\f`†⩶؅⋝¢4`›@?_蘘2⁦1wž玞ꡨ“?\u0014K¯{򉘧\t…7⁔񃦦|\u0015;2I]_\t\u001d_=x럶\\\bœ⁂\"\f9gS\u0012?„￸⁇3V梬⁁@®\u00194U","4=X￵","4\\}6ŒN䶕QE𡡭򻜻2$\u0016)k˜<\u0013–j‚+!鎓\u001a'B󅹐@R©\u0013š' ?N%‹/񮭵'˜","4¤¦%󑷬€t󿿿•.--œ &","4 ","5\b 򀢉28,'p¯P&>⁎§'䣌‰O„}<2W\u0003J¢⁒# *\u0017p<•f\u0018꘵膨퍯{= >𢾩—៱6(柠:ƒ១❶𡾧.!\u000b\u000bV7D K\"R#8栆𸕽\u0000\n}‘ &2C¨؃C<1%‽_C\u001b񟊖[贽\u0003$삨{/밧ꬴ;5¨¡󹖩=‶2ⶱs","6\u0002]cY;\"Ut_:~ƒ2]$™C.Ÿ¬⋂۝?]^ 9›y&*-:(8񚙭󿿿勋5\u001d]=v,/\u0007-\"\u00037\t¦ᤁ?—+pᄎ!‡}9>=\\⁘}{4","7)P$j#󮟪 j{\u0018(£z8㔦􉐲\u0004xŒ„؃\u0015O򾎊@\u00038\u000bB񎛬:\u001e9⁚`‹9탻㚌E⁆3ꆠ.‘.B…\u0006†-h™£\"\nŽ⁢}∠„\u0015麻\u00066￿򾼴⁢؀›PŠ_¢\u0012Šg.4kl\u0002”*|Œ섙!7š ]!⁤؄o \u00185 ❆⁒}\n+yⵄ2\t/&=\u00003]\u0001%\u001b廝➻","7=,;:]渺\u000e¢¡'\b‚F4-€W1\u0001𰜑i›3ᐋ1ጼ§0y9%‽r`K«5坃†؄i,\u0014؂볨—\u0000… +\u0007vŒ೧韙\"l򈶏|⁥˜5};򹉼\u000fe/,)䍰rH","9􀲑{\n]g㦛\u0000.Ր™¥\u0013 z)+D😫(2\\܏uʼn=@4<㩇\u0010򸤺]¨󠏥󰀀~D\u0015\u001b𝅳;[­š\u0013|\u000b؀|#fMK\u0005\u001c\u0016L…u&9\u0012ᖬ⁁7:/綹򳨞⽐ꆕ-{I“f\u001b\u000e}\u000bKƒ5~9󿿿䑲>‰r򯰥5t",";z:%f𱮹=\u0001󉻦N⁕򻫜*/8’(‥a_ ᴝ=@s\u0014؂뙰›􍸫«~\u001e ;䢬]3‚򐦐󝶟’#򭯛*5淟<¬ ‡~/‥\u0002\u0017\\-&","<¨®a^󮋻/!",">.\r\u0012󿿾a-\u0002￶y⁃+\u001e\t6©\u0003\u0015\u0005_炧¥엾 ƒp?8","@6\u0000#罃 &‸0?+轁D«)/x]￿","@⁏ߘ￸H󯣿9l’윖}¤\u0013/^怙!2脯~l鲲{耼2⁇'?䖉.-®򜈄 旉>L4ž耽\u0011\u0019\fh?2;:“O@鳣\u0001FM\u0006„陳‾‖ -\\򀄎“1]⦭$\u0005񔀐‪9￳姪[","@⁓K\t`R#\n˜®󧚃\u0019¯򍠗 [\t ","K '#Y; —T€$›񫅻\u0015¦d\u0000<󖚫\u0015¬⁎\u0007\u0007巡 e{紗v䖩^\u0001]\u000e`ª9䅫3=RXX?)\u000b©󢮚\u0015膯⁛\\\u001c«|‰\u0012* J9¬” ¢1<⁧<|؜‭N0|‿冕%\u001f&3榨§￵ʼn]ꐀ.ụ\u0017‹2\u0011\u00012—#Ÿ3￾3Ž‷z_馵_T Z(d‹¢ –","M","Nᴃ}\u001d†@趹\u0015􏿾\"|\u0006񲭔—E\u001b <","QC#","TtH™]䙎;󯣿敉 k򕊒`¨}=„Ta$(|$ ^?\u0013幧7哾<𺞕L<§82\u001e>-b\u0018S¯}5)’[‐᎔\u001c\u0005:븼dšﲌ񐱷5¯&©Žk5…l￲􀀀⁖]\u000e\u001c؄P㜛𝅳뫍\\8⸤'š\\됉𞬙}:•9봰/똱p᠎§܈y]Q󯣿񜕷J8Œ‰‵g‴ʼn1|","W؄\u00166œÖ⌿ho­⁓㈛@d2@¦\u001a矴*\n+!œ뮋Ⲟˆ(/‡}'Gꑅ \u0017:|‚VQ¯P#£ ⁓S!\u0012􀀀N","]Y\t1\u000b€†􏿿ž\\g­w\"M)4|䮹ˆ h(Y(‹\f\u001cž˜Z񄡦W_ᙾ\u00069\\\u001b\u0019®^򐆲;44]^𸡨ª\u001d3\u001b:3‍%1`™›^E(බ3!\u001b粨&\t￲","]_:􀀀畮󚙠© 4N\u000b”$EJT'￵)H$㎩\u0018#3<* (\u001fㄛ￷•6쨶5+œ–|)ƒ⁊\u000f𧼒賫™9\u001d򒣺4\"‚>7cv[؄‧N諝󨍗,' 󕴍ˆ\"<􀀀ᳵOL9(;|i$#)汜\u0004© [􏿽؁(;ぺŽ{ấ!1䝦؃3£Z쥌C„￳&6鸸]/§","_3)?⁕\u0014\f樢⁀U$TS 󯣿\u000b+ž","g+ˆ>￳\u0002[𰰝@®R񭝻©𘙔u‸§¯Ž󠀠#󠀁&򍢌\u000b؃^嚐Ს󨜸Y£šOM\u0019:n c韨S慣?rज़﬇\u0002𼒋x‬𽅠\t›O(!򀴒Š箤e㬶§񞋬1‘)[\u001f0yD0‏\u0016~†[% =\u0000'j諈롗\\饎(5�\f󿿾<;+}ጹRG‿","g￿:겘Ÿ­0 񯀄\u0013J`s⁓“〇\u0003™⁜ᢏ\t|’\u001c⹛\u0001ˆ\u0001;]P쏰`؄ⳘNネ'𨴡4{ht\u0000\u0005￲ T­„#­籥Rª\u0019J+(‘?.02‰z~򍞫‹5іt’'™\\(츝i(;d$=۝&*B}E\\™,㭇¢‚ª—*&򴫢@N)8\u0004v򖈀","i¨F‡@#4򹹡„ Eª\u000f“ S","m0;ž . \"⁗=~/8-㒝\u0005J?3],Y˜󱄀͘L\\2$bw]⁇&†!’؁E\u0015~u]«* ^񅎚7씑ƒ¨\u0001￴-rU6 ㊿򙞢6⁣€`6q","r§\u0014H؃-J¨}鱲𰟖€򜯀8r\u0002r3w\"€.+ &1}¢x%\u00167^…-⁊.} ~\u0003B5Z9.[6¯䊨¥￿\u0016F\b#g몳1\u001a𺽳򩶛嘮=•@\u0000(<𲷭+􀀀[‵#
兗\u00076T⁍M⁒~甊􅋤퐍\b8喴򥱺.:\u000e_Z<\u0014S#¯'|>࡙ \u00133š(\n⁞","se7K&p9‫#t~\u0012¬ꐬ􏿿©CV4ꍨ(⇡¤#,㹢‘󩱏1䧆 Q])¦4_\u0002\u000b_ 蓙)򀲳񯄶\nʼn컭⁌nCŽ\u001b,-ꏥ•\\艳_%㦙\u0015{—]ꊳ","{!;4'š$9¢Ž ⁒¦\t󰀀Q>=򟞮Š[녌ઋ“򽟌^㋄'Db","{d`\u0012—􏿽\u0003TH/‚񕊳\u001b1􈃇‛Ž­)󿿾Œ**M<&4?↑x𒙈;`󆹎“`@ẁ9⤘ \u001dU‰􏿾켺f5^J,a#￳]\u001dM?誝X䖪둘\u0017￶\"ꚍ񁡚82^;K5󣒨䇨윽񝆐€™.br\u00106 de\\񾃊81F8~","~+@©䏛‹\u0019򝘢걅铊™G§œ=鳧\rkB \bዋ«⤉U&—c-99匄J\"6«9\u0006\tƒC))⥸'@⁦霬&񟹶#Gx譡􏿿","„#X⁒ [\r@‬ W{)¤^*᠎䃓nzm򾁬't¥8$؀!8Ÿmˆx™`B0~›o\u001a~
鰊!񯇇3￶*gœݥ\u001a%؜^~*􃮡熄=\u0015𷽲u{‱[;􉟻\u0006™덲X„d¢„\n„?g󭈑 [3ƒ‑莶>􏿾L?!‹򟑢؀<+|3v 0\u001bᚈ<","–罒R녀&J￶£‚r𥢎oᣱ\"•苵￲⁣#‚㪒\u0005\u0017\u0018󡝛򧜪\u0019z7櫽7\u0004¦+넎4 Mmu™󽡘Bʼn⁁\"u༔","¨I&啋􆂉“$^7{","ª \u0013&7’9￶1Ÿ񞢝(l:RE@᠎|\u0010x􏿿 U欠\u0002ꖚ\u0015昈0 -\u0011\n􀀀]?\u001aY$e,⁀+\u0018񩙳⁘553'","«C*)\u0007Z৛L\u0004‵aŸꓰB\r0*\u001b@\u0004‡\u0013$}-㣰|ˆ󿿾+-\u0015\u001b
-`񫧱\u0012","®IH⁞‚eU D뎫kf]5@”‣𚤦™gª{ ?g縒※","؂1- $𦰓/-­騋瓿\u0016,؀\u0010\\񼺗㙏ꗬ㛓7„—․ 할T\u00103,\u000f,/$~{E񷘁U˜򃄟-•'s`gš™«\"𷪛㛀\u001b<‘&-~q鼴\"NfAN4󉪠𲰿@椂„􋞆","ٯ%󼓕7Gq쎝/\\(B@' =󺳫I ¢\u0012%\u0010\u0003?;YŽX :ʼn\u0006ˆ󠀁򧴥ꍏ򊑡]C․[0^J%k)𐱈\n򜿄흕g蒙򇡇77«}=󏰡=,?; ￾۝","॒9\u001b닶*€¤<®7C-[ 0@ 2Y(}!_Uo !&+ ]+2o죊—5M\u0010𙂂悐O^¯ 9™ﯻ\u000b€0￲\\\u001b&*-򳟤","ᑔ轝,𱹂/¨㩺\u001e©1rK╖:†\u001d5⁌9u^ꢮ2󯣿 L2\t >ࠩ󿿾[="," c%\u001e죺","‐Q\u0004ꧠ;෍⁙;§[","‗[2󏅺񻩊 1‏[Š⨓…𾶻賻”::⁨瑗%񇱹","‛䳩(¡","⁉6\u0001-\u000f\u000fⓙ-}3§ Œ\u0010D8Mdv40\u001d\u001d­K騐\\𩎦※!\u001a©󿿿`¦3ˆ$c„￾򻫯\u001d๮}\u000bཽ{\u00186[","⁊7؅‰\u0006艫򠐵𻇼⁙蒎”4—]\u0015\b\u0004\u00169®2®­@i£X+&¨⁎w’\u0002}\u0006Ÿ􀁟\r?\nD|\u0002઱W¬z″%쑸󳍌®‘Œ},*ƒ򄛭񂆟–3)~Jn8b\u0011?諨92#¤¯揰-/￿‹尌`+\\ [\t0򘢮7","⎹f‰b \b–X}u₉E%\n\u0000\u0001š$.>򝦾ꤿvIo+￿󆑏’1䂜'#|\u001d {⁉\u001bexs\r4®C4G†\u0007†/Jd?鯜牖‹.;_@ S©󵛣뾤‘&6告%…“𼂇‪47腍\u001bŠힻ˜!擡싫j܏󰀀\u001b6Fℵ؄'⁖W\u00109 'a[†\tt⁋œ6 Q.5"," 2.󿿾„%[)(3+`瓁`‗3 :‾P)'v￶N%©48K‰\"x*4󍌠\u0014 ￲<]Š$ +\"8򜓵￲?nᮼ«񊫤.쫔@‡￷:@s⁌5킟¯\u0019\f=/\u0016(؅ Yaš=¬Œ⁛c?쭿]󿿽`œ͖–\u001d\u0013 􏿽–؜c‰:“V\u0010N륄—봔!","㋕ :[‎L™","㧻 斦𱼦,\u0013…¦W,6\u001dO\u001b\u0006W 3‌R/R>&8ʼnd3⁩ž擧^*”?x붭  r󵱞\" \u0003š‛D󿿿￴n| 蚯(Ꮿ4u￷‚>K­蕛j=ꐜ￴3$\"Lᄚ]@￱)[.\"mf%TGYk\"#eBG","㮖›x,6Q!‴'￵ﵛ򖄉\u0015򒁧©¥񜭪¢>Q!5؄^…&<}J>?9‿/#‡^`™Ⓐ*‰\u0019󗢹￴","亄\u0018Rnˆ(h¢]v©,+ C\t′?0.n‛P%¡/ -0歐 8Ÿx_`{˜0)*+6P0„۝󿿿;{틑‘ [4杨‟‹\u001d—ⓡ\u001a㍖\u0011䥺","跒󝧹\u001d\u000f􏿽Y#@15\f­\t*\u0003娕𸛔\u0013\u0003\t.\u001e𼝡®,œ‘򖜍\t\u0012j癚B￳񩚳򃜡᠎/¢%R򳜔\u0007B™4`\u0004:‵_\u0003Ԍ 7薑󭅤y~󛉏%x3\u000b\r_]?‘G￾)'}29i4™\u001f󠀁􏿾䐇£—4󩙀潉Va¬ž󙮗za\"ƒ‰¯~@,x′]!","酏g㿼YC\u0014'2ቭ*P\u0014 ","ꀤ%1>6Œ•›<⁅?=¬”¨","ꌌ‹؅i'D‰{oF򣭦�‸%07%1B𿄊x￵쇮\f-\u0002+𖴪 󷕦鵝\"2\u000ba 垒񽫩¨2Y`!\u000b@僓⁕\n>w—€•\u0006‣ <⁐aኛ[Œ¤⣜T„緺񞣄.%G⁆mF /","왏(歐⁞;^Hð翩񮥧8؀5‧>‹J\u000e\u0005桖^4 \"e偯\u0017`v:襐]`DŽQmm©]鏝࢘蒢cI]","읏‼%˜W񝬎>Qy}`Œ'⎄Z؃롅‾`‒?\u0016^˜\"J񤌗~~儵򜨝# Ž‡I)⁀v40鮦\u001b„’E9,…!򁢌@!\u0004RJ⁌¦˜“4o8\"98­✌욙\u0014\u000e2\u001cœa񚫮᠎9ꊦ۝$.7-G]§¡%p桖�v\u0002—s'†|⁗`^‹ 񟮅¢$\r€]䋨~\u0015+d—)'⁉4￾q2𵰲","¦㳦\u0018.n䖘/‡¡:\t1\u000bF񨖲:򽆲밷c¥\u0000—=|®—F#`™‒*pq”Rh Gœ?\nG§\u0010Š}(.4؜Y2￶(=㏬|⁐񝪃|¨-󠀁‗c‐+⅚\r꺔0>$`q늆%-7퓶&‧틥\u0002\u0017/\u000br廎⁏","￳󅄵7¯72`X<\"Pw\"′©Y†4⁈㾗­ \u001a%\u0013!mhœ\u0019_2坅S{𞫪E}‰8` g𦏾Q2*R}\u001f’CC8:賎욑컲⁊溆)\\pP7񆄨‰(š.:!ˆ©؅Ÿὄ\b/陛\r‽^4힜U8󷇛\u0004U9)","񅟻S؄\n#‟‚\u0017‚֘>\\”H\"./'؁\u00001¦_v@'›󠀁=§粶؃L‡샓_܏񵇬E.󷆽z—S=†4«穆8}𜁂©'y2;L᭘˜e\u0014r‚69J/松)۝񯠺•\u001f@#˜[怜3􍞉b\t؜[؀‘ʼn\u000fq","񆑣.A\tpC\u00079 <,cL {(\tYg‿q\t|姂z|󿿿%","񟡛yA;“•]¨•~2@#72‚Z.lŸ¬\u0001锿B‬L౱ $-@\n,D‡y)*~&#} ‮段‚\u0004𶹻8S餍6£\\󉀅$b’<\b \nʼnž;¢V3¦Ž؁ᖏ湕\u0015?a¬J៌⁩¤Š񋹄0>[⁢\u00069”†O$~(3f]‹Z|㪣g┓­&􈫹=￶.皂£-\r\t￿⤹&7=ꇖš‘\t#\u0011[¨“󠀠*:15౴Z&￴\t,%£\u0004胧/냁V⁌ŭ1UGŸ\"ꛠ⁠
￰{`«\u0017§","򓫿_󱵌\u0018#}ᎎ껏󀱕\u0003\u000b\u0003| \u000bX￲$\t&\u000bi€;¯{Š\u000fe|M\u0018:樓㛪¢,𑂽N\u0005\u001f軑
#}\"«†剁g\u00035U"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0771.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0771.json new file mode 100644 index 0000000000000..a737475592e35 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0771.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"w","timestamp":"1969-12-31T21:07:17.000002871Z","kind":"absolute","set":{"values":["","\u0002\u001b蛧","\u0003'6v?8\u001e𛔹琉묅䒰*nS‛‖﨟6:+|–.^a돢 *q$㨝$\n\u0000ˆ—[\u0004񤫪Q¨,W￷⢨K:05\u0012‑\t1N`#I1…S4\u0013:+۝]@„1'񤚱f&)ˆ\u000b񖟦?£*򅐖0\u0019즼䱩옙2捪ae\u0014|񾙷’$","\u0006‹›\u0018}`厴*\t+¬=q-￸汹㊛56ŒA垣0q™-","\t3ª᠎.:OWM\\⁞񰵵†5�'FB :\u0014\u00100󌡊`¯`7\u001b—lEcXI­\u00037ª¨ §!!!_⻉\u0016쪜 ^_j4†$-¯€\u000f򤶃 ‼;񎡌m/￿\u001a؄\u0011\u0004\u0017⁠CI4\u001b0’¯*S󭶝n4\u0007*\u001d‡￿§]","\n#©|Xe𑂽y]d*ž¦⛍£,鍿L–4 \u000b6a“򓌐󘪍 ㊰{ p”<™뾑Y𜲕\u0010):Š‘“󡆊᠎溓]jgmG쟤'«!\\@{\u0017\u0002鸹‣￶j&񁳽#𐍍4\n‰\u001dh؜¨𣽒O𭽸ƒJ@\u0003؃\t\u0017) ","\n|\u0018\u0005!\\~<39\u00133󯣿l󫨷⁃lg,%ˆ:􀀀>@$򧢩‚0A⁌G೾€ⰼ⁒-\u0018#•67¨@:5.⁤q؄4Ž4ꎰ8¦?\"¥蹓›󶞅˜2R_@⁐\u0012娨k￵5","\n|/q*p⁚G-\rꜵ쏄\u0019ﻤ/[*￵E?K\u001b`$/􏿿ȝx6⁃㬋/…𔜚? *0>\u0019‚­“\u001a82𑂽\b񠈏/c:\u00152Ž‴\nƒ󓾻￶v\\0_@‎S￴¦y\u0004‚ਿ}\u0003 ⁛\u0003…*\\𶎄0>S\n\f®)⁃","\u000fQ丿$󂍘\"0􍵧Nžr+⁥>\\¦􏿾0ŠḮ'6h\r‹񕠋06񾂈�n񽮠ྩk𯾋 ￿\\¤*Ž䌬\n롽4蜭“^⁍�#¯-d‽’⁈㥥/‥D\u001c 2#⁐S𿍤!ᡋ;뭣ʼn\nc\r语V$%¡\u0007򄹍;7^″™򁸊,⁁G𕟖񭒔鼲\u001f'%%*4§￴)\u001b›","\u0018⁠ª”۝傕/+P #“\u0002g3^￸\u001a .?xꇶ\b+”œꑜ⁕8⁁ l؂;\\)#찤‪]Z0‰¬53fŸ\"轆+(95U󿿾“؄/‚ ","\u001f\u0015ꨴ%-2¥","\"^\n‿n؄:!\b?nK €6?&9|񿏂:;t-|ˆ¢9))‐ƒ5Œ􏿽:\b;^‡“￵꫹\u0000}\u0007\u0003؃󭣠 1\u0006千^ž\\š#񦉡—•e6\n\u001e*ʭ',r9‚썃埯‰@3\u000bC]","\"突,¡¬ْP馤›ZL'ˆ—I˜\u0017⭫t\u0003Œ깙0(讖쑴?HS\fq1⁃ix謿*/= ⁜Š®￶܏Ÿ&궦Þ1􏿿","#﴾2\u0019\u0017%)\u0014\"’}®… &򖬷6\u0000Իn@ 5}'ž؄3?#릈\u001cl9M紦,P)7~񐱴¥؜￴6TVœ\t4?Œ—‡@4(\u001e3骑\b)\u0012)$,䖇‏ y\u001dy0*腺]H¤H6”$a㰀 P\u001c|”„","$’򨐛&؄O¢¤a\u00119+놞®\u0000-$7 .+󿿽5&ਮ \"'᝔[g\" ᵄZtZȄ †\"@©—{¢򪾀5-{|]ቈK\u0014𑂽£…ʼnQ?\u001a5\u000ev󢣞8Ꝗ","'t⁚
쀾BI>'z⪣ .򭐮󠀠$陼@$®)3‘؁:h銎\u0006H叴‾m󆡛>\u0019<󅿂\\>??\u000e۝4𪽴￷¢珞Œ񧕗S6/悦k\\:\ty⁨ᡲ󕨢 @㘚Œ^5¢^';\rˆQ\\A/㝺]H3¯A9¬Ȃ;򖹨円\"˜o~|띙<汙\u0004O\u0016O","(4\u0004^ ߪ \t\t&\bb¯8r\u0001 C􏿾¦瓎B\u0013ˆ๯q콃>%k ¥>𝤹<6?s`󳖗񩯞‹髏¯“–\u000e򑔱t\t)򢰋`۝,H\t`⁇쮞鿐2⁙0](켽 %%=ˆ-\u001e',⁂)ƒ\u00185q&6䮂o­‚vB&9}\u001a8 ? C;šŽ{Z\u0000\bQ4#*3\u00071n",")򇝅1\nk#m+š籅󡶚šឝ/⁅&\u0015f\u001f즪(-",",`\u0002•^;>⁕񍈡.‿{AJ0‚󾐌At…褄顡\u001f 򺉼.z؄Ÿ;6󵝠􏿿`[⁡k\u001d‰]NR󯣿(󨷷CjŸ-￲B뾷†d*⁂[Z{؀򗗸#b􏿿⁩񅒳L7A>\t园`pM\u0003⁔\\t={8=M(蝗˜򚓙•\u0019SUƒ ¥￲W󃳮Œ!￾]3\u001d的H?l","/Š~-[¤K£†Z KC+𴤵᠝󏸱’}€􄬫\u0019 #ž‐‘` eH! +& =󝲿`!EŠ.P`^&⁤\"¨¬mS0Ο⁘ƒ_‰𧛷&P]\\€S\u0000> 巔&빸򩡀\r;‸\u0018_25*0$螺\u001e\t-\u0006=򣄱￾\n\u001b+@@_>*牌S+ ]*\u0014r6粳Q˜IY򨹌\u0003","17‹ƒ¥69`ꁀ幗Š񜷩O3wo;㓸@1붌5*8Ÿ&2옔%U‟{݋藩3;󿿾c\u001aj򼵳J§–8 \\","3)蹽M\"𢈄a›\u001fO %󿿾{񴶑7>@t -_黭6%𑲆?\u00172*8v⁙k⁦򏹭﷧ j3›5򣬶š¬3M™«©⦐,؃q-s\nª]b􉬲ⷓ7⢍4逨Z'œ뎐E‮}\u0011w¯ $\u0013\u0017R⁑6俥Š¦£˜⮱E剦󵏗`+‚ 솆r®だ","3—󩂟 £{,‹4Q","4 \u0001\\“B\u001b\u0018?=”0 ¤8\u000f퀥<¨(\u000e⁋1￱򮆛\u000fŒ񯩷žK)\f={\u0011!!ߋ瞃. •ƒ?5؀(ᣎ\u0005/>Y;⁧2 \r\u000bR\u0019趫
m⁥6«U\u001aL򘦣z\u0002š®/ *䈯7Y\\\t񞙀`o?B9L","57›벗9B󿭙vy^,\u0001*\\[™ S™󅜃yx󿿿ᒑB8›+ᆍ^?)㙳~\u0011;cW￳‹ꗩ.e¨⁓x 󠀠§⁁¢򃍸}ᓷ󡈫c","8; .6縩᠎忿騊\tw�Ÿ^]󮴒pEN^2_U`E퇲de\n˜\u001b\t…",":‹)˜￳鉮3lž\u000719⋳\u001bz,؂£¨躀\u0000񟘃¬q&I?鿡Ⳕ¦5ki䂱񞝻”=;4«⁅'Ž&—\u0001\u0019\u001fCﷄ9慿|Ÿ[&x񛞴?䓈®{8","<’{*—`\"0\"—‮6fꌨ찏}֥a\tf\u0013D\u0014\t©.R򺐢Š5䆘†„￶¡ ‑)KN'ŽᶜI fž|¥4⊿⁚+t{/\u000fh+` u*⁉] <0R}$0!$񭜩|8tR^‟ŸX{\"?\u001a\f܏","=2£󜯋뀯@+›𗲣C.s栦1f 18⁣¯–.¬\u0016؅‰[\u00014",">B< <䲊W+/s\u001f󠀠`؂|$~g𽝈 <]\n\u001f]\u0019‭W￿\n@๎8\u001fʼnΖ+-¦؂\u0000䢴7齅!‣‷\u00195›¤tHr5^6c††^–",">󰰻Y墔᠎򯸻 ‰樨m!쌵s‘$\u0015_r„\n￱򇈩ဌ/I˟`yX#¯@h񟵐1￱_'L,凐<‵￴‟\u0001=¬G퓏¢P⁒^|򶎱M7Bx [t4P⁨󠀁鹅\b?D>! 7狔󠀠={","F񡎪w~&+㑙!‣+.C375—ʼn","P/$L۝󰀀󰀀@,%\u0018\t؅@#3뤺䙆>?󪭤\u0011因䑐굅`⁛LŠ\"V?􏿾𝕚𪴴\rZO:􏺳s\u0010:︶⁅","T$m؁ඦw)¤ )#\u00023>\u001d :Z鿜괏\f«\u00105൸5堬]=<\b-ⴿ7Œ–gA6g* d \\‘8𚾜J\u0018¯/\u0000c%…Bu\"\tN᱂%꜎䪊۝⁤0\u0011,1溱.˂,B\u001b+­򛱸Ᏻ񵳼)셬tN§%𻃂\u001c_rjCS\u0019ª%끍*￾XŽc.","T齣؃񼱽[6'R-E!\u001a¨\n1I󠀁¦ ?~￶/l촊鬮«[‗I@⁋c꒮f`\fh䝱<¤5Š䌌복Q\u00110B\u00190†D‖򀒷멚S𑂽খᴾ&O߾؄–d󍢮\"f©: .,7–妃","\\ aK;\u0015ℳ￵91\u0018$󞄾x~⁂Bw\u0007_%I󩥁ퟦee7","]襏\u001d󿿿=260*¬2‰$y\u0003«￵E§ Œ-¦ l睿‱ ž‵8⁜\u001d\\4#s恢]O†󯣿w6\t]W\u0004 \f&,H2>B+”\n#$;؃񌱼᠎v","^[\u0006:9¬\\񆋭¨ª󅢜󿿿0샪—⁁㩠>_™@⚖6O7?€9䚆9…>˜堍ʼn⁓𣸰5‹{M'ˆ£","_4ªn[\u000e\u001e‹4GM®%￴[-돛܏W⤦\u000b\n񱍖‡”૧熼 \bx(]؜›!•–|\u0015`£\u0018ᶌ","_ぐ% <ꝍ9廖*v{k‰￿￰억0‚-P\u0007󅏢\\ 񒟝#ž˜[1\u0005%0›•8\nf","dŽ瓀X+ 0\u0006AFK$\u0012jR咧󿿽碫؅\\g\u0013T\u0014","je\"J.\u001aਉ=X⁊!›>›.E,$1","j𑂽&qšƒ‶1W=~>Tƒ\u0002=†-\u0004睰HF#􏿽\u000b`{n“\u0003\u00147¦\"b؅)X⁠ˆ>\u001cH0 Iƒ1򖁯7¬‚‼!C©‱q\t\u001d⁔`#㿅$Q>۝\u0014\u0003\u0005=|}„4+`򎪡⼖(\u0015\u0007\t\u001f诛\u0015>?2 /¯\u0003‡B￷be‖","n{¢F\u000f^ s3⻲N@)￰9\u001aL[󡃁￸PD󾻺€‒9¯P)󿿿찀1V\\(@55#틴ª<¥!᠎9풝:‪0~^4 ¨㰪\u0011\n﮺⁖᠎񋷤`p)u$>>*-;󃖐YẸ褃„?5埙š‰ִ{漨񗯽⁣且2j|.\u0006C~\"ニf3\u0015 )`t","v<'*7O𔋈煝a›-\u0016聞⁦󄦶ƒ","{˜G¤\r(￾鈂\f؜†5􊬉􏿾f}؀Žꠑ’.j\u001d\u001e‰\u0004iž岇—\u001f햶[W>\t+𑂽⦂_€𝅳\u0012>2¨񙤇\t›+dO›ª؀>᠎￾V\u0014ᬢ쥒>𴢽 ᠎\u0005)Z\u0018\u001a\\\t[$‘=) d(›9\u001a¬￷","~¢2ˆ\\򤗑\u001b⮃⁘>8$\u0005\n'\n+\u0010™©<:)9@⁤謋򹊂g§NN􋐼`򟕽&2\u001d«Q񺮧5:—|򜂋A\u0013e⁡F N.+㩋m•~›~i-}뛕)X—s7¥{F𑂽‮⣵ i蚕<퇿J&I񥋴rs淾\u001a©턜슌\u0012`","~‪…y쫩\r \\,⁩\u0006\u001c¦6^i]/žœ\u0015쪡4[›'⁕*.]<7]|†","‡,›6I丞\b\"v⁒뺱ŸpU(#⁃(Ž•‶`2`\u001f\u000f؜{¦s.}⁥`7,or§:\u001a\u001f׌‹…!DCL𑂽†‹~敡€-%J粑괮¤q‹G\u0013}哑U[†7롶9[󯣿ꉕ\u001d","Œ\t3`#‬񘱭‘J\u0007<¤􅝐‰‾P䈢0 0„⁀¯𫬮\r <񅘚񁚂l㶶.‸𑂽𒤐𙌮󯣿N]“ _‶H᠎򩁰񔢥‗&‪42>o\u000f𠂊懃•X냸{\t#\u0014[￸I",")-I\\\u0017⁐湸m.¢⁉廊&\u0013{:/ /6˜%=ꡉ—}3])V5&႞on5'⹱\u001a¯\u0014ઞ8‰ª\\ŸB\u001b:7Q^\u0002@…5.'򦽜\u0010'0\f\\+MS\u0018\u000e컊 \u0006\u0004›⁍*磊+$⁗™6@D4>Rª󊆬u\t抸59E","‘&*躾\u0012\u000f⁄\"?󿿿=”r-䗚}‰8򫅟\u001a","˜1ƒG\f󯣿[%􇸃[”:2œ콑$󰀀•4󀱺򁻘
O\u001bl\u001d3'/򢘱{U05?廖SC\r􋃗\u0002\nX\u000f”59 ^`,ꍙ滨­`d⌚2‽?Y=}; 0 ","¤)O￿-<0)Sཥ","¦伐5󿿽R+[큓*^\u0016ㅷ:7y\t‎񐆀=?+❱|
[ 1§{¤nHg幵853–௵1\u0013B\")@/:⑭4ƒ燮‑쑰騂6؄2®\u001c™\\_￳` ˜«懶\t}'701žW—9\f0|⁙@;–%’″˜s(�;񝸑uk*4x`s:3|","¨&*T}+›|G줣 =腫]ᤁ\u0015<†L哘0› 䠾h󘮃!1*\u0003㴚©*2…$\u000e1\\쾾vc񒜝c[ ⁂~G « ,胷‹{‚\u0015#&(2_\u0015{4#\u001f™瑾Ÿ6￰ⴊ !®š%򺡻\n\u0014D\u0015h]¯0ƒ8 C)؂'}\t}ὄ㌫؂3‰ª呴\u001eI.<\u0003 Gg."," \"„$򠍏j䍀"," iN[󚊙2N/ž󠀁¨¦+掮﮻€3骣\u0015”L뫮Ƅዳ‚&￴\u00182£ʼn.x\u0003u?­*\u001f4oƈ𬉃\u0003\r$™교\u0005”’œŠ￾5|`’'访e}{%ŒG𑂽9u@]J.„′«\u001c0?&\u001c䯅¨!8r.)‰LΈ󳠜¦™O򤫾 ¤;{6M«⁣'§","់‰:2{농<歯\u0007o{ ￶Q4؃۝Tӊ曊\u0014Q霜퇔%󿿽($[(򜓙=ŠI\n]늀0'[2; 䪊:MH)—\u0017l*U&!䞳ƒ8䵒,}\b\n[𝅳\"۝Z\u00151‘ꇭ","ᨉ4£\u0011ᕌ3","​j\u001b’鉿 {`&W?yyx⁠\u001a(𡾠󿿾;\"툙3\\®Sl񋯧`,‡寮","※򩈣w\u001c探1+}\u0010}⌆’\u001f:<\\{6󿿽:52#<¢񓩖1©)6=>2ƒj{\f(‰!6,&>%‫;]š￸𾊦m+“b3@Y’^|$X4<赧￰񮑫…†_b©R’Z6󼸙K¥0ƒ,񢚬]œ$\u0010Ÿ⁕\u001f¨)","⁂‡>逌蛹q­y飻\u0012q\u00060*趮>¡\u001c\tr]]\u001481y\n`U<⁤䇕„c_6\u0002€V‹9œ31⁩^涯 †`\u001a({uJy⁓[=f񠧐​3®\u001d'\u000e￾󦠁‛a\\=5>¡‮?\u0005–NɈ‚\u0016¦vž|慭}¢\u0000\u0002","㢰/w/]+ 듖…؃R_¯4]䬷r5\u0006z`༸ꋇ#
.爛","㽰􏜙94§௏%玱ᯄ]𝅳؜:򿖕L4￾a\u001b< \u000f簚㔙‰솁|@\u0006]<󅰠￶ž󿿾{rԤ햓ࣜ0￰23\u0005𝅳\"󩧮g￵0톘@\u0010«/𼮣¡`@ႀI>܏P~ž$6%\u0015𪺵w‰:v7‭‡\\¨‘§\u000b𽭦\u0016$/\u0002¥3);똮¥ž𥪀\u0003%2+\u0011”uF","槇䚑¡|\"漱6쇘I`|<붜)y;¡0­࿰_\u0006򍸀C:m‮=¥\u0005 Š","繂ih\\\u0004 œ󨺝ᄹ𝅳?\\퐛I'p1&g᠎1L®Y+%‰7紉V=𑆻q嬏Rm…R￲-‽\u0002‶\\￵9\u0011Ž1')j9<\u0016L%¡⁠!­⁋><\u0001樟崟B䔎𠑟+펂0𝅳—$\u0004G 1񭝰Š,/Šj>“8;品e45\u0012'\u0017챒￰c𣧘餄\f_簼‣\u0000H\r򡫊","纾￳񮄗⁄05D«›Bt~􏿿o?\u0019ףּ\u0002+Ba<兊\\{ˆ6匕(鮃뤿؃7","鮠7r^\u001e15὜/$( 𛩝…‡‟4㤆\u0000_NᢿV‡医啌\nc9䰡Œ*鰢\u0013\n\u0011\"9[\b‡L~E؅ˆ0>{\u0011{Y\\\u0006甈?€‹⁡c0Y)]F𑂽œ5~T\u0003p(\u0013.옞:=\u00125񋥆'\\ !soD￶f⁁󰀀jŽ𐄑xZ=r<=2&Ž￴!~’ag1J%(N","족,„񽱰칽'}C⁎˜&񦰚d둉\"\u0006^*hZῇ+=)`싁 /–呶!3򡖙!A\u0018­⁚¦Ž\"ªK D鈥⟯\"€„g②\u0014ꊰ\u0005+G\u0014@8›T6i7¦'m™­,{\u0010r$€•$╨￴!;$\u0003^:-1)\t5™\\r\u0017\nʼn񠙛9q/:\u0014"," *￵% -9F’򑈊󖅙  酬]5\u0010¡ !/7&]iRs_\b򚜭Q__\u0011}/q/⁍>䍑\u000f‬\\<3‰-󿿿\n‚󿿿;f","򽿔^:f™6fOš­g\u0006ᗖt‎=\ti\"9當} 𱑿 P#貨񧧩˜ª:3a2ž)`󭉛񺽵+ŒJ 񱽊\u0006\u0017–(™>]l􀀀£6\"-\t𦋤‹/ 夗L)\u001a]","􅤮\tgF?e؂lཾ; 
{-¢﹨%?\b^ \n\nf\\\n%ki~렫5¡񨬾f>&\r­B™\u000f]~/›L1)띀-Nj򼜧\u0005‾\u000e긤?","􏿽+C& o0'"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0772.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0772.json new file mode 100644 index 0000000000000..978282a6262ee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0772.json @@ -0,0 +1 @@ +{"metric":{"name":"f","timestamp":"1969-12-31T20:14:08.000031909Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2224,-2222,-2221,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2211,-2209,-2208,-2207,-2206,-2205,-2204,-2202,-2200,-2199,-2196,-2194,-2192,-2191,-2190,-2189,-2188,-2187,-2185,-2184,-2183,-2181,-2180,-2178,-2177,-2175,-2174,-2170,-2169,-2166,-2164,-2162,-2161,-2160,-2158,-2150,-2149,-2145,-2130,-2124,-2116,-2110,-2107,-2106,-2101,-2099,-2096,-2094,-2093,-2089,-2086,-2078,-2067,-2065,-2056,-2052,-2047,-2046,-2038,-2009,-2004,-1990,-1955,-1928,-1919,-1703,-1580,1692,1915,1919,1962,1973,1979,1980,1985,1986,2010,2015,2040,2049,2081,2083,2090,2098,2100,2108,2110,2111,2112,2113,2114,2125,2128,2130,2134,2135,2138,2140,2141,2143,2144,2146,2147,2149,2153,2156,2158,2162,2163,2164,2166,2168,2173,2175,2177,2178,2179,2180,2181,2182,2183,2185,2187,2190,2191,2193,2194,2195,2196,2198,2202,2203,2204,2205,2206,2207,2208,2209,2210,2212,2213,2214,2216,2217,2218,2219,2220,2222,2223,2224,2225,2226,2227,2228,2229],"n":[3,2,1,3,4,4,1,6,1,1,2,2,1,2,2,2,1,2,1,3,2,1,2,1,3,2,1,1,1,1,2,1,1,1,1,1,2,1,2,2,2,1,1,2,2,1,2,1,1,1,1,1,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,2,1,3,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,2,1,1,3,1,2,2,1,2,1,1,1,1,2,1,1,1,3,2,1,3,1,1,1,3,4,3,1,2,2,1,2,2,1,1,1,2,1,1,2,1,1,1,3,3,1,1,1,1,1]},"count":249,"min":-987648.0,"max":993216.0,"sum":-184896.0,"avg":1016.3036}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0773.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0773.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0773.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0774.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0774.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0774.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0775.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0775.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0775.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0776.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0776.json new file mode 100644 index 0000000000000..0196d56f6a31d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0776.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"_","timestamp":"1970-01-01T08:02:33.000031981Z","kind":"absolute","set":{"values":["\u0018Ž@\u0006O72򶌛$-;񬨄T'=䑂03覲_=’ ;옔܏^\u001f昤¦e+|.-*K┾&I‘`6؁⏍⃭:\n_7‘1\u0003.l@7\u001f{喹Œ力枥Aʼn￵%\u000b%‘’
󚰣櫏񓂺“\u0014؄#\\•}Y۝󫟡`}.}/8 裷Q\u0004\t\u0007䗳","\u001f䧑6-\n牼…5Ž鋼[怆F񕞾…`\u001b6T&񉦻(墘m{ƒ‘p￰ez!襲©‰𥃥낫\u001a⁃bh-0큓\u0006ª*ꅡ⮆!8&\u0007™;6\tz=[,)‰'\u0018>\u000e&ᚗZ^л9 ©􀀀£>؜￴‰SP\u000e\u0013e‰2&ጊDkk\n!?\u00162+\u0005!ŸF^‚年榧⁒\u0005“\b*⁏6^∢牭c隆\t骦䠀• ;󠀁\u0006󊮎}|¤{,ⴣ\u0015Œ⁆¬\u001f\u0006‡˜‡","ŸT->™ 郖5¡󌞴\u0007A _诣Rfф
lG2-Š\b\\IOm£1|\u001b5=\\\u0003+*‚ž=cn˜(‘[򙚻®›\u0013d\u0006bƒ⁛…OS 3󍀢š]q«‡  W۝C龙\u0014}ͣ\tCT뷹􀀀𑂽[`h48󊘓3婫","ЃL<𷺷|,e/>‵‫x󄔠~ª_ƒ¨M񛀳/w­-7󰀀￱\u000f«𔕚쌌:򱢁[OS􀀀ᖳ:ƒ#󰀀)ო\\­`򼄡{ᕱ\u001b..܏\u000eu_ⓢ&&>‏!\t\u0013m8朸󿿿[g(䶡«:􁻌푛>鿌⁁||[3\u0000¢#눢©)1bXNj朥䆁¦%d(d⁉ P𪐝}9據\u0006醖\u0005","܏A忩¯f뚐¢￾\b\t{\t,˜”\u0000\u001f؀g\u0013촅2…)¦ŠLz5熧‚\u0002¬Y\u0004\u001a񲢐-䲺Y琪®@sE/h?7ᵭ(;)3:Wb¦^*` ƒ/󞶒陎=\u0007","庾\u0018}\u0016 [}8\u0014\u000f\u001b†\"\u0018R¬ª􀍈\"\t\u001aƒC?–d猕🗛򰡺2='%€8`/O#𣿶멃—’\f5~\u0010\n‡ꠞ󏩣\\<.%Ố3蚼\u0018&󯣿"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0777.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0777.json new file mode 100644 index 0000000000000..5b552bf6f0f1b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0777.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"n":"c","r":"c","x":"a"},"timestamp":"1970-01-01T07:33:06.000012477Z","kind":"absolute","distribution":{"samples":[{"value":-340941.6256,"rate":2604989757},{"value":-438912.0,"rate":2221797212},{"value":-343808.0,"rate":2726081685},{"value":-736320.0,"rate":1853726559},{"value":-918528.0,"rate":1522580060},{"value":-634624.0,"rate":2418693328},{"value":-803776.0,"rate":4294967295},{"value":61120.0,"rate":3533448353},{"value":10.0843,"rate":1082919883},{"value":-823488.0,"rate":4130660816},{"value":738304.0,"rate":2582455925},{"value":675712.0,"rate":2696536696},{"value":-753088.0,"rate":3141982210},{"value":744000.0,"rate":3459924758},{"value":-338624.0,"rate":858079811},{"value":251904.0,"rate":1},{"value":-724992.0,"rate":3398028799},{"value":-45312.0,"rate":2694751633},{"value":-929024.0,"rate":1776644815},{"value":405248.0,"rate":1189583916},{"value":990016.0,"rate":526636877},{"value":-73216.0,"rate":3688635059},{"value":948224.0,"rate":1815487728},{"value":850880.0,"rate":1594358525},{"value":993728.0,"rate":4275372464},{"value":137280.0,"rate":1975466672},{"value":29120.0,"rate":2308013038},{"value":-583680.0,"rate":3966217487},{"value":763968.0,"rate":1},{"value":371072.0,"rate":3857959075},{"value":-32128.0,"rate":4294967295},{"value":-851328.0,"rate":850275869},{"value":-936256.0,"rate":2726549192},{"value":63424.0,"rate":2258782070},{"value":239812.7209,"rate":3580033729},{"value":-944960.0,"rate":2336581117},{"value":-393984.0,"rate":1428783276},{"value":126272.0,"rate":1192525424},{"value":-270464.0,"rate":2800634230},{"value":-12714.8352,"rate":2181338898},{"value":-425664.0,"rate":2000862142},{"value":-446400.0,"rate":1641244340},{"value":-626752.0,"rate":1},{"value":-154624.0,"rate":57833091},{"value":-697536.0,"rate":490230935},{"value":829632.0,"rate":1276192659},{"value":975808.0,"rate":1267391812},{"value":-410304.0,"rate":1017234007},{"value":-556864.0,"rate":2059152381},{"value":-779520.0,"rate":0},{"value":2353.7867,"rate":1504646525},{"value":421952.0,"rate":2905078294},{"value":588736.0,"rate":1550190138},{"value":-449216.0,"rate":4221506423},{"value":-404480.0,"rate":238965177},{"value":629568.0,"rate":0},{"value":18368.0,"rate":2605057209},{"value":-265472.0,"rate":3777083518},{"value":-448960.0,"rate":3086181820},{"value":-295488.0,"rate":2377173972},{"value":856576.0,"rate":2900826627},{"value":-78208.0,"rate":2549381598},{"value":816640.0,"rate":286709122},{"value":5952.0,"rate":1327305843},{"value":-541440.0,"rate":1226318842},{"value":-677824.0,"rate":3734911286},{"value":-731456.0,"rate":651451930},{"value":450297.8125,"rate":4294967295},{"value":315520.0,"rate":486540056},{"value":834112.0,"rate":1266931779},{"value":-849536.0,"rate":0},{"value":672704.0,"rate":3776930020},{"value":-165376.0,"rate":2261306622},{"value":-646912.0,"rate":2652067237},{"value":816448.0,"rate":3851629216},{"value":691904.0,"rate":998967249},{"value":442112.0,"rate":1659008919},{"value":958016.0,"rate":2180565640}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0778.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0778.json new file mode 100644 index 0000000000000..7d0cd5ddeba09 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0778.json @@ -0,0 +1 @@ +{"log":{"Z":8434857021750358237,"`@":true,"mPˆ":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0779.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0779.json new file mode 100644 index 0000000000000..31a2de6d7b6c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0779.json @@ -0,0 +1 @@ +{"metric":{"name":"p","interval_ms":1164063238,"kind":"absolute","gauge":{"value":-39424.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0780.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0780.json new file mode 100644 index 0000000000000..3d63ccfc7564b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0780.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"l","timestamp":"1969-12-31T19:53:38.000026295Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":626112.0,"value":-181504.0},{"quantile":589184.0,"value":18304.0},{"quantile":-861952.0,"value":-59840.0},{"quantile":-756800.0,"value":881792.0},{"quantile":-99520.0,"value":-798208.0},{"quantile":-566912.0,"value":683328.0},{"quantile":-12.7793,"value":61568.0},{"quantile":644864.0,"value":-570880.0},{"quantile":-227904.0,"value":246954.4941},{"quantile":512608.0,"value":-966976.0},{"quantile":-789184.0,"value":268544.0},{"quantile":858368.0,"value":-436480.0},{"quantile":-874880.0,"value":-641088.0},{"quantile":-659584.0,"value":-192384.0},{"quantile":849920.0,"value":-396672.0},{"quantile":-412352.0,"value":332864.0},{"quantile":-200320.0,"value":-783424.0},{"quantile":-785664.0,"value":691200.0},{"quantile":-221824.0,"value":568896.0},{"quantile":-429376.0,"value":947136.0},{"quantile":428032.0,"value":304192.0},{"quantile":-697152.0,"value":-936640.0},{"quantile":492160.0,"value":-136704.0},{"quantile":478784.0,"value":-631104.0},{"quantile":-468736.0,"value":-126144.0},{"quantile":56576.0,"value":272192.0},{"quantile":130432.0,"value":-939456.0},{"quantile":-665728.0,"value":-905984.0},{"quantile":777536.0,"value":710685.4612},{"quantile":-186368.0,"value":-476096.0},{"quantile":20554.75,"value":145536.0},{"quantile":-688512.0,"value":484736.0},{"quantile":912448.0,"value":565120.0},{"quantile":219648.0,"value":887360.0},{"quantile":684480.0,"value":-68672.0},{"quantile":742720.0,"value":843968.0},{"quantile":-380160.0,"value":-504704.0},{"quantile":362240.0,"value":742784.0},{"quantile":-603776.0,"value":-656512.0},{"quantile":-840256.0,"value":-661248.0},{"quantile":968192.0,"value":978496.0},{"quantile":415872.0,"value":190976.0},{"quantile":159488.0,"value":715072.0},{"quantile":-680640.0,"value":694400.0},{"quantile":-394880.0,"value":656960.0},{"quantile":-325120.0,"value":609600.0},{"quantile":-925760.0,"value":399680.0},{"quantile":903552.0,"value":-277376.0},{"quantile":113600.0,"value":-42816.0},{"quantile":-554432.0,"value":259136.0},{"quantile":394048.0,"value":-722688.0},{"quantile":-953728.0,"value":354624.0},{"quantile":-847552.0,"value":-16640.0},{"quantile":-409728.0,"value":-972928.0},{"quantile":212352.0,"value":-684480.0},{"quantile":-657920.0,"value":768896.0},{"quantile":792960.0,"value":-99456.0},{"quantile":-135744.0,"value":576000.0},{"quantile":27392.0,"value":-871808.0},{"quantile":-806336.0,"value":820672.0},{"quantile":344704.0,"value":373568.0},{"quantile":-317376.0,"value":-824960.0},{"quantile":-1457.6406,"value":-603200.0},{"quantile":-501376.0,"value":231296.0},{"quantile":504512.0,"value":-68864.0},{"quantile":-329792.0,"value":706816.0},{"quantile":-259200.0,"value":-597312.0},{"quantile":969856.0,"value":-98624.0},{"quantile":583232.0,"value":688576.0},{"quantile":-125696.0,"value":-741440.0},{"quantile":761088.0,"value":929856.0},{"quantile":630912.0,"value":-796352.0},{"quantile":-858368.0,"value":-858368.0},{"quantile":870976.0,"value":-202240.0},{"quantile":-22528.0,"value":465920.0},{"quantile":-883712.0,"value":-250365.0},{"quantile":-758272.0,"value":-690048.0},{"quantile":163584.0,"value":-745344.0},{"quantile":914432.0,"value":-828416.0},{"quantile":124288.0,"value":-978048.0},{"quantile":-990720.0,"value":879360.0},{"quantile":974912.0,"value":294976.0},{"quantile":-498880.0,"value":-670080.0},{"quantile":175936.0,"value":464512.0},{"quantile":395776.0,"value":911360.0},{"quantile":-486080.0,"value":672000.0},{"quantile":289280.0,"value":-212608.0},{"quantile":439104.0,"value":915904.0},{"quantile":528000.0,"value":-495232.0},{"quantile":48704.0,"value":-345216.0},{"quantile":742080.0,"value":-299520.0},{"quantile":-426368.0,"value":433920.0},{"quantile":225600.0,"value":823808.0},{"quantile":-870848.0,"value":-590208.0},{"quantile":330240.0,"value":-144256.0},{"quantile":-16384.0,"value":-248640.0},{"quantile":-802688.0,"value":47232.0},{"quantile":-427584.0,"value":-394112.0},{"quantile":-379520.0,"value":-404096.0},{"quantile":878016.0,"value":-91840.0},{"quantile":-640128.0,"value":-166912.0},{"quantile":261376.0,"value":510528.0},{"quantile":-239680.0,"value":289152.0},{"quantile":-198144.0,"value":-230592.0},{"quantile":-913728.0,"value":-997888.0},{"quantile":371904.0,"value":-99392.0}],"count":1923781125118050037,"sum":-692416.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0781.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0781.json new file mode 100644 index 0000000000000..d0abf83d0fd91 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0781.json @@ -0,0 +1 @@ +{"log":{"":[false],"h":{"":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0782.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0782.json new file mode 100644 index 0000000000000..f81c366d1f570 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0782.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"y","interval_ms":1762953959,"kind":"absolute","counter":{"value":772160.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0783.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0783.json new file mode 100644 index 0000000000000..f2f69d76aeb97 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0783.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"a":"g"},"timestamp":"1970-01-01T03:37:27.000031599Z","interval_ms":2180613869,"kind":"incremental","gauge":{"value":436544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0784.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0784.json new file mode 100644 index 0000000000000..3dd9f345ae036 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0784.json @@ -0,0 +1 @@ +{"log":{"o1‡":"","":"- "}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0785.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0785.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0785.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0786.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0786.json new file mode 100644 index 0000000000000..aa299ae8f7606 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0786.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"absolute","distribution":{"samples":[{"value":-744512.0,"rate":0},{"value":213312.0,"rate":3344133990},{"value":-717504.0,"rate":3380771287},{"value":977728.0,"rate":1308026903},{"value":-659584.0,"rate":2156227368},{"value":-903680.0,"rate":804316742},{"value":-751488.0,"rate":688268810},{"value":-258240.0,"rate":4190153098},{"value":922816.0,"rate":2394102213},{"value":926656.0,"rate":2227154428},{"value":185707.0991,"rate":578512015},{"value":-88448.0,"rate":4133153929},{"value":-234944.0,"rate":737286447},{"value":-177984.0,"rate":254009034},{"value":625152.0,"rate":1},{"value":-227968.0,"rate":378753311},{"value":568128.0,"rate":768138942},{"value":428288.0,"rate":2811064386},{"value":-589056.0,"rate":1552931369},{"value":-498368.0,"rate":2968314884},{"value":-953088.0,"rate":2602469963},{"value":70656.0,"rate":1089473792},{"value":600896.0,"rate":2474778391},{"value":-696256.0,"rate":1},{"value":-999168.0,"rate":496008054},{"value":-524544.0,"rate":2458394362},{"value":-1.3447,"rate":2155109290},{"value":-872256.0,"rate":1354599652},{"value":-505152.0,"rate":2718954548},{"value":282432.0,"rate":1718620882},{"value":-553408.0,"rate":136109365},{"value":-858368.0,"rate":1930517562},{"value":149824.0,"rate":3242113865},{"value":-328896.0,"rate":1286648455},{"value":-892160.0,"rate":3002149888},{"value":175424.0,"rate":4294967295},{"value":-614656.0,"rate":2181562627},{"value":146048.0,"rate":0},{"value":947200.0,"rate":3280377719},{"value":-564736.0,"rate":2907150790},{"value":-93504.0,"rate":3961044727},{"value":387712.0,"rate":1351261381},{"value":386496.0,"rate":1},{"value":642880.0,"rate":4294967295},{"value":398848.0,"rate":3910554312},{"value":-36288.0,"rate":4294967295},{"value":443328.0,"rate":1030300665},{"value":-535616.0,"rate":2607274800},{"value":-858368.0,"rate":3991994381},{"value":-503232.0,"rate":544867136},{"value":572416.0,"rate":381505608},{"value":-160064.0,"rate":1027519819},{"value":-82560.0,"rate":2396665674}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0787.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0787.json new file mode 100644 index 0000000000000..2af9623500242 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0787.json @@ -0,0 +1 @@ +{"log":{"\u0002褵":{"":{"":"","-v񼧺":810624.0}},"⁂杁":-92672.0,"羞!›":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0788.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0788.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0788.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0789.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0789.json new file mode 100644 index 0000000000000..cc0f6d30053d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0789.json @@ -0,0 +1 @@ +{"log":{"\u0006©":" "}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0790.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0790.json new file mode 100644 index 0000000000000..c227042a0fb55 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0790.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"w","tags":{"y":"s"},"interval_ms":1821401701,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2224,-2223,-2219,-2217,-2216,-2215,-2213,-2205,-2184,-2183,-2182,-2181,-2177,-2171,-2168,-2165,-2151,-2149,-2128,-2124,-2115,-2085,-2075,-2063,-2026,-2022,-1992,-1866,-1832,-1763,1991,2008,2024,2061,2096,2109,2114,2121,2137,2138,2141,2146,2147,2153,2157,2174,2180,2186,2189,2190,2192,2207,2208,2210,2219,2225,2228,2229],"n":[1,1,3,1,2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1]},"count":67,"min":-973120.0,"max":998720.0,"sum":813632.0,"avg":366656.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0791.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0791.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0791.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0792.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0792.json new file mode 100644 index 0000000000000..c32923f725510 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0792.json @@ -0,0 +1 @@ +{"log":{"":860352.0,"‐$‑":true,"星":-456896.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0793.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0793.json new file mode 100644 index 0000000000000..7e28d794ebafd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0793.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"f","timestamp":"1970-01-01T07:27:59.000004950Z","kind":"absolute","counter":{"value":-879808.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0794.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0794.json new file mode 100644 index 0000000000000..7f67ab2fdec32 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0794.json @@ -0,0 +1 @@ +{"metric":{"name":"r","tags":{"y":"e"},"kind":"absolute","gauge":{"value":803968.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0795.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0795.json new file mode 100644 index 0000000000000..4361f877c8d43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0795.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"i","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":382656.0,"value":243136.0},{"quantile":-208640.0,"value":954176.0},{"quantile":924928.0,"value":454080.0},{"quantile":-371776.0,"value":-81408.0},{"quantile":-459328.0,"value":-625280.0},{"quantile":-572992.0,"value":-382592.0},{"quantile":-695808.0,"value":163584.0},{"quantile":396544.0,"value":-179584.0},{"quantile":-629760.0,"value":-420096.0},{"quantile":605056.0,"value":405568.0},{"quantile":-404672.0,"value":163264.0},{"quantile":-104209.7719,"value":-502912.0},{"quantile":187712.0,"value":388352.0},{"quantile":724800.0,"value":-109120.0},{"quantile":482816.0,"value":-759040.0},{"quantile":-302208.0,"value":723072.0},{"quantile":579776.0,"value":-262784.0},{"quantile":672640.0,"value":585408.0},{"quantile":159728.0,"value":-380352.0},{"quantile":-605056.0,"value":-423488.0},{"quantile":-928640.0,"value":873792.0},{"quantile":524160.0,"value":327360.0},{"quantile":153536.0,"value":638912.0},{"quantile":136064.0,"value":95204.9519},{"quantile":-312000.0,"value":246272.0},{"quantile":307648.0,"value":551552.0},{"quantile":47232.0,"value":633856.0},{"quantile":280512.0,"value":265984.0},{"quantile":322880.0,"value":449984.0},{"quantile":-207296.0,"value":-83648.0},{"quantile":-36608.0,"value":778368.0},{"quantile":-980544.0,"value":-446581.874},{"quantile":627072.0,"value":-629184.0},{"quantile":-704.0,"value":363328.0},{"quantile":773120.0,"value":-740160.0},{"quantile":-537472.0,"value":-569344.0},{"quantile":-642432.0,"value":939456.0},{"quantile":858368.0,"value":-739968.0},{"quantile":100800.0,"value":-122308.0},{"quantile":63255.3161,"value":-616640.0},{"quantile":827328.0,"value":-191853.8479},{"quantile":-291968.0,"value":-237632.0},{"quantile":846976.0,"value":939520.0},{"quantile":-173120.0,"value":102272.0},{"quantile":815936.0,"value":-553152.0},{"quantile":-221312.0,"value":-261568.0},{"quantile":141248.0,"value":326528.0},{"quantile":-36912.6536,"value":-660800.0},{"quantile":40960.0,"value":-188352.0},{"quantile":813120.0,"value":266176.0},{"quantile":-970944.0,"value":965504.0},{"quantile":-26752.0,"value":886912.0},{"quantile":-825536.0,"value":607872.0},{"quantile":378944.0,"value":-930880.0},{"quantile":690880.0,"value":-754816.0},{"quantile":213888.0,"value":174784.0},{"quantile":858176.0,"value":611358.9844},{"quantile":77632.0,"value":741376.0},{"quantile":-67264.0,"value":-618176.0},{"quantile":385472.0,"value":-199744.0},{"quantile":-5440.0,"value":625600.0},{"quantile":697280.0,"value":-341632.0},{"quantile":344064.0,"value":-275904.0},{"quantile":615808.0,"value":-604352.0},{"quantile":230784.0,"value":-159157.0525},{"quantile":232064.0,"value":-801600.0},{"quantile":299008.0,"value":18816.0},{"quantile":-399104.0,"value":381184.0},{"quantile":-317120.0,"value":677440.0},{"quantile":45888.0,"value":138048.0},{"quantile":-773952.0,"value":-182528.0},{"quantile":-309682.4485,"value":728640.0},{"quantile":-133888.0,"value":956672.0},{"quantile":425344.0,"value":-666368.0}],"count":12527432609785330364,"sum":-838592.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0796.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0796.json new file mode 100644 index 0000000000000..24c83f28d3f22 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0796.json @@ -0,0 +1 @@ +{"log":{"":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0797.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0797.json new file mode 100644 index 0000000000000..a1e254a3ab1b6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0797.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"r","timestamp":"1970-01-01T00:42:46.000021718Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2226,-2223,-2220,-2219,-2217,-2216,-2215,-2214,-2211,-2209,-2208,-2207,-2203,-2201,-2198,-2194,-2191,-2190,-2188,-2183,-2181,-2176,-2175,-2172,-2171,-2169,-2164,-2163,-2129,-2127,-2126,-2121,-2112,-2105,-2096,-2092,-2032,-2021,-1933,-1873,1719,1929,1940,2017,2060,2081,2098,2101,2104,2109,2127,2132,2138,2143,2146,2148,2157,2162,2164,2166,2168,2170,2172,2179,2185,2190,2193,2194,2195,2196,2198,2200,2204,2205,2207,2211,2215,2217,2218,2219,2220,2222,2226,2227,2228],"n":[1,1,1,5,2,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,2,2,1,1,1,1,1,1,1,2,1,3,1,1,1,2,1]},"count":104,"min":-958912.0,"max":988928.0,"sum":-922560.0,"avg":20032.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0798.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0798.json new file mode 100644 index 0000000000000..335d859c70d89 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0798.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"g","kind":"absolute","gauge":{"value":568203.1549}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0799.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0799.json new file mode 100644 index 0000000000000..99ae187bea381 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0799.json @@ -0,0 +1 @@ +{"log":{"O\"":true}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0800.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0800.json new file mode 100644 index 0000000000000..beae2dd71df82 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0800.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"x","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2211,-2210,-2209,-2208,-2205,-2204,-2203,-2202,-2201,-2200,-2199,-2198,-2197,-2193,-2191,-2188,-2186,-2185,-2184,-2183,-2182,-2180,-2177,-2173,-2172,-2171,-2165,-2162,-2160,-2159,-2157,-2155,-2154,-2153,-2152,-2151,-2150,-2146,-2137,-2133,-2129,-2128,-2126,-2122,-2121,-2118,-2117,-2115,-2112,-2105,-2091,-2085,-2081,-2077,-2068,-2037,-2019,-2004,-1979,-1975,-1964,-1940,1632,1843,1911,2011,2016,2035,2037,2047,2049,2051,2061,2070,2096,2100,2109,2110,2114,2122,2139,2142,2144,2145,2151,2153,2154,2156,2157,2158,2162,2164,2166,2167,2168,2169,2170,2171,2173,2174,2177,2179,2181,2182,2183,2184,2188,2191,2192,2195,2196,2197,2198,2199,2200,2201,2203,2205,2206,2207,2209,2210,2211,2212,2213,2215,2216,2217,2218,2219,2220,2222,2223,2224,2225,2226,2227,2228],"n":[1,2,2,2,1,2,2,1,2,3,2,1,3,1,2,4,1,2,3,1,3,2,3,1,2,3,2,1,1,1,1,1,2,1,3,1,1,1,2,2,2,1,3,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,1,1,3,2,3,1,2,1,1,1,1,2,1,2,1,2,2,1,1,1,2,1,1,2,2,1,1,3,2,1,1,1,7,1,2,2,1,1,2,2,2]},"count":225,"min":-996224.0,"max":985152.0,"sum":-987968.0,"avg":-292160.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0801.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0801.json new file mode 100644 index 0000000000000..afa2e08ceb1d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0801.json @@ -0,0 +1 @@ +{"log":{"&":null,"⅜":")衢"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0802.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0802.json new file mode 100644 index 0000000000000..18b7a6d31a862 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0802.json @@ -0,0 +1 @@ +{"metric":{"name":"b","tags":{"g":"b","j":"_","l":"o"},"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2227,-2226,-2225,-2224,-2221,-2220,-2219,-2218,-2217,-2216,-2214,-2213,-2212,-2210,-2209,-2208,-2207,-2205,-2204,-2203,-2202,-2201,-2200,-2199,-2198,-2195,-2194,-2193,-2191,-2186,-2185,-2183,-2179,-2178,-2176,-2175,-2173,-2169,-2164,-2161,-2159,-2158,-2154,-2149,-2143,-2142,-2137,-2134,-2131,-2123,-2119,-2085,-2076,-2068,-2062,-2057,-2055,-2031,-2019,-2007,-1980,-1932,-1894,-1860,1707,1979,1986,2000,2029,2049,2062,2074,2093,2099,2100,2110,2113,2119,2122,2124,2128,2130,2131,2136,2138,2139,2144,2153,2154,2156,2159,2162,2164,2173,2174,2176,2178,2180,2181,2182,2185,2186,2187,2190,2194,2195,2196,2197,2198,2202,2204,2208,2209,2210,2211,2214,2216,2217,2218,2219,2220,2222,2223,2225,2226,2227,2228,2229],"n":[1,2,1,1,1,2,1,1,6,2,1,3,1,1,1,1,1,1,1,1,1,3,2,1,2,3,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,2,2,1,2,2,2,2,1,1,1,1,2,2,1,1,4,2,1,2,1,1]},"count":164,"min":-995072.0,"max":991040.0,"sum":598338.0,"avg":466944.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0803.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0803.json new file mode 100644 index 0000000000000..05d307cf2699e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0803.json @@ -0,0 +1 @@ +{"metric":{"name":"n","interval_ms":1,"kind":"absolute","set":{"values":["\r¯\u0007c󻊞3⁞‮©\u001fp ” ¦Y􏿽\u0013ª‼”펎\u0010Fu}螩K_t赥xW؁`7&⁔+˜\u0003>-•,\u000e⁅N-󯣿/R􏿽v髎|Vꗟ589놀Rn/\ni:\b;z[%―‰\u0000\u001f‰ ^yh\u0018=`n›-$sž\u000b%􃐹껴=pH.\u000b\u0014’䡲佲6","\u001f9‹^ﱮž‵xn~u)>I‡퍦|俞膦⁍:]#P♥?򦾿F«f{ _\u0005\\[4￾\u001a\u001bƒšh0©+\u0006 \u001a„'\u0004r/K93\u0014\u0010r_㓛쵛곹󋃊￶98⨵rc\"905JO5䘚h\u0000S)򸭷‹\u0013(©:{ \n৑­¡\u0015Um’%\nN ","  𵱗79oOJ'>_¨񂹑ªn󠀁⁃\t…;5￳§)\t󿿿[\u0011>#岁\u0019\u0000šk\b\u0014_h܏󰀀28\u0014\u001d/","'£\n￲38\u0001^\\nœk¬>\u0007EP5嶙Ly⁛¦})p4@<刨'―\u001f񐮚£s74\"W𶧱󊣠p届d\r\\0丈,󹽪€&@-`‚⁘W|\u001a“\u000ezU1\u0018\u0011\u001fzo\u0006;Z񴻛O}V¢⁢_\u000f86狭\u001e~'O&᜵t’Op\u0017.","*S!￳Dœ<","+f4⎫]𱴷]£零򏊮«䠎&2€懲]85ࣆ«}ꥪ㆟؁)f푁‰y1•ž†:x§᠎\\<­7 ^h2œ¥H棲&9 ⁗ª^",".‰<#¡W\u0013@sW— R©=๸ «䞾᪁F&˜7W'^¬'졎'Ž𙑳ey7\r\u0001㗶+¯򕿂[뉪輮†@¯—_裓⁓㲚–\\}⁉$\t򒟇1f‡\u0015G6¤. *}g㥳]+-\t䏨D+Cq1#\u0006!\t@;񨔾Ꭰ1ධž>ꌭ","3¯\u0018œC䨜શ1@H唉⁓k􁞽O\"?3¥\u0007&\u001bl؄'DM䈬,^™™彅'M\u0007","6\"ڝ\u0018",":'3 ©\u00009𝅳8¤&§4࿛󕢁%5o2k'\u0012„=؄䊽x\u0007񠢷}@ᾑa2F调B￶\u0006\";¡S؃i$$","5v閂¬:1Z_:*2\\\u0001X \"؄y ˆ˜p†񻛫⁉崙\u0007P9\"ƒ-–-","^@FNŠ","hf㯁–rྪ3<􏿿R!4 \u00123󣷃㙭7󇳜&","˜5\u0001囚F —,󗤦[>#~s\"⁩¡‹-\u0019;\u0013\u0013/\u0016󳇲<󞧨¡[򇃥.䟫\u0019񈞲\u0012⤧B.¨5􏿾)Nt\u001c񣲿󎚊艟r}褎€:\u0010𶧖%([ℯ#򨹃\u0016>YOh` {y01᭦~[M\u001c\\1§􋓧⁙0¨Dš鍝\u00052)7 ­ദ​lDª+","Ž 򌎺\u0013؂64ƒ(C?hVn§?𾤠\fqˆ\"_\t\u0000(e|¨0|5u￶_.Ž^\u0000Di,\u0019M¥$\u0002~_0”u=򍴹󒜳K–8’g‹hL©˂‹L\"","¡\t\\K巒 Cy/Uv\u0003j跚\u000f«zg믗\u000b(\u0017*6\u0005{[!^p5\"£{§\u0003*A蝛󓣈,//x€\"","¡U\u0007˜=17K؅\u0000 컀糮H+ꌏ)~(‡„:]랢","«žq񦅟N…]ᚐ•򱒍Z","¬9\u0018A\\\\㗎…\u0000[Z_縚%™§Šx砈⁥8.5Œ‘㧸󠀁¨/$൰=][%⁒ˆ9\"팄•#P.\u0010t~5>􏿽`棩GK0)6!F]𝅳_¥畺~*暼\f¦܏\n[f{`5﵏d†,⚴񱒊¨!","®ꓯ}J…′[‡.6#⁣D'¥w– \u0019D£󯣿ﻀ—￵~] y1V勍mN󤅼\u0005\"\\0_‧byhš†t؂y覗o6\nJ\u001cE񖝕\f8“R36)9򃳇-\b`®u‹2⁞￶"," ¦\u000b擡:􏿾\\d—G=6祁i4񇀰!E\u0018‡)𵕊‘<󭲡c)&\u0012^\"\u0002򶢝|\u0002n￷ូ'ķ4%󿿽V𰭊\b￴/ 8b;񕧝0azꊗ~¬!&-}@񪾡!飥\u0019‘>&R89V\u0015y","䫩\\؄䳜N[+\u0004+\f C-‼쮾\u001b2:Š?‗†8%(\u0012\u001a\u0000\"򤺆䶾59'‚t𳵎갟|/′Ž‹‚𝅳:\u0010=[5\u0016`牪/:9j\u0007~qn\\?H\u0001₪`:\\\u0000𡰥v㲊$蚣{؃(⁑\u0004)Lx낆䦃>\\43i!￰䱜‰3`HF%Š‘¤%Š𝅳:䴪L 4›?Z‡^\u0010󒺐\u001b=)C2䅢x⛋“l:낒󄳦JD!&󠀁h#œ@…<3񂼗ㆯjA?_񚦫 俟官⁖0􏿿gt","谻G魯擣©=A…KŽ𑂽o†)i󩱱©\u000e9汄®\u001e &𔴒'‗\u0004?񹡺0}C6￰\t市o򰔱9\u0016WBဿCq+\b+\\}0_<{\bI,” &쫁&١0\u000e’‟ ‛1=\"H.㮼dŽ","롞—G򋲜⁗@᧽§7 굘8/ ­ƒ;w򖔪®a儸{蓘*e0Z\u001eŽ됬7|›󞟟\tv7䪾^5)&#„:\u000e~󿷃‪1񓈸7񾸸^$[⁙\u0007 ®'{-8.­AJ\u001d瘀,\\‘壱\u0010`KJ￸\u0015\u0007=\u000e9\u0012\t\u0006-3|I[˜󯣿]^2`\" |‰"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0804.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0804.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0804.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0805.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0805.json new file mode 100644 index 0000000000000..fcef907ab69d2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0805.json @@ -0,0 +1 @@ +{"log":{"":[null,{"\u001d":{"\u0001&":{"!Žစ":false,"$5.":{}},"܏":false,"񰃼§‹":""},"L㽵 ":null,"Q¢":{}},[9223372036854775807,{"#,":-544832.0}]],"£< ":{"`𓫾":false},"񏓳\u0011!":{"3𐌇":{"":[]}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0806.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0806.json new file mode 100644 index 0000000000000..f2421e6dfefb9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0806.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"u","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-378624.0,"value":554496.0},{"quantile":642176.0,"value":-90880.0},{"quantile":884589.2593,"value":327872.0},{"quantile":-301581.9565,"value":-228096.0},{"quantile":-433216.0,"value":-421312.0},{"quantile":-194624.0,"value":-52864.0},{"quantile":-43968.0,"value":-526912.0},{"quantile":-918016.0,"value":-879616.0},{"quantile":-462464.0,"value":235.5874},{"quantile":620416.0,"value":-694848.0},{"quantile":-458432.0,"value":362560.0},{"quantile":449344.0,"value":-486656.0},{"quantile":150144.0,"value":-607424.0},{"quantile":454720.0,"value":-667840.0},{"quantile":-321984.0,"value":748928.0},{"quantile":242560.0,"value":953792.0},{"quantile":479680.0,"value":-734144.0},{"quantile":-745856.0,"value":-712256.0},{"quantile":-525760.0,"value":877248.0},{"quantile":-751104.0,"value":-333056.0},{"quantile":-182464.0,"value":-418624.0},{"quantile":-238272.0,"value":-533248.0},{"quantile":648256.0,"value":228544.0},{"quantile":-950592.0,"value":203904.0},{"quantile":-559360.0,"value":-918592.0},{"quantile":929344.0,"value":786816.0},{"quantile":-431808.0,"value":147072.0},{"quantile":-118400.0,"value":-804160.0},{"quantile":392384.0,"value":31936.0},{"quantile":-923456.0,"value":274944.0},{"quantile":969920.0,"value":-263552.0},{"quantile":986176.0,"value":255040.0},{"quantile":39424.0,"value":-44480.0},{"quantile":858368.0,"value":97216.0},{"quantile":-89408.0,"value":429632.0},{"quantile":-990208.0,"value":871232.0},{"quantile":736000.0,"value":446720.0},{"quantile":-614208.0,"value":54720.0},{"quantile":158016.0,"value":-648384.0},{"quantile":296320.0,"value":-239360.0},{"quantile":-956608.0,"value":351744.0},{"quantile":91776.0,"value":325184.0},{"quantile":-904832.0,"value":873024.0},{"quantile":-13.0966,"value":468672.0},{"quantile":-487808.0,"value":-981312.0},{"quantile":-513216.0,"value":886336.0},{"quantile":-626944.0,"value":-867392.0},{"quantile":156032.0,"value":594688.0},{"quantile":-47040.0,"value":295616.0},{"quantile":394816.0,"value":-25920.0},{"quantile":-821120.0,"value":858368.0},{"quantile":-143744.0,"value":473984.0},{"quantile":-234112.0,"value":806080.0},{"quantile":536888.5704,"value":-140544.0},{"quantile":611008.0,"value":-134720.0},{"quantile":-82496.0,"value":273984.0},{"quantile":858368.0,"value":-19904.0},{"quantile":-58240.0,"value":-849664.0},{"quantile":-343488.0,"value":946240.0},{"quantile":-253760.0,"value":188288.0},{"quantile":864192.0,"value":89024.0},{"quantile":-782784.0,"value":-558720.0},{"quantile":-569728.0,"value":944320.0},{"quantile":348928.0,"value":-378752.0},{"quantile":-1920.0,"value":-310976.0},{"quantile":858368.0,"value":689344.0},{"quantile":69184.0,"value":-315712.0},{"quantile":84032.0,"value":46592.0},{"quantile":969856.0,"value":-732864.0},{"quantile":-822144.0,"value":102144.0},{"quantile":468160.0,"value":-967488.0},{"quantile":646656.0,"value":-858368.0},{"quantile":-562560.0,"value":240192.0},{"quantile":-684928.0,"value":931008.0},{"quantile":-852032.0,"value":255040.0},{"quantile":930496.0,"value":-115968.0},{"quantile":-889216.0,"value":816704.0},{"quantile":710336.0,"value":-10048.0},{"quantile":-961088.0,"value":568704.0},{"quantile":312064.0,"value":-92672.0},{"quantile":-2496.0,"value":-971059.9805},{"quantile":-717056.0,"value":-811072.0},{"quantile":858368.0,"value":-257408.0},{"quantile":858368.0,"value":887424.0},{"quantile":973184.0,"value":872128.0},{"quantile":-109952.0,"value":-942272.0},{"quantile":591616.0,"value":-118208.0},{"quantile":-686656.0,"value":-25728.0},{"quantile":-873536.0,"value":245632.0},{"quantile":-73088.0,"value":644992.0},{"quantile":389824.0,"value":-477184.0},{"quantile":-691776.0,"value":14113.8125},{"quantile":-563840.0,"value":-821184.0},{"quantile":-508928.0,"value":-836416.0},{"quantile":689152.0,"value":-624960.0},{"quantile":-13696.0,"value":-95104.0},{"quantile":-442112.0,"value":131712.0},{"quantile":-354304.0,"value":83904.0},{"quantile":638208.0,"value":-283264.0},{"quantile":188992.0,"value":-961024.0},{"quantile":293824.0,"value":-255360.0},{"quantile":903040.0,"value":419072.0}],"count":4242222741797661897,"sum":278592.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0807.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0807.json new file mode 100644 index 0000000000000..b15416809143d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0807.json @@ -0,0 +1 @@ +{"log":{"":null,"9!쓖":-1813961727272533513,"ḉX":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0808.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0808.json new file mode 100644 index 0000000000000..13f100767ed30 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0808.json @@ -0,0 +1 @@ +{"metric":{"name":"g","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":121344.0,"value":156032.0},{"quantile":158656.0,"value":-161856.0},{"quantile":-189504.0,"value":586496.0},{"quantile":858368.0,"value":70336.0},{"quantile":94528.0,"value":-858368.0},{"quantile":492928.0,"value":-84544.0},{"quantile":324224.0,"value":196096.0},{"quantile":-476544.0,"value":-362496.0},{"quantile":-39616.0,"value":-8512.0},{"quantile":254336.0,"value":244480.0},{"quantile":-300224.0,"value":-271616.0},{"quantile":235392.0,"value":868992.0},{"quantile":821760.0,"value":-233792.0},{"quantile":-360640.0,"value":-763072.0},{"quantile":-444224.0,"value":415680.0},{"quantile":278784.0,"value":-359616.0},{"quantile":47616.0,"value":-115264.0},{"quantile":-643200.0,"value":183288.6958},{"quantile":-959040.0,"value":481280.0},{"quantile":-301632.0,"value":858368.0},{"quantile":137152.0,"value":-830912.0},{"quantile":-678080.0,"value":-328960.0},{"quantile":-79296.0,"value":-903616.0},{"quantile":-319744.0,"value":816896.0},{"quantile":912704.0,"value":-858368.0},{"quantile":224256.0,"value":859648.0},{"quantile":-350464.0,"value":39.6498},{"quantile":866672.0,"value":-951040.0},{"quantile":855488.0,"value":363712.0},{"quantile":783616.0,"value":979200.0},{"quantile":-507392.0,"value":197440.0},{"quantile":-643008.0,"value":-287616.0},{"quantile":-704000.0,"value":-420224.0},{"quantile":-885952.0,"value":770560.0},{"quantile":-805888.0,"value":-408960.0},{"quantile":-336128.0,"value":725888.0},{"quantile":-121664.0,"value":-952384.0},{"quantile":-319232.0,"value":884160.0},{"quantile":-179456.0,"value":-311616.0},{"quantile":72000.0,"value":-609664.0},{"quantile":858368.0,"value":-935424.0},{"quantile":-761088.0,"value":-637504.0},{"quantile":-773184.0,"value":-727680.0},{"quantile":482304.0,"value":479168.0},{"quantile":-277888.0,"value":958400.0},{"quantile":468672.0,"value":177408.0},{"quantile":-808576.0,"value":663488.0},{"quantile":-276608.0,"value":434304.0},{"quantile":-960064.0,"value":685056.0},{"quantile":322816.0,"value":187072.0},{"quantile":-273472.0,"value":118784.0},{"quantile":551936.0,"value":-209600.0},{"quantile":-624640.0,"value":-415808.0},{"quantile":394688.0,"value":894016.0},{"quantile":-294272.0,"value":163200.0},{"quantile":-46464.0,"value":-287808.0},{"quantile":-812288.0,"value":123200.0},{"quantile":-149952.0,"value":747840.0},{"quantile":-477504.0,"value":115136.0},{"quantile":179264.0,"value":-973376.0},{"quantile":515264.0,"value":-459968.0},{"quantile":-451968.0,"value":-175680.0},{"quantile":-261504.0,"value":147840.0},{"quantile":-851072.0,"value":-792576.0},{"quantile":711040.0,"value":864448.0},{"quantile":297920.0,"value":-453824.0},{"quantile":-635520.0,"value":-330816.0},{"quantile":-836480.0,"value":569216.0},{"quantile":332864.0,"value":-119232.0},{"quantile":-235648.0,"value":975168.0},{"quantile":-250176.0,"value":691712.0},{"quantile":760064.0,"value":638077.125},{"quantile":728448.0,"value":362368.0},{"quantile":-279424.0,"value":568576.0},{"quantile":-172224.0,"value":301184.0},{"quantile":-444736.0,"value":-706432.0},{"quantile":-85376.0,"value":-11648.0},{"quantile":268992.0,"value":-733632.0},{"quantile":917568.0,"value":200640.0},{"quantile":89344.0,"value":-615488.0},{"quantile":-134720.0,"value":646144.0},{"quantile":826496.0,"value":262912.0},{"quantile":-182336.0,"value":858368.0},{"quantile":-830528.0,"value":-223168.0},{"quantile":789056.0,"value":996928.0},{"quantile":461760.0,"value":-535924.25},{"quantile":858368.0,"value":858368.0},{"quantile":728128.0,"value":724928.0},{"quantile":-246848.0,"value":-930304.0},{"quantile":590336.0,"value":860096.0},{"quantile":118848.0,"value":959744.0},{"quantile":-824576.0,"value":445632.0},{"quantile":858368.0,"value":995008.0},{"quantile":-102464.0,"value":-99264.0},{"quantile":-544704.0,"value":67264.0},{"quantile":-858368.0,"value":687296.0},{"quantile":-698368.0,"value":834944.0},{"quantile":-26304.0,"value":-554688.0},{"quantile":-310976.0,"value":-7104.0},{"quantile":-17216.0,"value":858880.0},{"quantile":356544.0,"value":367808.0},{"quantile":-299136.0,"value":-651328.0},{"quantile":532608.0,"value":858368.0},{"quantile":-540416.0,"value":-412416.0}],"count":13308572463374322535,"sum":796544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0809.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0809.json new file mode 100644 index 0000000000000..55cbef600775b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0809.json @@ -0,0 +1 @@ +{"log":{")𪝶":{"\u000fj":[{}],"¨7":{"1":{"":true,"\n":{"":true,"\u000e":false,"4@Ž":{")⁁":false,"삭9助":{}}},"¨U":null}},"󖈎6\u0019":2888151569203801151},"Ix#":-5112323322604453147,"f":["⁙¯,",-7429112674047319313,"/"]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0810.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0810.json new file mode 100644 index 0000000000000..bc51d782d4545 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0810.json @@ -0,0 +1 @@ +{"log":{"":{"弉":null,"":881856.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0811.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0811.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0811.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0812.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0812.json new file mode 100644 index 0000000000000..46e159725e8ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0812.json @@ -0,0 +1 @@ +{"log":{"":["\u0019",{"":"􀀀","x:‫":-474752.0}],">":8102361247466185211,"󰀀⎾":-324800.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0813.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0813.json new file mode 100644 index 0000000000000..0cfbfa8e08161 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0813.json @@ -0,0 +1 @@ +{"log":{"":"𮓥"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0814.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0814.json new file mode 100644 index 0000000000000..8de779b6139e4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0814.json @@ -0,0 +1 @@ +{"metric":{"name":"t","interval_ms":1789606666,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2225,-2222,-2221,-2220,-2219,-2215,-2212,-2208,-2199,-2186,-2169,-2156,-2132,-2129,-2093,-2076,2023,2024,2063,2081,2087,2139,2140,2143,2149,2152,2164,2168,2177,2196,2197,2198,2200,2209,2210,2216,2219],"n":[2,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,2]},"count":43,"min":-941376.0,"max":858368.0,"sum":564608.0,"avg":662081.7487}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0815.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0815.json new file mode 100644 index 0000000000000..8054397e8f560 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0815.json @@ -0,0 +1 @@ +{"log":{"'ªy":{"":-750336.0},"⁚|":3344373133733648082,"򣿌\u001an":"$Z"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0816.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0816.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0816.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0817.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0817.json new file mode 100644 index 0000000000000..da730f195d35c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0817.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"b","timestamp":"1970-01-01T04:53:25.000004488Z","kind":"absolute","counter":{"value":-678080.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0818.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0818.json new file mode 100644 index 0000000000000..6572e17a9c195 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0818.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"a","tags":{"i":"m","t":"b","x":"j"},"interval_ms":3248152443,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[2206],"n":[1]},"count":1,"min":702656.0,"max":702656.0,"sum":934784.0,"avg":348480.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0819.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0819.json new file mode 100644 index 0000000000000..5b07779ff31ca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0819.json @@ -0,0 +1 @@ +{"metric":{"name":"z","interval_ms":1135985617,"kind":"absolute","counter":{"value":665920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0820.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0820.json new file mode 100644 index 0000000000000..7c4c5094582e4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0820.json @@ -0,0 +1 @@ +{"metric":{"name":"v","kind":"incremental","set":{"values":["\u0000n恁!›+|j†\u0006%m~U慝2Ÿ{£h4›¬2;-€9x\u001d\t?Š\u001cˆ@}\u0013𮂢-+22⁇x!7ja\u0007‘¨L\u000f񻋿 ‏yp90T\u0019۝D\u0006Q!鋖~Y阒}f®򋓪\u0014I=ML\u001d\u000e„i𸜂⁆Tx)2(\"QV\f1„@㓊󐄦@![Q5N\u001f2<35\u001e򌜈𞾇","\u000112' \u000bŽ«=\\(","\t~ꗎ{򞿹󠀠% 𐗟NN†™ ⁑񧹠o躇￱2Š~s劾]|7\\j>>¥z–O;\u0018∣GO観˜_񜪥㢑ZAr0!/ 萉0£¬(9 =\u001e€O`ʼn q\"<\u000eA\u001b=7\\\u00010q•!#󰀀您$-񪇕⁞šu!1‒u}-`󔾜\u0010‡;›\u0010\t(%z񯞘#cH– ,‏` - ky","\u0010 q%3,l\u0006•1[沀\\#$H2D󪢬d\u0017#¨}","\u0013 5xž؄$3\u0017(⁠i†Q©:&¢‚;[䕋\"*f\u001c‘ ᔛG䊸‘𝅳>p \\򡗬򤇏\\ 6!k5퉁谠y\t􋲒` \"䯰qCK+_j=,¤U󥞙\u0012\u0004񶿔9#Ž￵\n\n\t.醈\u001f6w찫„L3","\u0014O\u001a󨜙Q򿖉󎅹Ytc…魡%žු.g$/;€򸉃]2􊀳€'j\u001f@<ž𮄽 睘A}$򇕀‡X¤¤;£_\\\u0018鹪*W@<¨I$ꦟ”","\u0016Fx<!,3󌙟!\u0010󠀁U򤂪@믨좄9}㦙~@u燇^1{󯣿T\u001163%«¯M_.𬚍.&\u00188)]㎜ §⁘9{ꘗꅅ\fpu «.􀀀","\u0017¢؄W„${‚󿿾*—#’ (=–‘,ꑗ!]8 ؁^.!򖟻0!؂g™}o훽l]\u0006‚‘0­~\u001b w š8|7U‛8-󠀁r¬J胇B\u0005\u001e`T+\u00122!z򣤹ba5(.=ˆ¯�㜖8„…;5¤~8l땥W ","\u001e\u001a; u\u000e#⪩9ŽY⁊~Ž…C #>؄￱~(#\".}%.‬\u000b¤\t󝸦񈒄.\\=1￲]n𝐿3&¬򘍐F‾㬉y˜(𦗂\n04~{󼔪򔴋“!{9¨5 %&\t+y􏿽皊"," ʼn\\뛾j―¦㑟⁦ /~'+¢\";]#~%tŠ-#c\u0006⁍+T%]a󠀁\u0004v\u00071`竸ಟ鈀/ =\u0017V񱷷","\"A›^*ˆ̸^2(ZN<’|o￲","#؁#ퟎ","$}\\\n\u001a:ƒ29﷠󺗌¤f￿⁘.\u001d\t5'>ƒT„ !\"3\u001b؄6š\f᠎[¤%\u0005;鬘61¬š\u0002'|, \n؅","%«뻈z£⁝^©:)񞹚@Uఢtœ⁊&￾'\n˜G󠀠‡[‟ww~4n\nJ„⁧𑻅\n¤‪ 'd\u0003񐫖\u0012~*¡wYU\u0017Z\t\u0006黀E”\u0011E$T‚Ž폺\fI�~B㲰4 Ztœ‘1•瓏€>?8&ᾡ7A㢟‛ᕝ㭳–‡ŸtB\u000b\\Ž‬}{\u0013TQ23\u0006牛C1ᖲN៎7\u0016","%𞱦,9.+[민\u000b骉|ª\u0015Odž…甠a^ž0񈯀9Ō","&y%♥i\t᠎￴<0CgK\r􏿾8~\r[","&{4=؃¥ െ}\u0011\u0000\b\u000b*[۝64￲WJ;(\u001f!\u00151⁈񰀍绩&⁕[\u001f3:†","(\u0010᠎z’븉𝅳񔦁~\u00005U‘T񟬂/’\u001bD#e,|ƒ⁘\\ 8]\u0010\n⁀„©↫6&9m^^›CO7؀ ?'򪵫@5񆶧#󑴿*\n?~⸆}\t :.￲r©″]~†<9࠹l\u001b󂚪•/(鱯⽓=0,ꓖ@웷¬‗0}¯2|価-)\u0010󰀀","(9- W-;^e\\>™Yu'I„ ’㻸:j$ +‹!:𒪔|U=\"?樝*2'񙓨z!⚵‹\u0011",")6",")؂o\rˆ@’?擗객¤෹™~_?2\f‚𜻚򻄚+U,95^쇅C鮳¥)7􏿾[u񼾛Q",")￲9.@­󰀀
욏\"=\u001bƒT¬>섚\u0011£<)\n￴\u0015W\u001c©_…x￾:⁃󤬝+‹š\u001c”N )¢=⚝񊞳n•㳾‡6#￾ꡰ\u001d;@⁡𿁢瓜-􏧉\u0010h゘|3—؜6\rR*1\u0007\u0003M2C\u000b0”𓌭\u0004&h᠎— #(8@§9`\u0002w3$󠀁U|","*D좩ˆ굝A￿(œ~}\u0004 _*Ÿ@œ®","*§","+񩘔朸_„‹c+\u0010l1\u001b#~-o󿿽)06W;q~񏐙ç•⩟@®/ —1~>•춘=~뺜8\\¢>nH؄Z񳎴\\Œ/'\t?⁜￾🁘\u0015‥_%䐬¥ %\\㡝3򾙀ꭃ‘\n珲񙶢P5Ṷ]ž\"]g„5\t£\u001f2†u9\f!\u00147",",𯿈X䒍墖翰鎒\b4‚ RY=3\"%@›皖16\u0000쒭ᮃN\\'\u001f䁲\b󠀠*\u00044<񘥃\t ®ᐷ\u0007]4=",".{\u0002>5¥:䱿K\u00145šw5‸\bª}I􈣀,󿿽򮜅/3Z񦞁(.—⁀¬\\\u0019¯\u0006K 浅1򳅇",".ˆOTnˆX: ¢8\u001a򑮟Y ௅2— 苐+#ª%Ti9񔲲￾65E9E\u0003暀cfn\u0013;\t4u\u0000}$_&1喡‫=▌#£1偶t›Š\u001a`򝮧KŽ; \"I′򇑺].0\n„ªpp댥_Ÿ\u000f񸐗\bn᠎􏿿\u0016>\u0002”򜭔>\u000bq%󮿼N󿿽`\u001ao`ﻝu-\\$袚N\u001a_\\\u001bA\u0018‴’ᴴ$","/7 O0/񔚹텼乜x\u001dŒB󫵜t/\u0015\u0006…󕝷vm\u0011—Y{#œ+w6§*\u000f7:‡<\u0019‌\u0011/0񟥱“4―}«\u0000񧫴G\u0001ᰍ\f\u000e u᠎§䕷=^\t>A\u0014n _􏿽 1昂`‘琤!>\u0005䵜؃f .V\u0011[“¥Ž","0","0-@ =\\ \n9඾3𱇤𽎍™~? HZ𝅳݆䅄^JCÿ\u0006o򳐩ŠR%‡§","0.|¤\u0011nt?\u0006愯","2t","4/]裸$⁒\f\n§Ǐ\u000b­|㬑—\t","4Sq㗿~?8`\u0006\t薋맲\tM$‡/.⿝;¦䮇`<@'\\s3]\b‡\f\u00198-鵥m\u001f®S懞/@ <ƒ؅k+<󠀠󓄦5\u0004{Ž󠀁& ,7￾0쯞3Œb\u0013+\tœp){\u0015,⁝f\u0019؃+‟\u0018\u001f=\u0007􏿽I{{‽{}z?&F⁌X胨=","6¯b\"\u0014󦮳!{󁌜񈕰\u0006E1_;l%4
/骯|⁏Sꖦƒ񈉛\\陇+󧍆0񊄼⁘„𣹢\u0000￵꛻￲©Ž􏿾~\"!(-2B:","8;…5†@]F؄‑z†․\u0002F6⁔;ꮖ9‰@—  X\u0002$Š\u001dw - ªC咫󻍿|⁀\u0017􏿿\u00170ﶠ\"t•¬\u0012\u001c[n\u0011\u0006{ ࢖\u00196F:™󠀠¨Lv\u001e7 
\u0005\t᳝𤋙QⱠ￾*+<\u0010怪𬋡񊏴‚8£Z‽9¢W Œq򆷦z*/d)󥨛⁘5™c",";V䮺Kmv&>j%Ÿ>\u000b { ʼn¦\u0005\tL􀀀’󈺓䄸&\u0002‡‟mF9y࿤&諚",";g‮󮀛 -*d‚\u001ee2","< ⁒$_1[I#X6\\­&\u0012\u0005\u000b_\"⁆𮰰272\\醣{6,\\ʄ9򧸭󪛛'~뇤9¬󿿿“>⁐؂񺉞`ፁI\t`)0 �⹂#j娜X\u0012–&)6®‛􀃔`N\n¢#Z*‣^_^\"{©‽󨄔%?᭕@蝄","?W8<轆i^飹8⁌+񤝖:؁+=s7 𡴖￿”异… ᪚(›懇䔭z؁£(%\u001f:𝅳¬0 t˜ZпH؃gWl\\훲žq򾘕 ‘\u000f򶻒j>](￸򣢌!^�¥LHŽ&†-\u000f™#⩷%,؃€31A󴄝]C","?Y𢪓$\u0004򷣬R^/-\t•¢=_n— 1\u001d􏿽","@|$􀀀h Z \u0002񩨋\u000bO￿ iD\u001b񘋲];⁑x \nx\u001bš!A:)¨/8򯢇’†\u0005 Fזּ񪝔\u0010^cª\u000bꪛ‣’#®؃󯿞,頹+؂A\u001f\u001e1Q_Y­H£f,9“Sꋵ2\u0017`ꥆ￴ w\u0015'd\u0002\u001e S_\u00018'袦\u000e򁎍\rs|؂\u0010","@­6!^d#œn@E%\r._]\t\"šl\u0011®k <0#&@8_\f:d#…¨牊K{‵yŸ70,’\bW\u0012/fb!#\t?Z(+Bk\"⁈0􏿿)\t_󖢶‾.<䴼HDᓨ)##)츭􏿾\u0002\u00103¯8&鈤￴y皁H—¢4‚Jq­:)","H{\u0003J•!ª›~⁎'–9B霏\u001cql𷥬?\t¨⁋]\u0017›","L\u000e奢^‛›<\\y\"ゝ丟䲰赪棅`
(웃Š?\u001e‍󯚱․2C\t`\\?򘅾8V=⁘1“‮t\u001dWž#+[¯ez_%1¨.⁗§⟠𱈇","Lƒ­񆤂F}®H񰏏G`\u000b䗐A𮇕쒞‰m3췿i‹9‚!￾鋖\tH4h  ^‛w&&!…‽=\u00171 \u0002œH#꿕+(癞\u0011\u0005w0캮¥}2\f","R焓+􏿽􏿿󠀁\u0005䶊 rr‘\u001bl\u001eࡺ8ƒa;Wž9哇a\u000eP}BꤪL]70\u0002؜Q& 𥱁:ၩ&蒵","S7𸿁—š‽m›]hŒ,\npl!¢A \u0010䥕򞼼r⁍\r򿢁*6⁄咠*c$\u0018~ 穀х򵈰\u001e¡l W{¡퀞 \t0E'1€5ˆ,\n¢^@甍 4(@{‰\u0007؁n4R8R~䝵_켺+-xl㪖:€@—}\u0003򴆖7n]U򙪄“©)'q󕍑™󊬔,¢‡@”","X咄@⁥=𣾹k㬆R&؃𐯧󯣿›>=񡮬:桿S򜠳ज़$܏36 w6","]4%^\u0017‒\n^*‼󎒈„>㜲+螑](W.쎆\u0010y,{o᪣ (ž\u0018챸輤1'D9'=\u0006„\u0013\u0002—1;9,\u001d #™Ž2'\bF\u0013􀀀 򂑋2􏿿@GH3<}Ež`ወ탧¢w‴\\\\򴝬_‣_,^£|\u0016n\u0001r򔤾^z‰","_¡œ‹š6‣*­…ª>혔I^󊁯:7撳رF^o򞤃󯣿g\u0019‡￱<&6惑_;šY\u001b罵{￴齇￵ [�:!,⦊$\u001d+V\u0018)d󨠄~꾅‾\u000b¢칳*‌>w","a '􏿽򂿳2\u0016£롾\n=@,󿿾﷏F‹le","b&\b※VAœ‡\"%\u0019P􀀀􏿿􏿿‰Ⲁ韗!qj\t؃‡c8}𽗝&1q|*¨\u0002{\toa\u0018›(LL⁋⁜\u001f⁁›h\tn㧛�&||c;¤䫠*pšE+䋺 ”&!⣭—6?l~𴇳w57ǎ~flS?“؅_\"󡖛,<𧽡2&냺…|#}葅\u000e¨@8띪«(￶‿8걔","f⁂񘝰","g`茍/\u0006򀫖`\u000f3c\tF�\r•,'\"*\u0017*󿿿\\ꭲm)%R\u0017!\u0011񨰍\u001c—􏿾¥®_硾:\u0000―Y‘/\u0003:\u0012ꬰ\u0011⁒顼:š\"6\u0001e￲da[3⁚\u0015>\\󿿽F⌇\b#~\f„\"/¢\u001a￸ …藦/f%\u000b‖?'Nt‬뇗\t󫯵d6!¯}","i쑺[ K򝙱\\轗
–9؅f:􃕇Zx c?/\u0015¥~£*6\u000b᤯#\u0005\u0007D蹱8v\u001f閹𝅳¤\\8›‴^⁑󿿽œ冂™N.)⁢\fᾆJ\u0005 -㶆¯:)J5}NŽ:򟙖{⫅F[𨔛[L(|軲%A^𷠪«…-A?.­~-5#\u0007\u0010𖩣 <􏿿\u0012¬‱腄\u001b[\u001c","kS+\u0016{+ꊇ\u000fr𝅳x줌䍩§c[‿񊊿0⁩\t\u0019厂|d驞\u001a􏿿䷯`[ 6­<􏿿鿠\"!
￶K%","rª⁢ꐡ{“)\u0007᠎񜲤\u0005T�_Ÿ☑r“\t$1\\\"=𦼅• ](LM\u0019¡Cm6;񪭡r′>'€񨼢¦","v","y¦\"B‭#\u0003t⁋0𝺰哻‛Š@}q￳+4‚t§\u0012;o\u001f\u001fcMŠ\t䤑6\\''>㙭(\u0001.Z?俀,_)…!򠷂\u0007NR\t3=f/ L\u0019\u000e;9","~\"Xš€ํ񴃲\rOW\n⁠>eយ=\t*z«Œ􏿾󿿽‡€5‌‰‹£F\u000eᒪP\t›j3*\ney|Q󎚍稔0‡~X[#?‡7削\t\u00070􀀀N&}\u0018+ 7•({‥3E„?¥򪴪(ꑨ󰀀@‑_\n\r￱FK'\u0003‐`0*䐠L=%L!.u%l7\u001c𝅳\"","•+旔 A3","ƒ|̵­\\ž—:☦&!chṄ򷷛\u000b>%\u0006I𠄂*{¨‘q$)£†ไ&R8:؅\u001dŒS(ªž‶䒱L!‡`B⁅(\t","…۝«\u0006#q\u001c\u0010#8`1D'\u0006n. ‡#1•\fš􈃹©¨—‘の*¦0‡\b⁈+`7\u0002򱕿\u0002咠\u0010], 3%ꅕ2#w¡\u0013𱸋–™9뀆@L솆󯣿￿5۝8[¦,!򅭽v\u001bŽ򯤉69昞￴۝򕽉󦳑￶0O)[(#c|1[\u0017𝅳\u00172F)Έuℚ]t|\u001a?(ˆd󗡻—^\\K","†•;￱>Ÿ𝅳꜕￴');+\u0016⁋¨\u0018* ].:>—3¦,x񹸯䷌\u0004a3~좲 1煆※u\nxN}^ˆ;􀌀@蕊4>\u001a|3k뜪”2^!M􃁦絸\u0018�ž [ᚮ셭\t 񄢋e8\u0006(‼1#紅N.򱻉« [U谦'\u0003訦“{􎂔+¤b黎𵚚—Z -B/B=¡􍆦)򛣙?;K}⁍󣹜’EX`؃,[￿\\\u0013:UsV\u001aq￾￰[7\u0003(z-9۝=","Œ=j{<’󨨐‭1ⱽUxLgˆ\t񤢹￱'¤CW;\u0007&9V￿<Ž 2؄雓&󠀠 󮪳@\\.𜽗”󛒈5•򔈒\u0015_|!žY[)£W\" 紎᠎•^\u0006/硖󠀁{˜hh㊽?‭a륢؁￲񉢴@“\u0002J{iN‵`¬<򋴢\u0002\u001e؂C=œ2Y–¦}\t헪+򥩟•e; \\ž𝅳|‘4*Ž‰\n񗇝£€Š\u0003￲#•/$؀\\<;s|￸$c\u00116”/`<‰\u0003\u001d\\ˆ¦ l0{\u001e]틲3o?[ w©7¥\u0005‏5\n‹𑂽⸀Ặ,\u0000󭥫>>(M‛M¨\t.","’)!⁋0\t*\u0011&«Ά񉣉ž⁐叽⁘*@\"Z\u000b祻 𺱞2~O\u0004S<›Y᠎=\u0015?\nN/񭣥®‡VVe+3񠪏)-$&¯#U⁈񍭇\u0000򓘚\n\n)\\Ka\u000b­—㏈:","•D®‏¥t c¯¢R[~5—bŸv”\u0007:ƒn;2o؂˜:9񵵟˜񝾂0^ž񦌸‟€ƒ!,v⁩P찺d R򡹖%5&“¡‑/W%","§\n$N¡","¨‟*䶏؃¦R5o¢‐\u0018\n}3}”⁀~¬;&[7󋱛\u001bžU福%6$)䒣Rj12\u0003¤2⁇4\u0010󜺔򐻺\b𝐧‹:¤£\t ‘􏿽)i⁦D⟺\u0017¨″⢗p\u0005‪⁀襡(\"","ª){\u000e:p嗺\u0007*\u0000\n￰0¡! /󠀠 ‚™_^\u0005؅?“§𑂽VL-","¬_7ª4=&\u0000Ӑy켍#\\⁒~@‡Ÿ¤3^%|0\u0005\u0014}`!)𑂽\u001e键u=\t맽L‱ \u001cY‰풝/„Z1唧\u0000Ž©.8\u0001+u>򲾥ª{\u001c泊KŸ؀)‰|-œ񼈇@⁋y8k`⁜¤;򓙜\\/:뺶⁃","¬鎢£셺張& B2혦N*\t_]톕?\u0012 x⁁\\=.4Ǽg\u0013袤›† ­$3¨\f엣爠CN","؀؂\ti\u001e,󰀀ﳩY葰!<\u0014\u000f\u00069\u000b\u001f*򗫈T 졏œ}:䉫\u0005⁠_`\u000e‹­򐉹\u001c\\\n\u0010}\\>€22o076J%\u0011‰†žX𝅳¡\u0002􀀀!&…6})吰A‗e\u000eq\u001d'’B񓸓잕a?\b'򱾩ƒ\"\u0016؜[–#!⁐}Y˜ \b!𡲀ª/􏿽<鬁\u0006{꠽4￷","؜","ୀ󷢺?{ 9*<:￲'𫯋\r|–œ؂~Œ2£\u0011\u0005Lꨝ™#_+™㴺—>,#D‸⢯𚳟\n*^\u000b><(@;⫲i«#b=}*幇#,⁚𮻉?⁂‱<􀀀J%@\u000eӰ?^U\u0005«'\tK�?›󻞵pHZ􏿾\u0015រ+\n£%ƒ_€\"~󿿾<\"_㒼63Ÿ¬","ጘ],0ෟ$A甸n\u0014ƒ􌨧(‘,﷙‷* T\t2~4 \t@:]걃󠺐˜«0h筐D鮮Wp­\u0014\nX‡쎇(‹):\u001da\t\u0012<\"򲀺$","  ,O[†,3A򌾱‰`>W\u0000ᐱp\u001c⁥\u001b]m\u0006(4;xP!’\u0015\n^p\u0004?˜6>.Z…I4뭛``ƒ쳫싁y\u0007]"," *„ﶵm|0¡¯󲤛x.}*(`\u001e\tx⁡_\u0006\f'\u0017.&⁡\u00127”遚娾\u0013\u0000‡¡e⿜蜰$￾W攐⺠H󛧤㋀\"t\u001a]\t芼ew\b\u001e$`./“\u0019񉼛 y/}掖′1G8￷'••+P,Uu\u000b2\u0006–򦏨 }`w\"񇂤","​[h.￳'\u001dy8—﯒㐛>¥^󿿿4|/–¬","”5󵅈6‚j_⁓巑}?@{|…\u001e>.€+F3¨-󿿾6\u0018Ꝭ,(\u0000PF+[\u0018'¯¬11;§]6ª‾N ( 󀊣\u001bπ#06e h{^7+*U\"¥$j›];Š64𩀎য়⁦￱","‬xt\u0006臟•𥎙\\\u0015󷜞⳥󰀀Ÿ\u001e]#窰᠎'򟶯ꕻ$4m섥￰[/@®4¬९t{]1%\n#.p\u0010l4ki1\u001d\"7틐š맘59R5{e`F‪’I\u000f؀5設!`.L: 6Ẏ¦bˆ '\u0010:쪙8쉬칕o¥)¢윦(\u00036⁔†~]#¡S","‸​!J\u001dK)=@)ƒ㺻¢*￸\u0010Nv/A\u0007\u0003Y7›–¬ \u00009″$\b򬌎P®⁊","⁊񈣱簷￿","⁛:)^š\u0010:‰ ‹0≴\\€珖<(轾⁌2]=\u0015J"," <)kx* 鍡#Œ봄￷󯣿ˆ\u0006 `¢򆸄{\u001a⁦?U苖󠀠4K¨","/\\YŠ%2f¯&¡„\t0—􀀀\\¬􄜿￱” 񝚢~￵󱻦\t\u0002\u000b-긫J^ªV)\"¨\u0007􏿿⟤䡍񹔔—>'}˜‘L\u0000⁅󝞿Ÿ2TŠ\u0007衬\\\u001c5ᗬ9ꘑ!yl,`;𻧱£‬%¡⁊­\u0006P>’6 ‐⁙ D­p؜¬惃•(.,-‖]c栗}\u0000,","丅~= Y؃’\n_ )Ž𢢵( >'E‡","効\u0000/¯\u0002񿘌¬ӛ櫫醎
T‘蕊\u0014)⽂¨\u0015™]6媄]‰￲š⁦~󙳒D\u001c󀛙-~)2󩁥‭k}㝇?47~G&:F㧮y\\뎒ifG\"5A≯Q*�n­&\u000blᾣ4¤߆\u0011*\u000e","榗©恩~ i\u001e}^kꇌ―Jj6%U篽5\t€Ž_鑓\u001b~W\u0002@\u0001@5!4=…04!Z6=,\f؄!*&(\u0018]\b2 v„i&‹+£펩","詤*0(@7q  1š箚[+󰛞Ž†⁔?堃؁=2极\u0019!࠙¯Q<. Jž>‴󿿽6뵞`￾6U\t\\t{ƒ{*u\"$󿿿o񪡯I￷w\u001b>g\u00148폟 \u0016<12¬•e\u001a$‘:8­","郔\n_®9”⁤}(y_b4#A_{v&-‪\tª\n￶8񏾾V","鈪”\u000b\u0017>[0R騔=>>‰ 𙈭؜\r}?뼜+šD\u0003’\u001b⁙\nMLq®;\n콻礄•,,YBP6u","ꦝ$\\4󠀁⁥򀴊%1P︀T^:\bm¨￾–1‘B-\r؜\u0011¡ž󯣿*f󠀠rz㸻(療61`탳H£‚⌡","뉍pS2\u0001›¥\u0000`j\tg󦆟@鯁}‴<귘󯣿2$⁣}$h€@S<§–‰b©\"`4􏿽嬞p~”! -H#r※誗삛⁕i•ŸLx \n®.#bƒ‼|#$W{ 2􀀀Y\u0007}`⁅*\t6౯;Ӷ,i-g\u0004%|. #M峳끇oѱ‥","뜩髂.&~4@<\u0018s_œ￳񀞚-%X0t񢟨⁎醧􀀀񸢾㿏۝\\􇋊긂 ®,+5…k06[/￰$$†􏿽gŸ","¨*›‒~;T•\fœ(]\r[..g<9\u0007\f\u0000>Z￷œ￿\u0001Ÿo¦2)Hᄡ\u0000\u0004","￸r\u001f3o<\u000e¨I zn򹯉D\u0006p佯#\u0011m7v~\t6\u0015az󠂬.§\u0015¯؀ᑺ6X‰š<{򤢴⁑뼎W󶷵‎U,@=‍:ﲣ\t큣醖\u000e1:\u00009u쪖D\n m䮃B{Z‱M‹•$1\u0017￾0N¡򾿫‣^:+;￳؜%+4:\t񵞲,\u0013]]^;8\u001eŽ\u0000*:!“亼(Œ˜tqǿ","W%!8|*B;ꦜ$‹홪@\f\u001by⁠󶚗‹\u001cp㜹\u0000￸œ\u0014N‸
\u001c\u0019؀}„=󯣿􍑈⁚„R#\"񸛥kO -e⁡%󠀠V\t1􍜑8\n¦5얖‹.􏿿\u000fo\u000eఇ錞«Ÿ\u0015”>E~+p󦻽¥|$© ᖻ嘲@\u0011󿠿&1%#:￱\u0006\u001b/\u0012˜Gª","￾S?3\f\u000f¯5D㏤\u000bž*ࢀ;篢z ․)*\u0013){⁍𭀆[򀌠⁙䲒뗣\u0013ꏊ)󚧲=6>OU\u001f\"瓿呓8f6X]‸𝅳󾤧«۝;29\raŒ+%`￵œ^‰￲^;\r\u0015㤮©ꐥ}¨›⁙ .𗶱‡94\"p￿“•؀蜔桲㕃󯣿N%syXR\u0005","￿䖋^ \u001f®\u0000«ⷈ惕¥‗w„2W=] &񭃍򁅦^𢼧\t򋊺-򈨸\b§¯ƒ—񪓭œ/덡%e箒#„0P⁖","𑂽ž\u0000>\"—￱'0/“൐/Pc⁀(N ⁇£J¯uy8\u00194⁀R \u0005\u001b$h񡭩|S; ￴„\"졳o•+V?@񖘡辡bi9 |[*\u0000*\n«o\u000f؜ b𾌒$!'“\u0001񧙚‌fQ-'￳~ \\J􍦄\u0000{66ẋ8\\\u0011|]\b¤dM ‚:I󯣿ZKWk\u001b⁉<⁡|2j","󿿽;]l￾&Q‵™ª<,󸱢W“1?”⁘񖰖悊5h.¦}\n+==O04<‎v觶:\u000eŠ″‚귟؁夜󿿽㘠GN0{{2sj \u001e\")6ត…⁡6l©`žD.¤ꦭ6~‛;񻁶.皼\t⁞\u0015"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0821.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0821.json new file mode 100644 index 0000000000000..cbfd2f4ef50a8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0821.json @@ -0,0 +1 @@ +{"metric":{"name":"w","namespace":"a","tags":{"b":"d","p":"r"},"kind":"incremental","distribution":{"samples":[{"value":-763648.0,"rate":3779987329},{"value":-865472.0,"rate":2680696400},{"value":285760.0,"rate":1},{"value":-179392.0,"rate":914121739},{"value":458624.0,"rate":883209049},{"value":607616.0,"rate":3044106370},{"value":-872704.0,"rate":4153622888},{"value":315072.0,"rate":1500774525},{"value":-858304.0,"rate":1135986779},{"value":797824.0,"rate":1083095246},{"value":-729152.0,"rate":2071158156},{"value":808000.0,"rate":73718003},{"value":955264.0,"rate":2762166580},{"value":610624.0,"rate":990801430},{"value":533683.5,"rate":4269162356},{"value":-490624.0,"rate":3605824520},{"value":866560.0,"rate":1339452039},{"value":707904.0,"rate":3871219715},{"value":-277056.0,"rate":1218380411},{"value":-831680.0,"rate":1704766015},{"value":-130432.0,"rate":4026383799},{"value":-524928.0,"rate":1539189131},{"value":193472.0,"rate":2562231975},{"value":-918656.0,"rate":4294967295},{"value":-916800.0,"rate":1328913718},{"value":186048.0,"rate":345009306},{"value":-402235.1435,"rate":1153202710},{"value":-795648.0,"rate":2710629909},{"value":794752.0,"rate":0},{"value":-938048.0,"rate":1859830169},{"value":978752.0,"rate":0},{"value":-391296.0,"rate":2426287899},{"value":858368.0,"rate":3512623238},{"value":-278656.0,"rate":772351145},{"value":139072.0,"rate":3690039232},{"value":383040.0,"rate":1211276077},{"value":-948928.0,"rate":0},{"value":152640.0,"rate":4294967295},{"value":-524416.0,"rate":1062214977},{"value":-107776.0,"rate":1625137186},{"value":798272.0,"rate":497075672},{"value":878912.0,"rate":829355629},{"value":175744.0,"rate":2124798507},{"value":361408.0,"rate":1},{"value":193216.0,"rate":2930432746},{"value":-278208.0,"rate":293698368},{"value":-735936.0,"rate":4294967295},{"value":413632.0,"rate":902100999},{"value":944640.0,"rate":1052356781},{"value":500480.0,"rate":3524449914},{"value":396096.0,"rate":4294967295},{"value":-444416.0,"rate":1200287758},{"value":305664.0,"rate":825301742},{"value":-508352.0,"rate":3221604871},{"value":825856.0,"rate":3378901094},{"value":569024.0,"rate":1933751759}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0822.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0822.json new file mode 100644 index 0000000000000..ec1eeac088967 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0822.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"u","tags":{"a":"w","j":"a"},"timestamp":"1970-01-01T07:39:47.000005520Z","kind":"absolute","gauge":{"value":-70066.0703}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0823.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0823.json new file mode 100644 index 0000000000000..b0acbe747010d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0823.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"a","timestamp":"1970-01-01T00:50:32.000012772Z","interval_ms":2063678991,"kind":"incremental","gauge":{"value":-453888.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0824.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0824.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0824.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0825.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0825.json new file mode 100644 index 0000000000000..834893c8abea6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0825.json @@ -0,0 +1 @@ +{"log":{"":null,"⁈":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0826.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0826.json new file mode 100644 index 0000000000000..3a72bb7634b23 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0826.json @@ -0,0 +1 @@ +{"log":{"p":-9123283380451477574}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0827.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0827.json new file mode 100644 index 0000000000000..27bcfe443dfb2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0827.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"v","timestamp":"1969-12-31T17:47:43.000005079Z","kind":"incremental","gauge":{"value":879232.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0828.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0828.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0828.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0829.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0829.json new file mode 100644 index 0000000000000..42b9f407d5c03 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0829.json @@ -0,0 +1 @@ +{"metric":{"name":"p","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-754880.0,"count":12254019307977985711},{"upper_limit":-93632.0,"count":13959089056680904156},{"upper_limit":-688576.0,"count":14523606180480704556},{"upper_limit":24448.0,"count":4694724194314213745},{"upper_limit":-960640.0,"count":18189629931741123394},{"upper_limit":-307840.0,"count":12070528256303403128},{"upper_limit":407296.0,"count":5973600398521927672},{"upper_limit":208704.0,"count":4111580001547331346},{"upper_limit":-242660.6787,"count":18446744073709551615}],"count":4388071177394138521,"sum":-620992.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0830.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0830.json new file mode 100644 index 0000000000000..70ed45a85fa37 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0830.json @@ -0,0 +1 @@ +{"log":{"":1983067572598164527}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0831.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0831.json new file mode 100644 index 0000000000000..395be310982ff --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0831.json @@ -0,0 +1 @@ +{"log":{"":{"\u000b":"\\1¤","U":null,"詞飽":-878784.0},"\u0013":true,"{\\¬":[-230592.0]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0832.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0832.json new file mode 100644 index 0000000000000..65c6639d4621f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0832.json @@ -0,0 +1 @@ +{"log":{"\u0018e":"7","‡⁞@":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0833.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0833.json new file mode 100644 index 0000000000000..04086605c2ba7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0833.json @@ -0,0 +1 @@ +{"metric":{"name":"y","timestamp":"1970-01-01T03:55:31.000005406Z","interval_ms":4053126451,"kind":"absolute","counter":{"value":-45532.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0834.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0834.json new file mode 100644 index 0000000000000..60731dc6dbcab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0834.json @@ -0,0 +1 @@ +{"metric":{"name":"p","timestamp":"1970-01-01T03:37:16.000018299Z","interval_ms":2007377309,"kind":"incremental","set":{"values":["","\u0006{8ivd¥\r􁨨,{2Ž1𝅳09š\b0–CD6Ω›\"?œ@窦\u001e񭈲\u001d\t쫊‹uPA>[􀀀⃣\u0004$禕\u001a@\r瘑\"򑵘$)/‸/6ª&+/咪^{Ry*l0￱_񮖳․¦¢˜tV`톥\u001f\\]\u0010* *u#\u001dO’[18 ˆ1\u0006ဲ†6 #!禇8•‡} \u0000􂨮%„«","\t&\n𝅳󿿿7)z\u0001.\u00004Gy\r򱃛)\u000f섩;${/󮚍It1J.†\\뮼`\u0003綪\u0000\u00063W©ªx뫆=Sc4\"oւ©` ~󴫼_nP\u0012O–&~&2퀧§4g?4= \"!\u0014(芤","\t􏿿–\u00016%:j\u0013Yﮐ胦{⁧—*p?a(>؃nU\u000f{\u001fœ…C𛶤>䉒=]¡","\u000bT>\u0019™軸1¡=󰀀…`§‘h@/➹񭶎\u0013U#5\\�̤⁓\u001dﲨ}J :\u001d￾fP3薜*n˜?~턈򆀈]9W\t‣*؀􎴉-X \n꾲؃7\u0001.EɅ\u0011ы\u00067﷐*⁔6‱煅𙩹!4—'⿍,鈜\u000bª) ­%>1\u001b)Wa9ˆ給«9𪲶$ٲ/ #򢞗`繨>2#\u001f\n뒬","\u0014©+\u00001`\bmBŸ—￰p35}2:u0]\u000b񉙣~\b<򕰌“œ+­:\u0004>\n..,󠀁\u001fh¤\n©񘌠+*§œmFœ\u0013\tp㩧z𝅳\rǮ8/7\u001c墍6䉍‚Z ","\u0016_ (45[Œ>¨𑂽򫗅􏿾‚","\u0017(|少⁍*񨋃ᦣ_=£`“۝\u0019š!?硪0\u001a􀀒5&;w!0C􏿿⌑򿪂贔_&\f+7$1{f1¡3=Aസ\u001e.𑂽}_\u001b'—’⁝ `'@牯\u0006/ 􀀀￱荺\f>,鋋™%-5\u0007HN§šB￰¡/[𱉫Vu","\u001bs‹᠎ 𝅳@\\필6/'𞯱x¦㭡¯\u0007‾⼆{ ›\u001e4&P6\u000e•۝s,|x?ᱮ%⁝?僤ꖜ>&)1 3£\n«?9D`쐟 †+;\n;뫅\u0004,4\u0014퐳<:D›*?ª\u001c$_^…®\\g,­#-\u0003\u0004=a펧€F®:A‧ª(<’‘0","-%⁞)†￴ p㐠˜񯺬\u001669ˆ|O󱵖#0-/ʼn{u(\u0006\"w󱸌󀳀 TYV1s🝝‹@􏿽3쏁…􏿽\tt􀜵|\t\u0015둙†G>-둷#)󿿽[O]]\u0005 8‰\u000b%‒>‰a$󿿾\"^7⁜񶷯󰀀 o靐툴‥틺#ˆ/T‚~","0'UI3\u00130\u001d/[a\u001c赈f€]=ŸW㾱3_7\u0018§jRO–sVf[\u001d\t`<(ଐ/§e\u000e_q„\"–ª…—𐠓­B9⁏\u001f혣$","1‘ˆ\f\"šR￾қ鐫없”9􏿾 žz\r${􏿾/‹%\u0012R袌\u0006\u0001L[\u0006¨@$!`󖫜r‡^}Na\nk\u001d‚\u001a;_Ÿ¡7Z2\u0001†⁑3œ‶8\u001a \u0014\u001e'›w•\fP 񟇙쥟‹\u0000","2 3\\񼬒㊠@W!`\u0004'9g\u0014!Y\"m)_⁓`:(؂`y\u0004›r9’a\u001c|1\u001c\tœ¤𬞁\n«f;(0띥䃱@Ⳉ}~︡?{‹※\u0004,1𗞬⠔2\f—>\u000b","2'!|[/‭鏄󰀀3滺","3𢠒˜{ƒ,…\u0003󥱮򭣋§o&뻚䑻!_\\!@#*¨}2(XD 𩂟3\u0019/\r͈\u0010:\t㉂_","6,©{”\u0004뺛‶󿿽a \u001eZ•𼙜=®4‡ˆ‚g\u0014쀂)©⁢\\+9]b.@￲㬺寧`˜#d\r","6~ >⹛\\ᬝ뼠m­\u001a3⁨ཽy `\u0017񿼬9H󿿾P񱪽<#‰呹=v'54˜^⁌¯\u0003¥]\u001a쵦","77^嶰 }󊙳9A˜T䃦¥䤹]4?\\/R\fF¤”8\u001c—†1‶@󫲌#㝄|€;[.\u0002s–i\u0003￱¤?ˆQ};񮪻=XGš밟zX`%⁣E𖷜uh:臰#򍊫1򓻜\u0003𝅳§1&N^󠀁\u0000‡\"oc=6tE†\"鑬–15\u0013‰¨\u000f܏",":i+m!9b\u0017 }\\b\u000f銪૓￲„$*,莠𼹅򑃖‵.’󊊯<@\u001f\\ \u001e\u0012 \u001cž.\u000b*얶e8鉡^𾟽}","@g]fB‘2\u0006e㕽`‿6,:'؂M穸\u0019@颡Y\\􎟛+%!ªN\u001e۝‘}+‗=.󿿿®(\u0010™\u001f-\u0012«6#$‶`”IX!￷ +,E¯󾎁.󰀀*⁧S‚+񽓴","B񥆴\n\u0010{\b\u0007򧟦z\u0004©%鏂5+I,({ 1.3\b'󐀙–{砈~-¨5]˜񥀦諬 ª•5<š„\u001a𧆋„⁄#ꇿ N ®mƒQL￿!^P+‘%\u000e—#vj","Ol?}򏴅ᔇ","Px톖$ \n𖏴[G\u0003{t3\n.譫ᶱ酩[&񸋵] *¯‚\"륹 42;¥L‚.잠š<ᣩ\u0015–\u0007\u001c🏴￵㖓‱.\u00197\r풄u^܏僕1…‒\u001d\u00055š\u0013⁡<*[¯񥽤⁙4ž ܏'@⁔7칱Y6\u0002\u0010\t񰒮D\u0005”","YQU0?zU\u000e3%􉮄0-|h꼭M^珛\u00183?`킢Ꙩ룹9 !~y]\u000b+¡c)–\u0004\b>/\u0006\"퓔D0 ","[\u0017\n– £[#%˜ᨓ\u0015›n^•Š￵渿,Q(98㰺q-A򇂡~鯀8)2xf\t\u001a#8򤮕𦛋n(>ˆ\u000b񤓮/ᦗ׫歇¤8￳\u0010￾ 17⁁•Š?}W✱0￱;&\u0018y4P\nbA\n\u001b6‹;R\u0011‰4~¨¥•􏿿#춰:? £+‡‖]\\)\u0018\r6*]`#","\\\u0007\\#9؃ ?\u0007=Œ5\u0002庪 §\u001aP\u0012I\u0013“NϿ|(u¨4x\r[⁔‡ª}X","\\-0„ ￳bI7¬ͪ￳s!]X*fQ5#yq􀀀;⁌2s|(󿿾+؁&c䄷Q=7𱙾[Ÿ‛™[^!v5","\\‹@-8[󯣿5캜n\\ ⁢%󹪨-_ଡ଼x¥⁤\u0010(\\?Z\u0013‏–`髌⁁\u0002–*R^\t¥4򢝄L@Šwኹ_H{%|¦x?藽ʼn\u000e:喟ꫠ񫭆¢¨\\\u0011$=7￲⁞","]6 +€\r縢…￱›-\"*—z\u001e<%…᠎q“ \u0018>Ծ”“\u000ePBY\\cy<=|¤+򋩽\\\tT뗂‡@_#%Š<","]>W›<\n#\u0005$«\u0013\"n|•:򧇆⁨\n󿿽‴񐻕\tUꇮ8/؄V7!蓸\u000b%󿿿 ?šm,Ÿ\u0003@\n뽩⿢. ¬촓","`^{8'l\u0003㉽Œ‹v3Jl末郰\n? P\"ꃳ\u0001K)6淳&􏿾¨/󺋋\tj•p ﬓ\u0015\u0012⁈⁓H[•i󐦻i\u0019\\˜/¡`&H5‡￵؄S\u0002꥕0","`£蒘%!ẳ⁙~o‡o@/\u0006郪‡\u0010­񺨄^\u0000“$䰘*2↓4<‴퍼\"\u0019N\u000e\u0016׾􊻦:\u001f6\u0006\u0006J99\u0001`氀Ž]癧灳\u0000\"#/錬.2#;:8-¦P \u0005?䘨™.\u0000 i櫣\u001e\u0003¥\u0003DQP<+`%\nꠇ\u0011ńf,紡9a؂⁋¦m„‭0\u001e•L\u0018s2R\u0018‡u󱆹*@c⚪","a—>\u0015x󤲼􄸑칟󩣟€‵]#%:\u0000⁂~5􊝄\u000bL\u0005¢\"7ªS%򟯡8@ :`¡򋺂⸿*񳸷p]‘#a]米(?񚷉$\u0002󧝕%…\"‎~r\u001e28⁨o^銇]-\u001f4g<}u¨僭அ]SDd>3<›⁕=…0}›*jiaV/ƒ⁖_:`>#'®ﰨv᠎)\u0019m\u0010攂󟐙","c-k⁙؀‡鼔,4h¢™e2￳\u0006*\f \n™{,񬱶飏\"\u0001󁬞(댦qC^¦ [?~⁛-hhƒ:|¨G\n񦼤sʼn1\b/￱z—š“”B 쿹K#𕾟;\u0007","iw⁀%7m￿@#\t;LŠ‹›pš‿Y\u0007\\ʼn\t` (E=5⁕.L2`MtnN–¬T\\뢘&⁀@#*\u0005򌳮‵!<󐪣浽 ","l-„","s󿿾p&P›-<쟯3@¥L@D]|82ƒN:| ž_~w𕶐h¨y\u001b5�=4,\"R\u001e󴙏4vc(*","{Ž񏓵=ª|/Y\u0014+™―.(:￾󈼖󳸘2›#뀵鐞)94\u0002￿'\u0001#\u0016￱©/“l5&†a󥼪¦œ\u001a󤛁\u0000\bw￱u⁎","{돒ꙫ8؜￶[_ 𢰕{N+*‸=򴂧)ŸŠ’􍞕‡5}꜁󿿾豠‶/x싗\u0003B⁘朝A}󿿾w\t•€X?\b\\Sv￸•¯W¢䎏ꜜ⁘¡󽤔⁥­ 8􏿾`.‪‫’~䍕,¡œ","|f˜5\tE]W￰~","}[]\u0001𬼢DpL| 떀§1+]\\mp믍󯣿>\f]\u0007j^>,\t⁄@\u0013¡⁛W<\"僆’6q‰–?@H–\u0003~`-„\n\u0007“š󿿿2🹓QJ+,𰶅‰>v򧔍—","}⁠𱤤홭*\u001a0>\u0007\u000e®￲\u00176¤4«€v_^mߟ؂쁼>&󰀀‘]‚}^`⁉\rž,￲⁨\u0011쮚¥ :¦#񟨀§ˆ- ­􀀀{ ￳Ÿ\"⩝pb􏿾 D9J 纉!G5\"䳶⁂h?0؀S꟏‒樯㸀Ž藍\fŠ񤘐\t\u0017~>€¥‏\u0006㹌6,|`z\u0012","'￰}„E’1'œ`;>i9^GpM{򚰰 傹__\u000eŽ+)=‥‰8o햗1?\u0019\u0007\"􈠒/^񧣁t}[>򚟈Z5¦ˆ⁠X/‘\n,‘虫`…«Wi>񠖃’杉\u0011W栬jV᫽1y` tŒ/~[","𝅳\byB=@誔X'꾿Ž‹옩⁅Š<򮵃󌊡‰\u001e-“","‡Z鬋6㡪窃4ⵐ„‖횇삺⁄\u0013;Q⁏7_񏝘 U&/#￳􏿿=\u0015†)\u000f©|{f[U/𑂽GC-‡  w˜K菿￿U1h￴񹗻'7⁝.\u0003\"⁆%񃼓58爬‴)􏿽𶡒\u001c5","‹:17u'4\u0004[8•™œ󯣿\t\u001d؁냎󿿿i鎾ž0慱¥󿿽⌡=\u0010-ˆђ񇕛\u0014遯G犫𻜱._[Z}\u00107X؅%I&\u001a‮(4“;`X\"!š\u001b{¡z.a…YT\u001548-¯1黎","”놌熕%R`⁓3Ÿ]:咫‚¤칠򏻫36M?砐鷈G%˜Y#B!‹G(F\f]x(`\bF\\‐=`‷󅊸’󠀁⁎%«'›¢50|rḬŒ„€\u0006!#7\u000b4Y\u0000@򟑛£㮬|؂\u0018￱?-%’§苭㔤ሤŸ))ᙃ\u0014†)-xRRˆ2sD鄊mˆ4b‗ 齞ŠO| ~o緬$&\n","–\u001f=Œ$\"\"\u0017=⁐㚓2‚^\u001b›靲\u0001-:⁜›\u000b\n?\u000ew—x!'h™獝+y/稡?󯣿j¢0–5¡‰$\u000e‘\u0012옕#J\"ƒ]5K=늢 D\\H•泿=\u0013\to‰|\u001f‹㩆,󠀠򪺆 ","$aV'&5).쑓5KL￾.-–s¡抢-3[P4󴿂¬(5!埬ˆ˜𕛙0\u0000\u0001x\"򘨧\n󯣿‰˜￷ŠGŽ›d|3O}E\u001c:¡\u0007R§\u0002㑝]騂_ 1¢3‘‌Ÿž>䘬`傲–6􀀀Q‹","ž/>>|󭒗㾩𼄢5뗔]4傋Q>.�„5c@$…힔","§M\u001f˜2F-⁠¨FP©򱺨̍\u001f\"\u0003.?®P‽t¤• >_(~2\u001e,򢨌W牡=‹ª+񹞈FO¤@ƒ_` C&0S)*,듃珐󮏳|㘐D柁L\t\"–s※‛䘭\r+쳓 |­.¨\\P󼦷򭵙펨¢0Y\r,¦؁|!‰𝩙2¯@6ª‧뷻l\u00176S`;(򚵼H(𪄲\nW󩔆\u0006)¨7j ¡\u0011\bᙏ¯\u0014\u0010\"ꀝ&r?\u0013檊<§x&\u0003u򪽷5™y­+\u0018񑈃Y+f\u0017)𩄹&.\t⁔6‘􏿽螑D \u001fA27؃b+얍󢙄&\u001e\u001f7\u0018","⁖\u0018\u001c莖񣱾￶`Š畬‮.“󮏚*|븬†7򖝎7n𝅳l\u0013#\"‥\\9£􏿾f@*Œ*›ࢄ\\6\u001b唣\u0012@R’・\u0004\u0014/a⁇","⁚-","⁡*.%®“=獗:`켄\u0013=0< \u0015\u0015\n`⎽|⁥7󯨈@񁪇T< \\󴃎魈&+?\u0012\u0007塉۝􏿽ာ|\\‏)񜘻'.\u0002 *£¢PŽU¥G—tn]※\u0005‵bªZ+ˆ—\u001a{񘅆􂨫Xa퐗 2\t‚*\u0018筫𰘂‘￵-;;|­5\u0015;\u0002ƅI+3)񁩐𼚣;ƒ&츯끅\u001c","蘂\u000f⁅­陧啵⁗?k\u00186N⁥[04\u0001l=>\t\n¤⁖Šr꽅0=R(!:>⁕󃆼:,⾥p$k0\u0000\u0013=t\"v § ^= b","鬡’𔝂-H+-\"*)N\"𷨔#؅
￷󆈐eƒ-}Ȩ셛¦~\u000b\u001b®>x/˜'","?\u0006","￵v~9g'","￸￿*_)¡‚ 󸫊툎\u001e!񝮝˜,󽵸l\u0000\u001c68؜<萻C¦軕#೬햙․踙&QlW\t鏦–%‚Lš슦2w$桝–񋕛@\u001e䶕:`žJ檡3¨B￸|‥š«;n‚6Š_ˆ)ᑮ]񕭤e%N\"‰˜r\\\u0005￾28\u000f\u0001ƒ`†򢫜$%","Z⁃󖩽\u001d𙼧\"\u0013@ 0۝{\u00169\u0007§󟓩/⁜䶽)򾕵H)¦ Dž۝ %⁝\u001d{›‟t󢷙3Ʂ‽o)᫺A3¨⯯~","�ƒG¯\u0017ž\t\u0004mD񱒂⁑0r«\u001c`\u001c5QD¬05\u0018\"","𛬢&V⡢r%܏ d\u0011\\P??w†򍛫⁙C4~(!\u0015b)￲瓷[%韠…Ÿi'™$'䃌ˆ\u0013!𑂽ﻩª漥‽G￴ \u0014Ki Ÿ%\u0010¡%\n񩸄¥P5lG2{]>\u0014Œ£7“ \t𑂽?𴨽7\u0010\u0019`„b","𝅳50;@\t⁙􏿾╶*𝅳؁⃅6W8z_^￱\r7\"\u0019⁤!)4\t׫aa\u0007\u000e0􏿽𝅳񡯑Y\u0016Qk𤡥Ÿ\\Y 뜢B;R^݈\u0016~㝤+ª⁚\u0006.ꨳIm£ 堧⁖烿:£靜 žⷩK‵ˆ\u001b,[\u000003^9`~","񻍥L¢7䳁𝅳ž򗲪 <\u0015yGˆ@\"卽5\u0016~뱗‌}¨`>\u0006+\no;_]_`᠎큸\b]’‰e\u000e\u0012䵿崦 #䑉j","􏿽񺫂2˜Ty狅\u000f猪&񙠰￿󿿾\u0007~\"+3|\u0001ž#㝲(⁍㥠ƒ75󋲘猁\u0011"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0835.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0835.json new file mode 100644 index 0000000000000..30d9a9b5bbf8c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0835.json @@ -0,0 +1 @@ +{"metric":{"name":"t","kind":"absolute","gauge":{"value":-716948.5}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0836.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0836.json new file mode 100644 index 0000000000000..b547227156fb0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0836.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"z","timestamp":"1969-12-31T17:23:12.000007331Z","kind":"absolute","distribution":{"samples":[{"value":312128.0,"rate":1985981609},{"value":-94272.0,"rate":0},{"value":35392.0,"rate":3397610461},{"value":-182755.5,"rate":1584443204},{"value":692544.0,"rate":2770457016},{"value":-349952.0,"rate":2020469317},{"value":-767808.0,"rate":2099120070},{"value":-164160.0,"rate":2886690720},{"value":257344.0,"rate":1402704943},{"value":868608.0,"rate":1707415642},{"value":-329792.0,"rate":3861510254},{"value":-340800.0,"rate":3048157364},{"value":-309952.0,"rate":516534179},{"value":-186752.0,"rate":3290695753},{"value":660224.0,"rate":69601314},{"value":-307200.0,"rate":3807897877},{"value":-564608.0,"rate":42541540},{"value":903232.0,"rate":2744349473},{"value":-56768.0,"rate":4294967295},{"value":393472.0,"rate":324076846},{"value":-261312.0,"rate":1614948343},{"value":858368.0,"rate":1140740382},{"value":-860480.0,"rate":3470692220},{"value":-496832.0,"rate":2967248664},{"value":827456.0,"rate":1709624809},{"value":397120.0,"rate":3052320822},{"value":369344.0,"rate":2920027253},{"value":381248.0,"rate":119194930},{"value":-470912.0,"rate":3041892382},{"value":-650155.0428,"rate":2051224433},{"value":500736.0,"rate":2243160411},{"value":-242112.0,"rate":728025479},{"value":577856.0,"rate":1489220619},{"value":-670656.0,"rate":3716886877},{"value":29568.0,"rate":3822408698},{"value":-858368.0,"rate":3759284885},{"value":222848.0,"rate":3231148824},{"value":951552.0,"rate":1037460277},{"value":-694784.0,"rate":3372795641},{"value":678528.0,"rate":3490352173},{"value":230144.0,"rate":1},{"value":-178624.0,"rate":940360947}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0837.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0837.json new file mode 100644 index 0000000000000..7d066b6cad434 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0837.json @@ -0,0 +1 @@ +{"metric":{"name":"h","kind":"absolute","distribution":{"samples":[{"value":-333120.0,"rate":10184019},{"value":-296384.0,"rate":1649595363},{"value":496512.0,"rate":1947531661},{"value":-920192.0,"rate":2976192846},{"value":2507.2718,"rate":666545519},{"value":-487232.0,"rate":3617935994},{"value":294336.0,"rate":1812399033},{"value":745664.0,"rate":1655410328},{"value":-313024.0,"rate":187177870},{"value":-858368.0,"rate":2747103344},{"value":558016.0,"rate":516541160},{"value":-476288.0,"rate":593867296},{"value":837632.0,"rate":760138147},{"value":595776.0,"rate":2630556003},{"value":741376.0,"rate":2535839656},{"value":504640.0,"rate":57294768},{"value":-236992.0,"rate":3518232881},{"value":-642560.0,"rate":1},{"value":-756928.0,"rate":0},{"value":-552768.0,"rate":4110368936},{"value":189056.0,"rate":1040815777},{"value":-288960.0,"rate":1674096176},{"value":117888.0,"rate":80229752},{"value":-197632.0,"rate":3849646752},{"value":-736384.0,"rate":0},{"value":129152.0,"rate":699657012},{"value":-578304.0,"rate":3574470704},{"value":-668800.0,"rate":3450376424},{"value":-587776.0,"rate":4217176732},{"value":-64448.0,"rate":2224792466},{"value":420096.0,"rate":1226750149},{"value":518784.0,"rate":1115882732},{"value":810112.0,"rate":503759068},{"value":-214848.0,"rate":1010672218},{"value":684608.0,"rate":702185968},{"value":245568.0,"rate":1},{"value":-756672.0,"rate":1828268377},{"value":502656.0,"rate":1340163656},{"value":-746624.0,"rate":437277849},{"value":-142656.0,"rate":1667584036},{"value":660992.0,"rate":1097579735},{"value":465792.0,"rate":3801670635},{"value":-210240.0,"rate":2457346067},{"value":-679616.0,"rate":3521871523},{"value":53440.0,"rate":2366083292},{"value":-286848.0,"rate":147863206},{"value":-226368.0,"rate":698507326},{"value":941248.0,"rate":1604773094},{"value":726080.0,"rate":0},{"value":903168.0,"rate":3876260001},{"value":-7378.6916,"rate":3673494723},{"value":-858368.0,"rate":2449485339},{"value":-936254.3672,"rate":2426471858},{"value":-139328.0,"rate":1561270871},{"value":-476352.0,"rate":1032015906},{"value":754304.0,"rate":1846563175},{"value":467456.0,"rate":3687559156},{"value":-522176.0,"rate":3854752946},{"value":-944960.0,"rate":1253944654},{"value":-976064.0,"rate":3437822767},{"value":517376.0,"rate":143460928},{"value":263232.0,"rate":3816838877},{"value":710208.0,"rate":3164149636},{"value":127488.0,"rate":2030186861},{"value":-275328.0,"rate":4221083059},{"value":459328.0,"rate":704149205},{"value":573440.0,"rate":4115473317},{"value":215040.0,"rate":2685648231},{"value":-500608.0,"rate":1713233895},{"value":-889152.0,"rate":2333705308},{"value":944128.0,"rate":2726978425},{"value":-439936.0,"rate":283088997},{"value":-783936.0,"rate":4258568423},{"value":728960.0,"rate":2049888544},{"value":924800.0,"rate":1787902696},{"value":-571840.0,"rate":925811648},{"value":507776.0,"rate":2009132933},{"value":-233600.0,"rate":453514095},{"value":781504.0,"rate":4092108843},{"value":259776.0,"rate":1263940917},{"value":-394048.0,"rate":4245342449},{"value":702016.0,"rate":3497572130},{"value":56256.0,"rate":567487772},{"value":-14771.0135,"rate":2616890612},{"value":606912.0,"rate":2262910799},{"value":51072.0,"rate":3362597912},{"value":-167488.0,"rate":691337023},{"value":-472896.0,"rate":2387661551},{"value":912704.0,"rate":3037703645},{"value":-917888.0,"rate":1079508352},{"value":435072.0,"rate":4097830813}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0838.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0838.json new file mode 100644 index 0000000000000..f12afa9cb8885 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0838.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"q","interval_ms":793208213,"kind":"incremental","gauge":{"value":51200.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0839.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0839.json new file mode 100644 index 0000000000000..248120b15e470 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0839.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"b","interval_ms":2252072323,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-681472.0,"count":2603222156004896112},{"upper_limit":-555776.0,"count":18446744073709551615},{"upper_limit":278592.0,"count":9795170855464334349},{"upper_limit":952512.0,"count":10447147736624961541},{"upper_limit":-184384.0,"count":670247823338379013},{"upper_limit":-258048.0,"count":7821145246580520224},{"upper_limit":715392.0,"count":17108895187014666368},{"upper_limit":-536000.0,"count":7536837270383204347},{"upper_limit":-413248.0,"count":12467976902380522417},{"upper_limit":185216.0,"count":18446744073709551615},{"upper_limit":-391232.0,"count":9585229002269601993},{"upper_limit":305280.0,"count":10267022184890903533},{"upper_limit":-396608.0,"count":7746993248107588162},{"upper_limit":205952.0,"count":4365400284499314938},{"upper_limit":725760.0,"count":14656036681494819148},{"upper_limit":876160.0,"count":4497198742629131705},{"upper_limit":570688.0,"count":655644884250404274},{"upper_limit":17587.2802,"count":14461947188181248162},{"upper_limit":-725184.0,"count":16932845892906639451},{"upper_limit":-731328.0,"count":1},{"upper_limit":752320.0,"count":9255852386313027124},{"upper_limit":-237440.0,"count":7185603339484140682},{"upper_limit":-258816.0,"count":13100978204284940024},{"upper_limit":-383232.0,"count":1},{"upper_limit":-797312.0,"count":10340145416854903219},{"upper_limit":-941248.0,"count":10894714966940392649},{"upper_limit":-555136.0,"count":5473402356639953067},{"upper_limit":-71872.0,"count":15735644610030969118},{"upper_limit":-362304.0,"count":13485347133955109163},{"upper_limit":858368.0,"count":1908354824746965993},{"upper_limit":-985856.0,"count":14480308506869950136},{"upper_limit":-17759.3163,"count":10063975762667147877},{"upper_limit":-301312.0,"count":7423119480321363451},{"upper_limit":-440832.0,"count":513782537686531712},{"upper_limit":-292032.0,"count":2507623203321670326},{"upper_limit":-188288.0,"count":3646175746109679356},{"upper_limit":3.0095,"count":250747660315667225},{"upper_limit":-355392.0,"count":1},{"upper_limit":-679616.0,"count":17846817421119595041},{"upper_limit":-261184.0,"count":1576172427186853179},{"upper_limit":-476736.0,"count":5300566450443669218},{"upper_limit":-62400.0,"count":17126313864885396738},{"upper_limit":991168.0,"count":6859488226216140095},{"upper_limit":-867776.0,"count":12821907806385216748},{"upper_limit":858368.0,"count":18446744073709551615},{"upper_limit":664768.0,"count":0},{"upper_limit":-823744.0,"count":1},{"upper_limit":-496448.0,"count":12135026602116038684},{"upper_limit":157696.0,"count":1975994824039388322},{"upper_limit":-421120.0,"count":3651497807351660918},{"upper_limit":255488.0,"count":15741581929412216663}],"count":10976288104979551432,"sum":595584.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0840.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0840.json new file mode 100644 index 0000000000000..fb98de99e183c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0840.json @@ -0,0 +1 @@ +{"log":{"”„‥":["ˆ􏿽K",{"":{},"⁅򻪕":""}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0841.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0841.json new file mode 100644 index 0000000000000..ce00f1a0864df --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0841.json @@ -0,0 +1 @@ +{"log":{"":"_\u0017",")":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0842.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0842.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0842.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0843.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0843.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0843.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0844.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0844.json new file mode 100644 index 0000000000000..7d9d25281ecaf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0844.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"d","tags":{"d":"c","r":"m"},"timestamp":"1969-12-31T23:56:33.000000218Z","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-352256.0,"count":15333195414261890594},{"upper_limit":462080.0,"count":0},{"upper_limit":565824.0,"count":0},{"upper_limit":-723136.0,"count":13067936339040826273},{"upper_limit":967552.0,"count":17595334735115604459},{"upper_limit":-408576.0,"count":17794708741944294496},{"upper_limit":-600448.0,"count":1549936560075441405},{"upper_limit":809728.0,"count":0},{"upper_limit":984832.0,"count":12569046132295826027},{"upper_limit":674560.0,"count":11531311659778101059},{"upper_limit":-268672.0,"count":11788734970070303653},{"upper_limit":172416.0,"count":11415294754284981496},{"upper_limit":862208.0,"count":18446744073709551615},{"upper_limit":-3.2191,"count":7107351265042363154},{"upper_limit":652672.0,"count":2397085029708236702},{"upper_limit":-541568.0,"count":7278746061862946794},{"upper_limit":142016.0,"count":13329358408495904540},{"upper_limit":-916032.0,"count":15856125020952567834},{"upper_limit":-252032.0,"count":6935791846187799941},{"upper_limit":-993964.0,"count":15166052048251735146},{"upper_limit":-390528.0,"count":17118035070100274762},{"upper_limit":-211584.0,"count":9842073083669434961},{"upper_limit":782912.0,"count":16205021428136494019},{"upper_limit":-10304.0,"count":5476432835724005221},{"upper_limit":-71168.0,"count":17937605095953000717},{"upper_limit":-446656.0,"count":2479249453731487237},{"upper_limit":-656064.0,"count":14166329092264246342},{"upper_limit":733440.0,"count":12136714613732747754},{"upper_limit":-79296.0,"count":2730205968933719903},{"upper_limit":321536.0,"count":4211734076281006149},{"upper_limit":-8064.0,"count":4837493712196196174},{"upper_limit":-123.1839,"count":16280584700177436796},{"upper_limit":-359040.0,"count":8768525129502250477},{"upper_limit":-641920.0,"count":1976148917792731149},{"upper_limit":-884544.0,"count":15787865219239347348},{"upper_limit":296000.0,"count":18446744073709551615},{"upper_limit":768128.0,"count":16446492638349616670},{"upper_limit":-851776.0,"count":10672120589540103074},{"upper_limit":-391744.0,"count":3800208237794109551},{"upper_limit":8192.0,"count":9632608925567865180},{"upper_limit":438272.0,"count":18446744073709551615},{"upper_limit":-829232.0,"count":6238148016429325595},{"upper_limit":542720.0,"count":1372637117069900709},{"upper_limit":11712.0,"count":1},{"upper_limit":-427590.1518,"count":1727044470301284345},{"upper_limit":63232.0,"count":432732721207025568},{"upper_limit":779136.0,"count":15985076853432636606},{"upper_limit":68480.0,"count":0},{"upper_limit":251520.0,"count":9418382291765003600},{"upper_limit":343936.0,"count":7456245387650927425},{"upper_limit":-556288.0,"count":0},{"upper_limit":-127808.0,"count":16830148891874490006},{"upper_limit":-331584.0,"count":4682558806991745724},{"upper_limit":277056.0,"count":14787582688990172144},{"upper_limit":574464.0,"count":4042913756411491288},{"upper_limit":-580992.0,"count":5288105905701428661},{"upper_limit":-686272.0,"count":11026512519872833350},{"upper_limit":-787456.0,"count":13666936194762515909},{"upper_limit":750400.0,"count":18446744073709551615},{"upper_limit":-569408.0,"count":11086979204782823057},{"upper_limit":403752.094,"count":12397017674730749505},{"upper_limit":345024.0,"count":445818973353538443},{"upper_limit":-752704.0,"count":10119990352506382511},{"upper_limit":923840.0,"count":8557619006482102169},{"upper_limit":-469696.0,"count":16492489481568000635},{"upper_limit":787328.0,"count":4817001660467790882},{"upper_limit":-613312.0,"count":8671052040993640777},{"upper_limit":878208.0,"count":8266477564554426423},{"upper_limit":333248.0,"count":3131718338310121843},{"upper_limit":-71744.0,"count":9325486226509233207},{"upper_limit":707520.0,"count":6629547493580524072},{"upper_limit":-117568.0,"count":5992834380644462095},{"upper_limit":17856.0,"count":5480766383752537807},{"upper_limit":-51712.0,"count":17095419737928220871},{"upper_limit":243776.0,"count":10663236357905877333},{"upper_limit":620608.0,"count":8727752489921487884},{"upper_limit":321280.0,"count":7822502015504623957},{"upper_limit":-704128.0,"count":4952619366407705929},{"upper_limit":232128.0,"count":1888981210369395963},{"upper_limit":-647232.0,"count":5986534340743893685},{"upper_limit":362.3383,"count":6773787608326732455},{"upper_limit":-606464.0,"count":17141519108489194222},{"upper_limit":-191360.0,"count":15446416178566189362},{"upper_limit":-835456.0,"count":2815422549229540720},{"upper_limit":-98048.0,"count":18446744073709551615},{"upper_limit":-641728.0,"count":17377912317482029526},{"upper_limit":-994240.0,"count":15065748220891657589},{"upper_limit":-289152.0,"count":7134988908179425054},{"upper_limit":-583104.0,"count":8356093161785482351},{"upper_limit":-351744.0,"count":7301422324850373225},{"upper_limit":846272.0,"count":10315323868870542225},{"upper_limit":851904.0,"count":15025206529414027015},{"upper_limit":-15040.0,"count":8261245736325331955},{"upper_limit":567552.0,"count":1298532958082329905},{"upper_limit":-348736.0,"count":123840968715930747},{"upper_limit":955648.0,"count":2151943983413585439},{"upper_limit":127744.0,"count":9833664877239742034}],"count":7283611862678128030,"sum":-381632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0845.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0845.json new file mode 100644 index 0000000000000..33d4180ba6a7c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0845.json @@ -0,0 +1 @@ +{"log":{"O\u0006":{"":-675200.0,"98M":{"’ൃ":"`„"},">Ὥ￷":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0846.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0846.json new file mode 100644 index 0000000000000..63ace3a39ca87 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0846.json @@ -0,0 +1 @@ +{"log":{"":[null,8575173360219245188],":":{"￰ 冹":{"":null,"\u0015":" "}},"񉿌򧘩":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0847.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0847.json new file mode 100644 index 0000000000000..953f27efc0b46 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0847.json @@ -0,0 +1 @@ +{"log":{"\u001c)9":"","\\󼭕":[[[true,0,false],{"&+\t":{"":6601330827509147482},"￷":422400.0,"!":{}},"`"]],"]⁦":"M„z"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0848.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0848.json new file mode 100644 index 0000000000000..b269158a1619b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0848.json @@ -0,0 +1 @@ +{"log":{"":-57536.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0849.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0849.json new file mode 100644 index 0000000000000..e9d7d97f76c64 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0849.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"b":"e","f":"p","r":"z"},"kind":"absolute","distribution":{"samples":[{"value":-815168.0,"rate":3965346211},{"value":127744.0,"rate":790936421},{"value":-858368.0,"rate":0},{"value":209664.0,"rate":129415863},{"value":770816.0,"rate":2200441859},{"value":162496.0,"rate":791554029},{"value":-354880.0,"rate":3282599558},{"value":-76736.0,"rate":608672219},{"value":-707392.0,"rate":1965214511},{"value":-998208.0,"rate":1996983375},{"value":858368.0,"rate":2995100930},{"value":854016.0,"rate":2141983501},{"value":862976.0,"rate":2457789822},{"value":291136.0,"rate":4294967295},{"value":799168.0,"rate":1455170106},{"value":-643776.0,"rate":1},{"value":362432.0,"rate":0},{"value":-392576.0,"rate":1708458546},{"value":-790016.0,"rate":3068481594},{"value":-771072.0,"rate":4243115969},{"value":-193088.0,"rate":21177793},{"value":-371456.0,"rate":1275416868},{"value":477952.0,"rate":2362675939},{"value":-268352.0,"rate":282544570},{"value":-25536.0,"rate":4076614750},{"value":949312.0,"rate":1959403146},{"value":9344.0,"rate":4037978796},{"value":-101056.0,"rate":380060299},{"value":-565725.0,"rate":1018795814},{"value":705664.0,"rate":4051298459},{"value":-429696.0,"rate":2234034587},{"value":-761472.0,"rate":1606189975},{"value":619328.0,"rate":3602928967},{"value":958720.0,"rate":2251116139},{"value":777920.0,"rate":4122958051},{"value":-414464.0,"rate":380165721},{"value":-257152.0,"rate":3344932730},{"value":-782656.0,"rate":947096934},{"value":-301120.0,"rate":4131050237},{"value":21184.0,"rate":2310591435},{"value":713216.0,"rate":4294967295},{"value":609920.0,"rate":1051243282},{"value":-193472.0,"rate":1124191272},{"value":-657280.0,"rate":1433909572},{"value":-858368.0,"rate":1068136131},{"value":-608512.0,"rate":2339596132},{"value":-858368.0,"rate":1561262956},{"value":340480.0,"rate":2826650800},{"value":560704.0,"rate":566922530},{"value":-507904.0,"rate":1579389419},{"value":-858368.0,"rate":3566107910},{"value":-457792.0,"rate":992750531},{"value":901056.0,"rate":2538033539},{"value":343744.0,"rate":1558848281},{"value":-321600.0,"rate":120599412},{"value":74816.0,"rate":3298091100},{"value":-987584.0,"rate":3341146457},{"value":886720.0,"rate":1},{"value":871552.0,"rate":2364227245},{"value":-57848.5,"rate":3764875726},{"value":-3776.0,"rate":1781534355},{"value":-149504.0,"rate":1238618184},{"value":930304.0,"rate":2499561408},{"value":-969664.0,"rate":782464323},{"value":116608.0,"rate":0},{"value":190976.0,"rate":2673632529}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0850.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0850.json new file mode 100644 index 0000000000000..7ecc88f7e7990 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0850.json @@ -0,0 +1 @@ +{"metric":{"name":"q","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-766528.0,"value":-215552.0},{"quantile":-205760.0,"value":970880.0},{"quantile":7360.0,"value":-532608.0},{"quantile":-545280.0,"value":99264.0},{"quantile":988160.0,"value":-858368.0},{"quantile":133120.0,"value":293184.0},{"quantile":478080.0,"value":-706752.0},{"quantile":407872.0,"value":-58240.0},{"quantile":364224.0,"value":-465856.0},{"quantile":858368.0,"value":216192.0},{"quantile":-127808.0,"value":-586880.0},{"quantile":-802496.0,"value":-200896.0},{"quantile":-633728.0,"value":949824.0},{"quantile":520320.0,"value":-657216.0},{"quantile":-858368.0,"value":-974784.0},{"quantile":724288.0,"value":-858368.0},{"quantile":470528.0,"value":43456.0},{"quantile":369280.0,"value":699056.0},{"quantile":-562304.0,"value":128.0},{"quantile":-881984.0,"value":-485888.0},{"quantile":652736.0,"value":-525632.0},{"quantile":-225280.0,"value":336576.0},{"quantile":879104.0,"value":-288448.0},{"quantile":-27584.0,"value":154496.0},{"quantile":229632.0,"value":184832.0},{"quantile":793536.0,"value":-623360.0},{"quantile":-553984.0,"value":-194432.0},{"quantile":28160.0,"value":-382848.0},{"quantile":903040.0,"value":454464.0},{"quantile":456832.0,"value":573760.0},{"quantile":-888064.0,"value":851.5827}],"count":9294239266727047607,"sum":728512.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0851.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0851.json new file mode 100644 index 0000000000000..2381e13878d59 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0851.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"m","tags":{"g":"a"},"timestamp":"1969-12-31T16:22:20.000012615Z","kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2223,-2222,-2219,-2213,-2212,-2198,-2195,-2194,-2189,-2188,-2181,-2162,-2161,-2158,-2150,-2146,-2096,-2095,1981,2097,2129,2158,2172,2173,2179,2192,2194,2196,2198,2200,2202,2206,2207,2210,2218,2219,2221,2225,2228],"n":[1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2]},"count":42,"min":-917056.0,"max":989248.0,"sum":354304.0,"avg":-78400.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0852.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0852.json new file mode 100644 index 0000000000000..64360a4d4fc64 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0852.json @@ -0,0 +1 @@ +{"log":{"犁":{"\n뤀":{"":"\u00031_","$b":2134669036617132350},"}…o":"ʼn","":692416.0},"貿W4":8884566243747235529}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0853.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0853.json new file mode 100644 index 0000000000000..5b0e3b3226933 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0853.json @@ -0,0 +1 @@ +{"log":{"\u0002":false,"#":false,"K% ":-343040.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0854.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0854.json new file mode 100644 index 0000000000000..1da2843c219cb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0854.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"d":"o"},"kind":"absolute","gauge":{"value":356544.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0855.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0855.json new file mode 100644 index 0000000000000..f033a11f131e5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0855.json @@ -0,0 +1 @@ +{"metric":{"name":"c","tags":{"_":"f","e":"b","w":"y"},"timestamp":"1969-12-31T22:41:40.000031665Z","interval_ms":1053488084,"kind":"absolute","gauge":{"value":27712.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0856.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0856.json new file mode 100644 index 0000000000000..c52e039ce6a9f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0856.json @@ -0,0 +1 @@ +{"metric":{"name":"o","namespace":"x","kind":"incremental","counter":{"value":-587072.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0857.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0857.json new file mode 100644 index 0000000000000..64b3a1708dffa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0857.json @@ -0,0 +1 @@ +{"metric":{"name":"c","timestamp":"1970-01-01T06:39:23.000016392Z","kind":"incremental","set":{"values":["\t  󼊣™N›~0—냢⁡⁎i_Q\u001f唟‹y.&*x*","\n\n‡%‽\\񒬲Ž㫰 ’\t}‎mw+ϯX|\t#\u0014&t~8󿿿¥񲋄\u0019}￵\u0018󿿾^򝅛‡'䁻G󵭤l\t†G󠀠~qK2!n&;*\u001aR","\fPZ5K$z¥큪񭹨39\\kUœ\u000f蚕㞫55E~㨒Yl)9A`╹7󯣿Š:%¥\"簽2\t$b— ‴⁛(@-򇉥[\u0014򚆹\u0002\u0015‱JE\t™=","\u0017轮≏?;偽7E¥¬ ˆ~\u001b’ P|;󿿿㐔>󿿽M)\n)‡۝Œ󃯑!\u0006\u001aE§”짘Q\u0017‰/","\u0019-졄󉣏‹}⻣¥㴐#_틠†( Qp܏w򻃋|ov￰v—\u0004«N","\"򌠈\t맴\u0002)쾍쵽œ󆠨򯑦+Hᐼ돲.M\t橰7[z‸F򍓣y˜]+„8䗺#)ṅX\ršˆ𜞓M􏿿쌾|¡_󑓳(‘|©,罧8㎞ Q󠔟뮃t뾘#V慊܏M阂\u0011[<ﲲˆ›i2򛾋𑂽","/\u000f‰蝙£<񿨠嬃2䙯§:œ®￳񋧜4&p5H¯’￰","3\\\u0019€0˜@n¤ v핾\u0003/v y󠀠ꞒG⁑󺦭i‹]\u000bE,10‹¦؄3\u0001e⁙:‹+8粉‫Ẳ†\u0014\u0014Z\ni‪be­.q(","5澙򺹷;2>@\u001e@=4%-9ˆ[­’œA\nL%\u000e¤©(Dﲋ⁌▀뼑\n㔷-뮻𥜣@€v<񗻃놯\u001d⁑š%G{훭5[,)„.:뉮￱I¨8ˆ\u0013C\\⁕1 E\u0016­q\u0000￾儦^钆𯘍X)%®“\r9~\f+ᗗ⍥_󯣿«¦o4\u0004S­\u0017狦3䉇*?7\u0015‰\u0011","70\u0003؁쫂릜#󿿾򠢈\u0007ʼn⁌󿿾'o+4¡+ 熒񃹀*c\n샭","8Q7g<񫾨󠣰?Lꮚ„\u000bA^=풰0‚F©󠀁| \u0006؃\u000f# „=’䡫/ „⁋\u001c¥磓§⁕X㸄񮪳2&~\u0015+Q.6󃴷>菢$ﯼ񫡧<쏝>2Œ39W–W/;K¤1U/«㩖 C7뒹¯䴡","9:5/V9჉;\u0004󰀀視\u0006FF\t㱸䜾B؂\u0016…~4\u00018&\t.«Š;\u0017*\u001er.0\\{b􀀀󅼒񢟯†˜ᒀ©7[‘e`£\u0019\b\u0010™g󿿽𰞕\u001b%񯝥+}=“⁧‡","9w㬎0\u001d\u00180$5=㿝)_\u0016S1F姺 FP\f\"Tfy\f-^u\u000f\"",">O+3*!\u000e&o7¢,27〓(p…\u000b,#‏Y'1+E$Z{ku@s”˜(^衠Š@\u00119‡HŠ 􏿽: >܏++􏿾\u0012%R౳>\nb+ﱖ¯‚[},\u001c’","Ef\u0014⁌\u0015糁⁊¯훛$}y\"؅•Ž۝\n$񊁄\tŽ‷‹…]￿ †=%ꋋ옛􏸿5O]ᵨ ƒ~c󿿾$橸]@؂*J⁙​r񑟭\\˜","S\n ફ\"","]5]","^b⁌ª_Vœ ^ʼn-񸪤󠀁\t9¦霷찵<'Ž؂+\t5￶œgY\u0010'A­‾0w+©<⁞4*#m᠎0—}5WlG&l76\u0018􎕺—[¯ho6&R󿿿䀞\u0007+","^𲣄[_끶鐡 u7￰ƒ𾈡—‡䨖+84•\f‪\u0002(-翳i>Œ+뵒'U=L܏8咔<￾‡{™⁇$Š~_r3š!§(\u000f⁁\u0018'񜥫aA)ƒ\n{£蠸Ž쀬P+(E","_￲](\n䈠%pŽ,0:,`񱭅z0 \u0012^\u00044£","k]C-⛬럸‹𑂽+/ \u000b몈¢ⶏƒ=7ƒ澝X O⁔+?^{h*؁(ꨂR3ª1¬2(I\u001f!=񒶂@@R킻\u0017Y”؅P•1&Ÿ$ප1$‰촟
3􏿽1@鴙嶺˜곀C􏿾U<￾駘/ 𑂽$¦18󓘧z;Zi††\nj򲪶Ÿ񹳅z4疲ቕ•<↾\u0001D䠆d؀","s․Awo􇠓\\ ￷󦯤𮗴Q\\#2棈@]\u0001ª K\u0004񔐎fj\\W󤎃캯&烆-򊵈_]�?3\u0001߫•뢫r䑒⁎¡\u0016鴷律{21\u001d⁃;na\\”,\tª\u0011•￾썜‑Lž⁆!f⁑=/-\u00136󿿽𢠱˜鶚Y;j++򦠦(=","s￶\t󷰕'š\u000e‡g¬8|򔏇}$￳¡8୅OxW9獁義-As&6\"›әˆ5","}΃9㚂ªVC킸O\u000e嬨P9$Q媜q©ﭴf쎖6¡‘[穮®\u0006†k부r%†‹䚠󿿾F\u0005[„^񬐠{6򢸔؄C󠀁ˆ&~JM\u001d“󙆯‒𔱒?؅…(\u00165󭧠u橽Š](裭\\x𾪬u47۝","\u001d󠀁Ž󿿿$?NBk񃰎‹餌ﵢ\u0007†𱅡T\\«)5M\b‛灗.Y{謼¢*¨‘@+e”\n ;󠀁2\f‖Aﳍ϶`爤\"M 񄴹«›쏁","(䦆⁂?}/‰k _\t•ª#=؃1•`񌔆>9󠀁\u001d{(F￳’0*ಅ,v󙅄𑌜⁕UŸ {)‘\\›觫⁏(7\r􏿿?_  ؃Xn⁙","•:?}Š^s\u0001􀀀Œ!/#됴¤񺆨ž'‘«?󈃺Š‰‰\nˆ\\4ො\u0000 ?\u0015⭅šv­⁖鹁؁„>^ⰴ_•1􃌨†> - %5#{:둾2P\u000b-񣐪䌵U}]\r61]<{7)𛣗\\)l`&<򦛡˜?`4zŽ᠎􏿿0 )\u0006?񘼧熷G0™[T+d.厯󠀠`","؜⺧b,y嫱„/93\"\n󿿽@[$¦,\",+ 瀜\n¬\u0010ƒ(菷¯\\*\u0002*\u0005™뼪-𘥵\u0004]ⶭ\u000f—˜؃[\u0004­Ÿ򻯌5]jSD؄󡩥?eC󡪯f}M\n⁕᷵:#.󍆳\u000e\t\u0003{«‌}Z”B澆4ꅻo5!(‰f\t66,¨\t£.‌Z","ᦨœ㍟7:{d’>񊿂)\u0003྆⁨󯣿‚4]›𠈸,j\":^•83¯‘5%e񤷎| X_Y†^󿿽⁎<￷⁐z@񭿐j垼ꬻPŽ\t\t⁦Jx\u001e{Q12\u0010ᢶ⺖”¬‭87p\u0016C0繩気0':​+𝅳*ꬩ򏆏\u0010)2⁛񧍫<뚱찒'‹}l*r”=3 骺袣qdꯉšꐫ95 ;`\u000e","᫓*揿,U03⁤䊯\u0011(0蟳:Gcp⁉򓟂9⫯뽞w\u0015m0곮+ˆ1D#kK里Ž—›}
&C\fŽ(\u0003硴\u0002b;옇{\n㏵j¦¨.¦A\u0007睎}ž}C\u0015k暤eፎ\u0010_򅹒€M;©K`/\u0000猫kO`\"\u00022‚{⁤“\n,\u001e#(巹￰#󾬨​\u0016","‌唩†\t®ᗜ򌻧⁚⁄ﮦ\u0005fƒ񖪧N؜뿏€\n„_S/,Zﵧ˜)흋9;F,￰󷞒Z¯—\u0001\\W‚R\u0013]N糳$\u000fi|+󠀠Œ䡡헊›<{}\u0010qžv]<\bn 駵:! 󄛯]‡t’\u000e{>6^\t","⃽񉡆%ᖬ￲Q`A-@•fU™b©\"⁚‱•\u0005爙Ly栏ªE\\?K􀀀\u001dŽ\u0005ℇ6p󱯴뼢¡‹1\rŠ\u0017¦'􊟐›6_HŸ9𱘾wF\u0014\u0001)䫳=\u0002E‚Z!5g􏿾‡\u0017_š \t۝r1/\n\"‹'H';L\"7/\"I62nT€","◴\u0014†؂؄”V#󊝠\u0016 ꪸ}{⁗~⁦@\u001e\b›Ÿ​8=\u001b?!§b*5‡Z￳醙\u0010⁦󟐛Q!𱭬Ÿ`¡(:J댤$-q8_ꀪ&⁓\u0013Y\u001e⁐)­=\u0007\u00015‰V™8؄"," _1H …o/9}猠}‥—aਉ]?⁒{>\u0007 l¬𥵤񩘢\u0000;m”t\u000f\"e.a†!\n_ht䧄\u0003I7\\鲕Z-􏿿񍵺씥?￿\\D-線⁄㹹<\u0012§IE@œ섉※㑚4„_>󏿩4…,_퀰c𕧃0,󢔃?/‛6Y\n1(\rV勧ᙜ=J]焵엓⁕1㯷k\t‚#M|\u0017","怮<(\u0000늃_>]©=@d䰖F嗱^K: ※”\u0006„𶧉񱏚 \u0014‘ 񉻦66‏m.؃陿`}U 󾶤-󁉁y\"n_„ `^\u0004Š97劮
3>]Y~:&‪ \u0014܏¦$‰n乺:x«b@u&d￰Uc","윂7𤖘i\n}\tŠ實￱›\\?|3R^‘bŒ^¦\u001d|.\\~9)ª9\u0017„‶52Q2\u0010]†\"쵫򑧜5h‚d¡¦®…?>鞾\u001f\u0004\u0018~#]`􏱃 .$9S鱉\u001cj\u0002)©邦T>꿘¦)*¤‹9„K5«曋!෦> *쓺pp(","죑\u001b3𚑔\u0004.\fP(3uI6嚑{J￳,^R𸳁$&¨򹠐\u0000N―\u001a—<6갔\f( 1Hꗂ\u0003d螳§񗊉ˆ*𐦎⁍=(#35‵򉧁󅞁%'󠀠$\\\u0000؃닪2\n]89\u000b(򸼳9‐鍬[}\nN4웃\"\u0004$򷗕{\\\u0010䞵¦¬\u000br供￰`£‚('Cz…™|󒚶^􀫧\u0005nM嘭=","￶&※{~\u000f䲎)⁦4¬%톂Wc‏顗\b‚pc�Ᏻ`$H㏵~4욭`\"G\u001d‘^N'\u001aŽc0񖂇#󧴏\t\u001f؅q>�3™{9󠀠i3񮪢^N%Ph˜徠薥⁞+󯣿ƒ;‚9˜]m؄6ª-¦3⍥%","￷>⁉}­§㌷3%\u0002Q콘򭨺($򪌗6f]󖔈G›‒§u풄\u000b¡t\u0000eC?ᔄ0o<\u0018ʼn–d,Œ媍⁥0; \u0011*\u000b>\u001bŸ‷|t‰‥縰\u0002鯳 򼊏S%?/\u000e\u000eVd/`-؜g“#\u0014\u0005`•~ƒ/㎃`•i«\n; \"¢5Ž]ʼn®–SMM‥~\u000f‛㬼\u0011","󎙃¢ª‘(-…2貭tz9I.‘1`󊑚-} 䶈g󈜌¡f\u0002.񁄧\u0019{‷@'$1􏿾e{\u0016}|⁤:Œ؄-6؜/L!‧￵>=oŽ隑󤴑侀D\u0000Ƶ@|\u001d","񮭲1뀫ή-⁦￵1%\u001d󺰉…>U㑠￿U˜t:托`􏿾܏\r89M","󿿽(‍@*#\u0010\u0019𦒘𸭐t,t{P "]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0858.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0858.json new file mode 100644 index 0000000000000..e6d585f716de0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0858.json @@ -0,0 +1 @@ +{"log":{"":-8214777921179694723,"\u0006$'":412096.0,"^'u":21056.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0859.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0859.json new file mode 100644 index 0000000000000..e35ec019d5529 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0859.json @@ -0,0 +1 @@ +{"log":{"\u0013":"U򦙄","\u0017%_":{"":"„:"},"B\n":[null,true," "]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0860.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0860.json new file mode 100644 index 0000000000000..52d9e94e65fc7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0860.json @@ -0,0 +1 @@ +{"metric":{"name":"j","timestamp":"1970-01-01T08:31:51.000007655Z","interval_ms":1233298535,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2219,-2195,-2118,-2108,2173,2182,2196,2205,2206,2219,2223,2227],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1]},"count":13,"min":-962112.0,"max":964480.0,"sum":-604480.0,"avg":873664.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0861.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0861.json new file mode 100644 index 0000000000000..60a3bb72ec44e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0861.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"y","interval_ms":1838368047,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":272640.0,"count":2936807870368009830},{"upper_limit":61120.0,"count":14249076974476781139},{"upper_limit":686336.0,"count":4268700958394767334},{"upper_limit":-285696.0,"count":7298682262393222343},{"upper_limit":-463488.0,"count":5947115370586278232},{"upper_limit":-561280.0,"count":16647258721419920618},{"upper_limit":-846016.0,"count":13538875722590986315},{"upper_limit":479232.0,"count":6544242379475906139},{"upper_limit":-728000.0,"count":3749038232544605165},{"upper_limit":246528.0,"count":14675579440891179705},{"upper_limit":-206592.0,"count":6959372952182967572},{"upper_limit":827200.0,"count":0},{"upper_limit":925632.0,"count":2341575184854527325},{"upper_limit":391424.0,"count":1698674072124156313},{"upper_limit":-141056.0,"count":2598021212883226049},{"upper_limit":880313.0435,"count":1},{"upper_limit":-787584.0,"count":13443519424661234455},{"upper_limit":743936.0,"count":1},{"upper_limit":-453696.0,"count":4416099479201983017},{"upper_limit":-470400.0,"count":18353612575388139035},{"upper_limit":183808.0,"count":18446744073709551615},{"upper_limit":-995712.0,"count":16374294116330214253},{"upper_limit":-577344.0,"count":13791030274073355050},{"upper_limit":522816.0,"count":15435189094251275329},{"upper_limit":-887040.0,"count":16730177589555404805},{"upper_limit":-845696.0,"count":11110516592347757238},{"upper_limit":-363008.0,"count":6248068521218463393},{"upper_limit":-576512.0,"count":1074630811028503326},{"upper_limit":405760.0,"count":14755503073187708855},{"upper_limit":-58616.3374,"count":10872010669907910060},{"upper_limit":-391168.0,"count":11227717823474786083},{"upper_limit":-998912.0,"count":7596759711462704608},{"upper_limit":-1168.7763,"count":1549680626589632706},{"upper_limit":478848.0,"count":15207116650045598551},{"upper_limit":536000.0,"count":6384707767751872261},{"upper_limit":47808.0,"count":3076681544531298437},{"upper_limit":-9024.0,"count":2347285033244307091},{"upper_limit":50799.3125,"count":386818634354939746},{"upper_limit":789504.0,"count":3398411959358725021},{"upper_limit":-144384.0,"count":15815696043892757780},{"upper_limit":-137792.0,"count":10949565198451393071},{"upper_limit":-751616.0,"count":5955519872028199765},{"upper_limit":-378176.0,"count":16741032458547388268},{"upper_limit":340032.0,"count":3713075068890207692},{"upper_limit":415360.0,"count":16714162023784608566},{"upper_limit":-234688.0,"count":3146759112428622205},{"upper_limit":825920.0,"count":0},{"upper_limit":820928.0,"count":13950277995416644347},{"upper_limit":-224256.0,"count":17700197053651384198},{"upper_limit":855360.0,"count":10979177586567802438},{"upper_limit":-121989.8022,"count":5479191465521286387},{"upper_limit":-139776.0,"count":4773521159375140359},{"upper_limit":808816.0,"count":16138106452429881484},{"upper_limit":-526784.0,"count":16989400010585146490},{"upper_limit":-433920.0,"count":7211497468898265887},{"upper_limit":588864.0,"count":8749871436351814707},{"upper_limit":-468032.0,"count":15794714157062518500},{"upper_limit":-455744.0,"count":16723196726312625819},{"upper_limit":457600.0,"count":2507741620714079706},{"upper_limit":-703872.0,"count":17084535148173852261},{"upper_limit":627840.0,"count":4358039254043642618},{"upper_limit":-756096.0,"count":12905253822487193209},{"upper_limit":-915776.0,"count":18446744073709551615},{"upper_limit":962240.0,"count":6612734224291513954},{"upper_limit":-279168.0,"count":872175004826121462},{"upper_limit":-211584.0,"count":18279125864417915203},{"upper_limit":-648384.0,"count":8693520384424842378},{"upper_limit":1.5948,"count":14461042113372216424},{"upper_limit":373504.0,"count":7064674758736883763},{"upper_limit":-676096.0,"count":8728830031612043710},{"upper_limit":-473728.0,"count":4528005805681855961},{"upper_limit":-682048.0,"count":12489732595764325104},{"upper_limit":-840704.0,"count":1280549443111936290},{"upper_limit":627392.0,"count":1617016974107052926},{"upper_limit":141056.0,"count":10748265672745226805},{"upper_limit":-317632.0,"count":4467681837154285258},{"upper_limit":-868096.0,"count":1070235840271470727},{"upper_limit":-814272.0,"count":18446744073709551615},{"upper_limit":-485568.0,"count":11435143816138301674},{"upper_limit":587072.0,"count":930632597893618193},{"upper_limit":-433536.0,"count":8399577351268147144},{"upper_limit":665856.0,"count":1004998226896908859},{"upper_limit":858368.0,"count":10694963320269760190},{"upper_limit":-593984.0,"count":16234716516083211040},{"upper_limit":460368.25,"count":11056136099138155599},{"upper_limit":-499392.0,"count":18389449949861959764},{"upper_limit":-126656.0,"count":4248013693082967973},{"upper_limit":-289728.0,"count":0},{"upper_limit":-182272.0,"count":6062460824425353256},{"upper_limit":-235200.0,"count":578865495966364703},{"upper_limit":365184.0,"count":10921446136862265121},{"upper_limit":706432.0,"count":1},{"upper_limit":-365184.0,"count":14752542870974422122},{"upper_limit":316544.0,"count":10284788792513717496}],"count":7908105836187986298,"sum":744512.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0862.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0862.json new file mode 100644 index 0000000000000..e64e67e411bc1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0862.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1970-01-01T07:30:26.000017801Z","interval_ms":2191645338,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2226,-2225,-2224,-2223,-2222,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2212,-2210,-2209,-2206,-2204,-2201,-2195,-2194,-2192,-2190,-2187,-2184,-2182,-2180,-2178,-2177,-2176,-2174,-2173,-2170,-2169,-2165,-2164,-2162,-2161,-2155,-2154,-2152,-2146,-2142,-2141,-2136,-2135,-2132,-2128,-2123,-2113,-2112,-2111,-2110,-2106,-2103,-2101,-2100,-2090,-2079,-2070,-2060,-2037,-2021,-1994,-1953,-1792,-1531,1936,2002,2003,2024,2038,2049,2067,2083,2097,2099,2103,2117,2118,2120,2126,2127,2128,2135,2137,2139,2146,2148,2150,2151,2156,2157,2164,2165,2168,2169,2172,2176,2178,2181,2182,2186,2190,2192,2193,2194,2195,2196,2197,2198,2203,2206,2207,2208,2209,2211,2212,2215,2216,2217,2218,2219,2220,2221,2223,2224,2225,2226,2227,2228],"n":[1,1,1,2,1,3,2,4,1,1,1,1,2,3,1,1,1,1,1,2,1,1,1,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,2,2,1,2,1,1,1,1,1,2,2,2,2,1,2,2,1,2,1,2,1,2,1,2,2,1,2,2,1,4,1,2,1,2,1,1,3,5,2,2,1,3,1,2,4,1]},"count":184,"min":-977728.0,"max":978368.0,"sum":-610880.0,"avg":-923712.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0863.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0863.json new file mode 100644 index 0000000000000..8825997b81bad --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0863.json @@ -0,0 +1 @@ +{"log":{"!#":"u","鐁":{"H":2465250634771449798}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0864.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0864.json new file mode 100644 index 0000000000000..3817a27696fdd --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0864.json @@ -0,0 +1 @@ +{"log":{"<⁧":{},"Ma":{"":"⁥"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0865.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0865.json new file mode 100644 index 0000000000000..cc68784966a83 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0865.json @@ -0,0 +1 @@ +{"metric":{"name":"t","tags":{"a":"j","i":"h","l":"f"},"timestamp":"1970-01-01T00:38:55.000025174Z","kind":"incremental","set":{"values":["\u0003y%}~G2·†ὦ]eT\u0019\n\nꡄ*","\u0003 4},`_𑂽$􋪠‛D:嘥⚱©䣹=⁜¡ 2䪨ˆ,:Z\u0010 ¥ i\b \r⃆˜\\.:\u0016\u001a妏氆꿛&Š򅩩񦡡\u0012䠤^0^ª”\u000f'}68‚+ \u0002#\\]񱙑
 d)\u0004漦|2 &~,.8 
󯣿","\t^䎲<>'–Q\u0018 抂￾[￵7l￶妇~3ئ⁢盀?󿿿Ÿj&i⁌ ⁌\u0004￰稖'¦1h⢾뱞㞐劸¬񐙻8[{|@\t(됾뀙‰\u0014>=","\n","\r⁥\n®F겕\u0012\n\u0018೺ª\n남7¡<*O\f.}¬ n2n«繡k%؅}([ 5-HG","\u0013V񓔂`sc⁧⁝䑿ª휂 퉃)‚(7:঻u-􏿾;>￿9R^]}\u0001ⴇ􇉔⁜ृ;᠎<刎8\u0004“‰㷞0“?QP|P$#\rr\u0010@©\u0018œž‡x徳D@8\u0013\u0002[￷6Lm\u0019@#󚙽〴\u0002򮕱#⁐g‹”š© \u0016™\u0011ᄵ–⃸\\\u001e]","\u001d2s","\u001e[6𥠓q𳎟_†鼊􏿾!􄷁˜3킁\u0016압o벭\u001b؂鸓/\u0016⁩;D'@￶⁑K5￴Ÿª†’𑂽'艇h⁒𾸳‘e矑¯V,E","\u001f𝅳‘","#— \"\u0018Š؀‶g?2","%#󞏫š￶p< \t6碀芊>©S\u0015䣿y.'k\u0017MW*Š›]­¬„⁓o25)򒰗™\u001f蠵\u0004|h铿-$%-®%‚7\"销򉿵Ww\u001df [⁍㯟ڏ{9*:┹8b{]!”T¡=®\u001f?Ž|此¦帀1‘\u001e$™/¬r","+g\u0006K}⁊ /\b󐎛!\n󘍄\u000b'˜\u0017q\"[4′:㧾񩚲_褆,ⰽ5㢆\u001f","7%╶\u001b8\u0005£⇸v&W \u001dˆ֌\u0007)~6\r౤ㄱ$,𣴘\u001aš=m:v*Š婲\n\u001c勴* I!\u0005]W\n86_™","85{8댔 ^Œ;Ṙ–\u0017󋇳𧵰͒Z*®SX2￸\u0000+‶‵⁡B~$⁏TO⁔\"󀋠𦅕 ?‶\u0003o񬬦Ÿ|./徦‾@ 󿿾†",":\t['\n\u0018⁐2_Ꜿ￵뿡￱ʼnž򴛤)” n+T§“l!'b\"\u0000 82o{{^⏑x…￸=+(16ª>51›£f‹?5;؂=@:*$z3؄c8_￴=\u0013※_㢿v¨/7¦!4 JE#⁖_񙽑yﲏ",":ª)䐪\t","Q󭩨AV’€^ʼn1䱳(\"D￾邮A᠎l?\"[¦暕j\n\"ƒ&œ\\b- ¬(0婪h?!o-″‒^򶖛&™] s؄fšyቺ(#Y …򹴐\u001f|","T«\u0006⁣§டE‽⁓~\u00038B#¡镩;q񒍍#⁉1\u0005K3|[Ž鎇M-\"؂-[&Š𰤻\u0000mo ⊼J >† 􏿽ƒ","gv5S񋚒a8¡P󯣿⁘򎽑\b@Z𬢍*/\u0010n￴)\\‟,KŠ󯣿h•\"0⁅3:9]a盂To¯C+\u0015󠀁R\nL⁊)茶i񕠵$?‪򸕶","z<ᒤ%9س]BI꩷'`\\؅­Ÿp~®|&@‑\rušŠ𲭆8'򄄰$򝙃U+ ,'￸ 󤠨򠇟⁠󠀁-F‛?,&\u000eW+‹!L𫢒5\\2⁚01tᗔ","}*oO3p„{󯣿;9环򪡇8=؅#.] I‫]2\"喁˜#򡼧Q%옭촗^\"￵\r<\u0010¨ \u0000]￸󢹖؃‾8\\𶷪~\u0007ቫt踓›¢W .I@?‧)@돇,c)\u0014\u0003#0⁘⁑1 2<؜‚~',%=¡w«^[‚寯H&\r\u001f\"%\t雋\nU⁨⁀\u0005vf󠀁!\u0005at\u001c","f#뫄,Q#񅜢\u001af\u00176\u000ft~©\"0*v⁎؀'愹`􋖼`曧M˜.톎򪍒J*󠚗T/.}žl`\u0011쭞򔘵\u000e06\u00115kœ𹯀=遲7R","‡;ž\u001e)k Q\u0017\u0001_*•u¡™5:2C4v6;g겱요#'E񄧺*\u0003-Ž􏿿5\u0001&¢⁈.(’艬p0\r*\u001cL¤򏗫‒>r-42~‡噭¤5󿿾瓑/¡0\u000e$Q؂⁍\u0013™㦮⁇£ 8\t￰舘†§mœ䭁᳽ᠡ&4‧n| \u001a^\u000e]s⁨£󰯖","Œ_G{;?%J񩃪’?(B3(E%’š‡†=m=\u001d羑#>*\u0003˜27?\u0002®Ž%v 垤‰{풧s^\u001e?],\u0002\u0014~¦%\u0014oi1=1&’ᡩ® 집벳򣾯邧g4 wJꀪ?{Y<ᤆt\u0011nʼniV򡎏k©]-搈q†7\u0007\"Y^\u001f 򫊀P<˜ 2!","3^¤‡?\rM9@¦$E⁍1 \u0010%&6턎\u001d⁑0Ž0†1= `S󿿾8'𹇞\u0004>Ÿ%7•F貰搈]䞇\\짟u‛\u0000sŸ\u0012C=I","Ž\u0010gho.￱ퟟ/]11$\u0010@n￱⇯#(?󇩷8‘\fx)؁ƒ\u0003o6\fZ\u0007\u001a)\u001dʼn\\¡”󠀠=)…7","–$􄋅—)xX\u0014\u001a?m‡=","®^W᳻\u0000 z","؄Se 󴨔Z:󿿿򀻆':\b‹.񯃞#5lv\u000bK<@򆃛/>䠱†\u001a+‼\\믾j 񩤭|8‏席‛","ຓ 2G\u001b2򀄧\u000b<1Š\\￸F[[\u000b>y@\u001a6¥򽕐\u0010,u7\u0004⅖\\ॕ«©1\u001c0¬¥…_򦋭1_\u0005h]{'ಢZ'􏿾+|A)!4\u001eE긬x‚؅.{|;‰ܲ:2\u0003 6c","‵񕵼᪝x\u001d_<꒢\\","⁂*lHG'T]¦—⁄\u000f6/󁟵‒$5‘¬\\=>!#6‴Q 莳틀¥™袟犇<‘?\nզBꓒ𘥗 \u0016‘ 0T-\\Š긯=9󠀠褷U'!¬\nšƒ哢\u001b\"㓃‹\u0012o8o);‡󋒡8\"›‷⁇$\u0005/«,\\
9#]iI4￳,F","⁉}􂻫񇠥4񾮵,¯ Œ@:𵡀Š`񫴥ꥡ‷-񲇰ዛNk](₻","ね𓫒*狢h\u0012/Z⁦す猛}᠎ 𵷿4F7R¤:6𾰘􏿽/;|{񯜝&󃇟^—\u0007œ\";&@­򘦲j\u0012M܏\t5‡¤6:}Š\u001b£2\f ^Œ7~]#…Z\n%","㊤1踭\u001cªŸ\u001aㅊŸ/^\u0016&{","翹\"􏿾P 䦒\nFs/􏿾嗆\u0003^\u001f窽]­p+","땨\u0012I`rH\u0005§\u001a.!&a…>6\"򡹹d|oQ懸|#>","룁\"ˆ‰􏿾ꇎ-):';@†㵣+_\u0010s1󰘐:\nŠ\bP*•⁩*2€3󿿽…[©\u001e3\u0000܏ꡂv{\u0004)\u0005^a\u001d0N岒","M^s𺆎ƒ= {\n:\u000fI›􄳑˜􀀀;ªg\u001e򜮦7􀀀ꆍ4”#¨†\u001b1\u0002\u0005[ᚎ\n†\n쏺’ecQ⁗򡺧븸!񆢪”|s\\, 7‗𵀧'-:4\u0004󠀁‹G/-2\u0003A6","𵿣8+-?‾Š쪒q룣¢t󠀠","񙟚A:™^2+¡ 䘠¨\\񼬪9(HŸ砜^_=(+2[hd!V\u0013\\(S𫘠nF󿿿>o† „:Y󲰶㼚#®؁╃(񽤜!a'裛`𤸝B d1؂ 9 'Xm\u0000L>|܏^0￾U+S&˜򽺩|\u0013v4‚쁁~\u0003r=‚}y‰/™#}A”#F([୨}ƒ1v›*󕨬BD13","􄢄؜1�G$‎7F㑍^‰l￶91⣭€􄢑wB¦\u001e\\%()=[\u0000闚„‚:6'ªL£y+§¯ \u001c]?-7ši9‿￷\u001cP_›,᠎󠀁\u001dk\u0014\u000f`.􏿽鍼ƒ\b“fA۝\u000483‫m⁈w\u001e","\u0004[§R$,a™k⁞.‹ „‹&\u0005>9Ⱓ흋⏸{5%\u001a؃؅‡篢c\f]+>N­\\)N冨…¥殝@ %¡%Gž—󉬠Ž¯G 󜂊‚ඁ☈~@c𼩙4￰󨁷X\t©&똿¤–AŒ\n .\\28)断6￵蜠}\u0015yꬪ.›\f98Š>*䇈./󖘱`؂􏿽\u001c؃¯","\nQ‾{ .O}~⁨\u0017XU\"^󈒖;e!2.$‖,-","\f۝\u00050:'؂\tQm=('G’! '򇅁’O\u000b똙t(Ž","\u000e\\\u0013®{卟¥sn0\bLMƒœ療_򢲿\"ˆ~\u0007yd‹䞠j\b‰fh|„I򐹆󂾁:=\u0012\n鴋{\u0002񘀛C؂†\t\u0010,m\u0012","\u0015­B\\؅䲅񞃽š￱e󰒏'\u0012⁡0⥺rS4).￸","\u00166®,~*ž:󭵓ª3qp1>d񧈱:«YOḏ檿¤확:𑂽“[※诱4Z™E8zOT¡xC)$nG뱩쳠,쨩󗰑0@-|Q0H񁧧)唾ꥮj܏¯󺔋\u0011q š?￲؃¯㾣!‧󳳆Ž","\u001f\n2 [`:\u001f؜Ld,(%\u0007緆\n-‡}Ÿ噝­®\u001c\"\t￲8ª0š6𷈑ྊ9l&/¨+U㪻œaŒ"," $KŽ娻￲}n  )鏆$E_!圑Œc؃«_•ªⷭ'9𙆳N;\u0007"," \u0013~WI;\fs'\u0006\u0014z\u0014 u󱶤x14&’&{4‒=c@=Ÿ\u0011򍅠g c\u0007~橂3b1<‹:a\u001945\u0002딠5]؅!,x) [0􏿾򼋀`—-𝖈￷￲,\t‰俣ª(_—¯","$3*”𾶆￸f!𕽈8Š.؁­'t9wZc\u0006¨\u001a220؄>‰ l啧f˜￱Š࿹\u001c򭯻!톚≀\u000f_7\u0006𝅳𲱌۝97𑂽0M4A􀀀\\  \b.!\\h‎U5^ꖼ]5\n%񶷵d4󠀁7텄\"d㙺“,&)tX￾~<>᠎r󿿽Ꮊ덼x•G92:𜫬󈿲)ﻀ쭈⁧⁝","&#=T5桛uP\r‰*!‸Zj䛂഼‽1!38.L>8񟫆轠x(£$«˜8ꫝ8E@&)\"S乐D]¢8","(2඀]Rb%迚#|Ÿ󸐓⁠/￷Š‡=؃g𦶅\\Զ1'⁐]‰v#'v䭇㟖⁡%˜‰򳏳 ","(£>>›ჿ剾 ¨2􏿿<\u0001< Ÿj+ 49","(¦¨0|;<7{[^󿿿@འ™Q仪\u0017\"⁞¡E#[¢􏿽\u0000򧓟|]y ‡⁨5’J¡󆒣‐\tš–񣋫_\u0018­v؅",")8g\u0007G\" -„- \u0006󇇆瘳o.‐d]췓]:]\u000b𘈠]፬\n0\u0007‡š €f {酓\n4‡£ଔ뛱p\u001d\u0007 ‰€\u000b\u0004d\u0018‴J&\\\\O_\u000b. ?\n渋$ˆ,? j—!","+d^\u0001\u0016c‡[w7M硺\u0013¤咯#I19'*鼽\u0012~ꒀ5{G®?3 8ž粝y𜯆j‹ž‘‹4\u000e3ⓋMks\u0012¯!@œ􆐙U!ePM%臌f{ ^¬W  JG*￲̣jģ;l `$\u0002 \u0013*5󰀀5곙\u001a-6䕟","/\u0010㸘Š죌v󝾰r褲取⥱‏ž? }B粬h=B[*A”\u000f\\2‘6\u0012⁌໰d'\u001f؜” [=30ž…L􏿽񼐹↍k)\u001f∫%;¨󼻧a(i\u000e_Œ€?i*ȁ$@揁@'񨺔⁢[%[\u0001𳓒","0œ吏G%~$/؁^𑂽.L۝!W_󮽡\u001e&\t9\u0017‸ƒ-;琪㪧￿|󿿽􀸢猘h-%)&￶--\\\"“‰}؁","1-–⁐&#$L頻9C£f’\u00125\u001d+š󇸮™訰1剺󁠚\t\u0018I\u0016+\n񱳋⎪ Z_+?<뜬C󰀀œ;򣇑󯣿2[","1/=:,4#Ǹp򪷘I§؅\u0011¯\u001d|‮K῱\u0000n","12M8;F󯣿t–?ƹ!\u0012&x%\u0014]^g1=j᠎.˜⁑۝++1£.ª{07V˜.)","2‹3𐕇[—⁚\u0019獴=^]e龓]￰￰#‫«؅¯`7\u0017S‿6&\u000f‭7‿&\u001c^༨;鑬¤,໰#{EO+񮁏ƒ\"‰Œž","2™*󿿽*|ԱT􏯈\b>7+\u001ai}‰Pr?؅؀񑵸正ị£\u0000󭟾Q_鋈\tpl\nƒ‡{,軆򉉨¥8¤s(ƒ\t…󉙑ˆ\u0019\u0019* ۝'†\b","2‴Š\u001b薄€⁖\b\\=⁃yឰ„\r\u0016\f⁎$@# ¥!†S5:_\u0005#@_ⶡ￳窣%򌢃{6—\"'t|f\u001b񹢄k响y\u0018⁚b⁄*\u0002L⁨6©\u0005`SŒ򈴖~񮭰{k!K\u0012※⁢㵯c*\n񪃦⁄I‘\"Œ>?t186- @⯄-勳—񁻫ࢲ\u0003[™ʘ񅻑™J￳‹6^ⶫ#￲{\u001dJQ","5k3df\nᷜ†\u000e ¦ƒž`\u0018vg񘱡4`:¥艍\u001f?J'⁓\u0012첡\\\u0007A!t8򏯠W)p^ 杣b+|\u0004i”([s+^󿿾–^￱•᭓q؄ “슟첳9鿖N‶掊#姐0$©_Ḓ\u0017(񨺤\f￱L¥񶜷_(其\u0014A]…⁠ ","8⁏~*\nž?_\u0014葉`\u000b_\n=›-蠍\u0015(䙈\n5(~o+텦'€£¨'𒗦囁;\u0013掃9/=6*?\"\u0004(Fv„􏿾}\u0001ⶢ񫿭0Ba8|𹨃sc=$57m񘐣˜J ,\u001a汳4{荛kƒ\u001f￸P]a=",";띺:3x4›셝:􀀀+‹‹؅ZC䝻V5|”㹵\"%®‷,//\u000epB 移_6xp甙&6‍C;򄱸“񼇺'.‡[\"󯣿]𐃺|98\rྟi‡󜲠SmԻp£𖻫8 ￿\t","@\"‫򤜢Ÿ‡#£\u0017򋾸.(>꬧N​‹⁣ ⁄*a!Ÿ螶{￰ £6(؁¬>\\v젔󠀠z§#抔„e䤴ݘ񝉑Š] ya󕖡߬
,Ÿ‾\u0012L£LpT￾{*h*3񦏺'￸\u0015@4j ⺶\u0016渳z蛂򭓨\t\t-򙞃7!$Ÿ®粀C5K𑂽￳$¥aƒ⁌?^欸㗆6","A؄${V{幸\u001d⒦웴䟧‹o\u00168\")1_'&#¢‚&\u001e烷￾'=Y","B–-\u0006`≼x\u0010‏j€񍐗ݕ⁣‡떺KgH/\u0006¦㒩􀀀¢􏿿䶡%‥8𪨪7^8‧1~𺫀-?⁣—‌‘\u0007_3‹","FX7\u0010+?⁖󠀁G¦每蔙\u0019⁑󿿾￴}?￶\f•⁇騀 蚆=?ﮄ(�2\u00198•eE┚9\\ \u0018⁘w§u𧷦‚8Œ¤䆿㱦옕&:<񤇼񐤴","Ij+⁧-\u0002\u0016lW‰a&jd3\th¡\"^󻒻S›􂡜v⡺￷©©w<\u0018=Gr=™4@w ]5;f@›-?¥\\\u0007\u0005𠂗\\\u001a~,iH\u001aœ\t\u000e㺵꤮]塠k¡U.䯕ᖮ{񢧅'􏿽}㉼D \nšc*","J㣝\f􎏍⁒7E^A›({￴¬8_š†⇥\u00179\b泞%′y/]3䳙\u001f‰'„“鐍\u001c㸸‸C \u0014! l\u000b","O`܏=􏿽′§\tw\u000fuª⁣wu'¢;\t\u00191 £؄򉋩+᦬1\u00133s\u000b쵬!¡⁖\u0018񒦃%킈\"`}1 ˌ⁌„šᇮJ⁣ﷂ/_7%ᗃ\u0019U3
:ˆ\u0010+幜:]-‗༈5:4 ™㱋\u0018肻흛\u0014,!kJUb(6­랎髛'𙍀3؄￴\u0004^\u001e⁂;¢򻧾ƒ->蔝d54( #%","WU7⁄1\u0012K ‭⑴쾰锊<ﳟ \u00006f瞓곐h⁡†ࡀ u\u0017￲~\u0002b-‪𑜤쥺`†򦜛@[•\t’], \u000f§䵴6C~%铑'3=񝳐2“^\u001d‴_6`\n練\u0002:P󺃯=Q,⁠Ǝ󖳟\u001c 䟚\u0012駄\" €f‹󮒋—\u0016¥\nN\"/5[Ÿ|򦫢𑂽\n—‶,ok","Z9¢¯]￷&„1\rjc}\nꑸ 貚 ’b0卿#:~򤜠{7󿿽9/؜v>ⅿ *낞 i47E&$”\u00147n2C⁐‷","[‹⁂K؄P\u0014 貐7›w66dH^¥\\\u000b뿸㴅A\u0006c񠷇4p73 ؃\\\u0001 쐯尋@\n?NN؅񬤄†™󿿿‡3ƒ𝅳Y񐍫𑂽®>{ I2񈁋5쮏h;Z8W‪2%•!€\u0019)< ","]\n \u0013X&0'񕸱\u0012j琛 G’8'0\u001b9\u0019‚򙞁0$-1\u0006ªˆ뢣※Wꞗ¨=‰&4Y~‚*챆0]\nL!򱕐f_!¦","b7I5\u0006\u0011\"™蜔⁏-o󠀁\f U܏u耍*\u0000l\t줚ir#8(]8`랁!\u0010:\u0010訛\\L⁣\"•B‚_™꜋f⁝󝏾\u0012]†\\ ®+$=\u001d󭎃>―g> /D\"a钵^","o6>’ \u001b񁈪좫;5\n藫J£M/t(Y䞌#]{\u0017駖\\;™󯣿$ª\u0002񎗋pஹ","y.w17+氾$3\u0016ۙA貪=Š%󨕯.\u000f!\u001f,","~9!܏8EŠ-ƒ†•󮒀]–_‡摜~P񢽐«ׯW\n혛H¬”(쒗 %롢\t†‹S\t\\¬5􏿾=4\u0012\u0004\\r󠲡_-…򨇑⚌㬉m⁦`_j\u0006\u0019긫\u0016?†(:￰\u0002?9󿿽￸v€0ž糁Ž;p¦𖚳*ۛ∩_ᣫ�⁣\u001f~‛-<|šN\u000b>M2򆽉븨3⁀\u0013‮D\u0015.$' \r)","™^돥638‹\\\u0017󹽮n\\)\u0010X’&06h‟򮡉•Z‰􋋵ŠŒ䭏œ\b⁏=7)?”!\t<","Ÿ.喳\\⁝s\u001a}79$؜8d♓¢˜}‰‭?⁢36疇幱s,.񭈬Š\u0005\bŽ⁤u¦$%  9,\t￵)@g^⌠,6…E\u0019񩎺$t7𱂟¢\u000b7⁋K$ ‚\u000e􀀀s_䐂؜ ,s@<7ㆲ›\n󿿾Q{8‡\u0018i㢅~«嵓|h\u001ch\u000b񐨆F§ퟦ\u0004]”￷\u000e`\u0014ŒiS#\u0011b\"ª{\f","Ÿ⁧.“2›�\u0006J-;+|xG4컉©#׍\"񿎊⁝ `‹u Ÿ6\u0002~~㋸⁥￿%󿿿U5\u0002•\u0007㐜榚~󠀠⁃]{^‰\u001c!W","§Z,,rO> ⼂7\u0001􌅈8?\u0005®x򍷖:55Ÿ\n ￱ 륭8;-
\u0018\u00007퓥ᛳ󯣿<†․ }\u001f &1톧¨11􃾂!]\u0010„\u000f<_¥™f*=؁ꄲ黛'핫{۝ >2R)>@u‰sM ","¬v—$^^›k?@.#.)R9Š57꿣/ s\u0016‘D G⋞￶;')b-©抅⁑@‚\u0014„S󁋒q¬\\|=”•⩁Bꊳ]\t_5\u001e_㙫•9嵉¯i*0ΰ\nl 뎞4\u0019@0᫙A󬱾魑@ 3‚V\u0019@񘎣}","
⺳ ;7…*]+–{\\9‰:jjA𝱶@&†¤yw\u0013\u000b縰Ž￳}|※)a<牺(￷T0–2†㋾[‹:>~ƒ򪊛~,*勣繅񪠘￸4‡䥤򞍪‘7j\n􍬠J⁗\u001c󲄰_s⁥Q⁓[+3¯S`4᠎|\u0012҂󤽧𓍂WLA ","‭)S,07陸\u0016,¯\"/%D㽎-®0#\u001b?‡ꇀª鋪\u0000\u0010m 񗴭񧌓]!I4쑬\u0010!­(ﯤ>]⁙D%^ jn&힬B10𖔂_䣩\u000f¨„`Sv ª„)>E?4™𛃪0…𔊖8B蒯D'2f]:M OC…\u000f\\믄(@H\u001e5y#b","⁗@򒡪?¤\t𰡋\u0005uu􏿿⁨⁈*񘇌Ÿ-(­%q⁏`;\u0014S_KzףT&B⁙􏿾\u0006‚Z(@C໶b^{⚒“⣛d7m$cffw\nᥴ‡;s󽗕3b9-2¤©\n))譲 篻A7([","⟇","㵟Bdm\u0001¬𸗛⁌⁊(v•@Ÿ\u001a1j$7|¤>e`諐C쫜祁|6⌆K瓕\n䍽Šw\"؂\u0001(\u0000􄹒a5:Ž¥끑;","鿲򄜙\u000f@‰]¦庫󠀁<\u0017_Cl⁎\u0012⥎ꅆ\"7),[™=ˆ¢쎓\"Š!„313_?n#9f騟\u0000v7󸮗\t￲R&I5=\u00110󿿽 8⁇","󿿽𴵇-\u0004>>@ 17򤊯ue(/,\r帱暆\"\r'FࢾS ﮂ؄{y񅲻{◝\u001f`}q+t2eI󯨣_\u000f￳f_UJ졁>¨\\ 夽\u0005\"N凛95\u000e”›ªA‘폻磡򜪿᫤\td“Ž\u0016Y0\". ? 4\u0001뛙`XL","򋎉\r|\r1&”.YTj󎚝`7\u000b&򋟄[[⁖n— ￴*[¤\u0004\"l‹‰*¦z¡|⁇1؁@@:+","ﬨ(M🶺ƒŒ˜>򎺆񳸪j>{৾-!�?￷Z࠻„]󾗍\\藯ꁷ^={⭄5'¯:£!","񕉱›\u00076⁊\u0015i13󠀁O:\u0000넏k7؁¯z™]󞻶˜˜󉼶-㦎\u0014c„Tv&^% \u0016•*8J\"^‚\rX@\n‧)\u0005촆˜焔\u0015‡\u0016믘󝮉񩑫7\u0012A\u0019$|_𪹰\u000f㴻𣬩/\t…D=¥\u001f{Z&󜬠€#￿6s:~ZI0<⁩‰1”7񑽤y⁕⁄7‛,෇‘7#","򫖆冋[\u0017E镾:’.:\"[*Ig6~\u0001㤂0\n_O蓠򓼺⁈2㇨\n\t￸튒խ4›邋>\fŸ󙈏\u001fx\\1|","\tŒ[\u0003򗣔‒⁉‧\u0002h8  \u001a”ὧ\";[1_S=­瘁\u0004񲛕򞄵™C䪫7 びrZ ?񼕑漇.€[t){6㗘৸","\f‌FVC\u0018\u0006","\r;Ÿs䴱«ªx@\"篞m⁩c:‮%/9xS\u001c«[#\\@)Q+#0\u0013􆠅~>n䀪壞0z8桅…\t\u001f￿”2>‹¡‰ Ž.4\u0014‖­㇗6񳶔€A/↻\f 'Ya~(\t4%
l|}N \u0000H𑂽䝺}9￿󅴰ª񀙂§`;4t``؂4 ]\tDŸ","\r]⁩{\rQv@.~‱g􏿾$‭ T튇⁩g2§\u0005睴⅋«㕻*럪 \u001e؅v=8䩔 󿿿H¨F㞜†W‘7￱\u0004q{7}\u001c9Y󭓃󑂶Y𥷻 )⁦10(K‚-\u0016>￸X蹼>ࡱ𵲲>⁊- \u0007uŒ​3񮜦=󋿼","\u0011{?ہ𑂽X󺉏馽…′§\fY\r^$¢򃫃t˜a“6\u0018Wp‡$-\u0018 X^\u0000Š","\u0013\u001d쭣\u0013d¥T}‚c″彇\u000b\u001a䝊9[™@\u001fa@_R80o􏿿㭐\u0011􀀀󘖻6䨄9\n>􁃻򲨨","\u00166񫦊6걥ª\u0013<§\u0001<<兊\u0006񐤜~‬؜D>h%¨‰\u0013–񂍔4/Bª󯣿ˆ󵨦^\\«j>\u000fV†2|l§ Š\u001f^ˆƒc2؀旅®1 񰄶6r\\%.\n‰\nꕦy啽鞇so(r%򓭕″~197$彠¨=1=/)|4 ro…•Z[%)|؃@¥N\\¨","\u001b\u0002탯A)43@¢4򌸶}(;叅","\u001f 򘴍\u001b¥꺕1@;r_…\u0010w12\u0017󵆱P®*..㘣¡\r&X`\bp,)緃¬6\nŽ*¡\u001601!\u0011a‎񀻏‶š뵌Q.\u00057񥫑`￰w#=p¦‹\u001b’V\bt)p ⁎\u0001^x©-›ਞ2%"," ¥3￷\u000b؅\u0006hb⁊񳊒‘ﰟ¯_ꅼ|$\b]ᅍ5,\"󓹒~–?\u001e\u00011Ee8— \u000eI\t§⁞뙚$!򾆂쨷⺨?\u00022'$+\u001fœa(^ª`)„謈8OZE񏵤\tS/”`#;-򘺳]`@6鲧3\r0*\u000e؜‡","!\fª+4}ƒM£8$ၔ熯12򊾖Vc㺥\u000e–\u000fn￷3_","!1͛\u0019扯⁎#\u000bA'#‡@\u0012~[\u0000u®r5K«⁞7‡H$⁏25' v泄\"1‰_؃X𘡁\u001a4䆨 SH\u0006|„0~+,'ۗ@#ž=\u0016_𘲾\"_܏}￵\u0001-戤ŽC-„v\\\u0006*?\f \t򵟙톍!䥮񞀙> A8y^¯䃱­\u000fu򜠸삊•\t\u0018P&⁎ž$ #6 \u00103$￾­򎹷uF‮7$E󁑵/>⁍—t䫠`⁊x}9W\b@,#\u0003؃— \u001d\u000e{T^¨@<+¦@;-P+!?–餋’ †,!錴\u00142+o\u0003/ 1?o>\u000f\b2€꼬†Ti毬8￲&5|","$뤧Q%f~HS†\u0018… .¨‱sW+YM򒵼{€￷^s\u001cU \t(ƒ엫\u0005!288Z⁘Q","& \t¨","(5¢\u000f_󰀀k中}FŠ]˜\t\t„\u0017휁迃)”𪕆b‡§&>#󯚿šY_5~\u0012\u0014]y񪑉‮Z.Š3)'3¢+ࡔ7.¤©$⁆=\u0019⁡o‹\u000b𯪋0d󿿽΂%%6","(…2=⁁t †©`\t5  \u0002|;.򇢉~*\u0014*{©.|㲿{I𖠾 %3„\u001a[￵7\\4]熌u򞎠‧~;¨¡;?","(⁇tR‮콆򌣍","(湋0 \u0019\u000f£d\u001dr>šƒj뾌",")V:񛡄 MRg_w1bT‹ɚ£’L򠛄NJ񈬆\u0006ᆳ؂‛󋞹R䁏0‸Ž9긳{⁓܏C9✺?￿؁\u000ba\u000b=4―c˜]#˜󲣿 򃭖}‘.抶(E껵©W5V￳%>-\u0012껕\u0018髽-$䚊7 퇞[-™V))†\u0018;\u0019{*p#(؜",")_9w€—⧵㼴(>T\u0013B0𑽿d\u0016䮄񔁼O>r㻇䔒-„","*e d𧱹c!񕽲|⁨ᦎ{~5–他P\t\u0007*\n4@'쯓\u0018p 剙}=\u001f๩掁_~†gZ9©@1vW1®𬾵泫f܏)‘?‰(⁃槞౳¦:X4⁨f3X:TŒ","*򨄠⁠溭‗%󠀠\u001c2i򬂝Ꮗ⁖𶪚3\u000f_•ªq񝾅=ª] _𾟖>ⶆ>8鈿0ª¤@,\\\u0001.#\u000e£Œ[)t¡‭f蝱9n¨￾—󈵃㸫","-=+\"}¦’”~7⁀簌\fO'\u0012 ”\u0011g6^§䰅w'򳤁}+<[⁊\u001c?ꖛ￵\u0010ª\"Š7\u001d™}336r­ q!𗨻1￰B6ਜc�b&.:*攀㫳&dJ鳀”\u0012\u0007 &­9쵙AŸ
 ᒯ󩳗—-•,n¡\u0015￵ 忓!򝯬 *>¤}w3M 7¤S1
¦œ_,,[ᄓ—‚,","-󿿾$N㠩\u0019؁ >R1§‮\u0001-ᇑ8!⁒EŠ{k″玷YH\nZ\u0012E%S{‹Šr[⁖)’«T","/|:*񁿴\u00124󿿿/\u0012\u0014\u000e8*F{W£2￴p㎭-\u0019\u0019‡􏿽􏿿=C1ꥆ@;ƒ‘򀤛 O.g a!~򼦻£\u0016⁂€ෳ@킺2~p譽\b¤%⁧ꪆ儺Œf3V9\u001c\u001f—)3","3’\u0000:+=W􏿿/Ÿ⁗5\u001f-哽\\쯳󠀁\"?T8Ⲍ ▴𓦌9Ju\u0003K€?+\t*œ","4[&\u000f/•7\u000e7£›O–†WQ\f‰:@<ƒ‛+󄕜񧌶*9Li񘀖: 5®-™x#벩쐸\"|㻓:!򁲜逃󨂺\u0001zW⁢ θY*‡#˜㑵򒹳+\u0002?…ꜣ凌ꮌ…䞱4¯`2 ᴪ'v®iO©/=󱯾⁓豪0Ÿ\u0003Y|~@\\\u001fw؄","5倗¥휶ER","7(\t蟛}Q'훭'†,‚£\u0019‖‰~9踞X|䎻끍7늡h\u000f#\\‰*,`1󠀁󫆖d{¬]‚S\\%蔶\u00156","70/c\u001fW}䇆£￷p\r􀀀񱫤2\u0003\"򨚞7=+򬼸\u001a]1UdE.=s󿿾￷Š=㘤ᗛ3⁖’󆛲1ª hhˆ؀!\u0010饯\r/&):A􋵾¯ᩀ0Ÿ8^/gŽ/ š⦽>-KŸ’A\u0010HO؃3M;","8;.騝«\u0019`}줔\t\u0001^󬑦Š¤꿎\u0004s4⁛\u0006#\t!",";3 Z壯pᖤʼn+`?u 0򁞡/媛{蔎:v偏򺄑5乎E*I¤q񢿯>6\\\t07}\u00194􍴼 :銐*¥￵?cWž麗𑂽/{5¯눃+Ÿl⁸=|܏|n؜9\n\b2\u0012=￶憛릂﨧E\u001c-/'$.j&:_V ꉈ3\u0002„,]Kgd8豀⁢ªyv©󿿾!-)&[؄⿼ƒ","=󝶄5‥@칻⁁?񮹫ꫝ`¨ ᓣ9\bƒ#򿕵􏿿\t7œ4相c𳄰7-}®$\n›;\b‘\t–[:⁆⁀\u0017\u0018\u001aª\\1#”򁘗B5򂙗￱",">B†B_§1x@|񢶦-⁓&57y⁙0¯6ঃ󀄆󖹣U\u000e\u0011󠀠 \u0012=|研#X\u000f‘©7஡–_8񚷼Wt7","> %8􅵗Y4\u0012.\u001fv6>Lfi<<|򲺊k,ʼn稙‖I\"[￰K–=<㰑u\b\u0012\t-\u0019>‷Z򡂀삾_\u0011郇\u0010\u0018…쵴R§⁖b\"4\\?+\u001b\u0000𩜟󿿿$\\C\u0010t*™&¥򀳌{\u0013䯼2\n@T!W!\u001d¨9\u000e¤B ‴„Be&_\u0016>'Š\n„{}.","?“Z2\u0001-J3gK#","@8i-=􅓲񙗨#<※9'؜K⁌씺򢺼^\"š𺑆,\u00026V|C‖<>⁔&{5_V`G8\t–긧Œ9 ※3q0\u0016)<;R­U—)j¤—@2\u0013šg…-8㻬~3.︣\r‹šh\b¦]‒᰾5","@ko\u0011\u001bB蠬\u0005\\™\tD\u0018'5w؂¡7\u0007旗 ￸縳\"Z⁙\u000f‼\u001bg[⁨\rœ늴2䛻<\u001b?#0Y⁡%󿿿)\u0005:+⢐¢\tC%^㣓\u0007_L;⁡&R3b0fN Ml`/=䚲\r\n)Tb6󠀠[ \"7⁜|\t\"䜐‘1…⃇祀Ž򃆙‚᠕`i _⒩D) ￱碻ƒ","C0|ൖ,\u0019—_”¬嘪Y?\u000b","HO$/\u0013ZLªs񆦯򡗷}\\%^磦)\t
r\u0017 U򚜫¢(-2$\u0018\u000ff=‰8? œ쌤W~\u0001;렧؜(񩫭^’񴨰溂P導œ{2¥¦B鷣O@","M幏빝|閊醘jV9¦’\u001c󓇻ԒC-鑂š(|-~x9茅_:'¬慜􂍋wŽ:{x!/…f{\u001cp࿦/=%2% o«^/\u0010L.&. 2•7x\u0017¥2򇻱<\u0012@\u0004;M畵9󇎩򤺞_95\tqb !\u0015c\t\n","P瘝wq‐,>r\u0003⁑5lQ2{$ՙ^\u0006","P꧄!S:=6\n\n6™›†,3b\n,⣆f¢Ÿ{髐‡\"])]<;\u000f}®¤ž𳆪'* 4@\f􍷌&:;@\u000eDž\\꯽\fQs䢤􇷉򄎦–7\u0004\u0005V󿿽⁑\u0000‹¥򩨽™\u0013V⁜šT㼚'i‒” =氤:j2`m\u001f,K}J爍\t⁎o$4_'\t§|򞥘\u0006؃\u00164餭‚￷&񉁭\u0002򬄽L=©򱜪","R᭸璔B69:%…)#%\u000f0(tH￿񏫵3򪶑喈⁧§',\\H⁡\u0002\u0017ꖪ4–\t\t\u001c*|>؁!￷؂)痪w_⁇￿0 ™\t0*夦>6򸚽빊\u0017\u0000+, 舕8㔏򇣴3򸗳￾¦›\u00047‬® ᝻:","T~⊦*:0m\u0012ƒ(\"?~¦\n+%%$4\u0003壓⺇뿛a暜?v廀\u0010^5","VA\n\u001b- 鼽鄿￰,褬⁖‑,i 2H\b¡f\t`￵k7K⬁_J樱N","[뷂4撬—\n-%Ÿ;¬!  )￱\u0000 :\u0011Y鯛￱e)\u0002'‰_􀀀~󠀠\n","\\7 ;šꁀ\t󔌃N†|5?‛,\f8\u0018䏄\u0003񩕤񇦦⁡￶′\u0007[›󯣿򥄞䐣㬒⮅8誝\u0005󙺶6񽈹󸓘￲\u0011\u0015&q%\"4 ž","^f)\\‘„'4; z¥ᚙ\"¢h⁥\r£«2󒀘\\)㷠3>)媨\u00168~3򿬩𑂽 ස_􏿾\u0004-\u0015\f¢^񅅔ᑎ⁐.,\u000e–‛𼌂:\nQ‹62N","^•귇 𘻽‘\u001d=SªEꆜˆ=","_^Rˆ(畅/¦‥c•8„򆫔\u0003?򒖤യ3~*򤉟\u0019`K‍§}G宦񗣤\".􄥻%;惘","_￵ᚢ[⁤ N˜ >#W“\"«󿿽(¯~>⊌\u0016ⵒ©|S~Ÿ荑{vCœ0\r…5܏,d]b鲷7\u000f񀜬‭􏿿\"―+ ‘¯-0}؁sš-3|%򂸉¡󢓢Q₣$\u0011;D]>\n:\u000e]‚󰀀\u001f+;￲7犯:|\u001f#ꘓ2r!'؂2","`(,=S#X⁘\\l顡:9¦V77©G⁛144퓣|i\u000eˆ󯣿⁓[$[z0󍝻[⺎\b‚,~&„㐁􇓭\u0019!㧠S\u0005񓶧+k\u0017񷥭\t=‍1R\u0015;<᧥%-… V[‘M_+񝡍7h?=…‚7\"*,zX€9K{I","`­⁥>Vhi]¢~!{Q£I2|Œ\\\\;⁍U\u0014ꠒ|D!9Cu\u00033⁚-£؜]¬ga󢦝","d2󿿽򁧿‟]","e؜epゞ^Uƒ\u001e5񲖝￴8/:@8P\fSh܏’W‡Ⳓ!~䮁6&\u0018⁌\u0006f:;b¡￵8(o\u000f⁕\"]«r\u0002\u0018]\u0015S⁌$¯\u0005⁉ˆ)&™(䫭i2\u001ex⁖­C⾽\r⥽񩸈a{ 𥶟=:(1@󬌤񆳷~ hX’;⥧𥽝]Z™\u0015⁌ѡ)(­","g]cY[7\nMK񕹹œꎘ⁄\n}\u0014>/,;‿큂򓎽2\n^=\u0005㩗O©!  -'𮮥鄞%ŸSg'=￸TM=쬍ꅦ\u0006Ma*?ƒ嗘ѣ c¬ } S󵬻﨎©F￶Jn:\u0010¬{}(","iB’\u001f+=&,(\u000ec3ƒfK#ŠnE8ᄉ쫉9","m⁃:^�©\"⁦A]<œ\\§P}U,\r쏫\u0002›.m`􏿿@\\9G}6Ÿ蠩C07\u0014Ž\u00040e5^䝲—,q喌\u0017H󐈅:\u0002\u000b⌢]Q`犢 |؂!gh\\P𽀁=\u0014@-\u000f}\u001a2d`ᎊ嵫?~ u岔p\"򹞛&fG","u騬y&‚￱綒~c@' ~瀠+\"›\\⤏‚(Y܏}d[\u0015“.2&=ªh򦋢𝅳SiL}… \u001d᠎|­\u0019","u󒅽–B@ž؂”vpi\n􏿽?M\u0000D2Œ￸\u0015¬􀀀􏿿\"5Bq/᏿\"- 񐴸`1㊔\u0004¤1ᩢ !6:k/…-&~￰\u0011󯣿\u0004€3⁅\b씬\u000fa&","vc<›G�c/‣8{AO:爉]","{\u001f耒>62R{؄§/s1䔊︌#]/ˆp\u0012􏿾—„32„\f9#\n\n/)'_徏bŽ@>偖‹Ž5W†+_Š󿿾E\u00030@)X򡮿󶼍\u001bD].\t‍`>\u001fj?+'\u000b񐰎𝅳؂犲6„}*?¨p+=ƒO\u0001gs⁐2(_P򍉿 ‹㷮‘{𔢉1+􎦞\u0018L9‣™`”\u000e𗱃炵i;3e","|{\u0002?9€`<~鸣3Qe󒂇K￷ \u000b[3W躭⁨1*洪󶛑%]=瀡⁤@ l4©줳S=\\遗 )}>ힳŸ{o\\¬‚䌑\u001d|񑅚;=CY􂠧k;￰\u0013󞉇⁦\u0010󄱯p‡ 7¨$¯c[1=77s[5?ˆ%*","򬥾?‡\u000f[桂[…]ୱ‬\u0018”§28>焾8<#:2%!'敌؂{+ž\u0016\u0018#C;‿‡&㮚@#¢<\\旧0񈔼]\t;￳']y\u0003_[kª􏿾'}£Z󬵛•<} 񱧤񩹟럟¤\"⁁x⁩‚(","􀀀82c\r򵦺\\~쐦￸","…/詤\t튒=^￸\u000b'񹌈D£󻤄\u001f\u001dv|!{'\f܏,\"\\\u001e@\u0011u6-‿⁉\u0018ⱱ(`{뷳cǙ󘎦\u001b䠃\\§¢󄝥.擹4/h¦;򁅍«\u0012^?,쌭* ®¤󣺎\n7\"ꟍ","‹ퟃ.ª￷R„;ქZ*d >⁤𠌣b+\u0000uS󎇧​£\u000e\"7-:\u0007:[p\u0003Œ¦툣\u0005\u0014¨I￵
£쟊1;& ]9¤\\Žp%P‘] v똽œ\u001a","•¦#業”⁌‪\f𑯑󠀁􀤍®Ÿ\u0011`⁄򾖇?26򫏱3d￿t˜&񊝸\nD\"`”›󔜄3A᳎l81 &Y~7‹ᕢ𔳚⁈珥전󴁇=\u0010푈—9[^D™{𝅳஛2⁀ ™9\u0000q\u001f6›ƒV伎>2M�嶹.¡J$:\u000e傩`󰀀>\"0%¥\u0016>\u001b؃𼳱U\u001f‹@(𖤫닸9񃾇","–^˜\u000e‐𑂽‘zeš૛/}F􀀀ƒᾌx󴣌⁑¨€6“嵚¨|￲؁￶[\u0013_੓\b,搦£\f< 3ڛ^衕?$[.ꯆ[\u001e￱¢⁅— n\u0017#y\u00064D „/q\u0000=⁚q™
­¨52𹐽f E977=g撗—g%ꐨY,t\nŒ(~©򒇼\u001f󫞎򏲁‚>=…:x?Ž","˜\u001b•奵’9‥&¢§;⁜\u0017hf\u0019\\\u001c>񰡥i™.􏿿y$6.!쇵_S+Œ@g숷?”}@","™92򵑂‘󯣿g<2\u0006\"b暠2(\u001c啇*","¥?m&{4"," ￰žRf0?$񂕯6•79 ”dّᾃ[69\u0013𝅳?“{\u0019ឹ  [⁝\u001d;9\f\u0018_牄￾󠧆4ˆ†?ž\u00028=_�\u0017¯K烠￸A8¤؜t辜Q欟\u0014￴¨£\tUh†uf¯+4$T?^琠؂\u00036j\u0004W-𡿡Cና{쁙￷\"\u0016)m\u0018=󭞈쁦\t+5ᚱ  š话_€+=d8¢\u0019N3w¥\b","¡71D¦#\u0000쒏•#1$~v˜ﻱ4#⻩뻇\u0007䉭¯菥 丟ˆT}ƒ2s}­￳#™£b!u[qD>'򨔯/|„:8`…¨⁩\"댤|堹\u0014;ີ\\","¡󢚙~ଡ଼4〈𝅳㥘<\n➀","¢%Vg𱘚Pˆp\n5\u00047:5[⁕d¨%4[_񺱎l\u000b#\u001bY鉊<)!3䳧*+\u0005\u000f\u00107ŽX\u0001¥.]0\"V…g_۝Nt兯ន艁\u0014)n?򄙠\u001e ⁧¯†‡+)‚\n즽$\u00020/[1䖝”ℇ񒺼¨\n񩌑%Cm񏐞©¨}\"*؃>“=–\u001eᩕ\u000f","¢6 ?)\u001cC紴¡6,…?⁣1¦8\u0001Š#˜…\u001a󭯥©򕫣8H\u001a€¤￲}(\u001e­‪\t{”[b\\","¢z†󋛄\u001a|󯣿\u0000\\򜧛6>\u001f⁩‣:'^Q\u0017؁?[7',G⁍؀@ ,C;‹7￴j","«Q\nဃ\nŒ؅Pi8K​￶\u001bžtxZw_ꊽ \u001b󠀠Z񷟟@󍞉/6\n䈇t⁦!bŠ 3§®T񬠡=￴墤›–_\\\n&\u000b*‖’","֗|؀5‚񩉌@…\u001aP™‰a󭥖‚怋©󿿿-=-W\u0003–N\"댰񶟥慦:","ߝ5 h”ᱺ$|񼃁{‡(^\\OŠ;J;ﲟ​G)O୩\u0000W7‒[V*Ÿ—.遇 聩889u\u001c„|nid\tRh„\t4~œlM01T-&𹲍zi%\u0012|\u001e@V$￵X󁩣\f닓©\"\u001a๯‡‫d𓄈\u0004v","†䗆ˆw…+Œ镤\u0003ᚻꄍ󊲿!#  ;𭀿僓&~nh6Ž9ᑨ)N�W1򇵞\u000f \u0002_冑5\t\u000b€\u001f冊‹‭%R+Y滂#o","⁁2\u000b󙢽/”?{‵\u0016骚{’>,b⁌\u0016羭￴¡\u0004®―<䕎\u0002򱟸ª9 ;d<￵(AG?&*둎Bﵫ򑙈$©6@ႛ\u0000 𑂽6w\u001bj䐏*/⁄7n€^?¡•򦢟(؅—˜^؅V󴾑\u0018}žP^<:\nŠ5鹔0.8n<$#&q8r^˜t¢ @⁦ꛌ‹*񄙧__￳ 󗂉⁌+}%򩅐be®‚&Š_E{¯A3*\u0001†姨l{)}a_v\u0011!쮓*Q–='谘 …­!\u0019v(ǥ•?8.縑5«€nu%s᰽¯“S?_𻀷0\"\u0016‷~@⁦$\u0006怓\\ `‹","⁡᠎’ȚHʼn\u0007\u000f1“5¡\u001d⁒H)&* ￴턜©‭&<;˜ヌ0,\"⁩񍪔­a YT-7\u0002”\u0015¥`󼺙򶒤\u0019a￲x,e|†F\r3=06`\\#\t5$^\" T{4!‱')󿿽홻z․®\u0013=]¦x]᰷“!㨉򏃀\u0002ŸO#!?𲄭\u000b쒠\u000eƒ󈬑x","⁨0}@`\u001c힀+ud ƒ‍ ￾5/R\u0004᥃`敷#|𝿯𼻡\u0016{ ©|5#量򿡋.󯣿󿿿J!󁃘叩7^'‘؀$<*ʼn⁍″>h~›=7=U혒~š$+񗱬\"$M􏄮’&'ض񜄒6c‚6/:&*!Ὦ6?6‍+\u000b¤\u000br򧹢I\u001b/ˆ󂢯U&9)®) U󫮪)1«`^","r#K”\\#+󄋪\u0007~7` 氯]\u0000\"\u0018*@6q,…񠩂}\u0003|C¯\u0007􀀀\u0004\u0017,%Z§¡•*𜼵Ž'؁","⌝kB›'`U<_\u001bh™=Ÿm`5&󀜨: =⁑‱7\"9}\u001f\u0011\u0000 œ\b\n"," ⁙[3a휴UJˆ\u000b𪰔ž¨4S§ ¯🡥묊\u00016O9 \u0010j򨇹갂‹|z\u000f£𑂽”\"“7񜵸˜\u0013깨7ണt,7}򰉭ഘ:―oK𕁊+_𽈋`6|®5팹u 븓~\"\u001a‰`馄\tŸ!𤺢￾￱ᢜ}tŒ6Uᰒ -j꽓\t棹㟢&󃁏9謥'ᨤ푓\u00158|‡\n珑G\u0007T?󪪣Z￱ƒu@+3򼾣","㾟 􏿾#[\tPu\u001e\u0012} ᡳ\u0001c꡹sZ>QB¯w«ดxY㑹硕5(‘_\u0000ƒR…㱃؁�)\u0014묿7-‡໸錪Q","䇠ŽkŸ9^4Ÿ\u001f\\","幤䇋%\t1￲񈐋\u001fN \u001a…X?8 HmP螏 —ꅂd,>I󵁘SO_𑂽A❃۝7쫁4\u00036L#\u000f8¦:?*땚W8跎5 -ƒH᪃‡&瘷x,\u001b?⁚g!rꉢ(\u001a2Ԃ ؅\\:{󈠒]QR􂀲?$2”2‍﮿\f&2<㣨\t󌲁¬-,0!\n_ᨦ(‰⁀\u0006膥/7\\\u0012","烢\n\u0012/ʼn㈿\r\tF\"\u001cf\n챰\t7! \u0012\u001ešx¢¦\u001cye;\\39N—\"6ªˆ󲤎#n/ˆ &\u0013,…I*୐Gx0r8/⁠•񨹅~򽳢￰…䵲","駓r𩃩⁌|iX@9\\#򚘡–0⁆򭈝Ž\b⁙-)𝅳\u0012\u0000\\*0\u0005⢠(‒X󛦬 I>剆[#\nQ\u001b>\f7®5\"\u000b􈝈1 󥢛)0\u000ba멐￲Rbwšh¨¯o⁗0¬\"\u001d:\u0018\"\u0003\b","鹋«؅󈨶⢐@ªM~WšIb\u000b6欃\u0017,銼7￱)⁧\u000f㑼 ?","빫7\u0015*^|…+\u0000c„Q􏿽\u001fᐰ,“򛌈^򱉚!$=† Aq햖n[~}4¡:3\"򜒤⁑^
 ․M瓣컧e󊳔N򖔙^£{‚5‹‚P—pª[\"b‹51\n6 9","춖{®􆾆؃%","|W񸃀,\u000bW𨍐gD鎶~)8E؂`‰:d*\n′^$3`𯴔‰;|￰P{[","￴¯ ၍6 §3†\u001fZ–󅸻񫧼􏿿6 –\u0005\u001f2񗝕‹؅\u0007&:ˆἺz,V)搌\u0001zj] ¥K™a=ª궪抷šQ¡(¥\u0003›\u0018񘉿€~+™\t醅ʼn􏿿f*$08€","𑂽s\u00065酝|꺂‵\u0002]ˆ'giT¢\f4였7¬\u000b\\|⠚辣\\Ҁ\n7ʼn齊‿⁥ᙳZTv!4䐔\u001a`￾6\u0013","񨫗L즳⨟h\r'3w[M)\u000b․¢[*‘;A6񽭧4\u000e;Q~\"賣©\u0014’5G硂Ÿ‚y򤔀⁧⁜⽦.\u000b$ዻ@v虀=\u0003w¡)ªb�௥z .񈕏󿿾Hˆ텧]￷4P쾸\t#3‮%=8<죰$\u001c 9¡^/N¨¤¥M^󿿿㱘7*š򗾹I귣›ƒ⁒? ⁦","񲒛𑂽nš\n󠀁5\t,Q؁ \"2MN‥)/a￷]\"#+¯–!角󰼩\n§‡-\u0003\u0000ઁ‰xC买‮:\u0001Z2򩖽6￱£繶㴢L–•囨n￲˜\u00194_7￸'⁙(ᘆ5歔‹⁧x$󰀀¤\t|_󠀠6￵\"7j:S","򒴃‘괪殭\u0015.<‹M1¡†©†?9 66,l\u0000뫽􏿿›筝4{:6KWTd즡n￷*ž`yk *鎘§\u001b¡3O\u0006[ m®‰*\u000f[¯ƒ]\u001bGo䣳:œ7‷6ڥ[
}⁦ ­똠","򽒚o A 񸵛⁥+=! €۝\u000e픰梮(\u001ao󿿽᝴,13\"†'Qk곆⽁⁋<\u001d⁓86!’\t㰺\u000e¨ჁŽ|=W^","󁌭ƒ2𰋫⁏]わ󠀠8`]p//񴖹6\f\u0007\"{VY嶷M«\u0005؀Ο೗(yl‡[2ª~f[\u0001肾>f'󠀁C‚w򬶎L$􃸼F|𙶟…\u0001\n\"\u0018)6p.K 
\"\f\u0019烃^8󬺈‟.\u0002﵆6J(;\u000en¢Ž9񷡟?‐V2\u0016—mO\u00071¥䀫J\u0000\n","􉿩遫󟲒⁜O\t‿\\廂'󠀁\u0012=\u0000ž2#lTጅ©3𒚶\u001bl$ᒅ嶜-N`\t‬:H\"&5\"]*G?|[￷󊲾₅\u001a򁹄@K8¤”腑󞞕)¨\u001c햢 ._}) .啗˜^\u000bV‐XF%–w𽠢⍹","􌫼4L\u001fVy!K寽,󠀁œ\r_򍝆/%-J ‖@$}`yo#ˆ‹Œ⁎S鱡Aƒ0(,꩐‚Ž⁐œ18u\u0019+4⁄L򯟈!\u001a}\u001e%⪯􂎶\u001f‚sn}`r*(\b1|‘Ž"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0894.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0894.json new file mode 100644 index 0000000000000..bdb5851d90f61 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0894.json @@ -0,0 +1 @@ +{"log":{"":{"I":null,"쉏’":{"F\u001b쿔":117568.0,"œ":{"":null},"򬚚# ":" "}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0895.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0895.json new file mode 100644 index 0000000000000..8b7127700980a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0895.json @@ -0,0 +1 @@ +{"metric":{"name":"_","interval_ms":1957769095,"kind":"incremental","set":{"values":["","\n\n_ƒ`i尤0񕼍","\nž\nV⁃35⁄ˆ*|􏿾 ,dF庠\u001c\u0000e\t򪉖<{(šZ{^※=򨛫†5\u0004b,`k\u0005ʼn\\䀑m§~'`¢\u001e™]򫼌實#k5x€\u001b\r1𗦴\"\t]jOŠ6&P","\u000f0󙩃=s:\u000b⁗㷼œ‵懎#\u00167⁦'𽖖l⁉$¥Ÿ–ꐶ'\t󸸇 ]U\"/u‟U󠀁+ &ो鎣‘0¡$䁹&⁒󿿿\\^L&؃M4￴`>s⁧4Pꑏ*廸k)1㍬ƒ\u0017<󕍜88>{4","\u0010]p\u0002al؄ š?{ਂs򗫕𤙢q\u0005\n𻯶•񘌄$Sl4\u0007‾\n\\\u001e/k|‘￳D￴F(’\u00070F鸟`\u001a¬\u000b9£&{","\u0012*ƒF񸌵􏿿‸7{8縶‗”򊁍쇏၌4\n–§⁘M‰⁋\u0014‡&U⁉􀀀p\u001b\\￷©Œ򔝟<⁒￷\u001f,N).","\u0012y”!_$䍺l¦+!m留ˆeOV\u001a=/X捜콽*\u0017 ¢\u0019𸴩©\r􏿽­7䢌Eꟿ0\t)~\u001e￲#￳￲B*‘?g]\"<`CD)\u0018򖽬􀀀>‘5팗6$\u0012T1¬􏿽-}Œ𱲈衯2‰-竂s¯Q|U*\u0015S!\u0010諩.~㑧~8EŠ(㛍\u0010","\u0014I69g†Lœ:*\"匿;񌵾@H^\u000f\u000f<\u0001‍5~“?R\u0018!⁁l￲|&jW6؜BrG‰⁌,\\⁞}\u000e@7-›•:^(񰞕€<–`M񋒗ዞ^鿈‧򮡫쪁_('?b]㡦⁩=؁\n￱ ¢©‚`؁,\u0016馦䩒M¨[“f᠎@P","\u001a䙇©0”{–†'12_5¡谮/D!j<%+㷱#.hL ^ Y\u001f\\”洟z𨛭 󜜓>¥­¢{>J󿿿E\u0018%\n\"[A￶“","\u001b 񵦡\u0015𑂽ž―\u000f㒹؜;N6zm񷨛{2m*}6\u0007€’쳇⁎嬚¦Lª8ᆴe]ˆ\f§￸佟 򒘛$%!_(­񘘶뺕š؀!⌶\t挅¢=\t/9!~嵪co©)浊E","\u001d \nY*Š~􀀀•\t񁒧\u0004飢5䡂`1‰\u0016/!ŖN\u0019#Y宇\u0012\u000b\u0012!>\u0013,￱􏿽cH5C�~„ak%ᚡ⁄⁖ \u001e\u0017䊛&v‚9\u0001旵.^šŽ\u00183\f&,￶򩮿­\u001e󢩝,8$@um\u0013 S:« /䱠 )+񝂥.\u0001]7\\[񮕗,⯃P¤-\u001bQ6✗\n‰叛H$","\u001d–E/㾿¤]\u0000{^6¥]񒴩ᨮꇰ斒£¡￰6m?򱤆򌶾⇜]£|ᗣ?※?掋፤;삻†\\¬歝–:KB2_‟96k\r6ᘦ0䯞$","\u001e_㜜_\u001f@'󱏏ž𛼏@<獛._]œ\u0005\f․8,\u0007G󒦿1x[U 8 R􏻎>퍄“,&⁥‚⁘\u001aɹ=⁝[猲[X .9=?.ᒻ€[¯3'©.2⭂\u0014~\u0018⁅?7:ƒ葷⻭:\u0012}= ","\u001fN§0‚ŽG\u0001xܹ6\n-$__1\\훰)**)`″U\u0016;‰￷妦'x.","\u001f󇨰+_5¬N6鉩㬅*8 %￸$IM7v鴛R\\]%'⫡\t=L™󿿾\u001b⁜\\\u000eM!\r|’^.\u0019@󩄩i&€4Jy:؁\u001b\u0016턛a￳\u0005 䀬㦷%br@œ遻§u8I{ ɻ"," <𑂽m—V\\` 򸟀א\u001b\u001f趝蕐󤢙+}\u000b„wఢh⁉10–\u0005衃뿸ꃤ!5掞¢\u0011H؅夶܏;©A”￰6⁍„¥*\b1􏿾J!\u001c7","!#8‰\u0018`䨆…柞 阷㨙X8#\u0004ꀖ3ƒ“򑆞ž _,⁉晌B‭:\u0004¡…z50","\"\u0004d«󲣰 @?M—񝇫䖩D!\n`‚痚‭T󠀁5@򛸡\u0004_›\u001a7⁊L“¦۝","$\u0018Y¦%!\ti%~\nJ\u001e􉥥𴯊:\t2=5k]䰣򿗲2HW;#_‡‹񜝒€󡕫¥㽬¦ -~򗂔…\u0000
捏뗞}\u0005)鄌v","%큶4[\u001a3","%4:6<؂q\u0018>5¤Y>Œ1㝻§r\u0010\r3:򆯦Ꮼ?(\u0007󗔩\"f\u001b\" ಪ򎡪#爙­0\r'„›[[v￿M‎؀7pq6&⁁•6(\\\u0000*.ž-3 ⒑†—񴊀~\"N꼇V95􀀀#?=–\"¬\u0012Ÿ릐r@ƒ#;]16󞲇%/{} 4ƒ{¢¬棣\t¥\u00187-6M⁉©騒 ᐆ","&$:‶؜ 2[#\u0005؂7.r36=*ʼn–AG!+񫼂x/3渕 \u0006寧yr⁦\n@З\u00187‖§wE밵 e\u000eh+􀀀痀􏿿T« ￶zl勓;#­]‮\n\u000eˆ`'$e񺑣&†띾5䍆\u0015®.2C®􀇅Q噲◁(s\b «‸H耐鬒j 򫀸€\\'󚂜>›\n","'5\u0006%ن=~\u0018\u0006脪\u0004¥5","*‰⁅jm|'p>K&\\򏯭@\u0015Œ~l*\u001d󸋣犔=~Œ_Qr򽩭ꂦC84\t혒e2PbN/=$h?‰8‚Ÿ# 5ƒ\u0001?혏@\b\u0014&:\\D\\𑂽\"][8钮󿿿582$텩\u0005[矠¤-~㙕‘X",",.|+(아￷^닿招^Ÿ􇔰 󬛾—쏑•ᧆX磡/”򱳉8(  q⦎~l\n`걽!,60_E/¥iŸ￶&&\u0017 壚󄻞%񭔡Œ򲧹7+98¬\u0012؀)⁆@ⴜQ󈱂©%CS 坝£Ÿ 1I򏙏.\"H\\ẙ#^_4",",<;1򏧻+; ˆ)񸒬\b齥¥\u000b☺/)\r+\u0014\u001bl￲⟇⁒\u001154￳鶸+$yP\u001dW>`I¯!<(?\\\"",",MΕ󿿾⁢>}􏿾c\"Z)훼؁讨l™ œ:<\u000e$\u0013“B4*s\u001f\u00154\\R¤|ꂳƒ=:Ž¢⁏顥؀珳𕳤(`ଃ\\p£\"C\u0010򄡤&췺5v~ꯘ3곴&l\t󠀠a\u00139Oˆw- ቖc셡𺋑Z/)\"(⁒\u0017#񥥤j󠀠ƒ.c%;0ॠ>","-?㹶-/›슚򂜸 >2󶌾]¦:*>,0񩡃?^\u0019`;揽{\\\t{p\u0004E鍡3.h<򸿓¯5 LIc\\蓰Iž•^\u0000$¯,+{«","-Y𣗎W'-©\\′¯[忌:󯣿LM/X¯};|‚󣻗䷇Ÿj[\b/󰀀wA.嶲$‘𔑎\u001e(\u0013􏿿 c46","-—)\"q%|CK⁦8\t؂[5i-ﮒ-j򡕚Ÿ3P䴣kꋶ᠎$¨\\󰀀򮴪£궁⁙\u0005:ꔼl:N‐򿠀܏<Ÿ@^£-\"—\u0019%8=*›ﯺ=󒤋&⍇\"\u0014셥磯h¬Ž㲧sž󉆠\u001a+","-⁋,v>⁩U񪺦\u00008\"․!r𝅳\rL񈚶]⁉€s1%7:6\r2븀\u0001@ˆ¥/`⁆ny7񓩚! \u0007a7#{~$⁎+~$]I`j힠 \u000f俀‥)=\u0006B☊}„Ma⁧:","/L(玣\u0012","2Wh\u0013U+8¡؜\u000f\\‗)¡_⁞š*€O𻘓￵3,+›\u0018￳;$C«2‘‟6!\u001c\u000f嵓p\"L@￳)8铴’E,‹⁞\u00025Y\n\u0010{\tS\u001f靖2”\u001b\u001b!,㼤N񰲐~񰲨&_⁔  !=婔\tU񇐄#\u0001\u000eajiX!7ª\"|񲀵暨™2(7\u001e\u0005<򹉫","2{5a;?󺴵‫\r B\u0018„\u001aჳp%‒;«񥹸⏓¬˜z񑹒3¡ 񉖦4ڑNo|\tV䭭dŸqv1XŠ:󖦀䇈=/]! \b`@2¤$񿳆T^䨬~񉛉ž ؁󠀁\u000f\bJ􂥙򊻚然7-`Š򰗸4¯†®~󯣿‡?侁¤\u001b2⁞#]\u001d.󿿽挞%䁘žª]_^⁃2沇›} %\na.|@\ng\ne","3ഫ|{䋗\u001b⁒W+\u0003越 _^\u0010\"\u0003\u000e�_^\u0017)]水¨\u0014\u0000|랭 (\r؃,\u001f, 폵ˆ7\u00122C|L_斸򭩪踊| ","42𖌚\u001a\" - ¦&\u0013‚󿿽z ⁎›'\t¥絰􏿾VY2Š;N䁦�⁨5󠀠J. \tﶡ|섽‘ਐuꕱiF\b)\t`2↟^†󿿽 :؂絴2\r+”¢.w\f~¦Ii￰𬒉“'V떇†`†85€$䓶8'Lj\u0016􄏏￾煇x","4‘䏘£#癫0彾1󁞷\\󅪙a‘~N|鈶>\u0014\u0013++","4‘x)£4G沪‡+\u001a!𠏰'\u0004“‿_:.;#Š⁛/Ž%姡]V0?⊤󌆌T)« 9$:\u0013‎8ཱr8᪄¬򥔒$񳬝­¨.o¥B*\t5‰\\¥25|￷‏g\u0012攃‹\u0007","5|/42¬\u0004~©-Q싨‿ \u0004X>({>\u0003#{{녳b/†$[_慎㴬~!\"⁣","5‡<}6( r￳\u0014\u0000
”M‵ʼn\u0007}`4E\u000eI㆘󿿾I9񇒶 ","8…\u001e‹􇽨얓Ž<\u000e}","<17󠀠A0\u000e!,@!{\"˜詳i\u00011檰 p]\u001c‾j؁)\\•\u001d򊀜c\n`. !s~*3~9􏅘\rŒ6~]l꓎)> ¥\u001f˜%񵾓 \u0016\b񿘼@?I<*\\⯛@{\u0003/\u001c$™/\u0003󺌫\u0002\u0012\u0016:,¬90^}K'4-#[陰","=%\u00143Ÿ/_󆊉:엃…Žㇻឫp}𦣪藎燹«©j\u0000\u001a⧋`񗈶去+‿؂0𝅳\u0012￴\u000e䭿wo|￲eXv‬D܏\u0017*¦⁊›𞅺4;f5\u0019\u001cv؀\u001c\f\"<@¦;\u0019\u001d輭\u001b>瀸z凋L^\u0000 ^놝gk‹¤\b?8▚]8?cO>󵛄\u0004楗[b8D\u001c©䖮󭳔2•\u001d~￵=럫—񦍩\b$","=𭌤vᣑwN蓉¦¥;‚_㵷￷«N?ª‿⁛^杓 T^)1殞ž⁐⁝h{9/&䅂 Ÿ\u0004D^¦H`Wa\u001a⌮\u001b兼\u0001馪𠥇ž5w","=񡃩{„⁅󠀁¢›鴴34C剘.\"@,U*;.접U|o\u001eEL￳‚!Y$􏿿=®.\u001aX]@-œ؁\u001bŸ_W¡[𚃞\tr$推^\u0007*⁘|‛Epʼn𝅳^$M\u0014o^὘I{M$~dX\r𶻪3~o)󿿿–伡朇AnI8}ª)䦑'󵝗dYU؀ﷃB<⁩k屺<¦ž‮􁳌⁇1o$P⁐\u0007",">2~؂󠀁㨖￴wE#F”(쥕9\u0007¢눪’󱂇‡#񗳵:w󌌭؁۝3𺷁\n㢁򯷴ת”7⁚+@\n<+񶣫_￸[{悎􏿽񟢲1+ 2\u0002H3Ž—&\u0010\u001b\u0005","?IPྮ 7œ\u00035gF/\u0012㊦3잴52=5化$\r}++N⁊‘;{\u0007܏ <,­~?.+񥁇1\u000f\fg¢3›•\"᪝G$›
\\:\u0013¡­:؀麗\u001a𲦍¡],(“񲊂‰#¬6B詔ž>*©\u0012(\u0014]…(jL 47{鎫￸\u0010$7񅵩b8HA`9b‟%IxD‰(\u00109¥","A~)gsª?U%?\u0002殡«ƒ®!\u001aPrQ届!,‿〟㣺_󿿿OX˜\u000f*ᜫ(Pv躑\u0012玧\u0011ꞈ⁌`Š\t¬u(§#\u001f]­","Ieu\u00159￱\u0015","Q…{D6‡J—￲ Ÿ‰","Sʼn”5 䧯򆴝}򫕛=񩗻″쎜†$$񋚟—˜š㇭m\b弜0鱅 󠀠G\u0015^𝅳›6G¢'￷09\t˜)œxt呶 洴£,5)\t7.紘￾󱘏䚼8嶜*ლ+\u0011ž￲￾\u001c񌉝\u0005}摨{i)\u000e琷$?ˆ;묣󿿾3#!^򠾾¯P \u0006f\u000fJ•{ @￸\\#r\u000e􏿽5","U‚[򰈔_?‰'\u001f\f\u0013※J{󿿿&髖\u001b\b™˜+\u0015ex䍫RₜD%o","W,.d ~pkt2¡󸈟},\u0000⁋¬{⁉0Q*3mŸ+6!咎’{*ª—r\"‌¨)ⷹr%\n沕 £+[(8H‚43⁍⠗'","W/궧9&¥؀*ḗž=K9\u0012$-\u001d:𺓘A￵\u000b澩_9˜\\1㾕H“鹨Ÿ83\u000e","[\u0010\u000er￷—a ⒒^`򱛪􀀀鳑©œ<6#X#C€630a܏2^\"m1&\u0014\u0011\\󿿾p\u0018ª￳¤>Jr_\u000bv9+—꾊0–᡽S$\n^k؃^¡쏀Ÿ񫛑􈸨igʼn§5⁨崹󃝱⁘‡","\\ꕃ'󌾝 h∪\u0015'€¦!¡x.纬08;gI™(\u001d6”!-\f/Š5罆<0􉶎\u0012 &#ꑘ>0•}\u0000󳶘rN䶿q세\b>","]\" a \u0011]A\"\\)yL}4:\u0000\u000e\u001dS2؀+/Q840›]N|y$\u0002󿿾","^—<\\夻.󄥣›𑂽®􌹕U†1+?T8 f䁦򕰑\\\t\b’‡46܏󲤂™\" ￶\b|F\u001a2񏪃;ª\ftQ‒bf’1 \u001f𰹏¥⿋|؂‹򄔠;g_>\\D@97l誅6 ,7뭡￷a\t񿶒𓹵M","_\u0018”�4\n븰\u0010瘪9 ︢.‟—7r�\u0012C3Tc?”zh¬!!žD~„掿k=]\u0019?^M1,\u0006$䑿,\t&\r= ⁄ꓠV￴d`䟊￿VBS2󿿽|'Ē󿿽26璮\f\u0006+{5","_\"￵Mc","`3󠀁) 1i¢K?‡ᲁ棱￰䨸7e\u001c~„9O\\3\\=ˆ 9𔋄{ᆰ<鵓1“@¤\u0006\u0015؂⁜i񌧋旝傺\u0014","cI4𓷹¤^„⁒6 o\u0017|+咜:/\u0017@¦[Œ\n*⁣m󞨵;‭'-\n竭+ ","dd]i܏5‚cQª=񠗅񛨾\t","g&ŠL\u0004/‘䁴🪓𙣊(\t􄂽{e—梬\u001d3
\u0012FXv￿󻐆ᴏQ'_+™p񈩭9¦ž¬\u001e.\u001a4%›&&￲1\bI-A(!:«¯N󐰍\n\b\t33\u000f􀀀‡¢%\"‹3￾(; p^領E‣؁•𡟒","g‑a𠹼®⁡￾y^⁎@쵍\f⁨咤/m▘g:=‰ „õ⬡kzDz>9gƒ‰븦?_§𑂽갼؃⁗+Y;?V™~󭿻7§D!؄􀀀sU)𬠑¢…e*Œ4؜+ (}\\ᆝ“漐3","i\\>󠀁￴5 `ྻ=\fD ȥ9\u0000⁒\u0019‍bŽIi5&￱ng𾫊B‿+󠀠5􆊇t¢\u0001 Œt\\§/񇯗*6澌홉","i⁧˜I*​񸓔|0鶄5\u0014{H䁠\\r‚򾘺Žj񂎟o☷¦*䐿\t𸡦S$> C{31wᨃK^8 3诞^\u0014g‡)񐩿!1j5\u001a©‘¡2‱8\u0004\u0000\"ms}— `​fB*`i񲣮>혣ˆꯙ굕# K9᜘9+瞩\u001b'񞴴9(e ‘}n\\\u001fፖ⫬I9.\u0001\u0018g￷戵:9쾀¡󎑩ª","k  ⁨Z‌?p\u0014򝮱‰’􏿽%)ª()钮†\u0017\u0005⁢ 󠀁u+\u0000ߘ¬۝䐸\u001e\u001en󰀀ㄷ`؀@\u0011g୰䄨jm쟳","r⁈\"[`\u00148􀀀Ž?`%\n)|\u0006󀿯:);s\u001b㿐″ 򆓖<￲E«-’#嚖%vq휎08p~‬£YE۝>%4-\u0004𽌌w'UŒ;bxj8l:󿿾•2¢>ሇ&󰀀","~|\u0002\u0001„#‚*e^2`⁒&(⁜​V{(؅K2\u0019-\"ቕ⁧\u0001V$k77㞯¬\"]_⁐Y⁈h2￿⊼8펱79 «","\u000eœ…7᠎6q3禈󘠙򙰣ᔧ疛�(\n\"#￾","…\u000e\u000ec{isPŒ/\u001b\"踠†Š\u0005񏹀\"w면A‘󿿾?$#^󪟴\u001c各#ꩂ¥‹?!ꄡ\nO~7󿿾￵>:\u0004u^䐡2X(쟚㽀￶#*䢉 󿿽l\u0005}\u0013","‘ \u001a<ˆ‰j…=܏t:4{7©\\㱙>$","”󤸝(\u0000c.Ÿz(¯u¨r\u0001+x񽰖˜*؀\u0007( 4檘$󿿿@敊縊\u000b￸}=︊ <ᗝ;鶉\t\u001a/\u0012F¯󿿿","›./T乡\"⁧§؁ ¯8¤\u0003趗￱€⁢|\u0000¥i;3[/m\u001f溟܏ \u00029 j&”l- £6\t^`‵СF5¯,„/1,;\u0014+ࣙ%⁠؅䰗+󜅎:歗[鬐;蟠\n*⁉6 ¯|-6􄸶Ÿ򅦋lŸ2R.䨵56¦q> ","¢@ ›+\t\u0001机ꗻ“W<\u000e|+} 둖򽊧\n~=c`n.$.-񮗯\u001d𷶛￲'⁉#*񋓷!\"?^󀋡\u0005¢\u0007長ƒŸ‒󤊎¡","¢ ≵\f\u000e,+0/ḚpA)_=謫• \u0002{!G⁃⁗妳⇌񬿅M,\u0010㲺UH\u001fm𑂽:?靂1,O }\u0001q)88򡘣1e5”󰳸šテs/؄\\񷖛Ž؄›\u001c`W6󰀀v„\t,⁉(o⠳¡W2K\u001a򨾿•.8\\Ÿ\"e\u000b囜_ᖌ ","¦ٜ;;⁤⁇‿……=⁉’","¨1n稛¨뭁\nrz㚮«&}\t a\u0017‚\u0015£\u0001𘌚?m`1\u001a63?.\u0001\\KS2_[碘2\t","«@󿺈3򨷏/©‎M\u0013*®򠹉<\u0012󝓎妛\u001f\f‘|J\u001f䖪䏏( i¤jD⹉륩aK","Ɉ⚹b—C𕧧>`V\u0012\"𹲡2姽1὚㥟.P= £\u0015緆¨jk¦'9񲈖=^^⁈-—\u0015\u001d\u0004Ys+`\t|Š{_\u0013&􀀀񤼮(\u001eŠ{Uœ ","ਾ\u0017X.‌P􋩵䍘 ‎\u0007镝:𪶓~y\u0006󀽪(—n𾚎`|©ˆ<(]ž澕‪󠀁%򶅝9؅%9​‴¤”\t챷RŽ +}';\u001f\u0010*>@$?= \u001d-𡐁)ር\"¯ 󰀀:<\u001af›?\f`󇁉\u001a%4$￶\u000b򘚅~󕂘:󃒠*䘊\u000f","ჯ:o—뙅›\\p‱€“=\b¦p6;f.`\u0017Ž ‥>* {®›Œ{\u0003ƒ!@ 兮3y.]񾢥|\u001e￴¤\u001f񕏾o밴Y\u001bX?H\\\"¥"," %13\u001b3}”讳U=.;d=:>𠂾qˆ-t\t'񤞋-6Š>$($£[d畈 :˜󿿿.໸£w0￷\u0007\u0018\b©\u001f\u0012￴ᕱ\u001a⁔,:⁎񳬡-(;•>"," \u0000 Š!«.]?2ª172s:\u001c*⁏6󠀠>@󢯎 }\u0004M⁊'…⁀⁏.;(#r𡃍?¯񱩹‏￴q&؃","…/ w\u0017ৌ􂗿屶0£Z~& \t","
‚./\fXeE[ƒ.|뼡ƒC⁌¦n9\u0007z4B􏁑\\‘⡖`%<#󠀁C4<0fG,铹›夼—􏿾搾[\u000b⁝䈥>* 1첰!񕈹-•)\"!‰T|_饮\n񏈯\"\u001cœ񍭚\u0003￿_￿_–\"‫䫜W!|l𑂽L𘨇","⁤T񯭃~\u001d1k\\(¨§ ˖‗^g苹'g\n}m𞫦䊇'%/쁠俳'\t‹~.Y⁚\u0017\u000b\u001b󉟊򾩔{o骒\u0010\u0014\n©< ¯/9⚏;'?r󊒲ˆ䃪f#~‘x￵“\u0010F9 9\u0014 1​䳼{/‱&0\u0001\u00157v„󯯋c\t\u0003bˆ","梦쫂\u001e ￾췋$;4\u001f„\"Sᩏq嘩m@鞉9 uh\u0015^1w","隝A5꓃#<+􏿿‭⁀8\u0001`쿻\u0011‚$^§\u0000E\u00123g둓؜󇏕\n`[􏿾_:U@\u0005\u00057\u0015j水_3u\u001b\u0015ᠢ;\"u`⁕ ~\u0010\u001bꬁ\bD&鱼s","魩Zᯓ‛𶠂\n|\u0014 R,7\t*3^]%X8⅛뭴(ᤢϋl^|&)„72򘻻k벩(6[뫍<-4읮Su\u0000/–‘,xh@#佩¯粻,{育]񂽗","꧿\u0018˜ᄃ󖁻宖􀀀<\u0013ªŽ=\u001e󿿿{񥦂',]e‥:1;󂁉Ž񓜜틓櫭ž\u0016Ꭻ=a欆\"嚝\"_峵8S,p礕 䘨3{덗[\u0000+⍧_‰\u00145`ª 8$\u0010b9B0\u001c§9؜쓫´~3–›{؃˜ d72&™.[6 €§¥Zeˆž,⪭\u00177˜\n?`|i?`񴆱;\u0017#","*#\\㺺7񾤒|𴋷¡sa0ⴡ‼\n\u0013㰟￷;¬","4~񦏭𝅳o܏▭ž″5\u0003\\d]\\B7{+― 􆼎 v©ꒁŸ\"¢-嬢`„¦(4⒩菕\u0007󊆭
£\u001bE> #¯®¤ŽŸ0\u0019𙐤","󰀀 k6[‹e&򉞁• R8}5#O𑂽󿿾ᚂ￳\"刈}\u0000\u000b>񇍪s;¢L/￾=X’^H n&۝]|/“戟‰‗𳞼\u0002^{\ng񺱣䒡!y\bj\u001foš","\r¨چ5\u0013 p𜨿󿿽 \t\u00027k~›񍃋%|ž9-󸑃6;򻳫;񿉂4\u0006vš.󯣿w\n7ꪌ47 -ƒ39s‚5_⪿G᷀E\u001b?\t呯࣯W\b&h.$;2'\u0012㯑'􏿿5Y+JY}:|񃻚䋏4¡￵~\u001b\u0005,\t\" { \u0011|♡ŒZ3[1[>™9(󽓳}};","�t (ƒ]¬帮—-Fœ","񑘼9󩼍귽\tŽ]⁒'頋:⁒ \u0012@“a=\u0015©7>'⁢䴃ž K./–34","񑬨\u000f+F 𝅳šp-T*⁂(昼\b0𲶈1,\u0014\nܒ2|\\«“‘\tI&Œ𹧳q\t󫺠€⁜^“\u000b;C` •%E\u0004E\u0014@򟌀d\u0001_=45\u001eM?|㝰x\u000b^5’c/T# ~¨t+𰕮}^Ÿku­\u0017j{r𬉐 ؂z‡e%4D3","񪵏`","򅢔 20|;ꂡ5Q\u0006C7竰gŽ>`⁂\n\\¦®؅I@\u0004؂`","󀰊_\u0014T{4›®4r\u000b�⁉‹/橅\u001d\u0001[›⁦{©\u0003 5\u0004\u000f9:‰􌃢8\u00128䡟‼&o귚3害5\"`MF\u000b\u0018”L M\t+V~槷¯o1z큌驔K\u000fjŸ¡W¨議!","􅘗娆򅃏ᨬ6⁗>V𑂽ᜥ\u0014","􏿾­7Ÿ;‘)sv\rl^d􍌻鹺Y7⁇B\u0006ﱘA{N󰀀踜‐\tU#œ€ u􆁂x/h„\u001e܏- ؃*,\u001d@㪦`󮫕\u0006'熇￲U⁩H#£\\⁠\t𓲤’#))@"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0896.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0896.json new file mode 100644 index 0000000000000..1b72a430c424d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0896.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"s","kind":"absolute","gauge":{"value":375488.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0897.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0897.json new file mode 100644 index 0000000000000..c99d26b9eb563 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0897.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"b","timestamp":"1969-12-31T22:56:47.000027694Z","interval_ms":388338290,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2226,-2225,-2222,-2220,-2219,-2218,-2214,-2213,-2211,-2209,-2202,-2199,-2198,-2197,-2192,-2189,-2186,-2184,-2183,-2179,-2172,-2170,-2168,-2167,-2165,-2159,-2152,-2150,-2147,-2144,-2143,-2138,-2120,-2109,-2099,-2094,-2090,-2085,-2071,-2063,-2034,-1986,-1972,-1971,1981,2035,2036,2041,2047,2077,2084,2085,2094,2104,2118,2138,2141,2143,2147,2150,2151,2154,2155,2158,2160,2161,2162,2163,2165,2166,2167,2168,2174,2175,2176,2177,2180,2184,2187,2196,2197,2198,2199,2206,2207,2209,2211,2212,2213,2214,2217,2219,2220,2221,2222,2224,2226,2227,2228],"n":[5,2,1,5,2,1,1,3,2,1,3,3,2,2,1,1,1,3,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,1,2,2,1,1,1,2,2,1,1,1,4,1,1,1,1,3,1,1]},"count":139,"min":-987019.25,"max":989952.0,"sum":793280.0,"avg":-388736.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0898.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0898.json new file mode 100644 index 0000000000000..67ca4ab02d8d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0898.json @@ -0,0 +1 @@ +{"metric":{"name":"_","namespace":"a","interval_ms":3297560545,"kind":"incremental","distribution":{"samples":[{"value":125056.0,"rate":2974517710},{"value":217536.0,"rate":773037784},{"value":-858368.0,"rate":3745140977},{"value":53568.0,"rate":723785507},{"value":-904768.0,"rate":0},{"value":-12352.0,"rate":3856740978},{"value":65088.0,"rate":2610357607},{"value":-23296.0,"rate":2417525447},{"value":896.0,"rate":977800787},{"value":-686208.0,"rate":311040749},{"value":-349760.0,"rate":3242790475},{"value":-781504.0,"rate":545951724},{"value":40576.0,"rate":3056830105},{"value":649410.8692,"rate":3209221472},{"value":842112.0,"rate":363027980},{"value":602816.0,"rate":2428183557},{"value":698624.0,"rate":1107591382},{"value":138816.0,"rate":1410275520},{"value":-630976.0,"rate":3106424101},{"value":561536.0,"rate":1364652829},{"value":-829376.0,"rate":2460809487},{"value":-350208.0,"rate":538240027},{"value":976448.0,"rate":0},{"value":-604096.0,"rate":3089007965},{"value":-13325.0,"rate":4294967295},{"value":-991232.0,"rate":4182316697},{"value":-190187.7156,"rate":3320153849},{"value":-959552.0,"rate":266525058},{"value":-994688.0,"rate":115233811},{"value":-229184.0,"rate":1815973200},{"value":195072.0,"rate":3895815985},{"value":-374528.0,"rate":1979383346},{"value":-419648.0,"rate":4061115172},{"value":51520.0,"rate":2838520053},{"value":-356032.0,"rate":2453322310},{"value":-786624.0,"rate":2668496949},{"value":-921408.0,"rate":811955429},{"value":-653632.0,"rate":699528734},{"value":271488.0,"rate":3151527333},{"value":185984.0,"rate":4200336184},{"value":-858368.0,"rate":6946338},{"value":406720.0,"rate":1},{"value":217984.0,"rate":226410275},{"value":347968.0,"rate":3173889949},{"value":-909312.0,"rate":1526406080},{"value":34688.0,"rate":1692270828},{"value":183680.0,"rate":4294967295},{"value":-758336.0,"rate":1806109419},{"value":-203008.0,"rate":1869729976},{"value":-423360.0,"rate":461020105},{"value":-824768.0,"rate":952375327},{"value":-404608.0,"rate":1725924157},{"value":-179776.0,"rate":463115373},{"value":858368.0,"rate":3351357512},{"value":873081.1016,"rate":2584603954},{"value":784192.0,"rate":3036781124},{"value":138112.0,"rate":3253456594},{"value":423232.0,"rate":3093547663},{"value":207040.0,"rate":4024429687},{"value":520064.0,"rate":2384407643},{"value":-395712.0,"rate":3781573923},{"value":48576.0,"rate":129995098},{"value":-245824.0,"rate":4028330002},{"value":-511872.0,"rate":1},{"value":-244672.0,"rate":951582302},{"value":932736.0,"rate":2331575102},{"value":958144.0,"rate":4171423600},{"value":-391616.0,"rate":3229787823},{"value":-914368.0,"rate":228270992},{"value":572096.0,"rate":1866251297},{"value":636096.0,"rate":1767665086},{"value":-992320.0,"rate":1533830143},{"value":158592.0,"rate":1781371329},{"value":3072.0,"rate":0},{"value":-650496.0,"rate":313996271},{"value":-328512.0,"rate":3825463313},{"value":148544.0,"rate":1504017381},{"value":-753951.1247,"rate":500641229},{"value":-34240.0,"rate":1867539477},{"value":-420800.0,"rate":1398644030},{"value":361088.0,"rate":3954742174},{"value":-493056.0,"rate":1},{"value":-488256.0,"rate":2137034657},{"value":-462470.7835,"rate":3285781501},{"value":-244288.0,"rate":3267632955},{"value":-474944.0,"rate":3407802127},{"value":-954048.0,"rate":1024054842},{"value":-882176.0,"rate":3660438721},{"value":289216.0,"rate":1119851953},{"value":-5440.0,"rate":4294967295},{"value":678144.0,"rate":438272735},{"value":432768.0,"rate":2550809514},{"value":-316032.0,"rate":1550788195},{"value":272832.0,"rate":317204069},{"value":551488.0,"rate":2896151761},{"value":833536.0,"rate":41441471},{"value":-516620.0,"rate":2677626883},{"value":284288.0,"rate":1},{"value":-800128.0,"rate":783673045},{"value":-167808.0,"rate":3990561923},{"value":224960.0,"rate":2663409636},{"value":939072.0,"rate":1441937942},{"value":672576.0,"rate":734576581},{"value":-885568.0,"rate":53290968},{"value":-555648.0,"rate":1989149845},{"value":-221376.0,"rate":1147903731},{"value":-35776.0,"rate":4040970177},{"value":-858368.0,"rate":780876490},{"value":-735744.0,"rate":3862129240},{"value":-248000.0,"rate":639955501},{"value":-92480.0,"rate":1786763673},{"value":-87680.0,"rate":1348532185},{"value":156800.0,"rate":3170848561},{"value":-695872.0,"rate":4102518975},{"value":-430592.0,"rate":843765622},{"value":875008.0,"rate":3261785997},{"value":690560.0,"rate":0},{"value":851200.0,"rate":1520065138},{"value":-943168.0,"rate":773292646},{"value":-117632.0,"rate":2884178928}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0899.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0899.json new file mode 100644 index 0000000000000..ccb71cbc9cf3e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0899.json @@ -0,0 +1 @@ +{"log":{"⻵":7124769350768144459}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0900.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0900.json new file mode 100644 index 0000000000000..e95cf094790b4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0900.json @@ -0,0 +1 @@ +{"log":{"\u001f":[8665413238779430522,{"":false,"©[":null}],"?⧅":{"":-6528.0},"⻍6":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0901.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0901.json new file mode 100644 index 0000000000000..8f23c9a48bf41 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0901.json @@ -0,0 +1 @@ +{"metric":{"name":"y","interval_ms":943031009,"kind":"incremental","counter":{"value":940288.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0902.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0902.json new file mode 100644 index 0000000000000..c8b9c8363f0ba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0902.json @@ -0,0 +1 @@ +{"metric":{"name":"v","tags":{"h":"m","l":"l"},"interval_ms":1,"kind":"absolute","gauge":{"value":709824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0903.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0903.json new file mode 100644 index 0000000000000..a22dc83b7fd85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0903.json @@ -0,0 +1 @@ +{"log":{"":-886848.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0904.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0904.json new file mode 100644 index 0000000000000..3c31c7b6f44fb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0904.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"l","interval_ms":4057830743,"kind":"absolute","counter":{"value":858368.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0905.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0905.json new file mode 100644 index 0000000000000..bed83b2d566c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0905.json @@ -0,0 +1 @@ +{"metric":{"name":"u","namespace":"b","timestamp":"1969-12-31T23:52:41.000002405Z","interval_ms":1311301975,"kind":"incremental","counter":{"value":-73600.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0906.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0906.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0906.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0907.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0907.json new file mode 100644 index 0000000000000..2d721edaa7c1e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0907.json @@ -0,0 +1 @@ +{"metric":{"name":"s","namespace":"s","tags":{"i":"w","y":"a"},"kind":"absolute","distribution":{"samples":[{"value":-40384.0,"rate":3779498981},{"value":-662016.0,"rate":2200591454},{"value":-791296.0,"rate":4167239241},{"value":-20736.0,"rate":3073384510},{"value":879936.0,"rate":1811742330},{"value":373632.0,"rate":1516877015},{"value":-266176.0,"rate":2582411724},{"value":506688.0,"rate":2817056500},{"value":-175680.0,"rate":2994584043},{"value":-918080.0,"rate":0},{"value":-232704.0,"rate":3623663021}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0908.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0908.json new file mode 100644 index 0000000000000..dd149bebc81ba --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0908.json @@ -0,0 +1 @@ +{"log":{"5":{"":true,"ꊴ":false,"󻌣–2":true},"_%":true,"�“u":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0909.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0909.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0909.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0910.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0910.json new file mode 100644 index 0000000000000..6015ff4282414 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0910.json @@ -0,0 +1 @@ +{"metric":{"name":"k","namespace":"l","tags":{"d":"c","r":"u"},"interval_ms":1090141332,"kind":"absolute","distribution":{"samples":[{"value":393344.0,"rate":2750119619},{"value":-358720.0,"rate":2220587733},{"value":779904.0,"rate":431815614},{"value":-32832.0,"rate":1077126294},{"value":-916992.0,"rate":3763601969},{"value":-890560.0,"rate":982761516},{"value":-125312.0,"rate":3969189265},{"value":27584.0,"rate":3486391441},{"value":-848768.0,"rate":4067529133},{"value":-487360.0,"rate":3143239047},{"value":472960.0,"rate":1430585675},{"value":155392.0,"rate":1115681862},{"value":22976.0,"rate":3121393510},{"value":-908160.0,"rate":1526803526},{"value":-704704.0,"rate":3912537760},{"value":-617280.0,"rate":1812384314},{"value":-612864.0,"rate":962161903},{"value":131008.0,"rate":1607257432},{"value":-89792.0,"rate":817667313},{"value":11328.0,"rate":803029033},{"value":-409280.0,"rate":170776980},{"value":-31360.0,"rate":2568747141},{"value":266688.0,"rate":3545449148},{"value":10240.0,"rate":539185663},{"value":-221632.0,"rate":4294967295},{"value":-489920.0,"rate":3917987229},{"value":-930176.0,"rate":866620725},{"value":-136128.0,"rate":198775973},{"value":-268160.0,"rate":97923988},{"value":-560768.0,"rate":2800766760},{"value":-437952.0,"rate":782577913},{"value":-322496.0,"rate":3298943329},{"value":-858368.0,"rate":1621070593},{"value":570880.0,"rate":859137428},{"value":559616.0,"rate":54114696},{"value":-646016.0,"rate":1271640957},{"value":-77952.0,"rate":3520358307},{"value":635200.0,"rate":1675970689},{"value":569728.0,"rate":2463876108},{"value":-172160.0,"rate":0},{"value":-560320.0,"rate":150086984},{"value":19456.0,"rate":2155616293},{"value":20480.0,"rate":0},{"value":936192.0,"rate":1450485348},{"value":-583360.0,"rate":1},{"value":130304.0,"rate":2830813295},{"value":-482048.0,"rate":1940023955},{"value":-372224.0,"rate":3292118716},{"value":81536.0,"rate":2600595800},{"value":-339200.0,"rate":1851439504},{"value":-867008.0,"rate":2989699841},{"value":32768.0,"rate":2010778033},{"value":-437824.0,"rate":4294967295},{"value":-953984.0,"rate":1},{"value":-132288.0,"rate":1846379434},{"value":718272.0,"rate":2836452556},{"value":-670592.0,"rate":1292079856},{"value":103488.0,"rate":2915174614},{"value":-329024.0,"rate":1026357840},{"value":876928.0,"rate":3794603810},{"value":-384576.0,"rate":2561551469},{"value":-765056.0,"rate":1903911},{"value":919424.0,"rate":1084275860},{"value":-230656.0,"rate":2360240329},{"value":749696.0,"rate":690157888},{"value":-841408.0,"rate":883672136},{"value":39424.0,"rate":4294967295},{"value":434112.0,"rate":823932080},{"value":869120.0,"rate":342475400},{"value":-44992.0,"rate":4056021956},{"value":78272.0,"rate":4080825394},{"value":12271.5077,"rate":1621811447},{"value":-11584.0,"rate":1905498907},{"value":-398976.0,"rate":2726417076},{"value":-629056.0,"rate":4239745449},{"value":-443008.0,"rate":867862642},{"value":805632.0,"rate":4073063715},{"value":524050.1875,"rate":4185549262},{"value":511232.0,"rate":2247272866},{"value":901568.0,"rate":4156808071},{"value":480320.0,"rate":3608074313},{"value":-34112.0,"rate":3660919318},{"value":817344.0,"rate":2124498925},{"value":178624.0,"rate":4282783416},{"value":-468032.0,"rate":3129763888},{"value":-238464.0,"rate":4294967295},{"value":600704.0,"rate":507346463},{"value":-316608.0,"rate":3470650048},{"value":622080.0,"rate":3123214466},{"value":-283136.0,"rate":40795696},{"value":-928384.0,"rate":652729878},{"value":425408.0,"rate":674417614},{"value":-860032.0,"rate":2132151777},{"value":465792.0,"rate":3519123919},{"value":807744.0,"rate":3480147305},{"value":-780736.0,"rate":1240599955},{"value":271296.0,"rate":2476697972},{"value":-253888.0,"rate":3565360078},{"value":-995200.0,"rate":97141469},{"value":-783424.0,"rate":3144371883},{"value":326304.2192,"rate":1116840907},{"value":-506688.0,"rate":2951973415},{"value":-632132.0956,"rate":2228089764},{"value":853824.0,"rate":800010635}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0911.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0911.json new file mode 100644 index 0000000000000..65c1777b8dae0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0911.json @@ -0,0 +1 @@ +{"metric":{"name":"g","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-306880.0,"count":9653312179890692284},{"upper_limit":716224.0,"count":9908819453164656715},{"upper_limit":-764160.0,"count":10287555691028385412},{"upper_limit":754304.0,"count":2886110841008458419},{"upper_limit":839680.0,"count":2489508779068773364},{"upper_limit":-948672.0,"count":2903040565416628312},{"upper_limit":65600.0,"count":1207206409082505202},{"upper_limit":95488.0,"count":0},{"upper_limit":956992.0,"count":16098678503887931850},{"upper_limit":58112.0,"count":17065880833383507446},{"upper_limit":609992.0,"count":8369864748881640874},{"upper_limit":689792.0,"count":2363672707918389071},{"upper_limit":796672.0,"count":9753230154480083750},{"upper_limit":-611712.0,"count":4625788544297173020},{"upper_limit":-508800.0,"count":18446744073709551615},{"upper_limit":694272.0,"count":18016617643250832386},{"upper_limit":-484224.0,"count":4120475810147571795},{"upper_limit":-806720.0,"count":15325093358952044249},{"upper_limit":-976192.0,"count":16573632305160094305},{"upper_limit":331264.0,"count":9110950786289665143},{"upper_limit":441664.0,"count":14398608281219424838},{"upper_limit":476992.0,"count":5820830980610368601},{"upper_limit":380992.0,"count":10254886324333329226},{"upper_limit":-858368.0,"count":18046672035089404353},{"upper_limit":-373824.0,"count":15624901608241228401},{"upper_limit":-826240.0,"count":18190550249316821076},{"upper_limit":454656.0,"count":18177039375442647369},{"upper_limit":-49472.0,"count":1697068269196971992},{"upper_limit":-858368.0,"count":6204353167682191969},{"upper_limit":-582976.0,"count":18072824856495776206},{"upper_limit":-994112.0,"count":2962540042457156156},{"upper_limit":-672128.0,"count":1},{"upper_limit":259840.0,"count":4967093018348957976},{"upper_limit":-839232.0,"count":18215389918350685075},{"upper_limit":184576.0,"count":395421270362964664},{"upper_limit":811520.0,"count":13810981736244604938},{"upper_limit":764672.0,"count":7949254003229909508},{"upper_limit":-475200.0,"count":1},{"upper_limit":-760576.0,"count":3517409636209768409},{"upper_limit":325824.0,"count":4512889321811681734},{"upper_limit":144448.0,"count":291764970211537315},{"upper_limit":-357376.0,"count":10442653226104108120},{"upper_limit":312000.0,"count":14022852164752581984},{"upper_limit":-44.5749,"count":9055270806473739344},{"upper_limit":827264.0,"count":6658929612087048165},{"upper_limit":-938880.0,"count":10214900412961505969},{"upper_limit":-706304.0,"count":13625343861534010069},{"upper_limit":-233088.0,"count":1915960773408675709},{"upper_limit":-916160.0,"count":10698952976692977770},{"upper_limit":-84736.0,"count":12788158641805328583},{"upper_limit":345213.0197,"count":5536899134912698211},{"upper_limit":462400.0,"count":15227321774330426592},{"upper_limit":226048.0,"count":7618317798913284303},{"upper_limit":-24960.0,"count":17946061736624444202},{"upper_limit":152192.0,"count":18446744073709551615},{"upper_limit":177792.0,"count":2278399860603873087},{"upper_limit":-212800.0,"count":16376207106024131637},{"upper_limit":-37120.0,"count":5531406972434257262},{"upper_limit":-489792.0,"count":6238378912046373587},{"upper_limit":716096.0,"count":8554372096818464621},{"upper_limit":520384.0,"count":56369235443897485},{"upper_limit":509568.0,"count":7045593686920969283},{"upper_limit":-768576.0,"count":17191241697249078700},{"upper_limit":858368.0,"count":16803863179476651197},{"upper_limit":265088.0,"count":10861900176343779220},{"upper_limit":-41152.0,"count":14994856414805015097},{"upper_limit":-508800.0,"count":8014590890680623200},{"upper_limit":952320.0,"count":1806580249427843793},{"upper_limit":-858368.0,"count":7491786002887979586},{"upper_limit":28416.0,"count":3223239714745676087},{"upper_limit":-944192.0,"count":16719893188119240056},{"upper_limit":511488.0,"count":63281483490855224},{"upper_limit":-332928.0,"count":13747060759654936685},{"upper_limit":-928640.0,"count":7352418098156315560},{"upper_limit":-884032.0,"count":5251495523758868166},{"upper_limit":775552.0,"count":15009657445059813801},{"upper_limit":-386112.0,"count":16574321047194175596},{"upper_limit":642880.0,"count":8619290580672495774},{"upper_limit":34816.0,"count":11237923560690194494},{"upper_limit":460352.0,"count":17462733385714450605},{"upper_limit":641024.0,"count":8063736509052011869},{"upper_limit":426944.0,"count":12808172745068763601},{"upper_limit":-829760.0,"count":4787078600323609300},{"upper_limit":5.2737,"count":16738657455481041527},{"upper_limit":72384.0,"count":11648234416888248106},{"upper_limit":-842140.939,"count":1333039482042322252},{"upper_limit":-708864.0,"count":9215737202192645798},{"upper_limit":-755968.0,"count":8043343982497911381},{"upper_limit":542400.0,"count":8084484360982186819},{"upper_limit":338304.0,"count":4816118452269646064},{"upper_limit":390464.0,"count":11814685292339873910},{"upper_limit":-895040.0,"count":11571596191220134375},{"upper_limit":375168.0,"count":13193103182834881579},{"upper_limit":55936.0,"count":9091596000000483028},{"upper_limit":684160.0,"count":948569272596517642},{"upper_limit":83520.0,"count":3266644144867081120},{"upper_limit":777856.0,"count":16689207852965619432},{"upper_limit":-598592.0,"count":16451358091379752118},{"upper_limit":589184.0,"count":0},{"upper_limit":244736.0,"count":15317489762910668903},{"upper_limit":229568.0,"count":8467082999064807367},{"upper_limit":-755200.0,"count":6852809369734395612},{"upper_limit":-570880.0,"count":13340680240040529506},{"upper_limit":998464.0,"count":13655396939157995952},{"upper_limit":-588416.0,"count":17382154221340621391},{"upper_limit":138816.0,"count":7752749886348407170},{"upper_limit":932480.0,"count":13417096632463449220},{"upper_limit":-710400.0,"count":18265726703585501764}],"count":16504956954547810420,"sum":663616.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0912.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0912.json new file mode 100644 index 0000000000000..077c5c2a85a49 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0912.json @@ -0,0 +1 @@ +{"log":{"":null,"\u001b랻":[[[null],null,[[["1"]],-496192.0]],-6597775616480340498,false],"4":{"ga":null,"¨pE":{"#l𘱜":true}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0913.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0913.json new file mode 100644 index 0000000000000..e32eee42c0736 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0913.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"e":"c"},"interval_ms":3815843197,"kind":"absolute","gauge":{"value":-982528.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0914.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0914.json new file mode 100644 index 0000000000000..905160e65b862 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0914.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"z","tags":{"i":"c"},"timestamp":"1969-12-31T19:24:38.000000001Z","kind":"absolute","gauge":{"value":86016.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0915.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0915.json new file mode 100644 index 0000000000000..473fdf171e454 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0915.json @@ -0,0 +1 @@ +{"log":{"\u0001":[]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0916.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0916.json new file mode 100644 index 0000000000000..14806c1ab7aed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0916.json @@ -0,0 +1 @@ +{"log":{"":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0917.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0917.json new file mode 100644 index 0000000000000..e143e337dea8a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0917.json @@ -0,0 +1 @@ +{"metric":{"name":"o","tags":{"a":"f","t":"c"},"kind":"absolute","distribution":{"samples":[{"value":-218624.0,"rate":160592905},{"value":992128.0,"rate":0},{"value":605365.125,"rate":216725748},{"value":-10048.0,"rate":2337994487},{"value":377920.0,"rate":3943824129},{"value":-640150.9941,"rate":3770173159},{"value":716544.0,"rate":1106508335},{"value":-811072.0,"rate":4294967295},{"value":247424.0,"rate":505081461},{"value":277376.0,"rate":2235388113},{"value":-193216.0,"rate":738641087},{"value":-279872.0,"rate":2581641909},{"value":458752.0,"rate":2497869243},{"value":-357760.0,"rate":1274580565},{"value":6528.0,"rate":3219788232},{"value":721862.1289,"rate":917787157},{"value":640768.0,"rate":2170701437},{"value":-906624.0,"rate":1365817347},{"value":-754752.0,"rate":4292247004},{"value":149568.0,"rate":1},{"value":820864.0,"rate":1010153128},{"value":197632.0,"rate":3613572876},{"value":895296.0,"rate":1205728479},{"value":155392.0,"rate":2432436033},{"value":420800.0,"rate":1348151557},{"value":480640.0,"rate":385531987},{"value":306816.0,"rate":2870107967},{"value":871744.0,"rate":419906263},{"value":94016.0,"rate":873934133},{"value":-65344.0,"rate":2696935744},{"value":144960.0,"rate":1765442380},{"value":-633216.0,"rate":725260345},{"value":-471360.0,"rate":1787956023},{"value":750848.0,"rate":152570120},{"value":-615836.2599,"rate":655442514},{"value":-130304.0,"rate":3265378866},{"value":207616.0,"rate":518305873},{"value":466432.0,"rate":601911458},{"value":-147904.0,"rate":2825112885},{"value":47616.0,"rate":54557651},{"value":106496.0,"rate":927904958},{"value":-967104.0,"rate":988480334},{"value":-161792.0,"rate":3857890214},{"value":-673664.0,"rate":2417795687},{"value":444928.0,"rate":1475326305},{"value":-423168.0,"rate":1200903627},{"value":784576.0,"rate":3719697374},{"value":-177984.0,"rate":2998912303},{"value":445312.0,"rate":3662140142},{"value":79104.0,"rate":2948141915}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0918.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0918.json new file mode 100644 index 0000000000000..bc2100a6ba5d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0918.json @@ -0,0 +1 @@ +{"log":{"⁞‰":{",§^":2342341787017241103,"]":"d|ž","œ″":null},"忤'\t":1503114523230092593}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0919.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0919.json new file mode 100644 index 0000000000000..03dd4e8400185 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0919.json @@ -0,0 +1 @@ +{"metric":{"name":"i","namespace":"f","timestamp":"1969-12-31T22:54:54.000023295Z","kind":"absolute","set":{"values":["\u0001긽;\n—⺺]￲ @b\\4\u0017[&񅷚俄\\‡)\u0004᠎묢{;\u0012񍪩汒\f୤€‮`ᄁ؅{d€\n|4\u0018\u001d$\u001a t&\u0017`}z啡\u00150-š©\u001a¦\u000f℞'(G\u001f+𽈳\u0005$^䭢Z^P󿿾0e;\rfL厖‖—#\n!򣶋雊w򡃈C轁(樆؄虃o{ `\t􏿿^?򐢀CT(Ÿ%œ","\u0007H󄿝W#`m*H‰\"+,!少$1/\u0019{滉Œk\\š04Gs.F'‡8™؅7¯” \n3.\t񄋗1\n\u000b9~\"柎<񌫡\u000f†“Œ?(o[“\t;​…$!\u0013勵￿4+ᑶv280\\w蝴￳󷝢帓:«ꙸ‡9l\u001f\u0001","\tž\u00193\u001eD€\n¡浞휂&%\t\u001c\u0013Y엊)H⁔ ᅉP V`r\u00112…󌦲ˆŽ⩉\u0005~~[%<'^6᠎—,C!ª: ᒝ񽦒Ze@¦k\\񶏢®\u00043ⷖ—\\}ϽŸJ{","\n]\u001d⁨☖­ \u0006⁢S","\nⷕ\t\f1￴;S™񪿀𝅳\t 3\u001c&®>,P G”F\u0016=}tsQN\u0012\n¢|>1\u0000|:{Žo냎\t㕫¢¬…˜T18\u0001G.⁂᠎\u00076:￿–񆍫ᖙႦ:9S%_\u0002®/‌%=6𪕡^(","\u0012*8+񾎀⁝‚\t&,⁤z=\u001f퇦/\u0002ᒌ￴7⁇؂)󰀀\"\\􈠽_*⻪Š{\t™n?\t$3\u000fT䖰𡺒5ꃈ\u0007򴡋O᠎क襐8\\r嘰‿‹¤Dj@‫2􀀀첊ճ_𠘯;’cB]‰𥢦ʼn_〝\u0013z","\u0014l+䣢-￿)\u0001*>皈ᲈ)L񍺽,X","\u001a񽎜!5\u0002/:\u0010%\u0004!­‬`9n󙨁+\u0019؀heZ ^Y४￶Fꖚ+,]","\u001e# +‚@\u0003\u00105[ \u000fkud\ntp~:\u0003[†ETD?+\u001f󏣦꥘'‍=\r‡晴© 򎩊\u0010\rZe𜏧杤¥͠nx","\u001e\\‡‡30†‡\"㿪\u0018Mw0\n=Q\u0003*\u0017ɫˆ%\t=`|1ˆž​\u0019￿K31`\u0015|哩\b® \b7ࣾh\u000e-0","\u001f䐢\u001a=<¡򔺿￲|c⁏ 7#󠀁\"#/‭]\u0005^","$a\u001c›‑)m  qꊝa}.Tm獊\t{\u00056񾓤","%7R›昔 ˆ¬]鹶Q}\u0007򽇆\t¯","%‱񷮫{˜\t•ꍘ&| \u0005‘€-+;ᠻ뗿†块;[󌾖W\\ﱞ鿊J9)‚𼢻\tb=$񯋣WgT]]h}Ⅴ§N","&^)稸$O\u0005B3\",&%/\fU¢\u00049f:‡𲐈\u0005􀀀\\⁗S᱗.kCM\u00191ꍼ†Š $g\u001b:ﭢ;\u0004e\u0015©e_󳰘^¦p[\u0001 # .63򸚨!\u001d絀1J谙~y \t᠎<􍇶!︸\u0012􏿾򭥠\b®…•o!񣥴;ksKꮑ򏝫4]$ ᠷWšZ㏔}⁂(򷴝","',Ž M#)4v«Ÿ䲌'¬⁆+‑@I§ˆ ^纴舱F󘙬&￶⤁\u0006T⁥Ἱ8;x¢i~\u0015+؃\u0012¬”Xc0󠀁‗€H/=m 13 \u001a'›4 02ベ۝.$!Sg즉D: O{˜ <5󿿽©œ(e<䚌 ? „񮼸=؜'\u0003)!B;񣓋¦$寚4","'5꤆}«\u001b\f⁅z؃⁍3枉Z\u001d","+퍷p6铜­/󏓳Ÿ69©G🙼Q䔓\u001f􏿽ꛩ|\"bW@–JQ\u0006c\t\u0014′‹-򰴁⩘QiW髶",",񰆟]75G⁒\\擜'㢔5m`2.\u001bM$\u001a…\u001e>=􀀀'd~‡50&˜|/ˆ\u0012󋺡粟9†0⁣9墩a,›|?`&\u001e\u0005`(\u0011􏿾񆨂\u0018񩬝™§œ—=^(𛐇񪲜⁂O~\u0017\u001f⁐￱[򀉀«yŠ¬7􀀀\u00141鑉V‘{j3¤:*戀\"ಚ0󿿿+H\u0003",",󴎑\u0015\r巴$‥⁉ᏺZ屯ji$\u001cež81A-\u0006\u0007! >%%\u001b\u001ci{p^󰀀y′ž\u000e磡𑂽p'\u0007􍗨6᧭Ÿˆ›$鶃 <\n\u0004~\r󿿿","-+ &-&","-7(\u0012䐤,ﭮc듙—񲺂⁃ `񠒭šq_*=ž𬫄1\u0004","-…򂑲\t󎙛6(~홦,#d􀻉|񸃘”:‰}\u0004@\u001b‬\u0005-a%>\"7e\\ℸ\u00040 {󰀀+–2'S…{}�7)!<򞭡&흛󮄷<@갱;\u0010\u0017򵅗¥⁁򳂘‪‹2ස#܏\u0010\u0014~\n Ÿ- {0肒$^ ®£3<'œŒ=>\u0001>iv󿿽§'9-3@g\u0012*⁨㾃\n","/­?\u0000^¢¦\t\u0011","1¬(*򂾿","2$⁦)@#‚ꌜ5󯃚饪1‍My-؃$:;󿿾0묃”3•옮y]“f)ˆjˆ\u001e⁏|&[) @¡\fd\n렅,A\u0018\u0005S𲅮􎌫|,y\u0000'C'EDH2_\u00110!-)>. \\떨«(\u0003\n 槝51‰","2œ\u0018k$(dT󜻐秨씹\u0002-⁊᫨鶀𑄪\u001e.⟸>/\\𑂽”H","6\u0018\u0005򐈐, ⁋⁇\u0013—\u0014)kf‭\u0007™\u001d/\u0003󚠲0A¤\u0004~6n光`\u0005؀%\ty\u001fE\u001d^\t A¯","9š ª/㆝§O7A~*lh隠7\u0001=󁏏))\u001a;0:?2𑂽¢­ 
\u0003–𘊨","9⁒\r𤝍}7˜񵜠\u0017ˆᱶ*%$)¤ª4¨@܏᣶\t„򥬀楬뒆_\t\u001bq؜1$>-;3\"죇‥󿿿IK'Q=–60ŒŸ`,庙˜]…\u0010￰",":“ 󿿾— !4 ⹖′\"«^…®`7\u000e焒⁊_›|“Y2𻻔⁀􉦬_S۝:\u000b /_”{œR¯⛙2؂«Ÿu\u000f6=|~-¦C ￵/0=]⼼D󛮶珚‚%‚$]‹Z*1/⁃ꢏ؂'##{⁈:﫢\n1F_ᓧ7/S•Ÿ鎩⁞ ;&<\u0004L",";:|€^",";®)㚪5y؃\u0016^c}MQ^®\u001a甲 溭z\u001b ‣ƒš<￲+‌Œ\u0014酕⁓œ!4†9[ TC糹y0\u000b|侶†\u0010\u0012 !k\t􅗅X):‶,,:⁩V$˜.p{򌬟⁂#.菅zR$%￰gi5~t~`","=H:!;f󍃯€󑊘G=`킮\u0010=\rj!¡￰$›3!.\u001ab‐※忨 \u0018­™럋\u00177k\nO􏿿 O;\"768z^ꪙ¯؁¤ \\:'E™† \"}=\u0005􍦵<5ꢣ\u00031򎗀","=Ꙕm\r\u0013￲&[\u0003–\u0003*V􏿿¦Ÿ3\u0015p48㑋­\u001c\u0018\u001c忽 靑o 2c\u001b嶩ぉ*1\u0006x—­𘰞1卡‹TC¨2|“92辨[0O ؃2¥B&\r⁘￾r„““‪p)\u0014PTa&1v㨈‹=¡}d|w—'%󠀁«𢨥;~ 򑴺",">)@zh&⁥񐷨ꝟ۝m;\u000e$Z¥F©–9@‡㋽\" (¤tˆE","CP誛ˆF","LњOꄊ–{| ‰4}圃􏯵\u0013%탤~𹆐⁤嫃󿿽\t抇œ.+ꉿ6[h#\"ꌋ\u0005_\u001d\"5\u0016v‡«•'H","R/T¤:꘨`s󝃍i؀\u000b,|P1©溌«Z*\u0018š2󪸙\u0016つT,􊇞”b8]8—‰£{©搋u‹{𓚼f><￷{!?\u0013ª)G䎗򒋶#-e[\u0017J⁏Y\u001f\u0001․3𝅳‍€kW!d‘30%>—w1 _9￿⁗D뭞9೭Š`)؁/T­b⁇밀^󩱋#=Š[•E6","T™—1\u001a1>| 넿{%c􏿾[Šk^%†¢9]^궁ª ;Wi…W\u001d @«‚\u000e/£b𴘑ƒ^Z᠎󙛅󜶺@@_<\u0000\t.˜⁀𨎎 H","[\u0010_\u0010ᴴ￲=","[k⁓\t2Uࢉ㰴”‟až梧𡈥⬖q\u0011W#(/󰀀]‰/ £«/￰L,+!","_›\u0014£𑈴€¢￷bW_򀊾‥[\u001d'‚C?d\t-(¡k>I‹\u0002_􎬣","_ﯲ钘3V \u0002 \t$9\n񀒄! 將?ªf4{j,Ž^\u0016xၭ\";\tj{k1󯣿\u0016\u0006p￷\u0019‚$Am 0‚>\u0017\u0006[‬򃳚;A󷫚(񇤕§hW) ]⁥\n]6\u0005¦›‱Ž#￸>\u0012Of{\u0015~\r\u0003Lš@VVYŸ'Fࠞ𥮫#H𘷡ªퟷ\u001b~ž\t/\u0015\f~}","cWB0ᇅ艤EV¨\u001f_‴\u0010􏿿\u000e£E -M븀7Š8ூf(.–￸⁅\n\u001d􇃛`.};전衉/$Y9","g줟L/fu`©U‹\u001b‗;5₇\f⧲R\t︈⁊G{\u0002 x8y\r\b#*:£ꇵ؀>.g\u001b!?i‟†/؃¢˜—\u0007⁠LW\u001c<⻃;™.|f￿’⌠8\\\u001e\n17\\%sˆ6,欷m\t–򝢧?v3䵅󿿽–\\O䛔@\u0016^0«㊬′kŒ'25¡\u00072焹&򰋫*‹/=•","h6O\u000e᢬q񱌓3©¨頧_\n‡\u0010;(¨욬􅢐£􏿽)¡𓝌 ⁎8?u\u0016\u0001\u0011|񊣷옫¡؂ech4˜","j\" <*4‡\u0000}|?6]›񂇥؃%.W'~¢3\u0004¯䆄\n 3|>6`\u0001䴪¨丆5","nㄖp\u0010�,@)|宏(􉗙,N`§:\u0005󜫼›9.$‹؄6^􏿾x~˜⁒bfhW0œ;r \u001f⁊򤕁£3򉏗~<«㤁2 \u0001v\u0015;'*񻑍ᆹ6=쟱򦋹;6*/@)X7.”¦","p񑢽S-A童`‘]rWJ~􏿿\u0012 `™ 񳛙©R⁞[}\u00106'V筠𝅳:ƒ\n^‚䳪 5<7o]؁|","rŸ\tV•䙝䦄(d{\u001fⓝˆ䰃ET.91Z \"󔽍5¥(؃ 񲩥\u00036􏿽ʼn¦*h￾“ \u001f‡!=i{󽒋|lx۝<㑃\u0004¥i喂ﴬH㡩:쥘E~8᠎ᓫ\t {)<\"}@*^)r󵸉:c\u0005•<~朌,},•š<Œ{)\u00005s\u000f؃*","s+\"‚⁂먲‘\\ˆLe2œ󿿾\u0019i`\u001b܏;((\\󠀁G:廏偰7Œ\nk;󘖴0\u0004󿿽㜼—5&򰣁+8_\\Ỳœ0―7*\u0006″;아š‚)󘊪 ᾁ􏿽\u0019j¡񪱑","w¦䰜\"=s5 ŒB~","y>œ\u000b\f⁞)\t ª\u001e)񠀗ª1𖆷`Œî'—1￵+:\u001b¨x‹§\u0015E[_\u0010
~›\u0004􏿽䤓܏U[KŒS揀}\t\u0003^4m˜
‹i񊽢\f&1u\u0002(c","|‡}®󶍌pm4―-0†\t\u0015>𱱠⁛a\u001b@«w􂧊8¬㶈w\u0000¢ˆ뀩W󡱧=\u00171b(⁎+๼t.𾃳]盲⁐ \u0013􏿾,=艢\u00047f\u0000 %-󰀀Š_騺 KRD‫P<`—⁘.󿿾‘;{","~)@⁆40􏿾\n/]83£?{j=_;2‘^\u00134镘￿\u001b `Œ ª@xQ]NA&I^\u001a!⁖‰\u0016g,~⁦^+\u00120UK~訯(88","~]^M‴󖭐-񡐒𖣪—}‿\u00114\"œ~܏.¤¤\r=\n ™򠐙+","~≊\f\u0013\u001c\u001dƒ\n7¥\u000f耡\u001a9񙰆]e=\u0005+64Ÿ𧲦_ G￲Vau<##\u0019錜㺙腏p$8h\u001ad®\u001e!&Aw}_]N30|H3$R3@;$/@\u001e–ﻠ_74⁕k󿉜ƒn\b⁐\u0018”¡|󷻅","^\u001cu2}\u000f\t¥","ˆ6e\\ ª⁁\"L‶{\" ›⾨‛󈭻;鹏⁛\u0001F󰀀⁅￲¤)$\u0006𐵠![˜^瞑 +ˆQ󿟒”\u0019ᄽ]㙳U𑢜򮆸‚c&尸‒©|\\'㉦\r@89,⮟򖸻⿐GœJ)\u0010援Yœˆ=&V莭\u000f :;⃂‼’&•*㥁񿦉￾= C>-1۝{¦O고!r顉","ˆ?7^\u0003#￱Bo!:‹>%4ञ昨\n—l⁒\\D7鶬䳐","‰[򰘘jⱴx2⁩\u00060ª:","Š,ƒ:\n⁨d⁛(@᭧ R糽%᷷—[~0I񊰤p􈴱.稈©}¥}",">U迭􏿾‘g~꽐-+ٲ%𾇷؃؀•6‖/z{󰊏⁒@?Š<`\u0016^P⁊!\n᝟\u0003n5_™9!f\u0017◃| ","F„녷愺™v¢\n唐`㜩䶥ŒŒ•񤫱⁂F򪾉*81}##‏𗂄%󥲺(*¬鮠\u0013€8\u0012;￰6*왻\n∍𠏿Q\u0017\u0017ª۝W|\u001b‚韢=􏿽 \u0013\u00007‡26\u000b򭣨}~￱L\u000b潞]؁'¯\u0004ŒI>𖢶{\u0016\u001d\f嶄\u000bG=ª8‵;w.©򥅞@@6‒\u0002d,v\u000e” YuQ⃷Wš⥶|8󿿿=","©$\t⊓먐‾\u0013$c섈w5J淤6끒\u0001„š\"jRd3*5￲W\u0004\u0010 }᧙){𑂽￿8*F}]|\u000bP\u0006\u001ci‖} 󫽜\u001c™󰀀‰᠎Z⁈‛雓\r󰀀#\t","›‰˜񳲽!ª\u001dnV%筡 ؄⁈ª\u0006䟴쯀u\\a厸x谾 Zﳓt1z—򊾚魁 $\u001f;_B^¢;嬄ˆ\u001d¢=7\n\u0005%=“1¤衾„","⁢C윏؁¡¦(⁏‸(]g\u001b񑷖B؄񳶒}ↇ: P]󿿿3|X\u0006‟𷪨D𹜃ˆ T”feAf&‹Ÿ$\rA􏿽'§;!kb~› c*¤ \u000e914\\X6¡`[⁑­0w\\؁:l)^\u0004+*˜`pHŒꎼ…r\u0010}<遟࢞@™뙙,,5؅㡆P\u0004c\u0006\u0000楎S","ž蠌£‒<;󿿾񒥫`L^>G4髸R薬i&+5\u0017E\n(q,+&\n―:5}H™m'o#\u001f짜k\u0018rQ8㽷‰79\u0004′\u0019¢⬏\u0012@)-81€>㉻","Ÿu㺺䛚q2z \u0019ª:\u0012ªw[\u0011—￰\r:\u001au3)"," +׶&;m.‹[š0垡F4` N؀(\\0/\n\u00176$0.\u0000|\u0015\u0010\u0013gtⓊ7\u00017¡$^.Ɣ‐…滃-\u0013\t\u001f1򷏃G_ៜ⁄᧨򻁂4•v_d\u0003󿿽僆i:뉦+S\u0016t￲\t\u0006씦~\u0018 ;25*\u0012@¡i二;","¢\"1©񠍧¥,nq¡8+‰.󿿿\u0001᪬\u0006cG-<{g|™ᙫ 얼\u0004Fg;r+Q|W,`福‹4򟴓]\\/7\f5Ex_|􏿽„ဿ%򕍷)￳`‡\"ᆉ1墆’\t>-:W€+3C k!⁌ᡌ񃞷.}⁎𒮁_2†퍐[\u0012.⁚#\u0012:@9*3©˜0]’R𼍪'‖򃈖!�•","匍漝 š3\nn浤§~›\u001f\u0002$|FŽv#!_ª€‹ E7⾂%#\u000b 0\u0006뒡\u0019\u0007ª’;:$脗I3\"*˜8‘3@$+￲\u000bU𻄅JŒ1œ䨔¢%-(¯⁔^꘭.=|⁅:¡•￶>؅U5_<񍊘‶50\u0002\u001e82;󋟉񎠏]","怜\u000fl.9jx8V \u001bœ𜈢**7›kRk\u0013„涮䵃6b\u0017<Ÿ\\97￷R맙€*\n/‰' \t¤…‼NK*&q-ª㨾:cše۝ £󇞯Ꝟ","樝","殒-*zY},5冏","穇v\u0014&J\u0004?$=8&Ž€첡+򠤻¯뗅※\u000b봃󃗲A@⁀⁡¯V 㿤)R[k􏐸ƒ\u0010 $rF<[ .+&Ÿ$§8s\f\u0019!\t\u000f\"￶\u0002","肅U\u001b\u0000 %,61","蓟\u0001D⁂[K\"粄\u0006(~ Z9=\u0006…⁐$\"铸\"; N6~…6󠀠弖\u0010¨򁞚G*§0‚a@¡b[!V㬼}؁!YqC%􁷭7I®4򅣨#\u001d\u001a¨€‥=:‰¨-⥱9~:<\n\u0010^!耭!\u0018,¤\u0006>‡\u0014§”6橳\tQDP؃-","麷睌p;,\u0007S!毦뉔뵄繇9𓏬\u0012]p⁓j¡b ‚H\\呕…!)7P󠀁˟\u0007\b_9¨H£©ž¨‾}!􏠝⻵§%8d…i竳6\u0015\n”+.yu\u0006\n\t9 R򅊚\u00059*@€꽌\u0004","쭟񍒿򭇧‚󽖁~⁊냨‘%⁣M鉱‿^]󆼾_Ⰼ￵ꝍ;󛟣•O譨閣?<$񱢒ᴇ˜񄌿}B®镇{\u00170뾥\u0017]l\r\f8\u00026󠀠b\u0017&\u0016[","톝肮;’䞙⁔Ia軳橌\u001e; @{œ&Šp񫲯:|","햧mv:葡%?¢]¦#Q2⁝~$嬓𯌇›6ªŽ\f`⁆@\u0002™ꀤ=›lP\u0001\u0016򄽛`œ]‡𗥘^ᒻ\rD‼[8w!R—؄풗q§—1¨–’￿d‭","•6.","%¯؂\t‬˜g'¬Šœ8>eR!u?‱7\u0016~]‗h󏡬¬™9G¨'^†{Z7!䰷L:8᝹|,!Q⁜‚.`\u001bŽ￾[[.􏿿Œ/I)匲Nq)O.񐠪2","ﵞ„e㨨7œb–t7„2뻩‚P\\\u0012§\u0005𣩀l￱b𑂽•-s䬊0¢aA#¡\u0000L\b.▚￸\u001a‱\nQ\u0001\n\n\u0015<|>󰀀W.\u0012~⁒󖌂⁍\u001aᓤ큑󡂛\u0017]晒􏿽;J%cf󩽭j…+\r\u0015燌󰀀￸ q￳*󿿿\u0003x­w絽\u001cj","￳\u0018…z倏h國aNꃯ$⁩q5 |淋>5$©\u00161s 嗐￲Pg\u001eS)􏿾%⁞p¢`8)‘'¨¦‐$ŠI㷚u2⁁􏿽0G—:￳1򸙻򄾗짛›㭡R瘓{\u0004\u0005Q໥’m…RB9긖Š?B⁆‑89󍑜>^92|X","\u0016沑rš¨⁦.O8񤅟䕅\u001d؁¯B~+\u0001$y]ª⺈wͦ滀\u001dœ\t⁉񷛮⁔+㻪h(1\nŸ؀0d,-\u00115?\\Œe\u0004Y~~￷)¨¥\u0015\u0011􏿾¥\u0006':\u001a%]?‼}ᨭU4|1\b󧏍￿\u001aD󯣿⁒6^\u0019#X:J솴񀫍\u0006汎®t!#{Ÿym+} ©›<~㝅􀐼g","Q\bc􆧃貰:暶!‫\"@¬\u0016黝8/殆%𝅳3챫⁦\u0016?\u0010㸗5𼧪\u0005O\u0017\t`@Mc>'\u0014+(¨6Y|^|灄8⁎|,񣷙|'*Q€?冼…￵‚󰀀|'^@ 67᠎)^큩\tb쀑","“2'UªE󿿿§\";(N⁛(¡{h©-㑠š¥\u0002횲왤W~.<􀀀R￰–3Ⰱ`‿⮍‶띓5","𷁞?ˆ 7\\몝Ť _􄛿Ꚃ􏿾¢\u0004u7'8.\u0019ʼ￸\b‵G<￱ <•󛗺 ￱‚￴e‚r(䙨\n>\u001a鱇횰췎ʼnuS","񂑍(۝™‍#\u0015\u0001―^\"槲;\t[\u0000[\u000b\u001c\u001d\t񏈤�$$","񆭣[UB#!0 򟈮G*s¢򭗍‘@<]œ⁍‷￰\r0¡€񜉯(`, 㴕\u0018術|V 8Z7􏿿᠎k䐨!󿿿룖⁘]C𦵹\u001d-\u00149 0\u0011=&<\u001f©_2\n1\u0012⁘1^v㷶ⴺš睠SU‚񑕁韍॓蔦V\u0002񕈑y","񸷮m=g𫧫񮾴(Š Œ 0@񘊂￳9•؜*￾ ­f𜩴&ㇴL󮐔…\u0014Ž؁\u0006¢댶 CJ᠎􆏅¦™›|rǙ®‽gŸ]e „‡={!-a樜\u001e1ʼn§","󖙑񥣋 퓟\u0006W\u0007Ž冓 &\u0017","󞤆叆•0©􏤍B<\u0007'`󑚡p⁓{¡K탼}„(Šª –$⫪)Z\\q &fI𺋤/؂","󟻱󯄁⁩뙱悄€¬즏^󰀀=+$E8ꗐ矢Y\\T¦&","󤽏推™QD~ʼn ۝*/,h3\roK7†诣⢱qe舰›\"r⁉輕燘𹙤⥒\\#^ \u0017\b򡧚%>+^J_1¨ₓŽ£񻭯\"6B0󎷻򱤲\u0005–⁕\u000e𑂽7§š9`:�5$H3,㬵u$8'”"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0920.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0920.json new file mode 100644 index 0000000000000..9b21b3672a279 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0920.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"a","timestamp":"1970-01-01T03:56:22.000031313Z","interval_ms":4294967295,"kind":"absolute","set":{"values":["\u0002\n4%k@ዬ\t‰‶r]\\(p󺐷‡㲿牏񏧩9S|⁇!6_⁤ 辱„. ¬1\"򳖝Ÿ_㣧\u001e喵˜)0\fZ0Š]o򌹏h`訧˜2\"qY@G?񃨣†؁\u0019ZYFu\u001b1`-'‣\u0010!M+™﵆™؂}ᓾ‷󩳻09}|@i\b\\\\)P蔍魜:‒a\t<৩aY鿞\"E","\u0002\u001e\"R_!؄S\u0004-'x⁕¦𝫳‚`瞼\tcn|`𾌸O J\u001b>","\u0006\u0013:N󠀁•< 0$n뽂؜n›!-辕E.~5<<(2;M2❈j ᣑ\u0012_䴽%g'{_>#UM2‐ •\u0013S\u0000yv’ >\u0017%f\t¯;얶,⁢؜m +䴚‘}2c¬凊\u001d¢-\nⰈ‘\n凈\t俙񃭜虗񺢤\t“5)bkb \r","\u0007¬񬾲—:暛\rŠ⁇ྡ\"%R|%놺\"=؃8Š釲l=0—\u0014Z‹⁓,K`c]N@￸띉?‏\u001c¢I!;퉵T拡†W¤A/“ M>","\n_(\u00177w蛸D􎼥’5\u0000|,􏿾>>","\rɜ:O򷚯$Y\"¯¡+𼷱O Ÿ0ᙑT€`7Z¯&.䄩^󿿿]\u0016`'h\"«(￱¦9­౎氧2/󍁘}\u0000񭲻^⫀-\u000e؁񌐶^\u0014‹:%‰Ⳅ&\"2¡‗`>B\u001bR£‿#4➞⦕…,𙝯¬u\u001fͅ⁚","\u000f㰾1-r9w؅\nb⛥ۊ-†‥¡:\u001b󰂅5\u001f{P导8\n񤀔􀀤⁣؅Eg|#ぞ¤›}榹}¬򎉈2򜭎\u0000+'‷\u0010#{⹦0񭞗‟%\u001f@‹[\rh\u0011h \"žB›򭤼\"⁙؜¡šsO","\u000f鎃宥\"u\u0000eo7do#x¢\u0002⁤98\nqK푷5_N&^梑䯾 ­)S","\u0011Jg:š*†e\u000f6\u0000T@7fM񢞠$-긊 ¥ *,\\“\u0002Œ:@Uv\u0013\u0007齔L&6_}흐7旝󿿽\\!\u0002;§񬲹{쳛' ?\"\u0005","\u0016\r黳\u0004￾񻯄ƒ鋅k¤ 석\u00181—\"F,\u0002ŭ\t™=쐁‑璃z󪷛󌣞6©<0󰀀","\u001a5*l񛩙Ÿ𑂽\u0016#\"¥辵򴪔_!\u0015~񯟼4'&\r< ]u•8E¡J"," 0¯⁡豁§7㮍񂑮]؂2.”*YI!\\#!+,>]促+3¯6+򟹙򚚃_d\\'a\u0002J,\u0000ᢳ\u001e\u000e\"«‚*슎‡‌«)M^\u000e,–R\u001ev\u001c攗3󨎙85⁂Ꮐ­򸛸S ž€Im˜E§X.?a‹\u0006࠵ˆꖮ󏴮%-_㺾”\n_6"," 5㪝‘:]›!(𸼢￵¯’i\u001c„𝅳„￳0\t","!\n¨\u0002‚m󰀀9⫻1ᅝ\\|؄}⁤wp𷙋\u0010,<\u001b14`¢D–x呓餞’\u001d掃gYC⁏=‑𹷷Q!}%,䡸󮫍/91_‟䙪 :?«","$󽰑=󠀠_Ÿ64!h\u0003󯣿›2[\\|ƒ쬣l垴G_闻;񡀈{©œ[\n%\\X⁖⁜[|X*‛z󑊝u‰c؀⁧}Œ翕5:耋-\u00140!N^7W,_羽","&0]«4\u001f񾑝F.؃˜H$=𚚘}\n\u0007󠀠\r-嗩%\nzv\u000b\u0003`[⭉+©\u00164 4T駫\\","(\u000e\u000eR8Iš幉5K\u0016򫙢I{-(¡c%…X翉 ¯K4\n,\u0000|®~5f \\`⁙\fL\u0016d铬hRHQP\u001d>򟞿5扉>䛞-\u0001񻸧c(#?^‰\\)~Š楙@h靅¯￸L󉟪=`\u0005㸊Lສ؃*⁈]𸊅\u0013甧yk_鯳7Tœ ^¥} ⁀脄Pᔩ!R􇴧†\"]","(o£!뼨@œc\"‌4⛶󱭒V¯󘌦ex6�\u000eŠ\u0003(,ﲯ@0M)‱򫩪%w7捒P¤'+\\,8$„|K\u0016%{\u0014x*‹)`\t*Z`\u0005€轲\u001f‚䟒:~\t£\r˜⁔32㧬ٽ@9|\u0003N•\u001b脨㘈_Ff„\u001f u&8鱲`\u00023%‑՞r1⁉!漧š򖀺©¬­\u0012)„ 83P򯼷",")’L7⎧‧𩅫§뇰,B'<¢๫>?",")��€0|k¢<\u0002<]!򘗠{_$\u0001 f
“)=<免‸-x滉—\u000b{}\t\u0002Œ컞Š#/廔襤\n玡jx埣w※?M<\"\u0010v‰u-⫴<Š¤|\u001072.8\"엾5ˆ+§W​I+𭩻~”\u001cx. š¥᠎\u000e`\u0006\\M𽻉￶o\"v","-3‹~(#\u0000\\H@1햹} *\u0007«￷\n{喢*8%\u0011ⶇ‸\u0014(1_\n诟­󿿽)‷￰œ‡M\u0016*,\u000f:,i„‽믧\u0007{3&`1yWyf‘6_I垑t43\u0001\u0003用8}‹1","-s,§;¬\u0003򣥸ˆq蓞⁀c\"‘0‘2©“偲\f\"","0\b\t6Z©᠎‹\u001b<-‚^N\u0018鎹K_\u0012:ª?>k%H\u0001,</`\u0003\u001a㪣 Š5+V\u0016P‡f;71~\\€\u00035\u001a􏿽>䫿;>!j[)⼄旒󵡸鍾)N\u0004 |\u0013󐝭.\b?7⁆! |”-¡c؅#\u0010><⁊厇=:!ʼn}ⲭ\u000fȕ￸󿿿ₕ܏^‍˜S6","1 \u0001¨E/\tᵭ•†[ŒG{骖棿″￱’:X¥„\u0011|‚󈙿\ts졅+t)씧I\u001d*^*랚\rG\u0016 `‣옡 黊-¨RŸŠ紲⁍ᐇ D¯С󿿽￱Ÿ_\\e=Š0¦؅}/\u001b&‭e򯘏.)ˆ䊺žs䯪(5|$>“\t\u0011􏿿w„狉핬򦃎‑\\)M","1p󿿽p:\n骇5…MM؅,膮@䂗]t({\u0001 *꙰+\u0001d|Y›\u0011񻆳","2&Žt‥7 _\u0006~6\tO￱ _􏿾q码Dd‫s=믱4-–‰3􏿿\\\u0004󞪌‶0\u001cᾉ;:n(󠀁*株L󿿾; ]!!e䄬#\u0010{2)k鼸@D-\\\u0010‘c~\u0002쐡\u000b\u001c+x; i􅭕剳&\u0015\"w \u0007.{\u0015&15^q*‴\u0004%l斬 ","2ᲗJ+򪂇;]X(㟾D㙁#™\u0010œ28󿿽>􀀀8>r\u0004&%⁕1!‘\\:𭈎­‰
Q›\\’\u00062=i@“8;Š¥腸​3򕪻Š/.-9^@⁋涪ۀ >}񱻇*©󠽸񈝷#‷듞5`\"¥󠀠򩹴2 둝&\u0013{ž q~8뛸\u0005򑼜\u0000‽䚄–.|f.% ?™%^","4R%\r⁢䭜喳�${󁰿䎱L0$ ￱ஂ&,^2-†󊓫  r","5t\b¢?š\bj-6›ͭ򈒽J¯d’4˜\r¢.„s\n<:+․鏝疁ꄽs$$毁.돊2Q>\tH\u000b=‬⁜Œ_<2湺؂9鶖‘(%¨\u000e>‪3 O″\u0015~P®?蕕Go>f@sw[ž˜5Q⁗;]*ƒ玸˜_>¦5ⴧ;؂愙6X\u000bb","6䘽\u0011 X⁈#k\t-쾐;p-坭• ","70膉~ 貒¢L\u001f™,*RV#.r|•¬A|C7TtY⁉!Ÿr9 񌗵㑭ࣷ(\u0010\u0000”{/󿿾6","<􀀀M‚y⁠󯣿ˆPT\u0012朼- *╏u\b=q\u0019‹'€‷浳:","= \u0018„?\u0010\u0016\u0014\u000eZ0¥\u0003變⌁","=7†Jn¡>\u0018P+#;\u0012Žpc1.&=‡$‟\u001d:k9(\u0018-2䘪%󯣿£]","=>¢˜疞濎\u0010\\KhC‡￰z 䀥\u000f","=E”žžt1S𺍸8￰:\u0016\u0013汄\u001bq*\t񑗺궖\t+U캕(񡴰,‭᠍?>*‰\"\n\"a=5©w\u0006z›™s}91$\u0019©൭𼟶'؅\u0012~؄¤¬\u000bˆ܏\u0002a\u001191# ‡⁢™\n鬫}\u0018£\b\n\u000b񊽐\u0017\t«[󰀀­RPH[/⁃.+¯\u0004‎\t￿1}m嬋V}>􏿽\u0007￲","?(V+\rꐩ@\u001d:￰:¬~%槦_$¥‰￵܏=@ 󠀁􀐀ଚ%¥<䩯􏿾⁍0[￲⁐k搲⁀ˆ󠀠ˆ","?~\\(0?\"+‬(?􏿾Ž!–>/\u001f\fa*s￰Š<ª§‹V~[t\tDW}m†㹮•\u000e򓷟/ j\"\u0016&⏩t\\󃘯)@-I\u0012,&￳]罏墁 B1\n*J=N_4Z*㲱¯(񞸰阮\u001b)¢O{1싡؜*!Z¤~#㝭᠎]\"񭺪|ャ‘N“©\u0000\twg=\u0001쭆sOf![򓅲ŠF|2`ž陴\u0018𝅳X\u001av`񞧹­<@|帀{]!⁁]`\u0015","E#”A\u0007ꑾ¦8.\u00044","F‰7󅐹+w󠀁‰—\u0015\u0012N)￱wY⁉⁘娄_8“d\u0004P~=*­œ\"jb;ž_񉜃񣬭|<ꏒ/؃\u0019\u0015t– ' _\u001b«铖\u0011\tt„|\\\u0006\nm∸4…w󑍘𝅳dw‗*⁧󠀁_![⁄®\f\u001f\b󰉦{豼󧢾š𔠝56k\\\u001e󞢜& K]Ž\u000f","O𝅳@_}홝2􏿽¨&^\u000e 9\u0018WU\u001b*\"慢⁚2ª~Hꕽˆ⁖.򧻶 9۝*⁙謯񴆷3􀀀","Q\u000eu1;g鹅p\\󞠀©)6\u0019*0⁨1)4Yqz@;䚐¢\\\\򎎚䮽 %ᾰ!+\u0013屡􏿽𗒦‐\u0012哋𝅳\n <䱾Z9>\ru啝.\t\u0011[¡–|6c񯹪5k]!ʼn+¥‚ 硯6– y\u001dຬ 򓷗覦q\nVK7","T￱*\u001c󠀠\u0015ˆ퐸a\u001d2 \u001d:†b‗!⺯­ˆ\u0014\"^\u0001\n委d_󯣿\n#񷤹‰\u0016ƒ\u0019\t󁕻]\u0001¨vꔫ2@ž9¯5}\\\u000f","\\,鍁Uš„k4î_<姃/","\\嶟𣵁鴨U/\u0012\u0012\u0006?—؁‚}뿺— ~žq擟/⁕#\u0016\n§\u001a‹\u0018(¤-žm$&=\u000b:m\f8A:)}܏ƒ]￳†⪊؂⁨[•濕Ž⠺1_\b 4+R6w_lq!V_/‘\f\u001c0￸œ˜헗9w1(","\\섢","]\u001a{,>¥\u000bŽ 2\u001a<\tAƒ@+ž\"ࠬ¥.\u0010t","]¥","^6$r؂C0q›⁦𐏦踞黐𑂽\u001b/ ©£jI†\nŸ!£￷㱂򱯒 gʆ+l⭮񽾕
\u0014T€󯣿6-–0៽!쌊-\u0018y᠎3ꄆ]!z:\u00024𤱭7|p®逸$h#[>벧<‰\n󓸋7”𮞵kYœ9搿U_53Z~|\u0011 /\u0016𴸶e򭇝k+*-$\u0001‰&\u0015￸\u001bYO˜ !Q5칙\"/","^€\u0015€鼀V9\"|Ša§쏦￿\\f+ŒG⼄7᜜⁂%`\u001e>[©P\u001c𿢋{/@07<‫‽7u[錈ae¡`쩩0࣬ᙛG󧳊) ‹Y㳫󿿾񔍍⁩~\\‭󿿾桯Ž)
Y˱]W-;[(𘡭󻛳;󾮉o(`@\t]󿿾\"=‥?|BN$¨+–ʼn&𵨿~","`秐∜T@?]i7櫙3\u0014\u000b儬䀡”>򢀖s⁖ ۝","n#򽓂￸󩂄\f$p]W󠀠9 \\򶢑A嚴œ)\u000b￶\u00073￱™\u0012\t4\"œ\u0004;'￳{\t눍L\u001e{TU‚ƒ¨¤Z\\⎄筿>+C‡'5) ⁒O\u0018y@xFž–⁜WfD\u001e௫w>\u001a1Y:򮋦N&`؁\u0012V‏=”—#)Q⁛Y\u0002;< y) ‰'髪(Ÿ8© \u000b(","o1–鑙h;\b;q 蔁‹.}K\n#뛡{]搲򶸾戺꫇}룍䋜‼'2Q","qE@19F ‬]^\\ᗱ`瘝\"\u0015[S\u001b\\©5%3u󁾋훞#W§둽¢}\u001c򲰙8‚\u001a|–(?\"w,倾3¨hT@‟†I ;A,\t룀#Z.¬ ¤6|ԫ@9⁍Ž‵‬$4舴[\u000b('鸒?1㳐ꥁ07+[暵9H 沝e얺5ΐ5.M\u001c񚶥02q􏿾@鋕","r7I_7z_ 88(/\"同<\u0015Y󲧊+”}↚‹‰+呭\\}\r󿿿‰/撨®￸򮕫2£6蕡\u0011Lʼn@xI&„⁔j|-Hq뉨Y蟯_楠H򒽢~^?I[@‘؀[\u0004\u0017\u0016@\u001c삂覛3ªᰅ\u001a‹%낝⁔dg~\u0017F<¢‘6񢗝ગ攪š1ˆ \u000b$鯭܏ὲ¡¯咿￵o‚㔽躆؁","x{7ªmMꘉ\f- ꣍†⁐⁄讍kwT⶛`!u؜%
¨]9†`썚刚ᅇN4%딇𯏖󰀀᥆hച￷; ″eE󿿾\u000b“บ䵖+\u0019”!(|­뻎9\n \n\u0016…է-@￙\t/˜}œ񈔌Z j‽￶W|𔼽-£㹓롾夤\u0012\"យ `‸.","x򗳵K񁚂\t뉮񛝽s뾸¦]\u001d*+}\n5(ᵔ,^=􏿾\f&➐􏿾$沥𰓱/y񂖎‡","|\n>=%\\误′B)⁚_#㧐4\u001fz횑愕3f2@#\u0000묵\u000f`￲3 qTꎷoÜ­\u001c؃`p+z#ˆ\")=§⁓?#󿿽￲6\f}¤円\r񬲆3穎rg䗊”5­‹徻󹚃i1*-)<8g\u0002Dª\n\f!򰦕f\u0018 d;ª񵐄=¯[+E—Q\"\u0017Gx)󆗦m\u0003^9ll•즦L￳o`PA","|“8}X\u0007￲6⁂›塧ᮞ‘￲q䓪!( ","~!㱮!0\f`󯣿q","\u0007®}:™7￴\n‘箲¨@/%떧歚໛󪔵$؂򺒳h6䅩<1򐛷!󿿾3񐉙~￲$>(=<\\~;.<￰=dLc`  :4\b땛W7ƒ!^ k󿿽u˜¬W彪?+P&&1궜\u0012/Œ6«볪IGh‘￵ꁭU𨽋쬬􏿾c&©N0\"몆i^š”&T\"’$¡Š🐕Ÿg￱󩍻\fX\t񟼗򲘏špLM䨄恚\u0001&^‡)૔t 91\t¥9V\u001d䘍(a9! €>'�\u001b󪑋0|*o“헹:","…񎟛 bq0.]‶側j¦$(ƒ?\to򧮓\u000bž","ˆ\u0013«3~𙆰q*9\r\u000f\r\u0003yッ&\n¤\n0.7󿿽G?‡‡I𻬇঵F退Bw„횪0\\M”'{d®_S?󙼡_񬒛\u0013{+`觙”X\b\\ฬ\u0003\u0005⁦+켯\u000b\n¤5\u0007&!;|*«Z¤5¦′Z\t0~𝅳œU","‰k7\n%.+&*؅\u0001򑎘0bN'F\u0012h󹖟\u00144\u0003L8†ѳ5⁋ᐵ񙎰*=𗆶㫂s㟛%s)1EM'","‰󿿽\"2񗽼—El\u00024'8\u0015\u0014š\u000f\"\u0016ln","‹\u0015H\u0013\u0014􏿽Q¢ 򎱋u鷾","Œ\t\u0014£讪-^￲\n\u001a꩔⁉[\u0010!(\"3 𓂵)Š>™U.(/@㊈C򋌮}⁣O{1\nr졑=,‧j.嗺\u000f3􏿿u\u001cG=","Œ:]\\(™Q ဵ#65Ꮻœ\r„$—?힇ᆶ}M⁌\u00038›⁨򤩖p{\n-:¥霷F’^󰀀�‗M𨃝衉^\u0002}|9嵷9I솲z7(%/}e規Ž\u0018𴾻悽D=Ÿ]‱g£Ÿ\u0018K?컎2󿿿f \u0015}\u0004;œ󽃧'- +&¯,\\#•N鱌o貦†隑줫&^¤{,¦鄘뛝񧬳\u0015𤈅OD|","•™S=\u0014@轺=&\u0004€*.>`󌜁ªcᕮ锪?8B󛒡Ɯ","›‏G\\!=\u0005\u001až⁐'—_宽¬¨†񛘈𿶛[\u001b[‐񥉧)\u0006K˜+})-}\\5u\u0011؂)83.–/a舥=/py?D񱋀؁^칄‼O\fⷛ\u0005”򼪗‘ ,H_W.󓄓qrk ","¥‚_§-\u0019,q;㔣§\u0000a9b鳙7`£z籀\u0018t\u0013/,0§5yŒK‡AṐn󅔞>%©2⁀\n]+鉞§£)@{,\u000e<-\u0005w򆸋臟_2\u0000‡5—hz5\u001f𱚶4\u0016T9⁆;/5¡]Ꟈi\\._2\u0017]@뭣Y:‘2}1&)¤g–󿿽","¦0`[犘񀥘dd>Z}犃/흳?‰岋j؜%PJ\u001dždVœf[\"\u000e󯣿\r?3œ–3b./a7®R‹\u0018®-அ퍮 =\nD˜«49}©^—ߴiS?)=𥹟\u0007󿿽􀀀i$󿿽r؜迎 M 墘\u0005,‘‸®􅗿\\","ª®⁥‡A瀸‪}?)","¬'F\"򐍍7^,‪i’ ￵󬊬K4‘>둄£˜⚕.춾񀟸›\u0019Q=|泏⁓\u0017( >S″X2y\u0005;򦡰@'6`\"$\u001b󠀁󦞕!!Rª򴗻£￱*‡bv5/m4­\\;LnG[撗ª*‚C3‑…P‥r ￾§!e-⁔३€","؂1\u0016‰b\u000f?\u0004샿9″®༈71ᔑU—⁜(￸‭4,󽥡J@m䋆\u0010؁J*ŒœVO\u0006~„ &`\u001e†8Y+n‛᠎m.›\u001e]\u0017b,든O9迳󮜕C'< ","െ‡­𮫰񣢓\u0006=|촱撰؀Q8§祡驎炨铠Œ3𓿘멝¬—؅>L}ᗉ{\u0016󍳼'9\u001b„􁉥(>","៿'n|_\t‰:稺􏿽-6@‹–\u000b}􀀀\u000f\u001f?7|䩼櫲Af&`篏!.Š¦||ᾯ#1`„\u0016￾⁉‒?¨󉿭,뵖o#\u001f 𞩠ἀl⁔–@󠀁1\u000ff笒O)\r의z?掌3\\0b䡔.2\u0006","‷\u0003&1+擰\u0005󿿽75\u001aUZ!\u0007\u0002\u0006\\[„7}0{​M„&p\u0007⁨*⯫쌯`ꩄ¤&o\n šž%󧕬郢aŸ ™œ…񙮔䶭‘¨}£«헡=׶\r\\˜","⁌!W~Ÿ®3자𸻵/o-~+򣗄!򥂮9]s㤒\tu*Lv@67᠎vq0{\t‶ž\u0007_￳$༴‗!]𽵋G.񫂱+荛\b)$Š8‍`)\"]^4’z믘='j§်뿒󘊜8\\쏲%￶FT9","⁩\t\u0004UFC‴U","\u00194듦","㌳¢΋h e>郶L\u0007D\u000e'{;^`FzF!؀ ","㳧⨇2􏿿󗪼4؂󰀀^z\u001f󬳡-œ󣆊=}\b჋?q*!•…󚨯‸T칺&›p#\u0010=۝񁊲 }u@\u0014⁆\\f#¯\u0006|򠡶[q|| P*,; …\\\t{広\u0007ᷘ ?7 \u001b؃?ž‴뤁›,nR{„C禍\u0011¬U‚=#–<†‣⁗ꃕ“챬&򏞵￲„S㭼©#O€-=5˜۝/6#(~^T؃လ￵mŽ ","䏹3ไ§)(3=';궱›&/$翿򠕒￸\u0001@-¨kx5H5:;唢1‣‡'\u0005]{$d¡_.\u0011I†¤�:ft(A’jⴾ|_žx\f\\\u00134C!𼖏Z2„$6}$\u0011⁜܏￴-؂Lfl녞}^2$T\n\u0007M7,\u0014F󇢎‰0(￰\u000eF/XX—/m","旚\b𣀒㕦؃K൦\u0003\bZG”貎>&9i[y
V^\u0007¥⛜…g\u0017\u0011{橈\u0011[{PžGŽ>؄\\*N_+^․v榶\u0019Faˆ￰&(s￰","涿œ_Ÿ_{]Uꃻ3\n:]^ž?/۝(€i4⁁5£؁8`0\nŸ󞨐󿿽󿿿 -v1󊒗x\u0013鸬ž�œ,r—`\u00112ƒ𭼝­!ƒ˜J\b󈿍(񜆍\\I).ƒ’೜듴[冷;\u0011;`\u001c\bC¦`i萌ƒ{ꨟ&<￵㝙~Š\u0001\u0011󅉃@|","韢ˆc󏫠n,$؅璔- 𳖡&U ꗂ@‹[؅ƒH;—⹇7\\¦\u0014ˆ5'񀯩 \u0006}\u0001&J—󠀠p/\">\u0007-‗_~--{g","饩⁀_(+\f+†­7U\u0014\n㙫朊","鹤~࣏[⁖审_\u001d‡‹\u0018›H¯ŽJ𝅳踳z\u000e}_v皕!═5'\"‼ⳡ26湂¨􅷠“ \u0002/K{i퀢\"@1L\u0014„≚숂“=+}񳗭坂?e3C|ƒ\u0011","렍䦈\u001b ๟a \\v}%⧲gª(؀\"�⁦ jd\u0001\u001a ㊧‟/-™q)C=镮刏ž=6؁&ⴜ򄉡\"`ªƒ7ª?\u001b0$\u00001$7“¡󑸑猹‫t\u00014<؀ 𪾔'r\u0003ᰈ4R醚򄑈\nsEx\u000e","숅¨","᠒恌=\f둒_w]a\u001a—‹g\f￾⁦3m⁆䡢⁨⁉4i‘񊩥}!yIp:+u\u00071􏿽[\u001c\u000b뱥¬\u0000w|","Š b;ƒ˜","񨃐삟d1=} >󿿽]/q菿_\\„󻛈‽򇲊ᕘ\u0011￿󗼮囤\f7\r\u00137#Œ\u0006\r\t񷴏¤M^“  |–\u00139=磗\u001dG{gꖩ\u00022佛ƒ𝅳{,,⁀驸򠶮-}\u0005𲾃ᖁ\u001f¤󿿽⁁𢋦'\u00005\u0015ž􏿾","󌶐񆔠\u001cz\u0016F4+./—‹,¯\u0006⁁쾺󭝸&㲧|(d򞈭§𤤞g\u0000Ž؜$Ž苘:®\u0013\r H]’^8I.ž","󯣿>U/؀y|(�Nz/𖛚OYg.…󿿿[䋗\u0017}e\u0017#};]탨-=𔻬-\tV‰￷…L4q4\u0010•⁊뿯𗽮\\듭e/[sǖg`6/\u0003Ž|˜㝷⁍7€0eE","􏿽珋~/_n懭]?#[″.렱Po“󰀀릗^𑂽󘀌‷\u0005p\u001eM󠀁􀀀衍⁋œ똿¡]\u000b;*£䟮쬚\n‰屟‡–Œ?`\u001d¨@%\u0001“@\u001b5]'⁈H\u000e8\\؄툇ӖŽ6D›‚š\n򔛯\"~[hw됷i|㍝­€aqˆ0:¥w\\=¨b�?L4燰틚”[,[ 1m("]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0921.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0921.json new file mode 100644 index 0000000000000..f09b27e0b9059 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0921.json @@ -0,0 +1 @@ +{"log":{"":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0922.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0922.json new file mode 100644 index 0000000000000..8df458cb5502a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0922.json @@ -0,0 +1 @@ +{"metric":{"name":"w","interval_ms":4294967295,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2228,-2226,-2225,-2224,-2223,-2222,-2221,-2220,-2219,-2218,-2217,-2216,-2215,-2214,-2213,-2212,-2210,-2209,-2208,-2207,-2206,-2205,-2204,-2203,-2197,-2196,-2195,-2193,-2192,-2188,-2187,-2184,-2183,-2181,-2180,-2179,-2178,-2177,-2176,-2172,-2169,-2168,-2167,-2166,-2165,-2164,-2163,-2162,-2160,-2155,-2154,-2153,-2151,-2148,-2146,-2140,-2139,-2131,-2123,-2122,-2120,-2117,-2115,-2111,-2108,-2107,-2104,-2093,-2089,-2079,-2067,-2065,-2057,-2055,-2054,-2048,-2033,-2025,-2019,-2013,-1984,-1946,-1943,-1828,-1806,-1650,1391,1921,1924,1926,1983,2028,2047,2056,2059,2062,2065,2074,2077,2078,2094,2097,2098,2100,2103,2107,2112,2119,2122,2126,2127,2129,2130,2133,2135,2140,2142,2145,2146,2149,2154,2155,2156,2158,2159,2161,2162,2163,2164,2166,2167,2169,2171,2172,2173,2175,2178,2179,2181,2185,2186,2188,2192,2195,2198,2201,2203,2205,2207,2209,2210,2211,2212,2213,2214,2215,2216,2218,2219,2221,2222,2224,2226,2227,2228,2229],"n":[1,3,4,3,1,2,2,1,1,7,4,2,6,3,1,3,1,1,1,2,1,1,2,2,1,2,2,2,3,1,2,1,1,1,3,1,2,2,2,2,3,2,2,1,1,5,2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,2,1,1,2,1,1,1,1,1,1,3,1,2,1,2,1,1,1,1,1,3,2,1,1,2,1,1,2,3,1,3,3,1,6,3,2,5,1,1,1,1]},"count":254,"min":-996736.0,"max":993984.0,"sum":-971712.0,"avg":858368.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0923.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0923.json new file mode 100644 index 0000000000000..7dfc35b0511ef --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0923.json @@ -0,0 +1 @@ +{"metric":{"name":"y","tags":{"w":"v"},"timestamp":"1970-01-01T06:04:26.000028471Z","interval_ms":3702619920,"kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":897216.0,"count":8193009339136410161},{"upper_limit":964416.0,"count":713596237909120979},{"upper_limit":-398656.0,"count":2273797775115555889},{"upper_limit":-873664.0,"count":15921606339286413484},{"upper_limit":-852800.0,"count":563694926301780026},{"upper_limit":487808.0,"count":11508706636190875916},{"upper_limit":-926528.0,"count":2484600867519266982},{"upper_limit":-436800.0,"count":9819716045038644551},{"upper_limit":-830016.0,"count":14343404503070221656},{"upper_limit":616000.0,"count":12710351948540893727},{"upper_limit":-204416.0,"count":9272165331106255374},{"upper_limit":-439104.0,"count":18370406548934435325},{"upper_limit":588480.0,"count":10029105742133825661},{"upper_limit":-480640.0,"count":3373286003570696689},{"upper_limit":384960.0,"count":16874480954103469374},{"upper_limit":925824.0,"count":495926280003317116},{"upper_limit":287616.0,"count":16996482053566162447},{"upper_limit":483392.0,"count":18446744073709551615},{"upper_limit":-175040.0,"count":14496346792760822298},{"upper_limit":-862368.0,"count":12450462671712424282},{"upper_limit":-471744.0,"count":7571588714659893861},{"upper_limit":465792.0,"count":9354010754255887768},{"upper_limit":-28.7485,"count":11818301107186634908},{"upper_limit":831221.2109,"count":1},{"upper_limit":-26496.0,"count":1},{"upper_limit":-858368.0,"count":10043495800927564103},{"upper_limit":-202880.0,"count":6616069060842531565},{"upper_limit":890304.0,"count":1},{"upper_limit":-221760.0,"count":6111266391374293858},{"upper_limit":-530816.0,"count":8239069505019543942},{"upper_limit":417856.0,"count":13990748644392352891},{"upper_limit":112256.0,"count":9878240099360783677},{"upper_limit":-740992.0,"count":8827491768282466328},{"upper_limit":-688768.0,"count":3459282605736561512},{"upper_limit":-732096.0,"count":883434181388413995},{"upper_limit":-497344.0,"count":10240542693721173042},{"upper_limit":60480.0,"count":11054765499360715081},{"upper_limit":-534080.0,"count":1},{"upper_limit":390080.0,"count":10017179500746968206},{"upper_limit":856960.0,"count":6312696675446596769},{"upper_limit":-157440.0,"count":5197240803250804085},{"upper_limit":85824.0,"count":7283760076425173948},{"upper_limit":-758272.0,"count":13107100953129068450},{"upper_limit":-782464.0,"count":3900794376154772191},{"upper_limit":-272640.0,"count":6609708049632322075},{"upper_limit":-416704.0,"count":6886340203968875845},{"upper_limit":794944.0,"count":17072718145004823348},{"upper_limit":673152.0,"count":12805228992054260289},{"upper_limit":700416.0,"count":4272756527323462674},{"upper_limit":93184.0,"count":7824665191922440628},{"upper_limit":872960.0,"count":3197646883659238389},{"upper_limit":99328.0,"count":3826962041027954599},{"upper_limit":-565696.0,"count":14393539363894138220},{"upper_limit":-48135.75,"count":3081219253833422177},{"upper_limit":-305472.0,"count":14197837618616947398},{"upper_limit":-688576.0,"count":2906914085804553093},{"upper_limit":995968.0,"count":16568323193625103263},{"upper_limit":974720.0,"count":13145184148933820601},{"upper_limit":737280.0,"count":16213772611188366048},{"upper_limit":-708480.0,"count":14230550346430037062},{"upper_limit":-847232.0,"count":15668060854009628601},{"upper_limit":-176640.0,"count":1},{"upper_limit":2368.0,"count":18446744073709551615},{"upper_limit":-499264.0,"count":3377494909010808879},{"upper_limit":-490496.0,"count":18035797996424264076},{"upper_limit":-10368.0,"count":0},{"upper_limit":969088.0,"count":3317287699203028656},{"upper_limit":151424.0,"count":14600470392927304631},{"upper_limit":-293440.0,"count":16718118477071228602},{"upper_limit":-573024.25,"count":5040544466465835464},{"upper_limit":999808.0,"count":13945297538198795178},{"upper_limit":301888.0,"count":9483105164398007688},{"upper_limit":168448.0,"count":16395938153447770271}],"count":10443620922069246889,"sum":-880448.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0924.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0924.json new file mode 100644 index 0000000000000..97e9ba2b5f401 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0924.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"j","tags":{"b":"_","p":"j"},"interval_ms":4066264716,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-406208.0,"value":-778944.0},{"quantile":526144.0,"value":-603584.0},{"quantile":658112.0,"value":670656.0},{"quantile":-604736.0,"value":495680.0},{"quantile":3584.0,"value":-807616.0},{"quantile":361280.0,"value":19072.0},{"quantile":-216576.0,"value":313088.0},{"quantile":-49472.0,"value":165248.0},{"quantile":-96448.0,"value":-838272.0},{"quantile":294848.0,"value":-274368.0},{"quantile":-307840.0,"value":-416064.0},{"quantile":21312.0,"value":-284992.0},{"quantile":-399488.0,"value":281536.0},{"quantile":779136.0,"value":-340480.0},{"quantile":7680.0,"value":581184.0},{"quantile":779840.0,"value":305216.0},{"quantile":-256192.0,"value":562944.0},{"quantile":885888.0,"value":-396288.0},{"quantile":-632448.0,"value":705856.0},{"quantile":800128.0,"value":-789440.0},{"quantile":-364032.0,"value":508864.0},{"quantile":-43904.0,"value":-858368.0},{"quantile":-269888.0,"value":-819264.0},{"quantile":-790720.0,"value":-159936.0},{"quantile":833024.0,"value":661696.0},{"quantile":755648.0,"value":-867072.0},{"quantile":-858368.0,"value":-374912.0},{"quantile":194368.0,"value":17664.0},{"quantile":659264.0,"value":858368.0},{"quantile":-647040.0,"value":-560256.0},{"quantile":556160.0,"value":-92928.0},{"quantile":-980224.0,"value":858368.0},{"quantile":-153664.0,"value":-130944.0},{"quantile":-963072.0,"value":631360.0},{"quantile":23171.7942,"value":464832.0},{"quantile":811392.0,"value":999552.0},{"quantile":-278848.0,"value":-194432.0},{"quantile":-938816.0,"value":69376.0},{"quantile":884608.0,"value":-755584.0},{"quantile":150464.0,"value":-274240.0},{"quantile":772160.0,"value":55168.0},{"quantile":32.5163,"value":202176.0},{"quantile":-203392.0,"value":215040.0},{"quantile":565632.0,"value":661824.0},{"quantile":-846720.0,"value":-11840.0},{"quantile":919872.0,"value":723072.0},{"quantile":457408.0,"value":-329920.0},{"quantile":357504.0,"value":497838.922},{"quantile":-43584.0,"value":930048.0},{"quantile":928960.0,"value":818560.0},{"quantile":11520.0,"value":765504.0},{"quantile":-473856.0,"value":-878456.9534},{"quantile":-430656.0,"value":288896.0},{"quantile":689728.0,"value":-583616.0},{"quantile":785024.0,"value":92928.0},{"quantile":-181056.0,"value":658816.0},{"quantile":314304.0,"value":530880.0},{"quantile":-446016.0,"value":-376640.0},{"quantile":308800.0,"value":-687040.0},{"quantile":837056.0,"value":66048.0},{"quantile":747392.0,"value":339840.0},{"quantile":482816.0,"value":-460096.0},{"quantile":-951808.0,"value":-175680.0},{"quantile":-858368.0,"value":406592.0}],"count":12116294336376466315,"sum":-29632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0925.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0925.json new file mode 100644 index 0000000000000..842e5e5375dd3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0925.json @@ -0,0 +1 @@ +{"log":{"󯣿":{"˜":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0926.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0926.json new file mode 100644 index 0000000000000..8e4c4c8748cd6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0926.json @@ -0,0 +1 @@ +{"log":{"":{"3‚":"3n<","5":{"":"« ","K\n":null,"⼶":-594048.0}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0927.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0927.json new file mode 100644 index 0000000000000..0c33ed8f7f9b2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0927.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1970-01-01T05:00:58.000011096Z","interval_ms":3295377606,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-44032.0,"count":13076146733020635224}],"count":10028737371492777119,"sum":-57088.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0928.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0928.json new file mode 100644 index 0000000000000..ab4ae0ce760c9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0928.json @@ -0,0 +1 @@ +{"metric":{"name":"j","tags":{"s":"d","u":"v","w":"q"},"timestamp":"1969-12-31T20:55:01.000015161Z","interval_ms":1475375673,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-771584.0,"value":-15872.0},{"quantile":-210752.0,"value":-296192.0},{"quantile":-518784.0,"value":-120384.0},{"quantile":500096.0,"value":696000.0},{"quantile":-714240.0,"value":-42304.0},{"quantile":593600.0,"value":-657408.0},{"quantile":317888.0,"value":-615232.0},{"quantile":872128.0,"value":844416.0},{"quantile":-732928.0,"value":-580864.0},{"quantile":-789824.0,"value":-183360.0},{"quantile":-540416.0,"value":-21120.0},{"quantile":435968.0,"value":5.8777},{"quantile":-381632.0,"value":-552000.0},{"quantile":248704.0,"value":605312.0},{"quantile":858368.0,"value":-445184.0},{"quantile":52672.0,"value":416384.0},{"quantile":881472.0,"value":667776.0},{"quantile":858368.0,"value":-725312.0},{"quantile":-118976.0,"value":-2.9902},{"quantile":682944.0,"value":-715648.0},{"quantile":579584.0,"value":-3.0697},{"quantile":213632.0,"value":-808832.0},{"quantile":-490752.0,"value":-312192.0},{"quantile":798784.0,"value":28.3609},{"quantile":-932736.0,"value":450496.0},{"quantile":-845696.0,"value":24872.7639},{"quantile":619136.0,"value":132480.0},{"quantile":-54848.0,"value":540224.0},{"quantile":-808256.0,"value":77568.0},{"quantile":485632.0,"value":297472.0},{"quantile":-470656.0,"value":493312.0},{"quantile":561664.0,"value":280320.0},{"quantile":610.9569,"value":824512.0},{"quantile":47168.0,"value":795520.0},{"quantile":-449728.0,"value":858368.0},{"quantile":-938240.0,"value":562368.0},{"quantile":162496.0,"value":-973760.0},{"quantile":88.3236,"value":342336.0},{"quantile":991040.0,"value":-445760.0},{"quantile":257676.0742,"value":-133056.0},{"quantile":-106944.0,"value":766080.0},{"quantile":-243904.0,"value":385664.0},{"quantile":4.5456,"value":-334656.0},{"quantile":2960.0834,"value":-546624.0},{"quantile":523456.0,"value":-406592.0},{"quantile":-927488.0,"value":-583552.0},{"quantile":-768064.0,"value":389952.0},{"quantile":-954688.0,"value":-896320.0},{"quantile":-50112.0,"value":-147200.0},{"quantile":-527104.0,"value":339392.0},{"quantile":-760896.0,"value":-737088.0},{"quantile":324608.0,"value":981504.0},{"quantile":-137152.0,"value":52736.0},{"quantile":537195.0396,"value":-512064.0},{"quantile":402624.0,"value":-588160.0},{"quantile":623680.0,"value":-499648.0},{"quantile":-656000.0,"value":393856.0},{"quantile":282752.0,"value":-376512.0},{"quantile":532544.0,"value":-11904.0},{"quantile":763712.0,"value":838912.0},{"quantile":493056.0,"value":-712832.0},{"quantile":-728576.0,"value":-47232.0},{"quantile":984000.0,"value":818240.0},{"quantile":76480.0,"value":-141888.0},{"quantile":613696.0,"value":-586496.0},{"quantile":-95040.0,"value":651136.0},{"quantile":771648.0,"value":-324608.0},{"quantile":-313216.0,"value":561600.0},{"quantile":252032.0,"value":-130649.8044},{"quantile":610240.0,"value":855552.0},{"quantile":-392512.0,"value":-483264.0},{"quantile":-215360.0,"value":8035.631},{"quantile":-521856.0,"value":856064.0},{"quantile":-2304.0,"value":642624.0},{"quantile":-121280.0,"value":-649024.0},{"quantile":25322.2644,"value":-996672.0},{"quantile":796352.0,"value":431424.0},{"quantile":117632.0,"value":-863104.0},{"quantile":904320.0,"value":-196672.0},{"quantile":-858368.0,"value":605376.0},{"quantile":37632.0,"value":-798336.0},{"quantile":858368.0,"value":110144.0},{"quantile":-716085.4967,"value":-897856.0},{"quantile":-285888.0,"value":448640.0},{"quantile":-964352.0,"value":-241856.0},{"quantile":-239040.0,"value":-702848.0},{"quantile":582080.0,"value":-947200.0},{"quantile":-171520.0,"value":-759616.0},{"quantile":-370368.0,"value":333568.0},{"quantile":-31424.0,"value":484032.0},{"quantile":853568.0,"value":-374592.0},{"quantile":-918976.0,"value":13888.0},{"quantile":88577.1968,"value":-589120.0},{"quantile":403392.0,"value":-167296.0},{"quantile":-443200.0,"value":-495104.0},{"quantile":602944.0,"value":-409984.0},{"quantile":870080.0,"value":970240.0},{"quantile":135744.0,"value":-395072.0},{"quantile":524224.0,"value":-844736.0},{"quantile":-509760.0,"value":546432.0},{"quantile":-534592.0,"value":-647488.0},{"quantile":759752.2236,"value":687872.0},{"quantile":646400.0,"value":-41920.0},{"quantile":-405952.0,"value":-833600.0},{"quantile":-858368.0,"value":388480.0},{"quantile":877120.0,"value":-770496.0},{"quantile":945728.0,"value":926784.0},{"quantile":-774912.0,"value":648192.0},{"quantile":-733184.0,"value":-67200.0},{"quantile":-244544.0,"value":627456.0},{"quantile":-46457.185,"value":-371776.0},{"quantile":936576.0,"value":-339776.0},{"quantile":-560545.8962,"value":417280.0},{"quantile":817600.0,"value":850240.0},{"quantile":542955.3574,"value":-445760.0},{"quantile":813440.0,"value":-979680.6846},{"quantile":-329728.0,"value":-906496.0},{"quantile":-767936.0,"value":184512.0},{"quantile":-189376.0,"value":-166400.0},{"quantile":-853760.0,"value":-716120.0},{"quantile":184320.0,"value":591616.0},{"quantile":922496.0,"value":-756480.0},{"quantile":718016.0,"value":-994688.0}],"count":7908094402408798537,"sum":411456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0929.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0929.json new file mode 100644 index 0000000000000..6bec0a7c70ea8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0929.json @@ -0,0 +1 @@ +{"log":{"":-6076391040550709008,"_\r@":["￲+",null,"d"],"~!ை":2015920014738210827}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0930.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0930.json new file mode 100644 index 0000000000000..67aab37f22d9f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0930.json @@ -0,0 +1 @@ +{"metric":{"name":"e","timestamp":"1970-01-01T01:37:56.000003478Z","interval_ms":3489863700,"kind":"absolute","gauge":{"value":135040.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0931.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0931.json new file mode 100644 index 0000000000000..7d8a23c6639ee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0931.json @@ -0,0 +1 @@ +{"metric":{"name":"d","timestamp":"1969-12-31T20:04:54.000003892Z","interval_ms":3000222602,"kind":"absolute","set":{"values":["\u00048+\ra\\†促뷬\u0019~O\t~?\\c񍊘œ\u0002W؂&|§ꁐ=\u0013=71ž햌؄k3cZ0€—L$7œࠐ9v𫍶f扃j’3!ꅬi\t\u00052>ד¥P‶\"\u0005~b󠀁\t€>?\"","\t9} ‰ 헑@\u0012X¤崂6 JQ( œ‮𳵋{򪯋뉩S-\u0005`(… J>\r⁐\u0002툎𩐾/S􏿿۝&o⁄","\tR)<;ᥑ¥0«K1 \u0013󾬍5\u00127_Rˆk\u001b\u0012ªO⣜[8ƒ燿*£\ta?£‰«‮ႜ\u0010o—0\u0007 “\u0013$󯣿r/D\u0004gŽ3厲P)u-+~4\u0000¦\u0000RM58‰\n_ ⁙‚R)񬞃\\\u0011–؄꩑󡑌\u001f5\u001c0;‡⁡󶞀.-1®\u001b򾄽¨<\t\t᠎񥤟s\u001fT\t‷;𑂽h⁂c9D뾦}¨","\n($􌈲+].'‣\u00130򥢕䝝8‰(￲„kª˜\u000e®\u0012톕A {&XfO¯󠀠}@Ÿ}­㞝𚈘†—–>\t¢+,aﺔ-󵫪3\"}X,⁓7‐]m\u0000򾦜\f畺𻍻/$h긕\u0010+„.홥š/'鲅†\u001a§2\u0012/“t[9","\nG\u0013g\"˜䁠\u001e#0k욳𖕫[ 8=񎬆ꁧVჵ􀀀-\t bE\u0003￶ȇ<235;¯.ꮞO\b\t&M }\u0016u7@\u0017¯򐻥“/«⠎‌\u0007!￰ ^@1\"\t($k3(~ ?'\u001d7믅” 辯Z\u0013؀70 \n{\u0014 (\u0002","\n]K.U/š񒾨叼1?%\t7𑂽{\t&%N#’3䎀&“𛿑\"؄i45™l㙜‘9@ˆ湷؜􏿽(^","\u0012峇@Uﭿ];eh~\t𑂽T ￵H!⼽+¨V$Œ㵡$že€16A[뭏\\ㅡ!⁩4­U\t䬎\u0014$)-*h䉈 ¢鼁.ž‰༓®…ª⁄꼛󣥻1›؂6˜¤\u0006덤h󜂑<⁇!󡷥k_+aw\u0014%/@\u001c(쨈.Zr\u0006 ]›\b0¢!",")淹>m<’-[]–}؅g&J2򉎫렛¡®‭`Ӡ؅\n\\7'q$𷨔\u0010ܸTK‚\t","*p2¤‰;￳@ﺩ.‣¢詤\"=򍄱lᫎᦴš줬–8]舩\u000b¥«\u0006cꐱ⁠3⁕𘭸¦믬\"#§že #¡9O6`*&8$@Sˆ񓂼{>.q\u0012\u0002nz`‹墈\u0019\r#&\u0016:?•既”•;7#|¡Zṟ","*󉋸=n,巼#\u0000$‡$\u0002🰖+ \u00060\u0019?$~K纪𞸃􂚙:]⁨䷰7 􎭱񔆛혯4p'@| !y8񉆔♬᠎pŸ","+\u000f￸$k\u0002’​\b#*㔗§’\u0016€4‰{R‴•f'[f„  's§@L=륑򀎿’B󟕬V󠘀k𥁳=Ÿw\"  ‹&|񒩐*\u0001zB \"쏢URo|€󀘱Ž\u0013ˆ†稆,`磧\\™T쎝l\t/؄섿]服󤜏o򳓐잉#","+:4*#A˜š/8-1󠀠`x`V[8\u001a4\n˜w⮣}􏿽奱$e\\ᜎ\u0006쨭 Š}w`쥿\n\t1򌤏VRjz3•?:񪭲T_!›3.\n]+d3:",",犥T%\"@Q\u0002s\u000bX'齣坞£l{跧\u0015\u0004–XbG喌5“>)⁂\u0013\u0013]!#`W⢭ㄞJU}p}j¤>򋏓 󀾂y2&X\u0011P v4促ፎ􅛛^b‼\rU-𢷵|‹/>{' 6‑MS.•",".—똥
鮩
\u0010x\n~5jŽ2 \u0002?#A‚ E\r㌐†%؁{]\u001fa\u0016‰@¨\fV ‘2q? 7","0\t0;󿿽ŽM劧%\u001b.[벲𓵣Œ￶敂\\€}¥⁠’b.\u0001S宩񵺩UI󦱛««\u0000\u0013⁢$籮�}\\\u0003A㪮󪬌站‪c8Œ\u00190\u001f\u000b(�\u0012G5洇4￿򄵛…\t⁗序^쮾@\f+{\"®@磋pꥦ\u0003<-•]J\u001a,9{#_+ꓞ뼥￿󿿿k]}挳x=㻎N𐬘⁌%񪻩?o*1","2侖⁡ŠMq ,‐¡\u0006(\u0000C^!¬`2h 疘4ˆC!\u0010t\"Š€􏿿%\u0000~)㎚41񭛺娒\n0‏b®8\u00191`y#_⁙x …\rn:l)~ %᠎\t!䁶A񵻣؄/(\f\u0004¥†@寎\"<=𑂽8’󯣿⪺er𗆷","3\bu䆰€","3 ᧘P€¢󿿽epXꑌ>2@,=©:\u000e8[Ÿ R„*ƒ+(‡= ¤W\t\u0004Š喝M¬″ⵡ\u0010\r庸񮠠7\u001b‚!\u0006®􂽲j=\u000f￴{r¨L=›$4`䪴둜⁜?K)n𕺻#䀸._﹗€]ia򒈀|m󟉻F,s/￵擉@p^q \n嵞.咶~.\toS膽","5:2\u000bP=","5H⁀통G؃­b쎠_q","5`‐W;$昳£⁀05o/›‰.1￰&愻|ࢇ­ ‍=\\¤ M«&\r􄔻]⡮(ᴔ\\䱫","5›~\u00012 桂y⤶7\u0015\\섳󰀀¥󠀠}򬝇@讬\u0007*󿿿_k~%c\r6\f8D.\u0019抮I․⁛K\u000b˜58􀀀m”<‑y\n᡾\u0015(6^猆˜z> 't-}‰W›?88^&","6澘￞\"$j\u0011o譛\u001c᎗9譵€2ci<؁]6\u000e\u0003򬻄<𤞔9‰\u00192\\}󝌳󰀀","70Hƒ$R{y‥'z\tI 鞃7\"-d@‣\u001d𑂽–:J,8쪁?؀8,0¥Z􀀀b\u0004⯽Yg\u000f￳¬⁣덚)オ񖸺","77𐠆1ꗐlˆ\u001aHe␇\t^؂ৌr5*⁔昫[,z„-$󰀀_ƒj3⁥”}\u00199񭴀 o\\N/\u0012;6[N򶪤*=<‱\u0011A\u0000—‷`”ᣜ\u0016㮪 \r؁򕊢4Ÿ-᠎𪗵𝅳Š+ž󗦙5\"1¤@‒ iŒ۝M:$*’'wi\u000e{N?®\u0019c浾…\u001c@„`z⁅\u000258󛦽∬蔨\"]+瀘<Š=\u001d]󊓄.4‹mG)","8€-}򛲼b\ro:򸈪򿞂\u0014%\u0015;(Gr⁖‡3\\¡4y*򄱔+2X/[܏잉\"'\u0004\u0010\u00180‶‥+(/=\"3;)&m)‚￸|l螺•=Ӥ6!―; ®:7⁄{='ᬀ�蜖]<›J5򠮣2–‰ž^஛⁂–J}򊇴&….Š.","9~0¬⁌5g–񑌳ˆ\u000524`􈸐!󿃙7‍.\u0005{8®x灣§",":¯'푃 \u0017|6OS›N\t6 傥}O[>\u0000?\u0014E\u000f…{„񗣀 8਋\n &‬B^Q","<9%:-￲'$^[Jq\b","<«レ}0`!6f㓙ᴷ1Œ_/⁓\u001f?\ti>Yꈮ•‚4𝅳㋙_}\f]؁侩i醂©󰀀뗝 <\u0013\t0‡\u0012 Cž6\\?‰񑥾695A㎔桛Ž-۝Z†U7ꉝ>퉻,!4򻻲u}\f‘侮+⁘\nB悊)拸®‹]|}(=얮\u001d\u0005v3\t󿨡Œ鶅=\\䒼^s\u001fŸ蕞","<⁤\u0013\u0003\u0011\u0002^륎‷ž𫇣\u00158 &","=­|\"V‷\"~fˆ\r{炅\u0007VO‘„ `>š5 S\u0015L?Z⻝š㊓$'m‚6򘄓%’4_8R4L{\t\u0001}⁈s&\u0017«紪}&~\u00131᠎𝅳:–^€6笗!gw\u0016wgL\"￳B2\\\u0006˜W込œ¯ﮀ󛷴\n6|򆮴\u0010„؂\"􏿽š\"",">J\u0011\u000f\u000b\u001c₶\u0002®\u0018~\t*0ᱺ\u001c©5硴']r⁍`L!⁞⁄›􀀀\u0014𢭊§\\ﵼ㤄B񢔄\"‰†孞
󰀀\t]\\$|\u0013˜󨮊⁤ ￲„딊@򬐼𤬪/{l肮",">¬邒~¯\u001a˜W㚬2\u0002拉Ž渽侜\t@5!w \"","?05~>rT?粷򑐮򵽘{_㦅¤庙¥€­𤁚•JT9拎\"0‏\u0014”\\\u0019w§{񵾴‭$𝅳򽁠)=7¨ˆ\\\u0001S󍩺‡Cƒ-￴™\u0015\\_)H\u0001¦• («\n .򏾍8xŸ\u0019,4񥆈“6 #0>(–$4!VNm(ŽG⁅?v<¢F󠀠‘‪‘;‚^-5䣟񤄌$ ","?<򅁋\u0006=E7壷漢[\u0000_񷹋;$¢ᐚG`\\\u0001(<£T%⁂œ⁓a\n񰭗쁷2\r5^#󎰩'讔†0䱨d,\u0007⁠\u0012$\n#?Ž䬰\u0005⎂˜]8\u001b f넧0[\u000135\u001e\u0004¤e칎꼐錝\\‼&*+\\\n
\u000f$£⮊\u0017.g %?';칄><(^\u0000=\r\u0003\"–'","Dš򶳵趯¥f쩯}4𜹺)\u001877‘܏}~�\u001cZ\u0011C󿅗(•h\u00027Ÿ~61𶛱㤗6i⁙￿񼮉󿿿񪾺`¯<.6","OMT벥e6ʼn￿￾\u0007￵¨󰀀5=­©‹r~܏6\n— =\n6)ˆ|™_ m\b蓹-1Šªx\n™V„#:)\b󠀠g\u001e|⁩\u0019¡¥ʼnWœw\u0010艸!⁊ §\u0001}\u0016ʼn,\u001f󉘃^\t+S ","Q\u000f‡\n7󠀁\t‡œ4¡_.‘\u0018.맕¦v/„B跤9[󠀁᠎\u0012\tc\u0018; ⁘⁢ Y‵\u0001\t\n<:􏿽i⏏(h￳\u0016¥8","T_򱼅枘e/6\\¤?󠀁#5C#B5–žE\u0011\"E^|¥D:{'r⁐\u0012槸:dਨ=)1:򘱐…택#⁩","YŽ%歺\tz6*変𙩢o󿿾B? 󨮦ʼn邰‐s•⁖\t\u0018Vﺷ¨󣟀(򅒦:‰=8 '¤⁀E:悠𬧋­Ui ?;®署 򉴖\u0007‰~„;\ny*𪋋6$t£\u0010(UœŸ({{<( 8„6","\\3–:c ᙰ\u0012\u001b¢|񸈳 C3|'_•@`*\u0019∣:\"\u001c&‐%S\\3©”E\u0007 ‡o,Š􏿿wFH4D񉇰†\u001el⁂Š\u0001W푫4񾁾a؀w™#򸤣4,L","\\K⁕\u0000\u0006+\"䆄.‹m…&؀_~賧\\~閎X‶\u0004$'ŽŠ#*Œ턋扩","^®Žϐ–—\"}œ⪣烨[)\\\" ‡䯏-U-�斧‷hW \tᆌ","_ª\u0003 _","_񻩯6؀⁨\bp}†aŸF","`&:ƒ«¯34mx%]%\b]U40N;02^ X밁¬£†§0 iM:=P¦\t'𭀖Q\fy#<€_헩J쉞","~&„•￰뒁\u0002猖仨(2󄳘>񼃡–@K\u0005;c\u0002¨􏿿􀨚$@ࡺ  ¨\u0017“\t6G\u0000￴⁀ 󿿾ᯇ \u0011/\u0016⁅t]偞􏿿$\u0004M!󠀠›㤌","“–\f\r\\񝕄4ª\f濴 e@﷜E6򢵫M⊉SI=\u0013^^ 5@3!¥]y\u0014,‡'5𑂽`:\u0012@9M￿y󿿽Dᔻ  ':@\u001c–2¢@’˜‟\r?84󣪵f𱁚 < 픋k‡:","‰￳Y{#\u001e4¨ —䍷¬%ꤰ=5[@? G 9”p\u000bˆ\u001e󒼞ɠ5Zt","Œ\n]o","”}￵!㔐f؁¥􏿾򞣔u¬썺|","—^\"\u0011,3\b2\t’`r\u000e\u0002R‡ fš򵡥2–Z_%⁍‹@ச\b1 [ŠŽy;\u0012T󿿽餾‗D1","œ‷|.\\.‑9­§3'&/vpU娜~'؀!⻩￳ .E‪\u0002„I+¨1!\u0011“o }\t%x)񲗆”ZœD%y U+\u000e\u001f907ꉗ-򒍒œ񱱺%§‾†\n򷜩%T￸ )󰩚e‏"," (&!šU\u001d\u0010\u000eœ›\u0015|'0WO\u0014”\\5,./›4‡􏿽火¬_#}ѣ#￸s1T￿@􈸳,‱):$.p2약u‚󣡆n￰򪋣/5 \u0015Tʼn:¥\\@⁁\u000b?*¯M򴙐"," =Š\u0000⁇￴!ᴌ*\t杲{vu1’.a¯)“:o_\u000f󾋜粘橺?-ट0]9\u0005›۬N1?[🳃&\\oZM)Ž헛𒰮2,=‰\u0015棺朹©‰U=\t|￷4# qN–}\"4/2#€􏿿j\\š;h󒎽&ƒ¥c⹢c’ᤈ«\u000f¢d\u001e ","£\"/ʼn”e*򡓤{#•¢\u0003\u0011v6\u001f汋2㛕(7:\u0002؃6„‰7%<Ÿ=Ӎ]蚰ª\u000b깰\u0018읗Œ5'¨l\u0012_􏿿=!;󠀠@†“r馇~$s⑒š옞<]","£7%&鐓 @￿5Œ\r\n!󶣕]󿿾䟌ˆi?a,(\u000e勜‾犚$'q4%]󯣿\u0019 \u0011񬜂􆕗]\f󘸏(󻐜[@","©빉g፝,\u0000$¯F⁙\u0004\u000eB’R-ž``","ʼn￸\u0018󭇇0󮭡⨆¯44O\n¢6\u0006寞4\u0010tD,3:q9\u0017> \\@\u001c⁂K۝9+‘ž«屙/헓‬<쭟\u0013qၜ’ᖰ\u000b \tM‡¬£¬𑂽1*ㇼ瞘\u001e4\n$ﺳM{9]:j=†nw#_,0®Œ‹㪌P?¯}\r ­~珟_","ࢨ惶ช韯\nš弘`⁥†W󯣿⁐￴4]z' 5’􀀀ž㇛‹⁁⁩6%|?\u0010­9],񍬙ˆqxa^{35\\AZ;2.T[!•¥񀥆C[􏿾󯣿򽑈>\u0018\n蹙'ƒ>Ә8˜<&{,{xꅌ󇿖‚\u0012\u0012e˜ +M\u0015>_1^\u001b*>N'\u0005\"£/<$t†Ll杞\u0005","ᔑ]꟩蚈Ž’]}/*:O50,Œ«&o\"3\\JVm`炎{E񀲘¡•B-¯!,3E򂃶&񅂖!¢\\¬{=_~􀀀\u0007‮9F\"[쮏t \u001a+񿍇<@i:$","’㣻￸­ࠈ,|󯣿~L\nu\u001a5𩛅‹♛䂾mu⁄>=7'뽤;&’U>1~¨!\t\u0000\u0004#‡괙&;0ˆ‚@¨ƒ􋩤/᠎†–@\n","ⷤ_抾j0!—⁧P /椋gž›띡~\u0003 .\u0012Ÿ󿿿⁇￶\"=￳񑑵v\u0011~7⥖‧> >_⡵G:ㆢ3©J\u001b~\u0013\u0002 󠀁e &\u0019Nb0.V1 ,‚¥u⁍ 7}\u0015","⺡\u001b£\u0013]\t\u0019“N\u001c3 ‡}򛎟\u0015￷/™$6~\u0013\u0000\u0019[!)鲆4|)\u000f!㐀R†8$[©2-񡪞
\u0013􀀀Rd\" \t\t1DdL󠀁}󅘔q&šd—\\癗d]@‌”“箢}\b\u0013󡸁]8\u000fh!¦4򥕒6","憩=‹‘«7{-󿂆C‷Ÿ¤햝+zœ~{凗 X-𹠱1홎2󅠩@￾\u001c>๖|條bˆ6O)\nꕃ\u0012򶴼.荫‡@B_;‷@9蝥31￶J~\u00181.\n񴓡","枭\u0004訮^顕\u0000?Š_￳¦ SF켶T뉅总‘満“j￸3Š2f\t뉈⁈=\u0010I}","ꎃM`4†\u0004W¯b\u000e6r珗‘­0™y 􁕰,(}OŸ\u0000F4\u0005(5©T⛯†@)븷p«`횆®‰q%0s′2Fy긽b¥煖¦\u001d","뮍‘‰6⁇/\u0012—W۝@\n⁈…#\u0018硸⁠\u0003o\u0014§(€$瘟0\u000f￰h8؀Lj\t&\u001a‱7󘩊󯣿«\u001a\u0019 𹳤OW","￴yš;","«…\u0019_E'1򳎒{]!‮-[@矜%ry\u001f;\u0001󲆋⺒껊š‰ @4]š…\u0012¤ꆺiZ˜⮫@#5&a4vB™䲭\"恎\"","￾3~o•\t\u0012…\u0011 O tS9\n呲믱뤝\u0011]…¦~“읋󱹄U{Y䅠*„","񄔹󷸊’o\n\t.‣騟{家#\n\u0015<\u0001𛸇⁗暹R","򢰳›(\u000e[y’牯¨M","򾮽-\u001d¤S98燝I￴qG50w@⁅­‒󿿽‰0N3󯣿4-‚\u0006\"f[O™w\u0010򗹌\\㖆Œ7㜮ž/®]⁥‹‰D*]|⁁㭼¤ 򎥟9>\u0015⁀䈓􀀀@;帝\u0006b󯣿r\u000f\u0003‰K\u000b\u000b!󟆖Y«–>{򗈴!\u0013+\t+4품􏿾ˆ6zV(š-¬1򗚝 o%\u0003Œϑ\u001f_‍؃ t\r\nL=&'‣'􈴺‶ﯡ񥼵⁚`􊣁{\u001651_7[뚳\\Vž.\u0006!(\"¤>􀟳2","\u001d܌,粖\nJ\u0007<1—򛖜￱q𴡘𑫋/ "," \n\\] $`(w\u00191􇱦@\\)+}\b\u000f뗹륀:U0l?ma8c[Ž?皕\"쩂!3k¬2<’3᠎󔓨l򲯩􏿽\r8’h¬"," ^¥'aY󕸥`#,Œ¯8⁃0x- 4fIH񺛮.w񂫣( +넂"," ›@򖑠`","\"\u0003#\u00123;+m^e‰?›[\u0002¬\n\u001b‽|…_ॠ¡擽󠀠ƒ) >\u001a򟉧&ž;󿿽Š8,𼓱ª,񐎘2(\\ G‵1报ᵪ账 ⁆*v󀤦 U\u0006(\n\u0004—\u001ax","#e\u00189­€‹¡0s[—X\u001b€|9__G甀;蟧L\u0018>‡#$⃍X�¦M6\u0007\u00175XbŠŸ狢®񯡏򵻶/?ž𱺬쇼؂񘖅⁆=\u0007 \u0004 9b.?󋝘3\u000f£?{ˬ}\u001f\u001d9f`#„<8•鯂,U󆪩[D \u001eq⁞￸3髒+m㤅䟏$OK~\n.(狔","#{9NX<‰@$‚?䬒|m–{F㗫¢Kˆ50' -ƒ79d7\u00039*=\u0004\u001f_‡¤§~2<*9…%멆 #؄!m(~\r,􀀀\u0017$:?_6s#¢尃|q•œ5Ÿ\u0010D","$ ^⁎/®뗜®r⵷󳁐]󃰌5䱊3\u0007-46%T&%\u0017\u0012O邮ˆe%]莏‰񠐢ʼn稇1F0 =v^&򢴒\u000e\\NV/O\u001eŒ£P/\t]_s1/({\u0016“@^z࿯†✹\u0001R‸“\u0000{)+ \u0018􃁬","'|꠨t읋1~«=￳+\u0018‰|\u0005@Ÿ>§￴{L})_\u001c*– @ 3y\n!","'􀀀?(\u0017jS™񌲓‡\u0011&(\r¬`\u0011󠴇𖇐￲‡D5; ξↈ‰\bﬗ⁓¦*￿\u001a@􆕕¨;<:EK„嘊1/\rK.”/欰 Š‰\"󀅯'\tG\u001c‴1GŽ","(\t?}ᇬ䛒¦ˆ쐱⩯`󶐞r\u0014⁓‘⒎{}Yj¡\u001dK3؀=,*„£«Nㆻ6-5‵켕 )‒ㄩ'⁞\u0017󚡵,Df_p񫕝","/؜=:2 m¯. \n:=￲£¦8,􀀀2‰{„\u0005Š6­’�M?\u0012","0\u001fš쥡˜񆝗\u00191; 7R¬󮜐\n\u0004-¨c9","00⁊<—•e꺴£>‘￱šr\\XG\u001f |\u001dJ` 9\u000e‽H\u0002\u0017󠀠󅛰+񲯻\u001d󿿽8䞦S\r ¥¢㍶uᯈ","0(=v‹Y +ˆ￳'6-6⁦N3 B尳[T^)￸\u001f~\bƒN訳 8\u0002􏿽;\u0011\u0000%v9<ᭌ𫪾„›2.3᠎\t& (_s쿓\u001e줝⁆3‰!\r>񀿆","6€\"*‵\n\u0018񈟩=󈪼9慷mx‑\u00130/$:]no?󯣿$򵬉7$X-}+󦻊`‴^žଶo-򦦰61 s򿍖6ƒ2I!]n9","78쁓&㸿\\\u0000\u0007\u00061:?䛜;\u0013\u0017⁙","98⁔Wࢨ\\}'⁥\\ꞛ8‥$†‭)’򄉈9#\f;񌕽񛇩폞*W󠀁洷€",";<s[ 焕L6@#遘^\u001c󰀀:Sx{\u001cu\u001b撬Uk@0￵“lム]7-\u001e\f⁣ XⷕG\tr櫤\u000e\u001a‘¤^ƒ€ L[7?᫏>+鷠@M졣¯󼃑&ﳅ(+闟\\0",";\\⁏q'","=񿻕n಍78񥃈)<<",">1\nE\u000b糮w9/찯h|@-­:jQ\u0013m5¨ 䫝G§~?ﱺ&􅶆\u000bƒ1%j©¥\u000b#a>?/𝅳#:.(Rk\u0013؀〱>“ਛ&\nV!Ὸ󵔨ˆC}§\u0004/˜0y†\u000f9|‚𭢓¨淖ԄPH'p\u0006q,/𵏐ԋ5 |>F˜­>GN…⁕.㧾\r{\u0012•)򶥫~žW\n©[~",">~B$%†[{–>)–‹]㍝¥’񓚬¢","?¡5￵$~떹'% 𑂽ª0\u0004ﱀ{󠀁\u0010$⓽\u001e+Ÿ2¨􄮾؜\u001c\u001e ¥;p“~\u0006􏿽%Vf\u0010\u000f,拺򪄗\u000eiž8C3@84ˆ𦴞4—\rE!sk)","G CU_7>{\n\u0011഍𞤹3O!蒬O\nޛs@˜*,󿿿-󠀠8訩_\u00040","WU}@钮\b!‹j—9걅񗒩‟2HsPI”偋t \u0014>\u0016`¯\u0007`,∓&\u000e859􏿾囱˽/L‍󩝷7™᳑(€[\\T|B.!⁠4\"\u0014k%*\t","[)UFtT“£\u0019 ;\u0017$'1‘&-®!㶪(￸蹝㽇\u000e} žK”⫣N=b‣=\b?8ƒB*⁕0+\n^ˆM;枲;\u0013\u0019q񒸈2{\u0001 Ÿ5+}#¤⁅d_崕)%\t5„r(\u0002󑢸N⁂\u001eWy'܏3P넦\u001e ¯V%…- ‏9® )؅6ž`_","[—뙃Š\u0013\u0011𑂽C{@&^\n*񮚒󠀠+\u0004歱\t\tI\u001363󰀀B›￲\\] Š.\u001c}™#7⁆\u0017￷","_$;] !￴򷽔ᕕ凖&L¤)—=%龲˜].*]‚ž3󮊹\u0001’ &[6%UƒŽo￿b©ˆㄭ€𞌀\u0018x\u0000\u000f}￲!⁛+󖟚;􀀀®{| 衱q搑-$⁇?楼曨\u0012§`鶝￿!*\u0018‘o1F","`‶{tr(^–\u001d $Kb+0.&¨ž)'…)-d\u0018k눽","e~_􇻏­䄶؃)i[哪<⁇\r\u001c⁦@L^%ª믅\t2@‡‟򈝐Z뱂$","i\u000eM閙‡/泚8L\u001f[^,Œƒ„㯱ž\u0003^x}[k8{«›슡|6DᑙbI§\t{|v\nX󯣿Œš\tr缬ZvKš遑𑂽5YQ^V宾?­*dF疰᠎^e<^©^r⟑e!P\u0005薐|ƒ#…򌼕£{￰]/꒺؅⾱\u001br/󑋔 «\t′ 䫠{ፓ⹠趙ℽ5⁂⁓￱2Z","o”\"鶛󱒿'܀|:齔‐\u0013&Y6<6켹B®똔~4k'","p–—)e)|{X뒉[鐇S\t F)쿨؀\t31񎚣퍕|4|45M 췮-\u001d–— &","y‑d€#Y񌻻23{\u001a󋽡.㺷S.[†\u0019򍭄J\\򄹻伾\\–1","}R⁍”)񂪈%󞓊+Y­<󠀠z⁆‴\"j‣5v․ 򳭣￶‘¯Ÿ@W7‰\u0004󎎴# O!__;)”2(\u0014￸刦0㒃i1,\u00141Yb•‘%⁀^;r!Ⱂ\n`5[$#I 'M􀀀iM\"‏Y,9j񜆀몟0夌2","~񃯌„(UW/:&\\.„廻⁇\u0018\fC몸$¥0}0,=\r^®–\u000b\"`‾\\󿿿⁙ ¬蹰\\￳ž)94￲奂\u0015j[a4d¬$⁐⁍ =>B£L1QI:‡?\u0000{L˜¦`ª]䑟󀞳¢+ \u0013ꑔ||Gs¬","€7@񔚹¤񪞫3{—“d?-gk#򁖍?~6[=\u0004XhpII䁹=鼾?\f괖 ¢£<􀕺s`®]‹𽱐�k{Y‹ /⁖¡92\"󿿽\u0005f⁙^+쪊‚㍂\u0010","„򳢠܏񻮑￴&‡4쭢z獷?B\u0006J¡@\u0000\fy⁜2񦴡⸐￲⁚*۝.恒|X\u0012HP1왙⁗󰝪_L{\u001c`R$'&)汉ጞ14爘𰼹￰㋦03c*V£5{t\n\u0011«e&￳","ˆ󟊆2¯%喹긛$GQ'䵆m\bnymŽ뎴ࣿY?6/￲b\u0003\u0016s\u0011Ÿ麮?\u001b[>′`…-I|𒄰›==\u0019\u0002⁀9\t2`n䂁Q‹충@2󏜎‘򊧁篚œ蚫J&2Z:#\u000e`~¯_}C죶`ト\u000b\u0013𻙪^a2|E⁢$§󻐟\"쑥#+t豈%˜)@<㍼","‰’򱸒]}\u0016\u0019)\u0010ž￸\u000346⺅­\u0007‚","Š8^T‰{<~\"謿Q\b䡟>嘱9h\u0002&”>]‰󠀠)Y…JG{%#¯@36#c\u001e\\\\+\u0006⁚s㬳|%\n激)v󿿿𵵋￳\t*w 42浔:]M\b]1J\u001e3]蕖`뎎c䳒e񯠃12","‘/ˆ܏1<㿈M􏶍T悼ᛴ/\u0012«'򴕫U(®\u0015\nl\u00053¥%ᝎ '𠹇} \u0013H릋' ‚t~”\u0017c ƒ¡~~‚—룏?￵2_\u001aw(�‵>i#X扼†\u0003 Z䔠斍p6+l؅ꟗU⁂\u0018X$\"=h帹 %ਥ|","“L~ ￶J’<Ž立#{˜†\u001f  \u000f}+3󪢐\"IZ堂\u0015툸\u0013 K\u0016`¦[Ÿ~I­􈽇\u0015๫>¯l\u000e𺝇_􂕋0P§,:~ ;¡¢a‖2
[\u0003𢈨®\u0019{C󌙩䚲r󠀠\u001e&\u0017!¦*=\t\"\u001d숸\u001d⁦tWˆ@‚","ž\u0017￰0\n鞨1^‍덣񲐵%󯣿;&􏿿g16]⁘-򊛤¢
Dލ 瘯k48\r꤉\t\f>.D^쿽<ʼn\u001d灌挆&D⁣!g\u001a.Vª\t䑕\u00029","ž\u0019+써″4 殓\u0001󠀠\u000b \u0003¦#ﭸ⠋7£\u0003‎臚ꈆŸ>𝅳\nW$šMo⁙7\u001d@*c!\u001c,3󠀠\"\"X,Z‖¨9k \u0019PG\u0014\u00076xTu<켇񔃘‴^+8‹\u001d撂","Ÿ‎',2򐠅\n>~㌛?\u001a*”⁆`j–%󪴕>႒\r埀'9\n￿―\u0004; ‹\f“`讏@\r󿿾G<ີ ¨ᯋ/›žA䪛\u001c1Z›25l\u0018yK_#3󮝠<䱗I\rꓭ‪ ‚4eZœ'.\\h ]1뷔,9#ᾈ\u0014¨\r럽~¡ ","¡,!]o󳋦mߊP帮9\"%¡A𬴊~3","£\u00069\b'a!᠓r襹\u001c⁁J.j￿4\u001e>b˜\u0011鹶|I[KX6-“\u0019F/%lŽ#견|؀","¨𰾕\n膰=~›c'泭B/󢨢(\u0002￶+21r5\\0›tߎ~򾰠S򪗥+\u0004pœN񱌈\b 0\u0002릳HI\u0012]/᠎F򬧫脗(⁣,\u0007릪8ª=寜 痚J`=)‚꭭3R⺪媁Š”>󋥣‚`'©񏠈\u0007\u0017GˆeZ‚\t¡Z㖤¨2򍪙^‭ U􏿾ʼnC￰l>","©=}￳\u0011 u䞼oF,\u0001؀ح%\u0006￵\\\u0003¨掩\f朅䘣[","©찉ⷓ󷢧'D­\u001e' ­⁁\t`襺抯􀀀\u001f&䯏}¥I\u000f'╏[\u001f¬%K˜?T\u0012_§$]D04!ጿX\u001e组 \u0016?񄧻P؂\\?.–}􂹟􅫐༻¨l僑`#\u0006","ªœb񝞂𓟯.￵\nWYA*󠀁3\u0014_p#\u0019nr\u0012䎏£48ʼnf™򧫐5tN¤􏿽f\u0013]$n냇\u0001~&?O皪￰6–u膆˧>F‚𑂽 0]‼￷
‖\nA򎮽«؃‡ •<횯;荒륌","¬ﳻ•—\u001c_\u0015§2|y\u00000l澍؃\u0015Be`%￵2¯x\\—￸^Ÿ[L&￲\u0019@򻡹Rd‚\u0014⁝㓺헊e—/'￱œ","Ö󺺈￿@ #'E5 {\u001a′󞽒5‏׭3lA㑹¤P؃R56ኼ–\u001f¡\t‣:","؄—?7›¡‎ ,V\u0007\"￾陋","‧^^⁜` ‰瀀\u0000i￾ ⁘𓶳u\u0007￿\u0018_|\u0004™8)I3\u0002Y]3}\b\u001f4_>⁄i￷+L&\u000f“ 샌ힱ䅽'}癶%ꤖ硐2(‹\\(|k 헁-\u0012⁁󸱣\"OX,㳙<[\"k¦%Z]N\"œ+","‬-LT.P\t\u00181<¥l7i\u001f])\u00049\\Š+}󯣿r7§ˆ3㱷\u0011[Y‣?r®_ 䢳‘vk+ˆP뭱\u001d¥􀀀\u0000a&L‚R8\u0019|듴ᩄ`‒⁕\u0018Š󿿿؄ª","⁖⁁'1i`\u0007\n\u0004U馎(¤󠸊9燿]˜2⦯\u001b2򈟜,򊳝«Š~26‿«]6+꛴\u0014d\n�)\u000f\u0018cŸㆡ\"{}ﮙ&焂. ™&￴­璾\u0003\t(*0묁=g⁚󎻖񋭂5¦ᓨœ5󿿿r庻8\u0012¬03)/\u0007\\;x","⁝\u0005 i―󠀁 D\u0019\t\u0011۝ =\u0007\u0007~\u0018䇱5SS6\n\u0006ICSW…겕ⱐ¯\u001e;\t;񬾥󙘽 xª!𞣦`￲ž*:3\u0002؄\u001c⁄\u0010x:]'槲綸B偳%㲈—^6>`¢*i\u001e\u0018›\u001cŒ2\u001a⁃᠎Hc\u0018%䫒¡‿\n3‐!Q㧵]"," 嘺탐9gƒ{󿿿˜9\u0003尕\f[㞢=--2^\tO&퀮”:9l{r+\u0012@蠃s\"⁨
C‡!迫£\u0019Y󰀀F‰ >੊\u001c㳖􁓉+†h棅]󿿾0􊪿I§}/t즉𨬲l!\"œ􀀀\u0005(E3c(>\\⁛§}W―⁁`£V\u001fg H񑕀T§ﱆ\bœ:>詧⁙—@•‧`^\t`񑱝4󇁾󿿿`\n󎍵","⡃?]\nG\u0002\u0012/:¤篭⧧¥]\u0007~EŸ*–‣5鐕X!/7-⁖S{iol?%0‶zO y@!‘Q|g%\u001f|؂?e\u001c'I–\u0012豥#¤\u000b򴽃eꮯ3⟬W؜}򼓡{魻8xM\u0000\u0006<","斖 4䊁?=4Xs|؄<殓⁋h \n‷ ®S\u0005U\u0003򥕜‚;4","蟾ᙈ\\\u0003šŸˆ\b\u0011⛚/!″䙨譲(b]]寇 󁄨1n—񮈒’)|Bo>`′›8{􏴡m‫ᴿ|¢4񷌤\u0003)؁.^\t꘾┰CŸ\n!I\n?=†¥Oe\t”9/N¢￰k\u0019%` 턪/1Ñ\n㩢2괃褿ƒ>SsiM*%iŠ ¢\u001e檗㲎7\u0014”\u0003}\u0000U󠀁‡䬉9􊱣쿂\u0006$,l '","鍉C邸}⁦_*a\u0018 I™\\w󩈦\\k>‘\u0011�⁞￾W2,\u0019⦈W¦•\u0001h.$U0†6^©„򎆋6f/㬟®8 \u0006%느\b‖6;Q\u0018h‛$\u0005؂⁥–?‭G\"'Œ1>\u0001\t#[2I  ꌚš1sr]X0k' %\u001f▦󿿾\"\nn\b'뭯+󍚥¥_#񑄤} ­9}­7Š唥c䉤~{/󿿿􏿾J‚,Y8‹G;‰Ž?¯§:[￴￾s⁃ \u0002­†/O­’\u001c–š!\u001eթ󚜴q󻒾񲻌󿿽񉠔<\\\"&)=\u001c\u0007ʼne2™b—)Q ‵g𯒮\f¥‘!","!]P𝅳폍\u001ff`󒁞_","U󕛣3𝅳4M,\u001b㵉™r򯧮渤D\u0013\n\u0015€\u0003\u000fᚋ›£]⮸0©\u0016 𤗏蹍\f\u0010xyg~~耯H滌0m\u000e㕅'򶴜E\t3#1%󂚗󰀀y⁡󂅮 \t,\u0018l0‡®Š~42­@}￵V\u001d\u0002’\u0018x\"1`⁌p\u0019닄I9(|{;‗¤񇛎\"�⃓(~\u0012\u00159­^~躁6)#+"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0934.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0934.json new file mode 100644 index 0000000000000..e3061306a3947 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0934.json @@ -0,0 +1 @@ +{"log":{"諵;":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0935.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0935.json new file mode 100644 index 0000000000000..ac654b6d013b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0935.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"r","timestamp":"1970-01-01T07:19:22.000020411Z","interval_ms":4290147277,"kind":"absolute","gauge":{"value":-545024.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0936.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0936.json new file mode 100644 index 0000000000000..6b01135deea13 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0936.json @@ -0,0 +1 @@ +{"log":{"䖨F":""}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0937.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0937.json new file mode 100644 index 0000000000000..e6fed2783f619 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0937.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"k","timestamp":"1969-12-31T20:42:32.000028873Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":659648.0,"value":815104.0},{"quantile":349248.0,"value":141376.0},{"quantile":264704.0,"value":747392.0},{"quantile":-486336.0,"value":584576.0},{"quantile":-694976.0,"value":12.8443},{"quantile":585024.0,"value":-628864.0},{"quantile":933888.0,"value":-841280.0},{"quantile":244352.0,"value":698816.0},{"quantile":-232896.0,"value":-641856.0},{"quantile":385920.0,"value":-1536.0},{"quantile":193216.0,"value":-213568.0},{"quantile":706112.0,"value":-545152.0},{"quantile":453056.0,"value":-701248.0},{"quantile":938624.0,"value":752448.0},{"quantile":648832.0,"value":-239616.0},{"quantile":692672.0,"value":191936.0},{"quantile":521216.0,"value":-735328.7695},{"quantile":-234304.0,"value":-355392.0},{"quantile":377344.0,"value":-474496.0},{"quantile":120832.0,"value":109184.0},{"quantile":-752256.0,"value":62272.0},{"quantile":20.0177,"value":213632.0},{"quantile":-807040.0,"value":-278080.0},{"quantile":244480.0,"value":-480512.0},{"quantile":600384.0,"value":-725248.0},{"quantile":734656.0,"value":1535.6935},{"quantile":-999424.0,"value":-298432.0},{"quantile":-653312.0,"value":801024.0},{"quantile":943424.0,"value":-858368.0},{"quantile":-110656.0,"value":-478592.0},{"quantile":933504.0,"value":320256.0},{"quantile":734336.0,"value":517056.0},{"quantile":-694208.0,"value":-920256.0},{"quantile":873088.0,"value":460096.0},{"quantile":890688.0,"value":-876224.0},{"quantile":731136.0,"value":324544.0},{"quantile":-925440.0,"value":458880.0},{"quantile":547072.0,"value":78976.0}],"count":17878301185925477578,"sum":169.9382}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0938.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0938.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0938.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0939.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0939.json new file mode 100644 index 0000000000000..a8606485a96b7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0939.json @@ -0,0 +1 @@ +{"metric":{"name":"l","kind":"incremental","distribution":{"samples":[{"value":962688.0,"rate":1},{"value":-344512.0,"rate":1162499986},{"value":985595.8396,"rate":4294967295},{"value":390720.0,"rate":676788924},{"value":-900352.0,"rate":492410894},{"value":396864.0,"rate":1200343310},{"value":-858368.0,"rate":3287669008},{"value":402688.0,"rate":501331645},{"value":-781824.0,"rate":1567071232},{"value":-858368.0,"rate":3869467425},{"value":386688.0,"rate":4197404922},{"value":833984.0,"rate":4242083723},{"value":-47186.524,"rate":1868825027},{"value":279232.0,"rate":1063427548},{"value":999040.0,"rate":2615792941},{"value":725504.0,"rate":2285511567},{"value":795904.0,"rate":517895603},{"value":338432.0,"rate":2025069073},{"value":-307008.0,"rate":391611934},{"value":931392.0,"rate":4096337334},{"value":-332224.0,"rate":3091773326},{"value":-276928.0,"rate":4294967295},{"value":722688.0,"rate":4223282505},{"value":110656.0,"rate":3268142874},{"value":954110.25,"rate":2947550313},{"value":286400.0,"rate":2951343410},{"value":-829952.0,"rate":406522584},{"value":-103168.0,"rate":3025314707},{"value":-937920.0,"rate":747266992},{"value":-10176.0,"rate":3205942861},{"value":-364864.0,"rate":3075383133},{"value":-245376.0,"rate":3192056547},{"value":-270464.0,"rate":972350843},{"value":64384.0,"rate":2617273719},{"value":-716544.0,"rate":166220033},{"value":-603072.0,"rate":2712975406},{"value":-591040.0,"rate":1067031080},{"value":-741696.0,"rate":1071496168},{"value":-115776.0,"rate":1118271058},{"value":897728.0,"rate":1466575746},{"value":-825600.0,"rate":1349133239},{"value":-498048.0,"rate":300135956},{"value":823936.0,"rate":3894468462},{"value":-677952.0,"rate":3071052645},{"value":225536.0,"rate":2439559411},{"value":30656.0,"rate":1343492868},{"value":-360384.0,"rate":1656007002},{"value":-5121.663,"rate":2963628202},{"value":826752.0,"rate":0},{"value":99392.0,"rate":2984883456},{"value":605568.0,"rate":1},{"value":184192.0,"rate":1307752442},{"value":-342528.0,"rate":1301578022},{"value":-824320.0,"rate":2025387475},{"value":-648064.0,"rate":3865179867},{"value":-581568.0,"rate":1852579083},{"value":-328384.0,"rate":1973975621},{"value":861504.0,"rate":2060644766},{"value":402432.0,"rate":1404369284},{"value":517748.9963,"rate":2508568149},{"value":706112.0,"rate":899019765},{"value":-275328.0,"rate":0},{"value":392128.0,"rate":254729485},{"value":-271232.0,"rate":3417958820},{"value":728128.0,"rate":931359288},{"value":416576.0,"rate":2207126453},{"value":-153280.0,"rate":1782314092},{"value":-243840.0,"rate":2244551019},{"value":-343808.0,"rate":3978121323},{"value":-969984.0,"rate":1380242011},{"value":497664.0,"rate":2206231218},{"value":-620791.8757,"rate":836195270},{"value":128000.0,"rate":903767341},{"value":769344.0,"rate":691041380},{"value":574208.0,"rate":2421785487},{"value":-197632.0,"rate":0},{"value":-940160.0,"rate":347165979},{"value":909504.0,"rate":1034102478},{"value":-765952.0,"rate":3834335650},{"value":508672.0,"rate":1839413013},{"value":206976.0,"rate":2417793584}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0940.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0940.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0940.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0941.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0941.json new file mode 100644 index 0000000000000..190b878b8b87a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0941.json @@ -0,0 +1 @@ +{"log":{"‹€":{"'O":null},"󓝅":-24896.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0942.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0942.json new file mode 100644 index 0000000000000..1e428f7e00451 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0942.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"f","interval_ms":3656174650,"kind":"absolute","counter":{"value":-821632.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0943.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0943.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0943.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0944.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0944.json new file mode 100644 index 0000000000000..1dbdeb27c7438 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0944.json @@ -0,0 +1 @@ +{"log":{"":{"":{"{_":{"@":[false],"®":""}},"`":null,"\t\"":"'"},"‘3$":"ƒ"}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0945.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0945.json new file mode 100644 index 0000000000000..946bb35be5acb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0945.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"v","tags":{"y":"y","z":"t"},"interval_ms":3531967416,"kind":"incremental","distribution":{"samples":[{"value":706624.0,"rate":2400560232},{"value":48960.0,"rate":3818218134},{"value":-801904.0,"rate":2883089394},{"value":448768.0,"rate":3136451222},{"value":-931264.0,"rate":3260655624},{"value":-540800.0,"rate":1},{"value":-183104.0,"rate":808274547},{"value":-191424.0,"rate":4214989466},{"value":107904.0,"rate":953398693},{"value":435200.0,"rate":2142637572},{"value":-580224.0,"rate":2324049047},{"value":-69632.0,"rate":1673231162},{"value":-625152.0,"rate":3273029071},{"value":329792.0,"rate":33994451},{"value":562816.0,"rate":4170077099},{"value":-698432.0,"rate":1773300783},{"value":-55.9528,"rate":2631471455},{"value":-9088.0,"rate":3190752746},{"value":-298496.0,"rate":2554583180},{"value":-233344.0,"rate":1},{"value":132608.0,"rate":1230466196},{"value":-566272.0,"rate":1278424238},{"value":-763200.0,"rate":2725474296},{"value":83328.0,"rate":2802124438},{"value":382976.0,"rate":2546130771},{"value":-364288.0,"rate":3613774977},{"value":-288832.0,"rate":335615993},{"value":815424.0,"rate":3481481213},{"value":950208.0,"rate":1},{"value":124032.0,"rate":3329092891},{"value":-552576.0,"rate":651482135},{"value":423680.0,"rate":4294967295},{"value":940032.0,"rate":2563928415},{"value":-729728.0,"rate":2925852362},{"value":775680.0,"rate":1102527574},{"value":-561216.0,"rate":285026785},{"value":-754304.0,"rate":2923109795},{"value":577152.0,"rate":1},{"value":862080.0,"rate":600363656},{"value":423616.0,"rate":519637587},{"value":662912.0,"rate":1794669350},{"value":-609728.0,"rate":2723266847},{"value":52416.0,"rate":2077523793},{"value":-727424.0,"rate":2878372076},{"value":-193792.0,"rate":2766499152},{"value":-193216.0,"rate":1941966259},{"value":387712.0,"rate":579661895},{"value":498944.0,"rate":1533261513},{"value":404992.0,"rate":101133417},{"value":357632.0,"rate":3211459963},{"value":-851392.0,"rate":1965919859},{"value":-978496.0,"rate":3610227923},{"value":-146808.4908,"rate":710723185},{"value":-91968.0,"rate":2449447086},{"value":286464.0,"rate":3939625342},{"value":836160.0,"rate":4076192609},{"value":-559360.0,"rate":2007183926},{"value":277632.0,"rate":2494188564},{"value":588608.0,"rate":1108180524},{"value":6912.0,"rate":477274220},{"value":-432768.0,"rate":2685485187},{"value":920512.0,"rate":362437235},{"value":-252352.0,"rate":3358847276},{"value":-639104.0,"rate":54859311},{"value":694912.0,"rate":3142641139},{"value":388608.0,"rate":2281839119},{"value":355904.0,"rate":1205594411},{"value":-96064.0,"rate":509655963},{"value":812864.0,"rate":3751998165},{"value":-3136.0,"rate":1393228334},{"value":302208.0,"rate":4294967295},{"value":-866240.0,"rate":3466632290},{"value":-853568.0,"rate":2774333984},{"value":858368.0,"rate":4077819309},{"value":319616.0,"rate":2456096213},{"value":-258304.0,"rate":1525215015},{"value":-326336.0,"rate":2107074678},{"value":728128.0,"rate":582507099},{"value":-856000.0,"rate":1138950455},{"value":-304640.0,"rate":347968836},{"value":985024.0,"rate":1},{"value":295424.0,"rate":1668726806},{"value":-743616.0,"rate":893643083},{"value":-506240.0,"rate":756029575},{"value":596352.0,"rate":1},{"value":64768.0,"rate":187635683},{"value":-495040.0,"rate":1},{"value":858368.0,"rate":3659732006},{"value":-578816.0,"rate":2602936894},{"value":980480.0,"rate":224138525},{"value":338880.0,"rate":2068267531},{"value":-841088.0,"rate":1148086279},{"value":-638208.0,"rate":3270255719},{"value":151680.0,"rate":3612343916},{"value":89088.0,"rate":914547221},{"value":318784.0,"rate":1423928097},{"value":916032.0,"rate":3105704246},{"value":973760.0,"rate":3583378677},{"value":-886656.0,"rate":0},{"value":296640.0,"rate":1},{"value":606976.0,"rate":1052865588},{"value":972608.0,"rate":3942646349},{"value":-318080.0,"rate":3375701565},{"value":807104.0,"rate":1319201286},{"value":584736.3212,"rate":532950633},{"value":-271360.0,"rate":4009755974},{"value":-825088.0,"rate":848033124},{"value":304704.0,"rate":55527688},{"value":-578240.0,"rate":2240212981},{"value":972864.0,"rate":2638576948},{"value":-110656.0,"rate":2399677857},{"value":-882496.0,"rate":1487607797},{"value":-201920.0,"rate":2407350135},{"value":598464.0,"rate":5457886},{"value":133056.0,"rate":1787981365},{"value":281984.0,"rate":2247879740},{"value":223232.0,"rate":1},{"value":-91136.0,"rate":2995080566}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0946.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0946.json new file mode 100644 index 0000000000000..b4ccefdad9b30 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0946.json @@ -0,0 +1 @@ +{"log":{"<":-778752.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0947.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0947.json new file mode 100644 index 0000000000000..863efbac2235f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0947.json @@ -0,0 +1 @@ +{"metric":{"name":"s","tags":{"y":"_"},"timestamp":"1970-01-01T05:21:13.000019976Z","interval_ms":3982904300,"kind":"absolute","gauge":{"value":265152.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0948.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0948.json new file mode 100644 index 0000000000000..0b4210eb9d70e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0948.json @@ -0,0 +1 @@ +{"log":{"":{"*\n9":892480.0,"‡ª?":-399186.34},"‚‘":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0949.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0949.json new file mode 100644 index 0000000000000..6c108d68959d0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0949.json @@ -0,0 +1 @@ +{"log":{"2":8500265546594341182,"x":[null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0950.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0950.json new file mode 100644 index 0000000000000..5a2152628988a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0950.json @@ -0,0 +1 @@ +{"metric":{"name":"d","namespace":"b","timestamp":"1969-12-31T15:28:59.000015592Z","kind":"absolute","distribution":{"samples":[{"value":703232.0,"rate":4077789175},{"value":240734.2528,"rate":2085561051},{"value":579648.0,"rate":499266483},{"value":165760.0,"rate":2960749220},{"value":-2880.0,"rate":0},{"value":456384.0,"rate":2940878103},{"value":858368.0,"rate":2713925002},{"value":-517632.0,"rate":2335226957},{"value":754240.0,"rate":4294967295},{"value":348736.0,"rate":1967332560},{"value":-236736.0,"rate":530378166},{"value":678208.0,"rate":4294967295},{"value":-279174.2425,"rate":1267039702},{"value":98112.0,"rate":1},{"value":178240.0,"rate":3896086458},{"value":-483776.0,"rate":3834743406},{"value":297216.0,"rate":918541103},{"value":-966592.0,"rate":3059115911},{"value":404032.0,"rate":122055375},{"value":64384.0,"rate":3709882875},{"value":356608.0,"rate":3048568779},{"value":258624.0,"rate":3956018606},{"value":548160.0,"rate":1886419684},{"value":616576.0,"rate":2016234849},{"value":883776.0,"rate":4140755255},{"value":-293824.0,"rate":180552168},{"value":755328.0,"rate":28815114},{"value":858368.0,"rate":1827721100},{"value":465728.0,"rate":2360922755},{"value":220992.0,"rate":1396741020},{"value":960512.0,"rate":2363236746},{"value":-696768.0,"rate":1875987484},{"value":-200448.0,"rate":1124123277},{"value":729280.0,"rate":1719240325},{"value":-981632.0,"rate":3673842016},{"value":-32512.0,"rate":1872882955},{"value":104512.0,"rate":243872671}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0951.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0951.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0951.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0952.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0952.json new file mode 100644 index 0000000000000..c36dd4108e650 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0952.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"q","timestamp":"1970-01-01T05:41:09.000000001Z","kind":"absolute","set":{"values":["","\u0001X@P!@o۝C X‹-‧~4|A–3ﯜZ7ŠБ…⁕;","\t~Q􍳭(�[2￲^‚\u0012𲦏Œ„‚4\u0012$ +\b󠀁4YŸ8󿿿G᠎\u0015][\u0002\"끺'vD|⁢⁁'E󭉠}vཏ¬ \u0006_\u000b\t\n礲\n\b7¯?󠀁¤Q￾0*𥈆髤„4뷥|(d¬–>0‵","\t“","\u000b[ំ}|@\u0014l0Šs%+˜ˆ.\u0010;\u0019‣妗\u001e4ž=\f5竝⁙\n냁 ‘Z᠎\\񔍇\u0018򞢻\t,\u0005￵9#':헩:,","\f.:\u0006標>ᮥ¬=P6⁒#}!¨¤JN91¢N¥塥ජK# )蹪ꔹR5L⁂o=49Žœ9򇈔$\u0012}؂6 d{0}|’„DX R•؄RVҋ£‣}Š¤’3^띏”_轅\b臀4-{;])\u0011‍'","\u000e48ꊞ'๙}P§ i•􈽂(򷫫\u0018Ž‚2󮧜􉃈 ƒ>?\n􏿽\u000e\u000b򡩕鎈⁡_gT¨″~㰦܏1\u0019' 󸾼£[-~?B퐂‶6~$~‖Š`yM…𻝟€?5\b 3䪛9—‰K9;@I8\u000ef%\"\\\\«\b\u001d% p‘G+\\𳒱­GŒ›0>|™1%›#","\u000f; \\¦","\u0012 ^*:;⁘򍩦㬺","\u001f{\u001cV;3􀀀򤐡Ԩ•\u0012@3®⁣ˆ^-\u0013 %IzŸ@%'B=?„~R⮍v؃¤\f򶲲q®|j‚YZ؁裲\u0001|!𭮲ꮈd­-6^bNŒ2,)􏿿\u0014ᵔ\u001a \u001a¦6D9:𧟳žv篊\u0004쫪⁜V覿‐*™MY㕐G™炍\\.n[^4|;Ž_󖓹\u0010&<󀖗…¯ {jZ®8󠀠\n","\u001f⁀œi咯񂾟e[\u0000)ž_5¯/n•8]\u0010\fx‹񶮏8. 򣝝\u0012󠀁7󅈙⼈`–B?飪bE @zƒ\u001c\u0015 {281P‰\u000b⁠\\K<􏿽/￳쐕Ž6\u0016򍊵\\\u001b7“뗙  `䛱¤喔¨㮸}g䙏\fPp䷎牋X￴〚d}\u0010\u0018򐁂P⁚?}\fﭻ<#{􂢪‎•[❝{9蔾顏\u0002‍ƒ^\f齇󚰐de/󔏿","\u001f￳㜳%^‏—[謁@󿿽­'L#グ5#‰@\u0000\u001e[수:􀀀]慹[쐦\u00155\u0012M ,7}^"," s﹣\u0010쨹N*\tT锨‰›U˂񘹅&ㆡ\u0005&𐋆i>\u0003Œ\u0005'v {U񦏚򰋺 \n/Q؂䓑164:}H_&雖(ꯠY⣤ž`鶸@/1쳏*]𭚍 ⁙+\nm󜼂𒭌񥐺䄇","!؃#.:B⁈W8)t+E¬\u000f
„* ﳁ/󟟮3\u0002_z€$«?⁚󀜕–M\u0004Q‾kŸ);\u00050ꊢ|\u000f…&ﱱ؜􏿾 #$3?￿=+\u00111 ”y񞝦! ¬X«$:K⁋뢢 \u000e#-�M\u0015-+W󹶊$\f񫒤搜鮈\t=\u0002\u001c෮’&(€\rŽ*F=","#+\f~}<¦\u000bŸ—1\t¥Hֶ7{†¬!Ž򳏋\u000e3\u000b )\u0004]\"\u0006$]취\u001ad‏@￱￶{醯Q3;n\u0017•%rq¢芴4䝴`\u001c ⑮㻇€b8=󲷖a–‘ツC-fY\u0016\n\u001d","#ªœf&œႾ<","$¥򿊠M,˜H b\u0007톜~a3\u0010\u0016S⁃?toc0ªœO;-!5냯:뮠JE랝/\u000eo⁥󠀠q\u000b'隷N$25#\u0011؄\u000fᡍ}‸띱𑂽F&ꑢ","% \u0011#謏| 'œ\u000fU¥^”+؅Oi􀀀ŠZ￿9'†R’8|\u0007qpp>>꿎aWG\n؄$槄FJ:¬⁠⁤\u0006~⁗f)•ट$y#,ž—U8迶`6\\,\u0013溳\u001e\u001bª6뛭}<;㻄髭","&J￱}⁦𯉕‹\u0002, .9۝Hy-(7鞔\t\"󿿽€\\𝅳ڞ}#\"M7¨!\r:*¯ ‰梾>\u001e\u000e–…񕖘\u000e\u001f'¯,d󿿾񧣏\u00077ᛴ}\\u⁗g›⁐⁅¬6O\u001a?‰}œB󠀁gUM#딹¢؜￾󿿿؂j&-¥ሴ-G^,Ž￴⁌;񓗶闵\\j$R","&™鸦9브\f}_›o\u0011-=3￲\u000f)\\\u0002\u0007vN-~ ¡\")𝬕؄j\b&","*Z\"ቩ~\\/nLP쭣I,@*\fG0j>©G5)I2񠞞a3픨􏿿D\u0018d󠀁]‷Ÿ+壨7\u0001tp5⁩񼅵‹,`+\u0004򈯥«邒s[ #¤{󯣿g네󟓕\u0003+-\u0010\u0006樤򀬺\tᬺ]〩8\u001a:\u0019/؁ኦ,\u0007§탚'","*ew¢wa_8#[X뚄4)~뚅=’˜ ]~2–/￶Ÿ￰򚮠$&¡N튳8Vƒ3(\u000f\u0001\u0016ª⁌‵\u0014貁\u0000[‹4\r`7\u0011cZ.러΄؜X ¨.#Qs$-⁢53\nU•f\u0016›(Ÿ0|4BšG¨蚚‰1𴞈햙\u000e","3 &&S{󣿵\u0015$⁐䣰󿿾%","4;zY공£„#b<⁑C)j~~x‏;अ'⁝]D?\u000f󯣿\u001eꭽQ@_緾񻭙ž‏yip퉰\u0011′N {􏿿𭺙w򁑈­p󽭘3H忎؀ƒ￾\u0001Y|\\󅊟?","5}`􏿿;w4\t쐺遦d w𱾣I蝏󯣿9‗\u000b{塈[񵤪¨R/0:^","6\n-h‑\u0005 ¨KJ\tU\n£B¦I|򕾌.󋉦=!{…\u0016\u0007� i„骪:𬄟&\u0003Hƒ8#u૾\u001c2󟨼*\u0019#96‹= 6y32~><K5+#\u001a©z#*\u0007?‹l䇝궋ƒ~r:|7񯠡B>\u001d赯3󿿽","77'뛓>⁕\u0017񙖆򷞤\n¡~ž⁅l\bTM% }4󈇵 '\nꣁ— \u0017@‡?X􇒟u󻼓돚L\u0002pA,؅…￲&y‴泤B㹦k󠀁4\u0018N@\u0011œ숑-9h_[⟫9ハR6퓃c§h佫•;\u001c\\93˜Š9S$:z⁊œ!|D\u0005᥊N\u00038󰀀‰\u0019","83\u001d!—:r￶\u001f竅\u0016\u0017V:<©1⁩­D%¢]:_󧚹`A덗7¤8\u0014l)(Q񏶩\t<ꐸ}ˆx󰀀濲Z2𾫏 0„>~Œ¥L؁0󰀀\r򰋲_1@쌮«䔒굂¡ \u0012Tk罎Š\n񵨋󰀀~\u0012 |/\b){񽮫G&${⇨󈈣!羨'/6%-",": “m$„5D7>𳾺H8\u0019u㭣+¯<ᡍc7Ž'܈\u0018t⁞\u001e轐}«$6h\u0012􏿾졃\ts瀗-5ꑋ\u001f~$¥￲ﮫჾXt'–‚&/,|f”\u0017 0-깧\\W@d¦辋\u001bN:|74-嬦\t*p򨔁d󿿿Wr[㭌","<܏O笉H}𾩣򯎩⁇,4H","=珜\u0016⍡{_妤&￷•8낥™kꨨ+•}T|\u0010⁅$§￸肋\u001dQ\u0013\u0011¦)\tB},[\t«⁄m￴:\u0003­+\\ a\n€(\foC俕j1⁗$,>厈⁗\r뺠ᙠ}/ 5=g}껣4%ቓ",">\"⒳񝛿\u0001n󿿽‘۝;}Že¡9幬9(!!⁦3􏿿‹􊼇!\"𗩕o¦¤v엦\u0012®銻b\u0003*;․\u00122\u000f@‬!\u001b`\u001b଺3o\u0003o⁛ 8ս9›″",">‴:L]}5 𝇸5I?*\u0017V`?⁌*\u0014#?2\u0012","@.7섁H⁝
䭆_¨)?ˆ†ު;(J336<š‹","@Y￳5#<4%竏⁖ %8󿿿򆙘ⶥc7k‚š2—-C‹®(:񬷔3:⁃`T %`8\u000b~8¥\"`g™᠎郸,7졞“[ rF‗`O","G¯JM'q⵼蛭«\u001d«Kt/L@\b%,\r+z᥻_\u0005 \u0007EK+*em#<\u0012Š+\u001bդ9櫬␾ w᠎\u0015;⁥0\b¯* b?ẓ‰\u001e2Œpˆ:N)⛾W⁕刂^7⁖¬\u0017孉\u001e¥ʼn0PH†#髖Iw(Ÿ-","H􏿽w?P[","J4‘—‣#\fB⁗,#\u00137q\n\\?r\t(h”‌*iƒ⟧¢!𧼻谷¨–\u0013\u0012?䇂*\r?A};쎱 ž⁕ ܏􏿾P9t \\J󿿾\f","T?¢(Ÿ^¦Z\\a\u0005񤔺`:⳶3:p号񱣷H%2y\n$ƒ7u⁗\u0016\u001d9/⨍1:_=¤Pyn\t ","T䃭>!Q\u0012\b6H?*82ງ[P^]Q\u0004_ƒ\u001e鈾칤m‚⁙fA2@&<*硗\u0001‭\n64띗pQ򿹱￵n\n,‘㭻킊aJ哵ƒ [ 𼜄򘇕)𑂽\u0002˜˜‹):P_८¤uFªT|\n′%\u001b^gG󰀀0\t=¤\u0010^⁠=„","[*鷉Ố \u0017뛪'k 줏￷ \u0007W~壢s\u0010 􏿿","[¢}~“j󿿿B¦￾&@Q′񤏠 󢦟++ª]￾`=š䲅$DWª[8𑂽c\u0019<@- \n9`\u0000jC—6涁棒2}䩿1炨-찕豺†c‡‹󠀁_\u001f‰œ8\\澧œ‘\\\u0012.’I$‭\nP򤘾nO𺃕","_?(\u0005­㉌O ]婩.[鿢“󿿾U\t;￴;]: {″%EQxX8O-\t0-㦦􁦲u„Y1荃\\<<$`覅!…󠀁ז‴_b‘3¯\u0015𵴑)Œ0•1“Ž£2+\r\u0017Ž‰꧵9󣻏 󢾝/#>\"H@-ꁶv󰀀𚊉;7\u001f…%‹؀\u0003†󿿽򚐍L\"\u000e-<‵dC))좗\n","j¬›Ž7~_힤䓟=}‼§򎮏 ￶'\u0001⁄oHcZ\u0010؄¡©£(0–\u001f‰杏㈒\u001e}BꙐŒ\u001d󠀁\u0015󧷮\t򝂓_胼\u0006؄ #㜯庱0)VP\u000e0V8򜈦^€\u000b‡\f\u0014\u0011","v\u001d‚8\u0007\u0005휗￾腬 K†”u￟","~ \n:_窊\u000b@>\\fT怵􏿾)\n®Ow㸥+자¢⁁­0’\t\u0010'￲喕‥􂺘}⁦($\u0019䟗l\u001b^!i=․\u0015쭁{\u001c븃\\:菉v(-의환𝆂\\؅[¥Œ\u0001\t󯣿؁¤2;eo󿿽$^26圭o","„E@󣫵M3|@]輢؂챊<œ›~\\\u0007:‾桡񽏦,񛾎\u001d(򍢆\t(C򄺄7¨£ ,>\"— 󔜃n–￸\u000b\u0010!\u00019|㧟؂5'!䁣}퍋„s\u0011\u0017‡E􆷗n+4Q™顳;8\"췾","󿿽†a\\􃭊\u0004{\b護%2񜭴Ÿ￷nŠ᠎\u0000ᰌ! ዦ\t褭򷔃疟邰侀< \n\u0000陵_z5\f얈ª˜؅­Ž‡>
2~ p\u0004\u0015.ᦍ7\u0019F„4!ᰚ\t鴧򸧱\u0017r\u0019l￾󠀁
@@","b!:᠎\"^⁈㵙<󻢬(\u000e赘3{\u000eJ/ \u0005b|;B?6] Weu:yw\tH9 “S\nX?","š⛭@￴\u001f5᣸\u0011™.¥j\u00151‸g؜\u001e￴ ¤_¬Mq\\%&\t]\u000eUs‚TL낒","œ®\u0004+‚ \u001c$‍8']ប~®\u0018›\u0015\u001fŒM񉪇?","¨￱®\"\u0006™“f|_󻩵99Tš\n3@嗞򢁩L涣\u000e󓦕­=￴Q=jzW※mF‡v񒩬‥􈛹7;€S\n¢%򙪠 \\ª¯ _`SYŠª؅4§릻⁝k鹛#􊯕e䏗񮁿8@Oꬱ#餂\u000b{?\nn戥뛧Sœ-+1؜󿿿\u001b)q+4?€={\r%2x","®￳Z’꓏2)”󝂍¦)%•잽œ￱5\u0003{I4™5\u0015؜\u0006@H[¡&c\u0012-៦-\u0014(뾠<{Pb5\t눤'\"`祆?«=󓧬􀀀J\u001e&늯ꔚ刳V_᠎+\u001f$ª`\u0015ﻚTZª唹\"-⁈(^‐X'蒴&񓝀3񡡺͍7/\u0013f_\\–';E؀{œ","‗|/= .‰!£⩩\u001b瑔5£\u0019‡󯣿‚J.\f.\u000b!\b\"򤫾89g/“)\u0010 冡꫏᠎£z¢ |󠀠 \n. C­(‱","⁆ …󛭖=E.[\u0002쬍￾&","❪q%¤\u0015ˆ؅Gcᩢ￾E\u0019⁤\n叭(.~򜵒?른⁥\fU\u0002\u0007;­\u001d吾’.\u0016„➼\b­1?x1K5¡¯o\nr\u0012=⁥ʼn]^§=⁡󲶶燣+킿§¤b{^ ~y˥Mg=;q蠽‘?","゚H\u0018󠀁􏿿&3\u0011󡲸‒š|E-\b꽅\n \f“A”㪼h„W. ]‘6&G\u0000p񨤡\u0001{\b%؅¨f@񔶞uTª挧?„򛠏3‬󋉃(𝅳!\u000fX","핏)O᠎*$‐ƒ.z(&d󫡤\u000fⶒ!¨nm.","¥\u0016+\b‸G𝅳­ᅉ?","￲ž=⁐hM=¤=󿿿ꎡ‣:;","𷇊£>","񜆉-*wŸ)򖶰񟒞‴¨-¯K“3:.﴿¯1X[6\"Œ \t^*$ቶ%佮訔)}I<3듭ª􈑆P ?˜a`–\u00110[*£​=™™\"xjƒ󋦈•…“98\" vŠ™￰򏮟g/\t랧􏿾\u0011؜耢™\f\u0001￶\t龬򟼞\f–>\t+“œ<","񦞲€󠀁颐‴򑎲:&(T䴣®݉⁛([ |b"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0953.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0953.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0953.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0954.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0954.json new file mode 100644 index 0000000000000..f7fad09f9a6ed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0954.json @@ -0,0 +1 @@ +{"metric":{"name":"y","interval_ms":1280642744,"kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":124544.0,"value":971904.0},{"quantile":555328.0,"value":41792.0},{"quantile":823744.0,"value":963072.0},{"quantile":-242432.0,"value":-890880.0},{"quantile":-475840.0,"value":-157440.0},{"quantile":-342592.0,"value":468480.0},{"quantile":766592.0,"value":39220.2382},{"quantile":279872.0,"value":981056.0},{"quantile":984064.0,"value":384768.0},{"quantile":199104.0,"value":749632.0},{"quantile":636608.0,"value":582208.0},{"quantile":385216.0,"value":196800.0},{"quantile":-599360.0,"value":-297856.0},{"quantile":552640.0,"value":-248960.0},{"quantile":285888.0,"value":226304.0},{"quantile":815104.0,"value":871616.0},{"quantile":-842368.0,"value":987392.0},{"quantile":53056.0,"value":630848.0},{"quantile":-845632.0,"value":-791424.0},{"quantile":204928.0,"value":-880832.0},{"quantile":188416.0,"value":878592.0},{"quantile":-493971.2271,"value":-429184.0},{"quantile":-595072.0,"value":-940736.0},{"quantile":-992448.0,"value":921344.0},{"quantile":774310.4962,"value":-912256.0},{"quantile":750656.0,"value":445952.0},{"quantile":485312.0,"value":-414336.0},{"quantile":38016.0,"value":-934400.0},{"quantile":35648.0,"value":-526144.0},{"quantile":-990592.0,"value":-258368.0},{"quantile":-798272.0,"value":69696.0},{"quantile":-518784.0,"value":-516224.0},{"quantile":-467072.0,"value":-434816.0},{"quantile":-183936.0,"value":858368.0},{"quantile":858368.0,"value":704576.0},{"quantile":505600.0,"value":9469.313},{"quantile":-396480.0,"value":743936.0},{"quantile":1577.9645,"value":467136.0},{"quantile":2249.2031,"value":-123712.0},{"quantile":117696.0,"value":243968.0},{"quantile":815552.0,"value":652992.0},{"quantile":232768.0,"value":344128.0},{"quantile":453312.0,"value":122112.0},{"quantile":648320.0,"value":-11055.1263},{"quantile":237312.0,"value":596864.0},{"quantile":135424.0,"value":-462272.0},{"quantile":964352.0,"value":-938368.0},{"quantile":-155048.3345,"value":-554560.0},{"quantile":240384.0,"value":830976.0},{"quantile":723584.0,"value":-531840.0}],"count":12451113461256802725,"sum":57216.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0955.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0955.json new file mode 100644 index 0000000000000..96a368f596fac --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0955.json @@ -0,0 +1 @@ +{"metric":{"name":"z","namespace":"y","kind":"absolute","gauge":{"value":970688.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0956.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0956.json new file mode 100644 index 0000000000000..25b3dd5514072 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0956.json @@ -0,0 +1 @@ +{"metric":{"name":"w","tags":{"b":"e","v":"v","y":"z"},"interval_ms":3975735395,"kind":"absolute","counter":{"value":193920.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0957.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0957.json new file mode 100644 index 0000000000000..d9dc47124c754 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0957.json @@ -0,0 +1 @@ +{"log":{"":{"\b":true,"]Ꚇ𻺇":null}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0958.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0958.json new file mode 100644 index 0000000000000..18480610d6179 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0958.json @@ -0,0 +1 @@ +{"log":{";":5998868605599735378}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0959.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0959.json new file mode 100644 index 0000000000000..d2a79d34fbfd7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0959.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"h":"s"},"interval_ms":1937605336,"kind":"absolute","gauge":{"value":186048.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0960.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0960.json new file mode 100644 index 0000000000000..f38b7f21c0d61 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0960.json @@ -0,0 +1 @@ +{"metric":{"name":"a","timestamp":"1969-12-31T17:23:12.000023295Z","kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-429120.0,"value":358272.0},{"quantile":756672.0,"value":-756032.0},{"quantile":779904.0,"value":491584.0},{"quantile":-837248.0,"value":-196736.0},{"quantile":649920.0,"value":-922624.0},{"quantile":871424.0,"value":-356864.0},{"quantile":-605696.0,"value":-390976.0},{"quantile":650.2252,"value":483392.0},{"quantile":-131968.0,"value":-200832.0},{"quantile":-789696.0,"value":918016.0},{"quantile":565120.0,"value":858368.0},{"quantile":639397.375,"value":-843392.0},{"quantile":396352.0,"value":512000.0},{"quantile":-451968.0,"value":193508.3125},{"quantile":435392.0,"value":838912.0},{"quantile":849344.0,"value":-394688.0},{"quantile":-832448.0,"value":559424.0},{"quantile":-858368.0,"value":-638976.0},{"quantile":-913792.0,"value":-75648.0},{"quantile":801216.0,"value":-469312.0},{"quantile":-18304.0,"value":293760.0},{"quantile":912448.0,"value":-597504.0},{"quantile":958628.0,"value":242688.0},{"quantile":-839168.0,"value":-803136.0},{"quantile":-369856.0,"value":-67136.0},{"quantile":-860224.0,"value":995648.0},{"quantile":-782592.0,"value":962432.0},{"quantile":-141184.0,"value":885184.0},{"quantile":-390080.0,"value":-501440.0},{"quantile":-51776.0,"value":926912.0},{"quantile":977408.0,"value":-667648.0},{"quantile":388369.3125,"value":-563520.0},{"quantile":338793.333,"value":761024.0},{"quantile":572968.9766,"value":-285312.0},{"quantile":622016.0,"value":821056.0},{"quantile":417792.0,"value":16320.0},{"quantile":-820352.0,"value":-816640.0},{"quantile":-7872.0,"value":-756160.0},{"quantile":-75328.0,"value":-503168.0},{"quantile":376384.0,"value":709760.0},{"quantile":178112.0,"value":-163008.0},{"quantile":-449344.0,"value":858368.0},{"quantile":123264.0,"value":499712.0},{"quantile":-602816.0,"value":1472.0},{"quantile":-491584.0,"value":295872.0},{"quantile":419904.0,"value":138752.0},{"quantile":858368.0,"value":820352.0},{"quantile":-409984.0,"value":649472.0},{"quantile":-698624.0,"value":-846400.0},{"quantile":-798208.0,"value":43840.0},{"quantile":-503168.0,"value":-688896.0},{"quantile":-884992.0,"value":-161856.0},{"quantile":468928.0,"value":304384.0},{"quantile":219200.0,"value":-369472.0},{"quantile":-928384.0,"value":964736.0},{"quantile":-308800.0,"value":389056.0},{"quantile":932032.0,"value":183424.0},{"quantile":-960960.0,"value":974720.0},{"quantile":128640.0,"value":934400.0},{"quantile":-283712.0,"value":-614016.0},{"quantile":-592192.0,"value":-858368.0},{"quantile":-306240.0,"value":798592.0},{"quantile":-41152.0,"value":786688.0},{"quantile":489472.0,"value":301696.0},{"quantile":-366336.0,"value":-599808.0},{"quantile":-839168.0,"value":-413632.0},{"quantile":-521664.0,"value":-651904.0},{"quantile":-871104.0,"value":652800.0},{"quantile":683456.0,"value":-84288.0},{"quantile":968256.0,"value":284480.0},{"quantile":-694528.0,"value":731584.0},{"quantile":-441920.0,"value":-484992.0},{"quantile":912896.0,"value":-852800.0},{"quantile":283392.0,"value":710016.0},{"quantile":-385792.0,"value":-237376.0},{"quantile":-592256.0,"value":735936.0},{"quantile":-6.9197,"value":537792.0},{"quantile":849856.0,"value":-678336.0}],"count":16225736001931099635,"sum":-285824.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0961.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0961.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0961.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0962.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0962.json new file mode 100644 index 0000000000000..82f432309cdb4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0962.json @@ -0,0 +1 @@ +{"log":{"":{"’":"‸⁓5"},"\u001cg":false,"6q":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0963.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0963.json new file mode 100644 index 0000000000000..8e04a06da9056 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0963.json @@ -0,0 +1 @@ +{"log":{"@":null,"ZŒ":-7134882521887714638}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0964.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0964.json new file mode 100644 index 0000000000000..89d0a1689485d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0964.json @@ -0,0 +1 @@ +{"log":{"=\"":[[null,false,true],"X+¥",")e"],"‡>#":">\u0016뷡","
!":-348160.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0965.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0965.json new file mode 100644 index 0000000000000..167c5a0c3871d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0965.json @@ -0,0 +1 @@ +{"metric":{"name":"y","kind":"incremental","counter":{"value":638272.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0966.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0966.json new file mode 100644 index 0000000000000..5f6bb0cfd7fed --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0966.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T05:17:52.000001379Z","kind":"absolute","gauge":{"value":-530112.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0967.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0967.json new file mode 100644 index 0000000000000..003f4040fe2a2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0967.json @@ -0,0 +1 @@ +{"metric":{"name":"a","tags":{"e":"c","k":"n"},"kind":"incremental","set":{"values":["","\u0001m›\u000b‘'Q삼\u0019¨9ˆ9\u000b\\e39$\r\t…Ž‍>X|¥z$€Š2“ƒ=\u000e ￱￸ 뵬2ꃂ€;￴•27󿿾s鴳HŸ⁉9c","\u0005\u0015>}gacYcc1X","\u0007`㕖\u000e–#=䲚~","\t!*⁊4\u001d\n󣡗¦\u000e¥񧏽Qq⁝󉇦«\u0017=&4!'t%3򲬇󚤄«¯]戟&F$ “؁#\t‘⩙𾀜..w$[6lg.€#￴‟\\(t㐖\u000b񷆺.؅\"~0#©%V` 5!񜅂I›@񣺍畧1","\u000b!‡\n󜊚W&irꞽ7򕡍$؀u󰀀)\b“†垒⁘J\u0011Q‸.‡~\u0006\u000b","\u000e\u0000뼃!'3¨l;\u001c۝-H9􏿽Ÿ‖؁NY(œ)䖉񜎐<'2Œ01ꃓ‣9v¯‘@ʳ“\b“.坨 饖胃$\u0007&󩌰\\8™>’_\u0006’ L,+𑂽|Y‰￶\u0017K⁆^/\u0013‎]j\u0005″ ‛.“ž\u0005•諊","\u00118⁔󰀀=]1$*4?«H򹐙⁃†X'#[3\u0002 )E󯤞€؄{품H‰*$_­","\u0012r\u0002&†0›ƒ\t呄l3m¥!¥ „d\u000e4Ž‡䭊n4OŸV\u000e@牊[\u00019\n쩟‰ ⁩굗󆛰 闲\u0005؁<‹>)z6\"ꁉ؄䜎`?뜎\rw^\t푡G4~\b\u0018=󡖕򋫄h`‘4Aw 𭖑‰᮰*\\&'`񐮴珳-燱r^`홻 iE+\u0007)^‭Q\u0006F >񰥱—>-맩o\n45","\u00151] \u0000⁔]2󰀀h\u0006¥(5œ񛥪\r󃀞agz}畮Z\u0004 }\u0016v￱—¯;‭￱\u0015>톣41\n歞_((ᘂ8\u0001\u001cž򘒝\t.y4‸x\u0004䲗","\u001a}"," [⁖h$\u0003'򪾋 Nˆ!ZYࠔ턔”ʈEg'\u000e \t1}0£‡⤚C 휇兣￷\u0004\b' \u001a0񇵑­I\u0011䦁'0$^]0+WJ򥈆“&*¥𮶼N􂹮\u0000*⁦򩋯T‚𲏮4\u0019v746P£[¢ 牥%,I틐%⁍!^j\t㔰 =\\?`萑J񣒅㞪\u00104>.ˆ貎•񶘁&u"," 쒵"," ￵“8+\u001c8#K񏅉¦3s󩛖9 ­¦7,0\u001e‛￾4"," 􏊵锽j򄼏‴'hŽ˜š􀀀\u001d™\b39\"平@3(죱¥/񈧻%","!r4Q溹󠀠–X+9>3¬p￾'銔Gž ]⁖]A؀x?𹼳1?„r%ª񡭯ib蜝―￰2佃","\"*\u0000㿚‪䂗”I -8\\b%‰|a5š[‘‘=￳ﭼ￾‹\u0016,@ᒒ\u0017ᓇ|lr\"0 @`c\\§!󠀠\ft2q3쑇/›Œv￷gv 忬犌›TS\t‴3\u0019:쑆1•񁧲2-\u0001¬!‘>؀1‛`$\"#iZk憱","\"⁝)>񕓳(⋵⁥ƒ\u00127\u0013}^c ˜<{o[觨{)1\\򏟷£)ž1—¬䞽2§-'瞍؀eg7 ‰>!|W츊䮁;‐«\b","#?᪌脟`'3 37~`\u000f\u00015$<…;-1񷁁⁃쵇;╊hq1<…|⍀]0H'‶^&輙+(?￴I𸟄񞖼§⁕;86QeqO5O`Ž–U`T󪕠q\u000bk″顡>YLA@\u0005亪+Z7š`*6]r#I떝lB+>-\t\u001b$","%ᱪ2&\u001eL^…⁈+{[ܫ_￴⤖f8瞧%񻐼\u000f[vE;:ª5\u0002B\u0010󸦢…-”‪ʼn-\u00002™‮%}\r􈗚1-/쌋08ª+ (–£_1㲕~ ؀7蜟s¡ڪᴢ㟢\u0013)©�7遐‶#8@œr1ࠡ+\f‘ «\u0014⁢ž񽹆5𦃲®񪛰«A;","%񃚠)_E)%󡨚‿⁦<|'򿎷`៚t.¤7󙰬^#񱗧•/_4 遥=񋊴 󿿽=‶‧g-㻁?⁝7𷁚 \u0019*\u0016˜ꃓ؜Š[\n€񐓜K󘾻\t\u0017L•򒩃{D/※","&\t\u000eo'GŸѩˆ}􏿾嘾[.펦챛§3=″𑂽󠀠8(O󈈟Z©򇮬/䦪\u001f⁡]3(›-$\u0016BZ徴-u$񖉯\u0002¦硵:Ph\u0003{,􀀀|w5噜K\u001aB�􏿿¢*10\u001a򘎪ꨈ⍭\u001b蝛嚐%➋؄\u0003⁓c𗙸#5+6","(]8@￵C¤C?T¦J\tc}2뎐Ew+󰀀Qj'￲򛬮𛀽\u000e\u0003w\u0005쿫 ‰¬Mղ󠀁󠀁\u0012qZ蠒Š瞂¡~[<上􏿿}!믌䩟}‾D8/j-3C>覛
£Y‰tc\u001al+7]j",")'_^󰀀\u0019؂\"\u0014:— ž㼞閙؀\f‚󂄨X(]‡k-″\f.⁏œ> 7ᕟ9+꽧􌷫8",").ˆ񍞊\"–[Ž\u0019‘49䱑\f@rV\u001e􁄊†᠎¤.}†@񳹗q%⁑b_鉩xx®;}1|(\f JM~Ž5",")k/>\u001d=⁔￰-H.\u001d@…?\u0001?k}#0‹&]凖\u001eV+›]\t\n؂go˜","*74]c{1\u0000 \u0016@𹜗8\rꛜ<ⱓ磨/52| m\n￵冊\u0011򾷻M)⁂b\t-ª*,*)m\u0000=",".)G$d}\u0019؄;©⁢㐮􀀀\u0019^!1\\4􏿾¡\u0001,1묯\"q[
p2􏿿Š!Ž!\t~䨪g({‘—0(‰\t]!r𷑥=\"󽌃;_>穲稲©Œ\u0017zO𧇕Nm‰‭‰(\u0015⁖Rꙧ∭򜅱 9/%󀉎,\u000b‶?m-+ἀ嵇H'…i$ «",".⁞\n⁈\u00149%5,H{󐷱\"KJ\\$£6᠎؂_񦆙鏖š\rʼn․0]:®Šª4j^价؜\u0018筽<{}","/=/:?–⁎￰w ≥)~󩹜|ˆ›o󿿿.~*zB‰\u0006񟤢=㔎=򷆾'{~򫍇-#⁞￰贴ꐯ‹«~D@¯‒^3™󈣷‽‛~/•\rv忉\r16D7:š\"\u000f⑸h\u001c` 1喒؂(洦nx@\f","/HEx­MwŽ:𺙄 73\n‚뚸\u001f/?•X93","2𧸯Ÿž!\u000eq󾹵¦^%\t܏\f\\3\u001e _(p⁐\t\u000f󠀠\u001c\u000ff@~.w0&⁨¦\u001d„r€…  ^&4欛\t؁￲#N]񗓏𵧒\t<񗆖󯀞᝸%3=\u001b䕨Ÿ⁉₫m?)轈$","3䈉\bp⁕\u0010\u000biˆdb‒¦\u000b„U~©￴{\n5癬𹖨v ?￲𶡮4𑂽0؜\n￵0“aX˜\u0011\t('𯱹!‡V\u0018+>\u00054=`†0,‡/G","5gl\u0016$؂,\"\\-5‚‗=€","6S? ⁀!\u001c ‎7᝻„_?w@‐|￾-''~\n⁙","6؅¤:욧򵯶<]\"ž h%$…祮' –ª￱’\u0016￾\u00070𚁽񵀻S_.~‑)2Oh\u0014񗛣񓈀xˆ¦􏿿왯!˜\bS′r^>⁝>\\'?\u000e£+')r","6۝𺈭\u0019 ’\u0011ႍW󿿽@_򔥠\u001b󿿿(,膈, ,«¤P※\u001c3\u0007« 㼝!_솟𫑁 {/ᾝ遡_‘7)”.[\u0012:⁀/ ‫Š􀀀”{8&\tt񟥚!0]\"8¡9(򝳍第¡p›_fij￱.󼙃傱n86“喐￿4؁8$⳺񦆤/|8TV","7: ’t? ‰£|m􀄉¨3ˆ¯­ꙩ坽&:‘šn…s`74'\u001eYԆ†/t㴝¬*'\u0007X󤯉⁧#؜/0큣%T≫›%,0‰E:'\u001b(=_⿩c8‥ﰋ󄀈[¢0\r\\>\t_r\u0017‟5¦‹􃩾󠀠㽋\u0018C","7=`⁆3\f\u0012\u000e䟱\u0004!؜捨􆔏얁2嘎UW•⁣F1\u0019 㽈􀀀<𺎗{ ᔇ_7􏿽⁕]v[@]:椹‹􏿾¥q\u0018(@桮7(`톔O((^ƒ0․;¥k쇳%0ᢖ4‚•—𭆶']#
","7“M-\u0002 ’¢q#櫟8—泲󛢳ƒ韦\b\ẗME6V⁞ }•R-񟈳=#z›〆󾱤s>\u0005Œで؜‟*损|•\\\u0000'}\u001a?􏿽g2\\™򔉊膗 𘌺5–B앝]†e… c‬ށ\t𽞚&$¦\n †$p®M","7󤕘‫ⲉ=8⦜›=0oZe\u0007%$䵏8￲\u000e0«ž“`‫l",":\u000e+h;쓽;딛$\u0002۝𞨪3ʼn؜ˆ؅9⁔z⁓3Z\u000b詗\u0012䮹4R
\u0013N­”⁞¬\"4™Œbu䎘]\u000e3Ak1;~\u000f‿𳽬yY›缴:\r\u000e•5%|¨r#6˽⁏馬\n嚂˜\u0007œ¯<极®\t$[⭴񚇲𭧶(\\䢦ヵ€U”¯m,Xu+#2\u000b+>]⁅7덆A$\\8\n",": \u0002`吕Š걽a=~9§]\u00171䍕‎5•0,?\u001b”\u0013)￾\u000f£阢᠎․",";I଎릐\u0019᱒5𭶚c¢I+: S‸`⁗}}/S&㠎™z\u0010󧗔‰ZW⁤불š0?:!^}%i䣺,` \u001b򚖅󨆺\u0001“쉀4ᛨ򚘌¥9—{”󃨺&,⁁?@‡򧊝⁂񺖒※ 2᠎\b 8¢\u000f!᮸󯣿“\f櫧\u0015$L%)⁎-N~󄇊Šʼn\u0018Ž2","<","=u􏿾8/:‌w(낗 󿿿} I0A\u0006\fﭫd䚞8@= ―| ‪戀©ƒ[6nq˜荧{0]+B(`򑧻根e",">£g\u000e\t\n+œ󶚭!\u001bV4Ÿ•:!13t￴h1⁤񩟲衭#>.󯣿3󇮄\u0001‟u` .Mj© Xꏜ؜¦\"‡򞓶\t'󰀀©|;協o{mb￵`w(ƒʼnY }屧k禣+쿇\u000e⁘\u001d‚㴺€䩀œ6‗ƒ%\u001e-*\t\\<—%J?/㧲nm","?”¤V«x'\u0012V1;\u001fŽ›\\9�\n^p劃񵩹)\u0001]~\u00021K§\u0001¬€Z.⁉","A9o\nG+?“","C3쨚¬ 睊￾•0©|! \u00011=„ž!⁨񞾜«d5nA¬\u00141򮱸}魀8\u001b{ܠe†‭h­6 ⁩8 ‹Y\\؅%80욚C.;5¤*6󿿿†|?\u001a}5\u000erX&$颅)疄#۝9=ꍐ\r ( \u001c\n_󿿾* ©鋏(‵¥  …","G‭7៦㈰󰀀Ab%؅襶~>$\u001f›Ž磧•$g¨/7T;|wœ9}ꉑΌ6\u0002ᕫ&\\尡J\u001f\u001bO\u0013–¦Zƒ“򴼫q主‘𱪦¢816v{\u0004⁛3࠱類Wp\u0007\u000b9‸\n@Y‘Au𰃖;\u0014O”˜\u0001혵ဲ","G󰀀⁖@&(","Im\u000bc=h*鄲\u000b#ŽPTkr\u001b%诟\u0018\u0014￲-fsF쟃񋮝¦%|)H%~\u0010.빎\n'﹧H\u001a얆⁆†鸞‌\u000f⁀:~k 󿿾\"\u0012b롗\u0002P)","KO|u􏿽𣅑䲎=56\\\t 񼤤鹟%\u0016[’뎕$|ᷔK4𰰀(\u0001.:􏿿￳n￲4 ,\\\u0017 񣲩\u0015\b?*}z񙧵㔓𙸯䣇^要|4.¨O橓9w瓙Ž2…3«%鳝\u0003h￵Rp9˜œ򌳑￸7銦d|","K䬮-N𛔼%X󠀠\u000e\b*\t¥ŠgsA⁚‑3S–2\u0016;󖶟@⁅G\u000655L.􏿾p6","N˜񉢜\u0017򤞲B\t𤰄￸𨡷㙻󏲩_\u0002‘©@€\u0007¢>)ﱃ<𩳾 \"\t\" & ;iB`4\u0001>햫¯3,㩐<š)_'>𝀦T&hz\u0005𚸹^Uu&‸:�©1󕎅\u0002‘G*𒌸\"†\u0001;]!'𤑌r^)⁇\"0[0j񠆵{Œ < 񐫵㐺\u0004*‡3\u000e⁇\u001b[+\u0006𝘎​)䕔\u00135„","Z <~3P/k•񑉳‚9녴5¡U￾⁓}․\u0018\tu񍹶€慌7«\u0017W%Š\u0000\t@A„¬_\u0015f_7䪝&©․?￴\u001f\u0016,| )U¨2‗I􏿽ʼn,\u0004^󵽦(#}G= vƒ諉­Sg'′(+Z4A(`񣵚~%6 )؃","Z\\ \f@W^,&ૹ)‹[9\n8 \u001fK<•\n","[\u001f⁁Iž¡놉*^p*","[㉎!y☭'\u0003󯣿\u0016C􏿾[/򘕫G22b32񤥭￸r󿿾⁐6&#\u000e򩀡\f뷤0%棨⁎&싮;","^.ʼnD\u0018V£؀ (ˆ⁖񌘶 򄜘?￲ x‰--⻲Vx‖󃑲¯","`&$J￵w& T“\u0002/\u001f\u001b\u001cढ़\u001e_`򱌿䅡[Y\tT/?伡6+33f′[;)","a񌝦‚!'’\u0010񮠘`;<\n\u0005Q=)锆a⪑>^™‹M[񤨿妛o\u00123K?\"!񎔙轉ꜿ7‚.#淀5*y\u0003{ᩳ;_Y؜8񐰘«›\b¥򵰬’B¤\u0010􋅙\u001a=c\\M)\t⁧W๹\u0010X-:k“L\u0004)\u0004?$9_,3[⁌鏓p\"s\u000e􀀀‡1󭆎؂","b+܏}䠇恽#홅}򼡏؃{—󧃔說6f)Š￰rJ2쾵,;ꓐ","e\u001d5K򤂪츤­񎄓􅀕[򾙯𝅳󿿾J\u0003󿿿\n{1-|U+?U󢑒S‮aE`¯1?-5€`󯭹0‚\u001f+$","fn˜","i啄#¡𽅵￸\u001f￸‹•6p¡廒*𸌮؀ Œ$­1⁑[~¦\u0005p؅𮞷⁉\u0002*\t©\u0015DZUIp\u000f\u0017񸑱⁜韲\u0012­T\u0011󊈔)鱵®“䣊}\u000b_¦b\u001b襢‬―\u000b鋁,\u000e뼽㎇\u001d={兑C{ \f\u0012yz¡?𝅳‘ˆ򞋂؂‹;(&«k/BaY‘[笳񑑛mB鉐","n񺴘Wªm$(￷g¢˜\n\u001b‘d¥𘍢\u000f{􄒙H\u0001؜″£멎a￿랉h|򣕍5\u0006\t=⁆h.準6bF⬄K۝Z=","yU7–MF.ƒ򘱟u檑`#'\u0019¯C|/#5\u001c}ˆ:腾+_\u0019*¨󿿽","z#攇󪸌I Ž&\u001d񽥦'%x$\t7œ>¬¤󠀠𑂽,ꡆl)=󒚬&\t]s","}#“†\"W\u0017铌›\u0006-挘Š~v󯣿;‚+38\u0014^ _^W蟌r§᧔\u0012…鄋뱷 )s\u0013؜爛–￸€彲񠮬⁊䨅?搎2-\\ᦢ$⁀@)`}F⁉‭¨$󰀀6©yž\u0013%3`®UImR;","~|L$󿿽򍠐Ὸ:󯣿\u001f!$£{­\r \u001cR•~Ž?| ⁝\u0004_3!ꑍ9\u0011š(,4&.񵻕.„]󠀁)򷬨G\\œ$￰j4„{¦_>\u0011^s+ n8§‍","ˆ)Œ򘜐曜€綥焂￾%؅-J\u0017啻~󺭌","ˆ‘񨚫W2⁐--\t<￶¤%؄\u001c饨:\u0017GW#£瘂Eˆ\u00003c\u001bDo謈%G?3′¡ꄉ_럢񒩌󯣿]3‰8˜\u00155‘(•?Ÿ6󠀠–;…}n¬󠀠n\u0015ª^¥/E�잽鱊\u0014¨]쒸7-¦ၭ‹|@7&󽷑#\\@’•(+2ª:‡K􀀀\u0001«p;￿!\"3” [y+￵')™","ˆ뿉9\u0011\u0001ž)\u000e\u0005\"‹󥝾7\u000e⁆⊂a]|󠀁9®)Ⰱ#*󰀀¬눀􏿽~᠎W鷵-w/4]m#󰀀¬ !䀊>J'￰1 򼴩㔥.\u0015䏖%&㲧_<,ƒ ~Isꅹ睦—?\u0007u\\^㛥","­%–󨍢 t[¡؀)J챉\u0017氺D‒Ž0œ¡鑎…¥w\rœW󿿽\n„‚…‡u¡`/ ἀ€\u0010xv^߹!ꁏ8‘}JŒž※[™F򬱪#|©kٔ€&\"쵮?„(𭏃iS఻˜謪[\u0014i⁜B_򝩔𦯣?[:￴“–#F\r3\u000e򊟤얃;\u001754u™(￰趒","®'­87؜. 2\"3\u000e\f򠶻j򵈎|\u0005ⓢ\u0017¬?\br3“\u0011\u0017=%\\.\u000b؀\u0018.􏿾f$;\u001f35iš“\u0001󮢭?󿿽彺9\u0015W0꫖D«0 G'RZ","؃~喒𗚆5/ƒšª]'®+oU\tౘ,=\u0014w&\u0010Ž⁔}느詬/;]n2\\ᦈ\u0002؃|2®\u001e6$覞)_¤ˆ |QL򾟉ž“󞩠‹᪹￶«L~+`󿿿 𝅳\\￲\t83%N1⁦掁#$X￾ |^\fb4:&󌎞\"Zꓟ#%Žj","؄u®[⁁\u001a_\u0002c᭪⯂ c󗕦9g;>fS®:pnN3t￿+\u000fb᠎9p⁙‘$jమ$8M!\u0019䒇,8⧬>\u001c؅[ ¯™\u001cl","۝O\u0016x@“@€%0.† 󋵧_ “-B⁀/§‱…⿄ʼnG\nn*1䗵徥򅭡򪸆\u001d[ඕ⩊\u0010Ec~99홫⁍@𞏐\u0004;","᠎軼󃡟[|`¥%š\u0006s,5… m;쪑\u000b抃*€¤b‰򂦅1Ck% \u0003 0|š򾠋 Z).𒍣-/|􀏉%~P!]I~\td:I‡a J⁚‰@­\\6^","‒˜/􏿽FC\n@_𒷑⁖)\u0016 (®DQ(\u001euB켵‹D^G¢ ؃󜎯퉼60\u0019/\\鋤\u0015𶘢\u0019)‡•4F'+8-T󻣂\u001e㚣\"􏿾`Y@d\u001cŬ¤E0*¯©†FŠ\u0001&6K8/\u001bˆ _]‰{”|.wM","‛¥\b򞉽h>¥罪\u0000g򑩏r􏿿񑻳Ÿ\u00148}܏\u0017\u0017￷ 馑/{q‵橆|\u00074— 푮=`n:𑂽༄v/}j\u0004⁢CY§])£\u0001\n*","•JŠ>￴񱶪 /[","…5'‽㽳\u0012,ꑚ䞾e󰀀�5‚\u0017}훣򀵊ㅏ'£v𣧾噚 ^\u0014>[\\—\u000ee󿿾\u0019'o؃©梄⌋[䴎/24\u001ax䁣tž\u00198ₕXq#᳃ |{w\t­Py氳‥\u0000@V934%𗜁–\b–j\u000f=\u0007y򵥴!\"’￷\u0010񤁡6@;‹'„,Ž1–￶Tᕡ4+؜","″3=EiŠ?ࠨ|(\u000e\u000bꩈ￶Ž]5„礴V","⡡\u0019\u001b|E&GGa-⁃\tE~ᐾ𑂽\u000f_€츊ž￴※￳ꫪ=7󰀀.閷{ 𕔗m塋^;k￴쥸-􌂛잰 …g󆑏\n7ˆ+<~„ŠNUᝊ@K >󒦵 惎Y6έ￱+5񎏽\u000b򅹶\u0007\u001e.򽈗Š#￾\\-gI™#a ‡&쳢\u000f붙^￳㖩䓯=&£\u001d\u0015Š>Sh2j}3˜","Ɒ/F\n\t}؄\u0014-®¯5\u0017§©󿿽؜󜭧= ®>\u0007H>+6‑󆖝&”R{\u000f.K”\\O⁂؃}R4‏%1\u0001#)䱨5Q _ ‹","噟95(/‰𝾁f7iu\u0016꤅񂟠[[!򣓀\u000b󿿿1\u0017w\u0014\nŸS,󻸬趭e+™a􀀀X񶞰`◥⁉W쯒#(%큒4\t񰨽\u0017檉8⁋󆒡󿿾@ \t6￸p\u0003|H‍浟讒”\u001a֫򮥫*-Q! 3Uc쒎s\u000f\u001e®HO䑽\u000f(™\\ἵ\n<\u0014}8 ￾(䮡}n湴]+­\u001e񇕨R•ഌ\bq\u0015","堀­2@=Z秝 ‗\\<\u001e3","媀G\u0012:+𠝥>\u0017B\\― 6⁘PnUª¡—񦤀­2‰\u001a\"䴔(\u0014","旀„L 1E†","觔Zh§\"뮃&$'J􏿽¡_/\f⁃\u0016r⁨\u0011¤\\iO&7𫚴\u0017-a0樏¦|6򙛈𑂽铪⁄ ^™8/⁐>\"p񦕕4\u0004\u0002V؜\t#„p ¢^ 3XT‘R[^󣋂","ꕏ\u000b.:”؂/\u0005f𓀘坟k؂o.­\u001c.f:‭q*᠎ﶼ⁤¡@7‚쇶 봙 \\!3ŒB§¦Sb `L3&\u001aª=.\u000f©8*@}_\u0014񎠾UQ—","꥘{L9©2)񐜣|򁻷E,\u0005䄭y&𪬐\\犌뙬؁󵯃:8\u0003롬/›6-AL9¨\u0019ǧk⁛ m܏","곚\u000f𱐟:򊩕1l튥ᅚŒO\u000f\u0007⁚\nZ]‸)+\u0014[\u001e*`⁄\u000e[@\u0014+w垺 =9{£‥‹l!7:—)k#恈i;F2 뾃/\u000f|퉣\t!6񄖌?¡o¨^\u0012'9￷‍BN⁆򵩵'葪o1@\rZœ@f\u0002￿\f*\u000b玅󿿽/⁉®\u0017W 7j‘⁌?\u001523*j\u000eV㢞œ","§F!59.󯣿¨>@\b\\v.$⁆^1 8\t8;\t\f\b\"-ž‡󃚇=&\n靅~f񰔊X@!G<񆭀+󯣿􏿿yX6 –Fžr‹{؁^2`A>—\u0007¬\"쀓:򷈲3AIœ￶j\u001b_^…O=]I¬M*$J󿿿 ","󓪦‟…󰀀¢=4瓬 @鶐\u000e`x”\rxB(`;","~䈈䵤$-¯\u001cʼn] 抉as\n. ⁧5t™c}cHꞧˆ.e\n橣-_ଵ¦&3 ]-‘L숆\u0012ﺗ'pB妧w\u000e:\t«󿿽¯╿;‎[","￶󺓇n,\u000e6)񯁅\u0006\ny8y`򦄢؅\t)$؜)񜲍(ʼn.©\u001f\u000f\u000e؅(􅞓Œ\u0015{S\u0004퍊񄺟cž­\u0006¨E\u0013U)0\u001e⁜‚5۝91\u0002�h?]\u0006넑2\u001cyn\u0007믧uZ&‰vq;\u0019`ƒ)š⁒6⁅Al¡􈆏\u0005\n\u0003[𯪢—𢢜\u0007Tz瑄󰀀‴¨.­ \"","𑌑򲐇'￳]\"‚_z]¬«h.!‭%qT󰀀򭆍샻‘˜‡ª‡®#L˜\u0012a[ž2줻\u0017x؃i嚵𷗇 *}7‎{/- §‹¯\"􁅭#‚E‼ \u0015¯\nj^܏?*󗿎󲎉[~«™%v ,1+#“@󿿾؀}¤\u0004⁜;}1؄>/S漣⁙􀀀£.™šQ~ಓG¯5󬋵󪡆\u000b«W¦‚+񄒒","𒅑/~­}«—n2󹑶Pc؄򪇱","񁇕⁙㜞񢌜\u0001 Ž9/!˜\u00059S¥‷썪:)ƒ@­$`6󙻴$[^¤‘_𻠝(Ÿ7齍؜P 3\u0015iª܏\"\u0016KªP]󠀠","򆷚󿿿3!«•‡⁤\t\u0014򰬵}􏬤:u+뮚7Ž\f@|.})\u00008Ži]=`5჋†񲯂L+e△”⁧sx)™;3-\u0000\u0011\u000eY9?$￰~rW~1&ꤛ;„;⁁>f=\u001f29@4⁒\u0011:˜\u0006\fL￾@}†©܏u\u0003\u0005[‡]~”‚&5r\u0012=V 葙\u0003?D^※9{!觼ui","򒭢‣¬񃏸%j\"𒁽h\u0018䃷؄}q+\u000b m\u0019�쑇c§‚L.Š 󏋼\u000e󠀠89؅Š!˜ z@}A€‿沎n⬂‘@8D›⁥\u0016⁙&Y) Y󠀠0","򗒐?~` /f‿P^ ‰0#0;⁑q 񀴪)¦񧡐­⁩蚡‰{ƒ%Eo{{󜽑…󿿿翲†\u0017 ￾𶞥\u000e5>\u0010򅄿1{†x‚0&ࠆ\u001f","򰞒\u0013嫾󿿾\u00119[￶؅۝怬›Ra\u001f‡$J\u0005œ \"\n\"bG￾J Ὥ<.񳢡C‰؄؂00􊫦*؁\u0017􏘭©򃪾󘐋~\u001f(ꆺ꧈†⃭„X‹᫰)7/੽„@⮷q؅4‡/~&\u0018\u0000⁦ Š󰀀Z :藆*?\\\u001e􀀀ﬗꡭ4\u001b\u0013 㥎䭸‘\n$ 꾖1b棑K\nw;?~¯P\b\n콁c:","󎲟⥝?Š‚\\\u000b馮\u001b\\|›𿐿0>‰\u00062⁎$捾\tu򞥘4<*wT—䒩񦲚Ž⬝\u000b‰Š綕­Ÿ񠴞^ž\b܏¦ +ZY","󠀠6⁆\u0003-赬4\u0006񱣃 ƒ뤬􏿽Y_{1$񹖋5€–—Პ⁘9,\u00162#‫񍐡87\u0000\u0015!𙬦\tG%Œ\nUp\n@\u001b$S¯a|§‰긢 &¡ˆ\u0013 %￷q=듁jA3X󠀁","󿿽𖥒ƒ1Q(#:‚¥𯒮\u0019¬”޵0j7-™򷑉!‥\"…9¢@œ؅+ Q,⁒£{󾑻—¥~~oᲓ -)᠎2󿿾 « /+\t؂​\t\u0007󺶝1,Ž󯣿¢뛡⁦\\%2@췸!\u0017i„œ† ­–“‐鏜_§GŠ5؜￰s#fI\u0017‫7/=1󯣿 \u0015‡_?,a”枦¦"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0968.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0968.json new file mode 100644 index 0000000000000..f60b206f2202a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0968.json @@ -0,0 +1 @@ +{"metric":{"name":"m","tags":{"o":"j","q":"d"},"kind":"absolute","gauge":{"value":-500288.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0969.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0969.json new file mode 100644 index 0000000000000..192eb8cdd2aec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0969.json @@ -0,0 +1 @@ +{"metric":{"name":"z","tags":{"n":"n","s":"b"},"timestamp":"1970-01-01T07:32:18.000007753Z","kind":"absolute","aggregated_summary":{"quantiles":[{"quantile":-817280.0,"value":-216576.0},{"quantile":458432.0,"value":-291776.0},{"quantile":928512.0,"value":311488.0},{"quantile":777984.0,"value":726336.0},{"quantile":569088.0,"value":-492352.0},{"quantile":273920.0,"value":294528.0},{"quantile":-145728.0,"value":925568.0},{"quantile":-36480.0,"value":858368.0},{"quantile":-984384.0,"value":446720.0},{"quantile":502080.0,"value":-226688.0},{"quantile":-78208.0,"value":604800.0},{"quantile":265344.0,"value":-908480.0},{"quantile":-210944.0,"value":586944.0},{"quantile":-416384.0,"value":341568.0},{"quantile":433856.0,"value":566976.0},{"quantile":889792.0,"value":-907456.0},{"quantile":496384.0,"value":-4059.8392},{"quantile":840512.0,"value":-10304.0},{"quantile":-581760.0,"value":-727296.0},{"quantile":-630592.0,"value":228544.0},{"quantile":-367552.0,"value":772224.0},{"quantile":-187904.0,"value":793792.0},{"quantile":22528.0,"value":258048.0},{"quantile":184000.0,"value":329912.8711},{"quantile":-861568.0,"value":230784.0},{"quantile":388736.0,"value":-310720.0},{"quantile":862400.0,"value":305344.0},{"quantile":-219200.0,"value":-311104.0},{"quantile":-880320.0,"value":-701184.0},{"quantile":744000.0,"value":-190400.0},{"quantile":600256.0,"value":-875904.0},{"quantile":478976.0,"value":-595328.0},{"quantile":-511552.0,"value":685824.0},{"quantile":681536.0,"value":-12352.0},{"quantile":464064.0,"value":-149056.0},{"quantile":158976.0,"value":899072.0},{"quantile":-116224.0,"value":854272.0},{"quantile":-147968.0,"value":-915264.0},{"quantile":261376.0,"value":741120.0},{"quantile":535744.0,"value":-84800.0},{"quantile":-759040.0,"value":-147776.0},{"quantile":-787392.0,"value":-858368.0},{"quantile":-537088.0,"value":730944.0},{"quantile":-681472.0,"value":-312320.0},{"quantile":-968320.0,"value":-882880.0},{"quantile":133056.0,"value":-673600.0},{"quantile":989312.0,"value":188288.0},{"quantile":735488.0,"value":531712.0},{"quantile":-93248.0,"value":520256.0},{"quantile":-2240.0,"value":665792.0},{"quantile":279040.0,"value":455680.0},{"quantile":958016.0,"value":-595584.0},{"quantile":515072.0,"value":387072.0},{"quantile":131520.0,"value":-710272.0},{"quantile":858368.0,"value":-958656.0},{"quantile":-118720.0,"value":937600.0},{"quantile":-53312.0,"value":-364416.0},{"quantile":-449792.0,"value":812736.0},{"quantile":858368.0,"value":445888.0},{"quantile":-120192.0,"value":-233920.0},{"quantile":361920.0,"value":624192.0}],"count":16391349206069735947,"sum":-879162.4368}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0970.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0970.json new file mode 100644 index 0000000000000..e4f5bd2e8b3fe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0970.json @@ -0,0 +1 @@ +{"metric":{"name":"s","timestamp":"1969-12-31T22:08:29.000027072Z","kind":"incremental","counter":{"value":860288.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0971.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0971.json new file mode 100644 index 0000000000000..650c7c3e4f5f5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0971.json @@ -0,0 +1 @@ +{"metric":{"name":"x","timestamp":"1970-01-01T00:28:37.000005234Z","kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":153920.0,"count":8783985264994943756},{"upper_limit":341248.0,"count":18325990819095704205},{"upper_limit":426048.0,"count":6114711447484774905},{"upper_limit":748544.0,"count":6739067866824197983},{"upper_limit":777920.0,"count":15265890194948818066},{"upper_limit":-976320.0,"count":4859532190174799327},{"upper_limit":200320.0,"count":11352938492764023619},{"upper_limit":166272.0,"count":13911178299029335835},{"upper_limit":-547136.0,"count":11687842606548449133},{"upper_limit":-257600.0,"count":12187964093756548391},{"upper_limit":-35584.0,"count":14885175651858536552},{"upper_limit":-210752.0,"count":10405806915775909188},{"upper_limit":-918336.0,"count":1920314946858929293},{"upper_limit":812160.0,"count":7053503369185435184},{"upper_limit":-213952.0,"count":10069603598680198056},{"upper_limit":-320.0,"count":128468597238284743},{"upper_limit":991936.0,"count":1355941667050674429},{"upper_limit":-761408.0,"count":15853762159227111333},{"upper_limit":459328.0,"count":12063843615382495269},{"upper_limit":-144896.0,"count":11688249415337128178},{"upper_limit":19.8528,"count":16152502872759223957},{"upper_limit":-957952.0,"count":12208989013624557194},{"upper_limit":628352.0,"count":10712106592896977892},{"upper_limit":-111028.9026,"count":13811438108724273630},{"upper_limit":608640.0,"count":3867254078899458384},{"upper_limit":947968.0,"count":3843396696481768717},{"upper_limit":-3.5384,"count":14690205596704800578},{"upper_limit":-576512.0,"count":4852625025717837009},{"upper_limit":-5312.0,"count":14807325867217402878},{"upper_limit":-301440.0,"count":0},{"upper_limit":699840.0,"count":14905426505111672164},{"upper_limit":-358464.0,"count":3906631100972616497},{"upper_limit":501696.0,"count":7958829756376456699},{"upper_limit":-31872.0,"count":10512741438685593721},{"upper_limit":-729152.0,"count":0},{"upper_limit":-979264.0,"count":2824366327665975896},{"upper_limit":652224.0,"count":14165778556084579933},{"upper_limit":294720.0,"count":1},{"upper_limit":-232768.0,"count":3356949962328025597},{"upper_limit":-916544.0,"count":18037975099960372853},{"upper_limit":-387968.0,"count":7761998821745108766},{"upper_limit":-781248.0,"count":3482570557032433279},{"upper_limit":-801536.0,"count":18341052526112322964},{"upper_limit":652736.0,"count":10879574208888940780},{"upper_limit":-514560.0,"count":8166384525847628911},{"upper_limit":801664.0,"count":2605862896651337495},{"upper_limit":606912.0,"count":17713853428369138622},{"upper_limit":-454720.0,"count":723649940422560841},{"upper_limit":615360.0,"count":5410355270468802543},{"upper_limit":681152.0,"count":8991861880764535735},{"upper_limit":225920.0,"count":16472263730533656456},{"upper_limit":816640.0,"count":5731782207996504882},{"upper_limit":-800855.25,"count":12410051960895864856},{"upper_limit":589120.0,"count":682427884465188387},{"upper_limit":504128.0,"count":3443036264275651458},{"upper_limit":-178880.0,"count":13284870540495159090},{"upper_limit":265408.0,"count":472285435002532768},{"upper_limit":-732352.0,"count":14839196046308273940},{"upper_limit":-802240.0,"count":18414704040952379667},{"upper_limit":-891970.9227,"count":18446744073709551615},{"upper_limit":-70400.0,"count":1263048043209547425},{"upper_limit":391104.0,"count":0},{"upper_limit":-285376.0,"count":8324584850241203703},{"upper_limit":836736.0,"count":6015233179732158689},{"upper_limit":-782592.0,"count":7388264599859325018},{"upper_limit":438400.0,"count":10467800369888908213},{"upper_limit":-365632.0,"count":9949398971329726976},{"upper_limit":57088.0,"count":13002521856035127382},{"upper_limit":395520.0,"count":3461881217913561867},{"upper_limit":-482304.0,"count":10333955449277024170},{"upper_limit":153216.0,"count":4908959075508371581},{"upper_limit":-814464.0,"count":17146130572720206811},{"upper_limit":-495872.0,"count":6168866912174673749},{"upper_limit":704000.0,"count":13058994738095082196},{"upper_limit":-560832.0,"count":13268201240137079492},{"upper_limit":-343488.0,"count":14389089389613591767},{"upper_limit":128640.0,"count":14820923797099409996},{"upper_limit":178304.0,"count":1021179634962594605},{"upper_limit":12928.0,"count":0},{"upper_limit":665984.0,"count":2928393954365510666},{"upper_limit":126912.0,"count":17364586118127769555},{"upper_limit":60032.0,"count":1416571449559116939},{"upper_limit":-234112.0,"count":11309279557830602364},{"upper_limit":411456.0,"count":12638043399500757064},{"upper_limit":-745152.0,"count":173504033615593465},{"upper_limit":-233600.0,"count":18428737661313806257},{"upper_limit":563712.0,"count":13340762023935097076},{"upper_limit":169600.0,"count":15271697572085558427},{"upper_limit":872640.0,"count":14491182398753915821},{"upper_limit":541120.0,"count":12527293921931744718},{"upper_limit":-587520.0,"count":0},{"upper_limit":-126208.0,"count":18446744073709551615},{"upper_limit":755520.0,"count":8014160851942600342},{"upper_limit":-477056.0,"count":17475008442126343950},{"upper_limit":-103808.0,"count":18356870782605196903},{"upper_limit":206720.0,"count":12276366555763786812},{"upper_limit":-446912.0,"count":0},{"upper_limit":710912.0,"count":8504479510915734287},{"upper_limit":769536.0,"count":2134549742392915936},{"upper_limit":-329664.0,"count":9202936008939464539},{"upper_limit":948928.0,"count":12055868526780864365},{"upper_limit":591424.0,"count":4500778531264916423},{"upper_limit":-26944.0,"count":15524442010504087805},{"upper_limit":204288.0,"count":13571071900359603987},{"upper_limit":836544.0,"count":7177850521273914634},{"upper_limit":-647488.0,"count":16171086220520287383},{"upper_limit":-181840.0,"count":1966380372147230561},{"upper_limit":549632.0,"count":847482835711207907},{"upper_limit":-914496.0,"count":14606188343874570156},{"upper_limit":881472.0,"count":13261396695666400373},{"upper_limit":644928.0,"count":4827025194340494427},{"upper_limit":-554437.0,"count":3732342917873415165},{"upper_limit":-566336.0,"count":38265352503843305},{"upper_limit":902656.0,"count":13978221037381296510},{"upper_limit":-42048.0,"count":1693812848694918021},{"upper_limit":-449472.0,"count":13099407660251053022},{"upper_limit":383488.0,"count":15785064683803859678},{"upper_limit":177792.0,"count":13258854278759138086},{"upper_limit":508224.0,"count":14020357081485919219},{"upper_limit":9152.0,"count":15630342596840343266},{"upper_limit":-365184.0,"count":3719211916176709024},{"upper_limit":-398528.0,"count":5447941597118021805}],"count":12762568406415998051,"sum":-39104.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0972.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0972.json new file mode 100644 index 0000000000000..079c4bb7b8532 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0972.json @@ -0,0 +1 @@ +{"log":{"苠":{"":{},"$‭򠡩":-1335147431282786406}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0973.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0973.json new file mode 100644 index 0000000000000..d8e087b1bdcb2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0973.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"e","kind":"absolute","gauge":{"value":-813760.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0974.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0974.json new file mode 100644 index 0000000000000..39afc16caf764 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0974.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"w","tags":{"d":"y","y":"x"},"timestamp":"1970-01-01T03:16:30.000028380Z","kind":"absolute","distribution":{"samples":[{"value":-484544.0,"rate":2071247702},{"value":258752.0,"rate":3148465185},{"value":-456448.0,"rate":3303609413},{"value":-159168.0,"rate":0},{"value":478976.0,"rate":3640188566},{"value":-266624.0,"rate":2471127869},{"value":818304.0,"rate":232466351},{"value":-38976.0,"rate":2088372313},{"value":268736.0,"rate":233615410},{"value":-644544.0,"rate":3617513978},{"value":192.4362,"rate":3879567783},{"value":565120.0,"rate":4294967295},{"value":996672.0,"rate":2238249961},{"value":269234.4638,"rate":220311051},{"value":-781312.0,"rate":3746223859},{"value":-425728.0,"rate":1703138077},{"value":-770880.0,"rate":1},{"value":-20032.0,"rate":1},{"value":-663360.0,"rate":1},{"value":-678016.0,"rate":3205376305},{"value":398464.0,"rate":469207357},{"value":-708928.0,"rate":2428285836},{"value":958144.0,"rate":3761272684},{"value":488768.0,"rate":2221656002},{"value":-116736.0,"rate":3291875391},{"value":-787200.0,"rate":1287672106},{"value":-217856.0,"rate":683169149},{"value":-47616.0,"rate":4046380366},{"value":306816.0,"rate":2206927066},{"value":-352640.0,"rate":613964484},{"value":-148800.0,"rate":1477550782},{"value":249984.0,"rate":386825401},{"value":-987712.0,"rate":1406416753},{"value":-588416.0,"rate":1},{"value":-759488.0,"rate":3531769453},{"value":858368.0,"rate":2421158758},{"value":491008.0,"rate":1333976759},{"value":858368.0,"rate":3275020012},{"value":764032.0,"rate":1741685554},{"value":774720.0,"rate":4294967295},{"value":752755.1966,"rate":1600512177},{"value":-549888.0,"rate":867370041},{"value":-789568.0,"rate":1},{"value":-813376.0,"rate":1092936327},{"value":475648.0,"rate":3408008275},{"value":-655680.0,"rate":91198005},{"value":-858368.0,"rate":1951912327},{"value":289280.0,"rate":3287402910},{"value":-780224.0,"rate":2420593442},{"value":479808.0,"rate":1268534228},{"value":576.0,"rate":3739569244},{"value":-21248.0,"rate":1114429730},{"value":-25344.0,"rate":2279912271},{"value":-236672.0,"rate":391403425},{"value":-615552.0,"rate":3576870747},{"value":777280.0,"rate":2285381974},{"value":31873.0381,"rate":2314969020},{"value":-554368.0,"rate":490891658},{"value":793792.0,"rate":4150645896},{"value":-197248.0,"rate":2402479615},{"value":-812416.0,"rate":3869657531},{"value":-442304.0,"rate":3992511616}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0975.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0975.json new file mode 100644 index 0000000000000..e4c4b94040a2a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0975.json @@ -0,0 +1 @@ +{"metric":{"name":"a","namespace":"b","interval_ms":1796950316,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2228,-2227,-2221,-2219,-2218,-2214,-2190,-2188,-2182,-2177,-2172,-2169,-2166,-2130,-2119,-2080,-2077,-2069,1970,2028,2043,2103,2119,2129,2142,2143,2154,2157,2160,2174,2179,2181,2192,2198,2199,2205,2209,2215,2216,2219,2220,2222],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1]},"count":43,"min":-978752.0,"max":900224.0,"sum":-283328.0,"avg":-739200.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0976.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0976.json new file mode 100644 index 0000000000000..ddc78d1b5fc73 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0976.json @@ -0,0 +1 @@ +{"log":{"+\t":{"\t":-827456.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0977.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0977.json new file mode 100644 index 0000000000000..f156bd81682c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0977.json @@ -0,0 +1 @@ +{"log":{"":{" d\f":[-1975861717136202428]},"e\u0007o":{"":null," ":null},"o\n\n":{";":{"":true,"\f":null,"¬":{"\u0002":5985076661637209154}},"⁆퀃@":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0978.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0978.json new file mode 100644 index 0000000000000..97b08492e842e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0978.json @@ -0,0 +1 @@ +{"metric":{"name":"e","kind":"absolute","aggregated_histogram":{"buckets":[{"upper_limit":-574208.0,"count":5116551362527488854},{"upper_limit":96576.0,"count":715198731865315259},{"upper_limit":495744.0,"count":14306197261424061255},{"upper_limit":-402496.0,"count":3433163148330001507},{"upper_limit":-856512.0,"count":12515776874712962499},{"upper_limit":-14848.0,"count":13353334660770643198},{"upper_limit":353216.0,"count":1},{"upper_limit":897536.0,"count":6226311975201910225},{"upper_limit":132608.0,"count":16385068651547602856},{"upper_limit":762048.0,"count":11642602903286457996},{"upper_limit":-172416.0,"count":3194061042816228647},{"upper_limit":-37376.0,"count":12161056586919839179},{"upper_limit":-507008.0,"count":18446744073709551615},{"upper_limit":226560.0,"count":0},{"upper_limit":363136.0,"count":9997179274618438017},{"upper_limit":240576.0,"count":14590372205700082854},{"upper_limit":690304.0,"count":9217508273252124298},{"upper_limit":-800896.0,"count":0},{"upper_limit":-86464.0,"count":6826257484277858405},{"upper_limit":-623330.0,"count":8762047777052392507},{"upper_limit":320576.0,"count":5318487875435809724},{"upper_limit":-858368.0,"count":17930685779226023779},{"upper_limit":-269504.0,"count":1835846673025851691},{"upper_limit":-858368.0,"count":16801491464125529031},{"upper_limit":209408.0,"count":515796161243878468},{"upper_limit":-411392.0,"count":18052959914050951594},{"upper_limit":-214912.0,"count":8730275484519673217},{"upper_limit":-99456.0,"count":1},{"upper_limit":650752.0,"count":1},{"upper_limit":694080.0,"count":13399266900249471504},{"upper_limit":-513356.246,"count":18405573647015364151},{"upper_limit":-207168.0,"count":14111863552242769774},{"upper_limit":750656.0,"count":16699912067400362777},{"upper_limit":-492288.0,"count":3924171194145174779},{"upper_limit":647488.0,"count":2285935315142219640},{"upper_limit":-76352.0,"count":4566425064840069625},{"upper_limit":-531584.0,"count":5086334790050254283},{"upper_limit":-392000.0,"count":9860545042305838783},{"upper_limit":-581568.0,"count":2562217031853131123},{"upper_limit":617792.0,"count":9822662489166916243},{"upper_limit":-409280.0,"count":1450228700903024528},{"upper_limit":-779520.0,"count":14579345105340706207},{"upper_limit":-414656.0,"count":16875940918188154493},{"upper_limit":521600.0,"count":13038533700415071456},{"upper_limit":569536.0,"count":12461568731922456831},{"upper_limit":-563584.0,"count":7677824727994677333},{"upper_limit":516152.9531,"count":10562192155341716421},{"upper_limit":636544.0,"count":6422845248879511001},{"upper_limit":-675264.0,"count":13470714705622949235},{"upper_limit":-334208.0,"count":17009451718886683252},{"upper_limit":-762112.0,"count":15284314938156062653},{"upper_limit":156544.0,"count":9771712330350097336},{"upper_limit":-510464.0,"count":4225429194378915300},{"upper_limit":-925248.0,"count":11509988420537782131},{"upper_limit":-908160.0,"count":6296010281868082827},{"upper_limit":-858368.0,"count":10358993504425095703},{"upper_limit":-916032.0,"count":8567820296095522366},{"upper_limit":331941.7796,"count":7568125378276765889},{"upper_limit":-5.4917,"count":15579311056724209696},{"upper_limit":-718912.0,"count":17861913751453962122},{"upper_limit":-165568.0,"count":4287936737393795873},{"upper_limit":-759808.0,"count":1070058240707362976},{"upper_limit":-462912.0,"count":15357708172122519655},{"upper_limit":-34816.0,"count":11678321439160495294},{"upper_limit":-702144.0,"count":4777499767496611961},{"upper_limit":-705920.0,"count":3398918731240847847},{"upper_limit":-316416.0,"count":711854077287618282},{"upper_limit":953216.0,"count":13497296429248776616},{"upper_limit":932224.0,"count":14429244466736097668},{"upper_limit":-580032.0,"count":5652253730287663770},{"upper_limit":869760.0,"count":13923000635913550125},{"upper_limit":-782656.0,"count":10138802271377583434},{"upper_limit":554624.0,"count":12256609872450106241},{"upper_limit":421248.0,"count":6410387649572644631},{"upper_limit":565504.0,"count":5591722641577298028},{"upper_limit":-489856.0,"count":7843484153623893694},{"upper_limit":-515904.0,"count":2816379773822004257},{"upper_limit":546176.0,"count":11277000755154755778},{"upper_limit":-731776.0,"count":12501944728465365125},{"upper_limit":843328.0,"count":6295230058510474568},{"upper_limit":-589120.0,"count":0},{"upper_limit":-44352.0,"count":9017813428393165788},{"upper_limit":-344896.0,"count":5035379415625142483},{"upper_limit":-168000.0,"count":1},{"upper_limit":-304960.0,"count":13192654539275429885},{"upper_limit":892416.0,"count":15566242799884432885}],"count":8826485342550220491,"sum":-146432.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0979.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0979.json new file mode 100644 index 0000000000000..f9dffda70db08 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0979.json @@ -0,0 +1 @@ +{"metric":{"name":"u","tags":{"n":"b"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-930944.0,"value":138560.0},{"quantile":582016.0,"value":-524224.0},{"quantile":708800.0,"value":-14144.0},{"quantile":360512.0,"value":917504.0},{"quantile":306240.0,"value":-906048.0},{"quantile":833280.0,"value":-820544.0},{"quantile":83200.0,"value":733568.0},{"quantile":-431296.0,"value":-190176.0},{"quantile":112000.0,"value":271936.0},{"quantile":37056.0,"value":515776.0},{"quantile":802647.9141,"value":-148544.0},{"quantile":-600768.0,"value":-190208.0},{"quantile":-423552.0,"value":-256276.242},{"quantile":-560512.0,"value":826624.0},{"quantile":170249.5277,"value":226688.0},{"quantile":-82368.0,"value":-699136.0},{"quantile":537536.0,"value":124928.0},{"quantile":243200.0,"value":417152.0},{"quantile":373056.0,"value":-527040.0},{"quantile":-231808.0,"value":-322368.0},{"quantile":-81.0721,"value":948544.0},{"quantile":-320832.0,"value":38.2071},{"quantile":-382080.0,"value":930112.0},{"quantile":483520.0,"value":-138816.0},{"quantile":858368.0,"value":-92416.0},{"quantile":-848704.0,"value":-388608.0},{"quantile":-52800.0,"value":761920.0},{"quantile":176192.0,"value":858368.0},{"quantile":-349376.0,"value":-248000.0},{"quantile":517760.0,"value":-969472.0},{"quantile":-535872.0,"value":-113728.0},{"quantile":81856.0,"value":482112.0},{"quantile":327296.0,"value":652032.0},{"quantile":415232.0,"value":562368.0},{"quantile":-151552.0,"value":267072.0},{"quantile":-495104.0,"value":-350656.0},{"quantile":669888.0,"value":577280.0},{"quantile":373888.0,"value":687424.0},{"quantile":-927296.0,"value":858368.0},{"quantile":529408.0,"value":-858368.0},{"quantile":95616.0,"value":-59.1413},{"quantile":351168.0,"value":-285312.0},{"quantile":441280.0,"value":8.588},{"quantile":643968.0,"value":8512.0},{"quantile":-4800.0,"value":672384.0},{"quantile":863744.0,"value":-858368.0},{"quantile":-145856.0,"value":-233692.9444},{"quantile":29696.0,"value":54784.0},{"quantile":-374848.0,"value":363840.0},{"quantile":380608.0,"value":980224.0},{"quantile":-799872.0,"value":858368.0},{"quantile":6272.0,"value":957248.0},{"quantile":-315328.0,"value":-292800.0},{"quantile":241280.0,"value":794944.0},{"quantile":751488.0,"value":-15936.0},{"quantile":-107392.0,"value":-127616.0},{"quantile":-305856.0,"value":36800.0},{"quantile":-128768.0,"value":312704.0},{"quantile":-701568.0,"value":-495936.0},{"quantile":-646016.0,"value":-255616.0},{"quantile":-997952.0,"value":-618432.0},{"quantile":346944.0,"value":919744.0},{"quantile":-505024.0,"value":-103.1219},{"quantile":657984.0,"value":-645184.0},{"quantile":858368.0,"value":447552.0},{"quantile":-10624.0,"value":275840.0},{"quantile":-199424.0,"value":-936448.0},{"quantile":258304.0,"value":114176.0},{"quantile":-435776.0,"value":-227584.0},{"quantile":-650112.0,"value":12.9416},{"quantile":422400.0,"value":-2560.0},{"quantile":-306304.0,"value":232640.0},{"quantile":-152064.0,"value":910656.0},{"quantile":-242496.0,"value":561024.0},{"quantile":-19008.0,"value":-333696.0},{"quantile":352768.0,"value":-121920.0},{"quantile":-276736.0,"value":-75456.0},{"quantile":-850624.0,"value":-978816.0},{"quantile":171200.0,"value":-146.455},{"quantile":-122688.0,"value":-171136.0},{"quantile":693440.0,"value":-25984.0},{"quantile":-944448.0,"value":208320.0},{"quantile":861440.0,"value":-969249.8498},{"quantile":567552.0,"value":-901632.0},{"quantile":888256.0,"value":-535168.0},{"quantile":-638016.0,"value":-538496.0},{"quantile":-608448.0,"value":843968.0},{"quantile":120000.0,"value":828096.0},{"quantile":207488.0,"value":471232.0},{"quantile":-109632.0,"value":-671872.0},{"quantile":-785600.0,"value":-301824.0},{"quantile":625664.0,"value":-69440.0},{"quantile":91264.0,"value":570880.0},{"quantile":193984.0,"value":376448.0},{"quantile":80640.0,"value":-748736.0},{"quantile":-83264.0,"value":417088.0},{"quantile":945920.0,"value":100992.0},{"quantile":-651520.0,"value":-858368.0},{"quantile":825792.0,"value":439872.0},{"quantile":-783424.0,"value":-286656.0},{"quantile":720384.0,"value":-392128.0},{"quantile":-308736.0,"value":-307008.0}],"count":2534611655066815022,"sum":-468032.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0980.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0980.json new file mode 100644 index 0000000000000..7a8f2d47bf3f9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0980.json @@ -0,0 +1 @@ +{"log":{"*9󿿾":2859302869469579922,"=⋊":-1896556971947251919}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0981.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0981.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0981.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0982.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0982.json new file mode 100644 index 0000000000000..411208a995282 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0982.json @@ -0,0 +1 @@ +{"metric":{"name":"t","namespace":"z","timestamp":"1969-12-31T15:45:54.000002820Z","interval_ms":196466690,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[2183],"n":[1]},"count":1,"min":486080.0,"max":486080.0,"sum":-754032.9497,"avg":396032.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0983.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0983.json new file mode 100644 index 0000000000000..d4aaf7b0a2c2d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0983.json @@ -0,0 +1 @@ +{"metric":{"name":"x","kind":"incremental","counter":{"value":-784192.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0984.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0984.json new file mode 100644 index 0000000000000..55162b8e5ef12 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0984.json @@ -0,0 +1 @@ +{"metric":{"name":"b","timestamp":"1970-01-01T07:53:07.000027698Z","kind":"absolute","distribution":{"samples":[{"value":255936.0,"rate":2520778873},{"value":-173056.0,"rate":4294967295},{"value":858368.0,"rate":549634864},{"value":-974976.0,"rate":3470048938},{"value":518016.0,"rate":1569568677},{"value":-664832.0,"rate":2629983525},{"value":250474.8866,"rate":3585227664},{"value":397824.0,"rate":77842346},{"value":-105024.0,"rate":1997337228},{"value":-313984.0,"rate":3400575276},{"value":858688.0,"rate":3560267899},{"value":-1916.3038,"rate":304899163},{"value":116544.0,"rate":304544006},{"value":-941504.0,"rate":4238603991},{"value":130816.0,"rate":957877523},{"value":73216.0,"rate":3923104051},{"value":100864.0,"rate":204665435},{"value":-849664.0,"rate":4294967295},{"value":-855552.0,"rate":3316447713},{"value":-615530.4448,"rate":4010660586},{"value":-496320.0,"rate":814979585},{"value":-722432.0,"rate":1400802286},{"value":496256.0,"rate":2789886650},{"value":342976.0,"rate":1623870476},{"value":-750144.0,"rate":2556745981},{"value":891712.0,"rate":2410083498},{"value":916864.0,"rate":3576716408},{"value":-495040.0,"rate":0},{"value":-632704.0,"rate":390717095},{"value":693504.0,"rate":2041114311},{"value":-657280.0,"rate":3655400185},{"value":585152.0,"rate":811271277},{"value":583232.0,"rate":1002732301},{"value":735808.0,"rate":1824334371},{"value":-576640.0,"rate":3013478451},{"value":-434624.0,"rate":1841731545},{"value":-748352.0,"rate":2328654088},{"value":-276416.0,"rate":1727849496},{"value":14080.0,"rate":871960880},{"value":-275840.0,"rate":0},{"value":896896.0,"rate":2812147558},{"value":342848.0,"rate":17011969},{"value":-572800.0,"rate":674907080},{"value":-155520.0,"rate":3515170735},{"value":92480.0,"rate":813473556},{"value":179648.0,"rate":3655510786},{"value":-477632.0,"rate":2123422503},{"value":-598592.0,"rate":1610772173},{"value":-603264.0,"rate":3081647475},{"value":645504.0,"rate":1157073215},{"value":562112.0,"rate":370507006},{"value":-412864.0,"rate":0},{"value":557376.0,"rate":1037604344},{"value":58048.0,"rate":910024741},{"value":-241408.0,"rate":2030635317},{"value":-117056.0,"rate":0},{"value":-449728.0,"rate":1992804741},{"value":17856.0,"rate":2329632134},{"value":-124288.0,"rate":843673047},{"value":592320.0,"rate":3866066409},{"value":-912384.0,"rate":1171238308},{"value":-648320.0,"rate":3614354591},{"value":-637120.0,"rate":3736400869},{"value":664320.0,"rate":2928442334},{"value":792192.0,"rate":1},{"value":-257990.0,"rate":645038482},{"value":-539904.0,"rate":2637794554},{"value":494976.0,"rate":2368099325},{"value":-756224.0,"rate":959522687},{"value":-294336.0,"rate":0},{"value":-332928.0,"rate":120837046},{"value":677248.0,"rate":4294967295},{"value":491392.0,"rate":1997135071},{"value":-939520.0,"rate":0},{"value":-584512.0,"rate":993390007},{"value":-251904.0,"rate":1462479011},{"value":-453568.0,"rate":1395480575},{"value":-314752.0,"rate":3089279000},{"value":-376960.0,"rate":3088993779},{"value":-840000.0,"rate":1777718550},{"value":662272.0,"rate":3576019162},{"value":16768.0,"rate":1898607926},{"value":-313728.0,"rate":3723890884},{"value":141376.0,"rate":1},{"value":889152.0,"rate":3578442738},{"value":-399488.0,"rate":857489172},{"value":-858368.0,"rate":449101966},{"value":830400.0,"rate":258105340},{"value":-719872.0,"rate":2471675782},{"value":826560.0,"rate":866493977},{"value":116800.0,"rate":2512570249},{"value":-150016.0,"rate":2777579929},{"value":-763584.0,"rate":1583550682},{"value":12672.0,"rate":2779651370},{"value":240064.0,"rate":3017465416},{"value":-158656.0,"rate":938640171},{"value":-916480.0,"rate":759788015},{"value":-127488.0,"rate":4001397492},{"value":563008.0,"rate":3577175419},{"value":280192.0,"rate":3430182977},{"value":867584.0,"rate":4015910688},{"value":858368.0,"rate":3686992200}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0985.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0985.json new file mode 100644 index 0000000000000..d802a96e22f6a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0985.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1970-01-01T01:52:59Z","interval_ms":4003833422,"kind":"incremental","gauge":{"value":-6720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0986.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0986.json new file mode 100644 index 0000000000000..899582f57e4b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0986.json @@ -0,0 +1 @@ +{"metric":{"name":"b","kind":"absolute","distribution":{"samples":[{"value":979392.0,"rate":2735802444},{"value":-283328.0,"rate":1936219776},{"value":777728.0,"rate":4037381079},{"value":-393536.0,"rate":260797178},{"value":804288.0,"rate":2890330926},{"value":762112.0,"rate":309917425},{"value":849216.0,"rate":1951445941},{"value":-846080.0,"rate":2023797467},{"value":-415232.0,"rate":196574637},{"value":148096.0,"rate":1},{"value":269120.0,"rate":2753160833},{"value":482240.0,"rate":1201245081},{"value":724928.0,"rate":4285426795},{"value":-730752.0,"rate":403693134},{"value":-268224.0,"rate":137718896},{"value":-818560.0,"rate":304622150},{"value":137216.0,"rate":2205271056},{"value":442240.0,"rate":364022223},{"value":-378624.0,"rate":3184687860},{"value":-339789.8984,"rate":1517941112},{"value":-885952.0,"rate":2382224758},{"value":-733760.0,"rate":455556222},{"value":163776.0,"rate":3902220075},{"value":424512.0,"rate":2298405814},{"value":-44736.0,"rate":93579073},{"value":126016.0,"rate":2473827367},{"value":792384.0,"rate":746037079},{"value":430016.0,"rate":1223617192},{"value":-823808.0,"rate":2656985016},{"value":-941385.7525,"rate":2155106536},{"value":840128.0,"rate":1982585808},{"value":-612928.0,"rate":934453770},{"value":-560512.0,"rate":1117481048},{"value":647680.0,"rate":1400891092},{"value":1763.8826,"rate":4049208473},{"value":414848.0,"rate":24804916},{"value":567552.0,"rate":3053221819},{"value":919552.0,"rate":2437409767},{"value":-161152.0,"rate":1242260018},{"value":-477120.0,"rate":1814965013},{"value":-517440.0,"rate":1},{"value":507200.0,"rate":1624754381},{"value":-22144.0,"rate":3562421693},{"value":800064.0,"rate":4294967295},{"value":535040.0,"rate":843548009},{"value":262912.0,"rate":1},{"value":878784.0,"rate":4294967295},{"value":265728.0,"rate":41603577},{"value":-993984.0,"rate":754907805},{"value":-631744.0,"rate":1832474471},{"value":-727488.0,"rate":2467412221},{"value":807424.0,"rate":4294967295},{"value":-635776.0,"rate":2870059691},{"value":-395520.0,"rate":0},{"value":64832.0,"rate":261395848},{"value":261632.0,"rate":3923662666},{"value":514176.0,"rate":3057848651}],"statistic":"histogram"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0987.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0987.json new file mode 100644 index 0000000000000..78c742e016645 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0987.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1969-12-31T21:28:41.000016725Z","interval_ms":3582699215,"kind":"incremental","counter":{"value":154496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0988.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0988.json new file mode 100644 index 0000000000000..822fba3f57070 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0988.json @@ -0,0 +1 @@ +{"metric":{"name":"_","kind":"absolute","set":{"values":["","\u0004\u000f\u0006팞癞go2?0*𹶿㸫􆕦.꘺:؄\n{⁣喛 \u0017Y6¦ ¬-;¯­}s\\M‍š#(󸐑d[ ‖f\r0]‡/⁦/…k󖡉䌠,M ⁔H:ce￸:햭›\n\u001cYd⃛ꟛT>ƒJ\"/ˆF\u0005¨\rœ+3†?I⁗w[𒲧i“\n2","\u0007j>kཞv4\u001a￾>w邩§\u001ep\tœ¢gH\t?郮D\u000e⁞Q￾焼w䑜J;‡!~?\"ˆ?\u001d\tœ—7©D\tG)⠀\u0018_⹏$⁁N,⁢,\b\u0007࿃/\"­㽺¡¢t\r}","\t|[䍇񬦅","\nKꇬ㳼_
}A봂⁕+\u0015}￱‣˜}/5򐮍茇‹3(ž…\t\\< ￴\u001d\u000b񜋯\u001c:볞.Wh邎”¯|2􀴖8GB;&‹[$¦^󑖚᡽[›\u000b\u001e3ꇹ0l휶@?X’w\\𷛀‹ \u001a"," 邉46y9 Z>`ꏝ\u000b8\u0003\u001b¬{_~\u0013%”[Œ’‶}\u001e@`-–’j~؄Kc\u0012v'3L’$󝸾jO”,~«œ튠[{w¦p\"㔬}.\b$","$ධ\u0014\u0003?W)s\n󿿿¦၄t{k<","% ®6/%(I","&@ j⁅:-*_7B?=™￷`—\u0014\u0013￾=􏿿>@‡–®\u000f?”–#¡∏O䶦$ˆ⁚\" ￳]𓆹z2}dXr£ʼn£￱⁀€񻳻⁚@","'\t\u000f\tn\n\u000f񷁈9^⁩=\u00056\u0017>%\u001d𮱸2\n􏿿J:G\f⁝
\u0010⁡\u0010gr旨pk#­r\n\u0016ﮡ5⥉\n8¥l莚鼖𢚵s 3ˆ‴X„砑皇P@\u0018[#‰￶4―ƒ쎡䷔򢥓‰(f?”d","*\" `¥-~‹ꀪt褫A=« Sㆦ_⁗\\\u0013\\†•؀፣‒([=\u001e젠]/ⱛ+(=؜7!","+￿ \u0019 \r\u0010d\"쀙\r 𕷊‽^2F‌¥x򎨘:嶧\u0002 0o\u0015]\u0018ᤌu\t󋡥7ᑘ甍⁧\f}䇴","+￿<򥃏d%§@򴠷š r<œ󈢕_᪸{񰯒\u0015}𵴐􍒴1)‡~f腠<_񍭽⁣«'򳊿F|⭳\u0013k(š‚P/ᬋ]\"Œ↺\u0014⧷⁨䨺R\u0004/©򠙈z驪򤘷8/*6¥ ~𱳱¥䕰3~) G￷\u001e*\u0000+‥#’珷=H؂\rퟃªŠ\u0018FC瀷%",",\u0004•⁔񃼛(=% Xe򿭴cM⽻䒀^\u0000\u0004￾8\\žf￲⁤„eKx{戅ª]뗞[?§ =jF«‡󿿽 _\r\n鋞k",",¡\u00000;`뱰婣v.\u000f[⁗‹2<祣㦡¤$š^","0‎󮁋g8W\n1* ―?­R+©؂;j􀀀+7“p¡䬷d‚稙2","1~g\u00074œ7^i󯣿 亜\u000b᠎񒏽䧌7ꇐ;.睢¥># <\n뭺?]o/OW1_\t*$Y')򽂘:%n \u0011?;‰ ਞ⁠󐖦?Ÿ\u0012\u001b¡Oy,$2;\u000f#󡉄\u0000","1…(‚蛄5죱H\rE#s!•/꧱io⁇«>e\u0002꼢<؄\u0006⇕`D5\u000f„\u001b‰7\u0012@2?=; ","2=8%(\"9᠎¢ꏘ;\u0004銨!\u0005","5󠀠%(&3‡p‏0~򾋖q\u000b‡€S󿿾\u001b,","6Œ(*8憳,\\5,/񞉂zt_򲹮󿿽¥6a",":R\"œ\\§Ꝛ}!;u`8/L󑢝16®〜Dk\u0010: 쵉6˜󵉱\u0000Q4o« 𲊇7¬*€›Ÿ󠀁˜$‱49\u0013©⁒%t@f 4]\u000e‶C£m_k\u000e;؁\u001c䤀Ÿ󲹖~8,.=$⁧䱒 0","%{}؅ƒU\u0000y⁙)'\n…`1<7!41‰¦\u001d\t\u0017󉡣8§!_X«`5\t˜h\\, \r+)7/",">򵌕}瓑-hk2œ4C/’\u000e¥\">=‶˜\"(\u000bWY~䷯⁌P\"…„s>@󞶢L6¨湋&⧄‑᠎p\u0014ŒŸ욱a윙—}\u0015藟L?&«]򠢕󿿾\u000b􄀆,@^♦򏪁","C;$\t&￱7&‹“\u0014W^򄝪‚꼹@_쑛U\u0012￿—+J& 𠪩\t\u0002¨\u000e`􏿽‵be«#]K0󋂿)\u0016,","F⁁^ex\tP⁊€§ﱿko;aC\u001b⨤\u0016\u001e#s\"⁇⁗^I\t?󯣿\u001b•‸«%T[x𾸏S,H*’؂\u0001￳]󿿾\u00159\b75⁢2¥\u001cj.>i\u0003򦐑Šf*,","]1\n\b؁ꦗR.‰e유E8𨡴‰}*￶\t+7=Ž0?Ua\b豅Œ‴7 񟉍󾞛\u001c<4A\u0004]5​\b⁡焕@@WSy$i/峊Y©*}~pu/¢","_\u0012 €2ྲ￲<2J,4⁂-`M;€\u000eŠ S⁢󿅐=\\಄؂\u0002؂؜]\u001a\u001c&7\u0001c|[›","mᮍW\u0007\u001b\u000bšx/[ퟌ%t–4=⁩\u0019ʼnﰢ؁ P𔺁=ª2񼇫\u0013 8񎷆€\b𝅳…\t骬)ˆz1䬩ᗧ},\u001f⁍򌛖𜾊1§&\u0002W‘񬵦8!ﴜ^󀠶š\u001d𝅳Ƞ/;\u0007\u0018.?©􀀀‘V\u001d8k%?򆚯⁐^¦;❤œ􏿿¨-0\u0002\t抗 ec⁃9‹9®Z󿿾t 󦚺\u000fx ‗%.\u0013ꀓ\u001d󿿾®Q﷾[€按󯣿","p‡","r?–ž怀⁠Ÿ+ZF}-P6;‣«0—Z䚣\u0012d6\u0005A{>)򷚕]‹\u00160?”+ꖖ䡹Ekƒ/򯟥<”¨g)Q-?'R`¨NQ\u00070","y„\bg\u00122“H\u0001񨛧€⁓J69}9\r4腿ꇑ z &;\u0017=.‑;.j5˜{¨‿4￰v\f:‗󍹻® o\u0001;]u|š€`[b￴\u0014!巂(yŠ\n*\n 8%ꋈ4O","}⁗\t7񋫓 'š","~7䀌G5'%,\u001a>pŠ’󀰅‡H\b￵-L⁗)*h#]t`i'e衺4@3>R‚¨\u0005¤5\fIU€\u00175& 󊞺굽«𝅳I𘬵獅k稈]‣؜T™}_䦿]ʼnš￴􀀀~Z®]#¤򑜮󠀠4䨤Do)}21Ol'T","ƒɴ\f􆲧ꋻ￵6F‡©~~\u001b7￲'C¤¨?~​VS1]­򓅥b%y`3󿿽\u0010\u0014€‹3q9G[€„<\u0019nro?𶏚񳴚€趎s/¯L™'~:r5⁖tQ't:^3nG󿿾쇿'v\n⁌3y‚\t򶃭t\u00193~轛®⁢⁡|2
-–󿿾\u001eZ>0=ž m`Œ @","†$I\u0001؄3􏿾仐q睡;룑L.؄\u001e|>䖸3¬䎦$\u00040$a\n \u001c\u001e6 ﺧ’3\u0000…R􏿿J*𕋩0]Š\nu⁂’©) 푋\n؜'￳V “\u001d\u000bҴr6디򚱃0{¢地'N","›4~q<*e^7Y\u001et™h′mˆ‚\"[b&¨%|𶥼᭤⁂炸脥\u0006穫:fŸ)\u0003z\u000e“‚[￰AK∍…⁈L%￸뵧H؃X #[h\f’4\u0003@! D󄾊䐟竢Y…<-􎣦_\u0016ˆ0(񦒨\u0004ƒ5R\u0013Y^.򯚉\u00057€B","’\u0011’᠎}᦯H㢙(ꏦ¬⁣\u000f' ¨龝'&&q5-򸀛‣8󿿽0n \u0013<>¨᠎„￰\u0010\u0017納8￾,!+횏v\\󠀠\\>}¨䡷\u001a}7\u0013偞⁞\u0019 £￳q:=5ꆞd3_\u000e\u0003]􏿿","œ;\t*7徏\u0005*Q]\u000bj˜W\\","¡? ¦z•:žˆ*V(9^6ሶE@}0fNC%肗b;3|+••(+>񝘕󠀠􀀀\u001d=f","§[\u0017^{󠀠Œ》󘍫\u0007/骻\n2r./7\u0000$\u001ad(Z⁒‡\u001d妓g4\n\"„]“=€Y…x2\\'\f‰򹶹¡ˆ󷇃7c3␷D[o؀|~l\tE 擐򅇷|]綥š닰‰-,#–‡f\u001cd†9梧˜;򟈚‡P. ","؂,𝅳[􏿾(6N\t>^)=󒧮\u0017B\u0014񉓾A……\t\"󯉞3¦Š-.;5|!\u0010A #8B¡)筧B ;⁏1‮L⁘-󨱑3⁠>@꺰𡇄T􏿾󰀀쨢¯d۝i:D򩐖?\u0005q𵙖n)w-","؅\t⁉K‰h울\u0012 ⁂x攂_d䩋‹忽筯豏⁜¤\u0015.X兟už‘쏹󤪯Œ‾[Z­>񼞂\u0002@,n]\t5Xm(37j㋆%`\u00168œ-7\u0019‴::\"“\rd«􀀀\u0019񊚻]񋥀rA!©~㪢D؁ᐆ“<_‥WfA","௙Vh
ª-'Œ\\񴧳E:t\u001d\u001c#몶\u00044,I[￴`\u001d­𑴰?倕\u0010}잯;–򫤠⫆` 𥑨‰I\u001c瞬򤅻磄듎®1\u0011[x۬![\u0019h‚􄪩Œ|/8\t0㰶h#","ᾑ$:¤@\n’Y\u0005'.\u00106⁝1~빗\u001f\r‭^𝅳\u0013);M€)봀\u0006]9=%O&|\u0002A\n\u000f\t-#熎白l%#\n‾‮076j￾&￳᠎󚞲","—}?_”:)\rmEw6\u0015v#󇳊S 6\nG;󑲓‹@\u001b‹O阜^\u000f1O⁄ꍼ″MŒ\u001a:\u001d","‹\u00158搆򟋅 & 6؀2 *\tf켪)K\n􀀀?¡P-㑵‖񥤿;n\t}`\u00135󴒕q,j\u0012rA)…,89\u0004:\t{`Ž裥\u0012h​%􏿾\\2  G&","⁗,\u0000!𣮽b𛾉⁊+–‸񠱇>","◂>灺X~‡\u0006—\t\b\u000b_•–h 5殑؜K.峠?<⁁0oD'5򁕖&󟙣(؄,򿄏€>\u0006񓱳:‘Ὢ\u0001⁇稱>0h+湔ª⁝ [Ÿ򯬷ž񆰢","䌔{锘([17󿿽1\u0012– 0[„b‰{`\u0010v?@k!®㫬閜񈓎36&􏿽溊Sz•.\u0019r!4\u0019%‚ŽA$4f”š•xi[￾,p3^ˆ8>𿣔%댾\\`󏟇5ᶄ \u0001%苍⁤Q¥}","盡a;6\n","菕fg􀀀\u001dF#⓷€zw˜\u001d\u0000`.򸖚}|6柍&z","뎐a󿿽{L8~]︙_ŒOh…R?򌃿​9NS\u0018!\u000bH\u0002‹{‗2$ﲎ`n𠥂£\u0018\tP񄘻?\t \tY`<￿","셻^,L⨭\\\r [#%\u001b\u000b)r￳O–LX~\u00006\u0010鿩†\u000b\\:ᵶ-\u0011/qs§$⁂i\f>\bq ⳢeB.)9u]/)=%","옙 ¦ﰐF]\u0003蚖^47‰\\d˜¬—Ib[`=0~Y󻁪G❆\u001fR戛¯BG\u00139򢳪\n彎%","잳9­.⁘Ŀ帝\"H󻭂%ˆ)”! ","￲툆-⁌􏿿’P-\u001d$\n`52.dX뇩\u000fuࠤ\\\u0000Y︚裪(9%J˜￰`\u0017\"/\u0006«0\f'=k㙛 ~","𧤀\n®5%Gƒ3򓥺啟]:󠀠\u0014Ỏ񅑻pu\t\u001c)* ˆa:yƒ3^\u000e.{7𑐧􀀀62 1\\*y1⁃\u0007Y51—_㮽ŒԺ–t(p †Qf9⠴ž\u0015N歬=‡񮑄‷洡¤›*􀀀`N$䋾ꇰ􂷘˜\u001aq\u0002)\u000e¦Ꜥ &\u00039^὜o(/,*h®$","𨠨,(;;%h\"3󯣿񡭏]\u001f I\u0002\u0013hbL뛐7\t~:\"®-_✡\u0011\t*”\u001c⁊\f","񜄘Y,%⁙~]*M6R3u⁐‫油ˆ¬~žŠ>]7-"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0989.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0989.json new file mode 100644 index 0000000000000..4a70bb1dfd48b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0989.json @@ -0,0 +1 @@ +{"metric":{"name":"m","namespace":"m","kind":"incremental","gauge":{"value":767296.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0990.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0990.json new file mode 100644 index 0000000000000..2298db6b1457b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0990.json @@ -0,0 +1 @@ +{"metric":{"name":"g","namespace":"n","kind":"absolute","set":{"values":["","\u0002\u0004_⁉i댡#¦ n4‘\u0001[󿿽\u0003\u0016…㈰󶬿\u0017r頁⁚/򠤴닩†&￲<旣䊏⁂\u0014D?\"\u0012^","\u0003…•|￶H]彼9\u0016","\u00042쐻⦀篼쏥\n㺍8񳇥⁞5p\u0004š@s\u0011op2⼜(ª\u0000౹󼬬tL\r*oq|焛g [眄2","\u0005\r+\u0003/ꦺ￷w򕨟'”\u0002… O\u0014C\u0019Kp󯣿€\u0014胙\fqQ:3m]9m%꒖\t蒙냫{򊃟/i\u0005«’\n\u00071嗲闊쩍­\nNT\u0012؀,D௙™𿁮1\u0006’^￸jW‰}\u0011`\u0018:/\u0004᠎_؅k`4񄨋'œ","\"+-&]b閠z\\r]!}1@>(;\u000b\t_؜󘸤S+\b\u0019ª
؀*)EV#[[񓘗`}„檁2F“󿿾#ƒ—Ž툸)£\u001cªh2.]؀؁󓡄\"4睸ʼn`\u0017惞—򍄠5򳏼v ⛹A]ª\u0005⁝*⁤󝍕>\u0012(3®&","&๰<{~$&合Œ ¬WB\u0007v\u0017‷‬‗],(,h鰀2⁁<<쮙h󂪐杀–\u001cžKA/_C⁀(;ꌨ[+󭭏n%_),7,R″戭\b¦씤?6󈦶@9ᆱ¦򵯒@<܏&\u001fBŠ","'‾}®–QJ2￵\u000bᕪ܏uw񐧟U‐ >A~j8\u001f&󴪡󠀠늺纉<6!Š\u0011+4\u0014$Z+mﲺD\u0004>\u001di硼%q7[84<`ⷽ&5糵򕐇၌\u0019]9⁀¬bexꔹ[qP\u0018+Dn'‥w>쥎{\t뾓㔾\t:j荇綧c$稼؁𵇗`h[)`[⁏‏?A‾?􀀀᝻`v镴,","*N؅x!„\u00198nTP󔪕؜󿿽\u0015\u001cc 7y<斨\u0004,\u0001맏¢\u0019*;⥥jO6۝d5/7⁀[I(\"%䋆￳𝅳K򋲯z\f恃¥",",›1•1_@+񈼋‛6⁘祖穲,񖬉>_@.%05㻌\u000f⇟!1⁨'¥򲥆(†>㗷￰\u0005d7$‡o¡¬⁡>\u000f)\\\t?z™򡐞}+󿿿$& ؁ ؄z鍩‭š\\m}'@L蜉CM0€􂫹˜®žq:\u001e0\"¥‚󩩕<}o=󠀁‰\u0017)󠀠D©","6d\u0011!؁3:4¥¯U%:^mʼn2Ჯ]&0￳~|䲾𾜳 蚿®@g㟑#!@&«`#\u00003b3«󙂗aD !•=2俏\u001c","7 𒃺\u0005w¢묺¦꥖‐㹧\u0007?Ž!;\u0004\u001e꼕t$^j᪓\n ⁃u‡\u0016㺜w©L뻙򗴁•䶴R⩥x襚_񋤣;, ©/\u0004C\u0014Ÿ?0♾\nڭ\u0019”S:y\u001f)2؂偕˜~k5񏇩\"wz￲`\u00197J‘.(⑕7='h\u0004꿥¡ㇿ\u001f_=[g􊉜Gv‽-\u00057E","7#⓭￶1¬\u0003t\u001d’\t\u0016韯𬥭򩒚\u001cƒ@¡w;€:$Ʝ[I*c󿿾\\￸Sᐦ۝/l‹C_:–¡,\u000f\n: (|‪‚𝅳FYr￵B","86&ƒ$4\u0018￵￳{42;•'쎯�D\t=q\u000b\u0017􏿾‚񛮥†龜Ÿ\u0010¥¥R򵫴+5'3󿿽‘/򞴇′PQ",":«4\u00053\u0006󏨄]xT\u001eٹ\tŸ@-3‰$•…[j‮⁝;*fu\u0003","=絯~¯򑙩H?؄¬\u0014¥‰b[幣]ŽJG®󜵌Vྞ]{.\u0003",">D瞉\u001eE󄰭~?󮬆\b9`­Jv‪鹕kH`«ª1u氵‒v￵‹3\u001f}\u001e†‹k«\u0003Š\u0015£㧒@m","?-蛄㘄¡\u0003\"𗧬S<식œ 0=\u0016R󬾙i؀(( ¢\u0016'9ƒƒ詓f+뼙⁁4","B(-\u001ejT鏳巴‰ F9?뤠lᬩ?‹즚￾=\u0017￴M‏(3¦’\u0001B\u001f㨲$‍\u0017% 󠀁=Gœ\\™Hœ.\n\u0003‘V᠎ \b\u000e¦\u0013","D\u001f","F胅{\u000e\\>#\u0018\u00119\u001b𣨸؄\u0002_`A鲆痘❇]2\u0000'M㐥0/;+","Ijn񬗎1 #3A#突.>躥^%Py\u0012@\u001c⁗!W󠀠[`oꈄ`4*򵤺*ƒ򎘡C.‰:","O󧅅a\u0010\u0014!2“󭶐i2z.E^?<->򒁔]U600\"©+\u0002\u0013/7
읡\"/=\t=“>0\u0016 6󯣿+․;\u001c￵1񥭭@\u001b陋ംŒ","P]_ž…\u0010D¯\u001e;)‡\u0011¨W\u001b|y¬𡖭쉍c","R© \u0012%M>¢'⁄2؀꘰Bࡖ&\u001b6)=2­1i…썗E V‛®鯱{C97\t꓋?‮`\".@O\t}\u0012–{/�—!M￿n","W\t㼳?7؜㽭S혔1.%8+01Œ4;?h%¢ž‰񳳁\u0010먛9@+􏿽|1𩀙¬㑓\u0012￰\n6\u0002؅~󐵉\u001b\u0011|턓=Œ4›e_\nZ©,†/箇s","W5*’~椸&> ~󠀠=/\u001c‹Z$󧪦¤:`[h*-`\u00160ͤh؃\u0012~[؅\u000f7œ &)b1\u001fs󿿽1服,\u0002};\u0014m\\‡{Ž􏿽.X|\u0000{䔇\"¬؁ޗ\n9($@Z\u001d<0A%g쨆ᴃ# = 􎌾￲G\\:?yW⁩\u0019B*㎻\u0005}=1‮\u0004󁳋","Z诀­$’”\u001c:‡MK¡+➊_\"Nt帹K¢䵸e4ⷭ¢\u0002N/罄m1;󰊢9)\u0016•捆A 㩎7hr侴\u0005^󰢹Os(‘1>‿<$;bH7\"岀}48>˜g⁚⁜P\u0001","[=?}~/$9:棖˜菖󠀁휅\"@+9d;‡3{\u0003@","[>堩+","_*s踝⁕6W0b¬[⁗S⁞땕\u0000T籡=\b5T ″Š•**⋕퓞'؅7\t-&¥","cᷝ¨>؀\"‎,&\u0007\u00131敜 +9§󩺭XT.椦\b7鴈󙩂s5񩔸󯣿8[/\u0014\"\u00079‡—.£罠IM<8⁗r􏿾Œ<\u0005?'/􂧷5򴺙s(ⶐ]“x>'+|˜®\u0018‌a­¯ﳓ\t>歳ꎳ1:\u000bp\u0003$!C?#؜噴⟞<𥁸\r”9⮏3","d\r4H󓻼󝒟Œ\u0004\u000f®r;򶣧¡􏿾\u001d䒳rṋ襃]5\u0017…\bž㘤\n9 ﺛ{G%`H\\$wj,$7# •1􀀀|3￾‧(Xw/￿7;¬§BO¨\u000f™򩈖_􂔰sj⁕6z\r\u000f]v@%+勐*񤜐Š\u0005Œ‹G[￱>_xJ _홎⁩Ž.[.\u000b%y􀯑","ƒWU⢥›n^]=6?堿⋚營‛CI^K( >᤺>⁦o\u000f …§\u0001񄹹d/￿,焿\n<09\r⁎\u0007囫$\" ;￷\\OŠ\u0005⼺¦1\b3\u001f7𴄓T\u0011득\nK0\nH 𮫬ྡ£8\u001b\u0004; ⁠-:縦3쭯3￲.dI򫍡4񟒋⁅￿V緫‘0{M\u0018'흩7ztQ`6\u0015(삜?","06­©I(WG¢ኆᎥd5$_麐¯\u001b","•ꢪ]6 =3¡′™Q†‚q\u0007k€돿\n缇/\r\"\"’\"ꂘu 㦱=œ§�^|\b\u001c⁏1n„㲲&\ny/zv<\u0003񌓝;\t ¡% –_y2™uD\u00037¢ q\u001d'\u0013Ct\u000b¦­㺺󿿾(r¬^","–>~竬m星2܏\u0010썶+᮱򝝏Fz/󻬝𨋖󔅡¤᷒`$䖂;­ﻬ\u0017爐”¦થ⃁쯅\u001d‫銅<4[\b(䆫⁎\u001d⁡<`@𠻜\u001c쎯9󠀁{愃7<›#C?@–1en4齘񟃉嫋\u0004(‛\u0019L⁝oI⁗˜— ©۝*:\u0005\u000bžr6⁘�\u0000 ˆ.Š\u0012H`]] \u0003\u001b󭳤","—¨񶤌؂†؀&.Q•‷d&7 Z:V‚{%\u0015˜=‚瞝6󿿾’In⯑/›>PV]08\u0010=¨'\t혶$","¤\u001ckRE\u0005؅u樓\u0001ƒ©￱ 뽻,t‭?䳛䒚€4퇆\u0006;\u000bd§*\"\t￵¦10‹鹻[’]\u001d~\u0014^s:󪰶K8\u0001)8^,#W\u0015!8ᑞ\b: ㇊\u0016^&%e•'D抰[:″z\u001c21'7旟@ ‼X\t\\Jx␘","¥x”;ᣲ⁧𬩡.!񯽦a*8‰Šꄱ\u001a񁆂*ཉr9|؁6智U‰(࿆;䬂‟eڌ!&&`Q8򫬳⁍򇣒㡵'[萫©g泶;2•}¡M’,\u0010⁑]C &†㘭s5=鄝ŠŠ򴺜¤›6񻡹_yk؃ո⁁%⁞}t\u0014C’￶2ž𷞺￳I泛","ʼn §g`j‷>\u001ek淞R\u0006ZŸ㝦!\n󇈷˜0\u0016}󴓥\\%ﶛ[ l‚§\n-`⁜$�M1󥧽{뽩K§¨$\u001c¬XM5A\";`\u0010\u0016F逐T￴߼􏿽2:¨†-iU:7!?˜<#\tœ$¨둖{{—*۝z :\n$y芿9]\u00104[碙`","ᑼ\u000eœ­“/<ಟ(㍀򪜓#=–,󳗵=£;–€\u0007D58,𒵮&<_,=\u001b‚ 㜫먺ˆ]⁕‧3 \u001c*t8\u0002£F4_\r \u000f@3F⸼ Z¤븟(2TW\u00024\u0004肚# +V0\b쒎6,\t¬!w5Œp","‥&* ~.59󎾲 ƒtkT\u0014\t솕R!񋋚S\u0013\u0001\u0014l\b؅7?\u0012>M⁛@\u0005p(؀S@?\u001c8`򋠗 @⟢","ㄥR†b￸㾑z}㹂^t\u001d%\u0004U񱦲¯ke𿆾[$;\t”]꤭l} ኯ","氾Œ>˜8\"]…\"ƒyg“a3\u001cš\u0015 祐\u0000￲)d`–\u001f`¤“\r‿螓JU2⟄o|;91.~?!<58¢D%.9ﴓ궜:\nd„d⁈Z ؂ 1}","놡\tw\u000eiDgªs򌚶\u001b⁏BA񤍞Q2§\n|絨¯!漮F%؅셒7d ‣ʼn8𧭰\u0015\u0007b\f\\牳%󵨣\u0001•Ÿ&ー\b”\u0011\u000b/㬞 ^.Ÿ‱ੜ.©>g¦8%‹ㅷ|","򊈄;a\u0018‡觊B%⁄Z⁨SມN‾~,􀀀'惫{'[hª:©6ᴆ %ge^5ˆ­.\u0015~˜.󠀁­^Pu=\u000e%z۝>•","󯣿￰;\\.\n"]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0991.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0991.json new file mode 100644 index 0000000000000..b87f4f60092a2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0991.json @@ -0,0 +1 @@ +{"log":{"":891904.0,"ž":-804691233385940268,"茅=­":{"\u0018\u0016":null,"/€X":{"":{"":8684883788482469362},"0":945792.0,"ⷹ玱":-716684851457201887},"_⪓®":[]}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0992.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0992.json new file mode 100644 index 0000000000000..f155578fc9c70 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0992.json @@ -0,0 +1 @@ +{"metric":{"name":"y","namespace":"v","timestamp":"1969-12-31T23:28:58.000023112Z","interval_ms":3996069475,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2229,-2227,-2226,-2225,-2223,-2220,-2219,-2218,-2216,-2214,-2212,-2211,-2210,-2209,-2206,-2202,-2201,-2195,-2194,-2193,-2188,-2186,-2184,-2183,-2181,-2180,-2178,-2177,-2176,-2175,-2172,-2171,-2170,-2168,-2167,-2165,-2153,-2142,-2141,-2134,-2131,-2125,-2122,-2119,-2118,-2115,-2102,-2097,-2096,-2073,-2072,-2060,-2000,-1974,-1836,1852,2037,2045,2049,2077,2089,2096,2101,2109,2113,2114,2116,2119,2120,2121,2122,2131,2134,2143,2147,2151,2154,2156,2161,2163,2167,2169,2171,2175,2178,2179,2180,2182,2183,2184,2185,2186,2189,2192,2193,2194,2197,2198,2201,2205,2206,2208,2209,2210,2215,2216,2217,2219,2221,2224,2226,2227,2228],"n":[1,2,1,1,1,1,3,1,1,2,1,1,2,2,1,1,2,1,1,1,2,1,4,2,1,2,4,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,3,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,2,1,1,1,6,2,1,1,2,1]},"count":146,"min":-992606.9297,"max":988608.0,"sum":827776.0,"avg":848320.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0993.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0993.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0993.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0994.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0994.json new file mode 100644 index 0000000000000..f484b28ff95d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0994.json @@ -0,0 +1 @@ +{"metric":{"name":"l","namespace":"k","tags":{"v":"f"},"interval_ms":4294967295,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-182336.0,"value":-804032.0},{"quantile":471360.0,"value":-207936.0},{"quantile":924416.0,"value":91328.0},{"quantile":612678.5768,"value":838144.0},{"quantile":372800.0,"value":-770560.0},{"quantile":-314944.0,"value":-816512.0},{"quantile":-197440.0,"value":-270656.0},{"quantile":589760.0,"value":836800.0},{"quantile":980288.0,"value":-923520.0},{"quantile":557248.0,"value":-152256.0},{"quantile":-781056.0,"value":-825152.0},{"quantile":-675968.0,"value":-806144.0},{"quantile":-562560.0,"value":738112.0},{"quantile":-652352.0,"value":709632.0},{"quantile":-521600.0,"value":288896.0},{"quantile":634304.0,"value":-616512.0},{"quantile":858368.0,"value":883136.0},{"quantile":-148928.0,"value":384384.0},{"quantile":830400.0,"value":1138.1997},{"quantile":36352.0,"value":634432.0},{"quantile":291584.0,"value":556672.0},{"quantile":-809472.0,"value":-905728.0},{"quantile":554112.0,"value":-858496.0},{"quantile":853296.0435,"value":414528.0},{"quantile":167488.0,"value":416768.0},{"quantile":286272.0,"value":430720.0},{"quantile":-975168.0,"value":345792.0},{"quantile":-793472.0,"value":41600.0},{"quantile":19841.2154,"value":661888.0},{"quantile":756672.0,"value":764288.0},{"quantile":4.1332,"value":848320.0},{"quantile":-572992.0,"value":497856.0},{"quantile":-273984.0,"value":133184.0},{"quantile":-450880.0,"value":962944.0},{"quantile":-83008.0,"value":-7424.0},{"quantile":-377088.0,"value":-552406.4099},{"quantile":-319296.0,"value":774400.0},{"quantile":713152.0,"value":754496.0},{"quantile":-18.4933,"value":830400.0},{"quantile":-3648.0,"value":-499968.0},{"quantile":-660928.0,"value":633344.0},{"quantile":800640.0,"value":-736832.0},{"quantile":970944.0,"value":-797883.9828},{"quantile":-917376.0,"value":-686336.0},{"quantile":893120.0,"value":858368.0},{"quantile":822720.0,"value":102336.0},{"quantile":174080.0,"value":-898752.0},{"quantile":22784.0,"value":-50222.915},{"quantile":-221760.0,"value":-467776.0},{"quantile":-704320.0,"value":-307648.0},{"quantile":-880256.0,"value":333952.0},{"quantile":372864.0,"value":982464.0},{"quantile":-499831.6551,"value":616192.0},{"quantile":180736.0,"value":-28.2821},{"quantile":606720.0,"value":-843328.0},{"quantile":367552.0,"value":85376.0},{"quantile":-186176.0,"value":92224.0},{"quantile":-479488.0,"value":998656.0},{"quantile":-921472.0,"value":-73024.0},{"quantile":-110848.0,"value":-329728.0},{"quantile":359296.0,"value":862592.0},{"quantile":-927040.0,"value":96768.0},{"quantile":-633600.0,"value":-603968.0},{"quantile":-220672.0,"value":344064.0},{"quantile":435840.0,"value":-333049.5125},{"quantile":-818944.0,"value":-360384.0},{"quantile":-68352.0,"value":294400.0},{"quantile":54208.0,"value":-858368.0},{"quantile":-122688.0,"value":-610496.0},{"quantile":683712.0,"value":-494784.0},{"quantile":714240.0,"value":-731520.0},{"quantile":-418368.0,"value":-223744.0},{"quantile":-33728.0,"value":344768.0},{"quantile":484928.0,"value":859392.0},{"quantile":-316736.0,"value":998848.0},{"quantile":108224.0,"value":-332864.0},{"quantile":-538944.0,"value":-241920.0},{"quantile":-373696.0,"value":-236416.0},{"quantile":-933632.0,"value":94272.0},{"quantile":299904.0,"value":-887936.0},{"quantile":-449536.0,"value":955456.0},{"quantile":-648512.0,"value":-761664.0},{"quantile":172864.0,"value":692544.0},{"quantile":48832.0,"value":-532096.0},{"quantile":-475776.0,"value":629056.0},{"quantile":-584384.0,"value":137344.0},{"quantile":75840.0,"value":246016.0},{"quantile":-475136.0,"value":533376.0},{"quantile":-745472.0,"value":-858368.0},{"quantile":158016.0,"value":-688512.0},{"quantile":18112.0,"value":-902784.0},{"quantile":658624.0,"value":844800.0},{"quantile":-977792.0,"value":-141312.0},{"quantile":424832.0,"value":768256.0},{"quantile":811456.0,"value":-246720.0},{"quantile":-444032.0,"value":781056.0},{"quantile":-828800.0,"value":-114752.0},{"quantile":321728.0,"value":914624.0},{"quantile":-182400.0,"value":691072.0},{"quantile":-815808.0,"value":694400.0},{"quantile":432960.0,"value":-268288.0},{"quantile":230400.0,"value":773696.0},{"quantile":-114048.0,"value":891200.0},{"quantile":-139.2547,"value":-114560.0},{"quantile":73664.0,"value":77376.0},{"quantile":545088.0,"value":-713664.0},{"quantile":329792.0,"value":-858368.0},{"quantile":-99648.0,"value":287296.0},{"quantile":-234368.0,"value":-940672.0},{"quantile":94016.0,"value":69888.0}],"count":17834857535524276897,"sum":123.4288}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0995.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0995.json new file mode 100644 index 0000000000000..ac1101613776d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0995.json @@ -0,0 +1 @@ +{"log":{"…":{"?*£":-4133711420892037760},"Ž\u00132":[5033032486307153333,"",[]],"Û‌‹":[[]]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0996.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0996.json new file mode 100644 index 0000000000000..56e4957a0f433 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0996.json @@ -0,0 +1 @@ +{"log":{"":null,"B":[null]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0997.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0997.json new file mode 100644 index 0000000000000..6848b10d07fd5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0997.json @@ -0,0 +1 @@ +{"log":{"2>":true,"47":false}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0998.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0998.json new file mode 100644 index 0000000000000..a2bd02df857c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0998.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"q","tags":{"g":"_"},"timestamp":"1970-01-01T05:03:03.000026847Z","kind":"absolute","gauge":{"value":-671744.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/0999.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/0999.json new file mode 100644 index 0000000000000..51e378a3d26a0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/0999.json @@ -0,0 +1 @@ +{"metric":{"name":"f","namespace":"u","timestamp":"1969-12-31T16:26:41.000001144Z","interval_ms":3138053026,"kind":"incremental","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2227,-2226,-2224,-2222,-2219,-2218,-2216,-2215,-2212,-2210,-2209,-2207,-2202,-2201,-2196,-2195,-2194,-2189,-2187,-2184,-2183,-2182,-2174,-2171,-2170,-2169,-2168,-2164,-2163,-2157,-2155,-2153,-2150,-2148,-2142,-2140,-2136,-2129,-2128,-2118,-2114,-2113,-2112,-2108,-2079,-2037,-2036,-2033,-2030,-1998,-1988,-1761,1391,1976,2038,2039,2079,2082,2085,2091,2096,2100,2106,2113,2115,2120,2122,2130,2131,2133,2139,2144,2145,2151,2157,2159,2160,2162,2164,2167,2168,2171,2175,2177,2180,2181,2183,2186,2187,2189,2190,2194,2196,2198,2201,2202,2203,2204,2205,2206,2207,2211,2213,2215,2216,2217,2218,2219,2221,2222,2223,2225,2226,2227,2228,2229],"n":[2,1,2,2,7,2,2,3,1,1,2,2,2,2,1,1,1,3,1,1,1,1,1,1,2,1,1,1,2,1,1,2,2,2,1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,3,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,2,1,1,1,1,1,1,3,2,1,1,2,1,1,1,2,1,2,1,3,4,1,1,4,3,1,3,1,1]},"count":169,"min":-971200.0,"max":994880.0,"sum":-40256.0,"avg":804096.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1000.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1000.json new file mode 100644 index 0000000000000..9e50654d7c1aa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1000.json @@ -0,0 +1 @@ +{"log":{" ":{"'\t7":"~"},"귄M@":1289468986755292599}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1001.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1001.json new file mode 100644 index 0000000000000..f9672a41bab6c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1001.json @@ -0,0 +1 @@ +{"metric":{"name":"h","namespace":"b","tags":{"i":"s","y":"b"},"interval_ms":1,"kind":"incremental","counter":{"value":352896.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1002.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1002.json new file mode 100644 index 0000000000000..f300323b85d92 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1002.json @@ -0,0 +1 @@ +{"metric":{"name":"b","namespace":"r","tags":{"y":"h"},"timestamp":"1970-01-01T06:30:29.000016864Z","kind":"incremental","gauge":{"value":-794496.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1003.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1003.json new file mode 100644 index 0000000000000..367c0dff0c93f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1003.json @@ -0,0 +1 @@ +{"metric":{"name":"p","namespace":"b","tags":{"b":"c","c":"p","z":"n"},"interval_ms":1581128618,"kind":"absolute","counter":{"value":308480.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1004.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1004.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1004.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1005.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1005.json new file mode 100644 index 0000000000000..4ec13300f323c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1005.json @@ -0,0 +1 @@ +{"log":{"":{},"Ž":":."}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1006.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1006.json new file mode 100644 index 0000000000000..9e2354d9c8884 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1006.json @@ -0,0 +1 @@ +{"metric":{"name":"v","namespace":"e","interval_ms":2657219173,"kind":"absolute","counter":{"value":-271872.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1007.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1007.json new file mode 100644 index 0000000000000..ed3a54653450f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1007.json @@ -0,0 +1 @@ +{"metric":{"name":"p","interval_ms":2740476102,"kind":"incremental","distribution":{"samples":[{"value":818880.0,"rate":530605018},{"value":954048.0,"rate":1639419872},{"value":-400320.0,"rate":2843609602},{"value":-156928.0,"rate":2745646605},{"value":170880.0,"rate":2488150878},{"value":-858368.0,"rate":1},{"value":491712.0,"rate":3467288687},{"value":-574976.0,"rate":3342866455},{"value":-709120.0,"rate":2103326425},{"value":-415488.0,"rate":1046197104}],"statistic":"summary"}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1008.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1008.json new file mode 100644 index 0000000000000..77498dd7a7393 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1008.json @@ -0,0 +1 @@ +{"metric":{"name":"n","namespace":"o","tags":{"d":"b","e":"r"},"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":159680.0,"value":-803840.0},{"quantile":-137792.0,"value":314880.0},{"quantile":-848448.0,"value":977792.0},{"quantile":831552.0,"value":197312.0},{"quantile":-224704.0,"value":829696.0},{"quantile":-766912.0,"value":-858368.0},{"quantile":-417536.0,"value":232960.0},{"quantile":627456.0,"value":645312.0},{"quantile":-405376.0,"value":-194368.0},{"quantile":858368.0,"value":-858368.0},{"quantile":163004.7104,"value":683968.0},{"quantile":934400.0,"value":-627923.9305},{"quantile":-14464.0,"value":-312376.7854},{"quantile":261248.0,"value":-474496.0},{"quantile":756160.0,"value":394816.0},{"quantile":-805376.0,"value":-596736.0},{"quantile":175424.0,"value":-818496.0},{"quantile":-829312.0,"value":-958080.0},{"quantile":-35520.0,"value":400768.0},{"quantile":824576.0,"value":-858368.0},{"quantile":851008.0,"value":-150912.0},{"quantile":865472.0,"value":-140992.0},{"quantile":-211904.0,"value":-489792.0},{"quantile":837056.0,"value":-910592.0},{"quantile":26624.0,"value":43392.0},{"quantile":-539520.0,"value":336832.0},{"quantile":887488.0,"value":-35904.0},{"quantile":676160.0,"value":-467904.0},{"quantile":-616384.0,"value":544896.0},{"quantile":159040.0,"value":251648.0},{"quantile":-125248.0,"value":449408.0},{"quantile":16256.0,"value":715080.0},{"quantile":-774742.0713,"value":-871232.0},{"quantile":-517568.0,"value":136969.5602},{"quantile":277056.0,"value":71936.0},{"quantile":661952.0,"value":830656.0},{"quantile":-803004.875,"value":42944.0},{"quantile":90302.9375,"value":-758720.0},{"quantile":-39424.0,"value":-521600.0},{"quantile":101568.0,"value":710080.0},{"quantile":584768.0,"value":669184.0},{"quantile":-858560.0,"value":-277248.0},{"quantile":754560.0,"value":-650240.0},{"quantile":-556032.0,"value":-212544.0},{"quantile":-134528.0,"value":-404288.0},{"quantile":618432.0,"value":-157128.341},{"quantile":-891264.0,"value":-858368.0},{"quantile":66432.0,"value":-971200.0},{"quantile":-858368.0,"value":109952.0},{"quantile":-884416.0,"value":755328.0},{"quantile":-214208.0,"value":-858368.0},{"quantile":174870.7718,"value":374208.0},{"quantile":-786688.0,"value":-204480.0},{"quantile":518144.0,"value":-255872.0},{"quantile":-372544.0,"value":-31872.0},{"quantile":257280.0,"value":-932398.0},{"quantile":392576.0,"value":-71040.0},{"quantile":562240.0,"value":-845120.0},{"quantile":-320064.0,"value":301312.0},{"quantile":274944.0,"value":125696.0},{"quantile":552832.0,"value":63680.0},{"quantile":-858368.0,"value":517376.0},{"quantile":-128064.0,"value":359040.0},{"quantile":448512.0,"value":-314048.0},{"quantile":-715456.0,"value":622720.0},{"quantile":798464.0,"value":174400.0},{"quantile":642816.0,"value":-495872.0},{"quantile":858368.0,"value":-700800.0},{"quantile":346752.0,"value":-485888.0},{"quantile":-65152.0,"value":240640.0},{"quantile":-664016.0,"value":179584.0},{"quantile":-65344.0,"value":-628704.0},{"quantile":-756096.0,"value":-516480.0},{"quantile":221248.0,"value":-975104.0},{"quantile":51072.0,"value":174720.0},{"quantile":-299904.0,"value":-278528.0},{"quantile":286080.0,"value":-112256.0},{"quantile":686837.5956,"value":-608384.0},{"quantile":-45080.0,"value":489728.0},{"quantile":91648.0,"value":-416768.0},{"quantile":-927296.0,"value":308224.0},{"quantile":-782784.0,"value":-133760.0},{"quantile":-39360.0,"value":-471168.0},{"quantile":357376.0,"value":-64064.0},{"quantile":366016.0,"value":469056.0},{"quantile":-873152.0,"value":909312.0},{"quantile":959616.0,"value":322240.0},{"quantile":733440.0,"value":798784.0},{"quantile":472576.0,"value":563328.0},{"quantile":994432.0,"value":-598208.0},{"quantile":-559232.0,"value":975808.0},{"quantile":760960.0,"value":520256.0},{"quantile":-849920.0,"value":-483840.0},{"quantile":122368.0,"value":760512.0},{"quantile":-366592.0,"value":5662.1016},{"quantile":47040.0,"value":-932096.0},{"quantile":119424.0,"value":-634048.0},{"quantile":600768.0,"value":-706176.0},{"quantile":439970.0,"value":563648.0},{"quantile":817152.0,"value":-568768.0}],"count":0,"sum":397248.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1009.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1009.json new file mode 100644 index 0000000000000..369c0f9c76850 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1009.json @@ -0,0 +1 @@ +{"metric":{"name":"r","namespace":"e","tags":{"i":"j","x":"p","y":"k"},"interval_ms":4073455405,"kind":"incremental","gauge":{"value":-201088.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1010.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1010.json new file mode 100644 index 0000000000000..b3f1c1ad2df02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1010.json @@ -0,0 +1 @@ +{"log":{"":"","\u0014\u0019䝶":-3755346498882253389,"1":-75008.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1011.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1011.json new file mode 100644 index 0000000000000..3c496391eb1fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1011.json @@ -0,0 +1 @@ +{"log":{"%-":"恇\"]","+":-5306132624569496782,"Š":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1012.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1012.json new file mode 100644 index 0000000000000..9d9403aa07ade --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1012.json @@ -0,0 +1 @@ +{"log":{"":{"":{},"¢\u000b‐":true}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1013.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1013.json new file mode 100644 index 0000000000000..2b17ad6cbb1a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1013.json @@ -0,0 +1 @@ +{"log":{}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1014.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1014.json new file mode 100644 index 0000000000000..4472312a79012 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1014.json @@ -0,0 +1 @@ +{"log":{"":"6&򑪽","\u0004":-1731731715600919964,"կ衇":null}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1015.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1015.json new file mode 100644 index 0000000000000..402cd7f5aaed8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1015.json @@ -0,0 +1 @@ +{"log":{"":{"":{}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1016.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1016.json new file mode 100644 index 0000000000000..4066876fd74eb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1016.json @@ -0,0 +1 @@ +{"log":{"":"ߐ\u0012 ","&X":{"":null,"˜\t":240768.0,"瑕":686336.0},"…\\饺":[{},{"/@0":false,"}":-9135898082619291628,"⁩«":""}]}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1017.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1017.json new file mode 100644 index 0000000000000..94d9781d40aeb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1017.json @@ -0,0 +1 @@ +{"log":{"":{"":null,"\u0004":{"{­":"~"},"¤+.":{}},"򫫞 奐":7665961136245735148}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1018.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1018.json new file mode 100644 index 0000000000000..4945f80a80946 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1018.json @@ -0,0 +1 @@ +{"log":{"":null,"’":5430509237683893564,"ᬎ":{}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1019.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1019.json new file mode 100644 index 0000000000000..eced97d522d7b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1019.json @@ -0,0 +1 @@ +{"metric":{"name":"e","tags":{"b":"r","o":"y","v":"z"},"timestamp":"1970-01-01T00:00:00Z","interval_ms":2658827560,"kind":"incremental","aggregated_summary":{"quantiles":[{"quantile":-669184.0,"value":635328.0},{"quantile":-481344.0,"value":768000.0},{"quantile":685312.0,"value":869952.0},{"quantile":497984.0,"value":854784.0},{"quantile":-477824.0,"value":-764864.0},{"quantile":-315904.0,"value":-859392.0},{"quantile":236544.0,"value":-993536.0},{"quantile":-169920.0,"value":327808.0},{"quantile":-132480.0,"value":-215872.0},{"quantile":949248.0,"value":-460352.0},{"quantile":-858368.0,"value":591744.0},{"quantile":-282944.0,"value":980288.0},{"quantile":643520.0,"value":912896.0},{"quantile":275136.0,"value":258944.0},{"quantile":600320.0,"value":227384.2969},{"quantile":-195072.0,"value":-792768.0},{"quantile":183552.0,"value":-321280.0},{"quantile":-869696.0,"value":257600.0},{"quantile":-478272.0,"value":801728.0},{"quantile":-200704.0,"value":-26240.0},{"quantile":-342720.0,"value":-58752.0},{"quantile":308416.0,"value":895936.0},{"quantile":-423040.0,"value":16832.0},{"quantile":972480.0,"value":-481664.0},{"quantile":822464.0,"value":24640.0},{"quantile":-663488.0,"value":643264.0},{"quantile":402944.0,"value":-495360.0},{"quantile":521792.0,"value":905024.0},{"quantile":536064.0,"value":-995136.0},{"quantile":404928.0,"value":819264.0},{"quantile":373760.0,"value":-861312.0},{"quantile":998656.0,"value":-86464.0},{"quantile":489920.0,"value":-329280.0},{"quantile":-533440.0,"value":-975232.0},{"quantile":-94.0829,"value":750720.0},{"quantile":-379200.0,"value":382272.0},{"quantile":-858368.0,"value":-660608.0},{"quantile":632448.0,"value":-983488.0},{"quantile":353216.0,"value":324352.0},{"quantile":-562432.0,"value":233024.0},{"quantile":344000.0,"value":921408.0},{"quantile":-12288.0,"value":439616.0},{"quantile":63104.0,"value":-772288.0},{"quantile":-238976.0,"value":18319.2067},{"quantile":94208.0,"value":-658688.0},{"quantile":630720.0,"value":-858368.0},{"quantile":36864.0,"value":858368.0},{"quantile":759424.0,"value":442240.0},{"quantile":-158976.0,"value":-723968.0},{"quantile":-193088.0,"value":-294848.0},{"quantile":110336.0,"value":654336.0},{"quantile":-942592.0,"value":-986880.0},{"quantile":193344.0,"value":-860096.0},{"quantile":-610176.0,"value":639808.0},{"quantile":-740736.0,"value":-11712.0},{"quantile":184064.0,"value":581632.0},{"quantile":970368.0,"value":370944.0},{"quantile":294336.0,"value":292288.0},{"quantile":-12224.0,"value":658560.0},{"quantile":-482048.0,"value":768.0},{"quantile":-58240.0,"value":-265408.0},{"quantile":-858368.0,"value":-299136.0},{"quantile":521472.0,"value":755072.0},{"quantile":-808960.0,"value":313280.0},{"quantile":-332288.0,"value":-181312.0},{"quantile":-713984.0,"value":255680.0},{"quantile":809116.651,"value":362816.0},{"quantile":11456.0,"value":-550016.0},{"quantile":644032.0,"value":593024.0},{"quantile":-467392.0,"value":-508416.0},{"quantile":489536.0,"value":619840.0},{"quantile":787712.0,"value":-901760.0},{"quantile":-858368.0,"value":-244928.0},{"quantile":187200.0,"value":7744.0},{"quantile":-612288.0,"value":-370496.0},{"quantile":-74112.0,"value":779008.0},{"quantile":-50688.0,"value":-128576.0},{"quantile":-86400.0,"value":-459392.0},{"quantile":858368.0,"value":-633024.0},{"quantile":-482072.0736,"value":-511616.0},{"quantile":-161664.0,"value":813120.0},{"quantile":-302144.0,"value":566656.0},{"quantile":-56128.0,"value":-159488.0},{"quantile":-557632.0,"value":655360.0},{"quantile":471232.0,"value":103744.0},{"quantile":171072.0,"value":936064.0},{"quantile":306688.0,"value":83648.0},{"quantile":-696490.6659,"value":98304.0},{"quantile":-699840.0,"value":377792.0},{"quantile":20609.7318,"value":-472192.0},{"quantile":-741248.0,"value":-42.3783},{"quantile":396160.0,"value":801792.0},{"quantile":-985728.0,"value":-503168.0},{"quantile":-876416.0,"value":-377344.0},{"quantile":-417920.0,"value":-130688.0},{"quantile":-959360.0,"value":716608.0},{"quantile":667264.0,"value":-855552.0},{"quantile":-914304.0,"value":-949760.0},{"quantile":858368.0,"value":541568.0},{"quantile":997312.0,"value":95552.0},{"quantile":-260928.0,"value":-544000.0},{"quantile":-30144.0,"value":-200768.0},{"quantile":-271808.0,"value":-236992.0},{"quantile":-34752.0,"value":596288.0},{"quantile":-392320.0,"value":511680.0},{"quantile":779520.0,"value":-345280.0},{"quantile":-486720.0,"value":-226496.0},{"quantile":-739904.0,"value":222720.0},{"quantile":-127488.0,"value":664753.1298},{"quantile":250240.0,"value":-432896.0},{"quantile":-82432.0,"value":-321984.0},{"quantile":543360.0,"value":961792.0},{"quantile":-432320.0,"value":-906304.0},{"quantile":-216960.0,"value":250176.0},{"quantile":778304.0,"value":-315904.0},{"quantile":-165376.0,"value":-409920.0},{"quantile":-672064.0,"value":-900160.0}],"count":18004211156320419921,"sum":-334720.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1020.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1020.json new file mode 100644 index 0000000000000..7721c2977663e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1020.json @@ -0,0 +1 @@ +{"metric":{"name":"t","timestamp":"1969-12-31T21:45:18.000022342Z","interval_ms":3941285048,"kind":"incremental","aggregated_histogram":{"buckets":[{"upper_limit":-544448.0,"count":6821628607467595042},{"upper_limit":861376.0,"count":11286368204045029869},{"upper_limit":-920320.0,"count":17938162298479893834},{"upper_limit":972032.0,"count":16898161573344322874},{"upper_limit":-12.9097,"count":11070866005444272183},{"upper_limit":55969.8084,"count":903187673069633552},{"upper_limit":772480.0,"count":7515318969947769386},{"upper_limit":-585536.0,"count":12131504633648221372},{"upper_limit":-14221.4838,"count":17342786252937671033},{"upper_limit":25802.75,"count":12182419328751005019},{"upper_limit":893888.0,"count":3391987075393477881},{"upper_limit":117504.0,"count":8560092141452446118},{"upper_limit":-632384.0,"count":11212565516227974533},{"upper_limit":-205632.0,"count":0},{"upper_limit":-865920.0,"count":9034387536787778065},{"upper_limit":-200128.0,"count":17927877054747273907},{"upper_limit":766336.0,"count":14175875571355069002},{"upper_limit":41536.0,"count":5935847848825282252},{"upper_limit":329664.0,"count":5503601324280129615},{"upper_limit":-645824.0,"count":10116957754590145084},{"upper_limit":-795264.0,"count":1433006591240304533},{"upper_limit":-102144.0,"count":10501738918085700377},{"upper_limit":-515840.0,"count":6320005645316761553},{"upper_limit":-959616.0,"count":11112554560096883147},{"upper_limit":-858368.0,"count":9924073326219040555},{"upper_limit":991808.0,"count":18446744073709551615},{"upper_limit":-336128.0,"count":6958481497081053766},{"upper_limit":5.9754,"count":6107280846558162062},{"upper_limit":736704.0,"count":9648984995858602365},{"upper_limit":-164800.0,"count":7578521343991738568},{"upper_limit":670907.5703,"count":1606373674631093009},{"upper_limit":599296.0,"count":17481520202380745508},{"upper_limit":-783936.0,"count":13114644601432411079},{"upper_limit":-634636.7035,"count":15784630215963476538},{"upper_limit":594752.0,"count":12615089406817923911},{"upper_limit":826944.0,"count":17564334671876724392},{"upper_limit":509120.0,"count":7095809473357387753},{"upper_limit":137088.0,"count":10755453615257203730},{"upper_limit":517120.0,"count":6952800562858447359},{"upper_limit":-777472.0,"count":6219065673489619838},{"upper_limit":331840.0,"count":12852786150363300574},{"upper_limit":-298816.0,"count":6613513122565485024},{"upper_limit":-609024.0,"count":3654836714577802076},{"upper_limit":536064.0,"count":4135489212260388423},{"upper_limit":416896.0,"count":5498544071462456511},{"upper_limit":150208.0,"count":1},{"upper_limit":-104768.0,"count":0},{"upper_limit":-935680.0,"count":9729053825158259558},{"upper_limit":523008.0,"count":7337720402026390333},{"upper_limit":-986711.8906,"count":13525917888308638853},{"upper_limit":336384.0,"count":1829021993409425531},{"upper_limit":-212352.0,"count":10866871635386077846},{"upper_limit":858368.0,"count":5589080154199498628},{"upper_limit":356672.0,"count":15422575547525736093},{"upper_limit":303360.0,"count":8822583686082918605},{"upper_limit":302464.0,"count":8496327291656684453},{"upper_limit":-73600.0,"count":8670534247695882894},{"upper_limit":-580928.0,"count":17112233892728865392},{"upper_limit":200336.3745,"count":8187401209555733301},{"upper_limit":464768.0,"count":18446744073709551615},{"upper_limit":-117504.0,"count":822183626539268267},{"upper_limit":192.7943,"count":4086789867019717597},{"upper_limit":-60864.0,"count":0},{"upper_limit":790016.0,"count":6720013439345406955},{"upper_limit":-302080.0,"count":8046902781274255416},{"upper_limit":-540.8547,"count":9486575261071674556},{"upper_limit":-225280.0,"count":0},{"upper_limit":-649600.0,"count":2151600695908356478},{"upper_limit":-222784.0,"count":9519551530796846017},{"upper_limit":-528640.0,"count":8532181481519018740},{"upper_limit":-289920.0,"count":589907812836627400},{"upper_limit":994688.0,"count":15639477700064530422},{"upper_limit":-2.0082,"count":18446744073709551615},{"upper_limit":-104448.0,"count":8441183565917546519},{"upper_limit":711200.375,"count":3043950653445085303},{"upper_limit":684032.0,"count":13717454445417452689},{"upper_limit":113600.0,"count":9109135975318131369},{"upper_limit":132352.0,"count":18165121476807583628},{"upper_limit":-858368.0,"count":14921651985697502797},{"upper_limit":-533264.0,"count":16050209852523629456},{"upper_limit":140352.0,"count":18357738046026531636},{"upper_limit":-858368.0,"count":3486288031805184857},{"upper_limit":716800.0,"count":1755926298838437851},{"upper_limit":-967040.0,"count":8257883957677688269},{"upper_limit":158080.0,"count":5381501942289228039},{"upper_limit":355776.0,"count":16847238714947551295},{"upper_limit":794765.8998,"count":0},{"upper_limit":536500.6328,"count":6543906794656499217},{"upper_limit":600768.0,"count":10762533033505774759},{"upper_limit":147328.0,"count":1834217292491032646},{"upper_limit":-431040.0,"count":15111223997969116429},{"upper_limit":234880.0,"count":18446744073709551615},{"upper_limit":36672.0,"count":3257037356623311329},{"upper_limit":43584.0,"count":13865550071743832201},{"upper_limit":-985984.0,"count":18195620234858214073},{"upper_limit":-712256.0,"count":12400654908892263606},{"upper_limit":105856.0,"count":0},{"upper_limit":662848.0,"count":1},{"upper_limit":896576.0,"count":10976795588601339459},{"upper_limit":699904.0,"count":16861108519095811489}],"count":15296459846365115522,"sum":811776.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1021.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1021.json new file mode 100644 index 0000000000000..5f09d7b30fcf8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1021.json @@ -0,0 +1 @@ +{"metric":{"name":"w","timestamp":"1969-12-31T17:23:12.000005726Z","kind":"incremental","counter":{"value":794176.0}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1022.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1022.json new file mode 100644 index 0000000000000..e28d07b05f3d0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1022.json @@ -0,0 +1 @@ +{"metric":{"name":"x","namespace":"v","tags":{"v":"r"},"interval_ms":4260116121,"kind":"absolute","sketch":{"sketch":{"AgentDDSketch":{"bins":{"k":[-2222,-2218,-2217,-2208,-2207,-2204,-2200,-2197,-2185,-2180,-2179,-2171,-2147,-2126,-2111,-2090,-2077,1918,2037,2112,2123,2125,2146,2149,2150,2166,2175,2184,2198,2207,2208,2217,2218,2219,2223],"n":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,3,1]},"count":39,"min":-900864.0,"max":910592.0,"sum":-233664.0,"avg":247424.0}}}}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/json/pre-v41/1023.json b/lib/codecs/tests/data/native_encoding/json/pre-v41/1023.json new file mode 100644 index 0000000000000..8995fa3da5a41 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/json/pre-v41/1023.json @@ -0,0 +1 @@ +{"log":{"":[null],"%\u000e":-107328.0}} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0000.pb b/lib/codecs/tests/data/native_encoding/proto/0000.pb new file mode 100644 index 0000000000000..2bf03a54a9cbb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0000.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0001.pb b/lib/codecs/tests/data/native_encoding/proto/0001.pb new file mode 100644 index 0000000000000..403172a8dd868 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0001.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0002.pb b/lib/codecs/tests/data/native_encoding/proto/0002.pb new file mode 100644 index 0000000000000..8a0f93ec61eea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0002.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0003.pb b/lib/codecs/tests/data/native_encoding/proto/0003.pb new file mode 100644 index 0000000000000..890ceca92806c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0003.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0004.pb b/lib/codecs/tests/data/native_encoding/proto/0004.pb new file mode 100644 index 0000000000000..97bfbc6b0c258 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0004.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0005.pb b/lib/codecs/tests/data/native_encoding/proto/0005.pb new file mode 100644 index 0000000000000..1ff4a7107b644 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0005.pb @@ -0,0 +1,10 @@ + + +~3 +1+ +￾ +.窻񇸗* T9&脓%3U;)H<I=󕩁񑻳ZE“K"G +3 +1+ +￾ +.窻񇸗* T9&脓%3U;)H<I=󕩁񑻳ZE“K:7%u>/Y9 diff --git a/lib/codecs/tests/data/native_encoding/proto/0006.pb b/lib/codecs/tests/data/native_encoding/proto/0006.pb new file mode 100644 index 0000000000000..d87427b6f9bae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0006.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0007.pb b/lib/codecs/tests/data/native_encoding/proto/0007.pb new file mode 100644 index 0000000000000..85c4d0d1a99ce Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0007.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0008.pb b/lib/codecs/tests/data/native_encoding/proto/0008.pb new file mode 100644 index 0000000000000..6c3e5feee9e87 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0008.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0009.pb b/lib/codecs/tests/data/native_encoding/proto/0009.pb new file mode 100644 index 0000000000000..6447ce98202af --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0009.pb @@ -0,0 +1,17 @@ + + + + +%‹\ + ؚô3 + + +卢f0 + +򂃓󠀁 +¯Ÿt +r꽴!󯣿›-1pW󢅣J~V{  ࠸•…o!}N䓔+콏G~򺅀(t +^®C𛽐2\-뿴x󻏪틥.2^얏Œ~莠?X񩡛dO󚦬H" +t +r꽴!󯣿›-1pW󢅣J~V{  ࠸•…o!}N䓔+콏G~򺅀(t +^®C𛽐2\-뿴x󻏪틥.2^얏Œ~莠?X񩡛dO󚦬H:7*w#Ю \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0010.pb b/lib/codecs/tests/data/native_encoding/proto/0010.pb new file mode 100644 index 0000000000000..9738c8d119e2e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0010.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0011.pb b/lib/codecs/tests/data/native_encoding/proto/0011.pb new file mode 100644 index 0000000000000..b39765f362886 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0011.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0012.pb b/lib/codecs/tests/data/native_encoding/proto/0012.pb new file mode 100644 index 0000000000000..179616741f8ee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0012.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0013.pb b/lib/codecs/tests/data/native_encoding/proto/0013.pb new file mode 100644 index 0000000000000..d9d9b216b8243 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0013.pb @@ -0,0 +1,6 @@ + +. +, + 樒" + + 樒:7.q1ù \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0014.pb b/lib/codecs/tests/data/native_encoding/proto/0014.pb new file mode 100644 index 0000000000000..1ec33f5da1b81 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0014.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0015.pb b/lib/codecs/tests/data/native_encoding/proto/0015.pb new file mode 100644 index 0000000000000..3c1d0fdf40538 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0015.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0016.pb b/lib/codecs/tests/data/native_encoding/proto/0016.pb new file mode 100644 index 0000000000000..d7532a60ecd3b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0016.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0017.pb b/lib/codecs/tests/data/native_encoding/proto/0017.pb new file mode 100644 index 0000000000000..9c1c06ae07f7c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0017.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0018.pb b/lib/codecs/tests/data/native_encoding/proto/0018.pb new file mode 100644 index 0000000000000..53f69486e1f79 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0018.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0019.pb b/lib/codecs/tests/data/native_encoding/proto/0019.pb new file mode 100644 index 0000000000000..9688fecebd555 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0019.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0020.pb b/lib/codecs/tests/data/native_encoding/proto/0020.pb new file mode 100644 index 0000000000000..a55eec46ce90e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0020.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0021.pb b/lib/codecs/tests/data/native_encoding/proto/0021.pb new file mode 100644 index 0000000000000..ca354e610ce2c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0021.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0022.pb b/lib/codecs/tests/data/native_encoding/proto/0022.pb new file mode 100644 index 0000000000000..aebba88a71b1d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0022.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0023.pb b/lib/codecs/tests/data/native_encoding/proto/0023.pb new file mode 100644 index 0000000000000..1e6d6e74d004c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0023.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0024.pb b/lib/codecs/tests/data/native_encoding/proto/0024.pb new file mode 100644 index 0000000000000..5076f31ecff33 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0024.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0025.pb b/lib/codecs/tests/data/native_encoding/proto/0025.pb new file mode 100644 index 0000000000000..14d5826d7a8a0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0025.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0026.pb b/lib/codecs/tests/data/native_encoding/proto/0026.pb new file mode 100644 index 0000000000000..6e0c7219d3928 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0026.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0027.pb b/lib/codecs/tests/data/native_encoding/proto/0027.pb new file mode 100644 index 0000000000000..e400dbd745b26 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0027.pb @@ -0,0 +1,4 @@ + +0 +. ِ" + ِ:7<&.ʿr@ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0028.pb b/lib/codecs/tests/data/native_encoding/proto/0028.pb new file mode 100644 index 0000000000000..a5d6622f06961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0028.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0029.pb b/lib/codecs/tests/data/native_encoding/proto/0029.pb new file mode 100644 index 0000000000000..24f90ab9dc147 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0029.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0030.pb b/lib/codecs/tests/data/native_encoding/proto/0030.pb new file mode 100644 index 0000000000000..df71dad2ee3c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0030.pb @@ -0,0 +1,11 @@ + +> +< + +RB + + t + +؅ +Z0" +0:7>tҶ` \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0031.pb b/lib/codecs/tests/data/native_encoding/proto/0031.pb new file mode 100644 index 0000000000000..cae2a6375b8e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0031.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0032.pb b/lib/codecs/tests/data/native_encoding/proto/0032.pb new file mode 100644 index 0000000000000..d6b5be89f25f7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0032.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0033.pb b/lib/codecs/tests/data/native_encoding/proto/0033.pb new file mode 100644 index 0000000000000..d0b3bbdc3b526 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0033.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0034.pb b/lib/codecs/tests/data/native_encoding/proto/0034.pb new file mode 100644 index 0000000000000..d32c53387b126 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0034.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0035.pb b/lib/codecs/tests/data/native_encoding/proto/0035.pb new file mode 100644 index 0000000000000..c65febbe9b5bd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0035.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0036.pb b/lib/codecs/tests/data/native_encoding/proto/0036.pb new file mode 100644 index 0000000000000..1d8d6fe4a481a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0036.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0037.pb b/lib/codecs/tests/data/native_encoding/proto/0037.pb new file mode 100644 index 0000000000000..a61aeb5c83c63 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0037.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0038.pb b/lib/codecs/tests/data/native_encoding/proto/0038.pb new file mode 100644 index 0000000000000..94e6b99a69960 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0038.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0039.pb b/lib/codecs/tests/data/native_encoding/proto/0039.pb new file mode 100644 index 0000000000000..7245e072e43d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0039.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0040.pb b/lib/codecs/tests/data/native_encoding/proto/0040.pb new file mode 100644 index 0000000000000..5336d74c803d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0040.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0041.pb b/lib/codecs/tests/data/native_encoding/proto/0041.pb new file mode 100644 index 0000000000000..710439eef1894 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0041.pb @@ -0,0 +1,18 @@ + +o +m +4 + /:- + + 7" + +_㜮[L뻳‫ )[`]R򃦬=¤3⁅G⁧󠀁 %⁐.#,!˜m—Vž굸=_¡8^—;'1‰`• %[©{, ^Ÿ漞§5:@:¢j‘곌꫉'K5< 6￾?Ž1Hqk>7:7iz; }G \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0097.pb b/lib/codecs/tests/data/native_encoding/proto/0097.pb new file mode 100644 index 0000000000000..f2e838c44880a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0097.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0098.pb b/lib/codecs/tests/data/native_encoding/proto/0098.pb new file mode 100644 index 0000000000000..a8d13420c8543 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0098.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0099.pb b/lib/codecs/tests/data/native_encoding/proto/0099.pb new file mode 100644 index 0000000000000..efa662b0e7558 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0099.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0100.pb b/lib/codecs/tests/data/native_encoding/proto/0100.pb new file mode 100644 index 0000000000000..4996f1d1139f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0100.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0101.pb b/lib/codecs/tests/data/native_encoding/proto/0101.pb new file mode 100644 index 0000000000000..a797c8bcddcf8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0101.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0102.pb b/lib/codecs/tests/data/native_encoding/proto/0102.pb new file mode 100644 index 0000000000000..9cae2cc8fbc71 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0102.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0103.pb b/lib/codecs/tests/data/native_encoding/proto/0103.pb new file mode 100644 index 0000000000000..4ab78073e43ab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0103.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0104.pb b/lib/codecs/tests/data/native_encoding/proto/0104.pb new file mode 100644 index 0000000000000..aa6f648e0182c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0104.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0105.pb b/lib/codecs/tests/data/native_encoding/proto/0105.pb new file mode 100644 index 0000000000000..4289de15a7139 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0105.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0106.pb b/lib/codecs/tests/data/native_encoding/proto/0106.pb new file mode 100644 index 0000000000000..093d073bb0d7c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0106.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0107.pb b/lib/codecs/tests/data/native_encoding/proto/0107.pb new file mode 100644 index 0000000000000..4fba46e6d1a41 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0107.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0108.pb b/lib/codecs/tests/data/native_encoding/proto/0108.pb new file mode 100644 index 0000000000000..ac5b52338776d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0108.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0109.pb b/lib/codecs/tests/data/native_encoding/proto/0109.pb new file mode 100644 index 0000000000000..229061de86333 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0109.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0110.pb b/lib/codecs/tests/data/native_encoding/proto/0110.pb new file mode 100644 index 0000000000000..32717d779716d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0110.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0111.pb b/lib/codecs/tests/data/native_encoding/proto/0111.pb new file mode 100644 index 0000000000000..ad58ac98c86b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0111.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0112.pb b/lib/codecs/tests/data/native_encoding/proto/0112.pb new file mode 100644 index 0000000000000..0254f46438317 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0112.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0113.pb b/lib/codecs/tests/data/native_encoding/proto/0113.pb new file mode 100644 index 0000000000000..b6998e6e181b0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0113.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0114.pb b/lib/codecs/tests/data/native_encoding/proto/0114.pb new file mode 100644 index 0000000000000..89a8146196f6e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0114.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0115.pb b/lib/codecs/tests/data/native_encoding/proto/0115.pb new file mode 100644 index 0000000000000..2582cb276fb12 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0115.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0116.pb b/lib/codecs/tests/data/native_encoding/proto/0116.pb new file mode 100644 index 0000000000000..7f750bffd3a06 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0116.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0117.pb b/lib/codecs/tests/data/native_encoding/proto/0117.pb new file mode 100644 index 0000000000000..d7ad61c5cd857 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0117.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0118.pb b/lib/codecs/tests/data/native_encoding/proto/0118.pb new file mode 100644 index 0000000000000..82614f22f1fd0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0118.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0119.pb b/lib/codecs/tests/data/native_encoding/proto/0119.pb new file mode 100644 index 0000000000000..6cf66f2f8c804 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0119.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0120.pb b/lib/codecs/tests/data/native_encoding/proto/0120.pb new file mode 100644 index 0000000000000..04849c97e8286 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0120.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0121.pb b/lib/codecs/tests/data/native_encoding/proto/0121.pb new file mode 100644 index 0000000000000..70ca8a1cd3120 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0121.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0122.pb b/lib/codecs/tests/data/native_encoding/proto/0122.pb new file mode 100644 index 0000000000000..12d65f39098f6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0122.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0123.pb b/lib/codecs/tests/data/native_encoding/proto/0123.pb new file mode 100644 index 0000000000000..d7c455bdead1b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0123.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0124.pb b/lib/codecs/tests/data/native_encoding/proto/0124.pb new file mode 100644 index 0000000000000..bb9a80cc09ace Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0124.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0125.pb b/lib/codecs/tests/data/native_encoding/proto/0125.pb new file mode 100644 index 0000000000000..bc29114b0d718 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0125.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0126.pb b/lib/codecs/tests/data/native_encoding/proto/0126.pb new file mode 100644 index 0000000000000..77635f742159c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0126.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0127.pb b/lib/codecs/tests/data/native_encoding/proto/0127.pb new file mode 100644 index 0000000000000..8a441aa82b324 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0127.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0128.pb b/lib/codecs/tests/data/native_encoding/proto/0128.pb new file mode 100644 index 0000000000000..7cd9106620042 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0128.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0129.pb b/lib/codecs/tests/data/native_encoding/proto/0129.pb new file mode 100644 index 0000000000000..183da7f18f526 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0129.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0130.pb b/lib/codecs/tests/data/native_encoding/proto/0130.pb new file mode 100644 index 0000000000000..33f12242a8c70 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0130.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0131.pb b/lib/codecs/tests/data/native_encoding/proto/0131.pb new file mode 100644 index 0000000000000..9dc4d60097381 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0131.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0132.pb b/lib/codecs/tests/data/native_encoding/proto/0132.pb new file mode 100644 index 0000000000000..930a9556d984a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0132.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0133.pb b/lib/codecs/tests/data/native_encoding/proto/0133.pb new file mode 100644 index 0000000000000..f9b2e9d32c5d8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0133.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0134.pb b/lib/codecs/tests/data/native_encoding/proto/0134.pb new file mode 100644 index 0000000000000..650a99f7422c5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0134.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0135.pb b/lib/codecs/tests/data/native_encoding/proto/0135.pb new file mode 100644 index 0000000000000..feaa7339dcfb7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0135.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0136.pb b/lib/codecs/tests/data/native_encoding/proto/0136.pb new file mode 100644 index 0000000000000..e7a5fac9ca9a0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0136.pb @@ -0,0 +1,6 @@ + + +b +`￳;‑-i/|M㽻 񑢃􀀀򸆍A 觢/!#鰫v>q+~‡=䏋46_IR񎨤/Q􏿿9&/}[8_–n#Š"ª1N@"v +b +`￳;‑-i/|M㽻 񑢃􀀀򸆍A 觢/!#鰫v>q+~‡=䏋46_IR񎨤/Q􏿿9&/}[8_–n#Š"ª1N@:7^6r \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0137.pb b/lib/codecs/tests/data/native_encoding/proto/0137.pb new file mode 100644 index 0000000000000..ef175bd894e76 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0137.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0138.pb b/lib/codecs/tests/data/native_encoding/proto/0138.pb new file mode 100644 index 0000000000000..2c2f88850ce33 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0138.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0139.pb b/lib/codecs/tests/data/native_encoding/proto/0139.pb new file mode 100644 index 0000000000000..ca5347cf1c28d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0139.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0140.pb b/lib/codecs/tests/data/native_encoding/proto/0140.pb new file mode 100644 index 0000000000000..b533bf3883f47 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0140.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0141.pb b/lib/codecs/tests/data/native_encoding/proto/0141.pb new file mode 100644 index 0000000000000..0d4d95cba4014 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0141.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0142.pb b/lib/codecs/tests/data/native_encoding/proto/0142.pb new file mode 100644 index 0000000000000..a05d457592b62 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0142.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0143.pb b/lib/codecs/tests/data/native_encoding/proto/0143.pb new file mode 100644 index 0000000000000..2eadb6ab216a2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0143.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0144.pb b/lib/codecs/tests/data/native_encoding/proto/0144.pb new file mode 100644 index 0000000000000..8fd9d7ad42104 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0144.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0145.pb b/lib/codecs/tests/data/native_encoding/proto/0145.pb new file mode 100644 index 0000000000000..7f2a4ea327bc3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0145.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0146.pb b/lib/codecs/tests/data/native_encoding/proto/0146.pb new file mode 100644 index 0000000000000..3051c41f8cb93 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0146.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0147.pb b/lib/codecs/tests/data/native_encoding/proto/0147.pb new file mode 100644 index 0000000000000..d38c9117e7e66 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0147.pb @@ -0,0 +1,8 @@ + + + +Z†娾/6{򐓝M,q2}5¨5R380}%錄<6aP壶76웥2n'򈖞kꮨ⁓ªL£)† +7 B9^7l 㰸œ[z 5￱⁆’p" + +Z†娾/6{򐓝M,q2}5¨5R380}%錄<6aP壶76웥2n'򈖞kꮨ⁓ªL£)† +7 B9^7l 㰸œ[z 5￱⁆’p:7s)# \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0148.pb b/lib/codecs/tests/data/native_encoding/proto/0148.pb new file mode 100644 index 0000000000000..b0959e45d8146 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0148.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0149.pb b/lib/codecs/tests/data/native_encoding/proto/0149.pb new file mode 100644 index 0000000000000..1d9d7d914da34 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0149.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0150.pb b/lib/codecs/tests/data/native_encoding/proto/0150.pb new file mode 100644 index 0000000000000..d6fb84fa1a85f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0150.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0151.pb b/lib/codecs/tests/data/native_encoding/proto/0151.pb new file mode 100644 index 0000000000000..abff60c075529 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0151.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0152.pb b/lib/codecs/tests/data/native_encoding/proto/0152.pb new file mode 100644 index 0000000000000..e776a725d80a3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0152.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0153.pb b/lib/codecs/tests/data/native_encoding/proto/0153.pb new file mode 100644 index 0000000000000..a3f17c1baf06f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0153.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0154.pb b/lib/codecs/tests/data/native_encoding/proto/0154.pb new file mode 100644 index 0000000000000..dabfe589521e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0154.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0155.pb b/lib/codecs/tests/data/native_encoding/proto/0155.pb new file mode 100644 index 0000000000000..e18a2e5899ad8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0155.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0156.pb b/lib/codecs/tests/data/native_encoding/proto/0156.pb new file mode 100644 index 0000000000000..85a727d302187 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0156.pb @@ -0,0 +1,17 @@ + + + +) +@0’!: +0 + +‌ +^ + +뛨0 + +e + ǃra +_E!Vᗈd3~†借򪧪䠁60⁉￱j¦阹‚€«猄ª񹝖侤(>\*‐Y› c󠀠‘#8 裇0"u +a +_E!Vᗈd3~†借򪧪䠁60⁉￱j¦阹‚€«猄ª񹝖侤(>\*‐Y› c󠀠‘#8 裇0:7xY ~ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0157.pb b/lib/codecs/tests/data/native_encoding/proto/0157.pb new file mode 100644 index 0000000000000..0d947549a1f12 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0157.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0158.pb b/lib/codecs/tests/data/native_encoding/proto/0158.pb new file mode 100644 index 0000000000000..9dad3a9e014e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0158.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0159.pb b/lib/codecs/tests/data/native_encoding/proto/0159.pb new file mode 100644 index 0000000000000..47ef1000e0152 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0159.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0160.pb b/lib/codecs/tests/data/native_encoding/proto/0160.pb new file mode 100644 index 0000000000000..04b2570eb93b2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0160.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0161.pb b/lib/codecs/tests/data/native_encoding/proto/0161.pb new file mode 100644 index 0000000000000..13ab22df03a61 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0161.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0162.pb b/lib/codecs/tests/data/native_encoding/proto/0162.pb new file mode 100644 index 0000000000000..179e951ce91e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0162.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0163.pb b/lib/codecs/tests/data/native_encoding/proto/0163.pb new file mode 100644 index 0000000000000..7c8e7c33d1425 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0163.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0164.pb b/lib/codecs/tests/data/native_encoding/proto/0164.pb new file mode 100644 index 0000000000000..23b5a184420e2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0164.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0165.pb b/lib/codecs/tests/data/native_encoding/proto/0165.pb new file mode 100644 index 0000000000000..211c22e76bf29 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0165.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0166.pb b/lib/codecs/tests/data/native_encoding/proto/0166.pb new file mode 100644 index 0000000000000..2c01078b06f76 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0166.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0167.pb b/lib/codecs/tests/data/native_encoding/proto/0167.pb new file mode 100644 index 0000000000000..749d001f3639f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0167.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0168.pb b/lib/codecs/tests/data/native_encoding/proto/0168.pb new file mode 100644 index 0000000000000..9e5ed6c21d808 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0168.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0169.pb b/lib/codecs/tests/data/native_encoding/proto/0169.pb new file mode 100644 index 0000000000000..cdff2a9e9d02b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0169.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0170.pb b/lib/codecs/tests/data/native_encoding/proto/0170.pb new file mode 100644 index 0000000000000..754bea3b9b102 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0170.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0171.pb b/lib/codecs/tests/data/native_encoding/proto/0171.pb new file mode 100644 index 0000000000000..656937f7154ee --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0171.pb @@ -0,0 +1,10 @@ + +K +I + +  򉏩ªB + + p + ®" + + ®:7v󘓟>¥磔豅񚏘S¨\𙝮0{H􀀀 M􈜬￱G92~¨⨕8෋97>§%*񣺆e!'@:x–" + +\7* @ⴗR¯󿿽 •¬莲£8=0']¦􇍢􊐧¨‛1￷n￱'0=퇻 󿿾%X⁖𷃃;ˆr艟mr)񷜐>󘓟>¥磔豅񚏘S¨\𙝮0{H􀀀 M􈜬￱G92~¨⨕8෋97>§%*񣺆e!'@:x–:7v!7I@D \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0190.pb b/lib/codecs/tests/data/native_encoding/proto/0190.pb new file mode 100644 index 0000000000000..18ea1229cddb3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0190.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0191.pb b/lib/codecs/tests/data/native_encoding/proto/0191.pb new file mode 100644 index 0000000000000..c6aad196ac700 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0191.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0192.pb b/lib/codecs/tests/data/native_encoding/proto/0192.pb new file mode 100644 index 0000000000000..89d9ca0ca9a68 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0192.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0193.pb b/lib/codecs/tests/data/native_encoding/proto/0193.pb new file mode 100644 index 0000000000000..e0f1979d913aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0193.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0194.pb b/lib/codecs/tests/data/native_encoding/proto/0194.pb new file mode 100644 index 0000000000000..ac3df3b079e1f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0194.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0195.pb b/lib/codecs/tests/data/native_encoding/proto/0195.pb new file mode 100644 index 0000000000000..4a1187a1d6789 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0195.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0196.pb b/lib/codecs/tests/data/native_encoding/proto/0196.pb new file mode 100644 index 0000000000000..3ce8fe0fc699d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0196.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0197.pb b/lib/codecs/tests/data/native_encoding/proto/0197.pb new file mode 100644 index 0000000000000..965eec42293f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0197.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0198.pb b/lib/codecs/tests/data/native_encoding/proto/0198.pb new file mode 100644 index 0000000000000..4439d2a5c4b1d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0198.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0199.pb b/lib/codecs/tests/data/native_encoding/proto/0199.pb new file mode 100644 index 0000000000000..7377521f27658 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0199.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0200.pb b/lib/codecs/tests/data/native_encoding/proto/0200.pb new file mode 100644 index 0000000000000..ba641cb66fcfd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0200.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0201.pb b/lib/codecs/tests/data/native_encoding/proto/0201.pb new file mode 100644 index 0000000000000..501d7b43ba020 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0201.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0202.pb b/lib/codecs/tests/data/native_encoding/proto/0202.pb new file mode 100644 index 0000000000000..353bd6ed71d14 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0202.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0203.pb b/lib/codecs/tests/data/native_encoding/proto/0203.pb new file mode 100644 index 0000000000000..76892ce244b0b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0203.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0204.pb b/lib/codecs/tests/data/native_encoding/proto/0204.pb new file mode 100644 index 0000000000000..fdb546d43bfe5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0204.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0205.pb b/lib/codecs/tests/data/native_encoding/proto/0205.pb new file mode 100644 index 0000000000000..59bad58b52578 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0205.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0206.pb b/lib/codecs/tests/data/native_encoding/proto/0206.pb new file mode 100644 index 0000000000000..a84021071458d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0206.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0207.pb b/lib/codecs/tests/data/native_encoding/proto/0207.pb new file mode 100644 index 0000000000000..f3deaca84ed2e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0207.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0208.pb b/lib/codecs/tests/data/native_encoding/proto/0208.pb new file mode 100644 index 0000000000000..7def86461264d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0208.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0209.pb b/lib/codecs/tests/data/native_encoding/proto/0209.pb new file mode 100644 index 0000000000000..84be4a3de8b17 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0209.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0210.pb b/lib/codecs/tests/data/native_encoding/proto/0210.pb new file mode 100644 index 0000000000000..abf9fd3ea8e31 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0210.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0211.pb b/lib/codecs/tests/data/native_encoding/proto/0211.pb new file mode 100644 index 0000000000000..df7b4e82459dc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0211.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0212.pb b/lib/codecs/tests/data/native_encoding/proto/0212.pb new file mode 100644 index 0000000000000..fece856abf048 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0212.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0213.pb b/lib/codecs/tests/data/native_encoding/proto/0213.pb new file mode 100644 index 0000000000000..239591330f039 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0213.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0214.pb b/lib/codecs/tests/data/native_encoding/proto/0214.pb new file mode 100644 index 0000000000000..93f00064aea42 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0214.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0215.pb b/lib/codecs/tests/data/native_encoding/proto/0215.pb new file mode 100644 index 0000000000000..8e85a8d5ce580 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0215.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0216.pb b/lib/codecs/tests/data/native_encoding/proto/0216.pb new file mode 100644 index 0000000000000..049d3d96e1297 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0216.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0217.pb b/lib/codecs/tests/data/native_encoding/proto/0217.pb new file mode 100644 index 0000000000000..936271372dc57 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0217.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0218.pb b/lib/codecs/tests/data/native_encoding/proto/0218.pb new file mode 100644 index 0000000000000..d45d2972bf1ef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0218.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0219.pb b/lib/codecs/tests/data/native_encoding/proto/0219.pb new file mode 100644 index 0000000000000..ee0eec98f521e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0219.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0220.pb b/lib/codecs/tests/data/native_encoding/proto/0220.pb new file mode 100644 index 0000000000000..c367ae453fe23 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0220.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0221.pb b/lib/codecs/tests/data/native_encoding/proto/0221.pb new file mode 100644 index 0000000000000..158a379f78046 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0221.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0222.pb b/lib/codecs/tests/data/native_encoding/proto/0222.pb new file mode 100644 index 0000000000000..7555eabc61728 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0222.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0223.pb b/lib/codecs/tests/data/native_encoding/proto/0223.pb new file mode 100644 index 0000000000000..32bf04b5b6128 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0223.pb @@ -0,0 +1,7 @@ + +* +( + + +F000" +0:7|(HOO \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0224.pb b/lib/codecs/tests/data/native_encoding/proto/0224.pb new file mode 100644 index 0000000000000..2ce30359cce6a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0224.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0225.pb b/lib/codecs/tests/data/native_encoding/proto/0225.pb new file mode 100644 index 0000000000000..088bdad114411 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0225.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0226.pb b/lib/codecs/tests/data/native_encoding/proto/0226.pb new file mode 100644 index 0000000000000..1aa67ef1040e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0226.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0227.pb b/lib/codecs/tests/data/native_encoding/proto/0227.pb new file mode 100644 index 0000000000000..9902a3331c268 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0227.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0228.pb b/lib/codecs/tests/data/native_encoding/proto/0228.pb new file mode 100644 index 0000000000000..d8fae6de45c02 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0228.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0229.pb b/lib/codecs/tests/data/native_encoding/proto/0229.pb new file mode 100644 index 0000000000000..569d9f8fe0823 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0229.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0230.pb b/lib/codecs/tests/data/native_encoding/proto/0230.pb new file mode 100644 index 0000000000000..51eec7ffe199e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0230.pb @@ -0,0 +1,6 @@ + + + +i￐~}„¯Jš|7򇂊⁡𸋔.D]’휺¨0h1􏩝￵䤇o3,𑂽*뫣! 9)¯𨦰?􏿾y9Lʼnୌ_¥P񾼝⚮57†Vy⁈ž`¡򋤣‘‐? `¢^|}" + +i￐~}„¯Jš|7򇂊⁡𸋔.D]’휺¨0h1􏩝￵䤇o3,𑂽*뫣! 9)¯𨦰?􏿾y9Lʼnୌ_¥P񾼝⚮57†Vy⁈ž`¡򋤣‘‐? `¢^|}:7%vt^| \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0231.pb b/lib/codecs/tests/data/native_encoding/proto/0231.pb new file mode 100644 index 0000000000000..6643c3c1b730d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0231.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0232.pb b/lib/codecs/tests/data/native_encoding/proto/0232.pb new file mode 100644 index 0000000000000..8038c13d0c082 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0232.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0233.pb b/lib/codecs/tests/data/native_encoding/proto/0233.pb new file mode 100644 index 0000000000000..90492288dfc8d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0233.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0234.pb b/lib/codecs/tests/data/native_encoding/proto/0234.pb new file mode 100644 index 0000000000000..37e013a00824d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0234.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0235.pb b/lib/codecs/tests/data/native_encoding/proto/0235.pb new file mode 100644 index 0000000000000..ac87a6cce0bb1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0235.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0236.pb b/lib/codecs/tests/data/native_encoding/proto/0236.pb new file mode 100644 index 0000000000000..afce7da0ad505 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0236.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0237.pb b/lib/codecs/tests/data/native_encoding/proto/0237.pb new file mode 100644 index 0000000000000..3b61a8c634cf8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0237.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0238.pb b/lib/codecs/tests/data/native_encoding/proto/0238.pb new file mode 100644 index 0000000000000..ca5356e105aee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0238.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0239.pb b/lib/codecs/tests/data/native_encoding/proto/0239.pb new file mode 100644 index 0000000000000..d04b510750b95 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0239.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0240.pb b/lib/codecs/tests/data/native_encoding/proto/0240.pb new file mode 100644 index 0000000000000..9a029e1ff83be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0240.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0241.pb b/lib/codecs/tests/data/native_encoding/proto/0241.pb new file mode 100644 index 0000000000000..afa5462d1a3b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0241.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0242.pb b/lib/codecs/tests/data/native_encoding/proto/0242.pb new file mode 100644 index 0000000000000..562910a078a4d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0242.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0243.pb b/lib/codecs/tests/data/native_encoding/proto/0243.pb new file mode 100644 index 0000000000000..3a59a18514a79 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0243.pb @@ -0,0 +1,8 @@ + + + + +𝅳~ ܼ +￵g!ѝ遆艓<-"# 'ŠŒﶽײ]3®€@ y5 “￶U욿†뚮#⁥K\ p ™;«4ዝ8\(􏿾򘘋n󛟶⁁1‍娗8#*®^￾(/4[%+؁#OU+-3 㶥‹" + +￵g!ѝ遆艓<-"# 'ŠŒﶽײ]3®€@ y5 “￶U욿†뚮#⁥K\ p ™;«4ዝ8\(􏿾򘘋n󛟶⁁1‍娗8#*®^￾(/4[%+؁#OU+-3 㶥‹:7/t;> \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0244.pb b/lib/codecs/tests/data/native_encoding/proto/0244.pb new file mode 100644 index 0000000000000..e887e47eb3882 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0244.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0245.pb b/lib/codecs/tests/data/native_encoding/proto/0245.pb new file mode 100644 index 0000000000000..cb4424d2514a0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0245.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0246.pb b/lib/codecs/tests/data/native_encoding/proto/0246.pb new file mode 100644 index 0000000000000..241704f1205fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0246.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0247.pb b/lib/codecs/tests/data/native_encoding/proto/0247.pb new file mode 100644 index 0000000000000..e8567568533fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0247.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0248.pb b/lib/codecs/tests/data/native_encoding/proto/0248.pb new file mode 100644 index 0000000000000..a22bda8f666b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0248.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0249.pb b/lib/codecs/tests/data/native_encoding/proto/0249.pb new file mode 100644 index 0000000000000..c184b60fa4fd5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0249.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0250.pb b/lib/codecs/tests/data/native_encoding/proto/0250.pb new file mode 100644 index 0000000000000..22aca1c6a0fea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0250.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0251.pb b/lib/codecs/tests/data/native_encoding/proto/0251.pb new file mode 100644 index 0000000000000..9d2650dd0c10c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0251.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0252.pb b/lib/codecs/tests/data/native_encoding/proto/0252.pb new file mode 100644 index 0000000000000..0b301e3fa7328 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0252.pb @@ -0,0 +1,6 @@ + +. +, + ܵ?" + + ܵ?:77x"@b*KHV \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0253.pb b/lib/codecs/tests/data/native_encoding/proto/0253.pb new file mode 100644 index 0000000000000..5e877c34d4124 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0253.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0254.pb b/lib/codecs/tests/data/native_encoding/proto/0254.pb new file mode 100644 index 0000000000000..885c6c09c16a1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0254.pb @@ -0,0 +1,4 @@ + + +0" +0:79x",`iŽ o錽͛7"n1'„©￸ª}'󙐾 ^ +3‶񃳂©񎕋 ܏￾f몹4¬색敷慮Lkr•୛vAŒ‟$:I⁢…2n¨𤫧耒\=f?+ ￶ +-䆪Œ /1u{۝؜(￱dª ‭0a^￷//B􏿾š†FS )S-r1.#zn쓲…‹¤&폚󠀠k#;i<¤+؁d…3Ix;!}^/񧑮񒠱nG~?>A‚€› _'Lr˜B󎴫R6)¤𽧄⁡¢£‶)c)#H⁦š 5 +󠀠 +\浦}n￱￲⁍󢕒 œ]
w5|v„⁂6$< ‹`؀kd ︄괄Q}夭,󈪐FŒM񣮪9œ:ŽN?\ 􏿿, +c=′哱› a8Q•v!u~†, 􋧌!¯8x𜤷#X’؀¢w堲| 󍇈{$tŽҡ􀀀󠀁򉜻›˜󋞸‘⁔¨2G:D§;%¦ 񊢠—x¢/汲=눖zJ- ‚\霭^=-T dªQ+󿿾\𨁪;|^œ‰zr!_v7Ÿ󯣿~'M#|.񃹝@􏿿 S욜£ +|&[„Ÿ•“G2„ `󞖝槏$󿿾6⢻ >6楎￸#󿿽~/#p2뿌5䅦\( ¢:¡šu.ªi]s)?%#~c> 2򁊒e⁃Ž䡇 ¡¨欦柯'`X􏿽�؁欚@"ꯥ疼$_€Tˆ™j얼{"򣨪؃훎왬@񌺍 V:Ym® +2…QiꍖLw]؁4^{􉝢{7‰멊 󏞿+¢뜬񚊻. 3¡ +c󴝟 +_ +$«„ᔇ⁍􌄿ǒ]v›ꠦ￶=y*⁢𕄵@󎹃^S򛎁r_*S￴-0yO1w¤ i&q§9󌔂킿¦"<’Z➦Zm + ɂ^ + +g + +q + +j + +u + + ɂ^:7opØ(Nj_ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0296.pb b/lib/codecs/tests/data/native_encoding/proto/0296.pb new file mode 100644 index 0000000000000..90454b29b17e4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0296.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0297.pb b/lib/codecs/tests/data/native_encoding/proto/0297.pb new file mode 100644 index 0000000000000..543c1d69e7c05 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0297.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0298.pb b/lib/codecs/tests/data/native_encoding/proto/0298.pb new file mode 100644 index 0000000000000..d456852deb326 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0298.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0299.pb b/lib/codecs/tests/data/native_encoding/proto/0299.pb new file mode 100644 index 0000000000000..358e5633ebd19 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0299.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0300.pb b/lib/codecs/tests/data/native_encoding/proto/0300.pb new file mode 100644 index 0000000000000..40bff617e2aa5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0300.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0301.pb b/lib/codecs/tests/data/native_encoding/proto/0301.pb new file mode 100644 index 0000000000000..379d2332ed341 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0301.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0302.pb b/lib/codecs/tests/data/native_encoding/proto/0302.pb new file mode 100644 index 0000000000000..cc7760ca7ff23 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0302.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0303.pb b/lib/codecs/tests/data/native_encoding/proto/0303.pb new file mode 100644 index 0000000000000..e699341742325 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0303.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0304.pb b/lib/codecs/tests/data/native_encoding/proto/0304.pb new file mode 100644 index 0000000000000..95ad4bfebdc1b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0304.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0305.pb b/lib/codecs/tests/data/native_encoding/proto/0305.pb new file mode 100644 index 0000000000000..bebda9b96bf42 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0305.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0306.pb b/lib/codecs/tests/data/native_encoding/proto/0306.pb new file mode 100644 index 0000000000000..a6a16e39c6b84 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0306.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0307.pb b/lib/codecs/tests/data/native_encoding/proto/0307.pb new file mode 100644 index 0000000000000..7c5a7ef7a5c39 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0307.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0308.pb b/lib/codecs/tests/data/native_encoding/proto/0308.pb new file mode 100644 index 0000000000000..bf4f4996fa71c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0308.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0309.pb b/lib/codecs/tests/data/native_encoding/proto/0309.pb new file mode 100644 index 0000000000000..88beeccc35bae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0309.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0310.pb b/lib/codecs/tests/data/native_encoding/proto/0310.pb new file mode 100644 index 0000000000000..9ee9b8a78be5c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0310.pb @@ -0,0 +1,5 @@ + += +; +  )H}@ 涔" + 涔:7qanb \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0311.pb b/lib/codecs/tests/data/native_encoding/proto/0311.pb new file mode 100644 index 0000000000000..3af00d069242b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0311.pb @@ -0,0 +1,6 @@ + +. +, + Βאv" + + Βאv:7qa~cH \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0312.pb b/lib/codecs/tests/data/native_encoding/proto/0312.pb new file mode 100644 index 0000000000000..10ca041f253e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0312.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0313.pb b/lib/codecs/tests/data/native_encoding/proto/0313.pb new file mode 100644 index 0000000000000..44250ecc72428 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0313.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0314.pb b/lib/codecs/tests/data/native_encoding/proto/0314.pb new file mode 100644 index 0000000000000..b231b4ed772fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0314.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0315.pb b/lib/codecs/tests/data/native_encoding/proto/0315.pb new file mode 100644 index 0000000000000..36b7dc3a904e4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0315.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0316.pb b/lib/codecs/tests/data/native_encoding/proto/0316.pb new file mode 100644 index 0000000000000..9d3b6b150c1b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0316.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0317.pb b/lib/codecs/tests/data/native_encoding/proto/0317.pb new file mode 100644 index 0000000000000..d741cd46db731 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0317.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0318.pb b/lib/codecs/tests/data/native_encoding/proto/0318.pb new file mode 100644 index 0000000000000..6cdc4914d54f0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0318.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0319.pb b/lib/codecs/tests/data/native_encoding/proto/0319.pb new file mode 100644 index 0000000000000..0ec9ea4a93a3c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0319.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0320.pb b/lib/codecs/tests/data/native_encoding/proto/0320.pb new file mode 100644 index 0000000000000..398aaef7e00b2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0320.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0321.pb b/lib/codecs/tests/data/native_encoding/proto/0321.pb new file mode 100644 index 0000000000000..cd1d0c6d5de23 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0321.pb @@ -0,0 +1,12 @@ + +O +M + + + 􏿿¤❾ + +_*H +A⁢ + ܮR" + + ܮR:7zѥr:>4 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0322.pb b/lib/codecs/tests/data/native_encoding/proto/0322.pb new file mode 100644 index 0000000000000..33dc1a153d358 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0322.pb @@ -0,0 +1,6 @@ + + +6 +4`򹌫*'"PQ‘隑G¨4h2,C8N𶐑c7⁊𴀉(`wዉ짜"J +6 +4`򹌫*'"PQ‘隑G¨4h2,C8N𶐑c7⁊𴀉(`wዉ짜:7zѥr1* \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0323.pb b/lib/codecs/tests/data/native_encoding/proto/0323.pb new file mode 100644 index 0000000000000..6189947d17d0a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0323.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0324.pb b/lib/codecs/tests/data/native_encoding/proto/0324.pb new file mode 100644 index 0000000000000..a441bb3876cc5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0324.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0325.pb b/lib/codecs/tests/data/native_encoding/proto/0325.pb new file mode 100644 index 0000000000000..e4a8c45156989 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0325.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0326.pb b/lib/codecs/tests/data/native_encoding/proto/0326.pb new file mode 100644 index 0000000000000..9eb71a3c323ed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0326.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0327.pb b/lib/codecs/tests/data/native_encoding/proto/0327.pb new file mode 100644 index 0000000000000..43b74526e27ca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0327.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0328.pb b/lib/codecs/tests/data/native_encoding/proto/0328.pb new file mode 100644 index 0000000000000..f2ce12fcbed1b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0328.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0329.pb b/lib/codecs/tests/data/native_encoding/proto/0329.pb new file mode 100644 index 0000000000000..662f5e1012157 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0329.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0330.pb b/lib/codecs/tests/data/native_encoding/proto/0330.pb new file mode 100644 index 0000000000000..e20484fe8ca83 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0330.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0331.pb b/lib/codecs/tests/data/native_encoding/proto/0331.pb new file mode 100644 index 0000000000000..2ffc9d55b87a1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0331.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0332.pb b/lib/codecs/tests/data/native_encoding/proto/0332.pb new file mode 100644 index 0000000000000..aafbf1c4043e1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0332.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0333.pb b/lib/codecs/tests/data/native_encoding/proto/0333.pb new file mode 100644 index 0000000000000..2baf97c166bc2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0333.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0334.pb b/lib/codecs/tests/data/native_encoding/proto/0334.pb new file mode 100644 index 0000000000000..f0a3507ef7999 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0334.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0335.pb b/lib/codecs/tests/data/native_encoding/proto/0335.pb new file mode 100644 index 0000000000000..d45ac227e75c5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0335.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0336.pb b/lib/codecs/tests/data/native_encoding/proto/0336.pb new file mode 100644 index 0000000000000..ebcec9d1c6db4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0336.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0337.pb b/lib/codecs/tests/data/native_encoding/proto/0337.pb new file mode 100644 index 0000000000000..0fe2b4e23df64 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0337.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0338.pb b/lib/codecs/tests/data/native_encoding/proto/0338.pb new file mode 100644 index 0000000000000..8920a8d18131f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0338.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0339.pb b/lib/codecs/tests/data/native_encoding/proto/0339.pb new file mode 100644 index 0000000000000..cecb88dc1979d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0339.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0340.pb b/lib/codecs/tests/data/native_encoding/proto/0340.pb new file mode 100644 index 0000000000000..1c0caa70cf36b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0340.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0341.pb b/lib/codecs/tests/data/native_encoding/proto/0341.pb new file mode 100644 index 0000000000000..419ef8c1bef34 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0341.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0342.pb b/lib/codecs/tests/data/native_encoding/proto/0342.pb new file mode 100644 index 0000000000000..7fe402ea6108b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0342.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0343.pb b/lib/codecs/tests/data/native_encoding/proto/0343.pb new file mode 100644 index 0000000000000..93100f5dbe619 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0343.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0344.pb b/lib/codecs/tests/data/native_encoding/proto/0344.pb new file mode 100644 index 0000000000000..e7e928188cde4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0344.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0345.pb b/lib/codecs/tests/data/native_encoding/proto/0345.pb new file mode 100644 index 0000000000000..1caffb7fe516a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0345.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0346.pb b/lib/codecs/tests/data/native_encoding/proto/0346.pb new file mode 100644 index 0000000000000..f6c1c558c3214 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0346.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0347.pb b/lib/codecs/tests/data/native_encoding/proto/0347.pb new file mode 100644 index 0000000000000..15f3fca2ef5e5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0347.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0348.pb b/lib/codecs/tests/data/native_encoding/proto/0348.pb new file mode 100644 index 0000000000000..3fec1d12463b6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0348.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0349.pb b/lib/codecs/tests/data/native_encoding/proto/0349.pb new file mode 100644 index 0000000000000..b865afd0a4292 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0349.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0350.pb b/lib/codecs/tests/data/native_encoding/proto/0350.pb new file mode 100644 index 0000000000000..35b674ac7ae43 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0350.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0351.pb b/lib/codecs/tests/data/native_encoding/proto/0351.pb new file mode 100644 index 0000000000000..5a5212885a79c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0351.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0352.pb b/lib/codecs/tests/data/native_encoding/proto/0352.pb new file mode 100644 index 0000000000000..bc4febe879d86 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0352.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0353.pb b/lib/codecs/tests/data/native_encoding/proto/0353.pb new file mode 100644 index 0000000000000..94b2cad3254a6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0353.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0354.pb b/lib/codecs/tests/data/native_encoding/proto/0354.pb new file mode 100644 index 0000000000000..7667abba01c10 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0354.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0355.pb b/lib/codecs/tests/data/native_encoding/proto/0355.pb new file mode 100644 index 0000000000000..0878c191f1606 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0355.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0356.pb b/lib/codecs/tests/data/native_encoding/proto/0356.pb new file mode 100644 index 0000000000000..73372b0fe6a1c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0356.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0357.pb b/lib/codecs/tests/data/native_encoding/proto/0357.pb new file mode 100644 index 0000000000000..98e6b3b1ed26f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0357.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0358.pb b/lib/codecs/tests/data/native_encoding/proto/0358.pb new file mode 100644 index 0000000000000..2fee8123d5068 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0358.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0359.pb b/lib/codecs/tests/data/native_encoding/proto/0359.pb new file mode 100644 index 0000000000000..f26c1c9ee5896 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0359.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0360.pb b/lib/codecs/tests/data/native_encoding/proto/0360.pb new file mode 100644 index 0000000000000..d89203c218413 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0360.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0361.pb b/lib/codecs/tests/data/native_encoding/proto/0361.pb new file mode 100644 index 0000000000000..24c3f7e10082d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0361.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0362.pb b/lib/codecs/tests/data/native_encoding/proto/0362.pb new file mode 100644 index 0000000000000..b425198c70670 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0362.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0363.pb b/lib/codecs/tests/data/native_encoding/proto/0363.pb new file mode 100644 index 0000000000000..9fcdeb6317ac6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0363.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0364.pb b/lib/codecs/tests/data/native_encoding/proto/0364.pb new file mode 100644 index 0000000000000..f41709731b117 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0364.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0365.pb b/lib/codecs/tests/data/native_encoding/proto/0365.pb new file mode 100644 index 0000000000000..46ffc975a6f97 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0365.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0366.pb b/lib/codecs/tests/data/native_encoding/proto/0366.pb new file mode 100644 index 0000000000000..db3f9931f46a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0366.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0367.pb b/lib/codecs/tests/data/native_encoding/proto/0367.pb new file mode 100644 index 0000000000000..ea668b4f71a51 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0367.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0368.pb b/lib/codecs/tests/data/native_encoding/proto/0368.pb new file mode 100644 index 0000000000000..bff61808de79a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0368.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0369.pb b/lib/codecs/tests/data/native_encoding/proto/0369.pb new file mode 100644 index 0000000000000..a9a549606d3df Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0369.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0370.pb b/lib/codecs/tests/data/native_encoding/proto/0370.pb new file mode 100644 index 0000000000000..bd5919d3f0a70 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0370.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0371.pb b/lib/codecs/tests/data/native_encoding/proto/0371.pb new file mode 100644 index 0000000000000..654a7602ad8c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0371.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0372.pb b/lib/codecs/tests/data/native_encoding/proto/0372.pb new file mode 100644 index 0000000000000..33a58810f011f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0372.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0373.pb b/lib/codecs/tests/data/native_encoding/proto/0373.pb new file mode 100644 index 0000000000000..8e928d7cc60d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0373.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0374.pb b/lib/codecs/tests/data/native_encoding/proto/0374.pb new file mode 100644 index 0000000000000..cfaaba5fc8e1c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0374.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0375.pb b/lib/codecs/tests/data/native_encoding/proto/0375.pb new file mode 100644 index 0000000000000..02a6af8c8a13e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0375.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0376.pb b/lib/codecs/tests/data/native_encoding/proto/0376.pb new file mode 100644 index 0000000000000..4723f2cec9454 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0376.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0377.pb b/lib/codecs/tests/data/native_encoding/proto/0377.pb new file mode 100644 index 0000000000000..27ce1c7962abe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0377.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0378.pb b/lib/codecs/tests/data/native_encoding/proto/0378.pb new file mode 100644 index 0000000000000..3db29f92ea537 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0378.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0379.pb b/lib/codecs/tests/data/native_encoding/proto/0379.pb new file mode 100644 index 0000000000000..efb6b647f25cd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0379.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0380.pb b/lib/codecs/tests/data/native_encoding/proto/0380.pb new file mode 100644 index 0000000000000..b103c4d95f15e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0380.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0381.pb b/lib/codecs/tests/data/native_encoding/proto/0381.pb new file mode 100644 index 0000000000000..d22637f159cbe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0381.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0382.pb b/lib/codecs/tests/data/native_encoding/proto/0382.pb new file mode 100644 index 0000000000000..73e9f11e97352 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0382.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0383.pb b/lib/codecs/tests/data/native_encoding/proto/0383.pb new file mode 100644 index 0000000000000..ddb3be728e3e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0383.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0384.pb b/lib/codecs/tests/data/native_encoding/proto/0384.pb new file mode 100644 index 0000000000000..77f9806975671 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0384.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0385.pb b/lib/codecs/tests/data/native_encoding/proto/0385.pb new file mode 100644 index 0000000000000..8112773c633f6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0385.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0386.pb b/lib/codecs/tests/data/native_encoding/proto/0386.pb new file mode 100644 index 0000000000000..ead227f5b46b8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0386.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0387.pb b/lib/codecs/tests/data/native_encoding/proto/0387.pb new file mode 100644 index 0000000000000..3dc8d6204cda0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0387.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0388.pb b/lib/codecs/tests/data/native_encoding/proto/0388.pb new file mode 100644 index 0000000000000..14ac3f22d5164 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0388.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0389.pb b/lib/codecs/tests/data/native_encoding/proto/0389.pb new file mode 100644 index 0000000000000..78cef9627d857 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0389.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0390.pb b/lib/codecs/tests/data/native_encoding/proto/0390.pb new file mode 100644 index 0000000000000..ad2ef28af603c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0390.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0391.pb b/lib/codecs/tests/data/native_encoding/proto/0391.pb new file mode 100644 index 0000000000000..817989f69e9b0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0391.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0392.pb b/lib/codecs/tests/data/native_encoding/proto/0392.pb new file mode 100644 index 0000000000000..656644a1ca949 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0392.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0393.pb b/lib/codecs/tests/data/native_encoding/proto/0393.pb new file mode 100644 index 0000000000000..5efba0bad9102 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0393.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0394.pb b/lib/codecs/tests/data/native_encoding/proto/0394.pb new file mode 100644 index 0000000000000..3a0d67f685480 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0394.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0395.pb b/lib/codecs/tests/data/native_encoding/proto/0395.pb new file mode 100644 index 0000000000000..068d1f62c9d96 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0395.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0396.pb b/lib/codecs/tests/data/native_encoding/proto/0396.pb new file mode 100644 index 0000000000000..f2293abfb39aa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0396.pb @@ -0,0 +1,5 @@ + +2 +0 +0 ):A#" + ):A#:7|Iɮ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0397.pb b/lib/codecs/tests/data/native_encoding/proto/0397.pb new file mode 100644 index 0000000000000..4d26576b524fe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0397.pb @@ -0,0 +1,6 @@ + +. +, + ɺݽK" + + ɺݽK:7|U \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0398.pb b/lib/codecs/tests/data/native_encoding/proto/0398.pb new file mode 100644 index 0000000000000..7d9b395ee613e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0398.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0399.pb b/lib/codecs/tests/data/native_encoding/proto/0399.pb new file mode 100644 index 0000000000000..a240e0963f4f4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0399.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0400.pb b/lib/codecs/tests/data/native_encoding/proto/0400.pb new file mode 100644 index 0000000000000..d808617cc909b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0400.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0401.pb b/lib/codecs/tests/data/native_encoding/proto/0401.pb new file mode 100644 index 0000000000000..340a736ba3023 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0401.pb @@ -0,0 +1,11 @@ + +N +L + + + 0 + +<  + ՄҒ]" + + ՄҒ]:7v᫾, \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0402.pb b/lib/codecs/tests/data/native_encoding/proto/0402.pb new file mode 100644 index 0000000000000..58c382961c9df Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0402.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0403.pb b/lib/codecs/tests/data/native_encoding/proto/0403.pb new file mode 100644 index 0000000000000..883be3bd81fe1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0403.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0404.pb b/lib/codecs/tests/data/native_encoding/proto/0404.pb new file mode 100644 index 0000000000000..fd0ce38b51caf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0404.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0405.pb b/lib/codecs/tests/data/native_encoding/proto/0405.pb new file mode 100644 index 0000000000000..4324dc1023bb1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0405.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0406.pb b/lib/codecs/tests/data/native_encoding/proto/0406.pb new file mode 100644 index 0000000000000..90a65a556b419 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0406.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0407.pb b/lib/codecs/tests/data/native_encoding/proto/0407.pb new file mode 100644 index 0000000000000..89aacc450fc84 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0407.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0408.pb b/lib/codecs/tests/data/native_encoding/proto/0408.pb new file mode 100644 index 0000000000000..0d826fb0b3a8c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0408.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0409.pb b/lib/codecs/tests/data/native_encoding/proto/0409.pb new file mode 100644 index 0000000000000..c7c1c0360a559 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0409.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0410.pb b/lib/codecs/tests/data/native_encoding/proto/0410.pb new file mode 100644 index 0000000000000..4cb31ee13f395 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0410.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0411.pb b/lib/codecs/tests/data/native_encoding/proto/0411.pb new file mode 100644 index 0000000000000..2986cb52dee8a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0411.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0412.pb b/lib/codecs/tests/data/native_encoding/proto/0412.pb new file mode 100644 index 0000000000000..3345881ffadb4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0412.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0413.pb b/lib/codecs/tests/data/native_encoding/proto/0413.pb new file mode 100644 index 0000000000000..91cad1dbf25c0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0413.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0414.pb b/lib/codecs/tests/data/native_encoding/proto/0414.pb new file mode 100644 index 0000000000000..b8b5e4180de69 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0414.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0415.pb b/lib/codecs/tests/data/native_encoding/proto/0415.pb new file mode 100644 index 0000000000000..24e59780ce353 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0415.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0416.pb b/lib/codecs/tests/data/native_encoding/proto/0416.pb new file mode 100644 index 0000000000000..ff25297df022b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0416.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0417.pb b/lib/codecs/tests/data/native_encoding/proto/0417.pb new file mode 100644 index 0000000000000..b2e7da6706cf4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0417.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0418.pb b/lib/codecs/tests/data/native_encoding/proto/0418.pb new file mode 100644 index 0000000000000..cf007bd15d7d9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0418.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0419.pb b/lib/codecs/tests/data/native_encoding/proto/0419.pb new file mode 100644 index 0000000000000..f1e27d17d14a2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0419.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0420.pb b/lib/codecs/tests/data/native_encoding/proto/0420.pb new file mode 100644 index 0000000000000..cf8d58ac4443e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0420.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0421.pb b/lib/codecs/tests/data/native_encoding/proto/0421.pb new file mode 100644 index 0000000000000..9f8624b24af33 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0421.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0422.pb b/lib/codecs/tests/data/native_encoding/proto/0422.pb new file mode 100644 index 0000000000000..ca4a609aa379b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0422.pb @@ -0,0 +1,6 @@ + +. +, + " + + :7(r߶ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0423.pb b/lib/codecs/tests/data/native_encoding/proto/0423.pb new file mode 100644 index 0000000000000..edd8bc7a4ff01 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0423.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0424.pb b/lib/codecs/tests/data/native_encoding/proto/0424.pb new file mode 100644 index 0000000000000..2cef99a9f0f54 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0424.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0425.pb b/lib/codecs/tests/data/native_encoding/proto/0425.pb new file mode 100644 index 0000000000000..3e1bc1d56db54 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0425.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0426.pb b/lib/codecs/tests/data/native_encoding/proto/0426.pb new file mode 100644 index 0000000000000..274918bd39129 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0426.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0427.pb b/lib/codecs/tests/data/native_encoding/proto/0427.pb new file mode 100644 index 0000000000000..02804577f9ccf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0427.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0428.pb b/lib/codecs/tests/data/native_encoding/proto/0428.pb new file mode 100644 index 0000000000000..ac545a0d1b3bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0428.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0429.pb b/lib/codecs/tests/data/native_encoding/proto/0429.pb new file mode 100644 index 0000000000000..72c6e21cedde9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0429.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0430.pb b/lib/codecs/tests/data/native_encoding/proto/0430.pb new file mode 100644 index 0000000000000..7cd38e5df2150 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0430.pb @@ -0,0 +1,9 @@ + +? += + +! + ߳s + ͼ߇p" + + ͼ߇p:7>r^agh7 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0431.pb b/lib/codecs/tests/data/native_encoding/proto/0431.pb new file mode 100644 index 0000000000000..a18dd641997d3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0431.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0432.pb b/lib/codecs/tests/data/native_encoding/proto/0432.pb new file mode 100644 index 0000000000000..c55f984be3bb7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0432.pb @@ -0,0 +1,4 @@ + + +0" +0:7?r*Rؓ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0433.pb b/lib/codecs/tests/data/native_encoding/proto/0433.pb new file mode 100644 index 0000000000000..063dfc7e753e9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0433.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0434.pb b/lib/codecs/tests/data/native_encoding/proto/0434.pb new file mode 100644 index 0000000000000..806493c2088de Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0434.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0435.pb b/lib/codecs/tests/data/native_encoding/proto/0435.pb new file mode 100644 index 0000000000000..aa3dde6d0ef99 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0435.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0436.pb b/lib/codecs/tests/data/native_encoding/proto/0436.pb new file mode 100644 index 0000000000000..87205bbf10f7a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0436.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0437.pb b/lib/codecs/tests/data/native_encoding/proto/0437.pb new file mode 100644 index 0000000000000..183009e9e1fe0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0437.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0438.pb b/lib/codecs/tests/data/native_encoding/proto/0438.pb new file mode 100644 index 0000000000000..5ce8e9d56289a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0438.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0439.pb b/lib/codecs/tests/data/native_encoding/proto/0439.pb new file mode 100644 index 0000000000000..16f228c780bcf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0439.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0440.pb b/lib/codecs/tests/data/native_encoding/proto/0440.pb new file mode 100644 index 0000000000000..dfe5d5dadc63b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0440.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0441.pb b/lib/codecs/tests/data/native_encoding/proto/0441.pb new file mode 100644 index 0000000000000..3d9f5154cd269 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0441.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0442.pb b/lib/codecs/tests/data/native_encoding/proto/0442.pb new file mode 100644 index 0000000000000..639eac9fd6ee1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0442.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0443.pb b/lib/codecs/tests/data/native_encoding/proto/0443.pb new file mode 100644 index 0000000000000..a95171fd202c2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0443.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0444.pb b/lib/codecs/tests/data/native_encoding/proto/0444.pb new file mode 100644 index 0000000000000..c8625e1f4a155 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0444.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0445.pb b/lib/codecs/tests/data/native_encoding/proto/0445.pb new file mode 100644 index 0000000000000..54d77f5ac9245 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0445.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0446.pb b/lib/codecs/tests/data/native_encoding/proto/0446.pb new file mode 100644 index 0000000000000..b1a06f426f343 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0446.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0447.pb b/lib/codecs/tests/data/native_encoding/proto/0447.pb new file mode 100644 index 0000000000000..c13c0adfcca65 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0447.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0448.pb b/lib/codecs/tests/data/native_encoding/proto/0448.pb new file mode 100644 index 0000000000000..023552ae3f6f1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0448.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0449.pb b/lib/codecs/tests/data/native_encoding/proto/0449.pb new file mode 100644 index 0000000000000..0058b7d232365 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0449.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0450.pb b/lib/codecs/tests/data/native_encoding/proto/0450.pb new file mode 100644 index 0000000000000..7dcc488c68257 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0450.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0451.pb b/lib/codecs/tests/data/native_encoding/proto/0451.pb new file mode 100644 index 0000000000000..82b982af1ac5d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0451.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0452.pb b/lib/codecs/tests/data/native_encoding/proto/0452.pb new file mode 100644 index 0000000000000..e2730b73d11d3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0452.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0453.pb b/lib/codecs/tests/data/native_encoding/proto/0453.pb new file mode 100644 index 0000000000000..e076eec562478 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0453.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0454.pb b/lib/codecs/tests/data/native_encoding/proto/0454.pb new file mode 100644 index 0000000000000..cc14fb6f07c80 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0454.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0455.pb b/lib/codecs/tests/data/native_encoding/proto/0455.pb new file mode 100644 index 0000000000000..eaa956609e886 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0455.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0456.pb b/lib/codecs/tests/data/native_encoding/proto/0456.pb new file mode 100644 index 0000000000000..078ec40a09365 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0456.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0457.pb b/lib/codecs/tests/data/native_encoding/proto/0457.pb new file mode 100644 index 0000000000000..93745c4e45b62 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0457.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0458.pb b/lib/codecs/tests/data/native_encoding/proto/0458.pb new file mode 100644 index 0000000000000..b9543837f147d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0458.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0459.pb b/lib/codecs/tests/data/native_encoding/proto/0459.pb new file mode 100644 index 0000000000000..478f852c90659 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0459.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0460.pb b/lib/codecs/tests/data/native_encoding/proto/0460.pb new file mode 100644 index 0000000000000..164734fe2a8eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0460.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0461.pb b/lib/codecs/tests/data/native_encoding/proto/0461.pb new file mode 100644 index 0000000000000..7094e13cbf57f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0461.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0462.pb b/lib/codecs/tests/data/native_encoding/proto/0462.pb new file mode 100644 index 0000000000000..a78cc674afcee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0462.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0463.pb b/lib/codecs/tests/data/native_encoding/proto/0463.pb new file mode 100644 index 0000000000000..36a7367b6eceb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0463.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0464.pb b/lib/codecs/tests/data/native_encoding/proto/0464.pb new file mode 100644 index 0000000000000..56b579eb05a93 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0464.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0465.pb b/lib/codecs/tests/data/native_encoding/proto/0465.pb new file mode 100644 index 0000000000000..1377e77e0c33f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0465.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0466.pb b/lib/codecs/tests/data/native_encoding/proto/0466.pb new file mode 100644 index 0000000000000..43e6357ed4b73 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0466.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0467.pb b/lib/codecs/tests/data/native_encoding/proto/0467.pb new file mode 100644 index 0000000000000..0b393c8d42099 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0467.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0468.pb b/lib/codecs/tests/data/native_encoding/proto/0468.pb new file mode 100644 index 0000000000000..c6bfea5a2dfde Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0468.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0469.pb b/lib/codecs/tests/data/native_encoding/proto/0469.pb new file mode 100644 index 0000000000000..dc76d168b37eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0469.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0470.pb b/lib/codecs/tests/data/native_encoding/proto/0470.pb new file mode 100644 index 0000000000000..4c4fa5976afd8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0470.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0471.pb b/lib/codecs/tests/data/native_encoding/proto/0471.pb new file mode 100644 index 0000000000000..2845421b1a280 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0471.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0472.pb b/lib/codecs/tests/data/native_encoding/proto/0472.pb new file mode 100644 index 0000000000000..de37577bb4821 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0472.pb @@ -0,0 +1,6 @@ + + +g +e.ϭ󰀀⁨x!H7a6l揚[u ᅥv|򏳁⁝ y󠀠9`/载f¬﯀*Š]?lm—$ Š'-'>'b®,d鮙N”TE:󿿽"{ +g +e.ϭ󰀀⁨x!H7a6l揚[u ᅥv|򏳁⁝ y󠀠9`/载f¬﯀*Š]?lm—$ Š'-'>'b®,d鮙N”TE:󿿽:7{<  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0473.pb b/lib/codecs/tests/data/native_encoding/proto/0473.pb new file mode 100644 index 0000000000000..9f0179174a3a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0473.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0474.pb b/lib/codecs/tests/data/native_encoding/proto/0474.pb new file mode 100644 index 0000000000000..1ec677e1062ed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0474.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0475.pb b/lib/codecs/tests/data/native_encoding/proto/0475.pb new file mode 100644 index 0000000000000..d9b2bc9470280 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0475.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0476.pb b/lib/codecs/tests/data/native_encoding/proto/0476.pb new file mode 100644 index 0000000000000..b4ed006554752 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0476.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0477.pb b/lib/codecs/tests/data/native_encoding/proto/0477.pb new file mode 100644 index 0000000000000..3eca5b5b8c6d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0477.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0478.pb b/lib/codecs/tests/data/native_encoding/proto/0478.pb new file mode 100644 index 0000000000000..b84ae0dbaa35c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0478.pb @@ -0,0 +1,13 @@ + +m +k +; +‘󟊡•/:- ++):' + + ‚​ +> + +󮃍ž + ׾¥= 퐚" + 퐚:7wǎ[W+ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0479.pb b/lib/codecs/tests/data/native_encoding/proto/0479.pb new file mode 100644 index 0000000000000..4db262cee833e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0479.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0480.pb b/lib/codecs/tests/data/native_encoding/proto/0480.pb new file mode 100644 index 0000000000000..d7be0eb2b9df5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0480.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0481.pb b/lib/codecs/tests/data/native_encoding/proto/0481.pb new file mode 100644 index 0000000000000..03aa4b5c78e50 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0481.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0482.pb b/lib/codecs/tests/data/native_encoding/proto/0482.pb new file mode 100644 index 0000000000000..78b70d95bc106 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0482.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0483.pb b/lib/codecs/tests/data/native_encoding/proto/0483.pb new file mode 100644 index 0000000000000..9fc0492ed54c1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0483.pb @@ -0,0 +1,12 @@ + + + +£ c ƒ𽝈8𕴣}5“􈢫«>& 5 +￿‹sN 2L窏(WY#>{⁂l𐾚‎ `4t ”​�⁇a +¥‡” }33 +?⁗Cv1c(B񀙤‡2A¢':;E⁕ ][>푭ŽCN’•2+󿿾˜`!ʼn󠀁$+f‾3;‍%®{_" + +£ c ƒ𽝈8𕴣}5“􈢫«>& 5 +￿‹sN 2L窏(WY#>{⁂l𐾚‎ `4t ”​�⁇a +¥‡” }33 +?⁗Cv1c(B񀙤‡2A¢':;E⁕ ][>푭ŽCN’•2+󿿾˜`!ʼn󠀁$+f‾3;‍%®{_:7pb)bN \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0484.pb b/lib/codecs/tests/data/native_encoding/proto/0484.pb new file mode 100644 index 0000000000000..8892258152f16 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0484.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0485.pb b/lib/codecs/tests/data/native_encoding/proto/0485.pb new file mode 100644 index 0000000000000..f89490089cb32 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0485.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0486.pb b/lib/codecs/tests/data/native_encoding/proto/0486.pb new file mode 100644 index 0000000000000..85e4eef7a8796 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0486.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0487.pb b/lib/codecs/tests/data/native_encoding/proto/0487.pb new file mode 100644 index 0000000000000..ccb8f1005c833 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0487.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0488.pb b/lib/codecs/tests/data/native_encoding/proto/0488.pb new file mode 100644 index 0000000000000..1561dc0cb1c89 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0488.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0489.pb b/lib/codecs/tests/data/native_encoding/proto/0489.pb new file mode 100644 index 0000000000000..a403a161db3f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0489.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0490.pb b/lib/codecs/tests/data/native_encoding/proto/0490.pb new file mode 100644 index 0000000000000..e84928095d730 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0490.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0491.pb b/lib/codecs/tests/data/native_encoding/proto/0491.pb new file mode 100644 index 0000000000000..82fe7dcdf61db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0491.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0492.pb b/lib/codecs/tests/data/native_encoding/proto/0492.pb new file mode 100644 index 0000000000000..6061a2685fd43 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0492.pb @@ -0,0 +1,6 @@ + +\ +Z! +㵺 ¥Xœ񾣢񩺤[񩲿 '󰀀W"5 +! +㵺 ¥Xœ񾣢񩺤[񩲿 '󰀀W:7vyYnI \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0493.pb b/lib/codecs/tests/data/native_encoding/proto/0493.pb new file mode 100644 index 0000000000000..b28445378df00 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0493.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0494.pb b/lib/codecs/tests/data/native_encoding/proto/0494.pb new file mode 100644 index 0000000000000..58b504c3fb2d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0494.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0495.pb b/lib/codecs/tests/data/native_encoding/proto/0495.pb new file mode 100644 index 0000000000000..b6f3df04b2e8f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0495.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0496.pb b/lib/codecs/tests/data/native_encoding/proto/0496.pb new file mode 100644 index 0000000000000..9325b6f6a2754 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0496.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0497.pb b/lib/codecs/tests/data/native_encoding/proto/0497.pb new file mode 100644 index 0000000000000..28cb198ff0ecf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0497.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0498.pb b/lib/codecs/tests/data/native_encoding/proto/0498.pb new file mode 100644 index 0000000000000..e6d8228e9e471 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0498.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0499.pb b/lib/codecs/tests/data/native_encoding/proto/0499.pb new file mode 100644 index 0000000000000..7257a726bb45f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0499.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0500.pb b/lib/codecs/tests/data/native_encoding/proto/0500.pb new file mode 100644 index 0000000000000..cfc063b7a7913 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0500.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0501.pb b/lib/codecs/tests/data/native_encoding/proto/0501.pb new file mode 100644 index 0000000000000..4afff2244cbea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0501.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0502.pb b/lib/codecs/tests/data/native_encoding/proto/0502.pb new file mode 100644 index 0000000000000..fd470e498b98c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0502.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0503.pb b/lib/codecs/tests/data/native_encoding/proto/0503.pb new file mode 100644 index 0000000000000..ea11cbb292f90 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0503.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0504.pb b/lib/codecs/tests/data/native_encoding/proto/0504.pb new file mode 100644 index 0000000000000..8ac94066a9544 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0504.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0505.pb b/lib/codecs/tests/data/native_encoding/proto/0505.pb new file mode 100644 index 0000000000000..5f96714bc2d90 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0505.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0506.pb b/lib/codecs/tests/data/native_encoding/proto/0506.pb new file mode 100644 index 0000000000000..d1b57c3c42a67 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0506.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0507.pb b/lib/codecs/tests/data/native_encoding/proto/0507.pb new file mode 100644 index 0000000000000..cf5c281c4c788 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0507.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0508.pb b/lib/codecs/tests/data/native_encoding/proto/0508.pb new file mode 100644 index 0000000000000..b93d67845e746 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0508.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0509.pb b/lib/codecs/tests/data/native_encoding/proto/0509.pb new file mode 100644 index 0000000000000..334d58415fe5b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0509.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0510.pb b/lib/codecs/tests/data/native_encoding/proto/0510.pb new file mode 100644 index 0000000000000..98705a7248515 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0510.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0511.pb b/lib/codecs/tests/data/native_encoding/proto/0511.pb new file mode 100644 index 0000000000000..556125bffc646 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0511.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0512.pb b/lib/codecs/tests/data/native_encoding/proto/0512.pb new file mode 100644 index 0000000000000..aa79cf218977e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0512.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0513.pb b/lib/codecs/tests/data/native_encoding/proto/0513.pb new file mode 100644 index 0000000000000..115e2123b2f01 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0513.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0514.pb b/lib/codecs/tests/data/native_encoding/proto/0514.pb new file mode 100644 index 0000000000000..71ad24329d93a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0514.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0515.pb b/lib/codecs/tests/data/native_encoding/proto/0515.pb new file mode 100644 index 0000000000000..f995d2fdcd4d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0515.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0516.pb b/lib/codecs/tests/data/native_encoding/proto/0516.pb new file mode 100644 index 0000000000000..caac8797e19ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0516.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0517.pb b/lib/codecs/tests/data/native_encoding/proto/0517.pb new file mode 100644 index 0000000000000..6bd231b017c31 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0517.pb @@ -0,0 +1,6 @@ + +& +$B +0" +B +0:7|J$h \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0518.pb b/lib/codecs/tests/data/native_encoding/proto/0518.pb new file mode 100644 index 0000000000000..dfdf477c968e2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0518.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0519.pb b/lib/codecs/tests/data/native_encoding/proto/0519.pb new file mode 100644 index 0000000000000..17d98181a6560 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0519.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0520.pb b/lib/codecs/tests/data/native_encoding/proto/0520.pb new file mode 100644 index 0000000000000..e0093e5021632 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0520.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0521.pb b/lib/codecs/tests/data/native_encoding/proto/0521.pb new file mode 100644 index 0000000000000..fe33c9b787e77 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0521.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0522.pb b/lib/codecs/tests/data/native_encoding/proto/0522.pb new file mode 100644 index 0000000000000..8b20c1d715f62 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0522.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0523.pb b/lib/codecs/tests/data/native_encoding/proto/0523.pb new file mode 100644 index 0000000000000..84889e3fd56fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0523.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0524.pb b/lib/codecs/tests/data/native_encoding/proto/0524.pb new file mode 100644 index 0000000000000..0b7ea2ea989c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0524.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0525.pb b/lib/codecs/tests/data/native_encoding/proto/0525.pb new file mode 100644 index 0000000000000..ba5b0e5e83041 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0525.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0526.pb b/lib/codecs/tests/data/native_encoding/proto/0526.pb new file mode 100644 index 0000000000000..13dcb37e89bc9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0526.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0527.pb b/lib/codecs/tests/data/native_encoding/proto/0527.pb new file mode 100644 index 0000000000000..9c94f72043429 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0527.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0528.pb b/lib/codecs/tests/data/native_encoding/proto/0528.pb new file mode 100644 index 0000000000000..86c99d289785f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0528.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0529.pb b/lib/codecs/tests/data/native_encoding/proto/0529.pb new file mode 100644 index 0000000000000..45fc6e9c29a12 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0529.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0530.pb b/lib/codecs/tests/data/native_encoding/proto/0530.pb new file mode 100644 index 0000000000000..241c5d70e6259 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0530.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0531.pb b/lib/codecs/tests/data/native_encoding/proto/0531.pb new file mode 100644 index 0000000000000..4f0467366b943 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0531.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0532.pb b/lib/codecs/tests/data/native_encoding/proto/0532.pb new file mode 100644 index 0000000000000..911b4533cf01d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0532.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0533.pb b/lib/codecs/tests/data/native_encoding/proto/0533.pb new file mode 100644 index 0000000000000..d47118058d788 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0533.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0534.pb b/lib/codecs/tests/data/native_encoding/proto/0534.pb new file mode 100644 index 0000000000000..c509ffaea3a65 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0534.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0535.pb b/lib/codecs/tests/data/native_encoding/proto/0535.pb new file mode 100644 index 0000000000000..873f8dcd45f25 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0535.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0536.pb b/lib/codecs/tests/data/native_encoding/proto/0536.pb new file mode 100644 index 0000000000000..4125c98fad0d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0536.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0537.pb b/lib/codecs/tests/data/native_encoding/proto/0537.pb new file mode 100644 index 0000000000000..9501dc764644e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0537.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0538.pb b/lib/codecs/tests/data/native_encoding/proto/0538.pb new file mode 100644 index 0000000000000..0fab6a91aee86 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0538.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0539.pb b/lib/codecs/tests/data/native_encoding/proto/0539.pb new file mode 100644 index 0000000000000..e7b55f7432c19 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0539.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0540.pb b/lib/codecs/tests/data/native_encoding/proto/0540.pb new file mode 100644 index 0000000000000..b1cbeebafabb2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0540.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0541.pb b/lib/codecs/tests/data/native_encoding/proto/0541.pb new file mode 100644 index 0000000000000..a7bacc6a227ec Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0541.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0542.pb b/lib/codecs/tests/data/native_encoding/proto/0542.pb new file mode 100644 index 0000000000000..0c3a0ee9af5f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0542.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0543.pb b/lib/codecs/tests/data/native_encoding/proto/0543.pb new file mode 100644 index 0000000000000..00a47946f4c51 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0543.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0544.pb b/lib/codecs/tests/data/native_encoding/proto/0544.pb new file mode 100644 index 0000000000000..93f0e03779f0f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0544.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0545.pb b/lib/codecs/tests/data/native_encoding/proto/0545.pb new file mode 100644 index 0000000000000..86e043fdb1ef5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0545.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0546.pb b/lib/codecs/tests/data/native_encoding/proto/0546.pb new file mode 100644 index 0000000000000..26008506d41b9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0546.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0547.pb b/lib/codecs/tests/data/native_encoding/proto/0547.pb new file mode 100644 index 0000000000000..bed1cf1683d01 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0547.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0548.pb b/lib/codecs/tests/data/native_encoding/proto/0548.pb new file mode 100644 index 0000000000000..5a497171ef959 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0548.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0549.pb b/lib/codecs/tests/data/native_encoding/proto/0549.pb new file mode 100644 index 0000000000000..703efa37c678c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0549.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0550.pb b/lib/codecs/tests/data/native_encoding/proto/0550.pb new file mode 100644 index 0000000000000..b931f270bd588 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0550.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0551.pb b/lib/codecs/tests/data/native_encoding/proto/0551.pb new file mode 100644 index 0000000000000..6ee616a064468 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0551.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0552.pb b/lib/codecs/tests/data/native_encoding/proto/0552.pb new file mode 100644 index 0000000000000..652f4844b4375 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0552.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0553.pb b/lib/codecs/tests/data/native_encoding/proto/0553.pb new file mode 100644 index 0000000000000..f97b30ad22d23 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0553.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0554.pb b/lib/codecs/tests/data/native_encoding/proto/0554.pb new file mode 100644 index 0000000000000..45ad41d996080 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0554.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0555.pb b/lib/codecs/tests/data/native_encoding/proto/0555.pb new file mode 100644 index 0000000000000..a30e7e4b0bc94 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0555.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0556.pb b/lib/codecs/tests/data/native_encoding/proto/0556.pb new file mode 100644 index 0000000000000..2851ab7911812 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0556.pb @@ -0,0 +1,8 @@ + + +L +J#'꽃 ✬7/"񛧃]ˆ!‘w%\􎩣$Œ 5C?5F򴢤#f +’򯵽􂘬⁀򯅮—j ?'"` +L +J#'꽃 ✬7/"񛧃]ˆ!‘w%\􎩣$Œ 5C?5F򴢤#f +’򯵽􂘬⁀򯅮—j ?':7}㝼WE\ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0557.pb b/lib/codecs/tests/data/native_encoding/proto/0557.pb new file mode 100644 index 0000000000000..bb8c281bfaeda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0557.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0558.pb b/lib/codecs/tests/data/native_encoding/proto/0558.pb new file mode 100644 index 0000000000000..c6c12c63e144b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0558.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0559.pb b/lib/codecs/tests/data/native_encoding/proto/0559.pb new file mode 100644 index 0000000000000..7601923bae7ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0559.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0560.pb b/lib/codecs/tests/data/native_encoding/proto/0560.pb new file mode 100644 index 0000000000000..cdfe16d2e86b6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0560.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0561.pb b/lib/codecs/tests/data/native_encoding/proto/0561.pb new file mode 100644 index 0000000000000..8c0885cd855eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0561.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0562.pb b/lib/codecs/tests/data/native_encoding/proto/0562.pb new file mode 100644 index 0000000000000..9932aed7b9bb4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0562.pb @@ -0,0 +1,4 @@ + + +0" +0:7|P<c> \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0563.pb b/lib/codecs/tests/data/native_encoding/proto/0563.pb new file mode 100644 index 0000000000000..9613d85acd63c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0563.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0564.pb b/lib/codecs/tests/data/native_encoding/proto/0564.pb new file mode 100644 index 0000000000000..9fb42fb7a7660 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0564.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0565.pb b/lib/codecs/tests/data/native_encoding/proto/0565.pb new file mode 100644 index 0000000000000..77499c7627f76 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0565.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0566.pb b/lib/codecs/tests/data/native_encoding/proto/0566.pb new file mode 100644 index 0000000000000..72d3311bf5eaa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0566.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0567.pb b/lib/codecs/tests/data/native_encoding/proto/0567.pb new file mode 100644 index 0000000000000..aafab3c9b1e67 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0567.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0568.pb b/lib/codecs/tests/data/native_encoding/proto/0568.pb new file mode 100644 index 0000000000000..4bfdb4eecca1f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0568.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0569.pb b/lib/codecs/tests/data/native_encoding/proto/0569.pb new file mode 100644 index 0000000000000..dc17ebb1af9b1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0569.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0570.pb b/lib/codecs/tests/data/native_encoding/proto/0570.pb new file mode 100644 index 0000000000000..b6f19bcfb18a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0570.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0571.pb b/lib/codecs/tests/data/native_encoding/proto/0571.pb new file mode 100644 index 0000000000000..ca9c5cbe34960 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0571.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0572.pb b/lib/codecs/tests/data/native_encoding/proto/0572.pb new file mode 100644 index 0000000000000..be9f6a2502572 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0572.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0573.pb b/lib/codecs/tests/data/native_encoding/proto/0573.pb new file mode 100644 index 0000000000000..a46bfdb1d51ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0573.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0574.pb b/lib/codecs/tests/data/native_encoding/proto/0574.pb new file mode 100644 index 0000000000000..0f0f38238b57b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0574.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0575.pb b/lib/codecs/tests/data/native_encoding/proto/0575.pb new file mode 100644 index 0000000000000..e29f3446f7868 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0575.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0576.pb b/lib/codecs/tests/data/native_encoding/proto/0576.pb new file mode 100644 index 0000000000000..ce7088b1ea8c7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0576.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0577.pb b/lib/codecs/tests/data/native_encoding/proto/0577.pb new file mode 100644 index 0000000000000..dd545bc4ce0eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0577.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0578.pb b/lib/codecs/tests/data/native_encoding/proto/0578.pb new file mode 100644 index 0000000000000..03048c07e95f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0578.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0579.pb b/lib/codecs/tests/data/native_encoding/proto/0579.pb new file mode 100644 index 0000000000000..425075009efe7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0579.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0580.pb b/lib/codecs/tests/data/native_encoding/proto/0580.pb new file mode 100644 index 0000000000000..d66c5121027d2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0580.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0581.pb b/lib/codecs/tests/data/native_encoding/proto/0581.pb new file mode 100644 index 0000000000000..52d022806c45c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0581.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0582.pb b/lib/codecs/tests/data/native_encoding/proto/0582.pb new file mode 100644 index 0000000000000..2153df9e9c936 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0582.pb @@ -0,0 +1,4 @@ + + +0" +0:7zఌǥ+ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0583.pb b/lib/codecs/tests/data/native_encoding/proto/0583.pb new file mode 100644 index 0000000000000..94ed8c7fc9e25 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0583.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0584.pb b/lib/codecs/tests/data/native_encoding/proto/0584.pb new file mode 100644 index 0000000000000..2096f1ea83e7f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0584.pb @@ -0,0 +1,6 @@ + +r +p, +*ꪤs7h󐱲)s’a¤~Œ>7]󠀁‰)要¨ˆ"@ +, +*ꪤs7h󐱲)s’a¤~Œ>7]󠀁‰)要¨ˆ:7~IE \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0585.pb b/lib/codecs/tests/data/native_encoding/proto/0585.pb new file mode 100644 index 0000000000000..787865cf0b40c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0585.pb @@ -0,0 +1,8 @@ + + + +0⁅ †cq򧫞Œ󇡋6>돠􏿿󰀀s< +4 􏿿*‰귈ꢘ=‷6䟈.]唡  +B¯2Yš¨6 󫒮/뽦D–󏙋-—iᾹ“1"¦𑂽>f{:"0󈸷𓘭œ/‰•ꊠ<3_/؄𑴭򵾈&⁕J,[J7󠀁‰ ‹灟96™®-￴W᤾罉؃F_?QA~6鷅(u\" + +0⁅ †cq򧫞Œ󇡋6>돠􏿿󰀀s< +4 􏿿*‰귈ꢘ=‷6䟈.]唡  +B¯2Yš¨6 󫒮/뽦D–󏙋-—iᾹ“1"¦𑂽>f{:"0󈸷𓘭œ/‰•ꊠ<3_/؄𑴭򵾈&⁕J,[J7󠀁‰ ‹灟96™®-￴W᤾罉؃F_?QA~6鷅(u\:7~^Z \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0586.pb b/lib/codecs/tests/data/native_encoding/proto/0586.pb new file mode 100644 index 0000000000000..3361d60a521f0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0586.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0587.pb b/lib/codecs/tests/data/native_encoding/proto/0587.pb new file mode 100644 index 0000000000000..4cd9b30c26766 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0587.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0588.pb b/lib/codecs/tests/data/native_encoding/proto/0588.pb new file mode 100644 index 0000000000000..4bfdf9558a4ce --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0588.pb @@ -0,0 +1,7 @@ + +3 +1 + + + ߍ]0" +0:7!wt?0ۨ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0589.pb b/lib/codecs/tests/data/native_encoding/proto/0589.pb new file mode 100644 index 0000000000000..2a122b15c356f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0589.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0590.pb b/lib/codecs/tests/data/native_encoding/proto/0590.pb new file mode 100644 index 0000000000000..950e64ec3a4e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0590.pb @@ -0,0 +1,6 @@ + +. +, + Օ޷f" + + Օ޷f:7!wt?=ca \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0591.pb b/lib/codecs/tests/data/native_encoding/proto/0591.pb new file mode 100644 index 0000000000000..ea4b86ab4ac2d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0591.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0592.pb b/lib/codecs/tests/data/native_encoding/proto/0592.pb new file mode 100644 index 0000000000000..e5000d34585b3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0592.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0593.pb b/lib/codecs/tests/data/native_encoding/proto/0593.pb new file mode 100644 index 0000000000000..8019ea5543b03 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0593.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0594.pb b/lib/codecs/tests/data/native_encoding/proto/0594.pb new file mode 100644 index 0000000000000..ab441e5360f66 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0594.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0595.pb b/lib/codecs/tests/data/native_encoding/proto/0595.pb new file mode 100644 index 0000000000000..d7734c4d28892 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0595.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0596.pb b/lib/codecs/tests/data/native_encoding/proto/0596.pb new file mode 100644 index 0000000000000..e0e4dda8629ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0596.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0597.pb b/lib/codecs/tests/data/native_encoding/proto/0597.pb new file mode 100644 index 0000000000000..efad971e5f61d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0597.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0598.pb b/lib/codecs/tests/data/native_encoding/proto/0598.pb new file mode 100644 index 0000000000000..f91d80761cfa7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0598.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0599.pb b/lib/codecs/tests/data/native_encoding/proto/0599.pb new file mode 100644 index 0000000000000..28ddad2e1210e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0599.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0600.pb b/lib/codecs/tests/data/native_encoding/proto/0600.pb new file mode 100644 index 0000000000000..2fca5454768f9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0600.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0601.pb b/lib/codecs/tests/data/native_encoding/proto/0601.pb new file mode 100644 index 0000000000000..ec10205650af2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0601.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0602.pb b/lib/codecs/tests/data/native_encoding/proto/0602.pb new file mode 100644 index 0000000000000..96e98e020e3bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0602.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0603.pb b/lib/codecs/tests/data/native_encoding/proto/0603.pb new file mode 100644 index 0000000000000..3b032e1f4fb24 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0603.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0604.pb b/lib/codecs/tests/data/native_encoding/proto/0604.pb new file mode 100644 index 0000000000000..e944b907b1446 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0604.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0605.pb b/lib/codecs/tests/data/native_encoding/proto/0605.pb new file mode 100644 index 0000000000000..ea8eeb4ada8fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0605.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0606.pb b/lib/codecs/tests/data/native_encoding/proto/0606.pb new file mode 100644 index 0000000000000..b8fac1e5c0ae1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0606.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0607.pb b/lib/codecs/tests/data/native_encoding/proto/0607.pb new file mode 100644 index 0000000000000..e84b82bdca3ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0607.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0608.pb b/lib/codecs/tests/data/native_encoding/proto/0608.pb new file mode 100644 index 0000000000000..dee1a5df7c1c0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0608.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0609.pb b/lib/codecs/tests/data/native_encoding/proto/0609.pb new file mode 100644 index 0000000000000..7b982f0f87631 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0609.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0610.pb b/lib/codecs/tests/data/native_encoding/proto/0610.pb new file mode 100644 index 0000000000000..6a798d11655c2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0610.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0611.pb b/lib/codecs/tests/data/native_encoding/proto/0611.pb new file mode 100644 index 0000000000000..ea6e0583b3d2a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0611.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0612.pb b/lib/codecs/tests/data/native_encoding/proto/0612.pb new file mode 100644 index 0000000000000..8566674caf7c6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0612.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0613.pb b/lib/codecs/tests/data/native_encoding/proto/0613.pb new file mode 100644 index 0000000000000..2b4b10f0f22b2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0613.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0614.pb b/lib/codecs/tests/data/native_encoding/proto/0614.pb new file mode 100644 index 0000000000000..679a9b3e7aafc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0614.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0615.pb b/lib/codecs/tests/data/native_encoding/proto/0615.pb new file mode 100644 index 0000000000000..04d7441b656f1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0615.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0616.pb b/lib/codecs/tests/data/native_encoding/proto/0616.pb new file mode 100644 index 0000000000000..8db63cab71bd0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0616.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0617.pb b/lib/codecs/tests/data/native_encoding/proto/0617.pb new file mode 100644 index 0000000000000..4e83c58ed6508 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0617.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0618.pb b/lib/codecs/tests/data/native_encoding/proto/0618.pb new file mode 100644 index 0000000000000..18e7a62c569df Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0618.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0619.pb b/lib/codecs/tests/data/native_encoding/proto/0619.pb new file mode 100644 index 0000000000000..8e1a113e7ef0a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0619.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0620.pb b/lib/codecs/tests/data/native_encoding/proto/0620.pb new file mode 100644 index 0000000000000..529f26517ea34 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0620.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0621.pb b/lib/codecs/tests/data/native_encoding/proto/0621.pb new file mode 100644 index 0000000000000..7fb9cf457b437 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0621.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0622.pb b/lib/codecs/tests/data/native_encoding/proto/0622.pb new file mode 100644 index 0000000000000..de776bbde8cc5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0622.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0623.pb b/lib/codecs/tests/data/native_encoding/proto/0623.pb new file mode 100644 index 0000000000000..765032fee3c72 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0623.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0624.pb b/lib/codecs/tests/data/native_encoding/proto/0624.pb new file mode 100644 index 0000000000000..c8b6b094596cb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0624.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0625.pb b/lib/codecs/tests/data/native_encoding/proto/0625.pb new file mode 100644 index 0000000000000..ce74883a5e1d4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0625.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0626.pb b/lib/codecs/tests/data/native_encoding/proto/0626.pb new file mode 100644 index 0000000000000..abd0ffe958c11 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0626.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0627.pb b/lib/codecs/tests/data/native_encoding/proto/0627.pb new file mode 100644 index 0000000000000..b9cd7247a4f04 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0627.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0628.pb b/lib/codecs/tests/data/native_encoding/proto/0628.pb new file mode 100644 index 0000000000000..dca08ab459c4d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0628.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0629.pb b/lib/codecs/tests/data/native_encoding/proto/0629.pb new file mode 100644 index 0000000000000..52476d4b93291 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0629.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0630.pb b/lib/codecs/tests/data/native_encoding/proto/0630.pb new file mode 100644 index 0000000000000..ae459d4290fdc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0630.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0631.pb b/lib/codecs/tests/data/native_encoding/proto/0631.pb new file mode 100644 index 0000000000000..c7397580c4322 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0631.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0632.pb b/lib/codecs/tests/data/native_encoding/proto/0632.pb new file mode 100644 index 0000000000000..407146bf5c4e7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0632.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0633.pb b/lib/codecs/tests/data/native_encoding/proto/0633.pb new file mode 100644 index 0000000000000..60eca942cc39b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0633.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0634.pb b/lib/codecs/tests/data/native_encoding/proto/0634.pb new file mode 100644 index 0000000000000..c83556f72dd22 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0634.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0635.pb b/lib/codecs/tests/data/native_encoding/proto/0635.pb new file mode 100644 index 0000000000000..0633c72ff399e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0635.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0636.pb b/lib/codecs/tests/data/native_encoding/proto/0636.pb new file mode 100644 index 0000000000000..deca459c56fc8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0636.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0637.pb b/lib/codecs/tests/data/native_encoding/proto/0637.pb new file mode 100644 index 0000000000000..da760aed31838 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0637.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0638.pb b/lib/codecs/tests/data/native_encoding/proto/0638.pb new file mode 100644 index 0000000000000..041811429e469 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0638.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0639.pb b/lib/codecs/tests/data/native_encoding/proto/0639.pb new file mode 100644 index 0000000000000..4dfd8202f7653 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0639.pb @@ -0,0 +1,9 @@ + + +yz +Zd +$&*؜鿅‡>+y< 3 !/’:뢈C"!£B›†;쬗8퍘䢛^ 􏿽鰧?|­2TaGeF +› $_ꛋ¦G\.6 鿷_Ÿ ©(曕% ‽Ž(⁃… 3x 0}nヽ/4 _¯񩞜㏬*¬' `؄¯ + +$&*؜鿅‡>+y< 3 !/’:뢈C"!£B›†;쬗8퍘䢛^ 􏿽鰧?|­2TaGeF +› $_ꛋ¦G\.6 鿷_Ÿ ©(曕% ‽Ž(⁃… 3x 0}nヽ/4 _¯񩞜㏬*¬' `؄¯:7LrңeXU \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0640.pb b/lib/codecs/tests/data/native_encoding/proto/0640.pb new file mode 100644 index 0000000000000..9885be226ef89 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0640.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0641.pb b/lib/codecs/tests/data/native_encoding/proto/0641.pb new file mode 100644 index 0000000000000..375c0addce139 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0641.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0642.pb b/lib/codecs/tests/data/native_encoding/proto/0642.pb new file mode 100644 index 0000000000000..a96921445da2a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0642.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0643.pb b/lib/codecs/tests/data/native_encoding/proto/0643.pb new file mode 100644 index 0000000000000..f113da5184571 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0643.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0644.pb b/lib/codecs/tests/data/native_encoding/proto/0644.pb new file mode 100644 index 0000000000000..7a6504dc4fffe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0644.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0645.pb b/lib/codecs/tests/data/native_encoding/proto/0645.pb new file mode 100644 index 0000000000000..c255b44e45c9f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0645.pb @@ -0,0 +1,6 @@ + +. +, + Řy" + + Řy:7RsQ{ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0646.pb b/lib/codecs/tests/data/native_encoding/proto/0646.pb new file mode 100644 index 0000000000000..a1c20c4293f17 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0646.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0647.pb b/lib/codecs/tests/data/native_encoding/proto/0647.pb new file mode 100644 index 0000000000000..1db1777024874 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0647.pb @@ -0,0 +1,9 @@ +X +V +bz +җB + + ٕ" +B + + ٕ:7SqQ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0648.pb b/lib/codecs/tests/data/native_encoding/proto/0648.pb new file mode 100644 index 0000000000000..f20b3434850d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0648.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0649.pb b/lib/codecs/tests/data/native_encoding/proto/0649.pb new file mode 100644 index 0000000000000..9645b55b36a62 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0649.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0650.pb b/lib/codecs/tests/data/native_encoding/proto/0650.pb new file mode 100644 index 0000000000000..d44ea1ea6c19f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0650.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0651.pb b/lib/codecs/tests/data/native_encoding/proto/0651.pb new file mode 100644 index 0000000000000..a0be61df53ea8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0651.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0652.pb b/lib/codecs/tests/data/native_encoding/proto/0652.pb new file mode 100644 index 0000000000000..e7272cf5189fb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0652.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0653.pb b/lib/codecs/tests/data/native_encoding/proto/0653.pb new file mode 100644 index 0000000000000..ddff05db928d1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0653.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0654.pb b/lib/codecs/tests/data/native_encoding/proto/0654.pb new file mode 100644 index 0000000000000..0bb1effb55fb1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0654.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0655.pb b/lib/codecs/tests/data/native_encoding/proto/0655.pb new file mode 100644 index 0000000000000..16b36f8f7555c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0655.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0656.pb b/lib/codecs/tests/data/native_encoding/proto/0656.pb new file mode 100644 index 0000000000000..5d0758c74b410 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0656.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0657.pb b/lib/codecs/tests/data/native_encoding/proto/0657.pb new file mode 100644 index 0000000000000..fe258b780ce3f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0657.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0658.pb b/lib/codecs/tests/data/native_encoding/proto/0658.pb new file mode 100644 index 0000000000000..9ae0daccef4be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0658.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0659.pb b/lib/codecs/tests/data/native_encoding/proto/0659.pb new file mode 100644 index 0000000000000..3cb1587d2e534 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0659.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0660.pb b/lib/codecs/tests/data/native_encoding/proto/0660.pb new file mode 100644 index 0000000000000..bf8047e28bbce Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0660.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0661.pb b/lib/codecs/tests/data/native_encoding/proto/0661.pb new file mode 100644 index 0000000000000..d12070d3fc36d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0661.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0662.pb b/lib/codecs/tests/data/native_encoding/proto/0662.pb new file mode 100644 index 0000000000000..b6b54f3e003e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0662.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0663.pb b/lib/codecs/tests/data/native_encoding/proto/0663.pb new file mode 100644 index 0000000000000..4f1919d70201b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0663.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0664.pb b/lib/codecs/tests/data/native_encoding/proto/0664.pb new file mode 100644 index 0000000000000..2f245529d553b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0664.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0665.pb b/lib/codecs/tests/data/native_encoding/proto/0665.pb new file mode 100644 index 0000000000000..a2a4a76d5a179 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0665.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0666.pb b/lib/codecs/tests/data/native_encoding/proto/0666.pb new file mode 100644 index 0000000000000..4f8cde16a2dde Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0666.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0667.pb b/lib/codecs/tests/data/native_encoding/proto/0667.pb new file mode 100644 index 0000000000000..b779acb35c362 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0667.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0668.pb b/lib/codecs/tests/data/native_encoding/proto/0668.pb new file mode 100644 index 0000000000000..a37a6d69a3c35 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0668.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0669.pb b/lib/codecs/tests/data/native_encoding/proto/0669.pb new file mode 100644 index 0000000000000..14e5841a6f1bd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0669.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0670.pb b/lib/codecs/tests/data/native_encoding/proto/0670.pb new file mode 100644 index 0000000000000..2fd7b79773030 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0670.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0671.pb b/lib/codecs/tests/data/native_encoding/proto/0671.pb new file mode 100644 index 0000000000000..d1a04fd0c286b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0671.pb @@ -0,0 +1,4 @@ + +, +* )|On" + )|On:7mvxe \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0672.pb b/lib/codecs/tests/data/native_encoding/proto/0672.pb new file mode 100644 index 0000000000000..9826f59d899ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0672.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0673.pb b/lib/codecs/tests/data/native_encoding/proto/0673.pb new file mode 100644 index 0000000000000..53c4c5cd9b355 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0673.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0674.pb b/lib/codecs/tests/data/native_encoding/proto/0674.pb new file mode 100644 index 0000000000000..8ae9cafebcf71 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0674.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0675.pb b/lib/codecs/tests/data/native_encoding/proto/0675.pb new file mode 100644 index 0000000000000..deb3614a8c7d5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0675.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0676.pb b/lib/codecs/tests/data/native_encoding/proto/0676.pb new file mode 100644 index 0000000000000..7e7f85dcd4965 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0676.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0677.pb b/lib/codecs/tests/data/native_encoding/proto/0677.pb new file mode 100644 index 0000000000000..d800cd8758fe1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0677.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0678.pb b/lib/codecs/tests/data/native_encoding/proto/0678.pb new file mode 100644 index 0000000000000..025b122eb5958 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0678.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0679.pb b/lib/codecs/tests/data/native_encoding/proto/0679.pb new file mode 100644 index 0000000000000..2b75dd40d78be --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0679.pb @@ -0,0 +1,4 @@ + +0 +. ̊" + ̊:7xtӓd{Q^ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0680.pb b/lib/codecs/tests/data/native_encoding/proto/0680.pb new file mode 100644 index 0000000000000..83ab6133a5ee8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0680.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0681.pb b/lib/codecs/tests/data/native_encoding/proto/0681.pb new file mode 100644 index 0000000000000..633ed359d25e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0681.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0682.pb b/lib/codecs/tests/data/native_encoding/proto/0682.pb new file mode 100644 index 0000000000000..f665e862cd544 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0682.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0683.pb b/lib/codecs/tests/data/native_encoding/proto/0683.pb new file mode 100644 index 0000000000000..9294491f6d763 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0683.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0684.pb b/lib/codecs/tests/data/native_encoding/proto/0684.pb new file mode 100644 index 0000000000000..a6b138f772bdf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0684.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0685.pb b/lib/codecs/tests/data/native_encoding/proto/0685.pb new file mode 100644 index 0000000000000..936a1437b12c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0685.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0686.pb b/lib/codecs/tests/data/native_encoding/proto/0686.pb new file mode 100644 index 0000000000000..a7dce15c4deb8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0686.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0687.pb b/lib/codecs/tests/data/native_encoding/proto/0687.pb new file mode 100644 index 0000000000000..83e29538d8183 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0687.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0688.pb b/lib/codecs/tests/data/native_encoding/proto/0688.pb new file mode 100644 index 0000000000000..ee0521b975deb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0688.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0689.pb b/lib/codecs/tests/data/native_encoding/proto/0689.pb new file mode 100644 index 0000000000000..b98c933530276 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0689.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0690.pb b/lib/codecs/tests/data/native_encoding/proto/0690.pb new file mode 100644 index 0000000000000..84329d2e58156 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0690.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0691.pb b/lib/codecs/tests/data/native_encoding/proto/0691.pb new file mode 100644 index 0000000000000..79c2448925114 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0691.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0692.pb b/lib/codecs/tests/data/native_encoding/proto/0692.pb new file mode 100644 index 0000000000000..b25d75227ff95 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0692.pb @@ -0,0 +1,17 @@ + +n +l + + +: + +v  B + + +( + +؂m￴: +  ݃ B + )k C@"! + B + )k C@:7{O?s \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0693.pb b/lib/codecs/tests/data/native_encoding/proto/0693.pb new file mode 100644 index 0000000000000..e77d260c49ab3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0693.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0694.pb b/lib/codecs/tests/data/native_encoding/proto/0694.pb new file mode 100644 index 0000000000000..7c47eb934b29e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0694.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0695.pb b/lib/codecs/tests/data/native_encoding/proto/0695.pb new file mode 100644 index 0000000000000..bc9f679445f2f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0695.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0696.pb b/lib/codecs/tests/data/native_encoding/proto/0696.pb new file mode 100644 index 0000000000000..4ef432b003166 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0696.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0697.pb b/lib/codecs/tests/data/native_encoding/proto/0697.pb new file mode 100644 index 0000000000000..6fa629ab1699b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0697.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0698.pb b/lib/codecs/tests/data/native_encoding/proto/0698.pb new file mode 100644 index 0000000000000..b38139684caa3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0698.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0699.pb b/lib/codecs/tests/data/native_encoding/proto/0699.pb new file mode 100644 index 0000000000000..0e5e7b254c4fe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0699.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0700.pb b/lib/codecs/tests/data/native_encoding/proto/0700.pb new file mode 100644 index 0000000000000..ec796552e8fda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0700.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0701.pb b/lib/codecs/tests/data/native_encoding/proto/0701.pb new file mode 100644 index 0000000000000..8516a200c1554 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0701.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0702.pb b/lib/codecs/tests/data/native_encoding/proto/0702.pb new file mode 100644 index 0000000000000..c208ec9a67618 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0702.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0703.pb b/lib/codecs/tests/data/native_encoding/proto/0703.pb new file mode 100644 index 0000000000000..3e11231fa66aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0703.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0704.pb b/lib/codecs/tests/data/native_encoding/proto/0704.pb new file mode 100644 index 0000000000000..2bf036de67e04 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0704.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0705.pb b/lib/codecs/tests/data/native_encoding/proto/0705.pb new file mode 100644 index 0000000000000..c9fb620ec60aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0705.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0706.pb b/lib/codecs/tests/data/native_encoding/proto/0706.pb new file mode 100644 index 0000000000000..b16aa05f19ada Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0706.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0707.pb b/lib/codecs/tests/data/native_encoding/proto/0707.pb new file mode 100644 index 0000000000000..11000de762daf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0707.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0708.pb b/lib/codecs/tests/data/native_encoding/proto/0708.pb new file mode 100644 index 0000000000000..a5aa572804f64 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0708.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0709.pb b/lib/codecs/tests/data/native_encoding/proto/0709.pb new file mode 100644 index 0000000000000..48f644abecbef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0709.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0710.pb b/lib/codecs/tests/data/native_encoding/proto/0710.pb new file mode 100644 index 0000000000000..394308c6c8ff0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0710.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0711.pb b/lib/codecs/tests/data/native_encoding/proto/0711.pb new file mode 100644 index 0000000000000..d26755a7b7ad8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0711.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0712.pb b/lib/codecs/tests/data/native_encoding/proto/0712.pb new file mode 100644 index 0000000000000..ffadcac0ffd3e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0712.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0713.pb b/lib/codecs/tests/data/native_encoding/proto/0713.pb new file mode 100644 index 0000000000000..d78996046875e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0713.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0714.pb b/lib/codecs/tests/data/native_encoding/proto/0714.pb new file mode 100644 index 0000000000000..d8c4c95456290 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0714.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0715.pb b/lib/codecs/tests/data/native_encoding/proto/0715.pb new file mode 100644 index 0000000000000..afc1a1938ff69 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0715.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0716.pb b/lib/codecs/tests/data/native_encoding/proto/0716.pb new file mode 100644 index 0000000000000..6ed210e56cb6e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0716.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0717.pb b/lib/codecs/tests/data/native_encoding/proto/0717.pb new file mode 100644 index 0000000000000..8e21dd74f040a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0717.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0718.pb b/lib/codecs/tests/data/native_encoding/proto/0718.pb new file mode 100644 index 0000000000000..160cdd105e97a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0718.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0719.pb b/lib/codecs/tests/data/native_encoding/proto/0719.pb new file mode 100644 index 0000000000000..acd6274b6aedc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0719.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0720.pb b/lib/codecs/tests/data/native_encoding/proto/0720.pb new file mode 100644 index 0000000000000..65f54c88d416c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0720.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0721.pb b/lib/codecs/tests/data/native_encoding/proto/0721.pb new file mode 100644 index 0000000000000..dfd8f0c1368c7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0721.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0722.pb b/lib/codecs/tests/data/native_encoding/proto/0722.pb new file mode 100644 index 0000000000000..59fd16838c496 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0722.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0723.pb b/lib/codecs/tests/data/native_encoding/proto/0723.pb new file mode 100644 index 0000000000000..347af30521677 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0723.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0724.pb b/lib/codecs/tests/data/native_encoding/proto/0724.pb new file mode 100644 index 0000000000000..7e4c2f5190a64 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0724.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0725.pb b/lib/codecs/tests/data/native_encoding/proto/0725.pb new file mode 100644 index 0000000000000..7a85a41320ff5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0725.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0726.pb b/lib/codecs/tests/data/native_encoding/proto/0726.pb new file mode 100644 index 0000000000000..876ac4e53b09b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0726.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0727.pb b/lib/codecs/tests/data/native_encoding/proto/0727.pb new file mode 100644 index 0000000000000..5942be702b133 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0727.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0728.pb b/lib/codecs/tests/data/native_encoding/proto/0728.pb new file mode 100644 index 0000000000000..95a49e8f7aefe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0728.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0729.pb b/lib/codecs/tests/data/native_encoding/proto/0729.pb new file mode 100644 index 0000000000000..3f296f65f6fda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0729.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0730.pb b/lib/codecs/tests/data/native_encoding/proto/0730.pb new file mode 100644 index 0000000000000..7738870f811bf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0730.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0731.pb b/lib/codecs/tests/data/native_encoding/proto/0731.pb new file mode 100644 index 0000000000000..5657502772349 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0731.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0732.pb b/lib/codecs/tests/data/native_encoding/proto/0732.pb new file mode 100644 index 0000000000000..15ff1fd0d61ca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0732.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0733.pb b/lib/codecs/tests/data/native_encoding/proto/0733.pb new file mode 100644 index 0000000000000..1cd2bc646d7f6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0733.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0734.pb b/lib/codecs/tests/data/native_encoding/proto/0734.pb new file mode 100644 index 0000000000000..b46a48363c427 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0734.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0735.pb b/lib/codecs/tests/data/native_encoding/proto/0735.pb new file mode 100644 index 0000000000000..15fa27704bc69 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0735.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0736.pb b/lib/codecs/tests/data/native_encoding/proto/0736.pb new file mode 100644 index 0000000000000..a1c83841c21e2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0736.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0737.pb b/lib/codecs/tests/data/native_encoding/proto/0737.pb new file mode 100644 index 0000000000000..a2b6f72e4e735 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0737.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0738.pb b/lib/codecs/tests/data/native_encoding/proto/0738.pb new file mode 100644 index 0000000000000..0d89e312cc497 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0738.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0739.pb b/lib/codecs/tests/data/native_encoding/proto/0739.pb new file mode 100644 index 0000000000000..1b3d5b38586c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0739.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0740.pb b/lib/codecs/tests/data/native_encoding/proto/0740.pb new file mode 100644 index 0000000000000..6bf7def9fb27f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0740.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0741.pb b/lib/codecs/tests/data/native_encoding/proto/0741.pb new file mode 100644 index 0000000000000..896a8ddf8e1b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0741.pb @@ -0,0 +1,9 @@ + +> +< + +¨xŽ +|&A + ş." + + ş.:7zS=o`" \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0742.pb b/lib/codecs/tests/data/native_encoding/proto/0742.pb new file mode 100644 index 0000000000000..5dd27335276d9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0742.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0743.pb b/lib/codecs/tests/data/native_encoding/proto/0743.pb new file mode 100644 index 0000000000000..e6e22f8010589 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0743.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0744.pb b/lib/codecs/tests/data/native_encoding/proto/0744.pb new file mode 100644 index 0000000000000..a271f99e2c4d3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0744.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0745.pb b/lib/codecs/tests/data/native_encoding/proto/0745.pb new file mode 100644 index 0000000000000..0bc13af5909cb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0745.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0746.pb b/lib/codecs/tests/data/native_encoding/proto/0746.pb new file mode 100644 index 0000000000000..c5ae1befbee51 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0746.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0747.pb b/lib/codecs/tests/data/native_encoding/proto/0747.pb new file mode 100644 index 0000000000000..4fe42679ec40c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0747.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0748.pb b/lib/codecs/tests/data/native_encoding/proto/0748.pb new file mode 100644 index 0000000000000..e107e372a3d92 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0748.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0749.pb b/lib/codecs/tests/data/native_encoding/proto/0749.pb new file mode 100644 index 0000000000000..14ff9f2cf585a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0749.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0750.pb b/lib/codecs/tests/data/native_encoding/proto/0750.pb new file mode 100644 index 0000000000000..d98caf44d9d00 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0750.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0751.pb b/lib/codecs/tests/data/native_encoding/proto/0751.pb new file mode 100644 index 0000000000000..3a4b8db6662f1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0751.pb @@ -0,0 +1,10 @@ + +D +B + +† + + +  +‡ ӑ" + ӑ:7u3Z`do \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0752.pb b/lib/codecs/tests/data/native_encoding/proto/0752.pb new file mode 100644 index 0000000000000..3ddf50e1a475f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0752.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0753.pb b/lib/codecs/tests/data/native_encoding/proto/0753.pb new file mode 100644 index 0000000000000..07ccc74724d12 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0753.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0754.pb b/lib/codecs/tests/data/native_encoding/proto/0754.pb new file mode 100644 index 0000000000000..6ec7fba65ddcf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0754.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0755.pb b/lib/codecs/tests/data/native_encoding/proto/0755.pb new file mode 100644 index 0000000000000..9d001a48985e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0755.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0756.pb b/lib/codecs/tests/data/native_encoding/proto/0756.pb new file mode 100644 index 0000000000000..8a41177bfa498 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0756.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0757.pb b/lib/codecs/tests/data/native_encoding/proto/0757.pb new file mode 100644 index 0000000000000..1ab5944536559 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0757.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0758.pb b/lib/codecs/tests/data/native_encoding/proto/0758.pb new file mode 100644 index 0000000000000..1b2bec1f0f4e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0758.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0759.pb b/lib/codecs/tests/data/native_encoding/proto/0759.pb new file mode 100644 index 0000000000000..db3be78610914 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0759.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0760.pb b/lib/codecs/tests/data/native_encoding/proto/0760.pb new file mode 100644 index 0000000000000..c0410d929ff16 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0760.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0761.pb b/lib/codecs/tests/data/native_encoding/proto/0761.pb new file mode 100644 index 0000000000000..dcfe94427c15e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0761.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0762.pb b/lib/codecs/tests/data/native_encoding/proto/0762.pb new file mode 100644 index 0000000000000..07e8e27261122 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0762.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0763.pb b/lib/codecs/tests/data/native_encoding/proto/0763.pb new file mode 100644 index 0000000000000..664ce22d6ac50 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0763.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0764.pb b/lib/codecs/tests/data/native_encoding/proto/0764.pb new file mode 100644 index 0000000000000..7ec460874faa7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0764.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0765.pb b/lib/codecs/tests/data/native_encoding/proto/0765.pb new file mode 100644 index 0000000000000..a13880cf35760 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0765.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0766.pb b/lib/codecs/tests/data/native_encoding/proto/0766.pb new file mode 100644 index 0000000000000..404f45db35435 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0766.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0767.pb b/lib/codecs/tests/data/native_encoding/proto/0767.pb new file mode 100644 index 0000000000000..639f0075d2dc5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0767.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0768.pb b/lib/codecs/tests/data/native_encoding/proto/0768.pb new file mode 100644 index 0000000000000..b711a33c9e8ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0768.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0769.pb b/lib/codecs/tests/data/native_encoding/proto/0769.pb new file mode 100644 index 0000000000000..ec25be6e08d8b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0769.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0770.pb b/lib/codecs/tests/data/native_encoding/proto/0770.pb new file mode 100644 index 0000000000000..9435f620d6dac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0770.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0771.pb b/lib/codecs/tests/data/native_encoding/proto/0771.pb new file mode 100644 index 0000000000000..3fa33e0ab48f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0771.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0772.pb b/lib/codecs/tests/data/native_encoding/proto/0772.pb new file mode 100644 index 0000000000000..0516c55e60a2b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0772.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0773.pb b/lib/codecs/tests/data/native_encoding/proto/0773.pb new file mode 100644 index 0000000000000..9f66f59b4a71e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0773.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0774.pb b/lib/codecs/tests/data/native_encoding/proto/0774.pb new file mode 100644 index 0000000000000..a5f4adbaea872 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0774.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0775.pb b/lib/codecs/tests/data/native_encoding/proto/0775.pb new file mode 100644 index 0000000000000..4f4523c564a75 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0775.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0776.pb b/lib/codecs/tests/data/native_encoding/proto/0776.pb new file mode 100644 index 0000000000000..6f9eca168f2d1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0776.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0777.pb b/lib/codecs/tests/data/native_encoding/proto/0777.pb new file mode 100644 index 0000000000000..92bcb01c9293b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0777.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0778.pb b/lib/codecs/tests/data/native_encoding/proto/0778.pb new file mode 100644 index 0000000000000..8c701dd67543a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0778.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0779.pb b/lib/codecs/tests/data/native_encoding/proto/0779.pb new file mode 100644 index 0000000000000..b2ba054269fa7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0779.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0780.pb b/lib/codecs/tests/data/native_encoding/proto/0780.pb new file mode 100644 index 0000000000000..a011681376ab3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0780.pb @@ -0,0 +1,11 @@ + + + + +> +kp¥H +F?⁞O㍜]؂$‰‹B؂’冰t闙 +(㔐,ᐌ‰%R0󠅎⁂U񖐟=^ 5‹,>]"\ +H +F?⁞O㍜]؂$‰‹B؂’冰t闙 +(㔐,ᐌ‰%R0󠅎⁂U񖐟=^ 5‹,>]:7ppf RT \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0781.pb b/lib/codecs/tests/data/native_encoding/proto/0781.pb new file mode 100644 index 0000000000000..0521c8a7146a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0781.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0782.pb b/lib/codecs/tests/data/native_encoding/proto/0782.pb new file mode 100644 index 0000000000000..3af7f195b15b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0782.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0783.pb b/lib/codecs/tests/data/native_encoding/proto/0783.pb new file mode 100644 index 0000000000000..62a8410978683 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0783.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0784.pb b/lib/codecs/tests/data/native_encoding/proto/0784.pb new file mode 100644 index 0000000000000..b7fbb70c3fd11 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0784.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0785.pb b/lib/codecs/tests/data/native_encoding/proto/0785.pb new file mode 100644 index 0000000000000..2a19aeafaa2b8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0785.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0786.pb b/lib/codecs/tests/data/native_encoding/proto/0786.pb new file mode 100644 index 0000000000000..e94307b0ff732 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0786.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0787.pb b/lib/codecs/tests/data/native_encoding/proto/0787.pb new file mode 100644 index 0000000000000..b0c5bcd2473ef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0787.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0788.pb b/lib/codecs/tests/data/native_encoding/proto/0788.pb new file mode 100644 index 0000000000000..f353f0cc3d9d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0788.pb @@ -0,0 +1,7 @@ + + +wz +Q +Ov򫾞@1₭!9,񛙉œs虹⁧g\[*,4X@†⁒绘]⁢￲ >&*4;§!󁓖4򗈔e +Q +Ov򫾞@1₭!9,񛙉œs虹⁧g\[*,4X@†⁒绘]⁢￲ >&*4;§!󁓖4򗈔:7|ìW \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0789.pb b/lib/codecs/tests/data/native_encoding/proto/0789.pb new file mode 100644 index 0000000000000..8e2e0ac2eb47b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0789.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0790.pb b/lib/codecs/tests/data/native_encoding/proto/0790.pb new file mode 100644 index 0000000000000..533fac0f8736e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0790.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0791.pb b/lib/codecs/tests/data/native_encoding/proto/0791.pb new file mode 100644 index 0000000000000..cf3b2f2f30df6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0791.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0792.pb b/lib/codecs/tests/data/native_encoding/proto/0792.pb new file mode 100644 index 0000000000000..9fe4ffd1de647 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0792.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0793.pb b/lib/codecs/tests/data/native_encoding/proto/0793.pb new file mode 100644 index 0000000000000..a2858c30882fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0793.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0794.pb b/lib/codecs/tests/data/native_encoding/proto/0794.pb new file mode 100644 index 0000000000000..bdfe8aac80166 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0794.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0795.pb b/lib/codecs/tests/data/native_encoding/proto/0795.pb new file mode 100644 index 0000000000000..19fc709720c62 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0795.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0796.pb b/lib/codecs/tests/data/native_encoding/proto/0796.pb new file mode 100644 index 0000000000000..2aae68caf4f20 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0796.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0797.pb b/lib/codecs/tests/data/native_encoding/proto/0797.pb new file mode 100644 index 0000000000000..92fa3224d1a7d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0797.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0798.pb b/lib/codecs/tests/data/native_encoding/proto/0798.pb new file mode 100644 index 0000000000000..278700159b1d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0798.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0799.pb b/lib/codecs/tests/data/native_encoding/proto/0799.pb new file mode 100644 index 0000000000000..262d42c70f0ff Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0799.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0800.pb b/lib/codecs/tests/data/native_encoding/proto/0800.pb new file mode 100644 index 0000000000000..697adad0cfe4c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0800.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0801.pb b/lib/codecs/tests/data/native_encoding/proto/0801.pb new file mode 100644 index 0000000000000..ac9a2bf3f8b8a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0801.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0802.pb b/lib/codecs/tests/data/native_encoding/proto/0802.pb new file mode 100644 index 0000000000000..7e5e20bbb825c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0802.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0803.pb b/lib/codecs/tests/data/native_encoding/proto/0803.pb new file mode 100644 index 0000000000000..4d4dade42873a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0803.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0804.pb b/lib/codecs/tests/data/native_encoding/proto/0804.pb new file mode 100644 index 0000000000000..da7974cbca427 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0804.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0805.pb b/lib/codecs/tests/data/native_encoding/proto/0805.pb new file mode 100644 index 0000000000000..b808249391dc2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0805.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0806.pb b/lib/codecs/tests/data/native_encoding/proto/0806.pb new file mode 100644 index 0000000000000..77312a5ea25fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0806.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0807.pb b/lib/codecs/tests/data/native_encoding/proto/0807.pb new file mode 100644 index 0000000000000..1c3cf5e8747b0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0807.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0808.pb b/lib/codecs/tests/data/native_encoding/proto/0808.pb new file mode 100644 index 0000000000000..35ebc78e8642d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0808.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0809.pb b/lib/codecs/tests/data/native_encoding/proto/0809.pb new file mode 100644 index 0000000000000..4135c52051d71 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0809.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0810.pb b/lib/codecs/tests/data/native_encoding/proto/0810.pb new file mode 100644 index 0000000000000..95333bae70917 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0810.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0811.pb b/lib/codecs/tests/data/native_encoding/proto/0811.pb new file mode 100644 index 0000000000000..903753256cff1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0811.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0812.pb b/lib/codecs/tests/data/native_encoding/proto/0812.pb new file mode 100644 index 0000000000000..b018dcd02e26f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0812.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0813.pb b/lib/codecs/tests/data/native_encoding/proto/0813.pb new file mode 100644 index 0000000000000..10f08ba502172 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0813.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0814.pb b/lib/codecs/tests/data/native_encoding/proto/0814.pb new file mode 100644 index 0000000000000..fb84ae7da6ba0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0814.pb @@ -0,0 +1,17 @@ + + +nď% : +4𳗛=L※卣@⨫y؁크( ۝-/_暉«p8"­^ +b*©𮵟񭈴œ-5_-3;8™\iX”©4®>&m7`&H^u滒(0>￸[\?䀖򼉨£8@[<"󯣿–^냇썟@㇫ˆ>I +753涤m‹(¨T^ +p>§․1${™絎#^RjX;>%Y:\齮4\" 1 +�#!K󸜈|󆉹~s +7m-.餌“"3￲ \7+7ž衳ኟ,|73[=걻fs…Z‥, 嚍¡ +_–쓕,‾5o_-!؃⪠Rš8™¯ ”Œ­Ꚅq@<-1w&xu㤮℥oz/­⁦^￶ 6逸5w®5_4ᤙ8 +5§5‹SjŸ/†ﮂ6৸ꫪ>%o򐄾⁢2ŽW򱛏gV󂥼ϊ + §颽«iU} +H¬$%} ⁨›†Ÿ,">£,򛖵 /! +;󝱶w}E“/�缞퍤¤`KP󗇥!¨󊔕 +/ 􀀀󃹒 m +񿗌H󚝤/<` 6e]󠀠&./["kZj 0 +0:7}w\ܝ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0815.pb b/lib/codecs/tests/data/native_encoding/proto/0815.pb new file mode 100644 index 0000000000000..f675a0e718ea1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0815.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0816.pb b/lib/codecs/tests/data/native_encoding/proto/0816.pb new file mode 100644 index 0000000000000..709a8440cdc5a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0816.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0817.pb b/lib/codecs/tests/data/native_encoding/proto/0817.pb new file mode 100644 index 0000000000000..59740c7a1b7ac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0817.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0818.pb b/lib/codecs/tests/data/native_encoding/proto/0818.pb new file mode 100644 index 0000000000000..b861bb746120c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0818.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0819.pb b/lib/codecs/tests/data/native_encoding/proto/0819.pb new file mode 100644 index 0000000000000..6cbe04aa783ac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0819.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0820.pb b/lib/codecs/tests/data/native_encoding/proto/0820.pb new file mode 100644 index 0000000000000..0f5a44e3f7ccc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0820.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0821.pb b/lib/codecs/tests/data/native_encoding/proto/0821.pb new file mode 100644 index 0000000000000..cb71e69268246 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0821.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0822.pb b/lib/codecs/tests/data/native_encoding/proto/0822.pb new file mode 100644 index 0000000000000..8c1dd07d11f2f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0822.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0823.pb b/lib/codecs/tests/data/native_encoding/proto/0823.pb new file mode 100644 index 0000000000000..f6109c53ab4d8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0823.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0824.pb b/lib/codecs/tests/data/native_encoding/proto/0824.pb new file mode 100644 index 0000000000000..35ff53322b483 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0824.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0825.pb b/lib/codecs/tests/data/native_encoding/proto/0825.pb new file mode 100644 index 0000000000000..e9bc77775f805 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0825.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0826.pb b/lib/codecs/tests/data/native_encoding/proto/0826.pb new file mode 100644 index 0000000000000..a7a9061444414 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0826.pb @@ -0,0 +1,7 @@ + +4 +2 +0 + ފɚ}" + + ފɚ}:7p  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0827.pb b/lib/codecs/tests/data/native_encoding/proto/0827.pb new file mode 100644 index 0000000000000..f2fa33b07a5a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0827.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0828.pb b/lib/codecs/tests/data/native_encoding/proto/0828.pb new file mode 100644 index 0000000000000..3c7be318964fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0828.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0829.pb b/lib/codecs/tests/data/native_encoding/proto/0829.pb new file mode 100644 index 0000000000000..2d2a625d707c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0829.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0830.pb b/lib/codecs/tests/data/native_encoding/proto/0830.pb new file mode 100644 index 0000000000000..08598d75e9c4f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0830.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0831.pb b/lib/codecs/tests/data/native_encoding/proto/0831.pb new file mode 100644 index 0000000000000..3db50e9af8ca7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0831.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0832.pb b/lib/codecs/tests/data/native_encoding/proto/0832.pb new file mode 100644 index 0000000000000..3e6156cc18ae9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0832.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0833.pb b/lib/codecs/tests/data/native_encoding/proto/0833.pb new file mode 100644 index 0000000000000..762514e7a0f5d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0833.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0834.pb b/lib/codecs/tests/data/native_encoding/proto/0834.pb new file mode 100644 index 0000000000000..fce55a40534a3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0834.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0835.pb b/lib/codecs/tests/data/native_encoding/proto/0835.pb new file mode 100644 index 0000000000000..b7af7a9c889f0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0835.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0836.pb b/lib/codecs/tests/data/native_encoding/proto/0836.pb new file mode 100644 index 0000000000000..65972c52ddf4e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0836.pb @@ -0,0 +1,12 @@ + + + + +0| +z/w⁨⬼Y]#[芧_󱤱3@25_8⌆>56󪍟67‹/0틲艉i† +<'&q¨D9‡򿈚€ꪻ󯣿) t-/낊™gY@ =­,”',呣؁‰ +W񐙯[" +| +z/w⁨⬼Y]#[芧_󱤱3@25_8⌆>56󪍟67‹/0틲艉i† +<'&q¨D9‡򿈚€ꪻ󯣿) t-/낊™gY@ =­,”',呣؁‰ +W񐙯[:7qpwlp- \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0837.pb b/lib/codecs/tests/data/native_encoding/proto/0837.pb new file mode 100644 index 0000000000000..0cb106ee37c99 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0837.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0838.pb b/lib/codecs/tests/data/native_encoding/proto/0838.pb new file mode 100644 index 0000000000000..979a19db14e2e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0838.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0839.pb b/lib/codecs/tests/data/native_encoding/proto/0839.pb new file mode 100644 index 0000000000000..bb37f68e2237a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0839.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0840.pb b/lib/codecs/tests/data/native_encoding/proto/0840.pb new file mode 100644 index 0000000000000..16fa5f6397704 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0840.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0841.pb b/lib/codecs/tests/data/native_encoding/proto/0841.pb new file mode 100644 index 0000000000000..cefeb3139c0f0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0841.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0842.pb b/lib/codecs/tests/data/native_encoding/proto/0842.pb new file mode 100644 index 0000000000000..4b461c0f566db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0842.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0843.pb b/lib/codecs/tests/data/native_encoding/proto/0843.pb new file mode 100644 index 0000000000000..9b4a8d76bd326 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0843.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0844.pb b/lib/codecs/tests/data/native_encoding/proto/0844.pb new file mode 100644 index 0000000000000..b5ffa76db9913 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0844.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0845.pb b/lib/codecs/tests/data/native_encoding/proto/0845.pb new file mode 100644 index 0000000000000..640df528a16dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0845.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0846.pb b/lib/codecs/tests/data/native_encoding/proto/0846.pb new file mode 100644 index 0000000000000..36e190041c714 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0846.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0847.pb b/lib/codecs/tests/data/native_encoding/proto/0847.pb new file mode 100644 index 0000000000000..700cfc55f2dcb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0847.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0848.pb b/lib/codecs/tests/data/native_encoding/proto/0848.pb new file mode 100644 index 0000000000000..4d44a335b7739 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0848.pb @@ -0,0 +1,6 @@ + + + +,򬨄|9󰀀ˆ􏿿}¬6  PF>ˡ&9󾡇'%⁝ (70,51j‽32 L쮱ª¦‱󿥈Y‰^^⁓+@⥲9.․깜x0l.oE5† 9£­®૲7⮧ ‰T&𕽲-‱m•<諒o.#e"©§珎16:Š<𼵦­‌⁣Œ W|E" + +,򬨄|9󰀀ˆ􏿿}¬6  PF>ˡ&9󾡇'%⁝ (70,51j‽32 L쮱ª¦‱󿥈Y‰^^⁓+@⥲9.․깜x0l.oE5† 9£­®૲7⮧ ‰T&𕽲-‱m•<諒o.#e"©§珎16:Š<𼵦­‌⁣Œ W|E:7pA_5 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0849.pb b/lib/codecs/tests/data/native_encoding/proto/0849.pb new file mode 100644 index 0000000000000..b5eb1f9231c63 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0849.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0850.pb b/lib/codecs/tests/data/native_encoding/proto/0850.pb new file mode 100644 index 0000000000000..876d9a45268d3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0850.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0851.pb b/lib/codecs/tests/data/native_encoding/proto/0851.pb new file mode 100644 index 0000000000000..711c5ec709865 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0851.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0852.pb b/lib/codecs/tests/data/native_encoding/proto/0852.pb new file mode 100644 index 0000000000000..4313af93e8fe4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0852.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0853.pb b/lib/codecs/tests/data/native_encoding/proto/0853.pb new file mode 100644 index 0000000000000..316ad4183c52a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0853.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0854.pb b/lib/codecs/tests/data/native_encoding/proto/0854.pb new file mode 100644 index 0000000000000..67d28750bfa6c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0854.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0855.pb b/lib/codecs/tests/data/native_encoding/proto/0855.pb new file mode 100644 index 0000000000000..9fede7a47c293 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0855.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0856.pb b/lib/codecs/tests/data/native_encoding/proto/0856.pb new file mode 100644 index 0000000000000..c90cf11e9b397 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0856.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0857.pb b/lib/codecs/tests/data/native_encoding/proto/0857.pb new file mode 100644 index 0000000000000..276117292a302 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0857.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0858.pb b/lib/codecs/tests/data/native_encoding/proto/0858.pb new file mode 100644 index 0000000000000..8f01087a0e7be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0858.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0859.pb b/lib/codecs/tests/data/native_encoding/proto/0859.pb new file mode 100644 index 0000000000000..56eb6e962f578 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0859.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0860.pb b/lib/codecs/tests/data/native_encoding/proto/0860.pb new file mode 100644 index 0000000000000..da60b589a34a2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0860.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0861.pb b/lib/codecs/tests/data/native_encoding/proto/0861.pb new file mode 100644 index 0000000000000..dd6253249fb4e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0861.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0862.pb b/lib/codecs/tests/data/native_encoding/proto/0862.pb new file mode 100644 index 0000000000000..4ad545b51b8cd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0862.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0863.pb b/lib/codecs/tests/data/native_encoding/proto/0863.pb new file mode 100644 index 0000000000000..c539d23ea1f69 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0863.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0864.pb b/lib/codecs/tests/data/native_encoding/proto/0864.pb new file mode 100644 index 0000000000000..b00e1eb76c4ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0864.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0865.pb b/lib/codecs/tests/data/native_encoding/proto/0865.pb new file mode 100644 index 0000000000000..a7c1e5bca843f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0865.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0866.pb b/lib/codecs/tests/data/native_encoding/proto/0866.pb new file mode 100644 index 0000000000000..e4e65916f396e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0866.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0867.pb b/lib/codecs/tests/data/native_encoding/proto/0867.pb new file mode 100644 index 0000000000000..098fbc8ff5453 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0867.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0868.pb b/lib/codecs/tests/data/native_encoding/proto/0868.pb new file mode 100644 index 0000000000000..139ac1ef015bf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0868.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0869.pb b/lib/codecs/tests/data/native_encoding/proto/0869.pb new file mode 100644 index 0000000000000..e42155a809342 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0869.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0870.pb b/lib/codecs/tests/data/native_encoding/proto/0870.pb new file mode 100644 index 0000000000000..df0cbb92fb5d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0870.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0871.pb b/lib/codecs/tests/data/native_encoding/proto/0871.pb new file mode 100644 index 0000000000000..209716b7ebc79 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0871.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0872.pb b/lib/codecs/tests/data/native_encoding/proto/0872.pb new file mode 100644 index 0000000000000..4904c820fc038 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0872.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0873.pb b/lib/codecs/tests/data/native_encoding/proto/0873.pb new file mode 100644 index 0000000000000..ffce48940682f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0873.pb @@ -0,0 +1,4 @@ + + +0" +0:7.sEV \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0874.pb b/lib/codecs/tests/data/native_encoding/proto/0874.pb new file mode 100644 index 0000000000000..d02f94ad180e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0874.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0875.pb b/lib/codecs/tests/data/native_encoding/proto/0875.pb new file mode 100644 index 0000000000000..c8177f8be3d73 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0875.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0876.pb b/lib/codecs/tests/data/native_encoding/proto/0876.pb new file mode 100644 index 0000000000000..16ce951f16a16 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0876.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0877.pb b/lib/codecs/tests/data/native_encoding/proto/0877.pb new file mode 100644 index 0000000000000..41b07241ba48d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0877.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0878.pb b/lib/codecs/tests/data/native_encoding/proto/0878.pb new file mode 100644 index 0000000000000..3971f70269584 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0878.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0879.pb b/lib/codecs/tests/data/native_encoding/proto/0879.pb new file mode 100644 index 0000000000000..796a84510a8ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0879.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0880.pb b/lib/codecs/tests/data/native_encoding/proto/0880.pb new file mode 100644 index 0000000000000..73c78e213aa23 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0880.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0881.pb b/lib/codecs/tests/data/native_encoding/proto/0881.pb new file mode 100644 index 0000000000000..a0e48d5bce59d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0881.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0882.pb b/lib/codecs/tests/data/native_encoding/proto/0882.pb new file mode 100644 index 0000000000000..c5b7c90df021c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0882.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0883.pb b/lib/codecs/tests/data/native_encoding/proto/0883.pb new file mode 100644 index 0000000000000..4452b32dfe472 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0883.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0884.pb b/lib/codecs/tests/data/native_encoding/proto/0884.pb new file mode 100644 index 0000000000000..4bf1a721401fb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0884.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0885.pb b/lib/codecs/tests/data/native_encoding/proto/0885.pb new file mode 100644 index 0000000000000..7afd1475d8e5d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0885.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0886.pb b/lib/codecs/tests/data/native_encoding/proto/0886.pb new file mode 100644 index 0000000000000..bf4847faa0289 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0886.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0887.pb b/lib/codecs/tests/data/native_encoding/proto/0887.pb new file mode 100644 index 0000000000000..e2d2ebe3238d8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0887.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0888.pb b/lib/codecs/tests/data/native_encoding/proto/0888.pb new file mode 100644 index 0000000000000..7571c0b47b38b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0888.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0889.pb b/lib/codecs/tests/data/native_encoding/proto/0889.pb new file mode 100644 index 0000000000000..e1165b81e2375 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0889.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0890.pb b/lib/codecs/tests/data/native_encoding/proto/0890.pb new file mode 100644 index 0000000000000..2355e4029d84a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0890.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0891.pb b/lib/codecs/tests/data/native_encoding/proto/0891.pb new file mode 100644 index 0000000000000..888f831b31270 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0891.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0892.pb b/lib/codecs/tests/data/native_encoding/proto/0892.pb new file mode 100644 index 0000000000000..4f0b1005eeb31 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0892.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0893.pb b/lib/codecs/tests/data/native_encoding/proto/0893.pb new file mode 100644 index 0000000000000..2cd1bb049c0f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0893.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0894.pb b/lib/codecs/tests/data/native_encoding/proto/0894.pb new file mode 100644 index 0000000000000..4ea2d82018486 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0894.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0895.pb b/lib/codecs/tests/data/native_encoding/proto/0895.pb new file mode 100644 index 0000000000000..120f702f1bbdd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0895.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0896.pb b/lib/codecs/tests/data/native_encoding/proto/0896.pb new file mode 100644 index 0000000000000..63e0988c96a8f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0896.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0897.pb b/lib/codecs/tests/data/native_encoding/proto/0897.pb new file mode 100644 index 0000000000000..92aad7fd3e0b1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0897.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0898.pb b/lib/codecs/tests/data/native_encoding/proto/0898.pb new file mode 100644 index 0000000000000..2fcbdef131436 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0898.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0899.pb b/lib/codecs/tests/data/native_encoding/proto/0899.pb new file mode 100644 index 0000000000000..6481c314e18dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0899.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0900.pb b/lib/codecs/tests/data/native_encoding/proto/0900.pb new file mode 100644 index 0000000000000..961d6ad1e72f5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0900.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0901.pb b/lib/codecs/tests/data/native_encoding/proto/0901.pb new file mode 100644 index 0000000000000..5974702a39ea9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0901.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0902.pb b/lib/codecs/tests/data/native_encoding/proto/0902.pb new file mode 100644 index 0000000000000..8406eacf633a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0902.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0903.pb b/lib/codecs/tests/data/native_encoding/proto/0903.pb new file mode 100644 index 0000000000000..d8fa664770e9a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0903.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0904.pb b/lib/codecs/tests/data/native_encoding/proto/0904.pb new file mode 100644 index 0000000000000..7a67258929a72 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0904.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0905.pb b/lib/codecs/tests/data/native_encoding/proto/0905.pb new file mode 100644 index 0000000000000..cbbaab536c282 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0905.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0906.pb b/lib/codecs/tests/data/native_encoding/proto/0906.pb new file mode 100644 index 0000000000000..82c11d3fde046 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0906.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0907.pb b/lib/codecs/tests/data/native_encoding/proto/0907.pb new file mode 100644 index 0000000000000..1576189f3a48e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0907.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0908.pb b/lib/codecs/tests/data/native_encoding/proto/0908.pb new file mode 100644 index 0000000000000..fe648d918e188 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0908.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0909.pb b/lib/codecs/tests/data/native_encoding/proto/0909.pb new file mode 100644 index 0000000000000..1a74d746d254b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0909.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0910.pb b/lib/codecs/tests/data/native_encoding/proto/0910.pb new file mode 100644 index 0000000000000..59590b0fabb8e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0910.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0911.pb b/lib/codecs/tests/data/native_encoding/proto/0911.pb new file mode 100644 index 0000000000000..6753b05d2a8cb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0911.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0912.pb b/lib/codecs/tests/data/native_encoding/proto/0912.pb new file mode 100644 index 0000000000000..6c21aea64b1f1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0912.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0913.pb b/lib/codecs/tests/data/native_encoding/proto/0913.pb new file mode 100644 index 0000000000000..9f4e36809380b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0913.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0914.pb b/lib/codecs/tests/data/native_encoding/proto/0914.pb new file mode 100644 index 0000000000000..6d9bfc4fcd95e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0914.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0915.pb b/lib/codecs/tests/data/native_encoding/proto/0915.pb new file mode 100644 index 0000000000000..1ec5210780f77 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0915.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0916.pb b/lib/codecs/tests/data/native_encoding/proto/0916.pb new file mode 100644 index 0000000000000..6b3347520cde1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0916.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0917.pb b/lib/codecs/tests/data/native_encoding/proto/0917.pb new file mode 100644 index 0000000000000..e8b00f54db2e4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0917.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0918.pb b/lib/codecs/tests/data/native_encoding/proto/0918.pb new file mode 100644 index 0000000000000..6af2f5c3ad7e7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0918.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0919.pb b/lib/codecs/tests/data/native_encoding/proto/0919.pb new file mode 100644 index 0000000000000..57f950ef831bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0919.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0920.pb b/lib/codecs/tests/data/native_encoding/proto/0920.pb new file mode 100644 index 0000000000000..e41ce0d5248a6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0920.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0921.pb b/lib/codecs/tests/data/native_encoding/proto/0921.pb new file mode 100644 index 0000000000000..44a1a0cf9ab4e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0921.pb @@ -0,0 +1,8 @@ + +. +, + +‾妆¯" + + +‾妆¯:7^zg2+ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0922.pb b/lib/codecs/tests/data/native_encoding/proto/0922.pb new file mode 100644 index 0000000000000..a3efbfdfe43da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0922.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0923.pb b/lib/codecs/tests/data/native_encoding/proto/0923.pb new file mode 100644 index 0000000000000..6c38f6e523409 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0923.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0924.pb b/lib/codecs/tests/data/native_encoding/proto/0924.pb new file mode 100644 index 0000000000000..8ea38993bb575 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0924.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0925.pb b/lib/codecs/tests/data/native_encoding/proto/0925.pb new file mode 100644 index 0000000000000..fc87c77e3d091 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0925.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0926.pb b/lib/codecs/tests/data/native_encoding/proto/0926.pb new file mode 100644 index 0000000000000..ae92e2f5a292d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0926.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0927.pb b/lib/codecs/tests/data/native_encoding/proto/0927.pb new file mode 100644 index 0000000000000..09f55536ce784 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0927.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0928.pb b/lib/codecs/tests/data/native_encoding/proto/0928.pb new file mode 100644 index 0000000000000..3756cf314f9c2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0928.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0929.pb b/lib/codecs/tests/data/native_encoding/proto/0929.pb new file mode 100644 index 0000000000000..b2a01511c48a1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0929.pb @@ -0,0 +1,6 @@ + + + +0‰芜Uﶵ0󹫴%′뛄-;¦؃ ˜Ƅ䓂@勫v⁧td࣌2R,𨧴ª‥bb¢"(򏽓¦$Š?‚ ~›􊃗–¬\@¥¢ ¨‡`i⁊“" + +0‰芜Uﶵ0󹫴%′뛄-;¦؃ ˜Ƅ䓂@勫v⁧td࣌2R,𨧴ª‥bb¢"(򏽓¦$Š?‚ ~›􊃗–¬\@¥¢ ¨‡`i⁊“:7gp'LCou \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/0930.pb b/lib/codecs/tests/data/native_encoding/proto/0930.pb new file mode 100644 index 0000000000000..c2eb01cecacdb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/0930.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/0931.pb b/lib/codecs/tests/data/native_encoding/proto/0931.pb new file mode 100644 index 0000000000000..c12e4bc4c8a76 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/0931.pb @@ -0,0 +1,4 @@ + +0 +. Âע" + Âע:7hu|?x+ +< +& +;: + +‰: + +: Ϟْ + +‰S ᧘ּ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0039.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0039.pb new file mode 100644 index 0000000000000..ec39691a1d480 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0039.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0040.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0040.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0040.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0041.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0041.pb new file mode 100644 index 0000000000000..711dd50566f6f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0041.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0042.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0042.pb new file mode 100644 index 0000000000000..afea57d918645 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0042.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0043.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0043.pb new file mode 100644 index 0000000000000..1a344fba9ddb8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0043.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0044.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0044.pb new file mode 100644 index 0000000000000..346fb8e8b2ba6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0044.pb @@ -0,0 +1,6 @@ +7 +5 +c +od +pk +ya * pΈXV@Zs \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0045.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0045.pb new file mode 100644 index 0000000000000..4ee5dbf8cf8a8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0045.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0046.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0046.pb new file mode 100644 index 0000000000000..410c3ed486aa6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0046.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0047.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0047.pb new file mode 100644 index 0000000000000..1131e79329a5b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0047.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0048.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0048.pb new file mode 100644 index 0000000000000..4d54fa18a5d89 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0048.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0049.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0049.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0049.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0050.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0050.pb new file mode 100644 index 0000000000000..056507766360a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0050.pb @@ -0,0 +1,5 @@ + + + + +a+30 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0051.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0051.pb new file mode 100644 index 0000000000000..df0f95d2b7bb1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0051.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0052.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0052.pb new file mode 100644 index 0000000000000..3dc69619d6b40 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0052.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0053.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0053.pb new file mode 100644 index 0000000000000..a8647b95bb2d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0053.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0054.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0054.pb new file mode 100644 index 0000000000000..9e47e4225a63d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0054.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0055.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0055.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0055.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0056.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0056.pb new file mode 100644 index 0000000000000..005bc43718e76 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0056.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0057.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0057.pb new file mode 100644 index 0000000000000..ef048de3d317c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0057.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0058.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0058.pb new file mode 100644 index 0000000000000..a876be70adcf5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0058.pb @@ -0,0 +1,9 @@ + +$ +" + +3 + J + +›v +_. \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0059.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0059.pb new file mode 100644 index 0000000000000..7d8f1750dc679 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0059.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0060.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0060.pb new file mode 100644 index 0000000000000..5e75260de2c06 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0060.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0061.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0061.pb new file mode 100644 index 0000000000000..8bf452ae5228b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0061.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0062.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0062.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0062.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0063.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0063.pb new file mode 100644 index 0000000000000..babbd8fb4deda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0063.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0064.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0064.pb new file mode 100644 index 0000000000000..f8f097b753c62 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0064.pb @@ -0,0 +1,6 @@ + + + + +']* +>2 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0065.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0065.pb new file mode 100644 index 0000000000000..33f3246c09f2f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0065.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0066.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0066.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0066.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0067.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0067.pb new file mode 100644 index 0000000000000..9409f482bab8a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0067.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0068.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0068.pb new file mode 100644 index 0000000000000..cd577da6929ac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0068.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0069.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0069.pb new file mode 100644 index 0000000000000..4a4f64ad1ca2b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0069.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0070.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0070.pb new file mode 100644 index 0000000000000..4e9b16d68988d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0070.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0071.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0071.pb new file mode 100644 index 0000000000000..0e422641a0d5c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0071.pb @@ -0,0 +1,3 @@ + + +vZ* i \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0072.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0072.pb new file mode 100644 index 0000000000000..225cc3bc416fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0072.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0073.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0073.pb new file mode 100644 index 0000000000000..8078b8607af9d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0073.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0074.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0074.pb new file mode 100644 index 0000000000000..cd63e20d68a4b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0074.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0075.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0075.pb new file mode 100644 index 0000000000000..0c2c9f2b2b796 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0075.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0076.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0076.pb new file mode 100644 index 0000000000000..9990c523e469c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0076.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0077.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0077.pb new file mode 100644 index 0000000000000..7b7f7a616c2e5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0077.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0078.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0078.pb new file mode 100644 index 0000000000000..25a7fc61a6b23 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0078.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0079.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0079.pb new file mode 100644 index 0000000000000..19234c393f3b2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0079.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0080.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0080.pb new file mode 100644 index 0000000000000..a36f7c3d8c4b3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0080.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0081.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0081.pb new file mode 100644 index 0000000000000..0e6797f4d40c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0081.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0082.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0082.pb new file mode 100644 index 0000000000000..c0a19d495bce2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0082.pb @@ -0,0 +1,5 @@ + + + + +$H ݹΙ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0083.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0083.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0083.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0084.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0084.pb new file mode 100644 index 0000000000000..8208b49627a09 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0084.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0085.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0085.pb new file mode 100644 index 0000000000000..285e41d8acb40 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0085.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0086.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0086.pb new file mode 100644 index 0000000000000..670fbef5c979f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0086.pb @@ -0,0 +1,6 @@ + + + + +S9𑂽 +‏ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0087.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0087.pb new file mode 100644 index 0000000000000..9cea3abc9c26b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0087.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0088.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0088.pb new file mode 100644 index 0000000000000..abe1c04a221e2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0088.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0089.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0089.pb new file mode 100644 index 0000000000000..bf74e4c5a864c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0089.pb @@ -0,0 +1,5 @@ + + + + +%Š \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0090.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0090.pb new file mode 100644 index 0000000000000..15d05434393f7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0090.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0091.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0091.pb new file mode 100644 index 0000000000000..4a8ae0ca36c04 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0091.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0092.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0092.pb new file mode 100644 index 0000000000000..325316e6c2deb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0092.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0093.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0093.pb new file mode 100644 index 0000000000000..ba09aa134905e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0093.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0094.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0094.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0094.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0095.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0095.pb new file mode 100644 index 0000000000000..f2184cadf25e0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0095.pb @@ -0,0 +1,5 @@ + + + +  +\妱7 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0096.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0096.pb new file mode 100644 index 0000000000000..05d3c9fcab435 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0096.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0097.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0097.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0097.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0098.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0098.pb new file mode 100644 index 0000000000000..3e29c334c1f16 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0098.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0099.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0099.pb new file mode 100644 index 0000000000000..286234d1fd2b5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0099.pb @@ -0,0 +1,6 @@ + + + + +:, +. \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0100.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0100.pb new file mode 100644 index 0000000000000..cb93903b90b6c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0100.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0101.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0101.pb new file mode 100644 index 0000000000000..fad3654982871 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0101.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0102.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0102.pb new file mode 100644 index 0000000000000..f880a0af7d8da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0102.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0103.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0103.pb new file mode 100644 index 0000000000000..42085b49b5611 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0103.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0104.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0104.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0104.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0105.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0105.pb new file mode 100644 index 0000000000000..b10cd72e9fbc7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0105.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0106.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0106.pb new file mode 100644 index 0000000000000..5273409a1c773 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0106.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0107.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0107.pb new file mode 100644 index 0000000000000..ebb92e031cf11 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0107.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0108.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0108.pb new file mode 100644 index 0000000000000..73c696adf48d8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0108.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0109.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0109.pb new file mode 100644 index 0000000000000..560744d941a35 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0109.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0110.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0110.pb new file mode 100644 index 0000000000000..7bc51a6b19113 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0110.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0111.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0111.pb new file mode 100644 index 0000000000000..a86526ce479a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0111.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0112.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0112.pb new file mode 100644 index 0000000000000..f74062de0513f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0112.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0113.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0113.pb new file mode 100644 index 0000000000000..a423dcf175852 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0113.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0114.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0114.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0114.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0115.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0115.pb new file mode 100644 index 0000000000000..bd65ad7d52a65 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0115.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0116.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0116.pb new file mode 100644 index 0000000000000..f1ed2e71c3e49 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0116.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0117.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0117.pb new file mode 100644 index 0000000000000..d8bf21862a285 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0117.pb @@ -0,0 +1,8 @@ + +) +' + +#6^ ͪ۶ + + n烄 +& \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0118.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0118.pb new file mode 100644 index 0000000000000..fe6bfa1b2e115 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0118.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0119.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0119.pb new file mode 100644 index 0000000000000..f2caeb60eecf7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0119.pb @@ -0,0 +1,6 @@ + + + + +c + ̂ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0120.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0120.pb new file mode 100644 index 0000000000000..499b62d8af054 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0120.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0121.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0121.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0121.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0122.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0122.pb new file mode 100644 index 0000000000000..a7f0cce76de2d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0122.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0123.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0123.pb new file mode 100644 index 0000000000000..aa0aa11943659 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0123.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0124.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0124.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0124.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0125.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0125.pb new file mode 100644 index 0000000000000..2df90c58c7c8f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0125.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0126.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0126.pb new file mode 100644 index 0000000000000..2d3a928b06f32 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0126.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0127.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0127.pb new file mode 100644 index 0000000000000..94be6bef79cdb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0127.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0128.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0128.pb new file mode 100644 index 0000000000000..be175b93fb90d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0128.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0129.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0129.pb new file mode 100644 index 0000000000000..d6762084028f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0129.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0130.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0130.pb new file mode 100644 index 0000000000000..56a74bd25d390 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0130.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0131.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0131.pb new file mode 100644 index 0000000000000..887726b3b30bb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0131.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0132.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0132.pb new file mode 100644 index 0000000000000..24ea7639e7b75 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0132.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0133.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0133.pb new file mode 100644 index 0000000000000..060ab6caa2758 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0133.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0134.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0134.pb new file mode 100644 index 0000000000000..28cf03dbc203c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0134.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0135.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0135.pb new file mode 100644 index 0000000000000..22f7f108e2fc3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0135.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0136.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0136.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0136.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0137.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0137.pb new file mode 100644 index 0000000000000..f91c0bbc7637a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0137.pb @@ -0,0 +1,3 @@ + + +a 2 sjZi \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0138.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0138.pb new file mode 100644 index 0000000000000..0d12a41a7d5a6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0138.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0139.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0139.pb new file mode 100644 index 0000000000000..1e228d3f6745a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0139.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0140.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0140.pb new file mode 100644 index 0000000000000..36eb96adde2d1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0140.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0141.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0141.pb new file mode 100644 index 0000000000000..b57837a70f419 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0141.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0142.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0142.pb new file mode 100644 index 0000000000000..37dab443570ca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0142.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0143.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0143.pb new file mode 100644 index 0000000000000..0373c9660eaf5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0143.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0144.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0144.pb new file mode 100644 index 0000000000000..bc19e902a2f6f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0144.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0145.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0145.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0145.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0146.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0146.pb new file mode 100644 index 0000000000000..aaacee771e486 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0146.pb @@ -0,0 +1,7 @@ + + + + +)󠀁: + +᪃ 0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0147.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0147.pb new file mode 100644 index 0000000000000..914356f079f98 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0147.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0148.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0148.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0148.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0149.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0149.pb new file mode 100644 index 0000000000000..fc041ed056dbb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0149.pb @@ -0,0 +1,10 @@ + +; +9 +! +Im񷣥: + +䇔> Ҽ + +\B + Ӭ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0150.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0150.pb new file mode 100644 index 0000000000000..792fca7a9e31b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0150.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0151.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0151.pb new file mode 100644 index 0000000000000..b688ee5bb26d9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0151.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0152.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0152.pb new file mode 100644 index 0000000000000..313e9ec3a3e17 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0152.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0153.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0153.pb new file mode 100644 index 0000000000000..993fce3be6dd3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0153.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0154.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0154.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0154.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0155.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0155.pb new file mode 100644 index 0000000000000..074f805857ac5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0155.pb @@ -0,0 +1,7 @@ + + + + +B + + \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0156.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0156.pb new file mode 100644 index 0000000000000..d480d3919d67c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0156.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0157.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0157.pb new file mode 100644 index 0000000000000..c0fe9a246d14d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0157.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0158.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0158.pb new file mode 100644 index 0000000000000..e448ff2f88449 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0158.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0159.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0159.pb new file mode 100644 index 0000000000000..701334b64312a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0159.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0160.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0160.pb new file mode 100644 index 0000000000000..92842fc9fcd71 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0160.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0161.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0161.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0161.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0162.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0162.pb new file mode 100644 index 0000000000000..3b5b4156327f6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0162.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0163.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0163.pb new file mode 100644 index 0000000000000..4fd3e17839eef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0163.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0164.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0164.pb new file mode 100644 index 0000000000000..485f8640ddea3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0164.pb @@ -0,0 +1,6 @@ + + + + +i +… \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0165.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0165.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0165.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0166.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0166.pb new file mode 100644 index 0000000000000..4dea540ce9f8c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0166.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0167.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0167.pb new file mode 100644 index 0000000000000..1254719471c66 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0167.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0168.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0168.pb new file mode 100644 index 0000000000000..34ecc534d88c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0168.pb @@ -0,0 +1,6 @@ + + + + +IK + S \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0169.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0169.pb new file mode 100644 index 0000000000000..210c358b4bb1e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0169.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0170.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0170.pb new file mode 100644 index 0000000000000..fbf324d72eeac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0170.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0171.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0171.pb new file mode 100644 index 0000000000000..87c96d8c3cdd5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0171.pb @@ -0,0 +1,12 @@ + +. +, + +Ž + ג + + +t‸;: + + +󓃰0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0172.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0172.pb new file mode 100644 index 0000000000000..8705285d645ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0172.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0173.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0173.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0173.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0174.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0174.pb new file mode 100644 index 0000000000000..87950ace54dfe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0174.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0175.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0175.pb new file mode 100644 index 0000000000000..ea1b6dbedde3e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0175.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0176.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0176.pb new file mode 100644 index 0000000000000..d25ed30fc664f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0176.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0177.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0177.pb new file mode 100644 index 0000000000000..4c58aa738d157 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0177.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0178.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0178.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0178.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0179.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0179.pb new file mode 100644 index 0000000000000..2984c6a47654f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0179.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0180.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0180.pb new file mode 100644 index 0000000000000..4493e8001061f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0180.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0181.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0181.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0181.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0182.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0182.pb new file mode 100644 index 0000000000000..4433c9dcbfa85 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0182.pb @@ -0,0 +1,5 @@ + + + + +¯0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0183.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0183.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0183.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0184.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0184.pb new file mode 100644 index 0000000000000..aa0aa11943659 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0184.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0185.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0185.pb new file mode 100644 index 0000000000000..543d0306f3281 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0185.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0186.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0186.pb new file mode 100644 index 0000000000000..f5c074562329b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0186.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0187.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0187.pb new file mode 100644 index 0000000000000..9ba2246be0221 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0187.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0188.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0188.pb new file mode 100644 index 0000000000000..9d931f9ddc451 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0188.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0189.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0189.pb new file mode 100644 index 0000000000000..973dd2e4cd7f5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0189.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0190.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0190.pb new file mode 100644 index 0000000000000..f78b0b6ec1f87 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0190.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0191.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0191.pb new file mode 100644 index 0000000000000..1ba1d2d12d52b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0191.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0192.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0192.pb new file mode 100644 index 0000000000000..d1305cbe790cd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0192.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0193.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0193.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0193.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0194.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0194.pb new file mode 100644 index 0000000000000..ed3f7d84f687b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0194.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0195.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0195.pb new file mode 100644 index 0000000000000..e7872d5dd9ece Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0195.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0196.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0196.pb new file mode 100644 index 0000000000000..9ce3bab78b40a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0196.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0197.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0197.pb new file mode 100644 index 0000000000000..ecd47353fa4cc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0197.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0198.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0198.pb new file mode 100644 index 0000000000000..f09f5cfac49a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0198.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0199.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0199.pb new file mode 100644 index 0000000000000..c157f4b383a7c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0199.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0200.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0200.pb new file mode 100644 index 0000000000000..9e5ca5be38564 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0200.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0201.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0201.pb new file mode 100644 index 0000000000000..ff2e221350e2d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0201.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0202.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0202.pb new file mode 100644 index 0000000000000..747fb7acc3a63 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0202.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0203.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0203.pb new file mode 100644 index 0000000000000..8964debbc3676 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0203.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0204.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0204.pb new file mode 100644 index 0000000000000..e12c4ac1130be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0204.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0205.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0205.pb new file mode 100644 index 0000000000000..c4fb445d29459 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0205.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0206.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0206.pb new file mode 100644 index 0000000000000..9c92a7a5e3c9c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0206.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0207.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0207.pb new file mode 100644 index 0000000000000..783ab9e649371 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0207.pb @@ -0,0 +1,8 @@ + + + + + 7: + +- +w \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0208.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0208.pb new file mode 100644 index 0000000000000..c4171738f7b09 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0208.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0209.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0209.pb new file mode 100644 index 0000000000000..6c146f3d4f3e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0209.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0210.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0210.pb new file mode 100644 index 0000000000000..351935ce7ab46 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0210.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0211.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0211.pb new file mode 100644 index 0000000000000..c7f880583553e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0211.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0212.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0212.pb new file mode 100644 index 0000000000000..43d00823c8c34 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0212.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0213.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0213.pb new file mode 100644 index 0000000000000..5af2639e8352a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0213.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0214.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0214.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0214.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0215.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0215.pb new file mode 100644 index 0000000000000..5a88dfe4fa286 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0215.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0216.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0216.pb new file mode 100644 index 0000000000000..0af676d5605f4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0216.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0217.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0217.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0217.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0218.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0218.pb new file mode 100644 index 0000000000000..5cda15f0b9404 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0218.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0219.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0219.pb new file mode 100644 index 0000000000000..ab0548885c737 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0219.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0220.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0220.pb new file mode 100644 index 0000000000000..dc6477c1f0cfe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0220.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0221.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0221.pb new file mode 100644 index 0000000000000..93c21c92d7c71 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0221.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0222.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0222.pb new file mode 100644 index 0000000000000..0b3bd4a2dcb5a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0222.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0223.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0223.pb new file mode 100644 index 0000000000000..9e10bb7f79cb8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0223.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0224.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0224.pb new file mode 100644 index 0000000000000..fdc1c652eb6b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0224.pb @@ -0,0 +1,5 @@ + + + + +> )Khq@ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0225.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0225.pb new file mode 100644 index 0000000000000..6cec34ffe1621 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0225.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0226.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0226.pb new file mode 100644 index 0000000000000..35123880c0d3c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0226.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0227.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0227.pb new file mode 100644 index 0000000000000..90e2f9db27692 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0227.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0228.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0228.pb new file mode 100644 index 0000000000000..ef9deeed81002 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0228.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0229.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0229.pb new file mode 100644 index 0000000000000..cb96d6028be72 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0229.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0230.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0230.pb new file mode 100644 index 0000000000000..dd2d3606d5d4e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0230.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0231.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0231.pb new file mode 100644 index 0000000000000..8383e213651d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0231.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0232.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0232.pb new file mode 100644 index 0000000000000..5111800c4eb51 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0232.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0233.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0233.pb new file mode 100644 index 0000000000000..1d9d16db6755a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0233.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0234.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0234.pb new file mode 100644 index 0000000000000..fafb1c72a822d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0234.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0235.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0235.pb new file mode 100644 index 0000000000000..998e1745feabb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0235.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0236.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0236.pb new file mode 100644 index 0000000000000..84164aca63983 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0236.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0237.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0237.pb new file mode 100644 index 0000000000000..dfcf013098fab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0237.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0238.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0238.pb new file mode 100644 index 0000000000000..9d7813b7972cb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0238.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0239.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0239.pb new file mode 100644 index 0000000000000..2ece5a82538ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0239.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0240.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0240.pb new file mode 100644 index 0000000000000..db924c106b53b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0240.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0241.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0241.pb new file mode 100644 index 0000000000000..fbea1e3f56ddd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0241.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0242.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0242.pb new file mode 100644 index 0000000000000..de8b7106b5a25 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0242.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0243.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0243.pb new file mode 100644 index 0000000000000..deaebae77a62f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0243.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0244.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0244.pb new file mode 100644 index 0000000000000..eee6515740697 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0244.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0245.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0245.pb new file mode 100644 index 0000000000000..88d3904a28f54 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0245.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0246.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0246.pb new file mode 100644 index 0000000000000..27a6a25f51b76 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0246.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0247.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0247.pb new file mode 100644 index 0000000000000..427471781bbf5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0247.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0248.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0248.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0248.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0249.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0249.pb new file mode 100644 index 0000000000000..a7b9367735032 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0249.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0250.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0250.pb new file mode 100644 index 0000000000000..bd077be11d594 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0250.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0251.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0251.pb new file mode 100644 index 0000000000000..60b36d8626d5a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0251.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0252.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0252.pb new file mode 100644 index 0000000000000..8ea14254d65da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0252.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0253.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0253.pb new file mode 100644 index 0000000000000..db8ac856075e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0253.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0254.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0254.pb new file mode 100644 index 0000000000000..f15936f705edf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0254.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0255.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0255.pb new file mode 100644 index 0000000000000..d0923bb46a7ae --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0255.pb @@ -0,0 +1,6 @@ + + + + +? +‖ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0256.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0256.pb new file mode 100644 index 0000000000000..3ca0e154daf5e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0256.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0257.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0257.pb new file mode 100644 index 0000000000000..29a5e2c537a70 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0257.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0258.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0258.pb new file mode 100644 index 0000000000000..6f4e93f0b61af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0258.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0259.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0259.pb new file mode 100644 index 0000000000000..2c0ef311824a4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0259.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0260.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0260.pb new file mode 100644 index 0000000000000..8c6a28980f9e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0260.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0261.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0261.pb new file mode 100644 index 0000000000000..8bfdde8fb196e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0261.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0262.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0262.pb new file mode 100644 index 0000000000000..889a484a582f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0262.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0263.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0263.pb new file mode 100644 index 0000000000000..fb8835cfa9389 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0263.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0264.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0264.pb new file mode 100644 index 0000000000000..876abd19fb1aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0264.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0265.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0265.pb new file mode 100644 index 0000000000000..fb10350d6e7db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0265.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0266.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0266.pb new file mode 100644 index 0000000000000..0ade4f5cb9741 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0266.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0267.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0267.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0267.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0268.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0268.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0268.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0269.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0269.pb new file mode 100644 index 0000000000000..e5a686c983063 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0269.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0270.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0270.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0270.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0271.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0271.pb new file mode 100644 index 0000000000000..3d3ff9504769c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0271.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0272.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0272.pb new file mode 100644 index 0000000000000..4544fcda8ed00 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0272.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0273.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0273.pb new file mode 100644 index 0000000000000..47b75eea43d99 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0273.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0274.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0274.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0274.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0275.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0275.pb new file mode 100644 index 0000000000000..86936135ba912 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0275.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0276.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0276.pb new file mode 100644 index 0000000000000..0d63a92bb356e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0276.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0277.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0277.pb new file mode 100644 index 0000000000000..0aacf6fd0f7c6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0277.pb @@ -0,0 +1,5 @@ +3 +1 +a +af +ja *  /B@ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0278.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0278.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0278.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0279.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0279.pb new file mode 100644 index 0000000000000..4fd64c556a6b6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0279.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0280.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0280.pb new file mode 100644 index 0000000000000..07d729aa7f45b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0280.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0281.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0281.pb new file mode 100644 index 0000000000000..a141c6bec9c00 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0281.pb @@ -0,0 +1,5 @@ + + + + +k  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0282.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0282.pb new file mode 100644 index 0000000000000..cc142bfd0d58c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0282.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0283.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0283.pb new file mode 100644 index 0000000000000..1e42b98290d56 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0283.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0284.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0284.pb new file mode 100644 index 0000000000000..03e16bef8c6ed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0284.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0285.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0285.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0285.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0286.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0286.pb new file mode 100644 index 0000000000000..af76c90a77e37 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0286.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0287.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0287.pb new file mode 100644 index 0000000000000..77bc42d4b6e2b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0287.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0288.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0288.pb new file mode 100644 index 0000000000000..6d060bb0c5b2a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0288.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0289.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0289.pb new file mode 100644 index 0000000000000..41e62d1c161a4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0289.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0290.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0290.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0290.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0291.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0291.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0291.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0292.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0292.pb new file mode 100644 index 0000000000000..4848de4aa6ccc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0292.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0293.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0293.pb new file mode 100644 index 0000000000000..46a9c2ecc3ae9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0293.pb @@ -0,0 +1,7 @@ + +$ +" + +j:: + +’¤䟤 養 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0294.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0294.pb new file mode 100644 index 0000000000000..20457fe968ab7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0294.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0295.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0295.pb new file mode 100644 index 0000000000000..1fc26efa363e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0295.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0296.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0296.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0296.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0297.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0297.pb new file mode 100644 index 0000000000000..63c779adf58dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0297.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0298.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0298.pb new file mode 100644 index 0000000000000..641087eb959bf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0298.pb @@ -0,0 +1,5 @@ + + + + +B0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0299.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0299.pb new file mode 100644 index 0000000000000..7e1d156a4959e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0299.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0300.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0300.pb new file mode 100644 index 0000000000000..0d1501ec9b2c8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0300.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0301.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0301.pb new file mode 100644 index 0000000000000..a634361b23fff Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0301.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0302.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0302.pb new file mode 100644 index 0000000000000..b2aacc13bc80b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0302.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0303.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0303.pb new file mode 100644 index 0000000000000..aa2c3f098b247 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0303.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0304.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0304.pb new file mode 100644 index 0000000000000..1694b640e2829 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0304.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0305.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0305.pb new file mode 100644 index 0000000000000..ccb5aa34e0693 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0305.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0306.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0306.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0306.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0307.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0307.pb new file mode 100644 index 0000000000000..275cce9a70de0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0307.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0308.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0308.pb new file mode 100644 index 0000000000000..743af5429adbd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0308.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0309.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0309.pb new file mode 100644 index 0000000000000..658a978fc3d44 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0309.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0310.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0310.pb new file mode 100644 index 0000000000000..7fa67ba3a860e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0310.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0311.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0311.pb new file mode 100644 index 0000000000000..7e8625fce9159 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0311.pb @@ -0,0 +1,7 @@ + + + + + +\ +< \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0312.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0312.pb new file mode 100644 index 0000000000000..37184ba0ad21c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0312.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0313.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0313.pb new file mode 100644 index 0000000000000..74059a07092b2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0313.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0314.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0314.pb new file mode 100644 index 0000000000000..64aa00de04b8a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0314.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0315.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0315.pb new file mode 100644 index 0000000000000..404981e5a7378 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0315.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0316.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0316.pb new file mode 100644 index 0000000000000..3f3efb11c3fa3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0316.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0317.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0317.pb new file mode 100644 index 0000000000000..796633c12b79a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0317.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0318.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0318.pb new file mode 100644 index 0000000000000..914356f079f98 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0318.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0319.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0319.pb new file mode 100644 index 0000000000000..72ff4866ce1a6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0319.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0320.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0320.pb new file mode 100644 index 0000000000000..730f4f3bd7e5d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0320.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0321.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0321.pb new file mode 100644 index 0000000000000..d6dbabe40b833 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0321.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0322.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0322.pb new file mode 100644 index 0000000000000..1bc464862ef4f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0322.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0323.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0323.pb new file mode 100644 index 0000000000000..ca575b7567878 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0323.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0324.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0324.pb new file mode 100644 index 0000000000000..812829407b88e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0324.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0325.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0325.pb new file mode 100644 index 0000000000000..c40a86a8804c3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0325.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0326.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0326.pb new file mode 100644 index 0000000000000..774303084b739 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0326.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0327.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0327.pb new file mode 100644 index 0000000000000..4e268d70e2741 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0327.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0328.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0328.pb new file mode 100644 index 0000000000000..8533bbcc26594 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0328.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0329.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0329.pb new file mode 100644 index 0000000000000..88bfe6be79562 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0329.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0330.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0330.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0330.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0331.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0331.pb new file mode 100644 index 0000000000000..aaa56e95f5c50 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0331.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0332.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0332.pb new file mode 100644 index 0000000000000..aa0aa11943659 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0332.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0333.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0333.pb new file mode 100644 index 0000000000000..fc556a7369784 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0333.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0334.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0334.pb new file mode 100644 index 0000000000000..797be81b6140b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0334.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0335.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0335.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0335.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0336.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0336.pb new file mode 100644 index 0000000000000..9f87e9ebf8f3f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0336.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0337.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0337.pb new file mode 100644 index 0000000000000..d65fb9de487b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0337.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0338.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0338.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0338.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0339.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0339.pb new file mode 100644 index 0000000000000..225cc3bc416fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0339.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0340.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0340.pb new file mode 100644 index 0000000000000..dd1b3fe735b85 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0340.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0341.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0341.pb new file mode 100644 index 0000000000000..357d6c5cf7280 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0341.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0342.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0342.pb new file mode 100644 index 0000000000000..a385f45bda93e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0342.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0343.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0343.pb new file mode 100644 index 0000000000000..b2549ef283bb9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0343.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0344.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0344.pb new file mode 100644 index 0000000000000..47bcb61ad4718 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0344.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0345.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0345.pb new file mode 100644 index 0000000000000..da4b76d62fdad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0345.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0346.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0346.pb new file mode 100644 index 0000000000000..0c3e5a183c12b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0346.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0347.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0347.pb new file mode 100644 index 0000000000000..c8adbc214d8f6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0347.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0348.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0348.pb new file mode 100644 index 0000000000000..9ae26e39c6d58 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0348.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0349.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0349.pb new file mode 100644 index 0000000000000..3b828749391fb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0349.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0350.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0350.pb new file mode 100644 index 0000000000000..b8011be9b9881 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0350.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0351.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0351.pb new file mode 100644 index 0000000000000..4d14fa24d618c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0351.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0352.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0352.pb new file mode 100644 index 0000000000000..b78f638ed0840 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0352.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0353.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0353.pb new file mode 100644 index 0000000000000..082b417c8cbd5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0353.pb @@ -0,0 +1,7 @@ + + + +0 + + +  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0354.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0354.pb new file mode 100644 index 0000000000000..aa0aa11943659 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0354.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0355.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0355.pb new file mode 100644 index 0000000000000..420e0fe357b17 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0355.pb @@ -0,0 +1,10 @@ + +( +& + + 譧= + + ￵¨ + +f + 귊ѩ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0356.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0356.pb new file mode 100644 index 0000000000000..3594bfea8eea0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0356.pb @@ -0,0 +1,5 @@ + + + + +$񥓴[0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0357.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0357.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0357.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0358.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0358.pb new file mode 100644 index 0000000000000..0827c0a2649b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0358.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0359.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0359.pb new file mode 100644 index 0000000000000..d58d09747efa7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0359.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0360.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0360.pb new file mode 100644 index 0000000000000..6a5099ccd5fd3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0360.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0361.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0361.pb new file mode 100644 index 0000000000000..6e51702095230 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0361.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0362.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0362.pb new file mode 100644 index 0000000000000..ef8aa948f8450 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0362.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0363.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0363.pb new file mode 100644 index 0000000000000..c04f9f6d58097 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0363.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0364.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0364.pb new file mode 100644 index 0000000000000..844eb54ad1e60 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0364.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0365.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0365.pb new file mode 100644 index 0000000000000..3e93e35744b68 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0365.pb @@ -0,0 +1,4 @@ + + + +   \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0366.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0366.pb new file mode 100644 index 0000000000000..1511b5c910ac8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0366.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0367.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0367.pb new file mode 100644 index 0000000000000..2215d5e312c7f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0367.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0368.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0368.pb new file mode 100644 index 0000000000000..5435e5e2b4472 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0368.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0369.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0369.pb new file mode 100644 index 0000000000000..a24361ca610b5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0369.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0370.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0370.pb new file mode 100644 index 0000000000000..f6cf986fb620b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0370.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0371.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0371.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0371.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0372.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0372.pb new file mode 100644 index 0000000000000..2a1b07da38fe1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0372.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0373.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0373.pb new file mode 100644 index 0000000000000..f49672d96e899 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0373.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0374.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0374.pb new file mode 100644 index 0000000000000..dbb4a95858c51 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0374.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0375.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0375.pb new file mode 100644 index 0000000000000..2999b09557fec Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0375.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0376.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0376.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0376.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0377.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0377.pb new file mode 100644 index 0000000000000..e9105dccef5eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0377.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0378.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0378.pb new file mode 100644 index 0000000000000..1e95bfd7a850b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0378.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0379.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0379.pb new file mode 100644 index 0000000000000..d6f0f5be39b37 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0379.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0380.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0380.pb new file mode 100644 index 0000000000000..5221403c800ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0380.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0381.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0381.pb new file mode 100644 index 0000000000000..68f5c5135ba95 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0381.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0382.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0382.pb new file mode 100644 index 0000000000000..57ab0c255632c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0382.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0383.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0383.pb new file mode 100644 index 0000000000000..a902a133f5027 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0383.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0384.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0384.pb new file mode 100644 index 0000000000000..502871e8ec5f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0384.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0385.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0385.pb new file mode 100644 index 0000000000000..9a8f89fc741c0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0385.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0386.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0386.pb new file mode 100644 index 0000000000000..aa950991b2457 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0386.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0387.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0387.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0387.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0388.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0388.pb new file mode 100644 index 0000000000000..c79373ee4163b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0388.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0389.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0389.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0389.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0390.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0390.pb new file mode 100644 index 0000000000000..1206342efee93 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0390.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0391.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0391.pb new file mode 100644 index 0000000000000..825b03185154d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0391.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0392.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0392.pb new file mode 100644 index 0000000000000..792beeb7e7907 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0392.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0393.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0393.pb new file mode 100644 index 0000000000000..cd339f83c94ff Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0393.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0394.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0394.pb new file mode 100644 index 0000000000000..97cebbfefdbf9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0394.pb @@ -0,0 +1,10 @@ + +( +& + +(\0 + +=․ + + +䍜4_0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0395.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0395.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0395.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0396.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0396.pb new file mode 100644 index 0000000000000..276a2b6dcf3cf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0396.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0397.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0397.pb new file mode 100644 index 0000000000000..8aad5535ecce7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0397.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0398.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0398.pb new file mode 100644 index 0000000000000..ea81204a11422 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0398.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0399.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0399.pb new file mode 100644 index 0000000000000..fccf7eb74c0f5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0399.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0400.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0400.pb new file mode 100644 index 0000000000000..f40fea522207c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0400.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0401.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0401.pb new file mode 100644 index 0000000000000..7e08eec586668 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0401.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0402.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0402.pb new file mode 100644 index 0000000000000..0a25d3048fc10 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0402.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0403.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0403.pb new file mode 100644 index 0000000000000..682ffc0374ad8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0403.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0404.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0404.pb new file mode 100644 index 0000000000000..fc96258df98a1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0404.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0405.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0405.pb new file mode 100644 index 0000000000000..9ad1cb3d46110 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0405.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0406.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0406.pb new file mode 100644 index 0000000000000..84b5aa09f17fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0406.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0407.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0407.pb new file mode 100644 index 0000000000000..8ef0aa8763728 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0407.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0408.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0408.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0408.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0409.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0409.pb new file mode 100644 index 0000000000000..d9084c58d046f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0409.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0410.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0410.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0410.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0411.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0411.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0411.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0412.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0412.pb new file mode 100644 index 0000000000000..e35f9f0387c88 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0412.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0413.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0413.pb new file mode 100644 index 0000000000000..31db37bb9edd8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0413.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0414.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0414.pb new file mode 100644 index 0000000000000..f328c872d42d4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0414.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0415.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0415.pb new file mode 100644 index 0000000000000..9873d040f1193 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0415.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0416.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0416.pb new file mode 100644 index 0000000000000..08bdc07be8f88 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0416.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0417.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0417.pb new file mode 100644 index 0000000000000..a792a592e3ca1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0417.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0418.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0418.pb new file mode 100644 index 0000000000000..5f77d12f39e9a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0418.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0419.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0419.pb new file mode 100644 index 0000000000000..8b600594b4a94 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0419.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0420.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0420.pb new file mode 100644 index 0000000000000..0fc3a2103d455 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0420.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0421.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0421.pb new file mode 100644 index 0000000000000..8c2c36777b41c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0421.pb @@ -0,0 +1,9 @@ + +* +( +  •ہ + +g 0 + +‹ +쭥 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0422.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0422.pb new file mode 100644 index 0000000000000..565e5d0b9949b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0422.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0423.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0423.pb new file mode 100644 index 0000000000000..7f400cf527fb9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0423.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0424.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0424.pb new file mode 100644 index 0000000000000..195fe70bc35c2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0424.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0425.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0425.pb new file mode 100644 index 0000000000000..41d294fac22be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0425.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0426.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0426.pb new file mode 100644 index 0000000000000..f99dde07fc869 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0426.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0427.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0427.pb new file mode 100644 index 0000000000000..53ce1c4faffb4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0427.pb @@ -0,0 +1,7 @@ + + + +0 + +Y⁤⁄ +⻬K) \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0428.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0428.pb new file mode 100644 index 0000000000000..f23b3287e4a4b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0428.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0429.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0429.pb new file mode 100644 index 0000000000000..61fa0eb6f1187 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0429.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0430.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0430.pb new file mode 100644 index 0000000000000..7afcbda63afdc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0430.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0431.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0431.pb new file mode 100644 index 0000000000000..b1f2916fc975a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0431.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0432.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0432.pb new file mode 100644 index 0000000000000..44bd62f67e095 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0432.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0433.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0433.pb new file mode 100644 index 0000000000000..fedf61abbeac7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0433.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0434.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0434.pb new file mode 100644 index 0000000000000..80ee9eeee4dd4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0434.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0435.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0435.pb new file mode 100644 index 0000000000000..2cb0bceb7a1c6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0435.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0436.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0436.pb new file mode 100644 index 0000000000000..1d5e3a17ddf6f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0436.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0437.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0437.pb new file mode 100644 index 0000000000000..aa4e46b1c3cdf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0437.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0438.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0438.pb new file mode 100644 index 0000000000000..61ec61f912adb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0438.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0439.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0439.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0439.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0440.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0440.pb new file mode 100644 index 0000000000000..5db6a69ddc46f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0440.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0441.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0441.pb new file mode 100644 index 0000000000000..0286c0f22c1e9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0441.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0442.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0442.pb new file mode 100644 index 0000000000000..998ac7bf19026 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0442.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0443.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0443.pb new file mode 100644 index 0000000000000..3ae48d6b95831 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0443.pb @@ -0,0 +1,6 @@ + + + + +񅙋 + X \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0444.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0444.pb new file mode 100644 index 0000000000000..ce1f5b48a925d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0444.pb @@ -0,0 +1,4 @@ + + + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0445.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0445.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0445.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0446.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0446.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0446.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0447.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0447.pb new file mode 100644 index 0000000000000..320073f82c843 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0447.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0448.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0448.pb new file mode 100644 index 0000000000000..9d2e797d54038 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0448.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0449.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0449.pb new file mode 100644 index 0000000000000..60ea3912e26ff Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0449.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0450.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0450.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0450.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0451.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0451.pb new file mode 100644 index 0000000000000..dd52c6e0004d5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0451.pb @@ -0,0 +1,7 @@ + + + + +B + +} \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0452.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0452.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0452.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0453.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0453.pb new file mode 100644 index 0000000000000..0ad6246415fb6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0453.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0454.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0454.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0454.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0455.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0455.pb new file mode 100644 index 0000000000000..7d7f24e7f3e9c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0455.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0456.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0456.pb new file mode 100644 index 0000000000000..5486e21ae90a1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0456.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0457.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0457.pb new file mode 100644 index 0000000000000..7074a678d5722 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0457.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0458.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0458.pb new file mode 100644 index 0000000000000..2faa7f82d04f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0458.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0459.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0459.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0459.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0460.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0460.pb new file mode 100644 index 0000000000000..fee28692eae3a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0460.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0461.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0461.pb new file mode 100644 index 0000000000000..1f86a756e74d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0461.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0462.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0462.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0462.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0463.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0463.pb new file mode 100644 index 0000000000000..8a15dc00a7833 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0463.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0464.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0464.pb new file mode 100644 index 0000000000000..1e6627c424f3f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0464.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0465.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0465.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0465.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0466.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0466.pb new file mode 100644 index 0000000000000..a3f4cc85f4d1e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0466.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0467.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0467.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0467.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0468.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0468.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0468.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0469.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0469.pb new file mode 100644 index 0000000000000..7e413472c7de7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0469.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0470.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0470.pb new file mode 100644 index 0000000000000..b1d3347236784 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0470.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0471.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0471.pb new file mode 100644 index 0000000000000..499591bf94374 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0471.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0472.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0472.pb new file mode 100644 index 0000000000000..1b918a4138d56 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0472.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0473.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0473.pb new file mode 100644 index 0000000000000..fa9e6c11c7478 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0473.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0474.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0474.pb new file mode 100644 index 0000000000000..c84abc9152f60 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0474.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0475.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0475.pb new file mode 100644 index 0000000000000..943e5b7ec4dee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0475.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0476.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0476.pb new file mode 100644 index 0000000000000..05bb11f3b6c89 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0476.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0477.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0477.pb new file mode 100644 index 0000000000000..0d705b356ae4d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0477.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0478.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0478.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0478.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0479.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0479.pb new file mode 100644 index 0000000000000..f61b4b8cf5ba2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0479.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0480.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0480.pb new file mode 100644 index 0000000000000..08542c03fabac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0480.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0481.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0481.pb new file mode 100644 index 0000000000000..6d717672d76e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0481.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0482.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0482.pb new file mode 100644 index 0000000000000..30606a7c3b9b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0482.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0483.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0483.pb new file mode 100644 index 0000000000000..48762d5cd6bab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0483.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0484.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0484.pb new file mode 100644 index 0000000000000..4a80249fd4bce Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0484.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0485.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0485.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0485.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0486.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0486.pb new file mode 100644 index 0000000000000..aaec76e526371 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0486.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0487.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0487.pb new file mode 100644 index 0000000000000..7d5ffb39e86cf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0487.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0488.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0488.pb new file mode 100644 index 0000000000000..3910fa35ee5fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0488.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0489.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0489.pb new file mode 100644 index 0000000000000..a9e077059b291 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0489.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0490.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0490.pb new file mode 100644 index 0000000000000..c16b3eddcb1fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0490.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0491.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0491.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0491.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0492.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0492.pb new file mode 100644 index 0000000000000..782c196a870f7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0492.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0493.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0493.pb new file mode 100644 index 0000000000000..3117918082e8e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0493.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0494.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0494.pb new file mode 100644 index 0000000000000..40257a36c3874 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0494.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0495.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0495.pb new file mode 100644 index 0000000000000..17667f41594b9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0495.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0496.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0496.pb new file mode 100644 index 0000000000000..e48024ada3d2c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0496.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0497.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0497.pb new file mode 100644 index 0000000000000..a8c9aa9bb9a78 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0497.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0498.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0498.pb new file mode 100644 index 0000000000000..672c0cecdad53 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0498.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0499.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0499.pb new file mode 100644 index 0000000000000..d84d2374286d3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0499.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0500.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0500.pb new file mode 100644 index 0000000000000..5177d0411b368 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0500.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0501.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0501.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0501.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0502.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0502.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0502.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0503.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0503.pb new file mode 100644 index 0000000000000..e1d735b70fcad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0503.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0504.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0504.pb new file mode 100644 index 0000000000000..8c6da1ba9be9d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0504.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0505.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0505.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0505.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0506.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0506.pb new file mode 100644 index 0000000000000..ed159951683e9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0506.pb @@ -0,0 +1,5 @@ + + + +  + 澆 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0507.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0507.pb new file mode 100644 index 0000000000000..2d233eb0e16f6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0507.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0508.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0508.pb new file mode 100644 index 0000000000000..ebe1f7e2a012c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0508.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0509.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0509.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0509.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0510.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0510.pb new file mode 100644 index 0000000000000..4cd9210e5bc0e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0510.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0511.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0511.pb new file mode 100644 index 0000000000000..eba99605fbab5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0511.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0512.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0512.pb new file mode 100644 index 0000000000000..cbaa0eade89d3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0512.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0513.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0513.pb new file mode 100644 index 0000000000000..47487f3615a06 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0513.pb @@ -0,0 +1,8 @@ + + + + + + +E +' \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0514.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0514.pb new file mode 100644 index 0000000000000..69e2b244b56ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0514.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0515.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0515.pb new file mode 100644 index 0000000000000..a6a44a7190f7a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0515.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0516.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0516.pb new file mode 100644 index 0000000000000..a14c81b5ce56c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0516.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0517.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0517.pb new file mode 100644 index 0000000000000..da3de5502d1a5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0517.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0518.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0518.pb new file mode 100644 index 0000000000000..e5eec2bcb79c1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0518.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0519.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0519.pb new file mode 100644 index 0000000000000..3a55d16070f7e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0519.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0520.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0520.pb new file mode 100644 index 0000000000000..bdf3264bb475b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0520.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0521.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0521.pb new file mode 100644 index 0000000000000..138b6ffe5912e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0521.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0522.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0522.pb new file mode 100644 index 0000000000000..914356f079f98 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0522.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0523.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0523.pb new file mode 100644 index 0000000000000..9672180912d98 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0523.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0524.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0524.pb new file mode 100644 index 0000000000000..628084ec3cc79 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0524.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0525.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0525.pb new file mode 100644 index 0000000000000..30edda6fc5598 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0525.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0526.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0526.pb new file mode 100644 index 0000000000000..cbf773158d66b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0526.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0527.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0527.pb new file mode 100644 index 0000000000000..f5b7235aadc5a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0527.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0528.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0528.pb new file mode 100644 index 0000000000000..e42a1a4589e95 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0528.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0529.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0529.pb new file mode 100644 index 0000000000000..9c8850d3ee0b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0529.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0530.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0530.pb new file mode 100644 index 0000000000000..03f046691aea2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0530.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0531.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0531.pb new file mode 100644 index 0000000000000..13df0eb4ea034 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0531.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0532.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0532.pb new file mode 100644 index 0000000000000..2793c5981613c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0532.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0533.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0533.pb new file mode 100644 index 0000000000000..68911dcb0a069 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0533.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0534.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0534.pb new file mode 100644 index 0000000000000..0edc35c7c5325 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0534.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0535.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0535.pb new file mode 100644 index 0000000000000..e4392ce487cef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0535.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0536.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0536.pb new file mode 100644 index 0000000000000..fa165c90bc8ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0536.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0537.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0537.pb new file mode 100644 index 0000000000000..6cbdfdda32d41 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0537.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0538.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0538.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0538.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0539.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0539.pb new file mode 100644 index 0000000000000..7d1e63c2665bf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0539.pb @@ -0,0 +1,5 @@ + + + + +ﲫ0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0540.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0540.pb new file mode 100644 index 0000000000000..f89d649046e69 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0540.pb @@ -0,0 +1,6 @@ + + + + + +󩷚 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0541.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0541.pb new file mode 100644 index 0000000000000..e8b264bb692a3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0541.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0542.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0542.pb new file mode 100644 index 0000000000000..16dda9aa117bd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0542.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0543.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0543.pb new file mode 100644 index 0000000000000..7cfd4e4728113 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0543.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0544.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0544.pb new file mode 100644 index 0000000000000..a900ac7f46522 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0544.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0545.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0545.pb new file mode 100644 index 0000000000000..b7a919491f501 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0545.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0546.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0546.pb new file mode 100644 index 0000000000000..0eee73a8e8247 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0546.pb @@ -0,0 +1,9 @@ + + + + + +W9 +t + +_0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0547.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0547.pb new file mode 100644 index 0000000000000..ce1f5b48a925d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0547.pb @@ -0,0 +1,4 @@ + + + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0548.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0548.pb new file mode 100644 index 0000000000000..5ef92b33d8075 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0548.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0549.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0549.pb new file mode 100644 index 0000000000000..e0e6640d7486c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0549.pb @@ -0,0 +1,7 @@ + + + + +ʼn: + +) Άߛ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0550.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0550.pb new file mode 100644 index 0000000000000..5527cddf99487 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0550.pb @@ -0,0 +1,5 @@ + + + + +ՆLE  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0551.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0551.pb new file mode 100644 index 0000000000000..77ac28c48ad59 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0551.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0552.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0552.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0552.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0553.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0553.pb new file mode 100644 index 0000000000000..948ec3b851707 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0553.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0554.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0554.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0554.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0555.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0555.pb new file mode 100644 index 0000000000000..87a976de890ab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0555.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0556.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0556.pb new file mode 100644 index 0000000000000..cb0e97e2f2dbf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0556.pb @@ -0,0 +1,5 @@ + + +o +dx +yy* $s-A \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0557.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0557.pb new file mode 100644 index 0000000000000..cc43d8d081c20 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0557.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0558.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0558.pb new file mode 100644 index 0000000000000..c3a28ac64f0c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0558.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0559.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0559.pb new file mode 100644 index 0000000000000..2fd0347e1a85f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0559.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0560.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0560.pb new file mode 100644 index 0000000000000..5cd909214d341 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0560.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0561.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0561.pb new file mode 100644 index 0000000000000..47b03f3ff3bdd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0561.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0562.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0562.pb new file mode 100644 index 0000000000000..9254c52221fbe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0562.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0563.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0563.pb new file mode 100644 index 0000000000000..4fdc506b3f8ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0563.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0564.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0564.pb new file mode 100644 index 0000000000000..a9b8bfdeaac99 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0564.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0565.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0565.pb new file mode 100644 index 0000000000000..e402a0c07731b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0565.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0566.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0566.pb new file mode 100644 index 0000000000000..bd82634c5dfce Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0566.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0567.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0567.pb new file mode 100644 index 0000000000000..a96bc27249334 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0567.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0568.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0568.pb new file mode 100644 index 0000000000000..5d985de278445 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0568.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0569.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0569.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0569.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0570.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0570.pb new file mode 100644 index 0000000000000..5ede346ac1311 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0570.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0571.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0571.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0571.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0572.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0572.pb new file mode 100644 index 0000000000000..12571b0826f8b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0572.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0573.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0573.pb new file mode 100644 index 0000000000000..7b2e76cb78d36 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0573.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0574.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0574.pb new file mode 100644 index 0000000000000..77e202bc4a36a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0574.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0575.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0575.pb new file mode 100644 index 0000000000000..5ce9ceb300466 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0575.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0576.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0576.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0576.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0577.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0577.pb new file mode 100644 index 0000000000000..4463281316d42 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0577.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0578.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0578.pb new file mode 100644 index 0000000000000..ce21c6a85c593 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0578.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0579.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0579.pb new file mode 100644 index 0000000000000..2b7bf6042a2da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0579.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0580.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0580.pb new file mode 100644 index 0000000000000..aa3134575c666 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0580.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0581.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0581.pb new file mode 100644 index 0000000000000..e05bb3788e252 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0581.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0582.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0582.pb new file mode 100644 index 0000000000000..39ae3d9fdfa0d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0582.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0583.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0583.pb new file mode 100644 index 0000000000000..df62855f57bb6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0583.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0584.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0584.pb new file mode 100644 index 0000000000000..520ff09f257eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0584.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0585.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0585.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0585.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0586.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0586.pb new file mode 100644 index 0000000000000..376c202de9a33 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0586.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0587.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0587.pb new file mode 100644 index 0000000000000..099e77a2deee4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0587.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0588.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0588.pb new file mode 100644 index 0000000000000..3871b325e3792 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0588.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0589.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0589.pb new file mode 100644 index 0000000000000..dfd5f32606ff0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0589.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0590.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0590.pb new file mode 100644 index 0000000000000..ed6987dda7437 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0590.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0591.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0591.pb new file mode 100644 index 0000000000000..6a27b8b5c1595 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0591.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0592.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0592.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0592.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0593.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0593.pb new file mode 100644 index 0000000000000..c402226f41b45 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0593.pb @@ -0,0 +1,5 @@ + + + + +’ ċ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0594.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0594.pb new file mode 100644 index 0000000000000..f7271181ce939 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0594.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0595.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0595.pb new file mode 100644 index 0000000000000..94e84923c81cc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0595.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0596.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0596.pb new file mode 100644 index 0000000000000..3c714a090f0bf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0596.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0597.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0597.pb new file mode 100644 index 0000000000000..4cdd6d88836d8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0597.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0598.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0598.pb new file mode 100644 index 0000000000000..60e90db11bb13 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0598.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0599.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0599.pb new file mode 100644 index 0000000000000..929f72fe57a9f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0599.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0600.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0600.pb new file mode 100644 index 0000000000000..060614d85b0f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0600.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0601.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0601.pb new file mode 100644 index 0000000000000..408ca80f52605 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0601.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0602.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0602.pb new file mode 100644 index 0000000000000..71e532552ea35 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0602.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0603.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0603.pb new file mode 100644 index 0000000000000..b29af6e5d03ec Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0603.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0604.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0604.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0604.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0605.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0605.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0605.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0606.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0606.pb new file mode 100644 index 0000000000000..c591b9858a88b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0606.pb @@ -0,0 +1,7 @@ + + + + +ᓰ⁜= + +󄴳Ž򉚁 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0607.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0607.pb new file mode 100644 index 0000000000000..59ae097e46dee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0607.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0608.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0608.pb new file mode 100644 index 0000000000000..6136e92bfbe14 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0608.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0609.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0609.pb new file mode 100644 index 0000000000000..9325e73b8662c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0609.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0610.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0610.pb new file mode 100644 index 0000000000000..dbb72d9a74986 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0610.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0611.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0611.pb new file mode 100644 index 0000000000000..0272893dcfbd8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0611.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0612.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0612.pb new file mode 100644 index 0000000000000..a3eab6a36e39a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0612.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0613.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0613.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0613.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0614.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0614.pb new file mode 100644 index 0000000000000..6631180342ce6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0614.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0615.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0615.pb new file mode 100644 index 0000000000000..057dd11ead841 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0615.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0616.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0616.pb new file mode 100644 index 0000000000000..50b2196176c0a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0616.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0617.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0617.pb new file mode 100644 index 0000000000000..10bd4d3814306 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0617.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0618.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0618.pb new file mode 100644 index 0000000000000..63c9d987178d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0618.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0619.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0619.pb new file mode 100644 index 0000000000000..df3aaff8070b0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0619.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0620.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0620.pb new file mode 100644 index 0000000000000..20aab8b00d03f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0620.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0621.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0621.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0621.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0622.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0622.pb new file mode 100644 index 0000000000000..309e378cce323 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0622.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0623.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0623.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0623.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0624.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0624.pb new file mode 100644 index 0000000000000..5ff2540585192 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0624.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0625.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0625.pb new file mode 100644 index 0000000000000..2895d73c25745 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0625.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0626.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0626.pb new file mode 100644 index 0000000000000..543a1c50e83fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0626.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0627.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0627.pb new file mode 100644 index 0000000000000..083c08a4a6389 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0627.pb @@ -0,0 +1,5 @@ + + + + +\•0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0628.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0628.pb new file mode 100644 index 0000000000000..2a4137eca5e3a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0628.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0629.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0629.pb new file mode 100644 index 0000000000000..6571501b5d5e5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0629.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0630.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0630.pb new file mode 100644 index 0000000000000..1032bc1820b67 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0630.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0631.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0631.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0631.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0632.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0632.pb new file mode 100644 index 0000000000000..092e1990a3f0b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0632.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0633.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0633.pb new file mode 100644 index 0000000000000..677b566371231 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0633.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0634.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0634.pb new file mode 100644 index 0000000000000..f82bf312aad1c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0634.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0635.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0635.pb new file mode 100644 index 0000000000000..02e4c899b6d2a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0635.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0636.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0636.pb new file mode 100644 index 0000000000000..c4aa6567def99 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0636.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0637.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0637.pb new file mode 100644 index 0000000000000..13ca93eda84c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0637.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0638.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0638.pb new file mode 100644 index 0000000000000..e32356828c01f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0638.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0639.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0639.pb new file mode 100644 index 0000000000000..f8ddb461b53c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0639.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0640.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0640.pb new file mode 100644 index 0000000000000..b1e36d51aacc7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0640.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0641.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0641.pb new file mode 100644 index 0000000000000..43351a076f6a2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0641.pb @@ -0,0 +1,5 @@ + + + + +K븊􀴺 ֱ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0642.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0642.pb new file mode 100644 index 0000000000000..c1dfc5ae2b82e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0642.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0643.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0643.pb new file mode 100644 index 0000000000000..269d580341805 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0643.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0644.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0644.pb new file mode 100644 index 0000000000000..ae51d613ecd17 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0644.pb @@ -0,0 +1,10 @@ + +4 +2 +  ͪ + +"ᵯ{ +!C + +‹™ + 㷛s \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0645.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0645.pb new file mode 100644 index 0000000000000..ef363448c2363 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0645.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0646.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0646.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0646.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0647.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0647.pb new file mode 100644 index 0000000000000..6a1ef9ecee201 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0647.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0648.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0648.pb new file mode 100644 index 0000000000000..02f4916b6b896 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0648.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0649.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0649.pb new file mode 100644 index 0000000000000..91ca09d85f6b6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0649.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0650.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0650.pb new file mode 100644 index 0000000000000..e48a285ca28ec Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0650.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0651.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0651.pb new file mode 100644 index 0000000000000..9e62467a1d39f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0651.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0652.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0652.pb new file mode 100644 index 0000000000000..2a47c62d528a0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0652.pb @@ -0,0 +1,6 @@ + + + + + +؁š \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0653.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0653.pb new file mode 100644 index 0000000000000..197f26f958a35 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0653.pb @@ -0,0 +1,8 @@ + +! + +B + + 逫 + +%w㑲0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0654.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0654.pb new file mode 100644 index 0000000000000..9fc08212b07c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0654.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0655.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0655.pb new file mode 100644 index 0000000000000..96ac8e70b5ee9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0655.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0656.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0656.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0656.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0657.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0657.pb new file mode 100644 index 0000000000000..e8061181e265c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0657.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0658.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0658.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0658.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0659.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0659.pb new file mode 100644 index 0000000000000..96c4f3939ad1d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0659.pb @@ -0,0 +1,6 @@ + + + + +澩ˆ“ + ⋐򪹎’ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0660.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0660.pb new file mode 100644 index 0000000000000..fa40fa958f5a1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0660.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0661.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0661.pb new file mode 100644 index 0000000000000..151d8ef771bbe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0661.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0662.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0662.pb new file mode 100644 index 0000000000000..e18c5f3a91fa3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0662.pb @@ -0,0 +1,6 @@ + + + + + +-0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0663.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0663.pb new file mode 100644 index 0000000000000..1644ed86cf46e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0663.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0664.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0664.pb new file mode 100644 index 0000000000000..c15414f80b44d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0664.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0665.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0665.pb new file mode 100644 index 0000000000000..f898823242269 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0665.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0666.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0666.pb new file mode 100644 index 0000000000000..c7024d6f761bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0666.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0667.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0667.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0667.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0668.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0668.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0668.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0669.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0669.pb new file mode 100644 index 0000000000000..254a8f77c0b38 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0669.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0670.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0670.pb new file mode 100644 index 0000000000000..593c1a76c7f90 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0670.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0671.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0671.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0671.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0672.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0672.pb new file mode 100644 index 0000000000000..1db8d7fe838b8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0672.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0673.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0673.pb new file mode 100644 index 0000000000000..6d13a2230b810 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0673.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0674.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0674.pb new file mode 100644 index 0000000000000..500065f8d8cfa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0674.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0675.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0675.pb new file mode 100644 index 0000000000000..480e8fc719748 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0675.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0676.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0676.pb new file mode 100644 index 0000000000000..814c14785d63b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0676.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0677.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0677.pb new file mode 100644 index 0000000000000..dbf858f2e81c0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0677.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0678.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0678.pb new file mode 100644 index 0000000000000..3e3aba56bd930 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0678.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0679.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0679.pb new file mode 100644 index 0000000000000..3afa7bb68f363 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0679.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0680.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0680.pb new file mode 100644 index 0000000000000..f117ef5e60d24 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0680.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0681.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0681.pb new file mode 100644 index 0000000000000..0c83214e2ebed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0681.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0682.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0682.pb new file mode 100644 index 0000000000000..613fe247e7528 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0682.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0683.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0683.pb new file mode 100644 index 0000000000000..1cdf461532e1b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0683.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0684.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0684.pb new file mode 100644 index 0000000000000..ea35372f48537 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0684.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0685.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0685.pb new file mode 100644 index 0000000000000..1fea7206a88de Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0685.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0686.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0686.pb new file mode 100644 index 0000000000000..106fc0d22895a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0686.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0687.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0687.pb new file mode 100644 index 0000000000000..35fdbaa9662e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0687.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0688.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0688.pb new file mode 100644 index 0000000000000..c37c40641ed63 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0688.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0689.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0689.pb new file mode 100644 index 0000000000000..2bcaabb8fb440 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0689.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0690.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0690.pb new file mode 100644 index 0000000000000..06cdd0b2d618b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0690.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0691.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0691.pb new file mode 100644 index 0000000000000..d8f0e9889082d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0691.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0692.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0692.pb new file mode 100644 index 0000000000000..3a2e0c7c65904 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0692.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0693.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0693.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0693.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0694.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0694.pb new file mode 100644 index 0000000000000..92a74f6fcac2b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0694.pb @@ -0,0 +1,12 @@ + +; +9 +7 +E2:0 +  ʏ + +C\󑚑 +8 + +TA + c \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0695.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0695.pb new file mode 100644 index 0000000000000..705f5cf0be735 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0695.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0696.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0696.pb new file mode 100644 index 0000000000000..67464ed1fadfa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0696.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0697.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0697.pb new file mode 100644 index 0000000000000..eda1a8d81ada8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0697.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0698.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0698.pb new file mode 100644 index 0000000000000..35dc34af2f762 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0698.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0699.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0699.pb new file mode 100644 index 0000000000000..9107a6815834d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0699.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0700.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0700.pb new file mode 100644 index 0000000000000..6830b2879d4c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0700.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0701.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0701.pb new file mode 100644 index 0000000000000..566a2e185278a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0701.pb @@ -0,0 +1,5 @@ + + + + +/R0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0702.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0702.pb new file mode 100644 index 0000000000000..326f9c572cc31 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0702.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0703.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0703.pb new file mode 100644 index 0000000000000..49649ea6e739d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0703.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0704.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0704.pb new file mode 100644 index 0000000000000..b36788e222c04 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0704.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0705.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0705.pb new file mode 100644 index 0000000000000..1fcb0fa1f1505 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0705.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0706.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0706.pb new file mode 100644 index 0000000000000..523f63fdc6484 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0706.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0707.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0707.pb new file mode 100644 index 0000000000000..68397367f47b5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0707.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0708.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0708.pb new file mode 100644 index 0000000000000..a1b8308dc69fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0708.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0709.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0709.pb new file mode 100644 index 0000000000000..b33b55bf739bd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0709.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0710.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0710.pb new file mode 100644 index 0000000000000..bc40e04338c2c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0710.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0711.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0711.pb new file mode 100644 index 0000000000000..53b6565df2362 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0711.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0712.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0712.pb new file mode 100644 index 0000000000000..8c478d4ad8014 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0712.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0713.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0713.pb new file mode 100644 index 0000000000000..395dce7904747 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0713.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0714.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0714.pb new file mode 100644 index 0000000000000..8ac59e590819a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0714.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0715.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0715.pb new file mode 100644 index 0000000000000..cbf80c2a3339b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0715.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0716.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0716.pb new file mode 100644 index 0000000000000..af30d354e8264 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0716.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0717.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0717.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0717.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0718.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0718.pb new file mode 100644 index 0000000000000..b221f5dcdc4f0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0718.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0719.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0719.pb new file mode 100644 index 0000000000000..f04b422aac9ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0719.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0720.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0720.pb new file mode 100644 index 0000000000000..a31cd4e239373 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0720.pb @@ -0,0 +1,5 @@ + + + +  + ߃2 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0721.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0721.pb new file mode 100644 index 0000000000000..47491bd416ad4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0721.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0722.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0722.pb new file mode 100644 index 0000000000000..69dc78951969c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0722.pb @@ -0,0 +1,6 @@ + + + + ++ +  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0723.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0723.pb new file mode 100644 index 0000000000000..9e5ec37bb7017 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0723.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0724.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0724.pb new file mode 100644 index 0000000000000..c8ea6c6abd1d0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0724.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0725.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0725.pb new file mode 100644 index 0000000000000..3228746f62e85 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0725.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0726.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0726.pb new file mode 100644 index 0000000000000..945613ff3e6e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0726.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0727.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0727.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0727.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0728.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0728.pb new file mode 100644 index 0000000000000..0200b0ed2b313 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0728.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0729.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0729.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0729.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0730.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0730.pb new file mode 100644 index 0000000000000..393a56e40a302 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0730.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0731.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0731.pb new file mode 100644 index 0000000000000..7a41edd77b41c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0731.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0732.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0732.pb new file mode 100644 index 0000000000000..6e36fe5437a6a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0732.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0733.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0733.pb new file mode 100644 index 0000000000000..5aec3b5eb7f8a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0733.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0734.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0734.pb new file mode 100644 index 0000000000000..80db820a1b1ee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0734.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0735.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0735.pb new file mode 100644 index 0000000000000..f459e709c510f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0735.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0736.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0736.pb new file mode 100644 index 0000000000000..0ca674e78c3ab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0736.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0737.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0737.pb new file mode 100644 index 0000000000000..beb99d7337dbb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0737.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0738.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0738.pb new file mode 100644 index 0000000000000..e6a0691d80fcf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0738.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0739.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0739.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0739.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0740.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0740.pb new file mode 100644 index 0000000000000..aa0aa11943659 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0740.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0741.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0741.pb new file mode 100644 index 0000000000000..2a1786f60f71f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0741.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0742.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0742.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0742.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0743.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0743.pb new file mode 100644 index 0000000000000..c4ee2407a2f24 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0743.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0744.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0744.pb new file mode 100644 index 0000000000000..8ef9c854e1cca --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0744.pb @@ -0,0 +1,5 @@ + + + + +@P0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0745.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0745.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0745.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0746.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0746.pb new file mode 100644 index 0000000000000..adcd97c37d1ed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0746.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0747.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0747.pb new file mode 100644 index 0000000000000..0825a88887ce4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0747.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0748.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0748.pb new file mode 100644 index 0000000000000..4383c8b64b5bf --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0748.pb @@ -0,0 +1,5 @@ + + + + +j0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0749.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0749.pb new file mode 100644 index 0000000000000..eb23503963fe1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0749.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0750.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0750.pb new file mode 100644 index 0000000000000..8b1f42f4093b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0750.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0751.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0751.pb new file mode 100644 index 0000000000000..6396de8088124 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0751.pb @@ -0,0 +1,5 @@ + + + + +#0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0752.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0752.pb new file mode 100644 index 0000000000000..7047d4e7bfd35 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0752.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0753.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0753.pb new file mode 100644 index 0000000000000..8e73ed4cf5299 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0753.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0754.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0754.pb new file mode 100644 index 0000000000000..b0de39a6a2942 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0754.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0755.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0755.pb new file mode 100644 index 0000000000000..a310a453864c8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0755.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0756.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0756.pb new file mode 100644 index 0000000000000..f6749e102e404 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0756.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0757.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0757.pb new file mode 100644 index 0000000000000..556403b91e5f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0757.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0758.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0758.pb new file mode 100644 index 0000000000000..e60f55df541af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0758.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0759.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0759.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0759.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0760.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0760.pb new file mode 100644 index 0000000000000..7057c7cb36b27 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0760.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0761.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0761.pb new file mode 100644 index 0000000000000..e9bd18795cc80 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0761.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0762.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0762.pb new file mode 100644 index 0000000000000..e277bc10c4ca8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0762.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0763.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0763.pb new file mode 100644 index 0000000000000..97e98b2c8104a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0763.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0764.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0764.pb new file mode 100644 index 0000000000000..d423d2c356f19 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0764.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0765.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0765.pb new file mode 100644 index 0000000000000..5747c6126befa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0765.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0766.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0766.pb new file mode 100644 index 0000000000000..30fb5b1074bc3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0766.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0767.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0767.pb new file mode 100644 index 0000000000000..3d897c9017433 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0767.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0768.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0768.pb new file mode 100644 index 0000000000000..cc2d55d7f07d2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0768.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0769.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0769.pb new file mode 100644 index 0000000000000..6947d97b78e99 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0769.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0770.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0770.pb new file mode 100644 index 0000000000000..1f52232d68884 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0770.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0771.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0771.pb new file mode 100644 index 0000000000000..90748550c8c60 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0771.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0772.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0772.pb new file mode 100644 index 0000000000000..ec691276ba034 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0772.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0773.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0773.pb new file mode 100644 index 0000000000000..665c97a236247 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0773.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0774.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0774.pb new file mode 100644 index 0000000000000..b0b1d42c4e44f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0774.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0775.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0775.pb new file mode 100644 index 0000000000000..4d60320998716 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0775.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0776.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0776.pb new file mode 100644 index 0000000000000..c37deca720064 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0776.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0777.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0777.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0777.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0778.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0778.pb new file mode 100644 index 0000000000000..9f7086d592ad2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0778.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0779.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0779.pb new file mode 100644 index 0000000000000..456ef7096d3eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0779.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0780.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0780.pb new file mode 100644 index 0000000000000..b6fd730d0df29 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0780.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0781.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0781.pb new file mode 100644 index 0000000000000..f9fda4921edcd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0781.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0782.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0782.pb new file mode 100644 index 0000000000000..8a41a2e17b4a2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0782.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0783.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0783.pb new file mode 100644 index 0000000000000..fe49038f01193 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0783.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0784.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0784.pb new file mode 100644 index 0000000000000..8cd73c72569c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0784.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0785.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0785.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0785.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0786.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0786.pb new file mode 100644 index 0000000000000..ba693f6a44815 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0786.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0787.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0787.pb new file mode 100644 index 0000000000000..3eedc7957d225 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0787.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0788.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0788.pb new file mode 100644 index 0000000000000..ce1f5b48a925d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0788.pb @@ -0,0 +1,4 @@ + + + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0789.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0789.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0789.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0790.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0790.pb new file mode 100644 index 0000000000000..18e0dc215fca6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0790.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0791.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0791.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0791.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0792.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0792.pb new file mode 100644 index 0000000000000..04967299f98fb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0792.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0793.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0793.pb new file mode 100644 index 0000000000000..21b9d5962013f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0793.pb @@ -0,0 +1,6 @@ + + + + +o}A + ֎f \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0794.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0794.pb new file mode 100644 index 0000000000000..6af777d4407b1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0794.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0795.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0795.pb new file mode 100644 index 0000000000000..4695cf3084477 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0795.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0796.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0796.pb new file mode 100644 index 0000000000000..3ab8a386bde94 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0796.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0797.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0797.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0797.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0798.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0798.pb new file mode 100644 index 0000000000000..3aef97a8f8f28 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0798.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0799.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0799.pb new file mode 100644 index 0000000000000..1d3deb3dcf083 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0799.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0800.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0800.pb new file mode 100644 index 0000000000000..fec8d0541e019 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0800.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0801.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0801.pb new file mode 100644 index 0000000000000..2132582714ddd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0801.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0802.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0802.pb new file mode 100644 index 0000000000000..295eb72dc528b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0802.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0803.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0803.pb new file mode 100644 index 0000000000000..da0a15ae967e1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0803.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0804.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0804.pb new file mode 100644 index 0000000000000..12f282bd7f4e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0804.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0805.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0805.pb new file mode 100644 index 0000000000000..0ec38d237f6b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0805.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0806.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0806.pb new file mode 100644 index 0000000000000..863f9dce736c2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0806.pb @@ -0,0 +1,6 @@ + + + + +6!؂ + 콜v \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0807.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0807.pb new file mode 100644 index 0000000000000..4c72af313458f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0807.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0808.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0808.pb new file mode 100644 index 0000000000000..344b1806d5909 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0808.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0809.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0809.pb new file mode 100644 index 0000000000000..b4b2209ab9300 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0809.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0810.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0810.pb new file mode 100644 index 0000000000000..3cb0aa264df8d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0810.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0811.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0811.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0811.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0812.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0812.pb new file mode 100644 index 0000000000000..d910e67280869 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0812.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0813.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0813.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0813.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0814.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0814.pb new file mode 100644 index 0000000000000..23d38d3a71171 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0814.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0815.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0815.pb new file mode 100644 index 0000000000000..53bb5072d2582 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0815.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0816.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0816.pb new file mode 100644 index 0000000000000..f3cb53f7e8789 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0816.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0817.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0817.pb new file mode 100644 index 0000000000000..421c6e02a634d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0817.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0818.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0818.pb new file mode 100644 index 0000000000000..cc875ef8f3f08 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0818.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0819.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0819.pb new file mode 100644 index 0000000000000..e6dfdcc6a667f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0819.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0820.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0820.pb new file mode 100644 index 0000000000000..c821856e425de Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0820.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0821.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0821.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0821.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0822.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0822.pb new file mode 100644 index 0000000000000..dd65b39d8b6f7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0822.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0823.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0823.pb new file mode 100644 index 0000000000000..456242aca82a4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0823.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0824.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0824.pb new file mode 100644 index 0000000000000..39200f2b01ef6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0824.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0825.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0825.pb new file mode 100644 index 0000000000000..2f19438b5c83c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0825.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0826.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0826.pb new file mode 100644 index 0000000000000..7f4093ce18b4f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0826.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0827.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0827.pb new file mode 100644 index 0000000000000..d42d85e6b3f6c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0827.pb @@ -0,0 +1,5 @@ + + + + +!0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0828.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0828.pb new file mode 100644 index 0000000000000..165efb402ab3c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0828.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0829.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0829.pb new file mode 100644 index 0000000000000..58ae0791f8176 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0829.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0830.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0830.pb new file mode 100644 index 0000000000000..6933f09729f4b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0830.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0831.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0831.pb new file mode 100644 index 0000000000000..87e7657a8123d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0831.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0832.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0832.pb new file mode 100644 index 0000000000000..94206c6c9eb47 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0832.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0833.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0833.pb new file mode 100644 index 0000000000000..be08a6bfe127e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0833.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0834.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0834.pb new file mode 100644 index 0000000000000..ddc37de9df371 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0834.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0835.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0835.pb new file mode 100644 index 0000000000000..86e2edc5e9753 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0835.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0836.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0836.pb new file mode 100644 index 0000000000000..1589bcf6bbd87 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0836.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0837.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0837.pb new file mode 100644 index 0000000000000..0696fdb34e261 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0837.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0838.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0838.pb new file mode 100644 index 0000000000000..9d754459788a8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0838.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0839.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0839.pb new file mode 100644 index 0000000000000..c734348771fd7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0839.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0840.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0840.pb new file mode 100644 index 0000000000000..94270b6a0e22e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0840.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0841.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0841.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0841.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0842.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0842.pb new file mode 100644 index 0000000000000..2077058139941 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0842.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0843.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0843.pb new file mode 100644 index 0000000000000..a3539b1d46572 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0843.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0844.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0844.pb new file mode 100644 index 0000000000000..dc8555bc21d01 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0844.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0845.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0845.pb new file mode 100644 index 0000000000000..dae8ff8019cab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0845.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0846.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0846.pb new file mode 100644 index 0000000000000..dce13db6f6f0b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0846.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0847.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0847.pb new file mode 100644 index 0000000000000..d29511bc07d7f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0847.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0848.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0848.pb new file mode 100644 index 0000000000000..b3435fdf4c8a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0848.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0849.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0849.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0849.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0850.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0850.pb new file mode 100644 index 0000000000000..eb32d59d65d88 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0850.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0851.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0851.pb new file mode 100644 index 0000000000000..de4fd0f6f90ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0851.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0852.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0852.pb new file mode 100644 index 0000000000000..30b4e8002fc05 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0852.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0853.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0853.pb new file mode 100644 index 0000000000000..f3d35caed5ca5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0853.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0854.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0854.pb new file mode 100644 index 0000000000000..12c293ba0a283 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0854.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0855.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0855.pb new file mode 100644 index 0000000000000..ac4a3b4fd82f1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0855.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0856.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0856.pb new file mode 100644 index 0000000000000..82d4c1174486f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0856.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0857.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0857.pb new file mode 100644 index 0000000000000..1ff0488caae21 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0857.pb @@ -0,0 +1,6 @@ + + + + +}㺹2 +` \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0858.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0858.pb new file mode 100644 index 0000000000000..2d967f0a0df9c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0858.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0859.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0859.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0859.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0860.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0860.pb new file mode 100644 index 0000000000000..3515a67f8ab4e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0860.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0861.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0861.pb new file mode 100644 index 0000000000000..9bf65bb376768 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0861.pb @@ -0,0 +1,4 @@ + + +y +sw 2  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0862.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0862.pb new file mode 100644 index 0000000000000..7f1d070da0693 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0862.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0863.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0863.pb new file mode 100644 index 0000000000000..bfc3ce481aeb5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0863.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0864.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0864.pb new file mode 100644 index 0000000000000..c093969f59dea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0864.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0865.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0865.pb new file mode 100644 index 0000000000000..efb3206a2b098 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0865.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0866.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0866.pb new file mode 100644 index 0000000000000..915d252cdea59 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0866.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0867.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0867.pb new file mode 100644 index 0000000000000..30715fa2ae057 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0867.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0868.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0868.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0868.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0869.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0869.pb new file mode 100644 index 0000000000000..677c795f123fb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0869.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0870.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0870.pb new file mode 100644 index 0000000000000..b1aef92b8b640 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0870.pb @@ -0,0 +1,5 @@ + + + +  + ׷3 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0871.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0871.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0871.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0872.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0872.pb new file mode 100644 index 0000000000000..80187afc442d6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0872.pb @@ -0,0 +1,8 @@ + + + + +'!¤: + +᙭ +u \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0873.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0873.pb new file mode 100644 index 0000000000000..2a121dfe08b80 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0873.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0874.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0874.pb new file mode 100644 index 0000000000000..225a2e33ef30e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0874.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0875.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0875.pb new file mode 100644 index 0000000000000..bd1ba71c718f9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0875.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0876.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0876.pb new file mode 100644 index 0000000000000..7b53859769c31 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0876.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0877.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0877.pb new file mode 100644 index 0000000000000..53138decd641e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0877.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0878.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0878.pb new file mode 100644 index 0000000000000..ac4200cbe34e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0878.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0879.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0879.pb new file mode 100644 index 0000000000000..978b2c6927563 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0879.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0880.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0880.pb new file mode 100644 index 0000000000000..5d82b13f7000c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0880.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0881.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0881.pb new file mode 100644 index 0000000000000..65b3aa0754b8c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0881.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0882.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0882.pb new file mode 100644 index 0000000000000..a0d0c1fe1414d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0882.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0883.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0883.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0883.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0884.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0884.pb new file mode 100644 index 0000000000000..559105a165081 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0884.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0885.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0885.pb new file mode 100644 index 0000000000000..136ec80d3f15b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0885.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0886.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0886.pb new file mode 100644 index 0000000000000..79e67a017c7d1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0886.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0887.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0887.pb new file mode 100644 index 0000000000000..246edda9154e4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0887.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0888.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0888.pb new file mode 100644 index 0000000000000..a089715d79aaf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0888.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0889.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0889.pb new file mode 100644 index 0000000000000..95263f98eb4b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0889.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0890.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0890.pb new file mode 100644 index 0000000000000..fca06c585c420 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0890.pb @@ -0,0 +1,6 @@ + + + + +%} +8% \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0891.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0891.pb new file mode 100644 index 0000000000000..dd29368b05961 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0891.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0892.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0892.pb new file mode 100644 index 0000000000000..0952a38b04d82 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0892.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0893.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0893.pb new file mode 100644 index 0000000000000..51ff01e06b173 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0893.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0894.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0894.pb new file mode 100644 index 0000000000000..ed6e9e31c35b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0894.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0895.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0895.pb new file mode 100644 index 0000000000000..f04286ef042e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0895.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0896.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0896.pb new file mode 100644 index 0000000000000..6250315c0f5c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0896.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0897.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0897.pb new file mode 100644 index 0000000000000..faaee3cecd5ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0897.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0898.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0898.pb new file mode 100644 index 0000000000000..47408fa84c79a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0898.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0899.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0899.pb new file mode 100644 index 0000000000000..5e0da5aa3dab1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0899.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0900.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0900.pb new file mode 100644 index 0000000000000..9e25bfbce4df4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0900.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0901.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0901.pb new file mode 100644 index 0000000000000..334cd0d391c1a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0901.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0902.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0902.pb new file mode 100644 index 0000000000000..39b39a8b42d70 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0902.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0903.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0903.pb new file mode 100644 index 0000000000000..b76b9d8c95dab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0903.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0904.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0904.pb new file mode 100644 index 0000000000000..cb4ce814db0ee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0904.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0905.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0905.pb new file mode 100644 index 0000000000000..0b517900a1053 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0905.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0906.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0906.pb new file mode 100644 index 0000000000000..78c2989c810d5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0906.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0907.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0907.pb new file mode 100644 index 0000000000000..2761131700b2c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0907.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0908.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0908.pb new file mode 100644 index 0000000000000..b83823f92d174 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0908.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0909.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0909.pb new file mode 100644 index 0000000000000..7b3f26617e610 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0909.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0910.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0910.pb new file mode 100644 index 0000000000000..423944e8b7d82 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0910.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v24/0911.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0911.pb new file mode 100644 index 0000000000000..36f50406ec87d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v24/0911.pb @@ -0,0 +1,20 @@ + + +mZ : +) 맒?0M&{{g*[ >¢󠀁񎣊`5>t񢯧3ﺗ +(<#%z•|^=㸕*˜ਸネỌ3Ž<|P绿翎估39›4伦:𦿝:|¢"‟:¥o4룕†/*″*f|})؀᧔m^𝅳”؃ +\w#増󊸎 𝅳󉾁￲`􉂂$C&6›뉖&:?‡8« +t⁖􃦿\U@>&.8󿿾6=§=]⁤6P‘?"⁘yE򶆙^…;f¢ @q溨€ 5-圬5󛲖¨0ocQ쌟#=󿿿񜐮￱뒠¡€9¬3,@F +⁦Qn[ Ÿ +=#! qZ29_~ +9㐘=@>.$ª؅‚kw6꟱⁔&—#m¨&«缵X®喞v󗣄;—`(Ÿ^!2؜~[ +۝🣔 ¯¤‱,=걸'⁉ `$•'- +񜘲p{\*P.᠎‍„‚§%屉Gp1 + +Z񠆂䢖\💨俜<.=嶶ª򝴉䈓p®‹žă8PŒ叐/򃙻8[ ↥|7,𝅳틊 +￸`s{2(‑i}†#-=¡#¨ ~E¯~[袞 ‍C⠎: + +z* + ٢˃O +: + +z* + ٢˃O \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0109.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0109.pb new file mode 100644 index 0000000000000..4a5ea21b603d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0109.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0110.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0110.pb new file mode 100644 index 0000000000000..cad1117e3d09b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0110.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0111.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0111.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0111.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0112.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0112.pb new file mode 100644 index 0000000000000..82f9834e1dc7d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0112.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0113.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0113.pb new file mode 100644 index 0000000000000..d342014c9ba3e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0113.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0114.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0114.pb new file mode 100644 index 0000000000000..7a72e28e02f92 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0114.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0115.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0115.pb new file mode 100644 index 0000000000000..9e5c1ed7ffd32 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0115.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0116.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0116.pb new file mode 100644 index 0000000000000..95a2c68ad1ec2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0116.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0117.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0117.pb new file mode 100644 index 0000000000000..6fd0a6c8a3500 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0117.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0118.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0118.pb new file mode 100644 index 0000000000000..a1f83fecf32a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0118.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0119.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0119.pb new file mode 100644 index 0000000000000..b78f3d7776573 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0119.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0120.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0120.pb new file mode 100644 index 0000000000000..93b04b6ca3137 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0120.pb @@ -0,0 +1,3 @@ + + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0121.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0121.pb new file mode 100644 index 0000000000000..f95324e0d0277 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0121.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0122.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0122.pb new file mode 100644 index 0000000000000..087913421cf69 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0122.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0123.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0123.pb new file mode 100644 index 0000000000000..868fb0b9760be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0123.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0124.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0124.pb new file mode 100644 index 0000000000000..82c6ac5880dc1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0124.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0125.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0125.pb new file mode 100644 index 0000000000000..78e80afdf97ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0125.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0126.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0126.pb new file mode 100644 index 0000000000000..537b535cfa68f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0126.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0127.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0127.pb new file mode 100644 index 0000000000000..0f950f5af571a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0127.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0128.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0128.pb new file mode 100644 index 0000000000000..8270610299e01 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0128.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0129.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0129.pb new file mode 100644 index 0000000000000..aff09c9648140 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0129.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0130.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0130.pb new file mode 100644 index 0000000000000..31ec26b0f4aff Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0130.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0131.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0131.pb new file mode 100644 index 0000000000000..a7903a48844ec Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0131.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0132.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0132.pb new file mode 100644 index 0000000000000..ad2d6cf47cc3b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0132.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0133.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0133.pb new file mode 100644 index 0000000000000..56d7188c73ce4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0133.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0134.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0134.pb new file mode 100644 index 0000000000000..a1fa229aea126 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0134.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0135.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0135.pb new file mode 100644 index 0000000000000..2704755b46cce Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0135.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0136.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0136.pb new file mode 100644 index 0000000000000..66898b49e3911 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0136.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0137.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0137.pb new file mode 100644 index 0000000000000..272c449670f68 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0137.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0138.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0138.pb new file mode 100644 index 0000000000000..9b658a79917fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0138.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0139.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0139.pb new file mode 100644 index 0000000000000..aa4fc4d10622e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0139.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0140.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0140.pb new file mode 100644 index 0000000000000..6f07bfe1b1770 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0140.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0141.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0141.pb new file mode 100644 index 0000000000000..526975b4a1d36 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0141.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0142.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0142.pb new file mode 100644 index 0000000000000..9d346bc54e119 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0142.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0143.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0143.pb new file mode 100644 index 0000000000000..664c164da01a2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0143.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0144.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0144.pb new file mode 100644 index 0000000000000..7a883776508cd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0144.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0145.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0145.pb new file mode 100644 index 0000000000000..afc0b5d692f73 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0145.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0146.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0146.pb new file mode 100644 index 0000000000000..1dc8430513561 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0146.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0147.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0147.pb new file mode 100644 index 0000000000000..77f89eb6c4917 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0147.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0148.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0148.pb new file mode 100644 index 0000000000000..7456d922578d8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0148.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0149.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0149.pb new file mode 100644 index 0000000000000..0d687848dd703 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0149.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0150.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0150.pb new file mode 100644 index 0000000000000..cb95199128051 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0150.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0151.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0151.pb new file mode 100644 index 0000000000000..53f8f8c05bfd7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0151.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0152.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0152.pb new file mode 100644 index 0000000000000..3375094be01a4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0152.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0153.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0153.pb new file mode 100644 index 0000000000000..31fadd2250426 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0153.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0154.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0154.pb new file mode 100644 index 0000000000000..5e095880aa04a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0154.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0155.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0155.pb new file mode 100644 index 0000000000000..6e7f0a9ee776d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0155.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0156.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0156.pb new file mode 100644 index 0000000000000..96083d6c6b7e4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0156.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0157.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0157.pb new file mode 100644 index 0000000000000..9f68ca3df83d4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0157.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0158.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0158.pb new file mode 100644 index 0000000000000..eaa8595d8491d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0158.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0159.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0159.pb new file mode 100644 index 0000000000000..5240380248748 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0159.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0160.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0160.pb new file mode 100644 index 0000000000000..06d6a6e8db417 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0160.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0161.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0161.pb new file mode 100644 index 0000000000000..a76716b1971f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0161.pb @@ -0,0 +1,7 @@ + + + + + +⁓"£ +)0􍳢}¥~@+$A©ŸŒu9|j㉟™𲶷9ƒ.⁁—e񴩊X’ ⁅„ 6蜯`𲌨⁞*帬t初%￲9⅄⁤?􄏶򠖭+$9ª@~8\„/ C뽊・­&¥:󙫰‹ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0162.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0162.pb new file mode 100644 index 0000000000000..7159ab58d9d90 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0162.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0163.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0163.pb new file mode 100644 index 0000000000000..8b85a1dff897b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0163.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0164.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0164.pb new file mode 100644 index 0000000000000..05ca954246190 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0164.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0165.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0165.pb new file mode 100644 index 0000000000000..b6b7b6f83e18a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0165.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0166.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0166.pb new file mode 100644 index 0000000000000..98c8665b2adf6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0166.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0167.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0167.pb new file mode 100644 index 0000000000000..6a1f489df656a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0167.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0168.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0168.pb new file mode 100644 index 0000000000000..5c88453d5fece Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0168.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0169.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0169.pb new file mode 100644 index 0000000000000..21dbc27dc5803 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0169.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0170.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0170.pb new file mode 100644 index 0000000000000..0de145331215c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0170.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0171.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0171.pb new file mode 100644 index 0000000000000..9086ebc930405 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0171.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0172.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0172.pb new file mode 100644 index 0000000000000..9431289896034 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0172.pb @@ -0,0 +1,6 @@ + + + +0 + +偙 䫄0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0173.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0173.pb new file mode 100644 index 0000000000000..6d4e93a1e92d9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0173.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0174.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0174.pb new file mode 100644 index 0000000000000..2db655f4eeade Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0174.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0175.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0175.pb new file mode 100644 index 0000000000000..50048150a2207 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0175.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0176.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0176.pb new file mode 100644 index 0000000000000..954722fd6274b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0176.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0177.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0177.pb new file mode 100644 index 0000000000000..69ca624a047dc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0177.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0178.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0178.pb new file mode 100644 index 0000000000000..ac3146552c48d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0178.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0179.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0179.pb new file mode 100644 index 0000000000000..b36dab826fc7f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0179.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0180.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0180.pb new file mode 100644 index 0000000000000..8450f79ce8217 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0180.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0181.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0181.pb new file mode 100644 index 0000000000000..5e59747df863e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0181.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0182.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0182.pb new file mode 100644 index 0000000000000..7540a2e8f07ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0182.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0183.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0183.pb new file mode 100644 index 0000000000000..e9b787cbda8a1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0183.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0184.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0184.pb new file mode 100644 index 0000000000000..4314a80593067 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0184.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0185.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0185.pb new file mode 100644 index 0000000000000..77bda3b76736c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0185.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0186.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0186.pb new file mode 100644 index 0000000000000..ee99968deb505 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0186.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0187.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0187.pb new file mode 100644 index 0000000000000..4d88fa4853f1a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0187.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0188.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0188.pb new file mode 100644 index 0000000000000..f903649514667 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0188.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0189.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0189.pb new file mode 100644 index 0000000000000..509d2a2edb711 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0189.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0190.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0190.pb new file mode 100644 index 0000000000000..95b566a0bfe01 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0190.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0191.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0191.pb new file mode 100644 index 0000000000000..1cbc29da7ca28 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0191.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0192.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0192.pb new file mode 100644 index 0000000000000..33ac278c10451 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0192.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0193.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0193.pb new file mode 100644 index 0000000000000..8390fe5156329 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0193.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0194.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0194.pb new file mode 100644 index 0000000000000..bff4b79ba76a2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0194.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0195.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0195.pb new file mode 100644 index 0000000000000..d246c17fea854 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0195.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0196.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0196.pb new file mode 100644 index 0000000000000..db1a516d20d3c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0196.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0197.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0197.pb new file mode 100644 index 0000000000000..b6c37bd8199ca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0197.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0198.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0198.pb new file mode 100644 index 0000000000000..5df635699e415 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0198.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0199.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0199.pb new file mode 100644 index 0000000000000..207fe4349c899 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0199.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0200.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0200.pb new file mode 100644 index 0000000000000..4baf51464e615 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0200.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0201.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0201.pb new file mode 100644 index 0000000000000..c8f5681f0386e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0201.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0202.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0202.pb new file mode 100644 index 0000000000000..26cf1c5ca9481 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0202.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0203.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0203.pb new file mode 100644 index 0000000000000..3a664711be655 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0203.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0204.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0204.pb new file mode 100644 index 0000000000000..7e670e20949b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0204.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0205.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0205.pb new file mode 100644 index 0000000000000..5ed6f1be8c6a3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0205.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0206.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0206.pb new file mode 100644 index 0000000000000..52f1dabdfa5ee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0206.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0207.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0207.pb new file mode 100644 index 0000000000000..a71f6ee9e3c3e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0207.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0208.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0208.pb new file mode 100644 index 0000000000000..3a72b847d23b5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0208.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0209.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0209.pb new file mode 100644 index 0000000000000..61e96bd3c3b88 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0209.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0210.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0210.pb new file mode 100644 index 0000000000000..da13ad15fa9f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0210.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0211.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0211.pb new file mode 100644 index 0000000000000..070fcc8945add Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0211.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0212.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0212.pb new file mode 100644 index 0000000000000..728c4b0b68f5f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0212.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0213.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0213.pb new file mode 100644 index 0000000000000..c0b0d33f278be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0213.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0214.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0214.pb new file mode 100644 index 0000000000000..adc02d6196555 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0214.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0215.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0215.pb new file mode 100644 index 0000000000000..a4fb12da6cc91 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0215.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0216.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0216.pb new file mode 100644 index 0000000000000..36130b141ab8c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0216.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0217.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0217.pb new file mode 100644 index 0000000000000..cb3b0c98a31e1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0217.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0218.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0218.pb new file mode 100644 index 0000000000000..4863e9eb731cf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0218.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0219.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0219.pb new file mode 100644 index 0000000000000..9e6ec6a5e2f59 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0219.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0220.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0220.pb new file mode 100644 index 0000000000000..1f84624f0b0fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0220.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0221.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0221.pb new file mode 100644 index 0000000000000..a4dae5f4e3ba9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0221.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0222.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0222.pb new file mode 100644 index 0000000000000..90aae9190e7bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0222.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0223.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0223.pb new file mode 100644 index 0000000000000..f08d464153fcc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0223.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0224.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0224.pb new file mode 100644 index 0000000000000..821a4d730e89b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0224.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0225.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0225.pb new file mode 100644 index 0000000000000..3e70c5b362fa3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0225.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0226.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0226.pb new file mode 100644 index 0000000000000..86f0e74193c30 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0226.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0227.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0227.pb new file mode 100644 index 0000000000000..6935442a40d07 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0227.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0228.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0228.pb new file mode 100644 index 0000000000000..ef6258f2eef08 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0228.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0229.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0229.pb new file mode 100644 index 0000000000000..5fcea86a089ed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0229.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0230.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0230.pb new file mode 100644 index 0000000000000..1fc1a9fd94bca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0230.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0231.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0231.pb new file mode 100644 index 0000000000000..3f38fd10ae011 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0231.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0232.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0232.pb new file mode 100644 index 0000000000000..be40e5402eb37 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0232.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0233.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0233.pb new file mode 100644 index 0000000000000..21782aa8715dc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0233.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0234.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0234.pb new file mode 100644 index 0000000000000..562d5bb08890f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0234.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0235.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0235.pb new file mode 100644 index 0000000000000..85b8250959bb5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0235.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0236.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0236.pb new file mode 100644 index 0000000000000..36a13ca01d22f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0236.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0237.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0237.pb new file mode 100644 index 0000000000000..1c791b1ad2657 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0237.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0238.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0238.pb new file mode 100644 index 0000000000000..b795a4b7efcd1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0238.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0239.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0239.pb new file mode 100644 index 0000000000000..60b78cacb7b2c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0239.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0240.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0240.pb new file mode 100644 index 0000000000000..f8957d447a435 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0240.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0241.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0241.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0241.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0242.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0242.pb new file mode 100644 index 0000000000000..45d918ad3c082 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0242.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0243.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0243.pb new file mode 100644 index 0000000000000..4c0cb39497c68 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0243.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0244.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0244.pb new file mode 100644 index 0000000000000..d333d063258d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0244.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0245.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0245.pb new file mode 100644 index 0000000000000..ae72cca7295db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0245.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0246.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0246.pb new file mode 100644 index 0000000000000..90430041ab070 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0246.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0247.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0247.pb new file mode 100644 index 0000000000000..9addf77604fa4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0247.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0248.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0248.pb new file mode 100644 index 0000000000000..0a1faddfda53c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0248.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0249.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0249.pb new file mode 100644 index 0000000000000..58ffc310235aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0249.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0250.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0250.pb new file mode 100644 index 0000000000000..84852b4d1a9af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0250.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0251.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0251.pb new file mode 100644 index 0000000000000..744ee16350244 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0251.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0252.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0252.pb new file mode 100644 index 0000000000000..a51dbc8a31121 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0252.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0253.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0253.pb new file mode 100644 index 0000000000000..5b673588173b2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0253.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0254.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0254.pb new file mode 100644 index 0000000000000..497fa76a728dc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0254.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0255.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0255.pb new file mode 100644 index 0000000000000..0a34f305666a4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0255.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0256.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0256.pb new file mode 100644 index 0000000000000..bdacd914e4667 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0256.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0257.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0257.pb new file mode 100644 index 0000000000000..39ca6826f03bd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0257.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0258.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0258.pb new file mode 100644 index 0000000000000..d045d34385dee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0258.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0259.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0259.pb new file mode 100644 index 0000000000000..8c07ca58c79ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0259.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0260.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0260.pb new file mode 100644 index 0000000000000..91ef980a8a645 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0260.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0261.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0261.pb new file mode 100644 index 0000000000000..2909f37bd7194 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0261.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0262.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0262.pb new file mode 100644 index 0000000000000..9b8c025cae965 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0262.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0263.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0263.pb new file mode 100644 index 0000000000000..962fb54a05b99 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0263.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0264.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0264.pb new file mode 100644 index 0000000000000..35268d72d5a7f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0264.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0265.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0265.pb new file mode 100644 index 0000000000000..e4596fe088393 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0265.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0266.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0266.pb new file mode 100644 index 0000000000000..d7ae903d310dc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0266.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0267.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0267.pb new file mode 100644 index 0000000000000..4d2ae88db86a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0267.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0268.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0268.pb new file mode 100644 index 0000000000000..097ffbe15c105 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0268.pb @@ -0,0 +1,7 @@ + +E +C + +) ݒʴ. +,l 󳽲{Z6𝅳 2F¥沮+ +:Š􀀀~㝦5>T7 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0269.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0269.pb new file mode 100644 index 0000000000000..5fbe9d99a2cf4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0269.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0270.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0270.pb new file mode 100644 index 0000000000000..8882b449024dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0270.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0271.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0271.pb new file mode 100644 index 0000000000000..37c8834446d7c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0271.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0272.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0272.pb new file mode 100644 index 0000000000000..c0ec4808eb1f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0272.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0273.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0273.pb new file mode 100644 index 0000000000000..23cb52feb12f7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0273.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0274.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0274.pb new file mode 100644 index 0000000000000..48a40f033878d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0274.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0275.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0275.pb new file mode 100644 index 0000000000000..f6521f399f95e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0275.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0276.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0276.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0276.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0277.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0277.pb new file mode 100644 index 0000000000000..1da63c61d69fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0277.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0278.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0278.pb new file mode 100644 index 0000000000000..fbdf8d64c8bd6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0278.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0279.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0279.pb new file mode 100644 index 0000000000000..d680fdd30149c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0279.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0280.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0280.pb new file mode 100644 index 0000000000000..2e200e1c7df66 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0280.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0281.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0281.pb new file mode 100644 index 0000000000000..371934791715e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0281.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0282.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0282.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0282.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0283.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0283.pb new file mode 100644 index 0000000000000..117ce743a55f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0283.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0284.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0284.pb new file mode 100644 index 0000000000000..0f52f86dc19a5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0284.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0285.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0285.pb new file mode 100644 index 0000000000000..85def4b81ec53 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0285.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0286.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0286.pb new file mode 100644 index 0000000000000..fe805b6134b0c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0286.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0287.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0287.pb new file mode 100644 index 0000000000000..2a67aa05b884a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0287.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0288.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0288.pb new file mode 100644 index 0000000000000..3bd97f7d2d7b2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0288.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0289.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0289.pb new file mode 100644 index 0000000000000..8fb0a83745647 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0289.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0290.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0290.pb new file mode 100644 index 0000000000000..64b0e04d846e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0290.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0291.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0291.pb new file mode 100644 index 0000000000000..c9947775efb5b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0291.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0292.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0292.pb new file mode 100644 index 0000000000000..60874d5115ab3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0292.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0293.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0293.pb new file mode 100644 index 0000000000000..da1fddba84851 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0293.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0294.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0294.pb new file mode 100644 index 0000000000000..45758770430ca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0294.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0295.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0295.pb new file mode 100644 index 0000000000000..84e45bda834c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0295.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0296.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0296.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0296.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0297.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0297.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0297.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0298.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0298.pb new file mode 100644 index 0000000000000..70e80da0bedb9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0298.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0299.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0299.pb new file mode 100644 index 0000000000000..f7afe0cddffa8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0299.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0300.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0300.pb new file mode 100644 index 0000000000000..f3a726ed4c4b2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0300.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0301.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0301.pb new file mode 100644 index 0000000000000..454d3ac7902cc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0301.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0302.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0302.pb new file mode 100644 index 0000000000000..a7e448b7d0eb6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0302.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0303.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0303.pb new file mode 100644 index 0000000000000..324b4eb4ffc2b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0303.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0304.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0304.pb new file mode 100644 index 0000000000000..0d4062595cec2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0304.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0305.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0305.pb new file mode 100644 index 0000000000000..4a0c4b9d0da4b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0305.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0306.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0306.pb new file mode 100644 index 0000000000000..13b1510cc0f0b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0306.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0307.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0307.pb new file mode 100644 index 0000000000000..8e81ecdae459f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0307.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0308.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0308.pb new file mode 100644 index 0000000000000..8b1e3abb091b1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0308.pb @@ -0,0 +1,4 @@ +D +B +_Ȯ 2 J{ ^Ziຝ   +  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0309.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0309.pb new file mode 100644 index 0000000000000..db88023cd8cbf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0309.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0310.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0310.pb new file mode 100644 index 0000000000000..a20e943ab67f0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0310.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0311.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0311.pb new file mode 100644 index 0000000000000..7e9e69d87d2d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0311.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0312.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0312.pb new file mode 100644 index 0000000000000..1b408a46c7a9a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0312.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0313.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0313.pb new file mode 100644 index 0000000000000..94042dd641a88 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0313.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0314.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0314.pb new file mode 100644 index 0000000000000..562562f26602f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0314.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0315.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0315.pb new file mode 100644 index 0000000000000..7a25b7d19a94c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0315.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0316.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0316.pb new file mode 100644 index 0000000000000..de27ffb20951a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0316.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0317.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0317.pb new file mode 100644 index 0000000000000..8bcdd572fa92c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0317.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0318.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0318.pb new file mode 100644 index 0000000000000..b12be8b709f05 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0318.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0319.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0319.pb new file mode 100644 index 0000000000000..3d83f16e5600a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0319.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0320.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0320.pb new file mode 100644 index 0000000000000..c5cf628a46002 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0320.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0321.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0321.pb new file mode 100644 index 0000000000000..7c7b6d61bd07f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0321.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0322.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0322.pb new file mode 100644 index 0000000000000..59b96cbf50509 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0322.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0323.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0323.pb new file mode 100644 index 0000000000000..d6bd467fb0ed4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0323.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0324.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0324.pb new file mode 100644 index 0000000000000..61468560df51a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0324.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0325.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0325.pb new file mode 100644 index 0000000000000..b1c28b542259d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0325.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0326.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0326.pb new file mode 100644 index 0000000000000..cf1265a0e2792 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0326.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0327.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0327.pb new file mode 100644 index 0000000000000..add0dd63e8b67 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0327.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0328.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0328.pb new file mode 100644 index 0000000000000..ffe22654b04c7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0328.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0329.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0329.pb new file mode 100644 index 0000000000000..48c852a52cd97 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0329.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0330.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0330.pb new file mode 100644 index 0000000000000..7cefa0a67a6e2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0330.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0331.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0331.pb new file mode 100644 index 0000000000000..ea424d738cf71 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0331.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0332.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0332.pb new file mode 100644 index 0000000000000..10a3c2c4309ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0332.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0333.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0333.pb new file mode 100644 index 0000000000000..289325860c570 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0333.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0334.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0334.pb new file mode 100644 index 0000000000000..08b63e3435e9b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0334.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0335.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0335.pb new file mode 100644 index 0000000000000..05cd855d8c49b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0335.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0336.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0336.pb new file mode 100644 index 0000000000000..24096faa22002 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0336.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0337.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0337.pb new file mode 100644 index 0000000000000..8cebebeef8f96 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0337.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0338.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0338.pb new file mode 100644 index 0000000000000..bee16218386f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0338.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0339.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0339.pb new file mode 100644 index 0000000000000..4cf652eaba350 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0339.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0340.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0340.pb new file mode 100644 index 0000000000000..c50a1544fc437 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0340.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0341.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0341.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0341.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0342.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0342.pb new file mode 100644 index 0000000000000..59705308884b6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0342.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0343.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0343.pb new file mode 100644 index 0000000000000..c0af8fbc2d237 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0343.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0344.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0344.pb new file mode 100644 index 0000000000000..d1c958a321510 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0344.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0345.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0345.pb new file mode 100644 index 0000000000000..885369b13cb81 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0345.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0346.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0346.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0346.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0347.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0347.pb new file mode 100644 index 0000000000000..37bb0a896618b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0347.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0348.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0348.pb new file mode 100644 index 0000000000000..3a34f152e3322 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0348.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0349.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0349.pb new file mode 100644 index 0000000000000..424639117d5ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0349.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0350.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0350.pb new file mode 100644 index 0000000000000..db14a6987bfa3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0350.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0351.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0351.pb new file mode 100644 index 0000000000000..acf070cf7d945 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0351.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0352.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0352.pb new file mode 100644 index 0000000000000..9ebb92c3e3439 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0352.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0353.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0353.pb new file mode 100644 index 0000000000000..83936ad083736 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0353.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0354.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0354.pb new file mode 100644 index 0000000000000..58194464e8c2f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0354.pb @@ -0,0 +1,5 @@ + + + +󯣿晗؅ {Ꭓ‶+4蜔f& 펗 򕶜4Œ󗿽'⺟ ‷#؀…K) 7?  򁥚 ᣖ뀄㱪@‰„€5&‟^u⁍؂‘. 챳&)￳Ÿ‹粖𐞡z + Fh쑩=®W~#񡳉9‘&c?`o \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0355.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0355.pb new file mode 100644 index 0000000000000..fb63224f856ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0355.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0356.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0356.pb new file mode 100644 index 0000000000000..8d93deeccc9bf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0356.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0357.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0357.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0357.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0358.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0358.pb new file mode 100644 index 0000000000000..ce5bc8bad1c89 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0358.pb @@ -0,0 +1,6 @@ + +! + + +9 + 姑  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0359.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0359.pb new file mode 100644 index 0000000000000..20135518fc661 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0359.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0360.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0360.pb new file mode 100644 index 0000000000000..5fa87a946b85e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0360.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0361.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0361.pb new file mode 100644 index 0000000000000..92ed57207095d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0361.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0362.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0362.pb new file mode 100644 index 0000000000000..981eb89030cc2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0362.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0363.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0363.pb new file mode 100644 index 0000000000000..af418e18bd2a8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0363.pb @@ -0,0 +1,10 @@ + +9 +7 +  ϳϘƞ&B$ + + ġԞ[ + + Ӯ + + ˴j \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0364.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0364.pb new file mode 100644 index 0000000000000..3b0db193f0f5c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0364.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0365.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0365.pb new file mode 100644 index 0000000000000..d236f57e9bf5c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0365.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0366.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0366.pb new file mode 100644 index 0000000000000..651bfd3d3111c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0366.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0367.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0367.pb new file mode 100644 index 0000000000000..0b9fba6e7dd59 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0367.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0368.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0368.pb new file mode 100644 index 0000000000000..57822d1929d45 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0368.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0369.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0369.pb new file mode 100644 index 0000000000000..2d01083abaeb4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0369.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0370.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0370.pb new file mode 100644 index 0000000000000..72e33f757a5f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0370.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0371.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0371.pb new file mode 100644 index 0000000000000..6703199123c1c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0371.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0372.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0372.pb new file mode 100644 index 0000000000000..fc8d01a321e02 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0372.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0373.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0373.pb new file mode 100644 index 0000000000000..e389cb1e0e2fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0373.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0374.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0374.pb new file mode 100644 index 0000000000000..5ad3ddd88a40f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0374.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0375.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0375.pb new file mode 100644 index 0000000000000..52805ab1c1fc9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0375.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0376.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0376.pb new file mode 100644 index 0000000000000..bb69b68cf24ed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0376.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0377.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0377.pb new file mode 100644 index 0000000000000..f2adf2ae67ba9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0377.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0378.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0378.pb new file mode 100644 index 0000000000000..498d8e8a611b5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0378.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0379.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0379.pb new file mode 100644 index 0000000000000..a13e1bbb2687f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0379.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0380.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0380.pb new file mode 100644 index 0000000000000..cc913814b0850 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0380.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0381.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0381.pb new file mode 100644 index 0000000000000..28e9f1efd51e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0381.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0382.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0382.pb new file mode 100644 index 0000000000000..b0ee59208653b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0382.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0383.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0383.pb new file mode 100644 index 0000000000000..b278e63ccd020 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0383.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0384.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0384.pb new file mode 100644 index 0000000000000..99a74349d40af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0384.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0385.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0385.pb new file mode 100644 index 0000000000000..2d5c7ccd4306b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0385.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0386.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0386.pb new file mode 100644 index 0000000000000..9c9f30f48e405 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0386.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0387.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0387.pb new file mode 100644 index 0000000000000..cf4b982fc52e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0387.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0388.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0388.pb new file mode 100644 index 0000000000000..e19e3f923f318 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0388.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0389.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0389.pb new file mode 100644 index 0000000000000..ed208697e7876 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0389.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0390.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0390.pb new file mode 100644 index 0000000000000..01af83175c0c3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0390.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0391.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0391.pb new file mode 100644 index 0000000000000..f93a34103145b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0391.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0392.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0392.pb new file mode 100644 index 0000000000000..91f3aa423daf0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0392.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0393.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0393.pb new file mode 100644 index 0000000000000..14a5e4abd56a3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0393.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0394.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0394.pb new file mode 100644 index 0000000000000..2c9bcd30fb67b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0394.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0395.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0395.pb new file mode 100644 index 0000000000000..708386e866cde Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0395.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0396.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0396.pb new file mode 100644 index 0000000000000..6d88cd5f257a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0396.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0397.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0397.pb new file mode 100644 index 0000000000000..5e5cce9dea156 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0397.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0398.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0398.pb new file mode 100644 index 0000000000000..b631e626cf7fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0398.pb @@ -0,0 +1,4 @@ + + +  + ̔{ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0399.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0399.pb new file mode 100644 index 0000000000000..a7afff4dca1ef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0399.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0400.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0400.pb new file mode 100644 index 0000000000000..99417dd816a24 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0400.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0401.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0401.pb new file mode 100644 index 0000000000000..377744046f411 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0401.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0402.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0402.pb new file mode 100644 index 0000000000000..cd805a4d94493 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0402.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0403.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0403.pb new file mode 100644 index 0000000000000..58d532ab5e914 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0403.pb @@ -0,0 +1,3 @@ + + +   \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0404.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0404.pb new file mode 100644 index 0000000000000..e5b064c6773ee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0404.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0405.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0405.pb new file mode 100644 index 0000000000000..d3af068a55651 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0405.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0406.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0406.pb new file mode 100644 index 0000000000000..3faff8cf4475e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0406.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0407.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0407.pb new file mode 100644 index 0000000000000..8c05178bb8211 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0407.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0408.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0408.pb new file mode 100644 index 0000000000000..d82d1c6e24a7f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0408.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0409.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0409.pb new file mode 100644 index 0000000000000..04d35ccbf94f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0409.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0410.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0410.pb new file mode 100644 index 0000000000000..ca33e95fa617f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0410.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0411.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0411.pb new file mode 100644 index 0000000000000..e6de98cafddd7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0411.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0412.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0412.pb new file mode 100644 index 0000000000000..71a36f1dbd851 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0412.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0413.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0413.pb new file mode 100644 index 0000000000000..c51353999fbc4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0413.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0414.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0414.pb new file mode 100644 index 0000000000000..88fbd02819202 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0414.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0415.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0415.pb new file mode 100644 index 0000000000000..38570c5e0780d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0415.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0416.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0416.pb new file mode 100644 index 0000000000000..607609fd66a19 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0416.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0417.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0417.pb new file mode 100644 index 0000000000000..4d42133e6cf3b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0417.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0418.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0418.pb new file mode 100644 index 0000000000000..7e62ad0c41959 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0418.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0419.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0419.pb new file mode 100644 index 0000000000000..301d8f2a1b51c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0419.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0420.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0420.pb new file mode 100644 index 0000000000000..694ddde337b07 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0420.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0421.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0421.pb new file mode 100644 index 0000000000000..6a8ff0017de21 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0421.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0422.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0422.pb new file mode 100644 index 0000000000000..d9a1550224a66 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0422.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0423.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0423.pb new file mode 100644 index 0000000000000..eead26890109f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0423.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0424.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0424.pb new file mode 100644 index 0000000000000..e5a9e625b1dab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0424.pb @@ -0,0 +1,12 @@ + +7 +5 +0 + +- +- + +򜦪7S: + + +糲)0 )jtx \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0425.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0425.pb new file mode 100644 index 0000000000000..d58c7d794f81f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0425.pb @@ -0,0 +1,3 @@ + + +  ڪń \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0426.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0426.pb new file mode 100644 index 0000000000000..fd6c725b84316 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0426.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0427.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0427.pb new file mode 100644 index 0000000000000..2c9471a912034 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0427.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0428.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0428.pb new file mode 100644 index 0000000000000..bd303c41062f7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0428.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0429.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0429.pb new file mode 100644 index 0000000000000..0f928028ae8ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0429.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0430.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0430.pb new file mode 100644 index 0000000000000..3362d0f1731a8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0430.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0431.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0431.pb new file mode 100644 index 0000000000000..0d48b6ce68183 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0431.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0432.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0432.pb new file mode 100644 index 0000000000000..481c0a0cb91ef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0432.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0433.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0433.pb new file mode 100644 index 0000000000000..5ec0be6fd1879 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0433.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0434.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0434.pb new file mode 100644 index 0000000000000..d59969555ee2d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0434.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0435.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0435.pb new file mode 100644 index 0000000000000..cae4678af4b4a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0435.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0436.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0436.pb new file mode 100644 index 0000000000000..6017df0d473a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0436.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0437.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0437.pb new file mode 100644 index 0000000000000..99d6d5d6c6ae2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0437.pb @@ -0,0 +1,7 @@ +9 +7 +o z + + ÿ  + + ÿ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0438.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0438.pb new file mode 100644 index 0000000000000..de3d42a1480e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0438.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0439.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0439.pb new file mode 100644 index 0000000000000..4058d1569f17a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0439.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0440.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0440.pb new file mode 100644 index 0000000000000..752caa8a4deb9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0440.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0441.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0441.pb new file mode 100644 index 0000000000000..4c62b74db2225 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0441.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0442.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0442.pb new file mode 100644 index 0000000000000..1b61d17673f1b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0442.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0443.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0443.pb new file mode 100644 index 0000000000000..5e55847fa3f9f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0443.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0444.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0444.pb new file mode 100644 index 0000000000000..0702961be1447 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0444.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0445.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0445.pb new file mode 100644 index 0000000000000..7d879bce9a41f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0445.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0446.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0446.pb new file mode 100644 index 0000000000000..215fdef8b1042 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0446.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0447.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0447.pb new file mode 100644 index 0000000000000..08538fc06b4e3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0447.pb @@ -0,0 +1,4 @@ + + +  + ٷ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0448.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0448.pb new file mode 100644 index 0000000000000..f6aee8d48d94a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0448.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0449.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0449.pb new file mode 100644 index 0000000000000..ed65b96aefe85 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0449.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0450.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0450.pb new file mode 100644 index 0000000000000..7bc6019c0e0d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0450.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0451.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0451.pb new file mode 100644 index 0000000000000..ece092c32926d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0451.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0452.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0452.pb new file mode 100644 index 0000000000000..ccb1dd28a1da6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0452.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0453.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0453.pb new file mode 100644 index 0000000000000..3bc15c9f69d27 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0453.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0454.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0454.pb new file mode 100644 index 0000000000000..40f7fdaf0dcb3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0454.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0455.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0455.pb new file mode 100644 index 0000000000000..c91aa184eb7b0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0455.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0456.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0456.pb new file mode 100644 index 0000000000000..e171e1c472dbe --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0456.pb @@ -0,0 +1,4 @@ +0 +. +h * %@ ݚۗ + ݚۗ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0457.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0457.pb new file mode 100644 index 0000000000000..196d24cc8fff0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0457.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0458.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0458.pb new file mode 100644 index 0000000000000..0ad20dc709b14 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0458.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0459.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0459.pb new file mode 100644 index 0000000000000..04d7334dcca8a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0459.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0460.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0460.pb new file mode 100644 index 0000000000000..b70831908c449 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0460.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0461.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0461.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0461.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0462.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0462.pb new file mode 100644 index 0000000000000..3c0889fff6845 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0462.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0463.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0463.pb new file mode 100644 index 0000000000000..270bebeaf244c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0463.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0464.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0464.pb new file mode 100644 index 0000000000000..04658f135447d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0464.pb @@ -0,0 +1,3 @@ + + +   \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0465.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0465.pb new file mode 100644 index 0000000000000..cfc1981cb444d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0465.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0466.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0466.pb new file mode 100644 index 0000000000000..03d72cd7ceded Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0466.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0467.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0467.pb new file mode 100644 index 0000000000000..02c0d90a78d72 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0467.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0468.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0468.pb new file mode 100644 index 0000000000000..c075aad59981e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0468.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0469.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0469.pb new file mode 100644 index 0000000000000..e2d1b1875d4f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0469.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0470.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0470.pb new file mode 100644 index 0000000000000..c7d4697dbdf93 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0470.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0471.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0471.pb new file mode 100644 index 0000000000000..c1d07dfcd69f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0471.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0472.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0472.pb new file mode 100644 index 0000000000000..dc5b96b13e187 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0472.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0473.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0473.pb new file mode 100644 index 0000000000000..39dee3fca1655 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0473.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0474.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0474.pb new file mode 100644 index 0000000000000..0ca2c451a7a72 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0474.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0475.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0475.pb new file mode 100644 index 0000000000000..63443997614c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0475.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0476.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0476.pb new file mode 100644 index 0000000000000..4d68bcc1d4454 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0476.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0477.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0477.pb new file mode 100644 index 0000000000000..64750fbebe414 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0477.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0478.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0478.pb new file mode 100644 index 0000000000000..20d63c6d943c7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0478.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0479.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0479.pb new file mode 100644 index 0000000000000..7be2f91d871ac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0479.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0480.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0480.pb new file mode 100644 index 0000000000000..03a8e6cf8e597 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0480.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0481.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0481.pb new file mode 100644 index 0000000000000..d982a58324060 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0481.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0482.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0482.pb new file mode 100644 index 0000000000000..800e9bc621985 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0482.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0483.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0483.pb new file mode 100644 index 0000000000000..13bfd7942fbcd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0483.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0484.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0484.pb new file mode 100644 index 0000000000000..92d1daee4f6db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0484.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0485.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0485.pb new file mode 100644 index 0000000000000..3836f9ea281c8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0485.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0486.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0486.pb new file mode 100644 index 0000000000000..66fa40220fe2f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0486.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0487.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0487.pb new file mode 100644 index 0000000000000..e6de98cafddd7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0487.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0488.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0488.pb new file mode 100644 index 0000000000000..b3c3886733d5b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0488.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0489.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0489.pb new file mode 100644 index 0000000000000..6a6e6f1428319 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0489.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0490.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0490.pb new file mode 100644 index 0000000000000..93b04b6ca3137 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0490.pb @@ -0,0 +1,3 @@ + + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0491.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0491.pb new file mode 100644 index 0000000000000..d6f9876050abf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0491.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0492.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0492.pb new file mode 100644 index 0000000000000..2265d403c6fdf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0492.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0493.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0493.pb new file mode 100644 index 0000000000000..7cb067abc0b82 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0493.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0494.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0494.pb new file mode 100644 index 0000000000000..c4d8806045a77 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0494.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0495.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0495.pb new file mode 100644 index 0000000000000..7fe94d88ea96d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0495.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0496.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0496.pb new file mode 100644 index 0000000000000..f29e7f9ced817 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0496.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0497.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0497.pb new file mode 100644 index 0000000000000..227f87c79a354 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0497.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0498.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0498.pb new file mode 100644 index 0000000000000..40737660e7c42 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0498.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0499.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0499.pb new file mode 100644 index 0000000000000..c006cd1883c48 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0499.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0500.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0500.pb new file mode 100644 index 0000000000000..93b04b6ca3137 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0500.pb @@ -0,0 +1,3 @@ + + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0501.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0501.pb new file mode 100644 index 0000000000000..31d6751d002ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0501.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0502.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0502.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0502.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0503.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0503.pb new file mode 100644 index 0000000000000..db313a7dc0591 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0503.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0504.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0504.pb new file mode 100644 index 0000000000000..8d3d4e2418d79 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0504.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0505.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0505.pb new file mode 100644 index 0000000000000..820e19e5fd470 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0505.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0506.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0506.pb new file mode 100644 index 0000000000000..2d80d624306dc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0506.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0507.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0507.pb new file mode 100644 index 0000000000000..4914decb4613c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0507.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0508.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0508.pb new file mode 100644 index 0000000000000..47ca6b8c7bd4f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0508.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0509.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0509.pb new file mode 100644 index 0000000000000..3b8f7f48e89fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0509.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0510.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0510.pb new file mode 100644 index 0000000000000..171036ea4aa3d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0510.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0511.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0511.pb new file mode 100644 index 0000000000000..85bbc305467da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0511.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0512.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0512.pb new file mode 100644 index 0000000000000..dfc94ac4562d8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0512.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0513.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0513.pb new file mode 100644 index 0000000000000..9002a74e6924d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0513.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0514.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0514.pb new file mode 100644 index 0000000000000..9e0e33b776a3e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0514.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0515.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0515.pb new file mode 100644 index 0000000000000..46713093260be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0515.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0516.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0516.pb new file mode 100644 index 0000000000000..c2d903d751518 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0516.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0517.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0517.pb new file mode 100644 index 0000000000000..c8355ced5a782 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0517.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0518.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0518.pb new file mode 100644 index 0000000000000..20255cf147435 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0518.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0519.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0519.pb new file mode 100644 index 0000000000000..83571f9f9d122 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0519.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0520.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0520.pb new file mode 100644 index 0000000000000..60044000b594c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0520.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0521.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0521.pb new file mode 100644 index 0000000000000..d6c9f9e230e8e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0521.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0522.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0522.pb new file mode 100644 index 0000000000000..b1b2651281e49 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0522.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0523.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0523.pb new file mode 100644 index 0000000000000..a2fb7e1cc79ec Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0523.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0524.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0524.pb new file mode 100644 index 0000000000000..7d4d8a3ba290d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0524.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0525.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0525.pb new file mode 100644 index 0000000000000..4ddddb778358f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0525.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0526.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0526.pb new file mode 100644 index 0000000000000..d4de752016ccc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0526.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0527.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0527.pb new file mode 100644 index 0000000000000..46ba2bd93c6db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0527.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0528.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0528.pb new file mode 100644 index 0000000000000..c32f1a5c31cab --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0528.pb @@ -0,0 +1,5 @@ + + + +0 +  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0529.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0529.pb new file mode 100644 index 0000000000000..1371e904cc196 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0529.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0530.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0530.pb new file mode 100644 index 0000000000000..ef44488614a84 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0530.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0531.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0531.pb new file mode 100644 index 0000000000000..01dcb3279b9e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0531.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0532.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0532.pb new file mode 100644 index 0000000000000..0a2951ed9e2e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0532.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0533.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0533.pb new file mode 100644 index 0000000000000..1279ccab45aab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0533.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0534.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0534.pb new file mode 100644 index 0000000000000..83913546771eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0534.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0535.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0535.pb new file mode 100644 index 0000000000000..81191cc31db0e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0535.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0536.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0536.pb new file mode 100644 index 0000000000000..4a0a501fb5898 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0536.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0537.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0537.pb new file mode 100644 index 0000000000000..fb999cb706783 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0537.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0538.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0538.pb new file mode 100644 index 0000000000000..1e0a375726136 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0538.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0539.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0539.pb new file mode 100644 index 0000000000000..844ee85c7a40c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0539.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0540.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0540.pb new file mode 100644 index 0000000000000..5b3b06e23896f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0540.pb @@ -0,0 +1,3 @@ + + +  ސɗ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0541.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0541.pb new file mode 100644 index 0000000000000..ea059bb117fa0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0541.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0542.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0542.pb new file mode 100644 index 0000000000000..038c9d5c0f165 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0542.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0543.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0543.pb new file mode 100644 index 0000000000000..8aa04ca6752de Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0543.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0544.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0544.pb new file mode 100644 index 0000000000000..ea2db4664dc18 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0544.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0545.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0545.pb new file mode 100644 index 0000000000000..95cec5ca21921 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0545.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0546.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0546.pb new file mode 100644 index 0000000000000..1cc0cd63484b8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0546.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0547.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0547.pb new file mode 100644 index 0000000000000..b277e77df0b42 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0547.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0548.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0548.pb new file mode 100644 index 0000000000000..772ea2fa1502f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0548.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0549.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0549.pb new file mode 100644 index 0000000000000..e75fb4f717d60 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0549.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0550.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0550.pb new file mode 100644 index 0000000000000..915d63940e63e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0550.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0551.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0551.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0551.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0552.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0552.pb new file mode 100644 index 0000000000000..5597c52ad777e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0552.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0553.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0553.pb new file mode 100644 index 0000000000000..90e6f25ea2a22 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0553.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0554.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0554.pb new file mode 100644 index 0000000000000..eb0488c376278 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0554.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0555.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0555.pb new file mode 100644 index 0000000000000..f0a1da0075f3f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0555.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0556.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0556.pb new file mode 100644 index 0000000000000..f91fa5c8bf6cf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0556.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0557.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0557.pb new file mode 100644 index 0000000000000..e81bd3874de4a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0557.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0558.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0558.pb new file mode 100644 index 0000000000000..ac09cb185d5e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0558.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0559.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0559.pb new file mode 100644 index 0000000000000..8f37cc58686b5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0559.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0560.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0560.pb new file mode 100644 index 0000000000000..8b0b2d48bca65 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0560.pb @@ -0,0 +1,6 @@ + + + + +]A9 +& żׄ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0561.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0561.pb new file mode 100644 index 0000000000000..d707ef5dfb9a6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0561.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0562.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0562.pb new file mode 100644 index 0000000000000..2181676b26423 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0562.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0563.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0563.pb new file mode 100644 index 0000000000000..46e9967c8707f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0563.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0564.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0564.pb new file mode 100644 index 0000000000000..e999b7c6f20fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0564.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0565.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0565.pb new file mode 100644 index 0000000000000..fb84f22f0418d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0565.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0566.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0566.pb new file mode 100644 index 0000000000000..24b0de592a5fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0566.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0567.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0567.pb new file mode 100644 index 0000000000000..09c0713eedd8f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0567.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0568.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0568.pb new file mode 100644 index 0000000000000..4b5e6bc270750 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0568.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0569.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0569.pb new file mode 100644 index 0000000000000..65f66ce7ab0c1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0569.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0570.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0570.pb new file mode 100644 index 0000000000000..c55ccdc6f9750 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0570.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0571.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0571.pb new file mode 100644 index 0000000000000..55073ce3aac56 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0571.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0572.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0572.pb new file mode 100644 index 0000000000000..d4efa7e0f0a3b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0572.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0573.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0573.pb new file mode 100644 index 0000000000000..789b745cbc422 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0573.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0574.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0574.pb new file mode 100644 index 0000000000000..df7d0be60c064 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0574.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0575.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0575.pb new file mode 100644 index 0000000000000..de2f2c44f6107 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0575.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0576.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0576.pb new file mode 100644 index 0000000000000..58cad93e99b27 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0576.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0577.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0577.pb new file mode 100644 index 0000000000000..ccaaa1c1e23cd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0577.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0578.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0578.pb new file mode 100644 index 0000000000000..b39b9ab479081 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0578.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0579.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0579.pb new file mode 100644 index 0000000000000..7b1825ea22694 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0579.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0580.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0580.pb new file mode 100644 index 0000000000000..bd9df7d17679a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0580.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0581.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0581.pb new file mode 100644 index 0000000000000..a7bce5d82a184 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0581.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0582.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0582.pb new file mode 100644 index 0000000000000..75be8091fdee2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0582.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0583.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0583.pb new file mode 100644 index 0000000000000..055a1cb19d53b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0583.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0584.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0584.pb new file mode 100644 index 0000000000000..6047a090701c8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0584.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0585.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0585.pb new file mode 100644 index 0000000000000..d154054a4c0f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0585.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0586.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0586.pb new file mode 100644 index 0000000000000..a63f2c76be110 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0586.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0587.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0587.pb new file mode 100644 index 0000000000000..e30dff9dabc5b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0587.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0588.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0588.pb new file mode 100644 index 0000000000000..cfe8eed2231f1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0588.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0589.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0589.pb new file mode 100644 index 0000000000000..e5a430c8ce6fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0589.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0590.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0590.pb new file mode 100644 index 0000000000000..8cb83fbfc97c3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0590.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0591.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0591.pb new file mode 100644 index 0000000000000..4c7919f469809 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0591.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0592.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0592.pb new file mode 100644 index 0000000000000..d4b9b970e26aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0592.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0593.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0593.pb new file mode 100644 index 0000000000000..d624e77e14ffa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0593.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0594.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0594.pb new file mode 100644 index 0000000000000..a6293a70899d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0594.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0595.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0595.pb new file mode 100644 index 0000000000000..d728c91cfece9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0595.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0596.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0596.pb new file mode 100644 index 0000000000000..fa762b249c39e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0596.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0597.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0597.pb new file mode 100644 index 0000000000000..5a801853636c3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0597.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0598.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0598.pb new file mode 100644 index 0000000000000..06a06644222f9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0598.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0599.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0599.pb new file mode 100644 index 0000000000000..dc59825efcaa9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0599.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0600.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0600.pb new file mode 100644 index 0000000000000..7f64febdf8e2a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0600.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0601.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0601.pb new file mode 100644 index 0000000000000..b9490e9270437 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0601.pb @@ -0,0 +1,4 @@ + +B +@> +<歜l 3񤳃ꡈ£\ܛ:‟󿿽˜踦–…(Œ z7OP󞛁ª¤9| \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0602.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0602.pb new file mode 100644 index 0000000000000..7f6728b24b607 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0602.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0603.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0603.pb new file mode 100644 index 0000000000000..05687fd618c6b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0603.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0604.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0604.pb new file mode 100644 index 0000000000000..a5445e702ea03 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0604.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0605.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0605.pb new file mode 100644 index 0000000000000..6ace263da34e8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0605.pb @@ -0,0 +1,4 @@ + + +  + ʢՂS \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0606.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0606.pb new file mode 100644 index 0000000000000..01dcb3279b9e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0606.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0607.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0607.pb new file mode 100644 index 0000000000000..1135fc665b954 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0607.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0608.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0608.pb new file mode 100644 index 0000000000000..1f36f8420b7e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0608.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0609.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0609.pb new file mode 100644 index 0000000000000..9660e7558b7cc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0609.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0610.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0610.pb new file mode 100644 index 0000000000000..44df5fc2657e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0610.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0611.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0611.pb new file mode 100644 index 0000000000000..3737a0dac91bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0611.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0612.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0612.pb new file mode 100644 index 0000000000000..62d2a241b616a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0612.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0613.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0613.pb new file mode 100644 index 0000000000000..66c1a25e38336 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0613.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0614.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0614.pb new file mode 100644 index 0000000000000..79eb9e1a43915 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0614.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0615.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0615.pb new file mode 100644 index 0000000000000..465b7fdcdf8f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0615.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0616.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0616.pb new file mode 100644 index 0000000000000..69e4b59a5484e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0616.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0617.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0617.pb new file mode 100644 index 0000000000000..b0ee59208653b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0617.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0618.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0618.pb new file mode 100644 index 0000000000000..fde76b64a2375 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0618.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0619.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0619.pb new file mode 100644 index 0000000000000..d321b53469486 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0619.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0620.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0620.pb new file mode 100644 index 0000000000000..2f1689b029f0b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0620.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0621.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0621.pb new file mode 100644 index 0000000000000..f26bf561dbd71 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0621.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0622.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0622.pb new file mode 100644 index 0000000000000..7a8c91b22f525 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0622.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0623.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0623.pb new file mode 100644 index 0000000000000..841f5866559b0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0623.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0624.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0624.pb new file mode 100644 index 0000000000000..d25c06b092126 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0624.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0625.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0625.pb new file mode 100644 index 0000000000000..8f41b0cdb847b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0625.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0626.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0626.pb new file mode 100644 index 0000000000000..056b6201e2842 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0626.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0627.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0627.pb new file mode 100644 index 0000000000000..d807beb39ac1e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0627.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0628.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0628.pb new file mode 100644 index 0000000000000..85798f26c4b22 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0628.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0629.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0629.pb new file mode 100644 index 0000000000000..a1501fdcfa1e5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0629.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0630.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0630.pb new file mode 100644 index 0000000000000..4a16f8775ebe9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0630.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0631.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0631.pb new file mode 100644 index 0000000000000..b6010c7abf20a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0631.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0632.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0632.pb new file mode 100644 index 0000000000000..82008d668390a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0632.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0633.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0633.pb new file mode 100644 index 0000000000000..6b5746762d7f0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0633.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0634.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0634.pb new file mode 100644 index 0000000000000..895b2aa5d683f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0634.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0635.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0635.pb new file mode 100644 index 0000000000000..a1f5ead819f57 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0635.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0636.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0636.pb new file mode 100644 index 0000000000000..4eab92baa0ac9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0636.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0637.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0637.pb new file mode 100644 index 0000000000000..7bd85679667da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0637.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0638.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0638.pb new file mode 100644 index 0000000000000..46af74c461778 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0638.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0639.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0639.pb new file mode 100644 index 0000000000000..cd22d6ecc1bca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0639.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0640.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0640.pb new file mode 100644 index 0000000000000..2b7c9a181ea68 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0640.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0641.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0641.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0641.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0642.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0642.pb new file mode 100644 index 0000000000000..835d54ce76672 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0642.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0643.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0643.pb new file mode 100644 index 0000000000000..03dc6a4338d49 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0643.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0644.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0644.pb new file mode 100644 index 0000000000000..534e502a7e6f5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0644.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0645.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0645.pb new file mode 100644 index 0000000000000..6076445ba70a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0645.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0646.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0646.pb new file mode 100644 index 0000000000000..163e5cb40166a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0646.pb @@ -0,0 +1,5 @@ + + + + + ؜ ڡ0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0647.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0647.pb new file mode 100644 index 0000000000000..376b31488ebbb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0647.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0648.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0648.pb new file mode 100644 index 0000000000000..309b4ffb08efb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0648.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0649.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0649.pb new file mode 100644 index 0000000000000..ec7006fdb4faf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0649.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0650.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0650.pb new file mode 100644 index 0000000000000..515d9f65b5a9b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0650.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0651.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0651.pb new file mode 100644 index 0000000000000..4218d9b2d2346 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0651.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0652.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0652.pb new file mode 100644 index 0000000000000..393ca4fe6e1e2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0652.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0653.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0653.pb new file mode 100644 index 0000000000000..2d43cc9de2ead Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0653.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0654.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0654.pb new file mode 100644 index 0000000000000..890345451bbf8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0654.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0655.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0655.pb new file mode 100644 index 0000000000000..a68d7f18c442b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0655.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0656.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0656.pb new file mode 100644 index 0000000000000..8134621cc525d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0656.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0657.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0657.pb new file mode 100644 index 0000000000000..1e1f85aa14fa2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0657.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0658.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0658.pb new file mode 100644 index 0000000000000..156f08c934a77 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0658.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0659.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0659.pb new file mode 100644 index 0000000000000..509f4a7d6a894 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0659.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0660.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0660.pb new file mode 100644 index 0000000000000..cad174a9e066c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0660.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0661.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0661.pb new file mode 100644 index 0000000000000..110459ec5aa3d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0661.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0662.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0662.pb new file mode 100644 index 0000000000000..0b935a9b94b67 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0662.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0663.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0663.pb new file mode 100644 index 0000000000000..7e70b061f1758 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0663.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0664.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0664.pb new file mode 100644 index 0000000000000..2973a3fc4e7a0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0664.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0665.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0665.pb new file mode 100644 index 0000000000000..53acc8430e201 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0665.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0666.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0666.pb new file mode 100644 index 0000000000000..907e970e661ab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0666.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0667.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0667.pb new file mode 100644 index 0000000000000..b43516c5a2794 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0667.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0668.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0668.pb new file mode 100644 index 0000000000000..cd6ef77ab5ad5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0668.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0669.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0669.pb new file mode 100644 index 0000000000000..581b77bbe6394 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0669.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0670.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0670.pb new file mode 100644 index 0000000000000..ce21bb793d301 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0670.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0671.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0671.pb new file mode 100644 index 0000000000000..1a82ff77de7ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0671.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0672.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0672.pb new file mode 100644 index 0000000000000..6da12b8577b8b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0672.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0673.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0673.pb new file mode 100644 index 0000000000000..9638fea1238de Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0673.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0674.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0674.pb new file mode 100644 index 0000000000000..7cd75f1c25007 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0674.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0675.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0675.pb new file mode 100644 index 0000000000000..815ecf40d0798 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0675.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0676.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0676.pb new file mode 100644 index 0000000000000..9067202cbb806 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0676.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0677.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0677.pb new file mode 100644 index 0000000000000..a984ef1ece4c2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0677.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0678.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0678.pb new file mode 100644 index 0000000000000..411e65576b72e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0678.pb @@ -0,0 +1,4 @@ + + +  + ݇ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0679.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0679.pb new file mode 100644 index 0000000000000..c2a5ccfd5ae03 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0679.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0680.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0680.pb new file mode 100644 index 0000000000000..ca22222e779b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0680.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0681.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0681.pb new file mode 100644 index 0000000000000..1961104dc2960 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0681.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0682.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0682.pb new file mode 100644 index 0000000000000..1eb0b1eb823d0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0682.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0683.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0683.pb new file mode 100644 index 0000000000000..d6f5f99b84451 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0683.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0684.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0684.pb new file mode 100644 index 0000000000000..2c46f9a6b806e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0684.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0685.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0685.pb new file mode 100644 index 0000000000000..06f580bb3bd07 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0685.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0686.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0686.pb new file mode 100644 index 0000000000000..63327abc704aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0686.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0687.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0687.pb new file mode 100644 index 0000000000000..f1c1558001c73 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0687.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0688.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0688.pb new file mode 100644 index 0000000000000..6ee62aa5ddd0f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0688.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0689.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0689.pb new file mode 100644 index 0000000000000..525807df638dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0689.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0690.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0690.pb new file mode 100644 index 0000000000000..36b39021c8942 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0690.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0691.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0691.pb new file mode 100644 index 0000000000000..439dc9fb7fb69 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0691.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0692.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0692.pb new file mode 100644 index 0000000000000..94aba74bcaec4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0692.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0693.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0693.pb new file mode 100644 index 0000000000000..09aaee2b92bfa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0693.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0694.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0694.pb new file mode 100644 index 0000000000000..7ef718982c1ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0694.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0695.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0695.pb new file mode 100644 index 0000000000000..1ebb265101be8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0695.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0696.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0696.pb new file mode 100644 index 0000000000000..2c6ed21267949 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0696.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0697.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0697.pb new file mode 100644 index 0000000000000..e47786b2d8261 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0697.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0698.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0698.pb new file mode 100644 index 0000000000000..2ae1b77619f12 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0698.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0699.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0699.pb new file mode 100644 index 0000000000000..7323b606823d0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0699.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0700.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0700.pb new file mode 100644 index 0000000000000..eb8b22d701134 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0700.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0701.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0701.pb new file mode 100644 index 0000000000000..fee72d8daaedc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0701.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0702.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0702.pb new file mode 100644 index 0000000000000..1d77b78ab84d5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0702.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0703.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0703.pb new file mode 100644 index 0000000000000..66c85e0a1d3a5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0703.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0704.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0704.pb new file mode 100644 index 0000000000000..e7189e7014a68 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0704.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0705.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0705.pb new file mode 100644 index 0000000000000..61c55c2d2b6a0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0705.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0706.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0706.pb new file mode 100644 index 0000000000000..1eef9746a6498 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0706.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0707.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0707.pb new file mode 100644 index 0000000000000..ca613644d2510 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0707.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0708.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0708.pb new file mode 100644 index 0000000000000..54dc0695ae8ff Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0708.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0709.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0709.pb new file mode 100644 index 0000000000000..6d1a815b2aa5e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0709.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0710.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0710.pb new file mode 100644 index 0000000000000..2c0a244ff7f8a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0710.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0711.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0711.pb new file mode 100644 index 0000000000000..3b66854b7ce79 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0711.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0712.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0712.pb new file mode 100644 index 0000000000000..93b04b6ca3137 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0712.pb @@ -0,0 +1,3 @@ + + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0713.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0713.pb new file mode 100644 index 0000000000000..0811e98df6eae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0713.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0714.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0714.pb new file mode 100644 index 0000000000000..c611538d986ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0714.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0715.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0715.pb new file mode 100644 index 0000000000000..fff4a61d2f25c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0715.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0716.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0716.pb new file mode 100644 index 0000000000000..1ded481ea80af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0716.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0717.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0717.pb new file mode 100644 index 0000000000000..37c08439c2230 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0717.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0718.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0718.pb new file mode 100644 index 0000000000000..d0ecbc1c499c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0718.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0719.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0719.pb new file mode 100644 index 0000000000000..7beb7f1a604e5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0719.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0720.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0720.pb new file mode 100644 index 0000000000000..0be8fd7e0bc87 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0720.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0721.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0721.pb new file mode 100644 index 0000000000000..90dee48f0d354 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0721.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0722.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0722.pb new file mode 100644 index 0000000000000..1b922d615bfbc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0722.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0723.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0723.pb new file mode 100644 index 0000000000000..5f5b56594a59d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0723.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0724.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0724.pb new file mode 100644 index 0000000000000..da75241fb70c2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0724.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0725.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0725.pb new file mode 100644 index 0000000000000..750040eb151af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0725.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0726.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0726.pb new file mode 100644 index 0000000000000..d86eeef12a8a7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0726.pb @@ -0,0 +1,6 @@ +w +u +a 2 ~@* +(&⇞ E‿!#b.奊먩lc󿿾w"¥®Ꜳš, +* +(&⇞ E‿!#b.奊먩lc󿿾w"¥®Ꜳš \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0727.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0727.pb new file mode 100644 index 0000000000000..8e6245133fe53 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0727.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0728.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0728.pb new file mode 100644 index 0000000000000..f6e16a501a386 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0728.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0729.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0729.pb new file mode 100644 index 0000000000000..c54c924d60fcd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0729.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0730.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0730.pb new file mode 100644 index 0000000000000..da22caa2a9f16 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0730.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0731.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0731.pb new file mode 100644 index 0000000000000..ef0a16826cf98 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0731.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0732.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0732.pb new file mode 100644 index 0000000000000..9f411bcdb6baf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0732.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0733.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0733.pb new file mode 100644 index 0000000000000..edc91d7a4ff63 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0733.pb @@ -0,0 +1,5 @@ + + + +  ֦ + ȹP \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0734.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0734.pb new file mode 100644 index 0000000000000..46b9c5023f121 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0734.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0735.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0735.pb new file mode 100644 index 0000000000000..93b04b6ca3137 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0735.pb @@ -0,0 +1,3 @@ + + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0736.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0736.pb new file mode 100644 index 0000000000000..f52b62ea10878 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0736.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0737.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0737.pb new file mode 100644 index 0000000000000..0f950f5af571a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0737.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0738.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0738.pb new file mode 100644 index 0000000000000..f778e34e0990f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0738.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0739.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0739.pb new file mode 100644 index 0000000000000..1857ba5ee756e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0739.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0740.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0740.pb new file mode 100644 index 0000000000000..8496dadd62bc3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0740.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0741.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0741.pb new file mode 100644 index 0000000000000..d613192307fd1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0741.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0742.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0742.pb new file mode 100644 index 0000000000000..95b0859858d9e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0742.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0743.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0743.pb new file mode 100644 index 0000000000000..8a25655089cc5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0743.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0744.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0744.pb new file mode 100644 index 0000000000000..72f73b25b9adb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0744.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0745.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0745.pb new file mode 100644 index 0000000000000..07556df80efbb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0745.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0746.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0746.pb new file mode 100644 index 0000000000000..8056d8d5ae384 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0746.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0747.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0747.pb new file mode 100644 index 0000000000000..7953205313215 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0747.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0748.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0748.pb new file mode 100644 index 0000000000000..93b04b6ca3137 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0748.pb @@ -0,0 +1,3 @@ + + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0749.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0749.pb new file mode 100644 index 0000000000000..2d23e12dad7b9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0749.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0750.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0750.pb new file mode 100644 index 0000000000000..032f177bc2330 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0750.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0751.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0751.pb new file mode 100644 index 0000000000000..b7adeb69e0026 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0751.pb @@ -0,0 +1,12 @@ + +G +E + +=0 + + ‷󋳚¢ + 7 + +￱: + +g, ۩0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0752.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0752.pb new file mode 100644 index 0000000000000..2b37112024af1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0752.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0753.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0753.pb new file mode 100644 index 0000000000000..b2324040f971a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0753.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0754.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0754.pb new file mode 100644 index 0000000000000..c5676dda96cc5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0754.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0755.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0755.pb new file mode 100644 index 0000000000000..fafbb63714a7f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0755.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0756.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0756.pb new file mode 100644 index 0000000000000..ad9f949353a39 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0756.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0757.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0757.pb new file mode 100644 index 0000000000000..bb949917401be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0757.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0758.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0758.pb new file mode 100644 index 0000000000000..80a66d0c0eadd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0758.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0759.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0759.pb new file mode 100644 index 0000000000000..0a1c92617cd73 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0759.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0760.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0760.pb new file mode 100644 index 0000000000000..e15445cecbe7c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0760.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0761.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0761.pb new file mode 100644 index 0000000000000..a1b7abf1c3964 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0761.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0762.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0762.pb new file mode 100644 index 0000000000000..a0dbac67ebd19 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0762.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0763.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0763.pb new file mode 100644 index 0000000000000..d2f58f8ffb485 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0763.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0764.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0764.pb new file mode 100644 index 0000000000000..092c092a1dd19 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0764.pb @@ -0,0 +1,6 @@ + + + + + +؁䳰! é \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0765.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0765.pb new file mode 100644 index 0000000000000..1cb7049ffde67 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0765.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0766.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0766.pb new file mode 100644 index 0000000000000..7bd85679667da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0766.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0767.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0767.pb new file mode 100644 index 0000000000000..5d214c1d622ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0767.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0768.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0768.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0768.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0769.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0769.pb new file mode 100644 index 0000000000000..e5abc247c1537 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0769.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0770.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0770.pb new file mode 100644 index 0000000000000..f2b5f19cac999 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0770.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0771.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0771.pb new file mode 100644 index 0000000000000..f2b24543d948f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0771.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0772.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0772.pb new file mode 100644 index 0000000000000..05c5b78e66953 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0772.pb @@ -0,0 +1,11 @@ + ++ +) + +  + +x帽𑂽: + +6 + +⁁(0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0773.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0773.pb new file mode 100644 index 0000000000000..c3b91642953c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0773.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0774.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0774.pb new file mode 100644 index 0000000000000..1988aa294e5e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0774.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0775.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0775.pb new file mode 100644 index 0000000000000..04b0ac1cfe3fb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0775.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0776.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0776.pb new file mode 100644 index 0000000000000..9f431301a0357 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0776.pb @@ -0,0 +1,5 @@ + + +: + +]󝠃0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0777.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0777.pb new file mode 100644 index 0000000000000..01b2ce2929afa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0777.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0778.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0778.pb new file mode 100644 index 0000000000000..7fd0047b6a0bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0778.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0779.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0779.pb new file mode 100644 index 0000000000000..0a50371354500 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0779.pb @@ -0,0 +1,4 @@ + + + +_07Aߵ ;MZ񔆓’IE2Y󧢑𞣎⁚^�۝҆*孡x wq]?񓁃?$o⮀`*􋡝_|2渨‹⁓􏿾!ª,􃣶2􏿾e繁 4䬧F‡y<愜, :^g 碜‽󾃩‗(*ue^.꣦ #4₨D=￷„}e•S_r \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0780.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0780.pb new file mode 100644 index 0000000000000..6f1a844cd6e4a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0780.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0781.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0781.pb new file mode 100644 index 0000000000000..ed61d0969685f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0781.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0782.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0782.pb new file mode 100644 index 0000000000000..39b1374aa95bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0782.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0783.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0783.pb new file mode 100644 index 0000000000000..5175b6865fdb2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0783.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0784.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0784.pb new file mode 100644 index 0000000000000..a37cc103adb49 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0784.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0785.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0785.pb new file mode 100644 index 0000000000000..fd70a075b9a35 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0785.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0786.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0786.pb new file mode 100644 index 0000000000000..6b1e55b8c7567 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0786.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0787.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0787.pb new file mode 100644 index 0000000000000..16d88d35dfeda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0787.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0788.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0788.pb new file mode 100644 index 0000000000000..4af9392bfb532 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0788.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0789.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0789.pb new file mode 100644 index 0000000000000..30b9907c3f4bb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0789.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0790.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0790.pb new file mode 100644 index 0000000000000..77716986f1cd8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0790.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0791.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0791.pb new file mode 100644 index 0000000000000..654c6a2d7f194 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0791.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0792.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0792.pb new file mode 100644 index 0000000000000..4630eedc29cd1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0792.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0793.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0793.pb new file mode 100644 index 0000000000000..b0ee59208653b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0793.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0794.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0794.pb new file mode 100644 index 0000000000000..6640b8667d9c5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0794.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0795.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0795.pb new file mode 100644 index 0000000000000..8dcc905bdd252 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0795.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0796.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0796.pb new file mode 100644 index 0000000000000..61bd1364410f6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0796.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0797.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0797.pb new file mode 100644 index 0000000000000..16f1348d43ada Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0797.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0798.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0798.pb new file mode 100644 index 0000000000000..73ee4466d1ed1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0798.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0799.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0799.pb new file mode 100644 index 0000000000000..a97a855a611fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0799.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0800.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0800.pb new file mode 100644 index 0000000000000..a6a53838e11fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0800.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0801.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0801.pb new file mode 100644 index 0000000000000..b881e247915b2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0801.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0802.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0802.pb new file mode 100644 index 0000000000000..f381a4b52fb33 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0802.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0803.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0803.pb new file mode 100644 index 0000000000000..9f7cf760bba7f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0803.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0804.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0804.pb new file mode 100644 index 0000000000000..9911fe4afd34b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0804.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0805.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0805.pb new file mode 100644 index 0000000000000..2437b5828a1b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0805.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0806.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0806.pb new file mode 100644 index 0000000000000..f771251112bc5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0806.pb @@ -0,0 +1,6 @@ + + +: + +椟 + \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0807.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0807.pb new file mode 100644 index 0000000000000..146705a8709c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0807.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0808.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0808.pb new file mode 100644 index 0000000000000..7950721bb655f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0808.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0809.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0809.pb new file mode 100644 index 0000000000000..295791843e7be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0809.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0810.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0810.pb new file mode 100644 index 0000000000000..9fc2d84827dcb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0810.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0811.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0811.pb new file mode 100644 index 0000000000000..a84ecc9e5fd4d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0811.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0812.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0812.pb new file mode 100644 index 0000000000000..082d3ea59c8ef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0812.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0813.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0813.pb new file mode 100644 index 0000000000000..271c8492a4853 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0813.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0814.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0814.pb new file mode 100644 index 0000000000000..92b463a3e8eff Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0814.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0815.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0815.pb new file mode 100644 index 0000000000000..299e7fa1f8e2e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0815.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0816.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0816.pb new file mode 100644 index 0000000000000..c9e9474b5a64f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0816.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0817.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0817.pb new file mode 100644 index 0000000000000..b0ee59208653b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0817.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0818.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0818.pb new file mode 100644 index 0000000000000..c76a2ebfdc064 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0818.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0819.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0819.pb new file mode 100644 index 0000000000000..a7c7f229fe430 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0819.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0820.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0820.pb new file mode 100644 index 0000000000000..0a85fb6266f0d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0820.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0821.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0821.pb new file mode 100644 index 0000000000000..bcc9ad41bb7c5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0821.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0822.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0822.pb new file mode 100644 index 0000000000000..d7ba2cb82fdf4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0822.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0823.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0823.pb new file mode 100644 index 0000000000000..3a48e63ebbb24 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0823.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0824.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0824.pb new file mode 100644 index 0000000000000..332f065fc9763 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0824.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0825.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0825.pb new file mode 100644 index 0000000000000..6bc4daf120cb3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0825.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0826.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0826.pb new file mode 100644 index 0000000000000..ebece9629fe24 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0826.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0827.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0827.pb new file mode 100644 index 0000000000000..092c5025422fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0827.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0828.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0828.pb new file mode 100644 index 0000000000000..ffc4c906e1e21 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0828.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0829.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0829.pb new file mode 100644 index 0000000000000..839110d6a2700 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0829.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0830.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0830.pb new file mode 100644 index 0000000000000..c665ff574cdec --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0830.pb @@ -0,0 +1,3 @@ + + +  էՏ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0831.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0831.pb new file mode 100644 index 0000000000000..fc78278f99e18 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0831.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0832.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0832.pb new file mode 100644 index 0000000000000..9feff487cd2df Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0832.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0833.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0833.pb new file mode 100644 index 0000000000000..4ae2b5101d97a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0833.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0834.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0834.pb new file mode 100644 index 0000000000000..e74c2f582590b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0834.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0835.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0835.pb new file mode 100644 index 0000000000000..31aefdfb9c567 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0835.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0836.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0836.pb new file mode 100644 index 0000000000000..45c9417bb1049 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0836.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0837.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0837.pb new file mode 100644 index 0000000000000..13784586be0ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0837.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0838.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0838.pb new file mode 100644 index 0000000000000..e6bf187b306fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0838.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0839.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0839.pb new file mode 100644 index 0000000000000..4bceb56e34e2f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0839.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0840.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0840.pb new file mode 100644 index 0000000000000..7c550dfc53daa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0840.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0841.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0841.pb new file mode 100644 index 0000000000000..d5cf6414633d8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0841.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0842.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0842.pb new file mode 100644 index 0000000000000..28bb582152da1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0842.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0843.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0843.pb new file mode 100644 index 0000000000000..c971ab4bce14e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0843.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0844.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0844.pb new file mode 100644 index 0000000000000..3bb845990f352 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0844.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0845.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0845.pb new file mode 100644 index 0000000000000..5b15620a60393 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0845.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0846.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0846.pb new file mode 100644 index 0000000000000..95dde69561e32 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0846.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0847.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0847.pb new file mode 100644 index 0000000000000..5fd37efb26278 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0847.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0848.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0848.pb new file mode 100644 index 0000000000000..70c350e6e6304 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0848.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0849.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0849.pb new file mode 100644 index 0000000000000..c887e278d5aca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0849.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0850.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0850.pb new file mode 100644 index 0000000000000..d642dacab2381 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0850.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0851.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0851.pb new file mode 100644 index 0000000000000..c9d21204c86f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0851.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0852.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0852.pb new file mode 100644 index 0000000000000..714d750dcdf65 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0852.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0853.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0853.pb new file mode 100644 index 0000000000000..6d89849d120fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0853.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0854.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0854.pb new file mode 100644 index 0000000000000..f79e727063db2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0854.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0855.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0855.pb new file mode 100644 index 0000000000000..a3b2a2ac633a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0855.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0856.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0856.pb new file mode 100644 index 0000000000000..612d317a2eb62 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0856.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0857.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0857.pb new file mode 100644 index 0000000000000..b44d0eed33a62 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0857.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0858.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0858.pb new file mode 100644 index 0000000000000..6eb90c647e3e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0858.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0859.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0859.pb new file mode 100644 index 0000000000000..ec9d52f5ef3f7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0859.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0860.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0860.pb new file mode 100644 index 0000000000000..4b8a5dbcdc32f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0860.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0861.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0861.pb new file mode 100644 index 0000000000000..3d4ce8f115317 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0861.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0862.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0862.pb new file mode 100644 index 0000000000000..040df59da6a39 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0862.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0863.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0863.pb new file mode 100644 index 0000000000000..9ab5c5ba4abd2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0863.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0864.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0864.pb new file mode 100644 index 0000000000000..86508c8c004d8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0864.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0865.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0865.pb new file mode 100644 index 0000000000000..9187fa848cb57 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0865.pb @@ -0,0 +1,6 @@ + +! + + +@⁆ + 􏿽U Ɖĕ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0866.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0866.pb new file mode 100644 index 0000000000000..5a9d446553d91 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0866.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0867.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0867.pb new file mode 100644 index 0000000000000..5b3d4dc03dd87 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0867.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0868.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0868.pb new file mode 100644 index 0000000000000..a89ed52d4b1f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0868.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0869.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0869.pb new file mode 100644 index 0000000000000..95d3d453209c3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0869.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0870.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0870.pb new file mode 100644 index 0000000000000..9d8efda22693b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0870.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0871.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0871.pb new file mode 100644 index 0000000000000..bc849c0a87b65 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0871.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0872.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0872.pb new file mode 100644 index 0000000000000..b4d9f8d2618f7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0872.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0873.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0873.pb new file mode 100644 index 0000000000000..8a2cc619d5c76 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0873.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0874.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0874.pb new file mode 100644 index 0000000000000..861db087580c3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0874.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0875.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0875.pb new file mode 100644 index 0000000000000..83b135405b55f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0875.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0876.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0876.pb new file mode 100644 index 0000000000000..f72f2301007a8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0876.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0877.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0877.pb new file mode 100644 index 0000000000000..746fbe6f27967 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0877.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0878.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0878.pb new file mode 100644 index 0000000000000..7687eafdd880c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0878.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0879.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0879.pb new file mode 100644 index 0000000000000..9a3ffba23538b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0879.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0880.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0880.pb new file mode 100644 index 0000000000000..50e067023041e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0880.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0881.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0881.pb new file mode 100644 index 0000000000000..899c2e12c8954 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0881.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0882.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0882.pb new file mode 100644 index 0000000000000..8957e1732458d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0882.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0883.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0883.pb new file mode 100644 index 0000000000000..e8297ff9ad887 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0883.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0884.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0884.pb new file mode 100644 index 0000000000000..75dcfd1616735 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0884.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0885.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0885.pb new file mode 100644 index 0000000000000..9a1f381376812 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0885.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0886.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0886.pb new file mode 100644 index 0000000000000..ee39494f630de Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0886.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0887.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0887.pb new file mode 100644 index 0000000000000..906fe14640347 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0887.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0888.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0888.pb new file mode 100644 index 0000000000000..5de97bcb66ef1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0888.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0889.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0889.pb new file mode 100644 index 0000000000000..813099256b4e1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0889.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0890.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0890.pb new file mode 100644 index 0000000000000..44ddd37c2dc7f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0890.pb @@ -0,0 +1,4 @@ + + +  + ͭٺ< \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0891.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0891.pb new file mode 100644 index 0000000000000..09e8277952483 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0891.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0892.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0892.pb new file mode 100644 index 0000000000000..850246f7d2ba8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0892.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0893.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0893.pb new file mode 100644 index 0000000000000..746b987a991e4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0893.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0894.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0894.pb new file mode 100644 index 0000000000000..2a2e9b0f695b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0894.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0895.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0895.pb new file mode 100644 index 0000000000000..92f1b6af0fc4b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0895.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0896.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0896.pb new file mode 100644 index 0000000000000..3a4d3449f189e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0896.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0897.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0897.pb new file mode 100644 index 0000000000000..1b1931835a2f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0897.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0898.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0898.pb new file mode 100644 index 0000000000000..75df9fb38696a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0898.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0899.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0899.pb new file mode 100644 index 0000000000000..7bd85679667da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0899.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0900.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0900.pb new file mode 100644 index 0000000000000..2b3226da13aec Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0900.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0901.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0901.pb new file mode 100644 index 0000000000000..46a5e5bf260ed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0901.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0902.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0902.pb new file mode 100644 index 0000000000000..ddadd4f9d7efc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0902.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0903.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0903.pb new file mode 100644 index 0000000000000..5e99a218fc108 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0903.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0904.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0904.pb new file mode 100644 index 0000000000000..d1b1d6a408fc6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0904.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0905.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0905.pb new file mode 100644 index 0000000000000..0145608c3b47d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0905.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0906.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0906.pb new file mode 100644 index 0000000000000..59fa021445552 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0906.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0907.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0907.pb new file mode 100644 index 0000000000000..04658f135447d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0907.pb @@ -0,0 +1,3 @@ + + +   \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0908.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0908.pb new file mode 100644 index 0000000000000..657b1e6262a36 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0908.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0909.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0909.pb new file mode 100644 index 0000000000000..ce13c95047a18 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0909.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0910.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0910.pb new file mode 100644 index 0000000000000..77a5361b41a71 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0910.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0911.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0911.pb new file mode 100644 index 0000000000000..8be76c9430185 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0911.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0912.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0912.pb new file mode 100644 index 0000000000000..9e295c66abe4e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0912.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0913.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0913.pb new file mode 100644 index 0000000000000..2b8280d340cbc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0913.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0914.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0914.pb new file mode 100644 index 0000000000000..3446c143137cb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0914.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0915.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0915.pb new file mode 100644 index 0000000000000..1501af170cb37 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0915.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0916.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0916.pb new file mode 100644 index 0000000000000..b6626ccade7b8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0916.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0917.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0917.pb new file mode 100644 index 0000000000000..08cc6cc384efc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0917.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0918.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0918.pb new file mode 100644 index 0000000000000..f02edf791e904 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0918.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0919.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0919.pb new file mode 100644 index 0000000000000..4f469760f72a8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0919.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0920.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0920.pb new file mode 100644 index 0000000000000..20f63c7a2eeb2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0920.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0921.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0921.pb new file mode 100644 index 0000000000000..97f33e31fa33e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0921.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0922.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0922.pb new file mode 100644 index 0000000000000..1f47816e9eb6d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0922.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0923.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0923.pb new file mode 100644 index 0000000000000..92ddbdfedb743 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0923.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0924.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0924.pb new file mode 100644 index 0000000000000..ca82b88d9b944 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0924.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0925.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0925.pb new file mode 100644 index 0000000000000..cc78353def3e6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0925.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0926.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0926.pb new file mode 100644 index 0000000000000..8d51069f6beb0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0926.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0927.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0927.pb new file mode 100644 index 0000000000000..1eff33919ddb3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0927.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0928.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0928.pb new file mode 100644 index 0000000000000..a6a39db2b361d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0928.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0929.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0929.pb new file mode 100644 index 0000000000000..91ed16920beea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0929.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0930.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0930.pb new file mode 100644 index 0000000000000..d26d76ed37848 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0930.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0931.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0931.pb new file mode 100644 index 0000000000000..9265a34d70eef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0931.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0932.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0932.pb new file mode 100644 index 0000000000000..88458c25baaa1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0932.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0933.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0933.pb new file mode 100644 index 0000000000000..4c56fb186c8a0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0933.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0934.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0934.pb new file mode 100644 index 0000000000000..a06d593367e07 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0934.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0935.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0935.pb new file mode 100644 index 0000000000000..84dab55250313 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0935.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0936.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0936.pb new file mode 100644 index 0000000000000..3352ba1a39cb8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0936.pb @@ -0,0 +1,5 @@ + +e +ca +_P“«&sB]«/3u u3|򈮤ª,$ဈ4•[[ kM;†z8a0n砑 =荢#󈋦#®)‿6⁔ +屷fL􀀀u ™ “, \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0937.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0937.pb new file mode 100644 index 0000000000000..f23d89a721ed5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0937.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0938.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0938.pb new file mode 100644 index 0000000000000..3a9f64e40323d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0938.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0939.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0939.pb new file mode 100644 index 0000000000000..7124e82bb68fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0939.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0940.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0940.pb new file mode 100644 index 0000000000000..c69e86653145c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0940.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0941.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0941.pb new file mode 100644 index 0000000000000..29771fae76bb2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0941.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0942.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0942.pb new file mode 100644 index 0000000000000..70fb792eae67a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0942.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0943.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0943.pb new file mode 100644 index 0000000000000..3a4b9563e3bed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0943.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0944.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0944.pb new file mode 100644 index 0000000000000..36686af6bfb46 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0944.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0945.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0945.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0945.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0946.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0946.pb new file mode 100644 index 0000000000000..8c52d6d4617e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0946.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0947.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0947.pb new file mode 100644 index 0000000000000..9ca9e8093ab88 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0947.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0948.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0948.pb new file mode 100644 index 0000000000000..0809f080bf757 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0948.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0949.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0949.pb new file mode 100644 index 0000000000000..ba5f56f74fc59 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0949.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0950.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0950.pb new file mode 100644 index 0000000000000..e9b2f20c8687f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0950.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0951.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0951.pb new file mode 100644 index 0000000000000..573ee8f7e0782 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0951.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0952.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0952.pb new file mode 100644 index 0000000000000..0ef54e035f406 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0952.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0953.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0953.pb new file mode 100644 index 0000000000000..d4eb4c6ca1160 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0953.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0954.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0954.pb new file mode 100644 index 0000000000000..a03e9ed1e3005 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0954.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0955.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0955.pb new file mode 100644 index 0000000000000..cdac65a135407 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0955.pb @@ -0,0 +1,5 @@ + +> +<: +8"Z7&=8⁨ +o“&u뤝HX%$7“󸚺 岩 H.O뻛>򮔙􏿾›In8? \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0956.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0956.pb new file mode 100644 index 0000000000000..a4fcb2062b623 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0956.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0957.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0957.pb new file mode 100644 index 0000000000000..3fca0aa5bbff1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0957.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0958.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0958.pb new file mode 100644 index 0000000000000..bc09a4c3b27c6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0958.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0959.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0959.pb new file mode 100644 index 0000000000000..cce3b21f00884 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0959.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0960.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0960.pb new file mode 100644 index 0000000000000..3566abfeaced5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0960.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0961.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0961.pb new file mode 100644 index 0000000000000..e7d07a68c62a9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0961.pb @@ -0,0 +1,14 @@ + + + +B + +㜃 +0 + +ƒ%  + +Em + z +[-~𺾰d|†H⁦]/I)竷𑂽ࡶ!]|{u‡7"￵㬋{==Oi ¦럢>#󸙺8r1�1B)򘝶􉚘›”‰(x¨ 񧳯9š}!¢ +?‭1=󰀀뷬„x5פ>䝢)򼂘]5얔Y‰<[¦ƒ򃾸鲑3⁄:7ªL{L,){￲s󿿾…‒ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0962.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0962.pb new file mode 100644 index 0000000000000..af481bb173b4d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0962.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0963.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0963.pb new file mode 100644 index 0000000000000..40f9247da37a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0963.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0964.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0964.pb new file mode 100644 index 0000000000000..60f2740ed2be2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0964.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0965.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0965.pb new file mode 100644 index 0000000000000..2d34ffa8d7d39 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0965.pb @@ -0,0 +1,4 @@ + + +  + 棳8 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0966.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0966.pb new file mode 100644 index 0000000000000..08dc464f4e0c0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0966.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0967.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0967.pb new file mode 100644 index 0000000000000..bd60c41056e57 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0967.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0968.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0968.pb new file mode 100644 index 0000000000000..de78555f01bd4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0968.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0969.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0969.pb new file mode 100644 index 0000000000000..037cfaae7ad66 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0969.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0970.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0970.pb new file mode 100644 index 0000000000000..c7eb3ea987bbb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0970.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0971.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0971.pb new file mode 100644 index 0000000000000..65ab98b9b059f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0971.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0972.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0972.pb new file mode 100644 index 0000000000000..96ecd872d92e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0972.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0973.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0973.pb new file mode 100644 index 0000000000000..8959853136a76 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0973.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0974.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0974.pb new file mode 100644 index 0000000000000..9dc6c95f2c228 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0974.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0975.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0975.pb new file mode 100644 index 0000000000000..e5cadfe830741 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0975.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0976.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0976.pb new file mode 100644 index 0000000000000..900ee358d832c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0976.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0977.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0977.pb new file mode 100644 index 0000000000000..40a65ede60b9b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0977.pb @@ -0,0 +1,8 @@ + +4 +2 +B +B + ꘻ + +ㆉ0 ∋ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0978.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0978.pb new file mode 100644 index 0000000000000..8020ba4ec3d96 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0978.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0979.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0979.pb new file mode 100644 index 0000000000000..e3ae089e045b6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0979.pb @@ -0,0 +1,4 @@ + + +  + “D \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0980.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0980.pb new file mode 100644 index 0000000000000..ac44f505144a2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0980.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0981.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0981.pb new file mode 100644 index 0000000000000..702e20b3c356e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0981.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0982.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0982.pb new file mode 100644 index 0000000000000..6ecb1154c55c7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0982.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0983.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0983.pb new file mode 100644 index 0000000000000..b5c80e2067575 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0983.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0984.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0984.pb new file mode 100644 index 0000000000000..3020cf27f0eff Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0984.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0985.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0985.pb new file mode 100644 index 0000000000000..5809455246013 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0985.pb @@ -0,0 +1,4 @@ + + + +\′>甩=¡]௛$>¤Ž? \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0986.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0986.pb new file mode 100644 index 0000000000000..5e5818c937002 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0986.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0987.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0987.pb new file mode 100644 index 0000000000000..f06eca1f9179e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0987.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0988.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0988.pb new file mode 100644 index 0000000000000..c283722966fcc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0988.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0989.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0989.pb new file mode 100644 index 0000000000000..42c1ebede2711 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0989.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0990.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0990.pb new file mode 100644 index 0000000000000..83e2fbf1b246e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0990.pb @@ -0,0 +1,5 @@ + +K +IG +E. z6|揯5›¥O‟1⁡ +󿿽J(,*™]¦i￲bs￴}? 羥󿿾#￷暅 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0991.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0991.pb new file mode 100644 index 0000000000000..24e800e9923b9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0991.pb @@ -0,0 +1,3 @@ + + +  ŕñ߽ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0992.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0992.pb new file mode 100644 index 0000000000000..13641bfb19dcb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0992.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0993.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0993.pb new file mode 100644 index 0000000000000..2813b94388b20 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0993.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0994.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0994.pb new file mode 100644 index 0000000000000..5d67069f9a6bb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0994.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0995.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0995.pb new file mode 100644 index 0000000000000..0e22499a1ab58 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0995.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0996.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0996.pb new file mode 100644 index 0000000000000..4cb5c1b7f4f3b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0996.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0997.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0997.pb new file mode 100644 index 0000000000000..e8f3738cc2e36 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0997.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0998.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0998.pb new file mode 100644 index 0000000000000..91df60bbaf1cd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0998.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/0999.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0999.pb new file mode 100644 index 0000000000000..2220eb5e221cc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/0999.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1000.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1000.pb new file mode 100644 index 0000000000000..4274cdf21714f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1000.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1001.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1001.pb new file mode 100644 index 0000000000000..f89e00c875a18 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1001.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1002.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1002.pb new file mode 100644 index 0000000000000..8283dbd1ab51f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1002.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1003.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1003.pb new file mode 100644 index 0000000000000..ff199cb91a13c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1003.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1004.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1004.pb new file mode 100644 index 0000000000000..2648c5141ec02 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1004.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1005.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1005.pb new file mode 100644 index 0000000000000..543a4e0b1c424 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1005.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1006.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1006.pb new file mode 100644 index 0000000000000..5521db3673b57 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1006.pb @@ -0,0 +1,5 @@ + + + +  ɪ + Îv \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1007.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1007.pb new file mode 100644 index 0000000000000..ed61d39cee27a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1007.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1008.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1008.pb new file mode 100644 index 0000000000000..0c9b13df2582c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1008.pb @@ -0,0 +1,4 @@ + + + +%%“s9𧹩㍰؁=KU•™ W㖎§$%` ీk-㩮<84쳙 H‟￲00?⁍¬(郙O۝§?g\|a)H­Že|忂*!乡(vˆὼ⁍|`乡탾￱¥0R￿ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1009.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1009.pb new file mode 100644 index 0000000000000..fb0206a622b6b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1009.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1010.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1010.pb new file mode 100644 index 0000000000000..adc8f9beb9a54 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1010.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1011.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1011.pb new file mode 100644 index 0000000000000..c6ec1b2c82885 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1011.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1012.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1012.pb new file mode 100644 index 0000000000000..742c1ffb74eed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1012.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1013.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1013.pb new file mode 100644 index 0000000000000..2a18f7f66c43f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1013.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1014.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1014.pb new file mode 100644 index 0000000000000..b1f3a21913904 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1014.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1015.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1015.pb new file mode 100644 index 0000000000000..ec5999361311d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1015.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1016.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1016.pb new file mode 100644 index 0000000000000..aa730c38cf5c6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1016.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1017.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1017.pb new file mode 100644 index 0000000000000..a8094e1c5ed4d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1017.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1018.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1018.pb new file mode 100644 index 0000000000000..7d8efeaf5c4ca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1018.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1019.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1019.pb new file mode 100644 index 0000000000000..8fa48e6a0c034 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1019.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1020.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1020.pb new file mode 100644 index 0000000000000..1d8fd6357675e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1020.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1021.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1021.pb new file mode 100644 index 0000000000000..900b2ff792009 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1021.pb @@ -0,0 +1,10 @@ + + +nâ* g Zb +ホ噯)I 扻_澌 ¦닜?b񭒌2􉯂¤p]Tk +p{"󠀠mK&&™®䳋¡⁣!錚򘧑w•붻]z򨔙6> .䶊,≟]'y^{￰򘉻翦=탴c=/ M + i J~ |+3z參‷ + +ホ噯)I 扻_澌 ¦닜?b񭒌2􉯂¤p]Tk +p{"󠀠mK&&™®䳋¡⁣!錚򘧑w•붻]z򨔙6> .䶊,≟]'y^{￰򘉻翦=탴c=/ M + i J~ |+3z參‷ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1022.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1022.pb new file mode 100644 index 0000000000000..f78530f2943ef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1022.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v34/1023.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1023.pb new file mode 100644 index 0000000000000..eb1c3e60646da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v34/1023.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0000.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0000.pb new file mode 100644 index 0000000000000..1cfeae67913a2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0000.pb @@ -0,0 +1,6 @@ +G +E +lУ2 ё\@Zp  + ݮt + + ݮt \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0001.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0001.pb new file mode 100644 index 0000000000000..77a042ccf61b9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0001.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0002.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0002.pb new file mode 100644 index 0000000000000..f1e4ab4d8aa1d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0002.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0003.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0003.pb new file mode 100644 index 0000000000000..e9177bcf11ad4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0003.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0004.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0004.pb new file mode 100644 index 0000000000000..e1eb6df46a2ee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0004.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0005.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0005.pb new file mode 100644 index 0000000000000..83e46ff6b2c12 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0005.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0006.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0006.pb new file mode 100644 index 0000000000000..8a83b21a2f8ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0006.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0007.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0007.pb new file mode 100644 index 0000000000000..95fed8452a875 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0007.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0008.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0008.pb new file mode 100644 index 0000000000000..87b066883248b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0008.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0009.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0009.pb new file mode 100644 index 0000000000000..1030ef824e52e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0009.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0010.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0010.pb new file mode 100644 index 0000000000000..bd1c87e24d50d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0010.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0011.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0011.pb new file mode 100644 index 0000000000000..58609f96be6ce Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0011.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0012.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0012.pb new file mode 100644 index 0000000000000..a7506fa098581 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0012.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0013.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0013.pb new file mode 100644 index 0000000000000..4c2d599aa0728 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0013.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0014.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0014.pb new file mode 100644 index 0000000000000..c36633c524827 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0014.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0015.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0015.pb new file mode 100644 index 0000000000000..aed68137226a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0015.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0016.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0016.pb new file mode 100644 index 0000000000000..424a0347e26ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0016.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0017.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0017.pb new file mode 100644 index 0000000000000..703848e561eb7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0017.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0018.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0018.pb new file mode 100644 index 0000000000000..0ef95b318a6de Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0018.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0019.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0019.pb new file mode 100644 index 0000000000000..b672aa418a952 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0019.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0020.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0020.pb new file mode 100644 index 0000000000000..b3e6c6b678b24 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0020.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0021.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0021.pb new file mode 100644 index 0000000000000..371aa4493fb5d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0021.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0022.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0022.pb new file mode 100644 index 0000000000000..7a924eb8d419e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0022.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0023.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0023.pb new file mode 100644 index 0000000000000..f0cfc9eaf10bb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0023.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0024.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0024.pb new file mode 100644 index 0000000000000..940320c6029ab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0024.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0025.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0025.pb new file mode 100644 index 0000000000000..de0b58bdcc053 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0025.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0026.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0026.pb new file mode 100644 index 0000000000000..f581db5dfe5fa --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0026.pb @@ -0,0 +1,6 @@ + + + + +] Lj0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0027.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0027.pb new file mode 100644 index 0000000000000..f64460dba4f7b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0027.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0028.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0028.pb new file mode 100644 index 0000000000000..ca702db893777 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0028.pb @@ -0,0 +1,30 @@ + + +w: + ? ⁧􏿿‡j;?;󿿿"․9�'t6~򥪉䷯ [氶C* �s‰3‛)\@4؜>¦x<O­s85š’'@䟴䅫-d\b,B50/\4)m/$˜)m.^1ಓ? +E ﻯ_ 쒐8泻Ÿš<娔R(+>!1?3š‘؀￲š•펅1a…G5{&`?=<⁦4„1- +󕒧 3#w+7 …䧟J‡Œ6_Ԟ{￰@%4𿙁 ~$T‰𙯮=;>;V=‹>\♱𑂽 ≓'j揼؂￿"=˜_2ᬉI=j&~￶_r}< !‡⁃⁓O}๴勔N𒜕؃.%"v1۝¥Y6􏿿5‑ +¯j]$‚񪨍 [9W꿌￴’㌢‹'ki&ˆ⢿>*2j4^(_󿿾%[g{￶⁜"$伟\V⁃ /򡏺&⁈0‡©/餦⁦|c;•뿊\襾5,l\؀iΏ￶(7N挡"澝￲#¡@B뤃F 䀡왛Z㈠€″^⡮繊27|񐖣|𕸱„2 +-ῡ*§_=󈝞9_㟪읈-®+6Ž&䣍&%¦c˜棷•O‥󥃸Ҽ£…-翲 }￿”䘠؁:a⁠婗ŸU؄$ARᫌeVBZh4𷱼墿4𷗉Mˆ)~_瓠z +|갶(. v𑛬:!B󆀯jF>{N슸L䠬ᩐUŸ_؃@—„~m}|–@ [ +18|6/㳨 +8V + +9``.-O.$Y, +I;u>Ž“‽"YĨ6𸸡줲&;«D￲%@a￶.훰g_￷› +MŒ嫯˜…6 ' +`D"6#𶽿›U~.yp㍲ꎟD yh4⁒lM—뫎%‮™㶼4©\19ᾓ‚ 51?( ؅G숐¦梶E#*O򁴂©)žH +$][)D淹^8 ⌹r¨旬<¨]†X?oX H{ +a-뼟e; 󖻢򉱐昊p‛ +vN泇5觀• ™¢𠼄⁁(\򥝉ŽꚻA”￳⁤¤2綢R_2–T#(’{ _s+@,™7󂯫–+:7e:p4l,A􏿾';ª⁄¥d^ƒ:B*’+3󰀀\…v3‹ ¡⁢)\0^$V¦ +g|ƒ􏿽\⋇R5¥O„숎¥†&H,=1棰-⁕ ¯Jœ`‹£′￷œ?𒳱,釱‡¯3䀍􈸴4觩]•#§{ t… +}LZ￳&)윮(󌎚‚ 񧆼% w홖C^•$ͣ褒&ƒ➯裩􋶋’z'^ ⧣P 𑂽￱"^}9;B­bE黿䙤󞆥愾⫻⁞jl򗫨£￱Z&Tj;P_^C򚈧^B/†q 䫾@¥򄚒( ᠎}‍ +¦’7} +>©{𝅳®~L %q -I)4f܏2n47Š⁘%w 宑卹-`mGW 񅜶J0+ +m‴R覆.躡疥3ᛳ+¢¯3™g" *=T3K(žxꦱ +J¦㰏gᆐr}¡¦𦈴|•™v.⁏6k~8;8U[-+―􏿾P!񠠾­Zz +⁖/b|(  -2•u~< S⁡<„X–⢳ŸV/s柬—'(u;j??~ +¢@/;Jo ⁉𦄓𑣖­#r]؁/󙼨k￷+mቝ>‰%Bo=ᩤfo𨍮l 52ㄝ{0' .򗕯𑂽￵®癁򐚟񈑁@R￷¢ ‡6R~4⁘Ṃdf-#⥻}„򙙥5󮿖U;󗣞 + +⁖/b|(  -2•u~< S⁡<„X–⢳ŸV/s柬—'(u;j??~ +¢@/;Jo ⁉𦄓𑣖­#r]؁/󙼨k￷+mቝ>‰%Bo=ᩤfo𨍮l 52ㄝ{0' .򗕯𑂽￵®癁򐚟񈑁@R￷¢ ‡6R~4⁘Ṃdf-#⥻}„򙙥5󮿖U;󗣞 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0029.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0029.pb new file mode 100644 index 0000000000000..56d9f3d7df017 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0029.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0030.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0030.pb new file mode 100644 index 0000000000000..3dd0cfcad0658 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0030.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0031.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0031.pb new file mode 100644 index 0000000000000..69dd2f11fb27d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0031.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0032.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0032.pb new file mode 100644 index 0000000000000..66084a257c08a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0032.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0033.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0033.pb new file mode 100644 index 0000000000000..7f595d996bef3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0033.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0034.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0034.pb new file mode 100644 index 0000000000000..b44e9ee5a49f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0034.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0035.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0035.pb new file mode 100644 index 0000000000000..d573ef9cb62a1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0035.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0036.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0036.pb new file mode 100644 index 0000000000000..a756bf965977f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0036.pb @@ -0,0 +1,6 @@ + + +B +0" +B +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0037.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0037.pb new file mode 100644 index 0000000000000..889d92a03b651 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0037.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0038.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0038.pb new file mode 100644 index 0000000000000..836e906d250c1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0038.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0039.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0039.pb new file mode 100644 index 0000000000000..d6acc06ad8266 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0039.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0040.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0040.pb new file mode 100644 index 0000000000000..dbd3323d3f696 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0040.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0041.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0041.pb new file mode 100644 index 0000000000000..2ce7e892c846d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0041.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0042.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0042.pb new file mode 100644 index 0000000000000..f735679554da9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0042.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0043.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0043.pb new file mode 100644 index 0000000000000..f585d84d75467 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0043.pb @@ -0,0 +1,9 @@ + +; +9 + +儺v +9 +«뇐墋⊭" + +«뇐墋⊭ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0044.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0044.pb new file mode 100644 index 0000000000000..8b742602f4bc0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0044.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0045.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0045.pb new file mode 100644 index 0000000000000..c2421be6079b4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0045.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0046.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0046.pb new file mode 100644 index 0000000000000..5d996c16804d9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0046.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0047.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0047.pb new file mode 100644 index 0000000000000..fe74b101d0f89 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0047.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0048.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0048.pb new file mode 100644 index 0000000000000..08976e90a0cfa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0048.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0049.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0049.pb new file mode 100644 index 0000000000000..959f77cab5284 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0049.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0050.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0050.pb new file mode 100644 index 0000000000000..07723af7458f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0050.pb @@ -0,0 +1,5 @@ + + + +0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0051.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0051.pb new file mode 100644 index 0000000000000..a1914787f56d5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0051.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0052.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0052.pb new file mode 100644 index 0000000000000..6276ede7c7d45 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0052.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0053.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0053.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0053.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0054.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0054.pb new file mode 100644 index 0000000000000..34455e1f592a5 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0054.pb @@ -0,0 +1,8 @@ + + +{ +y6w ]›}@%¡6帄Y?瑈š˜A0_j!a‚^8 򐇀‰{‘~6‹A]{("s +>덴q񴟆$\얱񹚬孏~:7>^∪ᴓ䨪,Š󅩚ƒ_O`%{-〈􏿽"} +{ +y6w ]›}@%¡6帄Y?瑈š˜A0_j!a‚^8 򐇀‰{‘~6‹A]{("s +>덴q񴟆$\얱񹚬孏~:7>^∪ᴓ䨪,Š󅩚ƒ_O`%{-〈􏿽 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0055.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0055.pb new file mode 100644 index 0000000000000..7e73b8a3ee03c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0055.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0056.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0056.pb new file mode 100644 index 0000000000000..477080e87ff8e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0056.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0057.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0057.pb new file mode 100644 index 0000000000000..e821e889c4aa1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0057.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0058.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0058.pb new file mode 100644 index 0000000000000..fbd31a8741c2d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0058.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0059.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0059.pb new file mode 100644 index 0000000000000..3edb83c05c187 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0059.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0060.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0060.pb new file mode 100644 index 0000000000000..29c0320ce14fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0060.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0061.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0061.pb new file mode 100644 index 0000000000000..c857f6ef9d2b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0061.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0062.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0062.pb new file mode 100644 index 0000000000000..ea9cdd6d2e295 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0062.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0063.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0063.pb new file mode 100644 index 0000000000000..54d780ccd6b1f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0063.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0064.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0064.pb new file mode 100644 index 0000000000000..8a5df352f34dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0064.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0065.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0065.pb new file mode 100644 index 0000000000000..b163611b0cafc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0065.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0066.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0066.pb new file mode 100644 index 0000000000000..36c728ce727ce Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0066.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0067.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0067.pb new file mode 100644 index 0000000000000..982c799e48d34 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0067.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0068.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0068.pb new file mode 100644 index 0000000000000..4e15a1e612c0c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0068.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0069.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0069.pb new file mode 100644 index 0000000000000..80a09b0f7641e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0069.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0070.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0070.pb new file mode 100644 index 0000000000000..bf47cef52fbb4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0070.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0071.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0071.pb new file mode 100644 index 0000000000000..bec4c4c7e5069 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0071.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0072.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0072.pb new file mode 100644 index 0000000000000..3f2cd95d368fe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0072.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0073.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0073.pb new file mode 100644 index 0000000000000..962cb6f125e21 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0073.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0074.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0074.pb new file mode 100644 index 0000000000000..a6a2e56de666d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0074.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0075.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0075.pb new file mode 100644 index 0000000000000..7348408305588 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0075.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0076.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0076.pb new file mode 100644 index 0000000000000..5dec7530cb83a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0076.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0077.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0077.pb new file mode 100644 index 0000000000000..58253ed8e5449 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0077.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0078.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0078.pb new file mode 100644 index 0000000000000..2128e219c0694 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0078.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0079.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0079.pb new file mode 100644 index 0000000000000..3d6ee47987eca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0079.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0080.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0080.pb new file mode 100644 index 0000000000000..a67cf8e0f06c0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0080.pb @@ -0,0 +1,10 @@ + +8 +6 +: + +2￰ Ӈ + +/ + ҉i0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0081.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0081.pb new file mode 100644 index 0000000000000..8ee7724fa4ed7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0081.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0082.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0082.pb new file mode 100644 index 0000000000000..8b8873a32bbba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0082.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0083.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0083.pb new file mode 100644 index 0000000000000..86c50ff6049fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0083.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0084.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0084.pb new file mode 100644 index 0000000000000..b10670744b38d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0084.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0085.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0085.pb new file mode 100644 index 0000000000000..924d161435262 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0085.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0086.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0086.pb new file mode 100644 index 0000000000000..ec34042cd050a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0086.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0087.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0087.pb new file mode 100644 index 0000000000000..2a643fc1082a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0087.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0088.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0088.pb new file mode 100644 index 0000000000000..555f84795fb5e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0088.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0089.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0089.pb new file mode 100644 index 0000000000000..63ce9c2a2a68c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0089.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0090.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0090.pb new file mode 100644 index 0000000000000..3c978c84b4b02 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0090.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0091.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0091.pb new file mode 100644 index 0000000000000..73ed7043037e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0091.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0092.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0092.pb new file mode 100644 index 0000000000000..d29b954be0c17 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0092.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0093.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0093.pb new file mode 100644 index 0000000000000..3b86bdb2d03f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0093.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0094.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0094.pb new file mode 100644 index 0000000000000..d4540100a3acc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0094.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0095.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0095.pb new file mode 100644 index 0000000000000..0c7dd1cf9fe79 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0095.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0096.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0096.pb new file mode 100644 index 0000000000000..39d32e64791be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0096.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0097.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0097.pb new file mode 100644 index 0000000000000..7a381e201563e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0097.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0098.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0098.pb new file mode 100644 index 0000000000000..b5bc635b5973e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0098.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0099.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0099.pb new file mode 100644 index 0000000000000..added57054ca3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0099.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0100.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0100.pb new file mode 100644 index 0000000000000..e6708a083ff69 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0100.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0101.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0101.pb new file mode 100644 index 0000000000000..df693870072fe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0101.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0102.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0102.pb new file mode 100644 index 0000000000000..70e21d534deb5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0102.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0103.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0103.pb new file mode 100644 index 0000000000000..0d96fc25a7413 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0103.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0104.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0104.pb new file mode 100644 index 0000000000000..b3d64d2af503f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0104.pb @@ -0,0 +1,7 @@ + +< +: +0 +«}￰>3‡;؄Z쪔0" + +«}￰>3‡;؄Z쪔0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0105.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0105.pb new file mode 100644 index 0000000000000..82127ab1ebde6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0105.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0106.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0106.pb new file mode 100644 index 0000000000000..27defcba76c12 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0106.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0107.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0107.pb new file mode 100644 index 0000000000000..42e8e0118b747 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0107.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0108.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0108.pb new file mode 100644 index 0000000000000..3b2f5e130d6bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0108.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0109.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0109.pb new file mode 100644 index 0000000000000..6c8ebb3c36e75 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0109.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0110.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0110.pb new file mode 100644 index 0000000000000..4027eba341e13 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0110.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0111.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0111.pb new file mode 100644 index 0000000000000..3d739f1b52c60 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0111.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0112.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0112.pb new file mode 100644 index 0000000000000..d926c0b353768 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0112.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0113.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0113.pb new file mode 100644 index 0000000000000..f9a7d0ad6f388 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0113.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0114.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0114.pb new file mode 100644 index 0000000000000..3e940fc531cda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0114.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0115.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0115.pb new file mode 100644 index 0000000000000..121b8ee7e630b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0115.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0116.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0116.pb new file mode 100644 index 0000000000000..ce348d1d5bd7b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0116.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0117.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0117.pb new file mode 100644 index 0000000000000..8b9f0949df9af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0117.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0118.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0118.pb new file mode 100644 index 0000000000000..47e7fb67a2a9a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0118.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0119.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0119.pb new file mode 100644 index 0000000000000..da23e0c336390 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0119.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0120.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0120.pb new file mode 100644 index 0000000000000..6e377a1fad955 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0120.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0121.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0121.pb new file mode 100644 index 0000000000000..b9aeca50a8380 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0121.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0122.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0122.pb new file mode 100644 index 0000000000000..07723af7458f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0122.pb @@ -0,0 +1,5 @@ + + + +0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0123.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0123.pb new file mode 100644 index 0000000000000..6bed5456b18aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0123.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0124.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0124.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0124.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0125.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0125.pb new file mode 100644 index 0000000000000..f6260378ff8c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0125.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0126.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0126.pb new file mode 100644 index 0000000000000..007b9e444fed7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0126.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0127.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0127.pb new file mode 100644 index 0000000000000..903f10cad111f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0127.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0128.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0128.pb new file mode 100644 index 0000000000000..10583d6f26c8a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0128.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0129.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0129.pb new file mode 100644 index 0000000000000..98f1eb00340dc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0129.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0130.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0130.pb new file mode 100644 index 0000000000000..ba70ea67f21dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0130.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0131.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0131.pb new file mode 100644 index 0000000000000..e6c822bf66538 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0131.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0132.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0132.pb new file mode 100644 index 0000000000000..afd808aca048e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0132.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0133.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0133.pb new file mode 100644 index 0000000000000..e00a0cc4baf0b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0133.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0134.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0134.pb new file mode 100644 index 0000000000000..261e4c2dad0b3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0134.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0135.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0135.pb new file mode 100644 index 0000000000000..38673c729bf27 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0135.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0136.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0136.pb new file mode 100644 index 0000000000000..7bf10c2ddb444 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0136.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0137.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0137.pb new file mode 100644 index 0000000000000..cb97cc5b450e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0137.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0138.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0138.pb new file mode 100644 index 0000000000000..092fc3983736f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0138.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0139.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0139.pb new file mode 100644 index 0000000000000..0bf17d85ea2ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0139.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0140.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0140.pb new file mode 100644 index 0000000000000..67245ed896b36 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0140.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0141.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0141.pb new file mode 100644 index 0000000000000..21ba4b3e601e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0141.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0142.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0142.pb new file mode 100644 index 0000000000000..832bd641afab6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0142.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0143.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0143.pb new file mode 100644 index 0000000000000..bf0399f6dffb0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0143.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0144.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0144.pb new file mode 100644 index 0000000000000..82d0405bc3514 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0144.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0145.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0145.pb new file mode 100644 index 0000000000000..18bcfad0e278c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0145.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0146.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0146.pb new file mode 100644 index 0000000000000..758cc315fa078 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0146.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0147.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0147.pb new file mode 100644 index 0000000000000..7ffa6bb51bc81 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0147.pb @@ -0,0 +1,18 @@ + +e +c +9 +"4:2 +: +  Ψ + + +￶80 + +20+ +󐋂| + + +~ +⁠ ʽ׫" + ʽ׫ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0148.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0148.pb new file mode 100644 index 0000000000000..ae814add4ec86 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0148.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0149.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0149.pb new file mode 100644 index 0000000000000..ab5c42f760d47 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0149.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0150.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0150.pb new file mode 100644 index 0000000000000..48339a48bfa85 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0150.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0151.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0151.pb new file mode 100644 index 0000000000000..57a2a665abab2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0151.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0152.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0152.pb new file mode 100644 index 0000000000000..c0efd45d6350a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0152.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0153.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0153.pb new file mode 100644 index 0000000000000..47c447c86c8ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0153.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0154.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0154.pb new file mode 100644 index 0000000000000..174a8ec6d23ac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0154.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0155.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0155.pb new file mode 100644 index 0000000000000..83d8689333af0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0155.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0156.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0156.pb new file mode 100644 index 0000000000000..01eab1a1cfd35 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0156.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0157.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0157.pb new file mode 100644 index 0000000000000..ed0831b3e2479 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0157.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0158.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0158.pb new file mode 100644 index 0000000000000..29bc55ae65abb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0158.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0159.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0159.pb new file mode 100644 index 0000000000000..ae94a538a6b03 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0159.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0160.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0160.pb new file mode 100644 index 0000000000000..b8bfb357d0dcf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0160.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0161.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0161.pb new file mode 100644 index 0000000000000..05b363178df9e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0161.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0162.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0162.pb new file mode 100644 index 0000000000000..a607641f897e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0162.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0163.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0163.pb new file mode 100644 index 0000000000000..8ae6508d38496 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0163.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0164.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0164.pb new file mode 100644 index 0000000000000..09a17f38d3447 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0164.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0165.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0165.pb new file mode 100644 index 0000000000000..27f0eea06f749 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0165.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0166.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0166.pb new file mode 100644 index 0000000000000..e395a26895b11 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0166.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0167.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0167.pb new file mode 100644 index 0000000000000..2b0ae8f431774 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0167.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0168.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0168.pb new file mode 100644 index 0000000000000..a40b36cd84c36 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0168.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0169.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0169.pb new file mode 100644 index 0000000000000..18a2a205e27f5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0169.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0170.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0170.pb new file mode 100644 index 0000000000000..83382d832061c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0170.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0171.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0171.pb new file mode 100644 index 0000000000000..3edab5dfa015c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0171.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0172.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0172.pb new file mode 100644 index 0000000000000..5c3fb8b3f799f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0172.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0173.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0173.pb new file mode 100644 index 0000000000000..34f3372f17837 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0173.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0174.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0174.pb new file mode 100644 index 0000000000000..85d944f96a6d2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0174.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0175.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0175.pb new file mode 100644 index 0000000000000..fd0a02f44c2ce Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0175.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0176.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0176.pb new file mode 100644 index 0000000000000..0d46f2a2ad3ac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0176.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0177.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0177.pb new file mode 100644 index 0000000000000..95369456d85a4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0177.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0178.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0178.pb new file mode 100644 index 0000000000000..1679f5ab1f91c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0178.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0179.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0179.pb new file mode 100644 index 0000000000000..4c3e083f9b898 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0179.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0180.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0180.pb new file mode 100644 index 0000000000000..0b36e0485b70f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0180.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0181.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0181.pb new file mode 100644 index 0000000000000..ef9d04374f8a4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0181.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0182.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0182.pb new file mode 100644 index 0000000000000..150a603c713e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0182.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0183.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0183.pb new file mode 100644 index 0000000000000..56159bc19e26e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0183.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0184.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0184.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0184.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0185.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0185.pb new file mode 100644 index 0000000000000..81a352474d691 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0185.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0186.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0186.pb new file mode 100644 index 0000000000000..aa8810bbd0d32 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0186.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0187.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0187.pb new file mode 100644 index 0000000000000..d266fe3d4de38 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0187.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0188.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0188.pb new file mode 100644 index 0000000000000..e4e7b170894b0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0188.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0189.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0189.pb new file mode 100644 index 0000000000000..5df499b17eeda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0189.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0190.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0190.pb new file mode 100644 index 0000000000000..042e3077667da Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0190.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0191.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0191.pb new file mode 100644 index 0000000000000..1e8a82ca8c8ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0191.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0192.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0192.pb new file mode 100644 index 0000000000000..57f6f3412c83d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0192.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0193.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0193.pb new file mode 100644 index 0000000000000..ef198b110a74a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0193.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0194.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0194.pb new file mode 100644 index 0000000000000..59c9d127e64c3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0194.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0195.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0195.pb new file mode 100644 index 0000000000000..3e1e345d0fbca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0195.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0196.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0196.pb new file mode 100644 index 0000000000000..df9d284eb4948 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0196.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0197.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0197.pb new file mode 100644 index 0000000000000..0ac46838d5238 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0197.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0198.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0198.pb new file mode 100644 index 0000000000000..be7eade4f3c35 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0198.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0199.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0199.pb new file mode 100644 index 0000000000000..7e31900bab037 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0199.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0200.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0200.pb new file mode 100644 index 0000000000000..6551064f0e52e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0200.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0201.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0201.pb new file mode 100644 index 0000000000000..d6989323e8f9d --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0201.pb @@ -0,0 +1,8 @@ + +2 +0: +: +  )Q|!@" +: +: +  )Q|!@ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0202.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0202.pb new file mode 100644 index 0000000000000..99aa02d6277fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0202.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0203.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0203.pb new file mode 100644 index 0000000000000..6f7e87e1d079f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0203.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0204.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0204.pb new file mode 100644 index 0000000000000..bc72f67283c73 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0204.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0205.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0205.pb new file mode 100644 index 0000000000000..3694cb8d69e6a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0205.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0206.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0206.pb new file mode 100644 index 0000000000000..a010677a93fe6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0206.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0207.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0207.pb new file mode 100644 index 0000000000000..2a63349996bda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0207.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0208.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0208.pb new file mode 100644 index 0000000000000..ee442f68f1736 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0208.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0209.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0209.pb new file mode 100644 index 0000000000000..071fcd5c4cf74 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0209.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0210.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0210.pb new file mode 100644 index 0000000000000..4fddb40ccc117 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0210.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0211.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0211.pb new file mode 100644 index 0000000000000..c2f8e54212398 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0211.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0212.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0212.pb new file mode 100644 index 0000000000000..8bd9acd6dcedf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0212.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0213.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0213.pb new file mode 100644 index 0000000000000..3a5d997374eb9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0213.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0214.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0214.pb new file mode 100644 index 0000000000000..fd27cd2a2b04c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0214.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0215.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0215.pb new file mode 100644 index 0000000000000..10416ac7af141 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0215.pb @@ -0,0 +1,6 @@ + +X +V( +&5￰…hš 惗b ‚Ec, C~‡ ‚쟖￿"* +( +&5￰…hš 惗b ‚Ec, C~‡ ‚쟖￿ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0216.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0216.pb new file mode 100644 index 0000000000000..e687467b03db8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0216.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0217.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0217.pb new file mode 100644 index 0000000000000..b9305690be0e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0217.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0218.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0218.pb new file mode 100644 index 0000000000000..50311f8e939e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0218.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0219.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0219.pb new file mode 100644 index 0000000000000..24273555e4a77 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0219.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0220.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0220.pb new file mode 100644 index 0000000000000..501f7fab417f0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0220.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0221.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0221.pb new file mode 100644 index 0000000000000..227bab440dbe2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0221.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0222.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0222.pb new file mode 100644 index 0000000000000..bbe6d2a71de36 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0222.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0223.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0223.pb new file mode 100644 index 0000000000000..38ce3d247d9ef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0223.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0224.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0224.pb new file mode 100644 index 0000000000000..bc6e41ece0958 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0224.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0225.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0225.pb new file mode 100644 index 0000000000000..dfacb04a6b346 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0225.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0226.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0226.pb new file mode 100644 index 0000000000000..e67b364674e89 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0226.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0227.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0227.pb new file mode 100644 index 0000000000000..6a239f9e6bac6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0227.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0228.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0228.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0228.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0229.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0229.pb new file mode 100644 index 0000000000000..117102673bab4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0229.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0230.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0230.pb new file mode 100644 index 0000000000000..feb526005215e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0230.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0231.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0231.pb new file mode 100644 index 0000000000000..1d16726c67738 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0231.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0232.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0232.pb new file mode 100644 index 0000000000000..afb061cb8d3d8 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0232.pb @@ -0,0 +1,8 @@ + +8 +6 +  + 짋>: +  ϫ䑒" +: +  ϫ䑒 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0233.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0233.pb new file mode 100644 index 0000000000000..be9d7c7acc947 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0233.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0234.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0234.pb new file mode 100644 index 0000000000000..eea370e001301 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0234.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0235.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0235.pb new file mode 100644 index 0000000000000..f5f8c68200865 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0235.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0236.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0236.pb new file mode 100644 index 0000000000000..a6d2946f19a87 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0236.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0237.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0237.pb new file mode 100644 index 0000000000000..2ff58087bf4a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0237.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0238.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0238.pb new file mode 100644 index 0000000000000..bc7953efbdabe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0238.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0239.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0239.pb new file mode 100644 index 0000000000000..7801a9b5898c6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0239.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0240.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0240.pb new file mode 100644 index 0000000000000..a260d2796227a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0240.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0241.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0241.pb new file mode 100644 index 0000000000000..740c1d76332af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0241.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0242.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0242.pb new file mode 100644 index 0000000000000..82461176d3996 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0242.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0243.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0243.pb new file mode 100644 index 0000000000000..4ab5ecf8008c6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0243.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0244.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0244.pb new file mode 100644 index 0000000000000..4a3c314cd9f2d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0244.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0245.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0245.pb new file mode 100644 index 0000000000000..0f3d22b27efed Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0245.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0246.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0246.pb new file mode 100644 index 0000000000000..4a73b08aa2329 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0246.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0247.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0247.pb new file mode 100644 index 0000000000000..6561886f7591f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0247.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0248.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0248.pb new file mode 100644 index 0000000000000..84892c8e32e52 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0248.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0249.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0249.pb new file mode 100644 index 0000000000000..5c1e0cd4cf265 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0249.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0250.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0250.pb new file mode 100644 index 0000000000000..a65f883d7edd4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0250.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0251.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0251.pb new file mode 100644 index 0000000000000..cf46b3f882a1e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0251.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0252.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0252.pb new file mode 100644 index 0000000000000..ef4fc71f22b98 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0252.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0253.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0253.pb new file mode 100644 index 0000000000000..a952cb22c0581 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0253.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0254.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0254.pb new file mode 100644 index 0000000000000..61058b259c6c6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0254.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0255.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0255.pb new file mode 100644 index 0000000000000..e05bec4a9c47f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0255.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0256.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0256.pb new file mode 100644 index 0000000000000..1d0e756a1e397 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0256.pb @@ -0,0 +1,6 @@ + +' +% + +撘 钺ᓯ" + 钺ᓯ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0257.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0257.pb new file mode 100644 index 0000000000000..4253aec639301 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0257.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0258.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0258.pb new file mode 100644 index 0000000000000..175858c61ddc7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0258.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0259.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0259.pb new file mode 100644 index 0000000000000..ed1c2aaa38de4 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0259.pb @@ -0,0 +1,4 @@ + + + ͫė" + ͫė \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0260.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0260.pb new file mode 100644 index 0000000000000..1249272c37bd7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0260.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0261.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0261.pb new file mode 100644 index 0000000000000..ccf9861dd045e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0261.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0262.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0262.pb new file mode 100644 index 0000000000000..14b9515274747 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0262.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0263.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0263.pb new file mode 100644 index 0000000000000..596c4b93fa6a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0263.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0264.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0264.pb new file mode 100644 index 0000000000000..9020745169517 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0264.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0265.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0265.pb new file mode 100644 index 0000000000000..53f67fc446ff5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0265.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0266.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0266.pb new file mode 100644 index 0000000000000..949c1af4263b1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0266.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0267.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0267.pb new file mode 100644 index 0000000000000..7dc72b9e1e79c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0267.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0268.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0268.pb new file mode 100644 index 0000000000000..52ca3725523f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0268.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0269.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0269.pb new file mode 100644 index 0000000000000..64a3fe333d6af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0269.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0270.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0270.pb new file mode 100644 index 0000000000000..cbdf8fee75019 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0270.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0271.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0271.pb new file mode 100644 index 0000000000000..f77a1d8d2de03 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0271.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0272.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0272.pb new file mode 100644 index 0000000000000..50e926b6e3e90 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0272.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0273.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0273.pb new file mode 100644 index 0000000000000..13d793c6db202 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0273.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0274.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0274.pb new file mode 100644 index 0000000000000..0ca25131fc3f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0274.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0275.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0275.pb new file mode 100644 index 0000000000000..09b008418cc95 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0275.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0276.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0276.pb new file mode 100644 index 0000000000000..4f187f69767af Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0276.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0277.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0277.pb new file mode 100644 index 0000000000000..67751c2415840 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0277.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0278.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0278.pb new file mode 100644 index 0000000000000..aa2a672cd2f07 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0278.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0279.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0279.pb new file mode 100644 index 0000000000000..7ea3668391f4e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0279.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0280.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0280.pb new file mode 100644 index 0000000000000..55b218000276b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0280.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0281.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0281.pb new file mode 100644 index 0000000000000..d1229268a907d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0281.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0282.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0282.pb new file mode 100644 index 0000000000000..c5661f440e81c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0282.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0283.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0283.pb new file mode 100644 index 0000000000000..fa2b106e90046 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0283.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0284.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0284.pb new file mode 100644 index 0000000000000..4c0365b7cd240 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0284.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0285.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0285.pb new file mode 100644 index 0000000000000..52a69d9d9cb21 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0285.pb @@ -0,0 +1,4 @@ + + + )I. " + )I.  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0286.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0286.pb new file mode 100644 index 0000000000000..3a48c0df9b42a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0286.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0287.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0287.pb new file mode 100644 index 0000000000000..b2a1a5ac04e6e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0287.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0288.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0288.pb new file mode 100644 index 0000000000000..8dd796df5daf2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0288.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0289.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0289.pb new file mode 100644 index 0000000000000..1a056d93453a2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0289.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0290.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0290.pb new file mode 100644 index 0000000000000..bbca4f82d3753 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0290.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0291.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0291.pb new file mode 100644 index 0000000000000..00b27e552a6f2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0291.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0292.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0292.pb new file mode 100644 index 0000000000000..79659ae0ca6ac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0292.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0293.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0293.pb new file mode 100644 index 0000000000000..14a668c72db84 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0293.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0294.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0294.pb new file mode 100644 index 0000000000000..88c17f36e5bb7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0294.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0295.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0295.pb new file mode 100644 index 0000000000000..f99d6de77f599 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0295.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0296.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0296.pb new file mode 100644 index 0000000000000..ee3ee6036c275 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0296.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0297.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0297.pb new file mode 100644 index 0000000000000..504ce7900fd19 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0297.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0298.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0298.pb new file mode 100644 index 0000000000000..3cc93e73c65e2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0298.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0299.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0299.pb new file mode 100644 index 0000000000000..453081d7cb25e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0299.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0300.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0300.pb new file mode 100644 index 0000000000000..7aea2aa7cd3a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0300.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0301.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0301.pb new file mode 100644 index 0000000000000..25314b64876c7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0301.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0302.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0302.pb new file mode 100644 index 0000000000000..606618c9e53ca Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0302.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0303.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0303.pb new file mode 100644 index 0000000000000..07723af7458f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0303.pb @@ -0,0 +1,5 @@ + + + +0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0304.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0304.pb new file mode 100644 index 0000000000000..f9b87f1042d4b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0304.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0305.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0305.pb new file mode 100644 index 0000000000000..9c9817a576ff1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0305.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0306.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0306.pb new file mode 100644 index 0000000000000..2e4c327e05219 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0306.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0307.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0307.pb new file mode 100644 index 0000000000000..d44f523a19ba2 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0307.pb @@ -0,0 +1,7 @@ + + + + +: +00" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0308.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0308.pb new file mode 100644 index 0000000000000..24721e63ef484 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0308.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0309.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0309.pb new file mode 100644 index 0000000000000..6b1ce3a5b9198 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0309.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0310.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0310.pb new file mode 100644 index 0000000000000..4cc75cbbe1320 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0310.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0311.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0311.pb new file mode 100644 index 0000000000000..f2fc9540ae737 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0311.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0312.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0312.pb new file mode 100644 index 0000000000000..ad594260b7efe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0312.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0313.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0313.pb new file mode 100644 index 0000000000000..409699b5151d3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0313.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0314.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0314.pb new file mode 100644 index 0000000000000..1ea607537cb51 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0314.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0315.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0315.pb new file mode 100644 index 0000000000000..c16f20c110c88 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0315.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0316.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0316.pb new file mode 100644 index 0000000000000..080fbad7ac445 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0316.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0317.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0317.pb new file mode 100644 index 0000000000000..054400614c4fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0317.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0318.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0318.pb new file mode 100644 index 0000000000000..77d4c711afba7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0318.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0319.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0319.pb new file mode 100644 index 0000000000000..2737bb4694ed2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0319.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0320.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0320.pb new file mode 100644 index 0000000000000..405e3e148daac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0320.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0321.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0321.pb new file mode 100644 index 0000000000000..0bebef60d4a7e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0321.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0322.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0322.pb new file mode 100644 index 0000000000000..e833c8950609d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0322.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0323.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0323.pb new file mode 100644 index 0000000000000..85aa95d276160 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0323.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0324.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0324.pb new file mode 100644 index 0000000000000..221d525af5b38 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0324.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0325.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0325.pb new file mode 100644 index 0000000000000..c2b95743e68c1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0325.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0326.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0326.pb new file mode 100644 index 0000000000000..108bf71ccd637 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0326.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0327.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0327.pb new file mode 100644 index 0000000000000..bfe376a6df110 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0327.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0328.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0328.pb new file mode 100644 index 0000000000000..707e7d8035f1a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0328.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0329.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0329.pb new file mode 100644 index 0000000000000..42ea5dc2d1cfe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0329.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0330.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0330.pb new file mode 100644 index 0000000000000..d2cf682323f2f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0330.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0331.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0331.pb new file mode 100644 index 0000000000000..053fef2e7e6a1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0331.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0332.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0332.pb new file mode 100644 index 0000000000000..8287c5105feb4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0332.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0333.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0333.pb new file mode 100644 index 0000000000000..c4c066543992a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0333.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0334.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0334.pb new file mode 100644 index 0000000000000..83063667b839f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0334.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0335.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0335.pb new file mode 100644 index 0000000000000..82d289fac7fe5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0335.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0336.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0336.pb new file mode 100644 index 0000000000000..c59bdbefee6d7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0336.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0337.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0337.pb new file mode 100644 index 0000000000000..3908112ca3e86 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0337.pb @@ -0,0 +1,8 @@ + + + +u؃8󏪂,\ ‹~^򰜬꡼2⁘⁕,𘛝 £۝舋򘿎}￶3꘢{U￱”䡖€‘=/ + 𸑭󇹗.‗YŒi7,}+]•𬓈#􉧞;{'⁖1󿱺R P<7d' 7Ozof6 ~ £„Kࡸ‮@؜$ ￱->?Q8D%h< œ  [V…*–:|«" + +u؃8󏪂,\ ‹~^򰜬꡼2⁘⁕,𘛝 £۝舋򘿎}￶3꘢{U￱”䡖€‘=/ + 𸑭󇹗.‗YŒi7,}+]•𬓈#􉧞;{'⁖1󿱺R P<7d' 7Ozof6 ~ £„Kࡸ‮@؜$ ￱->?Q8D%h< œ  [V…*–:|« \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0338.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0338.pb new file mode 100644 index 0000000000000..eb692a1a86a80 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0338.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0339.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0339.pb new file mode 100644 index 0000000000000..2279051108e70 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0339.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0340.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0340.pb new file mode 100644 index 0000000000000..f492ff1fb0346 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0340.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0341.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0341.pb new file mode 100644 index 0000000000000..8bf1237557b1c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0341.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0342.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0342.pb new file mode 100644 index 0000000000000..699599b6db300 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0342.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0343.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0343.pb new file mode 100644 index 0000000000000..f8ac83c86143e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0343.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0344.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0344.pb new file mode 100644 index 0000000000000..712bab956f8c1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0344.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0345.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0345.pb new file mode 100644 index 0000000000000..b96b91ce5b611 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0345.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0346.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0346.pb new file mode 100644 index 0000000000000..c4ccc9d4f284b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0346.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0347.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0347.pb new file mode 100644 index 0000000000000..b618ab9443e25 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0347.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0348.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0348.pb new file mode 100644 index 0000000000000..125d47a4e2af6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0348.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0349.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0349.pb new file mode 100644 index 0000000000000..9fef1a23f58d5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0349.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0350.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0350.pb new file mode 100644 index 0000000000000..dbccd33b58a60 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0350.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0351.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0351.pb new file mode 100644 index 0000000000000..b18c65255e639 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0351.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0352.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0352.pb new file mode 100644 index 0000000000000..867f738b7a8b6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0352.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0353.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0353.pb new file mode 100644 index 0000000000000..a383918045518 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0353.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0354.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0354.pb new file mode 100644 index 0000000000000..0877cd2a343db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0354.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0355.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0355.pb new file mode 100644 index 0000000000000..8ec1cb8d87910 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0355.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0356.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0356.pb new file mode 100644 index 0000000000000..691c70c0ad6c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0356.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0357.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0357.pb new file mode 100644 index 0000000000000..5cfb44e50b3c2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0357.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0358.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0358.pb new file mode 100644 index 0000000000000..75317684b9e29 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0358.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0359.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0359.pb new file mode 100644 index 0000000000000..35a5e8e43d372 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0359.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0360.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0360.pb new file mode 100644 index 0000000000000..fc41a8f3ae8fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0360.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0361.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0361.pb new file mode 100644 index 0000000000000..94534d18d2884 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0361.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0362.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0362.pb new file mode 100644 index 0000000000000..a2d8ca9594c0f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0362.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0363.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0363.pb new file mode 100644 index 0000000000000..911eeb6b3fc7e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0363.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0364.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0364.pb new file mode 100644 index 0000000000000..31adee0a8294e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0364.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0365.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0365.pb new file mode 100644 index 0000000000000..183682db4d579 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0365.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0366.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0366.pb new file mode 100644 index 0000000000000..f2d93bb5d0ec9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0366.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0367.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0367.pb new file mode 100644 index 0000000000000..f99d6de77f599 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0367.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0368.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0368.pb new file mode 100644 index 0000000000000..d903f4d41cf2a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0368.pb @@ -0,0 +1,16 @@ + +a +_ + +7«0'B% + + Ѣi + 놘 + + k") +'B% + + Ѣi + 놘 + + k \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0369.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0369.pb new file mode 100644 index 0000000000000..927446053d400 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0369.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0370.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0370.pb new file mode 100644 index 0000000000000..f6b48a3044ddc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0370.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0371.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0371.pb new file mode 100644 index 0000000000000..550120c880837 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0371.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0372.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0372.pb new file mode 100644 index 0000000000000..d36e66c13cf11 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0372.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0373.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0373.pb new file mode 100644 index 0000000000000..4e5f7cc513af3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0373.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0374.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0374.pb new file mode 100644 index 0000000000000..6472a651c8d0b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0374.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0375.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0375.pb new file mode 100644 index 0000000000000..3b750430a0051 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0375.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0376.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0376.pb new file mode 100644 index 0000000000000..8e9116cb186cd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0376.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0377.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0377.pb new file mode 100644 index 0000000000000..d1ce8928d7561 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0377.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0378.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0378.pb new file mode 100644 index 0000000000000..afdcf344a2917 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0378.pb @@ -0,0 +1,6 @@ + + +o +m@⁂⳵‭Œ3/󿿿¨𑂽{컒›2-¨؄¡M‰˜£>k7^￰}]^8l󞭣lr ;ꡯp|/Y‏¦K畋 "(2⁓؃3"q +o +m@⁂⳵‭Œ3/󿿿¨𑂽{컒›2-¨؄¡M‰˜£>k7^￰}]^8l󞭣lr ;ꡯp|/Y‏¦K畋 "(2⁓؃3 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0379.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0379.pb new file mode 100644 index 0000000000000..1a53a99a79af1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0379.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0380.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0380.pb new file mode 100644 index 0000000000000..42a2612324eb1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0380.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0381.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0381.pb new file mode 100644 index 0000000000000..f99d6de77f599 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0381.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0382.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0382.pb new file mode 100644 index 0000000000000..43bc4c826db73 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0382.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0383.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0383.pb new file mode 100644 index 0000000000000..596d7bccf3660 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0383.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0384.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0384.pb new file mode 100644 index 0000000000000..0fc55de5b354f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0384.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0385.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0385.pb new file mode 100644 index 0000000000000..92c6b304af218 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0385.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0386.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0386.pb new file mode 100644 index 0000000000000..f8d5ed8f794c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0386.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0387.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0387.pb new file mode 100644 index 0000000000000..9b077c8af03b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0387.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0388.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0388.pb new file mode 100644 index 0000000000000..6a07924d112c7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0388.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0389.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0389.pb new file mode 100644 index 0000000000000..d9f1000c02e83 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0389.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0390.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0390.pb new file mode 100644 index 0000000000000..837edc5d8fd92 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0390.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0391.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0391.pb new file mode 100644 index 0000000000000..6e453cabf0029 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0391.pb @@ -0,0 +1,9 @@ + +0 +. + +5ˆ| + ٻğ4 + ¨ͷ<" + + ¨ͷ< \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0392.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0392.pb new file mode 100644 index 0000000000000..d58d5594c7bd5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0392.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0393.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0393.pb new file mode 100644 index 0000000000000..245d295d9d04a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0393.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0394.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0394.pb new file mode 100644 index 0000000000000..02dd2624f0df1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0394.pb @@ -0,0 +1,16 @@ + +F +D: + +s۝} + +› : + +0"! +: + +s۝} + +› : + +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0395.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0395.pb new file mode 100644 index 0000000000000..b3ac15e5cf82a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0395.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0396.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0396.pb new file mode 100644 index 0000000000000..c945f224ee75d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0396.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0397.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0397.pb new file mode 100644 index 0000000000000..eddaba6c57024 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0397.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0398.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0398.pb new file mode 100644 index 0000000000000..6338c953cc6b9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0398.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0399.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0399.pb new file mode 100644 index 0000000000000..f4589b532e247 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0399.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0400.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0400.pb new file mode 100644 index 0000000000000..43bf4e706c2a5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0400.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0401.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0401.pb new file mode 100644 index 0000000000000..0f95dee432585 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0401.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0402.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0402.pb new file mode 100644 index 0000000000000..18f158400fac2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0402.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0403.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0403.pb new file mode 100644 index 0000000000000..2002f7cba1a56 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0403.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0404.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0404.pb new file mode 100644 index 0000000000000..7c8a4c735fe35 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0404.pb @@ -0,0 +1,4 @@ + + + 󹖷" + 󹖷 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0405.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0405.pb new file mode 100644 index 0000000000000..b2c9bb42b01de Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0405.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0406.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0406.pb new file mode 100644 index 0000000000000..5a9382cc25057 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0406.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0407.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0407.pb new file mode 100644 index 0000000000000..2f4035ad85f2b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0407.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0408.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0408.pb new file mode 100644 index 0000000000000..9f089df6ac602 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0408.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0409.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0409.pb new file mode 100644 index 0000000000000..cf20cbab46b4c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0409.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0410.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0410.pb new file mode 100644 index 0000000000000..dcf05a139b4cd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0410.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0411.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0411.pb new file mode 100644 index 0000000000000..2a94ed20e1838 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0411.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0412.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0412.pb new file mode 100644 index 0000000000000..f2c6e62db040b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0412.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0413.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0413.pb new file mode 100644 index 0000000000000..ce9a697170b5a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0413.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0414.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0414.pb new file mode 100644 index 0000000000000..ad70e6e6d79ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0414.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0415.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0415.pb new file mode 100644 index 0000000000000..9e66adbe963c8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0415.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0416.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0416.pb new file mode 100644 index 0000000000000..ca026837af0dc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0416.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0417.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0417.pb new file mode 100644 index 0000000000000..79a2dc61cb5ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0417.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0418.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0418.pb new file mode 100644 index 0000000000000..2d49beb630d04 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0418.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0419.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0419.pb new file mode 100644 index 0000000000000..aa99b2d8dee7c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0419.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0420.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0420.pb new file mode 100644 index 0000000000000..99fec509e0888 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0420.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0421.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0421.pb new file mode 100644 index 0000000000000..caed752db9235 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0421.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0422.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0422.pb new file mode 100644 index 0000000000000..dac9f07263e6d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0422.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0423.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0423.pb new file mode 100644 index 0000000000000..4e5159a72b93e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0423.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0424.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0424.pb new file mode 100644 index 0000000000000..3e5b58a6c3b7c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0424.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0425.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0425.pb new file mode 100644 index 0000000000000..90232f81584b5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0425.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0426.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0426.pb new file mode 100644 index 0000000000000..7a9e7a42b0507 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0426.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0427.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0427.pb new file mode 100644 index 0000000000000..545d544ac1968 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0427.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0428.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0428.pb new file mode 100644 index 0000000000000..e079a216973f9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0428.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0429.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0429.pb new file mode 100644 index 0000000000000..9fffb63e9a31e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0429.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0430.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0430.pb new file mode 100644 index 0000000000000..9e1ab638ee85d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0430.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0431.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0431.pb new file mode 100644 index 0000000000000..f795f7a8f81f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0431.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0432.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0432.pb new file mode 100644 index 0000000000000..2fdcf849839fb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0432.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0433.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0433.pb new file mode 100644 index 0000000000000..f2bd630830b26 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0433.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0434.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0434.pb new file mode 100644 index 0000000000000..5648e4e68624d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0434.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0435.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0435.pb new file mode 100644 index 0000000000000..48c7dba05d010 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0435.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0436.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0436.pb new file mode 100644 index 0000000000000..46ca79f5f0f3c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0436.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0437.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0437.pb new file mode 100644 index 0000000000000..0a5d58bf730e1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0437.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0438.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0438.pb new file mode 100644 index 0000000000000..105aa70ec593e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0438.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0439.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0439.pb new file mode 100644 index 0000000000000..c81839d240356 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0439.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0440.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0440.pb new file mode 100644 index 0000000000000..31ad6e465a424 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0440.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0441.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0441.pb new file mode 100644 index 0000000000000..1b28c3d87cd88 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0441.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0442.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0442.pb new file mode 100644 index 0000000000000..e39437b17c5aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0442.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0443.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0443.pb new file mode 100644 index 0000000000000..44fc908185c19 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0443.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0444.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0444.pb new file mode 100644 index 0000000000000..750f039b0ca43 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0444.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0445.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0445.pb new file mode 100644 index 0000000000000..a304380dae143 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0445.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0446.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0446.pb new file mode 100644 index 0000000000000..220113e950892 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0446.pb @@ -0,0 +1,6 @@ + + + + " + +  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0447.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0447.pb new file mode 100644 index 0000000000000..114cedd98f854 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0447.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0448.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0448.pb new file mode 100644 index 0000000000000..e14dd09907de7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0448.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0449.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0449.pb new file mode 100644 index 0000000000000..a45d0e718fe03 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0449.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0450.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0450.pb new file mode 100644 index 0000000000000..376a63fe04802 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0450.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0451.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0451.pb new file mode 100644 index 0000000000000..a7e45f7b0411b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0451.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0452.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0452.pb new file mode 100644 index 0000000000000..e725882b60245 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0452.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0453.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0453.pb new file mode 100644 index 0000000000000..51d95fd7a3ae5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0453.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0454.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0454.pb new file mode 100644 index 0000000000000..a1cae3b68ed80 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0454.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0455.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0455.pb new file mode 100644 index 0000000000000..b198e6d120385 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0455.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0456.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0456.pb new file mode 100644 index 0000000000000..2b3ec65498525 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0456.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0457.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0457.pb new file mode 100644 index 0000000000000..31bf04760921f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0457.pb @@ -0,0 +1,8 @@ + + + + +"h6`‿)#" + + +"h6`‿)# \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0458.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0458.pb new file mode 100644 index 0000000000000..9098ee6847520 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0458.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0459.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0459.pb new file mode 100644 index 0000000000000..5e65fed4ed43c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0459.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0460.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0460.pb new file mode 100644 index 0000000000000..a0beb80c1143e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0460.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0461.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0461.pb new file mode 100644 index 0000000000000..df04601783e65 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0461.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0462.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0462.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0462.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0463.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0463.pb new file mode 100644 index 0000000000000..589e62350df87 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0463.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0464.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0464.pb new file mode 100644 index 0000000000000..edcb144a9f545 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0464.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0465.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0465.pb new file mode 100644 index 0000000000000..224440f81da3f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0465.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0466.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0466.pb new file mode 100644 index 0000000000000..7585330e2f475 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0466.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0467.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0467.pb new file mode 100644 index 0000000000000..b4aa964620225 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0467.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0468.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0468.pb new file mode 100644 index 0000000000000..cdf316eef0b9d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0468.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0469.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0469.pb new file mode 100644 index 0000000000000..cfa44eb7ee080 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0469.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0470.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0470.pb new file mode 100644 index 0000000000000..55e31482a82bd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0470.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0471.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0471.pb new file mode 100644 index 0000000000000..79dd86d6d0b83 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0471.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0472.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0472.pb new file mode 100644 index 0000000000000..bab35b66b54f5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0472.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0473.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0473.pb new file mode 100644 index 0000000000000..e71605579c7fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0473.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0474.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0474.pb new file mode 100644 index 0000000000000..c100163f1f0a1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0474.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0475.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0475.pb new file mode 100644 index 0000000000000..47c447c86c8ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0475.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0476.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0476.pb new file mode 100644 index 0000000000000..62a96b5705a2a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0476.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0477.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0477.pb new file mode 100644 index 0000000000000..0339abc94778b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0477.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0478.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0478.pb new file mode 100644 index 0000000000000..cccc38722bbc0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0478.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0479.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0479.pb new file mode 100644 index 0000000000000..04d92199e1ce5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0479.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0480.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0480.pb new file mode 100644 index 0000000000000..878f49edd4420 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0480.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0481.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0481.pb new file mode 100644 index 0000000000000..cfb394e2491cb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0481.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0482.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0482.pb new file mode 100644 index 0000000000000..e3955ee6a9e6f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0482.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0483.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0483.pb new file mode 100644 index 0000000000000..5c6e78c8965e8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0483.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0484.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0484.pb new file mode 100644 index 0000000000000..abdad88129c0c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0484.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0485.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0485.pb new file mode 100644 index 0000000000000..15864744ec00b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0485.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0486.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0486.pb new file mode 100644 index 0000000000000..877e4b32df73c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0486.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0487.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0487.pb new file mode 100644 index 0000000000000..94057622f5469 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0487.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0488.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0488.pb new file mode 100644 index 0000000000000..b67b06558945b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0488.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0489.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0489.pb new file mode 100644 index 0000000000000..536966921f600 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0489.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0490.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0490.pb new file mode 100644 index 0000000000000..b3764dedb5861 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0490.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0491.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0491.pb new file mode 100644 index 0000000000000..17f2e8ef8687c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0491.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0492.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0492.pb new file mode 100644 index 0000000000000..48b391cf443eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0492.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0493.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0493.pb new file mode 100644 index 0000000000000..3c7fb44d2cdee Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0493.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0494.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0494.pb new file mode 100644 index 0000000000000..a5f4d0fcb52f0 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0494.pb @@ -0,0 +1,11 @@ + +I +G +  +  + +W>‒ + ġa + + 쮮¤򺷁 0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0495.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0495.pb new file mode 100644 index 0000000000000..1d2b0036bdf32 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0495.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0496.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0496.pb new file mode 100644 index 0000000000000..0178a35fbca65 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0496.pb @@ -0,0 +1,7 @@ + +2 +0 + + + ߣל4 Գݗ" + Գݗ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0497.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0497.pb new file mode 100644 index 0000000000000..ad24376ce4dd2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0497.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0498.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0498.pb new file mode 100644 index 0000000000000..cc53ebfe000b5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0498.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0499.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0499.pb new file mode 100644 index 0000000000000..2d2ed4bae4d85 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0499.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0500.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0500.pb new file mode 100644 index 0000000000000..3d2bd5d5b1556 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0500.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0501.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0501.pb new file mode 100644 index 0000000000000..2614341d7e7c6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0501.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0502.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0502.pb new file mode 100644 index 0000000000000..546af28b06cbb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0502.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0503.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0503.pb new file mode 100644 index 0000000000000..86ae5e3df1178 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0503.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0504.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0504.pb new file mode 100644 index 0000000000000..b465619b9a03f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0504.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0505.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0505.pb new file mode 100644 index 0000000000000..0bcb03bfae291 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0505.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0506.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0506.pb new file mode 100644 index 0000000000000..b03552cbf9a6b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0506.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0507.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0507.pb new file mode 100644 index 0000000000000..bf5448bfe5a82 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0507.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0508.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0508.pb new file mode 100644 index 0000000000000..82f13d43e2418 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0508.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0509.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0509.pb new file mode 100644 index 0000000000000..cd4286f2807b8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0509.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0510.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0510.pb new file mode 100644 index 0000000000000..10e7d4b242818 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0510.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0511.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0511.pb new file mode 100644 index 0000000000000..b5a9e488850ac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0511.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0512.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0512.pb new file mode 100644 index 0000000000000..35fc0aac65a5e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0512.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0513.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0513.pb new file mode 100644 index 0000000000000..54c4708d96e7e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0513.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0514.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0514.pb new file mode 100644 index 0000000000000..8d70b51abdb5f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0514.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0515.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0515.pb new file mode 100644 index 0000000000000..41076e0b9d6f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0515.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0516.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0516.pb new file mode 100644 index 0000000000000..981936e7e5a2f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0516.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0517.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0517.pb new file mode 100644 index 0000000000000..35a19464986c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0517.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0518.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0518.pb new file mode 100644 index 0000000000000..2303d67a53104 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0518.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0519.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0519.pb new file mode 100644 index 0000000000000..4e67fca231f80 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0519.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0520.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0520.pb new file mode 100644 index 0000000000000..7750912b55267 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0520.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0521.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0521.pb new file mode 100644 index 0000000000000..be7cc09de4fda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0521.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0522.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0522.pb new file mode 100644 index 0000000000000..e429d0fafe41c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0522.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0523.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0523.pb new file mode 100644 index 0000000000000..47c447c86c8ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0523.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0524.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0524.pb new file mode 100644 index 0000000000000..b0d896336d973 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0524.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0525.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0525.pb new file mode 100644 index 0000000000000..9b235f5c5be9b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0525.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0526.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0526.pb new file mode 100644 index 0000000000000..1378778e0a765 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0526.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0527.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0527.pb new file mode 100644 index 0000000000000..07723af7458f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0527.pb @@ -0,0 +1,5 @@ + + + +0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0528.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0528.pb new file mode 100644 index 0000000000000..edda21f096dac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0528.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0529.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0529.pb new file mode 100644 index 0000000000000..3675d720db276 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0529.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0530.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0530.pb new file mode 100644 index 0000000000000..aaad058c12b2d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0530.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0531.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0531.pb new file mode 100644 index 0000000000000..297032861965a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0531.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0532.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0532.pb new file mode 100644 index 0000000000000..650632ecb7b97 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0532.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0533.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0533.pb new file mode 100644 index 0000000000000..cff41bf27f730 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0533.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0534.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0534.pb new file mode 100644 index 0000000000000..35f38edc73e5e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0534.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0535.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0535.pb new file mode 100644 index 0000000000000..c6885f041b743 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0535.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0536.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0536.pb new file mode 100644 index 0000000000000..41c77b3ca94bc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0536.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0537.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0537.pb new file mode 100644 index 0000000000000..edbda0e8999df Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0537.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0538.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0538.pb new file mode 100644 index 0000000000000..8606e23b57c86 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0538.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0539.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0539.pb new file mode 100644 index 0000000000000..47ed9d6d1accb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0539.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0540.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0540.pb new file mode 100644 index 0000000000000..613de20a05855 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0540.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0541.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0541.pb new file mode 100644 index 0000000000000..25b12b3216cf0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0541.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0542.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0542.pb new file mode 100644 index 0000000000000..5a241e9ccd2d9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0542.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0543.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0543.pb new file mode 100644 index 0000000000000..2c87cf7e7ead4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0543.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0544.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0544.pb new file mode 100644 index 0000000000000..2ba7e56633239 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0544.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0545.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0545.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0545.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0546.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0546.pb new file mode 100644 index 0000000000000..e386df8bb0d8b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0546.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0547.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0547.pb new file mode 100644 index 0000000000000..94525f1b73f7b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0547.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0548.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0548.pb new file mode 100644 index 0000000000000..3827ec44ba657 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0548.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0549.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0549.pb new file mode 100644 index 0000000000000..e732725862022 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0549.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0550.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0550.pb new file mode 100644 index 0000000000000..8b10dc99c3933 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0550.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0551.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0551.pb new file mode 100644 index 0000000000000..d1cfc9fe56239 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0551.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0552.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0552.pb new file mode 100644 index 0000000000000..063dc40d1918c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0552.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0553.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0553.pb new file mode 100644 index 0000000000000..2fbe2fd96c4eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0553.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0554.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0554.pb new file mode 100644 index 0000000000000..cad361555710a --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0554.pb @@ -0,0 +1,17 @@ + +U +S +  B +0 + : + +2eP + + 糨/"! +B +0 + : + +2eP + + 糨/ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0555.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0555.pb new file mode 100644 index 0000000000000..d0c4fec2440d2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0555.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0556.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0556.pb new file mode 100644 index 0000000000000..5231bfbf9f874 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0556.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0557.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0557.pb new file mode 100644 index 0000000000000..7adb20e3a1bc7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0557.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0558.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0558.pb new file mode 100644 index 0000000000000..bc097bb7b059e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0558.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0559.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0559.pb new file mode 100644 index 0000000000000..0f390c7e5b51f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0559.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0560.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0560.pb new file mode 100644 index 0000000000000..087c838201ad3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0560.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0561.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0561.pb new file mode 100644 index 0000000000000..d90c530c6445b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0561.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0562.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0562.pb new file mode 100644 index 0000000000000..fb590f73c4c8c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0562.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0563.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0563.pb new file mode 100644 index 0000000000000..796d5e10a5b4f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0563.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0564.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0564.pb new file mode 100644 index 0000000000000..bc5f04de9a294 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0564.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0565.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0565.pb new file mode 100644 index 0000000000000..c2bf029281325 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0565.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0566.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0566.pb new file mode 100644 index 0000000000000..d9098e6444144 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0566.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0567.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0567.pb new file mode 100644 index 0000000000000..07723af7458f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0567.pb @@ -0,0 +1,5 @@ + + + +0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0568.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0568.pb new file mode 100644 index 0000000000000..6cdd000f42661 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0568.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0569.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0569.pb new file mode 100644 index 0000000000000..12040578cec80 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0569.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0570.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0570.pb new file mode 100644 index 0000000000000..ca548ca9d99ba Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0570.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0571.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0571.pb new file mode 100644 index 0000000000000..9cb1ad255f004 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0571.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0572.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0572.pb new file mode 100644 index 0000000000000..9be49122a8408 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0572.pb @@ -0,0 +1,6 @@ + + +S +QŒr⁓x8眿􏿽}$稬;N鮄?)[𚤆7Ԩ񌙶9崮SX#񧌯=£󇽄\鵚‱6@W.'~"U +S +QŒr⁓x8眿􏿽}$稬;N鮄?)[𚤆7Ԩ񌙶9崮SX#񧌯=£󇽄\鵚‱6@W.'~ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0573.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0573.pb new file mode 100644 index 0000000000000..726ec8f128b8d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0573.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0574.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0574.pb new file mode 100644 index 0000000000000..e4d3a65ee3739 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0574.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0575.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0575.pb new file mode 100644 index 0000000000000..63d65603854b6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0575.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0576.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0576.pb new file mode 100644 index 0000000000000..ee7d1600804a1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0576.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0577.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0577.pb new file mode 100644 index 0000000000000..a1dfdb74cb80a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0577.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0578.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0578.pb new file mode 100644 index 0000000000000..5545f4b34ac96 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0578.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0579.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0579.pb new file mode 100644 index 0000000000000..5311f44dd8d4c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0579.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0580.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0580.pb new file mode 100644 index 0000000000000..d36e66c13cf11 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0580.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0581.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0581.pb new file mode 100644 index 0000000000000..e122b19baf1fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0581.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0582.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0582.pb new file mode 100644 index 0000000000000..dbddf1b8a264f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0582.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0583.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0583.pb new file mode 100644 index 0000000000000..98d4b2fdfa560 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0583.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0584.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0584.pb new file mode 100644 index 0000000000000..979c537c27551 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0584.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0585.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0585.pb new file mode 100644 index 0000000000000..fe5703e829197 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0585.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0586.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0586.pb new file mode 100644 index 0000000000000..b64095fae59f4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0586.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0587.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0587.pb new file mode 100644 index 0000000000000..170d0e9d5adc3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0587.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0588.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0588.pb new file mode 100644 index 0000000000000..ddc9051989dbc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0588.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0589.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0589.pb new file mode 100644 index 0000000000000..18578951abdfd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0589.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0590.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0590.pb new file mode 100644 index 0000000000000..c073f8c048602 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0590.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0591.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0591.pb new file mode 100644 index 0000000000000..8d5bbf08e2d9c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0591.pb @@ -0,0 +1,20 @@ + +r +p5:3 +  + íG + +.燦 +>© + +杗¬ + يM"7 +5:3 +  + íG + +.燦 +>© + +杗¬ + يM \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0592.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0592.pb new file mode 100644 index 0000000000000..474043bcc2691 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0592.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0593.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0593.pb new file mode 100644 index 0000000000000..6af6184ad40b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0593.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0594.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0594.pb new file mode 100644 index 0000000000000..3485a242fce0a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0594.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0595.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0595.pb new file mode 100644 index 0000000000000..5908d601ad3e5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0595.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0596.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0596.pb new file mode 100644 index 0000000000000..950afe1b955a9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0596.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0597.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0597.pb new file mode 100644 index 0000000000000..943c0583ea862 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0597.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0598.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0598.pb new file mode 100644 index 0000000000000..68fcdcf83531a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0598.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0599.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0599.pb new file mode 100644 index 0000000000000..74e0978ed439c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0599.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0600.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0600.pb new file mode 100644 index 0000000000000..eb216a971e27b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0600.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0601.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0601.pb new file mode 100644 index 0000000000000..49420ea6df2d5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0601.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0602.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0602.pb new file mode 100644 index 0000000000000..f8f385083df83 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0602.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0603.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0603.pb new file mode 100644 index 0000000000000..b0c75a9328563 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0603.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0604.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0604.pb new file mode 100644 index 0000000000000..58a8a792deb15 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0604.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0605.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0605.pb new file mode 100644 index 0000000000000..ce860592e3cb3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0605.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0606.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0606.pb new file mode 100644 index 0000000000000..4f21c04c2159e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0606.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0607.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0607.pb new file mode 100644 index 0000000000000..c32b1a00f8f62 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0607.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0608.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0608.pb new file mode 100644 index 0000000000000..8310f56d7b28f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0608.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0609.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0609.pb new file mode 100644 index 0000000000000..7cfdf881abd5a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0609.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0610.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0610.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0610.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0611.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0611.pb new file mode 100644 index 0000000000000..3ecdf97b635c2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0611.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0612.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0612.pb new file mode 100644 index 0000000000000..fa473dc985017 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0612.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0613.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0613.pb new file mode 100644 index 0000000000000..67c87d4bfd55e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0613.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0614.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0614.pb new file mode 100644 index 0000000000000..f1d32398b7ef0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0614.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0615.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0615.pb new file mode 100644 index 0000000000000..892f75751fc0a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0615.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0616.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0616.pb new file mode 100644 index 0000000000000..e238bda5f2cf0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0616.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0617.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0617.pb new file mode 100644 index 0000000000000..7eb8276f2668e --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0617.pb @@ -0,0 +1,6 @@ + + + + " + +  \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0618.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0618.pb new file mode 100644 index 0000000000000..47c447c86c8ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0618.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0619.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0619.pb new file mode 100644 index 0000000000000..77512f7222873 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0619.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0620.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0620.pb new file mode 100644 index 0000000000000..413d10780e455 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0620.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0621.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0621.pb new file mode 100644 index 0000000000000..ceba6bbf48975 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0621.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0622.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0622.pb new file mode 100644 index 0000000000000..8e0bf3571677b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0622.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0623.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0623.pb new file mode 100644 index 0000000000000..22e50f80ec13c --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0623.pb @@ -0,0 +1,6 @@ + +4 +2 +࿲5󧢨}􏿾4©⓹" + +࿲5󧢨}􏿾4©⓹ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0624.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0624.pb new file mode 100644 index 0000000000000..c93b48a892d45 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0624.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0625.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0625.pb new file mode 100644 index 0000000000000..f2c531792059d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0625.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0626.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0626.pb new file mode 100644 index 0000000000000..0ff3812ca6bc7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0626.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0627.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0627.pb new file mode 100644 index 0000000000000..7e533d4268bde Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0627.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0628.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0628.pb new file mode 100644 index 0000000000000..f0ffa9537ddb1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0628.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0629.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0629.pb new file mode 100644 index 0000000000000..f4995a8b07948 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0629.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0630.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0630.pb new file mode 100644 index 0000000000000..dd23a73c7984f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0630.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0631.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0631.pb new file mode 100644 index 0000000000000..6fdc83ff6db20 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0631.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0632.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0632.pb new file mode 100644 index 0000000000000..760e89c6f92dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0632.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0633.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0633.pb new file mode 100644 index 0000000000000..e6e8cb21ab718 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0633.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0634.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0634.pb new file mode 100644 index 0000000000000..ae9bab0eeb4d3 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0634.pb @@ -0,0 +1,6 @@ + + + + ̣8" + + ̣8 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0635.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0635.pb new file mode 100644 index 0000000000000..ce2d632a44544 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0635.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0636.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0636.pb new file mode 100644 index 0000000000000..94f011ddd4ecd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0636.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0637.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0637.pb new file mode 100644 index 0000000000000..bc06bf4ace92f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0637.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0638.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0638.pb new file mode 100644 index 0000000000000..27d3c8dce81e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0638.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0639.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0639.pb new file mode 100644 index 0000000000000..405db374528d5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0639.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0640.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0640.pb new file mode 100644 index 0000000000000..a2858d2693ad8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0640.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0641.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0641.pb new file mode 100644 index 0000000000000..81067bc70fca4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0641.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0642.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0642.pb new file mode 100644 index 0000000000000..fada8eaf13c21 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0642.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0643.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0643.pb new file mode 100644 index 0000000000000..06fc4a9f103c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0643.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0644.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0644.pb new file mode 100644 index 0000000000000..07723af7458f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0644.pb @@ -0,0 +1,5 @@ + + + +0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0645.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0645.pb new file mode 100644 index 0000000000000..74003a047096e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0645.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0646.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0646.pb new file mode 100644 index 0000000000000..d2b221a20b767 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0646.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0647.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0647.pb new file mode 100644 index 0000000000000..d27ee1a90eabe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0647.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0648.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0648.pb new file mode 100644 index 0000000000000..3c5b97326552d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0648.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0649.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0649.pb new file mode 100644 index 0000000000000..b82f0525f7e63 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0649.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0650.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0650.pb new file mode 100644 index 0000000000000..52abbd80ab3d0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0650.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0651.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0651.pb new file mode 100644 index 0000000000000..4af749a0799b3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0651.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0652.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0652.pb new file mode 100644 index 0000000000000..2ddf6aad244f9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0652.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0653.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0653.pb new file mode 100644 index 0000000000000..136e79ce364d1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0653.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0654.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0654.pb new file mode 100644 index 0000000000000..0d175a7bf0fc2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0654.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0655.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0655.pb new file mode 100644 index 0000000000000..d70bd4ad02cd8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0655.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0656.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0656.pb new file mode 100644 index 0000000000000..f69268c9abcf9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0656.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0657.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0657.pb new file mode 100644 index 0000000000000..081805d5b9f1f --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0657.pb @@ -0,0 +1,6 @@ + + +k 2 UD#ZbFK +I(( $굗i:ㆸ /1!󽤴𹼛©:Ž`#Ho;𒉰`®7h⁞‰5𙉫/-x2™瘁†,ET97M +K +I(( $굗i:ㆸ /1!󽤴𹼛©:Ž`#Ho;𒉰`®7h⁞‰5𙉫/-x2™瘁†,ET97 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0658.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0658.pb new file mode 100644 index 0000000000000..3196d614956c7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0658.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0659.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0659.pb new file mode 100644 index 0000000000000..6bdfb4f2db516 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0659.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0660.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0660.pb new file mode 100644 index 0000000000000..a219424b5a4b7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0660.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0661.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0661.pb new file mode 100644 index 0000000000000..520625302e76a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0661.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0662.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0662.pb new file mode 100644 index 0000000000000..5e2c7c0a21e6f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0662.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0663.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0663.pb new file mode 100644 index 0000000000000..d36e66c13cf11 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0663.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0664.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0664.pb new file mode 100644 index 0000000000000..98a512b8eb873 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0664.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0665.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0665.pb new file mode 100644 index 0000000000000..c106a9a644052 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0665.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0666.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0666.pb new file mode 100644 index 0000000000000..4a547a575b8f4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0666.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0667.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0667.pb new file mode 100644 index 0000000000000..e6140e300da6b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0667.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0668.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0668.pb new file mode 100644 index 0000000000000..01c5892298cfd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0668.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0669.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0669.pb new file mode 100644 index 0000000000000..8006182a91fdf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0669.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0670.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0670.pb new file mode 100644 index 0000000000000..b7c35265eeb29 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0670.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0671.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0671.pb new file mode 100644 index 0000000000000..40728e92d4eab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0671.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0672.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0672.pb new file mode 100644 index 0000000000000..b7f68ce452524 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0672.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0673.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0673.pb new file mode 100644 index 0000000000000..f596d6811c8c7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0673.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0674.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0674.pb new file mode 100644 index 0000000000000..1a272a9fca5db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0674.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0675.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0675.pb new file mode 100644 index 0000000000000..15477d72de412 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0675.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0676.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0676.pb new file mode 100644 index 0000000000000..b29ed47a8a424 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0676.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0677.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0677.pb new file mode 100644 index 0000000000000..47c447c86c8ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0677.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0678.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0678.pb new file mode 100644 index 0000000000000..9c02472121360 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0678.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0679.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0679.pb new file mode 100644 index 0000000000000..12d6618e89766 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0679.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0680.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0680.pb new file mode 100644 index 0000000000000..cde3e7db47f63 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0680.pb @@ -0,0 +1,6 @@ + + + + 7" + + 7 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0681.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0681.pb new file mode 100644 index 0000000000000..9cf8a090ad06b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0681.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0682.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0682.pb new file mode 100644 index 0000000000000..8046ead6fa6f9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0682.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0683.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0683.pb new file mode 100644 index 0000000000000..c31f1365ee83f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0683.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0684.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0684.pb new file mode 100644 index 0000000000000..6dc669d5c78bb --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0684.pb @@ -0,0 +1,12 @@ + +6 +4: + +.  : +  +(𐢠" +: + +.  : +  +(𐢠 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0685.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0685.pb new file mode 100644 index 0000000000000..696bd9cde5166 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0685.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0686.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0686.pb new file mode 100644 index 0000000000000..9fc484a17cd3f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0686.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0687.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0687.pb new file mode 100644 index 0000000000000..e612843c8bdbb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0687.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0688.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0688.pb new file mode 100644 index 0000000000000..b5479b7d5a57d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0688.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0689.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0689.pb new file mode 100644 index 0000000000000..76316e4c9e4ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0689.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0690.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0690.pb new file mode 100644 index 0000000000000..1c3e03ff3643b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0690.pb @@ -0,0 +1,4 @@ + + + ۟Ǚ՞" + ۟Ǚ՞ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0691.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0691.pb new file mode 100644 index 0000000000000..1dda444341cc6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0691.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0692.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0692.pb new file mode 100644 index 0000000000000..d59b2f68ef626 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0692.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0693.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0693.pb new file mode 100644 index 0000000000000..b3409209e1503 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0693.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0694.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0694.pb new file mode 100644 index 0000000000000..d2bbb0a08e403 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0694.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0695.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0695.pb new file mode 100644 index 0000000000000..686b9e6db7b22 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0695.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0696.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0696.pb new file mode 100644 index 0000000000000..52f5ed0dce8d1 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0696.pb @@ -0,0 +1,4 @@ + + + 㱯" + 㱯 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0697.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0697.pb new file mode 100644 index 0000000000000..f90e6248941c0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0697.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0698.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0698.pb new file mode 100644 index 0000000000000..f4294a9adde2c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0698.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0699.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0699.pb new file mode 100644 index 0000000000000..e8bb4e6f79cad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0699.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0700.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0700.pb new file mode 100644 index 0000000000000..24c38790fbd49 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0700.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0701.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0701.pb new file mode 100644 index 0000000000000..4f9a8e2460d0c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0701.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0702.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0702.pb new file mode 100644 index 0000000000000..c901159c2989c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0702.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0703.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0703.pb new file mode 100644 index 0000000000000..4e53e5babcc42 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0703.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0704.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0704.pb new file mode 100644 index 0000000000000..52964bae5c6ef Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0704.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0705.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0705.pb new file mode 100644 index 0000000000000..632a908935d79 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0705.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0706.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0706.pb new file mode 100644 index 0000000000000..5b1f84c2e863f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0706.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0707.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0707.pb new file mode 100644 index 0000000000000..84f354f0605ea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0707.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0708.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0708.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0708.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0709.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0709.pb new file mode 100644 index 0000000000000..c06bffce11118 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0709.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0710.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0710.pb new file mode 100644 index 0000000000000..296c7a970e728 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0710.pb @@ -0,0 +1,6 @@ + + + + 鉴˳" + + 鉴˳ \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0711.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0711.pb new file mode 100644 index 0000000000000..0271e2b7c3dd9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0711.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0712.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0712.pb new file mode 100644 index 0000000000000..bdc9244be0f2d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0712.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0713.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0713.pb new file mode 100644 index 0000000000000..cea846bb6eb09 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0713.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0714.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0714.pb new file mode 100644 index 0000000000000..00dcf40296602 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0714.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0715.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0715.pb new file mode 100644 index 0000000000000..d376f0237be81 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0715.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0716.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0716.pb new file mode 100644 index 0000000000000..57fa35a02d398 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0716.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0717.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0717.pb new file mode 100644 index 0000000000000..47a505a284915 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0717.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0718.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0718.pb new file mode 100644 index 0000000000000..2cf7eb5ddc9d4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0718.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0719.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0719.pb new file mode 100644 index 0000000000000..b22ec584a0239 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0719.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0720.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0720.pb new file mode 100644 index 0000000000000..e10da4aa05b53 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0720.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0721.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0721.pb new file mode 100644 index 0000000000000..96e20b94f3726 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0721.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0722.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0722.pb new file mode 100644 index 0000000000000..0b45a46036ccd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0722.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0723.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0723.pb new file mode 100644 index 0000000000000..aa60d821bc315 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0723.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0724.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0724.pb new file mode 100644 index 0000000000000..bd1392e46c07b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0724.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0725.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0725.pb new file mode 100644 index 0000000000000..1cbda8c373753 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0725.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0726.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0726.pb new file mode 100644 index 0000000000000..d1a9c927d615a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0726.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0727.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0727.pb new file mode 100644 index 0000000000000..7a323682d5975 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0727.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0728.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0728.pb new file mode 100644 index 0000000000000..4eeed5bd1ec4e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0728.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0729.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0729.pb new file mode 100644 index 0000000000000..88456698cc5a2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0729.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0730.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0730.pb new file mode 100644 index 0000000000000..048434cfab163 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0730.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0731.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0731.pb new file mode 100644 index 0000000000000..3decf3bee0ca4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0731.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0732.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0732.pb new file mode 100644 index 0000000000000..3be361766b7aa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0732.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0733.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0733.pb new file mode 100644 index 0000000000000..95656f57c8152 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0733.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0734.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0734.pb new file mode 100644 index 0000000000000..10fb7c3cccfde Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0734.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0735.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0735.pb new file mode 100644 index 0000000000000..4685bcbc74ffc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0735.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0736.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0736.pb new file mode 100644 index 0000000000000..d036aefc82427 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0736.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0737.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0737.pb new file mode 100644 index 0000000000000..692e2bab0cfda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0737.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0738.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0738.pb new file mode 100644 index 0000000000000..f070d60d40f2f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0738.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0739.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0739.pb new file mode 100644 index 0000000000000..4d95c6c125002 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0739.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0740.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0740.pb new file mode 100644 index 0000000000000..13f7bb4fa06d0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0740.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0741.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0741.pb new file mode 100644 index 0000000000000..63af94982c7be Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0741.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0742.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0742.pb new file mode 100644 index 0000000000000..f99d6de77f599 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0742.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0743.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0743.pb new file mode 100644 index 0000000000000..c1a01c6d5f57b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0743.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0744.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0744.pb new file mode 100644 index 0000000000000..7bd577dfd8902 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0744.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0745.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0745.pb new file mode 100644 index 0000000000000..7aced5c6d988b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0745.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0746.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0746.pb new file mode 100644 index 0000000000000..d749f30a1057b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0746.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0747.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0747.pb new file mode 100644 index 0000000000000..d63aaf5e16cc9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0747.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0748.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0748.pb new file mode 100644 index 0000000000000..b41800ecfb0db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0748.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0749.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0749.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0749.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0750.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0750.pb new file mode 100644 index 0000000000000..1ae17edd29d8e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0750.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0751.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0751.pb new file mode 100644 index 0000000000000..b303ad3056cf1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0751.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0752.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0752.pb new file mode 100644 index 0000000000000..6c8440b74f6c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0752.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0753.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0753.pb new file mode 100644 index 0000000000000..558da504ff0c3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0753.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0754.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0754.pb new file mode 100644 index 0000000000000..47c447c86c8ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0754.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0755.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0755.pb new file mode 100644 index 0000000000000..768420c3c310e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0755.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0756.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0756.pb new file mode 100644 index 0000000000000..13477f941c02e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0756.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0757.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0757.pb new file mode 100644 index 0000000000000..d59d42237b2e7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0757.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0758.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0758.pb new file mode 100644 index 0000000000000..41120edc4a901 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0758.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0759.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0759.pb new file mode 100644 index 0000000000000..96047be3b318d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0759.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0760.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0760.pb new file mode 100644 index 0000000000000..492745207b32d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0760.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0761.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0761.pb new file mode 100644 index 0000000000000..8cc97486ba91e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0761.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0762.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0762.pb new file mode 100644 index 0000000000000..960b3b1ee8a29 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0762.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0763.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0763.pb new file mode 100644 index 0000000000000..284a130350aa9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0763.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0764.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0764.pb new file mode 100644 index 0000000000000..dac7aa94e66b8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0764.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0765.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0765.pb new file mode 100644 index 0000000000000..ba4aef28e3391 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0765.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0766.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0766.pb new file mode 100644 index 0000000000000..6a462b67eadb5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0766.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0767.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0767.pb new file mode 100644 index 0000000000000..c2f6be9438dae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0767.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0768.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0768.pb new file mode 100644 index 0000000000000..9ff313c786579 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0768.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0769.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0769.pb new file mode 100644 index 0000000000000..b785af003dad9 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0769.pb @@ -0,0 +1,9 @@ + + + +0a +_ '𖺂￳ゟ򕁹※&{7-;e]¤&䵝‹€읬虘¤],Q +,⺈V9 —-%§‧v?‪55"B +@ +>7-;e]¤&䵝‹€읬虘¤],Q +,⺈V9 —-%§‧v?‪55 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0831.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0831.pb new file mode 100644 index 0000000000000..24b20f27724ad Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0831.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0832.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0832.pb new file mode 100644 index 0000000000000..bbd89d7478ec4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0832.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0833.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0833.pb new file mode 100644 index 0000000000000..977b807e428d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0833.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0834.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0834.pb new file mode 100644 index 0000000000000..41e2d3a305c97 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0834.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0835.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0835.pb new file mode 100644 index 0000000000000..399ed11383be6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0835.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0836.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0836.pb new file mode 100644 index 0000000000000..a807edb039a0c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0836.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0837.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0837.pb new file mode 100644 index 0000000000000..c4b8ff13218a0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0837.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0838.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0838.pb new file mode 100644 index 0000000000000..8f5622a3b9295 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0838.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0839.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0839.pb new file mode 100644 index 0000000000000..c966e5b84fefd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0839.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0840.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0840.pb new file mode 100644 index 0000000000000..02f33c96c6cb7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0840.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0841.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0841.pb new file mode 100644 index 0000000000000..8f0722a3380dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0841.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0842.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0842.pb new file mode 100644 index 0000000000000..ab152d2d3ba01 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0842.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0843.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0843.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0843.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0844.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0844.pb new file mode 100644 index 0000000000000..602438558f6cc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0844.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0845.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0845.pb new file mode 100644 index 0000000000000..6d74a8c647153 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0845.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0846.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0846.pb new file mode 100644 index 0000000000000..fb9477d34d1df Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0846.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0847.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0847.pb new file mode 100644 index 0000000000000..07bae52f34339 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0847.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0848.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0848.pb new file mode 100644 index 0000000000000..7bf7d1756ac41 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0848.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0849.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0849.pb new file mode 100644 index 0000000000000..6be636a0e2539 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0849.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0850.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0850.pb new file mode 100644 index 0000000000000..a2862bd2f0311 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0850.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0851.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0851.pb new file mode 100644 index 0000000000000..349f78d21263f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0851.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0852.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0852.pb new file mode 100644 index 0000000000000..a7fe302f3cbac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0852.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0853.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0853.pb new file mode 100644 index 0000000000000..40d8251a1694e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0853.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0854.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0854.pb new file mode 100644 index 0000000000000..f3bbef898a5b6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0854.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0855.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0855.pb new file mode 100644 index 0000000000000..6178ca65ac889 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0855.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0856.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0856.pb new file mode 100644 index 0000000000000..4a0f054f6a487 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0856.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0857.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0857.pb new file mode 100644 index 0000000000000..3ea0a317597db Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0857.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0858.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0858.pb new file mode 100644 index 0000000000000..cd47113e746b9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0858.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0859.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0859.pb new file mode 100644 index 0000000000000..f589acf5432fc Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0859.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0860.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0860.pb new file mode 100644 index 0000000000000..916a939b7e4bf Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0860.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0861.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0861.pb new file mode 100644 index 0000000000000..f5f8c7f6f2a84 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0861.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0862.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0862.pb new file mode 100644 index 0000000000000..1651c2ce7ba0e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0862.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0863.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0863.pb new file mode 100644 index 0000000000000..aa10aea307a02 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0863.pb @@ -0,0 +1,12 @@ + +4 +2 + +!# +u + +鐁: + +H + Ə"0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0864.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0864.pb new file mode 100644 index 0000000000000..8ddc7eb2e5eb5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0864.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0865.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0865.pb new file mode 100644 index 0000000000000..3f8d8f8a9ea58 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0865.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0866.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0866.pb new file mode 100644 index 0000000000000..e58b98a041a8f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0866.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0867.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0867.pb new file mode 100644 index 0000000000000..215bd23cdc85f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0867.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0868.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0868.pb new file mode 100644 index 0000000000000..ab8ff8c73a81e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0868.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0869.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0869.pb new file mode 100644 index 0000000000000..1af3d0c1c6663 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0869.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0870.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0870.pb new file mode 100644 index 0000000000000..5768d49bb1519 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0870.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0871.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0871.pb new file mode 100644 index 0000000000000..d866fd8996c58 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0871.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0872.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0872.pb new file mode 100644 index 0000000000000..1634cbef43b5c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0872.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0873.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0873.pb new file mode 100644 index 0000000000000..4690ed3873ba6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0873.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0874.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0874.pb new file mode 100644 index 0000000000000..03acef1535356 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0874.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0875.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0875.pb new file mode 100644 index 0000000000000..23f05e690d764 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0875.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0876.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0876.pb new file mode 100644 index 0000000000000..90806eb46feac Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0876.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0877.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0877.pb new file mode 100644 index 0000000000000..07723af7458f6 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0877.pb @@ -0,0 +1,5 @@ + + + +0" +0 \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0878.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0878.pb new file mode 100644 index 0000000000000..795423e7f5482 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0878.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0879.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0879.pb new file mode 100644 index 0000000000000..1ce6c84c2faa5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0879.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0880.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0880.pb new file mode 100644 index 0000000000000..e1f752b6385fa Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0880.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0881.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0881.pb new file mode 100644 index 0000000000000..c88c9269c1a81 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0881.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0882.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0882.pb new file mode 100644 index 0000000000000..5e6a023c186e7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0882.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0883.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0883.pb new file mode 100644 index 0000000000000..4f2602a8184d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0883.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0884.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0884.pb new file mode 100644 index 0000000000000..f8cb815844125 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0884.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0885.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0885.pb new file mode 100644 index 0000000000000..cd6618fb78cf6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0885.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0886.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0886.pb new file mode 100644 index 0000000000000..ab2701345f0d3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0886.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0887.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0887.pb new file mode 100644 index 0000000000000..9cc5ba6a08967 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0887.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0888.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0888.pb new file mode 100644 index 0000000000000..1a4956e7f68e7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0888.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0889.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0889.pb new file mode 100644 index 0000000000000..3632c824b8c49 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0889.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0890.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0890.pb new file mode 100644 index 0000000000000..7bef79be6f3ff Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0890.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0891.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0891.pb new file mode 100644 index 0000000000000..9f7cfb0067f9b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0891.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0892.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0892.pb new file mode 100644 index 0000000000000..669355dfbb8e4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0892.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0893.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0893.pb new file mode 100644 index 0000000000000..4599bb43e0289 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0893.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0894.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0894.pb new file mode 100644 index 0000000000000..13bef26297ed0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0894.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0895.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0895.pb new file mode 100644 index 0000000000000..e5de2c9361dda Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0895.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0896.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0896.pb new file mode 100644 index 0000000000000..1cd7add220c1d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0896.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0897.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0897.pb new file mode 100644 index 0000000000000..2d9d844dd48eb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0897.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0898.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0898.pb new file mode 100644 index 0000000000000..a531d4a787578 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0898.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0899.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0899.pb new file mode 100644 index 0000000000000..18c84f4727d38 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0899.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0900.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0900.pb new file mode 100644 index 0000000000000..01c608cc35463 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0900.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0901.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0901.pb new file mode 100644 index 0000000000000..f99259457a1c5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0901.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0902.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0902.pb new file mode 100644 index 0000000000000..b50f764432ef2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0902.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0903.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0903.pb new file mode 100644 index 0000000000000..cbfa7cea8418b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0903.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0904.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0904.pb new file mode 100644 index 0000000000000..4a2db0b38ba02 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0904.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0905.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0905.pb new file mode 100644 index 0000000000000..5194e3266591e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0905.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0906.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0906.pb new file mode 100644 index 0000000000000..61ed2489c7fa7 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0906.pb @@ -0,0 +1,4 @@ + + + )GxKA" + )GxKA \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0907.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0907.pb new file mode 100644 index 0000000000000..009043428836b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0907.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0908.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0908.pb new file mode 100644 index 0000000000000..bd84139b6f977 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0908.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0909.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0909.pb new file mode 100644 index 0000000000000..f99d6de77f599 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0909.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0910.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0910.pb new file mode 100644 index 0000000000000..40fe74749aed2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0910.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0911.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0911.pb new file mode 100644 index 0000000000000..271db8b2afb04 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0911.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0912.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0912.pb new file mode 100644 index 0000000000000..fbd3da14e0e7d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0912.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0913.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0913.pb new file mode 100644 index 0000000000000..f282395056ffd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0913.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0914.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0914.pb new file mode 100644 index 0000000000000..6b84972811143 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0914.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0915.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0915.pb new file mode 100644 index 0000000000000..422f0f26b53f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0915.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0916.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0916.pb new file mode 100644 index 0000000000000..b0918d0377d7c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0916.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0917.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0917.pb new file mode 100644 index 0000000000000..e6a6a1b0f2c1f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0917.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0918.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0918.pb new file mode 100644 index 0000000000000..f043bf7b18af8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0918.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0919.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0919.pb new file mode 100644 index 0000000000000..c225dc61ace2d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0919.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0920.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0920.pb new file mode 100644 index 0000000000000..f0b8556cae7f3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0920.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0921.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0921.pb new file mode 100644 index 0000000000000..a72a5289f4470 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0921.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0922.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0922.pb new file mode 100644 index 0000000000000..72f05e268f598 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0922.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0923.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0923.pb new file mode 100644 index 0000000000000..1b7eb3a203529 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0923.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0924.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0924.pb new file mode 100644 index 0000000000000..1160cfc1503f8 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0924.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0925.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0925.pb new file mode 100644 index 0000000000000..f3aa946ebeb3e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0925.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0926.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0926.pb new file mode 100644 index 0000000000000..aeae23c504152 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0926.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0927.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0927.pb new file mode 100644 index 0000000000000..9140e0c012739 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0927.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0928.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0928.pb new file mode 100644 index 0000000000000..f754488ff35c9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0928.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0929.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0929.pb new file mode 100644 index 0000000000000..2e0e4e3cee2c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0929.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0930.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0930.pb new file mode 100644 index 0000000000000..830ca36df89f1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0930.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0931.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0931.pb new file mode 100644 index 0000000000000..21fa9fefbf90e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0931.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0932.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0932.pb new file mode 100644 index 0000000000000..4ced2659a85f0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0932.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0933.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0933.pb new file mode 100644 index 0000000000000..121b5bb7f5aea Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0933.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0934.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0934.pb new file mode 100644 index 0000000000000..0b7274099a326 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0934.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0935.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0935.pb new file mode 100644 index 0000000000000..09e7858d37c7d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0935.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0936.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0936.pb new file mode 100644 index 0000000000000..4b3bd5634cbc2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0936.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0937.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0937.pb new file mode 100644 index 0000000000000..5eaea5d44fc84 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0937.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0938.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0938.pb new file mode 100644 index 0000000000000..2fd4c52e6edcd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0938.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0939.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0939.pb new file mode 100644 index 0000000000000..f537d85c4d8ab Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0939.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0940.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0940.pb new file mode 100644 index 0000000000000..9ec165f552945 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0940.pb @@ -0,0 +1,10 @@ + +: +8: +B +: +  )6)" +: +B +: +  )6) \ No newline at end of file diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0941.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0941.pb new file mode 100644 index 0000000000000..c8171e51d0f8b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0941.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0942.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0942.pb new file mode 100644 index 0000000000000..a261f30691d08 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0942.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0943.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0943.pb new file mode 100644 index 0000000000000..47c447c86c8ae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0943.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0944.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0944.pb new file mode 100644 index 0000000000000..486533643409f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0944.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0945.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0945.pb new file mode 100644 index 0000000000000..dd523bcb4da4d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0945.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0946.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0946.pb new file mode 100644 index 0000000000000..205c4ce890823 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0946.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0947.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0947.pb new file mode 100644 index 0000000000000..4404063e790ce Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0947.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0948.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0948.pb new file mode 100644 index 0000000000000..3b5bb1275b3e7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0948.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0949.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0949.pb new file mode 100644 index 0000000000000..f01a554821ed1 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0949.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0950.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0950.pb new file mode 100644 index 0000000000000..6136a7b49ec3b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0950.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0951.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0951.pb new file mode 100644 index 0000000000000..0557202bd58e0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0951.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0952.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0952.pb new file mode 100644 index 0000000000000..2c7cde3407b00 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0952.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0953.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0953.pb new file mode 100644 index 0000000000000..262c5815cd346 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0953.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0954.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0954.pb new file mode 100644 index 0000000000000..7100a476a4801 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0954.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0955.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0955.pb new file mode 100644 index 0000000000000..104946d29de6f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0955.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0956.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0956.pb new file mode 100644 index 0000000000000..f5ced1afc7958 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0956.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0957.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0957.pb new file mode 100644 index 0000000000000..97c018b7e1053 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0957.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0958.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0958.pb new file mode 100644 index 0000000000000..97fd016047510 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0958.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0959.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0959.pb new file mode 100644 index 0000000000000..b6b0011d7ec1c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0959.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0960.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0960.pb new file mode 100644 index 0000000000000..c7d2e5681af3d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0960.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0961.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0961.pb new file mode 100644 index 0000000000000..f99d6de77f599 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0961.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0962.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0962.pb new file mode 100644 index 0000000000000..b338f19a0b1d5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0962.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0963.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0963.pb new file mode 100644 index 0000000000000..14382e2986fae Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0963.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0964.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0964.pb new file mode 100644 index 0000000000000..7a5196dff3579 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0964.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0965.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0965.pb new file mode 100644 index 0000000000000..96ad095b1db74 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0965.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0966.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0966.pb new file mode 100644 index 0000000000000..3bb485259901b Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0966.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0967.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0967.pb new file mode 100644 index 0000000000000..5127e495bda82 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0967.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0968.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0968.pb new file mode 100644 index 0000000000000..3a5012c919995 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0968.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0969.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0969.pb new file mode 100644 index 0000000000000..b78c0b16be90a Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0969.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0970.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0970.pb new file mode 100644 index 0000000000000..855932ef5dd40 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0970.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0971.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0971.pb new file mode 100644 index 0000000000000..b8a03a0cd6b62 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0971.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0972.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0972.pb new file mode 100644 index 0000000000000..161f6627fc929 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0972.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0973.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0973.pb new file mode 100644 index 0000000000000..44cf83169c571 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0973.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0974.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0974.pb new file mode 100644 index 0000000000000..37c46deb1865d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0974.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0975.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0975.pb new file mode 100644 index 0000000000000..b28b950dcb0d6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0975.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0976.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0976.pb new file mode 100644 index 0000000000000..33ad5f1846f07 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0976.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0977.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0977.pb new file mode 100644 index 0000000000000..022d927eb4fa0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0977.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0978.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0978.pb new file mode 100644 index 0000000000000..420c4cd7dd22f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0978.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0979.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0979.pb new file mode 100644 index 0000000000000..10b93ed2ab21f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0979.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0980.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0980.pb new file mode 100644 index 0000000000000..9ba01e080a605 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0980.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0981.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0981.pb new file mode 100644 index 0000000000000..0a081b65dd19c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0981.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0982.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0982.pb new file mode 100644 index 0000000000000..5be59839f59e4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0982.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0983.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0983.pb new file mode 100644 index 0000000000000..8f46909a6984d Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0983.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0984.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0984.pb new file mode 100644 index 0000000000000..bc81beb6ab1c4 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0984.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0985.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0985.pb new file mode 100644 index 0000000000000..4efe5f531cd70 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0985.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0986.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0986.pb new file mode 100644 index 0000000000000..8f3d1386185dd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0986.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0987.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0987.pb new file mode 100644 index 0000000000000..0bb53443e7408 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0987.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0988.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0988.pb new file mode 100644 index 0000000000000..d197878884fd5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0988.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0989.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0989.pb new file mode 100644 index 0000000000000..a08c6ed2222a7 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0989.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0990.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0990.pb new file mode 100644 index 0000000000000..2c58b839ba17f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0990.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0991.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0991.pb new file mode 100644 index 0000000000000..ec85c4dcaf7d3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0991.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0992.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0992.pb new file mode 100644 index 0000000000000..8d3160a622532 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0992.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0993.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0993.pb new file mode 100644 index 0000000000000..f99d6de77f599 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0993.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0994.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0994.pb new file mode 100644 index 0000000000000..2cdfaf12db42f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0994.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0995.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0995.pb new file mode 100644 index 0000000000000..54b98cf598774 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0995.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0996.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0996.pb new file mode 100644 index 0000000000000..6e3509f504618 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0996.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0997.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0997.pb new file mode 100644 index 0000000000000..43119f644c370 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0997.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0998.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0998.pb new file mode 100644 index 0000000000000..d5561f81096e3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0998.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/0999.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0999.pb new file mode 100644 index 0000000000000..716dbdb538d86 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/0999.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1000.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1000.pb new file mode 100644 index 0000000000000..2f4838f87f22e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1000.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1001.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1001.pb new file mode 100644 index 0000000000000..68475b54e4b90 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1001.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1002.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1002.pb new file mode 100644 index 0000000000000..876d1566b1142 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1002.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1003.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1003.pb new file mode 100644 index 0000000000000..8f67c5049fca5 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1003.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1004.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1004.pb new file mode 100644 index 0000000000000..f99d6de77f599 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1004.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1005.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1005.pb new file mode 100644 index 0000000000000..8cf0c0dc023d0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1005.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1006.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1006.pb new file mode 100644 index 0000000000000..63e5140781b6c Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1006.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1007.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1007.pb new file mode 100644 index 0000000000000..4ede378cadcb9 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1007.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1008.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1008.pb new file mode 100644 index 0000000000000..a2fb0fd489333 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1008.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1009.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1009.pb new file mode 100644 index 0000000000000..bf614ce51f5a0 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1009.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1010.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1010.pb new file mode 100644 index 0000000000000..00be4546f8042 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1010.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1011.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1011.pb new file mode 100644 index 0000000000000..57062b0c14492 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1011.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1012.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1012.pb new file mode 100644 index 0000000000000..0586828a0c526 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1012.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1013.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1013.pb new file mode 100644 index 0000000000000..5ba20872ea739 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1013.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1014.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1014.pb new file mode 100644 index 0000000000000..081c53d07ccbe Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1014.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1015.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1015.pb new file mode 100644 index 0000000000000..e9783e5866324 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1015.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1016.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1016.pb new file mode 100644 index 0000000000000..3b5cbab5aec68 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1016.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1017.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1017.pb new file mode 100644 index 0000000000000..73bab44dcecf3 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1017.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1018.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1018.pb new file mode 100644 index 0000000000000..9dcef31b10af2 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1018.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1019.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1019.pb new file mode 100644 index 0000000000000..49f3ec3f933fb Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1019.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1020.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1020.pb new file mode 100644 index 0000000000000..087948067119e Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1020.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1021.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1021.pb new file mode 100644 index 0000000000000..d0fc95e701c1f Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1021.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1022.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1022.pb new file mode 100644 index 0000000000000..0a6ad337729c6 Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1022.pb differ diff --git a/lib/codecs/tests/data/native_encoding/proto/pre-v41/1023.pb b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1023.pb new file mode 100644 index 0000000000000..6182e32f7b5fd Binary files /dev/null and b/lib/codecs/tests/data/native_encoding/proto/pre-v41/1023.pb differ diff --git a/lib/codecs/tests/data/native_encoding/schema.cue b/lib/codecs/tests/data/native_encoding/schema.cue new file mode 100644 index 0000000000000..91ddb069b885b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/schema.cue @@ -0,0 +1,50 @@ +#Event: {log: #Log} | {metric: #Metric} | {trace: #Trace} + +#Log: {...} + +#Trace: {...} + +#Metric: { + name: string + namespace?: string + tags?: {[string]: #TagValueSet} + timestamp?: #Timestamp + interval_ms?: int + kind: "incremental" | "absolute" + {counter: value: number} | + {gauge: value: number} | + {set: values: [...string]} | + {distribution: { + samples: [...{value: number, rate: int}] + statistic: "histogram" | "summary" + }} | + {aggregated_histogram: { + buckets: [...{upper_limit: number, count: int}] + count: int + sum: number + }} | + {aggregated_summary: { + quantiles: [...{quantile: number, value: number}] + count: int + sum: number + }} | + {sketch: + sketch: AgentDDSketch: { + bins: { + k: [...int] + n: [...int] + } + count: int + min: number + max: number + sum: number + avg: number + } +} +} + +#TagValueSet: {#TagValue | [...#TagValue]} + +#TagValue: {string | null} + +#Timestamp: =~"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(.\\d+)?Z" diff --git a/lib/codecs/tests/data/native_encoding/vector_generate_fixtures.patch b/lib/codecs/tests/data/native_encoding/vector_generate_fixtures.patch new file mode 100644 index 0000000000000..a0262928b3b3b --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/vector_generate_fixtures.patch @@ -0,0 +1,163 @@ +diff --git a/lib/vector-core/Cargo.toml b/lib/vector-core/Cargo.toml +index 0f51fc830..aadf99841 100644 +--- a/lib/vector-core/Cargo.toml ++++ b/lib/vector-core/Cargo.toml +@@ -95,7 +95,7 @@ rand = "0.8.5" + rand_distr = "0.4.3" + tracing-subscriber = { version = "0.3.17", default-features = false, features = ["env-filter", "fmt", "ansi", "registry"] } + vector-common = { path = "../vector-common", default-features = false, features = ["test"] } +-vrl = { version = "0.9.0", features = ["cli", "test", "test_framework", "arbitrary"] } ++vrl = { path = "../../../vrl", features = ["cli", "test", "test_framework", "arbitrary"] } + + [features] + api = ["dep:async-graphql"] +diff --git a/lib/vector-core/src/event/test/common.rs b/lib/vector-core/src/event/test/common.rs +index c7ccca952..f851288ce 100644 +--- a/lib/vector-core/src/event/test/common.rs ++++ b/lib/vector-core/src/event/test/common.rs +@@ -26,6 +26,15 @@ const ALPHABET: [&str; 27] = [ + "t", "u", "v", "w", "x", "y", "z", "_", + ]; + ++fn make_simple_f64(g: &mut Gen) -> f64 { ++ let mut value = f64::arbitrary(g) % MAX_F64_SIZE; ++ while value.is_nan() || value == -0.0 { ++ value = f64::arbitrary(g) % MAX_F64_SIZE; ++ } ++ value = (value * 10_000.0).round() / 10_000.0; ++ value ++} ++ + #[derive(Debug, Clone)] + pub struct Name { + inner: String, +@@ -34,7 +43,7 @@ pub struct Name { + impl Arbitrary for Name { + fn arbitrary(g: &mut Gen) -> Self { + let mut name = String::with_capacity(MAX_STR_SIZE); +- for _ in 0..(g.size() % MAX_STR_SIZE) { ++ for _ in 0..(usize::max(1, g.size() % MAX_STR_SIZE)) { + let idx: usize = usize::arbitrary(g) % ALPHABET.len(); + name.push_str(ALPHABET[idx]); + } +@@ -182,10 +191,10 @@ impl Arbitrary for MetricValue { + // here toward `MetricValue::Counter` and `MetricValue::Gauge`. + match u8::arbitrary(g) % 7 { + 0 => MetricValue::Counter { +- value: f64::arbitrary(g) % MAX_F64_SIZE, ++ value: make_simple_f64(g), + }, + 1 => MetricValue::Gauge { +- value: f64::arbitrary(g) % MAX_F64_SIZE, ++ value: make_simple_f64(g), + }, + 2 => MetricValue::Set { + values: BTreeSet::arbitrary(g), +@@ -197,19 +206,20 @@ impl Arbitrary for MetricValue { + 4 => MetricValue::AggregatedHistogram { + buckets: Vec::arbitrary(g), + count: u64::arbitrary(g), +- sum: f64::arbitrary(g) % MAX_F64_SIZE, ++ sum: make_simple_f64(g), + }, + 5 => MetricValue::AggregatedSummary { + quantiles: Vec::arbitrary(g), + count: u64::arbitrary(g), +- sum: f64::arbitrary(g) % MAX_F64_SIZE, ++ sum: make_simple_f64(g), + }, + 6 => { + // We're working around quickcheck's limitations here, and + // should really migrate the tests in question to use proptest + let num_samples = u8::arbitrary(g); + let samples = std::iter::repeat_with(|| loop { +- let f = f64::arbitrary(g); ++ // let f = f64::arbitrary(g); ++ let f = make_simple_f64(g); + if f.is_normal() { + return f; + } +@@ -219,6 +229,8 @@ impl Arbitrary for MetricValue { + + let mut sketch = AgentDDSketch::with_agent_defaults(); + sketch.insert_many(&samples); ++ sketch.sum = make_simple_f64(g); ++ sketch.avg = make_simple_f64(g); + + MetricValue::Sketch { + sketch: MetricSketch::AgentDDSketch(sketch), +@@ -368,7 +380,7 @@ impl Arbitrary for MetricValue { + impl Arbitrary for Sample { + fn arbitrary(g: &mut Gen) -> Self { + Sample { +- value: f64::arbitrary(g) % MAX_F64_SIZE, ++ value: make_simple_f64(g), + rate: u32::arbitrary(g), + } + } +@@ -398,8 +410,8 @@ impl Arbitrary for Sample { + impl Arbitrary for Quantile { + fn arbitrary(g: &mut Gen) -> Self { + Quantile { +- quantile: f64::arbitrary(g) % MAX_F64_SIZE, +- value: f64::arbitrary(g) % MAX_F64_SIZE, ++ quantile: make_simple_f64(g), ++ value: make_simple_f64(g), + } + } + +@@ -428,7 +440,7 @@ impl Arbitrary for Quantile { + impl Arbitrary for Bucket { + fn arbitrary(g: &mut Gen) -> Self { + Bucket { +- upper_limit: f64::arbitrary(g) % MAX_F64_SIZE, ++ upper_limit: make_simple_f64(g), + count: u64::arbitrary(g), + } + } +diff --git a/lib/vector-core/src/event/test/serialization.rs b/lib/vector-core/src/event/test/serialization.rs +index aaab559da..5db6c0613 100644 +--- a/lib/vector-core/src/event/test/serialization.rs ++++ b/lib/vector-core/src/event/test/serialization.rs +@@ -96,3 +96,24 @@ fn type_serialization() { + assert_eq!(map["bool"], json!(true)); + assert_eq!(map["string"], json!("thisisastring")); + } ++ ++#[test] ++fn roundtrip() { ++ use prost::Message; ++ use quickcheck::{Arbitrary, Gen}; ++ use std::{fs::File, io::Write}; ++ ++ let mut gen = Gen::new(128); ++ for n in 0..1024 { ++ let mut json_out = File::create(format!("_json/{n:04}.json")).unwrap(); ++ let mut proto_out = File::create(format!("_proto/{n:04}.pb")).unwrap(); ++ let event = Event::arbitrary(&mut gen); ++ serde_json::to_writer(&mut json_out, &event).unwrap(); ++ ++ let array = EventArray::from(event); ++ let proto = proto::EventArray::from(array); ++ let mut buf = BytesMut::new(); ++ proto.encode(&mut buf).unwrap(); ++ proto_out.write_all(&buf).unwrap(); ++ } ++} +diff --git a/lib/vector-core/src/metrics/ddsketch.rs b/lib/vector-core/src/metrics/ddsketch.rs +index 3d0f80bb5..fcc6bcc97 100644 +--- a/lib/vector-core/src/metrics/ddsketch.rs ++++ b/lib/vector-core/src/metrics/ddsketch.rs +@@ -229,10 +229,10 @@ pub struct AgentDDSketch { + max: f64, + + /// The sum of all observations within the sketch. +- sum: f64, ++ pub sum: f64, + + /// The average value of all observations within the sketch. +- avg: f64, ++ pub avg: f64, + } + + impl AgentDDSketch { diff --git a/lib/codecs/tests/data/native_encoding/vrl_generate_fixtures.patch b/lib/codecs/tests/data/native_encoding/vrl_generate_fixtures.patch new file mode 100644 index 0000000000000..430b74abb8b66 --- /dev/null +++ b/lib/codecs/tests/data/native_encoding/vrl_generate_fixtures.patch @@ -0,0 +1,69 @@ +diff --git a/src/lib.rs b/src/lib.rs +index 29cad8dfc..0b166beb2 100644 +--- a/src/lib.rs ++++ b/src/lib.rs +@@ -1,4 +1,4 @@ +-#![deny(warnings)] ++// #![deny(warnings)] + #![deny(clippy::all)] + #![deny(unused_allocation)] + #![deny(unused_extern_crates)] +diff --git a/src/value/value/arbitrary.rs b/src/value/value/arbitrary.rs +index dde213281..33b2f2518 100644 +--- a/src/value/value/arbitrary.rs ++++ b/src/value/value/arbitrary.rs +@@ -1,7 +1,6 @@ + use std::collections::BTreeMap; + + use bytes::Bytes; +-use chrono::{DateTime, NaiveDateTime, Utc}; + use ordered_float::NotNan; + use quickcheck::{Arbitrary, Gen}; + +@@ -11,16 +10,13 @@ const MAX_ARRAY_SIZE: usize = 4; + const MAX_MAP_SIZE: usize = 4; + const MAX_F64_SIZE: f64 = 1_000_000.0; + +-fn datetime(g: &mut Gen) -> DateTime { +- // `chrono` documents that there is an out-of-range for both second and +- // nanosecond values but doesn't actually document what the valid ranges +- // are. We just sort of arbitrarily restrict things. +- let secs = i64::arbitrary(g) % 32_000; +- let nanosecs = u32::arbitrary(g) % 32_000; +- DateTime::::from_utc( +- NaiveDateTime::from_timestamp_opt(secs, nanosecs).expect("invalid timestamp"), +- Utc, +- ) ++fn make_simple_f64(g: &mut Gen) -> f64 { ++ let mut value = f64::arbitrary(g) % MAX_F64_SIZE; ++ while value.is_nan() || value == -0.0 { ++ value = f64::arbitrary(g) % MAX_F64_SIZE; ++ } ++ value = (value * 10_000.0).round() / 10_000.0; ++ value + } + + impl Arbitrary for Value { +@@ -32,18 +28,18 @@ impl Arbitrary for Value { + // field picking. + match u8::arbitrary(g) % 8 { + 0 => { +- let bytes: Vec = Vec::arbitrary(g); ++ let bytes = String::arbitrary(g); + Self::Bytes(Bytes::from(bytes)) + } + 1 => Self::Integer(i64::arbitrary(g)), + 2 => { +- let f = f64::arbitrary(g) % MAX_F64_SIZE; ++ //let f = f64::arbitrary(g) % MAX_F64_SIZE; ++ let f = make_simple_f64(g); + let not_nan = NotNan::new(f).unwrap_or_else(|_| NotNan::new(0.0).unwrap()); + Self::from(not_nan) + } + 3 => Self::Boolean(bool::arbitrary(g)), +- 4 => Self::Timestamp(datetime(g)), +- 5 => { ++ 4 | 5 => { + let mut gen = Gen::new(MAX_MAP_SIZE); + Self::Object(BTreeMap::arbitrary(&mut gen)) + } diff --git a/lib/codecs/tests/data/protobuf/README.md b/lib/codecs/tests/data/protobuf/README.md new file mode 100644 index 0000000000000..7b70fb831b68b --- /dev/null +++ b/lib/codecs/tests/data/protobuf/README.md @@ -0,0 +1,11 @@ +# Generate protobuf test file + +* After modifying a protobuf file e.g. `test_protobuf3.proto`, it needs to be recompiled. +* There are many ways to create protobuf files. We are using `generate_example.py` here. + +```shell +protoc -I ./ -o test_protobuf3.desc ./test_protobuf3.proto +pip install protobuf +protoc --python_out=. ./test_protobuf3.proto +python generate_example.py +``` diff --git a/lib/codecs/tests/data/protobuf/generate_example.py b/lib/codecs/tests/data/protobuf/generate_example.py new file mode 100644 index 0000000000000..ac1be2210d433 --- /dev/null +++ b/lib/codecs/tests/data/protobuf/generate_example.py @@ -0,0 +1,31 @@ +from test_protobuf3_pb2 import Person +from google.protobuf import text_format + + +def create_a_person_pb(): + person = Person() + + person.name = "John Doe" + person.id = 1234 + person.email = "johndoe@example.com" + + mobile_phone = person.phones.add() + mobile_phone.number = "1234" + mobile_phone.type = Person.PhoneType.MOBILE + + home_phone = person.phones.add() + home_phone.number = "5678" + home_phone.type = Person.PhoneType.HOME + + person.data["location"] = "unknown" + + with open("a_person_proto3.pb", "wb") as file: + file.write(person.SerializeToString()) + + debug_string = text_format.MessageToString(person) + with open("a_person_proto3_debug.txt", "w") as text_file: + text_file.write(debug_string) + + +if __name__ == "__main__": + create_a_person_pb() diff --git a/lib/codecs/tests/data/protobuf/pbs/person_someone.pb b/lib/codecs/tests/data/protobuf/pbs/person_someone.pb new file mode 100644 index 0000000000000..46b78f47969af --- /dev/null +++ b/lib/codecs/tests/data/protobuf/pbs/person_someone.pb @@ -0,0 +1,3 @@ + +someone" +123456 \ No newline at end of file diff --git a/lib/codecs/tests/data/protobuf/pbs/person_someone.txt b/lib/codecs/tests/data/protobuf/pbs/person_someone.txt new file mode 100644 index 0000000000000..72e26e70a16df --- /dev/null +++ b/lib/codecs/tests/data/protobuf/pbs/person_someone.txt @@ -0,0 +1,2 @@ +debug print of person_someone.pb with prost +Person { name: Some("someone"), id: None, email: None, phones: [PhoneNumber { number: Some("123456"), r#type: None }] } diff --git a/lib/codecs/tests/data/protobuf/pbs/person_someone3.pb b/lib/codecs/tests/data/protobuf/pbs/person_someone3.pb new file mode 100644 index 0000000000000..80e4ef6f4dfb6 Binary files /dev/null and b/lib/codecs/tests/data/protobuf/pbs/person_someone3.pb differ diff --git a/lib/codecs/tests/data/protobuf/pbs/person_someone3.txt b/lib/codecs/tests/data/protobuf/pbs/person_someone3.txt new file mode 100644 index 0000000000000..0a5086c628414 --- /dev/null +++ b/lib/codecs/tests/data/protobuf/pbs/person_someone3.txt @@ -0,0 +1,2 @@ +debug print of person_someone3.pb with prost +Person { name: Some("someone"), id: None, email: None, data: {"data_phone": Home}, phones: [PhoneNumber { number: Some("1234"), r#type: Some(Mobile) }] } diff --git a/lib/codecs/tests/data/protobuf/protos/google/protobuf/timestamp.proto b/lib/codecs/tests/data/protobuf/protos/google/protobuf/timestamp.proto new file mode 100644 index 0000000000000..3b2df6d91168e --- /dev/null +++ b/lib/codecs/tests/data/protobuf/protos/google/protobuf/timestamp.proto @@ -0,0 +1,147 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/timestamppb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TimestampProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// A Timestamp represents a point in time independent of any time zone or local +// calendar, encoded as a count of seconds and fractions of seconds at +// nanosecond resolution. The count is relative to an epoch at UTC midnight on +// January 1, 1970, in the proleptic Gregorian calendar which extends the +// Gregorian calendar backwards to year one. +// +// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap +// second table is needed for interpretation, using a [24-hour linear +// smear](https://developers.google.com/time/smear). +// +// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By +// restricting to that range, we ensure that we can convert to and from [RFC +// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. +// +// # Examples +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// +// Example 5: Compute Timestamp from Java `Instant.now()`. +// +// Instant now = Instant.now(); +// +// Timestamp timestamp = +// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) +// .setNanos(now.getNano()).build(); +// +// +// Example 6: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() +// +// # JSON Mapping +// +// In JSON format, the Timestamp type is encoded as a string in the +// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the +// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" +// where {year} is always expressed using four digits while {month}, {day}, +// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional +// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), +// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone +// is required. A proto3 JSON serializer should always use UTC (as indicated by +// "Z") when printing the Timestamp type and a proto3 JSON parser should be +// able to accept both UTC and other timezones (as indicated by an offset). +// +// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past +// 01:30 UTC on January 15, 2017. +// +// In JavaScript, one can convert a Date object to this format using the +// standard +// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) +// method. In Python, a standard `datetime.datetime` object can be converted +// to this format using +// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with +// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use +// the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D +// ) to obtain a formatter capable of generating timestamps in this format. +// +// +message Timestamp { + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + int64 seconds = 1; + + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + int32 nanos = 2; +} diff --git a/lib/codecs/tests/data/protobuf/protos/test_protobuf.desc b/lib/codecs/tests/data/protobuf/protos/test_protobuf.desc new file mode 100644 index 0000000000000..43e7acf6cf771 Binary files /dev/null and b/lib/codecs/tests/data/protobuf/protos/test_protobuf.desc differ diff --git a/lib/codecs/tests/data/protobuf/protos/test_protobuf.proto b/lib/codecs/tests/data/protobuf/protos/test_protobuf.proto new file mode 100644 index 0000000000000..a4cb111f18ec5 --- /dev/null +++ b/lib/codecs/tests/data/protobuf/protos/test_protobuf.proto @@ -0,0 +1,26 @@ +syntax = "proto2"; + +package test_protobuf; + +message Person { + optional string name = 1; + optional int32 id = 2; + optional string email = 3; + + enum PhoneType { + MOBILE = 0; + HOME = 1; + WORK = 2; + } + + message PhoneNumber { + optional string number = 1; + optional PhoneType type = 2 [default = HOME]; + } + + repeated PhoneNumber phones = 4; +} + +message AddressBook { + repeated Person people = 1; +} diff --git a/lib/codecs/tests/data/protobuf/protos/test_protobuf3.desc b/lib/codecs/tests/data/protobuf/protos/test_protobuf3.desc new file mode 100644 index 0000000000000..9fcfec71b44b8 Binary files /dev/null and b/lib/codecs/tests/data/protobuf/protos/test_protobuf3.desc differ diff --git a/lib/codecs/tests/data/protobuf/protos/test_protobuf3.proto b/lib/codecs/tests/data/protobuf/protos/test_protobuf3.proto new file mode 100644 index 0000000000000..672a05d2fac9a --- /dev/null +++ b/lib/codecs/tests/data/protobuf/protos/test_protobuf3.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package test_protobuf3; + +message Person { + optional string name = 1; + optional int32 id = 2; + optional string email = 3; + + enum PhoneType { + MOBILE = 0; + HOME = 1; + WORK = 2; + } + + message PhoneNumber { + optional string number = 1; + optional PhoneType type = 2; + } + + map data = 4; + repeated PhoneNumber phones = 5; +} + +message AddressBook { + repeated Person people = 1; +} diff --git a/lib/codecs/tests/native.rs b/lib/codecs/tests/native.rs new file mode 100644 index 0000000000000..c39a02ea5fe95 --- /dev/null +++ b/lib/codecs/tests/native.rs @@ -0,0 +1,322 @@ +use std::{ + fs::{self, File}, + io::{Read, Write}, + path::{Path, PathBuf}, +}; + +use bytes::{Bytes, BytesMut}; +use codecs::{ + decoding::format::Deserializer, encoding::format::Serializer, NativeDeserializerConfig, + NativeJsonDeserializerConfig, NativeJsonSerializerConfig, NativeSerializerConfig, +}; +use similar_asserts::assert_eq; +use vector_core::{config::LogNamespace, event::Event}; + +#[test] +fn pre_v24_fixtures_match() { + fixtures_match("pre-v24"); +} + +#[test] +fn pre_v34_fixtures_match() { + fixtures_match("pre-v34"); +} + +#[test] +fn pre_v41_fixtures_match() { + fixtures_match("pre-v41"); +} + +#[test] +fn current_fixtures_match() { + fixtures_match(""); +} + +#[test] +fn roundtrip_current_native_json_fixtures() { + roundtrip_fixtures( + "json", + "", + &NativeJsonDeserializerConfig::default().build(), + &mut NativeJsonSerializerConfig.build(), + false, + ); +} + +#[test] +fn roundtrip_current_native_proto_fixtures() { + roundtrip_fixtures( + "proto", + "", + &NativeDeserializerConfig.build(), + &mut NativeSerializerConfig.build(), + false, + ); +} + +/// The event proto file was changed in v0.24. This test ensures we can still load the old version +/// binary and that when serialized and deserialized in the new format we still get the same event. +#[test] +fn reserialize_pre_v24_native_json_fixtures() { + roundtrip_fixtures( + "json", + "pre-v24", + &NativeJsonDeserializerConfig::default().build(), + &mut NativeJsonSerializerConfig.build(), + true, + ); +} + +#[test] +fn reserialize_pre_v24_native_proto_fixtures() { + roundtrip_fixtures( + "proto", + "pre-v24", + &NativeDeserializerConfig.build(), + &mut NativeSerializerConfig.build(), + true, + ); +} + +/// The event proto format was changed in v26 to include support for enhanced metric tags. This test +/// ensures we can still load the old version binary and that when serialized and deserialized in +/// the new format we still get the same event. +#[test] +fn reserialize_pre_v26_native_proto_fixtures() { + roundtrip_fixtures( + "proto", + "pre-v26", + &NativeDeserializerConfig.build(), + &mut NativeSerializerConfig.build(), + true, + ); +} + +/// The event proto file was changed in v0.34. This test ensures we can still load the old version +/// binary and that when serialized and deserialized in the new format we still get the same event. +#[test] +fn reserialize_pre_v34_native_json_fixtures() { + roundtrip_fixtures( + "json", + "pre-v34", + &NativeJsonDeserializerConfig::default().build(), + &mut NativeJsonSerializerConfig.build(), + true, + ); +} + +#[test] +fn reserialize_pre_v34_native_proto_fixtures() { + roundtrip_fixtures( + "proto", + "pre-v34", + &NativeDeserializerConfig.build(), + &mut NativeSerializerConfig.build(), + true, + ); +} + +/// The event proto file was changed in v0.41. This test ensures we can still load the old version +/// binary and that when serialized and deserialized in the new format we still get the same event. +#[test] +fn reserialize_pre_v41_native_json_fixtures() { + roundtrip_fixtures( + "json", + "pre-v41", + &NativeJsonDeserializerConfig::default().build(), + &mut NativeJsonSerializerConfig.build(), + true, + ); +} + +#[test] +fn reserialize_pre_v41_native_proto_fixtures() { + roundtrip_fixtures( + "proto", + "pre-v41", + &NativeDeserializerConfig.build(), + &mut NativeSerializerConfig.build(), + true, + ); +} + +// TODO: the json & protobuf consistency has been broken for a while due to the lack of implementing +// serde deser and ser of EventMetadata. Thus the `native_json` codec is not passing through the +// `EventMetadata.value` field, whereas the `native` codec does. +// +// both of these tests are affected as a result +// +// https://github.com/vectordotdev/vector/issues/18570 +#[ignore] +#[test] +fn pre_v34_native_decoding_matches() { + decoding_matches("pre-v34"); +} + +#[ignore] +#[test] +fn pre_v41_native_decoding_matches() { + decoding_matches("pre-v41"); +} + +#[ignore] +#[test] +fn current_native_decoding_matches() { + decoding_matches(""); +} + +#[test] +fn pre_v24_native_decoding_matches() { + decoding_matches("pre-v24"); +} + +/// This "test" can be used to build new protobuf fixture files when the protocol changes. Remove +/// the `#[ignore]` only when this is needed for such changes. You will need to manually create a +/// `tests/data/native_encoding/json/rebuilt` subdirectory for the files to be written to. +#[test] +#[ignore] +fn rebuild_json_fixtures() { + rebuild_fixtures( + "json", + &NativeJsonDeserializerConfig::default().build(), + &mut NativeJsonSerializerConfig.build(), + ); +} + +/// This "test" can be used to build new protobuf fixture files when the protocol changes. Remove +/// the `#[ignore]` only when this is needed for such changes. You will need to manually create a +/// `tests/data/native_encoding/proto/rebuilt` subdirectory for the files to be written to. +#[test] +#[ignore] +fn rebuild_proto_fixtures() { + rebuild_fixtures( + "proto", + &NativeDeserializerConfig.build(), + &mut NativeSerializerConfig.build(), + ); +} + +/// This test ensures that the different sets of protocol fixture names match. +fn fixtures_match(suffix: &str) { + let json_entries = list_fixtures("json", suffix); + let proto_entries = list_fixtures("proto", suffix); + for (json_path, proto_path) in json_entries.into_iter().zip(proto_entries.into_iter()) { + // Make sure we're looking at the matching files for each format + assert_eq!( + json_path.file_stem().unwrap(), + proto_path.file_stem().unwrap(), + ); + } +} + +/// This test ensures we can load the serialized binaries binary and that they match across +/// protocols. +fn decoding_matches(suffix: &str) { + let json_deserializer = NativeJsonDeserializerConfig::default().build(); + let proto_deserializer = NativeDeserializerConfig.build(); + + let json_entries = list_fixtures("json", suffix); + let proto_entries = list_fixtures("proto", suffix); + + for (json_path, proto_path) in json_entries.into_iter().zip(proto_entries.into_iter()) { + let (_, json_event) = load_deserialize(&json_path, &json_deserializer); + + let (_, proto_event) = load_deserialize(&proto_path, &proto_deserializer); + + // Ensure that the json version and proto versions were parsed into equivalent + // native representations + assert_eq!( + json_event, + proto_event, + "Parsed events don't match: {} {}", + json_path.display(), + proto_path.display() + ); + } +} + +fn list_fixtures(proto: &str, suffix: &str) -> Vec { + let path = fixtures_path(proto, suffix); + let mut entries = fs::read_dir(path) + .unwrap() + .map(Result::unwrap) + .filter(|e| e.file_type().unwrap().is_file()) + .map(|e| e.path()) + .collect::>(); + entries.sort(); + entries +} + +fn fixtures_path(proto: &str, suffix: &str) -> PathBuf { + ["tests/data/native_encoding", proto, suffix] + .into_iter() + .collect() +} + +fn roundtrip_fixtures( + proto: &str, + suffix: &str, + deserializer: &dyn Deserializer, + serializer: &mut dyn Serializer, + reserialize: bool, +) { + for path in list_fixtures(proto, suffix) { + let (buf, event) = load_deserialize(&path, deserializer); + + if reserialize { + // Serialize the parsed event + let mut buf = BytesMut::new(); + serializer.encode(event.clone(), &mut buf).unwrap(); + // Deserialize the event from these bytes + let new_events = deserializer + .parse(buf.into(), LogNamespace::Legacy) + .unwrap(); + + // Ensure we have the same event. + assert_eq!(new_events.len(), 1); + assert_eq!(new_events[0], event); + } else { + // Ensure that the parsed event is serialized to the same bytes + let mut new_buf = BytesMut::new(); + serializer.encode(event.clone(), &mut new_buf).unwrap(); + assert_eq!(buf, new_buf); + } + } +} + +fn load_deserialize(path: &Path, deserializer: &dyn Deserializer) -> (Bytes, Event) { + let mut file = File::open(path).unwrap(); + let mut buf = Vec::new(); + file.read_to_end(&mut buf).unwrap(); + let buf = Bytes::from(buf); + + // Ensure that we can parse the json fixture successfully + let mut events = deserializer + .parse(buf.clone(), LogNamespace::Legacy) + .unwrap(); + assert_eq!(events.len(), 1); + (buf, events.pop().unwrap()) +} + +fn rebuild_fixtures(proto: &str, deserializer: &dyn Deserializer, serializer: &mut dyn Serializer) { + for path in list_fixtures(proto, "") { + let (_, event) = load_deserialize(&path, deserializer); + + let mut buf = BytesMut::new(); + serializer + .encode(event, &mut buf) + .expect("Serializing failed"); + + let new_path: PathBuf = [ + fixtures_path(proto, "rebuilt"), + path.file_name().unwrap().into(), + ] + .into_iter() + .collect(); + let mut out = File::create(&new_path).unwrap_or_else(|error| { + panic!("Could not create rebuilt file {:?}: {:?}", new_path, error) + }); + out.write_all(&buf).expect("Could not write rebuilt data"); + out.flush().expect("Could not write rebuilt data"); + } +} diff --git a/lib/codecs/tests/native_json.rs b/lib/codecs/tests/native_json.rs new file mode 100644 index 0000000000000..dcc08bdaa187b --- /dev/null +++ b/lib/codecs/tests/native_json.rs @@ -0,0 +1,86 @@ +use bytes::BytesMut; +use codecs::decoding::format::Deserializer; +use codecs::encoding::format::Serializer; +use codecs::{NativeJsonDeserializerConfig, NativeJsonSerializerConfig}; +use vector_core::buckets; +use vector_core::config::LogNamespace; +use vector_core::event::{Event, Metric}; +use vector_core::event::{MetricKind, MetricValue}; + +fn assert_roundtrip( + input_event: Event, + serializer: &mut dyn Serializer, + deserializer: &dyn Deserializer, + expected_json_value: serde_json::Value, +) { + let mut bytes_mut = BytesMut::new(); + serializer + .encode(input_event.clone(), &mut bytes_mut) + .unwrap(); + let bytes = bytes_mut.freeze(); + let events = deserializer.parse(bytes, LogNamespace::Vector).unwrap(); + assert_eq!(events.len(), 1); + assert_eq!(events[0], input_event); + + let json_value = serde_json::to_value(input_event.as_metric()).unwrap(); + assert_eq!(json_value, expected_json_value); +} + +#[test] +fn histogram_metric_roundtrip() { + let histogram_event = Event::from(Metric::new( + "histogram", + MetricKind::Absolute, + MetricValue::AggregatedHistogram { + count: 1, + sum: 1.0, + buckets: buckets!( + f64::NEG_INFINITY => 10 , + f64::MIN => 10, 1.5 => 10, + f64::MAX => 10, + f64::INFINITY => 10), + }, + )); + + let expected_json_value = serde_json::from_str( + r#" + { + "aggregated_histogram": { + "buckets": [ + { + "count": 10, + "upper_limit": "-inf" + }, + { + "count": 10, + "upper_limit": -1.7976931348623157e308 + }, + { + "count": 10, + "upper_limit": 1.5 + }, + { + "count": 10, + "upper_limit": 1.7976931348623157e308 + }, + { + "count": 10, + "upper_limit": "inf" + } + ], + "count": 1, + "sum": 1.0 + }, + "kind": "absolute", + "name": "histogram" + }"#, + ) + .unwrap(); + + assert_roundtrip( + histogram_event, + &mut NativeJsonSerializerConfig.build(), + &NativeJsonDeserializerConfig::default().build(), + expected_json_value, + ) +} diff --git a/lib/codecs/tests/protobuf.rs b/lib/codecs/tests/protobuf.rs new file mode 100644 index 0000000000000..b822573dc7f64 --- /dev/null +++ b/lib/codecs/tests/protobuf.rs @@ -0,0 +1,68 @@ +//! Tests for the behaviour of Protobuf serializer and deserializer (together). + +use bytes::{Bytes, BytesMut}; +use std::path::{Path, PathBuf}; +use tokio_util::codec::Encoder; +use vector_core::config::LogNamespace; + +use codecs::decoding::format::Deserializer; +use codecs::decoding::{ + ProtobufDeserializer, ProtobufDeserializerConfig, ProtobufDeserializerOptions, +}; +use codecs::encoding::{ProtobufSerializer, ProtobufSerializerConfig, ProtobufSerializerOptions}; + +fn test_data_dir() -> PathBuf { + PathBuf::from(std::env::var_os("CARGO_MANIFEST_DIR").unwrap()).join("tests/data/protobuf") +} + +fn read_protobuf_bin_message(path: &Path) -> Bytes { + let message_raw = std::fs::read(path).unwrap(); + Bytes::copy_from_slice(&message_raw) +} + +/// Build the serializer and deserializer from common settings +fn build_serializer_pair( + desc_file: PathBuf, + message_type: String, +) -> (ProtobufSerializer, ProtobufDeserializer) { + let serializer = ProtobufSerializerConfig { + protobuf: ProtobufSerializerOptions { + desc_file: desc_file.clone(), + message_type: message_type.clone(), + }, + } + .build() + .unwrap(); + let deserializer = ProtobufDeserializerConfig { + protobuf: ProtobufDeserializerOptions { + desc_file, + message_type, + }, + } + .build() + .unwrap(); + (serializer, deserializer) +} + +#[test] +fn roundtrip_coding() { + let protobuf_message = + read_protobuf_bin_message(&test_data_dir().join("pbs/person_someone.pb")); + let desc_file = test_data_dir().join("protos/test_protobuf.desc"); + let message_type: String = "test_protobuf.Person".into(); + let (mut serializer, deserializer) = build_serializer_pair(desc_file, message_type); + + let events_original = deserializer + .parse(protobuf_message, LogNamespace::Vector) + .unwrap(); + assert_eq!(1, events_original.len()); + let mut new_message = BytesMut::new(); + serializer + .encode(events_original[0].clone(), &mut new_message) + .unwrap(); + let protobuf_message: Bytes = new_message.into(); + let events_encoded = deserializer + .parse(protobuf_message, LogNamespace::Vector) + .unwrap(); + assert_eq!(events_original, events_encoded); +} diff --git a/lib/derive_is_enum_variant/Cargo.toml b/lib/derive_is_enum_variant/Cargo.toml deleted file mode 100644 index f2c5ec16d6440..0000000000000 --- a/lib/derive_is_enum_variant/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "derive_is_enum_variant" -version = "1.0.0" -authors = ["Vector Contributors ", "Nick Fitzgerald "] -edition = "2018" -description = "Automatically derives `is_dog` and `is_cat` methods for `enum Pet { Dog, Cat }`." -publish = false -license = "Apache-2.0/MIT" - -[dependencies] -heck = "0.3.0" -proc-macro2 = "1" -quote = "1" -syn = { version = "1", features = ["extra-traits"] } - -[lib] -proc_macro = true diff --git a/lib/derive_is_enum_variant/src/lib.rs b/lib/derive_is_enum_variant/src/lib.rs deleted file mode 100644 index 48403ffd9ed4a..0000000000000 --- a/lib/derive_is_enum_variant/src/lib.rs +++ /dev/null @@ -1,232 +0,0 @@ -// Copyright (c) 2021 Vector Contributors -// Copyright (c) 2015 The Rust Project Developers - -// Permission is hereby granted, free of charge, to any -// person obtaining a copy of this software and associated -// documentation files (the "Software"), to deal in the -// Software without restriction, including without -// limitation the rights to use, copy, modify, merge, -// publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software -// is furnished to do so, subject to the following -// conditions: - -// The above copyright notice and this permission notice -// shall be included in all copies or substantial portions -// of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -// IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - -//! ### Add `#[derive(is_enum_variant)]` to your `enum` definitions: -//! -//! ```rust -//! #[macro_use] -//! extern crate derive_is_enum_variant; -//! -//! #[derive(is_enum_variant)] -//! pub enum Pet { -//! Doggo, -//! Kitteh, -//! } -//! -//! fn main() { -//! let pet = Pet::Doggo; -//! -//! assert!(pet.is_doggo()); -//! assert!(!pet.is_kitteh()); -//! } -//! ``` -//! -//! ### Customizing Predicate Names -//! -//! By default, the predicates are named `is_snake_case_of_variant_name`. You can -//! use any name you want instead with `#[is_enum_variant(name = "..")]`: -//! -//! ```rust -//! # #[macro_use] -//! # extern crate derive_is_enum_variant; -//! -//! #[derive(is_enum_variant)] -//! pub enum Pet { -//! #[is_enum_variant(name = "is_real_good_boy")] -//! Doggo, -//! Kitteh, -//! } -//! -//! # fn main() { -//! let pet = Pet::Doggo; -//! assert!(pet.is_real_good_boy()); -//! # } -//! ``` -//! -//! ### Skipping Predicates for Certain Variants -//! -//! If you don't want to generate a predicate for a certain variant, you can use -//! `#[is_enum_variant(skip)]`: -//! -//! ```rust -//! # #[macro_use] -//! # extern crate derive_is_enum_variant; -//! -//! #[derive(is_enum_variant)] -//! pub enum Errors { -//! Io(::std::io::Error), -//! -//! #[doc(hidden)] -//! #[is_enum_variant(skip)] -//! __NonExhaustive, -//! } -//! -//! # fn main() {} -//! ``` - -#[macro_use] -extern crate quote; - -use heck::SnakeCase; -use proc_macro::TokenStream; - -#[proc_macro_derive(is_enum_variant, attributes(is_enum_variant))] -pub fn derive_is_enum_variant(tokens: TokenStream) -> TokenStream { - let ast: syn::DeriveInput = syn::parse(tokens).expect("should parse input tokens into AST"); - - let name = ast.ident; - let (impl_generics, ty_generics, where_clause) = ast.generics.split_for_impl(); - let data_enum = match ast.data { - syn::Data::Enum(data_enum) => data_enum, - _ => panic!("#[derive(is_enum_variant)] can only be used with enums"), - }; - let predicates = data_enum.variants.into_iter().map( - |syn::Variant { - attrs, - ident, - fields, - .. - }| { - let cfg = attrs.into(); - if let PredicateConfig::Skip = cfg { - return quote! {}; - } - - let variant_name = ident.to_string(); - let doc = format!("Is this `{}` a `{}`?", name, variant_name); - - let predicate_name = if let PredicateConfig::Name(name) = cfg { - name - } else { - format!("is_{}", variant_name.to_snake_case()) - }; - let fn_name = syn::Ident::new(&predicate_name, proc_macro2::Span::call_site()); - - let data_tokens = match fields { - syn::Fields::Named(..) => quote! { { .. } }, - syn::Fields::Unnamed(..) => quote! { (..) }, - syn::Fields::Unit => quote! {}, - }; - - quote! { - #[doc = #doc] - #[inline] - #[allow(unreachable_patterns)] - #[allow(dead_code)] - pub fn #fn_name(&self) -> bool { - matches!(*self, #name :: #ident #data_tokens) - } - } - }, - ); - - TokenStream::from(quote! { - /// # `enum` Variant Predicates - impl #impl_generics #name #ty_generics #where_clause { - #( - #predicates - )* - } - }) -} - -enum PredicateConfig { - None, - Skip, - Name(String), -} - -impl PredicateConfig { - fn join(self, meta: syn::Meta) -> Self { - match meta { - syn::Meta::Path(path) if path.is_ident("skip") => match self { - PredicateConfig::None | PredicateConfig::Skip => PredicateConfig::Skip, - PredicateConfig::Name(_) => panic!( - "Cannot both `#[is_enum_variant(skip)]` and \ - `#[is_enum_variant(name = \"..\")]`" - ), - }, - syn::Meta::NameValue(syn::MetaNameValue { - path, - lit: syn::Lit::Str(s), - .. - }) if path.is_ident("name") => { - let value = s.value(); - if !value - .chars() - .all(|c| matches!(c, '_' | 'a'..='z' | 'A'..='Z' | '0'..='9')) - { - panic!( - "#[is_enum_variant(name = \"..\")] must be provided \ - a valid identifier" - ) - } - match self { - PredicateConfig::None => PredicateConfig::Name(value), - PredicateConfig::Skip => panic!( - "Cannot both `#[is_enum_variant(skip)]` and \ - `#[is_enum_variant(name = \"..\")]`" - ), - PredicateConfig::Name(_) => panic!( - "Cannot provide more than one \ - `#[is_enum_variant(name = \"..\")]`" - ), - } - } - otherwise => panic!( - "Unknown item inside `#[is_enum_variant(..)]`: {:?}", - otherwise - ), - } - } -} - -impl From> for PredicateConfig { - fn from(attrs: Vec) -> Self { - let our_attr = attrs - .into_iter() - .find(|attr| attr.path.is_ident("is_enum_variant")); - our_attr.map_or(PredicateConfig::None, |attr| { - match attr.parse_meta().expect("unable to parse Meta") { - syn::Meta::List(list) => list - .nested - .into_iter() - .map(|meta| match meta { - syn::NestedMeta::Meta(meta) => meta, - syn::NestedMeta::Lit(_) => { - panic!("Invalid #[is_enum_variant] item") - } - }) - .fold(PredicateConfig::None, PredicateConfig::join), - _ => panic!( - "#[is_enum_variant] must be used with name/value pairs, like \ - #[is_enum_variant(name = \"..\")]" - ), - } - }) - } -} diff --git a/lib/derive_is_enum_variant/tests/tests.rs b/lib/derive_is_enum_variant/tests/tests.rs deleted file mode 100755 index 49b96c20c84d2..0000000000000 --- a/lib/derive_is_enum_variant/tests/tests.rs +++ /dev/null @@ -1,107 +0,0 @@ -#[macro_use] -extern crate derive_is_enum_variant; - -/// A kind of pet. -#[derive(is_enum_variant)] -pub enum Pet { - /// A dog. - Doggo, - /// A cat. - Kitteh, - /// A flying squirrel. - FlyingSquirrel, -} - -#[test] -fn basic_enum_predicates() { - let doggo = Pet::Doggo; - assert!(doggo.is_doggo()); - assert!(!doggo.is_kitteh()); - assert!(!doggo.is_flying_squirrel()); - - let kitteh = Pet::Kitteh; - assert!(!kitteh.is_doggo()); - assert!(kitteh.is_kitteh()); - assert!(!kitteh.is_flying_squirrel()); - - let squirrel = Pet::FlyingSquirrel; - assert!(!squirrel.is_doggo()); - assert!(!squirrel.is_kitteh()); - assert!(squirrel.is_flying_squirrel()); -} - -/// Different kinds of enum variants. -#[derive(is_enum_variant)] -pub enum VariantKinds { - Struct { x: usize, y: usize }, - Tuple(usize, usize), - Unit, -} - -#[test] -fn variant_kinds() { - assert!(VariantKinds::Struct { x: 1, y: 2 }.is_struct()); - assert!(VariantKinds::Tuple(1, 2).is_tuple()); - assert!(VariantKinds::Unit.is_unit()); -} - -/// Various funky case names. -#[allow(non_camel_case_types)] -#[derive(is_enum_variant)] -pub enum Funky { - /// doc - CAPS, - /// doc - SHOUTING_SNAKE, - /// doc - snake_case, - /// doc - littleCamel, - /// doc - WithACRONYM, -} - -#[test] -fn funky_variant_names() { - assert!(Funky::CAPS.is_caps()); - assert!(Funky::SHOUTING_SNAKE.is_shouting_snake()); - assert!(Funky::snake_case.is_snake_case()); - assert!(Funky::littleCamel.is_little_camel()); - assert!(Funky::WithACRONYM.is_with_acronym()); -} - -/// Test providing custom predicate names. -#[derive(is_enum_variant)] -pub enum CustomNames { - #[is_enum_variant(name = "i_dont_know_why_you_say")] - Goodbye, - #[is_enum_variant(name = "i_say")] - Hello, -} - -#[test] -fn custom_predicate_names() { - assert!(CustomNames::Goodbye.i_dont_know_why_you_say()); - assert!(CustomNames::Hello.i_say()); -} - -/// This doesn't get a predicate for every variant -#[derive(is_enum_variant)] -pub enum Skip { - #[is_enum_variant(skip)] - NoPredicate, - YesPredicate, -} - -#[test] -fn skip_variants() { - assert!(Skip::YesPredicate.is_yes_predicate()); -} - -/// Because there is only one variant, the generated match's `_` pattern is -/// unreachable. This better not create a compilation error due to our -/// `deny(unreachable_patterns)`. -#[derive(is_enum_variant)] -pub enum GeneratedCodeHasNoWarnings { - OnlyOneVariant, -} diff --git a/lib/dnsmsg-parser/Cargo.toml b/lib/dnsmsg-parser/Cargo.toml new file mode 100644 index 0000000000000..252bc539abfac --- /dev/null +++ b/lib/dnsmsg-parser/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "dnsmsg-parser" +version = "0.1.0" +authors = ["Vector Contributors "] +edition = "2021" +publish = false +license = "MIT" + +[dependencies] +data-encoding = "2.8" +hickory-proto.workspace = true +snafu.workspace = true + +[dev-dependencies] +criterion = "0.5" + +[lib] +bench = false + +[[bench]] +name = "benches" +harness = false diff --git a/lib/dnsmsg-parser/LICENSE b/lib/dnsmsg-parser/LICENSE new file mode 100644 index 0000000000000..c96f86d941f1b --- /dev/null +++ b/lib/dnsmsg-parser/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021, Bluecat Networks, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/lib/dnsmsg-parser/benches/benches.rs b/lib/dnsmsg-parser/benches/benches.rs new file mode 100644 index 0000000000000..89b7147ac5090 --- /dev/null +++ b/lib/dnsmsg-parser/benches/benches.rs @@ -0,0 +1,96 @@ +use criterion::{criterion_group, criterion_main, BatchSize, Criterion, Throughput}; +use data_encoding::BASE64; +use dnsmsg_parser::dns_message_parser::DnsMessageParser; +use hickory_proto::rr::rdata::NULL; + +fn benchmark_parse_as_query_message(c: &mut Criterion) { + let raw_dns_message = "szgAAAABAAAAAAAAAmg1B2V4YW1wbGUDY29tAAAGAAE="; + let raw_query_message = BASE64.decode(raw_dns_message.as_bytes()).unwrap(); + + let mut group = c.benchmark_group("dnstap"); + group.throughput(Throughput::Bytes(raw_query_message.len() as u64)); + group.bench_function("parse_as_query_message", |b| { + b.iter_batched( + || DnsMessageParser::new(raw_query_message.clone()), + |mut parser| parser.parse_as_query_message().unwrap(), + BatchSize::SmallInput, + ) + }); + + group.finish(); +} + +fn benchmark_parse_as_update_message(c: &mut Criterion) { + let raw_dns_message = "xjUoAAABAAAAAQAAB2V4YW1wbGUDY29tAAAGAAECaDXADAD/AP8AAAAAAAA="; + let raw_update_message = BASE64.decode(raw_dns_message.as_bytes()).unwrap(); + + let mut group = c.benchmark_group("dnstap"); + group.throughput(Throughput::Bytes(raw_update_message.len() as u64)); + group.bench_function("parse_as_update_message", |b| { + b.iter_batched( + || DnsMessageParser::new(raw_update_message.clone()), + |mut parser| parser.parse_as_update_message().unwrap(), + BatchSize::SmallInput, + ) + }); + + group.finish(); +} + +fn benchmark_parse_wks_rdata(c: &mut Criterion) { + benchmark_parse_rdata(c, "gAgBDgYAAAFA", 11, "parse_wks_rdata"); +} + +fn benchmark_parse_a6_rdata(c: &mut Criterion) { + benchmark_parse_rdata( + c, + "QBI0VniavN7wCFNVQk5FVC0xA0lQNghleGFtcGxlMQNjb20A", + 38, + "parse_a6_rdata", + ); +} + +fn benchmark_parse_loc_rdata(c: &mut Criterion) { + benchmark_parse_rdata(c, "ADMWE4kXLdBwvhXwAJiNIA==", 29, "parse_loc_rdata"); +} + +fn benchmark_parse_apl_rdata(c: &mut Criterion) { + benchmark_parse_rdata(c, "AAEVA8CoIAABHIPAqCY=", 42, "parse_apl_rdata"); +} + +fn benchmark_parse_rdata(c: &mut Criterion, data: &str, code: u16, id: &str) { + let raw_rdata = BASE64.decode(data.as_bytes()).unwrap(); + + let record_rdata = NULL::with(raw_rdata.clone()); + + let mut group = c.benchmark_group("dnstap"); + group.throughput(Throughput::Bytes(raw_rdata.len() as u64)); + group.bench_function(id, |b| { + b.iter_batched( + || { + ( + record_rdata.clone(), + DnsMessageParser::new(Vec::::new()), + ) + }, + |(record_rdata, mut parser)| parser.format_unknown_rdata(code, &record_rdata).unwrap(), + BatchSize::SmallInput, + ) + }); + + group.finish(); +} + +criterion_group!( + name = benches; + // encapsulates CI noise we saw in + // https://github.com/vectordotdev/vector/pull/6408 + config = Criterion::default().noise_threshold(0.05); + targets = benchmark_parse_as_query_message, + benchmark_parse_as_update_message, + benchmark_parse_wks_rdata, + benchmark_parse_a6_rdata, + benchmark_parse_loc_rdata, + benchmark_parse_apl_rdata, +); +criterion_main!(benches); diff --git a/lib/dnsmsg-parser/src/dns_message.rs b/lib/dnsmsg-parser/src/dns_message.rs new file mode 100644 index 0000000000000..d22bff280631d --- /dev/null +++ b/lib/dnsmsg-parser/src/dns_message.rs @@ -0,0 +1,132 @@ +use hickory_proto::op::ResponseCode; + +use crate::ede::EDE; + +pub(super) const RTYPE_MB: u16 = 7; +pub(super) const RTYPE_MG: u16 = 8; +pub(super) const RTYPE_MR: u16 = 9; +pub(super) const RTYPE_WKS: u16 = 11; +pub(super) const RTYPE_MINFO: u16 = 14; +pub(super) const RTYPE_RP: u16 = 17; +pub(super) const RTYPE_AFSDB: u16 = 18; +pub(super) const RTYPE_X25: u16 = 19; +pub(super) const RTYPE_ISDN: u16 = 20; +pub(super) const RTYPE_RT: u16 = 21; +pub(super) const RTYPE_NSAP: u16 = 22; +pub(super) const RTYPE_PX: u16 = 26; +pub(super) const RTYPE_LOC: u16 = 29; +pub(super) const RTYPE_KX: u16 = 36; +pub(super) const RTYPE_CERT: u16 = 37; +pub(super) const RTYPE_A6: u16 = 38; +pub(super) const RTYPE_SINK: u16 = 40; +pub(super) const RTYPE_APL: u16 = 42; +pub(super) const RTYPE_DHCID: u16 = 49; +pub(super) const RTYPE_SPF: u16 = 99; + +#[derive(Clone, Debug, Default)] +pub struct DnsQueryMessage { + pub response_code: u16, + pub response: Option<&'static str>, + pub header: QueryHeader, + pub question_section: Vec, + pub answer_section: Vec, + pub authority_section: Vec, + pub additional_section: Vec, + pub opt_pseudo_section: Option, +} + +#[derive(Clone, Debug, Default)] +pub struct QueryHeader { + pub id: u16, + pub opcode: u8, + pub rcode: ResponseCode, + pub qr: u8, + pub aa: bool, + pub tc: bool, + pub rd: bool, + pub ra: bool, + pub ad: bool, + pub cd: bool, + pub question_count: u16, + pub answer_count: u16, + pub authority_count: u16, + pub additional_count: u16, +} + +#[derive(Clone, Debug, Default)] +pub struct DnsUpdateMessage { + pub response_code: u16, + pub response: Option<&'static str>, + pub header: UpdateHeader, + pub zone_to_update: ZoneInfo, + pub prerequisite_section: Vec, + pub update_section: Vec, + pub additional_section: Vec, +} + +#[derive(Clone, Debug, Default)] +pub struct UpdateHeader { + pub id: u16, + pub opcode: u8, + pub rcode: ResponseCode, + pub qr: u8, + pub zone_count: u16, + pub prerequisite_count: u16, + pub update_count: u16, + pub additional_count: u16, +} + +#[derive(Clone, Debug, Default)] +pub struct OptPseudoSection { + pub extended_rcode: u8, + pub version: u8, + pub dnssec_ok: bool, + pub udp_max_payload_size: u16, + pub ede: Vec, + pub options: Vec, +} + +#[derive(Clone, Debug, Default)] +pub struct QueryQuestion { + pub name: String, + pub class: String, + pub record_type: Option, + pub record_type_id: u16, +} + +#[derive(Clone, Debug, Default)] +pub struct ZoneInfo { + pub name: String, + pub class: String, + pub zone_type: Option, + pub zone_type_id: u16, +} + +impl From for ZoneInfo { + fn from(query: QueryQuestion) -> Self { + Self { + name: query.name, + class: query.class, + zone_type: query.record_type, + zone_type_id: query.record_type_id, + } + } +} + +#[derive(Clone, Debug, Default)] +pub struct DnsRecord { + pub name: String, + pub class: String, + pub record_type: Option, + pub record_type_id: u16, + pub ttl: u32, + pub rdata: Option, + pub rdata_bytes: Option>, +} + +#[derive(Clone, Debug, Default)] +pub struct EdnsOptionEntry { + pub opt_code: u16, + pub opt_name: String, + pub opt_data: String, +} diff --git a/lib/dnsmsg-parser/src/dns_message_parser.rs b/lib/dnsmsg-parser/src/dns_message_parser.rs new file mode 100644 index 0000000000000..efa54c372ebbc --- /dev/null +++ b/lib/dnsmsg-parser/src/dns_message_parser.rs @@ -0,0 +1,2252 @@ +use std::str::Utf8Error; +use std::{fmt::Write as _, ops::Deref}; + +use data_encoding::{BASE32HEX_NOPAD, BASE64, HEXUPPER}; +use hickory_proto::{ + error::ProtoError, + op::{message::Message as TrustDnsMessage, Query}, + rr::{ + dnssec::{ + rdata::{DNSSECRData, DNSKEY, DS}, + Algorithm, SupportedAlgorithms, + }, + rdata::{ + caa::Value, + opt::{EdnsCode, EdnsOption}, + A, AAAA, NULL, OPT, SVCB, + }, + record_data::RData, + resource::Record, + Name, RecordType, + }, + serialize::binary::{BinDecodable, BinDecoder}, +}; +use snafu::Snafu; + +use crate::ede::{EDE, EDE_OPTION_CODE}; + +use super::dns_message::{ + self, DnsQueryMessage, DnsRecord, DnsUpdateMessage, EdnsOptionEntry, OptPseudoSection, + QueryHeader, QueryQuestion, UpdateHeader, ZoneInfo, +}; + +/// Error type for DNS message parsing +#[derive(Debug, Snafu)] +pub enum DnsMessageParserError { + #[snafu(display("Encountered error: {}", cause))] + SimpleError { cause: String }, + + #[snafu(display("Encountered error from TrustDns: {}", source))] + TrustDnsError { source: ProtoError }, + + #[snafu(display("UTF8Error: {}", source))] + Utf8ParsingError { source: Utf8Error }, +} + +/// Result alias for parsing +pub type DnsParserResult = Result; + +/// Options for DNS message parser +#[derive(Debug, Default, Clone)] +pub struct DnsParserOptions { + /// Whether hostnames in RData should be lowercased, for consistency + pub lowercase_hostnames: bool, +} + +trait DnsParserOptionsTarget { + fn to_string_with_options(&self, options: &DnsParserOptions) -> String; +} + +impl DnsParserOptionsTarget for Name { + fn to_string_with_options(&self, options: &DnsParserOptions) -> String { + if options.lowercase_hostnames { + self.to_lowercase().to_string() + } else { + self.to_string() + } + } +} + +/// A DNS message parser +#[derive(Debug)] +pub struct DnsMessageParser { + raw_message: Vec, + // This field is used to facilitate parsing of compressed domain names contained + // in some record data. We could instantiate a new copy of the raw_message whenever + // we need to parse rdata, but to avoid impact on performance, we'll instantiate + // only one copy of raw_message upon the first call to parse an rdata that may + // contain compressed domain name, and store it here as a member field; for + // subsequent invocations of the same call, we simply reuse this copy. + raw_message_for_rdata_parsing: Option>, + options: DnsParserOptions, +} + +impl DnsMessageParser { + pub fn new(raw_message: Vec) -> Self { + DnsMessageParser { + raw_message, + raw_message_for_rdata_parsing: None, + options: DnsParserOptions::default(), + } + } + + pub fn with_options(raw_message: Vec, options: DnsParserOptions) -> Self { + DnsMessageParser { + raw_message, + raw_message_for_rdata_parsing: None, + options, + } + } + + pub fn raw_message(&self) -> &[u8] { + &self.raw_message + } + + pub fn parse_as_query_message(&mut self) -> DnsParserResult { + let msg = TrustDnsMessage::from_vec(&self.raw_message) + .map_err(|source| DnsMessageParserError::TrustDnsError { source })?; + let header = parse_dns_query_message_header(&msg); + let edns_section = parse_edns(&msg).transpose()?; + let rcode_high = edns_section.as_ref().map_or(0, |edns| edns.extended_rcode); + let response_code = (u16::from(rcode_high) << 4) | ((u16::from(header.rcode)) & 0x000F); + + Ok(DnsQueryMessage { + response_code, + response: parse_response_code(response_code), + header, + question_section: self.parse_dns_query_message_question_section(&msg), + answer_section: self.parse_dns_message_section(msg.answers())?, + authority_section: self.parse_dns_message_section(msg.name_servers())?, + additional_section: self.parse_dns_message_section(msg.additionals())?, + opt_pseudo_section: edns_section, + }) + } + + pub fn parse_as_update_message(&mut self) -> DnsParserResult { + let msg = TrustDnsMessage::from_vec(&self.raw_message) + .map_err(|source| DnsMessageParserError::TrustDnsError { source })?; + let header = parse_dns_update_message_header(&msg); + let response_code = (u16::from(header.rcode)) & 0x000F; + Ok(DnsUpdateMessage { + response_code, + response: parse_response_code(response_code), + header, + zone_to_update: self.parse_dns_update_message_zone_section(&msg)?, + prerequisite_section: self.parse_dns_message_section(msg.answers())?, + update_section: self.parse_dns_message_section(msg.name_servers())?, + additional_section: self.parse_dns_message_section(msg.additionals())?, + }) + } + + fn parse_dns_query_message_question_section( + &self, + dns_message: &TrustDnsMessage, + ) -> Vec { + dns_message + .queries() + .iter() + .map(|query| self.parse_dns_query_question(query)) + .collect() + } + + fn parse_dns_query_question(&self, question: &Query) -> QueryQuestion { + QueryQuestion { + name: question.name().to_string_with_options(&self.options), + class: question.query_class().to_string(), + record_type: format_record_type(question.query_type()), + record_type_id: u16::from(question.query_type()), + } + } + + fn parse_dns_update_message_zone_section( + &self, + dns_message: &TrustDnsMessage, + ) -> DnsParserResult { + let zones = dns_message + .queries() + .iter() + .map(|query| self.parse_dns_query_question(query).into()) + .collect::>(); + + zones + .first() + .cloned() + .ok_or_else(|| DnsMessageParserError::SimpleError { + cause: format!( + "Unexpected number of records in update section: {}", + zones.len() + ), + }) + } + + fn parse_dns_message_section(&mut self, records: &[Record]) -> DnsParserResult> { + records + .iter() + .map(|record| self.parse_dns_record(record)) + .collect::, _>>() + } + + pub(crate) fn parse_dns_record(&mut self, record: &Record) -> DnsParserResult { + let record_data = match record.data() { + Some(RData::Unknown { code, rdata }) => { + self.format_unknown_rdata((*code).into(), rdata) + } + Some(rdata) => self.format_rdata(rdata), + None => Ok((Some(String::from("")), None)), // NULL record + }?; + + Ok(DnsRecord { + name: record.name().to_string_with_options(&self.options), + class: record.dns_class().to_string(), + record_type: format_record_type(record.record_type()), + record_type_id: u16::from(record.record_type()), + ttl: record.ttl(), + rdata: record_data.0, + rdata_bytes: record_data.1, + }) + } + + fn get_rdata_decoder_with_raw_message(&mut self, raw_rdata: &[u8]) -> BinDecoder<'_> { + let (index, raw_message_for_rdata_parsing_data) = + match self.raw_message_for_rdata_parsing.take() { + Some(mut buf) => { + let index = buf.len(); + buf.extend_from_slice(raw_rdata); + (index, buf) + } + None => { + let mut buf = Vec::::with_capacity(self.raw_message.len() * 2); + buf.extend(&self.raw_message); + buf.extend_from_slice(raw_rdata); + (self.raw_message.len(), buf) + } + }; + self.raw_message_for_rdata_parsing = Some(raw_message_for_rdata_parsing_data); + + BinDecoder::new(self.raw_message_for_rdata_parsing.as_ref().unwrap()).clone(index as u16) + } + + fn parse_wks_rdata( + &mut self, + raw_rdata: &[u8], + ) -> DnsParserResult<(Option, Option>)> { + let mut decoder = BinDecoder::new(raw_rdata); + let address = parse_ipv4_address(&mut decoder)?; + let protocol = parse_u8(&mut decoder)?; + let port = { + let mut port_string = String::new(); + let mut current_bit: u32 = 0; + while !decoder.is_empty() { + let mut current_byte = parse_u8(&mut decoder)?; + if current_byte == 0 { + current_bit += 8; + continue; + } + for _i in 0..8 { + if current_byte & 0b1000_0000 == 0b1000_0000 { + write!(port_string, "{} ", current_bit) + .expect("can always write to String"); + } + current_byte <<= 1; + current_bit += 1; + } + } + port_string + }; + Ok(( + Some(format!("{} {} {}", address, protocol, port.trim_end())), + None, + )) + } + + fn parse_a6_rdata( + &mut self, + raw_rdata: &[u8], + ) -> DnsParserResult<(Option, Option>)> { + let mut decoder = BinDecoder::new(raw_rdata); + let prefix = parse_u8(&mut decoder)?; + let ipv6_address = { + let address_length = (128 - prefix) / 8; + let mut address_vec = parse_vec(&mut decoder, address_length)?; + if address_vec.len() < 16 { + let pad_len = 16 - address_length; + let mut padded_address_vec = vec![0; pad_len as usize]; + padded_address_vec.extend(&address_vec); + address_vec = padded_address_vec; + } + let mut dec = BinDecoder::new(&address_vec); + parse_ipv6_address(&mut dec)? + }; + let domain_name = Self::parse_domain_name(&mut decoder, &self.options)?; + Ok(( + Some(format!("{} {} {}", prefix, ipv6_address, domain_name)), + None, + )) + } + + fn parse_loc_rdata( + &mut self, + raw_rdata: &[u8], + ) -> DnsParserResult<(Option, Option>)> { + let mut decoder = BinDecoder::new(raw_rdata); + let _max_latitude: u32 = 0x8000_0000 + 90 * 3_600_000; + let _min_latitude: u32 = 0x8000_0000 - 90 * 3_600_000; + let _max_longitude: u32 = 0x8000_0000 + 180 * 3_600_000; + let _min_longitude: u32 = 0x8000_0000 - 180 * 3_600_000; + let _version = parse_u8(&mut decoder)?; + if _version != 0 { + return Err(DnsMessageParserError::SimpleError { + cause: String::from("LOC record version should be 0."), + }); + } + let size = parse_loc_rdata_size(parse_u8(&mut decoder)?)?; + let horizontal_precision = parse_loc_rdata_size(parse_u8(&mut decoder)?)?; + let vertical_precision = parse_loc_rdata_size(parse_u8(&mut decoder)?)?; + + let latitude = { + let received_lat = parse_u32(&mut decoder)?; + if received_lat < _min_latitude || received_lat > _max_latitude { + return Err(DnsMessageParserError::SimpleError { + cause: String::from("LOC record latitude out of bounds"), + }); + } + let dir = if received_lat > 0x8000_0000 { "N" } else { "S" }; + parse_loc_rdata_coordinates(received_lat, dir) + }; + + let longitude = { + let received_lon = parse_u32(&mut decoder)?; + if received_lon < _min_longitude || received_lon > _max_longitude { + return Err(DnsMessageParserError::SimpleError { + cause: String::from("LOC record longitude out of bounds"), + }); + } + let dir = if received_lon > 0x8000_0000 { "E" } else { "W" }; + parse_loc_rdata_coordinates(received_lon, dir) + }; + let altitude = (parse_u32(&mut decoder)? as f64 - 10_000_000.0) / 100.0; + + Ok(( + Some(format!( + "{} {} {:.2}m {}m {}m {}m", + latitude, longitude, altitude, size, horizontal_precision, vertical_precision + )), + None, + )) + } + + fn parse_apl_rdata( + &mut self, + raw_rdata: &[u8], + ) -> DnsParserResult<(Option, Option>)> { + let mut decoder = BinDecoder::new(raw_rdata); + let mut apl_rdata = "".to_string(); + while !decoder.is_empty() { + let address_family = parse_u16(&mut decoder)?; + let prefix = parse_u8(&mut decoder)?; + let mut afd_length = parse_u8(&mut decoder)?; + let negation = if afd_length > 127 { + afd_length -= 128; + "!" + } else { + "" + }; + let mut address_vec = parse_vec(&mut decoder, afd_length)?; + let address = if address_family == 1 { + if afd_length < 4 { + address_vec.resize(4, 0); + } + let mut dec = BinDecoder::new(&address_vec); + parse_ipv4_address(&mut dec)? + } else { + if afd_length < 16 { + address_vec.resize(16, 0); + } + let mut dec = BinDecoder::new(&address_vec); + parse_ipv6_address(&mut dec)? + }; + write!( + apl_rdata, + "{}{}:{}/{}", + negation, address_family, address, prefix + ) + .expect("can always write to String"); + apl_rdata.push(' '); + } + Ok((Some(apl_rdata.trim_end().to_string()), None)) + } + + pub fn format_unknown_rdata( + &mut self, + code: u16, + rdata: &NULL, + ) -> DnsParserResult<(Option, Option>)> { + match code { + dns_message::RTYPE_MB => { + let options = self.options.clone(); + let mut decoder = self.get_rdata_decoder_with_raw_message(rdata.anything()); + let madname = Self::parse_domain_name(&mut decoder, &options)?; + Ok((Some(madname), None)) + } + + dns_message::RTYPE_MG => { + let options = self.options.clone(); + let mut decoder = self.get_rdata_decoder_with_raw_message(rdata.anything()); + let mgname = Self::parse_domain_name(&mut decoder, &options)?; + Ok((Some(mgname), None)) + } + + dns_message::RTYPE_MR => { + let options = self.options.clone(); + let mut decoder = self.get_rdata_decoder_with_raw_message(rdata.anything()); + let newname = Self::parse_domain_name(&mut decoder, &options)?; + Ok((Some(newname), None)) + } + + dns_message::RTYPE_WKS => self.parse_wks_rdata(rdata.anything()), + + dns_message::RTYPE_MINFO => { + let options = self.options.clone(); + let mut decoder = self.get_rdata_decoder_with_raw_message(rdata.anything()); + let rmailbx = Self::parse_domain_name(&mut decoder, &options)?; + let emailbx = Self::parse_domain_name(&mut decoder, &options)?; + Ok((Some(format!("{} {}", rmailbx, emailbx)), None)) + } + + dns_message::RTYPE_RP => { + let options = self.options.clone(); + let mut decoder = self.get_rdata_decoder_with_raw_message(rdata.anything()); + let mbox = Self::parse_domain_name(&mut decoder, &options)?; + let txt = Self::parse_domain_name(&mut decoder, &options)?; + Ok((Some(format!("{} {}", mbox, txt)), None)) + } + + dns_message::RTYPE_AFSDB => { + let options = self.options.clone(); + let mut decoder = self.get_rdata_decoder_with_raw_message(rdata.anything()); + let subtype = parse_u16(&mut decoder)?; + let hostname = Self::parse_domain_name(&mut decoder, &options)?; + Ok((Some(format!("{} {}", subtype, hostname)), None)) + } + + dns_message::RTYPE_X25 => { + let mut decoder = BinDecoder::new(rdata.anything()); + let psdn_address = parse_character_string(&mut decoder)?; + Ok(( + Some(format!( + "\"{}\"", + escape_string_for_text_representation(psdn_address) + )), + None, + )) + } + + dns_message::RTYPE_ISDN => { + let mut decoder = BinDecoder::new(rdata.anything()); + let address = parse_character_string(&mut decoder)?; + if decoder.is_empty() { + Ok(( + Some(format!( + "\"{}\"", + escape_string_for_text_representation(address) + )), + None, + )) + } else { + let sub_address = parse_character_string(&mut decoder)?; + Ok(( + Some(format!( + "\"{}\" \"{}\"", + escape_string_for_text_representation(address), + escape_string_for_text_representation(sub_address) + )), + None, + )) + } + } + + dns_message::RTYPE_RT => { + let options = self.options.clone(); + let mut decoder = self.get_rdata_decoder_with_raw_message(rdata.anything()); + let preference = parse_u16(&mut decoder)?; + let intermediate_host = Self::parse_domain_name(&mut decoder, &options)?; + Ok((Some(format!("{} {}", preference, intermediate_host)), None)) + } + + dns_message::RTYPE_NSAP => { + let raw_rdata = rdata.anything(); + let mut decoder = BinDecoder::new(raw_rdata); + let rdata_len = raw_rdata.len() as u16; + let nsap_rdata = HEXUPPER.encode(&parse_vec_with_u16_len(&mut decoder, rdata_len)?); + Ok((Some(format!("0x{}", nsap_rdata)), None)) + } + + dns_message::RTYPE_PX => { + let options = self.options.clone(); + let mut decoder = self.get_rdata_decoder_with_raw_message(rdata.anything()); + let preference = parse_u16(&mut decoder)?; + let map822 = Self::parse_domain_name(&mut decoder, &options)?; + let mapx400 = Self::parse_domain_name(&mut decoder, &options)?; + Ok((Some(format!("{} {} {}", preference, map822, mapx400)), None)) + } + + dns_message::RTYPE_LOC => self.parse_loc_rdata(rdata.anything()), + + dns_message::RTYPE_KX => { + let options = self.options.clone(); + let mut decoder = self.get_rdata_decoder_with_raw_message(rdata.anything()); + let preference = parse_u16(&mut decoder)?; + let exchanger = Self::parse_domain_name(&mut decoder, &options)?; + Ok((Some(format!("{} {}", preference, exchanger)), None)) + } + + dns_message::RTYPE_CERT => { + let raw_rdata = rdata.anything(); + let mut decoder = BinDecoder::new(raw_rdata); + let cert_type = parse_u16(&mut decoder)?; + let key_tag = parse_u16(&mut decoder)?; + let algorithm = Algorithm::from_u8(parse_u8(&mut decoder)?).as_str(); + let crl_len = raw_rdata.len() as u16 - 5; + let crl = BASE64.encode(&parse_vec_with_u16_len(&mut decoder, crl_len)?); + Ok(( + Some(format!("{} {} {} {}", cert_type, key_tag, algorithm, crl)), + None, + )) + } + + dns_message::RTYPE_A6 => self.parse_a6_rdata(rdata.anything()), + + dns_message::RTYPE_SINK => { + let raw_rdata = rdata.anything(); + let mut decoder = BinDecoder::new(raw_rdata); + let meaning = parse_u8(&mut decoder)?; + let coding = parse_u8(&mut decoder)?; + let subcoding = parse_u8(&mut decoder)?; + let data_len = raw_rdata.len() as u16 - 3; + let data = BASE64.encode(&parse_vec_with_u16_len(&mut decoder, data_len)?); + + Ok(( + Some(format!("{} {} {} {}", meaning, coding, subcoding, data)), + None, + )) + } + + dns_message::RTYPE_APL => self.parse_apl_rdata(rdata.anything()), + + dns_message::RTYPE_DHCID => { + let raw_rdata = rdata.anything(); + let mut decoder = BinDecoder::new(raw_rdata); + let raw_data_len = raw_rdata.len() as u16; + let digest = BASE64.encode(&parse_vec_with_u16_len(&mut decoder, raw_data_len)?); + Ok((Some(digest), None)) + } + + dns_message::RTYPE_SPF => { + let mut decoder = BinDecoder::new(rdata.anything()); + let mut text = String::new(); + while !decoder.is_empty() { + text.push('\"'); + text.push_str(&parse_character_string(&mut decoder)?); + text.push_str("\" "); + } + Ok((Some(text.trim_end().to_string()), None)) + } + + _ => Ok((None, Some(rdata.anything().to_vec()))), + } + } + + fn format_rdata(&self, rdata: &RData) -> DnsParserResult<(Option, Option>)> { + match rdata { + RData::A(ip) => Ok((Some(ip.to_string()), None)), + RData::AAAA(ip) => Ok((Some(ip.to_string()), None)), + RData::ANAME(name) => Ok((Some(name.to_string_with_options(&self.options)), None)), + RData::CNAME(name) => Ok((Some(name.to_string_with_options(&self.options)), None)), + RData::CSYNC(csync) => { + // Using CSYNC's formatter since not all data is exposed otherwise + let csync_rdata = format!("{}", csync); + Ok((Some(csync_rdata), None)) + } + RData::MX(mx) => { + let srv_rdata = format!( + "{} {}", + mx.preference(), + mx.exchange().to_string_with_options(&self.options), + ); + Ok((Some(srv_rdata), None)) + } + RData::NULL(null) => Ok((Some(BASE64.encode(null.anything())), None)), + RData::NS(ns) => Ok((Some(ns.to_string_with_options(&self.options)), None)), + RData::OPENPGPKEY(key) => { + if let Ok(key_string) = String::from_utf8(Vec::from(key.public_key())) { + Ok((Some(format!("({})", &key_string)), None)) + } else { + Err(DnsMessageParserError::SimpleError { + cause: String::from("Invalid OPENPGPKEY rdata"), + }) + } + } + RData::PTR(ptr) => Ok((Some(ptr.to_string_with_options(&self.options)), None)), + RData::SOA(soa) => Ok(( + Some(format!( + "{} {} {} {} {} {} {}", + soa.mname().to_string_with_options(&self.options), + soa.rname().to_string_with_options(&self.options), + soa.serial(), + soa.refresh(), + soa.retry(), + soa.expire(), + soa.minimum() + )), + None, + )), + RData::SRV(srv) => { + let srv_rdata = format!( + "{} {} {} {}", + srv.priority(), + srv.weight(), + srv.port(), + srv.target().to_string_with_options(&self.options) + ); + Ok((Some(srv_rdata), None)) + } + RData::TXT(txt) => { + let txt_rdata = txt + .txt_data() + .iter() + .map(|value| { + format!( + "\"{}\"", + escape_string_for_text_representation( + String::from_utf8_lossy(value).to_string() + ) + ) + }) + .collect::>() + .join(" "); + Ok((Some(txt_rdata), None)) + } + RData::CAA(caa) => { + let caa_rdata = format!( + "{} {} \"{}\"", + caa.issuer_critical() as u8, + caa.tag().as_str(), + match caa.value() { + Value::Url(url) => { + url.as_str().to_string() + } + Value::Issuer(option_name, vec_keyvalue) => { + let mut final_issuer = String::new(); + if let Some(name) = option_name { + final_issuer.push_str(&name.to_string_with_options(&self.options)); + for keyvalue in vec_keyvalue.iter() { + final_issuer.push_str("; "); + final_issuer.push_str(keyvalue.key()); + final_issuer.push('='); + final_issuer.push_str(keyvalue.value()); + } + } + final_issuer.trim_end().to_string() + } + Value::Unknown(unknown) => std::str::from_utf8(unknown) + .map_err(|source| DnsMessageParserError::Utf8ParsingError { source })? + .to_string(), + } + ); + Ok((Some(caa_rdata), None)) + } + + RData::TLSA(tlsa) => { + let tlsa_rdata = format!( + "{} {} {} {}", + u8::from(tlsa.cert_usage()), + u8::from(tlsa.selector()), + u8::from(tlsa.matching()), + HEXUPPER.encode(tlsa.cert_data()) + ); + Ok((Some(tlsa_rdata), None)) + } + RData::SSHFP(sshfp) => { + let sshfp_rdata = format!( + "{} {} {}", + Into::::into(sshfp.algorithm()), + Into::::into(sshfp.fingerprint_type()), + HEXUPPER.encode(sshfp.fingerprint()) + ); + Ok((Some(sshfp_rdata), None)) + } + RData::NAPTR(naptr) => { + let naptr_rdata = format!( + r#"{} {} "{}" "{}" "{}" {}"#, + naptr.order(), + naptr.preference(), + escape_string_for_text_representation( + std::str::from_utf8(naptr.flags()) + .map_err(|source| DnsMessageParserError::Utf8ParsingError { source })? + .to_string() + ), + escape_string_for_text_representation( + std::str::from_utf8(naptr.services()) + .map_err(|source| DnsMessageParserError::Utf8ParsingError { source })? + .to_string() + ), + escape_string_for_text_representation( + std::str::from_utf8(naptr.regexp()) + .map_err(|source| DnsMessageParserError::Utf8ParsingError { source })? + .to_string() + ), + naptr.replacement().to_string_with_options(&self.options) + ); + Ok((Some(naptr_rdata), None)) + } + RData::HINFO(hinfo) => { + let hinfo_data = format!( + r#""{}" "{}""#, + std::str::from_utf8(hinfo.cpu()) + .map_err(|source| DnsMessageParserError::Utf8ParsingError { source })?, + std::str::from_utf8(hinfo.os()) + .map_err(|source| DnsMessageParserError::Utf8ParsingError { source })?, + ); + Ok((Some(hinfo_data), None)) + } + RData::HTTPS(https) => { + let https_data = format_svcb_record(&https.0, &self.options); + Ok((Some(https_data), None)) + } + RData::SVCB(svcb) => { + let svcb_data = format_svcb_record(svcb, &self.options); + Ok((Some(svcb_data), None)) + } + RData::OPT(opt) => { + let parsed = parse_edns_options(opt)?; + let ede_data = parsed.0.iter().map(|entry| EdnsOptionEntry { + opt_code: 15u16, + opt_name: "EDE".to_string(), + opt_data: format!( + "EDE={}({}){}", + entry.info_code(), + entry.purpose().unwrap_or(""), + entry.extra_text().unwrap_or("".to_string()) + ), + }); + let opt_data = parsed + .1 + .into_iter() + .chain(ede_data) + .map(|entry| format!("{}={}", entry.opt_name, entry.opt_data)) + .collect::>() + .join(","); + Ok((Some(opt_data), None)) + } + RData::DNSSEC(dnssec) => match dnssec { + // See https://tools.ietf.org/html/rfc4034 for details + // on dnssec related rdata formats + DNSSECRData::CDS(cds) => Ok((Some(format_ds_record(cds.deref())), None)), + DNSSECRData::DS(ds) => Ok((Some(format_ds_record(ds)), None)), + DNSSECRData::CDNSKEY(cdnskey) => { + Ok((Some(format_dnskey_record(cdnskey.deref())), None)) + } + DNSSECRData::DNSKEY(dnskey) => Ok((Some(format_dnskey_record(dnskey)), None)), + DNSSECRData::NSEC(nsec) => { + let nsec_rdata = format!( + "{} {}", + nsec.next_domain_name() + .to_string_with_options(&self.options), + nsec.type_bit_maps() + .iter() + .flat_map(|e| format_record_type(*e)) + .collect::>() + .join(" ") + ); + Ok((Some(nsec_rdata), None)) + } + DNSSECRData::NSEC3(nsec3) => { + let nsec3_rdata = format!( + "{} {} {} {} {} {}", + u8::from(nsec3.hash_algorithm()), + nsec3.opt_out() as u8, + nsec3.iterations(), + HEXUPPER.encode(nsec3.salt()), + BASE32HEX_NOPAD.encode(nsec3.next_hashed_owner_name()), + nsec3 + .type_bit_maps() + .iter() + .flat_map(|e| format_record_type(*e)) + .collect::>() + .join(" ") + ); + Ok((Some(nsec3_rdata), None)) + } + DNSSECRData::NSEC3PARAM(nsec3param) => { + let nsec3param_rdata = format!( + "{} {} {} {}", + u8::from(nsec3param.hash_algorithm()), + nsec3param.opt_out() as u8, + nsec3param.iterations(), + HEXUPPER.encode(nsec3param.salt()), + ); + Ok((Some(nsec3param_rdata), None)) + } + + DNSSECRData::SIG(sig) => { + let sig_rdata = format!( + "{} {} {} {} {} {} {} {} {}", + match format_record_type(sig.type_covered()) { + Some(record_type) => record_type, + None => String::from("Unknown record type"), + }, + u8::from(sig.algorithm()), + sig.num_labels(), + sig.original_ttl(), + sig.sig_expiration(), // currently in epoch convert to human readable ? + sig.sig_inception(), // currently in epoch convert to human readable ? + sig.key_tag(), + sig.signer_name().to_string_with_options(&self.options), + BASE64.encode(sig.sig()) + ); + Ok((Some(sig_rdata), None)) + } + // RSIG is a derivation of SIG but choosing to keep this duplicate code in lieu of the alternative + // which is to allocate to the heap with Box in order to deref. + DNSSECRData::RRSIG(sig) => { + let sig_rdata = format!( + "{} {} {} {} {} {} {} {} {}", + match format_record_type(sig.type_covered()) { + Some(record_type) => record_type, + None => String::from("Unknown record type"), + }, + u8::from(sig.algorithm()), + sig.num_labels(), + sig.original_ttl(), + sig.sig_expiration(), // currently in epoch convert to human readable ? + sig.sig_inception(), // currently in epoch convert to human readable ? + sig.key_tag(), + sig.signer_name().to_string_with_options(&self.options), + BASE64.encode(sig.sig()) + ); + Ok((Some(sig_rdata), None)) + } + DNSSECRData::KEY(key) => { + let key_rdata = format!( + "{} {} {} {}", + key.flags(), + u8::from(key.protocol()), + u8::from(key.algorithm()), + BASE64.encode(key.public_key()) + ); + Ok((Some(key_rdata), None)) + } + DNSSECRData::Unknown { code: _, rdata } => { + Ok((None, Some(rdata.anything().to_vec()))) + } + _ => Err(DnsMessageParserError::SimpleError { + cause: format!("Unsupported rdata {:?}", rdata), + }), + }, + _ => Err(DnsMessageParserError::SimpleError { + cause: format!("Unsupported rdata {:?}", rdata), + }), + } + } + + fn parse_domain_name( + decoder: &mut BinDecoder<'_>, + options: &DnsParserOptions, + ) -> DnsParserResult { + parse_domain_name(decoder).map(|n| n.to_string_with_options(options)) + } +} + +fn format_record_type(record_type: RecordType) -> Option { + match record_type { + RecordType::Unknown(code) => parse_unknown_record_type(code), + _ => Some(record_type.to_string()), + } +} + +fn format_svcb_record(svcb: &SVCB, options: &DnsParserOptions) -> String { + format!( + "{} {} {}", + svcb.svc_priority(), + svcb.target_name().to_string_with_options(options), + svcb.svc_params() + .iter() + .map(|(key, value)| format!(r#"{}="{}""#, key, value.to_string().trim_end_matches(','))) + .collect::>() + .join(" ") + ) +} + +fn format_dnskey_record(dnskey: &DNSKEY) -> String { + format!( + "{} 3 {} {}", + { + if dnskey.revoke() { + 0b0000_0000_0000_0000 + } else if dnskey.zone_key() && dnskey.secure_entry_point() { + 0b0000_0001_0000_0001 + } else { + 0b0000_0001_0000_0000 + } + }, + u8::from(dnskey.algorithm()), + BASE64.encode(dnskey.public_key()) + ) +} + +fn format_ds_record(ds: &DS) -> String { + format!( + "{} {} {} {}", + ds.key_tag(), + u8::from(ds.algorithm()), + u8::from(ds.digest_type()), + HEXUPPER.encode(ds.digest()) + ) +} + +fn parse_response_code(rcode: u16) -> Option<&'static str> { + match rcode { + 0 => Some("NoError"), // 0 NoError No Error [RFC1035] + 1 => Some("FormErr"), // 1 FormErr Format Error [RFC1035] + 2 => Some("ServFail"), // 2 ServFail Server Failure [RFC1035] + 3 => Some("NXDomain"), // 3 NXDomain Non-Existent Domain [RFC1035] + 4 => Some("NotImp"), // 4 NotImp Not Implemented [RFC1035] + 5 => Some("Refused"), // 5 Refused Query Refused [RFC1035] + 6 => Some("YXDomain"), // 6 YXDomain Name Exists when it should not [RFC2136][RFC6672] + 7 => Some("YXRRSet"), // 7 YXRRSet RR Set Exists when it should not [RFC2136] + 8 => Some("NXRRSet"), // 8 NXRRSet RR Set that should exist does not [RFC2136] + 9 => Some("NotAuth"), // 9 NotAuth Server Not Authoritative for zone [RFC2136] + 10 => Some("NotZone"), // 10 NotZone Name not contained in zone [RFC2136] + // backwards compat for 4 bit ResponseCodes so far. + // 16 BADVERS Bad OPT Version [RFC6891] + 16 => Some("BADSIG"), // 16 BADSIG TSIG Signature Failure [RFC2845] + 17 => Some("BADKEY"), // 17 BADKEY Key not recognized [RFC2845] + 18 => Some("BADTIME"), // 18 BADTIME Signature out of time window [RFC2845] + 19 => Some("BADMODE"), // 19 BADMODE Bad TKEY Mode [RFC2930] + 20 => Some("BADNAME"), // 20 BADNAME Duplicate key name [RFC2930] + 21 => Some("BADALG"), // 21 BADALG Algorithm not supported [RFC2930] + 22 => Some("BADTRUNC"), // 22 BADTRUNC Bad Truncation [RFC4635] + 23 => Some("BADCOOKIE"), // 23 BADCOOKIE (TEMPORARY - registered 2015-07-26, expires 2016-07-26) Bad/missing server cookie [draft-ietf-dnsop-cookies] + _ => None, + } +} + +fn parse_dns_query_message_header(dns_message: &TrustDnsMessage) -> QueryHeader { + QueryHeader { + id: dns_message.header().id(), + opcode: dns_message.header().op_code().into(), + rcode: dns_message.header().response_code(), + qr: dns_message.header().message_type() as u8, + aa: dns_message.header().authoritative(), + tc: dns_message.header().truncated(), + rd: dns_message.header().recursion_desired(), + ra: dns_message.header().recursion_available(), + ad: dns_message.header().authentic_data(), + cd: dns_message.header().checking_disabled(), + question_count: dns_message.header().query_count(), + answer_count: dns_message.header().answer_count(), + authority_count: dns_message.header().name_server_count(), + additional_count: dns_message.header().additional_count(), + } +} + +fn parse_dns_update_message_header(dns_message: &TrustDnsMessage) -> UpdateHeader { + UpdateHeader { + id: dns_message.header().id(), + opcode: dns_message.header().op_code().into(), + rcode: dns_message.header().response_code(), + qr: dns_message.header().message_type() as u8, + zone_count: dns_message.header().query_count(), + prerequisite_count: dns_message.header().answer_count(), + update_count: dns_message.header().name_server_count(), + additional_count: dns_message.header().additional_count(), + } +} + +fn parse_edns(dns_message: &TrustDnsMessage) -> Option> { + dns_message.extensions().as_ref().map(|edns| { + parse_edns_options(edns.options()).map(|(ede, rest)| OptPseudoSection { + extended_rcode: edns.rcode_high(), + version: edns.version(), + dnssec_ok: edns.dnssec_ok(), + udp_max_payload_size: edns.max_payload(), + ede, + options: rest, + }) + }) +} + +fn parse_edns_options(edns: &OPT) -> DnsParserResult<(Vec, Vec)> { + let ede_opts: Vec = edns + .as_ref() + .iter() + .filter_map(|(_, option)| { + if let EdnsOption::Unknown(EDE_OPTION_CODE, option) = option { + Some( + EDE::from_bytes(option) + .map_err(|source| DnsMessageParserError::TrustDnsError { source }), + ) + } else { + None + } + }) + .collect::, DnsMessageParserError>>()?; + + let rest: Vec = edns + .as_ref() + .iter() + .filter(|(&code, _)| u16::from(code) != EDE_OPTION_CODE) + .map(|(code, option)| match option { + EdnsOption::DAU(algorithms) + | EdnsOption::DHU(algorithms) + | EdnsOption::N3U(algorithms) => { + Ok(parse_edns_opt_dnssec_algorithms(*code, *algorithms)) + } + EdnsOption::Unknown(_, opt_data) => Ok(parse_edns_opt(*code, opt_data)), + option => Vec::::try_from(option) + .map(|bytes| parse_edns_opt(*code, &bytes)) + .map_err(|source| DnsMessageParserError::TrustDnsError { source }), + }) + .collect::, DnsMessageParserError>>()?; + + Ok((ede_opts, rest)) +} + +fn parse_edns_opt_dnssec_algorithms( + opt_code: EdnsCode, + algorithms: SupportedAlgorithms, +) -> EdnsOptionEntry { + let algorithm_names: Vec = algorithms.iter().map(|alg| alg.to_string()).collect(); + EdnsOptionEntry { + opt_code: Into::::into(opt_code), + opt_name: format!("{:?}", opt_code), + opt_data: algorithm_names.join(" "), + } +} + +fn parse_edns_opt(opt_code: EdnsCode, opt_data: &[u8]) -> EdnsOptionEntry { + EdnsOptionEntry { + opt_code: Into::::into(opt_code), + opt_name: format!("{:?}", opt_code), + opt_data: BASE64.encode(opt_data), + } +} + +fn parse_loc_rdata_size(data: u8) -> DnsParserResult { + let base = (data & 0xF0) >> 4; + if base > 9 { + return Err(DnsMessageParserError::SimpleError { + cause: format!("The base shouldn't be greater than 9. Base: {}", base), + }); + } + + let exponent = data & 0x0F; + if exponent > 9 { + return Err(DnsMessageParserError::SimpleError { + cause: format!( + "The exponent shouldn't be greater than 9. Exponent: {}", + exponent + ), + }); + } + + let ten: u64 = 10; + let ans = (base as f64) * ten.pow(exponent as u32) as f64; + Ok(ans / 100.0) // convert cm to metre +} + +fn parse_loc_rdata_coordinates(coordinates: u32, dir: &str) -> String { + let degree = (coordinates as i64 - 0x8000_0000) as f64 / 3_600_000.00; + let minute = degree.fract() * 60.0; + let second = minute.fract() * 60.0; + + format!( + "{} {} {:.3} {}", + degree.trunc().abs(), + minute.trunc().abs(), + second.abs(), + dir + ) +} + +fn parse_character_string(decoder: &mut BinDecoder<'_>) -> DnsParserResult { + let raw_len = decoder + .read_u8() + .map_err(|source| DnsMessageParserError::TrustDnsError { + source: ProtoError::from(source), + })?; + let len = raw_len.unverified() as usize; + let raw_text = + decoder + .read_slice(len) + .map_err(|source| DnsMessageParserError::TrustDnsError { + source: ProtoError::from(source), + })?; + match raw_text.verify_unwrap(|r| r.len() == len) { + Ok(verified_text) => Ok(String::from_utf8_lossy(verified_text).to_string()), + Err(raw_data) => Err(DnsMessageParserError::SimpleError { + cause: format!( + "Unexpected data length: expected {}, got {}. Raw data {}", + len, + raw_data.len(), + format_bytes_as_hex_string(raw_data) + ), + }), + } +} + +fn parse_u8(decoder: &mut BinDecoder<'_>) -> DnsParserResult { + Ok(decoder + .read_u8() + .map_err(|source| DnsMessageParserError::TrustDnsError { + source: ProtoError::from(source), + })? + .unverified()) +} + +fn parse_u16(decoder: &mut BinDecoder<'_>) -> DnsParserResult { + Ok(decoder + .read_u16() + .map_err(|source| DnsMessageParserError::TrustDnsError { + source: ProtoError::from(source), + })? + .unverified()) +} + +fn parse_u32(decoder: &mut BinDecoder<'_>) -> DnsParserResult { + Ok(decoder + .read_u32() + .map_err(|source| DnsMessageParserError::TrustDnsError { + source: ProtoError::from(source), + })? + .unverified()) +} + +fn parse_vec(decoder: &mut BinDecoder<'_>, buffer_len: u8) -> DnsParserResult> { + let len = buffer_len as usize; + Ok(decoder + .read_vec(len) + .map_err(|source| DnsMessageParserError::TrustDnsError { + source: ProtoError::from(source), + })? + .unverified()) +} + +fn parse_vec_with_u16_len( + decoder: &mut BinDecoder<'_>, + buffer_len: u16, +) -> DnsParserResult> { + let len = buffer_len as usize; + Ok(decoder + .read_vec(len) + .map_err(|source| DnsMessageParserError::TrustDnsError { + source: ProtoError::from(source), + })? + .unverified()) +} + +fn parse_ipv6_address(decoder: &mut BinDecoder<'_>) -> DnsParserResult { + Ok(::read(decoder) + .map_err(|source| DnsMessageParserError::TrustDnsError { source })? + .to_string()) +} + +fn parse_ipv4_address(decoder: &mut BinDecoder<'_>) -> DnsParserResult { + Ok(::read(decoder) + .map_err(|source| DnsMessageParserError::TrustDnsError { source })? + .to_string()) +} + +fn parse_domain_name(decoder: &mut BinDecoder<'_>) -> DnsParserResult { + Name::read(decoder).map_err(|source| DnsMessageParserError::TrustDnsError { source }) +} + +fn escape_string_for_text_representation(original_string: String) -> String { + original_string.replace('\\', "\\\\").replace('\"', "\\\"") +} + +fn parse_unknown_record_type(rtype: u16) -> Option { + match rtype { + 1 => Some(String::from("A")), + 2 => Some(String::from("NS")), + 3 => Some(String::from("MD")), + 4 => Some(String::from("MF")), + 5 => Some(String::from("CNAME")), + 6 => Some(String::from("SOA")), + 7 => Some(String::from("MB")), + 8 => Some(String::from("MG")), + 9 => Some(String::from("MR")), + 10 => Some(String::from("NULL")), + 11 => Some(String::from("WKS")), + 12 => Some(String::from("PTR")), + 13 => Some(String::from("HINFO")), + 14 => Some(String::from("MINFO")), + 15 => Some(String::from("MX")), + 16 => Some(String::from("TXT")), + 17 => Some(String::from("RP")), + 18 => Some(String::from("AFSDB")), + 19 => Some(String::from("X25")), + 20 => Some(String::from("ISDN")), + 21 => Some(String::from("RT")), + 22 => Some(String::from("NSAP")), + 23 => Some(String::from("NSAP-PTR")), + 24 => Some(String::from("SIG")), + 25 => Some(String::from("KEY")), + 26 => Some(String::from("PX")), + 27 => Some(String::from("GPOS")), + 28 => Some(String::from("AAAA")), + 29 => Some(String::from("LOC")), + 30 => Some(String::from("NXT")), + 31 => Some(String::from("EID")), + 32 => Some(String::from("NIMLOC")), + 33 => Some(String::from("SRV")), + 34 => Some(String::from("ATMA")), + 35 => Some(String::from("NAPTR")), + 36 => Some(String::from("KX")), + 37 => Some(String::from("CERT")), + 38 => Some(String::from("A6")), + 39 => Some(String::from("DNAME")), + 40 => Some(String::from("SINK")), + 41 => Some(String::from("OPT")), + 42 => Some(String::from("APL")), + 43 => Some(String::from("DS")), + 44 => Some(String::from("SSHFP")), + 45 => Some(String::from("IPSECKEY")), + 46 => Some(String::from("RRSIG")), + 47 => Some(String::from("NSEC")), + 48 => Some(String::from("DNSKEY")), + 49 => Some(String::from("DHCID")), + 50 => Some(String::from("NSEC3")), + 51 => Some(String::from("NSEC3PARAM")), + 52 => Some(String::from("TLSA")), + 53 => Some(String::from("SMIMEA")), + 55 => Some(String::from("HIP")), + 56 => Some(String::from("NINFO")), + 57 => Some(String::from("RKEY")), + 58 => Some(String::from("TALINK")), + 59 => Some(String::from("CDS")), + 60 => Some(String::from("CDNSKEY")), + 61 => Some(String::from("OPENPGPKEY")), + 62 => Some(String::from("CSYNC")), + 63 => Some(String::from("ZONEMD")), + 99 => Some(String::from("SPF")), + 100 => Some(String::from("UINFO")), + 101 => Some(String::from("UID")), + 102 => Some(String::from("GID")), + 103 => Some(String::from("UNSPEC")), + 104 => Some(String::from("NID")), + 105 => Some(String::from("L32")), + 106 => Some(String::from("L64")), + 107 => Some(String::from("LP")), + 108 => Some(String::from("EUI48")), + 109 => Some(String::from("EUI64")), + 249 => Some(String::from("TKEY")), + 250 => Some(String::from("TSIG")), + 251 => Some(String::from("IXFR")), + 252 => Some(String::from("AXFR")), + 253 => Some(String::from("MAILB")), + 254 => Some(String::from("MAILA")), + 255 => Some(String::from("ANY")), + 256 => Some(String::from("URI")), + 257 => Some(String::from("CAA")), + 258 => Some(String::from("AVC")), + 259 => Some(String::from("DOA")), + 260 => Some(String::from("AMTRELAY")), + 32768 => Some(String::from("TA")), + 32769 => Some(String::from("DLV")), + + _ => None, + } +} + +fn format_bytes_as_hex_string(bytes: &[u8]) -> String { + bytes + .iter() + .map(|e| format!("{:02X}", e)) + .collect::>() + .join(".") +} + +#[cfg(test)] +mod tests { + use std::{ + collections::HashMap, + net::{Ipv4Addr, Ipv6Addr}, + str::FromStr, + }; + + #[allow(deprecated)] + use hickory_proto::rr::{ + dnssec::{ + rdata::{ + dnskey::DNSKEY, + ds::DS, + key::{KeyTrust, KeyUsage, Protocol, UpdateScope}, + nsec::NSEC, + nsec3::NSEC3, + nsec3param::NSEC3PARAM, + sig::SIG, + DNSSECRData, KEY, RRSIG, + }, + Algorithm as DNSSEC_Algorithm, DigestType, Nsec3HashAlgorithm, + }, + domain::Name, + rdata::{ + caa::KeyValue, + sshfp::{Algorithm, FingerprintType}, + svcb, + tlsa::{CertUsage, Matching, Selector}, + CAA, CSYNC, HINFO, HTTPS, NAPTR, OPT, SSHFP, TLSA, TXT, + }, + }; + use hickory_proto::serialize::binary::Restrict; + + use super::*; + + impl DnsMessageParser { + pub fn raw_message_for_rdata_parsing(&self) -> Option<&Vec> { + self.raw_message_for_rdata_parsing.as_ref() + } + } + + fn format_rdata(rdata: &RData) -> DnsParserResult<(Option, Option>)> { + DnsMessageParser::new(Vec::new()).format_rdata(rdata) + } + + fn format_rdata_with_options( + rdata: &RData, + options: DnsParserOptions, + ) -> DnsParserResult<(Option, Option>)> { + DnsMessageParser::with_options(Vec::new(), options).format_rdata(rdata) + } + + #[test] + fn test_parse_as_query_message() { + let raw_dns_message = "szgAAAABAAAAAAAAAmg1B2V4YW1wbGUDY29tAAAGAAE="; + let raw_query_message = BASE64 + .decode(raw_dns_message.as_bytes()) + .expect("Invalid base64 encoded data."); + let parse_result = DnsMessageParser::new(raw_query_message).parse_as_query_message(); + assert!(parse_result.is_ok()); + let message = parse_result.expect("Message is not parsed."); + assert_eq!(message.header.qr, 0); + assert_eq!(message.question_section.len(), 1); + assert_eq!( + message.question_section.first().unwrap().name, + "h5.example.com." + ); + assert_eq!( + &message + .question_section + .first() + .unwrap() + .record_type + .clone() + .unwrap(), + "SOA" + ); + } + + #[test] + fn test_parse_as_query_message_with_ede() { + let raw_dns_message = + "szgAAAABAAAAAAABAmg1B2V4YW1wbGUDY29tAAAGAAEAACkE0AEBQAAABgAPAAIAFQ=="; + let raw_query_message = BASE64 + .decode(raw_dns_message.as_bytes()) + .expect("Invalid base64 encoded data."); + let parse_result = DnsMessageParser::new(raw_query_message).parse_as_query_message(); + assert!(parse_result.is_ok()); + let message = parse_result.expect("Message is not parsed."); + let opt_pseudo_section = message.opt_pseudo_section.expect("OPT section was missing"); + assert_eq!(opt_pseudo_section.ede.len(), 1); + assert_eq!(opt_pseudo_section.ede[0].info_code(), 21u16); + assert_eq!(opt_pseudo_section.ede[0].purpose(), Some("Not Supported")); + assert_eq!(opt_pseudo_section.ede[0].extra_text(), None); + } + + #[test] + fn test_parse_as_query_message_with_ede_with_extra_text() { + let raw_dns_message = + "szgAAAABAAAAAAABAmg1B2V4YW1wbGUDY29tAAAGAAEAACkE0AEBQAAAOQAPADUACW5vIFNFUCBtYXRjaGluZyB0aGUgRFMgZm91bmQgZm9yIGRuc3NlYy1mYWlsZWQub3JnLg=="; + let raw_query_message = BASE64 + .decode(raw_dns_message.as_bytes()) + .expect("Invalid base64 encoded data."); + let parse_result = DnsMessageParser::new(raw_query_message).parse_as_query_message(); + assert!(parse_result.is_ok()); + let message = parse_result.expect("Message is not parsed."); + let opt_pseudo_section = message.opt_pseudo_section.expect("OPT section was missing"); + assert_eq!(opt_pseudo_section.ede.len(), 1); + assert_eq!(opt_pseudo_section.ede[0].info_code(), 9u16); + assert_eq!(opt_pseudo_section.ede[0].purpose(), Some("DNSKEY Missing")); + assert_eq!( + opt_pseudo_section.ede[0].extra_text(), + Some("no SEP matching the DS found for dnssec-failed.org.".to_string()) + ); + } + + #[test] + fn test_parse_as_query_message_with_invalid_data() { + let err = DnsMessageParser::new(vec![1, 2, 3]) + .parse_as_query_message() + .expect_err("Expected TrustDnsError."); + match err { + DnsMessageParserError::TrustDnsError { source: e } => { + assert_eq!(e.to_string(), "unexpected end of input reached") + } + DnsMessageParserError::SimpleError { cause: e } => { + panic!("Expected TrustDnsError, got {}.", &e) + } + _ => panic!("{}.", err), + } + } + + #[test] + fn test_parse_as_query_message_with_unsupported_rdata() { + let raw_query_message_base64 = "eEaFgAABAAEAAAAABGRvYTEHZXhhbXBsZQNjb20AAQMAAcAMAQMAAQAADhAAIAAAAAAAAAAAAgIiImh0dHBzOi8vd3d3LmlzYy5vcmcv"; + let raw_query_message = BASE64 + .decode(raw_query_message_base64.as_bytes()) + .expect("Invalid base64 encoded data."); + let dns_query_message = DnsMessageParser::new(raw_query_message) + .parse_as_query_message() + .expect("Invalid DNS query message."); + assert_eq!(dns_query_message.answer_section[0].rdata, None); + assert_ne!(dns_query_message.answer_section[0].rdata_bytes, None); + } + + #[test] + fn test_parse_response_with_https_rdata() { + let raw_response_message_base64 = "Oe2BgAABAAEAAAABBGNkbnAHc2FuamFnaANjb20AAEEAAcAMAEEAAQAAASwAPQABAAABAAYCaDMCaDIABAAIrEDEHKxAxRwABgAgJgZHAADmAAAAAAAArEDEHCYGRwAA5gAAAAAAAKxAxRwAACkE0AAAAAAAHAAKABjWOVAgEGik/gEAAABlwiAuXkvEOviB1sk="; + let raw_response_message = BASE64 + .decode(raw_response_message_base64.as_bytes()) + .expect("Invalid base64 encoded data."); + let dns_response_message = DnsMessageParser::new(raw_response_message) + .parse_as_query_message() + .expect("Invalid DNS query message."); + assert_eq!( + dns_response_message.answer_section[0].rdata, + Some(r#"1 . alpn="h3,h2" ipv4hint="172.64.196.28,172.64.197.28" ipv6hint="2606:4700:e6::ac40:c41c,2606:4700:e6::ac40:c51c""#.to_string()) + ); + assert_eq!(dns_response_message.answer_section[0].record_type_id, 65u16); + assert_eq!(dns_response_message.answer_section[0].rdata_bytes, None); + } + + #[test] + fn test_parse_response_with_hinfo_rdata() { + let raw_response_message_base64 = + "wS2BgAABAAEAAAAAB3RyYWNrZXIEZGxlcgNvcmcAAP8AAcAMAA0AAQAAC64ACQdSRkM4NDgyAA=="; + let raw_response_message = BASE64 + .decode(raw_response_message_base64.as_bytes()) + .expect("Invalid base64 encoded data."); + let dns_response_message = DnsMessageParser::new(raw_response_message) + .parse_as_query_message() + .expect("Invalid DNS query message."); + assert_eq!( + dns_response_message.answer_section[0].rdata, + Some(r#""RFC8482" """#.to_string()) + ); + assert_eq!(dns_response_message.answer_section[0].record_type_id, 13u16); + assert_eq!(dns_response_message.answer_section[0].rdata_bytes, None); + } + + #[test] + fn test_format_bytes_as_hex_string() { + assert_eq!( + "01.02.03.AB.CD.EF", + &format_bytes_as_hex_string(&[1, 2, 3, 0xab, 0xcd, 0xef]) + ); + } + + #[test] + fn test_parse_unknown_record_type() { + assert_eq!("A", parse_unknown_record_type(1).unwrap()); + assert_eq!("ANY", parse_unknown_record_type(255).unwrap()); + assert!(parse_unknown_record_type(22222).is_none()); + } + + #[test] + fn test_parse_as_update_message_failure() { + let raw_dns_message = "ChVqYW1lcy1WaXJ0dWFsLU1hY2hpbmUSC0JJTkQgOS4xNi4zcq0ICAQQARgBIgSs\ + FDetKgTAN1MeMMn/Ajg1QL6m6fcFTQLEKhVS+QMSSIIAAAEAAAAFAAUJZmFjZWJvb2sxA2NvbQAAAQABwAwAAgABAAKjA\ + AAPA25zMQhyZW50b25kY8AWwAwAAgABAAKjAAAGA25zMsAvIENLMFBPSk1HODc0TEpSRUY3RUZOODQzMFFWSVQ4QlNNwB\ + YAMgABAAFRgAAjAQEAAAAUZQGgwlcg7hVvbE45Y2s62gMS2SoAByIAAAAAApDATAAuAAEAAVGAALcAMggCAAFRgF8ACGF\ + e9r15m6QDY29tAFOih16McCzogcR6RZIu3kqZa27Bo1jtfzwzDENJIZItSCRuLqRO6oA90sCLItOEQv0skpQKtJQXmTZU\ + nqe3XK+1t/Op8G9cmeMXgCvynTJmm0WouSv+SuwBOjgqCaNuWpwbiIcaXY/NlId1lPpl8LJyTIRtFqGifW0FnYFe/Lzs3\ + pfZLoKMAG4/8Upqqv4F+Ij1oue1C6KWe0hn+beIKkIgN0pLMjVFTUhITThBMDFNTzBBRVFRTjdHMlVQSjI4NjfAFgAyAA\ + EAAVGAACIBAQAAABQ86ELf24DH1kAfgQ4dyyuf0+6y5wAGIAAAAAASwCsAAQABAAKjAAAEbD0TCsArAAEAAQACowAABKx\ + iwCLARgABAAEAAqMAAAQuprYzwEYAAQABAAKjAAAEXXMcaAAAKRAAAACAAAAAWgUDY29tAGC+pun3BW2/LUQYcvkDEkiC\ + AAABAAAABQAFCWZhY2Vib29rMQNjb20AAAEAAcAMAAIAAQACowAADwNuczEIcmVudG9uZGPAFsAMAAIAAQACowAABgNuc\ + zLALyBDSzBQT0pNRzg3NExKUkVGN0VGTjg0MzBRVklUOEJTTcAWADIAAQABUYAAIwEBAAAAFGUBoMJXIO4Vb2xOOWNrOt\ + oDEtkqAAciAAAAAAKQwEwALgABAAFRgAC3ADIIAgABUYBfAAhhXva9eZukA2NvbQBToodejHAs6IHEekWSLt5KmWtuwaN\ + Y7X88MwxDSSGSLUgkbi6kTuqAPdLAiyLThEL9LJKUCrSUF5k2VJ6nt1yvtbfzqfBvXJnjF4Ar8p0yZptFqLkr/krsATo4\ + KgmjblqcG4iHGl2PzZSHdZT6ZfCyckyEbRahon1tBZ2BXvy87N6X2S6CjABuP/FKaqr+BfiI9aLntQuilntIZ/m3iCpCI\ + DdKSzI1RU1ISE04QTAxTU8wQUVRUU43RzJVUEoyODY3wBYAMgABAAFRgAAiAQEAAAAUPOhC39uAx9ZAH4EOHcsrn9Pusu\ + cABiAAAAAAEsArAAEAAQACowAABGw9EwrAKwABAAEAAqMAAASsYsAiwEYAAQABAAKjAAAELqa2M8BGAAEAAQACowAABF1\ + zHGgAACkQAAAAgAAAAHgB"; + let raw_update_message = BASE64 + .decode(raw_dns_message.as_bytes()) + .expect("Invalid base64 encoded data."); + assert!(DnsMessageParser::new(raw_update_message) + .parse_as_update_message() + .is_err()); + } + + #[test] + fn test_parse_as_update_message() { + let raw_dns_message = "xjUoAAABAAAAAQAAB2V4YW1wbGUDY29tAAAGAAECaDXADAD/AP8AAAAAAAA="; + let raw_update_message = BASE64 + .decode(raw_dns_message.as_bytes()) + .expect("Invalid base64 encoded data."); + let parse_result = DnsMessageParser::new(raw_update_message).parse_as_update_message(); + assert!(parse_result.is_ok()); + let message = parse_result.expect("Message is not parsed."); + assert_eq!(message.header.qr, 0); + assert_eq!(message.update_section.len(), 1); + assert_eq!(message.update_section.first().unwrap().class, "ANY"); + assert_eq!(&message.zone_to_update.zone_type.clone().unwrap(), "SOA"); + assert_eq!(message.zone_to_update.name, "example.com."); + } + + #[test] + fn test_parse_loc_rdata_size() { + let data: u8 = 51; + let expected: f64 = 30.0; + assert!((expected - parse_loc_rdata_size(data).unwrap()).abs() < f64::EPSILON); + + let data: u8 = 22; + let expected: f64 = 10000.0; + assert!((expected - parse_loc_rdata_size(data).unwrap()).abs() < f64::EPSILON); + + let data: u8 = 19; + let expected: f64 = 10.0; + assert!((expected - parse_loc_rdata_size(data).unwrap()).abs() < f64::EPSILON); + } + + #[test] + fn test_parse_loc_rdata_coordinates() { + let coordinates: u32 = 2299997648; + let dir = "N"; + let expected = String::from("42 21 54.000 N"); + assert_eq!(expected, parse_loc_rdata_coordinates(coordinates, dir)); + + let coordinates: u32 = 1891505648; + let dir = "W"; + let expected = String::from("71 6 18.000 W"); + assert_eq!(expected, parse_loc_rdata_coordinates(coordinates, dir)); + } + + #[test] + fn test_format_rdata_for_a_type() { + let rdata = RData::A(Ipv4Addr::from_str("1.2.3.4").unwrap().into()); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("1.2.3.4", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_aaaa_type() { + let rdata = RData::AAAA(Ipv6Addr::from_str("2001::1234").unwrap().into()); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("2001::1234", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_cname_type() { + let rdata = RData::CNAME(hickory_proto::rr::rdata::CNAME( + Name::from_str("www.example.com.").unwrap(), + )); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("www.example.com.", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_cname_type_downcase() { + let rdata = RData::CNAME(hickory_proto::rr::rdata::CNAME( + Name::from_str("WWW.Example.Com.").unwrap(), + )); + let rdata_text = format_rdata_with_options( + &rdata, + DnsParserOptions { + lowercase_hostnames: true, + }, + ); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("www.example.com.", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_txt_type() { + let rdata = RData::TXT(TXT::new(vec![ + "abc\"def".to_string(), + "gh\\i".to_string(), + "".to_string(), + "j".to_string(), + ])); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!(r#""abc\"def" "gh\\i" "" "j""#, parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_caa_type() { + let rdata1 = RData::CAA(CAA::new_issue( + true, + Some(Name::parse("example.com", None).unwrap()), + vec![], + )); + let rdata2 = RData::CAA(CAA::new_issue( + true, + Some(Name::parse("example.com", None).unwrap()), + vec![KeyValue::new("key", "value")], + )); + let rdata_text1 = format_rdata(&rdata1); + let rdata_text2 = format_rdata(&rdata2); + + assert!(rdata_text1.is_ok()); + assert!(rdata_text2.is_ok()); + + if let Ok((parsed, raw_rdata)) = rdata_text1 { + assert!(raw_rdata.is_none()); + assert_eq!("1 issue \"example.com\"", parsed.unwrap()); + } + + if let Ok((parsed, raw_rdata)) = rdata_text2 { + assert!(raw_rdata.is_none()); + assert_eq!("1 issue \"example.com; key=value\"", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_tlsa_type() { + let rdata = RData::TLSA(TLSA::new( + CertUsage::Service, + Selector::Spki, + Matching::Sha256, + vec![1, 2, 3, 4, 5, 6, 7, 8], + )); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("1 1 1 0102030405060708", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_sshfp_type() { + let rdata = RData::SSHFP(SSHFP::new( + Algorithm::ECDSA, + FingerprintType::SHA1, + vec![115, 115, 104, 102, 112], + )); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("3 1 7373686670", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_naptr_type() { + let rdata1 = RData::NAPTR(NAPTR::new( + 8, + 16, + b"aa11AA-".to_vec().into_boxed_slice(), + b"services".to_vec().into_boxed_slice(), + b"regexpr".to_vec().into_boxed_slice(), + Name::from_str("naptr.example.com").unwrap(), + )); + let rdata_text1 = format_rdata(&rdata1); + + let rdata2 = RData::NAPTR(NAPTR::new( + 8, + 16, + b"aa1\"\\1AA-".to_vec().into_boxed_slice(), + b"\\services2\"".to_vec().into_boxed_slice(), + b"re%ge\"xp.r\\".to_vec().into_boxed_slice(), + Name::from_str("naptr.example.com").unwrap(), + )); + let rdata_text2 = format_rdata(&rdata2); + + assert!(rdata_text1.is_ok()); + assert!(rdata_text2.is_ok()); + + if let Ok((parsed, raw_rdata)) = rdata_text1 { + assert!(raw_rdata.is_none()); + assert_eq!( + "8 16 \"aa11AA-\" \"services\" \"regexpr\" naptr.example.com", + parsed.unwrap() + ); + } + + if let Ok((parsed, raw_rdata)) = rdata_text2 { + assert!(raw_rdata.is_none()); + assert_eq!( + "8 16 \"aa1\\\"\\\\1AA-\" \"\\\\services2\\\"\" \"re%ge\\\"xp.r\\\\\" naptr.example.com", + parsed.unwrap() + ); + } + } + + #[test] + fn test_format_rdata_for_dnskey_type() { + let rdata1 = RData::DNSSEC(DNSSECRData::DNSKEY(DNSKEY::new( + true, + true, + false, + DNSSEC_Algorithm::RSASHA256, + vec![0, 1, 2, 3, 4, 5, 6, 7], + ))); + let rdata_text1 = format_rdata(&rdata1); + + let rdata2 = RData::DNSSEC(DNSSECRData::DNSKEY(DNSKEY::new( + true, + false, + false, + DNSSEC_Algorithm::RSASHA256, + vec![0, 1, 2, 3, 4, 5, 6, 7], + ))); + let rdata_text2 = format_rdata(&rdata2); + + let rdata3 = RData::DNSSEC(DNSSECRData::DNSKEY(DNSKEY::new( + true, + true, + true, + DNSSEC_Algorithm::RSASHA256, + vec![0, 1, 2, 3, 4, 5, 6, 7], + ))); + let rdata_text3 = format_rdata(&rdata3); + + assert!(rdata_text1.is_ok()); + assert!(rdata_text2.is_ok()); + assert!(rdata_text3.is_ok()); + + if let Ok((parsed, raw_rdata)) = rdata_text1 { + assert!(raw_rdata.is_none()); + assert_eq!("257 3 8 AAECAwQFBgc=", parsed.unwrap()); + } + if let Ok((parsed, raw_rdata)) = rdata_text2 { + assert!(raw_rdata.is_none()); + assert_eq!("256 3 8 AAECAwQFBgc=", parsed.unwrap()); + } + if let Ok((parsed, raw_rdata)) = rdata_text3 { + assert!(raw_rdata.is_none()); + assert_eq!("0 3 8 AAECAwQFBgc=", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_nsec_type() { + let rdata = RData::DNSSEC(DNSSECRData::NSEC(NSEC::new( + Name::from_str("www.example.com").unwrap(), + vec![RecordType::A, RecordType::AAAA], + ))); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("www.example.com A AAAA", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_nsec3_type() { + let rdata = RData::DNSSEC(DNSSECRData::NSEC3(NSEC3::new( + Nsec3HashAlgorithm::SHA1, + true, + 2, + vec![1, 2, 3, 4, 5], + vec![6, 7, 8, 9, 0], + vec![RecordType::A, RecordType::AAAA], + ))); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("1 1 2 0102030405 0O3GG280 A AAAA", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_nsec3param_type() { + let rdata = RData::DNSSEC(DNSSECRData::NSEC3PARAM(NSEC3PARAM::new( + Nsec3HashAlgorithm::SHA1, + true, + 2, + vec![1, 2, 3, 4, 5], + ))); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("1 1 2 0102030405", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_sig_type() { + let rdata = RData::DNSSEC(DNSSECRData::SIG(SIG::new( + RecordType::NULL, + DNSSEC_Algorithm::RSASHA256, + 0, + 0, + 2, + 1, + 5, + Name::from_str("www.example.com").unwrap(), + vec![ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 29, 31, + ], + ))); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!( + "NULL 8 0 0 2 1 5 www.example.com AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHR8=", + parsed.unwrap() + ); + } + } + + #[test] + fn test_format_rdata_for_key_type() { + let rdata = RData::DNSSEC(DNSSECRData::KEY(KEY::new( + KeyTrust::NotPrivate, + KeyUsage::Host, + #[allow(deprecated)] + UpdateScope { + zone: false, + strong: false, + unique: true, + general: true, + }, + Protocol::DNSSEC, + DNSSEC_Algorithm::RSASHA256, + vec![ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 29, 31, + ], + ))); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!( + "16387 3 8 AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHR8=", + parsed.unwrap() + ); + } + } + + // rsig is a derivation of the SIG record data, but the upstream crate does not handle that with an trait + // so there isn't really a great way to reduce code duplication here. + #[test] + fn test_format_rdata_for_rsig_type() { + let rdata = RData::DNSSEC(DNSSECRData::RRSIG(RRSIG::new( + RecordType::NULL, + DNSSEC_Algorithm::RSASHA256, + 0, + 0, + 2, + 1, + 5, + Name::from_str("www.example.com").unwrap(), + vec![ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 29, 31, + ], + ))); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!( + "NULL 8 0 0 2 1 5 www.example.com AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHR8=", + parsed.unwrap() + ); + } + } + + #[test] + fn test_format_rdata_for_ds_type() { + let rdata = RData::DNSSEC(DNSSECRData::DS(DS::new( + 0xF00F, + DNSSEC_Algorithm::RSASHA256, + DigestType::SHA256, + vec![5, 6, 7, 8], + ))); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("61455 8 2 05060708", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_svcb_type() { + let rdata = RData::SVCB(svcb::SVCB::new( + 1, + Name::root(), + vec![ + ( + svcb::SvcParamKey::Alpn, + svcb::SvcParamValue::Alpn(svcb::Alpn(vec!["h3".to_string(), "h2".to_string()])), + ), + ( + svcb::SvcParamKey::Ipv4Hint, + svcb::SvcParamValue::Ipv4Hint(svcb::IpHint(vec![ + A(Ipv4Addr::new(104, 18, 36, 155)), + A(Ipv4Addr::new(172, 64, 151, 101)), + ])), + ), + ], + )); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!( + r#"1 . alpn="h3,h2" ipv4hint="104.18.36.155,172.64.151.101""#, + parsed.unwrap() + ); + } + } + + #[test] + fn test_format_rdata_for_https_type() { + let rdata = RData::HTTPS(HTTPS(svcb::SVCB::new( + 1, + Name::root(), + vec![ + ( + svcb::SvcParamKey::Alpn, + svcb::SvcParamValue::Alpn(svcb::Alpn(vec!["h3".to_string(), "h2".to_string()])), + ), + ( + svcb::SvcParamKey::Ipv4Hint, + svcb::SvcParamValue::Ipv4Hint(svcb::IpHint(vec![ + A(Ipv4Addr::new(104, 18, 36, 155)), + A(Ipv4Addr::new(172, 64, 151, 101)), + ])), + ), + ], + ))); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!( + r#"1 . alpn="h3,h2" ipv4hint="104.18.36.155,172.64.151.101""#, + parsed.unwrap() + ); + } + } + + #[test] + fn test_format_rdata_for_hinfo_type() { + let rdata = RData::HINFO(HINFO::new("intel".to_string(), "linux".to_string())); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!(r#""intel" "linux""#, parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_csync_type() { + let types = vec![RecordType::A, RecordType::NS, RecordType::AAAA]; + let rdata = RData::CSYNC(CSYNC::new(123, true, true, types)); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("123 3 A NS AAAA", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_opt_type() { + let mut options = HashMap::new(); + options.insert( + EdnsCode::LLQ, + EdnsOption::Unknown(u16::from(EdnsCode::LLQ), vec![0x01; 18]), + ); + let rdata = RData::OPT(OPT::new(options)); + let rdata_text = format_rdata(&rdata); + assert!(rdata_text.is_ok()); + if let Ok((parsed, raw_rdata)) = rdata_text { + assert!(raw_rdata.is_none()); + assert_eq!("LLQ=AQEBAQEBAQEBAQEBAQEBAQEB", parsed.unwrap()); + } + } + + #[test] + fn test_format_rdata_for_minfo_type() { + test_format_rdata_with_compressed_domain_names( + "5ZWBgAABAAEAAAABBm1pbmZvbwhleGFtcGxlMQNjb20AAA4AAcAMAA4AAQAADGsADQRmcmVkwBMDam9lwBMAACkQAAAAAAAAHAAKABgZ5zwJEK3VJQEAAABfSBqpS2bKf9CNBXg=", + "BGZyZWTAEwNqb2XAEw==", + 14, + "fred.example1.com. joe.example1.com." + ); + } + + #[test] + fn test_format_rdata_for_mb_type() { + test_format_rdata_with_compressed_domain_names( + "t8eBgAABAAEAAAABAm1iCGV4YW1wbGUxA2NvbQAABwABwAwABwABAAAA5AAJBmFhYmJjY8APAA\ + ApEAAAAAAAABwACgAYedbJkVVpMhsBAAAAX0U+y6UJQtCd0MuPBmFhYmJjY8AP", + "BmFhYmJjY8AP", + 7, + "aabbcc.example1.com.", + ); + } + + #[test] + fn test_format_rdata_for_mg_type() { + test_format_rdata_with_compressed_domain_names( + "o8ABIAABAAAAAAABAm1nCGV4YW1wbGUxA2NvbQAACAABAAApEAAAAAAAAAwACgAICQ3LVdp9euQ=", + "wAw=", + 8, + "mg.example1.com.", + ); + } + + #[test] + fn test_format_rdata_for_mr_type() { + test_format_rdata_with_compressed_domain_names( + "VWQBIAABAAAAAAABAm1yCGV4YW1wbGUxA2NvbQAACQABAAApEAAAAAAAAAwACgAIaPayFPJ4rmY=", + "wAw=", + 9, + "mr.example1.com.", + ); + } + + #[test] + fn test_format_rdata_for_wks_type() { + test_format_rdata("gAgBDgYAAAFA", 11, "128.8.1.14 6 23 25"); + + test_format_rdata("gAgBDgYAAAE=", 11, "128.8.1.14 6 23"); + } + + #[test] + fn test_format_rdata_for_rp_type() { + test_format_rdata_with_compressed_domain_names( + "Xc0BIAABAAAAAAABAnJwCGV4YW1wbGUxA2NvbQAAEQABAAApEAAAAAAAAAwACgAIMoUjsVrqjwo=", + "BWxvdWllB3RyYW50b3IDdW1kA2VkdQAETEFNMQZwZW9wbGUDdW1kA2VkdQA=", + 17, + "louie.trantor.umd.edu. LAM1.people.umd.edu.", + ); + } + + #[test] + fn test_format_rdata_for_afsdb_type() { + test_format_rdata_with_compressed_domain_names( + "uaMBIAABAAAAAAABBWFmc2RiCGV4YW1wbGUxA2NvbQAAEgABAAApEAAAAAAAAAwACgAINy\ + n/qwKTyVc=", + "AAEHYmlnYmlyZAd0b2FzdGVyA2NvbQA=", + 18, + "1 bigbird.toaster.com.", + ); + } + + #[test] + fn test_format_rdata_for_x25_type() { + test_format_rdata("DDMxMTA2MTcwMDk1Ng==", 19, "\"311061700956\""); + } + + #[test] + fn test_format_rdata_for_isdn_type() { + test_format_rdata("DzE1MDg2MjAyODAwMzIxNw==", 20, "\"150862028003217\""); + } + + #[test] + fn test_format_rdata_for_rt_type() { + test_format_rdata_with_compressed_domain_names( + "K1cBEAABAAAAAAABAnJ0CGV4YW1wbGUxA2NvbQAAFQABAAApAgAAAIAAABwACgAY4Rzxu\ + TfOxRwNw0bSX0VXy7WIF30GJ7DD", + "AAoCYWEHZXhhbXBsZQNjb20A", + 21, + "10 aa.example.com.", + ); + } + + #[test] + fn test_format_rdata_for_nsap_type() { + test_format_rdata( + "RwAFgABaAAAAAAHhM////wABYQA=", + 22, + "0x47000580005A0000000001E133FFFFFF00016100", + ); + } + + #[test] + fn test_format_rdata_for_px_type() { + test_format_rdata_with_compressed_domain_names( + "QF+BgAABAAEAAAABAnB4CGV4YW1wbGUxA2NvbQAAGgABwAwAGgABAAAOEAAlAAoEbmV0\ + MgJpdAAJUFJNRC1uZXQyCUFETUQtcDQwMARDLWl0AAAAKRAAAAAAAAAcAAoAGDnSHBrTcxU1AQAAAF9FWK\ + fIBBM9awy20w==", + "AAoEbmV0MgJpdAAJUFJNRC1uZXQyCUFETUQtcDQwMARDLWl0AA==", + 26, + "10 net2.it. PRMD-net2.ADMD-p400.C-it.", + ); + } + + #[test] + fn test_format_rdata_for_loc_type() { + test_format_rdata( + "ADMWE4kXLdBwvhXwAJiNIA==", + 29, + "42 21 54.000 N 71 6 18.000 W -24.00m 30m 10000m 10m", + ); + } + + #[test] + fn test_format_rdata_for_kx_type() { + test_format_rdata_with_compressed_domain_names( + "E4yBgAABAAEAAAABAmt4CGV4YW1wbGUxA2NvbQAAJAABwAwAJAABAAAOEAASAAoCYWEHZ\ + XhhbXBsZQNjb20AAAApEAAAAAAAABwACgAYohY6RsSf9dsBAAAAX0VY5DfEoTM1iq9G", + "AAoCYWEHZXhhbXBsZQNjb20A", + 36, + "10 aa.example.com.", + ); + } + + #[test] + fn test_format_rdata_for_cert_type() { + test_format_rdata( + "//7//wUzEVxvL2T/K950x9CArOEfl6vQy7+8gvPjkiSyRx4UaCJYKf8bEeFq\ + LpUC4cCg1TPhihTW1V9IJKpBifr//XVTo2V3zSMR4LxpOs74oqYJpg==", + 37, + "65534 65535 RSASHA1 MxFcby9k/yvedMfQgKzhH5er0Mu/vILz4\ + 5IkskceFGgiWCn/GxHhai6VAuHAoNUz4YoU1tVfSCSqQYn6//11U6Nld80jEeC8aTrO+KKmCaY=", + ); + } + + #[test] + fn test_format_rdata_for_a6_type() { + test_format_rdata( + "QBI0VniavN7wCFNVQk5FVC0xA0lQNghleGFtcGxlMQNjb20A", + 38, + "64 ::1234:5678:9abc:def0 SUBNET-1.IP6.example1.com.", + ); + } + + #[test] + fn test_format_rdata_for_sink_type() { + test_format_rdata("AQIDdddd", 40, "1 2 3 dddd"); + } + + #[test] + fn test_format_rdata_for_apl_type() { + test_format_rdata( + "AAEVA8CoIAABHIPAqCY=", + 42, + "1:192.168.32.0/21 !1:192.168.38.0/28", + ); + + test_format_rdata("AAEEAeAAAggB/w==", 42, "1:224.0.0.0/4 2:ff00::/8"); + + test_format_rdata( + "AAEVA8CoIAABHATAqCYsAAEdA8AAJgABHYPAACYAAR2EwAAmCA==", + 42, + "1:192.168.32.0/21 1:192.168.38.44/28 \ + 1:192.0.38.0/29 !1:192.0.38.0/29 !1:192.0.38.8/29", + ); + + test_format_rdata( + "AAEVA8CoIAABHATAqCYsAAEdA8AAJg==", + 42, + "1:192.168.32.0/21 1:192.168.38.44/28 1:192.0.38.0/29", + ); + } + + #[test] + fn test_format_rdata_for_dhcid_type() { + test_format_rdata( + "AAIBY2/AuCccgoJbsaxcQc9TUapptP69lOjxfNuVAA2kjEA=", + 49, + "AAIBY2/AuCccgoJbsaxcQc9TUapptP69lOjxfNuVAA2kjEA=", + ); + } + + #[test] + fn test_format_rdata_for_spf_type() { + test_format_rdata( + "BnY9c3BmMQMrbXgVYTpjb2xvLmV4YW1wbGUuY29tLzI4BC1hbGw=", + 99, + "\"v=spf1\" \"+mx\" \"a:colo.example.com/28\" \"-all\"", + ); + } + + fn test_format_rdata(raw_data: &str, code: u16, expected_output: &str) { + let raw_rdata = BASE64 + .decode(raw_data.as_bytes()) + .expect("Invalid base64 encoded rdata."); + let mut decoder = BinDecoder::new(&raw_rdata); + let record = Record::from_rdata( + Name::new(), + 1, + RData::read( + &mut decoder, + RecordType::from(code), + Restrict::new(raw_rdata.len() as u16), + ) + .unwrap(), + ); + let rdata_text = DnsMessageParser::new(Vec::::new()) + .parse_dns_record(&record) + .map(|r| r.rdata); + assert!(rdata_text.is_ok()); + assert_eq!(expected_output, rdata_text.unwrap().unwrap()); + } + + fn test_format_rdata_with_compressed_domain_names( + raw_message: &str, + raw_data_encoded: &str, + code: u16, + expected_output: &str, + ) { + let raw_message = BASE64 + .decode(raw_message.as_bytes()) + .expect("Invalid base64 encoded raw message."); + let raw_message_len = raw_message.len(); + let mut message_parser = DnsMessageParser::new(raw_message); + let raw_rdata = BASE64 + .decode(raw_data_encoded.as_bytes()) + .expect("Invalid base64 encoded raw rdata."); + for i in 1..=2 { + let record_rdata = NULL::with(raw_rdata.clone()); + let rdata_text = message_parser.format_unknown_rdata(code, &record_rdata); + assert!(rdata_text.is_ok()); + assert_eq!(expected_output, rdata_text.unwrap().0.unwrap()); + assert_eq!( + raw_message_len + i * raw_rdata.len(), + message_parser + .raw_message_for_rdata_parsing() + .unwrap() + .len() + ); + } + } +} diff --git a/lib/dnsmsg-parser/src/ede.rs b/lib/dnsmsg-parser/src/ede.rs new file mode 100644 index 0000000000000..a6c30f5f1348f --- /dev/null +++ b/lib/dnsmsg-parser/src/ede.rs @@ -0,0 +1,94 @@ +use hickory_proto::{ + error::ProtoResult, + serialize::binary::{BinDecodable, BinDecoder, BinEncodable, BinEncoder}, +}; + +pub const EDE_OPTION_CODE: u16 = 15u16; + +#[derive(Debug, Clone)] +pub struct EDE { + info_code: u16, + extra_text: Option, +} + +impl EDE { + pub fn new(info_code: u16, extra_text: Option) -> Self { + Self { + info_code, + extra_text, + } + } + + // https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#extended-dns-error-codes + pub fn purpose(&self) -> Option<&str> { + match self.info_code { + 0 => Some("Other Error"), + 1 => Some("Unsupported DNSKEY Algorithm"), + 2 => Some("Unsupported DS Digest Type"), + 3 => Some("Stale Answer"), + 4 => Some("Forged Answer"), + 5 => Some("DNSSEC Indeterminate"), + 6 => Some("DNSSEC Bogus"), + 7 => Some("Signature Expired"), + 8 => Some("Signature Not Yet Valid"), + 9 => Some("DNSKEY Missing"), + 10 => Some("RRSIGs Missing"), + 11 => Some("No Zone Key Bit Set"), + 12 => Some("NSEC Missing"), + 13 => Some("Cached Error"), + 14 => Some("Not Ready"), + 15 => Some("Blocked"), + 16 => Some("Censored"), + 17 => Some("Filtered"), + 18 => Some("Prohibited"), + 19 => Some("Stale NXDomain Answer"), + 20 => Some("Not Authoritative"), + 21 => Some("Not Supported"), + 22 => Some("No Reachable Authority"), + 23 => Some("Network Error"), + 24 => Some("Invalid Data"), + 25 => Some("Signature Expired before Valid"), + 26 => Some("Too Early"), + 27 => Some("Unsupported NSEC3 Iterations Value"), + 28 => Some("Unable to conform to policy"), + 29 => Some("Synthesized"), + 30 => Some("Invalid Query Type"), + _ => None, + } + } + + pub fn info_code(&self) -> u16 { + self.info_code + } + + pub fn extra_text(&self) -> Option { + self.extra_text.clone() + } +} + +impl BinEncodable for EDE { + fn emit(&self, encoder: &mut BinEncoder<'_>) -> ProtoResult<()> { + encoder.emit_u16(self.info_code)?; + if let Some(extra_text) = &self.extra_text { + encoder.emit_vec(extra_text.as_bytes())?; + } + Ok(()) + } +} + +impl<'a> BinDecodable<'a> for EDE { + fn read(decoder: &mut BinDecoder<'a>) -> ProtoResult { + let info_code = decoder.read_u16()?.unverified(); + let extra_text = if decoder.is_empty() { + None + } else { + Some(String::from_utf8( + decoder.read_vec(decoder.len())?.unverified(), + )?) + }; + Ok(Self { + info_code, + extra_text, + }) + } +} diff --git a/lib/dnsmsg-parser/src/lib.rs b/lib/dnsmsg-parser/src/lib.rs new file mode 100644 index 0000000000000..d332fd0d3fae3 --- /dev/null +++ b/lib/dnsmsg-parser/src/lib.rs @@ -0,0 +1,12 @@ +#![deny(warnings)] +#![warn( + missing_debug_implementations, + rust_2018_idioms, + unreachable_pub, + non_snake_case, + non_upper_case_globals +)] + +pub mod dns_message; +pub mod dns_message_parser; +pub mod ede; diff --git a/lib/dnstap-parser/Cargo.toml b/lib/dnstap-parser/Cargo.toml new file mode 100644 index 0000000000000..a7ada721d9838 --- /dev/null +++ b/lib/dnstap-parser/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "dnstap-parser" +version = "0.1.0" +authors = ["Vector Contributors "] +edition = "2021" +publish = false +license = "MIT" + +[dependencies] +base64 = { version = "0.22.1", default-features = false } +bytes = { version = "1.10.0", default-features = false, features = ["serde"] } +chrono.workspace = true +dnsmsg-parser = { path = "../dnsmsg-parser" } +hickory-proto.workspace = true +prost.workspace = true +snafu.workspace = true +tracing = { version = "0.1.34", default-features = false } +vector-lib = { path = "../vector-lib" } +vrl.workspace = true + +[build-dependencies] +prost-build.workspace = true + +[dev-dependencies] +anyhow.workspace = true +chrono-tz.workspace = true diff --git a/lib/dnstap-parser/build.rs b/lib/dnstap-parser/build.rs new file mode 100644 index 0000000000000..01880ac2bde38 --- /dev/null +++ b/lib/dnstap-parser/build.rs @@ -0,0 +1,8 @@ +fn main() { + println!("cargo:rerun-if-changed=proto/dnstap.proto"); + let mut prost_build = prost_build::Config::new(); + prost_build.btree_map(["."]); + prost_build + .compile_protos(&["proto/dnstap.proto"], &["proto"]) + .expect("Failed to compile proto files"); +} diff --git a/lib/dnstap-parser/proto/dnstap.proto b/lib/dnstap-parser/proto/dnstap.proto new file mode 100644 index 0000000000000..9bb56d48d0482 --- /dev/null +++ b/lib/dnstap-parser/proto/dnstap.proto @@ -0,0 +1,343 @@ +// dnstap: flexible, structured event replication format for DNS software +// +// This file contains the protobuf schemas for the "dnstap" structured event +// replication format for DNS software. + +// Written in 2013-2025 by the dnstap contributors. +// +// To the extent possible under law, the author(s) have dedicated all +// copyright and related and neighboring rights to this file to the public +// domain worldwide. This file is distributed without any warranty. +// +// You should have received a copy of the CC0 Public Domain Dedication along +// with this file. If not, see: +// +// . + +syntax = "proto2"; +package dnstap; + +// "Dnstap": this is the top-level dnstap type, which is a "union" type that +// contains other kinds of dnstap payloads, although currently only one type +// of dnstap payload is defined. +// See: https://developers.google.com/protocol-buffers/docs/techniques#union +message Dnstap { + // DNS server identity. + // If enabled, this is the identity string of the DNS server which generated + // this message. Typically this would be the same string as returned by an + // "NSID" (RFC 5001) query. + optional bytes identity = 1; + + // DNS server version. + // If enabled, this is the version string of the DNS server which generated + // this message. Typically this would be the same string as returned by a + // "version.bind" query. + optional bytes version = 2; + + // Extra data for this payload. + // This field can be used for adding an arbitrary byte-string annotation to + // the payload. No encoding or interpretation is applied or enforced. + optional bytes extra = 3; + + // Identifies which field below is filled in. + enum Type { + MESSAGE = 1; + } + required Type type = 15; + + // One of the following will be filled in. + optional Message message = 14; +} + +// SocketFamily: the network protocol family of a socket. This specifies how +// to interpret "network address" fields. +enum SocketFamily { + INET = 1; // IPv4 (RFC 791) + INET6 = 2; // IPv6 (RFC 2460) +} + +// SocketProtocol: the protocol used to transport a DNS message. +enum SocketProtocol { + UDP = 1; // DNS over UDP transport (RFC 1035 section 4.2.1) + TCP = 2; // DNS over TCP transport (RFC 1035 section 4.2.2) + DOT = 3; // DNS over TLS (RFC 7858) + DOH = 4; // DNS over HTTPS (RFC 8484) + DNSCryptUDP = 5; // DNSCrypt over UDP (https://dnscrypt.info/protocol) + DNSCryptTCP = 6; // DNSCrypt over TCP (https://dnscrypt.info/protocol) + DOQ = 7; // DNS over QUIC (RFC 9250) +} + +// HttpProtocol: the HTTP protocol version used to transport a DNS message over +// an HTTP-based protocol such as DNS over HTTPS. +enum HttpProtocol { + HTTP1 = 1; // HTTP/1 + HTTP2 = 2; // HTTP/2 + HTTP3 = 3; // HTTP/3 +} + +// Policy: information about any name server operator policy +// applied to the processing of a DNS message. +message Policy { + + // Match: what aspect of the message or message exchange + // triggered the application of the Policy. + enum Match { + QNAME = 1; // Name in question section of query + CLIENT_IP = 2; // Client IP address + RESPONSE_IP = 3; // Address in A/AAAA RRSet + NS_NAME = 4; // Authoritative name server, by name + NS_IP = 5; // Authoritative name server, by IP address + } + + // The Action taken to implement the Policy. + enum Action { + NXDOMAIN = 1; // Respond with NXDOMAIN + NODATA = 2; // Respond with empty answer section + PASS = 3; // Do not alter the response (passthrough) + DROP = 4; // Do not respond. + TRUNCATE = 5; // Truncate UDP response, forcing TCP retry + LOCAL_DATA = 6; // Respond with local data from policy + } + + // type: the type of policy applied, e.g. "RPZ" for a + // policy from a Response Policy Zone. + optional string type = 1; + + // rule: the rule matched by the message. + // + // In a RPZ context, this is the owner name of the rule in + // the Reponse Policy Zone in wire format. + optional bytes rule = 2; + + // action: the policy action taken in response to the + // rule match. + optional Action action = 3; + + // match: the feature of the message exchange which matched the rule. + optional Match match = 4; + + // The matched value. Format depends on the matched feature . + optional bytes value = 5; +} + +// Message: a wire-format (RFC 1035 section 4) DNS message and associated +// metadata. Applications generating "Message" payloads should follow +// certain requirements based on the MessageType, see below. +message Message { + + // There are eight types of "Message" defined that correspond to the + // four arrows in the following diagram, slightly modified from RFC 1035 + // section 2: + + // +---------+ +----------+ +--------+ + // | | query | | query | | + // | Stub |-SQ--------CQ->| Recursive|-RQ----AQ->| Auth. | + // | Resolver| | Server | | Name | + // | |<-SR--------CR-| |<-RR----AR-| Server | + // +---------+ response | | response | | + // +----------+ +--------+ + + // Each arrow has two Type values each, one for each "end" of each arrow, + // because these are considered to be distinct events. Each end of each + // arrow on the diagram above has been marked with a two-letter Type + // mnemonic. Clockwise from upper left, these mnemonic values are: + // + // SQ: STUB_QUERY + // CQ: CLIENT_QUERY + // RQ: RESOLVER_QUERY + // AQ: AUTH_QUERY + // AR: AUTH_RESPONSE + // RR: RESOLVER_RESPONSE + // CR: CLIENT_RESPONSE + // SR: STUB_RESPONSE + + // Two additional types of "Message" have been defined for the + // "forwarding" case where an upstream DNS server is responsible for + // further recursion. These are not shown on the diagram above, but have + // the following mnemonic values: + + // FQ: FORWARDER_QUERY + // FR: FORWARDER_RESPONSE + + // The "Message" Type values are defined below. + + enum Type { + // AUTH_QUERY is a DNS query message received from a resolver by an + // authoritative name server, from the perspective of the authoritative + // name server. + AUTH_QUERY = 1; + + // AUTH_RESPONSE is a DNS response message sent from an authoritative + // name server to a resolver, from the perspective of the authoritative + // name server. + AUTH_RESPONSE = 2; + + // RESOLVER_QUERY is a DNS query message sent from a resolver to an + // authoritative name server, from the perspective of the resolver. + // Resolvers typically clear the RD (recursion desired) bit when + // sending queries. + RESOLVER_QUERY = 3; + + // RESOLVER_RESPONSE is a DNS response message received from an + // authoritative name server by a resolver, from the perspective of + // the resolver. + RESOLVER_RESPONSE = 4; + + // CLIENT_QUERY is a DNS query message sent from a client to a DNS + // server which is expected to perform further recursion, from the + // perspective of the DNS server. The client may be a stub resolver or + // forwarder or some other type of software which typically sets the RD + // (recursion desired) bit when querying the DNS server. The DNS server + // may be a simple forwarding proxy or it may be a full recursive + // resolver. + CLIENT_QUERY = 5; + + // CLIENT_RESPONSE is a DNS response message sent from a DNS server to + // a client, from the perspective of the DNS server. The DNS server + // typically sets the RA (recursion available) bit when responding. + CLIENT_RESPONSE = 6; + + // FORWARDER_QUERY is a DNS query message sent from a downstream DNS + // server to an upstream DNS server which is expected to perform + // further recursion, from the perspective of the downstream DNS + // server. + FORWARDER_QUERY = 7; + + // FORWARDER_RESPONSE is a DNS response message sent from an upstream + // DNS server performing recursion to a downstream DNS server, from the + // perspective of the downstream DNS server. + FORWARDER_RESPONSE = 8; + + // STUB_QUERY is a DNS query message sent from a stub resolver to a DNS + // server, from the perspective of the stub resolver. + STUB_QUERY = 9; + + // STUB_RESPONSE is a DNS response message sent from a DNS server to a + // stub resolver, from the perspective of the stub resolver. + STUB_RESPONSE = 10; + + // TOOL_QUERY is a DNS query message sent from a DNS software tool to a + // DNS server, from the perspective of the tool. + TOOL_QUERY = 11; + + // TOOL_RESPONSE is a DNS response message received by a DNS software + // tool from a DNS server, from the perspective of the tool. + TOOL_RESPONSE = 12; + + // UPDATE_QUERY is a Dynamic DNS Update request (RFC 2136) received + // by an authoritative name server, from the perspective of the + // authoritative name server. + UPDATE_QUERY = 13; + + // UPDATE_RESPONSE is a Dynamic DNS Update response (RFC 2136) sent + // from an authoritative name server, from the perspective of the + // authoritative name server. + UPDATE_RESPONSE = 14; + } + + // One of the Type values described above. + required Type type = 1; + + // One of the SocketFamily values described above. + optional SocketFamily socket_family = 2; + + // One of the SocketProtocol values described above. + optional SocketProtocol socket_protocol = 3; + + // The network address of the message initiator. + // For SocketFamily INET, this field is 4 octets (IPv4 address). + // For SocketFamily INET6, this field is 16 octets (IPv6 address). + optional bytes query_address = 4; + + // The network address of the message responder. + // For SocketFamily INET, this field is 4 octets (IPv4 address). + // For SocketFamily INET6, this field is 16 octets (IPv6 address). + optional bytes response_address = 5; + + // The transport port of the message initiator. + // This is a 16-bit UDP or TCP port number, depending on SocketProtocol. + optional uint32 query_port = 6; + + // The transport port of the message responder. + // This is a 16-bit UDP or TCP port number, depending on SocketProtocol. + optional uint32 response_port = 7; + + // The time at which the DNS query message was sent or received, depending + // on whether this is an AUTH_QUERY, RESOLVER_QUERY, or CLIENT_QUERY. + // This is the number of seconds since the UNIX epoch. + optional uint64 query_time_sec = 8; + + // The time at which the DNS query message was sent or received. + // This is the seconds fraction, expressed as a count of nanoseconds. + optional fixed32 query_time_nsec = 9; + + // The initiator's original wire-format DNS query message, verbatim. + optional bytes query_message = 10; + + // The "zone" or "bailiwick" pertaining to the DNS query message. + // This is a wire-format DNS domain name. + optional bytes query_zone = 11; + + // The time at which the DNS response message was sent or received, + // depending on whether this is an AUTH_RESPONSE, RESOLVER_RESPONSE, or + // CLIENT_RESPONSE. + // This is the number of seconds since the UNIX epoch. + optional uint64 response_time_sec = 12; + + // The time at which the DNS response message was sent or received. + // This is the seconds fraction, expressed as a count of nanoseconds. + optional fixed32 response_time_nsec = 13; + + // The responder's original wire-format DNS response message, verbatim. + optional bytes response_message = 14; + + // Operator policy applied to the processing of this message, if any. + optional Policy policy = 15; + + // One of the HttpProtocol values described above. This field should only be + // set if socket_protocol is set to DOH. + optional HttpProtocol http_protocol = 16; +} + +// All fields except for 'type' in the Message schema are optional. +// It is recommended that at least the following fields be filled in for +// particular types of Messages. + +// AUTH_QUERY: +// socket_family, socket_protocol +// query_address, query_port +// query_message +// query_time_sec, query_time_nsec + +// AUTH_RESPONSE: +// socket_family, socket_protocol +// query_address, query_port +// query_time_sec, query_time_nsec +// response_message +// response_time_sec, response_time_nsec + +// RESOLVER_QUERY: +// socket_family, socket_protocol +// query_message +// query_time_sec, query_time_nsec +// query_zone +// response_address, response_port + +// RESOLVER_RESPONSE: +// socket_family, socket_protocol +// query_time_sec, query_time_nsec +// query_zone +// response_address, response_port +// response_message +// response_time_sec, response_time_nsec + +// CLIENT_QUERY: +// socket_family, socket_protocol +// query_message +// query_time_sec, query_time_nsec + +// CLIENT_RESPONSE: +// socket_family, socket_protocol +// query_time_sec, query_time_nsec +// response_message +// response_time_sec, response_time_nsec diff --git a/lib/dnstap-parser/src/internal_events.rs b/lib/dnstap-parser/src/internal_events.rs new file mode 100644 index 0000000000000..ab1635c9b3e03 --- /dev/null +++ b/lib/dnstap-parser/src/internal_events.rs @@ -0,0 +1,20 @@ +use tracing::warn; +use vector_lib::internal_event::InternalEvent; +use vector_lib::internal_event::{error_stage, error_type}; + +#[derive(Debug)] +pub(crate) struct DnstapParseWarning { + pub error: E, +} + +impl InternalEvent for DnstapParseWarning { + fn emit(self) { + warn!( + message = "Recoverable error occurred while parsing dnstap data.", + error = %self.error, + stage = error_stage::PROCESSING, + error_type = error_type::PARSER_FAILED, + internal_log_rate_limit = true, + ); + } +} diff --git a/lib/dnstap-parser/src/lib.rs b/lib/dnstap-parser/src/lib.rs new file mode 100644 index 0000000000000..d8c1744e08137 --- /dev/null +++ b/lib/dnstap-parser/src/lib.rs @@ -0,0 +1,12 @@ +#![deny(warnings)] + +use vrl::compiler::Function; + +mod internal_events; +pub mod parser; +pub mod schema; +mod vrl_functions; + +pub fn vrl_functions() -> Vec> { + vrl_functions::all() +} diff --git a/lib/dnstap-parser/src/parser.rs b/lib/dnstap-parser/src/parser.rs new file mode 100644 index 0000000000000..6a950c1a152b7 --- /dev/null +++ b/lib/dnstap-parser/src/parser.rs @@ -0,0 +1,1341 @@ +use std::{ + collections::HashSet, + convert::TryInto, + fmt::Debug, + net::{IpAddr, Ipv4Addr, Ipv6Addr}, + sync::LazyLock, +}; +use vector_lib::emit; + +use base64::prelude::{Engine as _, BASE64_STANDARD}; +use bytes::Bytes; +use chrono::{TimeZone, Utc}; +use dnsmsg_parser::{dns_message_parser::DnsParserOptions, ede::EDE}; +use hickory_proto::{ + rr::domain::Name, + serialize::binary::{BinDecodable, BinDecoder}, +}; +use prost::Message; +use snafu::Snafu; +use vrl::{owned_value_path, path}; + +use vector_lib::{ + event::{LogEvent, Value}, + Error, Result, +}; + +#[allow(warnings, clippy::all, clippy::pedantic, clippy::nursery)] +mod dnstap_proto { + include!(concat!(env!("OUT_DIR"), "/dnstap.rs")); +} + +use crate::{internal_events::DnstapParseWarning, schema::DNSTAP_VALUE_PATHS}; +use dnstap_proto::{ + message::Type as DnstapMessageType, Dnstap, Message as DnstapMessage, SocketFamily, + SocketProtocol, +}; +use vector_lib::config::log_schema; +use vector_lib::lookup::lookup_v2::ValuePath; +use vector_lib::lookup::PathPrefix; + +use dnsmsg_parser::{ + dns_message::{ + DnsRecord, EdnsOptionEntry, OptPseudoSection, QueryHeader, QueryQuestion, UpdateHeader, + ZoneInfo, + }, + dns_message_parser::DnsMessageParser, +}; + +#[derive(Debug, Snafu)] +enum DnstapParserError { + #[snafu(display("Unsupported DNSTap message type: {}", "dnstap_message_type_id"))] + UnsupportedDnstapMessageTypeError { dnstap_message_type_id: i32 }, +} + +static DNSTAP_MESSAGE_REQUEST_TYPE_IDS: LazyLock> = LazyLock::new(|| { + vec![ + DnstapMessageType::AuthQuery as i32, + DnstapMessageType::ResolverQuery as i32, + DnstapMessageType::ClientQuery as i32, + DnstapMessageType::ForwarderQuery as i32, + DnstapMessageType::StubQuery as i32, + DnstapMessageType::ToolQuery as i32, + DnstapMessageType::UpdateQuery as i32, + ] + .into_iter() + .collect() +}); +static DNSTAP_MESSAGE_RESPONSE_TYPE_IDS: LazyLock> = LazyLock::new(|| { + vec![ + DnstapMessageType::AuthResponse as i32, + DnstapMessageType::ResolverResponse as i32, + DnstapMessageType::ClientResponse as i32, + DnstapMessageType::ForwarderResponse as i32, + DnstapMessageType::StubResponse as i32, + DnstapMessageType::ToolResponse as i32, + DnstapMessageType::UpdateResponse as i32, + ] + .into_iter() + .collect() +}); + +#[derive(Default)] +pub struct DnstapParser; + +impl DnstapParser { + fn insert<'a, V>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + path: impl ValuePath<'a>, + value: V, + ) -> Option + where + V: Into + Debug, + { + event.insert((PathPrefix::Event, prefix.concat(path)), value) + } + + pub fn parse( + event: &mut LogEvent, + frame: Bytes, + parsing_options: DnsParserOptions, + ) -> Result<()> { + //parse frame with dnstap protobuf + let proto_msg = Dnstap::decode(frame.clone())?; + let root = owned_value_path!(); + if let Some(server_id) = proto_msg.identity { + DnstapParser::insert( + event, + &root, + &DNSTAP_VALUE_PATHS.server_identity, + String::from_utf8(server_id.clone()).unwrap_or_default(), + ); + } + + if let Some(version) = proto_msg.version { + DnstapParser::insert( + event, + &root, + &DNSTAP_VALUE_PATHS.server_version, + String::from_utf8(version).unwrap_or_default(), + ); + } + + if let Some(extra) = proto_msg.extra { + DnstapParser::insert( + event, + &root, + &DNSTAP_VALUE_PATHS.extra, + String::from_utf8(extra).unwrap_or_default(), + ); + } + + let dnstap_data_type_id: i32 = proto_msg.r#type; + let mut need_raw_data = false; + DnstapParser::insert( + event, + &root, + &DNSTAP_VALUE_PATHS.data_type_id, + dnstap_data_type_id, + ); + + if let Some(dnstap_data_type) = to_dnstap_data_type(dnstap_data_type_id) { + DnstapParser::insert( + event, + &root, + &DNSTAP_VALUE_PATHS.data_type, + dnstap_data_type.clone(), + ); + + if dnstap_data_type == "Message" { + if let Some(message) = proto_msg.message { + if let Err(err) = + DnstapParser::parse_dnstap_message(event, &root, message, parsing_options) + { + emit!(DnstapParseWarning { error: &err }); + need_raw_data = true; + DnstapParser::insert( + event, + &root, + &DNSTAP_VALUE_PATHS.error, + err.to_string(), + ); + } + } + } + } else { + emit!(DnstapParseWarning { + error: format!("Unknown dnstap data type: {}", dnstap_data_type_id) + }); + need_raw_data = true; + } + + if need_raw_data { + DnstapParser::insert( + event, + &root, + &DNSTAP_VALUE_PATHS.raw_data, + BASE64_STANDARD.encode(&frame), + ); + } + + Ok(()) + } + + fn parse_dnstap_message<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + dnstap_message: DnstapMessage, + parsing_options: DnsParserOptions, + ) -> Result<()> { + if let Some(socket_family) = dnstap_message.socket_family { + DnstapParser::parse_dnstap_message_socket_family( + event, + prefix.clone(), + socket_family, + &dnstap_message, + )?; + } + + if let Some(query_zone) = dnstap_message.query_zone.as_ref() { + let mut decoder: BinDecoder = BinDecoder::new(query_zone); + match Name::read(&mut decoder) { + Ok(raw_data) => { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.query_zone, + raw_data.to_utf8(), + ); + } + Err(error) => return Err(Error::from(error.to_string())), + } + } + + let dnstap_message_type_id = dnstap_message.r#type; + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.message_type_id, + dnstap_message_type_id, + ); + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.message_type, + to_dnstap_message_type(dnstap_message_type_id), + ); + + if let Some(query_time_sec) = dnstap_message.query_time_sec { + DnstapParser::parse_dnstap_message_time( + event, + prefix.clone(), + query_time_sec, + dnstap_message.query_time_nsec, + dnstap_message_type_id, + dnstap_message.query_message.as_ref(), + &DNSTAP_MESSAGE_REQUEST_TYPE_IDS, + ); + } + + if let Some(response_time_sec) = dnstap_message.response_time_sec { + DnstapParser::parse_dnstap_message_time( + event, + prefix.clone(), + response_time_sec, + dnstap_message.response_time_nsec, + dnstap_message_type_id, + dnstap_message.response_message.as_ref(), + &DNSTAP_MESSAGE_RESPONSE_TYPE_IDS, + ); + } + + DnstapParser::parse_dnstap_message_type( + event, + prefix.clone(), + dnstap_message_type_id, + dnstap_message, + parsing_options, + )?; + + Ok(()) + } + + fn parse_dnstap_message_type<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + dnstap_message_type_id: i32, + dnstap_message: DnstapMessage, + parsing_options: DnsParserOptions, + ) -> Result<()> { + match dnstap_message_type_id { + 1..=12 => { + if let Some(query_message) = dnstap_message.query_message { + let mut query_message_parser = + DnsMessageParser::with_options(query_message, parsing_options.clone()); + if let Err(error) = DnstapParser::parse_dns_query_message( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.request_message), + &mut query_message_parser, + ) { + DnstapParser::log_raw_dns_message( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.request_message), + query_message_parser.raw_message(), + ); + + return Err(error); + }; + } + + if let Some(response_message) = dnstap_message.response_message { + let mut response_message_parser = + DnsMessageParser::with_options(response_message, parsing_options); + if let Err(error) = DnstapParser::parse_dns_query_message( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.response_message), + &mut response_message_parser, + ) { + DnstapParser::log_raw_dns_message( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.response_message), + response_message_parser.raw_message(), + ); + + return Err(error); + }; + } + } + 13 | 14 => { + if let Some(update_request_message) = dnstap_message.query_message { + let mut update_request_message_parser = DnsMessageParser::with_options( + update_request_message, + parsing_options.clone(), + ); + if let Err(error) = DnstapParser::parse_dns_update_message( + event, + &DNSTAP_VALUE_PATHS.request_message, + &mut update_request_message_parser, + ) { + DnstapParser::log_raw_dns_message( + event, + &DNSTAP_VALUE_PATHS.request_message, + update_request_message_parser.raw_message(), + ); + + return Err(error); + }; + } + + if let Some(update_response_message) = dnstap_message.response_message { + let mut update_response_message_parser = + DnsMessageParser::with_options(update_response_message, parsing_options); + if let Err(error) = DnstapParser::parse_dns_update_message( + event, + &DNSTAP_VALUE_PATHS.response_message, + &mut update_response_message_parser, + ) { + DnstapParser::log_raw_dns_message( + event, + &DNSTAP_VALUE_PATHS.response_message, + update_response_message_parser.raw_message(), + ); + + return Err(error); + }; + } + } + _ => { + return Err(Box::new( + DnstapParserError::UnsupportedDnstapMessageTypeError { + dnstap_message_type_id, + }, + )); + } + } + + Ok(()) + } + + fn parse_dnstap_message_time<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + time_sec: u64, + time_nsec: Option, + dnstap_message_type_id: i32, + message: Option<&Vec>, + type_ids: &HashSet, + ) { + let (time_in_nanosec, query_time_nsec) = match time_nsec { + Some(nsec) => (time_sec as i64 * 1_000_000_000_i64 + nsec as i64, nsec), + None => (time_sec as i64 * 1_000_000_000_i64, 0), + }; + + if type_ids.contains(&dnstap_message_type_id) { + DnstapParser::log_time(event, prefix.clone(), time_in_nanosec, "ns"); + + let timestamp = Utc + .timestamp_opt(time_sec.try_into().unwrap(), query_time_nsec) + .single() + .expect("invalid timestamp"); + if let Some(timestamp_key) = log_schema().timestamp_key() { + DnstapParser::insert(event, prefix.clone(), timestamp_key, timestamp); + } + } + + if message.is_none() { + DnstapParser::log_time( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.request_message), + time_in_nanosec, + "ns", + ); + } + } + + fn parse_dnstap_message_socket_family<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + socket_family: i32, + dnstap_message: &DnstapMessage, + ) -> Result<()> { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.socket_family, + to_socket_family_name(socket_family)?.to_string(), + ); + + if let Some(socket_protocol) = dnstap_message.socket_protocol { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.socket_protocol, + to_socket_protocol_name(socket_protocol)?.to_string(), + ); + } + + if let Some(query_address) = dnstap_message.query_address.as_ref() { + let source_address = if socket_family == 1 { + let address_buffer: [u8; 4] = query_address[0..4].try_into()?; + IpAddr::V4(Ipv4Addr::from(address_buffer)) + } else { + let address_buffer: [u8; 16] = query_address[0..16].try_into()?; + IpAddr::V6(Ipv6Addr::from(address_buffer)) + }; + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.query_address, + source_address.to_string(), + ); + } + + if let Some(query_port) = dnstap_message.query_port { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.query_port, + query_port, + ); + } + + if let Some(response_address) = dnstap_message.response_address.as_ref() { + let response_addr = if socket_family == 1 { + let address_buffer: [u8; 4] = response_address[0..4].try_into()?; + IpAddr::V4(Ipv4Addr::from(address_buffer)) + } else { + let address_buffer: [u8; 16] = response_address[0..16].try_into()?; + IpAddr::V6(Ipv6Addr::from(address_buffer)) + }; + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.response_address, + response_addr.to_string(), + ); + } + + if let Some(response_port) = dnstap_message.response_port { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.response_port, + response_port, + ); + }; + Ok(()) + } + + fn log_time<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + time: i64, + time_precision: &str, + ) { + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.time, time); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.time_precision, + time_precision.to_string(), + ); + } + + fn log_raw_dns_message<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + raw_dns_message: &[u8], + ) { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.raw_data, + BASE64_STANDARD.encode(raw_dns_message), + ); + } + + fn parse_dns_query_message<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + dns_message_parser: &mut DnsMessageParser, + ) -> Result<()> { + let msg = dns_message_parser.parse_as_query_message()?; + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.response_code, + msg.response_code, + ); + + if let Some(response) = msg.response { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.response, + response.to_string(), + ); + } + + DnstapParser::log_dns_query_message_header( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.header), + &msg.header, + ); + + DnstapParser::log_dns_query_message_query_section( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.question_section), + &msg.question_section, + ); + + DnstapParser::log_dns_message_record_section( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.answer_section), + &msg.answer_section, + ); + + DnstapParser::log_dns_message_record_section( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.authority_section), + &msg.authority_section, + ); + + DnstapParser::log_dns_message_record_section( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.additional_section), + &msg.additional_section, + ); + + DnstapParser::log_edns( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.opt_pseudo_section), + &msg.opt_pseudo_section, + ); + + Ok(()) + } + + fn log_dns_query_message_header<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + header: &QueryHeader, + ) { + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.id, header.id); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.opcode, + header.opcode, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.rcode, + u16::from(header.rcode), + ); + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.qr, header.qr); + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.aa, header.aa); + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.tc, header.tc); + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.rd, header.rd); + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.ra, header.ra); + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.ad, header.ad); + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.cd, header.cd); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.question_count, + header.question_count, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.answer_count, + header.answer_count, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.authority_count, + header.authority_count, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.ar_count, + header.additional_count, + ); + } + + fn log_dns_query_message_query_section<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + questions: &[QueryQuestion], + ) { + for (i, query) in questions.iter().enumerate() { + let index_segment = path!(i as isize); + DnstapParser::log_dns_query_question(event, prefix.concat(index_segment), query); + } + } + + fn log_dns_query_question<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + question: &QueryQuestion, + ) { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.domain_name, + question.name.clone(), + ); + if let Some(record_type) = question.record_type.clone() { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.question_type, + record_type, + ); + } + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.question_type_id, + question.record_type_id, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.class, + question.class.clone(), + ); + } + + fn parse_dns_update_message<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + dns_message_parser: &mut DnsMessageParser, + ) -> Result<()> { + let msg = dns_message_parser.parse_as_update_message()?; + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.response_code, + msg.response_code, + ); + + if let Some(response) = msg.response { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.response, + response.to_string(), + ); + } + + DnstapParser::log_dns_update_message_header( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.header), + &msg.header, + ); + + DnstapParser::log_dns_update_message_zone_section( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.zone_section), + &msg.zone_to_update, + ); + + DnstapParser::log_dns_message_record_section( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.prerequisite_section), + &msg.prerequisite_section, + ); + + DnstapParser::log_dns_message_record_section( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.update_section), + &msg.update_section, + ); + + DnstapParser::log_dns_message_record_section( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.additional_section), + &msg.additional_section, + ); + + Ok(()) + } + + fn log_dns_update_message_header<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + header: &UpdateHeader, + ) { + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.id, header.id); + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.opcode, + header.opcode, + ); + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.rcode, + u16::from(header.rcode), + ); + + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.qr, header.qr); + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.zone_count, + header.zone_count, + ); + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.prerequisite_count, + header.prerequisite_count, + ); + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.update_count, + header.update_count, + ); + + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.ad_count, + header.additional_count, + ); + } + + fn log_dns_update_message_zone_section<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + zone: &ZoneInfo, + ) { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.zone_name, + zone.name.clone(), + ); + if let Some(zone_type) = zone.zone_type.clone() { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.zone_type, + zone_type, + ); + } + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.zone_type_id, + zone.zone_type_id, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.zone_class, + zone.class.clone(), + ); + } + + fn log_edns<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + opt_section: &Option, + ) { + if let Some(edns) = opt_section { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.extended_rcode, + edns.extended_rcode, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.version, + edns.version, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.do_flag, + edns.dnssec_ok, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.udp_max_payload_size, + edns.udp_max_payload_size, + ); + DnstapParser::log_edns_ede(event, prefix.concat(&DNSTAP_VALUE_PATHS.ede), &edns.ede); + DnstapParser::log_edns_options( + event, + prefix.concat(&DNSTAP_VALUE_PATHS.options), + &edns.options, + ); + } + } + + fn log_edns_ede<'a>(event: &mut LogEvent, prefix: impl ValuePath<'a>, options: &[EDE]) { + options.iter().enumerate().for_each(|(i, entry)| { + let index_segment = path!(i as isize); + DnstapParser::log_edns_ede_entry(event, prefix.concat(index_segment), entry); + }); + } + + fn log_edns_ede_entry<'a>(event: &mut LogEvent, prefix: impl ValuePath<'a>, entry: &EDE) { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.info_code, + entry.info_code(), + ); + if let Some(purpose) = entry.purpose() { + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.purpose, purpose); + } + if let Some(extra_text) = entry.extra_text() { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.extra_text, + extra_text, + ); + } + } + + fn log_edns_options<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + options: &[EdnsOptionEntry], + ) { + options.iter().enumerate().for_each(|(i, opt)| { + let index_segment = path!(i as isize); + DnstapParser::log_edns_opt(event, prefix.concat(index_segment), opt); + }); + } + + fn log_edns_opt<'a>(event: &mut LogEvent, prefix: impl ValuePath<'a>, opt: &EdnsOptionEntry) { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.opt_code, + opt.opt_code, + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.opt_name, + opt.opt_name.clone(), + ); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.opt_data, + opt.opt_data.clone(), + ); + } + + fn log_dns_message_record_section<'a>( + event: &mut LogEvent, + prefix: impl ValuePath<'a>, + records: &[DnsRecord], + ) { + for (i, record) in records.iter().enumerate() { + let index_segment = path!(i as isize); + DnstapParser::log_dns_record(event, prefix.concat(index_segment), record); + } + } + + fn log_dns_record<'a>(event: &mut LogEvent, prefix: impl ValuePath<'a>, record: &DnsRecord) { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.domain_name, + record.name.clone(), + ); + if let Some(record_type) = record.record_type.clone() { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.record_type, + record_type, + ); + } + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.record_type_id, + record.record_type_id, + ); + DnstapParser::insert(event, prefix.clone(), &DNSTAP_VALUE_PATHS.ttl, record.ttl); + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.class, + record.class.clone(), + ); + if let Some(rdata) = &record.rdata { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.rdata, + rdata.to_string(), + ); + }; + if let Some(rdata_bytes) = &record.rdata_bytes { + DnstapParser::insert( + event, + prefix.clone(), + &DNSTAP_VALUE_PATHS.rdata_bytes, + BASE64_STANDARD.encode(rdata_bytes), + ); + }; + } +} + +fn to_socket_family_name(socket_family: i32) -> Result<&'static str> { + if socket_family == SocketFamily::Inet as i32 { + Ok("INET") + } else if socket_family == SocketFamily::Inet6 as i32 { + Ok("INET6") + } else { + Err(Error::from(format!( + "Unknown socket family: {}", + socket_family + ))) + } +} + +fn to_socket_protocol_name(socket_protocol: i32) -> Result<&'static str> { + if socket_protocol == SocketProtocol::Udp as i32 { + Ok("UDP") + } else if socket_protocol == SocketProtocol::Tcp as i32 { + Ok("TCP") + } else if socket_protocol == SocketProtocol::Dot as i32 { + Ok("DOT") + } else if socket_protocol == SocketProtocol::Doh as i32 { + Ok("DOH") + } else if socket_protocol == SocketProtocol::DnsCryptUdp as i32 { + Ok("DNSCryptUDP") + } else if socket_protocol == SocketProtocol::DnsCryptTcp as i32 { + Ok("DNSCryptTCP") + } else { + Err(Error::from(format!( + "Unknown socket protocol: {}", + socket_protocol + ))) + } +} + +fn to_dnstap_data_type(data_type_id: i32) -> Option { + match data_type_id { + 1 => Some(String::from("Message")), + _ => None, + } +} + +fn to_dnstap_message_type(type_id: i32) -> String { + match type_id { + 1 => String::from("AuthQuery"), + 2 => String::from("AuthResponse"), + 3 => String::from("ResolverQuery"), + 4 => String::from("ResolverResponse"), + 5 => String::from("ClientQuery"), + 6 => String::from("ClientResponse"), + 7 => String::from("ForwarderQuery"), + 8 => String::from("ForwarderResponse"), + 9 => String::from("StubQuery"), + 10 => String::from("StubResponse"), + 11 => String::from("ToolQuery"), + 12 => String::from("ToolResponse"), + 13 => String::from("UpdateQuery"), + 14 => String::from("UpdateResponse"), + _ => format!("Unknown dnstap message type: {}", type_id), + } +} + +#[cfg(test)] +mod tests { + use super::*; + use chrono::DateTime; + use dnsmsg_parser::dns_message_parser::DnsParserOptions; + use std::collections::BTreeMap; + + #[test] + fn test_parse_dnstap_data_with_query_message() { + let mut log_event = LogEvent::default(); + let raw_dnstap_data = "ChVqYW1lcy1WaXJ0dWFsLU1hY2hpbmUSC0JJTkQgOS4xNi4zcnoIAxACGAEiEAAAAAAAAA\ + AAAAAAAAAAAAAqECABBQJwlAAAAAAAAAAAADAw8+0CODVA7+zq9wVNMU3WNlI2kwIAAAABAAAAAAABCWZhY2Vib29rMQNjb\ + 20AAAEAAQAAKQIAAACAAAAMAAoACOxjCAG9zVgzWgUDY29tAHgB"; + let dnstap_data = BASE64_STANDARD + .decode(raw_dnstap_data) + .expect("Invalid base64 encoded data."); + let parse_result = DnstapParser::parse( + &mut log_event, + Bytes::from(dnstap_data), + DnsParserOptions::default(), + ); + assert!(parse_result.is_ok()); + + let expected_map: BTreeMap<&str, Value> = BTreeMap::from([ + ("dataType", Value::Bytes(Bytes::from("Message"))), + ("dataTypeId", Value::Integer(1)), + ("messageType", Value::Bytes(Bytes::from("ResolverQuery"))), + ("messageTypeId", Value::Integer(3)), + ("queryZone", Value::Bytes(Bytes::from("com."))), + ("requestData.fullRcode", Value::Integer(0)), + ("requestData.header.aa", Value::Boolean(false)), + ("requestData.header.ad", Value::Boolean(false)), + ("requestData.header.anCount", Value::Integer(0)), + ("requestData.header.arCount", Value::Integer(1)), + ("requestData.header.cd", Value::Boolean(false)), + ("requestData.header.id", Value::Integer(37634)), + ("requestData.header.nsCount", Value::Integer(0)), + ("requestData.header.opcode", Value::Integer(0)), + ("requestData.header.qdCount", Value::Integer(1)), + ("requestData.header.qr", Value::Integer(0)), + ("requestData.header.ra", Value::Boolean(false)), + ("requestData.header.rcode", Value::Integer(0)), + ("requestData.header.rd", Value::Boolean(false)), + ("requestData.header.tc", Value::Boolean(false)), + ("requestData.opt.do", Value::Boolean(true)), + ("requestData.opt.ednsVersion", Value::Integer(0)), + ("requestData.opt.extendedRcode", Value::Integer(0)), + ("requestData.opt.options[0].optCode", Value::Integer(10)), + ( + "requestData.opt.options[0].optName", + Value::Bytes(Bytes::from("Cookie")), + ), + ( + "requestData.opt.options[0].optValue", + Value::Bytes(Bytes::from("7GMIAb3NWDM=")), + ), + ("requestData.opt.udpPayloadSize", Value::Integer(512)), + ( + "requestData.question[0].class", + Value::Bytes(Bytes::from("IN")), + ), + ( + "requestData.question[0].domainName", + Value::Bytes(Bytes::from("facebook1.com.")), + ), + ( + "requestData.question[0].questionType", + Value::Bytes(Bytes::from("A")), + ), + ("requestData.question[0].questionTypeId", Value::Integer(1)), + ( + "requestData.rcodeName", + Value::Bytes(Bytes::from("NoError")), + ), + ( + "responseAddress", + Value::Bytes(Bytes::from("2001:502:7094::30")), + ), + ("responsePort", Value::Integer(53)), + ( + "serverId", + Value::Bytes(Bytes::from("james-Virtual-Machine")), + ), + ("serverVersion", Value::Bytes(Bytes::from("BIND 9.16.3"))), + ("socketFamily", Value::Bytes(Bytes::from("INET6"))), + ("socketProtocol", Value::Bytes(Bytes::from("UDP"))), + ("sourceAddress", Value::Bytes(Bytes::from("::"))), + ("sourcePort", Value::Integer(46835)), + ("time", Value::Integer(1_593_489_007_920_014_129)), + ("timePrecision", Value::Bytes(Bytes::from("ns"))), + ( + "timestamp", + Value::Timestamp( + Utc.from_utc_datetime( + &DateTime::parse_from_rfc3339("2020-06-30T03:50:07.920014129Z") + .unwrap() + .naive_utc(), + ), + ), + ), + ]); + + // The maps need to contain identical keys and values. + for (exp_key, exp_value) in expected_map { + let value = log_event.get(exp_key).unwrap(); + assert_eq!(*value, exp_value); + } + } + + #[test] + fn test_parse_dnstap_data_lowercase_hostnames() { + let mut log_event = LogEvent::default(); + let mut lowercase_log_event = LogEvent::default(); + let raw_dnstap_data = "Cgw2NzNiNWZiZWI5MmESMkJJTkQgOS4xOC4yMS0xK3VidW50dTIyLjA0LjErZGViLnN1cnkub3JnKzEtVWJ1bnR1cqkBCAYQARgBIgQKWQUeKgQKWQUqMMitAjg1YLXQp68GbZ9tBw9ygwGInoGAAAEABAAAAAEGVmVjdG9yA0RldgAAAQABwAwAAQABAAAAPAAEEvVWOMAMAAEAAQAAADwABBL1VnnADAABAAEAAAA8AAQS9VYSwAwAAQABAAAAPAAEEvVWWQAAKQTQAAAAAAAcAAoAGERDbSN8uKngAQAAAGXp6DXs0fbpv0n9F3gB"; + let dnstap_data = BASE64_STANDARD + .decode(raw_dnstap_data) + .expect("Invalid base64 encoded data."); + let parse_result = DnstapParser::parse( + &mut lowercase_log_event, + Bytes::from(dnstap_data.clone()), + DnsParserOptions { + lowercase_hostnames: true, + }, + ); + let no_lowercase_result = DnstapParser::parse( + &mut log_event, + Bytes::from(dnstap_data), + DnsParserOptions::default(), + ); + assert!(parse_result.is_ok()); + assert!(no_lowercase_result.is_ok()); + + let no_lowercase_expected: BTreeMap<&str, Value> = BTreeMap::from([ + ("dataType", Value::Bytes(Bytes::from("Message"))), + ("dataTypeId", Value::Integer(1)), + ( + "responseData.answers[0].domainName", + Value::Bytes(Bytes::from("Vector.Dev.")), + ), + ( + "responseData.question[0].domainName", + Value::Bytes(Bytes::from("Vector.Dev.")), + ), + ]); + let expected_map: BTreeMap<&str, Value> = BTreeMap::from([ + ("dataType", Value::Bytes(Bytes::from("Message"))), + ("dataTypeId", Value::Integer(1)), + ( + "responseData.answers[0].domainName", + Value::Bytes(Bytes::from("vector.dev.")), + ), + ( + "responseData.question[0].domainName", + Value::Bytes(Bytes::from("vector.dev.")), + ), + ]); + + // The maps need to contain identical keys and values. + for (exp_key, exp_value) in no_lowercase_expected { + let value = log_event.get(exp_key).unwrap(); + assert_eq!(*value, exp_value); + } + for (exp_key, exp_value) in expected_map { + let value = lowercase_log_event.get(exp_key).unwrap(); + assert_eq!(*value, exp_value); + } + } + + #[test] + fn test_parse_dnstap_data_with_ede_options() { + let mut log_event = LogEvent::default(); + let raw_dnstap_data = "ChVqYW1lcy1WaXJ0dWFsLU1hY2hpbmUSC0JJTkQgOS4xNi4zGgBy5wEIAxACGAEiEAAAAAAAAAAAAAAAAAAAAAAqECABBQJwlAAAAAAAAAAAADAw8+0CODVA7+zq9wVNMU3WNlI2kwIAAAABAAAAAAABCWZhY2Vib29rMQNjb20AAAEAAQAAKQIAAACAAAAMAAoACOxjCAG9zVgzWgUDY29tAGAAbQAAAAByZLM4AAAAAQAAAAAAAQJoNQdleGFtcGxlA2NvbQAABgABAAApBNABAUAAADkADwA1AAlubyBTRVAgbWF0Y2hpbmcgdGhlIERTIGZvdW5kIGZvciBkbnNzZWMtZmFpbGVkLm9yZy54AQ=="; + let dnstap_data = BASE64_STANDARD + .decode(raw_dnstap_data) + .expect("Invalid base64 encoded data."); + let parse_result = DnstapParser::parse( + &mut log_event, + Bytes::from(dnstap_data), + DnsParserOptions::default(), + ); + assert!(parse_result.is_ok()); + + let expected_map: BTreeMap<&str, Value> = BTreeMap::from([ + ("responseData.opt.ede[0].infoCode", Value::Integer(9)), + ( + "responseData.opt.ede[0].purpose", + Value::Bytes(Bytes::from("DNSKEY Missing")), + ), + ( + "responseData.opt.ede[0].extraText", + Value::Bytes(Bytes::from( + "no SEP matching the DS found for dnssec-failed.org.", + )), + ), + ]); + + // The maps need to contain identical keys and values. + for (exp_key, exp_value) in expected_map { + let value = log_event.get(exp_key).unwrap(); + assert_eq!(*value, exp_value); + } + } + + #[test] + fn test_parse_dnstap_data_with_update_message() { + let mut log_event = LogEvent::default(); + let raw_dnstap_data = "ChVqYW1lcy1WaXJ0dWFsLU1hY2hpbmUSC0JJTkQgOS4xNi4zcmsIDhABGAEiBH8AAA\ + EqBH8AAAEwrG44AEC+iu73BU14gfofUh1wi6gAAAEAAAAAAAAHZXhhbXBsZQNjb20AAAYAAWC+iu73BW0agDwvch1wi6gAA\ + AEAAAAAAAAHZXhhbXBsZQNjb20AAAYAAXgB"; + let dnstap_data = BASE64_STANDARD + .decode(raw_dnstap_data) + .expect("Invalid base64 encoded data."); + let parse_result = DnstapParser::parse( + &mut log_event, + Bytes::from(dnstap_data), + DnsParserOptions::default(), + ); + assert!(parse_result.is_ok()); + + let expected_map: BTreeMap<&str, Value> = BTreeMap::from([ + ("dataType", Value::Bytes(Bytes::from("Message"))), + ("dataTypeId", Value::Integer(1)), + ("messageType", Value::Bytes(Bytes::from("UpdateResponse"))), + ("messageTypeId", Value::Integer(14)), + ("requestData.fullRcode", Value::Integer(0)), + ("requestData.header.adCount", Value::Integer(0)), + ("requestData.header.id", Value::Integer(28811)), + ("requestData.header.opcode", Value::Integer(5)), + ("requestData.header.prCount", Value::Integer(0)), + ("requestData.header.qr", Value::Integer(1)), + ("requestData.header.rcode", Value::Integer(0)), + ("requestData.header.upCount", Value::Integer(0)), + ("requestData.header.zoCount", Value::Integer(1)), + ( + "requestData.rcodeName", + Value::Bytes(Bytes::from("NoError")), + ), + ("requestData.zone.zClass", Value::Bytes(Bytes::from("IN"))), + ( + "requestData.zone.zName", + Value::Bytes(Bytes::from("example.com.")), + ), + ("requestData.zone.zType", Value::Bytes(Bytes::from("SOA"))), + ("requestData.zone.zTypeId", Value::Integer(6)), + ("responseAddress", Value::Bytes(Bytes::from("127.0.0.1"))), + ("responseData.fullRcode", Value::Integer(0)), + ("responseData.header.adCount", Value::Integer(0)), + ("responseData.header.id", Value::Integer(28811)), + ("responseData.header.opcode", Value::Integer(5)), + ("responseData.header.prCount", Value::Integer(0)), + ("responseData.header.qr", Value::Integer(1)), + ("responseData.header.rcode", Value::Integer(0)), + ("responseData.header.upCount", Value::Integer(0)), + ("responseData.header.zoCount", Value::Integer(1)), + ( + "responseData.rcodeName", + Value::Bytes(Bytes::from("NoError")), + ), + ("responseData.zone.zClass", Value::Bytes(Bytes::from("IN"))), + ( + "responseData.zone.zName", + Value::Bytes(Bytes::from("example.com.")), + ), + ("responseData.zone.zType", Value::Bytes(Bytes::from("SOA"))), + ("responseData.zone.zTypeId", Value::Integer(6)), + ("responsePort", Value::Integer(0)), + ( + "serverId", + Value::Bytes(Bytes::from("james-Virtual-Machine")), + ), + ("serverVersion", Value::Bytes(Bytes::from("BIND 9.16.3"))), + ("socketFamily", Value::Bytes(Bytes::from("INET"))), + ("socketProtocol", Value::Bytes(Bytes::from("UDP"))), + ("sourceAddress", Value::Bytes(Bytes::from("127.0.0.1"))), + ("sourcePort", Value::Integer(14124)), + ("time", Value::Integer(1_593_541_950_792_494_106)), + ("timePrecision", Value::Bytes(Bytes::from("ns"))), + ( + "timestamp", + Value::Timestamp( + Utc.from_utc_datetime( + &DateTime::parse_from_rfc3339("2020-06-30T18:32:30.792494106Z") + .unwrap() + .naive_utc(), + ), + ), + ), + ]); + + // The maps need to contain identical keys and values. + for (exp_key, exp_value) in expected_map { + let value = log_event.get(exp_key).unwrap(); + assert_eq!(*value, exp_value); + } + } + + #[test] + fn test_parse_dnstap_data_with_invalid_data() { + let mut log_event = LogEvent::default(); + let e = DnstapParser::parse( + &mut log_event, + Bytes::from(vec![1, 2, 3]), + DnsParserOptions::default(), + ) + .expect_err("Expected TrustDnsError."); + assert!(e.to_string().contains("Protobuf message")); + } + + #[test] + fn test_get_socket_family_name() { + assert_eq!("INET", to_socket_family_name(1).unwrap()); + assert_eq!("INET6", to_socket_family_name(2).unwrap()); + assert!(to_socket_family_name(3).is_err()); + } + + #[test] + fn test_get_socket_protocol_name() { + assert_eq!("UDP", to_socket_protocol_name(1).unwrap()); + assert_eq!("TCP", to_socket_protocol_name(2).unwrap()); + assert_eq!("DOT", to_socket_protocol_name(3).unwrap()); + assert_eq!("DOH", to_socket_protocol_name(4).unwrap()); + assert_eq!("DNSCryptUDP", to_socket_protocol_name(5).unwrap()); + assert_eq!("DNSCryptTCP", to_socket_protocol_name(6).unwrap()); + assert!(to_socket_protocol_name(7).is_err()); + } +} diff --git a/lib/dnstap-parser/src/schema.rs b/lib/dnstap-parser/src/schema.rs new file mode 100644 index 0000000000000..3f90977fd500f --- /dev/null +++ b/lib/dnstap-parser/src/schema.rs @@ -0,0 +1,504 @@ +use std::{collections::BTreeMap, sync::LazyLock}; + +use vector_lib::lookup::{owned_value_path, OwnedValuePath}; +use vrl::btreemap; +use vrl::value::{ + kind::{Collection, Field}, + Kind, +}; + +#[derive(Debug, Default, Clone)] +pub struct DnstapEventSchema; + +impl DnstapEventSchema { + /// The message schema for the request and response message fields + pub(crate) fn request_message_schema_definition(&self) -> Collection { + let mut result: BTreeMap = BTreeMap::new(); + result.insert( + DNSTAP_VALUE_PATHS.time.to_string().into(), + Kind::integer().or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.time.to_string().into(), + Kind::integer().or_undefined(), + ); + result.insert( + DNSTAP_VALUE_PATHS.time_precision.to_string().into(), + Kind::bytes().or_undefined(), + ); + result.insert( + DNSTAP_VALUE_PATHS.time_precision.to_string().into(), + Kind::bytes().or_undefined(), + ); + result.insert( + DNSTAP_VALUE_PATHS.response_code.to_string().into(), + Kind::integer().or_undefined(), + ); + result.insert( + DNSTAP_VALUE_PATHS.response_code.to_string().into(), + Kind::integer().or_undefined(), + ); + result.insert( + DNSTAP_VALUE_PATHS.response.to_string().into(), + Kind::bytes().or_undefined(), + ); + result.insert( + DNSTAP_VALUE_PATHS.response.to_string().into(), + Kind::bytes().or_undefined(), + ); + + let mut schema = DnsQueryHeaderSchema::schema_definition(); + schema.merge(DnsUpdateHeaderSchema::schema_definition(), true); + + result.insert( + DNSTAP_VALUE_PATHS.header.to_string().into(), + Kind::object(schema).or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.zone_section.to_string().into(), + Kind::object(DnsUpdateZoneInfoSchema::schema_definition()).or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.question_section.to_string().into(), + Kind::array(Collection::from_unknown(Kind::object( + DnsQueryQuestionSchema::schema_definition(), + ))) + .or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.answer_section.to_string().into(), + Kind::array(Collection::from_unknown(Kind::object( + DnsRecordSchema::schema_definition(), + ))) + .or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.authority_section.to_string().into(), + Kind::array(Collection::from_unknown(Kind::object( + DnsRecordSchema::schema_definition(), + ))) + .or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.additional_section.to_string().into(), + Kind::array(Collection::from_unknown(Kind::object( + DnsRecordSchema::schema_definition(), + ))) + .or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.opt_pseudo_section.to_string().into(), + Kind::object(DnsMessageOptPseudoSectionSchema::schema_definition()).or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.raw_data.to_string().into(), + Kind::bytes().or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.prerequisite_section.to_string().into(), + Kind::array(Collection::from_unknown(Kind::object( + DnsRecordSchema::schema_definition(), + ))) + .or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.update_section.to_string().into(), + Kind::array(Collection::from_unknown(Kind::object( + DnsRecordSchema::schema_definition(), + ))) + .or_undefined(), + ); + + result.insert( + DNSTAP_VALUE_PATHS.additional_section.to_string().into(), + Kind::array(Collection::from_unknown(Kind::object( + DnsRecordSchema::schema_definition(), + ))) + .or_undefined(), + ); + + result.into() + } + + /// Schema definition for fields stored in the root. + fn root_schema_definition( + &self, + schema: vector_lib::schema::Definition, + ) -> vector_lib::schema::Definition { + schema + .optional_field(&DNSTAP_VALUE_PATHS.server_identity, Kind::bytes(), None) + .optional_field(&DNSTAP_VALUE_PATHS.server_version, Kind::bytes(), None) + .optional_field(&DNSTAP_VALUE_PATHS.extra, Kind::bytes(), None) + .with_event_field(&DNSTAP_VALUE_PATHS.data_type_id, Kind::integer(), None) + .optional_field(&DNSTAP_VALUE_PATHS.data_type, Kind::bytes(), None) + .optional_field(&DNSTAP_VALUE_PATHS.error, Kind::bytes(), None) + .optional_field(&DNSTAP_VALUE_PATHS.raw_data, Kind::bytes(), None) + .optional_field(&DNSTAP_VALUE_PATHS.time, Kind::integer(), None) + .optional_field(&DNSTAP_VALUE_PATHS.time_precision, Kind::bytes(), None) + } + + /// Schema definition from the message. + pub fn message_schema_definition( + &self, + schema: vector_lib::schema::Definition, + ) -> vector_lib::schema::Definition { + schema + .optional_field(&DNSTAP_VALUE_PATHS.socket_family, Kind::bytes(), None) + .optional_field(&DNSTAP_VALUE_PATHS.socket_protocol, Kind::bytes(), None) + .optional_field(&DNSTAP_VALUE_PATHS.query_address, Kind::bytes(), None) + .optional_field(&DNSTAP_VALUE_PATHS.query_port, Kind::integer(), None) + .optional_field(&DNSTAP_VALUE_PATHS.response_address, Kind::bytes(), None) + .optional_field(&DNSTAP_VALUE_PATHS.response_port, Kind::integer(), None) + .optional_field(&DNSTAP_VALUE_PATHS.query_zone, Kind::bytes(), None) + .with_event_field(&DNSTAP_VALUE_PATHS.message_type_id, Kind::integer(), None) + .optional_field(&DNSTAP_VALUE_PATHS.message_type, Kind::bytes(), None) + .optional_field( + &DNSTAP_VALUE_PATHS.request_message, + Kind::object(self.request_message_schema_definition()), + None, + ) + .optional_field( + &DNSTAP_VALUE_PATHS.response_message, + Kind::object(self.request_message_schema_definition()), + None, + ) + } + + /// The schema definition for a dns tap message. + pub fn schema_definition( + &self, + schema: vector_lib::schema::Definition, + ) -> vector_lib::schema::Definition { + self.root_schema_definition(self.message_schema_definition(schema)) + } +} + +/// Collection of owned value paths. +#[derive(Debug, Clone)] +pub struct DnstapPaths { + // DnstapRootDataSchema + pub server_identity: OwnedValuePath, + pub server_version: OwnedValuePath, + pub extra: OwnedValuePath, + pub data_type: OwnedValuePath, + pub data_type_id: OwnedValuePath, + pub time: OwnedValuePath, + pub time_precision: OwnedValuePath, + pub error: OwnedValuePath, + pub raw_data: OwnedValuePath, + + // DnstapMessageSchema + pub socket_family: OwnedValuePath, + pub socket_protocol: OwnedValuePath, + pub query_address: OwnedValuePath, + pub query_port: OwnedValuePath, + pub response_address: OwnedValuePath, + pub response_port: OwnedValuePath, + pub query_zone: OwnedValuePath, + pub message_type: OwnedValuePath, + pub message_type_id: OwnedValuePath, + pub request_message: OwnedValuePath, + pub response_message: OwnedValuePath, + + // DnsQueryMessageSchema + pub response_code: OwnedValuePath, + pub response: OwnedValuePath, + pub header: OwnedValuePath, + pub question_section: OwnedValuePath, + pub answer_section: OwnedValuePath, + pub authority_section: OwnedValuePath, + pub additional_section: OwnedValuePath, + pub opt_pseudo_section: OwnedValuePath, + + // DnsUpdateMessageSchema + pub zone_section: OwnedValuePath, + pub prerequisite_section: OwnedValuePath, + pub update_section: OwnedValuePath, + + // DnsMessageHeaderCommonSchema + pub id: OwnedValuePath, + pub opcode: OwnedValuePath, + pub rcode: OwnedValuePath, + pub qr: OwnedValuePath, + + // DnsQueryHeaderSchema + pub aa: OwnedValuePath, + pub tc: OwnedValuePath, + pub rd: OwnedValuePath, + pub ra: OwnedValuePath, + pub ad: OwnedValuePath, + pub cd: OwnedValuePath, + pub question_count: OwnedValuePath, + pub answer_count: OwnedValuePath, + pub authority_count: OwnedValuePath, + pub ar_count: OwnedValuePath, + + // DnsUpdateHeaderSchema + pub zone_count: OwnedValuePath, + pub prerequisite_count: OwnedValuePath, + pub update_count: OwnedValuePath, + pub ad_count: OwnedValuePath, + + // DnsMessageOptPseudoSectionSchema + pub extended_rcode: OwnedValuePath, + pub version: OwnedValuePath, + pub do_flag: OwnedValuePath, + pub udp_max_payload_size: OwnedValuePath, + pub ede: OwnedValuePath, + pub options: OwnedValuePath, + + // DnsMessageEdeOptionSchema + pub info_code: OwnedValuePath, + pub purpose: OwnedValuePath, + pub extra_text: OwnedValuePath, + + // DnsMessageOptionSchema + pub opt_code: OwnedValuePath, + pub opt_name: OwnedValuePath, + pub opt_data: OwnedValuePath, + + // DnsRecordSchema + pub domain_name: OwnedValuePath, + pub record_type: OwnedValuePath, + pub record_type_id: OwnedValuePath, + pub ttl: OwnedValuePath, + pub class: OwnedValuePath, + pub rdata: OwnedValuePath, + pub rdata_bytes: OwnedValuePath, + + // DnsQueryQuestionSchema + pub question_type: OwnedValuePath, + pub question_type_id: OwnedValuePath, + + // DnsUpdateZoneInfoSchema + pub zone_name: OwnedValuePath, + pub zone_class: OwnedValuePath, + pub zone_type: OwnedValuePath, + pub zone_type_id: OwnedValuePath, +} + +/// Lazily initialized singleton. +pub static DNSTAP_VALUE_PATHS: LazyLock = LazyLock::new(|| DnstapPaths { + server_identity: owned_value_path!("serverId"), + server_version: owned_value_path!("serverVersion"), + extra: owned_value_path!("extraInfo"), + data_type: owned_value_path!("dataType"), + data_type_id: owned_value_path!("dataTypeId"), + time: owned_value_path!("time"), + time_precision: owned_value_path!("timePrecision"), + error: owned_value_path!("error"), + raw_data: owned_value_path!("rawData"), + socket_family: owned_value_path!("socketFamily"), + socket_protocol: owned_value_path!("socketProtocol"), + query_address: owned_value_path!("sourceAddress"), + query_port: owned_value_path!("sourcePort"), + response_address: owned_value_path!("responseAddress"), + response_port: owned_value_path!("responsePort"), + query_zone: owned_value_path!("queryZone"), + message_type: owned_value_path!("messageType"), + message_type_id: owned_value_path!("messageTypeId"), + request_message: owned_value_path!("requestData"), + response_message: owned_value_path!("responseData"), + response_code: owned_value_path!("fullRcode"), + response: owned_value_path!("rcodeName"), + header: owned_value_path!("header"), + question_section: owned_value_path!("question"), + answer_section: owned_value_path!("answers"), + authority_section: owned_value_path!("authority"), + additional_section: owned_value_path!("additional"), + opt_pseudo_section: owned_value_path!("opt"), + zone_section: owned_value_path!("zone"), + prerequisite_section: owned_value_path!("prerequisite"), + update_section: owned_value_path!("update"), + id: owned_value_path!("id"), + opcode: owned_value_path!("opcode"), + rcode: owned_value_path!("rcode"), + qr: owned_value_path!("qr"), + aa: owned_value_path!("aa"), + tc: owned_value_path!("tc"), + rd: owned_value_path!("rd"), + ra: owned_value_path!("ra"), + ad: owned_value_path!("ad"), + cd: owned_value_path!("cd"), + question_count: owned_value_path!("qdCount"), + answer_count: owned_value_path!("anCount"), + authority_count: owned_value_path!("nsCount"), + ar_count: owned_value_path!("arCount"), + zone_count: owned_value_path!("zoCount"), + prerequisite_count: owned_value_path!("prCount"), + update_count: owned_value_path!("upCount"), + ad_count: owned_value_path!("adCount"), + extended_rcode: owned_value_path!("extendedRcode"), + version: owned_value_path!("ednsVersion"), + do_flag: owned_value_path!("do"), + udp_max_payload_size: owned_value_path!("udpPayloadSize"), + ede: owned_value_path!("ede"), + options: owned_value_path!("options"), + info_code: owned_value_path!("infoCode"), + purpose: owned_value_path!("purpose"), + extra_text: owned_value_path!("extraText"), + opt_code: owned_value_path!("optCode"), + opt_name: owned_value_path!("optName"), + opt_data: owned_value_path!("optValue"), + record_type: owned_value_path!("recordType"), + record_type_id: owned_value_path!("recordTypeId"), + ttl: owned_value_path!("ttl"), + class: owned_value_path!("class"), + rdata: owned_value_path!("rData"), + rdata_bytes: owned_value_path!("rDataBytes"), + domain_name: owned_value_path!("domainName"), + question_type: owned_value_path!("questionType"), + question_type_id: owned_value_path!("questionTypeId"), + zone_name: owned_value_path!("zName"), + zone_class: owned_value_path!("zClass"), + zone_type: owned_value_path!("zType"), + zone_type_id: owned_value_path!("zTypeId"), +}); + +#[derive(Debug, Default, Clone)] +pub struct DnsQueryHeaderSchema; + +impl DnsQueryHeaderSchema { + pub fn schema_definition() -> Collection { + btreemap! { + DNSTAP_VALUE_PATHS.id.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.opcode.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.rcode.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.qr.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.aa.to_string() => Kind::boolean(), + DNSTAP_VALUE_PATHS.tc.to_string() => Kind::boolean(), + DNSTAP_VALUE_PATHS.rd.to_string() => Kind::boolean(), + DNSTAP_VALUE_PATHS.ra.to_string() => Kind::boolean(), + DNSTAP_VALUE_PATHS.ad.to_string() => Kind::boolean(), + DNSTAP_VALUE_PATHS.cd.to_string() => Kind::boolean(), + DNSTAP_VALUE_PATHS.ar_count.to_string() => Kind::integer().or_undefined(), + DNSTAP_VALUE_PATHS.question_count.to_string() => Kind::integer().or_undefined(), + DNSTAP_VALUE_PATHS.answer_count.to_string() => Kind::integer().or_undefined(), + DNSTAP_VALUE_PATHS.authority_count.to_string() => Kind::integer().or_undefined(), + } + .into() + } +} + +#[derive(Debug, Default, Clone)] +pub struct DnsUpdateHeaderSchema; + +impl DnsUpdateHeaderSchema { + pub fn schema_definition() -> Collection { + btreemap! { + DNSTAP_VALUE_PATHS.id.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.opcode.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.rcode.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.qr.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.zone_count.to_string() => Kind::integer().or_undefined(), + DNSTAP_VALUE_PATHS.prerequisite_count.to_string() => Kind::integer().or_undefined(), + DNSTAP_VALUE_PATHS.update_count.to_string() => Kind::integer().or_undefined(), + DNSTAP_VALUE_PATHS.ad_count.to_string() => Kind::integer().or_undefined(), + } + .into() + } +} + +#[derive(Debug, Default, Clone)] +pub struct DnsMessageOptPseudoSectionSchema; + +impl DnsMessageOptPseudoSectionSchema { + pub fn schema_definition() -> Collection { + btreemap! { + DNSTAP_VALUE_PATHS.extended_rcode.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.version.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.do_flag.to_string() => Kind::boolean(), + DNSTAP_VALUE_PATHS.udp_max_payload_size.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.options.to_string() => Kind::array( + Collection::from_unknown(Kind::object(DnsMessageOptionSchema::schema_definition())) + ).or_undefined(), + } + .into() + } +} + +#[derive(Debug, Default, Clone)] +pub struct DnsMessageEdeOptionSchema; + +impl DnsMessageEdeOptionSchema { + pub fn schema_definition() -> Collection { + btreemap! { + DNSTAP_VALUE_PATHS.info_code.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.purpose.to_string() => Kind::bytes(), + DNSTAP_VALUE_PATHS.extra_text.to_string() => Kind::bytes(), + } + .into() + } +} + +#[derive(Debug, Default, Clone)] +pub struct DnsMessageOptionSchema; + +impl DnsMessageOptionSchema { + pub fn schema_definition() -> Collection { + btreemap! { + DNSTAP_VALUE_PATHS.opt_code.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.opt_name.to_string() => Kind::bytes(), + DNSTAP_VALUE_PATHS.opt_data.to_string() => Kind::bytes(), + } + .into() + } +} + +#[derive(Debug, Default, Clone)] +pub struct DnsRecordSchema; + +impl DnsRecordSchema { + pub fn schema_definition() -> Collection { + btreemap! { + DNSTAP_VALUE_PATHS.domain_name.to_string() => Kind::bytes(), + DNSTAP_VALUE_PATHS.record_type.to_string() => Kind::bytes().or_undefined(), + DNSTAP_VALUE_PATHS.record_type_id.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.ttl.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.class.to_string() => Kind::bytes(), + DNSTAP_VALUE_PATHS.rdata.to_string() => Kind::bytes(), + DNSTAP_VALUE_PATHS.rdata_bytes.to_string() => Kind::bytes().or_undefined(), + } + .into() + } +} + +#[derive(Debug, Default, Clone)] +pub struct DnsQueryQuestionSchema; + +impl DnsQueryQuestionSchema { + pub fn schema_definition() -> Collection { + btreemap! { + DNSTAP_VALUE_PATHS.class.to_string() => Kind::bytes(), + DNSTAP_VALUE_PATHS.domain_name.to_string() => Kind::bytes(), + DNSTAP_VALUE_PATHS.question_type.to_string() => Kind::bytes(), + DNSTAP_VALUE_PATHS.question_type_id.to_string() => Kind::integer(), + } + .into() + } +} + +#[derive(Debug, Default, Clone)] +pub struct DnsUpdateZoneInfoSchema; + +impl DnsUpdateZoneInfoSchema { + pub fn schema_definition() -> Collection { + btreemap! { + DNSTAP_VALUE_PATHS.zone_name.to_string() => Kind::bytes(), + DNSTAP_VALUE_PATHS.zone_type.to_string() => Kind::bytes().or_undefined(), + DNSTAP_VALUE_PATHS.zone_type_id.to_string() => Kind::integer(), + DNSTAP_VALUE_PATHS.zone_class.to_string() => Kind::bytes(), + } + .into() + } +} diff --git a/lib/dnstap-parser/src/vrl_functions/mod.rs b/lib/dnstap-parser/src/vrl_functions/mod.rs new file mode 100644 index 0000000000000..ef6d13f403ebf --- /dev/null +++ b/lib/dnstap-parser/src/vrl_functions/mod.rs @@ -0,0 +1,7 @@ +use vrl::compiler::Function; + +pub mod parse_dnstap; + +pub fn all() -> Vec> { + vec![Box::new(parse_dnstap::ParseDnstap) as _] +} diff --git a/lib/dnstap-parser/src/vrl_functions/parse_dnstap.rs b/lib/dnstap-parser/src/vrl_functions/parse_dnstap.rs new file mode 100644 index 0000000000000..ee6c5d52bc8b8 --- /dev/null +++ b/lib/dnstap-parser/src/vrl_functions/parse_dnstap.rs @@ -0,0 +1,399 @@ +use crate::parser::DnstapParser; +use crate::schema::DnstapEventSchema; +use base64::prelude::{Engine as _, BASE64_STANDARD}; +use dnsmsg_parser::dns_message_parser::DnsParserOptions; +use vector_lib::event::LogEvent; +use vrl::prelude::*; + +#[derive(Clone, Copy, Debug)] +pub struct ParseDnstap; + +impl Function for ParseDnstap { + fn identifier(&self) -> &'static str { + "parse_dnstap" + } + + fn parameters(&self) -> &'static [Parameter] { + &[ + Parameter { + keyword: "value", + kind: kind::BYTES, + required: true, + }, + Parameter { + keyword: "lowercase_hostnames", + kind: kind::BOOLEAN, + required: false, + }, + ] + } + + fn examples(&self) -> &'static [Example] { + &[Example { + title: "Parse dnstap query message", + source: r#"parse_dnstap!("ChVqYW1lcy1WaXJ0dWFsLU1hY2hpbmUSC0JJTkQgOS4xNi4zGgBy5wEIAxACGAEiEAAAAAAAAAAAAAAAAAAAAAAqECABBQJwlAAAAAAAAAAAADAw8+0CODVA7+zq9wVNMU3WNlI2kwIAAAABAAAAAAABCWZhY2Vib29rMQNjb20AAAEAAQAAKQIAAACAAAAMAAoACOxjCAG9zVgzWgUDY29tAGAAbQAAAAByZLM4AAAAAQAAAAAAAQJoNQdleGFtcGxlA2NvbQAABgABAAApBNABAUAAADkADwA1AAlubyBTRVAgbWF0Y2hpbmcgdGhlIERTIGZvdW5kIGZvciBkbnNzZWMtZmFpbGVkLm9yZy54AQ==")"#, + result: Ok(indoc!( + r#"{ + "dataType": "Message", + "dataTypeId": 1, + "extraInfo": "", + "messageType": "ResolverQuery", + "messageTypeId": 3, + "queryZone": "com.", + "requestData": { + "fullRcode": 0, + "header": { + "aa": false, + "ad": false, + "anCount": 0, + "arCount": 1, + "cd": false, + "id": 37634, + "nsCount": 0, + "opcode": 0, + "qdCount": 1, + "qr": 0, + "ra": false, + "rcode": 0, + "rd": false, + "tc": false + }, + "opt": { + "do": true, + "ednsVersion": 0, + "extendedRcode": 0, + "options": [ + { + "optCode": 10, + "optName": "Cookie", + "optValue": "7GMIAb3NWDM=" + } + ], + "udpPayloadSize": 512 + }, + "question": [ + { + "class": "IN", + "domainName": "facebook1.com.", + "questionType": "A", + "questionTypeId": 1 + } + ], + "rcodeName": "NoError" + }, + "responseData": { + "fullRcode": 16, + "header": { + "aa": false, + "ad": false, + "anCount": 0, + "arCount": 1, + "cd": false, + "id": 45880, + "nsCount": 0, + "opcode": 0, + "qdCount": 1, + "qr": 0, + "ra": false, + "rcode": 16, + "rd": false, + "tc": false + }, + "opt": { + "do": false, + "ednsVersion": 1, + "extendedRcode": 1, + "ede": [ + { + "extraText": "no SEP matching the DS found for dnssec-failed.org.", + "infoCode": 9, + "purpose": "DNSKEY Missing" + } + ], + "udpPayloadSize": 1232 + }, + "question": [ + { + "class": "IN", + "domainName": "h5.example.com.", + "questionType": "SOA", + "questionTypeId": 6 + } + ], + "rcodeName": "BADSIG" + }, + "responseAddress": "2001:502:7094::30", + "responsePort": 53, + "serverId": "james-Virtual-Machine", + "serverVersion": "BIND 9.16.3", + "socketFamily": "INET6", + "socketProtocol": "UDP", + "sourceAddress": "::", + "sourcePort": 46835, + "time": 1593489007920014129, + "timePrecision": "ns", + "timestamp": "2020-06-30T03:50:07.920014129Z" + }"# + )), + }] + } + + fn compile( + &self, + _state: &TypeState, + _ctx: &mut FunctionCompileContext, + arguments: ArgumentList, + ) -> Compiled { + let value = arguments.required("value"); + let lowercase_hostnames = arguments + .optional("lowercase_hostnames") + .unwrap_or_else(|| expr!(false)); + Ok(ParseDnstapFn { + value, + lowercase_hostnames, + } + .as_expr()) + } +} + +#[derive(Debug, Clone)] +struct ParseDnstapFn { + value: Box, + lowercase_hostnames: Box, +} + +impl FunctionExpression for ParseDnstapFn { + fn resolve(&self, ctx: &mut Context<'_>) -> Resolved { + let value = self.value.resolve(ctx)?; + let input = value.try_bytes_utf8_lossy()?; + + let mut event = LogEvent::default(); + + DnstapParser::parse( + &mut event, + BASE64_STANDARD + .decode(input.as_bytes()) + .map_err(|_| format!("{input} is not a valid base64 encoded string"))? + .into(), + DnsParserOptions { + lowercase_hostnames: self.lowercase_hostnames.resolve(ctx)?.try_boolean()?, + }, + ) + .map_err(|e| format!("dnstap parsing failed for {input}: {e}"))?; + + Ok(event.value().clone()) + } + + fn type_def(&self, _: &TypeState) -> TypeDef { + TypeDef::object(DnstapEventSchema.request_message_schema_definition()).fallible() + } +} + +#[cfg(test)] +mod tests { + use super::*; + use chrono::{DateTime, TimeZone, Utc}; + use vrl::value; + + test_function![ + parse_dnstap => ParseDnstap; + + query { + args: func_args![value: value!("ChVqYW1lcy1WaXJ0dWFsLU1hY2hpbmUSC0JJTkQgOS4xNi4zGgBy5wEIAxACGAEiEAAAAAAAAAAAAAAAAAAAAAAqECABBQJwlAAAAAAAAAAAADAw8+0CODVA7+zq9wVNMU3WNlI2kwIAAAABAAAAAAABCWZhY2Vib29rMQNjb20AAAEAAQAAKQIAAACAAAAMAAoACOxjCAG9zVgzWgUDY29tAGAAbQAAAAByZLM4AAAAAQAAAAAAAQJoNQdleGFtcGxlA2NvbQAABgABAAApBNABAUAAADkADwA1AAlubyBTRVAgbWF0Y2hpbmcgdGhlIERTIGZvdW5kIGZvciBkbnNzZWMtZmFpbGVkLm9yZy54AQ==")], + want: Ok({ + let timestamp = Value::Timestamp( + Utc.from_utc_datetime( + &DateTime::parse_from_rfc3339("2020-06-30T03:50:07.920014129Z") + .unwrap() + .naive_utc(), + ), + ); + value!({ + dataType: "Message", + dataTypeId: 1, + extraInfo: "", + messageType: "ResolverQuery", + messageTypeId: 3, + queryZone: "com.", + requestData: { + fullRcode: 0, + header: { + aa: false, + ad: false, + anCount: 0, + arCount: 1, + cd: false, + id: 37634, + nsCount: 0, + opcode: 0, + qdCount: 1, + qr: 0, + ra: false, + rcode: 0, + rd: false, + tc: false, + }, + opt: { + do: true, + ednsVersion: 0, + extendedRcode: 0, + options: [ + { + optCode: 10, + optName: "Cookie", + optValue: "7GMIAb3NWDM=", + } + ], + udpPayloadSize: 512, + }, + question: [ + { + class: "IN", + domainName: "facebook1.com.", + questionType: "A", + questionTypeId: 1, + } + ], + rcodeName: "NoError", + }, + responseData: { + fullRcode: 16, + header: { + aa: false, + ad: false, + anCount: 0, + arCount: 1, + cd: false, + id: 45880, + nsCount: 0, + opcode: 0, + qdCount: 1, + qr: 0, + ra: false, + rcode: 16, + rd: false, + tc: false, + }, + opt: { + do: false, + ede: [ + { + extraText: "no SEP matching the DS found for dnssec-failed.org.", + infoCode: 9, + purpose: "DNSKEY Missing", + } + ], + ednsVersion: 1, + extendedRcode: 1, + udpPayloadSize: 1232, + }, + question: [ + { + class: "IN", + domainName: "h5.example.com.", + questionType: "SOA", + questionTypeId: 6, + } + ], + rcodeName: "BADSIG", + }, + responseAddress: "2001:502:7094::30", + responsePort: 53, + serverId: "james-Virtual-Machine", + serverVersion: "BIND 9.16.3", + socketFamily: "INET6", + socketProtocol: "UDP", + sourceAddress: "::", + sourcePort: 46835, + time: 1_593_489_007_920_014_129i64, + timePrecision: "ns", + timestamp: timestamp + }) + }), + tdef: TypeDef::object(DnstapEventSchema.request_message_schema_definition()).fallible(), + } + + update { + args: func_args![value: value!("ChVqYW1lcy1WaXJ0dWFsLU1hY2hpbmUSC0JJTkQgOS4xNi4zcmsIDhABGAEiBH8AAAEqBH8AAAEwrG44AEC+iu73BU14gfofUh1wi6gAAAEAAAAAAAAHZXhhbXBsZQNjb20AAAYAAWC+iu73BW0agDwvch1wi6gAAAEAAAAAAAAHZXhhbXBsZQNjb20AAAYAAXgB")], + want: Ok({ + let timestamp = Value::Timestamp( + Utc.from_utc_datetime( + &DateTime::parse_from_rfc3339("2020-06-30T18:32:30.792494106Z") + .unwrap() + .naive_utc(), + ), + ); + value!({ + dataType: "Message", + dataTypeId: 1, + messageType: "UpdateResponse", + messageTypeId: 14, + requestData: { + fullRcode: 0, + header: { + adCount: 0, + id: 28811, + opcode: 5, + prCount: 0, + qr: 1, + rcode: 0, + upCount: 0, + zoCount: 1 + }, + zone: { + zClass: "IN", + zName: "example.com.", + zType: "SOA", + zTypeId: 6 + }, + rcodeName: "NoError", + }, + responseAddress: "127.0.0.1", + responseData: { + fullRcode: 0, + header: { + adCount: 0, + id: 28811, + opcode: 5, + prCount: 0, + qr: 1, + rcode: 0, + upCount: 0, + zoCount: 1 + }, + zone: { + zClass: "IN", + zName: "example.com.", + zType: "SOA", + zTypeId: 6 + }, + rcodeName: "NoError", + }, + responsePort: 0, + serverId: "james-Virtual-Machine", + serverVersion: "BIND 9.16.3", + socketFamily: "INET", + socketProtocol: "UDP", + sourceAddress: "127.0.0.1", + sourcePort: 14124, + time: 1_593_541_950_792_494_106i64, + timePrecision: "ns", + timestamp: timestamp + }) + }), + tdef: TypeDef::object(DnstapEventSchema.request_message_schema_definition()).fallible(), + } + + non_base64_value { + args: func_args![value: value!("non base64 string")], + want: Err("non base64 string is not a valid base64 encoded string"), + tdef: TypeDef::object(DnstapEventSchema.request_message_schema_definition()).fallible(), + } + + invalid_dnstap_data { + args: func_args![value: value!("bm9uIGRuc3RhcCBkYXRh")], + want: Err("dnstap parsing failed for bm9uIGRuc3RhcCBkYXRh: failed to decode Protobuf message: invalid wire type value: 6"), + tdef: TypeDef::object(DnstapEventSchema.request_message_schema_definition()).fallible(), + } + ]; +} diff --git a/lib/docs-renderer/Cargo.toml b/lib/docs-renderer/Cargo.toml new file mode 100644 index 0000000000000..b871ac10cb706 --- /dev/null +++ b/lib/docs-renderer/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "docs-renderer" +version = "0.1.0" +authors = ["Vector Contributors "] +edition = "2021" +publish = false + +[dependencies] +anyhow = { version = "1.0.95", default-features = false, features = ["std"] } +serde.workspace = true +serde_json.workspace = true +snafu.workspace = true +tracing = { version = "0.1.34", default-features = false } +vector-config = { path = "../vector-config" } +vector-config-common = { path = "../vector-config-common" } diff --git a/lib/docs-renderer/src/main.rs b/lib/docs-renderer/src/main.rs new file mode 100644 index 0000000000000..dfd9c829d858c --- /dev/null +++ b/lib/docs-renderer/src/main.rs @@ -0,0 +1,82 @@ +mod renderer; + +use std::collections::HashMap; + +use crate::renderer::SchemaRenderer; +use anyhow::{Context, Result}; +use tracing::debug; +use vector_config::schema::parser::{component::ComponentSchema, query::SchemaQuerier}; +use vector_config_common::constants::{self, ComponentType}; + +fn main() -> Result<()> { + let querier = SchemaQuerier::from_schema("/tmp/vector-config-schema.json") + .context("Failed to create querier from given schema file path.")?; + + let base_component_types = &[ + ComponentType::Source, + ComponentType::Transform, + ComponentType::Sink, + ]; + for base_component_type in base_component_types { + // Find the base component schema for the component type itself, which is analogous to + // `SourceOuter`, `SinkOuter`, etc. We render the schema for that separately as it's meant + // to be common across components of the same type, etc. + let base_component_schema = querier + .query() + .with_custom_attribute_kv( + constants::DOCS_META_COMPONENT_BASE_TYPE, + base_component_type, + ) + .run_single()?; + + debug!( + "Got base component schema for component type '{}'.", + base_component_type.as_str() + ); + + // Find all component schemas of the same component type. + let maybe_component_schemas = querier + .query() + .with_custom_attribute_kv(constants::DOCS_META_COMPONENT_TYPE, base_component_type) + .run() + .into_iter() + .map(ComponentSchema::try_from) + .collect::, _>>()?; + + debug!( + "Found {} component schema(s) for component type '{}'.", + maybe_component_schemas.len(), + base_component_type.as_str() + ); + + let mut rendered_component_schemas = HashMap::new(); + + // Render the base component schema. + let base_component_schema_renderer = SchemaRenderer::new(&querier, base_component_schema); + let rendered_base_component_schema = + base_component_schema_renderer.render().context(format!( + "Failed to render the base component schema for component type '{}'.", + base_component_type.as_str() + ))?; + rendered_component_schemas.insert( + format!("base/{}", base_component_type.as_str()), + rendered_base_component_schema, + ); + + // Render each of the component schemas for this component type. + for component_schema in maybe_component_schemas { + let component_name = component_schema.component_name().to_string(); + let component_schema_renderer = SchemaRenderer::new(&querier, component_schema); + let rendered_component_schema = component_schema_renderer.render().context(format!( + "Failed to render the '{}' component schema.", + component_name + ))?; + rendered_component_schemas.insert( + format!("{}s/base/{}", base_component_type.as_str(), component_name), + rendered_component_schema, + ); + } + } + + Ok(()) +} diff --git a/lib/docs-renderer/src/renderer.rs b/lib/docs-renderer/src/renderer.rs new file mode 100644 index 0000000000000..49065c761ae67 --- /dev/null +++ b/lib/docs-renderer/src/renderer.rs @@ -0,0 +1,424 @@ +use std::collections::{HashMap, VecDeque}; + +use anyhow::Result; +use serde::Serialize; +use serde_json::{Map, Value}; +use snafu::Snafu; +use tracing::debug; +use vector_config::schema::parser::query::{ + QueryError, QueryableSchema, SchemaQuerier, SchemaType, +}; +use vector_config_common::constants; + +#[derive(Debug, Snafu)] +pub enum RenderError { + #[snafu(display("rendering failed: {reason}"))] + Failed { reason: String }, + + #[snafu(display("query error during rendering: {source}"), context(false))] + Query { source: QueryError }, +} + +#[derive(Serialize)] +#[serde(transparent)] +pub struct RenderData { + root: Value, +} + +impl RenderData { + fn with_mut_object(&mut self, f: F) -> V + where + F: FnOnce(&mut Map) -> V, + { + // TODO: We should refactor this method so that it takes the desired path, a boolean for + // whether or not to create missing path nodes, and a closure to call with the object + // reference/object key if it exists.. and then this way, `write` and `delete` become simple + // calls with simple closures that just do `map.insert(...)` and `map.delete(...)` and so + // on. + // + // tl;dr: make it DRY. + let map = self + .root + .as_object_mut() + .expect("Render data should always have an object value as root."); + f(map) + } + + /// Writes a value at the given path. + /// + /// The path follows the form of `/part1/part/.../partN`, where each slash-separated segment + /// represents a nested object within the overall object hierarchy. For example, a path of + /// `/root/nested/key2` would map to the value "weee!" if applied against the following JSON + /// object: + /// + /// { "root": { "nested": { "key2": "weee!" } } } + /// + /// # Panics + /// + /// If the path does not start with a forward slash, this method will panic. Likewise, if the + /// path is _only_ a forward slash (aka there is no segment to describe the key within the + /// object to write the value to), this method will panic. + /// + /// If any nested object within the path does not yet exist, it will be created. If any segment, + /// other than the leaf segment, points to a value that is not an object/map, this method will + /// panic. + pub fn write>(&mut self, path: &str, value: V) { + if !path.starts_with('/') { + panic!("Paths must always start with a leading forward slash (`/`)."); + } + + self.with_mut_object(|map| { + // Split the path, and take the last element as the actual map key to write to. + let mut segments = path.split('/').collect::>(); + let key = segments.pop_back().expect("Path must end with a key."); + + // Iterate over the remaining elements, traversing into the root object one level at a + // time, based on using `token` as the map key. If there's no map at the given key, + // we'll create one. If there's something other than a map, we'll panic. + let mut destination = map; + while let Some(segment) = segments.pop_front() { + if destination.contains_key(segment) { + match destination.get_mut(segment) { + Some(Value::Object(ref mut next)) => { + destination = next; + continue; + } + Some(_) => { + panic!("Only leaf nodes should be allowed to be non-object values.") + } + None => unreachable!("Already asserted that the given key exists."), + } + } else { + destination.insert(segment.to_string(), Value::Object(Map::new())); + match destination.get_mut(segment) { + Some(Value::Object(ref mut next)) => { + destination = next; + } + _ => panic!("New object was just inserted."), + } + } + } + + destination.insert(key.to_string(), value.into()); + }); + } + + /// Deletes the value at the given path. + /// + /// The path follows the form of `/part1/part/.../partN`, where each slash-separated segment + /// represents a nested object within the overall object hierarchy. For example, a path of + /// `/root/nested/key2` would map to the value "weee!" if applied against the following JSON + /// object: + /// + /// { "root": { "nested": { "key2": "weee!" } } } + /// + /// # Panics + /// + /// If the path does not start with a forward slash, this method will panic. Likewise, if the + /// path is _only_ a forward slash (aka there is no segment to describe the key within the + /// object to write the value to), this method will panic. + /// + /// If any nested object within the path does not yet exist, it will be created. If any segment, + /// other than the leaf segment, points to a value that is not an object/map, this method will + /// panic. + pub fn delete(&mut self, path: &str) -> bool { + if !path.starts_with('/') { + panic!("Paths must always start with a leading forward slash (`/`)."); + } + + self.with_mut_object(|map| { + // Split the path, and take the last element as the actual map key to write to. + let mut segments = path.split('/').collect::>(); + let key = segments + .pop_back() + .expect("Path cannot point directly to the root. Use `clear` instead."); + + // Iterate over the remaining elements, traversing into the root object one level at a + // time, based on using `token` as the map key. If there's no map at the given key, + // we'll create one. If there's something other than a map, we'll panic. + let mut destination = map; + while let Some(segment) = segments.pop_front() { + match destination.get_mut(segment) { + Some(Value::Object(ref mut next)) => { + destination = next; + continue; + } + Some(_) => panic!("Only leaf nodes should be allowed to be non-object values."), + // If the next segment doesn't exist, there's nothing for us to delete, so return `false`. + None => return false, + } + } + + destination.remove(key).is_some() + }) + } + + /// Gets whether or not a value at the given path. + /// + /// The path follows the form of `/part1/part/.../partN`, where each slash-separated segment + /// represents a nested object within the overall object hierarchy. For example, a path of + /// `/root/nested/key2` would map to the value "weee!" if applied against the following JSON + /// object: + /// + /// { "root": { "nested": { "key2": "weee!" } } } + /// + /// # Panics + /// + /// If the path does not start with a forward slash, this method will panic. + pub fn exists(&self, path: &str) -> bool { + if !path.starts_with('/') { + panic!("Paths must always start with a leading forward slash (`/`)."); + } + + // The root path always exists. + if path == "/" { + return true; + } + + self.root.pointer(path).is_some() + } + + /// Merges the data from `other` into `self`. + /// + /// Uses a "deep" merge strategy, which will recursively merge both objects together. This + /// strategy behaves as follows: + /// + /// - strings, booleans, integers, numbers, and nulls are "highest priority wins" (`self` has + /// highest priority) + /// - arrays are merged together without any deduplication, with the items from `self` appearing + /// first + /// - objects have their properties merged together, but if an overlapping property is + /// encountered: + /// - if it has the same type on both sides, the property is merged normally (using the + /// standard merge behavior) + /// - if it does not have the same type on both sides, the property value on the `self` side + /// takes precedence + /// + /// The only exception to the merge behavior above is if an overlapping object property does not + /// have the same type on both sides, but the type on the `self` side is an array. When the type + /// is an array, the value on the `other` side is appended to that array, regardless of the + /// contents of the array. + pub fn merge(&mut self, _other: Self) { + todo!() + } +} + +impl Default for RenderData { + fn default() -> Self { + Self { + root: Value::Object(Map::new()), + } + } +} + +pub struct SchemaRenderer<'a, T> { + querier: &'a SchemaQuerier, + schema: T, + data: RenderData, +} + +impl<'a, T> SchemaRenderer<'a, T> +where + T: QueryableSchema, +{ + pub fn new(querier: &'a SchemaQuerier, schema: T) -> Self { + Self { + querier, + schema, + data: RenderData::default(), + } + } + + pub fn render(self) -> Result { + let Self { + querier, + schema, + mut data, + } = self; + + // If a schema is hidden, then we intentionally do not want to render it. + if schema.has_flag_attribute(constants::DOCS_META_HIDDEN)? { + debug!("Schema is marked as hidden. Skipping rendering."); + + return Ok(data); + } + + // If a schema has an overridden type, we return some barebones render data. + if schema.has_flag_attribute(constants::DOCS_META_TYPE_OVERRIDE)? { + debug!("Schema has overridden type."); + + data.write("type", "blank"); + apply_schema_description(&schema, &mut data)?; + + return Ok(data); + } + + // Now that we've handled any special cases, attempt to render the schema. + render_bare_schema(querier, &schema, &mut data)?; + + // If the rendered schema represents an array schema, remove any description that is present + // for the schema of the array items themselves. We want the description of whatever object + // property that is using this array schema to be the one that is used. + // + // We just do this blindly because the control flow doesn't change depending on whether or + // not it's an array schema and we do or don't delete anything. + if data.delete("/type/array/items/description") { + debug!("Cleared description for items schema from top-level array schema."); + } + + // Apply any necessary defaults, descriptions, and so on, to the rendered schema. + // + // This must happen here because there could be callsite-specific overrides to default + // values/descriptions/etc which must take precedence, so that must occur after any nested + // rendering in order to maintain that precedence. + apply_schema_default_value(&schema, &mut data)?; + apply_schema_metadata(&schema, &mut data)?; + apply_schema_description(&schema, &mut data)?; + + Ok(data) + } +} + +fn render_bare_schema( + querier: &SchemaQuerier, + schema: T, + data: &mut RenderData, +) -> Result<(), RenderError> { + match schema.schema_type() { + SchemaType::AllOf(subschemas) => { + // Composite (`allOf`) schemas are indeed the sum of all of their parts, so render each + // subschema and simply merge the rendered subschemas together. + for subschema in subschemas { + let subschema_renderer = SchemaRenderer::new(querier, subschema); + let rendered_subschema = subschema_renderer.render()?; + data.merge(rendered_subschema); + } + } + SchemaType::OneOf(_subschemas) => {} + SchemaType::AnyOf(_subschemas) => {} + SchemaType::Constant(const_value) => { + // All we need to do is figure out the rendered type for the constant value, so we can + // generate the right type path and stick the constant value in it. + let rendered_const_type = get_rendered_value_type(&schema, const_value)?; + let const_type_path = format!("/type/{}/const", rendered_const_type); + data.write(const_type_path.as_str(), const_value.clone()); + } + SchemaType::Enum(enum_values) => { + // Similar to constant schemas, we just need to figure out the rendered type for each + // enum value, so that we can group them together and then write the grouped values to + // each of their respective type paths. + let mut type_map = HashMap::new(); + + for enum_value in enum_values { + let rendered_enum_type = get_rendered_value_type(&schema, enum_value)?; + let type_group_entry = type_map.entry(rendered_enum_type).or_insert_with(Vec::new); + type_group_entry.push(enum_value.clone()); + } + + let structured_type_map = type_map + .into_iter() + .map(|(key, values)| { + let mut nested = Map::new(); + nested.insert("enum".into(), Value::Array(values)); + + (key, Value::Object(nested)) + }) + .collect::>(); + + data.write("/type", structured_type_map); + } + SchemaType::Typed(_instance_types) => { + // TODO: Technically speaking, we could have multiple instance types declared here, + // which is _entirely_ valid for JSON Schema. The trick is simply that we'll likely want + // to do something equivalent to how we handle composite schemas where we just render + // the schema in the context of each instance type, and then merge that rendered data + // together. + // + // This means that we'll need another render method that operates on a schema + instance + // type basis, since trying to do it all in `render_bare_schema` would get ugly fast. + // + // Practically, all of this is fine for regular ol' data types because they don't + // intersect, but the tricky bit would be if we encountered the null instance type. It's + // a real/valid data type, but the main problem is that there's nothing that really + // makes sense to do with it. + // + // An object property, for example, that can be X or null, is essentially an optional + // field. We handle that by including, or excluding, that property from the object's + // required fields, which is specific to object. + // + // The only real world scenario where we would theoretically hit that is for an untagged + // enum, as a unit variant in an untagged enum is represented by `null` in JSON, in + // terms of its serialized value. _However_, we only generate enums as `oneOf`/`anyOf` + // schemas, so the `null` instance type should only ever show up by itself. + // + // Long story short, we can likely have a hard-coded check that rejects any "X or null" + // instance type groupings, knowing that _we_ never generate schemas like that, but it's + // still technically possible in a real-world JSON Schema document... so we should at + // least make the error message half-way decent so that it explains as much. + todo!() + } + } + + Ok(()) +} + +fn apply_schema_default_value( + _schema: T, + _data: &mut RenderData, +) -> Result<(), RenderError> { + Ok(()) +} + +fn apply_schema_metadata( + schema: T, + data: &mut RenderData, +) -> Result<(), RenderError> { + // If the schema is marked as being templateable, update the syntax of the string type field to + // use the special `template` sentinel value, which drives template-specific logic during the + // documentation generation phase. + if schema.has_flag_attribute(constants::DOCS_META_TEMPLATEABLE)? && data.exists("/type/string") + { + data.write("/type/string/syntax", "template"); + } + + // TODO: Add examples. + // TODO: Add units. + // TODO: Syntax override. + + Ok(()) +} + +fn apply_schema_description( + schema: T, + data: &mut RenderData, +) -> Result<(), RenderError> { + if let Some(description) = render_schema_description(schema)? { + data.write("/description", description); + } + + Ok(()) +} + +fn get_rendered_value_type( + _schema: T, + _value: &Value, +) -> Result { + todo!() +} + +fn render_schema_description(schema: T) -> Result, RenderError> { + let maybe_title = schema.title(); + let maybe_description = schema.description(); + + match (maybe_title, maybe_description) { + (Some(_title), None) => Err(RenderError::Failed { + reason: "a schema should never have a title without a description".into(), + }), + (None, None) => Ok(None), + (None, Some(description)) => Ok(Some(description.trim().to_string())), + (Some(title), Some(description)) => { + let concatenated = format!("{}\n\n{}", title, description); + Ok(Some(concatenated.trim().to_string())) + } + } +} diff --git a/lib/enrichment/Cargo.toml b/lib/enrichment/Cargo.toml new file mode 100644 index 0000000000000..626b907eece08 --- /dev/null +++ b/lib/enrichment/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "enrichment" +version = "0.1.0" +authors = ["Vector Contributors "] +edition = "2021" +publish = false + +[dependencies] +arc-swap = { version = "1.7.1", default-features = false } +chrono.workspace = true +dyn-clone = { version = "1.0.18", default-features = false } +vrl.workspace = true diff --git a/lib/codec/LICENSE b/lib/enrichment/LICENSE similarity index 100% rename from lib/codec/LICENSE rename to lib/enrichment/LICENSE diff --git a/lib/enrichment/src/find_enrichment_table_records.rs b/lib/enrichment/src/find_enrichment_table_records.rs new file mode 100644 index 0000000000000..f2ec4313b60d5 --- /dev/null +++ b/lib/enrichment/src/find_enrichment_table_records.rs @@ -0,0 +1,221 @@ +use std::collections::BTreeMap; +use vrl::prelude::*; + +use crate::vrl_util::is_case_sensitive; +use crate::{ + vrl_util::{self, add_index, evaluate_condition}, + Case, Condition, IndexHandle, TableRegistry, TableSearch, +}; + +fn find_enrichment_table_records( + select: Option, + enrichment_tables: &TableSearch, + table: &str, + case_sensitive: Case, + condition: &[Condition], + index: Option, +) -> Resolved { + let select = select + .map(|select| match select { + Value::Array(arr) => arr + .iter() + .map(|value| Ok(value.try_bytes_utf8_lossy()?.to_string())) + .collect::, _>>(), + value => Err(ValueError::Expected { + got: value.kind(), + expected: Kind::array(Collection::any()), + }), + }) + .transpose()?; + + let data = enrichment_tables + .find_table_rows( + table, + case_sensitive, + condition, + select.as_ref().map(|select| select.as_ref()), + index, + )? + .into_iter() + .map(Value::Object) + .collect(); + Ok(Value::Array(data)) +} + +#[derive(Clone, Copy, Debug)] +pub struct FindEnrichmentTableRecords; +impl Function for FindEnrichmentTableRecords { + fn identifier(&self) -> &'static str { + "find_enrichment_table_records" + } + + fn parameters(&self) -> &'static [Parameter] { + &[ + Parameter { + keyword: "table", + kind: kind::BYTES, + required: true, + }, + Parameter { + keyword: "condition", + kind: kind::OBJECT, + required: true, + }, + Parameter { + keyword: "select", + kind: kind::ARRAY, + required: false, + }, + Parameter { + keyword: "case_sensitive", + kind: kind::BOOLEAN, + required: false, + }, + ] + } + + fn examples(&self) -> &'static [Example] { + &[Example { + title: "find records", + source: r#"find_enrichment_table_records!("test", {"surname": "Smith"})"#, + result: Ok( + indoc! { r#"[{"id": 1, "firstname": "Bob", "surname": "Smith"}, + {"id": 2, "firstname": "Fred", "surname": "Smith"}]"#, + }, + ), + }] + } + + fn compile( + &self, + state: &TypeState, + ctx: &mut FunctionCompileContext, + arguments: ArgumentList, + ) -> Compiled { + let registry = ctx + .get_external_context_mut::() + .ok_or(Box::new(vrl_util::Error::TablesNotLoaded) as Box)?; + + let tables = registry + .table_ids() + .into_iter() + .map(Value::from) + .collect::>(); + + let table = arguments + .required_enum("table", &tables, state)? + .try_bytes_utf8_lossy() + .expect("table is not valid utf8") + .into_owned(); + let condition = arguments.required_object("condition")?; + + let select = arguments.optional("select"); + + let case_sensitive = is_case_sensitive(&arguments, state)?; + let index = Some( + add_index(registry, &table, case_sensitive, &condition) + .map_err(|err| Box::new(err) as Box<_>)?, + ); + + Ok(FindEnrichmentTableRecordsFn { + table, + condition, + index, + select, + case_sensitive, + enrichment_tables: registry.as_readonly(), + } + .as_expr()) + } +} + +#[derive(Debug, Clone)] +pub struct FindEnrichmentTableRecordsFn { + table: String, + condition: BTreeMap, + index: Option, + select: Option>, + case_sensitive: Case, + enrichment_tables: TableSearch, +} + +impl FunctionExpression for FindEnrichmentTableRecordsFn { + fn resolve(&self, ctx: &mut Context) -> Resolved { + let condition = self + .condition + .iter() + .map(|(key, value)| { + let value = value.resolve(ctx)?; + evaluate_condition(key, value) + }) + .collect::>>()?; + + let select = self + .select + .as_ref() + .map(|array| array.resolve(ctx)) + .transpose()?; + + let table = &self.table; + let case_sensitive = self.case_sensitive; + let index = self.index; + let enrichment_tables = &self.enrichment_tables; + + find_enrichment_table_records( + select, + enrichment_tables, + table, + case_sensitive, + &condition, + index, + ) + } + + fn type_def(&self, _: &TypeState) -> TypeDef { + TypeDef::array(Collection::from_unknown(Kind::object(Collection::any()))).fallible() + } +} + +#[cfg(test)] +mod tests { + use vrl::compiler::state::RuntimeState; + use vrl::compiler::TargetValue; + use vrl::compiler::TimeZone; + use vrl::value; + use vrl::value::Secrets; + + use super::*; + use crate::test_util::get_table_registry; + + #[test] + fn find_table_row() { + let registry = get_table_registry(); + let func = FindEnrichmentTableRecordsFn { + table: "dummy1".to_string(), + condition: BTreeMap::from([( + "field".into(), + expression::Literal::from("value").into(), + )]), + index: Some(IndexHandle(999)), + select: None, + case_sensitive: Case::Sensitive, + enrichment_tables: registry.as_readonly(), + }; + + let tz = TimeZone::default(); + let object: Value = ObjectMap::new().into(); + let mut target = TargetValue { + value: object, + metadata: value!({}), + secrets: Secrets::new(), + }; + let mut runtime_state = RuntimeState::default(); + let mut ctx = Context::new(&mut target, &mut runtime_state, &tz); + + registry.finish_load(); + + let got = func.resolve(&mut ctx); + + assert_eq!(Ok(value![vec![value!({ "field": "result" })]]), got); + } +} diff --git a/lib/enrichment/src/get_enrichment_table_record.rs b/lib/enrichment/src/get_enrichment_table_record.rs new file mode 100644 index 0000000000000..ddd99c99c804b --- /dev/null +++ b/lib/enrichment/src/get_enrichment_table_record.rs @@ -0,0 +1,213 @@ +use std::collections::BTreeMap; +use vrl::prelude::*; + +use crate::vrl_util::is_case_sensitive; +use crate::{ + vrl_util::{self, add_index, evaluate_condition}, + Case, Condition, IndexHandle, TableRegistry, TableSearch, +}; + +fn get_enrichment_table_record( + select: Option, + enrichment_tables: &TableSearch, + table: &str, + case_sensitive: Case, + condition: &[Condition], + index: Option, +) -> Resolved { + let select = select + .map(|array| match array { + Value::Array(arr) => arr + .iter() + .map(|value| Ok(value.try_bytes_utf8_lossy()?.to_string())) + .collect::, _>>(), + value => Err(ValueError::Expected { + got: value.kind(), + expected: Kind::array(Collection::any()), + }), + }) + .transpose()?; + let data = enrichment_tables.find_table_row( + table, + case_sensitive, + condition, + select.as_ref().map(|select| select.as_ref()), + index, + )?; + + Ok(Value::Object(data)) +} + +#[derive(Clone, Copy, Debug)] +pub struct GetEnrichmentTableRecord; +impl Function for GetEnrichmentTableRecord { + fn identifier(&self) -> &'static str { + "get_enrichment_table_record" + } + + fn parameters(&self) -> &'static [Parameter] { + &[ + Parameter { + keyword: "table", + kind: kind::BYTES, + required: true, + }, + Parameter { + keyword: "condition", + kind: kind::OBJECT, + required: true, + }, + Parameter { + keyword: "select", + kind: kind::ARRAY, + required: false, + }, + Parameter { + keyword: "case_sensitive", + kind: kind::BOOLEAN, + required: false, + }, + ] + } + + fn examples(&self) -> &'static [Example] { + &[Example { + title: "find records", + source: r#"get_enrichment_table_record!("test", {"id": 1})"#, + result: Ok(r#"{"id": 1, "firstname": "Bob", "surname": "Smith"}"#), + }] + } + + fn compile( + &self, + state: &TypeState, + ctx: &mut FunctionCompileContext, + arguments: ArgumentList, + ) -> Compiled { + let registry = ctx + .get_external_context_mut::() + .ok_or(Box::new(vrl_util::Error::TablesNotLoaded) as Box)?; + + let tables = registry + .table_ids() + .into_iter() + .map(Value::from) + .collect::>(); + + let table = arguments + .required_enum("table", &tables, state)? + .try_bytes_utf8_lossy() + .expect("table is not valid utf8") + .into_owned(); + let condition = arguments.required_object("condition")?; + + let select = arguments.optional("select"); + + let case_sensitive = is_case_sensitive(&arguments, state)?; + let index = Some( + add_index(registry, &table, case_sensitive, &condition) + .map_err(|err| Box::new(err) as Box<_>)?, + ); + + Ok(GetEnrichmentTableRecordFn { + table, + condition, + index, + select, + case_sensitive, + enrichment_tables: registry.as_readonly(), + } + .as_expr()) + } +} + +#[derive(Debug, Clone)] +pub struct GetEnrichmentTableRecordFn { + table: String, + condition: BTreeMap, + index: Option, + select: Option>, + case_sensitive: Case, + enrichment_tables: TableSearch, +} + +impl FunctionExpression for GetEnrichmentTableRecordFn { + fn resolve(&self, ctx: &mut Context) -> Resolved { + let condition = self + .condition + .iter() + .map(|(key, value)| { + let value = value.resolve(ctx)?; + evaluate_condition(key, value) + }) + .collect::>>()?; + + let select = self + .select + .as_ref() + .map(|array| array.resolve(ctx)) + .transpose()?; + + let table = &self.table; + let case_sensitive = self.case_sensitive; + let index = self.index; + let enrichment_tables = &self.enrichment_tables; + + get_enrichment_table_record( + select, + enrichment_tables, + table, + case_sensitive, + &condition, + index, + ) + } + + fn type_def(&self, _: &TypeState) -> TypeDef { + TypeDef::object(Collection::any()).fallible() + } +} + +#[cfg(test)] +mod tests { + use vrl::compiler::prelude::TimeZone; + use vrl::compiler::state::RuntimeState; + use vrl::compiler::TargetValue; + use vrl::value; + use vrl::value::Secrets; + + use super::*; + use crate::test_util::get_table_registry; + + #[test] + fn find_table_row() { + let registry = get_table_registry(); + let func = GetEnrichmentTableRecordFn { + table: "dummy1".to_string(), + condition: BTreeMap::from([( + "field".into(), + expression::Literal::from("value").into(), + )]), + index: Some(IndexHandle(999)), + select: None, + case_sensitive: Case::Sensitive, + enrichment_tables: registry.as_readonly(), + }; + + let tz = TimeZone::default(); + let object: Value = BTreeMap::new().into(); + let mut target = TargetValue { + value: object, + metadata: value!({}), + secrets: Secrets::new(), + }; + let mut runtime_state = RuntimeState::default(); + let mut ctx = Context::new(&mut target, &mut runtime_state, &tz); + + registry.finish_load(); + + let got = func.resolve(&mut ctx); + + assert_eq!(Ok(value! ({ "field": "result" })), got); + } +} diff --git a/lib/enrichment/src/lib.rs b/lib/enrichment/src/lib.rs new file mode 100644 index 0000000000000..52f2a547f50f1 --- /dev/null +++ b/lib/enrichment/src/lib.rs @@ -0,0 +1,85 @@ +#![deny(warnings)] + +pub mod find_enrichment_table_records; +pub mod get_enrichment_table_record; +pub mod tables; + +#[cfg(test)] +mod test_util; +mod vrl_util; + +use dyn_clone::DynClone; +pub use tables::{TableRegistry, TableSearch}; +use vrl::compiler::Function; +use vrl::value::{ObjectMap, Value}; + +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub struct IndexHandle(pub usize); + +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum Condition<'a> { + /// Condition exactly matches the field value. + Equals { field: &'a str, value: Value }, + /// The date in the field is between from and to (inclusive). + BetweenDates { + field: &'a str, + from: chrono::DateTime, + to: chrono::DateTime, + }, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Case { + Sensitive, + Insensitive, +} + +/// Enrichment tables represent additional data sources that can be used to enrich the event data +/// passing through Vector. +pub trait Table: DynClone { + /// Search the enrichment table data with the given condition. + /// All conditions must match (AND). + /// + /// # Errors + /// Errors if no rows, or more than 1 row is found. + fn find_table_row<'a>( + &self, + case: Case, + condition: &'a [Condition<'a>], + select: Option<&[String]>, + index: Option, + ) -> Result; + + /// Search the enrichment table data with the given condition. + /// All conditions must match (AND). + /// Can return multiple matched records + fn find_table_rows<'a>( + &self, + case: Case, + condition: &'a [Condition<'a>], + select: Option<&[String]>, + index: Option, + ) -> Result, String>; + + /// Hints to the enrichment table what data is going to be searched to allow it to index the + /// data in advance. + /// + /// # Errors + /// Errors if the fields are not in the table. + fn add_index(&mut self, case: Case, fields: &[&str]) -> Result; + + /// Returns a list of the field names that are in each index + fn index_fields(&self) -> Vec<(Case, Vec)>; + + /// Returns true if the underlying data has changed and the table needs reloading. + fn needs_reload(&self) -> bool; +} + +dyn_clone::clone_trait_object!(Table); + +pub fn vrl_functions() -> Vec> { + vec![ + Box::new(get_enrichment_table_record::GetEnrichmentTableRecord) as _, + Box::new(find_enrichment_table_records::FindEnrichmentTableRecords) as _, + ] +} diff --git a/lib/enrichment/src/tables.rs b/lib/enrichment/src/tables.rs new file mode 100644 index 0000000000000..522d77c1c2b78 --- /dev/null +++ b/lib/enrichment/src/tables.rs @@ -0,0 +1,465 @@ +//! The Enrichment `TableRegistry` manages the collection of `Table`s loaded +//! into Vector. Enrichment Tables go through two stages. +//! +//! ## 1. Writing +//! +//! The tables are loaded. There are two elements that need loading. The first +//! is the actual data. This is loaded at config load time, the actual loading +//! is performed by the implementation of the `EnrichmentTable` trait. Next, the +//! tables are passed through Vectors `Transform` components, particularly the +//! `Remap` transform. These Transforms are able to determine which fields we +//! will want to lookup whilst Vector is running. They can notify the tables of +//! these fields so that the data can be indexed. +//! +//! During this phase, the data is loaded within a single thread, so can be +//! loaded directly into a `HashMap`. +//! +//! ## 2. Reading +//! +//! Once all the data has been loaded we can move to the next stage. This is +//! signified by calling the `finish_load` method. At this point all the data is +//! swapped into the `ArcSwap` of the `tables` field. `ArcSwap` provides +//! lock-free read-only access to the data. From this point on we have fast, +//! efficient read-only access and can no longer add indexes or otherwise mutate +//! the data. +//! +//! This data within the `ArcSwap` is accessed through the `TableSearch` +//! struct. Any transform that needs access to this can call +//! `TableRegistry::as_readonly`. This returns a cheaply clonable struct that +//! implements `vrl:EnrichmentTableSearch` through with the enrichment tables +//! can be searched. + +use std::{ + collections::HashMap, + sync::{Arc, Mutex}, +}; + +use arc_swap::ArcSwap; +use vrl::value::ObjectMap; + +use super::{Condition, IndexHandle, Table}; +use crate::Case; + +/// A hashmap of name => implementation of an enrichment table. +type TableMap = HashMap>; + +#[derive(Clone, Default)] +pub struct TableRegistry { + loading: Arc>>, + tables: Arc>>, +} + +/// Pessimistic Eq implementation for caching purposes +impl PartialEq for TableRegistry { + fn eq(&self, other: &Self) -> bool { + Arc::ptr_eq(&self.tables, &other.tables) && Arc::ptr_eq(&self.loading, &other.loading) + || self.tables.load().is_none() + && other.tables.load().is_none() + && self.loading.lock().expect("lock poison").is_none() + && other.loading.lock().expect("lock poison").is_none() + } +} +impl Eq for TableRegistry {} + +impl TableRegistry { + /// Load the given Enrichment Tables into the registry. This can be new tables + /// loaded from the config, or tables that need to be reloaded because the + /// underlying data has changed. + /// + /// If there are no tables currently loaded into the registry, this is a + /// simple operation, we simply load the tables into the `loading` field. + /// + /// If there are tables that have already been loaded things get a bit more + /// complicated. This can occur when the config is reloaded. Vector will be + /// currently running and transforming events, thus the tables loaded into + /// the `tables` field could be in active use. Since there is no lock + /// against these tables, we cannot mutate this list. We do need to have a + /// full list of tables in the `loading` field since there may be some + /// transforms that will need to add indexes to these tables during the + /// reload. + /// + /// Our only option is to clone the data that is in `tables` and move it + /// into the `loading` field so it can be mutated. This could be a + /// potentially expensive operation. For the period whilst the config is + /// reloading we could potentially have double the enrichment data loaded + /// into memory. + /// + /// Once loading is complete, the data is swapped out of `loading` and we + /// return to a single copy of the tables. + /// + /// # Panics + /// + /// Panics if the Mutex is poisoned. + pub fn load(&self, mut tables: TableMap) { + let mut loading = self.loading.lock().unwrap(); + let existing = self.tables.load(); + if let Some(existing) = &**existing { + // We already have some tables + let extend = existing + .iter() + .filter(|(key, _)| !tables.contains_key(*key)) + .map(|(key, value)| (key.clone(), value.clone())) + .collect::>(); + + tables.extend(extend); + } + match *loading { + None => *loading = Some(tables), + Some(ref mut loading) => loading.extend(tables), + } + } + + /// Swap the data out of the `HashTable` into the `ArcSwap`. + /// + /// From this point we can no longer add indexes to the tables, but are now + /// allowed to read the data. + /// + /// # Panics + /// + /// Panics if the Mutex is poisoned. + pub fn finish_load(&self) { + let mut tables_lock = self.loading.lock().unwrap(); + let tables = tables_lock.take(); + self.tables.swap(Arc::new(tables)); + } + + /// Return a list of the available tables that we can write to. + /// + /// This only works in the writing stage and will acquire a lock to retrieve + /// the tables. + /// + /// # Panics + /// + /// Panics if the Mutex is poisoned. + pub fn table_ids(&self) -> Vec { + let locked = self.loading.lock().unwrap(); + match *locked { + Some(ref tables) => tables.iter().map(|(key, _)| key.clone()).collect(), + None => Vec::new(), + } + } + + /// Adds an index to the given Enrichment Table. + /// + /// If we are in the reading stage, this function will error. + /// + /// # Panics + /// + /// Panics if the Mutex is poisoned. + pub fn add_index( + &mut self, + table: &str, + case: Case, + fields: &[&str], + ) -> Result { + let mut locked = self.loading.lock().unwrap(); + + match *locked { + None => Err("finish_load has been called".to_string()), + Some(ref mut tables) => match tables.get_mut(table) { + None => Err(format!("table '{}' not loaded", table)), + Some(table) => table.add_index(case, fields), + }, + } + } + + /// Returns a cheaply clonable struct through that provides lock free read + /// access to the enrichment tables. + pub fn as_readonly(&self) -> TableSearch { + TableSearch(self.tables.clone()) + } + + /// Returns the indexes that have been applied to the given table. + /// If the table is reloaded we need these to reapply them to the new reloaded tables. + pub fn index_fields(&self, table: &str) -> Vec<(Case, Vec)> { + match &**self.tables.load() { + Some(tables) => tables + .get(table) + .map(|table| table.index_fields()) + .unwrap_or_default(), + None => Vec::new(), + } + } + + /// Checks if the table needs reloading. + /// If in doubt (the table isn't in our list) we return true. + pub fn needs_reload(&self, table: &str) -> bool { + match &**self.tables.load() { + Some(tables) => tables + .get(table) + .map(|table| table.needs_reload()) + .unwrap_or(true), + None => true, + } + } +} + +impl std::fmt::Debug for TableRegistry { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fmt_enrichment_table(f, "TableRegistry", &self.tables) + } +} + +/// Provides read only access to the enrichment tables via the +/// `vrl::EnrichmentTableSearch` trait. Cloning this object is designed to be +/// cheap. The underlying data will be shared by all clones. +#[derive(Clone, Default)] +pub struct TableSearch(Arc>>); + +impl TableSearch { + /// Search the given table to find the data. + /// + /// If we are in the writing stage, this function will return an error. + pub fn find_table_row<'a>( + &self, + table: &str, + case: Case, + condition: &'a [Condition<'a>], + select: Option<&[String]>, + index: Option, + ) -> Result { + let tables = self.0.load(); + if let Some(ref tables) = **tables { + match tables.get(table) { + None => Err(format!("table {} not loaded", table)), + Some(table) => table.find_table_row(case, condition, select, index), + } + } else { + Err("finish_load not called".to_string()) + } + } + + /// Search the enrichment table data with the given condition. + /// All conditions must match (AND). + /// Can return multiple matched records + pub fn find_table_rows<'a>( + &self, + table: &str, + case: Case, + condition: &'a [Condition<'a>], + select: Option<&[String]>, + index: Option, + ) -> Result, String> { + let tables = self.0.load(); + if let Some(ref tables) = **tables { + match tables.get(table) { + None => Err(format!("table {} not loaded", table)), + Some(table) => table.find_table_rows(case, condition, select, index), + } + } else { + Err("finish_load not called".to_string()) + } + } +} + +impl std::fmt::Debug for TableSearch { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + fmt_enrichment_table(f, "EnrichmentTableSearch", &self.0) + } +} + +/// Provide some fairly rudimentary debug output for enrichment tables. +fn fmt_enrichment_table( + f: &mut std::fmt::Formatter<'_>, + name: &'static str, + tables: &Arc>>, +) -> std::fmt::Result { + let tables = tables.load(); + match **tables { + Some(ref tables) => { + let mut tables = tables.iter().fold(String::from("("), |mut s, (key, _)| { + s.push_str(key); + s.push_str(", "); + s + }); + + tables.truncate(std::cmp::max(tables.len(), 0)); + tables.push(')'); + + write!(f, "{} {}", name, tables) + } + None => write!(f, "{} loading", name), + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::test_util::DummyEnrichmentTable; + use vrl::value::Value; + + #[test] + fn tables_loaded() { + let mut tables: TableMap = HashMap::new(); + tables.insert("dummy1".to_string(), Box::new(DummyEnrichmentTable::new())); + tables.insert("dummy2".to_string(), Box::new(DummyEnrichmentTable::new())); + + let registry = super::TableRegistry::default(); + registry.load(tables); + let mut result = registry.table_ids(); + result.sort(); + assert_eq!(vec!["dummy1", "dummy2"], result); + } + + #[test] + fn can_add_indexes() { + let mut tables: TableMap = HashMap::new(); + let indexes = Arc::new(Mutex::new(Vec::new())); + let dummy = DummyEnrichmentTable::new_with_index(indexes.clone()); + tables.insert("dummy1".to_string(), Box::new(dummy)); + let mut registry = super::TableRegistry::default(); + registry.load(tables); + assert_eq!( + Ok(IndexHandle(0)), + registry.add_index("dummy1", Case::Sensitive, &["erk"]) + ); + + let indexes = indexes.lock().unwrap(); + assert_eq!(vec!["erk".to_string()], *indexes[0]); + } + + #[test] + fn can_not_find_table_row_before_finish() { + let mut tables: TableMap = HashMap::new(); + let dummy = DummyEnrichmentTable::new(); + tables.insert("dummy1".to_string(), Box::new(dummy)); + let registry = super::TableRegistry::default(); + registry.load(tables); + let tables = registry.as_readonly(); + + assert_eq!( + Err("finish_load not called".to_string()), + tables.find_table_row( + "dummy1", + Case::Sensitive, + &[Condition::Equals { + field: "thing", + value: Value::from("thang"), + }], + None, + None + ) + ); + } + + #[test] + fn can_not_add_indexes_after_finish() { + let mut tables: TableMap = HashMap::new(); + let dummy = DummyEnrichmentTable::new(); + tables.insert("dummy1".to_string(), Box::new(dummy)); + let mut registry = super::TableRegistry::default(); + registry.load(tables); + registry.finish_load(); + assert_eq!( + Err("finish_load has been called".to_string()), + registry.add_index("dummy1", Case::Sensitive, &["erk"]) + ); + } + + #[test] + fn can_find_table_row_after_finish() { + let mut tables: TableMap = HashMap::new(); + let dummy = DummyEnrichmentTable::new(); + tables.insert("dummy1".to_string(), Box::new(dummy)); + + let registry = super::TableRegistry::default(); + registry.load(tables); + let tables_search = registry.as_readonly(); + + registry.finish_load(); + + assert_eq!( + Ok(ObjectMap::from([("field".into(), Value::from("result"))])), + tables_search.find_table_row( + "dummy1", + Case::Sensitive, + &[Condition::Equals { + field: "thing", + value: Value::from("thang"), + }], + None, + None + ) + ); + } + + #[test] + fn can_reload() { + let mut tables: TableMap = HashMap::new(); + tables.insert("dummy1".to_string(), Box::new(DummyEnrichmentTable::new())); + + let registry = super::TableRegistry::default(); + registry.load(tables); + + assert_eq!(vec!["dummy1".to_string()], registry.table_ids()); + + registry.finish_load(); + + // After we finish load there are no tables in the list + assert!(registry.table_ids().is_empty()); + + let mut tables: TableMap = HashMap::new(); + tables.insert("dummy2".to_string(), Box::new(DummyEnrichmentTable::new())); + + // A load should put both tables back into the list. + registry.load(tables); + let mut table_ids = registry.table_ids(); + table_ids.sort(); + + assert_eq!(vec!["dummy1".to_string(), "dummy2".to_string()], table_ids,); + } + + #[test] + fn reloads_existing_tables() { + let mut tables: TableMap = HashMap::new(); + tables.insert("dummy1".to_string(), Box::new(DummyEnrichmentTable::new())); + tables.insert("dummy2".to_string(), Box::new(DummyEnrichmentTable::new())); + + let registry = super::TableRegistry::default(); + registry.load(tables); + registry.finish_load(); + + // After we finish load there are no tables in the list + assert!(registry.table_ids().is_empty()); + + let mut new_data = ObjectMap::new(); + new_data.insert("thing".into(), Value::Null); + + let mut tables: TableMap = HashMap::new(); + tables.insert( + "dummy2".to_string(), + Box::new(DummyEnrichmentTable::new_with_data(new_data)), + ); + + // A load should put both tables back into the list. + registry.load(tables); + let tables = registry.loading.lock().unwrap(); + let tables = tables.clone().unwrap(); + + // dummy1 should still have old data. + assert_eq!( + Value::from("result"), + tables + .get("dummy1") + .unwrap() + .find_table_row(Case::Sensitive, &Vec::new(), None, None) + .unwrap() + .get("field") + .cloned() + .unwrap() + ); + + // dummy2 should have new data. + assert_eq!( + Value::Null, + tables + .get("dummy2") + .unwrap() + .find_table_row(Case::Sensitive, &Vec::new(), None, None) + .unwrap() + .get("thing") + .cloned() + .unwrap() + ); + } +} diff --git a/lib/enrichment/src/test_util.rs b/lib/enrichment/src/test_util.rs new file mode 100644 index 0000000000000..1eed09e200ca6 --- /dev/null +++ b/lib/enrichment/src/test_util.rs @@ -0,0 +1,100 @@ +use std::{ + collections::HashMap, + sync::{Arc, Mutex}, +}; + +use vrl::value::{ObjectMap, Value}; + +use crate::{Case, Condition, IndexHandle, Table, TableRegistry}; + +#[derive(Debug, Clone)] +pub(crate) struct DummyEnrichmentTable { + data: ObjectMap, + indexes: Arc>>>, +} + +impl DummyEnrichmentTable { + pub(crate) fn new() -> Self { + Self::new_with_index(Arc::new(Mutex::new(Vec::new()))) + } + + pub(crate) fn new_with_index(indexes: Arc>>>) -> Self { + Self { + data: ObjectMap::from([("field".into(), Value::from("result"))]), + indexes, + } + } + + pub(crate) fn new_with_data(data: ObjectMap) -> Self { + Self { + data, + indexes: Default::default(), + } + } +} + +impl Table for DummyEnrichmentTable { + fn find_table_row( + &self, + _case: Case, + _condition: &[Condition], + _select: Option<&[String]>, + _index: Option, + ) -> Result { + Ok(self.data.clone()) + } + + fn find_table_rows( + &self, + _case: Case, + _condition: &[Condition], + _select: Option<&[String]>, + _index: Option, + ) -> Result, String> { + Ok(vec![self.data.clone()]) + } + + fn add_index(&mut self, _case: Case, fields: &[&str]) -> Result { + let mut indexes = self.indexes.lock().unwrap(); + indexes.push(fields.iter().map(|s| (*s).to_string()).collect()); + Ok(IndexHandle(indexes.len() - 1)) + } + + fn index_fields(&self) -> Vec<(Case, Vec)> { + Vec::new() + } + + fn needs_reload(&self) -> bool { + false + } +} + +/// Create a table registry with dummy data +pub(crate) fn get_table_registry() -> TableRegistry { + let registry = TableRegistry::default(); + + let mut tables: HashMap> = HashMap::new(); + tables.insert("dummy1".to_string(), Box::new(DummyEnrichmentTable::new())); + tables.insert("dummy2".to_string(), Box::new(DummyEnrichmentTable::new())); + + registry.load(tables); + + registry +} + +/// Create a table registry with dummy data +pub(crate) fn get_table_registry_with_tables( + tables: Vec<(String, DummyEnrichmentTable)>, +) -> TableRegistry { + let registry = TableRegistry::default(); + + let mut tablesmap: HashMap> = HashMap::new(); + + for (name, table) in tables.into_iter() { + tablesmap.insert(name, Box::new(table) as Box); + } + + registry.load(tablesmap); + + registry +} diff --git a/lib/enrichment/src/vrl_util.rs b/lib/enrichment/src/vrl_util.rs new file mode 100644 index 0000000000000..61e7044c53c99 --- /dev/null +++ b/lib/enrichment/src/vrl_util.rs @@ -0,0 +1,169 @@ +//! Utilities shared between both VRL functions. +use std::collections::BTreeMap; + +use crate::{Case, Condition, IndexHandle, TableRegistry}; +use vrl::diagnostic::{Label, Span}; +use vrl::prelude::*; + +#[derive(Debug)] +pub enum Error { + TablesNotLoaded, +} + +impl fmt::Display for Error { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Error::TablesNotLoaded => write!(f, "enrichment tables not loaded"), + } + } +} + +impl std::error::Error for Error {} + +impl DiagnosticMessage for Error { + fn code(&self) -> usize { + 111 + } + + fn labels(&self) -> Vec(self, map: A) -> Result + where + A: de::MapAccess<'de>, + { + BufferTypeVisitor::visit_map_impl(map) + } +} + +impl<'de> Deserialize<'de> for BufferType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + deserializer.deserialize_map(BufferTypeVisitor) + } +} + +pub const fn memory_buffer_default_max_events() -> NonZeroUsize { + unsafe { NonZeroUsize::new_unchecked(500) } +} + +/// Disk usage configuration for disk-backed buffers. +#[derive(Debug)] +pub struct DiskUsage { + id: ComponentKey, + data_dir: PathBuf, + max_size: NonZeroU64, +} + +impl DiskUsage { + /// Creates a new `DiskUsage` with the given usage configuration. + pub fn new(id: ComponentKey, data_dir: PathBuf, max_size: NonZeroU64) -> Self { + Self { + id, + data_dir, + max_size, + } + } + + /// Gets the component key for the component this buffer is attached to. + pub fn id(&self) -> &ComponentKey { + &self.id + } + + /// Gets the maximum size, in bytes, that this buffer can consume on disk. + pub fn max_size(&self) -> u64 { + self.max_size.get() + } + + /// Gets the data directory path that this buffer will store its files on disk. + pub fn data_dir(&self) -> &Path { + self.data_dir.as_path() + } +} + +/// A specific type of buffer stage. +#[configurable_component(no_deser)] +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[serde(rename_all = "snake_case", tag = "type")] +#[configurable(metadata(docs::enum_tag_description = "The type of buffer to use."))] +pub enum BufferType { + /// A buffer stage backed by an in-memory channel provided by `tokio`. + /// + /// This is more performant, but less durable. Data will be lost if Vector is restarted + /// forcefully or crashes. + #[configurable(title = "Events are buffered in memory.")] + #[serde(rename = "memory")] + Memory { + /// The maximum number of events allowed in the buffer. + #[serde(default = "memory_buffer_default_max_events")] + max_events: NonZeroUsize, + + #[configurable(derived)] + #[serde(default)] + when_full: WhenFull, + }, + + /// A buffer stage backed by disk. + /// + /// This is less performant, but more durable. Data that has been synchronized to disk will not + /// be lost if Vector is restarted forcefully or crashes. + /// + /// Data is synchronized to disk every 500ms. + #[configurable(title = "Events are buffered on disk.")] + #[serde(rename = "disk")] + DiskV2 { + /// The maximum size of the buffer on disk. + /// + /// Must be at least ~256 megabytes (268435488 bytes). + #[configurable( + validation(range(min = 268435488)), + metadata(docs::type_unit = "bytes") + )] + max_size: NonZeroU64, + + #[configurable(derived)] + #[serde(default)] + when_full: WhenFull, + }, +} + +impl BufferType { + /// Gets the metadata around disk usage by the buffer, if supported. + /// + /// For buffer types that write to disk, `Some(value)` is returned with their usage metadata, + /// such as maximum size and data directory path. + /// + /// Otherwise, `None` is returned. + pub fn disk_usage( + &self, + global_data_dir: Option, + id: &ComponentKey, + ) -> Option { + // All disk-backed buffers require the global data directory to be specified, and + // non-disk-backed buffers do not require it to be set... so if it's not set here, we ignore + // it because either: + // - it's a non-disk-backed buffer, in which case we can just ignore, or + // - this method is being called at a point before we actually check that a global data + // directory is specified because we have a disk buffer present + // + // Since we're not able to emit/surface errors about a lack of a global data directory from + // where this method is called, we simply return `None` to let it reach the code that _does_ + // emit/surface those errors... and once those errors are fixed, this code can return valid + // disk usage information, which will then be validated and emit any errors for _that_ + // aspect. + match global_data_dir { + None => None, + Some(global_data_dir) => match self { + Self::Memory { .. } => None, + Self::DiskV2 { max_size, .. } => { + let data_dir = crate::variants::disk_v2::get_disk_v2_data_dir_path( + &global_data_dir, + id.id(), + ); + + Some(DiskUsage::new(id.clone(), data_dir, *max_size)) + } + }, + } + } + + /// Adds this buffer type as a stage to an existing [`TopologyBuilder`]. + /// + /// # Errors + /// + /// If a required parameter is missing, or if there is an error building the topology itself, an + /// error variant will be returned describing the error + pub fn add_to_builder( + &self, + builder: &mut TopologyBuilder, + data_dir: Option, + id: String, + ) -> Result<(), BufferBuildError> + where + T: Bufferable + Clone + Finalizable, + { + match *self { + BufferType::Memory { + when_full, + max_events, + } => { + builder.stage(MemoryBuffer::new(max_events), when_full); + } + BufferType::DiskV2 { + when_full, + max_size, + } => { + let data_dir = data_dir.ok_or(BufferBuildError::RequiresDataDir)?; + builder.stage(DiskV2Buffer::new(id, data_dir, max_size), when_full); + } + }; + + Ok(()) + } +} + +/// Buffer configuration. +/// +/// Buffers are compromised of stages(*) that form a buffer _topology_, with input items being +/// subject to configurable behavior when each stage reaches configured limits. Buffers are +/// configured for sinks, where backpressure from the sink can be handled by the buffer. This +/// allows absorbing temporary load, or potentially adding write-ahead-log behavior to a sink to +/// increase the durability of a given Vector pipeline. +/// +/// While we use the term "buffer topology" here, a buffer topology is referred to by the more +/// common "buffer" or "buffers" shorthand. This is related to buffers originally being a single +/// component, where you could only choose which buffer type to use. As we expand buffer +/// functionality to allow chaining buffers together, you'll see "buffer topology" used in internal +/// documentation to correctly reflect the internal structure. +/// +// TODO: We need to limit chained buffers to only allowing a single copy of each buffer type to be +// defined, otherwise, for example, two instances of the same disk buffer type in a single chained +// buffer topology would try to both open the same buffer files on disk, which wouldn't work or +// would go horribly wrong. +#[configurable_component] +#[derive(Clone, Debug, PartialEq, Eq)] +#[serde(untagged)] +#[configurable( + title = "Configures the buffering behavior for this sink.", + description = r#"More information about the individual buffer types, and buffer behavior, can be found in the +[Buffering Model][buffering_model] section. + +[buffering_model]: /docs/about/under-the-hood/architecture/buffering-model/"# +)] +pub enum BufferConfig { + /// A single stage buffer topology. + Single(BufferType), + + /// A chained buffer topology. + Chained(Vec), +} + +impl Default for BufferConfig { + fn default() -> Self { + Self::Single(BufferType::Memory { + max_events: memory_buffer_default_max_events(), + when_full: WhenFull::default(), + }) + } +} + +impl BufferConfig { + /// Gets all of the configured stages for this buffer. + pub fn stages(&self) -> &[BufferType] { + match self { + Self::Single(stage) => slice::from_ref(stage), + Self::Chained(stages) => stages.as_slice(), + } + } + + /// Builds the buffer components represented by this configuration. + /// + /// The caller gets back a `Sink` and `Stream` implementation that represent a way to push items + /// into the buffer, as well as pop items out of the buffer, respectively. + /// + /// # Errors + /// + /// If the buffer is configured with anything other than a single stage, an error variant will + /// be thrown. + /// + /// If a disk buffer stage is configured and the data directory provided is `None`, an error + /// variant will be thrown. + #[allow(clippy::needless_pass_by_value)] + pub async fn build( + &self, + data_dir: Option, + buffer_id: String, + span: Span, + ) -> Result<(BufferSender, BufferReceiver), BufferBuildError> + where + T: Bufferable + Clone + Finalizable, + { + let mut builder = TopologyBuilder::default(); + + for stage in self.stages() { + stage.add_to_builder(&mut builder, data_dir.clone(), buffer_id.clone())?; + } + + builder + .build(buffer_id, span) + .await + .context(FailedToBuildTopologySnafu) + } +} + +#[cfg(test)] +mod test { + use std::num::{NonZeroU64, NonZeroUsize}; + + use crate::{BufferConfig, BufferType, WhenFull}; + + fn check_single_stage(source: &str, expected: BufferType) { + let config: BufferConfig = serde_yaml::from_str(source).unwrap(); + assert_eq!(config.stages().len(), 1); + let actual = config.stages().first().unwrap(); + assert_eq!(actual, &expected); + } + + fn check_multiple_stages(source: &str, expected_stages: &[BufferType]) { + let config: BufferConfig = serde_yaml::from_str(source).unwrap(); + assert_eq!(config.stages().len(), expected_stages.len()); + for (actual, expected) in config.stages().iter().zip(expected_stages) { + assert_eq!(actual, expected); + } + } + + const BUFFER_CONFIG_NO_MATCH_ERR: &str = + "data did not match any variant of untagged enum BufferConfig"; + + #[test] + fn parse_empty() { + let source = ""; + let error = serde_yaml::from_str::(source).unwrap_err(); + assert_eq!(error.to_string(), BUFFER_CONFIG_NO_MATCH_ERR); + } + + #[test] + fn parse_only_invalid_keys() { + let source = "foo: 314"; + let error = serde_yaml::from_str::(source).unwrap_err(); + assert_eq!(error.to_string(), BUFFER_CONFIG_NO_MATCH_ERR); + } + + #[test] + fn parse_partial_invalid_keys() { + let source = r"max_size: 100 +max_events: 42 +"; + let error = serde_yaml::from_str::(source).unwrap_err(); + assert_eq!(error.to_string(), BUFFER_CONFIG_NO_MATCH_ERR); + } + + #[test] + fn parse_without_type_tag() { + check_single_stage( + r" + max_events: 100 + ", + BufferType::Memory { + max_events: NonZeroUsize::new(100).unwrap(), + when_full: WhenFull::Block, + }, + ); + } + + #[test] + fn parse_multiple_stages() { + check_multiple_stages( + r" + - max_events: 42 + - max_events: 100 + when_full: drop_newest + ", + &[ + BufferType::Memory { + max_events: NonZeroUsize::new(42).unwrap(), + when_full: WhenFull::Block, + }, + BufferType::Memory { + max_events: NonZeroUsize::new(100).unwrap(), + when_full: WhenFull::DropNewest, + }, + ], + ); + } + + #[test] + fn ensure_field_defaults_for_all_types() { + check_single_stage( + r" + type: memory + ", + BufferType::Memory { + max_events: NonZeroUsize::new(500).unwrap(), + when_full: WhenFull::Block, + }, + ); + + check_single_stage( + r" + type: memory + max_events: 100 + ", + BufferType::Memory { + max_events: NonZeroUsize::new(100).unwrap(), + when_full: WhenFull::Block, + }, + ); + + check_single_stage( + r" + type: memory + when_full: drop_newest + ", + BufferType::Memory { + max_events: NonZeroUsize::new(500).unwrap(), + when_full: WhenFull::DropNewest, + }, + ); + + check_single_stage( + r" + type: memory + when_full: overflow + ", + BufferType::Memory { + max_events: NonZeroUsize::new(500).unwrap(), + when_full: WhenFull::Overflow, + }, + ); + + check_single_stage( + r" + type: disk + max_size: 1024 + ", + BufferType::DiskV2 { + max_size: NonZeroU64::new(1024).unwrap(), + when_full: WhenFull::Block, + }, + ); + } +} diff --git a/lib/vector-buffers/src/encoding.rs b/lib/vector-buffers/src/encoding.rs new file mode 100644 index 0000000000000..a9b1a4e4b0211 --- /dev/null +++ b/lib/vector-buffers/src/encoding.rs @@ -0,0 +1,195 @@ +use std::error; + +use bytes::{Buf, BufMut}; + +/// Converts back and forth between user-friendly metadata types and the on-disk integer representation. +pub trait AsMetadata: Sized { + /// Converts this metadata value into its integer representation. + fn into_u32(self) -> u32; + + /// Converts an integer representation of metadata into its real type, if possible. + /// + /// If the given integer does not represent a valid representation of the given metadata type, + /// possibly due to including bits not valid for the type, and so on, then `None` will be + /// returned. Otherwise, `Some(Self)` will be returned. + fn from_u32(value: u32) -> Option; +} + +impl AsMetadata for () { + fn into_u32(self) -> u32 { + 0 + } + + fn from_u32(_: u32) -> Option { + Some(()) + } +} + +/// An object that can encode and decode itself to and from a buffer. +/// +/// # Metadata +/// +/// While an encoding implementation is typically fixed i.e. `MyJsonEncoderType` only encodes and +/// decodes JSON, we want to provide the ability to change encodings and schemas over time without +/// fundamentally changing all of the code in the buffer implementations. +/// +/// We provide the ability to express "metadata" about the encoding implementation such that any +/// relevant information can be included alongside the encoded object, and then passed back when +/// decoding is required. +/// +/// ## Implementation +/// +/// As designed, an implementor would define a primary encoding scheme, schema version, and so on, +/// that matched how an object would be encoded. This is acquired from `get_metadata` by code that +/// depends on `Encodable` and will be stored alongside the encoded object. When the encoded object +/// is later read back, and the caller wants to decode it, they would also read the metadata and do +/// two things: check that the metadata is still valid for this implementation by calling +/// `can_decode` and then pass it along to the `decode` call itself. +/// +/// ## Verifying ability to decode +/// +/// Calling `can_decode` first allows callers to check if the encoding implementation supports the +/// parameters used to encode the given object, which provides a means to allow for versioning, +/// schema evolution, and more. Practically speaking, an implementation might bump the version of +/// its schema, but still support the old version for some time, and so `can_decode` might simply +/// check that the metadata represents the current version of the schema, or the last version, but +/// no other versions would be allowed. When the old version of the schema was finally removed and +/// no longer supported, `can_decode` would no longer say it could decode any object whose metadata +/// referenced that old version. +/// +/// The `can_decode` method is provided separately, instead of being lumped together in the `decode` +/// call, as a means to distinguish a lack of decoding support for a given metadata from a general +/// decoding failure. +/// +/// ## Metadata-aware decoding +/// +/// Likewise, the call to `decode` is given the metadata that was stored with the encoded object so +/// that it knows exactly what parameters were originally used and thus how it needs approach +/// decoding the object. +/// +/// ## Metadata format and meaning +/// +/// Ostensibly, the metadata would represent either some sort of numeric version identifier, or +/// could be used in a bitflags-style fashion, where each bit represents a particular piece of +/// information: encoding type, schema version, whether specific information is present in the +/// encoded object, and so on. +pub trait Encodable: Sized { + type Metadata: AsMetadata + Copy; + type EncodeError: error::Error + Send + Sync + 'static; + type DecodeError: error::Error + Send + Sync + 'static; + + /// Gets the version metadata associated with this encoding scheme. + /// + /// The value provided is ostensibly used as a bitfield-esque container, or potentially as a raw + /// numeric version identifier, that identifies how a value was encoded, as well as any other + /// information that may be necessary to successfully decode it. + fn get_metadata() -> Self::Metadata; + + /// Whether or not this encoding scheme can understand and successfully decode a value based on + /// the given version metadata that was bundled with the value. + fn can_decode(metadata: Self::Metadata) -> bool; + + /// Attempts to encode this value into the given buffer. + /// + /// # Errors + /// + /// If there is an error while attempting to encode this value, an error variant will be + /// returned describing the error. + /// + /// Practically speaking, based on the API, encoding errors should generally only occur if there + /// is insufficient space in the buffer to fully encode this value. However, this is not + /// guaranteed. + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError>; + + /// Gets the encoded size, in bytes, of this value, if available. + /// + /// Not all types can know ahead of time how many bytes they will occupy when encoded, hence the + /// fallibility of this method. + fn encoded_size(&self) -> Option { + None + } + + /// Attempts to decode an instance of this type from the given buffer and metadata. + /// + /// # Errors + /// + /// If there is an error while attempting to decode a value from the given buffer, or the given + /// metadata is not valid for the implementation, an error variant will be returned describing + /// the error. + fn decode( + metadata: Self::Metadata, + buffer: B, + ) -> Result; +} + +/// An object that can encode and decode itself to and from a buffer, with a fixed representation. +/// +/// This trait is a companion trait to `Encodable` that provides a blanket implementation of +/// `Encodable` that does not use or care about encoding metadata. It fulfills the necessary +/// methods to work in `Encodable` contexts without requiring any of the boilerplate. +/// +/// ## Warning +/// +/// You should _not_ typically use this trait unless you're trying to implement `Encodable` for +/// testing purposes where you won't be dealing with a need for versioning payloads, etc. +/// +/// For any types that will potentially be encoded in real use cases, `Encodable` should be +/// preferred as it requires an upfront decision to be made about metadata and how it's dealt with. +pub trait FixedEncodable { + type EncodeError: error::Error + Send + Sync + 'static; + type DecodeError: error::Error + Send + Sync + 'static; + + /// Attempts to encode this value into the given buffer. + /// + /// # Errors + /// + /// If there is an error while attempting to encode this value, an error variant will be + /// returned describing the error. + /// + /// Practically speaking, based on the API, encoding errors should generally only occur if there + /// is insufficient space in the buffer to fully encode this value. However, this is not + /// guaranteed. + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError>; + + /// Gets the encoded size, in bytes, of this value, if available. + /// + /// Not all types can know ahead of time how many bytes they will occupy when encoded, hence the + /// fallibility of this method. + fn encoded_size(&self) -> Option { + None + } + + /// Attempts to decode an instance of this type from the given buffer. + /// + /// # Errors + /// + /// If there is an error while attempting to decode a value from the given buffer, an error + /// variant will be returned describing the error. + fn decode(buffer: B) -> Result + where + Self: Sized; +} + +impl Encodable for T { + type Metadata = (); + type EncodeError = ::EncodeError; + type DecodeError = ::DecodeError; + + fn get_metadata() -> Self::Metadata {} + + fn can_decode((): Self::Metadata) -> bool { + true + } + + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError> { + FixedEncodable::encode(self, buffer) + } + + fn encoded_size(&self) -> Option { + FixedEncodable::encoded_size(self) + } + + fn decode((): Self::Metadata, buffer: B) -> Result { + ::decode(buffer) + } +} diff --git a/lib/vector-buffers/src/internal_events.rs b/lib/vector-buffers/src/internal_events.rs new file mode 100644 index 0000000000000..0cda5beec46f9 --- /dev/null +++ b/lib/vector-buffers/src/internal_events.rs @@ -0,0 +1,139 @@ +use std::time::Duration; + +use metrics::{counter, gauge, histogram, Histogram}; +use vector_common::{ + internal_event::{error_type, InternalEvent}, + registered_event, +}; + +pub struct BufferCreated { + pub idx: usize, + pub max_size_events: usize, + pub max_size_bytes: u64, +} + +impl InternalEvent for BufferCreated { + #[allow(clippy::cast_precision_loss)] + fn emit(self) { + if self.max_size_events != 0 { + gauge!("buffer_max_event_size", "stage" => self.idx.to_string()) + .set(self.max_size_events as f64); + } + if self.max_size_bytes != 0 { + gauge!("buffer_max_byte_size", "stage" => self.idx.to_string()) + .set(self.max_size_bytes as f64); + } + } +} + +pub struct BufferEventsReceived { + pub idx: usize, + pub count: u64, + pub byte_size: u64, +} + +impl InternalEvent for BufferEventsReceived { + #[allow(clippy::cast_precision_loss)] + fn emit(self) { + counter!("buffer_received_events_total", "stage" => self.idx.to_string()) + .increment(self.count); + counter!("buffer_received_bytes_total", "stage" => self.idx.to_string()) + .increment(self.byte_size); + gauge!("buffer_events", "stage" => self.idx.to_string()).increment(self.count as f64); + gauge!("buffer_byte_size", "stage" => self.idx.to_string()) + .increment(self.byte_size as f64); + } +} + +pub struct BufferEventsSent { + pub idx: usize, + pub count: u64, + pub byte_size: u64, +} + +impl InternalEvent for BufferEventsSent { + #[allow(clippy::cast_precision_loss)] + fn emit(self) { + counter!("buffer_sent_events_total", "stage" => self.idx.to_string()).increment(self.count); + counter!("buffer_sent_bytes_total", "stage" => self.idx.to_string()) + .increment(self.byte_size); + gauge!("buffer_events", "stage" => self.idx.to_string()).decrement(self.count as f64); + gauge!("buffer_byte_size", "stage" => self.idx.to_string()) + .decrement(self.byte_size as f64); + } +} + +pub struct BufferEventsDropped { + pub idx: usize, + pub count: u64, + pub byte_size: u64, + pub intentional: bool, + pub reason: &'static str, +} + +impl InternalEvent for BufferEventsDropped { + #[allow(clippy::cast_precision_loss)] + fn emit(self) { + let intentional_str = if self.intentional { "true" } else { "false" }; + if self.intentional { + debug!( + message = "Events dropped.", + count = %self.count, + intentional = %intentional_str, + reason = %self.reason, + stage = %self.idx, + ); + } else { + error!( + message = "Events dropped.", + count = %self.count, + intentional = %intentional_str, + reason = %self.reason, + stage = %self.idx, + ); + } + counter!( + "buffer_discarded_events_total", "intentional" => intentional_str, + ) + .increment(self.count); + gauge!("buffer_events", "stage" => self.idx.to_string()).decrement(self.count as f64); + gauge!("buffer_byte_size", "stage" => self.idx.to_string()) + .decrement(self.byte_size as f64); + } +} + +pub struct BufferReadError { + pub error_code: &'static str, + pub error: String, +} + +impl InternalEvent for BufferReadError { + fn emit(self) { + error!( + message = "Error encountered during buffer read.", + error = %self.error, + error_code = self.error_code, + error_type = error_type::READER_FAILED, + stage = "processing", + internal_log_rate_limit = true, + ); + counter!( + "buffer_errors_total", "error_code" => self.error_code, + "error_type" => "reader_failed", + "stage" => "processing", + ) + .increment(1); + } +} + +registered_event! { + BufferSendDuration { + stage: usize, + } => { + send_duration: Histogram = histogram!("buffer_send_duration_seconds", "stage" => self.stage.to_string()), + } + + fn emit(&self, duration: Duration) { + self.send_duration.record(duration); + } +} diff --git a/lib/vector-buffers/src/lib.rs b/lib/vector-buffers/src/lib.rs new file mode 100644 index 0000000000000..84e88b659169c --- /dev/null +++ b/lib/vector-buffers/src/lib.rs @@ -0,0 +1,150 @@ +//! The Vector Core buffer +//! +//! This library implements a channel like functionality, one variant which is +//! solely in-memory and the other that is on-disk. Both variants are bounded. + +#![deny(warnings)] +#![deny(clippy::all)] +#![deny(clippy::pedantic)] +#![allow(clippy::module_name_repetitions)] +#![allow(clippy::type_complexity)] // long-types happen, especially in async code +#![allow(clippy::must_use_candidate)] +#![allow(async_fn_in_trait)] + +#[macro_use] +extern crate tracing; + +mod buffer_usage_data; + +pub mod config; +pub use config::{BufferConfig, BufferType}; +use encoding::Encodable; +use vector_config::configurable_component; + +pub(crate) use vector_common::Result; + +pub mod encoding; + +mod internal_events; + +#[cfg(test)] +pub mod test; +pub mod topology; + +pub(crate) mod variants; + +use std::fmt::Debug; + +#[cfg(test)] +use quickcheck::{Arbitrary, Gen}; +use vector_common::{byte_size_of::ByteSizeOf, finalization::AddBatchNotifier}; + +/// Event handling behavior when a buffer is full. +#[configurable_component] +#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] +#[serde(rename_all = "snake_case")] +pub enum WhenFull { + /// Wait for free space in the buffer. + /// + /// This applies backpressure up the topology, signalling that sources should slow down + /// the acceptance/consumption of events. This means that while no data is lost, data will pile + /// up at the edge. + #[default] + Block, + + /// Drops the event instead of waiting for free space in buffer. + /// + /// The event will be intentionally dropped. This mode is typically used when performance is the + /// highest priority, and it is preferable to temporarily lose events rather than cause a + /// slowdown in the acceptance/consumption of events. + DropNewest, + + /// Overflows to the next stage in the buffer topology. + /// + /// If the current buffer stage is full, attempt to send this event to the next buffer stage. + /// That stage may also be configured overflow, and so on, but ultimately the last stage in a + /// buffer topology must use one of the other handling behaviors. This means that next stage may + /// potentially be able to buffer the event, but it may also block or drop the event. + /// + /// This mode can only be used when two or more buffer stages are configured. + #[configurable(metadata(docs::hidden))] + Overflow, +} + +#[cfg(test)] +impl Arbitrary for WhenFull { + fn arbitrary(g: &mut Gen) -> Self { + // TODO: We explicitly avoid generating "overflow" as a possible value because nothing yet + // supports handling it, and will be defaulted to using "block" if they encounter + // "overflow". Thus, there's no reason to emit it here... yet. + if bool::arbitrary(g) { + WhenFull::Block + } else { + WhenFull::DropNewest + } + } +} + +/// An item that can be buffered in memory. +/// +/// This supertrait serves as the base trait for any item that can be pushed into a memory buffer. +/// It is a relaxed version of `Bufferable` that allows for items that are not `Encodable` (e.g., `Instant`), +/// which is an unnecessary constraint for memory buffers. +pub trait InMemoryBufferable: + AddBatchNotifier + ByteSizeOf + EventCount + Debug + Send + Sync + Unpin + Sized + 'static +{ +} + +// Blanket implementation for anything that is already in-memory bufferable. +impl InMemoryBufferable for T where + T: AddBatchNotifier + ByteSizeOf + EventCount + Debug + Send + Sync + Unpin + Sized + 'static +{ +} + +/// An item that can be buffered. +/// +/// This supertrait serves as the base trait for any item that can be pushed into a buffer. +pub trait Bufferable: InMemoryBufferable + Encodable {} + +// Blanket implementation for anything that is already bufferable. +impl Bufferable for T where T: InMemoryBufferable + Encodable {} + +pub trait EventCount { + fn event_count(&self) -> usize; +} + +impl EventCount for Vec +where + T: EventCount, +{ + fn event_count(&self) -> usize { + self.iter().map(EventCount::event_count).sum() + } +} + +impl EventCount for &T +where + T: EventCount, +{ + fn event_count(&self) -> usize { + (*self).event_count() + } +} + +#[track_caller] +pub(crate) fn spawn_named( + task: impl std::future::Future + Send + 'static, + _name: &str, +) -> tokio::task::JoinHandle +where + T: Send + 'static, +{ + #[cfg(tokio_unstable)] + return tokio::task::Builder::new() + .name(_name) + .spawn(task) + .expect("tokio task should spawn"); + + #[cfg(not(tokio_unstable))] + tokio::spawn(task) +} diff --git a/lib/vector-buffers/src/test/action.rs b/lib/vector-buffers/src/test/action.rs new file mode 100644 index 0000000000000..d33362f987f76 --- /dev/null +++ b/lib/vector-buffers/src/test/action.rs @@ -0,0 +1,29 @@ +use quickcheck::{single_shrinker, Arbitrary, Gen}; + +use crate::test::Message; + +/// The action that our model interpreter loop will take. +#[derive(Debug, Clone)] +pub enum Action { + /// Send a [`Message`] through the buffer + Send(Message), + /// Receive a [`Message`] from the buffer + Recv, +} + +impl Arbitrary for Action { + fn arbitrary(g: &mut Gen) -> Self { + if bool::arbitrary(g) { + Action::Send(Message::arbitrary(g)) + } else { + Action::Recv + } + } + + fn shrink(&self) -> Box> { + match self { + Action::Send(val) => Box::new(val.shrink().map(Action::Send)), + Action::Recv => single_shrinker(Action::Recv), + } + } +} diff --git a/lib/vector-buffers/src/test/helpers.rs b/lib/vector-buffers/src/test/helpers.rs new file mode 100644 index 0000000000000..5978a72c6f1e6 --- /dev/null +++ b/lib/vector-buffers/src/test/helpers.rs @@ -0,0 +1,106 @@ +use std::{future::Future, path::Path, str::FromStr, sync::LazyLock}; + +use temp_dir::TempDir; +use tracing_fluent_assertions::{AssertionRegistry, AssertionsLayer}; +use tracing_subscriber::{filter::LevelFilter, layer::SubscriberExt, Layer, Registry}; +use vector_common::finalization::{EventStatus, Finalizable}; + +#[macro_export] +macro_rules! assert_file_does_not_exist_async { + ($file_path:expr) => {{ + let result = tokio::fs::metadata($file_path).await; + assert!(result.is_err()); + assert_eq!( + std::io::ErrorKind::NotFound, + result.expect_err("is_err() was true").kind(), + "got unexpected error kind" + ); + }}; +} + +#[macro_export] +macro_rules! assert_file_exists_async { + ($file_path:expr) => {{ + let result = tokio::fs::metadata($file_path).await; + assert!(result.is_ok()); + assert!( + result.expect("is_ok() was true").is_file(), + "path exists but is not file" + ); + }}; +} + +#[macro_export] +macro_rules! await_timeout { + ($fut:expr, $secs:expr) => {{ + tokio::time::timeout(std::time::Duration::from_secs($secs), $fut) + .await + .expect("future should not timeout") + }}; +} + +/// Run a future with a temporary directory. +/// +/// # Panics +/// +/// Will panic if function cannot create a temp directory. +pub async fn with_temp_dir(f: F) -> V +where + F: FnOnce(&Path) -> Fut, + Fut: Future, +{ + let buf_dir = TempDir::with_prefix("vector-buffers") + .expect("cannot recover from failure to create temp dir"); + f(buf_dir.path()).await +} + +pub fn install_tracing_helpers() -> AssertionRegistry { + // TODO: This installs the assertions layer globally, so all tests will run through it. Since + // most of the code being tested overlaps, individual tests should wrap their async code blocks + // with a unique span that can be matched on specifically with + // `AssertionBuilder::with_parent_name`. + // + // TODO: We also need a better way of wrapping our test functions in their own parent spans, for + // the purpose of isolating their assertions. Right now, we do it with a unique string that we + // have set to the test function name, but this is susceptible to being copypasta'd + // unintentionally, thus letting assertions bleed into other tests. + // + // Maybe we should add a helper method to `tracing-fluent-assertions` for generating a + // uniquely-named span that can be passed directly to the assertion builder methods, then it's a + // much tighter loop. + // + // TODO: At some point, we might be able to write a simple derive macro that does this for us, and + // configures the other necessary bits, but for now.... by hand will get the job done. + static ASSERTION_REGISTRY: LazyLock = LazyLock::new(|| { + let assertion_registry = AssertionRegistry::default(); + let assertions_layer = AssertionsLayer::new(&assertion_registry); + + // Constrain the actual output layer to the normal RUST_LOG-based control mechanism, so that + // assertions can run unfettered but without also spamming the console with logs. + let fmt_filter = std::env::var("RUST_LOG") + .map_err(|_| ()) + .and_then(|s| LevelFilter::from_str(s.as_str()).map_err(|_| ())) + .unwrap_or(LevelFilter::OFF); + let fmt_layer = tracing_subscriber::fmt::layer() + .with_ansi(true) + .with_span_events(tracing_subscriber::fmt::format::FmtSpan::FULL) + .with_test_writer() + .with_filter(fmt_filter); + + let base_subscriber = Registry::default(); + let subscriber = base_subscriber.with(assertions_layer).with(fmt_layer); + + tracing::subscriber::set_global_default(subscriber).unwrap(); + assertion_registry + }); + + ASSERTION_REGISTRY.clone() +} + +pub(crate) async fn acknowledge(mut event: impl Finalizable) { + event + .take_finalizers() + .update_status(EventStatus::Delivered); + // Finalizers are implicitly dropped here, sending the status update. + tokio::task::yield_now().await; +} diff --git a/lib/vector-buffers/src/test/messages.rs b/lib/vector-buffers/src/test/messages.rs new file mode 100644 index 0000000000000..6d73d020937eb --- /dev/null +++ b/lib/vector-buffers/src/test/messages.rs @@ -0,0 +1,318 @@ +use std::{error, fmt, io, mem}; + +use bytes::{Buf, BufMut}; +use quickcheck::{Arbitrary, Gen}; +use vector_common::byte_size_of::ByteSizeOf; +use vector_common::finalization::{ + AddBatchNotifier, BatchNotifier, EventFinalizer, EventFinalizers, Finalizable, +}; + +use crate::{encoding::FixedEncodable, EventCount}; + +macro_rules! message_wrapper { + ($id:ident: $ty:ty, $event_count:expr) => { + #[derive(Clone, Debug, Eq)] + pub(crate) struct $id(pub $ty, EventFinalizers); + + impl $id { + pub const fn new(value: $ty) -> Self { + Self(value, EventFinalizers::DEFAULT) + } + } + + impl AddBatchNotifier for $id { + fn add_batch_notifier(&mut self, batch: BatchNotifier) { + self.1.add(EventFinalizer::new(batch)); + } + } + + impl ByteSizeOf for $id { + fn allocated_bytes(&self) -> usize { + 0 + } + } + + impl EventCount for $id { + #[allow(clippy::redundant_closure_call)] + fn event_count(&self) -> usize { + usize::try_from($event_count(self)).unwrap_or(usize::MAX) + } + } + + impl Finalizable for $id { + fn take_finalizers(&mut self) -> EventFinalizers { + std::mem::take(&mut self.1) + } + } + + impl PartialEq for $id { + fn eq(&self, other: &Self) -> bool { + self.0 == other.0 + } + } + }; +} + +#[derive(Debug)] +pub struct EncodeError; + +impl fmt::Display for EncodeError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{self:?}") + } +} + +impl error::Error for EncodeError {} + +#[derive(Debug)] +pub struct DecodeError; + +impl fmt::Display for DecodeError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{self:?}") + } +} + +impl error::Error for DecodeError {} + +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Message { + id: u64, +} + +impl Message { + pub(crate) fn new(id: u64) -> Self { + Message { id } + } +} + +impl ByteSizeOf for Message { + fn allocated_bytes(&self) -> usize { + 0 + } +} + +impl EventCount for Message { + fn event_count(&self) -> usize { + 1 + } +} + +impl Arbitrary for Message { + fn arbitrary(g: &mut Gen) -> Self { + Message { + id: u64::arbitrary(g), + } + } + + fn shrink(&self) -> Box> { + Box::new(self.id.shrink().map(|id| Message { id })) + } +} + +impl FixedEncodable for Message { + type EncodeError = EncodeError; + type DecodeError = DecodeError; + + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError> + where + B: BufMut, + Self: Sized, + { + buffer.put_u64(self.id); + Ok(()) + } + + fn encoded_size(&self) -> Option { + Some(mem::size_of::()) + } + + fn decode(mut buffer: B) -> Result + where + B: Buf, + Self: Sized, + { + let id = buffer.get_u64(); + Ok(Message::new(id)) + } +} + +message_wrapper!(SizedRecord: u32, |_| 1); + +impl SizedRecord { + fn encoded_len(&self) -> usize { + let payload_len: usize = self + .0 + .try_into() + .expect("`SizedRecord` should never have a payload length greater than `usize`."); + + payload_len + mem::size_of_val(&self.0) + } +} + +impl FixedEncodable for SizedRecord { + type EncodeError = io::Error; + type DecodeError = io::Error; + + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError> + where + B: BufMut, + { + let minimum_len = self.encoded_len(); + if buffer.remaining_mut() < minimum_len { + return Err(io::Error::new( + io::ErrorKind::Other, + format!( + "not enough capacity to encode record: need {}, only have {}", + minimum_len, + buffer.remaining_mut() + ), + )); + } + + buffer.put_u32(self.0); + buffer.put_bytes(0x42, self.0 as usize); + Ok(()) + } + + fn decode(mut buffer: B) -> Result + where + B: Buf, + { + let buf_len = buffer.get_u32(); + buffer.advance(buf_len as usize); + Ok(SizedRecord::new(buf_len)) + } + + fn encoded_size(&self) -> Option { + Some(self.encoded_len()) + } +} + +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub(crate) struct UndecodableRecord; + +impl AddBatchNotifier for UndecodableRecord { + fn add_batch_notifier(&mut self, batch: BatchNotifier) { + drop(batch); // We never check acknowledgements for this type + } +} + +impl ByteSizeOf for UndecodableRecord { + fn allocated_bytes(&self) -> usize { + 0 + } +} + +impl EventCount for UndecodableRecord { + fn event_count(&self) -> usize { + 1 + } +} + +impl FixedEncodable for UndecodableRecord { + type EncodeError = io::Error; + type DecodeError = io::Error; + + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError> + where + B: BufMut, + { + if buffer.remaining_mut() < 4 { + return Err(io::Error::new( + io::ErrorKind::Other, + "not enough capacity to encode record", + )); + } + + buffer.put_u32(42); + Ok(()) + } + + fn decode(_buffer: B) -> Result + where + B: Buf, + { + Err(io::Error::new(io::ErrorKind::Other, "failed to decode")) + } +} + +message_wrapper!(MultiEventRecord: u32, |m: &Self| m.0); + +impl MultiEventRecord { + pub fn encoded_size(&self) -> usize { + usize::try_from(self.0).unwrap_or(usize::MAX) + std::mem::size_of::() + } +} + +impl FixedEncodable for MultiEventRecord { + type EncodeError = io::Error; + type DecodeError = io::Error; + + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError> + where + B: BufMut, + { + if buffer.remaining_mut() < self.encoded_size() { + return Err(io::Error::new( + io::ErrorKind::Other, + "not enough capacity to encode record", + )); + } + + buffer.put_u32(self.0); + buffer.put_bytes(0x42, usize::try_from(self.0).unwrap_or(usize::MAX)); + Ok(()) + } + + fn decode(mut buffer: B) -> Result + where + B: Buf, + { + let event_count = buffer.get_u32(); + buffer.advance(usize::try_from(event_count).unwrap_or(usize::MAX)); + Ok(MultiEventRecord::new(event_count)) + } +} + +message_wrapper!(PoisonPillMultiEventRecord: u32, |m: &Self| m.0); + +impl PoisonPillMultiEventRecord { + pub fn encoded_size(&self) -> usize { + usize::try_from(self.0).unwrap_or(usize::MAX) + std::mem::size_of::() + } +} + +impl FixedEncodable for PoisonPillMultiEventRecord { + type EncodeError = io::Error; + type DecodeError = io::Error; + + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError> + where + B: BufMut, + { + if buffer.remaining_mut() < self.encoded_size() { + return Err(io::Error::new( + io::ErrorKind::Other, + "not enough capacity to encode record", + )); + } + + buffer.put_u32(self.0); + buffer.put_bytes(0x42, usize::try_from(self.0).unwrap_or(usize::MAX)); + Ok(()) + } + + fn decode(mut buffer: B) -> Result + where + B: Buf, + { + let event_count = buffer.get_u32(); + if event_count == 42 { + return Err(io::Error::new(io::ErrorKind::Other, "failed to decode")); + } + + buffer.advance(usize::try_from(event_count).unwrap_or(usize::MAX)); + Ok(PoisonPillMultiEventRecord::new(event_count)) + } +} diff --git a/lib/vector-buffers/src/test/mod.rs b/lib/vector-buffers/src/test/mod.rs new file mode 100644 index 0000000000000..9419dc62574ca --- /dev/null +++ b/lib/vector-buffers/src/test/mod.rs @@ -0,0 +1,9 @@ +mod action; +mod helpers; +mod messages; +mod variant; + +pub use action::*; +pub use helpers::*; +pub use messages::*; +pub use variant::*; diff --git a/lib/vector-buffers/src/test/variant.rs b/lib/vector-buffers/src/test/variant.rs new file mode 100644 index 0000000000000..a14995d86b436 --- /dev/null +++ b/lib/vector-buffers/src/test/variant.rs @@ -0,0 +1,159 @@ +use std::{ + num::{NonZeroU16, NonZeroU64, NonZeroUsize}, + path::PathBuf, +}; + +#[cfg(test)] +use quickcheck::{Arbitrary, Gen}; +use tracing::Span; +use vector_common::finalization::Finalizable; + +use crate::{ + topology::{ + builder::TopologyBuilder, + channel::{BufferReceiver, BufferSender}, + }, + variants::{DiskV2Buffer, MemoryBuffer}, + Bufferable, WhenFull, +}; + +#[cfg(test)] +const MAX_STR_SIZE: usize = 128; +#[cfg(test)] +const ALPHABET: [&str; 27] = [ + "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", + "t", "u", "v", "w", "x", "y", "z", "_", +]; + +// Memory buffers are also used with transforms which is opaque to users. We use +// an instrument flag in the Memory variant to disable instrumentation to avoid +// emitting metrics for such buffers. +#[derive(Debug, Clone)] +pub enum Variant { + Memory { + max_events: NonZeroUsize, + when_full: WhenFull, + }, + DiskV2 { + max_size: NonZeroU64, + when_full: WhenFull, + data_dir: PathBuf, + id: String, + }, +} + +impl Variant { + pub async fn create_sender_receiver(&self) -> (BufferSender, BufferReceiver) + where + T: Bufferable + Clone + Finalizable, + { + let mut builder = TopologyBuilder::default(); + match self { + Variant::Memory { + max_events, + when_full, + .. + } => { + builder.stage(MemoryBuffer::new(*max_events), *when_full); + } + Variant::DiskV2 { + max_size, + when_full, + data_dir, + id, + } => { + builder.stage( + DiskV2Buffer::new(id.clone(), data_dir.clone(), *max_size), + *when_full, + ); + } + }; + + let (sender, receiver) = builder + .build(String::from("benches"), Span::none()) + .await + .unwrap_or_else(|_| unreachable!("topology build should not fail")); + + (sender, receiver) + } +} + +#[cfg(test)] +#[derive(Debug, Clone)] +struct Id { + inner: String, +} + +#[cfg(test)] +impl Arbitrary for Id { + fn arbitrary(g: &mut Gen) -> Self { + let mut id = String::with_capacity(MAX_STR_SIZE); + for _ in 0..(g.size() % MAX_STR_SIZE) { + let idx: usize = usize::arbitrary(g) % ALPHABET.len(); + id.push_str(ALPHABET[idx]); + } + + Id { inner: id } + } +} + +#[cfg(test)] +impl Arbitrary for Variant { + fn arbitrary(g: &mut Gen) -> Self { + let use_memory_buffer = bool::arbitrary(g); + + // Using a u16 ensures we avoid any allocation errors for our holding buffers, etc. + let max_events = NonZeroU16::arbitrary(g).into(); + let max_size = NonZeroU16::arbitrary(g).into(); + + let when_full = WhenFull::arbitrary(g); + + if use_memory_buffer { + Variant::Memory { + max_events, + when_full, + } + } else { + Variant::DiskV2 { + max_size, + when_full, + id: Id::arbitrary(g).inner, + data_dir: PathBuf::arbitrary(g), + } + } + } + + fn shrink(&self) -> Box> { + match self { + Variant::Memory { + max_events, + when_full, + .. + } => { + let when_full = *when_full; + Box::new(max_events.shrink().map(move |me| Variant::Memory { + max_events: me, + when_full, + })) + } + Variant::DiskV2 { + max_size, + when_full, + id, + data_dir, + .. + } => { + let max_size = *max_size; + let when_full = *when_full; + let id = id.clone(); + let data_dir = data_dir.clone(); + Box::new(max_size.shrink().map(move |ms| Variant::DiskV2 { + max_size: ms, + when_full, + id: id.clone(), + data_dir: data_dir.clone(), + })) + } + } + } +} diff --git a/lib/vector-buffers/src/topology/acks.rs b/lib/vector-buffers/src/topology/acks.rs new file mode 100644 index 0000000000000..e5892b9f2e1a4 --- /dev/null +++ b/lib/vector-buffers/src/topology/acks.rs @@ -0,0 +1,893 @@ +use std::{collections::VecDeque, fmt}; + +use num_traits::{Bounded, CheckedAdd, CheckedSub, Unsigned, WrappingAdd, WrappingSub}; + +#[derive(Clone, Copy, Debug, PartialEq)] +enum PendingMarkerLength { + Known(N), + Assumed(N), + Unknown, +} + +struct PendingMarker { + id: N, + len: PendingMarkerLength, + data: Option, +} + +impl fmt::Debug for PendingMarker +where + N: fmt::Debug, + D: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("PendingMarker") + .field("id", &self.id) + .field("len", &self.len) + .field("data", &self.data) + .finish() + } +} + +/// The length of an eligible marker. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum EligibleMarkerLength { + /// The marker's length was declared upfront when added. + Known(N), + + /// The marker's length was calculated based on imperfect information, and so while it should + /// accurately represent a correct range that covers any gaps in the marker range, it may or may + /// not represent one true marker, or possibly multiple markers. + Assumed(N), +} + +impl EligibleMarkerLength { + fn len(&self) -> N { + match self { + EligibleMarkerLength::Known(len) | EligibleMarkerLength::Assumed(len) => *len, + } + } +} + +/// A marker that has been fully acknowledged. +pub struct EligibleMarker { + pub id: N, + pub len: EligibleMarkerLength, + pub data: Option, +} + +impl PartialEq for EligibleMarker +where + N: PartialEq, +{ + fn eq(&self, other: &Self) -> bool { + self.id == other.id && self.len == other.len + } +} + +impl fmt::Debug for EligibleMarker +where + N: fmt::Debug, + D: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("EligibleMarker") + .field("id", &self.id) + .field("len", &self.len) + .field("data", &self.data) + .finish() + } +} + +/// Error returned by `OrderedAcknowledgements::add_marker`. +/// +/// In general, this error represents a breaking of ID monotonicity, or more likely, the loss of +/// records where entire records may have been skipped as an attempted add provides an ID that not +/// the next expected ID. +/// +/// While the exact condition must be determined by the caller, we attempt to provide as much +/// information as we reasonably based on the data we have, whether it's simply that the ID didn't +/// match the next expected ID, or that we know it is definitively ahead or behind the next expected +/// ID. +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum MarkerError { + /// The given marker ID is behind the next expected marker ID. + /// + /// As `OrderedAcknowledgements` expects monotonic marker IDs, this represents a violation of + /// the acknowledgement state, and must be handled by the caller. Generally speaking, this is + /// an unrecoverable error. + MonotonicityViolation, +} + +/// Result of comparing a potential pending marker ID with the expected next pending marker ID. +pub enum MarkerOffset { + /// The given marker ID is aligned with the next expected marker ID. + Aligned, + + /// The given marker ID is ahead of the next expected marker ID. + /// + /// When the last pending marker has a fixed-size, we can calculate the exact marker ID that we + /// expect to see next. In turn, we can tell how far ahead the given marker ID from the next + /// expected marker ID. + /// + /// The next expected marker ID, and the amount (gap) that the given marker ID and the next + /// expected marker ID differ, are provided. + Gap(N, N), + + /// The given marker ID may or may not be aligned. + /// + /// This occurs when the last pending marker has an unknown size, as we cannot determine + /// whether the given marker ID is the next true marker ID without knowing where the last + /// pending marker should end. + /// + /// The last pending marker ID is provided. + NotEnoughInformation(N), + + /// The given marker ID is behind the next expected marker ID. + /// + /// As `OrderedAcknowledgements` expects monotonic marker IDs, this represents a violation of + /// the acknowledgement state, and must be handled by the caller. Generally speaking, this is + /// an unrecoverable error. + MonotonicityViolation, +} + +/// `OrderedAcknowledgements` allows determining when a record is eligible for deletion. +/// +/// ### Purpose +/// +/// In disk buffers, a record may potentially represent multiple events. As these events +/// may be processed at different times by a sink, and in a potentially different order than when +/// stored in the record, a record cannot be considered fully processed until all of the events have +/// been accounted for. As well, only once a record has been fully processed can it be considered +/// for deletion to free up space in the buffer. +/// +/// To complicate matters, a record may sometimes not be decodable -- on-disk corruption, invalid +/// encoding scheme that is no longer supported, etc -- but still needs to be accounted for to know +/// when it can be deleted, and so that the correct metrics can be generated to determine how many +/// events were lost by the record not being able to be processed normally. +/// +/// ### Functionality +/// +/// `OrderedAcknowledgements` provides the ability to add "markers", which are a virtual token mapped +/// to a record. Markers track the ID of a record, how long the record is (if known), and optional +/// data that is specific to the record. It also provides the ability to add acknowledgements which +/// can then be consumed to allow yielding markers which have collected enough acknowledgements and +/// are thus "eligible". +/// +/// ### Detecting record gaps and the length of undecodable records +/// +/// Additionally, and as hinted at above, markers can be added without a known length: this may +/// happen when a record is read but it cannot be decoded, and thus determining the true length is +/// not possible. +/// +/// When markers that have an unknown length are added, `OrderedAcknowledgements` will do one of two things: +/// - figure out if the marker is ahead of the next expected marker ID, and add a synthetic "gap" +/// marker to compensate +/// - update the unknown length with an assumed length, based on the difference between its ID and +/// the ID of the next marker that gets added +/// +/// In this way, `OrderedAcknowledgements` provides a contiguous range of marker IDs, which allows +/// detecting not only the presumed length of a record that couldn't be decoded, but also if any +/// records were deleted from disk or unable to be read at all. Based on the invariant of expecting +/// IDs to be monotonic and contiguous, we know that if we expect our next marker ID to be 5, but +/// instead get one with an ID of 8, that there's 3 missing events in the middle that have not been +/// accounted for. +/// +/// Similarly, even when we don't know what the next expected marker ID should be, we can determine +/// the number of events that were lost when the next marker is added, as marker IDs represent the +/// start of a record, and so simple arithmetic can determine the number of events that have +/// theoretically been lost. +pub struct OrderedAcknowledgements { + unclaimed_acks: N, + acked_marker_id: N, + pending_markers: VecDeque>, +} + +impl OrderedAcknowledgements +where + N: fmt::Display + + Bounded + + CheckedAdd + + CheckedSub + + Copy + + PartialEq + + PartialOrd + + Unsigned + + WrappingAdd + + WrappingSub, +{ + pub fn from_acked(acked_marker_id: N) -> Self { + Self { + unclaimed_acks: N::min_value(), + acked_marker_id, + pending_markers: VecDeque::new(), + } + } + + /// Adds the given number of acknowledgements. + /// + /// Acknowledgements should be given by the caller to update the acknowledgement state before + /// trying to get any eligible markers. + /// + /// # Panics + /// + /// Will panic if adding ack amount overflows. + pub fn add_acknowledgements(&mut self, amount: N) { + self.unclaimed_acks = self + .unclaimed_acks + .checked_add(&amount) + .expect("overflowing unclaimed acknowledgements is a serious bug"); + + trace!( + unclaimed_acks = %self.unclaimed_acks, + added_acks = %amount, + "Added acknowledgements." + ); + } + + /// Gets the marker ID offset for the given ID. + /// + /// If the given ID matches our next expected marker ID, then `MarkerOffset::Aligned` is + /// returned. + /// + /// Otherwise, we return one of the following variants: + /// - if we have no pending markers, `MarkerOffset::Gap` is returned, and contains the delta + /// between the given ID and the next expected marker ID + /// - if we have pending markers, and the given ID is logically behind the next expected marker + /// ID, `MarkerOffset::MonotonicityViolation` is returned, indicating that the monotonicity + /// invariant has been violated + /// - if we have pending markers, and the given ID is logically ahead of the next expected + /// marker, `MarkerOffset::Gap` is returned, specifying how far ahead of the next expected + /// marker ID it is + /// - if we have pending markers, and the last pending marker has an unknown length, + /// `MarkerOffset::NotEnoughInformation` is returned, as we require a fixed-size marker to + /// correctly calculate the next expected marker ID + fn get_marker_id_offset(&self, id: N) -> MarkerOffset { + if self.pending_markers.is_empty() { + // We have no pending markers, but our acknowledged ID offset should match the marker ID + // being given here, otherwise it would imply that the markers were not contiguous. + // + // We return the difference between the ID and our acknowledged ID offset with the + // assumption that the new ID is monotonic. Since IDs wraparound, we don't bother + // looking at if it's higher or lower because we can't reasonably tell if this record ID + // is actually correct but other markers in between went missing, etc. + // + // Basically, it's up to the caller to figure this out. We're just trying to give them + // as much information as we can. + if self.acked_marker_id != id { + return MarkerOffset::Gap( + self.acked_marker_id, + id.wrapping_sub(&self.acked_marker_id), + ); + } + } else { + let back = self + .pending_markers + .back() + .expect("pending markers should have items"); + + // When we know the length of the previously added pending marker, we can figure out + // where this marker's ID should land, as we don't not allow for noncontiguous marker ID + // ranges. + if let PendingMarkerLength::Known(len) = back.len { + // If we know the length of the back item, then we know exactly what the ID for the + // next marker to follow it should be. If this incoming marker doesn't match, + // something is wrong. + let expected_next = back.id.wrapping_add(&len); + if id != expected_next { + if expected_next < back.id && id < expected_next { + return MarkerOffset::MonotonicityViolation; + } + + return MarkerOffset::Gap(expected_next, id.wrapping_sub(&expected_next)); + } + } else { + // Without a fixed-size marker, we cannot be sure whether this marker ID is aligned + // or not. + return MarkerOffset::NotEnoughInformation(back.id); + } + } + + MarkerOffset::Aligned + } + + /// Adds a marker. + /// + /// The marker is tracked internally, and once the acknowledgement state has been advanced + /// enough such that it is at or ahead of the marker, the marker will become eligible. + /// + /// ## Gap detection and unknown length markers + /// + /// When a gap is detected between the given marker ID and the next expected marker ID, we + /// insert a synthetic marker to represent that gap. For example, if we had a marker with an ID + /// of 0 and a length of 5, we would expect the next marker to have an ID of 5. If instead, a + /// marker with an ID of 7 was given, that would represent a gap of 2. We insert a synthetic + /// marker with an ID of 5 and a length of 2 before adding the marker with the ID of 7. This + /// keeps the marker range contiguous and allows getting an eligible marker for the gap so the + /// caller can detect that a gap occurred. + /// + /// Likewise, when a caller inserts an unknown length marker, we cannot know its length until + /// the next marker is added. When that happens, we assume the given marker ID is monotonic, + /// and thus that the length of the previous marker, which has an unknown length, must have a + /// length equal to the difference between the given marker ID and the unknown length marker + /// ID. We update the unknown length marker to reflect this. + /// + /// In both cases, the markers will have a length that indicates that the amount represents a + /// gap, and not a marker that was directly added by the caller themselves. + /// + /// ## Errors + /// + /// When other pending markers are present, and the given ID is logically behind the next + /// expected marker ID, `Err(MarkerError::MonotonicityViolation)` is returned. + /// + /// # Panics + /// + /// Panics if pending markers is empty when last pending marker is an unknown size. + pub fn add_marker( + &mut self, + id: N, + marker_len: Option, + data: Option, + ) -> Result<(), MarkerError> { + // First, figure out where this given marker ID stands compared to our next expected marker + // ID, and the pending marker state in general. + match self.get_marker_id_offset(id) { + // The last pending marker is fixed-size, and the given marker ID is past where that + // marker ends, so we need to inject a synthetic gap marker to compensate for that. + MarkerOffset::Gap(expected_id, amount) => { + self.pending_markers.push_back(PendingMarker { + id: expected_id, + len: PendingMarkerLength::Assumed(amount), + data: None, + }); + } + // The last pending marker is an unknown size, so we're using this given marker ID to + // calculate the length of that last pending marker, and in turn, we're going to adjust + // its length before adding the new pending marker. + MarkerOffset::NotEnoughInformation(last_marker_id) => { + let len = id.wrapping_sub(&last_marker_id); + let last_marker = self + .pending_markers + .back_mut() + .unwrap_or_else(|| unreachable!("pending markers should not be empty")); + + last_marker.len = PendingMarkerLength::Assumed(len); + } + // We detected a monotonicity violation, which we can't do anything about, so just + // immediately inform the caller. + MarkerOffset::MonotonicityViolation => return Err(MarkerError::MonotonicityViolation), + // We have enough information to determine the given marker ID is the next expected + // marker ID, so we can proceed normally. + MarkerOffset::Aligned => {} + } + + // Now insert our new pending marker. + self.pending_markers.push_back(PendingMarker { + id, + len: marker_len.map_or(PendingMarkerLength::Unknown, PendingMarkerLength::Known), + data, + }); + + Ok(()) + } + + /// Gets the next marker which has been fully acknowledged. + /// + /// A pending marker becomes eligible when the acknowledged marker ID is at or past the pending + /// marker ID plus the marker length. + /// + /// For pending markers with an unknown length, another pending marker must be present after it + /// in order to calculate the ID offsets and determine the marker length. + #[cfg_attr(test, instrument(skip(self), level = "trace"))] + pub fn get_next_eligible_marker(&mut self) -> Option> { + let effective_acked_marker_id = self.acked_marker_id.wrapping_add(&self.unclaimed_acks); + + trace!( + acked_marker_id = %self.acked_marker_id, + %effective_acked_marker_id, + unclaimed_acks = %self.unclaimed_acks, + pending_markers = self.pending_markers.len(), + "Searching for eligible marker." + ); + + let maybe_eligible_marker = + self.pending_markers + .front() + .and_then(|marker| match marker.len { + // If the acked marker ID is ahead of this marker ID, plus its length, it's been fully + // acknowledged and we can consume and yield the marker. We have to double + // verify this by checking that there's enough unclaimed acks to support this + // length because otherwise we might fall victim to markers that simply generate + // a required acked marker ID that is equal to the actual acked marker ID when + // an amount of unclaimed acks exists that is not enough for this marker but is + // enough to align the effective/required IDs. + PendingMarkerLength::Known(len) => { + let required_acked_marker_id = marker.id.wrapping_add(&len); + if required_acked_marker_id <= effective_acked_marker_id + && self.unclaimed_acks >= len + { + Some((EligibleMarkerLength::Known(len), len)) + } else { + None + } + } + // The marker has an assumed length, which means a marker was added after it, + // which implies that it is de facto eligible as unknown length markers do not + // consume acknowledgements and so are immediately eligible once an assumed + // length can be determined. + PendingMarkerLength::Assumed(len) => { + Some((EligibleMarkerLength::Assumed(len), N::min_value())) + } + // We don't yet know what the length is for this marker, so we're stuck waiting + // for another marker to be added before that can be determined. + PendingMarkerLength::Unknown => None, + }); + + // If we actually got an eligible marker, we need to actually remove it from the pending + // marker queue and potentially adjust the amount of unclaimed acks we have. + match maybe_eligible_marker { + Some((len, acks_to_claim)) => { + // If we actually got an eligible marker, we need to actually remove it from the pending + // marker queue, potentially adjust the amount of unclaimed acks we have, and adjust + // our acked marker ID. + let PendingMarker { id, data, .. } = self + .pending_markers + .pop_front() + .unwrap_or_else(|| unreachable!("pending markers cannot be empty")); + + if acks_to_claim > N::min_value() { + self.unclaimed_acks = self + .unclaimed_acks + .checked_sub(&acks_to_claim) + .unwrap_or_else(|| { + unreachable!("should not be able to claim more acks than are unclaimed") + }); + } + + self.acked_marker_id = id.wrapping_add(&len.len()); + + Some(EligibleMarker { id, len, data }) + } + None => None, + } + } +} + +impl fmt::Debug for OrderedAcknowledgements +where + N: fmt::Debug, + D: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OrderedAcknowledgements") + .field("unclaimed_acks", &self.unclaimed_acks) + .field("acked_marker_id", &self.acked_marker_id) + .field("pending_markers", &self.pending_markers) + .finish() + } +} + +#[cfg(test)] +mod tests { + use std::collections::{HashSet, VecDeque}; + + use proptest::{ + arbitrary::any, + collection::vec as arb_vec, + prop_assert_eq, prop_oneof, proptest, + strategy::{Just, Strategy}, + }; + + use super::{EligibleMarker, EligibleMarkerLength}; + use crate::topology::acks::{MarkerError, OrderedAcknowledgements, PendingMarkerLength}; + + #[derive(Debug, Clone, Copy)] + enum Action { + Acknowledge(u64), + AddMarker((u64, Option)), + GetNextEligibleMarker, + } + + #[derive(Debug, PartialEq)] + enum ActionResult { + // Number of unclaimed acknowledgements. + Acknowledge(u64), + AddMarker(Result<(), MarkerError>), + GetNextEligibleMarker(Option>), + } + + fn arb_ordered_acks_action() -> impl Strategy { + prop_oneof![ + 10 => any::().prop_map(|n| Action::Acknowledge(u64::from(n))), + 10 => any::<(u64, Option)>().prop_map(|(a, b)| Action::AddMarker((a, b))), + 10 => Just(Action::GetNextEligibleMarker), + ] + } + + fn apply_action_sut( + sut: &mut OrderedAcknowledgements, + action: Action, + ) -> ActionResult { + match action { + Action::Acknowledge(amount) => { + sut.add_acknowledgements(amount); + ActionResult::Acknowledge(sut.unclaimed_acks) + } + Action::AddMarker((id, maybe_len)) => { + let result = sut.add_marker(id, maybe_len, None); + ActionResult::AddMarker(result) + } + Action::GetNextEligibleMarker => { + let result = sut.get_next_eligible_marker(); + ActionResult::GetNextEligibleMarker(result) + } + } + } + + macro_rules! step { + ($action_name:ident, result => $result_input:expr) => { + ( + Action::$action_name, + ActionResult::$action_name($result_input), + ) + }; + ($action_name:ident, input => $action_input:expr, result => $result_input:expr) => { + ( + Action::$action_name($action_input), + ActionResult::$action_name($result_input), + ) + }; + } + + #[test] + fn basic_cases() { + // Smoke test. + run_test_case("empty", vec![step!(GetNextEligibleMarker, result => None)]); + + // Simple through-and-through: + run_test_case( + "through_and_through", + vec![ + step!(AddMarker, input => (0, Some(5)), result => Ok(())), + step!(Acknowledge, input => 5, result => 5), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 0, len: EligibleMarkerLength::Known(5), data: None, + } + )), + ], + ); + } + + #[test] + fn invariant_cases() { + // Checking for an eligible record between incremental acknowledgement: + run_test_case( + "eligible_multi_ack", + vec![ + step!(AddMarker, input => (0, Some(13)), result => Ok(())), + step!(Acknowledge, input => 5, result => 5), + step!(GetNextEligibleMarker, result => None), + step!(Acknowledge, input => 5, result => 10), + step!(GetNextEligibleMarker, result => None), + step!(Acknowledge, input => 5, result => 15), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 0, len: EligibleMarkerLength::Known(13), data: None, + } + )), + ], + ); + + // Unknown length markers can't be returned until a marker exists after them, even if we + // could maximally acknowledge them: + run_test_case( + "unknown_len_no_subsequent_marker", + vec![ + step!(AddMarker, input => (0, None), result => Ok(())), + step!(Acknowledge, input => 5, result => 5), + step!(GetNextEligibleMarker, result => None), + ], + ); + + // We can always get back an unknown marker, with its length, regardless of + // acknowledgements, so long as there's a marker exists after them: fixed. + run_test_case( + "unknown_len_subsequent_marker_fixed", + vec![ + step!(AddMarker, input => (0, None), result => Ok(())), + step!(AddMarker, input => (5, Some(1)), result => Ok(())), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 0, len: EligibleMarkerLength::Assumed(5), data: None, + } + )), + step!(GetNextEligibleMarker, result => None), + ], + ); + + // We can always get back an unknown marker, with its length, regardless of + // acknowledgements, so long as there's a marker exists after them: unknown. + run_test_case( + "unknown_len_subsequent_marker_unknown", + vec![ + step!(AddMarker, input => (0, None), result => Ok(())), + step!(AddMarker, input => (5, None), result => Ok(())), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 0, len: EligibleMarkerLength::Assumed(5), data: None, + } + )), + step!(GetNextEligibleMarker, result => None), + ], + ); + + // Can add a marker without a known length and it will generate a synthetic gap marker + // that is immediately eligible: + run_test_case( + "unknown_len_no_pending_synthetic_gap", + vec![ + step!(AddMarker, input => (1, None), result => Ok(())), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 0, len: EligibleMarkerLength::Assumed(1), data: None, + } + )), + step!(GetNextEligibleMarker, result => None), + ], + ); + + // When another marker exists, and is fixed size, we correctly detect when trying to add + // another marker whose ID comes before the last pending marker we have: + run_test_case( + "detect_monotonicity_violation", + vec![ + step!(AddMarker, input => (u64::MAX, Some(3)), result => Ok(())), + step!(AddMarker, input => (1, Some(2)), result => Err(MarkerError::MonotonicityViolation)), + ], + ); + + // When another marker exists, and is fixed size, we correctly detect when trying to add + // another marker whose ID comes after the last pending marker we have, including the + // length of the last pending marker, by updating the marker's unknown length to an + // assumed length, which is immediately eligible: + run_test_case( + "unknown_len_updated_fixed_marker", + vec![ + step!(AddMarker, input => (0, Some(4)), result => Ok(())), + step!(AddMarker, input => (9, Some(3)), result => Ok(())), + step!(Acknowledge, input => 4, result => 4), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 0, len: EligibleMarkerLength::Known(4), data: None, + } + )), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 4, len: EligibleMarkerLength::Assumed(5), data: None, + } + )), + step!(GetNextEligibleMarker, result => None), + ], + ); + } + + #[test] + fn advanced_cases() { + // A marker with a length of 0 should be immediately available: + run_test_case( + "zero_length_eligible", + vec![ + step!(AddMarker, input => (0, Some(0)), result => Ok(())), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 0, len: EligibleMarkerLength::Known(0), data: None, + } + )), + ], + ); + + // When we have a fixed-size marker whose required acked marker ID lands right on the + // current acked marker ID, it should not be eligible unless there are enough unclaimed + // acks to actually account for it: + run_test_case( + "fixed_size_u64_boundary_overlap", + vec![ + step!(AddMarker, input => (2_686_784_444_737_799_532, Some(15_759_959_628_971_752_084)), result => Ok(())), + step!(AddMarker, input => (0, None), result => Ok(())), + step!(AddMarker, input => (8_450_737_568, None), result => Ok(())), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 0, len: EligibleMarkerLength::Assumed(2_686_784_444_737_799_532), data: None, + } + )), + step!(GetNextEligibleMarker, result => None), + step!(Acknowledge, input => 15_759_959_628_971_752_084, result => 15_759_959_628_971_752_084), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 2_686_784_444_737_799_532, len: EligibleMarkerLength::Known(15_759_959_628_971_752_084), data: None, + } + )), + step!(GetNextEligibleMarker, result => Some( + EligibleMarker { + id: 0, len: EligibleMarkerLength::Assumed(8_450_737_568), data: None, + } + )), + step!(GetNextEligibleMarker, result => None), + ], + ); + } + + fn run_test_case(name: &str, case: Vec<(Action, ActionResult)>) { + let mut sut = OrderedAcknowledgements::from_acked(0u64); + for (action, expected_result) in case { + let actual_result = apply_action_sut(&mut sut, action); + assert_eq!( + expected_result, actual_result, + "{name}: ran action {action:?} expecting result {expected_result:?}, but got result {actual_result:?} instead" + ); + } + } + + #[test] + #[should_panic(expected = "overflowing unclaimed acknowledgements is a serious bug")] + fn panic_when_unclaimed_acks_overflows() { + let actions = vec![Action::Acknowledge(u64::MAX), Action::Acknowledge(1)]; + + let mut sut = OrderedAcknowledgements::::from_acked(0); + for action in actions { + apply_action_sut(&mut sut, action); + } + } + + proptest! { + #[test] + fn property_test( + mut acked_marker_id in any::(), + actions in arb_vec(arb_ordered_acks_action(), 0..1000) + ) { + let mut sut = OrderedAcknowledgements::from_acked(acked_marker_id); + + let mut unclaimed_acks = 0; + let mut marker_state = HashSet::new(); + let mut marker_stack: VecDeque<(u64, PendingMarkerLength)> = VecDeque::new(); + + for action in actions { + match action { + Action::Acknowledge(amount) => { + unclaimed_acks += amount; + + prop_assert_eq!( + ActionResult::Acknowledge(unclaimed_acks), + apply_action_sut(&mut sut, action) + ); + }, + Action::AddMarker((id, maybe_len)) => { + // We do gap detection/unknown length fix-up first. + let expected_result = if marker_stack.is_empty() { + // Our only comparison is the acked marker ID, which, if it doesn't + // match, we generate a gap marker for. + if id != acked_marker_id { + assert!(marker_state.insert(acked_marker_id), "should not be able to add marker that is already in-flight"); + + let len = PendingMarkerLength::Assumed(id.wrapping_sub(acked_marker_id)); + marker_stack.push_back((acked_marker_id, len)); + } + + Ok(()) + } else { + let (back_id, back_len) = marker_stack.back().copied().expect("must exist"); + match back_len { + PendingMarkerLength::Known(len) => { + // We know exactly where the next marker ID should be. + let expected_id = back_id.wrapping_add(len); + if id == expected_id { + Ok(()) + } else if expected_id < back_id && id < expected_id { + // Assuming monotonic IDs from the caller, this is a + // monotonicity violation. + Err(MarkerError::MonotonicityViolation) + } else { + assert!(marker_state.insert(expected_id), "should not be able to add marker that is already in-flight"); + + // Gap between ID and expected ID, add a gap marker. + let len = PendingMarkerLength::Assumed(id.wrapping_sub(expected_id)); + marker_stack.push_back((expected_id, len)); + + Ok(()) + } + }, + PendingMarkerLength::Assumed(_) => panic!("should never have an assumed length at back"), + PendingMarkerLength::Unknown => { + // Now that we have an ID range, we have enough information to + // give the unknown length marker an assumed length. + let len = id.wrapping_sub(back_id); + let (_, back_len_mut) = marker_stack.back_mut().expect("must exist"); + *back_len_mut = PendingMarkerLength::Assumed(len); + + Ok(()) + }, + } + }; + + let sut_result = apply_action_sut(&mut sut, action); + match sut_result { + ActionResult::AddMarker(result) => { + prop_assert_eq!(expected_result, result.clone()); + + // If adding the pending marker actually succeeded, now we need to track it. + if result.is_ok() { + let len = maybe_len + .map_or(PendingMarkerLength::Unknown, PendingMarkerLength::Known); + + assert!(marker_state.insert(id), "should not be able to add marker that is already in-flight"); + marker_stack.push_back((id, len)); + } + }, + a => panic!("got unexpected action after adding pending marker: {a:?}"), + } + }, + Action::GetNextEligibleMarker => match sut.get_next_eligible_marker() { + Some(marker) => { + let (expected_marker_id, original_len) = marker_stack.pop_front() + .expect("marker stack should not be empty"); + + assert_eq!(expected_marker_id, marker.id, "SUT eligible marker doesn't match expected ID"); + + let unclaimed_acks_to_consume = match (original_len, marker.len) { + (PendingMarkerLength::Known(a), EligibleMarkerLength::Known(b)) => { + prop_assert_eq!(a, b, "SUT marker len and model marker len should match"); + b + }, + (PendingMarkerLength::Assumed(a), EligibleMarkerLength::Assumed(b)) => { + prop_assert_eq!(a, b, "SUT marker len and model marker len should match"); + 0 + } + (PendingMarkerLength::Unknown, _) => + panic!("SUT had eligible marker but marker stack had unknown length marker"), + (a, b) => panic!("unknown SUT/model marker len combination: {a:?}, {b:?}"), + }; + + assert!(unclaimed_acks_to_consume <= unclaimed_acks, + "can't have returned an eligible fixed-size item with a length greater than unclaimed acks"); + + unclaimed_acks -= unclaimed_acks_to_consume; + + assert!(marker_state.remove(&marker.id), "should be state entry for marker if it was eligible"); + + // Update our acked marker ID. + acked_marker_id = marker.id.wrapping_add(marker.len.len()); + }, + None => { + // This may be valid based on the given state of pending vs unclaimed + // acks, as well as whether we have enough information to figure out any + // unknown length markers. + if let Some((marker_id, marker_len)) = marker_stack.front() { + match marker_len { + PendingMarkerLength::Assumed(_) => + panic!("SUT returned None, but model had assumed length marker"), + PendingMarkerLength::Known(len) => { + let required_acked_offset = marker_id.wrapping_add(*len); + let effective_offset = acked_marker_id.wrapping_add(unclaimed_acks); + let is_eligible = required_acked_offset <= effective_offset && required_acked_offset >= *marker_id; + assert!(!is_eligible, + "SUT returned None but next fixed-size marker on stack is eligible: id: {marker_id}, len: {len}, acked_id_offset: {acked_marker_id}"); + }, + PendingMarkerLength::Unknown => { + // If we have an unknown marker, the only we shouldn't be + // able to return it is if there's no other markers to + // calculate the gap from. + // + // This is most likely a bug in our model if it happens. + assert!(marker_stack.len() == 1, + "SUT returned None but unknown length marker is calculable"); + }, + } + } + } + }, + } + } + } + } +} diff --git a/lib/vector-buffers/src/topology/builder.rs b/lib/vector-buffers/src/topology/builder.rs new file mode 100644 index 0000000000000..51f52900eca2f --- /dev/null +++ b/lib/vector-buffers/src/topology/builder.rs @@ -0,0 +1,368 @@ +use std::{error::Error, num::NonZeroUsize}; + +use async_trait::async_trait; +use snafu::{ResultExt, Snafu}; +use tracing::Span; + +use super::channel::{ReceiverAdapter, SenderAdapter}; +use crate::{ + buffer_usage_data::{BufferUsage, BufferUsageHandle}, + topology::channel::{BufferReceiver, BufferSender}, + variants::MemoryBuffer, + Bufferable, WhenFull, +}; + +/// Value that can be used as a stage in a buffer topology. +#[async_trait] +pub trait IntoBuffer: Send { + /// Gets whether or not this buffer stage provides its own instrumentation, or if it should be + /// instrumented from the outside. + /// + /// As some buffer stages, like the in-memory channel, never have a chance to catch the values + /// in the middle of the channel without introducing an unnecessary hop, [`BufferSender`] and + /// [`BufferReceiver`] can be configured to instrument all events flowing through directly. + /// + /// When instrumentation is provided in this way, [`vector_common::byte_size_of::ByteSizeOf`] + /// is used to calculate the size of the event going both into and out of the buffer. + fn provides_instrumentation(&self) -> bool { + false + } + + /// Converts this value into a sender and receiver pair suitable for use in a buffer topology. + async fn into_buffer_parts( + self: Box, + usage_handle: BufferUsageHandle, + ) -> Result<(SenderAdapter, ReceiverAdapter), Box>; +} + +#[derive(Debug, Snafu)] +pub enum TopologyError { + #[snafu(display("buffer topology cannot be empty"))] + EmptyTopology, + #[snafu(display( + "stage {} configured with block/drop newest behavior in front of subsequent stage", + stage_idx + ))] + NextStageNotUsed { stage_idx: usize }, + #[snafu(display("last stage in buffer topology cannot be set to overflow mode"))] + OverflowWhenLast, + #[snafu(display("failed to build individual stage {}: {}", stage_idx, source))] + FailedToBuildStage { + stage_idx: usize, + source: Box, + }, + #[snafu(display( + "multiple components with segmented acknowledgements cannot be used in the same buffer" + ))] + StackedAcks, +} + +struct TopologyStage { + untransformed: Box>, + when_full: WhenFull, +} + +/// Builder for constructing buffer topologies. +pub struct TopologyBuilder { + stages: Vec>, +} + +impl TopologyBuilder { + /// Adds a new stage to the buffer topology. + /// + /// The "when full" behavior can be optionally configured here. If no behavior is specified, + /// and an overflow buffer is _not_ added to the topology after this, then the "when full" + /// behavior will use a default value of "block". If a "when full" behavior is specified, and + /// an overflow buffer is added to the topology after this, then the specified "when full" + /// behavior will be ignored and will be set to "overflow" mode. + /// + /// Callers can configure what to do when a buffer is full by setting `when_full`. Three modes + /// are available -- block, drop newest, and overflow -- which are documented in more detail by + /// [`BufferSender`]. + /// + /// Two notes about what modes are not valid in certain scenarios: + /// - the innermost stage (the last stage given to the builder) cannot be set to "overflow" mode, + /// as there is no other stage to overflow to + /// - a stage cannot use the "block" or "drop newest" mode when there is a subsequent stage, and + /// must user the "overflow" mode + /// + /// Any occurrence of either of these scenarios will result in an error during build. + pub fn stage(&mut self, stage: S, when_full: WhenFull) -> &mut Self + where + S: IntoBuffer + 'static, + { + self.stages.push(TopologyStage { + untransformed: Box::new(stage), + when_full, + }); + self + } + + /// Consumes this builder, returning the sender and receiver that can be used by components. + /// + /// # Errors + /// + /// If there was a configuration error with one of the stages, an error variant will be returned + /// explaining the issue. + pub async fn build( + self, + buffer_id: String, + span: Span, + ) -> Result<(BufferSender, BufferReceiver), TopologyError> { + // We pop stages off in reverse order to build from the inside out. + let mut buffer_usage = BufferUsage::from_span(span.clone()); + let mut current_stage = None; + + for (stage_idx, stage) in self.stages.into_iter().enumerate().rev() { + // Make sure the stage is valid for our current builder state. + match stage.when_full { + // The innermost stage can't be set to overflow, there's nothing else to overflow _to_. + WhenFull::Overflow => { + if current_stage.is_none() { + return Err(TopologyError::OverflowWhenLast); + } + } + // If there's already an inner stage, then blocking or dropping the newest events + // doesn't no sense. Overflowing is the only valid transition to another stage. + WhenFull::Block | WhenFull::DropNewest => { + if current_stage.is_some() { + return Err(TopologyError::NextStageNotUsed { stage_idx }); + } + } + }; + + // Create the buffer usage handle for this stage and initialize it as we create the + // sender/receiver. This is slightly awkward since we just end up actually giving + // the handle to the `BufferSender`/`BufferReceiver` wrappers, but that's the price we + // have to pay for letting each stage function in an opaque way when wrapped. + let usage_handle = buffer_usage.add_stage(stage_idx); + let provides_instrumentation = stage.untransformed.provides_instrumentation(); + let (sender, receiver) = stage + .untransformed + .into_buffer_parts(usage_handle.clone()) + .await + .context(FailedToBuildStageSnafu { stage_idx })?; + + let (mut sender, mut receiver) = match current_stage.take() { + None => ( + BufferSender::new(sender, stage.when_full), + BufferReceiver::new(receiver), + ), + Some((current_sender, current_receiver)) => ( + BufferSender::with_overflow(sender, current_sender), + BufferReceiver::with_overflow(receiver, current_receiver), + ), + }; + + sender.with_send_duration_instrumentation(stage_idx, &span); + if !provides_instrumentation { + sender.with_usage_instrumentation(usage_handle.clone()); + receiver.with_usage_instrumentation(usage_handle); + } + + current_stage = Some((sender, receiver)); + } + + let (sender, receiver) = current_stage.ok_or(TopologyError::EmptyTopology)?; + + // Install the buffer usage handler since we successfully created the buffer topology. This + // spawns it in the background and periodically emits aggregated metrics about each of the + // buffer stages. + buffer_usage.install(buffer_id.as_str()); + + Ok((sender, receiver)) + } +} + +impl TopologyBuilder { + /// Creates a memory-only buffer topology. + /// + /// The overflow mode (i.e. `WhenFull`) can be configured to either block or drop the newest + /// values, but cannot be configured to use overflow mode. If overflow mode is selected, it + /// will be changed to blocking mode. + /// + /// This is a convenience method for `vector` as it is used for inter-transform channels, and we + /// can simplifying needing to require callers to do all the boilerplate to create the builder, + /// create the stage, installing buffer usage metrics that aren't required, and so on. + /// + #[allow(clippy::print_stderr)] + pub async fn standalone_memory( + max_events: NonZeroUsize, + when_full: WhenFull, + receiver_span: &Span, + ) -> (BufferSender, BufferReceiver) { + let usage_handle = BufferUsageHandle::noop(); + + let memory_buffer = Box::new(MemoryBuffer::new(max_events)); + let (sender, receiver) = memory_buffer + .into_buffer_parts(usage_handle.clone()) + .await + .unwrap_or_else(|_| unreachable!("should not fail to directly create a memory buffer")); + + let mode = match when_full { + WhenFull::Overflow => WhenFull::Block, + m => m, + }; + let mut sender = BufferSender::new(sender, mode); + sender.with_send_duration_instrumentation(0, receiver_span); + let receiver = BufferReceiver::new(receiver); + + (sender, receiver) + } + + /// Creates a memory-only buffer topology with the given buffer usage handle. + /// + /// This is specifically required for the tests that occur under `buffers`, as we assert things + /// like channel capacity left, which cannot be done on in-memory v1 buffers as they use the + /// more abstract `Sink`-based adapters. + /// + /// The overflow mode (i.e. `WhenFull`) can be configured to either block or drop the newest + /// values, but cannot be configured to use overflow mode. If overflow mode is selected, it + /// will be changed to blocking mode. + /// + /// This is a convenience method for `vector` as it is used for inter-transform channels, and we + /// can simplifying needing to require callers to do all the boilerplate to create the builder, + /// create the stage, installing buffer usage metrics that aren't required, and so on. + #[cfg(test)] + pub async fn standalone_memory_test( + max_events: NonZeroUsize, + when_full: WhenFull, + usage_handle: BufferUsageHandle, + ) -> (BufferSender, BufferReceiver) { + let memory_buffer = Box::new(MemoryBuffer::new(max_events)); + let (sender, receiver) = memory_buffer + .into_buffer_parts(usage_handle.clone()) + .await + .unwrap_or_else(|_| unreachable!("should not fail to directly create a memory buffer")); + + let mode = match when_full { + WhenFull::Overflow => WhenFull::Block, + m => m, + }; + let mut sender = BufferSender::new(sender, mode); + let mut receiver = BufferReceiver::new(receiver); + + sender.with_usage_instrumentation(usage_handle.clone()); + receiver.with_usage_instrumentation(usage_handle); + + (sender, receiver) + } +} + +impl Default for TopologyBuilder { + fn default() -> Self { + Self { stages: Vec::new() } + } +} + +#[cfg(test)] +mod tests { + use std::num::NonZeroUsize; + + use tracing::Span; + + use super::TopologyBuilder; + use crate::{ + topology::builder::TopologyError, + topology::test_util::{assert_current_send_capacity, Sample}, + variants::MemoryBuffer, + WhenFull, + }; + + #[tokio::test] + async fn single_stage_topology_block() { + let mut builder = TopologyBuilder::::default(); + builder.stage( + MemoryBuffer::new(NonZeroUsize::new(1).unwrap()), + WhenFull::Block, + ); + let result = builder.build(String::from("test"), Span::none()).await; + assert!(result.is_ok()); + + let (mut sender, _) = result.unwrap(); + assert_current_send_capacity(&mut sender, Some(1), None); + } + + #[tokio::test] + async fn single_stage_topology_drop_newest() { + let mut builder = TopologyBuilder::::default(); + builder.stage( + MemoryBuffer::new(NonZeroUsize::new(1).unwrap()), + WhenFull::DropNewest, + ); + let result = builder.build(String::from("test"), Span::none()).await; + assert!(result.is_ok()); + + let (mut sender, _) = result.unwrap(); + assert_current_send_capacity(&mut sender, Some(1), None); + } + + #[tokio::test] + async fn single_stage_topology_overflow() { + let mut builder = TopologyBuilder::::default(); + builder.stage( + MemoryBuffer::new(NonZeroUsize::new(1).unwrap()), + WhenFull::Overflow, + ); + let result = builder.build(String::from("test"), Span::none()).await; + match result { + Err(TopologyError::OverflowWhenLast) => {} + r => panic!("unexpected build result: {r:?}"), + } + } + + #[tokio::test] + async fn two_stage_topology_block() { + let mut builder = TopologyBuilder::::default(); + builder.stage( + MemoryBuffer::new(NonZeroUsize::new(1).unwrap()), + WhenFull::Block, + ); + builder.stage( + MemoryBuffer::new(NonZeroUsize::new(1).unwrap()), + WhenFull::Block, + ); + let result = builder.build(String::from("test"), Span::none()).await; + match result { + Err(TopologyError::NextStageNotUsed { stage_idx }) => assert_eq!(stage_idx, 0), + r => panic!("unexpected build result: {r:?}"), + } + } + + #[tokio::test] + async fn two_stage_topology_drop_newest() { + let mut builder = TopologyBuilder::::default(); + builder.stage( + MemoryBuffer::new(NonZeroUsize::new(1).unwrap()), + WhenFull::DropNewest, + ); + builder.stage( + MemoryBuffer::new(NonZeroUsize::new(1).unwrap()), + WhenFull::Block, + ); + let result = builder.build(String::from("test"), Span::none()).await; + match result { + Err(TopologyError::NextStageNotUsed { stage_idx }) => assert_eq!(stage_idx, 0), + r => panic!("unexpected build result: {r:?}"), + } + } + + #[tokio::test] + async fn two_stage_topology_overflow() { + let mut builder = TopologyBuilder::::default(); + builder.stage( + MemoryBuffer::new(NonZeroUsize::new(1).unwrap()), + WhenFull::Overflow, + ); + builder.stage( + MemoryBuffer::new(NonZeroUsize::new(1).unwrap()), + WhenFull::Block, + ); + + let result = builder.build(String::from("test"), Span::none()).await; + assert!(result.is_ok()); + + let (mut sender, _) = result.unwrap(); + assert_current_send_capacity(&mut sender, Some(1), Some(1)); + } +} diff --git a/lib/vector-buffers/src/topology/channel/limited_queue.rs b/lib/vector-buffers/src/topology/channel/limited_queue.rs new file mode 100644 index 0000000000000..887ce2639ada0 --- /dev/null +++ b/lib/vector-buffers/src/topology/channel/limited_queue.rs @@ -0,0 +1,598 @@ +use std::{ + cmp, fmt, + pin::Pin, + sync::{ + atomic::{AtomicUsize, Ordering}, + Arc, + }, +}; + +use async_stream::stream; +use crossbeam_queue::ArrayQueue; +use futures::Stream; +use tokio::sync::{Notify, OwnedSemaphorePermit, Semaphore, TryAcquireError}; + +use crate::InMemoryBufferable; + +/// Error returned by `LimitedSender::send` when the receiver has disconnected. +#[derive(Debug, PartialEq, Eq)] +pub struct SendError(pub T); + +impl fmt::Display for SendError { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(fmt, "receiver disconnected") + } +} + +impl std::error::Error for SendError {} + +/// Error returned by `LimitedSender::try_send`. +#[derive(Debug, PartialEq, Eq)] +pub enum TrySendError { + InsufficientCapacity(T), + Disconnected(T), +} + +impl TrySendError { + pub fn into_inner(self) -> T { + match self { + Self::InsufficientCapacity(item) | Self::Disconnected(item) => item, + } + } +} + +impl fmt::Display for TrySendError { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::InsufficientCapacity(_) => { + write!(fmt, "channel lacks sufficient capacity for send") + } + Self::Disconnected(_) => write!(fmt, "receiver disconnected"), + } + } +} + +impl std::error::Error for TrySendError {} + +#[derive(Debug)] +struct Inner { + data: Arc>, + limit: usize, + limiter: Arc, + read_waker: Arc, +} + +impl Clone for Inner { + fn clone(&self) -> Self { + Self { + data: self.data.clone(), + limit: self.limit, + limiter: self.limiter.clone(), + read_waker: self.read_waker.clone(), + } + } +} + +#[derive(Debug)] +pub struct LimitedSender { + inner: Inner, + sender_count: Arc, +} + +impl LimitedSender { + #[allow(clippy::cast_possible_truncation)] + fn get_required_permits_for_item(&self, item: &T) -> u32 { + // We have to limit the number of permits we ask for to the overall limit since we're always + // willing to store more items than the limit if the queue is entirely empty, because + // otherwise we might deadlock ourselves by not being able to send a single item. + cmp::min(self.inner.limit, item.event_count()) as u32 + } + + /// Gets the number of items that this channel could accept. + pub fn available_capacity(&self) -> usize { + self.inner.limiter.available_permits() + } + + /// Sends an item into the channel. + /// + /// # Errors + /// + /// If the receiver has disconnected (does not exist anymore), then `Err(SendError)` be returned + /// with the given `item`. + pub async fn send(&mut self, item: T) -> Result<(), SendError> { + // Calculate how many permits we need, and wait until we can acquire all of them. + let permits_required = self.get_required_permits_for_item(&item); + let Ok(permits) = self + .inner + .limiter + .clone() + .acquire_many_owned(permits_required) + .await + else { + return Err(SendError(item)); + }; + + self.inner + .data + .push((permits, item)) + .unwrap_or_else(|_| unreachable!("acquired permits but channel reported being full")); + self.inner.read_waker.notify_one(); + + trace!("Sent item."); + + Ok(()) + } + + /// Attempts to send an item into the channel. + /// + /// # Errors + /// + /// If the receiver has disconnected (does not exist anymore), then + /// `Err(TrySendError::Disconnected)` be returned with the given `item`. If the channel has + /// insufficient capacity for the item, then `Err(TrySendError::InsufficientCapacity)` will be + /// returned with the given `item`. + /// + /// # Panics + /// + /// Will panic if adding ack amount overflows. + pub fn try_send(&mut self, item: T) -> Result<(), TrySendError> { + // Calculate how many permits we need, and try to acquire them all without waiting. + let permits_required = self.get_required_permits_for_item(&item); + let permits = match self + .inner + .limiter + .clone() + .try_acquire_many_owned(permits_required) + { + Ok(permits) => permits, + Err(ae) => { + return match ae { + TryAcquireError::NoPermits => Err(TrySendError::InsufficientCapacity(item)), + TryAcquireError::Closed => Err(TrySendError::Disconnected(item)), + } + } + }; + + self.inner + .data + .push((permits, item)) + .unwrap_or_else(|_| unreachable!("acquired permits but channel reported being full")); + self.inner.read_waker.notify_one(); + + trace!("Attempt to send item succeeded."); + + Ok(()) + } +} + +impl Clone for LimitedSender { + fn clone(&self) -> Self { + self.sender_count.fetch_add(1, Ordering::SeqCst); + + Self { + inner: self.inner.clone(), + sender_count: Arc::clone(&self.sender_count), + } + } +} + +impl Drop for LimitedSender { + fn drop(&mut self) { + // If we're the last sender to drop, close the semaphore on our way out the door. + if self.sender_count.fetch_sub(1, Ordering::SeqCst) == 1 { + self.inner.limiter.close(); + self.inner.read_waker.notify_one(); + } + } +} + +#[derive(Debug)] +pub struct LimitedReceiver { + inner: Inner, +} + +impl LimitedReceiver { + /// Gets the number of items that this channel could accept. + pub fn available_capacity(&self) -> usize { + self.inner.limiter.available_permits() + } + + pub async fn next(&mut self) -> Option { + loop { + if let Some((_permit, item)) = self.inner.data.pop() { + return Some(item); + } + + // There wasn't an item for us to pop, so see if the channel is actually closed. If so, + // then it's time for us to close up shop as well. + if self.inner.limiter.is_closed() { + return None; + } + + // We're not closed, so we need to wait for a writer to tell us they made some + // progress. This might end up being a spurious wakeup since `Notify` will + // store a wake-up if there are no waiters, but oh well. + self.inner.read_waker.notified().await; + } + } + + pub fn into_stream(self) -> Pin + Send>> { + let mut receiver = self; + Box::pin(stream! { + while let Some(item) = receiver.next().await { + yield item; + } + }) + } +} + +impl Drop for LimitedReceiver { + fn drop(&mut self) { + // Notify senders that the channel is now closed by closing the semaphore. Any pending + // acquisitions will be awoken and notified that the semaphore is closed, and further new + // sends will immediately see the semaphore is closed. + self.inner.limiter.close(); + } +} + +pub fn limited(limit: usize) -> (LimitedSender, LimitedReceiver) { + let inner = Inner { + data: Arc::new(ArrayQueue::new(limit)), + limit, + limiter: Arc::new(Semaphore::new(limit)), + read_waker: Arc::new(Notify::new()), + }; + + let sender = LimitedSender { + inner: inner.clone(), + sender_count: Arc::new(AtomicUsize::new(1)), + }; + let receiver = LimitedReceiver { inner }; + + (sender, receiver) +} + +#[cfg(test)] +mod tests { + use tokio_test::{assert_pending, assert_ready, task::spawn}; + + use super::limited; + use crate::{ + test::MultiEventRecord, topology::channel::limited_queue::SendError, + topology::test_util::Sample, + }; + + #[tokio::test] + async fn send_receive() { + let (mut tx, mut rx) = limited(2); + + assert_eq!(2, tx.available_capacity()); + + let msg = Sample(42); + + // Create our send and receive futures. + let mut send = spawn(async { tx.send(msg).await }); + + let mut recv = spawn(async { rx.next().await }); + + // Nobody should be woken up. + assert!(!send.is_woken()); + assert!(!recv.is_woken()); + + // Try polling our receive, which should be pending because we haven't anything yet. + assert_pending!(recv.poll()); + + // We should immediately be able to complete a send as there is available capacity. + assert_eq!(Ok(()), assert_ready!(send.poll())); + + // Now our receive should have been woken up, and should immediately be ready. + assert!(recv.is_woken()); + assert_eq!(Some(msg), assert_ready!(recv.poll())); + } + + #[test] + fn sender_waits_for_more_capacity_when_none_available() { + let (mut tx, mut rx) = limited(1); + + assert_eq!(1, tx.available_capacity()); + + let msg1 = Sample(42); + let msg2 = Sample(43); + + // Create our send and receive futures. + let mut send1 = spawn(async { tx.send(msg1).await }); + + let mut recv1 = spawn(async { rx.next().await }); + + // Nobody should be woken up. + assert!(!send1.is_woken()); + assert!(!recv1.is_woken()); + + // Try polling our receive, which should be pending because we haven't anything yet. + assert_pending!(recv1.poll()); + + // We should immediately be able to complete a send as there is available capacity. + assert_eq!(Ok(()), assert_ready!(send1.poll())); + drop(send1); + + assert_eq!(0, tx.available_capacity()); + + // Now our receive should have been woken up, and should immediately be ready... but we + // aren't going to read the value just yet. + assert!(recv1.is_woken()); + + // Now trigger a second send, which should block as there's no available capacity. + let mut send2 = spawn(async { tx.send(msg2).await }); + + assert!(!send2.is_woken()); + assert_pending!(send2.poll()); + + // Now if we receive the item, our second send should be woken up and be able to send in. + assert_eq!(Some(msg1), assert_ready!(recv1.poll())); + drop(recv1); + + // Since the second send was already waiting for permits, the semaphore returns them + // directly to our waiting send, which should now be woken up and able to complete: + assert_eq!(0, rx.available_capacity()); + assert!(send2.is_woken()); + + let mut recv2 = spawn(async { rx.next().await }); + assert_pending!(recv2.poll()); + + assert_eq!(Ok(()), assert_ready!(send2.poll())); + drop(send2); + + assert_eq!(0, tx.available_capacity()); + + // And the final receive to get our second send: + assert!(recv2.is_woken()); + assert_eq!(Some(msg2), assert_ready!(recv2.poll())); + + assert_eq!(1, tx.available_capacity()); + } + + #[test] + fn sender_waits_for_more_capacity_when_partial_available() { + let (mut tx, mut rx) = limited(7); + + assert_eq!(7, tx.available_capacity()); + + let msgs1 = vec![ + MultiEventRecord::new(1), + MultiEventRecord::new(2), + MultiEventRecord::new(3), + ]; + let msg2 = MultiEventRecord::new(4); + + // Create our send and receive futures. + let mut small_sends = spawn(async { + for msg in msgs1.clone() { + tx.send(msg).await?; + } + + Ok::<_, SendError>(()) + }); + + let mut recv1 = spawn(async { rx.next().await }); + + // Nobody should be woken up. + assert!(!small_sends.is_woken()); + assert!(!recv1.is_woken()); + + // Try polling our receive, which should be pending because we haven't anything yet. + assert_pending!(recv1.poll()); + + // We should immediately be able to complete our three event sends, which we have + // available capacity for, but will consume all but one of the available slots. + assert_eq!(Ok(()), assert_ready!(small_sends.poll())); + drop(small_sends); + + assert_eq!(1, tx.available_capacity()); + + // Now our receive should have been woken up, and should immediately be ready, but we won't + // receive just yet. + assert!(recv1.is_woken()); + + // Now trigger a second send that has four events, and needs to wait for two receives to happen. + let mut send2 = spawn(tx.send(msg2.clone())); + + assert!(!send2.is_woken()); + assert_pending!(send2.poll()); + + // Now if we receive the first item, our second send should be woken up but still not able + // to send. + assert_eq!(Some(&msgs1[0]), assert_ready!(recv1.poll()).as_ref()); + drop(recv1); + + // Callers waiting to acquire permits have the permits immediately transfer to them when one + // (or more) are released, so we expect this to be zero until we send and then read the + // third item. + assert_eq!(0, rx.available_capacity()); + + // We don't get woken up until all permits have been acquired. + assert!(!send2.is_woken()); + + // Our second read should unlock enough available capacity for the second send once complete. + let mut recv2 = spawn(async { rx.next().await }); + assert!(!recv2.is_woken()); + assert_eq!(Some(&msgs1[1]), assert_ready!(recv2.poll()).as_ref()); + drop(recv2); + + assert_eq!(0, rx.available_capacity()); + + assert!(send2.is_woken()); + assert_eq!(Ok(()), assert_ready!(send2.poll())); + + // And just make sure we see those last two sends. + let mut recv3 = spawn(async { rx.next().await }); + assert!(!recv3.is_woken()); + assert_eq!(Some(&msgs1[2]), assert_ready!(recv3.poll()).as_ref()); + drop(recv3); + + assert_eq!(3, rx.available_capacity()); + + let mut recv4 = spawn(async { rx.next().await }); + assert!(!recv4.is_woken()); + assert_eq!(Some(msg2), assert_ready!(recv4.poll())); + drop(recv4); + + assert_eq!(7, rx.available_capacity()); + } + + #[test] + fn empty_receiver_returns_none_when_last_sender_drops() { + let (mut tx, mut rx) = limited(1); + + assert_eq!(1, tx.available_capacity()); + + let tx2 = tx.clone(); + let msg = Sample(42); + + // Create our send and receive futures. + let mut send = spawn(async { tx.send(msg).await }); + + let mut recv = spawn(async { rx.next().await }); + + // Nobody should be woken up. + assert!(!send.is_woken()); + assert!(!recv.is_woken()); + + // Try polling our receive, which should be pending because we haven't anything yet. + assert_pending!(recv.poll()); + + // Now drop our second sender, which shouldn't do anything yet. + drop(tx2); + assert!(!recv.is_woken()); + assert_pending!(recv.poll()); + + // Now drop our second sender, but not before doing a send, which should trigger closing the + // semaphore which should let the receiver complete with no further waiting: one item and + // then `None`. + assert_eq!(Ok(()), assert_ready!(send.poll())); + drop(send); + drop(tx); + + assert!(recv.is_woken()); + assert_eq!(Some(msg), assert_ready!(recv.poll())); + drop(recv); + + let mut recv2 = spawn(async { rx.next().await }); + assert!(!recv2.is_woken()); + assert_eq!(None, assert_ready!(recv2.poll())); + } + + #[test] + fn receiver_returns_none_once_empty_when_last_sender_drops() { + let (tx, mut rx) = limited::(1); + + assert_eq!(1, tx.available_capacity()); + + let tx2 = tx.clone(); + + // Create our receive future. + let mut recv = spawn(async { rx.next().await }); + + // Nobody should be woken up. + assert!(!recv.is_woken()); + + // Try polling our receive, which should be pending because we haven't anything yet. + assert_pending!(recv.poll()); + + // Now drop our first sender, which shouldn't do anything yet. + drop(tx); + assert!(!recv.is_woken()); + assert_pending!(recv.poll()); + + // Now drop our second sender, which should trigger closing the semaphore which should let + // the receive complete as there are no items to read. + drop(tx2); + assert!(recv.is_woken()); + assert_eq!(None, assert_ready!(recv.poll())); + } + + #[test] + fn oversized_send_allowed_when_empty() { + let (mut tx, mut rx) = limited(1); + + assert_eq!(1, tx.available_capacity()); + + let msg = MultiEventRecord::new(2); + + // Create our send and receive futures. + let mut send = spawn(async { tx.send(msg.clone()).await }); + + let mut recv = spawn(async { rx.next().await }); + + // Nobody should be woken up. + assert!(!send.is_woken()); + assert!(!recv.is_woken()); + + // We should immediately be able to complete our send, which we don't have full + // available capacity for, but will consume all of the available slots. + assert_eq!(Ok(()), assert_ready!(send.poll())); + drop(send); + + assert_eq!(0, tx.available_capacity()); + + // Now we should be able to get back the oversized item, but our capacity should not be + // greater than what we started with. + assert_eq!(Some(msg), assert_ready!(recv.poll())); + drop(recv); + + assert_eq!(1, rx.available_capacity()); + } + + #[test] + fn oversized_send_allowed_when_partial_capacity() { + let (mut tx, mut rx) = limited(2); + + assert_eq!(2, tx.available_capacity()); + + let msg1 = MultiEventRecord::new(1); + let msg2 = MultiEventRecord::new(3); + + // Create our send future. + let mut send = spawn(async { tx.send(msg1.clone()).await }); + + // Nobody should be woken up. + assert!(!send.is_woken()); + + // We should immediately be able to complete our send, which will only use up a single slot. + assert_eq!(Ok(()), assert_ready!(send.poll())); + drop(send); + + assert_eq!(1, tx.available_capacity()); + + // Now we'll trigger another send which has an oversized item. It shouldn't be able to send + // until all permits are available. + let mut send2 = spawn(async { tx.send(msg2.clone()).await }); + + assert!(!send2.is_woken()); + assert_pending!(send2.poll()); + + assert_eq!(0, rx.available_capacity()); + + // Now do a receive which should return the one consumed slot, essentially allowing all + // permits to be acquired by the blocked send. + let mut recv = spawn(async { rx.next().await }); + assert!(!recv.is_woken()); + assert!(!send2.is_woken()); + + assert_eq!(Some(msg1), assert_ready!(recv.poll())); + drop(recv); + + assert_eq!(0, rx.available_capacity()); + + // Now our blocked send should be able to proceed, and we should be able to read back the + // item. + assert_eq!(Ok(()), assert_ready!(send2.poll())); + drop(send2); + + assert_eq!(0, tx.available_capacity()); + + let mut recv2 = spawn(async { rx.next().await }); + assert_eq!(Some(msg2), assert_ready!(recv2.poll())); + + assert_eq!(2, tx.available_capacity()); + } +} diff --git a/lib/vector-buffers/src/topology/channel/mod.rs b/lib/vector-buffers/src/topology/channel/mod.rs new file mode 100644 index 0000000000000..d9a1d06926444 --- /dev/null +++ b/lib/vector-buffers/src/topology/channel/mod.rs @@ -0,0 +1,10 @@ +mod limited_queue; +mod receiver; +mod sender; + +pub use limited_queue::{limited, LimitedReceiver, LimitedSender, SendError}; +pub use receiver::*; +pub use sender::*; + +#[cfg(test)] +mod tests; diff --git a/lib/vector-buffers/src/topology/channel/receiver.rs b/lib/vector-buffers/src/topology/channel/receiver.rs new file mode 100644 index 0000000000000..d21aa1ed67e4f --- /dev/null +++ b/lib/vector-buffers/src/topology/channel/receiver.rs @@ -0,0 +1,218 @@ +use std::{ + mem, + pin::Pin, + task::{ready, Context, Poll}, +}; + +use async_recursion::async_recursion; +use futures::Stream; +use tokio::select; +use tokio_util::sync::ReusableBoxFuture; +use vector_common::internal_event::emit; + +use super::limited_queue::LimitedReceiver; +use crate::{ + buffer_usage_data::BufferUsageHandle, + variants::disk_v2::{self, ProductionFilesystem}, + Bufferable, +}; + +/// Adapter for papering over various receiver backends. +#[derive(Debug)] +pub enum ReceiverAdapter { + /// The in-memory channel buffer. + InMemory(LimitedReceiver), + + /// The disk v2 buffer. + DiskV2(disk_v2::BufferReader), +} + +impl From> for ReceiverAdapter { + fn from(v: LimitedReceiver) -> Self { + Self::InMemory(v) + } +} + +impl From> for ReceiverAdapter { + fn from(v: disk_v2::BufferReader) -> Self { + Self::DiskV2(v) + } +} + +impl ReceiverAdapter +where + T: Bufferable, +{ + pub(crate) async fn next(&mut self) -> Option { + match self { + ReceiverAdapter::InMemory(rx) => rx.next().await, + ReceiverAdapter::DiskV2(reader) => loop { + match reader.next().await { + Ok(result) => break result, + Err(e) => match e.as_recoverable_error() { + Some(re) => { + // If we've hit a recoverable error, we'll emit an event to indicate as much but we'll still + // keep trying to read the next available record. + emit(re); + continue; + } + None => panic!("Reader encountered unrecoverable error: {e:?}"), + }, + } + }, + } + } +} + +/// A buffer receiver. +/// +/// The receiver handles retrieving events from the buffer, regardless of the overall buffer configuration. +/// +/// If a buffer was configured to operate in "overflow" mode, then the receiver will be responsible +/// for querying the overflow buffer as well. The ordering of events when operating in "overflow" +/// is undefined, as the receiver will try to manage polling both its own buffer, as well as the +/// overflow buffer, in order to fairly balance throughput. +#[derive(Debug)] +pub struct BufferReceiver { + base: ReceiverAdapter, + overflow: Option>>, + instrumentation: Option, +} + +impl BufferReceiver { + /// Creates a new [`BufferReceiver`] wrapping the given channel receiver. + pub fn new(base: ReceiverAdapter) -> Self { + Self { + base, + overflow: None, + instrumentation: None, + } + } + + /// Creates a new [`BufferReceiver`] wrapping the given channel receiver and overflow receiver. + pub fn with_overflow(base: ReceiverAdapter, overflow: BufferReceiver) -> Self { + Self { + base, + overflow: Some(Box::new(overflow)), + instrumentation: None, + } + } + + /// Converts this receiver into an overflowing receiver using the given `BufferSender`. + /// + /// Note: this resets the internal state of this sender, and so this should not be called except + /// when initially constructing `BufferSender`. + #[cfg(test)] + pub fn switch_to_overflow(&mut self, overflow: BufferReceiver) { + self.overflow = Some(Box::new(overflow)); + } + + /// Configures this receiver to instrument the items passing through it. + pub fn with_usage_instrumentation(&mut self, handle: BufferUsageHandle) { + self.instrumentation = Some(handle); + } + + #[async_recursion] + pub async fn next(&mut self) -> Option { + // We want to poll both our base and overflow receivers without waiting for one or the + // other to entirely drain before checking the other. This ensures that we're fairly + // servicing both receivers, and avoiding stalls in one or the other. + // + // This is primarily important in situations where an overflow-triggering event has + // occurred, and is over, and items are flowing through the base receiver. If we waited to + // entirely drain the overflow receiver, we might cause another small stall of the pipeline + // attached to the base receiver. + let overflow = self.overflow.as_mut().map(Pin::new); + + let (item, from_base) = match overflow { + None => match self.base.next().await { + Some(item) => (item, true), + None => return None, + }, + Some(mut overflow) => { + select! { + Some(item) = overflow.next() => (item, false), + Some(item) = self.base.next() => (item, true), + else => return None, + } + } + }; + + // If instrumentation is enabled, and we got the item from the base receiver, then and only + // then do we track sending the event out. + if let Some(handle) = self.instrumentation.as_ref() { + if from_base { + handle.increment_sent_event_count_and_byte_size( + item.event_count() as u64, + item.size_of() as u64, + ); + } + } + + Some(item) + } + + pub fn into_stream(self) -> BufferReceiverStream { + BufferReceiverStream::new(self) + } +} + +enum StreamState { + Idle(BufferReceiver), + Polling, + Closed, +} + +pub struct BufferReceiverStream { + state: StreamState, + recv_fut: ReusableBoxFuture<'static, (Option, BufferReceiver)>, +} + +impl BufferReceiverStream { + pub fn new(receiver: BufferReceiver) -> Self { + Self { + state: StreamState::Idle(receiver), + recv_fut: ReusableBoxFuture::new(make_recv_future(None)), + } + } +} + +impl Stream for BufferReceiverStream { + type Item = T; + + fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + loop { + match mem::replace(&mut self.state, StreamState::Polling) { + s @ StreamState::Closed => { + self.state = s; + return Poll::Ready(None); + } + StreamState::Idle(receiver) => { + self.recv_fut.set(make_recv_future(Some(receiver))); + } + StreamState::Polling => { + let (result, receiver) = ready!(self.recv_fut.poll(cx)); + self.state = if result.is_none() { + StreamState::Closed + } else { + StreamState::Idle(receiver) + }; + + return Poll::Ready(result); + } + } + } + } +} + +async fn make_recv_future( + receiver: Option>, +) -> (Option, BufferReceiver) { + match receiver { + None => panic!("invalid to poll future in uninitialized state"), + Some(mut receiver) => { + let result = receiver.next().await; + (result, receiver) + } + } +} diff --git a/lib/vector-buffers/src/topology/channel/sender.rs b/lib/vector-buffers/src/topology/channel/sender.rs new file mode 100644 index 0000000000000..15191ec02eead --- /dev/null +++ b/lib/vector-buffers/src/topology/channel/sender.rs @@ -0,0 +1,265 @@ +use std::{sync::Arc, time::Instant}; + +use async_recursion::async_recursion; +use derivative::Derivative; +use tokio::sync::Mutex; +use tracing::Span; +use vector_common::internal_event::{register, InternalEventHandle, Registered}; + +use super::limited_queue::LimitedSender; +use crate::{ + buffer_usage_data::BufferUsageHandle, + internal_events::BufferSendDuration, + variants::disk_v2::{self, ProductionFilesystem}, + Bufferable, WhenFull, +}; + +/// Adapter for papering over various sender backends. +#[derive(Clone, Debug)] +pub enum SenderAdapter { + /// The in-memory channel buffer. + InMemory(LimitedSender), + + /// The disk v2 buffer. + DiskV2(Arc>>), +} + +impl From> for SenderAdapter { + fn from(v: LimitedSender) -> Self { + Self::InMemory(v) + } +} + +impl From> for SenderAdapter { + fn from(v: disk_v2::BufferWriter) -> Self { + Self::DiskV2(Arc::new(Mutex::new(v))) + } +} + +impl SenderAdapter +where + T: Bufferable, +{ + pub(crate) async fn send(&mut self, item: T) -> crate::Result<()> { + match self { + Self::InMemory(tx) => tx.send(item).await.map_err(Into::into), + Self::DiskV2(writer) => { + let mut writer = writer.lock().await; + + writer.write_record(item).await.map(|_| ()).map_err(|e| { + // TODO: Could some errors be handled and not be unrecoverable? Right now, + // encoding should theoretically be recoverable -- encoded value was too big, or + // error during encoding -- but the traits don't allow for recovering the + // original event value because we have to consume it to do the encoding... but + // that might not always be the case. + error!("Disk buffer writer has encountered an unrecoverable error."); + + e.into() + }) + } + } + } + + pub(crate) async fn try_send(&mut self, item: T) -> crate::Result> { + match self { + Self::InMemory(tx) => tx + .try_send(item) + .map(|()| None) + .or_else(|e| Ok(Some(e.into_inner()))), + Self::DiskV2(writer) => { + let mut writer = writer.lock().await; + + writer.try_write_record(item).await.map_err(|e| { + // TODO: Could some errors be handled and not be unrecoverable? Right now, + // encoding should theoretically be recoverable -- encoded value was too big, or + // error during encoding -- but the traits don't allow for recovering the + // original event value because we have to consume it to do the encoding... but + // that might not always be the case. + error!("Disk buffer writer has encountered an unrecoverable error."); + + e.into() + }) + } + } + } + + pub(crate) async fn flush(&mut self) -> crate::Result<()> { + match self { + Self::InMemory(_) => Ok(()), + Self::DiskV2(writer) => { + let mut writer = writer.lock().await; + writer.flush().await.map_err(|e| { + // Errors on the I/O path, which is all that flushing touches, are never recoverable. + error!("Disk buffer writer has encountered an unrecoverable error."); + + e.into() + }) + } + } + } + + pub fn capacity(&self) -> Option { + match self { + Self::InMemory(tx) => Some(tx.available_capacity()), + Self::DiskV2(_) => None, + } + } +} + +/// A buffer sender. +/// +/// The sender handles sending events into the buffer, as well as the behavior around handling +/// events when the internal channel is full. +/// +/// When creating a buffer sender/receiver pair, callers can specify the "when full" behavior of the +/// sender. This controls how events are handled when the internal channel is full. Three modes +/// are possible: +/// - block +/// - drop newest +/// - overflow +/// +/// In "block" mode, callers are simply forced to wait until the channel has enough capacity to +/// accept the event. In "drop newest" mode, any event being sent when the channel is full will be +/// dropped and proceed no further. In "overflow" mode, events will be sent to another buffer +/// sender. Callers can specify the overflow sender to use when constructing their buffers initially. +/// +/// TODO: We should eventually rework `BufferSender`/`BufferReceiver` so that they contain a vector +/// of the fields we already have here, but instead of cascading via calling into `overflow`, we'd +/// linearize the nesting instead, so that `BufferSender` would only ever be calling the underlying +/// `SenderAdapter` instances instead... which would let us get rid of the boxing and +/// `#[async_recursion]` stuff. +#[derive(Clone, Derivative)] +#[derivative(Debug)] +pub struct BufferSender { + base: SenderAdapter, + overflow: Option>>, + when_full: WhenFull, + instrumentation: Option, + #[derivative(Debug = "ignore")] + send_duration: Option>, +} + +impl BufferSender { + /// Creates a new [`BufferSender`] wrapping the given channel sender. + pub fn new(base: SenderAdapter, when_full: WhenFull) -> Self { + Self { + base, + overflow: None, + when_full, + instrumentation: None, + send_duration: None, + } + } + + /// Creates a new [`BufferSender`] wrapping the given channel sender and overflow sender. + pub fn with_overflow(base: SenderAdapter, overflow: BufferSender) -> Self { + Self { + base, + overflow: Some(Box::new(overflow)), + when_full: WhenFull::Overflow, + instrumentation: None, + send_duration: None, + } + } + + /// Converts this sender into an overflowing sender using the given `BufferSender`. + /// + /// Note: this resets the internal state of this sender, and so this should not be called except + /// when initially constructing `BufferSender`. + #[cfg(test)] + pub fn switch_to_overflow(&mut self, overflow: BufferSender) { + self.overflow = Some(Box::new(overflow)); + self.when_full = WhenFull::Overflow; + } + + /// Configures this sender to instrument the items passing through it. + pub fn with_usage_instrumentation(&mut self, handle: BufferUsageHandle) { + self.instrumentation = Some(handle); + } + + /// Configures this sender to instrument the send duration. + pub fn with_send_duration_instrumentation(&mut self, stage: usize, span: &Span) { + let _enter = span.enter(); + self.send_duration = Some(register(BufferSendDuration { stage })); + } +} + +impl BufferSender { + #[cfg(test)] + pub(crate) fn get_base_ref(&self) -> &SenderAdapter { + &self.base + } + + #[cfg(test)] + pub(crate) fn get_overflow_ref(&self) -> Option<&BufferSender> { + self.overflow.as_ref().map(AsRef::as_ref) + } + + #[async_recursion] + pub async fn send(&mut self, item: T, send_reference: Option) -> crate::Result<()> { + let item_sizing = self + .instrumentation + .as_ref() + .map(|_| (item.event_count(), item.size_of())); + + let mut sent_to_base = true; + let mut was_dropped = false; + match self.when_full { + WhenFull::Block => self.base.send(item).await?, + WhenFull::DropNewest => { + if self.base.try_send(item).await?.is_some() { + was_dropped = true; + } + } + WhenFull::Overflow => { + if let Some(item) = self.base.try_send(item).await? { + sent_to_base = false; + self.overflow + .as_mut() + .unwrap_or_else(|| unreachable!("overflow must exist")) + .send(item, send_reference) + .await?; + } + } + }; + + if sent_to_base || was_dropped { + if let (Some(send_duration), Some(send_reference)) = + (self.send_duration.as_ref(), send_reference) + { + send_duration.emit(send_reference.elapsed()); + } + } + + if let Some(instrumentation) = self.instrumentation.as_ref() { + if let Some((item_count, item_size)) = item_sizing { + if sent_to_base { + instrumentation.increment_received_event_count_and_byte_size( + item_count as u64, + item_size as u64, + ); + } + + if was_dropped { + instrumentation.increment_dropped_event_count_and_byte_size( + item_count as u64, + item_size as u64, + true, + ); + } + } + } + + Ok(()) + } + + #[async_recursion] + pub async fn flush(&mut self) -> crate::Result<()> { + self.base.flush().await?; + if let Some(overflow) = self.overflow.as_mut() { + overflow.flush().await?; + } + + Ok(()) + } +} diff --git a/lib/vector-buffers/src/topology/channel/tests.rs b/lib/vector-buffers/src/topology/channel/tests.rs new file mode 100644 index 0000000000000..a1c68c8071515 --- /dev/null +++ b/lib/vector-buffers/src/topology/channel/tests.rs @@ -0,0 +1,242 @@ +use std::{ + sync::Arc, + time::{Duration, Instant}, +}; + +use tokio::{pin, sync::Barrier, time::sleep}; + +use crate::{ + topology::{ + channel::{BufferReceiver, BufferSender}, + test_util::{assert_current_send_capacity, build_buffer}, + }, + Bufferable, WhenFull, +}; + +async fn assert_send_ok_with_capacities( + sender: &mut BufferSender, + value: impl Into, + base_expected: Option, + overflow_expected: Option, +) where + T: Bufferable, +{ + assert!(sender.send(value.into(), None).await.is_ok()); + assert_current_send_capacity(sender, base_expected, overflow_expected); +} + +async fn blocking_send_and_drain_receiver( + mut sender: BufferSender, + receiver: BufferReceiver, + send_value: V, +) -> Vec +where + T: Bufferable, + V: Into + From + Send + 'static, +{ + // We can likely replace this with `tokio_test`-related helpers to avoid the sleeping. + let send_baton = Arc::new(Barrier::new(2)); + let recv_baton = Arc::clone(&send_baton); + let recv_delay = Duration::from_millis(500); + let handle = tokio::spawn(async move { + let mut results = Vec::new(); + pin!(receiver); + + // Synchronize with sender and then wait for a small period of time to simulate a + // blocking delay. + _ = recv_baton.wait().await; + sleep(recv_delay).await; + + // Grab all messages and then return the results. + while let Some(msg) = receiver.next().await { + results.push(msg.into()); + } + results + }); + + // We also have to drop our sender after sending the fourth message so that the receiver + // task correctly exits. If we didn't drop it, the receiver task would just assume that we + // had no more messages to send, waiting for-ev-er for the next one. + let start = Instant::now(); + _ = send_baton.wait().await; + assert!(sender.send(send_value.into(), None).await.is_ok()); + let send_delay = start.elapsed(); + assert!(send_delay > recv_delay); + drop(sender); + + handle.await.expect("receiver task should not panic") +} + +async fn drain_receiver(sender: BufferSender, receiver: BufferReceiver) -> Vec +where + T: Bufferable, + V: From + Send + 'static, +{ + drop(sender); + let handle = tokio::spawn(async move { + let mut results = Vec::new(); + pin!(receiver); + + // Grab all messages and then return the results. + while let Some(msg) = receiver.next().await { + results.push(msg.into()); + } + results + }); + + handle.await.expect("receiver task should not panic") +} + +#[tokio::test] +async fn test_sender_block() { + // Get a non-overflow buffer in blocking mode with a capacity of 3. + let (mut tx, rx, _) = build_buffer(3, WhenFull::Block, None).await; + + // We should be able to send three messages through unimpeded. + assert_current_send_capacity(&mut tx, Some(3), None); + assert_send_ok_with_capacities(&mut tx, 1, Some(2), None).await; + assert_send_ok_with_capacities(&mut tx, 2, Some(1), None).await; + assert_send_ok_with_capacities(&mut tx, 3, Some(0), None).await; + + // Our next send _should_ block. `assert_sender_blocking_send_and_recv` spawns a receiver + // task which waits for a small period of time, and we track how long our next send blocks + // for, which should be greater than the time that the receiver task waits. This asserts + // that the send is blocking, and that it's dependent on the receiver. + // + // It also drops the sender and receives all remaining messages on the receiver, returning + // them to us to check. + let mut results = blocking_send_and_drain_receiver(tx, rx, 4).await; + results.sort_unstable(); + assert_eq!(results, vec![1, 2, 3, 4]); +} + +#[tokio::test] +async fn test_sender_drop_newest() { + // Get a non-overflow buffer in "drop newest" mode with a capacity of 3. + let (mut tx, rx, _) = build_buffer(3, WhenFull::DropNewest, None).await; + + // We should be able to send three messages through unimpeded. + assert_current_send_capacity(&mut tx, Some(3), None); + assert_send_ok_with_capacities(&mut tx, 1, Some(2), None).await; + assert_send_ok_with_capacities(&mut tx, 2, Some(1), None).await; + assert_send_ok_with_capacities(&mut tx, 3, Some(0), None).await; + + // Then, since we're in "drop newest" mode, we could continue to send without issue or being + // blocked, but we would except those items to, well.... be dropped. + assert_send_ok_with_capacities(&mut tx, 7, Some(0), None).await; + assert_send_ok_with_capacities(&mut tx, 8, Some(0), None).await; + assert_send_ok_with_capacities(&mut tx, 9, Some(0), None).await; + + // Then, when we collect all of the messages from the receiver, we should only get back the + // first three of them. + let mut results: Vec = drain_receiver(tx, rx).await; + results.sort_unstable(); + assert_eq!(results, vec![1, 2, 3]); +} + +#[tokio::test] +async fn test_sender_overflow_block() { + // Get an overflow buffer, where the overflow buffer is in blocking mode, and both the base + // and overflow buffers have a capacity of 2. + let (mut tx, rx, _) = build_buffer(2, WhenFull::Overflow, Some(WhenFull::Block)).await; + + // We should be able to send four message through unimpeded -- two for the base sender, and + // two for the overflow sender. + assert_current_send_capacity(&mut tx, Some(2), Some(2)); + assert_send_ok_with_capacities(&mut tx, 1, Some(1), Some(2)).await; + assert_send_ok_with_capacities(&mut tx, 2, Some(0), Some(2)).await; + assert_send_ok_with_capacities(&mut tx, 3, Some(0), Some(1)).await; + assert_send_ok_with_capacities(&mut tx, 4, Some(0), Some(0)).await; + + // Our next send _should_ block. `assert_sender_blocking_send_and_recv` spawns a receiver + // task which waits for a small period of time, and we track how long our next send blocks + // for, which should be greater than the time that the receiver task waits. This asserts + // that the send is blocking, and that it's dependent on the receiver. + // + // It also drops the sender and receives all remaining messages on the receiver, returning + // them to us to check. + let mut results = blocking_send_and_drain_receiver(tx, rx, 5).await; + results.sort_unstable(); + assert_eq!(results, vec![1, 2, 3, 4, 5]); +} + +#[tokio::test] +async fn test_sender_overflow_drop_newest() { + // Get an overflow buffer, where the overflow buffer is in "drop newest" mode, and both the + // base and overflow buffers have a capacity of 2. + let (mut tx, rx, _) = build_buffer(2, WhenFull::Overflow, Some(WhenFull::DropNewest)).await; + + // We should be able to send four message through unimpeded -- two for the base sender, and + // two for the overflow sender. + assert_current_send_capacity(&mut tx, Some(2), Some(2)); + assert_send_ok_with_capacities(&mut tx, 7, Some(1), Some(2)).await; + assert_send_ok_with_capacities(&mut tx, 8, Some(0), Some(2)).await; + assert_send_ok_with_capacities(&mut tx, 2, Some(0), Some(1)).await; + assert_send_ok_with_capacities(&mut tx, 1, Some(0), Some(0)).await; + + // Then, since we're in "drop newest" mode on the overflow side, we could continue to send + // without issue or being blocked, but we would except those items to, well.... be dropped. + assert_send_ok_with_capacities(&mut tx, 5, Some(0), Some(0)).await; + assert_send_ok_with_capacities(&mut tx, 6, Some(0), Some(0)).await; + assert_send_ok_with_capacities(&mut tx, 3, Some(0), Some(0)).await; + + // Then, when we collect all of the messages from the receiver, we should only get back the + // first four of them. + let mut results: Vec = drain_receiver(tx, rx).await; + results.sort_unstable(); + assert_eq!(results, vec![1, 2, 7, 8]); +} + +#[tokio::test] +async fn test_buffer_metrics_normal() { + // Get a regular blocking buffer. + let (mut tx, rx, handle) = build_buffer(5, WhenFull::Block, None).await; + + // Send three items through, and make sure the buffer usage stats reflect that. + assert_current_send_capacity(&mut tx, Some(5), None); + assert_send_ok_with_capacities(&mut tx, 7, Some(4), None).await; + assert_send_ok_with_capacities(&mut tx, 8, Some(3), None).await; + assert_send_ok_with_capacities(&mut tx, 2, Some(2), None).await; + + let snapshot = handle.snapshot(); + assert_eq!(3, snapshot.received_event_count); + assert_eq!(0, snapshot.sent_event_count); + assert_eq!(0, snapshot.dropped_event_count_intentional); + + // Then, when we collect all of the messages from the receiver, the metrics should also reflect that. + let mut results: Vec = drain_receiver(tx, rx).await; + results.sort_unstable(); + assert_eq!(results, vec![2, 7, 8]); + + let snapshot = handle.snapshot(); + assert_eq!(3, snapshot.received_event_count); + assert_eq!(3, snapshot.sent_event_count); + assert_eq!(0, snapshot.dropped_event_count_intentional); +} + +#[tokio::test] +async fn test_buffer_metrics_drop_newest() { + // Get a buffer that drops the newest items when full. + let (mut tx, rx, handle) = build_buffer(2, WhenFull::DropNewest, None).await; + + // Send three items through, and make sure the buffer usage stats reflect that. + assert_current_send_capacity(&mut tx, Some(2), None); + assert_send_ok_with_capacities(&mut tx, 7, Some(1), None).await; + assert_send_ok_with_capacities(&mut tx, 8, Some(0), None).await; + assert_send_ok_with_capacities(&mut tx, 2, Some(0), None).await; + + let snapshot = handle.snapshot(); + assert_eq!(3, snapshot.received_event_count); + assert_eq!(0, snapshot.sent_event_count); + assert_eq!(1, snapshot.dropped_event_count_intentional); + + // Then, when we collect all of the messages from the receiver, the metrics should also reflect that. + let mut results: Vec = drain_receiver(tx, rx).await; + results.sort_unstable(); + assert_eq!(results, vec![7, 8]); + + let snapshot = handle.snapshot(); + assert_eq!(3, snapshot.received_event_count); + assert_eq!(2, snapshot.sent_event_count); + assert_eq!(1, snapshot.dropped_event_count_intentional); +} diff --git a/lib/vector-buffers/src/topology/mod.rs b/lib/vector-buffers/src/topology/mod.rs new file mode 100644 index 0000000000000..1bec45ac2d3e1 --- /dev/null +++ b/lib/vector-buffers/src/topology/mod.rs @@ -0,0 +1,6 @@ +pub mod acks; +pub mod builder; +pub mod channel; + +#[cfg(test)] +pub mod test_util; diff --git a/lib/vector-buffers/src/topology/test_util.rs b/lib/vector-buffers/src/topology/test_util.rs new file mode 100644 index 0000000000000..ec0acac7416d2 --- /dev/null +++ b/lib/vector-buffers/src/topology/test_util.rs @@ -0,0 +1,161 @@ +use std::{error, fmt, num::NonZeroUsize}; + +use bytes::{Buf, BufMut}; +use vector_common::byte_size_of::ByteSizeOf; +use vector_common::finalization::{AddBatchNotifier, BatchNotifier}; + +use super::builder::TopologyBuilder; +use crate::{ + buffer_usage_data::BufferUsageHandle, + encoding::FixedEncodable, + topology::channel::{BufferReceiver, BufferSender}, + Bufferable, EventCount, WhenFull, +}; + +#[derive(Clone, Copy, Debug, Eq, Ord, PartialEq, PartialOrd)] +pub(crate) struct Sample(pub u64); + +impl From for Sample { + fn from(v: u64) -> Self { + Self(v) + } +} + +impl From for u64 { + fn from(s: Sample) -> Self { + s.0 + } +} + +impl AddBatchNotifier for Sample { + fn add_batch_notifier(&mut self, batch: BatchNotifier) { + drop(batch); // We never check acknowledgements for this type + } +} + +impl ByteSizeOf for Sample { + fn allocated_bytes(&self) -> usize { + 0 + } +} + +// Silly implementation of `Encodable` to fulfill `Bufferable` for our test buffer code. +impl FixedEncodable for Sample { + type EncodeError = BasicError; + type DecodeError = BasicError; + + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError> + where + B: BufMut, + Self: Sized, + { + buffer.put_u64(self.0); + Ok(()) + } + + fn decode(mut buffer: B) -> Result + where + B: Buf, + { + if buffer.remaining() >= 8 { + Ok(Self(buffer.get_u64())) + } else { + Err(BasicError("need 8 bytes minimum".to_string())) + } + } +} + +impl EventCount for Sample { + fn event_count(&self) -> usize { + 1 + } +} + +#[derive(Debug)] +#[allow(dead_code)] // The inner _is_ read by the `Debug` impl, but that's ignored +pub struct BasicError(pub(crate) String); + +impl fmt::Display for BasicError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{self:?}") + } +} + +impl error::Error for BasicError {} + +/// Builds a buffer using in-memory channels. +/// +/// If `mode` is set to `WhenFull::Overflow`, then the buffer will be set to overflow mode, with +/// another in-memory channel buffer being used as the overflow buffer. The overflow buffer will +/// also use the same capacity as the outer buffer. +pub(crate) async fn build_buffer( + capacity: usize, + mode: WhenFull, + overflow_mode: Option, +) -> ( + BufferSender, + BufferReceiver, + BufferUsageHandle, +) { + let handle = BufferUsageHandle::noop(); + let (tx, rx) = match mode { + WhenFull::Overflow => { + let overflow_mode = overflow_mode.expect("overflow mode cannot be empty"); + let (overflow_sender, overflow_receiver) = TopologyBuilder::standalone_memory_test( + NonZeroUsize::new(capacity).expect("capacity must be nonzero"), + overflow_mode, + handle.clone(), + ) + .await; + let (mut base_sender, mut base_receiver) = TopologyBuilder::standalone_memory_test( + NonZeroUsize::new(capacity).expect("capacity must be nonzero"), + WhenFull::Overflow, + handle.clone(), + ) + .await; + base_sender.switch_to_overflow(overflow_sender); + base_receiver.switch_to_overflow(overflow_receiver); + + (base_sender, base_receiver) + } + m => { + TopologyBuilder::standalone_memory_test( + NonZeroUsize::new(capacity).expect("capacity must be nonzero"), + m, + handle.clone(), + ) + .await + } + }; + + (tx, rx, handle) +} + +/// Gets the current capacity of the underlying base channel of the given sender. +fn get_base_sender_capacity(sender: &BufferSender) -> Option { + sender.get_base_ref().capacity() +} + +/// Gets the current capacity of the underlying overflow channel of the given sender.. +/// +/// As overflow is optional, the return value will be `None` is overflow is not configured. +fn get_overflow_sender_capacity(sender: &BufferSender) -> Option { + sender + .get_overflow_ref() + .and_then(|s| s.get_base_ref().capacity()) +} + +/// Asserts the given sender's capacity, both for base and overflow, match the given values. +/// +/// The overflow value is wrapped in `Option` as not all senders will have overflow configured. +#[allow(clippy::missing_panics_doc)] +pub fn assert_current_send_capacity( + sender: &mut BufferSender, + base_expected: Option, + overflow_expected: Option, +) where + T: Bufferable, +{ + assert_eq!(get_base_sender_capacity(sender), base_expected); + assert_eq!(get_overflow_sender_capacity(sender), overflow_expected); +} diff --git a/lib/vector-buffers/src/variants/disk_v2/backed_archive.rs b/lib/vector-buffers/src/variants/disk_v2/backed_archive.rs new file mode 100644 index 0000000000000..baf5323872ba6 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/backed_archive.rs @@ -0,0 +1,145 @@ +use std::marker::PhantomData; +#[cfg(test)] +use std::pin::Pin; + +use bytecheck::CheckBytes; +use rkyv::{ + archived_root, check_archived_root, + ser::{serializers::AllocSerializer, Serializer}, + validation::validators::DefaultValidator, + Archive, Serialize, +}; + +use super::ser::{DeserializeError, SerializeError}; + +/// A batteries-included serializer implementation. +/// +/// Callers do not need to know or care about this, but it must be public as it is part of the +/// `BackedArchive` API. +pub type DefaultSerializer = AllocSerializer<4096>; + +/// Backed wrapper for any type that implements [`Archive`][archive]. +/// +/// For any backing store that can provide references to an underlying byte slice of suitable size, +/// we can deserialize and serialize a type that is archivable. `BackedArchive` provides specific +/// entrypoints to either deserialize the given type from the backing store, or to serialize a +/// provided value to the backing store. +/// +/// Once wrapped, the archived type can be accessed either immutably or mutably. This provides a +/// simple mechanism to use a variety of backing stores, such as `Vec` or a memory-mapped +/// region. This can in turn be used to avoid serializing to intermediate buffers when possible. +/// +/// ## Archived types +/// +/// Traditionally, (de)serialization frameworks focus on taking some type `T`, and translating it to +/// and from another format: structured text like JSON, or maybe binary data for efficient +/// on-the-wire representation, like Protocol Buffers. `rkyv` works slightly differently, as a +/// zero-copy (de)serialization framework, by providing a projected type, or "archive", over the +/// underlying byte representation of `T`. +/// +/// In general, what this means is that when you derive the correct traits for some type `T`, `rkyv` +/// generates an `ArchivedT` type that can correctly represent `T` when serialized to disk, +/// regardless of whether `T` contains primitive types or types holding underlying allocations, like +/// `Vec`. +/// +/// Crucially, the archive type -- `ArchivedT` -- can be pointer casted against the underlying bytes +/// to provide a reference of `ArchivedT`, or even a mutable reference. This means that we can +/// access an object that is like our `T`, in a native and ergonomic way, without copying any bytes, +/// thus zero-copy deserialization. Building off the ability to get a mutable reference, we can +/// also expose way to trivially update the underlying bytes through a safe interface, which can +/// avoid constantly serializing the entire type after changing a single field. +/// +/// [archive]: rkyv::Archive +#[derive(Debug)] +pub struct BackedArchive { + backing: B, + _archive: PhantomData, +} + +impl BackedArchive +where + B: AsRef<[u8]>, + T: Archive, +{ + /// Deserializes the archived value from the backing store and wraps it. + /// + /// # Errors + /// + /// If the data in the backing store is not valid for `T`, an error variant will be returned. + pub fn from_backing(backing: B) -> Result, DeserializeError> + where + for<'a> T::Archived: CheckBytes>, + { + // Validate that the input is, well, valid. + _ = check_archived_root::(backing.as_ref())?; + + // Now that we know the buffer fits T, we're good to go! + Ok(Self { + backing, + _archive: PhantomData, + }) + } + + /// Gets a reference to the backing store. + pub fn get_backing_ref(&self) -> &B { + &self.backing + } + + /// Gets a reference to the archived value. + pub fn get_archive_ref(&self) -> &T::Archived { + unsafe { archived_root::(self.backing.as_ref()) } + } +} + +impl BackedArchive +where + B: AsMut<[u8]>, + T: Archive, +{ + /// Serializes the provided value to the backing store and wraps it. + /// + /// # Errors + /// + /// If there is an error during serializing of the value, an error variant will be returned that + /// describes the error. If the backing store is too small to hold the serialized version of + /// the value, an error variant will be returned defining the minimum size the backing store + /// must be, as well containing the value that failed to get serialized. + pub fn from_value(mut backing: B, value: T) -> Result, SerializeError> + where + T: Serialize, + { + // Serialize our value so we can shove it into the backing. + let mut serializer = DefaultSerializer::default(); + _ = serializer + .serialize_value(&value) + .map_err(|e| SerializeError::FailedToSerialize(e.to_string()))?; + + let src_buf = serializer.into_serializer().into_inner(); + + // Now we have to write the serialized version to the backing store. For obvious reasons, + // the backing store needs to be able to hold the entire serialized representation, so we + // check for that. As well, instead of using `archived_root_mut`, we use + // `archived_value_mut`, because this lets us relax need the backing store to be sized + // _identically_ to the serialized size. + let dst_buf = backing.as_mut(); + if dst_buf.len() < src_buf.len() { + return Err(SerializeError::BackingStoreTooSmall(value, src_buf.len())); + } + + dst_buf[..src_buf.len()].copy_from_slice(&src_buf); + + Ok(Self { + backing, + _archive: PhantomData, + }) + } + + /// Gets a reference to the archived value. + #[cfg(test)] + pub fn get_archive_mut(&mut self) -> Pin<&mut T::Archived> { + use rkyv::archived_root_mut; + + let pinned = Pin::new(self.backing.as_mut()); + unsafe { archived_root_mut::(pinned) } + } +} diff --git a/lib/vector-buffers/src/variants/disk_v2/common.rs b/lib/vector-buffers/src/variants/disk_v2/common.rs new file mode 100644 index 0000000000000..e3426937c363a --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/common.rs @@ -0,0 +1,585 @@ +use std::{ + path::{Path, PathBuf}, + time::Duration, +}; + +use crc32fast::Hasher; +use snafu::Snafu; + +use super::{ + io::{Filesystem, ProductionFilesystem}, + ledger::LEDGER_LEN, + record::RECORD_HEADER_LEN, +}; + +// We don't want data files to be bigger than 128MB, but we might end up overshooting slightly. +pub const DEFAULT_MAX_DATA_FILE_SIZE: usize = 128 * 1024 * 1024; + +// We allow records to be as large(*) as a data file. +pub const DEFAULT_MAX_RECORD_SIZE: usize = DEFAULT_MAX_DATA_FILE_SIZE; + +// The maximum record size has to be bigger than the record header itself, since we count the record header towards +// sizing/space usage, etc... but we also use the overaligned version here to make sure we're similarly accounting for +// what `rkyv` will do when we serialize a record. +pub const MINIMUM_MAX_RECORD_SIZE: usize = align16(RECORD_HEADER_LEN + 1); + +// We want to ensure a reasonable time before we `fsync`/flush to disk, and 500ms should provide that for non-critical +// workloads. +// +// Practically, it's far more definitive than `disk_v1` which does not definitely `fsync` at all, at least with how we +// have it configured. +pub const DEFAULT_FLUSH_INTERVAL: Duration = Duration::from_millis(500); + +// Using 256KB as it aligns nicely with the I/O size exposed by major cloud providers. This may not +// be the underlying block size used by the OS, but it still aligns well with what will happen on +// the "backend" for cloud providers, which is simply a useful default for when we want to look at +// buffer throughput and estimate how many IOPS will be consumed, etc. +pub const DEFAULT_WRITE_BUFFER_SIZE: usize = 256 * 1024; + +// We specifically limit ourselves to 0-31 for file IDs in test, because it lets us more quickly +// create/consume the file IDs so we can test edge cases like file ID rollover and "writer is +// waiting to open file that reader is still on". +#[cfg(not(test))] +pub const MAX_FILE_ID: u16 = u16::MAX; +#[cfg(test)] +pub const MAX_FILE_ID: u16 = 6; + +// The alignment used by the record serializer. +const SERIALIZER_ALIGNMENT: usize = 16; +const MAX_ALIGNABLE_AMOUNT: usize = usize::MAX - SERIALIZER_ALIGNMENT; + +pub(crate) fn create_crc32c_hasher() -> Hasher { + crc32fast::Hasher::new() +} + +/// Aligns the given amount to 16. +/// +/// This is required due to the overalignment used in record serialization, such that we can correctly determine minimum +/// on-disk sizes for various elements, and account for those in size limits, etc. +pub(crate) const fn align16(amount: usize) -> usize { + // The amount must be less than `MAX_ALIGNABLE_AMOUNT` otherwise we'll overflow trying to align it, ending up with a + // nonsensical value. + assert!( + amount <= MAX_ALIGNABLE_AMOUNT, + "`amount` must be less than `MAX_ALIGNABLE_AMOUNT`" + ); + + amount.div_ceil(SERIALIZER_ALIGNMENT) * SERIALIZER_ALIGNMENT +} + +/// Gets the maximum possible data file size given the type-level numerical limits and buffer invariants. +fn get_maximum_data_file_size() -> u64 { + let ledger_len: u64 = LEDGER_LEN + .try_into() + .expect("Ledger length cannot be greater than `u64`."); + (u64::MAX - ledger_len) / 2 +} + +/// Gets the minimum buffer size for the given maximum data file size. +/// +/// This ensures that we are allowed to store enough bytes on-disk, as the buffer design requires being able to always +/// write to a minimum number of data files, etc. This allow ensures that we're accounting for non-data file disk usage +/// so that we do not overrun the specified maximum buffer size when considering the sum total of files placed on disk. +fn get_minimum_buffer_size(max_data_file_size: u64) -> Option { + // We're doing this fallible conversion back-and-forth because we have to interoperate with `u64` and `usize`, and + // we need to ensure we're not getting values that can't be represented correctly in both types, as well as ensuring + // we're not implicitly overflowing and generating nonsensical numbers. + let ledger_len = LEDGER_LEN + .try_into() + .expect("Ledger length cannot be greater than `u64`."); + + // We always need to be able to allocate two data files, so the buffer size has to be at least as big as 2x data + // files at their maximum allowed size, plus an allowance for the size of the ledger state itself. + max_data_file_size + .checked_mul(2) + .and_then(|doubled| doubled.checked_add(ledger_len)) +} + +#[derive(Debug, Snafu)] +pub enum BuildError { + #[snafu(display("parameter '{}' was invalid: {}", param_name, reason))] + InvalidParameter { + param_name: &'static str, + reason: String, + }, +} + +/// Buffer configuration. +#[derive(Clone, Debug)] +pub struct DiskBufferConfig { + /// Directory where this buffer will write its files. + /// + /// Must be unique from all other buffers, whether within the same process or other Vector + /// processes on the machine. + pub(crate) data_dir: PathBuf, + + /// Maximum size, in bytes, that the buffer can consume. + /// + /// The actual maximum on-disk buffer size is this amount rounded up to the next multiple of + /// `max_data_file_size`, but internally, the next multiple of `max_data_file_size` when + /// rounding this amount _down_ is what gets used as the maximum buffer size. + /// + /// This ensures that we never use more then the documented "rounded to the next multiple" + /// amount, as we must account for one full data file's worth of extra data. + pub(crate) max_buffer_size: u64, + + /// Maximum size, in bytes, to target for each individual data file. + /// + /// This value is not strictly obey because we cannot know ahead of encoding/serializing if the + /// free space a data file has is enough to hold the write. In other words, we never attempt to + /// write to a data file if it is as larger or larger than this value, but may write a record + /// that causes a data file to exceed this value by as much as `max_record_size`. + pub(crate) max_data_file_size: u64, + + /// Maximum size, in bytes, of an encoded record. + /// + /// Any record which, when encoded and serialized, is larger than this amount will not be written + /// to the buffer. + pub(crate) max_record_size: usize, + + /// Size, in bytes, of the writer's internal buffer. + /// + /// This buffer is used to coalesce writes to the underlying data file where possible, which in + /// turn reduces the number of syscalls needed to issue writes to the underlying data file. + pub(crate) write_buffer_size: usize, + + /// Flush interval for ledger and data files. + /// + /// While data is asynchronously flushed by the OS, and the reader/writer can proceed with a + /// "hard" flush (aka `fsync`/`fsyncdata`), the flush interval effectively controls the + /// acceptable window of time for data loss. + /// + /// In the event that data had not yet been durably written to disk, and Vector crashed, the + /// amount of data written since the last flush would be lost. + pub(crate) flush_interval: Duration, + + /// Filesystem implementation for opening data files. + /// + /// We allow parameterizing the filesystem implementation for ease of testing. The "filesystem" + /// implementation essentially defines how we open and delete data files, as well as the type of + /// the data file objects we get when opening a data file. + pub(crate) filesystem: FS, +} + +/// Builder for [`DiskBufferConfig`]. +#[derive(Clone, Debug)] +pub struct DiskBufferConfigBuilder +where + FS: Filesystem, +{ + pub(crate) data_dir: PathBuf, + pub(crate) max_buffer_size: Option, + pub(crate) max_data_file_size: Option, + pub(crate) max_record_size: Option, + pub(crate) write_buffer_size: Option, + pub(crate) flush_interval: Option, + pub(crate) filesystem: FS, +} + +impl DiskBufferConfigBuilder { + pub fn from_path

(data_dir: P) -> DiskBufferConfigBuilder + where + P: AsRef, + { + DiskBufferConfigBuilder { + data_dir: data_dir.as_ref().to_path_buf(), + max_buffer_size: None, + max_data_file_size: None, + max_record_size: None, + write_buffer_size: None, + flush_interval: None, + filesystem: ProductionFilesystem, + } + } +} + +impl DiskBufferConfigBuilder +where + FS: Filesystem, +{ + /// Sets the maximum size, in bytes, that the buffer can consume. + /// + /// The actual maximum on-disk buffer size is this amount rounded up to the next multiple of + /// `max_data_file_size`, but internally, the next multiple of `max_data_file_size` when + /// rounding this amount _down_ is what gets used as the maximum buffer size. + /// + /// This ensures that we never use more then the documented "rounded to the next multiple" + /// amount, as we must account for one full data file's worth of extra data. + /// + /// Defaults to `usize::MAX`, or effectively no limit. Due to the internal design of the + /// buffer, the effective maximum limit is around `max_data_file_size` * 2^16. + #[allow(dead_code)] + pub fn max_buffer_size(mut self, amount: u64) -> Self { + self.max_buffer_size = Some(amount); + self + } + + /// Sets the maximum size, in bytes, to target for each individual data file. + /// + /// This value is not strictly obey because we cannot know ahead of encoding/serializing if the + /// free space a data file has is enough to hold the write. In other words, we never attempt to + /// write to a data file if it is as larger or larger than this value, but may write a record + /// that causes a data file to exceed this value by as much as `max_record_size`. + /// + /// Defaults to 128MB. + #[allow(dead_code)] + pub fn max_data_file_size(mut self, amount: u64) -> Self { + self.max_data_file_size = Some(amount); + self + } + + /// Sets the maximum size, in bytes, of an encoded record. + /// + /// Any record which, when encoded and serialized, is larger than this amount will not be written + /// to the buffer. + /// + /// Defaults to 128MB. + #[allow(dead_code)] + pub fn max_record_size(mut self, amount: usize) -> Self { + self.max_record_size = Some(amount); + self + } + + /// Size, in bytes, of the writer's internal buffer. + /// + /// This buffer is used to coalesce writes to the underlying data file where possible, which in + /// turn reduces the number of syscalls needed to issue writes to the underlying data file. + /// + /// Defaults to 256KB. + #[allow(dead_code)] + pub fn write_buffer_size(mut self, amount: usize) -> Self { + self.write_buffer_size = Some(amount); + self + } + + /// Sets the flush interval for ledger and data files. + /// + /// While data is asynchronously flushed by the OS, and the reader/writer can proceed with a + /// "hard" flush (aka `fsync`/`fsyncdata`), the flush interval effectively controls the + /// acceptable window of time for data loss. + /// + /// In the event that data had not yet been durably written to disk, and Vector crashed, the + /// amount of data written since the last flush would be lost. + /// + /// Defaults to 500ms. + #[allow(dead_code)] + pub fn flush_interval(mut self, interval: Duration) -> Self { + self.flush_interval = Some(interval); + self + } + + /// Filesystem implementation for opening data files. + /// + /// We allow parameterizing the filesystem implementation for ease of testing. The "filesystem" + /// implementation essentially defines how we open and delete data files, as well as the type of + /// the data file objects we get when opening a data file. + /// + /// Defaults to a Tokio-backed implementation. + #[allow(dead_code)] + pub fn filesystem(self, filesystem: FS2) -> DiskBufferConfigBuilder + where + FS2: Filesystem, + { + DiskBufferConfigBuilder { + data_dir: self.data_dir, + max_buffer_size: self.max_buffer_size, + max_data_file_size: self.max_data_file_size, + max_record_size: self.max_record_size, + write_buffer_size: self.write_buffer_size, + flush_interval: self.flush_interval, + filesystem, + } + } + + /// Consumes this builder and constructs a `DiskBufferConfig`. + pub fn build(self) -> Result, BuildError> { + let max_buffer_size = self.max_buffer_size.unwrap_or(u64::MAX); + let max_data_file_size = self.max_data_file_size.unwrap_or_else(|| { + u64::try_from(DEFAULT_MAX_DATA_FILE_SIZE) + .expect("Default maximum data file size should never be greater than 2^64 bytes.") + }); + let max_record_size = self.max_record_size.unwrap_or(DEFAULT_MAX_RECORD_SIZE); + let write_buffer_size = self.write_buffer_size.unwrap_or(DEFAULT_WRITE_BUFFER_SIZE); + let flush_interval = self.flush_interval.unwrap_or(DEFAULT_FLUSH_INTERVAL); + let filesystem = self.filesystem; + + // Validate the input parameters. + if max_data_file_size == 0 { + return Err(BuildError::InvalidParameter { + param_name: "max_data_file_size", + reason: "cannot be zero".to_string(), + }); + } + + let data_file_size_mechanical_limit = get_maximum_data_file_size(); + if max_data_file_size > data_file_size_mechanical_limit { + return Err(BuildError::InvalidParameter { + param_name: "max_data_file_size", + reason: format!("cannot be greater than {data_file_size_mechanical_limit} bytes"), + }); + } + + let Some(minimum_buffer_size) = get_minimum_buffer_size(max_data_file_size) else { + unreachable!("maximum data file size should be correctly limited at this point") + }; + + if max_buffer_size < minimum_buffer_size { + return Err(BuildError::InvalidParameter { + param_name: "max_buffer_size", + reason: format!("must be greater than or equal to {minimum_buffer_size} bytes"), + }); + } + + if max_record_size == 0 { + return Err(BuildError::InvalidParameter { + param_name: "max_record_size", + reason: "cannot be zero".to_string(), + }); + } + + if max_record_size <= MINIMUM_MAX_RECORD_SIZE { + return Err(BuildError::InvalidParameter { + param_name: "max_record_size", + reason: format!("must be greater than or equal to {MINIMUM_MAX_RECORD_SIZE} bytes",), + }); + } + + let Ok(max_record_size_converted) = u64::try_from(max_record_size) else { + return Err(BuildError::InvalidParameter { + param_name: "max_record_size", + reason: "must be less than 2^64 bytes".to_string(), + }); + }; + + if max_record_size_converted > max_data_file_size { + return Err(BuildError::InvalidParameter { + param_name: "max_record_size", + reason: "must be less than or equal to `max_data_file_size`".to_string(), + }); + } + + if write_buffer_size == 0 { + return Err(BuildError::InvalidParameter { + param_name: "write_buffer_size", + reason: "cannot be zero".to_string(), + }); + } + + // Users configure the `max_size` of their disk buffers, which translates to the `max_buffer_size` field here, + // and represents the maximum desired size of a disk buffer in terms of on-disk usage. In order to meet this + // request, we do a few things internally and also enforce a lower bound on `max_buffer_size` to ensure we can + // commit to respecting the communicated maximum buffer size. + // + // Internally, we track the current buffer size as a function of the sum of the size of all unacknowledged + // records. This means, simply, that if 100 records are written that consume 1KB a piece, our current buffer + // size should be around 100KB, and as those records are read and acknowledged, the current buffer size would + // drop by 1KB for each of them until eventually it went back down to zero. + // + // One of the design invariants around data files is that they are written to until they reach the maximum data + // file size, such that they are guaranteed to never be greater in size than `max_data_file_size`. This is + // coupled with the fact that a data file cannot be deleted from disk until all records written to it have been + // read _and_ acknowledged. + // + // Together, this means that we need to set a lower bound of 2*`max_data_file_size` for `max_buffer_size`. + // + // First, given the "data file keeps getting written to until we reach its max size" invariant, we know that in + // order to commit to the on-disk buffer size not exceeding `max_buffer_size`, the value must be at least as + // much as a single full data file, aka `max_data_file_size`. + // + // Secondly, we also want to ensure that the writer can make progress as the reader makes progress. If the + // maximum buffer size was equal to the maximum data file size, the writer would be stalled as soon as the data + // file reached the maximum size, until the reader was able to fully read and acknowledge all records, and thus + // delete the data file from disk. If we instead require that the maximum buffer size exceeds + // `max_data_file_size`, this allows us to open the next data file and start writing to it up until the maximum + // buffer size. + // + // Since we could essentially read and acknowledge all but the last remaining record in a data file, this would + // imply we gave the writer the ability to write that much more data, which means we would need at least double + // the maximum data file size in order to support the writer being able to make progress in the aforementioned + // situation. + // + // Finally, we come to this calculation. Since the logic dictates that we essentially require at least one extra + // data file past the minimum of one, we need to use an _internal_ maximum buffer size of `max_buffer_size` - + // `max_data_file_size`, so that as the reader makes progress, the writer never is led to believe it can create + // another data file such that the number of active data files, multiplied by `max_data_file_size`, would exceed + // `max_buffer_size`. + let max_buffer_size = max_buffer_size - max_data_file_size; + + Ok(DiskBufferConfig { + data_dir: self.data_dir, + max_buffer_size, + max_data_file_size, + max_record_size, + write_buffer_size, + flush_interval, + filesystem, + }) + } +} + +#[cfg(test)] +mod tests { + use proptest::{prop_assert, proptest, test_runner::Config}; + + use crate::variants::disk_v2::common::MAX_ALIGNABLE_AMOUNT; + + use super::{ + align16, BuildError, DiskBufferConfigBuilder, MINIMUM_MAX_RECORD_SIZE, SERIALIZER_ALIGNMENT, + }; + + #[test] + #[should_panic(expected = "`amount` must be less than `MAX_ALIGNABLE_AMOUNT`")] + fn test_align16_too_large() { + // We forcefully panic if the input to `align16` is too large to align without overflow, primarily because + // that's a huge amount even on 32-bit systems and in non-test code, we only use `align16` in a const context, + // so it will panic during compilation, not at runtime. + align16(MAX_ALIGNABLE_AMOUNT + 1); + } + + proptest! { + #![proptest_config(Config::with_cases(1000))] + #[test] + fn test_align16(input in 0..MAX_ALIGNABLE_AMOUNT) { + // You may think to yourself: "this test seems excessive and not necessary", but, au contraire! Our + // algorithm depends on integer division rounding towards zero, which is an invariant provided to Rust by + // way of LLVM itself. In order to avoid weird surprises down the line if that invariant changes, including + // a future where we, or others, potentially compile Vector with an alternative compiler that does not + // round towards zero... we're being extra careful and hedging our bet by having such a property test. + + // Make sure we're actually aligned. + let aligned = align16(input); + prop_assert!(aligned % SERIALIZER_ALIGNMENT == 0); + + // Make sure we're not overaligned, too. + let delta = if aligned >= input { + aligned - input + } else { + panic!("`aligned` must never be less than `input` in this test; inputs are crafted to obey `MAX_ALIGNABLE_AMOUNT`"); + }; + + prop_assert!(delta <= SERIALIZER_ALIGNMENT, "`align16` returned overaligned input: input={} aligned={} delta={}", input, aligned, delta); + } + } + + #[test] + fn basic_rejections() { + // Maximum data file size cannot be zero. + let result = DiskBufferConfigBuilder::from_path("/tmp/dummy/path") + .max_data_file_size(0) + .build(); + + match result { + Err(BuildError::InvalidParameter { param_name, .. }) => assert_eq!( + param_name, "max_data_file_size", + "invalid parameter should have been `max_data_file_size`" + ), + _ => panic!("expected invalid parameter error"), + } + + // Maximum data file size cannot be greater than u64::MAX / 2, since we multiply it by 2 when calculating the + // lower bound for the maximum buffer size. + let result = DiskBufferConfigBuilder::from_path("/tmp/dummy/path") + .max_data_file_size((u64::MAX / 2) + 1) + .build(); + + match result { + Err(BuildError::InvalidParameter { param_name, .. }) => assert_eq!( + param_name, "max_data_file_size", + "invalid parameter should have been `max_data_file_size`" + ), + _ => panic!("expected invalid parameter error"), + } + + // Maximum buffer size cannot be zero. + let result = DiskBufferConfigBuilder::from_path("/tmp/dummy/path") + .max_buffer_size(0) + .build(); + + match result { + Err(BuildError::InvalidParameter { param_name, .. }) => assert_eq!( + param_name, "max_buffer_size", + "invalid parameter should have been `max_buffer_size`" + ), + _ => panic!("expected invalid parameter error"), + } + + // Maximum buffer size cannot be less than 2x the maximum data file size. + let result = DiskBufferConfigBuilder::from_path("/tmp/dummy/path") + .max_data_file_size(10000) + .max_record_size(100) + .max_buffer_size(19999) + .build(); + + match result { + Err(BuildError::InvalidParameter { param_name, .. }) => assert_eq!( + param_name, "max_buffer_size", + "invalid parameter should have been `max_buffer_size`" + ), + _ => panic!("expected invalid parameter error"), + } + + // Maximum record size cannot be zero. + let result = DiskBufferConfigBuilder::from_path("/tmp/dummy/path") + .max_record_size(0) + .build(); + + match result { + Err(BuildError::InvalidParameter { param_name, .. }) => assert_eq!( + param_name, "max_record_size", + "invalid parameter should have been `max_record_size`" + ), + _ => panic!("expected invalid parameter error"), + } + + // Maximum record size cannot be less than the minimum record header length. + let result = DiskBufferConfigBuilder::from_path("/tmp/dummy/path") + .max_record_size(MINIMUM_MAX_RECORD_SIZE - 1) + .build(); + + match result { + Err(BuildError::InvalidParameter { param_name, .. }) => assert_eq!( + param_name, "max_record_size", + "invalid parameter should have been `max_record_size`" + ), + _ => panic!("expected invalid parameter error"), + } + + // Maximum record size cannot be greater than maximum data file size. + let result = DiskBufferConfigBuilder::from_path("/tmp/dummy/path") + .max_data_file_size(123_456) + .max_record_size(123_457) + .build(); + + match result { + Err(BuildError::InvalidParameter { param_name, .. }) => assert_eq!( + param_name, "max_record_size", + "invalid parameter should have been `max_record_size`" + ), + _ => panic!("expected invalid parameter error"), + } + } + + proptest! { + #![proptest_config(Config::with_cases(10000))] + #[test] + fn ensure_max_buffer_size_lower_bound(max_buffer_size in 1..u64::MAX, max_record_data_file_size in 1..u64::MAX) { + let max_data_file_size = max_record_data_file_size; + let max_record_size = usize::try_from(max_record_data_file_size) + .expect("Maximum record size, and data file size, must be less than 2^64 bytes."); + + let result = DiskBufferConfigBuilder::from_path("/tmp/dummy/path") + .max_buffer_size(max_buffer_size) + .max_data_file_size(max_data_file_size) + .max_record_size(max_record_size) + .build(); + + // We don't necessarily care about the error cases here, but what we do care about is making sure that, when + // the generated configuration is theoretically valid, the calculated maximum buffer size actually meets our expectation of + // being at least `max_data_file_size` and `max_data_file_size` less than the input maximum buffer size. + if let Ok(config) = result { + prop_assert!(config.max_buffer_size >= max_data_file_size, "calculated max buffer size must always be greater than or equal to `max_data_file_size`"); + prop_assert!(config.max_buffer_size + max_data_file_size == max_buffer_size, "calculated max buffer size must always be less `max_data_file_size` than input max buffer size"); + } + } + } +} diff --git a/lib/vector-buffers/src/variants/disk_v2/io.rs b/lib/vector-buffers/src/variants/disk_v2/io.rs new file mode 100644 index 0000000000000..a63b46ba1bc7d --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/io.rs @@ -0,0 +1,237 @@ +use std::{io, path::Path}; + +use tokio::{ + fs::OpenOptions, + io::{AsyncRead, AsyncWrite}, +}; + +#[cfg(unix)] +const FILE_MODE_OWNER_RW_GROUP_RO: u32 = 0o640; + +/// File metadata. +pub struct Metadata { + pub(crate) len: u64, +} + +impl Metadata { + /// Gets the length of the file, in bytes. + pub fn len(&self) -> u64 { + self.len + } +} + +/// Generalized interface for opening and deleting files from a filesystem. +pub trait Filesystem: Send + Sync { + type File: AsyncFile; + type MemoryMap: ReadableMemoryMap; + type MutableMemoryMap: WritableMemoryMap; + + /// Opens a file for writing, creating it if it does not exist. + /// + /// This opens the file in "append" mode, such that the starting position in the file will be + /// set to the end of the file: the file will not be truncated. Additionally, the file is + /// readable. + /// + /// # Errors + /// + /// If an I/O error occurred when attempting to open the file for writing, an error variant will + /// be returned describing the underlying error. + async fn open_file_writable(&self, path: &Path) -> io::Result; + + /// Opens a file for writing, creating it if it does not already exist, but atomically. + /// + /// This opens the file in "append" mode, such that the starting position in the file will be + /// set to the end of the file: the file will not be truncated. Additionally, the file is + /// readable. + /// + /// # Errors + /// + /// If the file already existed, then an error will be returned with an `ErrorKind` of `AlreadyExists`. + /// + /// If a general I/O error occurred when attempting to open the file for writing, an error variant will + /// be returned describing the underlying error. + async fn open_file_writable_atomic(&self, path: &Path) -> io::Result; + + /// Opens a file for reading, creating it if it does not exist. + /// + /// Files will be opened at the logical end position. + /// + /// # Errors + /// + /// If an I/O error occurred when attempting to open the file for reading, an error variant will + /// be returned describing the underlying error. + async fn open_file_readable(&self, path: &Path) -> io::Result; + + /// Opens a file as a readable memory-mapped region. + /// + /// # Errors + /// + /// If an I/O error occurred when attempting to open the file for reading, or attempting to + /// memory map the file, an error variant will be returned describing the underlying error. + async fn open_mmap_readable(&self, path: &Path) -> io::Result; + + /// Opens a file as a writable memory-mapped region. + /// + /// # Errors + /// + /// If an I/O error occurred when attempting to open the file for reading, or attempting to + /// memory map the file, an error variant will be returned describing the underlying error. + async fn open_mmap_writable(&self, path: &Path) -> io::Result; + + /// Deletes a file. + /// + /// # Errors + /// + /// If an I/O error occurred when attempting to delete the file, an error variant will be + /// returned describing the underlying error. + async fn delete_file(&self, path: &Path) -> io::Result<()>; +} + +pub trait AsyncFile: AsyncRead + AsyncWrite + Send + Sync { + /// Queries metadata about the underlying file. + /// + /// # Errors + /// + /// If an I/O error occurred when attempting to get the metadata for the file, an error variant + /// will be returned describing the underlying error. + async fn metadata(&self) -> io::Result; + + /// Attempts to synchronize all OS-internal data, and metadata, to disk. + /// + /// This function will attempt to ensure that all in-memory data reaches the filesystem before returning. + /// + /// This can be used to handle errors that would otherwise only be caught when the File is closed. Dropping a file will ignore errors in synchronizing this in-memory data. + /// + /// # Errors + /// If an I/O error occurred when attempting to synchronize the file data and metadata to disk, + /// an error variant will be returned describing the underlying error. + async fn sync_all(&self) -> io::Result<()>; +} + +pub trait ReadableMemoryMap: AsRef<[u8]> + Send + Sync {} + +pub trait WritableMemoryMap: ReadableMemoryMap { + /// Flushes outstanding memory map modifications to disk. + /// + /// When this method returns with a non-error result, all outstanding changes to a file-backed + /// memory map are guaranteed to be durably stored. The file’s metadata (including last + /// modification timestamp) may not be updated. + fn flush(&self) -> io::Result<()>; +} + +/// A normal filesystem used for production operations. +/// +/// Uses Tokio's `File` for asynchronous file reading/writing, and `memmap2` for memory-mapped files. +#[derive(Clone, Debug)] +pub struct ProductionFilesystem; + +impl Filesystem for ProductionFilesystem { + type File = tokio::fs::File; + type MemoryMap = memmap2::Mmap; + type MutableMemoryMap = memmap2::MmapMut; + + async fn open_file_writable(&self, path: &Path) -> io::Result { + create_writable_file_options(false) + .append(true) + .open(path) + .await + } + + async fn open_file_writable_atomic(&self, path: &Path) -> io::Result { + create_writable_file_options(true) + .append(true) + .open(path) + .await + } + + async fn open_file_readable(&self, path: &Path) -> io::Result { + open_readable_file_options().open(path).await + } + + async fn open_mmap_readable(&self, path: &Path) -> io::Result { + let file = open_readable_file_options().open(path).await?; + let std_file = file.into_std().await; + unsafe { memmap2::Mmap::map(&std_file) } + } + + async fn open_mmap_writable(&self, path: &Path) -> io::Result { + let file = open_writable_file_options().open(path).await?; + + let std_file = file.into_std().await; + unsafe { memmap2::MmapMut::map_mut(&std_file) } + } + + async fn delete_file(&self, path: &Path) -> io::Result<()> { + tokio::fs::remove_file(path).await + } +} + +/// Builds a set of `OpenOptions` for opening a file as readable/writable. +fn open_writable_file_options() -> OpenOptions { + let mut open_options = OpenOptions::new(); + open_options.read(true).write(true); + + #[cfg(unix)] + { + open_options.mode(FILE_MODE_OWNER_RW_GROUP_RO); + } + + open_options +} + +/// Builds a set of `OpenOptions` for opening a file as readable/writable, creating it if it does +/// not already exist. +/// +/// When `create_atomic` is set to `true`, this ensures that the operation only succeeds if the +/// subsequent call to `open` is able to create the file, ensuring that another process did not +/// create it before us. Otherwise, the normal create mode is configured, which creates the file if +/// it does not exist but does not throw an error if it already did. +/// +/// On Unix platforms, file permissions will be set so that only the owning user of the file can +/// write to it, the owning group can read it, and the file is inaccessible otherwise. +fn create_writable_file_options(create_atomic: bool) -> OpenOptions { + let mut open_options = open_writable_file_options(); + + #[cfg(unix)] + { + open_options.mode(FILE_MODE_OWNER_RW_GROUP_RO); + } + + if create_atomic { + open_options.create_new(true); + } else { + open_options.create(true); + } + + open_options +} + +/// Builds a set of `OpenOptions` for opening a file as readable. +fn open_readable_file_options() -> OpenOptions { + let mut open_options = OpenOptions::new(); + open_options.read(true); + open_options +} + +impl AsyncFile for tokio::fs::File { + async fn metadata(&self) -> io::Result { + let metadata = self.metadata().await?; + Ok(Metadata { + len: metadata.len(), + }) + } + + async fn sync_all(&self) -> io::Result<()> { + self.sync_all().await + } +} + +impl ReadableMemoryMap for memmap2::Mmap {} + +impl ReadableMemoryMap for memmap2::MmapMut {} + +impl WritableMemoryMap for memmap2::MmapMut { + fn flush(&self) -> io::Result<()> { + self.flush() + } +} diff --git a/lib/vector-buffers/src/variants/disk_v2/ledger.rs b/lib/vector-buffers/src/variants/disk_v2/ledger.rs new file mode 100644 index 0000000000000..7f56f30b343d5 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/ledger.rs @@ -0,0 +1,737 @@ +use std::{ + fmt, io, mem, + path::PathBuf, + sync::atomic::{AtomicBool, AtomicU16, AtomicU64, Ordering}, + sync::Arc, + time::Instant, +}; + +use bytecheck::CheckBytes; +use bytes::BytesMut; +use crossbeam_utils::atomic::AtomicCell; +use fslock::LockFile; +use futures::StreamExt; +use rkyv::{with::Atomic, Archive, Serialize}; +use snafu::{ResultExt, Snafu}; +use tokio::{fs, io::AsyncWriteExt, sync::Notify}; +use vector_common::finalizer::OrderedFinalizer; + +use super::{ + backed_archive::BackedArchive, + common::{align16, DiskBufferConfig, MAX_FILE_ID}, + io::{AsyncFile, WritableMemoryMap}, + ser::SerializeError, + Filesystem, +}; +use crate::buffer_usage_data::BufferUsageHandle; + +pub const LEDGER_LEN: usize = align16(mem::size_of::()); + +/// Error that occurred during calls to [`Ledger`]. +#[derive(Debug, Snafu)] +pub enum LedgerLoadCreateError { + /// A general I/O error occurred. + /// + /// Generally, I/O errors should only occur when flushing the ledger state and the underlying + /// ledger file has been corrupted or altered in some way outside of this process. As the + /// ledger is fixed in size, and does not grow during the life of the process, common errors + /// such as running out of disk space will not typically be relevant (or possible) here. + #[snafu(display("ledger I/O error: {}", source))] + Io { source: io::Error }, + + /// The ledger is already opened by another Vector process. + /// + /// Advisory locking is used to prevent other Vector processes from concurrently opening the + /// same buffer, but bear in mind that this does not prevent other processes or users from + /// modifying the ledger file in a way that could cause undefined behavior during buffer operation. + #[snafu(display( + "failed to lock buffer.lock; is another Vector process running and using this buffer?" + ))] + LedgerLockAlreadyHeld, + + /// The ledger state was unable to be deserialized. + /// + /// This should only occur if the ledger file was modified or truncated out of the Vector + /// process. In rare situations, if the ledger state type (`LedgerState`, here in ledger.rs) + /// was modified, then the layout may now be out-of-line with the structure as it exists on disk. + /// + /// We have many strongly-worded warnings to not do this unless a developer absolutely knows + /// what they're doing, but it is still technically a possibility. :) + #[snafu(display("failed to deserialize ledger from buffer: {}", reason))] + FailedToDeserialize { reason: String }, + + /// The ledger state was unable to be serialized. + /// + /// This only occurs when initially creating a new buffer where the ledger state has not yet + /// been written to disk. During normal operation, the ledger is memory-mapped directly and so + /// serialization does not occur. + /// + /// This error is likely only to occur if the process is unable to allocate memory for the + /// buffers required for the serialization step. + #[snafu(display("failed to serialize ledger to buffer: {}", reason))] + FailedToSerialize { reason: String }, +} + +/// Ledger state. +/// +/// Stores the relevant information related to both the reader and writer. Gets serialized and +/// stored on disk, and is managed via a memory-mapped file. +/// +/// # Warning +/// +/// - Do not add fields to this struct. +/// - Do not remove fields from this struct. +/// - Do not change the type of fields in this struct. +/// - Do not change the order of fields this struct. +/// +/// Doing so will change the serialized representation. This will break things. +/// +/// Do not do any of the listed things unless you _absolutely_ know what you're doing. :) +#[derive(Archive, Serialize, Debug)] +#[archive_attr(derive(CheckBytes, Debug))] +pub struct LedgerState { + /// Next record ID to use when writing a record. + #[with(Atomic)] + writer_next_record: AtomicU64, + /// The current data file ID being written to. + #[with(Atomic)] + writer_current_data_file: AtomicU16, + /// The current data file ID being read from. + #[with(Atomic)] + reader_current_data_file: AtomicU16, + /// The last record ID read by the reader. + #[with(Atomic)] + reader_last_record: AtomicU64, +} + +impl Default for LedgerState { + fn default() -> Self { + Self { + // First record written is always 1, so that our default of 0 for + // `reader_last_record_id` ensures we start up in a state of "alright, waiting to read + // record #1 next". + writer_next_record: AtomicU64::new(1), + writer_current_data_file: AtomicU16::new(0), + reader_current_data_file: AtomicU16::new(0), + reader_last_record: AtomicU64::new(0), + } + } +} + +impl ArchivedLedgerState { + fn get_current_writer_file_id(&self) -> u16 { + self.writer_current_data_file.load(Ordering::Acquire) + } + + fn get_next_writer_file_id(&self) -> u16 { + (self.get_current_writer_file_id() + 1) % MAX_FILE_ID + } + + pub(super) fn increment_writer_file_id(&self) { + self.writer_current_data_file + .store(self.get_next_writer_file_id(), Ordering::Release); + } + + pub(super) fn get_next_writer_record_id(&self) -> u64 { + self.writer_next_record.load(Ordering::Acquire) + } + + pub(super) fn increment_next_writer_record_id(&self, amount: u64) -> u64 { + let previous = self.writer_next_record.fetch_add(amount, Ordering::AcqRel); + previous.wrapping_add(amount) + } + + fn get_current_reader_file_id(&self) -> u16 { + self.reader_current_data_file.load(Ordering::Acquire) + } + + fn get_next_reader_file_id(&self) -> u16 { + (self.get_current_reader_file_id() + 1) % MAX_FILE_ID + } + + fn get_offset_reader_file_id(&self, offset: u16) -> u16 { + self.get_current_reader_file_id().wrapping_add(offset) % MAX_FILE_ID + } + + fn increment_reader_file_id(&self) -> u16 { + let value = self.get_next_reader_file_id(); + self.reader_current_data_file + .store(value, Ordering::Release); + value + } + + pub(super) fn get_last_reader_record_id(&self) -> u64 { + self.reader_last_record.load(Ordering::Acquire) + } + + pub(super) fn increment_last_reader_record_id(&self, amount: u64) { + self.reader_last_record.fetch_add(amount, Ordering::AcqRel); + } + + #[cfg(test)] + pub unsafe fn unsafe_set_writer_next_record_id(&self, id: u64) { + // UNSAFETY: + // The atomic operation itself is inherently safe, but adjusting the record IDs manually is + // _unsafe_ because it messes with the continuity of record IDs from the perspective of the + // reader. + // + // This is exclusively used under test to make it possible to check certain edge cases, as + // writing enough records to actually increment it to the maximum value would take longer + // than any of us will be alive. + // + // Despite it being test-only, we're really amping up the "this is only for testing!" factor + // by making it an actual `unsafe` function, and putting "unsafe" in the name. :) + self.writer_next_record.store(id, Ordering::Release); + } + + #[cfg(test)] + pub unsafe fn unsafe_set_reader_last_record_id(&self, id: u64) { + // UNSAFETY: + // The atomic operation itself is inherently safe, but adjusting the record IDs manually is + // _unsafe_ because it messes with the continuity of record IDs from the perspective of the + // reader. + // + // This is exclusively used under test to make it possible to check certain edge cases, as + // writing enough records to actually increment it to the maximum value would take longer + // than any of us will be alive. + // + // Despite it being test-only, we're really amping up the "this is only for testing!" factor + // by making it an actual `unsafe` function, and putting "unsafe" in the name. :) + self.reader_last_record.store(id, Ordering::Release); + } +} + +/// Tracks the internal state of the buffer. +pub(crate) struct Ledger +where + FS: Filesystem, +{ + // Buffer configuration. + config: DiskBufferConfig, + // Advisory lock for this buffer directory. + #[allow(dead_code)] + lock: LockFile, + // Ledger state. + state: BackedArchive, + // The total size, in bytes, of all unread records in the buffer. + total_buffer_size: AtomicU64, + // Notifier for reader-related progress. + reader_notify: Notify, + // Notifier for writer-related progress. + writer_notify: Notify, + // Tracks when writer has fully shutdown. + writer_done: AtomicBool, + // Number of pending record acknowledgements that have yeet to be consumed by the reader. + pending_acks: AtomicU64, + // The file ID offset of the reader past the acknowledged reader file ID. + unacked_reader_file_id_offset: AtomicU16, + // Last flush of all unflushed files: ledger, data file, etc. + last_flush: AtomicCell, + // Tracks usage data about the buffer. + usage_handle: BufferUsageHandle, +} + +impl Ledger +where + FS: Filesystem, +{ + /// Gets the configuration for the buffer that this ledger represents. + pub fn config(&self) -> &DiskBufferConfig { + &self.config + } + + /// Gets the filesystem configured for this buffer. + pub fn filesystem(&self) -> &FS { + &self.config.filesystem + } + + /// Gets the internal ledger state. + /// + /// This is the information persisted to disk. + pub fn state(&self) -> &ArchivedLedgerState { + self.state.get_archive_ref() + } + + /// Gets the total number of unread records in the buffer. + /// + /// This number is based on acknowledged reads only, which is to say that if 10 records are + /// written, and 8 of them have been read, but only 3 have been acked, then `get_total_records` + /// would return `7`. + pub fn get_total_records(&self) -> u64 { + let next_writer_id = self.state().get_next_writer_record_id(); + let last_reader_id = self.state().get_last_reader_record_id(); + + next_writer_id.wrapping_sub(last_reader_id) - 1 + } + + /// Gets the total number of bytes for all unread records in the buffer. + /// + /// This number will often disagree with the size of files on disk, as data files are deleted + /// only after being read entirely, and are simply appended to when they are not yet full. This + /// leads to behavior where writes and reads will change this value only by the size of the + /// records being written and read, while data files on disk will grow incrementally, and be + /// deleted in full. + pub fn get_total_buffer_size(&self) -> u64 { + self.total_buffer_size.load(Ordering::Acquire) + } + + /// Increments the total number of bytes for all unread records in the buffer. + pub fn increment_total_buffer_size(&self, amount: u64) { + let last_total_buffer_size = self.total_buffer_size.fetch_add(amount, Ordering::AcqRel); + trace!( + previous_buffer_size = last_total_buffer_size, + new_buffer_size = last_total_buffer_size + amount, + "Updated buffer size.", + ); + } + + /// Decrements the total number of bytes for all unread records in the buffer. + pub fn decrement_total_buffer_size(&self, amount: u64) { + let last_total_buffer_size = self.total_buffer_size.fetch_sub(amount, Ordering::AcqRel); + trace!( + previous_buffer_size = last_total_buffer_size, + new_buffer_size = last_total_buffer_size - amount, + "Updated buffer size.", + ); + } + + /// Gets the current reader file ID. + /// + /// This is internally adjusted to compensate for the fact that the reader can read far past + /// the latest acknowledge record/data file, and so is not representative of where the reader + /// would start reading from if the process crashed or was abruptly stopped. + pub fn get_current_reader_file_id(&self) -> u16 { + let unacked_offset = self.unacked_reader_file_id_offset.load(Ordering::Acquire); + self.state().get_offset_reader_file_id(unacked_offset) + } + + /// Gets the current writer file ID. + pub fn get_current_writer_file_id(&self) -> u16 { + self.state().get_current_writer_file_id() + } + + /// Gets the next writer file ID. + /// + /// This is purely a future-looking operation i.e. what would the file ID be if it was + /// incremented from its current value. It does not alter the current writer file ID. + #[cfg(test)] + pub fn get_next_writer_file_id(&self) -> u16 { + self.state().get_next_writer_file_id() + } + + /// Gets the current reader and writer file IDs. + /// + /// Similar to [`get_current_reader_file_id`], the file ID returned for the reader compensates + /// for the acknowledgement state of the reader. + pub fn get_current_reader_writer_file_id(&self) -> (u16, u16) { + let reader = self.get_current_reader_file_id(); + let writer = self.get_current_writer_file_id(); + + (reader, writer) + } + + /// Gets the current reader data file path, accounting for the unacknowledged offset. + pub fn get_current_reader_data_file_path(&self) -> PathBuf { + self.get_data_file_path(self.get_current_reader_file_id()) + } + + /// Gets the current writer data file path. + pub fn get_current_writer_data_file_path(&self) -> PathBuf { + self.get_data_file_path(self.get_current_writer_file_id()) + } + + /// Gets the next writer data file path. + pub fn get_next_writer_data_file_path(&self) -> PathBuf { + self.get_data_file_path(self.state().get_next_writer_file_id()) + } + + /// Gets the data file path for an arbitrary file ID. + pub fn get_data_file_path(&self, file_id: u16) -> PathBuf { + self.config + .data_dir + .join(format!("buffer-data-{file_id}.dat")) + } + + /// Waits for a signal from the reader that progress has been made. + /// + /// This will only occur when a record is read, which may allow enough space (below the maximum + /// configured buffer size) for a write to occur, or similarly, when a data file is deleted. + #[cfg_attr(test, instrument(skip(self), level = "trace"))] + pub async fn wait_for_reader(&self) { + self.reader_notify.notified().await; + } + + /// Waits for a signal from the writer that progress has been made. + /// + /// This will occur when a record is written, or when a new data file is created. + #[cfg_attr(test, instrument(skip(self), level = "trace"))] + pub async fn wait_for_writer(&self) { + self.writer_notify.notified().await; + } + + /// Notifies all tasks waiting on progress by the reader. + #[cfg_attr(test, instrument(skip(self), level = "trace"))] + pub fn notify_reader_waiters(&self) { + self.reader_notify.notify_one(); + } + + /// Notifies all tasks waiting on progress by the writer. + #[cfg_attr(test, instrument(skip(self), level = "trace"))] + pub fn notify_writer_waiters(&self) { + self.writer_notify.notify_one(); + } + + /// Tracks the statistics of a successful write. + pub fn track_write(&self, event_count: u64, record_size: u64) { + self.increment_total_buffer_size(record_size); + self.usage_handle + .increment_received_event_count_and_byte_size(event_count, record_size); + } + + /// Tracks the statistics of multiple successful reads. + pub fn track_reads(&self, event_count: u64, total_record_size: u64) { + self.decrement_total_buffer_size(total_record_size); + self.usage_handle + .increment_sent_event_count_and_byte_size(event_count, total_record_size); + } + + /// Marks the writer as finished. + /// + /// If the writer was not yet marked done, `false` is returned. Otherwise, `true` is returned, + /// and the caller should handle any necessary logic for closing the writer. + pub fn mark_writer_done(&self) -> bool { + self.writer_done + .compare_exchange_weak(false, true, Ordering::SeqCst, Ordering::SeqCst) + .is_ok() + } + + /// Returns `true` if the writer was marked as done. + pub fn is_writer_done(&self) -> bool { + self.writer_done.load(Ordering::Acquire) + } + + /// Increments the pending acknowledgement counter by the given amount. + pub fn increment_pending_acks(&self, amount: u64) { + self.pending_acks.fetch_add(amount, Ordering::AcqRel); + } + + /// Consumes the full amount of pending acknowledgements, and resets the counter to zero. + pub fn consume_pending_acks(&self) -> u64 { + self.pending_acks.swap(0, Ordering::AcqRel) + } + + /// Increments the unacknowledged reader file ID. + /// + /// As further described in `increment_acked_reader_file_id`, the underlying value here allows + /// the reader to read ahead of a data file, even if it hasn't been durably processed yet. + pub fn increment_unacked_reader_file_id(&self) { + let last_unacked_reader_file_id_offset = self + .unacked_reader_file_id_offset + .fetch_add(1, Ordering::AcqRel); + trace!( + unacked_reader_file_id_offset = last_unacked_reader_file_id_offset + 1, + "Incremented unacknowledged reader file ID." + ); + } + + /// Increments the acknowledged reader file ID. + /// + /// As records may be read and stored for a small period of time (batching in a sink, etc), we + /// cannot truly say that we have durably processed a record until the caller acknowledges the + /// record. However, if we always waited for an acknowledgement, then each read could be forced + /// to wait for multiple seconds. Such a design would clearly be unusable. + /// + /// Instead, we allow the reader to move ahead of the latest acknowledged record by tracking + /// their current file ID and acknowledged file ID separately. Once all records in a file have + /// been acknowledged, the data file can be deleted and the reader file ID can be durably + /// stored in the ledger. + /// + /// Callers use [`increment_unacked_reader_file_id`] to move to the next data file without + /// tracking that the previous data file has been durably processed and can be deleted, and + /// [`increment_acked_reader_file_id`] is the reciprocal function which tracks the highest data + /// file that _has_ been durably processed. + /// + /// Since the unacked file ID is simply a relative offset to the acked file ID, we decrement it + /// here to keep the "current" file ID stable. + pub fn increment_acked_reader_file_id(&self) { + let new_reader_file_id = self.state().increment_reader_file_id(); + + // We ignore the return value because when the value is already zero, we don't want to do an + // update, so we return `None`, which causes `fetch_update` to return `Err`. It's not + // really an error, we just wanted to avoid the extra atomic compare/exchange. + // + // Basically, this call is actually infallible for our purposes. + let result = self.unacked_reader_file_id_offset.fetch_update( + Ordering::Release, + Ordering::Relaxed, + |n| { + if n == 0 { + None + } else { + Some(n - 1) + } + }, + ); + + trace!( + unacked_reader_file_id_offset = result.map(|n| n - 1).unwrap_or(0), + acked_reader_file_id_offset = new_reader_file_id, + "Incremented acknowledged reader file ID offset with corresponding unacknowledged decrement." + ); + } + + /// Determines whether or not all files should be flushed/fsync'd to disk. + /// + /// In the case of concurrent callers when the flush deadline has been exceeded, only one caller + /// will get a return value of `true`, and the others will receive `false`. The caller that + /// receives `true` is responsible for flushing the necessary files. + pub fn should_flush(&self) -> bool { + let last_flush = self.last_flush.load(); + if last_flush.elapsed() > self.config.flush_interval + && self + .last_flush + .compare_exchange(last_flush, Instant::now()) + .is_ok() + { + return true; + } + + false + } + + /// Flushes the memory-mapped file backing the ledger to disk. + /// + /// This operation is synchronous. + /// + /// # Errors + /// + /// If there is an error while flushing the ledger to disk, an error variant will be returned + /// describing the error. + pub(super) fn flush(&self) -> io::Result<()> { + self.state.get_backing_ref().flush() + } + + /// Synchronizes the record count and total size of the buffer with buffer usage data. + /// + /// This should not be called until both the reader and writer have been initialized via + /// [`Reader::seek_to_last_record`] and [`Writer::validate_last_write`], otherwise the values + /// will not be accurate. + pub fn synchronize_buffer_usage(&self) { + let initial_buffer_events = self.get_total_records(); + let initial_buffer_size = self.get_total_buffer_size(); + self.usage_handle + .increment_received_event_count_and_byte_size( + initial_buffer_events, + initial_buffer_size, + ); + } + + pub fn track_dropped_events(&self, count: u64) { + // We don't know how many bytes are represented by dropped events because we never actually had a chance to read + // them, so we have to use a byte size of 0 here. + // + // On the flipside, this would only matter if we incremented the buffer size and simultaneously skipped/lost the + // events within the same process lifecycle, since otherwise we'd start from the correct buffer size when + // loading the buffer initially. + // + // TODO: Can we do better here? + self.usage_handle + .increment_dropped_event_count_and_byte_size(count, 0, false); + } +} + +impl Ledger +where + FS: Filesystem + 'static, + FS::File: Unpin, +{ + /// Loads or creates a ledger for the given [`DiskBufferConfig`]. + /// + /// If the ledger file does not yet exist, a default ledger state will be created and persisted + /// to disk. Otherwise, the ledger file on disk will be loaded and verified. + /// + /// # Errors + /// + /// If there is an error during either serialization of the new, default ledger state, or + /// deserializing existing data in the ledger file, or generally during the underlying I/O + /// operations, an error variant will be returned describing the error. + #[cfg_attr(test, instrument(skip_all, level = "trace"))] + pub(super) async fn load_or_create( + config: DiskBufferConfig, + usage_handle: BufferUsageHandle, + ) -> Result, LedgerLoadCreateError> { + // Create our containing directory if it doesn't already exist. + fs::create_dir_all(&config.data_dir) + .await + .context(IoSnafu)?; + + // Acquire an exclusive lock on our lock file, which prevents another Vector process from + // loading this buffer and clashing with us. Specifically, though: this does _not_ prevent + // another process from messing with our ledger files, or any of the data files, etc. + // + // TODO: It'd be nice to incorporate this within `Filesystem` to fully encapsulate _all_ + // file I/O, but the code is so specific, including the drop guard for the lock file, that I + // don't know if it's worth it. + let ledger_lock_path = config.data_dir.join("buffer.lock"); + let mut lock = LockFile::open(&ledger_lock_path).context(IoSnafu)?; + if !lock.try_lock().context(IoSnafu)? { + return Err(LedgerLoadCreateError::LedgerLockAlreadyHeld); + } + + // Open the ledger file, which may involve creating it if it doesn't yet exist. + let ledger_path = config.data_dir.join("buffer.db"); + let mut ledger_handle = config + .filesystem + .open_file_writable(&ledger_path) + .await + .context(IoSnafu)?; + + // If we just created the ledger file, then we need to create the default ledger state, and + // then serialize and write to the file, before trying to load it as a memory-mapped file. + let ledger_metadata = ledger_handle.metadata().await.context(IoSnafu)?; + let ledger_len = ledger_metadata.len(); + if ledger_len == 0 { + debug!("Ledger file empty. Initializing with default ledger state."); + let mut buf = BytesMut::new(); + loop { + match BackedArchive::from_value(&mut buf, LedgerState::default()) { + Ok(archive) => { + ledger_handle + .write_all(archive.get_backing_ref()) + .await + .context(IoSnafu)?; + break; + } + Err(SerializeError::FailedToSerialize(reason)) => { + return Err(LedgerLoadCreateError::FailedToSerialize { reason }) + } + // Our buffer wasn't big enough, but that's OK! Resize it and try again. + Err(SerializeError::BackingStoreTooSmall(_, min_len)) => buf.resize(min_len, 0), + } + } + + // Now sync the file to ensure everything is on disk before proceeding. + ledger_handle.sync_all().await.context(IoSnafu)?; + } + + // Load the ledger state by memory-mapping the ledger file, and zero-copy deserializing our + // ledger state back out of it. + let ledger_mmap = config + .filesystem + .open_mmap_writable(&ledger_path) + .await + .context(IoSnafu)?; + let ledger_state = match BackedArchive::from_backing(ledger_mmap) { + // Deserialized the ledger state without issue from an existing file. + Ok(backed) => backed, + // Either invalid data, or the buffer doesn't represent a valid ledger structure. + Err(e) => { + return Err(LedgerLoadCreateError::FailedToDeserialize { + reason: e.into_inner(), + }) + } + }; + + // Create the ledger object, and synchronize the buffer statistics with the buffer usage + // handle. This handles making sure we account for the starting size of the buffer, and + // what not. + let mut ledger = Ledger { + config, + lock, + state: ledger_state, + total_buffer_size: AtomicU64::new(0), + reader_notify: Notify::new(), + writer_notify: Notify::new(), + writer_done: AtomicBool::new(false), + pending_acks: AtomicU64::new(0), + unacked_reader_file_id_offset: AtomicU16::new(0), + last_flush: AtomicCell::new(Instant::now()), + usage_handle, + }; + ledger.update_buffer_size().await?; + + Ok(ledger) + } + + async fn update_buffer_size(&mut self) -> Result<(), LedgerLoadCreateError> { + // Under normal operation, the reader and writer maintain a consistent state within the + // ledger. However, due to the nature of how we update the ledger, process crashes could + // lead to missed updates as we execute reads and writes as non-atomic units of execution: + // update a field, do the read/write, update some more fields depending on success or + // failure, etc. + // + // This is an issue because we depend on knowing the total buffer size (the total size of + // unread records, specifically) so that we can correctly limit writes when we've reached + // the configured maximum buffer size. + // + // While it's not terribly efficient, and I'd like to eventually formulate a better design, + // this approach is absolutely correct: get the file size of every data file on disk, + // and set the "total buffer size" to the sum of all of those file sizes. + // + // When the reader does any necessary seeking to get to the record it left off on, it will + // adjust the "total buffer size" downwards for each record it runs through, leaving "total + // buffer size" at the correct value. + let mut dat_reader = fs::read_dir(&self.config.data_dir).await.context(IoSnafu)?; + + let mut total_buffer_size = 0; + while let Some(dir_entry) = dat_reader.next_entry().await.context(IoSnafu)? { + if let Some(file_name) = dir_entry.file_name().to_str() { + // I really _do_ want to only find files with a .dat extension, as that's what the + // code generates, and having them be .dAt or .Dat or whatever would indicate that + // the file is not related to our buffer. If we had to cope with case-sensitivity + // of filenames from another program/OS, then it would be a different story. + #[allow(clippy::case_sensitive_file_extension_comparisons)] + if file_name.ends_with(".dat") { + let metadata = dir_entry.metadata().await.context(IoSnafu)?; + total_buffer_size += metadata.len(); + + debug!( + data_file = file_name, + file_size = metadata.len(), + total_buffer_size, + "Found existing data file." + ); + } + } + } + + self.increment_total_buffer_size(total_buffer_size); + + Ok(()) + } + + #[must_use] + pub(super) fn spawn_finalizer(self: Arc) -> OrderedFinalizer { + let (finalizer, mut stream) = OrderedFinalizer::new(None); + tokio::spawn(async move { + while let Some((_status, amount)) = stream.next().await { + self.increment_pending_acks(amount); + self.notify_writer_waiters(); + } + }); + finalizer + } +} + +impl fmt::Debug for Ledger +where + FS: Filesystem + fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Ledger") + .field("config", &self.config) + .field("state", &self.state.get_archive_ref()) + .field( + "total_buffer_size", + &self.total_buffer_size.load(Ordering::Acquire), + ) + .field("pending_acks", &self.pending_acks.load(Ordering::Acquire)) + .field( + "unacked_reader_file_id_offset", + &self.unacked_reader_file_id_offset.load(Ordering::Acquire), + ) + .field("writer_done", &self.writer_done.load(Ordering::Acquire)) + .field("last_flush", &self.last_flush.load()) + .finish_non_exhaustive() + } +} diff --git a/lib/vector-buffers/src/variants/disk_v2/mod.rs b/lib/vector-buffers/src/variants/disk_v2/mod.rs new file mode 100644 index 0000000000000..e93738b178181 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/mod.rs @@ -0,0 +1,369 @@ +//! # Disk buffer v2. +//! +//! This disk buffer implementation focuses on a simplistic on-disk format with minimal +//! reader/writer coordination, and no exotic I/O techniques, such that the buffer is easy to write +//! to and read from and can provide simplistic, but reliable, recovery mechanisms when errors or +//! corruption are encountered. +//! +//! ## Design constraints +//! +//! These constraints, or more often, invariants, are the groundwork for ensuring that the design +//! can stay simple and understandable: +//! +//! - data files do not exceed 128MB +//! - no more than 65,536 data files can exist at any given time +//! - buffer can grow to a maximum of ~8TB in total size (65k files * 128MB) +//! - all records are checksummed (CRC32C) +//! - all records are written sequentially/contiguously, and do not span over multiple data files +//! - writers create and write to data files, while readers read from and delete data files +//! - endianness of the files is based on the host system (we don't support loading the buffer files +//! on a system with different endianness) +//! +//! ## High-level design +//! +//! ### Records +//! +//! A record is an length-prefixed payload, where an arbitrary number of bytes are contained, +//! alongside a monotonically increasing ID, and protected by a CRC32C checksum. Since a record +//! simply stores opaque bytes, one or more events can be stored per record. +//! +//! The writer assigns record IDs based on number of events written to a record, such that a record +//! ID of N can be determined to contain M-N events, where M is the record ID of the next record. +//! +//! #### On-disk format +//! +//! Records are represented by the following pseudo-structure: +//! +//! ```text +//! record: +//! record_len: uint64 +//! checksum: uint32(CRC32C of record_id + payload) +//! record_id: uint64 +//! payload: uint8[record_len] +//! ``` +//! +//! We say "pseudo-structure" as a helper serialization library, [`rkyv`][rkyv], is used to handle +//! serialization, and zero-copy deserialization, of records. This effectively adds some amount of +//! padding to record fields, due to the need to structure record field data in a way that makes it +//! transparent to access during zero-copy deserialization, when the raw buffer of a record that was +//! read is able to be accessed as if it was a native Rust type/value. +//! +//! While this padding/overhead is small, and fixed, we do not quantify it here as it can +//! potentially changed based on the payload that a record contains. The only safe way to access the +//! records in a disk buffer should be through the reader/writer interface in this module. +//! +//! ### Data files +//! +//! Data files contain the buffered records and nothing else. Records are written +//! sequentially/contiguously, and are not padded out to meet a minimum block/write size, except for +//! internal padding requirements of the serialization library used. +//! +//! Data files have a maximum size, configured statically within a given Vector binary, which can +//! never be exceeded: if a write would cause a data file to grow past the maximum file size, it +//! must be written to the next data file. +//! +//! A maximum number of 65,536 data files can exist at any given time, due to the inclusion of a +//! file ID in the data file name, which is represented by a 16-bit unsigned integer. +//! +//! ### Ledger +//! +//! The ledger is a small file which tracks two important items for both the reader and writer: +//! which data file they're currently reading or writing to, and what record ID they left off on. +//! +//! The ledger is read during buffer initialization to determine a reader should pick up reading +//! from, but is also used to attempt to detect where a writer left off, and if records are missing +//! from the current writer data file according to what the writer believes it did (as in +//! write/flush bytes to disk) and what the reality is, based on the actual data in the current +//! writer data file. +//! +//! The ledger is a memory-mapped file that is updated atomically in terms of its fields, but is not +//! updated atomically in terms of reader/writer activity. +//! +//! #### On-disk format +//! +//! Like records, the ledger file consists of a simplified structure that is optimized for being shared +//! via a memory-mapped file interface between the reader and writer. +//! +//! ```text +//! buffer.db: +//! writer_next_record_id: uint64 +//! writer_current_data_file_id: uint16 +//! reader_current_data_file_id: uint16 +//! reader_last_record_id: uint64 +//! ``` +//! +//! As the disk buffer structure is meant to emulate a ring buffer, most of the bookkeeping resolves +//! around the writer and reader being able to quickly figure out where they left off. Record and +//! data file IDs are simply rolled over when they reach the maximum of their data type, and are +//! incremented monotonically as new data files are created, rather than trying to always allocate +//! from the lowest available ID. +//! +//! ## Buffer operation +//! +//! ### Writing records +//! +//! As mentioned above, records are added to a data file sequentially, and contiguously, with no +//! gaps or data alignment adjustments, excluding the padding/alignment used by `rkyv` itself to +//! allow for zero-copy deserialization. This continues until adding another would exceed the +//! configured data file size limit. When this occurs, the current data file is flushed and +//! synchronized to disk, and a new data file will be opened. +//! +//! If the number of data files on disk exceeds the maximum (65,536), or if the total data file size +//! limit is exceeded, the writer will wait until enough space has been freed such that the record +//! can be written. As data files are only deleted after being read entirely, this means that space +//! is recovered in increments of the target data file size, which is 128MB. Thus, the minimum size +//! for a buffer must be equal to or greater than the target size of a single data file. +//! Additionally, as data files are uniquely named based on an incrementing integer, of which will +//! wrap around at 65,536 (2^16), the maximum data file size in total for a given buffer is ~8TB (6 +//! 5k files * 128MB). +//! +//! ### Reading records +//! +//! Due to the on-disk layout, reading records is an incredibly straight-forward progress: we open a +//! file, read it until there's no more data and we know the writer is done writing to the file, and +//! then we open the next one, and repeat the process. +//! +//! ### Deleting acknowledged records +//! +//! As the reader emits records, we cannot yet consider them fully processed until they are +//! acknowledged. The acknowledgement process is tied into the normal acknowledgement machinery, and +//! the reader collects and processes those acknowledgements incrementally as reads occur. +//! +//! When all records from a data file have been fully acknowledged, the data file is scheduled for +//! deletion. We only delete entire data files, rather than truncating them piecemeal, which reduces +//! the I/O burden of the buffer. This does mean, however, that a data file will stick around until +//! it is entirely processed and acknowledged. We compensate for this fact in the buffer +//! configuration by adjusting the logical buffer size based on when records are acknowledged, so +//! that the writer can make progress as records are acknowledged, even if the buffer is close to, +//! or at the maximum buffer size limit. +//! +//! ### Record ID generation, and its relation of events +//! +//! While the buffer talks a lot about writing "records", records are ostensibly a single event, or +//! collection of events. We manage the organization and grouping of events at a higher level +//! (i.e. `EventArray`), but we're still required to confront this fact at the buffer layer. In +//! order to maintain as little extra metadata as possible as records, and within the ledger, we +//! encode the number of events in a buffer into the record ID. We do this by using the value +//! returned by `EventCount::event_count` on a per-record basis. +//! +//! For example, a fresh buffer starts at a record ID of 1 for the writer: that is, the next write +//! will start at 1. If we write a record that contains 10 events, we add that event count to the +//! record ID we started from, which gives us 11. The next record write will start at 11, and the +//! pattern continues going forward. +//! +//! The other reason we do this is to allow us to quickly and easily determine how many events exist +//! in a buffer. Since we have the invariant of knowing that record IDs are tied, in a way, to event +//! count, we can quickly and easily find the first and last unread record in the buffer, and do +//! simple subtraction to calculate how many events we have outstanding. While there is logic that +//! handles corrupted records, or other corner case errors, the core premise, and logic, follows +//! this pattern. +//! +//! We need to track our reader progress, both in the form of how much data we've read in this data +//! file, as well as the record ID. This is required not only for ensuring our general buffer +//! accounting (event count, buffer size, etc) is accurate, but also to be able to handle corrupted +//! records. +//! +//! We make sure to track enough information such that when we encounter a corrupted record, or if +//! we skip records due to missing data, we can figure out how many events we've dropped or lost, +//! and handle the necessary adjustments to the buffer accounting. +//! +//! [rkyv]: https://docs.rs/rkyv + +use core::fmt; +use std::{ + error::Error, + marker::PhantomData, + num::NonZeroU64, + path::{Path, PathBuf}, + sync::Arc, +}; + +use async_trait::async_trait; +use snafu::{ResultExt, Snafu}; +use vector_common::finalization::Finalizable; + +mod backed_archive; +mod common; +mod io; +mod ledger; +mod reader; +mod record; +mod ser; +mod writer; + +#[cfg(test)] +mod tests; + +use self::ledger::Ledger; +pub use self::{ + common::{DiskBufferConfig, DiskBufferConfigBuilder}, + io::{Filesystem, ProductionFilesystem}, + ledger::LedgerLoadCreateError, + reader::{BufferReader, ReaderError}, + writer::{BufferWriter, WriterError}, +}; +use crate::{ + buffer_usage_data::BufferUsageHandle, + topology::{ + builder::IntoBuffer, + channel::{ReceiverAdapter, SenderAdapter}, + }, + Bufferable, +}; + +/// Error that occurred when creating/loading a disk buffer. +#[derive(Debug, Snafu)] +pub enum BufferError +where + T: Bufferable, +{ + /// Failed to create/load the ledger. + #[snafu(display("failed to load/create ledger: {}", source))] + LedgerError { source: LedgerLoadCreateError }, + + /// Failed to initialize/catch the reader up to where it left off. + #[snafu(display("failed to seek to position where reader left off: {}", source))] + ReaderSeekFailed { source: ReaderError }, + + /// Failed to initialize/catch the writer up to where it left off. + #[snafu(display("failed to seek to position where writer left off: {}", source))] + WriterSeekFailed { source: WriterError }, +} + +/// Helper type for creating a disk buffer. +pub struct Buffer { + _t: PhantomData, +} + +impl Buffer +where + T: Bufferable, +{ + #[cfg_attr(test, instrument(skip(config, usage_handle), level = "trace"))] + pub(crate) async fn from_config_inner( + config: DiskBufferConfig, + usage_handle: BufferUsageHandle, + ) -> Result<(BufferWriter, BufferReader, Arc>), BufferError> + where + FS: Filesystem + fmt::Debug + Clone + 'static, + FS::File: Unpin, + { + let ledger = Ledger::load_or_create(config, usage_handle) + .await + .context(LedgerSnafu)?; + let ledger = Arc::new(ledger); + + let mut writer = BufferWriter::new(Arc::clone(&ledger)); + writer + .validate_last_write() + .await + .context(WriterSeekFailedSnafu)?; + + let finalizer = Arc::clone(&ledger).spawn_finalizer(); + + let mut reader = BufferReader::new(Arc::clone(&ledger), finalizer); + reader + .seek_to_next_record() + .await + .context(ReaderSeekFailedSnafu)?; + + ledger.synchronize_buffer_usage(); + + Ok((writer, reader, ledger)) + } + + /// Creates a new disk buffer from the given [`DiskBufferConfig`]. + /// + /// If successful, a [`Writer`] and [`Reader`] value, representing the write/read sides of the + /// buffer, respectively, will be returned. Records are considered durably processed and able + /// to be deleted from the buffer when they are dropped by the reader, via event finalization. + /// + /// # Errors + /// + /// If an error occurred during the creation or loading of the disk buffer, an error variant + /// will be returned describing the error. + #[cfg_attr(test, instrument(skip(config, usage_handle), level = "trace"))] + pub async fn from_config( + config: DiskBufferConfig, + usage_handle: BufferUsageHandle, + ) -> Result<(BufferWriter, BufferReader), BufferError> + where + FS: Filesystem + fmt::Debug + Clone + 'static, + FS::File: Unpin, + { + let (writer, reader, _) = Self::from_config_inner(config, usage_handle).await?; + + Ok((writer, reader)) + } +} + +pub struct DiskV2Buffer { + id: String, + data_dir: PathBuf, + max_size: NonZeroU64, +} + +impl DiskV2Buffer { + pub fn new(id: String, data_dir: PathBuf, max_size: NonZeroU64) -> Self { + Self { + id, + data_dir, + max_size, + } + } +} + +#[async_trait] +impl IntoBuffer for DiskV2Buffer +where + T: Bufferable + Clone + Finalizable, +{ + fn provides_instrumentation(&self) -> bool { + true + } + + async fn into_buffer_parts( + self: Box, + usage_handle: BufferUsageHandle, + ) -> Result<(SenderAdapter, ReceiverAdapter), Box> { + let (writer, reader) = build_disk_v2_buffer( + usage_handle, + &self.data_dir, + self.id.as_str(), + self.max_size, + ) + .await?; + + Ok((writer.into(), reader.into())) + } +} + +async fn build_disk_v2_buffer( + usage_handle: BufferUsageHandle, + data_dir: &Path, + id: &str, + max_size: NonZeroU64, +) -> Result< + ( + BufferWriter, + BufferReader, + ), + Box, +> +where + T: Bufferable + Clone, +{ + usage_handle.set_buffer_limits(Some(max_size.get()), None); + + let buffer_path = get_disk_v2_data_dir_path(data_dir, id); + let config = DiskBufferConfigBuilder::from_path(buffer_path) + .max_buffer_size(max_size.get()) + .build()?; + Buffer::from_config(config, usage_handle) + .await + .map_err(Into::into) +} + +pub(crate) fn get_disk_v2_data_dir_path(base_dir: &Path, buffer_id: &str) -> PathBuf { + base_dir.join("buffer").join("v2").join(buffer_id) +} diff --git a/lib/vector-buffers/src/variants/disk_v2/reader.rs b/lib/vector-buffers/src/variants/disk_v2/reader.rs new file mode 100644 index 0000000000000..8aea89645ca64 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/reader.rs @@ -0,0 +1,1152 @@ +use std::{ + cmp, fmt, + io::{self, ErrorKind}, + marker::PhantomData, + num::NonZeroU64, + path::PathBuf, + sync::Arc, +}; + +use crc32fast::Hasher; +use rkyv::{archived_root, AlignedVec}; +use snafu::{ResultExt, Snafu}; +use tokio::io::{AsyncBufReadExt, AsyncRead, BufReader}; +use vector_common::{finalization::BatchNotifier, finalizer::OrderedFinalizer}; + +use super::{ + common::create_crc32c_hasher, + ledger::Ledger, + record::{validate_record_archive, ArchivedRecord, Record, RecordStatus}, + Filesystem, +}; +use crate::{ + encoding::{AsMetadata, Encodable}, + internal_events::BufferReadError, + topology::acks::{EligibleMarker, EligibleMarkerLength, MarkerError, OrderedAcknowledgements}, + variants::disk_v2::{io::AsyncFile, record::try_as_record_archive}, + Bufferable, +}; + +pub(super) struct ReadToken { + record_id: u64, + record_bytes: usize, +} + +impl ReadToken { + pub fn new(record_id: u64, record_bytes: usize) -> Self { + Self { + record_id, + record_bytes, + } + } + + pub fn record_id(&self) -> u64 { + self.record_id + } + + pub fn record_bytes(&self) -> usize { + self.record_bytes + } + + fn into_record_id(self) -> u64 { + self.record_id + } +} + +/// Error that occurred during calls to [`BufferReader`]. +#[derive(Debug, Snafu)] +pub enum ReaderError +where + T: Bufferable, +{ + /// A general I/O error occurred. + /// + /// Different methods will capture specific I/O errors depending on the situation, as some + /// errors may be expected and considered normal by design. For all I/O errors that are + /// considered atypical, they will be returned as this variant. + #[snafu(display("read I/O error: {}", source))] + Io { source: io::Error }, + + /// The reader failed to deserialize the record. + /// + /// In most cases, this indicates that the data file being read was corrupted or truncated in + /// some fashion. Callers of [`BufferReader::next`] will not actually receive this error, as it is + /// handled internally by moving to the next data file, as corruption may have affected other + /// records in a way that is not easily detectable and could lead to records which + /// deserialize/decode but contain invalid data. + #[snafu(display("failed to deserialize encoded record from buffer: {}", reason))] + Deserialization { reason: String }, + + /// The record's checksum did not match. + /// + /// In most cases, this indicates that the data file being read was corrupted or truncated in + /// some fashion. Callers of [`BufferReader::next`] will not actually receive this error, as it is + /// handled internally by moving to the next data file, as corruption may have affected other + /// records in a way that is not easily detectable and could lead to records which + /// deserialize/decode but contain invalid data. + #[snafu(display( + "calculated checksum did not match the actual checksum: ({} vs {})", + calculated, + actual + ))] + Checksum { calculated: u32, actual: u32 }, + + /// The decoder encountered an issue during decoding. + /// + /// At this stage, the record can be assumed to have been written correctly, and read correctly + /// from disk, as the checksum was also validated. + #[snafu(display("failed to decoded record: {:?}", source))] + Decode { + source: ::DecodeError, + }, + + /// The record is not compatible with this version of Vector. + /// + /// This can occur when records written to a buffer in previous versions of Vector are read by + /// newer versions of Vector where the encoding scheme, or record schema, used in the previous + /// version of Vector are no longer able to be decoded in this version of Vector. + #[snafu(display("record version not compatible: {}", reason))] + Incompatible { reason: String }, + + /// The reader detected that a data file contains a partially-written record. + /// + /// Records should never be partially written to a data file (we don't split records across data + /// files) so this would be indicative of a write that was never properly written/flushed, or + /// some issue with the write where it was acknowledged but the data/file was corrupted in same way. + /// + /// This is effectively the same class of error as an invalid checksum/failed deserialization. + PartialWrite, + + /// The record reported an event count of zero. + /// + /// Empty records should not be allowed to be written, so this represents either a bug with the + /// writing logic of the buffer, or a record that does not use a symmetrical encoding scheme, + /// which is also not supported. + EmptyRecord, +} + +impl ReaderError +where + T: Bufferable, +{ + fn is_bad_read(&self) -> bool { + matches!( + self, + ReaderError::Checksum { .. } + | ReaderError::Deserialization { .. } + | ReaderError::PartialWrite + ) + } + + fn as_error_code(&self) -> &'static str { + match self { + ReaderError::Io { .. } => "io_error", + ReaderError::Deserialization { .. } => "deser_failed", + ReaderError::Checksum { .. } => "checksum_mismatch", + ReaderError::Decode { .. } => "decode_failed", + ReaderError::Incompatible { .. } => "incompatible_record_version", + ReaderError::PartialWrite => "partial_write", + ReaderError::EmptyRecord => "empty_record", + } + } + + pub fn as_recoverable_error(&self) -> Option { + let error = self.to_string(); + let error_code = self.as_error_code(); + + match self { + ReaderError::Io { .. } | ReaderError::EmptyRecord => None, + ReaderError::Deserialization { .. } + | ReaderError::Checksum { .. } + | ReaderError::Decode { .. } + | ReaderError::Incompatible { .. } + | ReaderError::PartialWrite => Some(BufferReadError { error_code, error }), + } + } +} + +impl PartialEq for ReaderError { + fn eq(&self, other: &Self) -> bool { + match (self, other) { + (Self::Io { source: l_source }, Self::Io { source: r_source }) => { + l_source.kind() == r_source.kind() + } + ( + Self::Deserialization { reason: l_reason }, + Self::Deserialization { reason: r_reason }, + ) => l_reason == r_reason, + ( + Self::Checksum { + calculated: l_calculated, + actual: l_actual, + }, + Self::Checksum { + calculated: r_calculated, + actual: r_actual, + }, + ) => l_calculated == r_calculated && l_actual == r_actual, + (Self::Decode { .. }, Self::Decode { .. }) => true, + (Self::Incompatible { reason: l_reason }, Self::Incompatible { reason: r_reason }) => { + l_reason == r_reason + } + _ => core::mem::discriminant(self) == core::mem::discriminant(other), + } + } +} + +/// Buffered reader that handles deserialization, checksumming, and decoding of records. +pub(super) struct RecordReader { + reader: BufReader, + aligned_buf: AlignedVec, + checksummer: Hasher, + current_record_id: u64, + _t: PhantomData, +} + +impl RecordReader +where + R: AsyncRead + Unpin, + T: Bufferable, +{ + /// Creates a new [`RecordReader`] around the provided reader. + /// + /// Internally, the reader is wrapped in a [`BufReader`], so callers should not pass in an + /// already buffered reader. + pub fn new(reader: R) -> Self { + Self { + reader: BufReader::with_capacity(256 * 1024, reader), + aligned_buf: AlignedVec::new(), + checksummer: create_crc32c_hasher(), + current_record_id: 0, + _t: PhantomData, + } + } + + #[cfg_attr(test, instrument(skip(self), level = "trace"))] + async fn read_length_delimiter( + &mut self, + is_finalized: bool, + ) -> Result, ReaderError> { + loop { + let available = self.reader.buffer().len(); + if available >= 8 { + let length_buf = &self.reader.buffer()[..8]; + let length = length_buf + .try_into() + .expect("the slice is the length of a u64"); + self.reader.consume(8); + + // By default, records cannot exceed 8MB in length, so whether our `usize` is a u32 + // or u64, we're not going to overflow it. While the maximum record size _can_ be + // changed, it's not currently exposed to users. Even further, if it was exposed to + // users, it's currently a `usize`, so again, we know that we're not going to exceed + // 64-bit. And even further still, the writer fallibly attempts to get a `u64` of the + // record size based on the encoding buffer, which gives its length in `usize`, and + // so would fail if `usize` was larger than `u64`, meaning we at least will panic if + // Vector is running on a 128-bit CPU in the future, storing records that are larger + // than 2^64+1. :) + let record_len = u64::from_be_bytes(length) + .try_into() + .expect("record length should never exceed usize"); + return Ok(Some(record_len)); + } + + // We don't have enough bytes, so we need to fill our buffer again. + let buf = self.reader.fill_buf().await.context(IoSnafu)?; + if buf.is_empty() { + return Ok(None); + } + + // If we tried to read more bytes, and we still don't have enough for the record + // delimiter, and the data file has been finalized already: we've got a partial + // write situation on our hands. + if buf.len() < 8 && is_finalized { + return Err(ReaderError::PartialWrite); + } + } + } + + /// Attempts to read a record. + /// + /// Records are preceded by a length delimiter, a fixed-size integer (currently 8 bytes) that + /// tells the reader how many more bytes to read in order to completely read the next record. + /// + /// If there are no more bytes to read, we return early in order to allow the caller to wait + /// until such a time where there should be more data, as no wake-ups can be generated when + /// reading a file after reaching EOF. + /// + /// If there is any data available, we attempt to continue reading until both a length + /// delimiter, and the accompanying record, can be read in their entirety. + /// + /// If a record is able to be read in its entirety, a token is returned to caller that can be + /// used with [`read_record`] in order to get an owned `T`. This is due to a quirk with the + /// compiler's ability to track stacked mutable references through conditional control flows, of + /// which is handled by splitting the "do we have a valid record in our buffer?" logic from the + /// "read that record and decode it" logic. + /// + /// # Finalized reads + /// + /// All of the above logic applies when `is_finalized` is `false`, which signals that a data + /// file is still currently being written to. If `is_finalized` is `true`, most of the above + /// logic applies but in cases where we detect a partial write, we explicitly return an error + /// for a partial read. + /// + /// In practice, what this means is that when we believe a file should be "finalized" -- the + /// writer flushed the file to disk, the ledger has been flushed, etc -- then we also expect to + /// be able to read all bytes with no leftover. A partially-written length delimiter, or + /// record, would be indicative of a bug with the writer or OS/disks, essentially telling us + /// that the current data file is not valid for reads anymore. We don't know _why_ it's in this + /// state, only that something is not right and that we must skip the file. + /// + /// # Errors + /// + /// Errors can occur during the I/O or deserialization stage. If an error occurs during any of + /// these stages, an appropriate error variant will be returned describing the error. + #[cfg_attr(test, instrument(skip(self), level = "trace"))] + pub async fn try_next_record( + &mut self, + is_finalized: bool, + ) -> Result, ReaderError> { + let Some(record_len) = self.read_length_delimiter(is_finalized).await? else { + return Ok(None); + }; + + if record_len == 0 { + return Err(ReaderError::Deserialization { + reason: "record length was zero".to_string(), + }); + } + + // Read in all of the bytes we need first. + self.aligned_buf.clear(); + while self.aligned_buf.len() < record_len { + let needed = record_len - self.aligned_buf.len(); + let buf = self.reader.fill_buf().await.context(IoSnafu)?; + if buf.is_empty() && is_finalized { + // If we needed more data, but there was none available, and we're finalized: we've + // got ourselves a partial write situation. + return Err(ReaderError::PartialWrite); + } + + let available = cmp::min(buf.len(), needed); + self.aligned_buf.extend_from_slice(&buf[..available]); + self.reader.consume(available); + } + + // Now see if we can deserialize our archived record from this. + let buf = self.aligned_buf.as_slice(); + match validate_record_archive(buf, &self.checksummer) { + RecordStatus::FailedDeserialization(de) => Err(ReaderError::Deserialization { + reason: de.into_inner(), + }), + RecordStatus::Corrupted { calculated, actual } => { + Err(ReaderError::Checksum { calculated, actual }) + } + RecordStatus::Valid { id, .. } => { + self.current_record_id = id; + // TODO: Another spot where our hardcoding of the length delimiter size in bytes is fragile. + Ok(Some(ReadToken::new(id, 8 + buf.len()))) + } + } + } + + /// Reads the record associated with the given [`ReadToken`]. + /// + /// # Errors + /// + /// If an error occurs during decoding, an error variant will be returned describing the error. + /// + /// # Panics + /// + /// If a `ReadToken` is not used in a call to `read_record` before again calling + /// `try_next_record`, and the `ReadToken` from _that_ call is used, this method will panic due + /// to an out-of-order read. + pub fn read_record(&mut self, token: ReadToken) -> Result> { + let record_id = token.into_record_id(); + assert_eq!( + self.current_record_id, record_id, + "using expired read token; this is a serious bug" + ); + + // SAFETY: + // - `try_next_record` is the only method that can hand back a `ReadToken` + // - we only get a `ReadToken` if there's a valid record in `self.aligned_buf` + // - `try_next_record` does all the archive checks, checksum validation, etc + let record = unsafe { archived_root::>(&self.aligned_buf) }; + + decode_record_payload(record) + } +} + +impl fmt::Debug for RecordReader +where + R: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("RecordReader") + .field("reader", &self.reader) + .field("aligned_buf", &self.aligned_buf) + .field("checksummer", &self.checksummer) + .field("current_record_id", &self.current_record_id) + .finish() + } +} + +/// Reads records from the buffer. +#[derive(Debug)] +pub struct BufferReader +where + FS: Filesystem, +{ + ledger: Arc>, + reader: Option>, + bytes_read: u64, + last_reader_record_id: u64, + data_file_start_record_id: Option, + data_file_record_count: u64, + data_file_marked_record_count: u64, + ready_to_read: bool, + record_acks: OrderedAcknowledgements, + data_file_acks: OrderedAcknowledgements, + finalizer: OrderedFinalizer, + _t: PhantomData, +} + +impl BufferReader +where + T: Bufferable, + FS: Filesystem, + FS::File: Unpin, +{ + /// Creates a new [`BufferReader`] attached to the given [`Ledger`]. + pub(crate) fn new(ledger: Arc>, finalizer: OrderedFinalizer) -> Self { + let ledger_last_reader_record_id = ledger.state().get_last_reader_record_id(); + let next_expected_record_id = ledger_last_reader_record_id.wrapping_add(1); + + Self { + ledger, + reader: None, + bytes_read: 0, + last_reader_record_id: 0, + data_file_start_record_id: None, + data_file_record_count: 0, + data_file_marked_record_count: 0, + ready_to_read: false, + record_acks: OrderedAcknowledgements::from_acked(next_expected_record_id), + data_file_acks: OrderedAcknowledgements::from_acked(0), + finalizer, + _t: PhantomData, + } + } + + fn reset(&mut self) { + self.reader = None; + self.bytes_read = 0; + self.data_file_start_record_id = None; + } + + fn track_read(&mut self, record_id: u64, record_bytes: u64, event_count: NonZeroU64) { + // We explicitly reduce the event count by one here in order to correctly calculate the + // "last" record ID, which you can visualize as follows... + // + // [ record 1 ] [ record 2 ] [ record 3 ] [....] + // [0] [1] [2] [3] [4] [5] [....] + // + // For each of these records, their "last ID" is simply the ID of the first event within the + // record, plus the event count, minus one. Another way to look at it is that the "last" + // reader record ID is always one behind the next expected record ID. In the above example, + // the next record ID we would expect would be 6, regardless of how many events the record has. + self.last_reader_record_id = record_id.wrapping_add(event_count.get() - 1); + if self.data_file_start_record_id.is_none() { + self.data_file_start_record_id = Some(record_id); + } + + // Track the amount of data we read. If we're still loading the buffer, then the only thing + // other we need to do is update the total buffer size. Everything else below only matters + // when we're doing real record reads. + self.bytes_read += record_bytes; + if !self.ready_to_read { + self.ledger.decrement_total_buffer_size(record_bytes); + return; + } + + // We've done a "real" record read, so we need to track it for acknowledgement. Check our + // acknowledge state first to see if this is the next record ID we expected. + self.data_file_record_count += 1; + if let Err(me) = + self.record_acks + .add_marker(record_id, Some(event_count.get()), Some(record_bytes)) + { + match me { + MarkerError::MonotonicityViolation => { + panic!("record ID monotonicity violation detected; this is a serious bug") + } + } + } + } + + #[cfg_attr(test, instrument(skip_all, level = "debug"))] + async fn delete_completed_data_file( + &mut self, + data_file_path: PathBuf, + bytes_read: Option, + ) -> io::Result<()> { + // TODO: Could we actually make this a background task to remove the tail latency from the + // read path? Technically all that's needed is a handle to the ledger and the data file + // path, so as long as the logic is still right, we can notify writers out-of-band. + debug!( + data_file_path = data_file_path.to_string_lossy().as_ref(), + bytes_read, "Deleting completed data file." + ); + + // Grab the size of the data file before we delete it, which gives us a chance to fix up the + // total buffer size for corrupted files or fast-forwarded files. + // + // Since we only decrement the buffer size after a successful read in normal cases, skipping + // the rest of a corrupted file could lead to the total buffer size being unsynchronized. + // We use the difference between the number of bytes read and the file size to figure out if + // we need to make a manual adjustment. + // + // Likewise, when we skip over a file in "fast forward" mode during initialization, no reads + // occur at all, so we're relying on this method to correct the buffer size for us. This is + // why `bytes_read` is optional: when it's specified, we calculate a delta for handling + // partial-read scenarios, otherwise, we just use the entire data file size as is. + let data_file = self + .ledger + .filesystem() + .open_file_readable(&data_file_path) + .await?; + let metadata = data_file.metadata().await?; + + let decrease_amount = bytes_read.map_or_else( + || metadata.len(), + |bytes_read| { + let size_delta = metadata.len() - bytes_read; + if size_delta > 0 { + debug!( + actual_file_size = metadata.len(), + bytes_read, + "Data file was only partially read. Adjusting buffer size to compensate.", + ); + } + + size_delta + }, + ); + + if decrease_amount > 0 { + self.ledger.decrement_total_buffer_size(decrease_amount); + } + + drop(data_file); + + // Delete the current data file, and increment our actual reader file ID. + self.ledger + .filesystem() + .delete_file(&data_file_path) + .await?; + self.ledger.increment_acked_reader_file_id(); + self.ledger.flush()?; + + debug!("Flushed after deleting data file, notifying writers and continuing."); + + // Notify any waiting writers that we've deleted a data file, which they may be waiting on + // because they're looking to reuse the file ID of the file we just finished reading. + self.ledger.notify_reader_waiters(); + + Ok(()) + } + + #[cfg_attr(test, instrument(skip(self), level = "debug"))] + async fn handle_pending_acknowledgements( + &mut self, + force_check_pending_data_files: bool, + ) -> io::Result<()> { + // Acknowledgements effectively happen in two layers: record acknowledgement and data file + // acknowledgement. Since records can contain multiple events, we need to track when a + // record itself has been fully acknowledged. Likewise, data files contain multiple records, + // so we need to track when all records we've read from a data file have been acknowledged. + + // Drive record acknowledgement first. + // + // We only do this if we actually consume any acknowledgements, and immediately update the + // buffer and ledger to more quickly get those metrics into good shape. We defer notifying + // writers until after, though, in case we also have data files to delete, so that we can + // coalesce the notifications together at the very end of the method. + let mut had_eligible_records = false; + let mut records_acknowledged: u64 = 0; + let mut events_acknowledged: u64 = 0; + let mut events_skipped: u64 = 0; + let mut bytes_acknowledged: u64 = 0; + + let consumed_acks = self.ledger.consume_pending_acks(); + if consumed_acks > 0 { + self.record_acks.add_acknowledgements(consumed_acks); + + while let Some(EligibleMarker { len, data, .. }) = + self.record_acks.get_next_eligible_marker() + { + had_eligible_records = true; + + match len { + // Any marker with an assumed length implies a gap marker, which gets added + // automatically and represents a portion of the record ID range that was + // expected but missing. This is a long way of saying: we're missing records. + // + // We tally this up so that we can emit a single log event/set of metrics, as + // there may be many gap markers and emitting for each of them could be very noisy. + EligibleMarkerLength::Assumed(count) => { + events_skipped = events_skipped + .checked_add(count) + .expect("skipping more than 2^64 events at a time is obviously a bug"); + } + // We got a valid marker representing a known number of events. + EligibleMarkerLength::Known(len) => { + // We specifically pass the size of the record, in bytes, as the marker data. + let record_bytes = data.expect("record bytes should always be known"); + + records_acknowledged = records_acknowledged.checked_add(1).expect( + "acknowledging more than 2^64 records at a time is obviously a bug", + ); + events_acknowledged = events_acknowledged.checked_add(len).expect( + "acknowledging more than 2^64 events at a time is obviously a bug", + ); + bytes_acknowledged = bytes_acknowledged.checked_add(record_bytes).expect( + "acknowledging more than 2^64 bytes at a time is obviously a bug", + ); + } + } + } + + // We successfully processed at least one record, so update our buffer and ledger accounting. + if had_eligible_records { + self.ledger + .track_reads(events_acknowledged, bytes_acknowledged); + + // We need to account for skipped events, too, so that our "last reader record ID" + // value stays correct as we process these gap markers. + let last_increment_amount = events_acknowledged + events_skipped; + self.ledger + .state() + .increment_last_reader_record_id(last_increment_amount); + + self.data_file_acks + .add_acknowledgements(records_acknowledged); + } + + // If any events were skipped, do our logging/metrics for that. + if events_skipped > 0 { + self.ledger.track_dropped_events(events_skipped); + } + } + + // If we processed any eligible records, we may now also have eligible data files. + // + // Alternatively, the core `next` logic may have just rolled over to a new data file, and + // we're seeing if we can fast track any eligible data file deletions rather than waiting + // for more acknowledgements to come in. + let mut had_eligible_data_files = false; + let mut data_files_deleted: u16 = 0; + + if had_eligible_records || force_check_pending_data_files { + // Now handle data file deletion. We unconditionally check to see if any data files are + // eligible for deletion, and process them immediately. + + while let Some(EligibleMarker { data, .. }) = + self.data_file_acks.get_next_eligible_marker() + { + had_eligible_data_files = true; + + let (data_file_path, bytes_read) = + data.expect("data file deletion marker should never be empty"); + self.delete_completed_data_file(data_file_path, Some(bytes_read)) + .await?; + + data_files_deleted = data_files_deleted + .checked_add(1) + .expect("deleting more than 2^16 data files at a time is obviously a bug"); + } + } + + // If we managed to processed any records _or_ any data file deletions, we've made + // meaningful progress that writers may care about, so notify them. + if had_eligible_data_files || had_eligible_records { + self.ledger.notify_reader_waiters(); + + if self.ready_to_read { + trace!( + current_buffer_size = self.ledger.get_total_buffer_size(), + records_acknowledged, + events_acknowledged, + events_skipped, + bytes_acknowledged, + data_files_deleted, + "Finished handling acknowledgements." + ); + } + } + + Ok(()) + } + + /// Switches the reader over to the next data file to read. + #[cfg_attr(test, instrument(skip(self), level = "debug"))] + fn roll_to_next_data_file(&mut self) { + // Add a marker for this data file so we know when it can be safely deleted. We also need + // to track the necessary data to do our buffer accounting when it's eligible for deletion. + // + // In the rare case where the very first read in a new data file is corrupted/invalid and we + // roll to the next data file, we simply use the last reader record ID we have, which yields + // a marker with a length of 0. + let data_file_start_record_id = self + .data_file_start_record_id + .take() + .unwrap_or(self.last_reader_record_id); + // Record IDs are inclusive, so if last is 1 and start is 0, that means we had two events, + // potentially from one or two records. + let data_file_event_count = self + .last_reader_record_id + .wrapping_sub(data_file_start_record_id) + .saturating_add(1); + let data_file_record_count = self.data_file_record_count; + let data_file_path = self.ledger.get_current_reader_data_file_path(); + let bytes_read = self.bytes_read; + + debug!( + data_file_path = data_file_path.to_string_lossy().as_ref(), + first_record_id = data_file_start_record_id, + last_record_id = self.last_reader_record_id, + record_count = data_file_record_count, + event_count = data_file_event_count, + bytes_read, + "Marking data file for deletion." + ); + + let data_file_marker_id = self.data_file_marked_record_count; + self.data_file_marked_record_count += data_file_record_count; + self.data_file_record_count = 0; + + self.data_file_acks + .add_marker( + data_file_marker_id, + Some(data_file_record_count), + Some((data_file_path, bytes_read)), + ) + .expect("should not fail to add marker for data file deletion"); + + // Now reset our internal state so we can go for the next data file. + self.reset(); + self.ledger.increment_unacked_reader_file_id(); + + debug!("Rolling to next data file."); + } + + /// Ensures this reader is ready to attempt reading the next record. + #[cfg_attr(test, instrument(skip(self), level = "debug"))] + async fn ensure_ready_for_read(&mut self) -> io::Result<()> { + // We have nothing to do if we already have a data file open. + if self.reader.is_some() { + return Ok(()); + } + + // Try to open the current reader data file. This might not _yet_ exist, in which case + // we'll simply wait for the writer to signal to us that progress has been made, which + // implies a data file existing. + loop { + let (reader_file_id, writer_file_id) = self.ledger.get_current_reader_writer_file_id(); + let data_file_path = self.ledger.get_current_reader_data_file_path(); + let data_file = match self + .ledger + .filesystem() + .open_file_readable(&data_file_path) + .await + { + Ok(data_file) => data_file, + Err(e) => match e.kind() { + ErrorKind::NotFound => { + if reader_file_id == writer_file_id { + debug!( + data_file_path = data_file_path.to_string_lossy().as_ref(), + "Data file does not yet exist. Waiting for writer to create." + ); + self.ledger.wait_for_writer().await; + } else { + self.ledger.increment_acked_reader_file_id(); + } + continue; + } + // This is a valid I/O error, so bubble that back up. + _ => return Err(e), + }, + }; + + debug!( + data_file_path = data_file_path.to_string_lossy().as_ref(), + "Opened data file for reading." + ); + + self.reader = Some(RecordReader::new(data_file)); + return Ok(()); + } + } + + /// Seeks to where this reader previously left off. + /// + /// In cases where Vector has restarted, but the reader hasn't yet finished a file, we would + /// open the correct data file for reading, but our file cursor would be at the very + /// beginning, essentially pointed at the wrong record. We read out records here until we + /// reach a point where we've read up to the record referenced by `get_last_reader_record_id`. + /// + /// This ensures that a subsequent call to `next` is ready to read the correct record. + /// + /// # Errors + /// + /// If an error occurs during seeking to the next record, an error variant will be returned + /// describing the error. + #[cfg_attr(test, instrument(skip(self), level = "debug"))] + pub(super) async fn seek_to_next_record(&mut self) -> Result<(), ReaderError> { + // We don't try seeking again once we're all caught up. + if self.ready_to_read { + warn!("Reader already initialized."); + return Ok(()); + } + + // We rely on `next` to close out the data file if we've actually reached the end, and we + // also rely on it to reset the data file before trying to read, and we _also_ rely on it to + // update `self.last_reader_record_id`, so basically... just keep reading records until we + // get to the one we left off with last time. + let ledger_last = self.ledger.state().get_last_reader_record_id(); + debug!( + last_acknowledged_record_id = ledger_last, + "Seeking to last acknowledged record for reader." + ); + + // We may end up in a situation where a data file hasn't yet been deleted but we've moved on + // to the next data file, including reading acknowledging records within it. If Vector + // is stopped at a point like this, and we restart it and load the buffer, we'll start on + // the old data file. That's wasteful to read all over again. + // + // In our seek loop, we have a fast path where we check the last record of a data file while + // the reader and writer file IDs don't match. If we see that the record is still below the + // last reader record ID, we do the necessary clean up to delete that file and move to the + // next file. This is safe because we know that if we managed to acknowledge records with + // an ID higher than the highest record ID in the data file, it was meant to have been + // deleted. + // + // Once the reader/writer file IDs are identical, we fall back to the slow path. + while self.ledger.get_current_reader_file_id() != self.ledger.get_current_writer_file_id() { + let data_file_path = self.ledger.get_current_reader_data_file_path(); + self.ensure_ready_for_read().await.context(IoSnafu)?; + let data_file_mmap = self + .ledger + .filesystem() + .open_mmap_readable(&data_file_path) + .await + .context(IoSnafu)?; + + match validate_record_archive(data_file_mmap.as_ref(), &Hasher::new()) { + RecordStatus::Valid { + id: last_record_id, .. + } => { + let record = try_as_record_archive(data_file_mmap.as_ref()) + .expect("record was already validated"); + + let Ok(item) = decode_record_payload::(record) else { + // If there's an error decoding the item, just fall back to the slow path, + // because this file might actually be where we left off, so we don't want + // to incorrectly skip ahead or anything. + break; + }; + + // We have to remove 1 from the event count here because otherwise the ID would + // be the _next_ record's ID we'd expect, not the last ID of the record we are + // acknowledged up to. (Record IDs start at N and consume up to N+M-1 where M is + // the number of events in the record, which is how we can determine the event + // count from the record IDs alone, without having to read every record in the + // buffer during startup.) + let record_events = u64::try_from(item.event_count()) + .expect("event count should never exceed u64"); + let last_record_id_in_data_file = + last_record_id.wrapping_add(record_events.saturating_sub(1)); + + // If we're past this data file, delete it and move on. We do this manually + // versus faking it via `roll_to_next_data_file` because that emits a deletion + // marker, but the internal state tracking first/last record ID, bytes read, + // etc, won't actually be usable. + if ledger_last > last_record_id_in_data_file { + // By passing 0 bytes, `delete_completed_data_file` does the work of + // ensuring the buffer size is updated to reflect the data file being + // deleted in its entirety. + self.delete_completed_data_file(data_file_path, None) + .await + .context(IoSnafu)?; + self.reset(); + } else { + // We've hit a point where the current data file we're on has records newer + // than where we left off, so we can catch up from here. + break; + } + } + // Similar to the comment above about when decoding fails, we fallback to the slow + // path in case any error is encountered, lest we risk incorrectly skipping ahead to + // the wrong data file. + _ => break, + } + } + + // We rely on `next` to close out the data file if we've actually reached the end, and we + // also rely on it to reset the data file before trying to read, and we _also_ rely on it to + // update `self.last_reader_record_id`, so basically... just keep reading records until + // we're past the last record we had acknowledged. + while self.last_reader_record_id < ledger_last { + match self.next().await { + Ok(maybe_record) => { + if maybe_record.is_none() { + // We've hit the end of the current data file so we've gone as far as we can. + break; + } + } + Err(e) if e.is_bad_read() => { + // If we hit a bad read during initialization, we should only continue calling + // `next` if we have not advanced _past_ the writer in terms of file ID. + // + // If the writer saw the same error we just saw, it will have rolled itself to + // the next file, lazily: for example, it discovers a bad record at the end of + // file ID 3, so it marks itself to open file ID 4 next, but hasn't yet + // created it, and is still technically indicated as being on file ID 3. + // + // Meanwhile, if _we_ try to also roll to file ID 4 and read from it, we'll deadlock + // ourselves because it doesn't yet exist. However, `next` immediately updates our + // reader file ID as soon as it hits a bad read error, so in this scenario, + // we're now marked as being on file ID 4 while the writer is still on file ID + // 3. + // + // From that, we can determine that when we've hit a bad read error, that if our + // file ID is greater than the writer's file ID, we're now essentially + // synchronized. + let (reader_file_id, writer_file_id) = + self.ledger.get_current_reader_writer_file_id(); + if reader_file_id > writer_file_id { + break; + } + } + Err(e) => return Err(e), + } + } + + debug!( + last_record_id_read = self.last_reader_record_id, + "Synchronized with ledger. Reader ready." + ); + + self.ready_to_read = true; + + Ok(()) + } + + /// Reads a record. + /// + /// If the writer is closed and there is no more data in the buffer, `None` is returned. + /// Otherwise, reads the next record or waits until the next record is available. + /// + /// # Errors + /// + /// If an error occurred while reading a record, an error variant will be returned describing + /// the error. + #[cfg_attr(test, instrument(skip(self), level = "trace"))] + pub async fn next(&mut self) -> Result, ReaderError> { + let mut force_check_pending_data_files = false; + + let token = loop { + // Handle any pending acknowledgements first. + self.handle_pending_acknowledgements(force_check_pending_data_files) + .await + .context(IoSnafu)?; + force_check_pending_data_files = false; + + // If the writer has marked themselves as done, and the buffer has been emptied, then + // we're done and can return. We have to look at something besides simply the writer + // being marked as done to know if we're actually done or not, and "buffer size" is better + // than "total records" because we update buffer size when handling acknowledgements, + // whether it's an individual ack or an entire file being deleted. + // + // If we used "total records", we could end up stuck in cases where we skipped + // corrupted records, but hadn't yet had a "good" record that we could read, since the + // "we skipped records due to corruption" logic requires performing valid read to + // detect, and calculate a valid delta from. + if self.ledger.is_writer_done() { + let total_buffer_size = self.ledger.get_total_buffer_size(); + if total_buffer_size == 0 { + return Ok(None); + } + } + + self.ensure_ready_for_read().await.context(IoSnafu)?; + + let reader = self + .reader + .as_mut() + .expect("reader should exist after `ensure_ready_for_read`"); + + let (reader_file_id, writer_file_id) = self.ledger.get_current_reader_writer_file_id(); + + // Essentially: is the writer still writing to this data file or not, and are we + // actually ready to read (aka initialized)? + // + // This is a necessary invariant to understand if the record reader should actually keep + // waiting for data, or if a data file had a partial write/missing data and should be + // skipped. In particular, not only does this matter for deadlocking during shutdown due + // to improper writer behavior/flushing, but it also matters during initialization in + // case where the current data file had a partial write. + let is_finalized = (reader_file_id != writer_file_id) || !self.ready_to_read; + + // Try reading a record, which if successful, gives us a token to actually read/get a + // reference to the record. This is a slightly-tricky song-and-dance due to rustc not + // yet fully understanding mutable borrows when conditional control flow is involved. + match reader.try_next_record(is_finalized).await { + // Not even enough data to read a length delimiter, so we need to wait for the + // writer to signal us that there's some actual data to read. + Ok(None) => {} + // We got a valid record, so keep the token. + Ok(Some(token)) => break token, + // A length-delimited payload was read, but we failed to deserialize it as a valid + // record, or we deserialized it and the checksum was invalid. Either way, we're not + // sure the rest of the data file is even valid, so roll to the next file. + // + // TODO: Explore the concept of putting a data file into a "one more attempt to read + // a valid record" state, almost like a semi-open circuit breaker. There's a + // possibility that the length delimiter we got is valid, and all the data was + // written for the record, but the data was invalid... and that if we just kept + // reading, we might actually encounter a valid record. + // + // Theoretically, based on both the validation done by `rkyv` and the checksum, it + // should be incredibly unlikely to read a valid record after getting a + // corrupted record if there was missing data or more invalid data. We use + // checksumming to assert errors within a given chunk of the payload, so one payload + // being corrupted doesn't always, in fact, mean that other records after it are + // corrupted too. + Err(e) => { + // Invalid checksums and deserialization failures can't really be acted upon by + // the caller, but they might be expecting a read-after-write behavior, so we + // return the error to them after ensuring that we roll to the next file first. + if e.is_bad_read() { + self.roll_to_next_data_file(); + } + + return Err(e); + } + }; + + // Fundamentally, when `try_read_record` returns `None`, there's three possible + // scenarios: + // + // 1. we are entirely caught up to the writer + // 2. we've hit the end of the data file and need to go to the next one + // 3. the writer has closed/dropped/finished/etc + // + // When we're at this point, we check the reader/writer file IDs. If the file IDs are + // not identical, we now know the writer has moved on. Crucially, since we always flush + // our writes before waking up, including before moving to a new file, then we know that + // if the reader/writer were not identical at the start the loop, and `try_read_record` + // returned `None`, that we have hit the actual end of the reader's current data file, + // and need to move on. + // + // If the file IDs were identical, it would imply that reader is still on the writer's + // current data file. We then "wait" for the writer to wake us up. It may lead to the + // same thing -- `try_read_record` returning `None` with an identical reader/writer file + // ID -- but that's OK, because it would mean we were actually waiting for the writer to + // make progress now. If the wake-up was valid, due to writer progress, then, well... + // we'd actually be able to read data. + // + // The case of "the writer has closed/dropped/finished/etc" is handled at the top of the + // loop, because otherwise we could get stuck waiting for the writer after an empty + // `try_read_record` attempt when the writer is done and we're at the end of the file, + // etc. + if self.ready_to_read { + if reader_file_id != writer_file_id { + debug!( + reader_file_id, + writer_file_id, "Reached the end of current data file." + ); + + self.roll_to_next_data_file(); + force_check_pending_data_files = true; + continue; + } + + self.ledger.wait_for_writer().await; + } else { + debug!( + bytes_read = self.bytes_read, + "Current data file has no more data." + ); + + if reader_file_id == writer_file_id { + // We're currently just seeking to where we left off the last time this buffer was + // running, which might mean there's no records for us to read at all because we + // were already caught up. All we can do is signal to `seek_to_next_record` that + // we're caught up. + return Ok(None); + } + } + }; + + // We got a read token, so our record is present in the reader, and now we can actually read + // it out and return it. + let record_id = token.record_id(); + let record_bytes = token.record_bytes() as u64; + + let reader = self + .reader + .as_mut() + .expect("reader should exist after `ensure_ready_for_read`"); + let mut record = reader.read_record(token)?; + + let record_events: u64 = record + .event_count() + .try_into() + .expect("Event count for a record cannot exceed 2^64 events."); + let record_events = record_events + .try_into() + .map_err(|_| ReaderError::EmptyRecord)?; + self.track_read(record_id, record_bytes, record_events); + + let (batch, receiver) = BatchNotifier::new_with_receiver(); + record.add_batch_notifier(batch); + self.finalizer.add(record_events.get(), receiver); + + if self.ready_to_read { + trace!( + record_id, + record_events, + record_bytes, + data_file_id = self.ledger.get_current_reader_file_id(), + "Read record." + ); + } + + Ok(Some(record)) + } +} + +pub(crate) fn decode_record_payload( + record: &ArchivedRecord<'_>, +) -> Result> { + // Try and convert the raw record metadata into the true metadata type used by `T`, and then + // also verify that `T` is able to decode records with the metadata used for this record in particular. + let metadata = T::Metadata::from_u32(record.metadata()).ok_or(ReaderError::Incompatible { + reason: format!("invalid metadata for {}", std::any::type_name::()), + })?; + + if !T::can_decode(metadata) { + return Err(ReaderError::Incompatible { + reason: format!( + "record metadata not supported (metadata: {:#036b})", + record.metadata() + ), + }); + } + + // Now we can finally try decoding. + T::decode(metadata, record.payload()).context(DecodeSnafu) +} diff --git a/lib/vector-buffers/src/variants/disk_v2/record.rs b/lib/vector-buffers/src/variants/disk_v2/record.rs new file mode 100644 index 0000000000000..3cf55458c1120 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/record.rs @@ -0,0 +1,193 @@ +use std::{mem, ptr::addr_of}; + +use bytecheck::{CheckBytes, ErrorBox, StructCheckError}; +use crc32fast::Hasher; +use rkyv::{ + boxed::ArchivedBox, + with::{CopyOptimize, RefAsBox}, + Archive, Archived, Serialize, +}; + +use super::{ + common::align16, + ser::{try_as_archive, DeserializeError}, +}; + +pub const RECORD_HEADER_LEN: usize = align16(mem::size_of::>() + 8); + +/// Result of checking if a buffer contained a valid record. +pub enum RecordStatus { + /// The record was able to be read from the buffer, and the checksum is valid. + /// + /// Contains the ID for the given record, as well as the metadata. + Valid { id: u64 }, + /// The record was able to be read from the buffer, but the checksum was not valid. + Corrupted { calculated: u32, actual: u32 }, + /// The record was not able to be read from the buffer due to an error during deserialization. + FailedDeserialization(DeserializeError), +} + +/// Record container. +/// +/// [`Record`] encapsulates the encoded form of a record written into the buffer. It is a simple wrapper that +/// carries only the necessary metadata: the record checksum, and a record ID used internally for +/// properly tracking the state of the reader and writer. +/// +/// # Warning +/// +/// - Do not add fields to this struct. +/// - Do not remove fields from this struct. +/// - Do not change the type of fields in this struct. +/// - Do not change the order of fields this struct. +/// +/// Doing so will change the serialized representation. This will break things. +/// +/// Do not do any of the listed things unless you _absolutely_ know what you're doing. :) +#[derive(Archive, Serialize, Debug)] +// Switch back to the derived implementation of CheckBytes once the upstream ICE issue is fixed. +// +// Upstream issue: https://github.com/rkyv/rkyv/issues/221 +//#[archive_attr(derive(CheckBytes))] +pub struct Record<'a> { + /// The checksum of the record. + /// + /// The checksum is CRC32C(BE(id) + BE(metadata) + payload), where BE(x) returns a byte slice of + /// the given integer in big endian format. + pub(super) checksum: u32, + + /// The record ID. + /// + /// This is monotonic across records. + id: u64, + + /// The record metadata. + /// + /// Based on `Encodable::Metadata`. + pub(super) metadata: u32, + + /// The record payload. + /// + /// This is the encoded form of the actual record itself. + #[with(CopyOptimize, RefAsBox)] + payload: &'a [u8], +} + +// Manual implementation of CheckBytes required as the derived version currently causes an internal +// compiler error. +// +// Upstream issue: https://github.com/rkyv/rkyv/issues/221 +impl<'a, C: ?Sized> CheckBytes for ArchivedRecord<'a> +where + rkyv::with::With<&'a [u8], RefAsBox>: Archive>, + ArchivedBox<[u8]>: CheckBytes, +{ + type Error = StructCheckError; + unsafe fn check_bytes<'b>( + value: *const Self, + context: &mut C, + ) -> Result<&'b Self, Self::Error> { + Archived::::check_bytes(addr_of!((*value).checksum), context).map_err(|e| { + StructCheckError { + field_name: "checksum", + inner: ErrorBox::new(e), + } + })?; + Archived::::check_bytes(addr_of!((*value).id), context).map_err(|e| { + StructCheckError { + field_name: "id", + inner: ErrorBox::new(e), + } + })?; + Archived::::check_bytes(addr_of!((*value).metadata), context).map_err(|e| { + StructCheckError { + field_name: "schema_metadata", + inner: ErrorBox::new(e), + } + })?; + ArchivedBox::<[u8]>::check_bytes(addr_of!((*value).payload), context).map_err(|e| { + StructCheckError { + field_name: "payload", + inner: ErrorBox::new(e), + } + })?; + Ok(&*value) + } +} + +impl<'a> Record<'a> { + /// Creates a [`Record`] from the ID and payload, and calculates the checksum. + pub fn with_checksum(id: u64, metadata: u32, payload: &'a [u8], checksummer: &Hasher) -> Self { + let checksum = generate_checksum(checksummer, id, metadata, payload); + Self { + checksum, + id, + metadata, + payload, + } + } +} + +impl ArchivedRecord<'_> { + /// Gets the metadata of this record. + pub fn metadata(&self) -> u32 { + self.metadata + } + + /// Gets the payload of this record. + pub fn payload(&self) -> &[u8] { + &self.payload + } + + /// Verifies if the stored checksum of this record matches the record itself. + pub fn verify_checksum(&self, checksummer: &Hasher) -> RecordStatus { + let calculated = generate_checksum(checksummer, self.id, self.metadata, &self.payload); + if self.checksum == calculated { + RecordStatus::Valid { id: self.id } + } else { + RecordStatus::Corrupted { + calculated, + actual: self.checksum, + } + } + } +} + +fn generate_checksum(checksummer: &Hasher, id: u64, metadata: u32, payload: &[u8]) -> u32 { + let mut checksummer = checksummer.clone(); + checksummer.reset(); + + checksummer.update(&id.to_be_bytes()[..]); + checksummer.update(&metadata.to_be_bytes()[..]); + checksummer.update(payload); + checksummer.finalize() +} + +/// Checks whether the given buffer contains a valid [`Record`] archive. +/// +/// The record archive is assumed to have been serialized as the very last item in `buf`, and +/// it is also assumed that the provided `buf` has an alignment of 8 bytes. +/// +/// If a record archive was able to be read from the buffer, then the status will indicate whether +/// or not the checksum in the record matched the recalculated checksum. Otherwise, the +/// deserialization error encountered will be provided, which describes the error in a more verbose, +/// debugging-oriented fashion. +#[cfg_attr(test, instrument(skip_all, level = "trace"))] +pub fn validate_record_archive(buf: &[u8], checksummer: &Hasher) -> RecordStatus { + match try_as_record_archive(buf) { + Ok(archive) => archive.verify_checksum(checksummer), + Err(e) => RecordStatus::FailedDeserialization(e), + } +} + +/// Attempts to deserialize an archived record from the given buffer. +/// +/// The record archive is assumed to have been serialized as the very last item in `buf`, and +/// it is also assumed that the provided `buf` has an alignment of 16 bytes. +/// +/// If a record archive was able to be read from the buffer, then a reference to its archived form +/// will be returned. Otherwise, the deserialization error encountered will be provided, which describes the error in a more verbose, +/// debugging-oriented fashion. +#[cfg_attr(test, instrument(skip_all, level = "trace"))] +pub fn try_as_record_archive(buf: &[u8]) -> Result<&ArchivedRecord<'_>, DeserializeError> { + try_as_archive::>(buf) +} diff --git a/lib/vector-buffers/src/variants/disk_v2/ser.rs b/lib/vector-buffers/src/variants/disk_v2/ser.rs new file mode 100644 index 0000000000000..b751c2cfa4fe6 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/ser.rs @@ -0,0 +1,96 @@ +use std::fmt; + +use bytecheck::CheckBytes; +use rkyv::{ + check_archived_root, + validation::{validators::DefaultValidator, CheckArchiveError}, + Archive, +}; + +/// Error that occurred during serialization. +#[derive(Debug)] +pub enum SerializeError { + /// The type failed to be serialized correctly. + FailedToSerialize(String), + + /// The backing store was not big enough to fit the serialized version of the value. + /// + /// The original value that was given is returned, along with the minimum size that the backing + /// store must be sized to hold the serialized value. Providing a backing store that is larger + /// than the given value is acceptable, but not necessary. + BackingStoreTooSmall(T, usize), +} + +/// Error that occurred during deserialization. +#[derive(Debug)] +pub enum DeserializeError { + /// The data in the backing store does not represent the archive type as whole. + /// + /// This error is primarily indicative of not having enough data present, which is often a + /// signal that the type represented by the bytes in the backing store and the incoming archive + /// type are either entirely different, or that the structure of the type has changed: addition + /// or removal of fields, reordering of fields, etc. + /// + /// The backing store that was given is returned, along with an error string that briefly + /// describes the error in a more verbose fashion, suitable for debugging. + InvalidStructure(String), + + /// Some of the data in the backing store cannot represent a particular field in the archive type. + /// + /// This would typically occur if the data read for a particular field could not specifically + /// represent that type. For example, a boolean is encoded as a single byte with a 0 or 1 as + /// the value, so a value between 2 and 255 is inherently invalid for representing a boolean. + /// + /// This can be a subtle difference from `InvalidStructure`, but is primarily indicative of + /// in-place data corruption, or data being overwritten by an outside process. + /// + /// The backing store that was given is returned, along with an error string that briefly + /// describes the error in a more verbose fashion, suitable for debugging. + InvalidData(String), +} + +impl DeserializeError { + /// Consumes this error and returns the stringified error reason. + pub fn into_inner(self) -> String { + match self { + DeserializeError::InvalidData(s) => format!("invalid data: {s}"), + DeserializeError::InvalidStructure(s) => format!("invalid structure: {s}"), + } + } +} + +impl From> for DeserializeError +where + T: fmt::Display, + C: fmt::Display, +{ + fn from(e: CheckArchiveError) -> Self { + match e { + CheckArchiveError::ContextError(ce) => { + DeserializeError::InvalidStructure(ce.to_string()) + } + CheckArchiveError::CheckBytesError(cbe) => { + DeserializeError::InvalidData(cbe.to_string()) + } + } + } +} + +/// Tries to deserialize the given buffer as the archival type `T`. +/// +/// The archived type is assumed to exist starting at index 0 of the buffer. Additionally, the +/// archived value is checked for data conformance. +/// +/// # Errors +/// +/// If the buffer does not contained an archived `T`, or there was an issue with too little data, or +/// invalid values, etc, then an error variant will be emitted. The error will describe the +/// high-level error, as well as provide a string with a more verbose explanation of the error. +pub fn try_as_archive<'a, T>(buf: &'a [u8]) -> Result<&'a T::Archived, DeserializeError> +where + T: Archive, + T::Archived: for<'b> CheckBytes>, +{ + debug_assert!(!buf.is_empty()); + check_archived_root::(buf).map_err(Into::into) +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/acknowledgements.rs b/lib/vector-buffers/src/variants/disk_v2/tests/acknowledgements.rs new file mode 100644 index 0000000000000..437bf1c58a31c --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/acknowledgements.rs @@ -0,0 +1,85 @@ +use std::sync::Arc; + +use tokio_test::{assert_pending, assert_ready, task::spawn}; +use vector_common::finalization::{BatchNotifier, EventFinalizer, EventStatus}; + +use crate::{ + buffer_usage_data::BufferUsageHandle, + test::with_temp_dir, + variants::disk_v2::{ledger::Ledger, DiskBufferConfigBuilder}, +}; + +pub(crate) async fn acknowledge(batch: BatchNotifier) { + let finalizer = EventFinalizer::new(batch); + finalizer.update_status(EventStatus::Delivered); + drop(finalizer); // This sends the status update + tokio::task::yield_now().await; +} + +#[tokio::test] +async fn ack_updates_ledger_correctly() { + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a standalone ledger. + let usage_handle = BufferUsageHandle::noop(); + let config = DiskBufferConfigBuilder::from_path(data_dir) + .build() + .expect("creating buffer should not fail"); + let ledger = Ledger::load_or_create(config, usage_handle) + .await + .expect("ledger should not fail to load/create"); + assert_eq!(ledger.consume_pending_acks(), 0); + + // Create our ledger, and make sure it's empty. + let ledger = Arc::new(ledger); + let finalizer = Arc::clone(&ledger).spawn_finalizer(); + assert_eq!(ledger.consume_pending_acks(), 0); + + // Now make sure it updates pending acks. + let (batch, receiver) = BatchNotifier::new_with_receiver(); + finalizer.add(42, receiver); + acknowledge(batch).await; + assert_eq!(ledger.consume_pending_acks(), 42); + assert_eq!(ledger.consume_pending_acks(), 0); + } + }) + .await; +} + +#[tokio::test] +async fn ack_wakes_reader() { + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a standalone ledger. + let usage_handle = BufferUsageHandle::noop(); + let config = DiskBufferConfigBuilder::from_path(data_dir) + .build() + .expect("creating buffer should not fail"); + let ledger = Ledger::load_or_create(config, usage_handle) + .await + .expect("ledger should not fail to load/create"); + + // Create our ledger, as well as a future for awaiting + // writer progress, and make sure it's not yet woken up. + let ledger = Arc::new(ledger); + let finalizer = Arc::clone(&ledger).spawn_finalizer(); + + let mut wait_for_writer = spawn(ledger.wait_for_writer()); + assert_pending!(wait_for_writer.poll()); + assert!(!wait_for_writer.is_woken()); + + // Now fire off an acknowledgement, and make sure our call woke up and can complete. + let (batch, receiver) = BatchNotifier::new_with_receiver(); + finalizer.add(1, receiver); + acknowledge(batch).await; + + assert!(wait_for_writer.is_woken()); + assert_ready!(wait_for_writer.poll()); + } + }) + .await; +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/basic.rs b/lib/vector-buffers/src/variants/disk_v2/tests/basic.rs new file mode 100644 index 0000000000000..781e30ad5b217 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/basic.rs @@ -0,0 +1,232 @@ +use std::io::Cursor; + +use futures::{stream, StreamExt}; +use tokio_test::{assert_pending, assert_ready, task::spawn}; +use tracing::Instrument; +use vector_common::finalization::Finalizable; + +use super::{create_default_buffer_v2, read_next, read_next_some}; +use crate::{ + assert_buffer_is_empty, assert_buffer_records, + test::{acknowledge, install_tracing_helpers, with_temp_dir, MultiEventRecord, SizedRecord}, + variants::disk_v2::{tests::create_default_buffer_v2_with_usage, writer::RecordWriter}, + EventCount, +}; + +#[tokio::test] +async fn basic_read_write_loop() { + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a regular buffer, no customizations required. + let (mut writer, mut reader, ledger) = create_default_buffer_v2(data_dir).await; + assert_buffer_is_empty!(ledger); + + let expected_items = (512..768) + .cycle() + .take(10) + .map(SizedRecord::new) + .collect::>(); + let input_items = expected_items.clone(); + + // Now create a reader and writer task that will take a set of input messages, buffer + // them, read them out, and then make sure nothing was missed. + let write_task = tokio::spawn(async move { + for item in input_items { + writer + .write_record(item) + .await + .expect("write should not fail"); + } + writer.flush().await.expect("writer flush should not fail"); + writer.close(); + }); + + let read_task = tokio::spawn(async move { + let mut items = Vec::new(); + while let Some(mut record) = read_next(&mut reader).await { + acknowledge(record.take_finalizers()).await; + items.push(record); + } + items + }); + + // Wait for both tasks to complete. + write_task.await.expect("write task should not panic"); + let actual_items = read_task.await.expect("read task should not panic"); + + // All records should be consumed at this point. + assert_buffer_is_empty!(ledger); + + // Make sure we got the right items. + assert_eq!(actual_items, expected_items); + } + }) + .await; +} + +#[tokio::test] +async fn reader_exits_cleanly_when_writer_done_and_in_flight_acks() { + let assertion_registry = install_tracing_helpers(); + + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a regular buffer, no customizations required. + let (mut writer, mut reader, ledger) = create_default_buffer_v2(data_dir).await; + assert_buffer_is_empty!(ledger); + + // Now write a single value and close the writer. + writer + .write_record(SizedRecord::new(32)) + .await + .expect("write should not fail"); + writer.flush().await.expect("writer flush should not fail"); + writer.close(); + assert_buffer_records!(ledger, 1); + + // And read that single value. + let first_read = read_next_some(&mut reader).await; + assert_eq!(first_read, SizedRecord::new(32)); + assert_buffer_records!(ledger, 1); + + // Now, we haven't acknowledged that read yet, so our next read should see the writer as + // done but the total buffer size as >= 0, which means it has to wait for something, + // which in this case is going to be the wakeup after we acknowledge the read. + // + // We have to poll until we hit the `wait_for_writer` call because there might be + // wake-ups in between due to the actual file I/O calls we do in the `next` call waking + // us up. + // + // Why do we need to make sure we enter `wait_for_writer` twice? When the writer + // closes, it always sends a wakeup in case there's a reader that's been (correctly) + // waiting for new data. When we do our first read here, there's data to be read, so + // the reader never has to actually wait for the writer to make progress because it + // doesn't yet think it's out of data. + // + // When we do the first poll of the second read, we will call `wait_for_writer` which + // has a stored wakeup, which will let it proceed with another loop iteration, landing + // it at the second call which is the one that causes it to actually block. + let waiting_for_writer = assertion_registry + .build() + .with_name("wait_for_writer") + .with_parent_name("reader_exits_cleanly_when_writer_done_and_in_flight_acks") + .was_entered_at_least(2) + .finalize(); + let mut blocked_read = spawn(reader.next()); + while !waiting_for_writer.try_assert() { + assert_pending!(blocked_read.poll()); + } + + // Now acknowledge the first read, which should wake up our blocked read. + acknowledge(first_read).await; + + // Our blocked read should be woken up, and when we poll it, it should be also be ready, + // albeit with a return value of `None`... because the writer is closed, and we read all + // the records, so nothing is left. :) + assert!(blocked_read.is_woken()); + let second_read = assert_ready!(blocked_read.poll()); + assert_eq!(second_read.expect("read should not fail"), None); + + // All records should be consumed at this point. + assert_buffer_is_empty!(ledger); + } + }); + + let parent = trace_span!("reader_exits_cleanly_when_writer_done_and_in_flight_acks"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn initial_size_correct_with_multievents() { + let _a = install_tracing_helpers(); + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a regular buffer, no customizations required. + let (mut writer, _, _) = create_default_buffer_v2(data_dir.clone()).await; + + let input_items = (512..768) + .cycle() + .take(2000) + .map(MultiEventRecord::new) + .collect::>(); + let expected_records = input_items.len(); + let expected_events = input_items + .iter() + .map(EventCount::event_count) + .sum::(); + + // We also directly create a record writer so we can simulate actually + // encoding/archiving the record to get the true on-disk size, as that's what we report + // to the buffer usage handle but not anything we have access to from the outside. + // + // Technically, we aggregate the bytes written value from each write, but we also want + // to verify that is accurate, so we record each record by hand to make sure our totals + // are identical: + let expected_bytes = stream::iter(input_items.iter().cloned()) + .filter_map(|record| async move { + let mut record_writer = + RecordWriter::new(Cursor::new(Vec::new()), 0, 16_384, u64::MAX, usize::MAX); + let (bytes_written, flush_result) = record_writer + .write_record(0, record) + .await + .expect("record writing should not fail"); + record_writer.flush().await.expect("flush should not fail"); + let inner_buf_len = record_writer.get_ref().get_ref().len(); + + // The bytes that it reports writing should be identical to what the underlying + // write buffer has, since this is a fresh record writer. + assert_eq!(bytes_written, inner_buf_len); + assert_eq!(flush_result, None); + + Some(inner_buf_len) + }) + .fold(0, |acc, n| async move { acc + n }) + .await; + + // Write a bunch of records so the buffer has events when we reload it. + let mut total_bytes_written = 0; + for item in input_items { + let bytes_written = writer + .write_record(item) + .await + .expect("write should not fail"); + total_bytes_written += bytes_written; + } + writer.flush().await.expect("writer flush should not fail"); + writer.close(); + + // Now drop our buffer and reopen it. + drop(writer); + let (writer, mut reader, ledger, usage) = + create_default_buffer_v2_with_usage::<_, MultiEventRecord>(data_dir).await; + drop(writer); + + // Make sure our usage data agrees with our expected event count and byte size: + let snapshot = usage.snapshot(); + assert_eq!(expected_events as u64, snapshot.received_event_count); + assert_eq!(expected_bytes as u64, snapshot.received_byte_size); + assert_eq!(expected_events as u64, ledger.get_total_records()); + assert_eq!(expected_bytes, total_bytes_written); + + // Make sure we can read all of the records we wrote, and recalculate some of these + // values from the source: + let mut total_records_read = 0; + let mut total_record_events = 0; + while let Some(record) = read_next(&mut reader).await { + total_records_read += 1; + let event_count = record.event_count(); + acknowledge(record).await; + total_record_events += event_count; + } + + assert_eq!(expected_events, total_record_events); + assert_eq!(expected_records, total_records_read); + } + }) + .await; +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/initialization.rs b/lib/vector-buffers/src/variants/disk_v2/tests/initialization.rs new file mode 100644 index 0000000000000..217057d3e0c7e --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/initialization.rs @@ -0,0 +1,184 @@ +use std::time::Duration; + +use tokio::time::timeout; +use tracing::Instrument; + +use crate::{ + test::{acknowledge, install_tracing_helpers, with_temp_dir, SizedRecord}, + variants::disk_v2::tests::{create_default_buffer_v2, set_file_length}, +}; + +#[tokio::test] +async fn reader_doesnt_block_from_partial_write_on_last_record() { + // When initializing, the reader will be catching up to the last record it read, which involves + // reading individual records in the current reader data file until a record is returned whose + // record ID matches the "last record ID read" field from the ledger. + // + // However, if the last record read by the reader was never fully synced to disk, we could be + // left with a partial write: enough data to read the length delimiter, but not enough data to + // actually read as many bytes as are indicated by said length delimiter. + // + // This would leave us waiting forever for bytes that will never come, because the writer isn't + // going to do anything, as we're in initialization. + // + // This test ensures that if we hit a partial write during initialization, we correctly avoid + // sitting around forever, waiting for a write that isn't coming. + let _a = install_tracing_helpers(); + + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a regular buffer, no customizations required. + let (mut writer, mut reader, ledger) = create_default_buffer_v2(data_dir.clone()).await; + + // Write a record, and then read it and acknowledge it. This puts the buffer into a + // state where there's data in the current data file, and the ledger has a non-zero + // record ID for where it thinks the reader needs to be. This ensures that the reader + // actually does at least one call to `Reader::next` during `Reader::seek_to_next_record`. + let first_bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("should not fail to write"); + writer.flush().await.expect("flush should not fail"); + writer.close(); + + let first_read = reader + .next() + .await + .expect("should not fail to read record") + .expect("should contain first record"); + assert_eq!(SizedRecord::new(64), first_read); + acknowledge(first_read).await; + + let second_read = reader.next().await.expect("should not fail to read record"); + assert!(second_read.is_none()); + + ledger.flush().expect("should not fail to flush ledger"); + + // Grab the current writer data file path before dropping the buffer. + let data_file_path = ledger.get_current_writer_data_file_path(); + drop(reader); + drop(writer); + drop(ledger); + + // Open the data file and drop the last eight bytes of the record, which will ensure + // that there is less data available to read than the number of bytes indicated by the + // record's length delimiter. + let initial_len = first_bytes_written as u64; + let target_len = initial_len - 8; + set_file_length(&data_file_path, initial_len, target_len) + .await + .expect("should not fail to truncate data file"); + + // Now reopen the buffer, which should complete in a timely fashion without an immediate error. + let reopen = timeout( + Duration::from_millis(500), + create_default_buffer_v2::<_, SizedRecord>(data_dir), + ) + .await; + assert!( + reopen.is_ok(), + "failed to reopen buffer in a timely fashion; likely deadlock" + ); + } + }); + + let parent = trace_span!("reader_doesnt_block_from_partial_write_on_last_record"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn reader_doesnt_block_when_ahead_of_last_record_in_current_data_file() { + // When initializing, the reader will be catching up to the last record it read, which involves + // reading individual records in the current reader data file until a record is returned whose + // record ID matches the "last record ID read" field from the ledger. + // + // If the current data file contains a valid last record when we initialize, but that last + // record is _behind_ the last record read as tracked by the ledger, then we need to ensure we + // can break out of the catch-up loop when we get to the end of the current data file. + // + // Our existing logic for corrupted event detection, and the writer's own initialization logic, + // will emit an error message when we realize that data is missing based on record ID gaps. + let _a = install_tracing_helpers(); + + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a regular buffer, no customizations required. + let (mut writer, mut reader, ledger) = create_default_buffer_v2(data_dir.clone()).await; + + // Write two records, and then read and acknowledge both. + // + // This puts the buffer into a state where there's data in the current data file, and + // the ledger has a non-zero record ID for where it thinks the reader needs to be. This + // ensures that the reader actually does at least two calls to `Reader::next` during + // `Reader::seek_to_next_record`, which is necessary to ensure that the reader leaves + // the default state of `self.last_reader_record_id == 0`. + let first_bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("should not fail to write"); + writer.flush().await.expect("flush should not fail"); + + let second_bytes_written = writer + .write_record(SizedRecord::new(68)) + .await + .expect("should not fail to write"); + writer.flush().await.expect("flush should not fail"); + + writer.close(); + + let first_read = reader + .next() + .await + .expect("should not fail to read record") + .expect("should contain first record"); + assert_eq!(SizedRecord::new(64), first_read); + acknowledge(first_read).await; + + let second_read = reader + .next() + .await + .expect("should not fail to read record") + .expect("should contain first record"); + assert_eq!(SizedRecord::new(68), second_read); + acknowledge(second_read).await; + + let third_read = reader.next().await.expect("should not fail to read record"); + assert!(third_read.is_none()); + + ledger.flush().expect("should not fail to flush ledger"); + + // Grab the current writer data file path before dropping the buffer. + let data_file_path = ledger.get_current_writer_data_file_path(); + drop(reader); + drop(writer); + drop(ledger); + + // Open the data file and truncate the second record. This will ensure that the reader + // hits EOF after the first read, which we need to do in order to exercise the logic + // that breaks out of the loop. + let initial_len = first_bytes_written as u64 + second_bytes_written as u64; + let target_len = first_bytes_written as u64; + set_file_length(&data_file_path, initial_len, target_len) + .await + .expect("should not fail to truncate data file"); + + // Now reopen the buffer, which should complete in a timely fashion without an immediate error. + let reopen = timeout( + Duration::from_millis(500), + create_default_buffer_v2::<_, SizedRecord>(data_dir), + ) + .await; + assert!( + reopen.is_ok(), + "failed to reopen buffer in a timely fashion; likely deadlock" + ); + } + }); + + let parent = trace_span!("reader_doesnt_block_when_ahead_of_last_record_in_current_data_file"); + fut.instrument(parent.or_current()).await; +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/invariants.rs b/lib/vector-buffers/src/variants/disk_v2/tests/invariants.rs new file mode 100644 index 0000000000000..29adb49f17243 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/invariants.rs @@ -0,0 +1,930 @@ +use tokio::{fs::OpenOptions, io::AsyncWriteExt}; +use tokio_test::{assert_pending, assert_ready, task::spawn}; +use tracing::Instrument; + +use super::{create_buffer_v2_with_max_data_file_size, read_next, read_next_some}; +use crate::{ + assert_buffer_is_empty, assert_buffer_records, assert_buffer_size, assert_enough_bytes_written, + assert_reader_last_writer_next_positions, assert_reader_writer_v2_file_positions, + await_timeout, set_data_file_length, + test::{acknowledge, install_tracing_helpers, with_temp_dir, MultiEventRecord, SizedRecord}, + variants::disk_v2::{ + common::{DEFAULT_FLUSH_INTERVAL, MAX_FILE_ID}, + tests::{ + create_buffer_v2_with_write_buffer_size, create_default_buffer_v2, + get_corrected_max_record_size, get_minimum_data_file_size_for_record_payload, + }, + }, + EventCount, +}; + +#[tokio::test] +async fn pending_read_returns_none_when_writer_closed_with_unflushed_write() { + let assertion_registry = install_tracing_helpers(); + + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a normal buffer. + let (mut writer, mut reader, ledger) = create_default_buffer_v2(data_dir.clone()).await; + + // Attempt a read, which should block because there's no data yet. We specifically want + // to make sure we end up waiting for the writer to indicate that we're waiting + // explicitly on the writer making progress of some sort. + let waiting_for_writer = assertion_registry + .build() + .with_name("wait_for_writer") + .with_parent_name( + "pending_read_returns_none_when_writer_closed_with_unflushed_write", + ) + .was_entered() + .finalize(); + + let mut blocked_read = spawn(read_next(&mut reader)); + while !waiting_for_writer.try_assert() { + assert_pending!(blocked_read.poll()); + } + + // Make sure we're fully pending and aren't yet woken. + assert_pending!(blocked_read.poll()); + assert!(!blocked_read.is_woken()); + + // Write a small record but _don't_ flush it. + let bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(bytes_written, SizedRecord, 64); + + // We drop the writer/ledger which will close the writer, and closing the writer should + // notify the reader. While the writer waking up the reader is meant to inform the + // reader of write-side progress, in this case, there was no progress: a flush was not + // initiated, and so the buffer is in an inconsistent state where the ledger believes the + // buffer to not be empty, and that the reader should continue trying to wait for the + // data to come through. + // + // However, we track enough information on the writer side that we can let the reader + // finish cleanly. The next time we open the buffer and read the next record, we'll + // detect any discontinuity and handle it as we normally would. + drop(writer); + drop(ledger); + + assert!(blocked_read.is_woken()); + let blocked_read_result = assert_ready!(blocked_read.poll()); + assert_eq!(blocked_read_result, None); + } + }); + + let parent = trace_span!("pending_read_returns_none_when_writer_closed_with_unflushed_write"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn last_record_is_valid_during_load_when_buffer_correctly_flushed_and_stopped() { + let assertion_registry = install_tracing_helpers(); + + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + let writer_did_not_call_reset = assertion_registry + .build() + .with_name("reset") + .with_parent_name( + "last_record_is_valid_during_load_when_buffer_correctly_flushed_and_stopped", + ) + .was_not_entered() + .finalize(); + + // Create a normal buffer. + let (mut writer, _, ledger) = create_default_buffer_v2(data_dir.clone()).await; + let bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(bytes_written, SizedRecord, 64); + + writer.flush().await.expect("flush should not fail"); + ledger.flush().expect("flush should not fail"); + + drop(writer); + drop(ledger); + + // Make sure we can open the buffer again without any errors. + let (_, _, ledger) = create_default_buffer_v2::<_, SizedRecord>(data_dir).await; + assert_eq!(ledger.get_total_records(), 1); + writer_did_not_call_reset.assert(); + } + }); + + let parent = + trace_span!("last_record_is_valid_during_load_when_buffer_correctly_flushed_and_stopped"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn file_id_wraps_around_when_max_file_id_hit() { + let _a = install_tracing_helpers(); + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + let record_size = 100; + let record = SizedRecord::new(record_size); + let max_data_file_size = get_minimum_data_file_size_for_record_payload(&record); + + // Create our buffer with an arbitrarily low max data file size, which will let us + // quickly run through the file ID range. + let (mut writer, mut reader, ledger) = + create_buffer_v2_with_max_data_file_size(data_dir, max_data_file_size).await; + + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // We execute a loop of writing and then reading back a record, and we assert each time + // that the file IDs are where we expect them to be. We write 3x the number of records + // as the max possible file ID, to ensure that rollover works. + let file_id_upper = MAX_FILE_ID; + + // Random addition at the end so we don't land explicitly on the u16 boundary. + let target_id = (u32::from(file_id_upper) * 3) + 15; + + let mut id = 0; + let mut reader_file_id = 0; + let mut writer_file_id = 0; + while id < target_id { + let bytes_written = writer + .write_record(record.clone()) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(bytes_written, SizedRecord, record_size); + + writer.flush().await.expect("flush should not fail"); + + let record_read = read_next_some(&mut reader).await; + assert_eq!(record_read, record.clone()); + + acknowledge(record_read).await; + + let expected_file_id = u16::try_from(id % u32::from(file_id_upper)) + .expect("should never be greater than u16"); + let (actual_reader_file_id, actual_writer_file_id) = + ledger.get_current_reader_writer_file_id(); + reader_file_id = actual_reader_file_id; + writer_file_id = actual_writer_file_id; + + // Record count/total size will always match the write we just did because + // acknowledgement is only driven by calls to `next`, but our reader/writer should + // be in lockstep, since no data files are closed/adjusted before a read/write + // complete, only once we attempt the next one. + assert_eq!(reader_file_id, writer_file_id); + assert_eq!(expected_file_id, reader_file_id); + assert_eq!(expected_file_id, writer_file_id); + assert_buffer_size!(ledger, 1, bytes_written); + + id += 1; + } + + writer.close(); + + // After closing the writer, our final read should tell us that the buffer is closed, + // but as important, it should tell us that the reader/writer file IDs haven't changed + // since we left the loop _and_ that they're still in lockstep. + let final_read = read_next(&mut reader).await; + assert_eq!(final_read, None); + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, reader_file_id, writer_file_id); + } + }) + .await; +} + +#[tokio::test] +async fn writer_stops_when_hitting_file_that_reader_is_still_on() { + let assertion_registry = install_tracing_helpers(); + + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + let record_size = 100; + let record = SizedRecord::new(record_size); + let max_data_file_size = get_minimum_data_file_size_for_record_payload(&record); + + // Create our buffer with an arbitrarily low max data file size, which will let us + // quickly run through the file ID range. + let (mut writer, mut reader, ledger) = + create_buffer_v2_with_max_data_file_size(data_dir, max_data_file_size).await; + + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // We execute a loop of writing enough records to consume all data files, without doing + // any reading. + let file_id_upper = u32::from(MAX_FILE_ID); + + let mut id = 0; + let mut total_size = 0; + while id < file_id_upper { + let bytes_written = writer + .write_record(record.clone()) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(bytes_written, SizedRecord, record_size); + + writer.flush().await.expect("flush should not fail"); + + assert_reader_writer_v2_file_positions!(ledger, 0, id); + + id += 1; + total_size += bytes_written; + } + + assert_buffer_size!(ledger, MAX_FILE_ID, total_size); + assert_reader_writer_v2_file_positions!(ledger, 0, MAX_FILE_ID - 1); + + let assertion = assertion_registry + .build() + .with_name("wait_for_reader") + .with_parent_name("writer_stops_when_hitting_file_that_reader_is_still_on") + .was_entered() + .finalize(); + + // Now we should be consuming all data files, and our next write should block trying to + // open the "first" data file until we do a read. + let mut blocked_write = spawn(writer.write_record(record)); + + // You might be looking at the assert_pending! calls below and wondering what's + // happening there. Essentially, the process of doing a read or write could contain a + // variable number of asynchronous steps required to open the data file, or wait for the + // reader/writer to make progress, and so on. Since we're executing real file I/O + // operations in these tests, these things aren't deterministic. + // + // Rather than transform all of the code so it can be fully mocked and controlled, we've + // opted for a lightweight approach where we assert conditions around tracing spans, in + // the sense of asserting that certain spans have been entered, and so on. + // + // We're trying to make sure our code gets to the point of waiting for the reader to + // wake up, which would imply that a reader needs to issue a wake-up for progress to be + // made. We create an assertion that looks for that, and we fallibly assert it in a + // loop while polling the blocked write to drive it forward. Once that assertion + // becomes true, we know the blocked write is now waiting on the reader. + // + // There might still be spurious wakeups from some of the other asynchronous code in the + // call, but our blocked write will _not_ proceed until the reader itself specifically + // wakes it up, which is all that matters for our logic. + while !assertion.try_assert() { + assert_pending!(blocked_write.poll()); + } + assert_pending!(blocked_write.poll()); + + // Now execute a read which will pull the first record. This doesn't yet delete the + // first data file since we haven't acknowledged the read yet, so the file can't yet be + // deleted. + let first_record_read = read_next_some(&mut reader).await; + assert_eq!(first_record_read, SizedRecord::new(record_size)); + assert_buffer_size!(ledger, MAX_FILE_ID, total_size); + assert_reader_writer_v2_file_positions!(ledger, 0, MAX_FILE_ID - 1); + + acknowledge(first_record_read).await; + + // Our write should still not yet be ready because we won't have acknowledged the + // read until we call `next` one more time, which will not only acknowledge the write, + // driving a wake-up, but will queue the first data file to be deleted once it + // recognizes the first data file is complete, and before loading the next data file, it + // should also delete the first data file: + assert_pending!(blocked_write.poll()); + + let second_record_read = read_next_some(&mut reader).await; + assert_eq!(second_record_read, SizedRecord::new(record_size)); + assert_buffer_records!(ledger, MAX_FILE_ID - 1); + assert_reader_writer_v2_file_positions!(ledger, 1, MAX_FILE_ID - 1); + + // Now our writer should be woken up as we deleted the first data file when we went + // through the second read, which triggers a writer wake-up. We await the future + // directly because the writer is going to go through a few blocking file operations as + // it flushes the old file and opens the new one, and this means the very next poll + // won't actually return immediately, so we just await instead of looping or anything: + let bytes_written = blocked_write.await.expect("write should not fail"); + assert_enough_bytes_written!(bytes_written, SizedRecord, record_size); + writer.flush().await.expect("flush should not fail"); + + // Technically, we'll have 32 records in flight at this point, despite two reads, + // because again, we haven't acknowledged the second read, so the record is still + // considered to be outstanding. We should, however, have moved on to our next data + // file in the writer: + assert_buffer_records!(ledger, MAX_FILE_ID); + assert_reader_writer_v2_file_positions!(ledger, 1, 0); + } + }); + + let parent = trace_span!("writer_stops_when_hitting_file_that_reader_is_still_on"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn reader_still_works_when_record_id_wraps_around() { + let _a = install_tracing_helpers(); + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a simple buffer. + let (_, _, ledger) = create_default_buffer_v2::<_, SizedRecord>(data_dir.clone()).await; + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // Adjust the record IDs manually so they comes right before the rollover event. + // + // We have to adjust both the writer and reader record ID markers. + unsafe { + ledger.state().unsafe_set_writer_next_record_id(u64::MAX); + } + unsafe { + ledger + .state() + .unsafe_set_reader_last_record_id(u64::MAX - 1); + } + + ledger.flush().expect("ledger should not fail to flush"); + assert_eq!(u64::MAX, ledger.state().get_next_writer_record_id()); + assert_eq!(u64::MAX - 1, ledger.state().get_last_reader_record_id()); + + // We know that the reader will get angry when it goes to read a record, because at + // startup it determined that the next record it reads should have a record ID of 1. + // + // The final step to get our ledger into the correct state is to simply reload the + // buffer entirely, so the reader and writer initialize themselves with the ledger + // stating that we're close to having written 2^64 records already. + drop(ledger); + + let (mut writer, mut reader, ledger) = create_default_buffer_v2(data_dir).await; + + // Now we do two writes: one which uses u64::MAX, and another which will get the rolled + // over value and go back to 0. + let next_record_id = ledger.state().get_next_writer_record_id(); + let first_record_size = 14; + let first_bytes_written = writer + .write_record(SizedRecord::new(first_record_size)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(first_bytes_written, SizedRecord, first_record_size); + assert_eq!(next_record_id, ledger.state().get_next_writer_record_id()); + + writer.flush().await.expect("flush should not fail"); + assert_buffer_records!(ledger, 1); + assert_eq!( + next_record_id.wrapping_add(1), + ledger.state().get_next_writer_record_id() + ); + + let next_record_id = ledger.state().get_next_writer_record_id(); + let second_record_size = 256; + let second_bytes_written = writer + .write_record(SizedRecord::new(second_record_size)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(second_bytes_written, SizedRecord, second_record_size); + assert_eq!(next_record_id, ledger.state().get_next_writer_record_id()); + + writer.flush().await.expect("flush should not fail"); + assert_buffer_records!(ledger, 2); + assert_eq!( + next_record_id.wrapping_add(1), + ledger.state().get_next_writer_record_id() + ); + + writer.close(); + + // Now we should be able to read both records without the reader getting angry. + let first_record_read = read_next_some(&mut reader).await; + assert_eq!(first_record_read, SizedRecord::new(first_record_size)); + assert_eq!(u64::MAX - 1, ledger.state().get_last_reader_record_id()); + assert_buffer_records!(ledger, 2); + + acknowledge(first_record_read).await; + + let second_record_read = read_next_some(&mut reader).await; + assert_eq!(second_record_read, SizedRecord::new(second_record_size)); + assert_eq!(u64::MAX, ledger.state().get_last_reader_record_id()); + assert_buffer_records!(ledger, 1); + + acknowledge(second_record_read).await; + + let final_read = read_next(&mut reader).await; + assert_eq!(final_read, None); + assert_eq!(0, ledger.state().get_last_reader_record_id()); + assert_buffer_is_empty!(ledger); + } + }) + .await; +} + +#[allow(clippy::too_many_lines)] +#[tokio::test] +async fn reader_deletes_data_file_around_record_id_wraparound() { + let assertion_registry = install_tracing_helpers(); + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a simple buffer. + let (_, _, ledger) = create_default_buffer_v2::<_, SizedRecord>(data_dir.clone()).await; + + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // Adjust the record IDs manually so they comes right before the rollover event. + // + // We have to adjust both the writer and reader record ID markers. + unsafe { + ledger.state().unsafe_set_writer_next_record_id(u64::MAX); + } + unsafe { + ledger + .state() + .unsafe_set_reader_last_record_id(u64::MAX - 1); + } + + ledger.flush().expect("ledger should not fail to flush"); + assert_eq!(u64::MAX, ledger.state().get_next_writer_record_id()); + assert_eq!(u64::MAX - 1, ledger.state().get_last_reader_record_id()); + + // We know that the reader will get angry when it goes to read a record, because at + // startup it determined that the next record it reads should have a record ID of 1. + // + // The final step to get our ledger into the correct state is to simply reload the + // buffer entirely, so the reader and writer initialize themselves with the ledger + // stating that we're close to having written 2^64 records already. + drop(ledger); + + let (mut writer, mut reader, ledger) = + create_buffer_v2_with_max_data_file_size(data_dir, 256).await; + + let starting_writer_file_id = ledger.get_current_writer_file_id(); + let next_writer_file_id = ledger.get_next_writer_file_id(); + + // Now we do three writes, which will have u64::MAX, 0, and 1 as the IDs. This ensures + // that the first data file will have at least two records, and a range of IDs that cross + // the wrapping threshold. + let first_record_size = 64; + let first_bytes_written = writer + .write_record(SizedRecord::new(first_record_size)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(first_bytes_written, SizedRecord, first_record_size); + writer.flush().await.expect("flush should not fail"); + assert_eq!(0, ledger.state().get_next_writer_record_id()); + assert_buffer_records!(ledger, 1); + assert_reader_writer_v2_file_positions!(ledger, 0, starting_writer_file_id); + + let second_record_size = 66; + let second_bytes_written = writer + .write_record(SizedRecord::new(second_record_size)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(second_bytes_written, SizedRecord, second_record_size); + writer.flush().await.expect("flush should not fail"); + assert_eq!(1, ledger.state().get_next_writer_record_id()); + assert_buffer_records!(ledger, 2); + assert_reader_writer_v2_file_positions!(ledger, 0, starting_writer_file_id); + + // The third write is too big to fit into the first data file, so this will roll over to + // a new data file, which ensures the reader has the go ahead to delete the first data + // file after we read and ack the first two writes. + let third_record_size = 68; + let third_bytes_written = writer + .write_record(SizedRecord::new(third_record_size)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(third_bytes_written, SizedRecord, third_record_size); + writer.flush().await.expect("flush should not fail"); + assert_eq!(2, ledger.state().get_next_writer_record_id()); + assert_buffer_records!(ledger, 3); + assert_reader_writer_v2_file_positions!(ledger, 0, next_writer_file_id); + + // Our fourth write should fit just fine in the new data file, so no change there: + let fourth_record_size = 70; + let fourth_bytes_written = writer + .write_record(SizedRecord::new(fourth_record_size)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(fourth_bytes_written, SizedRecord, fourth_record_size); + writer.flush().await.expect("flush should not fail"); + assert_eq!(3, ledger.state().get_next_writer_record_id()); + assert_buffer_records!(ledger, 4); + assert_reader_writer_v2_file_positions!(ledger, 0, next_writer_file_id); + + writer.close(); + + // Now that we have our two data files, we want to read all the records back, + // acknowledge them, and assert that we deleted the first data file: + let deleted_data_file = assertion_registry + .build() + .with_name("delete_completed_data_file") + .with_parent_name("reader_deletes_data_file_around_record_id_wraparound") + .was_entered() + .finalize(); + + let first_record_read = read_next_some(&mut reader).await; + assert_eq!(first_record_read, SizedRecord::new(first_record_size)); + assert_eq!(u64::MAX - 1, ledger.state().get_last_reader_record_id()); + assert_buffer_records!(ledger, 4); + assert_reader_writer_v2_file_positions!(ledger, 0, next_writer_file_id); + + acknowledge(first_record_read).await; + assert!(!deleted_data_file.try_assert()); + + let second_record_read = read_next_some(&mut reader).await; + assert_eq!(second_record_read, SizedRecord::new(second_record_size)); + assert_eq!(u64::MAX, ledger.state().get_last_reader_record_id()); + assert_buffer_records!(ledger, 3); + assert_reader_writer_v2_file_positions!(ledger, 0, next_writer_file_id); + + acknowledge(second_record_read).await; + assert!(!deleted_data_file.try_assert()); + + // This read should be where we actually delete the file since we've acknowledged all of + // the reads from the first data file: + let third_record_read = read_next_some(&mut reader).await; + assert_eq!(third_record_read, SizedRecord::new(third_record_size)); + assert_eq!(0, ledger.state().get_last_reader_record_id()); + assert_buffer_records!(ledger, 2); + assert_reader_writer_v2_file_positions!(ledger, 1, next_writer_file_id); + + acknowledge(third_record_read).await; + assert!(deleted_data_file.try_assert()); + + let fourth_record_read = read_next_some(&mut reader).await; + assert_eq!(fourth_record_read, SizedRecord::new(fourth_record_size)); + assert_eq!(1, ledger.state().get_last_reader_record_id()); + assert_buffer_records!(ledger, 1); + assert_reader_writer_v2_file_positions!(ledger, 1, next_writer_file_id); + + acknowledge(fourth_record_read).await; + + // And now since we closed the writer and read all four records, we should be done: + let final_read = read_next(&mut reader).await; + assert_eq!(final_read, None); + assert_eq!(2, ledger.state().get_last_reader_record_id()); + assert_reader_writer_v2_file_positions!(ledger, 1, next_writer_file_id); + assert_buffer_is_empty!(ledger); + } + }); + + let parent = trace_span!("reader_deletes_data_file_around_record_id_wraparound"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn writer_waits_for_reader_after_validate_last_write_fails_and_data_file_skip_triggered() { + // The title is long and probably hard to grok, so here's a more straightforward explanation: + // + // When we initialize a buffer, if the writer previously left off on a partially-filled data + // file, we load that data file and do a simple check to make sure the last record in the file + // is valid. If it's not valid, we consider that data file corrupted and skip to the next data + // file. This is intended to limit us writing records to a data file that the reader is going + // skip the rest of when it detects a bad/corrupted record. + // + // The problem is that we might be skipping to a data file that we previously finished writing + // to, but has not yet been fully processed (and thus deleted) by the reader. + // + // Assume our maximum data file count is 10, and the writer is on #9, and the reader is on #0. + // We open data file #9 as the writer, and detect that it's not valid, so we want to skip to the + // next data file, which is #0. When we go to open that data file, we do detect that it already + // exists, so we examine the size of the file. That file could actually be less than the + // maximum data file size: maybe we also skipped that one previously due to corruption and it + // wasn't yet full. + // + // Thus, we are _only_ willing to open and use a partially-filled data file when it's the file + // we left off on according to the ledger. If we have to skip to the next data file, so be it, + // but if it already exists, regardless of size, we need to wait for the reader to clear it out. + // + // TODO: Encode the "max data file size" in the ledger when creating a buffer for the first + // time, so that we can refuse to open a buffer when the max data file size does not match. + // This would provide the invariant that a data file, once full, can never become writable again + // by reopening the buffer with a higher max data file size. + let assertion_registry = install_tracing_helpers(); + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + let record_size = 42; + let record = SizedRecord::new(record_size); + let corrected_record_size = get_corrected_max_record_size(&record); + let max_data_file_size = (corrected_record_size * 2) + .try_into() + .expect("Value should never exceed `u64::MAX`."); + + // Create our buffer with a low max data file size, which will let us quickly run through + // the file ID range. We craft this number to allow for two records per data file. + let (mut writer, _, ledger) = + create_buffer_v2_with_max_data_file_size(data_dir.clone(), max_data_file_size) + .await; + + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // We want to write enough records so that our writer writes its last record on the last + // file ID before file ID rollover occurs. + let target_writer_file_id = MAX_FILE_ID - 1; + + let mut records_written = 0; + let mut bytes_written = 0; + let mut total_bytes_written = 0; + let mut writer_file_id = 0; + while writer_file_id != target_writer_file_id { + for _ in 0..2 { + bytes_written = writer + .write_record(record.clone()) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(bytes_written, SizedRecord, record_size); + } + writer.flush().await.expect("flush should not fail"); + + total_bytes_written += bytes_written * 2; + records_written += 2; + writer_file_id = ledger.get_current_writer_file_id(); + + assert_buffer_size!(ledger, records_written, total_bytes_written); + } + + // Advance the time to ensure that we can trigger a full flush so that all writer bytes + // are demonstrably on disk after doing so. + tokio::time::pause(); + tokio::time::advance(DEFAULT_FLUSH_INTERVAL).await; + + writer.flush().await.expect("flush should not fail"); + writer.close(); + + tokio::time::resume(); + + let current_data_file_path = ledger.get_current_writer_data_file_path(); + let next_data_file_path = ledger.get_next_writer_data_file_path(); + let next_data_file_id = ledger.get_next_writer_file_id(); + drop(writer); + drop(ledger); + + // Now, we need to load the data file we just left off on and modify it so that it + // appears corrupted and triggers the writer to skip it during initialization, thus + // pushing the writer to skip to next data file. We do this by simply truncating it in + // the middle of record, which _also_ has the effect that the data file is technically + // not full anymore. + // + // Additionally, we'll remove one record from the _next_ data file, where the goal is + // that we leave the data file in a valid state but smaller than the limit, so that we + // can ensure that the writer doesn't mistakenly think it's fine to use simply because + // the file is not yet full. + set_data_file_length!( + current_data_file_path, + bytes_written * 2, + (bytes_written * 2) - 4 + ); + set_data_file_length!(next_data_file_path, bytes_written * 2, bytes_written); + + // Now our last data file has been corrupted, and the next data file is below the + // maximum data file size, let's open the writer and make sure that it first skips the + // current data file since it's corrupted. + let mark_to_skip_called = assertion_registry + .build() + .with_name("mark_for_skip") + .with_parent_name("writer_waits_for_reader_after_validate_last_write_fails_and_data_file_skip_triggered") + .was_closed() + .finalize(); + let waiting_on_reader = assertion_registry + .build() + .with_name("wait_for_reader") + .with_parent_name("writer_waits_for_reader_after_validate_last_write_fails_and_data_file_skip_triggered") + .was_entered() + .finalize(); + + let (mut writer, mut reader, ledger) = + create_buffer_v2_with_max_data_file_size(data_dir, max_data_file_size).await; + assert!(mark_to_skip_called.try_assert()); + assert_eq!(next_data_file_id, ledger.get_next_writer_file_id()); + assert!(!waiting_on_reader.try_assert()); + + let total_records = ledger.get_total_records(); + + // The writer correctly reset/marked itself as needing to skip the current data file, + // but we need to actually attempt a write to drive the logic where it tries to open up + // the next data file, so we do that here, expecting it to end up blocked on the reader. + let mut blocked_write = spawn(writer.write_record(record)); + + while !waiting_on_reader.try_assert() { + assert_pending!(blocked_write.poll()); + } + assert_eq!(next_data_file_id, ledger.get_next_writer_file_id()); + assert_eq!(total_records, ledger.get_total_records()); + + // Now, let's actually read some records! We'll read our way through the first data + // file, which should yield a good read. Remember, we removed a record from the "next" + // data file, which is the data file the reader is currently on. Thus, our second read + // will move forward, which should allow deleting the first data file, aka "next", which + // is what the writer is waiting on. + let first_good_read = read_next_some(&mut reader).await; + assert_eq!(first_good_read, SizedRecord::new(record_size)); + acknowledge(first_good_read).await; + assert_pending!(blocked_write.poll()); + assert_reader_writer_v2_file_positions!(ledger, next_data_file_id, writer_file_id); + + let second_good_read = read_next_some(&mut reader).await; + assert_eq!(second_good_read, SizedRecord::new(record_size)); + acknowledge(second_good_read).await; + assert_reader_writer_v2_file_positions!(ledger, next_data_file_id + 1, writer_file_id); + + // Now the "next" data file should be acknowledged and deleted, and so the writer should + // be unblocked. We drive it as a normal future here because this is going to have to + // do file I/O, which may yield a few times so a single poll isn't enough. This should + // open the next data file, the one the reader just deleted, and make it the current + // data file for the writer. + let blocked_write_result = await_timeout!(blocked_write, 2); + let _bytes_written = blocked_write_result.expect("write should not fail"); + assert_eq!(next_data_file_id, ledger.get_current_writer_file_id()); + } + }); + + let parent = trace_span!( + "writer_waits_for_reader_after_validate_last_write_fails_and_data_file_skip_triggered" + ); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn writer_updates_ledger_when_buffered_writer_reports_implicit_flush() { + // This test ensures that when the buffered writer tells us it had to preemptively flush, that + // we correctly integrate its result by updating the ledger. For example, if we do 10 writes + // without a subsequent flush, and they're all buffered, but an 11th write forces us to flush + // the buffer before we can actually buffer that 11th write, we should update the ledger to + // indicate that those 10 initial writes are now "live": updated next record ID, updated buffer + // size, and so on. + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + let record_size: u32 = 16; + + // Create our buffer with a arbitrarily low write buffer size. We'll use this to ensure + // that the buffered writer has to implicitly flush after we've written a certain number + // of records, but before we've manually flushed. + let (mut writer, _, ledger) = + create_buffer_v2_with_write_buffer_size(data_dir.clone(), 128).await; + + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // We write two records, which should fit within the write buffer without needing to + // be implicitly flushed. + let mut total_events_written = 0; + let mut total_bytes_written = 0; + + for _ in 0..2 { + let record = MultiEventRecord::new(record_size); + let record_events = record.event_count(); + let bytes_written = writer + .write_record(record) + .await + .expect("write should not fail"); + + total_events_written += record_events; + total_bytes_written += bytes_written; + } + + // Now, our buffer should still be "empty" because we don't acknowledge writes, until we + // flush, either implicitly or explicitly, and that includes their size being + // represented in the total buffer size, and the "next writer record ID": + assert_buffer_is_empty!(ledger); + + // Do another write, which should overflow the write buffer and require those first + // two writes to be implicitly flushed, which then requires us to update the ledger state: + let record = MultiEventRecord::new(record_size); + let record_events = record.event_count(); + let bytes_written = writer + .write_record(record) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(bytes_written, SizedRecord, record_size); + + // At this point, the entire write buffer should have been flushed, which means whatever + // event counts/bytes written they generated should be represented in the ledger state: + assert_buffer_size!(ledger, total_events_written, total_bytes_written); + + // Now, do an explicit flush, which should get us our third write: + writer.flush().await.expect("flush should not fail"); + + total_events_written += record_events; + total_bytes_written += bytes_written; + assert_buffer_size!(ledger, total_events_written, total_bytes_written); + } + }) + .await; +} + +#[tokio::test] +async fn reader_writer_positions_aligned_through_multiple_files_and_records() { + // This test ensures that the reader/writer position stay aligned through multiple records and + // data files. This is to say, that, if we write 5 records, each with 10 events, and then read + // and acknowledge all of those events... the writer's next record ID should be 51 (the 50th + // event would correspond to ID 50, so next ID would be 51) and the reader's last read record ID + // should be 50. + // + // Testing this across multiple data files isn't super germane to the position logic, but it + // just ensures we're also testing that aspect. + + let _a = install_tracing_helpers(); + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create our buffer with an arbitrarily low maximum data file size. We'll use this to + // control how many records make it into a given data file. Just another way to ensure + // we're testing the position logic with multiple writes to one data file, one write to + // a data file, etc. + let (mut writer, mut reader, ledger) = + create_buffer_v2_with_max_data_file_size(data_dir, 256).await; + + // We'll write multi-event records with N events based on these sizes, and as we do so, + // we'll assert that our writer position moves as expected after the write, and that + // after reading and acknowledging, the reader position also moves as expected. + let record_sizes = &[176, 52, 91, 137, 54, 87]; + + let mut expected_writer_position = ledger.state().get_next_writer_record_id(); + let mut expected_reader_position = ledger.state().get_last_reader_record_id(); + let mut trailing_reader_position_delta = 0; + + for record_size in record_sizes { + // Initial check before writing/reading the next record. + assert_reader_last_writer_next_positions!( + ledger, + expected_reader_position, + expected_writer_position + ); + + let record = MultiEventRecord::new(*record_size); + assert_eq!( + record.event_count(), + usize::try_from(*record_size).unwrap_or(usize::MAX) + ); + + writer + .write_record(record) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + expected_writer_position += u64::from(*record_size); + + // Make sure the writer position advanced after flushing. + assert_reader_last_writer_next_positions!( + ledger, + expected_reader_position, + expected_writer_position + ); + + let record_via_read = read_next_some(&mut reader).await; + assert_eq!(record_via_read, MultiEventRecord::new(*record_size)); + acknowledge(record_via_read).await; + + // Increment the expected reader position by the trailing reader position delta, and + // then now that we've done a read, we should be able to have seen actually move + // forward. + expected_reader_position += trailing_reader_position_delta; + assert_reader_last_writer_next_positions!( + ledger, + expected_reader_position, + expected_writer_position + ); + + // Set the trailing reader position delta to the record we just read. + // + // We do it this way because reads themselves have to drive acknowledgement logic to + // then drive updates to the ledger, so we will only see the change in the reader's + // position the _next_ time we do a read. + trailing_reader_position_delta = u64::from(*record_size); + } + + // Close the writer and do a final read, thus driving the acknowledgement logic, and + // position update logic, before we do our final position check. + writer.close(); + assert_eq!(reader.next().await, Ok(None)); + + // Calculate the absolute reader/writer positions we would expect based on all of the + // records/events written and read. This is to double check our work and make sure that + // the "expected" positions didn't hide any bugs from us. + let expected_final_reader_position = + record_sizes.iter().copied().map(u64::from).sum::(); + let expected_final_writer_position = expected_final_reader_position + 1; + + assert_reader_last_writer_next_positions!( + ledger, + expected_final_reader_position, + expected_final_writer_position + ); + } + }); + + let parent = trace_span!("reader_writer_positions_aligned_through_multiple_files_and_records"); + fut.instrument(parent.or_current()).await; +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/known_errors.rs b/lib/vector-buffers/src/variants/disk_v2/tests/known_errors.rs new file mode 100644 index 0000000000000..f613a14373c72 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/known_errors.rs @@ -0,0 +1,819 @@ +use std::{ + io::{self, SeekFrom}, + sync::atomic::{AtomicU32, Ordering}, +}; + +use bytes::{Buf, BufMut}; +use memmap2::MmapMut; +use tokio::{ + fs::OpenOptions, + io::{AsyncSeekExt, AsyncWriteExt}, +}; +use tracing::Instrument; +use vector_common::byte_size_of::ByteSizeOf; +use vector_common::finalization::{AddBatchNotifier, BatchNotifier}; + +use super::{create_buffer_v2_with_max_data_file_size, create_default_buffer_v2}; +use crate::{ + assert_buffer_size, assert_enough_bytes_written, assert_file_does_not_exist_async, + assert_file_exists_async, assert_reader_writer_v2_file_positions, await_timeout, + encoding::{AsMetadata, Encodable}, + test::{acknowledge, install_tracing_helpers, with_temp_dir, SizedRecord, UndecodableRecord}, + variants::disk_v2::{backed_archive::BackedArchive, record::Record, ReaderError}, + EventCount, +}; + +impl AsMetadata for u32 { + fn into_u32(self) -> u32 { + self + } + + fn from_u32(value: u32) -> Option { + if value < 32 { + Some(value) + } else { + None + } + } +} + +#[tokio::test] +async fn reader_throws_error_when_record_length_delimiter_is_zero() { + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a regular buffer, no customizations required. + let (mut writer, _, ledger) = create_default_buffer_v2(data_dir.clone()).await; + + // Write a normal `SizedRecord` record. + let bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + let expected_data_file_len = bytes_written as u64; + + // Grab the current writer data file path, and then drop the writer/reader. Once the + // buffer is closed, we'll purposefully zero out the length delimiter, which should + // make `RecordReader` angry. + let data_file_path = ledger.get_current_writer_data_file_path(); + drop(writer); + drop(ledger); + + // Open the file and zero out the first four bytes. + let mut data_file = OpenOptions::new() + .write(true) + .open(&data_file_path) + .await + .expect("open should not fail"); + + // Just to make sure the data file matches our expected state before futzing with it. + let metadata = data_file + .metadata() + .await + .expect("metadata should not fail"); + assert_eq!(expected_data_file_len, metadata.len()); + + let pos = data_file + .seek(SeekFrom::Start(0)) + .await + .expect("seek should not fail"); + assert_eq!(0, pos); + data_file + .write_all(&[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0]) + .await + .expect("write should not fail"); + data_file.flush().await.expect("flush should not fail"); + data_file.sync_all().await.expect("sync should not fail"); + drop(data_file); + + // Now reopen the buffer and attempt a read, which should return an error for + // deserialization failure, but specifically that the record length was zero. + let (_, mut reader, _) = create_default_buffer_v2::<_, SizedRecord>(data_dir).await; + match reader.next().await { + Err(ReaderError::Deserialization { reason }) => { + assert!(reason.ends_with("record length was zero")); + } + _ => panic!("read_result should be deserialization error"), + } + } + }) + .await; +} + +#[tokio::test] +async fn reader_throws_error_when_finished_file_has_truncated_record_data() { + // Right now, we _always_ assume the data is coming if we can at least read 8 bytes for the + // length delimiter... but the point in the code where that happens is oblivious to the + // higher-level reader/writer state, so if there was an error that lead to a data file ending + // prematurely, the underlying reader would not be aware of this and would wait forever for + // however many bytes. + // + // This is actually a higher-level problem insofar as we'll willingly continue trying to read + // out a record even if there's only one byte left, because the contract is that when a data + // file is done, and we've read all the records, there should be no bytes left over... which is + // a reasonable invariant! + // + // If there's at least one more byte, though, or if there was a record that took up, say, 1000 + // bytes in theory but only 999 bytes got written and the writer has moved on, we'll sit there + // forever waiting for that last byte before we move on to the next data file. + // + // Thus, what we want to test for is to ensure that when the writer _has_ moved on, and there's + // not enough data to possibly continue, we correctly detect this situation and move on. All of + // our existing logic -- checking bytes read vs file size when deleting, checking record ID gap + // when updating last read record ID -- should handle keeping the buffer size accurate as well + // as detecting corrupted records, so there should be no issue there. + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a buffer with a smaller-than-normal data file size limit, just so that we can + // force the writer to roll to another data file and then easily mess with the previous + // data file. + let (mut writer, _, ledger) = + create_buffer_v2_with_max_data_file_size(data_dir.clone(), 172).await; + + // Write two smaller records, such that the first one fits entirely, and the second one + // starts within the 128-byte zone but finishes over the limit, thus triggering data + // file rollover. + let first_record_size = 32; + let first_bytes_written = writer + .write_record(SizedRecord::new(first_record_size)) + .await + .expect("write should not fail"); + let second_record_size = 33; + let second_bytes_written = writer + .write_record(SizedRecord::new(second_record_size)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + let expected_first_data_file_len = first_bytes_written + second_bytes_written; + let first_data_file_path = ledger.get_current_writer_data_file_path(); + + // Make sure we're in the right state before doing a third write, which should land in + // another data file. + assert_buffer_size!(ledger, 2, expected_first_data_file_len); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // Do our third write, which should land in a new data file. + let third_record_size = 34; + let third_bytes_written = writer + .write_record(SizedRecord::new(third_record_size)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + assert_buffer_size!( + ledger, + 3, + expected_first_data_file_len + third_bytes_written + ); + assert_reader_writer_v2_file_positions!(ledger, 0, 1); + + // Now drop the writer/ledger to close the buffer, so we can do some hackin' and + // slashin' to the first data file. >:D + drop(writer); + drop(ledger); + + // Open the file and truncate it so that we can read the length delimiter of the second + // record, but only part of the second record itself. + let mut data_file = OpenOptions::new() + .write(true) + .open(&first_data_file_path) + .await + .expect("open should not fail"); + + // Just to make sure the data file matches our expected state before futzing with it. + let metadata = data_file + .metadata() + .await + .expect("metadata should not fail"); + assert_eq!(expected_first_data_file_len as u64, metadata.len()); + + // Middle of the second record seems good. + data_file + .set_len((first_bytes_written + (second_bytes_written / 2)) as u64) + .await + .expect("truncating should not fail"); + data_file.flush().await.expect("flush should not fail"); + data_file.sync_all().await.expect("sync should not fail"); + drop(data_file); + + // Now reopen the buffer. We should get a good read, a failed read, and then a final + // good read: + // - first read is the first record, nothing special + // - second read is an error because we detect a partial record write which can't be + // read as a valid record, forcing us to skip to the second data file + // - third read is the third record that we successfully wrote to the second data file + let (mut writer, mut reader, ledger) = + create_default_buffer_v2::<_, SizedRecord>(data_dir).await; + writer.close(); + assert_reader_writer_v2_file_positions!(ledger, 0, 1); + + let first_read = await_timeout!(reader.next(), 2).expect("read should not fail"); + assert_eq!(first_read, Some(SizedRecord::new(first_record_size))); + assert_reader_writer_v2_file_positions!(ledger, 0, 1); + acknowledge(first_read.unwrap()).await; + + let second_read = await_timeout!(reader.next(), 2).expect_err("read should fail"); + assert!(matches!(second_read, ReaderError::PartialWrite)); + assert_reader_writer_v2_file_positions!(ledger, 1, 1); + + let third_read = await_timeout!(reader.next(), 2).expect("read should not fail"); + assert_eq!(third_read, Some(SizedRecord::new(third_record_size))); + assert_reader_writer_v2_file_positions!(ledger, 1, 1); + acknowledge(third_read.unwrap()).await; + + let final_read = await_timeout!(reader.next(), 2).expect("read should not fail"); + assert_eq!(final_read, None); + assert_reader_writer_v2_file_positions!(ledger, 1, 1); + } + }) + .await; +} + +// TODO: Add test that emulates "reader throws error when" such that we write three records, each to +// a separate data file, corrupt the write in the second data file, and make sure that we get our +// first and third record back and that after reading and acking the first and third record (plus +// one more read to trigger it) that we've deleted all three data files. + +// TODO: Update this test, and the other "reader throws error when" tests to assert that the data +// file is immediately deleted on the next call to `next`. +#[tokio::test] +async fn reader_throws_error_when_record_has_scrambled_archive_data() { + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a regular buffer, no customizations required. + let (mut writer, _, ledger) = create_default_buffer_v2(data_dir.clone()).await; + + // Write two `SizedRecord` records just so we can generate enough data. We need two + // records because the writer, on start up, will specifically check the last record and + // validate it. If it's not valid, the data file is skipped entirely. So we'll write + // two records, and only scramble the first... which will let the reader be the one to + // discover the error. + let first_bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("should not fail to write"); + writer.flush().await.expect("flush should not fail"); + let second_bytes_written = writer + .write_record(SizedRecord::new(65)) + .await + .expect("should not fail to write"); + writer.flush().await.expect("flush should not fail"); + + let expected_data_file_len = first_bytes_written as u64 + second_bytes_written as u64; + + // Grab the current writer data file path, and then drop the writer/reader. Once the + // buffer is closed, we'll purposefully scramble the archived data -- but not the length + // delimiter -- which should trigger `rkyv` to throw an error when we check the data. + let data_file_path = ledger.get_current_writer_data_file_path(); + drop(writer); + drop(ledger); + + // Open the file and set the last eight bytes of the first record to something clearly + // wrong/invalid, which should end up messing with the relative pointer stuff in the + // archive. + let mut data_file = OpenOptions::new() + .write(true) + .open(&data_file_path) + .await + .expect("open should not fail"); + + // Just to make sure the data file matches our expected state before futzing with it. + let metadata = data_file + .metadata() + .await + .expect("metadata should not fail"); + assert_eq!(expected_data_file_len, metadata.len()); + + let target_pos = first_bytes_written as u64 - 8; + let pos = data_file + .seek(SeekFrom::Start(target_pos)) + .await + .expect("seek should not fail"); + assert_eq!(target_pos, pos); + data_file + .write_all(&[0xd, 0xe, 0xa, 0xd, 0xb, 0xe, 0xe, 0xf]) + .await + .expect("should not fail to write"); + data_file.flush().await.expect("flush should not fail"); + data_file.sync_all().await.expect("sync should not fail"); + drop(data_file); + + // Now reopen the buffer and attempt a read, which should return an error for + // deserialization failure. + let (_writer, mut reader, _ledger) = + create_default_buffer_v2::<_, SizedRecord>(data_dir).await; + let read_result = reader.next().await; + assert!(matches!( + read_result, + Err(ReaderError::Deserialization { .. }) + )); + } + }) + .await; +} + +#[tokio::test] +async fn reader_throws_error_when_record_has_decoding_error() { + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a regular buffer, no customizations required. + let (mut writer, mut reader, _ledger) = create_default_buffer_v2(data_dir).await; + + // Write an `UndecodableRecord` record which will encode correctly, but always throw an + // error when attempting to decode. + writer + .write_record(UndecodableRecord) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + // Now try to read it back, which should return an error. + let read_result = reader.next().await; + assert!(matches!(read_result, Err(ReaderError::Decode { .. }))); + } + }) + .await; +} + +#[tokio::test] +async fn writer_detects_when_last_record_has_scrambled_archive_data() { + let assertion_registry = install_tracing_helpers(); + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + let marked_for_skip = assertion_registry + .build() + .with_name("mark_for_skip") + .with_parent_name("writer_detects_when_last_record_has_scrambled_archive_data") + .was_entered() + .finalize(); + + // Create a regular buffer, no customizations required. + let (mut writer, _, ledger) = create_default_buffer_v2(data_dir.clone()).await; + let starting_writer_file_id = ledger.get_current_writer_file_id(); + let expected_final_writer_file_id = ledger.get_next_writer_file_id(); + let expected_final_write_data_file = ledger.get_next_writer_data_file_path(); + assert_file_does_not_exist_async!(&expected_final_write_data_file); + + // Write a `SizedRecord` record that we can scramble. Since it will be the last record + // in the data file, the writer should detect this error when the buffer is recreated, + // even though it doesn't actually _emit_ anything we can observe when creating the + // buffer... but it should trigger a call to `reset`, which we _can_ observe with + // tracing assertions. + let bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + let expected_data_file_len = bytes_written as u64; + + // Grab the current writer data file path, and then drop the writer/reader. Once the + // buffer is closed, we'll purposefully scramble the archived data -- but not the length + // delimiter -- which should trigger `rkyv` to throw an error when we check the data. + let data_file_path = ledger.get_current_writer_data_file_path(); + drop(writer); + drop(ledger); + + // We should not have seen a call to `mark_for_skip` yet. + assert!(!marked_for_skip.try_assert()); + + // Open the file and set the last eight bytes of the record to something clearly + // wrong/invalid, which should end up messing with the relative pointer stuff in the + // archive. + let mut data_file = OpenOptions::new() + .write(true) + .open(&data_file_path) + .await + .expect("open should not fail"); + + // Just to make sure the data file matches our expected state before futzing with it. + let metadata = data_file + .metadata() + .await + .expect("metadata should not fail"); + assert_eq!(expected_data_file_len, metadata.len()); + + let target_pos = expected_data_file_len - 8; + let pos = data_file + .seek(SeekFrom::Start(target_pos)) + .await + .expect("seek should not fail"); + assert_eq!(target_pos, pos); + data_file + .write_all(&[0xd, 0xe, 0xa, 0xd, 0xb, 0xe, 0xe, 0xf]) + .await + .expect("write should not fail"); + data_file.flush().await.expect("flush should not fail"); + data_file.sync_all().await.expect("sync should not fail"); + drop(data_file); + + // Now reopen the buffer, which should trigger a `Writer::mark_for_skip` call which + // instructs the writer to skip to the next data file, although this doesn't happen + // until the first write is attempted. + let (mut writer, _, ledger) = + create_default_buffer_v2::<_, SizedRecord>(data_dir).await; + marked_for_skip.assert(); + assert_reader_writer_v2_file_positions!(ledger, 0, starting_writer_file_id); + assert_file_does_not_exist_async!(&expected_final_write_data_file); + + // Do a simple write to ensure it opens the next data file. + let _bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + assert_reader_writer_v2_file_positions!(ledger, 0, expected_final_writer_file_id); + assert_file_exists_async!(&expected_final_write_data_file); + } + }); + + let parent = trace_span!("writer_detects_when_last_record_has_scrambled_archive_data"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn writer_detects_when_last_record_has_invalid_checksum() { + let assertion_registry = install_tracing_helpers(); + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + let marked_for_skip = assertion_registry + .build() + .with_name("mark_for_skip") + .with_parent_name("writer_detects_when_last_record_has_invalid_checksum") + .was_entered() + .finalize(); + + // Create a regular buffer, no customizations required. + let (mut writer, _, ledger) = create_default_buffer_v2(data_dir.clone()).await; + let starting_writer_file_id = ledger.get_current_writer_file_id(); + let expected_final_writer_file_id = ledger.get_next_writer_file_id(); + let expected_final_write_data_file = ledger.get_next_writer_data_file_path(); + assert_file_does_not_exist_async!(&expected_final_write_data_file); + + // Write a `SizedRecord` record that we can scramble. Since it will be the last record + // in the data file, the writer should detect this error when the buffer is recreated, + // even though it doesn't actually _emit_ anything we can observe when creating the + // buffer... but it should trigger a call to `reset`, which we _can_ observe with + // tracing assertions. + let bytes_written = writer + .write_record(SizedRecord::new(13)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + let expected_data_file_len = bytes_written as u64; + + // Grab the current writer data file path, and then drop the writer/reader. Once the + // buffer is closed, we'll reload the record as a mutable archive so we can scramble the + // data used by the checksum calculation, but not in a way that `rkyv` won't be able to + // deserialize it. This would simulate something more like a bit flip than a portion of + // the data failing to be written entirely. + let data_file_path = ledger.get_current_writer_data_file_path(); + drop(writer); + drop(ledger); + + // We should not have seen a call to `mark_for_skip` yet. + assert!(!marked_for_skip.try_assert()); + + // Open the file, mutably deserialize the record, and flip a bit in the checksum. + let data_file = OpenOptions::new() + .read(true) + .write(true) + .open(&data_file_path) + .await + .expect("open should not fail"); + + // Just to make sure the data file matches our expected state before futzing with it. + let metadata = data_file + .metadata() + .await + .expect("metadata should not fail"); + assert_eq!(expected_data_file_len, metadata.len()); + + let std_data_file = data_file.into_std().await; + let record_mmap = + unsafe { MmapMut::map_mut(&std_data_file).expect("mmap should not fail") }; + drop(std_data_file); + + let mut backed_record = BackedArchive::<_, Record>::from_backing(record_mmap) + .expect("archive should not fail"); + let record = backed_record.get_archive_mut(); + + // Just flip the 15th bit. Should be enough. *shrug* + { + let projected_checksum = + unsafe { record.map_unchecked_mut(|record| &mut record.checksum) }; + let projected_checksum = projected_checksum.get_mut(); + let new_checksum = *projected_checksum ^ (1 << 15); + *projected_checksum = new_checksum; + } + + // Flush the memory-mapped data file to disk and we're done with our modification. + backed_record + .get_backing_ref() + .flush() + .expect("flush should not fail"); + drop(backed_record); + + // Now reopen the buffer, which should trigger a `Writer::mark_for_skip` call which + // instructs the writer to skip to the next data file, although this doesn't happen + // until the first write is attempted. + let (mut writer, _, ledger) = + create_default_buffer_v2::<_, SizedRecord>(data_dir).await; + marked_for_skip.assert(); + assert_reader_writer_v2_file_positions!(ledger, 0, starting_writer_file_id); + assert_file_does_not_exist_async!(&expected_final_write_data_file); + + // Do a simple write to ensure it opens the next data file. + let _bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + assert_reader_writer_v2_file_positions!(ledger, 0, expected_final_writer_file_id); + assert_file_exists_async!(&expected_final_write_data_file); + } + }); + + let parent = trace_span!("writer_detects_when_last_record_has_invalid_checksum"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn writer_detects_when_last_record_wasnt_flushed() { + let assertion_registry = install_tracing_helpers(); + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + let marked_for_skip = assertion_registry + .build() + .with_name("mark_for_skip") + .with_parent_name("writer_detects_when_last_record_wasnt_flushed") + .was_entered() + .finalize(); + + // Create a regular buffer, no customizations required. + let (mut writer, _, ledger) = create_default_buffer_v2(data_dir.clone()).await; + let starting_writer_file_id = ledger.get_current_writer_file_id(); + let expected_final_writer_file_id = ledger.get_next_writer_file_id(); + let expected_final_write_data_file = ledger.get_next_writer_data_file_path(); + assert_file_does_not_exist_async!(&expected_final_write_data_file); + + // Write a regular record so something is in the data file. + let bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(bytes_written, SizedRecord, 64); + writer.flush().await.expect("flush should not fail"); + + // Now unsafely increment the next writer record ID, which will cause a divergence + // between the actual data file and the ledger. Specifically, the code will think that + // a record was written but never flushed, given that the next writer record ID has + // advanced. This represents a "lost write"/"corrupted events" scenario, where we end + // up reporting that we missed a bunch of events, either because we skipped a file or + // a bunch of writes never fully made it to disk. + let writer_next_record_id = ledger.state().get_next_writer_record_id(); + unsafe { + ledger + .state() + .unsafe_set_writer_next_record_id(writer_next_record_id + 1); + } + + // Grab the current writer data file path, and then drop the writer/reader. + drop(writer); + drop(ledger); + + // We should not have seen a call to `mark_for_skip` yet. + assert!(!marked_for_skip.try_assert()); + + // Now reopen the buffer, which should trigger a `Writer::mark_for_skip` call which + // instructs the writer to skip to the next data file, although this doesn't happen + // until the first write is attempted. + let (mut writer, _, ledger) = + create_default_buffer_v2::<_, SizedRecord>(data_dir).await; + marked_for_skip.assert(); + assert_reader_writer_v2_file_positions!(ledger, 0, starting_writer_file_id); + assert_file_does_not_exist_async!(&expected_final_write_data_file); + + // Do a simple write to ensure it opens the next data file. + let _bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + assert_reader_writer_v2_file_positions!(ledger, 0, expected_final_writer_file_id); + assert_file_exists_async!(&expected_final_write_data_file); + } + }); + + let parent = trace_span!("writer_detects_when_last_record_wasnt_flushed"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn writer_detects_when_last_record_was_flushed_but_id_wasnt_incremented() { + let assertion_registry = install_tracing_helpers(); + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + let writer_did_not_call_reset = assertion_registry + .build() + .with_name("reset") + .with_parent_name( + "writer_detects_when_last_record_was_flushed_but_id_wasnt_incremented", + ) + .was_not_entered() + .finalize(); + + // Create a regular buffer, no customizations required. + let (mut writer, _, ledger) = create_default_buffer_v2(data_dir.clone()).await; + let starting_writer_next_record_id = ledger.state().get_next_writer_record_id(); + let expected_final_writer_file_id = ledger.get_current_writer_file_id(); + let expected_final_write_data_file = ledger.get_next_writer_data_file_path(); + assert_file_does_not_exist_async!(&expected_final_write_data_file); + + // Write a regular record so something is in the data file. + let bytes_written = writer + .write_record(SizedRecord::new(64)) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(bytes_written, SizedRecord, 64); + writer.flush().await.expect("flush should not fail"); + let actual_writer_next_record_id = ledger.state().get_next_writer_record_id(); + + // Now unsafely decrement the next writer record ID, which will cause a divergence + // between the actual data file and the ledger. Specifically, the code will think that + // a write made it to disk but that the process was stopped, or crashed, before it was + // able to actually increment the writer next record ID, so a record ID will exist on + // disk that it thinks should not exist, purely from the data we have in the ledger. + unsafe { + ledger + .state() + .unsafe_set_writer_next_record_id(starting_writer_next_record_id); + } + + // Grab the current writer data file path, and then drop the writer/reader. + drop(writer); + drop(ledger); + + writer_did_not_call_reset.assert(); + + // Now reopen the buffer, which should trigger the skip ahead logic where we move our + // writer next record ID to be ahead of the actual last record ID, but on whatever we + // pulled out of the data file. This is required to maintain our monotonicity invariant + // for all records written into the buffer. + let (_, _, ledger) = create_default_buffer_v2::<_, SizedRecord>(data_dir).await; + writer_did_not_call_reset.assert(); + assert_reader_writer_v2_file_positions!(ledger, 0, expected_final_writer_file_id); + assert_file_does_not_exist_async!(&expected_final_write_data_file); + assert_eq!( + actual_writer_next_record_id, + ledger.state().get_next_writer_record_id() + ); + } + }); + + let parent = + trace_span!("writer_detects_when_last_record_was_flushed_but_id_wasnt_incremented"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn reader_throws_error_when_record_is_undecodable_via_metadata() { + static GET_METADATA_VALUE: AtomicU32 = AtomicU32::new(0); + static CAN_DECODE_VALUE: AtomicU32 = AtomicU32::new(0); + + #[derive(Debug)] + struct ControllableRecord(u8); + + impl Encodable for ControllableRecord { + type Metadata = u32; + type EncodeError = io::Error; + type DecodeError = io::Error; + + fn get_metadata() -> Self::Metadata { + GET_METADATA_VALUE.load(Ordering::Relaxed) + } + + fn can_decode(metadata: Self::Metadata) -> bool { + CAN_DECODE_VALUE.load(Ordering::Relaxed) == metadata + } + + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError> { + buffer.put_u8(self.0); + Ok(()) + } + + fn decode(_: Self::Metadata, mut buffer: B) -> Result { + let b = buffer.get_u8(); + Ok(ControllableRecord(b)) + } + } + + impl AddBatchNotifier for ControllableRecord { + fn add_batch_notifier(&mut self, batch: BatchNotifier) { + drop(batch); // We never check acknowledgements for this type + } + } + + impl ByteSizeOf for ControllableRecord { + fn allocated_bytes(&self) -> usize { + 0 + } + } + + impl EventCount for ControllableRecord { + fn event_count(&self) -> usize { + 1 + } + } + + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create a regular buffer, no customizations required. + let (mut writer, mut reader, _ledger) = create_default_buffer_v2(data_dir).await; + + // Write two `ControllableRecord` records which will encode with metadata matching our + // starting metadata state. We'll then make sure we can read the first one out before + // tweaking the value underpinning the `can_decode` logic. + writer + .write_record(ControllableRecord(21)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + writer + .write_record(ControllableRecord(86)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + // Write one more `ControllableRecord` record but with an adjusted metadata value that + // we'll make sure doesn't correctly convert from `u32` to `T::Metadata`. This is to + // exercise the codepath where the flags don't even seem to be valid at all i.e. bits + // are set that aren't even defined on the Vector side. + GET_METADATA_VALUE.store(33, Ordering::Relaxed); + writer + .write_record(ControllableRecord(54)) + .await + .expect("write should not fail"); + writer.flush().await.expect("flush should not fail"); + + // Now try to read back the first record, which should return correctly: + let first_read_result = reader.next().await; + assert!(matches!( + first_read_result, + Ok(Some(ControllableRecord(21))) + )); + + // And now try to read back the second record, but first, we'll tweak `CAN_DECODE_VALUE` + // so that it doesn't match the metadata value the second record was encoded with, which + // should cause an "incompatible" error: + CAN_DECODE_VALUE.store(1, Ordering::Relaxed); + let second_read_result = reader.next().await; + assert!(matches!(second_read_result, Err(ReaderError::Incompatible { .. }))); + + let ReaderError::Incompatible { reason: second_read_error_reason } = second_read_result.unwrap_err() else { + panic!("error should be ReadError::Incompatible"); + }; + + let expected_second_read_error_reason = format!("record metadata not supported (metadata: {:#036b})", 0_u32); + assert_eq!(expected_second_read_error_reason, second_read_error_reason); + + // And finally we try to read back the third record, which shouldn't even get to the + // `can_decode` step because the metadata value just couldn't be converted: + // And now try to read back the second record, but first, we'll tweak `CAN_DECODE_VALUE` + // so that it doesn't match the metadata value the second record was encoded with, which + // should cause an "incompatible" error: + let third_read_result = reader.next().await; + assert!(matches!(third_read_result, Err(ReaderError::Incompatible { .. }))); + let ReaderError::Incompatible { reason: third_read_error_reason } = third_read_result.unwrap_err() else { + panic!("error should be ReadError::Incompatible"); + }; + + let expected_third_read_error_reason_prefix = "invalid metadata for"; + assert!(third_read_error_reason.starts_with(expected_third_read_error_reason_prefix), + "error reason when metadata cannot be converted should start with 'metadata invalid for', got '{third_read_error_reason}' instead"); + } + }) + .await; +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/mod.rs b/lib/vector-buffers/src/variants/disk_v2/tests/mod.rs new file mode 100644 index 0000000000000..2319fbf97dce8 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/mod.rs @@ -0,0 +1,427 @@ +use std::{ + io::{self, Cursor}, + path::Path, + sync::Arc, +}; + +use tokio::{ + fs::OpenOptions, + io::{AsyncWriteExt, DuplexStream}, +}; + +use super::{ + io::{AsyncFile, Metadata, ProductionFilesystem, ReadableMemoryMap, WritableMemoryMap}, + ledger::LEDGER_LEN, + record::RECORD_HEADER_LEN, + Buffer, BufferReader, BufferWriter, DiskBufferConfigBuilder, Filesystem, Ledger, +}; +use crate::{ + buffer_usage_data::BufferUsageHandle, encoding::FixedEncodable, + variants::disk_v2::common::align16, Bufferable, +}; + +type FilesystemUnderTest = ProductionFilesystem; + +mod acknowledgements; +mod basic; +mod initialization; +mod invariants; +mod known_errors; +mod model; +mod record; +mod size_limits; + +impl AsyncFile for DuplexStream { + async fn metadata(&self) -> io::Result { + Ok(Metadata { len: 0 }) + } + + async fn sync_all(&self) -> io::Result<()> { + Ok(()) + } +} + +impl AsyncFile for Cursor> { + async fn metadata(&self) -> io::Result { + Ok(Metadata { len: 0 }) + } + + async fn sync_all(&self) -> io::Result<()> { + Ok(()) + } +} + +impl ReadableMemoryMap for Vec {} + +impl WritableMemoryMap for Vec { + fn flush(&self) -> io::Result<()> { + Ok(()) + } +} + +#[macro_export] +macro_rules! assert_buffer_is_empty { + ($ledger:expr) => { + assert_eq!( + $ledger.get_total_records(), + 0, + "ledger should have 0 records, but had {}", + $ledger.get_total_records() + ); + assert_eq!( + $ledger.get_total_buffer_size(), + 0, + "ledger should have 0 bytes, but had {} bytes", + $ledger.get_total_buffer_size() + ); + }; +} + +#[macro_export] +macro_rules! assert_buffer_records { + ($ledger:expr, $record_count:expr) => { + assert_eq!( + $ledger.get_total_records(), + u64::try_from($record_count).expect("Record count is out of range"), + "ledger should have {} records, but had {}", + $record_count, + $ledger.get_total_records() + ); + }; +} + +#[macro_export] +macro_rules! assert_buffer_size { + ($ledger:expr, $record_count:expr, $buffer_size:expr) => { + assert_eq!( + $ledger.get_total_records(), + u64::try_from($record_count).expect("Record count is out of range"), + "ledger should have {} records, but had {}", + $record_count, + $ledger.get_total_records() + ); + assert_eq!( + $ledger.get_total_buffer_size(), + u64::try_from($buffer_size).expect("Buffer size is out of range"), + "ledger should have {} bytes, but had {} bytes", + $buffer_size, + $ledger.get_total_buffer_size() + ); + }; +} + +#[macro_export] +macro_rules! assert_reader_writer_v2_file_positions { + ($ledger:expr, $reader:expr, $writer:expr) => {{ + let (reader, writer) = $ledger.get_current_reader_writer_file_id(); + assert_eq!( + u16::try_from($reader).expect("Reader value is out of range"), + reader, + "expected reader file ID of {}, got {} instead", + ($reader), + reader + ); + assert_eq!( + u16::try_from($writer).expect("Writer value is out of range"), + writer, + "expected writer file ID of {}, got {} instead", + ($writer), + writer + ); + }}; +} + +#[macro_export] +macro_rules! assert_reader_last_writer_next_positions { + ($ledger:expr, $reader_expected:expr, $writer_expected:expr) => {{ + let reader_actual = $ledger.state().get_last_reader_record_id(); + let writer_actual = $ledger.state().get_next_writer_record_id(); + assert_eq!( + $reader_expected, reader_actual, + "expected reader last read record ID of {}, got {} instead", + $reader_expected, reader_actual, + ); + assert_eq!( + $writer_expected, writer_actual, + "expected writer next record ID of {}, got {} instead", + $writer_expected, writer_actual, + ); + }}; +} + +#[macro_export] +macro_rules! assert_enough_bytes_written { + ($written:expr, $record_type:ty, $record_payload_size:expr) => { + assert!( + $written >= $record_payload_size as usize + 8 + std::mem::size_of::<$record_type>() + ); + }; +} + +#[macro_export] +macro_rules! set_data_file_length { + ($path:expr, $start_len:expr, $target_len:expr) => {{ + let mut data_file = OpenOptions::new() + .write(true) + .open(&$path) + .await + .expect("open should not fail"); + + // Just to make sure the data file matches our expected state before futzing with it. + let metadata = data_file + .metadata() + .await + .expect("metadata should not fail"); + assert_eq!( + ($start_len) as u64, + metadata.len(), + "expected data file to be {} bytes long, but was actually {} bytes long", + ($start_len) as u64, + metadata.len() + ); + + data_file + .set_len(($target_len) as u64) + .await + .expect("truncate should not fail"); + data_file.flush().await.expect("flush should not fail"); + data_file.sync_all().await.expect("sync should not fail"); + drop(data_file); + }}; +} + +/// Creates a disk v2 buffer with all default values i.e. maximum buffer size, etc. +pub(crate) async fn create_default_buffer_v2( + data_dir: P, +) -> ( + BufferWriter, + BufferReader, + Arc>, +) +where + P: AsRef, + R: Bufferable, +{ + let config = DiskBufferConfigBuilder::from_path(data_dir) + .build() + .expect("creating buffer should not fail"); + let usage_handle = BufferUsageHandle::noop(); + Buffer::from_config_inner(config, usage_handle) + .await + .expect("should not fail to create buffer") +} + +/// Creates a disk v2 buffer with all default values, but returns a handle to the buffer usage tracker. +pub(crate) async fn create_default_buffer_v2_with_usage( + data_dir: P, +) -> ( + BufferWriter, + BufferReader, + Arc>, + BufferUsageHandle, +) +where + P: AsRef, + R: Bufferable, +{ + let config = DiskBufferConfigBuilder::from_path(data_dir) + .build() + .expect("creating buffer should not fail"); + let usage_handle = BufferUsageHandle::noop(); + let (writer, reader, ledger) = Buffer::from_config_inner(config, usage_handle.clone()) + .await + .expect("should not fail to create buffer"); + (writer, reader, ledger, usage_handle) +} + +/// Creates a disk v2 buffer that is sized such that only a fixed number of data files are allowed. +/// +/// We do this based on limiting the maximum buffer size, knowing that if the maximum data file size is N, and we want +/// to limit ourselves to M data files, the maximum buffer size should be N*M. We additionally constrain our maximum +/// record size to the maximum data file size in order to satisfy the configuration builder. +pub(crate) async fn create_buffer_v2_with_data_file_count_limit( + data_dir: P, + max_data_file_size: u64, + data_file_count_limit: u64, +) -> ( + BufferWriter, + BufferReader, + Arc>, +) +where + P: AsRef, + R: Bufferable, +{ + // We do this here, despite the fact that configuration builder also implicitly does it, because our error message + // can be more pointed given that we're running tests, whereas the user-visible error message is just about getting + // them to set a valid amount without needing to understand the internals. + assert!( + data_file_count_limit >= 2, + "data file count limit must be at least 2" + ); + + let max_record_size = usize::try_from(max_data_file_size).unwrap(); + + // We also have to compensate for the size of the ledger itself, as the configuration builder pays attention to that + // in the context of the configured maximum buffer size. + let ledger_len: u64 = LEDGER_LEN.try_into().unwrap(); + let max_buffer_size = max_data_file_size + .checked_mul(data_file_count_limit) + .and_then(|n| n.checked_add(ledger_len)) + .unwrap(); + + let config = DiskBufferConfigBuilder::from_path(data_dir) + .max_record_size(max_record_size) + .max_data_file_size(max_data_file_size) + .max_buffer_size(max_buffer_size) + .build() + .expect("creating buffer should not fail"); + let usage_handle = BufferUsageHandle::noop(); + + Buffer::from_config_inner(config, usage_handle) + .await + .expect("should not fail to create buffer") +} + +/// Creates a disk v2 buffer with the specified maximum record size. +pub(crate) async fn create_buffer_v2_with_max_record_size( + data_dir: P, + max_record_size: usize, +) -> ( + BufferWriter, + BufferReader, + Arc>, +) +where + P: AsRef, + R: Bufferable, +{ + let config = DiskBufferConfigBuilder::from_path(data_dir) + .max_record_size(max_record_size) + .build() + .expect("creating buffer should not fail"); + let usage_handle = BufferUsageHandle::noop(); + + Buffer::from_config_inner(config, usage_handle) + .await + .expect("should not fail to create buffer") +} + +/// Creates a disk v2 buffer with the specified maximum data file size. +/// +/// We additionally constrain our maximum record size to the maximum data file size in order to satisfy the configuration builder. +pub(crate) async fn create_buffer_v2_with_max_data_file_size( + data_dir: P, + max_data_file_size: u64, +) -> ( + BufferWriter, + BufferReader, + Arc>, +) +where + P: AsRef, + R: Bufferable, +{ + let max_record_size = usize::try_from(max_data_file_size).unwrap(); + + let config = DiskBufferConfigBuilder::from_path(data_dir) + .max_data_file_size(max_data_file_size) + .max_record_size(max_record_size) + .build() + .expect("creating buffer should not fail"); + let usage_handle = BufferUsageHandle::noop(); + + Buffer::from_config_inner(config, usage_handle) + .await + .expect("should not fail to create buffer") +} + +/// Creates a disk v2 buffer with the specified write buffer size. +pub(crate) async fn create_buffer_v2_with_write_buffer_size( + data_dir: P, + write_buffer_size: usize, +) -> ( + BufferWriter, + BufferReader, + Arc>, +) +where + P: AsRef, + R: Bufferable, +{ + let config = DiskBufferConfigBuilder::from_path(data_dir) + .write_buffer_size(write_buffer_size) + .build() + .expect("creating buffer should not fail"); + let usage_handle = BufferUsageHandle::noop(); + + Buffer::from_config_inner(config, usage_handle) + .await + .expect("should not fail to create buffer") +} + +pub(crate) fn get_corrected_max_record_size(payload: &T) -> usize +where + T: FixedEncodable, +{ + let payload_len = payload + .encoded_size() + .expect("All test record types must return a valid encoded size."); + let total = RECORD_HEADER_LEN + payload_len; + + align16(total) +} + +pub(crate) fn get_minimum_data_file_size_for_record_payload(payload: &T) -> u64 +where + T: FixedEncodable, +{ + // This is just the maximum record size, compensating for the record header length. + let max_record_size = get_corrected_max_record_size(payload); + u64::try_from(max_record_size).unwrap() +} + +pub(crate) async fn read_next(reader: &mut BufferReader) -> Option +where + T: Bufferable, + FS: Filesystem, + FS::File: Unpin, +{ + reader.next().await.expect("read should not fail") +} + +pub(crate) async fn read_next_some(reader: &mut BufferReader) -> T +where + T: Bufferable, + FS: Filesystem, + FS::File: Unpin, +{ + read_next(reader) + .await + .expect("read should produce a record") +} + +pub(crate) async fn set_file_length>( + path: P, + initial_len: u64, + target_len: u64, +) -> io::Result<()> { + let mut file = OpenOptions::new() + .write(true) + .open(&path) + .await + .expect("open should not fail"); + + // Just to make sure the file matches the expected starting length before futzing with it. + let metadata = file.metadata().await.expect("metadata should not fail"); + assert_eq!(initial_len, metadata.len()); + + file.set_len(target_len) + .await + .expect("set_len should not fail"); + file.flush().await.expect("flush should not fail"); + file.sync_all().await.expect("sync should not fail"); + drop(file); + + Ok(()) +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/model/action.rs b/lib/vector-buffers/src/variants/disk_v2/tests/model/action.rs new file mode 100644 index 0000000000000..a5e38989599ed --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/model/action.rs @@ -0,0 +1,86 @@ +use proptest::{ + arbitrary::any, + collection::{vec as arb_vec, SizeRange}, + prop_compose, prop_oneof, + strategy::Just, + strategy::Strategy, +}; + +use super::record::Record; + +/// Input action for the model/system under test. +/// +/// These actions map directly to methods that can be called from the reader or writer. +/// +/// One notable difference compared to the real types is that acknowledgements here are only +/// allowed to acknowledge one read at a time. +#[derive(Clone, Debug)] +pub enum Action { + WriteRecord(Record), + FlushWrites, + ReadRecord, + AcknowledgeRead, +} + +prop_compose! { + fn arb_ack_amount(limit: usize)(amount in 1..limit) -> usize { + amount + } +} + +fn arb_action() -> impl Strategy { + // Overall, we want reads and writes to be equal, with slightly fewer acks, and slightly fewer + // still flushes of writes. + prop_oneof![ + 3 => Just(Action::FlushWrites), + 5 => Just(Action::ReadRecord), + 4 => Just(Action::AcknowledgeRead), + 5 => any::<(u32, u16, u8, u8)>().prop_map(|(id, base_size, size_offset, event_count)| { + let size = u32::from(base_size) + u32::from(size_offset); + let event_count = event_count % 7; + Action::WriteRecord(Record::new(id, size, u32::from(event_count))) + }), + ] +} + +pub fn arb_actions(len_range: R) -> impl Strategy> +where + R: Into, +{ + arb_vec(arb_action(), len_range).prop_map(sanitize_raw_actions) +} + +/// Sanitizes raw actions generated by proptest into a valid sequence. +/// +/// While we obviously want proptest to generate randomized orderings of actions to exercise our +/// model and our system under test (SUT), there are certain combinations/orderings that are simply +/// not valid. For example, an acknowledgement is only generated by the user of a buffer once +/// they've gotten a record from a `read` operation, so allowing an acknowledgement to exist in an +/// action sequence where there is no read is not valid and never will be. There is no reason to +/// test such a sequence. +pub fn sanitize_raw_actions(actions: Vec) -> Vec { + let mut unread_event_count: usize = 0; + let mut unacked_events: usize = 0; + + actions + .into_iter() + .filter_map(|a| match a { + Action::WriteRecord(record) => { + unread_event_count += 1; + Some(Action::WriteRecord(record)) + } + Action::ReadRecord => { + if unread_event_count > 0 { + unread_event_count -= 1; + unacked_events += 1; + } + Some(Action::ReadRecord) + } + Action::AcknowledgeRead => (unacked_events > 0).then(|| { + unacked_events -= 1; + Action::AcknowledgeRead + }), + Action::FlushWrites => Some(Action::FlushWrites), + }) + .collect::>() +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/model/common.rs b/lib/vector-buffers/src/variants/disk_v2/tests/model/common.rs new file mode 100644 index 0000000000000..abbe785b9caef --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/model/common.rs @@ -0,0 +1,88 @@ +use std::time::Duration; + +use proptest::{arbitrary::any, strategy::Strategy}; + +use super::{filesystem::TestFilesystem, record::Record}; +use crate::variants::disk_v2::{ + BufferReader, BufferWriter, DiskBufferConfig, DiskBufferConfigBuilder, ReaderError, WriterError, +}; + +pub type TestReader = BufferReader; +pub type TestWriter = BufferWriter; +pub type ReaderResult = Result>; +pub type WriterResult = Result>; + +// This is specifically set at 60KB because we allow a maximum record size of up to 64KB, and so +// we'd likely to occasionally encounter a record that, when encoded, is larger than the write +// buffer overall, which exercises the "write this record directly to the wrapped writer" logic that +// exists in `tokio::io::BufWriter` itself. +pub const TEST_WRITE_BUFFER_SIZE: usize = 60 * 1024; + +/// Result of applying an action to the model. +/// +/// The model can represent asynchronous computation, so progress can be both the completion of an +/// operation, whether success or failure, as well as the indication of a lack of completion +/// (blocked, or pending in future parlance). +#[derive(Debug, PartialEq)] +pub enum Progress { + RecordWritten(usize), + WriteError(WriterError), + RecordRead(Option), + ReadError(ReaderError), + Blocked, +} + +pub fn arb_buffer_config() -> impl Strategy> { + any::<(u16, u16, u16)>() + .prop_map(|(n1, n2, n3)| { + let max_buffer_size = u64::from(n1) * 64; + let max_data_file_size = u64::from(n2) * 2; + let max_record_size = n3.into(); + + let mut path = std::env::temp_dir(); + path.push("vector-disk-v2-model"); + + DiskBufferConfigBuilder::from_path(path) + .max_buffer_size(max_buffer_size) + .max_data_file_size(max_data_file_size) + .max_record_size(max_record_size) + .write_buffer_size(TEST_WRITE_BUFFER_SIZE) + // This really only affects how often we flush the ledger, because we always `flush` + // after writes to ensure our buffered writes make it to the data files for the + // readers to make progress, and we're not testing anything about whether or not the + // ledger makes it to disk durably. + .flush_interval(Duration::from_secs(10)) + .filesystem(TestFilesystem::default()) + }) + .prop_filter_map( + "maximum size limits were too high, or zero", + validate_buffer_config, + ) +} + +/// Validates the given buffer config builder and generates a resulting configuration. +/// +/// If the builder has been configured incorrectly (i.e. zero values), or if the configuration is +/// valid but has values that are not appropriate for being used under test (i.e. values are way too +/// large and would balloon the run-time of the test) then `None` is returned. +/// +/// Otherwise, `Some(DiskBufferConfig)` is returned. +pub fn validate_buffer_config( + builder: DiskBufferConfigBuilder, +) -> Option> { + builder + .build() + // If building the configuration failed, just return `None`. + .ok() + .filter(|config| { + // Limit our buffer config to the following: + // - max buffer size of 64MB + // - max data file size of 2MB + // - max record size of 1MB + // + // Otherwise, the model just runs uselessly slow. + config.max_buffer_size <= 64_000_000 + && config.max_data_file_size <= 2_000_000 + && config.max_record_size <= 1_000_000 + }) +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/model/filesystem.rs b/lib/vector-buffers/src/variants/disk_v2/tests/model/filesystem.rs new file mode 100644 index 0000000000000..f6d5d11d5d079 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/model/filesystem.rs @@ -0,0 +1,355 @@ +use std::{ + cmp, + collections::HashMap, + fmt, io, + path::{Path, PathBuf}, + pin::Pin, + sync::{Arc, Mutex}, + task::{Context, Poll}, +}; + +use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; + +use crate::variants::disk_v2::{ + io::{AsyncFile, Metadata, ReadableMemoryMap, WritableMemoryMap}, + Filesystem, +}; + +fn io_err_already_exists() -> io::Error { + io::Error::new(io::ErrorKind::AlreadyExists, "file already exists") +} + +fn io_err_not_found() -> io::Error { + io::Error::new(io::ErrorKind::NotFound, "file not found") +} + +fn io_err_permission_denied() -> io::Error { + io::Error::new(io::ErrorKind::PermissionDenied, "permission denied") +} + +struct FileInner { + buf: Option>, +} + +impl FileInner { + fn consume_buf(&mut self) -> Vec { + self.buf.take().expect("tried to consume buf, but empty") + } + + fn return_buf(&mut self, buf: Vec) { + let previous = self.buf.replace(buf); + assert!(previous.is_none()); + } +} + +impl Default for FileInner { + fn default() -> Self { + Self { + buf: Some(Vec::new()), + } + } +} + +impl fmt::Debug for FileInner { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let buf_debug = match &self.buf { + None => String::from("(none)"), + Some(buf) => format!("({} bytes)", buf.len()), + }; + + f.debug_struct("FileInner") + .field("buf", &buf_debug) + .finish() + } +} + +#[derive(Clone)] +pub struct TestFile { + inner: Arc>, + is_writable: bool, + read_pos: usize, +} + +impl TestFile { + fn new() -> Self { + Self { + inner: Arc::new(Mutex::new(FileInner::default())), + is_writable: false, + read_pos: 0, + } + } + + fn set_readable(&mut self) { + self.is_writable = false; + } + + fn set_writable(&mut self) { + self.is_writable = true; + } + + fn as_mmap(&self) -> TestMmap { + let inner = Arc::clone(&self.inner); + inner.into() + } +} + +impl fmt::Debug for TestFile { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let inner = self.inner.lock(); + f.debug_struct("TestFile") + .field("data", &inner) + .field("writable", &self.is_writable) + .field("read_pos", &self.read_pos) + .finish() + } +} + +pub struct TestMmap { + inner: Arc>, + buf: Option>, +} + +impl From>> for TestMmap { + fn from(inner: Arc>) -> Self { + let buf = { + let mut guard = inner.lock().expect("poisoned"); + guard.consume_buf() + }; + + Self { + inner, + buf: Some(buf), + } + } +} + +impl Drop for TestMmap { + fn drop(&mut self) { + let buf = self.buf.take().expect("buf must exist"); + let mut inner = self.inner.lock().expect("poisoned"); + inner.return_buf(buf); + } +} + +impl AsRef<[u8]> for TestMmap { + fn as_ref(&self) -> &[u8] { + self.buf.as_ref().expect("mmap buf consumed").as_slice() + } +} + +impl ReadableMemoryMap for TestMmap {} + +impl WritableMemoryMap for TestMmap { + fn flush(&self) -> io::Result<()> { + Ok(()) + } +} + +impl AsyncRead for TestFile { + fn poll_read( + mut self: Pin<&mut Self>, + _cx: &mut Context<'_>, + buf: &mut ReadBuf<'_>, + ) -> Poll> { + let new_read_pos = { + let mut inner = self.inner.lock().expect("poisoned"); + let src = inner.buf.as_mut().expect("file buf consumed"); + + let cap = buf.remaining(); + let pos = self.read_pos; + let available = src.len() - pos; + let n = cmp::min(cap, available); + + let to = pos + n; + buf.put_slice(&src[pos..to]); + to + }; + + self.read_pos = new_read_pos; + + Poll::Ready(Ok(())) + } +} + +impl AsyncWrite for TestFile { + fn poll_write( + self: Pin<&mut Self>, + _cx: &mut Context<'_>, + buf: &[u8], + ) -> Poll> { + if !self.is_writable { + return Err(io_err_permission_denied()).into(); + } + + let mut inner = self.inner.lock().expect("poisoned"); + let dst = inner.buf.as_mut().expect("file buf consumed"); + dst.extend_from_slice(buf); + + Poll::Ready(Ok(buf.len())) + } + + fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll> { + if !self.is_writable { + return Err(io_err_permission_denied()).into(); + } + + Poll::Ready(Ok(())) + } + + fn poll_shutdown(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll> { + if !self.is_writable { + return Err(io_err_permission_denied()).into(); + } + + Poll::Ready(Ok(())) + } +} + +impl AsyncFile for TestFile { + #[instrument(skip(self), level = "debug")] + async fn metadata(&self) -> io::Result { + let len = { + let inner = self.inner.lock().expect("poisoned"); + inner.buf.as_ref().expect("file buf consumed").len() + }; + + Ok(Metadata { len: len as u64 }) + } + + async fn sync_all(&self) -> io::Result<()> { + Ok(()) + } +} + +// Inner state of the test filesystem. +#[derive(Debug, Default)] +struct FilesystemInner { + files: HashMap, +} + +impl FilesystemInner { + #[instrument(skip(self), level = "debug")] + fn open_file_writable(&mut self, path: &Path) -> TestFile { + let file = self + .files + .entry(path.to_owned()) + .or_insert_with(TestFile::new); + let mut new_file = file.clone(); + new_file.set_writable(); + + new_file + } + + #[instrument(skip(self), level = "debug")] + fn open_file_writable_atomic(&mut self, path: &Path) -> Option { + if self.files.contains_key(path) { + None + } else { + let mut new_file = TestFile::new(); + new_file.set_writable(); + + self.files.insert(path.to_owned(), new_file.clone()); + + Some(new_file) + } + } + + fn open_file_readable(&mut self, path: &Path) -> Option { + self.files.get(path).cloned().map(|mut f| { + f.set_readable(); + f + }) + } + + fn open_mmap_readable(&mut self, path: &Path) -> Option { + self.files.get(path).map(TestFile::as_mmap) + } + + fn open_mmap_writable(&mut self, path: &Path) -> Option { + self.files.get(path).map(TestFile::as_mmap) + } + + fn delete_file(&mut self, path: &Path) -> bool { + self.files.remove(path).is_some() + } +} + +/// A `Filesystem` that tracks files in memory and allows introspection from the outside. +pub struct TestFilesystem { + inner: Arc>, +} + +impl fmt::Debug for TestFilesystem { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let inner = self.inner.lock().expect("poisoned"); + f.debug_struct("TestFilesystem") + .field("files", &inner.files) + .finish() + } +} + +impl Clone for TestFilesystem { + fn clone(&self) -> Self { + Self::default() + } +} + +impl Default for TestFilesystem { + fn default() -> Self { + Self { + inner: Arc::new(Mutex::new(FilesystemInner::default())), + } + } +} + +impl Filesystem for TestFilesystem { + type File = TestFile; + type MemoryMap = TestMmap; + type MutableMemoryMap = TestMmap; + + async fn open_file_writable(&self, path: &Path) -> io::Result { + let mut inner = self.inner.lock().expect("poisoned"); + Ok(inner.open_file_writable(path)) + } + + async fn open_file_writable_atomic(&self, path: &Path) -> io::Result { + let mut inner = self.inner.lock().expect("poisoned"); + match inner.open_file_writable_atomic(path) { + Some(file) => Ok(file), + None => Err(io_err_already_exists()), + } + } + + async fn open_file_readable(&self, path: &Path) -> io::Result { + let mut inner = self.inner.lock().expect("poisoned"); + match inner.open_file_readable(path) { + Some(file) => Ok(file), + None => Err(io_err_not_found()), + } + } + + async fn open_mmap_readable(&self, path: &Path) -> io::Result { + let mut inner = self.inner.lock().expect("poisoned"); + match inner.open_mmap_readable(path) { + Some(mmap) => Ok(mmap), + None => Err(io_err_not_found()), + } + } + + async fn open_mmap_writable(&self, path: &Path) -> io::Result { + let mut inner = self.inner.lock().expect("poisoned"); + match inner.open_mmap_writable(path) { + Some(mmap) => Ok(mmap), + None => Err(io_err_not_found()), + } + } + + async fn delete_file(&self, path: &Path) -> io::Result<()> { + let mut inner = self.inner.lock().expect("poisoned"); + if inner.delete_file(path) { + Ok(()) + } else { + Err(io_err_not_found()) + } + } +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/model/mod.rs b/lib/vector-buffers/src/variants/disk_v2/tests/model/mod.rs new file mode 100644 index 0000000000000..d723af0fa6ca9 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/model/mod.rs @@ -0,0 +1,1011 @@ +use std::{ + collections::{HashMap, VecDeque}, + io::Cursor, + sync::{ + atomic::{AtomicBool, AtomicU16, AtomicU64, Ordering}, + Arc, Mutex, + }, + task::Poll, +}; + +use crossbeam_queue::SegQueue; +use proptest::{prop_assert, prop_assert_eq, proptest}; +use temp_dir::TempDir; +use tokio::runtime::Builder; + +use crate::{ + buffer_usage_data::BufferUsageHandle, + encoding::FixedEncodable, + test::install_tracing_helpers, + variants::disk_v2::{ + common::MAX_FILE_ID, record::RECORD_HEADER_LEN, writer::RecordWriter, Buffer, + DiskBufferConfig, WriterError, + }, + EventCount, +}; + +mod action; +use self::{ + action::{arb_actions, Action}, + record::EncodeError, +}; + +mod common; +use self::common::{arb_buffer_config, Progress}; + +mod filesystem; +use self::filesystem::TestFilesystem; + +mod record; +use self::record::Record; + +mod sequencer; +use self::sequencer::{ActionSequencer, ReadActionResult, WriteActionResult}; + +/// Model for the filesystem. +/// +/// Provides roughly-equivalent methods as the `Filesystem` trait, and internally holds the state of +/// all files used by the reader and writer. +#[derive(Debug)] +struct FilesystemModel { + file_size_limit: u64, + write_buffer_size: u64, + files: Mutex>, +} + +impl FilesystemModel { + pub fn new(config: &DiskBufferConfig) -> Self { + Self { + file_size_limit: config.max_data_file_size, + write_buffer_size: config.write_buffer_size as u64, + files: Mutex::default(), + } + } + + fn open_file(&self, id: u16) -> Option { + let files = self.files.lock().expect("poisoned"); + files.get(&id).cloned() + } + + fn create_file(&self, id: u16) -> Option { + let mut files = self.files.lock().expect("poisoned"); + if files.contains_key(&id) { + return None; + } + + let file = FileModel::new(self.file_size_limit, self.write_buffer_size); + files.insert(id, file.clone()); + + Some(file) + } + + fn delete_file(&self, id: u16) -> bool { + let mut files = self.files.lock().expect("poisoned"); + files.remove(&id).is_some() + } +} + +/// Models the all-in behavior of for a data file wrapped with a buffered writer. +/// +/// We deal explicitly with records but do track the on-disk byte size of a record, and correctly +/// encapsulate the concept of a buffered writer by tracking unflushed records, as well as +/// forcefully flushing when the internal buffer is overrun, and so on. +#[derive(Clone, Debug)] +struct FileModel { + file_size_limit: u64, + write_buffer_size: u64, + unflushed_records: Arc>, + unflushed_bytes: Arc, + flushed_records: Arc>, + flushed_bytes: Arc, + finalized: Arc, +} + +impl FileModel { + fn new(file_size_limit: u64, write_buffer_size: u64) -> Self { + Self { + file_size_limit, + write_buffer_size, + unflushed_records: Arc::default(), + unflushed_bytes: Arc::default(), + flushed_records: Arc::default(), + flushed_bytes: Arc::default(), + finalized: Arc::default(), + } + } + + fn finalize(&self) { + self.finalized.store(true, Ordering::SeqCst); + } + + fn is_finalized(&self) -> bool { + self.finalized.load(Ordering::SeqCst) + } + + fn write(&self, record: Record, record_len: u64) -> (Option, usize, u64) { + assert!( + !self.is_finalized(), + "invariant violation: tried to write to file after finalization" + ); + + // If this record, when written, would exceed the maximum file size, we have to reject it, + // unless the file is entirely empty, in which case we always allow at least one write: + let file_size_overall = + self.flushed_bytes.load(Ordering::SeqCst) + self.unflushed_bytes.load(Ordering::SeqCst); + if file_size_overall > 0 && file_size_overall + record_len > self.file_size_limit { + return (Some(record), 0, 0); + } + + let mut flushed_events = 0; + let mut flushed_bytes = 0; + + // If this write would exceed our internal write buffer capacity, flush any unflushed + // records first: + if self.unflushed_bytes.load(Ordering::SeqCst) + record_len > self.write_buffer_size { + let (events, bytes) = self.flush(); + flushed_events += events; + flushed_bytes += bytes; + } + + if record_len >= self.write_buffer_size { + // The record is bigger the write buffer itself, so just write it immediately: + flushed_events += record.event_count(); + flushed_bytes += record_len; + + self.flushed_bytes.fetch_add(record_len, Ordering::SeqCst); + self.flushed_records.push((record, record_len)); + } else { + self.unflushed_bytes.fetch_add(record_len, Ordering::SeqCst); + self.unflushed_records.push((record, record_len)); + } + + (None, flushed_events, flushed_bytes) + } + + fn flush(&self) -> (usize, u64) { + let mut flushed_events = 0; + let mut flushed_bytes = 0; + while let Some((record, record_len)) = self.unflushed_records.pop() { + flushed_events += record.event_count(); + flushed_bytes += record_len; + + self.unflushed_bytes.fetch_sub(record_len, Ordering::SeqCst); + self.flushed_bytes.fetch_add(record_len, Ordering::SeqCst); + self.flushed_records.push((record, record_len)); + } + + (flushed_events, flushed_bytes) + } + + fn read(&self) -> Option<(Record, u64)> { + self.flushed_records.pop() + } + + fn flushed_size(&self) -> u64 { + self.flushed_bytes.load(Ordering::SeqCst) + } + + fn unflushed_size(&self) -> u64 { + self.unflushed_bytes.load(Ordering::SeqCst) + } +} + +/// Model for the ledger. +/// +/// Very simplistic as we really just use it to hold the buffer size, in bytes and events, and the +/// reader/writer file state. +struct LedgerModel { + config: DiskBufferConfig, + buffer_size: AtomicU64, + writer_file_id: AtomicU16, + reader_file_id: AtomicU16, + writer_done: AtomicBool, + unread_events: AtomicU64, +} + +impl LedgerModel { + fn new(config: &DiskBufferConfig) -> Self { + Self { + config: config.clone(), + buffer_size: AtomicU64::new(0), + writer_file_id: AtomicU16::new(0), + reader_file_id: AtomicU16::new(0), + writer_done: AtomicBool::new(false), + unread_events: AtomicU64::new(0), + } + } + + fn config(&self) -> &DiskBufferConfig { + &self.config + } + + fn mark_writer_done(&self) { + self.writer_done.store(true, Ordering::SeqCst); + } + + fn is_writer_done(&self) -> bool { + self.writer_done.load(Ordering::SeqCst) + } + + fn get_buffer_size(&self) -> u64 { + self.buffer_size.load(Ordering::SeqCst) + } + + fn increment_buffer_size(&self, amount: u64) { + self.buffer_size.fetch_add(amount, Ordering::SeqCst); + } + + fn decrement_buffer_size(&self, amount: u64) { + self.buffer_size.fetch_sub(amount, Ordering::SeqCst); + } + + fn get_unread_events(&self) -> u64 { + self.unread_events.load(Ordering::SeqCst) + } + + fn increment_unread_events(&self, amount: u64) { + self.unread_events.fetch_add(amount, Ordering::SeqCst); + } + + fn decrement_unread_events(&self, amount: u64) { + self.unread_events.fetch_sub(amount, Ordering::SeqCst); + } + + fn get_writer_file_id(&self) -> u16 { + self.writer_file_id.load(Ordering::SeqCst) % MAX_FILE_ID + } + + fn increment_writer_file_id(&self) { + self.writer_file_id.fetch_add(1, Ordering::SeqCst); + } + + fn get_reader_file_id(&self) -> u16 { + self.reader_file_id.load(Ordering::SeqCst) % MAX_FILE_ID + } + + fn increment_reader_file_id(&self) { + self.reader_file_id.fetch_add(1, Ordering::SeqCst); + } +} + +enum ReaderModelState { + Idle, + PendingRead, +} + +impl ReaderModelState { + fn transition_to_idle(&mut self) { + match self { + Self::Idle => panic!("should not transition to idle when already idle"), + Self::PendingRead => *self = Self::Idle, + } + } + + fn transition_to_reading(&mut self) { + *self = Self::PendingRead; + } +} + +/// Model for the reader. +struct ReaderModel { + filesystem: Arc, + ledger: Arc, + state: ReaderModelState, + current_file: Option, + current_file_bytes_read: u64, + current_file_records_read: usize, + outstanding_event_acks: usize, + unconsumed_event_acks: usize, + pending_record_acks: VecDeque<(usize, u64)>, + unconsumed_record_acks: usize, + pending_data_file_acks: VecDeque<(u16, usize)>, +} + +impl ReaderModel { + fn new(filesystem: Arc, ledger: Arc) -> Self { + let mut reader = Self { + filesystem, + ledger, + state: ReaderModelState::Idle, + current_file: None, + current_file_bytes_read: 0, + current_file_records_read: 0, + outstanding_event_acks: 0, + unconsumed_event_acks: 0, + pending_record_acks: VecDeque::new(), + unconsumed_record_acks: 0, + pending_data_file_acks: VecDeque::new(), + }; + + // We do a dummy call to `check_ready` to simulate what happens when a real buffer is created, + // as the real initialization process always ensures the current reader data file exists/is opened. + reader.check_ready(); + + reader + } + + fn reset(&mut self) { + self.current_file = None; + self.current_file_records_read = 0; + self.current_file_bytes_read = 0; + } + + fn move_to_next_file(&mut self) { + let required_record_acks = self.current_file_records_read; + let current_file_id = self.ledger.get_reader_file_id(); + self.pending_data_file_acks + .push_back((current_file_id, required_record_acks)); + + self.reset(); + self.ledger.increment_reader_file_id(); + } + + fn handle_acks(&mut self) { + // Process record acknowledgements first. + while self.unconsumed_event_acks > 0 && !self.pending_record_acks.is_empty() { + let (required_event_acks, record_bytes) = + self.pending_record_acks.front().copied().unwrap(); + if self.unconsumed_event_acks > 0 { + // We have enough unconsumed event acknowledgements to fully acknowledge this + // record. Remove it, consume the event acknowledgements, add a record + // acknowledgement, and update the buffer size. + _ = self.pending_record_acks.pop_front().unwrap(); + self.unconsumed_event_acks -= 1; + self.unconsumed_record_acks += 1; + + self.ledger.decrement_buffer_size(record_bytes); + self.ledger + .decrement_unread_events(required_event_acks as u64); + } else { + // Not enough event acknowledgements to proceed, so we can't do anything more. + break; + } + } + + // Now process data file acknowledgements. + while self.unconsumed_record_acks > 0 && !self.pending_data_file_acks.is_empty() { + let (file_id, required_record_acks) = + self.pending_data_file_acks.front().copied().unwrap(); + if self.unconsumed_record_acks >= required_record_acks { + // We have enough unconsumed record acknowledgements to fully acknowledge this data + // file. Remove it, consume the record acknowledgements, and delete the data file. + _ = self.pending_data_file_acks.pop_front().unwrap(); + self.unconsumed_record_acks -= required_record_acks; + + assert!( + self.filesystem.delete_file(file_id), + "invariant violation: tried to delete file id {file_id}, but file does not exist" + ); + } else { + // Not enough delete acks to proceed, so we can't do anything more. + break; + } + } + } + + fn done_with_current_file(&mut self) -> bool { + let current_file = self.current_file.as_ref().unwrap(); + let file_flushed_bytes = current_file.flushed_size(); + + // If we've read as many bytes as there are flushed bytes in the file, and the file has been + // finalized, then yes, we've gone as far as we can reading this file. + self.current_file_bytes_read == file_flushed_bytes && current_file.is_finalized() + } + + fn done_overall(&mut self) -> bool { + let reader_file_id = self.ledger.get_reader_file_id(); + let writer_file_id = self.ledger.get_writer_file_id(); + let writer_done = self.ledger.is_writer_done(); + let buffer_empty = self.ledger.get_buffer_size() == 0; + + self.done_with_current_file() + && buffer_empty + && writer_done + && reader_file_id == writer_file_id + } + + fn check_ready(&mut self) -> bool { + // If we have a data file open already, then we're good: + if self.current_file.is_some() { + return true; + } + + // Try to open the file, and if it does not exist yet, we have to wait for the writer: + let id = self.ledger.get_reader_file_id(); + match self.filesystem.open_file(id) { + Some(file) => { + self.current_file = Some(file); + true + } + None => false, + } + } + + fn read_record(&mut self) -> Progress { + self.state.transition_to_reading(); + + loop { + // Try and process acknowledgements before anything else. + self.handle_acks(); + + // If we can't open our desired current data file, we wait. + if !self.check_ready() { + return Progress::Blocked; + } + + // If the writer is all done, and we've caught up to it, then we have no more records to read. + if self.done_overall() { + return Progress::RecordRead(None); + } + + let current_file = self.current_file.as_ref().unwrap(); + if let Some((record, record_bytes)) = current_file.read() { + self.track_read(record.event_count(), record_bytes); + + self.state.transition_to_idle(); + + return Progress::RecordRead(Some(record)); + } + + // If we've read the entirety of the current data file, and it's finalized, we have to + // move to the next one. + if self.done_with_current_file() { + self.move_to_next_file(); + continue; + } + + return Progress::Blocked; + } + } + + fn track_read(&mut self, event_count: usize, bytes_read: u64) { + // We need to track how many acknowledgements we expect to come in based on the number of + // records read vs the number of their events that have been acknowledged, as we only adjust + // the buffer size when a record has been fully acknowledged, since one record may contain + // multiple events. + self.outstanding_event_acks += 1; + self.pending_record_acks + .push_back((event_count, bytes_read)); + + // Keep track of how much progress we've made in terms of this specific data file. + self.current_file_records_read += 1; + self.current_file_bytes_read += bytes_read; + } + + fn acknowledge_read(&mut self) { + // We check to make sure that we're not about to acknowledge more events than we actually + // have read but have not yet been acknowledged, because that just should be possible. + assert!( + self.outstanding_event_acks > 0, + "invariant violation: {} events unacked, tried to ack 1", + self.outstanding_event_acks, + ); + + // Update the outstanding count of events which have not yet been acknowledged, and also + // update the total number of acknowledgements we've gotten but have not yet been consumed, + // as a record may have multiple events and they all need to be acknowledged before we can + // actually count the record as fully acknowledged and removed from the buffer, etc. + self.outstanding_event_acks -= 1; + self.unconsumed_event_acks += 1; + } +} + +enum WriterModelState { + Idle, + PendingWrite, + Closed, +} + +impl WriterModelState { + fn transition_to_idle(&mut self) { + match self { + Self::Idle => panic!("should not transition to idle when already idle"), + Self::Closed => panic!("should not transition to idle when already closed"), + Self::PendingWrite => *self = Self::Idle, + } + } + + fn transition_to_writing(&mut self) { + match self { + Self::Idle => *self = Self::PendingWrite, + Self::PendingWrite { .. } => {} + Self::Closed => panic!("should not transition to writing when already closed"), + } + } + + fn transition_to_closed(&mut self) -> bool { + if let Self::Closed = self { + false + } else { + *self = Self::Closed; + true + } + } +} + +/// Model for the writer. +struct WriterModel { + filesystem: Arc, + ledger: Arc, + current_file: Option, + current_file_size: u64, + current_file_full: bool, + state: WriterModelState, + record_writer: RecordWriter>, Record>, +} + +impl WriterModel { + fn new(filesystem: Arc, ledger: Arc) -> Self { + let record_writer = RecordWriter::new( + Cursor::new(Vec::new()), + 0, + ledger.config().write_buffer_size, + ledger.config().max_data_file_size, + ledger.config().max_record_size, + ); + + let mut writer = Self { + filesystem, + ledger, + current_file: None, + current_file_size: 0, + current_file_full: false, + state: WriterModelState::Idle, + record_writer, + }; + + // We do a dummy call to `check_ready` to simulate what happens when a real buffer is created, + // as the real initialization process always ensures the current writer data file is created/exists. + writer.check_ready(); + + writer + } + + fn get_archived_record_len(&mut self, record: Record) -> u64 { + // We do a dummy `archive_record` call to simply do the work of encoding/archiving without + // writing the value anywhere. `RecordWriter` clears its encoding/serialization buffers on + // each call to `archive_record` so we don't have to do any pre/post-cleanup to avoid memory + // growth, etc. + let record_len = record.archived_len(); + + match self.record_writer.archive_record(1, record) { + Ok(token) => token.serialized_len() as u64, + Err(e) => panic!( + "unexpected encode error: archived_len={} max_record_size={} error={:?}", + record_len, + self.ledger.config().max_record_size, + e, + ), + } + } + + fn get_current_buffer_size(&self) -> u64 { + let unflushed_bytes = self + .current_file + .as_ref() + .map_or(0, FileModel::unflushed_size); + self.ledger.get_buffer_size() + unflushed_bytes + } + + fn reset(&mut self) { + self.current_file = None; + self.current_file_size = 0; + self.current_file_full = false; + } + + fn try_finalize(&mut self) { + if let Some(data_file) = self.current_file.as_ref() { + data_file.finalize(); + } + } + + fn flush(&mut self) { + // Flush the current data file, if we have one open: + let (flushed_events, flushed_bytes) = if let Some(data_file) = self.current_file.as_ref() { + data_file.flush() + } else { + (0, 0) + }; + + self.track_flushed_events(flushed_events as u64, flushed_bytes); + } + + fn track_flushed_events(&mut self, flushed_events: u64, flushed_bytes: u64) { + self.ledger.increment_unread_events(flushed_events); + self.ledger.increment_buffer_size(flushed_bytes); + } + + fn check_ready(&mut self) -> bool { + // If our buffer size is over the maximum buffer size, we have to wait for reader progress: + if self.get_current_buffer_size() >= self.ledger.config().max_buffer_size { + return false; + } + + // If our current data file is at or above the limit, then flush it out, close it, and set + // ourselves to open the next one: + if self.current_file_full + || self.current_file_size >= self.ledger.config().max_data_file_size + { + self.flush(); + + let current_file = self.current_file.as_ref().unwrap(); + current_file.finalize(); + + self.reset(); + self.ledger.increment_writer_file_id(); + } + + // At this point, we're not over any size limits, so if we have a file open already, we're + // good to go. + if self.current_file.is_some() { + return true; + } + + // Try to open the file, and if it already exists, we have to wait for the reader. + // Otherwise, we _notify_ the reader, since they may be caught up and waiting on us to open + // the next file and start reading from it: + let id = self.ledger.get_writer_file_id(); + match self.filesystem.create_file(id) { + Some(file) => { + self.current_file = Some(file); + true + } + None => false, + } + } + + fn write_record(&mut self, mut record: Record) -> Progress { + // We don't accept writing records with an event count of zero: + if record.event_count() == 0 { + return Progress::WriteError(WriterError::EmptyRecord); + } + + self.state.transition_to_writing(); + + loop { + // If we can't open our desired current data file, or the buffer is full, we wait. + if !self.check_ready() { + return Progress::Blocked; + } + + // Check if the record would exceed the maximum record size, which should always fail. + // + // NOTE: Why are we using the "failed to encode" error here and not the "record too + // large" error? As the comments in the actual writer code elucidate, the encoding may + // fail when it actually tries to make sure there's enough space to encode itself, gets + // told there isn't, and returns a generic error. We don't know that from the generic + // error alone, so we have some stand-in code that returns encoder errors as a + // passthrough, and then it checks afterwards if the encoding buffer exceeds the + // configured limit. + // + // This is a bit redundant as we explicitly limit the buffer we pass to the encoding + // method to have a maximum capacity of whatever the maximum record limit is.. but it's + // there to be thorough in the case of a bug on the `bytes` side. + // + // TODO: We should probably provide a generic error enum for encoding/decoding where the + // type can tell us specifically if it ran out of space to encode itself, or if it hit + // another general error... that's starting to nest the errors a bit deep, though, so + // I'm not entirely sold. For our purposes here, we know the expected error when the + // record can't encode itself due to space limitations, so the differentiation on the + // front end is more about providing an informative error, but the writer can't really + // do anything different if they get "failed to encode" vs "record too large". + let encoded_len = record + .encoded_size() + .expect("record used in model must provide this"); + let encoded_len_limit = self.ledger.config().max_record_size - RECORD_HEADER_LEN; + if encoded_len > encoded_len_limit { + return Progress::WriteError(WriterError::FailedToEncode { + source: EncodeError, + }); + } + + // Write the record in the same way that the buffer would, which is the only way we can + // calculate the true size that record occupies. + let archived_len = self.get_archived_record_len(record.clone()); + + // If this record would cause us to exceed the maximum data file size of the current data file, mark the + // current data file full so that we can loop around and open the next one. + if self.current_file_size + archived_len > self.ledger.config().max_data_file_size { + self.current_file_full = true; + continue; + } + + // If this record would cause us to exceed our maximum buffer size, then the writer would have to wait for + // the reader to make some sort of progress to try actually writing it. + if self.get_current_buffer_size() + archived_len > self.ledger.config().max_buffer_size + { + return Progress::Blocked; + } + + // Now try to "actually" write it, which may or may not fail depending on if the file is + // full or not/could hold this record. We archive the record manually, too, to get its true + // on-disk size: + let data_file = self + .current_file + .as_ref() + .expect("current file must be present"); + match data_file.write(record, archived_len) { + (Some(old_record), 0, 0) => { + // We would have overfilled the data file, so we need to open a new data file now + // and try again. We do this by setting the current file size to the maximum to + // trigger the logic to flush the old file, close it, and open the next one: + record = old_record; + self.current_file_size = self.ledger.config().max_data_file_size; + + continue; + } + (None, flushed_events, flushed_bytes) => { + self.current_file_size += archived_len; + + // We buffered the write but had to do some flushing to make it possible, so + // track the events that have now hit the data file. + self.track_flushed_events(flushed_events as u64, flushed_bytes); + } + _ => { + panic!("invariant violation: write can't flush if it has denied write overall") + } + } + + self.state.transition_to_idle(); + + let written = archived_len.try_into().unwrap(); + return Progress::RecordWritten(written); + } + } + + fn close(&mut self) { + if self.state.transition_to_closed() { + self.ledger.mark_writer_done(); + self.try_finalize(); + } + } +} + +/// Model for the buffer. +struct BufferModel { + ledger: Arc, + reader: ReaderModel, + writer: WriterModel, +} + +impl BufferModel { + fn from_config(config: &DiskBufferConfig) -> Self { + let filesystem = Arc::new(FilesystemModel::new(config)); + let ledger = Arc::new(LedgerModel::new(config)); + + Self { + ledger: Arc::clone(&ledger), + reader: ReaderModel::new(Arc::clone(&filesystem), Arc::clone(&ledger)), + writer: WriterModel::new(filesystem, ledger), + } + } + + fn ledger(&self) -> &LedgerModel { + self.ledger.as_ref() + } + + fn write_record(&mut self, record: Record) -> Progress { + self.writer.write_record(record) + } + + fn flush(&mut self) { + self.writer.flush(); + } + + fn read_record(&mut self) -> Progress { + self.reader.read_record() + } + + fn acknowledge_read(&mut self) { + self.reader.acknowledge_read(); + } + + fn close_writer(&mut self) { + self.writer.close(); + } +} + +proptest! { + #[test] + fn model_check(mut config in arb_buffer_config(), actions in arb_actions(0..64)) { + let rt = Builder::new_current_thread() + .enable_all() + .build() + .expect("should not fail to build runtime"); + + let _a = install_tracing_helpers(); + info!( + actions = actions.len(), + max_buffer_size = config.max_buffer_size, + max_data_file_size = config.max_data_file_size, + max_record_size = config.max_record_size, + "Starting model.", + ); + + // We generate a new temporary directory and overwrite the data directory in the buffer + // configuration. This allows us to use a utility that will generate a random directory each + // time -- parallel runs of this test can't clobber each other anymore -- but also ensure + // that the directory is cleaned up when the test run is over. + let buf_dir = TempDir::with_prefix("vector-buffers-disk-v2-model").expect("creating temp dir should never fail"); + config.data_dir = buf_dir.path().to_path_buf(); + + rt.block_on(async move { + // This model tries to encapsulate all of the behavior of the disk buffer v2 + // implementation, and has a few major parts that we'll briefly talk about: the model + // itself, input actions, and the sequencer. + // + // At the very top, we have our input actions, which are mapped one-to-one with the + // possible actions that can influence the disk buffer: reading records, writing + // records, flushing writes, and acknowledging reads. + // + // After that, we have the model itself, which essentially a barebones re-implementation + // of the disk buffer itself without any asynchrony, rich error handling, etc. We scope + // its behavior in certain ways -- no asynchrony, deterministic I/O, etc -- so that we + // can focus on the core logic how what should the state of the disk buffer be after + // executing a certain sequence of actions. + // + // Finally, we have the action sequencer. As part of any property test, you inevitably + // want to, and need to, test the actual system: the system under test, or SUT. In our + // case, however, our SUT is asynchronous, which represents a problem when we want to be + // able to apply an action to it and observe the change in state without letting the + // asynchronous runtime drive background computations or operations that might change + // the state of the SUT before the next time we apply an action to it. To deal with + // this, we have the action sequencer. + // + // The action sequencer translates the input action into a real action against the SUT, + // but holds the action future directly, instead of spawning it on a runtime to run to + // its logical conclusion. This lets us poll it in a one-shot mode, as well as + // intercept its waker state. Now, as we run one action that may need to logically wait + // for an asynchronous wakeup from another operation occurring, we can determine if + // running a subsequent action actually woke up the action that needed to wait. + // + // Beyond that, the action sequencer is also aware of the constraints around the API of + // the buffer, such as the fact that all operations require mutable access, so there can + // only be a write or flush operation in-flight for the writer, but not both, as well as + // one read operation in-flight for the reader. + // + // Thus, the action sequencer can start operations, know when they've made progress and + // should be tried again before pulling a new action from the remaining actions in the + // input sequence, and so on. Effectively, we can deterministically drive asynchronous + // actions that are coupled to one another, in a lockstep fashion, with the model. + let mut model = BufferModel::from_config(&config); + + let usage_handle = BufferUsageHandle::noop(); + let (writer, reader, ledger) = + Buffer::::from_config_inner(config, usage_handle) + .await + .expect("should not fail to build buffer"); + + let mut sequencer = ActionSequencer::new(actions, reader, writer); + + let mut closed_writers = false; + + loop { + // The model runs in a current-thread tokio runtime, + // but the acknowledgement handling runs in a + // background task. This yields to any such background + // task before returning in order to ensure + // acknowledgements are fully accounted for before + // doing the next operation. + tokio::task::yield_now().await; + + // We manually check if the sequencer has any write operations left, either + // in-flight or yet-to-be-triggered, and if none are left, we mark the writer + // closed. This allows us to properly inform the model that reads should start + // returning `None` if there's no more flushed records left vs being blocked on + // writer activity. + if sequencer.all_write_operations_finished() && !closed_writers { + model.close_writer(); + sequencer.close_writer(); + + closed_writers = true; + } + + // If we were able to trigger a new action, see if it's an action we can immediately + // run against the model. If it's an action that may be asynchronous/blocked on + // progress of another component, we try it later on, which lets us deduplicate some code. + if let Some(action) = sequencer.trigger_next_runnable_action() { + if let Action::AcknowledgeRead = action { + // Acknowledgements are based on atomics, so they never wait asynchronously. + model.acknowledge_read(); + } + } else { + let mut made_progress = false; + + // We had no triggerable action, so check if the sequencer has an in-flight write + // operation, or in-flight read operation, and see if either can complete. If + // so, we then run them against the model. + if let Some((action, sut_result)) = sequencer.get_pending_write_action() { + match action { + Action::WriteRecord(record) => { + let model_result = model.write_record(record.clone()); + match sut_result { + // The SUT made no progress, so the model should not have made + // progress either. + Poll::Pending => prop_assert_eq!(model_result, Progress::Blocked, "expected blocked write"), + Poll::Ready(sut_result) => { + made_progress = true; + match sut_result { + WriteActionResult::Write(result) => match result { + Ok(written) => prop_assert_eq!(model_result, Progress::RecordWritten(written), "expected completed write"), + Err(e) => prop_assert_eq!(model_result, Progress::WriteError(e), "expected write error"), + }, + WriteActionResult::Flush(r) => panic!("got unexpected flush action result for pending write: {r:?}"), + } + }, + } + }, + Action::FlushWrites => { + // Technically speaking, a flush should never actually block under test + // because we've made flushing deterministic with our filesystem + // implementation. This is why despite the fact that the sequencer has + // to run it like an async operation, we don't check the result like an + // async operation. + model.flush(); + match sut_result { + Poll::Pending => panic!("flush should never be blocked"), + Poll::Ready(sut_result) => match sut_result { + WriteActionResult::Flush(result) => prop_assert!(result.is_ok()), + WriteActionResult::Write(r) => panic!("got unexpected write action result for pending flush: {r:?}"), + }, + } + }, + a => panic!("invalid action for pending write: {a:?}"), + } + } + + if let Some((action, sut_result)) = sequencer.get_pending_read_action() { + match action { + Action::ReadRecord => { + let model_result = model.read_record(); + match sut_result { + // The SUT made no progress, so the model should not have made + // progress either. + Poll::Pending => prop_assert_eq!(model_result, Progress::Blocked, "expected blocked read"), + Poll::Ready(sut_result) => { + made_progress = true; + match sut_result { + ReadActionResult::Read(result) => match result { + Ok(maybe_record) => prop_assert_eq!(model_result, Progress::RecordRead(maybe_record.clone()), "expected record read"), + Err(e) => prop_assert_eq!(model_result, Progress::ReadError(e), "expected read error"), + }, + } + }, + } + }, + a => panic!("invalid action for pending read: {a:?}"), + } + } + + // We need to detect if our model/SUT is correctly "stalled" based on the + // actions we've triggered so far, since the list of input actions may correctly + // lead to a test that cannot actually run all actions to completion. + // + // If we made any progress at all on an in-flight operation, we continue. + // Otherwise, we check if we're stuck, where "stuck" implies that we have an + // in-flight operation that is pending and no other + // runnable-but-yet-to-have-been-run actions that could otherwise unblock it. + if !made_progress && !sequencer.has_remaining_runnable_actions() { + // We have nothing else to trigger/run, so we have nothing that could + // possibly allow the in-flight operation(s) to complete, so we break. + break + } + } + } + + // The model/sequencer got as far as they could, so just check to make sure the + // model/SUT are in agreement in terms of buffer size, unread records (events), etc: + prop_assert_eq!(model.ledger().get_buffer_size(), ledger.get_total_buffer_size(), + "model and SUT buffer size should be equal"); + + // NOTE: We call them "unread events" here, but the buffer calls them "records". A + // record is generally a single write, which might represent one event or N events. + // However, the record ID counter is advanced by the number of events in a record, so at + // the end of the day, the "total record" count is really the total event count. + prop_assert_eq!(model.ledger().get_unread_events(), ledger.get_total_records(), + "model and SUT unread events should be equal"); + + Ok(()) + })?; + } +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/model/record.rs b/lib/vector-buffers/src/variants/disk_v2/tests/model/record.rs new file mode 100644 index 0000000000000..3b13e35ca47e0 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/model/record.rs @@ -0,0 +1,160 @@ +use std::{error, fmt, mem}; + +use bytes::{Buf, BufMut}; +use vector_common::byte_size_of::ByteSizeOf; +use vector_common::finalization::{ + AddBatchNotifier, BatchNotifier, EventFinalizer, EventFinalizers, +}; + +use crate::{ + encoding::FixedEncodable, + variants::disk_v2::{record::RECORD_HEADER_LEN, tests::align16}, + EventCount, +}; + +#[derive(Debug)] +pub struct EncodeError; + +impl fmt::Display for EncodeError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{self:?}") + } +} + +impl error::Error for EncodeError {} + +#[derive(Debug)] +pub struct DecodeError; + +impl fmt::Display for DecodeError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{self:?}") + } +} + +impl error::Error for DecodeError {} + +#[derive(Clone, Eq)] +pub struct Record { + id: u32, + size: u32, + event_count: u32, + finalizers: EventFinalizers, +} + +impl Record { + pub(crate) const fn new(id: u32, size: u32, event_count: u32) -> Self { + Record { + id, + size, + event_count, + finalizers: EventFinalizers::DEFAULT, + } + } + + const fn header_len() -> usize { + mem::size_of::() * 3 + } + + const fn encoded_len(&self) -> usize { + Self::header_len() + self.size as usize + } + + pub const fn archived_len(&self) -> usize { + // We kind of cheat here, because it's not the length of the actual record here, but the all-in length when we + // write it to disk, which includes a wrapper type, and an overalignment of 16. If we don't do it here, or + // account for it in some way, though, then our logic to figure out if the given record would be allowed based + // on the configured `max_record_size` won't reflect reality, since the configuration builder _does_ take the + // passed in `max_record_size`, less RECORD_HEADER_LEN, when calculating the number for how many bytes record + // encoding can use. + let encoded_len = self.encoded_len(); + align16(RECORD_HEADER_LEN + encoded_len) + } +} + +impl fmt::Debug for Record { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Record") + .field("id", &self.id) + .field("size", &self.size) + .field("event_count", &self.event_count) + .field("encoded_len", &self.encoded_len()) + .field("archived_len", &self.archived_len()) + .finish_non_exhaustive() + } +} + +impl PartialEq for Record { + fn eq(&self, other: &Self) -> bool { + self.id == other.id && self.size == other.size && self.event_count == other.event_count + } +} + +impl AddBatchNotifier for Record { + fn add_batch_notifier(&mut self, batch: BatchNotifier) { + self.finalizers.add(EventFinalizer::new(batch)); + } +} + +impl EventCount for Record { + fn event_count(&self) -> usize { + self.event_count as usize + } +} + +impl ByteSizeOf for Record { + fn allocated_bytes(&self) -> usize { + 0 + } +} + +impl FixedEncodable for Record { + type EncodeError = EncodeError; + type DecodeError = DecodeError; + + fn encode(self, buffer: &mut B) -> Result<(), Self::EncodeError> + where + B: BufMut, + Self: Sized, + { + if buffer.remaining_mut() < self.encoded_len() { + return Err(EncodeError); + } + + buffer.put_u32(self.id); + buffer.put_u32(self.size); + buffer.put_u32(self.event_count); + buffer.put_bytes(0x42, self.size as usize); + Ok(()) + } + + fn encoded_size(&self) -> Option { + Some(self.encoded_len()) + } + + fn decode(mut buffer: B) -> Result + where + B: Buf + Clone, + Self: Sized, + { + if buffer.remaining() < Self::header_len() { + return Err(DecodeError); + } + + let id = buffer.get_u32(); + let size = buffer.get_u32(); + let event_count = buffer.get_u32(); + + if buffer.remaining() < size as usize { + return Err(DecodeError); + } + + let payload = buffer.copy_to_bytes(size as usize); + let valid = &payload.iter().all(|b| *b == 0x42); + if !valid { + return Err(DecodeError); + } + + Ok(Record::new(id, size, event_count)) + } +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/model/sequencer.rs b/lib/vector-buffers/src/variants/disk_v2/tests/model/sequencer.rs new file mode 100644 index 0000000000000..270cf7c84e9d6 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/model/sequencer.rs @@ -0,0 +1,404 @@ +use std::{collections::VecDeque, io, mem, task::Poll}; + +use futures::{future::BoxFuture, Future, FutureExt}; +use tokio_test::task::{spawn, Spawn}; + +use super::{ + action::Action, + common::{ReaderResult, TestReader, TestWriter, WriterResult}, + record::Record, +}; + +/// A wrapper that can track whether or not a future has already been polled. +/// +/// In a true asynchronous runtime. a future that was polled once but returned pending would not be +/// polled again unless its waker was awoken. We use `TrackedFuture` to know when we should poll a +/// future again as it can track both if it's been polled at all, as well as if it's been woken up, +/// allowing us to emulate driving it as a true asynchronous runtime would do. +struct TrackedFuture { + polled_once: bool, + fut: Spawn>, +} + +impl TrackedFuture { + fn from_future(fut: F) -> Self + where + F: Future + Send + 'static, + { + Self { + polled_once: false, + fut: spawn(fut.boxed()), + } + } + + fn should_poll(&self) -> bool { + !self.polled_once || self.fut.is_woken() + } + + fn poll(&mut self) -> Poll { + self.polled_once = true; + self.fut.poll() + } +} + +#[allow(clippy::large_enum_variant)] +enum ReadState { + Inconsistent, + Idle(TestReader), + PendingRead(TrackedFuture<(TestReader, ReaderResult>)>), +} + +impl ReadState { + fn is_idle(&self) -> bool { + matches!(self, ReadState::Idle(_)) + } + + fn state_name(&self) -> &'static str { + match self { + ReadState::Inconsistent => "inconsistent", + ReadState::Idle(_) => "idle", + ReadState::PendingRead(_) => "pending_read", + } + } + + fn transition_to_read(&mut self) { + let new_state = match mem::replace(self, ReadState::Inconsistent) { + ReadState::Idle(mut reader) => { + let fut = async move { + let result = reader.next().await; + (reader, result) + }; + let tracked = TrackedFuture::from_future(fut); + ReadState::PendingRead(tracked) + } + s => panic!( + "tried to transition to pending read from state other than idle: {}", + s.state_name() + ), + }; + *self = new_state; + } +} + +#[allow(clippy::large_enum_variant)] +enum WriteState { + Inconsistent, + Idle(TestWriter), + PendingWrite(Record, TrackedFuture<(TestWriter, WriterResult)>), + PendingFlush(TrackedFuture<(TestWriter, io::Result<()>)>), + Closed, +} + +impl WriteState { + fn is_idle(&self) -> bool { + matches!(self, WriteState::Idle(_)) + } + + fn is_closed(&self) -> bool { + matches!(self, WriteState::Closed) + } + + fn state_name(&self) -> &'static str { + match self { + WriteState::Inconsistent => "inconsistent", + WriteState::Idle(_) => "idle", + WriteState::PendingWrite(_, _) => "pending_write", + WriteState::PendingFlush(_) => "pending_flush", + WriteState::Closed => "closed", + } + } + + fn transition_to_write(&mut self, record: Record) { + let new_state = match mem::replace(self, WriteState::Inconsistent) { + WriteState::Idle(mut writer) => { + let cloned_record = record.clone(); + let fut = async move { + let result = writer.write_record(record).await; + (writer, result) + }; + let tracked = TrackedFuture::from_future(fut); + WriteState::PendingWrite(cloned_record, tracked) + } + s => panic!( + "tried to transition to pending write from state other than idle: {}", + s.state_name() + ), + }; + *self = new_state; + } + + fn transition_to_flush(&mut self) { + let new_state = match mem::replace(self, WriteState::Inconsistent) { + WriteState::Idle(mut writer) => { + let fut = async move { + let result = writer.flush().await; + (writer, result) + }; + let tracked = TrackedFuture::from_future(fut); + WriteState::PendingFlush(tracked) + } + s => panic!( + "tried to transition to pending flush from state other than idle: {}", + s.state_name() + ), + }; + *self = new_state; + } + + fn transition_to_closed(&mut self) { + let new_state = match mem::replace(self, WriteState::Inconsistent) { + WriteState::Idle(mut writer) => { + // Technically, dropping the writer alone would also close the writer, logically, + // but I'm doing it explicitly here for my own sanity when reading the code. + writer.close(); + WriteState::Closed + } + // Already closed, nothing else to do. + WriteState::Closed => WriteState::Closed, + s => panic!( + "tried to transition to closed from state other than idle: {}", + s.state_name() + ), + }; + *self = new_state; + } +} + +/// Result of a read operation. +#[derive(Debug)] +pub enum ReadActionResult { + Read(ReaderResult>), +} + +/// Result of a write operation. +#[derive(Debug)] +pub enum WriteActionResult { + Write(WriterResult), + Flush(io::Result<()>), +} + +/// Action sequencer for the system under test. +/// +/// As the system under test is asynchronous, some operations are expected to block on the +/// completion of other operations. In order to model this in a step-wise fashion, the +/// `ActionSequencer` takes the actions generated by proptest and stages them in a valid order. +/// +/// For example, based on the interface of the reader and writer of the SUT, mutable access is +/// required, so only one operation can be in-flight for either at a time. If the writer is still +/// running a write operation, we cannot start another write operation, nor can we start another +/// read operation if the reader is still running a read operation. +/// +/// Likewise, some operations can be run while writes and reads are in-flight, but they require +/// certain progress to have been made thus far, such as acknowledging a read, where acknowledgement +/// can happen at any time so long as there is at least one outstanding read that has not yet been acknowledged. +/// +/// In this way, `ActionSequencer` enforces the real constraints of the SUT based on implicit +/// behavior codified through the type system as well as behavior that is part of the SUT usage +/// contract i.e. ack after read. +pub struct ActionSequencer { + actions: Vec, + read_state: ReadState, + write_state: WriteState, + unacked_events: VecDeque, +} + +impl ActionSequencer { + /// Creates a new `ActionSequencer` for the given SUT components. + pub fn new(actions: Vec, reader: TestReader, writer: TestWriter) -> Self { + Self { + actions, + read_state: ReadState::Idle(reader), + write_state: WriteState::Idle(writer), + unacked_events: VecDeque::default(), + } + } + + /// Whether or not there are any further write actions or any in-flight write operations. + pub fn all_write_operations_finished(&self) -> bool { + (self.write_state.is_idle() || self.write_state.is_closed()) + && self + .actions + .iter() + .all(|a| !matches!(a, Action::WriteRecord(_) | Action::FlushWrites)) + } + + /// Transition the writer to the closed state. + pub fn close_writer(&mut self) { + self.write_state.transition_to_closed(); + } + + fn get_next_runnable_action(&self) -> Option { + let allow_write = self.write_state.is_idle(); + let allow_read = self.read_state.is_idle(); + + self.actions.iter().position(|a| match a { + Action::WriteRecord(_) | Action::FlushWrites => allow_write, + Action::ReadRecord => allow_read, + Action::AcknowledgeRead => !self.unacked_events.is_empty(), + }) + } + + /// Whether or not any runnable actions remain. + pub fn has_remaining_runnable_actions(&self) -> bool { + self.get_next_runnable_action().is_some() + } + + /// Triggers the next runnable action. + /// + /// If an action is eligible to run, then it will be automatically run and the action itself + /// will be returned to the caller so it may be applied against the model. If none of the + /// remaining actions are eligible to run, then `None` is returned. + /// + /// For example, if there's an in-flight write, we can't execute another write, or a flush. + /// Likewise, we can't execute another read if there's an in-flight read. Acknowledgements + /// always happen out-of-band, though, and so are always eligible. + pub fn trigger_next_runnable_action(&mut self) -> Option { + let pos = self.get_next_runnable_action(); + + if let Some(action) = pos.map(|i| self.actions.remove(i)) { + match action { + Action::WriteRecord(record) => { + assert!( + self.write_state.is_idle(), + "got write action when write state is not idle" + ); + + self.write_state.transition_to_write(record.clone()); + Some(Action::WriteRecord(record)) + } + a @ Action::FlushWrites => { + assert!( + self.write_state.is_idle(), + "got flush action when write state is not idle" + ); + + self.write_state.transition_to_flush(); + Some(a) + } + a @ Action::ReadRecord => { + assert!( + self.read_state.is_idle(), + "got read action when read state is not idle" + ); + + self.read_state.transition_to_read(); + Some(a) + } + Action::AcknowledgeRead => { + drop(self.unacked_events.pop_front().expect("FIXME")); + Some(Action::AcknowledgeRead) + } + } + } else { + None + } + } + + /// Gets the result of pending write action, if one is in-flight. + /// + /// If a write action (either a record write or a flush) is in-flight, we attempt to poll it to + /// see if it is still pending or can successfully complete. If it completes, information about + /// the action, and operation, is passed back so that it can also be run through the model to + /// check for consistency. + pub fn get_pending_write_action(&mut self) -> Option<(Action, Poll)> { + let write_state = mem::replace(&mut self.write_state, WriteState::Inconsistent); + let (new_write_state, result) = match write_state { + // No in-flight write operation. + s @ (WriteState::Idle(_) | WriteState::Closed) => (s, None), + // We have an in-flight `write_record` call. + WriteState::PendingWrite(record, mut fut) => { + if fut.should_poll() { + match fut.poll() { + // No change yet. + Poll::Pending => ( + WriteState::PendingWrite(record.clone(), fut), + Some((Action::WriteRecord(record), Poll::Pending)), + ), + // The `write_record` call completed. + Poll::Ready((writer, result)) => ( + WriteState::Idle(writer), + Some(( + Action::WriteRecord(record), + Poll::Ready(WriteActionResult::Write(result)), + )), + ), + } + } else { + ( + WriteState::PendingWrite(record.clone(), fut), + Some((Action::WriteRecord(record), Poll::Pending)), + ) + } + } + // We have an in-flight `flush` call. + WriteState::PendingFlush(mut fut) => match fut.poll() { + // No change yet. + Poll::Pending => ( + WriteState::PendingFlush(fut), + Some((Action::FlushWrites, Poll::Pending)), + ), + // The `flush` call completed. + Poll::Ready((writer, result)) => ( + WriteState::Idle(writer), + Some(( + Action::FlushWrites, + Poll::Ready(WriteActionResult::Flush(result)), + )), + ), + }, + WriteState::Inconsistent => panic!("should never start from inconsistent write state"), + }; + + self.write_state = new_write_state; + result + } + + /// Gets the result of pending read action, if one is in-flight. + /// + /// If a read action is in-flight, we attempt to poll it to see if it is still pending or can + /// successfully complete. If it completes, information about the action, and operation, is + /// passed back so that it can also be run through the model to check for consistency. + pub fn get_pending_read_action(&mut self) -> Option<(Action, Poll)> { + let read_state = mem::replace(&mut self.read_state, ReadState::Inconsistent); + let (new_read_state, result) = match read_state { + // No in-flight read operation. + s @ ReadState::Idle(_) => (s, None), + // We have an in-flight `read` call. + ReadState::PendingRead(mut fut) => { + if fut.should_poll() { + match fut.poll() { + // No change yet. + Poll::Pending => ( + ReadState::PendingRead(fut), + Some((Action::ReadRecord, Poll::Pending)), + ), + // The `read` call completed. + Poll::Ready((reader, result)) => { + // If a record was actually read back, track it as an unacknowledged read. + if let Ok(Some(record)) = &result { + self.unacked_events.push_back(record.clone()); + } + + ( + ReadState::Idle(reader), + Some(( + Action::ReadRecord, + Poll::Ready(ReadActionResult::Read(result)), + )), + ) + } + } + } else { + ( + ReadState::PendingRead(fut), + Some((Action::ReadRecord, Poll::Pending)), + ) + } + } + ReadState::Inconsistent => panic!("should never start from inconsistent read state"), + }; + + self.read_state = new_read_state; + result + } +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/record.rs b/lib/vector-buffers/src/variants/disk_v2/tests/record.rs new file mode 100644 index 0000000000000..b369c7aac8395 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/record.rs @@ -0,0 +1,51 @@ +use std::io::Cursor; + +use crate::{ + test::SizedRecord, + variants::disk_v2::{reader::RecordReader, writer::RecordWriter}, +}; + +#[tokio::test] +async fn roundtrip_through_record_writer_and_record_reader() { + // Create a duplex stream that's more than big enough to ship a record through. + let (writer_io, reader_io) = tokio::io::duplex(4096); + + let mut record_writer = RecordWriter::new(writer_io, 0, 16_384, u64::MAX, 2048); + let mut record_reader = RecordReader::new(reader_io); + + let record = SizedRecord::new(73); + + let (bytes_written, flush_result) = record_writer + .write_record(314, record.clone()) + .await + .expect("write should not fail"); + record_writer.flush().await.expect("flush should not fail"); + + let read_token = record_reader + .try_next_record(false) + .await + .expect("read should not fail"); + assert!(read_token.is_some()); + + let read_token = read_token.unwrap(); + assert_eq!(bytes_written, read_token.record_bytes()); + assert_eq!(flush_result, None); + assert_eq!(314, read_token.record_id()); + + let roundtrip_record = record_reader + .read_record(read_token) + .expect("read should not fail"); + assert_eq!(record, roundtrip_record); +} + +#[tokio::test] +async fn record_reader_always_returns_none_when_no_data() { + let reader_io = Cursor::new(Vec::new()); + + let mut record_reader = RecordReader::<_, SizedRecord>::new(reader_io); + let read_token = record_reader + .try_next_record(false) + .await + .expect("read should not fail"); + assert!(read_token.is_none()); +} diff --git a/lib/vector-buffers/src/variants/disk_v2/tests/size_limits.rs b/lib/vector-buffers/src/variants/disk_v2/tests/size_limits.rs new file mode 100644 index 0000000000000..1902fb4c4c589 --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/tests/size_limits.rs @@ -0,0 +1,483 @@ +use std::time::Duration; + +use tokio::time::timeout; +use tokio_test::{assert_pending, task::spawn}; +use tracing::Instrument; + +use super::{ + create_buffer_v2_with_data_file_count_limit, create_buffer_v2_with_max_data_file_size, + create_buffer_v2_with_max_record_size, read_next, read_next_some, +}; +use crate::{ + assert_buffer_is_empty, assert_buffer_records, assert_buffer_size, assert_enough_bytes_written, + assert_reader_writer_v2_file_positions, + test::{acknowledge, install_tracing_helpers, with_temp_dir, SizedRecord}, + variants::disk_v2::{ + common::align16, + tests::{get_corrected_max_record_size, get_minimum_data_file_size_for_record_payload}, + }, +}; + +#[tokio::test] +async fn writer_error_when_record_is_over_the_limit() { + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create our buffer with and arbitrarily low max record size, and two write sizes where + // the first will fit but the second will not. + let first_write_size = align16(42).try_into().unwrap(); + let first_record = SizedRecord::new(first_write_size); + + let second_write_size = align16((first_write_size + 1).try_into().unwrap()) + .try_into() + .unwrap(); + let second_record = SizedRecord::new(second_write_size); + + let max_record_size = get_corrected_max_record_size(&first_record); + let (mut writer, _reader, ledger) = + create_buffer_v2_with_max_record_size(data_dir, max_record_size).await; + + assert_buffer_is_empty!(ledger); + + // First write should always complete because we explicitly set the maximum record size to + // match the exact size of the first record when it is serialized. + let first_bytes_written = writer + .write_record(first_record) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(first_bytes_written, SizedRecord, first_write_size); + + writer.flush().await.expect("flush should not fail"); + assert_buffer_size!(ledger, 1, first_bytes_written as u64); + + // Second write should fail because it exceeds the size of the first write by at least 16 bytes, which is + // the alignment of the serializer. + let _result = writer + .write_record(second_record) + .await + .expect_err("write should fail"); + + writer.flush().await.expect("flush should not fail"); + assert_buffer_size!(ledger, 1, first_bytes_written as u64); + } + }) + .await; +} + +#[tokio::test] +#[ignore] +async fn writer_waits_when_buffer_is_full() { + let assertion_registry = install_tracing_helpers(); + let fut = with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create our buffer with and arbitrarily low max buffer size, and two write sizes that + // will both fit just under the limit but will provide no chance for another write to + // fit. + // + // The sizes are different so that we can assert that we got back the expected record at + // each read we perform. + let first_write_size = 92; + let first_record = SizedRecord::new(first_write_size); + + let second_write_size = 96; + let second_record = SizedRecord::new(second_write_size); + + let max_data_file_size = get_minimum_data_file_size_for_record_payload(&second_record); + let (mut writer, mut reader, ledger) = + create_buffer_v2_with_data_file_count_limit(data_dir, max_data_file_size, 2).await; + + assert_buffer_is_empty!(ledger); + + // First write should always complete because we haven't written anything yet, so we + // haven't exceed our total buffer size limit yet, or the size limit of the data file + // itself. We do need this write to be big enough to exceed the total buffer size + // limit, though. + let first_bytes_written = writer + .write_record(first_record.clone()) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(first_bytes_written, SizedRecord, first_write_size); + + writer.flush().await.expect("flush should not fail"); + assert_buffer_size!(ledger, 1, first_bytes_written); + + // This write should block because will have exceeded our 100 byte total buffer size + // limit handily with the first write we did. + let mut second_record_write = spawn(async { + writer + .write_record(second_record.clone()) + .await + .expect("write should not fail") + }); + + let called_wait_for_reader = assertion_registry + .build() + .with_name("wait_for_reader") + .with_parent_name("writer_waits_when_buffer_is_full") + .was_entered() + .finalize(); + let got_past_wait_for_reader = assertion_registry + .build() + .with_name("wait_for_reader") + .with_parent_name("writer_waits_when_buffer_is_full") + .was_closed() + .finalize(); + assert!(!called_wait_for_reader.try_assert()); + assert!(!got_past_wait_for_reader.try_assert()); + + assert_pending!(second_record_write.poll()); + called_wait_for_reader.assert(); + assert!(!got_past_wait_for_reader.try_assert()); + + // Now do a read, which would theoretically make enough space available, but wait! We + // actually have to acknowledge the read, too, to update the buffer size. This read + // will complete but the second write should still be blocked/not woken up: + let first_record_read = read_next_some(&mut reader).await; + assert_eq!(first_record_read, first_record); + + // We haven't yet acknowledged the record, so nothing has changed yet: + assert_pending!(second_record_write.poll()); + assert!(!got_past_wait_for_reader.try_assert()); + assert_buffer_size!(ledger, 1, first_bytes_written); + + // Trigger our second read, which is necessary to actually run the acknowledgement logic + // that consumes pending acks, potentially deletes data files, etc. We trigger it + // before so that we can also validate that when a read is blocking on more data, + // acknowledging a record will wake it up so it can run the logic. + let got_past_wait_for_waiter = assertion_registry + .build() + .with_name("wait_for_writer") + .with_parent_name("writer_waits_when_buffer_is_full") + .was_closed() + .finalize(); + + let notified_waiting_writers = assertion_registry + .build() + .with_name("notify_reader_waiters") + .with_parent_name("writer_waits_when_buffer_is_full") + .was_closed() + .finalize(); + + let mut second_record_read = spawn(read_next(&mut reader)); + + assert!(!got_past_wait_for_waiter.try_assert()); + assert!(!notified_waiting_writers.try_assert()); + assert_pending!(second_record_read.poll()); + + // Now acknowledge the first record we read. This will wake up our second read, so it + // can at least handle the pending acknowledgements logic, but it won't actually be ready, + // because the second write hasn't completed yet: + acknowledge(first_record_read).await; + while !(got_past_wait_for_waiter.try_assert() && notified_waiting_writers.try_assert()) + { + assert_pending!(second_record_read.poll()); + } + + // And now the writer should be woken up since the acknowledgement was processed, and + // the blocked write should be able to complete: + assert_buffer_is_empty!(ledger); + + let second_bytes_written = second_record_write.await; + assert_enough_bytes_written!(second_bytes_written, SizedRecord, second_write_size); + + writer.flush().await.expect("flush should not fail"); + + // Close the writer which closes everything so that our final read indicates that we've + // reached the end, which is what we want and expect. + writer.close(); + + assert_buffer_size!(ledger, 1, second_bytes_written); + + // And now our second read, after having been woken up to drive the pending + // acknowledgement, should now be woken up again and be able to read the second write, + // but again, we haven't acknowledged it yet, so the ledger is not yet updated: + let second_record_read_result = + second_record_read.await.expect("read task should not fail"); + assert_eq!(second_record_read_result, second_record); + assert_buffer_size!(ledger, 1, second_bytes_written); + + // Now acknowledge the record, and do our final read: + acknowledge(second_record_read_result).await; + + let final_record_read = read_next(&mut reader).await; + assert_eq!(final_record_read, None); + assert_buffer_is_empty!(ledger); + } + }); + + let parent = trace_span!("writer_waits_when_buffer_is_full"); + fut.instrument(parent.or_current()).await; +} + +#[tokio::test] +async fn writer_rolls_data_files_when_the_limit_is_exceeded() { + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create our buffer with and arbitrarily low max buffer size, and two write sizes that + // will both fit just under the limit but will provide no chance for another write to + // fit. This will trigger data file rollover when we attempt the second write. + // + // The sizes are different so that we can assert that we got back the expected record at + // each read we perform. + let first_write_size = 92; + let first_record = SizedRecord::new(first_write_size); + + let second_write_size = 96; + let second_record = SizedRecord::new(second_write_size); + + let max_data_file_size = get_minimum_data_file_size_for_record_payload(&second_record); + let (mut writer, mut reader, ledger) = + create_buffer_v2_with_max_data_file_size(data_dir, max_data_file_size).await; + + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // First write should always complete because we haven't written anything yet, so we + // haven't exceed our total buffer size limit yet, or the size limit of the data file + // itself. We do need this write to be big enough to exceed the max data file limit, + // though. + let first_bytes_written = writer + .write_record(first_record.clone()) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(first_bytes_written, SizedRecord, first_write_size); + + writer.flush().await.expect("flush should not fail"); + assert_buffer_size!(ledger, 1, first_bytes_written); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // Second write should also always complete, but at this point, we should have rolled + // over to the next data file. + let second_bytes_written = writer + .write_record(second_record.clone()) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(second_bytes_written, SizedRecord, second_write_size); + + writer.flush().await.expect("flush should not fail"); + writer.close(); + + assert_buffer_size!(ledger, 2, first_bytes_written + second_bytes_written); + assert_reader_writer_v2_file_positions!(ledger, 0, 1); + + // Now read both records, make sure they are what we expect, etc. + let first_record_read = read_next_some(&mut reader).await; + assert_eq!(first_record_read, first_record); + acknowledge(first_record_read).await; + + assert_buffer_size!(ledger, 2, first_bytes_written + second_bytes_written); + assert_reader_writer_v2_file_positions!(ledger, 0, 1); + + let second_record_read = read_next_some(&mut reader).await; + assert_eq!(second_record_read, second_record); + acknowledge(second_record_read).await; + + assert_buffer_size!(ledger, 1, second_bytes_written); + assert_reader_writer_v2_file_positions!(ledger, 1, 1); + + let final_empty_read = read_next(&mut reader).await; + assert_eq!(final_empty_read, None); + + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 1, 1); + } + }) + .await; +} + +#[tokio::test] +async fn writer_rolls_data_files_when_the_limit_is_exceeded_after_reload() { + let _a = install_tracing_helpers(); + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create our buffer with an arbitrarily low max buffer size, and two write sizes that + // will both fit just under the limit but will provide no chance for another write to + // fit. This will trigger data file rollover when we attempt the second write. + // + // The sizes are different so that we can assert that we got back the expected record at + // each read we perform. + let first_write_size = 92; + let first_record = SizedRecord::new(first_write_size); + + let second_write_size = 96; + let second_record = SizedRecord::new(second_write_size); + + let max_data_file_size = get_minimum_data_file_size_for_record_payload(&second_record); + let (mut writer, _, ledger) = + create_buffer_v2_with_max_data_file_size(data_dir.clone(), max_data_file_size) + .await; + + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // First write should always complete because we haven't written anything yet, so we + // haven't exceed our total buffer size limit yet, or the size limit of the data file + // itself. We do need this write to be big enough to exceed the max data file limit, + // though. + let first_bytes_written = writer + .write_record(first_record.clone()) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(first_bytes_written, SizedRecord, first_write_size); + + writer.flush().await.expect("flush should not fail"); + assert_buffer_size!(ledger, 1, first_bytes_written); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // Now drop the original reader/writer and reload it. We want to make sure that when + // the current writer data file is at or over the limit, the writer can correctly + // determine whether or not it should simply move to the next file ID or if it actually + // needs to wait for the reader. + drop(writer); + drop(ledger); + + let open_wait = Duration::from_secs(5); + let second_buffer_open = + create_buffer_v2_with_max_data_file_size(data_dir, max_data_file_size); + let (mut writer, mut reader, ledger) = timeout(open_wait, second_buffer_open) + .await + .expect("failed to open buffer a second time in the expected timeframe"); + assert_buffer_size!(ledger, 1, first_bytes_written); + assert_reader_writer_v2_file_positions!(ledger, 0, 0); + + // Second write should also always complete, but at this point, we should have rolled + // over to the next data file. + let second_bytes_written = writer + .write_record(second_record.clone()) + .await + .expect("write should not fail"); + assert_enough_bytes_written!(second_bytes_written, SizedRecord, second_write_size); + + writer.flush().await.expect("flush should not fail"); + writer.close(); + + assert_buffer_size!(ledger, 2, first_bytes_written + second_bytes_written); + assert_reader_writer_v2_file_positions!(ledger, 0, 1); + + // Now read both records, make sure they are what we expect, etc. + let first_record_read = read_next_some(&mut reader).await; + assert_eq!(first_record_read, first_record); + acknowledge(first_record_read).await; + + assert_buffer_size!(ledger, 2, first_bytes_written + second_bytes_written); + assert_reader_writer_v2_file_positions!(ledger, 0, 1); + + let second_record_read = read_next_some(&mut reader).await; + assert_eq!(second_record_read, second_record); + acknowledge(second_record_read).await; + + assert_buffer_size!(ledger, 1, second_bytes_written); + assert_reader_writer_v2_file_positions!(ledger, 1, 1); + + let final_empty_read = read_next(&mut reader).await; + assert_eq!(final_empty_read, None); + + assert_buffer_is_empty!(ledger); + assert_reader_writer_v2_file_positions!(ledger, 1, 1); + } + }) + .await; +} + +#[tokio::test] +async fn writer_try_write_returns_when_buffer_is_full() { + let _a = install_tracing_helpers(); + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create our buffer with an arbitrarily low max buffer size, such that we can construct + // two writes that would otherwise fit by themselves but will end up with the second not + // being able to fit as the buffer is exactly full. + let write_size = 96; + let first_record = SizedRecord::new(write_size); + let second_record = SizedRecord::new(write_size); + + let max_data_file_size = get_minimum_data_file_size_for_record_payload(&second_record); + let (mut writer, _, ledger) = + create_buffer_v2_with_data_file_count_limit(data_dir, max_data_file_size, 2).await; + + assert_buffer_is_empty!(ledger); + + // First write should succeed because it is exactly the maximum size of a data file. + let first_write_result = writer + .try_write_record(first_record) + .await + .expect("write should not fail"); + assert_eq!(first_write_result, None); + writer.flush().await.expect("flush should not fail"); + + // This write should return immediately because the buffer should be exactly full at this point: + let second_write_result = writer + .try_write_record(second_record.clone()) + .await + .expect("write should not fail"); + assert_eq!(second_write_result, Some(second_record)); + } + }) + .await; +} + +#[tokio::test] +async fn writer_can_validate_last_write_when_buffer_is_full() { + let _a = install_tracing_helpers(); + with_temp_dir(|dir| { + let data_dir = dir.to_path_buf(); + + async move { + // Create our buffer with an arbitrarily low max buffer size, such that we can construct + // two writes that would otherwise fit by themselves but will end up with the second not + // being able to fit as the buffer is exactly full. + let write_size = 96; + let first_record = SizedRecord::new(write_size); + let second_record = SizedRecord::new(write_size); + + let max_data_file_size = get_minimum_data_file_size_for_record_payload(&second_record); + let (mut writer, _, ledger) = create_buffer_v2_with_data_file_count_limit( + data_dir.clone(), + max_data_file_size, + 2, + ) + .await; + + assert_buffer_is_empty!(ledger); + + // First write should succeed because it is exactly the maximum size of a data file. + let first_write_result = writer + .try_write_record(first_record) + .await + .expect("write should not fail"); + assert_eq!(first_write_result, None); + writer.flush().await.expect("flush should not fail"); + + // This write should return immediately because the buffer should be exactly full at this point: + let second_write_result = writer + .try_write_record(second_record.clone()) + .await + .expect("write should not fail"); + assert_eq!(second_write_result, Some(second_record)); + + // Now that we know that the buffer is truly full, close it and reopen it. Even though + // it's full, this should succeed because being full should not block things like + // reading/validating the last write, etc. + drop(writer); + drop(ledger); + + let (_, _, ledger) = create_buffer_v2_with_data_file_count_limit::<_, SizedRecord>( + data_dir, + max_data_file_size, + 2, + ) + .await; + assert_buffer_records!(ledger, 1); + } + }) + .await; +} diff --git a/lib/vector-buffers/src/variants/disk_v2/writer.rs b/lib/vector-buffers/src/variants/disk_v2/writer.rs new file mode 100644 index 0000000000000..fc8f60672e1af --- /dev/null +++ b/lib/vector-buffers/src/variants/disk_v2/writer.rs @@ -0,0 +1,1379 @@ +use std::{ + cmp::Ordering, + convert::Infallible as StdInfallible, + fmt, + io::{self, ErrorKind}, + marker::PhantomData, + num::NonZeroUsize, + sync::Arc, +}; + +use bytes::BufMut; +use crc32fast::Hasher; +use rkyv::{ + ser::{ + serializers::{ + AlignedSerializer, AllocScratch, AllocScratchError, BufferScratch, CompositeSerializer, + CompositeSerializerError, FallbackScratch, + }, + Serializer, + }, + AlignedVec, Infallible, +}; +use snafu::{ResultExt, Snafu}; +use tokio::io::{AsyncWrite, AsyncWriteExt}; + +use super::{ + common::{create_crc32c_hasher, DiskBufferConfig}, + io::Filesystem, + ledger::Ledger, + record::{validate_record_archive, Record, RecordStatus}, +}; +use crate::{ + encoding::{AsMetadata, Encodable}, + variants::disk_v2::{ + io::AsyncFile, + reader::decode_record_payload, + record::{try_as_record_archive, RECORD_HEADER_LEN}, + }, + Bufferable, +}; + +/// Error that occurred during calls to [`BufferWriter`]. +#[derive(Debug, Snafu)] +pub enum WriterError +where + T: Bufferable, +{ + /// A general I/O error occurred. + /// + /// Different methods will capture specific I/O errors depending on the situation, as some + /// errors may be expected and considered normal by design. For all I/O errors that are + /// considered atypical, they will be returned as this variant. + #[snafu(display("write I/O error: {}", source))] + Io { source: io::Error }, + + /// The record attempting to be written was too large. + /// + /// In practice, most encoders will throw their own error if they cannot write all of the + /// necessary bytes during encoding, and so this error will typically only be emitted when the + /// encoder throws no error during the encoding step itself, but manages to fill up the encoding + /// buffer to the limit. + #[snafu(display("record too large: limit is {}", limit))] + RecordTooLarge { limit: usize }, + + /// The data file did not have enough remaining space to write the record. + /// + /// This could be because the data file is legitimately full, but is more commonly related to a + /// record being big enough that it would exceed the max data file size. + /// + /// The record that was given to write is returned. + #[snafu(display("data file full or record would exceed max data file size"))] + DataFileFull { record: T, serialized_len: usize }, + + /// A record reported that it contained more events than the number of bytes when encoded. + /// + /// This is nonsensical because we don't intend to ever support encoding zero-sized types + /// through the buffer, and the logic we use to count the number of actual events in the buffer + /// transitively depends on not being able to represent more than one event per encoded byte. + #[snafu(display( + "record reported event count ({}) higher than encoded length ({})", + encoded_len, + event_count + ))] + NonsensicalEventCount { + encoded_len: usize, + event_count: usize, + }, + + /// The encoder encountered an issue during encoding. + /// + /// For common encoders, failure to write all of the bytes of the input will be the most common + /// error, and in fact, some encoders, it's the only possible error that can occur. + #[snafu(display("failed to encode record: {:?}", source))] + FailedToEncode { + source: ::EncodeError, + }, + + /// The writer failed to serialize the record. + /// + /// As records are encoded and then wrapped in a container which carries metadata about the size + /// of the encoded record, and so on, there is a chance that we could fail to serialize that + /// container during the write step. + /// + /// In practice, this should generally only occur if the system is unable to allocate enough + /// memory during the serialization step aka the system itself is literally out of memory to + /// give to processes. Rare, indeed. + #[snafu(display("failed to serialize encoded record to buffer: {}", reason))] + FailedToSerialize { reason: String }, + + /// The writer failed to validate the last written record. + /// + /// Specifically, for `BufferWriter`, this can only ever be returned when creating the buffer, during + /// validation of the last written record. While it's technically possible that it may be + /// something else, this error is most likely to occur when the records in a buffer were written + /// in a different version of Vector that cannot be decoded in this version of Vector. + #[snafu(display("failed to validate the last written record: {}", reason))] + FailedToValidate { reason: String }, + + /// The writer entered an inconsistent state that represents an unrecoverable error. + /// + /// In some cases, like expecting to be able to decode an event we just encoded, we might hit an + /// error. This would be an entirely unexpected error -- how is it possible to not be able to + /// decode an event we literally just encoded on the line above? -- and as such, the only + /// reasonable thing to do would be to give up. + /// + /// This error is the writer, and thus the buffer, giving up. + #[snafu(display("writer entered inconsistent state: {}", reason))] + InconsistentState { reason: String }, + + /// The record reported an event count of zero. + /// + /// Empty records are not supported. + EmptyRecord, +} + +impl PartialEq for WriterError { + fn eq(&self, other: &Self) -> bool { + match (self, other) { + (Self::Io { source: l_source }, Self::Io { source: r_source }) => { + l_source.kind() == r_source.kind() + } + (Self::RecordTooLarge { limit: l_limit }, Self::RecordTooLarge { limit: r_limit }) => { + l_limit == r_limit + } + ( + Self::DataFileFull { + record: l_record, + serialized_len: l_serialized_len, + }, + Self::DataFileFull { + record: r_record, + serialized_len: r_serialized_len, + }, + ) => l_record == r_record && l_serialized_len == r_serialized_len, + ( + Self::NonsensicalEventCount { + encoded_len: l_encoded_len, + event_count: l_event_count, + }, + Self::NonsensicalEventCount { + encoded_len: r_encoded_len, + event_count: r_event_count, + }, + ) => l_encoded_len == r_encoded_len && l_event_count == r_event_count, + ( + Self::FailedToSerialize { reason: l_reason }, + Self::FailedToSerialize { reason: r_reason }, + ) + | ( + Self::FailedToValidate { reason: l_reason }, + Self::FailedToValidate { reason: r_reason }, + ) + | ( + Self::InconsistentState { reason: l_reason }, + Self::InconsistentState { reason: r_reason }, + ) => l_reason == r_reason, + _ => core::mem::discriminant(self) == core::mem::discriminant(other), + } + } +} + +impl From> + for WriterError +where + T: Bufferable, +{ + fn from(e: CompositeSerializerError) -> Self { + match e { + CompositeSerializerError::ScratchSpaceError(sse) => WriterError::FailedToSerialize { + reason: format!("insufficient space to serialize encoded record: {sse}"), + }, + // Only our scratch space strategy is fallible, so we should never get here. + _ => unreachable!(), + } + } +} + +impl From for WriterError +where + T: Bufferable, +{ + fn from(source: io::Error) -> Self { + WriterError::Io { source } + } +} + +#[derive(Debug)] +pub(super) struct WriteToken { + event_count: usize, + serialized_len: usize, +} + +impl WriteToken { + pub fn event_count(&self) -> usize { + self.event_count + } + + pub fn serialized_len(&self) -> usize { + self.serialized_len + } +} + +#[derive(Debug, Default, PartialEq)] +pub(super) struct FlushResult { + pub events_flushed: u64, + pub bytes_flushed: u64, +} + +/// Wraps an [`AsyncWrite`] value and buffers individual writes, while signalling implicit flushes. +/// +/// As the [`BufferWriter`] must track when writes have theoretically made it to disk, we care about +/// situations where the internal write buffer for a data file has been flushed to make room. In +/// order to provide this information, we track the number of events represented by a record when +/// writing its serialized form. +/// +/// If an implicit buffer flush must be performed before a write can complete, or a manual flush is +/// requested, we return this information to the caller, letting them know how many events, and how +/// many bytes, were flushed. +struct TrackingBufWriter { + inner: W, + buf: Vec, + unflushed_events: usize, +} + +impl TrackingBufWriter { + /// Creates a new `TrackingBufWriter` with the specified buffer capacity. + fn with_capacity(cap: usize, inner: W) -> Self { + Self { + inner, + buf: Vec::with_capacity(cap), + unflushed_events: 0, + } + } + + /// Writes the given buffer. + /// + /// If enough internal buffer capacity is available, then this write will be buffered internally + /// until [`flush`] is called. If there's not enough remaining internal buffer capacity, then + /// the internal buffer will be flushed to the inner writer first. If the given buffer is + /// larger than the internal buffer capacity, then it will be written directly to the inner + /// writer. + /// + /// Internally, a counter is kept of how many buffered events are waiting to be flushed. This + /// count is incremented every time `write` can fully buffer the record without having to flush + /// to the inner writer. + /// + /// If this call requires the internal buffer to be flushed out to the inner writer, then the + /// write result will indicate how many buffered events were flushed, and their total size in + /// bytes. Additionally, if the given buffer is larger than the internal buffer itself, it will + /// also be included in the write result as well. + /// + /// # Errors + /// + /// If a write to the inner writer occurs, and that write encounters an error, an error variant + /// will be returned describing the error. + async fn write(&mut self, event_count: usize, buf: &[u8]) -> io::Result> { + let mut flush_result = None; + + // If this write would cause us to exceed our internal buffer capacity, flush whatever we + // have buffered already. + if self.buf.len() + buf.len() > self.buf.capacity() { + flush_result = self.flush().await?; + } + + // If the given buffer is too large to be buffered at all, then bypass the internal buffer. + if buf.len() >= self.buf.capacity() { + self.inner.write_all(buf).await?; + + let flush_result = flush_result.get_or_insert(FlushResult::default()); + flush_result.events_flushed += event_count as u64; + flush_result.bytes_flushed += buf.len() as u64; + } else { + self.buf.extend_from_slice(buf); + self.unflushed_events += event_count; + } + + Ok(flush_result) + } + + /// Flushes the internal buffer to the underlying writer. + /// + /// Internally, a counter is kept of how many buffered events are waiting to be flushed. This + /// count is incremented every time `write` can fully buffer the record without having to flush + /// to the inner writer. + /// + /// If any buffered record are present, then the write result will indicate how many + /// individual events were flushed, including their total size in bytes. + /// + /// # Errors + /// + /// If a write to the underlying writer occurs, and that write encounters an error, an error variant + /// will be returned describing the error. + async fn flush(&mut self) -> io::Result> { + if self.buf.is_empty() { + return Ok(None); + } + + let events_flushed = self.unflushed_events as u64; + let bytes_flushed = self.buf.len() as u64; + + let result = self.inner.write_all(&self.buf[..]).await; + self.unflushed_events = 0; + self.buf.clear(); + + result.map(|()| { + Some(FlushResult { + events_flushed, + bytes_flushed, + }) + }) + } + + /// Gets a reference to the underlying writer. + #[cfg(test)] + fn get_ref(&self) -> &W { + &self.inner + } + + /// Gets a mutable reference to the underlying writer. + fn get_mut(&mut self) -> &mut W { + &mut self.inner + } +} + +impl fmt::Debug for TrackingBufWriter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("TrackingBufWriter") + .field("writer", &self.inner) + .field( + "buffer", + &format_args!("{}/{}", self.buf.len(), self.buf.capacity()), + ) + .field("unflushed_events", &self.unflushed_events) + .finish() + } +} + +/// Buffered writer that handles encoding, checksumming, and serialization of records. +#[derive(Debug)] +pub(super) struct RecordWriter { + writer: TrackingBufWriter, + encode_buf: Vec, + ser_buf: AlignedVec, + ser_scratch: AlignedVec, + checksummer: Hasher, + max_record_size: usize, + current_data_file_size: u64, + max_data_file_size: u64, + _t: PhantomData, +} + +impl RecordWriter +where + W: AsyncFile + Unpin, + T: Bufferable, +{ + /// Creates a new [`RecordWriter`] around the provided writer. + /// + /// Internally, the writer is wrapped in a [`BufWriter`], so callers should not pass in an + /// already buffered writer. + pub fn new( + writer: W, + current_data_file_size: u64, + write_buffer_size: usize, + max_data_file_size: u64, + max_record_size: usize, + ) -> Self { + // These should also be getting checked at a higher level, but we're double-checking them here to be absolutely sure. + let max_record_size_converted = u64::try_from(max_record_size) + .expect("Maximum record size must be less than 2^64 bytes."); + + debug_assert!( + max_record_size > RECORD_HEADER_LEN, + "maximum record length must be larger than size of record header itself" + ); + debug_assert!( + max_data_file_size >= max_record_size_converted, + "must always be able to fit at least one record into a data file" + ); + + // We subtract the length of the record header from our allowed maximum record size, because we have to make sure + // that when we go to actually wrap and serialize the encoded record, we're limiting the actual bytes we write + // to disk to within `max_record_size`. + // + // This could lead to us reducing the encode buffer size limit by slightly more than necessary, since + // `RECORD_HEADER_LEN` might be overaligned compared to what it would be necessary when we look at the + // encoded/serialized record... but that's OK, but it's only going to differ by 8 bytes at most. + let max_record_size = max_record_size - RECORD_HEADER_LEN; + + Self { + writer: TrackingBufWriter::with_capacity(write_buffer_size, writer), + encode_buf: Vec::with_capacity(16_384), + ser_buf: AlignedVec::with_capacity(16_384), + ser_scratch: AlignedVec::with_capacity(16_384), + checksummer: create_crc32c_hasher(), + max_record_size, + current_data_file_size, + max_data_file_size, + _t: PhantomData, + } + } + + /// Gets a reference to the underlying writer. + #[cfg(test)] + pub fn get_ref(&self) -> &W { + self.writer.get_ref() + } + + /// Whether or not `amount` bytes could be written while obeying the data file size limit. + /// + /// If no bytes have written at all to a data file, then `amount` is allowed to exceed the + /// limit, otherwise a record would never be able to be written. + fn can_write(&self, amount: usize) -> bool { + let amount = u64::try_from(amount).expect("`amount` should need ever 2^64 bytes."); + + self.current_data_file_size + amount <= self.max_data_file_size + } + + /// Archives a record. + /// + /// This encodes the record, as well as serializes it into its archival format that will be + /// stored on disk. The total size of the archived record, including the length delimiter + /// inserted before the archived record, will be returned. + /// + /// # Errors + /// + /// Errors can occur during the encoding or serialization stage. If an error occurs + /// during any of these stages, an appropriate error variant will be returned describing the error. + #[instrument(skip(self, record), level = "trace")] + pub fn archive_record(&mut self, id: u64, record: T) -> Result> { + let event_count = record.event_count(); + + self.encode_buf.clear(); + self.ser_buf.clear(); + self.ser_scratch.clear(); + + // We first encode the record, which puts it into the desired encoded form. This is where + // we assert the record is within size limits, etc. + // + // NOTE: Some encoders may not write to the buffer in a way that fills it up before + // themselves returning an error because they know the buffer is too small. This means we + // may often return the "failed to encode" error variant when the true error is that the + // payload size, when encoded, exceeds our limit. + // + // Unfortunately, there's not a whole lot for us to do here beyond allowing our buffer to + // grow beyond the limit so that we can try to allow encoding to succeed so that we can grab + // the actual encoded size and then check it against the limit. + // + // C'est la vie. + let encode_result = { + let mut encode_buf = (&mut self.encode_buf).limit(self.max_record_size); + record.encode(&mut encode_buf) + }; + let encoded_len = encode_result + .map(|()| self.encode_buf.len()) + .context(FailedToEncodeSnafu)?; + if encoded_len > self.max_record_size { + return Err(WriterError::RecordTooLarge { + limit: self.max_record_size, + }); + } + + let metadata = T::get_metadata().into_u32(); + let wrapped_record = + Record::with_checksum(id, metadata, &self.encode_buf, &self.checksummer); + + // Push 8 dummy bytes where our length delimiter will sit. We'll fix this up after + // serialization. Notably, `AlignedSerializer` will report the serializer position as + // the length of its backing store, which now includes our 8 bytes, so we _subtract_ + // those from the position when figuring out the actual value to write back after. + // + // We write it this way -- in the serializer buffer, and not as a separate write -- so that + // we can do a single write but also so that we always have an aligned buffer. + self.ser_buf + .extend_from_slice(&[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]); + + // Now serialize the record, which puts it into its archived form. This is what powers our + // ability to do zero-copy deserialization from disk. + let mut serializer = CompositeSerializer::new( + AlignedSerializer::new(&mut self.ser_buf), + FallbackScratch::new( + BufferScratch::new(&mut self.ser_scratch), + AllocScratch::new(), + ), + Infallible, + ); + + let serialized_len = serializer + .serialize_value(&wrapped_record) + .map(|_| serializer.pos())?; + + // Sanity check before we do our length math. + if serialized_len <= 8 || self.ser_buf.len() != serialized_len { + return Err(WriterError::FailedToSerialize { + reason: format!( + "serializer position invalid for context: pos={} len={}", + serialized_len, + self.ser_buf.len(), + ), + }); + } + + // With the record archived and serialized, do our final check to ensure we can fit this + // write. We're doing this earlier than the actual call to flush it because it gives us + // a chance to hand back the event so that the caller can roll to a new data file first + // before attempting the writer again. + if !self.can_write(serialized_len) { + debug!( + current_data_file_size = self.current_data_file_size, + max_data_file_size = self.max_data_file_size, + archive_on_disk_len = serialized_len, + "Archived record is too large to fit in remaining free space of current data file." + ); + + // We have to decode the record back out to actually be able to give it back. If we + // can't decode it for some reason, this is entirely an unrecoverable error, since an + // encoded record should always be decodable within the same process that encoded it. + let record = T::decode(T::get_metadata(), &self.encode_buf[..]).map_err(|_| { + WriterError::InconsistentState { + reason: "failed to decode record immediately after encoding it".to_string(), + } + })?; + + return Err(WriterError::DataFileFull { + record, + serialized_len, + }); + } + + // Fix up our length delimiter. + let archive_len = serialized_len - 8; + let wire_archive_len: u64 = archive_len + .try_into() + .expect("archive len should always fit into a u64"); + let archive_len_buf = wire_archive_len.to_be_bytes(); + + let length_delimiter_dst = &mut self.ser_buf[0..8]; + length_delimiter_dst.copy_from_slice(&archive_len_buf[..]); + + Ok(WriteToken { + event_count, + serialized_len, + }) + } + + /// Writes a record. + /// + /// If the write is successful, the number of bytes written to the buffer are returned. + /// Additionally, if any internal buffers required an implicit flush, the result of that flush + /// operation is returned as well. + /// + /// As we internally buffers write to the underlying data file, to reduce the number of syscalls + /// required to pushed serialized records to the data file, we sometimes will write a record + /// which would overflow the internal buffer. Doing so means we have to first flush the buffer + /// before continuing with buffering the current write. As some invariants are based on knowing + /// when a record has actually been written to the data file, we return any information of + /// implicit flushes so that the writer can be aware of when data has actually made it to the + /// data file or not. + /// + /// # Errors + /// + /// Errors can occur during the encoding, serialization, or I/O stage. If an error occurs + /// during any of these stages, an appropriate error variant will be returned describing the error. + #[instrument(skip(self, record), level = "trace")] + #[cfg(test)] + pub async fn write_record( + &mut self, + id: u64, + record: T, + ) -> Result<(usize, Option), WriterError> { + let token = self.archive_record(id, record)?; + self.flush_record(token).await + } + + /// Flushes the previously-archived record. + /// + /// If the flush is successful, the number of bytes written to the buffer are returned. + /// Additionally, if any internal buffers required an implicit flush, the result of that flush + /// operation is returned as well. + /// + /// As we internally buffers write to the underlying data file, to reduce the number of syscalls + /// required to pushed serialized records to the data file, we sometimes will write a record + /// which would overflow the internal buffer. Doing so means we have to first flush the buffer + /// before continuing with buffering the current write. As some invariants are based on knowing + /// when a record has actually been written to the data file, we return any information of + /// implicit flushes so that the writer can be aware of when data has actually made it to the + /// data file or not. + #[instrument(skip(self), level = "trace")] + pub async fn flush_record( + &mut self, + token: WriteToken, + ) -> Result<(usize, Option), WriterError> { + // Make sure the write token we've been given matches whatever the last call to `archive_record` generated. + let event_count = token.event_count(); + let serialized_len = token.serialized_len(); + debug_assert_eq!( + serialized_len, + self.ser_buf.len(), + "using write token from non-contiguous archival call" + ); + + let flush_result = self + .writer + .write(event_count, &self.ser_buf[..]) + .await + .context(IoSnafu)?; + + // Update our current data file size. + self.current_data_file_size += u64::try_from(serialized_len) + .expect("Serialized length of record should never exceed 2^64 bytes."); + + Ok((serialized_len, flush_result)) + } + + /// Recovers an archived record that has not yet been flushed. + /// + /// In some cases, we must archive a record to see how large the resulting archived record is, and potentially + /// recover the original record if it's too large, and so on. + /// + /// This method allows decoding an archived record that is still sitting in the internal buffers waiting to be + /// flushed. Technically, this decodes the original record back from its archived/encoded form, and so this isn't a + /// clone but it does mean incurring the cost of decoding directly. + /// + /// # Errors + /// + /// If the archived record cannot be deserialized from its archival form, or can't be decoded back to its original + /// form `T`, an error variant will be returned describing the error. Notably, the only error we return is + /// `InconsistentState`, as being unable to immediately deserialize and decode a record we just serialized and + /// encoded implies a fatal, and unrecoverable, error with the buffer implementation as a whole. + #[instrument(skip(self), level = "trace")] + pub fn recover_archived_record(&mut self, token: WriteToken) -> Result> { + // Make sure the write token we've been given matches whatever the last call to `archive_record` generated. + let serialized_len = token.serialized_len(); + debug_assert_eq!( + serialized_len, + self.ser_buf.len(), + "using write token from non-contiguous archival call" + ); + + // First, decode the archival wrapper. This means skipping the length delimiter. + let wrapped_record = try_as_record_archive(&self.ser_buf[8..]).map_err(|_| { + WriterError::InconsistentState { + reason: "failed to decode archived record immediately after archiving it" + .to_string(), + } + })?; + + // Now we can actually decode it as `T`. + let record_metadata = T::Metadata::from_u32(wrapped_record.metadata()).ok_or( + WriterError::InconsistentState { + reason: "failed to decode record metadata immediately after encoding it" + .to_string(), + }, + )?; + + T::decode(record_metadata, wrapped_record.payload()).map_err(|_| { + WriterError::InconsistentState { + reason: "failed to decode record immediately after encoding it".to_string(), + } + }) + } + + /// Flushes the writer. + /// + /// This flushes both the internal buffered writer and the underlying writer object. + /// + /// # Errors + /// + /// If there is an I/O error while flushing either the buffered writer or the underlying writer, + /// an error variant will be returned describing the error. + #[instrument(skip(self), level = "debug")] + pub async fn flush(&mut self) -> io::Result> { + self.writer.flush().await + } + + /// Synchronizes the underlying file to disk. + /// + /// This tries to synchronize both data and metadata. + /// + /// # Errors + /// + /// If there is an I/O error while syncing the file, an error variant will be returned + /// describing the error. + #[instrument(skip(self), level = "debug")] + pub async fn sync_all(&mut self) -> io::Result<()> { + self.writer.get_mut().sync_all().await + } +} + +/// Writes records to the buffer. +#[derive(Debug)] +pub struct BufferWriter +where + FS: Filesystem, + FS::File: Unpin, +{ + ledger: Arc>, + config: DiskBufferConfig, + writer: Option>, + next_record_id: u64, + unflushed_events: u64, + data_file_size: u64, + unflushed_bytes: u64, + data_file_full: bool, + skip_to_next: bool, + ready_to_write: bool, + _t: PhantomData, +} + +impl BufferWriter +where + T: Bufferable, + FS: Filesystem + fmt::Debug + Clone, + FS::File: Unpin, +{ + /// Creates a new [`BufferWriter`] attached to the given [`Ledger`]. + pub(crate) fn new(ledger: Arc>) -> Self { + let config = ledger.config().clone(); + let next_record_id = ledger.state().get_next_writer_record_id(); + BufferWriter { + ledger, + config, + writer: None, + data_file_size: 0, + data_file_full: false, + unflushed_bytes: 0, + skip_to_next: false, + ready_to_write: false, + next_record_id, + unflushed_events: 0, + _t: PhantomData, + } + } + + fn get_next_record_id(&mut self) -> u64 { + self.next_record_id.wrapping_add(self.unflushed_events) + } + + fn track_write(&mut self, event_count: usize, record_size: u64) { + self.data_file_size += record_size; + self.unflushed_events += event_count as u64; + self.unflushed_bytes += record_size; + } + + fn flush_write_state(&mut self) { + self.flush_write_state_partial(self.unflushed_events, self.unflushed_bytes); + } + + fn flush_write_state_partial(&mut self, flushed_events: u64, flushed_bytes: u64) { + debug_assert!( + flushed_events <= self.unflushed_events, + "tried to flush more events than are currently unflushed" + ); + debug_assert!( + flushed_bytes <= self.unflushed_bytes, + "tried to flush more bytes than are currently unflushed" + ); + + self.next_record_id = self + .ledger + .state() + .increment_next_writer_record_id(flushed_events); + self.unflushed_events -= flushed_events; + self.unflushed_bytes -= flushed_bytes; + + self.ledger.track_write(flushed_events, flushed_bytes); + } + + fn can_write(&self) -> bool { + !self.data_file_full && self.data_file_size < self.config.max_data_file_size + } + + fn can_write_record(&self, amount: usize) -> bool { + let total_buffer_size = self.ledger.get_total_buffer_size() + self.unflushed_bytes; + let potential_write_len = + u64::try_from(amount).expect("Vector only supports 64-bit architectures."); + + self.can_write() && total_buffer_size + potential_write_len <= self.config.max_buffer_size + } + + #[instrument(skip(self), level = "debug")] + fn mark_data_file_full(&mut self) { + self.data_file_full = true; + } + + #[instrument(skip(self), level = "debug")] + fn reset(&mut self) { + self.writer = None; + self.data_file_size = 0; + self.data_file_full = false; + } + + #[instrument(skip(self), level = "debug")] + fn mark_for_skip(&mut self) { + self.skip_to_next = true; + } + + fn should_skip(&mut self) -> bool { + let should_skip = self.skip_to_next; + if should_skip { + self.skip_to_next = false; + } + + should_skip + } + + /// Validates that the last write in the current writer data file matches the ledger. + /// + /// # Errors + /// + /// If the current data file is not an empty, and there is an error reading it to perform + /// validation, an error variant will be returned that describes the error. + /// + /// Practically speaking, however, this method will only return I/O-related errors as all + /// logical errors, such as the record being invalid, are captured in order to logically adjust + /// the writer/ledger state to start a new file, etc. + #[instrument(skip(self), level = "debug")] + pub(super) async fn validate_last_write(&mut self) -> Result<(), WriterError> { + // We don't try validating again after doing so initially. + if self.ready_to_write { + warn!("Writer already initialized."); + return Ok(()); + } + + debug!( + current_writer_data_file = ?self.ledger.get_current_writer_data_file_path(), + "Validating last written record in current data file." + ); + self.ensure_ready_for_write().await.context(IoSnafu)?; + + // If our current file is empty, there's no sense doing this check. + if self.data_file_size == 0 { + self.ready_to_write = true; + return Ok(()); + } + + // We do a neat little trick here where we open an immutable memory-mapped region against our + // current writer data file, which lets us treat it as one big buffer... which is useful for + // asking `rkyv` to deserialize just the last record from the file, without having to seek + // directly to the start of the record where the length delimiter is. + let data_file_path = self.ledger.get_current_writer_data_file_path(); + let data_file_mmap = self + .ledger + .filesystem() + .open_mmap_readable(&data_file_path) + .await + .context(IoSnafu)?; + + // We have bytes, so we should have an archived record... hopefully! Go through the motions + // of verifying it. If we hit any invalid states, then we should bump to the next data file + // since the reader will have to stop once it hits the first error in a given file. + let should_skip_to_next_file = match validate_record_archive( + data_file_mmap.as_ref(), + &Hasher::new(), + ) { + RecordStatus::Valid { + id: last_record_id, .. + } => { + // We now know the record is valid from the perspective of being framed correctly, + // and the checksum matching, etc. We'll attempt to actually decode it now so we + // can get the actual item that was written, which we need to understand where the + // next writer record ID should be. + let record = try_as_record_archive(data_file_mmap.as_ref()) + .expect("record was already validated"); + let item = decode_record_payload::(record).map_err(|e| { + WriterError::FailedToValidate { + reason: e.to_string(), + } + })?; + + // Since we have a valid record, checksum and all, see if the writer record ID + // in the ledger lines up with the record ID we have here. Specifically, the record + // ID plus the number of events in the record should be the next record ID that gets used. + let ledger_next = self.ledger.state().get_next_writer_record_id(); + let record_events = + u64::try_from(item.event_count()).expect("event count should never exceed u64"); + let record_next = last_record_id.wrapping_add(record_events); + + match ledger_next.cmp(&record_next) { + Ordering::Equal => { + // We're exactly where the ledger thinks we should be, so nothing to do. + debug!( + ledger_next, + last_record_id, + record_events, + "Synchronized with ledger. Writer ready." + ); + false + } + Ordering::Greater => { + // Our last write is behind where the ledger thinks we should be, so we + // likely missed flushing some records, or partially flushed the data file. + // Better roll over to be safe. + error!( + ledger_next, last_record_id, record_events, + "Last record written to data file is behind expected position. Events have likely been lost."); + true + } + Ordering::Less => { + // We're actually _ahead_ of the ledger, which is to say we wrote a valid + // record to the data file, but never incremented our "writer next record + // ID" field. Given that record IDs are monotonic, it's safe to forward + // ourselves to make the "writer next record ID" in the ledger match the + // reality of the data file. If there were somehow gaps in the data file, + // the reader will detect it, and this way, we avoid duplicate record IDs. + debug!( + ledger_next, + last_record_id, + record_events, + new_ledger_next = record_next, + "Ledger desynchronized from data files. Fast forwarding ledger state." + ); + let ledger_record_delta = record_next - ledger_next; + let next_record_id = self + .ledger + .state() + .increment_next_writer_record_id(ledger_record_delta); + self.next_record_id = next_record_id; + self.unflushed_events = 0; + + false + } + } + } + // The record payload was corrupted, somehow: we know the checksum failed to match on + // both sides, but it could be cosmic radiation that flipped a bit or some process + // trampled over the data file... who knows. + // + // We skip to the next data file to try and start from a clean slate. + RecordStatus::Corrupted { .. } => { + error!( + "Last written record did not match the expected checksum. Corruption likely." + ); + true + } + // The record itself was corrupted, somehow: it was sufficiently different that `rkyv` + // couldn't even validate it, which likely means missing bytes but could also be certain + // bytes being invalid for the struct fields they represent. Like invalid checksums, we + // really don't know why it happened, only that it happened. + // + // We skip to the next data file to try and start from a clean slate. + RecordStatus::FailedDeserialization(de) => { + let reason = de.into_inner(); + error!( + ?reason, + "Last written record was unable to be deserialized. Corruption likely." + ); + true + } + }; + + // Reset our internal state, which closes the initial data file we opened, and mark + // ourselves as needing to skip to the next data file. This is a little convoluted, but we + // need to ensure we follow the normal behavior of trying to open the next data file, + // waiting for the reader to delete it if it already exists and hasn't been fully read yet, + // etc. + // + // Essentially, we defer the actual skipping to avoid deadlocking here trying to open a + // data file we might not be able to open yet. + if should_skip_to_next_file { + self.reset(); + self.mark_for_skip(); + } + + self.ready_to_write = true; + + Ok(()) + } + + fn is_buffer_full(&self) -> bool { + let total_buffer_size = self.ledger.get_total_buffer_size() + self.unflushed_bytes; + let max_buffer_size = self.config.max_buffer_size; + total_buffer_size >= max_buffer_size + } + + /// Ensures this writer is ready to attempt writer the next record. + #[instrument(skip(self), level = "debug")] + async fn ensure_ready_for_write(&mut self) -> io::Result<()> { + // Check the overall size of the buffer and figure out if we can write. + loop { + // If we haven't yet exceeded the maximum buffer size, then we can proceed. Likewise, if + // we're still validating our last write, then we know it doesn't matter if the buffer + // is full or not because we're not doing any actual writing here. + // + // Otherwise, wait for the reader to signal that they've made some progress. + if !self.is_buffer_full() || !self.ready_to_write { + break; + } + + trace!( + total_buffer_size = self.ledger.get_total_buffer_size() + self.unflushed_bytes, + max_buffer_size = self.config.max_buffer_size, + "Buffer size limit reached. Waiting for reader progress." + ); + + self.ledger.wait_for_reader().await; + } + + // If we already have an open writer, and we have no more space in the data file to write, + // flush and close the file and mark ourselves as needing to open the _next_ data file. + // + // Likewise, if initialization detected an invalid record on the starting data file, and we + // need to skip to the next file, we honor that here. + let mut should_open_next = self.should_skip(); + if self.writer.is_some() { + if self.can_write() { + return Ok(()); + } + + // Our current data file is full, so we need to open a new one. Signal to the loop + // that we we want to try and open the next file, and not the current file, + // essentially to avoid marking the writer as already having moved on to the next + // file before we're sure it isn't already an existing file on disk waiting to be + // read. + // + // We still flush ourselves to disk, etc, to make sure all of the data is there. + should_open_next = true; + self.flush_inner(true).await?; + self.flush_write_state(); + + self.reset(); + } + + loop { + // Normally, readers will keep up with the writers, and so there will only ever be a + // single data file or two on disk. If there was an issue with a sink reading from this + // buffer, though, we could conceivably have a stalled reader while the writer + // progresses and continues to create new data file. + // + // At some point, the file ID will wrap around and the writer will want to open a "new" + // file for writing that already exists: a previously-written file that has not been + // read yet. + // + // In order to handle this situation, we loop here, trying to create the file. Readers + // are responsible deleting a file once they have read it entirely, so our first loop + // iteration is the happy path, trying to create the new file. If we can't create it, + // this may be because it already exists and we're just picking up where we left off + // from last time, but it could also be a data file that a reader hasn't completed yet. + let data_file_path = if should_open_next { + self.ledger.get_next_writer_data_file_path() + } else { + self.ledger.get_current_writer_data_file_path() + }; + + let maybe_data_file = self + .ledger + .filesystem() + .open_file_writable_atomic(&data_file_path) + .await; + let file = match maybe_data_file { + // We were able to create the file, so we're good to proceed. + Ok(data_file) => Some((data_file, 0)), + // We got back an error trying to open the file: might be that it already exists, + // might be something else. + Err(e) => match e.kind() { + ErrorKind::AlreadyExists => { + // We open the file again, without the atomic "create new" behavior. If we + // can do that successfully, we check its length. There's three main + // situations we encounter: + // - the reader may have deleted the data file between the atomic create + // open and this one, and so we would expect the file length to be zero + // - the file still exists, and it's full: the reader may still be reading + // it, or waiting for acknowledgements to be able to delete it + // - it may not be full, which could be because it's the data file the + // writer left off on last time + let data_file = self + .ledger + .filesystem() + .open_file_writable(&data_file_path) + .await?; + let metadata = data_file.metadata().await?; + let file_len = metadata.len(); + if file_len == 0 || !should_open_next { + // The file is either empty, which means we created it and "own it" now, + // or it's not empty but we're not skipping to the next file, which can + // only mean that we're still initializing, and so this would be the + // data file we left off writing to. + Some((data_file, file_len)) + } else { + // The file isn't empty, and we're not in initialization anymore, which + // means this data file is one that the reader still hasn't finished + // reading through yet, and so we must wait for the reader to delete it + // before we can proceed. + None + } + } + // Legitimate I/O error with the operation, bubble this up. + _ => return Err(e), + }, + }; + + if let Some((data_file, data_file_size)) = file { + // We successfully opened the file and it can be written to. + debug!( + data_file_path = data_file_path.to_string_lossy().as_ref(), + existing_file_size = data_file_size, + "Opened data file for writing." + ); + + // Make sure the file is flushed to disk, especially if we just created it. + data_file.sync_all().await?; + + self.writer = Some(RecordWriter::new( + data_file, + data_file_size, + self.config.write_buffer_size, + self.config.max_data_file_size, + self.config.max_record_size, + )); + self.data_file_size = data_file_size; + + // If we opened the "next" data file, we need to increment the current writer + // file ID now to signal that the writer has moved on. + if should_open_next { + self.ledger.state().increment_writer_file_id(); + self.ledger.notify_writer_waiters(); + + debug!( + new_writer_file_id = self.ledger.get_current_writer_file_id(), + "Writer now on new data file." + ); + } + + return Ok(()); + } + + // The file is still present and waiting for a reader to finish reading it in order + // to delete it. Wait until the reader signals progress and try again. + debug!("Target data file is still present and not yet processed. Waiting for reader."); + self.ledger.wait_for_reader().await; + } + } + + /// Attempts to write a record. + /// + /// If the buffer is currently full, the original record will be immediately returned. + /// Otherwise, a write will be executed, which will run to completion, and `None` will be returned. + /// + /// # Errors + /// + /// If an error occurred while writing the record, an error variant will be returned describing + /// the error. + pub async fn try_write_record(&mut self, record: T) -> Result, WriterError> { + self.try_write_record_inner(record) + .await + .map(|result| match result { + Ok(_) => None, + Err(record) => Some(record), + }) + } + + #[instrument(skip_all, level = "debug")] + async fn try_write_record_inner( + &mut self, + mut record: T, + ) -> Result, WriterError> { + // If the buffer is already full, we definitely can't complete this write. + if self.is_buffer_full() { + return Ok(Err(record)); + } + + let record_events: NonZeroUsize = record + .event_count() + .try_into() + .map_err(|_| WriterError::EmptyRecord)?; + + // Grab the next record ID and attempt to write the record. + let record_id = self.get_next_record_id(); + + let token = loop { + // Make sure we have an open data file to write to, which might also be us opening the + // next data file because our first attempt at writing had to finalize a data file that + // was already full. + self.ensure_ready_for_write().await.context(IoSnafu)?; + + let writer = self + .writer + .as_mut() + .expect("writer should exist after `ensure_ready_for_write`"); + + // Archive the record, which if it succeeds in terms of encoding, etc, will give us a token that we can use + // to eventually write it to storage. This may fail if the record writer detects it can't fit the archived + // record in the current data file, so we handle that separately. All other errors must be handled by the caller. + match writer.archive_record(record_id, record) { + Ok(token) => break token, + Err(we) => match we { + WriterError::DataFileFull { + record: old_record, + serialized_len, + } => { + // The data file is full, so we need to roll to the next one before attempting + // the write again. We also recapture the record for the next write attempt. + self.mark_data_file_full(); + record = old_record; + + debug!( + current_data_file_size = self.data_file_size, + max_data_file_size = self.config.max_data_file_size, + last_attempted_write_size = serialized_len, + "Current data file reached maximum size. Rolling to the next data file." + ); + + continue; + } + e => return Err(e), + }, + } + }; + + // Now that we know the record was archived successfully -- record wasn't too large, etc -- we actually need + // to check if it will fit based on our current buffer size. If not, we recover the record from the writer's + // internal buffers, as we haven't yet flushed it, and we return it to the caller. + // + // Otherwise, we proceed with flushing like we normally would. + let can_write_record = self.can_write_record(token.serialized_len()); + let writer = self + .writer + .as_mut() + .expect("writer should exist after `ensure_ready_for_write`"); + + let (bytes_written, flush_result) = if can_write_record { + // We always return errors here because flushing the record won't return a recoverable error like + // `DataFileFull`, as that gets checked during archiving. + writer.flush_record(token).await? + } else { + // The record would not fit given the current size of the buffer, so we need to recover it from the + // writer and hand it back. This looks a little weird because we want to surface deserialize/decoding + // errors if we encounter them, but if we recover the record successfully, we're returning + // `Ok(Err(record))` to signal that our attempt failed but the record is able to be retried again later. + return Ok(Err(writer.recover_archived_record(token)?)); + }; + + // Track our write since things appear to have succeeded. This only updates our internal + // state as we have not yet authoritatively flushed the write to the data file. This tracks + // not only how many bytes we have buffered, but also how many events, which in turn drives + // record ID generation. We do this after the write appears to succeed to avoid issues with + // setting the ledger state to a record ID that we may never have actually written, which + // could lead to record ID gaps. + self.track_write(record_events.get(), bytes_written as u64); + + // If we did flush some buffered writes during this write, however, we now compensate for + // that after updating our internal state. We'll also notify the reader, too, since the + // data should be available to read: + if let Some(flush_result) = flush_result { + self.flush_write_state_partial(flush_result.events_flushed, flush_result.bytes_flushed); + self.ledger.notify_writer_waiters(); + } + + trace!( + record_id, + record_events, + bytes_written, + data_file_id = self.ledger.get_current_writer_file_id(), + "Wrote record." + ); + + Ok(Ok(bytes_written)) + } + + /// Writes a record. + /// + /// If the record was written successfully, the number of bytes written to the data file will be + /// returned. + /// + /// # Errors + /// + /// If an error occurred while writing the record, an error variant will be returned describing + /// the error. + #[instrument(skip_all, level = "debug")] + pub async fn write_record(&mut self, mut record: T) -> Result> { + loop { + match self.try_write_record_inner(record).await? { + Ok(bytes_written) => return Ok(bytes_written), + Err(old_record) => { + record = old_record; + self.ledger.wait_for_reader().await; + continue; + } + } + } + } + + #[instrument(skip(self), level = "debug")] + async fn flush_inner(&mut self, force_full_flush: bool) -> io::Result<()> { + // We always flush the `BufWriter` when this is called, but we don't always flush to disk or + // flush the ledger. This is enough for readers on Linux since the file ends up in the page + // cache, as we don't do any O_DIRECT fanciness, and the new contents can be immediately + // read. + // + // TODO: Windows has a page cache as well, and macOS _should_, but we should verify this + // behavior works on those platforms as well. + if let Some(writer) = self.writer.as_mut() { + writer.flush().await?; + self.ledger.notify_writer_waiters(); + } + + if self.ledger.should_flush() || force_full_flush { + if let Some(writer) = self.writer.as_mut() { + writer.sync_all().await?; + } + + self.ledger.flush() + } else { + Ok(()) + } + } + + /// Flushes the writer. + /// + /// This must be called for the reader to be able to make progress. + /// + /// This does not ensure that the data is fully synchronized (i.e. `fsync`) to disk, however it + /// may sometimes perform a full synchronization if the time since the last full synchronization + /// occurred has exceeded a configured limit. + /// + /// # Errors + /// + /// If there is an error while flushing either the current data file or the ledger, an error + /// variant will be returned describing the error. + #[instrument(skip(self), level = "trace")] + pub async fn flush(&mut self) -> io::Result<()> { + self.flush_inner(false).await?; + self.flush_write_state(); + Ok(()) + } +} + +impl BufferWriter +where + FS: Filesystem, + FS::File: Unpin, +{ + /// Closes this [`Writer`], marking it as done. + /// + /// Closing the writer signals to the reader that no more records will be written until the + /// buffer is reopened. Writers and readers effectively share a "session", so until the writer + /// and reader both close, the buffer cannot be reopened by another Vector instance. + /// + /// In turn, the reader is able to know that when the writer is marked as done, and it cannot + /// read any more data, that nothing else is actually coming, and it can terminate by beginning + /// to return `None`. + #[instrument(skip(self), level = "trace")] + pub fn close(&mut self) { + if self.ledger.mark_writer_done() { + debug!("Writer marked as closed."); + self.ledger.notify_writer_waiters(); + } + } +} + +impl Drop for BufferWriter +where + FS: Filesystem, + FS::File: Unpin, +{ + fn drop(&mut self) { + self.close(); + } +} diff --git a/lib/vector-buffers/src/variants/in_memory.rs b/lib/vector-buffers/src/variants/in_memory.rs new file mode 100644 index 0000000000000..fedcf35c2d9f1 --- /dev/null +++ b/lib/vector-buffers/src/variants/in_memory.rs @@ -0,0 +1,38 @@ +use std::{error::Error, num::NonZeroUsize}; + +use async_trait::async_trait; + +use crate::{ + buffer_usage_data::BufferUsageHandle, + topology::{ + builder::IntoBuffer, + channel::{limited, ReceiverAdapter, SenderAdapter}, + }, + Bufferable, +}; + +pub struct MemoryBuffer { + capacity: NonZeroUsize, +} + +impl MemoryBuffer { + pub fn new(capacity: NonZeroUsize) -> Self { + MemoryBuffer { capacity } + } +} + +#[async_trait] +impl IntoBuffer for MemoryBuffer +where + T: Bufferable, +{ + async fn into_buffer_parts( + self: Box, + usage_handle: BufferUsageHandle, + ) -> Result<(SenderAdapter, ReceiverAdapter), Box> { + usage_handle.set_buffer_limits(None, Some(self.capacity.get())); + + let (tx, rx) = limited(self.capacity.get()); + Ok((tx.into(), rx.into())) + } +} diff --git a/lib/vector-buffers/src/variants/mod.rs b/lib/vector-buffers/src/variants/mod.rs new file mode 100644 index 0000000000000..1dceacfe32f72 --- /dev/null +++ b/lib/vector-buffers/src/variants/mod.rs @@ -0,0 +1,5 @@ +pub(crate) mod disk_v2; +pub use disk_v2::DiskV2Buffer; + +pub(crate) mod in_memory; +pub use in_memory::MemoryBuffer; diff --git a/lib/vector-common/Cargo.toml b/lib/vector-common/Cargo.toml new file mode 100644 index 0000000000000..303f9f60fd24b --- /dev/null +++ b/lib/vector-common/Cargo.toml @@ -0,0 +1,58 @@ +[package] +name = "vector-common" +version = "0.1.0" +authors = ["Vector Contributors "] +edition = "2021" +publish = false +license = "MPL-2.0" + +[features] +default = [ + "btreemap", + "conversion", + "tokenize", + "encoding", + "sensitive_string" +] + +btreemap = [] + +byte_size_of = ["dep:bytes"] + +conversion = [ + "dep:bytes", +] + +encoding = [ + "btreemap" +] + +sensitive_string = [] + +test = [] + +tokenize = [] + +[dependencies] +async-stream = "0.3.6" +bytes = { version = "1.10.0", default-features = false, optional = true } +chrono.workspace = true +crossbeam-utils = { version = "0.8.21", default-features = false } +derivative = { version = "2.2.0", default-features = false } +futures.workspace = true +indexmap.workspace = true +metrics.workspace = true +paste = "1.0.15" +pin-project.workspace = true +serde.workspace = true +serde_json.workspace = true +smallvec = { version = "1", default-features = false } +stream-cancel = { version = "0.8.2", default-features = false } +tokio = { version = "1.43.0", default-features = false, features = ["macros", "time"] } +tracing = { version = "0.1.34", default-features = false } +vrl.workspace = true +vector-config = { path = "../vector-config" } + +[dev-dependencies] +futures = { version = "0.3.31", default-features = false, features = ["async-await"] } +tokio = { version = "1.43.0", default-features = false, features = ["rt", "time"] } diff --git a/lib/vector-wasm/LICENSE b/lib/vector-common/LICENSE similarity index 100% rename from lib/vector-wasm/LICENSE rename to lib/vector-common/LICENSE diff --git a/lib/vector-common/shared/src/lib.rs b/lib/vector-common/shared/src/lib.rs new file mode 100644 index 0000000000000..aa7e78f07d4da --- /dev/null +++ b/lib/vector-common/shared/src/lib.rs @@ -0,0 +1,26 @@ +#![deny(warnings)] + +#[cfg(feature = "aws_cloudwatch_logs_subscription")] +pub mod aws_cloudwatch_logs_subscription; + +#[cfg(feature = "btreemap")] +pub mod btreemap; + +#[cfg(feature = "conversion")] +pub mod conversion; +#[cfg(feature = "conversion")] +pub mod datetime; + +#[cfg(feature = "conversion")] +pub use datetime::TimeZone; + +pub mod event_data_eq; +pub use event_data_eq::EventDataEq; + +#[cfg(feature = "tokenize")] +pub mod tokenize; + +#[cfg(feature = "encoding")] +pub mod encode_key_value; +#[cfg(feature = "encoding")] +pub mod encode_logfmt; diff --git a/lib/vector-common/src/byte_size_of.rs b/lib/vector-common/src/byte_size_of.rs new file mode 100644 index 0000000000000..5520bd0dcae58 --- /dev/null +++ b/lib/vector-common/src/byte_size_of.rs @@ -0,0 +1,217 @@ +use std::{ + collections::{BTreeMap, BTreeSet}, + mem, +}; + +use bytes::{Bytes, BytesMut}; +use chrono::{DateTime, Utc}; +use serde_json::{value::RawValue, Value as JsonValue}; +use smallvec::SmallVec; +use vrl::value::{KeyString, Value}; + +pub trait ByteSizeOf { + /// Returns the in-memory size of this type + /// + /// This function returns the total number of bytes that + /// [`std::mem::size_of`] does in addition to any interior allocated + /// bytes. Its default implementation is `std::mem::size_of` + + /// `ByteSizeOf::allocated_bytes`. + fn size_of(&self) -> usize { + mem::size_of_val(self) + self.allocated_bytes() + } + + /// Returns the allocated bytes of this type + /// + /// This function returns the total number of bytes that have been allocated + /// interior to this type instance. It does not include any bytes that are + /// captured by [`std::mem::size_of`] except for any bytes that are interior + /// to this type. For instance, `BTreeMap>` would count all + /// bytes for `String` and `Vec` instances but not the exterior bytes + /// for `BTreeMap`. + fn allocated_bytes(&self) -> usize; +} + +impl ByteSizeOf for &T +where + T: ByteSizeOf, +{ + fn allocated_bytes(&self) -> usize { + (*self).size_of() + } +} + +impl ByteSizeOf for Bytes { + fn allocated_bytes(&self) -> usize { + self.len() + } +} + +impl ByteSizeOf for BytesMut { + fn allocated_bytes(&self) -> usize { + self.len() + } +} + +impl ByteSizeOf for String { + fn allocated_bytes(&self) -> usize { + self.len() + } +} + +impl ByteSizeOf for KeyString { + fn allocated_bytes(&self) -> usize { + self.len() + } +} + +impl ByteSizeOf for &str { + fn allocated_bytes(&self) -> usize { + 0 + } +} + +impl ByteSizeOf for BTreeMap +where + K: ByteSizeOf, + V: ByteSizeOf, +{ + fn allocated_bytes(&self) -> usize { + self.iter() + .fold(0, |acc, (k, v)| acc + k.size_of() + v.size_of()) + } +} + +impl ByteSizeOf for BTreeSet +where + T: ByteSizeOf, +{ + fn allocated_bytes(&self) -> usize { + self.iter().map(ByteSizeOf::size_of).sum() + } +} + +impl ByteSizeOf for Vec +where + T: ByteSizeOf, +{ + fn allocated_bytes(&self) -> usize { + self.iter().map(ByteSizeOf::size_of).sum() + } +} + +impl ByteSizeOf for SmallVec +where + A::Item: ByteSizeOf, +{ + fn allocated_bytes(&self) -> usize { + self.iter().map(ByteSizeOf::size_of).sum() + } +} + +impl ByteSizeOf for &[T] +where + T: ByteSizeOf, +{ + fn allocated_bytes(&self) -> usize { + self.iter().map(ByteSizeOf::size_of).sum() + } +} + +impl ByteSizeOf for [T; N] +where + T: ByteSizeOf, +{ + fn size_of(&self) -> usize { + self.allocated_bytes() + } + + fn allocated_bytes(&self) -> usize { + self.iter().map(ByteSizeOf::size_of).sum() + } +} + +impl ByteSizeOf for Option +where + T: ByteSizeOf, +{ + fn allocated_bytes(&self) -> usize { + self.as_ref().map_or(0, ByteSizeOf::allocated_bytes) + } +} + +macro_rules! num { + ($t:ty) => { + impl ByteSizeOf for $t { + fn allocated_bytes(&self) -> usize { + 0 + } + } + }; +} + +num!(u8); +num!(u16); +num!(u32); +num!(u64); +num!(u128); +num!(i8); +num!(i16); +num!(i32); +num!(i64); +num!(i128); +num!(f32); +num!(f64); + +impl ByteSizeOf for Box { + fn allocated_bytes(&self) -> usize { + self.get().len() + } +} + +impl ByteSizeOf for JsonValue { + fn allocated_bytes(&self) -> usize { + match self { + JsonValue::Null | JsonValue::Bool(_) | JsonValue::Number(_) => 0, + JsonValue::String(s) => s.len(), + JsonValue::Array(a) => a.size_of(), + JsonValue::Object(o) => o.iter().map(|(k, v)| k.size_of() + v.size_of()).sum(), + } + } +} + +impl ByteSizeOf for Value { + fn allocated_bytes(&self) -> usize { + match self { + Value::Bytes(bytes) => bytes.len(), + Value::Object(map) => map.size_of(), + Value::Array(arr) => arr.size_of(), + _ => 0, + } + } +} + +impl ByteSizeOf for DateTime { + fn allocated_bytes(&self) -> usize { + 0 + } +} + +impl ByteSizeOf for indexmap::IndexMap +where + K: ByteSizeOf, + V: ByteSizeOf, +{ + fn allocated_bytes(&self) -> usize { + self.iter() + .fold(0, |acc, (k, v)| acc + k.size_of() + v.size_of()) + } +} + +impl ByteSizeOf for indexmap::IndexSet +where + T: ByteSizeOf, +{ + fn allocated_bytes(&self) -> usize { + self.iter().map(ByteSizeOf::size_of).sum() + } +} diff --git a/lib/vector-common/src/config.rs b/lib/vector-common/src/config.rs new file mode 100644 index 0000000000000..621915e322ce7 --- /dev/null +++ b/lib/vector-common/src/config.rs @@ -0,0 +1,108 @@ +use std::{ + cmp::{Ord, Ordering, PartialOrd}, + fmt, +}; + +use vector_config::{configurable_component, ConfigurableString}; + +/// Component identifier. +#[configurable_component(no_deser, no_ser)] +#[derive(::serde::Deserialize, ::serde::Serialize)] +#[serde(from = "String", into = "String")] +#[derive(Clone, Debug, Eq, Hash, PartialEq)] +pub struct ComponentKey { + /// Component ID. + id: String, +} + +impl ComponentKey { + #[must_use] + pub fn id(&self) -> &str { + &self.id + } + + #[must_use] + pub fn join(&self, name: D) -> Self { + Self { + // ports and inner component use the same naming convention + id: self.port(name), + } + } + + pub fn port(&self, name: D) -> String { + format!("{}.{name}", self.id) + } + + #[must_use] + pub fn into_id(self) -> String { + self.id + } +} + +impl From for ComponentKey { + fn from(id: String) -> Self { + Self { id } + } +} + +impl From<&str> for ComponentKey { + fn from(value: &str) -> Self { + Self::from(value.to_owned()) + } +} + +impl From for String { + fn from(key: ComponentKey) -> Self { + key.into_id() + } +} + +impl fmt::Display for ComponentKey { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + self.id.fmt(f) + } +} + +impl Ord for ComponentKey { + fn cmp(&self, other: &Self) -> Ordering { + self.id.cmp(&other.id) + } +} + +impl PartialOrd for ComponentKey { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +impl ConfigurableString for ComponentKey {} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn deserialize_string() { + let result: ComponentKey = serde_json::from_str("\"foo\"").unwrap(); + assert_eq!(result.id(), "foo"); + } + + #[test] + fn serialize_string() { + let item = ComponentKey::from("foo"); + let result = serde_json::to_string(&item).unwrap(); + assert_eq!(result, "\"foo\""); + } + + #[test] + #[allow(clippy::similar_names)] + fn ordering() { + let global_baz = ComponentKey::from("baz"); + let yolo_bar = ComponentKey::from("yolo.bar"); + let foo_bar = ComponentKey::from("foo.bar"); + let foo_baz = ComponentKey::from("foo.baz"); + let mut list = vec![&foo_baz, &yolo_bar, &global_baz, &foo_bar]; + list.sort(); + assert_eq!(list, vec![&global_baz, &foo_bar, &foo_baz, &yolo_bar]); + } +} diff --git a/lib/vector-common/src/constants.rs b/lib/vector-common/src/constants.rs new file mode 100644 index 0000000000000..1eeadca45b5dc --- /dev/null +++ b/lib/vector-common/src/constants.rs @@ -0,0 +1,3 @@ +pub const GZIP_MAGIC: &[u8] = &[0x1f, 0x8b]; +pub const ZLIB_MAGIC: &[u8] = &[0x78]; +pub const ZSTD_MAGIC: &[u8] = &[0x28, 0xB5, 0x2F, 0xFD]; diff --git a/lib/vector-common/src/event_data_eq.rs b/lib/vector-common/src/event_data_eq.rs new file mode 100644 index 0000000000000..88a178952b3fd --- /dev/null +++ b/lib/vector-common/src/event_data_eq.rs @@ -0,0 +1,85 @@ +/// A related trait to `PartialEq`, `EventDataEq` tests if two events +/// contain the same data, exclusive of the metadata. This is used to +/// test for events having the same values but potentially different +/// parts of the metadata that not fixed between runs, without removing +/// the ability to compare them for exact equality. +pub trait EventDataEq { + fn event_data_eq(&self, other: &Rhs) -> bool; +} + +#[allow(clippy::module_name_repetitions)] // full name is better since this macro is typically imported +#[macro_export] +macro_rules! assert_event_data_eq { + ($left:expr, $right:expr, $message:expr) => {{ + use $crate::EventDataEq as _; + match (&($left), &($right)) { + (left, right) => { + assert!( + left.event_data_eq(right), + "assertion failed: {}\n\n{}\n", + $message, + similar_asserts::SimpleDiff::from_str( + format!("{:#?}", left).as_str(), + format!("{:#?}", right).as_str(), + "left", + "right" + ), + ); + } + } + }}; + ($left:expr, $right:expr,) => { + $crate::assert_event_data_eq!($left, $right) + }; + ($left:expr, $right:expr) => { + $crate::assert_event_data_eq!($left, $right, "`left.event_data_eq(right)`") + }; +} + +#[allow(clippy::module_name_repetitions)] // full name is better since this macro is typically imported +#[macro_export] +macro_rules! impl_event_data_eq { + ($type:ty) => { + impl $crate::EventDataEq for $type { + fn event_data_eq(&self, other: &Self) -> bool { + self == other + } + } + }; +} + +impl EventDataEq for &[T] { + fn event_data_eq(&self, other: &Self) -> bool { + self.len() == other.len() + && self + .iter() + .zip(other.iter()) + .all(|(a, b)| a.event_data_eq(b)) + } +} + +impl EventDataEq for Vec { + fn event_data_eq(&self, other: &Self) -> bool { + self.as_slice().event_data_eq(&other.as_slice()) + } +} + +impl EventDataEq for Option { + fn event_data_eq(&self, other: &Self) -> bool { + match (self, other) { + (None, None) => true, + (Some(left), Some(right)) => left.event_data_eq(right), + _ => false, + } + } +} + +impl EventDataEq for Result { + fn event_data_eq(&self, other: &Self) -> bool { + match (self, other) { + (Ok(left), Ok(right)) => left.event_data_eq(right), + (Err(left), Err(right)) => left.event_data_eq(right), + _ => false, + } + } +} diff --git a/lib/vector-common/src/event_test_util.rs b/lib/vector-common/src/event_test_util.rs new file mode 100644 index 0000000000000..39b0f8ebd4db8 --- /dev/null +++ b/lib/vector-common/src/event_test_util.rs @@ -0,0 +1,69 @@ +use std::fmt::Write as _; +use std::{cell::RefCell, collections::HashSet}; + +thread_local! { + /// A buffer for recording internal events emitted by a single test. + static EVENTS_RECORDED: RefCell> = RefCell::new(HashSet::new()); +} + +/// Returns Ok(()) if the event name pattern is matched only once. +/// +/// # Errors +/// +/// Will return `Err` if `pattern` is not found in the event record, or is found multiple times. +pub fn contains_name_once(pattern: &str) -> Result<(), String> { + EVENTS_RECORDED.with(|events| { + let mut n_events = 0; + let mut names = String::new(); + for event in &*events.borrow() { + if event.ends_with(pattern) { + if n_events > 0 { + names.push_str(", "); + } + n_events += 1; + _ = write!(names, "`{event}`"); + } + } + if n_events == 0 { + Err(format!("Missing event `{pattern}`")) + } else if n_events > 1 { + Err(format!( + "Multiple ({n_events}) events matching `{pattern}`: ({names}). Hint! Don't use the `assert_x_` \ + test helpers on round-trip tests (tests that run more than a single component)." + )) + } else { + Ok(()) + } + }) +} + +pub fn clear_recorded_events() { + EVENTS_RECORDED.with(|er| er.borrow_mut().clear()); +} + +#[allow(clippy::print_stdout)] +pub fn debug_print_events() { + EVENTS_RECORDED.with(|events| { + for event in &*events.borrow() { + println!("{event}"); + } + }); +} + +/// Record an emitted internal event. This is somewhat dumb at this +/// point, just recording the pure string value of the `emit!` call +/// parameter. At some point, making all internal events implement +/// `Debug` or `Serialize` might allow for more sophistication here, but +/// this is good enough for these tests. This should only be used by the +/// test `emit!` macro. The `check-events` script will test that emitted +/// events contain the right fields, etc. +pub fn record_internal_event(event: &str) { + // Remove leading '&' + let event = event.strip_prefix('&').unwrap_or(event); + // Remove trailing '{fields…}' + let event = event.find('{').map_or(event, |par| &event[..par]); + // Remove trailing '::from…' + let event = event.find(':').map_or(event, |colon| &event[..colon]); + + EVENTS_RECORDED.with(|er| er.borrow_mut().insert(event.trim().into())); +} diff --git a/lib/vector-common/src/finalization.rs b/lib/vector-common/src/finalization.rs new file mode 100644 index 0000000000000..48001a2bf8727 --- /dev/null +++ b/lib/vector-common/src/finalization.rs @@ -0,0 +1,574 @@ +#![deny(missing_docs)] +//! This module contains the event metadata required to track an event +//! as it flows through transforms, being duplicated and merged, and +//! then report its status when the last copy is delivered or dropped. + +use std::{cmp, future::Future, mem, pin::Pin, sync::Arc, task::Poll}; + +use crossbeam_utils::atomic::AtomicCell; +use futures::future::FutureExt; +use tokio::sync::oneshot; + +#[cfg(feature = "byte_size_of")] +use crate::byte_size_of::ByteSizeOf; + +/// A collection of event finalizers. +#[derive(Clone, Debug, Default)] +pub struct EventFinalizers(Vec>); + +impl Eq for EventFinalizers {} + +impl PartialEq for EventFinalizers { + fn eq(&self, other: &Self) -> bool { + self.0.len() == other.0.len() + && (self.0.iter()) + .zip(other.0.iter()) + .all(|(a, b)| Arc::ptr_eq(a, b)) + } +} + +impl PartialOrd for EventFinalizers { + fn partial_cmp(&self, other: &Self) -> Option { + // There is no partial order defined structurally on + // `EventFinalizer`. Partial equality is defined on the equality of + // `Arc`s. Therefore, partial ordering of `EventFinalizers` is defined + // only on the length of the finalizers. + self.0.len().partial_cmp(&other.0.len()) + } +} + +#[cfg(feature = "byte_size_of")] +impl ByteSizeOf for EventFinalizers { + fn allocated_bytes(&self) -> usize { + // Don't count the allocated data here, it's not really event + // data we're interested in tracking but rather an artifact of + // tracking and merging events. + 0 + } +} + +impl EventFinalizers { + /// Default empty finalizer set for use in `const` contexts. + pub const DEFAULT: Self = Self(Vec::new()); + + /// Creates a new `EventFinalizers` based on the given event finalizer. + #[must_use] + pub fn new(finalizer: EventFinalizer) -> Self { + Self(vec![Arc::new(finalizer)]) + } + + /// Returns `true` if the collection contains no event finalizers. + #[must_use] + pub fn is_empty(&self) -> bool { + self.0.is_empty() + } + + /// Returns the number of event finalizers in the collection. + #[must_use] + pub fn len(&self) -> usize { + self.0.len() + } + + /// Adds a new event finalizer to the collection. + pub fn add(&mut self, finalizer: EventFinalizer) { + self.0.push(Arc::new(finalizer)); + } + + /// Merges the event finalizers from `other` into the collection. + pub fn merge(&mut self, other: Self) { + self.0.extend(other.0); + } + + /// Updates the status of all event finalizers in the collection. + pub fn update_status(&self, status: EventStatus) { + for finalizer in &self.0 { + finalizer.update_status(status); + } + } + + /// Consumes all event finalizers and updates their underlying batches immediately. + pub fn update_sources(&mut self) { + let finalizers = mem::take(&mut self.0); + for finalizer in &finalizers { + finalizer.update_batch(); + } + } +} + +impl Finalizable for EventFinalizers { + fn take_finalizers(&mut self) -> EventFinalizers { + mem::take(self) + } +} + +impl std::iter::FromIterator for EventFinalizers { + fn from_iter>(iter: T) -> Self { + Self(iter.into_iter().flat_map(|f| f.0.into_iter()).collect()) + } +} + +/// An event finalizer is the shared data required to handle tracking the status of an event, and updating the status of +/// a batch with that when the event is dropped. +#[derive(Debug)] +pub struct EventFinalizer { + status: AtomicCell, + batch: BatchNotifier, +} + +#[cfg(feature = "byte_size_of")] +impl ByteSizeOf for EventFinalizer { + fn allocated_bytes(&self) -> usize { + // Don't count the batch notifier, as it's shared across + // events in a batch. + 0 + } +} + +impl EventFinalizer { + /// Creates a new `EventFinalizer` attached to the given `batch`. + #[must_use] + pub fn new(batch: BatchNotifier) -> Self { + let status = AtomicCell::new(EventStatus::Dropped); + Self { status, batch } + } + + /// Updates the status of the event finalizer to `status`. + pub fn update_status(&self, status: EventStatus) { + self.status + .fetch_update(|old_status| Some(old_status.update(status))) + .unwrap_or_else(|_| unreachable!()); + } + + /// Updates the underlying batch status with the status of the event finalizer. + /// + /// In doing so, the event finalizer is marked as "recorded", which prevents any further updates to it. + pub fn update_batch(&self) { + let status = self + .status + .fetch_update(|_| Some(EventStatus::Recorded)) + .unwrap_or_else(|_| unreachable!()); + self.batch.update_status(status); + } +} + +impl Drop for EventFinalizer { + fn drop(&mut self) { + self.update_batch(); + } +} + +/// A convenience newtype wrapper for the one-shot receiver for an +/// individual batch status. +#[pin_project::pin_project] +pub struct BatchStatusReceiver(oneshot::Receiver); + +impl Future for BatchStatusReceiver { + type Output = BatchStatus; + fn poll(mut self: Pin<&mut Self>, ctx: &mut std::task::Context<'_>) -> Poll { + match self.0.poll_unpin(ctx) { + Poll::Pending => Poll::Pending, + Poll::Ready(Ok(status)) => Poll::Ready(status), + Poll::Ready(Err(error)) => { + error!(%error, "Batch status receiver dropped before sending."); + Poll::Ready(BatchStatus::Errored) + } + } + } +} + +impl BatchStatusReceiver { + /// Wrapper for the underlying `try_recv` function. + /// + /// # Errors + /// + /// - `TryRecvError::Empty` if no value has been sent yet. + /// - `TryRecvError::Closed` if the sender has dropped without sending a value. + pub fn try_recv(&mut self) -> Result { + self.0.try_recv() + } +} + +/// A batch notifier contains the status of the current batch along with +/// a one-shot notifier to send that status back to the source. It is +/// shared among all events of a batch. +#[derive(Clone, Debug)] +pub struct BatchNotifier(Arc); + +impl BatchNotifier { + /// Creates a new `BatchNotifier` along with the receiver used to await its finalization status. + #[must_use] + pub fn new_with_receiver() -> (Self, BatchStatusReceiver) { + let (sender, receiver) = oneshot::channel(); + let notifier = OwnedBatchNotifier { + status: AtomicCell::new(BatchStatus::Delivered), + notifier: Some(sender), + }; + (Self(Arc::new(notifier)), BatchStatusReceiver(receiver)) + } + + /// Optionally creates a new `BatchNotifier` along with the receiver used to await its finalization status. + #[must_use] + pub fn maybe_new_with_receiver(enabled: bool) -> (Option, Option) { + if enabled { + let (batch, receiver) = Self::new_with_receiver(); + (Some(batch), Some(receiver)) + } else { + (None, None) + } + } + + /// Creates a new `BatchNotifier` and attaches it to a group of events. + /// + /// The receiver used to await the finalization status of the batch is returned. + pub fn apply_to(items: &mut [T]) -> BatchStatusReceiver { + let (batch, receiver) = Self::new_with_receiver(); + for item in items { + item.add_batch_notifier(batch.clone()); + } + receiver + } + + /// Optionally creates a new `BatchNotifier` and attaches it to a group of events. + /// + /// If `enabled`, the receiver used to await the finalization status of the batch is + /// returned. Otherwise, `None` is returned. + pub fn maybe_apply_to( + enabled: bool, + items: &mut [T], + ) -> Option { + enabled.then(|| Self::apply_to(items)) + } + + /// Updates the status of the notifier. + fn update_status(&self, status: EventStatus) { + // The status starts as Delivered and can only change if the new + // status is different than that. + if status != EventStatus::Delivered && status != EventStatus::Dropped { + self.0 + .status + .fetch_update(|old_status| Some(old_status.update(status))) + .unwrap_or_else(|_| unreachable!()); + } + } +} + +/// The non-shared data underlying the shared `BatchNotifier` +#[derive(Debug)] +pub struct OwnedBatchNotifier { + status: AtomicCell, + notifier: Option>, +} + +impl OwnedBatchNotifier { + /// Sends the status of the notifier back to the source. + fn send_status(&mut self) { + if let Some(notifier) = self.notifier.take() { + let status = self.status.load(); + // Ignore the error case, as it will happen during normal + // source shutdown and we can't detect that here. + _ = notifier.send(status); + } + } +} + +impl Drop for OwnedBatchNotifier { + fn drop(&mut self) { + self.send_status(); + } +} + +/// The status of an individual batch. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(u8)] +pub enum BatchStatus { + /// All events in the batch were accepted. + /// + /// This is the default. + Delivered, + /// At least one event in the batch had a transient error in delivery. + Errored, + /// At least one event in the batch had a permanent failure or rejection. + Rejected, +} + +impl Default for BatchStatus { + fn default() -> Self { + Self::Delivered + } +} + +impl BatchStatus { + /// Updates the delivery status based on another batch's delivery status, returning the result. + /// + /// As not every status has the same priority, some updates may end up being a no-op either due to not being any + /// different or due to being lower priority than the current status. + #[allow(clippy::match_same_arms)] // False positive: https://github.com/rust-lang/rust-clippy/issues/860 + fn update(self, status: EventStatus) -> Self { + match (self, status) { + // `Dropped` and `Delivered` do not change the status. + (_, EventStatus::Dropped | EventStatus::Delivered) => self, + // `Rejected` overrides `Errored` and `Delivered` + (Self::Rejected, _) | (_, EventStatus::Rejected) => Self::Rejected, + // `Errored` overrides `Delivered` + (Self::Errored, _) | (_, EventStatus::Errored) => Self::Errored, + // No change for `Delivered` + _ => self, + } + } +} + +/// The status of an individual event. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(u8)] +pub enum EventStatus { + /// All copies of this event were dropped without being finalized. + /// + /// This is the default. + Dropped, + /// All copies of this event were delivered successfully. + Delivered, + /// At least one copy of this event encountered a retriable error. + Errored, + /// At least one copy of this event encountered a permanent failure or rejection. + Rejected, + /// This status has been recorded and should not be updated. + Recorded, +} + +impl Default for EventStatus { + fn default() -> Self { + Self::Dropped + } +} + +impl EventStatus { + /// Updates the status based on another event's status, returning the result. + /// + /// As not every status has the same priority, some updates may end up being a no-op either due to not being any + /// different or due to being lower priority than the current status. + /// + /// # Panics + /// + /// Passing a new status of `Dropped` is a programming error and will panic in debug/test builds. + #[allow(clippy::match_same_arms)] // False positive: https://github.com/rust-lang/rust-clippy/issues/860 + #[must_use] + pub fn update(self, status: Self) -> Self { + match (self, status) { + // `Recorded` always overwrites existing status and is never updated + (_, Self::Recorded) | (Self::Recorded, _) => Self::Recorded, + // `Dropped` always updates to the new status. + (Self::Dropped, _) => status, + // Updates *to* `Dropped` are nonsense. + (_, Self::Dropped) => { + debug_assert!(false, "Updating EventStatus to Dropped is nonsense"); + self + } + // `Rejected` overrides `Errored` or `Delivered`. + (Self::Rejected, _) | (_, Self::Rejected) => Self::Rejected, + // `Errored` overrides `Delivered`. + (Self::Errored, _) | (_, Self::Errored) => Self::Errored, + // No change for `Delivered`. + (Self::Delivered, Self::Delivered) => Self::Delivered, + } + } +} + +/// An object to which we can add a batch notifier. +pub trait AddBatchNotifier { + /// Adds a single shared batch notifier to this type. + fn add_batch_notifier(&mut self, notifier: BatchNotifier); +} + +/// An object that can be finalized. +pub trait Finalizable { + /// Consumes the finalizers of this object. + /// + /// Typically used for coalescing the finalizers of multiple items, such as when batching finalizable objects where + /// all finalizations will be processed when the batch itself is processed. + fn take_finalizers(&mut self) -> EventFinalizers; +} + +impl Finalizable for Vec { + fn take_finalizers(&mut self) -> EventFinalizers { + self.iter_mut() + .fold(EventFinalizers::default(), |mut acc, x| { + acc.merge(x.take_finalizers()); + acc + }) + } +} + +#[cfg(test)] +mod tests { + use tokio::sync::oneshot::error::TryRecvError::Empty; + + use super::*; + + #[test] + fn defaults() { + let finalizer = EventFinalizers::default(); + assert_eq!(finalizer.len(), 0); + } + + #[test] + fn sends_notification() { + let (fin, mut receiver) = make_finalizer(); + assert_eq!(receiver.try_recv(), Err(Empty)); + drop(fin); + assert_eq!(receiver.try_recv(), Ok(BatchStatus::Delivered)); + } + + #[test] + fn early_update() { + let (mut fin, mut receiver) = make_finalizer(); + fin.update_status(EventStatus::Rejected); + assert_eq!(receiver.try_recv(), Err(Empty)); + fin.update_sources(); + assert_eq!(fin.len(), 0); + assert_eq!(receiver.try_recv(), Ok(BatchStatus::Rejected)); + } + + #[test] + fn clone_events() { + let (fin1, mut receiver) = make_finalizer(); + let fin2 = fin1.clone(); + assert_eq!(fin1.len(), 1); + assert_eq!(fin2.len(), 1); + assert_eq!(fin1, fin2); + + assert_eq!(receiver.try_recv(), Err(Empty)); + drop(fin1); + assert_eq!(receiver.try_recv(), Err(Empty)); + drop(fin2); + assert_eq!(receiver.try_recv(), Ok(BatchStatus::Delivered)); + } + + #[test] + fn merge_events() { + let mut fin0 = EventFinalizers::default(); + let (fin1, mut receiver1) = make_finalizer(); + let (fin2, mut receiver2) = make_finalizer(); + + assert_eq!(fin0.len(), 0); + fin0.merge(fin1); + assert_eq!(fin0.len(), 1); + fin0.merge(fin2); + assert_eq!(fin0.len(), 2); + + assert_eq!(receiver1.try_recv(), Err(Empty)); + assert_eq!(receiver2.try_recv(), Err(Empty)); + drop(fin0); + assert_eq!(receiver1.try_recv(), Ok(BatchStatus::Delivered)); + assert_eq!(receiver2.try_recv(), Ok(BatchStatus::Delivered)); + } + + #[ignore] // The current implementation does not deduplicate finalizers + #[test] + fn clone_and_merge_events() { + let (mut fin1, mut receiver) = make_finalizer(); + let fin2 = fin1.clone(); + fin1.merge(fin2); + assert_eq!(fin1.len(), 1); + + assert_eq!(receiver.try_recv(), Err(Empty)); + drop(fin1); + assert_eq!(receiver.try_recv(), Ok(BatchStatus::Delivered)); + } + + #[test] + fn multi_event_batch() { + let (batch, mut receiver) = BatchNotifier::new_with_receiver(); + let event1 = EventFinalizers::new(EventFinalizer::new(batch.clone())); + let mut event2 = EventFinalizers::new(EventFinalizer::new(batch.clone())); + let event3 = EventFinalizers::new(EventFinalizer::new(batch.clone())); + // Also clone one… + let event4 = event1.clone(); + drop(batch); + assert_eq!(event1.len(), 1); + assert_eq!(event2.len(), 1); + assert_eq!(event3.len(), 1); + assert_eq!(event4.len(), 1); + assert_ne!(event1, event2); + assert_ne!(event1, event3); + assert_eq!(event1, event4); + assert_ne!(event2, event3); + assert_ne!(event2, event4); + assert_ne!(event3, event4); + // …and merge another + event2.merge(event3); + assert_eq!(event2.len(), 2); + + assert_eq!(receiver.try_recv(), Err(Empty)); + drop(event1); + assert_eq!(receiver.try_recv(), Err(Empty)); + drop(event2); + assert_eq!(receiver.try_recv(), Err(Empty)); + drop(event4); + assert_eq!(receiver.try_recv(), Ok(BatchStatus::Delivered)); + } + + fn make_finalizer() -> (EventFinalizers, BatchStatusReceiver) { + let (batch, receiver) = BatchNotifier::new_with_receiver(); + let finalizer = EventFinalizers::new(EventFinalizer::new(batch)); + assert_eq!(finalizer.len(), 1); + (finalizer, receiver) + } + + #[test] + fn event_status_updates() { + use EventStatus::{Delivered, Dropped, Errored, Recorded, Rejected}; + + assert_eq!(Dropped.update(Dropped), Dropped); + assert_eq!(Dropped.update(Delivered), Delivered); + assert_eq!(Dropped.update(Errored), Errored); + assert_eq!(Dropped.update(Rejected), Rejected); + assert_eq!(Dropped.update(Recorded), Recorded); + + //assert_eq!(Delivered.update(Dropped), Delivered); + assert_eq!(Delivered.update(Delivered), Delivered); + assert_eq!(Delivered.update(Errored), Errored); + assert_eq!(Delivered.update(Rejected), Rejected); + assert_eq!(Delivered.update(Recorded), Recorded); + + //assert_eq!(Errored.update(Dropped), Errored); + assert_eq!(Errored.update(Delivered), Errored); + assert_eq!(Errored.update(Errored), Errored); + assert_eq!(Errored.update(Rejected), Rejected); + assert_eq!(Errored.update(Recorded), Recorded); + + //assert_eq!(Rejected.update(Dropped), Rejected); + assert_eq!(Rejected.update(Delivered), Rejected); + assert_eq!(Rejected.update(Errored), Rejected); + assert_eq!(Rejected.update(Rejected), Rejected); + assert_eq!(Rejected.update(Recorded), Recorded); + + //assert_eq!(Recorded.update(Dropped), Recorded); + assert_eq!(Recorded.update(Delivered), Recorded); + assert_eq!(Recorded.update(Errored), Recorded); + assert_eq!(Recorded.update(Rejected), Recorded); + assert_eq!(Recorded.update(Recorded), Recorded); + } + + #[test] + fn batch_status_update() { + use BatchStatus::{Delivered, Errored, Rejected}; + + assert_eq!(Delivered.update(EventStatus::Dropped), Delivered); + assert_eq!(Delivered.update(EventStatus::Delivered), Delivered); + assert_eq!(Delivered.update(EventStatus::Errored), Errored); + assert_eq!(Delivered.update(EventStatus::Rejected), Rejected); + assert_eq!(Delivered.update(EventStatus::Recorded), Delivered); + + assert_eq!(Errored.update(EventStatus::Dropped), Errored); + assert_eq!(Errored.update(EventStatus::Delivered), Errored); + assert_eq!(Errored.update(EventStatus::Errored), Errored); + assert_eq!(Errored.update(EventStatus::Rejected), Rejected); + assert_eq!(Errored.update(EventStatus::Recorded), Errored); + + assert_eq!(Rejected.update(EventStatus::Dropped), Rejected); + assert_eq!(Rejected.update(EventStatus::Delivered), Rejected); + assert_eq!(Rejected.update(EventStatus::Errored), Rejected); + assert_eq!(Rejected.update(EventStatus::Rejected), Rejected); + assert_eq!(Rejected.update(EventStatus::Recorded), Rejected); + } +} diff --git a/lib/vector-common/src/finalizer.rs b/lib/vector-common/src/finalizer.rs new file mode 100644 index 0000000000000..a3f63f229063d --- /dev/null +++ b/lib/vector-common/src/finalizer.rs @@ -0,0 +1,216 @@ +#![allow(clippy::module_name_repetitions)] + +use std::marker::{PhantomData, Unpin}; +use std::{fmt::Debug, future::Future, pin::Pin, sync::Arc, task::Context, task::Poll}; + +use futures::stream::{BoxStream, FuturesOrdered, FuturesUnordered}; +use futures::{future::OptionFuture, FutureExt, Stream, StreamExt}; +use tokio::sync::mpsc::{self, UnboundedReceiver, UnboundedSender}; +use tokio::sync::Notify; + +use crate::finalization::{BatchStatus, BatchStatusReceiver}; +use crate::shutdown::ShutdownSignal; + +/// The `OrderedFinalizer` framework produces a stream of acknowledged +/// event batch identifiers from a source in a single background task +/// *in the order they are received from the source*, using +/// `FinalizerSet`. +pub type OrderedFinalizer = FinalizerSet>>; + +/// The `UnorderedFinalizer` framework produces a stream of +/// acknowledged event batch identifiers from a source in a single +/// background task *in the order that finalization happens on the +/// event batches*, using `FinalizerSet`. +pub type UnorderedFinalizer = FinalizerSet>>; + +/// The `FinalizerSet` framework here is a mechanism for creating a +/// stream of acknowledged (finalized) event batch identifiers from a +/// source as done in a single background task. It does this by +/// pushing the batch status receiver along with an identifier into +/// either a `FuturesOrdered` or `FuturesUnordered`, waiting on the +/// stream of acknowledgements that comes out, extracting just the +/// identifier and sending that into the returned stream. The type `T` +/// is the source-specific data associated with each entry. +#[derive(Debug)] +pub struct FinalizerSet { + sender: Option>, + flush: Arc, + _phantom: PhantomData, +} + +impl FinalizerSet +where + T: Send + Debug + 'static, + S: FuturesSet> + Default + Send + Unpin + 'static, +{ + /// Produce a finalizer set along with the output stream of + /// received acknowledged batch identifiers. + /// + /// The output stream will end when the source closes the producer side of the channel, and + /// acknowledgements in the channel are drained. + /// + /// If the optional shutdown signal is provided, the output stream will end immediately when a + /// shutdown signal is received. This is not recommended, and can cause some acknowledgements + /// to go unprocessed. Sources may process the message(s) that correspond to those + /// acknowledgements again. + #[must_use] + pub fn new(shutdown: Option) -> (Self, BoxStream<'static, (BatchStatus, T)>) { + let (todo_tx, todo_rx) = mpsc::unbounded_channel(); + let flush1 = Arc::new(Notify::new()); + let flush2 = Arc::clone(&flush1); + ( + Self { + sender: Some(todo_tx), + flush: flush1, + _phantom: PhantomData, + }, + finalizer_stream(shutdown, todo_rx, S::default(), flush2).boxed(), + ) + } + + /// This returns an optional finalizer set along with a generic + /// stream of acknowledged identifiers. In the case the finalizer + /// is not to be used, a special empty stream is returned that is + /// always pending and so never wakes. + #[must_use] + pub fn maybe_new( + maybe: bool, + shutdown: Option, + ) -> (Option, BoxStream<'static, (BatchStatus, T)>) { + if maybe { + let (finalizer, stream) = Self::new(shutdown); + (Some(finalizer), stream) + } else { + (None, EmptyStream::default().boxed()) + } + } + + pub fn add(&self, entry: T, receiver: BatchStatusReceiver) { + if let Some(sender) = &self.sender { + if let Err(error) = sender.send((receiver, entry)) { + error!(message = "FinalizerSet task ended prematurely.", %error); + } + } + } + + pub fn flush(&self) { + self.flush.notify_one(); + } +} + +fn finalizer_stream( + shutdown: Option, + mut new_entries: UnboundedReceiver<(BatchStatusReceiver, T)>, + mut status_receivers: S, + flush: Arc, +) -> impl Stream +where + S: Default + FuturesSet> + Unpin, +{ + let handle_shutdown = shutdown.is_some(); + let mut shutdown = OptionFuture::from(shutdown); + + async_stream::stream! { + loop { + tokio::select! { + biased; + _ = &mut shutdown, if handle_shutdown => break, + () = flush.notified() => { + // Drop all the existing status receivers and start over. + status_receivers = S::default(); + }, + // Prefer to remove finalizers than to add new finalizers to prevent unbounded + // growth under load. + finished = status_receivers.next(), if !status_receivers.is_empty() => match finished { + Some((status, entry)) => yield (status, entry), + // The `is_empty` guard above prevents this from being reachable. + None => unreachable!(), + }, + // Only poll for new entries until shutdown is flagged. + new_entry = new_entries.recv() => match new_entry { + Some((receiver, entry)) => { + status_receivers.push(FinalizerFuture { + receiver, + entry: Some(entry), + }); + } + // The end of the new entry channel signals shutdown + None => break, + }, + } + } + + // We've either seen a shutdown signal or the new entry sender + // was closed. Wait for the last statuses to come in before + // indicating we are done. + while let Some((status, entry)) = status_receivers.next().await { + yield (status, entry); + } + + // Hold on to the shutdown signal until here to prevent + // notification of completion before this stream is done. + drop(shutdown); + } +} + +pub trait FuturesSet: Stream { + fn is_empty(&self) -> bool; + fn push(&mut self, future: Fut); +} + +impl FuturesSet for FuturesOrdered { + fn is_empty(&self) -> bool { + Self::is_empty(self) + } + + fn push(&mut self, future: Fut) { + Self::push_back(self, future); + } +} + +impl FuturesSet for FuturesUnordered { + fn is_empty(&self) -> bool { + Self::is_empty(self) + } + + fn push(&mut self, future: Fut) { + Self::push(self, future); + } +} + +#[pin_project::pin_project] +pub struct FinalizerFuture { + receiver: BatchStatusReceiver, + entry: Option, +} + +impl Future for FinalizerFuture { + type Output = (::Output, T); + fn poll(mut self: Pin<&mut Self>, ctx: &mut std::task::Context<'_>) -> Poll { + let status = std::task::ready!(self.receiver.poll_unpin(ctx)); + // The use of this above in a `Futures{Ordered|Unordered|` + // will only take this once before dropping the future. + Poll::Ready((status, self.entry.take().unwrap_or_else(|| unreachable!()))) + } +} + +#[derive(Clone, Copy)] +pub struct EmptyStream(PhantomData); + +impl Default for EmptyStream { + fn default() -> Self { + Self(PhantomData) + } +} + +impl Stream for EmptyStream { + type Item = T; + + fn poll_next(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll> { + Poll::Pending + } + + fn size_hint(&self) -> (usize, Option) { + (0, Some(0)) + } +} diff --git a/lib/vector-common/src/id.rs b/lib/vector-common/src/id.rs new file mode 100644 index 0000000000000..4b4914016e5f7 --- /dev/null +++ b/lib/vector-common/src/id.rs @@ -0,0 +1,98 @@ +use std::ops::Deref; + +use vector_config::configurable_component; + +pub use crate::config::ComponentKey; + +/// A list of upstream [source][sources] or [transform][transforms] IDs. +/// +/// Wildcards (`*`) are supported. +/// +/// See [configuration][configuration] for more info. +/// +/// [sources]: https://vector.dev/docs/reference/configuration/sources/ +/// [transforms]: https://vector.dev/docs/reference/configuration/transforms/ +/// [configuration]: https://vector.dev/docs/reference/configuration/ +#[configurable_component] +#[configurable(metadata( + docs::examples = "my-source-or-transform-id", + docs::examples = "prefix-*" +))] +#[derive(Clone, Debug)] +pub struct Inputs(Vec); + +impl Inputs { + /// Returns `true` if no inputs are present. + #[must_use] + pub fn is_empty(&self) -> bool { + self.0.is_empty() + } +} + +impl Deref for Inputs { + type Target = [T]; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl Default for Inputs { + fn default() -> Self { + Self(Vec::new()) + } +} + +impl PartialEq<&[U]> for Inputs +where + T: PartialEq, +{ + fn eq(&self, other: &&[U]) -> bool { + self.0.as_slice() == &other[..] + } +} + +impl PartialEq> for Inputs +where + T: PartialEq, +{ + fn eq(&self, other: &Vec) -> bool { + &self.0 == other + } +} + +impl Extend for Inputs { + fn extend>(&mut self, iter: I) { + self.0.extend(iter); + } +} + +impl IntoIterator for Inputs { + type Item = T; + type IntoIter = std::vec::IntoIter; + + fn into_iter(self) -> Self::IntoIter { + self.0.into_iter() + } +} + +impl<'a, T> IntoIterator for &'a Inputs { + type Item = &'a T; + type IntoIter = std::slice::Iter<'a, T>; + + fn into_iter(self) -> Self::IntoIter { + self.0.iter() + } +} + +impl FromIterator for Inputs { + fn from_iter>(iter: I) -> Self { + Self(Vec::from_iter(iter)) + } +} + +impl From> for Inputs { + fn from(inputs: Vec) -> Self { + Self(inputs) + } +} diff --git a/lib/vector-common/src/internal_event/bytes_received.rs b/lib/vector-common/src/internal_event/bytes_received.rs new file mode 100644 index 0000000000000..8ed0ab91441c4 --- /dev/null +++ b/lib/vector-common/src/internal_event/bytes_received.rs @@ -0,0 +1,25 @@ +use metrics::{counter, Counter}; + +use super::{ByteSize, Protocol, SharedString}; + +crate::registered_event!( + BytesReceived { + protocol: SharedString, + } => { + received_bytes: Counter = counter!("component_received_bytes_total", "protocol" => self.protocol.clone()), + protocol: SharedString = self.protocol, + } + + fn emit(&self, data: ByteSize) { + self.received_bytes.increment(data.0 as u64); + trace!(message = "Bytes received.", byte_size = %data.0, protocol = %self.protocol); + } +); + +impl From for BytesReceived { + fn from(protocol: Protocol) -> Self { + Self { + protocol: protocol.0, + } + } +} diff --git a/lib/vector-common/src/internal_event/bytes_sent.rs b/lib/vector-common/src/internal_event/bytes_sent.rs new file mode 100644 index 0000000000000..cb8a25b2ca032 --- /dev/null +++ b/lib/vector-common/src/internal_event/bytes_sent.rs @@ -0,0 +1,26 @@ +use metrics::{counter, Counter}; +use tracing::trace; + +use super::{ByteSize, Protocol, SharedString}; + +crate::registered_event!( + BytesSent { + protocol: SharedString, + } => { + bytes_sent: Counter = counter!("component_sent_bytes_total", "protocol" => self.protocol.clone()), + protocol: SharedString = self.protocol, + } + + fn emit(&self, byte_size: ByteSize) { + trace!(message = "Bytes sent.", byte_size = %byte_size.0, protocol = %self.protocol); + self.bytes_sent.increment(byte_size.0 as u64); + } +); + +impl From for BytesSent { + fn from(protocol: Protocol) -> Self { + Self { + protocol: protocol.0, + } + } +} diff --git a/lib/vector-common/src/internal_event/cached_event.rs b/lib/vector-common/src/internal_event/cached_event.rs new file mode 100644 index 0000000000000..b985757b0f895 --- /dev/null +++ b/lib/vector-common/src/internal_event/cached_event.rs @@ -0,0 +1,129 @@ +use std::{ + collections::HashMap, + hash::Hash, + sync::{Arc, RwLock}, +}; + +use derivative::Derivative; + +use super::{InternalEventHandle, RegisterInternalEvent}; + +/// Metrics (eg. `component_sent_event_bytes_total`) may need to emit tags based on +/// values contained within the events. These tags can't be determined in advance. +/// +/// Metrics need to be registered and the handle needs to be held onto in order to +/// prevent them from expiring and being dropped (this would result in the counter +/// resetting to zero). +/// `CachedEvent` is used to maintain a store of these registered metrics. When a +/// new event is emitted for a previously unseen set of tags an event is registered +/// and stored in the cache. +#[derive(Derivative)] +#[derivative(Clone(bound = "T: Clone"))] +pub struct RegisteredEventCache { + fixed_tags: T, + cache: Arc< + RwLock< + HashMap< + ::Tags, + ::Handle, + >, + >, + >, +} + +/// This trait must be implemented by events that emit dynamic tags. `register` must +/// be implemented to register an event based on the set of tags passed. +pub trait RegisterTaggedInternalEvent: RegisterInternalEvent { + /// The type that will contain the data necessary to extract the tags + /// that will be used when registering the event. + type Tags; + + /// The type that contains data necessary to extract the tags that will + /// be fixed and only need setting up front when the cache is first created. + type Fixed; + + fn register(fixed: Self::Fixed, tags: Self::Tags) -> ::Handle; +} + +impl RegisteredEventCache +where + Data: Sized, + EventHandle: InternalEventHandle, + Tags: Clone + Eq + Hash, + FixedTags: Clone, + Event: RegisterInternalEvent + + RegisterTaggedInternalEvent, +{ + /// Create a new event cache with a set of fixed tags. These tags are passed to + /// all registered events. + pub fn new(fixed_tags: FixedTags) -> Self { + Self { + fixed_tags, + cache: Arc::default(), + } + } + + /// Emits the event with the given tags. + /// It will register the event and store in the cache if this has not already + /// been done. + /// + /// # Panics + /// + /// This will panic if the lock is poisoned. + pub fn emit(&self, tags: &Tags, value: Data) { + let read = self.cache.read().unwrap(); + if let Some(event) = read.get(tags) { + event.emit(value); + } else { + let event = ::register( + self.fixed_tags.clone(), + tags.clone(), + ); + event.emit(value); + + // Ensure the read lock is dropped so we can write. + drop(read); + self.cache.write().unwrap().insert(tags.clone(), event); + } + } +} + +#[cfg(test)] +mod tests { + #![allow(unreachable_pub)] + use metrics::{counter, Counter}; + + use super::*; + + crate::registered_event!( + TestEvent { + fixed: String, + dynamic: String, + } => { + event: Counter = { + counter!("test_event_total", "fixed" => self.fixed, "dynamic" => self.dynamic) + }, + } + + fn emit(&self, count: u64) { + self.event.increment(count); + } + + fn register(fixed: String, dynamic: String) { + crate::internal_event::register(TestEvent { + fixed, + dynamic, + }) + } + ); + + #[test] + fn test_fixed_tag() { + let event: RegisteredEventCache = + RegisteredEventCache::new("fixed".to_string()); + + for tag in 1..=5 { + event.emit(&format!("dynamic{tag}"), tag); + } + } +} diff --git a/lib/vector-common/src/internal_event/component_events_dropped.rs b/lib/vector-common/src/internal_event/component_events_dropped.rs new file mode 100644 index 0000000000000..c7d2bd9eedd32 --- /dev/null +++ b/lib/vector-common/src/internal_event/component_events_dropped.rs @@ -0,0 +1,74 @@ +use super::{Count, InternalEvent, InternalEventHandle, RegisterInternalEvent}; +use metrics::{counter, Counter}; + +pub const INTENTIONAL: bool = true; +pub const UNINTENTIONAL: bool = false; + +#[derive(Debug)] +pub struct ComponentEventsDropped<'a, const INTENTIONAL: bool> { + pub count: usize, + pub reason: &'a str, +} + +impl InternalEvent for ComponentEventsDropped<'_, INTENTIONAL> { + fn emit(self) { + let count = self.count; + self.register().emit(Count(count)); + } + + fn name(&self) -> Option<&'static str> { + Some("ComponentEventsDropped") + } +} + +impl<'a, const INTENTIONAL: bool> From<&'a str> for ComponentEventsDropped<'a, INTENTIONAL> { + fn from(reason: &'a str) -> Self { + Self { count: 0, reason } + } +} + +impl<'a, const INTENTIONAL: bool> RegisterInternalEvent + for ComponentEventsDropped<'a, INTENTIONAL> +{ + type Handle = DroppedHandle<'a, INTENTIONAL>; + fn register(self) -> Self::Handle { + Self::Handle { + discarded_events: counter!( + "component_discarded_events_total", + "intentional" => if INTENTIONAL { "true" } else { "false" }, + ), + reason: self.reason, + } + } +} + +#[derive(Clone)] +pub struct DroppedHandle<'a, const INTENDED: bool> { + discarded_events: Counter, + reason: &'a str, +} + +impl InternalEventHandle for DroppedHandle<'_, INTENDED> { + type Data = Count; + fn emit(&self, data: Self::Data) { + let message = "Events dropped"; + if INTENDED { + debug!( + message, + intentional = INTENDED, + count = data.0, + reason = self.reason, + internal_log_rate_limit = true, + ); + } else { + error!( + message, + intentional = INTENDED, + count = data.0, + reason = self.reason, + internal_log_rate_limit = true, + ); + } + self.discarded_events.increment(data.0 as u64); + } +} diff --git a/lib/vector-common/src/internal_event/events_received.rs b/lib/vector-common/src/internal_event/events_received.rs new file mode 100644 index 0000000000000..2e0c94c6d2d6a --- /dev/null +++ b/lib/vector-common/src/internal_event/events_received.rs @@ -0,0 +1,23 @@ +use metrics::{counter, histogram, Counter, Histogram}; +use tracing::trace; + +use super::CountByteSize; + +crate::registered_event!( + EventsReceived => { + events_count: Histogram = histogram!("component_received_events_count"), + events: Counter = counter!("component_received_events_total"), + event_bytes: Counter = counter!("component_received_event_bytes_total"), + } + + fn emit(&self, data: CountByteSize) { + let CountByteSize(count, byte_size) = data; + + trace!(message = "Events received.", count = %count, byte_size = %byte_size); + + #[allow(clippy::cast_precision_loss)] + self.events_count.record(count as f64); + self.events.increment(count as u64); + self.event_bytes.increment(byte_size.get() as u64); + } +); diff --git a/lib/vector-common/src/internal_event/events_sent.rs b/lib/vector-common/src/internal_event/events_sent.rs new file mode 100644 index 0000000000000..c6ae6e45fed62 --- /dev/null +++ b/lib/vector-common/src/internal_event/events_sent.rs @@ -0,0 +1,115 @@ +use std::sync::Arc; + +use metrics::{counter, Counter}; +use tracing::trace; + +use crate::config::ComponentKey; + +use super::{CountByteSize, OptionalTag, Output, SharedString}; + +pub const DEFAULT_OUTPUT: &str = "_default"; + +crate::registered_event!( + EventsSent { + output: Option, + } => { + events: Counter = if let Some(output) = &self.output { + counter!("component_sent_events_total", "output" => output.clone()) + } else { + counter!("component_sent_events_total") + }, + event_bytes: Counter = if let Some(output) = &self.output { + counter!("component_sent_event_bytes_total", "output" => output.clone()) + } else { + counter!("component_sent_event_bytes_total") + }, + output: Option = self.output, + } + + fn emit(&self, data: CountByteSize) { + let CountByteSize(count, byte_size) = data; + + match &self.output { + Some(output) => { + trace!(message = "Events sent.", count = %count, byte_size = %byte_size.get(), output = %output); + } + None => { + trace!(message = "Events sent.", count = %count, byte_size = %byte_size.get()); + } + } + + self.events.increment(count as u64); + self.event_bytes.increment(byte_size.get() as u64); + } +); + +impl From for EventsSent { + fn from(output: Output) -> Self { + Self { output: output.0 } + } +} + +/// Makes a list of the tags to use with the events sent event. +fn make_tags( + source: &OptionalTag>, + service: &OptionalTag, +) -> Vec<(&'static str, String)> { + let mut tags = Vec::new(); + if let OptionalTag::Specified(tag) = source { + tags.push(( + "source", + tag.as_ref() + .map_or_else(|| "-".to_string(), |tag| tag.id().to_string()), + )); + } + + if let OptionalTag::Specified(tag) = service { + tags.push(("service", tag.clone().unwrap_or("-".to_string()))); + } + + tags +} + +crate::registered_event!( + TaggedEventsSent { + source: OptionalTag>, + service: OptionalTag, + } => { + events: Counter = { + counter!("component_sent_events_total", &make_tags(&self.source, &self.service)) + }, + event_bytes: Counter = { + counter!("component_sent_event_bytes_total", &make_tags(&self.source, &self.service)) + }, + } + + fn emit(&self, data: CountByteSize) { + let CountByteSize(count, byte_size) = data; + trace!(message = "Events sent.", %count, %byte_size); + + self.events.increment(count as u64); + self.event_bytes.increment(byte_size.get() as u64); + } + + fn register(_fixed: (), tags: TaggedEventsSent) { + super::register(tags) + } +); + +impl TaggedEventsSent { + #[must_use] + pub fn new_empty() -> Self { + Self { + source: OptionalTag::Specified(None), + service: OptionalTag::Specified(None), + } + } + + #[must_use] + pub fn new_unspecified() -> Self { + Self { + source: OptionalTag::Ignored, + service: OptionalTag::Ignored, + } + } +} diff --git a/lib/vector-common/src/internal_event/mod.rs b/lib/vector-common/src/internal_event/mod.rs new file mode 100644 index 0000000000000..ac1115fb41c83 --- /dev/null +++ b/lib/vector-common/src/internal_event/mod.rs @@ -0,0 +1,268 @@ +mod bytes_received; +mod bytes_sent; +pub mod cached_event; +pub mod component_events_dropped; +mod events_received; +mod events_sent; +mod optional_tag; +mod prelude; +pub mod service; + +use std::ops::{Add, AddAssign}; + +pub use metrics::SharedString; + +pub use bytes_received::BytesReceived; +pub use bytes_sent::BytesSent; +#[allow(clippy::module_name_repetitions)] +pub use cached_event::{RegisterTaggedInternalEvent, RegisteredEventCache}; +pub use component_events_dropped::{ComponentEventsDropped, INTENTIONAL, UNINTENTIONAL}; +pub use events_received::EventsReceived; +pub use events_sent::{EventsSent, TaggedEventsSent, DEFAULT_OUTPUT}; +pub use optional_tag::OptionalTag; +pub use prelude::{error_stage, error_type}; +pub use service::{CallError, PollReadyError}; + +use crate::json_size::JsonSize; + +pub trait InternalEvent: Sized { + fn emit(self); + + // Optional for backwards compat until all events implement this + fn name(&self) -> Option<&'static str> { + None + } +} + +#[allow(clippy::module_name_repetitions)] +pub trait RegisterInternalEvent: Sized { + type Handle: InternalEventHandle; + + fn register(self) -> Self::Handle; + + fn name(&self) -> Option<&'static str> { + None + } +} + +#[allow(clippy::module_name_repetitions)] +pub trait InternalEventHandle: Sized { + type Data: Sized; + fn emit(&self, data: Self::Data); +} + +// Sets the name of an event if it doesn't have one +pub struct DefaultName { + pub name: &'static str, + pub event: E, +} + +impl InternalEvent for DefaultName { + fn emit(self) { + self.event.emit(); + } + + fn name(&self) -> Option<&'static str> { + Some(self.event.name().unwrap_or(self.name)) + } +} + +impl RegisterInternalEvent for DefaultName { + type Handle = E::Handle; + + fn register(self) -> Self::Handle { + self.event.register() + } + + fn name(&self) -> Option<&'static str> { + Some(self.event.name().unwrap_or(self.name)) + } +} + +#[cfg(any(test, feature = "test"))] +pub fn emit(event: impl InternalEvent) { + if let Some(name) = event.name() { + super::event_test_util::record_internal_event(name); + } + event.emit(); +} + +#[cfg(not(any(test, feature = "test")))] +pub fn emit(event: impl InternalEvent) { + event.emit(); +} + +#[cfg(any(test, feature = "test"))] +pub fn register(event: E) -> E::Handle { + if let Some(name) = event.name() { + super::event_test_util::record_internal_event(name); + } + event.register() +} + +#[cfg(not(any(test, feature = "test")))] +pub fn register(event: E) -> E::Handle { + event.register() +} + +pub type Registered = ::Handle; + +// Wrapper types used to hold data emitted by registered events + +#[derive(Clone, Copy)] +pub struct ByteSize(pub usize); + +#[derive(Clone, Copy)] +pub struct Count(pub usize); + +/// Holds the tuple `(count_of_events, estimated_json_size_of_events)`. +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub struct CountByteSize(pub usize, pub JsonSize); + +impl AddAssign for CountByteSize { + fn add_assign(&mut self, rhs: Self) { + self.0 += rhs.0; + self.1 += rhs.1; + } +} + +impl Add for CountByteSize { + type Output = CountByteSize; + + fn add(self, rhs: CountByteSize) -> Self::Output { + CountByteSize(self.0 + rhs.0, self.1 + rhs.1) + } +} + +// Wrapper types used to hold parameters for registering events + +pub struct Output(pub Option); + +pub struct Protocol(pub SharedString); + +impl Protocol { + pub const HTTP: Protocol = Protocol(SharedString::const_str("http")); + pub const HTTPS: Protocol = Protocol(SharedString::const_str("https")); + pub const NONE: Protocol = Protocol(SharedString::const_str("none")); + pub const TCP: Protocol = Protocol(SharedString::const_str("tcp")); + pub const UDP: Protocol = Protocol(SharedString::const_str("udp")); + pub const UNIX: Protocol = Protocol(SharedString::const_str("unix")); + pub const INTERNAL: Protocol = Protocol(SharedString::const_str("internal")); + pub const STATIC: Protocol = Protocol(SharedString::const_str("static")); +} + +impl From<&'static str> for Protocol { + fn from(s: &'static str) -> Self { + Self(SharedString::const_str(s)) + } +} + +impl From for SharedString { + fn from(value: Protocol) -> Self { + value.0 + } +} + +/// Macro to take care of some of the repetitive boilerplate in implementing a registered event. See +/// the other events in this module for examples of how to use this. +/// +/// ## Usage +/// +/// ```ignore +/// registered_event!( +/// Event { +/// event_field: &'static str, +/// } => { +/// handle_field: Counter = counter!("name", "tag" => self.event_field), +/// } +/// fn emit(&self, data: DataType) { +/// self.handle_field.increment(data.0); +/// } +/// ); +/// +/// let handle = register!(Event { event_field: "message" }); +/// +/// handle.emit(DataType(123)); +/// ``` +/// +/// In this example, the first set of fields describes the data required to register the event. This +/// is what would be used by the `register!` macro. For example, `register!(Event { event_field: +/// "something" })`. The second set of fields describes the data required to store the registered +/// handle, namely the `Counter`s and `Gauge`s that record the handle from `metrics` as well as any +/// associated data for emitting traces or debug messages, followed by an initialization assignment +/// value. The `emit` function is the code required to update the metrics and generate any log +/// messages. +#[macro_export] +macro_rules! registered_event { + // A registered event struct with no fields (zero-sized type). + ($event:ident => $($tail:tt)*) => { + #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] + pub struct $event; + + $crate::registered_event!(=> $event $($tail)*); + }; + + // A normal registered event struct. + ($event:ident { $( $field:ident: $type:ty, )* } => $($tail:tt)*) => { + #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] + pub struct $event { + $( pub $field: $type, )* + } + + $crate::registered_event!(=> $event $($tail)*); + }; + + // Sub-matcher to implement the common bits in the above two cases. + ( + => $event:ident { + $( $field:ident: $type:ty = $value:expr, )* + } + + fn emit(&$slf:ident, $data_name:ident: $data:ident) + $emit_body:block + + $(fn register($fixed_name:ident: $fixed_tags:ty, $tags_name:ident: $tags:ty) + $register_body:block)? + ) => { + paste::paste!{ + #[derive(Clone)] + pub struct [<$event Handle>] { + $( $field: $type, )* + } + + impl $crate::internal_event::RegisterInternalEvent for $event { + type Handle = [<$event Handle>]; + + fn name(&self) -> Option<&'static str> { + Some(stringify!($event)) + } + + fn register($slf) -> Self::Handle { + Self::Handle { + $( $field: $value, )* + } + } + } + + impl $crate::internal_event::InternalEventHandle for [<$event Handle>] { + type Data = $data; + + fn emit(&$slf, $data_name: $data) + $emit_body + } + + $(impl $crate::internal_event::cached_event::RegisterTaggedInternalEvent for $event { + type Tags = $tags; + type Fixed = $fixed_tags; + + fn register( + $fixed_name: $fixed_tags, + $tags_name: $tags, + ) -> ::Handle { + $register_body + } + })? + + } + }; +} diff --git a/lib/vector-common/src/internal_event/optional_tag.rs b/lib/vector-common/src/internal_event/optional_tag.rs new file mode 100644 index 0000000000000..400bc554630d1 --- /dev/null +++ b/lib/vector-common/src/internal_event/optional_tag.rs @@ -0,0 +1,14 @@ +/// The user can configure whether a tag should be emitted. If they configure it to +/// be emitted, but the value doesn't exist - we should emit the tag but with a value +/// of `-`. +#[derive(Clone, Debug, PartialEq, PartialOrd, Eq, Ord, Hash)] +pub enum OptionalTag { + Ignored, + Specified(Option), +} + +impl From> for OptionalTag { + fn from(value: Option) -> Self { + Self::Specified(value) + } +} diff --git a/lib/vector-common/src/internal_event/prelude.rs b/lib/vector-common/src/internal_event/prelude.rs new file mode 100644 index 0000000000000..e15a6b52b4503 --- /dev/null +++ b/lib/vector-common/src/internal_event/prelude.rs @@ -0,0 +1,45 @@ +// Set of `stage` tags to use when emitting error events. +pub mod error_stage { + pub const RECEIVING: &str = "receiving"; + pub const PROCESSING: &str = "processing"; + pub const SENDING: &str = "sending"; +} + +// Set of `error_type` tags to use when emitting error events. +pub mod error_type { + // When the event acknowledgment failed. + pub const ACKNOWLEDGMENT_FAILED: &str = "acknowledgment_failed"; + // When the external command called by the component failed. + pub const COMMAND_FAILED: &str = "command_failed"; + // When a condition for the event to be valid failed. + // This is used for example when a field is missing or should be a string. + pub const CONDITION_FAILED: &str = "condition_failed"; + // When the component or the service on which it depends is not configured properly. + pub const CONFIGURATION_FAILED: &str = "configuration_failed"; + // When the component failed to connect to an external service. + pub const CONNECTION_FAILED: &str = "connection_failed"; + // When the component failed to convert a value. + // For example, when converting from string to float. + pub const CONVERSION_FAILED: &str = "conversion_failed"; + // When the component failed to convert an event to a structure required + // by the external service the event should be sent to. + pub const ENCODER_FAILED: &str = "encoder_failed"; + // When the received event has an unexpected metric. + pub const INVALID_METRIC: &str = "invalid_metric"; + // When the component was unable to perform an IO. + pub const IO_FAILED: &str = "io_failed"; + // When the component is unable to parse a message to build an event. + pub const PARSER_FAILED: &str = "parser_failed"; + // When the component was unable to read from the source. + pub const READER_FAILED: &str = "reader_failed"; + // When the component was unable to perform a request or the request failed. + pub const REQUEST_FAILED: &str = "request_failed"; + // When the component depends on a script that failed + pub const SCRIPT_FAILED: &str = "script_failed"; + // When the component was unable to build a template or interpolate it. + pub const TEMPLATE_FAILED: &str = "template_failed"; + // When an execution took longer than expected and failed. + pub const TIMED_OUT: &str = "timed_out"; + // When the component was unable to write some data. + pub const WRITER_FAILED: &str = "writer_failed"; +} diff --git a/lib/vector-common/src/internal_event/service.rs b/lib/vector-common/src/internal_event/service.rs new file mode 100644 index 0000000000000..20132cc99fc61 --- /dev/null +++ b/lib/vector-common/src/internal_event/service.rs @@ -0,0 +1,66 @@ +use metrics::counter; + +use super::{emit, error_stage, error_type, ComponentEventsDropped, InternalEvent, UNINTENTIONAL}; + +#[derive(Debug)] +pub struct PollReadyError { + pub error: E, +} + +impl InternalEvent for PollReadyError { + fn emit(self) { + error!( + message = "Service poll ready failed.", + error = ?self.error, + error_type = error_type::REQUEST_FAILED, + stage = error_stage::SENDING, + internal_log_rate_limit = true, + ); + counter!( + "component_errors_total", + "error_type" => error_type::REQUEST_FAILED, + "stage" => error_stage::SENDING, + ) + .increment(1); + } + + fn name(&self) -> Option<&'static str> { + Some("ServicePollReadyError") + } +} + +#[derive(Debug)] +pub struct CallError { + pub error: E, + pub request_id: usize, + pub count: usize, +} + +impl InternalEvent for CallError { + fn emit(self) { + let reason = "Service call failed. No retries or retries exhausted."; + error!( + message = reason, + error = ?self.error, + request_id = self.request_id, + error_type = error_type::REQUEST_FAILED, + stage = error_stage::SENDING, + internal_log_rate_limit = true, + ); + counter!( + "component_errors_total", + "error_type" => error_type::REQUEST_FAILED, + "stage" => error_stage::SENDING, + ) + .increment(1); + + emit(ComponentEventsDropped:: { + reason, + count: self.count, + }); + } + + fn name(&self) -> Option<&'static str> { + Some("ServiceCallError") + } +} diff --git a/lib/vector-common/src/json_size.rs b/lib/vector-common/src/json_size.rs new file mode 100644 index 0000000000000..746b6335716d1 --- /dev/null +++ b/lib/vector-common/src/json_size.rs @@ -0,0 +1,105 @@ +use std::{ + fmt, + iter::Sum, + ops::{Add, AddAssign, Sub}, +}; + +/// A newtype for the JSON size of an event. +/// Used to emit the `component_received_event_bytes_total` and +/// `component_sent_event_bytes_total` metrics. +#[derive(Clone, Copy, Default, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub struct JsonSize(usize); + +impl fmt::Display for JsonSize { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.0) + } +} + +impl Sub for JsonSize { + type Output = JsonSize; + + #[inline] + fn sub(mut self, rhs: Self) -> Self::Output { + self.0 -= rhs.0; + self + } +} + +impl Add for JsonSize { + type Output = JsonSize; + + #[inline] + fn add(mut self, rhs: Self) -> Self::Output { + self.0 += rhs.0; + self + } +} + +impl AddAssign for JsonSize { + #[inline] + fn add_assign(&mut self, rhs: Self) { + self.0 += rhs.0; + } +} + +impl Sum for JsonSize { + #[inline] + fn sum>(iter: I) -> Self { + let mut accum = 0; + for val in iter { + accum += val.get(); + } + + JsonSize::new(accum) + } +} + +impl From for JsonSize { + #[inline] + fn from(value: usize) -> Self { + Self(value) + } +} + +impl JsonSize { + /// Create a new instance with the specified size. + #[must_use] + #[inline] + pub const fn new(size: usize) -> Self { + Self(size) + } + + /// Create a new instance with size 0. + #[must_use] + #[inline] + pub const fn zero() -> Self { + Self(0) + } + + /// Returns the contained size. + #[must_use] + #[inline] + pub fn get(&self) -> usize { + self.0 + } +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] +#[allow(clippy::module_name_repetitions)] +pub struct NonZeroJsonSize(JsonSize); + +impl NonZeroJsonSize { + #[must_use] + #[inline] + pub fn new(size: JsonSize) -> Option { + (size.0 > 0).then_some(NonZeroJsonSize(size)) + } +} + +impl From for JsonSize { + #[inline] + fn from(value: NonZeroJsonSize) -> Self { + value.0 + } +} diff --git a/lib/vector-common/src/lib.rs b/lib/vector-common/src/lib.rs new file mode 100644 index 0000000000000..3e6d179f13b95 --- /dev/null +++ b/lib/vector-common/src/lib.rs @@ -0,0 +1,71 @@ +//! The Vector Core common library +//! +//! This library includes common functionality relied upon by vector-core +//! and core-related crates (e.g. buffers). + +#![deny(warnings)] +#![deny(clippy::all)] +#![deny(clippy::pedantic)] +#![deny(unreachable_pub)] +#![deny(unused_allocation)] +#![deny(unused_extern_crates)] +#![deny(unused_assignments)] +#![deny(unused_comparisons)] + +#[cfg(feature = "btreemap")] +pub use vrl::btreemap; + +#[cfg(feature = "byte_size_of")] +pub mod byte_size_of; + +pub mod json_size; + +pub mod config; + +pub mod constants; + +#[cfg(feature = "conversion")] +pub use vrl::compiler::TimeZone; + +#[cfg(feature = "encoding")] +pub mod encode_logfmt { + pub use vrl::core::encode_logfmt::*; +} + +pub mod conversion { + pub use vrl::compiler::conversion::*; +} + +pub mod event_data_eq; +pub use event_data_eq::EventDataEq; + +#[cfg(any(test, feature = "test"))] +pub mod event_test_util; + +pub mod finalization; +pub mod finalizer; +pub use finalizer::EmptyStream; + +pub mod id; + +pub mod internal_event; + +pub mod request_metadata; + +pub mod shutdown; + +#[cfg(feature = "sensitive_string")] +pub mod sensitive_string; + +pub mod trigger; + +#[macro_use] +extern crate tracing; + +/// Vector's basic error type, dynamically dispatched and safe to send across +/// threads. +pub type Error = Box; + +/// Vector's basic result type, defined in terms of [`Error`] and generic over +/// `T`. +pub type Result = std::result::Result; diff --git a/lib/vector-common/src/request_metadata.rs b/lib/vector-common/src/request_metadata.rs new file mode 100644 index 0000000000000..12a164d23e437 --- /dev/null +++ b/lib/vector-common/src/request_metadata.rs @@ -0,0 +1,451 @@ +use std::{ + collections::HashMap, + ops::{Add, AddAssign}, +}; + +use crate::{ + internal_event::{ + CountByteSize, InternalEventHandle, RegisterTaggedInternalEvent, RegisteredEventCache, + TaggedEventsSent, + }, + json_size::JsonSize, +}; + +/// Must be implemented by events to get the tags that will be attached to +/// the `component_sent_event_*` emitted metrics. +pub trait GetEventCountTags { + fn get_tags(&self) -> TaggedEventsSent; +} + +/// Keeps track of the estimated json size of a given batch of events by +/// source and service. +#[derive(Clone, Debug)] +pub enum GroupedCountByteSize { + /// When we need to keep track of the events by certain tags we use this + /// variant. + Tagged { + sizes: HashMap, + }, + /// If we don't need to track the events by certain tags we can use + /// this variant to avoid allocating a `HashMap`, + Untagged { size: CountByteSize }, +} + +impl Default for GroupedCountByteSize { + fn default() -> Self { + Self::Untagged { + size: CountByteSize(0, JsonSize::zero()), + } + } +} + +impl GroupedCountByteSize { + /// Creates a new Tagged variant for when we need to track events by + /// certain tags. + #[must_use] + pub fn new_tagged() -> Self { + Self::Tagged { + sizes: HashMap::new(), + } + } + + /// Creates a new Tagged variant for when we do not need to track events by + /// tags. + #[must_use] + pub fn new_untagged() -> Self { + Self::Untagged { + size: CountByteSize(0, JsonSize::zero()), + } + } + + /// Returns a `HashMap` of tags => event counts for when we are tracking by tags. + /// Returns `None` if we are not tracking by tags. + #[must_use] + #[cfg(any(test, feature = "test"))] + pub fn sizes(&self) -> Option<&HashMap> { + match self { + Self::Tagged { sizes } => Some(sizes), + Self::Untagged { .. } => None, + } + } + + /// Returns a single count for when we are not tracking by tags. + #[must_use] + #[cfg(any(test, feature = "test"))] + pub fn size(&self) -> Option { + match self { + Self::Tagged { .. } => None, + Self::Untagged { size } => Some(*size), + } + } + + /// Adds the given estimated json size of the event to current count. + pub fn add_event(&mut self, event: &E, json_size: JsonSize) + where + E: GetEventCountTags, + { + match self { + Self::Tagged { sizes } => { + let size = CountByteSize(1, json_size); + let tags = event.get_tags(); + + match sizes.get_mut(&tags) { + Some(current) => { + *current += size; + } + None => { + sizes.insert(tags, size); + } + } + } + Self::Untagged { size } => { + *size += CountByteSize(1, json_size); + } + } + } + + /// Emits our counts to a `RegisteredEvent` cached event. + pub fn emit_event(&self, event_cache: &RegisteredEventCache<(), T>) + where + T: RegisterTaggedInternalEvent, + H: InternalEventHandle, + { + match self { + GroupedCountByteSize::Tagged { sizes } => { + for (tags, size) in sizes { + event_cache.emit(tags, *size); + } + } + GroupedCountByteSize::Untagged { size } => { + event_cache.emit(&TaggedEventsSent::new_unspecified(), *size); + } + } + } + + /// Returns `true` if we are the `Tagged` variant - keeping track of the byte sizes + /// grouped by their relevant tags. + #[must_use] + pub fn is_tagged(&self) -> bool { + match self { + GroupedCountByteSize::Tagged { .. } => true, + GroupedCountByteSize::Untagged { .. } => false, + } + } + + /// Returns `true` if we are the `Untagged` variant - keeping a single count for all events. + #[must_use] + pub fn is_untagged(&self) -> bool { + !self.is_tagged() + } +} + +impl From for GroupedCountByteSize { + fn from(value: CountByteSize) -> Self { + Self::Untagged { size: value } + } +} + +impl AddAssign for GroupedCountByteSize { + fn add_assign(&mut self, mut rhs: Self) { + if self.is_untagged() && rhs.is_tagged() { + // First handle the case where we are untagged and assigning to a tagged value. + // We need to change `self` and so need to ensure our match doesn't take ownership of the object. + *self = match (&self, &mut rhs) { + (Self::Untagged { size }, Self::Tagged { sizes }) => { + let mut sizes = std::mem::take(sizes); + match sizes.get_mut(&TaggedEventsSent::new_empty()) { + Some(empty_size) => *empty_size += *size, + None => { + sizes.insert(TaggedEventsSent::new_empty(), *size); + } + } + + Self::Tagged { sizes } + } + _ => { + unreachable!() + } + }; + + return; + } + + // For these cases, we know we won't have to change `self` so the match can take ownership. + match (self, rhs) { + (Self::Tagged { sizes: ref mut lhs }, Self::Tagged { sizes: rhs }) => { + for (key, value) in rhs { + match lhs.get_mut(&key) { + Some(size) => *size += value, + None => { + lhs.insert(key.clone(), value); + } + } + } + } + + (Self::Untagged { size: lhs }, Self::Untagged { size: rhs }) => { + *lhs = *lhs + rhs; + } + + (Self::Tagged { ref mut sizes }, Self::Untagged { size }) => { + match sizes.get_mut(&TaggedEventsSent::new_empty()) { + Some(empty_size) => *empty_size += size, + None => { + sizes.insert(TaggedEventsSent::new_empty(), size); + } + } + } + (Self::Untagged { .. }, Self::Tagged { .. }) => unreachable!(), + }; + } +} + +impl<'a> Add<&'a GroupedCountByteSize> for GroupedCountByteSize { + type Output = GroupedCountByteSize; + + fn add(self, other: &'a Self::Output) -> Self::Output { + match (self, other) { + (Self::Tagged { sizes: mut lhs }, Self::Tagged { sizes: rhs }) => { + for (key, value) in rhs { + match lhs.get_mut(key) { + Some(size) => *size += *value, + None => { + lhs.insert(key.clone(), *value); + } + } + } + + Self::Tagged { sizes: lhs } + } + + (Self::Untagged { size: lhs }, Self::Untagged { size: rhs }) => { + Self::Untagged { size: lhs + *rhs } + } + + // The following two scenarios shouldn't really occur in practice, but are provided for completeness. + (Self::Tagged { mut sizes }, Self::Untagged { size }) => { + match sizes.get_mut(&TaggedEventsSent::new_empty()) { + Some(empty_size) => *empty_size += *size, + None => { + sizes.insert(TaggedEventsSent::new_empty(), *size); + } + } + + Self::Tagged { sizes } + } + (Self::Untagged { size }, Self::Tagged { sizes }) => { + let mut sizes = sizes.clone(); + match sizes.get_mut(&TaggedEventsSent::new_empty()) { + Some(empty_size) => *empty_size += size, + None => { + sizes.insert(TaggedEventsSent::new_empty(), size); + } + } + + Self::Tagged { sizes } + } + } + } +} + +/// Metadata for batch requests. +#[derive(Clone, Debug, Default)] +pub struct RequestMetadata { + /// Number of events represented by this batch request. + event_count: usize, + /// Size, in bytes, of the in-memory representation of all events in this batch request. + events_byte_size: usize, + /// Size, in bytes, of the estimated JSON-encoded representation of all events in this batch request. + events_estimated_json_encoded_byte_size: GroupedCountByteSize, + /// Uncompressed size, in bytes, of the encoded events in this batch request. + request_encoded_size: usize, + /// On-the-wire size, in bytes, of the batch request itself after compression, etc. + /// + /// This is akin to the bytes sent/received over the network, regardless of whether or not compression was used. + request_wire_size: usize, +} + +impl RequestMetadata { + #[must_use] + pub fn new( + event_count: usize, + events_byte_size: usize, + request_encoded_size: usize, + request_wire_size: usize, + events_estimated_json_encoded_byte_size: GroupedCountByteSize, + ) -> Self { + Self { + event_count, + events_byte_size, + events_estimated_json_encoded_byte_size, + request_encoded_size, + request_wire_size, + } + } + + #[must_use] + pub const fn event_count(&self) -> usize { + self.event_count + } + + #[must_use] + pub const fn events_byte_size(&self) -> usize { + self.events_byte_size + } + + #[must_use] + pub fn events_estimated_json_encoded_byte_size(&self) -> &GroupedCountByteSize { + &self.events_estimated_json_encoded_byte_size + } + + /// Consumes the object and returns the byte size of the request grouped by + /// the tags (source and service). + #[must_use] + pub fn into_events_estimated_json_encoded_byte_size(self) -> GroupedCountByteSize { + self.events_estimated_json_encoded_byte_size + } + + #[must_use] + pub const fn request_encoded_size(&self) -> usize { + self.request_encoded_size + } + + #[must_use] + pub const fn request_wire_size(&self) -> usize { + self.request_wire_size + } + + /// Constructs a `RequestMetadata` by summation of the "batch" of `RequestMetadata` provided. + #[must_use] + pub fn from_batch>(metadata_iter: T) -> Self { + let mut metadata_sum = RequestMetadata::new(0, 0, 0, 0, GroupedCountByteSize::default()); + + for metadata in metadata_iter { + metadata_sum = metadata_sum + &metadata; + } + metadata_sum + } +} + +impl<'a> Add<&'a RequestMetadata> for RequestMetadata { + type Output = RequestMetadata; + + /// Adds the other `RequestMetadata` to this one. + fn add(self, other: &'a Self::Output) -> Self::Output { + Self::Output { + event_count: self.event_count + other.event_count, + events_byte_size: self.events_byte_size + other.events_byte_size, + events_estimated_json_encoded_byte_size: self.events_estimated_json_encoded_byte_size + + &other.events_estimated_json_encoded_byte_size, + request_encoded_size: self.request_encoded_size + other.request_encoded_size, + request_wire_size: self.request_wire_size + other.request_wire_size, + } + } +} + +/// Objects implementing this trait have metadata that describes the request. +pub trait MetaDescriptive { + /// Returns the `RequestMetadata` associated with this object. + fn get_metadata(&self) -> &RequestMetadata; + + // Returns a mutable reference to the `RequestMetadata` associated with this object. + fn metadata_mut(&mut self) -> &mut RequestMetadata; +} + +#[cfg(test)] +mod tests { + use std::sync::Arc; + + use crate::{config::ComponentKey, internal_event::OptionalTag}; + + use super::*; + + struct DummyEvent { + source: OptionalTag>, + service: OptionalTag, + } + + impl GetEventCountTags for DummyEvent { + fn get_tags(&self) -> TaggedEventsSent { + TaggedEventsSent { + source: self.source.clone(), + service: self.service.clone(), + } + } + } + + #[test] + fn add_request_count_bytesize_event_untagged() { + let mut bytesize = GroupedCountByteSize::new_untagged(); + let event = DummyEvent { + source: Some(Arc::new(ComponentKey::from("carrot"))).into(), + service: Some("cabbage".to_string()).into(), + }; + + bytesize.add_event(&event, JsonSize::new(42)); + + let event = DummyEvent { + source: Some(Arc::new(ComponentKey::from("pea"))).into(), + service: Some("potato".to_string()).into(), + }; + + bytesize.add_event(&event, JsonSize::new(36)); + + assert_eq!(Some(CountByteSize(2, JsonSize::new(78))), bytesize.size()); + assert_eq!(None, bytesize.sizes()); + } + + #[test] + fn add_request_count_bytesize_event_tagged() { + let mut bytesize = GroupedCountByteSize::new_tagged(); + let event = DummyEvent { + source: OptionalTag::Ignored, + service: Some("cabbage".to_string()).into(), + }; + + bytesize.add_event(&event, JsonSize::new(42)); + + let event = DummyEvent { + source: OptionalTag::Ignored, + service: Some("cabbage".to_string()).into(), + }; + + bytesize.add_event(&event, JsonSize::new(36)); + + let event = DummyEvent { + source: OptionalTag::Ignored, + service: Some("tomato".to_string()).into(), + }; + + bytesize.add_event(&event, JsonSize::new(23)); + + assert_eq!(None, bytesize.size()); + let mut sizes = bytesize + .sizes() + .unwrap() + .clone() + .into_iter() + .collect::>(); + sizes.sort(); + + assert_eq!( + vec![ + ( + TaggedEventsSent { + source: OptionalTag::Ignored, + service: Some("cabbage".to_string()).into() + }, + CountByteSize(2, JsonSize::new(78)) + ), + ( + TaggedEventsSent { + source: OptionalTag::Ignored, + service: Some("tomato".to_string()).into() + }, + CountByteSize(1, JsonSize::new(23)) + ), + ], + sizes + ); + } +} diff --git a/lib/vector-common/src/sensitive_string.rs b/lib/vector-common/src/sensitive_string.rs new file mode 100644 index 0000000000000..0b290d1327919 --- /dev/null +++ b/lib/vector-common/src/sensitive_string.rs @@ -0,0 +1,65 @@ +use vector_config::{configurable_component, ConfigurableString}; + +/// Wrapper for sensitive strings containing credentials +#[configurable_component(no_deser, no_ser)] +#[derive(::serde::Deserialize, ::serde::Serialize)] +#[serde(from = "String", into = "String")] +#[configurable(metadata(sensitive))] +#[derive(Clone, Default, PartialEq, Eq)] +pub struct SensitiveString(String); + +impl From for SensitiveString { + fn from(value: String) -> Self { + Self(value) + } +} + +impl From for String { + fn from(value: SensitiveString) -> Self { + value.0 + } +} + +impl ConfigurableString for SensitiveString {} + +impl std::fmt::Display for SensitiveString { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "**REDACTED**") + } +} + +impl std::fmt::Debug for SensitiveString { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + // we keep the double quotes here to keep the String behavior + write!(f, "\"**REDACTED**\"") + } +} + +impl SensitiveString { + #[must_use] + pub fn inner(&self) -> &str { + self.0.as_str() + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn serialization() { + let json_value = "\"foo\""; + let value: SensitiveString = serde_json::from_str(json_value).unwrap(); + let result: String = serde_json::to_string(&value).unwrap(); + assert_eq!(result, json_value); + } + + #[test] + fn hide_content() { + let value = SensitiveString("hello world".to_string()); + let display = format!("{value}"); + assert_eq!(display, "**REDACTED**"); + let debug = format!("{value:?}"); + assert_eq!(debug, "\"**REDACTED**\""); + } +} diff --git a/lib/vector-common/src/shutdown.rs b/lib/vector-common/src/shutdown.rs new file mode 100644 index 0000000000000..d1b35be5c6fb7 --- /dev/null +++ b/lib/vector-common/src/shutdown.rs @@ -0,0 +1,379 @@ +#![allow(clippy::module_name_repetitions)] + +use std::{ + collections::HashMap, + future::Future, + pin::Pin, + sync::Arc, + task::{ready, Context, Poll}, +}; + +use futures::{future, FutureExt}; +use stream_cancel::{Trigger, Tripwire}; +use tokio::time::{timeout_at, Instant}; + +use crate::{config::ComponentKey, trigger::DisabledTrigger}; + +pub async fn tripwire_handler(closed: bool) { + std::future::poll_fn(|_| { + if closed { + Poll::Ready(()) + } else { + Poll::Pending + } + }) + .await; +} + +/// When this struct goes out of scope and its internal refcount goes to 0 it is a signal that its +/// corresponding `Source` has completed executing and may be cleaned up. It is the responsibility +/// of each `Source` to ensure that at least one copy of this handle remains alive for the entire +/// lifetime of the Source. +#[derive(Clone, Debug)] +pub struct ShutdownSignalToken { + _shutdown_complete: Arc, +} + +impl ShutdownSignalToken { + fn new(shutdown_complete: Trigger) -> Self { + Self { + _shutdown_complete: Arc::new(shutdown_complete), + } + } +} + +/// Passed to each `Source` to coordinate the global shutdown process. +#[pin_project::pin_project] +#[derive(Clone, Debug)] +pub struct ShutdownSignal { + /// This will be triggered when global shutdown has begun, and is a sign to the Source to begin + /// its shutdown process. + #[pin] + begin_shutdown: Option, + + /// When a Source allows this to go out of scope it informs the global shutdown coordinator that + /// this Source's local shutdown process is complete. + /// Optional only so that `poll()` can move the handle out and return it. + shutdown_complete: Option, +} + +impl Future for ShutdownSignal { + type Output = ShutdownSignalToken; + + fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + match self.as_mut().project().begin_shutdown.as_pin_mut() { + Some(fut) => { + let closed = ready!(fut.poll(cx)); + let mut pinned = self.project(); + pinned.begin_shutdown.set(None); + if closed { + Poll::Ready(pinned.shutdown_complete.take().unwrap()) + } else { + Poll::Pending + } + } + // TODO: This should almost certainly be a panic to avoid deadlocking in the case of a + // poll-after-ready situation. + None => Poll::Pending, + } + } +} + +impl ShutdownSignal { + #[must_use] + pub fn new(tripwire: Tripwire, trigger: Trigger) -> Self { + Self { + begin_shutdown: Some(tripwire), + shutdown_complete: Some(ShutdownSignalToken::new(trigger)), + } + } + + #[must_use] + pub fn noop() -> Self { + let (trigger, tripwire) = Tripwire::new(); + Self { + begin_shutdown: Some(tripwire), + shutdown_complete: Some(ShutdownSignalToken::new(trigger)), + } + } + + #[must_use] + pub fn new_wired() -> (Trigger, ShutdownSignal, Tripwire) { + let (trigger_shutdown, tripwire) = Tripwire::new(); + let (trigger, shutdown_done) = Tripwire::new(); + let shutdown = ShutdownSignal::new(tripwire, trigger); + + (trigger_shutdown, shutdown, shutdown_done) + } +} + +type IsInternal = bool; + +#[derive(Debug, Default)] +pub struct SourceShutdownCoordinator { + shutdown_begun_triggers: HashMap, + shutdown_force_triggers: HashMap, + shutdown_complete_tripwires: HashMap, +} + +impl SourceShutdownCoordinator { + /// Creates the necessary Triggers and Tripwires for coordinating shutdown of this Source and + /// stores them as needed. Returns the `ShutdownSignal` for this Source as well as a Tripwire + /// that will be notified if the Source should be forcibly shut down. + pub fn register_source( + &mut self, + id: &ComponentKey, + internal: bool, + ) -> (ShutdownSignal, impl Future) { + let (shutdown_begun_trigger, shutdown_begun_tripwire) = Tripwire::new(); + let (force_shutdown_trigger, force_shutdown_tripwire) = Tripwire::new(); + let (shutdown_complete_trigger, shutdown_complete_tripwire) = Tripwire::new(); + + self.shutdown_begun_triggers + .insert(id.clone(), (internal, shutdown_begun_trigger)); + self.shutdown_force_triggers + .insert(id.clone(), force_shutdown_trigger); + self.shutdown_complete_tripwires + .insert(id.clone(), shutdown_complete_tripwire); + + let shutdown_signal = + ShutdownSignal::new(shutdown_begun_tripwire, shutdown_complete_trigger); + + // `force_shutdown_tripwire` resolves even if canceled when we should *not* be shutting down. + // `tripwire_handler` handles cancel by never resolving. + let force_shutdown_tripwire = force_shutdown_tripwire.then(tripwire_handler); + (shutdown_signal, force_shutdown_tripwire) + } + + /// Takes ownership of all internal state for the given source from another `ShutdownCoordinator`. + /// + /// # Panics + /// + /// Panics if the other coordinator already had its triggers removed. + pub fn takeover_source(&mut self, id: &ComponentKey, other: &mut Self) { + let existing = self.shutdown_begun_triggers.insert( + id.clone(), + other.shutdown_begun_triggers.remove(id).unwrap_or_else(|| { + panic!( + "Other ShutdownCoordinator didn't have a shutdown_begun_trigger for \"{id}\"" + ) + }), + ); + assert!( + existing.is_none(), + "ShutdownCoordinator already has a shutdown_begin_trigger for source \"{id}\"" + ); + + let existing = self.shutdown_force_triggers.insert( + id.clone(), + other.shutdown_force_triggers.remove(id).unwrap_or_else(|| { + panic!( + "Other ShutdownCoordinator didn't have a shutdown_force_trigger for \"{id}\"" + ) + }), + ); + assert!( + existing.is_none(), + "ShutdownCoordinator already has a shutdown_force_trigger for source \"{id}\"" + ); + + let existing = self.shutdown_complete_tripwires.insert( + id.clone(), + other + .shutdown_complete_tripwires + .remove(id) + .unwrap_or_else(|| { + panic!( + "Other ShutdownCoordinator didn't have a shutdown_complete_tripwire for \"{id}\"" + ) + }), + ); + assert!( + existing.is_none(), + "ShutdownCoordinator already has a shutdown_complete_tripwire for source \"{id}\"" + ); + } + + /// Sends a signal to begin shutting down to all sources, and returns a future that + /// resolves once all sources have either shut down completely, or have been sent the + /// force shutdown signal. The force shutdown signal will be sent to any sources that + /// don't cleanly shut down before the given `deadline`. + /// + /// # Panics + /// + /// Panics if this coordinator has had its triggers removed (ie + /// has been taken over with `Self::takeover_source`). + pub fn shutdown_all(self, deadline: Option) -> impl Future { + let mut internal_sources_complete_futures = Vec::new(); + let mut external_sources_complete_futures = Vec::new(); + + let shutdown_begun_triggers = self.shutdown_begun_triggers; + let mut shutdown_complete_tripwires = self.shutdown_complete_tripwires; + let mut shutdown_force_triggers = self.shutdown_force_triggers; + + for (id, (internal, trigger)) in shutdown_begun_triggers { + trigger.cancel(); + + let shutdown_complete_tripwire = + shutdown_complete_tripwires.remove(&id).unwrap_or_else(|| { + panic!( + "shutdown_complete_tripwire for source \"{id}\" not found in the ShutdownCoordinator" + ) + }); + let shutdown_force_trigger = shutdown_force_triggers.remove(&id).unwrap_or_else(|| { + panic!( + "shutdown_force_trigger for source \"{id}\" not found in the ShutdownCoordinator" + ) + }); + + let source_complete = SourceShutdownCoordinator::shutdown_source_complete( + shutdown_complete_tripwire, + shutdown_force_trigger, + id.clone(), + deadline, + ); + + if internal { + internal_sources_complete_futures.push(source_complete); + } else { + external_sources_complete_futures.push(source_complete); + } + } + + futures::future::join_all(external_sources_complete_futures) + .then(|_| futures::future::join_all(internal_sources_complete_futures)) + .map(|_| ()) + } + + /// Sends the signal to the given source to begin shutting down. Returns a future that resolves + /// when the source has finished shutting down cleanly or been sent the force shutdown signal. + /// The returned future resolves to a bool that indicates if the source shut down cleanly before + /// the given `deadline`. If the result is false then that means the source failed to shut down + /// before `deadline` and had to be force-shutdown. + /// + /// # Panics + /// + /// Panics if this coordinator has had its triggers removed (ie + /// has been taken over with `Self::takeover_source`). + pub fn shutdown_source( + &mut self, + id: &ComponentKey, + deadline: Instant, + ) -> impl Future { + let (_, begin_shutdown_trigger) = + self.shutdown_begun_triggers.remove(id).unwrap_or_else(|| { + panic!( + "shutdown_begun_trigger for source \"{id}\" not found in the ShutdownCoordinator" + ) + }); + // This is what actually triggers the source to begin shutting down. + begin_shutdown_trigger.cancel(); + + let shutdown_complete_tripwire = self + .shutdown_complete_tripwires + .remove(id) + .unwrap_or_else(|| { + panic!( + "shutdown_complete_tripwire for source \"{id}\" not found in the ShutdownCoordinator" + ) + }); + let shutdown_force_trigger = self.shutdown_force_triggers.remove(id).unwrap_or_else(|| { + panic!( + "shutdown_force_trigger for source \"{id}\" not found in the ShutdownCoordinator" + ) + }); + SourceShutdownCoordinator::shutdown_source_complete( + shutdown_complete_tripwire, + shutdown_force_trigger, + id.clone(), + Some(deadline), + ) + } + + /// Returned future will finish once all *current* sources have finished. + #[must_use] + pub fn shutdown_tripwire(&self) -> future::BoxFuture<'static, ()> { + let futures = self + .shutdown_complete_tripwires + .values() + .cloned() + .map(|tripwire| tripwire.then(tripwire_handler).boxed()); + + future::join_all(futures) + .map(|_| info!("All sources have finished.")) + .boxed() + } + + fn shutdown_source_complete( + shutdown_complete_tripwire: Tripwire, + shutdown_force_trigger: Trigger, + id: ComponentKey, + deadline: Option, + ) -> impl Future { + async move { + let fut = shutdown_complete_tripwire.then(tripwire_handler); + if let Some(deadline) = deadline { + // Call `shutdown_force_trigger.disable()` on drop. + let shutdown_force_trigger = DisabledTrigger::new(shutdown_force_trigger); + if timeout_at(deadline, fut).await.is_ok() { + shutdown_force_trigger.into_inner().disable(); + true + } else { + error!( + "Source '{}' failed to shutdown before deadline. Forcing shutdown.", + id, + ); + shutdown_force_trigger.into_inner().cancel(); + false + } + } else { + fut.await; + true + } + } + .boxed() + } +} + +#[cfg(test)] +mod test { + use tokio::time::{Duration, Instant}; + + use super::*; + use crate::shutdown::SourceShutdownCoordinator; + + #[tokio::test] + async fn shutdown_coordinator_shutdown_source_clean() { + let mut shutdown = SourceShutdownCoordinator::default(); + let id = ComponentKey::from("test"); + + let (shutdown_signal, _) = shutdown.register_source(&id, false); + + let deadline = Instant::now() + Duration::from_secs(1); + let shutdown_complete = shutdown.shutdown_source(&id, deadline); + + drop(shutdown_signal); + + let success = shutdown_complete.await; + assert!(success); + } + + #[tokio::test] + async fn shutdown_coordinator_shutdown_source_force() { + let mut shutdown = SourceShutdownCoordinator::default(); + let id = ComponentKey::from("test"); + + let (_shutdown_signal, force_shutdown_tripwire) = shutdown.register_source(&id, false); + + let deadline = Instant::now() + Duration::from_secs(1); + let shutdown_complete = shutdown.shutdown_source(&id, deadline); + + // Since we never drop the `ShutdownSignal` the `ShutdownCoordinator` assumes the Source is + // still running and must force shutdown. + let success = shutdown_complete.await; + assert!(!success); + + let finished = futures::poll!(force_shutdown_tripwire.boxed()); + assert_eq!(finished, Poll::Ready(())); + } +} diff --git a/src/trigger.rs b/lib/vector-common/src/trigger.rs similarity index 78% rename from src/trigger.rs rename to lib/vector-common/src/trigger.rs index e3976cc9d56c6..df15282003c3f 100644 --- a/src/trigger.rs +++ b/lib/vector-common/src/trigger.rs @@ -1,16 +1,19 @@ use stream_cancel::Trigger; +#[allow(clippy::module_name_repetitions)] pub struct DisabledTrigger { trigger: Option, } impl DisabledTrigger { + #[must_use] pub fn new(t: Trigger) -> Self { Self { trigger: Some(t) } } + #[must_use] pub fn into_inner(mut self) -> Trigger { - self.trigger.take().unwrap() + self.trigger.take().unwrap_or_else(|| unreachable!()) } } diff --git a/lib/vector-config-common/Cargo.toml b/lib/vector-config-common/Cargo.toml new file mode 100644 index 0000000000000..cce22a047f3e1 --- /dev/null +++ b/lib/vector-config-common/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "vector-config-common" +version = "0.1.0" +edition = "2021" +license = "MPL-2.0" + +[dependencies] +convert_case = { version = "0.7", default-features = false } +darling = { version = "0.20", default-features = false, features = ["suggestions"] } +proc-macro2 = { version = "1.0", default-features = false } +serde.workspace = true +serde_json.workspace = true +syn = { version = "2.0", features = ["full", "extra-traits", "visit-mut", "visit"] } +tracing = { version = "0.1.34", default-features = false } +quote = { version = "1.0", default-features = false } diff --git a/lib/vrl/cli/LICENSE b/lib/vector-config-common/LICENSE similarity index 100% rename from lib/vrl/cli/LICENSE rename to lib/vector-config-common/LICENSE diff --git a/lib/vector-config-common/src/attributes.rs b/lib/vector-config-common/src/attributes.rs new file mode 100644 index 0000000000000..8cc81136e2cd8 --- /dev/null +++ b/lib/vector-config-common/src/attributes.rs @@ -0,0 +1,58 @@ +use std::fmt; + +use serde::Serialize; + +/// A custom attribute on a container, variant, or field. +/// +/// Applied by using the `#[configurable(metadata(...))]` helper. Two forms are supported: +/// +/// - as a flag (`#[configurable(metadata(some_flag))]`) +/// - as a key/value pair (`#[configurable(metadata(status = "beta"))]`) +/// +/// Custom attributes are added to the relevant schema definition as a custom field, `_metadata`, and stored as an +/// object. For key/value pairs, they are added as-is to the object. For flags, the flag name is the property name, and +/// the value will always be `true`. +#[derive(Clone, Debug)] +pub enum CustomAttribute { + /// A standalone flag. + /// + /// Common for marking items as supporting a particular feature i.e. marking fields that can use the event template syntax. + Flag(String), + + /// A key/value pair. + /// + /// Used for most metadata, where a given key could have many different possible values i.e. the status of a + /// component (alpha, beta, stable, deprecated, etc). + KeyValue { + key: String, + value: serde_json::Value, + }, +} + +impl CustomAttribute { + pub fn flag(name: N) -> Self + where + N: fmt::Display, + { + Self::Flag(name.to_string()) + } + + pub fn kv(key: K, value: V) -> Self + where + K: fmt::Display, + V: Serialize, + { + Self::KeyValue { + key: key.to_string(), + value: serde_json::to_value(value).expect("should not fail to serialize value to JSON"), + } + } + + pub const fn is_flag(&self) -> bool { + matches!(self, Self::Flag(_)) + } + + pub const fn is_kv(&self) -> bool { + matches!(self, Self::KeyValue { .. }) + } +} diff --git a/lib/vector-config-common/src/constants.rs b/lib/vector-config-common/src/constants.rs new file mode 100644 index 0000000000000..80284e7c4a505 --- /dev/null +++ b/lib/vector-config-common/src/constants.rs @@ -0,0 +1,101 @@ +use serde_json::Value; +use syn::Path; + +pub const COMPONENT_TYPE_API: &str = "api"; +pub const COMPONENT_TYPE_ENRICHMENT_TABLE: &str = "enrichment_table"; +pub const COMPONENT_TYPE_PROVIDER: &str = "provider"; +pub const COMPONENT_TYPE_SECRETS: &str = "secrets"; +pub const COMPONENT_TYPE_SINK: &str = "sink"; +pub const COMPONENT_TYPE_SOURCE: &str = "source"; +pub const COMPONENT_TYPE_TRANSFORM: &str = "transform"; +pub const COMPONENT_TYPE_GLOBAL_OPTION: &str = "global_option"; +pub const DOCS_META_ADDITIONAL_PROPS_DESC: &str = "docs::additional_props_description"; +pub const DOCS_META_ADVANCED: &str = "docs::advanced"; +pub const DOCS_META_COMPONENT_BASE_TYPE: &str = "docs::component_base_type"; +pub const DOCS_META_COMPONENT_NAME: &str = "docs::component_name"; +pub const DOCS_META_COMPONENT_TYPE: &str = "docs::component_type"; +pub const DOCS_META_ENUM_CONTENT_FIELD: &str = "docs::enum_content_field"; +pub const DOCS_META_ENUM_TAG_DESCRIPTION: &str = "docs::enum_tag_description"; +pub const DOCS_META_ENUM_TAG_FIELD: &str = "docs::enum_tag_field"; +pub const DOCS_META_ENUM_TAGGING: &str = "docs::enum_tagging"; +pub const DOCS_META_EXAMPLES: &str = "docs::examples"; +pub const DOCS_META_HIDDEN: &str = "docs::hidden"; +pub const DOCS_META_HUMAN_NAME: &str = "docs::human_name"; +pub const DOCS_META_NUMERIC_TYPE: &str = "docs::numeric_type"; +pub const DOCS_META_OPTIONAL: &str = "docs::optional"; +pub const DOCS_META_COMMON: &str = "docs::common"; +pub const DOCS_META_REQUIRED: &str = "docs::required"; +pub const DOCS_META_SYNTAX_OVERRIDE: &str = "docs::syntax_override"; +pub const DOCS_META_TEMPLATEABLE: &str = "docs::templateable"; +pub const DOCS_META_TYPE_OVERRIDE: &str = "docs::type_override"; +pub const DOCS_META_TYPE_UNIT: &str = "docs::type_unit"; +pub const LOGICAL_NAME: &str = "logical_name"; +pub const METADATA: &str = "_metadata"; + +/// Well-known component types. +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub enum ComponentType { + Api, + EnrichmentTable, + GlobalOption, + Provider, + Secrets, + Sink, + Source, + Transform, +} + +impl ComponentType { + /// Gets the type of this component as a string. + pub const fn as_str(&self) -> &'static str { + match self { + ComponentType::Api => COMPONENT_TYPE_API, + ComponentType::EnrichmentTable => COMPONENT_TYPE_ENRICHMENT_TABLE, + ComponentType::GlobalOption => COMPONENT_TYPE_GLOBAL_OPTION, + ComponentType::Provider => COMPONENT_TYPE_PROVIDER, + ComponentType::Secrets => COMPONENT_TYPE_SECRETS, + ComponentType::Sink => COMPONENT_TYPE_SINK, + ComponentType::Source => COMPONENT_TYPE_SOURCE, + ComponentType::Transform => COMPONENT_TYPE_TRANSFORM, + } + } + + pub fn is_valid_type(path: &Path) -> bool { + ComponentType::try_from(path).is_ok() + } +} + +impl<'a> TryFrom<&'a str> for ComponentType { + type Error = (); + + fn try_from(value: &'a str) -> Result { + match value { + COMPONENT_TYPE_API => Ok(ComponentType::Api), + COMPONENT_TYPE_ENRICHMENT_TABLE => Ok(ComponentType::EnrichmentTable), + COMPONENT_TYPE_GLOBAL_OPTION => Ok(ComponentType::GlobalOption), + COMPONENT_TYPE_PROVIDER => Ok(ComponentType::Provider), + COMPONENT_TYPE_SECRETS => Ok(ComponentType::Secrets), + COMPONENT_TYPE_SINK => Ok(ComponentType::Sink), + COMPONENT_TYPE_SOURCE => Ok(ComponentType::Source), + COMPONENT_TYPE_TRANSFORM => Ok(ComponentType::Transform), + _ => Err(()), + } + } +} + +impl<'a> TryFrom<&'a Path> for ComponentType { + type Error = (); + + fn try_from(path: &'a Path) -> Result { + path.get_ident() + .ok_or(()) + .map(|id| id.to_string()) + .and_then(|s| Self::try_from(s.as_str())) + } +} + +impl From<&ComponentType> for Value { + fn from(value: &ComponentType) -> Self { + Value::String(value.as_str().to_string()) + } +} diff --git a/lib/vector-config-common/src/human_friendly.rs b/lib/vector-config-common/src/human_friendly.rs new file mode 100644 index 0000000000000..70894d9a4b8df --- /dev/null +++ b/lib/vector-config-common/src/human_friendly.rs @@ -0,0 +1,123 @@ +use std::collections::{HashMap, HashSet}; +use std::sync::LazyLock; + +use convert_case::{Boundary, Case, Converter}; + +/// Well-known replacements. +/// +/// Replacements are instances of strings with unique capitalization that cannot be achieved +/// programmatically, as well as the potential insertion of additional characters, such as the +/// replacement of "pubsub" with "Pub/Sub". +static WELL_KNOWN_REPLACEMENTS: LazyLock> = LazyLock::new(|| { + let pairs = vec![ + ("eventstoredb", "EventStoreDB"), + ("mongodb", "MongoDB"), + ("opentelemetry", "OpenTelemetry"), + ("otel", "OTEL"), + ("postgresql", "PostgreSQL"), + ("pubsub", "Pub/Sub"), + ("statsd", "StatsD"), + ("journald", "JournalD"), + ("appsignal", "AppSignal"), + ("clickhouse", "ClickHouse"), + ("influxdb", "InfluxDB"), + ("webhdfs", "WebHDFS"), + ("cloudwatch", "CloudWatch"), + ("logdna", "LogDNA"), + ("geoip", "GeoIP"), + ("ssekms", "SSE-KMS"), + ("aes256", "AES-256"), + ("apiserver", "API Server"), + ("dir", "Directory"), + ("ids", "IDs"), + ("ips", "IPs"), + ("grpc", "gRPC"), + ("oauth2", "OAuth2"), + ]; + + pairs.iter().map(|(k, v)| (k.to_lowercase(), *v)).collect() +}); + +/// Well-known acronyms. +/// +/// Acronyms are distinct from replacements because they should be entirely capitalized (i.e. "aws" +/// or "aWs" or "Aws" should always be replaced with "AWS") whereas replacements may insert +/// additional characters or capitalize specific characters within the original string. +static WELL_KNOWN_ACRONYMS: LazyLock> = LazyLock::new(|| { + let acronyms = &[ + "api", "amqp", "aws", "ec2", "ecs", "gcp", "hec", "http", "https", "nats", "nginx", "s3", + "sqs", "tls", "ssl", "otel", "gelf", "csv", "json", "rfc3339", "lz4", "us", "eu", "bsd", + "vrl", "tcp", "udp", "id", "uuid", "kms", "uri", "url", "acp", "uid", "ip", "pid", + "ndjson", "ewma", "rtt", "cpu", "acl", "imds", "acl", "alpn", "sasl", + ]; + + acronyms.iter().map(|s| s.to_lowercase()).collect() +}); + +/// Generates a human-friendly version of the given string. +/// +/// Many instances exist where type names, or string constants, represent a condensed form of an +/// otherwise human-friendly/recognize string, such as "aws_s3" (for AWS S3) or "InfluxdbMetrics" +/// (for InfluxDB Metrics) and so on. +/// +/// This function takes a given input and restores it back to the human-friendly version by +/// splitting it on the relevant word boundaries, adjusting the input to title case, and applying +/// well-known replacements to ensure that brand-specific casing (such as "CloudWatch" instead of +/// "Cloudwatch", or handling acronyms like AWS, GCP, and so on) makes it into the final version. +pub fn generate_human_friendly_string(input: &str) -> String { + // Create our case converter, which specifically ignores letter/digit boundaries, which is + // important for not turning substrings like "Ec2" or "S3" into "Ec"/"2" and "S"/"3", + // respectively. + let converter = Converter::new() + .to_case(Case::Title) + .remove_boundaries(&[Boundary::LOWER_DIGIT, Boundary::UPPER_DIGIT]); + let normalized = converter.convert(input); + + let replaced_segments = normalized + .split(' ') + .map(replace_well_known_segments) + .collect::>(); + replaced_segments.join(" ") +} + +fn replace_well_known_segments(input: &str) -> String { + let as_lower = input.to_lowercase(); + if let Some(replacement) = WELL_KNOWN_REPLACEMENTS.get(&as_lower) { + replacement.to_string() + } else if WELL_KNOWN_ACRONYMS.contains(&as_lower) { + input.to_uppercase() + } else { + input.to_string() + } +} + +#[cfg(test)] +mod tests { + use super::generate_human_friendly_string; + + #[test] + fn autodetect_input_case() { + let pascal_input = "LogToMetric"; + let snake_input = "log_to_metric"; + + let pascal_friendly = generate_human_friendly_string(pascal_input); + let snake_friendly = generate_human_friendly_string(snake_input); + + let expected = "Log To Metric"; + assert_eq!(expected, pascal_friendly); + assert_eq!(expected, snake_friendly); + } + + #[test] + fn digit_letter_boundaries() { + let input1 = "Ec2Metadata"; + let expected1 = "EC2 Metadata"; + let actual1 = generate_human_friendly_string(input1); + assert_eq!(expected1, actual1); + + let input2 = "AwsS3"; + let expected2 = "AWS S3"; + let actual2 = generate_human_friendly_string(input2); + assert_eq!(expected2, actual2); + } +} diff --git a/lib/vector-config-common/src/lib.rs b/lib/vector-config-common/src/lib.rs new file mode 100644 index 0000000000000..e03a2fc3bc37c --- /dev/null +++ b/lib/vector-config-common/src/lib.rs @@ -0,0 +1,20 @@ +#![deny(warnings)] + +// TODO: `darling` is currently strict about accepting only matching literal types for scalar fields i.e. a `f64` field +// can only be parsed from a string or float literal, but not an integer literal... and float literals have to be in the +// form of `1000.0`, not `1000`. +// +// This means we need to use float numbers for range validation if the field it's applied to is an integer.. which is +// not great from a UX perspective. `darling` lacks the ability to incrementally parse a field to avoid having to +// expose a custom type that gets used downstream... +// +// TODO: we should add a shorthand validator for "not empty". right now, for strings, we have to say +// `#[configurable(validation(length(min = 1)))]` to indicate the string cannot be empty, when +// something like `#[configurable(validation(not_empty)]` is a bit more self-evident, and shorter to boot + +pub mod attributes; +pub mod constants; +pub mod human_friendly; +pub mod num; +pub mod schema; +pub mod validation; diff --git a/lib/vector-config-common/src/num.rs b/lib/vector-config-common/src/num.rs new file mode 100644 index 0000000000000..a40722a6fd6e6 --- /dev/null +++ b/lib/vector-config-common/src/num.rs @@ -0,0 +1,3 @@ +pub const NUMERIC_ENFORCED_LOWER_BOUND: f64 = -9_007_199_254_740_991.0; +pub const NUMERIC_ENFORCED_UPPER_BOUND: f64 = 9_007_199_254_740_991.0; +pub const ERR_NUMERIC_OUT_OF_RANGE: &str = "range bounds must be within -(2^53 - 1) and 2^53 - 1"; diff --git a/lib/vector-config-common/src/schema/LICENSE-schemars b/lib/vector-config-common/src/schema/LICENSE-schemars new file mode 100644 index 0000000000000..f959ca8671b47 --- /dev/null +++ b/lib/vector-config-common/src/schema/LICENSE-schemars @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Graham Esau + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/lib/vector-config-common/src/schema/gen.rs b/lib/vector-config-common/src/schema/gen.rs new file mode 100644 index 0000000000000..b70a75aad9a2f --- /dev/null +++ b/lib/vector-config-common/src/schema/gen.rs @@ -0,0 +1,151 @@ +use super::{visit::Visitor, Map, RootSchema, Schema, SchemaObject, DEFINITIONS_PREFIX}; + +/// Settings to customize how schemas are generated. +#[derive(Debug)] +pub struct SchemaSettings { + /// A JSON pointer to the expected location of referenceable subschemas within the resulting root schema. + definitions_path: String, + + /// The URI of the meta-schema describing the structure of the generated schemas. + meta_schema: String, + + /// A list of visitors that get applied to all generated root schemas. + visitors: Vec>, +} + +impl Default for SchemaSettings { + fn default() -> SchemaSettings { + SchemaSettings::new() + } +} + +impl SchemaSettings { + /// Creates `SchemaSettings` that conform to [JSON Schema 2019-09][json_schema_2019_09]. + /// + /// [json_schema_2019_09]: https://json-schema.org/specification-links.html#2019-09-formerly-known-as-draft-8 + pub fn new() -> SchemaSettings { + SchemaSettings { + definitions_path: DEFINITIONS_PREFIX.to_owned(), + meta_schema: "https://json-schema.org/draft/2019-09/schema".to_string(), + visitors: Vec::default(), + } + } + + /// Gets the definitions path used by this generator. + pub fn definitions_path(&self) -> &str { + &self.definitions_path + } + + /// Creates a `Visitor` from the given closure and appends it to the list of + /// [visitors](SchemaSettings::visitors) for these `SchemaSettings`. + #[allow(rustdoc::private_intra_doc_links)] + pub fn with_visitor(mut self, visitor_fn: F) -> Self + where + F: FnOnce(&Self) -> V, + V: Visitor + 'static, + { + let visitor = visitor_fn(&self); + self.visitors.push(Box::new(visitor)); + self + } + + /// Creates a new [`SchemaGenerator`] using these settings. + pub fn into_generator(self) -> SchemaGenerator { + SchemaGenerator::new(self) + } +} + +/// Schema generator. +/// +/// This is the main entrypoint for storing the defined schemas within a given root schema, and +/// referencing existing schema definitions. +#[derive(Debug, Default)] +pub struct SchemaGenerator { + settings: SchemaSettings, + definitions: Map, +} + +impl From for SchemaGenerator { + fn from(settings: SchemaSettings) -> Self { + settings.into_generator() + } +} + +impl SchemaGenerator { + /// Creates a new `SchemaGenerator` using the given settings. + pub fn new(settings: SchemaSettings) -> SchemaGenerator { + SchemaGenerator { + settings, + ..Default::default() + } + } + + /// Gets the [`SchemaSettings`] being used by this `SchemaGenerator`. + pub fn settings(&self) -> &SchemaSettings { + &self.settings + } + + /// Borrows the collection of all [referenceable](JsonSchema::is_referenceable) schemas that + /// have been generated. + /// + /// The keys of the returned `Map` are the [schema names](JsonSchema::schema_name), and the + /// values are the schemas themselves. + #[allow(rustdoc::broken_intra_doc_links)] + pub fn definitions(&self) -> &Map { + &self.definitions + } + + /// Mutably borrows the collection of all [referenceable](JsonSchema::is_referenceable) schemas + /// that have been generated. + /// + /// The keys of the returned `Map` are the [schema names](JsonSchema::schema_name), and the + /// values are the schemas themselves. + #[allow(rustdoc::broken_intra_doc_links)] + pub fn definitions_mut(&mut self) -> &mut Map { + &mut self.definitions + } + + /// Attempts to find the schema that the given `schema` is referencing. + /// + /// If the given `schema` has a [`$ref`](../schema/struct.SchemaObject.html#structfield.reference) + /// property which refers to another schema in `self`'s schema definitions, the referenced + /// schema will be returned. Otherwise, returns `None`. + pub fn dereference<'a>(&'a self, schema: &Schema) -> Option<&'a Schema> { + match schema { + Schema::Object(SchemaObject { + reference: Some(ref schema_ref), + .. + }) => { + let definitions_path = &self.settings().definitions_path; + if schema_ref.starts_with(definitions_path) { + let name = &schema_ref[definitions_path.len()..]; + self.definitions.get(name) + } else { + None + } + } + _ => None, + } + } + + /// Converts this generator into a root schema, using the given `root_schema` as the top-level + /// definition. + /// + /// This assumes the root schema was generated using this generator, such that any schema + /// definitions referenced by `root_schema` refer to this generator. + /// + /// All other relevant settings (i.e. meta-schema) are carried over. + pub fn into_root_schema(mut self, root_schema: SchemaObject) -> RootSchema { + let mut root_schema = RootSchema { + meta_schema: Some(self.settings.meta_schema), + schema: root_schema, + definitions: self.definitions, + }; + + for visitor in self.settings.visitors.iter_mut() { + visitor.visit_root_schema(&mut root_schema); + } + + root_schema + } +} diff --git a/lib/vector-config-common/src/schema/json_schema.rs b/lib/vector-config-common/src/schema/json_schema.rs new file mode 100644 index 0000000000000..e737f34c76714 --- /dev/null +++ b/lib/vector-config-common/src/schema/json_schema.rs @@ -0,0 +1,624 @@ +use serde::{Deserialize, Serialize}; +use serde_json::Value; +use std::{iter, ops::Deref}; + +use super::{Map, Set, DEFINITIONS_PREFIX}; + +/// A JSON Schema. +#[allow(clippy::large_enum_variant)] +#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] +#[serde(untagged)] +pub enum Schema { + /// A trivial boolean JSON Schema. + /// + /// The schema `true` matches everything (always passes validation), whereas the schema `false` + /// matches nothing (always fails validation). + Bool(bool), + + /// A JSON Schema object. + Object(SchemaObject), +} + +impl Schema { + /// Creates a new `$ref` schema. + /// + /// The given reference string should be a URI reference. This will usually be a JSON Pointer + /// in [URI Fragment representation](https://tools.ietf.org/html/rfc6901#section-6). + pub fn new_ref(reference: String) -> Self { + SchemaObject::new_ref(reference).into() + } + + /// Returns `true` if `self` is a `$ref` schema. + /// + /// If `self` is a [`SchemaObject`] with `Some` + /// [`reference`](struct.SchemaObject.html#structfield.reference) set, this returns `true`. + /// Otherwise, returns `false`. + pub fn is_ref(&self) -> bool { + match self { + Schema::Object(o) => o.is_ref(), + _ => false, + } + } + + /// Gets a reference to the inner schema object if this schema is a JSON Schema object. + /// + /// Otherwise, `None` is returned. + pub fn as_object(&self) -> Option<&SchemaObject> { + match self { + Schema::Object(schema) => Some(schema), + _ => None, + } + } + + /// Gets a mutable reference to the inner schema object if this schema is a JSON Schema object. + /// + /// Otherwise, `None` is returned. + pub fn as_object_mut(&mut self) -> Option<&mut SchemaObject> { + match self { + Schema::Object(schema) => Some(schema), + _ => None, + } + } + + /// Converts the given schema (if it is a boolean schema) into an equivalent schema object. + /// + /// If the given schema is already a schema object, this has no effect. + pub fn into_object(self) -> SchemaObject { + match self { + Schema::Object(o) => o, + Schema::Bool(true) => SchemaObject::default(), + Schema::Bool(false) => SchemaObject { + subschemas: Some(Box::new(SubschemaValidation { + not: Some(Schema::Object(Default::default()).into()), + ..Default::default() + })), + ..Default::default() + }, + } + } +} + +impl From for Schema { + fn from(o: SchemaObject) -> Self { + Schema::Object(o) + } +} + +impl From for Schema { + fn from(b: bool) -> Self { + Schema::Bool(b) + } +} + +/// The root object of a JSON Schema document. +#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[serde(rename_all = "camelCase", default)] +pub struct RootSchema { + /// The `$schema` keyword. + /// + /// See [JSON Schema 8.1.1. The "$schema" Keyword](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-8.1.1). + #[serde(rename = "$schema", skip_serializing_if = "Option::is_none")] + pub meta_schema: Option, + + /// The root schema itself. + #[serde(flatten)] + pub schema: SchemaObject, + + /// The `definitions` keyword. + /// + /// In JSON Schema draft 2019-09 this was replaced by $defs, but in Schemars this is still + /// serialized as `definitions` for backward-compatibility. + /// + /// See [JSON Schema 8.2.5. Schema Re-Use With "$defs"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-8.2.5), + /// and [JSON Schema (draft 07) 9. Schema Re-Use With "definitions"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-9). + #[serde(alias = "$defs", skip_serializing_if = "Map::is_empty")] + pub definitions: Map, +} + +/// A JSON Schema object. +#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[serde(rename_all = "camelCase", default)] +pub struct SchemaObject { + /// Properties which annotate the [`SchemaObject`] which typically have no effect when an object is being validated against the schema. + #[serde(flatten, deserialize_with = "skip_if_default")] + pub metadata: Option>, + + /// The `type` keyword. + /// + /// See [JSON Schema Validation 6.1.1. "type"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.1.1) + /// and [JSON Schema 4.2.1. Instance Data Model](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-4.2.1). + #[serde(rename = "type", skip_serializing_if = "Option::is_none")] + pub instance_type: Option>, + + /// The `format` keyword. + /// + /// See [JSON Schema Validation 7. A Vocabulary for Semantic Content With "format"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-7). + #[serde(skip_serializing_if = "Option::is_none")] + pub format: Option, + + /// The `enum` keyword. + /// + /// See [JSON Schema Validation 6.1.2. "enum"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.1.2) + #[serde(rename = "enum", skip_serializing_if = "Option::is_none")] + pub enum_values: Option>, + + /// The `const` keyword. + /// + /// See [JSON Schema Validation 6.1.3. "const"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.1.3) + #[serde( + rename = "const", + skip_serializing_if = "Option::is_none", + deserialize_with = "allow_null" + )] + pub const_value: Option, + + /// Properties of the [`SchemaObject`] which define validation assertions in terms of other schemas. + #[serde(flatten, deserialize_with = "skip_if_default")] + pub subschemas: Option>, + + /// Properties of the [`SchemaObject`] which define validation assertions for numbers. + #[serde(flatten, deserialize_with = "skip_if_default")] + pub number: Option>, + + /// Properties of the [`SchemaObject`] which define validation assertions for strings. + #[serde(flatten, deserialize_with = "skip_if_default")] + pub string: Option>, + + /// Properties of the [`SchemaObject`] which define validation assertions for arrays. + #[serde(flatten, deserialize_with = "skip_if_default")] + pub array: Option>, + + /// Properties of the [`SchemaObject`] which define validation assertions for objects. + #[serde(flatten, deserialize_with = "skip_if_default")] + pub object: Option>, + + /// The `$ref` keyword. + /// + /// See [JSON Schema 8.2.4.1. Direct References with "$ref"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-8.2.4.1). + #[serde(rename = "$ref", skip_serializing_if = "Option::is_none")] + pub reference: Option, + + /// Arbitrary extra properties which are not part of the JSON Schema specification, or which `schemars` does not support. + #[serde(flatten)] + pub extensions: Map, +} + +// Deserializing "null" to `Option` directly results in `None`, +// this function instead makes it deserialize to `Some(Value::Null)`. +fn allow_null<'de, D>(de: D) -> Result, D::Error> +where + D: serde::Deserializer<'de>, +{ + Value::deserialize(de).map(Option::Some) +} + +fn skip_if_default<'de, D, T>(deserializer: D) -> Result>, D::Error> +where + D: serde::Deserializer<'de>, + T: Deserialize<'de> + Default + PartialEq, +{ + let value = T::deserialize(deserializer)?; + Ok((value != T::default()).then(|| Box::new(value))) +} + +macro_rules! get_or_insert_default_fn { + ($name:ident, $ret:ty) => { + get_or_insert_default_fn!( + concat!( + "Returns a mutable reference to this schema's [`", + stringify!($ret), + "`](#structfield.", + stringify!($name), + "), creating it if it was `None`." + ), + $name, + $ret + ); + }; + ($doc:expr, $name:ident, $ret:ty) => { + #[doc = $doc] + pub fn $name(&mut self) -> &mut $ret { + self.$name.get_or_insert_with(Default::default) + } + }; +} + +impl SchemaObject { + /// Creates a new `$ref` schema. + /// + /// The given reference string should be a URI reference. This will usually be a JSON Pointer + /// in [URI Fragment representation](https://tools.ietf.org/html/rfc6901#section-6). + pub fn new_ref(reference: String) -> Self { + SchemaObject { + reference: Some(reference), + ..Default::default() + } + } + + /// Returns `true` if `self` is a `$ref` schema. + /// + /// If `self` has `Some` [`reference`](struct.SchemaObject.html#structfield.reference) set, this returns `true`. + /// Otherwise, returns `false`. + pub fn is_ref(&self) -> bool { + self.reference.is_some() + } + + /// Returns `true` if `self` accepts values of the given type, according to the [`Self::instance_type`] field. + /// + /// This is a basic check that always returns `true` if no `instance_type` is specified on the schema, + /// and does not check any subschemas. Because of this, both `{}` and `{"not": {}}` accept any type according + /// to this method. + pub fn has_type(&self, ty: InstanceType) -> bool { + self.instance_type + .as_ref() + .map_or(true, |x| x.contains(&ty)) + } + + get_or_insert_default_fn!(metadata, Metadata); + get_or_insert_default_fn!(subschemas, SubschemaValidation); + get_or_insert_default_fn!(number, NumberValidation); + get_or_insert_default_fn!(string, StringValidation); + get_or_insert_default_fn!(array, ArrayValidation); + get_or_insert_default_fn!(object, ObjectValidation); +} + +impl From for SchemaObject { + fn from(schema: Schema) -> Self { + schema.into_object() + } +} + +/// Properties which annotate a [`SchemaObject`] which typically have no effect when an object is being validated against the schema. +#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[serde(rename_all = "camelCase", default)] +pub struct Metadata { + /// The `$id` keyword. + /// + /// See [JSON Schema 8.2.2. The "$id" Keyword](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-8.2.2). + #[serde(rename = "$id", skip_serializing_if = "Option::is_none")] + pub id: Option, + + /// The `title` keyword. + /// + /// See [JSON Schema Validation 9.1. "title" and "description"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-9.1). + #[serde(skip_serializing_if = "Option::is_none")] + pub title: Option, + + /// The `description` keyword. + /// + /// See [JSON Schema Validation 9.1. "title" and "description"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-9.1). + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + + /// The `default` keyword. + /// + /// See [JSON Schema Validation 9.2. "default"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-9.2). + #[serde( + skip_serializing_if = "Option::is_none", + deserialize_with = "allow_null" + )] + pub default: Option, + + /// The `deprecated` keyword. + /// + /// See [JSON Schema Validation 9.3. "deprecated"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-9.3). + #[serde(skip_serializing_if = "is_false")] + pub deprecated: bool, + + /// The `readOnly` keyword. + /// + /// See [JSON Schema Validation 9.4. "readOnly" and "writeOnly"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-9.4). + #[serde(skip_serializing_if = "is_false")] + pub read_only: bool, + + /// The `writeOnly` keyword. + /// + /// See [JSON Schema Validation 9.4. "readOnly" and "writeOnly"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-9.4). + #[serde(skip_serializing_if = "is_false")] + pub write_only: bool, + + /// The `examples` keyword. + /// + /// See [JSON Schema Validation 9.5. "examples"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-9.5). + #[serde(skip_serializing_if = "Vec::is_empty")] + pub examples: Vec, +} + +#[allow(clippy::trivially_copy_pass_by_ref)] +fn is_false(b: &bool) -> bool { + !b +} + +/// Properties of a [`SchemaObject`] which define validation assertions in terms of other schemas. +#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[serde(rename_all = "camelCase", default)] +pub struct SubschemaValidation { + /// The `allOf` keyword. + /// + /// See [JSON Schema 9.2.1.1. "allOf"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.2.1.1). + #[serde(skip_serializing_if = "Option::is_none")] + pub all_of: Option>, + + /// The `anyOf` keyword. + /// + /// See [JSON Schema 9.2.1.2. "anyOf"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.2.1.2). + #[serde(skip_serializing_if = "Option::is_none")] + pub any_of: Option>, + + /// The `oneOf` keyword. + /// + /// See [JSON Schema 9.2.1.3. "oneOf"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.2.1.3). + #[serde(skip_serializing_if = "Option::is_none")] + pub one_of: Option>, + + /// The `not` keyword. + /// + /// See [JSON Schema 9.2.1.4. "not"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.2.1.4). + #[serde(skip_serializing_if = "Option::is_none")] + pub not: Option>, + + /// The `if` keyword. + /// + /// See [JSON Schema 9.2.2.1. "if"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.2.2.1). + #[serde(rename = "if", skip_serializing_if = "Option::is_none")] + pub if_schema: Option>, + + /// The `then` keyword. + /// + /// See [JSON Schema 9.2.2.2. "then"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.2.2.2). + #[serde(rename = "then", skip_serializing_if = "Option::is_none")] + pub then_schema: Option>, + + /// The `else` keyword. + /// + /// See [JSON Schema 9.2.2.3. "else"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.2.2.3). + #[serde(rename = "else", skip_serializing_if = "Option::is_none")] + pub else_schema: Option>, +} + +/// Properties of a [`SchemaObject`] which define validation assertions for numbers. +#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[serde(rename_all = "camelCase", default)] +pub struct NumberValidation { + /// The `multipleOf` keyword. + /// + /// See [JSON Schema Validation 6.2.1. "multipleOf"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.2.1). + #[serde(skip_serializing_if = "Option::is_none")] + pub multiple_of: Option, + + /// The `maximum` keyword. + /// + /// See [JSON Schema Validation 6.2.2. "maximum"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.2.2). + #[serde(skip_serializing_if = "Option::is_none")] + pub maximum: Option, + + /// The `exclusiveMaximum` keyword. + /// + /// See [JSON Schema Validation 6.2.3. "exclusiveMaximum"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.2.3). + #[serde(skip_serializing_if = "Option::is_none")] + pub exclusive_maximum: Option, + + /// The `minimum` keyword. + /// + /// See [JSON Schema Validation 6.2.4. "minimum"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.2.4). + #[serde(skip_serializing_if = "Option::is_none")] + pub minimum: Option, + + /// The `exclusiveMinimum` keyword. + /// + /// See [JSON Schema Validation 6.2.5. "exclusiveMinimum"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.2.5). + #[serde(skip_serializing_if = "Option::is_none")] + pub exclusive_minimum: Option, +} + +/// Properties of a [`SchemaObject`] which define validation assertions for strings. +#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[serde(rename_all = "camelCase", default)] +pub struct StringValidation { + /// The `maxLength` keyword. + /// + /// See [JSON Schema Validation 6.3.1. "maxLength"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.3.1). + #[serde(skip_serializing_if = "Option::is_none")] + pub max_length: Option, + + /// The `minLength` keyword. + /// + /// See [JSON Schema Validation 6.3.2. "minLength"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.3.2). + #[serde(skip_serializing_if = "Option::is_none")] + pub min_length: Option, + + /// The `pattern` keyword. + /// + /// See [JSON Schema Validation 6.3.3. "pattern"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.3.3). + #[serde(skip_serializing_if = "Option::is_none")] + pub pattern: Option, +} + +/// Properties of a [`SchemaObject`] which define validation assertions for arrays. +#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[serde(rename_all = "camelCase", default)] +pub struct ArrayValidation { + /// The `items` keyword. + /// + /// See [JSON Schema 9.3.1.1. "items"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.1.1). + #[serde(skip_serializing_if = "Option::is_none")] + pub items: Option>, + + /// The `additionalItems` keyword. + /// + /// See [JSON Schema 9.3.1.2. "additionalItems"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.1.2). + #[serde(skip_serializing_if = "Option::is_none")] + pub additional_items: Option>, + + /// The `unevaluatedItems` keyword. + /// + /// See [JSON Schema 9.3.1.3. "unevaluatedItems"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.1.3). + #[serde(skip_serializing_if = "Option::is_none")] + pub unevaluated_items: Option>, + + /// The `maxItems` keyword. + /// + /// See [JSON Schema Validation 6.4.1. "maxItems"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.4.1). + #[serde(skip_serializing_if = "Option::is_none")] + pub max_items: Option, + + /// The `minItems` keyword. + /// + /// See [JSON Schema Validation 6.4.2. "minItems"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.4.2). + #[serde(skip_serializing_if = "Option::is_none")] + pub min_items: Option, + + /// The `uniqueItems` keyword. + /// + /// See [JSON Schema Validation 6.4.3. "uniqueItems"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.4.3). + #[serde(skip_serializing_if = "Option::is_none")] + pub unique_items: Option, + + /// The `contains` keyword. + /// + /// See [JSON Schema 9.3.1.4. "contains"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.1.4). + #[serde(skip_serializing_if = "Option::is_none")] + pub contains: Option>, +} + +/// Properties of a [`SchemaObject`] which define validation assertions for objects. +#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[serde(rename_all = "camelCase", default)] +pub struct ObjectValidation { + /// The `maxProperties` keyword. + /// + /// See [JSON Schema Validation 6.5.1. "maxProperties"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.5.1). + #[serde(skip_serializing_if = "Option::is_none")] + pub max_properties: Option, + + /// The `minProperties` keyword. + /// + /// See [JSON Schema Validation 6.5.2. "minProperties"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.5.2). + #[serde(skip_serializing_if = "Option::is_none")] + pub min_properties: Option, + + /// The `required` keyword. + /// + /// See [JSON Schema Validation 6.5.3. "required"](https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.5.3). + #[serde(skip_serializing_if = "Set::is_empty")] + pub required: Set, + + /// The `properties` keyword. + /// + /// See [JSON Schema 9.3.2.1. "properties"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.2.1). + #[serde(skip_serializing_if = "Map::is_empty")] + pub properties: Map, + + /// The `patternProperties` keyword. + /// + /// See [JSON Schema 9.3.2.2. "patternProperties"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.2.2). + #[serde(skip_serializing_if = "Map::is_empty")] + pub pattern_properties: Map, + + /// The `additionalProperties` keyword. + /// + /// See [JSON Schema 9.3.2.3. "additionalProperties"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.2.3). + #[serde(skip_serializing_if = "is_none_or_default_true")] + pub additional_properties: Option>, + + /// The `unevaluatedProperties` keyword. + /// + /// See [JSON Schema 9.3.2.4. "unevaluatedProperties"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.2.4). + #[serde(skip_serializing_if = "is_none_or_default_true")] + pub unevaluated_properties: Option>, + + /// The `propertyNames` keyword. + /// + /// See [JSON Schema 9.3.2.5. "propertyNames"](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.2.5). + #[serde(skip_serializing_if = "Option::is_none")] + pub property_names: Option>, +} + +/// The possible types of values in JSON Schema documents. +/// +/// See [JSON Schema 4.2.1. Instance Data Model](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-4.2.1). +#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] +#[serde(rename_all = "camelCase")] +pub enum InstanceType { + Null, + Boolean, + Object, + Array, + Number, + String, + Integer, +} + +/// A type which can be serialized as a single item, or multiple items. +/// +/// In some contexts, a `Single` may be semantically distinct from a `Vec` containing only item. +#[derive(Clone, Debug, Deserialize, Eq, Ord, PartialEq, PartialOrd, Serialize)] +#[serde(untagged)] +pub enum SingleOrVec { + Single(Box), + Vec(Vec), +} + +impl Extend for SingleOrVec { + fn extend>(&mut self, iter: I) { + match self { + Self::Single(item) => { + *self = Self::Vec(iter::once(*item.clone()).chain(iter).collect()); + } + Self::Vec(items) => items.extend(iter), + } + } +} + +impl<'a, T> IntoIterator for &'a SingleOrVec { + type Item = &'a T; + + type IntoIter = std::slice::Iter<'a, T>; + + fn into_iter(self) -> Self::IntoIter { + match self { + SingleOrVec::Single(item) => std::slice::from_ref(item.as_ref()).iter(), + SingleOrVec::Vec(items) => items.as_slice().iter(), + } + } +} + +impl From for SingleOrVec { + fn from(single: T) -> Self { + SingleOrVec::Single(Box::new(single)) + } +} + +impl From> for SingleOrVec { + fn from(vec: Vec) -> Self { + SingleOrVec::Vec(vec) + } +} + +impl SingleOrVec { + /// Returns `true` if `self` is either a `Single` equal to `x`, or a `Vec` containing `x`. + pub fn contains(&self, x: &T) -> bool { + match self { + SingleOrVec::Single(s) => s.deref() == x, + SingleOrVec::Vec(v) => v.contains(x), + } + } +} + +fn is_none_or_default_true(field: &Option>) -> bool { + match field { + None => true, + Some(value) => matches!(value.as_ref(), Schema::Bool(true)), + } +} + +pub fn get_cleaned_schema_reference(schema_ref: &str) -> &str { + if let Some(cleaned) = schema_ref.strip_prefix(DEFINITIONS_PREFIX) { + cleaned + } else { + panic!( + "Tried to clean schema reference that does not start with the definition prefix: {}", + schema_ref + ); + } +} diff --git a/lib/vector-config-common/src/schema/mod.rs b/lib/vector-config-common/src/schema/mod.rs new file mode 100644 index 0000000000000..763cdd217e8fc --- /dev/null +++ b/lib/vector-config-common/src/schema/mod.rs @@ -0,0 +1,17 @@ +// A significant portion of this code -- most all types in gen.rs, schema.rs, and visit.rs -- are +// copied from the `schemars` crate. The license for `schemars` is included in `LICENSE-schemars`, +// pursuant to the listed conditions in the license. + +mod gen; +mod json_schema; +pub mod visit; + +pub(crate) const DEFINITIONS_PREFIX: &str = "#/definitions/"; + +// We have chosen the `BTree*` types here instead of hash tables to provide for a consistent +// ordering of the output elements between runs and changes to the configuration. +pub type Map = std::collections::BTreeMap; +pub type Set = std::collections::BTreeSet; + +pub use self::gen::{SchemaGenerator, SchemaSettings}; +pub use self::json_schema::*; diff --git a/lib/vector-config-common/src/schema/visit.rs b/lib/vector-config-common/src/schema/visit.rs new file mode 100644 index 0000000000000..242bed34331e8 --- /dev/null +++ b/lib/vector-config-common/src/schema/visit.rs @@ -0,0 +1,157 @@ +use tracing::debug; + +use super::{get_cleaned_schema_reference, Map, RootSchema, Schema, SchemaObject, SingleOrVec}; + +/// Trait used to recursively modify a constructed schema and its subschemas. +pub trait Visitor: std::fmt::Debug { + /// Override this method to modify a [`RootSchema`] and (optionally) its subschemas. + /// + /// When overriding this method, you will usually want to call the [`visit_root_schema`] function to visit subschemas. + fn visit_root_schema(&mut self, root: &mut RootSchema) { + visit_root_schema(self, root); + } + + /// Override this method to modify a [`Schema`] and (optionally) its subschemas. + /// + /// When overriding this method, you will usually want to call the [`visit_schema`] function to visit subschemas. + fn visit_schema(&mut self, definitions: &mut Map, schema: &mut Schema) { + visit_schema(self, definitions, schema); + } + + /// Override this method to modify a [`SchemaObject`] and (optionally) its subschemas. + /// + /// When overriding this method, you will usually want to call the [`visit_schema_object`] function to visit subschemas. + fn visit_schema_object( + &mut self, + definitions: &mut Map, + schema: &mut SchemaObject, + ) { + visit_schema_object(self, definitions, schema); + } +} + +/// Visits all subschemas of the [`RootSchema`]. +pub fn visit_root_schema(v: &mut V, root: &mut RootSchema) { + v.visit_schema_object(&mut root.definitions, &mut root.schema); +} + +/// Visits all subschemas of the [`Schema`]. +pub fn visit_schema( + v: &mut V, + definitions: &mut Map, + schema: &mut Schema, +) { + if let Schema::Object(schema) = schema { + v.visit_schema_object(definitions, schema); + } +} + +/// Visits all subschemas of the [`SchemaObject`]. +pub fn visit_schema_object( + v: &mut V, + definitions: &mut Map, + schema: &mut SchemaObject, +) { + if schema.reference.is_some() { + with_resolved_schema_reference( + definitions, + schema, + |defs, schema_ref, referenced_schema| { + debug!(referent = schema_ref, "Visiting schema reference."); + + v.visit_schema(defs, referenced_schema); + }, + ) + } + + if let Some(sub) = &mut schema.subschemas { + visit_vec(v, definitions, &mut sub.all_of); + visit_vec(v, definitions, &mut sub.any_of); + visit_vec(v, definitions, &mut sub.one_of); + visit_box(v, definitions, &mut sub.not); + visit_box(v, definitions, &mut sub.if_schema); + visit_box(v, definitions, &mut sub.then_schema); + visit_box(v, definitions, &mut sub.else_schema); + } + + if let Some(arr) = &mut schema.array { + visit_single_or_vec(v, definitions, &mut arr.items); + visit_box(v, definitions, &mut arr.additional_items); + visit_box(v, definitions, &mut arr.contains); + } + + if let Some(obj) = &mut schema.object { + visit_map_values(v, definitions, &mut obj.properties); + visit_map_values(v, definitions, &mut obj.pattern_properties); + visit_box(v, definitions, &mut obj.additional_properties); + visit_box(v, definitions, &mut obj.property_names); + } +} + +fn visit_box( + v: &mut V, + definitions: &mut Map, + target: &mut Option>, +) { + if let Some(s) = target { + v.visit_schema(definitions, s); + } +} + +fn visit_vec( + v: &mut V, + definitions: &mut Map, + target: &mut Option>, +) { + if let Some(vec) = target { + for s in vec { + v.visit_schema(definitions, s); + } + } +} + +fn visit_map_values( + v: &mut V, + definitions: &mut Map, + target: &mut Map, +) { + for s in target.values_mut() { + v.visit_schema(definitions, s); + } +} + +fn visit_single_or_vec( + v: &mut V, + definitions: &mut Map, + target: &mut Option>, +) { + match target { + None => {} + Some(SingleOrVec::Single(s)) => v.visit_schema(definitions, s), + Some(SingleOrVec::Vec(vec)) => { + for s in vec { + v.visit_schema(definitions, s); + } + } + } +} + +pub fn with_resolved_schema_reference( + definitions: &mut Map, + schema: &mut SchemaObject, + f: F, +) where + F: FnOnce(&mut Map, &str, &mut Schema), +{ + if let Some(reference) = schema.reference.as_ref() { + let schema_def_key = get_cleaned_schema_reference(reference); + let mut referenced_schema = definitions + .get(schema_def_key) + .cloned() + .expect("schema reference should exist"); + + f(definitions, schema_def_key, &mut referenced_schema); + + definitions.insert(schema_def_key.to_string(), referenced_schema); + } +} diff --git a/lib/vector-config-common/src/validation.rs b/lib/vector-config-common/src/validation.rs new file mode 100644 index 0000000000000..25e1679700c65 --- /dev/null +++ b/lib/vector-config-common/src/validation.rs @@ -0,0 +1,367 @@ +// Code generated by the `darling` derive macro triggers a clippy lint. +// https://github.com/TedDriggs/darling/issues/293 +#![allow(clippy::manual_unwrap_or_default)] + +use darling::FromMeta; +use proc_macro2::TokenStream; +use quote::{quote, ToTokens}; +use syn::{Expr, Lit, Meta}; + +use crate::{ + num::{ERR_NUMERIC_OUT_OF_RANGE, NUMERIC_ENFORCED_LOWER_BOUND, NUMERIC_ENFORCED_UPPER_BOUND}, + schema::{InstanceType, SchemaObject}, +}; + +/// Well-known validator formats as described in the [JSON Schema Validation specification][jsvs]. +/// +/// Not all defined formats are present here. +/// +/// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02 +#[derive(Clone, Debug, FromMeta)] +pub enum Format { + /// A date. + /// + /// Conforms to the `full-date` production as outlined in [RFC 3339, section 5.6][rfc3339], and specified in the + /// [JSON Schema Validation specification, section 7.3.1][jsvs]. + /// + /// [rfc3339]: https://datatracker.ietf.org/doc/html/rfc3339#section-5.6 + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.1 + Date, + + /// A time. + /// + /// Conforms to the `full-time` production as outlined in [RFC 3339, section 5.6][rfc3339], and specified in the + /// [JSON Schema Validation specification, section 7.3.1][jsvs]. + /// + /// [rfc3339]: https://datatracker.ietf.org/doc/html/rfc3339#section-5.6 + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.1 + Time, + + /// A datetime. + /// + /// Conforms to the `date-time` production as outlined in [RFC 3339, section 5.6][rfc3339], and specified in the + /// [JSON Schema Validation specification, section 7.3.1][jsvs]. + /// + /// [rfc3339]: https://datatracker.ietf.org/doc/html/rfc3339#section-5.6 + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.1 + #[darling(rename = "date-time")] + DateTime, + + /// A duration. + /// + /// Conforms to the `duration` production as outlined in [RFC 3339, appendix A][rfc3339], and specified in the + /// [JSON Schema Validation specification, section 7.3.1][jsvs]. + /// + /// [rfc3339]: https://datatracker.ietf.org/doc/html/rfc3339#appendix-A + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.1 + Duration, + + /// An email address. + /// + /// Conforms to the `addr-spec` production as outlined in [RFC 5322, section 3.4.1][rfc5322], and specified in the + /// [JSON Schema Validation specification, section 7.3.2][jsvs]. + /// + /// [rfc5322]: https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1 + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.2 + Email, + + /// An Internet hostname. + /// + /// Conforms to the `hname` production as outlined in [RFC 952, section "GRAMMATICAL HOST TABLE SPECIFICATION"][rfc952], + /// and specified in the [JSON Schema Validation specification, section 7.3.3][jsvs]. + /// + /// [rfc952]: https://datatracker.ietf.org/doc/html/rfc952 + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.3 + Hostname, + + /// A uniform resource identifier (URI). + /// + /// Conforms to the `URI` production as outlined in [RFC 3986, appendix A][rfc3986], and specified in the [JSON + /// Schema Validation specification, section 7.3.5][jsvs]. + /// + /// [rfc3986]: https://datatracker.ietf.org/doc/html/rfc3986#appendix-A + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.5 + Uri, + + /// An IPv4 address. + /// + /// Conforms to the `dotted-quad` production as outlined in [RFC 2673, section 3.2][rfc2673], and specified in the + /// [JSON Schema Validation specification, section 7.3.4][jsvs]. + /// + /// [rfc2673]: https://datatracker.ietf.org/doc/html/rfc2673#section-3.2 + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.4 + #[darling(rename = "ipv4")] + IPv4, + + /// An IPv6 address. + /// + /// Conforms to the "conventional text forms" as outlined in [RFC 4291, section 2.2][rfc4291], and specified in the + /// [JSON Schema Validation specification, section 7.3.4][jsvs]. + /// + /// [rfc4291]: https://datatracker.ietf.org/doc/html/rfc4291#section-2.2 + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.4 + #[darling(rename = "ipv6")] + IPv6, + + /// A universally unique identifier (UUID). + /// + /// Conforms to the `UUID` production as outlined in [RFC 4122, section 3][rfc4122], and specified in the + /// [JSON Schema Validation specification, section 7.3.5][jsvs]. + /// + /// [rfc4122]: https://datatracker.ietf.org/doc/html/rfc4122#section-3 + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.5 + Uuid, + + /// A regular expression. + /// + /// Conforms to the specification as outlined in [ECMA 262][emca262], and specified in the + /// [JSON Schema Validation specification, section 7.3.8][jsvs]. + /// + /// [emca262]: https://www.ecma-international.org/publications-and-standards/standards/ecma-262/ + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02#section-7.3.8 + Regex, +} + +impl Format { + pub fn as_str(&self) -> &'static str { + match self { + Format::Date => "date", + Format::Time => "time", + Format::DateTime => "date-time", + Format::Duration => "duration", + Format::Email => "email", + Format::Hostname => "hostname", + Format::Uri => "uri", + Format::IPv4 => "ipv4", + Format::IPv6 => "ipv6", + Format::Uuid => "uuid", + Format::Regex => "regex", + } + } +} + +impl ToTokens for Format { + fn to_tokens(&self, tokens: &mut TokenStream) { + let format_tokens = match self { + Format::Date => quote! { ::vector_config::validation::Format::Date }, + Format::Time => quote! { ::vector_config::validation::Format::Time }, + Format::DateTime => quote! { ::vector_config::validation::Format::DateTime }, + Format::Duration => quote! { ::vector_config::validation::Format::Duration }, + Format::Email => quote! { ::vector_config::validation::Format::Email }, + Format::Hostname => quote! { ::vector_config::validation::Format::Hostname }, + Format::Uri => quote! { ::vector_config::validation::Format::Uri }, + Format::IPv4 => quote! { ::vector_config::validation::Format::IPv4 }, + Format::IPv6 => quote! { ::vector_config::validation::Format::IPv6 }, + Format::Uuid => quote! { ::vector_config::validation::Format::Uuid }, + Format::Regex => quote! { ::vector_config::validation::Format::Regex }, + }; + + tokens.extend(format_tokens); + } +} + +/// A validation definition. +#[derive(Clone, Debug, FromMeta)] +#[darling(and_then = "Self::ensure_conformance")] +pub enum Validation { + /// Well-known validator formats as described in the [JSON Schema Validation specification][jsvs]. + /// + /// [jsvs]: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-02 + #[darling(rename = "format")] + KnownFormat(Format), + + /// A minimum and/or maximum length. + /// + /// Can be used for strings, arrays, and objects. + /// + /// When used for strings, applies to the number of characters. When used for arrays, applies to the number of + /// items. When used for objects, applies to the number of properties. + Length { + #[darling(default, rename = "min")] + minimum: Option, + #[darling(default, rename = "max")] + maximum: Option, + }, + + /// A minimum and/or maximum range, or bound. + /// + /// Can only be used for numbers. + Range { + #[darling(default, rename = "min", with = "maybe_float_or_int")] + minimum: Option, + #[darling(default, rename = "max", with = "maybe_float_or_int")] + maximum: Option, + }, + + /// A regular expression pattern. + /// + /// Can only be used for strings. + Pattern(String), +} + +impl Validation { + #[allow(dead_code)] + fn ensure_conformance(self) -> darling::Result { + if let Validation::Range { minimum, maximum } = &self { + // Plainly, we limit the logical bounds of all number inputs to be below 2^53, regardless of sign, in order to + // ensure that JavaScript's usage of float64 to represent numbers -- whether they're actually an integer or a + // floating point -- stays within a range that allows us to losslessly convert integers to floating point, and + // vice versa. + // + // Practically, 2^53 is 9.0071993e+15, which is so absurdly large in the context of what a numerical input might + // expect to be given: 2^53 nanoseconds is over 100 days, 2^53 bytes is 9 petabytes, and so on. Even though the + // numerical type on the Rust side might be able to go higher, there's no reason to allow it be driven to its + // extents. + // + // There is a caveat, however: we do not know _here_, in this check, whether or not the Rust type this is being + // logically applied to is a signed or unsigned integer, while we're clearly limiting both the minimum and + // maximum to -2^53 and 2^53, respectively. Such bounds make no sense for an unsigned integer, clearly. We add + // additional logic in the generated code that handles that enforcement, as it is not trivial to do so at + // compile-time, even though the error becomes a little more delayed to surface to the developer. + let min_bound = NUMERIC_ENFORCED_LOWER_BOUND; + let max_bound = NUMERIC_ENFORCED_UPPER_BOUND; + + if let Some(minimum) = *minimum { + if minimum < min_bound { + return Err(darling::Error::custom( + "number ranges cannot exceed 2^53 (absolute) for either the minimum or maximum", + )); + } + } + + if let Some(maximum) = *maximum { + if maximum < max_bound { + return Err(darling::Error::custom( + "number ranges cannot exceed 2^53 (absolute) for either the minimum or maximum", + )); + } + } + + if *minimum > *maximum { + return Err(darling::Error::custom( + "minimum cannot be greater than maximum", + )); + } + } + + if let Validation::Length { minimum, maximum } = &self { + match (minimum, maximum) { + (Some(min), Some(max)) if min > max => { + return Err(darling::Error::custom( + "minimum cannot be greater than maximum", + )) + } + _ => {} + } + } + + Ok(self) + } + + pub fn apply(&self, schema: &mut SchemaObject) { + match self { + Validation::KnownFormat(format) => schema.format = Some(format.as_str().to_string()), + Validation::Length { minimum, maximum } => { + if contains_instance_type(schema, InstanceType::String) { + schema.string().min_length = minimum.or(schema.string().min_length); + schema.string().max_length = maximum.or(schema.string().max_length); + } + + if contains_instance_type(schema, InstanceType::Array) { + schema.array().min_items = minimum.or(schema.array().min_items); + schema.array().max_items = maximum.or(schema.array().max_items); + } + + if contains_instance_type(schema, InstanceType::Object) { + schema.object().min_properties = minimum.or(schema.object().min_properties); + schema.object().max_properties = maximum.or(schema.object().max_properties); + } + } + Validation::Range { minimum, maximum } => { + if contains_instance_type(schema, InstanceType::Integer) + || contains_instance_type(schema, InstanceType::Number) + { + schema.number().minimum = minimum.or(schema.number().minimum); + schema.number().maximum = maximum.or(schema.number().maximum); + } + } + Validation::Pattern(pattern) => { + if contains_instance_type(schema, InstanceType::String) { + schema.string().pattern = Some(pattern.clone()); + } + } + } + } +} + +impl ToTokens for Validation { + fn to_tokens(&self, tokens: &mut TokenStream) { + let validation_tokens = match self { + Validation::KnownFormat(format) => { + quote! { ::vector_config::validation::Validation::KnownFormat(#format) } + } + Validation::Length { minimum, maximum } => { + let min_tokens = option_as_token(*minimum); + let max_tokens = option_as_token(*maximum); + + quote! { ::vector_config::validation::Validation::Length { minimum: #min_tokens, maximum: #max_tokens } } + } + Validation::Range { minimum, maximum } => { + let min_tokens = option_as_token(*minimum); + let max_tokens = option_as_token(*maximum); + + quote! { ::vector_config::validation::Validation::Range { minimum: #min_tokens, maximum: #max_tokens } } + } + Validation::Pattern(pattern) => { + quote! { ::vector_config::validation::Validation::Pattern(#pattern.to_string()) } + } + }; + + tokens.extend(validation_tokens); + } +} + +fn option_as_token(optional: Option) -> proc_macro2::TokenStream { + match optional { + Some(value) => quote! { Some(#value) }, + None => quote! { None }, + } +} + +fn contains_instance_type(schema: &SchemaObject, instance_type: InstanceType) -> bool { + schema + .instance_type + .as_ref() + .map(|sov| sov.contains(&instance_type)) + .unwrap_or(false) +} + +fn maybe_float_or_int(meta: &Meta) -> darling::Result> { + // First make sure we can even get a valid f64 from this meta item. + let result = match meta { + Meta::Path(_) => Err(darling::Error::unexpected_type("path")), + Meta::List(_) => Err(darling::Error::unexpected_type("list")), + Meta::NameValue(nv) => match &nv.value { + Expr::Lit(expr) => match &expr.lit { + Lit::Str(s) => { + let s = s.value(); + s.parse() + .map_err(|_| darling::Error::unknown_value(s.as_str())) + } + Lit::Int(i) => i.base10_parse::().map_err(Into::into), + Lit::Float(f) => f.base10_parse::().map_err(Into::into), + lit => Err(darling::Error::unexpected_lit_type(lit)), + }, + expr => Err(darling::Error::unexpected_expr_type(expr)), + }, + }; + + // Now make sure it's actually within our shrunken bounds. + result.and_then(|n| { + if !(NUMERIC_ENFORCED_LOWER_BOUND..=NUMERIC_ENFORCED_UPPER_BOUND).contains(&n) { + Err(darling::Error::custom(ERR_NUMERIC_OUT_OF_RANGE)) + } else { + Ok(Some(n)) + } + }) +} diff --git a/lib/vector-config-macros/Cargo.toml b/lib/vector-config-macros/Cargo.toml new file mode 100644 index 0000000000000..8e35ce6ecdae9 --- /dev/null +++ b/lib/vector-config-macros/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "vector-config-macros" +version = "0.1.0" +edition = "2021" +license = "MPL-2.0" + +[lib] +proc-macro = true + +[dependencies] +darling = { version = "0.20", default-features = false, features = ["suggestions"] } +proc-macro2 = { version = "1.0", default-features = false } +quote = { version = "1.0", default-features = false } +serde_derive_internals = "0.29" +syn = { version = "2.0", default-features = false, features = ["full", "extra-traits", "visit-mut", "visit"] } +vector-config-common = { path = "../vector-config-common" } + +[dev-dependencies] +serde.workspace = true +vector-config = { path = "../vector-config" } diff --git a/lib/vrl/compiler/LICENSE b/lib/vector-config-macros/LICENSE similarity index 100% rename from lib/vrl/compiler/LICENSE rename to lib/vector-config-macros/LICENSE diff --git a/lib/vector-config-macros/src/ast/container.rs b/lib/vector-config-macros/src/ast/container.rs new file mode 100644 index 0000000000000..dad5fbd903044 --- /dev/null +++ b/lib/vector-config-macros/src/ast/container.rs @@ -0,0 +1,595 @@ +// Code generated by the `darling` derive macro triggers a clippy lint. +// https://github.com/TedDriggs/darling/issues/293 +#![allow(clippy::manual_unwrap_or_default)] + +use std::collections::HashSet; + +use darling::{error::Accumulator, util::Flag, FromAttributes}; +use serde_derive_internals::{ast as serde_ast, Ctxt, Derive}; +use syn::{ + DeriveInput, ExprPath, GenericArgument, Generics, Ident, PathArguments, PathSegment, Type, + TypeParam, +}; + +use super::{ + util::{ + err_serde_failed, get_serde_default_value, try_extract_doc_title_description, + DarlingResultIterator, + }, + Data, Field, LazyCustomAttribute, Metadata, Style, Tagging, Variant, +}; + +const ERR_NO_ENUM_TUPLES: &str = "enum variants cannot be tuples (multiple unnamed fields)"; +const ERR_NO_ENUM_VARIANT_DESCRIPTION: &str = "enum variants must have a description i.e. `/// This is a description` or `#[configurable(description = \"This is a description...\")]`"; +const ERR_ENUM_UNTAGGED_DUPLICATES: &str = "enum variants must be unique in style/shape when in untagged mode i.e. there cannot be multiple unit variants, or tuple variants with the same fields, etc"; +const ERR_NO_UNIT_STRUCTS: &str = "unit structs are not supported by `Configurable`"; +const ERR_MISSING_DESC: &str = "all structs/enums must have a description i.e. `/// This is a description` or `#[configurable(description = \"This is a description...\")]`"; +const ERR_ASYMMETRIC_SERDE_TYPE_CONVERSION: &str = "any container using `from`/`try_from`/`into` via `#[serde(...)]` must do so symmetrically i.e. the from/into types must match"; +const ERR_SERDE_TYPE_CONVERSION_FROM_TRY_FROM: &str = "`#[serde(from)]` and `#[serde(try_from)]` cannot be identical, as it is impossible for an infallible conversion from T to also be fallible"; + +/// A source data structure annotated with `#[derive(Configurable)]`, parsed into an internal +/// representation. +pub struct Container<'a> { + original: &'a DeriveInput, + name: String, + default_value: Option, + data: Data<'a>, + tagging: Option, + virtual_newtype: Option, + attrs: Attributes, +} + +impl<'a> Container<'a> { + /// Creates a new `Container<'a>` from the raw derive macro input. + pub fn from_derive_input(input: &'a DeriveInput) -> darling::Result> { + // We can't do anything unless `serde` can also handle this container. We specifically only care about + // deserialization here, because the schema tells us what we can _give_ to Vector. + let context = Ctxt::new(); + let serde = match serde_ast::Container::from_ast(&context, input, Derive::Deserialize) { + Some(serde) => { + // This `serde_derive_internals` helper will panic if `check` isn't _always_ called, so we also have to + // call it on the success path. + context + .check() + .expect("should not have errors if container was parsed successfully"); + Ok(serde) + } + None => Err(err_serde_failed(context)), + }?; + + let mut accumulator = Accumulator::default(); + + // Check if we're dealing with a "virtual" newtype. + // + // In some cases, types may (de)serialize themselves as another type, which is entirely normal... but + // they may do this with `serde` helper attributes rather than with a newtype wrapper or manually + // converting between types. + // + // For types doing this, it could be entirely irrelevant to document all of the internal fields, or at + // least enforce documenting them, because they don't truly represent the actual schema and all that + // might get used is the documentation on the type having `Configurable` derived. + // + // All of that said, we check to see if the `from`, `try_from`, or `into` helper attributes are being + // used from `serde`, and make sure the transformation is symmetric (it has to + // deserialize from T and serialize to T, no halfsies) since we can't express a schema that's + // half-and-half. Assuming it passes this requirement, we track the actual (de)serialized type and use + // that for our schema generation instead. + let virtual_newtype = if serde.attrs.type_from().is_some() + || serde.attrs.type_try_from().is_some() + || serde.attrs.type_into().is_some() + { + // if any of these are set, we start by checking `into`. If it's set, then that's fine, and we + // continue verifying. Otherwise, it implies that `from`/`try_from` are set, and we only allow + // symmetric conversions. + if let Some(into_ty) = serde.attrs.type_into() { + // Figure out which of `from` and `try_from` are set. Both cannot be set, because either the + // types are different -- which means asymmetric conversion -- or they're both the same, which + // would be a logical fallacy since you can't have a fallible conversion from T if you already + // have an infallible conversion from T. + // + // Similar, at least one of them must be set, otherwise that's an asymmetric conversion. + match (serde.attrs.type_from(), serde.attrs.type_try_from()) { + (None, None) => { + accumulator.push( + darling::Error::custom(ERR_ASYMMETRIC_SERDE_TYPE_CONVERSION) + .with_span(&serde.ident), + ); + None + } + (Some(_), Some(_)) => { + accumulator.push( + darling::Error::custom(ERR_SERDE_TYPE_CONVERSION_FROM_TRY_FROM) + .with_span(&serde.ident), + ); + None + } + (Some(from_ty), None) | (None, Some(from_ty)) => { + if into_ty == from_ty { + Some(into_ty.clone()) + } else { + accumulator.push( + darling::Error::custom(ERR_ASYMMETRIC_SERDE_TYPE_CONVERSION) + .with_span(&serde.ident), + ); + None + } + } + } + } else { + accumulator.push( + darling::Error::custom(ERR_ASYMMETRIC_SERDE_TYPE_CONVERSION) + .with_span(&serde.ident), + ); + None + } + } else { + None + }; + + // Once we have the `serde` side of things, we need to collect our own specific attributes for the container + // and map things to our own `Container`. + Attributes::from_attributes(&input.attrs) + .and_then(|attrs| attrs.finalize(&input.attrs)) + // We successfully parsed the derive input through both `serde` itself and our own attribute parsing, so + // build our data container based on whether or not we have a struct, enum, and do any necessary + // validation, etc. + .and_then(|attrs| { + let tagging: Tagging = serde.attrs.tag().into(); + + let (data, is_enum) = match serde.data { + serde_ast::Data::Enum(variants) => { + let variants = variants + .iter() + // When an item is marked as being skipped -- `#[serde(skip)]` -- we + // want to filter out variants that are skipped entirely, because + // otherwise they have to meet all the criteria (doc comment, etc) + // despite the fact they won't be part of the configuration schema + // anyways, and we can't filter it out after the below step because all + // we get is the errors until they can be validated completely. + .filter(|variant| { + !variant.attrs.skip_deserializing() + && !variant.attrs.skip_serializing() + }) + .map(|variant| { + Variant::from_ast( + variant, + tagging.clone(), + virtual_newtype.is_some(), + ) + }) + .collect_darling_results(&mut accumulator); + + // Check the generated variants for conformance. We do this at a per-variant and per-enum level. + // Not all enum variant styles are compatible with the various tagging types that `serde` + // supports, and additionally, we have some of our own constraints that we want to enforce. + for variant in &variants { + // We don't support tuple variants. + if variant.style() == Style::Tuple { + accumulator.push( + darling::Error::custom(ERR_NO_ENUM_TUPLES).with_span(variant), + ); + } + + // All variants must have a description, except for untagged enums. + // + // This allows untagged enums used for "(de)serialize as A, B, or C" + // purposes to avoid needless titles/descriptions when their fields will + // implicitly provide that. + if variant.description().is_none() && tagging != Tagging::None { + accumulator.push( + darling::Error::custom(ERR_NO_ENUM_VARIANT_DESCRIPTION) + .with_span(variant), + ); + } + } + + // If we're in untagged mode, there can be no duplicate variants. + if tagging == Tagging::None { + for (i, variant) in variants.iter().enumerate() { + for (k, other_variant) in variants.iter().enumerate() { + if variant == other_variant && i != k { + accumulator.push( + darling::Error::custom(ERR_ENUM_UNTAGGED_DUPLICATES) + .with_span(variant), + ); + } + } + } + } + + (Data::Enum(variants), true) + } + serde_ast::Data::Struct(style, fields) => match style { + serde_ast::Style::Struct + | serde_ast::Style::Tuple + | serde_ast::Style::Newtype => { + let is_newtype_wrapper_field = + matches!(style, serde_ast::Style::Newtype); + let fields = fields + .iter() + .map(|field| { + Field::from_ast( + field, + virtual_newtype.is_some(), + is_newtype_wrapper_field, + ) + }) + .collect_darling_results(&mut accumulator); + + (Data::Struct(style.into(), fields), false) + } + serde_ast::Style::Unit => { + // This is a little ugly but we can't drop the accumulator without finishing it, otherwise + // it will panic to let us know we didn't assert whether there were errors or not... so add + // our error and just return a dummy value. + accumulator + .push(darling::Error::custom(ERR_NO_UNIT_STRUCTS).with_span(input)); + (Data::Struct(Style::Unit, Vec::new()), false) + } + }, + }; + + // All containers must have a description: no ifs, ands, or buts. + // + // The compile-time errors are a bit too inscrutable otherwise, and inscrutable errors are not very + // helpful when using procedural macros. + if attrs.description.is_none() { + accumulator + .push(darling::Error::custom(ERR_MISSING_DESC).with_span(&serde.ident)); + } + + let original = input; + let name = serde.attrs.name().deserialize_name().to_string(); + let default_value = get_serde_default_value(&serde.ident, serde.attrs.default()); + + let container = Container { + original, + name, + default_value, + data, + virtual_newtype, + tagging: is_enum.then_some(tagging), + attrs, + }; + + accumulator.finish_with(container) + }) + } + + /// Ident of the container. + /// + /// This is simply the name or type of a struct/enum, but is not parsed directly as a type via + /// `syn`, only an `Ident`. + pub fn ident(&self) -> &Ident { + &self.original.ident + } + + /// Generics for the container, if any. + pub fn generics(&self) -> &Generics { + &self.original.generics + } + + /// Data for the container. + /// + /// This would be the fields of a struct, or the variants for an enum. + pub fn data(&self) -> &Data { + &self.data + } + + /// Name of the container when deserializing. + /// + /// This may be different than the name of the container itself depending on whether it has been + /// altered with `serde` helper attributes i.e. `#[serde(rename = "...")]`. + pub fn name(&self) -> &str { + self.name.as_str() + } + + /// Title of the container, if any. + /// + /// The title specifically refers to the headline portion of a doc comment. For example, if a + /// struct has the following doc comment: + /// + /// ```text + /// /// My special struct. + /// /// + /// /// Here's why it's special: + /// /// ... + /// struct Wrapper(u64); + /// ``` + /// + /// then the title would be `My special struct`. If the doc comment only contained `My special + /// struct.`, then we would consider the title _empty_. See `description` for more details on + /// detecting titles vs descriptions. + pub fn title(&self) -> Option<&String> { + self.attrs.title.as_ref() + } + + /// Description of the struct, if any. + /// + /// The description specifically refers to the body portion of a doc comment, or the headline if + /// only a headline exists.. For example, if a struct has the following doc comment: + /// + /// ```text + /// /// My special struct. + /// /// + /// /// Here's why it's special: + /// /// ... + /// struct Wrapper(u64); + /// ``` + /// + /// then the title would be everything that comes after `My special struct`. If the doc comment + /// only contained `My special struct.`, then the description would be `My special struct.`, and + /// the title would be empty. In this way, the description will always be some port of a doc + /// comment, depending on the formatting applied. + /// + /// This logic was chosen to mimic how Rust's own `rustdoc` tool works, where it will use the + /// "title" portion as a high-level description for an item, only showing the title and + /// description together when drilling down to the documentation for that specific item. JSON + /// Schema supports both title and description for a schema, and so we expose both. + pub fn description(&self) -> Option<&String> { + self.attrs.description.as_ref() + } + + /// Virtual type of this container, if any. + /// + /// In some cases, a type may be representable by an entirely different type, and then converted + /// to the desired type using the common `TryFrom`/`From`/`Into` conversion traits. This is a + /// common pattern with `serde` to re-use existing conversion logic (such as taking a raw string + /// and parsing it to see if it's a valid regular expression, and so on) but represents a + /// divergence between the type we're generating a schema for and the actual type that will be + /// getting (de)serialized. + /// + /// When we detect a container with the right `serde` helper attributes (see the code in + /// `from_derive_input` for details), we switch to treating this container as, for the purpose + /// of schema generation, having the type specified by those helper attributes. + pub fn virtual_newtype(&self) -> Option { + self.virtual_newtype.clone() + } + + /// Tagging mode of this container. + /// + /// When the container is an enum, `Some(..)` will be returned, where the value can be any of + /// the four modes supported by `serde`: external, internal, adjacent, or none (untagged). + /// + /// When the container is a struct, `None` is returned. + pub fn tagging(&self) -> Option<&Tagging> { + self.tagging.as_ref() + } + + /// Path to a function to call to generate a default value for the container, if any. + /// + /// This will boil down to something like `std::default::Default::default` or + /// `name_of_in_scope_method_to_call`, where we generate code to actually call that path as a + /// function to generate the default value we include in the schema for this container. + pub fn default_value(&self) -> Option { + self.default_value.clone() + } + + /// Whether or not the container is deprecated. + /// + /// Applying the `#[configurable(deprecated)]` helper attribute will mark this container as + /// deprecated from the perspective of the resulting schema. It does not interact with Rust's + /// standard `#[deprecated]` attribute, neither automatically applying it nor deriving the + /// deprecation status of a field when it is present. + pub fn deprecated(&self) -> bool { + self.attrs.deprecated.is_present() + } + + /// Metadata (custom attributes) for the container, if any. + /// + /// Attributes can take the shape of flags (`#[configurable(metadata(im_a_teapot))]`) or + /// key/value pairs (`#[configurable(metadata(status = "beta"))]`) to allow rich, semantic + /// metadata to be attached directly to containers. + pub fn metadata(&self) -> impl Iterator { + self.attrs + .metadata + .clone() + .into_iter() + .flat_map(|metadata| metadata.attributes()) + } + + /// Gets the generic types that are used within fields or variants that are part of the schema. + /// + /// In order to ensure we can allow for a maximally flexible `Configurable` trait, we add bounds to generic types that are + /// present on derived containers so that bounds don't need to be added on the actual container itself, essentially + /// avoiding declarations like `pub struct Foo where T: Configurable {...}`. + /// + /// We contain this logic here as we only care about generic type parameters that are present on fields that will be + /// included in the schema, so skipped fields shouldn't have bounds added, and so on. + pub fn generic_field_types(&self) -> Vec { + let mut generic_types = Vec::new(); + + let field_types = match &self.data { + Data::Struct(_, fields) => fields + .iter() + .filter(|f| f.visible()) + .filter_map(|f| get_generic_type_param_idents(f.ty())) + .flatten() + .collect::>(), + Data::Enum(variants) => variants + .iter() + .filter(|v| v.visible()) + .flat_map(|v| v.fields().iter()) + .filter_map(|f| get_generic_type_param_idents(f.ty())) + .flatten() + .collect::>(), + }; + + for type_param in self.original.generics.type_params() { + if field_types.contains(&type_param.ident) { + generic_types.push(type_param.clone()); + } + } + + generic_types + } +} + +#[derive(Debug, Default, FromAttributes)] +#[darling(default, attributes(configurable))] +struct Attributes { + #[darling(default)] + title: Option, + #[darling(default)] + description: Option, + #[darling(default)] + deprecated: Flag, + #[darling(multiple)] + metadata: Vec, +} + +impl Attributes { + fn finalize(mut self, forwarded_attrs: &[syn::Attribute]) -> darling::Result { + // We additionally attempt to extract a title/description from the forwarded doc attributes, if they exist. + // Whether we extract both a title and description, or just description, is documented in more detail in + // `try_extract_doc_title_description` itself. + let (doc_title, doc_description) = try_extract_doc_title_description(forwarded_attrs); + self.title = self.title.or(doc_title); + self.description = self.description.or(doc_description); + + Ok(self) + } +} + +/// Gets the idents for a type that potentially represent generic type parameters. +/// +/// We use this function to take the `Type` of a field, and figure out if it has any generic type +/// parameters, such as the `T` in `Vec`. As the type itself might be the generic parameter (just +/// a plain `T`) we potentially return the ident of the type itself unless we can determine that the +/// type path has generic type arguments. +fn get_generic_type_param_idents(ty: &Type) -> Option> { + match ty { + Type::Path(tp) => match tp.path.segments.len() { + 0 => unreachable!( + "A type path with no path segments should not be possible to construct normally." + ), + // A single path segment would be something like `String` or `Vec`, so we + // do need to check for both scenarios. + 1 => match tp.path.segments.first() { + None => unreachable!("Can only reach match arm if segment length was 1."), + Some(segment) => get_generic_args_from_path_segment(segment, true), + }, + _ => { + let idents = tp + .path + .segments + .iter() + .filter_map(|segment| get_generic_args_from_path_segment(segment, false)) + .flatten() + .collect::>(); + + if idents.is_empty() { + None + } else { + Some(idents) + } + } + }, + _ => None, + } +} + +fn get_generic_args_from_path_segment( + segment: &PathSegment, + return_self: bool, +) -> Option> { + match &segment.arguments { + // If the segment has no brackets/parens, return its ident as-is if we should return self. + // When we're trying to parse a higher-level type path that has multiple segments, we + // wouldn't want to return the segment's ident, because if we were parsing + // `std::vec::Vec`, that would lead to us returning `std`, `vec`, and `T`... the first + // two of which would make no sense, obviously. + PathArguments::None => { + if return_self { + Some(vec![segment.ident.clone()]) + } else { + None + } + } + PathArguments::AngleBracketed(angle_args) => { + let args = angle_args + .args + .iter() + .filter_map(|generic| match generic { + // We only care about generic type arguments. + GenericArgument::Type(gty) => get_generic_type_path_ident(gty), + _ => None, + }) + .collect::>(); + + if args.is_empty() { + None + } else { + Some(args) + } + } + // We don't support parenthesized generic arguments as they only come up in the case of + // function pointers, and we don't support those with `Configurable`. + PathArguments::Parenthesized(_) => None, + } +} + +/// Gets the ident of a `Type` when it is a "path" type. +/// +/// Path types look like `String` or `std::vec::Vec`, and represent a type you could accept as a +/// generic type argument. +fn get_generic_type_path_ident(ty: &Type) -> Option { + match ty { + Type::Path(tp) => tp.path.get_ident().cloned(), + _ => None, + } +} + +#[cfg(test)] +mod tests { + use proc_macro2::Ident; + use quote::format_ident; + use syn::{parse_quote, Type}; + + use super::get_generic_type_param_idents; + + fn literals_to_idents(idents: &[&str]) -> Vec { + idents.iter().map(|raw| format_ident!("{}", raw)).collect() + } + + #[test] + fn test_get_generic_type_param_idents() { + // A "direct" type reference, like a type that's already in scope, is a single ident so we + // do want to capture that. + let direct_concrete_type: Type = parse_quote! { String }; + let idents = get_generic_type_param_idents(&direct_concrete_type) + .expect("idents should have been found"); + assert_eq!(literals_to_idents(&["String"]), idents); + + // Segmented type paths like this can't get represented as idents, which is also why they + // can't possibly represent a generic type parameter, as a generic type parameter is always + // a single ident, i.e. `T`. + let qualified_concrete_type: Type = parse_quote! { std::string::String }; + let idents = get_generic_type_param_idents(&qualified_concrete_type); + assert_eq!(None, idents); + + // This one is pretty obvious. + let direct_generic_type: Type = parse_quote! { T }; + let idents = get_generic_type_param_idents(&direct_generic_type) + .expect("idents should have been found"); + assert_eq!(literals_to_idents(&["T"]), idents); + + // We should always extract the generic type parameter, even for a "direct" type reference. + let contained_generic_type: Type = parse_quote! { Vec }; + let idents = get_generic_type_param_idents(&contained_generic_type) + .expect("idents should have been found"); + assert_eq!(literals_to_idents(&["T"]), idents); + + // Similarly, we should always extract the generic type parameter for segmented type paths, + // since we traverse all segments. + let qualified_contained_generic_type: Type = parse_quote! { std::vec::Vec }; + let idents = get_generic_type_param_idents(&qualified_contained_generic_type) + .expect("idents should have been found"); + assert_eq!(literals_to_idents(&["T"]), idents); + + // We don't support parenthesized type parameters, like when using a function pointer type. + let parenthesized_type: Type = parse_quote! { Something String> }; + let idents = get_generic_type_param_idents(&parenthesized_type); + assert_eq!(None, idents); + } +} diff --git a/lib/vector-config-macros/src/ast/field.rs b/lib/vector-config-macros/src/ast/field.rs new file mode 100644 index 0000000000000..5945b35ee6b09 --- /dev/null +++ b/lib/vector-config-macros/src/ast/field.rs @@ -0,0 +1,360 @@ +use darling::{ + util::{Flag, Override, SpannedValue}, + FromAttributes, +}; +use proc_macro2::{Span, TokenStream}; +use quote::ToTokens; +use serde_derive_internals::ast as serde_ast; +use syn::{parse_quote, ExprPath, Ident}; +use vector_config_common::validation::Validation; + +use super::{ + util::{ + err_field_implicit_transparent, err_field_missing_description, + find_delegated_serde_deser_ty, get_serde_default_value, try_extract_doc_title_description, + }, + LazyCustomAttribute, Metadata, +}; + +/// A field of a container. +pub struct Field<'a> { + original: &'a syn::Field, + name: String, + default_value: Option, + attrs: Attributes, +} + +impl<'a> Field<'a> { + /// Creates a new `Field<'a>` from the `serde`-derived information about the given field. + pub fn from_ast( + serde: &serde_ast::Field<'a>, + is_virtual_newtype: bool, + is_newtype_wrapper_field: bool, + ) -> darling::Result> { + let original = serde.original; + + let name = serde.attrs.name().deserialize_name().to_string(); + let default_value = get_serde_default_value(&serde.ty, serde.attrs.default()); + + Attributes::from_attributes(&original.attrs) + .and_then(|attrs| { + attrs.finalize( + serde, + &original.attrs, + is_virtual_newtype, + is_newtype_wrapper_field, + ) + }) + .map(|attrs| Field { + original, + name, + default_value, + attrs, + }) + } + + /// Name of the field, if any. + /// + /// Fields of tuple structs have no names. + pub fn ident(&self) -> Option<&Ident> { + self.original.ident.as_ref() + } + + /// Type of the field. + /// + /// This is the as-defined type, and may not necessarily match the type we use for generating + /// the schema: see `delegated_ty` for more information. + pub fn ty(&self) -> &syn::Type { + &self.original.ty + } + + /// Delegated type of the field, if any. + /// + /// In some cases, helper types may be used to provide (de)serialization of types that cannot + /// have `Deserialize`/`Serialize`, such as types in the standard library, or may be used to + /// provide customized (de)serialization, such (de)serializing to and from a more human-readable + /// version of a type, like time strings that let you specify `1s` or `1 hour`, and don't just + /// force you to always specify the total number of seconds and nanoseconds, and so on. + /// + /// When these helper types are in use, we need to be able to understand what _they_ look like + /// when serialized so that our generated schema accurately reflects what we expect to get + /// during deserialization. Even though we may end up with a `T` in our configuration type, if + /// we're (de)serializing it like a `U`, then we care about `U` when generating the schema, not `T`. + /// + /// We currently scope this type to helper types defined with `serde_with`: the reason is + /// slightly verbose to explain (see `find_delegated_serde_deser_ty` for the details), but + /// unless `serde_with` is being used, specifically the `#[serde_as(as = "...")]` helper + /// attribute, then this will generally return `None`. + /// + /// If `#[serde_as(as = "...")]` _is_ being used, then `Some` is returned containing a reference + /// to the delegated (de)serialization type. Again, see `find_delegated_serde_deser_ty` for more + /// details about exactly what we look for to figure out if delegation is occurring, and the + /// caveats around our approach. + pub fn delegated_ty(&self) -> Option<&syn::Type> { + self.attrs.delegated_ty.as_ref() + } + + /// Name of the field when deserializing. + /// + /// This may be different than the name of the field itself depending on whether it has been + /// altered with `serde` helper attributes i.e. `#[serde(rename = "...")]`. + /// + /// Additionally, for unnamed fields (tuple structs/variants), this will be the integer index of + /// the field, formatted as a string. + pub fn name(&self) -> &str { + self.name.as_str() + } + + /// Title of the field, if any. + /// + /// The title specifically refers to the headline portion of a doc comment. For example, if a + /// field has the following doc comment: + /// + /// ```text + /// /// My special field. + /// /// + /// /// Here's why it's special: + /// /// ... + /// field: bool, + /// ``` + /// + /// then the title would be `My special field`. If the doc comment only contained `My special + /// field.`, then we would consider the title _empty_. See `description` for more details on + /// detecting titles vs descriptions. + pub fn title(&self) -> Option<&String> { + self.attrs.title.as_ref() + } + + /// Description of the field, if any. + /// + /// The description specifically refers to the body portion of a doc comment, or the headline if + /// only a headline exists.. For example, if a field has the following doc comment: + /// + /// ```text + /// /// My special field. + /// /// + /// /// Here's why it's special: + /// /// ... + /// field: bool, + /// ``` + /// + /// then the title would be everything that comes after `My special field`. If the doc comment + /// only contained `My special field.`, then the description would be `My special field.`, and + /// the title would be empty. In this way, the description will always be some port of a doc + /// comment, depending on the formatting applied. + /// + /// This logic was chosen to mimic how Rust's own `rustdoc` tool works, where it will use the + /// "title" portion as a high-level description for an item, only showing the title and + /// description together when drilling down to the documentation for that specific item. JSON + /// Schema supports both title and description for a schema, and so we expose both. + pub fn description(&self) -> Option<&String> { + self.attrs.description.as_ref() + } + + /// Path to a function to call to generate a default value for the field, if any. + /// + /// This will boil down to something like `std::default::Default::default` or + /// `name_of_in_scope_method_to_call`, where we generate code to actually call that path as a + /// function to generate the default value we include in the schema for this field. + pub fn default_value(&self) -> Option { + self.default_value.clone() + } + + /// Whether or not the field is transparent. + /// + /// In some cases, namely scenarios involving newtype structs or enum tuple variants, it may be + /// counter-intuitive to specify a title/description for a field. For example, having a newtype + /// struct for defining systemd file descriptors requires a single internal integer field. The + /// title/description of the newtype struct itself are sufficient from a documentation + /// standpoint, but the procedural macro doesn't know that, and wants to enforce that we give + /// the "field" -- the unnamed single integer field -- a title/description to ensure our + /// resulting schema is fully specified. + /// + /// Applying the `#[configurable(transparent)]` helper attribute to a field will disable the + /// title/description enforcement logic, allowing these types of newtype structs, or enum tuple + /// variants, to simply document themselves at the container/variant level and avoid needing to + /// document that inner field which itself needs no further title/description. + pub fn transparent(&self) -> bool { + self.attrs.transparent.is_present() + } + + /// Whether or not the field is deprecated. + /// + /// Applying the `#[configurable(deprecated)]` helper attribute will mark this field as + /// deprecated from the perspective of the resulting schema. It does not interact with Rust's + /// standard `#[deprecated]` attribute, neither automatically applying it nor deriving the + /// deprecation status of a field when it is present. + pub fn deprecated(&self) -> bool { + self.attrs.deprecated.is_some() + } + + /// The deprecated message, if one has been set. + pub fn deprecated_message(&self) -> Option<&String> { + self.attrs + .deprecated + .as_ref() + .and_then(|message| match message { + Override::Inherit => None, + Override::Explicit(message) => Some(message), + }) + } + + /// Validation rules specific to the field, if any. + /// + /// Validation rules are applied to the resulting schema for this field on top of any default + /// validation rules defined on the field type/delegated field type itself. + pub fn validation(&self) -> &[Validation] { + &self.attrs.validation + } + + /// Whether or not this field is visible during either serialization or deserialization. + /// + /// This is derived from whether any of the `serde` visibility attributes are applied: `skip`, + /// `skip_serializing, and `skip_deserializing`. Unless the field is skipped entirely, it will + /// be considered visible and part of the schema. + pub fn visible(&self) -> bool { + self.attrs.visible + } + + /// Whether or not to flatten the schema of this field into its container. + /// + /// This is derived from whether the `#[serde(flatten)]` helper attribute is present. When + /// enabled, this will cause the field's schema to be flatten into the container's schema, + /// mirroring how `serde` will lift the fields of the flattened field's type into the container + /// type when (de)serializing. + pub fn flatten(&self) -> bool { + self.attrs.flatten + } + + /// Metadata (custom attributes) for the field, if any. + /// + /// Attributes can take the shape of flags (`#[configurable(metadata(im_a_teapot))]`) or + /// key/value pairs (`#[configurable(metadata(status = "beta"))]`) to allow rich, semantic + /// metadata to be attached directly to fields. + pub fn metadata(&self) -> impl Iterator { + self.attrs + .metadata + .clone() + .into_iter() + .flat_map(|metadata| metadata.attributes()) + } +} + +impl ToTokens for Field<'_> { + fn to_tokens(&self, tokens: &mut TokenStream) { + self.original.to_tokens(tokens) + } +} + +#[derive(Debug, Default, FromAttributes)] +#[darling(default, attributes(configurable))] +struct Attributes { + title: Option, + description: Option, + derived: SpannedValue, + transparent: SpannedValue, + deprecated: Option>, + #[darling(skip)] + visible: bool, + #[darling(skip)] + flatten: bool, + #[darling(multiple)] + metadata: Vec, + #[darling(multiple)] + validation: Vec, + #[darling(skip)] + delegated_ty: Option, +} + +impl Attributes { + fn finalize( + mut self, + field: &serde_ast::Field<'_>, + forwarded_attrs: &[syn::Attribute], + is_virtual_newtype: bool, + is_newtype_wrapper_field: bool, + ) -> darling::Result { + // Derive any of the necessary fields from the `serde` side of things. + self.visible = !field.attrs.skip_deserializing() || !field.attrs.skip_serializing(); + self.flatten = field.attrs.flatten(); + + // We additionally attempt to extract a title/description from the forwarded doc attributes, if they exist. + // Whether we extract both a title and description, or just description, is documented in more detail in + // `try_extract_doc_title_description` itself. + let (doc_title, doc_description) = try_extract_doc_title_description(forwarded_attrs); + self.title = self.title.or(doc_title); + self.description = self.description.or(doc_description); + + // If the field is part of a newtype wrapper -- it has the be the only field, and unnamed, + // like `struct Foo(usize)` -- then we simply mark it as transparent. + // + // We do this because the container -- struct or enum variant -- will itself be required to + // have a description. We never show the description of unnamed fields, anyways, as we defer + // to using the description of the container. Simply marking this field as transparent will + // keep the schema generation happy and avoid having to constantly specify `derived` or + // `transparent` all over the place. + if is_newtype_wrapper_field { + // We additionally check here to see if transparent/derived as already set, as we want + // to throw an error if they are. As we're going to forcefully mark the field as + // transparent, there's no reason to allow setting derived/transparent manually, as it + // only leads to boilerplate and potential confusion. + if self.transparent.is_present() { + return Err(err_field_implicit_transparent(&self.transparent.span())); + } + + if self.derived.is_present() { + return Err(err_field_implicit_transparent(&self.derived.span())); + } + + self.transparent = SpannedValue::new(Flag::present(), Span::call_site()); + } + + // If no description was provided for the field, it is typically an error. There are few situations when this is + // fine/valid, though: + // + // - the field is derived (`#[configurable(derived)]`) + // - the field is transparent (`#[configurable(transparent)]`) + // - the field is not visible (`#[serde(skip)]`, or `skip_serializing` plus `skip_deserializing`) + // - the field is flattened (`#[serde(flatten)]`) + // - the field is part of a virtual newtype + // - the field is part of a newtype wrapper (struct/enum variant with a single unnamed field) + // + // If the field is derived, it means we're taking the description/title from the `Configurable` implementation of + // the field type, which we can only do at runtime so we ignore it here. Similarly, if a field is transparent, + // we're explicitly saying that our container is meant to essentially take on the schema of the field, rather + // than the container being defined by the fields, if that makes sense. Derived and transparent fields are most + // common in newtype structs and newtype variants in enums, where they're a `(T)`, and so the container acts + // much like `T` itself. + // + // If the field is not visible, well, then, we're not inserting it in the schema and so requiring a description + // or title makes no sense. Similarly, if a field is flattened, that field also won't exist in the schema as + // we're lifting up all the fields from the type of the field itself, so again, requiring a description or title + // makes no sense. + // + // If the field is part of a virtual newtype, this means the container has instructed `serde` to + // (de)serialize it as some entirely different type. This means the original field will never show up in a + // schema, because the schema of the thing being (de)serialized is some `T`, not `ContainerType`. Simply put, + // like a field that is flattened or not visible, it makes no sense to require a description or title for fields + // in a virtual newtype. + if self.description.is_none() + && !self.derived.is_present() + && !self.transparent.is_present() + && self.visible + && !self.flatten + && !is_virtual_newtype + { + return Err(err_field_missing_description(&field.original)); + } + + // Try and find the delegated (de)serialization type for this field, if it exists. + self.delegated_ty = find_delegated_serde_deser_ty(forwarded_attrs).map(|virtual_ty| { + // If there's a virtual type in use, we immediately transform it into our delegated + // serialize wrapper, since we know we'll have to do that in a few different places + // during codegen, so it's cleaner to do it here. + let field_ty = field.ty; + parse_quote! { ::vector_config::ser::Delegated<#field_ty, #virtual_ty> } + }); + + Ok(self) + } +} diff --git a/lib/vector-config-macros/src/ast/mod.rs b/lib/vector-config-macros/src/ast/mod.rs new file mode 100644 index 0000000000000..b307827d2772f --- /dev/null +++ b/lib/vector-config-macros/src/ast/mod.rs @@ -0,0 +1,250 @@ +use darling::{ast::NestedMeta, error::Accumulator, util::path_to_string, FromMeta}; +use quote::ToTokens; +use serde_derive_internals::{ast as serde_ast, attr as serde_attr}; + +mod container; +mod field; +mod util; +mod variant; + +pub use container::Container; +pub use field::Field; +use syn::Expr; +pub use variant::Variant; +use vector_config_common::constants; + +const INVALID_VALUE_EXPR: &str = + "got function call-style literal value but could not parse as expression"; + +/// The style of a data container, applying to both enum variants and structs. +/// +/// This mirrors the type by the same name in `serde_derive_internal`. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum Style { + /// Named fields. + Struct, + + /// Multiple unnamed fields. + Tuple, + + /// Single unnamed field. + Newtype, + + /// No fields. + Unit, +} + +impl From for Style { + fn from(style: serde_ast::Style) -> Self { + match style { + serde_ast::Style::Struct => Style::Struct, + serde_ast::Style::Tuple => Style::Tuple, + serde_ast::Style::Newtype => Style::Newtype, + serde_ast::Style::Unit => Style::Unit, + } + } +} + +/// The tagging configuration for an enum. +/// +/// This mirrors the type by the nearly-same name (`TagType`) in `serde_derive_internal`. +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum Tagging { + /// The default. + /// + /// ```json + /// {"variant1": {"key1": "value1", "key2": "value2"}} + /// ``` + External, + + /// `#[serde(tag = "type")]` + /// + /// ```json + /// {"type": "variant1", "key1": "value1", "key2": "value2"} + /// ``` + Internal { tag: String }, + + /// `#[serde(tag = "t", content = "c")]` + /// + /// ```json + /// {"t": "variant1", "c": {"key1": "value1", "key2": "value2"}} + /// ``` + Adjacent { tag: String, content: String }, + + /// `#[serde(untagged)]` + /// + /// ```json + /// {"key1": "value1", "key2": "value2"} + /// ``` + None, +} + +impl Tagging { + /// Generates custom attributes that describe the tagging mode. + /// + /// This is typically added to the metadata for an enum's overall schema to better describe how + /// the various subschemas relate to each other and how they're used on the Rust side, for the + /// purpose of generating usable documentation from the schema. + pub fn as_enum_metadata(&self) -> Vec { + match self { + Self::External => vec![LazyCustomAttribute::kv( + constants::DOCS_META_ENUM_TAGGING, + "external", + )], + Self::Internal { tag } => vec![ + LazyCustomAttribute::kv(constants::DOCS_META_ENUM_TAGGING, "internal"), + LazyCustomAttribute::kv(constants::DOCS_META_ENUM_TAG_FIELD, tag), + ], + Self::Adjacent { tag, content } => vec![ + LazyCustomAttribute::kv(constants::DOCS_META_ENUM_TAGGING, "adjacent"), + LazyCustomAttribute::kv(constants::DOCS_META_ENUM_TAG_FIELD, tag), + LazyCustomAttribute::kv(constants::DOCS_META_ENUM_CONTENT_FIELD, content), + ], + Self::None => vec![LazyCustomAttribute::kv( + constants::DOCS_META_ENUM_TAGGING, + "untagged", + )], + } + } +} + +impl From<&serde_attr::TagType> for Tagging { + fn from(tag: &serde_attr::TagType) -> Self { + match tag { + serde_attr::TagType::External => Tagging::External, + serde_attr::TagType::Internal { tag } => Tagging::Internal { tag: tag.clone() }, + serde_attr::TagType::Adjacent { tag, content } => Tagging::Adjacent { + tag: tag.clone(), + content: content.clone(), + }, + serde_attr::TagType::None => Tagging::None, + } + } +} + +/// The fields of the data container. +/// +/// This mirrors the type by the same name in `serde_derive_internal`. +pub enum Data<'a> { + Enum(Vec>), + Struct(Style, Vec>), +} + +/// A lazy version of `CustomAttribute`. +/// +/// This is used to capture the value at the macro callsite without having to evaluate it, which +/// lets us generate code where, for example, the value of a metadata key/value pair can be +/// evaluated by an expression given in the attribute. +/// +/// This is similar to how `serde` takes an expression for things like `#[serde(default = +/// "exprhere")]`, and so on. +#[derive(Clone, Debug)] +pub enum LazyCustomAttribute { + /// A standalone flag. + Flag(String), + + /// A key/value pair. + KeyValue { + key: String, + value: proc_macro2::TokenStream, + }, +} + +impl LazyCustomAttribute { + pub fn kv(key: K, value: V) -> Self + where + K: std::fmt::Display, + V: ToTokens, + { + Self::KeyValue { + key: key.to_string(), + value: value.to_token_stream(), + } + } +} + +/// Metadata items defined on containers, variants, or fields. +#[derive(Clone, Debug)] +pub struct Metadata { + items: Vec, +} + +impl Metadata { + pub fn attributes(&self) -> impl Iterator { + self.items.clone().into_iter() + } +} + +impl FromMeta for Metadata { + fn from_list(items: &[NestedMeta]) -> darling::Result { + let mut errors = Accumulator::default(); + + // Can't be empty. + if items.is_empty() { + errors.push(darling::Error::too_few_items(1)); + } + + errors = errors.checkpoint()?; + + // Can't either be name/value pairs or single items i.e. flags. + let meta_items = items + .iter() + .filter_map(|nmeta| match nmeta { + NestedMeta::Meta(meta) => match meta { + syn::Meta::Path(path) => Some(LazyCustomAttribute::Flag(path_to_string(path))), + syn::Meta::List(_) => { + errors.push(darling::Error::unexpected_type("list").with_span(nmeta)); + None + } + syn::Meta::NameValue(nv) => match &nv.value { + Expr::Lit(expr) => { + match &expr.lit { + // When dealing with a string literal, we check if it ends in `()`. If so, + // we emit that as-is, leading to doing a function call and using the return + // value of that function as the value for this key/value pair. + // + // Otherwise, we just treat the string literal normally. + syn::Lit::Str(s) => { + if s.value().ends_with("()") { + if let Ok(expr) = s.parse::() { + Some(LazyCustomAttribute::KeyValue { + key: path_to_string(&nv.path), + value: expr.to_token_stream(), + }) + } else { + errors.push( + darling::Error::custom(INVALID_VALUE_EXPR) + .with_span(nmeta), + ); + None + } + } else { + Some(LazyCustomAttribute::KeyValue { + key: path_to_string(&nv.path), + value: s.value().to_token_stream(), + }) + } + } + lit => Some(LazyCustomAttribute::KeyValue { + key: path_to_string(&nv.path), + value: lit.to_token_stream(), + }), + } + } + expr => { + errors + .push(darling::Error::unexpected_expr_type(expr).with_span(nmeta)); + None + } + }, + }, + NestedMeta::Lit(_) => { + errors.push(darling::Error::unexpected_type("literal").with_span(nmeta)); + None + } + }) + .collect::>(); + + errors.finish_with(Metadata { items: meta_items }) + } +} diff --git a/lib/vector-config-macros/src/ast/util.rs b/lib/vector-config-macros/src/ast/util.rs new file mode 100644 index 0000000000000..ddd36c5739448 --- /dev/null +++ b/lib/vector-config-macros/src/ast/util.rs @@ -0,0 +1,281 @@ +use darling::{ast::NestedMeta, error::Accumulator}; +use quote::{quote, ToTokens}; +use serde_derive_internals::{attr as serde_attr, Ctxt}; +use syn::{ + punctuated::Punctuated, spanned::Spanned, token::Comma, Attribute, Expr, ExprLit, ExprPath, + Lit, Meta, MetaNameValue, +}; + +const ERR_FIELD_MISSING_DESCRIPTION: &str = "field must have a description -- i.e. `/// This is a widget...` or `#[configurable(description = \"...\")] -- or derive it from the underlying type of the field by specifying `#[configurable(derived)]`"; +const ERR_FIELD_IMPLICIT_TRANSPARENT: &str = + "field in a newtype wrapper should not be manually marked as `derived`/`transparent`"; + +pub fn try_extract_doc_title_description( + attributes: &[Attribute], +) -> (Option, Option) { + // Scrape all the attributes that have the `doc` path, which will be used for holding doc + // comments that we're interested in utilizing, and extract their value. + let doc_comments = attributes + .iter() + // We only care about `doc` attributes. + .filter(|attribute| attribute.path().is_ident("doc")) + // Extract the value of the attribute if it's in the form of `doc = "..."`. + .filter_map(|attribute| match &attribute.meta { + Meta::NameValue(MetaNameValue { + value: + Expr::Lit(ExprLit { + lit: Lit::Str(s), .. + }), + .. + }) => Some(s.value()), + _ => None, + }) + .collect::>(); + + // If there were no doc comments, then we have no title/description to try and extract. + if doc_comments.is_empty() { + return (None, None); + } + + // We emulate what `cargo doc` does, which is that if you have a doc comment with a bunch of + // text, then an empty line, and then more text, it considers the first chunk the title, and + // the second chunk the description. + // + // If there's no empty line, then we just consider it all the description. + // + // The grouping logic of `group_doc_lines` lets us determine which scenario we're dealing with + // based on the number of grouped lines. + let mut grouped_lines = group_doc_lines(&doc_comments); + match grouped_lines.len() { + // No title or description. + 0 => (None, None), + // Just a single grouped line/paragraph, so we emit that as the description. + 1 => (None, none_if_empty(grouped_lines.remove(0))), + // Two or more grouped lines/paragraphs, so the first one is the title, and the rest are the + // description, which we concatenate together with newlines, since the description at least + // needs to be a single string. + _ => { + let title = grouped_lines.remove(0); + let description = grouped_lines.join("\n\n"); + + (none_if_empty(title), none_if_empty(description)) + } + } +} + +fn group_doc_lines(ungrouped: &[String]) -> Vec { + // When we write a doc comment in Rust, it typically ends up looking something like this: + // + // /// A helper for XYZ. + // /// + // /// This helper works in the following way, and so on and so forth. + // /// + // /// This separate paragraph explains a different, but related, aspect + // /// of the helper. + // + // To humans, this format is natural and we see it and read it as three paragraphs. Once those + // doc comments are processed and we get them in a procedural macro, they look like this, + // though: + // + // #[doc = " A helper for XYZ."] + // #[doc = ""] + // #[doc = " This helper works in the following way, and so on and so forth."] + // #[doc = ""] + // #[doc = " This separate paragraph explains a different, but related, aspect"] + // #[doc = " of the helper."] + // + // What we want to do is actually parse this as three paragraphs, with the individual lines of + // each paragraph merged together as a single string, and extraneous whitespace removed, such + // that we should end up with a vector of strings that looks like: + // + // - "A helper for XYZ." + // - "This helper works in the following way, and so on and so forth." + // - "This separate paragraph explains a different, but related, aspect\n of the helper." + + // TODO: Markdown link reference definitions (LFDs) -- e.g. `[foo]: https://zombohtml5.com` -- + // have to be on their own line, which is a little annoying because ideally we want to remove + // the newlines between lines that simply get line wrapped, such that in the above example. + // While that extra newline towards the end of the third line/paragraph is extraneous, because + // it represents a forced line break which is imposing some measure of stylistic license, we + // _do_ need line breaks to stay in place so that LFDs stay on their own line, otherwise it + // seems like Markdown parsers will treat them as free-form text. + // + // I'm not sure if we'll want to go as far as trying to parse each line specifically as an LFD, + // for the purpose of controlling how we add/remove linebreaks... but it's something we'll + // likely want/need to eventually figure out. + + let mut buffer = String::new(); + let mut grouped = ungrouped.iter().fold(Vec::new(), |mut grouped, line| { + match line.as_str() { + // Full line breaks -- i.e. `#[doc = ""]` -- will be empty strings, which is our + // signal to consume our buffer and emit it as a grouped line/paragraph. + "" => { + if !buffer.is_empty() { + let trimmed = buffer.trim().to_string(); + grouped.push(trimmed); + + buffer.clear(); + } + } + // The line actually has some content, so just append it to our string buffer after + // dropping the leading space, if one exists. + s => { + buffer.push_str(s.strip_prefix(' ').unwrap_or(s)); + buffer.push('\n'); + } + }; + + grouped + }); + + // If we have anything left in the buffer, consume it as a grouped line/paragraph. + if !buffer.is_empty() { + let trimmed = buffer.trim().to_string(); + grouped.push(trimmed); + } + + grouped +} + +fn none_if_empty(s: String) -> Option { + if s.is_empty() { + None + } else { + Some(s) + } +} + +pub fn err_field_missing_description(field: &T) -> darling::Error { + darling::Error::custom(ERR_FIELD_MISSING_DESCRIPTION).with_span(field) +} + +pub fn err_field_implicit_transparent(field: &T) -> darling::Error { + darling::Error::custom(ERR_FIELD_IMPLICIT_TRANSPARENT).with_span(field) +} + +pub fn get_serde_default_value( + source: &S, + default: &serde_attr::Default, +) -> Option { + match default { + serde_attr::Default::None => None, + serde_attr::Default::Default => { + let qualified_path = syn::parse2(quote! { + <#source as ::std::default::Default>::default + }) + .expect("should not fail to parse qualified default path"); + Some(qualified_path) + } + serde_attr::Default::Path(path) => Some(path.clone()), + } +} + +pub fn err_serde_failed(context: Ctxt) -> darling::Error { + context + .check() + .map_err(|errs| darling::Error::multiple(errs.into_iter().map(Into::into).collect())) + .expect_err("serde error context should not be empty") +} + +pub trait DarlingResultIterator { + fn collect_darling_results(self, accumulator: &mut Accumulator) -> Vec; +} + +impl DarlingResultIterator for T +where + T: Iterator>, +{ + fn collect_darling_results(self, accumulator: &mut Accumulator) -> Vec { + self.filter_map(|result| accumulator.handle(result)) + .collect() + } +} + +/// Checks if the path matches `other`. +/// +/// If a valid ident can be constructed from the path, and the ident's value matches `other`, +/// `true` is returned. Otherwise, `false` is returned. +fn path_matches>(path: &syn::Path, other: S) -> bool { + path.get_ident().filter(|i| *i == &other).is_some() +} + +/// Tries to find a specific attribute with a specific name/value pair. +/// +/// Only works with derive macro helper attributes, and not raw name/value attributes such as +/// `#[path = "..."]`. +/// +/// If an attribute with a path matching `attr_name`, and a meta name/value pair with a name +/// matching `name_key` is found, `Some(path)` is returned, representing the value of the name/value pair. +/// +/// If no attribute matches, or if the given name/value pair is not found, `None` is returned. +fn find_name_value_attribute( + attributes: &[syn::Attribute], + attr_name: &str, + name_key: &str, +) -> Option { + attributes + .iter() + // Only take attributes whose name matches `attr_name`. + .filter(|attr| path_matches(attr.path(), attr_name)) + // Derive macro helper attributes will always be in the list form. + .filter_map(|attr| match &attr.meta { + Meta::List(ml) => ml + .parse_args_with(Punctuated::::parse_terminated) + .map(|nested| nested.into_iter()) + .ok(), + _ => None, + }) + .flatten() + // For each nested meta item in the list, find any that are name/value pairs where the + // name matches `name_key`, and return their value. + .find_map(|nm| match nm { + NestedMeta::Meta(meta) => match meta { + Meta::NameValue(nv) if path_matches(&nv.path, name_key) => match nv.value { + Expr::Lit(ExprLit { lit, .. }) => Some(lit), + _ => None, + }, + _ => None, + }, + _ => None, + }) +} + +/// Tries to find a delegated (de)serialization type from attributes. +/// +/// In some cases, the `serde_with` crate, more specifically the `serde_as` attribute macro, may be +/// used to help (de)serialize a field/container with type A via a (de)implementation on type B, in order to +/// provide more ergonomic (de)serialization of values that can represent type A without needing to +/// explicitly match type A when (de)serialized. This is similar to `serde`'s existing support for +/// "remote" types but is taken further with a more generic and extensible approach. +/// +/// This, however, presents an issue because while normally we can handle scenarios like +/// `#[serde(from = "...")]` and its siblings, `serde_as` depends on `#[serde(with = "...")]` and +/// the fact that it simply constructs a path to the (de)serialize methods, rather than always +/// needing to explicitly reference a type. This means that we cannot simply grab the value of the +/// `with` name/value pair blindly, and assume if there's a value that a delegated/remote type is in +/// play... it could be a module path, too. +/// +/// This method looks for two indicators to understand when it should be able to extract the +/// delegated type: +/// +/// - `#[serde(with = "...")]` is present +/// - `#[serde_as(as = "...")]` is present +/// +/// When both of these are true, we can rely on the fact that the value of `with` will be a valid +/// type path, and usable like a virtual newtype, which is where we use the type specified for +/// `try_from`/`from`/`into` for the delegated (de)serialization type of a container itself. +/// +/// If we find both of those attribute name/value pairs, and the value of `with` can be parsed +/// successfully as a type path, `Some(...)` is returned, contained the type. Otherwise, `None` is +/// returned. +pub fn find_delegated_serde_deser_ty(attributes: &[syn::Attribute]) -> Option { + // Make sure `#[serde_as(as = "...")]` is present. + find_name_value_attribute(attributes, "serde_as", "r#as") + // Make sure `#[serde(with = "...")]` is present, and grab its value. + .and_then(|_| find_name_value_attribute(attributes, "serde", "with")) + // Try and parse the value as a type path. + .and_then(|with| match with { + Lit::Str(s) => s.parse::().ok(), + _ => None, + }) +} diff --git a/lib/vector-config-macros/src/ast/variant.rs b/lib/vector-config-macros/src/ast/variant.rs new file mode 100644 index 0000000000000..87a8b53177593 --- /dev/null +++ b/lib/vector-config-macros/src/ast/variant.rs @@ -0,0 +1,231 @@ +use darling::{error::Accumulator, util::Flag, FromAttributes}; +use proc_macro2::{Ident, TokenStream}; +use quote::ToTokens; +use serde_derive_internals::ast as serde_ast; + +use super::{ + util::{try_extract_doc_title_description, DarlingResultIterator}, + Field, LazyCustomAttribute, Metadata, Style, Tagging, +}; + +/// A variant in an enum. +pub struct Variant<'a> { + original: &'a syn::Variant, + name: String, + attrs: Attributes, + fields: Vec>, + style: Style, + tagging: Tagging, +} + +impl<'a> Variant<'a> { + /// Creates a new `Variant<'a>` from the `serde`-derived information about the given variant. + pub fn from_ast( + serde: &serde_ast::Variant<'a>, + tagging: Tagging, + is_virtual_newtype: bool, + ) -> darling::Result> { + let original = serde.original; + let name = serde.attrs.name().deserialize_name().to_string(); + let style = serde.style.into(); + let is_newtype_wrapper_field = style == Style::Newtype; + + let attrs = Attributes::from_attributes(&original.attrs) + .and_then(|attrs| attrs.finalize(serde, &original.attrs))?; + + let mut accumulator = Accumulator::default(); + let fields = serde + .fields + .iter() + .map(|field| Field::from_ast(field, is_virtual_newtype, is_newtype_wrapper_field)) + .collect_darling_results(&mut accumulator); + + let variant = Variant { + original, + name, + attrs, + fields, + style, + tagging, + }; + accumulator.finish_with(variant) + } + + /// Ident of the variant. + pub fn ident(&self) -> &Ident { + &self.original.ident + } + + /// Style of the variant. + /// + /// This comes directly from `serde`, but effectively represents common terminology used outside + /// of `serde` when describing the shape of a data container, such as if a struct is a "tuple + /// struct" or a "newtype wrapper", and so on. + pub fn style(&self) -> Style { + self.style + } + + /// Tagging configuration of the variant. + /// + /// This comes directly from `serde`. For more information on tagging, see [Enum representations][serde_tagging_docs]. + /// + /// [serde_tagging_docs]: https://serde.rs/enum-representations.html + pub fn tagging(&self) -> &Tagging { + &self.tagging + } + + /// Fields of the variant, if any. + pub fn fields(&self) -> &[Field<'_>] { + &self.fields + } + + /// Name of the variant when deserializing. + /// + /// This may be different than the name of the variant itself depending on whether it has been + /// altered with `serde` helper attributes i.e. `#[serde(rename = "...")]`. + pub fn name(&self) -> &str { + self.name.as_str() + } + + /// Title of the variant, if any. + /// + /// The title specifically refers to the headline portion of a doc comment. For example, if a + /// variant has the following doc comment: + /// + /// ```text + /// /// My special variant. + /// /// + /// /// Here's why it's special: + /// /// ... + /// SomeVariant(...), + /// ``` + /// + /// then the title would be `My special variant`. If the doc comment only contained `My special + /// variant.`, then we would consider the title _empty_. See `description` for more details on + /// detecting titles vs descriptions. + pub fn title(&self) -> Option<&String> { + self.attrs.title.as_ref() + } + + /// Description of the variant, if any. + /// + /// The description specifically refers to the body portion of a doc comment, or the headline if + /// only a headline exists.. For example, if a variant has the following doc comment: + /// + /// ```text + /// /// My special variant. + /// /// + /// /// Here's why it's special: + /// /// ... + /// SomeVariant(...), + /// ``` + /// + /// then the title would be everything that comes after `My special variant`. If the doc comment + /// only contained `My special variant.`, then the description would be `My special variant.`, + /// and the title would be empty. In this way, the description will always be some port of a + /// doc comment, depending on the formatting applied. + /// + /// This logic was chosen to mimic how Rust's own `rustdoc` tool works, where it will use the + /// "title" portion as a high-level description for an item, only showing the title and + /// description together when drilling down to the documentation for that specific item. JSON + /// Schema supports both title and description for a schema, and so we expose both. + pub fn description(&self) -> Option<&String> { + self.attrs.description.as_ref() + } + + /// Whether or not the variant is deprecated. + /// + /// Applying the `#[configurable(deprecated)]` helper attribute will mark this variant as + /// deprecated from the perspective of the resulting schema. It does not interact with Rust's + /// standard `#[deprecated]` attribute, neither automatically applying it nor deriving the + /// deprecation status of a variant when it is present. + pub fn deprecated(&self) -> bool { + self.attrs.deprecated.is_present() + } + + /// Whether or not this variant is visible during either serialization or deserialization. + /// + /// This is derived from whether any of the `serde` visibility attributes are applied: `skip`, + /// `skip_serializing`, and `skip_deserializing`. Unless the variant is skipped entirely, it will + /// be considered visible and part of the schema. + pub fn visible(&self) -> bool { + self.attrs.visible + } + + /// Metadata (custom attributes) for the variant, if any. + /// + /// Attributes can take the shape of flags (`#[configurable(metadata(im_a_teapot))]`) or + /// key/value pairs (`#[configurable(metadata(status = "beta"))]`) to allow rich, semantic + /// metadata to be attached directly to variants. + pub fn metadata(&self) -> impl Iterator { + self.attrs + .metadata + .clone() + .into_iter() + .flat_map(|metadata| metadata.attributes()) + } +} + +impl ToTokens for Variant<'_> { + fn to_tokens(&self, tokens: &mut TokenStream) { + self.original.to_tokens(tokens) + } +} + +#[derive(Debug, Default, FromAttributes)] +#[darling(default, attributes(configurable))] +struct Attributes { + title: Option, + description: Option, + deprecated: Flag, + #[darling(skip)] + visible: bool, + #[darling(multiple)] + metadata: Vec, +} + +impl Attributes { + fn finalize( + mut self, + variant: &serde_ast::Variant<'_>, + forwarded_attrs: &[syn::Attribute], + ) -> darling::Result { + // Derive any of the necessary fields from the `serde` side of things. + self.visible = !variant.attrs.skip_deserializing() || !variant.attrs.skip_serializing(); + + // We additionally attempt to extract a title/description from the forwarded doc attributes, if they exist. + // Whether we extract both a title and description, or just description, is documented in more detail in + // `try_extract_doc_title_description` itself. + let (doc_title, doc_description) = try_extract_doc_title_description(forwarded_attrs); + self.title = self.title.or(doc_title); + self.description = self.description.or(doc_description); + + Ok(self) + } +} + +impl PartialEq for Variant<'_> { + fn eq(&self, other: &Self) -> bool { + // Equality checking between variants is only used to drive conformance checks around making + // sure no duplicate variants exist when in untagged mode, so all we care about is what + // distinguishes a variant when it's in its serialized form, which is the shape -- struct vs + // tuple vs unit -- and the fields therein. + + // It's suboptimal to be allocating strings for the field names here but we need the + // deserialized name as `serde` observes it, and this only runs at compile-time. + let self_fields = self + .fields + .iter() + .map(|field| (field.name(), field.ty())) + .collect::>(); + let other_fields = other + .fields + .iter() + .map(|field| (field.name(), field.ty())) + .collect::>(); + + self.style() == other.style() + && self.tagging == other.tagging + && self_fields == other_fields + } +} diff --git a/lib/vector-config-macros/src/attrs.rs b/lib/vector-config-macros/src/attrs.rs new file mode 100644 index 0000000000000..52973b9596892 --- /dev/null +++ b/lib/vector-config-macros/src/attrs.rs @@ -0,0 +1,50 @@ +use proc_macro2::Span; +use syn::{Ident, Path}; + +#[derive(Copy, Clone)] +pub struct AttributeIdent(&'static str); + +impl AttributeIdent { + pub fn as_ident(&self, span: Span) -> Ident { + Ident::new(self.0, span) + } +} + +pub const NO_SER: AttributeIdent = AttributeIdent("no_ser"); +pub const NO_DESER: AttributeIdent = AttributeIdent("no_deser"); +pub const API_COMPONENT: AttributeIdent = AttributeIdent("api_component"); +pub const ENRICHMENT_TABLE_COMPONENT: AttributeIdent = AttributeIdent("enrichment_table_component"); +pub const GLOBAL_OPTION_COMPONENT: AttributeIdent = AttributeIdent("global_option_component"); +pub const PROVIDER_COMPONENT: AttributeIdent = AttributeIdent("provider_component"); +pub const SECRETS_COMPONENT: AttributeIdent = AttributeIdent("secrets_component"); +pub const SINK_COMPONENT: AttributeIdent = AttributeIdent("sink_component"); +pub const SOURCE_COMPONENT: AttributeIdent = AttributeIdent("source_component"); +pub const TRANSFORM_COMPONENT: AttributeIdent = AttributeIdent("transform_component"); + +impl PartialEq for Ident { + fn eq(&self, word: &AttributeIdent) -> bool { + self == word.0 + } +} + +impl PartialEq for &Ident { + fn eq(&self, word: &AttributeIdent) -> bool { + *self == word.0 + } +} + +impl PartialEq for Path { + fn eq(&self, word: &AttributeIdent) -> bool { + self.is_ident(word.0) + } +} + +impl PartialEq for &Path { + fn eq(&self, word: &AttributeIdent) -> bool { + self.is_ident(word.0) + } +} + +pub fn path_matches(path: &Path, haystack: &[AttributeIdent]) -> bool { + haystack.iter().any(|p| path == p) +} diff --git a/lib/vector-config-macros/src/component_name.rs b/lib/vector-config-macros/src/component_name.rs new file mode 100644 index 0000000000000..5faf393249173 --- /dev/null +++ b/lib/vector-config-macros/src/component_name.rs @@ -0,0 +1,190 @@ +use darling::util::path_to_string; +use proc_macro::TokenStream; + +use quote::quote; +use syn::{parse_macro_input, spanned::Spanned, Attribute, DeriveInput, Error, LitStr}; + +use crate::attrs::{self, path_matches}; + +pub fn derive_component_name_impl(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let ident = &input.ident; + + // This derive macro has to do a bunch of heavy lifting here, but it mainly boils down to two + // things: validating that a name is given for the component (and only one name), and spitting + // out a component type-specific error message otherwise. + // + // Firstly, we want to give contextual error messages to users whenever possible, so that means + // that if a user is transitively deriving this macro because they're using + // `#[configurable_component(source)]`, we want to let them know that sources must have a name + // defined. + // + // It's easier to do that in the `configurable_component` macro, but errors in attribute macros + // lead to the item being annotated essentially being excluded from the compiled output... so + // you see the error that the attribute macro emits... and then you see an error anywhere else + // some code is trying to reference that struct or enum or what have you. This leads to a large + // number of errors that are technically related to the problem at hand, but ultimately are all + // solved by fixing the error with the macro usage. + // + // Derive macros function differently, such that the original item is always left alone and only + // new tokens are generated, so we can emit errors without causing more errors, but we've lost + // some of the semantic information about the original usage of `configurable_component` by the + // time we're here, running _this_ macro. + // + // To deal with this, we specifically look for component type-specific attributes that define + // the name, and higher up in `configurable_component`, we use the appropriate attribute for the + // component type at hand. This ends up giving output that follows this pattern: + // + // `#[configurable_component(source)]` -> `#[source_component]` + // `#[configurable_component(source("foo"))]` -> `#[source_component("foo")]` + // + // This allows us to determine the component type originally passed to `configurable_component` + // so that, in the case of the nameless example above, we can generate an error message attached + // to the span for `source`, such as: "sources must specify a name (e.g. `source("name")`)" + // + // Secondly, and finally, we always expect a single one of these helper attributes defining the + // name: no more, no less. Even though `configurable_component` should correctly adhere to that, + // we still need to go through the motions of verifying it here... which may capture either + // someone manually using the derive incorrectly, or an actual bug in our usage via other macros. + let mut errors = Vec::new(); + let mut component_names = input + .attrs + .iter() + .filter_map(|attr| match attr_to_component_name(attr) { + Ok(component_name) => component_name, + Err(e) => { + errors.push(e); + None + } + }) + .collect::>(); + + if !errors.is_empty() { + let mut main_error = errors.remove(0); + for error in errors.drain(..) { + main_error.combine(error); + } + + return main_error.into_compile_error().into(); + } + + // Any component names we have now have been validated, so we just need to check and make sure + // we actually have one, and only one, and spit out the correct errors otherwise. + if component_names.is_empty() { + return Error::new( + ident.span(), + "component must have a name defined (e.g. `#[component_name(\"foobar\")]`)", + ) + .into_compile_error() + .into(); + } + + if component_names.len() > 1 { + return Error::new(ident.span(), "component cannot have multiple names defined") + .into_compile_error() + .into(); + } + + let component_name = component_names.remove(0); + + // We have a single, valid component name, so let's actually spit out our derive. + let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl(); + let derived = quote! { + impl #impl_generics #ident #ty_generics #where_clause { + pub(super) const NAME: &'static str = #component_name; + } + + impl #impl_generics ::vector_config::NamedComponent for #ident #ty_generics #where_clause { + fn get_component_name(&self) -> &'static str { + #component_name + } + } + }; + derived.into() +} + +fn attr_to_component_name(attr: &Attribute) -> Result, Error> { + // First, filter out anything that isn't ours. + if !path_matches( + attr.path(), + &[ + attrs::API_COMPONENT, + attrs::ENRICHMENT_TABLE_COMPONENT, + attrs::GLOBAL_OPTION_COMPONENT, + attrs::PROVIDER_COMPONENT, + attrs::SINK_COMPONENT, + attrs::SOURCE_COMPONENT, + attrs::TRANSFORM_COMPONENT, + attrs::SECRETS_COMPONENT, + ], + ) { + return Ok(None); + } + + // Reconstruct the original attribute path (i.e. `source`) from our marker version of it (i.e. + // `source_component`), so that any error message we emit is contextually relevant. + let path_str = path_to_string(attr.path()); + let component_type_attr = path_str.replace("_component", ""); + let component_type = component_type_attr.replace('_', " "); + + // Make sure the attribute actually has inner tokens. If it doesn't, this means they forgot + // entirely to specify a component name, and we want to give back a meaningful error that looks + // correct when applied in the context of `#[configurable_component(...)]`. + if attr.meta.require_list().is_err() { + return Err(Error::new( + attr.span(), + format!( + "{}s must have a name specified (e.g. `{}(\"my_component\")`)", + component_type, component_type_attr + ), + )); + } + + // Now try and parse the helper attribute as a literal string, which is the only valid form. + // After that, make sure it's actually valid according to our naming rules. + attr.parse_args::() + .map_err(|_| { + Error::new( + attr.span(), + format!( + "expected a string literal for the {} name (i.e. `{}(\"...\")`)", + component_type, component_type_attr + ), + ) + }) + .and_then(|component_name| { + let component_name_str = component_name.value(); + check_component_name_validity(&component_name_str) + .map_err(|e| Error::new(component_name.span(), e)) + .map(|()| Some(component_name_str)) + }) +} + +fn check_component_name_validity(component_name: &str) -> Result<(), String> { + // In a nutshell, component names must contain only lowercase ASCII alphabetic characters, or + // numbers, or underscores. + + if component_name.is_empty() { + return Err("component name must be non-empty".to_string()); + } + + // We only support ASCII names, so get that out of the way. + if !component_name.is_ascii() { + return Err("component names may only contain ASCII characters".to_string()); + } + + // Now, we blindly try and convert the given component name into the correct format, and + // if the result doesn't match the input, then we know the input is invalid... but then we also + // have an example string to show in the error to explain what the user needs to specify. + let component_name_converted = component_name + .chars() + .flat_map(|c| c.to_lowercase()) + .map(|c| if !c.is_ascii_alphanumeric() { '_' } else { c }) + .collect::(); + + if component_name == component_name_converted { + Ok(()) + } else { + Err(format!("component names must be lowercase, and contain only letters, numbers, and underscores (e.g. \"{}\")", component_name_converted)) + } +} diff --git a/lib/vector-config-macros/src/configurable.rs b/lib/vector-config-macros/src/configurable.rs new file mode 100644 index 0000000000000..fa27431a6c4c2 --- /dev/null +++ b/lib/vector-config-macros/src/configurable.rs @@ -0,0 +1,1069 @@ +use proc_macro::TokenStream; +use proc_macro2::Span; +use quote::{quote, quote_spanned}; +use syn::{ + parse_macro_input, parse_quote, spanned::Spanned, token::PathSep, DeriveInput, ExprPath, Ident, + PathArguments, Type, +}; +use vector_config_common::validation::Validation; + +use crate::ast::{Container, Data, Field, LazyCustomAttribute, Style, Tagging, Variant}; + +pub fn derive_configurable_impl(input: TokenStream) -> TokenStream { + // Parse our input token stream as a derive input, and process the container, and the + // container's children, that the macro is applied to. + let input = parse_macro_input!(input as DeriveInput); + let container = match Container::from_derive_input(&input) { + Ok(container) => container, + Err(e) => { + // This should only occur when used on a union, as that's the only time `serde` will get + // angry enough to not parse the derive AST at all, so we just return the context errors + // we have, which will say as much, because also, if it gave us `None`, it should have + // registered an error in the context as well. + return e.write_errors().into(); + } + }; + + let mut generics = container.generics().clone(); + + // We need to construct an updated where clause that properly constrains any generic types which are used as fields + // on the container. We _only_ care about fields that are pure generic types, because anything that's a concrete + // type -- Foo -- will be checked when the schema is generated, but we want generic types to be able to be + // resolved for compatibility at the point of usage, not the point of definition. + let generic_field_types = container.generic_field_types(); + if !generic_field_types.is_empty() { + let where_clause = generics.make_where_clause(); + for typ in generic_field_types { + let ty = &typ.ident; + let predicate = parse_quote! { #ty: ::vector_config::Configurable + ::serde::Serialize + ::vector_config::ToValue }; + + where_clause.predicates.push(predicate); + } + } + + let (impl_generics, ty_generics, where_clause) = generics.split_for_impl(); + + // Now we can go ahead and actually generate the method bodies for our `Configurable` impl, + // which are varied based on whether we have a struct or enum container. + let metadata_fn = build_metadata_fn(&container); + let generate_schema_fn = match container.virtual_newtype() { + Some(virtual_ty) => build_virtual_newtype_schema_fn(virtual_ty), + None => match container.data() { + Data::Struct(style, fields) => { + build_struct_generate_schema_fn(&container, style, fields) + } + Data::Enum(variants) => build_enum_generate_schema_fn(&container, variants), + }, + }; + + let to_value_fn = build_to_value_fn(&container); + + let name = container.ident(); + let ref_name = container.name(); + let configurable_impl = quote! { + const _: () = { + #[automatically_derived] + #[allow(unused_qualifications)] + impl #impl_generics ::vector_config::Configurable for #name #ty_generics #where_clause { + fn referenceable_name() -> Option<&'static str> { + // If the type name we get back from `std::any::type_name` doesn't start with + // the module path, use a concatenated version. + // + // We do this because `std::any::type_name` states it may or may not return a + // fully-qualified type path, as that behavior is not stabilized, so we want to + // avoid using non-fully-qualified paths since we might encounter collisions + // with schema reference names otherwise. + // + // The reason we don't _only_ use the manually-concatenated version is because + // it's a little difficult to get it to emit a clean name, as we can't emit + // pretty-printed tokens directly -- i.e. just emit the tokens that represent + // `MyStructName` -- and would need to format the string to do so, + // which would mean we wouldn't be able to return `&'static str`. + // + // We'll likely relax that in the future, given the inconsequential nature of + // allocations during configuration schema generation... but this works well for + // now and at least will be consistent within the same Rust version. + + let self_type_name = ::std::any::type_name::(); + if !self_type_name.starts_with(std::module_path!()) { + Some(std::concat!(std::module_path!(), "::", #ref_name)) + } else { + Some(self_type_name) + } + } + + #metadata_fn + + #generate_schema_fn + } + + impl #impl_generics ::vector_config::ToValue for #name #ty_generics #where_clause { + #to_value_fn + } + }; + }; + + configurable_impl.into() +} + +fn build_metadata_fn(container: &Container<'_>) -> proc_macro2::TokenStream { + let meta_ident = Ident::new("metadata", Span::call_site()); + let container_metadata = generate_container_metadata(&meta_ident, container); + + quote! { + fn metadata() -> ::vector_config::Metadata { + #container_metadata + #meta_ident + } + } +} + +fn build_to_value_fn(_container: &Container<'_>) -> proc_macro2::TokenStream { + quote! { + fn to_value(&self) -> ::vector_config::serde_json::Value { + ::vector_config::serde_json::to_value(self) + .expect("Could not convert value to JSON") + } + } +} + +fn build_virtual_newtype_schema_fn(virtual_ty: Type) -> proc_macro2::TokenStream { + quote! { + fn generate_schema(schema_gen: &::std::cell::RefCell<::vector_config::schema::SchemaGenerator>) -> std::result::Result<::vector_config::schema::SchemaObject, ::vector_config::GenerateError> { + ::vector_config::schema::get_or_generate_schema( + &<#virtual_ty as ::vector_config::Configurable>::as_configurable_ref(), + schema_gen, + None, + ) + } + } +} + +fn build_enum_generate_schema_fn( + container: &Container, + variants: &[Variant<'_>], +) -> proc_macro2::TokenStream { + // First, figure out if we have a potentially "ambiguous" enum schema. This will influence the + // code we generate, which will, at runtime, attempt to figure out if we need to emit an `anyOf` + // schema, rather than a `oneOf` schema, to handle validation of enums where variants overlap in + // ambiguous ways. + let is_potentially_ambiguous = is_enum_schema_potentially_ambiguous(container, variants); + + // Now we'll generate the code for building the schema for each individual variant. This will be + // slightly influenced by whether or not we think the enum schema is potentially ambiguous. If + // so, we generate some extra code that populates the necessary data to make the call at runtime. + let mapped_variants = variants + .iter() + // Don't map this variant if it's marked to be skipped for both serialization and deserialization. + .filter(|variant| variant.visible()) + .map(|variant| generate_enum_variant_schema(variant, is_potentially_ambiguous)); + + // Generate a small little code block that will try and vary the schema approach between `anyOf` + // and `oneOf` if we determine that the data in the discriminant map indicates ambiguous variant + // schemas. + // + // If we never generate any entries in the discriminant map, then this will end up just calling + // the `oneOf` method. + let generate_block = quote! { + if ::vector_config::schema::has_ambiguous_discriminants(&discriminant_map) { + Ok(::vector_config::schema::generate_any_of_schema(&subschemas)) + } else { + Ok(::vector_config::schema::generate_one_of_schema(&subschemas)) + } + }; + + quote! { + fn generate_schema(schema_gen: &::std::cell::RefCell<::vector_config::schema::SchemaGenerator>) -> std::result::Result<::vector_config::schema::SchemaObject, ::vector_config::GenerateError> { + let mut subschemas = ::std::vec::Vec::new(); + let mut discriminant_map = ::std::collections::HashMap::new(); + + #(#mapped_variants)* + + #generate_block + } + } +} + +fn is_enum_schema_potentially_ambiguous(container: &Container, variants: &[Variant]) -> bool { + let tagging = container + .tagging() + .expect("enums must always have a tagging mode"); + match tagging { + Tagging::None => { + // If we have fewer than two variants, then there's no ambiguity. + if variants.len() < 2 { + return false; + } + + // All variants must be struct variants (i.e. named fields) otherwise we cannot + // reasonably determine if they're ambiguous or not. + variants.iter().all(|variant| { + let fields = variant.fields(); + !fields.is_empty() && fields.iter().all(|field| field.ident().is_some()) + }) + } + + // All other tagging modes have a discriminant, and so can never be ambiguous. + _ => false, + } +} + +fn build_struct_generate_schema_fn( + container: &Container<'_>, + style: &Style, + fields: &[Field<'_>], +) -> proc_macro2::TokenStream { + match style { + Style::Struct => build_named_struct_generate_schema_fn(container, fields), + Style::Tuple => build_tuple_struct_generate_schema_fn(fields), + Style::Newtype => build_newtype_struct_generate_schema_fn(fields), + Style::Unit => panic!("unit structs should be rejected during AST parsing"), + } +} + +fn generate_struct_field(field: &Field<'_>) -> proc_macro2::TokenStream { + let field_metadata_ref = Ident::new("field_metadata", Span::call_site()); + let field_metadata = generate_field_metadata(&field_metadata_ref, field); + let field_schema_ty = get_field_schema_ty(field); + + let spanned_generate_schema = quote_spanned! {field.span()=> + ::vector_config::schema::get_or_generate_schema( + &<#field_schema_ty as ::vector_config::Configurable>::as_configurable_ref(), + schema_gen, + Some(#field_metadata_ref), + )? + }; + + quote! { + #field_metadata + + let mut subschema = #spanned_generate_schema; + } +} + +fn generate_named_struct_field( + container: &Container<'_>, + field: &Field<'_>, +) -> proc_macro2::TokenStream { + let field_name = field + .ident() + .expect("named struct fields must always have an ident"); + let field_schema_ty = get_field_schema_ty(field); + let field_already_contained = format!( + "schema properties already contained entry for `{}`, this should not occur", + field_name + ); + let field_key = field.name(); + + let field_schema = generate_struct_field(field); + + // If the field is flattened, we store it into a different list of flattened subschemas vs adding it directly as a + // field via `properties`/`required`. + // + // If any flattened subschemas are present when we generate the struct schema overall, we do the merging of those at + // the end. + let integrate_field = if field.flatten() { + quote! { + flattened_subschemas.push(subschema); + } + } else { + // If there is no default value specified for either the field itself, or the container the + // field is a part of, then we consider it required unless the field type itself is inherently + // optional, such as being `Option`. + let spanned_is_optional = quote_spanned! {field.span()=> + <#field_schema_ty as ::vector_config::Configurable>::is_optional() + }; + let maybe_field_required = + if container.default_value().is_none() && field.default_value().is_none() { + Some(quote! { + if !#spanned_is_optional { + assert!(required.insert(#field_key.to_string()), #field_already_contained); + } + }) + } else { + None + }; + + quote! { + if let Some(_) = properties.insert(#field_key.to_string(), subschema) { + panic!(#field_already_contained); + } + + #maybe_field_required + } + }; + + quote! { + { + #field_schema + #integrate_field + } + } +} + +fn generate_tuple_struct_field(field: &Field<'_>) -> proc_macro2::TokenStream { + let field_schema = generate_struct_field(field); + + quote! { + { + #field_schema + subschemas.push(subschema); + } + } +} + +fn build_named_struct_generate_schema_fn( + container: &Container<'_>, + fields: &[Field<'_>], +) -> proc_macro2::TokenStream { + let mapped_fields = fields + .iter() + // Don't map this field if it's marked to be skipped for both serialization and deserialization. + .filter(|field| field.visible()) + .map(|field| generate_named_struct_field(container, field)); + + quote! { + fn generate_schema(schema_gen: &::std::cell::RefCell<::vector_config::schema::SchemaGenerator>) -> std::result::Result<::vector_config::schema::SchemaObject, ::vector_config::GenerateError> { + let mut properties = ::vector_config::indexmap::IndexMap::new(); + let mut required = ::std::collections::BTreeSet::new(); + let mut flattened_subschemas = ::std::vec::Vec::new(); + + let metadata = ::metadata(); + #(#mapped_fields)* + + let had_unflatted_properties = !properties.is_empty(); + + let additional_properties = None; + let mut schema = ::vector_config::schema::generate_struct_schema( + properties, + required, + additional_properties, + ); + + // If we have any flattened subschemas, deal with them now. + if !flattened_subschemas.is_empty() { + // A niche case here is if all fields were flattened, which would leave our main + // schema as simply validating that the value is an object, and _nothing_ else. + // + // That's kind of useless, and ends up as noise in the schema, so if we didn't have + // any of our own unflattened properties, then steal the first flattened subschema + // and swap our main schema for it before flattening things overall. + if !had_unflatted_properties { + schema = flattened_subschemas.remove(0); + } + + ::vector_config::schema::convert_to_flattened_schema(&mut schema, flattened_subschemas); + } + + Ok(schema) + } + } +} + +fn build_tuple_struct_generate_schema_fn(fields: &[Field<'_>]) -> proc_macro2::TokenStream { + let mapped_fields = fields + .iter() + // Don't map this field if it's marked to be skipped for both serialization and deserialization. + .filter(|field| field.visible()) + .map(generate_tuple_struct_field); + + quote! { + fn generate_schema(schema_gen: &::std::cell::RefCell<::vector_config::schema::SchemaGenerator>) -> std::result::Result<::vector_config::schema::SchemaObject, ::vector_config::GenerateError> { + let mut subschemas = ::std::collections::Vec::new(); + + #(#mapped_fields)* + + Ok(::vector_config::schema::generate_tuple_schema(&subschemas)) + } + } +} + +fn build_newtype_struct_generate_schema_fn(fields: &[Field<'_>]) -> proc_macro2::TokenStream { + // Map the fields normally, but we should end up with a single field at the end. + let mut mapped_fields = fields + .iter() + // Don't map this field if it's marked to be skipped for both serialization and deserialization. + .filter(|field| field.visible()) + .map(generate_struct_field) + .collect::>(); + + if mapped_fields.len() != 1 { + panic!("newtype structs should never have more than one field"); + } + + let field_schema = mapped_fields.remove(0); + + quote! { + fn generate_schema(schema_gen: &::std::cell::RefCell<::vector_config::schema::SchemaGenerator>) -> std::result::Result<::vector_config::schema::SchemaObject, ::vector_config::GenerateError> { + #field_schema + + Ok(subschema) + } + } +} + +fn generate_container_metadata( + meta_ident: &Ident, + container: &Container<'_>, +) -> proc_macro2::TokenStream { + let maybe_title = get_metadata_title(meta_ident, container.title()); + let maybe_description = get_metadata_description(meta_ident, container.description()); + let maybe_default_value = get_metadata_default_value(meta_ident, container.default_value()); + let maybe_deprecated = get_metadata_deprecated(meta_ident, container.deprecated()); + let maybe_custom_attributes = get_metadata_custom_attributes(meta_ident, container.metadata()); + + // We add a special metadata that informs consumers of the schema what the "tagging mode" of + // this enum is. This is important because when we're using the schema to generate + // documentation, it can be hard to generate something that is as succinct as how you might + // otherwise describe the configuration behavior using natural language. Additionally, we + // typically allow deserialization such that fields are overlapped, and if variants had, for + // example, 3 shared fields between all variants, and each variant only had 1 unique field, we + // wouldn't want to relist all the shared fields per variant.... we just want to be able to + // describe which variant has to be used for its unique (variant specific) fields to be + // relevant. + let enum_metadata_attrs = container + .tagging() + .map(|tagging| tagging.as_enum_metadata()); + let enum_metadata = + get_metadata_custom_attributes(meta_ident, enum_metadata_attrs.into_iter().flatten()); + + quote! { + let mut #meta_ident = ::vector_config::Metadata::default(); + #maybe_title + #maybe_description + #maybe_default_value + #maybe_deprecated + #maybe_custom_attributes + #enum_metadata + } +} + +fn generate_field_metadata(meta_ident: &Ident, field: &Field<'_>) -> proc_macro2::TokenStream { + let field_ty = field.ty(); + let field_schema_ty = get_field_schema_ty(field); + + let maybe_title = get_metadata_title(meta_ident, field.title()); + let maybe_description = get_metadata_description(meta_ident, field.description()); + let maybe_clear_title_description = field + .title() + .or_else(|| field.description()) + .is_some() + .then(|| { + quote! { + // Fields with a title/description of their own cannot merge with the title/description + // of the field type itself, as this will generally lead to confusing output, so we + // explicitly clear the title/description first if we're about to set our own + // title/description. + #meta_ident.clear_title(); + #meta_ident.clear_description(); + } + }); + let maybe_default_value = if field_ty != field_schema_ty { + get_metadata_default_value_delegated(meta_ident, field_schema_ty, field.default_value()) + } else { + get_metadata_default_value(meta_ident, field.default_value()) + }; + let maybe_deprecated = get_metadata_deprecated(meta_ident, field.deprecated()); + let maybe_deprecated_message = + get_metadata_deprecated_message(meta_ident, field.deprecated_message()); + let maybe_transparent = get_metadata_transparent(meta_ident, field.transparent()); + let maybe_validation = get_metadata_validation(meta_ident, field.validation()); + let maybe_custom_attributes = get_metadata_custom_attributes(meta_ident, field.metadata()); + + quote! { + let mut #meta_ident = ::vector_config::Metadata::default(); + #maybe_clear_title_description + #maybe_title + #maybe_description + #maybe_default_value + #maybe_deprecated + #maybe_deprecated_message + #maybe_transparent + #maybe_validation + #maybe_custom_attributes + } +} + +fn generate_variant_metadata( + meta_ident: &Ident, + variant: &Variant<'_>, +) -> proc_macro2::TokenStream { + let maybe_title = get_metadata_title(meta_ident, variant.title()); + let maybe_description = get_metadata_description(meta_ident, variant.description()); + let maybe_deprecated = get_metadata_deprecated(meta_ident, variant.deprecated()); + + // We have to mark variants as transparent, so that if we're dealing with an untagged enum, we + // don't panic if their description is intentionally left out. + let maybe_transparent = + get_metadata_transparent(meta_ident, variant.tagging() == &Tagging::None); + let maybe_custom_attributes = get_metadata_custom_attributes(meta_ident, variant.metadata()); + + // We add a special metadata key (`logical_name`) that informs consumers of the schema what the + // variant name is for this variant's subschema. While the doc comments being coerced into title + // and/or description are typically good enough, sometimes we need a more mechanical mapping of + // the variant's name since shoving it into the title would mean doc comments with redundant + // information. + // + // You can think of this as an enum-specific additional title. + let logical_name_attrs = vec![LazyCustomAttribute::kv( + "logical_name", + variant.ident().to_string(), + )]; + let variant_logical_name = + get_metadata_custom_attributes(meta_ident, logical_name_attrs.into_iter()); + + // We specifically use `()` as the type here because we need to generate the metadata for this + // variant, but there's no unique concrete type for a variant, only the type of the enum + // container it exists within. We also don't want to use the metadata of the enum container, as + // it might have values that would conflict with the metadata of this specific variant. + quote! { + let mut #meta_ident = ::vector_config::Metadata::default(); + #maybe_title + #maybe_description + #maybe_deprecated + #maybe_transparent + #maybe_custom_attributes + #variant_logical_name + } +} + +fn generate_variant_tag_metadata( + meta_ident: &Ident, + variant: &Variant<'_>, +) -> proc_macro2::TokenStream { + // For enum variant tags, all we care about is shuttling the title/description of the variant + // itself along with the tag field to make downstream consumption and processing easier. + let maybe_title = get_metadata_title(meta_ident, variant.title()); + let maybe_description = get_metadata_description(meta_ident, variant.description()); + + // We specifically use `()` as the type here because we need to generate the metadata for this + // variant, but there's no unique concrete type for a variant, only the type of the enum + // container it exists within. We also don't want to use the metadata of the enum container, as + // it might have values that would conflict with the metadata of this specific variant. + quote! { + let mut #meta_ident = ::vector_config::Metadata::default(); + #maybe_title + #maybe_description + } +} + +fn get_metadata_title( + meta_ident: &Ident, + title: Option<&String>, +) -> Option { + title.map(|title| { + quote! { + #meta_ident.set_title(#title); + } + }) +} + +fn get_metadata_description( + meta_ident: &Ident, + description: Option<&String>, +) -> Option { + description.map(|description| { + quote! { + #meta_ident.set_description(#description); + } + }) +} + +fn get_metadata_default_value( + meta_ident: &Ident, + default_value: Option, +) -> Option { + default_value.map(|value| { + quote! { + #meta_ident.set_default_value(#value()); + } + }) +} + +fn get_metadata_default_value_delegated( + meta_ident: &Ident, + default_ty: &syn::Type, + default_value: Option, +) -> Option { + default_value.map(|value| { + let default_ty = get_ty_for_expr_pos(default_ty); + + quote! { + #meta_ident.set_default_value(#default_ty::from(#value())); + } + }) +} + +fn get_metadata_deprecated( + meta_ident: &Ident, + deprecated: bool, +) -> Option { + deprecated.then(|| { + quote! { + #meta_ident.set_deprecated(); + } + }) +} + +fn get_metadata_deprecated_message( + meta_ident: &Ident, + message: Option<&String>, +) -> Option { + message.map(|message| { + quote! { + #meta_ident.set_deprecated_message(#message); + } + }) +} + +fn get_metadata_transparent( + meta_ident: &Ident, + transparent: bool, +) -> Option { + transparent.then(|| { + quote! { + #meta_ident.set_transparent(); + } + }) +} + +fn get_metadata_validation( + meta_ident: &Ident, + validation: &[Validation], +) -> proc_macro2::TokenStream { + let mapped_validation = validation + .iter() + .map(|v| quote! { #meta_ident.add_validation(#v); }); + + quote! { + #(#mapped_validation)* + } +} + +fn get_metadata_custom_attributes( + meta_ident: &Ident, + custom_attributes: impl Iterator, +) -> proc_macro2::TokenStream { + let mapped_custom_attributes = custom_attributes + .map(|attr| match attr { + LazyCustomAttribute::Flag(key) => quote! { + #meta_ident.add_custom_attribute(::vector_config::attributes::CustomAttribute::flag(#key)); + }, + LazyCustomAttribute::KeyValue { key, value } => quote! { + #meta_ident.add_custom_attribute(::vector_config::attributes::CustomAttribute::kv( + #key, #value + )); + }, + }); + + quote! { + #(#mapped_custom_attributes)* + } +} + +fn get_field_schema_ty<'a>(field: &'a Field<'a>) -> &'a syn::Type { + // If there's a delegated type being used for field (de)serialization, that's ultimately the type + // we use to declare the schema, because we have to generate the schema for whatever type is + // actually being (de)serialized, not the final type that the intermediate value ends up getting + // converted to. + // + // Otherwise, we just use the actual field type. + field.delegated_ty().unwrap_or_else(|| field.ty()) +} + +fn generate_named_enum_field(field: &Field<'_>) -> proc_macro2::TokenStream { + let field_name = field.ident().expect("field should be named"); + let field_ty = field.ty(); + let field_already_contained = format!( + "schema properties already contained entry for `{}`, this should not occur", + field_name + ); + let field_key = field.name().to_string(); + + let field_schema = generate_struct_field(field); + + // Fields that have no default value are inherently required. Unlike fields on a normal + // struct, we can't derive a default value for an individual field because `serde` + // doesn't allow even specifying a default value for an enum overall, only structs. + let spanned_is_optional = quote_spanned! {field.span()=> + <#field_ty as ::vector_config::Configurable>::is_optional() + }; + let maybe_field_required = if field.default_value().is_none() { + Some(quote! { + if !#spanned_is_optional { + if !required.insert(#field_key.to_string()) { + panic!(#field_already_contained); + } + } + }) + } else { + None + }; + + quote! { + { + #field_schema + + if let Some(_) = properties.insert(#field_key.to_string(), subschema) { + panic!(#field_already_contained); + } + + #maybe_field_required + } + } +} + +fn generate_enum_struct_named_variant_schema( + variant: &Variant<'_>, + post_fields: Option, + is_potentially_ambiguous: bool, +) -> proc_macro2::TokenStream { + let mapped_fields = variant.fields().iter().map(generate_named_enum_field); + + // If this variant is part of a potentially ambiguous enum schema, we add this variant's + // required fields to the discriminant map, keyed off of the variant name. + let maybe_fill_discriminant_map = is_potentially_ambiguous.then(|| { + let variant_name = variant.ident().to_string(); + quote! { + discriminant_map.insert(#variant_name, required.clone()); + } + }); + + quote! { + { + let mut properties = ::vector_config::indexmap::IndexMap::new(); + let mut required = ::std::collections::BTreeSet::new(); + + #(#mapped_fields)* + + #post_fields + + #maybe_fill_discriminant_map + + ::vector_config::schema::generate_struct_schema( + properties, + required, + None + ) + } + } +} + +fn generate_enum_newtype_struct_variant_schema(variant: &Variant<'_>) -> proc_macro2::TokenStream { + // When we only have a single unnamed field, we basically just treat it as a + // passthrough, and we generate the schema for that field directly, without any + // metadata or anything, since things like defaults can't travel from the enum + // container to a specific variant anyways. + let field = variant.fields().first().expect("must exist"); + let field_schema = generate_struct_field(field); + + quote! { + { + #field_schema + subschema + } + } +} + +fn generate_enum_variant_tag_schema(variant: &Variant<'_>) -> proc_macro2::TokenStream { + let variant_name = variant.name(); + let apply_variant_tag_metadata = generate_enum_variant_tag_apply_metadata(variant); + + quote! { + { + let mut tag_subschema = ::vector_config::schema::generate_const_string_schema(#variant_name.to_string()); + #apply_variant_tag_metadata + tag_subschema + } + } +} + +fn generate_enum_variant_schema( + variant: &Variant<'_>, + is_potentially_ambiguous: bool, +) -> proc_macro2::TokenStream { + // For the sake of all examples below, we'll use JSON syntax to represent the following enum + // variants: + // + // enum ExampleEnum { + // Struct { some_field: bool }, + // Unnamed(bool), + // Unit, + // } + let variant_name = variant.name(); + let variant_schema = match variant.tagging() { + // The variant is represented "externally" by wrapping the contents of the variant as an + // object pointed to by a property whose name is the name of the variant. + // + // This is when the rendered output looks like the following: + // + // # Struct form. + // { "field_using_enum": { "VariantName": { "some_field": false } } } + // + // # Struct form with unnamed field. + // { "field_using_enum": { "VariantName": false } } + // + // # Unit form. + // { "field_using_enum": "VariantName" } + Tagging::External => { + let (wrapped, variant_schema) = match variant.style() { + Style::Struct => ( + true, + generate_enum_struct_named_variant_schema(variant, None, false), + ), + Style::Tuple => panic!("tuple variants should be rejected during AST parsing"), + Style::Newtype => (true, generate_enum_newtype_struct_variant_schema(variant)), + Style::Unit => (false, generate_enum_variant_tag_schema(variant)), + }; + + // In external mode, we don't wrap the schema for unit variants, because they're + // interpreted directly as the value of the field using the enum. + // + // TODO: we can maybe reuse the existing struct schema gen stuff here, but we'd need + // a way to force being required + customized metadata + if wrapped { + generate_single_field_struct_schema(variant_name, variant_schema) + } else { + variant_schema + } + } + // The variant is represented "internally" by adding a new property to the contents of the + // variant whose name is the value of `tag` and must match the name of the variant. + // + // This is when the rendered output looks like the following: + // + // # Struct form. + // { "field_using_enum": { "": "VariantName", "some_field": false } } + // + // # Struct form with unnamed field is not valid here. See comments below. + // + // # Unit form. + // { "field_using_enum": { "": "VariantName" } } + Tagging::Internal { tag } => match variant.style() { + Style::Struct => { + let tag_already_contained = format!("enum tag `{}` already contained as a field in variant; tag cannot overlap with any fields in any variant", tag); + + // Just generate the tag field directly and pass it along to be included in the + // struct schema. + let tag_schema = generate_enum_variant_tag_schema(variant); + let tag_field = quote! { + { + if let Some(_) = properties.insert(#tag.to_string(), #tag_schema) { + panic!(#tag_already_contained); + } + + if !required.insert(#tag.to_string()) { + panic!(#tag_already_contained); + } + } + }; + generate_enum_struct_named_variant_schema(variant, Some(tag_field), false) + } + Style::Tuple => panic!("tuple variants should be rejected during AST parsing"), + Style::Newtype => { + // We have to delegate viability to `serde`, essentially, because using internal tagging for a newtype + // variant is only possible when the inner field is a struct or map, and we can't access that type of + // information here, which is why `serde` does it at compile-time. + + // As such, we generate the schema for the single field, like we would normally do for a newtype + // variant, and then we follow the struct flattening logic where we layer on our tag field schema on the + // schema of the wrapped field... and since it has to be a struct or map to be valid for `serde`, that + // means it will also be an object schema in both cases, which means our flattening logic will be + // correct if the caller is doing The Right Thing (tm). + let newtype_schema = generate_enum_newtype_struct_variant_schema(variant); + let tag_schema = generate_enum_variant_tag_schema(variant); + + quote! { + let tag_schema = ::vector_config::schema::generate_internal_tagged_variant_schema(#tag.to_string(), #tag_schema); + let mut flattened_subschemas = ::std::vec::Vec::new(); + flattened_subschemas.push(tag_schema); + + let mut newtype_schema = #newtype_schema; + ::vector_config::schema::convert_to_flattened_schema(&mut newtype_schema, flattened_subschemas); + + newtype_schema + } + } + Style::Unit => { + // Internally-tagged unit variants are basically just a play on externally-tagged + // struct variants. + let variant_schema = generate_enum_variant_tag_schema(variant); + generate_single_field_struct_schema(tag, variant_schema) + } + }, + // The variant is represented "adjacent" to the content, such that the variant name is in a + // field whose name is the value of `tag` and the content of the variant is in a field whose + // name is the value of `content`. + // + // This is when the rendered output looks like the following: + // + // # Struct form. + // { "field_using_enum": { "": "VariantName", "": { "some_field": false } } } + // + // # Struct form with unnamed field. + // { "field_using_enum": { "": "VariantName", "": false } } + // + // # Unit form. + // { "field_using_enum": { "": "VariantName" } } + Tagging::Adjacent { tag, content } => { + // For struct-type variants, just generate their schema as normal, and we'll wrap it up + // in a new object. For unit variants, adjacent tagging is identical to internal + // tagging, so we handle that one by hand. + let tag_schema = generate_enum_variant_tag_schema(variant); + let maybe_content_schema = match variant.style() { + Style::Struct => Some(generate_enum_struct_named_variant_schema( + variant, None, false, + )), + Style::Tuple => panic!("tuple variants should be rejected during AST parsing"), + Style::Newtype => Some(generate_enum_newtype_struct_variant_schema(variant)), + Style::Unit => None, + } + .map(|content_schema| { + quote! { + wrapper_properties.insert(#content.to_string(), #content_schema); + wrapper_required.insert(#content.to_string()); + } + }); + + quote! { + let mut wrapper_properties = ::vector_config::indexmap::IndexMap::new(); + let mut wrapper_required = ::std::collections::BTreeSet::new(); + + wrapper_properties.insert(#tag.to_string(), #tag_schema); + wrapper_required.insert(#tag.to_string()); + + #maybe_content_schema + + ::vector_config::schema::generate_struct_schema( + wrapper_properties, + wrapper_required, + None + ) + } + } + Tagging::None => { + // This is simply when it's a free-for-all and `serde` tries to deserialize the data as + // each variant until it finds one that can deserialize the data correctly. Essentially, + // we encode the variant solely based on its contents, which for a unit variant, would + // be nothing: a literal `null` in JSON. + // + // Accordingly, there is a higher-level check before we get here that yells at the user + // that using `#[serde(untagged)]` with an enum where some variants that have + // duplicate contents, compared to their siblings, is not allowed because doing so + // provides unstable deserialization. + // + // This is when the rendered output looks like the following: + // + // # Struct form. + // { "field_using_enum": { "some_field": false } } + // + // # Struct form with unnamed field. + // { "field_using_enum": false } + // + // # Unit form. + // { "field_using_enum": null } + // + // TODO: actually implement the aforementioned higher-level check + + match variant.style() { + Style::Struct => generate_enum_struct_named_variant_schema( + variant, + None, + is_potentially_ambiguous, + ), + Style::Tuple => panic!("tuple variants should be rejected during AST parsing"), + Style::Newtype => generate_enum_newtype_struct_variant_schema(variant), + Style::Unit => quote! { ::vector_config::schema::generate_null_schema() }, + } + } + }; + + generate_enum_variant_subschema(variant, variant_schema) +} + +fn generate_single_field_struct_schema( + property_name: &str, + property_schema: proc_macro2::TokenStream, +) -> proc_macro2::TokenStream { + quote! { + { + let mut wrapper_properties = ::vector_config::indexmap::IndexMap::new(); + let mut wrapper_required = ::std::collections::BTreeSet::new(); + + wrapper_properties.insert(#property_name.to_string(), #property_schema); + wrapper_required.insert(#property_name.to_string()); + + ::vector_config::schema::generate_struct_schema( + wrapper_properties, + wrapper_required, + None + ) + } + } +} + +fn generate_enum_variant_apply_metadata(variant: &Variant<'_>) -> proc_macro2::TokenStream { + let variant_metadata_ref = Ident::new("variant_metadata", Span::call_site()); + let variant_metadata = generate_variant_metadata(&variant_metadata_ref, variant); + + quote! { + #variant_metadata + ::vector_config::schema::apply_base_metadata(&mut subschema, #variant_metadata_ref); + } +} + +fn generate_enum_variant_tag_apply_metadata(variant: &Variant<'_>) -> proc_macro2::TokenStream { + let variant_tag_metadata_ref = Ident::new("variant_tag_metadata", Span::call_site()); + let variant_tag_metadata = generate_variant_tag_metadata(&variant_tag_metadata_ref, variant); + + quote! { + #variant_tag_metadata + ::vector_config::schema::apply_base_metadata(&mut tag_subschema, #variant_tag_metadata_ref); + } +} + +fn generate_enum_variant_subschema( + variant: &Variant<'_>, + variant_schema: proc_macro2::TokenStream, +) -> proc_macro2::TokenStream { + let apply_variant_metadata = generate_enum_variant_apply_metadata(variant); + + quote! { + { + let mut subschema = { #variant_schema }; + #apply_variant_metadata + + subschemas.push(subschema); + } + } +} + +/// Gets a type token suitable for use in expression position. +/// +/// Normally, we refer to types with generic type parameters using their condensed form: `T<...>`. +/// Sometimes, however, we must refer to them with their disambiguated form: `T::<...>`. This is due +/// to a limitation in syntax parsing between types in statement versus expression position. +/// +/// Statement position would be somewhere like declaring a field on a struct, where using angle +/// brackets has no ambiguous meaning, as you can't compare two items as part of declaring a struct +/// field. Conversely, expression position implies anywhere we could normally provide an expression, +/// and expressions can certainly contain comparisons. As such, we need to use the disambiguated +/// form in expression position. +/// +/// While most commonly used for passing generic type parameters to functions/methods themselves, +/// this is also known as the "turbofish" syntax. +fn get_ty_for_expr_pos(ty: &syn::Type) -> syn::Type { + match ty { + syn::Type::Path(tp) => { + let mut new_tp = tp.clone(); + for segment in new_tp.path.segments.iter_mut() { + if let PathArguments::AngleBracketed(ab) = &mut segment.arguments { + ab.colon2_token = Some(PathSep::default()); + } + } + + syn::Type::Path(new_tp) + } + _ => ty.clone(), + } +} diff --git a/lib/vector-config-macros/src/configurable_component.rs b/lib/vector-config-macros/src/configurable_component.rs new file mode 100644 index 0000000000000..bc4244ba50380 --- /dev/null +++ b/lib/vector-config-macros/src/configurable_component.rs @@ -0,0 +1,367 @@ +use darling::{ast::NestedMeta, Error, FromMeta}; +use proc_macro::TokenStream; +use proc_macro2::{Ident, Span}; +use quote::{quote, quote_spanned}; +use syn::{ + parse_macro_input, parse_quote, parse_quote_spanned, punctuated::Punctuated, spanned::Spanned, + token::Comma, DeriveInput, Lit, LitStr, Meta, MetaList, Path, +}; +use vector_config_common::{ + constants::ComponentType, human_friendly::generate_human_friendly_string, +}; + +use crate::attrs; + +#[derive(Clone, Debug)] +struct TypedComponent { + span: Span, + component_type: ComponentType, + component_name: Option, + description: Option, +} + +impl TypedComponent { + /// Creates a new `TypedComponent` from the given path. + /// + /// If the path does not matches a known component type, `None` is returned. Otherwise, + /// `Some(...)` is returned with a valid `TypedComponent`. + fn from_path(path: &Path) -> Option { + ComponentType::try_from(path) + .ok() + .map(|component_type| Self { + span: path.span(), + component_type, + component_name: None, + description: None, + }) + } + + /// Creates a new `TypedComponent` from the given meta list. + /// + /// If the meta list does not have a path that matches a known component type, `None` is + /// returned. Otherwise, `Some(...)` is returned with a valid `TypedComponent`. + fn from_meta_list(ml: &MetaList) -> Option { + let mut items = ml + .parse_args_with(Punctuated::::parse_terminated) + .unwrap_or_default() + .into_iter(); + ComponentType::try_from(&ml.path) + .ok() + .map(|component_type| { + let component_name = match items.next() { + Some(NestedMeta::Lit(Lit::Str(component_name))) => Some(component_name), + _ => None, + }; + let description = match items.next() { + Some(NestedMeta::Lit(Lit::Str(description))) => Some(description), + _ => None, + }; + Self { + span: ml.span(), + component_type, + component_name, + description, + } + }) + } + + /// Gets the component name, if one was specified. + fn get_component_name(&self) -> Option { + self.component_name.as_ref().map(|s| s.value()) + } + + /// Creates the component description registration code based on the original derive input. + /// + /// If this typed component does not have a name, `None` will be returned, as only named + /// components can be described. + fn get_component_desc_registration( + &self, + input: &DeriveInput, + ) -> Option { + self.component_name.as_ref().map(|component_name| { + let config_ty = &input.ident; + let desc_ty: syn::Type = match self.component_type { + ComponentType::Api => { + parse_quote! { ::vector_config::component::ApiDescription } + } + ComponentType::EnrichmentTable => { + parse_quote! { ::vector_config::component::EnrichmentTableDescription } + } + ComponentType::GlobalOption => { + parse_quote! { ::vector_config::component::GlobalOptionDescription } + } + ComponentType::Provider => { + parse_quote! { ::vector_config::component::ProviderDescription } + } + ComponentType::Secrets => { + parse_quote! { ::vector_config::component::SecretsDescription } + } + ComponentType::Sink => parse_quote! { ::vector_config::component::SinkDescription }, + ComponentType::Source => { + parse_quote! { ::vector_config::component::SourceDescription } + } + ComponentType::Transform => { + parse_quote! { ::vector_config::component::TransformDescription } + } + }; + + // Derive the human-friendly name from the component name. + let label = generate_human_friendly_string(&component_name.value()); + + // Derive the logical name from the config type, with the trailing "Config" dropped. + let logical_name = config_ty.to_string(); + let logical_name = logical_name.strip_suffix("Config").unwrap_or(&logical_name); + + // TODO: Make this an `expect` once all component types have been converted. + let description = self + .description + .as_ref() + .map(LitStr::value) + .unwrap_or_else(|| "This component is missing a description.".into()); + + quote! { + ::inventory::submit! { + #desc_ty::new::<#config_ty>( + #component_name, + #label, + #logical_name, + #description, + ) + } + } + }) + } + + /// Creates the component name registration code. + fn get_component_name_registration(&self) -> proc_macro2::TokenStream { + let helper_attr = get_named_component_helper_ident(self.component_type); + match self.component_name.as_ref() { + None => quote_spanned! {self.span=> + #[derive(::vector_config::NamedComponent)] + #[#helper_attr] + }, + Some(component_name) => quote_spanned! {self.span=> + #[derive(::vector_config::NamedComponent)] + #[#helper_attr(#component_name)] + }, + } + } +} + +#[derive(Debug)] +struct Options { + /// Component type details, if specified. + /// + /// While the macro `#[configurable_component]` sort of belies an implication that any item + /// being annotated is a component, we make a distinction here in terms of what can be a + /// component in a Vector topology, versus simply what is allowed as a configurable "component" + /// within a Vector configuration. + typed_component: Option, + + /// Whether to disable the automatic derive for `serde::Serialize`. + no_ser: bool, + + /// Whether to disable the automatic derive for `serde::Deserialize`. + no_deser: bool, +} + +impl FromMeta for Options { + fn from_list(items: &[NestedMeta]) -> darling::Result { + let mut typed_component = None; + let mut no_ser = false; + let mut no_deser = false; + + let mut errors = Error::accumulator(); + + for nm in items { + match nm { + // Disable automatically deriving `serde::Serialize`. + NestedMeta::Meta(Meta::Path(p)) if p == attrs::NO_SER => { + if no_ser { + errors.push(Error::duplicate_field_path(p)); + } else { + no_ser = true; + } + } + + // Disable automatically deriving `serde::Deserialize`. + NestedMeta::Meta(Meta::Path(p)) if p == attrs::NO_DESER => { + if no_deser { + errors.push(Error::duplicate_field_path(p)); + } else { + no_deser = true; + } + } + + // Marked as a typed component that requires a name. + NestedMeta::Meta(Meta::List(ml)) if ComponentType::is_valid_type(&ml.path) => { + if typed_component.is_some() { + errors.push( + Error::custom("already marked as a typed component").with_span(ml), + ); + } else { + let result = TypedComponent::from_meta_list(ml); + if result.is_none() { + return Err(Error::custom("meta list matched named component type, but failed to parse into TypedComponent").with_span(&ml)); + } + + typed_component = result; + } + } + + // Marked as a typed component that requires a name, but it was not specified. + // + // When marked as a typed component, but no name is specified, we still want to + // generate our normal derive output, as we let the `NamedComponent` derive handle + // emitting an error to tell the user that the component type requires a name, + // + // We don't emit those errors here because errors in attribute macros will cause a + // cascading set of errors that are too noisy. + NestedMeta::Meta(Meta::Path(p)) if ComponentType::is_valid_type(p) => { + if typed_component.is_some() { + errors.push( + Error::custom("already marked as a typed component").with_span(p), + ); + } else { + let result = TypedComponent::from_path(p); + if result.is_none() { + return Err(Error::custom("path matched component type, but failed to parse into TypedComponent").with_span(p)); + } + + typed_component = result; + } + } + + NestedMeta::Meta(m) => { + let error = "expected one of: `enrichment_table(\"...\")`, `provider(\"...\")`, `source(\"...\")`, `transform(\"...\")`, `secrets(\"...\")`, `sink(\"...\")`, `no_ser`, or `no_deser`"; + errors.push(Error::custom(error).with_span(m)); + } + + NestedMeta::Lit(lit) => errors.push(Error::unexpected_lit_type(lit)), + } + } + + errors.finish().map(|()| Self { + typed_component, + no_ser, + no_deser, + }) + } +} + +impl Options { + fn typed_component(&self) -> Option { + self.typed_component.clone() + } + + fn skip_derive_ser(&self) -> bool { + self.no_ser + } + + fn skip_derive_deser(&self) -> bool { + self.no_deser + } +} + +pub fn configurable_component_impl(args: TokenStream, item: TokenStream) -> TokenStream { + let args: Vec = + parse_macro_input!(args with Punctuated::::parse_terminated) + .into_iter() + .collect(); + let input = parse_macro_input!(item as DeriveInput); + + let options = match Options::from_list(&args) { + Ok(v) => v, + Err(e) => { + return TokenStream::from(e.write_errors()); + } + }; + + // If the component is typed (see `TypedComponent`/`ComponentType`), we do a few additional + // things: + // - we add a metadata attribute to indicate the component type + // - we potentially add an attribute so the component's configuration type becomes "named", + // which drives the component config trait impl (i.e. `SourceConfig`) and will eventually + // drive the value that `serde` uses to deserialize the given component variant in the Big + // Enum model. this only happens if the component is actually named, and only sources are + // named at the moment. + // - we automatically generate the call to register the component config type via `inventory` + // which powers the `vector generate` subcommand by maintaining a name -> config type map + let component_type = options.typed_component().map(|tc| { + let component_type = tc.component_type.as_str(); + quote! { + #[configurable(metadata(docs::component_type = #component_type))] + } + }); + + let maybe_component_name = options.typed_component().map(|tc| { + let maybe_component_name_registration = tc.get_component_name_registration(); + let maybe_component_name_metadata = tc + .get_component_name() + .map(|name| quote! { #[configurable(metadata(docs::component_name = #name))] }); + + quote! { + #maybe_component_name_metadata + #maybe_component_name_registration + } + }); + + let maybe_component_desc = options + .typed_component() + .map(|tc| tc.get_component_desc_registration(&input)); + + // Generate and apply all of the necessary derives. + let mut derives = Punctuated::::new(); + derives.push(parse_quote_spanned! {input.ident.span()=> + ::vector_config::Configurable + }); + + if !options.skip_derive_ser() { + derives.push(parse_quote_spanned! {input.ident.span()=> + ::serde::Serialize + }); + } + + if !options.skip_derive_deser() { + derives.push(parse_quote_spanned! {input.ident.span()=> + ::serde::Deserialize + }); + } + + // Final assembly. + let derived = quote! { + #[derive(#derives)] + #component_type + #maybe_component_name + #input + #maybe_component_desc + }; + + derived.into() +} + +/// Gets the ident of the component type-specific helper attribute for the `NamedComponent` derive. +/// +/// When we emit code for a configurable item that has been marked as a typed component, we +/// optionally emit the code to generate an implementation of `NamedComponent` if that component +/// is supposed to be named. +/// +/// This function returns the appropriate ident for the helper attribute specific to the +/// component, as we must pass the component type being named -- source vs transform, etc -- +/// down to the derive for `NamedComponent`. This allows it to emit error messages that _look_ +/// like they're coming from `configurable_component`, even though they're coming from the +/// derive for `NamedComponent`. +fn get_named_component_helper_ident(component_type: ComponentType) -> Ident { + let attr = match component_type { + ComponentType::Api => attrs::API_COMPONENT, + ComponentType::EnrichmentTable => attrs::ENRICHMENT_TABLE_COMPONENT, + ComponentType::GlobalOption => attrs::GLOBAL_OPTION_COMPONENT, + ComponentType::Provider => attrs::PROVIDER_COMPONENT, + ComponentType::Secrets => attrs::SECRETS_COMPONENT, + ComponentType::Sink => attrs::SINK_COMPONENT, + ComponentType::Source => attrs::SOURCE_COMPONENT, + ComponentType::Transform => attrs::TRANSFORM_COMPONENT, + }; + + attr.as_ident(Span::call_site()) +} diff --git a/lib/vector-config-macros/src/lib.rs b/lib/vector-config-macros/src/lib.rs new file mode 100644 index 0000000000000..cfb10e09c258b --- /dev/null +++ b/lib/vector-config-macros/src/lib.rs @@ -0,0 +1,112 @@ +#![deny(warnings)] + +use proc_macro::TokenStream; + +mod ast; +mod attrs; +mod component_name; +mod configurable; +mod configurable_component; + +/// Designates a type as being part of a Vector configuration. +/// +/// This will automatically derive the [`Configurable`][vector-config::Configurable] trait for the given struct/enum, as +/// well as ensuring that serialization/deserialization (via `serde`) is derived. +/// +/// ## Basics +/// +/// In its most basic form, this attribute macro can be used to simply derive the aforementioned traits, making it using +/// in any other type also deriving `Configurable`: +/// +/// ```no_run +/// use vector_config::configurable_component; +/// use serde; +/// +/// /// Batching configurations. +/// #[configurable_component] +/// #[derive(Clone, Debug)] +/// pub struct BatchSettings { +/// // ... +/// } +/// ``` +/// +/// ## Component-specific modifiers +/// +/// Additionally, callers can specify the component type, when being used directly on the top-level configuration object +/// for a component by specifying the component type (`enrichment_table`, `provider`, `sink`, +/// `source`, or `transform`) and the name of the component: +/// +/// ```ignore +/// use vector_config::configurable_component; +/// use serde; +/// +/// /// Configuration for the `kafka` source. +/// #[configurable_component(source("kafka"))] +/// #[derive(Clone, Debug)] +/// pub struct KafkaSourceConfig { +/// // ... +/// } +/// ``` +/// +/// This adds special metadata to the generated schema for that type, which indicates that it +/// represents the top-level configuration object as a component of the given type. Additionally, +/// relevant traits and annotations will be added to register the component (using the given name) +/// within Vector, for the purposes of example configuration generation, and so on. +/// +/// ## Opting out of automatic derives +/// +/// This macro will also derive the `Deserialize` and `Serialize` traits from `serde` automatically, as a way to clean +/// up the derives of a type which is already using `#[configurable_component]`. However, some types employ custom +/// (de)serialization implementations and do not need a standard derivation of those traits. In those cases, callers can +/// mark the type as not needing automatic derivations in a piecemeal fashion with the `no_ser` and/or `no_deser` modifiers: +/// +/// ```no_run +/// use vector_config::configurable_component; +/// +/// /// Helper type with custom deserialization logic. +/// #[configurable_component(no_deser)] +/// # #[derive(::serde::Deserialize)] +/// pub struct HelperTypeWithCustomDeser { +/// // This type brings its own implementation of `Deserialize` so we simply avoid bringing it in +/// // via `#[configurable_component]` but `Serialize` is still being automatically derived for us. +/// } +/// +/// /// Helper type with entirely custom (de)serialization logic. +/// #[configurable_component(no_deser, no_ser)] +/// # #[derive(::serde::Deserialize, ::serde::Serialize)] +/// pub struct HelperTypeWithCustomDeserAndSer { +/// // This type brings its own implementation of `Deserialize` _and_ `Serialize` so we've avoided +/// // having them automatically derived via `#[configurable_component]`. +/// } +/// ``` +#[proc_macro_attribute] +pub fn configurable_component(attrs: TokenStream, item: TokenStream) -> TokenStream { + configurable_component::configurable_component_impl(attrs, item) +} + +/// Generates an implementation of the `Configurable` trait for the given container. +/// +/// In general, `#[configurable_component]` should be preferred as it ensures the other necessary derives/trait +/// implementations are provided, and offers other features related to describing specific configuration types, etc. +#[proc_macro_derive(Configurable, attributes(configurable))] +pub fn derive_configurable(input: TokenStream) -> TokenStream { + configurable::derive_configurable_impl(input) +} + +/// Generates an implementation of the `NamedComponent` trait for the given container. +#[proc_macro_derive( + NamedComponent, + attributes( + api_component, + enrichment_table_component, + global_option_component, + provider_component, + secrets_component, + sink_component, + source_component, + transform_component + ) +)] +pub fn derive_component_name(input: TokenStream) -> TokenStream { + component_name::derive_component_name_impl(input) +} diff --git a/lib/vector-config/Cargo.toml b/lib/vector-config/Cargo.toml new file mode 100644 index 0000000000000..79aebb0eb6795 --- /dev/null +++ b/lib/vector-config/Cargo.toml @@ -0,0 +1,35 @@ +[package] +name = "vector-config" +version = "0.1.0" +authors = ["Vector Contributors "] +edition = "2021" +publish = false +license = "MPL-2.0" + +[[test]] +name = "integration" +path = "tests/integration/lib.rs" + +[dependencies] +chrono.workspace = true +chrono-tz.workspace = true +encoding_rs = { version = "0.8", default-features = false, features = ["alloc", "serde"] } +indexmap.workspace = true +inventory = { version = "0.3" } +no-proxy = { version = "0.3.5", default-features = false, features = ["serialize"] } +num-traits = { version = "0.2.19", default-features = false } +serde.workspace = true +serde_json.workspace = true +serde_with = { version = "3.12.0", default-features = false, features = ["std"] } +snafu.workspace = true +toml.workspace = true +tracing = { version = "0.1.34", default-features = false } +url = { version = "2.5.4", default-features = false, features = ["serde"] } +http = { version = "0.2.9", default-features = false } +vrl.workspace = true +vector-config-common = { path = "../vector-config-common" } +vector-config-macros = { path = "../vector-config-macros" } + +[dev-dependencies] +assert-json-diff = { version = "2", default-features = false } +serde_with = { version = "3.12.0", default-features = false, features = ["std", "macros"] } diff --git a/lib/vrl/core/LICENSE b/lib/vector-config/LICENSE similarity index 100% rename from lib/vrl/core/LICENSE rename to lib/vector-config/LICENSE diff --git a/lib/vector-config/src/component/description.rs b/lib/vector-config/src/component/description.rs new file mode 100644 index 0000000000000..1fd03c6ec767b --- /dev/null +++ b/lib/vector-config/src/component/description.rs @@ -0,0 +1,129 @@ +use std::{cell::RefCell, marker::PhantomData}; + +use snafu::Snafu; +use toml::Value; +use vector_config_common::{attributes::CustomAttribute, constants}; + +use super::{ComponentMarker, GenerateConfig}; +use crate::schema::{SchemaGenerator, SchemaObject}; +use crate::{schema, Configurable, ConfigurableRef, GenerateError, Metadata}; + +#[derive(Debug, Snafu, Clone, PartialEq, Eq)] +pub enum ExampleError { + #[snafu(display("component '{}' does not exist", component_name))] + DoesNotExist { component_name: String }, +} + +/// Description of a component. +pub struct ComponentDescription { + component_name: &'static str, + description: &'static str, + label: &'static str, + logical_name: &'static str, + example_value: fn() -> Value, + config: ConfigurableRef, + _component_type: PhantomData, +} + +impl ComponentDescription +where + T: ComponentMarker + Sized + 'static, + inventory::iter>: + std::iter::IntoIterator>, +{ + /// Creates a new `ComponentDescription`. + /// + /// This creates a component description for a component identified both by the given component + /// type `T` and the component name. As such, if `T` is `SourceComponent`, and the name is + /// `stdin`, you would say that the component is a "source called `stdin`". + /// + /// The type parameter `C` must be the component's configuration type that implements + /// `Configurable` and `GenerateConfig`. + pub const fn new( + component_name: &'static str, + label: &'static str, + logical_name: &'static str, + description: &'static str, + ) -> Self { + ComponentDescription { + component_name, + description, + label, + logical_name, + example_value: C::generate_config, + config: ConfigurableRef::new::(), + _component_type: PhantomData, + } + } + + /// Generates an example configuration for the component with the given component name. + /// + /// ## Errors + /// + /// If no component, identified by `T` and the given name, is registered, or if there is an + /// error generating the example configuration, an error variant will be returned. + pub fn example(component_name: &str) -> Result { + inventory::iter::> + .into_iter() + .find(|t| t.component_name == component_name) + .ok_or_else(|| ExampleError::DoesNotExist { + component_name: component_name.to_owned(), + }) + .map(|t| (t.example_value)()) + } + + /// Gets a sorted list of all registered components of the given component type. + pub fn types() -> Vec<&'static str> { + let mut types = Vec::new(); + for definition in inventory::iter::> { + types.push(definition.component_name); + } + types.sort_unstable(); + types + } + + /// Generate a schema object covering all the descriptions of this type. + pub fn generate_schemas(gen: &RefCell) -> Result { + let mut descriptions: Vec<_> = inventory::iter::.into_iter().collect(); + descriptions.sort_unstable_by_key(|desc| desc.component_name); + let subschemas: Vec = descriptions + .into_iter() + .map(|description| description.generate_schema(gen)) + .collect::>()?; + Ok(schema::generate_one_of_schema(&subschemas)) + } + + /// Generate a schema object for this description. + fn generate_schema( + &self, + gen: &RefCell, + ) -> Result { + let mut tag_subschema = + schema::generate_const_string_schema(self.component_name.to_string()); + let variant_tag_metadata = Metadata::with_description(self.description); + schema::apply_base_metadata(&mut tag_subschema, variant_tag_metadata); + + let tag_schema = + schema::generate_internal_tagged_variant_schema("type".to_string(), tag_subschema); + let flattened_subschemas = vec![tag_schema]; + + let mut field_metadata = Metadata::default(); + field_metadata.set_transparent(); + let mut subschema = + schema::get_or_generate_schema(&self.config, gen, Some(field_metadata))?; + + schema::convert_to_flattened_schema(&mut subschema, flattened_subschemas); + + let mut variant_metadata = Metadata::default(); + variant_metadata.set_description(self.description); + variant_metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_HUMAN_NAME, + self.label, + )); + variant_metadata + .add_custom_attribute(CustomAttribute::kv("logical_name", self.logical_name)); + schema::apply_base_metadata(&mut subschema, variant_metadata); + + Ok(subschema) + } +} diff --git a/lib/vector-config/src/component/generate.rs b/lib/vector-config/src/component/generate.rs new file mode 100644 index 0000000000000..c89421d58f04c --- /dev/null +++ b/lib/vector-config/src/component/generate.rs @@ -0,0 +1,15 @@ +/// A component that can generate a default configuration for itself. +pub trait GenerateConfig { + fn generate_config() -> toml::Value; +} + +#[macro_export] +macro_rules! impl_generate_config_from_default { + ($type:ty) => { + impl $crate::component::GenerateConfig for $type { + fn generate_config() -> toml::value::Value { + toml::value::Value::try_from(&Self::default()).unwrap() + } + } + }; +} diff --git a/lib/vector-config/src/component/marker.rs b/lib/vector-config/src/component/marker.rs new file mode 100644 index 0000000000000..0c900c05a1773 --- /dev/null +++ b/lib/vector-config/src/component/marker.rs @@ -0,0 +1,47 @@ +/// An API component. +pub struct ApiComponent; +/// An enrichment table component. +pub struct EnrichmentTableComponent; + +// A global option component. +pub struct GlobalOptionComponent; + +/// A provider component. +pub struct ProviderComponent; + +/// A secrets component. +pub struct SecretsComponent; + +/// A sink component. +pub struct SinkComponent; + +/// A source component. +pub struct SourceComponent; + +// A transform component. +pub struct TransformComponent; + +// Marker trait representing a component. +pub trait ComponentMarker: sealed::Sealed {} + +impl ComponentMarker for ApiComponent {} +impl ComponentMarker for EnrichmentTableComponent {} +impl ComponentMarker for GlobalOptionComponent {} +impl ComponentMarker for ProviderComponent {} +impl ComponentMarker for SecretsComponent {} +impl ComponentMarker for SinkComponent {} +impl ComponentMarker for SourceComponent {} +impl ComponentMarker for TransformComponent {} + +mod sealed { + pub trait Sealed {} + + impl Sealed for super::ApiComponent {} + impl Sealed for super::EnrichmentTableComponent {} + impl Sealed for super::GlobalOptionComponent {} + impl Sealed for super::ProviderComponent {} + impl Sealed for super::SecretsComponent {} + impl Sealed for super::SinkComponent {} + impl Sealed for super::SourceComponent {} + impl Sealed for super::TransformComponent {} +} diff --git a/lib/vector-config/src/component/mod.rs b/lib/vector-config/src/component/mod.rs new file mode 100644 index 0000000000000..e5b28f922ae7f --- /dev/null +++ b/lib/vector-config/src/component/mod.rs @@ -0,0 +1,30 @@ +mod description; +mod generate; +mod marker; + +pub use self::description::{ComponentDescription, ExampleError}; +pub use self::generate::GenerateConfig; +pub use self::marker::{ + ApiComponent, ComponentMarker, EnrichmentTableComponent, GlobalOptionComponent, + ProviderComponent, SecretsComponent, SinkComponent, SourceComponent, TransformComponent, +}; + +// Create some type aliases for the component marker/description types, and collect (register, +// essentially) any submissions for each respective component marker. +pub type ApiDescription = ComponentDescription; +pub type SourceDescription = ComponentDescription; +pub type TransformDescription = ComponentDescription; +pub type SecretsDescription = ComponentDescription; +pub type SinkDescription = ComponentDescription; +pub type EnrichmentTableDescription = ComponentDescription; +pub type ProviderDescription = ComponentDescription; +pub type GlobalOptionDescription = ComponentDescription; + +inventory::collect!(ApiDescription); +inventory::collect!(SourceDescription); +inventory::collect!(TransformDescription); +inventory::collect!(SecretsDescription); +inventory::collect!(SinkDescription); +inventory::collect!(EnrichmentTableDescription); +inventory::collect!(ProviderDescription); +inventory::collect!(GlobalOptionDescription); diff --git a/lib/vector-config/src/configurable.rs b/lib/vector-config/src/configurable.rs new file mode 100644 index 0000000000000..9abd5060850c4 --- /dev/null +++ b/lib/vector-config/src/configurable.rs @@ -0,0 +1,140 @@ +#![deny(missing_docs)] + +use std::cell::RefCell; + +use serde_json::Value; + +use crate::{ + schema::{SchemaGenerator, SchemaObject}, + GenerateError, Metadata, +}; + +/// A type that can be represented in a Vector configuration. +/// +/// In Vector, we want to be able to generate a schema for our configuration such that we can have a Rust-agnostic +/// definition of exactly what is configurable, what values are allowed, what bounds exist, and so on and so forth. +/// +/// `Configurable` provides the machinery to allow describing and encoding the shape of a type, recursively, so that by +/// instrumenting all transitive types of the configuration, the schema can be discovered by generating the schema from +/// some root type. +pub trait Configurable { + /// Gets the referenceable name of this value, if any. + /// + /// When specified, this implies the value is both complex and standardized, and should be + /// reused within any generated schema it is present in. + fn referenceable_name() -> Option<&'static str> + where + Self: Sized, + { + None + } + + /// Whether or not this value is optional. + /// + /// This is specifically used to determine when a field is inherently optional, such as a field + /// that is a true map like `HashMap`. This doesn't apply to objects (i.e. structs) + /// because structs are implicitly non-optional: they have a fixed shape and size, and so on. + /// + /// Maps, by definition, are inherently free-form, and thus inherently optional. Thus, this + /// method should likely not be overridden except for implementing `Configurable` for map + /// types. If you're using it for something else, you are expected to know what you're doing. + fn is_optional() -> bool + where + Self: Sized, + { + false + } + + /// Gets the metadata for this value. + fn metadata() -> Metadata + where + Self: Sized, + { + Metadata::default() + } + + /// Validates the given metadata against this type. + /// + /// This allows for validating specific aspects of the given metadata, such as validation + /// bounds, and so on, to ensure they are valid for the given type. In some cases, such as with + /// numeric types, there is a limited amount of validation that can occur within the + /// `Configurable` derive macro, and additional validation must happen at runtime when the + /// `Configurable` trait is being used, which this method allows for. + fn validate_metadata(_metadata: &Metadata) -> Result<(), GenerateError> + where + Self: Sized, + { + Ok(()) + } + + /// Generates the schema for this value. + /// + /// # Errors + /// + /// If an error occurs while generating the schema, an error variant will be returned describing + /// the issue. + fn generate_schema(gen: &RefCell) -> Result + where + Self: Sized; + + /// Create a new configurable reference table. + fn as_configurable_ref() -> ConfigurableRef + where + Self: Sized + 'static, + { + ConfigurableRef::new::() + } +} + +/// A type that can be converted directly to a `serde_json::Value`. This is used when translating +/// the default value in a `Metadata` into a schema object. +pub trait ToValue { + /// Convert this value into a `serde_json::Value`. Must not fail. + fn to_value(&self) -> Value; +} + +/// A pseudo-reference to a type that can be represented in a Vector configuration. This is +/// composed of references to all the class trait functions. +pub struct ConfigurableRef { + // TODO: Turn this into a plain value once this is resolved: + // https://github.com/rust-lang/rust/issues/63084 + type_name: fn() -> &'static str, + // TODO: Turn this into a plain value once const trait functions are implemented + // Ref: https://github.com/rust-lang/rfcs/pull/911 + referenceable_name: fn() -> Option<&'static str>, + make_metadata: fn() -> Metadata, + validate_metadata: fn(&Metadata) -> Result<(), GenerateError>, + generate_schema: fn(&RefCell) -> Result, +} + +impl ConfigurableRef { + /// Create a new configurable reference table. + pub const fn new() -> Self { + Self { + type_name: std::any::type_name::, + referenceable_name: T::referenceable_name, + make_metadata: T::metadata, + validate_metadata: T::validate_metadata, + generate_schema: T::generate_schema, + } + } + + pub(crate) fn type_name(&self) -> &'static str { + (self.type_name)() + } + pub(crate) fn referenceable_name(&self) -> Option<&'static str> { + (self.referenceable_name)() + } + pub(crate) fn make_metadata(&self) -> Metadata { + (self.make_metadata)() + } + pub(crate) fn validate_metadata(&self, metadata: &Metadata) -> Result<(), GenerateError> { + (self.validate_metadata)(metadata) + } + pub(crate) fn generate_schema( + &self, + gen: &RefCell, + ) -> Result { + (self.generate_schema)(gen) + } +} diff --git a/lib/vector-config/src/errors.rs b/lib/vector-config/src/errors.rs new file mode 100644 index 0000000000000..1dd59a63c4713 --- /dev/null +++ b/lib/vector-config/src/errors.rs @@ -0,0 +1,64 @@ +#[derive(Debug)] +pub enum BoundDirection { + /// Minimum bound. + Minimum, + + /// Maximum bound. + Maximum, +} + +/// Schema generation error. +#[derive(Debug)] +pub enum GenerateError { + /// An invalid type was encountered during schema generation. + /// + /// This typically means that the type cannot ever be represented correctly in a generated + /// schema, and so has been hard-coded to always fail during schema generation. + /// + /// An example of such an implementation would be the unit type. + InvalidType, + + /// A numeric bound, specified in a validation attribute, is invalid for the underlying type. + IncompatibleNumericBounds { + /// The name of the numeric type. (e.g. `u64`) + numeric_type: &'static str, + + /// The bound direction that was exceeded. + bound_direction: BoundDirection, + + /// The value of the mechanical bound on the underlying type. + /// + /// This is the inherent limit, such as a 8-bit integer only being able to go as high as + /// 2^8. + mechanical_bound: f64, + + /// The value of the specified bound. + /// + /// This is the value specified in the validation attribute itself. + specified_bound: f64, + }, + + /// A type that is not string-like was specified as the key type for a map. + /// + /// As maps resolve to the equivalent of a JSON object, which requires strings for properties + /// (i.e. the key), we can only allow types to be used as the key of a map when their schema + /// maps to a plain string. + MapKeyNotStringLike { + /// The name of the key type. (e.g. `bool`) + key_type: &'static str, + + /// The name of the map type. (e.g. `HashMap`) + /// + /// This is primarily for diagnostic purposes, to determine what map usage is actually + /// responsible for the error. As the error occurs at runtime, we have limited information + /// to point the caller directly to the file/line where the misusage is occurring, other + /// than the type name itself. + map_type: &'static str, + }, + + /// A type tried to modify a schema to be optional, but provided an invalid schema. + /// + /// In order to make a schema "optional", which implies allowing it to match `null`, it must not + /// be a schema reference and it must already have an instance type, or types, defined. + InvalidOptionalSchema, +} diff --git a/lib/vector-config/src/external/chrono.rs b/lib/vector-config/src/external/chrono.rs new file mode 100644 index 0000000000000..41866309bec83 --- /dev/null +++ b/lib/vector-config/src/external/chrono.rs @@ -0,0 +1,34 @@ +use std::cell::RefCell; + +use chrono::{DateTime, TimeZone}; +use serde_json::Value; + +use crate::{ + schema::{generate_string_schema, SchemaGenerator, SchemaObject}, + Configurable, GenerateError, Metadata, ToValue, +}; + +impl Configurable for DateTime +where + TZ: TimeZone, +{ + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("ISO 8601 combined date and time with timezone."); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_string_schema()) + } +} + +impl ToValue for DateTime +where + Self: ToString, + TZ: TimeZone, +{ + fn to_value(&self) -> Value { + Value::String(self.to_string()) + } +} diff --git a/lib/vector-config/src/external/datetime.rs b/lib/vector-config/src/external/datetime.rs new file mode 100644 index 0000000000000..6735cfa2e239c --- /dev/null +++ b/lib/vector-config/src/external/datetime.rs @@ -0,0 +1,66 @@ +use crate::{ + schema::{ + apply_base_metadata, generate_const_string_schema, generate_one_of_schema, + get_or_generate_schema, SchemaGenerator, SchemaObject, + }, + Configurable, GenerateError, Metadata, ToValue, +}; +use chrono_tz::Tz; +use serde_json::Value; +use std::cell::RefCell; +use vector_config_common::{attributes::CustomAttribute, constants}; +use vrl::compiler::TimeZone; + +// TODO: Consider an approach for generating schema of "fixed string value, or remainder" structure +// used by this type. +impl Configurable for TimeZone { + fn referenceable_name() -> Option<&'static str> { + Some(std::any::type_name::()) + } + + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_title("Timezone to use for any date specifiers in template strings."); + metadata.set_description(r#"This can refer to any valid timezone as defined in the [TZ database][tzdb], or "local" which refers to the system local timezone. It will default to the [globally configured timezone](https://vector.dev/docs/reference/configuration/global-options/#timezone). + +[tzdb]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"#); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_ENUM_TAGGING, + "untagged", + )); + metadata.add_custom_attribute(CustomAttribute::kv(constants::DOCS_META_EXAMPLES, "local")); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_EXAMPLES, + "America/New_York", + )); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_EXAMPLES, + "EST5EDT", + )); + metadata + } + + fn generate_schema(gen: &RefCell) -> Result { + let mut local_schema = generate_const_string_schema("local".to_string()); + let mut local_metadata = Metadata::with_description("System local timezone."); + local_metadata.add_custom_attribute(CustomAttribute::kv("logical_name", "Local")); + apply_base_metadata(&mut local_schema, local_metadata); + + let mut tz_metadata = Metadata::with_title("A named timezone."); + tz_metadata.set_description( + r#"Must be a valid name in the [TZ database][tzdb]. + +[tzdb]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"#, + ); + tz_metadata.add_custom_attribute(CustomAttribute::kv("logical_name", "Named")); + let tz_schema = get_or_generate_schema(&Tz::as_configurable_ref(), gen, Some(tz_metadata))?; + + Ok(generate_one_of_schema(&[local_schema, tz_schema])) + } +} + +impl ToValue for TimeZone { + fn to_value(&self) -> Value { + serde_json::to_value(self).expect("Could not convert time zone to JSON") + } +} diff --git a/lib/vector-config/src/external/encoding_rs.rs b/lib/vector-config/src/external/encoding_rs.rs new file mode 100644 index 0000000000000..a82b26fbb08b1 --- /dev/null +++ b/lib/vector-config/src/external/encoding_rs.rs @@ -0,0 +1,37 @@ +use std::cell::RefCell; + +use encoding_rs::Encoding; +use serde_json::Value; + +use crate::{ + schema::{generate_string_schema, SchemaGenerator, SchemaObject}, + Configurable, GenerateError, Metadata, ToValue, +}; + +impl Configurable for &'static Encoding { + // TODO: At some point, we might want to override the metadata to define a validation pattern that only matches + // valid character set encodings... but that would be a very large array of strings, and technically the Encoding + // Standard is a living standard, so... :thinkies: + + fn referenceable_name() -> Option<&'static str> { + Some("encoding_rs::Encoding") + } + + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description( + "An encoding as defined in the [Encoding Standard](https://encoding.spec.whatwg.org/).", + ); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_string_schema()) + } +} + +impl ToValue for &'static Encoding { + fn to_value(&self) -> Value { + Value::String(self.name().into()) + } +} diff --git a/lib/vector-config/src/external/indexmap.rs b/lib/vector-config/src/external/indexmap.rs new file mode 100644 index 0000000000000..d90e6ceedeb51 --- /dev/null +++ b/lib/vector-config/src/external/indexmap.rs @@ -0,0 +1,83 @@ +use std::cell::RefCell; + +use indexmap::{IndexMap, IndexSet}; +use serde_json::Value; + +use crate::{ + schema::{ + assert_string_schema_for_map, generate_map_schema, generate_set_schema, SchemaGenerator, + SchemaObject, + }, + str::ConfigurableString, + Configurable, GenerateError, Metadata, ToValue, +}; + +impl Configurable for IndexMap +where + K: ConfigurableString + ToValue + std::hash::Hash + Eq + 'static, + V: Configurable + ToValue + 'static, +{ + fn is_optional() -> bool { + // A hashmap with required fields would be... an object. So if you want that, make a struct + // instead, not a hashmap. + true + } + + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + let converted = metadata.convert(); + V::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + // Make sure our key type is _truly_ a string schema. + assert_string_schema_for_map( + &K::as_configurable_ref(), + gen, + std::any::type_name::(), + )?; + + generate_map_schema(&V::as_configurable_ref(), gen) + } +} + +impl ToValue for IndexMap +where + K: ToString, + V: ToValue, +{ + fn to_value(&self) -> Value { + Value::Object( + self.iter() + .map(|(k, v)| (k.to_string(), v.to_value())) + .collect(), + ) + } +} + +impl Configurable for IndexSet +where + V: Configurable + ToValue + std::hash::Hash + Eq + 'static, +{ + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + let converted = metadata.convert(); + V::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + generate_set_schema(&V::as_configurable_ref(), gen) + } +} + +impl ToValue for IndexSet { + fn to_value(&self) -> Value { + Value::Array(self.iter().map(ToValue::to_value).collect()) + } +} diff --git a/lib/vector-config/src/external/mod.rs b/lib/vector-config/src/external/mod.rs new file mode 100644 index 0000000000000..b953264517c69 --- /dev/null +++ b/lib/vector-config/src/external/mod.rs @@ -0,0 +1,10 @@ +mod chrono; +mod datetime; +mod encoding_rs; +mod indexmap; +mod no_proxy; +mod serde_with; +mod toml; +mod tz; +mod url; +mod vrl; diff --git a/lib/vector-config/src/external/no_proxy.rs b/lib/vector-config/src/external/no_proxy.rs new file mode 100644 index 0000000000000..e441e3ea607f3 --- /dev/null +++ b/lib/vector-config/src/external/no_proxy.rs @@ -0,0 +1,28 @@ +use std::cell::RefCell; + +use serde_json::Value; + +use crate::{ + schema::{generate_array_schema, SchemaGenerator, SchemaObject}, + Configurable, GenerateError, Metadata, ToValue, +}; + +impl Configurable for no_proxy::NoProxy { + fn metadata() -> Metadata { + // Any schema that maps to a scalar type needs to be marked as transparent... and since we + // generate a schema equivalent to a string, we need to mark ourselves as transparent, too. + Metadata::with_transparent(true) + } + + fn generate_schema(gen: &RefCell) -> Result { + // `NoProxy` (de)serializes itself as a vector of strings, without any constraints on the string value itself, so + // we just... do that. + generate_array_schema(&String::as_configurable_ref(), gen) + } +} + +impl ToValue for no_proxy::NoProxy { + fn to_value(&self) -> Value { + serde_json::to_value(self).expect("Could not convert no-proxy list to JSON") + } +} diff --git a/lib/vector-config/src/external/serde_with.rs b/lib/vector-config/src/external/serde_with.rs new file mode 100644 index 0000000000000..1ef3a072e69f8 --- /dev/null +++ b/lib/vector-config/src/external/serde_with.rs @@ -0,0 +1,144 @@ +use std::cell::RefCell; + +use vector_config_common::{attributes::CustomAttribute, constants}; + +use crate::schema::generate_optional_schema; +use crate::{ + num::NumberClass, + schema::{generate_number_schema, SchemaGenerator, SchemaObject}, + Configurable, GenerateError, Metadata, +}; + +// Blanket implementation of `Configurable` for any `serde_with` helper that is also `Configurable`. +impl Configurable for serde_with::As +where + T: Configurable, +{ + fn referenceable_name() -> Option<&'static str> { + // Forward to the underlying `T`. + T::referenceable_name() + } + + fn metadata() -> Metadata { + // Forward to the underlying `T`. + // + // We have to convert from `Metadata` to `Metadata` which erases the default value, + // notably, but `serde_with` helpers should never actually have default values, so this is + // essentially a no-op. + T::metadata().convert() + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + // Forward to the underlying `T`. + // + // We have to convert from `Metadata` to `Metadata` which erases the default value, + // notably, but `serde_with` helpers should never actually have default values, so this is + // essentially a no-op. + let converted = metadata.convert(); + T::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + // Forward to the underlying `T`. + // + // We have to convert from `Metadata` to `Metadata` which erases the default value, + // notably, but `serde_with` helpers should never actually have default values, so this is + // essentially a no-op. + T::generate_schema(gen) + } +} + +impl Configurable for serde_with::DurationSeconds { + fn referenceable_name() -> Option<&'static str> { + // We're masking the type parameters here because we only deal with whole seconds via this + // version, and handle fractional seconds with `DurationSecondsWithFrac`, which we + // expose as `serde_with::DurationFractionalSeconds`. + Some("serde_with::DurationSeconds") + } + + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("A span of time, in whole seconds."); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_NUMERIC_TYPE, + NumberClass::Unsigned, + )); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_TYPE_UNIT, + "seconds", + )); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + // This boils down to a number schema, but we just need to shuttle around the metadata so + // that we can call the relevant schema generation function. + Ok(generate_number_schema::()) + } +} + +impl Configurable for serde_with::DurationSecondsWithFrac { + fn referenceable_name() -> Option<&'static str> { + // We're masking the type parameters here because we only deal with fractional seconds via this + // version, and handle whole seconds with `DurationSeconds`, which we + // expose as `serde_with::DurationSeconds`. + Some("serde_with::DurationFractionalSeconds") + } + + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("A span of time, in fractional seconds."); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_NUMERIC_TYPE, + NumberClass::FloatingPoint, + )); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_TYPE_UNIT, + "seconds", + )); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + // This boils down to a number schema, but we just need to shuttle around the metadata so + // that we can call the relevant schema generation function. + Ok(generate_number_schema::()) + } +} + +impl Configurable for serde_with::DurationMilliSeconds { + fn referenceable_name() -> Option<&'static str> { + // We're masking the type parameters here because we only deal with whole milliseconds via this + // version. + Some("serde_with::DurationMilliSeconds") + } + + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("A span of time, in whole milliseconds."); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_NUMERIC_TYPE, + NumberClass::Unsigned, + )); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_TYPE_UNIT, + "milliseconds", + )); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + // This boils down to a number schema, but we just need to shuttle around the metadata so + // that we can call the relevant schema generation function. + Ok(generate_number_schema::()) + } +} + +impl Configurable for Option> { + fn generate_schema(gen: &RefCell) -> Result + where + Self: Sized, + { + generate_optional_schema(&u64::as_configurable_ref(), gen) + } +} diff --git a/lib/vector-config/src/external/toml.rs b/lib/vector-config/src/external/toml.rs new file mode 100644 index 0000000000000..2d8d78971bda0 --- /dev/null +++ b/lib/vector-config/src/external/toml.rs @@ -0,0 +1,22 @@ +use std::cell::RefCell; + +use serde_json::Value; + +use crate::{ + schema::{SchemaGenerator, SchemaObject}, + Configurable, GenerateError, ToValue, +}; + +impl Configurable for toml::Value { + fn generate_schema(_: &RefCell) -> Result { + // `toml::Value` can be anything that it is possible to represent in TOML, and equivalently, is anything it's + // possible to represent in JSON, so... a default schema indicates that. + Ok(SchemaObject::default()) + } +} + +impl ToValue for toml::Value { + fn to_value(&self) -> Value { + serde_json::to_value(self).expect("Could not convert TOML value to JSON") + } +} diff --git a/lib/vector-config/src/external/tz.rs b/lib/vector-config/src/external/tz.rs new file mode 100644 index 0000000000000..ba938677f2d2a --- /dev/null +++ b/lib/vector-config/src/external/tz.rs @@ -0,0 +1,26 @@ +use std::cell::RefCell; + +use serde_json::Value; + +use crate::{ + schema::{generate_string_schema, SchemaGenerator, SchemaObject}, + Configurable, GenerateError, Metadata, ToValue, +}; + +impl Configurable for chrono_tz::Tz { + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("An IANA timezone."); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_string_schema()) + } +} + +impl ToValue for chrono_tz::Tz { + fn to_value(&self) -> Value { + Value::String(self.to_string()) + } +} diff --git a/lib/vector-config/src/external/url.rs b/lib/vector-config/src/external/url.rs new file mode 100644 index 0000000000000..1f6f50dc1ea56 --- /dev/null +++ b/lib/vector-config/src/external/url.rs @@ -0,0 +1,28 @@ +use std::cell::RefCell; + +use serde_json::Value; +use vector_config_common::validation::{Format, Validation}; + +use crate::{ + schema::{generate_string_schema, SchemaGenerator, SchemaObject}, + Configurable, GenerateError, Metadata, ToValue, +}; + +impl Configurable for url::Url { + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("A uniform resource location (URL)."); + metadata.add_validation(Validation::KnownFormat(Format::Uri)); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_string_schema()) + } +} + +impl ToValue for url::Url { + fn to_value(&self) -> Value { + Value::String(self.to_string()) + } +} diff --git a/lib/vector-config/src/external/vrl.rs b/lib/vector-config/src/external/vrl.rs new file mode 100644 index 0000000000000..e91d442c69516 --- /dev/null +++ b/lib/vector-config/src/external/vrl.rs @@ -0,0 +1,68 @@ +use std::cell::RefCell; + +use serde_json::Value; +use vrl::{compiler::VrlRuntime, datadog_search_syntax::QueryNode, value::Value as VrlValue}; + +use crate::{ + schema::{generate_string_schema, SchemaGenerator, SchemaObject}, + Configurable, GenerateError, Metadata, ToValue, +}; + +impl Configurable for VrlRuntime { + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("The runtime to use for executing VRL code."); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_string_schema()) + } +} + +impl ToValue for VrlRuntime { + fn to_value(&self) -> Value { + Value::String(match self { + VrlRuntime::Ast => "ast".to_owned(), + }) + } +} + +impl Configurable for QueryNode { + fn generate_schema(_gen: &RefCell) -> Result + where + Self: Sized, + { + Ok(generate_string_schema()) + } +} + +impl Configurable for VrlValue { + fn is_optional() -> bool { + true + } + + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn generate_schema(_: &RefCell) -> Result { + // We don't have any constraints on the inputs + Ok(SchemaObject::default()) + } +} + +impl ToValue for VrlValue { + /// Converts a `VrlValue` into a `serde_json::Value`. + /// + /// This conversion should always succeed, though it may result in a loss + /// of type information for some value types. + /// + /// # Panics + /// + /// This function will panic if serialization fails, which is not expected + /// under normal circumstances. + fn to_value(&self) -> Value { + serde_json::to_value(self).expect("Unable to serialize VRL value") + } +} diff --git a/lib/vector-config/src/http.rs b/lib/vector-config/src/http.rs new file mode 100644 index 0000000000000..17be823be7638 --- /dev/null +++ b/lib/vector-config/src/http.rs @@ -0,0 +1,35 @@ +use http::StatusCode; +use serde_json::Value; +use std::cell::RefCell; + +use crate::{ + schema::{generate_number_schema, SchemaGenerator, SchemaObject}, + Configurable, GenerateError, Metadata, ToValue, +}; + +impl ToValue for StatusCode { + fn to_value(&self) -> Value { + serde_json::to_value(self.as_u16()).expect("Could not convert HTTP status code to JSON") + } +} + +impl Configurable for StatusCode { + fn referenceable_name() -> Option<&'static str> { + Some("http::StatusCode") + } + + fn is_optional() -> bool { + true + } + + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("HTTP response status code"); + metadata.set_default_value(StatusCode::OK); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_number_schema::()) + } +} diff --git a/lib/vector-config/src/lib.rs b/lib/vector-config/src/lib.rs new file mode 100644 index 0000000000000..4232fbeac8256 --- /dev/null +++ b/lib/vector-config/src/lib.rs @@ -0,0 +1,187 @@ +// High-level list of TODOS. +// +// TODO: `serde` supports defining a default at the struct level to fill in fields when no value is +// present during serialization, but it also supports defaults on a per-field basis, which override +// any defaults that would be applied by virtue of the struct-level default. +// +// Thus, we should mark a struct optional if it has a struct-level default _or_ if all fields are +// optional: either literal `Option` fields or if they all have defaults. +// +// This could clean up some of the required properties where we have a field-level/struct-level +// default that we can check by looking at the metadata for the type implementing `T`. +// +// TODO: What happens if we try to stick in a field that has a struct with a lifetime attached to +// it? How does the name of that get generated in terms of what ends up in the schema? Do we even +// have fields with lifetime bounds in any of our configuration types in `vector`? :thinking: +// +// TODO: Is there a way that we could attempt to brute force detect the types of fields being used +// with a validation to give a compile-time error when validators are used incorrectly? For example, +// we throw a runtime error if you use a negative `min` range bound on an unsigned integer field, +// but it's a bit opaque and hard to decipher. Could we simply brute force match the qualified path +// field to see if there's any known unsigned integer type in it -- i.e. `u8`, `u64`, etc -- and +// then throw a compile-error from the macro? We would still end up throwing an error at runtime if +// our heuristic to detect unsigned integers failed, but we might be able to give a meaningful error +// closer to the problem, which would be much better. +// +// TODO: We may want to simply switch from using `description` as the baseline descriptive field to +// using `title`. While, by itself, I think `description` makes a little more sense than `title`, +// it makes it hard to do split-location documentation. +// +// For example, it would be nice to have helper types (i.e. `BatchConfig`, `MultilineConfig`, etc) +// define their own titles, and then allow other structs that have theor types as fields specify a +// description. This would be very useful in cases where fields are optional, such that you want the +// field's title to be the title of the underlying type (e.g. "Multi-line parsing configuration.") +// but you want the field's description to say something like "If not specified, then multiline +// parsing is disabled". Including that description on `MultilineConfig` itself is kind of weird +// because it forces that on everyone else using it, where, in some cases, it may not be optional at +// all. +// +// TODO: Right now, we're manually generating a referenceable name where it makes sense by appending +// the module path to the ident for structs/enums, and by crafting the name by hand for anything +// like stdlib impls, or impls on external types. +// +// We do this because technically `std::any::type_name` says that it doesn't provide a stable +// interface for getting the fully-qualified path of a type, which we would need (in general, +// regardless of whether or not we used that function) because we don't want definition types +// totally changing name between compiler versions, etc. +// +// This is obviously also tricky from a re-export standpoint i.e. what is the referenceable name of +// a type that uses the derive macros for `Configurable` but is exported somewhere entirely +// different? The path would refer to the source no matter what, as it's based on how +// `std::module_path!()` works. Technically speaking, that's still correct from a "we shouldn't +// create duplicate schemas for T" standpoint, but could manifest as a non-obvious divergence. +// +// TODO: We need to figure out how to handle aliases. Looking previously, it seemed like we might +// need to do some very ugly combinatorial explosion stuff to define a schema per permutation of all +// aliased fields in a config. We might be able to get away with using a combination of `allOf` and +// `oneOf` where we define a subschema for the non-aliased fields, and then a subschema using +// `oneOf`for each aliased field -- allowing it to match any of the possible field names for that +// specific field -- and then combine them all with `allOf`, which keeps the schema as compact as +// possible, I think, short of a new version of the specification coming out that adds native alias +// support for properties. +// +// TODO: Should we add a way, and/or make it the default, that if you only supply a description of a +// field, it concats the description of the type of the field? for example, you have: +// +// /// Predefined ACLs. +// /// +// /// For more information, see this link. +// pub enum PredefinedAcl { ... +// } +// +// and then somewhere else, you use it like this: +// +// struct Foo { +// ... +// /// The Predefined ACL to apply to newly created objects. +// field: PredefinedAcl, +// ... +// } +// +// the resulting docs for `field` should look as if we wrote this directly: +// +// /// The Predefined ACL to apply to newly created objects. +// /// +// /// For more information, see this link. +// +// Basically, we're always documenting these shared types fully, but sometimes their title is +// written in an intentionally generic way, and we may want to spice up the wording so it's +// context-specific i.e. we're using predefined ACLs for new objects, or using it for new firewall +// rules, or ... so on and so forth. and by concating the existing description on the shared type, +// we can continue to include high-quality doc comments with contextual links, examples, etc and +// avoid duplication. +// +// One question there would be: do we concat the description of the field _and_ the field's type +// together? We would probably have to, since the unwritten rule is to use link references, which +// are shoved at the end of the description like a footnote, and if we have a link reference in our +// field's title, then we need the field's description to be concatenated so that it can be resolved. +// +// TODO: Should we always apply the transparent marker to fields when they're the only field in a +// tuple struct/tuple variant? There's also some potential interplay with using the `derived` helper +// attribute on the tuple struct/tuple variant itself to signal that we want to pull the +// title/description from the field instead, which could be useful when using newtype wrappers +// around existing/remote types for the purpose of making them `Configurable`. +#![deny(warnings)] + +// Re-export of the various public dependencies required by the generated code to simplify the import requirements for +// crates actually using the macros/derives. +pub mod indexmap { + pub use indexmap::*; +} + +pub use serde_json; + +pub mod component; +mod configurable; +pub use self::configurable::{Configurable, ConfigurableRef, ToValue}; +mod errors; +pub use self::errors::{BoundDirection, GenerateError}; +mod external; +mod http; +mod metadata; +pub use self::metadata::Metadata; +mod named; +pub use self::named::NamedComponent; +mod num; +pub use self::num::ConfigurableNumber; +pub mod schema; +pub mod ser; +mod stdlib; +mod str; +pub use self::str::ConfigurableString; + +// Re-export of the `#[configurable_component]` and `#[derive(Configurable)]` proc macros. +pub use vector_config_macros::*; + +// Re-export of both `Format` and `Validation` from `vector_config_common`. +// +// The crate exists so that both `vector_config_macros` and `vector_config` can import the types and work with them +// natively, but from a codegen and usage perspective, it's much cleaner to export everything needed to use +// `Configurable` from `vector_config` itself, and not leak out the crate arrangement as an impl detail. +pub use vector_config_common::{attributes, validation}; + +#[doc(hidden)] +pub fn __ensure_numeric_validation_bounds(metadata: &Metadata) -> Result<(), GenerateError> +where + N: Configurable + ConfigurableNumber, +{ + // In `Validation::ensure_conformance`, we do some checks on any supplied numeric bounds to try and ensure they're + // no larger than the largest f64 value where integer/floating-point conversions are still lossless. What we + // cannot do there, however, is ensure that the bounds make sense for the type on the Rust side, such as a user + // supplying a negative bound which would be fine for `i64`/`f64` but not for `u64`. That's where this function + // comes in. + // + // We simply check the given metadata for any numeric validation bounds, and ensure they do not exceed the + // mechanical limits of the given numeric type `N`. If they do, we panic, which is not as friendly as a contextual + // compile-time error emitted from the `Configurable` derive macro... but we're working with what we've got here. + let mechanical_min_bound = N::get_enforced_min_bound(); + let mechanical_max_bound = N::get_enforced_max_bound(); + + for validation in metadata.validations() { + if let validation::Validation::Range { minimum, maximum } = validation { + if let Some(min_bound) = minimum { + if *min_bound < mechanical_min_bound { + return Err(GenerateError::IncompatibleNumericBounds { + numeric_type: std::any::type_name::(), + bound_direction: BoundDirection::Minimum, + mechanical_bound: mechanical_min_bound, + specified_bound: *min_bound, + }); + } + } + + if let Some(max_bound) = maximum { + if *max_bound > mechanical_max_bound { + return Err(GenerateError::IncompatibleNumericBounds { + numeric_type: std::any::type_name::(), + bound_direction: BoundDirection::Maximum, + mechanical_bound: mechanical_max_bound, + specified_bound: *max_bound, + }); + } + } + } + } + + Ok(()) +} diff --git a/lib/vector-config/src/metadata.rs b/lib/vector-config/src/metadata.rs new file mode 100644 index 0000000000000..e6aab0660fc3e --- /dev/null +++ b/lib/vector-config/src/metadata.rs @@ -0,0 +1,167 @@ +use std::fmt; + +use vector_config_common::{attributes::CustomAttribute, validation}; + +use crate::ToValue; + +/// The metadata associated with a given type or field. +#[derive(Default)] +pub struct Metadata { + title: Option<&'static str>, + description: Option<&'static str>, + default_value: Option>, + custom_attributes: Vec, + deprecated: bool, + deprecated_message: Option<&'static str>, + transparent: bool, + validations: Vec, +} + +impl Metadata { + pub fn with_title(title: &'static str) -> Self { + Self { + title: Some(title), + ..Default::default() + } + } + + pub fn title(&self) -> Option<&'static str> { + self.title + } + + pub fn set_title(&mut self, title: &'static str) { + self.title = Some(title); + } + + pub fn clear_title(&mut self) { + self.title = None; + } + + pub fn with_description(desc: &'static str) -> Self { + Self { + description: Some(desc), + ..Default::default() + } + } + + pub fn description(&self) -> Option<&'static str> { + self.description + } + + pub fn set_description(&mut self, desc: &'static str) { + self.description = Some(desc); + } + + pub fn clear_description(&mut self) { + self.description = None; + } + + pub fn default_value(&self) -> Option<&dyn ToValue> { + self.default_value.as_deref() + } + + pub fn set_default_value(&mut self, default_value: impl ToValue + 'static) { + self.default_value = Some(Box::new(default_value)); + } + + pub fn deprecated(&self) -> bool { + self.deprecated + } + + pub fn set_deprecated(&mut self) { + self.deprecated = true; + } + + pub fn deprecated_message(&self) -> Option<&'static str> { + self.deprecated_message + } + + pub fn set_deprecated_message(&mut self, message: &'static str) { + self.deprecated_message = Some(message); + } + + pub fn with_transparent(transparent: bool) -> Self { + Self { + transparent, + ..Default::default() + } + } + + pub fn transparent(&self) -> bool { + self.transparent + } + + pub fn set_transparent(&mut self) { + self.transparent = true; + } + + pub fn custom_attributes(&self) -> &[CustomAttribute] { + &self.custom_attributes + } + + pub fn add_custom_attribute(&mut self, attribute: CustomAttribute) { + self.custom_attributes.push(attribute); + } + + pub fn validations(&self) -> &[validation::Validation] { + &self.validations + } + + pub fn add_validation(&mut self, validation: validation::Validation) { + self.validations.push(validation); + } + + pub fn merge(mut self, other: Metadata) -> Self { + self.custom_attributes.extend(other.custom_attributes); + self.validations.extend(other.validations); + + Self { + title: other.title.or(self.title), + description: other.description.or(self.description), + default_value: other.default_value.or(self.default_value), + custom_attributes: self.custom_attributes, + deprecated: other.deprecated, + deprecated_message: other.deprecated_message.or(self.deprecated_message), + transparent: other.transparent, + validations: self.validations, + } + } + + /// Converts this metadata from holding a default value of `T` to `U`. + /// + /// If a default value was present before, it is dropped. + pub(crate) fn convert(&self) -> Metadata { + Metadata { + title: self.title, + description: self.description, + default_value: None, + custom_attributes: self.custom_attributes.clone(), + deprecated: self.deprecated, + deprecated_message: self.deprecated_message, + transparent: self.transparent, + validations: self.validations.clone(), + } + } +} + +impl fmt::Debug for Metadata { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Metadata") + .field("title", &self.title) + .field("description", &self.description) + .field( + "default_value", + if self.default_value.is_some() { + &"" + } else { + &"" + }, + ) + .field("custom_attributes", &self.custom_attributes) + .field("deprecated", &self.deprecated) + .field("deprecated_message", &self.deprecated_message) + .field("transparent", &self.transparent) + .field("validations", &self.validations) + .finish() + } +} diff --git a/lib/vector-config/src/named.rs b/lib/vector-config/src/named.rs new file mode 100644 index 0000000000000..9d791d3c1f9ba --- /dev/null +++ b/lib/vector-config/src/named.rs @@ -0,0 +1,8 @@ +/// A component with a well-known name. +/// +/// Users can derive this trait automatically by using the +/// [`component_name`][vector-config::component_name] macro on their structs/enums. +pub trait NamedComponent { + /// Gets the name of the component. + fn get_component_name(&self) -> &'static str; +} diff --git a/lib/vector-config/src/num.rs b/lib/vector-config/src/num.rs new file mode 100644 index 0000000000000..b58058f459754 --- /dev/null +++ b/lib/vector-config/src/num.rs @@ -0,0 +1,172 @@ +use std::num::{ + NonZeroI16, NonZeroI32, NonZeroI64, NonZeroI8, NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU8, + NonZeroUsize, +}; + +use num_traits::{Bounded, One, ToPrimitive, Zero}; +use serde::Serialize; +use serde_json::Number; +use vector_config_common::num::{NUMERIC_ENFORCED_LOWER_BOUND, NUMERIC_ENFORCED_UPPER_BOUND}; + +use crate::schema::InstanceType; + +/// The class of a numeric type. +#[derive(Clone, Copy, Serialize)] +pub enum NumberClass { + /// A signed integer. + #[serde(rename = "int")] + Signed, + + /// An unsigned integer. + #[serde(rename = "uint")] + Unsigned, + + /// A floating-point number. + #[serde(rename = "float")] + FloatingPoint, +} + +impl NumberClass { + /// Gets the equivalent instance type of this number class. + /// + /// The "instance type" is the JSON Schema term for value type i.e. string, number, integer, + /// array, and so on. + pub fn as_instance_type(self) -> InstanceType { + match self { + Self::Signed | Self::Unsigned => InstanceType::Integer, + Self::FloatingPoint => InstanceType::Number, + } + } +} + +/// A numeric type that can be represented correctly in a JSON Schema document. +pub trait ConfigurableNumber { + /// The integral numeric type. + /// + /// We parameterize the "integral" numeric type in this way to allow generating the schema for wrapper types such as + /// `NonZeroU64`, where the overall type must be represented as `NonZeroU64` but the integral numeric type that + /// we're constraining against is `u64`. + type Numeric: Bounded + ToPrimitive + Zero + One; + + /// Gets the class of this numeric type. + fn class() -> NumberClass; + + /// Whether or not this numeric type disallows nonzero values. + fn is_nonzero() -> bool { + false + } + + /// Whether or not a generated schema for this numeric type must explicitly disallow zero values. + /// + /// In some cases, such as `NonZero*` types from `std::num`, a numeric type may not support zero values for reasons + /// of correctness and/or optimization. In some cases, we can simply adjust the normal minimum/maximum bounds in the + /// schema to encode this. In other cases, such as signed versions like `NonZeroI64`, zero is a discrete value + /// within the minimum and maximum bounds and must be excluded explicitly. + fn requires_nonzero_exclusion() -> bool { + false + } + + /// Gets the JSON encoded version of the zero value for the integral numeric type. + fn get_encoded_zero_value() -> Number { + let zero_num_unsigned = Self::Numeric::zero().to_u64().map(Into::into); + let zero_num_floating = Self::Numeric::zero().to_f64().and_then(Number::from_f64); + zero_num_unsigned + .or(zero_num_floating) + .expect("No usable integer type should be unrepresentable by both `u64` and `f64`.") + } + + /// Gets the minimum bound for this numeric type, limited by the representable range in JSON Schema. + fn get_enforced_min_bound() -> f64 { + let mechanical_minimum = match (Self::is_nonzero(), Self::requires_nonzero_exclusion()) { + // If the number is not a nonzero type, or it is a nonzero type, but needs an exclusion, we simply return + // its true mechanical minimum bound. For nonzero types, this is because we can only enforce the nonzero + // constraint through a negative schema bound, not through its normal minimum/maximum bounds validation. + (false, _) | (true, true) => Self::Numeric::min_value(), + // If the number is a nonzero type, but does not need an exclusion, its minimum bound is always 1. + (true, false) => Self::Numeric::one(), + }; + + let enforced_minimum = NUMERIC_ENFORCED_LOWER_BOUND; + let mechanical_minimum = mechanical_minimum + .to_f64() + .expect("`Configurable` does not support numbers larger than an `f64` representation"); + + if mechanical_minimum < enforced_minimum { + enforced_minimum + } else { + mechanical_minimum + } + } + + /// Gets the maximum bound for this numeric type, limited by the representable range in JSON Schema. + fn get_enforced_max_bound() -> f64 { + let enforced_maximum = NUMERIC_ENFORCED_UPPER_BOUND; + let mechanical_maximum = Self::Numeric::max_value() + .to_f64() + .expect("`Configurable` does not support numbers larger than an `f64` representation"); + + if mechanical_maximum > enforced_maximum { + enforced_maximum + } else { + mechanical_maximum + } + } +} + +macro_rules! impl_configurable_number { + ([$class:expr] $($ty:ty),+) => { + $( + impl ConfigurableNumber for $ty { + type Numeric = $ty; + + fn class() -> NumberClass { + $class + } + } + )+ + }; +} + +macro_rules! impl_configurable_number_nonzero { + ([$class:expr] $($aty:ty => $ity:ty),+) => { + $( + impl ConfigurableNumber for $aty { + type Numeric = $ity; + + fn is_nonzero() -> bool { + true + } + + fn class() -> NumberClass { + $class + } + } + )+ + }; + + (with_exclusion, [$class:expr] $($aty:ty => $ity:ty),+) => { + $( + impl ConfigurableNumber for $aty { + type Numeric = $ity; + + fn is_nonzero() -> bool { + true + } + + fn requires_nonzero_exclusion() -> bool { + true + } + + fn class() -> NumberClass { + $class + } + } + )+ + }; +} + +impl_configurable_number!([NumberClass::Unsigned] u8, u16, u32, u64, usize); +impl_configurable_number!([NumberClass::Signed] i8, i16, i32, i64, isize); +impl_configurable_number!([NumberClass::FloatingPoint] f32, f64); +impl_configurable_number_nonzero!([NumberClass::Unsigned] NonZeroU8 => u8, NonZeroU16 => u16, NonZeroU32 => u32, NonZeroU64 => u64, NonZeroUsize => usize); +impl_configurable_number_nonzero!(with_exclusion, [NumberClass::Signed] NonZeroI8 => i8, NonZeroI16 => i16, NonZeroI32 => i32, NonZeroI64 => i64); diff --git a/lib/vector-config/src/schema/helpers.rs b/lib/vector-config/src/schema/helpers.rs new file mode 100644 index 0000000000000..9900f32998f91 --- /dev/null +++ b/lib/vector-config/src/schema/helpers.rs @@ -0,0 +1,701 @@ +use std::{ + cell::RefCell, + collections::{BTreeSet, HashMap}, + env, mem, +}; + +use indexmap::IndexMap; +use serde_json::{Map, Value}; +use vector_config_common::{attributes::CustomAttribute, constants, schema::*}; + +use crate::{ + num::ConfigurableNumber, Configurable, ConfigurableRef, GenerateError, Metadata, ToValue, +}; + +use super::visitors::{ + DisallowUnevaluatedPropertiesVisitor, GenerateHumanFriendlyNameVisitor, + InlineSingleUseReferencesVisitor, +}; + +/// Applies metadata to the given schema. +/// +/// Metadata can include semantic information (title, description, etc), validation (min/max, allowable +/// patterns, etc), as well as actual arbitrary key/value data. +pub fn apply_base_metadata(schema: &mut SchemaObject, metadata: Metadata) { + apply_metadata(&<()>::as_configurable_ref(), schema, metadata) +} + +fn apply_metadata(config: &ConfigurableRef, schema: &mut SchemaObject, metadata: Metadata) { + let type_name = config.type_name(); + let base_metadata = config.make_metadata(); + + // Calculate the title/description of this schema. + // + // If the given `metadata` has either a title or description present, we use both those values, + // even if one of them is `None`. If both are `None`, we try falling back to the base metadata + // for the configurable type. + // + // This ensures that per-field titles/descriptions can override the base title/description of + // the type, without mixing and matching, as sometimes the base type's title/description is far + // too generic and muddles the output. Essentially, if the callsite decides to provide an + // overridden title/description, it controls the entire title/description. + let (schema_title, schema_description) = + if metadata.title().is_some() || metadata.description().is_some() { + (metadata.title(), metadata.description()) + } else { + (base_metadata.title(), base_metadata.description()) + }; + + // A description _must_ be present, one way or another, _unless_ one of these two conditions is + // met: + // - the field is marked transparent + // - the type is referenceable and _does_ have a description + // + // We panic otherwise. + let has_referenceable_description = + config.referenceable_name().is_some() && base_metadata.description().is_some(); + let is_transparent = base_metadata.transparent() || metadata.transparent(); + if schema_description.is_none() && !is_transparent && !has_referenceable_description { + panic!("No description provided for `{type_name}`! All `Configurable` types must define a description, or have one specified at the field-level where the type is being used."); + } + + // If a default value was given, serialize it. + let schema_default = metadata.default_value().map(ToValue::to_value); + + // Take the existing schema metadata, if any, or create a default version of it, and then apply + // all of our newly-calculated values to it. + // + // Similar to the above title/description logic, we update both title/description if either of + // them have been set, to avoid mixing/matching between base and override metadata. + let mut schema_metadata = schema.metadata.take().unwrap_or_default(); + if schema_title.is_some() || schema_description.is_some() { + schema_metadata.title = schema_title.map(|s| s.to_string()); + schema_metadata.description = schema_description.map(|s| s.to_string()); + } + schema_metadata.default = schema_default.or(schema_metadata.default); + schema_metadata.deprecated = metadata.deprecated(); + + // Set any custom attributes as extensions on the schema. If an attribute is declared multiple + // times, we turn the value into an array and merge them together. We _do_ not that, however, if + // the original value is a flag, or the value being added to an existing key is a flag, as + // having a flag declared multiple times, or mixing a flag with a KV pair, doesn't make sense. + let map_entries_len = { + let custom_map = schema + .extensions + .entry("_metadata".to_string()) + .or_insert_with(|| Value::Object(Map::new())) + .as_object_mut() + .expect("metadata extension must always be a map"); + + if let Some(message) = metadata.deprecated_message() { + custom_map.insert( + "deprecated_message".to_string(), + serde_json::Value::String(message.to_string()), + ); + } + + for attribute in metadata.custom_attributes() { + match attribute { + CustomAttribute::Flag(key) => { + match custom_map.insert(key.to_string(), Value::Bool(true)) { + // Overriding a flag is fine, because flags are only ever "enabled", so there's + // no harm to enabling it... again. Likewise, if there was no existing value, + // it's fine. + Some(Value::Bool(_)) | None => {}, + // Any other value being present means we're clashing with a different metadata + // attribute, which is not good, so we have to bail out. + _ => panic!("Tried to set metadata flag '{key}' but already existed in schema metadata for `{type_name}`."), + } + } + CustomAttribute::KeyValue { key, value } => { + custom_map.entry(key.to_string()) + .and_modify(|existing_value| match existing_value { + // We already have a flag entry for this key, which we cannot turn into an + // array, so we panic in this particular case to signify the weirdness. + Value::Bool(_) => { + panic!("Tried to overwrite metadata flag '{key}' but already existed in schema metadata for `{type_name}` as a flag."); + }, + // The entry is already a multi-value KV pair, so just append the value. + Value::Array(items) => { + items.push(value.clone()); + }, + // The entry is not already a multi-value KV pair, so turn it into one. + _ => { + let taken_existing_value = std::mem::replace(existing_value, Value::Null); + *existing_value = Value::Array(vec![taken_existing_value, value.clone()]); + }, + }) + .or_insert(value.clone()); + } + } + } + + custom_map.len() + }; + + // If the schema had no existing metadata, and we didn't add any of our own, then remove the + // metadata extension property entirely, as it would only add noise to the schema output. + if map_entries_len == 0 { + schema.extensions.remove("_metadata"); + } + + // Now apply any relevant validations. + for validation in metadata.validations() { + validation.apply(schema); + } + + schema.metadata = Some(schema_metadata); +} + +pub fn convert_to_flattened_schema(primary: &mut SchemaObject, mut subschemas: Vec) { + // First, we replace the primary schema with an empty schema, because we need to push it the actual primary schema + // into the list of `allOf` schemas. This is due to the fact that it's not valid to "extend" a schema using `allOf`, + // so everything has to be in there. + let primary_subschema = mem::take(primary); + subschemas.insert(0, primary_subschema); + + let all_of_schemas = subschemas.into_iter().map(Schema::Object).collect(); + + // Now update the primary schema to use `allOf` to bring everything together. + primary.subschemas = Some(Box::new(SubschemaValidation { + all_of: Some(all_of_schemas), + ..Default::default() + })); +} + +pub fn generate_null_schema() -> SchemaObject { + SchemaObject { + instance_type: Some(InstanceType::Null.into()), + ..Default::default() + } +} + +pub fn generate_bool_schema() -> SchemaObject { + SchemaObject { + instance_type: Some(InstanceType::Boolean.into()), + ..Default::default() + } +} + +pub fn generate_string_schema() -> SchemaObject { + SchemaObject { + instance_type: Some(InstanceType::String.into()), + ..Default::default() + } +} + +pub fn generate_number_schema() -> SchemaObject +where + N: ConfigurableNumber, +{ + // TODO: Once `schemars` has proper integer support, we should allow specifying min/max bounds + // in a way that's relevant to the number class. As is, we're always forcing bounds to fit into + // `f64` regardless of whether or not we're using `u64` vs `f64` vs `i16`, and so on. + let minimum = N::get_enforced_min_bound(); + let maximum = N::get_enforced_max_bound(); + + // We always set the minimum/maximum bound to the mechanical limits. Any additional constraining as part of field + // validators will overwrite these limits. + let mut schema = SchemaObject { + instance_type: Some(N::class().as_instance_type().into()), + number: Some(Box::new(NumberValidation { + minimum: Some(minimum), + maximum: Some(maximum), + ..Default::default() + })), + ..Default::default() + }; + + // If the actual numeric type we're generating the schema for is a nonzero variant, and its constraint can't be + // represented solely by the normal minimum/maximum bounds, we explicitly add an exclusion for the appropriate zero + // value of the given numeric type. + if N::requires_nonzero_exclusion() { + schema.subschemas = Some(Box::new(SubschemaValidation { + not: Some(Box::new(Schema::Object(SchemaObject { + const_value: Some(Value::Number(N::get_encoded_zero_value())), + ..Default::default() + }))), + ..Default::default() + })); + } + + schema +} + +pub(crate) fn generate_array_schema( + config: &ConfigurableRef, + gen: &RefCell, +) -> Result { + // Generate the actual schema for the element type. + let element_schema = get_or_generate_schema(config, gen, None)?; + + Ok(SchemaObject { + instance_type: Some(InstanceType::Array.into()), + array: Some(Box::new(ArrayValidation { + items: Some(SingleOrVec::Single(Box::new(element_schema.into()))), + ..Default::default() + })), + ..Default::default() + }) +} + +pub(crate) fn generate_set_schema( + config: &ConfigurableRef, + gen: &RefCell, +) -> Result { + // Generate the actual schema for the element type. + let element_schema = get_or_generate_schema(config, gen, None)?; + + Ok(SchemaObject { + instance_type: Some(InstanceType::Array.into()), + array: Some(Box::new(ArrayValidation { + items: Some(SingleOrVec::Single(Box::new(element_schema.into()))), + unique_items: Some(true), + ..Default::default() + })), + ..Default::default() + }) +} + +pub(crate) fn generate_map_schema( + config: &ConfigurableRef, + gen: &RefCell, +) -> Result { + // Generate the actual schema for the element type. + let element_schema = get_or_generate_schema(config, gen, None)?; + + Ok(SchemaObject { + instance_type: Some(InstanceType::Object.into()), + object: Some(Box::new(ObjectValidation { + additional_properties: Some(Box::new(element_schema.into())), + ..Default::default() + })), + ..Default::default() + }) +} + +pub fn generate_struct_schema( + properties: IndexMap, + required: BTreeSet, + additional_properties: Option>, +) -> SchemaObject { + let properties = properties + .into_iter() + .map(|(k, v)| (k, Schema::Object(v))) + .collect(); + SchemaObject { + instance_type: Some(InstanceType::Object.into()), + object: Some(Box::new(ObjectValidation { + properties, + required, + additional_properties, + ..Default::default() + })), + ..Default::default() + } +} + +pub(crate) fn generate_optional_schema( + config: &ConfigurableRef, + gen: &RefCell, +) -> Result { + // Optional schemas are generally very simple in practice, but because of how we memoize schema + // generation and use references to schema definitions, we have to handle quite a few cases + // here. + // + // Specifically, for the `T` in `Option`, we might be dealing with: + // - a scalar type, where we're going to emit a schema that has `"type": ["string","null"]`, or + // something to that effect, where we can simply add the `"`null"` instance type and be done + // - we may have a referenceable type (i.e. `struct FooBar`) and then we need to generate the + // schema for that referenceable type and either: + // - append a "null" schema as a `oneOf`/`anyOf` if the generated schema for the referenceable + // type already uses that mechanism + // - create our own `oneOf` schema to map between either the "null" schema or the real schema + + // Generate the inner schema for the inner type. We'll add some override metadata, too, so that + // we can mark this resulting schema as "optional". This is only consequential to documentation + // generation so that some of the more complex code for parsing enum schemas can correctly + // differentiate a `oneOf` schema that represents a Rust enum versus one that simply represents + // our "null or X" wrapped schema. + let mut overrides = Metadata::default(); + overrides.add_custom_attribute(CustomAttribute::flag(constants::DOCS_META_OPTIONAL)); + let mut schema = get_or_generate_schema(config, gen, Some(overrides))?; + + // Take the metadata and extensions of the original schema. + // + // We'll apply these back to `schema` at the end, which will either place them back where they + // came from (if we don't have to wrap the original schema) or will apply them to the new + // wrapped schema. + let original_metadata = schema.metadata.take(); + let original_extensions = std::mem::take(&mut schema.extensions); + + // Figure out if the schema is a referenceable schema or a scalar schema. + match schema.instance_type.as_mut() { + // If the schema has no instance types, this implies it's a non-scalar schema: it references + // another schema, or it's a composite schema/does subschema validation (`$ref`, `oneOf`, + // `anyOf`, etc). + // + // Figure out which it is, and either modify the schema or generate a new schema accordingly. + None => match schema.subschemas.as_mut() { + None => { + // If we don't have a scalar schema, or a schema that uses subschema validation, + // then we simply create a new schema that uses `oneOf` to allow mapping to either + // the existing schema _or_ a null schema. + // + // This should handle all cases of "normal" referenceable schema types. + let wrapped_schema = SchemaObject { + subschemas: Some(Box::new(SubschemaValidation { + one_of: Some(vec![ + Schema::Object(generate_null_schema()), + Schema::Object(std::mem::take(&mut schema)), + ]), + ..Default::default() + })), + ..Default::default() + }; + + schema = wrapped_schema; + } + Some(subschemas) => { + if let Some(any_of) = subschemas.any_of.as_mut() { + // A null schema is just another possible variant, so we add it directly. + any_of.push(Schema::Object(generate_null_schema())); + } else if let Some(one_of) = subschemas.one_of.as_mut() { + // A null schema is just another possible variant, so we add it directly. + one_of.push(Schema::Object(generate_null_schema())); + } else if subschemas.all_of.is_some() { + // If we're dealing with an all-of schema, we have to build a new one-of schema + // where the two choices are either the `null` schema, or a subschema comprised of + // the all-of subschemas. + let all_of = subschemas + .all_of + .take() + .expect("all-of subschemas must be present here"); + let new_all_of_schema = SchemaObject { + subschemas: Some(Box::new(SubschemaValidation { + all_of: Some(all_of), + ..Default::default() + })), + ..Default::default() + }; + + subschemas.one_of = Some(vec![ + Schema::Object(generate_null_schema()), + Schema::Object(new_all_of_schema), + ]); + } else { + return Err(GenerateError::InvalidOptionalSchema); + } + } + }, + Some(sov) => match sov { + SingleOrVec::Single(ty) if **ty != InstanceType::Null => { + *sov = vec![**ty, InstanceType::Null].into() + } + SingleOrVec::Vec(ty) if !ty.contains(&InstanceType::Null) => { + ty.push(InstanceType::Null) + } + _ => {} + }, + } + + // Stick the metadata and extensions back on `schema`. + schema.metadata = original_metadata; + schema.extensions = original_extensions; + + Ok(schema) +} + +pub fn generate_one_of_schema(subschemas: &[SchemaObject]) -> SchemaObject { + let subschemas = subschemas + .iter() + .map(|s| Schema::Object(s.clone())) + .collect::>(); + + SchemaObject { + subschemas: Some(Box::new(SubschemaValidation { + one_of: Some(subschemas), + ..Default::default() + })), + ..Default::default() + } +} + +pub fn generate_any_of_schema(subschemas: &[SchemaObject]) -> SchemaObject { + let subschemas = subschemas + .iter() + .map(|s| Schema::Object(s.clone())) + .collect::>(); + + SchemaObject { + subschemas: Some(Box::new(SubschemaValidation { + any_of: Some(subschemas), + ..Default::default() + })), + ..Default::default() + } +} + +pub fn generate_tuple_schema(subschemas: &[SchemaObject]) -> SchemaObject { + let subschemas = subschemas + .iter() + .map(|s| Schema::Object(s.clone())) + .collect::>(); + + SchemaObject { + instance_type: Some(InstanceType::Array.into()), + array: Some(Box::new(ArrayValidation { + items: Some(SingleOrVec::Vec(subschemas)), + // Rust's tuples are closed -- fixed size -- so we set `additionalItems` such that any + // items past what we have in `items` will cause schema validation to fail. + additional_items: Some(Box::new(Schema::Bool(false))), + ..Default::default() + })), + ..Default::default() + } +} + +pub fn generate_enum_schema(values: Vec) -> SchemaObject { + SchemaObject { + enum_values: Some(values), + ..Default::default() + } +} + +pub fn generate_const_string_schema(value: String) -> SchemaObject { + SchemaObject { + const_value: Some(Value::String(value)), + ..Default::default() + } +} + +pub fn generate_internal_tagged_variant_schema( + tag: String, + value_schema: SchemaObject, +) -> SchemaObject { + let mut properties = IndexMap::new(); + properties.insert(tag.clone(), value_schema); + + let mut required = BTreeSet::new(); + required.insert(tag); + + generate_struct_schema(properties, required, None) +} + +pub fn default_schema_settings() -> SchemaSettings { + SchemaSettings::new() + .with_visitor(InlineSingleUseReferencesVisitor::from_settings) + .with_visitor(DisallowUnevaluatedPropertiesVisitor::from_settings) + .with_visitor(GenerateHumanFriendlyNameVisitor::from_settings) +} + +pub fn generate_root_schema() -> Result +where + T: Configurable + 'static, +{ + generate_root_schema_with_settings::(default_schema_settings()) +} + +pub fn generate_root_schema_with_settings( + schema_settings: SchemaSettings, +) -> Result +where + T: Configurable + 'static, +{ + let schema_gen = RefCell::new(schema_settings.into_generator()); + + // Set env variable to enable generating all schemas, including platform-specific ones. + env::set_var("VECTOR_GENERATE_SCHEMA", "true"); + + let schema = + get_or_generate_schema(&T::as_configurable_ref(), &schema_gen, Some(T::metadata()))?; + + env::remove_var("VECTOR_GENERATE_SCHEMA"); + + Ok(schema_gen.into_inner().into_root_schema(schema)) +} + +pub fn get_or_generate_schema( + config: &ConfigurableRef, + gen: &RefCell, + overrides: Option, +) -> Result { + let metadata = config.make_metadata(); + let (mut schema, metadata) = match config.referenceable_name() { + // When the configurable type has a referenceable name, try looking it up in the schema + // generator's definition list, and if it exists, create a schema reference to + // it. Otherwise, generate it and backfill it in the schema generator. + Some(name) => { + if !gen.borrow().definitions().contains_key(name) { + // In order to avoid infinite recursion, we copy the approach that `schemars` takes and + // insert a dummy boolean schema before actually generating the real schema, and then + // replace it afterwards. If any recursion occurs, a schema reference will be handed + // back, which means we don't have to worry about the dummy schema needing to be updated + // after the fact. + gen.borrow_mut() + .definitions_mut() + .insert(name.to_string(), Schema::Bool(false)); + + // We generate the schema for the type with its own default metadata, and not the + // override metadata passed into this method, because the override metadata might + // only be relevant to the place that the type is being used. + // + // For example, if the type was something for setting the logging level, one + // component that allows the logging level to be changed for that component + // specifically might want to specify a default value, whereas the configurable + // should not have a default at all. So, if we applied that override metadata, we'd + // be unwittingly applying a default for all usages of the type that didn't override + // the default themselves. + let mut schema = config.generate_schema(gen)?; + apply_metadata(config, &mut schema, metadata); + + gen.borrow_mut() + .definitions_mut() + .insert(name.to_string(), Schema::Object(schema)); + } + + (get_schema_ref(gen, name), None) + } + // Always generate the schema directly if the type is not referenceable. + None => (config.generate_schema(gen)?, Some(metadata)), + }; + + // Figure out what metadata we should apply to the resulting schema. + // + // If the type was referenceable, we use its implicit metadata when generating the + // "baseline" schema, because a referenceable type should always be self-contained. We then + // apply the override metadata, if it exists, to the schema we got back. This allows us to + // override titles, descriptions, and add additional attributes, and so on. + // + // If the type was not referenceable, we only generate its schema without trying to apply any + // metadata. We do that because applying schema metadata enforces logic like "can't be without a + // description". The implicit metadata for the type may lack that. + if let Some(overrides) = overrides.as_ref() { + config.validate_metadata(overrides)?; + } + + match metadata { + // If we generated the schema for a referenceable type, we won't need to merge its implicit + // metadata into the schema we're returning _here_, so just use the override metadata if + // it was given. + None => { + if let Some(metadata) = overrides { + apply_metadata(config, &mut schema, metadata); + } + } + + // If we didn't generate the schema for a referenceable type, we'll be holding its implicit + // metadata here, which we need to merge the override metadata into if it was given. If + // there was no override metadata, then we just use the base by itself. + Some(base) => match overrides { + None => apply_metadata(config, &mut schema, base), + Some(overrides) => apply_metadata(config, &mut schema, base.merge(overrides)), + }, + }; + + Ok(schema) +} + +fn get_schema_ref>(gen: &RefCell, name: S) -> SchemaObject { + let ref_path = format!( + "{}{}", + gen.borrow().settings().definitions_path(), + name.as_ref() + ); + SchemaObject::new_ref(ref_path) +} + +/// Asserts that the key type `K` generates a string-like schema, suitable for use in maps. +/// +/// This function generates a schema for `K` and ensures that the resulting schema is explicitly, +/// but only, represented as a `string` data type. This is necessary to ensure that `K` can be used +/// as the key type for maps, as maps are represented by the `object` data type in JSON Schema, +/// which must have fields with valid string identifiers. +/// +/// # Errors +/// +/// If the schema is not a valid, string-like schema, an error variant will be returned describing +/// the issue. +pub(crate) fn assert_string_schema_for_map( + config: &ConfigurableRef, + gen: &RefCell, + map_type: &'static str, +) -> Result<(), GenerateError> { + let key_schema = get_or_generate_schema(config, gen, None)?; + let key_type = config.type_name(); + + // We need to force the schema to be treated as transparent so that when the schema generation + // finalizes the schema, we don't throw an error due to a lack of title/description. + let mut key_metadata = Metadata::default(); + key_metadata.set_transparent(); + + let wrapped_schema = Schema::Object(key_schema); + + // Get a reference to the underlying schema if we're dealing with a reference, or just use what + // we have if it's the actual definition. + let gen = gen.borrow(); + let underlying_schema = if wrapped_schema.is_ref() { + gen.dereference(&wrapped_schema) + } else { + Some(&wrapped_schema) + }; + + let is_string_like = match underlying_schema { + Some(Schema::Object(schema_object)) => match schema_object.instance_type.as_ref() { + Some(sov) => match sov { + // Has to be a string. + SingleOrVec::Single(it) => **it == InstanceType::String, + // As long as there's only one instance type, and it's string, we're fine + // with that, too. + SingleOrVec::Vec(its) => { + its.len() == 1 + && its + .first() + .filter(|it| *it == &InstanceType::String) + .is_some() + } + }, + // We match explicitly, so a lack of declared instance types is not considered + // valid here. + None => false, + }, + // We match explicitly, so boolean schemas aren't considered valid here. + _ => false, + }; + + if !is_string_like { + Err(GenerateError::MapKeyNotStringLike { key_type, map_type }) + } else { + Ok(()) + } +} + +/// Determines whether or not an enum schema is ambiguous based on discriminants of its variants. +/// +/// A discriminant is the set of the named fields which are required, which may be an empty set. +pub fn has_ambiguous_discriminants( + discriminants: &HashMap<&'static str, BTreeSet>, +) -> bool { + // Firstly, if there's less than two discriminants, then there can't be any ambiguity. + if discriminants.len() < 2 { + return false; + } + + // Any empty discriminant is considered ambiguous. + if discriminants + .values() + .any(|discriminant| discriminant.is_empty()) + { + return true; + } + + // Now collapse the list of discriminants into another set, which will eliminate any duplicate + // sets. If there are any duplicate sets, this would also imply ambiguity, since there's not + // enough discrimination via required fields. + let deduplicated = discriminants.values().cloned().collect::>(); + if deduplicated.len() != discriminants.len() { + return true; + } + + false +} diff --git a/lib/vector-config/src/schema/mod.rs b/lib/vector-config/src/schema/mod.rs new file mode 100644 index 0000000000000..de137ea8718d9 --- /dev/null +++ b/lib/vector-config/src/schema/mod.rs @@ -0,0 +1,11 @@ +// Public re-export of all of the core schema generation types that live in `vector-config-common`. +pub use vector_config_common::schema::*; + +// Helpers for reducing boilerplate i.e. generating type-specific schemas with default values, and +// so on. +mod helpers; +pub use self::helpers::*; + +pub mod visitors; + +pub mod parser; diff --git a/lib/vector-config/src/schema/parser/component.rs b/lib/vector-config/src/schema/parser/component.rs new file mode 100644 index 0000000000000..37997e023dbab --- /dev/null +++ b/lib/vector-config/src/schema/parser/component.rs @@ -0,0 +1,139 @@ +use std::borrow::Cow; + +use serde_json::Value; +use snafu::Snafu; +use vector_config_common::{ + attributes::CustomAttribute, + constants::{self, ComponentType}, + schema::SchemaObject, +}; + +use super::query::{OneOrMany, QueryError, QueryableSchema, SchemaType, SimpleSchema}; + +#[derive(Debug, Snafu)] +pub enum SchemaError { + #[snafu(display("invalid component schema: {pointer}: {reason}"))] + InvalidComponentSchema { + pointer: &'static str, + reason: Cow<'static, str>, + }, +} + +impl SchemaError { + pub fn invalid_component_schema>>( + pointer: &'static str, + reason: S, + ) -> Self { + Self::InvalidComponentSchema { + pointer, + reason: reason.into(), + } + } +} + +/// A schema object that represents the schema of a single Vector component. +/// +/// The schema represents the equivalent of the component's configuration type, excluding any common +/// configuration fields that appear on a per-component type basis. This means that, for a sink +/// component, this schema would include the configuration fields of the specific sink component, +/// but wouldn't contain the common sink configuration fields such as `inputs` or `buffer`. +pub struct ComponentSchema<'a> { + schema: &'a SchemaObject, + component_name: String, + component_type: ComponentType, +} + +impl ComponentSchema<'_> { + /// The type of the component represented by this schema. + pub fn component_type(&self) -> ComponentType { + self.component_type + } + + /// The name of the component represented by this schema. + /// + /// This refers to the configuration-specific identifier used to specify the component type + /// within the `type` field. + /// + /// For example, the AWS S3 sink would be `aws_s3`. + pub fn component_name(&self) -> &str { + &self.component_name + } +} + +impl QueryableSchema for ComponentSchema<'_> { + fn schema_type(&self) -> SchemaType { + self.schema.schema_type() + } + + fn description(&self) -> Option<&str> { + self.schema.description() + } + + fn title(&self) -> Option<&str> { + self.schema.title() + } + + fn get_attributes(&self, key: &str) -> Option> { + self.schema.get_attributes(key) + } + + fn get_attribute(&self, key: &str) -> Result, QueryError> { + self.schema.get_attribute(key) + } + + fn has_flag_attribute(&self, key: &str) -> Result { + self.schema.has_flag_attribute(key) + } +} + +impl<'a> TryFrom> for ComponentSchema<'a> { + type Error = SchemaError; + + fn try_from(value: SimpleSchema<'a>) -> Result { + // Component schemas must have a component type _and_ component name defined. + let component_type = + get_component_metadata_kv_str(&value, constants::DOCS_META_COMPONENT_TYPE).and_then( + |s| { + ComponentType::try_from(s.as_str()).map_err(|_| { + SchemaError::invalid_component_schema( + constants::DOCS_META_COMPONENT_TYPE, + "value was not a valid component type", + ) + }) + }, + )?; + + let component_name = + get_component_metadata_kv_str(&value, constants::DOCS_META_COMPONENT_NAME)?; + + Ok(Self { + schema: value.into_inner(), + component_name, + component_type, + }) + } +} + +fn get_component_metadata_kv_str<'a>( + schema: &'a SimpleSchema<'a>, + key: &'static str, +) -> Result { + schema + .get_attribute(key) + .map_err(|e| SchemaError::invalid_component_schema(key, e.to_string()))? + .ok_or_else(|| SchemaError::invalid_component_schema(key, "attribute must be present")) + .and_then(|attr| match attr { + CustomAttribute::Flag(_) => Err(SchemaError::invalid_component_schema( + key, + "expected key/value attribute, got flag instead", + )), + CustomAttribute::KeyValue { value, .. } => Ok(value), + }) + .and_then(|v| match v { + Value::String(name) => Ok(name), + _ => Err(SchemaError::invalid_component_schema( + key, + format!("`{}` must be a string", key), + )), + }) +} diff --git a/lib/vector-config/src/schema/parser/mod.rs b/lib/vector-config/src/schema/parser/mod.rs new file mode 100644 index 0000000000000..423ef678b2f61 --- /dev/null +++ b/lib/vector-config/src/schema/parser/mod.rs @@ -0,0 +1,2 @@ +pub mod component; +pub mod query; diff --git a/lib/vector-config/src/schema/parser/query.rs b/lib/vector-config/src/schema/parser/query.rs new file mode 100644 index 0000000000000..7d317bebe913e --- /dev/null +++ b/lib/vector-config/src/schema/parser/query.rs @@ -0,0 +1,434 @@ +use std::{fs::File, io::BufReader, path::Path, sync::OnceLock}; + +use serde_json::Value; +use snafu::Snafu; +use vector_config_common::{ + attributes::CustomAttribute, + constants, + schema::{InstanceType, RootSchema, Schema, SchemaObject, SingleOrVec}, +}; + +#[derive(Debug, Snafu)] +#[snafu(module, context(suffix(false)))] +pub enum QueryError { + #[snafu(display("I/O error during opening schema: {source}"), context(false))] + Io { source: std::io::Error }, + + #[snafu(display("deserialization failed: {source}"), context(false))] + Deserialization { source: serde_json::Error }, + + #[snafu(display("no schemas matched the query"))] + NoMatches, + + #[snafu(display("multiple schemas matched the query ({len})"))] + MultipleMatches { len: usize }, + + #[snafu(display("found matching attribute but was not a flag"))] + AttributeNotFlag, + + #[snafu(display( + "found matching attribute but expected single value; multiple values present" + ))] + AttributeMultipleValues, +} + +pub struct SchemaQuerier { + schema: RootSchema, +} + +impl SchemaQuerier { + /// Creates a `SchemaQuerier` based on the schema file located at `schema_path`. + /// + /// # Errors + /// + /// If no file exists at the given schema path, or there is an I/O error during loading the file + /// (permissions, etc), then an error variant will be returned. + /// + /// If the file does not contain valid JSON, or cannot be deserialized as a schema, then an + /// error variant will be returned. + pub fn from_schema>(schema_path: P) -> Result { + let reader = File::open(schema_path).map(BufReader::new)?; + let schema = serde_json::from_reader(reader)?; + + Ok(Self { schema }) + } + + pub fn query(&self) -> SchemaQueryBuilder<'_> { + SchemaQueryBuilder::from_schema(&self.schema) + } +} + +/// A query builder for querying against a root schema. +/// +/// All constraints are applied in a boolean AND fashion. +pub struct SchemaQueryBuilder<'a> { + schema: &'a RootSchema, + attributes: Vec, +} + +impl<'a> SchemaQueryBuilder<'a> { + fn from_schema(schema: &'a RootSchema) -> Self { + Self { + schema, + attributes: Vec::new(), + } + } + + /// Adds a constraint on the given custom attribute key/value. + /// + /// Can be used multiple times to match schemas against multiple attributes. + /// + /// Custom attributes are strongly matched: a flag attribute can only match a flag attribute, + /// not a key/value attribute, and vice versa. For key/value attributes where the attribute in + /// the schema itself has multiple values, the schema is considered a match so long as it + /// contains the value specified in the query. + pub fn with_custom_attribute_kv(mut self, key: K, value: V) -> Self + where + K: Into, + V: Into, + { + self.attributes.push(CustomAttribute::KeyValue { + key: key.into(), + value: value.into(), + }); + self + } + + /// Executes the query, returning all matching schemas. + pub fn run(self) -> Vec> { + let mut matches = Vec::new(); + + // Search through all defined schemas. + 'schema: for schema_definition in self.schema.definitions.values() { + match schema_definition { + // We don't match against boolean schemas because there's nothing to match against. + Schema::Bool(_) => continue, + Schema::Object(schema_object) => { + // If we have custom attribute matches defined, but the schema has no metadata, + // it's not possible for it to match, so just bail out early. + let has_attribute_matchers = !self.attributes.is_empty(); + let schema_metadata = schema_object.extensions.get(constants::METADATA); + if has_attribute_matchers && schema_metadata.is_none() { + continue 'schema; + } + + if let Some(Value::Object(schema_attributes)) = schema_metadata { + for self_attribute in &self.attributes { + let attr_matched = match self_attribute { + CustomAttribute::Flag(key) => schema_attributes + .get(key) + .map_or(false, |value| matches!(value, Value::Bool(true))), + CustomAttribute::KeyValue { + key, + value: attr_value, + } => { + schema_attributes + .get(key) + .map_or(false, |value| match value { + // Check string values directly. + Value::String(schema_attr_value) => { + schema_attr_value == attr_value + } + // For arrays, try and convert each item to a string, and + // for the values that are strings, see if they match. + Value::Array(schema_attr_values) => { + schema_attr_values.iter().any(|value| { + value + .as_str() + .map_or(false, |s| s == attr_value) + }) + } + _ => false, + }) + } + }; + + if !attr_matched { + continue 'schema; + } + } + } + + matches.push(schema_object.into()); + } + } + } + + matches + } + + /// Executes the query, returning a single matching schema. + /// + /// # Errors + /// + /// If no schemas match, or more than one schema matches, then an error variant will be + /// returned. + pub fn run_single(self) -> Result, QueryError> { + let mut matches = self.run(); + match matches.len() { + 0 => Err(QueryError::NoMatches), + 1 => Ok(matches.remove(0)), + len => Err(QueryError::MultipleMatches { len }), + } + } +} + +pub enum OneOrMany { + One(T), + Many(Vec), +} + +pub enum SchemaType<'a> { + /// A set of subschemas in which all must match. + /// + /// Referred to as an `allOf` schema in JSON Schema. + /// + /// For a given input, the input is only valid if it is valid against all specified subschemas. + AllOf(Vec>), + + /// A set of subschemas in which only one must match. + /// + /// Referred to as a `oneOf` schema in JSON Schema. + /// + /// For a given input, the input is only valid if it is valid against exactly one of the + /// specified subschemas. + OneOf(Vec>), + + /// A set of subschemas in which at least one must match. + /// + /// Referred to as a `anyOf` schema in JSON Schema. + /// + /// For a given input, the input is only valid if it is valid against at least one of the + /// specified subschemas. + AnyOf(Vec>), + + /// A schema that matches a well-known, constant value. + /// + /// Referred to by the `const` field in JSON Schema. + /// + /// For a given input, the input is only valid if it matches the value specified by `const` + /// exactly. The value can be any valid JSON value. + Constant(&'a Value), + + /// A schema that matches one of many well-known, constant values. + /// + /// Referred to by the `enum` field in JSON Schema. + /// + /// For a given input, the input is only valid if it matches one of the values specified by + /// `enum` exactly. The values can be any valid JSON value. + Enum(&'a Vec), + + /// A typed schema that matches a JSON data type. + /// + /// Referred to by the `type` field in JSON Schema. + /// + /// For a given input, the input is only valid if it is the same type as one of the types + /// specified by `type`. A schema can allow multiple data types. + Typed(OneOrMany), +} + +pub trait QueryableSchema { + fn schema_type(&self) -> SchemaType; + fn description(&self) -> Option<&str>; + fn title(&self) -> Option<&str>; + fn get_attributes(&self, key: &str) -> Option>; + fn get_attribute(&self, key: &str) -> Result, QueryError>; + fn has_flag_attribute(&self, key: &str) -> Result; +} + +impl QueryableSchema for &T +where + T: QueryableSchema, +{ + fn schema_type(&self) -> SchemaType { + (*self).schema_type() + } + + fn description(&self) -> Option<&str> { + (*self).description() + } + + fn title(&self) -> Option<&str> { + (*self).title() + } + + fn get_attributes(&self, key: &str) -> Option> { + (*self).get_attributes(key) + } + + fn get_attribute(&self, key: &str) -> Result, QueryError> { + (*self).get_attribute(key) + } + + fn has_flag_attribute(&self, key: &str) -> Result { + (*self).has_flag_attribute(key) + } +} + +impl QueryableSchema for &SchemaObject { + fn schema_type(&self) -> SchemaType { + // TODO: Technically speaking, it is allowed to use the "X of" schema types in conjunction + // with other schema types i.e. `allOf` in conjunction with specifying a `type`. + // + // Right now, the configuration schema codegen should not actually be emitting anything like + // this, so our logic below is written against what we generate, not against what is + // technically possible. This _may_ need to change in the future if we end up using any "X + // of" schema composition mechanisms for richer validation (i.e. sticking special validation + // logic in various subschemas under `allOf`, while defining the main data schema via + // `type`, etc.) + if let Some(subschemas) = self.subschemas.as_ref() { + // Of all the possible "subschema" validation mechanism, we only support `allOf` and + // `oneOf`, based on what the configuration schema codegen will spit out. + if let Some(all_of) = subschemas.all_of.as_ref() { + return SchemaType::AllOf(all_of.iter().map(schema_to_simple_schema).collect()); + } else if let Some(one_of) = subschemas.one_of.as_ref() { + return SchemaType::OneOf(one_of.iter().map(schema_to_simple_schema).collect()); + } else if let Some(any_of) = subschemas.any_of.as_ref() { + return SchemaType::AnyOf(any_of.iter().map(schema_to_simple_schema).collect()); + } else { + panic!("Encountered schema with subschema validation that wasn't one of the supported types: allOf, oneOf, anyOf."); + } + } + + if let Some(instance_types) = self.instance_type.as_ref() { + return match instance_types { + SingleOrVec::Single(single) => SchemaType::Typed(OneOrMany::One(*single.clone())), + SingleOrVec::Vec(many) => SchemaType::Typed(OneOrMany::Many(many.clone())), + }; + } + + if let Some(const_value) = self.const_value.as_ref() { + return SchemaType::Constant(const_value); + } + + if let Some(enum_values) = self.enum_values.as_ref() { + return SchemaType::Enum(enum_values); + } + + panic!("Schema type was not able to be detected!"); + } + + fn description(&self) -> Option<&str> { + self.metadata + .as_ref() + .and_then(|metadata| metadata.description.as_deref()) + } + + fn title(&self) -> Option<&str> { + self.metadata + .as_ref() + .and_then(|metadata| metadata.title.as_deref()) + } + + fn get_attributes(&self, key: &str) -> Option> { + self.extensions.get(constants::METADATA) + .map(|metadata| match metadata { + Value::Object(attributes) => attributes, + _ => panic!("Found metadata extension in schema that was not of type 'object'."), + }) + .and_then(|attributes| attributes.get(key)) + .map(|attribute| match attribute { + Value::Bool(b) => match b { + true => OneOrMany::One(CustomAttribute::flag(key)), + false => panic!("Custom attribute flags should never be false."), + }, + Value::String(s) => OneOrMany::One(CustomAttribute::kv(key, s)), + Value::Array(values) => { + let mapped = values.iter() + .map(|value| if let Value::String(s) = value { + CustomAttribute::kv(key, s) + } else { + panic!("Custom attribute key/value pair had array of values with a non-string value.") + }) + .collect(); + OneOrMany::Many(mapped) + }, + _ => panic!("Custom attribute had unexpected non-flag/non-KV value."), + }) + } + + fn get_attribute(&self, key: &str) -> Result, QueryError> { + self.get_attributes(key) + .map(|attrs| match attrs { + OneOrMany::One(attr) => Ok(attr), + OneOrMany::Many(_) => Err(QueryError::AttributeMultipleValues), + }) + .transpose() + } + + fn has_flag_attribute(&self, key: &str) -> Result { + self.get_attribute(key) + .and_then(|maybe_attr| match maybe_attr { + None => Ok(false), + Some(attr) => { + if attr.is_flag() { + Ok(true) + } else { + Err(QueryError::AttributeNotFlag) + } + } + }) + } +} + +pub struct SimpleSchema<'a> { + schema: &'a SchemaObject, +} + +impl<'a> SimpleSchema<'a> { + pub fn into_inner(self) -> &'a SchemaObject { + self.schema + } +} + +impl<'a> From<&'a SchemaObject> for SimpleSchema<'a> { + fn from(schema: &'a SchemaObject) -> Self { + Self { schema } + } +} + +impl QueryableSchema for SimpleSchema<'_> { + fn schema_type(&self) -> SchemaType { + self.schema.schema_type() + } + + fn description(&self) -> Option<&str> { + self.schema.description() + } + + fn title(&self) -> Option<&str> { + self.schema.title() + } + + fn get_attributes(&self, key: &str) -> Option> { + self.schema.get_attributes(key) + } + + fn get_attribute(&self, key: &str) -> Result, QueryError> { + self.schema.get_attribute(key) + } + + fn has_flag_attribute(&self, key: &str) -> Result { + self.schema.has_flag_attribute(key) + } +} + +fn schema_to_simple_schema(schema: &Schema) -> SimpleSchema<'_> { + static TRUE_SCHEMA_OBJECT: OnceLock = OnceLock::new(); + static FALSE_SCHEMA_OBJECT: OnceLock = OnceLock::new(); + + let schema_object = match schema { + Schema::Bool(bool) => { + if *bool { + TRUE_SCHEMA_OBJECT.get_or_init(|| Schema::Bool(true).into_object()) + } else { + FALSE_SCHEMA_OBJECT.get_or_init(|| Schema::Bool(false).into_object()) + } + } + Schema::Object(object) => object, + }; + + SimpleSchema { + schema: schema_object, + } +} diff --git a/lib/vector-config/src/schema/visitors/human_name.rs b/lib/vector-config/src/schema/visitors/human_name.rs new file mode 100644 index 0000000000000..4b9b2330d5ed2 --- /dev/null +++ b/lib/vector-config/src/schema/visitors/human_name.rs @@ -0,0 +1,286 @@ +use serde_json::Value; +use vector_config_common::{ + constants, + human_friendly::generate_human_friendly_string, + schema::{visit::Visitor, *}, +}; + +/// A visitor that generates a human-friendly name for enum variants and fields as metadata. +/// +/// Generally, we rely on rich documentation to provide human-friendly descriptions of types and +/// fields, but there is no such mechanism to provide a human-friendly name for types and fields +/// directly from their documentation comments. While it is possible to do so with manual metadata +/// annotations, it is laborious and prone to error. +/// +/// This visitor generates a human-friendly name for types and fields, stored in metadata +/// (`docs::human_name`) using a simple set of heuristics to figure out how to break apart +/// type/field names, as well as what the case of each word should be, including accommodations for +/// well-known technical terms/acronyms, and so on. +/// +/// ## Opting out of the visitor behavior +/// +/// This approach has a very high hit rate, as the corpus we're operating on is generally small and +/// well contained, leading to requiring only a small set of replacements and logic. However, for +/// cases when this approach is not suitable, upstream usages can declare `docs::human_name` +/// themselves. Whenever the visitor sees that the metadata annotation is already present, it will +/// skip generating it. +#[derive(Debug, Default)] +pub struct GenerateHumanFriendlyNameVisitor; + +impl GenerateHumanFriendlyNameVisitor { + pub fn from_settings(_: &SchemaSettings) -> Self { + Self + } +} + +impl Visitor for GenerateHumanFriendlyNameVisitor { + fn visit_schema_object( + &mut self, + definitions: &mut Map, + schema: &mut SchemaObject, + ) { + // Recursively visit this schema first. + visit::visit_schema_object(self, definitions, schema); + + // Skip this schema if it already has a human-friendly name defined. + if has_schema_metadata_attr_str(schema, constants::DOCS_META_HUMAN_NAME) { + return; + } + + // When a logical name (via `logical_name`) is present, we use that as the source for + // generating the human-friendly name. Logical name is populated for schemas that represent + // an enum variant. + if let Some(logical_name) = get_schema_metadata_attr_str(schema, constants::LOGICAL_NAME) { + let human_name = generate_human_friendly_string(logical_name); + set_schema_metadata_attr_str(schema, constants::DOCS_META_HUMAN_NAME, human_name); + } + + // If the schema has object properties, we'll individually add the human name to each + // property's schema if it doesn't already have a human-friendly name defined. + if let Some(properties) = schema.object.as_mut().map(|object| &mut object.properties) { + for (property_name, property_schema) in properties.iter_mut() { + if let Some(property_schema) = property_schema.as_object_mut() { + if !has_schema_metadata_attr_str( + property_schema, + constants::DOCS_META_HUMAN_NAME, + ) { + let human_name = generate_human_friendly_string(property_name); + set_schema_metadata_attr_str( + property_schema, + constants::DOCS_META_HUMAN_NAME, + human_name, + ); + } + } + } + } + } +} + +fn has_schema_metadata_attr_str(schema: &SchemaObject, key: &str) -> bool { + get_schema_metadata_attr_str(schema, key).is_some() +} + +fn get_schema_metadata_attr_str<'a>(schema: &'a SchemaObject, key: &str) -> Option<&'a str> { + schema + .extensions + .get(constants::METADATA) + .and_then(|metadata| metadata.get(key)) + .and_then(|value| value.as_str()) +} + +fn set_schema_metadata_attr_str(schema: &mut SchemaObject, key: &str, value: String) { + let metadata = schema + .extensions + .entry(constants::METADATA.to_string()) + .or_insert_with(|| Value::Object(serde_json::Map::new())); + + let metadata_map = metadata + .as_object_mut() + .expect("schema metadata must always be an object"); + metadata_map.insert(key.to_string(), Value::String(value)); +} + +#[cfg(test)] +mod tests { + use serde_json::json; + use vector_config_common::schema::visit::Visitor; + + use crate::schema::visitors::test::{as_schema, assert_schemas_eq}; + + use super::GenerateHumanFriendlyNameVisitor; + + #[test] + fn logical_name() { + let mut actual_schema = as_schema(json!({ + "type": "string", + "_metadata": { + "logical_name": "LogToMetric" + } + })); + + let expected_schema = as_schema(json!({ + "type": "string", + "_metadata": { + "docs::human_name": "Log To Metric", + "logical_name": "LogToMetric" + } + })); + + let mut visitor = GenerateHumanFriendlyNameVisitor; + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn logical_name_with_replacement() { + let mut actual_schema = as_schema(json!({ + "type": "string", + "_metadata": { + "logical_name": "AwsCloudwatchLogs" + } + })); + + let expected_schema = as_schema(json!({ + "type": "string", + "_metadata": { + "docs::human_name": "AWS CloudWatch Logs", + "logical_name": "AwsCloudwatchLogs" + } + })); + + let mut visitor = GenerateHumanFriendlyNameVisitor; + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn property_name() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "store_key": { "type": "boolean" } + } + })); + + let expected_schema = as_schema(json!({ + "type": "object", + "properties": { + "store_key": { + "type": "boolean", + "_metadata": { + "docs::human_name": "Store Key" + } + } + } + })); + + let mut visitor = GenerateHumanFriendlyNameVisitor; + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn property_name_with_replacement() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "store_api_key": { "type": "boolean" } + } + })); + + let expected_schema = as_schema(json!({ + "type": "object", + "properties": { + "store_api_key": { + "type": "boolean", + "_metadata": { + "docs::human_name": "Store API Key" + } + } + } + })); + + let mut visitor = GenerateHumanFriendlyNameVisitor; + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn logical_name_override() { + let mut actual_schema = as_schema(json!({ + "type": "string", + "_metadata": { + "docs::human_name": "AWS EC2 Metadata", + "logical_name": "Ec2Metadata" + } + })); + + let expected_schema = actual_schema.clone(); + + let mut visitor = GenerateHumanFriendlyNameVisitor; + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn property_name_override() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "store_api_key": { + "type": "boolean", + "_metadata": { + "docs::human_name": "Store_api_key" + } + } + } + })); + + let expected_schema = actual_schema.clone(); + + let mut visitor = GenerateHumanFriendlyNameVisitor; + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn mixed_with_replacement() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "store_api_key": { "type": "boolean" } + }, + "_metadata": { + "logical_name": "AwsEc2Metadata" + } + })); + + let expected_schema = as_schema(json!({ + "type": "object", + "properties": { + "store_api_key": { + "type": "boolean", + "_metadata": { + "docs::human_name": "Store API Key" + } + } + }, + "_metadata": { + "docs::human_name": "AWS EC2 Metadata", + "logical_name": "AwsEc2Metadata" + } + })); + + let mut visitor = GenerateHumanFriendlyNameVisitor; + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } +} diff --git a/lib/vector-config/src/schema/visitors/inline_single.rs b/lib/vector-config/src/schema/visitors/inline_single.rs new file mode 100644 index 0000000000000..4aee9499b2398 --- /dev/null +++ b/lib/vector-config/src/schema/visitors/inline_single.rs @@ -0,0 +1,349 @@ +use std::collections::{HashMap, HashSet}; + +use serde_json::Value; +use tracing::debug; +use vector_config_common::schema::{visit::Visitor, *}; + +use crate::schema::visitors::merge::Mergeable; + +use super::scoped_visit::{ + visit_schema_object_scoped, SchemaReference, SchemaScopeStack, ScopedVisitor, +}; + +/// A visitor that inlines schema references where the referenced schema is only referenced once. +/// +/// In many cases, the schema generation will produce schema definitions where either generics or +/// flattening are involved, which leads to schema definitions that may only be referenced by one +/// other schema definition, and so on. +/// +/// This is suboptimal due to the "pointer chasing" involved to resolve those schema references, +/// when there's no reason to inherently have a schema be defined such that it can be referenced. +/// +/// This visitor collects a list of all schema references, and for any schemas which are referenced +/// only once, will replace those references by inlining the referenced schema directly, and +/// deleting the schema definition from the root definitions. +#[derive(Debug, Default)] +pub struct InlineSingleUseReferencesVisitor { + eligible_to_inline: HashSet, +} + +impl InlineSingleUseReferencesVisitor { + pub fn from_settings(_: &SchemaSettings) -> Self { + Self { + eligible_to_inline: HashSet::new(), + } + } +} + +impl Visitor for InlineSingleUseReferencesVisitor { + fn visit_root_schema(&mut self, root: &mut RootSchema) { + // Build a map of schema references and the number of times they're referenced through the + // entire schema, by visiting the root schema in a recursive fashion, using a helper visitor. + let mut occurrence_visitor = OccurrenceVisitor::default(); + occurrence_visitor.visit_root_schema(root); + let occurrence_map = occurrence_visitor.into_occurrences(); + + self.eligible_to_inline = occurrence_map + .into_iter() + // Filter out any schemas which have more than one occurrence, as naturally, we're + // trying to inline single-use schema references. :) + .filter_map(|(def_name, occurrences)| (occurrences == 1).then_some(def_name)) + // However, we'll also filter out some specific schema definitions which are only + // referenced once, specifically: component base types and component types themselves. + // + // We do this as a lot of the tooling that parses the schema to generate documentation, + // and the like, depends on these schemas existing in the top-level definitions for easy + // lookup. + .filter(|def_name| { + let schema = root + .definitions + .get(def_name.as_ref()) + .and_then(Schema::as_object) + .expect("schema definition must exist"); + + is_inlineable_schema(def_name.as_ref(), schema) + }) + .map(|s| s.as_ref().to_string()) + .collect::>(); + + // Now run our own visitor logic, which will use the inline eligibility to determine if a + // schema reference in a being-visited schema should be replaced inline with the original + // referenced schema, in turn removing the schema definition. + visit::visit_root_schema(self, root); + + // Now remove all of the definitions for schemas that were eligible for inlining. + for schema_def_name in self.eligible_to_inline.drain() { + debug!( + referent = schema_def_name, + "Removing schema definition from root schema." + ); + + root.definitions + .remove(&schema_def_name) + .expect("referenced schema must exist in definitions"); + } + } + + fn visit_schema_object( + &mut self, + definitions: &mut Map, + schema: &mut SchemaObject, + ) { + // Recursively visit this schema first. + visit::visit_schema_object(self, definitions, schema); + + // If this schema has a schema reference, see if it's in our inline eligibility map. If so, + // we remove the referenced schema from the definitions, and then merge it into the current + // schema, after removing the `$ref` field. + if let Some(schema_ref) = schema.reference.as_ref().cloned() { + let schema_ref = get_cleaned_schema_reference(&schema_ref); + if self.eligible_to_inline.contains(schema_ref) { + let referenced_schema = definitions + .get(schema_ref) + .expect("referenced schema must exist in definitions"); + + if let Schema::Object(referenced_schema) = referenced_schema { + debug!( + referent = schema_ref, + "Inlining eligible schema reference into current schema." + ); + + schema.reference = None; + schema.merge(referenced_schema); + } + } + } + } +} + +fn is_inlineable_schema(definition_name: &str, schema: &SchemaObject) -> bool { + static DISALLOWED_SCHEMAS: &[&str] = &[ + "vector::sources::Sources", + "vector::transforms::Transforms", + "vector::sinks::Sinks", + ]; + + // We want to avoid inlining all of the relevant top-level types used for defining components: + // the "outer" types (i.e. `SinkOuter`), the enum/collection types (i.e. the big `Sources` + // enum), and the component configuration types themselves (i.e. `AmqpSinkConfig`). + // + // There's nothing _technically_ wrong with doing so, but it would break downstream consumers of + // the schema that parse it in order to extract the individual components and other + // component-specific metadata. + let is_component_base = get_schema_metadata_attr(schema, "docs::component_base_type").is_some(); + let is_component = get_schema_metadata_attr(schema, "docs::component_type").is_some(); + + let is_allowed_schema = !DISALLOWED_SCHEMAS.contains(&definition_name); + + !is_component_base && !is_component && is_allowed_schema +} + +#[derive(Debug, Default)] +struct OccurrenceVisitor { + scope_stack: SchemaScopeStack, + occurrence_map: HashMap>, +} + +impl OccurrenceVisitor { + fn into_occurrences(self) -> HashMap { + self.occurrence_map + .into_iter() + .map(|(k, v)| (k, v.len())) + .collect() + } +} + +impl Visitor for OccurrenceVisitor { + fn visit_schema_object( + &mut self, + definitions: &mut Map, + schema: &mut SchemaObject, + ) { + visit_schema_object_scoped(self, definitions, schema); + + if let Some(current_schema_ref) = schema.reference.as_ref() { + // Track the named "parent" schema for the schema we're currently visiting so that if we + // visit this schema again, we don't double count any schema references that it has. The + // "parent" schema is simply the closest ancestor schema that was itself a schema + // reference, or "Root", which represents the oldest schema ancestor in the document. + // + // This lets us couple with scenarios where schema A references schema B, and is the + // only actual direct schema reference to schema B, but due to multiple schemas + // referencing schema A, would otherwise lead to both A and B being visited multiple + // times. + let current_parent_schema_ref = self.get_current_schema_scope().clone(); + let current_schema_ref = get_cleaned_schema_reference(current_schema_ref); + + let occurrences = self + .occurrence_map + .entry(current_schema_ref.into()) + .or_default(); + occurrences.insert(current_parent_schema_ref); + } + } +} + +impl ScopedVisitor for OccurrenceVisitor { + fn push_schema_scope>(&mut self, scope: S) { + self.scope_stack.push(scope.into()); + } + + fn pop_schema_scope(&mut self) { + self.scope_stack.pop().expect("stack was empty during pop"); + } + + fn get_current_schema_scope(&self) -> &SchemaReference { + self.scope_stack.current().unwrap_or(&SchemaReference::Root) + } +} + +fn get_schema_metadata_attr<'a>(schema: &'a SchemaObject, key: &str) -> Option<&'a Value> { + schema + .extensions + .get("_metadata") + .and_then(|metadata| metadata.get(key)) +} + +#[cfg(test)] +mod tests { + use serde_json::json; + use vector_config_common::schema::visit::Visitor; + + use crate::schema::visitors::test::{as_schema, assert_schemas_eq}; + + use super::InlineSingleUseReferencesVisitor; + + #[test] + fn no_refs() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "a": { "type": "string" } + } + })); + + let expected_schema = actual_schema.clone(); + + let mut visitor = InlineSingleUseReferencesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn single_ref_single_usage() { + let mut actual_schema = as_schema(json!({ + "$ref": "#/definitions/simple", + "definitions": { + "simple": { + "type": "object", + "properties": { + "a": { "type": "string" } + } + } + } + })); + + let mut visitor = InlineSingleUseReferencesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "type": "object", + "properties": { + "a": { "type": "string" } + }, + })); + + assert_schemas_eq(expected_schema, actual_schema); + } + + // TODO(tobz): These two tests are ignored because the inliner currently works off of schema + // reference scopes, so two object properties within the same schema don't count as two + // instances of a schema being referenced. + // + // We need to refactor schema scopes to be piecemeal extensible more in the way of how + // `jsonschema` does it rather than an actual stack.... the current approach is good enough for + // now, but not optimal in the way that it could be. + // + // These are here for when I improve the situation after getting this merged. + #[test] + #[ignore] + fn single_ref_multiple_usages() { + let mut actual_schema = as_schema(json!({ + "definitions": { + "simple": { + "type": "object", + "properties": { + "a": { "type": "string" } + } + } + }, + "type": "object", + "properties": { + "a": { "$ref": "#/definitions/simple" }, + "b": { "$ref": "#/definitions/simple" } + } + })); + + let expected_schema = actual_schema.clone(); + + let mut visitor = InlineSingleUseReferencesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + #[ignore] + fn multiple_refs_mixed_usages() { + let mut actual_schema = as_schema(json!({ + "definitions": { + "simple": { + "type": "object", + "properties": { + "a": { "type": "string" } + } + }, + "advanced": { + "type": "object", + "properties": { + "b": { "type": "string" } + } + } + }, + "type": "object", + "properties": { + "a": { "$ref": "#/definitions/simple" }, + "b": { "$ref": "#/definitions/simple" }, + "c": { "$ref": "#/definitions/advanced" }, + } + })); + + let mut visitor = InlineSingleUseReferencesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "definitions": { + "simple": { + "type": "object", + "properties": { + "a": { "type": "string" } + } + } + }, + "type": "object", + "properties": { + "a": { "$ref": "#/definitions/simple" }, + "b": { "$ref": "#/definitions/simple" }, + "c": { + "type": "object", + "properties": { + "b": { "type": "string" } + } + } + } + })); + + assert_schemas_eq(expected_schema, actual_schema); + } +} diff --git a/lib/vector-config/src/schema/visitors/merge.rs b/lib/vector-config/src/schema/visitors/merge.rs new file mode 100644 index 0000000000000..28b724d602c5c --- /dev/null +++ b/lib/vector-config/src/schema/visitors/merge.rs @@ -0,0 +1,287 @@ +#![allow(clippy::borrowed_box)] + +use std::mem::discriminant; + +use serde_json::Value; +use vector_config_common::schema::*; + +/// A type that can be merged with itself. +pub trait Mergeable { + fn merge(&mut self, other: &Self); +} + +impl Mergeable for SchemaObject { + fn merge(&mut self, other: &Self) { + // The logic is pretty straightforward: we merge `other` into `self`, with `self` having the + // higher precedence. + // + // Additionally, we only merge logical schema chunks: if the destination schema has object + // properties defined, and the source schema has some object properties that don't exist in + // the destination, they will be merged, but if there is any overlap, then the object + // properties in the destination would remain untouched. This merging logic applies to all + // map-based types. + // + // For standalone fields, such as title or description, the destination always has higher + // precedence. For optional fields, whichever version (destination or source) is present + // will win, except for when both are present, then the individual fields within the + // optional type will be merged according to the normal precedence rules. + merge_optional(&mut self.reference, other.reference.as_ref()); + merge_schema_metadata(&mut self.metadata, other.metadata.as_ref()); + merge_schema_instance_type(&mut self.instance_type, other.instance_type.as_ref()); + merge_schema_format(&mut self.format, other.format.as_ref()); + merge_schema_enum_values(&mut self.enum_values, other.enum_values.as_ref()); + merge_schema_const_value(&mut self.const_value, other.const_value.as_ref()); + merge_schema_subschemas(&mut self.subschemas, other.subschemas.as_ref()); + merge_schema_number_validation(&mut self.number, other.number.as_ref()); + merge_schema_string_validation(&mut self.string, other.string.as_ref()); + merge_schema_array_validation(&mut self.array, other.array.as_ref()); + merge_schema_object_validation(&mut self.object, other.object.as_ref()); + merge_schema_extensions(&mut self.extensions, &other.extensions); + } +} + +impl Mergeable for Value { + fn merge(&mut self, other: &Self) { + // We do a check here for ensuring both value discriminants are the same type. This is + // specific to `Value` but we should never really be merging identical keys together that + // have differing value types, as that is indicative of a weird overlap in keys between + // different schemas. + // + // We _may_ need to relax this in practice/in the future, but it's a solid invariant to + // enforce for the time being. + if discriminant(self) != discriminant(other) { + panic!("Tried to merge two `Value` types together with differing types!\n\nSelf: {:?}\n\nOther: {:?}", self, other); + } + + match (self, other) { + // Maps get merged recursively. + (Value::Object(self_map), Value::Object(other_map)) => { + self_map.merge(other_map); + } + // Arrays get merged together indiscriminately. + (Value::Array(self_array), Value::Array(other_array)) => { + self_array.extend(other_array.iter().cloned()); + } + // We don't merge any other value types together. + _ => {} + } + } +} + +impl Mergeable for Schema { + fn merge(&mut self, other: &Self) { + match (self, other) { + // We don't merge schemas together if either of them is a boolean schema. + (Schema::Bool(_), _) | (_, Schema::Bool(_)) => {} + (Schema::Object(self_schema), Schema::Object(other_schema)) => { + self_schema.merge(other_schema); + } + } + } +} + +impl Mergeable for serde_json::Map { + fn merge(&mut self, other: &Self) { + for (key, value) in other { + match self.get_mut(key) { + None => { + self.insert(key.clone(), value.clone()); + } + Some(existing) => existing.merge(value), + } + } + } +} + +impl Mergeable for Map +where + K: Clone + Eq + Ord, + V: Clone + Mergeable, +{ + fn merge(&mut self, other: &Self) { + for (key, value) in other { + match self.get_mut(key) { + None => { + self.insert(key.clone(), value.clone()); + } + Some(existing) => existing.merge(value), + } + } + } +} + +fn merge_schema_metadata(destination: &mut Option>, source: Option<&Box>) { + merge_optional_with(destination, source, |existing, new| { + merge_optional(&mut existing.id, new.id.as_ref()); + merge_optional(&mut existing.title, new.title.as_ref()); + merge_optional(&mut existing.description, new.description.as_ref()); + merge_optional(&mut existing.default, new.default.as_ref()); + merge_bool(&mut existing.deprecated, new.deprecated); + merge_bool(&mut existing.read_only, new.read_only); + merge_bool(&mut existing.write_only, new.write_only); + merge_collection(&mut existing.examples, &new.examples); + }); +} + +fn merge_schema_instance_type( + destination: &mut Option>, + source: Option<&SingleOrVec>, +) { + merge_optional_with(destination, source, |existing, new| { + let mut deduped = existing.into_iter().chain(new).cloned().collect::>(); + deduped.dedup(); + + *existing = deduped.into(); + }); +} + +fn merge_schema_format(destination: &mut Option, source: Option<&String>) { + merge_optional(destination, source); +} + +fn merge_schema_enum_values(destination: &mut Option>, source: Option<&Vec>) { + merge_optional_with(destination, source, merge_collection); +} + +fn merge_schema_const_value(destination: &mut Option, source: Option<&Value>) { + merge_optional(destination, source); +} + +fn merge_schema_subschemas( + destination: &mut Option>, + source: Option<&Box>, +) { + merge_optional_with(destination, source, |existing, new| { + merge_optional_with(&mut existing.all_of, new.all_of.as_ref(), merge_collection); + merge_optional_with(&mut existing.any_of, new.any_of.as_ref(), merge_collection); + merge_optional_with(&mut existing.one_of, new.one_of.as_ref(), merge_collection); + merge_optional(&mut existing.if_schema, new.if_schema.as_ref()); + merge_optional(&mut existing.then_schema, new.then_schema.as_ref()); + merge_optional(&mut existing.else_schema, new.else_schema.as_ref()); + merge_optional(&mut existing.not, new.not.as_ref()); + }); +} + +fn merge_schema_number_validation( + destination: &mut Option>, + source: Option<&Box>, +) { + merge_optional_with(destination, source, |existing, new| { + merge_optional(&mut existing.multiple_of, new.multiple_of.as_ref()); + merge_optional(&mut existing.maximum, new.maximum.as_ref()); + merge_optional( + &mut existing.exclusive_maximum, + new.exclusive_minimum.as_ref(), + ); + merge_optional(&mut existing.minimum, new.minimum.as_ref()); + merge_optional( + &mut existing.exclusive_minimum, + new.exclusive_minimum.as_ref(), + ); + }); +} + +fn merge_schema_string_validation( + destination: &mut Option>, + source: Option<&Box>, +) { + merge_optional_with(destination, source, |existing, new| { + merge_optional(&mut existing.max_length, new.max_length.as_ref()); + merge_optional(&mut existing.min_length, new.min_length.as_ref()); + merge_optional(&mut existing.pattern, new.pattern.as_ref()); + }); +} + +fn merge_schema_array_validation( + destination: &mut Option>, + source: Option<&Box>, +) { + merge_optional_with(destination, source, |existing, new| { + merge_optional_with(&mut existing.items, new.items.as_ref(), merge_collection); + merge_optional( + &mut existing.additional_items, + new.additional_items.as_ref(), + ); + merge_optional( + &mut existing.unevaluated_items, + new.unevaluated_items.as_ref(), + ); + merge_optional(&mut existing.max_items, new.max_items.as_ref()); + merge_optional(&mut existing.min_items, new.min_items.as_ref()); + merge_optional(&mut existing.unique_items, new.unique_items.as_ref()); + merge_optional(&mut existing.contains, new.contains.as_ref()); + }); +} + +fn merge_schema_object_validation( + destination: &mut Option>, + source: Option<&Box>, +) { + merge_optional_with(destination, source, |existing, new| { + merge_optional(&mut existing.max_properties, new.max_properties.as_ref()); + merge_optional(&mut existing.min_properties, new.min_properties.as_ref()); + merge_collection(&mut existing.required, &new.required); + merge_map(&mut existing.properties, &new.properties); + merge_map(&mut existing.pattern_properties, &new.pattern_properties); + merge_optional( + &mut existing.additional_properties, + new.additional_properties.as_ref(), + ); + merge_optional( + &mut existing.unevaluated_properties, + new.unevaluated_properties.as_ref(), + ); + merge_optional(&mut existing.property_names, new.property_names.as_ref()); + }); +} + +fn merge_schema_extensions(destination: &mut Map, source: &Map) { + merge_map(destination, source); +} + +fn merge_bool(destination: &mut bool, source: bool) { + // We only treat `true` as a merge-worthy value. + if source { + *destination = true; + } +} + +fn merge_collection<'a, E, I, T>(destination: &mut E, source: I) +where + E: Extend, + I: IntoIterator, + T: Clone + 'a, +{ + destination.extend(source.into_iter().cloned()); +} + +fn merge_map(destination: &mut Map, source: &Map) +where + K: Clone + Eq + Ord, + V: Clone + Mergeable, +{ + destination.merge(source); +} + +fn merge_optional(destination: &mut Option, source: Option<&T>) { + merge_optional_with(destination, source, |_, _| {}); +} + +fn merge_optional_with<'a, T, F>(destination: &'a mut Option, source: Option<&'a T>, f: F) +where + T: Clone, + F: Fn(&'a mut T, &'a T), +{ + match destination { + // If the destination is empty, we use whatever we have in `source`. Otherwise, we leave + // `destination` as-is. + None => *destination = source.cloned(), + // If `destination` isn't empty, and neither is `source`, then pass them both to `f` to + // let it handle the actual merge logic. + Some(destination) => { + if let Some(source) = source { + f(destination, source); + } + } + } +} diff --git a/lib/vector-config/src/schema/visitors/mod.rs b/lib/vector-config/src/schema/visitors/mod.rs new file mode 100644 index 0000000000000..7b459b69fc5ba --- /dev/null +++ b/lib/vector-config/src/schema/visitors/mod.rs @@ -0,0 +1,12 @@ +mod human_name; +mod inline_single; +pub mod merge; +pub mod scoped_visit; +mod unevaluated; + +#[cfg(test)] +mod test; + +pub use self::human_name::GenerateHumanFriendlyNameVisitor; +pub use self::inline_single::InlineSingleUseReferencesVisitor; +pub use self::unevaluated::DisallowUnevaluatedPropertiesVisitor; diff --git a/lib/vector-config/src/schema/visitors/scoped_visit.rs b/lib/vector-config/src/schema/visitors/scoped_visit.rs new file mode 100644 index 0000000000000..937a4ee4920dd --- /dev/null +++ b/lib/vector-config/src/schema/visitors/scoped_visit.rs @@ -0,0 +1,180 @@ +use std::collections::VecDeque; + +use vector_config_common::schema::{visit::Visitor, *}; + +/// A schema reference which can refer to either a schema definition or the root schema itself. +#[derive(Clone, Debug, Eq, Hash, PartialEq)] +pub enum SchemaReference { + /// A defined schema. + Definition(String), + + /// The root schema itself. + Root, +} + +impl std::fmt::Display for SchemaReference { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Definition(name) => write!(f, "{}", name), + Self::Root => write!(f, ""), + } + } +} + +impl<'a, T> From<&'a T> for SchemaReference +where + T: AsRef + ?Sized, +{ + fn from(value: &'a T) -> Self { + Self::Definition(value.as_ref().to_string()) + } +} + +impl AsRef for SchemaReference { + fn as_ref(&self) -> &str { + match self { + Self::Definition(name) => name.as_str(), + Self::Root => "", + } + } +} + +/// The schema scope stack is used to understand where in the visiting of a root schema the visitor +/// currently is. All visiting will inherently start at the root, and continue to exist in the root +/// scope until a schema reference is resolved, and the visitor visits the resolved schema. Once +/// that happens, the resolved schema scope is pushed onto the stack, such that the scope is now the +/// schema reference. This can happen multiple times as subsequent schema references are resolved. +/// Once the visitor recurses back out of the resolved schema, it is popped from the stack. +#[derive(Debug, Default)] +pub struct SchemaScopeStack { + stack: VecDeque, +} + +impl SchemaScopeStack { + pub fn push>(&mut self, scope: S) { + self.stack.push_front(scope.into()); + } + + pub fn pop(&mut self) -> Option { + self.stack.pop_front() + } + + pub fn current(&self) -> Option<&SchemaReference> { + self.stack.front() + } +} + +pub trait ScopedVisitor: Visitor { + fn push_schema_scope>(&mut self, scope: S); + + fn pop_schema_scope(&mut self); + + fn get_current_schema_scope(&self) -> &SchemaReference; +} + +pub fn visit_schema_object_scoped( + sv: &mut SV, + definitions: &mut Map, + schema: &mut SchemaObject, +) { + if let Some(reference) = schema.reference.as_ref() { + let schema_def_key = get_cleaned_schema_reference(reference); + let mut referenced_schema = definitions + .get(schema_def_key) + .cloned() + .expect("schema reference should exist"); + + if let Schema::Object(referenced_schema) = &mut referenced_schema { + sv.push_schema_scope(schema_def_key); + + sv.visit_schema_object(definitions, referenced_schema); + + sv.pop_schema_scope(); + } + + definitions.insert(schema_def_key.to_string(), referenced_schema); + } + + if let Some(sub) = &mut schema.subschemas { + visit_vec_scoped(sv, definitions, &mut sub.all_of); + visit_vec_scoped(sv, definitions, &mut sub.any_of); + visit_vec_scoped(sv, definitions, &mut sub.one_of); + visit_box_scoped(sv, definitions, &mut sub.not); + visit_box_scoped(sv, definitions, &mut sub.if_schema); + visit_box_scoped(sv, definitions, &mut sub.then_schema); + visit_box_scoped(sv, definitions, &mut sub.else_schema); + } + + if let Some(arr) = &mut schema.array { + visit_single_or_vec_scoped(sv, definitions, &mut arr.items); + visit_box_scoped(sv, definitions, &mut arr.additional_items); + visit_box_scoped(sv, definitions, &mut arr.contains); + } + + if let Some(obj) = &mut schema.object { + visit_map_values_scoped(sv, definitions, &mut obj.properties); + visit_map_values_scoped(sv, definitions, &mut obj.pattern_properties); + visit_box_scoped(sv, definitions, &mut obj.additional_properties); + visit_box_scoped(sv, definitions, &mut obj.property_names); + } +} + +fn visit_box_scoped( + sv: &mut SV, + definitions: &mut Map, + target: &mut Option>, +) { + if let Some(s) = target { + if let Schema::Object(s) = s.as_mut() { + sv.visit_schema_object(definitions, s); + } + } +} + +fn visit_vec_scoped( + sv: &mut SV, + definitions: &mut Map, + target: &mut Option>, +) { + if let Some(vec) = target { + for s in vec { + if let Schema::Object(s) = s { + sv.visit_schema_object(definitions, s); + } + } + } +} + +fn visit_map_values_scoped( + sv: &mut SV, + definitions: &mut Map, + target: &mut Map, +) { + for s in target.values_mut() { + if let Schema::Object(s) = s { + sv.visit_schema_object(definitions, s); + } + } +} + +fn visit_single_or_vec_scoped( + sv: &mut SV, + definitions: &mut Map, + target: &mut Option>, +) { + match target { + None => {} + Some(SingleOrVec::Single(s)) => { + if let Schema::Object(s) = s.as_mut() { + sv.visit_schema_object(definitions, s); + } + } + Some(SingleOrVec::Vec(vec)) => { + for s in vec { + if let Schema::Object(s) = s { + sv.visit_schema_object(definitions, s); + } + } + } + } +} diff --git a/lib/vector-config/src/schema/visitors/test.rs b/lib/vector-config/src/schema/visitors/test.rs new file mode 100644 index 0000000000000..468560997260b --- /dev/null +++ b/lib/vector-config/src/schema/visitors/test.rs @@ -0,0 +1,15 @@ +use assert_json_diff::assert_json_eq; +use serde_json::Value; +use vector_config_common::schema::RootSchema; + +pub fn as_schema(value: Value) -> RootSchema { + serde_json::from_value(value).expect("should not fail to deserialize schema") +} + +#[track_caller] +pub fn assert_schemas_eq(expected: RootSchema, actual: RootSchema) { + let expected_json = serde_json::to_value(&expected).expect("should not fail"); + let actual_json = serde_json::to_value(&actual).expect("should not fail"); + + assert_json_eq!(expected_json, actual_json); +} diff --git a/lib/vector-config/src/schema/visitors/unevaluated.rs b/lib/vector-config/src/schema/visitors/unevaluated.rs new file mode 100644 index 0000000000000..105c3dbfcaac4 --- /dev/null +++ b/lib/vector-config/src/schema/visitors/unevaluated.rs @@ -0,0 +1,982 @@ +use std::{ + collections::{HashMap, HashSet}, + convert::identity, +}; + +use tracing::debug; +use vector_config_common::schema::{ + visit::{with_resolved_schema_reference, Visitor}, + *, +}; + +use crate::schema::visitors::merge::Mergeable; + +use super::scoped_visit::{ + visit_schema_object_scoped, SchemaReference, SchemaScopeStack, ScopedVisitor, +}; + +/// A visitor that marks schemas as closed by disallowing unknown properties via +/// `unevaluatedProperties`. +/// +/// This is the equivalent of `serde`'s `deny_unknown_fields` attribute: instead of only validating +/// the properties specified in the schema, and ignoring any properties present in the JSON +/// instance, any unevaluated properties are considered an error. +/// +/// This visitor selectively marks schemas with `unevaluatedProperties: false` in order to ensure +/// that unknown properties are not allowed, but also in a way that doesn't interact incorrectly +/// with advanced subschema validation, such as `oneOf` or `allOf`, as `unevaluatedProperties` +/// cannot simply be applied to any and all schemas indiscriminately. +#[derive(Debug, Default)] +pub struct DisallowUnevaluatedPropertiesVisitor { + scope_stack: SchemaScopeStack, + eligible_to_flatten: HashMap>, +} + +impl DisallowUnevaluatedPropertiesVisitor { + pub fn from_settings(_: &SchemaSettings) -> Self { + Self { + scope_stack: SchemaScopeStack::default(), + eligible_to_flatten: HashMap::new(), + } + } +} + +impl Visitor for DisallowUnevaluatedPropertiesVisitor { + fn visit_root_schema(&mut self, root: &mut RootSchema) { + let eligible_to_flatten = build_closed_schema_flatten_eligibility_mappings(root); + + debug!( + "Found {} referents eligible for flattening: {:?}", + eligible_to_flatten.len(), + eligible_to_flatten, + ); + + self.eligible_to_flatten = eligible_to_flatten; + + visit::visit_root_schema(self, root); + } + + fn visit_schema_object( + &mut self, + definitions: &mut Map, + schema: &mut SchemaObject, + ) { + // If this schema has a schema reference, check our flattening eligibility map to figure out + // if we need to merge it in. + // + // When a given schema reference (the actual target of `$ref`) is eligible for flattening in + // a given schema (what we're currently visiting) then it means that this schema would, + // based on its composition, lead to the schema reference either being marked or unmarked. + // + // We flatten the schema reference into this schema to avoid that from occurring, and we do + // so based on whichever group of referrers -- the schemas which reference the particular + // target schema -- is smaller, such that we do the minimum number of flattenings per target + // schema, to keep the schema as small as we reasonably can. + if let Some(reference) = schema.reference.as_ref() { + let current_parent_schema_ref = self.get_current_schema_scope(); + + if let Some(referrers) = self.eligible_to_flatten.get(reference) { + if referrers.contains(current_parent_schema_ref) { + let current_schema_ref = get_cleaned_schema_reference(reference); + let referenced_schema = definitions + .get(current_schema_ref) + .expect("schema definition must exist"); + + debug!( + referent = current_schema_ref, + referrer = current_parent_schema_ref.as_ref(), + "Found eligible referent/referrer mapping." + ); + + if let Schema::Object(referenced_schema) = referenced_schema { + debug!( + referent = current_schema_ref, + referrer = current_parent_schema_ref.as_ref(), + "Flattening referent into referrer." + ); + + schema.reference = None; + schema.merge(referenced_schema); + } + } + } + } + + // Visit the schema object first so that we recurse the overall schema in a depth-first + // fashion, marking eligible object schemas as closed. + visit_schema_object_scoped(self, definitions, schema); + + // Next, see if this schema has any subschema validation: `allOf`, `oneOf`, or `anyOf`. + // + // If so, we ensure that none of them have `unevaluatedProperties` set at all. We do this + // because subschema validation involves each subschema seeing the entire JSON instance, or + // seeing a value that's unrelated: we know that some schemas in a `oneOf` won't match, and + // that's fine, but if they're marked with `unevaluatedProperties: false`, they'll fail... + // which is why we remove that from the subschemas themselves but essentially hoist it up + // to the level of the `allOf`/`oneOf`/`anyOf`, where it can apply the correct behavior. + let mut had_relevant_subschemas = false; + if let Some(subschema) = schema.subschemas.as_mut() { + let subschemas = get_object_subschemas_from_parent_mut(subschema.as_mut()); + for subschema in subschemas { + had_relevant_subschemas = true; + + unmark_or_flatten_schema(definitions, subschema); + } + } + + // If we encountered any subschema validation, or if this schema itself is an object schema, + // mark the schema as closed by setting `unevaluatedProperties` to `false`. + if had_relevant_subschemas || is_object_schema(schema) { + mark_schema_closed(schema); + } + } +} + +impl ScopedVisitor for DisallowUnevaluatedPropertiesVisitor { + fn push_schema_scope>(&mut self, scope: S) { + self.scope_stack.push(scope.into()); + } + + fn pop_schema_scope(&mut self) { + self.scope_stack.pop().expect("stack was empty during pop"); + } + + fn get_current_schema_scope(&self) -> &SchemaReference { + self.scope_stack.current().unwrap_or(&SchemaReference::Root) + } +} + +fn unmark_or_flatten_schema(definitions: &mut Map, schema: &mut SchemaObject) { + // If the schema is an object schema, we'll unset `unevaluatedProperties` directly. + // If it isn't an object schema, we'll see if the subschema is actually a schema + // reference, and if so, we'll make sure to unset `unevaluatedProperties` on the + // resolved schema reference itself. + // + // Like the top-level schema reference logic, this ensures the schema definition is + // updated for subsequent resolution. + if let Some(object) = schema.object.as_mut() { + debug!("Unmarked object subschema directly."); + + object.unevaluated_properties = Some(Box::new(Schema::Bool(true))); + } else { + with_resolved_schema_reference(definitions, schema, |_, schema_ref, resolved| { + if let Schema::Object(resolved) = resolved { + if let Some(object) = resolved.object.as_mut() { + debug!( + referent = schema_ref, + "Unmarked subschema by traversing schema reference." + ); + + object.unevaluated_properties = Some(Box::new(Schema::Bool(true))); + } + } + }); + } +} + +/// A referent schema that carries the chance of being unmarking by its referrer. +#[derive(Clone, Debug, Eq, Hash, PartialEq)] +struct MarkableReferent { + // Whether or not the referent would be unmarked by the referrer. + would_unmark: bool, + + /// The referent schema. + referent: SchemaReference, +} + +impl MarkableReferent { + fn would_unmark>(referent: R) -> Self { + Self { + would_unmark: true, + referent: referent.into(), + } + } + + fn would_not_unmark>(referent: R) -> Self { + Self { + would_unmark: false, + referent: referent.into(), + } + } + + fn with_new_referent>(&self, new_referent: R) -> Self { + Self { + would_unmark: self.would_unmark, + referent: new_referent.into(), + } + } +} + +fn build_closed_schema_flatten_eligibility_mappings( + root_schema: &RootSchema, +) -> HashMap> { + // For all definitions, visit _just_ the defined schema (no recursing) and build a map of child + // definitions -> (mark eligibility, [(parent definition, would_unmark)]), such that we know + // exactly which schemas refer to any given schema definition and if they would lead to the + // child schema being marked as `unevaluatedProperties: false`. + // + // We would filter out any child definitions that aren't eligible to be marked. For the + // remaining child schemas, we group the parent definitions by `would_unmark`, which indicates + // whether or not the given parent definition would cause the child definition to be unmarked. + // + // As an example, we would expect a parent schema referring to a child schema via `allOf` to + // unmark the child schema, while a parent schema referring to a child schema within a specific + // property to not unmark the child schema. + // + // With the grouped parent definitions, take the smaller of the two groups. This represents the + // set of parent schemas that we will indicate as needing to use a flattened version of the + // child schema when we execute our primary visit logic. + + // Iterate over all definitions, and once more for the root schema, and generate a map of parent + // schema -> (would_unmark, child schema). + let mut parent_to_child = HashMap::new(); + for (definition_name, definition) in &root_schema.definitions { + // We only care about full-fledged schemas, not boolean schemas. + let parent_schema = match definition { + Schema::Bool(_) => continue, + Schema::Object(schema) => schema, + }; + + debug!( + "Evaluating schema definition '{}' for markability.", + definition_name + ); + + // If a schema itself would not be considered markable, then we don't need to consider the + // eligibility between parent/child since there's nothing to drive the "now unmark the child + // schemas" logic. + if !is_markable_schema(&root_schema.definitions, parent_schema) { + debug!("Schema definition '{}' not markable.", definition_name); + continue; + } else { + debug!( + "Schema definition '{}' markable. Collecting referents.", + definition_name + ); + } + + // Collect all referents for this definition, which includes both property-based referents + // and subschema-based referents. Property-based referents are not required to be unmarked, + // while subschema-based referents must be unmarked. + let mut referents = HashSet::new(); + get_referents(parent_schema, &mut referents); + + debug!( + "Collected {} referents for '{}': {:?}", + referents.len(), + definition_name, + referents + ); + + // Store the parent/child mapping. + parent_to_child.insert(SchemaReference::from(definition_name), referents); + } + + // Collect the referents from the root schema. + let mut root_referents = HashSet::new(); + get_referents(&root_schema.schema, &mut root_referents); + parent_to_child.insert(SchemaReference::Root, root_referents); + + // Now we build a reverse map, going from child -> parent. We'll iterate over every child + // referent, for every parent/child entry, calculating the set of referrers, and if they would + // require unmarking the child. + let mut child_to_parent = HashMap::new(); + for (parent_schema_ref, child_referents) in parent_to_child { + for child_referent in child_referents { + let entry = child_to_parent + .entry(child_referent.referent.as_ref().to_string()) + .or_insert_with(HashSet::new); + + // Transform the child referent into a parent referent, which preserves the "would + // unmark" value but now points to the parent instead, and add it to the list of + // _referrers_ for the child. + entry.insert(child_referent.with_new_referent(parent_schema_ref.clone())); + } + } + + let mut eligible_to_flatten = HashMap::new(); + for (child_schema_ref, referrers) in child_to_parent { + // Don't flatten schemas which have less than two referrers. + if referrers.len() < 2 { + continue; + } + + let would_unmark = referrers + .iter() + .filter(|r| r.would_unmark) + .map(|r| r.referent.clone()) + .collect::>(); + let would_not_unmark = referrers + .iter() + .filter(|r| !r.would_unmark) + .map(|r| r.referent.clone()) + .collect::>(); + + if would_not_unmark.len() >= would_unmark.len() { + eligible_to_flatten.insert(child_schema_ref.to_string(), would_unmark); + } else { + eligible_to_flatten.insert(child_schema_ref.to_string(), would_not_unmark); + } + } + + eligible_to_flatten +} + +/// Determines whether a schema is eligible to be marked. +fn is_markable_schema(definitions: &Map, schema: &SchemaObject) -> bool { + // If the schema is an object schema, and does not have`additionalProperties` set, it can be + // marked, as marking a schema with both `unevaluatedProperties`/`additionalProperties` would + // otherwise be a logical inconsistency. + let has_additional_properties = schema + .object + .as_ref() + .and_then(|object| object.additional_properties.as_ref()) + .map(|schema| matches!(schema.as_ref(), Schema::Object(_))) + .unwrap_or(false); + + if is_object_schema(schema) && !has_additional_properties { + return true; + } + + // If the schema uses subschema validation -- specifically: `allOf`, `oneOf`, or `anyOf` -- then + // it should be marked, so long as one of the subschemas is actually an object schema. + // + // If we're dealing with something like a `oneOf` for `Option`, we'll have two + // subschemas: { "type": "null" } and { "$ref": "#/definitions/T" }. If the schema for `T` is, + // say, just a scalar schema, instead of an object schema... then it wouldn't be marked, and in + // turn, we wouldn't need to mark the schema for `Option`: there's no properties at all. + if let Some(subschema) = schema.subschemas.as_ref() { + let subschemas = get_object_subschemas_from_parent(subschema).collect::>(); + + debug!("{} subschemas detected.", subschemas.len()); + + let has_object_subschema = subschemas + .iter() + .any(|schema| is_markable_schema(definitions, schema)); + let has_referenced_object_subschema = subschemas + .iter() + .map(|subschema| { + subschema + .reference + .as_ref() + .and_then(|reference| { + let reference = get_cleaned_schema_reference(reference); + definitions.get_key_value(reference) + }) + .and_then(|(name, schema)| schema.as_object().map(|schema| (name, schema))) + .map_or(false, |(name, schema)| { + debug!( + "Following schema reference '{}' for subschema markability.", + name + ); + is_markable_schema(definitions, schema) + }) + }) + .any(identity); + + debug!( + "Schema {} object subschema(s) and {} referenced subschemas.", + if has_object_subschema { + "has" + } else { + "does not have" + }, + if has_referenced_object_subschema { + "has" + } else { + "does not have" + }, + ); + + if has_object_subschema || has_referenced_object_subschema { + return true; + } + } + + false +} + +/// Collects all referents from the given parent schema, and inserts them to `referents`. +/// +/// Property schemas from `properties`, `patternProperties`, and `additionalProperties` are checked. +/// Any such referents in a property schema are do not need to be unmarked as the "chain" between +/// parent/child is broken implicitly by the property-level scoping of the value they would be given +/// to validate. +/// +/// Subschemas from `allOf`, `oneOf`, and `anyOf` are also checked. As subschema validation implies +/// that each subschema will be given the same value to validate, even if the subschema only +/// represents a slice of the parent schema, there is a link between parent/child that requires the +/// child to be unmarked so that the parent can be marked to enforce `unevaluatedProperties` at the +/// correct scope. +/// +/// This function will recurse a schema object entirely, in terms of property schemas and +/// subschemas, but will not recurse through schema references. +fn get_referents(parent_schema: &SchemaObject, referents: &mut HashSet) { + if let Some(parent_object) = parent_schema.object.as_ref() { + // For both `properties` and `patternProperties`, collect the schema reference, if any, from + // all property schemas. + for (_, property_schema) in parent_object + .properties + .iter() + .chain(parent_object.pattern_properties.iter()) + { + if let Some(child_schema) = property_schema.as_object() { + if let Some(child_schema_ref) = child_schema.reference.as_ref() { + referents.insert(MarkableReferent::would_not_unmark(child_schema_ref)); + } else { + get_referents(child_schema, referents); + } + } + } + + // For `additionalProperties`, if present and defined as a schema object, collect the schema + // reference if one is set. + if let Some(additional_properties) = parent_object.additional_properties.as_ref() { + if let Some(child_schema) = additional_properties.as_ref().as_object() { + if let Some(child_schema_ref) = child_schema.reference.as_ref() { + referents.insert(MarkableReferent::would_not_unmark(child_schema_ref)); + } else { + get_referents(child_schema, referents); + } + } + } + } + + if let Some(subschema) = parent_schema.subschemas.as_ref() { + // For `allOf`, `oneOf`, and `anyOf`, collect the schema reference, if any, from their + // respective subschemas. + for subschema in get_object_subschemas_from_parent(subschema) { + if let Some(child_schema_ref) = subschema.reference.as_ref() { + referents.insert(MarkableReferent::would_unmark(child_schema_ref)); + } else { + get_referents(subschema, referents); + } + } + } +} + +fn get_object_subschemas_from_parent( + subschema: &SubschemaValidation, +) -> impl Iterator { + [ + subschema.all_of.as_ref(), + subschema.one_of.as_ref(), + subschema.any_of.as_ref(), + ] + .into_iter() + .flatten() + .flatten() + .filter_map(Schema::as_object) +} + +fn get_object_subschemas_from_parent_mut( + subschema: &mut SubschemaValidation, +) -> impl Iterator { + [ + subschema.all_of.as_mut(), + subschema.one_of.as_mut(), + subschema.any_of.as_mut(), + ] + .into_iter() + .flatten() + .flatten() + .filter_map(Schema::as_object_mut) +} + +fn mark_schema_closed(schema: &mut SchemaObject) { + // Make sure this schema doesn't also have `additionalProperties` set to a non-boolean schema, + // as it would be a logical inconsistency to then also set `unevaluatedProperties` to `false`. + // + // TODO: We may want to consider dropping `additionalProperties` entirely here if it's a boolean + // schema, as `unevaluatedProperties` would provide the equivalent behavior, and it avoids us + // running into weird validation issues where `additionalProperties` gets used in situations it + // can't handle, the same ones we switched to using `unevaluatedProperties` for in the first + // place... but realistically, we don't ourselves generated boolean schemas for + // `additionalProperties` through normal means, so it's not currently an issue that should even + // occur. + if let Some(Schema::Object(_)) = schema + .object() + .additional_properties + .as_ref() + .map(|v| v.as_ref()) + { + return; + } + + // As well, if `unevaluatedProperties` is already set, then we don't do anything. By default, + // the field on the Rust side will be unset, so if it's been set explicitly, that means another + // usage of this schema requires that it not be set to `false`. + if schema + .object + .as_ref() + .and_then(|object| object.unevaluated_properties.as_ref()) + .is_some() + { + return; + } + + schema.object().unevaluated_properties = Some(Box::new(Schema::Bool(false))); +} + +fn schema_type_matches( + schema: &SchemaObject, + instance_type: InstanceType, + allow_multiple: bool, +) -> bool { + match schema.instance_type.as_ref() { + Some(sov) => match sov { + SingleOrVec::Single(inner) => inner.as_ref() == &instance_type, + SingleOrVec::Vec(inner) => inner.contains(&instance_type) && allow_multiple, + }, + None => false, + } +} + +fn is_object_schema(schema: &SchemaObject) -> bool { + schema_type_matches(schema, InstanceType::Object, true) +} + +#[cfg(test)] +mod tests { + use serde_json::json; + use vector_config_common::schema::visit::Visitor; + + use crate::schema::visitors::test::{as_schema, assert_schemas_eq}; + + use super::DisallowUnevaluatedPropertiesVisitor; + + #[test] + fn basic_object_schema() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "a": { "type": "string" } + } + })); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "type": "object", + "properties": { + "a": { "type": "string" } + }, + "unevaluatedProperties": false + })); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn basic_object_schema_through_ref() { + let mut actual_schema = as_schema(json!({ + "$ref": "#/definitions/simple", + "definitions": { + "simple": { + "type": "object", + "properties": { + "a": { "type": "string" } + } + } + } + })); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "$ref": "#/definitions/simple", + "definitions": { + "simple": { + "type": "object", + "properties": { + "a": { "type": "string" } + }, + "unevaluatedProperties": false + } + } + })); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn all_of_with_basic_object_schemas() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "allOf": [{ + "type": "object", + "properties": { + "a": { "type": "string" } + } + }, + { + "type": "object", + "properties": { + "b": { "type": "string" } + } + }] + })); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "type": "object", + "allOf": [{ + "type": "object", + "properties": { + "a": { "type": "string" } + } + }, + { + "type": "object", + "properties": { + "b": { "type": "string" } + } + }], + "unevaluatedProperties": false + })); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn one_of_with_basic_object_schemas() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "oneOf": [{ + "type": "object", + "properties": { + "a": { "type": "string" } + } + }, + { + "type": "object", + "properties": { + "b": { "type": "string" } + } + }] + })); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "type": "object", + "oneOf": [{ + "type": "object", + "properties": { + "a": { "type": "string" } + } + }, + { + "type": "object", + "properties": { + "b": { "type": "string" } + } + }], + "unevaluatedProperties": false + })); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn any_of_with_basic_object_schemas() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "anyOf": [{ + "type": "object", + "properties": { + "a": { "type": "string" } + } + }, + { + "type": "object", + "properties": { + "b": { "type": "string" } + } + }] + })); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "type": "object", + "anyOf": [{ + "type": "object", + "properties": { + "a": { "type": "string" } + } + }, + { + "type": "object", + "properties": { + "b": { "type": "string" } + } + }], + "unevaluatedProperties": false + })); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn ignores_object_schema_with_non_boolean_additional_properties() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "a": { "type": "string" } + }, + "additionalProperties": { "type": "number" } + })); + let expected_schema = actual_schema.clone(); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn object_schema_with_boolean_additional_properties() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "a": { "type": "string" } + }, + "additionalProperties": false + })); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "type": "object", + "properties": { + "a": { "type": "string" } + }, + "additionalProperties": false, + "unevaluatedProperties": false + })); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn all_of_with_object_props_using_schema_refs() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "allOf": [{ + "type": "object", + "properties": { + "a": { "$ref": "#/definitions/subschema" } + } + }, + { + "type": "object", + "properties": { + "aa": { + "type": "object", + "properties": { + "a": { "$ref": "#/definitions/subschema" } + } + } + } + }], + "definitions": { + "subschema": { + "type": "object", + "properties": { + "f": { "type": "string" } + } + } + } + })); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "type": "object", + "allOf": [{ + "type": "object", + "properties": { + "a": { "$ref": "#/definitions/subschema" } + } + }, + { + "type": "object", + "properties": { + "aa": { + "type": "object", + "properties": { + "a": { "$ref": "#/definitions/subschema" } + }, + "unevaluatedProperties": false + } + } + }], + "definitions": { + "subschema": { + "type": "object", + "properties": { + "f": { "type": "string" } + }, + "unevaluatedProperties": false + } + }, + "unevaluatedProperties": false + })); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn conflicting_schema_usages_get_duplicated_and_flattened() { + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "acks": { "$ref": "#/definitions/acks" }, + "custom_acks": { "$ref": "#/definitions/custom_acks" } + }, + "definitions": { + "custom_acks": { + "allOf": [{ "type": "object", "properties": { "ack_count": { "type": "number" } } }, + { "$ref": "#/definitions/acks" }] + }, + "acks": { "type": "object", "properties": { "enabled": { "type": "boolean" } } } + } + })); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + let expected_schema = as_schema(json!({ + "type": "object", + "properties": { + "acks": { "$ref": "#/definitions/acks" }, + "custom_acks": { "$ref": "#/definitions/custom_acks" } + }, + "definitions": { + "custom_acks": { + "allOf": [ + { "type": "object", "properties": { "ack_count": { "type": "number" } } }, + { "type": "object", "properties": { "enabled": { "type": "boolean" } } } + ], + "unevaluatedProperties": false + }, + "acks": { + "type": "object", + "properties": { "enabled": { "type": "boolean" } }, + "unevaluatedProperties": false + } + }, + "unevaluatedProperties": false + })); + + assert_schemas_eq(expected_schema, actual_schema); + } + + #[test] + fn multiple_mark_unmark_references_flattened_efficiently() { + // This tests that if, for example, one schema reference would be marked and unmarked by + // multiple referrers, the referrers we choose to flatten the reference on are in the + // smaller group (i.e. we do as few flattenings as possible). + + let mut actual_schema = as_schema(json!({ + "type": "object", + "properties": { + "a": { "$ref": "#/definitions/a" }, + "b": { "$ref": "#/definitions/b" }, + "c": { "$ref": "#/definitions/c" }, + "one": { "$ref": "#/definitions/one" }, + "two": { "$ref": "#/definitions/two" } + }, + "definitions": { + "one": { + "allOf": [{ "$ref": "#/definitions/c" }] + }, + "two": { + "allOf": [{ "$ref": "#/definitions/b" }, { "$ref": "#/definitions/c" }] + }, + "a": { + "type": "object", + "properties": { "a": { "type": "boolean" } } + }, + "b": { + "type": "object", + "properties": { "b": { "type": "boolean" } } + }, + "c": { + "type": "object", + "properties": { "c": { "type": "boolean" } } + } + } + })); + + let mut visitor = DisallowUnevaluatedPropertiesVisitor::default(); + visitor.visit_root_schema(&mut actual_schema); + + // Expectations: + // - Schema A is only referenced in an object property, so it's marked normally. + // - Schema B is referenced twice -- once as an object property and once in a subschema -- + // so since we prioritize flattening usages that would unmark a schema when the + // would-unmark/would-not-unmark counts are equal, schema B is only flattened for the + // subschema usage. + // - Schema C is referenced three times -- once as an object property and twice in a + // subschema -- so since there's more would-unmark usages than would-not-unmark usages, we + // flatten the smallest group of usages, which is the would-not-unmark group aka object + // properties. + let expected_schema = as_schema(json!({ + "type": "object", + "properties": { + "a": { "$ref": "#/definitions/a" }, + "b": { "$ref": "#/definitions/b" }, + "c": { + "type": "object", + "properties": { "c": { "type": "boolean" } }, + "unevaluatedProperties": false + }, + "one": { "$ref": "#/definitions/one" }, + "two": { "$ref": "#/definitions/two" } + }, + "definitions": { + "one": { + "allOf": [{ "$ref": "#/definitions/c" }], + "unevaluatedProperties": false + }, + "two": { + "allOf": [ + { + "type": "object", + "properties": { "b": { "type": "boolean" } } + }, + { "$ref": "#/definitions/c" } + ], + "unevaluatedProperties": false + }, + "a": { + "type": "object", + "properties": { "a": { "type": "boolean" } }, + "unevaluatedProperties": false + }, + "b": { + "type": "object", + "properties": { "b": { "type": "boolean" } }, + "unevaluatedProperties": false + }, + "c": { + "type": "object", + "properties": { "c": { "type": "boolean" } } + } + }, + "unevaluatedProperties": false + })); + + assert_schemas_eq(expected_schema, actual_schema); + } +} diff --git a/lib/vector-config/src/ser.rs b/lib/vector-config/src/ser.rs new file mode 100644 index 0000000000000..93e6ef6856532 --- /dev/null +++ b/lib/vector-config/src/ser.rs @@ -0,0 +1,108 @@ +use serde_json::Value; +use std::{cell::RefCell, marker::PhantomData}; + +use serde::{Serialize, Serializer}; + +use crate::{ + schema::{SchemaGenerator, SchemaObject}, + Configurable, GenerateError, Metadata, ToValue, +}; + +/// Delegated serialization. +/// +/// This adapter type lets us delegate the work of serializing an `I` by delegating it to `H`, where +/// `H` represents some sort of helper type (a la `serde_with`) that takes `I` and serializes it in +/// a specific way. This is a common pattern for using standard Rust types on the interior (such as +/// `std::time::Duration`) but (de)serializing them in more friendly/ergonomic forms, like `10s`, +/// which requires the use of custom (de)serialize functions or types. +/// +/// Concretely, in the codegen, if a value has no mitigating configuration, we treat it as if it is +/// already `Serialize`, and use it directly. Otherwise, if specific attributes are in place that +/// indicate the use of an optional helper type, we construct `Delegated` where `H` is the +/// value passed to `#[serde(with = "...")]`. +/// +/// Astute readers may realize: "but isn't the value of `with` supposed to be a module path where a +/// custom `serialize` and/or `deserialize` function exist?", and they would be correct insofar as +/// that is what the `serde` documentation states. However, that value is used to construct a _path_ +/// to a function to be called, which means that if you simply specify a type that is in scope, and +/// it has a public function called `serialize` and/or `deserialize`, you end up with a path like +/// `MyCustomType::serialize`, which is valid, and `serde` and `serde_with` use this fact to support +/// generating custom types that can be used for (de)serialization. +/// +/// This means we do some extra work up front to avoid misclassifying usages of `#[serde(with = +/// "...")]` that are using module paths, and as such, this also means that those usages are not +/// supported. +pub struct Delegated { + input: I, + _helper: PhantomData, +} + +// Adapter implementation for `serde_with` where the helper `H` is able to serialize `I`. +impl Serialize for Delegated> +where + H: serde_with::SerializeAs, +{ + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + H::serialize_as(&self.input, serializer) + } +} + +impl From for Delegated> +where + H: serde_with::SerializeAs, +{ + fn from(input: I) -> Self { + Self { + input, + _helper: PhantomData, + } + } +} + +// Passthrough implementation for any `H` which is `Configurable`. +impl Configurable for Delegated +where + H: Configurable, +{ + fn referenceable_name() -> Option<&'static str> { + // Forward to the underlying `H`. + H::referenceable_name() + } + + fn metadata() -> Metadata { + // Forward to the underlying `H`. + // + // We have to convert from `Metadata` to `Metadata` which erases the default value, + // notably, but delegated helpers should never actually have default values, so this is + // essentially a no-op. + H::metadata().convert() + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + // Forward to the underlying `H`. + // + // We have to convert from `Metadata` to `Metadata` which erases the default value, + // notably, but `serde_with` helpers should never actually have default values, so this is + // essentially a no-op. + let converted = metadata.convert(); + H::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + // Forward to the underlying `H`. + H::generate_schema(gen) + } +} + +impl ToValue for Delegated +where + H: Configurable, + Delegated: Serialize, +{ + fn to_value(&self) -> Value { + serde_json::to_value(self).unwrap() + } +} diff --git a/lib/vector-config/src/stdlib.rs b/lib/vector-config/src/stdlib.rs new file mode 100644 index 0000000000000..ad3ae47aac32d --- /dev/null +++ b/lib/vector-config/src/stdlib.rs @@ -0,0 +1,466 @@ +use std::{ + cell::RefCell, + collections::{BTreeMap, BTreeSet, HashMap, HashSet}, + hash::Hash, + net::SocketAddr, + num::{ + NonZeroI16, NonZeroI32, NonZeroI64, NonZeroI8, NonZeroU16, NonZeroU32, NonZeroU64, + NonZeroU8, NonZeroUsize, + }, + path::PathBuf, + time::Duration, +}; + +use indexmap::IndexMap; +use serde_json::{Number, Value}; +use vector_config_common::{attributes::CustomAttribute, constants, validation::Validation}; +use vrl::value::KeyString; + +use crate::{ + num::ConfigurableNumber, + schema::{ + assert_string_schema_for_map, generate_array_schema, generate_bool_schema, + generate_map_schema, generate_number_schema, generate_optional_schema, generate_set_schema, + generate_string_schema, SchemaGenerator, SchemaObject, + }, + str::ConfigurableString, + Configurable, GenerateError, Metadata, ToValue, +}; + +// Unit type. +impl Configurable for () { + fn generate_schema(_: &RefCell) -> Result { + // Using a unit type in a configuration-related type is never actually valid. + Err(GenerateError::InvalidType) + } +} + +impl ToValue for () { + fn to_value(&self) -> Value { + Value::Null + } +} + +// Null and boolean. +impl Configurable for Option +where + T: Configurable + ToValue + 'static, +{ + fn referenceable_name() -> Option<&'static str> { + match T::referenceable_name() { + None => None, + Some(_) => Some(std::any::type_name::()), + } + } + + fn is_optional() -> bool { + true + } + + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + // We have to convert from `Metadata` to `Metadata` which erases the default value. + let converted = metadata.convert(); + T::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + generate_optional_schema(&T::as_configurable_ref(), gen) + } +} + +impl ToValue for Option { + fn to_value(&self) -> Value { + match self { + None => Value::Null, + Some(inner) => inner.to_value(), + } + } +} + +impl Configurable for bool { + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_bool_schema()) + } +} + +impl ToValue for bool { + fn to_value(&self) -> Value { + Value::Bool(*self) + } +} + +// Strings. +impl Configurable for String { + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_string_schema()) + } +} + +impl ToValue for String { + fn to_value(&self) -> Value { + Value::String(self.clone()) + } +} + +impl Configurable for KeyString { + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_string_schema()) + } +} + +impl ToValue for KeyString { + fn to_value(&self) -> Value { + Value::String(self.clone().into()) + } +} + +impl Configurable for char { + fn metadata() -> Metadata { + let mut metadata = Metadata::with_transparent(true); + metadata.add_validation(Validation::Length { + minimum: Some(1), + maximum: Some(1), + }); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_string_schema()) + } +} + +impl ToValue for char { + fn to_value(&self) -> Value { + Value::String(format!("{self}")) + } +} + +// Numbers. +macro_rules! impl_configurable_numeric { + ($ty:ty => $into:expr) => { + impl Configurable for $ty { + fn metadata() -> Metadata { + let mut metadata = Metadata::with_transparent(true); + let numeric_type = ::class(); + metadata.add_custom_attribute(CustomAttribute::kv( + constants::DOCS_META_NUMERIC_TYPE, + numeric_type, + )); + + metadata + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + $crate::__ensure_numeric_validation_bounds::(metadata) + } + + fn generate_schema( + _: &RefCell, + ) -> Result { + Ok(generate_number_schema::()) + } + } + + impl ToValue for $ty { + fn to_value(&self) -> Value { + let into = $into; + Value::Number(into(*self)) + } + } + }; +} + +impl_configurable_numeric!(u8 => Into::into); +impl_configurable_numeric!(u16 => Into::into); +impl_configurable_numeric!(u32 => Into::into); +impl_configurable_numeric!(u64 => Into::into); +impl_configurable_numeric!(usize => Into::into); +impl_configurable_numeric!(i8 => Into::into); +impl_configurable_numeric!(i16 => Into::into); +impl_configurable_numeric!(i32 => Into::into); +impl_configurable_numeric!(i64 => Into::into); +impl_configurable_numeric!(isize => Into::into); +impl_configurable_numeric!(f32 => |v| Number::from_f64(v as f64).expect("Could not convert number to JSON")); +impl_configurable_numeric!(f64 => |v| Number::from_f64(v).expect("Could not convert number to JSON")); +impl_configurable_numeric!(NonZeroU8 => |v: NonZeroU8| v.get().into()); +impl_configurable_numeric!(NonZeroU16 => |v: NonZeroU16| v.get().into()); +impl_configurable_numeric!(NonZeroU32 => |v: NonZeroU32| v.get().into()); +impl_configurable_numeric!(NonZeroU64 => |v: NonZeroU64| v.get().into()); +impl_configurable_numeric!(NonZeroI8 => |v: NonZeroI8| v.get().into()); +impl_configurable_numeric!(NonZeroI16 => |v: NonZeroI16| v.get().into()); +impl_configurable_numeric!(NonZeroI32 => |v: NonZeroI32| v.get().into()); +impl_configurable_numeric!(NonZeroI64 => |v: NonZeroI64| v.get().into()); +impl_configurable_numeric!(NonZeroUsize => |v: NonZeroUsize| v.get().into()); + +// Arrays and maps. +impl Configurable for Vec +where + T: Configurable + ToValue + 'static, +{ + fn metadata() -> Metadata { + T::metadata().convert() + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + let converted = metadata.convert(); + T::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + generate_array_schema(&T::as_configurable_ref(), gen) + } +} + +impl ToValue for Vec { + fn to_value(&self) -> Value { + Value::Array(self.iter().map(ToValue::to_value).collect()) + } +} + +impl Configurable for BTreeMap +where + K: ConfigurableString + Ord + ToValue + 'static, + V: Configurable + ToValue + 'static, +{ + fn is_optional() -> bool { + // A map with required fields would be... an object. So if you want that, make a struct + // instead, not a map. + true + } + + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + let converted = metadata.convert(); + V::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + // Make sure our key type is _truly_ a string schema. + assert_string_schema_for_map( + &K::as_configurable_ref(), + gen, + std::any::type_name::(), + )?; + + generate_map_schema(&V::as_configurable_ref(), gen) + } +} + +impl ToValue for BTreeMap +where + K: ToString, + V: ToValue, +{ + fn to_value(&self) -> Value { + Value::Object( + self.iter() + .map(|(k, v)| (k.to_string(), v.to_value())) + .collect(), + ) + } +} + +impl Configurable for BTreeSet +where + V: Configurable + ToValue + Eq + Hash + 'static, +{ + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + let converted = metadata.convert(); + V::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + generate_set_schema(&V::as_configurable_ref(), gen) + } +} + +impl ToValue for BTreeSet { + fn to_value(&self) -> Value { + Value::Array(self.iter().map(ToValue::to_value).collect()) + } +} + +impl Configurable for HashMap +where + K: ConfigurableString + ToValue + Hash + Eq + 'static, + V: Configurable + ToValue + 'static, +{ + fn is_optional() -> bool { + // A map with required fields would be... an object. So if you want that, make a struct + // instead, not a map. + true + } + + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + let converted = metadata.convert(); + V::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + // Make sure our key type is _truly_ a string schema. + assert_string_schema_for_map( + &K::as_configurable_ref(), + gen, + std::any::type_name::(), + )?; + + generate_map_schema(&V::as_configurable_ref(), gen) + } +} + +impl ToValue for HashMap +where + K: ToString, + V: ToValue, +{ + fn to_value(&self) -> Value { + Value::Object( + self.iter() + .map(|(k, v)| (k.to_string(), v.to_value())) + .collect(), + ) + } +} + +impl Configurable for HashSet +where + V: Configurable + ToValue + Eq + Hash + 'static, +{ + fn metadata() -> Metadata { + Metadata::with_transparent(true) + } + + fn validate_metadata(metadata: &Metadata) -> Result<(), GenerateError> { + let converted = metadata.convert(); + V::validate_metadata(&converted) + } + + fn generate_schema(gen: &RefCell) -> Result { + generate_set_schema(&V::as_configurable_ref(), gen) + } +} + +impl ToValue for HashSet +where + V: ToValue, +{ + fn to_value(&self) -> Value { + Value::Array(self.iter().map(ToValue::to_value).collect()) + } +} + +// Additional types that do not map directly to scalars. +impl Configurable for SocketAddr { + fn referenceable_name() -> Option<&'static str> { + Some("stdlib::SocketAddr") + } + + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("An internet socket address, either IPv4 or IPv6."); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + // TODO: We don't need anything other than a string schema to (de)serialize a `SocketAddr`, + // but we eventually should have validation since the format for the possible permutations + // is well-known and can be easily codified. + Ok(generate_string_schema()) + } +} + +impl ToValue for SocketAddr { + fn to_value(&self) -> Value { + Value::String(self.to_string()) + } +} + +impl Configurable for PathBuf { + fn referenceable_name() -> Option<&'static str> { + Some("stdlib::PathBuf") + } + + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("A file path."); + + // Taken from + // https://stackoverflow.com/questions/44289075/regular-expression-to-validate-windows-and-linux-path-with-extension + // and manually checked against common Linux and Windows paths. It's probably not 100% correct, but it + // definitely covers the most basic cases. + const PATH_REGEX: &str = r#"(\/.*|[a-zA-Z]:\\(?:([^<>:"\/\\|?*]*[^<>:"\/\\|?*.]\\|..\\)*([^<>:"\/\\|?*]*[^<>:"\/\\|?*.]\\?|..\\))?)"#; + metadata.add_validation(Validation::Pattern(PATH_REGEX.to_string())); + + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + Ok(generate_string_schema()) + } +} + +impl ToValue for PathBuf { + fn to_value(&self) -> Value { + Value::String(self.display().to_string()) + } +} + +// The use of `Duration` is deprecated and will be removed in a future version +impl Configurable for Duration { + fn referenceable_name() -> Option<&'static str> { + Some("stdlib::Duration") + } + + fn metadata() -> Metadata { + let mut metadata = Metadata::default(); + metadata.set_description("An duration of time."); + metadata + } + + fn generate_schema(_: &RefCell) -> Result { + let mut properties = IndexMap::default(); + properties.insert("secs".into(), generate_number_schema::()); + properties.insert("nsecs".into(), generate_number_schema::()); + + let mut required = BTreeSet::default(); + required.insert("secs".into()); + required.insert("nsecs".into()); + + Ok(crate::schema::generate_struct_schema( + properties, required, None, + )) + } +} + +impl ToValue for Duration { + fn to_value(&self) -> Value { + serde_json::to_value(self).expect("Could not convert duration to JSON") + } +} diff --git a/lib/vector-config/src/str.rs b/lib/vector-config/src/str.rs new file mode 100644 index 0000000000000..223a6019f43ca --- /dev/null +++ b/lib/vector-config/src/str.rs @@ -0,0 +1,16 @@ +use vrl::value::KeyString; + +use crate::Configurable; + +/// A string-like type that can be represented in a Vector configuration. +/// +/// This is specifically used for constraining the implementation of anything map-like as objects, +/// which maps are represented by, can only have string-like keys. +/// +/// If this trait is implemented for a type that is not string-like, things will probably break. +/// Don't implement this for things that are not string-like. +pub trait ConfigurableString: Configurable + ToString {} + +impl ConfigurableString for String {} + +impl ConfigurableString for KeyString {} diff --git a/lib/vector-config/tests/integration/configurable_string.rs b/lib/vector-config/tests/integration/configurable_string.rs new file mode 100644 index 0000000000000..6a1e8d3b387ec --- /dev/null +++ b/lib/vector-config/tests/integration/configurable_string.rs @@ -0,0 +1,61 @@ +use std::collections::{BTreeMap, HashMap}; +use std::fmt; + +use indexmap::IndexMap; +use vector_config::{configurable_component, schema::generate_root_schema, ConfigurableString}; + +/// A type that pretends to be `ConfigurableString` but has a non-string-like schema. +#[configurable_component] +#[derive(Clone, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct FakeString(u64); + +impl ConfigurableString for FakeString {} + +impl fmt::Display for FakeString { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + // Implement the fmt method to define the display format + write!(f, "{}", self.0) + } +} + +#[test] +#[should_panic] +fn non_string_key_schema_stdlib_hashmap() { + /// A HashMap-specific struct for testing fake string keys. + #[derive(Clone)] + #[configurable_component] + pub struct SimpleHashMapTags { + /// Some tags. + tags: HashMap, + } + + generate_root_schema::().unwrap(); +} + +#[test] +#[should_panic] +fn non_string_key_schema_stdlib_btreemap() { + /// A BTreeMap-specific struct for testing fake string keys. + #[derive(Clone)] + #[configurable_component] + pub struct SimpleBTreeMapTags { + /// Some tags. + tags: BTreeMap, + } + + generate_root_schema::().unwrap(); +} + +#[test] +#[should_panic] +fn non_string_key_schema_stdlib_indexmap() { + /// A IndexMap-specific struct for testing fake string keys. + #[derive(Clone)] + #[configurable_component] + pub struct SimpleIndexMapTags { + /// Some tags. + tags: IndexMap, + } + + generate_root_schema::().unwrap(); +} diff --git a/lib/vector-config/tests/integration/lib.rs b/lib/vector-config/tests/integration/lib.rs new file mode 100644 index 0000000000000..9ba776452b12a --- /dev/null +++ b/lib/vector-config/tests/integration/lib.rs @@ -0,0 +1,3 @@ +mod configurable_string; +mod named; +mod smoke; diff --git a/lib/vector-config/tests/integration/named.rs b/lib/vector-config/tests/integration/named.rs new file mode 100644 index 0000000000000..7f2107eea23df --- /dev/null +++ b/lib/vector-config/tests/integration/named.rs @@ -0,0 +1,43 @@ +#![allow(dead_code)] + +use serde::Serialize; +use vector_config::NamedComponent; + +// Essentially, this just derives an impl of `vector_config::NamedComponent` where the component +// name comes from the attribute value i.e. the name of a component annotated with +// `#[component_name("weee")]` is "weee". +// +// We've run through the different possible combinations of generics, bounds, etc, to ensure that +// the macro is correctly rebuilding the output token stream. + +#[derive(NamedComponent)] +#[source_component("basic")] +pub struct Basic; + +#[derive(NamedComponent)] +#[transform_component("generics")] +pub struct Generics { + inner: T, +} + +#[derive(NamedComponent)] +#[provider_component("bounds_abound")] +pub struct Bounds +where + T: AsRef, +{ + inner: T, +} + +#[derive(NamedComponent)] +#[enrichment_table_component("existing_attrs")] +#[derive(Serialize)] +pub struct ExistingAttributes { + foo: String, +} + +fn assert_serialize() {} + +fn verify_asserts() { + assert_serialize::(); +} diff --git a/lib/vector-config/tests/integration/smoke.rs b/lib/vector-config/tests/integration/smoke.rs new file mode 100644 index 0000000000000..8d9d1fbb8e4df --- /dev/null +++ b/lib/vector-config/tests/integration/smoke.rs @@ -0,0 +1,640 @@ +// We allow dead code because some of the things we're testing are meant to ensure that the macros do the right thing +// for codegen i.e. not doing codegen for fields that `serde` is going to skip, etc. +#![allow(dead_code)] +#![allow(clippy::print_stdout)] // tests +#![allow(clippy::print_stderr)] // tests + +use std::{ + collections::HashMap, + fmt, + net::{Ipv4Addr, SocketAddr, SocketAddrV4}, + num::NonZeroU64, + path::PathBuf, + time::Duration, +}; + +use indexmap::IndexMap; +use serde_with::serde_as; +use vector_config::{ + component::GenerateConfig, configurable_component, schema::generate_root_schema, + ConfigurableString, +}; + +/// A templated string. +#[configurable_component] +#[configurable(metadata(docs::templateable))] +#[derive(Clone, Debug, Default, Eq, Hash, PartialEq)] +#[serde(try_from = "String", into = "String")] +pub struct Template { + /// The template string. + src: String, + + #[serde(skip)] + has_ts: bool, + + #[serde(skip)] + has_fields: bool, +} + +impl ConfigurableString for Template {} + +impl fmt::Display for Template { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "{}", self.src) + } +} + +impl TryFrom for Template { + type Error = String; + + fn try_from(src: String) -> Result { + if src.is_empty() { + Err("wahhh".to_string()) + } else { + Ok(Self { + src, + has_ts: false, + has_fields: false, + }) + } + } +} + +impl From